.include "constants/gba_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start sub_8012A18 sub_8012A18: push {lr} bl sub_8011860 bl xxx_draw_string_80144C4 ldr r0, _08012A60 ldr r0, [r0] ldrb r0, [r0, 0xA] bl nullsub_8 bl sub_8005180 bl sub_80060EC bl sub_800CB20 bl sub_800485C bl CopySpritesToOam bl sub_8005304 bl TransferBGPaletteBuffer bl xxx_call_update_bg_vram bl sub_8009908 bl xxx_call_update_bg_sound_input movs r0, 0 bl ResetSprites pop {r0} bx r0 .align 2, 0 _08012A60: .4byte gUnknown_203B46C thumb_func_end sub_8012A18 thumb_func_start sub_8012A64 sub_8012A64: push {r4,lr} adds r4, r0, 0 cmp r4, 0 beq _08012A94 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08012A7A adds r0, r4, 0 bl nullsub_34 _08012A7A: ldrb r1, [r4, 0x1] cmp r1, 0 beq _08012A88 movs r0, 0 strb r0, [r4, 0x1] movs r0, 0x1 b _08012A98 _08012A88: ldrb r0, [r4, 0x2] cmp r0, 0 beq _08012A94 strb r1, [r4, 0x2] movs r0, 0x2 b _08012A98 _08012A94: bl sub_8012AE8 _08012A98: pop {r4} pop {r1} bx r1 thumb_func_end sub_8012A64 thumb_func_start GetKeyPress GetKeyPress: push {lr} adds r1, r0, 0 cmp r1, 0 beq _08012ADE adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08012AB4 movs r0, 0x1 b _08012AE2 _08012AB4: adds r0, r1, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 beq _08012AC2 movs r0, 0x2 b _08012AE2 _08012AC2: adds r0, r1, 0 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0 beq _08012AD0 movs r0, 0x9 b _08012AE2 _08012AD0: adds r0, r1, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0 beq _08012ADE movs r0, 0xA b _08012AE2 _08012ADE: bl sub_8012AE8 _08012AE2: pop {r1} bx r1 thumb_func_end GetKeyPress thumb_func_start sub_8012AE8 sub_8012AE8: push {lr} ldr r2, _08012B08 ldrh r1, [r2] movs r3, 0x80 lsls r3, 1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08012B4A ldrh r1, [r2, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08012B0C movs r0, 0xB b _08012BBE .align 2, 0 _08012B08: .4byte gUnknown_20255F0 _08012B0C: ldrh r1, [r2, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08012B1A movs r0, 0xC b _08012BBE _08012B1A: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08012B26 movs r0, 0xD b _08012BBE _08012B26: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08012B32 movs r0, 0xE b _08012BBE _08012B32: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08012B3E movs r0, 0xF b _08012BBE _08012B3E: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08012BBC movs r0, 0x6 b _08012BBE _08012B4A: ldrh r1, [r2, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08012B58 movs r0, 0x1 b _08012BBE _08012B58: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08012B64 movs r0, 0x2 b _08012BBE _08012B64: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08012B70 movs r0, 0x3 b _08012BBE _08012B70: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08012B7C movs r0, 0x4 b _08012BBE _08012B7C: ldrh r1, [r2, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08012B8A movs r0, 0x7 b _08012BBE _08012B8A: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08012B96 movs r0, 0x8 b _08012BBE _08012B96: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08012BA2 movs r0, 0x9 b _08012BBE _08012BA2: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08012BAE movs r0, 0xA b _08012BBE _08012BAE: movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _08012BBC movs r0, 0x5 b _08012BBE _08012BBC: movs r0, 0 _08012BBE: pop {r1} bx r1 thumb_func_end sub_8012AE8 thumb_func_start sub_8012BC4 sub_8012BC4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 mov r10, r0 mov r9, r1 adds r1, r2, 0 adds r7, r3, 0 movs r0, 0 mov r8, r0 add r0, sp, 0x4 adds r2, r7, 0 bl ConvertToDecimal subs r5, r7, 0x1 cmp r5, 0 ble _08012C0A lsls r0, r5, 2 mov r1, sp adds r1, r0 adds r1, 0x4 ldr r0, [r1] cmp r0, 0 bne _08012C0A movs r2, 0xFF _08012BFA: str r2, [r1] subs r1, 0x4 subs r5, 0x1 cmp r5, 0 ble _08012C0A ldr r0, [r1] cmp r0, 0 beq _08012BFA _08012C0A: movs r5, 0 cmp r5, r7 bge _08012C50 ldr r0, [sp, 0x4] cmp r0, 0xFF beq _08012C50 add r6, sp, 0x4 _08012C18: ldm r6!, {r0} adds r0, 0x30 lsls r0, 24 lsrs r0, 24 bl sub_8092288 adds r4, r0, 0 bl sub_8008584 movs r1, 0x6 ldrsh r0, [r0, r1] add r8, r0 mov r2, r10 mov r1, r8 subs r0, r2, r1 ldr r2, [sp, 0x48] str r2, [sp] mov r1, r9 adds r2, r4, 0 ldr r3, [sp, 0x44] bl xxx_call_draw_char adds r5, 0x1 cmp r5, r7 bge _08012C50 ldr r0, [r6] cmp r0, 0xFF bne _08012C18 _08012C50: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8012BC4 thumb_func_start sub_8012C60 sub_8012C60: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 adds r0, r2, 0 adds r7, r3, 0 lsls r0, 24 lsrs r0, 24 bl sub_8092288 adds r4, r0, 0 bl sub_8008584 adds r1, r0, 0 movs r2, 0x6 ldrsh r0, [r1, r2] cmp r0, 0xB bgt _08012C90 movs r1, 0xC subs r1, r0 lsrs r0, r1, 31 adds r1, r0 asrs r0, r1, 1 b _08012C92 _08012C90: movs r0, 0 _08012C92: adds r0, r5, r0 ldr r1, [sp, 0x18] str r1, [sp] adds r1, r6, 0 adds r2, r4, 0 adds r3, r7, 0 bl xxx_call_draw_char add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8012C60 thumb_func_start sub_8012CAC sub_8012CAC: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r4, r1, 0 movs r7, 0 movs r6, 0 ldr r0, [r4] cmp r0, 0 beq _08012CE6 movs r5, 0x80 lsls r5, 9 _08012CC4: adds r0, r5, 0 movs r1, 0x80 lsls r1, 9 adds r5, r1 asrs r7, r0, 16 ldr r0, [r4] bl sub_8008ED0 lsls r0, 16 asrs r0, 16 cmp r0, r6 ble _08012CDE adds r6, r0, 0 _08012CDE: adds r4, 0x8 ldr r0, [r4] cmp r0, 0 bne _08012CC4 _08012CE6: adds r0, r6, 0 cmp r0, 0 bge _08012CEE adds r0, 0x7 _08012CEE: asrs r0, 3 adds r0, 0x2 mov r1, r8 strh r0, [r1, 0xC] mov r0, r8 adds r1, r7, 0 bl sub_8012D08 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8012CAC thumb_func_start sub_8012D08 sub_8012D08: push {r4,lr} adds r4, r0, 0 adds r0, r1, 0 movs r1, 0xC bl sub_80095E4 lsls r0, 16 asrs r1, r0, 16 ldr r0, [r4, 0x4] cmp r0, 0x6 bne _08012D24 adds r0, r1, 0x2 lsls r0, 16 asrs r1, r0, 16 _08012D24: lsls r0, r1, 16 lsrs r0, 16 strh r0, [r4, 0xE] strh r0, [r4, 0x10] pop {r4} pop {r0} bx r0 thumb_func_end sub_8012D08 thumb_func_start sub_8012D34 sub_8012D34: push {r4,lr} adds r4, r0, 0 adds r0, r1, 0 movs r1, 0x18 bl sub_8009614 lsls r0, 16 asrs r1, r0, 16 ldr r0, [r4, 0x4] cmp r0, 0x6 bne _08012D50 adds r0, r1, 0x2 lsls r0, 16 asrs r1, r0, 16 _08012D50: lsls r0, r1, 16 lsrs r0, 16 strh r0, [r4, 0xE] strh r0, [r4, 0x10] pop {r4} pop {r0} bx r0 thumb_func_end sub_8012D34 thumb_func_start sub_8012D60 sub_8012D60: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r0, 0 adds r5, r3, 0 ldr r7, [sp, 0x20] movs r3, 0 movs r6, 0x1 negs r6, r6 mov r12, r3 ldr r0, [sp, 0x24] str r0, [r4, 0x10] str r1, [r4, 0x4] str r2, [r4, 0x8] cmp r2, 0 bne _08012D88 ldr r0, _08012E00 str r0, [r4, 0x8] _08012D88: str r5, [r4, 0xC] ldr r0, [r1] adds r5, r4, 0 adds r5, 0x14 movs r2, 0x4C adds r2, r4 mov r8, r2 movs r2, 0x4D adds r2, r4 mov r9, r2 movs r2, 0x4E adds r2, r4 mov r10, r2 cmp r0, 0 beq _08012DC6 _08012DA6: cmp r7, 0 blt _08012DB2 ldr r0, [r1, 0x4] cmp r7, r0 bne _08012DB2 adds r6, r3, 0 _08012DB2: ldr r0, [r1] ldrb r0, [r0] cmp r0, 0x2A bne _08012DBC mov r12, r3 _08012DBC: adds r1, 0x8 adds r3, 0x1 ldr r0, [r1] cmp r0, 0 bne _08012DA6 _08012DC6: cmp r6, 0 bge _08012DCC mov r6, r12 _08012DCC: adds r0, r5, 0 adds r1, r3, 0 ldr r2, [sp, 0x24] bl sub_8013134 strh r6, [r4, 0x2C] adds r0, r5, 0 movs r1, 0 bl sub_80137B0 movs r0, 0x1 mov r1, r8 strb r0, [r1] mov r2, r9 strb r0, [r2] mov r1, r10 strb r0, [r1] subs r0, 0x2 str r0, [r4, 0x48] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08012E00: .4byte gUnknown_80D47B8 thumb_func_end sub_8012D60 thumb_func_start sub_8012E04 sub_8012E04: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 adds r7, r1, 0 mov r8, r2 mov r9, r3 ldr r3, [sp, 0x1C] movs r1, 0 movs r6, 0x1 negs r6, r6 movs r4, 0 ldr r0, [r7] cmp r0, 0 beq _08012E46 adds r2, r7, 0 _08012E26: cmp r3, 0 blt _08012E32 ldr r0, [r2, 0x4] cmp r3, r0 bne _08012E32 adds r6, r1, 0 _08012E32: ldr r0, [r2] ldrb r0, [r0] cmp r0, 0x2A bne _08012E3C adds r4, r1, 0 _08012E3C: adds r2, 0x8 adds r1, 0x1 ldr r0, [r2] cmp r0, 0 bne _08012E26 _08012E46: cmp r6, 0 bge _08012E4C adds r6, r4, 0 _08012E4C: adds r4, r5, 0 adds r4, 0x14 adds r0, r4, 0 ldr r2, [sp, 0x20] bl sub_8013134 strh r6, [r5, 0x2C] adds r0, r4, 0 movs r1, 0 bl sub_80137B0 ldr r0, [sp, 0x20] str r0, [r5, 0x10] mov r0, r8 str r0, [r5, 0x8] cmp r0, 0 bne _08012E72 ldr r0, _08012EA0 str r0, [r5, 0x8] _08012E72: mov r0, r9 str r0, [r5, 0xC] str r7, [r5, 0x4] adds r1, r5, 0 adds r1, 0x4E movs r0, 0 strb r0, [r1] adds r0, r5, 0 adds r0, 0x4C movs r1, 0x1 strb r1, [r0] adds r0, 0x1 strb r1, [r0] movs r0, 0x1 negs r0, r0 str r0, [r5, 0x48] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08012EA0: .4byte gUnknown_80D47B8 thumb_func_end sub_8012E04 thumb_func_start sub_8012EA4 sub_8012EA4: push {lr} adds r2, r0, 0 adds r2, 0x4C strb r1, [r2] adds r2, 0x1 movs r1, 0x1 strb r1, [r2] bl sub_8012EBC pop {r0} bx r0 thumb_func_end sub_8012EA4 thumb_func_start sub_8012EBC sub_8012EBC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x164 adds r5, r0, 0 movs r0, 0x4D adds r0, r5 mov r8, r0 ldrb r0, [r0] cmp r0, 0 beq _08012F9E ldr r0, [r5, 0x10] bl sub_80073B8 ldr r2, [r5, 0x10] lsls r0, r2, 3 adds r0, r2 lsls r0, 3 ldr r1, _08012F54 adds r0, r1 ldr r0, [r0, 0xC] cmp r0, 0x6 bne _08012F24 lsls r0, r2, 1 adds r0, r2 lsls r0, 3 mov r4, sp adds r4, r0 adds r4, 0x4 add r0, sp, 0x4 bl sub_8006518 ldr r0, [r5] bl sub_8008ED0 adds r1, r0, 0 ldr r0, [r4, 0x14] ldrb r0, [r0, 0x2] lsls r0, 3 subs r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, 0x8 ldr r2, [r5] ldr r3, [r5, 0x10] movs r1, 0 str r1, [sp] bl sub_8014FF0 _08012F24: ldr r7, [r5, 0x8] ldr r4, [r5, 0x4] ldr r6, [r5, 0xC] movs r1, 0 mov r9, r1 ldr r0, [r4] mov r10, r8 cmp r0, 0 beq _08012F92 add r0, sp, 0x64 mov r8, r0 _08012F3A: ldr r3, [r4] ldrb r0, [r3] cmp r0, 0x2A bne _08012F44 adds r3, 0x1 _08012F44: cmp r6, 0 beq _08012F58 ldrh r0, [r6] lsls r0, 2 adds r0, r7 ldr r2, [r0] adds r6, 0x2 b _08012F64 .align 2, 0 _08012F54: .4byte gUnknown_2027370 _08012F58: ldr r0, [r4, 0x4] cmp r0, 0 bge _08012F62 ldr r2, [r7, 0x4] b _08012F64 _08012F62: ldr r2, [r7] _08012F64: mov r0, r8 ldr r1, _08012FBC bl sub_800D158 adds r0, r5, 0 adds r0, 0x14 mov r1, r9 bl sub_8013800 adds r1, r0, 0 ldr r3, [r5, 0x10] movs r0, 0 str r0, [sp] movs r0, 0x8 mov r2, r8 bl sub_8014FF0 adds r4, 0x8 movs r1, 0x1 add r9, r1 ldr r0, [r4] cmp r0, 0 bne _08012F3A _08012F92: ldr r0, [r5, 0x10] bl sub_80073E0 movs r0, 0 mov r1, r10 strb r0, [r1] _08012F9E: adds r0, r5, 0 adds r0, 0x4E ldrb r0, [r0] cmp r0, 0 beq _08012FC8 adds r0, r5, 0 adds r0, 0x4C ldrb r0, [r0] cmp r0, 0 beq _08012FC0 adds r0, r5, 0 adds r0, 0x14 bl AddMenuCursorSprite b _08012FC8 .align 2, 0 _08012FBC: .4byte gUnknown_80D4828 _08012FC0: adds r0, r5, 0 adds r0, 0x14 bl sub_8013660 _08012FC8: add sp, 0x164 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8012EBC thumb_func_start sub_8012FD8 sub_8012FD8: push {r4-r7,lr} adds r4, r0, 0 movs r0, 0x2C ldrsh r7, [r4, r0] adds r6, r4, 0 adds r6, 0x4C ldrb r0, [r6] cmp r0, 0 beq _08013094 adds r5, r4, 0 adds r5, 0x14 adds r0, r5, 0 bl GetKeyPress cmp r0, 0x2 beq _08013078 cmp r0, 0x2 bgt _08013002 cmp r0, 0x1 beq _08013028 b _08013094 _08013002: cmp r0, 0x7 beq _08013012 cmp r0, 0x8 bne _08013094 adds r0, r5, 0 bl MoveMenuCursorDown b _08013018 _08013012: adds r0, r5, 0 bl MoveMenuCursorUp _08013018: movs r1, 0x2C ldrsh r0, [r4, r1] cmp r7, r0 beq _08013094 movs r0, 0x3 bl sub_80119D4 b _08013094 _08013028: adds r0, r5, 0 bl sub_80137A8 adds r2, r0, 0 lsls r1, r2, 3 ldr r0, [r4, 0x4] adds r0, r1 ldr r3, [r0, 0x4] cmp r3, 0 blt _08013068 ldr r1, [r4, 0xC] cmp r1, 0 beq _0801304C lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r0, 0x1 beq _08013068 _0801304C: str r3, [r4, 0x48] adds r1, r4, 0 adds r1, 0x4C movs r0, 0 strb r0, [r1] strh r0, [r4, 0x38] ldr r1, [r4, 0xC] cmp r1, 0 beq _08013070 lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r0, 0x2 bne _08013070 _08013068: movs r0, 0x2 bl sub_80119D4 b _08013094 _08013070: movs r0, 0 bl sub_80119D4 b _08013094 _08013078: movs r1, 0x2E ldrsh r0, [r4, r1] ldr r1, [r4, 0x4] lsls r0, 3 adds r0, r1 ldr r0, [r0, 0x4] cmp r0, 0 blt _08013094 str r0, [r4, 0x48] movs r0, 0 strb r0, [r6] movs r0, 0x1 bl sub_80119D4 _08013094: adds r0, r4, 0 bl sub_8012EBC adds r0, r4, 0 adds r0, 0x4C ldrb r0, [r0] pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8012FD8 thumb_func_start sub_80130A8 sub_80130A8: push {r4-r6,lr} adds r4, r0, 0 adds r6, r4, 0 adds r6, 0x4C ldrb r0, [r6] cmp r0, 0 beq _08013100 adds r5, r4, 0 adds r5, 0x14 adds r0, r5, 0 bl GetKeyPress cmp r0, 0x1 beq _080130CA cmp r0, 0x2 beq _080130E6 b _08013100 _080130CA: adds r0, r5, 0 bl sub_80137A8 lsls r0, 3 ldr r1, [r4, 0x4] adds r1, r0 ldr r0, [r1, 0x4] str r0, [r4, 0x48] movs r0, 0 strb r0, [r6] strh r0, [r4, 0x38] bl sub_80119D4 b _08013100 _080130E6: movs r1, 0x2E ldrsh r0, [r4, r1] ldr r1, [r4, 0x4] lsls r0, 3 adds r0, r1 ldr r0, [r0, 0x4] cmp r0, 0 blt _08013100 str r0, [r4, 0x48] movs r0, 0 strb r0, [r6] bl sub_80119D4 _08013100: adds r0, r4, 0 bl sub_8012EBC adds r0, r4, 0 adds r0, 0x4C ldrb r0, [r0] pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80130A8 thumb_func_start sub_8013114 sub_8013114: push {lr} adds r2, r0, 0 adds r0, 0x4C ldrb r0, [r0] cmp r0, 0 beq _08013124 movs r0, 0x1 b _0801312E _08013124: cmp r1, 0 beq _0801312C ldr r0, [r2, 0x48] str r0, [r1] _0801312C: movs r0, 0 _0801312E: pop {r1} bx r1 thumb_func_end sub_8013114 thumb_func_start sub_8013134 sub_8013134: push {r4,lr} adds r4, r0, 0 lsls r0, r2, 3 adds r0, r2 lsls r0, 3 ldr r3, _0801315C adds r0, r3 str r2, [r4] movs r2, 0 strh r2, [r4, 0x18] strh r1, [r4, 0x1A] strh r1, [r4, 0x1C] strh r2, [r4, 0x1E] strh r2, [r4, 0x4] ldr r0, [r0, 0xC] cmp r0, 0x6 bne _08013160 movs r0, 0x10 b _08013162 .align 2, 0 _0801315C: .4byte gUnknown_2027370 _08013160: movs r0, 0x2 _08013162: strh r0, [r4, 0x6] movs r0, 0 strh r0, [r4, 0xC] strh r0, [r4, 0xE] strh r0, [r4, 0x14] strh r0, [r4, 0x24] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C pop {r4} pop {r0} bx r0 thumb_func_end sub_8013134 thumb_func_start sub_801317C sub_801317C: push {lr} movs r1, 0 strb r1, [r0] strb r1, [r0, 0x1] strb r1, [r0, 0x2] strb r1, [r0, 0x4] strb r1, [r0, 0x3] ldr r1, _080131A4 strh r1, [r0, 0x8] movs r1, 0x1 negs r1, r1 strh r1, [r0, 0xA] adds r0, 0x8 bl nullsub_7 bl sub_8004914 pop {r0} bx r0 .align 2, 0 _080131A4: .4byte 0x0000ffff thumb_func_end sub_801317C thumb_func_start AddMenuCursorSprite AddMenuCursorSprite: push {lr} movs r1, 0 bl AddMenuCursorSprite_ pop {r0} bx r0 thumb_func_end AddMenuCursorSprite thumb_func_start AddMenuCursorSprite_ AddMenuCursorSprite_: push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] movs r1, 0x1A ldrsh r0, [r6, r1] cmp r0, 0 bgt _080131CC b _080132D6 _080131CC: adds r0, r6, 0 bl UpdateMenuCursorSpriteCoords ldrh r1, [r6, 0x24] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080132D6 mov r0, sp ldrh r0, [r0] ldr r1, _080132FC ands r1, r0 ldr r3, _08013300 ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013304 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r4, _08013308 adds r0, r4, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _0801330C ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013310 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013314 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] ands r3, r1 orrs r3, r0 str r3, [sp] mov r3, sp movs r2, 0xFD lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r5, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _08013318 ands r0, r4 orrs r0, r1 strh r0, [r3, 0x4] ldrh r0, [r3, 0x6] ldr r1, _0801331C ands r1, r0 ldr r0, _08013320 ands r1, r0 movs r2, 0x8 ldrsh r0, [r6, r2] ldr r2, _08013324 ands r0, r2 strh r0, [r3, 0x2] movs r2, 0xA ldrsh r0, [r6, r2] adds r0, 0x1 ands r0, r4 lsls r0, 4 ands r1, r5 orrs r1, r0 strh r1, [r3, 0x6] mov r0, sp movs r1, 0xFF movs r2, 0 movs r3, 0 bl AddSprite _080132D6: adds r0, r6, 0 bl sub_8013470 movs r1, 0x14 ldrsh r0, [r6, r1] cmp r0, 0 beq _080132EC adds r0, r6, 0 adds r0, 0x14 bl sub_801332C _080132EC: ldrh r0, [r6, 0x24] adds r0, 0x1 strh r0, [r6, 0x24] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080132FC: .4byte 0x0000feff _08013300: .4byte 0xffff0000 _08013304: .4byte 0x0000fdff _08013308: .4byte 0x0000f3ff _0801330C: .4byte 0x0000efff _08013310: .4byte 0x0000dfff _08013314: .4byte 0x00003fff _08013318: .4byte 0x00000fff _0801331C: .4byte 0x0000fffe _08013320: .4byte 0x0000fffd _08013324: .4byte 0x000001ff thumb_func_end AddMenuCursorSprite_ thumb_func_start nullsub_34 nullsub_34: bx lr thumb_func_end nullsub_34 thumb_func_start sub_801332C sub_801332C: push {r4-r6,lr} sub sp, 0x8 movs r1, 0 movs r2, 0 str r1, [sp] str r2, [sp, 0x4] mov r1, sp ldrh r1, [r1] ldr r2, _08013440 ands r2, r1 ldr r4, _08013444 ldr r1, [sp] ands r1, r4 orrs r1, r2 str r1, [sp] mov r2, sp ldrh r2, [r2] adds r3, r4, 0 ands r3, r1 orrs r3, r2 str r3, [sp] mov r1, sp ldrh r2, [r1] ldr r1, _08013448 ands r1, r2 adds r2, r4, 0 ands r2, r3 orrs r2, r1 str r2, [sp] mov r1, sp ldrh r1, [r1] adds r3, r4, 0 ands r3, r2 orrs r3, r1 str r3, [sp] movs r5, 0x80 lsls r5, 3 mov r1, sp ldrh r2, [r1] ldr r6, _0801344C adds r1, r6, 0 ands r1, r2 adds r2, r4, 0 ands r2, r3 orrs r2, r1 str r2, [sp] mov r1, sp ldrh r1, [r1] orrs r5, r1 adds r3, r4, 0 ands r3, r2 orrs r3, r5 str r3, [sp] mov r1, sp ldrh r2, [r1] ldr r1, _08013450 ands r1, r2 adds r2, r4, 0 ands r2, r3 orrs r2, r1 str r2, [sp] mov r1, sp ldrh r1, [r1] adds r3, r4, 0 ands r3, r2 orrs r3, r1 str r3, [sp] mov r1, sp ldrh r2, [r1] ldr r1, _08013454 ands r1, r2 adds r2, r4, 0 ands r2, r3 orrs r2, r1 str r2, [sp] mov r1, sp ldrh r1, [r1] adds r3, r4, 0 ands r3, r2 orrs r3, r1 str r3, [sp] mov r1, sp ldrh r2, [r1] ldr r1, _08013458 ands r1, r2 adds r2, r4, 0 ands r2, r3 orrs r2, r1 str r2, [sp] mov r1, sp ldrh r1, [r1] ands r4, r2 orrs r4, r1 str r4, [sp] mov r4, sp ldr r3, _0801345C ldrh r2, [r4, 0x4] movs r1, 0xFC lsls r1, 8 ands r1, r2 orrs r1, r3 ands r1, r6 movs r6, 0xF movs r2, 0xF0 lsls r2, 8 ldr r5, _08013460 ands r1, r5 orrs r1, r2 strh r1, [r4, 0x4] ldrh r1, [r4, 0x6] ldr r2, _08013464 ands r2, r1 ldr r1, _08013468 ands r2, r1 movs r3, 0 ldrsh r1, [r0, r3] ldr r3, _0801346C ands r1, r3 strh r1, [r4, 0x2] movs r1, 0x2 ldrsh r0, [r0, r1] adds r0, 0x1 ands r0, r5 lsls r0, 4 ands r2, r6 orrs r2, r0 strh r2, [r4, 0x6] mov r0, sp movs r1, 0xFF movs r2, 0 movs r3, 0 bl AddSprite add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08013440: .4byte 0x0000feff _08013444: .4byte 0xffff0000 _08013448: .4byte 0x0000fdff _0801344C: .4byte 0x0000f3ff _08013450: .4byte 0x0000efff _08013454: .4byte 0x0000dfff _08013458: .4byte 0x00003fff _0801345C: .4byte 0x000003f5 _08013460: .4byte 0x00000fff _08013464: .4byte 0x0000fffe _08013468: .4byte 0x0000fffd _0801346C: .4byte 0x000001ff thumb_func_end sub_801332C thumb_func_start sub_8013470 sub_8013470: push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] movs r1, 0xC ldrsh r0, [r6, r1] cmp r0, 0 bne _08013488 b _08013624 _08013488: movs r2, 0x1E ldrsh r0, [r6, r2] cmp r0, 0 beq _08013586 mov r0, sp ldrh r0, [r0] ldr r1, _0801362C ands r1, r0 ldr r3, _08013630 ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013634 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r4, _08013638 adds r0, r4, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _0801363C ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013640 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013644 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] ands r3, r1 orrs r3, r0 str r3, [sp] mov r3, sp ldr r2, _08013648 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r5, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _0801364C ands r0, r4 orrs r0, r1 strh r0, [r3, 0x4] ldrh r0, [r3, 0x6] ldr r1, _08013650 ands r1, r0 ldr r0, _08013654 ands r1, r0 movs r2, 0xC ldrsh r0, [r6, r2] ldr r2, _08013658 ands r0, r2 strh r0, [r3, 0x2] movs r2, 0xE ldrsh r0, [r6, r2] ands r0, r4 lsls r0, 4 ands r1, r5 orrs r1, r0 strh r1, [r3, 0x6] mov r0, sp movs r1, 0xFF movs r2, 0 movs r3, 0 bl AddSprite _08013586: movs r1, 0x20 ldrsh r0, [r6, r1] cmp r0, 0 beq _08013624 adds r1, r0, 0 movs r2, 0x1E ldrsh r0, [r6, r2] adds r0, 0x1 cmp r1, r0 beq _08013624 mov r0, sp ldrh r0, [r0] ldr r1, _0801362C ands r1, r0 mov r0, sp strh r1, [r0] strh r1, [r0] ldr r0, _08013634 ands r0, r1 mov r1, sp strh r0, [r1] strh r0, [r1] ldr r4, _08013638 ands r0, r4 strh r0, [r1] strh r0, [r1] ldr r1, _0801363C ands r1, r0 mov r0, sp strh r1, [r0] strh r1, [r0] ldr r2, _08013640 ands r2, r1 strh r2, [r0] strh r2, [r0] ldr r0, _08013644 ands r0, r2 mov r1, sp strh r0, [r1] strh r0, [r1] mov r3, sp ldr r2, _0801365C ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r5, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _0801364C ands r0, r4 orrs r0, r1 strh r0, [r3, 0x4] ldrh r0, [r3, 0x6] ldr r1, _08013650 ands r1, r0 ldr r0, _08013654 ands r1, r0 movs r2, 0xC ldrsh r0, [r6, r2] adds r0, 0xA ldr r2, _08013658 ands r0, r2 strh r0, [r3, 0x2] movs r2, 0xE ldrsh r0, [r6, r2] ands r0, r4 lsls r0, 4 ands r1, r5 orrs r1, r0 strh r1, [r3, 0x6] mov r0, sp movs r1, 0xFF movs r2, 0 movs r3, 0 bl AddSprite _08013624: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801362C: .4byte 0x0000feff _08013630: .4byte 0xffff0000 _08013634: .4byte 0x0000fdff _08013638: .4byte 0x0000f3ff _0801363C: .4byte 0x0000efff _08013640: .4byte 0x0000dfff _08013644: .4byte 0x00003fff _08013648: .4byte 0x000003f2 _0801364C: .4byte 0x00000fff _08013650: .4byte 0x0000fffe _08013654: .4byte 0x0000fffd _08013658: .4byte 0x000001ff _0801365C: .4byte 0x000003f3 thumb_func_end sub_8013470 thumb_func_start sub_8013660 sub_8013660: push {r4,lr} adds r4, r0, 0 movs r1, 0x1A ldrsh r0, [r4, r1] cmp r0, 0 ble _0801367A adds r0, r4, 0 bl UpdateMenuCursorSpriteCoords adds r0, r4, 0 adds r0, 0x8 bl sub_801332C _0801367A: pop {r4} pop {r0} bx r0 thumb_func_end sub_8013660 thumb_func_start UpdateMenuCursorSpriteCoords UpdateMenuCursorSpriteCoords: push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5] lsls r4, r0, 3 adds r4, r0 lsls r4, 3 ldr r0, _080136B8 adds r4, r0 movs r1, 0 ldrsh r0, [r4, r1] lsls r0, 3 ldrh r2, [r5, 0x4] adds r0, r2 strh r0, [r5, 0x8] movs r0, 0x18 ldrsh r1, [r5, r0] adds r0, r5, 0 bl sub_8013800 movs r2, 0x2 ldrsh r1, [r4, r2] lsls r1, 3 adds r1, r0 strh r1, [r5, 0xA] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080136B8: .4byte gUnknown_2027370 thumb_func_end UpdateMenuCursorSpriteCoords thumb_func_start MoveMenuCursorDown MoveMenuCursorDown: push {lr} adds r1, r0, 0 movs r3, 0 strh r3, [r1, 0x24] movs r0, 0x1A ldrsh r2, [r1, r0] cmp r2, 0 ble _080136DA ldrh r0, [r1, 0x18] adds r0, 0x1 strh r0, [r1, 0x18] lsls r0, 16 asrs r0, 16 cmp r0, r2 blt _080136DC _080136DA: strh r3, [r1, 0x18] _080136DC: pop {r0} bx r0 thumb_func_end MoveMenuCursorDown thumb_func_start sub_80136E0 sub_80136E0: push {r4,r5,lr} adds r2, r0, 0 lsls r1, 24 lsrs r5, r1, 24 movs r1, 0 strh r1, [r2, 0x24] ldrh r4, [r2, 0x1A] movs r0, 0x1A ldrsh r3, [r2, r0] cmp r3, 0 ble _08013708 ldrh r0, [r2, 0x18] adds r0, 0x1 strh r0, [r2, 0x18] lsls r0, 16 asrs r0, 16 cmp r0, r3 blt _08013710 cmp r5, 0 beq _0801370C _08013708: strh r1, [r2, 0x18] b _08013710 _0801370C: subs r0, r4, 0x1 strh r0, [r2, 0x18] _08013710: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80136E0 thumb_func_start MoveMenuCursorUp MoveMenuCursorUp: push {r4,lr} adds r1, r0, 0 movs r2, 0 strh r2, [r1, 0x24] ldrh r3, [r1, 0x1A] movs r4, 0x1A ldrsh r0, [r1, r4] cmp r0, 0 bgt _0801372E strh r2, [r1, 0x18] b _0801373E _0801372E: ldrh r0, [r1, 0x18] subs r0, 0x1 strh r0, [r1, 0x18] lsls r0, 16 cmp r0, 0 bge _0801373E subs r0, r3, 0x1 strh r0, [r1, 0x18] _0801373E: pop {r4} pop {r0} bx r0 thumb_func_end MoveMenuCursorUp thumb_func_start sub_8013744 sub_8013744: push {r4-r6,lr} adds r2, r0, 0 lsls r1, 24 lsrs r1, 24 adds r5, r1, 0 movs r3, 0 strh r3, [r2, 0x24] ldrh r4, [r2, 0x1A] movs r6, 0x1A ldrsh r0, [r2, r6] cmp r0, 0 bgt _08013760 strh r3, [r2, 0x18] b _08013778 _08013760: ldrh r0, [r2, 0x18] subs r0, 0x1 strh r0, [r2, 0x18] lsls r0, 16 cmp r0, 0 bge _08013778 cmp r1, 0 beq _08013776 subs r0, r4, 0x1 strh r0, [r2, 0x18] b _08013778 _08013776: strh r5, [r2, 0x18] _08013778: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8013744 thumb_func_start sub_8013780 sub_8013780: push {lr} adds r2, r0, 0 cmp r1, 0 bge _0801378E movs r0, 0 strh r0, [r2, 0x18] b _080137A0 _0801378E: movs r3, 0x1A ldrsh r0, [r2, r3] cmp r1, r0 blt _0801379E ldrh r0, [r2, 0x1A] subs r0, 0x1 strh r0, [r2, 0x18] b _080137A0 _0801379E: strh r1, [r2, 0x18] _080137A0: movs r0, 0 strh r0, [r2, 0x24] pop {r0} bx r0 thumb_func_end sub_8013780 thumb_func_start sub_80137A8 sub_80137A8: movs r1, 0x18 ldrsh r0, [r0, r1] bx lr thumb_func_end sub_80137A8 thumb_func_start sub_80137B0 sub_80137B0: push {r4,lr} adds r4, r0, 0 cmp r1, 0 ble _080137BC lsls r0, r1, 8 b _080137E2 _080137BC: ldr r3, _080137F4 ldr r1, [r4] lsls r0, r1, 3 adds r0, r1 lsls r1, r0, 3 adds r0, r3, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] movs r2, 0 cmp r0, 0x6 bne _080137D6 movs r2, 0x10 _080137D6: adds r0, r1, r3 movs r1, 0x6 ldrsh r0, [r0, r1] lsls r0, 3 subs r0, r2 lsls r0, 8 _080137E2: movs r2, 0x1C ldrsh r1, [r4, r2] bl __divsi3 str r0, [r4, 0x10] pop {r4} pop {r0} bx r0 .align 2, 0 _080137F4: .4byte gUnknown_2027370 thumb_func_end sub_80137B0 thumb_func_start sub_80137F8 sub_80137F8: lsls r1, 8 str r1, [r0, 0x10] bx lr thumb_func_end sub_80137F8 thumb_func_start sub_8013800 sub_8013800: push {lr} movs r3, 0x6 ldrsh r2, [r0, r3] ldr r0, [r0, 0x10] muls r0, r1 cmp r0, 0 bge _08013810 adds r0, 0xFF _08013810: asrs r0, 8 adds r0, r2, r0 pop {r1} bx r1 thumb_func_end sub_8013800 thumb_func_start sub_8013818 sub_8013818: push {r4,lr} adds r4, r0, 0 str r3, [r4] movs r0, 0 strh r1, [r4, 0x22] strh r2, [r4, 0x1C] strh r0, [r4, 0x14] strh r0, [r4, 0x24] strh r0, [r4, 0x18] strh r0, [r4, 0x1E] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C adds r0, r4, 0 bl sub_8013984 adds r0, r4, 0 movs r1, 0xC bl sub_80137F8 pop {r4} pop {r0} bx r0 thumb_func_end sub_8013818 thumb_func_start sub_8013848 sub_8013848: push {r4,lr} adds r4, r0, 0 str r3, [r4] movs r0, 0 strh r1, [r4, 0x22] strh r2, [r4, 0x1C] strh r0, [r4, 0x14] strh r0, [r4, 0x24] strh r0, [r4, 0x18] strh r0, [r4, 0x1E] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C adds r0, r4, 0 bl sub_8013984 adds r0, r4, 0 movs r1, 0x18 bl sub_80137F8 pop {r4} pop {r0} bx r0 thumb_func_end sub_8013848 thumb_func_start sub_8013878 sub_8013878: push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 cmp r6, 0 bge _08013886 movs r6, 0 b _08013890 _08013886: movs r1, 0x22 ldrsh r0, [r5, r1] cmp r6, r0 blt _08013890 subs r6, r0, 0x1 _08013890: movs r0, 0x1C ldrsh r1, [r5, r0] adds r0, r6, 0 bl __divsi3 movs r4, 0 strh r0, [r5, 0x1E] movs r0, 0x1C ldrsh r1, [r5, r0] adds r0, r6, 0 bl __modsi3 strh r0, [r5, 0x18] strh r4, [r5, 0x24] adds r0, r5, 0 bl sub_8013984 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8013878 thumb_func_start sub_80138B8 sub_80138B8: push {r4-r7,lr} adds r5, r0, 0 lsls r4, r1, 24 lsrs r4, 24 movs r0, 0x1E ldrsh r7, [r5, r0] movs r1, 0x18 ldrsh r6, [r5, r1] adds r0, r5, 0 bl AddMenuCursorSprite cmp r4, 0 beq _0801391C adds r0, r5, 0 bl GetKeyPress cmp r0, 0x8 beq _080138F8 cmp r0, 0x8 bgt _080138E6 cmp r0, 0x7 beq _080138F0 b _0801391C _080138E6: cmp r0, 0x9 beq _0801390E cmp r0, 0xA beq _08013916 b _0801391C _080138F0: adds r0, r5, 0 bl MoveMenuCursorUp b _080138FE _080138F8: adds r0, r5, 0 bl MoveMenuCursorDown _080138FE: movs r1, 0x18 ldrsh r0, [r5, r1] cmp r6, r0 beq _0801391C movs r0, 0x3 bl sub_80119D4 b _0801391C _0801390E: adds r0, r5, 0 bl sub_8013A7C b _0801391C _08013916: adds r0, r5, 0 bl sub_8013A54 _0801391C: movs r1, 0x1E ldrsh r0, [r5, r1] cmp r7, r0 bne _08013928 movs r0, 0 b _08013930 _08013928: movs r0, 0x4 bl sub_80119D4 movs r0, 0x1 _08013930: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80138B8 thumb_func_start sub_8013938 sub_8013938: push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x1E ldrsh r5, [r4, r0] movs r0, 0 strh r0, [r4, 0x1A] strh r0, [r4, 0x14] adds r0, r4, 0 bl AddMenuCursorSprite adds r0, r4, 0 bl GetKeyPress cmp r0, 0x9 beq _0801395C cmp r0, 0xA beq _08013964 b _0801396A _0801395C: adds r0, r4, 0 bl sub_8013A7C b _0801396A _08013964: adds r0, r4, 0 bl sub_8013A54 _0801396A: movs r1, 0x1E ldrsh r0, [r4, r1] cmp r5, r0 bne _08013976 movs r0, 0 b _0801397E _08013976: movs r0, 0x4 bl sub_80119D4 movs r0, 0x1 _0801397E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8013938 thumb_func_start sub_8013984 sub_8013984: push {r4-r6,lr} adds r4, r0, 0 ldr r1, [r4] lsls r0, r1, 3 adds r0, r1 lsls r0, 3 ldr r1, _08013A20 adds r6, r0, r1 ldrh r1, [r4, 0x1C] movs r2, 0x1C ldrsh r0, [r4, r2] cmp r0, 0 bne _080139A2 adds r0, r1, 0x1 strh r0, [r4, 0x1C] _080139A2: movs r1, 0x22 ldrsh r0, [r4, r1] movs r2, 0x1C ldrsh r1, [r4, r2] bl __divsi3 adds r5, r0, 0 strh r5, [r4, 0x20] movs r1, 0x22 ldrsh r0, [r4, r1] movs r2, 0x1C ldrsh r1, [r4, r2] bl __modsi3 cmp r0, 0 beq _080139C6 adds r0, r5, 0x1 strh r0, [r4, 0x20] _080139C6: movs r0, 0x1E ldrsh r1, [r4, r0] movs r2, 0x20 ldrsh r0, [r4, r2] subs r0, 0x1 ldrh r5, [r4, 0x20] cmp r1, r0 ble _080139DA subs r0, r5, 0x1 strh r0, [r4, 0x1E] _080139DA: movs r0, 0x1E ldrsh r1, [r4, r0] movs r2, 0x20 ldrsh r0, [r4, r2] subs r0, 0x1 cmp r1, r0 bne _080139F8 movs r1, 0x22 ldrsh r0, [r4, r1] movs r2, 0x1C ldrsh r1, [r4, r2] bl __modsi3 cmp r0, 0 bne _080139FA _080139F8: ldrh r0, [r4, 0x1C] _080139FA: strh r0, [r4, 0x1A] movs r0, 0x18 ldrsh r1, [r4, r0] movs r2, 0x1A ldrsh r0, [r4, r2] subs r0, 0x1 cmp r1, r0 ble _08013A10 ldrh r0, [r4, 0x1A] subs r0, 0x1 strh r0, [r4, 0x18] _08013A10: movs r1, 0 strh r1, [r4, 0x4] ldr r0, [r6, 0xC] cmp r0, 0x6 bne _08013A24 movs r0, 0x10 strh r0, [r4, 0x6] b _08013A26 .align 2, 0 _08013A20: .4byte gUnknown_2027370 _08013A24: strh r1, [r4, 0x6] _08013A26: lsls r0, r5, 16 asrs r0, 16 cmp r0, 0x1 bgt _08013A32 movs r0, 0 b _08013A40 _08013A32: movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0x4 ldrsh r1, [r6, r2] adds r0, r1 subs r0, 0x2 lsls r0, 3 _08013A40: strh r0, [r4, 0xC] movs r1, 0x2 ldrsh r0, [r6, r1] adds r0, 0x1 lsls r0, 3 subs r0, 0x2 strh r0, [r4, 0xE] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8013984 thumb_func_start sub_8013A54 sub_8013A54: push {lr} adds r2, r0, 0 movs r0, 0x1E ldrsh r1, [r2, r0] movs r3, 0x20 ldrsh r0, [r2, r3] subs r0, 0x1 cmp r1, r0 bge _08013A6C ldrh r0, [r2, 0x1E] adds r0, 0x1 b _08013A6E _08013A6C: movs r0, 0 _08013A6E: strh r0, [r2, 0x1E] adds r0, r2, 0 bl sub_8013984 pop {r0} bx r0 thumb_func_end sub_8013A54 thumb_func_start sub_8013A7C sub_8013A7C: push {lr} adds r1, r0, 0 ldrh r2, [r1, 0x1E] movs r3, 0x1E ldrsh r0, [r1, r3] cmp r0, 0 bgt _08013A90 ldrh r0, [r1, 0x20] subs r0, 0x1 b _08013A92 _08013A90: subs r0, r2, 0x1 _08013A92: strh r0, [r1, 0x1E] adds r0, r1, 0 bl sub_8013984 pop {r0} bx r0 thumb_func_end sub_8013A7C thumb_func_start sub_8013AA0 sub_8013AA0: push {r4,r5,lr} sub sp, 0x28 adds r5, r0, 0 ldrh r1, [r5, 0x28] ldr r0, _08013B9C ands r0, r1 ldr r1, _08013BA0 ands r0, r1 ldr r4, _08013BA4 ands r0, r4 ldr r1, _08013BA8 ands r0, r1 ldr r1, _08013BAC ands r0, r1 movs r1, 0x80 lsls r1, 7 ldr r3, _08013BB0 ands r0, r3 orrs r0, r1 strh r0, [r5, 0x28] movs r1, 0x80 lsls r1, 6 ldrh r0, [r5, 0x2A] ldr r2, _08013BB4 ands r2, r0 orrs r2, r1 ands r2, r3 movs r3, 0xFC lsls r3, 2 ldrh r1, [r5, 0x2C] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r3 ands r0, r4 movs r3, 0xF movs r4, 0xF0 lsls r4, 8 ldr r1, _08013BB8 ands r0, r1 orrs r0, r4 strh r0, [r5, 0x2C] movs r0, 0xFE lsls r0, 8 ands r2, r0 movs r0, 0xF0 orrs r2, r0 strh r2, [r5, 0x2A] subs r1, 0xFF ldrh r0, [r5, 0x2E] ands r3, r0 movs r0, 0 orrs r3, r1 strh r3, [r5, 0x2E] adds r1, r5, 0 adds r1, 0x26 strb r0, [r1] ldr r1, [r5, 0xC] ldr r2, [r5, 0x10] mov r0, sp bl ConvertToDecimal ldr r0, [r5, 0x10] adds r1, r5, 0 adds r1, 0x25 strb r0, [r1] ldrb r2, [r1] subs r0, r2, 0x1 lsls r0, 2 add r0, sp ldr r0, [r0] cmp r0, 0 bne _08013B50 cmp r2, 0x1 bls _08013B50 adds r2, r1, 0 _08013B38: ldrb r0, [r2] subs r0, 0x1 strb r0, [r2] ldrb r1, [r2] subs r0, r1, 0x1 lsls r0, 2 add r0, sp ldr r0, [r0] cmp r0, 0 bne _08013B50 cmp r1, 0x1 bhi _08013B38 _08013B50: ldr r1, [r5, 0x4] str r1, [r5] ldr r2, [r5, 0x10] mov r0, sp bl ConvertToDecimal adds r0, r5, 0 adds r0, 0x25 ldrb r0, [r0] subs r0, 0x1 adds r1, r5, 0 adds r1, 0x24 strb r0, [r1] ldrb r2, [r1] lsls r0, r2, 2 add r0, sp ldr r0, [r0] cmp r0, 0 bne _08013B92 cmp r2, 0 beq _08013B92 adds r2, r1, 0 _08013B7C: ldrb r0, [r2] subs r0, 0x1 strb r0, [r2] ldrb r1, [r2] lsls r0, r1, 2 add r0, sp ldr r0, [r0] cmp r0, 0 bne _08013B92 cmp r1, 0 bne _08013B7C _08013B92: add sp, 0x28 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08013B9C: .4byte 0x0000feff _08013BA0: .4byte 0x0000fdff _08013BA4: .4byte 0x0000f3ff _08013BA8: .4byte 0x0000efff _08013BAC: .4byte 0x0000dfff _08013BB0: .4byte 0x00003fff _08013BB4: .4byte 0x0000c1ff _08013BB8: .4byte 0x00000fff thumb_func_end sub_8013AA0 thumb_func_start sub_8013BBC sub_8013BBC: push {r4-r7,lr} adds r7, r0, 0 adds r4, r7, 0 adds r4, 0x26 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] adds r0, r7, 0 bl sub_8013D10 ldrb r1, [r4] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08013C26 movs r2, 0x80 lsls r2, 6 ldrh r1, [r7, 0x2A] ldr r4, _08013C38 adds r0, r4, 0 ands r0, r1 orrs r0, r2 strh r0, [r7, 0x2A] adds r5, r7, 0 adds r5, 0x28 movs r6, 0x80 lsls r6, 1 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0 bl AddSprite ldrh r0, [r7, 0x2A] ands r4, r0 strh r4, [r7, 0x2A] ldrh r1, [r7, 0x2E] ldr r0, _08013C3C lsrs r1, 4 adds r1, 0x10 ands r1, r0 lsls r1, 4 ldrh r2, [r7, 0x2E] movs r0, 0xF ands r0, r2 orrs r0, r1 strh r0, [r7, 0x2E] adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0 bl AddSprite _08013C26: adds r0, r7, 0 bl sub_8013DD0 lsls r0, 24 cmp r0, 0 beq _08013C40 movs r0, 0x1 b _08013C62 .align 2, 0 _08013C38: .4byte 0x0000c1ff _08013C3C: .4byte 0x00000fff _08013C40: bl sub_8012AE8 cmp r0, 0x1 beq _08013C56 cmp r0, 0x2 bne _08013C60 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08013C62 _08013C56: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08013C62 _08013C60: movs r0, 0 _08013C62: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8013BBC thumb_func_start sub_8013C68 sub_8013C68: push {r4-r6,lr} sub sp, 0x2C adds r5, r0, 0 ldr r1, [r5] ldr r2, [r5, 0x10] add r0, sp, 0x4 bl ConvertToDecimal ldr r0, [r5, 0x10] subs r4, r0, 0x1 cmp r4, 0 ble _08013CA0 lsls r0, r4, 2 mov r1, sp adds r1, r0 adds r1, 0x4 ldr r0, [r1] cmp r0, 0 bne _08013CA0 movs r2, 0xFF _08013C90: str r2, [r1] subs r1, 0x4 subs r4, 0x1 cmp r4, 0 ble _08013CA0 ldr r0, [r1] cmp r0, 0 beq _08013C90 _08013CA0: movs r4, 0 adds r0, r5, 0 adds r0, 0x25 adds r6, r0, 0 b _08013CDA _08013CAA: lsls r0, r4, 2 add r0, sp adds r0, 0x4 ldr r0, [r0] cmp r0, 0xFF bne _08013CBA movs r3, 0x2A b _08013CC0 _08013CBA: adds r0, 0x30 lsls r0, 24 lsrs r3, r0, 24 _08013CC0: adds r4, 0x1 lsls r1, r4, 1 adds r1, r4 lsls r1, 2 ldr r0, [r5, 0x1C] subs r0, r1 ldr r1, [r5, 0x20] ldr r2, [r5, 0x14] str r2, [sp] adds r2, r3, 0 movs r3, 0x7 bl sub_8012C60 _08013CDA: ldrb r0, [r6] cmp r4, r0 blt _08013CAA movs r4, 0 b _08013D02 _08013CE4: ldr r0, [r5, 0x14] adds r4, 0x1 lsls r2, r4, 1 adds r2, r4 lsls r2, 2 ldr r1, [r5, 0x1C] subs r1, r2 subs r1, 0x1 ldr r2, [r5, 0x20] adds r2, 0xA movs r3, 0x5 str r3, [sp] movs r3, 0xB bl sub_800792C _08013D02: ldr r0, [r5, 0x10] cmp r4, r0 blt _08013CE4 add sp, 0x2C pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8013C68 thumb_func_start sub_8013D10 sub_8013D10: push {r4-r7,lr} adds r6, r0, 0 ldr r0, [r6, 0x14] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 ldr r0, _08013D34 adds r7, r1, r0 adds r4, r6, 0 adds r4, 0x24 ldrb r5, [r4] bl sub_8012AE8 cmp r0, 0x9 beq _08013D38 cmp r0, 0xA beq _08013D4E b _08013D62 .align 2, 0 _08013D34: .4byte gUnknown_2027370 _08013D38: ldrb r1, [r4] adds r0, r6, 0 adds r0, 0x25 ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 bge _08013D4A adds r0, r1, 0x1 b _08013D5C _08013D4A: movs r0, 0 b _08013D60 _08013D4E: ldrb r0, [r4] cmp r0, 0 bne _08013D5A adds r0, r6, 0 adds r0, 0x25 ldrb r0, [r0] _08013D5A: subs r0, 0x1 _08013D5C: lsls r0, 24 lsrs r0, 24 _08013D60: adds r5, r0, 0 _08013D62: adds r4, r6, 0 adds r4, 0x24 ldrb r0, [r4] cmp r5, r0 beq _08013D7C strb r5, [r4] movs r0, 0x3 bl sub_80119D4 adds r1, r6, 0 adds r1, 0x26 movs r0, 0x8 strb r0, [r1] _08013D7C: ldrb r0, [r4] adds r0, 0x1 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r2, [r6, 0x1C] subs r2, r1 movs r1, 0 ldrsh r0, [r7, r1] lsls r0, 3 adds r2, r0 subs r2, 0x3 ldr r0, _08013DC8 ands r2, r0 ldrh r1, [r6, 0x2A] movs r0, 0xFE lsls r0, 8 ands r0, r1 orrs r0, r2 strh r0, [r6, 0x2A] movs r1, 0x2 ldrsh r0, [r7, r1] lsls r0, 3 ldr r1, [r6, 0x20] adds r1, r0 subs r1, 0x7 ldr r0, _08013DCC ands r1, r0 lsls r1, 4 ldrh r2, [r6, 0x2E] movs r0, 0xF ands r0, r2 orrs r0, r1 strh r0, [r6, 0x2E] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08013DC8: .4byte 0x000001ff _08013DCC: .4byte 0x00000fff thumb_func_end sub_8013D10 thumb_func_start sub_8013DD0 sub_8013DD0: push {r4,r5,lr} adds r4, r0, 0 bl sub_8012AE8 cmp r0, 0x7 beq _08013DE4 cmp r0, 0x8 beq _08013E10 movs r0, 0 b _08013E4C _08013DE4: ldr r2, [r4] ldr r0, [r4, 0xC] cmp r2, r0 beq _08013E18 ldr r1, _08013E0C adds r0, r4, 0 adds r0, 0x24 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] adds r5, r2, r0 movs r0, 0x3 bl sub_80119D4 ldr r0, [r4, 0xC] cmp r5, r0 bgt _08013E3E b _08013E48 .align 2, 0 _08013E0C: .4byte gUnknown_80D4830 _08013E10: ldr r2, [r4] ldr r0, [r4, 0x8] cmp r2, r0 bne _08013E22 _08013E18: movs r0, 0x2 bl sub_80119D4 movs r0, 0 b _08013E4C _08013E22: ldr r1, _08013E44 adds r0, r4, 0 adds r0, 0x24 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] subs r5, r2, r0 movs r0, 0x3 bl sub_80119D4 ldr r0, [r4, 0x8] cmp r5, r0 bge _08013E48 _08013E3E: str r0, [r4] b _08013E4A .align 2, 0 _08013E44: .4byte gUnknown_80D4830 _08013E48: str r5, [r4] _08013E4A: movs r0, 0x1 _08013E4C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8013DD0 thumb_func_start sub_8013E54 sub_8013E54: push {r4-r6,lr} sub sp, 0x8 ldr r6, _08013F60 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] mov r0, sp ldrh r0, [r0] ldr r1, _08013F64 ands r1, r0 ldr r3, _08013F68 ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013F6C ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r5, _08013F70 adds r0, r5, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013F74 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08013F78 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] movs r4, 0x80 lsls r4, 7 mov r0, sp ldrh r1, [r0] ldr r0, _08013F7C ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] orrs r4, r0 ands r3, r1 orrs r3, r4 str r3, [sp] mov r3, sp movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r5 movs r2, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _08013F80 ands r0, r4 orrs r0, r1 strh r0, [r3, 0x4] movs r1, 0x2 ldrsh r0, [r6, r1] lsls r0, 3 adds r0, 0x80 ands r0, r4 lsls r0, 4 ldrh r1, [r3, 0x6] ands r2, r1 orrs r2, r0 strh r2, [r3, 0x6] movs r0, 0x70 strh r0, [r3, 0x2] movs r1, 0x80 lsls r1, 1 mov r0, sp movs r2, 0 movs r3, 0 bl AddSprite add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08013F60: .4byte gUnknown_2027370 _08013F64: .4byte 0x0000feff _08013F68: .4byte 0xffff0000 _08013F6C: .4byte 0x0000fdff _08013F70: .4byte 0x0000f3ff _08013F74: .4byte 0x0000efff _08013F78: .4byte 0x0000dfff _08013F7C: .4byte 0x00003fff _08013F80: .4byte 0x00000fff thumb_func_end sub_8013E54 thumb_func_start sub_8013F84 sub_8013F84: push {r4-r6,lr} sub sp, 0x8 ldr r6, _08014090 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] mov r0, sp ldrh r0, [r0] ldr r1, _08014094 ands r1, r0 ldr r3, _08014098 ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _0801409C ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r5, _080140A0 adds r0, r5, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080140A4 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080140A8 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] movs r4, 0x80 lsls r4, 7 mov r0, sp ldrh r1, [r0] ldr r0, _080140AC ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] orrs r4, r0 ands r3, r1 orrs r3, r4 str r3, [sp] mov r3, sp movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r5 movs r2, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _080140B0 ands r0, r4 orrs r0, r1 strh r0, [r3, 0x4] movs r1, 0x2 ldrsh r0, [r6, r1] lsls r0, 3 adds r0, 0x60 ands r0, r4 lsls r0, 4 ldrh r1, [r3, 0x6] ands r2, r1 orrs r2, r0 strh r2, [r3, 0x6] movs r0, 0x70 strh r0, [r3, 0x2] movs r1, 0x80 lsls r1, 1 mov r0, sp movs r2, 0 movs r3, 0 bl AddSprite add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08014090: .4byte gUnknown_2027370 _08014094: .4byte 0x0000feff _08014098: .4byte 0xffff0000 _0801409C: .4byte 0x0000fdff _080140A0: .4byte 0x0000f3ff _080140A4: .4byte 0x0000efff _080140A8: .4byte 0x0000dfff _080140AC: .4byte 0x00003fff _080140B0: .4byte 0x00000fff thumb_func_end sub_8013F84 thumb_func_start sub_80140B4 sub_80140B4: push {r4-r7,lr} ldr r4, _080140D8 adds r2, r0, 0 movs r3, 0x3 _080140BC: adds r1, r2, 0 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r4, 0x18 adds r2, 0x18 subs r3, 0x1 cmp r3, 0 bge _080140BC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080140D8: .4byte gUnknown_80D47C8 thumb_func_end sub_80140B4 thumb_func_start sub_80140DC sub_80140DC: push {lr} sub sp, 0x4 ldr r0, _080140F4 str r0, [sp] mov r0, sp bl SetSavingIconCoords bl sub_8011830 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080140F4: .4byte 0x008000c8 thumb_func_end sub_80140DC thumb_func_start sub_80140F8 sub_80140F8: push {lr} sub sp, 0x4 ldr r0, _08014110 str r0, [sp] mov r0, sp bl SetSavingIconCoords bl sub_8011830 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08014110: .4byte 0x004000bc thumb_func_end sub_80140F8 thumb_func_start sub_8014114 sub_8014114: push {lr} bl sub_8011854 movs r0, 0 bl SetSavingIconCoords pop {r0} bx r0 thumb_func_end sub_8014114 thumb_func_start nullsub_201 nullsub_201: bx lr thumb_func_end nullsub_201 thumb_func_start sub_8014128 sub_8014128: push {lr} bl sub_8012AE8 cmp r0, 0x2 beq _08014136 movs r0, 0x1 b _08014138 _08014136: movs r0, 0 _08014138: pop {r1} bx r1 thumb_func_end sub_8014128 thumb_func_start sub_801413C sub_801413C: movs r0, 0 bx lr thumb_func_end sub_801413C thumb_func_start sub_8014140 sub_8014140: movs r0, 0 bx lr thumb_func_end sub_8014140 thumb_func_start sub_8014144 sub_8014144: ldr r0, _0801415C movs r2, 0 str r2, [r0] ldr r0, _08014160 movs r1, 0x3C str r1, [r0] ldr r0, _08014164 str r1, [r0] ldr r0, _08014168 str r2, [r0] bx lr .align 2, 0 _0801415C: .4byte gUnknown_202E744 _08014160: .4byte gUnknown_202E738 _08014164: .4byte gUnknown_202E73C _08014168: .4byte gUnknown_202E740 thumb_func_end sub_8014144 thumb_func_start sub_801416C sub_801416C: push {lr} adds r2, r0, 0 adds r3, r1, 0 movs r0, 0x1 negs r0, r0 cmp r2, r0 bge _0801418C ldr r0, _08014184 str r3, [r0] ldr r1, _08014188 negs r0, r2 b _08014194 .align 2, 0 _08014184: .4byte gUnknown_202E738 _08014188: .4byte gUnknown_202E740 _0801418C: ldr r0, _080141A8 str r2, [r0] ldr r1, _080141AC movs r0, 0 _08014194: str r0, [r1] ldr r0, _080141B0 adds r1, r3, 0 cmp r1, 0 bge _080141A0 movs r1, 0 _080141A0: str r1, [r0] pop {r0} bx r0 .align 2, 0 _080141A8: .4byte gUnknown_202E738 _080141AC: .4byte gUnknown_202E740 _080141B0: .4byte gUnknown_202E73C thumb_func_end sub_801416C thumb_func_start sub_80141B4 sub_80141B4: push {r4-r6,lr} sub sp, 0x14 lsls r3, 16 lsrs r3, 16 movs r6, 0x1 negs r6, r6 movs r5, 0 str r5, [sp] movs r4, 0x3 str r4, [sp, 0x4] str r5, [sp, 0x8] str r2, [sp, 0xC] str r3, [sp, 0x10] adds r2, r6, 0 movs r3, 0 bl sub_8014248 add sp, 0x14 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80141B4 thumb_func_start sub_80141E0 sub_80141E0: push {r4-r6,lr} sub sp, 0x14 lsls r6, r2, 16 movs r2, 0x1 negs r2, r2 ldr r3, _08014210 movs r5, 0 str r5, [sp] movs r4, 0x3 str r4, [sp, 0x4] str r5, [sp, 0x8] str r1, [sp, 0xC] movs r1, 0xC0 lsls r1, 18 orrs r1, r6 lsrs r1, 16 str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08014210: .4byte gUnknown_80D485C thumb_func_end sub_80141E0 thumb_func_start sub_8014214 sub_8014214: push {r4-r6,lr} sub sp, 0x14 lsls r6, r2, 16 movs r2, 0x1 negs r2, r2 ldr r3, _08014244 movs r5, 0 str r5, [sp] movs r4, 0x3 str r4, [sp, 0x4] str r5, [sp, 0x8] str r1, [sp, 0xC] movs r1, 0xC0 lsls r1, 18 orrs r1, r6 lsrs r1, 16 str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08014244: .4byte gUnknown_80D4880 thumb_func_end sub_8014214 thumb_func_start sub_8014248 sub_8014248: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r1, 0 mov r9, r2 mov r8, r3 ldr r5, [sp, 0x28] ldr r7, [sp, 0x30] ldr r1, [sp, 0x34] lsls r1, 16 lsrs r1, 16 mov r10, r1 movs r1, 0 str r1, [sp] ldr r4, _080142B8 ldr r3, _080142BC adds r2, r4, r3 adds r1, r4, 0 mov r3, r10 bl xxx_format_string ldr r0, _080142C0 str r4, [r0] ldr r0, _080142C4 str r6, [r0, 0x24] ldr r0, _080142C8 str r5, [r0] ldr r0, _080142CC mov r4, r8 str r4, [r0] ldr r0, _080142D0 ldr r5, [sp, 0x24] str r5, [r0] ldr r0, _080142D4 mov r6, r9 str r6, [r0] ldr r0, _080142D8 bl sub_801317C movs r0, 0x10 mov r1, r10 ands r0, r1 cmp r0, 0 beq _080142E4 ldr r2, _080142DC adds r1, r2, 0 ldr r0, _080142E0 ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r3,r4,r6} stm r1!, {r3,r4,r6} b _080142F2 .align 2, 0 _080142B8: .4byte gUnknown_202E798 _080142BC: .4byte 0x000003e7 _080142C0: .4byte gUnknown_202E794 _080142C4: .4byte gUnknown_202E748 _080142C8: .4byte gUnknown_202EC10 _080142CC: .4byte gUnknown_202EC14 _080142D0: .4byte gUnknown_202EC18 _080142D4: .4byte gUnknown_202EC1C _080142D8: .4byte gUnknown_202EC28 _080142DC: .4byte gUnknown_203B198 _080142E0: .4byte gUnknown_80D48DC _080142E4: ldr r2, _08014358 adds r1, r2, 0 ldr r0, _0801435C ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} _080142F2: adds r4, r2, 0 movs r0, 0 strh r0, [r4, 0x24] strh r0, [r4, 0x26] strh r0, [r4, 0x28] movs r0, 0x40 strb r0, [r4, 0x18] cmp r7, 0 beq _08014368 ldr r1, [r7, 0x4] cmp r1, 0 beq _08014368 ldrb r0, [r7, 0xC] lsls r0, 3 adds r1, 0x4 adds r1, r0 ldr r0, [r1] cmp r0, 0 beq _08014368 ldrh r0, [r7, 0x8] strh r0, [r4, 0x20] ldrh r0, [r7, 0xA] strh r0, [r4, 0x22] movs r0, 0x5 strh r0, [r4, 0x24] strh r0, [r4, 0x26] strh r0, [r4, 0x28] movs r4, 0 _0801432A: adds r0, r4, 0 adds r0, 0xE0 ldr r2, [r7, 0x4] ldrb r1, [r7, 0xC] lsls r1, 3 adds r2, r1 lsls r3, r4, 2 ldr r1, [r2] adds r1, r3 bl SetBGPaletteBufferColorArray adds r4, 0x1 cmp r4, 0xF ble _0801432A movs r0, 0x1 str r0, [sp] ldrb r0, [r7, 0xE] cmp r0, 0 beq _08014360 ldr r1, _08014358 movs r0, 0x7 b _08014364 .align 2, 0 _08014358: .4byte gUnknown_203B198 _0801435C: .4byte gUnknown_80D48C4 _08014360: ldr r1, _080143E8 movs r0, 0x5 _08014364: str r0, [r1, 0x1C] adds r4, r1, 0 _08014368: ldr r2, _080143EC adds r1, r4, 0 adds r1, 0x30 adds r0, r2, 0 ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} adds r0, r4, 0 adds r0, 0x48 ldm r2!, {r1,r3,r5} stm r0!, {r1,r3,r5} ldm r2!, {r1,r3,r6} stm r0!, {r1,r3,r6} bl sub_8004914 adds r0, r4, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, _080143F0 movs r4, 0 movs r2, 0 movs r0, 0x4 strh r0, [r1] strh r0, [r1, 0x2] movs r0, 0x70 strh r0, [r1, 0x8] ldr r0, _080143F4 movs r5, 0x2 ldrsh r0, [r0, r5] lsls r0, 3 adds r0, 0x22 strh r0, [r1, 0xA] movs r0, 0x7 str r0, [r1, 0x10] str r2, [r1, 0x1C] adds r1, 0x20 strb r4, [r1] movs r0, 0x10 mov r6, r10 ands r0, r6 movs r1, 0x3 cmp r0, 0 beq _080143C6 movs r1, 0x8 _080143C6: adds r0, r1, 0 bl sub_80063D8 ldr r0, _080143F8 movs r1, 0x1 str r1, [r0] ldr r0, _080143FC mov r2, r10 strh r2, [r0] movs r0, 0x20 mov r3, r10 ands r0, r3 cmp r0, 0 beq _08014404 ldr r0, _08014400 strb r1, [r0] b _08014408 .align 2, 0 _080143E8: .4byte gUnknown_203B198 _080143EC: .4byte gUnknown_80D48AC _080143F0: .4byte gUnknown_202E748 _080143F4: .4byte gUnknown_2027370 _080143F8: .4byte gUnknown_202E744 _080143FC: .4byte gUnknown_202E77C _08014400: .4byte gUnknown_202E790 _08014404: ldr r0, _0801445C strb r4, [r0] _08014408: movs r0, 0x80 lsls r0, 3 mov r4, r10 ands r0, r4 cmp r0, 0 beq _08014418 bl sub_8094C14 _08014418: ldr r0, _08014460 movs r1, 0x1 str r1, [r0] ldr r0, _08014464 str r1, [r0] bl sub_80048F8 ldr r1, _08014468 movs r0, 0 strb r0, [r1] ldr r1, _0801446C movs r0, 0 str r0, [r1] ldr r5, [sp] cmp r5, 0 beq _08014480 ldr r0, [r7, 0x4] ldrb r1, [r7, 0xC] lsls r1, 3 adds r0, 0x4 adds r0, r1 ldr r4, [r0] movs r0, 0x1 bl sub_80073B8 ldrb r0, [r7, 0xD] cmp r0, 0 bne _08014470 movs r0, 0x1 adds r1, r4, 0 movs r2, 0xE bl sub_8008274 b _0801447A .align 2, 0 _0801445C: .4byte gUnknown_202E790 _08014460: .4byte gUnknown_202E788 _08014464: .4byte gUnknown_202E78C _08014468: .4byte gUnknown_202E791 _0801446C: .4byte gUnknown_202E784 _08014470: movs r0, 0x1 adds r1, r4, 0 movs r2, 0xE bl sub_800836C _0801447A: movs r0, 0x1 bl sub_80073E0 _08014480: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8014248 thumb_func_start sub_8014490 sub_8014490: ldr r0, _0801449C movs r1, 0 str r1, [r0] ldr r0, _080144A0 str r1, [r0] bx lr .align 2, 0 _0801449C: .4byte gUnknown_202E744 _080144A0: .4byte gUnknown_202EC1C thumb_func_end sub_8014490 thumb_func_start sub_80144A4 sub_80144A4: push {lr} adds r1, r0, 0 cmp r1, 0 beq _080144B2 ldr r0, _080144BC ldr r0, [r0] str r0, [r1] _080144B2: ldr r0, _080144C0 ldr r0, [r0] pop {r1} bx r1 .align 2, 0 _080144BC: .4byte gUnknown_202EC1C _080144C0: .4byte gUnknown_202E744 thumb_func_end sub_80144A4 thumb_func_start xxx_draw_string_80144C4 xxx_draw_string_80144C4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0x1 mov r10, r0 ldr r1, _080144F4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _080144DC: ldr r0, _080144F8 ldr r1, [r0] adds r3, r0, 0 cmp r1, 0xB bls _080144E8 b _08014A6A _080144E8: lsls r0, r1, 2 ldr r1, _080144FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080144F4: .4byte gUnknown_202E784 _080144F8: .4byte gUnknown_202E744 _080144FC: .4byte _08014500 .align 2, 0 _08014500: .4byte _08014A72 .4byte _08014530 .4byte _08014708 .4byte _08014A38 .4byte _08014A48 .4byte _08014A60 .4byte _08014778 .4byte _080147E2 .4byte _080147E2 .4byte _080147E2 .4byte _080149D8 .4byte _08014A04 _08014530: ldr r0, _08014540 ldr r6, [r0] ldr r0, _08014544 ldrb r0, [r0] cmp r0, 0 beq _0801457C ldr r7, _08014548 b _08014580 .align 2, 0 _08014540: .4byte gUnknown_202E794 _08014544: .4byte gUnknown_202E790 _08014548: .4byte 0x0001869f _0801454C: str r2, [r3, 0x1C] adds r1, r3, 0 adds r1, 0x20 movs r0, 0x1 strb r0, [r1] ldr r1, _0801456C movs r0, 0x8 str r0, [r1] ldr r0, _08014570 strb r2, [r0] ldr r1, _08014574 ldr r0, _08014578 ldr r0, [r0] str r0, [r1] b _0801466C .align 2, 0 _0801456C: .4byte gUnknown_202E744 _08014570: .4byte gUnknown_202E791 _08014574: .4byte gUnknown_202E780 _08014578: .4byte gUnknown_202E738 _0801457C: ldr r0, _08014594 ldr r7, [r0] _08014580: ldr r1, _08014598 movs r0, 0 str r0, [r1, 0x2C] bl sub_80073B8 ldr r1, _0801459C mov r8, r1 ldr r2, _080145A0 mov r9, r2 b _08014652 .align 2, 0 _08014594: .4byte gUnknown_202E788 _08014598: .4byte gUnknown_202E748 _0801459C: .4byte gUnknown_202E744 _080145A0: .4byte gUnknown_202E780 _080145A4: adds r0, r4, 0 adds r0, 0x20 ldrb r5, [r0] cmp r5, 0 beq _080145EC movs r3, 0x2 ldrsh r0, [r4, r3] cmp r0, 0x22 ble _080145CC movs r0, 0x8 mov r4, r8 str r0, [r4] ldr r0, _080145C8 ldr r0, [r0] mov r1, r9 str r0, [r1] b _080145DA .align 2, 0 _080145C8: .4byte gUnknown_202E738 _080145CC: movs r0, 0x7 mov r2, r8 str r0, [r2] ldr r0, _080145E4 ldr r0, [r0] mov r3, r9 str r0, [r3] _080145DA: ldr r1, _080145E8 movs r0, 0 strb r0, [r1] b _0801466C .align 2, 0 _080145E4: .4byte gUnknown_202E73C _080145E8: .4byte gUnknown_202E791 _080145EC: ldrb r0, [r6] cmp r0, 0 beq _0801466C cmp r0, 0xD beq _080145FA cmp r0, 0xA bne _08014608 _080145FA: movs r0, 0x4 strh r0, [r4] ldrh r0, [r4, 0x2] adds r0, 0xB strh r0, [r4, 0x2] adds r6, 0x1 b _08014630 _08014608: adds r0, r6, 0 add r1, sp, 0x4 bl xxx_get_next_char_from_string adds r6, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] ldr r2, [sp, 0x4] ldr r3, [r4, 0x10] str r5, [sp] bl xxx_call_draw_char ldrh r1, [r4] adds r1, r0 strh r1, [r4] ldr r0, _08014694 ldr r0, [r0] str r0, [r4, 0x2C] _08014630: ldr r3, _08014698 movs r4, 0x2 ldrsh r0, [r3, r4] cmp r0, 0x22 ble _08014650 ldr r0, _0801469C ldrh r1, [r0] movs r0, 0x10 ands r0, r1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 bne _0801464C b _0801454C _0801464C: movs r0, 0x4 strh r0, [r3, 0x2] _08014650: subs r7, 0x1 _08014652: cmp r7, 0 ble _0801466C ldr r4, _08014698 adds r0, r6, 0 adds r1, r4, 0 bl sub_8009190 adds r6, r0, 0 adds r0, r4, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0 beq _080145A4 _0801466C: movs r0, 0 bl sub_80073E0 ldr r4, _080146A0 str r6, [r4] ldr r0, _080146A4 bl sub_801317C ldr r0, [r4] ldrb r0, [r0] cmp r0, 0 bne _080146BC ldr r0, _080146A8 ldr r0, [r0] cmp r0, 0 beq _080146B0 ldr r1, _080146AC movs r0, 0x3 str r0, [r1] b _08014A72 .align 2, 0 _08014694: .4byte gUnknown_202E78C _08014698: .4byte gUnknown_202E748 _0801469C: .4byte gUnknown_202E77C _080146A0: .4byte gUnknown_202E794 _080146A4: .4byte gUnknown_202EC28 _080146A8: .4byte gUnknown_202EC14 _080146AC: .4byte gUnknown_202E744 _080146B0: ldr r1, _080146B8 movs r0, 0x6 str r0, [r1] b _08014A72 .align 2, 0 _080146B8: .4byte gUnknown_202E744 _080146BC: ldr r0, _080146E8 movs r2, 0 str r2, [r0, 0x30] adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _080146FC ldr r1, _080146EC ldr r0, [r1] cmp r0, 0x1 beq _080146D4 b _08014A72 _080146D4: movs r0, 0x7 str r0, [r1] ldr r0, _080146F0 strb r2, [r0] ldr r1, _080146F4 ldr r0, _080146F8 ldr r0, [r0] str r0, [r1] b _08014A72 .align 2, 0 _080146E8: .4byte gUnknown_202E748 _080146EC: .4byte gUnknown_202E744 _080146F0: .4byte gUnknown_202E791 _080146F4: .4byte gUnknown_202E780 _080146F8: .4byte gUnknown_202E738 _080146FC: ldr r1, _08014704 movs r0, 0x2 b _08014A68 .align 2, 0 _08014704: .4byte gUnknown_202E744 _08014708: ldr r4, _08014760 ldrh r1, [r4] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08014718 bl sub_8011A04 _08014718: ldrh r1, [r4] movs r0, 0x2 ands r0, r1 ldr r2, _08014764 cmp r0, 0 bne _08014742 movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08014742 ldr r0, _08014768 ldrh r1, [r0, 0x2] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08014742 ldr r0, _0801476C movs r1, 0x1 strb r1, [r0] ldr r0, _08014770 str r0, [r2, 0x30] _08014742: ldr r1, [r2, 0x30] adds r1, 0x1 str r1, [r2, 0x30] ldr r0, [r2, 0x2C] cmp r1, r0 bgt _08014750 b _08014A72 _08014750: ldr r1, _08014774 movs r0, 0x1 str r0, [r1] adds r1, r2, 0 adds r1, 0x21 movs r0, 0 strb r0, [r1] b _08014A6A .align 2, 0 _08014760: .4byte gUnknown_202E77C _08014764: .4byte gUnknown_202E748 _08014768: .4byte gUnknown_20255F0 _0801476C: .4byte gUnknown_202E790 _08014770: .4byte 0x0001869f _08014774: .4byte gUnknown_202E744 _08014778: ldr r0, _080147B4 ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080147DC movs r0, 0x9 str r0, [r3] ldr r1, _080147B8 movs r0, 0 strb r0, [r1] ldr r0, _080147BC ldr r1, [r0] cmp r1, 0 ble _080147C8 ldr r2, _080147C0 ldr r0, _080147C4 ldr r0, [r0] subs r0, r1, r0 str r0, [r2] cmp r0, 0 blt _080147A8 b _08014A6A _080147A8: movs r0, 0xB str r0, [r3] movs r0, 0 str r0, [r2] b _08014A6A .align 2, 0 _080147B4: .4byte gUnknown_202E77C _080147B8: .4byte gUnknown_202E791 _080147BC: .4byte gUnknown_202E740 _080147C0: .4byte gUnknown_202E780 _080147C4: .4byte gUnknown_202E784 _080147C8: ldr r0, _080147D4 ldr r1, _080147D8 ldr r1, [r1] str r1, [r0] b _08014A6A .align 2, 0 _080147D4: .4byte gUnknown_202E780 _080147D8: .4byte gUnknown_202E738 _080147DC: movs r0, 0xB str r0, [r3] b _08014A6A _080147E2: movs r5, 0 ldr r0, _0801481C adds r0, 0x20 strb r5, [r0] ldr r4, _08014820 adds r0, r4, 0 movs r1, 0 bl nullsub_34 ldr r0, _08014824 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08014802 b _0801494C _08014802: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0801482C ldr r1, _08014828 ldr r0, [r1] cmp r0, 0 bgt _08014814 b _0801494C _08014814: subs r0, 0x1 str r0, [r1] b _08014856 .align 2, 0 _0801481C: .4byte gUnknown_202E748 _08014820: .4byte gUnknown_202EC28 _08014824: .4byte gUnknown_202E77C _08014828: .4byte gUnknown_202E780 _0801482C: ldr r2, _080148E4 ldrh r1, [r2, 0x2] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0801483A b _0801494C _0801483A: ldrb r0, [r4, 0x1] cmp r0, 0 beq _08014842 b _0801494C _08014842: ldrh r1, [r2] movs r0, 0xF2 ands r0, r1 cmp r0, 0x2 bne _0801484E b _0801494C _0801484E: ldrb r0, [r4, 0x5] cmp r0, 0 beq _08014856 movs r5, 0x1 _08014856: cmp r5, 0 bne _0801494C ldr r1, _080148E8 ldrb r0, [r1] adds r2, r0, 0x1 strb r2, [r1] ldr r0, _080148EC ldrh r7, [r0] movs r0, 0x2 ands r0, r7 cmp r0, 0 beq _08014870 b _08014A72 _08014870: movs r0, 0x8 ands r2, r0 cmp r2, 0 bne _0801487A b _08014A72 _0801487A: ldr r3, _080148F0 ldrh r1, [r3] ldr r0, _080148F4 ands r0, r1 ldr r1, _080148F8 ands r0, r1 ldr r4, _080148FC ands r0, r4 ldr r1, _08014900 ands r0, r1 ldr r1, _08014904 ands r0, r1 movs r1, 0x80 lsls r1, 7 ldr r2, _08014908 ands r0, r2 orrs r0, r1 strh r0, [r3] ldrh r0, [r3, 0x2] ldr r5, _0801490C ands r5, r0 ands r5, r2 strh r5, [r3, 0x2] movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r6, 0xF lsls r1, r6, 12 ldr r2, _08014910 ands r0, r2 movs r4, 0 mov r8, r4 orrs r0, r1 strh r0, [r3, 0x4] movs r0, 0x10 ands r0, r7 adds r4, r3, 0 cmp r0, 0 beq _08014914 movs r2, 0xF0 lsls r2, 3 ldrh r1, [r4, 0x6] adds r0, r6, 0 ands r0, r1 orrs r0, r2 strh r0, [r4, 0x6] movs r0, 0x70 b _08014932 .align 2, 0 _080148E4: .4byte gUnknown_20255F0 _080148E8: .4byte gUnknown_202E791 _080148EC: .4byte gUnknown_202E77C _080148F0: .4byte gUnknown_202E6E0 _080148F4: .4byte 0x0000feff _080148F8: .4byte 0x0000fdff _080148FC: .4byte 0x0000f3ff _08014900: .4byte 0x0000efff _08014904: .4byte 0x0000dfff _08014908: .4byte 0x00003fff _0801490C: .4byte 0x0000c1ff _08014910: .4byte 0x00000fff _08014914: ldr r3, _08014944 movs r0, 0xA ldrsh r1, [r3, r0] adds r1, 0x1 ands r1, r2 lsls r1, 4 ldrh r2, [r4, 0x6] adds r0, r6, 0 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x6] movs r1, 0x8 ldrsh r0, [r3, r1] ldr r1, _08014948 ands r0, r1 _08014932: strh r0, [r4, 0x2] movs r1, 0x80 lsls r1, 1 adds r0, r4, 0 movs r2, 0 movs r3, 0 bl AddSprite b _08014A72 .align 2, 0 _08014944: .4byte gUnknown_202E748 _08014948: .4byte 0x000001ff _0801494C: ldr r0, _08014960 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0 bne _08014968 ldr r1, _08014964 movs r0, 0xB str r0, [r1] b _080149BA .align 2, 0 _08014960: .4byte gUnknown_202E794 _08014964: .4byte gUnknown_202E744 _08014968: ldr r4, _08014974 ldr r0, [r4] cmp r0, 0x9 bne _08014978 movs r0, 0xB b _080149B8 .align 2, 0 _08014974: .4byte gUnknown_202E744 _08014978: cmp r0, 0x8 bne _080149B6 ldr r2, _080149A0 movs r1, 0x4 strh r1, [r2] movs r3, 0x2 ldrsh r0, [r2, r3] cmp r0, 0x22 ble _080149B6 strh r1, [r2, 0x2] ldr r0, _080149A4 ldrh r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080149A8 _08014998: movs r0, 0 bl sub_8008C54 b _080149B6 .align 2, 0 _080149A0: .4byte gUnknown_202E748 _080149A4: .4byte gUnknown_202E77C _080149A8: ldr r1, [r2, 0x1C] cmp r1, 0 bne _08014998 movs r0, 0xA str r0, [r4] str r1, [r2, 0x28] b _080149BA _080149B6: movs r0, 0x1 _080149B8: str r0, [r4] _080149BA: ldr r1, _080149D0 movs r0, 0x70 strh r0, [r1, 0x8] ldr r0, _080149D4 movs r4, 0x2 ldrsh r0, [r0, r4] lsls r0, 3 adds r0, 0x22 strh r0, [r1, 0xA] b _08014A72 .align 2, 0 _080149D0: .4byte gUnknown_202E748 _080149D4: .4byte gUnknown_2027370 _080149D8: ldr r4, _080149F8 ldr r0, [r4, 0x28] adds r0, 0x1 str r0, [r4, 0x28] ldr r0, _080149FC ldr r1, [r0] movs r0, 0 bl _call_via_r1 ldr r0, [r4, 0x28] cmp r0, 0x11 ble _08014A72 ldr r1, _08014A00 movs r0, 0x1 str r0, [r1] b _08014A72 .align 2, 0 _080149F8: .4byte gUnknown_202E748 _080149FC: .4byte gUnknown_203B088 _08014A00: .4byte gUnknown_202E744 _08014A04: ldr r0, _08014A2C ldrh r1, [r0] movs r0, 0x80 lsls r0, 2 ands r0, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _08014A34 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, _08014A30 movs r0, 0 str r0, [r1] b _08014A72 .align 2, 0 _08014A2C: .4byte gUnknown_202E77C _08014A30: .4byte gUnknown_202E744 _08014A34: str r0, [r3] b _08014A72 _08014A38: bl sub_8014A88 ldr r1, _08014A44 movs r0, 0x4 str r0, [r1] b _08014A72 .align 2, 0 _08014A44: .4byte gUnknown_202E744 _08014A48: bl sub_8014B94 lsls r0, 24 cmp r0, 0 beq _08014A72 ldr r1, _08014A5C movs r0, 0x5 str r0, [r1] b _08014A72 .align 2, 0 _08014A5C: .4byte gUnknown_202E744 _08014A60: bl nullsub_35 ldr r1, _08014A84 movs r0, 0xB _08014A68: str r0, [r1] _08014A6A: mov r0, r10 cmp r0, 0 beq _08014A72 b _080144DC _08014A72: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08014A84: .4byte gUnknown_202E744 thumb_func_end xxx_draw_string_80144C4 thumb_func_start sub_8014A88 sub_8014A88: push {r4-r7,lr} sub sp, 0x88 ldr r0, _08014A98 ldr r4, [r0] movs r5, 0 movs r7, 0 movs r6, 0 b _08014ABE .align 2, 0 _08014A98: .4byte gUnknown_202EC14 _08014A9C: adds r5, 0xC ldr r0, [r4] add r1, sp, 0x8 add r2, sp, 0x88 movs r3, 0 bl xxx_format_string add r0, sp, 0x8 bl sub_8008ED0 cmp r7, r0 bge _08014AB6 adds r7, r0, 0 _08014AB6: adds r4, 0x8 adds r6, 0x1 cmp r6, 0x9 bgt _08014AC4 _08014ABE: ldr r0, [r4] cmp r0, 0 bne _08014A9C _08014AC4: adds r0, r5, 0 cmp r5, 0 bge _08014ACC adds r0, r5, 0x7 _08014ACC: asrs r2, r0, 3 movs r0, 0x7 ands r5, r0 cmp r5, 0 beq _08014AD8 adds r2, 0x1 _08014AD8: ldr r4, _08014B74 ldr r0, _08014B78 ldr r0, [r0] str r0, [r4, 0x34] adds r1, r7, 0 cmp r1, 0 bge _08014AE8 adds r1, 0x7 _08014AE8: asrs r1, 3 adds r1, 0x2 strh r1, [r4, 0x3C] adds r0, r4, 0 adds r0, 0x40 strh r2, [r0] strh r2, [r4, 0x3E] movs r0, 0x1C subs r0, r1 strh r0, [r4, 0x38] movs r0, 0xE subs r0, r2 strh r0, [r4, 0x3A] movs r0, 0x80 strb r0, [r4] movs r0, 0xC0 strb r0, [r4, 0x18] ldr r5, _08014B7C ldr r0, [r5] cmp r0, 0 beq _08014B1E adds r1, r4, 0 adds r1, 0x48 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} _08014B1E: bl sub_8004914 adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl sub_800641C ldr r0, _08014B80 ldr r1, _08014B84 ldr r1, [r1] ldr r2, _08014B88 ldr r3, _08014B8C ldr r3, [r3] ldr r4, _08014B90 ldr r4, [r4] str r4, [sp] movs r4, 0x2 str r4, [sp, 0x4] bl sub_8012D60 ldr r0, [r5] cmp r0, 0 beq _08014B6A movs r0, 0x3 bl sub_80073B8 ldr r0, [r5] ldr r2, [r0, 0x18] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r1, 0x2 movs r3, 0x3 bl xxx_call_draw_string movs r0, 0x3 bl sub_80073E0 _08014B6A: add sp, 0x88 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08014B74: .4byte gUnknown_203B198 _08014B78: .4byte gUnknown_202EC10 _08014B7C: .4byte gUnknown_202EC20 _08014B80: .4byte gUnknown_202EBC0 _08014B84: .4byte gUnknown_202EC14 _08014B88: .4byte gUnknown_80D48A0 _08014B8C: .4byte gUnknown_202EC18 _08014B90: .4byte gUnknown_202EC1C thumb_func_end sub_8014A88 thumb_func_start sub_8014B94 sub_8014B94: push {r4,lr} ldr r4, _08014BA8 adds r0, r4, 0 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 beq _08014BAC movs r0, 0 b _08014BB6 .align 2, 0 _08014BA8: .4byte gUnknown_202EBC0 _08014BAC: ldr r1, _08014BBC adds r0, r4, 0 bl sub_8013114 movs r0, 0x1 _08014BB6: pop {r4} pop {r1} bx r1 .align 2, 0 _08014BBC: .4byte gUnknown_202EC1C thumb_func_end sub_8014B94 thumb_func_start nullsub_35 nullsub_35: bx lr thumb_func_end nullsub_35 thumb_func_start xxx_format_string xxx_format_string: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x40 adds r5, r0, 0 str r1, [sp, 0x3C] adds r7, r2, 0 lsls r3, 16 lsrs r3, 16 mov r8, r3 movs r0, 0x1 mov r10, r0 mov r9, r0 subs r7, 0x1 b _08014F62 _08014BE6: movs r1, 0x1 b _08014C2C _08014BEA: mov r0, r10 cmp r0, 0 beq _08014C24 movs r1, 0 mov r10, r1 mov r9, r1 movs r0, 0x8 mov r1, r8 ands r0, r1 cmp r0, 0 beq _08014C2E ldr r0, _08014C1C add r4, sp, 0x3C adds r1, r4, 0 adds r2, r7, 0 mov r3, r8 bl sub_8014FA8 ldr r0, _08014C20 adds r1, r4, 0 adds r2, r7, 0 mov r3, r8 bl sub_8014FA8 b _08014C2E .align 2, 0 _08014C1C: .4byte gUnknown_202E5D8 _08014C20: .4byte gUnknown_80D48F4 _08014C24: mov r0, r9 cmp r0, 0 beq _08014C2E movs r1, 0 _08014C2C: mov r9, r1 _08014C2E: cmp r6, 0x23 bne _08014C5A ldrb r3, [r5, 0x1] cmp r3, 0x50 beq _08014C3C cmp r3, 0x70 bne _08014C42 _08014C3C: movs r0, 0x1 mov r10, r0 mov r9, r0 _08014C42: ldr r1, [sp, 0x3C] adds r2, r1, 0x1 cmp r2, r7 bcs _08014C56 movs r0, 0x23 strb r0, [r1] str r2, [sp, 0x3C] strb r3, [r1, 0x1] adds r0, r2, 0x1 str r0, [sp, 0x3C] _08014C56: adds r5, 0x2 b _08014F62 _08014C5A: cmp r6, 0x24 beq _08014C60 b _08014F26 _08014C60: movs r4, 0 adds r5, 0x1 ldrb r0, [r5] subs r0, 0x24 cmp r0, 0x52 bls _08014C6E b _08014F0E _08014C6E: lsls r0, 2 ldr r1, _08014C78 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08014C78: .4byte _08014C7C .align 2, 0 _08014C7C: .4byte _08014F04 .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0C .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014EC4 .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014E60 .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014E54 .4byte _08014DC8 .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014DDC .4byte _08014E10 .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014F0E .4byte _08014E24 .4byte _08014F0E .4byte _08014E84 _08014DC8: adds r5, 0x1 ldrb r0, [r5] lsls r1, r0, 2 adds r1, r0 lsls r1, 4 ldr r0, _08014DD8 adds r4, r1, r0 b _08014F0C .align 2, 0 _08014DD8: .4byte gUnknown_202CF58 _08014DDC: adds r5, 0x1 ldrb r0, [r5] cmp r0, 0x6D bne _08014DFC bl sub_808D3BC adds r1, r0, 0 ldr r4, _08014DF8 adds r0, r4, 0 movs r2, 0 bl sub_808D9AC b _08014F0E .align 2, 0 _08014DF8: .4byte gUnknown_202EB80 _08014DFC: ldrb r0, [r5] lsls r1, r0, 2 adds r1, r0 lsls r1, 4 ldr r0, _08014E0C adds r4, r1, r0 b _08014F0C .align 2, 0 _08014E0C: .4byte gUnknown_202D098 _08014E10: adds r5, 0x1 ldrb r0, [r5] lsls r1, r0, 2 adds r1, r0 lsls r1, 4 ldr r0, _08014E20 adds r4, r1, r0 b _08014F0C .align 2, 0 _08014E20: .4byte 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 thumb_func_start sub_8027C84 sub_8027C84: push {lr} bl sub_801B410 cmp r0, 0x1 bls _08027C9C cmp r0, 0x3 bhi _08027C9C bl sub_801B450 movs r0, 0xB bl sub_8027184 _08027C9C: pop {r0} bx r0 thumb_func_end sub_8027C84 thumb_func_start sub_8027CA0 sub_8027CA0: push {lr} movs r0, 0x1 bl sub_801EF38 cmp r0, 0x4 bhi _08027CFA lsls r0, 2 ldr r1, _08027CB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08027CB8: .4byte _08027CBC .align 2, 0 _08027CBC: .4byte _08027CFA .4byte _08027CFA .4byte _08027CF0 .4byte _08027CD0 .4byte _08027CD0 _08027CD0: bl sub_801F194 ldr r1, _08027CEC ldr r1, [r1] str r0, [r1, 0x20] lsls r0, 3 adds r0, r1, r0 ldrh r0, [r0, 0x2A] strh r0, [r1, 0x24] movs r0, 0x10 bl sub_8027184 b _08027CFA .align 2, 0 _08027CEC: .4byte gUnknown_203B2BC _08027CF0: bl sub_801F214 movs r0, 0x2 bl sub_8027184 _08027CFA: pop {r0} bx r0 thumb_func_end sub_8027CA0 thumb_func_start sub_8027D00 sub_8027D00: push {lr} bl sub_801F890 cmp r0, 0x1 bls _08027D18 cmp r0, 0x3 bhi _08027D18 bl sub_801F8D0 movs r0, 0xF bl sub_8027184 _08027D18: pop {r0} bx r0 thumb_func_end sub_8027D00 thumb_func_start sub_8027D1C sub_8027D1C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08027D34 ldr r0, _08027D3C ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_8027184 _08027D34: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08027D3C: .4byte gUnknown_203B2BC thumb_func_end sub_8027D1C thumb_func_start sub_8027D40 sub_8027D40: push {r4-r6,lr} sub sp, 0x14 adds r6, r0, 0 adds r5, r1, 0 bl sub_8008C54 adds r0, r6, 0 bl sub_80073B8 add r4, sp, 0x10 adds r0, r4, 0 adds r1, r5, 0 bl sub_8090B64 movs r5, 0 str r5, [sp, 0x4] add r0, sp, 0x4 strb r5, [r0, 0x4] adds r1, r0, 0 movs r0, 0x1 strb r0, [r1, 0x8] strb r0, [r4] ldr r0, _08027D94 adds r1, r4, 0 add r2, sp, 0x4 bl sub_8090E14 ldr r2, _08027D98 str r5, [sp] movs r0, 0x4 movs r1, 0x3 adds r3, r6, 0 bl sub_8014FF0 adds r0, r6, 0 bl sub_80073E0 add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08027D94: .4byte gUnknown_202DE58 _08027D98: .4byte gUnknown_80DD958 thumb_func_end sub_8027D40 thumb_func_start sub_8027D9C sub_8027D9C: push {lr} adds r1, r0, 0 ldrb r0, [r1, 0x2] cmp r0, 0 bne _08027DC0 movs r2, 0 ldrb r0, [r1, 0x4] cmp r0, 0x41 bne _08027DB0 movs r2, 0x1 _08027DB0: cmp r2, 0 beq _08027DC4 movs r0, 0x8 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _08027DC4 _08027DC0: movs r0, 0 b _08027DC6 _08027DC4: movs r0, 0x1 _08027DC6: pop {r1} bx r1 thumb_func_end sub_8027D9C thumb_func_start sub_8027DCC sub_8027DCC: push {r4,lr} adds r4, r0, 0 bl sub_808D3BC cmp r0, r4 beq _08027E0E bl sub_808D3F8 cmp r0, r4 beq _08027E0E ldrb r0, [r4, 0x2] cmp r0, 0 bne _08027E0E movs r1, 0 ldrb r0, [r4, 0x4] cmp r0, 0x41 bne _08027DF0 movs r1, 0x1 _08027DF0: cmp r1, 0 beq _08027E00 movs r0, 0x8 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _08027E0E _08027E00: adds r0, r4, 0 bl sub_8027E18 cmp r0, 0x3 beq _08027E0E movs r0, 0x1 b _08027E10 _08027E0E: movs r0, 0 _08027E10: pop {r4} pop {r1} bx r1 thumb_func_end sub_8027DCC thumb_func_start sub_8027E18 sub_8027E18: push {r4,lr} adds r4, r0, 0 adds r0, 0x28 ldrb r0, [r0] cmp r0, 0 bne _08027E28 movs r0, 0 b _08027E46 _08027E28: bl sub_8090A34 cmp r0, 0x13 bgt _08027E34 movs r0, 0x1 b _08027E46 _08027E34: adds r0, r4, 0 bl sub_8027E4C lsls r0, 24 cmp r0, 0 bne _08027E44 movs r0, 0x3 b _08027E46 _08027E44: movs r0, 0x2 _08027E46: pop {r4} pop {r1} bx r1 thumb_func_end sub_8027E18 thumb_func_start sub_8027E4C sub_8027E4C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r5, 0 adds r4, 0x28 ldrb r0, [r4] bl sub_8091524 lsls r0, 24 cmp r0, 0 beq _08027E88 ldrb r0, [r4] bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _08027E94 ldr r0, _08027E8C ldr r1, [r0] ldrb r0, [r4] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r1, [r1] adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] adds r1, r0 ldr r0, _08027E90 cmp r1, r0 ble _08027EA8 _08027E88: movs r0, 0 b _08027EAA .align 2, 0 _08027E8C: .4byte gUnknown_203B460 _08027E90: .4byte 0x000003e7 _08027E94: ldr r0, _08027EB0 ldr r1, [r0] ldrb r0, [r4] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r1, [r1] ldr r0, _08027EB4 cmp r1, r0 bhi _08027E88 _08027EA8: movs r0, 0x1 _08027EAA: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08027EB0: .4byte gUnknown_203B460 _08027EB4: .4byte 0x000003e6 thumb_func_end sub_8027E4C thumb_func_start sub_8027EB8 sub_8027EB8: push {r4,lr} ldr r4, _08027ED4 ldr r0, [r4] ldr r0, [r0, 0x18] bl sub_8027E18 cmp r0, 0x1 beq _08027ED8 cmp r0, 0x1 bcc _08027F7C cmp r0, 0x2 beq _08027F0C b _08027F7C .align 2, 0 _08027ED4: .4byte gUnknown_203B2BC _08027ED8: ldr r0, _08027F08 bl sub_8011988 ldr r0, [r4] adds r0, 0x14 bl sub_8091274 bl sub_80910B4 ldr r0, [r4] movs r1, 0 strb r1, [r0, 0x14] ldr r0, [r4] strb r1, [r0, 0x15] ldr r1, [r4] movs r2, 0x8 ldrsh r0, [r1, r2] adds r1, 0x14 bl sub_808D800 movs r0, 0x6 bl sub_8027184 b _08027F82 .align 2, 0 _08027F08: .4byte 0x0000014d _08027F0C: ldr r0, _08027F38 bl sub_8011988 ldr r0, [r4] ldrb r0, [r0, 0x14] bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _08027F40 ldr r0, _08027F3C ldr r1, [r0] ldr r2, [r4] ldrb r0, [r2, 0x14] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] ldrb r2, [r2, 0x15] adds r0, r2 b _08027F52 .align 2, 0 _08027F38: .4byte 0x0000014d _08027F3C: .4byte gUnknown_203B460 _08027F40: ldr r0, _08027F74 ldr r1, [r0] ldr r0, [r4] ldrb r0, [r0, 0x14] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 _08027F52: strh r0, [r1] ldr r1, _08027F78 ldr r0, [r1] movs r2, 0 strb r2, [r0, 0x14] ldr r0, [r1] strb r2, [r0, 0x15] ldr r1, [r1] movs r2, 0x8 ldrsh r0, [r1, r2] adds r1, 0x14 bl sub_808D800 movs r0, 0x7 bl sub_8027184 b _08027F82 .align 2, 0 _08027F74: .4byte gUnknown_203B460 _08027F78: .4byte gUnknown_203B2BC _08027F7C: movs r0, 0x2 bl sub_8027184 _08027F82: pop {r4} pop {r0} bx r0 thumb_func_end sub_8027EB8 thumb_func_start sub_8027F88 sub_8027F88: push {r4-r6,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08028050 movs r4, 0xA9 lsls r4, 3 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 ldr r1, [r5] ldr r2, _08028054 adds r0, r1, r2 movs r6, 0 str r6, [r0] movs r3, 0x86 lsls r3, 2 adds r1, r3 movs r0, 0xFF strb r0, [r1] ldr r0, [r5] ldr r1, _08028058 adds r0, r1 ldr r1, _0802805C strh r1, [r0] ldr r0, _08028060 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _08028064 bl strcpy adds r0, r4, 0 bl sub_808DDD0 ldr r2, [r5] movs r3, 0x84 lsls r3, 3 adds r1, r2, r3 str r0, [r1] adds r3, 0x4 adds r1, r2, r3 ldr r0, [r0, 0x4] str r0, [r1] ldr r0, _08028068 adds r2, r0 strb r6, [r2] ldr r0, [r5] ldr r1, _0802806C adds r0, r1 strb r6, [r0] ldr r0, [r5] ldr r2, _08028070 adds r0, r2 strb r6, [r0] ldr r1, [r5] adds r3, 0x4 adds r2, r1, r3 movs r0, 0x2 strh r0, [r2] ldr r0, _08028074 adds r1, r0 movs r0, 0x8 strh r0, [r1] movs r2, 0 movs r3, 0 adds r1, r5, 0 _0802802E: ldr r0, [r5] adds r0, 0x8 adds r0, r2 strb r3, [r0] adds r2, 0x1 cmp r2, 0x35 ble _0802802E ldr r1, [r1] movs r0, 0x3D str r0, [r1] movs r0, 0 bl sub_8028B04 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08028050: .4byte gUnknown_203B2C0 _08028054: .4byte 0x0000053c _08028058: .4byte 0x00000544 _0802805C: .4byte 0x0000ffff _08028060: .4byte gUnknown_202E5D8 _08028064: .4byte gUnknown_202DF98 _08028068: .4byte 0x0000042c _0802806C: .4byte 0x0000042d _08028070: .4byte 0x0000042e _08028074: .4byte 0x0000042a thumb_func_end sub_8027F88 thumb_func_start sub_8028078 sub_8028078: push {lr} ldr r0, _08028090 ldr r0, [r0] ldr r0, [r0, 0x4] cmp r0, 0x3C bls _08028086 b _080282D4 _08028086: lsls r0, 2 ldr r1, _08028094 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08028090: .4byte gUnknown_203B2C0 _08028094: .4byte _08028098 .align 2, 0 _08028098: .4byte _080282C4 .4byte _080282C4 .4byte _080282CA .4byte _080282D0 .4byte _08028222 .4byte _08028234 .4byte _08028228 .4byte _0802822E .4byte _0802823A .4byte _080281FE .4byte _08028272 .4byte _08028278 .4byte _0802828C .4byte _0802827E .4byte _0802828C .4byte _0802827E .4byte _0802828C .4byte _08028286 .4byte _08028294 .4byte _0802829A .4byte _080282B2 .4byte _080282B8 .4byte _080282BE .4byte _080282A0 .4byte _080282A6 .4byte _080282AC .4byte _08028240 .4byte _08028248 .4byte _0802824E .4byte _0802824E .4byte _0802825A .4byte _0802826C .4byte _08028260 .4byte _08028266 .4byte _08028254 .4byte _08028204 .4byte _0802820A .4byte _080282CA .4byte _08028210 .4byte _08028216 .4byte _0802821C .4byte _080281E0 .4byte _080281F2 .4byte _080281E6 .4byte _080281EC .4byte _080281DA .4byte _080281D4 .4byte _080281F8 .4byte _080281CE .4byte _080281C2 .4byte _080281AA .4byte _080281B0 .4byte _080281B6 .4byte _080281BC .4byte _080281C8 .4byte _080281A4 .4byte _0802819E .4byte _080282CA .4byte _08028192 .4byte _08028198 .4byte _0802818C _0802818C: bl sub_8029B34 b _080282D4 _08028192: bl sub_8029AD8 b _080282D4 _08028198: bl sub_8029AF4 b _080282D4 _0802819E: bl sub_8029A88 b _080282D4 _080281A4: bl sub_8029AB0 b _080282D4 _080281AA: bl sub_80297B8 b _080282D4 _080281B0: bl sub_80297D4 b _080282D4 _080281B6: bl sub_8029884 b _080282D4 _080281BC: bl sub_8029944 b _080282D4 _080281C2: bl sub_80299AC b _080282D4 _080281C8: bl sub_80299D8 b _080282D4 _080281CE: bl sub_8029A6C b _080282D4 _080281D4: bl sub_8029A18 b _080282D4 _080281DA: bl sub_80295A8 b _080282D4 _080281E0: bl sub_8029668 b _080282D4 _080281E6: bl sub_8029684 b _080282D4 _080281EC: bl sub_8029740 b _080282D4 _080281F2: bl sub_80295D8 b _080282D4 _080281F8: bl sub_802979C b _080282D4 _080281FE: bl sub_8029358 b _080282D4 _08028204: bl sub_8029374 b _080282D4 _0802820A: bl sub_802939C b _080282D4 _08028210: bl sub_80293D8 b _080282D4 _08028216: bl sub_80293F4 b _080282D4 _0802821C: bl sub_802955C b _080282D4 _08028222: bl sub_80292A4 b _080282D4 _08028228: bl sub_80292EC b _080282D4 _0802822E: bl sub_802933C b _080282D4 _08028234: bl sub_802958C b _080282D4 _0802823A: bl sub_8029208 b _080282D4 _08028240: movs r0, 0x1 bl sub_8028DE8 b _080282D4 _08028248: bl sub_8028F80 b _080282D4 _0802824E: bl sub_8028FC0 b _080282D4 _08028254: bl sub_8028FDC b _080282D4 _0802825A: bl sub_80290D4 b _080282D4 _08028260: bl sub_80290F0 b _080282D4 _08028266: bl sub_80291AC b _080282D4 _0802826C: bl sub_8029044 b _080282D4 _08028272: bl sub_8028CFC b _080282D4 _08028278: bl sub_8028D4C b _080282D4 _0802827E: movs r0, 0xA bl sub_8028DE8 b _080282D4 _08028286: bl sub_8028E08 b _080282D4 _0802828C: movs r0, 0x19 bl sub_8028DE8 b _080282D4 _08028294: bl sub_8028E24 b _080282D4 _0802829A: bl sub_8028E54 b _080282D4 _080282A0: bl sub_8028E84 b _080282D4 _080282A6: bl sub_8028EAC b _080282D4 _080282AC: bl sub_8028ED4 b _080282D4 _080282B2: bl sub_8028F04 b _080282D4 _080282B8: bl sub_8028F30 b _080282D4 _080282BE: bl sub_8028F58 b _080282D4 _080282C4: bl sub_8028BF0 b _080282D4 _080282CA: bl sub_8028CE0 b _080282D4 _080282D0: movs r0, 0x3 b _080282D6 _080282D4: movs r0, 0 _080282D6: pop {r1} bx r1 thumb_func_end sub_8028078 thumb_func_start sub_80282DC sub_80282DC: ldr r1, _080282F4 ldr r1, [r1] movs r3, 0x86 lsls r3, 2 adds r2, r1, r3 ldrb r2, [r2] strb r2, [r0] ldr r0, _080282F8 adds r1, r0 ldr r0, [r1] bx lr .align 2, 0 _080282F4: .4byte gUnknown_203B2C0 _080282F8: .4byte 0x0000053c thumb_func_end sub_80282DC thumb_func_start sub_80282FC sub_80282FC: push {r4,lr} ldr r4, _08028340 ldr r0, [r4] cmp r0, 0 beq _08028338 movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] bl sub_8031E10 bl sub_8023C60 bl sub_803084C bl sub_80155F0 bl sub_80310B4 bl sub_8030DE4 bl sub_802453C _08028338: pop {r4} pop {r0} bx r0 .align 2, 0 _08028340: .4byte gUnknown_203B2C0 thumb_func_end sub_80282FC thumb_func_start nullsub_130 nullsub_130: bx lr thumb_func_end nullsub_130 thumb_func_start sub_8028348 sub_8028348: push {r4-r6,lr} sub sp, 0x14 ldr r1, _08028368 ldr r0, [r1] ldr r0, [r0, 0x4] adds r6, r1, 0 cmp r0, 0x3C bls _0802835C bl _08028AF2 _0802835C: lsls r0, 2 ldr r1, _0802836C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08028368: .4byte gUnknown_203B2C0 _0802836C: .4byte _08028370 .align 2, 0 _08028370: .4byte _08028A84 .4byte _08028AB4 .4byte _08028AE0 .4byte _08028AF2 .4byte _08028650 .4byte _08028660 .4byte _08028678 .4byte _08028AF2 .4byte _08028802 .4byte _08028640 .4byte _0802890C .4byte _08028948 .4byte _08028988 .4byte _08028978 .4byte _080289A0 .4byte _08028990 .4byte _080289B8 .4byte _080289B0 .4byte _080289C8 .4byte _080289E8 .4byte _08028A48 .4byte _08028A58 .4byte _08028A68 .4byte _080289F8 .4byte _08028A08 .4byte _08028A18 .4byte _08028850 .4byte _08028860 .4byte _08028868 .4byte _08028878 .4byte _08028890 .4byte _080288A0 .4byte _080288C6 .4byte _08028AF2 .4byte _08028888 .4byte _08028790 .4byte _08028AF2 .4byte _080287C4 .4byte _080287D4 .4byte _080287DC .4byte _08028AF2 .4byte _080285CC .4byte _080285DC .4byte _080288C6 .4byte _08028AF2 .4byte _080285AC .4byte _08028610 .4byte _080285F8 .4byte _08028600 .4byte _0802856C .4byte _080284F4 .4byte _0802850C .4byte _08028532 .4byte _08028AF2 .4byte _0802859C .4byte _080284B8 .4byte _080284A8 .4byte _080284EC .4byte _080284A0 .4byte _08028464 .4byte _08028490 _08028464: ldr r0, [r6] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r6] movs r2, 0x86 lsls r2, 2 adds r0, r2 ldrb r0, [r0] movs r1, 0 bl sub_8031D70 b _08028AF2 _08028490: ldr r0, _0802849C ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _0802849C: .4byte gUnknown_80DDBA8 _080284A0: ldr r0, _080284A4 b _08028A6A .align 2, 0 _080284A4: .4byte gUnknown_80DDBFC _080284A8: ldr r0, _080284B4 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _080284B4: .4byte gUnknown_80DDC30 _080284B8: ldr r0, [r6] ldr r2, _080284D0 adds r0, r2 ldr r0, [r0] cmp r0, 0xE bne _080284C6 b _08028AF2 _080284C6: cmp r0, 0xE bhi _080284D4 cmp r0, 0xD beq _080284DA b _08028AF2 .align 2, 0 _080284D0: .4byte 0x00000534 _080284D4: cmp r0, 0x10 bls _080284DA b _08028AF2 _080284DA: ldr r0, _080284E8 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _080284E8: .4byte gUnknown_80DDC70 _080284EC: ldr r0, _080284F0 b _08028A6A .align 2, 0 _080284F0: .4byte gUnknown_80DDC30 _080284F4: ldr r0, _08028504 ldr r3, _08028508 movs r1, 0 movs r2, 0 bl sub_80141B4 b _08028AF2 .align 2, 0 _08028504: .4byte gUnknown_80DDCBC _08028508: .4byte 0x00000101 _0802850C: bl sub_8023CE8 cmp r0, 0 beq _08028516 b _08028AF2 _08028516: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x3 movs r1, 0 movs r2, 0 movs r3, 0x9 bl sub_8023868 b _08028AF2 _08028532: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _08028564 ldr r2, _08028568 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_8023DA4 b _080288F6 .align 2, 0 _08028564: .4byte gUnknown_80DDAE4 _08028568: .4byte gUnknown_80DDAFC _0802856C: ldr r0, _08028594 ldr r3, _08028598 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0xA bl sub_8014248 b _08028AF2 .align 2, 0 _08028594: .4byte gUnknown_80DDD2C _08028598: .4byte gUnknown_80DDAA0 _0802859C: ldr r0, _080285A4 ldr r3, _080285A8 b _08028A1C .align 2, 0 _080285A4: .4byte gUnknown_80DDD88 _080285A8: .4byte gUnknown_80DDA80 _080285AC: ldr r0, _080285C4 ldr r3, _080285C8 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 b _08028A2E .align 2, 0 _080285C4: .4byte gUnknown_80DDDBC _080285C8: .4byte gUnknown_80DDA64 _080285CC: ldr r0, _080285D8 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _080285D8: .4byte gUnknown_80DDDD8 _080285DC: bl sub_8030894 cmp r0, 0 beq _080285E6 b _08028AF2 _080285E6: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x4 b _080288BA _080285F8: ldr r0, _080285FC b _08028A6A .align 2, 0 _080285FC: .4byte gUnknown_80DDE20 _08028600: ldr r0, _0802860C ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _0802860C: .4byte gUnknown_80DDE58 _08028610: ldr r0, _08028638 ldr r3, _0802863C movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x11 bl sub_8014248 b _08028AF2 .align 2, 0 _08028638: .4byte gUnknown_80DDEC0 _0802863C: .4byte gUnknown_80DDB60 _08028640: ldr r0, _0802864C ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _0802864C: .4byte gUnknown_80DDF2C _08028650: ldr r0, _08028658 ldr r3, _0802865C b _08028A1C .align 2, 0 _08028658: .4byte gUnknown_80DDFB8 _0802865C: .4byte gUnknown_80DDA48 _08028660: movs r0, 0 bl nullsub_23 ldr r0, _08028674 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 b _08028AF2 .align 2, 0 _08028674: .4byte gUnknown_80DE01C _08028678: ldr r1, [r6] movs r0, 0 str r0, [r1, 0x44] bl sub_8011830 ldr r0, [r6] ldr r0, [r0, 0x40] bl sub_8037B28 adds r4, r0, 0 ldr r0, [r6] str r4, [r0, 0x44] cmp r4, 0 bne _0802878A ldr r1, [r0, 0x40] cmp r1, 0x3 beq _080286A0 cmp r1, 0x4 beq _080286C2 b _08028748 _080286A0: adds r0, 0x48 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] adds r0, 0x78 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0x48 adds r2, 0x78 b _08028740 _080286C2: adds r0, 0xA8 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r0, [r6] movs r5, 0x98 lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r1, [r6] adds r0, r1, 0 adds r0, 0xE0 strh r4, [r0] movs r2, 0xB4 lsls r2, 1 adds r0, r1, r2 strh r4, [r0] movs r3, 0x86 lsls r3, 2 adds r0, r1, r3 ldrb r0, [r0] bl sub_8095228 ldr r1, [r6] adds r1, 0xA8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r6] ldr r4, _08028760 adds r3, r2, r4 movs r0, 0 ldrsh r1, [r3, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08028736 adds r0, r2, 0 adds r0, 0xD8 ldr r1, _08028764 ldr r1, [r1] movs r2, 0 ldrsh r3, [r3, r2] movs r2, 0x58 muls r2, r3 adds r1, r2 movs r2, 0x58 bl memcpy _08028736: ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0xA8 adds r2, r5 _08028740: bl sub_8037D64 ldr r1, [r6] str r0, [r1, 0x44] _08028748: ldr r4, _08028768 ldr r2, [r4] ldr r0, [r2, 0x44] cmp r0, 0 bne _0802878A ldr r0, [r2, 0x40] cmp r0, 0x3 beq _0802876C cmp r0, 0x4 beq _08028776 b _0802878A .align 2, 0 _08028760: .4byte 0x00000544 _08028764: .4byte gUnknown_203B45C _08028768: .4byte gUnknown_203B2C0 _0802876C: adds r1, r2, 0 adds r1, 0x48 adds r2, 0x78 movs r0, 0x3 b _08028782 _08028776: adds r1, r2, 0 adds r1, 0xA8 movs r3, 0x98 lsls r3, 1 adds r2, r3 movs r0, 0x4 _08028782: bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x44] _0802878A: bl sub_8011854 b _08028AF2 _08028790: ldr r0, [r6] ldr r4, _080287A8 adds r0, r4 ldr r0, [r0] cmp r0, 0xE bne _0802879E b _08028AF2 _0802879E: cmp r0, 0xE bhi _080287AC cmp r0, 0xD beq _080287B2 b _08028AF2 .align 2, 0 _080287A8: .4byte 0x00000534 _080287AC: cmp r0, 0x10 bls _080287B2 b _08028AF2 _080287B2: ldr r0, _080287C0 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _080287C0: .4byte gUnknown_80DE06C _080287C4: ldr r0, _080287D0 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _080287D0: .4byte gUnknown_80DE0C0 _080287D4: ldr r0, _080287D8 b _08028A6A .align 2, 0 _080287D8: .4byte gUnknown_80DE124 _080287DC: ldr r0, [r6] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r6] adds r1, 0x8 movs r0, 0x4 bl sub_80151C0 b _08028AF2 _08028802: ldr r4, [r6] movs r2, 0xA7 lsls r2, 3 adds r0, r4, r2 ldr r2, [r0] cmp r2, 0 beq _08028816 cmp r2, 0x2 beq _08028824 b _08028AF2 _08028816: ldr r0, _0802881C ldr r3, _08028820 b _0802882A .align 2, 0 _0802881C: .4byte gUnknown_80DE178 _08028820: .4byte gUnknown_80DDB24 _08028824: ldr r0, _08028848 ldr r3, _0802884C movs r2, 0 _0802882A: str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] movs r2, 0x84 lsls r2, 3 adds r1, r4, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0xD bl sub_8014248 b _08028AF2 .align 2, 0 _08028848: .4byte gUnknown_80DE1B4 _0802884C: .4byte gUnknown_80DDB24 _08028850: ldr r0, _0802885C ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _0802885C: .4byte gUnknown_80DE1E4 _08028860: ldr r0, _08028864 b _08028A6A .align 2, 0 _08028864: .4byte gUnknown_80DE280 _08028868: ldr r0, _08028874 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _08028874: .4byte gUnknown_80DE2B0 _08028878: ldr r0, _08028884 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _08028884: .4byte gUnknown_80DE368 _08028888: ldr r0, _0802888C b _08028A1A .align 2, 0 _0802888C: .4byte gUnknown_80DDDBC _08028890: ldr r0, _0802889C ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _0802889C: .4byte gUnknown_80DE430 _080288A0: bl sub_8030894 cmp r0, 0 beq _080288AA b _08028AF2 _080288AA: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x2 _080288BA: movs r1, 0 movs r2, 0 movs r3, 0x6 bl sub_80306A8 b _08028AF2 _080288C6: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _08028904 ldr r2, _08028908 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_803092C _080288F6: ldr r0, [r6] adds r0, r5 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 b _08028AF2 .align 2, 0 _08028904: .4byte gUnknown_80DDACC _08028908: .4byte gUnknown_80DDAFC _0802890C: bl sub_8095350 ldr r1, _0802893C ldr r1, [r1] movs r3, 0xA8 lsls r3, 3 adds r2, r1, r3 str r0, [r2] movs r4, 0xA7 lsls r4, 3 adds r1, r4 ldr r1, [r1] cmp r1, 0x6 beq _08028940 cmp r1, 0x6 bls _0802892E b _08028AF2 _0802892E: cmp r1, 0x5 beq _08028934 b _08028AF2 _08028934: movs r0, 0x2 bl sub_8030F58 b _08028AF2 .align 2, 0 _0802893C: .4byte gUnknown_203B2C0 _08028940: movs r0, 0x4 bl sub_8030F58 b _08028AF2 _08028948: ldr r0, _08028970 ldr r3, _08028974 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x5 bl sub_8014248 b _08028AF2 .align 2, 0 _08028970: .4byte gUnknown_80DE48C _08028974: .4byte gUnknown_80DD9EC _08028978: ldr r0, _08028984 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _08028984: .4byte gUnknown_80DE4B8 _08028988: ldr r0, _0802898C b _08028A6A .align 2, 0 _0802898C: .4byte gUnknown_80DE4F0 _08028990: ldr r0, _0802899C ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _0802899C: .4byte gUnknown_80DE524 _080289A0: ldr r0, _080289AC ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _080289AC: .4byte gUnknown_80DE614 _080289B0: ldr r0, _080289B4 b _08028A6A .align 2, 0 _080289B4: .4byte gUnknown_80DE648 _080289B8: ldr r0, _080289C4 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _080289C4: .4byte gUnknown_80DE694 _080289C8: ldr r0, _080289E0 ldr r3, _080289E4 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 b _08028A2E .align 2, 0 _080289E0: .4byte gUnknown_80DE6D4 _080289E4: .4byte gUnknown_80DDA48 _080289E8: ldr r0, _080289F0 ldr r3, _080289F4 b _08028A1C .align 2, 0 _080289F0: .4byte gUnknown_80DE754 _080289F4: .4byte gUnknown_80DDA48 _080289F8: ldr r0, _08028A04 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _08028A04: .4byte gUnknown_80DE7B8 _08028A08: ldr r0, _08028A14 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _08028A14: .4byte gUnknown_80DE7E8 _08028A18: ldr r0, _08028A40 _08028A1A: ldr r3, _08028A44 _08028A1C: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r4, 0x84 lsls r4, 3 adds r1, r4 _08028A2E: str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x8 bl sub_8014248 b _08028AF2 .align 2, 0 _08028A40: .4byte gUnknown_80DE808 _08028A44: .4byte gUnknown_80DDA64 _08028A48: ldr r0, _08028A54 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _08028A72 .align 2, 0 _08028A54: .4byte gUnknown_80DE830 _08028A58: ldr r0, _08028A64 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _08028A72 .align 2, 0 _08028A64: .4byte gUnknown_80DE864 _08028A68: ldr r0, _08028A7C _08028A6A: ldr r2, [r6] movs r4, 0x84 lsls r4, 3 adds r2, r4 _08028A72: ldr r3, _08028A80 movs r1, 0 bl sub_80141B4 b _08028AF2 .align 2, 0 _08028A7C: .4byte gUnknown_80DE7E8 _08028A80: .4byte 0x0000010d _08028A84: ldr r0, _08028AAC ldr r3, _08028AB0 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0 bl sub_8014248 b _08028AF2 .align 2, 0 _08028AAC: .4byte gUnknown_80DE8B4 _08028AB0: .4byte gUnknown_80DD970 _08028AB4: ldr r0, _08028AD8 ldr r3, _08028ADC movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r4, 0x84 lsls r4, 3 adds r1, r4 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _08028AF2 .align 2, 0 _08028AD8: .4byte gUnknown_80DE918 _08028ADC: .4byte gUnknown_80DD970 _08028AE0: ldr r0, _08028AFC ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _08028B00 movs r1, 0 bl sub_80141B4 _08028AF2: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08028AFC: .4byte gUnknown_80DE93C _08028B00: .4byte 0x0000010d thumb_func_end sub_8028348 thumb_func_start sub_8028B04 sub_8028B04: push {lr} ldr r1, _08028B18 ldr r1, [r1] str r0, [r1, 0x4] bl nullsub_130 bl sub_8028348 pop {r0} bx r0 .align 2, 0 _08028B18: .4byte gUnknown_203B2C0 thumb_func_end sub_8028B04 thumb_func_start sub_8028B1C sub_8028B1C: push {lr} cmp r0, 0xF bhi _08028BE0 lsls r0, 2 ldr r1, _08028B2C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08028B2C: .4byte _08028B30 .align 2, 0 _08028B30: .4byte _08028BE0 .4byte _08028BA8 .4byte _08028BA8 .4byte _08028B70 .4byte _08028B78 .4byte _08028BA8 .4byte _08028B80 .4byte _08028B88 .4byte _08028BE0 .4byte _08028B90 .4byte _08028BE0 .4byte _08028B98 .4byte _08028BE0 .4byte _08028BA0 .4byte _08028BA8 .4byte _08028BCC _08028B70: ldr r0, _08028B74 b _08028BAA .align 2, 0 _08028B74: .4byte gUnknown_80DE98C _08028B78: ldr r0, _08028B7C b _08028BAA .align 2, 0 _08028B7C: .4byte gUnknown_80DE9F0 _08028B80: ldr r0, _08028B84 b _08028BAA .align 2, 0 _08028B84: .4byte gUnknown_80DEA58 _08028B88: ldr r0, _08028B8C b _08028BAA .align 2, 0 _08028B8C: .4byte gUnknown_80DEAB4 _08028B90: ldr r0, _08028B94 b _08028BAA .align 2, 0 _08028B94: .4byte gUnknown_80DEB18 _08028B98: ldr r0, _08028B9C b _08028BAA .align 2, 0 _08028B9C: .4byte gUnknown_80DEB18 _08028BA0: ldr r0, _08028BA4 b _08028BAA .align 2, 0 _08028BA4: .4byte gUnknown_80DEB54 _08028BA8: ldr r0, _08028BC0 _08028BAA: ldr r1, _08028BC4 ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _08028BC8 movs r1, 0 bl sub_80141B4 b _08028BE0 .align 2, 0 _08028BC0: .4byte gUnknown_80DE954 _08028BC4: .4byte gUnknown_203B2C0 _08028BC8: .4byte 0x0000010d _08028BCC: ldr r0, _08028BE4 ldr r1, _08028BE8 ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _08028BEC movs r1, 0 bl sub_80141B4 _08028BE0: pop {r0} bx r0 .align 2, 0 _08028BE4: .4byte gUnknown_80DEC00 _08028BE8: .4byte gUnknown_203B2C0 _08028BEC: .4byte 0x0000010d thumb_func_end sub_8028B1C thumb_func_start sub_8028BF0 sub_8028BF0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028CDA ldr r2, _08028C20 ldr r0, [r2] movs r1, 0x8 str r1, [r0, 0x40] ldr r1, _08028C24 adds r0, r1 ldr r1, _08028C28 strh r1, [r0] ldr r0, [sp] cmp r0, 0xA bhi _08028CDA lsls r0, 2 ldr r1, _08028C2C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08028C20: .4byte gUnknown_203B2C0 _08028C24: .4byte 0x00000544 _08028C28: .4byte 0x0000ffff _08028C2C: .4byte _08028C30 .align 2, 0 _08028C30: .4byte _08028C5C .4byte _08028C88 .4byte _08028CA2 .4byte _08028CCC .4byte _08028CDA .4byte _08028CDA .4byte _08028CDA .4byte _08028CDA .4byte _08028CDA .4byte _08028CDA .4byte _08028CD4 _08028C5C: ldr r0, [r2] movs r1, 0x3 str r1, [r0, 0x40] movs r1, 0xA7 lsls r1, 3 adds r0, r1 movs r1, 0 str r1, [r0] bl sub_8095190 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _08028C80 movs r0, 0x8 bl sub_8028B04 b _08028CDA _08028C80: movs r0, 0x9 bl sub_8028B04 b _08028CDA _08028C88: movs r0, 0x2 bl sub_8095324 cmp r0, 0 beq _08028C9A movs r0, 0x1E bl sub_8028B04 b _08028CDA _08028C9A: movs r0, 0x1A bl sub_8028B04 b _08028CDA _08028CA2: ldr r0, [r2] movs r1, 0x4 str r1, [r0, 0x40] movs r1, 0xA7 lsls r1, 3 adds r0, r1 movs r1, 0x2 str r1, [r0] movs r0, 0x4 bl sub_8095324 cmp r0, 0 beq _08028CC4 movs r0, 0x29 bl sub_8028B04 b _08028CDA _08028CC4: movs r0, 0x2F bl sub_8028B04 b _08028CDA _08028CCC: movs r0, 0xB bl sub_8028B04 b _08028CDA _08028CD4: movs r0, 0x2 bl sub_8028B04 _08028CDA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028BF0 thumb_func_start sub_8028CE0 sub_8028CE0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028CF4 movs r0, 0x3 bl sub_8028B04 _08028CF4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028CE0 thumb_func_start sub_8028CFC sub_8028CFC: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028D42 bl sub_8031050 cmp r0, 0x3 bhi _08028D42 cmp r0, 0x2 bcc _08028D42 bl sub_8095350 adds r4, r0, 0 bl sub_80310B4 ldr r0, _08028D38 ldr r0, [r0] movs r1, 0xA8 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r4, r0 beq _08028D3C movs r0, 0x17 bl sub_8028B04 b _08028D42 .align 2, 0 _08028D38: .4byte gUnknown_203B2C0 _08028D3C: movs r0, 0x19 bl sub_8028B04 _08028D42: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8028CFC thumb_func_start sub_8028D4C sub_8028D4C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028DE0 ldr r0, _08028D78 ldr r0, [r0] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r1, [sp] str r1, [r0] cmp r1, 0x6 beq _08028DA2 cmp r1, 0x6 bgt _08028D7C cmp r1, 0x5 beq _08028D86 b _08028DE0 .align 2, 0 _08028D78: .4byte gUnknown_203B2C0 _08028D7C: cmp r1, 0x7 beq _08028DBE cmp r1, 0xA beq _08028DDA b _08028DE0 _08028D86: movs r0, 0x2 bl sub_8030C20 lsls r0, 24 cmp r0, 0 beq _08028D9A movs r0, 0xC bl sub_8028B04 b _08028DE0 _08028D9A: movs r0, 0xD bl sub_8028B04 b _08028DE0 _08028DA2: movs r0, 0x4 bl sub_8030C20 lsls r0, 24 cmp r0, 0 beq _08028DB6 movs r0, 0xE bl sub_8028B04 b _08028DE0 _08028DB6: movs r0, 0xF bl sub_8028B04 b _08028DE0 _08028DBE: movs r0, 0 bl sub_8030C20 lsls r0, 24 cmp r0, 0 beq _08028DD2 movs r0, 0x10 bl sub_8028B04 b _08028DE0 _08028DD2: movs r0, 0x11 bl sub_8028B04 b _08028DE0 _08028DDA: movs r0, 0x1 bl sub_8028B04 _08028DE0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028D4C thumb_func_start sub_8028DE8 sub_8028DE8: push {r4,lr} sub sp, 0x4 adds r4, r0, 0 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028DFE adds r0, r4, 0 bl sub_8028B04 _08028DFE: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8028DE8 thumb_func_start sub_8028E08 sub_8028E08: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028E1C movs r0, 0x12 bl sub_8028B04 _08028E1C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028E08 thumb_func_start sub_8028E24 sub_8028E24: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028E4C ldr r0, [sp] cmp r0, 0x8 beq _08028E3E cmp r0, 0xA beq _08028E46 b _08028E4C _08028E3E: movs r0, 0x13 bl sub_8028B04 b _08028E4C _08028E46: movs r0, 0x1 bl sub_8028B04 _08028E4C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028E24 thumb_func_start sub_8028E54 sub_8028E54: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028E7C ldr r0, [sp] cmp r0, 0x8 beq _08028E6E cmp r0, 0xA beq _08028E76 b _08028E7C _08028E6E: movs r0, 0x14 bl sub_8028B04 b _08028E7C _08028E76: movs r0, 0x1 bl sub_8028B04 _08028E7C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028E54 thumb_func_start sub_8028E84 sub_8028E84: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028EA4 movs r0, 0x18 bl sub_8028B04 movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _08028EA4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028E84 thumb_func_start sub_8028EAC sub_8028EAC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028ECE bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08028ECE bl sub_8012750 movs r0, 0x19 bl sub_8028B04 _08028ECE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028EAC thumb_func_start sub_8028ED4 sub_8028ED4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028EFE ldr r0, [sp] cmp r0, 0x8 bne _08028EF0 movs r0, 0xB bl sub_8028B04 b _08028EFE _08028EF0: cmp r0, 0x8 blt _08028EFE cmp r0, 0xA bgt _08028EFE movs r0, 0x2 bl sub_8028B04 _08028EFE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028ED4 thumb_func_start sub_8028F04 sub_8028F04: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028F28 movs r4, 0 _08028F14: lsls r0, r4, 24 lsrs r0, 24 bl sub_8095240 adds r4, 0x1 cmp r4, 0x1F ble _08028F14 movs r0, 0x15 bl sub_8028B04 _08028F28: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8028F04 thumb_func_start sub_8028F30 sub_8028F30: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028F50 movs r0, 0x16 bl sub_8028B04 movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _08028F50: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028F30 thumb_func_start sub_8028F58 sub_8028F58: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028F7A bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08028F7A bl sub_8012750 movs r0, 0x2 bl sub_8028B04 _08028F7A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028F58 thumb_func_start sub_8028F80 sub_8028F80: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028FAE ldr r4, _08028FB8 ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_809927C ldr r0, [r4] ldr r1, _08028FBC adds r0, r1 movs r1, 0x1 str r1, [r0] movs r0, 0x3 bl sub_8028B04 _08028FAE: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08028FB8: .4byte gUnknown_203B2C0 _08028FBC: .4byte 0x0000053c thumb_func_end sub_8028F80 thumb_func_start sub_8028FC0 sub_8028FC0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08028FD4 movs r0, 0x1 bl sub_8028B04 _08028FD4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8028FC0 thumb_func_start sub_8028FDC sub_8028FDC: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802903C ldr r0, [sp] cmp r0, 0x8 beq _08028FFC cmp r0, 0x8 blt _0802903C cmp r0, 0xA bgt _0802903C movs r0, 0x1 b _08029038 _08028FFC: ldr r0, _08029020 ldr r0, [r0] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_8095228 adds r4, r0, 0 ldrb r0, [r4, 0x4] bl sub_80A2824 lsls r0, 24 cmp r0, 0 bne _08029024 movs r0, 0x1C b _08029038 .align 2, 0 _08029020: .4byte gUnknown_203B2C0 _08029024: adds r0, r4, 0 adds r0, 0x2C ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bgt _08029036 movs r0, 0x1D b _08029038 _08029036: movs r0, 0x1B _08029038: bl sub_8028B04 _0802903C: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8028FDC thumb_func_start sub_8029044 sub_8029044: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _0802906C cmp r0, 0x3 bhi _0802905A cmp r0, 0x2 beq _08029060 b _080290CA _0802905A: cmp r0, 0x4 beq _08029088 b _080290CA _08029060: bl sub_803084C movs r0, 0x1 bl sub_8028B04 b _080290CA _0802906C: bl sub_80307EC ldr r1, _08029084 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x20 bl sub_8028B04 b _080290CA .align 2, 0 _08029084: .4byte gUnknown_203B2C0 _08029088: ldr r4, _080290D0 ldr r1, [r4] movs r0, 0x1F str r0, [r1] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x21 bl sub_8028B04 _080290CA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080290D0: .4byte gUnknown_203B2C0 thumb_func_end sub_8029044 thumb_func_start sub_80290D4 sub_80290D4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080290E8 movs r0, 0x1F bl sub_8028B04 _080290E8: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80290D4 thumb_func_start sub_80290F0 sub_80290F0: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _08029134 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08029122 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _08029122: ldr r0, [sp] cmp r0, 0xA beq _08029184 cmp r0, 0xA bgt _08029138 cmp r0, 0x4 beq _08029184 b _080291A0 .align 2, 0 _08029134: .4byte gUnknown_203B2C0 _08029138: cmp r0, 0xB beq _08029142 cmp r0, 0xC beq _0802914E b _080291A0 _08029142: bl sub_803084C movs r0, 0x22 bl sub_8028B04 b _080291A0 _0802914E: ldr r0, [r4] movs r1, 0x3D str r1, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x21 bl sub_8028B04 b _080291A0 _08029184: ldr r0, _080291A8 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x1F bl sub_8028B04 _080291A0: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080291A8: .4byte gUnknown_203B2C0 thumb_func_end sub_80290F0 thumb_func_start sub_80291AC sub_80291AC: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _08029200 cmp r0, 0x2 bcc _08029200 bl sub_8030DE4 bl sub_8004914 ldr r4, _080291F8 ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4] cmp r0, 0x3D bne _080291FC movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x20 bl sub_8028B04 b _08029200 .align 2, 0 _080291F8: .4byte gUnknown_203B2C0 _080291FC: bl sub_8028B04 _08029200: pop {r4} pop {r0} bx r0 thumb_func_end sub_80291AC thumb_func_start sub_8029208 sub_8029208: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802929E ldr r2, [sp] cmp r2, 0xE bgt _08029226 cmp r2, 0xD bge _0802922C cmp r2, 0xA beq _08029298 b _0802929E _08029226: cmp r2, 0xF beq _08029264 b _0802929E _0802922C: ldr r0, _0802924C ldr r0, [r0] ldr r1, _08029250 adds r2, r0, r1 movs r1, 0xD str r1, [r2] movs r3, 0xA7 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0 beq _08029254 cmp r0, 0x2 beq _0802925C b _0802929E .align 2, 0 _0802924C: .4byte gUnknown_203B2C0 _08029250: .4byte 0x00000534 _08029254: movs r0, 0x4 bl sub_8028B04 b _0802929E _0802925C: movs r0, 0x30 bl sub_8028B04 b _0802929E _08029264: ldr r0, _08029280 ldr r0, [r0] ldr r3, _08029284 adds r1, r0, r3 str r2, [r1] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _08029288 cmp r0, 0x2 beq _08029290 b _0802929E .align 2, 0 _08029280: .4byte gUnknown_203B2C0 _08029284: .4byte 0x00000534 _08029288: movs r0, 0x26 bl sub_8028B04 b _0802929E _08029290: movs r0, 0x3A bl sub_8028B04 b _0802929E _08029298: movs r0, 0x1 bl sub_8028B04 _0802929E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029208 thumb_func_start sub_80292A4 sub_80292A4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080292E6 ldr r0, [sp] cmp r0, 0x8 beq _080292BE cmp r0, 0xA beq _080292E0 b _080292E6 _080292BE: ldr r0, _080292DC ldr r0, [r0] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _080292D2 cmp r0, 0x2 bne _080292E6 _080292D2: movs r0, 0x5 bl sub_8028B04 b _080292E6 .align 2, 0 _080292DC: .4byte gUnknown_203B2C0 _080292E0: movs r0, 0x1 bl sub_8028B04 _080292E6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80292A4 thumb_func_start sub_80292EC sub_80292EC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029336 ldr r0, _08029318 ldr r1, [r0] ldr r0, [r1, 0x44] cmp r0, 0 bne _0802932C movs r2, 0xA7 lsls r2, 3 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 beq _0802931C cmp r0, 0x2 beq _08029324 b _08029336 .align 2, 0 _08029318: .4byte gUnknown_203B2C0 _0802931C: movs r0, 0x23 bl sub_8028B04 b _08029336 _08029324: movs r0, 0x37 bl sub_8028B04 b _08029336 _0802932C: bl sub_8028B1C movs r0, 0x7 bl sub_8028B04 _08029336: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80292EC thumb_func_start sub_802933C sub_802933C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029350 movs r0, 0x1 bl sub_8028B04 _08029350: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802933C thumb_func_start sub_8029358 sub_8029358: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802936C movs r0, 0x1 bl sub_8028B04 _0802936C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029358 thumb_func_start sub_8029374 sub_8029374: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029394 movs r0, 0x24 bl sub_8028B04 movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _08029394: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029374 thumb_func_start sub_802939C sub_802939C: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080293D0 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _080293D0 bl sub_8012744 adds r4, r0, 0 bl sub_8012750 cmp r4, 0 bne _080293CA movs r0, 0x25 bl sub_8028B04 b _080293D0 _080293CA: movs r0, 0x2 bl sub_8028B04 _080293D0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802939C thumb_func_start sub_80293D8 sub_80293D8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080293EC movs r0, 0x27 bl sub_8028B04 _080293EC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80293D8 thumb_func_start sub_80293F4 sub_80293F4: push {r4,lr} sub sp, 0x44 bl sub_80154F0 adds r4, r0, 0 add r0, sp, 0x14 movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x2 bne _0802940E b _08029530 _0802940E: cmp r4, 0x3 beq _08029414 b _08029550 _08029414: ldr r0, _08029434 ldr r1, [r0] adds r1, 0x8 movs r0, 0x1C add r2, sp, 0x14 bl sub_8039068 subs r0, 0x7 cmp r0, 0x11 bls _0802942A b _0802951C _0802942A: lsls r0, 2 ldr r1, _08029438 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08029434: .4byte gUnknown_203B2C0 _08029438: .4byte _0802943C .align 2, 0 _0802943C: .4byte _080294C8 .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _08029484 .4byte _080294C0 .4byte _0802951C .4byte _0802951C .4byte _0802951C .4byte _080294F0 .4byte _0802951C .4byte _0802951C _08029484: ldr r0, _080294B4 ldr r3, _080294B8 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, _080294BC ldr r1, [r1] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x8 bl sub_8014248 movs r0, 0x28 bl sub_8028B04 b _0802951C .align 2, 0 _080294B4: .4byte gUnknown_80DEC70 _080294B8: .4byte gUnknown_80DDA48 _080294BC: .4byte gUnknown_203B2C0 _080294C0: ldr r0, _080294C4 b _080294CA .align 2, 0 _080294C4: .4byte gUnknown_80DECC0 _080294C8: ldr r0, _080294E4 _080294CA: ldr r1, _080294E8 ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _080294EC movs r1, 0 bl sub_80141B4 movs r0, 0x7 bl sub_8028B04 b _0802951C .align 2, 0 _080294E4: .4byte gUnknown_80DEAB4 _080294E8: .4byte gUnknown_203B2C0 _080294EC: .4byte 0x0000010d _080294F0: ldr r0, [sp, 0x24] bl sub_8095274 add r1, sp, 0x14 movs r0, 0x2 strb r0, [r1] adds r0, r1, 0 bl sub_80951BC ldr r0, _08029524 ldr r1, _08029528 ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _0802952C movs r1, 0 bl sub_80141B4 movs r0, 0x23 bl sub_8028B04 _0802951C: bl sub_80155F0 b _08029550 .align 2, 0 _08029524: .4byte gUnknown_80DECFC _08029528: .4byte gUnknown_203B2C0 _0802952C: .4byte 0x00000101 _08029530: bl sub_80155F0 bl sub_8004914 ldr r0, _08029558 ldr r0, [r0] movs r2, 0xEF lsls r2, 2 adds r0, r2 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_8028B04 _08029550: add sp, 0x44 pop {r4} pop {r0} bx r0 .align 2, 0 _08029558: .4byte gUnknown_203B2C0 thumb_func_end sub_80293F4 thumb_func_start sub_802955C sub_802955C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029584 ldr r0, [sp] cmp r0, 0x8 beq _08029576 cmp r0, 0xA beq _0802957E b _08029584 _08029576: movs r0, 0x26 bl sub_8028B04 b _08029584 _0802957E: movs r0, 0x1 bl sub_8028B04 _08029584: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802955C thumb_func_start sub_802958C sub_802958C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080295A0 movs r0, 0x6 bl sub_8028B04 _080295A0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802958C thumb_func_start sub_80295A8 sub_80295A8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080295D2 ldr r0, [sp] cmp r0, 0x8 bne _080295C4 movs r0, 0x8 bl sub_8028B04 b _080295D2 _080295C4: cmp r0, 0x8 blt _080295D2 cmp r0, 0xA bgt _080295D2 movs r0, 0x1 bl sub_8028B04 _080295D2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80295A8 thumb_func_start sub_80295D8 sub_80295D8: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _08029600 cmp r0, 0x3 bhi _080295EE cmp r0, 0x2 beq _080295F4 b _0802965E _080295EE: cmp r0, 0x4 beq _0802961C b _0802965E _080295F4: bl sub_803084C movs r0, 0x1 bl sub_8028B04 b _0802965E _08029600: bl sub_80307EC ldr r1, _08029618 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x2B bl sub_8028B04 b _0802965E .align 2, 0 _08029618: .4byte gUnknown_203B2C0 _0802961C: ldr r4, _08029664 ldr r1, [r4] movs r0, 0x2A str r0, [r1] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x2C bl sub_8028B04 _0802965E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08029664: .4byte gUnknown_203B2C0 thumb_func_end sub_80295D8 thumb_func_start sub_8029668 sub_8029668: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802967C movs r0, 0x2A bl sub_8028B04 _0802967C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029668 thumb_func_start sub_8029684 sub_8029684: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _080296C8 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080296B6 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _080296B6: ldr r0, [sp] cmp r0, 0xA beq _08029718 cmp r0, 0xA bgt _080296CC cmp r0, 0x4 beq _08029718 b _08029734 .align 2, 0 _080296C8: .4byte gUnknown_203B2C0 _080296CC: cmp r0, 0xB beq _080296D6 cmp r0, 0xC beq _080296E2 b _08029734 _080296D6: bl sub_803084C movs r0, 0x2D bl sub_8028B04 b _08029734 _080296E2: ldr r0, [r4] movs r1, 0x3D str r1, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x2C bl sub_8028B04 b _08029734 _08029718: ldr r0, _0802973C ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x2A bl sub_8028B04 _08029734: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0802973C: .4byte gUnknown_203B2C0 thumb_func_end sub_8029684 thumb_func_start sub_8029740 sub_8029740: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _08029794 cmp r0, 0x2 bcc _08029794 bl sub_8030DE4 bl sub_8004914 ldr r4, _0802978C ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4] cmp r0, 0x3D bne _08029790 movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x2B bl sub_8028B04 b _08029794 .align 2, 0 _0802978C: .4byte gUnknown_203B2C0 _08029790: bl sub_8028B04 _08029794: pop {r4} pop {r0} bx r0 thumb_func_end sub_8029740 thumb_func_start sub_802979C sub_802979C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080297B0 movs r0, 0x1 bl sub_8028B04 _080297B0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802979C thumb_func_start sub_80297B8 sub_80297B8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080297CC movs r0, 0x33 bl sub_8028B04 _080297CC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80297B8 thumb_func_start sub_80297D4 sub_80297D4: push {r4,r5,lr} movs r0, 0x1 bl sub_8023A94 cmp r0, 0x3 beq _08029814 cmp r0, 0x3 bhi _080297EA cmp r0, 0x2 beq _080297F0 b _08029876 _080297EA: cmp r0, 0x4 beq _08029834 b _08029876 _080297F0: bl sub_8023C60 movs r0, 0x1 bl sub_8028B04 ldr r0, _08029808 ldr r0, [r0] ldr r1, _0802980C adds r0, r1 ldr r1, _08029810 strh r1, [r0] b _08029876 .align 2, 0 _08029808: .4byte gUnknown_203B2C0 _0802980C: .4byte 0x00000544 _08029810: .4byte 0x0000ffff _08029814: bl sub_8023B44 ldr r1, _0802982C ldr r1, [r1] ldr r2, _08029830 adds r1, r2 strh r0, [r1] movs r0, 0x34 bl sub_8028B04 b _08029876 .align 2, 0 _0802982C: .4byte gUnknown_203B2C0 _08029830: .4byte 0x00000544 _08029834: ldr r4, _0802987C ldr r1, [r4] movs r0, 0x33 str r0, [r1] bl sub_8023B44 adds r2, r0, 0 ldr r0, [r4] ldr r5, _08029880 adds r1, r0, r5 strh r2, [r1] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0 bl sub_8024458 movs r0, 0x35 bl sub_8028B04 _08029876: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802987C: .4byte gUnknown_203B2C0 _08029880: .4byte 0x00000544 thumb_func_end sub_80297D4 thumb_func_start sub_8029884 sub_8029884: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8023A94 ldr r4, _080298C8 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080298B6 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _080298B6: ldr r0, [sp] cmp r0, 0xA beq _0802991C cmp r0, 0xA bgt _080298CC cmp r0, 0x4 beq _0802991C b _08029938 .align 2, 0 _080298C8: .4byte gUnknown_203B2C0 _080298CC: cmp r0, 0xB beq _080298D6 cmp r0, 0xC beq _080298E2 b _08029938 _080298D6: bl sub_8023C60 movs r0, 0x4 bl sub_8028B04 b _08029938 _080298E2: ldr r0, [r4] movs r1, 0x3D str r1, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] ldr r1, _08029918 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0 bl sub_8024458 movs r0, 0x35 bl sub_8028B04 b _08029938 .align 2, 0 _08029918: .4byte 0x00000544 _0802991C: ldr r0, _08029940 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x3 bl sub_8035CC0 movs r0, 0x1 bl sub_8023B7C movs r0, 0x33 bl sub_8028B04 _08029938: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08029940: .4byte gUnknown_203B2C0 thumb_func_end sub_8029884 thumb_func_start sub_8029944 sub_8029944: push {r4,lr} bl sub_80244E4 cmp r0, 0x1 bne _08029954 bl sub_802452C b _080299A4 _08029954: cmp r0, 0x1 bcc _080299A4 cmp r0, 0x3 bhi _080299A4 bl sub_802453C bl sub_8004914 ldr r4, _0802999C ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_8023B7C ldr r4, [r4] ldr r0, [r4] cmp r0, 0x3D bne _080299A0 movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x34 bl sub_8028B04 b _080299A4 .align 2, 0 _0802999C: .4byte gUnknown_203B2C0 _080299A0: bl sub_8028B04 _080299A4: pop {r4} pop {r0} bx r0 thumb_func_end sub_8029944 thumb_func_start sub_80299AC sub_80299AC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080299D2 ldr r0, [sp] cmp r0, 0xA beq _080299CC cmp r0, 0x12 bne _080299D2 movs r0, 0x4 bl sub_8028B04 b _080299D2 _080299CC: movs r0, 0x1 bl sub_8028B04 _080299D2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80299AC thumb_func_start sub_80299D8 sub_80299D8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029A12 ldr r0, [sp] cmp r0, 0x9 beq _08029A04 cmp r0, 0x9 bgt _080299F6 cmp r0, 0x8 beq _080299FC b _08029A12 _080299F6: cmp r0, 0xA beq _08029A0C b _08029A12 _080299FC: movs r0, 0x4 bl sub_8028B04 b _08029A12 _08029A04: movs r0, 0x32 bl sub_8028B04 b _08029A12 _08029A0C: movs r0, 0x1 bl sub_8028B04 _08029A12: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80299D8 thumb_func_start sub_8029A18 sub_8029A18: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029A66 ldr r0, [sp] cmp r0, 0x11 beq _08029A3C cmp r0, 0x11 bgt _08029A36 cmp r0, 0xA beq _08029A60 b _08029A66 _08029A36: cmp r0, 0x12 beq _08029A58 b _08029A66 _08029A3C: movs r0, 0x3 bl sub_8024108 lsls r0, 24 cmp r0, 0 beq _08029A50 movs r0, 0x31 bl sub_8028B04 b _08029A66 _08029A50: movs r0, 0x32 bl sub_8028B04 b _08029A66 _08029A58: movs r0, 0x4 bl sub_8028B04 b _08029A66 _08029A60: movs r0, 0x1 bl sub_8028B04 _08029A66: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029A18 thumb_func_start sub_8029A6C sub_8029A6C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029A80 movs r0, 0x2E bl sub_8028B04 _08029A80: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029A6C thumb_func_start sub_8029A88 sub_8029A88: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029AAA bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08029AAA bl sub_8012750 movs r0, 0x39 bl sub_8028B04 _08029AAA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029A88 thumb_func_start sub_8029AB0 sub_8029AB0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029AD0 movs r0, 0x38 bl sub_8028B04 movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _08029AD0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029AB0 thumb_func_start sub_8029AD8 sub_8029AD8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029AEC movs r0, 0x3B bl sub_8028B04 _08029AEC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029AD8 thumb_func_start sub_8029AF4 sub_8029AF4: push {lr} bl sub_8031DCC cmp r0, 0x1 beq _08029B2C cmp r0, 0x1 bcc _08029B30 cmp r0, 0x3 bhi _08029B30 bl sub_8031E10 bl sub_8004914 ldr r0, _08029B28 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x3C bl sub_8028B04 b _08029B30 .align 2, 0 _08029B28: .4byte gUnknown_203B2C0 _08029B2C: bl sub_8031E00 _08029B30: pop {r0} bx r0 thumb_func_end sub_8029AF4 thumb_func_start sub_8029B34 sub_8029B34: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029B48 movs r0, 0x3 bl sub_8028B04 _08029B48: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029B34 thumb_func_start sub_8029B50 sub_8029B50: push {r4,r5,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08029C3C ldr r4, _08029C40 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 ldr r0, _08029C44 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _08029C48 bl strcpy adds r0, r4, 0 bl sub_808DDD0 ldr r2, [r5] movs r3, 0x84 lsls r3, 3 adds r1, r2, r3 str r0, [r1] adds r3, 0x4 adds r1, r2, r3 ldr r0, [r0, 0x4] str r0, [r1] ldr r0, _08029C4C adds r2, r0 movs r1, 0 strb r1, [r2] ldr r0, [r5] ldr r2, _08029C50 adds r0, r2 strb r1, [r0] ldr r0, [r5] adds r3, 0xA adds r0, r3 strb r1, [r0] ldr r1, [r5] movs r0, 0x85 lsls r0, 3 adds r2, r1, r0 movs r0, 0x2 strh r0, [r2] ldr r2, _08029C54 adds r1, r2 movs r0, 0x8 strh r0, [r1] movs r1, 0 movs r2, 0 _08029BD8: ldr r0, [r5] adds r0, 0x8 adds r0, r1 strb r2, [r0] adds r1, 0x1 cmp r1, 0x35 ble _08029BD8 ldr r5, _08029C3C ldr r1, [r5] ldr r3, _08029C58 adds r2, r1, r3 movs r0, 0x3 str r0, [r2] movs r0, 0xA7 lsls r0, 3 adds r1, r0 movs r0, 0x1 str r0, [r1] movs r0, 0x6 bl sub_80953D4 adds r4, r0, 0 movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _08029C60 lsls r0, r4, 24 lsrs r0, 24 bl sub_8095228 ldr r1, [r5] ldr r2, _08029C5C adds r3, r1, r2 ldr r2, [r0, 0x20] str r2, [r3] movs r3, 0x86 lsls r3, 2 adds r1, r3 strb r4, [r1] ldr r1, [r5] movs r2, 0x86 lsls r2, 3 adds r1, r2 ldr r0, [r0, 0x10] str r0, [r1] movs r0, 0x5 bl sub_802B2BC b _08029C7C .align 2, 0 _08029C3C: .4byte gUnknown_203B2C4 _08029C40: .4byte 0x00000564 _08029C44: .4byte gUnknown_202E5D8 _08029C48: .4byte gUnknown_202DF98 _08029C4C: .4byte 0x0000042c _08029C50: .4byte 0x0000042d _08029C54: .4byte 0x0000042a _08029C58: .4byte 0x00000534 _08029C5C: .4byte 0x0000041c _08029C60: ldr r1, [r5] ldr r3, _08029C8C adds r2, r1, r3 ldr r0, _08029C90 ldr r0, [r0] str r0, [r2] movs r0, 0x86 lsls r0, 2 adds r1, r0 movs r0, 0xFF strb r0, [r1] movs r0, 0 bl sub_802B2BC _08029C7C: ldr r0, _08029C94 ldr r1, [r0] movs r0, 0x2B str r0, [r1, 0x4] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08029C8C: .4byte 0x0000041c _08029C90: .4byte gUnknown_80DED44 _08029C94: .4byte gUnknown_203B2C4 thumb_func_end sub_8029B50 thumb_func_start sub_8029C98 sub_8029C98: push {lr} ldr r0, _08029CB0 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x2A bls _08029CA6 b _08029E58 _08029CA6: lsls r0, 2 ldr r1, _08029CB4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08029CB0: .4byte gUnknown_203B2C4 _08029CB4: .4byte _08029CB8 .align 2, 0 _08029CB8: .4byte _08029E48 .4byte _08029E48 .4byte _08029E4E .4byte _08029E54 .4byte _08029E42 .4byte _08029D64 .4byte _08029E3C .4byte _08029E30 .4byte _08029E36 .4byte _08029E2A .4byte _08029E24 .4byte _08029E1E .4byte _08029E0C .4byte _08029E06 .4byte _08029D76 .4byte _08029D7C .4byte _08029D8E .4byte _08029D82 .4byte _08029D88 .4byte _08029D94 .4byte _08029D9A .4byte _08029DA0 .4byte _08029DE8 .4byte _08029DF4 .4byte _08029DEE .4byte _08029DB2 .4byte _08029DB8 .4byte _08029DAC .4byte _08029DA6 .4byte _08029DFA .4byte _08029D6A .4byte _08029D70 .4byte _08029E00 .4byte _08029DDC .4byte _08029DE2 .4byte _08029E58 .4byte _08029DD6 .4byte _08029DD0 .4byte _08029DC4 .4byte _08029DCA .4byte _08029DBE .4byte _08029E12 .4byte _08029E18 _08029D64: bl sub_802AB7C b _08029E58 _08029D6A: bl sub_8029F98 b _08029E58 _08029D70: bl sub_8029EA8 b _08029E58 _08029D76: bl sub_802A090 b _08029E58 _08029D7C: bl sub_802A158 b _08029E58 _08029D82: bl sub_802A174 b _08029E58 _08029D88: bl sub_802A230 b _08029E58 _08029D8E: bl sub_802A0C8 b _08029E58 _08029D94: bl sub_802A28C b _08029E58 _08029D9A: bl sub_802A39C b _08029E58 _08029DA0: bl sub_802A33C b _08029E58 _08029DA6: bl sub_802A458 b _08029E58 _08029DAC: bl sub_802A4AC b _08029E58 _08029DB2: bl sub_802A4D4 b _08029E58 _08029DB8: bl sub_802A050 b _08029E58 _08029DBE: bl sub_802A9FC b _08029E58 _08029DC4: bl sub_802A4F0 b _08029E58 _08029DCA: bl sub_802A50C b _08029E58 _08029DD0: bl sub_802A6B4 b _08029E58 _08029DD6: bl sub_802A718 b _08029E58 _08029DDC: bl sub_802AB60 b _08029E58 _08029DE2: bl sub_802AB98 b _08029E58 _08029DE8: bl sub_802A740 b _08029E58 _08029DEE: bl sub_802A68C b _08029E58 _08029DF4: bl sub_802A6F0 b _08029E58 _08029DFA: bl sub_802A75C b _08029E58 _08029E00: bl sub_802A490 b _08029E58 _08029E06: bl sub_802A474 b _08029E58 _08029E0C: bl sub_802A798 b _08029E58 _08029E12: bl sub_802A828 b _08029E58 _08029E18: bl sub_802A850 b _08029E58 _08029E1E: bl sub_802A8A0 b _08029E58 _08029E24: bl sub_802A8BC b _08029E58 _08029E2A: bl sub_802A910 b _08029E58 _08029E30: bl sub_802A98C b _08029E58 _08029E36: bl sub_802A9A8 b _08029E58 _08029E3C: bl sub_802AA28 b _08029E58 _08029E42: bl sub_802AAAC b _08029E58 _08029E48: bl sub_802AAE4 b _08029E58 _08029E4E: bl sub_802AAC8 b _08029E58 _08029E54: movs r0, 0x3 b _08029E5A _08029E58: movs r0, 0 _08029E5A: pop {r1} bx r1 thumb_func_end sub_8029C98 thumb_func_start sub_8029E60 sub_8029E60: push {r4,lr} ldr r4, _08029EA4 ldr r0, [r4] cmp r0, 0 beq _08029E9C movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] bl sub_8030DE4 bl sub_801B450 bl sub_803084C bl sub_801CBB8 bl sub_80155F0 bl sub_8031E10 bl sub_802F2C0 _08029E9C: pop {r4} pop {r0} bx r0 .align 2, 0 _08029EA4: .4byte gUnknown_203B2C4 thumb_func_end sub_8029E60 thumb_func_start sub_8029EA8 sub_8029EA8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08029EBC movs r0, 0x1 bl sub_802B2BC _08029EBC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8029EA8 thumb_func_start sub_8029EC4 sub_8029EC4: push {lr} cmp r0, 0xF bhi _08029F88 lsls r0, 2 ldr r1, _08029ED4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08029ED4: .4byte _08029ED8 .align 2, 0 _08029ED8: .4byte _08029F88 .4byte _08029F50 .4byte _08029F50 .4byte _08029F18 .4byte _08029F20 .4byte _08029F50 .4byte _08029F28 .4byte _08029F30 .4byte _08029F88 .4byte _08029F38 .4byte _08029F88 .4byte _08029F40 .4byte _08029F88 .4byte _08029F48 .4byte _08029F50 .4byte _08029F74 _08029F18: ldr r0, _08029F1C b _08029F52 .align 2, 0 _08029F1C: .4byte gUnknown_80DEF28 _08029F20: ldr r0, _08029F24 b _08029F52 .align 2, 0 _08029F24: .4byte gUnknown_80DEF80 _08029F28: ldr r0, _08029F2C b _08029F52 .align 2, 0 _08029F2C: .4byte gUnknown_80DEFDC _08029F30: ldr r0, _08029F34 b _08029F52 .align 2, 0 _08029F34: .4byte gUnknown_80DF044 _08029F38: ldr r0, _08029F3C b _08029F52 .align 2, 0 _08029F3C: .4byte gUnknown_80DF0A0 _08029F40: ldr r0, _08029F44 b _08029F52 .align 2, 0 _08029F44: .4byte gUnknown_80DF0A0 _08029F48: ldr r0, _08029F4C b _08029F52 .align 2, 0 _08029F4C: .4byte gUnknown_80DF0E0 _08029F50: ldr r0, _08029F68 _08029F52: ldr r1, _08029F6C ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _08029F70 movs r1, 0 bl sub_80141B4 b _08029F88 .align 2, 0 _08029F68: .4byte gUnknown_80DEF04 _08029F6C: .4byte gUnknown_203B2C4 _08029F70: .4byte 0x0000010d _08029F74: ldr r0, _08029F8C ldr r1, _08029F90 ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _08029F94 movs r1, 0 bl sub_80141B4 _08029F88: pop {r0} bx r0 .align 2, 0 _08029F8C: .4byte gUnknown_80DF138 _08029F90: .4byte gUnknown_203B2C4 _08029F94: .4byte 0x0000010d thumb_func_end sub_8029EC4 thumb_func_start sub_8029F98 sub_8029F98: push {r4-r6,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 adds r6, r0, 0 cmp r6, 0 bne _0802A048 ldr r4, _08029FE4 ldr r0, [r4] ldr r5, _08029FE8 adds r0, r5 movs r1, 0 movs r2, 0x4 bl MemoryFill8 ldr r0, [r4] ldr r1, _08029FEC adds r0, r1 strb r6, [r0] ldr r0, [r4] subs r1, 0x1 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, r5 strb r6, [r0] ldr r0, [r4] ldr r1, [r0, 0x44] cmp r1, 0 bne _0802A03C ldr r1, [r0, 0x40] cmp r1, 0x6 beq _08029FF0 cmp r1, 0x7 beq _0802A034 b _0802A048 .align 2, 0 _08029FE4: .4byte gUnknown_203B2C4 _08029FE8: .4byte 0x0000041c _08029FEC: .4byte 0x0000041e _08029FF0: ldr r1, _0802A004 adds r0, r1 ldr r0, [r0] cmp r0, 0x4 beq _0802A020 cmp r0, 0x4 bgt _0802A008 cmp r0, 0x3 beq _0802A00C b _0802A020 .align 2, 0 _0802A004: .4byte 0x00000534 _0802A008: cmp r0, 0x6 bgt _0802A020 _0802A00C: ldr r0, _0802A028 ldr r1, _0802A02C ldr r2, [r1] movs r1, 0x84 lsls r1, 3 adds r2, r1 ldr r3, _0802A030 movs r1, 0 bl sub_80141B4 _0802A020: movs r0, 0xD bl sub_802B2BC b _0802A048 .align 2, 0 _0802A028: .4byte gUnknown_80DF194 _0802A02C: .4byte gUnknown_203B2C4 _0802A030: .4byte 0x0000010d _0802A034: movs r0, 0x21 bl sub_802B2BC b _0802A048 _0802A03C: adds r0, r1, 0 bl sub_8029EC4 movs r0, 0x1F bl sub_802B2BC _0802A048: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8029F98 thumb_func_start sub_802A050 sub_802A050: push {lr} bl sub_8031DCC cmp r0, 0x1 beq _0802A088 cmp r0, 0x1 bcc _0802A08C cmp r0, 0x3 bhi _0802A08C bl sub_8031E10 bl sub_8004914 ldr r0, _0802A084 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1B bl sub_802B2BC b _0802A08C .align 2, 0 _0802A084: .4byte gUnknown_203B2C4 _0802A088: bl sub_8031E00 _0802A08C: pop {r0} bx r0 thumb_func_end sub_802A050 thumb_func_start sub_802A090 sub_802A090: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A0C2 ldr r0, [sp] cmp r0, 0x7 beq _0802A0B4 cmp r0, 0x7 bgt _0802A0AE cmp r0, 0 beq _0802A0BC b _0802A0C2 _0802A0AE: cmp r0, 0x8 beq _0802A0BC b _0802A0C2 _0802A0B4: movs r0, 0x6 bl sub_802B2BC b _0802A0C2 _0802A0BC: movs r0, 0x1 bl sub_802B2BC _0802A0C2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A090 thumb_func_start sub_802A0C8 sub_802A0C8: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _0802A0F0 cmp r0, 0x3 bhi _0802A0DE cmp r0, 0x2 beq _0802A0E4 b _0802A14E _0802A0DE: cmp r0, 0x4 beq _0802A10C b _0802A14E _0802A0E4: bl sub_803084C movs r0, 0x1 bl sub_802B2BC b _0802A14E _0802A0F0: bl sub_80307EC ldr r1, _0802A108 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x11 bl sub_802B2BC b _0802A14E .align 2, 0 _0802A108: .4byte gUnknown_203B2C4 _0802A10C: ldr r4, _0802A154 ldr r1, [r4] movs r0, 0x10 str r0, [r1, 0x4] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x12 bl sub_802B2BC _0802A14E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802A154: .4byte gUnknown_203B2C4 thumb_func_end sub_802A0C8 thumb_func_start sub_802A158 sub_802A158: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A16C movs r0, 0x10 bl sub_802B2BC _0802A16C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A158 thumb_func_start sub_802A174 sub_802A174: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _0802A1B8 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802A1A6 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _0802A1A6: ldr r0, [sp] cmp r0, 0xB beq _0802A1C6 cmp r0, 0xB bgt _0802A1BC cmp r0, 0 beq _0802A208 b _0802A224 .align 2, 0 _0802A1B8: .4byte gUnknown_203B2C4 _0802A1BC: cmp r0, 0xC beq _0802A1D2 cmp r0, 0xD beq _0802A208 b _0802A224 _0802A1C6: bl sub_803084C movs r0, 0xE bl sub_802B2BC b _0802A224 _0802A1D2: ldr r0, [r4] movs r1, 0x2B str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x12 bl sub_802B2BC b _0802A224 _0802A208: ldr r0, _0802A22C ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x10 bl sub_802B2BC _0802A224: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0802A22C: .4byte gUnknown_203B2C4 thumb_func_end sub_802A174 thumb_func_start sub_802A230 sub_802A230: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _0802A284 cmp r0, 0x2 bcc _0802A284 bl sub_8030DE4 bl sub_8004914 ldr r4, _0802A27C ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x2B bne _0802A280 movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x11 bl sub_802B2BC b _0802A284 .align 2, 0 _0802A27C: .4byte gUnknown_203B2C4 _0802A280: bl sub_802B2BC _0802A284: pop {r4} pop {r0} bx r0 thumb_func_end sub_802A230 thumb_func_start sub_802A28C sub_802A28C: push {r4-r6,lr} ldr r4, _0802A2C0 ldr r0, [r4] ldr r5, _0802A2C4 adds r0, r5 movs r2, 0 strb r2, [r0] ldr r0, [r4] ldr r1, _0802A2C8 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] ldr r6, _0802A2CC adds r0, r6 strb r2, [r0] movs r0, 0x1 bl sub_801CA08 cmp r0, 0x3 beq _0802A2E2 cmp r0, 0x3 bhi _0802A2D0 cmp r0, 0x2 beq _0802A2D6 b _0802A334 .align 2, 0 _0802A2C0: .4byte gUnknown_203B2C4 _0802A2C4: .4byte 0x0000041e _0802A2C8: .4byte 0x0000041d _0802A2CC: .4byte 0x0000041c _0802A2D0: cmp r0, 0x4 beq _0802A2FC b _0802A334 _0802A2D6: bl sub_801CBB8 movs r0, 0x1 bl sub_802B2BC b _0802A334 _0802A2E2: bl sub_801CB24 ldr r1, [r4] ldr r2, _0802A2F8 adds r1, r2 strb r0, [r1] movs r0, 0x14 bl sub_802B2BC b _0802A334 .align 2, 0 _0802A2F8: .4byte 0x0000041e _0802A2FC: ldr r1, [r4] movs r0, 0x13 str r0, [r1, 0x4] bl sub_801CB24 ldr r1, [r4] adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r6 bl sub_801B3C0 movs r0, 0x15 bl sub_802B2BC _0802A334: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_802A28C thumb_func_start sub_802A33C sub_802A33C: push {r4,lr} bl sub_801B410 cmp r0, 0x1 beq _0802A394 cmp r0, 0x1 bcc _0802A394 cmp r0, 0x3 bhi _0802A394 bl sub_801B450 bl sub_8004914 ldr r4, _0802A38C ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_801CB5C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x2B bne _0802A390 movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x14 bl sub_802B2BC b _0802A394 .align 2, 0 _0802A38C: .4byte gUnknown_203B2C4 _0802A390: bl sub_802B2BC _0802A394: pop {r4} pop {r0} bx r0 thumb_func_end sub_802A33C thumb_func_start sub_802A39C sub_802A39C: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_801CA08 ldr r4, _0802A3E0 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802A3CE ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _0802A3CE: ldr r0, [sp] cmp r0, 0xB beq _0802A3EE cmp r0, 0xB bgt _0802A3E4 cmp r0, 0 beq _0802A430 b _0802A44A .align 2, 0 _0802A3E0: .4byte gUnknown_203B2C4 _0802A3E4: cmp r0, 0xC beq _0802A3FA cmp r0, 0xD beq _0802A430 b _0802A44A _0802A3EE: bl sub_801CBB8 movs r0, 0xC bl sub_802B2BC b _0802A44A _0802A3FA: ldr r0, [r4] movs r1, 0x2B str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] ldr r1, _0802A42C adds r0, r1 bl sub_801B3C0 movs r0, 0x15 bl sub_802B2BC b _0802A44A .align 2, 0 _0802A42C: .4byte 0x0000041c _0802A430: ldr r0, _0802A454 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x3 bl sub_8035CC0 bl sub_801CCD8 movs r0, 0x13 bl sub_802B2BC _0802A44A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0802A454: .4byte gUnknown_203B2C4 thumb_func_end sub_802A39C thumb_func_start sub_802A458 sub_802A458: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A46C movs r0, 0xD bl sub_802B2BC _0802A46C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A458 thumb_func_start sub_802A474 sub_802A474: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A488 movs r0, 0x3 bl sub_802B2BC _0802A488: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A474 thumb_func_start sub_802A490 sub_802A490: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A4A4 movs r0, 0x3 bl sub_802B2BC _0802A4A4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A490 thumb_func_start sub_802A4AC sub_802A4AC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A4CC movs r0, 0x18 bl sub_802B2BC movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _0802A4CC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A4AC thumb_func_start sub_802A4D4 sub_802A4D4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A4E8 movs r0, 0x1A bl sub_802B2BC _0802A4E8: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A4D4 thumb_func_start sub_802A4F0 sub_802A4F0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A504 movs r0, 0x27 bl sub_802B2BC _0802A504: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A4F0 thumb_func_start sub_802A50C sub_802A50C: push {r4,r5,lr} sub sp, 0x44 bl sub_80154F0 adds r4, r0, 0 add r0, sp, 0x14 movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x2 bne _0802A526 b _0802A660 _0802A526: cmp r4, 0x3 beq _0802A52C b _0802A680 _0802A52C: ldr r0, _0802A54C ldr r1, [r0] adds r1, 0x8 movs r0, 0x20 add r2, sp, 0x14 bl sub_8039068 subs r0, 0x7 cmp r0, 0x11 bls _0802A542 b _0802A654 _0802A542: lsls r0, 2 ldr r1, _0802A550 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802A54C: .4byte gUnknown_203B2C4 _0802A550: .4byte _0802A554 .align 2, 0 _0802A554: .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A5F0 .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A59C .4byte _0802A654 .4byte _0802A654 .4byte _0802A5D8 .4byte _0802A654 .4byte _0802A654 .4byte _0802A654 .4byte _0802A618 _0802A59C: ldr r0, _0802A5CC ldr r3, _0802A5D0 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, _0802A5D4 ldr r1, [r1] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x7 bl sub_8014248 movs r0, 0x28 bl sub_802B2BC b _0802A654 .align 2, 0 _0802A5CC: .4byte gUnknown_80DF1C0 _0802A5D0: .4byte gUnknown_80DEE44 _0802A5D4: .4byte gUnknown_203B2C4 _0802A5D8: ldr r0, _0802A5E8 ldr r1, _0802A5EC ldr r2, [r1] movs r3, 0x84 lsls r3, 3 adds r2, r3 b _0802A5FC .align 2, 0 _0802A5E8: .4byte gUnknown_80DF208 _0802A5EC: .4byte gUnknown_203B2C4 _0802A5F0: ldr r0, _0802A60C ldr r1, _0802A610 ldr r2, [r1] movs r4, 0x84 lsls r4, 3 adds r2, r4 _0802A5FC: ldr r3, _0802A614 movs r1, 0 bl sub_80141B4 movs r0, 0x1F bl sub_802B2BC b _0802A654 .align 2, 0 _0802A60C: .4byte gUnknown_80DF0A0 _0802A610: .4byte gUnknown_203B2C4 _0802A614: .4byte 0x0000010d _0802A618: ldr r1, [sp, 0x24] movs r0, 0x4 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 add r1, sp, 0x14 ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} movs r1, 0x6 strb r1, [r0] ldr r0, _0802A65C ldr r0, [r0] movs r5, 0x86 lsls r5, 3 adds r0, r5 ldr r1, [sp, 0x24] str r1, [r0] movs r0, 0x21 bl sub_802B2BC _0802A654: bl sub_80155F0 b _0802A680 .align 2, 0 _0802A65C: .4byte gUnknown_203B2C4 _0802A660: bl sub_80155F0 bl sub_8004914 ldr r0, _0802A688 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_802B2BC _0802A680: add sp, 0x44 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802A688: .4byte gUnknown_203B2C4 thumb_func_end sub_802A50C thumb_func_start sub_802A68C sub_802A68C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A6AE bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0802A6AE bl sub_8012750 movs r0, 0xD bl sub_802B2BC _0802A6AE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A68C thumb_func_start sub_802A6B4 sub_802A6B4: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A6E8 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0802A6E8 bl sub_8012744 adds r4, r0, 0 bl sub_8012750 cmp r4, 0 bne _0802A6E2 movs r0, 0x20 bl sub_802B2BC b _0802A6E8 _0802A6E2: movs r0, 0x3 bl sub_802B2BC _0802A6E8: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802A6B4 thumb_func_start sub_802A6F0 sub_802A6F0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A710 movs r0, 0x18 bl sub_802B2BC movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _0802A710: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A6F0 thumb_func_start sub_802A718 sub_802A718: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A738 movs r0, 0x25 bl sub_802B2BC movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _0802A738: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A718 thumb_func_start sub_802A740 sub_802A740: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A754 movs r0, 0x1E bl sub_802B2BC _0802A754: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A740 thumb_func_start sub_802A75C sub_802A75C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A792 ldr r0, [sp] cmp r0, 0 beq _0802A78C cmp r0, 0x7 bne _0802A792 ldr r0, _0802A788 ldr r0, [r0] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r0, [r0] movs r0, 0x16 bl sub_802B2BC b _0802A792 .align 2, 0 _0802A788: .4byte gUnknown_203B2C4 _0802A78C: movs r0, 0x1 bl sub_802B2BC _0802A792: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A75C thumb_func_start sub_802A798 sub_802A798: push {r4,r5,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A81E ldr r0, [sp] cmp r0, 0x7 beq _0802A7BC cmp r0, 0x7 bgt _0802A7B6 cmp r0, 0 beq _0802A818 b _0802A81E _0802A7B6: cmp r0, 0x8 beq _0802A810 b _0802A81E _0802A7BC: ldr r4, _0802A800 ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_8095228 adds r2, r0, 0 ldr r1, [r4] ldr r3, _0802A804 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _0802A7E2 ldr r5, _0802A808 adds r0, r1, r5 ldr r0, [r0] str r0, [r2, 0x20] _0802A7E2: ldr r0, _0802A80C ldr r1, [r0] ldr r0, [r4] adds r0, r3 ldrb r0, [r0] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] movs r0, 0x29 bl sub_802B2BC b _0802A81E .align 2, 0 _0802A800: .4byte gUnknown_203B2C4 _0802A804: .4byte 0x0000041e _0802A808: .4byte 0x0000041c _0802A80C: .4byte gUnknown_203B460 _0802A810: movs r0, 0xB bl sub_802B2BC b _0802A81E _0802A818: movs r0, 0x1 bl sub_802B2BC _0802A81E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_802A798 thumb_func_start sub_802A828 sub_802A828: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A848 movs r0, 0x2A bl sub_802B2BC movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _0802A848: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A828 thumb_func_start sub_802A850 sub_802A850: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A89A bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0802A89A bl sub_8012750 ldr r0, _0802A884 ldr r0, [r0] ldr r1, _0802A888 adds r0, r1 ldr r0, [r0] cmp r0, 0x3 blt _0802A89A cmp r0, 0x4 ble _0802A88C cmp r0, 0x5 beq _0802A894 b _0802A89A .align 2, 0 _0802A884: .4byte gUnknown_203B2C4 _0802A888: .4byte 0x00000534 _0802A88C: movs r0, 0x1D bl sub_802B2BC b _0802A89A _0802A894: movs r0, 0x19 bl sub_802B2BC _0802A89A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A850 thumb_func_start sub_802A8A0 sub_802A8A0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A8B4 movs r0, 0x13 bl sub_802B2BC _0802A8B4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A8A0 thumb_func_start sub_802A8BC sub_802A8BC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A90A ldr r0, [sp] cmp r0, 0 beq _0802A904 cmp r0, 0xA bne _0802A90A ldr r0, _0802A8EC ldr r0, [r0] ldr r1, _0802A8F0 adds r0, r1 ldr r0, [r0] cmp r0, 0x3 blt _0802A90A cmp r0, 0x4 ble _0802A8F4 cmp r0, 0x5 beq _0802A8FC b _0802A90A .align 2, 0 _0802A8EC: .4byte gUnknown_203B2C4 _0802A8F0: .4byte 0x00000534 _0802A8F4: movs r0, 0x1D bl sub_802B2BC b _0802A90A _0802A8FC: movs r0, 0x19 bl sub_802B2BC b _0802A90A _0802A904: movs r0, 0x1 bl sub_802B2BC _0802A90A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A8BC thumb_func_start sub_802A910 sub_802A910: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A986 ldr r0, [sp] cmp r0, 0x9 beq _0802A934 cmp r0, 0x9 bgt _0802A92E cmp r0, 0 beq _0802A980 b _0802A986 _0802A92E: cmp r0, 0xA beq _0802A950 b _0802A986 _0802A934: movs r0, 0 bl sub_801CF14 lsls r0, 24 cmp r0, 0 beq _0802A948 movs r0, 0xA bl sub_802B2BC b _0802A986 _0802A948: movs r0, 0xB bl sub_802B2BC b _0802A986 _0802A950: ldr r0, _0802A968 ldr r0, [r0] ldr r1, _0802A96C adds r0, r1 ldr r0, [r0] cmp r0, 0x3 blt _0802A986 cmp r0, 0x4 ble _0802A970 cmp r0, 0x5 beq _0802A978 b _0802A986 .align 2, 0 _0802A968: .4byte gUnknown_203B2C4 _0802A96C: .4byte 0x00000534 _0802A970: movs r0, 0x1D bl sub_802B2BC b _0802A986 _0802A978: movs r0, 0x19 bl sub_802B2BC b _0802A986 _0802A980: movs r0, 0x1 bl sub_802B2BC _0802A986: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A910 thumb_func_start sub_802A98C sub_802A98C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A9A0 movs r0, 0x8 bl sub_802B2BC _0802A9A0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A98C thumb_func_start sub_802A9A8 sub_802A9A8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802A9F6 ldr r0, [sp] cmp r0, 0 beq _0802A9F0 cmp r0, 0x7 bne _0802A9F6 ldr r0, _0802A9D8 ldr r0, [r0] ldr r1, _0802A9DC adds r0, r1 ldr r0, [r0] cmp r0, 0x3 blt _0802A9F6 cmp r0, 0x4 ble _0802A9E0 cmp r0, 0x5 beq _0802A9E8 b _0802A9F6 .align 2, 0 _0802A9D8: .4byte gUnknown_203B2C4 _0802A9DC: .4byte 0x00000534 _0802A9E0: movs r0, 0x1D bl sub_802B2BC b _0802A9F6 _0802A9E8: movs r0, 0x19 bl sub_802B2BC b _0802A9F6 _0802A9F0: movs r0, 0x1 bl sub_802B2BC _0802A9F6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A9A8 thumb_func_start sub_802A9FC sub_802A9FC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AA22 ldr r0, [sp] cmp r0, 0 beq _0802AA1C cmp r0, 0x7 bne _0802AA22 movs r0, 0x26 bl sub_802B2BC b _0802AA22 _0802AA1C: movs r0, 0x1 bl sub_802B2BC _0802AA22: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802A9FC thumb_func_start sub_802AA28 sub_802AA28: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AAA6 ldr r2, [sp] cmp r2, 0 beq _0802AAA0 cmp r2, 0 blt _0802AAA6 cmp r2, 0x5 bgt _0802AAA6 cmp r2, 0x3 blt _0802AAA6 ldr r0, _0802AA7C ldr r0, [r0] ldr r3, _0802AA80 adds r1, r0, r3 str r2, [r1] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _0802AA8C movs r0, 0x5 bl sub_80953D4 lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0 beq _0802AA84 movs r0, 0x7 bl sub_802B2BC b _0802AAA6 .align 2, 0 _0802AA7C: .4byte gUnknown_203B2C4 _0802AA80: .4byte 0x00000534 _0802AA84: movs r0, 0x9 bl sub_802B2BC b _0802AAA6 _0802AA8C: cmp r2, 0x5 bne _0802AA98 movs r0, 0x26 bl sub_802B2BC b _0802AAA6 _0802AA98: movs r0, 0x1D bl sub_802B2BC b _0802AAA6 _0802AAA0: movs r0, 0x1 bl sub_802B2BC _0802AAA6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AA28 thumb_func_start sub_802AAAC sub_802AAAC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AAC0 movs r0, 0x1 bl sub_802B2BC _0802AAC0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AAAC thumb_func_start sub_802AAC8 sub_802AAC8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AADC movs r0, 0x3 bl sub_802B2BC _0802AADC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AAC8 thumb_func_start sub_802AAE4 sub_802AAE4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AB5A ldr r2, [sp] cmp r2, 0x1 beq _0802AB08 cmp r2, 0x1 bgt _0802AB02 cmp r2, 0 beq _0802AB54 b _0802AB5A _0802AB02: cmp r2, 0x2 beq _0802AB38 b _0802AB5A _0802AB08: ldr r0, _0802AB2C ldr r0, [r0] movs r1, 0x6 str r1, [r0, 0x40] movs r1, 0xA7 lsls r1, 3 adds r0, r1 str r2, [r0] movs r0, 0x5 bl sub_8095324 cmp r0, 0 bne _0802AB30 movs r0, 0x4 bl sub_802B2BC b _0802AB5A .align 2, 0 _0802AB2C: .4byte gUnknown_203B2C4 _0802AB30: movs r0, 0xF bl sub_802B2BC b _0802AB5A _0802AB38: ldr r0, _0802AB50 ldr r0, [r0] movs r1, 0x7 str r1, [r0, 0x40] movs r1, 0xA7 lsls r1, 3 adds r0, r1 str r2, [r0] movs r0, 0x6 bl sub_802B2BC b _0802AB5A .align 2, 0 _0802AB50: .4byte gUnknown_203B2C4 _0802AB54: movs r0, 0x2 bl sub_802B2BC _0802AB5A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AAE4 thumb_func_start sub_802AB60 sub_802AB60: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AB74 movs r0, 0x22 bl sub_802B2BC _0802AB74: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AB60 thumb_func_start sub_802AB7C sub_802AB7C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802AB90 movs r0, 0x22 bl sub_802B2BC _0802AB90: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802AB7C thumb_func_start sub_802AB98 sub_802AB98: push {r4,lr} bl sub_802F298 cmp r0, 0x3 bne _0802ABE0 bl sub_802F2C0 ldr r0, _0802ABE8 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _0802ABEC bl strcpy ldr r0, _0802ABF0 ldr r0, [r0] movs r1, 0x86 lsls r1, 3 adds r0, r1 ldr r1, [r0] movs r0, 0x6 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095240 movs r0, 0x24 bl sub_802B2BC _0802ABE0: pop {r4} pop {r0} bx r0 .align 2, 0 _0802ABE8: .4byte gUnknown_202E5D8 _0802ABEC: .4byte gUnknown_202DF98 _0802ABF0: .4byte gUnknown_203B2C4 thumb_func_end sub_802AB98 thumb_func_start nullsub_131 nullsub_131: bx lr thumb_func_end nullsub_131 thumb_func_start sub_802ABF8 sub_802ABF8: push {r4-r6,lr} sub sp, 0xB8 ldr r1, _0802AC14 ldr r0, [r1] ldrb r0, [r0] adds r6, r1, 0 cmp r0, 0x2A bls _0802AC0A b _0802B2AA _0802AC0A: lsls r0, 2 ldr r1, _0802AC18 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802AC14: .4byte gUnknown_203B2C4 _0802AC18: .4byte _0802AC1C .align 2, 0 _0802AC1C: .4byte _0802B1DC .4byte _0802B1FC .4byte _0802B22C .4byte _0802B2AA .4byte _0802B1D4 .4byte _0802ACC8 .4byte _0802B248 .4byte _0802B194 .4byte _0802B1A4 .4byte _0802B168 .4byte _0802B138 .4byte _0802B128 .4byte _0802B0F0 .4byte _0802B0AC .4byte _0802AD08 .4byte _0802AD18 .4byte _0802AD20 .4byte _0802AD46 .4byte _0802B2AA .4byte _0802AD80 .4byte _0802ADB0 .4byte _0802B2AA .4byte _0802B07C .4byte _0802B094 .4byte _0802B2AA .4byte _0802AF50 .4byte _0802AF1A .4byte _0802AF46 .4byte _0802B2AA .4byte _0802B0A4 .4byte _0802ADF8 .4byte _0802B2AA .4byte _0802AF70 .4byte _0802AF78 .4byte _0802AFAC .4byte _0802B2AA .4byte _0802AF60 .4byte _0802B2AA .4byte _0802AEEC .4byte _0802AEF4 .4byte _0802B2AA .4byte _0802B110 .4byte _0802B120 _0802ACC8: bl sub_808D33C adds r1, r0, 0 adds r1, 0x4C add r0, sp, 0x14 movs r2, 0xA bl sub_80922B4 ldr r5, _0802ACF8 ldr r0, [r5] ldr r4, _0802ACFC adds r0, r4 ldr r1, _0802AD00 add r2, sp, 0x14 bl sub_800D158 ldr r2, [r5] adds r4, r2, r4 movs r0, 0x84 lsls r0, 3 adds r2, r0 ldr r3, _0802AD04 adds r0, r4, 0 b _0802B238 .align 2, 0 _0802ACF8: .4byte gUnknown_203B2C4 _0802ACFC: .4byte 0x00000434 _0802AD00: .4byte gUnknown_80DF250 _0802AD04: .4byte 0x0000010d _0802AD08: ldr r0, _0802AD10 ldr r3, _0802AD14 b _0802B1A8 .align 2, 0 _0802AD10: .4byte gUnknown_80DF304 _0802AD14: .4byte gUnknown_80DEE60 _0802AD18: ldr r0, _0802AD1C b _0802B22E .align 2, 0 _0802AD1C: .4byte gUnknown_80DF330 _0802AD20: bl sub_8030894 cmp r0, 0 beq _0802AD2A b _0802B2AA _0802AD2A: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x5 movs r1, 0 movs r2, 0 movs r3, 0x6 bl sub_80306A8 b _0802B2AA _0802AD46: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _0802AD78 ldr r2, _0802AD7C str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_803092C b _0802ADE0 .align 2, 0 _0802AD78: .4byte gUnknown_80DED60 _0802AD7C: .4byte gUnknown_80DED78 _0802AD80: bl sub_801D008 cmp r0, 0 beq _0802AD8A b _0802B2AA _0802AD8A: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C add r2, sp, 0xB4 ldr r0, _0802ADAC str r0, [r2] movs r0, 0 movs r1, 0x1 movs r3, 0x9 bl sub_801C8C4 b _0802B2AA .align 2, 0 _0802ADAC: .4byte 0x00020003 _0802ADB0: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _0802ADF0 ldr r2, _0802ADF4 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_801CCD8 _0802ADE0: ldr r0, [r6] adds r0, r5 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 b _0802B2AA .align 2, 0 _0802ADF0: .4byte gUnknown_80DED48 _0802ADF4: .4byte gUnknown_80DED78 _0802ADF8: ldr r1, [r6] movs r0, 0 str r0, [r1, 0x44] bl sub_8011830 ldr r0, [r6] ldr r0, [r0, 0x40] bl sub_8037B28 ldr r1, [r6] str r0, [r1, 0x44] cmp r0, 0 bne _0802AEE6 ldr r0, [r1, 0x40] cmp r0, 0x6 beq _0802AE1E cmp r0, 0x7 beq _0802AE5C b _0802AE8C _0802AE1E: movs r4, 0xDC lsls r4, 1 adds r0, r1, r4 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r5, 0x86 lsls r5, 2 adds r0, r5 ldrb r0, [r0] bl sub_8095228 ldr r1, [r6] adds r1, r4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r2, [r6] ldr r0, [r2, 0x40] adds r4, r2, r4 movs r1, 0xF4 lsls r1, 1 adds r2, r1 b _0802AE82 _0802AE5C: movs r4, 0xDC lsls r4, 1 adds r0, r1, r4 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r5, 0xF4 lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r2, [r6] ldr r0, [r2, 0x40] adds r4, r2, r4 adds r2, r5 _0802AE82: adds r1, r4, 0 bl sub_8037D64 ldr r1, [r6] str r0, [r1, 0x44] _0802AE8C: ldr r4, _0802AED0 ldr r2, [r4] ldr r0, [r2, 0x44] cmp r0, 0 bne _0802AEE6 ldr r0, [r2, 0x40] cmp r0, 0x7 bhi _0802AEE6 cmp r0, 0x6 bcc _0802AEE6 movs r3, 0xDC lsls r3, 1 adds r1, r2, r3 movs r5, 0xF4 lsls r5, 1 adds r2, r5 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x44] bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _0802AED4 ldr r0, [r4] movs r2, 0x86 lsls r2, 3 adds r1, r0, r2 movs r3, 0xFC lsls r3, 1 adds r0, r3 b _0802AEE2 .align 2, 0 _0802AED0: .4byte gUnknown_203B2C4 _0802AED4: ldr r0, [r4] movs r5, 0x86 lsls r5, 3 adds r1, r0, r5 movs r2, 0xE4 lsls r2, 1 adds r0, r2 _0802AEE2: ldr r0, [r0] str r0, [r1] _0802AEE6: bl sub_8011854 b _0802B2AA _0802AEEC: ldr r0, _0802AEF0 b _0802B22E .align 2, 0 _0802AEF0: .4byte gUnknown_80DF380 _0802AEF4: ldr r0, [r6] movs r5, 0xEF lsls r5, 2 adds r0, r5 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r6] adds r1, 0x8 movs r0, 0x4 bl sub_80151C0 b _0802B2AA _0802AF1A: ldr r0, [r6] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r6] movs r2, 0x86 lsls r2, 2 adds r0, r2 ldrb r0, [r0] movs r1, 0 bl sub_8031D70 b _0802B2AA _0802AF46: ldr r0, _0802AF4C b _0802B22E .align 2, 0 _0802AF4C: .4byte gUnknown_80DF3B4 _0802AF50: ldr r0, _0802AF5C ldr r2, [r6] movs r5, 0x84 lsls r5, 3 adds r2, r5 b _0802B236 .align 2, 0 _0802AF5C: .4byte gUnknown_80DF418 _0802AF60: ldr r0, _0802AF6C ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _0802B236 .align 2, 0 _0802AF6C: .4byte gUnknown_80DF44C _0802AF70: ldr r0, _0802AF74 b _0802B22E .align 2, 0 _0802AF74: .4byte gUnknown_80DF46C _0802AF78: ldr r0, [r6] ldr r5, _0802AF90 adds r0, r5 ldr r0, [r0] cmp r0, 0x4 bne _0802AF86 b _0802B2AA _0802AF86: cmp r0, 0x4 bgt _0802AF94 cmp r0, 0x3 beq _0802AF9A b _0802B2AA .align 2, 0 _0802AF90: .4byte 0x00000534 _0802AF94: cmp r0, 0x6 ble _0802AF9A b _0802B2AA _0802AF9A: ldr r0, _0802AFA8 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _0802B236 .align 2, 0 _0802AFA8: .4byte gUnknown_80DF4F4 _0802AFAC: movs r4, 0x98 lsls r4, 1 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r5, _0802B00C ldr r0, [r5] ldr r2, _0802B010 adds r0, r2 bl strcpy ldr r1, [r5] movs r3, 0xAA lsls r3, 3 adds r0, r1, r3 movs r2, 0 strh r4, [r0] ldr r0, _0802B014 adds r1, r0 movs r0, 0x2 strb r0, [r1] ldr r0, [r5] adds r3, 0x4 adds r1, r0, r3 str r2, [r1] movs r1, 0x86 lsls r1, 3 adds r0, r1 ldr r1, [r0] movs r0, 0x6 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 adds r0, 0x22 ldrb r1, [r0] cmp r1, 0 beq _0802B018 ldr r0, [r5] movs r3, 0xAB lsls r3, 3 adds r0, r3 b _0802B022 .align 2, 0 _0802B00C: .4byte gUnknown_203B2C4 _0802B010: .4byte 0x0000053c _0802B014: .4byte 0x00000552 _0802B018: ldr r0, [r5] movs r5, 0xAB lsls r5, 3 adds r0, r5 movs r1, 0 _0802B022: strb r1, [r0] ldr r4, _0802B068 ldr r0, [r4] ldr r1, _0802B06C adds r0, r1 movs r5, 0 movs r1, 0x1 strb r1, [r0] adds r0, r2, 0x4 movs r1, 0 bl sub_803C200 ldr r1, [r4] movs r3, 0xAC lsls r3, 3 adds r2, r1, r3 str r0, [r2] ldr r0, _0802B070 adds r1, r0 strb r5, [r1] ldr r0, [r4] ldr r1, _0802B074 adds r0, r1 strb r5, [r0] ldr r0, [r4] ldr r2, _0802B078 adds r0, r2 strb r5, [r0] ldr r0, [r4] subs r3, 0x24 adds r0, r3 movs r1, 0 bl sub_802F204 b _0802B2AA .align 2, 0 _0802B068: .4byte gUnknown_203B2C4 _0802B06C: .4byte 0x0000055b _0802B070: .4byte 0x00000559 _0802B074: .4byte 0x0000055a _0802B078: .4byte 0x0000055c _0802B07C: movs r0, 0 bl nullsub_23 ldr r0, _0802B090 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 b _0802B2AA .align 2, 0 _0802B090: .4byte gUnknown_80DF544 _0802B094: ldr r0, _0802B0A0 ldr r2, [r6] movs r5, 0x84 lsls r5, 3 adds r2, r5 b _0802B236 .align 2, 0 _0802B0A0: .4byte gUnknown_80DF594 _0802B0A4: ldr r0, _0802B0A8 b _0802B1A6 .align 2, 0 _0802B0A8: .4byte gUnknown_80DF5E4 _0802B0AC: bl sub_808D33C adds r1, r0, 0 add r6, sp, 0x64 adds r1, 0x4C adds r0, r6, 0 movs r2, 0xA bl sub_80922B4 ldr r5, _0802B0E0 ldr r0, [r5] ldr r4, _0802B0E4 adds r0, r4 ldr r1, _0802B0E8 adds r2, r6, 0 bl sub_800D158 ldr r2, [r5] adds r4, r2, r4 movs r3, 0x84 lsls r3, 3 adds r2, r3 ldr r3, _0802B0EC adds r0, r4, 0 b _0802B238 .align 2, 0 _0802B0E0: .4byte gUnknown_203B2C4 _0802B0E4: .4byte 0x00000434 _0802B0E8: .4byte gUnknown_80DF63C _0802B0EC: .4byte 0x0000010d _0802B0F0: ldr r0, _0802B108 ldr r3, _0802B10C movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r5, 0x84 lsls r5, 3 adds r1, r5 b _0802B1BA .align 2, 0 _0802B108: .4byte gUnknown_80DF694 _0802B10C: .4byte gUnknown_80DEEE4 _0802B110: ldr r0, _0802B11C ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _0802B236 .align 2, 0 _0802B11C: .4byte gUnknown_80DF44C _0802B120: ldr r0, _0802B124 b _0802B22E .align 2, 0 _0802B124: .4byte gUnknown_80DF6F0 _0802B128: ldr r0, _0802B134 ldr r2, [r6] movs r5, 0x84 lsls r5, 3 adds r2, r5 b _0802B236 .align 2, 0 _0802B134: .4byte gUnknown_80DF710 _0802B138: ldr r0, _0802B160 ldr r3, _0802B164 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0 bl sub_8014248 b _0802B2AA .align 2, 0 _0802B160: .4byte gUnknown_80DF73C _0802B164: .4byte gUnknown_80DEEBC _0802B168: ldr r0, _0802B18C ldr r3, _0802B190 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r5, 0x84 lsls r5, 3 adds r1, r5 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _0802B2AA .align 2, 0 _0802B18C: .4byte gUnknown_80DF77C _0802B190: .4byte gUnknown_80DEE7C _0802B194: ldr r0, _0802B1A0 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 b _0802B236 .align 2, 0 _0802B1A0: .4byte gUnknown_80DF7D4 _0802B1A4: ldr r0, _0802B1CC _0802B1A6: ldr r3, _0802B1D0 _0802B1A8: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 _0802B1BA: str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x7 bl sub_8014248 b _0802B2AA .align 2, 0 _0802B1CC: .4byte gUnknown_80DF870 _0802B1D0: .4byte gUnknown_80DEE44 _0802B1D4: ldr r0, _0802B1D8 b _0802B22E .align 2, 0 _0802B1D8: .4byte gUnknown_80DF8B4 _0802B1DC: ldr r0, _0802B1F4 ldr r3, _0802B1F8 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r5, 0x84 lsls r5, 3 adds r1, r5 b _0802B212 .align 2, 0 _0802B1F4: .4byte gUnknown_80DF8EC _0802B1F8: .4byte gUnknown_80DEDB8 _0802B1FC: ldr r0, _0802B224 ldr r3, _0802B228 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r1, [r6] movs r2, 0x84 lsls r2, 3 adds r1, r2 _0802B212: str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x1 bl sub_8014248 b _0802B2AA .align 2, 0 _0802B224: .4byte gUnknown_80DF928 _0802B228: .4byte gUnknown_80DEDB8 _0802B22C: ldr r0, _0802B240 _0802B22E: ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 _0802B236: ldr r3, _0802B244 _0802B238: movs r1, 0 bl sub_80141B4 b _0802B2AA .align 2, 0 _0802B240: .4byte gUnknown_80DF94C _0802B244: .4byte 0x0000010d _0802B248: ldr r4, [r6] movs r5, 0xA7 lsls r5, 3 adds r0, r4, r5 ldr r0, [r0] cmp r0, 0x1 beq _0802B25C cmp r0, 0x2 beq _0802B288 b _0802B2AA _0802B25C: ldr r0, _0802B280 ldr r3, _0802B284 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] movs r2, 0x84 lsls r2, 3 adds r1, r4, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x3 bl sub_8014248 b _0802B2AA .align 2, 0 _0802B280: .4byte gUnknown_80DF96C _0802B284: .4byte gUnknown_80DEE08 _0802B288: ldr r0, _0802B2B4 ldr r3, _0802B2B8 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] movs r5, 0x84 lsls r5, 3 adds r1, r4, r5 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x3 bl sub_8014248 _0802B2AA: add sp, 0xB8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802B2B4: .4byte gUnknown_80DF9A4 _0802B2B8: .4byte gUnknown_80DEE08 thumb_func_end sub_802ABF8 thumb_func_start sub_802B2BC sub_802B2BC: push {lr} ldr r1, _0802B2D0 ldr r1, [r1] strb r0, [r1] bl nullsub_131 bl sub_802ABF8 pop {r0} bx r0 .align 2, 0 _0802B2D0: .4byte gUnknown_203B2C4 thumb_func_end sub_802B2BC thumb_func_start sub_802B2D4 sub_802B2D4: push {r4,r5,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _0802B348 movs r4, 0xA0 lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 ldr r1, [r5] movs r0, 0xFF strb r0, [r1, 0x1] ldr r0, _0802B34C subs r4, 0x10 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808DDD0 ldr r1, [r5] str r0, [r1, 0x4] ldr r0, [r0, 0x4] str r0, [r1, 0x8] movs r2, 0 strb r2, [r1, 0x10] ldr r0, [r5] strb r2, [r0, 0x11] ldr r0, [r5] strb r2, [r0, 0x12] ldr r0, [r5] movs r1, 0x2 strh r1, [r0, 0xC] movs r1, 0x8 strh r1, [r0, 0xE] adds r0, 0x1 bl sub_8099394 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0802B350 movs r0, 0 bl sub_802B548 movs r0, 0x1 b _0802B352 .align 2, 0 _0802B348: .4byte gUnknown_203B2C8 _0802B34C: .4byte gUnknown_202E5D8 _0802B350: movs r0, 0 _0802B352: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_802B2D4 thumb_func_start sub_802B358 sub_802B358: push {lr} ldr r0, _0802B370 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x5 bhi _0802B3B2 lsls r0, 2 ldr r1, _0802B374 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802B370: .4byte gUnknown_203B2C8 _0802B374: .4byte _0802B378 .align 2, 0 _0802B378: .4byte _0802B390 .4byte _0802B396 .4byte _0802B39C .4byte _0802B3A2 .4byte _0802B3A8 .4byte _0802B3AE _0802B390: bl sub_802B560 b _0802B3B2 _0802B396: bl sub_802B57C b _0802B3B2 _0802B39C: bl sub_802B5B8 b _0802B3B2 _0802B3A2: bl sub_802B5FC b _0802B3B2 _0802B3A8: bl sub_802B624 b _0802B3B2 _0802B3AE: movs r0, 0x3 b _0802B3B4 _0802B3B2: movs r0, 0 _0802B3B4: pop {r1} bx r1 thumb_func_end sub_802B358 thumb_func_start sub_802B3B8 sub_802B3B8: push {r4,lr} ldr r4, _0802B3D8 ldr r0, [r4] cmp r0, 0 beq _0802B3D2 ldr r0, [r0, 0x4] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802B3D2: pop {r4} pop {r0} bx r0 .align 2, 0 _0802B3D8: .4byte gUnknown_203B2C8 thumb_func_end sub_802B3B8 thumb_func_start nullsub_132 nullsub_132: bx lr thumb_func_end nullsub_132 thumb_func_start sub_802B3E0 sub_802B3E0: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x28 ldr r1, _0802B404 ldr r0, [r1] ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x5 bls _0802B3F8 b _0802B532 _0802B3F8: lsls r0, 2 ldr r1, _0802B408 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802B404: .4byte gUnknown_203B2C8 _0802B408: .4byte _0802B40C .align 2, 0 _0802B40C: .4byte _0802B424 .4byte _0802B464 .4byte _0802B50C .4byte _0802B532 .4byte _0802B524 .4byte _0802B532 _0802B424: movs r0, 0 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0802B438 mov r0, sp bl sub_80920D8 b _0802B440 _0802B438: ldr r1, _0802B458 mov r0, sp bl strcpy _0802B440: ldr r4, _0802B45C ldr r0, [r4] adds r0, 0x14 ldr r1, _0802B460 mov r2, sp bl sub_800D158 ldr r2, [r4] adds r0, r2, 0 adds r0, 0x14 b _0802B510 .align 2, 0 _0802B458: .4byte gUnknown_80DF9F0 _0802B45C: .4byte gUnknown_203B2C8 _0802B460: .4byte gUnknown_80DF9F8 _0802B464: movs r6, 0x98 lsls r6, 1 adds r0, r6, 0 bl sub_808D994 adds r1, r0, 0 ldr r5, _0802B500 ldr r0, [r5] movs r2, 0x8A lsls r2, 1 mov r9, r2 add r0, r9 bl strcpy ldr r2, [r5] movs r3, 0x94 lsls r3, 1 adds r0, r2, r3 movs r1, 0 mov r8, r1 movs r1, 0 strh r6, [r0] adds r3, 0x2 adds r2, r3 movs r0, 0x2 strb r0, [r2] ldr r0, [r5] movs r2, 0x96 lsls r2, 1 adds r0, r2 str r1, [r0] bl sub_8097790 ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8095228 adds r4, r0, 0 adds r4, 0x4 ldr r2, [r5] adds r2, r6 adds r0, r4, 0 movs r1, 0 bl sub_803C37C adds r0, r4, 0 movs r1, 0 bl sub_803C200 ldr r2, [r5] movs r3, 0x9C lsls r3, 1 adds r1, r2, r3 str r0, [r1] ldr r1, _0802B504 adds r0, r2, r1 mov r2, r8 strb r2, [r0] ldr r0, [r5] subs r3, 0x6 adds r0, r3 strb r2, [r0] ldr r0, [r5] ldr r2, _0802B508 adds r1, r0, r2 movs r0, 0xA strb r0, [r1] ldr r0, [r5] adds r3, 0x2 adds r0, r3 mov r1, r8 strb r1, [r0] ldr r0, [r5] add r0, r9 movs r1, 0 bl sub_802F204 b _0802B532 .align 2, 0 _0802B500: .4byte gUnknown_203B2C8 _0802B504: .4byte 0x00000131 _0802B508: .4byte 0x00000133 _0802B50C: ldr r0, _0802B51C ldr r2, [r2] _0802B510: adds r2, 0x4 ldr r3, _0802B520 movs r1, 0 bl sub_80141B4 b _0802B532 .align 2, 0 _0802B51C: .4byte gUnknown_80DFAA8 _0802B520: .4byte 0x0000010d _0802B524: ldr r0, _0802B540 ldr r2, [r2] adds r2, 0x4 ldr r3, _0802B544 movs r1, 0 bl sub_80141B4 _0802B532: add sp, 0x28 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802B540: .4byte gUnknown_80DFB14 _0802B544: .4byte 0x0000010d thumb_func_end sub_802B3E0 thumb_func_start sub_802B548 sub_802B548: push {lr} ldr r1, _0802B55C ldr r1, [r1] strb r0, [r1] bl nullsub_132 bl sub_802B3E0 pop {r0} bx r0 .align 2, 0 _0802B55C: .4byte gUnknown_203B2C8 thumb_func_end sub_802B548 thumb_func_start sub_802B560 sub_802B560: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802B574 movs r0, 0x1 bl sub_802B548 _0802B574: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802B560 thumb_func_start sub_802B57C sub_802B57C: push {r4,lr} bl sub_802F298 cmp r0, 0x3 bne _0802B5AA bl sub_802F2C0 ldr r0, _0802B5B0 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _0802B5B4 bl strcpy movs r0, 0x2 bl sub_802B548 _0802B5AA: pop {r4} pop {r0} bx r0 .align 2, 0 _0802B5B0: .4byte gUnknown_202E5D8 _0802B5B4: .4byte gUnknown_202DF98 thumb_func_end sub_802B57C thumb_func_start sub_802B5B8 sub_802B5B8: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802B5EE bl sub_8011C34 adds r4, r0, 0 ldr r0, _0802B5F8 ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8095228 movs r1, 0x4 strb r1, [r0] str r4, [r0, 0x28] movs r0, 0x3 bl sub_802B548 movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl sub_8012574 _0802B5EE: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0802B5F8: .4byte gUnknown_203B2C8 thumb_func_end sub_802B5B8 thumb_func_start sub_802B5FC sub_802B5FC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802B61E bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0802B61E bl sub_8012750 movs r0, 0x4 bl sub_802B548 _0802B61E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802B5FC thumb_func_start sub_802B624 sub_802B624: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802B638 movs r0, 0x5 bl sub_802B548 _0802B638: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802B624 thumb_func_start sub_802B640 sub_802B640: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 bl sub_802B9D8 lsls r0, 24 cmp r0, 0 beq _0802B65A movs r0, 0 b _0802B706 _0802B65A: ldr r5, _0802B710 ldr r0, [r5] cmp r0, 0 bne _0802B66C movs r0, 0xD4 movs r1, 0x8 bl MemoryAlloc str r0, [r5] _0802B66C: ldr r0, [r5] str r6, [r0, 0x6C] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x74 adds r1, r0, r1 str r1, [r0, 0x70] adds r0, 0x74 bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x6C] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x74 ldr r0, _0802B714 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} cmp r4, 0 beq _0802B6B0 ldr r1, [r5] ldr r2, [r1, 0x6C] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, 0x7C adds r1, r0 ldr r0, [r4] str r0, [r1] _0802B6B0: ldr r0, [r5] ldr r0, [r0, 0x70] mov r1, r8 bl sub_8012D08 bl sub_8004914 ldr r0, [r5] adds r0, 0x74 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x38 bl sub_802B9A8 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r6, 0 bl sub_8013818 ldr r2, [r5] ldr r0, _0802B718 ldrh r1, [r0] adds r0, r2, 0 adds r0, 0x50 strh r1, [r0] ldr r0, _0802B71C ldrh r0, [r0] adds r1, r2, 0 adds r1, 0x56 strh r0, [r1] adds r0, r2, 0 adds r0, 0x38 bl sub_8013984 bl sub_802B880 bl sub_802B8D4 movs r0, 0x1 _0802B706: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802B710: .4byte gUnknown_203B2CC _0802B714: .4byte gUnknown_80DFBEC _0802B718: .4byte gUnknown_203B2D0 _0802B71C: .4byte gUnknown_203B2D2 thumb_func_end sub_802B640 thumb_func_start sub_802B720 sub_802B720: push {lr} lsls r0, 24 cmp r0, 0 bne _0802B73C ldr r0, _0802B738 ldr r0, [r0] adds r0, 0x38 bl sub_8013660 movs r0, 0 b _0802B7A2 .align 2, 0 _0802B738: .4byte gUnknown_203B2CC _0802B73C: ldr r0, _0802B754 ldr r0, [r0] adds r0, 0x38 bl GetKeyPress cmp r0, 0x2 beq _0802B75E cmp r0, 0x2 bgt _0802B758 cmp r0, 0x1 beq _0802B768 b _0802B77C .align 2, 0 _0802B754: .4byte gUnknown_203B2CC _0802B758: cmp r0, 0x4 beq _0802B772 b _0802B77C _0802B75E: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802B7A2 _0802B768: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802B7A2 _0802B772: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0802B7A2 _0802B77C: ldr r0, _0802B794 ldr r0, [r0] adds r0, 0x38 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802B798 movs r0, 0 b _0802B7A2 .align 2, 0 _0802B794: .4byte gUnknown_203B2CC _0802B798: bl sub_802B880 bl sub_802B8D4 movs r0, 0x1 _0802B7A2: pop {r1} bx r1 thumb_func_end sub_802B720 thumb_func_start sub_802B7A8 sub_802B7A8: ldr r0, _0802B7CC ldr r2, [r0] adds r0, r2, 0 adds r0, 0x56 movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 adds r1, r2, 0 adds r1, 0x50 movs r3, 0 ldrsh r1, [r1, r3] adds r0, r1 adds r0, r2, r0 ldrb r0, [r0] bx lr .align 2, 0 _0802B7CC: .4byte gUnknown_203B2CC thumb_func_end sub_802B7A8 thumb_func_start sub_802B7D0 sub_802B7D0: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802B818 ldr r0, [r5] adds r0, 0x74 movs r1, 0 movs r2, 0 bl sub_800641C bl sub_802B9A8 adds r1, r0, 0 ldr r0, [r5] adds r2, r0, 0 adds r2, 0x5A strh r1, [r2] adds r0, 0x38 bl sub_8013984 bl sub_802B880 bl sub_802B8D4 cmp r4, 0 beq _0802B812 ldr r0, [r5] adds r0, 0x38 bl AddMenuCursorSprite _0802B812: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802B818: .4byte gUnknown_203B2CC thumb_func_end sub_802B7D0 thumb_func_start sub_802B81C sub_802B81C: push {r4,r5,lr} ldr r4, _0802B870 ldr r2, [r4] cmp r2, 0 beq _0802B86A ldr r1, _0802B874 adds r0, r2, 0 adds r0, 0x50 ldrh r0, [r0] strh r0, [r1] ldr r1, _0802B878 adds r0, r2, 0 adds r0, 0x56 ldrh r0, [r0] strh r0, [r1] ldr r0, [r2, 0x6C] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x74 ldr r0, _0802B87C ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x74 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802B86A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802B870: .4byte gUnknown_203B2CC _0802B874: .4byte gUnknown_203B2D0 _0802B878: .4byte gUnknown_203B2D2 _0802B87C: .4byte gUnknown_80DFBD0 thumb_func_end sub_802B81C thumb_func_start sub_802B880 sub_802B880: push {r4,lr} ldr r4, _0802B8D0 ldr r0, [r4] adds r0, 0x52 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x6C] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x82 asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x6C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x84 strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x74 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0802B8D0: .4byte gUnknown_203B2CC thumb_func_end sub_802B880 thumb_func_start sub_802B8D4 sub_802B8D4: push {r4-r7,lr} sub sp, 0x8 ldr r4, _0802B99C ldr r0, [r4] ldr r0, [r0, 0x6C] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x6C] bl sub_80073B8 ldr r2, _0802B9A0 ldr r0, [r4] ldr r3, [r0, 0x6C] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r0, _0802B9A4 ldrb r0, [r0, 0x2] lsls r0, 3 adds r0, 0x4 ldr r3, [r4] adds r1, r3, 0 adds r1, 0x56 movs r5, 0 ldrsh r2, [r1, r5] adds r2, 0x1 movs r1, 0x7 str r1, [sp] ldr r1, [r3, 0x6C] str r1, [sp, 0x4] movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r6, 0 ldr r0, [r4] adds r0, 0x52 movs r1, 0 ldrsh r0, [r0, r1] cmp r6, r0 bge _0802B98A adds r7, r4, 0 _0802B930: ldr r0, [r7] adds r0, 0x38 adds r1, r6, 0 bl sub_8013800 adds r5, r0, 0 ldr r1, [r7] adds r0, r1, 0 adds r0, 0x56 movs r3, 0 ldrsh r2, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r2 adds r0, r6 adds r0, r1, r0 ldrb r4, [r0] ldr r3, [r1, 0x6C] movs r0, 0xA adds r1, r5, 0 movs r2, 0x6 bl sub_803B6B0 bl sub_802BC7C adds r0, r4, 0 bl sub_803C190 adds r2, r0, 0 ldr r0, [r7] ldr r3, [r0, 0x6C] movs r0, 0 str r0, [sp] movs r0, 0x15 adds r1, r5, 0 bl sub_8014FF0 adds r6, 0x1 ldr r0, [r7] adds r0, 0x52 movs r5, 0 ldrsh r0, [r0, r5] cmp r6, r0 blt _0802B930 _0802B98A: ldr r0, _0802B99C ldr r0, [r0] ldr r0, [r0, 0x6C] bl sub_80073E0 add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802B99C: .4byte gUnknown_203B2CC _0802B9A0: .4byte gUnknown_80DFC04 _0802B9A4: .4byte gUnknown_80DFBE8 thumb_func_end sub_802B8D4 thumb_func_start sub_802B9A8 sub_802B9A8: push {r4,r5,lr} movs r5, 0 movs r4, 0 _0802B9AE: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096E14 lsls r0, 24 cmp r0, 0 beq _0802B9C6 ldr r0, _0802B9D4 ldr r0, [r0] adds r0, r5 strb r4, [r0] adds r5, 0x1 _0802B9C6: adds r4, 0x1 cmp r4, 0x37 ble _0802B9AE adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0802B9D4: .4byte gUnknown_203B2CC thumb_func_end sub_802B9A8 thumb_func_start sub_802B9D8 sub_802B9D8: push {r4,lr} movs r4, 0 _0802B9DC: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096E14 lsls r0, 24 cmp r0, 0 beq _0802B9EE movs r0, 0 b _0802B9F6 _0802B9EE: adds r4, 0x1 cmp r4, 0x37 ble _0802B9DC movs r0, 0x1 _0802B9F6: pop {r4} pop {r1} bx r1 thumb_func_end sub_802B9D8 thumb_func_start sub_802B9FC sub_802B9FC: push {r4-r7,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _0802BA80 movs r0, 0x94 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r6, 0 strb r4, [r0, 0x4] ldr r0, [r5] adds r0, 0x88 bl sub_801317C ldr r1, [r5] str r6, [r1, 0x24] adds r1, 0x28 ldr r0, _0802BA84 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r1, [r5] ldr r2, _0802BA88 adds r1, 0x40 adds r0, r2, 0 ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldr r1, [r5] adds r1, 0x58 adds r0, r2, 0 ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldr r0, [r5] adds r0, 0x70 ldm r2!, {r1,r4,r7} stm r0!, {r1,r4,r7} ldm r2!, {r3,r4,r7} stm r0!, {r3,r4,r7} bl sub_8004914 ldr r0, [r5] adds r0, 0x28 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r5] str r6, [r0, 0x8] bl sub_802BCC4 bl sub_802BC7C movs r0, 0 bl sub_802BB14 movs r0, 0x1 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802BA80: .4byte gUnknown_203B2D4 _0802BA84: .4byte gUnknown_80DFC34 _0802BA88: .4byte gUnknown_80DFC18 thumb_func_end sub_802B9FC thumb_func_start sub_802BA8C sub_802BA8C: push {lr} ldr r0, _0802BAA4 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x1 beq _0802BAB8 cmp r0, 0x1 bgt _0802BAA8 cmp r0, 0 beq _0802BAB2 b _0802BAC2 .align 2, 0 _0802BAA4: .4byte gUnknown_203B2D4 _0802BAA8: cmp r0, 0x2 beq _0802BAC2 cmp r0, 0x3 beq _0802BABE b _0802BAC2 _0802BAB2: bl sub_802BB98 b _0802BAC6 _0802BAB8: bl sub_802BC08 b _0802BAC6 _0802BABE: movs r0, 0x3 b _0802BAC8 _0802BAC2: movs r0, 0x2 b _0802BAC8 _0802BAC6: movs r0, 0 _0802BAC8: pop {r1} bx r1 thumb_func_end sub_802BA8C thumb_func_start sub_802BACC sub_802BACC: push {r4,r5,lr} ldr r4, _0802BB0C ldr r2, [r4] cmp r2, 0 beq _0802BB06 ldr r0, [r2, 0x24] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x28 ldr r0, _0802BB10 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x28 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802BB06: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802BB0C: .4byte gUnknown_203B2D4 _0802BB10: .4byte gUnknown_80DFC18 thumb_func_end sub_802BACC thumb_func_start sub_802BB14 sub_802BB14: push {lr} ldr r1, _0802BB24 ldr r1, [r1] str r0, [r1] bl sub_802BB28 pop {r0} bx r0 .align 2, 0 _0802BB24: .4byte gUnknown_203B2D4 thumb_func_end sub_802BB14 thumb_func_start sub_802BB28 sub_802BB28: push {r4,r5,lr} sub sp, 0x4 ldr r5, _0802BB94 ldr r1, [r5] ldr r0, [r1] cmp r0, 0 blt _0802BB8C cmp r0, 0x1 bgt _0802BB8C ldr r0, [r1, 0x24] bl sub_8008C54 ldr r0, [r5] ldr r0, [r0, 0x24] bl sub_80073B8 ldr r0, [r5] ldrb r0, [r0, 0x4] bl sub_803C190 adds r2, r0, 0 ldr r0, [r5] ldr r3, [r0, 0x24] movs r4, 0 str r4, [sp] movs r0, 0xA movs r1, 0 bl sub_8014FF0 ldr r3, [r5] ldr r1, [r3, 0x8] lsls r1, 2 adds r0, r3, 0 adds r0, 0x10 adds r0, r1 ldr r2, [r0] ldr r3, [r3, 0x24] str r4, [sp] movs r0, 0x6 movs r1, 0x14 bl sub_8014FF0 ldr r0, [r5] ldr r0, [r0, 0x24] bl sub_80073E0 ldr r1, [r5] ldr r0, [r1, 0x8] adds r0, 0x1 str r0, [r1, 0x8] _0802BB8C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802BB94: .4byte gUnknown_203B2D4 thumb_func_end sub_802BB28 thumb_func_start sub_802BB98 sub_802BB98: push {r4,lr} ldr r0, _0802BBD4 ldr r2, [r0] ldr r1, [r2, 0xC] adds r4, r0, 0 cmp r1, 0 beq _0802BBBC ldr r0, [r2, 0x20] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0802BBB4 bl sub_8013E54 _0802BBB4: ldr r1, [r4] ldr r0, [r1, 0x20] adds r0, 0x1 str r0, [r1, 0x20] _0802BBBC: ldr r1, [r4] adds r0, r1, 0 adds r0, 0x88 ldr r1, [r1, 0x24] bl sub_8012A64 cmp r0, 0x1 beq _0802BBD8 cmp r0, 0x2 beq _0802BBF6 b _0802BC02 .align 2, 0 _0802BBD4: .4byte gUnknown_203B2D4 _0802BBD8: movs r0, 0 bl sub_80119D4 ldr r0, [r4] ldr r0, [r0, 0xC] cmp r0, 0 beq _0802BBEE movs r0, 0x1 bl sub_802BB14 b _0802BC02 _0802BBEE: movs r0, 0x3 bl sub_802BB14 b _0802BC02 _0802BBF6: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 bl sub_802BB14 _0802BC02: pop {r4} pop {r0} bx r0 thumb_func_end sub_802BB98 thumb_func_start sub_802BC08 sub_802BC08: push {r4,lr} ldr r0, _0802BC44 ldr r3, [r0] ldr r2, [r3, 0x8] ldr r1, [r3, 0xC] adds r4, r0, 0 cmp r2, r1 bge _0802BC2E ldr r0, [r3, 0x20] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0802BC26 bl sub_8013E54 _0802BC26: ldr r1, [r4] ldr r0, [r1, 0x20] adds r0, 0x1 str r0, [r1, 0x20] _0802BC2E: ldr r1, [r4] adds r0, r1, 0 adds r0, 0x88 ldr r1, [r1, 0x24] bl sub_8012A64 cmp r0, 0x1 beq _0802BC48 cmp r0, 0x2 beq _0802BC68 b _0802BC74 .align 2, 0 _0802BC44: .4byte gUnknown_203B2D4 _0802BC48: movs r0, 0 bl sub_80119D4 ldr r0, [r4] ldr r1, [r0, 0x8] ldr r0, [r0, 0xC] cmp r1, r0 bge _0802BC60 movs r0, 0x1 bl sub_802BB14 b _0802BC74 _0802BC60: movs r0, 0x3 bl sub_802BB14 b _0802BC74 _0802BC68: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 bl sub_802BB14 _0802BC74: pop {r4} pop {r0} bx r0 thumb_func_end sub_802BC08 thumb_func_start sub_802BC7C sub_802BC7C: push {r4,lr} ldr r4, _0802BCA4 bl sub_808D3BC adds r1, r0, 0 adds r0, r4, 0 bl sub_808DA34 ldr r0, _0802BCA8 ldr r0, [r0] ldrb r0, [r0, 0xB] cmp r0, 0x1 bne _0802BCB0 adds r0, r4, 0 adds r0, 0x50 ldr r1, _0802BCAC bl strcpy b _0802BCBA .align 2, 0 _0802BCA4: .4byte gUnknown_202DF98 _0802BCA8: .4byte gUnknown_203B46C _0802BCAC: .4byte gUnknown_80DFC4C _0802BCB0: adds r0, r4, 0 adds r0, 0x50 ldr r1, _0802BCC0 bl strcpy _0802BCBA: pop {r4} pop {r0} bx r0 .align 2, 0 _0802BCC0: .4byte gUnknown_80DFC50 thumb_func_end sub_802BC7C thumb_func_start sub_802BCC4 sub_802BCC4: push {r4,lr} ldr r4, _0802BCDC ldr r0, [r4] ldrb r0, [r0, 0x4] bl sub_803C1A0 adds r3, r0, 0 ldr r1, [r4] movs r0, 0 str r0, [r1, 0xC] str r3, [r1, 0x10] b _0802BD08 .align 2, 0 _0802BCDC: .4byte gUnknown_203B2D4 _0802BCE0: cmp r0, 0x23 bne _0802BD06 ldrb r2, [r3, 0x1] cmp r2, 0x50 beq _0802BCF0 adds r1, r3, 0x2 cmp r2, 0x70 bne _0802BD02 _0802BCF0: ldr r0, [r4] ldr r1, [r0, 0xC] adds r1, 0x1 str r1, [r0, 0xC] lsls r1, 2 adds r0, 0x10 adds r0, r1 adds r1, r3, 0x2 str r1, [r0] _0802BD02: adds r3, r1, 0 b _0802BD08 _0802BD06: adds r3, 0x1 _0802BD08: ldrb r0, [r3] cmp r0, 0 bne _0802BCE0 pop {r4} pop {r0} bx r0 thumb_func_end sub_802BCC4 thumb_func_start sub_802BD14 sub_802BD14: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 bl sub_802C0E8 lsls r0, 24 cmp r0, 0 beq _0802BD2E movs r0, 0 b _0802BDD4 _0802BD2E: ldr r5, _0802BDE0 ldr r0, [r5] cmp r0, 0 bne _0802BD40 movs r0, 0xA4 movs r1, 0x8 bl MemoryAlloc str r0, [r5] _0802BD40: ldr r0, [r5] str r6, [r0, 0x38] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x40 adds r1, r0, r1 str r1, [r0, 0x3C] adds r0, 0x40 bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x38] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x40 ldr r0, _0802BDE4 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r2, [r5] ldr r1, [r2, 0x3C] adds r0, r2, 0 adds r0, 0xA0 str r0, [r1, 0x14] cmp r4, 0 beq _0802BD8E ldr r1, [r2, 0x38] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x48 adds r1, r0 ldr r0, [r4] str r0, [r1] _0802BD8E: ldr r0, [r5] ldr r0, [r0, 0x3C] mov r1, r8 bl sub_8012D34 bl sub_8004914 ldr r0, [r5] adds r0, 0x40 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x4 bl sub_802C0B8 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r6, 0 bl sub_8013848 ldr r0, [r5] ldr r1, _0802BDE8 ldrh r1, [r1] strh r1, [r0, 0x1C] adds r0, 0x4 bl sub_8013984 bl sub_802BF30 bl sub_802BFA0 movs r0, 0x1 _0802BDD4: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802BDE0: .4byte gUnknown_203B2D8 _0802BDE4: .4byte gUnknown_80DFC74 _0802BDE8: .4byte gUnknown_203B2DC thumb_func_end sub_802BD14 thumb_func_start sub_802BDEC sub_802BDEC: push {lr} lsls r0, 24 cmp r0, 0 bne _0802BE08 ldr r0, _0802BE04 ldr r0, [r0] adds r0, 0x4 bl sub_8013660 movs r0, 0 b _0802BE6E .align 2, 0 _0802BE04: .4byte gUnknown_203B2D8 _0802BE08: ldr r0, _0802BE20 ldr r0, [r0] adds r0, 0x4 bl GetKeyPress cmp r0, 0x2 beq _0802BE2A cmp r0, 0x2 bgt _0802BE24 cmp r0, 0x1 beq _0802BE34 b _0802BE48 .align 2, 0 _0802BE20: .4byte gUnknown_203B2D8 _0802BE24: cmp r0, 0x4 beq _0802BE3E b _0802BE48 _0802BE2A: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802BE6E _0802BE34: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802BE6E _0802BE3E: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0802BE6E _0802BE48: ldr r0, _0802BE60 ldr r0, [r0] adds r0, 0x4 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802BE64 movs r0, 0 b _0802BE6E .align 2, 0 _0802BE60: .4byte gUnknown_203B2D8 _0802BE64: bl sub_802BF30 bl sub_802BFA0 movs r0, 0x1 _0802BE6E: pop {r1} bx r1 thumb_func_end sub_802BDEC thumb_func_start sub_802BE74 sub_802BE74: ldr r0, _0802BE90 ldr r1, [r0] movs r0, 0x22 ldrsh r2, [r1, r0] movs r3, 0x20 ldrsh r0, [r1, r3] muls r0, r2 movs r3, 0x1C ldrsh r2, [r1, r3] adds r0, r2 adds r1, r0 ldrb r0, [r1] bx lr .align 2, 0 _0802BE90: .4byte gUnknown_203B2D8 thumb_func_end sub_802BE74 thumb_func_start sub_802BE94 sub_802BE94: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802BED8 ldr r0, [r5] adds r0, 0x40 movs r1, 0 movs r2, 0 bl sub_800641C bl sub_802C0B8 adds r1, r0, 0 ldr r0, [r5] strh r1, [r0, 0x26] adds r0, 0x4 bl sub_8013984 bl sub_802BF30 bl sub_802BFA0 cmp r4, 0 beq _0802BED2 ldr r0, [r5] adds r0, 0x4 bl AddMenuCursorSprite _0802BED2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802BED8: .4byte gUnknown_203B2D8 thumb_func_end sub_802BE94 thumb_func_start sub_802BEDC sub_802BEDC: push {r4,r5,lr} ldr r4, _0802BF24 ldr r2, [r4] cmp r2, 0 beq _0802BF1C ldr r1, _0802BF28 ldrh r0, [r2, 0x1C] strh r0, [r1] ldr r0, [r2, 0x38] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x40 ldr r0, _0802BF2C ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x40 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802BF1C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802BF24: .4byte gUnknown_203B2D8 _0802BF28: .4byte gUnknown_203B2DC _0802BF2C: .4byte gUnknown_80DFC5C thumb_func_end sub_802BEDC thumb_func_start sub_802BF30 sub_802BF30: push {r4,lr} ldr r4, _0802BF9C ldr r0, [r4] adds r0, 0xA0 movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, 0xA1 strb r2, [r0] ldr r0, [r4] adds r0, 0xA2 movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0xA3 strb r2, [r0] ldr r0, [r4] movs r1, 0x1E ldrsh r0, [r0, r1] movs r1, 0x18 bl sub_8009614 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x38] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4E asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x38] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x50 strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x40 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0802BF9C: .4byte gUnknown_203B2D8 thumb_func_end sub_802BF30 thumb_func_start sub_802BFA0 sub_802BFA0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xDC ldr r4, _0802C060 ldr r0, [r4] ldr r0, [r0, 0x38] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x38] bl sub_80073B8 ldr r1, [r4] movs r2, 0x22 ldrsh r0, [r1, r2] lsls r0, 3 adds r0, 0xA ldr r2, _0802C064 ldr r3, [r1, 0x38] movs r1, 0 str r1, [sp] bl xxx_call_draw_string movs r6, 0 ldr r0, [r4] movs r3, 0x1E ldrsh r0, [r0, r3] cmp r6, r0 bge _0802C09A adds r7, r4, 0 ldr r0, _0802C068 mov r9, r0 add r1, sp, 0x5C mov r8, r1 _0802BFE8: ldr r1, [r7] movs r3, 0x22 ldrsh r2, [r1, r3] movs r3, 0x20 ldrsh r0, [r1, r3] muls r0, r2 adds r0, r6 adds r1, r0 ldrb r0, [r1] bl sub_8095FE8 adds r5, r0, 0 ldr r0, [r7] ldr r1, [r0, 0x38] str r1, [sp, 0x4] adds r0, 0x4 adds r1, r6, 0 bl sub_8013800 str r0, [sp, 0x4C] ldrb r0, [r5] cmp r0, 0x1 bne _0802C06C ldr r0, [r7] adds r0, 0x4 adds r1, r6, 0 bl sub_8013800 adds r4, r0, 0 ldr r0, [r7] ldr r3, [r0, 0x38] movs r0, 0xA adds r1, r4, 0 movs r2, 0x6 bl sub_803B6B0 bl sub_808D33C adds r1, r0, 0 mov r0, r9 bl sub_808DA34 ldrb r0, [r5, 0x5] bl sub_803C190 adds r1, r0, 0 mov r0, r8 mov r2, r9 bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x38] movs r0, 0 str r0, [sp] movs r0, 0x15 adds r1, r4, 0 mov r2, r8 bl xxx_call_draw_string b _0802C08E .align 2, 0 _0802C060: .4byte gUnknown_203B2D8 _0802C064: .4byte gUnknown_80DFC8C _0802C068: .4byte gUnknown_202DF98 _0802C06C: adds r0, r5, 0 add r1, sp, 0x4 bl sub_803B35C adds r0, r5, 0 bl sub_80968B0 lsls r0, 24 cmp r0, 0 beq _0802C088 mov r1, sp adds r1, 0x47 movs r0, 0x2 strb r0, [r1] _0802C088: add r0, sp, 0x4 bl sub_803B6D4 _0802C08E: adds r6, 0x1 ldr r0, [r7] movs r1, 0x1E ldrsh r0, [r0, r1] cmp r6, r0 blt _0802BFE8 _0802C09A: ldr r0, _0802C0B4 ldr r0, [r0] ldr r0, [r0, 0x38] bl sub_80073E0 add sp, 0xDC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802C0B4: .4byte gUnknown_203B2D8 thumb_func_end sub_802BFA0 thumb_func_start sub_802C0B8 sub_802C0B8: push {r4,r5,lr} movs r5, 0 movs r4, 0 _0802C0BE: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096000 lsls r0, 24 cmp r0, 0 bne _0802C0D6 ldr r0, _0802C0E4 ldr r0, [r0] adds r0, r5 strb r4, [r0] adds r5, 0x1 _0802C0D6: adds r4, 0x1 cmp r4, 0x3 ble _0802C0BE adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0802C0E4: .4byte gUnknown_203B2D8 thumb_func_end sub_802C0B8 thumb_func_start sub_802C0E8 sub_802C0E8: push {r4,lr} movs r4, 0 _0802C0EC: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096000 lsls r0, 24 cmp r0, 0 bne _0802C0FE movs r0, 0 b _0802C106 _0802C0FE: adds r4, 0x1 cmp r4, 0x3 ble _0802C0EC movs r0, 0x1 _0802C106: pop {r4} pop {r1} bx r1 thumb_func_end sub_802C0E8 thumb_func_start sub_802C10C sub_802C10C: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 bl sub_802C4A4 lsls r0, 24 cmp r0, 0 beq _0802C126 movs r0, 0 b _0802C1CC _0802C126: ldr r5, _0802C1D8 ldr r0, [r5] cmp r0, 0 bne _0802C138 movs r0, 0xA8 movs r1, 0x8 bl MemoryAlloc str r0, [r5] _0802C138: ldr r0, [r5] str r6, [r0, 0x3C] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x44 adds r1, r0, r1 str r1, [r0, 0x40] adds r0, 0x44 bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x3C] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x44 ldr r0, _0802C1DC ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r2, [r5] ldr r1, [r2, 0x40] adds r0, r2, 0 adds r0, 0xA4 str r0, [r1, 0x14] cmp r4, 0 beq _0802C186 ldr r1, [r2, 0x3C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x4C adds r1, r0 ldr r0, [r4] str r0, [r1] _0802C186: ldr r0, [r5] ldr r0, [r0, 0x40] mov r1, r8 bl sub_8012D34 bl sub_8004914 ldr r0, [r5] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x8 bl sub_802C474 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r6, 0 bl sub_8013848 ldr r0, [r5] ldr r1, _0802C1E0 ldrh r1, [r1] strh r1, [r0, 0x20] adds r0, 0x8 bl sub_8013984 bl sub_802C328 bl sub_802C39C movs r0, 0x1 _0802C1CC: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802C1D8: .4byte gUnknown_203B2E0 _0802C1DC: .4byte gUnknown_80DFCB4 _0802C1E0: .4byte gUnknown_203B2E4 thumb_func_end sub_802C10C thumb_func_start sub_802C1E4 sub_802C1E4: push {lr} lsls r0, 24 cmp r0, 0 bne _0802C200 ldr r0, _0802C1FC ldr r0, [r0] adds r0, 0x8 bl sub_8013660 movs r0, 0 b _0802C266 .align 2, 0 _0802C1FC: .4byte gUnknown_203B2E0 _0802C200: ldr r0, _0802C218 ldr r0, [r0] adds r0, 0x8 bl GetKeyPress cmp r0, 0x2 beq _0802C222 cmp r0, 0x2 bgt _0802C21C cmp r0, 0x1 beq _0802C22C b _0802C240 .align 2, 0 _0802C218: .4byte gUnknown_203B2E0 _0802C21C: cmp r0, 0x4 beq _0802C236 b _0802C240 _0802C222: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802C266 _0802C22C: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802C266 _0802C236: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0802C266 _0802C240: ldr r0, _0802C258 ldr r0, [r0] adds r0, 0x8 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802C25C movs r0, 0 b _0802C266 .align 2, 0 _0802C258: .4byte gUnknown_203B2E0 _0802C25C: bl sub_802C328 bl sub_802C39C movs r0, 0x1 _0802C266: pop {r1} bx r1 thumb_func_end sub_802C1E4 thumb_func_start sub_802C26C sub_802C26C: ldr r0, _0802C288 ldr r1, [r0] movs r0, 0x26 ldrsh r2, [r1, r0] movs r3, 0x24 ldrsh r0, [r1, r3] muls r0, r2 movs r3, 0x20 ldrsh r2, [r1, r3] adds r0, r2 adds r1, r0 ldrb r0, [r1] bx lr .align 2, 0 _0802C288: .4byte gUnknown_203B2E0 thumb_func_end sub_802C26C thumb_func_start sub_802C28C sub_802C28C: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802C2D0 ldr r0, [r5] adds r0, 0x44 movs r1, 0 movs r2, 0 bl sub_800641C bl sub_802C474 adds r1, r0, 0 ldr r0, [r5] strh r1, [r0, 0x2A] adds r0, 0x8 bl sub_8013984 bl sub_802C328 bl sub_802C39C cmp r4, 0 beq _0802C2CA ldr r0, [r5] adds r0, 0x8 bl AddMenuCursorSprite _0802C2CA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802C2D0: .4byte gUnknown_203B2E0 thumb_func_end sub_802C28C thumb_func_start sub_802C2D4 sub_802C2D4: push {r4,r5,lr} ldr r4, _0802C31C ldr r2, [r4] cmp r2, 0 beq _0802C314 ldr r1, _0802C320 ldrh r0, [r2, 0x20] strh r0, [r1] ldr r0, [r2, 0x3C] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x44 ldr r0, _0802C324 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802C314: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802C31C: .4byte gUnknown_203B2E0 _0802C320: .4byte gUnknown_203B2E4 _0802C324: .4byte gUnknown_80DFC9C thumb_func_end sub_802C2D4 thumb_func_start sub_802C328 sub_802C328: push {r4,lr} ldr r4, _0802C398 ldr r0, [r4] ldrh r1, [r0, 0x28] adds r0, 0xA4 movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x26] adds r0, 0xA5 strb r1, [r0] ldr r0, [r4] adds r0, 0xA6 movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0xA7 strb r2, [r0] ldr r0, [r4] movs r1, 0x22 ldrsh r0, [r0, r1] movs r1, 0x18 bl sub_8009614 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x3C] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x52 asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x3C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x54 strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0802C398: .4byte gUnknown_203B2E0 thumb_func_end sub_802C328 thumb_func_start sub_802C39C sub_802C39C: push {r4-r7,lr} sub sp, 0x60 ldr r7, _0802C3F8 ldr r0, [r7] ldr r0, [r0, 0x3C] bl sub_8008C54 ldr r0, [r7] ldr r0, [r0, 0x3C] bl sub_80073B8 ldr r0, [r7] movs r1, 0x26 ldrsh r4, [r0, r1] lsls r4, 3 adds r5, r4, 0 adds r5, 0xA ldr r2, _0802C3FC ldr r3, [r0, 0x3C] movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r1, 0 bl xxx_call_draw_string adds r4, 0x4 ldr r1, [r7] adds r0, r1, 0 adds r0, 0xA6 ldrb r0, [r0] lsls r0, 3 adds r5, r4, r0 movs r3, 0x26 ldrsh r2, [r1, r3] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x3C] str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r6, 0 b _0802C452 .align 2, 0 _0802C3F8: .4byte gUnknown_203B2E0 _0802C3FC: .4byte gUnknown_80DFCCC _0802C400: ldr r1, [r7] movs r3, 0x26 ldrsh r2, [r1, r3] movs r3, 0x24 ldrsh r0, [r1, r3] muls r0, r2 adds r0, r6 adds r1, r0 ldrb r5, [r1] adds r0, r5, 0 bl sub_8096574 adds r4, r0, 0 ldr r0, [r7] ldr r1, [r0, 0x3C] str r1, [sp, 0x8] adds r0, 0x8 adds r1, r6, 0 bl sub_8013800 str r0, [sp, 0x50] adds r0, r4, 0 add r1, sp, 0x8 bl sub_803B35C adds r0, r5, 0 bl sub_8096574 bl sub_80968B0 lsls r0, 24 cmp r0, 0 beq _0802C44A mov r1, sp adds r1, 0x4B movs r0, 0x2 strb r0, [r1] _0802C44A: add r0, sp, 0x8 bl sub_803B6D4 adds r6, 0x1 _0802C452: ldr r0, [r7] movs r1, 0x22 ldrsh r0, [r0, r1] cmp r6, r0 blt _0802C400 ldr r0, _0802C470 ldr r0, [r0] ldr r0, [r0, 0x3C] bl sub_80073E0 add sp, 0x60 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802C470: .4byte gUnknown_203B2E0 thumb_func_end sub_802C39C thumb_func_start sub_802C474 sub_802C474: push {r4,r5,lr} movs r5, 0 movs r4, 0 _0802C47A: lsls r0, r4, 24 lsrs r0, 24 bl sub_809658C lsls r0, 24 cmp r0, 0 bne _0802C492 ldr r0, _0802C4A0 ldr r0, [r0] adds r0, r5 strb r4, [r0] adds r5, 0x1 _0802C492: adds r4, 0x1 cmp r4, 0x7 ble _0802C47A adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0802C4A0: .4byte gUnknown_203B2E0 thumb_func_end sub_802C474 thumb_func_start sub_802C4A4 sub_802C4A4: push {r4,lr} movs r4, 0 _0802C4A8: lsls r0, r4, 24 lsrs r0, 24 bl sub_809658C lsls r0, 24 cmp r0, 0 bne _0802C4BA movs r0, 0 b _0802C4C2 _0802C4BA: adds r4, 0x1 cmp r4, 0x7 ble _0802C4A8 movs r0, 0x1 _0802C4C2: pop {r4} pop {r1} bx r1 thumb_func_end sub_802C4A4 thumb_func_start sub_802C4C8 sub_802C4C8: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 bl sub_802C83C lsls r0, 24 cmp r0, 0 beq _0802C4E2 movs r0, 0 b _0802C580 _0802C4E2: ldr r5, _0802C58C movs r0, 0xA8 movs r1, 0x8 bl MemoryAlloc str r0, [r5] str r6, [r0, 0x3C] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x44 adds r1, r0, r1 str r1, [r0, 0x40] adds r0, 0x44 bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x3C] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x44 ldr r0, _0802C590 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r2, [r5] ldr r1, [r2, 0x40] adds r0, r2, 0 adds r0, 0xA4 str r0, [r1, 0x14] cmp r4, 0 beq _0802C53A ldr r1, [r2, 0x3C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x4C adds r1, r0 ldr r0, [r4] str r0, [r1] _0802C53A: ldr r0, [r5] ldr r0, [r0, 0x40] mov r1, r8 bl sub_8012D34 bl sub_8004914 ldr r0, [r5] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x8 bl sub_802C80C adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r6, 0 bl sub_8013848 ldr r0, [r5] ldr r1, _0802C594 ldrh r1, [r1] strh r1, [r0, 0x20] adds r0, 0x8 bl sub_8013984 bl sub_802C6DC bl sub_802C750 movs r0, 0x1 _0802C580: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802C58C: .4byte gUnknown_203B2E8 _0802C590: .4byte gUnknown_80DFCFC _0802C594: .4byte gUnknown_203B2EC thumb_func_end sub_802C4C8 thumb_func_start sub_802C598 sub_802C598: push {lr} lsls r0, 24 cmp r0, 0 bne _0802C5B4 ldr r0, _0802C5B0 ldr r0, [r0] adds r0, 0x8 bl sub_8013660 movs r0, 0 b _0802C61A .align 2, 0 _0802C5B0: .4byte gUnknown_203B2E8 _0802C5B4: ldr r0, _0802C5CC ldr r0, [r0] adds r0, 0x8 bl GetKeyPress cmp r0, 0x2 beq _0802C5D6 cmp r0, 0x2 bgt _0802C5D0 cmp r0, 0x1 beq _0802C5E0 b _0802C5F4 .align 2, 0 _0802C5CC: .4byte gUnknown_203B2E8 _0802C5D0: cmp r0, 0x4 beq _0802C5EA b _0802C5F4 _0802C5D6: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802C61A _0802C5E0: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802C61A _0802C5EA: movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _0802C61A _0802C5F4: ldr r0, _0802C60C ldr r0, [r0] adds r0, 0x8 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802C610 movs r0, 0 b _0802C61A .align 2, 0 _0802C60C: .4byte gUnknown_203B2E8 _0802C610: bl sub_802C6DC bl sub_802C750 movs r0, 0x1 _0802C61A: pop {r1} bx r1 thumb_func_end sub_802C598 thumb_func_start sub_802C620 sub_802C620: ldr r0, _0802C63C ldr r1, [r0] movs r0, 0x26 ldrsh r2, [r1, r0] movs r3, 0x24 ldrsh r0, [r1, r3] muls r0, r2 movs r3, 0x20 ldrsh r2, [r1, r3] adds r0, r2 adds r1, r0 ldrb r0, [r1] bx lr .align 2, 0 _0802C63C: .4byte gUnknown_203B2E8 thumb_func_end sub_802C620 thumb_func_start sub_802C640 sub_802C640: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802C684 ldr r0, [r5] adds r0, 0x44 movs r1, 0 movs r2, 0 bl sub_800641C bl sub_802C80C adds r1, r0, 0 ldr r0, [r5] strh r1, [r0, 0x2A] adds r0, 0x8 bl sub_8013984 bl sub_802C6DC bl sub_802C750 cmp r4, 0 beq _0802C67E ldr r0, [r5] adds r0, 0x8 bl AddMenuCursorSprite _0802C67E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802C684: .4byte gUnknown_203B2E8 thumb_func_end sub_802C640 thumb_func_start sub_802C688 sub_802C688: push {r4,r5,lr} ldr r4, _0802C6D0 ldr r2, [r4] cmp r2, 0 beq _0802C6C8 ldr r1, _0802C6D4 ldrh r0, [r2, 0x20] strh r0, [r1] ldr r0, [r2, 0x3C] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x44 ldr r0, _0802C6D8 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802C6C8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802C6D0: .4byte gUnknown_203B2E8 _0802C6D4: .4byte gUnknown_203B2EC _0802C6D8: .4byte gUnknown_80DFCE4 thumb_func_end sub_802C688 thumb_func_start sub_802C6DC sub_802C6DC: push {r4,lr} ldr r4, _0802C74C ldr r0, [r4] ldrh r1, [r0, 0x28] adds r0, 0xA4 movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x26] adds r0, 0xA5 strb r1, [r0] ldr r0, [r4] adds r0, 0xA6 movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0xA7 strb r2, [r0] ldr r0, [r4] movs r1, 0x22 ldrsh r0, [r0, r1] movs r1, 0x18 bl sub_8009614 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x3C] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x52 asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x3C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x54 strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x44 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0802C74C: .4byte gUnknown_203B2E8 thumb_func_end sub_802C6DC thumb_func_start sub_802C750 sub_802C750: push {r4-r6,lr} sub sp, 0x60 ldr r6, _0802C7AC ldr r0, [r6] ldr r0, [r0, 0x3C] bl sub_8008C54 ldr r0, [r6] ldr r0, [r0, 0x3C] bl sub_80073B8 ldr r0, [r6] movs r1, 0x26 ldrsh r4, [r0, r1] lsls r4, 3 adds r5, r4, 0 adds r5, 0xA ldr r2, _0802C7B0 ldr r3, [r0, 0x3C] movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r1, 0 bl xxx_call_draw_string adds r4, 0x4 ldr r1, [r6] adds r0, r1, 0 adds r0, 0xA6 ldrb r0, [r0] lsls r0, 3 adds r5, r4, r0 movs r3, 0x26 ldrsh r2, [r1, r3] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x3C] str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r5, 0 b _0802C7EC .align 2, 0 _0802C7AC: .4byte gUnknown_203B2E8 _0802C7B0: .4byte gUnknown_80DFD14 _0802C7B4: ldr r1, [r6] movs r3, 0x26 ldrsh r2, [r1, r3] movs r3, 0x24 ldrsh r0, [r1, r3] muls r0, r2 adds r0, r5 adds r1, r0 ldrb r0, [r1] bl sub_8096AB4 adds r4, r0, 0 ldr r0, [r6] ldr r1, [r0, 0x3C] str r1, [sp, 0x8] adds r0, 0x8 adds r1, r5, 0 bl sub_8013800 str r0, [sp, 0x50] adds r0, r4, 0 add r1, sp, 0x8 bl sub_803B35C add r0, sp, 0x8 bl sub_803B6D4 adds r5, 0x1 _0802C7EC: ldr r0, [r6] movs r1, 0x22 ldrsh r0, [r0, r1] cmp r5, r0 blt _0802C7B4 ldr r0, _0802C808 ldr r0, [r0] ldr r0, [r0, 0x3C] bl sub_80073E0 add sp, 0x60 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802C808: .4byte gUnknown_203B2E8 thumb_func_end sub_802C750 thumb_func_start sub_802C80C sub_802C80C: push {r4,r5,lr} movs r5, 0 movs r4, 0 _0802C812: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096ACC lsls r0, 24 cmp r0, 0 bne _0802C82A ldr r0, _0802C838 ldr r0, [r0] adds r0, r5 strb r4, [r0] adds r5, 0x1 _0802C82A: adds r4, 0x1 cmp r4, 0x7 ble _0802C812 adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0802C838: .4byte gUnknown_203B2E8 thumb_func_end sub_802C80C thumb_func_start sub_802C83C sub_802C83C: push {r4,lr} movs r4, 0 _0802C840: lsls r0, r4, 24 lsrs r0, 24 bl sub_8096ACC lsls r0, 24 cmp r0, 0 bne _0802C852 movs r0, 0 b _0802C85A _0802C852: adds r4, 0x1 cmp r4, 0x7 ble _0802C840 movs r0, 0x1 _0802C85A: pop {r4} pop {r1} bx r1 thumb_func_end sub_802C83C thumb_func_start sub_802C860 sub_802C860: push {r4-r6,lr} adds r6, r0, 0 bl sub_802C83C lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0802C890 ldr r4, _0802C88C movs r0, 0xFE lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] str r5, [r0, 0x68] str r6, [r0] movs r0, 0 bl sub_802C910 movs r0, 0x1 b _0802C892 .align 2, 0 _0802C88C: .4byte gUnknown_203B2F0 _0802C890: movs r0, 0 _0802C892: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_802C860 thumb_func_start sub_802C898 sub_802C898: push {lr} ldr r0, _0802C8B0 ldr r0, [r0] ldr r0, [r0, 0x4] cmp r0, 0x5 bhi _0802C8E8 lsls r0, 2 ldr r1, _0802C8B4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802C8B0: .4byte gUnknown_203B2F0 _0802C8B4: .4byte _0802C8B8 .align 2, 0 _0802C8B8: .4byte _0802C8D0 .4byte _0802C8D0 .4byte _0802C8D6 .4byte _0802C8DC .4byte _0802C8E2 .4byte _0802C8E8 _0802C8D0: bl sub_802CC00 b _0802C8EC _0802C8D6: bl sub_802CC70 b _0802C8EC _0802C8DC: bl sub_802CD38 b _0802C8EC _0802C8E2: bl sub_802CDB8 b _0802C8EC _0802C8E8: movs r0, 0x3 b _0802C8EE _0802C8EC: movs r0, 0 _0802C8EE: pop {r1} bx r1 thumb_func_end sub_802C898 thumb_func_start sub_802C8F4 sub_802C8F4: push {r4,lr} ldr r4, _0802C90C ldr r0, [r4] cmp r0, 0 beq _0802C906 bl MemoryFree movs r0, 0 str r0, [r4] _0802C906: pop {r4} pop {r0} bx r0 .align 2, 0 _0802C90C: .4byte gUnknown_203B2F0 thumb_func_end sub_802C8F4 thumb_func_start sub_802C910 sub_802C910: push {lr} ldr r1, _0802C924 ldr r1, [r1] str r0, [r1, 0x4] bl sub_802C928 bl sub_802C9D8 pop {r0} bx r0 .align 2, 0 _0802C924: .4byte gUnknown_203B2F0 thumb_func_end sub_802C910 thumb_func_start sub_802C928 sub_802C928: push {r4-r7,lr} ldr r4, _0802C94C ldr r0, [r4] movs r1, 0xCE lsls r1, 1 adds r0, r1 bl sub_8006518 ldr r1, [r4] ldr r0, [r1, 0x4] cmp r0, 0x2 beq _0802C954 cmp r0, 0x3 beq _0802C980 movs r2, 0 ldr r3, _0802C950 b _0802C998 .align 2, 0 _0802C94C: .4byte gUnknown_203B2F0 _0802C950: .4byte gUnknown_80DFD28 _0802C954: bl sub_802CAA4 ldr r2, [r4] movs r0, 0xE6 lsls r0, 1 adds r2, r0 ldr r1, _0802C97C ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 movs r6, 0x86 lsls r6, 1 adds r1, r6 bl sub_8012CAC b _0802C9B8 .align 2, 0 _0802C97C: .4byte gUnknown_80DFD40 _0802C980: movs r7, 0xF2 lsls r7, 1 adds r1, r7 ldr r0, _0802C994 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _0802C9B8 .align 2, 0 _0802C994: .4byte gUnknown_80DFD58 _0802C998: ldr r0, [r4] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r0, r1 movs r1, 0xCE lsls r1, 1 adds r0, r1 adds r1, r3, 0 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} adds r2, 0x1 cmp r2, 0x3 ble _0802C998 _0802C9B8: bl sub_8004914 ldr r0, _0802C9D4 ldr r0, [r0] movs r1, 0xCE lsls r1, 1 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802C9D4: .4byte gUnknown_203B2F0 thumb_func_end sub_802C928 thumb_func_start sub_802C9D8 sub_802C9D8: push {r4,lr} sub sp, 0x8 ldr r1, _0802C9F4 ldr r0, [r1] ldr r0, [r0, 0x4] adds r4, r1, 0 cmp r0, 0x5 bhi _0802CA9C lsls r0, 2 ldr r1, _0802C9F8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802C9F4: .4byte gUnknown_203B2F0 _0802C9F8: .4byte _0802C9FC .align 2, 0 _0802C9FC: .4byte _0802CA14 .4byte _0802CA20 .4byte _0802CA28 .4byte _0802CA48 .4byte _0802CA80 .4byte _0802CA9C _0802CA14: movs r0, 0 movs r1, 0 movs r2, 0x4 bl sub_802C4C8 b _0802CA9C _0802CA20: movs r0, 0x1 bl sub_802C640 b _0802CA9C _0802CA28: bl sub_802C750 ldr r0, _0802CA44 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x6C movs r3, 0x86 lsls r3, 1 adds r1, r2, r3 ldr r2, [r2, 0x68] str r2, [sp] movs r2, 0x2 b _0802CA6E .align 2, 0 _0802CA44: .4byte gUnknown_203B2F0 _0802CA48: bl sub_802CBAC bl sub_802C750 ldr r4, _0802CA7C ldr r0, [r4] adds r0, 0x6C movs r1, 0 bl sub_8012EA4 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xBC movs r2, 0xA6 lsls r2, 1 adds r1, r2 movs r2, 0x6 str r2, [sp] movs r2, 0x3 _0802CA6E: str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0802CA9C .align 2, 0 _0802CA7C: .4byte gUnknown_203B2F0 _0802CA80: ldr r0, [r4] ldrb r0, [r0, 0xC] bl sub_8096AB4 ldr r1, [r4] adds r1, 0x10 bl sub_803B35C ldr r0, [r4] movs r1, 0x3 str r1, [r0, 0x10] adds r0, 0x10 bl sub_802DE84 _0802CA9C: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_802C9D8 thumb_func_start sub_802CAA4 sub_802CAA4: push {r4-r7,lr} movs r7, 0 ldr r5, _0802CAC8 ldr r0, [r5] ldrb r0, [r0, 0xC] bl sub_8096AB4 adds r4, r0, 0 ldr r2, [r5] ldr r0, [r2] cmp r0, 0 bne _0802CB26 ldrb r0, [r4] cmp r0, 0x5 beq _0802CACC cmp r0, 0x6 beq _0802CB10 b _0802CB26 .align 2, 0 _0802CAC8: .4byte gUnknown_203B2F0 _0802CACC: movs r0, 0x86 lsls r0, 1 adds r1, r2, r0 ldr r0, _0802CAFC str r0, [r1] adds r0, r4, 0 bl sub_809693C lsls r0, 24 cmp r0, 0 bne _0802CAEE ldrb r0, [r4, 0x4] bl sub_80A2824 lsls r0, 24 cmp r0, 0 bne _0802CB00 _0802CAEE: ldr r0, [r5] movs r1, 0x88 lsls r1, 1 adds r0, r1 movs r1, 0x1 negs r1, r1 b _0802CB0A .align 2, 0 _0802CAFC: .4byte gUnknown_80DFD70 _0802CB00: ldr r0, [r5] movs r1, 0x88 lsls r1, 1 adds r0, r1 movs r1, 0x2 _0802CB0A: str r1, [r0] adds r7, 0x1 b _0802CB26 _0802CB10: movs r0, 0x86 lsls r0, 1 adds r1, r2, r0 ldr r0, _0802CB9C str r0, [r1] movs r0, 0x88 lsls r0, 1 adds r1, r2, r0 movs r0, 0x3 str r0, [r1] movs r7, 0x1 _0802CB26: ldr r4, _0802CBA0 ldr r6, [r4] lsls r1, r7, 3 movs r0, 0x86 lsls r0, 1 adds r3, r6, r0 adds r2, r3, r1 ldr r0, _0802CBA4 ldr r0, [r0] str r0, [r2] movs r0, 0x88 lsls r0, 1 adds r5, r6, r0 adds r1, r5, r1 movs r0, 0x4 str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r2, r3, r1 ldr r0, _0802CBA8 ldr r0, [r0] str r0, [r2] adds r1, r5, r1 movs r0, 0x7 str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r3, r1 movs r0, 0 str r0, [r3] adds r1, r5, r1 movs r0, 0x1 str r0, [r1] movs r3, 0 mov r12, r4 cmp r3, r7 bge _0802CB8C adds r4, r6, 0 adds r1, r5, 0 movs r5, 0x1 negs r5, r5 _0802CB78: ldr r2, [r1] cmp r2, r5 beq _0802CB84 ldr r0, [r4, 0x68] cmp r2, r0 beq _0802CB94 _0802CB84: adds r1, 0x8 adds r3, 0x1 cmp r3, r7 blt _0802CB78 _0802CB8C: mov r0, r12 ldr r1, [r0] movs r0, 0x7 str r0, [r1, 0x68] _0802CB94: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802CB9C: .4byte gUnknown_80DFD7C _0802CBA0: .4byte gUnknown_203B2F0 _0802CBA4: .4byte gUnknown_80D494C _0802CBA8: .4byte gUnknown_80D4970 thumb_func_end sub_802CAA4 thumb_func_start sub_802CBAC sub_802CBAC: ldr r0, _0802CBF4 ldr r0, [r0] mov r12, r0 movs r3, 0 movs r1, 0xA6 lsls r1, 1 add r1, r12 ldr r0, _0802CBF8 ldr r0, [r0] str r0, [r1] movs r1, 0xA8 lsls r1, 1 add r1, r12 movs r0, 0x5 str r0, [r1] movs r2, 0x1 movs r1, 0xAA lsls r1, 1 add r1, r12 ldr r0, _0802CBFC ldr r0, [r0] str r0, [r1] movs r1, 0xAC lsls r1, 1 add r1, r12 movs r0, 0x6 str r0, [r1] movs r0, 0xAE lsls r0, 1 add r0, r12 str r3, [r0] movs r0, 0xB0 lsls r0, 1 add r0, r12 str r2, [r0] bx lr .align 2, 0 _0802CBF4: .4byte gUnknown_203B2F0 _0802CBF8: .4byte gUnknown_80D4920 _0802CBFC: .4byte gUnknown_80D4928 thumb_func_end sub_802CBAC thumb_func_start sub_802CC00 sub_802CC00: push {lr} movs r0, 0x1 bl sub_802C598 cmp r0, 0x4 bhi _0802CC6A lsls r0, 2 ldr r1, _0802CC18 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802CC18: .4byte _0802CC1C .align 2, 0 _0802CC1C: .4byte _0802CC6A .4byte _0802CC6A .4byte _0802CC60 .4byte _0802CC30 .4byte _0802CC48 _0802CC30: bl sub_802C620 ldr r1, _0802CC44 ldr r1, [r1] strb r0, [r1, 0xC] movs r0, 0x2 bl sub_802C910 b _0802CC6A .align 2, 0 _0802CC44: .4byte gUnknown_203B2F0 _0802CC48: bl sub_802C620 ldr r1, _0802CC5C ldr r1, [r1] strb r0, [r1, 0xC] movs r0, 0x4 bl sub_802C910 b _0802CC6A .align 2, 0 _0802CC5C: .4byte gUnknown_203B2F0 _0802CC60: bl sub_802C688 movs r0, 0x5 bl sub_802C910 _0802CC6A: pop {r0} bx r0 thumb_func_end sub_802CC00 thumb_func_start sub_802CC70 sub_802CC70: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802C598 ldr r4, _0802CCB4 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802CCA0 ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802CCA0 ldr r0, [r4] str r1, [r0, 0x68] _0802CCA0: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x6 bhi _0802CD2E lsls r0, 2 ldr r1, _0802CCB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802CCB4: .4byte gUnknown_203B2F0 _0802CCB8: .4byte _0802CCBC .align 2, 0 _0802CCBC: .4byte _0802CD28 .4byte _0802CCD8 .4byte _0802CCF4 .4byte _0802CD18 .4byte _0802CD2E .4byte _0802CD2E .4byte _0802CD20 _0802CCD8: ldr r0, _0802CCEC bl sub_8011988 ldr r0, _0802CCF0 ldr r0, [r0] ldrb r0, [r0, 0xC] bl sub_8096AB4 movs r1, 0x6 b _0802CD06 .align 2, 0 _0802CCEC: .4byte 0x00000133 _0802CCF0: .4byte gUnknown_203B2F0 _0802CCF4: ldr r0, _0802CD10 bl sub_8011988 ldr r0, _0802CD14 ldr r0, [r0] ldrb r0, [r0, 0xC] bl sub_8096AB4 movs r1, 0x5 _0802CD06: strb r1, [r0] movs r0, 0x1 bl sub_802C910 b _0802CD2E .align 2, 0 _0802CD10: .4byte 0x00000133 _0802CD14: .4byte gUnknown_203B2F0 _0802CD18: movs r0, 0x3 bl sub_802C910 b _0802CD2E _0802CD20: movs r0, 0x4 bl sub_802C910 b _0802CD2E _0802CD28: movs r0, 0x1 bl sub_802C910 _0802CD2E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802CC70 thumb_func_start sub_802CD38 sub_802CD38: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802C598 ldr r4, _0802CD78 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 ldr r0, [r4] adds r0, 0xBC bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802CD66 ldr r0, [r4] adds r0, 0xBC mov r1, sp bl sub_8013114 _0802CD66: ldr r0, [sp] cmp r0, 0x5 beq _0802CD88 cmp r0, 0x5 bgt _0802CD7C cmp r0, 0x1 beq _0802CD80 b _0802CDB0 .align 2, 0 _0802CD78: .4byte gUnknown_203B2F0 _0802CD7C: cmp r0, 0x6 bne _0802CDB0 _0802CD80: movs r0, 0x1 bl sub_802C910 b _0802CDB0 _0802CD88: ldr r0, [r4] ldrb r0, [r0, 0xC] bl sub_8096C3C bl sub_8096C80 bl sub_802C83C lsls r0, 24 cmp r0, 0 beq _0802CDAA bl sub_802C688 movs r0, 0x5 bl sub_802C910 b _0802CDB0 _0802CDAA: movs r0, 0x1 bl sub_802C910 _0802CDB0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802CD38 thumb_func_start sub_802CDB8 sub_802CDB8: push {lr} bl sub_802DEE0 cmp r0, 0x1 bls _0802CDD0 cmp r0, 0x3 bhi _0802CDD0 bl sub_802DF24 movs r0, 0x1 bl sub_802C910 _0802CDD0: pop {r0} bx r0 thumb_func_end sub_802CDB8 thumb_func_start sub_802CDD4 sub_802CDD4: push {r4-r6,lr} adds r5, r0, 0 ldr r4, _0802CE54 ldr r0, [r4] cmp r0, 0 bne _0802CDEA movs r0, 0xA0 movs r1, 0x8 bl MemoryAlloc str r0, [r4] _0802CDEA: ldr r0, [r4] str r5, [r0, 0x34] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x3C adds r1, r0, r1 str r1, [r0, 0x38] adds r0, 0x3C bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x34] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x3C ldr r0, _0802CE58 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldr r1, [r4] ldr r0, [r1, 0x38] adds r1, 0x9C str r1, [r0, 0x14] movs r1, 0x4 bl sub_8012D34 bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x5 movs r2, 0x4 adds r3, r5, 0 bl sub_8013848 bl sub_802CF5C bl sub_802CFD0 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0802CE54: .4byte gUnknown_203B2F4 _0802CE58: .4byte gUnknown_80DFDA4 thumb_func_end sub_802CDD4 thumb_func_start sub_802CE5C sub_802CE5C: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _0802CE74 ldr r0, _0802CE70 ldr r0, [r0] bl sub_8013660 movs r0, 0 b _0802CEB4 .align 2, 0 _0802CE70: .4byte gUnknown_203B2F4 _0802CE74: ldr r4, _0802CE90 ldr r0, [r4] bl GetKeyPress cmp r0, 0x1 beq _0802CE94 cmp r0, 0x2 bne _0802CE98 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802CEB4 .align 2, 0 _0802CE90: .4byte gUnknown_203B2F4 _0802CE94: movs r0, 0x3 b _0802CEB4 _0802CE98: ldr r0, [r4] movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802CEAA movs r0, 0 b _0802CEB4 _0802CEAA: bl sub_802CF5C bl sub_802CFD0 movs r0, 0x1 _0802CEB4: pop {r4} pop {r1} bx r1 thumb_func_end sub_802CE5C thumb_func_start sub_802CEBC sub_802CEBC: ldr r0, _0802CED4 ldr r1, [r0] movs r0, 0x1E ldrsh r2, [r1, r0] movs r3, 0x1C ldrsh r0, [r1, r3] muls r0, r2 ldrb r1, [r1, 0x18] adds r0, r1 lsls r0, 24 lsrs r0, 24 bx lr .align 2, 0 _0802CED4: .4byte gUnknown_203B2F4 thumb_func_end sub_802CEBC thumb_func_start sub_802CED8 sub_802CED8: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8004914 ldr r5, _0802CF10 ldr r0, [r5] adds r0, 0x3C movs r1, 0 movs r2, 0 bl sub_800641C ldr r0, [r5] bl sub_8013984 bl sub_802CF5C bl sub_802CFD0 cmp r4, 0 beq _0802CF0A ldr r0, [r5] bl AddMenuCursorSprite _0802CF0A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802CF10: .4byte gUnknown_203B2F4 thumb_func_end sub_802CED8 thumb_func_start sub_802CF14 sub_802CF14: push {r4,r5,lr} ldr r4, _0802CF54 ldr r2, [r4] cmp r2, 0 beq _0802CF4E ldr r0, [r2, 0x34] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x3C ldr r0, _0802CF58 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802CF4E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802CF54: .4byte gUnknown_203B2F4 _0802CF58: .4byte gUnknown_80DFD8C thumb_func_end sub_802CF14 thumb_func_start sub_802CF5C sub_802CF5C: push {r4,lr} ldr r4, _0802CFCC ldr r0, [r4] ldrh r1, [r0, 0x20] adds r0, 0x9C movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x1E] adds r0, 0x9D strb r1, [r0] ldr r0, [r4] adds r0, 0x9E movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0x9F strb r2, [r0] ldr r0, [r4] movs r1, 0x1A ldrsh r0, [r0, r1] movs r1, 0x18 bl sub_8009614 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x34] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x34] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x4C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0802CFCC: .4byte gUnknown_203B2F4 thumb_func_end sub_802CF5C thumb_func_start sub_802CFD0 sub_802CFD0: push {r4-r6,lr} sub sp, 0x60 ldr r6, _0802D02C ldr r0, [r6] ldr r0, [r0, 0x34] bl sub_8008C54 ldr r0, [r6] ldr r0, [r0, 0x34] bl sub_80073B8 ldr r0, [r6] movs r1, 0x1E ldrsh r4, [r0, r1] lsls r4, 3 adds r5, r4, 0 adds r5, 0xA ldr r2, _0802D030 ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r1, 0 bl xxx_call_draw_string adds r4, 0x4 ldr r1, [r6] adds r0, r1, 0 adds r0, 0x9E ldrb r0, [r0] lsls r0, 3 adds r5, r4, r0 movs r0, 0x1E ldrsh r2, [r1, r0] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x34] str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r5, 0 b _0802D076 .align 2, 0 _0802D02C: .4byte gUnknown_203B2F4 _0802D030: .4byte gUnknown_80DFDBC _0802D034: ldr r0, [r6] movs r2, 0x1E ldrsh r1, [r0, r2] movs r2, 0x1C ldrsh r0, [r0, r2] muls r0, r1 adds r0, r5 lsls r0, 24 lsrs r0, 24 bl sub_803B344 adds r4, r0, 0 ldr r0, [r6] ldr r1, [r0, 0x34] str r1, [sp, 0x8] adds r1, r5, 0 bl sub_8013800 str r0, [sp, 0x50] adds r0, r4, 0 add r1, sp, 0x8 bl sub_803B35C mov r1, sp adds r1, 0x4B movs r0, 0x1 strb r0, [r1] ldr r0, [r4, 0x14] str r0, [sp, 0x54] add r0, sp, 0x8 bl sub_803B6D4 adds r5, 0x1 _0802D076: ldr r0, [r6] movs r1, 0x1A ldrsh r0, [r0, r1] cmp r5, r0 blt _0802D034 ldr r0, _0802D094 ldr r0, [r0] ldr r0, [r0, 0x34] bl sub_80073E0 add sp, 0x60 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802D094: .4byte gUnknown_203B2F4 thumb_func_end sub_802CFD0 thumb_func_start sub_802D098 sub_802D098: push {r4-r6,lr} adds r4, r0, 0 ldr r6, _0802D0DC movs r0, 0x82 lsls r0, 2 movs r1, 0x8 bl MemoryAlloc str r0, [r6] movs r5, 0 str r5, [r0, 0x6C] str r5, [r0, 0x70] str r5, [r0, 0x74] str r4, [r0, 0xC] strb r5, [r0, 0x8] ldr r0, [r6] adds r0, 0xA bl sub_8099328 ldr r1, [r6] strb r0, [r1, 0x9] bl sub_8011C1C cmp r0, 0x2 beq _0802D0CE ldr r0, [r6] strb r5, [r0, 0x9] _0802D0CE: movs r0, 0 bl sub_802D1A0 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0802D0DC: .4byte gUnknown_203B2F8 thumb_func_end sub_802D098 thumb_func_start sub_802D0E0 sub_802D0E0: push {lr} ldr r0, _0802D0F8 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x10 bhi _0802D16C lsls r0, 2 ldr r1, _0802D0FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802D0F8: .4byte gUnknown_203B2F8 _0802D0FC: .4byte _0802D100 .align 2, 0 _0802D100: .4byte _0802D170 .4byte _0802D144 .4byte _0802D168 .4byte _0802D16C .4byte _0802D16C .4byte _0802D16C .4byte _0802D16C .4byte _0802D16C .4byte _0802D16C .4byte _0802D162 .4byte _0802D16C .4byte _0802D14A .4byte _0802D14A .4byte _0802D150 .4byte _0802D156 .4byte _0802D15C .4byte _0802D15C _0802D144: bl sub_802D7D0 b _0802D170 _0802D14A: bl sub_802D8CC b _0802D170 _0802D150: bl sub_802D940 b _0802D170 _0802D156: bl sub_802D9F0 b _0802D170 _0802D15C: bl sub_802DA60 b _0802D170 _0802D162: bl sub_802D82C b _0802D170 _0802D168: movs r0, 0x3 b _0802D172 _0802D16C: bl sub_802DA84 _0802D170: movs r0, 0 _0802D172: pop {r1} bx r1 thumb_func_end sub_802D0E0 thumb_func_start sub_802D178 sub_802D178: ldr r0, _0802D180 ldr r0, [r0] ldrb r0, [r0, 0x8] bx lr .align 2, 0 _0802D180: .4byte gUnknown_203B2F8 thumb_func_end sub_802D178 thumb_func_start sub_802D184 sub_802D184: push {r4,lr} ldr r4, _0802D19C ldr r0, [r4] cmp r0, 0 beq _0802D196 bl MemoryFree movs r0, 0 str r0, [r4] _0802D196: pop {r4} pop {r0} bx r0 .align 2, 0 _0802D19C: .4byte gUnknown_203B2F8 thumb_func_end sub_802D184 thumb_func_start sub_802D1A0 sub_802D1A0: push {lr} ldr r1, _0802D1B4 ldr r1, [r1] str r0, [r1] bl sub_802D1B8 bl sub_802D2A8 pop {r0} bx r0 .align 2, 0 _0802D1B4: .4byte gUnknown_203B2F8 thumb_func_end sub_802D1A0 thumb_func_start sub_802D1B8 sub_802D1B8: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0802D1E0 ldr r0, [r4] movs r1, 0xD4 lsls r1, 1 adds r0, r1 bl sub_8006518 ldr r0, [r4] ldr r0, [r0] cmp r0, 0xD beq _0802D1EA cmp r0, 0xD bgt _0802D1E4 cmp r0, 0x2 beq _0802D27E b _0802D254 .align 2, 0 _0802D1E0: .4byte gUnknown_203B2F8 _0802D1E4: cmp r0, 0xE beq _0802D21C b _0802D254 _0802D1EA: bl sub_802D5A4 ldr r2, [r4] movs r0, 0xEC lsls r0, 1 adds r2, r0 ldr r1, _0802D218 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 movs r6, 0x8C lsls r6, 1 adds r1, r6 bl sub_8012CAC ldr r0, [r4] movs r7, 0xF2 lsls r7, 1 b _0802D246 .align 2, 0 _0802D218: .4byte gUnknown_80DFE04 _0802D21C: bl sub_802D63C ldr r2, [r4] movs r0, 0xF8 lsls r0, 1 adds r2, r0 ldr r1, _0802D250 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 movs r6, 0xAC lsls r6, 1 adds r1, r6 bl sub_8012CAC ldr r0, [r4] movs r7, 0xFE lsls r7, 1 _0802D246: adds r0, r7 movs r1, 0x6 strh r1, [r0] b _0802D27E .align 2, 0 _0802D250: .4byte gUnknown_80DFE1C _0802D254: ldr r0, _0802D2A0 mov r12, r0 movs r1, 0xD4 lsls r1, 1 mov r8, r1 ldr r4, _0802D2A4 movs r3, 0 movs r2, 0x3 _0802D264: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0802D264 _0802D27E: bl sub_8004914 ldr r0, _0802D2A0 ldr r0, [r0] movs r6, 0xD4 lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802D2A0: .4byte gUnknown_203B2F8 _0802D2A4: .4byte gUnknown_80DFDD4 thumb_func_end sub_802D1B8 thumb_func_start sub_802D2A8 sub_802D2A8: push {r4,lr} sub sp, 0x14 ldr r1, _0802D2C4 ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0x10 bls _0802D2BA b _0802D59A _0802D2BA: lsls r0, 2 ldr r1, _0802D2C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802D2C4: .4byte gUnknown_203B2F8 _0802D2C8: .4byte _0802D2CC .align 2, 0 _0802D2CC: .4byte _0802D310 .4byte _0802D398 .4byte _0802D59A .4byte _0802D3B4 .4byte _0802D3C4 .4byte _0802D3D4 .4byte _0802D3E4 .4byte _0802D3F4 .4byte _0802D404 .4byte _0802D498 .4byte _0802D4C8 .4byte _0802D4E4 .4byte _0802D4F0 .4byte _0802D4F8 .4byte _0802D524 .4byte _0802D558 .4byte _0802D576 _0802D310: ldr r0, [r4] ldr r0, [r0, 0xC] bl sub_80968B0 lsls r0, 24 cmp r0, 0 beq _0802D326 movs r0, 0x3 bl sub_802D1A0 b _0802D59A _0802D326: ldr r0, [r4] ldr r0, [r0, 0xC] bl sub_8096F50 lsls r0, 24 cmp r0, 0 beq _0802D33C movs r0, 0x4 bl sub_802D1A0 b _0802D59A _0802D33C: ldr r1, [r4] ldr r0, [r1, 0xC] ldrb r0, [r0, 0x2] cmp r0, 0x4 bne _0802D36E adds r0, r1, 0 adds r0, 0x10 bl sub_8096C08 lsls r0, 24 cmp r0, 0 beq _0802D36E bl sub_802DAA8 lsls r0, 24 cmp r0, 0 beq _0802D366 movs r0, 0x9 bl sub_802D1A0 b _0802D59A _0802D366: movs r0, 0x5 bl sub_802D1A0 b _0802D59A _0802D36E: bl sub_80969AC cmp r0, 0x7 ble _0802D390 bl sub_802DADC lsls r0, 24 cmp r0, 0 beq _0802D388 movs r0, 0xA bl sub_802D1A0 b _0802D59A _0802D388: movs r0, 0x6 bl sub_802D1A0 b _0802D59A _0802D390: movs r0, 0x8 bl sub_802D1A0 b _0802D59A _0802D398: bl sub_802D73C ldr r0, _0802D3AC ldr r1, _0802D3B0 ldr r3, [r1] ldr r2, [r3, 0x70] movs r1, 0xAC lsls r1, 1 adds r3, r1 b _0802D4AA .align 2, 0 _0802D3AC: .4byte gUnknown_80DFE4C _0802D3B0: .4byte gUnknown_203B2F8 _0802D3B4: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _0802D3C0 b _0802D4D0 .align 2, 0 _0802D3C0: .4byte gUnknown_80DFE9C _0802D3C4: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _0802D3D0 b _0802D4D0 .align 2, 0 _0802D3D0: .4byte gUnknown_80DFED0 _0802D3D4: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _0802D3E0 b _0802D4D0 .align 2, 0 _0802D3E0: .4byte gUnknown_80DFF2C _0802D3E4: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _0802D3F0 b _0802D4D0 .align 2, 0 _0802D3F0: .4byte gUnknown_80DFFA4 _0802D3F4: ldr r1, [r4] movs r0, 0xC str r0, [r1, 0x4] ldr r0, _0802D400 b _0802D4D0 .align 2, 0 _0802D400: .4byte gUnknown_80E0010 _0802D404: ldr r4, _0802D45C ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0x8] ldr r0, [r4] ldr r0, [r0, 0xC] bl sub_8096A78 bl sub_8096C80 bl sub_8096D24 ldr r0, [r4] ldr r0, [r0, 0xC] ldrb r0, [r0, 0x2] cmp r0, 0x4 bne _0802D446 bl sub_8096DD8 ldr r1, [r4] ldr r1, [r1, 0xC] ldr r1, [r1, 0x14] movs r2, 0x28 bl MemoryCopy8 bl sub_8096DE8 ldr r1, [r4] ldr r1, [r1, 0xC] ldr r1, [r1, 0x18] movs r2, 0x78 bl MemoryCopy8 _0802D446: ldr r0, [r4] ldr r0, [r0, 0xC] ldrb r0, [r0, 0x4] cmp r0, 0x2C beq _0802D46E cmp r0, 0x2C bgt _0802D460 cmp r0, 0x2B beq _0802D46A b _0802D484 .align 2, 0 _0802D45C: .4byte gUnknown_203B2F8 _0802D460: cmp r0, 0x2D beq _0802D472 cmp r0, 0x2E beq _0802D47C b _0802D484 _0802D46A: movs r0, 0x2A b _0802D474 _0802D46E: movs r0, 0x2B b _0802D474 _0802D472: movs r0, 0x2C _0802D474: movs r1, 0x1 bl sub_8097418 b _0802D484 _0802D47C: movs r0, 0x2D movs r1, 0x1 bl sub_8097418 _0802D484: ldr r0, _0802D490 ldr r1, [r0] movs r0, 0x2 str r0, [r1, 0x4] ldr r0, _0802D494 b _0802D4D0 .align 2, 0 _0802D490: .4byte gUnknown_203B2F8 _0802D494: .4byte gUnknown_80E0074 _0802D498: bl sub_802D690 ldr r0, _0802D4C0 ldr r1, _0802D4C4 ldr r3, [r1] ldr r2, [r3, 0x74] movs r4, 0xAC lsls r4, 1 adds r3, r4 _0802D4AA: movs r4, 0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0 bl sub_8014248 b _0802D59A .align 2, 0 _0802D4C0: .4byte gUnknown_80E0094 _0802D4C4: .4byte gUnknown_203B2F8 _0802D4C8: ldr r1, [r4] movs r0, 0xB str r0, [r1, 0x4] ldr r0, _0802D4DC _0802D4D0: ldr r3, _0802D4E0 movs r1, 0 movs r2, 0 bl sub_80141B4 b _0802D59A .align 2, 0 _0802D4DC: .4byte gUnknown_80E0108 _0802D4E0: .4byte 0x00000101 _0802D4E4: movs r0, 0 movs r1, 0 movs r2, 0x4 bl sub_802C4C8 b _0802D59A _0802D4F0: movs r0, 0x1 bl sub_802C640 b _0802D59A _0802D4F8: bl sub_802C750 ldr r0, _0802D520 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x78 movs r3, 0x8C lsls r3, 1 adds r1, r2, r3 movs r4, 0xCC lsls r4, 1 adds r3, r2, r4 ldr r2, [r2, 0x6C] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _0802D59A .align 2, 0 _0802D520: .4byte gUnknown_203B2F8 _0802D524: bl sub_802C750 ldr r4, _0802D554 ldr r0, [r4] adds r0, 0x78 movs r1, 0 bl sub_8012EA4 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xC8 movs r2, 0xAC lsls r2, 1 adds r1, r2 movs r2, 0x4 str r2, [sp] movs r2, 0x3 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0802D59A .align 2, 0 _0802D554: .4byte gUnknown_203B2F8 _0802D558: ldr r0, [r4] ldrb r0, [r0, 0x10] bl sub_8096AB4 ldr r1, [r4] adds r1, 0x14 bl sub_803B35C ldr r0, [r4] movs r1, 0x3 str r1, [r0, 0x14] adds r0, 0x14 bl sub_802DE84 b _0802D59A _0802D576: ldr r1, [r4] ldr r0, [r1, 0xC] adds r1, 0x14 bl sub_803B35C ldr r0, [r4] movs r1, 0x3 str r1, [r0, 0x14] adds r0, 0x58 movs r1, 0 strb r1, [r0] ldr r0, [r4] ldr r1, [r0, 0xC] ldr r1, [r1, 0x18] str r1, [r0, 0x64] adds r0, 0x14 bl sub_802DE84 _0802D59A: add sp, 0x14 pop {r4} pop {r0} bx r0 thumb_func_end sub_802D2A8 thumb_func_start sub_802D5A4 sub_802D5A4: push {r4-r7,lr} ldr r4, _0802D630 ldr r0, [r4] movs r5, 0xCC lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r0, [r4] mov r12, r0 movs r3, 0 movs r1, 0x8C lsls r1, 1 add r1, r12 ldr r0, _0802D634 ldr r0, [r0] str r0, [r1] movs r1, 0x8E lsls r1, 1 add r1, r12 movs r0, 0x2 str r0, [r1] movs r2, 0x1 movs r1, 0x90 lsls r1, 1 add r1, r12 ldr r0, _0802D638 ldr r0, [r0] str r0, [r1] movs r1, 0x92 lsls r1, 1 add r1, r12 movs r0, 0x5 str r0, [r1] movs r7, 0x2 movs r0, 0x94 lsls r0, 1 add r0, r12 str r3, [r0] movs r0, 0x96 lsls r0, 1 add r0, r12 str r2, [r0] movs r6, 0 movs r3, 0x8E lsls r3, 1 add r3, r12 mov r0, r12 adds r2, r0, r5 _0802D60A: ldrh r0, [r2] cmp r0, 0 bne _0802D61A ldr r1, [r3] mov r5, r12 ldr r0, [r5, 0x6C] cmp r1, r0 beq _0802D62A _0802D61A: adds r3, 0x8 adds r2, 0x2 adds r6, 0x1 cmp r6, r7 blt _0802D60A ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x6C] _0802D62A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802D630: .4byte gUnknown_203B2F8 _0802D634: .4byte gUnknown_80D494C _0802D638: .4byte gUnknown_80D4970 thumb_func_end sub_802D5A4 thumb_func_start sub_802D63C sub_802D63C: ldr r0, _0802D684 ldr r0, [r0] mov r12, r0 movs r3, 0 movs r1, 0xAC lsls r1, 1 add r1, r12 ldr r0, _0802D688 ldr r0, [r0] str r0, [r1] movs r1, 0xAE lsls r1, 1 add r1, r12 movs r0, 0x3 str r0, [r1] movs r2, 0x1 movs r1, 0xB0 lsls r1, 1 add r1, r12 ldr r0, _0802D68C ldr r0, [r0] str r0, [r1] movs r1, 0xB2 lsls r1, 1 add r1, r12 movs r0, 0x4 str r0, [r1] movs r0, 0xB4 lsls r0, 1 add r0, r12 str r3, [r0] movs r0, 0xB6 lsls r0, 1 add r0, r12 str r2, [r0] bx lr .align 2, 0 _0802D684: .4byte gUnknown_203B2F8 _0802D688: .4byte gUnknown_80D4920 _0802D68C: .4byte gUnknown_80D4928 thumb_func_end sub_802D63C thumb_func_start sub_802D690 sub_802D690: push {r4,r5,lr} ldr r2, _0802D728 ldr r0, [r2] mov r12, r0 movs r4, 0 movs r1, 0xAC lsls r1, 1 add r1, r12 ldr r0, _0802D72C ldr r0, [r0] str r0, [r1] movs r1, 0xAE lsls r1, 1 add r1, r12 movs r0, 0x3 str r0, [r1] movs r3, 0x1 movs r1, 0xB0 lsls r1, 1 add r1, r12 ldr r0, _0802D730 ldr r0, [r0] str r0, [r1] movs r1, 0xB2 lsls r1, 1 add r1, r12 movs r0, 0x4 str r0, [r1] movs r1, 0xB4 lsls r1, 1 add r1, r12 ldr r0, _0802D734 str r0, [r1] movs r1, 0xB6 lsls r1, 1 add r1, r12 movs r0, 0x6 str r0, [r1] movs r1, 0xB8 lsls r1, 1 add r1, r12 ldr r0, _0802D738 str r0, [r1] movs r1, 0xBA lsls r1, 1 add r1, r12 movs r0, 0x7 str r0, [r1] movs r5, 0x4 movs r0, 0xBC lsls r0, 1 add r0, r12 str r4, [r0] movs r0, 0xBE lsls r0, 1 add r0, r12 str r3, [r0] movs r3, 0 mov r0, r12 ldr r4, [r0, 0x74] movs r1, 0xAE lsls r1, 1 add r1, r12 _0802D70E: ldr r0, [r1] cmp r0, r4 beq _0802D722 adds r1, 0x8 adds r3, 0x1 cmp r3, r5 blt _0802D70E ldr r1, [r2] movs r0, 0x4 str r0, [r1, 0x74] _0802D722: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802D728: .4byte gUnknown_203B2F8 _0802D72C: .4byte gUnknown_80D4920 _0802D730: .4byte gUnknown_80D4928 _0802D734: .4byte gUnknown_80E014C _0802D738: .4byte gUnknown_80E0158 thumb_func_end sub_802D690 thumb_func_start sub_802D73C sub_802D73C: push {r4,r5,lr} ldr r3, _0802D7C0 ldr r0, [r3] mov r12, r0 movs r4, 0 movs r1, 0xAC lsls r1, 1 add r1, r12 ldr r0, _0802D7C4 ldr r0, [r0] str r0, [r1] movs r1, 0xAE lsls r1, 1 add r1, r12 movs r0, 0x3 str r0, [r1] movs r2, 0x1 movs r1, 0xB0 lsls r1, 1 add r1, r12 ldr r0, _0802D7C8 ldr r0, [r0] str r0, [r1] movs r1, 0xB2 lsls r1, 1 add r1, r12 movs r0, 0x4 str r0, [r1] movs r1, 0xB4 lsls r1, 1 add r1, r12 ldr r0, _0802D7CC str r0, [r1] movs r1, 0xB6 lsls r1, 1 add r1, r12 movs r0, 0x6 str r0, [r1] movs r5, 0x3 movs r0, 0xB8 lsls r0, 1 add r0, r12 str r4, [r0] movs r0, 0xBA lsls r0, 1 add r0, r12 str r2, [r0] movs r2, 0 mov r0, r12 ldr r4, [r0, 0x70] movs r1, 0xAE lsls r1, 1 add r1, r12 _0802D7A6: ldr r0, [r1] cmp r0, r4 beq _0802D7BA adds r1, 0x8 adds r2, 0x1 cmp r2, r5 blt _0802D7A6 ldr r1, [r3] movs r0, 0x4 str r0, [r1, 0x70] _0802D7BA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802D7C0: .4byte gUnknown_203B2F8 _0802D7C4: .4byte gUnknown_80D4920 _0802D7C8: .4byte gUnknown_80D4928 _0802D7CC: .4byte gUnknown_80E014C thumb_func_end sub_802D73C thumb_func_start sub_802D7D0 sub_802D7D0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802D826 ldr r1, [sp] cmp r1, 0x1 beq _0802D7EA ldr r0, _0802D800 ldr r0, [r0] str r1, [r0, 0x70] _0802D7EA: ldr r0, [sp] cmp r0, 0x3 beq _0802D804 cmp r0, 0x3 ble _0802D820 cmp r0, 0x4 beq _0802D820 cmp r0, 0x6 beq _0802D80C b _0802D820 .align 2, 0 _0802D800: .4byte gUnknown_203B2F8 _0802D804: movs r0, 0x2 bl sub_802D1A0 b _0802D826 _0802D80C: ldr r0, _0802D81C ldr r1, [r0] movs r0, 0x1 str r0, [r1, 0x4] movs r0, 0x10 bl sub_802D1A0 b _0802D826 .align 2, 0 _0802D81C: .4byte gUnknown_203B2F8 _0802D820: movs r0, 0 bl sub_802D1A0 _0802D826: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802D7D0 thumb_func_start sub_802D82C sub_802D82C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802D8C6 ldr r1, [sp] cmp r1, 0x1 beq _0802D846 ldr r0, _0802D858 ldr r0, [r0] str r1, [r0, 0x74] _0802D846: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x6 bhi _0802D8C0 lsls r0, 2 ldr r1, _0802D85C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802D858: .4byte gUnknown_203B2F8 _0802D85C: .4byte _0802D860 .align 2, 0 _0802D860: .4byte _0802D8C0 .4byte _0802D8C0 .4byte _0802D87C .4byte _0802D8C0 .4byte _0802D8C0 .4byte _0802D898 .4byte _0802D8AC _0802D87C: ldr r0, _0802D894 ldr r0, [r0] ldrb r0, [r0, 0x10] bl sub_8096C3C bl sub_8096C80 movs r0, 0x8 bl sub_802D1A0 b _0802D8C6 .align 2, 0 _0802D894: .4byte gUnknown_203B2F8 _0802D898: ldr r0, _0802D8A8 ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] movs r0, 0x10 bl sub_802D1A0 b _0802D8C6 .align 2, 0 _0802D8A8: .4byte gUnknown_203B2F8 _0802D8AC: ldr r0, _0802D8BC ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] movs r0, 0xF bl sub_802D1A0 b _0802D8C6 .align 2, 0 _0802D8BC: .4byte gUnknown_203B2F8 _0802D8C0: movs r0, 0x1 bl sub_802D1A0 _0802D8C6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802D82C thumb_func_start sub_802D8CC sub_802D8CC: push {lr} movs r0, 0x1 bl sub_802C598 cmp r0, 0x4 bhi _0802D93A lsls r0, 2 ldr r1, _0802D8E4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802D8E4: .4byte _0802D8E8 .align 2, 0 _0802D8E8: .4byte _0802D93A .4byte _0802D93A .4byte _0802D930 .4byte _0802D8FC .4byte _0802D914 _0802D8FC: bl sub_802C620 ldr r1, _0802D910 ldr r1, [r1] strb r0, [r1, 0x10] movs r0, 0xD bl sub_802D1A0 b _0802D93A .align 2, 0 _0802D910: .4byte gUnknown_203B2F8 _0802D914: bl sub_802C620 ldr r2, _0802D92C ldr r1, [r2] strb r0, [r1, 0x10] ldr r1, [r2] movs r0, 0xC str r0, [r1, 0x4] movs r0, 0xF bl sub_802D1A0 b _0802D93A .align 2, 0 _0802D92C: .4byte gUnknown_203B2F8 _0802D930: bl sub_802C688 movs r0, 0x1 bl sub_802D1A0 _0802D93A: pop {r0} bx r0 thumb_func_end sub_802D8CC thumb_func_start sub_802D940 sub_802D940: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802C598 ldr r4, _0802D980 ldr r0, [r4] adds r0, 0x78 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802D970 ldr r0, [r4] adds r0, 0x78 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802D970 ldr r0, [r4] str r1, [r0, 0x6C] _0802D970: ldr r0, [sp] cmp r0, 0x2 beq _0802D98A cmp r0, 0x2 bgt _0802D984 cmp r0, 0x1 beq _0802D9E0 b _0802D9E6 .align 2, 0 _0802D980: .4byte gUnknown_203B2F8 _0802D984: cmp r0, 0x5 beq _0802D9CC b _0802D9E6 _0802D98A: ldr r0, _0802D9BC ldr r3, [r0] ldrb r0, [r3, 0x9] cmp r0, 0 beq _0802D9C4 ldr r2, _0802D9C0 ldrb r1, [r3, 0x10] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, 0xF0 ldr r1, [r2] adds r1, r0 ldrb r0, [r1] cmp r0, 0x5 bls _0802D9C4 ldrb r0, [r3, 0xA] ldrb r1, [r1, 0x4] cmp r0, r1 bne _0802D9C4 movs r0, 0x7 bl sub_802D1A0 b _0802D9E6 .align 2, 0 _0802D9BC: .4byte gUnknown_203B2F8 _0802D9C0: .4byte gUnknown_203B490 _0802D9C4: movs r0, 0xE bl sub_802D1A0 b _0802D9E6 _0802D9CC: ldr r0, _0802D9DC ldr r1, [r0] movs r0, 0xC str r0, [r1, 0x4] movs r0, 0xF bl sub_802D1A0 b _0802D9E6 .align 2, 0 _0802D9DC: .4byte gUnknown_203B2F8 _0802D9E0: movs r0, 0xC bl sub_802D1A0 _0802D9E6: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802D940 thumb_func_start sub_802D9F0 sub_802D9F0: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802C598 ldr r4, _0802DA30 ldr r0, [r4] adds r0, 0x78 bl sub_8012FD8 ldr r0, [r4] adds r0, 0xC8 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802DA1E ldr r0, [r4] adds r0, 0xC8 mov r1, sp bl sub_8013114 _0802DA1E: ldr r0, [sp] cmp r0, 0x3 beq _0802DA40 cmp r0, 0x3 bgt _0802DA34 cmp r0, 0x1 beq _0802DA38 b _0802DA56 .align 2, 0 _0802DA30: .4byte gUnknown_203B2F8 _0802DA34: cmp r0, 0x4 bne _0802DA56 _0802DA38: movs r0, 0xC bl sub_802D1A0 b _0802DA56 _0802DA40: bl sub_802C688 ldr r0, [r4] ldrb r0, [r0, 0x10] bl sub_8096C3C bl sub_8096C80 movs r0, 0x8 bl sub_802D1A0 _0802DA56: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802D9F0 thumb_func_start sub_802DA60 sub_802DA60: push {lr} bl sub_802DEE0 cmp r0, 0x1 bls _0802DA7C cmp r0, 0x3 bhi _0802DA7C bl sub_802DF24 ldr r0, _0802DA80 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_802D1A0 _0802DA7C: pop {r0} bx r0 .align 2, 0 _0802DA80: .4byte gUnknown_203B2F8 thumb_func_end sub_802DA60 thumb_func_start sub_802DA84 sub_802DA84: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802DA9C ldr r0, _0802DAA4 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_802D1A0 _0802DA9C: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0802DAA4: .4byte gUnknown_203B2F8 thumb_func_end sub_802DA84 thumb_func_start sub_802DAA8 sub_802DAA8: push {r4,lr} ldr r4, _0802DAD0 ldr r0, [r4] ldrb r0, [r0, 0x10] bl sub_8096AB4 adds r1, r0, 0 ldr r4, [r4] ldrb r0, [r4, 0x9] cmp r0, 0 beq _0802DAD4 ldrb r0, [r1] cmp r0, 0x5 beq _0802DAD4 ldrb r0, [r4, 0xA] ldrb r1, [r1, 0x4] cmp r0, r1 bne _0802DAD4 movs r0, 0 b _0802DAD6 .align 2, 0 _0802DAD0: .4byte gUnknown_203B2F8 _0802DAD4: movs r0, 0x1 _0802DAD6: pop {r4} pop {r1} bx r1 thumb_func_end sub_802DAA8 thumb_func_start sub_802DADC sub_802DADC: push {r4,lr} ldr r3, _0802DAEC ldr r0, [r3] ldrb r0, [r0, 0x9] cmp r0, 0 bne _0802DAF0 _0802DAE8: movs r0, 0x1 b _0802DB1C .align 2, 0 _0802DAEC: .4byte gUnknown_203B2F8 _0802DAF0: ldr r0, _0802DB24 ldr r0, [r0] adds r1, r0, 0 adds r1, 0xF0 movs r2, 0 _0802DAFA: ldrb r0, [r1] cmp r0, 0 beq _0802DAE8 cmp r0, 0x5 beq _0802DAE8 cmp r0, 0x5 bls _0802DB12 ldr r0, [r3] ldrb r0, [r0, 0xA] ldrb r4, [r1, 0x4] cmp r0, r4 bne _0802DAE8 _0802DB12: adds r1, 0x14 adds r2, 0x1 cmp r2, 0x7 ble _0802DAFA movs r0, 0 _0802DB1C: pop {r4} pop {r1} bx r1 .align 2, 0 _0802DB24: .4byte gUnknown_203B490 thumb_func_end sub_802DADC thumb_func_start sub_802DB28 sub_802DB28: push {r4-r6,lr} sub sp, 0x8 adds r2, r1, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r2, 24 lsrs r2, 24 mov r0, sp adds r1, r6, 0 bl sub_8096AF8 mov r0, sp ldrb r0, [r0] cmp r0, 0 bne _0802DB4A movs r0, 0 b _0802DBC6 _0802DB4A: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0802DBD0 movs r0, 0xA8 movs r1, 0x8 bl MemoryAlloc str r0, [r4] adds r0, 0x30 movs r5, 0 strb r6, [r0] adds r0, r6, 0 bl sub_8096AB4 ldr r1, [r4] str r0, [r1, 0x34] bl sub_8096EEC ldr r1, [r4] ldr r0, [r1, 0x34] adds r1, 0x8 bl sub_803C21C ldr r0, [r4] ldr r0, [r0, 0x34] movs r1, 0xC ldrsh r0, [r0, r1] bl sub_808DDD0 ldr r1, [r4] str r0, [r1, 0x38] str r5, [r1, 0x3C] adds r1, 0x44 strb r5, [r1] ldr r0, [r4] adds r0, 0x45 strb r5, [r0] ldr r0, [r4] adds r0, 0x46 strb r5, [r0] ldr r2, [r4] adds r1, r2, 0 adds r1, 0x40 movs r0, 0x2 strh r0, [r1] adds r1, 0x2 movs r0, 0x8 strh r0, [r1] ldr r0, [r2, 0x38] cmp r0, 0 beq _0802DBBE ldr r0, [r0, 0x4] str r0, [r2, 0x3C] _0802DBBE: movs r0, 0 bl sub_802DC28 movs r0, 0x1 _0802DBC6: add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0802DBD0: .4byte gUnknown_203B2FC thumb_func_end sub_802DB28 thumb_func_start sub_802DBD4 sub_802DBD4: push {lr} ldr r0, _0802DBEC ldr r0, [r0] ldr r1, [r0] cmp r1, 0x6 beq _0802DBF0 cmp r1, 0x7 bne _0802DBF6 ldr r0, [r0, 0x34] strb r1, [r0] movs r0, 0x3 b _0802DBFC .align 2, 0 _0802DBEC: .4byte gUnknown_203B2FC _0802DBF0: bl sub_802DE44 b _0802DBFA _0802DBF6: bl sub_802DE60 _0802DBFA: movs r0, 0 _0802DBFC: pop {r1} bx r1 thumb_func_end sub_802DBD4 thumb_func_start sub_802DC00 sub_802DC00: push {r4,lr} ldr r4, _0802DC24 ldr r0, [r4] cmp r0, 0 beq _0802DC1E ldr r0, [r0, 0x38] cmp r0, 0 beq _0802DC14 bl CloseFile _0802DC14: ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802DC1E: pop {r4} pop {r0} bx r0 .align 2, 0 _0802DC24: .4byte gUnknown_203B2FC thumb_func_end sub_802DC00 thumb_func_start sub_802DC28 sub_802DC28: push {lr} ldr r1, _0802DC3C ldr r1, [r1] str r0, [r1] bl sub_802DC40 bl sub_802DC9C pop {r0} bx r0 .align 2, 0 _0802DC3C: .4byte gUnknown_203B2FC thumb_func_end sub_802DC28 thumb_func_start sub_802DC40 sub_802DC40: push {r4-r7,lr} ldr r4, _0802DC94 ldr r0, [r4] adds r0, 0x48 bl sub_8006518 ldr r0, [r4] ldr r0, [r0] cmp r0, 0 beq _0802DC58 cmp r0, 0x7 bne _0802DC7A _0802DC58: mov r12, r4 ldr r4, _0802DC98 movs r3, 0 movs r2, 0x3 _0802DC60: mov r0, r12 ldr r1, [r0] adds r1, r3 adds r1, 0x48 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0802DC60 _0802DC7A: bl sub_8004914 ldr r0, _0802DC94 ldr r0, [r0] adds r0, 0x48 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802DC94: .4byte gUnknown_203B2FC _0802DC98: .4byte gUnknown_80E016C thumb_func_end sub_802DC40 thumb_func_start sub_802DC9C sub_802DC9C: push {r4,r5,lr} ldr r1, _0802DCB8 ldr r0, [r1] ldr r0, [r0] adds r5, r1, 0 cmp r0, 0x7 bls _0802DCAC b _0802DE3E _0802DCAC: lsls r0, 2 ldr r1, _0802DCBC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802DCB8: .4byte gUnknown_203B2FC _0802DCBC: .4byte _0802DCC0 .align 2, 0 _0802DCC0: .4byte _0802DCE0 .4byte _0802DDDC .4byte _0802DDE4 .4byte _0802DDEC .4byte _0802DDFC .4byte _0802DDF4 .4byte _0802DE34 .4byte _0802DE3E _0802DCE0: ldr r0, _0802DD60 ldr r1, [r5] ldr r1, [r1, 0x34] movs r2, 0xC ldrsh r1, [r1, r2] bl sub_808D8E0 ldr r4, _0802DD64 ldr r0, [r5] ldr r0, [r0, 0x34] movs r2, 0xC ldrsh r1, [r0, r2] adds r0, r4, 0 bl sub_808D8E0 ldr r0, [r5] ldr r0, [r0, 0x34] movs r1, 0xC ldrsh r0, [r0, r1] bl sub_808D994 adds r1, r0, 0 ldr r2, _0802DD68 adds r0, r4, r2 bl strcpy ldr r0, [r5] ldr r0, [r0, 0x34] movs r1, 0xE ldrsh r0, [r0, r1] bl sub_808D994 adds r1, r0, 0 ldr r2, _0802DD6C adds r4, r2 adds r0, r4, 0 bl strcpy ldr r0, [r5] ldr r0, [r0, 0x34] movs r1, 0xC ldrsh r0, [r0, r1] bl sub_8098214 ldr r0, _0802DD70 ldr r1, [r5] ldr r1, [r1, 0x34] ldrb r1, [r1, 0x10] movs r2, 0 bl sub_8090DC4 ldr r1, [r5] movs r0, 0x6 str r0, [r1, 0x4] ldr r0, [r1, 0x34] ldrb r0, [r0, 0x1] cmp r0, 0x4 bhi _0802DDD4 lsls r0, 2 ldr r1, _0802DD74 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802DD60: .4byte gUnknown_202E5D8 _0802DD64: .4byte gUnknown_202E1C8 _0802DD68: .4byte 0xfffffdd0 _0802DD6C: .4byte 0xfffffe20 _0802DD70: .4byte gUnknown_202DE58 _0802DD74: .4byte _0802DD78 .align 2, 0 _0802DD78: .4byte _0802DDD4 .4byte _0802DD9C .4byte _0802DDB8 .4byte _0802DD94 .4byte _0802DD8C _0802DD8C: movs r0, 0x5 bl sub_802DC28 b _0802DE3E _0802DD94: movs r0, 0x4 bl sub_802DC28 b _0802DE3E _0802DD9C: movs r0, 0x2 bl sub_802DC28 ldr r0, _0802DDB4 ldr r0, [r0] ldr r0, [r0, 0x34] movs r2, 0xE ldrsh r0, [r0, r2] bl sub_8098214 b _0802DE3E .align 2, 0 _0802DDB4: .4byte gUnknown_203B2FC _0802DDB8: movs r0, 0x3 bl sub_802DC28 ldr r0, _0802DDD0 ldr r0, [r0] ldr r0, [r0, 0x34] movs r1, 0xE ldrsh r0, [r0, r1] bl sub_8098214 b _0802DE3E .align 2, 0 _0802DDD0: .4byte gUnknown_203B2FC _0802DDD4: movs r0, 0x1 bl sub_802DC28 b _0802DE3E _0802DDDC: ldr r0, _0802DDE0 b _0802DE1C .align 2, 0 _0802DDE0: .4byte gUnknown_80E0184 _0802DDE4: ldr r0, _0802DDE8 b _0802DE1C .align 2, 0 _0802DDE8: .4byte gUnknown_80E01A0 _0802DDEC: ldr r0, _0802DDF0 b _0802DE1C .align 2, 0 _0802DDF0: .4byte gUnknown_80E01C4 _0802DDF4: ldr r0, _0802DDF8 b _0802DE1C .align 2, 0 _0802DDF8: .4byte gUnknown_80E01F0 _0802DDFC: ldr r0, [r5] ldr r0, [r0, 0x34] ldrb r0, [r0, 0x10] bl sub_8091130 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0802DE1A adds r0, r1, 0 bl sub_80911F8 bl sub_80910B4 _0802DE1A: ldr r0, _0802DE2C _0802DE1C: ldr r2, [r5] adds r2, 0x38 ldr r3, _0802DE30 movs r1, 0 bl sub_80141B4 b _0802DE3E .align 2, 0 _0802DE2C: .4byte gUnknown_80E0218 _0802DE30: .4byte 0x0000010d _0802DE34: ldr r0, [r5] adds r0, 0x8 movs r1, 0x1 bl sub_802F204 _0802DE3E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_802DC9C thumb_func_start sub_802DE44 sub_802DE44: push {lr} bl sub_802F298 cmp r0, 0x1 bls _0802DE5C cmp r0, 0x3 bhi _0802DE5C bl sub_802F2C0 movs r0, 0x7 bl sub_802DC28 _0802DE5C: pop {r0} bx r0 thumb_func_end sub_802DE44 thumb_func_start sub_802DE60 sub_802DE60: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802DE78 ldr r0, _0802DE80 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_802DC28 _0802DE78: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0802DE80: .4byte gUnknown_203B2FC thumb_func_end sub_802DE60 thumb_func_start sub_802DE84 sub_802DE84: push {r4,r5,lr} adds r5, r0, 0 ldr r4, _0802DED8 movs r0, 0x7C movs r1, 0x8 bl MemoryAlloc str r0, [r4] str r5, [r0, 0xC] bl sub_801317C ldr r0, [r4] ldr r1, [r0, 0xC] ldr r2, [r1] str r2, [r0, 0x10] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, 0x18 adds r1, r0, r1 str r1, [r0, 0x14] adds r0, 0x18 bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x10] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x18 ldr r0, _0802DEDC ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_802DF14 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0802DED8: .4byte gUnknown_203B300 _0802DEDC: .4byte gUnknown_80E0264 thumb_func_end sub_802DE84 thumb_func_start sub_802DEE0 sub_802DEE0: push {lr} ldr r0, _0802DF00 ldr r0, [r0] ldr r1, [r0, 0x10] bl sub_8012A64 cmp r0, 0x1 beq _0802DF04 cmp r0, 0x2 bne _0802DF0E movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802DF10 .align 2, 0 _0802DF00: .4byte gUnknown_203B300 _0802DF04: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802DF10 _0802DF0E: movs r0, 0 _0802DF10: pop {r1} bx r1 thumb_func_end sub_802DEE0 thumb_func_start sub_802DF14 sub_802DF14: push {lr} bl sub_802DF6C bl sub_802DF88 pop {r0} bx r0 thumb_func_end sub_802DF14 thumb_func_start sub_802DF24 sub_802DF24: push {r4,r5,lr} ldr r4, _0802DF64 ldr r2, [r4] cmp r2, 0 beq _0802DF5E ldr r0, [r2, 0x10] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x18 ldr r0, _0802DF68 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802DF5E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802DF64: .4byte gUnknown_203B300 _0802DF68: .4byte gUnknown_80E0248 thumb_func_end sub_802DF24 thumb_func_start sub_802DF6C sub_802DF6C: push {lr} bl sub_8004914 ldr r0, _0802DF84 ldr r0, [r0] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 .align 2, 0 _0802DF84: .4byte gUnknown_203B300 thumb_func_end sub_802DF6C thumb_func_start sub_802DF88 sub_802DF88: push {r4,lr} ldr r4, _0802DFAC ldr r0, [r4] ldr r0, [r0, 0x10] bl sub_80073B8 ldr r0, [r4] ldr r0, [r0, 0xC] bl sub_803B98C ldr r0, [r4] ldr r0, [r0, 0x10] bl sub_80073E0 pop {r4} pop {r0} bx r0 .align 2, 0 _0802DFAC: .4byte gUnknown_203B300 thumb_func_end sub_802DF88 thumb_func_start sub_802DFB0 sub_802DFB0: push {r4,lr} ldr r4, _0802DFD4 movs r0, 0xB6 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0 str r1, [r0, 0x64] str r1, [r0, 0x68] movs r0, 0 bl sub_802E088 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0802DFD4: .4byte gUnknown_203B304 thumb_func_end sub_802DFB0 thumb_func_start sub_802DFD8 sub_802DFD8: push {lr} ldr r0, _0802DFF0 ldr r0, [r0] ldr r0, [r0] cmp r0, 0xB bhi _0802E060 lsls r0, 2 ldr r1, _0802DFF4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802DFF0: .4byte gUnknown_203B304 _0802DFF4: .4byte _0802DFF8 .align 2, 0 _0802DFF8: .4byte _0802E028 .4byte _0802E030 .4byte _0802E036 .4byte _0802E060 .4byte _0802E03C .4byte _0802E03C .4byte _0802E042 .4byte _0802E048 .4byte _0802E04E .4byte _0802E054 .4byte _0802E054 .4byte _0802E05A _0802E028: movs r0, 0x1 bl sub_802E088 b _0802E064 _0802E030: bl sub_802E4B0 b _0802E064 _0802E036: bl nullsub_133 b _0802E064 _0802E03C: bl sub_802E578 b _0802E064 _0802E042: bl sub_802E60C b _0802E064 _0802E048: bl sub_802E73C b _0802E064 _0802E04E: bl sub_802E758 b _0802E064 _0802E054: bl sub_802E774 b _0802E064 _0802E05A: bl sub_802E7D0 b _0802E064 _0802E060: movs r0, 0x3 b _0802E066 _0802E064: movs r0, 0 _0802E066: pop {r1} bx r1 thumb_func_end sub_802DFD8 thumb_func_start sub_802E06C sub_802E06C: push {r4,lr} ldr r4, _0802E084 ldr r0, [r4] cmp r0, 0 beq _0802E07E bl MemoryFree movs r0, 0 str r0, [r4] _0802E07E: pop {r4} pop {r0} bx r0 .align 2, 0 _0802E084: .4byte gUnknown_203B304 thumb_func_end sub_802E06C thumb_func_start sub_802E088 sub_802E088: push {lr} ldr r1, _0802E09C ldr r1, [r1] str r0, [r1] bl sub_802E0A0 bl sub_802E1AC pop {r0} bx r0 .align 2, 0 _0802E09C: .4byte gUnknown_203B304 thumb_func_end sub_802E088 thumb_func_start sub_802E0A0 sub_802E0A0: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0802E0C8 ldr r0, [r4] movs r6, 0x86 lsls r6, 1 adds r0, r6 bl sub_8006518 ldr r0, [r4] ldr r5, [r0] cmp r5, 0x1 beq _0802E0D0 cmp r5, 0x6 beq _0802E124 movs r3, 0 ldr r2, _0802E0CC b _0802E168 .align 2, 0 _0802E0C8: .4byte gUnknown_203B304 _0802E0CC: .4byte gUnknown_80E0284 _0802E0D0: mov r12, r6 ldr r0, _0802E118 mov r8, r0 movs r2, 0 movs r3, 0x3 _0802E0DA: ldr r1, [r4] adds r1, r2 add r1, r12 mov r0, r8 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r2, 0x18 subs r3, 0x1 cmp r3, 0 bge _0802E0DA bl sub_802E2B4 ldr r3, _0802E11C ldr r2, [r3] movs r0, 0x9E lsls r0, 1 adds r2, r0 ldr r1, _0802E120 ldm r1!, {r4-r6} stm r2!, {r4-r6} ldm r1!, {r4,r5,r7} stm r2!, {r4,r5,r7} ldr r1, [r3] adds r0, r1, r0 adds r1, 0xBC bl sub_8012CAC b _0802E188 .align 2, 0 _0802E118: .4byte gUnknown_80E0284 _0802E11C: .4byte gUnknown_203B304 _0802E120: .4byte gUnknown_80E029C _0802E124: bl sub_802E3B8 ldr r2, [r4] movs r0, 0x9E lsls r0, 1 adds r2, r0 ldr r1, _0802E160 ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0xBC bl sub_8012CAC ldr r1, [r4] movs r4, 0xA4 lsls r4, 1 adds r0, r1, r4 strh r5, [r0] movs r5, 0xAA lsls r5, 1 adds r1, r5 ldr r0, _0802E164 ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldm r0!, {r3-r5} stm r1!, {r3-r5} b _0802E188 .align 2, 0 _0802E160: .4byte gUnknown_80E02B4 _0802E164: .4byte gUnknown_80E02CC _0802E168: ldr r0, [r4] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r0, r1 movs r6, 0x86 lsls r6, 1 adds r0, r6 adds r1, r2, 0 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} adds r3, 0x1 cmp r3, 0x3 ble _0802E168 _0802E188: bl sub_8004914 ldr r0, _0802E1A8 ldr r0, [r0] movs r7, 0x86 lsls r7, 1 adds r0, r7 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802E1A8: .4byte gUnknown_203B304 thumb_func_end sub_802E0A0 thumb_func_start sub_802E1AC sub_802E1AC: push {r4,lr} sub sp, 0x8 ldr r1, _0802E1C8 ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0xB bhi _0802E2AA lsls r0, 2 ldr r1, _0802E1CC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E1C8: .4byte gUnknown_203B304 _0802E1CC: .4byte _0802E1D0 .align 2, 0 _0802E1D0: .4byte _0802E2AA .4byte _0802E200 .4byte _0802E2AA .4byte _0802E2AA .4byte _0802E21E .4byte _0802E22A .4byte _0802E232 .4byte _0802E260 .4byte _0802E286 .4byte _0802E28E .4byte _0802E29A .4byte _0802E2A2 _0802E200: ldr r2, [r4] adds r0, r2, 0 adds r0, 0x6C adds r1, r2, 0 adds r1, 0xBC adds r3, r2, 0 adds r3, 0xFC ldr r2, [r2, 0x64] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _0802E2AA _0802E21E: movs r0, 0 movs r1, 0 movs r2, 0x4 bl sub_802BD14 b _0802E2AA _0802E22A: movs r0, 0x1 bl sub_802BE94 b _0802E2AA _0802E232: bl sub_802BFA0 movs r0, 0x3 bl sub_802E7F8 ldr r0, _0802E25C ldr r2, [r0] adds r0, r2, 0 adds r0, 0x6C adds r1, r2, 0 adds r1, 0xBC ldr r2, [r2, 0x68] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0802E2AA .align 2, 0 _0802E25C: .4byte gUnknown_203B304 _0802E260: ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 ldr r1, [r4] adds r1, 0xC bl sub_803B35C ldr r0, [r4] movs r1, 0x3 str r1, [r0, 0xC] adds r0, 0x50 movs r1, 0 strb r1, [r0] ldr r0, [r4] adds r0, 0xC bl sub_802DE84 b _0802E2AA _0802E286: movs r0, 0 bl sub_802C860 b _0802E2AA _0802E28E: movs r0, 0 movs r1, 0 movs r2, 0x8 bl sub_802B640 b _0802E2AA _0802E29A: movs r0, 0x1 bl sub_802B7D0 b _0802E2AA _0802E2A2: ldr r0, [r4] ldrb r0, [r0, 0x9] bl sub_802B9FC _0802E2AA: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_802E1AC thumb_func_start sub_802E2B4 sub_802E2B4: push {r4-r7,lr} ldr r4, _0802E380 ldr r0, [r4] adds r0, 0xFC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] adds r2, r1, 0 adds r2, 0xBC ldr r0, _0802E384 str r0, [r2] adds r1, 0xC0 movs r0, 0x2 str r0, [r1] bl sub_802C0E8 lsls r0, 24 cmp r0, 0 beq _0802E2E6 ldr r0, [r4] adds r0, 0xFC movs r1, 0x1 strh r1, [r0] _0802E2E6: movs r5, 0x1 ldr r1, [r4] movs r6, 0x1 adds r2, r1, 0 adds r2, 0xC4 ldr r0, _0802E388 str r0, [r2] adds r1, 0xC8 movs r0, 0x3 str r0, [r1] bl sub_802C83C lsls r0, 24 cmp r0, 0 beq _0802E30A ldr r0, [r4] adds r0, 0xFE strh r5, [r0] _0802E30A: ldr r1, [r4] adds r2, r1, 0 adds r2, 0xCC ldr r0, _0802E38C str r0, [r2] adds r1, 0xD0 movs r0, 0x4 str r0, [r1] bl sub_802B9D8 lsls r0, 24 cmp r0, 0 beq _0802E32E ldr r0, [r4] movs r1, 0x80 lsls r1, 1 adds r0, r1 strh r6, [r0] _0802E32E: movs r5, 0x3 ldr r2, [r4] adds r0, r2, 0 adds r0, 0xD4 movs r1, 0 str r1, [r0] adds r0, 0x4 str r6, [r0] movs r3, 0 adds r6, r4, 0 mov r12, r2 mov r4, r12 adds r4, 0xFC adds r2, 0xC0 _0802E34A: ldrh r0, [r4] cmp r0, 0 bne _0802E35A ldr r1, [r2] mov r7, r12 ldr r0, [r7, 0x64] cmp r1, r0 beq _0802E3B2 _0802E35A: adds r4, 0x2 adds r2, 0x8 adds r3, 0x1 cmp r3, r5 blt _0802E34A movs r3, 0 cmp r3, r5 bge _0802E3B2 ldr r1, [r6] adds r0, r1, 0 adds r0, 0xFC ldrh r0, [r0] cmp r0, 0 bne _0802E390 adds r0, r1, 0 adds r0, 0xC0 ldr r0, [r0] str r0, [r1, 0x64] b _0802E3B2 .align 2, 0 _0802E380: .4byte gUnknown_203B304 _0802E384: .4byte gUnknown_80E02E4 _0802E388: .4byte gUnknown_80E02F0 _0802E38C: .4byte gUnknown_80E02FC _0802E390: adds r3, 0x1 cmp r3, r5 bge _0802E3B2 ldr r2, [r6] lsls r0, r3, 1 adds r1, r2, 0 adds r1, 0xFC adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _0802E390 lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0xC0 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x64] _0802E3B2: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802E2B4 thumb_func_start sub_802E3B8 sub_802E3B8: push {r4-r7,lr} movs r5, 0 ldr r4, _0802E3F0 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 adds r7, r0, 0 ldrb r0, [r7] cmp r0, 0x1 bne _0802E3FC ldr r2, [r4] adds r1, r2, 0 adds r1, 0xBC ldr r0, _0802E3F4 str r0, [r1] adds r1, 0x4 movs r0, 0x6 str r0, [r1] adds r1, 0x4 ldr r0, _0802E3F8 str r0, [r1] adds r1, 0x4 movs r0, 0x7 str r0, [r1] movs r5, 0x2 b _0802E44A .align 2, 0 _0802E3F0: .4byte gUnknown_203B304 _0802E3F4: .4byte gUnknown_80E0308 _0802E3F8: .4byte gUnknown_80E0310 _0802E3FC: ldr r1, [r4] adds r2, r1, 0 adds r2, 0xBC ldr r0, _0802E494 ldr r0, [r0] str r0, [r2] adds r1, 0xC0 movs r0, 0x5 str r0, [r1] adds r0, r7, 0 bl sub_80968B0 lsls r0, 24 cmp r0, 0 bne _0802E422 bl sub_80969AC cmp r0, 0x7 ble _0802E42C _0802E422: ldr r0, [r4] adds r0, 0xC0 movs r1, 0x1 negs r1, r1 str r1, [r0] _0802E42C: adds r5, 0x1 ldr r4, _0802E498 ldr r2, [r4] lsls r3, r5, 3 adds r0, r2, 0 adds r0, 0xBC adds r0, r3 ldr r1, _0802E49C ldr r1, [r1] str r1, [r0] adds r2, 0xC0 adds r2, r3 movs r0, 0x8 str r0, [r2] adds r5, 0x1 _0802E44A: mov r12, r4 mov r0, r12 ldr r4, [r0] lsls r2, r5, 3 adds r0, r4, 0 adds r0, 0xBC adds r0, r2 movs r1, 0 str r1, [r0] adds r1, r4, 0 adds r1, 0xC0 adds r2, r1, r2 movs r0, 0x1 str r0, [r2] movs r3, 0 cmp r3, r5 bge _0802E486 movs r6, 0x1 negs r6, r6 adds r2, r1, 0 _0802E472: ldr r1, [r2] cmp r1, r6 beq _0802E47E ldr r0, [r4, 0x68] cmp r1, r0 beq _0802E4A8 _0802E47E: adds r2, 0x8 adds r3, 0x1 cmp r3, r5 blt _0802E472 _0802E486: ldrb r0, [r7] cmp r0, 0x1 bne _0802E4A0 mov r0, r12 ldr r1, [r0] movs r0, 0x7 b _0802E4A6 .align 2, 0 _0802E494: .4byte gUnknown_80D4990 _0802E498: .4byte gUnknown_203B304 _0802E49C: .4byte gUnknown_80D4970 _0802E4A0: mov r0, r12 ldr r1, [r0] movs r0, 0x8 _0802E4A6: str r0, [r1, 0x68] _0802E4A8: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802E3B8 thumb_func_start sub_802E4B0 sub_802E4B0: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r4, _0802E4F0 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802E4DC ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802E4DC ldr r0, [r4] str r1, [r0, 0x64] _0802E4DC: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x7 bhi _0802E56E lsls r0, 2 ldr r1, _0802E4F4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E4F0: .4byte gUnknown_203B304 _0802E4F4: .4byte _0802E4F8 .align 2, 0 _0802E4F8: .4byte _0802E568 .4byte _0802E518 .4byte _0802E52A .4byte _0802E53C .4byte _0802E56E .4byte _0802E56E .4byte _0802E56E .4byte _0802E560 _0802E518: bl sub_802C0E8 lsls r0, 24 cmp r0, 0 bne _0802E54E movs r0, 0x4 bl sub_802E088 b _0802E56E _0802E52A: bl sub_802C83C lsls r0, 24 cmp r0, 0 bne _0802E54E movs r0, 0x8 bl sub_802E088 b _0802E56E _0802E53C: bl sub_802B9D8 lsls r0, 24 cmp r0, 0 bne _0802E54E movs r0, 0x9 bl sub_802E088 b _0802E56E _0802E54E: ldr r0, _0802E55C ldr r0, [r0] adds r0, 0x6C movs r1, 0x1 bl sub_8012EA4 b _0802E56E .align 2, 0 _0802E55C: .4byte gUnknown_203B304 _0802E560: movs r0, 0x2 bl sub_802E088 b _0802E56E _0802E568: movs r0, 0x3 bl sub_802E088 _0802E56E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802E4B0 thumb_func_start sub_802E578 sub_802E578: push {r4,lr} movs r0, 0x1 bl sub_802BDEC cmp r0, 0x4 bhi _0802E606 lsls r0, 2 ldr r1, _0802E590 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E590: .4byte _0802E594 .align 2, 0 _0802E594: .4byte _0802E606 .4byte _0802E606 .4byte _0802E5FC .4byte _0802E5A8 .4byte _0802E5C0 _0802E5A8: bl sub_802BE74 ldr r1, _0802E5BC ldr r1, [r1] strb r0, [r1, 0x8] movs r0, 0x6 bl sub_802E088 b _0802E606 .align 2, 0 _0802E5BC: .4byte gUnknown_203B304 _0802E5C0: bl sub_802BE74 ldr r4, _0802E5F0 ldr r1, [r4] strb r0, [r1, 0x8] ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 adds r2, r0, 0 ldrb r0, [r2] cmp r0, 0x1 bne _0802E5F4 ldr r1, [r4] ldrb r0, [r2, 0x5] strb r0, [r1, 0x9] ldr r1, [r4] movs r0, 0x5 str r0, [r1, 0x4] movs r0, 0xB bl sub_802E088 b _0802E606 .align 2, 0 _0802E5F0: .4byte gUnknown_203B304 _0802E5F4: movs r0, 0x7 bl sub_802E088 b _0802E606 _0802E5FC: bl sub_802BEDC movs r0, 0x1 bl sub_802E088 _0802E606: pop {r4} pop {r0} bx r0 thumb_func_end sub_802E578 thumb_func_start sub_802E60C sub_802E60C: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802BDEC ldr r4, _0802E650 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802E63C ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802E63C ldr r0, [r4] str r1, [r0, 0x68] _0802E63C: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x7 bhi _0802E732 lsls r0, 2 ldr r1, _0802E654 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E650: .4byte gUnknown_203B304 _0802E654: .4byte _0802E658 .align 2, 0 _0802E658: .4byte _0802E72C .4byte _0802E732 .4byte _0802E732 .4byte _0802E732 .4byte _0802E678 .4byte _0802E6BC .4byte _0802E704 .4byte _0802E6B4 _0802E678: ldr r0, _0802E6AC bl sub_8011988 ldr r4, _0802E6B0 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 bl sub_8096A78 bl sub_8096C80 bl sub_8096D24 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8096040 bl sub_8096078 bl sub_802C0E8 lsls r0, 24 cmp r0, 0 bne _0802E6E8 b _0802E6FC .align 2, 0 _0802E6AC: .4byte 0x00000133 _0802E6B0: .4byte gUnknown_203B304 _0802E6B4: movs r0, 0x7 bl sub_802E088 b _0802E732 _0802E6BC: ldr r0, _0802E6F4 bl sub_8011988 ldr r4, _0802E6F8 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 ldrb r0, [r0, 0x5] bl sub_8096DF8 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8096040 bl sub_8096078 bl sub_802C0E8 lsls r0, 24 cmp r0, 0 beq _0802E6FC _0802E6E8: bl sub_802BEDC movs r0, 0x1 bl sub_802E088 b _0802E732 .align 2, 0 _0802E6F4: .4byte 0x00000133 _0802E6F8: .4byte gUnknown_203B304 _0802E6FC: movs r0, 0x5 bl sub_802E088 b _0802E732 _0802E704: movs r0, 0 bl sub_80119D4 ldr r4, _0802E728 ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8095FE8 ldr r1, [r4] ldrb r0, [r0, 0x5] strb r0, [r1, 0x9] ldr r1, [r4] movs r0, 0x5 str r0, [r1, 0x4] movs r0, 0xB bl sub_802E088 b _0802E732 .align 2, 0 _0802E728: .4byte gUnknown_203B304 _0802E72C: movs r0, 0x5 bl sub_802E088 _0802E732: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802E60C thumb_func_start sub_802E73C sub_802E73C: push {lr} bl sub_802DEE0 cmp r0, 0x1 bls _0802E754 cmp r0, 0x3 bhi _0802E754 bl sub_802DF24 movs r0, 0x5 bl sub_802E088 _0802E754: pop {r0} bx r0 thumb_func_end sub_802E73C thumb_func_start sub_802E758 sub_802E758: push {lr} bl sub_802C898 cmp r0, 0x1 bls _0802E770 cmp r0, 0x3 bhi _0802E770 bl sub_802C8F4 movs r0, 0x1 bl sub_802E088 _0802E770: pop {r0} bx r0 thumb_func_end sub_802E758 thumb_func_start sub_802E774 sub_802E774: push {lr} movs r0, 0x1 bl sub_802B720 cmp r0, 0x4 bhi _0802E7CA lsls r0, 2 ldr r1, _0802E78C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E78C: .4byte _0802E790 .align 2, 0 _0802E790: .4byte _0802E7CA .4byte _0802E7CA .4byte _0802E7C0 .4byte _0802E7A4 .4byte _0802E7A4 _0802E7A4: bl sub_802B7A8 ldr r2, _0802E7BC ldr r1, [r2] strb r0, [r1, 0x9] ldr r1, [r2] movs r0, 0xA str r0, [r1, 0x4] movs r0, 0xB bl sub_802E088 b _0802E7CA .align 2, 0 _0802E7BC: .4byte gUnknown_203B304 _0802E7C0: bl sub_802B81C movs r0, 0x1 bl sub_802E088 _0802E7CA: pop {r0} bx r0 thumb_func_end sub_802E774 thumb_func_start sub_802E7D0 sub_802E7D0: push {lr} bl sub_802BA8C cmp r0, 0x1 bls _0802E7EC cmp r0, 0x3 bhi _0802E7EC bl sub_802BACC ldr r0, _0802E7F0 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_802E088 _0802E7EC: pop {r0} bx r0 .align 2, 0 _0802E7F0: .4byte gUnknown_203B304 thumb_func_end sub_802E7D0 thumb_func_start nullsub_133 nullsub_133: bx lr thumb_func_end nullsub_133 thumb_func_start sub_802E7F8 sub_802E7F8: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 bl sub_8008C54 adds r0, r4, 0 bl sub_80073B8 ldr r2, _0802E85C movs r6, 0 str r6, [sp] movs r0, 0x3 movs r1, 0 adds r3, r4, 0 bl xxx_call_draw_string bl sub_80969AC adds r2, r0, 0 movs r5, 0x7 str r5, [sp] str r4, [sp, 0x4] movs r0, 0x12 movs r1, 0xD movs r3, 0x2 bl sub_8012BC4 ldr r2, _0802E860 str r6, [sp] movs r0, 0x16 movs r1, 0xD adds r3, r4, 0 bl xxx_call_draw_string str r5, [sp] str r4, [sp, 0x4] movs r0, 0x23 movs r1, 0xD movs r2, 0x8 movs r3, 0x2 bl sub_8012BC4 adds r0, r4, 0 bl sub_80073E0 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802E85C: .4byte gUnknown_80E0318 _0802E860: .4byte gUnknown_80E0324 thumb_func_end sub_802E7F8 thumb_func_start sub_802E864 sub_802E864: push {r4,lr} ldr r4, _0802E88C movs r0, 0xB6 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0 str r1, [r0, 0x64] str r1, [r0, 0x68] str r1, [r0, 0x4] movs r0, 0 bl sub_802E934 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0802E88C: .4byte gUnknown_203B308 thumb_func_end sub_802E864 thumb_func_start sub_802E890 sub_802E890: push {lr} ldr r0, _0802E8A8 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x8 bhi _0802E900 lsls r0, 2 ldr r1, _0802E8AC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E8A8: .4byte gUnknown_203B308 _0802E8AC: .4byte _0802E8B0 .align 2, 0 _0802E8B0: .4byte _0802E8D4 .4byte _0802E8DC .4byte _0802E8E2 .4byte _0802E900 .4byte _0802E8E8 .4byte _0802E8E8 .4byte _0802E8EE .4byte _0802E8F4 .4byte _0802E8FA _0802E8D4: movs r0, 0x1 bl sub_802E934 b _0802E904 _0802E8DC: bl sub_802ECB4 b _0802E904 _0802E8E2: bl nullsub_134 b _0802E904 _0802E8E8: bl sub_802ED4C b _0802E904 _0802E8EE: bl sub_802EDBC b _0802E904 _0802E8F4: bl sub_802EEA0 b _0802E904 _0802E8FA: bl sub_802EEBC b _0802E904 _0802E900: movs r0, 0x3 b _0802E906 _0802E904: movs r0, 0 _0802E906: pop {r1} bx r1 thumb_func_end sub_802E890 thumb_func_start sub_802E90C sub_802E90C: ldr r0, _0802E914 ldr r0, [r0] ldr r0, [r0, 0x4] bx lr .align 2, 0 _0802E914: .4byte gUnknown_203B308 thumb_func_end sub_802E90C thumb_func_start sub_802E918 sub_802E918: push {r4,lr} ldr r4, _0802E930 ldr r0, [r4] cmp r0, 0 beq _0802E92A bl MemoryFree movs r0, 0 str r0, [r4] _0802E92A: pop {r4} pop {r0} bx r0 .align 2, 0 _0802E930: .4byte gUnknown_203B308 thumb_func_end sub_802E918 thumb_func_start sub_802E934 sub_802E934: push {lr} ldr r1, _0802E948 ldr r1, [r1] str r0, [r1] bl sub_802E94C bl sub_802EA58 pop {r0} bx r0 .align 2, 0 _0802E948: .4byte gUnknown_203B308 thumb_func_end sub_802E934 thumb_func_start sub_802E94C sub_802E94C: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0802E974 ldr r0, [r4] movs r6, 0x86 lsls r6, 1 adds r0, r6 bl sub_8006518 ldr r0, [r4] ldr r5, [r0] cmp r5, 0x1 beq _0802E97C cmp r5, 0x6 beq _0802E9D0 movs r3, 0 ldr r2, _0802E978 b _0802EA14 .align 2, 0 _0802E974: .4byte gUnknown_203B308 _0802E978: .4byte gUnknown_80E0330 _0802E97C: mov r12, r6 ldr r0, _0802E9C4 mov r8, r0 movs r2, 0 movs r3, 0x3 _0802E986: ldr r1, [r4] adds r1, r2 add r1, r12 mov r0, r8 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r2, 0x18 subs r3, 0x1 cmp r3, 0 bge _0802E986 bl sub_802EB34 ldr r3, _0802E9C8 ldr r2, [r3] movs r0, 0x9E lsls r0, 1 adds r2, r0 ldr r1, _0802E9CC ldm r1!, {r4-r6} stm r2!, {r4-r6} ldm r1!, {r4,r5,r7} stm r2!, {r4,r5,r7} ldr r1, [r3] adds r0, r1, r0 adds r1, 0xBC bl sub_8012CAC b _0802EA34 .align 2, 0 _0802E9C4: .4byte gUnknown_80E0330 _0802E9C8: .4byte gUnknown_203B308 _0802E9CC: .4byte gUnknown_80E0348 _0802E9D0: bl sub_802EC10 ldr r2, [r4] movs r0, 0x9E lsls r0, 1 adds r2, r0 ldr r1, _0802EA0C ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0xBC bl sub_8012CAC ldr r1, [r4] movs r4, 0xA4 lsls r4, 1 adds r0, r1, r4 strh r5, [r0] movs r5, 0xAA lsls r5, 1 adds r1, r5 ldr r0, _0802EA10 ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldm r0!, {r3-r5} stm r1!, {r3-r5} b _0802EA34 .align 2, 0 _0802EA0C: .4byte gUnknown_80E0360 _0802EA10: .4byte gUnknown_80E0378 _0802EA14: ldr r0, [r4] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r0, r1 movs r6, 0x86 lsls r6, 1 adds r0, r6 adds r1, r2, 0 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} adds r3, 0x1 cmp r3, 0x3 ble _0802EA14 _0802EA34: bl sub_8004914 ldr r0, _0802EA54 ldr r0, [r0] movs r7, 0x86 lsls r7, 1 adds r0, r7 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802EA54: .4byte gUnknown_203B308 thumb_func_end sub_802E94C thumb_func_start sub_802EA58 sub_802EA58: push {r4,lr} sub sp, 0x8 ldr r1, _0802EA74 ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0x8 bhi _0802EB2C lsls r0, 2 ldr r1, _0802EA78 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802EA74: .4byte gUnknown_203B308 _0802EA78: .4byte _0802EA7C .align 2, 0 _0802EA7C: .4byte _0802EB2C .4byte _0802EAA0 .4byte _0802EB2C .4byte _0802EB2C .4byte _0802EABE .4byte _0802EACA .4byte _0802EAD2 .4byte _0802EB00 .4byte _0802EB26 _0802EAA0: ldr r2, [r4] adds r0, r2, 0 adds r0, 0x6C adds r1, r2, 0 adds r1, 0xBC adds r3, r2, 0 adds r3, 0xFC ldr r2, [r2, 0x64] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _0802EB2C _0802EABE: movs r0, 0 movs r1, 0 movs r2, 0x4 bl sub_802C10C b _0802EB2C _0802EACA: movs r0, 0x1 bl sub_802C28C b _0802EB2C _0802EAD2: bl sub_802C39C movs r0, 0x3 bl sub_802EEDC ldr r0, _0802EAFC ldr r2, [r0] adds r0, r2, 0 adds r0, 0x6C adds r1, r2, 0 adds r1, 0xBC ldr r2, [r2, 0x68] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0802EB2C .align 2, 0 _0802EAFC: .4byte gUnknown_203B308 _0802EB00: ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8096574 ldr r1, [r4] adds r1, 0xC bl sub_803B35C ldr r0, [r4] movs r1, 0x3 str r1, [r0, 0xC] adds r0, 0x50 movs r1, 0 strb r1, [r0] ldr r0, [r4] adds r0, 0xC bl sub_802DE84 b _0802EB2C _0802EB26: movs r0, 0 bl sub_802C860 _0802EB2C: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_802EA58 thumb_func_start sub_802EB34 sub_802EB34: push {r4-r7,lr} ldr r4, _0802EBDC ldr r0, [r4] adds r0, 0xFC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] adds r2, r1, 0 adds r2, 0xBC ldr r0, _0802EBE0 str r0, [r2] adds r1, 0xC0 movs r0, 0x2 str r0, [r1] bl sub_802C4A4 lsls r0, 24 cmp r0, 0 beq _0802EB66 ldr r0, [r4] adds r0, 0xFC movs r1, 0x1 strh r1, [r0] _0802EB66: movs r5, 0x1 ldr r1, [r4] adds r2, r1, 0 adds r2, 0xC4 ldr r0, _0802EBE4 str r0, [r2] adds r1, 0xC8 movs r0, 0x3 str r0, [r1] bl sub_802C83C lsls r0, 24 cmp r0, 0 beq _0802EB88 ldr r0, [r4] adds r0, 0xFE strh r5, [r0] _0802EB88: movs r5, 0x2 ldr r2, [r4] adds r1, r2, 0 adds r1, 0xCC movs r0, 0 str r0, [r1] adds r1, 0x4 movs r0, 0x1 str r0, [r1] movs r3, 0 adds r6, r4, 0 mov r12, r2 mov r4, r12 adds r4, 0xFC adds r2, 0xC0 _0802EBA6: ldrh r0, [r4] cmp r0, 0 bne _0802EBB6 ldr r1, [r2] mov r7, r12 ldr r0, [r7, 0x64] cmp r1, r0 beq _0802EC0A _0802EBB6: adds r4, 0x2 adds r2, 0x8 adds r3, 0x1 cmp r3, r5 blt _0802EBA6 movs r3, 0 cmp r3, r5 bge _0802EC0A ldr r1, [r6] adds r0, r1, 0 adds r0, 0xFC ldrh r0, [r0] cmp r0, 0 bne _0802EBE8 adds r0, r1, 0 adds r0, 0xC0 ldr r0, [r0] str r0, [r1, 0x64] b _0802EC0A .align 2, 0 _0802EBDC: .4byte gUnknown_203B308 _0802EBE0: .4byte gUnknown_80E0390 _0802EBE4: .4byte gUnknown_80E03A0 _0802EBE8: adds r3, 0x1 cmp r3, r5 bge _0802EC0A ldr r2, [r6] lsls r0, r3, 1 adds r1, r2, 0 adds r1, 0xFC adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _0802EBE8 lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0xC0 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x64] _0802EC0A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802EB34 thumb_func_start sub_802EC10 sub_802EC10: push {r4-r7,lr} movs r6, 0 ldr r4, _0802ECA8 ldr r2, [r4] adds r1, r2, 0 adds r1, 0xBC ldr r0, _0802ECAC ldr r0, [r0] str r0, [r1] adds r1, 0x4 movs r0, 0x4 str r0, [r1] ldrb r0, [r2, 0x8] bl sub_8096574 bl sub_80968B0 lsls r0, 24 cmp r0, 0 bne _0802EC40 bl sub_80969AC cmp r0, 0x7 ble _0802EC4A _0802EC40: ldr r0, [r4] adds r0, 0xC0 movs r1, 0x1 negs r1, r1 str r1, [r0] _0802EC4A: adds r6, 0x1 ldr r4, _0802ECA8 ldr r5, [r4] lsls r1, r6, 3 adds r2, r5, 0 adds r2, 0xBC adds r3, r2, r1 ldr r0, _0802ECB0 ldr r0, [r0] str r0, [r3] adds r3, r5, 0 adds r3, 0xC0 adds r1, r3, r1 movs r0, 0x5 str r0, [r1] adds r6, 0x1 lsls r1, r6, 3 adds r2, r1 movs r0, 0 str r0, [r2] adds r1, r3, r1 movs r0, 0x1 str r0, [r1] movs r2, 0 adds r7, r4, 0 cmp r2, r6 bge _0802EC9C adds r4, r5, 0 movs r5, 0x1 negs r5, r5 adds r1, r3, 0 _0802EC88: ldr r3, [r1] cmp r3, r5 beq _0802EC94 ldr r0, [r4, 0x68] cmp r3, r0 beq _0802ECA2 _0802EC94: adds r1, 0x8 adds r2, 0x1 cmp r2, r6 blt _0802EC88 _0802EC9C: ldr r1, [r7] movs r0, 0x5 str r0, [r1, 0x68] _0802ECA2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802ECA8: .4byte gUnknown_203B308 _0802ECAC: .4byte gUnknown_80D4990 _0802ECB0: .4byte gUnknown_80D4970 thumb_func_end sub_802EC10 thumb_func_start sub_802ECB4 sub_802ECB4: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r4, _0802ECF0 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802ECE0 ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802ECE0 ldr r0, [r4] str r1, [r0, 0x64] _0802ECE0: ldr r0, [sp] cmp r0, 0x2 beq _0802ECFE cmp r0, 0x2 bgt _0802ECF4 cmp r0, 0x1 beq _0802ED3C b _0802ED42 .align 2, 0 _0802ECF0: .4byte gUnknown_203B308 _0802ECF4: cmp r0, 0x3 beq _0802ED10 cmp r0, 0x5 beq _0802ED34 b _0802ED42 _0802ECFE: bl sub_802C4A4 lsls r0, 24 cmp r0, 0 bne _0802ED22 movs r0, 0x4 bl sub_802E934 b _0802ED42 _0802ED10: bl sub_802C83C lsls r0, 24 cmp r0, 0 bne _0802ED22 movs r0, 0x8 bl sub_802E934 b _0802ED42 _0802ED22: ldr r0, _0802ED30 ldr r0, [r0] adds r0, 0x6C movs r1, 0x1 bl sub_8012EA4 b _0802ED42 .align 2, 0 _0802ED30: .4byte gUnknown_203B308 _0802ED34: movs r0, 0x2 bl sub_802E934 b _0802ED42 _0802ED3C: movs r0, 0x3 bl sub_802E934 _0802ED42: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802ECB4 thumb_func_start sub_802ED4C sub_802ED4C: push {lr} movs r0, 0x1 bl sub_802C1E4 cmp r0, 0x4 bhi _0802EDB6 lsls r0, 2 ldr r1, _0802ED64 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802ED64: .4byte _0802ED68 .align 2, 0 _0802ED68: .4byte _0802EDB6 .4byte _0802EDB6 .4byte _0802EDAC .4byte _0802ED7C .4byte _0802ED94 _0802ED7C: bl sub_802C26C ldr r1, _0802ED90 ldr r1, [r1] strb r0, [r1, 0x8] movs r0, 0x6 bl sub_802E934 b _0802EDB6 .align 2, 0 _0802ED90: .4byte gUnknown_203B308 _0802ED94: bl sub_802C26C ldr r1, _0802EDA8 ldr r1, [r1] strb r0, [r1, 0x8] movs r0, 0x7 bl sub_802E934 b _0802EDB6 .align 2, 0 _0802EDA8: .4byte gUnknown_203B308 _0802EDAC: bl sub_802C2D4 movs r0, 0x1 bl sub_802E934 _0802EDB6: pop {r0} bx r0 thumb_func_end sub_802ED4C thumb_func_start sub_802EDBC sub_802EDBC: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802C1E4 ldr r4, _0802EDFC ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802EDEC ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _0802EDEC ldr r0, [r4] str r1, [r0, 0x68] _0802EDEC: ldr r0, [sp] cmp r0, 0x4 beq _0802EE06 cmp r0, 0x4 bgt _0802EE00 cmp r0, 0x1 beq _0802EE90 b _0802EE96 .align 2, 0 _0802EDFC: .4byte gUnknown_203B308 _0802EE00: cmp r0, 0x5 beq _0802EE88 b _0802EE96 _0802EE06: ldr r0, _0802EE28 bl sub_8011988 ldr r4, _0802EE2C ldr r0, [r4] ldrb r0, [r0, 0x8] bl sub_8096574 ldrb r1, [r0] cmp r1, 0x3 beq _0802EE3C cmp r1, 0x3 bgt _0802EE30 cmp r1, 0x2 beq _0802EE36 b _0802EE5E .align 2, 0 _0802EE28: .4byte 0x00000133 _0802EE2C: .4byte gUnknown_203B308 _0802EE30: cmp r1, 0x4 beq _0802EE42 b _0802EE5E _0802EE36: ldr r0, [r4] movs r1, 0x1 b _0802EE46 _0802EE3C: ldr r0, [r4] movs r1, 0x2 b _0802EE46 _0802EE42: ldr r0, [r4] movs r1, 0x3 _0802EE46: str r1, [r0, 0x4] ldrb r0, [r0, 0x8] bl sub_80965B8 bl sub_80965F4 bl sub_802C2D4 movs r0, 0x3 bl sub_802E934 b _0802EE96 _0802EE5E: bl sub_8096A78 bl sub_8096C80 bl sub_8096D24 bl sub_802C4A4 lsls r0, 24 cmp r0, 0 beq _0802EE80 bl sub_802C2D4 movs r0, 0x1 bl sub_802E934 b _0802EE96 _0802EE80: movs r0, 0x5 bl sub_802E934 b _0802EE96 _0802EE88: movs r0, 0x7 bl sub_802E934 b _0802EE96 _0802EE90: movs r0, 0x5 bl sub_802E934 _0802EE96: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802EDBC thumb_func_start sub_802EEA0 sub_802EEA0: push {lr} bl sub_802DEE0 cmp r0, 0x1 bls _0802EEB8 cmp r0, 0x3 bhi _0802EEB8 bl sub_802DF24 movs r0, 0x5 bl sub_802E934 _0802EEB8: pop {r0} bx r0 thumb_func_end sub_802EEA0 thumb_func_start sub_802EEBC sub_802EEBC: push {lr} bl sub_802C898 cmp r0, 0x1 bls _0802EED4 cmp r0, 0x3 bhi _0802EED4 bl sub_802C8F4 movs r0, 0x1 bl sub_802E934 _0802EED4: pop {r0} bx r0 thumb_func_end sub_802EEBC thumb_func_start nullsub_134 nullsub_134: bx lr thumb_func_end nullsub_134 thumb_func_start sub_802EEDC sub_802EEDC: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 bl sub_8008C54 adds r0, r4, 0 bl sub_80073B8 ldr r2, _0802EF40 movs r6, 0 str r6, [sp] movs r0, 0x3 movs r1, 0 adds r3, r4, 0 bl xxx_call_draw_string bl sub_80969AC adds r2, r0, 0 movs r5, 0x7 str r5, [sp] str r4, [sp, 0x4] movs r0, 0x12 movs r1, 0xD movs r3, 0x2 bl sub_8012BC4 ldr r2, _0802EF44 str r6, [sp] movs r0, 0x16 movs r1, 0xD adds r3, r4, 0 bl xxx_call_draw_string str r5, [sp] str r4, [sp, 0x4] movs r0, 0x23 movs r1, 0xD movs r2, 0x8 movs r3, 0x2 bl sub_8012BC4 adds r0, r4, 0 bl sub_80073E0 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802EF40: .4byte gUnknown_80E03AC _0802EF44: .4byte gUnknown_80E03B8 thumb_func_end sub_802EEDC thumb_func_start sub_802EF48 sub_802EF48: push {r4,lr} ldr r4, _0802EF68 movs r0, 0xA8 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r0, 0 bl sub_802EFEC movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0802EF68: .4byte gUnknown_203B30C thumb_func_end sub_802EF48 thumb_func_start sub_802EF6C sub_802EF6C: push {lr} ldr r0, _0802EF84 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x5 bhi _0802EFBA lsls r0, 2 ldr r1, _0802EF88 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802EF84: .4byte gUnknown_203B30C _0802EF88: .4byte _0802EF8C .align 2, 0 _0802EF8C: .4byte _0802EFA4 .4byte _0802EFA4 .4byte _0802EFAA .4byte _0802EFB0 .4byte _0802EFB6 .4byte _0802EFBA _0802EFA4: bl sub_802F148 b _0802EFBE _0802EFAA: bl sub_802F184 b _0802EFBE _0802EFB0: bl sub_802F1E8 b _0802EFBE _0802EFB6: movs r0, 0x3 b _0802EFC0 _0802EFBA: movs r0, 0x2 b _0802EFC0 _0802EFBE: movs r0, 0 _0802EFC0: pop {r1} bx r1 thumb_func_end sub_802EF6C thumb_func_start sub_802EFC4 sub_802EFC4: ldr r0, _0802EFCC ldr r0, [r0] ldrb r0, [r0, 0x4] bx lr .align 2, 0 _0802EFCC: .4byte gUnknown_203B30C thumb_func_end sub_802EFC4 thumb_func_start sub_802EFD0 sub_802EFD0: push {r4,lr} ldr r4, _0802EFE8 ldr r0, [r4] cmp r0, 0 beq _0802EFE2 bl MemoryFree movs r0, 0 str r0, [r4] _0802EFE2: pop {r4} pop {r0} bx r0 .align 2, 0 _0802EFE8: .4byte gUnknown_203B30C thumb_func_end sub_802EFD0 thumb_func_start sub_802EFEC sub_802EFEC: push {lr} ldr r1, _0802F000 ldr r1, [r1] str r0, [r1] bl sub_802F004 bl sub_802F088 pop {r0} bx r0 .align 2, 0 _0802F000: .4byte gUnknown_203B30C thumb_func_end sub_802EFEC thumb_func_start sub_802F004 sub_802F004: push {r4-r7,lr} ldr r4, _0802F03C ldr r0, [r4] adds r0, 0xF0 bl sub_8006518 ldr r0, [r4] ldr r0, [r0] cmp r0, 0x2 bne _0802F044 bl sub_802F108 ldr r2, [r4] movs r0, 0x90 lsls r0, 1 adds r2, r0 ldr r1, _0802F040 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0xB0 bl sub_8012CAC b _0802F066 .align 2, 0 _0802F03C: .4byte gUnknown_203B30C _0802F040: .4byte gUnknown_80E03F4 _0802F044: mov r12, r4 ldr r4, _0802F080 movs r2, 0 movs r3, 0x3 _0802F04C: mov r6, r12 ldr r1, [r6] adds r1, r2 adds r1, 0xF0 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r2, 0x18 subs r3, 0x1 cmp r3, 0 bge _0802F04C _0802F066: bl sub_8004914 ldr r0, _0802F084 ldr r0, [r0] adds r0, 0xF0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802F080: .4byte gUnknown_80E03C4 _0802F084: .4byte gUnknown_203B30C thumb_func_end sub_802F004 thumb_func_start sub_802F088 sub_802F088: push {r4-r6,lr} sub sp, 0x8 ldr r6, _0802F0A0 ldr r0, [r6] ldr r5, [r0] cmp r5, 0x1 beq _0802F0B6 cmp r5, 0x1 bgt _0802F0A4 cmp r5, 0 beq _0802F0AE b _0802F100 .align 2, 0 _0802F0A0: .4byte gUnknown_203B30C _0802F0A4: cmp r5, 0x2 beq _0802F0BE cmp r5, 0x3 beq _0802F0DA b _0802F100 _0802F0AE: movs r0, 0 bl sub_802CDD4 b _0802F100 _0802F0B6: movs r0, 0x1 bl sub_802CED8 b _0802F100 _0802F0BE: bl sub_802CFD0 ldr r1, [r6] adds r0, r1, 0 adds r0, 0x60 adds r1, 0xB0 movs r2, 0x3 str r2, [sp] str r5, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0802F100 _0802F0DA: ldrb r0, [r0, 0x4] bl sub_803B344 adds r4, r0, 0 ldr r1, [r6] adds r1, 0x8 bl sub_803B35C ldr r0, [r6] str r5, [r0, 0x8] adds r0, 0x4C movs r1, 0 strb r1, [r0] ldr r0, [r6] ldr r1, [r4, 0x18] str r1, [r0, 0x58] adds r0, 0x8 bl sub_802DE84 _0802F100: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_802F088 thumb_func_start sub_802F108 sub_802F108: ldr r0, _0802F13C ldr r0, [r0] mov r12, r0 movs r3, 0 mov r1, r12 adds r1, 0xB0 ldr r0, _0802F140 str r0, [r1] adds r1, 0x4 movs r0, 0x2 str r0, [r1] movs r2, 0x1 adds r1, 0x4 ldr r0, _0802F144 ldr r0, [r0] str r0, [r1] adds r1, 0x4 movs r0, 0x3 str r0, [r1] mov r0, r12 adds r0, 0xC0 str r3, [r0] adds r0, 0x4 str r2, [r0] bx lr .align 2, 0 _0802F13C: .4byte gUnknown_203B30C _0802F140: .4byte gUnknown_80E040C _0802F144: .4byte gUnknown_80D4970 thumb_func_end sub_802F108 thumb_func_start sub_802F148 sub_802F148: push {lr} movs r0, 0x1 bl sub_802CE5C cmp r0, 0x2 beq _0802F174 cmp r0, 0x2 bcc _0802F17E cmp r0, 0x3 bne _0802F17E bl sub_802CEBC ldr r1, _0802F170 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x2 bl sub_802EFEC b _0802F17E .align 2, 0 _0802F170: .4byte gUnknown_203B30C _0802F174: bl sub_802CF14 movs r0, 0x5 bl sub_802EFEC _0802F17E: pop {r0} bx r0 thumb_func_end sub_802F148 thumb_func_start sub_802F184 sub_802F184: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_802CE5C ldr r4, _0802F1BC ldr r0, [r4] adds r0, 0x60 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0802F1AA ldr r0, [r4] adds r0, 0x60 mov r1, sp bl sub_8013114 _0802F1AA: ldr r0, [sp] cmp r0, 0x2 beq _0802F1C6 cmp r0, 0x2 bgt _0802F1C0 cmp r0, 0x1 beq _0802F1DA b _0802F1E0 .align 2, 0 _0802F1BC: .4byte gUnknown_203B30C _0802F1C0: cmp r0, 0x3 beq _0802F1D2 b _0802F1E0 _0802F1C6: bl sub_802CF14 movs r0, 0x4 bl sub_802EFEC b _0802F1E0 _0802F1D2: movs r0, 0x3 bl sub_802EFEC b _0802F1E0 _0802F1DA: movs r0, 0x1 bl sub_802EFEC _0802F1E0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802F184 thumb_func_start sub_802F1E8 sub_802F1E8: push {lr} bl sub_802DEE0 cmp r0, 0x1 bls _0802F200 cmp r0, 0x3 bhi _0802F200 bl sub_802DF24 movs r0, 0x1 bl sub_802EFEC _0802F200: pop {r0} bx r0 thumb_func_end sub_802F1E8 thumb_func_start sub_802F204 sub_802F204: push {r4-r6,lr} adds r6, r0, 0 lsls r4, r1, 24 lsrs r4, 24 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _0802F28C movs r0, 0x84 movs r1, 0x8 bl MemoryAlloc str r0, [r5] str r6, [r0, 0x10] movs r6, 0 str r6, [r0, 0xC] strb r4, [r0, 0x8] ldr r1, [r5] ldr r0, _0802F290 ldr r1, [r1, 0x10] bl strcpy ldr r4, _0802F294 bl sub_808D33C adds r1, r0, 0 adds r0, r4, 0 bl sub_808DA34 ldr r0, [r5] ldr r0, [r0, 0x10] movs r1, 0x14 ldrsh r0, [r0, r1] bl sub_808DDD0 ldr r1, [r5] str r0, [r1, 0x14] str r6, [r1, 0x18] adds r1, 0x20 strb r6, [r1] ldr r0, [r5] adds r0, 0x21 strb r6, [r0] ldr r0, [r5] adds r0, 0x22 strb r6, [r0] ldr r5, [r5] movs r0, 0x2 strh r0, [r5, 0x1C] movs r0, 0x8 strh r0, [r5, 0x1E] ldr r0, [r5, 0x14] cmp r0, 0 beq _0802F27C ldr r0, [r0, 0x4] str r0, [r5, 0x18] _0802F27C: movs r0, 0 bl sub_802F2E8 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0802F28C: .4byte gUnknown_203B310 _0802F290: .4byte gUnknown_202E5D8 _0802F294: .4byte gUnknown_202DF98 thumb_func_end sub_802F204 thumb_func_start sub_802F298 sub_802F298: push {lr} ldr r0, _0802F2AC ldr r0, [r0] ldr r0, [r0] cmp r0, 0x5 beq _0802F2B0 cmp r0, 0x9 bne _0802F2B6 movs r0, 0x3 b _0802F2BC .align 2, 0 _0802F2AC: .4byte gUnknown_203B310 _0802F2B0: bl sub_802F6FC b _0802F2BA _0802F2B6: bl sub_802F718 _0802F2BA: movs r0, 0 _0802F2BC: pop {r1} bx r1 thumb_func_end sub_802F298 thumb_func_start sub_802F2C0 sub_802F2C0: push {r4,lr} ldr r4, _0802F2E4 ldr r0, [r4] cmp r0, 0 beq _0802F2DE ldr r0, [r0, 0x14] cmp r0, 0 beq _0802F2D4 bl CloseFile _0802F2D4: ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802F2DE: pop {r4} pop {r0} bx r0 .align 2, 0 _0802F2E4: .4byte gUnknown_203B310 thumb_func_end sub_802F2C0 thumb_func_start sub_802F2E8 sub_802F2E8: push {lr} ldr r1, _0802F2FC ldr r1, [r1] str r0, [r1] bl sub_802F300 bl sub_802F358 pop {r0} bx r0 .align 2, 0 _0802F2FC: .4byte gUnknown_203B310 thumb_func_end sub_802F2E8 thumb_func_start sub_802F300 sub_802F300: push {r4-r7,lr} ldr r4, _0802F350 ldr r1, [r4] ldr r0, [r1] cmp r0, 0 bne _0802F348 adds r0, r1, 0 adds r0, 0x24 bl sub_8006518 mov r12, r4 ldr r4, _0802F354 movs r3, 0 movs r2, 0x3 _0802F31C: mov r0, r12 ldr r1, [r0] adds r1, r3 adds r1, 0x24 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0802F31C bl sub_8004914 ldr r0, _0802F350 ldr r0, [r0] adds r0, 0x24 movs r1, 0x1 movs r2, 0x1 bl sub_800641C _0802F348: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802F350: .4byte gUnknown_203B310 _0802F354: .4byte gUnknown_80E041C thumb_func_end sub_802F300 thumb_func_start sub_802F358 sub_802F358: push {r4-r6,lr} sub sp, 0x10 ldr r1, _0802F374 ldr r0, [r1] ldr r0, [r0] adds r6, r1, 0 cmp r0, 0x9 bls _0802F36A b _0802F6E4 _0802F36A: lsls r0, 2 ldr r1, _0802F378 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802F374: .4byte gUnknown_203B310 _0802F378: .4byte _0802F37C .align 2, 0 _0802F37C: .4byte _0802F3A4 .4byte _0802F3E8 .4byte _0802F444 .4byte _0802F494 .4byte _0802F524 .4byte _0802F5CC .4byte _0802F614 .4byte _0802F630 .4byte _0802F6A4 .4byte _0802F6E4 _0802F3A4: ldr r2, [r6] ldr r0, [r2, 0x10] ldr r1, [r0, 0x18] cmp r1, 0 bne _0802F3B6 movs r0, 0x2 bl sub_802F2E8 b _0802F6E4 _0802F3B6: ldr r0, _0802F3D4 str r1, [r0] ldrb r0, [r2, 0x8] cmp r0, 0 beq _0802F3E0 ldr r0, _0802F3D8 adds r2, 0x14 ldr r3, _0802F3DC movs r1, 0 bl sub_80141B4 ldr r1, [r6] movs r0, 0x1 str r0, [r1, 0x4] b _0802F6E4 .align 2, 0 _0802F3D4: .4byte gUnknown_202DE30 _0802F3D8: .4byte gUnknown_80E0434 _0802F3DC: .4byte 0x0000010d _0802F3E0: movs r0, 0x1 bl sub_802F2E8 b _0802F6E4 _0802F3E8: movs r0, 0xCB bl sub_8011988 ldr r0, _0802F414 ldr r0, [r0] ldr r0, [r0, 0x10] ldr r0, [r0, 0x18] bl sub_80913A0 movs r0, 0 bl sub_808D544 cmp r0, 0x1 bgt _0802F420 ldr r0, _0802F418 ldr r3, _0802F41C movs r1, 0 movs r2, 0 bl sub_80141B4 b _0802F42C .align 2, 0 _0802F414: .4byte gUnknown_203B310 _0802F418: .4byte gUnknown_80E045C _0802F41C: .4byte 0x00000101 _0802F420: ldr r0, _0802F438 ldr r3, _0802F43C movs r1, 0 movs r2, 0 bl sub_80141B4 _0802F42C: ldr r0, _0802F440 ldr r1, [r0] movs r0, 0x2 str r0, [r1, 0x4] b _0802F6E4 .align 2, 0 _0802F438: .4byte gUnknown_80E0484 _0802F43C: .4byte 0x00000101 _0802F440: .4byte gUnknown_203B310 _0802F444: ldr r0, [r6] ldr r0, [r0, 0x10] adds r1, r0, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0 bne _0802F45A movs r0, 0x4 bl sub_802F2E8 b _0802F6E4 _0802F45A: ldr r0, _0802F480 ldrb r1, [r1] movs r2, 0 bl sub_8092578 ldr r2, [r6] ldrb r0, [r2, 0x8] cmp r0, 0 beq _0802F48C ldr r0, _0802F484 adds r2, 0x14 ldr r3, _0802F488 movs r1, 0 bl sub_80141B4 ldr r1, [r6] movs r0, 0x3 str r0, [r1, 0x4] b _0802F6E4 .align 2, 0 _0802F480: .4byte gUnknown_202E628 _0802F484: .4byte gUnknown_80E04B4 _0802F488: .4byte 0x0000010d _0802F48C: movs r0, 0x3 bl sub_802F2E8 b _0802F6E4 _0802F494: ldr r4, _0802F4B4 ldr r0, [r4] ldr r0, [r0, 0x10] adds r0, 0x20 ldrb r0, [r0] bl sub_8092600 lsls r0, 24 cmp r0, 0 beq _0802F4BC movs r0, 0xFA lsls r0, 2 bl sub_80913A0 ldr r0, _0802F4B8 b _0802F4DA .align 2, 0 _0802F4B4: .4byte gUnknown_203B310 _0802F4B8: .4byte gUnknown_80E04F4 _0802F4BC: movs r0, 0 bl sub_808D544 cmp r0, 0x1 bgt _0802F4F0 ldr r0, [r4] ldr r0, [r0, 0x10] adds r0, 0x20 ldrb r0, [r0] bl sub_80925EC movs r0, 0xCE bl sub_8011988 ldr r0, _0802F4E8 _0802F4DA: ldr r3, _0802F4EC movs r1, 0 movs r2, 0 bl sub_80141B4 b _0802F50E .align 2, 0 _0802F4E8: .4byte gUnknown_80E05C0 _0802F4EC: .4byte 0x00000101 _0802F4F0: ldr r0, [r4] ldr r0, [r0, 0x10] adds r0, 0x20 ldrb r0, [r0] bl sub_80925EC movs r0, 0xCE bl sub_8011988 ldr r0, _0802F518 ldr r3, _0802F51C movs r1, 0 movs r2, 0 bl sub_80141B4 _0802F50E: ldr r0, _0802F520 ldr r1, [r0] movs r0, 0x4 str r0, [r1, 0x4] b _0802F6E4 .align 2, 0 _0802F518: .4byte gUnknown_80E05FC _0802F51C: .4byte 0x00000101 _0802F520: .4byte gUnknown_203B310 _0802F524: ldr r0, [r6] ldr r0, [r0, 0x10] ldrb r2, [r0, 0x1C] cmp r2, 0 beq _0802F628 ldr r0, [r0, 0x18] cmp r0, 0 bne _0802F620 lsls r2, 16 ldr r1, _0802F564 ldr r0, [sp, 0xC] ands r0, r1 orrs r0, r2 str r0, [sp, 0xC] lsrs r0, 16 lsls r0, 24 lsrs r0, 24 bl sub_8090A60 lsls r0, 24 cmp r0, 0 beq _0802F56C ldr r0, [r6] ldr r0, [r0, 0x10] ldrb r1, [r0, 0x1F] lsls r1, 8 ldr r2, _0802F568 ldr r0, [sp, 0xC] ands r0, r2 orrs r0, r1 b _0802F572 .align 2, 0 _0802F564: .4byte 0xff00ffff _0802F568: .4byte 0xffff00ff _0802F56C: ldr r1, _0802F5B4 ldr r0, [sp, 0xC] ands r0, r1 _0802F572: str r0, [sp, 0xC] ldr r1, _0802F5B8 ldr r0, [sp, 0xC] ands r0, r1 movs r2, 0x1 orrs r0, r2 str r0, [sp, 0xC] movs r1, 0 str r1, [sp] mov r0, sp strb r1, [r0, 0x4] strb r2, [r0, 0x8] ldr r0, _0802F5BC add r1, sp, 0xC mov r2, sp bl sub_8090E14 ldr r4, _0802F5C0 ldr r2, [r4] ldrb r0, [r2, 0x8] cmp r0, 0 beq _0802F620 ldr r0, _0802F5C4 adds r2, 0x14 ldr r3, _0802F5C8 movs r1, 0 bl sub_80141B4 ldr r1, [r4] movs r0, 0x5 str r0, [r1, 0x4] b _0802F6E4 .align 2, 0 _0802F5B4: .4byte 0xffff00ff _0802F5B8: .4byte 0xffffff00 _0802F5BC: .4byte gUnknown_202DEA8 _0802F5C0: .4byte gUnknown_203B310 _0802F5C4: .4byte gUnknown_80E0640 _0802F5C8: .4byte 0x0000010d _0802F5CC: ldr r0, [r6] ldr r2, [r0, 0x10] adds r1, r2, 0 adds r1, 0x1C ldr r3, [r0, 0xC] adds r1, r3 ldrb r0, [r1] cmp r0, 0 bne _0802F5E6 movs r0, 0x6 bl sub_802F2E8 b _0802F6E4 _0802F5E6: cmp r3, 0 bne _0802F5FC ldr r0, [r2, 0x18] cmp r0, 0 bne _0802F5FC ldrb r1, [r2, 0x1C] ldrb r2, [r2, 0x1F] movs r0, 0 bl sub_801B60C b _0802F6E4 _0802F5FC: ldr r1, [r6] ldr r2, [r1, 0x10] adds r0, r2, 0 adds r0, 0x1C ldr r1, [r1, 0xC] adds r0, r1 ldrb r1, [r0] ldrb r2, [r2, 0x1F] movs r0, 0x1 bl sub_801B60C b _0802F6E4 _0802F614: ldr r1, [r6] ldr r0, [r1, 0xC] adds r0, 0x1 str r0, [r1, 0xC] cmp r0, 0x2 bgt _0802F628 _0802F620: movs r0, 0x5 bl sub_802F2E8 b _0802F6E4 _0802F628: movs r0, 0x7 bl sub_802F2E8 b _0802F6E4 _0802F630: adds r5, r6, 0 ldr r0, [r5] ldr r0, [r0, 0x10] ldr r0, [r0, 0x24] cmp r0, 0 bne _0802F644 movs r0, 0x9 bl sub_802F2E8 b _0802F6E4 _0802F644: bl sub_8092178 ldr r1, [r5] strb r0, [r1, 0x9] ldr r0, [r5] ldr r0, [r0, 0x10] ldr r0, [r0, 0x24] bl sub_8092158 movs r0, 0xCB bl sub_8011988 ldr r4, [r5] bl sub_8092178 ldrb r1, [r4, 0x9] lsls r0, 24 lsrs r0, 24 cmp r1, r0 beq _0802F672 ldr r1, [r5] movs r0, 0x8 b _0802F676 _0802F672: ldr r1, [r6] movs r0, 0x9 _0802F676: str r0, [r1, 0x4] ldr r1, _0802F694 ldr r0, _0802F698 ldr r0, [r0] ldr r0, [r0, 0x10] ldr r0, [r0, 0x24] str r0, [r1] ldr r0, _0802F69C ldr r3, _0802F6A0 movs r1, 0 movs r2, 0 bl sub_80141B4 b _0802F6E4 .align 2, 0 _0802F694: .4byte gUnknown_202DE30 _0802F698: .4byte gUnknown_203B310 _0802F69C: .4byte gUnknown_80E0670 _0802F6A0: .4byte 0x00000101 _0802F6A4: movs r0, 0xC9 bl sub_8011988 ldr r0, _0802F6EC ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] ldrb r0, [r1, 0x9] bl sub_80921A8 adds r1, r0, 0 ldr r4, _0802F6F0 adds r0, r4, 0 bl strcpy bl sub_8092178 lsls r0, 24 lsrs r0, 24 bl sub_80921A8 adds r1, r0, 0 adds r4, 0x50 adds r0, r4, 0 bl strcpy ldr r0, _0802F6F4 ldr r3, _0802F6F8 movs r1, 0 movs r2, 0 bl sub_80141B4 _0802F6E4: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802F6EC: .4byte gUnknown_203B310 _0802F6F0: .4byte gUnknown_202E038 _0802F6F4: .4byte gUnknown_80E06A8 _0802F6F8: .4byte 0x00000101 thumb_func_end sub_802F358 thumb_func_start sub_802F6FC sub_802F6FC: push {lr} bl sub_801B6AC cmp r0, 0x1 bls _0802F714 cmp r0, 0x3 bhi _0802F714 bl sub_801B72C movs r0, 0x6 bl sub_802F2E8 _0802F714: pop {r0} bx r0 thumb_func_end sub_802F6FC thumb_func_start sub_802F718 sub_802F718: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802F730 ldr r0, _0802F738 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_802F2E8 _0802F730: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0802F738: .4byte gUnknown_203B310 thumb_func_end sub_802F718 thumb_func_start sub_802F73C sub_802F73C: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r7, r1, 0 mov r8, r2 lsls r3, 24 lsrs r6, r3, 24 bl sub_802FCF0 lsls r0, 24 cmp r0, 0 beq _0802F75A movs r0, 0 b _0802F836 _0802F75A: ldr r4, _0802F7AC ldr r0, [r4] cmp r0, 0 bne _0802F76E movs r0, 0xAE lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] _0802F76E: ldr r0, [r4] adds r0, 0xB8 strb r6, [r0] ldr r0, [r4] adds r1, r0, 0 adds r1, 0xF0 str r5, [r1] adds r2, r0, 0 adds r2, 0xF4 lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0xF8 adds r1, r0, r1 str r1, [r2] adds r0, 0xF8 bl sub_8006518 cmp r6, 0 beq _0802F7B4 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xF0 ldr r2, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0xF8 ldr r0, _0802F7B0 b _0802F7C8 .align 2, 0 _0802F7AC: .4byte gUnknown_203B314 _0802F7B0: .4byte gUnknown_80E072C _0802F7B4: ldr r1, [r4] adds r0, r1, 0 adds r0, 0xF0 ldr r2, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0xF8 ldr r0, _0802F840 _0802F7C8: ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r4, _0802F844 ldr r2, [r4] adds r0, r2, 0 adds r0, 0xF4 ldr r1, [r0] movs r3, 0xAC lsls r3, 1 adds r0, r2, r3 str r0, [r1, 0x14] cmp r7, 0 beq _0802F7FC adds r0, r2, 0 adds r0, 0xF0 ldr r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 subs r3, 0x58 adds r1, r2, r3 adds r1, r0 ldr r0, [r7] str r0, [r1] _0802F7FC: ldr r0, [r4] adds r0, 0xF4 ldr r0, [r0] mov r1, r8 bl sub_8012D08 bl sub_8004914 ldr r0, [r4] adds r0, 0xF8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r4] adds r4, 0xBC bl sub_802FBF4 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r5, 0 bl sub_8013818 bl sub_802F9C0 bl sub_802FA50 movs r0, 0x1 _0802F836: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802F840: .4byte gUnknown_80E0714 _0802F844: .4byte gUnknown_203B314 thumb_func_end sub_802F73C thumb_func_start sub_802F848 sub_802F848: push {r4,r5,lr} lsls r0, 16 asrs r4, r0, 16 movs r3, 0 ldr r1, _0802F858 ldr r0, [r1] b _0802F884 .align 2, 0 _0802F858: .4byte gUnknown_203B314 _0802F85C: ldr r2, [r1] lsls r0, r3, 1 adds r0, r2, r0 movs r5, 0 ldrsh r0, [r0, r5] cmp r0, r4 bne _0802F880 adds r0, r2, 0 adds r0, 0xBC adds r1, r3, 0 bl sub_8013878 bl sub_802F9C0 bl sub_802FA50 movs r0, 0x1 b _0802F89A _0802F880: adds r3, 0x1 adds r0, r2, 0 _0802F884: adds r0, 0xDE movs r2, 0 ldrsh r0, [r0, r2] cmp r3, r0 blt _0802F85C ldr r0, [r1] adds r0, 0xBC movs r1, 0 bl sub_8013878 movs r0, 0 _0802F89A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_802F848 thumb_func_start sub_802F8A0 sub_802F8A0: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _0802F8BC ldr r0, _0802F8B8 ldr r0, [r0] adds r0, 0xBC bl sub_8013660 movs r0, 0 b _0802F904 .align 2, 0 _0802F8B8: .4byte gUnknown_203B314 _0802F8BC: ldr r4, _0802F8D8 ldr r0, [r4] adds r0, 0xBC bl GetKeyPress cmp r0, 0x1 beq _0802F8DC cmp r0, 0x2 bne _0802F8E6 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0802F904 .align 2, 0 _0802F8D8: .4byte gUnknown_203B314 _0802F8DC: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _0802F904 _0802F8E6: ldr r0, [r4] adds r0, 0xBC movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802F8FA movs r0, 0 b _0802F904 _0802F8FA: bl sub_802F9C0 bl sub_802FA50 movs r0, 0x1 _0802F904: pop {r4} pop {r1} bx r1 thumb_func_end sub_802F8A0 thumb_func_start sub_802F90C sub_802F90C: ldr r0, _0802F934 ldr r2, [r0] adds r0, r2, 0 adds r0, 0xDA movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 adds r1, r2, 0 adds r1, 0xD4 movs r3, 0 ldrsh r1, [r1, r3] adds r0, r1 lsls r0, 1 adds r0, r2, r0 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0802F934: .4byte gUnknown_203B314 thumb_func_end sub_802F90C thumb_func_start sub_802F938 sub_802F938: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_802FBF4 adds r1, r0, 0 ldr r5, _0802F970 ldr r0, [r5] adds r2, r0, 0 adds r2, 0xDE strh r1, [r2] adds r0, 0xBC bl sub_8013984 bl sub_802F9C0 bl sub_802FA50 cmp r4, 0 beq _0802F96A ldr r0, [r5] adds r0, 0xBC bl AddMenuCursorSprite _0802F96A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802F970: .4byte gUnknown_203B314 thumb_func_end sub_802F938 thumb_func_start sub_802F974 sub_802F974: push {r4,r5,lr} ldr r4, _0802F9B8 ldr r2, [r4] cmp r2, 0 beq _0802F9B2 adds r0, r2, 0 adds r0, 0xF0 ldr r0, [r0] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0xF8 ldr r0, _0802F9BC ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0xF8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802F9B2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802F9B8: .4byte gUnknown_203B314 _0802F9BC: .4byte gUnknown_80E06FC thumb_func_end sub_802F974 thumb_func_start sub_802F9C0 sub_802F9C0: push {r4,r5,lr} ldr r4, _0802FA44 ldr r0, [r4] movs r1, 0xAC lsls r1, 1 adds r0, r1 movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] ldr r3, _0802FA48 adds r0, r3 strb r2, [r0] ldr r0, [r4] adds r3, 0x1 adds r1, r0, r3 movs r0, 0x8 strb r0, [r1] ldr r0, [r4] ldr r1, _0802FA4C adds r0, r1 strb r2, [r0] ldr r0, [r4] adds r0, 0xD6 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r3, [r4] adds r5, r3, 0 adds r5, 0xF0 ldr r2, [r5] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, r3, r1 movs r2, 0x83 lsls r2, 1 adds r1, r2 asrs r2, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r3, r0 adds r2, 0x2 movs r0, 0x84 lsls r0, 1 adds r3, r0 strh r2, [r3] bl sub_8004914 ldr r0, [r4] adds r0, 0xF8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802FA44: .4byte gUnknown_203B314 _0802FA48: .4byte 0x00000159 _0802FA4C: .4byte 0x0000015b thumb_func_end sub_802F9C0 thumb_func_start sub_802FA50 sub_802FA50: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r4, _0802FB1C ldr r0, [r4] adds r0, 0xF0 ldr r0, [r0] bl sub_8008C54 ldr r0, [r4] adds r0, 0xF0 ldr r0, [r0] bl sub_80073B8 ldr r2, _0802FB20 ldr r0, [r4] adds r0, 0xF0 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r3, [r4] movs r1, 0xAD lsls r1, 1 adds r0, r3, r1 ldrb r0, [r0] lsls r0, 3 adds r0, 0x4 adds r1, r3, 0 adds r1, 0xDA movs r5, 0 ldrsh r2, [r1, r5] adds r2, 0x1 movs r1, 0x7 str r1, [sp] adds r1, r3, 0 adds r1, 0xF0 ldr r1, [r1] str r1, [sp, 0x4] movs r1, 0 movs r3, 0x2 bl sub_8012BC4 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xB8 ldrb r0, [r0] cmp r0, 0 beq _0802FB78 movs r6, 0 adds r0, r1, 0 adds r0, 0xD6 movs r1, 0 ldrsh r0, [r0, r1] cmp r6, r0 blt _0802FACA b _0802FBD6 _0802FACA: mov r8, r4 _0802FACC: mov r2, r8 ldr r0, [r2] adds r0, 0xBC adds r1, r6, 0 bl sub_8013800 adds r5, r0, 0 mov r3, r8 ldr r2, [r3] adds r0, r2, 0 adds r0, 0xDA movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 adds r1, r0, r6 lsls r0, r1, 1 adds r0, r2, r0 movs r3, 0 ldrsh r7, [r0, r3] adds r0, r2, 0 adds r0, 0x5C adds r0, r1 ldrb r4, [r0] cmp r4, 0 beq _0802FB28 adds r0, r2, 0 adds r0, 0xF0 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0xA adds r1, r5, 0 ldr r2, _0802FB24 bl xxx_call_draw_string b _0802FB46 .align 2, 0 _0802FB1C: .4byte gUnknown_203B314 _0802FB20: .4byte gUnknown_80E0744 _0802FB24: .4byte gUnknown_80E0750 _0802FB28: adds r0, r2, 0 adds r0, 0x8A adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0802FB46 adds r0, r2, 0 adds r0, 0xF0 ldr r3, [r0] str r4, [sp] movs r0, 0xA adds r1, r5, 0 ldr r2, _0802FB74 bl xxx_call_draw_string _0802FB46: adds r0, r7, 0 bl sub_80974A0 adds r2, r0, 0 mov r1, r8 ldr r0, [r1] adds r0, 0xF0 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x18 adds r1, r5, 0 bl xxx_call_draw_string adds r6, 0x1 mov r2, r8 ldr r0, [r2] adds r0, 0xD6 movs r3, 0 ldrsh r0, [r0, r3] cmp r6, r0 blt _0802FACC b _0802FBD6 .align 2, 0 _0802FB74: .4byte gUnknown_80E0754 _0802FB78: movs r6, 0 adds r0, r1, 0 adds r0, 0xD6 movs r5, 0 ldrsh r0, [r0, r5] cmp r6, r0 bge _0802FBD6 adds r5, r4, 0 _0802FB88: ldr r0, [r5] adds r0, 0xBC adds r1, r6, 0 bl sub_8013800 adds r4, r0, 0 ldr r1, [r5] adds r0, r1, 0 adds r0, 0xDA movs r3, 0 ldrsh r2, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r2 adds r0, r6 lsls r0, 1 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] bl sub_80974A0 adds r2, r0, 0 ldr r0, [r5] adds r0, 0xF0 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r4, 0 bl xxx_call_draw_string adds r6, 0x1 ldr r0, [r5] adds r0, 0xD6 movs r3, 0 ldrsh r0, [r0, r3] cmp r6, r0 blt _0802FB88 _0802FBD6: ldr r0, _0802FBF0 ldr r0, [r0] adds r0, 0xF0 ldr r0, [r0] bl sub_80073E0 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802FBF0: .4byte gUnknown_203B314 thumb_func_end sub_802FA50 thumb_func_start sub_802FBF4 sub_802FBF4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r0, 0 mov r8, r0 movs r1, 0 str r1, [sp] _0802FC08: ldr r1, [sp] lsls r0, r1, 16 asrs r4, r0, 16 mov r10, r4 adds r0, r4, 0 bl sub_80A27CC lsls r0, 24 cmp r0, 0 beq _0802FCCE cmp r4, 0x13 beq _0802FCCE cmp r4, 0x1D beq _0802FCCE ldr r7, _0802FC88 ldr r1, [r7] mov r0, r8 lsls r6, r0, 1 adds r0, r1, r6 strh r4, [r0] adds r1, 0x5C add r1, r8 movs r0, 0 strb r0, [r1] ldr r0, [r7] adds r0, 0x8A add r0, r8 movs r1, 0 strb r1, [r0] ldr r0, [r7] adds r0, 0xB8 ldrb r0, [r0] cmp r0, 0 beq _0802FCCA cmp r4, 0xD beq _0802FCCA adds r0, r4, 0 bl sub_80A270C lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r5, 0 cmp r4, 0x1E bgt _0802FCA8 adds r0, r4, 0 bl sub_8097384 lsls r0, 24 cmp r0, 0 bne _0802FCA6 cmp r4, 0x6 bne _0802FC8C movs r0, 0x13 bl sub_8097384 lsls r0, 24 cmp r0, 0 beq _0802FCA8 ldr r0, [r7] adds r0, r6 movs r1, 0x13 b _0802FCA4 .align 2, 0 _0802FC88: .4byte gUnknown_203B314 _0802FC8C: mov r0, r10 cmp r0, 0xA bne _0802FCA8 movs r0, 0x1D bl sub_8097384 lsls r0, 24 cmp r0, 0 beq _0802FCA8 ldr r0, [r7] adds r0, r6 movs r1, 0x1D _0802FCA4: strh r1, [r0] _0802FCA6: movs r5, 0x1 _0802FCA8: ldr r4, _0802FCEC ldr r0, [r4] adds r0, 0x5C add r0, r8 strb r5, [r0] cmp r5, 0 bne _0802FCCA mov r0, r9 bl sub_80969D0 cmp r0, 0 ble _0802FCCA ldr r0, [r4] adds r0, 0x8A add r0, r8 movs r1, 0x1 strb r1, [r0] _0802FCCA: movs r1, 0x1 add r8, r1 _0802FCCE: ldr r0, [sp] adds r0, 0x1 str r0, [sp] cmp r0, 0x2D ble _0802FC08 mov r0, r8 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802FCEC: .4byte gUnknown_203B314 thumb_func_end sub_802FBF4 thumb_func_start sub_802FCF0 sub_802FCF0: push {r4,lr} movs r4, 0 _0802FCF4: lsls r0, r4, 16 asrs r0, 16 bl sub_80A27CC lsls r0, 24 cmp r0, 0 beq _0802FD06 movs r0, 0 b _0802FD0E _0802FD06: adds r4, 0x1 cmp r4, 0x2D ble _0802FCF4 movs r0, 0x1 _0802FD0E: pop {r4} pop {r1} bx r1 thumb_func_end sub_802FCF0 thumb_func_start sub_802FD14 sub_802FD14: push {r4-r6,lr} adds r5, r0, 0 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0802FD48 movs r0, 0xCC movs r1, 0x8 bl MemoryAlloc str r0, [r4] ldr r1, _0802FD4C strh r1, [r0, 0x10] str r5, [r0] cmp r5, 0x7 bhi _0802FDC0 lsls r0, r5, 2 ldr r1, _0802FD50 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802FD48: .4byte gUnknown_203B318 _0802FD4C: .4byte 0x0000ffff _0802FD50: .4byte _0802FD54 .align 2, 0 _0802FD54: .4byte _0802FD74 .4byte _0802FD84 .4byte _0802FD94 .4byte _0802FDA4 .4byte _0802FDB4 .4byte _0802FDB8 .4byte _0802FDBC .4byte _0802FDC0 _0802FD74: movs r6, 0 ldr r1, _0802FD80 ldr r0, [r1] str r6, [r0, 0x4] b _0802FDCC .align 2, 0 _0802FD80: .4byte gUnknown_203B318 _0802FD84: movs r6, 0x7 ldr r2, _0802FD90 ldr r1, [r2] movs r0, 0 b _0802FDC8 .align 2, 0 _0802FD90: .4byte gUnknown_203B318 _0802FD94: movs r6, 0x6 ldr r2, _0802FDA0 ldr r1, [r2] movs r0, 0 b _0802FDC8 .align 2, 0 _0802FDA0: .4byte gUnknown_203B318 _0802FDA4: movs r6, 0x8 ldr r2, _0802FDB0 ldr r1, [r2] movs r0, 0 b _0802FDC8 .align 2, 0 _0802FDB0: .4byte gUnknown_203B318 _0802FDB4: movs r6, 0 b _0802FDC2 _0802FDB8: movs r6, 0x7 b _0802FDC2 _0802FDBC: movs r6, 0x6 b _0802FDC2 _0802FDC0: movs r6, 0x8 _0802FDC2: ldr r2, _0802FDD8 ldr r1, [r2] movs r0, 0x1 _0802FDC8: str r0, [r1, 0x4] adds r1, r2, 0 _0802FDCC: ldr r1, [r1] ldr r0, [r1, 0x4] cmp r0, 0x1 bne _0802FDDC movs r0, 0 b _0802FDE0 .align 2, 0 _0802FDD8: .4byte gUnknown_203B318 _0802FDDC: adds r0, r1, 0 adds r0, 0x58 _0802FDE0: str r0, [r1, 0x68] ldr r0, _0802FE48 ldr r5, _0802FE4C adds r1, r5, 0 bl sub_808D8E0 ldr r4, _0802FE50 adds r0, r4, 0 adds r1, r5, 0 bl sub_808D8E0 adds r0, r5, 0 bl sub_808D994 adds r1, r0, 0 subs r4, 0x50 adds r0, r4, 0 bl strcpy adds r0, r5, 0 bl sub_808DDD0 ldr r3, _0802FE54 ldr r1, [r3] str r0, [r1, 0x58] ldr r0, [r0, 0x4] str r0, [r1, 0x5C] adds r1, 0x64 movs r2, 0 strb r2, [r1] ldr r0, [r3] adds r0, 0x65 strb r2, [r0] ldr r0, [r3] adds r0, 0x66 strb r2, [r0] ldr r1, [r3] adds r2, r1, 0 adds r2, 0x60 movs r0, 0x2 strh r0, [r2] adds r1, 0x62 movs r0, 0x8 strh r0, [r1] adds r0, r6, 0 bl sub_802FF04 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0802FE48: .4byte gUnknown_202E5D8 _0802FE4C: .4byte 0x00000141 _0802FE50: .4byte gUnknown_202E1C8 _0802FE54: .4byte gUnknown_203B318 thumb_func_end sub_802FD14 thumb_func_start sub_802FE58 sub_802FE58: push {lr} ldr r0, _0802FE70 ldr r0, [r0] ldr r0, [r0, 0x8] cmp r0, 0xD bhi _0802FEC6 lsls r0, 2 ldr r1, _0802FE74 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802FE70: .4byte gUnknown_203B318 _0802FE74: .4byte _0802FE78 .align 2, 0 _0802FE78: .4byte _0802FEB0 .4byte _0802FEB0 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEB6 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEC6 .4byte _0802FEBC .4byte _0802FEC6 .4byte _0802FEC2 _0802FEB0: bl sub_8030208 b _0802FECA _0802FEB6: bl sub_8030258 b _0802FECA _0802FEBC: bl sub_80302A8 b _0802FECA _0802FEC2: movs r0, 0x3 b _0802FECC _0802FEC6: bl sub_80302C4 _0802FECA: movs r0, 0 _0802FECC: pop {r1} bx r1 thumb_func_end sub_802FE58 thumb_func_start sub_802FED0 sub_802FED0: ldr r0, _0802FEDC ldr r0, [r0] movs r1, 0x10 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0802FEDC: .4byte gUnknown_203B318 thumb_func_end sub_802FED0 thumb_func_start sub_802FEE0 sub_802FEE0: push {r4,lr} ldr r4, _0802FF00 ldr r0, [r4] cmp r0, 0 beq _0802FEFA ldr r0, [r0, 0x58] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802FEFA: pop {r4} pop {r0} bx r0 .align 2, 0 _0802FF00: .4byte gUnknown_203B318 thumb_func_end sub_802FEE0 thumb_func_start sub_802FF04 sub_802FF04: push {lr} ldr r1, _0802FF18 ldr r1, [r1] str r0, [r1, 0x8] bl sub_802FF1C bl sub_802FF88 pop {r0} bx r0 .align 2, 0 _0802FF18: .4byte gUnknown_203B318 thumb_func_end sub_802FF04 thumb_func_start sub_802FF1C sub_802FF1C: push {r4-r7,lr} ldr r4, _0802FF3C ldr r0, [r4] adds r0, 0x6C bl sub_8006518 ldr r0, [r4] ldr r0, [r0, 0x8] cmp r0, 0x4 beq _0802FF44 cmp r0, 0x4 bgt _0802FF40 cmp r0, 0 beq _0802FF44 b _0802FF68 .align 2, 0 _0802FF3C: .4byte gUnknown_203B318 _0802FF40: cmp r0, 0xD bne _0802FF68 _0802FF44: ldr r0, _0802FF80 mov r12, r0 ldr r4, _0802FF84 movs r3, 0 movs r2, 0x3 _0802FF4E: mov r5, r12 ldr r1, [r5] adds r1, r3 adds r1, 0x6C adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0802FF4E _0802FF68: bl sub_8004914 ldr r0, _0802FF80 ldr r0, [r0] adds r0, 0x6C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802FF80: .4byte gUnknown_203B318 _0802FF84: .4byte gUnknown_80E0760 thumb_func_end sub_802FF1C thumb_func_start sub_802FF88 sub_802FF88: push {r4,r5,lr} sub sp, 0x18 ldr r1, _0802FFA4 ldr r0, [r1] ldr r0, [r0, 0x8] adds r5, r1, 0 cmp r0, 0xD bls _0802FF9A b _080301A0 _0802FF9A: lsls r0, 2 ldr r1, _0802FFA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802FFA4: .4byte gUnknown_203B318 _0802FFA8: .4byte _0802FFAC .align 2, 0 _0802FFAC: .4byte _0802FFE4 .4byte _08030000 .4byte _08030038 .4byte _08030050 .4byte _08030068 .4byte _08030074 .4byte _080300DC .4byte _080300C4 .4byte _080300F4 .4byte _0803010C .4byte _08030148 .4byte _08030174 .4byte _08030180 .4byte _080301A0 _0802FFE4: bl sub_80301B0 ldr r2, _0802FFF8 ldr r0, _0802FFFC ldr r5, [r0] ldr r1, [r5, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 b _0803000E .align 2, 0 _0802FFF8: .4byte gUnknown_80D9FC8 _0802FFFC: .4byte gUnknown_203B318 _08030000: ldr r2, _08030034 ldr r5, [r5] ldr r1, [r5, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x4 _0803000E: adds r0, r2 ldr r0, [r0] ldr r2, [r5, 0x14] adds r3, r5, 0 adds r3, 0x18 movs r4, 0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] ldr r1, [r5, 0x68] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _080301A0 .align 2, 0 _08030034: .4byte gUnknown_80D9FC8 _08030038: ldr r3, [r5] movs r0, 0xD str r0, [r3, 0xC] ldr r2, _0803004C ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x8 b _0803015A .align 2, 0 _0803004C: .4byte gUnknown_80D9FC8 _08030050: ldr r3, [r5] movs r0, 0x4 str r0, [r3, 0xC] ldr r2, _08030064 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0xC b _0803015A .align 2, 0 _08030064: .4byte gUnknown_80D9FC8 _08030068: movs r0, 0x3 movs r1, 0 movs r2, 0xA bl sub_80302E8 b _080301A0 _08030074: ldr r1, [r5] movs r0, 0xD str r0, [r1, 0xC] movs r2, 0x10 ldrsh r0, [r1, r2] bl sub_80A2740 lsls r0, 24 lsrs r0, 24 ldr r2, _080300B4 ldr r1, [sp, 0x14] ands r1, r2 orrs r1, r0 ldr r0, _080300B8 ands r1, r0 movs r0, 0x80 lsls r0, 1 orrs r1, r0 str r1, [sp, 0x14] ldr r0, _080300BC add r1, sp, 0x14 bl sub_8090208 ldr r2, _080300C0 ldr r3, [r5] ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x10 b _0803015A .align 2, 0 _080300B4: .4byte 0xffffff00 _080300B8: .4byte 0xffff00ff _080300BC: .4byte gUnknown_202DF98 _080300C0: .4byte gUnknown_80D9FC8 _080300C4: ldr r3, [r5] movs r0, 0xD str r0, [r3, 0xC] ldr r2, _080300D8 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x18 b _0803015A .align 2, 0 _080300D8: .4byte gUnknown_80D9FC8 _080300DC: ldr r3, [r5] movs r0, 0xD str r0, [r3, 0xC] ldr r2, _080300F0 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x14 b _0803015A .align 2, 0 _080300F0: .4byte gUnknown_80D9FC8 _080300F4: ldr r3, [r5] movs r0, 0x9 str r0, [r3, 0xC] ldr r2, _08030108 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x1C b _0803015A .align 2, 0 _08030108: .4byte gUnknown_80D9FC8 _0803010C: ldr r4, _08030138 bl sub_808D33C adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x6 bl sub_808D9AC ldr r0, _0803013C ldr r1, [r0] movs r0, 0xB str r0, [r1, 0xC] movs r0, 0xCB bl sub_8011988 ldr r0, _08030140 ldr r3, _08030144 movs r1, 0 movs r2, 0 bl sub_80141B4 b _080301A0 .align 2, 0 _08030138: .4byte gPlayerName _0803013C: .4byte gUnknown_203B318 _08030140: .4byte gUnknown_80E0778 _08030144: .4byte 0x00000101 _08030148: ldr r3, [r5] movs r0, 0xD str r0, [r3, 0xC] ldr r2, _0803016C ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x20 _0803015A: adds r0, r2 ldr r0, [r0] ldr r2, [r3, 0x68] ldr r3, _08030170 movs r1, 0 bl sub_80141B4 b _080301A0 .align 2, 0 _0803016C: .4byte gUnknown_80D9FC8 _08030170: .4byte 0x0000010d _08030174: movs r0, 0x1 movs r1, 0x49 movs r2, 0x1 bl sub_801B60C b _080301A0 _08030180: ldr r3, [r5] movs r0, 0x1 str r0, [r3, 0xC] ldr r2, _080301A8 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x24 adds r0, r2 ldr r0, [r0] ldr r2, [r3, 0x68] ldr r3, _080301AC movs r1, 0 bl sub_80141B4 _080301A0: add sp, 0x18 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080301A8: .4byte gUnknown_80D9FC8 _080301AC: .4byte 0x0000010d thumb_func_end sub_802FF88 thumb_func_start sub_80301B0 sub_80301B0: push {r4,lr} ldr r4, _080301F8 ldr r1, [r4] movs r2, 0x2 str r2, [r1, 0x14] ldr r0, _080301FC str r0, [r1, 0x18] str r2, [r1, 0x1C] bl sub_80306A4 lsls r0, 24 cmp r0, 0 beq _080301D6 ldr r0, [r4] movs r1, 0x1 negs r1, r1 str r1, [r0, 0x1C] movs r1, 0x1 str r1, [r0, 0x14] _080301D6: ldr r1, [r4] movs r2, 0x1 ldr r0, _08030200 ldr r0, [r0] str r0, [r1, 0x20] movs r0, 0x3 str r0, [r1, 0x24] ldr r0, _08030204 ldr r0, [r0] str r0, [r1, 0x28] str r2, [r1, 0x2C] movs r0, 0 str r0, [r1, 0x30] str r2, [r1, 0x34] pop {r4} pop {r0} bx r0 .align 2, 0 _080301F8: .4byte gUnknown_203B318 _080301FC: .4byte gUnknown_80E07D8 _08030200: .4byte gUnknown_80D4970 _08030204: .4byte gUnknown_80D4934 thumb_func_end sub_80301B0 thumb_func_start sub_8030208 sub_8030208: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08030250 ldr r0, _08030230 ldr r1, [r0] ldr r0, [sp] str r0, [r1, 0x14] ldr r0, [sp] cmp r0, 0x2 beq _0803023A cmp r0, 0x2 bgt _08030234 cmp r0, 0x1 beq _0803024A b _08030250 .align 2, 0 _08030230: .4byte gUnknown_203B318 _08030234: cmp r0, 0x3 beq _08030242 b _08030250 _0803023A: movs r0, 0x3 bl sub_802FF04 b _08030250 _08030242: movs r0, 0xC bl sub_802FF04 b _08030250 _0803024A: movs r0, 0x2 bl sub_802FF04 _08030250: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8030208 thumb_func_start sub_8030258 sub_8030258: push {lr} movs r0, 0x1 bl sub_80303AC cmp r0, 0x2 beq _08030288 cmp r0, 0x2 bcc _0803029A cmp r0, 0x3 bne _0803029A bl sub_8030418 ldr r1, _08030284 ldr r1, [r1] strh r0, [r1, 0x10] bl sub_8030480 movs r0, 0x5 bl sub_802FF04 b _0803029A .align 2, 0 _08030284: .4byte gUnknown_203B318 _08030288: bl sub_8030480 ldr r0, _080302A0 ldr r1, [r0] ldr r0, _080302A4 strh r0, [r1, 0x10] movs r0, 0x1 bl sub_802FF04 _0803029A: pop {r0} bx r0 .align 2, 0 _080302A0: .4byte gUnknown_203B318 _080302A4: .4byte 0x0000ffff thumb_func_end sub_8030258 thumb_func_start sub_80302A8 sub_80302A8: push {lr} bl sub_801B6AC cmp r0, 0x1 bls _080302C0 cmp r0, 0x3 bhi _080302C0 bl sub_801B72C movs r0, 0xA bl sub_802FF04 _080302C0: pop {r0} bx r0 thumb_func_end sub_80302A8 thumb_func_start sub_80302C4 sub_80302C4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080302DC ldr r0, _080302E4 ldr r0, [r0] ldr r0, [r0, 0xC] bl sub_802FF04 _080302DC: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080302E4: .4byte gUnknown_203B318 thumb_func_end sub_80302C4 thumb_func_start sub_80302E8 sub_80302E8: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 bl sub_80306A4 lsls r0, 24 cmp r0, 0 beq _08030302 movs r0, 0 b _0803039A _08030302: ldr r4, _080303A4 ldr r0, [r4] cmp r0, 0 bne _08030314 movs r0, 0xD0 movs r1, 0x8 bl MemoryAlloc str r0, [r4] _08030314: ldr r0, [r4] str r5, [r0, 0x64] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x6C adds r1, r0, r1 str r1, [r0, 0x68] adds r0, 0x6C bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x64] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x6C ldr r0, _080303A8 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r2, [r4] ldr r1, [r2, 0x68] adds r0, r2, 0 adds r0, 0xCC str r0, [r1, 0x14] cmp r6, 0 beq _08030362 ldr r1, [r2, 0x64] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x74 adds r1, r0 ldr r0, [r6] str r0, [r1] _08030362: ldr r0, [r4] ldr r0, [r0, 0x68] mov r1, r8 bl sub_8012D08 bl sub_8004914 ldr r0, [r4] adds r0, 0x6C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r4] adds r4, 0x30 bl sub_8030668 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r5, 0 bl sub_8013818 bl sub_80304C8 bl sub_803053C movs r0, 0x1 _0803039A: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080303A4: .4byte gUnknown_203B31C _080303A8: .4byte gUnknown_80E0804 thumb_func_end sub_80302E8 thumb_func_start sub_80303AC sub_80303AC: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _080303C8 ldr r0, _080303C4 ldr r0, [r0] adds r0, 0x30 bl sub_8013660 movs r0, 0 b _08030410 .align 2, 0 _080303C4: .4byte gUnknown_203B31C _080303C8: ldr r4, _080303E4 ldr r0, [r4] adds r0, 0x30 bl GetKeyPress cmp r0, 0x1 beq _080303E8 cmp r0, 0x2 bne _080303F2 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08030410 .align 2, 0 _080303E4: .4byte gUnknown_203B31C _080303E8: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08030410 _080303F2: ldr r0, [r4] adds r0, 0x30 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _08030406 movs r0, 0 b _08030410 _08030406: bl sub_80304C8 bl sub_803053C movs r0, 0x1 _08030410: pop {r4} pop {r1} bx r1 thumb_func_end sub_80303AC thumb_func_start sub_8030418 sub_8030418: ldr r0, _08030440 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x4E movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 adds r1, r2, 0 adds r1, 0x48 movs r3, 0 ldrsh r1, [r1, r3] adds r0, r1 lsls r0, 1 adds r0, r2, r0 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _08030440: .4byte gUnknown_203B31C thumb_func_end sub_8030418 thumb_func_start sub_8030444 sub_8030444: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8030668 adds r1, r0, 0 ldr r5, _0803047C ldr r0, [r5] adds r2, r0, 0 adds r2, 0x52 strh r1, [r2] adds r0, 0x30 bl sub_8013984 bl sub_80304C8 bl sub_803053C cmp r4, 0 beq _08030476 ldr r0, [r5] adds r0, 0x30 bl AddMenuCursorSprite _08030476: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803047C: .4byte gUnknown_203B31C thumb_func_end sub_8030444 thumb_func_start sub_8030480 sub_8030480: push {r4,r5,lr} ldr r4, _080304C0 ldr r2, [r4] cmp r2, 0 beq _080304BA ldr r0, [r2, 0x64] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x6C ldr r0, _080304C4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x6C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _080304BA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080304C0: .4byte gUnknown_203B31C _080304C4: .4byte gUnknown_80E07EC thumb_func_end sub_8030480 thumb_func_start sub_80304C8 sub_80304C8: push {r4,lr} ldr r4, _08030538 ldr r0, [r4] adds r0, 0xCC movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, 0xCD strb r2, [r0] ldr r0, [r4] adds r0, 0xCE movs r1, 0x8 strb r1, [r0] ldr r0, [r4] adds r0, 0xCF strb r2, [r0] ldr r0, [r4] adds r0, 0x4A movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x64] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x7A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x64] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x7C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x6C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _08030538: .4byte gUnknown_203B31C thumb_func_end sub_80304C8 thumb_func_start sub_803053C sub_803053C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x108 ldr r4, _08030658 ldr r0, [r4] ldr r0, [r0, 0x64] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x64] bl sub_80073B8 ldr r2, _0803065C ldr r0, [r4] ldr r3, [r0, 0x64] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r3, [r4] adds r0, r3, 0 adds r0, 0xCE ldrb r0, [r0] lsls r0, 3 adds r0, 0x4 adds r1, r3, 0 adds r1, 0x4E movs r5, 0 ldrsh r2, [r1, r5] adds r2, 0x1 movs r1, 0x7 str r1, [sp] ldr r1, [r3, 0x64] str r1, [sp, 0x4] movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r0, 0 mov r9, r0 ldr r0, [r4] adds r0, 0x4A movs r1, 0 ldrsh r0, [r0, r1] cmp r9, r0 bge _0803063E mov r8, r4 _080305A2: mov r3, r8 ldr r1, [r3] adds r0, r1, 0 adds r0, 0x4E movs r5, 0 ldrsh r2, [r0, r5] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r2 add r0, r9 lsls r0, 1 adds r1, r0 movs r5, 0 ldrsh r4, [r1, r5] adds r0, r4, 0 bl sub_80A2740 lsls r0, 24 lsrs r7, r0, 24 adds r0, r4, 0 bl sub_80A2668 adds r4, r0, 0 lsls r4, 16 asrs r4, 16 mov r1, r8 ldr r0, [r1] adds r0, 0x30 mov r1, r9 bl sub_8013800 adds r6, r0, 0 movs r5, 0x7 adds r0, r4, 0 bl sub_809758C lsls r0, 24 cmp r0, 0 beq _08030608 mov r3, r8 ldr r0, [r3] ldr r3, [r0, 0x64] movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r6, 0 ldr r2, _08030660 bl xxx_call_draw_string movs r5, 0x4 _08030608: adds r0, r7, 0 bl GetDungeonName1 adds r3, r0, 0 add r0, sp, 0x8 ldr r1, _08030664 adds r2, r5, 0 bl sub_800D158 mov r5, r8 ldr r0, [r5] ldr r3, [r0, 0x64] movs r0, 0 str r0, [sp] movs r0, 0x10 adds r1, r6, 0 add r2, sp, 0x8 bl xxx_call_draw_string movs r0, 0x1 add r9, r0 ldr r0, [r5] adds r0, 0x4A movs r1, 0 ldrsh r0, [r0, r1] cmp r9, r0 blt _080305A2 _0803063E: ldr r0, _08030658 ldr r0, [r0] ldr r0, [r0, 0x64] bl sub_80073E0 add sp, 0x108 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08030658: .4byte gUnknown_203B31C _0803065C: .4byte gUnknown_80E081C _08030660: .4byte gUnknown_80E0824 _08030664: .4byte gUnknown_80E0828 thumb_func_end sub_803053C thumb_func_start sub_8030668 sub_8030668: push {r4-r6,lr} movs r6, 0 movs r5, 0 _0803066E: lsls r0, r5, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_8097504 lsls r0, 24 cmp r0, 0 beq _08030690 adds r0, r4, 0 bl sub_80A26CC ldr r1, _080306A0 ldr r1, [r1] lsls r2, r6, 1 adds r1, r2 strh r0, [r1] adds r6, 0x1 _08030690: adds r5, 0x1 cmp r5, 0x16 ble _0803066E adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080306A0: .4byte gUnknown_203B31C thumb_func_end sub_8030668 thumb_func_start sub_80306A4 sub_80306A4: movs r0, 0 bx lr thumb_func_end sub_80306A4 thumb_func_start sub_80306A8 sub_80306A8: push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 adds r5, r1, 0 adds r7, r2, 0 mov r8, r3 bl sub_8030C20 lsls r0, 24 cmp r0, 0 beq _080306C4 movs r0, 0 b _08030756 _080306C4: ldr r6, _08030760 movs r0, 0xC4 movs r1, 0x8 bl MemoryAlloc str r0, [r6] str r4, [r0, 0x20] str r5, [r0, 0x58] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x60 adds r1, r0, r1 str r1, [r0, 0x5C] adds r0, 0x60 bl sub_8006518 ldr r1, [r6] ldr r2, [r1, 0x58] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x60 ldr r0, _08030764 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r6] ldr r1, [r2, 0x5C] adds r0, r2, 0 adds r0, 0xC0 str r0, [r1, 0x14] cmp r7, 0 beq _0803071E ldr r1, [r2, 0x58] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x68 adds r1, r0 ldr r0, [r7] str r0, [r1] _0803071E: ldr r0, [r6] ldr r0, [r0, 0x5C] mov r1, r8 bl sub_8012D08 bl sub_8004914 ldr r0, [r6] adds r0, 0x60 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r6] adds r4, 0x24 bl sub_8030A74 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r5, 0 bl sub_8013818 bl sub_80308A0 bl sub_803092C movs r0, 0x1 _08030756: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08030760: .4byte gUnknown_203B320 _08030764: .4byte gUnknown_80E0854 thumb_func_end sub_80306A8 thumb_func_start sub_8030768 sub_8030768: push {lr} lsls r0, 24 cmp r0, 0 bne _08030784 ldr r0, _08030780 ldr r0, [r0] adds r0, 0x24 bl sub_8013660 movs r0, 0 b _080307E6 .align 2, 0 _08030780: .4byte gUnknown_203B320 _08030784: ldr r0, _0803079C ldr r0, [r0] adds r0, 0x24 bl GetKeyPress cmp r0, 0x2 beq _080307AE cmp r0, 0x2 bgt _080307A0 cmp r0, 0x1 beq _080307B8 b _080307C2 .align 2, 0 _0803079C: .4byte gUnknown_203B320 _080307A0: cmp r0, 0x4 bne _080307C2 movs r0, 0x4 bl sub_80119D4 movs r0, 0x4 b _080307E6 _080307AE: movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _080307E6 _080307B8: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _080307E6 _080307C2: ldr r0, _080307D8 ldr r0, [r0] adds r0, 0x24 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _080307DC movs r0, 0 b _080307E6 .align 2, 0 _080307D8: .4byte gUnknown_203B320 _080307DC: bl sub_80308A0 bl sub_803092C movs r0, 0x1 _080307E6: pop {r1} bx r1 thumb_func_end sub_8030768 thumb_func_start sub_80307EC sub_80307EC: ldr r0, _0803080C ldr r2, [r0] adds r0, r2, 0 adds r0, 0x42 movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 movs r3, 0x3C ldrsh r1, [r2, r3] adds r0, r1 adds r2, r0 ldrb r0, [r2] bx lr .align 2, 0 _0803080C: .4byte gUnknown_203B320 thumb_func_end sub_80307EC thumb_func_start sub_8030810 sub_8030810: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8030A74 adds r1, r0, 0 ldr r5, _08030848 ldr r0, [r5] adds r2, r0, 0 adds r2, 0x46 strh r1, [r2] adds r0, 0x24 bl sub_8013984 bl sub_80308A0 bl sub_803092C cmp r4, 0 beq _08030842 ldr r0, [r5] adds r0, 0x24 bl AddMenuCursorSprite _08030842: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08030848: .4byte gUnknown_203B320 thumb_func_end sub_8030810 thumb_func_start sub_803084C sub_803084C: push {r4,r5,lr} ldr r4, _0803088C ldr r2, [r4] cmp r2, 0 beq _08030886 ldr r0, [r2, 0x58] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x60 ldr r0, _08030890 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x60 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08030886: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803088C: .4byte gUnknown_203B320 _08030890: .4byte gUnknown_80E083C thumb_func_end sub_803084C thumb_func_start sub_8030894 sub_8030894: ldr r0, _0803089C ldr r0, [r0] bx lr .align 2, 0 _0803089C: .4byte gUnknown_203B320 thumb_func_end sub_8030894 thumb_func_start sub_80308A0 sub_80308A0: push {r4,lr} ldr r4, _08030928 ldr r0, [r4] adds r1, r0, 0 adds r1, 0x44 ldrh r1, [r1] adds r0, 0xC0 movs r2, 0 strb r1, [r0] ldr r0, [r4] adds r1, r0, 0 adds r1, 0x42 ldrh r1, [r1] adds r0, 0xC1 strb r1, [r0] ldr r0, [r4] adds r0, 0xC2 movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0xC3 strb r2, [r0] bl sub_8004914 ldr r0, [r4] adds r0, 0x60 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x3E ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x58] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x6E asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x58] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x70 strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x60 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _08030928: .4byte gUnknown_203B320 thumb_func_end sub_80308A0 thumb_func_start sub_803092C sub_803092C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x60 ldr r7, _08030A24 ldr r0, [r7] ldr r0, [r0, 0x58] bl sub_8008C54 ldr r0, [r7] ldr r0, [r0, 0x58] bl sub_80073B8 ldr r1, [r7] adds r0, r1, 0 adds r0, 0x42 movs r2, 0 ldrsh r4, [r0, r2] lsls r4, 3 adds r5, r4, 0 adds r5, 0xA ldr r2, _08030A28 ldr r0, [r1, 0x20] lsls r0, 2 adds r0, r2 ldr r2, [r0] ldr r3, [r1, 0x58] movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r1, 0 bl xxx_call_draw_string adds r4, 0x4 ldr r3, [r7] adds r0, r3, 0 adds r0, 0xC2 ldrb r0, [r0] lsls r0, 3 adds r5, r4, r0 adds r0, r3, 0 adds r0, 0x42 movs r1, 0 ldrsh r2, [r0, r1] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r3, 0x58] str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r3, 0x1 bl sub_8012BC4 movs r6, 0 ldr r0, [r7] movs r2, 0x3E ldrsh r0, [r0, r2] cmp r6, r0 bge _08030A56 mov r9, r7 mov r8, r6 add r7, sp, 0x8 mov r5, sp adds r5, 0x4B _080309B0: mov r3, r9 ldr r1, [r3] adds r0, r1, 0 adds r0, 0x42 movs r3, 0 ldrsh r2, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r2 adds r0, r6 adds r1, r0 ldrb r0, [r1] bl sub_8095228 adds r4, r0, 0 mov r1, r9 ldr r0, [r1] ldr r1, [r0, 0x58] str r1, [sp, 0x8] adds r0, 0x24 adds r1, r6, 0 bl sub_8013800 str r0, [sp, 0x50] add r1, sp, 0x48 movs r0, 0x7 strb r0, [r1] mov r0, sp adds r0, 0x4A mov r2, r8 strb r2, [r0] add r0, sp, 0x4C strb r2, [r0] adds r0, r4, 0x4 str r0, [sp, 0x10] adds r0, 0x10 str r0, [sp, 0x14] ldrh r0, [r4, 0xC] strh r0, [r7, 0x10] ldrh r0, [r4, 0xC] strh r0, [r7, 0x12] strb r2, [r7, 0x14] subs r1, 0x12 movs r0, 0x5 strb r0, [r1] ldrb r0, [r4] cmp r0, 0x4 beq _08030A32 cmp r0, 0x4 bgt _08030A2C cmp r0, 0x2 bgt _08030A3E cmp r0, 0x1 blt _08030A3E movs r0, 0x1 strb r0, [r5] b _08030A42 .align 2, 0 _08030A24: .4byte gUnknown_203B320 _08030A28: .4byte gUnknown_80E086C _08030A2C: cmp r0, 0x5 beq _08030A38 b _08030A3E _08030A32: movs r0, 0x3 strb r0, [r5] b _08030A42 _08030A38: movs r0, 0x4 strb r0, [r5] b _08030A42 _08030A3E: mov r3, r8 strb r3, [r5] _08030A42: add r0, sp, 0x8 bl sub_803B6D4 adds r6, 0x1 mov r1, r9 ldr r0, [r1] movs r2, 0x3E ldrsh r0, [r0, r2] cmp r6, r0 blt _080309B0 _08030A56: ldr r0, _08030A70 ldr r0, [r0] ldr r0, [r0, 0x58] bl sub_80073E0 add sp, 0x60 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08030A70: .4byte gUnknown_203B320 thumb_func_end sub_803092C thumb_func_start sub_8030A74 sub_8030A74: push {r4,r5,lr} movs r2, 0 ldr r0, _08030A90 ldr r0, [r0] ldr r0, [r0, 0x20] cmp r0, 0x7 bls _08030A84 b _08030C0E _08030A84: lsls r0, 2 ldr r1, _08030A94 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08030A90: .4byte gUnknown_203B320 _08030A94: .4byte _08030A98 .align 2, 0 _08030A98: .4byte _08030AB8 .4byte _08030B10 .4byte _08030B3C .4byte _08030B94 .4byte _08030B68 .4byte _08030BC0 .4byte _08030AE4 .4byte _08030BEC _08030AB8: movs r1, 0 ldr r5, _08030ADC ldr r4, _08030AE0 movs r3, 0 _08030AC0: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _08030AD2 ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030AD2: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030AC0 b _08030C0E .align 2, 0 _08030ADC: .4byte gUnknown_203B480 _08030AE0: .4byte gUnknown_203B320 _08030AE4: movs r1, 0 ldr r5, _08030B08 ldr r4, _08030B0C movs r3, 0 _08030AEC: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x6 bne _08030AFE ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030AFE: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030AEC b _08030C0E .align 2, 0 _08030B08: .4byte gUnknown_203B480 _08030B0C: .4byte gUnknown_203B320 _08030B10: movs r1, 0 ldr r5, _08030B34 ldr r4, _08030B38 movs r3, 0 _08030B18: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x1 bne _08030B2A ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030B2A: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030B18 b _08030C0E .align 2, 0 _08030B34: .4byte gUnknown_203B480 _08030B38: .4byte gUnknown_203B320 _08030B3C: movs r1, 0 ldr r5, _08030B60 ldr r4, _08030B64 movs r3, 0 _08030B44: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x2 bne _08030B56 ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030B56: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030B44 b _08030C0E .align 2, 0 _08030B60: .4byte gUnknown_203B480 _08030B64: .4byte gUnknown_203B320 _08030B68: movs r1, 0 ldr r5, _08030B8C ldr r4, _08030B90 movs r3, 0 _08030B70: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x4 bne _08030B82 ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030B82: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030B70 b _08030C0E .align 2, 0 _08030B8C: .4byte gUnknown_203B480 _08030B90: .4byte gUnknown_203B320 _08030B94: movs r1, 0 ldr r5, _08030BB8 ldr r4, _08030BBC movs r3, 0 _08030B9C: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x3 bne _08030BAE ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030BAE: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030B9C b _08030C0E .align 2, 0 _08030BB8: .4byte gUnknown_203B480 _08030BBC: .4byte gUnknown_203B320 _08030BC0: movs r1, 0 ldr r5, _08030BE4 ldr r4, _08030BE8 movs r3, 0 _08030BC8: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x5 bne _08030BDA ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030BDA: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030BC8 b _08030C0E .align 2, 0 _08030BE4: .4byte gUnknown_203B480 _08030BE8: .4byte gUnknown_203B320 _08030BEC: movs r1, 0 ldr r5, _08030C18 ldr r4, _08030C1C movs r3, 0 _08030BF4: ldr r0, [r5] adds r0, r3 ldrb r0, [r0] cmp r0, 0x7 bne _08030C06 ldr r0, [r4] adds r0, r2 strb r1, [r0] adds r2, 0x1 _08030C06: adds r3, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030BF4 _08030C0E: adds r0, r2, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08030C18: .4byte gUnknown_203B480 _08030C1C: .4byte gUnknown_203B320 thumb_func_end sub_8030A74 thumb_func_start sub_8030C20 sub_8030C20: push {lr} cmp r0, 0x7 bls _08030C28 b _08030D34 _08030C28: lsls r0, 2 ldr r1, _08030C34 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08030C34: .4byte _08030C38 .align 2, 0 _08030C38: .4byte _08030C58 .4byte _08030C90 .4byte _08030CAC .4byte _08030CE4 .4byte _08030CC8 .4byte _08030D00 .4byte _08030C74 .4byte _08030D20 _08030C58: movs r1, 0 ldr r0, _08030C70 ldr r2, [r0] _08030C5E: ldrb r0, [r2] cmp r0, 0 bne _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030C5E b _08030D34 .align 2, 0 _08030C70: .4byte gUnknown_203B480 _08030C74: movs r1, 0 ldr r0, _08030C8C ldr r2, [r0] _08030C7A: ldrb r0, [r2] cmp r0, 0x6 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030C7A b _08030D34 .align 2, 0 _08030C8C: .4byte gUnknown_203B480 _08030C90: movs r1, 0 ldr r0, _08030CA8 ldr r2, [r0] _08030C96: ldrb r0, [r2] cmp r0, 0x1 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030C96 b _08030D34 .align 2, 0 _08030CA8: .4byte gUnknown_203B480 _08030CAC: movs r1, 0 ldr r0, _08030CC4 ldr r2, [r0] _08030CB2: ldrb r0, [r2] cmp r0, 0x2 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030CB2 b _08030D34 .align 2, 0 _08030CC4: .4byte gUnknown_203B480 _08030CC8: movs r1, 0 ldr r0, _08030CE0 ldr r2, [r0] _08030CCE: ldrb r0, [r2] cmp r0, 0x4 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030CCE b _08030D34 .align 2, 0 _08030CE0: .4byte gUnknown_203B480 _08030CE4: movs r1, 0 ldr r0, _08030CFC ldr r2, [r0] _08030CEA: ldrb r0, [r2] cmp r0, 0x3 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030CEA b _08030D34 .align 2, 0 _08030CFC: .4byte gUnknown_203B480 _08030D00: movs r1, 0 ldr r0, _08030D18 ldr r2, [r0] _08030D06: ldrb r0, [r2] cmp r0, 0x5 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030D06 b _08030D34 .align 2, 0 _08030D18: .4byte gUnknown_203B480 _08030D1C: movs r0, 0 b _08030D36 _08030D20: movs r1, 0 ldr r0, _08030D3C ldr r2, [r0] _08030D26: ldrb r0, [r2] cmp r0, 0x7 beq _08030D1C adds r2, 0x30 adds r1, 0x1 cmp r1, 0x1F ble _08030D26 _08030D34: movs r0, 0x1 _08030D36: pop {r1} bx r1 .align 2, 0 _08030D3C: .4byte gUnknown_203B480 thumb_func_end sub_8030C20 thumb_func_start sub_8030D40 sub_8030D40: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 ldr r6, _08030D98 movs r0, 0x78 movs r1, 0x8 bl MemoryAlloc str r0, [r6] strb r4, [r0, 0xC] ldr r0, [r6] bl sub_801317C ldr r0, [r6] str r5, [r0, 0x10] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x18 adds r1, r0, r1 str r1, [r0, 0x14] adds r0, 0x18 bl sub_8006518 ldr r1, [r6] ldr r2, [r1, 0x10] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x18 ldr r0, _08030D9C ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_8030DD4 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08030D98: .4byte gUnknown_203B324 _08030D9C: .4byte gUnknown_80E091C thumb_func_end sub_8030D40 thumb_func_start sub_8030DA0 sub_8030DA0: push {lr} ldr r0, _08030DC0 ldr r0, [r0] ldr r1, [r0, 0x10] bl sub_8012A64 cmp r0, 0x1 beq _08030DC4 cmp r0, 0x2 bne _08030DCE movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08030DD0 .align 2, 0 _08030DC0: .4byte gUnknown_203B324 _08030DC4: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08030DD0 _08030DCE: movs r0, 0 _08030DD0: pop {r1} bx r1 thumb_func_end sub_8030DA0 thumb_func_start sub_8030DD4 sub_8030DD4: push {lr} bl sub_8030E2C bl sub_8030E48 pop {r0} bx r0 thumb_func_end sub_8030DD4 thumb_func_start sub_8030DE4 sub_8030DE4: push {r4,r5,lr} ldr r4, _08030E24 ldr r2, [r4] cmp r2, 0 beq _08030E1E ldr r0, [r2, 0x10] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x18 ldr r0, _08030E28 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08030E1E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08030E24: .4byte gUnknown_203B324 _08030E28: .4byte gUnknown_80E0900 thumb_func_end sub_8030DE4 thumb_func_start sub_8030E2C sub_8030E2C: push {lr} bl sub_8004914 ldr r0, _08030E44 ldr r0, [r0] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 .align 2, 0 _08030E44: .4byte gUnknown_203B324 thumb_func_end sub_8030E2C thumb_func_start sub_8030E48 sub_8030E48: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x15C ldr r3, _08030EA8 ldr r4, _08030EAC ldr r2, [r4] ldrb r1, [r2, 0xC] lsls r0, r1, 1 adds r0, r1 lsls r0, 4 ldr r1, [r3] adds r5, r1, r0 ldr r0, [r2, 0x10] bl sub_80073B8 ldr r0, [r4] ldr r0, [r0, 0x10] str r0, [sp, 0x4] add r1, sp, 0x44 movs r2, 0 movs r0, 0x7 strb r0, [r1] mov r0, sp adds r0, 0x46 strb r2, [r0] add r0, sp, 0x48 strb r2, [r0] adds r0, r5, 0x4 str r0, [sp, 0xC] adds r0, 0x10 str r0, [sp, 0x10] add r1, sp, 0x4 ldrh r0, [r5, 0xC] strh r0, [r1, 0x10] ldrh r0, [r5, 0xC] strh r0, [r1, 0x12] adds r0, r1, 0 strb r2, [r0, 0x14] adds r2, r5, 0 adds r2, 0x22 ldrb r0, [r2] cmp r0, 0 bne _08030EB0 adds r1, 0x2E movs r0, 0x5 strb r0, [r1] b _08030EBE .align 2, 0 _08030EA8: .4byte gUnknown_203B480 _08030EAC: .4byte gUnknown_203B324 _08030EB0: mov r1, sp adds r1, 0x32 movs r0, 0x2 strb r0, [r1] ldrb r1, [r2] add r0, sp, 0x38 strb r1, [r0] _08030EBE: ldrb r0, [r5] cmp r0, 0x2 beq _08030ED2 cmp r0, 0x2 ble _08030EE2 cmp r0, 0x4 beq _08030ED2 cmp r0, 0x5 beq _08030EDA b _08030EE2 _08030ED2: mov r1, sp adds r1, 0x45 movs r0, 0xA b _08030EE8 _08030EDA: mov r1, sp adds r1, 0x45 movs r0, 0xB b _08030EE8 _08030EE2: mov r1, sp adds r1, 0x45 movs r0, 0x9 _08030EE8: strb r0, [r1] add r0, sp, 0x4 bl sub_803B98C ldrh r0, [r5, 0x10] ldr r1, _08030F48 bl __umodsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r2, _08030F4C ldr r5, _08030F50 ldr r0, [r5] ldr r3, [r0, 0x10] movs r0, 0 mov r8, r0 str r0, [sp] movs r0, 0xA movs r1, 0x68 bl xxx_call_draw_string add r6, sp, 0x5C ldr r1, _08030F54 adds r0, r6, 0 adds r2, r4, 0 bl sub_800D158 ldr r0, [r5] ldr r3, [r0, 0x10] mov r0, r8 str r0, [sp] movs r0, 0x44 movs r1, 0x68 adds r2, r6, 0 bl xxx_call_draw_string ldr r0, [r5] ldr r0, [r0, 0x10] bl sub_80073E0 add sp, 0x15C pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08030F48: .4byte 0x00002710 _08030F4C: .4byte gUnknown_80E0934 _08030F50: .4byte gUnknown_203B324 _08030F54: .4byte gUnknown_80E0938 thumb_func_end sub_8030E48 thumb_func_start sub_8030F58 sub_8030F58: push {r4-r6,lr} adds r6, r0, 0 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08030FF4 ldr r0, [r5] cmp r0, 0 bne _08030F88 movs r4, 0x8E lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _08030F88: ldr r0, [r5] movs r1, 0x8C lsls r1, 1 adds r0, r1 str r6, [r0] movs r0, 0x98 lsls r0, 1 bl sub_808DDD0 ldr r2, [r5] movs r4, 0x84 lsls r4, 1 adds r1, r2, r4 str r0, [r1] movs r3, 0x86 lsls r3, 1 adds r1, r2, r3 ldr r0, [r0, 0x4] str r0, [r1] movs r0, 0x8A lsls r0, 1 adds r2, r0 movs r1, 0 strb r1, [r2] ldr r0, [r5] ldr r2, _08030FF8 adds r0, r2 strb r1, [r0] ldr r0, [r5] adds r3, 0xA adds r0, r3 strb r1, [r0] ldr r2, [r5] movs r0, 0x88 lsls r0, 1 adds r1, r2, r0 movs r0, 0x2 strh r0, [r1] subs r3, 0x4 adds r1, r2, r3 movs r0, 0x8 strh r0, [r1] adds r0, r6, 0 bl sub_8030C20 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08031038 cmp r6, 0x2 beq _08030FFC cmp r6, 0x4 beq _08031014 b _08031022 .align 2, 0 _08030FF4: .4byte gUnknown_203B328 _08030FF8: .4byte 0x00000115 _08030FFC: ldr r0, _0803100C ldr r2, [r5] adds r2, r4 ldr r3, _08031010 movs r1, 0 bl sub_80141B4 b _08031022 .align 2, 0 _0803100C: .4byte gUnknown_80E09D8 _08031010: .4byte 0x00000101 _08031014: ldr r0, _0803102C ldr r2, [r5] adds r2, r4 ldr r3, _08031030 movs r1, 0 bl sub_80141B4 _08031022: ldr r0, _08031034 ldr r1, [r0] movs r0, 0x5 str r0, [r1] b _08031048 .align 2, 0 _0803102C: .4byte gUnknown_80E0A0C _08031030: .4byte 0x00000101 _08031034: .4byte gUnknown_203B328 _08031038: ldr r0, [r5] str r1, [r0] adds r0, r6, 0 movs r1, 0 movs r2, 0 movs r3, 0x8 bl sub_80306A8 _08031048: movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8030F58 thumb_func_start sub_8031050 sub_8031050: push {lr} ldr r1, _08031068 ldr r0, [r1] ldr r0, [r0] adds r2, r1, 0 cmp r0, 0x6 bhi _080310AC lsls r0, 2 ldr r1, _0803106C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031068: .4byte gUnknown_203B328 _0803106C: .4byte _08031070 .align 2, 0 _08031070: .4byte _0803108C .4byte _08031092 .4byte _08031098 .4byte _08031098 .4byte _080310A2 .4byte _080310A8 .4byte _080310A8 _0803108C: bl sub_8031300 b _080310AC _08031092: bl sub_803136C b _080310AC _08031098: ldr r0, [r2] ldr r0, [r0] bl sub_80313D8 b _080310AC _080310A2: bl sub_8031498 b _080310AC _080310A8: movs r0, 0x3 b _080310AE _080310AC: movs r0, 0 _080310AE: pop {r1} bx r1 thumb_func_end sub_8031050 thumb_func_start sub_80310B4 sub_80310B4: push {r4,lr} bl sub_803084C ldr r4, _080310E0 ldr r0, [r4] cmp r0, 0 beq _080310D8 movs r1, 0x84 lsls r1, 1 adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _080310D8: pop {r4} pop {r0} bx r0 .align 2, 0 _080310E0: .4byte gUnknown_203B328 thumb_func_end sub_80310B4 thumb_func_start sub_80310E4 sub_80310E4: push {lr} ldr r1, _080310F8 ldr r1, [r1] str r0, [r1] bl sub_80310FC bl sub_8031258 pop {r0} bx r0 .align 2, 0 _080310F8: .4byte gUnknown_203B328 thumb_func_end sub_80310E4 thumb_func_start sub_80310FC sub_80310FC: push {r4-r6,lr} ldr r4, _0803111C ldr r0, [r4] adds r0, 0xA8 bl sub_8006518 ldr r0, [r4] ldr r0, [r0] cmp r0, 0x6 bls _08031112 b _0803122C _08031112: lsls r0, 2 ldr r1, _08031120 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803111C: .4byte gUnknown_203B328 _08031120: .4byte _08031124 .align 2, 0 _08031124: .4byte _08031140 .4byte _08031178 .4byte _080311C0 .4byte _080311C0 .4byte _080311E8 .4byte _0803122C .4byte _0803122C _08031140: ldr r3, _08031170 ldr r1, [r3] ldr r2, _08031174 adds r1, 0xC0 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r1, [r3] adds r1, 0xD8 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r0, [r3] adds r0, 0xF0 ldm r2!, {r1,r3,r4} stm r0!, {r1,r3,r4} ldm r2!, {r1,r5,r6} stm r0!, {r1,r5,r6} b _0803123A .align 2, 0 _08031170: .4byte gUnknown_203B328 _08031174: .4byte gUnknown_80E0990 _08031178: ldr r3, _080311B0 ldr r1, [r3] adds r1, 0xC0 ldr r0, _080311B4 ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r2,r4,r6} stm r1!, {r2,r4,r6} ldr r1, [r3] ldr r2, _080311B8 adds r1, 0xD8 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r0, [r3] adds r0, 0xF0 ldm r2!, {r1,r5,r6} stm r0!, {r1,r5,r6} ldm r2!, {r4-r6} stm r0!, {r4-r6} ldr r0, [r3] adds r0, 0xC0 ldr r1, _080311BC bl sub_8012CAC b _0803123A .align 2, 0 _080311B0: .4byte gUnknown_203B328 _080311B4: .4byte gUnknown_80E09A8 _080311B8: .4byte gUnknown_80E0990 _080311BC: .4byte gUnknown_80E0968 _080311C0: ldr r2, _080311DC ldr r1, [r2] adds r1, 0xD8 ldr r0, _080311E0 ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r3,r4,r6} stm r1!, {r3,r4,r6} ldr r0, [r2] adds r0, 0xD8 ldr r1, _080311E4 bl sub_8012CAC b _0803123A .align 2, 0 _080311DC: .4byte gUnknown_203B328 _080311E0: .4byte gUnknown_80E09C0 _080311E4: .4byte gUnknown_80E0948 _080311E8: ldr r3, _08031224 ldr r1, [r3] ldr r2, _08031228 adds r1, 0xA8 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r1, [r3] adds r1, 0xC0 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r1, [r3] adds r1, 0xD8 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r0, [r3] adds r0, 0xF0 ldm r2!, {r1,r5,r6} stm r0!, {r1,r5,r6} ldm r2!, {r3-r5} stm r0!, {r3-r5} b _0803123A .align 2, 0 _08031224: .4byte gUnknown_203B328 _08031228: .4byte gUnknown_80E0990 _0803122C: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C _0803123A: bl sub_8004914 ldr r0, _08031254 ldr r0, [r0] adds r0, 0xA8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08031254: .4byte gUnknown_203B328 thumb_func_end sub_80310FC thumb_func_start sub_8031258 sub_8031258: push {r4,lr} sub sp, 0x8 ldr r1, _08031274 ldr r0, [r1] ldr r0, [r0] adds r2, r1, 0 cmp r0, 0x6 bhi _080312F6 lsls r0, 2 ldr r1, _08031278 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031274: .4byte gUnknown_203B328 _08031278: .4byte _0803127C .align 2, 0 _0803127C: .4byte _08031298 .4byte _080312A0 .4byte _080312BC .4byte _080312BC .4byte _080312EC .4byte _080312F6 .4byte _080312F6 _08031298: movs r0, 0x1 bl sub_8030810 b _080312F6 _080312A0: bl sub_803092C ldr r0, _080312B4 ldr r0, [r0] adds r0, 0x8 ldr r1, _080312B8 movs r2, 0x4 str r2, [sp] movs r2, 0x1 b _080312D8 .align 2, 0 _080312B4: .4byte gUnknown_203B328 _080312B8: .4byte gUnknown_80E0968 _080312BC: bl sub_803092C ldr r4, _080312E4 ldr r0, [r4] adds r0, 0x8 movs r1, 0 bl sub_8012EA4 ldr r0, [r4] adds r0, 0x58 ldr r1, _080312E8 movs r2, 0x3 str r2, [sp] movs r2, 0x2 _080312D8: str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _080312F6 .align 2, 0 _080312E4: .4byte gUnknown_203B328 _080312E8: .4byte gUnknown_80E0948 _080312EC: ldr r0, [r2] ldrb r0, [r0, 0x4] movs r1, 0x3 bl sub_8030D40 _080312F6: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_8031258 thumb_func_start sub_8031300 sub_8031300: push {lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x4 bhi _08031366 lsls r0, 2 ldr r1, _08031318 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031318: .4byte _0803131C .align 2, 0 _0803131C: .4byte _08031366 .4byte _08031366 .4byte _08031360 .4byte _08031330 .4byte _08031348 _08031330: bl sub_80307EC ldr r1, _08031344 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x1 bl sub_80310E4 b _08031366 .align 2, 0 _08031344: .4byte gUnknown_203B328 _08031348: bl sub_80307EC ldr r1, _0803135C ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x4 bl sub_80310E4 b _08031366 .align 2, 0 _0803135C: .4byte gUnknown_203B328 _08031360: movs r0, 0x6 bl sub_80310E4 _08031366: pop {r0} bx r0 thumb_func_end sub_8031300 thumb_func_start sub_803136C sub_803136C: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_8030768 ldr r4, _080313A4 ldr r0, [r4] adds r0, 0x8 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08031392 ldr r0, [r4] adds r0, 0x8 mov r1, sp bl sub_8013114 _08031392: ldr r0, [sp] cmp r0, 0x4 beq _080313C2 cmp r0, 0x4 bgt _080313A8 cmp r0, 0x1 beq _080313B2 b _080313D0 .align 2, 0 _080313A4: .4byte gUnknown_203B328 _080313A8: cmp r0, 0x5 beq _080313CA cmp r0, 0x6 beq _080313BA b _080313D0 _080313B2: movs r0, 0 bl sub_80310E4 b _080313D0 _080313BA: movs r0, 0x3 bl sub_80310E4 b _080313D0 _080313C2: movs r0, 0x2 bl sub_80310E4 b _080313D0 _080313CA: movs r0, 0x4 bl sub_80310E4 _080313D0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_803136C thumb_func_start sub_80313D8 sub_80313D8: push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 movs r0, 0 str r0, [sp] bl sub_8030768 ldr r4, _08031418 ldr r0, [r4] adds r0, 0x8 bl sub_8012FD8 ldr r0, [r4] adds r0, 0x58 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08031408 ldr r0, [r4] adds r0, 0x58 mov r1, sp bl sub_8013114 _08031408: ldr r0, [sp] cmp r0, 0x2 beq _08031428 cmp r0, 0x2 bgt _0803141C cmp r0, 0x1 beq _08031420 b _0803148E .align 2, 0 _08031418: .4byte gUnknown_203B328 _0803141C: cmp r0, 0x3 bne _0803148E _08031420: movs r0, 0 bl sub_80310E4 b _0803148E _08031428: cmp r5, 0x2 beq _08031432 cmp r5, 0x3 beq _0803143C b _0803145A _08031432: ldr r0, [r4] ldrb r0, [r0, 0x4] bl sub_8095240 b _0803145A _0803143C: ldr r4, _08031480 movs r3, 0 movs r1, 0 movs r2, 0x1F _08031444: ldr r0, [r4] adds r0, r1 strb r3, [r0] ldr r0, [r4] adds r0, r1 adds r0, 0x22 strb r3, [r0] adds r1, 0x30 subs r2, 0x1 cmp r2, 0 bge _08031444 _0803145A: ldr r0, _08031484 ldr r0, [r0] movs r1, 0x8C lsls r1, 1 adds r0, r1 ldr r0, [r0] cmp r0, 0x2 beq _0803146E cmp r0, 0x4 bne _0803148E _0803146E: bl sub_8030C20 lsls r0, 24 cmp r0, 0 beq _08031488 movs r0, 0x5 bl sub_80310E4 b _0803148E .align 2, 0 _08031480: .4byte gUnknown_203B480 _08031484: .4byte gUnknown_203B328 _08031488: movs r0, 0 bl sub_80310E4 _0803148E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80313D8 thumb_func_start sub_8031498 sub_8031498: push {lr} bl sub_8030DA0 cmp r0, 0x1 bls _080314B0 cmp r0, 0x3 bhi _080314B0 bl sub_8030DE4 movs r0, 0 bl sub_80310E4 _080314B0: pop {r0} bx r0 thumb_func_end sub_8031498 thumb_func_start sub_80314B4 sub_80314B4: push {r4-r6,lr} lsls r0, 16 asrs r5, r0, 16 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r6, _08031534 movs r0, 0x18 movs r1, 0x8 bl MemoryAlloc str r0, [r6] ldr r0, _08031538 adds r1, r5, 0 bl sub_808D8E0 adds r0, r5, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _0803153C bl strcpy ldr r0, [r6] movs r4, 0 str r4, [r0, 0x8] str r4, [r0, 0xC] cmp r5, 0 beq _0803151E adds r0, r5, 0 bl sub_808DDD0 ldr r1, [r6] str r0, [r1, 0x8] strb r4, [r1, 0x14] ldr r0, [r6] strb r4, [r0, 0x15] ldr r0, [r6] strb r4, [r0, 0x16] ldr r1, [r6] movs r0, 0x2 strh r0, [r1, 0x10] movs r0, 0x8 strh r0, [r1, 0x12] ldr r0, [r1, 0x8] cmp r0, 0 beq _0803151E ldr r0, [r0, 0x4] str r0, [r1, 0xC] _0803151E: ldr r0, _08031534 ldr r1, [r0] movs r0, 0 str r0, [r1, 0x4] movs r0, 0x1 bl sub_80317C0 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08031534: .4byte gUnknown_203B32C _08031538: .4byte gUnknown_202E5D8 _0803153C: .4byte gUnknown_202DF98 thumb_func_end sub_80314B4 thumb_func_start sub_8031540 sub_8031540: push {lr} ldr r0, _08031558 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x9 bhi _080315BA lsls r0, 2 ldr r1, _0803155C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031558: .4byte gUnknown_203B32C _0803155C: .4byte _08031560 .align 2, 0 _08031560: .4byte _080315AC .4byte _08031588 .4byte _08031588 .4byte _0803158E .4byte _08031594 .4byte _0803159A .4byte _080315A0 .4byte _080315A6 .4byte _080315B0 .4byte _080315B6 _08031588: bl sub_80317D8 b _080315BA _0803158E: bl sub_8031848 b _080315BA _08031594: bl sub_8031864 b _080315BA _0803159A: bl sub_80318D0 b _080315BA _080315A0: bl sub_80318EC b _080315BA _080315A6: bl sub_803192C b _080315BA _080315AC: movs r0, 0x3 b _080315BC _080315B0: bl sub_8031948 b _080315BA _080315B6: bl sub_8031988 _080315BA: movs r0, 0 _080315BC: pop {r1} bx r1 thumb_func_end sub_8031540 thumb_func_start sub_80315C0 sub_80315C0: push {r4,lr} ldr r4, _080315E4 ldr r0, [r4] cmp r0, 0 beq _080315DE ldr r0, [r0, 0x8] cmp r0, 0 beq _080315D4 bl CloseFile _080315D4: ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _080315DE: pop {r4} pop {r0} bx r0 .align 2, 0 _080315E4: .4byte gUnknown_203B32C thumb_func_end sub_80315C0 thumb_func_start nullsub_39 nullsub_39: bx lr thumb_func_end nullsub_39 thumb_func_start sub_80315EC sub_80315EC: push {r4,r5,lr} sub sp, 0x14 movs r5, 0 ldr r0, _08031618 ldr r2, [r0] ldr r1, [r2, 0x8] adds r3, r0, 0 cmp r1, 0 beq _08031602 adds r5, r2, 0 adds r5, 0x8 _08031602: ldrb r0, [r2] subs r0, 0x1 cmp r0, 0x8 bls _0803160C b _080317B0 _0803160C: lsls r0, 2 ldr r1, _0803161C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031618: .4byte gUnknown_203B32C _0803161C: .4byte _08031620 .align 2, 0 _08031620: .4byte _08031700 .4byte _08031714 .4byte _08031728 .4byte _08031758 .4byte _08031780 .4byte _08031694 .4byte _080316A8 .4byte _08031644 .4byte _08031658 _08031644: ldr r0, _08031650 ldr r1, [r3] ldr r2, [r1, 0x4] ldr r3, _08031654 b _08031760 .align 2, 0 _08031650: .4byte gUnknown_80E0C4C _08031654: .4byte gUnknown_80E0BD4 _08031658: ldr r0, [r3] ldr r0, [r0, 0x4] cmp r0, 0x10 beq _0803167C cmp r0, 0x10 bgt _0803166A cmp r0, 0xF beq _08031674 b _080317B0 _0803166A: cmp r0, 0x11 beq _08031684 cmp r0, 0x12 beq _0803168C b _080317B0 _08031674: ldr r0, _08031678 b _08031790 .align 2, 0 _08031678: .4byte gUnknown_80E0C70 _0803167C: ldr r0, _08031680 b _08031790 .align 2, 0 _08031680: .4byte gUnknown_80E0DD0 _08031684: ldr r0, _08031688 b _08031790 .align 2, 0 _08031688: .4byte gUnknown_80E0ED8 _0803168C: ldr r0, _08031690 b _08031790 .align 2, 0 _08031690: .4byte gUnknown_80E10C8 _08031694: ldr r0, _080316A0 ldr r1, [r3] ldr r2, [r1, 0x4] ldr r3, _080316A4 b _08031760 .align 2, 0 _080316A0: .4byte gUnknown_80E0C4C _080316A4: .4byte gUnknown_80E0B3C _080316A8: ldr r0, [r3] ldr r0, [r0, 0x4] subs r0, 0xA cmp r0, 0x4 bls _080316B4 b _080317B0 _080316B4: lsls r0, 2 ldr r1, _080316C0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080316C0: .4byte _080316C4 .align 2, 0 _080316C4: .4byte _080316D8 .4byte _080316E0 .4byte _080316F0 .4byte _080316E8 .4byte _080316F8 _080316D8: ldr r0, _080316DC b _08031790 .align 2, 0 _080316DC: .4byte gUnknown_80E120C _080316E0: ldr r0, _080316E4 b _08031790 .align 2, 0 _080316E4: .4byte gUnknown_80E136C _080316E8: ldr r0, _080316EC b _08031790 .align 2, 0 _080316EC: .4byte gUnknown_80E1420 _080316F0: ldr r0, _080316F4 b _08031790 .align 2, 0 _080316F4: .4byte gUnknown_80E157C _080316F8: ldr r0, _080316FC b _08031790 .align 2, 0 _080316FC: .4byte gUnknown_80E169C _08031700: ldr r0, _0803170C ldr r1, [r3] ldr r2, [r1, 0x4] ldr r3, _08031710 b _08031760 .align 2, 0 _0803170C: .4byte gUnknown_80E17C8 _08031710: .4byte gUnknown_80E0A48 _08031714: ldr r0, _08031720 ldr r1, [r3] ldr r2, [r1, 0x4] ldr r3, _08031724 b _08031760 .align 2, 0 _08031720: .4byte gUnknown_80E183C _08031724: .4byte gUnknown_80E0A48 _08031728: ldr r0, [r3] ldr r0, [r0, 0x4] cmp r0, 0x1 beq _08031748 cmp r0, 0x1 bgt _0803173A cmp r0, 0 beq _08031740 b _080317B0 _0803173A: cmp r0, 0x2 beq _08031750 b _080317B0 _08031740: ldr r0, _08031744 b _08031790 .align 2, 0 _08031744: .4byte gUnknown_80E1868 _08031748: ldr r0, _0803174C b _08031790 .align 2, 0 _0803174C: .4byte gUnknown_80E1A30 _08031750: ldr r0, _08031754 b _08031790 .align 2, 0 _08031754: .4byte gUnknown_80E1AD8 _08031758: ldr r0, _08031778 ldr r1, [r3] ldr r2, [r1, 0x4] ldr r3, _0803177C _08031760: movs r4, 0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r5, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _080317B0 .align 2, 0 _08031778: .4byte gUnknown_80E0C4C _0803177C: .4byte gUnknown_80E0ABC _08031780: ldr r0, [r3] ldr r0, [r0, 0x4] cmp r0, 0x6 beq _0803178E cmp r0, 0x9 beq _080317A4 b _080317B0 _0803178E: ldr r0, _0803179C _08031790: ldr r3, _080317A0 movs r1, 0 adds r2, r5, 0 bl sub_80141B4 b _080317B0 .align 2, 0 _0803179C: .4byte gUnknown_80E1B88 _080317A0: .4byte 0x0000010d _080317A4: ldr r0, _080317B8 ldr r3, _080317BC movs r1, 0 adds r2, r5, 0 bl sub_80141B4 _080317B0: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080317B8: .4byte gUnknown_80E1D84 _080317BC: .4byte 0x0000010d thumb_func_end sub_80315EC thumb_func_start sub_80317C0 sub_80317C0: push {lr} ldr r1, _080317D4 ldr r1, [r1] strb r0, [r1] bl nullsub_39 bl sub_80315EC pop {r0} bx r0 .align 2, 0 _080317D4: .4byte gUnknown_203B32C thumb_func_end sub_80317C0 thumb_func_start sub_80317D8 sub_80317D8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803183C ldr r2, [sp] cmp r2, 0x5 bhi _0803183C lsls r0, r2, 2 ldr r1, _080317F8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080317F8: .4byte _080317FC .align 2, 0 _080317FC: .4byte _08031830 .4byte _08031830 .4byte _08031830 .4byte _0803181C .4byte _08031814 .4byte _08031814 _08031814: movs r0, 0 bl sub_80317C0 b _0803183C _0803181C: ldr r0, _0803182C ldr r0, [r0] str r2, [r0, 0x4] movs r0, 0x4 bl sub_80317C0 b _0803183C .align 2, 0 _0803182C: .4byte gUnknown_203B32C _08031830: ldr r0, _08031844 ldr r0, [r0] str r2, [r0, 0x4] movs r0, 0x3 bl sub_80317C0 _0803183C: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08031844: .4byte gUnknown_203B32C thumb_func_end sub_80317D8 thumb_func_start sub_8031848 sub_8031848: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803185C movs r0, 0x2 bl sub_80317C0 _0803185C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8031848 thumb_func_start sub_8031864 sub_8031864: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080318C4 ldr r0, [sp] subs r1, r0, 0x5 adds r2, r0, 0 cmp r1, 0x4 bhi _080318C4 lsls r0, r1, 2 ldr r1, _08031888 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031888: .4byte _0803188C .align 2, 0 _0803188C: .4byte _080318A0 .4byte _080318B8 .4byte _080318A8 .4byte _080318B0 .4byte _080318B8 _080318A0: movs r0, 0x2 bl sub_80317C0 b _080318C4 _080318A8: movs r0, 0x6 bl sub_80317C0 b _080318C4 _080318B0: movs r0, 0x8 bl sub_80317C0 b _080318C4 _080318B8: ldr r0, _080318CC ldr r0, [r0] str r2, [r0, 0x4] movs r0, 0x5 bl sub_80317C0 _080318C4: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080318CC: .4byte gUnknown_203B32C thumb_func_end sub_8031864 thumb_func_start sub_80318D0 sub_80318D0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080318E4 movs r0, 0x4 bl sub_80317C0 _080318E4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80318D0 thumb_func_start sub_80318EC sub_80318EC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08031920 ldr r1, [sp] cmp r1, 0x5 bne _08031908 movs r0, 0x4 bl sub_80317C0 b _08031920 _08031908: cmp r1, 0x5 blt _08031920 cmp r1, 0xE bgt _08031920 cmp r1, 0xA blt _08031920 ldr r0, _08031928 ldr r0, [r0] str r1, [r0, 0x4] movs r0, 0x7 bl sub_80317C0 _08031920: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08031928: .4byte gUnknown_203B32C thumb_func_end sub_80318EC thumb_func_start sub_803192C sub_803192C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08031940 movs r0, 0x6 bl sub_80317C0 _08031940: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803192C thumb_func_start sub_8031948 sub_8031948: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803197C ldr r1, [sp] cmp r1, 0x5 bne _08031964 movs r0, 0x4 bl sub_80317C0 b _0803197C _08031964: cmp r1, 0x5 blt _0803197C cmp r1, 0x12 bgt _0803197C cmp r1, 0xF blt _0803197C ldr r0, _08031984 ldr r0, [r0] str r1, [r0, 0x4] movs r0, 0x9 bl sub_80317C0 _0803197C: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08031984: .4byte gUnknown_203B32C thumb_func_end sub_8031948 thumb_func_start sub_8031988 sub_8031988: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803199C movs r0, 0x8 bl sub_80317C0 _0803199C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8031988 thumb_func_start sub_80319A4 sub_80319A4: push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 adds r5, r1, 0 mov r8, r2 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r6, _080319F4 movs r0, 0x78 movs r1, 0x8 bl MemoryAlloc str r0, [r6] strb r4, [r0, 0xC] ldr r0, [r6] strb r5, [r0, 0xD] ldr r0, [r6] bl sub_801317C ldr r1, [r6] mov r0, r8 str r0, [r1, 0x10] lsls r0, 1 add r0, r8 lsls r0, 3 adds r0, 0x18 adds r0, r1, r0 str r0, [r1, 0x14] bl sub_8031A2C movs r0, 0x1 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080319F4: .4byte gUnknown_203B330 thumb_func_end sub_80319A4 thumb_func_start sub_80319F8 sub_80319F8: push {lr} ldr r0, _08031A18 ldr r0, [r0] ldr r1, [r0, 0x10] bl sub_8012A64 cmp r0, 0x1 beq _08031A1C cmp r0, 0x2 bne _08031A26 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08031A28 .align 2, 0 _08031A18: .4byte gUnknown_203B330 _08031A1C: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08031A28 _08031A26: movs r0, 0 _08031A28: pop {r1} bx r1 thumb_func_end sub_80319F8 thumb_func_start sub_8031A2C sub_8031A2C: push {lr} bl sub_8031A84 bl sub_8031AE8 pop {r0} bx r0 thumb_func_end sub_8031A2C thumb_func_start sub_8031A3C sub_8031A3C: push {r4,r5,lr} ldr r4, _08031A7C ldr r2, [r4] cmp r2, 0 beq _08031A76 ldr r0, [r2, 0x10] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x18 ldr r0, _08031A80 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08031A76: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08031A7C: .4byte gUnknown_203B330 _08031A80: .4byte gUnknown_80E1EFC thumb_func_end sub_8031A3C thumb_func_start sub_8031A84 sub_8031A84: push {r4,r5,lr} ldr r4, _08031AE0 ldr r0, [r4] adds r0, 0x18 bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x10] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x18 ldr r0, _08031AE4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r1, [r4] ldrb r0, [r1, 0xC] cmp r0, 0x2 bne _08031AC6 ldrb r0, [r1, 0xD] bl sub_80969D0 adds r1, r0, 0 cmp r1, 0 bne _08031ABE movs r1, 0x1 _08031ABE: ldr r0, [r4] ldr r0, [r0, 0x14] bl sub_8012D08 _08031AC6: bl sub_8004914 ldr r0, _08031AE0 ldr r0, [r0] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08031AE0: .4byte gUnknown_203B330 _08031AE4: .4byte gUnknown_80E1F18 thumb_func_end sub_8031A84 thumb_func_start sub_8031AE8 sub_8031AE8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xDC ldr r7, _08031B24 ldr r0, [r7] ldr r0, [r0, 0x10] bl sub_80073B8 ldr r2, _08031B28 ldr r0, [r7] ldr r3, [r0, 0x10] movs r6, 0 str r6, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r1, [r7] ldrb r0, [r1, 0xC] cmp r0, 0x1 beq _08031B2C cmp r0, 0x1 bgt _08031B1E b _08031CD4 _08031B1E: cmp r0, 0x2 beq _08031B94 b _08031CD4 .align 2, 0 _08031B24: .4byte gUnknown_203B330 _08031B28: .4byte gUnknown_80E1F30 _08031B2C: add r4, sp, 0x68 adds r0, r4, 0 bl sub_8099394 ldrb r0, [r4] bl sub_8095228 adds r5, r0, 0 ldr r0, [r7] ldr r3, [r0, 0x10] movs r0, 0xA movs r1, 0x10 movs r2, 0x3 bl sub_803B6B0 ldr r1, _08031B8C ldrb r2, [r5, 0x5] add r0, sp, 0x4 bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] str r6, [sp] movs r0, 0x15 movs r1, 0x10 add r2, sp, 0x4 bl xxx_call_draw_string ldr r4, _08031B90 movs r1, 0xC ldrsh r0, [r5, r1] bl sub_808D994 adds r2, r0, 0 add r0, sp, 0x4 adds r1, r4, 0 bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] str r6, [sp] movs r0, 0x28 movs r1, 0x10 add r2, sp, 0x4 bl xxx_call_draw_string b _08031D4E .align 2, 0 _08031B8C: .4byte gUnknown_80E1F3C _08031B90: .4byte gUnknown_80E1F40 _08031B94: ldrb r0, [r1, 0xD] bl sub_80969D0 adds r1, r0, 0 cmp r1, 0 bne _08031BB0 ldr r2, _08031BAC ldr r0, [r7] ldr r3, [r0, 0x10] str r1, [sp] b _08031D2C .align 2, 0 _08031BAC: .4byte gUnknown_80E1F54 _08031BB0: movs r6, 0x10 movs r2, 0 mov r10, r2 mov r8, r2 ldr r0, _08031C28 mov r9, r0 mov r1, sp adds r1, 0x6C str r1, [sp, 0xD8] _08031BC2: mov r2, r10 lsls r0, r2, 24 lsrs r0, 24 bl sub_8096AB4 adds r4, r0, 0 ldr r1, [r7] ldrb r0, [r4, 0x4] ldrb r2, [r1, 0xD] cmp r0, r2 bne _08031CC2 ldrb r0, [r4] cmp r0, 0 beq _08031CC2 cmp r0, 0x5 beq _08031CC2 cmp r0, 0x7 beq _08031CC2 ldr r3, [r1, 0x10] movs r0, 0xA adds r1, r6, 0 movs r2, 0x3 bl sub_803B6B0 ldrb r0, [r4, 0x1] add r5, sp, 0x6C cmp r0, 0x3 beq _08031C16 ldrb r2, [r4, 0x5] ldr r0, [sp, 0xD8] ldr r1, _08031C2C bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] mov r0, r8 str r0, [sp] movs r0, 0x15 adds r1, r6, 0 ldr r2, [sp, 0xD8] bl xxx_call_draw_string _08031C16: ldrb r0, [r4, 0x1] cmp r0, 0x3 beq _08031C58 cmp r0, 0x3 bgt _08031C30 cmp r0, 0x2 beq _08031C70 b _08031C9C .align 2, 0 _08031C28: .4byte gUnknown_202DE58 _08031C2C: .4byte gUnknown_80E1F3C _08031C30: cmp r0, 0x4 bne _08031C9C ldrb r1, [r4, 0x10] mov r0, r9 movs r2, 0 bl sub_8090DC4 adds r0, r5, 0 ldr r1, _08031C54 mov r2, r9 bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] mov r1, r8 str r1, [sp] b _08031C8A .align 2, 0 _08031C54: .4byte gUnknown_80E1F60 _08031C58: ldrb r1, [r4, 0x10] mov r0, r9 movs r2, 0 bl sub_8090DC4 adds r0, r5, 0 ldr r1, _08031C6C mov r2, r9 b _08031C7E .align 2, 0 _08031C6C: .4byte gUnknown_80E1F70 _08031C70: movs r1, 0xE ldrsh r0, [r4, r1] bl sub_808D994 adds r2, r0, 0 adds r0, r5, 0 ldr r1, _08031C98 _08031C7E: bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] mov r2, r8 str r2, [sp] _08031C8A: movs r0, 0x28 adds r1, r6, 0 adds r2, r5, 0 bl xxx_call_draw_string b _08031CC0 .align 2, 0 _08031C98: .4byte gUnknown_80E1F80 _08031C9C: movs r1, 0xE ldrsh r0, [r4, r1] bl sub_808D994 adds r2, r0, 0 adds r0, r5, 0 ldr r1, _08031CD0 bl sub_800D158 ldr r0, [r7] ldr r3, [r0, 0x10] mov r2, r8 str r2, [sp] movs r0, 0x28 adds r1, r6, 0 adds r2, r5, 0 bl xxx_call_draw_string _08031CC0: adds r6, 0xC _08031CC2: movs r0, 0x1 add r10, r0 mov r1, r10 cmp r1, 0x7 bgt _08031CCE b _08031BC2 _08031CCE: b _08031D4E .align 2, 0 _08031CD0: .4byte gUnknown_80E1F40 _08031CD4: add r0, sp, 0xD0 mov r4, sp adds r4, 0xD2 adds r1, r4, 0 bl sub_80992E0 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _08031D04 movs r2, 0 ldrsh r0, [r4, r2] bl sub_80974C4 adds r2, r0, 0 ldr r0, _08031D00 ldr r0, [r0] ldr r3, [r0, 0x10] movs r0, 0 str r0, [sp] b _08031D2C .align 2, 0 _08031D00: .4byte gUnknown_203B330 _08031D04: add r4, sp, 0xD4 adds r0, r4, 0 bl sub_8099360 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08031D3C ldrb r0, [r4] bl sub_80A2688 lsls r0, 16 asrs r0, 16 bl sub_80975DC adds r2, r0, 0 ldr r0, _08031D38 ldr r0, [r0] ldr r3, [r0, 0x10] str r5, [sp] _08031D2C: movs r0, 0xA movs r1, 0x10 bl xxx_call_draw_string b _08031D4E .align 2, 0 _08031D38: .4byte gUnknown_203B330 _08031D3C: ldr r2, _08031D68 ldr r0, _08031D6C ldr r0, [r0] ldr r3, [r0, 0x10] str r1, [sp] movs r0, 0xA movs r1, 0x10 bl xxx_call_draw_string _08031D4E: ldr r0, _08031D6C ldr r0, [r0] ldr r0, [r0, 0x10] bl sub_80073E0 add sp, 0xDC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08031D68: .4byte gUnknown_80E1F94 _08031D6C: .4byte gUnknown_203B330 thumb_func_end sub_8031AE8 thumb_func_start sub_8031D70 sub_8031D70: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 ldr r5, _08031DC4 movs r0, 0x7C movs r1, 0x8 bl MemoryAlloc str r0, [r5] stm r0!, {r6} bl sub_801317C ldr r0, [r5] str r4, [r0, 0x10] lsls r1, r4, 1 adds r1, r4 lsls r1, 3 adds r1, 0x18 adds r1, r0, r1 str r1, [r0, 0x14] adds r0, 0x18 bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x10] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x18 ldr r0, _08031DC8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_8031E00 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08031DC4: .4byte gUnknown_203B334 _08031DC8: .4byte gUnknown_80E1FC4 thumb_func_end sub_8031D70 thumb_func_start sub_8031DCC sub_8031DCC: push {lr} ldr r0, _08031DEC ldr r1, [r0] adds r0, r1, 0x4 ldr r1, [r1, 0x10] bl sub_8012A64 cmp r0, 0x1 beq _08031DF0 cmp r0, 0x2 bne _08031DFA movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08031DFC .align 2, 0 _08031DEC: .4byte gUnknown_203B334 _08031DF0: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08031DFC _08031DFA: movs r0, 0 _08031DFC: pop {r1} bx r1 thumb_func_end sub_8031DCC thumb_func_start sub_8031E00 sub_8031E00: push {lr} bl sub_8031E58 bl sub_8031E74 pop {r0} bx r0 thumb_func_end sub_8031E00 thumb_func_start sub_8031E10 sub_8031E10: push {r4,r5,lr} ldr r4, _08031E50 ldr r2, [r4] cmp r2, 0 beq _08031E4A ldr r0, [r2, 0x10] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x18 ldr r0, _08031E54 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08031E4A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08031E50: .4byte gUnknown_203B334 _08031E54: .4byte gUnknown_80E1FA8 thumb_func_end sub_8031E10 thumb_func_start sub_8031E58 sub_8031E58: push {lr} bl sub_8004914 ldr r0, _08031E70 ldr r0, [r0] adds r0, 0x18 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 .align 2, 0 _08031E70: .4byte gUnknown_203B334 thumb_func_end sub_8031E58 thumb_func_start sub_8031E74 sub_8031E74: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x3C ldr r3, _08031EC0 ldr r5, _08031EC4 ldr r2, [r5] ldr r1, [r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 4 ldr r4, [r3] adds r4, r0 ldr r0, [r2, 0x10] bl sub_80073B8 ldr r2, _08031EC8 ldr r0, [r5] ldr r3, [r0, 0x10] movs r0, 0 str r0, [sp] movs r0, 0x14 movs r1, 0 bl xxx_call_draw_string add r0, sp, 0x4 adds r1, r4, 0 bl sub_803D2C0 movs r7, 0 mov r8, r5 _08031EB2: cmp r7, 0x4 ble _08031ED0 cmp r7, 0xC bgt _08031ECC movs r6, 0x6 movs r5, 0x16 b _08031F00 .align 2, 0 _08031EC0: .4byte gUnknown_203B480 _08031EC4: .4byte gUnknown_203B334 _08031EC8: .4byte gUnknown_80E1FDC _08031ECC: cmp r7, 0x11 bgt _08031ED6 _08031ED0: movs r6, 0x7 movs r5, 0x15 b _08031F00 _08031ED6: cmp r7, 0x16 ble _08031EE8 cmp r7, 0x1E bgt _08031EE4 movs r6, 0x6 movs r5, 0x25 b _08031F00 _08031EE4: cmp r7, 0x23 bgt _08031EEE _08031EE8: movs r6, 0x7 movs r5, 0x24 b _08031F00 _08031EEE: cmp r7, 0x28 ble _08031EFC cmp r7, 0x30 bgt _08031EFC movs r6, 0x6 movs r5, 0x34 b _08031F00 _08031EFC: movs r6, 0x7 movs r5, 0x33 _08031F00: adds r0, r7, 0 movs r1, 0x12 bl __modsi3 movs r1, 0xB adds r4, r0, 0 muls r4, r1 adds r4, 0x6 mov r0, sp adds r0, r7 adds r0, 0x4 ldrb r2, [r0] mov r1, r8 ldr r0, [r1] ldr r0, [r0, 0x10] str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 adds r3, r6, 0 bl sub_8012C60 mov r1, r8 ldr r0, [r1] ldr r0, [r0, 0x10] adds r2, r5, 0 adds r2, 0xA movs r1, 0x5 str r1, [sp] adds r1, r4, 0 movs r3, 0xA bl sub_80078A4 adds r7, 0x1 cmp r7, 0x35 ble _08031EB2 ldr r0, _08031F5C ldr r0, [r0] ldr r0, [r0, 0x10] bl sub_80073E0 add sp, 0x3C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08031F5C: .4byte gUnknown_203B334 thumb_func_end sub_8031E74 thumb_func_start sub_8031F60 sub_8031F60: push {r4-r6,lr} adds r5, r0, 0 ldr r4, _08031FD0 movs r0, 0xA0 movs r1, 0x8 bl MemoryAlloc str r0, [r4] str r5, [r0, 0x34] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x3C adds r1, r0, r1 str r1, [r0, 0x38] adds r0, 0x3C bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x34] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x3C ldr r0, _08031FD4 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldr r0, [r4] ldr r1, [r0, 0x38] adds r0, 0x9C str r0, [r1, 0x14] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x20 movs r2, 0x8 adds r3, r5, 0 bl sub_8013818 bl sub_8032084 bl sub_80320F8 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08031FD0: .4byte gUnknown_203B338 _08031FD4: .4byte gUnknown_80E2008 thumb_func_end sub_8031F60 thumb_func_start sub_8031FD8 sub_8031FD8: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _08031FF0 ldr r0, _08031FEC ldr r0, [r0] bl sub_8013660 movs r0, 0 b _08032034 .align 2, 0 _08031FEC: .4byte gUnknown_203B338 _08031FF0: ldr r4, _0803200C ldr r0, [r4] bl GetKeyPress cmp r0, 0x1 beq _08032010 cmp r0, 0x2 bne _0803201A movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _08032034 .align 2, 0 _0803200C: .4byte gUnknown_203B338 _08032010: movs r0, 0 bl sub_80119D4 movs r0, 0x3 b _08032034 _0803201A: ldr r0, [r4] bl sub_8013938 lsls r0, 24 cmp r0, 0 bne _0803202A movs r0, 0 b _08032034 _0803202A: bl sub_8032084 bl sub_80320F8 movs r0, 0x1 _08032034: pop {r4} pop {r1} bx r1 thumb_func_end sub_8031FD8 thumb_func_start sub_803203C sub_803203C: push {r4,r5,lr} ldr r4, _0803207C ldr r2, [r4] cmp r2, 0 beq _08032076 ldr r0, [r2, 0x34] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x3C ldr r0, _08032080 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08032076: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803207C: .4byte gUnknown_203B338 _08032080: .4byte gUnknown_80E1FF0 thumb_func_end sub_803203C thumb_func_start sub_8032084 sub_8032084: push {r4,lr} ldr r4, _080320F4 ldr r0, [r4] ldrh r1, [r0, 0x20] adds r0, 0x9C movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x1E] adds r0, 0x9D strb r1, [r0] ldr r0, [r4] adds r0, 0x9E movs r1, 0xB strb r1, [r0] ldr r0, [r4] adds r0, 0x9F strb r2, [r0] ldr r0, [r4] movs r1, 0x1A ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x34] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x34] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x4C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _080320F4: .4byte gUnknown_203B338 thumb_func_end sub_8032084 thumb_func_start sub_80320F8 sub_80320F8: push {r4-r7,lr} sub sp, 0x8 ldr r5, _08032158 ldr r0, [r5] ldr r0, [r0, 0x34] bl sub_8008C54 ldr r0, [r5] ldr r0, [r0, 0x34] bl sub_80073B8 ldr r0, [r5] movs r1, 0x1E ldrsh r4, [r0, r1] lsls r4, 3 adds r6, r4, 0 adds r6, 0xA ldr r2, _0803215C ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] adds r0, r6, 0 movs r1, 0 bl xxx_call_draw_string adds r4, 0x4 ldr r1, [r5] adds r0, r1, 0 adds r0, 0x9E ldrb r0, [r0] lsls r0, 3 adds r6, r4, r0 movs r0, 0x1E ldrsh r2, [r1, r0] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x34] str r0, [sp, 0x4] adds r0, r6, 0 movs r1, 0 movs r3, 0x1 bl sub_8012BC4 movs r7, 0 ldr r0, [r5] b _0803223A .align 2, 0 _08032158: .4byte gUnknown_203B338 _0803215C: .4byte gUnknown_80E2020 _08032160: ldr r5, _08032194 ldr r0, [r5] movs r2, 0x1E ldrsh r1, [r0, r2] movs r2, 0x1C ldrsh r0, [r0, r2] muls r0, r1 adds r0, r7 lsls r0, 24 lsrs r6, r0, 24 adds r0, r6, 0 bl sub_8097710 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0803221C subs r0, r6, 0x7 cmp r0, 0x5 bhi _080321EC lsls r0, 2 ldr r1, _08032198 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08032194: .4byte gUnknown_203B338 _08032198: .4byte _0803219C .align 2, 0 _0803219C: .4byte _080321BA .4byte _080321C6 .4byte _080321D4 .4byte _080321E0 .4byte _080321C0 .4byte _080321B4 _080321B4: bl sub_80978B8 b _080321E4 _080321BA: bl sub_8097880 b _080321E4 _080321C0: bl sub_8097838 b _080321E4 _080321C6: bl sub_80977B8 ldr r1, _080321D0 b _080321EA .align 2, 0 _080321D0: .4byte gUnknown_202DE30 _080321D4: bl sub_80977F8 ldr r1, _080321DC b _080321EA .align 2, 0 _080321DC: .4byte gUnknown_202DE30 _080321E0: bl sub_8097870 _080321E4: ldr r1, _08032214 lsls r0, 16 asrs r0, 16 _080321EA: str r0, [r1] _080321EC: ldr r4, _08032218 ldr r0, [r4] adds r1, r7, 0 bl sub_8013800 adds r5, r0, 0 adds r0, r6, 0 bl sub_8097738 adds r2, r0, 0 ldr r0, [r4] ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r5, 0 bl sub_8014FF0 b _08032234 .align 2, 0 _08032214: .4byte gUnknown_202DE30 _08032218: .4byte gUnknown_203B338 _0803221C: ldr r0, [r5] adds r1, r7, 0 bl sub_8013800 adds r1, r0, 0 ldr r2, _08032254 ldr r0, [r5] ldr r3, [r0, 0x34] str r4, [sp] movs r0, 0x8 bl xxx_call_draw_string _08032234: adds r7, 0x1 ldr r0, _08032258 ldr r0, [r0] _0803223A: movs r1, 0x1A ldrsh r0, [r0, r1] cmp r7, r0 blt _08032160 ldr r0, _08032258 ldr r0, [r0] ldr r0, [r0, 0x34] bl sub_80073E0 add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08032254: .4byte gUnknown_80E2030 _08032258: .4byte gUnknown_203B338 thumb_func_end sub_80320F8 thumb_func_start sub_803225C sub_803225C: push {r4,r5,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08032300 movs r4, 0xAD lsls r4, 3 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 ldr r1, [r5] movs r0, 0xA6 lsls r0, 3 adds r2, r1, r0 movs r0, 0 str r0, [r2] movs r2, 0x86 lsls r2, 2 adds r1, r2 movs r0, 0xFF strb r0, [r1] ldr r0, [r5] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r1, _08032304 strh r1, [r0] ldr r0, _08032308 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _0803230C bl strcpy movs r1, 0 movs r2, 0 adds r4, r5, 0 _080322C6: ldr r0, [r5] adds r0, 0x8 adds r0, r1 strb r2, [r0] adds r1, 0x1 cmp r1, 0x35 ble _080322C6 ldr r1, [r4] movs r0, 0x7E str r0, [r1, 0x4] bl sub_8039880 ldr r1, [r4] ldr r2, _08032310 adds r1, r2 strb r0, [r1] ldr r0, [r4] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _08032314 adds r0, r2 strb r1, [r0] movs r0, 0 bl sub_80338C4 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08032300: .4byte gUnknown_203B33C _08032304: .4byte 0x0000ffff _08032308: .4byte gUnknown_202E5D8 _0803230C: .4byte gUnknown_202DF98 _08032310: .4byte 0x0000052c _08032314: .4byte 0x0000052d thumb_func_end sub_803225C thumb_func_start sub_8032318 sub_8032318: push {lr} ldr r0, _08032330 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x7D bls _08032326 b _080327DC _08032326: lsls r0, 2 ldr r1, _08032334 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08032330: .4byte gUnknown_203B33C _08032334: .4byte _08032338 .align 2, 0 _08032338: .4byte _080326A6 .4byte _080326A6 .4byte _080326AC .4byte _0803255A .4byte _0803255A .4byte _0803266C .4byte _08032672 .4byte _08032678 .4byte _0803267E .4byte _08032684 .4byte _0803268A .4byte _08032690 .4byte _08032690 .4byte _08032698 .4byte _080326A0 .4byte _080327CE .4byte _080327CE .4byte _0803262C .4byte _08032634 .4byte _0803263A .4byte _08032640 .4byte _08032646 .4byte _0803264C .4byte _08032652 .4byte _08032764 .4byte _08032658 .4byte _08032660 .4byte _08032666 .4byte _08032612 .4byte _08032626 .4byte _0803261A .4byte _08032620 .4byte _0803260C .4byte _080325CE .4byte _080327CE .4byte _080325C6 .4byte _080325BA .4byte _080325A0 .4byte _080325A8 .4byte _080325AE .4byte _080325B4 .4byte _080325C0 .4byte _0803258C .4byte _0803259A .4byte _08032594 .4byte _0803257E .4byte _08032586 .4byte _08032764 .4byte _080327CE .4byte _080325D4 .4byte _080325DC .4byte _080325E2 .4byte _080325E8 .4byte _080325EE .4byte _080327DC .4byte _080325FA .4byte _080325F4 .4byte _08032600 .4byte _08032606 .4byte _08032764 .4byte _080327CE .4byte _08032560 .4byte _08032566 .4byte _0803256C .4byte _08032572 .4byte _08032578 .4byte _08032764 .4byte _08032658 .4byte _080327CE .4byte _080327CE .4byte _08032794 .4byte _0803279C .4byte _080327A2 .4byte _080327A8 .4byte _080327AE .4byte _080327B4 .4byte _080327BA .4byte _080327C0 .4byte _080327C0 .4byte _080327C8 .4byte _08032722 .4byte _080327D6 .4byte _0803278E .4byte _08032780 .4byte _08032788 .4byte _0803277A .4byte _08032774 .4byte _0803276C .4byte _08032752 .4byte _08032764 .4byte _080326BC .4byte _080326C2 .4byte _080326D6 .4byte _080326CA .4byte _080326D0 .4byte _080326DC .4byte _080326E2 .4byte _080326E8 .4byte _08032730 .4byte _08032744 .4byte _0803273E .4byte _08032738 .4byte _080326F4 .4byte _080326FC .4byte _080326EE .4byte _0803274C .4byte _080326B0 .4byte _080326B6 .4byte _08032764 .4byte _08032722 .4byte _0803272A .4byte _08032744 .4byte _0803271C .4byte _08032716 .4byte _08032708 .4byte _08032710 .4byte _08032702 .4byte _08032758 .4byte _0803275E .4byte _08032764 .4byte _08032530 .4byte _08032536 .4byte _0803253E .4byte _08032544 .4byte _0803254C .4byte _08032552 _08032530: bl sub_8035300 b _080327DC _08032536: movs r0, 0x78 bl sub_8035404 b _080327DC _0803253E: bl sub_8035374 b _080327DC _08032544: movs r0, 0x7A bl sub_8035404 b _080327DC _0803254C: bl sub_80353BC b _080327DC _08032552: movs r0, 0x7C bl sub_8035404 b _080327DC _0803255A: bl sub_8033A2C b _080327DC _08032560: bl sub_803477C b _080327DC _08032566: bl sub_80347AC b _080327DC _0803256C: bl sub_80347C8 b _080327DC _08032572: bl sub_80347E4 b _080327DC _08032578: bl sub_8034804 b _080327DC _0803257E: movs r0, 0x2E bl sub_8035404 b _080327DC _08032586: bl sub_80344C0 b _080327DC _0803258C: movs r0, 0xD bl sub_8035404 b _080327DC _08032594: bl sub_8034478 b _080327DC _0803259A: bl sub_80344A0 b _080327DC _080325A0: movs r0, 0x26 bl sub_8035404 b _080327DC _080325A8: bl sub_803418C b _080327DC _080325AE: bl sub_8034254 b _080327DC _080325B4: bl sub_8034310 b _080327DC _080325BA: bl sub_8034378 b _080327DC _080325C0: bl sub_80343C4 b _080327DC _080325C6: movs r0, 0x21 bl sub_8035404 b _080327DC _080325CE: bl sub_8034404 b _080327DC _080325D4: movs r0, 0x32 bl sub_8035404 b _080327DC _080325DC: bl sub_8034500 b _080327DC _080325E2: bl sub_8034590 b _080327DC _080325E8: bl sub_803464C b _080327DC _080325EE: bl sub_80346A8 b _080327DC _080325F4: bl sub_80346D8 b _080327DC _080325FA: bl sub_8034700 b _080327DC _08032600: bl sub_8034720 b _080327DC _08032606: bl sub_803473C b _080327DC _0803260C: bl sub_8033FB4 b _080327DC _08032612: movs r0, 0x1D bl sub_8035404 b _080327DC _0803261A: bl sub_8034074 b _080327DC _08032620: bl sub_8034130 b _080327DC _08032626: bl sub_8033FE4 b _080327DC _0803262C: movs r0, 0x12 bl sub_8035404 b _080327DC _08032634: bl nullsub_42 b _080327DC _0803263A: bl nullsub_43 b _080327DC _08032640: bl nullsub_44 b _080327DC _08032646: bl nullsub_45 b _080327DC _0803264C: bl sub_8033D74 b _080327DC _08032652: bl sub_8033D94 b _080327DC _08032658: movs r0, 0x1A bl sub_8035404 b _080327DC _08032660: bl sub_8033DBC b _080327DC _08032666: bl sub_8033F64 b _080327DC _0803266C: bl sub_8033C54 b _080327DC _08032672: bl nullsub_41 b _080327DC _08032678: bl sub_8033CAC b _080327DC _0803267E: bl sub_8033D48 b _080327DC _08032684: bl sub_8035424 b _080327DC _0803268A: bl nullsub_50 b _080327DC _08032690: movs r0, 0x6 bl sub_8035404 b _080327DC _08032698: movs r0, 0x7 bl sub_8035404 b _080327DC _080326A0: bl sub_8033B8C b _080327DC _080326A6: bl sub_80339C8 b _080327DC _080326AC: movs r0, 0x3 b _080327DE _080326B0: bl sub_80348C4 b _080327DC _080326B6: bl sub_803482C b _080327DC _080326BC: bl sub_80349B0 b _080327DC _080326C2: movs r0, 0x5C bl sub_8035404 b _080327DC _080326CA: bl sub_8034A70 b _080327DC _080326D0: bl sub_8034B2C b _080327DC _080326D6: bl sub_80349E0 b _080327DC _080326DC: bl sub_8034B88 b _080327DC _080326E2: bl sub_8034C98 b _080327DC _080326E8: bl sub_8034C38 b _080327DC _080326EE: bl sub_8034D54 b _080327DC _080326F4: movs r0, 0x67 bl sub_8035404 b _080327DC _080326FC: bl sub_8034970 b _080327DC _08032702: bl sub_80351E0 b _080327DC _08032708: movs r0, 0x73 bl sub_8035404 b _080327DC _08032710: bl sub_8034D74 b _080327DC _08032716: bl sub_8034EF0 b _080327DC _0803271C: bl sub_8034F38 b _080327DC _08032722: movs r0, 0x6E bl sub_8035404 b _080327DC _0803272A: bl sub_80352A4 b _080327DC _08032730: movs r0, 0x6A bl sub_8035404 b _080327DC _08032738: bl sub_8034EC8 b _080327DC _0803273E: bl sub_8034F18 b _080327DC _08032744: movs r0, 0x62 bl sub_8035404 b _080327DC _0803274C: bl sub_8034F58 b _080327DC _08032752: bl sub_8034F88 b _080327DC _08032758: bl sub_8035018 b _080327DC _0803275E: bl sub_8035038 b _080327DC _08032764: movs r0, 0x2 bl sub_8035404 b _080327DC _0803276C: movs r0, 0x5F bl sub_8035404 b _080327DC _08032774: bl sub_8035094 b _080327DC _0803277A: bl sub_80350F4 b _080327DC _08032780: movs r0, 0x54 bl sub_8035404 b _080327DC _08032788: bl sub_803517C b _080327DC _0803278E: bl sub_8035210 b _080327DC _08032794: movs r0, 0x47 bl sub_8035404 b _080327DC _0803279C: bl nullsub_46 b _080327DC _080327A2: bl nullsub_47 b _080327DC _080327A8: bl nullsub_48 b _080327DC _080327AE: bl nullsub_49 b _080327DC _080327B4: bl sub_8035430 b _080327DC _080327BA: bl nullsub_51 b _080327DC _080327C0: movs r0, 0x4F bl sub_8035404 b _080327DC _080327C8: bl sub_8034848 b _080327DC _080327CE: movs r0, 0x1 bl sub_8035404 b _080327DC _080327D6: movs r0, 0x1 bl sub_8035404 _080327DC: movs r0, 0 _080327DE: pop {r1} bx r1 thumb_func_end sub_8032318 thumb_func_start sub_80327E4 sub_80327E4: push {r4,lr} ldr r4, _08032820 ldr r0, [r4] cmp r0, 0 beq _0803281A bl MemoryFree movs r0, 0 str r0, [r4] bl sub_803084C bl sub_8031E10 bl sub_8023C60 bl sub_80155F0 bl sub_801CBB8 bl sub_802F2C0 bl sub_8030DE4 bl sub_802453C bl sub_801B450 _0803281A: pop {r4} pop {r0} bx r0 .align 2, 0 _08032820: .4byte gUnknown_203B33C thumb_func_end sub_80327E4 thumb_func_start nullsub_40 nullsub_40: bx lr thumb_func_end nullsub_40 thumb_func_start sub_8032828 sub_8032828: push {r4-r6,lr} sub sp, 0x68 ldr r1, _08032848 ldr r0, [r1] ldr r0, [r0] adds r6, r1, 0 cmp r0, 0x7D bls _0803283C bl _080338B4 _0803283C: lsls r0, 2 ldr r1, _0803284C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08032848: .4byte gUnknown_203B33C _0803284C: .4byte _08032850 .align 2, 0 _08032850: .4byte _08032A48 .4byte _08032AD0 .4byte _080338B4 .4byte _08032B80 .4byte _08032BC4 .4byte _08032FD0 .4byte _080338B4 .4byte _08032FF0 .4byte _080338B4 .4byte _080338B4 .4byte _08032FD8 .4byte _08032FE0 .4byte _08032FE8 .4byte _0803356C .4byte _08032C50 .4byte _08033200 .4byte _080331CC .4byte _080331D4 .4byte _080331DC .4byte _080336B2 .4byte _080338B4 .4byte _080331F8 .4byte _08033208 .4byte _080338B4 .4byte _08033234 .4byte _0803323C .4byte _08033244 .4byte _080338B4 .4byte _08032F8C .4byte _08032F98 .4byte _080336B2 .4byte _080338B4 .4byte _08032FB6 .4byte _08032EB8 .4byte _08032FC4 .4byte _08032EAC .4byte _08032F54 .4byte _08032EE0 .4byte _08032EEC .4byte _08032F16 .4byte _080338B4 .4byte _08032F7C .4byte _08032E60 .4byte _08032E6C .4byte _08032EA0 .4byte _08032E48 .4byte _0803341C .4byte _08032E54 .4byte _08032D84 .4byte _08032D90 .4byte _08032D9C .4byte _080336B2 .4byte _080338B4 .4byte _08032DBC .4byte _080338B4 .4byte _08032DCC .4byte _08032E00 .4byte _08032E3C .4byte _08032E0C .4byte _08032E30 .4byte _08032D04 .4byte _08032D10 .4byte _08032D2C .4byte _08032D38 .4byte _08032D44 .4byte _080338B4 .4byte _08032D78 .4byte _08032D20 .4byte _08033720 .4byte _08033728 .4byte _08033684 .4byte _0803368C .4byte _080336B2 .4byte _080338B4 .4byte _080336F8 .4byte _080338B4 .4byte _08032FD8 .4byte _08032FE0 .4byte _08032FE8 .4byte _080338B4 .4byte _08033468 .4byte _08033730 .4byte _08033738 .4byte _0803366C .4byte _08033674 .4byte _08033644 .4byte _0803361C .4byte _08033614 .4byte _080335F4 .4byte _080335C0 .4byte _0803324E .4byte _0803325C .4byte _0803368C .4byte _08033264 .4byte _080338B4 .4byte _08033288 .4byte _080332B8 .4byte _080338B4 .4byte _0803356C .4byte _080335B0 .4byte _08033584 .4byte _080338B4 .4byte _08033412 .4byte _0803341C .4byte _08033448 .4byte _080335B8 .4byte _080332F4 .4byte _080338B4 .4byte _08033460 .4byte _08033470 .4byte _0803349C .4byte _08033450 .4byte _08033458 .4byte _080338B4 .4byte _080333E4 .4byte _080333EC .4byte _080338B4 .4byte _08033604 .4byte _0803360C .4byte _080338B4 .4byte _0803384C .4byte _0803387C .4byte _080337D4 .4byte _080337F0 .4byte _08033770 .4byte _0803378C _08032A48: movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _08032A9C movs r0, 0x5 bl sub_8095324 adds r4, r0, 0 cmp r4, 0 bne _08032A9C ldr r0, _08032A7C ldr r0, [r0] ldr r1, _08032A80 adds r0, r1 ldrb r2, [r0] cmp r2, 0 beq _08032A8C ldr r0, _08032A84 ldr r3, _08032A88 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] b _08032B66 .align 2, 0 _08032A7C: .4byte gUnknown_203B33C _08032A80: .4byte 0x0000052c _08032A84: .4byte gUnknown_80E25F4 _08032A88: .4byte gUnknown_80E2108 _08032A8C: ldr r0, _08032A94 ldr r3, _08032A98 b _08032B5C .align 2, 0 _08032A94: .4byte gUnknown_80E25F4 _08032A98: .4byte gUnknown_80E20B8 _08032A9C: ldr r0, _08032AC0 ldr r0, [r0] ldr r2, _08032AC4 adds r0, r2 ldrb r2, [r0] cmp r2, 0 beq _08032B58 ldr r0, _08032AC8 ldr r3, _08032ACC movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] bl _08033864 .align 2, 0 _08032AC0: .4byte gUnknown_203B33C _08032AC4: .4byte 0x0000052c _08032AC8: .4byte gUnknown_80E25F4 _08032ACC: .4byte gUnknown_80E20E0 _08032AD0: movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _08032B24 movs r0, 0x5 bl sub_8095324 adds r4, r0, 0 cmp r4, 0 bne _08032B24 ldr r0, _08032B04 ldr r0, [r0] ldr r3, _08032B08 adds r0, r3 ldrb r2, [r0] cmp r2, 0 beq _08032B14 ldr r0, _08032B0C ldr r3, _08032B10 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] b _08032B66 .align 2, 0 _08032B04: .4byte gUnknown_203B33C _08032B08: .4byte 0x0000052c _08032B0C: .4byte gUnknown_80E25F4 _08032B10: .4byte gUnknown_80E2108 _08032B14: ldr r0, _08032B1C ldr r3, _08032B20 b _08032B5C .align 2, 0 _08032B1C: .4byte gUnknown_80E25F4 _08032B20: .4byte gUnknown_80E20B8 _08032B24: ldr r0, _08032B48 ldr r0, [r0] ldr r4, _08032B4C adds r0, r4 ldrb r2, [r0] cmp r2, 0 beq _08032B58 ldr r0, _08032B50 ldr r3, _08032B54 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] bl _08033864 .align 2, 0 _08032B48: .4byte gUnknown_203B33C _08032B4C: .4byte 0x0000052c _08032B50: .4byte gUnknown_80E25F4 _08032B54: .4byte gUnknown_80E20E0 _08032B58: ldr r0, _08032B78 ldr r3, _08032B7C _08032B5C: str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] _08032B66: adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0 bl sub_8014248 bl _080338B4 .align 2, 0 _08032B78: .4byte gUnknown_80E25F4 _08032B7C: .4byte gUnknown_80E2068 _08032B80: movs r0, 0x4 bl sub_8095324 adds r2, r0, 0 cmp r2, 0 beq _08032B9C ldr r0, _08032B94 ldr r3, _08032B98 movs r2, 0 b _08032BA0 .align 2, 0 _08032B94: .4byte gUnknown_80E25F4 _08032B98: .4byte gUnknown_80E2130 _08032B9C: ldr r0, _08032BBC ldr r3, _08032BC0 _08032BA0: str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x3 bl sub_8014248 bl _080338B4 .align 2, 0 _08032BBC: .4byte gUnknown_80E25F4 _08032BC0: .4byte gUnknown_80E2190 _08032BC4: movs r0, 0x1 bl sub_8095324 adds r4, r0, 0 cmp r4, 0 bne _08032C0C movs r0, 0x5 bl sub_8095324 cmp r0, 0 bne _08032BF4 ldr r0, _08032BEC ldr r3, _08032BF0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] b _08032C38 .align 2, 0 _08032BEC: .4byte gUnknown_80E25F4 _08032BF0: .4byte gUnknown_80E2268 _08032BF4: ldr r0, _08032C04 ldr r3, _08032C08 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] b _08032C38 .align 2, 0 _08032C04: .4byte gUnknown_80E25F4 _08032C08: .4byte gUnknown_80E2218 _08032C0C: movs r0, 0x5 bl sub_8095324 adds r2, r0, 0 cmp r2, 0 bne _08032C28 ldr r0, _08032C20 ldr r3, _08032C24 b _08032C2E .align 2, 0 _08032C20: .4byte gUnknown_80E25F4 _08032C24: .4byte gUnknown_80E2240 _08032C28: ldr r0, _08032C48 ldr r3, _08032C4C movs r2, 0 _08032C2E: str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] _08032C38: adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x11 bl sub_8014248 bl _080338B4 .align 2, 0 _08032C48: .4byte gUnknown_80E25F4 _08032C4C: .4byte gUnknown_80E21B8 _08032C50: ldr r0, [r6] movs r5, 0xA5 lsls r5, 3 adds r0, r5 ldr r0, [r0] subs r0, 0x3 cmp r0, 0x11 bls _08032C64 bl _080338B4 _08032C64: lsls r0, 2 ldr r1, _08032C70 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08032C70: .4byte _08032C74 .align 2, 0 _08032C74: .4byte _08032CC8 .4byte _08032CD4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _080338B4 .4byte _08032CBC .4byte _08032CE0 .4byte _08032CEC .4byte _08032CF8 _08032CBC: ldr r0, _08032CC4 bl _0803374A .align 2, 0 _08032CC4: .4byte gUnknown_80E2610 _08032CC8: ldr r0, _08032CD0 bl _0803374A .align 2, 0 _08032CD0: .4byte gUnknown_80E2640 _08032CD4: ldr r0, _08032CDC bl _0803374A .align 2, 0 _08032CDC: .4byte gUnknown_80E2680 _08032CE0: ldr r0, _08032CE8 bl _0803374A .align 2, 0 _08032CE8: .4byte gUnknown_80E26B0 _08032CEC: ldr r0, _08032CF4 bl _0803374A .align 2, 0 _08032CF4: .4byte gUnknown_80E26F0 _08032CF8: ldr r0, _08032D00 bl _0803374A .align 2, 0 _08032D00: .4byte gUnknown_80E2728 _08032D04: ldr r0, _08032D0C bl _0803388E .align 2, 0 _08032D0C: .4byte gUnknown_80E276C _08032D10: ldr r0, _08032D18 ldr r3, _08032D1C bl _080336FC .align 2, 0 _08032D18: .4byte gUnknown_80E27A4 _08032D1C: .4byte gUnknown_80E2458 _08032D20: ldr r0, _08032D28 bl _0803388E .align 2, 0 _08032D28: .4byte gUnknown_80E2814 _08032D2C: ldr r0, _08032D34 bl _0803388E .align 2, 0 _08032D34: .4byte gUnknown_80E2840 _08032D38: ldr r0, _08032D40 bl _0803388E .align 2, 0 _08032D40: .4byte gUnknown_80E2874 _08032D44: ldr r0, [r6] ldr r1, _08032D60 adds r0, r1 ldr r0, [r0] cmp r0, 0xC bne _08032D54 bl _080338B4 _08032D54: cmp r0, 0xC bhi _08032D64 cmp r0, 0xB beq _08032D6C bl _080338B4 .align 2, 0 _08032D60: .4byte 0x00000524 _08032D64: cmp r0, 0xE bls _08032D6C bl _080338B4 _08032D6C: ldr r0, _08032D74 bl _0803388E .align 2, 0 _08032D74: .4byte gUnknown_80E2898 _08032D78: ldr r0, _08032D80 bl _0803388E .align 2, 0 _08032D80: .4byte gUnknown_80E28D8 _08032D84: ldr r0, _08032D8C bl _0803388E .align 2, 0 _08032D8C: .4byte gUnknown_80E2904 _08032D90: ldr r0, _08032D98 bl _0803388E .align 2, 0 _08032D98: .4byte gUnknown_80E296C _08032D9C: bl sub_8030894 cmp r0, 0 beq _08032DA8 bl _080338B4 _08032DA8: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl _080336A6 _08032DBC: ldr r0, _08032DC4 ldr r3, _08032DC8 bl _080336FC .align 2, 0 _08032DC4: .4byte gUnknown_80E29A0 _08032DC8: .4byte gUnknown_80E22B4 _08032DCC: ldr r0, [r6] ldr r2, _08032DE8 adds r0, r2 ldr r0, [r0] cmp r0, 0xC bne _08032DDC bl _080338B4 _08032DDC: cmp r0, 0xC bhi _08032DEC cmp r0, 0xB beq _08032DF4 bl _080338B4 .align 2, 0 _08032DE8: .4byte 0x00000524 _08032DEC: cmp r0, 0xE bls _08032DF4 bl _080338B4 _08032DF4: ldr r0, _08032DFC bl _0803388E .align 2, 0 _08032DFC: .4byte gUnknown_80E29D0 _08032E00: ldr r0, _08032E08 bl _0803388E .align 2, 0 _08032E08: .4byte gUnknown_80E2A0C _08032E0C: ldr r0, [r6] movs r3, 0xEF lsls r3, 2 adds r0, r3 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r6] movs r4, 0x86 lsls r4, 2 adds r0, r4 b _0803343E _08032E30: ldr r0, _08032E38 bl _0803388E .align 2, 0 _08032E38: .4byte gUnknown_80E2A1C _08032E3C: ldr r0, _08032E44 bl _0803388E .align 2, 0 _08032E44: .4byte gUnknown_80E2A5C _08032E48: ldr r0, _08032E50 bl _0803388E .align 2, 0 _08032E50: .4byte gUnknown_80E2A80 _08032E54: ldr r0, _08032E5C bl _0803388E .align 2, 0 _08032E5C: .4byte gUnknown_80E2AA8 _08032E60: ldr r0, _08032E68 bl _0803388E .align 2, 0 _08032E68: .4byte gUnknown_80E2AE4 _08032E6C: ldr r0, [r6] ldr r2, _08032E88 adds r0, r2 ldr r0, [r0] cmp r0, 0xC bne _08032E7C bl _080338B4 _08032E7C: cmp r0, 0xC bhi _08032E8C cmp r0, 0xB beq _08032E94 bl _080338B4 .align 2, 0 _08032E88: .4byte 0x00000524 _08032E8C: cmp r0, 0xE bls _08032E94 bl _080338B4 _08032E94: ldr r0, _08032E9C bl _0803388E .align 2, 0 _08032E9C: .4byte gUnknown_80E2B54 _08032EA0: ldr r0, _08032EA8 bl _0803388E .align 2, 0 _08032EA8: .4byte gUnknown_80E2A0C _08032EAC: ldr r0, _08032EB4 bl _0803388E .align 2, 0 _08032EB4: .4byte gUnknown_80E2B90 _08032EB8: ldr r0, _08032ED8 ldr r3, _08032EDC movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0xF bl sub_8014248 bl _080338B4 .align 2, 0 _08032ED8: .4byte gUnknown_80E2BE0 _08032EDC: .4byte gUnknown_80E23A8 _08032EE0: ldr r0, _08032EE8 bl _0803388E .align 2, 0 _08032EE8: .4byte gUnknown_80E2C48 _08032EEC: bl sub_8023CE8 cmp r0, 0 beq _08032EF8 bl sub_8023C60 _08032EF8: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x3 movs r1, 0 movs r2, 0 movs r3, 0x9 bl sub_8023868 bl _080338B4 _08032F16: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _08032F4C ldr r2, _08032F50 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_8023DA4 bl _080336E2 .align 2, 0 _08032F4C: .4byte gUnknown_80E2334 _08032F50: .4byte gUnknown_80E234C _08032F54: ldr r0, _08032F74 ldr r3, _08032F78 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x10 bl sub_8014248 bl _080338B4 .align 2, 0 _08032F74: .4byte gUnknown_80E2C94 _08032F78: .4byte gUnknown_80E22F0 _08032F7C: ldr r0, _08032F84 ldr r3, _08032F88 bl _080336FC .align 2, 0 _08032F84: .4byte gUnknown_80E2CD4 _08032F88: .4byte gUnknown_80E22D0 _08032F8C: ldr r0, _08032F94 bl _0803388E .align 2, 0 _08032F94: .4byte gUnknown_80E2CE8 _08032F98: bl sub_8030894 cmp r0, 0 beq _08032FA4 bl _080338B4 _08032FA4: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x4 b _080336A6 _08032FB6: ldr r0, _08032FBC ldr r3, _08032FC0 b _080336FC .align 2, 0 _08032FBC: .4byte gUnknown_80E2D30 _08032FC0: .4byte gUnknown_80E22B4 _08032FC4: ldr r0, _08032FCC bl _0803388E .align 2, 0 _08032FCC: .4byte gUnknown_80E2D60 _08032FD0: ldr r0, _08032FD4 b _080336FA .align 2, 0 _08032FD4: .4byte gUnknown_80E2D7C _08032FD8: ldr r0, _08032FDC b _080336FA .align 2, 0 _08032FDC: .4byte gUnknown_80E2E20 _08032FE0: ldr r0, _08032FE4 b _08033574 .align 2, 0 _08032FE4: .4byte gUnknown_80E2E54 _08032FE8: ldr r0, _08032FEC b _08033574 .align 2, 0 _08032FEC: .4byte gUnknown_80E2EB4 _08032FF0: ldr r1, [r6] movs r0, 0 str r0, [r1, 0x44] bl sub_8011830 ldr r0, [r6] ldr r0, [r0, 0x40] bl sub_8037B28 adds r4, r0, 0 ldr r0, [r6] str r4, [r0, 0x44] cmp r4, 0 beq _0803300E b _080333DE _0803300E: ldr r1, [r0, 0x40] cmp r1, 0x3 beq _08033028 cmp r1, 0x3 bhi _0803301E cmp r1, 0x2 beq _0803304A b _0803313C _0803301E: cmp r1, 0x4 beq _080330B4 cmp r1, 0x5 beq _0803308E b _0803313C _08033028: adds r0, 0x48 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] adds r0, 0x78 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0x48 adds r2, 0x78 b _08033134 _0803304A: adds r0, 0x48 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] adds r0, 0x78 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r3, 0x86 lsls r3, 2 adds r0, r3 ldrb r0, [r0] bl sub_8095228 ldr r1, [r6] adds r1, 0x48 ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0x48 adds r2, 0x78 b _08033134 _0803308E: adds r0, 0xA8 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r0, [r6] movs r4, 0x98 lsls r4, 1 adds r0, r4 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0xA8 adds r2, r4 b _08033134 _080330B4: adds r0, 0xA8 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r0, [r6] movs r5, 0x98 lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x88 bl MemoryFill8 ldr r1, [r6] adds r0, r1, 0 adds r0, 0xE0 strh r4, [r0] movs r2, 0xB4 lsls r2, 1 adds r0, r1, r2 strh r4, [r0] movs r3, 0x86 lsls r3, 2 adds r0, r1, r3 ldrb r0, [r0] bl sub_8095228 ldr r1, [r6] adds r1, 0xA8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r6] movs r4, 0xA7 lsls r4, 3 adds r3, r2, r4 movs r0, 0 ldrsh r1, [r3, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0803312A adds r0, r2, 0 adds r0, 0xD8 ldr r1, _08033188 ldr r1, [r1] movs r2, 0 ldrsh r3, [r3, r2] movs r2, 0x58 muls r2, r3 adds r1, r2 movs r2, 0x58 bl memcpy _0803312A: ldr r2, [r6] ldr r0, [r2, 0x40] adds r1, r2, 0 adds r1, 0xA8 adds r2, r5 _08033134: bl sub_8037D64 ldr r1, [r6] str r0, [r1, 0x44] _0803313C: ldr r4, _0803318C ldr r2, [r4] ldr r0, [r2, 0x44] cmp r0, 0 beq _08033148 b _080333DE _08033148: ldr r0, [r2, 0x40] cmp r0, 0x2 bcs _08033150 b _080333DE _08033150: cmp r0, 0x3 bls _08033190 cmp r0, 0x5 bls _0803315A b _080333DE _0803315A: adds r1, r2, 0 adds r1, 0xA8 movs r3, 0x98 lsls r3, 1 adds r2, r3 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x44] bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _080331C0 ldr r0, [r4] movs r4, 0x84 lsls r4, 3 adds r1, r0, r4 movs r5, 0xA0 lsls r5, 1 adds r0, r5 b _080333DA .align 2, 0 _08033188: .4byte gUnknown_203B45C _0803318C: .4byte gUnknown_203B33C _08033190: adds r1, r2, 0 adds r1, 0x48 adds r2, 0x78 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x44] bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _080331B4 ldr r0, [r4] movs r2, 0x84 lsls r2, 3 adds r1, r0, r2 adds r0, 0x88 b _080333DA _080331B4: ldr r0, [r4] movs r3, 0x84 lsls r3, 3 adds r1, r0, r3 ldr r0, [r0, 0x58] b _080333DC _080331C0: ldr r0, [r4] movs r4, 0x84 lsls r4, 3 adds r1, r0, r4 adds r0, 0xB8 b _080333DA _080331CC: ldr r0, _080331D0 b _0803388E .align 2, 0 _080331D0: .4byte gUnknown_80E2F14 _080331D4: ldr r0, _080331D8 b _0803388E .align 2, 0 _080331D8: .4byte gUnknown_80E2F44 _080331DC: bl sub_8030894 cmp r0, 0 beq _080331E6 b _080338B4 _080331E6: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 b _080336A6 _080331F8: ldr r0, _080331FC b _080336FA .align 2, 0 _080331FC: .4byte gUnknown_80E2F78 _08033200: ldr r0, _08033204 b _0803388E .align 2, 0 _08033204: .4byte gUnknown_80E2FA0 _08033208: ldr r0, [r6] ldr r5, _08033220 adds r0, r5 ldr r0, [r0] cmp r0, 0xC bne _08033216 b _080338B4 _08033216: cmp r0, 0xC bhi _08033224 cmp r0, 0xB beq _0803322A b _080338B4 .align 2, 0 _08033220: .4byte 0x00000524 _08033224: cmp r0, 0xE bls _0803322A b _080338B4 _0803322A: ldr r0, _08033230 b _0803388E .align 2, 0 _08033230: .4byte gUnknown_80E2FEC _08033234: ldr r0, _08033238 b _0803388E .align 2, 0 _08033238: .4byte gUnknown_80E3030 _0803323C: ldr r0, _08033240 b _0803388E .align 2, 0 _08033240: .4byte gUnknown_80E3078 _08033244: ldr r0, [r6] movs r1, 0xEF lsls r1, 2 adds r0, r1 b _080333F4 _0803324E: ldr r0, _08033254 ldr r3, _08033258 b _080336FC .align 2, 0 _08033254: .4byte gUnknown_80E30A4 _08033258: .4byte gUnknown_80E2458 _0803325C: ldr r0, _08033260 b _0803388E .align 2, 0 _08033260: .4byte gUnknown_80E30D0 _08033264: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _08033280 ldr r2, _08033284 b _080336CC .align 2, 0 _08033280: .4byte gUnknown_80E231C _08033284: .4byte gUnknown_80E2408 _08033288: bl sub_801D008 cmp r0, 0 beq _08033292 b _080338B4 _08033292: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, _080332B4 str r0, [sp, 0x64] add r2, sp, 0x64 movs r0, 0 movs r1, 0x1 movs r3, 0x9 bl sub_801C8C4 b _080338B4 .align 2, 0 _080332B4: .4byte 0x00020003 _080332B8: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _080332EC ldr r2, _080332F0 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_801CCD8 b _080336E2 .align 2, 0 _080332EC: .4byte gUnknown_80E23F0 _080332F0: .4byte gUnknown_80E2408 _080332F4: ldr r1, [r6] movs r0, 0 str r0, [r1, 0x44] bl sub_8011830 ldr r0, [r6] ldr r0, [r0, 0x40] bl sub_8037B28 ldr r1, [r6] str r0, [r1, 0x44] cmp r0, 0 bne _080333DE ldr r0, [r1, 0x40] cmp r0, 0x6 beq _0803331A cmp r0, 0x7 beq _08033358 b _08033388 _0803331A: movs r4, 0xDC lsls r4, 1 adds r0, r1, r4 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r2, 0x86 lsls r2, 2 adds r0, r2 ldrb r0, [r0] bl sub_8095228 ldr r1, [r6] adds r1, r4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r2, [r6] ldr r0, [r2, 0x40] adds r4, r2, r4 movs r3, 0xF4 lsls r3, 1 adds r2, r3 b _0803337E _08033358: movs r4, 0xDC lsls r4, 1 adds r0, r1, r4 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r5, 0xF4 lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r2, [r6] ldr r0, [r2, 0x40] adds r4, r2, r4 adds r2, r5 _0803337E: adds r1, r4, 0 bl sub_8037D64 ldr r1, [r6] str r0, [r1, 0x44] _08033388: ldr r4, _080333C8 ldr r2, [r4] ldr r0, [r2, 0x44] cmp r0, 0 bne _080333DE ldr r0, [r2, 0x40] cmp r0, 0x7 bhi _080333DE cmp r0, 0x6 bcc _080333DE movs r5, 0xDC lsls r5, 1 adds r1, r2, r5 movs r3, 0xF4 lsls r3, 1 adds r2, r3 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x44] bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _080333CC ldr r0, [r4] movs r4, 0x84 lsls r4, 3 adds r1, r0, r4 adds r5, 0x40 adds r0, r5 b _080333DA .align 2, 0 _080333C8: .4byte gUnknown_203B33C _080333CC: ldr r0, [r4] movs r2, 0x84 lsls r2, 3 adds r1, r0, r2 movs r3, 0xE4 lsls r3, 1 adds r0, r3 _080333DA: ldr r0, [r0] _080333DC: str r0, [r1] _080333DE: bl sub_8011854 b _080338B4 _080333E4: ldr r0, _080333E8 b _0803388E .align 2, 0 _080333E8: .4byte gUnknown_80E311C _080333EC: ldr r0, [r6] movs r4, 0xEF lsls r4, 2 adds r0, r4 _080333F4: bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r6] adds r1, 0x8 movs r0, 0x4 bl sub_80151C0 b _080338B4 _08033412: ldr r0, _08033418 b _0803388E .align 2, 0 _08033418: .4byte gUnknown_80E314C _0803341C: ldr r0, [r6] movs r5, 0xEF lsls r5, 2 adds r0, r5 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r6] movs r1, 0x86 lsls r1, 2 adds r0, r1 _0803343E: ldrb r0, [r0] movs r1, 0 bl sub_8031D70 b _080338B4 _08033448: ldr r0, _0803344C b _0803388E .align 2, 0 _0803344C: .4byte gUnknown_80E317C _08033450: ldr r0, _08033454 b _0803388E .align 2, 0 _08033454: .4byte gUnknown_80E319C _08033458: ldr r0, _0803345C b _0803388E .align 2, 0 _0803345C: .4byte gUnknown_80E317C _08033460: ldr r0, _08033464 b _0803388E .align 2, 0 _08033464: .4byte gUnknown_80E31D8 _08033468: ldr r0, _0803346C b _0803388E .align 2, 0 _0803346C: .4byte gUnknown_80E31FC _08033470: ldr r0, [r6] ldr r2, _08033488 adds r0, r2 ldr r0, [r0] cmp r0, 0xC bne _0803347E b _080338B4 _0803347E: cmp r0, 0xC bhi _0803348C cmp r0, 0xB beq _08033492 b _080338B4 .align 2, 0 _08033488: .4byte 0x00000524 _0803348C: cmp r0, 0xE bls _08033492 b _080338B4 _08033492: ldr r0, _08033498 b _0803388E .align 2, 0 _08033498: .4byte gUnknown_80E3220 _0803349C: movs r0, 0x98 lsls r0, 1 bl sub_808D994 adds r1, r0, 0 ldr r4, _080334F8 ldr r0, [r4] ldr r3, _080334FC adds r0, r3 bl strcpy ldr r1, [r4] movs r5, 0xAA lsls r5, 3 adds r0, r1, r5 movs r2, 0 strh r2, [r0] ldr r0, _08033500 adds r1, r0 movs r0, 0x2 strb r0, [r1] ldr r0, [r4] ldr r3, _08033504 adds r1, r0, r3 str r2, [r1] movs r5, 0x84 lsls r5, 3 adds r0, r5 ldr r1, [r0] movs r0, 0x6 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 adds r0, 0x22 ldrb r1, [r0] cmp r1, 0 beq _08033508 ldr r0, [r4] movs r3, 0xAB lsls r3, 3 adds r0, r3 b _08033512 .align 2, 0 _080334F8: .4byte gUnknown_203B33C _080334FC: .4byte 0x0000053c _08033500: .4byte 0x00000552 _08033504: .4byte 0x00000554 _08033508: ldr r0, [r4] movs r4, 0xAB lsls r4, 3 adds r0, r4 movs r1, 0 _08033512: strb r1, [r0] ldr r4, _08033558 ldr r0, [r4] ldr r5, _0803355C adds r0, r5 movs r5, 0 movs r1, 0x1 strb r1, [r0] adds r0, r2, 0x4 movs r1, 0 bl sub_803C200 ldr r1, [r4] movs r3, 0xAC lsls r3, 3 adds r2, r1, r3 str r0, [r2] ldr r0, _08033560 adds r1, r0 strb r5, [r1] ldr r0, [r4] ldr r1, _08033564 adds r0, r1 strb r5, [r0] ldr r0, [r4] ldr r2, _08033568 adds r0, r2 strb r5, [r0] ldr r0, [r4] subs r3, 0x24 adds r0, r3 movs r1, 0 bl sub_802F204 b _080338B4 .align 2, 0 _08033558: .4byte gUnknown_203B33C _0803355C: .4byte 0x0000055b _08033560: .4byte 0x00000559 _08033564: .4byte 0x0000055a _08033568: .4byte 0x0000055c _0803356C: movs r0, 0 bl nullsub_23 ldr r0, _08033580 _08033574: movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 b _080338B4 .align 2, 0 _08033580: .4byte gUnknown_80E2DD0 _08033584: ldr r0, [r6] ldr r4, _0803359C adds r0, r4 ldr r0, [r0] cmp r0, 0xC bne _08033592 b _080338B4 _08033592: cmp r0, 0xC bhi _080335A0 cmp r0, 0xB beq _080335A6 b _080338B4 .align 2, 0 _0803359C: .4byte 0x00000524 _080335A0: cmp r0, 0xE bls _080335A6 b _080338B4 _080335A6: ldr r0, _080335AC b _0803388E .align 2, 0 _080335AC: .4byte gUnknown_80E3248 _080335B0: ldr r0, _080335B4 b _0803388E .align 2, 0 _080335B4: .4byte gUnknown_80E3288 _080335B8: ldr r0, _080335BC b _080336FA .align 2, 0 _080335BC: .4byte gUnknown_80E2D7C _080335C0: bl sub_808D33C adds r1, r0, 0 adds r1, 0x4C add r0, sp, 0x14 movs r2, 0xA bl sub_80922B4 ldr r5, _080335E8 ldr r0, [r5] ldr r4, _080335EC adds r0, r4 ldr r1, _080335F0 add r2, sp, 0x14 bl sub_800D158 ldr r0, [r5] adds r0, r4 b _0803388E .align 2, 0 _080335E8: .4byte gUnknown_203B33C _080335EC: .4byte 0x00000424 _080335F0: .4byte gUnknown_80E32C4 _080335F4: ldr r0, _080335FC ldr r3, _08033600 b _080336FC .align 2, 0 _080335FC: .4byte gUnknown_80E331C _08033600: .4byte gUnknown_80E24D8 _08033604: ldr r0, _08033608 b _0803388E .align 2, 0 _08033608: .4byte gUnknown_80E317C _0803360C: ldr r0, _08033610 b _0803388E .align 2, 0 _08033610: .4byte gUnknown_80E2A0C _08033614: ldr r0, _08033618 b _0803388E .align 2, 0 _08033618: .4byte gUnknown_80E3378 _0803361C: ldr r0, _0803363C ldr r3, _08033640 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x16 bl sub_8014248 b _080338B4 .align 2, 0 _0803363C: .4byte gUnknown_80E339C _08033640: .4byte gUnknown_80E24B0 _08033644: ldr r0, _08033664 ldr r3, _08033668 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x15 bl sub_8014248 b _080338B4 .align 2, 0 _08033664: .4byte gUnknown_80E33D8 _08033668: .4byte gUnknown_80E2470 _0803366C: ldr r0, _08033670 b _0803388E .align 2, 0 _08033670: .4byte gUnknown_80E3430 _08033674: ldr r0, _0803367C ldr r3, _08033680 b _080336FC .align 2, 0 _0803367C: .4byte gUnknown_80E34B0 _08033680: .4byte gUnknown_80E2440 _08033684: ldr r0, _08033688 b _0803388E .align 2, 0 _08033688: .4byte gUnknown_80E34F0 _0803368C: bl sub_8030894 cmp r0, 0 beq _08033696 b _080338B4 _08033696: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x5 _080336A6: movs r1, 0 movs r2, 0 movs r3, 0x6 bl sub_80306A8 b _080338B4 _080336B2: ldr r0, [r6] movs r4, 0xD7 lsls r4, 2 adds r0, r4 bl sub_8006518 ldr r1, [r6] movs r5, 0x87 lsls r5, 2 adds r0, r1, r5 adds r1, r4 ldr r3, _080336F0 ldr r2, _080336F4 _080336CC: str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_803092C _080336E2: ldr r0, [r6] adds r0, r5 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 b _080338B4 .align 2, 0 _080336F0: .4byte gUnknown_80E231C _080336F4: .4byte gUnknown_80E234C _080336F8: ldr r0, _08033718 _080336FA: ldr r3, _0803371C _080336FC: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x6 bl sub_8014248 b _080338B4 .align 2, 0 _08033718: .4byte gUnknown_80E352C _0803371C: .4byte gUnknown_80E2290 _08033720: ldr r0, _08033724 b _0803388E .align 2, 0 _08033724: .4byte gUnknown_80E355C _08033728: ldr r0, _0803372C b _0803388E .align 2, 0 _0803372C: .4byte gUnknown_80E35AC _08033730: ldr r0, _08033734 b _0803388E .align 2, 0 _08033734: .4byte gUnknown_80E35E8 _08033738: ldr r0, [r6] ldr r0, [r0, 0x40] cmp r0, 0x6 bne _08033748 ldr r0, _08033744 b _0803374A .align 2, 0 _08033744: .4byte gUnknown_80E360C _08033748: ldr r0, _08033768 _0803374A: ldr r3, _0803376C movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0xB bl sub_8014248 b _080338B4 .align 2, 0 _08033768: .4byte gUnknown_80E3644 _0803376C: .4byte gUnknown_80E236C _08033770: ldr r0, _08033780 ldr r1, [r6] ldr r5, _08033784 adds r1, r5 ldr r2, [r1] ldr r3, _08033788 b _08033858 .align 2, 0 _08033780: .4byte gUnknown_80E367C _08033784: .4byte 0x00000564 _08033788: .4byte gUnknown_80E25B4 _0803378C: ldr r0, [r6] ldr r1, _080337A4 adds r0, r1 ldr r0, [r0] cmp r0, 0x24 beq _080337BC cmp r0, 0x24 bgt _080337A8 cmp r0, 0x23 beq _080337B2 b _080338B4 .align 2, 0 _080337A4: .4byte 0x00000564 _080337A8: cmp r0, 0x25 beq _080337C4 cmp r0, 0x26 beq _080337CC b _080338B4 _080337B2: ldr r0, _080337B8 b _0803388E .align 2, 0 _080337B8: .4byte gUnknown_80E3690 _080337BC: ldr r0, _080337C0 b _0803388E .align 2, 0 _080337C0: .4byte gUnknown_80E3818 _080337C4: ldr r0, _080337C8 b _0803388E .align 2, 0 _080337C8: .4byte gUnknown_80E3998 _080337CC: ldr r0, _080337D0 b _0803388E .align 2, 0 _080337D0: .4byte gUnknown_80E3B1C _080337D4: ldr r0, _080337E4 ldr r1, [r6] ldr r2, _080337E8 adds r1, r2 ldr r2, [r1] ldr r3, _080337EC b _08033858 .align 2, 0 _080337E4: .4byte gUnknown_80E367C _080337E8: .4byte 0x00000564 _080337EC: .4byte gUnknown_80E2554 _080337F0: ldr r0, [r6] ldr r3, _08033808 adds r0, r3 ldr r0, [r0] subs r0, 0x1E cmp r0, 0x4 bhi _080338B4 lsls r0, 2 ldr r1, _0803380C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08033808: .4byte 0x00000564 _0803380C: .4byte _08033810 .align 2, 0 _08033810: .4byte _08033824 .4byte _0803382C .4byte _0803383C .4byte _08033834 .4byte _08033844 _08033824: ldr r0, _08033828 b _0803388E .align 2, 0 _08033828: .4byte gUnknown_80E3BF8 _0803382C: ldr r0, _08033830 b _0803388E .align 2, 0 _08033830: .4byte gUnknown_80E3DE4 _08033834: ldr r0, _08033838 b _0803388E .align 2, 0 _08033838: .4byte gUnknown_80E3E98 _0803383C: ldr r0, _08033840 b _0803388E .align 2, 0 _08033840: .4byte gUnknown_80E4014 _08033844: ldr r0, _08033848 b _0803388E .align 2, 0 _08033848: .4byte gUnknown_80E4130 _0803384C: ldr r0, _08033870 ldr r1, [r6] ldr r4, _08033874 adds r1, r4 ldr r2, [r1] ldr r3, _08033878 _08033858: movs r4, 0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] _08033864: adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _080338B4 .align 2, 0 _08033870: .4byte gUnknown_80E367C _08033874: .4byte 0x00000564 _08033878: .4byte gUnknown_80E24F8 _0803387C: ldr r0, [r6] ldr r5, _0803389C adds r0, r5 ldr r0, [r0] cmp r0, 0x1A beq _080338A8 cmp r0, 0x1D bne _080338B4 ldr r0, _080338A0 _0803388E: ldr r3, _080338A4 movs r1, 0 movs r2, 0 bl sub_80141B4 b _080338B4 .align 2, 0 _0803389C: .4byte 0x00000564 _080338A0: .4byte gUnknown_80E41DC _080338A4: .4byte 0x00000101 _080338A8: ldr r0, _080338BC ldr r3, _080338C0 movs r1, 0 movs r2, 0 bl sub_80141B4 _080338B4: add sp, 0x68 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080338BC: .4byte gUnknown_80E4314 _080338C0: .4byte 0x00000101 thumb_func_end sub_8032828 thumb_func_start sub_80338C4 sub_80338C4: push {lr} ldr r1, _080338D8 ldr r1, [r1] str r0, [r1] bl nullsub_40 bl sub_8032828 pop {r0} bx r0 .align 2, 0 _080338D8: .4byte gUnknown_203B33C thumb_func_end sub_80338C4 thumb_func_start sub_80338DC sub_80338DC: push {lr} cmp r0, 0x10 bls _080338E4 b _080339BC _080338E4: lsls r0, 2 ldr r1, _080338F0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080338F0: .4byte _080338F4 .align 2, 0 _080338F4: .4byte _080339BC .4byte _08033998 .4byte _08033940 .4byte _08033938 .4byte _08033948 .4byte _08033998 .4byte _08033950 .4byte _08033958 .4byte _08033960 .4byte _08033968 .4byte _08033970 .4byte _08033978 .4byte _08033980 .4byte _08033990 .4byte _08033998 .4byte _080339B0 .4byte _08033988 _08033938: ldr r0, _0803393C b _0803399A .align 2, 0 _0803393C: .4byte gUnknown_80E44A4 _08033940: ldr r0, _08033944 b _0803399A .align 2, 0 _08033944: .4byte gUnknown_80E4500 _08033948: ldr r0, _0803394C b _0803399A .align 2, 0 _0803394C: .4byte gUnknown_80E4550 _08033950: ldr r0, _08033954 b _0803399A .align 2, 0 _08033954: .4byte gUnknown_80E45B4 _08033958: ldr r0, _0803395C b _0803399A .align 2, 0 _0803395C: .4byte gUnknown_80E460C _08033960: ldr r0, _08033964 b _0803399A .align 2, 0 _08033964: .4byte gUnknown_80E4650 _08033968: ldr r0, _0803396C b _0803399A .align 2, 0 _0803396C: .4byte gUnknown_80E468C _08033970: ldr r0, _08033974 b _0803399A .align 2, 0 _08033974: .4byte gUnknown_80E46C8 _08033978: ldr r0, _0803397C b _0803399A .align 2, 0 _0803397C: .4byte gUnknown_80E4704 _08033980: ldr r0, _08033984 b _0803399A .align 2, 0 _08033984: .4byte gUnknown_80E4744 _08033988: ldr r0, _0803398C b _0803399A .align 2, 0 _0803398C: .4byte gUnknown_80E4788 _08033990: ldr r0, _08033994 b _0803399A .align 2, 0 _08033994: .4byte gUnknown_80E47D8 _08033998: ldr r0, _080339A8 _0803399A: ldr r3, _080339AC movs r1, 0 movs r2, 0 bl sub_80141B4 b _080339BC .align 2, 0 _080339A8: .4byte gUnknown_80E4480 _080339AC: .4byte 0x00000101 _080339B0: ldr r0, _080339C0 ldr r3, _080339C4 movs r1, 0 movs r2, 0 bl sub_80141B4 _080339BC: pop {r0} bx r0 .align 2, 0 _080339C0: .4byte gUnknown_80E482C _080339C4: .4byte 0x00000101 thumb_func_end sub_80338DC thumb_func_start sub_80339C8 sub_80339C8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033A24 ldr r0, _080339F4 ldr r0, [r0] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r1, _080339F8 strh r1, [r0] ldr r0, [sp] cmp r0, 0x1 beq _08033A0E cmp r0, 0x1 bgt _080339FC cmp r0, 0 beq _08033A06 b _08033A24 .align 2, 0 _080339F4: .4byte gUnknown_203B33C _080339F8: .4byte 0x0000ffff _080339FC: cmp r0, 0x8 beq _08033A1E cmp r0, 0x17 beq _08033A16 b _08033A24 _08033A06: movs r0, 0x3 bl sub_80338C4 b _08033A24 _08033A0E: movs r0, 0x4 bl sub_80338C4 b _08033A24 _08033A16: movs r0, 0x78 bl sub_80338C4 b _08033A24 _08033A1E: movs r0, 0x2 bl sub_80338C4 _08033A24: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80339C8 thumb_func_start sub_8033A2C sub_8033A2C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 beq _08033A3C b _08033B86 _08033A3C: ldr r2, _08033A58 ldr r1, [r2] movs r0, 0x8 str r0, [r1, 0x40] ldr r0, [sp] subs r0, 0x3 cmp r0, 0x11 bls _08033A4E b _08033B86 _08033A4E: lsls r0, 2 ldr r1, _08033A5C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08033A58: .4byte gUnknown_203B33C _08033A5C: .4byte _08033A60 .align 2, 0 _08033A60: .4byte _08033ACA .4byte _08033AEC .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B80 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033B86 .4byte _08033AA8 .4byte _08033B14 .4byte _08033B3E .4byte _08033B68 _08033AA8: ldr r0, [r2] movs r1, 0x2 str r1, [r0, 0x40] movs r1, 0xA5 lsls r1, 3 adds r0, r1 movs r1, 0x11 str r1, [r0] movs r0, 0x1 bl sub_8095324 cmp r0, 0 beq _08033B0C movs r0, 0x31 bl sub_80338C4 b _08033B86 _08033ACA: ldr r0, [r2] movs r1, 0x3 str r1, [r0, 0x40] movs r2, 0xA5 lsls r2, 3 adds r0, r2 str r1, [r0] bl sub_8095190 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _08033B36 movs r0, 0xF bl sub_80338C4 b _08033B86 _08033AEC: ldr r0, [r2] movs r1, 0x4 str r1, [r0, 0x40] movs r2, 0xA5 lsls r2, 3 adds r0, r2 str r1, [r0] movs r0, 0x4 bl sub_8095324 cmp r0, 0 beq _08033B0C movs r0, 0x1C bl sub_80338C4 b _08033B86 _08033B0C: movs r0, 0x22 bl sub_80338C4 b _08033B86 _08033B14: ldr r0, [r2] movs r1, 0x5 str r1, [r0, 0x40] movs r1, 0xA5 lsls r1, 3 adds r0, r1 movs r1, 0x12 str r1, [r0] movs r0, 0x5 bl sub_8095324 cmp r0, 0 beq _08033B36 movs r0, 0x3D bl sub_80338C4 b _08033B86 _08033B36: movs r0, 0xE bl sub_80338C4 b _08033B86 _08033B3E: ldr r0, [r2] movs r1, 0x6 str r1, [r0, 0x40] movs r2, 0xA5 lsls r2, 3 adds r0, r2 movs r1, 0x13 str r1, [r0] movs r0, 0x5 bl sub_8095324 cmp r0, 0 bne _08033B60 movs r0, 0x51 bl sub_80338C4 b _08033B86 _08033B60: movs r0, 0x5B bl sub_80338C4 b _08033B86 _08033B68: ldr r0, [r2] movs r1, 0x7 str r1, [r0, 0x40] movs r1, 0xA5 lsls r1, 3 adds r0, r1 movs r1, 0x14 str r1, [r0] movs r0, 0x52 bl sub_80338C4 b _08033B86 _08033B80: movs r0, 0x1 bl sub_80338C4 _08033B86: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033A2C thumb_func_start sub_8033B8C sub_8033B8C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033C4C ldr r2, [sp] cmp r2, 0xC bgt _08033BAA cmp r2, 0xB bge _08033BB0 cmp r2, 0x8 beq _08033C46 b _08033C4C _08033BAA: cmp r2, 0xD beq _08033BF4 b _08033C4C _08033BB0: ldr r0, _08033BD4 ldr r0, [r0] ldr r1, _08033BD8 adds r2, r0, r1 movs r1, 0xB str r1, [r2] movs r3, 0xA5 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0x4 beq _08033BEC cmp r0, 0x4 bhi _08033BDC cmp r0, 0x3 beq _08033BE4 b _08033C4C .align 2, 0 _08033BD4: .4byte gUnknown_203B33C _08033BD8: .4byte 0x00000524 _08033BDC: cmp r0, 0x12 bhi _08033C4C cmp r0, 0x11 bcc _08033C4C _08033BE4: movs r0, 0x5 bl sub_80338C4 b _08033C4C _08033BEC: movs r0, 0x23 bl sub_80338C4 b _08033C4C _08033BF4: ldr r0, _08033C14 ldr r0, [r0] ldr r3, _08033C18 adds r1, r0, r3 str r2, [r1] movs r1, 0xA5 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x4 beq _08033C3E cmp r0, 0x4 bhi _08033C1C cmp r0, 0x3 beq _08033C26 b _08033C4C .align 2, 0 _08033C14: .4byte gUnknown_203B33C _08033C18: .4byte 0x00000524 _08033C1C: cmp r0, 0x11 beq _08033C2E cmp r0, 0x12 beq _08033C36 b _08033C4C _08033C26: movs r0, 0x19 bl sub_80338C4 b _08033C4C _08033C2E: movs r0, 0x39 bl sub_80338C4 b _08033C4C _08033C36: movs r0, 0x43 bl sub_80338C4 b _08033C4C _08033C3E: movs r0, 0x2D bl sub_80338C4 b _08033C4C _08033C46: movs r0, 0x1 bl sub_80338C4 _08033C4C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033B8C thumb_func_start sub_8033C54 sub_8033C54: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033CA2 ldr r0, [sp] cmp r0, 0x6 beq _08033C6E cmp r0, 0x8 beq _08033C9C b _08033CA2 _08033C6E: ldr r0, _08033C88 ldr r0, [r0] movs r1, 0xA5 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x4 beq _08033C94 cmp r0, 0x4 bhi _08033C8C cmp r0, 0x3 beq _08033C94 b _08033CA2 .align 2, 0 _08033C88: .4byte gUnknown_203B33C _08033C8C: cmp r0, 0x11 beq _08033C94 cmp r0, 0x12 bne _08033CA2 _08033C94: movs r0, 0xD bl sub_80338C4 b _08033CA2 _08033C9C: movs r0, 0x1 bl sub_80338C4 _08033CA2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033C54 thumb_func_start nullsub_41 nullsub_41: bx lr thumb_func_end nullsub_41 thumb_func_start sub_8033CAC sub_8033CAC: push {r4,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033D40 ldr r4, _08033CDC ldr r1, [r4] ldr r0, [r1, 0x44] cmp r0, 0 bne _08033D36 movs r2, 0xA5 lsls r2, 3 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0x4 beq _08033D2E cmp r0, 0x4 bhi _08033CE0 cmp r0, 0x3 beq _08033CEA b _08033D40 .align 2, 0 _08033CDC: .4byte gUnknown_203B33C _08033CE0: cmp r0, 0x11 beq _08033CF2 cmp r0, 0x12 beq _08033CFA b _08033D40 _08033CEA: movs r0, 0x16 bl sub_80338C4 b _08033D40 _08033CF2: movs r0, 0x37 bl sub_80338C4 b _08033D40 _08033CFA: bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _08033D12 ldr r0, [r4] movs r1, 0xB4 lsls r1, 1 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] b _08033D1A _08033D12: ldr r0, [r4] adds r0, 0xE0 movs r1, 0 ldrsh r0, [r0, r1] _08033D1A: cmp r0, 0 beq _08033D26 movs r0, 0x3F bl sub_80338C4 b _08033D40 _08033D26: movs r0, 0x40 bl sub_80338C4 b _08033D40 _08033D2E: movs r0, 0x2B bl sub_80338C4 b _08033D40 _08033D36: bl sub_80338DC movs r0, 0x8 bl sub_80338C4 _08033D40: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8033CAC thumb_func_start sub_8033D48 sub_8033D48: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033D5C movs r0, 0x1 bl sub_80338C4 _08033D5C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033D48 thumb_func_start nullsub_42 nullsub_42: bx lr thumb_func_end nullsub_42 thumb_func_start nullsub_43 nullsub_43: bx lr thumb_func_end nullsub_43 thumb_func_start nullsub_44 nullsub_44: bx lr thumb_func_end nullsub_44 thumb_func_start nullsub_45 nullsub_45: bx lr thumb_func_end nullsub_45 thumb_func_start sub_8033D74 sub_8033D74: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033D8E movs r0, 0x17 bl sub_80338C4 movs r0, 0 bl sub_8012574 _08033D8E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033D74 thumb_func_start sub_8033D94 sub_8033D94: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033DB6 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08033DB6 bl sub_8012750 movs r0, 0x18 bl sub_80338C4 _08033DB6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033D94 thumb_func_start sub_8033DBC sub_8033DBC: push {r4,lr} sub sp, 0x44 bl sub_80154F0 adds r4, r0, 0 add r0, sp, 0x14 movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x2 bne _08033DD6 b _08033F38 _08033DD6: cmp r4, 0x3 beq _08033DDC b _08033F58 _08033DDC: ldr r2, _08033DF4 ldr r1, _08033DF8 ldr r0, [r1] movs r3, 0xA5 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0x3 beq _08033DFC cmp r0, 0x12 beq _08033E00 b _08033E02 .align 2, 0 _08033DF4: .4byte 0x0000ffdc _08033DF8: .4byte gUnknown_203B33C _08033DFC: movs r2, 0x1C b _08033E02 _08033E00: movs r2, 0x1E _08033E02: ldr r1, [r1] adds r1, 0x8 adds r0, r2, 0 add r2, sp, 0x14 bl sub_8039068 subs r0, 0x7 cmp r0, 0x11 bls _08033E16 b _08033F2E _08033E16: lsls r0, 2 ldr r1, _08033E20 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08033E20: .4byte _08033E24 .align 2, 0 _08033E24: .4byte _08033EA0 .4byte _08033F2E .4byte _08033EE0 .4byte _08033F2E .4byte _08033F2E .4byte _08033F2E .4byte _08033F2E .4byte _08033F2E .4byte _08033F2E .4byte _08033F2E .4byte _08033E6C .4byte _08033E98 .4byte _08033ED8 .4byte _08033F2E .4byte _08033F2E .4byte _08033EA8 .4byte _08033EFC .4byte _08033F2E _08033E6C: ldr r0, _08033E90 ldr r3, _08033E94 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x6 bl sub_8014248 movs r0, 0x1B bl sub_80338C4 b _08033F2E .align 2, 0 _08033E90: .4byte gUnknown_80E48A8 _08033E94: .4byte gUnknown_80E2290 _08033E98: ldr r0, _08033E9C b _08033EE2 .align 2, 0 _08033E9C: .4byte gUnknown_80E48E8 _08033EA0: ldr r0, _08033EA4 b _08033EE2 .align 2, 0 _08033EA4: .4byte gUnknown_80E460C _08033EA8: ldr r0, [sp, 0x24] bl sub_8095274 add r1, sp, 0x14 movs r0, 0x2 strb r0, [r1] adds r0, r1, 0 bl sub_80951BC ldr r0, _08033ED0 ldr r3, _08033ED4 movs r1, 0 movs r2, 0 bl sub_80141B4 movs r0, 0x16 bl sub_80338C4 b _08033F2E .align 2, 0 _08033ED0: .4byte gUnknown_80E4928 _08033ED4: .4byte 0x00000101 _08033ED8: ldr r0, _08033EDC b _08033EE2 .align 2, 0 _08033EDC: .4byte gUnknown_80E4964 _08033EE0: ldr r0, _08033EF4 _08033EE2: ldr r3, _08033EF8 movs r1, 0 movs r2, 0 bl sub_80141B4 movs r0, 0x8 bl sub_80338C4 b _08033F2E .align 2, 0 _08033EF4: .4byte gUnknown_80E499C _08033EF8: .4byte 0x00000101 _08033EFC: add r1, sp, 0x14 movs r0, 0x5 strb r0, [r1] adds r0, r1, 0 bl sub_80951FC ldr r1, [sp, 0x24] movs r0, 0x1 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 movs r1, 0x7 strb r1, [r0] ldr r0, _08033F34 ldr r0, [r0] movs r1, 0 movs r2, 0x5C bl MemoryFill8 movs r0, 0x40 bl sub_80338C4 _08033F2E: bl sub_80155F0 b _08033F58 .align 2, 0 _08033F34: .4byte gUnknown_203B484 _08033F38: bl sub_80155F0 bl sub_8004914 ldr r0, _08033F60 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_80338C4 _08033F58: add sp, 0x44 pop {r4} pop {r0} bx r0 .align 2, 0 _08033F60: .4byte gUnknown_203B33C thumb_func_end sub_8033DBC thumb_func_start sub_8033F64 sub_8033F64: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033FAE ldr r0, [sp] cmp r0, 0x6 beq _08033F7E cmp r0, 0x8 beq _08033FA8 b _08033FAE _08033F7E: ldr r0, _08033F94 ldr r0, [r0] movs r1, 0xA5 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x3 beq _08033F98 cmp r0, 0x12 beq _08033FA0 b _08033FAE .align 2, 0 _08033F94: .4byte gUnknown_203B33C _08033F98: movs r0, 0x19 bl sub_80338C4 b _08033FAE _08033FA0: movs r0, 0x43 bl sub_80338C4 b _08033FAE _08033FA8: movs r0, 0x1 bl sub_80338C4 _08033FAE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033F64 thumb_func_start sub_8033FB4 sub_8033FB4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08033FDE ldr r0, [sp] cmp r0, 0x6 bne _08033FD0 movs r0, 0xE bl sub_80338C4 b _08033FDE _08033FD0: cmp r0, 0x6 blt _08033FDE cmp r0, 0x8 bgt _08033FDE movs r0, 0x1 bl sub_80338C4 _08033FDE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8033FB4 thumb_func_start sub_8033FE4 sub_8033FE4: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _0803400C cmp r0, 0x3 bhi _08033FFA cmp r0, 0x2 beq _08034000 b _0803406A _08033FFA: cmp r0, 0x4 beq _08034028 b _0803406A _08034000: bl sub_803084C movs r0, 0x1 bl sub_80338C4 b _0803406A _0803400C: bl sub_80307EC ldr r1, _08034024 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x1E bl sub_80338C4 b _0803406A .align 2, 0 _08034024: .4byte gUnknown_203B33C _08034028: ldr r4, _08034070 ldr r1, [r4] movs r0, 0x1D str r0, [r1, 0x4] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x1F bl sub_80338C4 _0803406A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08034070: .4byte gUnknown_203B33C thumb_func_end sub_8033FE4 thumb_func_start sub_8034074 sub_8034074: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _080340B8 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080340A6 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _080340A6: ldr r0, [sp] cmp r0, 0x8 beq _08034108 cmp r0, 0x8 bgt _080340BC cmp r0, 0x5 beq _08034108 b _08034124 .align 2, 0 _080340B8: .4byte gUnknown_203B33C _080340BC: cmp r0, 0x9 beq _080340C6 cmp r0, 0xA beq _080340D2 b _08034124 _080340C6: bl sub_803084C movs r0, 0x20 bl sub_80338C4 b _08034124 _080340D2: ldr r0, [r4] movs r1, 0x7E str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x1F bl sub_80338C4 b _08034124 _08034108: ldr r0, _0803412C ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x1D bl sub_80338C4 _08034124: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803412C: .4byte gUnknown_203B33C thumb_func_end sub_8034074 thumb_func_start sub_8034130 sub_8034130: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _08034184 cmp r0, 0x2 bcc _08034184 bl sub_8030DE4 bl sub_8004914 ldr r4, _0803417C ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x7E bne _08034180 movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x1E bl sub_80338C4 b _08034184 .align 2, 0 _0803417C: .4byte gUnknown_203B33C _08034180: bl sub_80338C4 _08034184: pop {r4} pop {r0} bx r0 thumb_func_end sub_8034130 thumb_func_start sub_803418C sub_803418C: push {r4,r5,lr} movs r0, 0x1 bl sub_8023A94 cmp r0, 0x3 beq _080341D0 cmp r0, 0x3 bhi _080341A2 cmp r0, 0x2 beq _080341A8 b _08034248 _080341A2: cmp r0, 0x4 beq _08034204 b _08034248 _080341A8: bl sub_8023C60 movs r0, 0x1 bl sub_80338C4 bl sub_8035D1C ldr r0, _080341C8 ldr r0, [r0] movs r1, 0xA7 lsls r1, 3 adds r0, r1 ldr r1, _080341CC strh r1, [r0] b _08034248 .align 2, 0 _080341C8: .4byte gUnknown_203B33C _080341CC: .4byte 0x0000ffff _080341D0: bl sub_8023B44 ldr r1, _080341F4 ldr r1, [r1] movs r3, 0xA7 lsls r3, 3 adds r2, r1, r3 strh r0, [r2] ldr r0, _080341F8 adds r1, r0 ldr r0, [r1] cmp r0, 0xE bne _080341FC movs r0, 0x9 bl sub_80338C4 b _08034248 .align 2, 0 _080341F4: .4byte gUnknown_203B33C _080341F8: .4byte 0x00000524 _080341FC: movs r0, 0x27 bl sub_80338C4 b _08034248 _08034204: ldr r4, _08034250 ldr r1, [r4] movs r0, 0x26 str r0, [r1, 0x4] bl sub_8023B44 adds r2, r0, 0 ldr r0, [r4] movs r5, 0xA7 lsls r5, 3 adds r1, r0, r5 strh r2, [r1] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 movs r3, 0 ldrsh r0, [r0, r3] movs r1, 0 bl sub_8024458 movs r0, 0x28 bl sub_80338C4 _08034248: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08034250: .4byte gUnknown_203B33C thumb_func_end sub_803418C thumb_func_start sub_8034254 sub_8034254: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8023A94 ldr r4, _08034298 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08034286 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _08034286: ldr r0, [sp] cmp r0, 0x8 beq _080342EA cmp r0, 0x8 bgt _0803429C cmp r0, 0x5 beq _080342EA b _08034304 .align 2, 0 _08034298: .4byte gUnknown_203B33C _0803429C: cmp r0, 0x9 beq _080342A6 cmp r0, 0xA beq _080342B2 b _08034304 _080342A6: bl sub_8023C60 movs r0, 0x29 bl sub_80338C4 b _08034304 _080342B2: ldr r0, [r4] movs r1, 0x7E str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0xA7 lsls r1, 3 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0 bl sub_8024458 movs r0, 0x28 bl sub_80338C4 b _08034304 _080342EA: ldr r0, _0803430C ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x3 bl sub_8035CC0 bl sub_8023DA4 movs r0, 0x26 bl sub_80338C4 _08034304: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803430C: .4byte gUnknown_203B33C thumb_func_end sub_8034254 thumb_func_start sub_8034310 sub_8034310: push {r4,lr} bl sub_80244E4 cmp r0, 0x1 bne _08034320 bl sub_802452C b _08034370 _08034320: cmp r0, 0x1 bcc _08034370 cmp r0, 0x3 bhi _08034370 bl sub_802453C bl sub_8004914 ldr r4, _08034368 ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_8023B7C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x7E bne _0803436C movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x27 bl sub_80338C4 b _08034370 .align 2, 0 _08034368: .4byte gUnknown_203B33C _0803436C: bl sub_80338C4 _08034370: pop {r4} pop {r0} bx r0 thumb_func_end sub_8034310 thumb_func_start sub_8034378 sub_8034378: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080343BE ldr r0, [sp] cmp r0, 0x8 beq _080343B8 cmp r0, 0x10 bne _080343BE ldr r0, _080343A8 ldr r0, [r0] ldr r1, _080343AC adds r0, r1 ldr r0, [r0] cmp r0, 0xE bne _080343B0 movs r0, 0x9 bl sub_80338C4 b _080343BE .align 2, 0 _080343A8: .4byte gUnknown_203B33C _080343AC: .4byte 0x00000524 _080343B0: movs r0, 0x5 bl sub_80338C4 b _080343BE _080343B8: movs r0, 0x1 bl sub_80338C4 _080343BE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034378 thumb_func_start sub_80343C4 sub_80343C4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080343FE ldr r0, [sp] cmp r0, 0x7 beq _080343F0 cmp r0, 0x7 bgt _080343E2 cmp r0, 0x6 beq _080343E8 b _080343FE _080343E2: cmp r0, 0x8 beq _080343F8 b _080343FE _080343E8: movs r0, 0x5 bl sub_80338C4 b _080343FE _080343F0: movs r0, 0x25 bl sub_80338C4 b _080343FE _080343F8: movs r0, 0x1 bl sub_80338C4 _080343FE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80343C4 thumb_func_start sub_8034404 sub_8034404: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034472 ldr r0, [sp] cmp r0, 0xF beq _08034428 cmp r0, 0xF bgt _08034422 cmp r0, 0x8 beq _0803446C b _08034472 _08034422: cmp r0, 0x10 beq _08034444 b _08034472 _08034428: movs r0, 0x3 bl sub_8024108 lsls r0, 24 cmp r0, 0 beq _0803443C movs r0, 0x24 bl sub_80338C4 b _08034472 _0803443C: movs r0, 0x25 bl sub_80338C4 b _08034472 _08034444: ldr r0, _0803445C ldr r0, [r0] ldr r1, _08034460 adds r0, r1 ldr r0, [r0] cmp r0, 0xE bne _08034464 movs r0, 0x9 bl sub_80338C4 b _08034472 .align 2, 0 _0803445C: .4byte gUnknown_203B33C _08034460: .4byte 0x00000524 _08034464: movs r0, 0x5 bl sub_80338C4 b _08034472 _0803446C: movs r0, 0x1 bl sub_80338C4 _08034472: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034404 thumb_func_start sub_8034478 sub_8034478: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803449A bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0803449A bl sub_8012750 movs r0, 0x2 bl sub_80338C4 _0803449A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034478 thumb_func_start sub_80344A0 sub_80344A0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080344BA movs r0, 0x2C bl sub_80338C4 movs r0, 0 bl sub_8012574 _080344BA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80344A0 thumb_func_start sub_80344C0 sub_80344C0: push {lr} bl sub_8031DCC cmp r0, 0x1 beq _080344F8 cmp r0, 0x1 bcc _080344FC cmp r0, 0x3 bhi _080344FC bl sub_8031E10 bl sub_8004914 ldr r0, _080344F4 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x2F bl sub_80338C4 b _080344FC .align 2, 0 _080344F4: .4byte gUnknown_203B33C _080344F8: bl sub_8031E00 _080344FC: pop {r0} bx r0 thumb_func_end sub_80344C0 thumb_func_start sub_8034500 sub_8034500: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _08034528 cmp r0, 0x3 bhi _08034516 cmp r0, 0x2 beq _0803451C b _08034586 _08034516: cmp r0, 0x4 beq _08034544 b _08034586 _0803451C: bl sub_803084C movs r0, 0x1 bl sub_80338C4 b _08034586 _08034528: bl sub_80307EC ldr r1, _08034540 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x33 bl sub_80338C4 b _08034586 .align 2, 0 _08034540: .4byte gUnknown_203B33C _08034544: ldr r4, _0803458C ldr r1, [r4] movs r0, 0x32 str r0, [r1, 0x4] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x34 bl sub_80338C4 _08034586: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803458C: .4byte gUnknown_203B33C thumb_func_end sub_8034500 thumb_func_start sub_8034590 sub_8034590: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _080345D4 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080345C2 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _080345C2: ldr r0, [sp] cmp r0, 0x8 beq _08034624 cmp r0, 0x8 bgt _080345D8 cmp r0, 0x5 beq _08034624 b _08034640 .align 2, 0 _080345D4: .4byte gUnknown_203B33C _080345D8: cmp r0, 0x9 beq _080345E2 cmp r0, 0xA beq _080345EE b _08034640 _080345E2: bl sub_803084C movs r0, 0x35 bl sub_80338C4 b _08034640 _080345EE: ldr r0, [r4] movs r1, 0x7E str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x34 bl sub_80338C4 b _08034640 _08034624: ldr r0, _08034648 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x32 bl sub_80338C4 _08034640: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08034648: .4byte gUnknown_203B33C thumb_func_end sub_8034590 thumb_func_start sub_803464C sub_803464C: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _080346A0 cmp r0, 0x2 bcc _080346A0 bl sub_8030DE4 bl sub_8004914 ldr r4, _08034698 ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x7E bne _0803469C movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x33 bl sub_80338C4 b _080346A0 .align 2, 0 _08034698: .4byte gUnknown_203B33C _0803469C: bl sub_80338C4 _080346A0: pop {r4} pop {r0} bx r0 thumb_func_end sub_803464C thumb_func_start sub_80346A8 sub_80346A8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080346D2 ldr r0, [sp] cmp r0, 0x6 bne _080346C4 movs r0, 0xE bl sub_80338C4 b _080346D2 _080346C4: cmp r0, 0x6 blt _080346D2 cmp r0, 0x8 bgt _080346D2 movs r0, 0x1 bl sub_80338C4 _080346D2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80346A8 thumb_func_start sub_80346D8 sub_80346D8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080346FA bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _080346FA bl sub_8012750 movs r0, 0x2 bl sub_80338C4 _080346FA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80346D8 thumb_func_start sub_8034700 sub_8034700: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803471A movs r0, 0x38 bl sub_80338C4 movs r0, 0 bl sub_8012574 _0803471A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034700 thumb_func_start sub_8034720 sub_8034720: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034734 movs r0, 0x3A bl sub_80338C4 _08034734: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034720 thumb_func_start sub_803473C sub_803473C: push {lr} bl sub_8031DCC cmp r0, 0x1 beq _08034774 cmp r0, 0x1 bcc _08034778 cmp r0, 0x3 bhi _08034778 bl sub_8031E10 bl sub_8004914 ldr r0, _08034770 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x3B bl sub_80338C4 b _08034778 .align 2, 0 _08034770: .4byte gUnknown_203B33C _08034774: bl sub_8031E00 _08034778: pop {r0} bx r0 thumb_func_end sub_803473C thumb_func_start sub_803477C sub_803477C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080347A6 ldr r0, [sp] cmp r0, 0x6 bne _08034798 movs r0, 0xE bl sub_80338C4 b _080347A6 _08034798: cmp r0, 0x6 blt _080347A6 cmp r0, 0x8 bgt _080347A6 movs r0, 0x1 bl sub_80338C4 _080347A6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803477C thumb_func_start sub_80347AC sub_80347AC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080347C0 movs r0, 0xD bl sub_80338C4 _080347C0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80347AC thumb_func_start sub_80347C8 sub_80347C8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080347DC movs r0, 0x40 bl sub_80338C4 _080347DC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80347C8 thumb_func_start sub_80347E4 sub_80347E4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080347FE movs r0, 0x41 bl sub_80338C4 movs r0, 0 bl sub_8012574 _080347FE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80347E4 thumb_func_start sub_8034804 sub_8034804: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034826 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08034826 bl sub_8012750 movs r0, 0x42 bl sub_80338C4 _08034826: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034804 thumb_func_start sub_803482C sub_803482C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034840 movs r0, 0x1 bl sub_80338C4 _08034840: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803482C thumb_func_start sub_8034848 sub_8034848: push {r4-r6,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 adds r6, r0, 0 cmp r6, 0 bne _080348BA ldr r4, _0803489C ldr r0, [r4] ldr r5, _080348A0 adds r0, r5 movs r1, 0 movs r2, 0x4 bl MemoryFill8 ldr r0, [r4] ldr r1, _080348A4 adds r0, r1 strb r6, [r0] ldr r0, [r4] subs r1, 0x1 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, r5 strb r6, [r0] ldr r4, [r4] ldr r0, [r4, 0x44] cmp r0, 0 bne _080348B0 ldr r4, [r4, 0x40] cmp r4, 0x6 beq _080348A8 cmp r4, 0x7 bne _080348BA movs r0, 0x6D bl sub_80338C4 b _080348BA .align 2, 0 _0803489C: .4byte gUnknown_203B33C _080348A0: .4byte 0x0000041c _080348A4: .4byte 0x0000041e _080348A8: movs r0, 0x50 bl sub_80338C4 b _080348BA _080348B0: bl sub_80338DC movs r0, 0x6B bl sub_80338C4 _080348BA: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8034848 thumb_func_start sub_80348C4 sub_80348C4: push {r4-r6,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 adds r6, r0, 0 cmp r6, 0 bne _08034968 ldr r4, _08034910 ldr r0, [r4] ldr r5, _08034914 adds r0, r5 movs r1, 0 movs r2, 0x4 bl MemoryFill8 ldr r0, [r4] ldr r1, _08034918 adds r0, r1 strb r6, [r0] ldr r0, [r4] subs r1, 0x1 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, r5 strb r6, [r0] ldr r0, [r4] ldr r1, [r0, 0x44] cmp r1, 0 bne _0803495C ldr r1, [r0, 0x40] cmp r1, 0x6 beq _0803491C cmp r1, 0x7 beq _08034954 b _08034968 .align 2, 0 _08034910: .4byte gUnknown_203B33C _08034914: .4byte 0x0000041c _08034918: .4byte 0x0000041e _0803491C: ldr r1, _08034930 adds r0, r1 ldr r0, [r0] cmp r0, 0xC beq _08034944 cmp r0, 0xC bhi _08034934 cmp r0, 0xB beq _08034938 b _08034944 .align 2, 0 _08034930: .4byte 0x00000524 _08034934: cmp r0, 0xE bhi _08034944 _08034938: ldr r0, _0803494C ldr r3, _08034950 movs r1, 0 movs r2, 0 bl sub_80141B4 _08034944: movs r0, 0x77 bl sub_80338C4 b _08034968 .align 2, 0 _0803494C: .4byte gUnknown_80E31FC _08034950: .4byte 0x00000101 _08034954: movs r0, 0x6D bl sub_80338C4 b _08034968 _0803495C: adds r0, r1, 0 bl sub_80338DC movs r0, 0x6B bl sub_80338C4 _08034968: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80348C4 thumb_func_start sub_8034970 sub_8034970: push {lr} bl sub_8031DCC cmp r0, 0x1 beq _080349A8 cmp r0, 0x1 bcc _080349AC cmp r0, 0x3 bhi _080349AC bl sub_8031E10 bl sub_8004914 ldr r0, _080349A4 ldr r0, [r0] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x68 bl sub_80338C4 b _080349AC .align 2, 0 _080349A4: .4byte gUnknown_203B33C _080349A8: bl sub_8031E00 _080349AC: pop {r0} bx r0 thumb_func_end sub_8034970 thumb_func_start sub_80349B0 sub_80349B0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080349DA ldr r0, [sp] cmp r0, 0x6 bne _080349CC movs r0, 0x52 bl sub_80338C4 b _080349DA _080349CC: cmp r0, 0x6 blt _080349DA cmp r0, 0x8 bgt _080349DA movs r0, 0x1 bl sub_80338C4 _080349DA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80349B0 thumb_func_start sub_80349E0 sub_80349E0: push {r4,r5,lr} movs r0, 0x1 bl sub_8030768 cmp r0, 0x3 beq _08034A08 cmp r0, 0x3 bhi _080349F6 cmp r0, 0x2 beq _080349FC b _08034A66 _080349F6: cmp r0, 0x4 beq _08034A24 b _08034A66 _080349FC: bl sub_803084C movs r0, 0x1 bl sub_80338C4 b _08034A66 _08034A08: bl sub_80307EC ldr r1, _08034A20 ldr r1, [r1] movs r2, 0x86 lsls r2, 2 adds r1, r2 strb r0, [r1] movs r0, 0x5D bl sub_80338C4 b _08034A66 .align 2, 0 _08034A20: .4byte gUnknown_203B33C _08034A24: ldr r4, _08034A6C ldr r1, [r4] movs r0, 0x5C str r0, [r1, 0x4] bl sub_80307EC ldr r1, [r4] movs r5, 0x86 lsls r5, 2 adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x5E bl sub_80338C4 _08034A66: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08034A6C: .4byte gUnknown_203B33C thumb_func_end sub_80349E0 thumb_func_start sub_8034A70 sub_8034A70: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_8030768 ldr r4, _08034AB4 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08034AA2 ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _08034AA2: ldr r0, [sp] cmp r0, 0x8 beq _08034B04 cmp r0, 0x8 bgt _08034AB8 cmp r0, 0x5 beq _08034B04 b _08034B20 .align 2, 0 _08034AB4: .4byte gUnknown_203B33C _08034AB8: cmp r0, 0x9 beq _08034AC2 cmp r0, 0xA beq _08034ACE b _08034B20 _08034AC2: bl sub_803084C movs r0, 0x5A bl sub_80338C4 b _08034B20 _08034ACE: ldr r0, [r4] movs r1, 0x7E str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8030D40 movs r0, 0x5E bl sub_80338C4 b _08034B20 _08034B04: ldr r0, _08034B28 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x2 bl sub_8035CC0 movs r0, 0x1 bl sub_8030810 movs r0, 0x5C bl sub_80338C4 _08034B20: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08034B28: .4byte gUnknown_203B33C thumb_func_end sub_8034A70 thumb_func_start sub_8034B2C sub_8034B2C: push {r4,lr} bl sub_8030DA0 cmp r0, 0x3 bhi _08034B80 cmp r0, 0x2 bcc _08034B80 bl sub_8030DE4 bl sub_8004914 ldr r4, _08034B78 ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803092C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x7E bne _08034B7C movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x5D bl sub_80338C4 b _08034B80 .align 2, 0 _08034B78: .4byte gUnknown_203B33C _08034B7C: bl sub_80338C4 _08034B80: pop {r4} pop {r0} bx r0 thumb_func_end sub_8034B2C thumb_func_start sub_8034B88 sub_8034B88: push {r4-r6,lr} ldr r4, _08034BBC ldr r0, [r4] ldr r5, _08034BC0 adds r0, r5 movs r2, 0 strb r2, [r0] ldr r0, [r4] ldr r1, _08034BC4 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] ldr r6, _08034BC8 adds r0, r6 strb r2, [r0] movs r0, 0x1 bl sub_801CA08 cmp r0, 0x3 beq _08034BDE cmp r0, 0x3 bhi _08034BCC cmp r0, 0x2 beq _08034BD2 b _08034C30 .align 2, 0 _08034BBC: .4byte gUnknown_203B33C _08034BC0: .4byte 0x0000041e _08034BC4: .4byte 0x0000041d _08034BC8: .4byte 0x0000041c _08034BCC: cmp r0, 0x4 beq _08034BF8 b _08034C30 _08034BD2: bl sub_801CBB8 movs r0, 0x1 bl sub_80338C4 b _08034C30 _08034BDE: bl sub_801CB24 ldr r1, [r4] ldr r2, _08034BF4 adds r1, r2 strb r0, [r1] movs r0, 0x60 bl sub_80338C4 b _08034C30 .align 2, 0 _08034BF4: .4byte 0x0000041e _08034BF8: ldr r1, [r4] movs r0, 0x5F str r0, [r1, 0x4] bl sub_801CB24 ldr r1, [r4] adds r1, r5 strb r0, [r1] ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, r6 bl sub_801B3C0 movs r0, 0x61 bl sub_80338C4 _08034C30: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8034B88 thumb_func_start sub_8034C38 sub_8034C38: push {r4,lr} bl sub_801B410 cmp r0, 0x1 beq _08034C90 cmp r0, 0x1 bcc _08034C90 cmp r0, 0x3 bhi _08034C90 bl sub_801B450 bl sub_8004914 ldr r4, _08034C88 ldr r0, [r4] movs r1, 0xEF lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_801CB5C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x7E bne _08034C8C movs r1, 0x87 lsls r1, 2 adds r0, r4, r1 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x60 bl sub_80338C4 b _08034C90 .align 2, 0 _08034C88: .4byte gUnknown_203B33C _08034C8C: bl sub_80338C4 _08034C90: pop {r4} pop {r0} bx r0 thumb_func_end sub_8034C38 thumb_func_start sub_8034C98 sub_8034C98: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_801CA08 ldr r4, _08034CDC ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08034CCA ldr r0, [r4] movs r1, 0xC3 lsls r1, 2 adds r0, r1 mov r1, sp bl sub_8013114 _08034CCA: ldr r0, [sp] cmp r0, 0x8 beq _08034D2C cmp r0, 0x8 bgt _08034CE0 cmp r0, 0x5 beq _08034D2C b _08034D48 .align 2, 0 _08034CDC: .4byte gUnknown_203B33C _08034CE0: cmp r0, 0x9 beq _08034CEA cmp r0, 0xA beq _08034CF6 b _08034D48 _08034CEA: bl sub_801CBB8 movs r0, 0x58 bl sub_80338C4 b _08034D48 _08034CF6: ldr r0, [r4] movs r1, 0x7E str r1, [r0, 0x4] movs r1, 0xEF lsls r1, 2 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] ldr r1, _08034D28 adds r0, r1 bl sub_801B3C0 movs r0, 0x61 bl sub_80338C4 b _08034D48 .align 2, 0 _08034D28: .4byte 0x0000041c _08034D2C: ldr r0, _08034D50 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x3 bl sub_8035CC0 movs r0, 0x1 bl sub_801CB5C movs r0, 0x5F bl sub_80338C4 _08034D48: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08034D50: .4byte gUnknown_203B33C thumb_func_end sub_8034C98 thumb_func_start sub_8034D54 sub_8034D54: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034D6E movs r0, 0x65 bl sub_80338C4 movs r0, 0 bl sub_8012574 _08034D6E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034D54 thumb_func_start sub_8034D74 sub_8034D74: push {r4,r5,lr} sub sp, 0x44 bl sub_80154F0 adds r4, r0, 0 add r0, sp, 0x14 movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x2 bne _08034D8E b _08034E9C _08034D8E: cmp r4, 0x3 beq _08034D94 b _08034EBC _08034D94: ldr r0, _08034DB4 ldr r1, [r0] adds r1, 0x8 movs r0, 0x20 add r2, sp, 0x14 bl sub_8039068 subs r0, 0x7 cmp r0, 0x11 bhi _08034E90 lsls r0, 2 ldr r1, _08034DB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08034DB4: .4byte gUnknown_203B33C _08034DB8: .4byte _08034DBC .align 2, 0 _08034DBC: .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E38 .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E04 .4byte _08034E90 .4byte _08034E90 .4byte _08034E30 .4byte _08034E90 .4byte _08034E90 .4byte _08034E90 .4byte _08034E54 _08034E04: ldr r0, _08034E28 ldr r3, _08034E2C movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x6 bl sub_8014248 movs r0, 0x74 bl sub_80338C4 b _08034E90 .align 2, 0 _08034E28: .4byte gUnknown_80E48A8 _08034E2C: .4byte gUnknown_80E2440 _08034E30: ldr r0, _08034E34 b _08034E3A .align 2, 0 _08034E34: .4byte gUnknown_80E49C4 _08034E38: ldr r0, _08034E4C _08034E3A: ldr r3, _08034E50 movs r1, 0 movs r2, 0 bl sub_80141B4 movs r0, 0x6B bl sub_80338C4 b _08034E90 .align 2, 0 _08034E4C: .4byte gUnknown_80E4704 _08034E50: .4byte 0x00000101 _08034E54: ldr r1, [sp, 0x24] movs r0, 0x4 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 add r1, sp, 0x14 ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} movs r1, 0x6 strb r1, [r0] ldr r0, _08034E98 ldr r0, [r0] movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r1, [sp, 0x24] str r1, [r0] movs r0, 0x6D bl sub_80338C4 _08034E90: bl sub_80155F0 b _08034EBC .align 2, 0 _08034E98: .4byte gUnknown_203B33C _08034E9C: bl sub_80155F0 bl sub_8004914 ldr r0, _08034EC4 ldr r0, [r0] movs r3, 0xEF lsls r3, 2 adds r0, r3 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_80338C4 _08034EBC: add sp, 0x44 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08034EC4: .4byte gUnknown_203B33C thumb_func_end sub_8034D74 thumb_func_start sub_8034EC8 sub_8034EC8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034EEA bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08034EEA bl sub_8012750 movs r0, 0x2 bl sub_80338C4 _08034EEA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034EC8 thumb_func_start sub_8034EF0 sub_8034EF0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034F12 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08034F12 bl sub_8012750 movs r0, 0x2 bl sub_80338C4 _08034F12: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034EF0 thumb_func_start sub_8034F18 sub_8034F18: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034F32 movs r0, 0x65 bl sub_80338C4 movs r0, 0 bl sub_8012574 _08034F32: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034F18 thumb_func_start sub_8034F38 sub_8034F38: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034F52 movs r0, 0x71 bl sub_80338C4 movs r0, 0 bl sub_8012574 _08034F52: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034F38 thumb_func_start sub_8034F58 sub_8034F58: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08034F80 ldr r0, [sp] cmp r0, 0x6 beq _08034F72 cmp r0, 0x8 beq _08034F7A b _08034F80 _08034F72: movs r0, 0x62 bl sub_80338C4 b _08034F80 _08034F7A: movs r0, 0x1 bl sub_80338C4 _08034F80: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8034F58 thumb_func_start sub_8034F88 sub_8034F88: push {r4,r5,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803500E ldr r0, [sp] cmp r0, 0x7 beq _08035000 cmp r0, 0x7 bgt _08034FA6 cmp r0, 0x6 beq _08034FAC b _0803500E _08034FA6: cmp r0, 0x8 beq _08035008 b _0803500E _08034FAC: ldr r4, _08034FF0 ldr r0, [r4] movs r1, 0x86 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_8095228 adds r2, r0, 0 ldr r1, [r4] ldr r3, _08034FF4 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _08034FD2 ldr r5, _08034FF8 adds r0, r1, r5 ldr r0, [r0] str r0, [r2, 0x20] _08034FD2: ldr r0, _08034FFC ldr r1, [r0] ldr r0, [r4] adds r0, r3 ldrb r0, [r0] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] movs r0, 0x75 bl sub_80338C4 b _0803500E .align 2, 0 _08034FF0: .4byte gUnknown_203B33C _08034FF4: .4byte 0x0000041e _08034FF8: .4byte 0x0000041c _08034FFC: .4byte gUnknown_203B460 _08035000: movs r0, 0x57 bl sub_80338C4 b _0803500E _08035008: movs r0, 0x1 bl sub_80338C4 _0803500E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8034F88 thumb_func_start sub_8035018 sub_8035018: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08035032 movs r0, 0x76 bl sub_80338C4 movs r0, 0 bl sub_8012574 _08035032: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8035018 thumb_func_start sub_8035038 sub_8035038: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803508E bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _0803508E bl sub_8012750 ldr r0, _0803506C ldr r0, [r0] ldr r1, _08035070 adds r0, r1 ldr r0, [r0] cmp r0, 0xD beq _08035080 cmp r0, 0xD bls _08035074 cmp r0, 0xE beq _08035088 b _0803508E .align 2, 0 _0803506C: .4byte gUnknown_203B33C _08035070: .4byte 0x00000524 _08035074: cmp r0, 0xB bcc _0803508E movs r0, 0x69 bl sub_80338C4 b _0803508E _08035080: movs r0, 0x66 bl sub_80338C4 b _0803508E _08035088: movs r0, 0x4B bl sub_80338C4 _0803508E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8035038 thumb_func_start sub_8035094 sub_8035094: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080350EE ldr r0, [sp] cmp r0, 0x8 beq _080350E8 cmp r0, 0x16 bne _080350EE ldr r0, _080350C4 ldr r0, [r0] ldr r1, _080350C8 adds r0, r1 ldr r0, [r0] cmp r0, 0xD beq _080350D8 cmp r0, 0xD bls _080350CC cmp r0, 0xE beq _080350E0 b _080350EE .align 2, 0 _080350C4: .4byte gUnknown_203B33C _080350C8: .4byte 0x00000524 _080350CC: cmp r0, 0xB bcc _080350EE movs r0, 0x69 bl sub_80338C4 b _080350EE _080350D8: movs r0, 0x66 bl sub_80338C4 b _080350EE _080350E0: movs r0, 0x4B bl sub_80338C4 b _080350EE _080350E8: movs r0, 0x1 bl sub_80338C4 _080350EE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8035094 thumb_func_start sub_80350F4 sub_80350F4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08035176 ldr r0, [sp] cmp r0, 0x15 beq _08035118 cmp r0, 0x15 bgt _08035112 cmp r0, 0x8 beq _08035170 b _08035176 _08035112: cmp r0, 0x16 beq _08035134 b _08035176 _08035118: movs r0, 0 bl sub_801CF14 lsls r0, 24 cmp r0, 0 beq _0803512C movs r0, 0x56 bl sub_80338C4 b _08035176 _0803512C: movs r0, 0x57 bl sub_80338C4 b _08035176 _08035134: ldr r0, _0803514C ldr r0, [r0] ldr r1, _08035150 adds r0, r1 ldr r0, [r0] cmp r0, 0xD beq _08035160 cmp r0, 0xD bls _08035154 cmp r0, 0xE beq _08035168 b _08035176 .align 2, 0 _0803514C: .4byte gUnknown_203B33C _08035150: .4byte 0x00000524 _08035154: cmp r0, 0xB bcc _08035176 movs r0, 0x69 bl sub_80338C4 b _08035176 _08035160: movs r0, 0x66 bl sub_80338C4 b _08035176 _08035168: movs r0, 0x4B bl sub_80338C4 b _08035176 _08035170: movs r0, 0x1 bl sub_80338C4 _08035176: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80350F4 thumb_func_start sub_803517C sub_803517C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080351DA ldr r0, [sp] cmp r0, 0x6 beq _08035196 cmp r0, 0x8 beq _080351D4 b _080351DA _08035196: ldr r0, _080351B0 ldr r0, [r0] ldr r1, _080351B4 adds r0, r1 ldr r0, [r0] cmp r0, 0xD beq _080351C4 cmp r0, 0xD bls _080351B8 cmp r0, 0xE beq _080351CC b _080351DA .align 2, 0 _080351B0: .4byte gUnknown_203B33C _080351B4: .4byte 0x00000524 _080351B8: cmp r0, 0xB bcc _080351DA movs r0, 0x69 bl sub_80338C4 b _080351DA _080351C4: movs r0, 0x66 bl sub_80338C4 b _080351DA _080351CC: movs r0, 0x4B bl sub_80338C4 b _080351DA _080351D4: movs r0, 0x1 bl sub_80338C4 _080351DA: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803517C thumb_func_start sub_80351E0 sub_80351E0: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08035208 ldr r0, [sp] cmp r0, 0x6 beq _080351FA cmp r0, 0x8 beq _08035202 b _08035208 _080351FA: movs r0, 0x72 bl sub_80338C4 b _08035208 _08035202: movs r0, 0x1 bl sub_80338C4 _08035208: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80351E0 thumb_func_start sub_8035210 sub_8035210: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803528C ldr r0, _08035238 ldr r2, [r0] ldr r1, _0803523C adds r0, r2, r1 ldr r1, [sp] str r1, [r0] cmp r1, 0xD bgt _0803528C cmp r1, 0xB bge _08035240 cmp r1, 0x8 beq _08035286 b _0803528C .align 2, 0 _08035238: .4byte gUnknown_203B33C _0803523C: .4byte 0x00000524 _08035240: movs r3, 0xA5 lsls r3, 3 adds r0, r2, r3 ldr r0, [r0] cmp r0, 0x13 bne _08035272 movs r0, 0x5 bl sub_80953D4 lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0 beq _0803526A movs r0, 0x53 bl sub_80338C4 b _0803528C _0803526A: movs r0, 0x55 bl sub_80338C4 b _0803528C _08035272: cmp r1, 0xD beq _0803527E movs r0, 0x69 bl sub_80338C4 b _0803528C _0803527E: movs r0, 0x72 bl sub_80338C4 b _0803528C _08035286: movs r0, 0x1 bl sub_80338C4 _0803528C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8035210 thumb_func_start nullsub_46 nullsub_46: bx lr thumb_func_end nullsub_46 thumb_func_start nullsub_47 nullsub_47: bx lr thumb_func_end nullsub_47 thumb_func_start nullsub_48 nullsub_48: bx lr thumb_func_end nullsub_48 thumb_func_start nullsub_49 nullsub_49: bx lr thumb_func_end nullsub_49 thumb_func_start sub_80352A4 sub_80352A4: push {r4,lr} bl sub_802F298 cmp r0, 0x3 bne _080352EC bl sub_802F2C0 ldr r0, _080352F4 movs r4, 0x98 lsls r4, 1 adds r1, r4, 0 bl sub_808D8E0 adds r0, r4, 0 bl sub_808D994 adds r1, r0, 0 ldr r0, _080352F8 bl strcpy ldr r0, _080352FC ldr r0, [r0] movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r1, [r0] movs r0, 0x6 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095240 movs r0, 0x70 bl sub_80338C4 _080352EC: pop {r4} pop {r0} bx r0 .align 2, 0 _080352F4: .4byte gUnknown_202E5D8 _080352F8: .4byte gUnknown_202DF98 _080352FC: .4byte gUnknown_203B33C thumb_func_end sub_80352A4 thumb_func_start sub_8035300 sub_8035300: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08035364 ldr r0, [sp] adds r1, r0, 0 subs r1, 0x19 adds r2, r0, 0 cmp r1, 0x4 bhi _08035364 lsls r0, r1, 2 ldr r1, _08035324 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035324: .4byte _08035328 .align 2, 0 _08035328: .4byte _0803533C .4byte _08035354 .4byte _08035344 .4byte _0803534C .4byte _08035354 _0803533C: movs r0, 0x1 bl sub_80338C4 b _08035364 _08035344: movs r0, 0x7A bl sub_80338C4 b _08035364 _0803534C: movs r0, 0x7C bl sub_80338C4 b _08035364 _08035354: ldr r0, _0803536C ldr r0, [r0] ldr r1, _08035370 adds r0, r1 str r2, [r0] movs r0, 0x79 bl sub_80338C4 _08035364: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803536C: .4byte gUnknown_203B33C _08035370: .4byte 0x00000564 thumb_func_end sub_8035300 thumb_func_start sub_8035374 sub_8035374: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080353AC ldr r1, [sp] cmp r1, 0x19 bne _08035390 movs r0, 0x78 bl sub_80338C4 b _080353AC _08035390: cmp r1, 0x19 blt _080353AC cmp r1, 0x22 bgt _080353AC cmp r1, 0x1E blt _080353AC ldr r0, _080353B4 ldr r0, [r0] ldr r2, _080353B8 adds r0, r2 str r1, [r0] movs r0, 0x7B bl sub_80338C4 _080353AC: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080353B4: .4byte gUnknown_203B33C _080353B8: .4byte 0x00000564 thumb_func_end sub_8035374 thumb_func_start sub_80353BC sub_80353BC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080353F4 ldr r1, [sp] cmp r1, 0x19 bne _080353D8 movs r0, 0x78 bl sub_80338C4 b _080353F4 _080353D8: cmp r1, 0x19 blt _080353F4 cmp r1, 0x26 bgt _080353F4 cmp r1, 0x23 blt _080353F4 ldr r0, _080353FC ldr r0, [r0] ldr r2, _08035400 adds r0, r2 str r1, [r0] movs r0, 0x7D bl sub_80338C4 _080353F4: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080353FC: .4byte gUnknown_203B33C _08035400: .4byte 0x00000564 thumb_func_end sub_80353BC thumb_func_start sub_8035404 sub_8035404: push {r4,lr} sub sp, 0x4 adds r4, r0, 0 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803541A adds r0, r4, 0 bl sub_80338C4 _0803541A: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8035404 thumb_func_start sub_8035424 sub_8035424: push {lr} movs r0, 0x6 bl sub_80338C4 pop {r0} bx r0 thumb_func_end sub_8035424 thumb_func_start sub_8035430 sub_8035430: push {lr} movs r0, 0x4F bl sub_80338C4 pop {r0} bx r0 thumb_func_end sub_8035430 thumb_func_start nullsub_50 nullsub_50: bx lr thumb_func_end nullsub_50 thumb_func_start nullsub_51 nullsub_51: bx lr thumb_func_end nullsub_51 thumb_func_start sub_8035444 sub_8035444: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x84 mov r8, r0 adds r5, r1, 0 ldr r4, _080354C0 movs r0, 0x6C movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0 str r1, [r0, 0x60] str r5, [r0, 0x64] mov r1, r8 str r1, [r0, 0x68] ldr r2, _080354C4 mov r12, r2 mov r9, r4 movs r3, 0 movs r2, 0x3 _08035472: ldr r1, [r4] adds r1, r3 mov r0, r12 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08035472 mov r0, r9 ldr r1, [r0] ldr r0, _080354C8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} bl sub_8004914 mov r1, r9 ldr r0, [r1] movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x2 bl sub_8099690 movs r0, 0 bl sub_80073B8 mov r2, r8 lsls r0, r2, 2 ldr r1, _080354CC adds r0, r1 ldr r1, [r0] movs r5, 0 b _08035542 .align 2, 0 _080354C0: .4byte gUnknown_203B340 _080354C4: .4byte gUnknown_80E4A10 _080354C8: .4byte gUnknown_80E4A28 _080354CC: .4byte gUnknown_80E591C _080354D0: ldr r2, [r1, 0x8] movs r3, 0x4 ldrsh r0, [r1, r3] cmp r0, 0 blt _080354DE adds r5, r0, 0 b _080354E4 _080354DE: movs r6, 0x4 ldrsh r0, [r1, r6] subs r5, r0 _080354E4: movs r7, 0x2 ldrsh r6, [r1, r7] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0x1 beq _080354FA cmp r0, 0x2 beq _08035514 adds r4, r1, 0 adds r4, 0xC b _08035532 _080354FA: add r3, sp, 0x4 ldrb r0, [r2] adds r4, r1, 0 adds r4, 0xC cmp r0, 0 beq _0803552C _08035506: strb r0, [r3] adds r2, 0x1 adds r3, 0x1 ldrb r0, [r2] cmp r0, 0 bne _08035506 b _0803552C _08035514: add r3, sp, 0x4 ldrb r0, [r2] adds r4, r1, 0 adds r4, 0xC cmp r0, 0 beq _0803552C _08035520: strb r0, [r3] adds r2, 0x1 adds r3, 0x1 ldrb r0, [r2] cmp r0, 0 bne _08035520 _0803552C: movs r0, 0 strb r0, [r3] add r2, sp, 0x4 _08035532: movs r0, 0 str r0, [sp] adds r0, r6, 0 adds r1, r5, 0 movs r3, 0 bl xxx_call_draw_string adds r1, r4, 0 _08035542: ldr r0, [r1, 0x8] cmp r0, 0 bne _080354D0 movs r0, 0 bl sub_80073E0 movs r0, 0 bl sub_80063CC ldr r2, _08035570 movs r0, 0x9 movs r1, 0 ldr r2, [r2] bl sub_8099AFC movs r0, 0x1 add sp, 0x84 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08035570: .4byte gCreditsTable thumb_func_end sub_8035444 thumb_func_start sub_8035574 sub_8035574: push {r4,lr} ldr r1, _0803558C ldr r0, [r1] ldr r0, [r0, 0x60] adds r4, r1, 0 cmp r0, 0x4 bhi _08035654 lsls r0, 2 ldr r1, _08035590 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803558C: .4byte gUnknown_203B340 _08035590: .4byte _08035594 .align 2, 0 _08035594: .4byte _080355A8 .4byte _080355D0 .4byte _080355E8 .4byte _08035610 .4byte _08035638 _080355A8: bl sub_8099B94 lsls r0, 24 cmp r0, 0 bne _08035654 ldr r0, _080355C8 ldr r1, [r0] movs r0, 0x1 str r0, [r1, 0x60] ldr r2, _080355CC movs r0, 0x9 movs r1, 0x1E ldr r2, [r2] bl sub_8099A5C b _08035654 .align 2, 0 _080355C8: .4byte gUnknown_203B340 _080355CC: .4byte gCreditsTable _080355D0: bl sub_8099B94 lsls r0, 24 cmp r0, 0 bne _08035654 ldr r0, _080355E4 ldr r1, [r0] movs r0, 0x2 str r0, [r1, 0x60] b _08035654 .align 2, 0 _080355E4: .4byte gUnknown_203B340 _080355E8: ldr r1, [r4] ldr r0, [r1, 0x64] cmp r0, 0 bgt _08035600 movs r0, 0x3 str r0, [r1, 0x60] ldr r2, _0803560C movs r0, 0x9 movs r1, 0x1E ldr r2, [r2] bl sub_8099AFC _08035600: ldr r1, [r4] ldr r0, [r1, 0x64] subs r0, 0x1 str r0, [r1, 0x64] b _08035654 .align 2, 0 _0803560C: .4byte gCreditsTable _08035610: bl sub_8099B94 lsls r0, 24 cmp r0, 0 bne _08035654 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, _08035634 ldr r1, [r0] movs r0, 0x4 str r0, [r1, 0x60] b _08035654 .align 2, 0 _08035634: .4byte gUnknown_203B340 _08035638: movs r0, 0 bl sub_8099690 ldr r2, _08035650 movs r0, 0x1 movs r1, 0 ldr r2, [r2] bl sub_8099A5C movs r0, 0x3 b _08035656 .align 2, 0 _08035650: .4byte gCreditsTable _08035654: movs r0, 0 _08035656: pop {r4} pop {r1} bx r1 thumb_func_end sub_8035574 thumb_func_start sub_803565C sub_803565C: push {r4,lr} ldr r4, _08035674 ldr r0, [r4] cmp r0, 0 beq _0803566E bl MemoryFree movs r0, 0 str r0, [r4] _0803566E: pop {r4} pop {r0} bx r0 .align 2, 0 _08035674: .4byte gUnknown_203B340 thumb_func_end sub_803565C thumb_func_start sub_8035678 sub_8035678: push {r4,lr} ldr r4, _0803569C movs r0, 0x8 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0 str r1, [r0] str r1, [r0, 0x4] movs r0, 0 movs r1, 0x39 bl sub_80015C0 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0803569C: .4byte gUnknown_203B344 thumb_func_end sub_8035678 thumb_func_start sub_80356A0 sub_80356A0: push {r4,lr} ldr r0, _080356C4 ldrh r4, [r0] ldr r3, _080356C8 ldr r2, _080356CC ldr r1, [r2] ldr r0, [r1, 0x4] lsls r0, 1 adds r0, r3 ldrh r3, [r0] ldr r0, [r1] cmp r0, 0x4 bhi _08035734 lsls r0, 2 ldr r1, _080356D0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080356C4: .4byte gUnknown_20255F0 _080356C8: .4byte gUnknown_80E5990 _080356CC: .4byte gUnknown_203B344 _080356D0: .4byte _080356D4 .align 2, 0 _080356D4: .4byte _08035728 .4byte _080356E8 .4byte _08035710 .4byte _0803574C .4byte _08035730 _080356E8: cmp r3, 0 bne _080356F4 ldr r1, [r2] movs r0, 0x4 str r0, [r1] b _08035734 _080356F4: cmp r4, r3 bne _08035700 ldr r1, [r2] movs r0, 0x2 str r0, [r1] b _08035734 _08035700: ands r3, r4 cmp r3, r4 bne _08035728 ldr r1, [r2] ldr r0, [r1, 0x4] cmp r0, 0 bne _08035734 b _0803572A _08035710: cmp r4, 0 bne _08035722 ldr r1, [r2] movs r0, 0x1 str r0, [r1] ldr r0, [r1, 0x4] adds r0, 0x1 str r0, [r1, 0x4] b _08035734 _08035722: ands r3, r4 cmp r3, r4 beq _08035734 _08035728: ldr r1, [r2] _0803572A: movs r0, 0x3 str r0, [r1] b _08035734 _08035730: movs r0, 0x3 b _0803574E _08035734: movs r0, 0 movs r1, 0x39 bl sub_8001658 cmp r0, 0 bne _08035744 movs r0, 0 b _0803574E _08035744: ldr r0, _08035754 ldr r1, [r0] movs r0, 0x3 str r0, [r1] _0803574C: movs r0, 0x2 _0803574E: pop {r4} pop {r1} bx r1 .align 2, 0 _08035754: .4byte gUnknown_203B344 thumb_func_end sub_80356A0 thumb_func_start sub_8035758 sub_8035758: push {r4,lr} ldr r4, _08035770 ldr r0, [r4] cmp r0, 0 beq _0803576A bl MemoryFree movs r0, 0 str r0, [r4] _0803576A: pop {r4} pop {r0} bx r0 .align 2, 0 _08035770: .4byte gUnknown_203B344 thumb_func_end sub_8035758 thumb_func_start InitMainMenu InitMainMenu: push {r4,r5,lr} ldr r5, _080357C8 ldr r0, [r5] cmp r0, 0 bne _08035790 movs r0, 0x40 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 movs r2, 0x40 bl MemoryFill8 _08035790: ldr r0, [r5] ldr r1, _080357CC str r1, [r0] movs r2, 0x1 str r2, [r0, 0x4] str r2, [r0, 0x8] adds r1, 0x23 strh r1, [r0, 0x38] movs r1, 0x1 negs r1, r1 str r1, [r0, 0x3C] adds r0, 0x2E movs r4, 0 strb r4, [r0] ldr r0, [r5] adds r0, 0x2C strb r2, [r0] ldr r0, [r5] adds r0, 0x2D strb r4, [r0] bl sub_8035DA0 ldr r0, [r5] adds r0, 0x3A strb r4, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080357C8: .4byte gUnknown_203B348 _080357CC: .4byte 0x0000ffdc thumb_func_end InitMainMenu thumb_func_start sub_80357D0 sub_80357D0: push {r4,lr} ldr r4, _080357E8 ldr r0, [r4] cmp r0, 0 beq _080357E2 bl MemoryFree movs r0, 0 str r0, [r4] _080357E2: pop {r4} pop {r0} bx r0 .align 2, 0 _080357E8: .4byte gUnknown_203B348 thumb_func_end sub_80357D0 thumb_func_start SetUpMenu SetUpMenu: push {lr} ldr r0, _08035810 ldr r0, [r0] ldr r1, [r0] ldr r0, [r0, 0x4] cmp r1, r0 bne _080357FC b _08035958 _080357FC: subs r0, 0x1 cmp r0, 0x2D bls _08035804 b _08035950 _08035804: lsls r0, 2 ldr r1, _08035814 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035810: .4byte gUnknown_203B348 _08035814: .4byte _08035818 .align 2, 0 _08035818: .4byte _080358D0 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _080358E0 .4byte _080358E0 .4byte _080358E0 .4byte _080358E0 .4byte _08035934 .4byte _0803590C .4byte _080358F0 .4byte _08035912 .4byte _08035918 .4byte _0803591E .4byte _0803594C .4byte _08035950 .4byte _08035950 .4byte _080358F6 .4byte _080358F6 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035924 .4byte _08035924 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _08035950 .4byte _0803593A .4byte _0803593A .4byte _0803593A .4byte _0803593A .4byte _0803593A .4byte _0803593A _080358D0: bl sub_8094C14 movs r0, 0 bl sub_8099690 bl sub_8035E10 b _08035950 _080358E0: ldr r0, _080358EC ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_8039254 b _08035950 .align 2, 0 _080358EC: .4byte gUnknown_203B348 _080358F0: bl sub_8036400 b _08035950 _080358F6: ldr r0, _08035908 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_8035DB4 bl sub_8036FDC b _08035950 .align 2, 0 _08035908: .4byte gUnknown_203B348 _0803590C: bl sub_803225C b _08035950 _08035912: bl sub_80398AC b _08035950 _08035918: bl sub_803A1D8 b _08035950 _0803591E: bl sub_803A1E4 b _08035950 _08035924: ldr r0, _08035930 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_8038900 b _08035950 .align 2, 0 _08035930: .4byte gUnknown_203B348 _08035934: bl sub_80382A0 b _08035950 _0803593A: ldr r0, _08035948 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_803850C b _08035950 .align 2, 0 _08035948: .4byte gUnknown_203B348 _0803594C: bl sub_803A200 _08035950: ldr r0, _0803595C ldr r1, [r0] ldr r0, [r1, 0x4] str r0, [r1] _08035958: pop {r0} bx r0 .align 2, 0 _0803595C: .4byte gUnknown_203B348 thumb_func_end SetUpMenu thumb_func_start UpdateMenu UpdateMenu: push {lr} ldr r2, _0803597C ldr r0, _08035980 ldr r0, [r0] ldr r0, [r0, 0x4] subs r0, 0x1 cmp r0, 0x2D bls _08035972 b _08035AA6 _08035972: lsls r0, 2 ldr r1, _08035984 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803597C: .4byte 0x0000ffdc _08035980: .4byte gUnknown_203B348 _08035984: .4byte _08035988 .align 2, 0 _08035988: .4byte _08035A40 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035A46 .4byte _08035A46 .4byte _08035A46 .4byte _08035A46 .4byte _08035A8E .4byte _08035A52 .4byte _08035A4C .4byte _08035A58 .4byte _08035A5E .4byte _08035A70 .4byte _08035AA0 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035AA6 .4byte _08035A88 .4byte _08035A88 .4byte _08035AA6 .4byte _08035A94 .4byte _08035A94 .4byte _08035A94 .4byte _08035A94 .4byte _08035A94 .4byte _08035A9A .4byte _08035A9A .4byte _08035A9A .4byte _08035A9A .4byte _08035A9A .4byte _08035A9A _08035A40: bl sub_8035EEC b _08035AA4 _08035A46: bl sub_803941C b _08035AA4 _08035A4C: bl sub_8036448 b _08035A62 _08035A52: bl sub_8032318 b _08035A62 _08035A58: bl sub_8039928 b _08035A62 _08035A5E: bl sub_803A1DC _08035A62: movs r2, 0x1 cmp r0, 0x3 beq _08035AA6 ldr r2, _08035A6C b _08035AA6 .align 2, 0 _08035A6C: .4byte 0x0000ffdc _08035A70: bl sub_803A1E8 movs r2, 0x5 cmp r0, 0x3 beq _08035AA6 ldr r2, _08035A84 cmp r0, 0x2 bne _08035AA6 movs r2, 0x1 b _08035AA6 .align 2, 0 _08035A84: .4byte 0x0000ffdc _08035A88: bl sub_8038A90 b _08035AA4 _08035A8E: bl sub_80382C0 b _08035AA4 _08035A94: bl sub_80383D4 b _08035AA4 _08035A9A: bl sub_8038630 b _08035AA4 _08035AA0: bl sub_803A2A4 _08035AA4: adds r2, r0, 0 _08035AA6: ldr r0, _08035AB8 cmp r2, r0 beq _08035AB2 ldr r0, _08035ABC ldr r0, [r0] str r2, [r0, 0x4] _08035AB2: adds r0, r2, 0 pop {r1} bx r1 .align 2, 0 _08035AB8: .4byte 0x0000ffdc _08035ABC: .4byte gUnknown_203B348 thumb_func_end UpdateMenu thumb_func_start CleanUpMenu CleanUpMenu: push {lr} ldr r0, _08035AE4 ldr r0, [r0] ldr r1, [r0, 0x8] ldr r0, [r0, 0x4] cmp r1, r0 bne _08035AD0 b _08035BF8 _08035AD0: subs r0, r1, 0x1 cmp r0, 0x2D bls _08035AD8 b _08035BF0 _08035AD8: lsls r0, 2 ldr r1, _08035AE8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035AE4: .4byte gUnknown_203B348 _08035AE8: .4byte _08035AEC .align 2, 0 _08035AEC: .4byte _08035BA4 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BAA .4byte _08035BAA .4byte _08035BAA .4byte _08035BAA .4byte _08035BDA .4byte _08035BBC .4byte _08035BB0 .4byte _08035BC2 .4byte _08035BC8 .4byte _08035BCE .4byte _08035BEC .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BB6 .4byte _08035BB6 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BF0 .4byte _08035BD4 .4byte _08035BD4 .4byte _08035BF0 .4byte _08035BE0 .4byte _08035BE0 .4byte _08035BE0 .4byte _08035BE0 .4byte _08035BE0 .4byte _08035BE6 .4byte _08035BE6 .4byte _08035BE6 .4byte _08035BE6 .4byte _08035BE6 .4byte _08035BE6 _08035BA4: bl sub_8035EC0 b _08035BF0 _08035BAA: bl sub_80393F0 b _08035BF0 _08035BB0: bl sub_8036B04 b _08035BF0 _08035BB6: bl sub_80370D4 b _08035BF0 _08035BBC: bl sub_80327E4 b _08035BF0 _08035BC2: bl sub_80399E4 b _08035BF0 _08035BC8: bl nullsub_55 b _08035BF0 _08035BCE: bl sub_803A1EC b _08035BF0 _08035BD4: bl sub_8038A5C b _08035BF0 _08035BDA: bl sub_80382AC b _08035BF0 _08035BE0: bl sub_80383A8 b _08035BF0 _08035BE6: bl sub_8038604 b _08035BF0 _08035BEC: bl sub_803A278 _08035BF0: ldr r0, _08035BFC ldr r1, [r0] ldr r0, [r1, 0x4] str r0, [r1, 0x8] _08035BF8: pop {r0} bx r0 .align 2, 0 _08035BFC: .4byte gUnknown_203B348 thumb_func_end CleanUpMenu thumb_func_start sub_8035C00 sub_8035C00: ldr r1, _08035C0C ldr r1, [r1] ldr r0, [r0] str r0, [r1, 0x2C] bx lr .align 2, 0 _08035C0C: .4byte gUnknown_203B348 thumb_func_end sub_8035C00 thumb_func_start sub_8035C10 sub_8035C10: ldr r0, _08035C18 ldr r0, [r0] adds r0, 0x2C bx lr .align 2, 0 _08035C18: .4byte gUnknown_203B348 thumb_func_end sub_8035C10 thumb_func_start sub_8035C1C sub_8035C1C: ldr r2, _08035C38 ldr r0, [r2] adds r0, 0x2E movs r3, 0 strb r3, [r0] ldr r0, [r2] adds r0, 0x2C movs r1, 0x1 strb r1, [r0] ldr r0, [r2] adds r0, 0x2D strb r3, [r0] bx lr .align 2, 0 _08035C38: .4byte gUnknown_203B348 thumb_func_end sub_8035C1C thumb_func_start SetMenuItems SetMenuItems: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 ldr r0, [sp, 0x24] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r0, r5, 1 adds r0, r5 lsls r0, 3 adds r0, r4 ldm r3!, {r1,r2,r7} stm r0!, {r1,r2,r7} ldm r3!, {r1,r2,r7} stm r0!, {r1,r2,r7} bl sub_8004914 adds r0, r4, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C mov r0, r8 cmp r0, 0 beq _08035C90 lsls r4, r5, 2 adds r0, r4, r5 lsls r0, 4 adds r0, r6, r0 ldr r1, [sp, 0x28] str r1, [sp] str r5, [sp, 0x4] ldr r1, [sp, 0x20] movs r2, 0 movs r3, 0 bl sub_8012D60 b _08035CA8 _08035C90: lsls r4, r5, 2 adds r0, r4, r5 lsls r0, 4 adds r0, r6, r0 mov r1, r8 str r1, [sp] str r5, [sp, 0x4] ldr r1, [sp, 0x20] movs r2, 0 movs r3, 0 bl sub_8012E04 _08035CA8: adds r0, r4, r5 lsls r0, 4 adds r0, r6 adds r0, 0x4C movs r1, 0x1 strb r1, [r0] add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end SetMenuItems thumb_func_start sub_8035CC0 sub_8035CC0: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_8006518 lsls r1, r4, 1 adds r1, r4 lsls r1, 3 adds r1, r5 ldr r0, _08035CF0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_8004914 adds r0, r5, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08035CF0: .4byte gUnknown_80E59A8 thumb_func_end sub_8035CC0 thumb_func_start sub_8035CF4 sub_8035CF4: push {lr} adds r3, r0, 0 lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r0, r3 adds r1, r0, 0 adds r1, 0x4C strb r2, [r1] adds r2, r0, 0 adds r2, 0x4D movs r1, 0x1 strb r1, [r2] subs r1, 0x2 str r1, [r0, 0x48] bl sub_8012EBC pop {r0} bx r0 thumb_func_end sub_8035CF4 thumb_func_start sub_8035D1C sub_8035D1C: ldr r0, _08035D28 ldr r1, [r0] ldr r0, _08035D2C strh r0, [r1, 0x38] bx lr .align 2, 0 _08035D28: .4byte gUnknown_203B348 _08035D2C: .4byte 0x0000ffff thumb_func_end sub_8035D1C thumb_func_start sub_8035D30 sub_8035D30: ldr r1, _08035D38 ldr r1, [r1] strh r0, [r1, 0x38] bx lr .align 2, 0 _08035D38: .4byte gUnknown_203B348 thumb_func_end sub_8035D30 thumb_func_start sub_8035D3C sub_8035D3C: ldr r0, _08035D48 ldr r0, [r0] movs r1, 0x38 ldrsh r0, [r0, r1] bx lr .align 2, 0 _08035D48: .4byte gUnknown_203B348 thumb_func_end sub_8035D3C thumb_func_start sub_8035D4C sub_8035D4C: ldr r0, _08035D54 ldr r0, [r0] bx lr .align 2, 0 _08035D54: .4byte gUnknown_203B348 thumb_func_end sub_8035D4C thumb_func_start sub_8035D58 sub_8035D58: ldr r0, _08035D64 ldr r1, [r0] movs r0, 0x1 negs r0, r0 str r0, [r1, 0x3C] bx lr .align 2, 0 _08035D64: .4byte gUnknown_203B348 thumb_func_end sub_8035D58 thumb_func_start sub_8035D68 sub_8035D68: ldr r1, _08035D70 ldr r1, [r1] str r0, [r1, 0x3C] bx lr .align 2, 0 _08035D70: .4byte gUnknown_203B348 thumb_func_end sub_8035D68 thumb_func_start sub_8035D74 sub_8035D74: ldr r0, _08035D7C ldr r0, [r0] ldr r0, [r0, 0x3C] bx lr .align 2, 0 _08035D7C: .4byte gUnknown_203B348 thumb_func_end sub_8035D74 thumb_func_start sub_8035D80 sub_8035D80: ldr r1, _08035D90 ldr r2, [r1] ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2, 0x30] str r1, [r2, 0x34] bx lr .align 2, 0 _08035D90: .4byte gUnknown_203B348 thumb_func_end sub_8035D80 thumb_func_start sub_8035D94 sub_8035D94: ldr r0, _08035D9C ldr r0, [r0] adds r0, 0x30 bx lr .align 2, 0 _08035D9C: .4byte gUnknown_203B348 thumb_func_end sub_8035D94 thumb_func_start sub_8035DA0 sub_8035DA0: ldr r2, _08035DB0 ldr r0, [r2] adds r0, 0x30 movs r1, 0 strb r1, [r0] ldr r0, [r2] str r1, [r0, 0x34] bx lr .align 2, 0 _08035DB0: .4byte gUnknown_203B348 thumb_func_end sub_8035DA0 thumb_func_start sub_8035DB4 sub_8035DB4: push {lr} movs r1, 0x8 subs r0, 0x13 cmp r0, 0x7 bhi _08035E0A lsls r0, 2 ldr r1, _08035DC8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035DC8: .4byte _08035DCC .align 2, 0 _08035DCC: .4byte _08035DEC .4byte _08035DF0 .4byte _08035DF4 .4byte _08035DF8 .4byte _08035DFC .4byte _08035E00 .4byte _08035E04 .4byte _08035E08 _08035DEC: movs r1, 0 b _08035E0A _08035DF0: movs r1, 0x1 b _08035E0A _08035DF4: movs r1, 0x2 b _08035E0A _08035DF8: movs r1, 0x3 b _08035E0A _08035DFC: movs r1, 0x4 b _08035E0A _08035E00: movs r1, 0x5 b _08035E0A _08035E04: movs r1, 0x6 b _08035E0A _08035E08: movs r1, 0x7 _08035E0A: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_8035DB4 thumb_func_start sub_8035E10 sub_8035E10: push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, _08035EB8 ldr r0, [r5] cmp r0, 0 bne _08035E34 movs r4, 0xD4 lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _08035E34: mov r12, r5 movs r0, 0xA2 lsls r0, 1 mov r8, r0 ldr r4, _08035EBC movs r3, 0 movs r2, 0x3 _08035E42: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08035E42 bl sub_8004914 ldr r4, _08035EB8 ldr r0, [r4] movs r6, 0xA2 lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803628C ldr r0, [r4] movs r7, 0xD2 lsls r7, 1 adds r0, r7 movs r1, 0x1 negs r1, r1 str r1, [r0] bl SetMainMenuType lsls r0, 24 cmp r0, 0 beq _08035E9A ldr r0, [r4] adds r0, 0x4 movs r1, 0x2 movs r2, 0 bl sub_8035CF4 _08035E9A: ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r1, [r4] movs r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08035EB8: .4byte gUnknown_203B34C _08035EBC: .4byte gUnknown_80E59C8 thumb_func_end sub_8035E10 thumb_func_start sub_8035EC0 sub_8035EC0: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _08035EE8 ldr r0, [r4] cmp r0, 0 beq _08035EE0 bl MemoryFree movs r0, 0 str r0, [r4] _08035EE0: pop {r4} pop {r0} bx r0 .align 2, 0 _08035EE8: .4byte gUnknown_203B34C thumb_func_end sub_8035EC0 thumb_func_start sub_8035EEC sub_8035EEC: push {r4-r6,lr} sub sp, 0x4 ldr r6, _08035F64 str r6, [sp] ldr r4, _08035F68 ldr r0, [r4] ldr r5, [r0] cmp r5, 0xC beq _08035FB8 cmp r5, 0xC bls _08035F04 b _0803601A _08035F04: cmp r5, 0x1 beq _08035F0A b _0803601A _08035F0A: adds r0, 0xA4 bl sub_8012FD8 ldr r0, [r4] adds r0, 0x4 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08035F28 ldr r0, [r4] adds r0, 0x4 mov r1, sp bl sub_8013114 _08035F28: bl SetMainMenuType lsls r0, 24 cmp r0, 0 beq _08035F4A ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r0, [r4] adds r0, 0x4 movs r1, 0x2 movs r2, 0 bl sub_8035CF4 _08035F4A: ldr r1, [sp] cmp r1, 0xC beq _08035FA8 cmp r1, 0xC bhi _08035F6C cmp r1, 0x3 beq _08035FAC cmp r1, 0x3 bcc _0803601A cmp r1, 0x6 bcc _0803601A b _08035FAC .align 2, 0 _08035F64: .4byte 0x0000ffdc _08035F68: .4byte gUnknown_203B34C _08035F6C: cmp r1, r6 beq _08035FF2 cmp r1, r6 bhi _08035F7A cmp r1, 0x10 bhi _0803601A b _08035FAC _08035F7A: ldr r0, _08035FA4 cmp r1, r0 bne _0803601A ldr r0, [r4] str r5, [r0] str r6, [sp] bl sub_8004914 ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r0, [r4] adds r0, 0x4 movs r1, 0x2 movs r2, 0 bl sub_8035CF4 b _0803601A .align 2, 0 _08035FA4: .4byte 0x0000ffdd _08035FA8: bl sub_8035DA0 _08035FAC: ldr r1, _08035FB4 ldr r0, [sp] str r0, [r1] b _0803601A .align 2, 0 _08035FB4: .4byte gUnknown_203B350 _08035FB8: adds r0, 0x54 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08035FCE ldr r0, [r4] adds r0, 0x54 mov r1, sp bl sub_8013114 _08035FCE: ldr r1, [sp] cmp r1, 0x12 beq _08036008 cmp r1, 0x12 bhi _08035FDE cmp r1, 0x11 beq _08035FFC b _0803601A _08035FDE: cmp r1, r6 beq _08036018 ldr r0, _08035FF8 cmp r1, r0 bne _0803601A bl sub_803623C ldr r1, [r4] movs r0, 0x1 str r0, [r1] _08035FF2: str r6, [sp] b _0803601A .align 2, 0 _08035FF8: .4byte 0x0000ffdd _08035FFC: ldr r0, _08036004 str r1, [r0] str r5, [sp] b _0803601A .align 2, 0 _08036004: .4byte gUnknown_203B354 _08036008: ldr r0, _08036014 str r1, [r0] movs r0, 0x14 str r0, [sp] b _0803601A .align 2, 0 _08036014: .4byte gUnknown_203B354 _08036018: str r1, [sp] _0803601A: ldr r0, [sp] add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8035EEC thumb_func_start SetMainMenuType SetMainMenuType: push {r4-r6,lr} sub sp, 0x10 ldr r6, _08036048 ldr r2, [r6] ldr r0, [r2, 0x8] movs r3, 0x30 ldrsh r1, [r2, r3] lsls r1, 3 adds r1, r0 ldr r5, [r1, 0x4] movs r0, 0xD2 lsls r0, 1 adds r1, r2, r0 ldr r0, [r1] cmp r0, r5 bne _0803604C movs r0, 0 b _08036226 .align 2, 0 _08036048: .4byte gUnknown_203B34C _0803604C: str r5, [r1] movs r4, 0xA2 lsls r4, 1 adds r0, r2, r4 movs r1, 0x2 bl sub_8035CC0 ldr r0, [r6] adds r0, r4 movs r1, 0x3 bl sub_8035CC0 subs r0, r5, 0x3 cmp r0, 0xD bls _0803606C b _08036224 _0803606C: lsls r0, 2 ldr r1, _08036078 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08036078: .4byte _0803607C .align 2, 0 _0803607C: .4byte _08036114 .4byte _08036224 .4byte _08036224 .4byte _080360F4 .4byte _08036134 .4byte _08036154 .4byte _08036224 .4byte _08036174 .4byte _08036194 .4byte _080361B4 .4byte _080360D4 .4byte _080361D4 .4byte _080360B4 .4byte _08036204 _080360B4: ldr r0, _080360C8 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _080360CC ldr r2, _080360D0 b _080361E4 .align 2, 0 _080360C8: .4byte gUnknown_203B34C _080360CC: .4byte gUnknown_80E5CB4 _080360D0: .4byte gUnknown_80E6030 _080360D4: ldr r0, _080360E8 ldr r1, [r0] adds r0, r1, 0x4 movs r3, 0xA2 lsls r3, 1 adds r1, r3 ldr r3, _080360EC ldr r2, _080360F0 b _080361E4 .align 2, 0 _080360E8: .4byte gUnknown_203B34C _080360EC: .4byte gUnknown_80E5CB4 _080360F0: .4byte gUnknown_80E5F80 _080360F4: ldr r0, _08036108 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _0803610C ldr r2, _08036110 b _080361E4 .align 2, 0 _08036108: .4byte gUnknown_203B34C _0803610C: .4byte gUnknown_80E5CB4 _08036110: .4byte gUnknown_80E5F1C _08036114: ldr r0, _08036128 ldr r1, [r0] adds r0, r1, 0x4 movs r3, 0xA2 lsls r3, 1 adds r1, r3 ldr r3, _0803612C ldr r2, _08036130 b _080361E4 .align 2, 0 _08036128: .4byte gUnknown_203B34C _0803612C: .4byte gUnknown_80E5CB4 _08036130: .4byte gUnknown_80E5CCC _08036134: ldr r0, _08036148 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _0803614C ldr r2, _08036150 b _080361E4 .align 2, 0 _08036148: .4byte gUnknown_203B34C _0803614C: .4byte gUnknown_80E5CB4 _08036150: .4byte gUnknown_80E5DA0 _08036154: ldr r0, _08036168 ldr r1, [r0] adds r0, r1, 0x4 movs r3, 0xA2 lsls r3, 1 adds r1, r3 ldr r3, _0803616C ldr r2, _08036170 b _080361E4 .align 2, 0 _08036168: .4byte gUnknown_203B34C _0803616C: .4byte gUnknown_80E5CB4 _08036170: .4byte gUnknown_80E5DF0 _08036174: ldr r0, _08036188 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _0803618C ldr r2, _08036190 b _080361E4 .align 2, 0 _08036188: .4byte gUnknown_203B34C _0803618C: .4byte gUnknown_80E5CB4 _08036190: .4byte gUnknown_80E5D0C _08036194: ldr r0, _080361A8 ldr r1, [r0] adds r0, r1, 0x4 movs r3, 0xA2 lsls r3, 1 adds r1, r3 ldr r3, _080361AC ldr r2, _080361B0 b _080361E4 .align 2, 0 _080361A8: .4byte gUnknown_203B34C _080361AC: .4byte gUnknown_80E5CB4 _080361B0: .4byte gUnknown_80E5E5C _080361B4: ldr r0, _080361C8 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _080361CC ldr r2, _080361D0 b _080361E4 .align 2, 0 _080361C8: .4byte gUnknown_203B34C _080361CC: .4byte gUnknown_80E5CB4 _080361D0: .4byte gUnknown_80E5EBC _080361D4: ldr r0, _080361F8 ldr r1, [r0] adds r0, r1, 0x4 movs r3, 0xA2 lsls r3, 1 adds r1, r3 ldr r3, _080361FC ldr r2, _08036200 _080361E4: str r2, [sp] movs r2, 0 str r2, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x2 bl SetMenuItems b _08036224 .align 2, 0 _080361F8: .4byte gUnknown_203B34C _080361FC: .4byte gUnknown_80E5CB4 _08036200: .4byte gUnknown_80E5FCC _08036204: ldr r0, _08036230 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _08036234 ldr r2, _08036238 str r2, [sp] movs r2, 0 str r2, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x2 bl SetMenuItems _08036224: movs r0, 0x1 _08036226: add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08036230: .4byte gUnknown_203B34C _08036234: .4byte gUnknown_80E5CB4 _08036238: .4byte gUnknown_80E5D48 thumb_func_end SetMainMenuType thumb_func_start sub_803623C sub_803623C: push {r4,lr} ldr r4, _08036288 ldr r0, [r4] movs r1, 0xA2 lsls r1, 1 adds r0, r1 movs r1, 0x1 bl sub_8035CC0 bl sub_803628C ldr r0, [r4] movs r1, 0xD2 lsls r1, 1 adds r0, r1 movs r1, 0x1 negs r1, r1 str r1, [r0] bl SetMainMenuType lsls r0, 24 cmp r0, 0 beq _08036276 ldr r0, [r4] adds r0, 0x4 movs r1, 0x2 movs r2, 0 bl sub_8035CF4 _08036276: ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 pop {r4} pop {r0} bx r0 .align 2, 0 _08036288: .4byte gUnknown_203B34C thumb_func_end sub_803623C thumb_func_start sub_803628C sub_803628C: push {r4,lr} sub sp, 0x10 bl sub_8011C34 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0803629E b _080363A4 _0803629E: movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _08036344 movs r0, 0x7 bl sub_8095324 cmp r0, 0 beq _080362FC bl sub_803D0D8 lsls r0, 24 cmp r0, 0 beq _080362DC ldr r0, _080362D0 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _080362D4 ldr r2, _080362D8 b _0803637C .align 2, 0 _080362D0: .4byte gUnknown_203B34C _080362D4: .4byte gUnknown_80E5A78 _080362D8: .4byte gUnknown_80E5C18 _080362DC: ldr r0, _080362F0 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _080362F4 ldr r2, _080362F8 b _0803637C .align 2, 0 _080362F0: .4byte gUnknown_203B34C _080362F4: .4byte gUnknown_80E5BC4 _080362F8: .4byte gUnknown_80E5BDC _080362FC: bl sub_803D0D8 lsls r0, 24 cmp r0, 0 beq _08036324 ldr r0, _08036318 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _0803631C ldr r2, _08036320 b _0803637C .align 2, 0 _08036318: .4byte gUnknown_203B34C _0803631C: .4byte gUnknown_80E5A78 _08036320: .4byte gUnknown_80E5AFC _08036324: ldr r0, _08036338 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _0803633C ldr r2, _08036340 b _0803637C .align 2, 0 _08036338: .4byte gUnknown_203B34C _0803633C: .4byte gUnknown_80E5A60 _08036340: .4byte gUnknown_80E5A90 _08036344: bl sub_803D0D8 lsls r0, 24 cmp r0, 0 beq _0803636C ldr r0, _08036360 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _08036364 ldr r2, _08036368 b _0803637C .align 2, 0 _08036360: .4byte gUnknown_203B34C _08036364: .4byte gUnknown_80E5A78 _08036368: .4byte gUnknown_80E5B8C _0803636C: ldr r0, _08036394 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _08036398 ldr r2, _0803639C _0803637C: str r2, [sp] movs r4, 0x1 str r4, [sp, 0x4] ldr r2, _080363A0 ldr r2, [r2] str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems b _080363C8 .align 2, 0 _08036394: .4byte gUnknown_203B34C _08036398: .4byte gUnknown_80E5B34 _0803639C: .4byte gUnknown_80E5B4C _080363A0: .4byte gUnknown_203B350 _080363A4: ldr r0, _080363D0 ldr r1, [r0] adds r0, r1, 0x4 movs r2, 0xA2 lsls r2, 1 adds r1, r2 ldr r3, _080363D4 ldr r2, _080363D8 str r2, [sp] movs r4, 0x1 str r4, [sp, 0x4] ldr r2, _080363DC ldr r2, [r2] str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems _080363C8: add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _080363D0: .4byte gUnknown_203B34C _080363D4: .4byte gUnknown_80E59E0 _080363D8: .4byte gUnknown_80E59F8 _080363DC: .4byte gUnknown_203B350 thumb_func_end sub_803628C thumb_func_start sub_80363E0 sub_80363E0: push {lr} ldr r0, _080363F4 ldr r0, [r0] cmp r0, 0 beq _080363F8 ldr r0, [r0] cmp r0, 0xC beq _080363F8 movs r0, 0x1 b _080363FA .align 2, 0 _080363F4: .4byte gUnknown_203B34C _080363F8: movs r0, 0 _080363FA: pop {r1} bx r1 thumb_func_end sub_80363E0 thumb_func_start sub_8036400 sub_8036400: push {r4,r5,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08036444 movs r4, 0xE8 lsls r4, 2 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 bl sub_8035C1C bl sub_8035DA0 ldr r1, [r5] movs r0, 0x13 str r0, [r1, 0x4] movs r0, 0 bl sub_8036FC4 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08036444: .4byte gUnknown_203B358 thumb_func_end sub_8036400 thumb_func_start sub_8036448 sub_8036448: push {lr} ldr r0, _08036460 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x12 bhi _08036524 lsls r0, 2 ldr r1, _08036464 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08036460: .4byte gUnknown_203B358 _08036464: .4byte _08036468 .align 2, 0 _08036468: .4byte _080364B4 .4byte _080364BA .4byte _080364C0 .4byte _080364C6 .4byte _080364D2 .4byte _080364CC .4byte _080364D8 .4byte _080364DE .4byte _080364E4 .4byte _080364F0 .4byte _080364F6 .4byte _080364FC .4byte _08036502 .4byte _08036514 .4byte _08036508 .4byte _080364EA .4byte _0803650E .4byte _0803651A .4byte _08036520 _080364B4: bl sub_803652C b _08036524 _080364BA: bl sub_8036590 b _08036524 _080364C0: bl sub_80365AC b _08036524 _080364C6: bl sub_8036674 b _08036524 _080364CC: bl sub_8036728 b _08036524 _080364D2: bl sub_8036788 b _08036524 _080364D8: bl sub_8036830 b _08036524 _080364DE: bl sub_803689C b _08036524 _080364E4: bl sub_80368D4 b _08036524 _080364EA: bl sub_8036A7C b _08036524 _080364F0: bl sub_8036934 b _08036524 _080364F6: bl sub_8036950 b _08036524 _080364FC: bl sub_8036AA4 b _08036524 _08036502: bl sub_80369FC b _08036524 _08036508: bl sub_8036A34 b _08036524 _0803650E: bl sub_8036A54 b _08036524 _08036514: bl sub_8036A18 b _08036524 _0803651A: bl sub_8036ADC b _08036524 _08036520: movs r0, 0x3 b _08036526 _08036524: movs r0, 0 _08036526: pop {r1} bx r1 thumb_func_end sub_8036448 thumb_func_start sub_803652C sub_803652C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 adds r1, r0, 0 cmp r1, 0 bne _0803658A ldr r2, [sp] cmp r2, 0x1 beq _08036556 cmp r2, 0x1 bgt _0803654C cmp r2, 0 beq _08036584 b _0803658A _0803654C: cmp r2, 0x2 beq _0803656C cmp r2, 0x7 beq _08036584 b _0803658A _08036556: ldr r0, _08036568 ldr r0, [r0] str r1, [r0, 0x8] str r2, [r0, 0x10] movs r0, 0x1 bl sub_8036FC4 b _0803658A .align 2, 0 _08036568: .4byte gUnknown_203B358 _0803656C: ldr r0, _08036580 ldr r1, [r0] movs r0, 0x1 str r0, [r1, 0x8] str r2, [r1, 0x10] movs r0, 0x7 bl sub_8036FC4 b _0803658A .align 2, 0 _08036580: .4byte gUnknown_203B358 _08036584: movs r0, 0x12 bl sub_8036FC4 _0803658A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803652C thumb_func_start sub_8036590 sub_8036590: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080365A4 movs r0, 0x2 bl sub_8036FC4 _080365A4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036590 thumb_func_start sub_80365AC sub_80365AC: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _080365E8 ldr r0, [r4] ldr r7, _080365EC adds r0, r7 movs r1, 0 strb r1, [r0] ldr r0, [r4] ldr r6, _080365F0 adds r0, r6 movs r5, 0x1 strb r5, [r0] ldr r0, [r4] movs r2, 0x97 lsls r2, 2 mov r8, r2 add r0, r8 strb r1, [r0] movs r0, 0x1 bl sub_801CA08 cmp r0, 0x3 beq _08036606 cmp r0, 0x3 bhi _080365F4 cmp r0, 0x2 beq _080365FA b _0803666A .align 2, 0 _080365E8: .4byte gUnknown_203B358 _080365EC: .4byte 0x0000025e _080365F0: .4byte 0x0000025d _080365F4: cmp r0, 0x4 beq _0803662C b _0803666A _080365FA: bl sub_801CBB8 movs r0, 0 bl sub_8036FC4 b _0803666A _08036606: bl sub_801CB24 ldr r1, [r4] ldr r2, _08036624 adds r1, r2 strb r0, [r1] ldr r0, [r4] ldr r1, _08036628 adds r0, r1 strb r5, [r0] movs r0, 0x3 bl sub_8036FC4 b _0803666A .align 2, 0 _08036624: .4byte 0x0000025e _08036628: .4byte 0x0000025d _0803662C: ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x4] bl sub_801CB24 ldr r1, [r4] adds r1, r7 strb r0, [r1] ldr r0, [r4] adds r0, r6 strb r5, [r0] ldr r0, [r4] movs r2, 0xF2 lsls r2, 1 adds r0, r2 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] add r0, r8 bl sub_801B3C0 movs r0, 0x5 bl sub_8036FC4 _0803666A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80365AC thumb_func_start sub_8036674 sub_8036674: push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 str r0, [sp] movs r0, 0 bl sub_801CA08 ldr r4, _080366B8 ldr r0, [r4] movs r1, 0x9A lsls r1, 1 adds r0, r1 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080366A6 ldr r0, [r4] movs r1, 0x9A lsls r1, 1 adds r0, r1 mov r1, sp bl sub_8013114 _080366A6: ldr r0, [sp] cmp r0, 0x3 beq _080366C6 cmp r0, 0x3 bgt _080366BC cmp r0, 0 beq _08036700 b _0803671A .align 2, 0 _080366B8: .4byte gUnknown_203B358 _080366BC: cmp r0, 0x4 beq _080366CE cmp r0, 0x7 beq _08036700 b _0803671A _080366C6: movs r0, 0x4 bl sub_8036FC4 b _0803671A _080366CE: ldr r0, [r4] movs r1, 0x13 str r1, [r0, 0x4] movs r1, 0xF2 lsls r1, 1 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x97 lsls r1, 2 adds r0, r1 bl sub_801B3C0 movs r0, 0x5 bl sub_8036FC4 b _0803671A _08036700: ldr r0, _08036724 ldr r0, [r0] movs r1, 0xC2 lsls r1, 1 adds r0, r1 movs r1, 0x3 bl sub_8035CC0 bl sub_801CCD8 movs r0, 0x2 bl sub_8036FC4 _0803671A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08036724: .4byte gUnknown_203B358 thumb_func_end sub_8036674 thumb_func_start sub_8036728 sub_8036728: push {r4,lr} bl sub_801B410 cmp r0, 0x1 beq _08036780 cmp r0, 0x1 bcc _08036780 cmp r0, 0x3 bhi _08036780 bl sub_801B450 bl sub_8004914 ldr r4, _08036778 ldr r0, [r4] movs r1, 0xF2 lsls r1, 1 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x1 bl sub_801CB5C ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0x13 bne _0803677C adds r0, r4, 0 adds r0, 0x44 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x3 bl sub_8036FC4 b _08036780 .align 2, 0 _08036778: .4byte gUnknown_203B358 _0803677C: bl sub_8036FC4 _08036780: pop {r4} pop {r0} bx r0 thumb_func_end sub_8036728 thumb_func_start sub_8036788 sub_8036788: push {r4,lr} ldr r4, _080367B8 ldr r0, [r4] movs r1, 0x9A lsls r1, 1 adds r0, r1 bl sub_8012FD8 movs r0, 0 bl sub_801CA08 ldr r0, [r4] adds r0, 0x14 bl sub_8013BBC cmp r0, 0x1 beq _080367BC cmp r0, 0x1 bcc _08036824 cmp r0, 0x2 beq _080367D2 cmp r0, 0x3 beq _080367F8 b _08036824 .align 2, 0 _080367B8: .4byte gUnknown_203B358 _080367BC: bl sub_801CCD8 ldr r0, [r4] adds r0, 0x44 movs r1, 0x3 movs r2, 0 bl sub_8035CF4 bl sub_8036F30 b _08036824 _080367D2: ldr r0, [r4] movs r2, 0xC2 lsls r2, 1 adds r0, r2 movs r1, 0x2 bl sub_8035CC0 bl sub_801CCD8 ldr r0, [r4] adds r0, 0x44 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 movs r0, 0x3 bl sub_8036FC4 b _08036824 _080367F8: ldr r0, [r4] ldr r1, [r0, 0x14] ldr r2, _0803682C adds r0, r2 strb r1, [r0] ldr r0, [r4] adds r2, 0x1 adds r1, r0, r2 ldrb r1, [r1] subs r2, 0xA adds r0, r2 strb r1, [r0] ldr r0, [r4] adds r2, 0x4 adds r1, r0, r2 ldr r0, [r0, 0x14] str r0, [r1] bl sub_801CBB8 movs r0, 0x6 bl sub_8036FC4 _08036824: pop {r4} pop {r0} bx r0 .align 2, 0 _0803682C: .4byte 0x0000025d thumb_func_end sub_8036788 thumb_func_start sub_8036830 sub_8036830: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036896 ldr r0, [sp] cmp r0, 0x5 beq _08036854 cmp r0, 0x5 bgt _0803684E cmp r0, 0 beq _08036890 b _08036896 _0803684E: cmp r0, 0x6 beq _08036890 b _08036896 _08036854: bl sub_801CBB8 ldr r0, _08036884 ldr r2, [r0] ldr r0, _08036888 ldr r1, [r0] ldr r3, _0803688C adds r0, r1, r3 ldrb r0, [r0] lsls r0, 1 adds r2, 0x50 adds r2, r0 ldrh r0, [r2] ldr r1, [r1, 0x14] subs r0, r1 strh r0, [r2] movs r0, 0xF bl sub_8036FC4 movs r0, 0 bl sub_8012574 b _08036896 .align 2, 0 _08036884: .4byte gUnknown_203B460 _08036888: .4byte gUnknown_203B358 _0803688C: .4byte 0x0000025e _08036890: movs r0, 0 bl sub_8036FC4 _08036896: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036830 thumb_func_start sub_803689C sub_803689C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080368CE ldr r0, [sp] cmp r0, 0x5 beq _080368C0 cmp r0, 0x5 bgt _080368BA cmp r0, 0 beq _080368C8 b _080368CE _080368BA: cmp r0, 0x7 beq _080368C8 b _080368CE _080368C0: movs r0, 0x9 bl sub_8036FC4 b _080368CE _080368C8: movs r0, 0x12 bl sub_8036FC4 _080368CE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_803689C thumb_func_start sub_80368D4 sub_80368D4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803692A ldr r0, [sp] cmp r0, 0x5 beq _080368F8 cmp r0, 0x5 bgt _080368F2 cmp r0, 0 beq _08036900 b _0803692A _080368F2: cmp r0, 0x7 beq _08036900 b _0803692A _080368F8: movs r0, 0x9 bl sub_8036FC4 b _0803692A _08036900: ldr r0, _08036930 ldr r1, [r0] movs r2, 0x95 lsls r2, 2 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0803692A adds r2, 0x4 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 beq _0803692A bl sub_80369D0 movs r0, 0x11 bl sub_8036FC4 movs r0, 0 bl sub_8012574 _0803692A: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08036930: .4byte gUnknown_203B358 thumb_func_end sub_80368D4 thumb_func_start sub_8036934 sub_8036934: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036948 movs r0, 0xA bl sub_8036FC4 _08036948: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036934 thumb_func_start sub_8036950 sub_8036950: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080369C8 ldr r0, _08036978 ldr r2, [r0] ldr r1, [r2, 0xC] adds r3, r0, 0 cmp r1, 0 bne _0803698C ldr r0, [r2, 0x8] cmp r0, 0 beq _0803697C cmp r0, 0x1 beq _08036984 b _080369C8 .align 2, 0 _08036978: .4byte gUnknown_203B358 _0803697C: movs r0, 0xD bl sub_8036FC4 b _080369C8 _08036984: movs r0, 0xE bl sub_8036FC4 b _080369C8 _0803698C: ldr r0, [r2, 0x8] cmp r0, 0 bne _080369BA movs r1, 0x95 lsls r1, 2 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _080369BA adds r1, 0x4 adds r0, r2, r1 ldr r0, [r0] cmp r0, 0 beq _080369BA bl sub_80369D0 movs r0, 0xB bl sub_8036FC4 movs r0, 0 bl sub_8012574 b _080369C8 _080369BA: ldr r0, [r3] ldr r0, [r0, 0xC] bl sub_8036E18 movs r0, 0xC bl sub_8036FC4 _080369C8: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036950 thumb_func_start sub_80369D0 sub_80369D0: ldr r0, _080369F4 ldr r2, [r0] ldr r0, _080369F8 ldr r1, [r0] movs r3, 0x95 lsls r3, 2 adds r0, r1, r3 ldrb r0, [r0] lsls r0, 1 adds r2, 0x50 adds r2, r0 ldrh r0, [r2] adds r3, 0x4 adds r1, r3 ldr r1, [r1] adds r0, r1 strh r0, [r2] bx lr .align 2, 0 _080369F4: .4byte gUnknown_203B460 _080369F8: .4byte gUnknown_203B358 thumb_func_end sub_80369D0 thumb_func_start sub_80369FC sub_80369FC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036A10 movs r0, 0 bl sub_8036FC4 _08036A10: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80369FC thumb_func_start sub_8036A18 sub_8036A18: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036A2C movs r0, 0x12 bl sub_8036FC4 _08036A2C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036A18 thumb_func_start sub_8036A34 sub_8036A34: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036A4E movs r0, 0x10 bl sub_8036FC4 movs r0, 0 bl sub_8012574 _08036A4E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036A34 thumb_func_start sub_8036A54 sub_8036A54: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036A76 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08036A76 bl sub_8012750 movs r0, 0x12 bl sub_8036FC4 _08036A76: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036A54 thumb_func_start sub_8036A7C sub_8036A7C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036A9E bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08036A9E bl sub_8012750 movs r0, 0x8 bl sub_8036FC4 _08036A9E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036A7C thumb_func_start sub_8036AA4 sub_8036AA4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036AD0 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08036AD0 bl sub_8012750 ldr r0, _08036AD8 ldr r0, [r0] ldr r0, [r0, 0xC] bl sub_8036E18 movs r0, 0xC bl sub_8036FC4 _08036AD0: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08036AD8: .4byte gUnknown_203B358 thumb_func_end sub_8036AA4 thumb_func_start sub_8036ADC sub_8036ADC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08036AFE bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08036AFE bl sub_8012750 movs r0, 0x12 bl sub_8036FC4 _08036AFE: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8036ADC thumb_func_start sub_8036B04 sub_8036B04: push {r4,lr} ldr r4, _08036B20 ldr r0, [r4] cmp r0, 0 beq _08036B1A bl MemoryFree movs r0, 0 str r0, [r4] bl sub_801CBB8 _08036B1A: pop {r4} pop {r0} bx r0 .align 2, 0 _08036B20: .4byte gUnknown_203B358 thumb_func_end sub_8036B04 thumb_func_start nullsub_52 nullsub_52: bx lr thumb_func_end nullsub_52 thumb_func_start sub_8036B28 sub_8036B28: push {r4,r5,lr} sub sp, 0x18 ldr r1, _08036B44 ldr r0, [r1] ldr r0, [r0] adds r5, r1, 0 cmp r0, 0x12 bls _08036B3A b _08036DFA _08036B3A: lsls r0, 2 ldr r1, _08036B48 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08036B44: .4byte gUnknown_203B358 _08036B48: .4byte _08036B4C .align 2, 0 _08036B4C: .4byte _08036B98 .4byte _08036BDC .4byte _08036BE4 .4byte _08036C14 .4byte _08036C58 .4byte _08036DFA .4byte _08036C5E .4byte _08036C90 .4byte _08036C98 .4byte _08036CC0 .4byte _08036CD8 .4byte _08036DFA .4byte _08036DFA .4byte _08036DD8 .4byte _08036D70 .4byte _08036DFA .4byte _08036DFA .4byte _08036DFA .4byte _08036DFA _08036B98: movs r0, 0 bl sub_801CF14 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08036BB8 ldr r0, _08036BB0 ldr r3, _08036BB4 movs r2, 0 b _08036BBC .align 2, 0 _08036BB0: .4byte gUnknown_80E61A4 _08036BB4: .4byte gUnknown_80E60D4 _08036BB8: ldr r0, _08036BD4 ldr r3, _08036BD8 _08036BBC: str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x1 bl sub_8014248 b _08036DFA .align 2, 0 _08036BD4: .4byte gUnknown_80E61A4 _08036BD8: .4byte gUnknown_80E60A0 _08036BDC: ldr r0, _08036BE0 b _08036DBA .align 2, 0 _08036BE0: .4byte gUnknown_80E61C0 _08036BE4: bl sub_801D008 cmp r0, 0 beq _08036BEE b _08036DFA _08036BEE: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, _08036C10 str r0, [sp, 0x14] movs r0, 0 movs r1, 0x1 add r2, sp, 0x14 movs r3, 0x9 bl sub_801C8C4 b _08036DFA .align 2, 0 _08036C10: .4byte 0x00020003 _08036C14: ldr r0, [r5] movs r4, 0xC2 lsls r4, 1 adds r0, r4 bl sub_8006518 ldr r1, [r5] adds r0, r1, 0 adds r0, 0x44 adds r1, r4 ldr r3, _08036C50 ldr r2, _08036C54 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x3 bl SetMenuItems bl sub_801CCD8 ldr r0, [r5] adds r0, 0x44 movs r1, 0x3 movs r2, 0x1 bl sub_8035CF4 b _08036DFA .align 2, 0 _08036C50: .4byte gUnknown_80E60EC _08036C54: .4byte gUnknown_80E6104 _08036C58: bl sub_8036F74 b _08036DFA _08036C5E: ldr r2, _08036C7C ldr r1, [r5] ldr r0, [r1, 0x14] str r0, [r2] ldr r0, _08036C80 ldr r2, _08036C84 adds r1, r2 ldrb r1, [r1] movs r2, 0 bl sub_8090DC4 ldr r0, _08036C88 ldr r3, _08036C8C b _08036C9C .align 2, 0 _08036C7C: .4byte gUnknown_202DE30 _08036C80: .4byte gUnknown_202DE58 _08036C84: .4byte 0x0000025e _08036C88: .4byte gUnknown_80E61E4 _08036C8C: .4byte gUnknown_80E6154 _08036C90: ldr r0, _08036C94 b _08036C9A .align 2, 0 _08036C94: .4byte gUnknown_80E6214 _08036C98: ldr r0, _08036CB8 _08036C9A: ldr r3, _08036CBC _08036C9C: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x5 bl sub_8014248 b _08036DFA .align 2, 0 _08036CB8: .4byte gUnknown_80E6268 _08036CBC: .4byte gUnknown_80E618C _08036CC0: movs r0, 0 bl nullsub_23 ldr r0, _08036CD4 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 b _08036DFA .align 2, 0 _08036CD4: .4byte gUnknown_80E62C4 _08036CD8: ldr r4, _08036D18 ldr r1, [r4] movs r0, 0 str r0, [r1, 0xC] movs r2, 0 movs r3, 0 movs r5, 0x91 lsls r5, 2 adds r0, r1, r5 str r2, [r0] str r3, [r0, 0x4] movs r0, 0x93 lsls r0, 2 adds r1, r0 str r2, [r1] str r3, [r1, 0x4] bl sub_8011830 ldr r0, [r4] ldr r0, [r0, 0x8] bl sub_8037B28 ldr r4, [r4] str r0, [r4, 0xC] cmp r0, 0 bne _08036D44 ldr r0, [r4, 0x8] cmp r0, 0 beq _08036D1C cmp r0, 0x1 beq _08036D2C b _08036D44 .align 2, 0 _08036D18: .4byte gUnknown_203B358 _08036D1C: adds r2, r4, r5 movs r1, 0x95 lsls r1, 2 adds r0, r4, r1 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2] str r1, [r2, 0x4] _08036D2C: ldr r4, _08036D6C ldr r2, [r4] ldr r0, [r2, 0x8] movs r3, 0x91 lsls r3, 2 adds r1, r2, r3 adds r3, 0x8 adds r2, r3 bl sub_8037D64 ldr r1, [r4] str r0, [r1, 0xC] _08036D44: ldr r4, _08036D6C ldr r2, [r4] ldr r0, [r2, 0xC] cmp r0, 0 bne _08036D66 ldr r0, [r2, 0x8] cmp r0, 0x1 bhi _08036D66 movs r3, 0x91 lsls r3, 2 adds r1, r2, r3 adds r3, 0x8 adds r2, r3 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0xC] _08036D66: bl sub_8011854 b _08036DFA .align 2, 0 _08036D6C: .4byte gUnknown_203B358 _08036D70: ldr r2, [r5] movs r1, 0x94 lsls r1, 2 adds r0, r2, r1 ldr r1, [r0] cmp r1, 0 bne _08036DA4 ldr r1, _08036D9C movs r3, 0x92 lsls r3, 2 adds r0, r2, r3 ldr r0, [r0] str r0, [r1] ldr r0, _08036DA0 subs r3, 0x4 adds r1, r2, r3 ldrb r1, [r1] movs r2, 0 bl sub_8090DC4 b _08036DB8 .align 2, 0 _08036D9C: .4byte gUnknown_202DE30 _08036DA0: .4byte gUnknown_202DE58 _08036DA4: ldr r0, _08036DC8 str r1, [r0] ldr r0, _08036DCC movs r3, 0x93 lsls r3, 2 adds r1, r2, r3 ldrb r1, [r1] movs r2, 0 bl sub_8090DC4 _08036DB8: ldr r0, _08036DD0 _08036DBA: ldr r3, _08036DD4 movs r1, 0 movs r2, 0 bl sub_80141B4 b _08036DFA .align 2, 0 _08036DC8: .4byte gUnknown_202DE30 _08036DCC: .4byte gUnknown_202DE58 _08036DD0: .4byte gUnknown_80E6314 _08036DD4: .4byte 0x00000101 _08036DD8: ldr r2, _08036E04 ldr r1, [r5] ldr r0, [r1, 0x14] str r0, [r2] ldr r0, _08036E08 ldr r2, _08036E0C adds r1, r2 ldrb r1, [r1] movs r2, 0 bl sub_8090DC4 ldr r0, _08036E10 ldr r3, _08036E14 movs r1, 0 movs r2, 0 bl sub_80141B4 _08036DFA: add sp, 0x18 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08036E04: .4byte gUnknown_202DE30 _08036E08: .4byte gUnknown_202DE58 _08036E0C: .4byte 0x0000025e _08036E10: .4byte gUnknown_80E6358 _08036E14: .4byte 0x00000101 thumb_func_end sub_8036B28 thumb_func_start sub_8036E18 sub_8036E18: push {lr} cmp r0, 0xF bhi _08036EB4 lsls r0, 2 ldr r1, _08036E28 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08036E28: .4byte _08036E2C .align 2, 0 _08036E2C: .4byte _08036EC0 .4byte _08036E6C .4byte _08036E7C .4byte _08036E74 .4byte _08036E84 .4byte _08036E8C .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036EB4 .4byte _08036E94 .4byte _08036E9C _08036E6C: ldr r0, _08036E70 b _08036E9E .align 2, 0 _08036E70: .4byte gUnknown_80E6378 _08036E74: ldr r0, _08036E78 b _08036E9E .align 2, 0 _08036E78: .4byte gUnknown_80E639C _08036E7C: ldr r0, _08036E80 b _08036E9E .align 2, 0 _08036E80: .4byte gUnknown_80E63F8 _08036E84: ldr r0, _08036E88 b _08036E9E .align 2, 0 _08036E88: .4byte gUnknown_80E6448 _08036E8C: ldr r0, _08036E90 b _08036E9E .align 2, 0 _08036E90: .4byte gUnknown_80E6378 _08036E94: ldr r0, _08036E98 b _08036E9E .align 2, 0 _08036E98: .4byte gUnknown_80E6378 _08036E9C: ldr r0, _08036EAC _08036E9E: ldr r3, _08036EB0 movs r1, 0 movs r2, 0 bl sub_80141B4 b _08036EC0 .align 2, 0 _08036EAC: .4byte gUnknown_80E64AC _08036EB0: .4byte 0x00000101 _08036EB4: ldr r0, _08036EC4 ldr r3, _08036EC8 movs r1, 0 movs r2, 0 bl sub_80141B4 _08036EC0: pop {r0} bx r0 .align 2, 0 _08036EC4: .4byte gUnknown_80E6378 _08036EC8: .4byte 0x00000101 thumb_func_end sub_8036E18 thumb_func_start sub_8036ECC sub_8036ECC: push {r4-r6,lr} adds r3, r0, 0 ldr r6, _08036F28 ldr r0, [r6] movs r2, 0x3 str r2, [r0, 0x24] movs r2, 0x1 str r2, [r0, 0x18] str r2, [r0, 0x1C] str r1, [r0, 0x20] movs r1, 0x2C str r1, [r0, 0x30] movs r1, 0x12 str r1, [r0, 0x34] str r3, [r0, 0x28] lsls r4, r3, 1 adds r4, r3 lsls r4, 3 movs r5, 0xC2 lsls r5, 1 adds r1, r4, r5 adds r1, r0, r1 str r1, [r0, 0x2C] adds r0, 0x14 bl sub_8013AA0 ldr r1, [r6] adds r1, r4 adds r1, r5 ldr r0, _08036F2C ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_8004914 ldr r0, [r6] adds r0, r5 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08036F28: .4byte gUnknown_203B358 _08036F2C: .4byte gUnknown_80E6174 thumb_func_end sub_8036ECC thumb_func_start sub_8036F30 sub_8036F30: push {r4,r5,lr} sub sp, 0x4 ldr r5, _08036F6C ldr r0, [r5] ldr r4, [r0, 0x28] adds r0, r4, 0 bl sub_8008C54 adds r0, r4, 0 bl sub_80073B8 ldr r2, _08036F70 movs r0, 0 str r0, [sp] movs r0, 0x2 movs r1, 0 adds r3, r4, 0 bl xxx_call_draw_string ldr r0, [r5] adds r0, 0x14 bl sub_8013C68 adds r0, r4, 0 bl sub_80073E0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08036F6C: .4byte gUnknown_203B358 _08036F70: .4byte gUnknown_80E6528 thumb_func_end sub_8036F30 thumb_func_start sub_8036F74 sub_8036F74: push {r4,lr} ldr r4, _08036FB8 ldr r0, [r4] movs r1, 0xC2 lsls r1, 1 adds r0, r1 bl sub_8006518 ldr r0, _08036FBC ldr r1, [r0] ldr r0, [r4] ldr r2, _08036FC0 adds r0, r2 ldrb r0, [r0] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r1, [r1] movs r0, 0x2 bl sub_8036ECC bl sub_801CCD8 ldr r0, [r4] adds r0, 0x44 movs r1, 0x3 movs r2, 0 bl sub_8035CF4 bl sub_8036F30 pop {r4} pop {r0} bx r0 .align 2, 0 _08036FB8: .4byte gUnknown_203B358 _08036FBC: .4byte gUnknown_203B460 _08036FC0: .4byte 0x0000025e thumb_func_end sub_8036F74 thumb_func_start sub_8036FC4 sub_8036FC4: push {lr} ldr r1, _08036FD8 ldr r1, [r1] str r0, [r1] bl nullsub_52 bl sub_8036B28 pop {r0} bx r0 .align 2, 0 _08036FD8: .4byte gUnknown_203B358 thumb_func_end sub_8036FC4 thumb_func_start sub_8036FDC sub_8036FDC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r6, r0, 0 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0 bl ResetSprites ldr r5, _080370C0 ldr r0, [r5] cmp r0, 0 bne _08037016 ldr r4, _080370C4 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _08037016: ldr r0, [r5] str r6, [r0] movs r1, 0 str r1, [r0, 0x4] str r1, [r0, 0x8] movs r3, 0 adds r7, r5, 0 movs r6, 0xE0 lsls r6, 1 movs r4, 0 movs r5, 0xDE lsls r5, 1 _0803702E: ldr r0, [r7] lsls r2, r3, 3 adds r1, r0, r6 adds r1, r2 str r4, [r1] adds r0, r2 adds r0, r5 strb r4, [r0] adds r3, 0x1 cmp r3, 0x1 ble _0803702E ldr r0, _080370C0 mov r12, r0 movs r5, 0xAE lsls r5, 1 mov r8, r5 ldr r4, _080370C8 movs r3, 0 movs r2, 0x3 _08037054: mov r6, r12 ldr r1, [r6] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08037054 movs r6, 0 bl sub_8004914 ldr r5, _080370C0 ldr r0, [r5] movs r4, 0xAE lsls r4, 1 adds r0, r4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r5] adds r0, r1, 0 adds r0, 0x1C adds r1, r4 ldr r3, _080370CC ldr r2, _080370D0 str r2, [sp] str r6, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r6, [sp, 0xC] movs r2, 0 bl SetMenuItems ldr r0, [r5] adds r0, 0x1C movs r1, 0 movs r2, 0x1 bl sub_8035CF4 bl sub_80376CC add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080370C0: .4byte gUnknown_203B35C _080370C4: .4byte 0x00000504 _080370C8: .4byte gUnknown_80E653C _080370CC: .4byte gUnknown_80E6CD0 _080370D0: .4byte gUnknown_80E6CE8 thumb_func_end sub_8036FDC thumb_func_start sub_80370D4 sub_80370D4: push {r4,lr} ldr r4, _080370EC ldr r0, [r4] cmp r0, 0 beq _080370E6 bl MemoryFree movs r0, 0 str r0, [r4] _080370E6: pop {r4} pop {r0} bx r0 .align 2, 0 _080370EC: .4byte gUnknown_203B35C thumb_func_end sub_80370D4 thumb_func_start sub_80370F0 sub_80370F0: push {r4,r5,lr} sub sp, 0x4 movs r0, 0x4 str r0, [sp] ldr r5, _08037110 ldr r4, _08037114 ldr r1, [r4] ldr r0, [r1, 0x8] cmp r0, 0x1 beq _08037148 cmp r0, 0x1 bcc _08037118 cmp r0, 0x2 beq _08037158 b _080371A8 .align 2, 0 _08037110: .4byte 0x0000ffdc _08037114: .4byte gUnknown_203B35C _08037118: adds r0, r1, 0 adds r0, 0x1C bl sub_80130A8 lsls r0, 24 cmp r0, 0 bne _08037130 ldr r0, [r4] adds r0, 0x1C mov r1, sp bl sub_8013114 _08037130: ldr r0, [sp] cmp r0, 0x4 bne _0803713C bl sub_8037748 b _080371A8 _0803713C: ldr r1, [r4] movs r0, 0x1 str r0, [r1, 0x8] bl sub_8037900 b _080371A8 _08037148: bl sub_80376CC ldr r1, [r4] movs r0, 0x2 str r0, [r1, 0x8] bl sub_80371B8 b _080371A8 _08037158: ldr r0, [r1] cmp r0, 0x1 bhi _08037172 ldr r0, [r1, 0x4] cmp r0, 0 bne _08037172 movs r0, 0 bl sub_8037C10 cmp r0, 0 bne _08037172 movs r0, 0x29 b _080371AA _08037172: ldr r4, _080371B4 ldr r0, [r4] adds r0, 0x1C bl sub_80130A8 lsls r0, 24 cmp r0, 0 bne _0803718C ldr r0, [r4] adds r0, 0x1C mov r1, sp bl sub_8013114 _0803718C: ldr r0, [sp] cmp r0, 0x4 beq _080371A4 movs r0, 0x3 bl sub_80119D4 bl sub_8037798 adds r5, r0, 0 ldr r1, [r4] movs r0, 0x4 str r0, [r1, 0x8] _080371A4: bl sub_8037748 _080371A8: adds r0, r5, 0 _080371AA: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080371B4: .4byte gUnknown_203B35C thumb_func_end sub_80370F0 thumb_func_start sub_80371B8 sub_80371B8: push {r4-r7,lr} sub sp, 0x10 movs r6, 0 movs r5, 0 bl sub_8037400 ldr r7, _0803721C ldr r1, [r7] ldr r0, [r1] cmp r0, 0x1 bhi _08037228 ldr r0, [r1, 0x4] cmp r0, 0 bne _08037228 movs r0, 0 bl sub_8037C10 cmp r0, 0 bne _080371E0 b _080373AC _080371E0: bl sub_80376CC ldr r0, [r7] movs r4, 0xAE lsls r4, 1 adds r0, r4 movs r1, 0 bl sub_8035CC0 ldr r1, [r7] adds r0, r1, 0 adds r0, 0x1C adds r1, r4 ldr r3, _08037220 ldr r2, _08037224 str r2, [sp] str r6, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r6, [sp, 0xC] movs r2, 0 bl SetMenuItems ldr r0, [r7] adds r0, 0x1C movs r1, 0 movs r2, 0x1 bl sub_8035CF4 b _080373AC .align 2, 0 _0803721C: .4byte gUnknown_203B35C _08037220: .4byte gUnknown_80E6C50 _08037224: .4byte gUnknown_80E6C68 _08037228: bl sub_80376CC ldr r4, _08037250 ldr r0, [r4] movs r1, 0xAE lsls r1, 1 adds r0, r1 movs r1, 0 bl sub_8035CC0 ldr r0, [r4] ldr r0, [r0, 0x4] cmp r0, 0xF bls _08037246 b _0803734C _08037246: lsls r0, 2 ldr r1, _08037254 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037250: .4byte gUnknown_203B35C _08037254: .4byte _08037258 .align 2, 0 _08037258: .4byte _08037298 .4byte _080372D8 .4byte _080372B8 .4byte _080372A8 .4byte _080372C8 .4byte _080372D8 .4byte _080372E8 .4byte _080372F8 .4byte _0803734C .4byte _08037308 .4byte _0803734C .4byte _08037318 .4byte _0803734C .4byte _08037328 .4byte _08037338 .4byte _08037348 _08037298: ldr r6, _080372A0 ldr r5, _080372A4 b _0803734C .align 2, 0 _080372A0: .4byte gUnknown_80E66BC _080372A4: .4byte gUnknown_80E66D4 _080372A8: ldr r6, _080372B0 ldr r5, _080372B4 b _0803734C .align 2, 0 _080372B0: .4byte gUnknown_80E6D54 _080372B4: .4byte gUnknown_80E6D6C _080372B8: ldr r6, _080372C0 ldr r5, _080372C4 b _0803734C .align 2, 0 _080372C0: .4byte gUnknown_80E6DDC _080372C4: .4byte gUnknown_80E6DF4 _080372C8: ldr r6, _080372D0 ldr r5, _080372D4 b _0803734C .align 2, 0 _080372D0: .4byte gUnknown_80E67D4 _080372D4: .4byte gUnknown_80E67EC _080372D8: ldr r6, _080372E0 ldr r5, _080372E4 b _0803734C .align 2, 0 _080372E0: .4byte gUnknown_80E6748 _080372E4: .4byte gUnknown_80E6760 _080372E8: ldr r6, _080372F0 ldr r5, _080372F4 b _0803734C .align 2, 0 _080372F0: .4byte gUnknown_80E689C _080372F4: .4byte gUnknown_80E68B4 _080372F8: ldr r6, _08037300 ldr r5, _08037304 b _0803734C .align 2, 0 _08037300: .4byte gUnknown_80E6938 _08037304: .4byte gUnknown_80E6950 _08037308: ldr r6, _08037310 ldr r5, _08037314 b _0803734C .align 2, 0 _08037310: .4byte gUnknown_80E69B0 _08037314: .4byte gUnknown_80E69C8 _08037318: ldr r6, _08037320 ldr r5, _08037324 b _0803734C .align 2, 0 _08037320: .4byte gUnknown_80E6A10 _08037324: .4byte gUnknown_80E6A28 _08037328: ldr r6, _08037330 ldr r5, _08037334 b _0803734C .align 2, 0 _08037330: .4byte gUnknown_80E6A74 _08037334: .4byte gUnknown_80E6A8C _08037338: ldr r6, _08037340 ldr r5, _08037344 b _0803734C .align 2, 0 _08037340: .4byte gUnknown_80E6B78 _08037344: .4byte gUnknown_80E6B90 _08037348: ldr r6, _080373B4 ldr r5, _080373B8 _0803734C: ldr r4, _080373BC ldr r1, [r4] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 str r5, [sp] movs r3, 0 str r3, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r3, [sp, 0xC] movs r2, 0 adds r3, r6, 0 bl SetMenuItems ldr r0, [r4] adds r0, 0x1C movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r4, [r4] ldr r0, [r4, 0x4] cmp r0, 0 beq _080373AC ldr r0, [r4] cmp r0, 0 bne _080373AC bl sub_8035D94 adds r2, r0, 0 ldrb r0, [r2] cmp r0, 0 beq _080373AC ldr r3, [r2, 0x4] cmp r3, 0 beq _080373AC ldr r0, _080373C0 ldr r1, [r0] ldrb r0, [r2] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] adds r0, r3 strh r0, [r1] _080373AC: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080373B4: .4byte gUnknown_80E6BF4 _080373B8: .4byte gUnknown_80E6C0C _080373BC: .4byte gUnknown_203B35C _080373C0: .4byte gUnknown_203B460 thumb_func_end sub_80371B8 thumb_func_start sub_80373C4 sub_80373C4: push {lr} movs r0, 0 movs r1, 0 bl sub_8005838 bl sub_80060EC bl sub_800CB20 bl sub_800485C bl TransferBGPaletteBuffer bl xxx_call_update_bg_vram bl sub_8009908 bl xxx_call_update_bg_sound_input movs r0, 0 bl ResetSprites pop {r0} bx r0 thumb_func_end sub_80373C4 thumb_func_start sub_80373F4 sub_80373F4: ldr r0, _080373FC ldr r0, [r0] bx lr .align 2, 0 _080373FC: .4byte gUnknown_203B35C thumb_func_end sub_80373F4 thumb_func_start sub_8037400 sub_8037400: push {r4-r6,lr} movs r6, 0 movs r5, 0 bl sub_8037810 bl sub_8011830 ldr r4, _08037434 ldr r0, [r4] ldr r0, [r0] bl sub_8037B28 ldr r4, [r4] str r0, [r4, 0x4] cmp r0, 0 beq _08037422 b _080376BE _08037422: ldr r0, [r4] cmp r0, 0xA bls _0803742A b _080375E8 _0803742A: lsls r0, 2 ldr r1, _08037438 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037434: .4byte gUnknown_203B35C _08037438: .4byte _0803743C .align 2, 0 _0803743C: .4byte _08037494 .4byte _080374B8 .4byte _08037534 .4byte _0803751C .4byte _0803756C .4byte _080375D8 .4byte _080374E4 .4byte _080374D0 .4byte _080375E8 .4byte _08037480 .4byte _08037468 _08037468: ldr r0, _0803747C ldr r0, [r0] movs r1, 0xE7 lsls r1, 2 adds r6, r0, r1 movs r2, 0x8A lsls r2, 3 adds r5, r0, r2 b _080375E8 .align 2, 0 _0803747C: .4byte gUnknown_203B35C _08037480: ldr r0, _08037490 ldr r0, [r0] movs r3, 0xE7 lsls r3, 2 adds r6, r0, r3 movs r4, 0x8A lsls r4, 3 b _080375E6 .align 2, 0 _08037490: .4byte gUnknown_203B35C _08037494: bl sub_8035D94 ldr r1, _080374B4 ldr r3, [r1] movs r5, 0xDE lsls r5, 1 adds r2, r3, r5 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2] str r1, [r2, 0x4] adds r6, r2, 0 movs r0, 0xE2 lsls r0, 1 adds r5, r3, r0 b _080375E8 .align 2, 0 _080374B4: .4byte gUnknown_203B35C _080374B8: ldr r0, _080374CC ldr r0, [r0] movs r1, 0xDE lsls r1, 1 adds r6, r0, r1 movs r2, 0xE2 lsls r2, 1 adds r5, r0, r2 b _080375E8 .align 2, 0 _080374CC: .4byte gUnknown_203B35C _080374D0: ldr r0, _080374E0 ldr r0, [r0] movs r3, 0xE6 lsls r3, 1 adds r6, r0, r3 movs r4, 0xFE lsls r4, 1 b _080375E6 .align 2, 0 _080374E0: .4byte gUnknown_203B35C _080374E4: bl sub_8035D74 lsls r0, 24 lsrs r0, 24 bl sub_8095228 ldr r3, _08037518 ldr r1, [r3] movs r2, 0xE6 lsls r2, 1 adds r1, r2 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r0, [r3] adds r6, r0, r2 movs r1, 0xFE lsls r1, 1 adds r5, r0, r1 b _080375E8 .align 2, 0 _08037518: .4byte gUnknown_203B35C _0803751C: ldr r0, _08037530 ldr r0, [r0] movs r2, 0x8B lsls r2, 2 adds r6, r0, r2 movs r3, 0x97 lsls r3, 2 adds r5, r0, r3 b _080375E8 .align 2, 0 _08037530: .4byte gUnknown_203B35C _08037534: bl sub_8035D74 lsls r0, 24 lsrs r0, 24 bl sub_8095228 ldr r3, _08037568 ldr r1, [r3] movs r2, 0x8B lsls r2, 2 adds r1, r2 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} ldr r0, [r3] adds r6, r0, r2 movs r1, 0x97 lsls r1, 2 adds r5, r0, r1 b _080375E8 .align 2, 0 _08037568: .4byte gUnknown_203B35C _0803756C: bl sub_8035D74 lsls r0, 24 lsrs r0, 24 bl sub_8095228 ldr r4, _080375CC ldr r1, [r4] movs r5, 0xA3 lsls r5, 2 adds r1, r5 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} bl sub_8035D3C lsls r0, 16 ldr r1, _080375D0 cmp r0, r1 beq _080375BE bl sub_8035D3C ldr r3, [r4] movs r1, 0xAF lsls r1, 2 adds r3, r1 ldr r1, _080375D4 ldr r1, [r1] lsls r0, 16 asrs r0, 16 movs r2, 0x58 muls r0, r2 adds r1, r0 adds r0, r3, 0 bl memcpy _080375BE: ldr r0, [r4] adds r6, r0, r5 movs r2, 0xC5 lsls r2, 2 adds r5, r0, r2 b _080375E8 .align 2, 0 _080375CC: .4byte gUnknown_203B35C _080375D0: .4byte 0xffff0000 _080375D4: .4byte gUnknown_203B45C _080375D8: ldr r0, _08037610 ldr r0, [r0] movs r3, 0xA3 lsls r3, 2 adds r6, r0, r3 movs r4, 0xC5 lsls r4, 2 _080375E6: adds r5, r0, r4 _080375E8: ldr r4, _08037610 ldr r0, [r4] ldr r0, [r0] adds r1, r6, 0 adds r2, r5, 0 bl sub_8037D64 ldr r1, [r4] str r0, [r1, 0x4] cmp r0, 0 bne _080376BE ldr r0, [r1] cmp r0, 0xA bhi _080376AE lsls r0, 2 ldr r1, _08037614 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037610: .4byte gUnknown_203B35C _08037614: .4byte _08037618 .align 2, 0 _08037618: .4byte _08037644 .4byte _08037644 .4byte _08037658 .4byte _08037658 .4byte _0803766C .4byte _0803766C .4byte _08037684 .4byte _08037684 .4byte _080376AE .4byte _0803769C .4byte _0803769C _08037644: ldr r0, _08037654 ldr r2, [r0] movs r5, 0xDE lsls r5, 1 adds r6, r2, r5 movs r1, 0xE2 lsls r1, 1 b _0803767A .align 2, 0 _08037654: .4byte gUnknown_203B35C _08037658: ldr r0, _08037668 ldr r2, [r0] movs r3, 0x8B lsls r3, 2 adds r6, r2, r3 movs r4, 0x97 lsls r4, 2 b _08037692 .align 2, 0 _08037668: .4byte gUnknown_203B35C _0803766C: ldr r0, _08037680 ldr r2, [r0] movs r5, 0xA3 lsls r5, 2 adds r6, r2, r5 movs r1, 0xC5 lsls r1, 2 _0803767A: adds r5, r2, r1 adds r4, r0, 0 b _080376AE .align 2, 0 _08037680: .4byte gUnknown_203B35C _08037684: ldr r0, _08037698 ldr r2, [r0] movs r3, 0xE6 lsls r3, 1 adds r6, r2, r3 movs r4, 0xFE lsls r4, 1 _08037692: adds r5, r2, r4 adds r4, r0, 0 b _080376AE .align 2, 0 _08037698: .4byte gUnknown_203B35C _0803769C: ldr r1, _080376C8 ldr r0, [r1] movs r5, 0xE7 lsls r5, 2 adds r6, r0, r5 movs r2, 0x8A lsls r2, 3 adds r5, r0, r2 adds r4, r1, 0 _080376AE: ldr r0, [r4] ldr r0, [r0] adds r1, r6, 0 adds r2, r5, 0 bl sub_80381F4 ldr r1, [r4] str r0, [r1, 0x4] _080376BE: bl sub_8011854 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080376C8: .4byte gUnknown_203B35C thumb_func_end sub_8037400 thumb_func_start sub_80376CC sub_80376CC: push {r4,lr} ldr r0, _08037728 ldr r3, [r0] ldrh r1, [r3, 0xC] ldr r0, _0803772C ands r0, r1 ldr r1, _08037730 ands r0, r1 ldr r4, _08037734 ands r0, r4 ldr r1, _08037738 ands r0, r1 ldr r1, _0803773C ands r0, r1 movs r2, 0x80 lsls r2, 7 ldr r1, _08037740 ands r0, r1 orrs r0, r2 strh r0, [r3, 0xC] movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x10] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r2, 0xF movs r4, 0xF0 lsls r4, 8 ldr r1, _08037744 ands r0, r1 orrs r0, r4 strh r0, [r3, 0x10] movs r0, 0 strh r0, [r3, 0xE] movs r1, 0xC0 lsls r1, 4 ldrh r0, [r3, 0x12] ands r2, r0 orrs r2, r1 strh r2, [r3, 0x12] pop {r4} pop {r0} bx r0 .align 2, 0 _08037728: .4byte gUnknown_203B35C _0803772C: .4byte 0x0000feff _08037730: .4byte 0x0000fdff _08037734: .4byte 0x0000f3ff _08037738: .4byte 0x0000efff _0803773C: .4byte 0x0000dfff _08037740: .4byte 0x00003fff _08037744: .4byte 0x00000fff thumb_func_end sub_80376CC thumb_func_start sub_8037748 sub_8037748: push {r4,lr} ldr r4, _08037794 ldr r3, [r4] ldrh r1, [r3, 0xE] movs r0, 0xFE lsls r0, 8 ands r0, r1 movs r1, 0x70 orrs r0, r1 strh r0, [r3, 0xE] movs r2, 0xD0 lsls r2, 3 ldrh r1, [r3, 0x12] movs r0, 0xF ands r0, r1 orrs r0, r2 strh r0, [r3, 0x12] ldr r0, [r3, 0x14] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _08037782 adds r0, r3, 0 adds r0, 0xC adds r1, 0xF8 movs r2, 0 movs r3, 0 bl AddSprite _08037782: bl xxx_draw_string_80144C4 ldr r1, [r4] ldr r0, [r1, 0x14] adds r0, 0x1 str r0, [r1, 0x14] pop {r4} pop {r0} bx r0 .align 2, 0 _08037794: .4byte gUnknown_203B35C thumb_func_end sub_8037748 thumb_func_start sub_8037798 sub_8037798: push {lr} ldr r2, _080377B4 ldr r1, _080377B8 ldr r0, [r1] ldr r0, [r0] adds r3, r1, 0 cmp r0, 0xA bhi _0803780A lsls r0, 2 ldr r1, _080377BC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080377B4: .4byte 0x0000ffdc _080377B8: .4byte gUnknown_203B35C _080377BC: .4byte _080377C0 .align 2, 0 _080377C0: .4byte _080377EC .4byte _080377EC .4byte _080377F0 .4byte _080377F0 .4byte _080377F0 .4byte _080377F0 .4byte _080377F0 .4byte _080377F0 .4byte _0803780A .4byte _080377FE .4byte _080377FE _080377EC: movs r2, 0x1 b _0803780A _080377F0: ldr r0, [r3] ldr r0, [r0, 0x4] movs r2, 0x1 cmp r0, 0 bne _0803780A movs r2, 0x2A b _0803780A _080377FE: ldr r0, [r3] ldr r0, [r0, 0x4] movs r2, 0xD cmp r0, 0 bne _0803780A movs r2, 0x2B _0803780A: adds r0, r2, 0 pop {r1} bx r1 thumb_func_end sub_8037798 thumb_func_start sub_8037810 sub_8037810: push {r4-r6,lr} ldr r6, _080378FC ldr r0, [r6] movs r5, 0xDE lsls r5, 1 adds r0, r5 movs r1, 0 movs r2, 0x8 bl MemoryFill8 ldr r0, [r6] movs r4, 0xE2 lsls r4, 1 adds r0, r4 movs r1, 0 movs r2, 0x8 bl MemoryFill8 ldr r0, [r6] adds r5, r0, r5 movs r1, 0 movs r2, 0 str r1, [r5] str r2, [r5, 0x4] adds r4, r0, r4 str r1, [r4] str r2, [r4, 0x4] movs r2, 0xE6 lsls r2, 1 adds r0, r2 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r3, 0xFE lsls r3, 1 adds r0, r3 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r1, 0x8B lsls r1, 2 adds r0, r1 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r2, 0x97 lsls r2, 2 adds r0, r2 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r3, 0xA3 lsls r3, 2 adds r0, r3 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r1, 0xC5 lsls r1, 2 adds r0, r1 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r6] movs r2, 0xAF lsls r2, 2 adds r0, r2 movs r1, 0 movs r2, 0x58 bl MemoryFill8 ldr r0, [r6] movs r3, 0xD1 lsls r3, 2 adds r0, r3 movs r1, 0 movs r2, 0x58 bl MemoryFill8 ldr r0, [r6] movs r1, 0xE7 lsls r1, 2 adds r0, r1 movs r1, 0 movs r2, 0xB4 bl MemoryFill8 ldr r0, [r6] movs r2, 0x8A lsls r2, 3 adds r0, r2 movs r1, 0 movs r2, 0xB4 bl MemoryFill8 ldr r2, [r6] movs r3, 0xB1 lsls r3, 2 adds r0, r2, r3 movs r1, 0 strh r1, [r0] adds r3, 0x88 adds r0, r2, r3 strh r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080378FC: .4byte gUnknown_203B35C thumb_func_end sub_8037810 thumb_func_start sub_8037900 sub_8037900: push {r4,lr} sub sp, 0x10 ldr r4, _08037928 ldr r0, [r4] movs r1, 0xAE lsls r1, 1 adds r0, r1 movs r1, 0 bl sub_8035CC0 ldr r0, [r4] ldr r0, [r0] cmp r0, 0xA bls _0803791E b _08037A14 _0803791E: lsls r0, 2 ldr r1, _0803792C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037928: .4byte gUnknown_203B35C _0803792C: .4byte _08037930 .align 2, 0 _08037930: .4byte _0803795C .4byte _0803795C .4byte _0803797C .4byte _0803797C .4byte _0803799C .4byte _0803799C .4byte _080379BC .4byte _080379BC .4byte _08037A14 .4byte _080379F0 .4byte _080379F0 _0803795C: ldr r0, _08037970 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 ldr r3, _08037974 ldr r2, _08037978 b _080379CE .align 2, 0 _08037970: .4byte gUnknown_203B35C _08037974: .4byte gUnknown_80E6554 _08037978: .4byte gUnknown_80E656C _0803797C: ldr r0, _08037990 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 ldr r3, _08037994 ldr r2, _08037998 b _080379CE .align 2, 0 _08037990: .4byte gUnknown_203B35C _08037994: .4byte gUnknown_80E6554 _08037998: .4byte gUnknown_80E65D8 _0803799C: ldr r0, _080379B0 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 ldr r3, _080379B4 ldr r2, _080379B8 b _080379CE .align 2, 0 _080379B0: .4byte gUnknown_203B35C _080379B4: .4byte gUnknown_80E6554 _080379B8: .4byte gUnknown_80E661C _080379BC: ldr r0, _080379E4 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 ldr r3, _080379E8 ldr r2, _080379EC _080379CE: str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems b _08037A14 .align 2, 0 _080379E4: .4byte gUnknown_203B35C _080379E8: .4byte gUnknown_80E6554 _080379EC: .4byte gUnknown_80E665C _080379F0: ldr r0, _08037A38 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x1C movs r2, 0xAE lsls r2, 1 adds r1, r2 ldr r3, _08037A3C ldr r2, _08037A40 str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems _08037A14: ldr r4, _08037A38 ldr r0, [r4] adds r0, 0x1C movs r1, 0 movs r2, 0x1 bl sub_8035CF4 bl sub_80373C4 ldr r0, [r4] adds r0, 0x1C bl sub_80130A8 add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _08037A38: .4byte gUnknown_203B35C _08037A3C: .4byte gUnknown_80E6554 _08037A40: .4byte gUnknown_80E667C thumb_func_end sub_8037900 thumb_func_start nullsub_202 nullsub_202: bx lr thumb_func_end nullsub_202 thumb_func_start sub_8037A48 sub_8037A48: push {r4-r6,lr} sub sp, 0x28 movs r6, 0x1 movs r0, 0 mov r1, sp movs r2, 0x14 bl sub_800D670 add r4, sp, 0x14 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x14 bl sub_800D670 ldr r1, _08037AAC movs r3, 0x8 adds r2, r1, 0 adds r0, r2, 0x4 _08037A6C: str r3, [r0] subs r0, 0x4 cmp r0, r1 bge _08037A6C ldr r0, [sp, 0x10] str r0, [r2] ldr r0, [r4, 0x10] str r0, [r2, 0x4] ldr r5, _08037AB0 mov r0, sp adds r1, r5, 0 bl strcmp cmp r0, 0 beq _08037A8C movs r0, 0x1 _08037A8C: lsls r0, 24 cmp r0, 0 bne _08037AA6 adds r0, r4, 0 adds r1, r5, 0 bl strcmp cmp r0, 0 beq _08037AA0 movs r0, 0x1 _08037AA0: lsls r0, 24 cmp r0, 0 beq _08037AB4 _08037AA6: movs r0, 0 b _08037B1E .align 2, 0 _08037AAC: .4byte gUnknown_202EC40 _08037AB0: .4byte gUnknown_80E6E50 _08037AB4: ldr r1, [sp, 0x10] cmp r1, 0 bne _08037AC0 ldr r0, [r4, 0x10] cmp r0, 0x1 beq _08037B1C _08037AC0: cmp r1, 0x1 bne _08037ACA ldr r0, [r4, 0x10] cmp r0, 0 beq _08037B1C _08037ACA: cmp r1, 0x2 bne _08037AD4 ldr r0, [r4, 0x10] cmp r0, 0x3 beq _08037B1C _08037AD4: cmp r1, 0x3 bne _08037ADE ldr r0, [r4, 0x10] cmp r0, 0x2 beq _08037B1C _08037ADE: cmp r1, 0x9 bne _08037AE8 ldr r0, [r4, 0x10] cmp r0, 0xA beq _08037B1C _08037AE8: cmp r1, 0xA bne _08037AF2 ldr r0, [r4, 0x10] cmp r0, 0x9 beq _08037B1C _08037AF2: cmp r1, 0x4 bne _08037AFC ldr r0, [r4, 0x10] cmp r0, 0x5 beq _08037B1C _08037AFC: cmp r1, 0x5 bne _08037B06 ldr r0, [r4, 0x10] cmp r0, 0x4 beq _08037B1C _08037B06: cmp r1, 0x6 bne _08037B10 ldr r0, [r4, 0x10] cmp r0, 0x7 beq _08037B1C _08037B10: cmp r1, 0x7 bne _08037B1A ldr r0, [r4, 0x10] cmp r0, 0x6 beq _08037B1C _08037B1A: movs r6, 0 _08037B1C: adds r0, r6, 0 _08037B1E: add sp, 0x28 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8037A48 thumb_func_start sub_8037B28 sub_8037B28: push {r4,r5,lr} sub sp, 0x14 adds r4, r0, 0 movs r5, 0 bl sub_800D414 ldr r0, _08037B58 str r5, [r0] ldr r5, _08037B5C mov r0, sp movs r1, 0 movs r2, 0x14 bl MemoryFill8 mov r0, sp adds r1, r5, 0 bl strcpy str r4, [sp, 0x10] mov r0, sp movs r1, 0x14 bl sub_800D59C b _08037B7A .align 2, 0 _08037B58: .4byte gUnknown_202EC38 _08037B5C: .4byte gUnknown_80E6E50 _08037B60: cmp r5, 0x3 beq _08037BCC cmp r5, 0x4 beq _08037BD8 cmp r5, 0x5 beq _08037BF0 ldr r2, _08037BC0 ldr r1, [r2] ldr r0, _08037BC4 cmp r1, r0 bgt _08037BE4 adds r0, r1, 0x1 str r0, [r2] _08037B7A: movs r4, 0 _08037B7C: bl sub_80373C4 bl sub_8012AE8 cmp r0, 0x3 bgt _08037B8C cmp r0, 0x2 bge _08037BF0 _08037B8C: adds r4, 0x1 cmp r4, 0 ble _08037B7C bl sub_800D33C adds r5, r0, 0 bl sub_800D570 cmp r5, 0x2 bne _08037B60 bl sub_800D600 lsls r0, 24 cmp r0, 0 beq _08037BFC bl sub_8037A48 lsls r0, 24 cmp r0, 0 bne _08037BC8 movs r4, 0x4 bl sub_800D520 bl sub_800D510 b _08037C06 .align 2, 0 _08037BC0: .4byte gUnknown_202EC38 _08037BC4: .4byte 0x00000707 _08037BC8: movs r4, 0 b _08037C06 _08037BCC: bl sub_800D520 bl sub_800D510 movs r0, 0x2 b _08037C08 _08037BD8: bl sub_800D520 bl sub_800D510 movs r0, 0x3 b _08037C08 _08037BE4: bl sub_800D520 bl sub_800D510 movs r0, 0xF b _08037C08 _08037BF0: bl sub_800D520 bl sub_800D510 movs r0, 0x1 b _08037C08 _08037BFC: movs r4, 0x5 bl sub_800D520 bl sub_800D510 _08037C06: adds r0, r4, 0 _08037C08: add sp, 0x14 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8037B28 thumb_func_start sub_8037C10 sub_8037C10: push {lr} lsls r0, 24 cmp r0, 0 beq _08037C24 bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _08037C38 b _08037C2E _08037C24: bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _08037C38 _08037C2E: ldr r0, _08037C34 ldr r0, [r0, 0x4] b _08037C3C .align 2, 0 _08037C34: .4byte gUnknown_202EC40 _08037C38: ldr r0, _08037C40 ldr r0, [r0] _08037C3C: pop {r1} bx r1 .align 2, 0 _08037C40: .4byte gUnknown_202EC40 thumb_func_end sub_8037C10 thumb_func_start sub_8037C44 sub_8037C44: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 movs r4, 0 _08037C4C: adds r0, r4, 0 bl sub_800D68C adds r4, 0x1 cmp r4, 0x1 ble _08037C4C cmp r6, 0xA bhi _08037CBE lsls r0, r6, 2 ldr r1, _08037C68 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037C68: .4byte _08037C6C .align 2, 0 _08037C6C: .4byte _08037C98 .4byte _08037C98 .4byte _08037CA2 .4byte _08037CA2 .4byte _08037CAC .4byte _08037CAC .4byte _08037CA2 .4byte _08037CA2 .4byte _08037CBE .4byte _08037CB6 .4byte _08037CB6 _08037C98: adds r0, r5, 0 movs r1, 0x8 bl sub_800D59C b _08037CBE _08037CA2: adds r0, r5, 0 movs r1, 0x30 bl sub_800D59C b _08037CBE _08037CAC: adds r0, r5, 0 movs r1, 0x88 bl sub_800D59C b _08037CBE _08037CB6: adds r0, r5, 0 movs r1, 0xB4 bl sub_800D59C _08037CBE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8037C44 thumb_func_start sub_8037CC4 sub_8037CC4: push {r4,lr} adds r3, r1, 0 adds r4, r2, 0 cmp r0, 0xA bhi _08037D5E lsls r0, 2 ldr r1, _08037CD8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037CD8: .4byte _08037CDC .align 2, 0 _08037CDC: .4byte _08037D08 .4byte _08037D08 .4byte _08037D1E .4byte _08037D1E .4byte _08037D34 .4byte _08037D34 .4byte _08037D1E .4byte _08037D1E .4byte _08037D5E .4byte _08037D4A .4byte _08037D4A _08037D08: movs r0, 0 adds r1, r3, 0 movs r2, 0x8 bl sub_800D670 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x8 bl sub_800D670 b _08037D5E _08037D1E: movs r0, 0 adds r1, r3, 0 movs r2, 0x30 bl sub_800D670 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x30 bl sub_800D670 b _08037D5E _08037D34: movs r0, 0 adds r1, r3, 0 movs r2, 0x88 bl sub_800D670 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x88 bl sub_800D670 b _08037D5E _08037D4A: movs r0, 0 adds r1, r3, 0 movs r2, 0xB4 bl sub_800D670 movs r0, 0x1 adds r1, r4, 0 movs r2, 0xB4 bl sub_800D670 _08037D5E: pop {r4} pop {r0} bx r0 thumb_func_end sub_8037CC4 thumb_func_start sub_8037D64 sub_8037D64: push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 adds r7, r2, 0 movs r4, 0 ldr r0, _08037D80 str r4, [r0] bl sub_800D494 adds r0, r5, 0 adds r1, r6, 0 bl sub_8037C44 b _08037D96 .align 2, 0 _08037D80: .4byte gUnknown_202EC48 _08037D84: subs r0, r4, 0x3 cmp r0, 0x2 bls _08037DBC ldr r1, _08037DB8 ldr r0, [r1] cmp r0, 0x63 bgt _08037DC8 adds r0, 0x1 str r0, [r1] _08037D96: bl sub_80373C4 bl sub_800D33C adds r4, r0, 0 bl sub_800D570 cmp r4, 0x2 bne _08037D84 bl sub_800D600 lsls r0, 24 cmp r0, 0 beq _08037DD4 movs r4, 0 b _08037DDE .align 2, 0 _08037DB8: .4byte gUnknown_202EC48 _08037DBC: bl sub_800D520 bl sub_800D510 movs r0, 0x1 b _08037DEA _08037DC8: bl sub_800D520 bl sub_800D510 movs r0, 0xF b _08037DEA _08037DD4: bl sub_800D520 bl sub_800D510 movs r4, 0x5 _08037DDE: adds r0, r5, 0 adds r1, r6, 0 adds r2, r7, 0 bl sub_8037CC4 adds r0, r4, 0 _08037DEA: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8037D64 thumb_func_start sub_8037DF0 sub_8037DF0: push {r4,lr} sub sp, 0x8 movs r4, 0 movs r0, 0 mov r1, sp movs r2, 0x4 bl sub_800D670 add r1, sp, 0x4 movs r0, 0x1 movs r2, 0x4 bl sub_800D670 ldr r0, [sp] cmp r0, 0 bne _08037E16 ldr r0, [sp, 0x4] cmp r0, 0 beq _08037E2C _08037E16: bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _08037E24 ldr r4, [sp, 0x4] b _08037E26 _08037E24: ldr r4, [sp] _08037E26: cmp r4, 0 bne _08037E2C movs r4, 0xE _08037E2C: adds r0, r4, 0 add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_8037DF0 thumb_func_start sub_8037E38 sub_8037E38: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 bl sub_800D588 lsls r0, 24 adds r4, r6, 0 cmp r0, 0 bne _08037E4C adds r4, r5, 0 _08037E4C: bl sub_800D588 lsls r0, 24 adds r3, r5, 0 cmp r0, 0 bne _08037E5A adds r3, r6, 0 _08037E5A: ldrb r0, [r4] ldrb r1, [r3] cmp r0, r1 bne _08037E70 ldr r0, _08037E6C ldr r1, [r0] ldrb r0, [r4] b _08037E76 .align 2, 0 _08037E6C: .4byte gUnknown_203B460 _08037E70: ldr r0, _08037E8C ldr r1, [r0] ldrb r0, [r3] _08037E76: lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r2, [r1] ldr r0, [r3, 0x4] adds r2, r0 strh r2, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08037E8C: .4byte gUnknown_203B460 thumb_func_end sub_8037E38 thumb_func_start sub_8037E90 sub_8037E90: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _08037EA2 adds r4, r5, 0 _08037EA2: movs r0, 0x2 strb r0, [r4] adds r0, r4, 0 bl sub_80951BC ldr r0, [r4, 0x10] bl sub_8095274 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8037E90 thumb_func_start nullsub_53 nullsub_53: bx lr thumb_func_end nullsub_53 thumb_func_start sub_8037EBC sub_8037EBC: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 adds r5, r4, 0 cmp r0, 0 bne _08037ED0 adds r5, r6, 0 _08037ED0: ldr r1, [r5, 0x10] movs r0, 0x1 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r4, r0, 0 adds r1, r4, 0 adds r0, r5, 0 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} movs r0, 0x5 strb r0, [r4] adds r0, r4, 0 bl sub_80951FC movs r0, 0x7 strb r0, [r4] movs r0, 0x38 ldrsh r6, [r5, r0] cmp r6, 0 beq _08037F30 ldr r4, _08037F2C ldr r0, [r4] ldr r1, [r5, 0x10] stm r0!, {r1} adds r1, r5, 0 adds r1, 0x30 movs r2, 0x58 bl memcpy ldr r1, [r4] movs r0, 0x42 strb r0, [r1, 0x8] ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0x9] b _08037F40 .align 2, 0 _08037F2C: .4byte gUnknown_203B484 _08037F30: ldr r4, _08037F48 ldr r0, [r4] movs r1, 0 movs r2, 0x5C bl MemoryFill8 ldr r0, [r4] strh r6, [r0, 0xC] _08037F40: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08037F48: .4byte gUnknown_203B484 thumb_func_end sub_8037EBC thumb_func_start sub_8037F4C sub_8037F4C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _08037F5E adds r4, r5, 0 _08037F5E: ldr r1, [r4, 0x10] movs r0, 0x4 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 adds r1, r4, 0 ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} movs r1, 0x6 strb r1, [r0] bl sub_8035D4C cmp r0, 0 beq _08037F96 adds r1, r0, 0 adds r1, 0x3A movs r0, 0x1 strb r0, [r1] _08037F96: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8037F4C thumb_func_start sub_8037F9C sub_8037F9C: push {lr} adds r3, r1, 0 cmp r0, 0xA bhi _08038010 lsls r0, 2 ldr r1, _08037FB0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037FB0: .4byte _08037FB4 .align 2, 0 _08037FB4: .4byte _08037FE0 .4byte _08037FE0 .4byte _08038010 .4byte _08037FF4 .4byte _08038010 .4byte _08037FFE .4byte _08038010 .4byte _08037FEA .4byte _08038010 .4byte _08038010 .4byte _08038008 _08037FE0: adds r0, r3, 0 adds r1, r2, 0 bl sub_8037E38 b _08038010 _08037FEA: adds r0, r3, 0 adds r1, r2, 0 bl sub_8037F4C b _08038010 _08037FF4: adds r0, r3, 0 adds r1, r2, 0 bl sub_8037E90 b _08038010 _08037FFE: adds r0, r3, 0 adds r1, r2, 0 bl sub_8037EBC b _08038010 _08038008: adds r0, r3, 0 adds r1, r2, 0 bl nullsub_53 _08038010: pop {r0} bx r0 thumb_func_end sub_8037F9C thumb_func_start sub_8038014 sub_8038014: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 bl sub_800D588 lsls r0, 24 adds r4, r6, 0 cmp r0, 0 bne _08038028 adds r4, r5, 0 _08038028: bl sub_800D588 lsls r0, 24 adds r3, r5, 0 cmp r0, 0 bne _08038036 adds r3, r6, 0 _08038036: ldrb r0, [r4] ldrb r1, [r3] cmp r0, r1 bne _0803804C ldr r0, _08038048 ldr r1, [r0] ldrb r0, [r4] b _08038052 .align 2, 0 _08038048: .4byte gUnknown_203B460 _0803804C: ldr r0, _08038070 ldr r1, [r0] ldrb r0, [r3] _08038052: lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r2, [r1] ldr r0, [r3, 0x4] adds r2, r0 ldr r0, _08038074 movs r1, 0 cmp r2, r0 ble _08038068 movs r1, 0x6 _08038068: adds r0, r1, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08038070: .4byte gUnknown_203B460 _08038074: .4byte 0x000003e7 thumb_func_end sub_8038014 thumb_func_start sub_8038078 sub_8038078: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _0803808A adds r4, r5, 0 _0803808A: ldr r6, [r4, 0x10] ldr r0, _08038098 ldr r0, [r0] cmp r0, 0 beq _0803809C ldr r5, [r0, 0x50] b _080380A2 .align 2, 0 _08038098: .4byte gUnknown_203B184 _0803809C: bl sub_8011C34 adds r5, r0, 0 _080380A2: movs r0, 0x4 adds r1, r6, 0 bl sub_80952F0 lsls r0, 24 cmp r0, 0 beq _080380BA ldr r0, [r4, 0x28] cmp r0, r5 bne _080380BA movs r0, 0 b _080380BC _080380BA: movs r0, 0xB _080380BC: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8038078 thumb_func_start sub_80380C4 sub_80380C4: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 adds r5, r4, 0 cmp r0, 0 bne _080380D8 adds r5, r6, 0 _080380D8: ldr r4, [r5, 0x10] movs r0, 0x2 adds r1, r4, 0 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08038110 movs r0, 0x4 adds r1, r4, 0 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08038110 movs r0, 0x6 adds r1, r4, 0 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08038110 ldr r0, [r5, 0x10] bl sub_8095298 lsls r0, 24 cmp r0, 0 beq _08038114 _08038110: movs r0, 0x7 b _08038126 _08038114: bl sub_8095190 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _08038124 movs r0, 0 b _08038126 _08038124: movs r0, 0xD _08038126: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80380C4 thumb_func_start sub_803812C sub_803812C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_800D588 lsls r0, 24 cmp r0, 0 bne _0803813E adds r4, r5, 0 _0803813E: ldr r1, [r4, 0x10] movs r0, 0x1 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08038150 movs r0, 0x9 b _08038152 _08038150: movs r0, 0 _08038152: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803812C thumb_func_start sub_8038158 sub_8038158: movs r0, 0 bx lr thumb_func_end sub_8038158 thumb_func_start sub_803815C sub_803815C: push {r4,lr} adds r3, r1, 0 movs r4, 0 cmp r0, 0xA bhi _080381D2 lsls r0, 2 ldr r1, _08038170 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08038170: .4byte _08038174 .align 2, 0 _08038174: .4byte _080381A0 .4byte _080381A0 .4byte _080381D2 .4byte _080381B4 .4byte _080381D2 .4byte _080381BE .4byte _080381D2 .4byte _080381AA .4byte _080381D2 .4byte _080381D2 .4byte _080381C8 _080381A0: adds r0, r3, 0 adds r1, r2, 0 bl sub_8038014 b _080381D0 _080381AA: adds r0, r3, 0 adds r1, r2, 0 bl sub_8038078 b _080381D0 _080381B4: adds r0, r3, 0 adds r1, r2, 0 bl sub_80380C4 b _080381D0 _080381BE: adds r0, r3, 0 adds r1, r2, 0 bl sub_803812C b _080381D0 _080381C8: adds r0, r3, 0 adds r1, r2, 0 bl sub_8038158 _080381D0: adds r4, r0, 0 _080381D2: adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_803815C thumb_func_start sub_80381DC sub_80381DC: push {lr} bl sub_8037F9C pop {r0} bx r0 thumb_func_end sub_80381DC thumb_func_start sub_80381E8 sub_80381E8: push {lr} bl sub_803815C pop {r1} bx r1 thumb_func_end sub_80381E8 thumb_func_start sub_80381F4 sub_80381F4: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 adds r7, r2, 0 movs r4, 0 bl sub_803815C str r0, [sp] ldr r0, _08038218 str r4, [r0] bl sub_800D494 mov r0, sp movs r1, 0x4 bl sub_800D59C b _0803822E .align 2, 0 _08038218: .4byte gUnknown_202EC4C _0803821C: subs r0, r4, 0x3 cmp r0, 0x2 bls _08038272 ldr r1, _08038250 ldr r0, [r1] cmp r0, 0x63 bgt _0803827E adds r0, 0x1 str r0, [r1] _0803822E: bl sub_80373C4 bl sub_800D33C adds r4, r0, 0 bl sub_800D570 cmp r4, 0x2 bne _0803821C bl sub_800D600 lsls r0, 24 cmp r0, 0 beq _08038254 bl sub_8037DF0 b _0803825E .align 2, 0 _08038250: .4byte gUnknown_202EC4C _08038254: bl sub_800D520 bl sub_800D510 movs r0, 0x5 _0803825E: str r0, [sp] ldr r0, [sp] cmp r0, 0 bne _0803828A adds r0, r5, 0 adds r1, r6, 0 adds r2, r7, 0 bl sub_8037F9C b _08038292 _08038272: bl sub_800D520 bl sub_800D510 movs r0, 0x1 b _08038298 _0803827E: bl sub_800D520 bl sub_800D510 movs r0, 0xF b _08038298 _0803828A: bl sub_800D520 bl sub_800D510 _08038292: bl sub_800D520 ldr r0, [sp] _08038298: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80381F4 thumb_func_start sub_80382A0 sub_80382A0: push {lr} movs r0, 0 bl sub_8031F60 pop {r0} bx r0 thumb_func_end sub_80382A0 thumb_func_start sub_80382AC sub_80382AC: push {lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 thumb_func_end sub_80382AC thumb_func_start sub_80382C0 sub_80382C0: push {r4,lr} ldr r4, _080382E0 movs r0, 0x1 bl sub_8031FD8 cmp r0, 0x1 bls _080382D8 cmp r0, 0x3 bhi _080382D8 bl sub_803203C movs r4, 0x1 _080382D8: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080382E0: .4byte 0x0000ffdc thumb_func_end sub_80382C0 thumb_func_start sub_80382E4 sub_80382E4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 mov r8, r0 ldr r5, _08038398 ldr r0, [r5] cmp r0, 0 bne _0803830E movs r4, 0xDA lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _0803830E: mov r12, r5 movs r0, 0xA4 lsls r0, 1 mov r9, r0 ldr r4, _0803839C movs r3, 0 movs r2, 0x3 _0803831C: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r9 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0803831C bl sub_8004914 ldr r5, _08038398 ldr r0, [r5] movs r6, 0xA4 lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C mov r7, r8 cmp r7, 0x25 bne _08038370 ldr r1, [r5] adds r0, r1, 0 adds r0, 0x8 adds r1, r6 ldr r3, _080383A0 ldr r2, _080383A4 str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0x4 str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems _08038370: ldr r0, [r5] adds r0, 0x8 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r1, [r5] mov r0, r8 str r0, [r1] movs r0, 0 str r0, [r1, 0x4] bl sub_8038440 add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08038398: .4byte gUnknown_203B360 _0803839C: .4byte gUnknown_80E6E7C _080383A0: .4byte gUnknown_80E6E94 _080383A4: .4byte gUnknown_80E6EAC thumb_func_end sub_80382E4 thumb_func_start sub_80383A8 sub_80383A8: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _080383D0 ldr r0, [r4] cmp r0, 0 beq _080383C8 bl MemoryFree movs r0, 0 str r0, [r4] _080383C8: pop {r4} pop {r0} bx r0 .align 2, 0 _080383D0: .4byte gUnknown_203B360 thumb_func_end sub_80383A8 thumb_func_start sub_80383D4 sub_80383D4: push {r4-r6,lr} sub sp, 0x4 movs r0, 0x2 str r0, [sp] ldr r6, _08038410 ldr r4, _08038414 ldr r0, [r4] ldr r5, [r0, 0x4] cmp r5, 0 bne _08038434 adds r0, 0x8 bl sub_80130A8 lsls r0, 24 cmp r0, 0 bne _080383FE ldr r0, [r4] adds r0, 0x8 mov r1, sp bl sub_8013114 _080383FE: ldr r0, [sp] cmp r0, 0x2 beq _0803842C cmp r0, 0x2 bhi _08038418 cmp r0, 0x1 beq _0803841C b _08038430 .align 2, 0 _08038410: .4byte 0x0000ffdc _08038414: .4byte gUnknown_203B360 _08038418: cmp r0, 0x3 bne _08038430 _0803841C: ldr r0, _08038428 ldr r1, [r0] movs r0, 0 str r0, [r1, 0x4] movs r6, 0x1 b _08038430 .align 2, 0 _08038428: .4byte gUnknown_203B360 _0803842C: ldr r0, [r4] str r5, [r0, 0x4] _08038430: bl sub_80384D0 _08038434: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80383D4 thumb_func_start sub_8038440 sub_8038440: push {r4,r5,lr} movs r5, 0 ldr r0, _080384B0 ldr r0, [r0] mov r12, r0 movs r3, 0xD4 lsls r3, 1 add r3, r12 ldrh r1, [r3] ldr r0, _080384B4 ands r0, r1 ldr r1, _080384B8 ands r0, r1 ldr r4, _080384BC ands r0, r4 ldr r1, _080384C0 ands r0, r1 ldr r1, _080384C4 ands r0, r1 movs r2, 0x80 lsls r2, 7 ldr r1, _080384C8 ands r0, r1 orrs r0, r2 strh r0, [r3] movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r2, 0xF movs r4, 0xF0 lsls r4, 8 ldr r1, _080384CC ands r0, r1 orrs r0, r4 strh r0, [r3, 0x4] movs r0, 0x70 strh r0, [r3, 0x2] movs r1, 0xE0 lsls r1, 3 ldrh r0, [r3, 0x6] ands r2, r0 orrs r2, r1 strh r2, [r3, 0x6] movs r0, 0xD8 lsls r0, 1 add r0, r12 str r5, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080384B0: .4byte gUnknown_203B360 _080384B4: .4byte 0x0000feff _080384B8: .4byte 0x0000fdff _080384BC: .4byte 0x0000f3ff _080384C0: .4byte 0x0000efff _080384C4: .4byte 0x0000dfff _080384C8: .4byte 0x00003fff _080384CC: .4byte 0x00000fff thumb_func_end sub_8038440 thumb_func_start sub_80384D0 sub_80384D0: push {r4,r5,lr} ldr r5, _08038508 ldr r2, [r5] movs r4, 0xD8 lsls r4, 1 adds r0, r2, r4 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _080384F6 movs r1, 0xD4 lsls r1, 1 adds r0, r2, r1 subs r1, 0xA8 movs r2, 0 movs r3, 0 bl AddSprite _080384F6: ldr r1, [r5] adds r1, r4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08038508: .4byte gUnknown_203B360 thumb_func_end sub_80384D0 thumb_func_start sub_803850C sub_803850C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 mov r8, r0 ldr r5, _0803859C ldr r0, [r5] cmp r0, 0 bne _08038536 movs r4, 0xDA lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _08038536: mov r12, r5 movs r0, 0xA4 lsls r0, 1 mov r9, r0 ldr r4, _080385A0 movs r3, 0 movs r2, 0x3 _08038544: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r9 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08038544 bl sub_8004914 ldr r4, _0803859C ldr r0, [r4] movs r6, 0xA4 lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C mov r7, r8 cmp r7, 0x2E bne _080385AC ldr r1, [r4] adds r0, r1, 0 adds r0, 0x8 adds r1, r6 ldr r3, _080385A4 ldr r2, _080385A8 str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems b _080385CE .align 2, 0 _0803859C: .4byte gUnknown_203B364 _080385A0: .4byte gUnknown_80E6F20 _080385A4: .4byte gUnknown_80E6F38 _080385A8: .4byte gUnknown_80E7090 _080385AC: ldr r1, [r4] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _080385F8 ldr r2, _080385FC str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems _080385CE: ldr r4, _08038600 ldr r0, [r4] adds r0, 0x8 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r1, [r4] movs r0, 0 str r0, [r1, 0x4] mov r5, r8 str r5, [r1] bl sub_8038830 add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080385F8: .4byte gUnknown_80E6F38 _080385FC: .4byte gUnknown_80E6F50 _08038600: .4byte gUnknown_203B364 thumb_func_end sub_803850C thumb_func_start sub_8038604 sub_8038604: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0803862C ldr r0, [r4] cmp r0, 0 beq _08038624 bl MemoryFree movs r0, 0 str r0, [r4] _08038624: pop {r4} pop {r0} bx r0 .align 2, 0 _0803862C: .4byte gUnknown_203B364 thumb_func_end sub_8038604 thumb_func_start sub_8038630 sub_8038630: push {r4-r6,lr} sub sp, 0x18 ldr r5, _080386A8 movs r0, 0x3 str r0, [sp, 0x14] ldr r6, _080386AC ldr r0, [r6] ldr r4, [r0, 0x4] cmp r4, 0x1 bne _08038646 b _08038798 _08038646: cmp r4, 0x1 bcc _0803864C b _08038824 _0803864C: adds r0, 0x8 bl sub_8012FD8 movs r5, 0 str r5, [sp, 0x10] bl sub_80140F8 bl sub_8011C1C adds r1, r0, 0 add r0, sp, 0x10 bl sub_801203C adds r4, r0, 0 bl sub_8014114 cmp r4, 0 beq _080386B8 cmp r4, 0x1 beq _08038738 ldr r0, [r6] movs r4, 0xA4 lsls r4, 1 adds r0, r4 movs r1, 0 bl sub_8035CC0 ldr r1, [r6] ldr r0, [r1] cmp r0, 0x2E bne _08038750 adds r0, r1, 0 adds r0, 0x8 adds r1, r4 ldr r3, _080386B0 ldr r2, _080386B4 str r2, [sp] str r5, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r5, [sp, 0xC] movs r2, 0 bl SetMenuItems b _0803876E .align 2, 0 _080386A8: .4byte 0x0000ffdc _080386AC: .4byte gUnknown_203B364 _080386B0: .4byte gUnknown_80E6F38 _080386B4: .4byte gUnknown_80E7114 _080386B8: ldr r0, [r6] movs r1, 0xA4 lsls r1, 1 adds r0, r1 movs r1, 0 bl sub_8035CC0 ldr r1, [r6] ldr r0, [r1] cmp r0, 0x2E bne _080386F8 adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _080386F0 ldr r2, _080386F4 str r2, [sp] str r5, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r5, [sp, 0xC] movs r2, 0 bl SetMenuItems b _08038716 .align 2, 0 _080386F0: .4byte gUnknown_80E6F38 _080386F4: .4byte gUnknown_80E70CC _080386F8: adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038728 ldr r2, _0803872C str r2, [sp] str r5, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r5, [sp, 0xC] movs r2, 0 bl SetMenuItems _08038716: ldr r4, _08038730 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x2D bne _08038734 movs r0, 0x1 str r0, [r1, 0x4] movs r0, 0x13 b _08038826 .align 2, 0 _08038728: .4byte gUnknown_80E6F38 _0803872C: .4byte gUnknown_80E6FBC _08038730: .4byte gUnknown_203B364 _08038734: adds r0, r1, 0 b _08038772 _08038738: ldr r0, _0803874C movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 ldr r1, [r6] movs r0, 0x5 b _08038780 .align 2, 0 _0803874C: .4byte gUnknown_80E7178 _08038750: adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038788 ldr r2, _0803878C str r2, [sp] str r5, [sp, 0x4] movs r2, 0x6 str r2, [sp, 0x8] str r5, [sp, 0xC] movs r2, 0 bl SetMenuItems _0803876E: ldr r4, _08038790 ldr r0, [r4] _08038772: adds r0, 0x8 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 ldr r1, [r4] movs r0, 0x1 _08038780: str r0, [r1, 0x4] ldr r5, _08038794 b _08038824 .align 2, 0 _08038788: .4byte gUnknown_80E6F38 _0803878C: .4byte gUnknown_80E701C _08038790: .4byte gUnknown_203B364 _08038794: .4byte 0x0000ffdc _08038798: adds r0, 0x8 bl sub_80130A8 lsls r0, 24 cmp r0, 0 bne _080387AE ldr r0, [r6] adds r0, 0x8 add r1, sp, 0x14 bl sub_8013114 _080387AE: ldr r0, [sp, 0x14] cmp r0, 0x3 beq _0803881C cmp r0, 0x3 bhi _080387BE cmp r0, 0x2 beq _080387C2 b _08038820 _080387BE: cmp r0, 0x4 bne _08038820 _080387C2: ldr r4, _080387D8 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x29 beq _080387D0 cmp r0, 0x2E bne _080387DC _080387D0: movs r0, 0x1 str r0, [r1, 0x4] movs r5, 0x1 b _08038820 .align 2, 0 _080387D8: .4byte gUnknown_203B364 _080387DC: cmp r0, 0x2D bne _080387E8 movs r0, 0x1 str r0, [r1, 0x4] movs r5, 0x13 b _08038820 _080387E8: cmp r0, 0x2C bne _080387F4 movs r0, 0x1 str r0, [r1, 0x4] movs r5, 0x1F b _08038820 _080387F4: bl sub_8035D4C adds r0, 0x3A ldrb r0, [r0] cmp r0, 0 beq _0803880A ldr r1, [r4] movs r0, 0x1 str r0, [r1, 0x4] movs r5, 0x35 b _08038820 _0803880A: ldr r0, [r4] movs r1, 0x1 str r1, [r0, 0x4] ldr r0, [r0] movs r5, 0xB cmp r0, 0x2B bne _08038820 movs r5, 0xD b _08038820 _0803881C: ldr r0, [r6] str r4, [r0, 0x4] _08038820: bl sub_80388C4 _08038824: adds r0, r5, 0 _08038826: add sp, 0x18 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8038630 thumb_func_start sub_8038830 sub_8038830: push {r4,r5,lr} movs r5, 0 ldr r0, _080388A4 ldr r0, [r0] mov r12, r0 movs r3, 0xD4 lsls r3, 1 add r3, r12 ldrh r1, [r3] ldr r0, _080388A8 ands r0, r1 ldr r1, _080388AC ands r0, r1 ldr r4, _080388B0 ands r0, r4 ldr r1, _080388B4 ands r0, r1 ldr r1, _080388B8 ands r0, r1 movs r2, 0x80 lsls r2, 7 ldr r1, _080388BC ands r0, r1 orrs r0, r2 strh r0, [r3] movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r2, 0xF movs r4, 0xF0 lsls r4, 8 ldr r1, _080388C0 ands r0, r1 orrs r0, r4 strh r0, [r3, 0x4] movs r0, 0x70 strh r0, [r3, 0x2] movs r1, 0xD0 lsls r1, 3 ldrh r0, [r3, 0x6] ands r2, r0 orrs r2, r1 strh r2, [r3, 0x6] movs r0, 0xD8 lsls r0, 1 add r0, r12 str r5, [r0] movs r0, 0 bl ResetSprites pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080388A4: .4byte gUnknown_203B364 _080388A8: .4byte 0x0000feff _080388AC: .4byte 0x0000fdff _080388B0: .4byte 0x0000f3ff _080388B4: .4byte 0x0000efff _080388B8: .4byte 0x0000dfff _080388BC: .4byte 0x00003fff _080388C0: .4byte 0x00000fff thumb_func_end sub_8038830 thumb_func_start sub_80388C4 sub_80388C4: push {r4,r5,lr} ldr r5, _080388FC ldr r2, [r5] movs r4, 0xD8 lsls r4, 1 adds r0, r2, r4 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _080388EA movs r1, 0xD4 lsls r1, 1 adds r0, r2, r1 subs r1, 0xA8 movs r2, 0 movs r3, 0 bl AddSprite _080388EA: ldr r1, [r5] adds r1, r4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080388FC: .4byte gUnknown_203B364 thumb_func_end sub_80388C4 thumb_func_start sub_8038900 sub_8038900: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 ldr r5, _080389B8 ldr r0, [r5] cmp r0, 0 bne _0803892A movs r4, 0x85 lsls r4, 2 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _0803892A: movs r0, 0x1B negs r0, r0 adds r0, r6 mov r8, r0 mov r12, r5 movs r1, 0xA4 lsls r1, 1 mov r9, r1 ldr r4, _080389BC mov r10, r4 movs r3, 0 movs r2, 0x3 _08038942: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r9 mov r0, r10 ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _08038942 bl sub_8004914 ldr r4, _080389B8 ldr r0, [r4] movs r7, 0xA4 lsls r7, 1 adds r0, r7 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r2, _080389C0 ldrb r0, [r2] cmp r0, 0 bne _08038986 ldr r0, _080389C4 ldr r1, [r0] adds r7, r4, 0 adds r5, r0, 0 cmp r1, r6 beq _080389A0 _08038986: adds r7, r4, 0 adds r3, r2, 0 ldr r5, _080389C4 ldr r1, _080389C8 movs r2, 0 adds r0, r1, 0 adds r0, 0x35 _08038994: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08038994 movs r0, 0 strb r0, [r3] _080389A0: ldr r0, [r7] str r6, [r0] str r6, [r5] mov r0, r8 cmp r0, 0x7 bhi _08038A36 lsls r0, 2 ldr r1, _080389CC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080389B8: .4byte gUnknown_203B370 _080389BC: .4byte gUnknown_80E71E4 _080389C0: .4byte gUnknown_203B368 _080389C4: .4byte gUnknown_203B36C _080389C8: .4byte gUnknown_202EC50 _080389CC: .4byte _080389D0 .align 2, 0 _080389D0: .4byte _080389F0 .4byte _080389FC .4byte _080389F0 .4byte _080389FC .4byte _080389F0 .4byte _080389FC .4byte _08038A0C .4byte _08038A2E _080389F0: bl sub_8035D74 movs r1, 0 bl sub_8031D70 b _08038A36 _080389FC: ldr r1, _08038A08 movs r0, 0x4 bl sub_80151C0 b _08038A36 .align 2, 0 _08038A08: .4byte gUnknown_202EC50 _08038A0C: movs r0, 0x1F bl sub_8095228 adds r4, r0, 0 movs r1, 0 movs r2, 0x30 bl MemoryFill8 movs r1, 0 movs r0, 0x2 strb r0, [r4] adds r4, 0x22 strb r1, [r4] movs r0, 0x1F bl sub_8031D70 b _08038A36 _08038A2E: ldr r1, _08038A54 movs r0, 0x4 bl sub_80151C0 _08038A36: adds r0, r6, 0 bl sub_8039000 ldr r1, _08038A58 ldr r1, [r1] str r0, [r1, 0x4] bl sub_8039174 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08038A54: .4byte gUnknown_202EC50 _08038A58: .4byte gUnknown_203B370 thumb_func_end sub_8038900 thumb_func_start sub_8038A5C sub_8038A5C: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _08038A8C ldr r0, [r4] cmp r0, 0 beq _08038A86 bl sub_80155F0 bl sub_8031E10 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08038A86: pop {r4} pop {r0} bx r0 .align 2, 0 _08038A8C: .4byte gUnknown_203B370 thumb_func_end sub_8038A5C thumb_func_start sub_8038A90 sub_8038A90: push {r4-r6,lr} sub sp, 0x34 movs r0, 0xB str r0, [sp, 0x30] ldr r5, _08038AB4 ldr r1, _08038AB8 ldr r0, [r1] ldr r0, [r0, 0x4] adds r6, r1, 0 cmp r0, 0x9 bls _08038AA8 b _08038DB0 _08038AA8: lsls r0, 2 ldr r1, _08038ABC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08038AB4: .4byte 0x0000ffdc _08038AB8: .4byte gUnknown_203B370 _08038ABC: .4byte _08038AC0 .align 2, 0 _08038AC0: .4byte _08038AE8 .4byte _08038AFC .4byte _08038AE8 .4byte _08038AFC .4byte _08038AE8 .4byte _08038AFC .4byte _08038C78 .4byte _08038C8C .4byte _08038CC2 .4byte _08038D38 _08038AE8: bl sub_8031DCC ldr r5, _08038AF8 cmp r0, 0 bne _08038AF4 b _08038DB0 _08038AF4: movs r5, 0xB b _08038DB0 .align 2, 0 _08038AF8: .4byte 0x0000ffdc _08038AFC: bl sub_80154F0 adds r4, r0, 0 mov r0, sp movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x1 bne _08038B12 b _08038CBC _08038B12: cmp r4, 0x1 bcs _08038B18 b _08038CB0 _08038B18: cmp r4, 0x2 beq _08038AF4 cmp r4, 0x3 beq _08038B22 b _08038DB0 _08038B22: ldr r0, _08038B44 ldr r0, [r0] ldr r0, [r0] ldr r1, _08038B48 mov r2, sp bl sub_8039068 subs r0, 0x7 cmp r0, 0x11 bls _08038B38 b _08038DB0 _08038B38: lsls r0, 2 ldr r1, _08038B4C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08038B44: .4byte gUnknown_203B370 _08038B48: .4byte gUnknown_202EC50 _08038B4C: .4byte _08038B50 .align 2, 0 _08038B50: .4byte _08038BA4 .4byte _08038DB0 .4byte _08038BD8 .4byte _08038DB0 .4byte _08038C28 .4byte _08038DB0 .4byte _08038B9C .4byte _08038DB0 .4byte _08038DB0 .4byte _08038DB0 .4byte _08038B98 .4byte _08038BA0 .4byte _08038BD4 .4byte _08038C24 .4byte _08038DB0 .4byte _08038BA8 .4byte _08038BDC .4byte _08038C2C _08038B98: movs r0, 0x11 b _08038CA4 _08038B9C: movs r0, 0xD b _08038CA4 _08038BA0: movs r0, 0x12 b _08038CA4 _08038BA4: movs r0, 0x7 b _08038CA4 _08038BA8: ldr r0, [sp, 0x10] bl sub_8095274 bl sub_8038F98 ldr r0, _08038BCC ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] ldr r5, _08038BD0 mov r1, sp movs r0, 0x2 strb r0, [r1] mov r0, sp bl sub_80951BC b _08038DB0 .align 2, 0 _08038BCC: .4byte gUnknown_203B370 _08038BD0: .4byte 0x0000ffdc _08038BD4: movs r0, 0x13 b _08038CA4 _08038BD8: movs r0, 0x9 b _08038CA4 _08038BDC: bl sub_8038F98 ldr r0, _08038C18 ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] ldr r5, _08038C1C mov r1, sp movs r0, 0x5 strb r0, [r1] mov r0, sp bl sub_80951FC ldr r1, [sp, 0x10] movs r0, 0x1 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 movs r1, 0x7 strb r1, [r0] ldr r0, _08038C20 movs r1, 0 movs r2, 0x5C bl MemoryFill8 b _08038DB0 .align 2, 0 _08038C18: .4byte gUnknown_203B370 _08038C1C: .4byte 0x0000ffdc _08038C20: .4byte gUnknown_203B484 _08038C24: movs r0, 0x14 b _08038CA4 _08038C28: movs r0, 0xB b _08038CA4 _08038C2C: bl sub_8038F98 ldr r0, _08038C70 ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x4] ldr r5, _08038C74 ldr r1, [sp, 0x10] movs r0, 0x4 bl sub_809539C lsls r0, 24 lsrs r0, 24 bl sub_8095228 adds r2, r0, 0 mov r1, sp ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} movs r1, 0x6 strb r1, [r0] bl sub_8035D4C adds r0, 0x3A movs r1, 0x1 strb r1, [r0] b _08038DB0 .align 2, 0 _08038C70: .4byte gUnknown_203B370 _08038C74: .4byte 0x0000ffdc _08038C78: bl sub_8031DCC ldr r5, _08038C88 cmp r0, 0 bne _08038C84 b _08038DB0 _08038C84: movs r5, 0xD b _08038DB0 .align 2, 0 _08038C88: .4byte 0x0000ffdc _08038C8C: bl sub_80154F0 cmp r0, 0x1 beq _08038CBC cmp r0, 0x1 bcc _08038CB0 cmp r0, 0x2 beq _08038C84 cmp r0, 0x3 beq _08038CA2 b _08038DB0 _08038CA2: movs r0, 0x15 _08038CA4: bl sub_8038DC0 ldr r0, _08038CB4 ldr r1, [r0] movs r0, 0x8 str r0, [r1, 0x4] _08038CB0: ldr r5, _08038CB8 b _08038DB0 .align 2, 0 _08038CB4: .4byte gUnknown_203B370 _08038CB8: .4byte 0x0000ffdc _08038CBC: bl sub_8031E00 b _08038CB0 _08038CC2: ldr r0, [r6] adds r0, 0x8 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08038CDA ldr r0, [r6] adds r0, 0x8 add r1, sp, 0x30 bl sub_8013114 _08038CDA: ldr r0, [sp, 0x30] cmp r0, 0xB beq _08038D24 cmp r0, 0xB bhi _08038CEA cmp r0, 0xA beq _08038CEE b _08038DB0 _08038CEA: cmp r0, 0xC bne _08038DB0 _08038CEE: bl sub_8039174 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, _08038D1C movs r0, 0x4 bl sub_80151C0 ldr r0, _08038D20 ldr r1, [r0] movs r0, 0x8 str r0, [r1, 0x4] ldr r0, [r1] subs r0, 0x21 movs r5, 0xB cmp r0, 0x1 bhi _08038DB0 b _08038C84 .align 2, 0 _08038D1C: .4byte gUnknown_202EC50 _08038D20: .4byte gUnknown_203B370 _08038D24: ldr r1, [r6] movs r0, 0x8 str r0, [r1, 0x4] ldr r5, _08038D34 bl sub_80391F8 b _08038DB0 .align 2, 0 _08038D34: .4byte 0x0000ffdc _08038D38: adds r4, r6, 0 ldr r0, [r4] adds r0, 0x8 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08038D52 ldr r0, [r4] adds r0, 0x8 add r1, sp, 0x30 bl sub_8013114 _08038D52: ldr r0, [sp, 0x30] cmp r0, 0xB beq _08038DA4 cmp r0, 0xB bhi _08038D62 cmp r0, 0xA beq _08038D66 b _08038DB0 _08038D62: cmp r0, 0xC bne _08038DB0 _08038D66: bl sub_8039174 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, _08038D9C movs r0, 0x4 bl sub_80151C0 ldr r4, _08038DA0 ldr r0, [r4] ldr r0, [r0] bl sub_8039000 ldr r1, [r4] str r0, [r1, 0x4] ldr r0, [r1] subs r0, 0x21 movs r5, 0x2A cmp r0, 0x1 bhi _08038DB0 movs r5, 0x2B b _08038DB0 .align 2, 0 _08038D9C: .4byte gUnknown_202EC50 _08038DA0: .4byte gUnknown_203B370 _08038DA4: ldr r1, [r6] movs r0, 0x9 str r0, [r1, 0x4] ldr r5, _08038DBC bl sub_80391F8 _08038DB0: adds r0, r5, 0 add sp, 0x34 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08038DBC: .4byte 0x0000ffdc thumb_func_end sub_8038A90 thumb_func_start sub_8038DC0 sub_8038DC0: push {r4,lr} sub sp, 0x10 adds r4, r0, 0 ldr r0, _08038DF8 ldr r0, [r0] movs r1, 0xD4 lsls r1, 1 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_80155F0 subs r0, r4, 0x7 cmp r0, 0xE bls _08038DEE b _08038F74 _08038DEE: lsls r0, 2 ldr r1, _08038DFC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08038DF8: .4byte gUnknown_203B370 _08038DFC: .4byte _08038E00 .align 2, 0 _08038E00: .4byte _08038E7C .4byte _08038F74 .4byte _08038EDC .4byte _08038F74 .4byte _08038F1C .4byte _08038F74 .4byte _08038E9C .4byte _08038F74 .4byte _08038F74 .4byte _08038F74 .4byte _08038E3C .4byte _08038E5C .4byte _08038EBC .4byte _08038EFC .4byte _08038F50 _08038E3C: ldr r0, _08038E50 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038E54 ldr r2, _08038E58 b _08038F2E .align 2, 0 _08038E50: .4byte gUnknown_203B370 _08038E54: .4byte gUnknown_80E71FC _08038E58: .4byte gUnknown_80E7214 _08038E5C: ldr r0, _08038E70 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038E74 ldr r2, _08038E78 b _08038F2E .align 2, 0 _08038E70: .4byte gUnknown_203B370 _08038E74: .4byte gUnknown_80E72EC _08038E78: .4byte gUnknown_80E7304 _08038E7C: ldr r0, _08038E90 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038E94 ldr r2, _08038E98 b _08038F2E .align 2, 0 _08038E90: .4byte gUnknown_203B370 _08038E94: .4byte gUnknown_80E7344 _08038E98: .4byte gUnknown_80E735C _08038E9C: ldr r0, _08038EB0 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038EB4 ldr r2, _08038EB8 b _08038F2E .align 2, 0 _08038EB0: .4byte gUnknown_203B370 _08038EB4: .4byte gUnknown_80E7588 _08038EB8: .4byte gUnknown_80E75A0 _08038EBC: ldr r0, _08038ED0 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038ED4 ldr r2, _08038ED8 b _08038F2E .align 2, 0 _08038ED0: .4byte gUnknown_203B370 _08038ED4: .4byte gUnknown_80E73AC _08038ED8: .4byte gUnknown_80E73C4 _08038EDC: ldr r0, _08038EF0 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038EF4 ldr r2, _08038EF8 b _08038F2E .align 2, 0 _08038EF0: .4byte gUnknown_203B370 _08038EF4: .4byte gUnknown_80E7408 _08038EF8: .4byte gUnknown_80E7420 _08038EFC: ldr r0, _08038F10 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038F14 ldr r2, _08038F18 b _08038F2E .align 2, 0 _08038F10: .4byte gUnknown_203B370 _08038F14: .4byte gUnknown_80E7468 _08038F18: .4byte gUnknown_80E7480 _08038F1C: ldr r0, _08038F44 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038F48 ldr r2, _08038F4C _08038F2E: str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0xD str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems b _08038F74 .align 2, 0 _08038F44: .4byte gUnknown_203B370 _08038F48: .4byte gUnknown_80E74C8 _08038F4C: .4byte gUnknown_80E74E0 _08038F50: ldr r0, _08038F8C ldr r1, [r0] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038F90 ldr r2, _08038F94 str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0xD str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems _08038F74: ldr r0, _08038F8C ldr r0, [r0] adds r0, 0x8 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _08038F8C: .4byte gUnknown_203B370 _08038F90: .4byte gUnknown_80E752C _08038F94: .4byte gUnknown_80E7544 thumb_func_end sub_8038DC0 thumb_func_start sub_8038F98 sub_8038F98: push {r4,r5,lr} sub sp, 0x10 ldr r5, _08038FF4 ldr r0, [r5] movs r1, 0xD4 lsls r1, 1 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_80155F0 ldr r1, [r5] adds r0, r1, 0 adds r0, 0x8 movs r2, 0xA4 lsls r2, 1 adds r1, r2 ldr r3, _08038FF8 ldr r2, _08038FFC str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r2, 0xD str r2, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems ldr r0, [r5] adds r0, 0x8 movs r1, 0 movs r2, 0x1 bl sub_8035CF4 add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08038FF4: .4byte gUnknown_203B370 _08038FF8: .4byte gUnknown_80E7278 _08038FFC: .4byte gUnknown_80E7290 thumb_func_end sub_8038F98 thumb_func_start sub_8039000 sub_8039000: push {lr} movs r1, 0xB ldr r0, _0803901C ldr r0, [r0] ldr r0, [r0] subs r0, 0x1B cmp r0, 0x7 bhi _08039062 lsls r0, 2 ldr r1, _08039020 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803901C: .4byte gUnknown_203B370 _08039020: .4byte _08039024 .align 2, 0 _08039024: .4byte _08039044 .4byte _08039054 .4byte _0803904C .4byte _0803905C .4byte _08039048 .4byte _08039058 .4byte _08039050 .4byte _08039060 _08039044: movs r1, 0 b _08039062 _08039048: movs r1, 0x4 b _08039062 _0803904C: movs r1, 0x2 b _08039062 _08039050: movs r1, 0x6 b _08039062 _08039054: movs r1, 0x1 b _08039062 _08039058: movs r1, 0x5 b _08039062 _0803905C: movs r1, 0x3 b _08039062 _08039060: movs r1, 0x7 _08039062: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_8039000 thumb_func_start sub_8039068 sub_8039068: push {r4-r6,lr} adds r6, r0, 0 adds r0, r1, 0 adds r5, r2, 0 adds r1, r5, 0 bl sub_803D204 lsls r0, 24 cmp r0, 0 beq _080390AC ldrb r0, [r5] cmp r0, 0x7 bhi _080390AC ldrb r4, [r5, 0x5] ldrb r0, [r5, 0x4] bl sub_8090298 cmp r4, r0 bge _080390AC movs r0, 0xC ldrsh r1, [r5, r0] cmp r1, 0 beq _080390AC ldr r0, _080390B0 cmp r1, r0 bgt _080390AC adds r0, r5, 0 adds r0, 0x22 ldrb r0, [r0] bl sub_8092040 lsls r0, 24 cmp r0, 0 beq _080390B4 _080390AC: movs r0, 0x11 b _0803916E .align 2, 0 _080390B0: .4byte 0x000001a7 _080390B4: cmp r6, 0x1E beq _08039120 cmp r6, 0x1E bhi _080390C2 cmp r6, 0x1C beq _080390C8 b _0803916A _080390C2: cmp r6, 0x20 beq _08039140 b _0803916A _080390C8: ldrb r0, [r5] cmp r0, 0x1 beq _080390D2 movs r0, 0x12 b _0803916E _080390D2: ldr r1, [r5, 0x10] movs r0, 0x2 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08039108 ldr r1, [r5, 0x10] movs r0, 0x4 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08039108 ldr r1, [r5, 0x10] movs r0, 0x6 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _08039108 ldr r0, [r5, 0x10] bl sub_8095298 lsls r0, 24 cmp r0, 0 beq _0803910C _08039108: movs r0, 0x7 b _0803916E _0803910C: bl sub_8095190 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0803911C movs r0, 0xD b _0803916E _0803911C: movs r0, 0x16 b _0803916E _08039120: ldrb r0, [r5] cmp r0, 0x4 beq _0803912A movs r0, 0x13 b _0803916E _0803912A: ldr r1, [r5, 0x10] movs r0, 0x1 bl sub_80952F0 lsls r0, 24 cmp r0, 0 bne _0803913C movs r0, 0x9 b _0803916E _0803913C: movs r0, 0x17 b _0803916E _08039140: ldrb r0, [r5] cmp r0, 0x5 beq _0803914A movs r0, 0x14 b _0803916E _0803914A: ldr r1, [r5, 0x10] movs r0, 0x4 bl sub_80952F0 lsls r0, 24 cmp r0, 0 beq _08039162 bl sub_8011C34 ldr r1, [r5, 0x28] cmp r1, r0 beq _08039166 _08039162: movs r0, 0xB b _0803916E _08039166: movs r0, 0x18 b _0803916E _0803916A: movs r0, 0x1 negs r0, r0 _0803916E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8039068 thumb_func_start sub_8039174 sub_8039174: push {r4,lr} ldr r0, _080391D8 ldr r3, [r0] movs r0, 0x82 lsls r0, 2 adds r3, r0 ldrh r1, [r3] ldr r0, _080391DC ands r0, r1 ldr r1, _080391E0 ands r0, r1 ldr r4, _080391E4 ands r0, r4 ldr r1, _080391E8 ands r0, r1 ldr r1, _080391EC ands r0, r1 movs r2, 0x80 lsls r2, 7 ldr r1, _080391F0 ands r0, r1 orrs r0, r2 strh r0, [r3] movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r4 movs r2, 0xF movs r4, 0xF0 lsls r4, 8 ldr r1, _080391F4 ands r0, r1 orrs r0, r4 strh r0, [r3, 0x4] movs r0, 0 strh r0, [r3, 0x2] movs r1, 0xC0 lsls r1, 4 ldrh r0, [r3, 0x6] ands r2, r0 orrs r2, r1 strh r2, [r3, 0x6] pop {r4} pop {r0} bx r0 .align 2, 0 _080391D8: .4byte gUnknown_203B370 _080391DC: .4byte 0x0000feff _080391E0: .4byte 0x0000fdff _080391E4: .4byte 0x0000f3ff _080391E8: .4byte 0x0000efff _080391EC: .4byte 0x0000dfff _080391F0: .4byte 0x00003fff _080391F4: .4byte 0x00000fff thumb_func_end sub_8039174 thumb_func_start sub_80391F8 sub_80391F8: push {r4-r6,lr} ldr r6, _08039250 ldr r2, [r6] movs r0, 0x82 lsls r0, 2 adds r4, r2, r0 ldrh r1, [r4, 0x2] movs r0, 0xFE lsls r0, 8 ands r0, r1 movs r1, 0x70 orrs r0, r1 strh r0, [r4, 0x2] movs r3, 0xE0 lsls r3, 3 ldrh r1, [r4, 0x6] movs r0, 0xF ands r0, r1 orrs r0, r3 strh r0, [r4, 0x6] movs r5, 0x84 lsls r5, 2 adds r2, r5 ldr r0, [r2] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0803923C adds r1, 0xF8 adds r0, r4, 0 movs r2, 0 movs r3, 0 bl AddSprite _0803923C: bl xxx_draw_string_80144C4 ldr r1, [r6] adds r1, r5 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08039250: .4byte gUnknown_203B370 thumb_func_end sub_80391F8 thumb_func_start sub_8039254 sub_8039254: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r6, r0, 0 ldr r5, _080392EC ldr r0, [r5] cmp r0, 0 bne _0803927C movs r4, 0x9F lsls r4, 2 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _0803927C: ldr r0, [r5] str r6, [r0] mov r12, r5 movs r0, 0xA2 lsls r0, 1 mov r8, r0 ldr r4, _080392F0 movs r3, 0 movs r2, 0x3 _0803928E: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0803928E bl sub_8004914 ldr r6, _080392EC ldr r0, [r6] movs r5, 0xA2 lsls r5, 1 adds r0, r5 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r6] adds r0, r1, 0x4 adds r1, r5 ldr r3, _080392F4 ldr r2, _080392F8 str r2, [sp] movs r4, 0 str r4, [sp, 0x4] movs r7, 0x6 str r7, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0 bl SetMenuItems ldr r1, [r6] ldr r0, [r1] cmp r0, 0x7 beq _08039306 cmp r0, 0x7 bhi _080392FC cmp r0, 0x6 beq _08039338 b _08039382 .align 2, 0 _080392EC: .4byte gUnknown_203B374 _080392F0: .4byte gUnknown_80E75F8 _080392F4: .4byte gUnknown_80E7610 _080392F8: .4byte gUnknown_203B378 _080392FC: cmp r0, 0x8 beq _0803934C cmp r0, 0x9 beq _0803936C b _08039382 _08039306: bl sub_8039844 lsls r0, 24 cmp r0, 0 beq _08039324 ldr r1, [r6] adds r0, r1, 0x4 adds r1, r5 ldr r3, _0803931C ldr r2, _08039320 b _08039354 .align 2, 0 _0803931C: .4byte gUnknown_80E762C _08039320: .4byte gUnknown_80E7644 _08039324: ldr r1, [r6] adds r0, r1, 0x4 adds r1, r5 ldr r3, _08039330 ldr r2, _08039334 b _08039354 .align 2, 0 _08039330: .4byte gUnknown_80E762C _08039334: .4byte gUnknown_80E7684 _08039338: adds r0, r1, 0x4 adds r1, r5 ldr r3, _08039344 ldr r2, _08039348 b _08039354 .align 2, 0 _08039344: .4byte gUnknown_80E762C _08039348: .4byte gUnknown_80E76B8 _0803934C: adds r0, r1, 0x4 adds r1, r5 ldr r3, _08039364 ldr r2, _08039368 _08039354: str r2, [sp] str r4, [sp, 0x4] str r7, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0x1 bl SetMenuItems b _08039382 .align 2, 0 _08039364: .4byte gUnknown_80E762C _08039368: .4byte gUnknown_80E76E8 _0803936C: adds r0, r1, 0x4 adds r1, r5 ldr r3, _080393DC ldr r2, _080393E0 str r2, [sp] str r4, [sp, 0x4] str r7, [sp, 0x8] str r4, [sp, 0xC] movs r2, 0x1 bl SetMenuItems _08039382: ldr r4, _080393E4 ldr r1, [r4] adds r0, r1, 0x4 movs r6, 0xA2 lsls r6, 1 adds r1, r6 ldr r3, _080393E8 ldr r2, _080393EC str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0x2 str r2, [sp, 0x8] movs r2, 0 str r2, [sp, 0xC] movs r2, 0x2 bl SetMenuItems ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0 bl sub_8035CF4 ldr r0, [r4] adds r0, 0x4 movs r1, 0x1 movs r2, 0 bl sub_8035CF4 ldr r0, [r4] adds r0, 0x4 movs r1, 0x2 movs r2, 0x1 bl sub_8035CF4 bl sub_80394A4 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080393DC: .4byte gUnknown_80E762C _080393E0: .4byte gUnknown_80E7730 _080393E4: .4byte gUnknown_203B374 _080393E8: .4byte gUnknown_80E7784 _080393EC: .4byte gUnknown_80E779C thumb_func_end sub_8039254 thumb_func_start sub_80393F0 sub_80393F0: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _08039418 ldr r0, [r4] cmp r0, 0 beq _08039410 bl MemoryFree movs r0, 0 str r0, [r4] _08039410: pop {r4} pop {r0} bx r0 .align 2, 0 _08039418: .4byte gUnknown_203B374 thumb_func_end sub_80393F0 thumb_func_start sub_803941C sub_803941C: push {r4,r5,lr} sub sp, 0x4 ldr r5, _08039458 movs r0, 0x4 str r0, [sp] ldr r4, _0803945C ldr r0, [r4] adds r0, 0x54 bl sub_8012FD8 ldr r0, [r4] adds r0, 0xA4 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08039448 ldr r0, [r4] adds r0, 0xA4 mov r1, sp bl sub_8013114 _08039448: ldr r0, [sp] cmp r0, 0x3 bhi _08039498 cmp r0, 0x2 bcs _08039460 cmp r0, 0x1 beq _08039464 b _08039498 .align 2, 0 _08039458: .4byte 0x0000ffdc _0803945C: .4byte gUnknown_203B374 _08039460: movs r5, 0x1 b _08039498 _08039464: ldr r0, [r4] ldr r0, [r0] cmp r0, 0x7 beq _08039480 cmp r0, 0x7 bhi _08039476 cmp r0, 0x6 beq _08039484 b _08039498 _08039476: cmp r0, 0x8 beq _0803948E cmp r0, 0x9 beq _08039492 b _08039498 _08039480: movs r5, 0x2 b _08039498 _08039484: movs r0, 0 bl sub_8095240 movs r5, 0x4 b _08039498 _0803948E: movs r5, 0x9 b _08039498 _08039492: bl sub_80122A8 movs r5, 0x2E _08039498: adds r0, r5, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803941C thumb_func_start sub_80394A4 sub_80394A4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x150 bl sub_8011FA8 mov r8, r0 movs r0, 0 bl sub_8008C54 movs r0, 0 bl sub_80073B8 ldr r2, _0803952C movs r4, 0 str r4, [sp] movs r0, 0x8 movs r1, 0 movs r3, 0 bl xxx_call_draw_string ldr r2, _08039530 str r4, [sp] movs r0, 0x8 movs r1, 0xC movs r3, 0 bl xxx_call_draw_string ldr r2, _08039534 str r4, [sp] movs r0, 0x8 movs r1, 0x18 movs r3, 0 bl xxx_call_draw_string ldr r2, _08039538 str r4, [sp] movs r0, 0x8 movs r1, 0x24 movs r3, 0 bl xxx_call_draw_string ldr r2, _0803953C str r4, [sp] movs r0, 0x8 movs r1, 0x30 movs r3, 0 bl xxx_call_draw_string ldr r2, _08039540 str r4, [sp] movs r0, 0x8 movs r1, 0x3C movs r3, 0 bl xxx_call_draw_string movs r0, 0 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _08039544 add r4, sp, 0x68 adds r0, r4, 0 bl sub_80920D8 adds r2, r4, 0 b _0803954E .align 2, 0 _0803952C: .4byte gUnknown_80E77BC _08039530: .4byte gUnknown_80E77C4 _08039534: .4byte gUnknown_80E77CC _08039538: .4byte gUnknown_80E77D8 _0803953C: .4byte gUnknown_80E77E4 _08039540: .4byte gUnknown_80E77F0 _08039544: ldr r1, _08039588 add r0, sp, 0x68 bl strcpy add r2, sp, 0x68 _0803954E: ldr r5, _0803958C ldr r0, [r5] movs r4, 0xD2 lsls r4, 1 adds r0, r4 ldr r1, _08039590 bl sub_800D158 ldr r2, [r5] adds r2, r4 movs r0, 0 str r0, [sp] movs r0, 0x40 movs r1, 0 movs r3, 0 bl xxx_call_draw_string bl sub_808D33C cmp r0, 0 bne _08039598 add r4, sp, 0x90 ldr r1, _08039594 adds r0, r4, 0 movs r2, 0xA bl sub_80922B4 b _080395A6 .align 2, 0 _08039588: .4byte gUnknown_80E77F8 _0803958C: .4byte gUnknown_203B374 _08039590: .4byte gUnknown_80E7804 _08039594: .4byte gUnknown_80E7808 _08039598: add r4, sp, 0x90 adds r1, r0, 0 adds r1, 0x4C adds r0, r4, 0 movs r2, 0xA bl sub_80922B4 _080395A6: adds r2, r4, 0 ldr r5, _080395F0 ldr r0, [r5] movs r4, 0xE4 lsls r4, 1 adds r0, r4 ldr r6, _080395F4 adds r1, r6, 0 bl sub_800D158 ldr r2, [r5] adds r2, r4 movs r0, 0 str r0, [sp] movs r0, 0x40 movs r1, 0xC movs r3, 0 bl xxx_call_draw_string movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _080395E0 movs r0, 0x7 bl sub_8095324 cmp r0, 0 beq _08039606 _080395E0: ldr r0, _080395F8 cmp r8, r0 bne _080395FC ldr r4, [r5] movs r0, 0xF6 lsls r0, 1 adds r4, r0 b _08039676 .align 2, 0 _080395F0: .4byte gUnknown_203B374 _080395F4: .4byte gUnknown_80E7804 _080395F8: .4byte 0x000f1207 _080395FC: ldr r0, [r5] movs r1, 0xF6 lsls r1, 1 adds r0, r1 b _08039690 _08039606: bl sub_8011C1C cmp r0, 0x1 beq _08039624 cmp r0, 0x2 beq _08039668 ldr r0, [r5] movs r2, 0xF6 lsls r2, 1 adds r0, r2 ldr r1, _08039620 b _08039692 .align 2, 0 _08039620: .4byte gUnknown_80E7824 _08039624: movs r0, 0 movs r1, 0x18 bl sub_8001658 cmp r0, 0x7 beq _08039658 cmp r0, 0xB beq _08039658 bl sub_8098FB4 adds r2, r0, 0 add r0, sp, 0x4 adds r1, r6, 0 bl sub_800D158 ldr r0, [r5] movs r3, 0xF6 lsls r3, 1 adds r1, r0, r3 adds r3, 0x24 adds r2, r0, r3 add r0, sp, 0x4 movs r3, 0 bl xxx_format_string b _08039696 _08039658: ldr r0, _08039664 ldr r0, [r0] movs r1, 0xF6 lsls r1, 1 adds r0, r1 b _08039690 .align 2, 0 _08039664: .4byte gUnknown_203B374 _08039668: ldr r0, _08039684 cmp r8, r0 bne _08039688 ldr r4, [r5] movs r2, 0xF6 lsls r2, 1 adds r4, r2 _08039676: bl sub_809769C adds r1, r0, 0 adds r0, r4, 0 bl sub_8090228 b _08039696 .align 2, 0 _08039684: .4byte 0x000f1207 _08039688: ldr r0, [r5] movs r3, 0xF6 lsls r3, 1 adds r0, r3 _08039690: ldr r1, _0803974C _08039692: bl sub_800D158 _08039696: ldr r7, _08039750 ldr r2, [r7] movs r0, 0xF6 lsls r0, 1 adds r2, r0 movs r6, 0 str r6, [sp] movs r0, 0x40 movs r1, 0x18 movs r3, 0 bl xxx_call_draw_string ldr r0, _08039754 ldr r0, [r0] add r1, sp, 0x144 add r2, sp, 0x148 add r3, sp, 0x14C bl sub_8095014 ldr r0, [r7] movs r5, 0x84 lsls r5, 2 adds r0, r5 ldr r1, _08039758 add r2, sp, 0x144 ldr r2, [r2] add r3, sp, 0x148 ldr r3, [r3] add r4, sp, 0x14C ldr r4, [r4] str r4, [sp] bl sub_800D158 ldr r2, [r7] adds r2, r5 str r6, [sp] movs r0, 0x40 movs r1, 0x24 movs r3, 0 bl xxx_call_draw_string bl sub_8097778 adds r2, r0, 0 ldr r0, [r7] movs r4, 0x8D lsls r4, 2 adds r0, r4 ldr r1, _0803975C bl sub_800D158 ldr r2, [r7] adds r2, r4 str r6, [sp] movs r0, 0x40 movs r1, 0x30 movs r3, 0 bl xxx_call_draw_string ldr r0, _08039760 cmp r8, r0 bne _0803976C ldr r0, _08039764 ldr r6, [r0] movs r1, 0xC ldrsh r0, [r6, r1] cmp r0, 0 beq _0803976C add r5, sp, 0x130 adds r1, r0, 0 adds r0, r5, 0 bl sub_808D930 add r4, sp, 0xE0 adds r1, r6, 0 adds r1, 0x50 adds r0, r4, 0 movs r2, 0xA bl sub_80922B4 ldr r0, [r7] movs r3, 0x96 lsls r3, 2 adds r0, r3 ldr r1, _08039768 adds r2, r4, 0 adds r3, r5, 0 bl sub_800D158 b _0803977C .align 2, 0 _0803974C: .4byte gUnknown_80E780C _08039750: .4byte gUnknown_203B374 _08039754: .4byte gUnknown_203B47C _08039758: .4byte gUnknown_80E7838 _0803975C: .4byte gUnknown_80E7848 _08039760: .4byte 0x000f1207 _08039764: .4byte gUnknown_203B484 _08039768: .4byte gUnknown_80E784C _0803976C: ldr r0, _080397AC ldr r0, [r0] movs r1, 0x96 lsls r1, 2 adds r0, r1 ldr r1, _080397B0 bl sub_800D158 _0803977C: ldr r0, _080397AC ldr r2, [r0] movs r3, 0x96 lsls r3, 2 adds r2, r3 movs r0, 0 str r0, [sp] movs r0, 0x40 movs r1, 0x3C movs r3, 0 bl xxx_call_draw_string bl sub_80397B4 movs r0, 0 bl sub_80073E0 add sp, 0x150 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080397AC: .4byte gUnknown_203B374 _080397B0: .4byte gUnknown_80E7854 thumb_func_end sub_80394A4 thumb_func_start sub_80397B4 sub_80397B4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC ldr r0, _08039834 ldr r1, _08039838 bl OpenFileAndGetFileDataPtr adds r6, r0, 0 movs r4, 0 _080397C8: adds r0, r4, 0 adds r0, 0xB0 ldr r1, [r6, 0x4] lsls r2, r4, 2 ldr r1, [r1, 0x4] adds r1, r2 bl SetBGPaletteBufferColorArray adds r4, 0x1 cmp r4, 0x3F ble _080397C8 movs r7, 0x8 movs r0, 0x49 mov r8, r0 movs r4, 0 _080397E6: ldr r0, _0803983C lsls r5, r4, 2 adds r0, r5, r0 ldr r0, [r0] bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0803981C movs r0, 0x10 str r0, [sp] ldr r0, [r6, 0x4] lsls r1, r4, 7 ldr r0, [r0] adds r0, r1 str r0, [sp, 0x4] ldr r0, _08039840 adds r0, r5, r0 ldr r0, [r0] str r0, [sp, 0x8] movs r0, 0 adds r1, r7, 0 mov r2, r8 movs r3, 0x10 bl sub_8007E20 adds r7, 0x10 _0803981C: adds r4, 0x1 cmp r4, 0xB ble _080397E6 adds r0, r6, 0 bl CloseFile add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08039834: .4byte gUnknown_80E785C _08039838: .4byte gUnknown_8380000 _0803983C: .4byte gUnknown_203B3B8 _08039840: .4byte gUnknown_203B388 thumb_func_end sub_80397B4 thumb_func_start sub_8039844 sub_8039844: push {r4,r5,lr} bl sub_8011FA8 adds r5, r0, 0 movs r4, 0 movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _0803986A movs r0, 0x7 bl sub_8095324 cmp r0, 0 bne _0803986A bl sub_8011C1C cmp r0, 0x2 bne _08039872 _0803986A: ldr r0, _0803987C cmp r5, r0 bne _08039872 movs r4, 0x1 _08039872: adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0803987C: .4byte 0x000f1207 thumb_func_end sub_8039844 thumb_func_start sub_8039880 sub_8039880: push {r4,lr} movs r4, 0 movs r0, 0x1 bl sub_8095324 cmp r0, 0 bne _080398A0 movs r0, 0x7 bl sub_8095324 cmp r0, 0 bne _080398A0 bl sub_8011C1C cmp r0, 0x2 bne _080398A2 _080398A0: movs r4, 0x1 _080398A2: adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8039880 thumb_func_start sub_80398AC sub_80398AC: push {r4,r5,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _0803991C ldr r4, _08039920 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 movs r1, 0 movs r2, 0 adds r4, r5, 0 _080398D8: ldr r0, [r5] adds r0, 0x1 adds r0, r1 strb r2, [r0] adds r1, 0x1 cmp r1, 0x35 ble _080398D8 ldr r1, [r4] movs r3, 0x92 lsls r3, 3 adds r2, r1, r3 movs r0, 0x3 str r0, [r2] ldr r0, _08039924 adds r2, r1, r0 movs r0, 0x2 str r0, [r2] movs r0, 0x93 lsls r0, 3 adds r1, r0 movs r0, 0x1 strb r0, [r1] ldr r0, [r4] adds r0, r3 movs r1, 0x5 str r1, [r0] movs r0, 0x11 bl sub_803A1C0 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0803991C: .4byte gUnknown_203B3E8 _08039920: .4byte 0x0000049c _08039924: .4byte 0x00000494 thumb_func_end sub_80398AC thumb_func_start sub_8039928 sub_8039928: push {lr} ldr r0, _08039940 ldr r0, [r0] ldrb r0, [r0] subs r0, 0x4 cmp r0, 0xF bhi _080399DE lsls r0, 2 ldr r1, _08039944 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08039940: .4byte gUnknown_203B3E8 _08039944: .4byte _08039948 .align 2, 0 _08039948: .4byte _08039988 .4byte _0803998E .4byte _0803999E .4byte _080399AA .4byte _08039992 .4byte _080399A4 .4byte _080399C8 .4byte _080399DE .4byte _08039998 .4byte _080399B0 .4byte _080399B6 .4byte _080399BC .4byte _080399C2 .4byte _080399CE .4byte _080399D4 .4byte _080399DA _08039988: bl sub_8039A18 b _080399DE _0803998E: movs r0, 0x3 b _080399E0 _08039992: bl sub_8039AA8 b _080399DE _08039998: bl sub_8039B14 b _080399DE _0803999E: bl sub_8039B20 b _080399DE _080399A4: bl sub_8039B58 b _080399DE _080399AA: bl sub_8039D88 b _080399DE _080399B0: bl sub_8039D28 b _080399DE _080399B6: bl sub_8039D68 b _080399DE _080399BC: bl sub_8039DA4 b _080399DE _080399C2: bl sub_8039DCC b _080399DE _080399C8: bl sub_8039B3C b _080399DE _080399CE: bl sub_8039D0C b _080399DE _080399D4: bl sub_8039C60 b _080399DE _080399DA: bl sub_8039DE8 _080399DE: movs r0, 0 _080399E0: pop {r1} bx r1 thumb_func_end sub_8039928 thumb_func_start sub_80399E4 sub_80399E4: push {r4,lr} ldr r4, _08039A14 ldr r0, [r4] cmp r0, 0 beq _08039A0E bl MemoryFree movs r0, 0 str r0, [r4] bl sub_8030DE4 bl sub_801B450 bl sub_803084C bl sub_801CBB8 bl sub_80155F0 bl sub_8031E10 _08039A0E: pop {r4} pop {r0} bx r0 .align 2, 0 _08039A14: .4byte gUnknown_203B3E8 thumb_func_end sub_80399E4 thumb_func_start sub_8039A18 sub_8039A18: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039AA2 ldr r0, _08039A48 ldr r1, [r0] movs r2, 0x93 lsls r2, 2 adds r1, r2 movs r2, 0xA str r2, [r1] ldr r1, [sp] adds r2, r0, 0 cmp r1, 0x8 bhi _08039AA2 lsls r0, r1, 2 ldr r1, _08039A4C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08039A48: .4byte gUnknown_203B3E8 _08039A4C: .4byte _08039A50 .align 2, 0 _08039A50: .4byte _08039A9C .4byte _08039AA2 .4byte _08039AA2 .4byte _08039A74 .4byte _08039A74 .4byte _08039A88 .4byte _08039AA2 .4byte _08039AA2 .4byte _08039A9C _08039A74: ldr r0, [r2] movs r1, 0x92 lsls r1, 3 adds r0, r1 movs r1, 0x3 str r1, [r0] movs r0, 0x8 bl sub_803A1C0 b _08039AA2 _08039A88: ldr r0, [r2] movs r2, 0x92 lsls r2, 3 adds r0, r2 movs r1, 0x5 str r1, [r0] movs r0, 0x11 bl sub_803A1C0 b _08039AA2 _08039A9C: movs r0, 0x5 bl sub_803A1C0 _08039AA2: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039A18 thumb_func_start sub_8039AA8 sub_8039AA8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039B0E ldr r0, [sp] cmp r0, 0 beq _08039AE8 cmp r0, 0x6 bne _08039B0E ldr r0, _08039AD8 ldr r0, [r0] ldr r1, _08039ADC adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _08039AE0 movs r0, 0x2 bl sub_803A1C0 b _08039B0E .align 2, 0 _08039AD8: .4byte gUnknown_203B3E8 _08039ADC: .4byte 0x00000494 _08039AE0: movs r0, 0xC bl sub_803A1C0 b _08039B0E _08039AE8: ldr r0, _08039B00 ldr r0, [r0] ldr r1, _08039B04 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _08039B08 movs r0, 0x1 bl sub_803A1C0 b _08039B0E .align 2, 0 _08039B00: .4byte gUnknown_203B3E8 _08039B04: .4byte 0x00000494 _08039B08: movs r0, 0x4 bl sub_803A1C0 _08039B0E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039AA8 thumb_func_start sub_8039B14 sub_8039B14: push {lr} movs r0, 0x6 bl sub_803A1C0 pop {r0} bx r0 thumb_func_end sub_8039B14 thumb_func_start sub_8039B20 sub_8039B20: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039B34 movs r0, 0x9 bl sub_803A1C0 _08039B34: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039B20 thumb_func_start sub_8039B3C sub_8039B3C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039B50 movs r0, 0x4 bl sub_803A1C0 _08039B50: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039B3C thumb_func_start sub_8039B58 sub_8039B58: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039BA6 ldr r0, _08039B88 ldr r1, [r0] movs r2, 0x94 lsls r2, 2 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 bne _08039B9C subs r2, 0x4 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0x9 beq _08039B8C cmp r0, 0xA beq _08039B94 b _08039BA6 .align 2, 0 _08039B88: .4byte gUnknown_203B3E8 _08039B8C: movs r0, 0x7 bl sub_803A1C0 b _08039BA6 _08039B94: movs r0, 0xD bl sub_803A1C0 b _08039BA6 _08039B9C: bl sub_8039BAC movs r0, 0xA bl sub_803A1C0 _08039BA6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039B58 thumb_func_start sub_8039BAC sub_8039BAC: push {lr} cmp r0, 0xF bhi _08039C48 lsls r0, 2 ldr r1, _08039BBC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08039BBC: .4byte _08039BC0 .align 2, 0 _08039BC0: .4byte _08039C54 .4byte _08039C00 .4byte _08039C10 .4byte _08039C08 .4byte _08039C18 .4byte _08039C20 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C48 .4byte _08039C28 .4byte _08039C30 _08039C00: ldr r0, _08039C04 b _08039C32 .align 2, 0 _08039C04: .4byte gUnknown_80E7914 _08039C08: ldr r0, _08039C0C b _08039C32 .align 2, 0 _08039C0C: .4byte gUnknown_80E7938 _08039C10: ldr r0, _08039C14 b _08039C32 .align 2, 0 _08039C14: .4byte gUnknown_80E7994 _08039C18: ldr r0, _08039C1C b _08039C32 .align 2, 0 _08039C1C: .4byte gUnknown_80E79E4 _08039C20: ldr r0, _08039C24 b _08039C32 .align 2, 0 _08039C24: .4byte gUnknown_80E7914 _08039C28: ldr r0, _08039C2C b _08039C32 .align 2, 0 _08039C2C: .4byte gUnknown_80E7914 _08039C30: ldr r0, _08039C40 _08039C32: ldr r3, _08039C44 movs r1, 0 movs r2, 0 bl sub_80141B4 b _08039C54 .align 2, 0 _08039C40: .4byte gUnknown_80E7A48 _08039C44: .4byte 0x00000101 _08039C48: ldr r0, _08039C58 ldr r3, _08039C5C movs r1, 0 movs r2, 0 bl sub_80141B4 _08039C54: pop {r0} bx r0 .align 2, 0 _08039C58: .4byte gUnknown_80E7914 _08039C5C: .4byte 0x00000101 thumb_func_end sub_8039BAC thumb_func_start sub_8039C60 sub_8039C60: push {r4,r5,lr} bl sub_80154F0 adds r4, r0, 0 ldr r5, _08039CBC ldr r0, [r5] adds r0, 0x38 movs r1, 0 movs r2, 0x30 bl MemoryFill8 cmp r4, 0x2 beq _08039CE6 cmp r4, 0x3 bne _08039D04 bl sub_80155F0 bl sub_8004914 ldr r0, [r5] movs r1, 0xF6 lsls r1, 1 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r5] adds r0, r1, 0x1 adds r1, 0x38 bl sub_803D358 lsls r0, 24 cmp r0, 0 beq _08039CB4 ldr r0, [r5] adds r0, 0x38 bl sub_80959C0 lsls r0, 24 cmp r0, 0 bne _08039CC0 _08039CB4: movs r0, 0x13 bl sub_803A1C0 b _08039D04 .align 2, 0 _08039CBC: .4byte gUnknown_203B3E8 _08039CC0: ldr r0, [r5] movs r2, 0xF0 lsls r2, 2 adds r1, r0, r2 adds r0, 0x38 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r3,r4} stm r1!, {r3,r4} ldr r0, [r5] movs r1, 0x93 lsls r1, 3 adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r0, 0xD bl sub_803A1C0 b _08039D04 _08039CE6: bl sub_80155F0 bl sub_8004914 ldr r0, [r5] movs r2, 0xF6 lsls r2, 1 adds r0, r2 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x5 bl sub_803A1C0 _08039D04: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8039C60 thumb_func_start sub_8039D0C sub_8039D0C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039D20 movs r0, 0x12 bl sub_803A1C0 _08039D20: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039D0C thumb_func_start sub_8039D28 sub_8039D28: push {r4,r5,lr} bl sub_802D0E0 cmp r0, 0x3 bne _08039D62 bl sub_802D178 ldr r5, _08039D58 ldr r1, [r5] movs r4, 0x93 lsls r4, 3 adds r1, r4 strb r0, [r1] bl sub_802D184 ldr r0, [r5] adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _08039D5C movs r0, 0xE bl sub_803A1C0 b _08039D62 .align 2, 0 _08039D58: .4byte gUnknown_203B3E8 _08039D5C: movs r0, 0x10 bl sub_803A1C0 _08039D62: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8039D28 thumb_func_start sub_8039D68 sub_8039D68: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039D82 movs r0, 0xF bl sub_803A1C0 movs r0, 0 bl sub_8012574 _08039D82: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039D68 thumb_func_start sub_8039D88 sub_8039D88: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039D9C movs r0, 0x8 bl sub_803A1C0 _08039D9C: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039D88 thumb_func_start sub_8039DA4 sub_8039DA4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039DC6 bl sub_8012600 lsls r0, 24 cmp r0, 0 bne _08039DC6 bl sub_8012750 movs r0, 0x10 bl sub_803A1C0 _08039DC6: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039DA4 thumb_func_start sub_8039DCC sub_8039DCC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039DE0 movs r0, 0x5 bl sub_803A1C0 _08039DE0: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039DCC thumb_func_start sub_8039DE8 sub_8039DE8: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08039E0E ldr r0, [sp] cmp r0, 0 beq _08039E08 cmp r0, 0x6 bne _08039E0E movs r0, 0x11 bl sub_803A1C0 b _08039E0E _08039E08: movs r0, 0x5 bl sub_803A1C0 _08039E0E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8039DE8 thumb_func_start nullsub_54 nullsub_54: bx lr thumb_func_end nullsub_54 thumb_func_start sub_8039E18 sub_8039E18: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 ldr r1, _08039E38 ldr r0, [r1] ldrb r0, [r0] adds r6, r1, 0 cmp r0, 0x13 bls _08039E2E b _0803A1AA _08039E2E: lsls r0, 2 ldr r1, _08039E3C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08039E38: .4byte gUnknown_203B3E8 _08039E3C: .4byte _08039E40 .align 2, 0 _08039E40: .4byte _08039E90 .4byte _08039EB8 .4byte _0803A1AA .4byte _08039EC8 .4byte _08039EDC .4byte _0803A1AA .4byte _08039FF4 .4byte _08039FA4 .4byte _08039FCC .4byte _0803A00C .4byte _0803A1AA .4byte _0803A1AA .4byte _0803A1AA .4byte _08039F04 .4byte _08039F68 .4byte _0803A1AA .4byte _08039FAC .4byte _0803A152 .4byte _0803A168 .4byte _0803A18E _08039E90: ldr r0, _08039EB0 ldr r3, _08039EB4 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x1 bl sub_8014248 b _0803A1AA .align 2, 0 _08039EB0: .4byte gUnknown_80E7AC4 _08039EB4: .4byte gUnknown_80E786C _08039EB8: ldr r0, _08039EC0 ldr r3, _08039EC4 b _08039EE0 .align 2, 0 _08039EC0: .4byte gUnknown_80E7AE0 _08039EC4: .4byte gUnknown_80E7894 _08039EC8: bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_802EF48 b _0803A1AA _08039EDC: ldr r0, _08039EFC ldr r3, _08039F00 _08039EE0: movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x3 bl sub_8014248 b _0803A1AA .align 2, 0 _08039EFC: .4byte gUnknown_80E7B14 _08039F00: .4byte gUnknown_80E78D8 _08039F04: ldr r0, [r6] ldr r2, _08039F3C adds r1, r0, r2 movs r3, 0xF0 lsls r3, 2 adds r0, r3 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r4} stm r1!, {r2,r4} ldr r2, [r6] ldr r3, _08039F40 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0x4 bne _08039F44 movs r4, 0x91 lsls r4, 3 adds r1, r2, r4 subs r3, 0xA2 adds r0, r2, r3 str r0, [r1] adds r4, 0x4 adds r1, r2, r4 adds r3, 0x28 adds r0, r2, r3 str r0, [r1] b _08039F54 .align 2, 0 _08039F3C: .4byte 0x00000474 _08039F40: .4byte 0x00000476 _08039F44: movs r4, 0x91 lsls r4, 3 adds r0, r2, r4 movs r1, 0 str r1, [r0] ldr r3, _08039F60 adds r0, r2, r3 str r1, [r0] _08039F54: ldr r0, [r6] ldr r4, _08039F64 adds r0, r4 bl sub_802D098 b _0803A1AA .align 2, 0 _08039F60: .4byte 0x0000048c _08039F64: .4byte 0x00000474 _08039F68: ldr r1, [r6] movs r2, 0x93 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _08039F9C movs r3, 0x92 lsls r3, 3 adds r0, r1, r3 ldr r0, [r0] cmp r0, 0x4 bne _08039F84 b _0803A1AA _08039F84: cmp r0, 0x4 bgt _08039F8E cmp r0, 0x3 beq _08039F94 b _0803A1AA _08039F8E: cmp r0, 0x5 beq _08039F94 b _0803A1AA _08039F94: ldr r0, _08039F98 b _0803A154 .align 2, 0 _08039F98: .4byte gUnknown_80E7B48 _08039F9C: ldr r0, _08039FA0 b _0803A154 .align 2, 0 _08039FA0: .4byte gUnknown_80E7B48 _08039FA4: ldr r0, _08039FA8 b _0803A154 .align 2, 0 _08039FA8: .4byte gUnknown_80E7B68 _08039FAC: ldr r0, [r6] movs r4, 0x93 lsls r4, 3 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _08039FC4 ldr r0, _08039FC0 b _0803A154 .align 2, 0 _08039FC0: .4byte gUnknown_80E7B88 _08039FC4: ldr r0, _08039FC8 b _0803A154 .align 2, 0 _08039FC8: .4byte gUnknown_80E7BC8 _08039FCC: ldr r0, _08039FEC ldr r3, _08039FF0 movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x6 bl sub_8014248 b _0803A1AA .align 2, 0 _08039FEC: .4byte gUnknown_80E7BEC _08039FF0: .4byte gUnknown_80E78F8 _08039FF4: movs r0, 0 bl nullsub_23 ldr r0, _0803A008 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 b _0803A1AA .align 2, 0 _0803A008: .4byte gUnknown_80E7C48 _0803A00C: ldr r0, [r6] movs r1, 0x94 lsls r1, 2 mov r8, r1 add r0, r8 movs r1, 0 str r1, [r0] bl sub_8011830 ldr r0, [r6] movs r7, 0x93 lsls r7, 2 adds r0, r7 ldr r0, [r0] bl sub_8037B28 ldr r2, [r6] mov r3, r8 adds r1, r2, r3 str r0, [r1] cmp r0, 0 beq _0803A03A b _0803A14C _0803A03A: adds r4, r7, 0 adds r0, r2, r4 ldr r0, [r0] cmp r0, 0x9 beq _0803A04A cmp r0, 0xA beq _0803A0AA b _0803A0DE _0803A04A: movs r5, 0x95 lsls r5, 2 adds r0, r2, r5 movs r1, 0 movs r2, 0xB4 bl MemoryFill8 ldr r0, [r6] movs r1, 0xEF lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_803B344 adds r4, r0, 0 ldr r1, [r4, 0x14] cmp r1, 0 beq _0803A08C ldr r0, [r6] movs r2, 0x9A lsls r2, 2 adds r0, r2 movs r2, 0x28 bl MemoryCopy8 ldr r0, [r6] movs r3, 0xA4 lsls r3, 2 adds r0, r3 ldr r1, [r4, 0x18] movs r2, 0x78 bl MemoryCopy8 _0803A08C: ldr r1, [r6] adds r1, r5 adds r0, r4, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r4} stm r1!, {r2,r4} ldr r2, [r6] adds r0, r2, r7 ldr r0, [r0] adds r1, r2, r5 movs r3, 0xC2 lsls r3, 2 adds r2, r3 b _0803A0D4 _0803A0AA: movs r4, 0x95 lsls r4, 2 adds r0, r2, r4 movs r1, 0 movs r2, 0xB4 bl MemoryFill8 ldr r0, [r6] movs r5, 0xC2 lsls r5, 2 adds r0, r5 movs r1, 0 movs r2, 0xB4 bl MemoryFill8 ldr r2, [r6] adds r0, r2, r7 ldr r0, [r0] adds r4, r2, r4 adds r2, r5 adds r1, r4, 0 _0803A0D4: bl sub_8037D64 ldr r1, [r6] add r1, r8 str r0, [r1] _0803A0DE: ldr r4, _0803A134 ldr r2, [r4] movs r5, 0x94 lsls r5, 2 adds r0, r2, r5 ldr r0, [r0] cmp r0, 0 bne _0803A14C movs r1, 0x93 lsls r1, 2 adds r0, r2, r1 ldr r0, [r0] cmp r0, 0xA bhi _0803A14C cmp r0, 0x9 bcc _0803A14C movs r3, 0x95 lsls r3, 2 adds r1, r2, r3 adds r3, 0xB4 adds r2, r3 bl sub_80381F4 ldr r1, [r4] adds r1, r5 str r0, [r1] bl sub_800D588 lsls r0, 24 cmp r0, 0 beq _0803A138 ldr r1, [r4] movs r4, 0xF0 lsls r4, 2 adds r0, r1, r4 movs r2, 0xC2 lsls r2, 2 adds r1, r2 movs r2, 0xB4 bl memcpy b _0803A14C .align 2, 0 _0803A134: .4byte gUnknown_203B3E8 _0803A138: ldr r1, [r4] movs r3, 0xF0 lsls r3, 2 adds r0, r1, r3 movs r4, 0x95 lsls r4, 2 adds r1, r4 movs r2, 0xB4 bl memcpy _0803A14C: bl sub_8011854 b _0803A1AA _0803A152: ldr r0, _0803A160 _0803A154: ldr r3, _0803A164 movs r1, 0 movs r2, 0 bl sub_80141B4 b _0803A1AA .align 2, 0 _0803A160: .4byte gUnknown_80E7C98 _0803A164: .4byte 0x00000101 _0803A168: ldr r0, [r6] movs r1, 0xF6 lsls r1, 1 adds r0, r1 bl sub_8006518 bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, [r6] adds r1, 0x1 movs r0, 0x5 bl sub_80151C0 b _0803A1AA _0803A18E: ldr r0, _0803A1B8 ldr r3, _0803A1BC movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFD str r1, [sp, 0x10] movs r1, 0 movs r2, 0x6 bl sub_8014248 _0803A1AA: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803A1B8: .4byte gUnknown_80E7CC4 _0803A1BC: .4byte gUnknown_80E78F8 thumb_func_end sub_8039E18 thumb_func_start sub_803A1C0 sub_803A1C0: push {lr} ldr r1, _0803A1D4 ldr r1, [r1] strb r0, [r1] bl nullsub_54 bl sub_8039E18 pop {r0} bx r0 .align 2, 0 _0803A1D4: .4byte gUnknown_203B3E8 thumb_func_end sub_803A1C0 thumb_func_start sub_803A1D8 sub_803A1D8: movs r0, 0x1 bx lr thumb_func_end sub_803A1D8 thumb_func_start sub_803A1DC sub_803A1DC: movs r0, 0 bx lr thumb_func_end sub_803A1DC thumb_func_start nullsub_55 nullsub_55: bx lr thumb_func_end nullsub_55 thumb_func_start sub_803A1E4 sub_803A1E4: movs r0, 0x1 bx lr thumb_func_end sub_803A1E4 thumb_func_start sub_803A1E8 sub_803A1E8: movs r0, 0x2 bx lr thumb_func_end sub_803A1E8 thumb_func_start sub_803A1EC sub_803A1EC: push {lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 thumb_func_end sub_803A1EC thumb_func_start sub_803A200 sub_803A200: push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, _0803A270 ldr r0, [r5] cmp r0, 0 bne _0803A224 movs r4, 0xD2 lsls r4, 1 adds r0, r4, 0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 adds r2, r4, 0 bl MemoryFill8 _0803A224: mov r12, r5 movs r0, 0xA0 lsls r0, 1 mov r8, r0 ldr r4, _0803A274 movs r3, 0 movs r2, 0x3 _0803A232: mov r5, r12 ldr r1, [r5] adds r1, r3 add r1, r8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0803A232 bl sub_8004914 ldr r0, _0803A270 ldr r0, [r0] movs r6, 0xA0 lsls r6, 1 adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl SetDebugMenuItems pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803A270: .4byte gUnknown_203B3EC _0803A274: .4byte gUnknown_80E7D40 thumb_func_end sub_803A200 thumb_func_start sub_803A278 sub_803A278: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0803A2A0 ldr r0, [r4] cmp r0, 0 beq _0803A298 bl MemoryFree movs r0, 0 str r0, [r4] _0803A298: pop {r4} pop {r0} bx r0 .align 2, 0 _0803A2A0: .4byte gUnknown_203B3EC thumb_func_end sub_803A278 thumb_func_start sub_803A2A4 sub_803A2A4: push {r4,r5,lr} sub sp, 0x4 ldr r4, _0803A2D4 movs r0, 0xB str r0, [sp] ldr r5, _0803A2D8 ldr r0, [r5] bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0803A2C4 ldr r0, [r5] mov r1, sp bl sub_8013114 _0803A2C4: ldr r0, [sp] cmp r0, 0xB bhi _0803A34E lsls r0, 2 ldr r1, _0803A2DC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A2D4: .4byte 0x0000ffdc _0803A2D8: .4byte gUnknown_203B3EC _0803A2DC: .4byte _0803A2E0 .align 2, 0 _0803A2E0: .4byte _0803A310 .4byte _0803A314 .4byte _0803A318 .4byte _0803A31C .4byte _0803A320 .4byte _0803A324 .4byte _0803A328 .4byte _0803A34E .4byte _0803A34E .4byte _0803A330 .4byte _0803A344 .4byte _0803A34C _0803A310: movs r4, 0x2F b _0803A34E _0803A314: movs r4, 0x30 b _0803A34E _0803A318: movs r4, 0x31 b _0803A34E _0803A31C: movs r4, 0x32 b _0803A34E _0803A320: movs r4, 0x33 b _0803A34E _0803A324: movs r4, 0x34 b _0803A34E _0803A328: bl sub_803A3BC movs r4, 0x1 b _0803A34E _0803A330: movs r4, 0 _0803A332: lsls r0, r4, 24 lsrs r0, 24 bl sub_80976F8 adds r4, 0x1 cmp r4, 0x1F ble _0803A332 movs r4, 0x1 b _0803A34E _0803A344: bl sub_803A3A0 movs r4, 0x1 b _0803A34E _0803A34C: ldr r4, _0803A358 _0803A34E: adds r0, r4, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0803A358: .4byte 0x0000ffdc thumb_func_end sub_803A2A4 thumb_func_start SetDebugMenuItems SetDebugMenuItems: push {r4,lr} sub sp, 0x10 ldr r4, _0803A394 ldr r0, [r4] movs r2, 0xA0 lsls r2, 1 adds r1, r0, r2 ldr r3, _0803A398 ldr r2, _0803A39C str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0xD str r2, [sp, 0x8] movs r2, 0 str r2, [sp, 0xC] bl SetMenuItems ldr r0, [r4] movs r1, 0 movs r2, 0x1 bl sub_8035CF4 add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _0803A394: .4byte gUnknown_203B3EC _0803A398: .4byte gUnknown_80E7D58 _0803A39C: .4byte gUnknown_80E7D70 thumb_func_end SetDebugMenuItems thumb_func_start sub_803A3A0 sub_803A3A0: push {lr} ldr r0, _0803A3B8 ldr r0, [r0] movs r1, 0xA0 lsls r1, 1 adds r0, r1 movs r1, 0 bl sub_8035CC0 pop {r0} bx r0 .align 2, 0 _0803A3B8: .4byte gUnknown_203B3EC thumb_func_end sub_803A3A0 thumb_func_start sub_803A3BC sub_803A3BC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x84 movs r5, 0x1 add r4, sp, 0x60 add r6, sp, 0x68 add r0, sp, 0x7C mov r8, r0 add r0, sp, 0x80 mov r10, r0 _0803A3D6: lsls r0, r5, 24 lsrs r0, 24 bl sub_80925EC adds r5, 0x1 cmp r5, 0x39 ble _0803A3D6 movs r5, 0 adds r7, r4, 0 _0803A3E8: movs r0, 0 mov r9, r0 ldr r0, _0803A454 str r0, [sp, 0x7C] adds r5, 0x1 lsls r4, r5, 16 asrs r4, 16 adds r0, r7, 0 movs r1, 0 movs r2, 0x8 bl memset movs r0, 0x27 strh r0, [r7] adds r0, r6, 0 adds r1, r4, 0 bl sub_808D8BC adds r0, r6, 0 adds r1, r6, 0 bl sub_80922F4 movs r0, 0x40 strb r0, [r6] mov r0, r8 str r0, [sp] str r7, [sp, 0x4] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r6, 0 movs r3, 0x43 bl sub_808CFD0 add r0, sp, 0x8 bl sub_808D1DC ldr r0, _0803A458 cmp r5, r0 ble _0803A3E8 mov r0, r9 str r0, [sp, 0x80] mov r0, r10 movs r1, 0x1 bl sub_801203C add sp, 0x84 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803A454: .4byte 0x00001006 _0803A458: .4byte 0x0000012b thumb_func_end sub_803A3BC thumb_func_start sub_803A45C sub_803A45C: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0803A488 movs r0, 0x9C lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r0, 0 bl sub_803A504 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0803A488: .4byte gUnknown_203B3F0 thumb_func_end sub_803A45C thumb_func_start sub_803A48C sub_803A48C: push {lr} ldr r0, _0803A4A4 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x5 bhi _0803A4E0 lsls r0, 2 ldr r1, _0803A4A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A4A4: .4byte gUnknown_203B3F0 _0803A4A8: .4byte _0803A4AC .align 2, 0 _0803A4AC: .4byte _0803A4C4 .4byte _0803A4C4 .4byte _0803A4CA .4byte _0803A4D0 .4byte _0803A4D6 .4byte _0803A4DC _0803A4C4: bl sub_803A740 b _0803A4E0 _0803A4CA: bl sub_803A7B0 b _0803A4E0 _0803A4D0: bl sub_803A810 b _0803A4E0 _0803A4D6: bl sub_803A86C b _0803A4E0 _0803A4DC: movs r0, 0x3 b _0803A4E2 _0803A4E0: movs r0, 0 _0803A4E2: pop {r1} bx r1 thumb_func_end sub_803A48C thumb_func_start sub_803A4E8 sub_803A4E8: push {r4,lr} ldr r4, _0803A500 ldr r0, [r4] cmp r0, 0 beq _0803A4FA bl MemoryFree movs r0, 0 str r0, [r4] _0803A4FA: pop {r4} pop {r0} bx r0 .align 2, 0 _0803A500: .4byte gUnknown_203B3F0 thumb_func_end sub_803A4E8 thumb_func_start sub_803A504 sub_803A504: push {lr} ldr r1, _0803A518 ldr r1, [r1] str r0, [r1] bl sub_803A51C bl sub_803A5A0 pop {r0} bx r0 .align 2, 0 _0803A518: .4byte gUnknown_203B3F0 thumb_func_end sub_803A504 thumb_func_start sub_803A51C sub_803A51C: push {r4-r7,lr} ldr r4, _0803A53C ldr r0, [r4] adds r0, 0xD8 bl sub_8006518 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x2 beq _0803A544 cmp r0, 0x3 bne _0803A55C adds r1, 0xF0 ldr r0, _0803A540 b _0803A54C .align 2, 0 _0803A53C: .4byte gUnknown_203B3F0 _0803A540: .4byte gUnknown_80E7E64 _0803A544: movs r0, 0x84 lsls r0, 1 adds r1, r0 ldr r0, _0803A558 _0803A54C: ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _0803A57E .align 2, 0 _0803A558: .4byte gUnknown_80E7E4C _0803A55C: mov r12, r4 ldr r4, _0803A598 movs r3, 0 movs r2, 0x3 _0803A564: mov r0, r12 ldr r1, [r0] adds r1, r3 adds r1, 0xD8 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0803A564 _0803A57E: bl sub_8004914 ldr r0, _0803A59C ldr r0, [r0] adds r0, 0xD8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803A598: .4byte gUnknown_80E7E34 _0803A59C: .4byte gUnknown_203B3F0 thumb_func_end sub_803A51C thumb_func_start sub_803A5A0 sub_803A5A0: push {lr} sub sp, 0xC ldr r1, _0803A5BC ldr r0, [r1] ldr r0, [r0] adds r2, r1, 0 cmp r0, 0x5 bhi _0803A68A lsls r0, 2 ldr r1, _0803A5C0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A5BC: .4byte gUnknown_203B3F0 _0803A5C0: .4byte _0803A5C4 .align 2, 0 _0803A5C4: .4byte _0803A5DC .4byte _0803A5EA .4byte _0803A5F2 .4byte _0803A61C .4byte _0803A678 .4byte _0803A68A _0803A5DC: movs r0, 0x2 movs r1, 0x3 movs r2, 0 movs r3, 0xA bl sub_801C8C4 b _0803A68A _0803A5EA: movs r0, 0x1 bl sub_801CB5C b _0803A68A _0803A5F2: bl sub_801CCD8 bl sub_803A6F0 ldr r0, _0803A618 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x4C adds r1, r2, 0 adds r1, 0xC ldr r2, [r2, 0x8] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0803A68A .align 2, 0 _0803A618: .4byte gUnknown_203B3F0 _0803A61C: ldr r3, [r2] adds r1, r3, 0 adds r1, 0xAC movs r0, 0x3 str r0, [r1] subs r1, 0x8 movs r0, 0 str r0, [r1] adds r1, 0x4 ldr r0, _0803A670 str r0, [r1] adds r2, r3, 0 adds r2, 0xA0 ldr r0, _0803A674 ldr r1, [r0] ldrb r0, [r3, 0x4] lsls r0, 1 adds r1, 0x50 adds r1, r0 ldrh r0, [r1] str r0, [r2] adds r1, r3, 0 adds r1, 0xB0 movs r0, 0x1 str r0, [r1] adds r1, 0x4 adds r0, r3, 0 adds r0, 0xF0 str r0, [r1] adds r1, 0x4 movs r0, 0x2C str r0, [r1] adds r1, 0x4 movs r0, 0x12 str r0, [r1] adds r0, r3, 0 adds r0, 0x9C bl sub_8013AA0 bl sub_803A690 b _0803A68A .align 2, 0 _0803A670: .4byte 0x000003e7 _0803A674: .4byte gUnknown_203B460 _0803A678: ldr r0, [r2] ldrb r1, [r0, 0x4] add r0, sp, 0x8 movs r2, 0 bl sub_8090A8C add r0, sp, 0x8 bl sub_801B3C0 _0803A68A: add sp, 0xC pop {r0} bx r0 thumb_func_end sub_803A5A0 thumb_func_start sub_803A690 sub_803A690: push {r4,lr} sub sp, 0x4 ldr r4, _0803A6E8 ldr r0, [r4] adds r0, 0xB0 ldr r0, [r0] bl sub_8008C54 ldr r0, [r4] adds r0, 0xB0 ldr r0, [r0] bl sub_80073B8 ldr r2, _0803A6EC ldr r0, [r4] adds r0, 0xB0 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r1, 0 bl xxx_call_draw_string ldr r0, [r4] adds r0, 0x9C bl sub_8013C68 ldr r0, [r4] adds r0, 0xB0 ldr r0, [r0] bl sub_80073E0 bl sub_801CCD8 ldr r0, [r4] adds r0, 0x4C movs r1, 0 bl sub_8012EA4 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803A6E8: .4byte gUnknown_203B3F0 _0803A6EC: .4byte gUnknown_80E7E7C thumb_func_end sub_803A690 thumb_func_start sub_803A6F0 sub_803A6F0: push {r4,lr} ldr r4, _0803A734 ldr r1, [r4] ldr r0, _0803A738 str r0, [r1, 0xC] movs r0, 0x2 str r0, [r1, 0x10] str r0, [r1, 0x8] ldrb r0, [r1, 0x4] bl sub_8091524 lsls r0, 24 cmp r0, 0 bne _0803A718 ldr r0, [r4] movs r1, 0x1 negs r1, r1 str r1, [r0, 0x10] movs r1, 0x3 str r1, [r0, 0x8] _0803A718: ldr r1, [r4] movs r2, 0x1 ldr r0, _0803A73C ldr r0, [r0] str r0, [r1, 0x14] movs r0, 0x3 str r0, [r1, 0x18] movs r0, 0 str r0, [r1, 0x1C] str r2, [r1, 0x20] pop {r4} pop {r0} bx r0 .align 2, 0 _0803A734: .4byte gUnknown_203B3F0 _0803A738: .4byte gUnknown_80E7E7C _0803A73C: .4byte gUnknown_80D4970 thumb_func_end sub_803A6F0 thumb_func_start sub_803A740 sub_803A740: push {lr} movs r0, 0x1 bl sub_801CA08 cmp r0, 0x4 bhi _0803A7AA lsls r0, 2 ldr r1, _0803A758 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A758: .4byte _0803A75C .align 2, 0 _0803A75C: .4byte _0803A7AA .4byte _0803A7AA .4byte _0803A7A0 .4byte _0803A770 .4byte _0803A788 _0803A770: bl sub_801CB24 ldr r1, _0803A784 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x2 bl sub_803A504 b _0803A7AA .align 2, 0 _0803A784: .4byte gUnknown_203B3F0 _0803A788: bl sub_801CB24 ldr r1, _0803A79C ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x4 bl sub_803A504 b _0803A7AA .align 2, 0 _0803A79C: .4byte gUnknown_203B3F0 _0803A7A0: bl sub_801CBB8 movs r0, 0x5 bl sub_803A504 _0803A7AA: pop {r0} bx r0 thumb_func_end sub_803A740 thumb_func_start sub_803A7B0 sub_803A7B0: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801CA08 ldr r4, _0803A7E8 ldr r0, [r4] adds r0, 0x4C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0803A7D6 ldr r0, [r4] adds r0, 0x4C mov r1, sp bl sub_8013114 _0803A7D6: ldr r0, [sp] cmp r0, 0x2 beq _0803A7F2 cmp r0, 0x2 bgt _0803A7EC cmp r0, 0x1 beq _0803A802 b _0803A808 .align 2, 0 _0803A7E8: .4byte gUnknown_203B3F0 _0803A7EC: cmp r0, 0x3 beq _0803A7FA b _0803A808 _0803A7F2: movs r0, 0x3 bl sub_803A504 b _0803A808 _0803A7FA: movs r0, 0x4 bl sub_803A504 b _0803A808 _0803A802: movs r0, 0x1 bl sub_803A504 _0803A808: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_803A7B0 thumb_func_start sub_803A810 sub_803A810: push {r4,lr} movs r0, 0 bl sub_801CA08 ldr r4, _0803A838 ldr r0, [r4] adds r0, 0x4C bl sub_8012FD8 ldr r0, [r4] adds r0, 0x9C bl sub_8013BBC cmp r0, 0x2 beq _0803A854 cmp r0, 0x2 bhi _0803A83C cmp r0, 0x1 beq _0803A860 b _0803A864 .align 2, 0 _0803A838: .4byte gUnknown_203B3F0 _0803A83C: cmp r0, 0x3 bne _0803A864 ldr r0, _0803A85C ldr r2, [r0] ldr r1, [r4] ldrb r0, [r1, 0x4] lsls r0, 1 adds r2, 0x50 adds r2, r0 adds r1, 0x9C ldr r0, [r1] strh r0, [r2] _0803A854: movs r0, 0x1 bl sub_803A504 b _0803A864 .align 2, 0 _0803A85C: .4byte gUnknown_203B460 _0803A860: bl sub_803A690 _0803A864: pop {r4} pop {r0} bx r0 thumb_func_end sub_803A810 thumb_func_start sub_803A86C sub_803A86C: push {lr} bl sub_801B410 cmp r0, 0x1 bls _0803A884 cmp r0, 0x3 bhi _0803A884 bl sub_801B450 movs r0, 0x1 bl sub_803A504 _0803A884: pop {r0} bx r0 thumb_func_end sub_803A86C thumb_func_start sub_803A888 sub_803A888: push {r4,lr} bl sub_8004914 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _0803A8B4 movs r0, 0xFC movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r0, 0 bl sub_803A924 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0803A8B4: .4byte gUnknown_203B3F4 thumb_func_end sub_803A888 thumb_func_start sub_803A8B8 sub_803A8B8: push {lr} ldr r0, _0803A8D0 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x4 bhi _0803A902 lsls r0, 2 ldr r1, _0803A8D4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A8D0: .4byte gUnknown_203B3F4 _0803A8D4: .4byte _0803A8D8 .align 2, 0 _0803A8D8: .4byte _0803A8EC .4byte _0803A8EC .4byte _0803A8F2 .4byte _0803A8F8 .4byte _0803A8FE _0803A8EC: bl sub_803AAC4 b _0803A902 _0803A8F2: bl sub_803AB34 b _0803A902 _0803A8F8: bl sub_803ABAC b _0803A902 _0803A8FE: movs r0, 0x3 b _0803A904 _0803A902: movs r0, 0 _0803A904: pop {r1} bx r1 thumb_func_end sub_803A8B8 thumb_func_start sub_803A908 sub_803A908: push {r4,lr} ldr r4, _0803A920 ldr r0, [r4] cmp r0, 0 beq _0803A91A bl MemoryFree movs r0, 0 str r0, [r4] _0803A91A: pop {r4} pop {r0} bx r0 .align 2, 0 _0803A920: .4byte gUnknown_203B3F4 thumb_func_end sub_803A908 thumb_func_start sub_803A924 sub_803A924: push {lr} ldr r1, _0803A938 ldr r1, [r1] str r0, [r1] bl sub_803A93C bl sub_803A9AC pop {r0} bx r0 .align 2, 0 _0803A938: .4byte gUnknown_203B3F4 thumb_func_end sub_803A924 thumb_func_start sub_803A93C sub_803A93C: push {r4-r7,lr} ldr r4, _0803A960 ldr r0, [r4] adds r0, 0x9C bl sub_8006518 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x2 bne _0803A968 adds r1, 0xCC ldr r0, _0803A964 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _0803A98A .align 2, 0 _0803A960: .4byte gUnknown_203B3F4 _0803A964: .4byte gUnknown_80E7EA4 _0803A968: mov r12, r4 ldr r4, _0803A9A4 movs r3, 0 movs r2, 0x3 _0803A970: mov r0, r12 ldr r1, [r0] adds r1, r3 adds r1, 0x9C adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _0803A970 _0803A98A: bl sub_8004914 ldr r0, _0803A9A8 ldr r0, [r0] adds r0, 0x9C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803A9A4: .4byte gUnknown_80E7E8C _0803A9A8: .4byte gUnknown_203B3F4 thumb_func_end sub_803A93C thumb_func_start sub_803A9AC sub_803A9AC: push {lr} sub sp, 0x8 ldr r1, _0803A9C8 ldr r0, [r1] ldr r0, [r0] adds r2, r1, 0 cmp r0, 0x4 bhi _0803AA2C lsls r0, 2 ldr r1, _0803A9CC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A9C8: .4byte gUnknown_203B3F4 _0803A9CC: .4byte _0803A9D0 .align 2, 0 _0803A9D0: .4byte _0803A9E4 .4byte _0803A9EE .4byte _0803A9F6 .4byte _0803AA20 .4byte _0803AA2C _0803A9E4: movs r0, 0 movs r1, 0x3 bl sub_80211AC b _0803AA2C _0803A9EE: movs r0, 0x1 bl sub_8021354 b _0803AA2C _0803A9F6: bl sub_8021494 bl sub_803AA34 ldr r0, _0803AA1C ldr r2, [r0] adds r0, r2, 0 adds r0, 0x4C adds r1, r2, 0 adds r1, 0xC ldr r2, [r2, 0x8] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _0803AA2C .align 2, 0 _0803AA1C: .4byte gUnknown_203B3F4 _0803AA20: ldr r0, [r2] ldrb r0, [r0, 0x4] movs r1, 0x1 movs r2, 0 bl sub_8021774 _0803AA2C: add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_803A9AC thumb_func_start sub_803AA34 sub_803AA34: push {r4,r5,lr} movs r4, 0 ldr r0, _0803AA64 ldr r1, [r0] ldr r2, _0803AA68 ldr r3, [r2] ldrb r0, [r3, 0x4] adds r1, r0 ldrb r0, [r1] adds r5, r2, 0 cmp r0, 0 beq _0803AA7A ldr r0, _0803AA6C str r0, [r3, 0xC] bl sub_803ABC8 lsls r0, 24 cmp r0, 0 beq _0803AA70 ldr r1, [r5] movs r0, 0x3 str r0, [r1, 0x10] b _0803AA82 .align 2, 0 _0803AA64: .4byte gUnknown_203B468 _0803AA68: .4byte gUnknown_203B3F4 _0803AA6C: .4byte gUnknown_80E7EBC _0803AA70: ldr r1, [r5] movs r0, 0x1 negs r0, r0 str r0, [r1, 0x10] b _0803AA82 _0803AA7A: ldr r0, _0803AABC str r0, [r3, 0xC] movs r0, 0x2 str r0, [r3, 0x10] _0803AA82: adds r4, 0x1 ldr r5, [r5] mov r12, r5 lsls r1, r4, 3 mov r3, r12 adds r3, 0xC adds r2, r3, r1 ldr r0, _0803AAC0 ldr r0, [r0] str r0, [r2] mov r2, r12 adds r2, 0x10 adds r1, r2, r1 movs r0, 0x4 str r0, [r1] adds r4, 0x1 lsls r1, r4, 3 adds r3, r1 movs r0, 0 str r0, [r3] adds r2, r1 movs r0, 0x1 str r0, [r2] mov r1, r12 ldr r0, [r1, 0x10] str r0, [r1, 0x8] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803AABC: .4byte gUnknown_80E7EC4 _0803AAC0: .4byte gUnknown_80D4970 thumb_func_end sub_803AA34 thumb_func_start sub_803AAC4 sub_803AAC4: push {lr} movs r0, 0x1 bl sub_8021274 cmp r0, 0x4 bhi _0803AB2E lsls r0, 2 ldr r1, _0803AADC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803AADC: .4byte _0803AAE0 .align 2, 0 _0803AAE0: .4byte _0803AB2E .4byte _0803AB2E .4byte _0803AB24 .4byte _0803AAF4 .4byte _0803AB0C _0803AAF4: bl sub_802132C ldr r1, _0803AB08 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x2 bl sub_803A924 b _0803AB2E .align 2, 0 _0803AB08: .4byte gUnknown_203B3F4 _0803AB0C: bl sub_802132C ldr r1, _0803AB20 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x3 bl sub_803A924 b _0803AB2E .align 2, 0 _0803AB20: .4byte gUnknown_203B3F4 _0803AB24: bl sub_80213A0 movs r0, 0x4 bl sub_803A924 _0803AB2E: pop {r0} bx r0 thumb_func_end sub_803AAC4 thumb_func_start sub_803AB34 sub_803AB34: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_8021274 ldr r4, _0803AB6C ldr r0, [r4] adds r0, 0x4C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0803AB5A ldr r0, [r4] adds r0, 0x4C mov r1, sp bl sub_8013114 _0803AB5A: ldr r0, [sp] cmp r0, 0x2 beq _0803AB7A cmp r0, 0x2 bgt _0803AB70 cmp r0, 0x1 beq _0803AB9E b _0803ABA4 .align 2, 0 _0803AB6C: .4byte gUnknown_203B3F4 _0803AB70: cmp r0, 0x3 beq _0803AB84 cmp r0, 0x4 beq _0803AB96 b _0803ABA4 _0803AB7A: ldr r0, [r4] ldrb r0, [r0, 0x4] bl sub_80925EC b _0803AB8E _0803AB84: ldr r0, [r4] ldrb r0, [r0, 0x4] movs r1, 0x1 bl sub_809249C _0803AB8E: movs r0, 0x1 bl sub_803A924 b _0803ABA4 _0803AB96: movs r0, 0x3 bl sub_803A924 b _0803ABA4 _0803AB9E: movs r0, 0x1 bl sub_803A924 _0803ABA4: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_803AB34 thumb_func_start sub_803ABAC sub_803ABAC: push {lr} bl sub_80217EC cmp r0, 0x1 bls _0803ABC4 cmp r0, 0x3 bhi _0803ABC4 bl sub_8021830 movs r0, 0x1 bl sub_803A924 _0803ABC4: pop {r0} bx r0 thumb_func_end sub_803ABAC thumb_func_start sub_803ABC8 sub_803ABC8: push {r4-r6,lr} movs r5, 0 movs r6, 0x1 _0803ABCE: ldr r2, _0803AC08 movs r0, 0x58 adds r1, r5, 0 muls r1, r0 ldr r0, [r2] adds r2, r0, r1 ldrh r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0803AC10 lsrs r0, r1, 1 ands r0, r6 cmp r0, 0 beq _0803AC10 ldr r0, _0803AC0C ldr r4, [r0] movs r1, 0x8 ldrsh r0, [r2, r1] bl sub_808DBA8 ldrb r1, [r4, 0x4] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _0803AC10 movs r0, 0 b _0803AC1C .align 2, 0 _0803AC08: .4byte gUnknown_203B45C _0803AC0C: .4byte gUnknown_203B3F4 _0803AC10: adds r5, 0x1 movs r0, 0xCE lsls r0, 1 cmp r5, r0 ble _0803ABCE movs r0, 0x1 _0803AC1C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_803ABC8 thumb_func_start sub_803AC24 sub_803AC24: push {r4,lr} ldr r4, _0803AC44 movs r0, 0xA0 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r0, 0 bl sub_803ACD0 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0803AC44: .4byte gUnknown_203B3F8 thumb_func_end sub_803AC24 thumb_func_start sub_803AC48 sub_803AC48: push {lr} ldr r0, _0803AC60 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x7 bhi _0803ACA8 lsls r0, 2 ldr r1, _0803AC64 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803AC60: .4byte gUnknown_203B3F8 _0803AC64: .4byte _0803AC68 .align 2, 0 _0803AC68: .4byte _0803AC88 .4byte _0803AC90 .4byte _0803AC90 .4byte _0803AC96 .4byte _0803ACA8 .4byte _0803AC9C .4byte _0803ACA2 .4byte _0803ACA8 _0803AC88: movs r0, 0x1 bl sub_803ACD0 b _0803ACAC _0803AC90: bl sub_803AF38 b _0803ACAC _0803AC96: bl sub_803AF88 b _0803ACAC _0803AC9C: bl sub_803AFE8 b _0803ACAC _0803ACA2: bl sub_803B034 b _0803ACAC _0803ACA8: movs r0, 0x3 b _0803ACAE _0803ACAC: movs r0, 0 _0803ACAE: pop {r1} bx r1 thumb_func_end sub_803AC48 thumb_func_start sub_803ACB4 sub_803ACB4: push {r4,lr} ldr r4, _0803ACCC ldr r0, [r4] cmp r0, 0 beq _0803ACC6 bl MemoryFree movs r0, 0 str r0, [r4] _0803ACC6: pop {r4} pop {r0} bx r0 .align 2, 0 _0803ACCC: .4byte gUnknown_203B3F8 thumb_func_end sub_803ACB4 thumb_func_start sub_803ACD0 sub_803ACD0: push {lr} ldr r1, _0803ACE4 ldr r1, [r1] str r0, [r1] bl sub_803ACE8 bl sub_803AD88 pop {r0} bx r0 .align 2, 0 _0803ACE4: .4byte gUnknown_203B3F8 thumb_func_end sub_803ACD0 thumb_func_start sub_803ACE8 sub_803ACE8: push {r4-r7,lr} ldr r4, _0803AD08 ldr r0, [r4] adds r0, 0xE0 bl sub_8006518 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x3 beq _0803AD10 cmp r0, 0x5 beq _0803AD38 movs r2, 0 ldr r3, _0803AD0C b _0803AD50 .align 2, 0 _0803AD08: .4byte gUnknown_203B3F8 _0803AD0C: .4byte gUnknown_80E7ED4 _0803AD10: bl sub_803AEB0 ldr r2, [r4] movs r0, 0x88 lsls r0, 1 adds r2, r0 ldr r1, _0803AD34 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldr r1, [r4] adds r0, r1, r0 adds r1, 0x90 bl sub_8012CAC b _0803AD6C .align 2, 0 _0803AD34: .4byte gUnknown_80E7EEC _0803AD38: movs r6, 0x94 lsls r6, 1 adds r1, r6 ldr r0, _0803AD4C ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r4-r6} stm r1!, {r4-r6} b _0803AD6C .align 2, 0 _0803AD4C: .4byte gUnknown_80E7F04 _0803AD50: ldr r0, [r4] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r0, r1 adds r0, 0xE0 adds r1, r3, 0 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} adds r2, 0x1 cmp r2, 0x3 ble _0803AD50 _0803AD6C: bl sub_8004914 ldr r0, _0803AD84 ldr r0, [r0] adds r0, 0xE0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803AD84: .4byte gUnknown_203B3F8 thumb_func_end sub_803ACE8 thumb_func_start sub_803AD88 sub_803AD88: push {lr} sub sp, 0x8 ldr r1, _0803ADA4 ldr r0, [r1] ldr r0, [r0] adds r2, r1, 0 cmp r0, 0x7 bhi _0803AE50 lsls r0, 2 ldr r1, _0803ADA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803ADA4: .4byte gUnknown_203B3F8 _0803ADA8: .4byte _0803ADAC .align 2, 0 _0803ADAC: .4byte _0803AE50 .4byte _0803ADCC .4byte _0803ADDA .4byte _0803ADE2 .4byte _0803AE50 .4byte _0803AE0C .4byte _0803AE44 .4byte _0803AE50 _0803ADCC: movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0xA bl sub_8023868 b _0803AE50 _0803ADDA: movs r0, 0x1 bl sub_8023B7C b _0803AE50 _0803ADE2: bl sub_8023DA4 ldr r0, _0803AE08 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x10 adds r1, r2, 0 adds r1, 0x90 adds r3, r2, 0 adds r3, 0xD0 ldr r2, [r2, 0xC] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _0803AE50 .align 2, 0 _0803AE08: .4byte gUnknown_203B3F8 _0803AE0C: ldr r2, [r2] movs r1, 0x3 str r1, [r2, 0x70] movs r0, 0x1 str r0, [r2, 0x68] movs r0, 0x64 str r0, [r2, 0x6C] ldr r0, [r2, 0x8] ldrb r0, [r0, 0x3] str r0, [r2, 0x64] str r1, [r2, 0x74] movs r1, 0x94 lsls r1, 1 adds r0, r2, r1 str r0, [r2, 0x78] movs r0, 0x2C str r0, [r2, 0x7C] adds r1, r2, 0 adds r1, 0x80 movs r0, 0x12 str r0, [r1] adds r0, r2, 0 adds r0, 0x60 bl sub_8013AA0 bl sub_803AE58 b _0803AE50 _0803AE44: ldr r0, [r2] ldr r1, [r0, 0x8] adds r1, 0x4C movs r0, 0x2 bl sub_801602C _0803AE50: add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_803AD88 thumb_func_start sub_803AE58 sub_803AE58: push {r4,lr} sub sp, 0x4 ldr r4, _0803AEA8 ldr r0, [r4] ldr r0, [r0, 0x74] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x74] bl sub_80073B8 ldr r2, _0803AEAC ldr r0, [r4] ldr r3, [r0, 0x74] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r1, 0 bl xxx_call_draw_string ldr r0, [r4] adds r0, 0x60 bl sub_8013C68 ldr r0, [r4] ldr r0, [r0, 0x74] bl sub_80073E0 bl sub_8023DA4 ldr r0, [r4] adds r0, 0x10 movs r1, 0 bl sub_8012EA4 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803AEA8: .4byte gUnknown_203B3F8 _0803AEAC: .4byte gUnknown_80E7F1C thumb_func_end sub_803AE58 thumb_func_start sub_803AEB0 sub_803AEB0: push {r4-r6,lr} ldr r4, _0803AEFC ldr r0, [r4] adds r0, 0xD0 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r4, [r4] movs r3, 0 adds r1, r4, 0 adds r1, 0x90 ldr r0, _0803AF00 str r0, [r1] adds r5, r4, 0 adds r5, 0x94 movs r0, 0x4 str r0, [r5] movs r2, 0x1 adds r1, 0x8 ldr r0, _0803AF04 str r0, [r1] adds r1, 0x4 movs r0, 0x5 str r0, [r1] movs r6, 0x2 adds r0, r4, 0 adds r0, 0xA0 str r3, [r0] adds r0, 0x4 str r2, [r0] adds r0, 0x2C ldrh r0, [r0] cmp r0, 0 bne _0803AF08 ldr r0, [r5] str r0, [r4, 0xC] b _0803AF2C .align 2, 0 _0803AEFC: .4byte gUnknown_203B3F8 _0803AF00: .4byte gUnknown_80E7F24 _0803AF04: .4byte gUnknown_80E7F2C _0803AF08: adds r3, 0x1 cmp r3, r6 bge _0803AF2C ldr r0, _0803AF34 ldr r2, [r0] lsls r1, r3, 1 adds r0, r2, 0 adds r0, 0xD0 adds r0, r1 ldrh r0, [r0] cmp r0, 0 bne _0803AF08 lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0x94 adds r1, r0 ldr r0, [r1] str r0, [r2, 0xC] _0803AF2C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803AF34: .4byte gUnknown_203B3F8 thumb_func_end sub_803AEB0 thumb_func_start sub_803AF38 sub_803AF38: push {lr} movs r0, 0x1 bl sub_8023A94 cmp r0, 0x2 beq _0803AF78 cmp r0, 0x2 bcc _0803AF82 cmp r0, 0x3 bne _0803AF82 bl sub_8023B44 ldr r1, _0803AF70 ldr r1, [r1] strh r0, [r1, 0x4] ldr r3, _0803AF74 movs r0, 0x4 ldrsh r2, [r1, r0] movs r0, 0x58 muls r2, r0 ldr r0, [r3] adds r0, r2 str r0, [r1, 0x8] movs r0, 0x3 bl sub_803ACD0 b _0803AF82 .align 2, 0 _0803AF70: .4byte gUnknown_203B3F8 _0803AF74: .4byte gUnknown_203B45C _0803AF78: bl sub_8023C60 movs r0, 0x7 bl sub_803ACD0 _0803AF82: pop {r0} bx r0 thumb_func_end sub_803AF38 thumb_func_start sub_803AF88 sub_803AF88: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_8023A94 ldr r4, _0803AFC0 ldr r0, [r4] adds r0, 0x10 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _0803AFAE ldr r0, [r4] adds r0, 0x10 mov r1, sp bl sub_8013114 _0803AFAE: ldr r0, [sp] cmp r0, 0x4 beq _0803AFCA cmp r0, 0x4 bgt _0803AFC4 cmp r0, 0x1 beq _0803AFDA b _0803AFE0 .align 2, 0 _0803AFC0: .4byte gUnknown_203B3F8 _0803AFC4: cmp r0, 0x5 beq _0803AFD2 b _0803AFE0 _0803AFCA: movs r0, 0x5 bl sub_803ACD0 b _0803AFE0 _0803AFD2: movs r0, 0x6 bl sub_803ACD0 b _0803AFE0 _0803AFDA: movs r0, 0x2 bl sub_803ACD0 _0803AFE0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_803AF88 thumb_func_start sub_803AFE8 sub_803AFE8: push {r4,lr} movs r0, 0 bl sub_8023A94 ldr r4, _0803B010 ldr r0, [r4] adds r0, 0x10 bl sub_8012FD8 ldr r0, [r4] adds r0, 0x60 bl sub_8013BBC cmp r0, 0x2 beq _0803B020 cmp r0, 0x2 bhi _0803B014 cmp r0, 0x1 beq _0803B028 b _0803B02C .align 2, 0 _0803B010: .4byte gUnknown_203B3F8 _0803B014: cmp r0, 0x3 bne _0803B02C ldr r0, [r4] ldr r1, [r0, 0x8] ldr r0, [r0, 0x60] strb r0, [r1, 0x3] _0803B020: movs r0, 0x2 bl sub_803ACD0 b _0803B02C _0803B028: bl sub_803AE58 _0803B02C: pop {r4} pop {r0} bx r0 thumb_func_end sub_803AFE8 thumb_func_start sub_803B034 sub_803B034: push {lr} bl sub_8016080 cmp r0, 0x3 bhi _0803B04C cmp r0, 0x2 bcc _0803B04C bl sub_80160D8 movs r0, 0x2 bl sub_803ACD0 _0803B04C: pop {r0} bx r0 thumb_func_end sub_803B034 thumb_func_start sub_803B050 sub_803B050: push {r4-r7,lr} ldr r4, _0803B0F4 movs r0, 0xF4 lsls r0, 2 movs r1, 0x8 bl MemoryAlloc str r0, [r4] movs r1, 0x3 str r1, [r0, 0x34] adds r1, r0, 0 adds r1, 0x84 str r1, [r0, 0x38] adds r0, 0x3C bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x34] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x3C ldr r0, _0803B0F8 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r0, [r4] ldr r1, [r0, 0x38] adds r0, 0x9C str r0, [r1, 0x14] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r2, 0 movs r3, 0 movs r7, 0xCB lsls r7, 1 movs r6, 0x80 lsls r6, 9 movs r5, 0 _0803B0AE: ldr r0, _0803B0FC adds r0, r5, r0 movs r1, 0x2 ldrsh r0, [r0, r1] ldr r4, _0803B0F4 cmp r0, 0xA bne _0803B0C8 ldr r0, [r4] lsls r1, r2, 1 adds r0, 0xA0 adds r0, r1 strh r3, [r0] adds r2, 0x1 _0803B0C8: adds r0, r6, 0 movs r3, 0x80 lsls r3, 9 adds r6, r3 adds r5, 0xC asrs r3, r0, 16 cmp r3, r7 ble _0803B0AE ldr r0, [r4] ldr r3, [r0, 0x34] adds r1, r2, 0 movs r2, 0xA bl sub_8013818 bl sub_803B204 bl sub_803B284 movs r0, 0x1 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803B0F4: .4byte gUnknown_203B3FC _0803B0F8: .4byte gUnknown_80E7F54 _0803B0FC: .4byte gUnknown_812F1F8 thumb_func_end sub_803B050 thumb_func_start sub_803B100 sub_803B100: push {lr} adds r1, r0, 0 lsls r1, 16 asrs r1, 16 ldr r0, _0803B11C ldr r0, [r0] bl sub_8013878 bl sub_803B204 bl sub_803B284 pop {r0} bx r0 .align 2, 0 _0803B11C: .4byte gUnknown_203B3FC thumb_func_end sub_803B100 thumb_func_start sub_803B120 sub_803B120: push {r4,lr} ldr r4, _0803B13C ldr r0, [r4] bl GetKeyPress cmp r0, 0x1 beq _0803B140 cmp r0, 0x2 bne _0803B144 movs r0, 0x1 bl sub_80119D4 movs r0, 0x2 b _0803B160 .align 2, 0 _0803B13C: .4byte gUnknown_203B3FC _0803B140: movs r0, 0x3 b _0803B160 _0803B144: ldr r0, [r4] movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0803B156 movs r0, 0 b _0803B160 _0803B156: bl sub_803B204 bl sub_803B284 movs r0, 0x1 _0803B160: pop {r4} pop {r1} bx r1 thumb_func_end sub_803B120 thumb_func_start sub_803B168 sub_803B168: ldr r0, _0803B188 ldr r0, [r0] movs r1, 0x1E ldrsh r2, [r0, r1] movs r3, 0x1C ldrsh r1, [r0, r3] muls r1, r2 movs r3, 0x18 ldrsh r2, [r0, r3] adds r1, r2 lsls r1, 1 adds r0, 0xA0 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0803B188: .4byte gUnknown_203B3FC thumb_func_end sub_803B168 thumb_func_start sub_803B18C sub_803B18C: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _0803B1B8 ldr r0, [r5] movs r1, 0xE5 strh r1, [r0, 0x22] bl sub_8013984 bl sub_803B204 bl sub_803B284 cmp r4, 0 beq _0803B1B2 ldr r0, [r5] bl AddMenuCursorSprite _0803B1B2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803B1B8: .4byte gUnknown_203B3FC thumb_func_end sub_803B18C thumb_func_start sub_803B1BC sub_803B1BC: push {r4,r5,lr} ldr r4, _0803B1FC ldr r2, [r4] cmp r2, 0 beq _0803B1F6 ldr r0, [r2, 0x34] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x3C ldr r0, _0803B200 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0803B1F6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803B1FC: .4byte gUnknown_203B3FC _0803B200: .4byte gUnknown_80E7F3C thumb_func_end sub_803B1BC thumb_func_start sub_803B204 sub_803B204: push {r4,lr} ldr r4, _0803B280 ldr r0, [r4] adds r0, 0x9C movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, 0x9D strb r2, [r0] ldr r0, [r4] adds r0, 0x9E movs r1, 0x8 strb r1, [r0] ldr r0, [r4] adds r0, 0x9F strb r2, [r0] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] movs r1, 0x1A ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x34] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x4A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x34] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x4C strh r3, [r2] bl sub_8004914 ldr r0, [r4] adds r0, 0x3C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _0803B280: .4byte gUnknown_203B3FC thumb_func_end sub_803B204 thumb_func_start sub_803B284 sub_803B284: push {r4-r6,lr} sub sp, 0x8 ldr r6, _0803B338 ldr r0, [r6] ldr r0, [r0, 0x34] bl sub_8008C54 ldr r0, [r6] ldr r0, [r0, 0x34] bl sub_80073B8 ldr r2, _0803B33C ldr r0, [r6] ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r1, [r6] adds r0, r1, 0 adds r0, 0x9E ldrb r4, [r0] lsls r4, 3 subs r4, 0x2 movs r0, 0x1E ldrsh r2, [r1, r0] adds r2, 0x1 movs r0, 0x7 str r0, [sp] ldr r0, [r1, 0x34] str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r5, 0 ldr r0, [r6] movs r1, 0x1A ldrsh r0, [r0, r1] cmp r5, r0 bge _0803B324 _0803B2DC: ldr r0, [r6] movs r3, 0x1E ldrsh r2, [r0, r3] movs r3, 0x1C ldrsh r1, [r0, r3] muls r2, r1 adds r2, r5 lsls r2, 1 adds r1, r0, 0 adds r1, 0xA0 adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] lsls r4, r1, 1 adds r4, r1 lsls r4, 2 ldr r1, _0803B340 adds r4, r1 adds r1, r5, 0 bl sub_8013800 adds r1, r0, 0 ldr r2, [r4, 0x4] ldr r0, [r6] ldr r3, [r0, 0x34] movs r0, 0 str r0, [sp] movs r0, 0x8 bl xxx_call_draw_string adds r5, 0x1 ldr r0, [r6] movs r3, 0x1A ldrsh r0, [r0, r3] cmp r5, r0 blt _0803B2DC _0803B324: ldr r0, _0803B338 ldr r0, [r0] ldr r0, [r0, 0x34] bl sub_80073E0 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803B338: .4byte gUnknown_203B3FC _0803B33C: .4byte gUnknown_80E7F6C _0803B340: .4byte gUnknown_812F1F8 thumb_func_end sub_803B284 thumb_func_start sub_803B344 sub_803B344: adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _0803B358 adds r0, r1 bx lr .align 2, 0 _0803B358: .4byte gUnknown_80E7F94 thumb_func_end sub_803B344 thumb_func_start sub_803B35C sub_803B35C: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r1, 0x18 bl sub_803C21C ldrb r0, [r5, 0x2] subs r0, 0x1 cmp r0, 0x8 bls _0803B372 b _0803B4FA _0803B372: lsls r0, 2 ldr r1, _0803B37C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B37C: .4byte _0803B380 .align 2, 0 _0803B380: .4byte _0803B3A4 .4byte _0803B3BE .4byte _0803B3D8 .4byte _0803B3F2 .4byte _0803B414 .4byte _0803B442 .4byte _0803B470 .4byte _0803B49E .4byte _0803B4CC _0803B3A4: adds r0, r4, 0 adds r0, 0x40 movs r1, 0 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x6 strb r0, [r1] subs r1, 0x14 movs r0, 0x5 b _0803B576 _0803B3BE: adds r0, r4, 0 adds r0, 0x40 movs r1, 0x1 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x6 strb r0, [r1] subs r1, 0x14 movs r0, 0x5 b _0803B576 _0803B3D8: adds r0, r4, 0 adds r0, 0x40 movs r1, 0x2 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x6 strb r0, [r1] subs r1, 0x14 movs r0, 0x5 b _0803B576 _0803B3F2: adds r0, r4, 0 adds r0, 0x40 movs r1, 0x3 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x6 strb r0, [r1] bl sub_8096DD8 str r0, [r4, 0x4C] bl sub_8096DE8 str r0, [r4, 0x50] b _0803B578 _0803B414: ldrb r0, [r5, 0x1] cmp r0, 0x3 bne _0803B42A adds r0, r4, 0 adds r0, 0x40 movs r1, 0xB strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x1 b _0803B438 _0803B42A: adds r0, r4, 0 adds r0, 0x40 movs r1, 0xC strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x2 _0803B438: strb r0, [r1] adds r1, r4, 0 adds r1, 0x41 movs r0, 0x4 b _0803B576 _0803B442: ldrb r0, [r5, 0x1] cmp r0, 0x3 bne _0803B458 adds r0, r4, 0 adds r0, 0x40 movs r1, 0xB strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x1 b _0803B466 _0803B458: adds r0, r4, 0 adds r0, 0x40 movs r1, 0xC strb r1, [r0] adds r1, r4, 0 adds r1, 0x42 movs r0, 0x2 _0803B466: strb r0, [r1] adds r1, r4, 0 adds r1, 0x41 movs r0, 0x5 b _0803B576 _0803B470: adds r0, r5, 0 bl sub_803B600 str r0, [r4, 0x4] movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0803B488 adds r1, r4, 0 adds r1, 0x40 movs r0, 0x9 b _0803B48E _0803B488: adds r1, r4, 0 adds r1, 0x40 movs r0, 0x4 _0803B48E: strb r0, [r1] adds r1, r4, 0 adds r1, 0x41 movs r0, 0x6 strb r0, [r1] adds r1, 0x1 movs r0, 0x4 b _0803B576 _0803B49E: adds r0, r5, 0 bl sub_803B628 str r0, [r4, 0x4] movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0803B4B6 adds r1, r4, 0 adds r1, 0x40 movs r0, 0x9 b _0803B4BC _0803B4B6: adds r1, r4, 0 adds r1, 0x40 movs r0, 0x5 _0803B4BC: strb r0, [r1] adds r1, r4, 0 adds r1, 0x41 movs r0, 0x7 strb r0, [r1] adds r1, 0x1 movs r0, 0x4 b _0803B576 _0803B4CC: adds r0, r5, 0 bl sub_803B66C str r0, [r4, 0x4] movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0803B4E4 adds r1, r4, 0 adds r1, 0x40 movs r0, 0xA b _0803B4EA _0803B4E4: adds r1, r4, 0 adds r1, 0x40 movs r0, 0x6 _0803B4EA: strb r0, [r1] adds r1, r4, 0 adds r1, 0x41 movs r0, 0x8 strb r0, [r1] adds r1, 0x1 movs r0, 0x5 b _0803B576 _0803B4FA: ldrb r0, [r5, 0x1] cmp r0, 0x2 beq _0803B528 cmp r0, 0x2 bgt _0803B50A cmp r0, 0x1 beq _0803B514 b _0803B564 _0803B50A: cmp r0, 0x3 beq _0803B53C cmp r0, 0x4 beq _0803B550 b _0803B564 _0803B514: adds r1, r4, 0 adds r1, 0x40 movs r0, 0x9 strb r0, [r1] adds r1, 0x1 movs r0, 0xD strb r0, [r1] adds r1, 0x1 movs r0, 0x4 b _0803B576 _0803B528: adds r1, r4, 0 adds r1, 0x40 movs r0, 0xA strb r0, [r1] adds r1, 0x1 movs r0, 0xE strb r0, [r1] adds r1, 0x1 movs r0, 0x5 b _0803B576 _0803B53C: adds r1, r4, 0 adds r1, 0x40 movs r0, 0xB strb r0, [r1] adds r1, 0x1 movs r0, 0xF strb r0, [r1] adds r1, 0x1 movs r0, 0x1 b _0803B576 _0803B550: adds r1, r4, 0 adds r1, 0x40 movs r0, 0xC strb r0, [r1] adds r1, 0x1 movs r0, 0x10 strb r0, [r1] adds r1, 0x1 movs r0, 0x2 b _0803B576 _0803B564: adds r1, r4, 0 adds r1, 0x40 movs r0, 0x8 strb r0, [r1] adds r1, 0x1 movs r0, 0xC strb r0, [r1] adds r1, 0x1 movs r0, 0x3 _0803B576: strb r0, [r1] _0803B578: adds r0, r5, 0x4 str r0, [r4, 0x8] movs r0, 0 str r0, [r4, 0xC] ldrh r0, [r5, 0xC] movs r1, 0 strh r0, [r4, 0x10] ldrh r0, [r5, 0xE] strh r0, [r4, 0x12] ldrb r0, [r5, 0x10] strb r0, [r4, 0x14] ldrb r0, [r5] subs r0, 0x2 cmp r0, 0x7 bhi _0803B5EC lsls r0, 2 ldr r1, _0803B5A0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B5A0: .4byte _0803B5A4 .align 2, 0 _0803B5A4: .4byte _0803B5C4 .4byte _0803B5C4 .4byte _0803B5C4 .4byte _0803B5C4 .4byte _0803B5DC .4byte _0803B5CC .4byte _0803B5DC .4byte _0803B5DC _0803B5C4: adds r0, r4, 0 adds r0, 0x43 movs r1, 0x1 b _0803B5F0 _0803B5CC: adds r1, r4, 0 adds r1, 0x43 movs r0, 0 strb r0, [r1] adds r1, 0x1 movs r0, 0x3 strb r0, [r1] b _0803B5F6 _0803B5DC: adds r1, r4, 0 adds r1, 0x43 movs r0, 0x3 strb r0, [r1] adds r1, 0x1 movs r0, 0x2 strb r0, [r1] b _0803B5F6 _0803B5EC: adds r0, r4, 0 adds r0, 0x43 _0803B5F0: strb r1, [r0] adds r0, 0x1 strb r1, [r0] _0803B5F6: str r5, [r4, 0x54] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_803B35C thumb_func_start sub_803B600 sub_803B600: push {lr} ldr r2, _0803B614 movs r1, 0 ldr r3, [r0, 0xC] _0803B608: ldr r0, [r2] cmp r0, r3 bne _0803B618 adds r0, r1, 0 b _0803B624 .align 2, 0 _0803B614: .4byte gUnknown_80E9920 _0803B618: adds r2, 0x8 adds r1, 0x1 cmp r1, 0x14 ble _0803B608 movs r0, 0x1 negs r0, r0 _0803B624: pop {r1} bx r1 thumb_func_end sub_803B600 thumb_func_start sub_803B628 sub_803B628: push {r4,r5,lr} adds r4, r0, 0 ldr r2, _0803B654 movs r3, 0 _0803B630: ldr r1, [r2] ldr r0, [r4, 0xC] cmp r1, r0 beq _0803B650 movs r0, 0x2 ldrsh r1, [r2, r0] movs r5, 0xC ldrsh r0, [r4, r5] cmp r1, r0 bne _0803B658 movs r0, 0 ldrsh r1, [r2, r0] movs r5, 0xE ldrsh r0, [r4, r5] cmp r1, r0 bne _0803B658 _0803B650: adds r0, r3, 0 b _0803B664 .align 2, 0 _0803B654: .4byte gUnknown_80E9F8C _0803B658: adds r2, 0xC adds r3, 0x1 cmp r3, 0x2C ble _0803B630 movs r0, 0x1 negs r0, r0 _0803B664: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803B628 thumb_func_start sub_803B66C sub_803B66C: push {r4,r5,lr} adds r4, r0, 0 ldr r2, _0803B698 movs r3, 0 _0803B674: ldr r1, [r2] ldr r0, [r4, 0xC] cmp r1, r0 beq _0803B694 movs r0, 0x2 ldrsh r1, [r2, r0] movs r5, 0xC ldrsh r0, [r4, r5] cmp r1, r0 bne _0803B69C movs r0, 0 ldrsh r1, [r2, r0] movs r5, 0xE ldrsh r0, [r4, r5] cmp r1, r0 bne _0803B69C _0803B694: adds r0, r3, 0 b _0803B6A8 .align 2, 0 _0803B698: .4byte gUnknown_80E8168 _0803B69C: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x5 ble _0803B674 movs r0, 0x1 negs r0, r0 _0803B6A8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803B66C thumb_func_start sub_803B6B0 sub_803B6B0: push {r4,lr} sub sp, 0x4 lsls r2, 24 ldr r4, _0803B6D0 lsrs r2, 22 adds r2, r4 ldr r2, [r2] movs r4, 0 str r4, [sp] bl xxx_call_draw_string add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803B6D0: .4byte gUnknown_80E8B94 thumb_func_end sub_803B6B0 thumb_func_start sub_803B6D4 sub_803B6D4: push {r4-r7,lr} sub sp, 0x144 adds r7, r0, 0 ldr r1, [r7, 0x48] adds r0, 0x43 ldrb r2, [r0] ldr r3, [r7] movs r0, 0xA bl sub_803B6B0 adds r0, r7, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0xC bls _0803B6F4 b _0803B86C _0803B6F4: lsls r0, 2 ldr r1, _0803B700 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B700: .4byte _0803B704 .align 2, 0 _0803B704: .4byte _0803B73E .4byte _0803B748 .4byte _0803B754 .4byte _0803B738 .4byte _0803B7A4 .4byte _0803B7B0 .4byte _0803B7C8 .4byte _0803B760 .4byte _0803B86C .4byte _0803B818 .4byte _0803B7E0 .4byte _0803B788 .4byte _0803B76A _0803B738: ldr r1, [r7, 0x48] ldr r2, [r7, 0x4C] b _0803B7CC _0803B73E: ldr r1, [r7, 0x48] ldr r2, _0803B744 b _0803B7CC .align 2, 0 _0803B744: .4byte gUnknown_80E87DC _0803B748: ldr r1, [r7, 0x48] ldr r2, _0803B750 b _0803B7CC .align 2, 0 _0803B750: .4byte gUnknown_80E87F4 _0803B754: ldr r1, [r7, 0x48] ldr r2, _0803B75C b _0803B7CC .align 2, 0 _0803B75C: .4byte gUnknown_80E8818 _0803B760: ldr r1, [r7, 0x8] add r0, sp, 0x4 bl sub_8090208 b _0803B850 _0803B76A: ldr r4, _0803B780 ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803B784 add r0, sp, 0x4 adds r2, r4, 0 b _0803B84C .align 2, 0 _0803B780: .4byte gUnknown_202DE58 _0803B784: .4byte gUnknown_80E8830 _0803B788: ldr r4, _0803B79C ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803B7A0 add r0, sp, 0x4 adds r2, r4, 0 b _0803B84C .align 2, 0 _0803B79C: .4byte gUnknown_202DE58 _0803B7A0: .4byte gUnknown_80E8848 _0803B7A4: ldr r1, [r7, 0x48] ldr r2, _0803B7AC b _0803B7CC .align 2, 0 _0803B7AC: .4byte gUnknown_80E885C _0803B7B0: ldr r1, [r7, 0x48] ldr r3, _0803B7C4 ldr r2, [r7, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r3, 0x4 adds r0, r3 ldr r2, [r0] b _0803B7CC .align 2, 0 _0803B7C4: .4byte gUnknown_80E9F8C _0803B7C8: ldr r1, [r7, 0x48] ldr r2, _0803B7DC _0803B7CC: ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x15 bl xxx_call_draw_string b _0803B8B4 .align 2, 0 _0803B7DC: .4byte gUnknown_80E886C _0803B7E0: ldr r0, [r7, 0x8] ldr r4, [r0, 0x4] ldrb r0, [r0] adds r4, r0 lsls r4, 24 lsrs r4, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r5, _0803B810 adds r0, r5, 0 bl strcpy ldr r1, _0803B814 movs r0, 0x3 ands r4, r0 lsls r4, 2 adds r4, r1 ldr r1, [r4] add r0, sp, 0x4 adds r2, r5, 0 b _0803B84C .align 2, 0 _0803B810: .4byte gUnknown_202DF98 _0803B814: .4byte gUnknown_80EAE5C _0803B818: ldr r0, [r7, 0x8] ldr r4, [r0, 0x4] ldrb r0, [r0] adds r4, r0 lsls r4, 24 lsrs r4, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r6, _0803B864 adds r0, r6, 0 bl strcpy ldr r5, _0803B868 adds r0, r4, 0 movs r1, 0xA bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r5 ldr r1, [r0] add r0, sp, 0x4 adds r2, r6, 0 _0803B84C: bl sub_800D158 _0803B850: ldr r1, [r7, 0x48] ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x15 add r2, sp, 0x4 bl xxx_call_draw_string b _0803B8B4 .align 2, 0 _0803B864: .4byte gUnknown_202DF98 _0803B868: .4byte gUnknown_80E910C _0803B86C: ldr r0, [r7, 0x8] ldr r4, [r0, 0x4] ldrb r0, [r0] adds r4, r0 lsls r4, 24 lsrs r4, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r6, _0803B8E8 adds r0, r6, 0 bl strcpy ldr r5, _0803B8EC adds r0, r4, 0 movs r1, 0xF bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r5 ldr r1, [r0] add r0, sp, 0x4 adds r2, r6, 0 bl sub_800D158 ldr r1, [r7, 0x48] ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x15 add r2, sp, 0x4 bl xxx_call_draw_string _0803B8B4: adds r0, r7, 0 adds r0, 0x40 ldrb r1, [r0] adds r6, r0, 0 cmp r1, 0x7 bne _0803B916 ldr r5, [r7, 0xC] cmp r5, 0 bne _0803B8F0 bl sub_8016028 movs r4, 0xB2 subs r4, r0 movs r1, 0x10 ldrsh r0, [r7, r1] bl sub_808D994 adds r2, r0, 0 ldr r1, [r7, 0x48] ldr r3, [r7] str r5, [sp] adds r0, r4, 0 bl xxx_call_draw_string b _0803B956 .align 2, 0 _0803B8E8: .4byte gUnknown_202DF98 _0803B8EC: .4byte gUnknown_80E8C98 _0803B8F0: add r4, sp, 0xCC adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xA bl sub_80922B4 bl sub_8016028 adds r1, r0, 0 movs r0, 0xB2 subs r0, r1 ldr r1, [r7, 0x48] ldr r3, [r7] movs r2, 0 str r2, [sp] adds r2, r4, 0 bl xxx_call_draw_string b _0803B956 _0803B916: adds r0, r7, 0 adds r0, 0x42 ldrb r0, [r0] cmp r0, 0x1 bne _0803B93C add r4, sp, 0xE0 ldr r1, [r7, 0x8] adds r0, r4, 0 bl sub_8090228 ldr r1, _0803B938 add r0, sp, 0x4 adds r2, r4, 0 bl sub_800D158 b _0803B944 .align 2, 0 _0803B938: .4byte gUnknown_80E8884 _0803B93C: ldr r1, [r7, 0x8] add r0, sp, 0x4 bl sub_8090228 _0803B944: ldr r1, [r7, 0x48] adds r1, 0xC ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x1D add r2, sp, 0x4 bl xxx_call_draw_string _0803B956: ldrb r0, [r6] cmp r0, 0x7 bne _0803B962 ldr r0, [r7, 0x8] movs r1, 0 b _0803B968 _0803B962: ldr r0, [r7, 0x8] ldr r1, [r7, 0x54] ldrb r1, [r1, 0x1] _0803B968: bl sub_803C1D0 lsls r0, 24 lsrs r0, 24 bl sub_803C1F0 adds r2, r0, 0 ldr r1, [r7, 0x48] ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xB4 bl xxx_call_draw_string add sp, 0x144 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_803B6D4 thumb_func_start sub_803B98C sub_803B98C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1FC adds r7, r0, 0 movs r0, 0 mov r9, r0 ldr r2, _0803B9E0 ldr r3, [r7] str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r1, _0803B9E4 adds r0, r7, 0 adds r0, 0x44 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r2, [r0] ldr r3, [r7] mov r1, r9 str r1, [sp] movs r0, 0x6C movs r1, 0 bl xxx_call_draw_string movs r0, 0x10 mov r9, r0 adds r0, r7, 0 adds r0, 0x41 ldrb r0, [r0] cmp r0, 0x10 bls _0803B9D6 b _0803BCC0 _0803B9D6: lsls r0, 2 ldr r1, _0803B9E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B9E0: .4byte gUnknown_80E888C _0803B9E4: .4byte gUnknown_80E8BCC _0803B9E8: .4byte _0803B9EC .align 2, 0 _0803B9EC: .4byte _0803BA34 .4byte _0803BA3C .4byte _0803BA44 .4byte _0803BA30 .4byte _0803BA4C .4byte _0803BA6C .4byte _0803BA8C .4byte _0803BAA0 .4byte _0803BBF0 .4byte _0803BAE8 .4byte _0803BAF0 .4byte _0803BAF8 .4byte _0803BCC0 .4byte _0803BC58 .4byte _0803BB74 .4byte _0803BB10 .4byte _0803BB10 _0803BA30: ldr r2, [r7, 0x50] b _0803BAFA _0803BA34: ldr r2, _0803BA38 b _0803BAFA .align 2, 0 _0803BA38: .4byte gUnknown_80E88A0 _0803BA3C: ldr r2, _0803BA40 b _0803BAFA .align 2, 0 _0803BA40: .4byte gUnknown_80E88C8 _0803BA44: ldr r2, _0803BA48 b _0803BAFA .align 2, 0 _0803BA48: .4byte gUnknown_80E8920 _0803BA4C: ldr r4, _0803BA64 ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803BA68 add r0, sp, 0x4 adds r2, r4, 0 bl sub_800D158 b _0803BACC .align 2, 0 _0803BA64: .4byte gUnknown_202DE58 _0803BA68: .4byte gUnknown_80E8968 _0803BA6C: ldr r4, _0803BA84 ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803BA88 add r0, sp, 0x4 adds r2, r4, 0 bl sub_800D158 b _0803BACC .align 2, 0 _0803BA84: .4byte gUnknown_202DE58 _0803BA88: .4byte gUnknown_80E89B0 _0803BA8C: ldr r1, _0803BA9C ldr r0, [r7, 0x4] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r2, [r0] b _0803BAFA .align 2, 0 _0803BA9C: .4byte gUnknown_80E9920 _0803BAA0: movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r4, _0803BAE0 adds r0, r4, 0 bl strcpy ldr r2, _0803BAE4 ldr r1, [r7, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r2, 0x8 adds r0, r2 ldr r1, [r0] add r0, sp, 0x4 adds r2, r4, 0 adds r3, r4, 0 bl sub_800D158 _0803BACC: ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string b _0803BD42 .align 2, 0 _0803BAE0: .4byte gUnknown_202DF98 _0803BAE4: .4byte gUnknown_80E9F8C _0803BAE8: ldr r2, _0803BAEC b _0803BAFA .align 2, 0 _0803BAEC: .4byte gUnknown_80E89FC _0803BAF0: ldr r2, _0803BAF4 b _0803BAFA .align 2, 0 _0803BAF4: .4byte gUnknown_80E8A40 _0803BAF8: ldr r2, _0803BB0C _0803BAFA: ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string b _0803BD42 .align 2, 0 _0803BB0C: .4byte gUnknown_80E8A7C _0803BB10: ldr r0, [r7, 0x8] ldr r5, [r0, 0x4] ldrb r4, [r0] adds r4, r5, r4 lsls r4, 24 lsrs r4, 24 ldrb r0, [r0, 0x1] adds r5, r0 lsls r5, 24 lsrs r5, 24 ldr r0, _0803BB68 mov r8, r0 ldrb r1, [r7, 0x14] movs r2, 0 bl sub_8090DC4 ldr r6, _0803BB6C adds r0, r4, 0 movs r1, 0x16 bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] movs r6, 0 str r6, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r1, 0xC add r9, r1 ldr r4, _0803BB70 adds r0, r5, 0 movs r1, 0x16 b _0803BD1A .align 2, 0 _0803BB68: .4byte gUnknown_202DE58 _0803BB6C: .4byte gUnknown_80EB3F8 _0803BB70: .4byte gUnknown_80EB72C _0803BB74: ldr r0, [r7, 0x8] ldr r5, [r0, 0x4] ldrb r4, [r0] adds r4, r5, r4 lsls r4, 24 lsrs r4, 24 ldrb r0, [r0, 0x1] adds r5, r0 lsls r5, 24 lsrs r5, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r0, _0803BBE4 mov r8, r0 bl strcpy ldr r6, _0803BBE8 adds r0, r4, 0 movs r1, 0x14 bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] movs r4, 0 str r4, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r1, 0xC add r9, r1 ldr r1, _0803BBEC movs r0, 0x3 ands r5, r0 lsls r5, 2 adds r5, r1 ldr r1, [r5] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] str r4, [sp] b _0803BD32 .align 2, 0 _0803BBE4: .4byte gUnknown_202DF98 _0803BBE8: .4byte gUnknown_80EAEB8 _0803BBEC: .4byte gUnknown_80EB198 _0803BBF0: ldr r0, [r7, 0x8] ldr r5, [r0, 0x4] ldrb r4, [r0] adds r4, r5, r4 lsls r4, 24 lsrs r4, 24 ldrb r0, [r0, 0x1] adds r5, r0 lsls r5, 24 lsrs r5, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r0, _0803BC4C mov r8, r0 bl strcpy ldr r6, _0803BC50 adds r0, r4, 0 movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] movs r6, 0 str r6, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r1, 0xC add r9, r1 ldr r4, _0803BC54 adds r0, r5, 0 movs r1, 0x6 b _0803BD1A .align 2, 0 _0803BC4C: .4byte gUnknown_202DF98 _0803BC50: .4byte gUnknown_80EB220 _0803BC54: .4byte gUnknown_80EB2F0 _0803BC58: ldr r0, [r7, 0x8] ldr r5, [r0, 0x4] ldrb r4, [r0] adds r4, r5, r4 lsls r4, 24 lsrs r4, 24 ldrb r0, [r0, 0x1] adds r5, r0 lsls r5, 24 lsrs r5, 24 movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r0, _0803BCB4 mov r8, r0 bl strcpy ldr r6, _0803BCB8 adds r0, r4, 0 movs r1, 0x2D bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] movs r6, 0 str r6, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r1, 0xC add r9, r1 ldr r4, _0803BCBC adds r0, r5, 0 movs r1, 0xA b _0803BD1A .align 2, 0 _0803BCB4: .4byte gUnknown_202DF98 _0803BCB8: .4byte gUnknown_80E91D4 _0803BCBC: .4byte gUnknown_80E9820 _0803BCC0: ldr r0, [r7, 0x8] ldr r5, [r0, 0x4] ldrb r4, [r0] adds r4, r5, r4 lsls r4, 24 lsrs r4, 24 ldrb r0, [r0, 0x1] adds r5, r0 lsls r5, 24 lsrs r5, 24 movs r1, 0x10 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r0, _0803BD78 mov r8, r0 bl strcpy ldr r6, _0803BD7C adds r0, r4, 0 movs r1, 0xD bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] movs r6, 0 str r6, [sp] movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r1, 0xC add r9, r1 ldr r4, _0803BD80 adds r0, r5, 0 movs r1, 0xD _0803BD1A: bl __umodsi3 lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r1, [r0] add r0, sp, 0x4 mov r2, r8 bl sub_800D158 ldr r3, [r7] str r6, [sp] _0803BD32: movs r0, 0xA mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string movs r0, 0xC negs r0, r0 add r9, r0 _0803BD42: movs r1, 0x1C add r9, r1 ldr r2, _0803BD84 ldr r3, [r7] movs r0, 0 mov r8, r0 str r0, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string ldr r1, [r7, 0xC] cmp r1, 0 bne _0803BD88 movs r1, 0x10 ldrsh r0, [r7, r1] bl sub_808D994 adds r2, r0, 0 ldr r3, [r7] mov r0, r8 str r0, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string b _0803BDBC .align 2, 0 _0803BD78: .4byte gUnknown_202DF98 _0803BD7C: .4byte gUnknown_80E8DE4 _0803BD80: .4byte gUnknown_80E8FB0 _0803BD84: .4byte gUnknown_80E8AC8 _0803BD88: add r6, sp, 0x158 adds r0, r6, 0 movs r2, 0xA bl sub_80922B4 add r4, sp, 0x16C movs r0, 0x10 ldrsh r1, [r7, r0] adds r0, r4, 0 bl sub_808D930 add r5, sp, 0x130 ldr r1, _0803BDE8 adds r0, r5, 0 adds r2, r6, 0 adds r3, r4, 0 bl sub_800D158 ldr r3, [r7] mov r1, r8 str r1, [sp] movs r0, 0x44 mov r1, r9 adds r2, r5, 0 bl xxx_call_draw_string _0803BDBC: movs r0, 0xC add r9, r0 ldr r2, _0803BDEC ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string adds r0, r7, 0 adds r0, 0x42 ldrb r1, [r0] adds r5, r0, 0 cmp r1, 0x6 bhi _0803BEB8 lsls r0, r1, 2 ldr r1, _0803BDF0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803BDE8: .4byte gUnknown_80E8AD0 _0803BDEC: .4byte gUnknown_80E8AE0 _0803BDF0: .4byte _0803BDF4 .align 2, 0 _0803BDF4: .4byte _0803BE10 .4byte _0803BE30 .4byte _0803BE18 .4byte _0803BE48 .4byte _0803BE80 .4byte _0803BE60 .4byte _0803BEB8 _0803BE10: ldr r2, _0803BE14 b _0803BE4A .align 2, 0 _0803BE14: .4byte gUnknown_80E8AEC _0803BE18: ldr r4, _0803BE28 ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803BE2C b _0803BE94 .align 2, 0 _0803BE28: .4byte gUnknown_202DE58 _0803BE2C: .4byte gUnknown_80E8AFC _0803BE30: ldr r4, _0803BE40 ldrb r1, [r7, 0x14] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803BE44 b _0803BE94 .align 2, 0 _0803BE40: .4byte gUnknown_202DE58 _0803BE44: .4byte gUnknown_80E8B10 _0803BE48: ldr r2, _0803BE5C _0803BE4A: ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string b _0803BEC8 .align 2, 0 _0803BE5C: .4byte gUnknown_80E8B20 _0803BE60: movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r4, _0803BE78 adds r0, r4, 0 bl strcpy ldr r1, _0803BE7C b _0803BE94 .align 2, 0 _0803BE78: .4byte gUnknown_202DF98 _0803BE7C: .4byte gUnknown_80E8B2C _0803BE80: movs r1, 0x12 ldrsh r0, [r7, r1] bl sub_808D994 adds r1, r0, 0 ldr r4, _0803BEB0 adds r0, r4, 0 bl strcpy ldr r1, _0803BEB4 _0803BE94: add r0, sp, 0x4 adds r2, r4, 0 bl sub_800D158 ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string b _0803BEC8 .align 2, 0 _0803BEB0: .4byte gUnknown_202DF98 _0803BEB4: .4byte gUnknown_80E8B40 _0803BEB8: ldr r2, _0803BEF8 ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string _0803BEC8: movs r0, 0xC add r9, r0 ldr r2, _0803BEFC ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string ldrb r0, [r5] cmp r0, 0x1 bne _0803BF04 add r4, sp, 0x180 ldr r1, [r7, 0x8] adds r0, r4, 0 bl sub_8090228 ldr r1, _0803BF00 add r0, sp, 0x4 adds r2, r4, 0 bl sub_800D158 b _0803BF0C .align 2, 0 _0803BEF8: .4byte gUnknown_80E8B50 _0803BEFC: .4byte gUnknown_80E8B60 _0803BF00: .4byte gUnknown_80E8884 _0803BF04: ldr r1, [r7, 0x8] add r0, sp, 0x4 bl sub_8090228 _0803BF0C: ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string ldrb r0, [r5] cmp r0, 0 bne _0803BF28 ldr r0, [r7, 0x8] movs r1, 0 b _0803BF2E _0803BF28: ldr r0, [r7, 0x8] ldr r1, [r7, 0x54] ldrb r1, [r1, 0x1] _0803BF2E: bl sub_803C1D0 lsls r0, 24 lsrs r4, r0, 24 movs r1, 0xC add r9, r1 ldr r2, _0803BF88 ldr r3, [r7] movs r6, 0 str r6, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string adds r0, r4, 0 bl sub_803C1F0 adds r2, r0, 0 ldr r3, [r7] str r6, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string movs r0, 0xC add r9, r0 ldr r2, _0803BF8C ldr r3, [r7] str r6, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string adds r0, r7, 0 adds r0, 0x2E ldrb r2, [r0] adds r5, r0, 0 cmp r2, 0x4 bhi _0803C02C lsls r0, r2, 2 ldr r1, _0803BF90 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803BF88: .4byte gUnknown_80E8B68 _0803BF8C: .4byte gUnknown_80E8B74 _0803BF90: .4byte _0803BF94 .align 2, 0 _0803BF94: .4byte _0803BFA8 .4byte _0803BFBC .4byte _0803BFD0 .4byte _0803BFD0 .4byte _0803C00C _0803BFA8: ldr r1, _0803BFB8 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r2, [r7, 0x30] add r0, sp, 0x4 b _0803BFEE .align 2, 0 _0803BFB8: .4byte gUnknown_80E8C48 _0803BFBC: ldr r1, _0803BFCC ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r2, [r7, 0x30] add r0, sp, 0x4 b _0803BFEE .align 2, 0 _0803BFCC: .4byte gUnknown_80E8C48 _0803BFD0: ldr r4, _0803C004 adds r0, r7, 0 adds r0, 0x34 ldrb r1, [r0] adds r0, r4, 0 movs r2, 0 bl sub_8090DC4 ldr r1, _0803C008 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, [r0] add r0, sp, 0x4 adds r2, r4, 0 _0803BFEE: bl sub_800D158 ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 add r2, sp, 0x4 bl xxx_call_draw_string b _0803C040 .align 2, 0 _0803C004: .4byte gUnknown_202DE58 _0803C008: .4byte gUnknown_80E8C48 _0803C00C: ldr r1, _0803C028 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r2, [r0] ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string b _0803C040 .align 2, 0 _0803C028: .4byte gUnknown_80E8C48 _0803C02C: ldr r1, _0803C0D4 lsls r0, r2, 2 adds r0, r1 ldr r2, [r0] ldr r3, [r7] str r6, [sp] movs r0, 0x44 mov r1, r9 bl xxx_call_draw_string _0803C040: movs r1, 0xC add r9, r1 adds r0, r7, 0 adds r0, 0x41 ldrb r1, [r0] adds r0, r1, 0 subs r0, 0x9 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bls _0803C0C6 cmp r1, 0x3 beq _0803C0C6 ldr r0, [r7, 0x54] ldrb r0, [r0] cmp r0, 0x5 bne _0803C0C6 ldr r2, _0803C0D8 ldr r3, [r7] movs r0, 0 str r0, [sp] movs r0, 0xA mov r1, r9 bl xxx_call_draw_string add r0, sp, 0x1E4 ldr r1, [r7, 0x54] bl sub_803D414 movs r4, 0 _0803C07C: cmp r4, 0xC bne _0803C084 movs r0, 0xC add r9, r0 _0803C084: movs r5, 0x7 cmp r4, 0x3 ble _0803C09C movs r5, 0x6 cmp r4, 0x7 ble _0803C09C movs r5, 0x7 cmp r4, 0xF ble _0803C09C cmp r4, 0x13 bgt _0803C09C movs r5, 0x6 _0803C09C: adds r0, r4, 0 movs r1, 0xC bl __modsi3 adds r1, r0, 0 lsls r0, r1, 2 adds r0, r1 lsls r0, 1 adds r0, 0x54 add r1, sp, 0x1E4 adds r1, r4 ldrb r2, [r1] ldr r1, [r7] str r1, [sp] mov r1, r9 adds r3, r5, 0 bl sub_8012C60 adds r4, 0x1 cmp r4, 0x17 ble _0803C07C _0803C0C6: add sp, 0x1FC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803C0D4: .4byte gUnknown_80E8C48 _0803C0D8: .4byte gUnknown_80E8B7C thumb_func_end sub_803B98C thumb_func_start sub_803C0DC sub_803C0DC: push {lr} lsls r0, 16 asrs r0, 16 bl sub_808E770 lsls r0, 16 asrs r2, r0, 16 ldr r1, _0803C0F0 b _0803C102 .align 2, 0 _0803C0F0: .4byte gUnknown_80E80E0 _0803C0F4: movs r3, 0 ldrsh r0, [r1, r3] cmp r0, r2 bne _0803C100 movs r0, 0 b _0803C10C _0803C100: adds r1, 0x2 _0803C102: movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 bne _0803C0F4 movs r0, 0x1 _0803C10C: pop {r1} bx r1 thumb_func_end sub_803C0DC thumb_func_start sub_803C110 sub_803C110: push {r4,lr} lsls r0, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_8098134 lsls r0, 24 cmp r0, 0 beq _0803C180 adds r0, r4, 0 bl sub_808E770 lsls r0, 16 asrs r0, 16 cmp r4, r0 bne _0803C180 adds r0, r4, 0 bl sub_803C0DC lsls r0, 24 cmp r0, 0 beq _0803C180 movs r0, 0x6 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _0803C188 ldr r1, _0803C184 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _0803C168 adds r2, r1, 0 _0803C154: movs r3, 0 ldrsh r0, [r2, r3] cmp r0, r4 beq _0803C180 adds r1, 0x2 adds r2, 0x2 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 bne _0803C154 _0803C168: bl sub_808D33C movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, r4 beq _0803C180 bl sub_808D378 movs r2, 0x8 ldrsh r0, [r0, r2] cmp r0, r4 bne _0803C188 _0803C180: movs r0, 0 b _0803C18A .align 2, 0 _0803C184: .4byte gUnknown_80E8126 _0803C188: movs r0, 0x1 _0803C18A: pop {r4} pop {r1} bx r1 thumb_func_end sub_803C110 thumb_func_start sub_803C190 sub_803C190: lsls r0, 24 ldr r1, _0803C19C lsrs r0, 21 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _0803C19C: .4byte gUnknown_80EBA18 thumb_func_end sub_803C190 thumb_func_start sub_803C1A0 sub_803C1A0: lsls r0, 24 ldr r1, _0803C1B0 lsrs r0, 21 adds r1, 0x4 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _0803C1B0: .4byte gUnknown_80EBA18 thumb_func_end sub_803C1A0 thumb_func_start sub_803C1B4 sub_803C1B4: push {r4,lr} lsls r4, r1, 24 lsrs r4, 24 bl sub_80908D8 cmp r4, 0x2 bne _0803C1C4 adds r0, 0x2 _0803C1C4: cmp r0, 0xF ble _0803C1CA movs r0, 0xF _0803C1CA: pop {r4} pop {r1} bx r1 thumb_func_end sub_803C1B4 thumb_func_start sub_803C1D0 sub_803C1D0: push {lr} lsls r1, 24 lsrs r1, 24 bl sub_803C1B4 adds r1, r0, 0 lsrs r0, r1, 31 adds r0, r1, r0 asrs r1, r0, 1 lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0x6 bls _0803C1EC movs r0, 0x6 _0803C1EC: pop {r1} bx r1 thumb_func_end sub_803C1D0 thumb_func_start sub_803C1F0 sub_803C1F0: lsls r0, 24 ldr r1, _0803C1FC lsrs r0, 22 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _0803C1FC: .4byte gUnknown_80E8BF8 thumb_func_end sub_803C1F0 thumb_func_start sub_803C200 sub_803C200: push {lr} lsls r1, 24 lsrs r1, 24 bl sub_803C1B4 ldr r1, _0803C218 lsls r0, 2 adds r0, r1 ldr r0, [r0] pop {r1} bx r1 .align 2, 0 _0803C218: .4byte gUnknown_80E80A0 thumb_func_end sub_803C200 thumb_func_start sub_803C21C sub_803C21C: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 adds r0, r6, 0x4 ldrb r1, [r6, 0x1] bl sub_803C1D0 lsls r0, 24 lsrs r2, r0, 24 movs r0, 0 str r0, [r4, 0x18] movs r3, 0 movs r1, 0x2 adds r0, r4, 0 adds r0, 0x1E _0803C23E: strb r3, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _0803C23E adds r0, r4, 0 adds r0, 0x20 movs r1, 0 strb r1, [r0] movs r1, 0xA strb r1, [r4, 0x1F] ldrb r1, [r6, 0x11] adds r3, r0, 0 cmp r1, 0x9 bhi _0803C354 lsls r0, r1, 2 ldr r1, _0803C268 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803C268: .4byte _0803C26C .align 2, 0 _0803C26C: .4byte _0803C294 .4byte _0803C2A2 .4byte _0803C2B4 .4byte _0803C2BE .4byte _0803C354 .4byte _0803C2E0 .4byte _0803C2EE .4byte _0803C300 .4byte _0803C30A .4byte _0803C34A _0803C294: movs r0, 0 strb r0, [r4, 0x16] adds r1, r2, 0x1 movs r0, 0x64 muls r0, r1 str r0, [r4, 0x18] b _0803C358 _0803C2A2: movs r0, 0x1 strb r0, [r4, 0x16] adds r1, r2, 0x1 movs r0, 0x64 muls r0, r1 str r0, [r4, 0x18] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] b _0803C358 _0803C2B4: movs r0, 0x2 strb r0, [r4, 0x16] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] b _0803C358 _0803C2BE: movs r0, 0x3 strb r0, [r4, 0x16] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] adds r5, r6, 0x4 adds r7, r4, 0 adds r7, 0x1D _0803C2CC: ldrb r1, [r6, 0x1] adds r0, r5, 0 adds r2, r7, 0 bl sub_803C37C ldrb r0, [r4, 0x1C] ldrb r1, [r4, 0x1D] cmp r0, r1 beq _0803C2CC b _0803C35A _0803C2E0: movs r0, 0 strb r0, [r4, 0x16] adds r1, r2, 0x1 movs r0, 0xC8 muls r0, r1 str r0, [r4, 0x18] b _0803C358 _0803C2EE: movs r0, 0x1 strb r0, [r4, 0x16] adds r1, r2, 0x1 movs r0, 0xC8 muls r0, r1 str r0, [r4, 0x18] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] b _0803C358 _0803C300: movs r0, 0x2 strb r0, [r4, 0x16] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] b _0803C358 _0803C30A: movs r0, 0x3 strb r0, [r4, 0x16] ldrb r0, [r6, 0x12] strb r0, [r4, 0x1C] adds r5, r6, 0x4 adds r7, r4, 0 adds r7, 0x1D movs r0, 0x1E adds r0, r4 mov r8, r0 _0803C31E: ldrb r1, [r6, 0x1] adds r0, r5, 0 adds r2, r7, 0 bl sub_803C37C ldrb r0, [r4, 0x1C] ldrb r1, [r4, 0x1D] cmp r0, r1 beq _0803C31E _0803C330: ldrb r1, [r6, 0x1] adds r0, r5, 0 mov r2, r8 bl sub_803C37C ldrb r0, [r4, 0x1C] ldrb r1, [r4, 0x1E] cmp r0, r1 beq _0803C330 ldrb r0, [r4, 0x1D] cmp r0, r1 beq _0803C330 b _0803C35A _0803C34A: movs r0, 0x4 strb r0, [r4, 0x16] ldrb r0, [r6, 0x13] strb r0, [r3] b _0803C358 _0803C354: movs r0, 0x5 strb r0, [r4, 0x16] _0803C358: adds r5, r6, 0x4 _0803C35A: movs r0, 0xC ldrsh r1, [r6, r0] adds r0, r4, 0 bl sub_808D8E0 ldrh r0, [r6, 0xC] strh r0, [r4, 0x14] ldrb r1, [r6, 0x1] adds r0, r5, 0 bl sub_803C200 str r0, [r4, 0x24] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_803C21C thumb_func_start sub_803C37C sub_803C37C: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 mov r8, r2 lsls r1, 24 lsrs r1, 24 bl sub_803C1B4 adds r7, r0, 0 adds r0, r6, 0 adds r1, r7, 0 bl sub_8090910 _0803C398: movs r5, 0 adds r0, r6, 0 adds r1, r7, 0 bl sub_8090910 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xEA bne _0803C3BA movs r0, 0 movs r1, 0x47 movs r2, 0x1 bl sub_8001784 negs r1, r0 orrs r1, r0 lsrs r5, r1, 31 _0803C3BA: cmp r4, 0xEB bne _0803C3CE movs r0, 0 movs r1, 0x47 movs r2, 0 bl sub_8001784 cmp r0, 0 beq _0803C3CE movs r5, 0x1 _0803C3CE: cmp r5, 0 bne _0803C398 mov r0, r8 strb r4, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_803C37C thumb_func_start sub_803C3E0 sub_803C3E0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x54 adds r7, r0, 0 movs r6, 0 ldr r5, _0803C42C movs r4, 0 mov r8, sp _0803C3F2: movs r1, 0 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C41A movs r1, 0x2 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C41A mov r0, r8 adds r0, 0x4 mov r8, r0 subs r0, 0x4 stm r0!, {r4} adds r6, 0x1 _0803C41A: adds r5, 0x8 adds r4, 0x1 cmp r4, 0x14 ble _0803C3F2 ldr r5, _0803C42C cmp r6, 0 bne _0803C430 movs r0, 0 b _0803C44E .align 2, 0 _0803C42C: .4byte gUnknown_80E9920 _0803C430: adds r0, r6, 0 bl RandomCapped lsls r0, 2 add r0, sp ldr r4, [r0] lsls r0, r4, 3 adds r5, r0, r5 ldrh r0, [r5] strh r0, [r7, 0xC] ldrh r0, [r5, 0x2] strh r0, [r7, 0xE] movs r0, 0x7 strb r0, [r7, 0x2] movs r0, 0x1 _0803C44E: add sp, 0x54 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803C3E0 thumb_func_start sub_803C45C sub_803C45C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xB4 adds r7, r0, 0 movs r6, 0 ldr r5, _0803C4CC movs r4, 0 mov r8, sp _0803C46E: movs r1, 0 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C496 movs r1, 0x2 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C496 mov r0, r8 adds r0, 0x4 mov r8, r0 subs r0, 0x4 stm r0!, {r4} adds r6, 0x1 _0803C496: adds r5, 0xC adds r4, 0x1 cmp r4, 0x2C ble _0803C46E ldr r5, _0803C4CC cmp r6, 0 beq _0803C4E0 adds r0, r6, 0 bl RandomCapped lsls r0, 2 add r0, sp ldr r4, [r0] lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r5, r0, r5 bl Random movs r1, 0x10 ands r1, r0 cmp r1, 0 beq _0803C4D0 ldrh r0, [r5] strh r0, [r7, 0xC] ldrh r0, [r5, 0x2] b _0803C4D6 .align 2, 0 _0803C4CC: .4byte gUnknown_80E9F8C _0803C4D0: ldrh r0, [r5, 0x2] strh r0, [r7, 0xC] ldrh r0, [r5] _0803C4D6: strh r0, [r7, 0xE] movs r0, 0x8 strb r0, [r7, 0x2] movs r0, 0x1 b _0803C4E2 _0803C4E0: movs r0, 0 _0803C4E2: add sp, 0xB4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803C45C thumb_func_start sub_803C4F0 sub_803C4F0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x18 adds r7, r0, 0 movs r6, 0 ldr r5, _0803C55C movs r4, 0 mov r8, sp _0803C502: movs r1, 0 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C52A movs r1, 0x2 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C52A mov r0, r8 adds r0, 0x4 mov r8, r0 subs r0, 0x4 stm r0!, {r4} adds r6, 0x1 _0803C52A: adds r5, 0x4 adds r4, 0x1 cmp r4, 0x5 ble _0803C502 ldr r5, _0803C55C cmp r6, 0 beq _0803C570 adds r0, r6, 0 bl RandomCapped lsls r0, 2 add r0, sp ldr r4, [r0] lsls r0, r4, 2 adds r5, r0, r5 bl Random movs r1, 0x10 ands r1, r0 cmp r1, 0 beq _0803C560 ldrh r0, [r5] strh r0, [r7, 0xC] ldrh r0, [r5, 0x2] b _0803C566 .align 2, 0 _0803C55C: .4byte gUnknown_80E8168 _0803C560: ldrh r0, [r5, 0x2] strh r0, [r7, 0xC] ldrh r0, [r5] _0803C566: strh r0, [r7, 0xE] movs r0, 0x9 strb r0, [r7, 0x2] movs r0, 0x1 b _0803C572 _0803C570: movs r0, 0 _0803C572: add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803C4F0 thumb_func_start sub_803C580 sub_803C580: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x54 adds r6, r0, 0 movs r7, 0 ldr r5, _0803C5D8 movs r0, 0x6 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0803C5D2 movs r4, 0 mov r8, sp _0803C59E: movs r1, 0 ldrsh r0, [r5, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C5C6 ldrb r0, [r6, 0x4] ldrb r1, [r5, 0x2] bl sub_8091E60 lsls r0, 24 cmp r0, 0 beq _0803C5C6 mov r0, r8 adds r0, 0x4 mov r8, r0 subs r0, 0x4 stm r0!, {r4} adds r7, 0x1 _0803C5C6: adds r5, 0x4 adds r4, 0x1 cmp r4, 0x14 ble _0803C59E cmp r7, 0 bne _0803C5DC _0803C5D2: movs r0, 0 b _0803C600 .align 2, 0 _0803C5D8: .4byte gUnknown_80E8180 _0803C5DC: adds r0, r7, 0 bl RandomCapped lsls r0, 2 add r0, sp ldr r4, [r0] lsls r1, r4, 2 ldr r0, _0803C60C adds r5, r1, r0 ldrh r0, [r5] strh r0, [r6, 0xC] ldrh r0, [r5] strh r0, [r6, 0xE] ldrb r0, [r5, 0x2] strb r0, [r6, 0x10] movs r0, 0x5 strb r0, [r6, 0x2] movs r0, 0x1 _0803C600: add sp, 0x54 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803C60C: .4byte gUnknown_80E8180 thumb_func_end sub_803C580 thumb_func_start sub_803C610 sub_803C610: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0803C660 add sp, r4 adds r6, r0, 0 movs r7, 0 ldr r4, _0803C664 movs r5, 0 mov r8, sp _0803C624: movs r1, 0 ldrsh r0, [r4, r1] bl sub_803C110 lsls r0, 24 cmp r0, 0 beq _0803C64C ldrb r0, [r6, 0x4] ldrb r1, [r4, 0x2] bl sub_8091E60 lsls r0, 24 cmp r0, 0 beq _0803C64C mov r0, r8 adds r0, 0x4 mov r8, r0 subs r0, 0x4 stm r0!, {r5} adds r7, 0x1 _0803C64C: adds r4, 0x4 adds r5, 0x1 ldr r0, _0803C668 cmp r5, r0 ble _0803C624 cmp r7, 0 bne _0803C66C movs r0, 0 b _0803C690 .align 2, 0 _0803C660: .4byte 0xfffff9f8 _0803C664: .4byte gUnknown_80E81D4 _0803C668: .4byte 0x00000181 _0803C66C: adds r0, r7, 0 bl RandomCapped lsls r0, 2 add r0, sp ldr r5, [r0] lsls r1, r5, 2 ldr r0, _0803C6A0 adds r4, r1, r0 ldrh r0, [r4] strh r0, [r6, 0xC] ldrh r0, [r4] strh r0, [r6, 0xE] ldrb r0, [r4, 0x2] strb r0, [r6, 0x10] movs r0, 0x6 strb r0, [r6, 0x2] movs r0, 0x1 _0803C690: movs r3, 0xC1 lsls r3, 3 add sp, r3 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803C6A0: .4byte gUnknown_80E81D4 thumb_func_end sub_803C610 thumb_func_start sub_803C6A4 sub_803C6A4: push {r4,lr} ldr r4, _0803C6CC movs r0, 0xC0 movs r1, 0x8 bl MemoryAlloc str r0, [r4] adds r0, 0xB4 bl sub_801317C bl sub_803C6D0 movs r0, 0x1 bl sub_8099690 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0803C6CC: .4byte gUnknown_203B400 thumb_func_end sub_803C6A4 thumb_func_start sub_803C6D0 sub_803C6D0: push {r4,r5,lr} ldr r4, _0803C72C ldr r0, [r4] adds r0, 0x4 bl sub_8001024 ldr r1, [r4] movs r0, 0 str r0, [r1] str r0, [r1, 0x34] str r0, [r1, 0x38] movs r2, 0 movs r5, 0 adds r3, r4, 0 _0803C6EC: ldr r0, [r4] lsls r1, r2, 2 adds r0, 0x44 adds r0, r1 str r5, [r0] adds r2, 0x1 cmp r2, 0xC ble _0803C6EC ldr r1, [r3] movs r0, 0 str r0, [r1, 0x3C] movs r2, 0 adds r4, r3, 0 movs r1, 0 _0803C708: ldr r0, [r4] adds r0, 0x78 adds r0, r2 strb r1, [r0] adds r2, 0x1 cmp r2, 0x36 ble _0803C708 ldr r0, [r3] adds r0, 0x40 movs r1, 0 strb r1, [r0] ldr r0, [r3] adds r0, 0xB0 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803C72C: .4byte gUnknown_203B400 thumb_func_end sub_803C6D0 thumb_func_start sub_803C730 sub_803C730: push {r4,r5,lr} ldr r0, _0803C750 ldr r1, [r0] ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r0, [r1, 0x34] cmp r0, 0xF bls _0803C744 b _0803C848 _0803C744: lsls r0, 2 ldr r1, _0803C754 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803C750: .4byte gUnknown_203B400 _0803C754: .4byte _0803C758 .align 2, 0 _0803C758: .4byte _0803C798 .4byte _0803C79E .4byte _0803C7A4 .4byte _0803C7AA .4byte _0803C7B0 .4byte _0803C7B6 .4byte _0803C7BC .4byte _0803C7C2 .4byte _0803C7C8 .4byte _0803C7CE .4byte _0803C7D4 .4byte _0803C7DA .4byte _0803C7E0 .4byte _0803C7E6 .4byte _0803C7EC .4byte _0803C7F2 _0803C798: bl sub_803C870 b _0803C848 _0803C79E: bl sub_803C908 b _0803C848 _0803C7A4: bl sub_803C920 b _0803C848 _0803C7AA: bl sub_803C98C b _0803C848 _0803C7B0: bl sub_803C9D8 b _0803C848 _0803C7B6: bl sub_803CA54 b _0803C848 _0803C7BC: bl sub_803CA8C b _0803C848 _0803C7C2: bl sub_803CAAC b _0803C848 _0803C7C8: bl sub_803CAD4 b _0803C848 _0803C7CE: bl sub_803CAF4 b _0803C848 _0803C7D4: bl sub_803CB14 b _0803C848 _0803C7DA: bl sub_803CB5C b _0803C848 _0803C7E0: bl sub_803CB7C b _0803C848 _0803C7E6: bl sub_803CBB0 b _0803C848 _0803C7EC: bl sub_803CBE4 b _0803C848 _0803C7F2: bl Random ldr r4, _0803C844 ldr r1, [r4] ldr r1, [r1] adds r5, r0, 0 muls r5, r1 bl Random bl sub_8094D28 movs r1, 0 ldr r0, [r4] adds r2, r0, 0 adds r2, 0x44 _0803C810: ldm r2!, {r0} adds r0, r1 adds r0, 0x3 muls r5, r0 adds r1, 0x1 cmp r1, 0xC ble _0803C810 bl sub_8094E4C adds r5, r0 movs r0, 0x1 negs r0, r0 cmp r5, r0 bne _0803C838 adds r4, r5, 0 _0803C82E: bl sub_8094E4C adds r5, r0 cmp r5, r4 beq _0803C82E _0803C838: adds r0, r5, 0 bl sub_8011C40 movs r0, 0x3 b _0803C84A .align 2, 0 _0803C844: .4byte gUnknown_203B400 _0803C848: movs r0, 0 _0803C84A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803C730 thumb_func_start sub_803C850 sub_803C850: push {r4,lr} ldr r4, _0803C86C ldr r0, [r4] adds r0, 0x4 bl sub_8001044 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0803C86C: .4byte gUnknown_203B400 thumb_func_end sub_803C850 thumb_func_start sub_803C870 sub_803C870: push {r4-r6,lr} sub sp, 0x14 ldr r5, _0803C8A4 ldr r1, [r5] ldr r0, [r1, 0x38] adds r0, 0x1 str r0, [r1, 0x38] cmp r0, 0x8 ble _0803C8B4 ldr r0, _0803C8A8 ldr r3, _0803C8AC movs r1, 0 str r1, [sp] movs r4, 0x3 str r4, [sp, 0x4] str r1, [sp, 0x8] str r1, [sp, 0xC] ldr r1, _0803C8B0 str r1, [sp, 0x10] movs r1, 0 movs r2, 0 bl sub_8014248 ldr r0, [r5] str r4, [r0, 0x34] b _0803C8F8 .align 2, 0 _0803C8A4: .4byte gUnknown_203B400 _0803C8A8: .4byte gUnknown_80F273C _0803C8AC: .4byte gUnknown_80F275C _0803C8B0: .4byte 0x00000101 _0803C8B4: adds r4, r5, 0 _0803C8B6: movs r0, 0x37 bl RandomCapped ldr r1, [r4] str r0, [r1, 0x3C] adds r1, 0x78 adds r1, r0 ldrb r0, [r1] cmp r0, 0x1 beq _0803C8B6 ldr r2, _0803C900 ldr r1, _0803C904 ldr r0, [r1] ldr r0, [r0, 0x3C] adds r0, r2 ldrb r4, [r0] movs r3, 0 adds r6, r1, 0 movs r5, 0x1 _0803C8DC: adds r0, r3, r2 ldrb r0, [r0] cmp r0, r4 bne _0803C8EC ldr r0, [r1] adds r0, 0x78 adds r0, r3 strb r5, [r0] _0803C8EC: adds r3, 0x1 cmp r3, 0x36 ble _0803C8DC ldr r1, [r6] movs r0, 0x1 str r0, [r1, 0x34] _0803C8F8: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803C900: .4byte gNatureQuestionTable _0803C904: .4byte gUnknown_203B400 thumb_func_end sub_803C870 thumb_func_start sub_803C908 sub_803C908: push {lr} bl sub_803CC04 ldr r0, _0803C91C ldr r1, [r0] movs r0, 0x2 str r0, [r1, 0x34] pop {r0} bx r0 .align 2, 0 _0803C91C: .4byte gUnknown_203B400 thumb_func_end sub_803C908 thumb_func_start sub_803C920 sub_803C920: push {r4-r6,lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803C97C ldr r3, [sp] cmp r3, 0x63 bne _0803C944 ldr r0, _0803C940 ldr r1, [r0] movs r0, 0x37 str r0, [r1, 0x3C] movs r0, 0x1 b _0803C97A .align 2, 0 _0803C940: .4byte gUnknown_203B400 _0803C944: ldr r1, _0803C984 ldr r2, _0803C988 ldr r0, [r2] ldr r0, [r0, 0x3C] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r4, [r0, 0x8] lsls r0, r3, 4 adds r4, r0 movs r3, 0 adds r6, r2, 0 adds r5, r6, 0 _0803C95E: ldr r1, [r5] lsls r0, r3, 2 adds r1, 0x44 adds r1, r0 adds r0, r4, r3 ldrb r2, [r0] ldr r0, [r1] adds r0, r2 str r0, [r1] adds r3, 0x1 cmp r3, 0xC ble _0803C95E ldr r1, [r6] movs r0, 0 _0803C97A: str r0, [r1, 0x34] _0803C97C: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803C984: .4byte gPersonalityQuestionPointerTable _0803C988: .4byte gUnknown_203B400 thumb_func_end sub_803C920 thumb_func_start sub_803C98C sub_803C98C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803C9CA ldr r1, [sp] cmp r1, 0 bne _0803C9AC ldr r0, _0803C9A8 ldr r0, [r0] adds r0, 0xB0 b _0803C9B4 .align 2, 0 _0803C9A8: .4byte gUnknown_203B400 _0803C9AC: ldr r0, _0803C9D0 ldr r0, [r0] adds r0, 0xB0 movs r1, 0x1 _0803C9B4: str r1, [r0] ldr r0, _0803C9D4 ldr r0, [r0] strb r1, [r0, 0xB] movs r0, 0 bl sub_8099690 ldr r0, _0803C9D0 ldr r1, [r0] movs r0, 0x4 str r0, [r1, 0x34] _0803C9CA: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803C9D0: .4byte gUnknown_203B400 _0803C9D4: .4byte gUnknown_203B46C thumb_func_end sub_803C98C thumb_func_start sub_803C9D8 sub_803C9D8: push {r4-r7,lr} movs r0, 0xD bl RandomCapped ldr r2, _0803CA4C ldr r1, [r2] adds r1, 0x40 strb r0, [r1] ldr r0, [r2] adds r0, 0x40 ldrb r3, [r0] adds r7, r2, 0 movs r5, 0xB _0803C9F2: adds r3, 0x1 cmp r3, 0xC ble _0803C9FA movs r3, 0 _0803C9FA: ldr r0, [r7] lsls r2, r3, 2 adds r1, r0, 0 adds r1, 0x44 adds r2, r1, r2 adds r4, r0, 0 adds r4, 0x40 ldrb r0, [r4] lsls r0, 2 adds r1, r0 ldr r2, [r2] ldr r0, [r1] ldr r6, _0803CA4C cmp r2, r0 ble _0803CA1A strb r3, [r4] _0803CA1A: subs r5, 0x1 cmp r5, 0 bge _0803C9F2 ldr r3, [r6] ldr r2, _0803CA50 adds r0, r3, 0 adds r0, 0xB0 ldr r1, [r0] lsls r1, 1 subs r0, 0x70 ldrb r0, [r0] lsls r0, 2 adds r1, r0 adds r1, r2 ldrh r0, [r1] strh r0, [r3, 0x8] bl sub_803CC40 ldr r1, [r6] movs r0, 0x5 str r0, [r1, 0x34] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803CA4C: .4byte gUnknown_203B400 _0803CA50: .4byte gStarters thumb_func_end sub_803C9D8 thumb_func_start sub_803CA54 sub_803CA54: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803CA7A ldr r0, _0803CA80 ldr r3, _0803CA84 movs r1, 0 movs r2, 0 bl sub_80141B4 bl sub_803CC80 ldr r0, _0803CA88 ldr r1, [r0] movs r0, 0x6 str r0, [r1, 0x34] _0803CA7A: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803CA80: .4byte gUnknown_80F27C4 _0803CA84: .4byte 0x00000101 _0803CA88: .4byte gUnknown_203B400 thumb_func_end sub_803CA54 thumb_func_start sub_803CA8C sub_803CA8C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803CAA2 ldr r0, _0803CAA8 ldr r1, [r0] movs r0, 0x7 str r0, [r1, 0x34] _0803CAA2: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803CAA8: .4byte gUnknown_203B400 thumb_func_end sub_803CA8C thumb_func_start sub_803CAAC sub_803CAAC: push {lr} ldr r0, _0803CAC8 ldr r3, _0803CACC movs r1, 0 movs r2, 0 bl sub_80141B4 ldr r0, _0803CAD0 ldr r1, [r0] movs r0, 0x8 str r0, [r1, 0x34] pop {r0} bx r0 .align 2, 0 _0803CAC8: .4byte gUnknown_80F27DC _0803CACC: .4byte 0x00000301 _0803CAD0: .4byte gUnknown_203B400 thumb_func_end sub_803CAAC thumb_func_start sub_803CAD4 sub_803CAD4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803CAEA ldr r0, _0803CAF0 ldr r1, [r0] movs r0, 0x9 str r0, [r1, 0x34] _0803CAEA: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803CAF0: .4byte gUnknown_203B400 thumb_func_end sub_803CAD4 thumb_func_start sub_803CAF4 sub_803CAF4: push {r4,lr} ldr r4, _0803CB10 ldr r0, [r4] movs r1, 0x8 ldrsh r0, [r0, r1] bl sub_803CD08 ldr r1, [r4] movs r0, 0xA str r0, [r1, 0x34] pop {r4} pop {r0} bx r0 .align 2, 0 _0803CB10: .4byte gUnknown_203B400 thumb_func_end sub_803CAF4 thumb_func_start sub_803CB14 sub_803CB14: push {r4,r5,lr} bl sub_803CDC0 lsls r0, 16 lsrs r5, r0, 16 ldr r0, _0803CB4C cmp r5, r0 beq _0803CB46 subs r0, 0x1 cmp r5, r0 beq _0803CB46 bl sub_803CE6C ldr r4, _0803CB50 ldr r0, [r4] strh r5, [r0, 0xA] ldr r0, _0803CB54 ldr r3, _0803CB58 movs r1, 0 movs r2, 0 bl sub_80141B4 ldr r1, [r4] movs r0, 0xB str r0, [r1, 0x34] _0803CB46: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803CB4C: .4byte 0x0000ffff _0803CB50: .4byte gUnknown_203B400 _0803CB54: .4byte gUnknown_80F286C _0803CB58: .4byte 0x00000301 thumb_func_end sub_803CB14 thumb_func_start sub_803CB5C sub_803CB5C: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803CB72 ldr r0, _0803CB78 ldr r1, [r0] movs r0, 0xC str r0, [r1, 0x34] _0803CB72: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803CB78: .4byte gUnknown_203B400 thumb_func_end sub_803CB5C thumb_func_start sub_803CB7C sub_803CB7C: push {r4,r5,lr} ldr r4, _0803CBAC ldr r0, [r4] adds r5, r0, 0 adds r5, 0x20 movs r1, 0xA ldrsh r0, [r0, r1] bl sub_808D994 adds r1, r0, 0 adds r0, r5, 0 bl sub_80922F4 ldr r1, [r4] adds r1, 0x20 movs r0, 0x3 bl sub_801602C ldr r1, [r4] movs r0, 0xD str r0, [r1, 0x34] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803CBAC: .4byte gUnknown_203B400 thumb_func_end sub_803CB7C thumb_func_start sub_803CBB0 sub_803CBB0: push {lr} bl sub_8016080 cmp r0, 0 beq _0803CBD2 bl sub_80160D8 ldr r0, _0803CBD8 ldr r3, _0803CBDC movs r1, 0 movs r2, 0 bl sub_80141B4 ldr r0, _0803CBE0 ldr r1, [r0] movs r0, 0xE str r0, [r1, 0x34] _0803CBD2: pop {r0} bx r0 .align 2, 0 _0803CBD8: .4byte gUnknown_80F2898 _0803CBDC: .4byte 0x00000301 _0803CBE0: .4byte gUnknown_203B400 thumb_func_end sub_803CBB0 thumb_func_start sub_803CBE4 sub_803CBE4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0803CBFA ldr r0, _0803CC00 ldr r1, [r0] movs r0, 0xF str r0, [r1, 0x34] _0803CBFA: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0803CC00: .4byte gUnknown_203B400 thumb_func_end sub_803CBE4 thumb_func_start sub_803CC04 sub_803CC04: push {lr} sub sp, 0x14 ldr r1, _0803CC38 ldr r0, _0803CC3C ldr r0, [r0] ldr r0, [r0, 0x3C] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r1] ldr r3, [r1, 0x4] movs r2, 0 str r2, [sp] movs r1, 0x3 str r1, [sp, 0x4] str r2, [sp, 0x8] str r2, [sp, 0xC] adds r1, 0xFE str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 add sp, 0x14 pop {r0} bx r0 .align 2, 0 _0803CC38: .4byte gPersonalityQuestionPointerTable _0803CC3C: .4byte gUnknown_203B400 thumb_func_end sub_803CC04 thumb_func_start sub_803CC40 sub_803CC40: push {r4,lr} ldr r0, _0803CC70 ldr r4, _0803CC74 ldr r1, [r4] movs r2, 0x8 ldrsh r1, [r1, r2] bl sub_808D8BC ldr r1, _0803CC78 ldr r0, [r4] adds r0, 0x40 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r3, _0803CC7C movs r1, 0 movs r2, 0 bl sub_80141B4 pop {r4} pop {r0} bx r0 .align 2, 0 _0803CC70: .4byte gUnknown_202DF98 _0803CC74: .4byte gUnknown_203B400 _0803CC78: .4byte gPersonalityTypeDescriptionTable _0803CC7C: .4byte 0x00000101 thumb_func_end sub_803CC40 thumb_func_start sub_803CC80 sub_803CC80: push {r4-r7,lr} sub sp, 0x60 ldr r0, _0803CD00 ldr r0, [r0] movs r1, 0x8 ldrsh r4, [r0, r1] mov r0, sp bl sub_8006518 add r1, sp, 0x18 ldr r0, _0803CD04 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 mov r0, sp movs r1, 0x1 movs r2, 0 bl sub_800641C movs r0, 0x1 bl sub_8008C54 movs r0, 0x1 bl sub_80073B8 adds r0, r4, 0 bl sub_808DDD0 adds r5, r0, 0 ldr r0, [r5, 0x4] ldr r6, [r0, 0xC] movs r4, 0 movs r7, 0x8 _0803CCC8: adds r0, r4, 0 adds r0, 0xE0 ldr r1, [r5, 0x4] adds r1, r7 lsls r2, r4, 2 ldr r1, [r1] adds r1, r2 bl SetBGPaletteBufferColorArray adds r4, 0x1 cmp r4, 0xF ble _0803CCC8 movs r0, 0x1 adds r1, r6, 0 movs r2, 0xE bl sub_800836C adds r0, r5, 0 bl CloseFile movs r0, 0x1 bl sub_80073E0 add sp, 0x60 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803CD00: .4byte gUnknown_203B400 _0803CD04: .4byte gUnknown_80F4244 thumb_func_end sub_803CC80 thumb_func_start sub_803CD08 sub_803CD08: push {r4-r7,lr} adds r4, r0, 0 lsls r4, 16 asrs r4, 16 bl sub_803CEAC ldr r5, _0803CDB0 ldr r0, [r5] movs r3, 0 movs r1, 0 strh r4, [r0] str r1, [r0, 0x4C] adds r1, r0, 0 adds r1, 0x54 str r1, [r0, 0x50] ldr r0, _0803CDB4 ldm r0!, {r2,r4,r6} stm r1!, {r2,r4,r6} ldm r0!, {r2,r4,r7} stm r1!, {r2,r4,r7} ldr r1, [r5] adds r1, 0x6C ldr r0, _0803CDB8 ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldr r1, [r5] ldr r2, _0803CDBC adds r1, 0x84 adds r0, r2, 0 ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldr r0, [r5] adds r0, 0x9C ldm r2!, {r1,r4,r6} stm r0!, {r1,r4,r6} ldm r2!, {r1,r4,r7} stm r0!, {r1,r4,r7} ldr r0, [r5] ldr r1, [r0, 0x50] adds r0, 0xB4 str r0, [r1, 0x14] movs r1, 0x1 strb r1, [r0] ldr r0, [r5] adds r0, 0xB5 strb r3, [r0] ldr r0, [r5] adds r0, 0xB6 movs r1, 0x6 strb r1, [r0] ldr r0, [r5] adds r0, 0xB7 strb r3, [r0] bl sub_8004914 ldr r0, [r5] adds r0, 0x54 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x18 bl sub_803D030 adds r1, r0, 0 ldr r0, [r5] ldr r3, [r0, 0x4C] adds r0, r4, 0 movs r2, 0xA bl sub_8013818 bl sub_803CEF0 bl sub_803CFC0 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803CDB0: .4byte gUnknown_203B404 _0803CDB4: .4byte gUnknown_80F4290 _0803CDB8: .4byte gUnknown_80F42A8 _0803CDBC: .4byte gUnknown_80F4278 thumb_func_end sub_803CD08 thumb_func_start sub_803CDC0 sub_803CDC0: push {r4,r5,lr} ldr r4, _0803CDF0 ldr r1, [r4] movs r0, 0x30 ldrsh r5, [r1, r0] movs r0, 0 strb r0, [r1, 0x16] ldr r0, [r4] adds r0, 0x18 bl GetKeyPress cmp r0, 0x1 bne _0803CDF4 movs r0, 0 bl sub_80119D4 ldr r0, [r4] movs r2, 0x30 ldrsh r1, [r0, r2] lsls r1, 1 adds r0, 0x2 adds r0, r1 ldrh r0, [r0] b _0803CE2A .align 2, 0 _0803CDF0: .4byte gUnknown_203B404 _0803CDF4: ldr r0, [r4] adds r0, 0x18 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 beq _0803CE08 bl sub_803CEF0 _0803CE08: ldr r0, [r4] movs r1, 0x30 ldrsh r0, [r0, r1] cmp r5, r0 beq _0803CE16 bl sub_803CFC0 _0803CE16: ldr r0, [r4] ldrb r0, [r0, 0x16] cmp r0, 0 bne _0803CE28 ldr r0, _0803CE24 b _0803CE2A .align 2, 0 _0803CE24: .4byte 0x0000ffff _0803CE28: ldr r0, _0803CE30 _0803CE2A: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0803CE30: .4byte 0x0000fffe thumb_func_end sub_803CDC0 thumb_func_start sub_803CE34 sub_803CE34: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_803D030 adds r1, r0, 0 ldr r5, _0803CE68 ldr r0, [r5] strh r1, [r0, 0x3A] adds r0, 0x18 bl sub_8013984 bl sub_803CEF0 bl sub_803CFC0 cmp r4, 0 beq _0803CE62 ldr r0, [r5] adds r0, 0x18 bl AddMenuCursorSprite _0803CE62: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803CE68: .4byte gUnknown_203B404 thumb_func_end sub_803CE34 thumb_func_start sub_803CE6C sub_803CE6C: push {r4,r5,lr} ldr r4, _0803CEA4 ldr r1, [r4] ldr r2, [r1, 0x4C] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x54 ldr r0, _0803CEA8 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl sub_8004914 ldr r0, [r4] adds r0, 0x54 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_803CECC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803CEA4: .4byte gUnknown_203B404 _0803CEA8: .4byte gUnknown_80F4278 thumb_func_end sub_803CE6C thumb_func_start sub_803CEAC sub_803CEAC: push {r4,lr} ldr r4, _0803CEC4 movs r0, 0xB8 movs r1, 0x8 bl MemoryAlloc str r0, [r4] bl nullsub_135 pop {r4} pop {r0} bx r0 .align 2, 0 _0803CEC4: .4byte gUnknown_203B404 thumb_func_end sub_803CEAC thumb_func_start nullsub_135 nullsub_135: bx lr thumb_func_end nullsub_135 thumb_func_start sub_803CECC sub_803CECC: push {r4,lr} ldr r4, _0803CEEC ldr r0, [r4] cmp r0, 0 beq _0803CEE4 bl nullsub_135 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0803CEE4: pop {r4} pop {r0} bx r0 .align 2, 0 _0803CEEC: .4byte gUnknown_203B404 thumb_func_end sub_803CECC thumb_func_start sub_803CEF0 sub_803CEF0: push {r4-r6,lr} sub sp, 0x4 ldr r6, _0803CF60 ldr r0, [r6] movs r1, 0x32 ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r6] ldr r3, [r2, 0x4C] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x62 movs r4, 0 asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x4C] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x64 strh r3, [r2] bl sub_8004914 ldr r0, [r6] adds r0, 0x54 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r6] ldr r0, [r0, 0x4C] bl sub_8008C54 ldr r0, [r6] ldr r0, [r0, 0x4C] bl sub_80073B8 ldr r2, _0803CF64 ldr r0, [r6] ldr r3, [r0, 0x4C] str r4, [sp] movs r0, 0xC movs r1, 0 bl xxx_call_draw_string movs r5, 0 b _0803CF98 .align 2, 0 _0803CF60: .4byte gUnknown_203B404 _0803CF64: .4byte gUnknown_80F42C0 _0803CF68: ldr r0, [r6] adds r0, 0x18 adds r1, r5, 0 bl sub_8013800 adds r4, r0, 0 ldr r0, [r6] lsls r1, r5, 1 adds r0, 0x2 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bl sub_808D994 adds r2, r0, 0 ldr r0, [r6] ldr r3, [r0, 0x4C] movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r4, 0 bl xxx_call_draw_string adds r5, 0x1 _0803CF98: ldr r0, [r6] movs r1, 0x32 ldrsh r0, [r0, r1] cmp r5, r0 blt _0803CF68 ldr r4, _0803CFBC ldr r0, [r4] ldr r0, [r0, 0x4C] bl sub_80073E0 ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0x16] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803CFBC: .4byte gUnknown_203B404 thumb_func_end sub_803CEF0 thumb_func_start sub_803CFC0 sub_803CFC0: push {r4-r7,lr} ldr r0, _0803D02C ldr r0, [r0] movs r2, 0x30 ldrsh r1, [r0, r2] lsls r1, 1 adds r0, 0x2 adds r0, r1 movs r1, 0 ldrsh r4, [r0, r1] movs r0, 0x1 bl sub_8008C54 movs r0, 0x1 bl sub_80073B8 adds r0, r4, 0 bl sub_808DDD0 adds r5, r0, 0 ldr r0, [r5, 0x4] ldr r6, [r0, 0x4] movs r4, 0 movs r7, 0 _0803CFF0: adds r0, r4, 0 adds r0, 0xE0 ldr r1, [r5, 0x4] adds r1, r7 lsls r2, r4, 2 ldr r1, [r1] adds r1, r2 bl SetBGPaletteBufferColorArray adds r4, 0x1 cmp r4, 0xF ble _0803CFF0 movs r0, 0x1 adds r1, r6, 0 movs r2, 0xE bl sub_800836C adds r0, r5, 0 bl CloseFile movs r0, 0x1 bl sub_80073E0 ldr r0, _0803D02C ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x16] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803D02C: .4byte gUnknown_203B404 thumb_func_end sub_803CFC0 thumb_func_start sub_803D030 sub_803D030: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r0, 0 mov r8, r0 ldr r4, _0803D0D0 ldr r0, [r4] movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0 bl sub_808DC68 mov r1, sp strb r0, [r1] ldr r0, [r4] movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0x1 bl sub_808DC68 mov r1, sp strb r0, [r1, 0x1] movs r7, 0 add r6, sp, 0x4 mov r5, sp _0803D064: ldr r0, _0803D0D4 lsls r1, r7, 1 adds r1, r0 movs r0, 0 ldrsh r4, [r1, r0] adds r0, r4, 0 movs r1, 0 bl sub_808DC68 strb r0, [r6] adds r0, r4, 0 movs r1, 0x1 bl sub_808DC68 adds r2, r0, 0 strb r2, [r6, 0x1] ldrb r1, [r6] cmp r1, 0 beq _0803D096 ldrb r0, [r5] cmp r1, r0 beq _0803D0BC ldrb r0, [r5, 0x1] cmp r1, r0 beq _0803D0BC _0803D096: lsls r0, r2, 24 lsrs r1, r0, 24 cmp r1, 0 beq _0803D0AA ldrb r2, [r5] cmp r1, r2 beq _0803D0BC ldrb r0, [r5, 0x1] cmp r1, r0 beq _0803D0BC _0803D0AA: ldr r0, _0803D0D0 ldr r0, [r0] mov r2, r8 lsls r1, r2, 1 adds r0, 0x2 adds r0, r1 strh r4, [r0] movs r0, 0x1 add r8, r0 _0803D0BC: adds r7, 0x1 cmp r7, 0x9 ble _0803D064 mov r0, r8 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803D0D0: .4byte gUnknown_203B404 _0803D0D4: .4byte gPartners thumb_func_end sub_803D030 thumb_func_start sub_803D0D8 sub_803D0D8: ldr r0, _0803D0E0 ldrb r0, [r0] bx lr .align 2, 0 _0803D0E0: .4byte gUnknown_203B408 thumb_func_end sub_803D0D8 thumb_func_start sub_803D0E4 sub_803D0E4: ldr r1, _0803D0EC strb r0, [r1] bx lr .align 2, 0 _0803D0EC: .4byte gUnknown_203B408 thumb_func_end sub_803D0E4 thumb_func_start sub_803D0F0 sub_803D0F0: lsls r0, 24 lsrs r0, 24 ldr r1, _0803D0FC adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0803D0FC: .4byte gUnknown_80F42F0 thumb_func_end sub_803D0F0 thumb_func_start sub_803D100 sub_803D100: lsls r0, 24 lsrs r0, 24 ldr r1, _0803D10C adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0803D10C: .4byte gUnknown_80F42D0 thumb_func_end sub_803D100 thumb_func_start sub_803D110 sub_803D110: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x6C adds r6, r0, 0 mov r9, r1 adds r5, r2, 0 add r7, sp, 0x48 adds r2, r7, 0 movs r1, 0 mov r0, sp adds r0, 0x69 _0803D12A: strb r1, [r0] subs r0, 0x1 cmp r0, r2 bge _0803D12A movs r4, 0 cmp r4, r5 bge _0803D158 _0803D138: ldrb r0, [r6] bl sub_803D0F0 add r1, sp, 0x10 adds r1, r4 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0803D150 movs r0, 0 b _0803D19A _0803D150: adds r6, 0x1 adds r4, 0x1 cmp r4, r5 blt _0803D138 _0803D158: lsls r0, r5, 2 adds r0, r5 adds r2, r0, 0x5 cmp r2, 0 bge _0803D164 adds r2, 0x7 _0803D164: asrs r2, 3 mov r8, r2 mov r0, sp adds r1, r7, 0 bl sub_809486C movs r4, 0 cmp r4, r5 bge _0803D188 add r6, sp, 0x10 _0803D178: adds r1, r6, r4 mov r0, sp movs r2, 0x5 bl sub_809488C adds r4, 0x1 cmp r4, r5 blt _0803D178 _0803D188: mov r0, sp bl nullsub_102 mov r0, r9 adds r1, r7, 0 mov r2, r8 bl MemoryCopy8 movs r0, 0x1 _0803D19A: add sp, 0x6C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803D110 thumb_func_start sub_803D1A8 sub_803D1A8: push {r4-r7,lr} sub sp, 0x48 adds r7, r0, 0 adds r5, r2, 0 lsls r0, r5, 2 adds r0, r5 adds r2, r0, 0x5 cmp r2, 0 bge _0803D1BC adds r2, 0x7 _0803D1BC: asrs r2, 3 mov r0, sp bl sub_809485C movs r4, 0 cmp r4, r5 bge _0803D1DC add r6, sp, 0x10 _0803D1CC: adds r1, r6, r4 mov r0, sp movs r2, 0x5 bl sub_8094924 adds r4, 0x1 cmp r4, r5 blt _0803D1CC _0803D1DC: mov r0, sp bl nullsub_102 movs r4, 0 cmp r4, r5 bge _0803D1FC add r6, sp, 0x10 _0803D1EA: adds r0, r6, r4 ldrb r0, [r0] bl sub_803D100 strb r0, [r7] adds r7, 0x1 adds r4, 0x1 cmp r4, r5 blt _0803D1EA _0803D1FC: add sp, 0x48 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_803D1A8 thumb_func_start sub_803D204 sub_803D204: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xA4 adds r2, r0, 0 mov r9, r1 movs r6, 0 add r4, sp, 0x5C adds r0, r4, 0 adds r1, r2, 0 movs r2, 0x36 bl MemoryCopy8 movs r2, 0 mov r8, r4 add r5, sp, 0x24 ldr r4, _0803D2A8 mov r12, r4 mov r10, r5 _0803D22E: movs r1, 0 mov r3, r12 adds r0, r2, r3 adds r3, r2, 0x1 ldrb r0, [r0] cmp r1, r0 beq _0803D24A adds r0, r2, r4 _0803D23E: adds r1, 0x1 cmp r1, 0x35 bgt _0803D24A ldrb r7, [r0] cmp r1, r7 bne _0803D23E _0803D24A: mov r7, r10 adds r0, r7, r2 add r1, r8 ldrb r1, [r1] strb r1, [r0] adds r2, r3, 0 cmp r2, 0x35 ble _0803D22E adds r0, r5, 0 mov r1, sp movs r2, 0x36 bl sub_803D110 lsls r0, 24 cmp r0, 0 beq _0803D2AC movs r2, 0x1 _0803D26C: mov r1, sp adds r0, r1, r2 ldrb r0, [r0] adds r0, r2 adds r0, r6, r0 lsls r0, 24 lsrs r6, r0, 24 adds r2, 0x1 cmp r2, 0x21 ble _0803D26C mov r0, sp ldrb r0, [r0] cmp r0, r6 bne _0803D2AC add r4, sp, 0x94 adds r1, 0x1 adds r0, r4, 0 movs r2, 0x21 bl sub_809485C adds r0, r4, 0 mov r1, r9 bl sub_8095774 adds r0, r4, 0 bl nullsub_102 movs r0, 0x1 b _0803D2AE .align 2, 0 _0803D2A8: .4byte gUnknown_80F43F0 _0803D2AC: movs r0, 0 _0803D2AE: add sp, 0xA4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803D204 thumb_func_start sub_803D2C0 sub_803D2C0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xA4 mov r9, r0 adds r6, r1, 0 movs r5, 0 add r4, sp, 0x94 mov r1, sp adds r1, 0x1 add r7, sp, 0x24 add r0, sp, 0x5C mov r8, r0 movs r2, 0 mov r0, sp adds r0, 0x21 _0803D2E2: strb r2, [r0] subs r0, 0x1 cmp r0, sp bge _0803D2E2 adds r0, r4, 0 movs r2, 0x21 bl sub_809486C adds r0, r4, 0 adds r1, r6, 0 bl sub_8095824 adds r0, r4, 0 bl nullsub_102 movs r2, 0x1 _0803D302: mov r1, sp adds r0, r1, r2 ldrb r0, [r0] adds r0, r2 adds r0, r5, r0 lsls r0, 24 lsrs r5, r0, 24 adds r2, 0x1 cmp r2, 0x21 ble _0803D302 mov r0, sp strb r5, [r0] adds r0, r7, 0 movs r2, 0x36 bl sub_803D1A8 movs r2, 0 mov r4, r8 ldr r5, _0803D354 adds r3, r7, 0 _0803D32A: adds r0, r2, r5 ldrb r1, [r0] adds r1, r4, r1 adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, 0x35 ble _0803D32A mov r0, r9 mov r1, r8 movs r2, 0x36 bl MemoryCopy8 add sp, 0xA4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803D354: .4byte gUnknown_80F43F0 thumb_func_end sub_803D2C0 thumb_func_start sub_803D358 sub_803D358: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x50 adds r2, r0, 0 mov r9, r1 movs r6, 0 add r4, sp, 0x28 adds r0, r4, 0 adds r1, r2, 0 movs r2, 0x18 bl MemoryCopy8 movs r2, 0 mov r8, r4 add r5, sp, 0x10 ldr r4, _0803D3FC mov r12, r4 mov r10, r5 _0803D382: movs r1, 0 mov r3, r12 adds r0, r2, r3 adds r3, r2, 0x1 ldrb r0, [r0] cmp r1, r0 beq _0803D39E adds r0, r2, r4 _0803D392: adds r1, 0x1 cmp r1, 0x17 bgt _0803D39E ldrb r7, [r0] cmp r1, r7 bne _0803D392 _0803D39E: mov r7, r10 adds r0, r7, r2 add r1, r8 ldrb r1, [r1] strb r1, [r0] adds r2, r3, 0 cmp r2, 0x17 ble _0803D382 adds r0, r5, 0 mov r1, sp movs r2, 0x18 bl sub_803D110 lsls r0, 24 cmp r0, 0 beq _0803D400 movs r2, 0x1 _0803D3C0: mov r1, sp adds r0, r1, r2 ldrb r0, [r0] adds r0, r2 adds r0, r6, r0 lsls r0, 24 lsrs r6, r0, 24 adds r2, 0x1 cmp r2, 0xE ble _0803D3C0 mov r0, sp ldrb r0, [r0] cmp r0, r6 bne _0803D400 add r4, sp, 0x40 adds r1, 0x1 adds r0, r4, 0 movs r2, 0xC bl sub_809485C adds r0, r4, 0 mov r1, r9 bl sub_80971EC adds r0, r4, 0 bl nullsub_102 movs r0, 0x1 b _0803D402 .align 2, 0 _0803D3FC: .4byte gUnknown_80F4426 _0803D400: movs r0, 0 _0803D402: add sp, 0x50 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803D358 thumb_func_start sub_803D414 sub_803D414: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x50 mov r9, r0 adds r6, r1, 0 movs r5, 0 add r4, sp, 0x40 mov r1, sp adds r1, 0x1 add r7, sp, 0x10 add r0, sp, 0x28 mov r8, r0 movs r2, 0 mov r0, sp adds r0, 0xE _0803D436: strb r2, [r0] subs r0, 0x1 cmp r0, sp bge _0803D436 adds r0, r4, 0 movs r2, 0xC bl sub_809486C adds r0, r4, 0 adds r1, r6, 0 bl sub_8097270 adds r0, r4, 0 bl nullsub_102 movs r2, 0x1 _0803D456: mov r1, sp adds r0, r1, r2 ldrb r0, [r0] adds r0, r2 adds r0, r5, r0 lsls r0, 24 lsrs r5, r0, 24 adds r2, 0x1 cmp r2, 0xE ble _0803D456 mov r0, sp strb r5, [r0] adds r0, r7, 0 movs r2, 0x18 bl sub_803D1A8 movs r2, 0 mov r4, r8 ldr r5, _0803D4A8 adds r3, r7, 0 _0803D47E: adds r0, r2, r5 ldrb r1, [r0] adds r1, r4, r1 adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, 0x17 ble _0803D47E mov r0, r9 mov r1, r8 movs r2, 0x18 bl MemoryCopy8 add sp, 0x50 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803D4A8: .4byte gUnknown_80F4426 thumb_func_end sub_803D414 thumb_func_start sub_803D4AC sub_803D4AC: ldr r2, _0803D4C4 ldr r0, [r2] ldr r1, _0803D4C8 adds r0, r1 movs r1, 0x63 strb r1, [r0] ldr r0, [r2] ldr r1, _0803D4CC adds r0, r1 movs r1, 0xFF strb r1, [r0] bx lr .align 2, 0 _0803D4C4: .4byte gUnknown_203B418 _0803D4C8: .4byte 0x0001c570 _0803D4CC: .4byte 0x0001c571 thumb_func_end sub_803D4AC thumb_func_start sub_803D4D0 sub_803D4D0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1FC ldr r6, _0803D654 ldr r1, [r6] movs r4, 0xC9 lsls r4, 3 adds r0, r1, r4 ldr r2, _0803D658 adds r1, r2 bl sub_80901D8 ldr r0, [r6] ldr r3, _0803D65C adds r2, r0, r3 adds r1, r0, r4 ldrh r0, [r2] ldrh r4, [r1] cmp r0, r4 bne _0803D500 b _0803D6E0 _0803D500: ldr r0, [r1] str r0, [r2] ldr r0, _0803D660 ldr r1, _0803D664 bl OpenFileAndGetFileDataPtr mov r9, r0 ldr r3, [r0, 0x4] ldr r2, [r6] ldr r7, _0803D65C adds r0, r2, r7 ldrb r1, [r0] ldr r0, [r3] lsls r1, 2 adds r1, r0 ldr r3, _0803D668 adds r0, r2, r3 ldrb r0, [r0] lsls r0, 4 ldr r1, [r1] adds r1, r0 mov r8, r1 ldr r4, _0803D658 adds r2, r4 ldrb r0, [r2] bl sub_8090298 ldr r1, [r6] ldr r7, _0803D66C adds r1, r7 strb r0, [r1] ldr r0, [r6] adds r0, r4 ldrb r0, [r0] bl sub_80902C8 ldr r1, [r6] strh r0, [r1, 0x14] mov r2, r9 ldr r0, [r2, 0x4] mov r3, r8 movs r4, 0 ldrsh r2, [r3, r4] ldr r3, [r0, 0x4] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 ldr r7, _0803D670 adds r1, r7 adds r0, r3 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r0, [r0] str r0, [r1] movs r5, 0 mov r10, r6 ldr r4, _0803D674 _0803D576: mov r6, r10 ldr r2, [r6] lsls r3, r5, 1 adds r2, r4 adds r2, r3 mov r7, r9 ldr r1, [r7, 0x4] mov r6, r8 movs r7, 0x4 ldrsh r0, [r6, r7] ldr r1, [r1, 0x10] lsls r0, 2 adds r0, r1 ldr r0, [r0] adds r3, r0 ldrh r0, [r3] strh r0, [r2] adds r5, 0x1 cmp r5, 0x13 ble _0803D576 movs r5, 0 adds r6, 0x6 str r6, [sp, 0x1F8] ldr r6, _0803D678 mov r10, r6 _0803D5A8: ldr r1, _0803D654 ldr r0, [r1] lsls r3, r5, 3 mov r2, r10 adds r4, r0, r2 adds r4, r3 mov r12, r4 mov r4, r9 ldr r2, [r4, 0x4] mov r7, r8 movs r4, 0x2 ldrsh r1, [r7, r4] ldr r2, [r2, 0xC] lsls r1, 2 adds r1, r2 ldr r1, [r1] adds r3, r1 ldr r1, [r3] ldr r2, [r3, 0x4] mov r7, r12 str r1, [r7] str r2, [r7, 0x4] adds r0, r6 bl sub_808E9B8 lsls r0, 16 cmp r0, 0 beq _0803D5E8 adds r6, 0x8 adds r5, 0x1 cmp r5, 0x1E ble _0803D5A8 _0803D5E8: cmp r5, 0x1F bgt _0803D606 ldr r6, _0803D654 lsls r0, r5, 3 ldr r1, _0803D678 adds r4, r0, r1 _0803D5F4: ldr r0, [r6] adds r0, r4 movs r1, 0 bl sub_808E9C4 adds r4, 0x8 adds r5, 0x1 cmp r5, 0x1F ble _0803D5F4 _0803D606: movs r5, 0 ldr r2, _0803D67C mov r10, r2 _0803D60C: mov r3, r9 ldr r1, [r3, 0x4] lsls r0, r5, 1 ldr r4, [sp, 0x1F8] adds r0, r4, r0 movs r6, 0 ldrsh r0, [r0, r6] ldr r1, [r1, 0x8] lsls r0, 2 adds r0, r1 movs r4, 0 adds r7, r5, 0x1 mov r8, r7 lsls r1, r5, 6 mov r12, r1 ldr r3, [r0] mov r2, sp _0803D62E: ldrh r0, [r3] cmp r0, r10 bls _0803D684 ldrh r0, [r3] ldr r6, _0803D680 adds r1, r0, r6 cmp r1, 0 beq _0803D68A movs r6, 0 lsls r0, r4, 1 add r0, sp _0803D644: strh r6, [r0] adds r0, 0x2 adds r2, 0x2 adds r4, 0x1 subs r1, 0x1 cmp r1, 0 bne _0803D644 b _0803D68A .align 2, 0 _0803D654: .4byte gUnknown_203B418 _0803D658: .4byte 0x00000644 _0803D65C: .4byte 0x0001c570 _0803D660: .4byte gUnknown_80F4D8C _0803D664: .4byte gUnknown_83B0000 _0803D668: .4byte 0x0001c571 _0803D66C: .4byte 0x0001cec8 _0803D670: .4byte 0x0001c574 _0803D674: .4byte 0x0001cd70 _0803D678: .4byte 0x0001cd98 _0803D67C: .4byte 0x0000752f _0803D680: .4byte 0xffff8ad0 _0803D684: strh r0, [r2] adds r2, 0x2 adds r4, 0x1 _0803D68A: adds r3, 0x2 cmp r4, 0xFB ble _0803D62E ldr r7, _0803D6F0 mov r1, r12 subs r0, r1, r5 movs r4, 0xB mov r3, sp lsls r2, r0, 3 ldr r6, _0803D6F4 _0803D69E: ldr r0, [r7] adds r0, r6 adds r0, r2 ldrh r1, [r3] strh r1, [r0] adds r3, 0x2 adds r2, 0x2 subs r4, 0x1 cmp r4, 0 bge _0803D69E ldr r6, _0803D6F0 mov r2, r12 subs r0, r2, r5 lsls r3, r0, 3 add r2, sp, 0x18 ldr r5, _0803D6F8 movs r4, 0xEF _0803D6C0: ldr r0, [r6] adds r0, r5 adds r0, r3 ldrh r1, [r2] strh r1, [r0] adds r2, 0x2 adds r3, 0x2 subs r4, 0x1 cmp r4, 0 bge _0803D6C0 mov r5, r8 cmp r5, 0x3 ble _0803D60C mov r0, r9 bl CloseFile _0803D6E0: add sp, 0x1FC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803D6F0: .4byte gUnknown_203B418 _0803D6F4: .4byte 0x0001c590 _0803D6F8: .4byte 0x0001c5a8 thumb_func_end sub_803D4D0 thumb_func_start sub_803D6FC sub_803D6FC: push {r4,lr} ldr r0, _0803D720 bl sub_8084100 adds r3, r0, 0 movs r2, 0 ldr r0, _0803D724 ldr r0, [r0] ldr r4, _0803D728 adds r1, r0, r4 _0803D710: ldrh r0, [r1] cmp r0, 0 beq _0803D72C cmp r0, r3 blt _0803D72C lsls r0, r2, 24 lsrs r0, 24 b _0803D736 .align 2, 0 _0803D720: .4byte 0x00002710 _0803D724: .4byte gUnknown_203B418 _0803D728: .4byte 0x0001cd70 _0803D72C: adds r1, 0x2 adds r2, 0x1 cmp r2, 0x13 ble _0803D710 movs r0, 0x10 _0803D736: pop {r4} pop {r1} bx r1 thumb_func_end sub_803D6FC thumb_func_start sub_803D73C sub_803D73C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r4, r0, 0 ldr r0, _0803D784 bl sub_8084100 adds r7, r0, 0 movs r0, 0xC mov r8, r0 movs r6, 0 ldr r0, _0803D788 ldr r2, [r0] lsls r1, r4, 6 subs r0, r1, r4 adds r5, r1, 0 lsls r0, 3 ldr r1, _0803D78C adds r2, r1 adds r1, r0, r2 _0803D766: movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _0803D772 cmp r0, r7 bge _0803D790 _0803D772: adds r1, 0x2 adds r6, 0x1 cmp r6, 0xB ble _0803D766 _0803D77A: mov r0, r8 cmp r0, 0xC bne _0803D79C b _0803D7EC .align 2, 0 _0803D784: .4byte 0x00002710 _0803D788: .4byte gUnknown_203B418 _0803D78C: .4byte 0x0001c590 _0803D790: lsls r0, r6, 24 lsrs r0, 24 mov r8, r0 b _0803D77A _0803D798: adds r0, r5, 0 b _0803D7EE _0803D79C: ldr r0, _0803D7FC bl sub_8084100 adds r7, r0, 0 movs r6, 0 ldr r2, _0803D800 subs r0, r5, r4 ldr r1, _0803D804 lsls r4, r0, 3 _0803D7AE: ldr r0, [r2] adds r0, r1 adds r0, r4 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 beq _0803D7E4 lsls r0, r6, 24 lsrs r5, r0, 24 adds r0, r5, 0 str r1, [sp] str r2, [sp, 0x4] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 ldr r1, [sp] ldr r2, [sp, 0x4] cmp r0, r8 bne _0803D7E4 ldr r0, [r2] adds r0, r1 adds r0, r4 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, r7 bge _0803D798 _0803D7E4: adds r4, 0x2 adds r6, 0x1 cmp r6, 0xEF ble _0803D7AE _0803D7EC: movs r0, 0x69 _0803D7EE: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803D7FC: .4byte 0x00002710 _0803D800: .4byte gUnknown_203B418 _0803D804: .4byte 0x0001c5a8 thumb_func_end sub_803D73C thumb_func_start sub_803D808 sub_803D808: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r7, r1, 0 movs r6, 0 ldr r2, _0803D820 lsls r1, r7, 3 adds r1, r0 mov r8, r1 b _0803D840 .align 2, 0 _0803D820: .4byte 0x0001cd98 _0803D824: ldr r0, [r5] ldr r1, _0803D868 adds r0, r1 adds r0, r4 ldr r1, [r0, 0x4] ldr r0, [r0] mov r3, r8 adds r3, 0x8 mov r8, r3 subs r3, 0x8 stm r3!, {r0,r1} adds r7, 0x1 adds r2, 0x8 adds r6, 0x1 _0803D840: cmp r6, 0x1F bgt _0803D85A ldr r5, _0803D86C lsls r4, r6, 3 ldr r0, [r5] adds r0, r2 str r2, [sp] bl sub_808E9B8 lsls r0, 16 ldr r2, [sp] cmp r0, 0 bne _0803D824 _0803D85A: adds r0, r7, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803D868: .4byte 0x0001cd98 _0803D86C: .4byte gUnknown_203B418 thumb_func_end sub_803D808 thumb_func_start sub_803D870 sub_803D870: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r1, 0 movs r5, 0 lsls r1, r6, 3 adds r1, r0 mov r9, r1 b _0803D8B8 _0803D884: bl sub_808DACC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0803D8B6 ldr r1, [r7] adds r0, r1, r4 ldr r2, _0803D8E4 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 beq _0803D8B6 mov r2, r8 adds r0, r1, r2 adds r0, r4 ldr r1, [r0, 0x4] ldr r0, [r0] mov r2, r9 adds r2, 0x8 mov r9, r2 subs r2, 0x8 stm r2!, {r0,r1} adds r6, 0x1 _0803D8B6: adds r5, 0x1 _0803D8B8: cmp r5, 0x1F bgt _0803D8D6 ldr r7, _0803D8E8 lsls r4, r5, 3 ldr r0, _0803D8EC mov r8, r0 adds r1, r4, r0 ldr r0, [r7] adds r0, r1 bl sub_808E9B8 lsls r0, 16 asrs r0, 16 cmp r0, 0 bne _0803D884 _0803D8D6: adds r0, r6, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803D8E4: .4byte 0x0001cd9a _0803D8E8: .4byte gUnknown_203B418 _0803D8EC: .4byte 0x0001cd98 thumb_func_end sub_803D870 thumb_func_start sub_803D8F0 sub_803D8F0: push {r4,lr} ldr r4, _0803D920 ldr r0, [r4] ldr r2, _0803D924 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _0803D918 movs r0, 0x1 strb r0, [r1] ldr r0, [r4] ldr r1, _0803D928 adds r0, r1 movs r1, 0 bl sub_803D808 ldr r1, [r4] ldr r2, _0803D92C adds r1, r2 str r0, [r1] _0803D918: pop {r4} pop {r0} bx r0 .align 2, 0 _0803D920: .4byte gUnknown_203B418 _0803D924: .4byte 0x000037ec _0803D928: .4byte 0x0000343c _0803D92C: .4byte 0x000037e4 thumb_func_end sub_803D8F0 thumb_func_start sub_803D930 sub_803D930: push {r4-r7,lr} lsls r0, 16 asrs r6, r0, 16 movs r5, 0 ldr r7, _0803D940 ldr r4, _0803D944 b _0803D954 .align 2, 0 _0803D940: .4byte gUnknown_203B418 _0803D944: .4byte 0x0001cd98 _0803D948: cmp r0, r6 bne _0803D950 movs r0, 0x1 b _0803D96A _0803D950: adds r4, 0x8 adds r5, 0x1 _0803D954: cmp r5, 0x1F bgt _0803D968 ldr r0, [r7] adds r0, r4 bl sub_808E9B8 lsls r0, 16 asrs r0, 16 cmp r0, 0 bne _0803D948 _0803D968: movs r0, 0 _0803D96A: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803D930 thumb_func_start sub_803D970 sub_803D970: push {r4-r7,lr} adds r5, r0, 0 ldr r0, _0803D9EC bl sub_8084100 adds r6, r0, 0 movs r3, 0 ldr r1, _0803D9F0 ldr r0, [r1] ldr r2, _0803D9F4 adds r0, r2 ldr r0, [r0] cmp r3, r0 bge _0803D9BA ldr r4, _0803D9F8 _0803D98E: ldr r2, [r1] lsls r1, r5, 1 lsls r0, r3, 3 adds r1, r0 ldr r7, _0803D9FC adds r0, r2, r7 adds r1, r0, r1 movs r7, 0 ldrsh r0, [r1, r7] cmp r0, 0 beq _0803D9A8 cmp r0, r6 bge _0803D9E0 _0803D9A8: adds r4, 0x8 adds r3, 0x1 ldr r1, _0803D9F0 ldr r0, [r1] ldr r2, _0803D9F4 adds r0, r2 ldr r0, [r0] cmp r3, r0 blt _0803D98E _0803D9BA: movs r3, 0 ldr r0, _0803D9F0 ldr r1, [r0] ldr r7, _0803D9F4 adds r1, r7 ldr r1, [r1] adds r6, r0, 0 cmp r3, r1 bge _0803DA10 ldr r4, _0803D9F8 lsls r1, r5, 1 _0803D9D0: ldr r2, [r6] ldr r5, _0803D9FC adds r0, r2, r5 adds r0, r1 movs r7, 0 ldrsh r0, [r0, r7] cmp r0, 0 beq _0803DA00 _0803D9E0: adds r0, r2, r4 bl sub_808E9B8 lsls r0, 16 asrs r0, 16 b _0803DA14 .align 2, 0 _0803D9EC: .4byte 0x00002710 _0803D9F0: .4byte gUnknown_203B418 _0803D9F4: .4byte 0x000037e4 _0803D9F8: .4byte 0x0000343c _0803D9FC: .4byte 0x0000343e _0803DA00: adds r4, 0x8 adds r1, 0x8 adds r3, 0x1 ldr r5, _0803DA1C adds r0, r2, r5 ldr r0, [r0] cmp r3, r0 blt _0803D9D0 _0803DA10: movs r0, 0xBE lsls r0, 1 _0803DA14: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803DA1C: .4byte 0x000037e4 thumb_func_end sub_803D970 thumb_func_start sub_803DA20 sub_803DA20: push {r4-r7,lr} lsls r0, 16 asrs r7, r0, 16 movs r5, 0 ldr r1, _0803DA54 ldr r0, [r1] ldr r2, _0803DA58 adds r0, r2 ldr r0, [r0] cmp r5, r0 bge _0803DA70 adds r6, r1, 0 ldr r4, _0803DA5C _0803DA3A: ldr r0, [r6] adds r0, r4 bl sub_808E9B8 lsls r0, 16 asrs r0, 16 cmp r0, r7 bne _0803DA60 ldr r0, [r6] adds r0, r4 bl sub_808E9E4 b _0803DA72 .align 2, 0 _0803DA54: .4byte gUnknown_203B418 _0803DA58: .4byte 0x000037e4 _0803DA5C: .4byte 0x0000343c _0803DA60: adds r4, 0x8 adds r5, 0x1 ldr r0, [r6] ldr r1, _0803DA78 adds r0, r1 ldr r0, [r0] cmp r5, r0 blt _0803DA3A _0803DA70: movs r0, 0x1 _0803DA72: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803DA78: .4byte 0x000037e4 thumb_func_end sub_803DA20 thumb_func_start ShowDungeonNameBanner ShowDungeonNameBanner: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x68 ldr r0, _0803DB84 ldr r4, _0803DB88 adds r1, r4, 0 bl OpenFileAndGetFileDataPtr ldr r5, _0803DB8C str r0, [r5] ldr r0, _0803DB90 adds r1, r4, 0 bl OpenFileAndGetFileDataPtr ldr r1, _0803DB94 str r0, [r1] ldr r1, _0803DB98 ldr r0, [r0, 0x4] ldr r0, [r0, 0x4] str r0, [r1] movs r4, 0 _0803DAAA: adds r0, r4, 0 adds r0, 0xE0 ldr r1, [r5] lsls r2, r4, 2 ldr r1, [r1, 0x4] adds r1, r2 bl SetBGPaletteBufferColorArray adds r4, 0x1 cmp r4, 0xF ble _0803DAAA ldr r0, _0803DB9C movs r1, 0xE0 lsls r1, 5 bl CpuClear bl sub_80848EC lsls r0, 24 cmp r0, 0 bne _0803DAD6 b _0803DBEA _0803DAD6: ldr r0, _0803DBA0 ldr r0, [r0] ldr r1, _0803DBA4 adds r2, r0, r1 movs r3, 0x14 ldrsh r1, [r0, r3] ldrb r2, [r2] adds r2, r1 mov r8, r2 ldr r1, _0803DBA8 adds r0, r1 ldrb r0, [r0] bl GetDungeonName2 mov r9, r0 movs r5, 0xA movs r0, 0 _0803DAF8: movs r4, 0 adds r6, r0, 0x4 adds r7, r0, 0x1 _0803DAFE: adds r4, 0x1 ldr r3, _0803DBAC adds r0, r3, 0 adds r2, r5, 0 orrs r2, r0 lsls r2, 16 lsrs r2, 16 adds r0, r4, 0 adds r1, r6, 0 movs r3, 0 bl sub_8008DC8 adds r5, 0x1 cmp r4, 0x1B ble _0803DAFE adds r0, r7, 0 cmp r0, 0x7 ble _0803DAF8 mov r0, r9 bl CalcStringWidth movs r1, 0xE0 subs r1, r0 lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 mov r0, r9 movs r2, 0 bl sub_803DC14 adds r7, r0, 0 ldr r0, _0803DBA0 ldr r0, [r0] ldr r1, _0803DBA8 adds r0, r1 ldrb r0, [r0] bl GetStairDirection lsls r0, 24 ldr r6, _0803DBB0 cmp r0, 0 beq _0803DB54 ldr r6, _0803DBB4 _0803DB54: mov r3, r8 cmp r3, 0x9 ble _0803DBBC ldr r5, _0803DBB8 mov r0, r8 movs r1, 0xA bl __divsi3 adds r4, r0, 0 adds r4, 0x30 mov r0, r8 movs r1, 0xA bl __modsi3 adds r0, 0x30 str r0, [sp] add r0, sp, 0x4 adds r1, r5, 0 adds r2, r6, 0 adds r3, r4, 0 bl sub_800D158 b _0803DBCA .align 2, 0 _0803DB84: .4byte gUnknown_80F60F8 _0803DB88: .4byte gUnknown_83B0000 _0803DB8C: .4byte gDungeonNameBannerPalette _0803DB90: .4byte gUnknown_80F6100 _0803DB94: .4byte gDungeonNameBannerFontFile _0803DB98: .4byte gDungeonNameBannerFont _0803DB9C: .4byte 0x06000140 _0803DBA0: .4byte gUnknown_203B418 _0803DBA4: .4byte 0x00000645 _0803DBA8: .4byte 0x00000644 _0803DBAC: .4byte 0xffffe000 _0803DBB0: .4byte gUnknown_80F610C _0803DBB4: .4byte gUnknown_80F6108 _0803DBB8: .4byte gUnknown_80F6110 _0803DBBC: ldr r1, _0803DC08 mov r3, r8 adds r3, 0x30 add r0, sp, 0x4 adds r2, r6, 0 bl sub_800D158 _0803DBCA: add r0, sp, 0x4 bl CalcStringWidth movs r1, 0xE0 subs r1, r0 lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 adds r2, r7, 0 adds r2, 0x20 add r0, sp, 0x4 bl sub_803DC14 ldr r1, _0803DC0C movs r0, 0x1 strb r0, [r1] _0803DBEA: ldr r0, _0803DC10 ldr r0, [r0] bl CloseFile movs r0, 0x2 bl sub_803E46C add sp, 0x68 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803DC08: .4byte gUnknown_80F6118 _0803DC0C: .4byte gUnknown_20274A5 _0803DC10: .4byte gDungeonNameBannerFontFile thumb_func_end ShowDungeonNameBanner thumb_func_start sub_803DC14 sub_803DC14: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 b _0803DC5C _0803DC1E: ldrb r1, [r4] adds r4, 0x1 cmp r1, 0x2F bne _0803DC2C movs r5, 0 adds r6, 0x18 b _0803DC5C _0803DC2C: cmp r1, 0x23 bne _0803DC34 adds r5, 0x8 b _0803DC5C _0803DC34: cmp r1, 0x20 bne _0803DC3C adds r5, 0xC b _0803DC5C _0803DC3C: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0803DC50 ldrb r0, [r4] cmp r0, 0 beq _0803DC50 lsls r1, 8 orrs r1, r0 adds r4, 0x1 _0803DC50: adds r0, r1, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_803DC6C adds r5, r0 _0803DC5C: ldrb r0, [r4] cmp r0, 0 bne _0803DC1E adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_803DC14 thumb_func_start sub_803DC6C sub_803DC6C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x120 adds r7, r1, 0 adds r5, r2, 0 bl sub_803DEC8 adds r4, r0, 0 ldr r0, [r4] mov r1, sp bl sub_803DD30 ldrb r4, [r4, 0x6] mov r9, r4 mov r6, sp adds r0, r5, 0 cmp r5, 0 bge _0803DC96 adds r0, r5, 0x7 _0803DC96: asrs r0, 3 lsls r3, r0, 3 subs r0, r3, r0 lsls r0, 2 adds r1, r7, 0 cmp r7, 0 bge _0803DCA6 adds r1, r7, 0x7 _0803DCA6: asrs r1, 3 adds r0, r1 lsls r0, 5 ldr r4, _0803DD28 adds r2, r0, r4 subs r0, r5, r3 lsls r0, 2 adds r2, r0 lsls r1, 3 subs r1, r7, r1 lsls r1, 4 ldr r0, _0803DD2C adds r4, r1, r0 movs r0, 0 _0803DCC2: adds r3, r2, 0 adds r7, r3, 0x4 adds r5, 0x1 mov r12, r5 adds r0, 0x1 mov r8, r0 movs r5, 0x2 _0803DCD0: ldr r2, [r6] cmp r2, 0 beq _0803DCF6 ldr r1, [r4] ands r1, r2 ldr r0, [r4, 0x8] lsls r1, r0 ldr r0, [r3] orrs r0, r1 str r0, [r3] adds r3, 0x20 ldr r0, [r4, 0x4] ands r2, r0 ldr r0, [r4, 0xC] lsrs r2, r0 ldr r0, [r3] orrs r0, r2 str r0, [r3] subs r3, 0x20 _0803DCF6: adds r6, 0x4 adds r3, 0x20 subs r5, 0x1 cmp r5, 0 bge _0803DCD0 adds r2, r7, 0 mov r5, r12 movs r0, 0x7 ands r0, r5 cmp r0, 0 bne _0803DD12 movs r0, 0xD8 lsls r0, 2 adds r2, r7, r0 _0803DD12: mov r0, r8 cmp r0, 0x17 ble _0803DCC2 mov r0, r9 add sp, 0x120 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803DD28: .4byte 0x06000140 _0803DD2C: .4byte gUnknown_80F6120 thumb_func_end sub_803DC6C thumb_func_start sub_803DD30 sub_803DD30: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0803DDBC add sp, r4 adds r4, r0, 0 mov r10, r1 movs r3, 0 movs r5, 0 ldr r0, _0803DDC0 mov r8, r0 movs r6, 0xF movs r7, 0xF mov r2, sp _0803DD50: ldrb r0, [r4] lsrs r1, r0, 4 ands r1, r6 strb r1, [r2] adds r1, r7, 0 ands r1, r0 strb r1, [r2, 0x1] adds r4, 0x1 adds r2, 0x2 adds r5, 0x2 cmp r5, r8 ble _0803DD50 ldr r1, _0803DDC0 cmp r3, r1 bgt _0803DDF8 movs r0, 0x90 lsls r0, 2 mov r2, sp adds r2, r0 mov r12, r2 mov r8, r1 mov r2, sp mov r9, r0 _0803DD7E: ldrb r1, [r2] adds r2, 0x1 movs r6, 0x7 ands r6, r1 movs r0, 0x8 ands r1, r0 cmp r1, 0 beq _0803DDC4 ldrb r1, [r2] adds r2, 0x1 movs r4, 0 cmp r4, r6 bge _0803DDF4 mov r5, r12 adds r0, r5, r3 strb r1, [r0] adds r3, 0x1 cmp r3, r8 bgt _0803DDF8 mov r5, sp add r5, r9 ldr r7, _0803DDC0 _0803DDAA: adds r4, 0x1 cmp r4, r6 bge _0803DDF4 adds r0, r5, r3 strb r1, [r0] adds r3, 0x1 cmp r3, r7 ble _0803DDAA b _0803DDF4 .align 2, 0 _0803DDBC: .4byte 0xfffffb80 _0803DDC0: .4byte 0x0000023f _0803DDC4: movs r4, 0 cmp r4, r6 bge _0803DDF4 ldrb r1, [r2] adds r2, 0x1 mov r5, r12 adds r0, r5, r3 strb r1, [r0] adds r3, 0x1 cmp r3, r8 bgt _0803DDF8 mov r5, sp add r5, r9 ldr r7, _0803DE78 _0803DDE0: adds r4, 0x1 cmp r4, r6 bge _0803DDF4 ldrb r1, [r2] adds r2, 0x1 adds r0, r5, r3 strb r1, [r0] adds r3, 0x1 cmp r3, r7 ble _0803DDE0 _0803DDF4: cmp r3, r8 ble _0803DD7E _0803DDF8: movs r5, 0 ldr r4, _0803DE78 add r3, sp, 0x240 _0803DDFE: ldrb r2, [r3, 0x7] lsls r2, 28 ldrb r0, [r3, 0x6] lsls r0, 24 movs r1, 0xF0 lsls r1, 20 ands r0, r1 orrs r2, r0 ldrb r0, [r3, 0x5] lsls r0, 20 movs r1, 0xF0 lsls r1, 16 ands r0, r1 orrs r2, r0 ldrb r0, [r3, 0x4] lsls r0, 16 movs r1, 0xF0 lsls r1, 12 ands r0, r1 orrs r2, r0 ldrb r0, [r3, 0x3] lsls r0, 12 movs r1, 0xF0 lsls r1, 8 ands r0, r1 orrs r2, r0 ldrb r0, [r3, 0x2] lsls r0, 8 movs r1, 0xF0 lsls r1, 4 ands r0, r1 orrs r2, r0 ldrb r0, [r3, 0x1] lsls r0, 4 movs r1, 0xF0 ands r0, r1 orrs r2, r0 ldrb r1, [r3] movs r0, 0xF ands r0, r1 orrs r2, r0 mov r0, r10 adds r0, 0x4 mov r10, r0 subs r0, 0x4 stm r0!, {r2} adds r3, 0x8 adds r5, 0x8 cmp r5, r4 ble _0803DDFE movs r3, 0x90 lsls r3, 3 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803DE78: .4byte 0x0000023f thumb_func_end sub_803DD30 thumb_func_start CalcStringWidth CalcStringWidth: push {r4,r5,lr} adds r4, r0, 0 movs r5, 0 b _0803DEBA _0803DE84: ldrb r1, [r4] adds r4, 0x1 cmp r1, 0x23 bne _0803DE90 adds r5, 0x8 b _0803DEBA _0803DE90: cmp r1, 0x20 bne _0803DE98 adds r5, 0xC b _0803DEBA _0803DE98: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0803DEAC ldrb r0, [r4] cmp r0, 0 beq _0803DEAC lsls r1, 8 orrs r1, r0 adds r4, 0x1 _0803DEAC: adds r0, r1, 0 bl sub_803DEC8 cmp r0, 0 beq _0803DEBA ldrb r0, [r0, 0x6] adds r5, r0 _0803DEBA: ldrb r0, [r4] cmp r0, 0 bne _0803DE84 adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end CalcStringWidth thumb_func_start sub_803DEC8 sub_803DEC8: push {r4,r5,lr} adds r3, r0, 0 ldr r0, _0803DEFC ldr r0, [r0] ldr r0, [r0, 0x4] ldr r5, [r0] ldr r0, _0803DF00 adds r1, r3, r0 ldr r0, _0803DF04 cmp r1, r0 bhi _0803DF08 movs r2, 0xFF ands r2, r3 movs r1, 0xFF lsls r1, 8 ands r1, r3 asrs r1, 8 subs r2, 0x20 subs r1, 0xF8 lsls r0, r1, 3 subs r0, r1 lsls r0, 5 adds r0, r2 lsls r0, 3 adds r1, r5, r0 b _0803DF56 .align 2, 0 _0803DEFC: .4byte gDungeonNameBannerFontFile _0803DF00: .4byte 0xffff0800 _0803DF04: .4byte 0x000007fe _0803DF08: movs r4, 0 ldr r0, _0803DF1C ldr r0, [r0] subs r2, r0, 0x1 cmp r4, r2 bge _0803DF48 lsrs r0, r2, 31 adds r0, r2, r0 b _0803DF3A .align 2, 0 _0803DF1C: .4byte gDungeonNameBannerFont _0803DF20: lsls r0, r1, 3 adds r0, r5 ldrh r0, [r0, 0x4] cmp r0, r3 bge _0803DF2E adds r4, r1, 0x1 b _0803DF30 _0803DF2E: adds r2, r1, 0 _0803DF30: cmp r4, r2 bge _0803DF48 adds r0, r4, r2 lsrs r1, r0, 31 adds r0, r1 _0803DF3A: asrs r1, r0, 1 lsls r0, r1, 3 adds r0, r5 ldrh r0, [r0, 0x4] cmp r0, r3 bne _0803DF20 adds r4, r1, 0 _0803DF48: lsls r0, r4, 3 adds r1, r5, r0 ldrh r0, [r1, 0x4] cmp r0, r3 beq _0803DF56 adds r1, r5, 0 adds r1, 0x8 _0803DF56: adds r0, r1, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803DEC8 thumb_func_start sub_803DF60 sub_803DF60: push {r4-r7,lr} ldr r0, _0803DFF8 ldr r1, _0803DFFC bl OpenFileAndGetFileDataPtr adds r7, r0, 0 ldr r0, [r7, 0x4] ldr r5, [r0] ldm r5!, {r4} ldr r6, _0803E000 cmp r4, 0 beq _0803DF8C _0803DF78: adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x20 bl CpuCopy adds r6, 0x20 adds r5, 0x20 subs r4, 0x1 cmp r4, 0 bne _0803DF78 _0803DF8C: adds r0, r7, 0 bl CloseFile ldr r0, _0803E004 ldr r1, _0803DFFC bl OpenFileAndGetFileDataPtr adds r7, r0, 0 ldr r5, [r7, 0x4] ldm r5!, {r4} ldr r6, _0803E008 cmp r4, 0 beq _0803DFBA _0803DFA6: adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x20 bl CpuCopy adds r6, 0x20 adds r5, 0x20 subs r4, 0x1 cmp r4, 0 bne _0803DFA6 _0803DFBA: adds r0, r7, 0 bl CloseFile ldr r0, _0803E00C ldr r4, _0803DFFC adds r1, r4, 0 bl OpenFileAndGetFileDataPtr ldr r1, _0803E010 str r0, [r1] ldr r0, _0803E014 adds r1, r4, 0 bl OpenFileAndGetFileDataPtr ldr r1, _0803E018 str r0, [r1] ldr r0, _0803E01C adds r1, r4, 0 bl OpenFileAndGetFileDataPtr ldr r1, _0803E020 str r0, [r1] ldr r0, _0803E024 adds r1, r4, 0 bl OpenFileAndGetFileDataPtr ldr r1, _0803E028 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803DFF8: .4byte gUnknown_80F61A8 _0803DFFC: .4byte gUnknown_83B0000 _0803E000: .4byte 0x06013400 _0803E004: .4byte gUnknown_80F61B0 _0803E008: .4byte 0x06014000 _0803E00C: .4byte gUnknown_80F61B8 _0803E010: .4byte gUnknown_202EC94 _0803E014: .4byte gUnknown_80F61C4 _0803E018: .4byte gUnknown_202EC98 _0803E01C: .4byte gUnknown_80F61CC _0803E020: .4byte gUnknown_202EC9C _0803E024: .4byte gUnknown_80F61D4 _0803E028: .4byte gUnknown_202ECA0 thumb_func_end sub_803DF60 thumb_func_start sub_803E02C sub_803E02C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC bl sub_803E13C mov r1, sp ldr r0, _0803E118 ldm r0!, {r2,r3} stm r1!, {r2,r3} ldr r1, _0803E11C mov r0, sp bl OpenFileAndGetFileDataPtr adds r7, r0, 0 ldr r0, [r7, 0x4] ldr r5, [r0] ldm r5!, {r4} ldr r6, _0803E120 cmp r4, 0 beq _0803E06C _0803E058: adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x20 bl CpuCopy adds r6, 0x20 adds r5, 0x20 subs r4, 0x1 cmp r4, 0 bne _0803E058 _0803E06C: ldr r0, _0803E124 ldr r1, [r7, 0x4] ldr r1, [r1, 0x4] movs r2, 0x80 bl CpuCopy adds r0, r7, 0 bl CloseFile movs r6, 0x80 lsls r6, 2 movs r4, 0 ldr r0, _0803E128 mov r9, r0 ldr r1, _0803E12C mov r12, r1 movs r7, 0 ldr r2, _0803E130 mov r8, r2 _0803E092: mov r3, r12 ldrh r0, [r3] lsls r5, r0, 12 adds r2, r7, 0 movs r3, 0x8 _0803E09C: mov r0, r9 ldr r1, [r0] add r1, r8 adds r1, r2 adds r0, r5, 0 orrs r0, r6 strh r0, [r1] adds r6, 0x1 adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bge _0803E09C movs r1, 0x2 add r12, r1 adds r7, 0x12 adds r4, 0x1 cmp r4, 0x1C ble _0803E092 movs r4, 0 ldr r5, _0803E128 ldr r3, _0803E134 movs r2, 0xC0 lsls r2, 8 _0803E0CA: ldr r0, [r5] lsls r1, r4, 1 adds r0, r3 adds r0, r1 strh r2, [r0] adds r4, 0x1 cmp r4, 0x8 ble _0803E0CA movs r4, 0 ldr r2, _0803E128 movs r6, 0xBE lsls r6, 1 ldr r5, _0803E138 movs r3, 0xBF lsls r3, 1 _0803E0E8: ldr r0, [r2] lsls r1, r4, 2 adds r0, r1 adds r0, r6 strb r4, [r0] ldr r0, [r2] adds r0, r1 adds r0, r5 strb r4, [r0] ldr r0, [r2] adds r0, r1 adds r0, r3 strb r4, [r0] adds r4, 0x1 cmp r4, 0xFF ble _0803E0E8 add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803E118: .4byte gUnknown_80F61DC _0803E11C: .4byte gUnknown_83B0000 _0803E120: .4byte 0x0600c000 _0803E124: .4byte gUnknown_202ECA4 _0803E128: .4byte gUnknown_203B418 _0803E12C: .4byte gUnknown_80F5F70 _0803E130: .4byte 0x00012a18 _0803E134: .4byte 0x00013554 _0803E138: .4byte 0x0000017d thumb_func_end sub_803E02C thumb_func_start sub_803E13C sub_803E13C: push {r4,r5,lr} bl sub_8094C14 ldr r0, _0803E170 ldr r0, [r0] ldrb r0, [r0, 0xB] ldr r5, _0803E174 cmp r0, 0 beq _0803E154 movs r0, 0x80 lsls r0, 1 adds r5, r0 _0803E154: movs r4, 0 _0803E156: adds r0, r4, 0 adds r0, 0xF0 adds r1, r5, 0 bl SetBGPaletteBufferColorArray adds r5, 0x4 adds r4, 0x1 cmp r4, 0xF ble _0803E156 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803E170: .4byte gUnknown_203B46C _0803E174: .4byte gUnknown_202D038 thumb_func_end sub_803E13C thumb_func_start sub_803E178 sub_803E178: push {r4,lr} bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0803E1E0 ldr r0, _0803E1AC ldr r2, [r0] ldr r3, _0803E1B0 adds r1, r2, r3 ldrb r1, [r1] adds r3, r0, 0 cmp r1, 0x15 bne _0803E1BC ldr r1, _0803E1B4 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _0803E1BC ldr r3, _0803E1B8 adds r1, r2, r3 movs r0, 0x1C strh r0, [r1] b _0803E204 .align 2, 0 _0803E1AC: .4byte gUnknown_203B418 _0803E1B0: .4byte 0x00000644 _0803E1B4: .4byte 0x000037fe _0803E1B8: .4byte 0x00003a12 _0803E1BC: ldr r4, [r3] ldr r1, _0803E1D8 adds r0, r4, r1 ldrb r0, [r0] bl GetStairDirection lsls r0, 24 movs r1, 0x16 cmp r0, 0 beq _0803E1D2 movs r1, 0x17 _0803E1D2: ldr r2, _0803E1DC adds r0, r4, r2 b _0803E202 .align 2, 0 _0803E1D8: .4byte 0x00000644 _0803E1DC: .4byte 0x00003a12 _0803E1E0: cmp r0, 0x1 bne _0803E1F8 ldr r0, _0803E1F0 ldr r0, [r0] ldr r3, _0803E1F4 adds r0, r3 movs r1, 0x6 b _0803E202 .align 2, 0 _0803E1F0: .4byte gUnknown_203B418 _0803E1F4: .4byte 0x00003a12 _0803E1F8: ldr r0, _0803E20C ldr r0, [r0] ldr r1, _0803E210 adds r0, r1 movs r1, 0x18 _0803E202: strh r1, [r0] _0803E204: pop {r4} pop {r0} bx r0 .align 2, 0 _0803E20C: .4byte gUnknown_203B418 _0803E210: .4byte 0x00003a12 thumb_func_end sub_803E178 thumb_func_start sub_803E214 sub_803E214: push {lr} ldr r0, _0803E23C ldr r0, [r0] bl CloseFile ldr r0, _0803E240 ldr r0, [r0] bl CloseFile ldr r0, _0803E244 ldr r0, [r0] bl CloseFile ldr r0, _0803E248 ldr r0, [r0] bl CloseFile pop {r0} bx r0 .align 2, 0 _0803E23C: .4byte gUnknown_202EC94 _0803E240: .4byte gUnknown_202EC98 _0803E244: .4byte gUnknown_202EC9C _0803E248: .4byte gUnknown_202ECA0 thumb_func_end sub_803E214 thumb_func_start nullsub_56 nullsub_56: bx lr thumb_func_end nullsub_56 thumb_func_start sub_803E250 sub_803E250: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r1, _0803E3FC ldr r0, _0803E400 str r0, [r1] ldr r0, _0803E404 movs r1, 0 str r1, [r0] ldr r0, _0803E408 strb r1, [r0] ldr r0, _0803E40C strh r1, [r0] ldr r5, _0803E410 ldrh r0, [r5, 0x6] movs r3, 0xF adds r2, r3, 0 ands r2, r0 ldrh r4, [r5] ldr r1, _0803E414 adds r0, r1, 0 ands r0, r4 ldr r4, _0803E418 ands r0, r4 ldr r6, _0803E41C ands r0, r6 ldr r7, _0803E420 ands r0, r7 ldr r4, _0803E424 mov r12, r4 ands r0, r4 ldr r4, _0803E428 ands r0, r4 strh r0, [r5] movs r0, 0x80 lsls r0, 7 strh r0, [r5, 0x2] movs r0, 0 strh r0, [r5, 0x4] ldr r0, _0803E42C mov r10, r0 ands r2, r0 subs r0, 0x1 mov r9, r0 ands r2, r0 subs r0, 0x2 mov r8, r0 ands r2, r0 strh r2, [r5, 0x6] ldr r2, _0803E430 ldrh r0, [r2, 0x6] ands r3, r0 ldrh r0, [r2] ands r1, r0 ldr r0, _0803E418 ands r1, r0 ands r1, r6 ands r1, r7 mov r7, r12 ands r1, r7 ands r1, r4 strh r1, [r2] movs r0, 0 strh r0, [r2, 0x2] movs r0, 0xB8 lsls r0, 7 strh r0, [r2, 0x4] mov r0, r10 ands r3, r0 mov r1, r9 ands r3, r1 mov r7, r8 ands r3, r7 strh r3, [r2, 0x6] movs r0, 0 mov r8, r0 _0803E2EE: movs r1, 0 mov r9, r1 mov r2, r8 lsls r0, r2, 3 lsls r2, 1 mov r12, r2 mov r3, r8 adds r3, 0x1 str r3, [sp] mov r10, r1 add r0, r8 lsls r5, r0, 3 ldr r4, _0803E434 adds r4, r5, r4 str r4, [sp, 0x4] ldr r7, _0803E438 adds r6, r5, r7 ldr r0, _0803E43C adds r3, r5, r0 ldr r1, _0803E440 adds r4, r5, r1 _0803E318: mov r7, r10 adds r2, r5, r7 ldrh r1, [r3] ldr r0, _0803E414 ands r0, r1 ldr r1, _0803E418 ands r0, r1 ldr r1, _0803E41C ands r0, r1 ldr r1, _0803E420 ands r0, r1 ldr r1, _0803E424 ands r0, r1 strh r0, [r3] ldr r1, [r4] movs r7, 0x3 ands r1, r7 lsls r1, 14 ldr r7, _0803E428 ands r0, r7 orrs r0, r1 strh r0, [r3] ldrh r1, [r3, 0x2] ldr r0, _0803E444 ands r0, r1 strh r0, [r3, 0x2] ldr r1, _0803E440 adds r1, 0x4 adds r2, r1 ldr r1, [r2] movs r2, 0x3 ands r1, r2 lsls r1, 14 ands r0, r7 orrs r0, r1 strh r0, [r3, 0x2] ldr r1, [r6] ldr r0, _0803E448 ands r1, r0 ldrh r2, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r2 orrs r0, r1 ldr r7, _0803E41C ands r0, r7 movs r1, 0xC0 lsls r1, 4 orrs r0, r1 movs r2, 0 orrs r0, r2 ldr r1, _0803E44C ands r0, r1 strh r0, [r3, 0x4] ldrh r1, [r3, 0x6] ldr r0, _0803E42C ands r0, r1 ldr r1, _0803E450 ands r0, r1 strh r0, [r3, 0x6] mov r7, r9 lsls r1, r7, 2 mov r0, r12 add r0, r8 lsls r0, 3 adds r1, r0 ldr r0, _0803E454 adds r1, r0, r1 ldr r0, [r1] ldr r1, [sp, 0x4] str r0, [r1] adds r1, 0xC str r1, [sp, 0x4] adds r6, 0xC adds r3, 0xC adds r4, 0xC movs r2, 0xC add r10, r2 movs r7, 0x1 add r9, r7 mov r0, r9 cmp r0, 0x5 ble _0803E318 ldr r1, [sp] mov r8, r1 cmp r1, 0x1 ble _0803E2EE movs r2, 0 ldr r3, _0803E458 ldr r0, [r3] ldr r4, _0803E45C adds r0, r4 movs r1, 0x1 strb r1, [r0] ldr r0, [r3] ldr r7, _0803E460 adds r0, r7 strb r1, [r0] ldr r0, _0803E464 str r2, [r0] movs r0, 0xF8 ldr r1, _0803E468 movs r3, 0 bl SetBGPaletteBufferColorRGB add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803E3FC: .4byte gUnknown_202EDD0 _0803E400: .4byte 0x000003e7 _0803E404: .4byte gUnknown_202EDD4 _0803E408: .4byte gUnknown_203B40D _0803E40C: .4byte gUnknown_202EDE8 _0803E410: .4byte gUnknown_202EDC0 _0803E414: .4byte 0x0000feff _0803E418: .4byte 0x0000fdff _0803E41C: .4byte 0x0000f3ff _0803E420: .4byte 0x0000efff _0803E424: .4byte 0x0000dfff _0803E428: .4byte 0x00003fff _0803E42C: .4byte 0x0000fffe _0803E430: .4byte gUnknown_202EDB8 _0803E434: .4byte gUnknown_202ED30 _0803E438: .4byte gUnknown_80F6224 _0803E43C: .4byte gUnknown_202ED28 _0803E440: .4byte gUnknown_80F621C _0803E444: .4byte 0x0000c1ff _0803E448: .4byte 0x000003ff _0803E44C: .4byte 0x00000fff _0803E450: .4byte 0x0000fffd _0803E454: .4byte gUnknown_80F61EC _0803E458: .4byte gUnknown_203B418 _0803E45C: .4byte 0x00018217 _0803E460: .4byte 0x00018218 _0803E464: .4byte gUnknown_202EDC8 _0803E468: .4byte gUnknown_202D058 thumb_func_end sub_803E250 thumb_func_start sub_803E46C sub_803E46C: push {lr} adds r1, r0, 0 ldr r0, _0803E480 ldrb r0, [r0] cmp r0, 0 beq _0803E484 adds r0, r1, 0 bl sub_803E490 b _0803E48A .align 2, 0 _0803E480: .4byte gUnknown_203B40C _0803E484: adds r0, r1, 0 bl sub_803E668 _0803E48A: pop {r0} bx r0 thumb_func_end sub_803E46C thumb_func_start sub_803E490 sub_803E490: push {r4,r5,lr} sub sp, 0x8 ldr r1, _0803E4D8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bl xxx_draw_string_80524F0 bl sub_8085F78 movs r0, 0x1 bl sub_803F580 ldr r2, _0803E4DC ldr r1, [r2] ldr r3, _0803E4E0 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _0803E4EC ldr r4, _0803E4E4 adds r1, r4 movs r0, 0x2 strb r0, [r1] ldr r1, [r2] ldr r2, _0803E4E8 adds r0, r1, r2 movs r3, 0 ldrsh r0, [r0, r3] subs r4, 0x16 adds r1, r4 movs r2, 0 ldrsh r1, [r1, r2] bl sub_800CCA0 b _0803E4FC .align 2, 0 _0803E4D8: .4byte gUnknown_202EDD4 _0803E4DC: .4byte gUnknown_203B418 _0803E4E0: .4byte 0x0001821a _0803E4E4: .4byte 0x00018208 _0803E4E8: .4byte 0x000181f0 _0803E4EC: ldr r3, _0803E628 adds r1, r3 movs r0, 0x3 strb r0, [r1] movs r0, 0 movs r1, 0 bl sub_800CCA0 _0803E4FC: ldr r4, _0803E62C ldr r2, [r4] ldr r5, _0803E630 adds r0, r2, r5 movs r1, 0 ldrsh r0, [r0, r1] ldr r3, _0803E634 adds r1, r2, r3 movs r3, 0 ldrsh r1, [r1, r3] ldr r3, _0803E638 adds r2, r3 ldr r2, [r2] subs r1, r2 bl sub_800CCAC bl sub_806CC10 bl sub_804522C bl sub_803F9CC ldr r0, [r4] adds r0, r5 bl sub_800F7D0 ldr r1, [r4] ldrh r2, [r1, 0x12] movs r3, 0x12 ldrsh r0, [r1, r3] cmp r0, 0x63 bgt _0803E540 adds r0, r2, 0x1 strh r0, [r1, 0x12] _0803E540: ldr r0, [r4] adds r0, r5 bl sub_800E90C bl sub_8042E5C ldr r0, _0803E63C ldr r0, [r0] cmp r0, 0 beq _0803E562 cmp r0, 0x3 beq _0803E562 ldr r0, _0803E640 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0x6 bne _0803E566 _0803E562: bl sub_8040894 _0803E566: bl sub_803ECE0 bl sub_803EDF0 ldr r0, _0803E62C ldr r3, [r0] ldr r4, _0803E644 adds r0, r3, r4 ldrb r0, [r0] cmp r0, 0 beq _0803E5A2 ldr r1, _0803E648 adds r0, r3, r1 ldr r0, [r0] cmp r0, 0x3 beq _0803E5A2 ldr r0, _0803E64C ldrb r0, [r0] ldr r1, _0803E650 ldr r2, _0803E654 ldr r2, [r2] str r2, [sp] movs r4, 0xBE lsls r4, 1 adds r2, r3, r4 str r2, [sp, 0x4] movs r2, 0xA0 movs r3, 0x20 bl sub_8004AF0 _0803E5A2: ldr r0, _0803E640 ldr r0, [r0] ldrb r0, [r0, 0xA] bl nullsub_8 bl sub_8005180 bl nullsub_12 bl sub_80060EC ldr r1, _0803E658 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r0, _0803E65C ldr r0, [r0] bl sub_8094FB4 bl sub_800CB20 bl sub_800485C bl CopySpritesToOam bl nullsub_13 bl sub_8005304 bl nullsub_14 bl TransferBGPaletteBuffer bl sub_8009908 bl xxx_call_update_bg_vram bl sub_8040788 bl xxx_call_update_bg_sound_input ldr r0, _0803E62C ldr r0, [r0] ldr r1, _0803E660 adds r0, r1 movs r1, 0 strb r1, [r0] bl sub_8083F58 bl sub_8011860 bl sub_8040B60 movs r0, 0 bl ResetSprites movs r0, 0 bl nullsub_10 ldr r1, _0803E664 ldr r0, [r1] subs r0, 0x1 str r0, [r1] add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803E628: .4byte 0x00018208 _0803E62C: .4byte gUnknown_203B418 _0803E630: .4byte 0x000181f0 _0803E634: .4byte 0x000181f2 _0803E638: .4byte 0x000181fc _0803E63C: .4byte gUnknown_202EDD0 _0803E640: .4byte gUnknown_203B46C _0803E644: .4byte 0x00018215 _0803E648: .4byte 0x0001c06c _0803E64C: .4byte gUnknown_203B40D _0803E650: .4byte gUnknown_202EE8C _0803E654: .4byte gUnknown_202EDC8 _0803E658: .4byte gUnknown_202EDCC _0803E65C: .4byte gUnknown_203B47C _0803E660: .4byte 0x00018213 _0803E664: .4byte gUnknown_202EDD4 thumb_func_end sub_803E490 thumb_func_start sub_803E668 sub_803E668: push {r4,lr} ldr r4, _0803E6F0 ldr r0, [r4] adds r0, 0x1 str r0, [r4] ldr r0, _0803E6F4 ldr r0, [r0] ldrb r0, [r0, 0xA] bl nullsub_8 bl sub_8005180 bl nullsub_12 movs r0, 0 movs r1, 0 bl sub_8005838 bl sub_80060EC ldr r1, _0803E6F8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r0, _0803E6FC ldr r0, [r0] bl sub_8094FB4 bl sub_800CB20 bl sub_800485C bl CopySpritesToOam bl nullsub_13 bl sub_8005304 bl nullsub_14 bl TransferBGPaletteBuffer bl sub_8009908 bl xxx_call_update_bg_vram bl xxx_call_update_bg_sound_input ldr r0, _0803E700 ldr r0, [r0] ldr r1, _0803E704 adds r0, r1 movs r1, 0 strb r1, [r0] bl sub_8011860 movs r0, 0 bl ResetSprites movs r0, 0 bl nullsub_10 ldr r0, [r4] subs r0, 0x1 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0803E6F0: .4byte gUnknown_202EDD4 _0803E6F4: .4byte gUnknown_203B46C _0803E6F8: .4byte gUnknown_202EDCC _0803E6FC: .4byte gUnknown_203B47C _0803E700: .4byte gUnknown_203B418 _0803E704: .4byte 0x00018213 thumb_func_end sub_803E668 thumb_func_start sub_803E708 sub_803E708: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 cmp r4, 0 beq _0803E71E _0803E712: adds r0, r5, 0 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bne _0803E712 _0803E71E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_803E708 thumb_func_start sub_803E724 sub_803E724: push {r4-r6,lr} adds r4, r0, 0 ldr r5, _0803E744 movs r6, 0xF0 _0803E72C: adds r0, r4, 0 bl sub_803E46C ldrh r1, [r5] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _0803E72C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803E744: .4byte gUnknown_20255F0 thumb_func_end sub_803E724 thumb_func_start sub_803E748 sub_803E748: push {r4,r5,lr} movs r5, 0x1F ldr r1, _0803E7B8 movs r0, 0x1 strb r0, [r1] ldr r1, _0803E7BC movs r0, 0 str r0, [r1] movs r0, 0x1 movs r1, 0x1F bl sub_803E874 movs r4, 0 _0803E762: cmp r4, 0x1F bgt _0803E780 subs r5, 0x2 cmp r5, 0 bgt _0803E780 movs r5, 0 movs r0, 0x1 movs r1, 0 bl sub_803EAF0 ldr r0, _0803E7C0 ldr r0, [r0] ldr r1, _0803E7C4 adds r0, r1 strb r5, [r0] _0803E780: cmp r4, 0xB ble _0803E790 ldr r1, _0803E7BC ldr r0, [r1] cmp r0, 0x1E bgt _0803E790 adds r0, 0x1 str r0, [r1] _0803E790: movs r0, 0x1 adds r1, r5, 0 bl sub_803E874 movs r0, 0x5 bl sub_803E46C adds r4, 0x1 cmp r4, 0x2B ble _0803E762 ldr r1, _0803E7B8 movs r0, 0 strb r0, [r1] ldr r1, _0803E7BC movs r0, 0x1F str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803E7B8: .4byte gUnknown_203B40D _0803E7BC: .4byte gUnknown_202EDC8 _0803E7C0: .4byte gUnknown_203B418 _0803E7C4: .4byte 0x00018217 thumb_func_end sub_803E748 thumb_func_start sub_803E7C8 sub_803E7C8: push {r4,r5,lr} movs r4, 0x1F ldr r1, _0803E820 movs r0, 0x1 strb r0, [r1] ldr r1, _0803E824 movs r0, 0 str r0, [r1] movs r0, 0x5 bl sub_803E46C movs r5, 0 _0803E7E0: movs r0, 0x1 adds r1, r4, 0 bl sub_803E874 cmp r5, 0x1F bgt _0803E806 subs r4, 0x2 cmp r4, 0 bgt _0803E806 movs r4, 0 movs r0, 0x1 movs r1, 0 bl sub_803EAF0 ldr r0, _0803E828 ldr r0, [r0] ldr r1, _0803E82C adds r0, r1 strb r4, [r0] _0803E806: movs r0, 0x5 bl sub_803E46C adds r5, 0x1 cmp r5, 0x2B ble _0803E7E0 ldr r1, _0803E820 movs r0, 0 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803E820: .4byte gUnknown_203B40D _0803E824: .4byte gUnknown_202EDC8 _0803E828: .4byte gUnknown_203B418 _0803E82C: .4byte 0x00018217 thumb_func_end sub_803E7C8 thumb_func_start sub_803E830 sub_803E830: push {r4,r5,lr} ldr r1, _0803E86C movs r0, 0x1 strb r0, [r1] ldr r5, _0803E870 movs r4, 0x1F _0803E83C: movs r0, 0 movs r1, 0 bl sub_803E874 movs r0, 0x5 bl sub_803E46C ldr r0, [r5] cmp r0, 0 ble _0803E854 subs r0, 0x1 str r0, [r5] _0803E854: subs r4, 0x1 cmp r4, 0 bge _0803E83C ldr r0, _0803E870 movs r1, 0 str r1, [r0] ldr r0, _0803E86C strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803E86C: .4byte gUnknown_203B40D _0803E870: .4byte gUnknown_202EDC8 thumb_func_end sub_803E830 thumb_func_start sub_803E874 sub_803E874: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r9, r1 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, _0803E9A4 ldr r0, [r0] ldr r5, [r0, 0x4] ldr r1, _0803E9A8 ldr r0, _0803E9AC ldr r2, [r0] ldr r0, _0803E9B0 ldr r3, [r0] movs r0, 0xBE lsls r0, 1 adds r3, r0 movs r0, 0 bl SetBGPaletteBufferColorRGB adds r5, 0x4 movs r6, 0x1 movs r4, 0x9F _0803E8AA: ldr r1, _0803E9AC mov r8, r1 ldr r2, [r1] ldr r7, _0803E9B0 ldr r3, [r7] movs r0, 0xBE lsls r0, 1 adds r3, r0 adds r0, r6, 0 adds r1, r5, 0 bl SetBGPaletteBufferColorRGB adds r5, 0x4 adds r6, 0x1 subs r4, 0x1 cmp r4, 0 bne _0803E8AA ldr r3, [r7] ldr r1, _0803E9B4 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _0803E8E2 ldr r2, _0803E9B8 adds r0, r3, r2 ldr r0, [r0] cmp r0, 0x3 bne _0803E8FC _0803E8E2: ldr r1, _0803E9BC mov r2, r8 ldr r0, [r2] str r0, [sp] movs r2, 0xBE lsls r2, 1 adds r0, r3, r2 str r0, [sp, 0x4] movs r0, 0x1 movs r2, 0xA0 movs r3, 0x20 bl sub_8004AF0 _0803E8FC: adds r6, 0x20 ldr r5, _0803E9C0 movs r4, 0x20 _0803E902: ldr r0, _0803E9AC ldr r2, [r0] ldr r0, _0803E9B0 ldr r3, [r0] movs r0, 0xBE lsls r0, 1 adds r3, r0 adds r0, r6, 0 adds r1, r5, 0 bl SetBGPaletteBufferColorRGB adds r5, 0x4 adds r6, 0x1 subs r4, 0x1 cmp r4, 0 bne _0803E902 mov r1, r10 cmp r1, 0 beq _0803E948 movs r6, 0xE0 ldr r0, _0803E9C4 ldr r0, [r0] ldr r5, [r0, 0x4] movs r4, 0x10 _0803E932: adds r0, r6, 0 adds r1, r5, 0 mov r2, r9 movs r3, 0 bl SetBGPaletteBufferColorRGB adds r5, 0x4 adds r6, 0x1 subs r4, 0x1 cmp r4, 0 bne _0803E932 _0803E948: ldr r1, _0803E9C8 ldr r4, _0803E9AC ldr r2, [r4] movs r0, 0xF8 movs r3, 0 bl SetBGPaletteBufferColorRGB ldr r0, _0803E9B0 ldr r0, [r0] ldr r2, _0803E9CC adds r0, r2 ldr r0, [r0] ldr r5, [r0, 0x4] movs r6, 0x80 lsls r6, 1 adds r7, r4, 0 movs r4, 0xD0 _0803E96A: ldr r2, [r7] ldr r0, _0803E9B0 ldr r3, [r0] movs r0, 0xBE lsls r0, 1 adds r3, r0 adds r0, r6, 0 adds r1, r5, 0 bl SetBGPaletteBufferColorRGB ldr r2, [r7] adds r0, r6, 0 adds r1, r5, 0 movs r3, 0 bl nullsub_4 adds r5, 0x4 adds r6, 0x1 subs r4, 0x1 cmp r4, 0 bne _0803E96A add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803E9A4: .4byte gUnknown_202EE88 _0803E9A8: .4byte gUnknown_80F62AC _0803E9AC: .4byte gUnknown_202EDC8 _0803E9B0: .4byte gUnknown_203B418 _0803E9B4: .4byte 0x00018215 _0803E9B8: .4byte 0x0001c06c _0803E9BC: .4byte gUnknown_202EE8C _0803E9C0: .4byte gUnknown_202ECA4 _0803E9C4: .4byte gDungeonNameBannerPalette _0803E9C8: .4byte gUnknown_202D058 _0803E9CC: .4byte 0x000181e4 thumb_func_end sub_803E874 thumb_func_start sub_803E9D0 sub_803E9D0: push {r4-r7,lr} ldr r0, _0803EA04 ldr r0, [r0] ldr r1, _0803EA08 adds r0, r1 ldr r0, [r0] ldr r4, [r0, 0x4] movs r6, 0x80 lsls r6, 1 ldr r7, _0803EA0C movs r5, 0xD0 _0803E9E6: ldr r2, [r7] adds r0, r6, 0 adds r1, r4, 0 movs r3, 0 bl nullsub_4 adds r4, 0x4 adds r6, 0x1 subs r5, 0x1 cmp r5, 0 bne _0803E9E6 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803EA04: .4byte gUnknown_203B418 _0803EA08: .4byte 0x000181e4 _0803EA0C: .4byte gUnknown_202EDC8 thumb_func_end sub_803E9D0 thumb_func_start sub_803EA10 sub_803EA10: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r0, _0803EACC ldr r0, [r0] ldr r4, [r0, 0x4] ldr r1, _0803EAD0 ldr r0, _0803EAD4 ldr r2, [r0] ldr r0, _0803EAD8 ldr r3, [r0] movs r0, 0xBE lsls r0, 1 adds r3, r0 movs r0, 0 bl SetBGPaletteBufferColorRGB adds r4, 0x4 movs r6, 0x1 movs r5, 0x9F _0803EA3A: ldr r1, _0803EAD4 mov r8, r1 ldr r2, [r1] ldr r7, _0803EAD8 ldr r3, [r7] movs r0, 0xBE lsls r0, 1 adds r3, r0 adds r0, r6, 0 adds r1, r4, 0 bl SetBGPaletteBufferColorRGB adds r4, 0x4 adds r6, 0x1 subs r5, 0x1 cmp r5, 0 bne _0803EA3A ldr r3, [r7] ldr r1, _0803EADC adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _0803EA72 ldr r2, _0803EAE0 adds r0, r3, r2 ldr r0, [r0] cmp r0, 0x3 bne _0803EA8C _0803EA72: ldr r1, _0803EAE4 mov r2, r8 ldr r0, [r2] str r0, [sp] movs r2, 0xBE lsls r2, 1 adds r0, r3, r2 str r0, [sp, 0x4] movs r0, 0x1 movs r2, 0xA0 movs r3, 0x20 bl sub_8004AF0 _0803EA8C: adds r6, 0x20 ldr r4, _0803EAE8 movs r5, 0x20 _0803EA92: ldr r7, _0803EAD4 ldr r2, [r7] ldr r0, _0803EAD8 ldr r3, [r0] movs r0, 0xBE lsls r0, 1 adds r3, r0 adds r0, r6, 0 adds r1, r4, 0 bl SetBGPaletteBufferColorRGB adds r4, 0x4 adds r6, 0x1 subs r5, 0x1 cmp r5, 0 bne _0803EA92 ldr r1, _0803EAEC ldr r2, [r7] movs r0, 0xF8 movs r3, 0 bl SetBGPaletteBufferColorRGB add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803EACC: .4byte gUnknown_202EE88 _0803EAD0: .4byte gUnknown_80F62AC _0803EAD4: .4byte gUnknown_202EDC8 _0803EAD8: .4byte gUnknown_203B418 _0803EADC: .4byte 0x00018215 _0803EAE0: .4byte 0x0001c06c _0803EAE4: .4byte gUnknown_202EE8C _0803EAE8: .4byte gUnknown_202ECA4 _0803EAEC: .4byte gUnknown_202D058 thumb_func_end sub_803EA10 thumb_func_start sub_803EAF0 sub_803EAF0: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, _0803EB20 ldr r0, [r0] cmp r4, r0 bne _0803EB00 b _0803EC88 _0803EB00: cmp r4, 0x5 bne _0803EB06 b _0803EC1C _0803EB06: cmp r4, 0x5 bhi _0803EB2E cmp r4, 0x2 bne _0803EB10 b _0803EBFC _0803EB10: cmp r4, 0x2 bhi _0803EB24 cmp r4, 0 beq _0803EB70 cmp r4, 0x1 beq _0803EB50 b _0803EC84 .align 2, 0 _0803EB20: .4byte gUnknown_202EDD0 _0803EB24: cmp r4, 0x3 beq _0803EB98 cmp r4, 0x4 beq _0803EBFC b _0803EC84 _0803EB2E: cmp r4, 0x8 bne _0803EB34 b _0803EC34 _0803EB34: cmp r4, 0x8 bhi _0803EB42 cmp r4, 0x6 beq _0803EBBC cmp r4, 0x7 beq _0803EBDC b _0803EC84 _0803EB42: cmp r4, 0xA bne _0803EB48 b _0803EC80 _0803EB48: cmp r4, 0xA bcs _0803EB4E b _0803EC54 _0803EB4E: b _0803EC84 _0803EB50: ldr r0, _0803EB6C ldrb r0, [r0] cmp r0, 0 beq _0803EB5E movs r0, 0 bl sub_8052210 _0803EB5E: bl sub_8004914 bl sub_803EC94 movs r0, 0 movs r1, 0x1 b _0803EC6E .align 2, 0 _0803EB6C: .4byte gUnknown_203B40C _0803EB70: bl sub_803EC94 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, _0803EB94 ldrb r0, [r0] cmp r0, 0 bne _0803EB88 b _0803EC84 _0803EB88: bl sub_8040A84 movs r0, 0 bl sub_8040ABC b _0803EC84 .align 2, 0 _0803EB94: .4byte gUnknown_203B40C _0803EB98: ldr r0, _0803EBB4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, _0803EBB8 ldrb r0, [r0] cmp r0, 0 beq _0803EC84 movs r0, 0x1 bl sub_8040ABC b _0803EC84 .align 2, 0 _0803EBB4: .4byte gUnknown_80F62B0 _0803EBB8: .4byte gUnknown_203B40C _0803EBBC: ldr r0, _0803EBD4 ldrb r0, [r0] cmp r0, 0 beq _0803EBCA movs r0, 0 bl sub_8052210 _0803EBCA: bl sub_8004914 ldr r0, _0803EBD8 movs r1, 0x1 b _0803EC6E .align 2, 0 _0803EBD4: .4byte gUnknown_203B40C _0803EBD8: .4byte gUnknown_80F6310 _0803EBDC: ldr r0, _0803EBF4 ldrb r0, [r0] cmp r0, 0 beq _0803EBEA movs r0, 0 bl sub_8052210 _0803EBEA: bl sub_8004914 ldr r0, _0803EBF8 movs r1, 0x1 b _0803EC6E .align 2, 0 _0803EBF4: .4byte gUnknown_203B40C _0803EBF8: .4byte gUnknown_80F6370 _0803EBFC: ldr r0, _0803EC18 ldrb r0, [r0] cmp r0, 0 beq _0803EC0A movs r0, 0 bl sub_8052210 _0803EC0A: bl sub_8004914 bl sub_803EC94 movs r0, 0 movs r1, 0x1 b _0803EC6E .align 2, 0 _0803EC18: .4byte gUnknown_203B40C _0803EC1C: ldr r0, _0803EC30 ldrb r0, [r0] cmp r0, 0 beq _0803EC2A movs r0, 0 bl sub_8052210 _0803EC2A: movs r0, 0 movs r1, 0x1 b _0803EC6E .align 2, 0 _0803EC30: .4byte gUnknown_203B40C _0803EC34: ldr r0, _0803EC50 ldrb r0, [r0] cmp r0, 0 beq _0803EC46 bl sub_8083D44 movs r0, 0 bl sub_8052210 _0803EC46: movs r0, 0x2 adds r1, r5, 0 bl sub_801602C b _0803EC84 .align 2, 0 _0803EC50: .4byte gUnknown_203B40C _0803EC54: ldr r0, _0803EC78 ldrb r0, [r0] cmp r0, 0 beq _0803EC66 movs r0, 0 bl sub_8052210 bl sub_8083D44 _0803EC66: bl sub_8004914 ldr r0, _0803EC7C movs r1, 0 _0803EC6E: movs r2, 0x1 bl sub_800641C b _0803EC84 .align 2, 0 _0803EC78: .4byte gUnknown_203B40C _0803EC7C: .4byte gUnknown_80F63D0 _0803EC80: bl sub_8083D44 _0803EC84: ldr r0, _0803EC90 str r4, [r0] _0803EC88: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803EC90: .4byte gUnknown_202EDD0 thumb_func_end sub_803EAF0 thumb_func_start sub_803EC94 sub_803EC94: push {lr} ldr r0, _0803ECB0 movs r1, 0 strh r1, [r0, 0x1E] strh r1, [r0, 0x20] strh r1, [r0, 0xC] strh r1, [r0, 0xE] strh r1, [r0, 0x14] adds r0, 0x28 bl sub_801317C pop {r0} bx r0 .align 2, 0 _0803ECB0: .4byte gUnknown_202EE10 thumb_func_end sub_803EC94 thumb_func_start sub_803ECB4 sub_803ECB4: push {r4,r5,lr} adds r5, r0, 0 lsls r4, r1, 24 lsrs r4, 24 ldr r1, _0803ECDC movs r0, 0xA str r0, [r1] movs r0, 0 bl sub_8052210 bl sub_8004914 adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803ECDC: .4byte gUnknown_202EDD0 thumb_func_end sub_803ECB4 thumb_func_start sub_803ECE0 sub_803ECE0: push {lr} ldr r1, _0803ED24 ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0 bge _0803ECF2 movs r0, 0 str r0, [r1] _0803ECF2: ldr r0, [r1] cmp r0, 0xB ble _0803ECFC movs r0, 0 str r0, [r1] _0803ECFC: ldr r0, _0803ED28 ldr r2, [r0] ldr r0, [r1] cmp r0, 0 bge _0803ED08 adds r0, 0x3 _0803ED08: asrs r1, r0, 2 lsls r0, r1, 3 adds r0, r1 lsls r0, 6 ldr r1, [r2, 0x4] adds r1, r0 movs r2, 0x90 lsls r2, 2 ldr r0, _0803ED2C bl sub_80098BC pop {r0} bx r0 .align 2, 0 _0803ED24: .4byte gUnknown_202EDD8 _0803ED28: .4byte gUnknown_202EC94 _0803ED2C: .4byte 0x06014400 thumb_func_end sub_803ECE0 thumb_func_start sub_803ED30 sub_803ED30: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 adds r7, r1, 0 mov r9, r3 lsls r2, 24 lsrs r2, 24 mov r8, r2 cmp r5, 0 beq _0803EDDA ldr r0, _0803EDAC ldr r0, [r0] ldr r1, _0803EDB0 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0803EDDA movs r4, 0 ldr r1, _0803EDB4 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _0803ED78 adds r6, r1, 0 _0803ED64: movs r0, 0x29 bl sub_803E46C adds r4, 0x1 cmp r4, 0x13 bgt _0803ED78 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _0803ED64 _0803ED78: adds r0, r5, 0 mov r1, r8 bl sub_803EF90 ldr r3, _0803EDB4 movs r2, 0 movs r1, 0x3C strh r1, [r3] str r7, [r3, 0x4] ldrh r1, [r7, 0x26] str r1, [r3, 0x8] lsls r1, r0, 1 adds r1, r0 lsls r1, 8 negs r1, r1 str r1, [r3, 0xC] str r2, [r3, 0x10] mov r2, r9 cmp r2, 0 bge _0803EDC8 ldr r0, _0803EDB8 cmp r5, r0 bge _0803EDBC movs r0, 0x6 b _0803EDCA .align 2, 0 _0803EDAC: .4byte gUnknown_203B418 _0803EDB0: .4byte 0x0001820a _0803EDB4: .4byte gUnknown_202EDE8 _0803EDB8: .4byte 0xfffffc19 _0803EDBC: cmp r5, 0 blt _0803EDC4 movs r0, 0xA b _0803EDCA _0803EDC4: movs r0, 0x3 b _0803EDCA _0803EDC8: mov r0, r9 _0803EDCA: strh r0, [r3, 0x2] ldr r0, _0803EDE8 ldr r1, _0803EDEC ldr r1, [r1] adds r1, 0x18 movs r2, 0x80 bl sub_80098BC _0803EDDA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803EDE8: .4byte 0x060142c0 _0803EDEC: .4byte gUnknown_203B418 thumb_func_end sub_803ED30 thumb_func_start sub_803EDF0 sub_803EDF0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r6, _0803EE18 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _0803EE06 b _0803EF42 _0803EE06: ldr r0, [r6, 0x4] bl sub_80450E0 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0803EE1C strh r0, [r6] b _0803EF42 .align 2, 0 _0803EE18: .4byte gUnknown_202EDE8 _0803EE1C: ldr r1, [r6, 0x4] ldr r0, [r6, 0x8] ldrh r2, [r1, 0x26] cmp r0, r2 beq _0803EE2C movs r0, 0 strh r0, [r6] b _0803EF42 _0803EE2C: ldrh r0, [r6] subs r0, 0x1 strh r0, [r6] ldr r4, [r6, 0x10] adds r3, r4, 0 subs r3, 0x2E str r3, [r6, 0x10] ldr r2, [r1, 0x70] movs r5, 0xB8 lsls r5, 1 adds r0, r2, r5 movs r1, 0 ldrsh r0, [r0, r1] ldr r1, [r6, 0xC] cmp r1, 0 bge _0803EE4E adds r1, 0xFF _0803EE4E: asrs r1, 8 adds r1, r0, r1 ldr r0, _0803EF50 ldr r0, [r0] mov r12, r0 ldr r0, _0803EF54 add r0, r12 movs r5, 0 ldrsh r0, [r0, r5] subs r7, r1, r0 movs r1, 0xB9 lsls r1, 1 adds r0, r2, r1 movs r2, 0 ldrsh r0, [r0, r2] adds r1, r3, 0 cmp r1, 0 bge _0803EE76 adds r1, r4, 0 adds r1, 0xD1 _0803EE76: asrs r1, 8 adds r1, r0, r1 ldr r0, _0803EF58 add r0, r12 movs r3, 0 ldrsh r0, [r0, r3] adds r0, 0x18 subs r2, r1, r0 movs r0, 0x20 negs r0, r0 cmp r7, r0 blt _0803EF42 adds r0, 0x18 cmp r2, r0 blt _0803EF42 cmp r7, 0xEF bgt _0803EF42 cmp r2, 0x9F bgt _0803EF42 ldr r1, _0803EF5C ands r1, r2 lsls r1, 4 ldr r0, _0803EF60 ldrh r2, [r0, 0x6] movs r4, 0xF mov r8, r4 mov r3, r8 ands r3, r2 orrs r3, r1 strh r3, [r0, 0x6] ldrh r2, [r0] ldr r1, _0803EF64 ands r1, r2 ldr r2, _0803EF68 ands r1, r2 movs r5, 0x3 mov r9, r5 ldr r2, _0803EF6C mov r10, r2 ands r1, r2 ldr r2, _0803EF70 ands r1, r2 ldr r2, _0803EF74 ands r1, r2 movs r5, 0x80 lsls r5, 7 ldr r4, _0803EF78 ands r1, r4 orrs r1, r5 strh r1, [r0] ldr r1, _0803EF7C ands r7, r1 ldrh r2, [r0, 0x2] movs r1, 0xFE lsls r1, 8 ands r1, r2 orrs r1, r7 ldr r2, _0803EF80 ands r1, r2 ands r1, r4 orrs r1, r5 strh r1, [r0, 0x2] ldr r4, _0803EF84 ldrh r2, [r0, 0x4] movs r1, 0xFC lsls r1, 8 ands r1, r2 orrs r1, r4 movs r2, 0 orrs r1, r2 strh r1, [r0, 0x4] ldr r2, _0803EF88 add r2, r12 ldrb r2, [r2] mov r4, r9 ands r2, r4 lsls r2, 10 mov r5, r10 ands r1, r5 orrs r1, r2 movs r4, 0x2 ldrsh r2, [r6, r4] mov r5, r8 ands r2, r5 lsls r2, 12 ldr r4, _0803EF5C ands r1, r4 orrs r1, r2 strh r1, [r0, 0x4] ldr r1, _0803EF8C ands r3, r1 subs r1, 0x1 ands r3, r1 subs r1, 0x2 ands r3, r1 strh r3, [r0, 0x6] movs r1, 0x80 lsls r1, 1 movs r2, 0 movs r3, 0 bl AddSprite _0803EF42: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803EF50: .4byte gUnknown_203B418 _0803EF54: .4byte 0x000181f0 _0803EF58: .4byte 0x000181f2 _0803EF5C: .4byte 0x00000fff _0803EF60: .4byte gUnknown_202EDDC _0803EF64: .4byte 0x0000feff _0803EF68: .4byte 0x0000fdff _0803EF6C: .4byte 0x0000f3ff _0803EF70: .4byte 0x0000efff _0803EF74: .4byte 0x0000dfff _0803EF78: .4byte 0x00003fff _0803EF7C: .4byte 0x000001ff _0803EF80: .4byte 0x0000c1ff _0803EF84: .4byte 0x00000216 _0803EF88: .4byte 0x00018208 _0803EF8C: .4byte 0x0000fffe thumb_func_end sub_803EDF0 thumb_func_start sub_803EF90 sub_803EF90: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x58 str r0, [sp, 0x48] lsls r1, 24 lsrs r5, r1, 24 ldr r0, _0803F060 ldr r0, [r0] adds r0, 0x18 mov r8, r0 ldr r0, _0803F064 ldr r1, [r0] ldr r0, [r1, 0x4] movs r2, 0x92 lsls r2, 1 adds r0, r2 str r0, [sp, 0x24] ldr r0, [r1, 0x4] movs r3, 0x82 lsls r3, 1 adds r0, r3 str r0, [sp, 0x28] ldr r0, [r1, 0x4] adds r0, 0xE4 str r0, [sp, 0x2C] ldr r0, [r1, 0x4] adds r0, 0xC4 str r0, [sp, 0x30] ldr r0, [r1, 0x4] adds r0, 0xA4 str r0, [sp, 0x34] ldr r0, [r1, 0x4] adds r0, 0x84 str r0, [sp, 0x38] ldr r0, [r1, 0x4] adds r0, 0x64 str r0, [sp, 0x3C] ldr r0, [r1, 0x4] adds r0, 0x44 str r0, [sp, 0x40] ldr r0, [r1, 0x4] adds r0, 0x24 str r0, [sp, 0x44] add r4, sp, 0x24 mov r0, sp adds r1, r4, 0 movs r2, 0x24 bl memcpy movs r1, 0 movs r6, 0x3 mov r0, r8 _0803EFFE: stm r0!, {r1} stm r0!, {r1} stm r0!, {r1} stm r0!, {r1} stm r0!, {r1} stm r0!, {r1} stm r0!, {r1} stm r0!, {r1} subs r6, 0x1 cmp r6, 0 bge _0803EFFE ldr r0, _0803F068 ldr r1, [sp, 0x48] cmp r1, r0 bne _0803F0A6 adds r0, r4, 0 ldr r1, _0803F06C ldm r1!, {r2,r3,r5} stm r0!, {r2,r3,r5} ldr r1, [r1] str r1, [r0] movs r5, 0 movs r2, 0 mov r12, r4 movs r0, 0x20 mov r10, r0 _0803F032: mov r3, r8 ldr r0, _0803F064 ldr r1, [r0] lsls r0, r2, 2 add r0, r12 ldr r0, [r0] lsls r0, 5 adds r0, 0x4 ldr r1, [r1, 0x4] adds r4, r1, r0 movs r1, 0x18 adds r1, r5 mov r9, r1 adds r2, 0x1 str r2, [sp, 0x54] mov r2, r10 subs r7, r2, r5 movs r6, 0x7 _0803F056: cmp r5, 0 bne _0803F070 movs r1, 0 ldr r2, [r4] b _0803F07A .align 2, 0 _0803F060: .4byte gUnknown_203B418 _0803F064: .4byte gUnknown_202EC9C _0803F068: .4byte 0x0000270f _0803F06C: .4byte gUnknown_80F6478 _0803F070: ldr r0, [r4] adds r1, r0, 0 lsrs r1, r7 adds r2, r0, 0 lsls r2, r5 _0803F07A: adds r4, 0x4 ldr r0, [r3] orrs r0, r2 str r0, [r3] ldr r0, [r3, 0x20] orrs r0, r1 str r0, [r3, 0x20] adds r3, 0x4 subs r6, 0x1 cmp r6, 0 bge _0803F056 mov r5, r9 cmp r5, 0x1F ble _0803F09C subs r5, 0x20 movs r3, 0x20 add r8, r3 _0803F09C: ldr r2, [sp, 0x54] cmp r2, 0x3 ble _0803F032 movs r0, 0x4 b _0803F26A _0803F0A6: ldr r0, _0803F0D8 ldr r1, [sp, 0x48] cmp r1, r0 ble _0803F0B0 str r0, [sp, 0x48] _0803F0B0: ldr r0, _0803F0DC ldr r2, [sp, 0x48] cmp r2, r0 bge _0803F0BA str r0, [sp, 0x48] _0803F0BA: ldr r1, _0803F0E0 ldr r0, [r1] ldr r0, [r0, 0x4] movs r3, 0xC2 lsls r3, 1 adds r2, r0, r3 cmp r5, 0 beq _0803F0F4 ldr r5, [sp, 0x48] cmp r5, 0 ble _0803F0E4 movs r1, 0xA2 lsls r1, 1 adds r2, r0, r1 b _0803F0F4 .align 2, 0 _0803F0D8: .4byte 0x000003e7 _0803F0DC: .4byte 0xfffffc19 _0803F0E0: .4byte gUnknown_202EC9C _0803F0E4: ldr r3, [sp, 0x48] cmp r3, 0 bge _0803F0F4 movs r5, 0xB2 lsls r5, 1 adds r2, r0, r5 negs r3, r3 str r3, [sp, 0x48] _0803F0F4: ldm r2!, {r0} mov r1, r8 str r0, [r1] ldm r2!, {r0} str r0, [r1, 0x4] ldm r2!, {r0} str r0, [r1, 0x8] ldm r2!, {r0} str r0, [r1, 0xC] ldm r2!, {r0} str r0, [r1, 0x10] ldm r2!, {r0} str r0, [r1, 0x14] ldm r2!, {r0} str r0, [r1, 0x18] ldr r0, [r2] str r0, [r1, 0x1C] movs r5, 0x18 movs r2, 0x1 str r2, [sp, 0x4C] movs r3, 0 str r3, [sp, 0x50] movs r2, 0 _0803F122: movs r0, 0 mov r10, r0 adds r1, r2, 0x1 str r1, [sp, 0x54] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 mov r1, sp ldr r2, _0803F15C adds r7, r0, r2 _0803F136: ldr r0, [r7] ldr r3, [sp, 0x48] cmp r0, r3 bgt _0803F1A2 ldr r4, [r1] mov r2, r8 movs r0, 0x18 adds r0, r5 mov r9, r0 movs r1, 0x20 subs r1, r5 mov r12, r1 movs r6, 0x7 _0803F150: cmp r5, 0 bne _0803F160 movs r3, 0 ldr r1, [r4] b _0803F16C .align 2, 0 _0803F15C: .4byte gUnknown_80F6430 _0803F160: ldr r0, [r4] adds r3, r0, 0 mov r1, r12 lsrs r3, r1 adds r1, r0, 0 lsls r1, r5 _0803F16C: adds r4, 0x4 ldr r0, [r2] orrs r0, r1 str r0, [r2] ldr r0, [r2, 0x20] orrs r0, r3 str r0, [r2, 0x20] adds r2, 0x4 movs r3, 0x1 str r3, [sp, 0x50] subs r6, 0x1 cmp r6, 0 bge _0803F150 mov r5, r9 cmp r5, 0x1F ble _0803F192 subs r5, 0x20 movs r0, 0x20 add r8, r0 _0803F192: ldr r0, [r7] ldr r1, [sp, 0x48] subs r1, r0 str r1, [sp, 0x48] ldr r2, [sp, 0x4C] adds r2, 0x1 str r2, [sp, 0x4C] b _0803F1B0 _0803F1A2: adds r1, 0x4 adds r7, 0x4 movs r3, 0x1 add r10, r3 mov r0, r10 cmp r0, 0x8 ble _0803F136 _0803F1B0: mov r1, r10 cmp r1, 0x9 bne _0803F212 ldr r2, [sp, 0x50] cmp r2, 0 beq _0803F212 ldr r3, _0803F1DC ldr r0, [r3] ldr r0, [r0, 0x4] adds r4, r0, 0x4 mov r2, r8 movs r0, 0x18 adds r0, r5 mov r9, r0 movs r1, 0x20 subs r7, r1, r5 movs r6, 0x7 _0803F1D2: cmp r5, 0 bne _0803F1E0 movs r3, 0 ldr r1, [r4] b _0803F1EA .align 2, 0 _0803F1DC: .4byte gUnknown_202EC9C _0803F1E0: ldr r0, [r4] adds r3, r0, 0 lsrs r3, r7 adds r1, r0, 0 lsls r1, r5 _0803F1EA: adds r4, 0x4 ldr r0, [r2] orrs r0, r1 str r0, [r2] ldr r0, [r2, 0x20] orrs r0, r3 str r0, [r2, 0x20] adds r2, 0x4 subs r6, 0x1 cmp r6, 0 bge _0803F1D2 mov r5, r9 cmp r5, 0x1F ble _0803F20C subs r5, 0x20 movs r2, 0x20 add r8, r2 _0803F20C: ldr r3, [sp, 0x4C] adds r3, 0x1 str r3, [sp, 0x4C] _0803F212: ldr r2, [sp, 0x54] cmp r2, 0x1 ble _0803F122 ldr r0, _0803F240 ldr r1, [r0] ldr r2, [sp, 0x48] lsls r0, r2, 5 adds r0, 0x4 ldr r1, [r1, 0x4] adds r1, r0 mov r3, r8 ldr r0, [sp, 0x4C] adds r0, 0x1 mov r8, r0 movs r0, 0x20 subs r7, r0, r5 movs r6, 0x7 _0803F234: cmp r5, 0 bne _0803F244 movs r4, 0 ldr r2, [r1] b _0803F24E .align 2, 0 _0803F240: .4byte gUnknown_202EC9C _0803F244: ldr r0, [r1] adds r4, r0, 0 lsrs r4, r7 adds r2, r0, 0 lsls r2, r5 _0803F24E: adds r1, 0x4 ldr r0, [r3] orrs r0, r2 str r0, [r3] ldr r0, [r3, 0x20] orrs r0, r4 str r0, [r3, 0x20] adds r3, 0x4 subs r6, 0x1 cmp r6, 0 bge _0803F234 mov r1, r8 str r1, [sp, 0x4C] adds r0, r1, 0 _0803F26A: add sp, 0x58 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803EF90 thumb_func_start sub_803F27C sub_803F27C: push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldr r0, _0803F360 mov r8, r0 ldr r4, [r0] ldr r2, _0803F364 adds r1, r4, r2 movs r2, 0 movs r3, 0 strh r3, [r1, 0x8] strh r3, [r1, 0xA] strh r3, [r1] strh r3, [r1, 0x2] strh r3, [r1, 0xC] strh r3, [r1, 0xE] strh r3, [r1, 0x4] strh r3, [r1, 0x6] str r3, [r1, 0x14] ldr r5, _0803F368 adds r0, r4, r5 strb r2, [r0] ldr r6, _0803F36C adds r0, r4, r6 movs r5, 0x1 strb r5, [r0] adds r6, 0x1 adds r0, r4, r6 strb r5, [r0] adds r6, 0x1 adds r0, r4, r6 strb r2, [r0] str r3, [r1, 0x18] str r3, [r1, 0x1C] cmp r7, 0 bne _0803F2FA subs r6, 0xF adds r0, r4, r6 strb r2, [r0] adds r6, 0x6 adds r0, r4, r6 strb r2, [r0] subs r6, 0x1 adds r0, r4, r6 strb r2, [r0] subs r6, 0x2 adds r0, r4, r6 strb r2, [r0] adds r6, 0x4 adds r0, r4, r6 strb r2, [r0] subs r6, 0x3 adds r0, r4, r6 strb r2, [r0] subs r6, 0x3 adds r0, r4, r6 strb r2, [r0] adds r6, 0x1 adds r0, r4, r6 strb r2, [r0] _0803F2FA: str r3, [r1, 0x10] ldr r1, _0803F370 adds r0, r4, r1 movs r6, 0x3 strb r6, [r0] adds r1, 0x12 adds r0, r4, r1 strb r2, [r0] subs r1, 0x8 adds r0, r4, r1 strb r2, [r0] adds r1, 0x9 adds r0, r4, r1 strb r2, [r0] adds r1, 0x1 adds r0, r4, r1 strb r2, [r0] subs r1, 0x8 adds r0, r4, r1 strb r2, [r0] ldr r2, _0803F374 adds r0, r4, r2 strb r5, [r0] bl sub_803F38C ldr r1, _0803F378 ldr r0, _0803F37C str r0, [r1] cmp r7, 0 bne _0803F354 mov r1, r8 ldr r0, [r1] ldr r2, _0803F380 adds r0, r2 ldrb r1, [r0] adds r0, r6, 0 ands r0, r1 ldr r6, _0803F384 adds r1, r4, r6 strb r0, [r1] cmp r0, 0 bne _0803F354 ldr r1, _0803F388 adds r0, r4, r1 strb r5, [r0] _0803F354: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803F360: .4byte gUnknown_203B418 _0803F364: .4byte 0x000181e8 _0803F368: .4byte 0x00018216 _0803F36C: .4byte 0x00018217 _0803F370: .4byte 0x00018208 _0803F374: .4byte 0x00018215 _0803F378: .4byte gUnknown_202EDFC _0803F37C: .4byte 0x0000ffff _0803F380: .4byte 0x0001c58a _0803F384: .4byte 0x00018209 _0803F388: .4byte 0x0001820c thumb_func_end sub_803F27C thumb_func_start sub_803F38C sub_803F38C: push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, _0803F410 ldr r1, [r0] ldr r0, _0803F414 adds r2, r1, r0 ldr r0, _0803F418 strh r0, [r2, 0x3A] movs r0, 0x1 negs r0, r0 strh r0, [r2, 0x3C] strh r0, [r2, 0x3E] ldr r0, _0803F41C adds r1, r0 movs r0, 0x1 negs r0, r0 strh r0, [r1] strh r0, [r2, 0x36] strh r0, [r2, 0x38] ldr r0, _0803F420 ldr r0, [r0] ldrb r0, [r0, 0xB] negs r4, r0 orrs r4, r0 asrs r4, 31 movs r0, 0x80 lsls r0, 1 ands r4, r0 ldr r5, _0803F424 adds r0, r4, r5 mov r8, r0 movs r0, 0xFD mov r1, r8 bl SetBGPaletteBufferColorArray adds r6, r5, 0x4 adds r6, r4, r6 movs r0, 0xFE adds r1, r6, 0 bl SetBGPaletteBufferColorArray adds r5, 0x8 adds r4, r5 movs r0, 0xFF adds r1, r4, 0 bl SetBGPaletteBufferColorArray movs r0, 0xFD mov r1, r8 bl nullsub_5 movs r0, 0xFE adds r1, r6, 0 bl nullsub_5 movs r0, 0xFF adds r1, r4, 0 bl nullsub_5 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803F410: .4byte gUnknown_203B418 _0803F414: .4byte 0x000181e8 _0803F418: .4byte 0x0000ffff _0803F41C: .4byte 0x00018228 _0803F420: .4byte gUnknown_203B46C _0803F424: .4byte gUnknown_202D06C thumb_func_end sub_803F38C thumb_func_start sub_803F428 sub_803F428: push {r4-r6,lr} adds r4, r0, 0 ldr r0, _0803F484 ldr r3, [r0] ldr r0, _0803F488 adds r2, r3, r0 ldr r5, [r2, 0x10] movs r6, 0 ldrsh r1, [r2, r6] movs r6, 0 ldrsh r0, [r4, r6] subs r1, r0 cmp r1, 0 bge _0803F446 negs r1, r1 _0803F446: cmp r1, 0x6 bgt _0803F498 movs r0, 0x2 ldrsh r1, [r2, r0] movs r6, 0x2 ldrsh r0, [r4, r6] subs r1, r0 cmp r1, 0 bge _0803F45A negs r1, r1 _0803F45A: cmp r1, 0x5 bgt _0803F498 ldr r1, _0803F48C adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 bne _0803F494 ldr r6, _0803F490 adds r0, r3, r6 ldrb r0, [r0] cmp r0, 0 bne _0803F494 cmp r5, 0 beq _0803F494 adds r0, r2, 0 adds r1, r4, 0 bl sub_8083294 lsls r0, 24 lsrs r0, 24 b _0803F49A .align 2, 0 _0803F484: .4byte gUnknown_203B418 _0803F488: .4byte 0x000181e8 _0803F48C: .4byte 0x0001820b _0803F490: .4byte 0x0001820c _0803F494: movs r0, 0x1 b _0803F49A _0803F498: movs r0, 0 _0803F49A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_803F428 thumb_func_start sub_803F4A0 sub_803F4A0: push {lr} adds r2, r0, 0 ldr r0, _0803F4B8 ldr r1, [r0] ldr r3, _0803F4BC adds r0, r1, r3 str r2, [r0, 0x10] cmp r2, 0 bne _0803F4C0 adds r3, 0x2E b _0803F4CA .align 2, 0 _0803F4B8: .4byte gUnknown_203B418 _0803F4BC: .4byte 0x000181e8 _0803F4C0: ldr r0, [r2, 0x70] ldrb r2, [r0, 0x7] cmp r2, 0 bne _0803F4D4 ldr r3, _0803F4D0 _0803F4CA: adds r0, r1, r3 strb r2, [r0] b _0803F4DC .align 2, 0 _0803F4D0: .4byte 0x00018216 _0803F4D4: ldr r0, _0803F4FC adds r1, r0 movs r0, 0x1 strb r0, [r1] _0803F4DC: movs r0, 0 bl sub_803F580 bl sub_803F38C ldr r0, _0803F500 ldr r0, [r0] ldr r1, _0803F504 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0803F4F8 bl sub_806CD90 _0803F4F8: pop {r0} bx r0 .align 2, 0 _0803F4FC: .4byte 0x00018216 _0803F500: .4byte gUnknown_203B418 _0803F504: .4byte 0x0001356c thumb_func_end sub_803F4A0 thumb_func_start sub_803F508 sub_803F508: push {r4,r5,lr} adds r3, r0, 0 ldr r0, _0803F520 ldr r1, [r0] ldr r0, _0803F524 adds r4, r1, r0 cmp r3, 0 bne _0803F52C ldr r2, _0803F528 adds r0, r1, r2 strb r3, [r0] b _0803F548 .align 2, 0 _0803F520: .4byte gUnknown_203B418 _0803F524: .4byte 0x000181e8 _0803F528: .4byte 0x00018216 _0803F52C: ldr r0, [r3, 0x70] ldrb r2, [r0, 0x7] cmp r2, 0 bne _0803F540 ldr r5, _0803F53C adds r0, r1, r5 strb r2, [r0] b _0803F548 .align 2, 0 _0803F53C: .4byte 0x00018216 _0803F540: ldr r0, _0803F574 adds r1, r0 movs r0, 0x1 strb r0, [r1] _0803F548: str r3, [r4, 0x10] movs r0, 0 bl sub_803F580 bl sub_803F38C ldr r0, _0803F578 ldr r0, [r0] ldr r1, _0803F57C adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0803F566 bl sub_806CD90 _0803F566: bl sub_8049ED4 bl sub_8040A84 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803F574: .4byte 0x00018216 _0803F578: .4byte gUnknown_203B418 _0803F57C: .4byte 0x0001356c thumb_func_end sub_803F508 thumb_func_start sub_803F580 sub_803F580: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, _0803F600 ldr r4, [r0] ldr r0, _0803F604 adds r5, r4, r0 ldr r6, [r5, 0x10] cmp r6, 0 bne _0803F59E b _0803F7A0 _0803F59E: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _0803F5AC b _0803F7A0 _0803F5AC: ldr r7, [r6, 0x70] ldr r0, [r5, 0x8] str r0, [r5, 0xC] ldr r0, [r5] str r0, [r5, 0x4] ldrh r0, [r6, 0x4] strh r0, [r5] ldrh r0, [r6, 0x6] strh r0, [r5, 0x2] ldr r0, [r6, 0xC] cmp r0, 0 bge _0803F5C6 adds r0, 0xFF _0803F5C6: asrs r0, 8 subs r0, 0x78 strh r0, [r5, 0x8] ldr r0, [r6, 0x10] cmp r0, 0 bge _0803F5D4 adds r0, 0xFF _0803F5D4: asrs r0, 8 subs r0, 0x60 strh r0, [r5, 0xA] adds r0, r6, 0 movs r1, 0x11 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _0803F610 ldrb r0, [r7, 0x7] cmp r0, 0 beq _0803F610 ldr r1, _0803F608 adds r0, r4, r1 movs r1, 0x1 strb r1, [r0] ldr r2, _0803F60C adds r0, r4, r2 strb r1, [r0] b _0803F626 .align 2, 0 _0803F600: .4byte gUnknown_203B418 _0803F604: .4byte 0x000181e8 _0803F608: .4byte 0x0001820d _0803F60C: .4byte 0x0001820e _0803F610: adds r0, r7, 0 adds r0, 0xF0 ldrb r0, [r0] adds r1, r5, 0 adds r1, 0x25 strb r0, [r1] adds r0, r7, 0 adds r0, 0xF1 ldrb r0, [r0] adds r1, 0x1 strb r0, [r1] _0803F626: adds r0, r7, 0 adds r0, 0xF2 ldrb r0, [r0] adds r1, r5, 0 adds r1, 0x29 strb r0, [r1] subs r1, 0x7 ldrb r0, [r1] mov r8, r0 adds r0, r5, 0 adds r0, 0x2C ldrb r2, [r0] adds r4, r1, 0 cmp r2, 0 bne _0803F670 adds r0, r7, 0 adds r0, 0xE8 ldrb r1, [r0] adds r7, r0, 0 cmp r1, 0x1 bne _0803F656 strb r1, [r4] movs r1, 0xE b _0803F65A _0803F656: strb r2, [r4] movs r1, 0 _0803F65A: ldr r2, _0803F66C ldr r0, [r2] cmp r0, r1 beq _0803F678 str r1, [r2] adds r0, r1, 0 bl SetBGOBJEnableFlags b _0803F678 .align 2, 0 _0803F66C: .4byte gUnknown_202EDFC _0803F670: ldr r1, _0803F698 ldr r0, _0803F69C str r0, [r1] adds r7, 0xE8 _0803F678: ldrb r4, [r4] cmp r8, r4 beq _0803F684 movs r0, 0 bl sub_8041888 _0803F684: adds r0, r5, 0 adds r0, 0x28 ldrb r1, [r0] mov r8, r1 ldrb r1, [r7] adds r2, r0, 0 cmp r1, 0x2 bne _0803F6A0 movs r0, 0x1 b _0803F6A2 .align 2, 0 _0803F698: .4byte gUnknown_202EDFC _0803F69C: .4byte 0x0000ffff _0803F6A0: movs r0, 0 _0803F6A2: strb r0, [r2] ldrb r2, [r2] cmp r8, r2 beq _0803F6B4 bl sub_806CC70 movs r0, 0 bl sub_8041888 _0803F6B4: adds r4, r5, 0 adds r4, 0x27 ldrb r2, [r4] mov r8, r2 adds r0, r6, 0 bl sub_8071884 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0803F6CC movs r0, 0x1 _0803F6CC: strb r0, [r4] ldrb r4, [r4] cmp r8, r4 beq _0803F6E2 bl sub_8049ED4 bl sub_8040A84 movs r0, 0 bl sub_8041888 _0803F6E2: mov r0, r9 cmp r0, 0 beq _0803F76A adds r0, r5, 0 adds r0, 0x2B ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0 bne _0803F76A movs r2, 0xC ldrsh r1, [r5, r2] movs r2, 0x8 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0803F704 negs r1, r1 _0803F704: cmp r1, 0x7 bgt _0803F71C movs r0, 0xE ldrsh r1, [r5, r0] movs r2, 0xA ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0803F718 negs r1, r1 _0803F718: cmp r1, 0x7 ble _0803F726 _0803F71C: bl sub_8049ED4 movs r0, 0x1 strb r0, [r4] b _0803F76A _0803F726: movs r0, 0xC ldrsh r1, [r5, r0] movs r2, 0x8 ldrsh r0, [r5, r2] cmp r1, r0 bge _0803F73C movs r0, 0xF0 movs r1, 0 bl sub_804A1F0 b _0803F748 _0803F73C: cmp r1, r0 ble _0803F748 movs r0, 0 movs r1, 0 bl sub_804A1F0 _0803F748: movs r0, 0xE ldrsh r1, [r5, r0] movs r2, 0xA ldrsh r0, [r5, r2] cmp r1, r0 bge _0803F75E movs r0, 0 movs r1, 0xA0 bl sub_804A49C b _0803F76A _0803F75E: cmp r1, r0 ble _0803F76A movs r0, 0 movs r1, 0 bl sub_804A49C _0803F76A: ldr r1, [r5] ldr r0, [r5, 0x4] cmp r1, r0 beq _0803F7A0 movs r5, 0 _0803F774: ldr r0, _0803F7B4 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0803F7B8 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0803F79A movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_80402AC _0803F79A: adds r5, 0x1 cmp r5, 0x13 ble _0803F774 _0803F7A0: bl sub_80400D4 bl sub_803F7BC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803F7B4: .4byte gUnknown_203B418 _0803F7B8: .4byte 0x000135cc thumb_func_end sub_803F580 thumb_func_start sub_803F7BC sub_803F7BC: push {r4-r6,lr} sub sp, 0x10 ldr r6, _0803F800 ldr r4, [r6] ldr r0, _0803F804 adds r5, r4, r0 movs r1, 0 ldrsh r0, [r5, r1] movs r2, 0x2 ldrsh r1, [r5, r2] bl sub_804954C ldrb r1, [r0, 0x9] ldr r2, _0803F808 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 bne _0803F7F4 adds r2, 0x1 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 bne _0803F7F4 adds r2, 0xB adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 beq _0803F80C _0803F7F4: movs r0, 0 movs r1, 0 bl sub_8005838 b _0803F86A .align 2, 0 _0803F800: .4byte gUnknown_203B418 _0803F804: .4byte 0x000181e8 _0803F808: .4byte 0x0001820b _0803F80C: cmp r1, 0xFF bne _0803F82C ldr r1, _0803F828 adds r0, r4, r1 ldrb r0, [r0] movs r1, 0x2 cmp r0, 0x2 bne _0803F81E movs r1, 0x1 _0803F81E: movs r0, 0 bl sub_8005838 b _0803F86A .align 2, 0 _0803F828: .4byte 0x00018209 _0803F82C: lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r2, _0803F874 adds r0, r2 ldr r2, [r6] adds r2, r0 movs r0, 0x8 ldrsh r1, [r5, r0] ldr r0, [r2, 0xC] subs r0, r1 str r0, [sp] movs r0, 0xA ldrsh r1, [r5, r0] ldr r0, [r2, 0x10] subs r0, r1 str r0, [sp, 0x4] movs r0, 0x8 ldrsh r1, [r5, r0] ldr r0, [r2, 0x14] subs r0, r1 str r0, [sp, 0x8] movs r0, 0xA ldrsh r1, [r5, r0] ldr r0, [r2, 0x18] subs r0, r1 str r0, [sp, 0xC] mov r0, sp movs r1, 0x3 bl sub_8005838 _0803F86A: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803F874: .4byte 0x000104c4 thumb_func_end sub_803F7BC thumb_func_start sub_803F878 sub_803F878: push {r4-r7,lr} mov r7, r8 push {r7} adds r2, r0, 0 adds r6, r1, 0 ldr r0, _0803F92C ldr r7, [r0] ldr r0, _0803F930 adds r5, r7, r0 ldr r0, [r5, 0x8] str r0, [r5, 0xC] ldr r0, [r5] str r0, [r5, 0x4] adds r0, r2, 0 cmp r2, 0 bge _0803F89A adds r0, 0xFF _0803F89A: asrs r0, 8 subs r0, 0x78 movs r1, 0 mov r8, r1 strh r0, [r5, 0x8] adds r0, r6, 0 cmp r6, 0 bge _0803F8AC adds r0, 0xFF _0803F8AC: asrs r0, 8 subs r0, 0x60 strh r0, [r5, 0xA] movs r4, 0xC0 lsls r4, 5 adds r0, r2, 0 adds r1, r4, 0 bl __divsi3 strh r0, [r5] adds r0, r6, 0 adds r1, r4, 0 bl __divsi3 strh r0, [r5, 0x2] ldr r2, _0803F934 adds r0, r7, r2 mov r1, r8 strb r1, [r0] adds r2, 0x1 adds r0, r7, r2 strb r1, [r0] ldr r1, _0803F938 adds r0, r7, r1 mov r2, r8 strb r2, [r0] adds r1, 0x5 adds r0, r7, r1 strb r2, [r0] ldr r1, _0803F93C ldr r0, [r1] cmp r0, 0 beq _0803F8F6 movs r0, 0 str r0, [r1] bl SetBGOBJEnableFlags _0803F8F6: movs r2, 0xC ldrsh r1, [r5, r2] movs r2, 0x8 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0803F906 negs r1, r1 _0803F906: cmp r1, 0x7 bgt _0803F91E movs r0, 0xE ldrsh r1, [r5, r0] movs r2, 0xA ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0803F91A negs r1, r1 _0803F91A: cmp r1, 0x7 ble _0803F940 _0803F91E: bl sub_8049ED4 adds r1, r5, 0 adds r1, 0x2B movs r0, 0x1 strb r0, [r1] b _0803F984 .align 2, 0 _0803F92C: .4byte gUnknown_203B418 _0803F930: .4byte 0x000181e8 _0803F934: .4byte 0x0001820d _0803F938: .4byte 0x00018211 _0803F93C: .4byte gUnknown_202EDFC _0803F940: movs r0, 0xC ldrsh r1, [r5, r0] movs r2, 0x8 ldrsh r0, [r5, r2] cmp r1, r0 bge _0803F956 movs r0, 0xF0 movs r1, 0 bl sub_804A1F0 b _0803F962 _0803F956: cmp r1, r0 ble _0803F962 movs r0, 0 movs r1, 0 bl sub_804A1F0 _0803F962: movs r0, 0xE ldrsh r1, [r5, r0] movs r2, 0xA ldrsh r0, [r5, r2] cmp r1, r0 bge _0803F978 movs r0, 0 movs r1, 0xA0 bl sub_804A49C b _0803F984 _0803F978: cmp r1, r0 ble _0803F984 movs r0, 0 movs r1, 0 bl sub_804A49C _0803F984: bl sub_803F7BC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_803F878 thumb_func_start sub_803F994 sub_803F994: ldr r0, _0803F9A8 ldr r0, [r0] ldr r1, _0803F9AC adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] adds r0, 0x78 lsls r0, 8 bx lr .align 2, 0 _0803F9A8: .4byte gUnknown_203B418 _0803F9AC: .4byte 0x000181e8 thumb_func_end sub_803F994 thumb_func_start sub_803F9B0 sub_803F9B0: ldr r0, _0803F9C4 ldr r0, [r0] ldr r1, _0803F9C8 adds r0, r1 movs r1, 0xA ldrsh r0, [r0, r1] adds r0, 0x60 lsls r0, 8 bx lr .align 2, 0 _0803F9C4: .4byte gUnknown_203B418 _0803F9C8: .4byte 0x000181e8 thumb_func_end sub_803F9B0 thumb_func_start sub_803F9CC sub_803F9CC: push {r4,r5,lr} ldr r0, _0803FA24 ldr r1, [r0] ldr r2, _0803FA28 adds r0, r1, r2 ldr r4, [r0] movs r5, 0 ldr r2, _0803FA2C adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0803FA0C ldr r2, _0803FA30 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0803FA0C bl sub_800EC74 lsls r0, 24 cmp r0, 0 bne _0803FA0C cmp r4, 0 beq _0803FA08 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _0803FA08 movs r5, 0x1 _0803FA08: cmp r5, 0 bne _0803FA38 _0803FA0C: ldr r0, _0803FA34 movs r2, 0 adds r0, 0x2 movs r1, 0x1C _0803FA14: strh r2, [r0] adds r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _0803FA14 bl sub_803F38C b _0803FA3C .align 2, 0 _0803FA24: .4byte gUnknown_203B418 _0803FA28: .4byte 0x000181f8 _0803FA2C: .4byte 0x0001356c _0803FA30: .4byte 0x00018218 _0803FA34: .4byte gUnknown_202B038 _0803FA38: bl sub_803FB74 _0803FA3C: ldr r1, _0803FA48 movs r0, 0x1 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803FA48: .4byte gUnknown_20274A5 thumb_func_end sub_803F9CC thumb_func_start sub_803FA4C sub_803FA4C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 adds r4, r0, 0 mov r8, r1 lsls r2, 24 lsrs r2, 24 mov r12, r2 ldr r0, _0803FB4C ldr r3, [r0] ldr r0, _0803FB50 adds r0, r3, r0 str r0, [sp, 0x24] ldr r7, _0803FB54 mov r1, sp ldr r0, _0803FB58 ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldr r0, _0803FB5C mov r10, r0 ldr r1, _0803FB60 mov r9, r1 ldr r2, [sp, 0x24] movs r5, 0x3E ldrsh r0, [r2, r5] cmp r4, r0 bne _0803FA9C ldr r6, _0803FB64 adds r0, r3, r6 movs r1, 0 ldrsh r0, [r0, r1] cmp r8, r0 beq _0803FB3A _0803FA9C: mov r2, r12 cmp r2, 0 bne _0803FAA6 ldr r5, _0803FB68 mov r9, r5 _0803FAA6: ldr r6, [sp, 0x24] strh r4, [r6, 0x3E] ldr r1, _0803FB64 adds r0, r3, r1 mov r2, r8 strh r2, [r0] mov r5, r8 cmp r5, 0x5F ble _0803FAC8 movs r5, 0x60 lsls r0, r4, 1 adds r0, r4 lsls r0, 5 mov r1, r8 bl __divsi3 adds r4, r0, 0 _0803FAC8: movs r3, 0 mov r8, r3 movs r6, 0x58 mov r12, r6 _0803FAD0: ldr r6, _0803FB6C adds r2, r4, 0 adds r0, r5, 0 cmp r4, 0x7 ble _0803FADC movs r2, 0x8 _0803FADC: cmp r5, 0x7 ble _0803FAE2 movs r0, 0x8 _0803FAE2: lsls r0, 2 mov r3, sp adds r1, r3, r0 lsls r0, r2, 2 add r0, sp ldr r2, [r0] ldr r3, [r1] adds r1, r3, 0 bics r1, r2 mov r0, r10 ands r1, r0 mov r0, r9 ands r0, r2 orrs r0, r1 ands r6, r3 mov r1, r8 stm r7!, {r1} stm r7!, {r6} stm r7!, {r0} stm r7!, {r0} stm r7!, {r0} stm r7!, {r0} stm r7!, {r6} stm r7!, {r1} subs r4, 0x8 subs r5, 0x8 cmp r4, 0 bge _0803FB1C movs r4, 0 _0803FB1C: cmp r5, 0 bge _0803FB22 movs r5, 0 _0803FB22: movs r2, 0x8 negs r2, r2 add r12, r2 mov r3, r12 cmp r3, 0 bge _0803FAD0 ldr r0, _0803FB70 movs r2, 0xC0 lsls r2, 1 ldr r1, _0803FB54 bl sub_80098BC _0803FB3A: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803FB4C: .4byte gUnknown_203B418 _0803FB50: .4byte 0x000181e8 _0803FB54: .4byte gUnknown_3001018 _0803FB58: .4byte gUnknown_80F6490 _0803FB5C: .4byte 0x22222222 _0803FB60: .4byte 0x44444444 _0803FB64: .4byte 0x00018228 _0803FB68: .4byte 0x55555555 _0803FB6C: .4byte 0x77777777 _0803FB70: .4byte 0x06005980 thumb_func_end sub_803FA4C thumb_func_start sub_803FB74 sub_803FB74: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, _0803FBE8 ldr r0, [r0] ldr r1, _0803FBEC adds r7, r0, r1 movs r4, 0 movs r2, 0 str r2, [sp] ldr r0, [r7, 0x10] ldr r0, [r0, 0x70] movs r1, 0xE ldrsh r3, [r0, r1] mov r9, r3 movs r3, 0x10 ldrsh r2, [r0, r3] mov r8, r2 ldrb r1, [r0, 0x9] mov r10, r1 movs r2, 0xE ldrsh r1, [r0, r2] cmp r1, 0 ble _0803FBBA mov r0, r8 cmp r0, 0 bge _0803FBB2 adds r0, 0x3 _0803FBB2: asrs r0, 2 cmp r1, r0 bgt _0803FBBA movs r4, 0x1 _0803FBBA: ldr r0, [r7, 0x10] ldr r0, [r0, 0x70] movs r3, 0x9E lsls r3, 1 adds r0, r3 ldr r0, [r0] bl sub_8094450 cmp r0, 0 bne _0803FBD2 movs r0, 0x1 str r0, [sp] _0803FBD2: cmp r4, 0 beq _0803FBF4 ldr r0, _0803FBF0 ldr r0, [r0] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _0803FBF4 movs r5, 0x20 movs r6, 0x20 b _0803FBF8 .align 2, 0 _0803FBE8: .4byte gUnknown_203B418 _0803FBEC: .4byte 0x000181e8 _0803FBF0: .4byte gUnknown_202EDCC _0803FBF4: movs r5, 0 movs r6, 0 _0803FBF8: ldr r1, [sp] cmp r1, 0 beq _0803FC0E ldr r0, _0803FC20 ldr r0, [r0] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _0803FC0E movs r5, 0x30 movs r6, 0x30 _0803FC0E: cmp r5, 0 bne _0803FC30 adds r0, r7, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 beq _0803FC24 movs r5, 0x60 b _0803FC30 .align 2, 0 _0803FC20: .4byte gUnknown_202EDCC _0803FC24: ldr r0, _0803FCE4 ldr r0, [r0] ldrb r0, [r0, 0xB] cmp r0, 0 beq _0803FC30 movs r5, 0x40 _0803FC30: cmp r6, 0 bne _0803FC40 ldr r0, _0803FCE4 ldr r0, [r0] ldrb r0, [r0, 0xB] cmp r0, 0 beq _0803FC40 movs r6, 0x40 _0803FC40: movs r2, 0x36 ldrsh r0, [r7, r2] cmp r0, r5 beq _0803FC78 strh r5, [r7, 0x36] lsls r5, 2 ldr r4, _0803FCE8 adds r1, r5, r4 movs r0, 0xFC bl SetBGPaletteBufferColorArray adds r1, r4, 0x4 adds r1, r5, r1 movs r0, 0xFD bl SetBGPaletteBufferColorArray adds r1, r4, 0 adds r1, 0x8 adds r1, r5, r1 movs r0, 0xFE bl SetBGPaletteBufferColorArray adds r4, 0xC adds r5, r4 movs r0, 0xFF adds r1, r5, 0 bl SetBGPaletteBufferColorArray _0803FC78: movs r3, 0x38 ldrsh r0, [r7, r3] cmp r0, r6 beq _0803FCB0 strh r6, [r7, 0x38] lsls r5, r6, 2 ldr r4, _0803FCE8 adds r1, r5, r4 movs r0, 0xFC bl nullsub_5 adds r1, r4, 0x4 adds r1, r5, r1 movs r0, 0xFD bl nullsub_5 adds r1, r4, 0 adds r1, 0x8 adds r1, r5, r1 movs r0, 0xFE bl nullsub_5 adds r4, 0xC adds r5, r4 movs r0, 0xFF adds r1, r5, 0 bl nullsub_5 _0803FCB0: ldr r5, _0803FCEC ldr r0, _0803FCF0 ldr r2, [r0] ldr r0, _0803FCF4 adds r1, r2, r0 movs r3, 0x14 ldrsh r0, [r2, r3] ldrb r1, [r1] adds r6, r0, r1 movs r1, 0x3A ldrsh r0, [r7, r1] adds r4, r7, 0 adds r4, 0x2E cmp r0, r6 beq _0803FD3E strh r6, [r7, 0x3A] ldr r3, _0803FCF8 adds r0, r2, r3 ldrb r0, [r0] bl GetStairDirection lsls r0, 24 cmp r0, 0 beq _0803FCFC movs r0, 0 b _0803FD00 .align 2, 0 _0803FCE4: .4byte gUnknown_203B46C _0803FCE8: .4byte gUnknown_202D068 _0803FCEC: .4byte gUnknown_202B038 _0803FCF0: .4byte gUnknown_203B418 _0803FCF4: .4byte 0x00000645 _0803FCF8: .4byte 0x00000644 _0803FCFC: ldr r1, _0803FD20 adds r0, r1, 0 _0803FD00: strh r0, [r5, 0x2] cmp r6, 0x9 bgt _0803FD28 adds r1, r5, 0x4 adds r4, r7, 0 adds r4, 0x2E ldrb r2, [r4] adds r0, r6, 0 movs r3, 0x1 bl sub_803FE30 ldr r2, _0803FD24 adds r0, r2, 0 strh r0, [r5, 0x6] b _0803FD3E .align 2, 0 _0803FD20: .4byte 0x0000f2be _0803FD24: .4byte 0x0000f2b8 _0803FD28: adds r1, r5, 0x4 adds r4, r7, 0 adds r4, 0x2E ldrb r2, [r4] adds r0, r6, 0 movs r3, 0 bl sub_803FE30 ldr r3, _0803FE10 adds r0, r3, 0 strh r0, [r5, 0x8] _0803FD3E: movs r1, 0x3C ldrsh r0, [r7, r1] cmp r0, r10 beq _0803FD64 mov r2, r10 strh r2, [r7, 0x3C] ldr r3, _0803FE14 adds r0, r3, 0 strh r0, [r5, 0xA] ldr r1, _0803FE18 adds r0, r1, 0 strh r0, [r5, 0xC] adds r1, r5, 0 adds r1, 0xE ldrb r2, [r4] mov r0, r10 movs r3, 0 bl sub_803FE30 _0803FD64: movs r2, 0x3E ldrsh r0, [r7, r2] cmp r0, r9 beq _0803FD84 ldr r3, _0803FE1C adds r0, r3, 0 strh r0, [r5, 0x12] ldr r1, _0803FE20 adds r0, r1, 0 strh r0, [r5, 0x14] adds r1, r5, 0 adds r1, 0x16 ldrb r2, [r4] mov r0, r9 bl sub_803FF18 _0803FD84: adds r6, r7, 0 adds r6, 0x40 movs r2, 0 ldrsh r0, [r6, r2] cmp r0, r8 beq _0803FDA2 ldr r3, _0803FE24 adds r0, r3, 0 strh r0, [r5, 0x1C] adds r1, r5, 0 adds r1, 0x1E ldrb r2, [r4] mov r0, r8 bl sub_803FF18 _0803FDA2: ldrb r2, [r4] mov r0, r9 mov r1, r8 bl sub_803FA4C mov r0, r8 strh r0, [r6] mov r1, r9 strh r1, [r7, 0x3E] mov r0, r8 cmp r0, 0 bge _0803FDBC adds r0, 0x7 _0803FDBC: asrs r1, r0, 3 adds r4, r7, 0 adds r4, 0x42 strh r1, [r4] movs r0, 0x7 mov r2, r8 ands r2, r0 cmp r2, 0 beq _0803FDD2 adds r0, r1, 0x1 strh r0, [r4] _0803FDD2: movs r3, 0 ldrsh r0, [r4, r3] cmp r0, 0xB ble _0803FDDE movs r0, 0xC strh r0, [r4] _0803FDDE: movs r1, 0 ldr r0, _0803FE28 movs r2, 0xB3 lsls r2, 2 adds r4, r2, 0 ldr r2, _0803FE2C adds r3, r2, 0 adds r2, r0, 0 adds r2, 0x24 _0803FDF0: adds r0, r1, r4 orrs r0, r3 strh r0, [r2] adds r2, 0x2 adds r1, 0x1 cmp r1, 0xB ble _0803FDF0 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803FE10: .4byte 0x0000f2b8 _0803FE14: .4byte 0x0000f2b9 _0803FE18: .4byte 0x0000f2ba _0803FE1C: .4byte 0x0000f2bb _0803FE20: .4byte 0x0000f2bc _0803FE24: .4byte 0x0000f2bd _0803FE28: .4byte gUnknown_202B038 _0803FE2C: .4byte 0xfffff000 thumb_func_end sub_803FB74 thumb_func_start sub_803FE30 sub_803FE30: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r2, 24 adds r1, r2, 0 lsls r3, 24 lsrs r3, 24 mov r12, r3 movs r0, 0 cmp r2, 0 bne _0803FE4E movs r0, 0x37 _0803FE4E: cmp r5, 0x64 ble _0803FE70 cmp r2, 0 beq _0803FE60 ldr r1, _0803FE5C adds r0, r1, 0 b _0803FE64 .align 2, 0 _0803FE5C: .4byte 0x0000f291 _0803FE60: ldr r2, _0803FE6C adds r0, r2, 0 _0803FE64: strh r0, [r4] strh r0, [r4, 0x2] b _0803FF00 .align 2, 0 _0803FE6C: .4byte 0x0000f2c8 _0803FE70: cmp r5, 0x64 bne _0803FEBC ldr r1, _0803FE84 adds r0, r1, 0 strh r0, [r4] ldr r2, _0803FE88 adds r0, r2, 0 strh r0, [r4, 0x2] b _0803FF00 .align 2, 0 _0803FE84: .4byte 0x0000f294 _0803FE88: .4byte 0x0000f295 _0803FE8C: ldr r1, _0803FEB4 lsls r0, r6, 3 adds r0, r6 adds r0, r2 lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r4] subs r0, r5, r3 adds r0, r7 movs r1, 0x96 lsls r1, 2 adds r0, r1 ldr r2, _0803FEB8 adds r1, r2, 0 orrs r0, r1 mov r1, r8 strh r0, [r1] b _0803FF00 .align 2, 0 _0803FEB4: .4byte gUnknown_80F64D8 _0803FEB8: .4byte 0xfffff000 _0803FEBC: adds r2, r4, 0x2 mov r8, r2 adds r7, r0, 0 adds r7, 0x30 cmp r5, 0x9 ble _0803FEE2 movs r6, 0 cmp r1, 0 bne _0803FED0 movs r6, 0x1 _0803FED0: movs r2, 0 ldr r0, _0803FF0C _0803FED4: ldr r3, [r0] cmp r3, r5 ble _0803FE8C adds r0, 0x4 adds r2, 0x1 cmp r2, 0x8 ble _0803FED4 _0803FEE2: mov r0, r12 cmp r0, 0 bne _0803FEF0 ldr r1, _0803FF10 adds r0, r1, 0 strh r0, [r4] adds r4, 0x2 _0803FEF0: adds r0, r5, r7 movs r2, 0x96 lsls r2, 2 adds r0, r2 ldr r2, _0803FF14 adds r1, r2, 0 orrs r0, r1 strh r0, [r4] _0803FF00: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803FF0C: .4byte gUnknown_80F64B4 _0803FF10: .4byte 0x0000f278 _0803FF14: .4byte 0xfffff000 thumb_func_end sub_803FE30 thumb_func_start sub_803FF18 sub_803FF18: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r3, r1, 0 lsls r2, 24 lsrs r2, 24 movs r6, 0 cmp r2, 0 bne _0803FF2E movs r6, 0x1 _0803FF2E: movs r1, 0 cmp r2, 0 bne _0803FF36 movs r1, 0x37 _0803FF36: ldr r0, _0803FF54 cmp r5, r0 ble _0803FF7C ldr r0, _0803FF58 lsls r1, r6, 3 adds r1, r6 lsls r1, 1 adds r1, r0 ldrh r0, [r1] strh r0, [r3] adds r3, 0x2 strh r0, [r3] strh r0, [r3, 0x2] b _0804001A .align 2, 0 _0803FF54: .4byte 0x000003e7 _0803FF58: .4byte gUnknown_80F6544 _0803FF5C: ldr r1, _0803FF78 lsls r0, r6, 3 adds r0, r6 adds r0, r4 lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r3] adds r3, 0x2 subs r5, r2 mov r1, r8 lsls r0, r1, 24 lsrs r7, r0, 24 b _0803FF98 .align 2, 0 _0803FF78: .4byte gUnknown_80F6544 _0803FF7C: movs r7, 0x20 movs r4, 0 adds r1, 0x30 mov r8, r1 ldr r2, _0803FFC0 mov r12, r2 ldr r0, _0803FFC4 _0803FF8A: ldr r2, [r0] cmp r2, r5 ble _0803FF5C adds r0, 0x4 adds r4, 0x1 cmp r4, 0x8 ble _0803FF8A _0803FF98: cmp r4, 0x9 bne _0803FFAC movs r1, 0x96 lsls r1, 2 adds r0, r7, r1 ldr r2, _0803FFC8 adds r1, r2, 0 orrs r0, r1 strh r0, [r3] adds r3, 0x2 _0803FFAC: movs r4, 0 mov r0, r12 ldr r2, [r0] cmp r2, r5 bgt _0803FFD0 ldr r0, _0803FFCC lsls r1, r6, 3 adds r1, r6 b _0803FFE8 .align 2, 0 _0803FFC0: .4byte gUnknown_80F6520 _0803FFC4: .4byte gUnknown_80F64FC _0803FFC8: .4byte 0xfffff000 _0803FFCC: .4byte gUnknown_80F6544 _0803FFD0: adds r4, 0x1 cmp r4, 0x8 bgt _0803FFF4 lsls r0, r4, 2 add r0, r12 ldr r2, [r0] cmp r2, r5 bgt _0803FFD0 ldr r0, _08040024 lsls r1, r6, 3 adds r1, r6 adds r1, r4 _0803FFE8: lsls r1, 1 adds r1, r0 ldrh r0, [r1] strh r0, [r3] adds r3, 0x2 subs r5, r2 _0803FFF4: cmp r4, 0x9 bne _08040008 movs r1, 0x96 lsls r1, 2 adds r0, r7, r1 ldr r2, _08040028 adds r1, r2, 0 orrs r0, r1 strh r0, [r3] adds r3, 0x2 _08040008: mov r1, r8 adds r0, r5, r1 movs r2, 0x96 lsls r2, 2 adds r0, r2 ldr r2, _08040028 adds r1, r2, 0 orrs r0, r1 strh r0, [r3] _0804001A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08040024: .4byte gUnknown_80F6544 _08040028: .4byte 0xfffff000 thumb_func_end sub_803FF18 thumb_func_start sub_804002C sub_804002C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 ldr r0, _08040088 ldr r0, [r0] ldr r1, _0804008C adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r5, 0 movs r7, 0x1 _08040046: movs r4, 0 adds r6, r5, 0x1 _0804004A: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 ldrh r1, [r0, 0x4] orrs r1, r7 strh r1, [r0, 0x4] adds r4, 0x1 cmp r4, 0x37 ble _0804004A adds r5, r6, 0 cmp r5, 0x1F ble _08040046 movs r0, 0 bl sub_803F580 bl sub_8049ED4 bl sub_8040A84 ldr r0, _08040090 ldr r1, [r0] mov r0, r8 bl sub_80522A8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08040088: .4byte gUnknown_203B418 _0804008C: .4byte 0x0001820b _08040090: .4byte gUnknown_80FD040 thumb_func_end sub_804002C thumb_func_start sub_8040094 sub_8040094: push {lr} ldr r1, _080400C8 ldr r1, [r1] ldr r2, _080400CC adds r1, r2 strb r0, [r1] bl sub_803F7BC bl sub_80060EC ldr r0, _080400D0 ldr r0, [r0] bl sub_8094FB4 bl sub_800CB20 bl sub_800485C bl xxx_call_update_bg_sound_input bl sub_8083F58 bl sub_8011860 pop {r0} bx r0 .align 2, 0 _080400C8: .4byte gUnknown_203B418 _080400CC: .4byte 0x00018217 _080400D0: .4byte gUnknown_203B47C thumb_func_end sub_8040094 thumb_func_start sub_80400D4 sub_80400D4: push {r4,lr} ldr r0, _08040114 ldr r4, [r0] movs r0, 0xC1 lsls r0, 9 adds r3, r4, r0 ldr r0, [r3] cmp r0, 0 beq _0804010C cmp r0, 0x1E ble _080400EC movs r0, 0x1F _080400EC: ldr r1, _08040118 adds r2, r4, r1 ldr r1, _0804011C lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r2] ldr r0, [r3] subs r0, 0x1 str r0, [r3] cmp r0, 0 bne _0804010C ldr r1, _08040120 adds r0, r4, r1 ldr r0, [r0] str r0, [r3] _0804010C: pop {r4} pop {r0} bx r0 .align 2, 0 _08040114: .4byte gUnknown_203B418 _08040118: .4byte 0x000181fc _0804011C: .4byte gUnknown_80F6568 _08040120: .4byte 0x00018204 thumb_func_end sub_80400D4 thumb_func_start sub_8040124 sub_8040124: ldr r1, _0804012C movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _0804012C: .4byte gUnknown_202EE01 thumb_func_end sub_8040124 thumb_func_start sub_8040130 sub_8040130: push {lr} ldr r0, _08040144 ldr r1, _08040148 bl OpenFileAndGetFileDataPtr ldr r1, _0804014C str r0, [r1] pop {r0} bx r0 .align 2, 0 _08040144: .4byte gUnknown_80F6604 _08040148: .4byte gUnknown_83B0000 _0804014C: .4byte gUnknown_202EE04 thumb_func_end sub_8040130 thumb_func_start sub_8040150 sub_8040150: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r0, 0 ldr r2, _080401EC _08040164: movs r4, 0 lsls r1, r0, 3 adds r3, r0, 0x1 mov r8, r3 subs r1, r0 lsls r0, r1, 7 ldr r3, _080401F0 adds r6, r0, r3 lsls r5, r1, 2 _08040176: ldr r0, [r2] adds r0, r6 lsls r1, r4, 5 adds r0, r1 movs r1, 0x20 str r2, [sp] bl CpuClear ldr r2, [sp] ldr r0, [r2] adds r1, r4, r5 ldr r3, _080401F4 adds r0, r3 adds r0, r1 movs r7, 0 strb r7, [r0] adds r4, 0x1 cmp r4, 0x1B ble _08040176 mov r0, r8 cmp r0, 0xF ble _08040164 mov r0, r9 cmp r0, 0 bne _080401B0 ldr r1, _080401F8 movs r0, 0x64 strh r0, [r1] strh r0, [r1, 0x2] _080401B0: ldr r3, _080401EC ldr r0, [r3] ldr r2, _080401FC adds r1, r0, r2 str r7, [r1] ldr r1, _08040200 adds r0, r1 movs r2, 0x1 strb r2, [r0] ldr r0, [r3] ldr r3, _08040204 adds r0, r3 strb r7, [r0] ldr r0, _08040208 strb r2, [r0] ldr r1, _0804020C ldr r0, _08040210 str r0, [r1] ldr r0, _08040214 strb r2, [r0] bl sub_8040238 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080401EC: .4byte gUnknown_203B418 _080401F0: .4byte 0x0001822c _080401F4: .4byte 0x0001ba2c _080401F8: .4byte gUnknown_203B410 _080401FC: .4byte 0x0001bdcc _08040200: .4byte 0x0001bdd0 _08040204: .4byte 0x0001bdd2 _08040208: .4byte gUnknown_202EE00 _0804020C: .4byte gUnknown_202EE08 _08040210: .4byte 0x06001700 _08040214: .4byte gUnknown_202EE01 thumb_func_end sub_8040150 thumb_func_start sub_8040218 sub_8040218: push {lr} ldr r0, _08040230 ldr r0, [r0] cmp r0, 0 beq _08040226 bl CloseFile _08040226: bl sub_8040124 pop {r0} bx r0 .align 2, 0 _08040230: .4byte gUnknown_202EE04 thumb_func_end sub_8040218 thumb_func_start nullsub_203 nullsub_203: bx lr thumb_func_end nullsub_203 thumb_func_start sub_8040238 sub_8040238: push {r4-r7,lr} mov r7, r8 push {r7} ldr r1, _0804026C ldr r0, [r1] cmp r0, 0 beq _080402A0 ldr r0, _08040270 ldrb r0, [r0] cmp r0, 0 beq _080402A0 movs r6, 0 ldr r0, _08040274 mov r8, r0 adds r7, r1, 0 _08040256: cmp r6, 0xE bne _08040278 movs r0, 0xEE mov r1, r8 bl SetBGPaletteBufferColorArray movs r0, 0xEE mov r1, r8 bl nullsub_5 b _0804029A .align 2, 0 _0804026C: .4byte gUnknown_202EE04 _08040270: .4byte gUnknown_202EE01 _08040274: .4byte gUnknown_202D03C _08040278: adds r5, r6, 0 adds r5, 0xE0 ldr r0, [r7] ldr r0, [r0, 0x4] lsls r4, r6, 2 ldr r1, [r0, 0x4] adds r1, r4 adds r0, r5, 0 bl SetBGPaletteBufferColorArray ldr r0, [r7] ldr r0, [r0, 0x4] ldr r1, [r0, 0x4] adds r1, r4 adds r0, r5, 0 bl nullsub_5 _0804029A: adds r6, 0x1 cmp r6, 0xF ble _08040256 _080402A0: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8040238 thumb_func_start sub_80402AC sub_80402AC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r8, r0 str r1, [sp] ldr r4, _0804034C ldr r0, [r4] str r0, [sp, 0x4] movs r1, 0x1 mov r10, r1 ldr r0, _08040350 ldr r0, [r0] cmp r0, 0 bne _080402D0 b _08040776 _080402D0: ldr r0, _08040354 ldrb r0, [r0] cmp r0, 0 bne _080402DA b _08040776 _080402DA: bl sub_800EC74 lsls r0, 24 cmp r0, 0 beq _080402E6 b _08040776 _080402E6: mov r2, r8 cmp r2, 0 bge _080402EE b _08040776 _080402EE: ldr r3, [sp] cmp r3, 0x1 bgt _080402F6 b _08040776 _080402F6: cmp r2, 0x37 ble _080402FC b _08040776 _080402FC: cmp r3, 0x1E ble _08040302 b _08040776 _08040302: mov r0, r8 adds r1, r3, 0 bl sub_804954C mov r9, r0 ldrh r0, [r0] movs r5, 0x3 ands r5, r0 str r5, [sp, 0x8] ldr r0, [r4] ldr r7, _08040358 adds r1, r0, r7 ldrb r1, [r1] str r1, [sp, 0xC] ldr r2, _0804035C adds r1, r0, r2 ldrb r5, [r1] ldr r3, _08040360 adds r1, r0, r3 ldrb r1, [r1] str r1, [sp, 0x14] subs r7, 0x2 adds r1, r0, r7 ldrb r1, [r1] str r1, [sp, 0x10] ldr r1, _08040364 adds r0, r1 ldrb r0, [r0] cmp r5, 0 beq _08040368 mov r2, r9 ldrb r0, [r2, 0x4] mov r7, r10 ands r7, r0 movs r3, 0 str r3, [sp, 0x18] b _0804039C .align 2, 0 _0804034C: .4byte gUnknown_203B418 _08040350: .4byte gUnknown_202EE04 _08040354: .4byte gUnknown_202EE01 _08040358: .4byte 0x00018210 _0804035C: .4byte 0x0001820a _08040360: .4byte 0x0001820f _08040364: .4byte 0x0001820b _08040368: cmp r0, 0 beq _08040370 movs r7, 0x1 b _08040378 _08040370: mov r7, r9 ldrb r0, [r7, 0x4] mov r7, r10 ands r7, r0 _08040378: bl sub_8043D10 lsls r0, 24 cmp r0, 0 bne _08040398 ldr r0, _08040390 ldr r0, [r0] ldr r1, _08040394 adds r0, r1 ldrb r0, [r0] str r0, [sp, 0x18] b _0804039C .align 2, 0 _08040390: .4byte gUnknown_203B418 _08040394: .4byte 0x00018211 _08040398: movs r2, 0 str r2, [sp, 0x18] _0804039C: bl sub_8094C48 lsls r0, 24 cmp r0, 0 bne _080403A8 b _08040632 _080403A8: ldr r0, _080403FC ldr r0, [r0] ldr r3, _08040400 adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _080403B8 b _08040632 _080403B8: movs r6, 0 cmp r5, 0 bne _0804045E mov r0, r9 ldr r4, [r0, 0x10] cmp r4, 0 beq _0804045E adds r0, r4, 0 bl sub_80450F8 adds r1, r0, 0 ldr r0, _08040404 ldrb r0, [r0] cmp r0, 0 beq _0804045E cmp r1, 0x1 bne _0804045E adds r0, r4, 0 bl sub_8045804 lsls r0, 24 cmp r0, 0 beq _0804045E ldr r1, [r4, 0x70] adds r0, r1, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _080403F6 cmp r0, 0x47 bne _08040408 _080403F6: movs r0, 0x1 b _0804040A .align 2, 0 _080403FC: .4byte gUnknown_203B418 _08040400: .4byte 0x0001356c _08040404: .4byte gUnknown_202EE00 _08040408: movs r0, 0 _0804040A: cmp r0, 0 bne _08040458 adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _08040458 cmp r0, 0x4 beq _08040458 ldrb r0, [r1, 0x6] cmp r0, 0 beq _08040426 movs r6, 0x2 b _0804045A _08040426: ldrb r0, [r1, 0x7] cmp r0, 0 beq _08040458 ldr r0, _0804044C mov r1, r8 strh r1, [r0] mov r2, sp ldrh r2, [r2] strh r2, [r0, 0x2] ldr r0, _08040450 ldr r0, [r0] ldr r3, _08040454 adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _0804045A movs r6, 0x8 b _0804045A .align 2, 0 _0804044C: .4byte gUnknown_203B410 _08040450: .4byte gUnknown_203B418 _08040454: .4byte 0x00018214 _08040458: movs r6, 0xA _0804045A: movs r0, 0 mov r10, r0 _0804045E: mov r1, r10 cmp r1, 0 beq _0804054E cmp r5, 0 bne _08040548 mov r2, r9 ldr r4, [r2, 0x14] cmp r4, 0 beq _08040500 adds r0, r4, 0 bl sub_80450F8 adds r5, r0, 0 cmp r7, 0 bne _0804049E movs r6, 0 cmp r5, 0x3 bne _0804054E ldr r3, [sp, 0x10] cmp r3, 0 bne _08040494 mov r5, r9 ldrh r1, [r5, 0x4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0804054E _08040494: ldr r0, [sp, 0x8] cmp r0, 0 beq _0804054E movs r6, 0x3 b _0804054E _0804049E: cmp r5, 0x2 bne _080404C4 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _080404B2 ldr r1, [sp, 0x14] cmp r1, 0 beq _080404C4 _080404B2: adds r0, r4, 0 bl sub_8045104 ldr r1, _080404FC ldrb r0, [r0] adds r0, r1 ldrb r6, [r0] movs r2, 0 mov r10, r2 _080404C4: mov r3, r10 cmp r3, 0 beq _0804054E cmp r5, 0x3 bne _080404EC ldr r5, [sp, 0x10] cmp r5, 0 bne _080404E0 mov r0, r9 ldrh r1, [r0, 0x4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080404EC _080404E0: ldr r1, [sp, 0x8] cmp r1, 0 beq _080404EC movs r6, 0x3 movs r2, 0 mov r10, r2 _080404EC: mov r3, r10 cmp r3, 0 beq _0804054E ldr r5, [sp, 0x8] cmp r5, 0x1 beq _08040548 movs r6, 0 b _0804054E .align 2, 0 _080404FC: .4byte gUnknown_80F65F0 _08040500: cmp r7, 0 bne _08040528 ldr r0, [sp, 0x18] cmp r0, 0 beq _08040548 mov r2, r9 ldrh r1, [r2] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _08040548 bl sub_8043D10 lsls r0, 24 movs r6, 0x5 cmp r0, 0 bne _0804054E movs r6, 0x6 b _0804054E _08040528: mov r3, r9 ldrh r1, [r3] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _08040548 bl sub_8043D10 lsls r0, 24 movs r6, 0x5 cmp r0, 0 bne _08040544 movs r6, 0x6 _08040544: movs r5, 0 mov r10, r5 _08040548: mov r0, r10 cmp r0, 0 bne _0804055A _0804054E: ldr r1, [sp, 0xC] cmp r1, 0 beq _0804055A cmp r6, 0 beq _0804055E movs r6, 0xB _0804055A: cmp r6, 0 bne _08040606 _0804055E: cmp r7, 0 beq _08040568 ldr r2, [sp, 0x8] cmp r2, 0x1 beq _0804056C _08040568: movs r6, 0x1 b _08040606 _0804056C: movs r4, 0xF ldr r3, [sp] cmp r3, 0x1E bgt _0804058A adds r1, r3, 0 adds r1, 0x1 mov r0, r8 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0804058A movs r4, 0xE _0804058A: ldr r5, [sp] cmp r5, 0 ble _080405AA adds r1, r5, 0 subs r1, 0x1 mov r0, r8 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _080405AA movs r0, 0x5 negs r0, r0 ands r4, r0 _080405AA: mov r7, r8 cmp r7, 0x36 bgt _080405CA mov r0, r8 adds r0, 0x1 ldr r1, [sp] bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _080405CA movs r0, 0x3 negs r0, r0 ands r4, r0 _080405CA: mov r0, r8 cmp r0, 0 ble _080405E8 subs r0, 0x1 ldr r1, [sp] bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _080405E8 movs r0, 0x9 negs r0, r0 ands r4, r0 _080405E8: lsls r0, r4, 16 asrs r6, r0, 16 mov r2, r9 ldrh r1, [r2, 0x4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080405FE adds r0, r6, 0 adds r0, 0x10 b _08040602 _080405FE: adds r0, r6, 0 adds r0, 0x20 _08040602: lsls r0, 16 asrs r6, r0, 16 _08040606: ldr r0, _08040618 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0x6 bne _0804061C adds r0, r6, 0 adds r0, 0x80 b _0804062C .align 2, 0 _08040618: .4byte gUnknown_203B46C _0804061C: bl sub_8094C68 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0804063A adds r0, r6, 0 adds r0, 0x40 _0804062C: lsls r0, 16 asrs r6, r0, 16 b _0804063A _08040632: movs r6, 0x1 ldr r1, _0804074C movs r0, 0x64 strh r0, [r1] _0804063A: mov r3, r8 lsrs r0, r3, 31 add r0, r8 asrs r0, 1 mov r9, r0 ldr r0, [sp] subs r0, 0x2 lsrs r1, r0, 31 adds r1, r0, r1 asrs r1, 1 mov r5, r9 lsls r3, r5, 1 mov r7, r8 subs r3, r7, r3 lsls r2, r1, 1 subs r0, r2 lsls r0, 1 adds r3, r0 lsls r0, r1, 3 subs r5, r0, r1 lsls r0, r5, 7 ldr r1, _08040750 adds r0, r1 ldr r2, [sp, 0x4] adds r0, r2, r0 mov r7, r9 lsls r1, r7, 5 adds r4, r0, r1 ldr r0, _08040754 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r6, 2 adds r0, r3 ldr r1, [r1] lsls r0, 2 adds r0, r1 ldr r2, [r0] ldr r0, [r4] ldr r1, [r2] ands r0, r1 ldr r1, [r2, 0x4] orrs r0, r1 str r0, [r4] ldr r0, [r4, 0x4] ldr r1, [r2, 0x8] ands r0, r1 ldr r1, [r2, 0xC] orrs r0, r1 str r0, [r4, 0x4] ldr r0, [r4, 0x8] ldr r1, [r2, 0x10] ands r0, r1 ldr r1, [r2, 0x14] orrs r0, r1 str r0, [r4, 0x8] ldr r0, [r4, 0xC] ldr r1, [r2, 0x18] ands r0, r1 ldr r1, [r2, 0x1C] orrs r0, r1 str r0, [r4, 0xC] ldr r0, [r4, 0x10] ldr r1, [r2, 0x20] ands r0, r1 ldr r1, [r2, 0x24] orrs r0, r1 str r0, [r4, 0x10] ldr r0, [r4, 0x14] ldr r1, [r2, 0x28] ands r0, r1 ldr r1, [r2, 0x2C] orrs r0, r1 str r0, [r4, 0x14] ldr r0, [r4, 0x18] ldr r1, [r2, 0x30] ands r0, r1 ldr r1, [r2, 0x34] orrs r0, r1 str r0, [r4, 0x18] ldr r0, [r4, 0x1C] ldr r1, [r2, 0x38] ands r0, r1 ldr r1, [r2, 0x3C] orrs r0, r1 str r0, [r4, 0x1C] ldr r0, [sp, 0x4] ldr r1, _08040758 adds r2, r0, r1 ldrb r0, [r2] cmp r0, 0 bne _08040776 lsls r5, 2 mov r10, r5 mov r3, r9 add r3, r10 ldr r5, _0804075C mov r8, r5 ldr r0, [sp, 0x4] add r0, r8 adds r1, r0, r3 ldrb r0, [r1] cmp r0, 0 bne _08040776 movs r0, 0x1 strb r0, [r1] ldr r7, [sp, 0x4] ldr r1, _08040760 adds r6, r7, r1 ldr r5, [r6] cmp r5, 0x27 bgt _08040774 lsls r1, r5, 1 adds r1, r5 lsls r1, 2 ldr r0, _08040764 adds r2, r7, r0 adds r2, r1 ldr r0, _08040768 lsls r3, 5 ldr r0, [r0] adds r0, r3 str r0, [r2] ldr r2, _0804076C adds r0, r7, r2 adds r0, r1 str r4, [r0] ldr r3, _08040770 adds r2, r7, r3 adds r2, r1 mov r0, r10 add r0, r8 adds r0, r7, r0 add r0, r9 str r0, [r2] adds r0, r5, 0x1 str r0, [r6] b _08040776 .align 2, 0 _0804074C: .4byte gUnknown_203B410 _08040750: .4byte 0x0001822c _08040754: .4byte gUnknown_202EE04 _08040758: .4byte 0x0001bdd1 _0804075C: .4byte 0x0001ba2c _08040760: .4byte 0x0001bdcc _08040764: .4byte 0x0001bbec _08040768: .4byte gUnknown_202EE08 _0804076C: .4byte 0x0001bbf0 _08040770: .4byte 0x0001bbf4 _08040774: strb r0, [r2] _08040776: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80402AC thumb_func_start sub_8040788 sub_8040788: push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _08040814 ldr r0, [r0] mov r8, r0 cmp r0, 0 beq _08040870 ldr r0, _08040818 add r0, r8 ldrb r0, [r0] cmp r0, 0 beq _08040870 bl sub_800EC74 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _08040870 ldr r1, _0804081C add r1, r8 ldrb r0, [r1] cmp r0, 0 bne _0804082C movs r6, 0 ldr r1, _08040820 add r1, r8 ldr r0, [r1] cmp r6, r0 bge _08040868 adds r5, r1, 0 movs r4, 0 _080407C8: ldr r1, _08040824 adds r0, r4, r1 mov r1, r8 adds r3, r1, r0 ldr r1, [r3, 0x4] ldr r2, [r3] ldr r0, _08040828 ldr r0, [r0] cmp r0, 0 beq _080407E0 cmp r0, 0x3 bne _08040800 _080407E0: ldm r1!, {r0} stm r2!, {r0} ldm r1!, {r0} stm r2!, {r0} ldm r1!, {r0} stm r2!, {r0} ldm r1!, {r0} stm r2!, {r0} ldm r1!, {r0} stm r2!, {r0} ldm r1!, {r0} stm r2!, {r0} ldm r1!, {r0} stm r2!, {r0} ldr r0, [r1] str r0, [r2] _08040800: ldr r0, [r3, 0x8] movs r1, 0 strb r1, [r0] adds r4, 0xC adds r6, 0x1 ldr r0, [r5] cmp r6, r0 blt _080407C8 b _08040868 .align 2, 0 _08040814: .4byte gUnknown_203B418 _08040818: .4byte 0x0001bdd0 _0804081C: .4byte 0x0001bdd1 _08040820: .4byte 0x0001bdcc _08040824: .4byte 0x0001bbec _08040828: .4byte gUnknown_202EDD0 _0804082C: strb r2, [r1] ldr r0, _0804087C ldr r5, [r0] ldr r4, _08040880 add r4, r8 movs r6, 0 movs r7, 0x80 lsls r7, 1 _0804083C: ldr r0, _08040884 ldr r0, [r0] cmp r0, 0 beq _08040848 cmp r0, 0x3 bne _08040854 _08040848: adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x80 lsls r2, 1 bl CpuCopy _08040854: adds r5, r7 adds r4, r7 adds r6, 0x8 ldr r0, _08040888 cmp r6, r0 ble _0804083C ldr r1, _0804088C add r1, r8 movs r0, 0x1 strb r0, [r1] _08040868: ldr r1, _08040890 add r1, r8 movs r0, 0 str r0, [r1] _08040870: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804087C: .4byte gUnknown_202EE08 _08040880: .4byte 0x0001822c _08040884: .4byte gUnknown_202EDD0 _08040888: .4byte 0x000001bf _0804088C: .4byte 0x0001bdd2 _08040890: .4byte 0x0001bdcc thumb_func_end sub_8040788 thumb_func_start sub_8040894 sub_8040894: push {r4-r7,lr} sub sp, 0x8 ldr r0, _080409F4 ldr r1, [r0] ldr r2, _080409F8 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _080408A8 b _08040A6A _080408A8: adds r2, 0x5 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080408B4 b _08040A6A _080408B4: ldr r7, _080409FC movs r1, 0 ldrsh r0, [r7, r1] cmp r0, 0x63 ble _080408C0 b _08040A6A _080408C0: ldr r0, _08040A00 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] movs r0, 0x8 ands r1, r0 cmp r1, 0 beq _080408D2 b _08040A6A _080408D2: movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] mov r0, sp ldrh r0, [r0] ldr r1, _08040A04 ands r1, r0 ldr r3, _08040A08 ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08040A0C ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r5, _08040A10 adds r0, r5, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08040A14 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08040A18 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r4, _08040A1C adds r0, r4, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] ands r3, r1 orrs r3, r0 str r3, [sp] mov r3, sp ldrh r0, [r3, 0x2] ldr r6, _08040A20 ands r6, r0 ands r6, r4 strh r6, [r3, 0x2] ldr r2, _08040A24 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r5 movs r5, 0xF lsls r1, r5, 12 ldr r4, _08040A28 ands r0, r4 orrs r0, r1 strh r0, [r3, 0x4] ldrh r0, [r3, 0x6] ldr r2, _08040A2C ands r2, r0 ldr r0, _08040A30 ands r2, r0 strh r2, [r3, 0x6] ldr r0, _08040A34 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0x6 bne _08040A3C movs r1, 0 ldrsh r0, [r7, r1] lsls r0, 2 adds r0, 0x10 ldr r1, _08040A38 ands r0, r1 strh r0, [r3, 0x2] movs r1, 0x2 ldrsh r0, [r7, r1] adds r0, 0x1 lsls r0, 2 ands r0, r4 lsls r0, 4 adds r1, r2, 0 ands r1, r5 orrs r1, r0 strh r1, [r3, 0x6] movs r1, 0x80 lsls r1, 1 mov r0, sp movs r2, 0 movs r3, 0 bl nullsub_11 b _08040A6A .align 2, 0 _080409F4: .4byte gUnknown_203B418 _080409F8: .4byte 0x00018214 _080409FC: .4byte gUnknown_203B410 _08040A00: .4byte gUnknown_202EE02 _08040A04: .4byte 0x0000feff _08040A08: .4byte 0xffff0000 _08040A0C: .4byte 0x0000fdff _08040A10: .4byte 0x0000f3ff _08040A14: .4byte 0x0000efff _08040A18: .4byte 0x0000dfff _08040A1C: .4byte 0x00003fff _08040A20: .4byte 0x0000c1ff _08040A24: .4byte 0x00000215 _08040A28: .4byte 0x00000fff _08040A2C: .4byte 0x0000fffe _08040A30: .4byte 0x0000fffd _08040A34: .4byte gUnknown_203B46C _08040A38: .4byte 0x000001ff _08040A3C: movs r1, 0 ldrsh r0, [r7, r1] lsls r0, 2 adds r0, 0x8 ldr r1, _08040A74 ands r0, r1 strh r0, [r3, 0x2] movs r1, 0x2 ldrsh r0, [r7, r1] lsls r0, 2 ands r0, r4 lsls r0, 4 adds r1, r2, 0 ands r1, r5 orrs r1, r0 strh r1, [r3, 0x6] movs r1, 0x80 lsls r1, 1 mov r0, sp movs r2, 0 movs r3, 0 bl AddSprite _08040A6A: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08040A74: .4byte 0x000001ff thumb_func_end sub_8040894 thumb_func_start sub_8040A78 sub_8040A78: ldr r1, _08040A80 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _08040A80: .4byte gUnknown_202EE02 thumb_func_end sub_8040A78 thumb_func_start sub_8040A84 sub_8040A84: push {r4-r6,lr} ldr r0, _08040AB4 ldr r0, [r0] ldr r1, _08040AB8 adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r5, 0 _08040A94: movs r4, 0 adds r6, r5, 0x1 _08040A98: adds r0, r4, 0 adds r1, r5, 0 bl sub_80402AC adds r4, 0x1 cmp r4, 0x37 ble _08040A98 adds r5, r6, 0 cmp r5, 0x1F ble _08040A94 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08040AB4: .4byte gUnknown_203B418 _08040AB8: .4byte 0x0001bdd1 thumb_func_end sub_8040A84 thumb_func_start sub_8040ABC sub_8040ABC: push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _08040AD8 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0x6 bne _08040ADC movs r7, 0xF movs r0, 0 b _08040AEC .align 2, 0 _08040AD8: .4byte gUnknown_203B46C _08040ADC: cmp r1, 0 beq _08040AE8 movs r7, 0xE movs r4, 0 mov r8, r4 b _08040AEE _08040AE8: movs r7, 0x10 movs r0, 0x3 _08040AEC: mov r8, r0 _08040AEE: ldr r6, _08040B58 movs r2, 0x1 movs r1, 0 cmp r1, r7 bge _08040B22 ldr r4, _08040B5C mov r12, r4 _08040AFC: lsls r0, r2, 6 mov r4, r12 adds r3, r0, r4 adds r4, r2, 0x1 adds r5, r1, 0x1 movs r2, 0x1B _08040B08: adds r1, r6, 0 adds r0, r1, 0x1 lsls r0, 16 lsrs r6, r0, 16 strh r1, [r3] adds r3, 0x2 subs r2, 0x1 cmp r2, 0 bge _08040B08 adds r2, r4, 0 adds r1, r5, 0 cmp r1, r7 blt _08040AFC _08040B22: movs r1, 0 cmp r1, r8 bge _08040B4C ldr r6, _08040B5C movs r0, 0xE0 lsls r0, 8 adds r3, r0, 0 _08040B30: lsls r0, r2, 6 adds r0, r6 adds r4, r2, 0x1 adds r5, r1, 0x1 movs r2, 0x1B _08040B3A: strh r3, [r0] adds r0, 0x2 subs r2, 0x1 cmp r2, 0 bge _08040B3A adds r2, r4, 0 adds r1, r5, 0 cmp r1, r8 blt _08040B30 _08040B4C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08040B58: .4byte 0x0000e0b8 _08040B5C: .4byte gUnknown_202B03A thumb_func_end sub_8040ABC thumb_func_start sub_8040B60 sub_8040B60: push {r4,r5,lr} ldr r0, _08040BA4 ldr r3, [r0] ldr r1, _08040BA8 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _08040B9E movs r1, 0 ldr r2, _08040BAC adds r5, r3, r2 movs r4, 0 _08040B78: lsls r0, r1, 3 adds r2, r1, 0x1 subs r0, r1 movs r1, 0x37 lsls r0, 2 adds r0, r5 adds r0, 0x37 _08040B86: strb r4, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _08040B86 adds r1, r2, 0 cmp r1, 0x1F ble _08040B78 movs r1, 0 ldr r2, _08040BA8 adds r0, r3, r2 strb r1, [r0] _08040B9E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08040BA4: .4byte gUnknown_203B418 _08040BA8: .4byte 0x0001bdd2 _08040BAC: .4byte 0x0001ba2c thumb_func_end sub_8040B60 thumb_func_start sub_8040BB0 sub_8040BB0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 adds r7, r1, 0 lsls r2, 24 lsrs r2, 24 mov r10, r2 bl sub_804143C mov r8, r0 ldrh r4, [r7, 0x2] adds r0, r6, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 mov r2, r8 bl sub_804141C lsls r0, 24 lsrs r5, r0, 24 mov r9, r5 ldrh r4, [r7, 0x2] adds r0, r6, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 mov r2, r8 bl sub_80412E0 lsls r0, 16 lsrs r0, 16 bl sub_800ECB8 movs r1, 0 ldrsh r4, [r0, r1] adds r0, r6, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _08040C28 adds r0, r6, 0 adds r1, r7, 0 bl sub_80414C0 lsls r0, 24 cmp r0, 0 bne _08040C28 mov r0, r10 cmp r0, 0 bne _08040C2C _08040C28: adds r0, r5, 0 b _08040C3C _08040C2C: cmp r4, 0 beq _08040C3A adds r0, r6, 0 adds r1, r7, 0 mov r2, r8 bl sub_8040C4C _08040C3A: mov r0, r9 _08040C3C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8040BB0 thumb_func_start sub_8040C4C sub_8040C4C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 adds r7, r0, 0 adds r4, r1, 0 adds r6, r2, 0 ldrh r5, [r4, 0x2] bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 adds r2, r6, 0 bl sub_80412E0 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r6, [r7, 0x70] ldrh r0, [r4, 0x2] bl sub_800EC94 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0x4 ldrsh r5, [r6, r0] ldrh r4, [r4, 0x2] adds r0, r7, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0x1 bl sub_80412E0 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_800E710 adds r2, r0, 0 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _08040CC4 add r0, sp, 0x8 adds r1, r7, 0 adds r1, 0x28 lsls r2, 24 lsrs r2, 24 bl sub_800569C b _08040CC8 _08040CC4: movs r0, 0 str r0, [sp, 0x8] _08040CC8: mov r0, sp mov r1, r9 strh r1, [r0] mov r1, sp ldrh r0, [r6, 0x4] strh r0, [r1, 0x2] ldr r0, [r7, 0xC] cmp r0, 0 bge _08040CDC adds r0, 0xFF _08040CDC: asrs r0, 8 strh r0, [r1, 0x4] mov r1, sp ldr r0, [r7, 0x10] cmp r0, 0 bge _08040CEA adds r0, 0xFF _08040CEA: asrs r0, 8 strh r0, [r1, 0x6] adds r0, r6, 0 adds r0, 0x46 ldrb r0, [r0] str r0, [sp, 0xC] movs r0, 0 str r0, [sp, 0x10] mov r0, sp bl sub_8041500 mov r0, r9 bl sub_800EEC8 bl sub_800EF64 movs r0, 0x58 bl sub_803E46C mov r0, sp bl sub_800EA84 adds r4, r0, 0 adds r1, r7, 0 movs r2, 0x5 bl sub_8042DD4 ldr r0, _08040D28 ldrb r5, [r0] ldr r6, _08040D2C b _08040D78 .align 2, 0 _08040D28: .4byte gUnknown_203B40D _08040D2C: .4byte 0x00001010 _08040D30: ldr r0, _08040D58 movs r1, 0x1 strb r1, [r0] ldr r1, _08040D5C ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, r6 beq _08040D48 ldr r3, _08040D60 adds r0, r2, r3 strh r0, [r1] _08040D48: ldr r1, _08040D64 ldr r0, [r1] cmp r0, 0x4 ble _08040D68 subs r0, 0x4 str r0, [r1] b _08040D6E .align 2, 0 _08040D58: .4byte gUnknown_203B40D _08040D5C: .4byte gUnknown_2026E4E _08040D60: .4byte 0x00000101 _08040D64: .4byte gUnknown_202EDC8 _08040D68: movs r0, 0 str r0, [r1] mov r8, r0 _08040D6E: bl sub_803EA10 movs r0, 0x26 bl sub_803E46C _08040D78: adds r0, r4, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 beq _08040D8A mov r0, r8 cmp r0, 0 bne _08040D30 _08040D8A: ldr r0, _08040D9C strb r5, [r0] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08040D9C: .4byte gUnknown_203B40D thumb_func_end sub_8040C4C thumb_func_start sub_8040DA0 sub_8040DA0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C adds r7, r0, 0 mov r8, r1 bl sub_804143C mov r9, r0 movs r0, 0 str r0, [sp, 0x14] ldr r1, [r7, 0x70] mov r10, r1 movs r0, 0x4 ldrsh r5, [r1, r0] mov r1, r8 ldrh r4, [r1, 0x2] adds r0, r7, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 mov r2, r9 bl sub_80412E0 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_800EA44 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x18] mov r0, sp adds r1, r7, 0 mov r2, r8 mov r3, r9 bl sub_8041038 mov r0, sp movs r1, 0x1 bl sub_800E838 lsls r0, 24 cmp r0, 0 bne _08040E0E mov r1, r8 ldrh r0, [r1, 0x2] cmp r0, 0x52 bne _08040E24 _08040E0E: ldr r0, _08040E1C ldr r0, [r0] ldr r1, _08040E20 adds r0, r1 ldr r6, [r0] b _08040E26 .align 2, 0 _08040E1C: .4byte gUnknown_203B418 _08040E20: .4byte 0x000181f8 _08040E24: adds r6, r7, 0 _08040E26: adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08040E34 adds r6, r7, 0 _08040E34: mov r1, sp ldr r0, [r6, 0xC] cmp r0, 0 bge _08040E3E adds r0, 0xFF _08040E3E: asrs r0, 8 strh r0, [r1, 0x4] mov r1, sp ldr r0, [r6, 0x10] cmp r0, 0 bge _08040E4C adds r0, 0xFF _08040E4C: asrs r0, 8 strh r0, [r1, 0x6] adds r0, r6, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 bne _08040E5E b _08041026 _08040E5E: adds r0, r7, 0 mov r1, r8 bl sub_80414C0 lsls r0, 24 cmp r0, 0 beq _08040E6E b _08041026 _08040E6E: mov r0, r8 ldrh r1, [r0, 0x2] movs r0, 0x94 lsls r0, 1 cmp r1, r0 bne _08040ED0 movs r0, 0x7 bl sub_8084100 ldr r1, _08040EB8 str r0, [r1] ldr r1, _08040EBC ldr r2, [r1] ldr r1, _08040EC0 adds r4, r2, r1 subs r1, 0x4 adds r2, r1 ldr r3, _08040EC4 lsls r1, r0, 2 adds r1, r3 ldr r1, [r1] str r1, [r2] str r1, [r4] ldr r1, _08040EC8 adds r0, 0x4 str r0, [r1] ldr r0, _08040ECC ldr r1, [r0] adds r0, r6, 0 bl sub_80522A8 movs r1, 0xD2 lsls r1, 1 adds r0, r6, 0 bl sub_80421C0 b _08040EF0 .align 2, 0 _08040EB8: .4byte gUnknown_202F224 _08040EBC: .4byte gUnknown_203B418 _08040EC0: .4byte 0x00018204 _08040EC4: .4byte gUnknown_8106A8C _08040EC8: .4byte gUnknown_202DE30 _08040ECC: .4byte gUnknown_8100224 _08040ED0: cmp r1, 0x76 bne _08040EF0 ldr r0, _08040F70 ldr r0, [r0] ldr r1, _08040F74 adds r2, r0, r1 subs r1, 0x4 adds r0, r1 movs r1, 0xC str r1, [r0] str r1, [r2] movs r1, 0xD2 lsls r1, 1 adds r0, r6, 0 bl sub_80421C0 _08040EF0: mov r0, r10 movs r1, 0x4 ldrsh r5, [r0, r1] mov r0, r8 ldrh r4, [r0, 0x2] adds r0, r7, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 mov r2, r9 bl sub_80412E0 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_800E790 adds r1, r0, 0 ldr r0, _08040F78 cmp r1, r0 beq _08040F2A lsls r0, r1, 16 lsrs r0, 16 bl sub_8083E38 _08040F2A: ldr r1, [sp, 0x18] cmp r1, 0x63 bne _08040F7C adds r0, r6, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _08041026 mov r0, r10 adds r0, 0x46 ldrb r4, [r0] mov r0, sp adds r1, r7, 0 mov r2, r8 mov r3, r9 bl sub_8041108 movs r6, 0x7 movs r5, 0x7 _08040F52: subs r4, 0x1 ands r4, r6 adds r0, r7, 0 movs r1, 0 adds r2, r4, 0 bl sub_806CDD4 movs r0, 0x2 movs r1, 0x15 bl sub_803E708 subs r5, 0x1 cmp r5, 0 bge _08040F52 b _08041026 .align 2, 0 _08040F70: .4byte gUnknown_203B418 _08040F74: .4byte 0x00018204 _08040F78: .4byte 0x000003e5 _08040F7C: ldr r0, [sp, 0x18] cmp r0, 0x62 bne _08040FC2 adds r0, r6, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _08041026 mov r0, r10 adds r0, 0x46 ldrb r4, [r0] mov r0, sp adds r1, r7, 0 mov r2, r8 mov r3, r9 bl sub_8041108 movs r6, 0x7 movs r5, 0x8 _08040FA4: ands r4, r6 adds r0, r7, 0 movs r1, 0 adds r2, r4, 0 bl sub_806CDD4 movs r0, 0x2 movs r1, 0x15 bl sub_803E708 adds r4, 0x1 subs r5, 0x1 cmp r5, 0 bge _08040FA4 b _08041026 _08040FC2: mov r0, r10 adds r0, 0x46 ldrb r2, [r0] adds r0, r7, 0 ldr r1, [sp, 0x18] bl sub_806CDD4 adds r0, r7, 0 adds r0, 0x21 movs r1, 0 strb r1, [r0] movs r5, 0 adds r6, r0, 0 b _08040FE6 _08040FDE: ldrb r0, [r6] cmp r0, 0 bne _08041022 adds r5, 0x1 _08040FE6: cmp r5, 0x77 bgt _08041022 movs r0, 0x59 bl sub_803E46C ldr r4, [r7, 0x40] ldr r1, [sp, 0x18] cmp r1, 0x9 bne _08040FFC movs r0, 0x2 orrs r4, r0 _08040FFC: movs r0, 0x2 ands r0, r4 cmp r0, 0 beq _0804101A ldr r0, [sp, 0x14] cmp r0, 0 bne _0804101A mov r0, sp adds r1, r7, 0 mov r2, r8 mov r3, r9 bl sub_8041108 movs r1, 0x1 str r1, [sp, 0x14] _0804101A: movs r0, 0x1 ands r4, r0 cmp r4, 0 beq _08040FDE _08041022: movs r0, 0 strb r0, [r6] _08041026: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8040DA0 thumb_func_start sub_8041038 sub_8041038: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 adds r7, r1, 0 mov r8, r2 mov r10, r3 ldr r0, [r7, 0x70] mov r9, r0 ldrh r4, [r2, 0x2] adds r0, r7, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 mov r2, r10 bl sub_80412E0 lsls r0, 16 lsrs r0, 16 str r0, [sp] bl sub_800ECB8 movs r1, 0x2 ldrsh r0, [r0, r1] cmp r0, 0 beq _080410F4 mov r0, r9 movs r1, 0x4 ldrsh r5, [r0, r1] mov r0, r8 ldrh r4, [r0, 0x2] adds r0, r7, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 mov r2, r10 bl sub_80412E0 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_800E710 adds r2, r0, 0 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _080410BE adds r0, r6, 0 adds r0, 0x8 adds r1, r7, 0 adds r1, 0x28 lsls r2, 24 lsrs r2, 24 bl sub_800569C b _080410C2 _080410BE: movs r0, 0 str r0, [r6, 0x8] _080410C2: mov r1, sp ldrh r1, [r1] strh r1, [r6] mov r1, r9 ldrh r0, [r1, 0x4] strh r0, [r6, 0x2] ldr r0, [r7, 0xC] cmp r0, 0 bge _080410D6 adds r0, 0xFF _080410D6: asrs r0, 8 strh r0, [r6, 0x4] ldr r0, [r7, 0x10] cmp r0, 0 bge _080410E2 adds r0, 0xFF _080410E2: asrs r0, 8 strh r0, [r6, 0x6] mov r0, r9 adds r0, 0x46 ldrb r0, [r0] str r0, [r6, 0xC] movs r0, 0 str r0, [r6, 0x10] b _080410F6 _080410F4: strh r0, [r6] _080410F6: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8041038 thumb_func_start sub_8041108 sub_8041108: push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 adds r5, r3, 0 ldrh r4, [r2, 0x2] adds r0, r7, 0 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 adds r2, r5, 0 bl sub_80412E0 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl sub_800ECB8 movs r2, 0x2 ldrsh r1, [r0, r2] ldrh r0, [r6] cmp r0, 0 beq _08041162 cmp r1, 0 beq _08041162 adds r0, r6, 0 bl sub_8041500 adds r0, r4, 0 bl sub_800EEF8 bl sub_800EF64 movs r0, 0x5A bl sub_803E46C adds r0, r6, 0 bl sub_800E52C adds r1, r7, 0 movs r2, 0x1 bl sub_8042DD4 _08041162: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8041108 thumb_func_start sub_8041168 sub_8041168: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 mov r8, r0 adds r6, r1, 0 adds r7, r2, 0 mov r9, r3 adds r1, r7, 0 bl sub_804143C adds r5, r0, 0 cmp r5, 0 beq _0804118A movs r5, 0x1 _0804118A: ldrh r4, [r7, 0x2] mov r0, r8 bl sub_807E580 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 adds r2, r5, 0 bl sub_80412E0 lsls r0, 16 lsrs r0, 16 mov r10, r0 bl sub_800ECB8 movs r1, 0x4 ldrsh r5, [r0, r1] movs r2, 0 str r2, [sp, 0x14] adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080411CA ldr r0, [r6, 0x70] str r0, [sp, 0x14] adds r0, r6, 0 bl sub_8042768 b _080411D0 _080411CA: mov r0, r9 bl sub_803F428 _080411D0: lsls r0, 24 cmp r0, 0 beq _080412CE mov r0, r8 adds r1, r7, 0 bl sub_80414C0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080412CE cmp r5, 0 beq _080412CE adds r0, r5, 0 bl sub_800ECA4 ldr r5, [r0, 0x1C] movs r0, 0x1 negs r0, r0 cmp r5, r0 beq _08041216 adds r0, r6, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08041216 add r0, sp, 0x8 adds r1, r6, 0 adds r1, 0x28 lsls r2, r5, 24 lsrs r2, 24 bl sub_800569C b _08041218 _08041216: str r4, [sp, 0x8] _08041218: mov r0, sp mov r1, r10 strh r1, [r0] ldr r2, [sp, 0x14] cmp r2, 0 beq _08041248 mov r1, sp ldrh r0, [r2, 0x4] strh r0, [r1, 0x2] ldr r0, [r6, 0xC] cmp r0, 0 bge _08041232 adds r0, 0xFF _08041232: asrs r0, 8 strh r0, [r1, 0x4] mov r1, sp ldr r0, [r6, 0x10] cmp r0, 0 bge _08041240 adds r0, 0xFF _08041240: asrs r0, 8 strh r0, [r1, 0x6] movs r0, 0 b _0804128C _08041248: mov r1, sp movs r0, 0x1 strh r0, [r1, 0x2] mov r0, r9 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 mov r1, sp movs r2, 0xC0 lsls r2, 4 adds r0, r2 cmp r0, 0 bge _08041268 adds r0, 0xFF _08041268: asrs r0, 8 strh r0, [r1, 0x4] mov r0, r9 movs r2, 0x2 ldrsh r1, [r0, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 mov r1, sp movs r2, 0x80 lsls r2, 5 adds r0, r2 cmp r0, 0 bge _08041286 adds r0, 0xFF _08041286: asrs r0, 8 strh r0, [r1, 0x6] ldr r0, [sp, 0x14] _0804128C: str r0, [sp, 0xC] movs r0, 0 str r0, [sp, 0x10] mov r0, sp bl sub_8041500 mov r0, r10 bl sub_800EEE0 bl sub_800EF64 mov r0, sp bl sub_800EBC8 adds r4, r0, 0 movs r0, 0x5B bl sub_803E46C adds r0, r4, 0 adds r1, r6, 0 movs r2, 0x6 bl sub_8042DD4 b _080412C2 _080412BC: movs r0, 0x28 bl sub_803E46C _080412C2: adds r0, r4, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 bne _080412BC _080412CE: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8041168 thumb_func_start sub_80412E0 sub_80412E0: push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 24 lsrs r0, r1, 24 adds r3, r4, 0 cmp r3, 0x1F bne _08041344 cmp r0, 0x7 bls _080412F6 b _080413F6 _080412F6: lsls r0, 2 ldr r1, _08041300 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08041300: .4byte _08041304 .align 2, 0 _08041304: .4byte _080413F4 .4byte _08041324 .4byte _0804132A .4byte _080413F4 .4byte _08041334 .4byte _0804133A .4byte _080413F4 .4byte _0804133A _08041324: movs r3, 0xCF lsls r3, 1 b _080413F6 _0804132A: ldr r3, _08041330 b _080413F6 .align 2, 0 _08041330: .4byte 0x000001a1 _08041334: movs r3, 0xD0 lsls r3, 1 b _080413F6 _0804133A: ldr r3, _08041340 b _080413F6 .align 2, 0 _08041340: .4byte 0x0000019f _08041344: cmp r2, 0 beq _080413F6 cmp r3, 0x97 beq _080413B4 cmp r3, 0x97 bgt _0804136C cmp r3, 0x3C beq _0804139C cmp r3, 0x3C bgt _08041362 cmp r3, 0x8 beq _08041396 cmp r3, 0x19 beq _080413E4 b _080413F4 _08041362: cmp r3, 0x4B beq _080413A4 cmp r3, 0x64 beq _080413AA b _080413F4 _0804136C: cmp r3, 0xCD beq _080413CA cmp r3, 0xCD bgt _0804137E cmp r3, 0x99 beq _080413BA cmp r3, 0x9C beq _080413C4 b _080413F4 _0804137E: cmp r3, 0xED beq _080413DA cmp r3, 0xED bgt _0804138C cmp r3, 0xE3 beq _080413EA b _080413F4 _0804138C: movs r0, 0xAE lsls r0, 1 cmp r3, r0 beq _080413D4 b _080413F4 _08041396: movs r3, 0xD1 lsls r3, 1 b _080413F6 _0804139C: ldr r3, _080413A0 b _080413F6 .align 2, 0 _080413A0: .4byte 0x000001a3 _080413A4: movs r3, 0xD2 lsls r3, 1 b _080413F6 _080413AA: ldr r3, _080413B0 b _080413F6 .align 2, 0 _080413B0: .4byte 0x000001a5 _080413B4: movs r3, 0xD3 lsls r3, 1 b _080413F6 _080413BA: ldr r3, _080413C0 b _080413F6 .align 2, 0 _080413C0: .4byte 0x000001a7 _080413C4: movs r3, 0xD4 lsls r3, 1 b _080413F6 _080413CA: ldr r3, _080413D0 b _080413F6 .align 2, 0 _080413D0: .4byte 0x000001a9 _080413D4: movs r3, 0xD5 lsls r3, 1 b _080413F6 _080413DA: ldr r3, _080413E0 b _080413F6 .align 2, 0 _080413E0: .4byte 0x000001ab _080413E4: movs r3, 0xD6 lsls r3, 1 b _080413F6 _080413EA: ldr r3, _080413F0 b _080413F6 .align 2, 0 _080413F0: .4byte 0x000001ad _080413F4: adds r3, r4, 0 _080413F6: adds r0, r3, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80412E0 thumb_func_start sub_8041400 sub_8041400: push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r1, 24 bl sub_80412E0 lsls r0, 16 lsrs r0, 16 bl sub_800ED20 pop {r1} bx r1 thumb_func_end sub_8041400 thumb_func_start sub_804141C sub_804141C: push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r1, 24 bl sub_80412E0 lsls r0, 16 lsrs r0, 16 bl sub_800EC84 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_804141C thumb_func_start sub_804143C sub_804143C: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrh r0, [r5, 0x2] cmp r0, 0xED bne _08041476 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080414A4 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _080414A4 ldr r1, [r4, 0x70] adds r0, r1, 0 adds r0, 0x5C ldrb r0, [r0] cmp r0, 0xE beq _080414A0 adds r0, r1, 0 adds r0, 0x5D ldrb r0, [r0] cmp r0, 0xE beq _080414A0 b _0804148A _08041476: cmp r0, 0x19 beq _0804147E cmp r0, 0xE3 bne _0804148E _0804147E: adds r0, r4, 0 bl sub_8070B28 lsls r0, 24 cmp r0, 0 beq _080414A0 _0804148A: movs r0, 0 b _080414B8 _0804148E: cmp r0, 0x97 bne _080414A4 adds r0, r4, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080414A4 _080414A0: movs r0, 0x1 b _080414B8 _080414A4: adds r0, r4, 0 adds r1, r5, 0 bl sub_80570AC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 negs r0, r1 orrs r0, r1 lsrs r0, 31 _080414B8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_804143C thumb_func_start sub_80414C0 sub_80414C0: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldrh r0, [r4, 0x2] cmp r0, 0x9C bne _080414DC adds r0, r5, 0 bl sub_8045128 bl sub_804AF20 lsls r0, 24 cmp r0, 0 bne _080414F2 _080414DC: ldrh r0, [r4, 0x2] cmp r0, 0x8 bne _080414F6 adds r0, r5, 0 bl sub_8045128 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _080414F6 _080414F2: movs r0, 0x1 b _080414F8 _080414F6: movs r0, 0 _080414F8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80414C0 thumb_func_start sub_8041500 sub_8041500: push {lr} bl sub_800E7D0 lsls r0, 24 cmp r0, 0 beq _08041518 movs r0, 0x5C bl sub_803E46C movs r0, 0x5D bl sub_8052740 _08041518: pop {r0} bx r0 thumb_func_end sub_8041500 thumb_func_start sub_804151C sub_804151C: push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 adds r5, r1, 0 lsls r4, r2, 24 lsrs r4, 24 adds r0, r5, 0 bl sub_800DC9C adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x2 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_8041550 add sp, 0x8 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_804151C thumb_func_start sub_8041550 sub_8041550: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 adds r7, r0, 0 mov r10, r1 ldr r0, [sp, 0x54] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x2C] lsls r3, 24 lsrs r3, 24 mov r9, r3 lsls r0, 24 lsrs r6, r0, 24 adds r0, r7, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0804159C ldr r0, [r7, 0x70] mov r8, r0 adds r0, r7, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _0804159C cmp r6, 0 bne _080415A2 mov r0, r8 adds r0, 0xFF ldrb r0, [r0] cmp r0, 0x2 bne _080415A2 _0804159C: movs r0, 0x1 negs r0, r0 b _08041692 _080415A2: ldr r1, [sp, 0x50] cmp r1, 0 beq _080415B4 movs r0, 0 cmp r1, 0x2 bne _080415B0 movs r0, 0x1 _080415B0: bl sub_804178C _080415B4: add r6, sp, 0x28 adds r1, r7, 0 adds r1, 0x28 adds r0, r6, 0 mov r2, r9 bl sub_800569C movs r2, 0 ldrsh r0, [r6, r2] cmp r0, 0x63 beq _080415F2 ldrh r0, [r6, 0x2] cmp r0, 0x63 beq _080415F2 movs r1, 0 ldrsh r0, [r6, r1] lsls r0, 8 ldr r1, [r7, 0xC] adds r4, r1, r0 movs r2, 0x2 ldrsh r0, [r6, r2] lsls r0, 8 ldr r2, [r7, 0x10] adds r0, r2, r0 movs r1, 0xBA lsls r1, 1 add r1, r8 ldr r1, [r1] subs r5, r0, r1 adds r1, r2, 0 b _08041600 _080415F2: ldr r4, [r7, 0xC] movs r0, 0xBA lsls r0, 1 add r0, r8 ldr r1, [r7, 0x10] ldr r0, [r0] subs r5, r1, r0 _08041600: cmp r1, 0 bge _08041606 adds r1, 0xFF _08041606: asrs r1, 8 ldr r0, _0804166C ldr r0, [r0] ldr r2, _08041670 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] subs r1, r0 lsrs r0, r1, 31 adds r0, r1, r0 asrs r1, r0, 1 adds r1, 0x1 mov r0, r10 str r0, [sp] movs r3, 0 str r3, [sp, 0x4] movs r6, 0x1 negs r6, r6 str r6, [sp, 0x8] mov r2, sp adds r0, r4, 0 cmp r4, 0 bge _08041636 adds r0, 0xFF _08041636: asrs r0, 8 strh r0, [r2, 0xC] mov r2, sp adds r0, r5, 0 cmp r0, 0 bge _08041644 adds r0, 0xFF _08041644: asrs r0, 8 strh r0, [r2, 0xE] str r6, [sp, 0x14] mov r0, sp strh r3, [r0, 0x10] strh r3, [r0, 0x12] str r1, [sp, 0x18] add r0, sp, 0x1C bl sub_8004E8C mov r0, sp movs r1, 0 bl sub_8041764 adds r4, r0, 0 ldr r1, [sp, 0x2C] cmp r1, 0 beq _08041690 movs r5, 0 b _0804167C .align 2, 0 _0804166C: .4byte gUnknown_203B418 _08041670: .4byte 0x000181f2 _08041674: movs r0, 0x42 bl sub_803E46C adds r5, 0x1 _0804167C: cmp r5, 0x63 bgt _0804168C adds r0, r4, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 bne _08041674 _0804168C: movs r4, 0x1 negs r4, r4 _08041690: adds r0, r4, 0 _08041692: add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8041550 thumb_func_start sub_80416A4 sub_80416A4: push {r4,lr} sub sp, 0x8 lsls r2, 24 lsrs r2, 24 movs r3, 0 ldrsh r4, [r0, r3] lsls r3, r4, 1 adds r3, r4 lsls r3, 11 movs r4, 0xC0 lsls r4, 4 adds r3, r4 str r3, [sp] movs r4, 0x2 ldrsh r3, [r0, r4] lsls r0, r3, 1 adds r0, r3 lsls r0, 11 movs r3, 0x80 lsls r3, 5 adds r0, r3 str r0, [sp, 0x4] mov r0, sp bl sub_80416E0 add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_80416A4 thumb_func_start sub_80416E0 sub_80416E0: push {r4,r5,lr} sub sp, 0x28 adds r3, r0, 0 lsls r2, 24 lsrs r5, r2, 24 str r1, [sp] movs r2, 0 str r2, [sp, 0x4] movs r4, 0x1 negs r4, r4 str r4, [sp, 0x8] mov r1, sp ldr r0, [r3] cmp r0, 0 bge _08041700 adds r0, 0xFF _08041700: asrs r0, 8 strh r0, [r1, 0xC] mov r1, sp ldr r0, [r3, 0x4] cmp r0, 0 bge _0804170E adds r0, 0xFF _0804170E: asrs r0, 8 strh r0, [r1, 0xE] str r4, [sp, 0x14] mov r0, sp strh r2, [r0, 0x10] strh r2, [r0, 0x12] ldr r0, _08041738 str r0, [sp, 0x18] add r0, sp, 0x1C bl sub_8004E8C mov r0, sp movs r1, 0 bl sub_8041764 adds r4, r0, 0 cmp r5, 0 beq _08041758 movs r5, 0 b _08041744 .align 2, 0 _08041738: .4byte 0x0000ffff _0804173C: movs r0, 0x42 bl sub_803E46C adds r5, 0x1 _08041744: cmp r5, 0x63 bgt _08041754 adds r0, r4, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 bne _0804173C _08041754: movs r4, 0x1 negs r4, r4 _08041758: adds r0, r4, 0 add sp, 0x28 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80416E0 thumb_func_start sub_8041764 sub_8041764: push {r4,r5,lr} adds r5, r0, 0 lsls r4, r1, 24 lsrs r4, 24 ldr r0, [r5] bl sub_800EE5C bl sub_800EF64 cmp r4, 0 beq _08041780 movs r0, 0x42 bl sub_803E46C _08041780: adds r0, r5, 0 bl sub_800E890 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8041764 thumb_func_start sub_804178C sub_804178C: push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, _080417B0 ldr r0, [r0] ldr r1, _080417B4 adds r0, r1 str r4, [r0] adds r0, r5, 0 bl sub_800E9FC lsls r0, 24 cmp r0, 0 beq _080417E0 ldr r6, _080417B8 b _080417C4 .align 2, 0 _080417B0: .4byte gUnknown_203B418 _080417B4: .4byte 0x00018204 _080417B8: .4byte 0x000003e7 _080417BC: movs r0, 0x4A bl sub_803E46C adds r4, 0x1 _080417C4: cmp r4, r6 bgt _080417D4 adds r0, r5, 0 bl sub_800E9FC lsls r0, 24 cmp r0, 0 bne _080417BC _080417D4: movs r0, 0x4A bl sub_803E46C movs r0, 0x4A bl sub_803E46C _080417E0: movs r0, 0xFA lsls r0, 2 cmp r4, r0 beq _080417EC cmp r5, 0 beq _080417F0 _080417EC: bl sub_800DBBC _080417F0: ldr r2, _08041824 ldr r0, [r2] cmp r0, 0x1E bgt _08041860 ldr r1, _08041828 ldrb r7, [r1] movs r0, 0x1 strb r0, [r1] movs r4, 0 adds r5, r2, 0 ldr r6, _0804182C _08041806: ldr r0, [r5] cmp r0, 0x1E bgt _08041838 adds r0, 0x4 str r0, [r5] ldr r1, _08041830 ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, r6 beq _0804183C ldr r3, _08041834 adds r0, r2, r3 strh r0, [r1] b _0804183C .align 2, 0 _08041824: .4byte gUnknown_202EDC8 _08041828: .4byte gUnknown_203B40D _0804182C: .4byte 0x00000808 _08041830: .4byte gUnknown_2026E4E _08041834: .4byte 0xfffffeff _08041838: movs r0, 0x1F str r0, [r5] _0804183C: bl sub_803EA10 movs r0, 0x4A bl sub_803E46C ldr r0, [r5] cmp r0, 0x1F beq _08041854 adds r4, 0x1 ldr r0, _0804186C cmp r4, r0 ble _08041806 _08041854: ldr r0, _08041870 ldr r2, _08041874 adds r1, r2, 0 strh r1, [r0] ldr r0, _08041878 strb r7, [r0] _08041860: bl sub_8042E98 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804186C: .4byte 0x000003e7 _08041870: .4byte gUnknown_2026E4E _08041874: .4byte 0x00000808 _08041878: .4byte gUnknown_203B40D thumb_func_end sub_804178C thumb_func_start sub_804187C sub_804187C: ldr r0, [r0, 0x70] movs r1, 0x80 lsls r1, 2 adds r0, r1 ldr r0, [r0] bx lr thumb_func_end sub_804187C thumb_func_start sub_8041888 sub_8041888: push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 _08041890: ldr r0, _080418CC ldr r0, [r0] lsls r1, r5, 2 ldr r2, _080418D0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080418C0 ldr r1, [r4, 0x70] cmp r6, 0 beq _080418BA movs r0, 0xA6 lsls r0, 1 adds r1, r0 movs r0, 0x1 strb r0, [r1] _080418BA: adds r0, r4, 0 bl sub_80418D4 _080418C0: adds r5, 0x1 cmp r5, 0x13 ble _08041890 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080418CC: .4byte gUnknown_203B418 _080418D0: .4byte 0x000135cc thumb_func_end sub_8041888 thumb_func_start sub_80418D4 sub_80418D4: push {r4,lr} adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080418E4 b _08041A8C _080418E4: ldr r2, [r4, 0x70] movs r3, 0 movs r1, 0x1 movs r4, 0x2 ldrsh r0, [r2, r4] cmp r0, 0xB9 bne _08041902 adds r0, r2, 0 adds r0, 0xA9 ldrb r0, [r0] movs r1, 0x7F eors r0, r1 negs r1, r0 orrs r1, r0 lsrs r1, 31 _08041902: cmp r1, 0 beq _08041914 ldr r1, _08041A94 adds r0, r2, 0 adds r0, 0xA8 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r3, [r0] _08041914: ldr r1, _08041A98 adds r0, r2, 0 adds r0, 0xAC ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041A9C adds r0, r2, 0 adds r0, 0xB0 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AA0 adds r0, r2, 0 adds r0, 0xBC ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AA4 adds r0, r2, 0 adds r0, 0xC0 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AA8 adds r0, r2, 0 adds r0, 0xC4 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AAC adds r0, r2, 0 adds r0, 0xC8 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AB0 adds r0, r2, 0 adds r0, 0xD0 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AB4 adds r0, r2, 0 adds r0, 0xDC ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AB8 adds r0, r2, 0 adds r0, 0xE0 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041ABC adds r0, r2, 0 adds r0, 0xE4 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AC0 adds r0, r2, 0 adds r0, 0xE8 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 ldr r1, _08041AC4 adds r0, r2, 0 adds r0, 0xEC ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r3, r0 adds r0, r2, 0 adds r0, 0xF4 ldrb r0, [r0] cmp r0, 0 beq _080419E4 movs r0, 0x80 lsls r0, 17 orrs r3, r0 _080419E4: adds r0, r2, 0 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 beq _080419F4 movs r0, 0x80 lsls r0, 18 orrs r3, r0 _080419F4: ldrb r0, [r2, 0x6] cmp r0, 0 bne _08041A14 movs r0, 0x10 ldrsh r1, [r2, r0] cmp r1, 0 bge _08041A04 adds r1, 0x3 _08041A04: asrs r1, 2 movs r4, 0xE ldrsh r0, [r2, r4] cmp r1, r0 ble _08041A14 movs r0, 0x80 lsls r0, 6 orrs r3, r0 _08041A14: ldr r0, _08041AC8 ldr r0, [r0] ldr r1, _08041ACC adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08041A36 adds r0, r2, 0 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08041A36 movs r0, 0x80 lsls r0, 6 orrs r3, r0 _08041A36: ldr r0, [r2, 0x2C] cmp r0, 0xFF ble _08041A7E ldr r0, [r2, 0x30] cmp r0, 0xFF ble _08041A7E ldr r0, [r2, 0x34] cmp r0, 0xFF ble _08041A7E ldr r0, [r2, 0x38] cmp r0, 0xFF ble _08041A7E movs r4, 0x1C ldrsh r0, [r2, r4] cmp r0, 0x9 ble _08041A7E movs r1, 0x1E ldrsh r0, [r2, r1] cmp r0, 0x9 ble _08041A7E movs r4, 0x20 ldrsh r0, [r2, r4] cmp r0, 0x9 ble _08041A7E movs r1, 0x22 ldrsh r0, [r2, r1] cmp r0, 0x9 ble _08041A7E movs r4, 0x24 ldrsh r0, [r2, r4] cmp r0, 0x9 ble _08041A7E movs r1, 0x26 ldrsh r0, [r2, r1] cmp r0, 0x9 bgt _08041A84 _08041A7E: movs r0, 0x80 lsls r0, 20 orrs r3, r0 _08041A84: movs r4, 0x80 lsls r4, 2 adds r0, r2, r4 str r3, [r0] _08041A8C: pop {r4} pop {r0} bx r0 .align 2, 0 _08041A94: .4byte gUnknown_80F669C _08041A98: .4byte gUnknown_80F66B4 _08041A9C: .4byte gUnknown_80F66C8 _08041AA0: .4byte gUnknown_80F66E8 _08041AA4: .4byte gUnknown_80F6708 _08041AA8: .4byte gUnknown_80F673C _08041AAC: .4byte gUnknown_80F6778 _08041AB0: .4byte gUnknown_80F6788 _08041AB4: .4byte gUnknown_80F6794 _08041AB8: .4byte gUnknown_80F67A8 _08041ABC: .4byte gUnknown_80F67B4 _08041AC0: .4byte gUnknown_80F67C4 _08041AC4: .4byte gUnknown_80F67D4 _08041AC8: .4byte gUnknown_203B418 _08041ACC: .4byte 0x00000676 thumb_func_end sub_80418D4 thumb_func_start sub_8041AD0 sub_8041AD0: push {lr} movs r1, 0xA2 lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041AD0 thumb_func_start sub_8041AE0 sub_8041AE0: push {lr} ldr r1, _08041AF0 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041AF0: .4byte 0x00000143 thumb_func_end sub_8041AE0 thumb_func_start sub_8041AF4 sub_8041AF4: push {r4,lr} adds r4, r0, 0 movs r1, 0x25 movs r2, 0x1 bl sub_804151C ldr r1, _08041B10 adds r0, r4, 0 bl sub_80421C0 pop {r4} pop {r0} bx r0 .align 2, 0 _08041B10: .4byte 0x00000197 thumb_func_end sub_8041AF4 thumb_func_start nullsub_57 nullsub_57: bx lr thumb_func_end nullsub_57 thumb_func_start sub_8041B18 sub_8041B18: push {lr} ldr r1, _08041B28 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041B28: .4byte 0x00000141 thumb_func_end sub_8041B18 thumb_func_start nullsub_58 nullsub_58: bx lr thumb_func_end nullsub_58 thumb_func_start nullsub_59 nullsub_59: bx lr thumb_func_end nullsub_59 thumb_func_start sub_8041B34 sub_8041B34: push {lr} movs r1, 0x7 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041B34 thumb_func_start nullsub_60 nullsub_60: bx lr thumb_func_end nullsub_60 thumb_func_start sub_8041B48 sub_8041B48: push {lr} movs r1, 0x4 movs r2, 0 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041B48 thumb_func_start nullsub_61 nullsub_61: bx lr thumb_func_end nullsub_61 thumb_func_start sub_8041B5C sub_8041B5C: push {lr} ldr r1, _08041B6C movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041B6C: .4byte 0x00000171 thumb_func_end sub_8041B5C thumb_func_start nullsub_62 nullsub_62: bx lr thumb_func_end nullsub_62 thumb_func_start sub_8041B74 sub_8041B74: push {lr} ldr r1, _08041B84 movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041B84: .4byte 0x00000171 thumb_func_end sub_8041B74 thumb_func_start nullsub_63 nullsub_63: bx lr thumb_func_end nullsub_63 thumb_func_start nullsub_64 nullsub_64: bx lr thumb_func_end nullsub_64 thumb_func_start sub_8041B90 sub_8041B90: push {lr} movs r1, 0xD6 lsls r1, 1 movs r2, 0 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041B90 thumb_func_start nullsub_65 nullsub_65: bx lr thumb_func_end nullsub_65 thumb_func_start nullsub_66 nullsub_66: bx lr thumb_func_end nullsub_66 thumb_func_start sub_8041BA8 sub_8041BA8: push {lr} movs r1, 0x4 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041BA8 thumb_func_start nullsub_67 nullsub_67: bx lr thumb_func_end nullsub_67 thumb_func_start sub_8041BBC sub_8041BBC: push {lr} movs r1, 0xD4 lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041BBC thumb_func_start nullsub_68 nullsub_68: bx lr thumb_func_end nullsub_68 thumb_func_start sub_8041BD0 sub_8041BD0: push {lr} lsls r1, 24 cmp r1, 0 beq _08041BDE ldr r1, _08041BE4 bl sub_80421C0 _08041BDE: pop {r0} bx r0 .align 2, 0 _08041BE4: .4byte 0x000001a5 thumb_func_end sub_8041BD0 thumb_func_start sub_8041BE8 sub_8041BE8: push {lr} movs r1, 0xCB lsls r1, 1 bl sub_80421C0 pop {r0} bx r0 thumb_func_end sub_8041BE8 thumb_func_start sub_8041BF8 sub_8041BF8: push {lr} movs r1, 0xA movs r2, 0x8 bl sub_806CDD4 pop {r0} bx r0 thumb_func_end sub_8041BF8 thumb_func_start sub_8041C08 sub_8041C08: push {lr} ldr r1, _08041C18 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041C18: .4byte 0x000001a7 thumb_func_end sub_8041C08 thumb_func_start sub_8041C1C sub_8041C1C: push {lr} ldr r1, _08041C2C movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041C2C: .4byte 0x000001a7 thumb_func_end sub_8041C1C thumb_func_start nullsub_69 nullsub_69: bx lr thumb_func_end nullsub_69 thumb_func_start sub_8041C34 sub_8041C34: push {lr} movs r1, 0x4C movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041C34 thumb_func_start nullsub_70 nullsub_70: bx lr thumb_func_end nullsub_70 thumb_func_start nullsub_71 nullsub_71: bx lr thumb_func_end nullsub_71 thumb_func_start sub_8041C4C sub_8041C4C: push {lr} movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041C4C thumb_func_start sub_8041C58 sub_8041C58: push {lr} ldr r1, _08041C68 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041C68: .4byte 0x000001a9 thumb_func_end sub_8041C58 thumb_func_start sub_8041C6C sub_8041C6C: push {lr} movs r1, 0x9D lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041C6C thumb_func_start sub_8041C7C sub_8041C7C: push {lr} movs r1, 0x9D lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041C7C thumb_func_start nullsub_72 nullsub_72: bx lr thumb_func_end nullsub_72 thumb_func_start nullsub_73 nullsub_73: bx lr thumb_func_end nullsub_73 thumb_func_start sub_8041C94 sub_8041C94: push {lr} ldr r1, _08041CA4 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041CA4: .4byte 0x00000171 thumb_func_end sub_8041C94 thumb_func_start sub_8041CA8 sub_8041CA8: push {lr} movs r1, 0x7 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041CA8 thumb_func_start sub_8041CB8 sub_8041CB8: push {lr} ldr r1, _08041CC8 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041CC8: .4byte 0x0000018b thumb_func_end sub_8041CB8 thumb_func_start sub_8041CCC sub_8041CCC: push {lr} movs r1, 0xC5 lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041CCC thumb_func_start sub_8041CDC sub_8041CDC: push {lr} movs r1, 0x5 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041CDC thumb_func_start sub_8041CEC sub_8041CEC: push {lr} ldr r1, _08041CF8 bl sub_80421C0 pop {r0} bx r0 .align 2, 0 _08041CF8: .4byte 0x0000019d thumb_func_end sub_8041CEC thumb_func_start nullsub_74 nullsub_74: bx lr thumb_func_end nullsub_74 thumb_func_start sub_8041D00 sub_8041D00: push {r4,lr} adds r4, r0, 0 adds r0, r1, 0 movs r1, 0x2F movs r2, 0x1 bl sub_804151C adds r0, r4, 0 movs r1, 0x30 movs r2, 0x1 bl sub_804151C pop {r4} pop {r0} bx r0 thumb_func_end sub_8041D00 thumb_func_start nullsub_75 nullsub_75: bx lr thumb_func_end nullsub_75 thumb_func_start nullsub_76 nullsub_76: bx lr thumb_func_end nullsub_76 thumb_func_start nullsub_77 nullsub_77: bx lr thumb_func_end nullsub_77 thumb_func_start nullsub_78 nullsub_78: bx lr thumb_func_end nullsub_78 thumb_func_start nullsub_79 nullsub_79: bx lr thumb_func_end nullsub_79 thumb_func_start nullsub_80 nullsub_80: bx lr thumb_func_end nullsub_80 thumb_func_start sub_8041D38 sub_8041D38: push {lr} movs r1, 0x21 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041D38 thumb_func_start sub_8041D48 sub_8041D48: push {lr} ldr r1, _08041D54 bl sub_80421C0 pop {r0} bx r0 .align 2, 0 _08041D54: .4byte 0x00000191 thumb_func_end sub_8041D48 thumb_func_start nullsub_81 nullsub_81: bx lr thumb_func_end nullsub_81 thumb_func_start sub_8041D5C sub_8041D5C: push {r4,lr} adds r4, r0, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _08041D7E ldr r0, [r4, 0x70] movs r1, 0x89 lsls r1, 1 adds r0, r1 ldrb r0, [r0] adds r1, r4, 0 movs r2, 0x1 movs r3, 0xB bl sub_803ED30 _08041D7E: pop {r4} pop {r0} bx r0 thumb_func_end sub_8041D5C thumb_func_start sub_8041D84 sub_8041D84: push {lr} ldr r1, _08041D90 bl sub_80421C0 pop {r0} bx r0 .align 2, 0 _08041D90: .4byte 0x0000019f thumb_func_end sub_8041D84 thumb_func_start nullsub_82 nullsub_82: bx lr thumb_func_end nullsub_82 thumb_func_start nullsub_83 nullsub_83: bx lr thumb_func_end nullsub_83 thumb_func_start sub_8041D9C sub_8041D9C: push {lr} ldr r1, _08041DAC movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041DAC: .4byte 0x00000131 thumb_func_end sub_8041D9C thumb_func_start sub_8041DB0 sub_8041DB0: push {lr} movs r1, 0x30 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041DB0 thumb_func_start nullsub_84 nullsub_84: bx lr thumb_func_end nullsub_84 thumb_func_start nullsub_85 nullsub_85: bx lr thumb_func_end nullsub_85 thumb_func_start nullsub_204 nullsub_204: bx lr thumb_func_end nullsub_204 thumb_func_start nullsub_86 nullsub_86: bx lr thumb_func_end nullsub_86 thumb_func_start nullsub_87 nullsub_87: bx lr thumb_func_end nullsub_87 thumb_func_start nullsub_88 nullsub_88: bx lr thumb_func_end nullsub_88 thumb_func_start sub_8041DD8 sub_8041DD8: push {r4,r5,lr} adds r4, r0, 0 lsls r1, 16 asrs r5, r1, 16 movs r1, 0xE bl sub_8071858 lsls r0, 24 cmp r0, 0 beq _08041DF8 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_804151C b _08041E02 _08041DF8: adds r0, r4, 0 movs r1, 0xE movs r2, 0x1 bl sub_804151C _08041E02: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8041DD8 thumb_func_start nullsub_89 nullsub_89: bx lr thumb_func_end nullsub_89 thumb_func_start sub_8041E0C sub_8041E0C: push {lr} movs r1, 0x41 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041E0C thumb_func_start sub_8041E1C sub_8041E1C: push {r4,lr} adds r4, r0, 0 movs r1, 0x8F lsls r1, 1 movs r2, 0x1 bl sub_804151C movs r1, 0xCE lsls r1, 1 adds r0, r4, 0 bl sub_80421C0 pop {r4} pop {r0} bx r0 thumb_func_end sub_8041E1C thumb_func_start sub_8041E3C sub_8041E3C: push {lr} movs r1, 0xD7 lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041E3C thumb_func_start sub_8041E4C sub_8041E4C: push {lr} ldr r1, _08041E5C movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041E5C: .4byte 0x000001b1 thumb_func_end sub_8041E4C thumb_func_start sub_8041E60 sub_8041E60: push {lr} ldr r1, _08041E70 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041E70: .4byte 0x000001a9 thumb_func_end sub_8041E60 thumb_func_start sub_8041E74 sub_8041E74: push {lr} movs r1, 0xC9 lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041E74 thumb_func_start sub_8041E84 sub_8041E84: push {lr} movs r1, 0xC7 lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041E84 thumb_func_start sub_8041E94 sub_8041E94: push {lr} movs r1, 0xC8 lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041E94 thumb_func_start sub_8041EA4 sub_8041EA4: push {lr} movs r1, 0x15 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041EA4 thumb_func_start sub_8041EB4 sub_8041EB4: push {lr} ldr r1, _08041EC4 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08041EC4: .4byte 0x00000171 thumb_func_end sub_8041EB4 thumb_func_start sub_8041EC8 sub_8041EC8: push {lr} ldr r1, _08041ED4 bl sub_80421C0 pop {r0} bx r0 .align 2, 0 _08041ED4: .4byte 0x00000197 thumb_func_end sub_8041EC8 thumb_func_start sub_8041ED8 sub_8041ED8: push {lr} ldr r1, _08041EE4 bl sub_80421C0 pop {r0} bx r0 .align 2, 0 _08041EE4: .4byte 0x00000197 thumb_func_end sub_8041ED8 thumb_func_start sub_8041EE8 sub_8041EE8: push {lr} movs r1, 0x15 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041EE8 thumb_func_start sub_8041EF8 sub_8041EF8: push {lr} movs r1, 0xF movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8041EF8 thumb_func_start sub_8041F08 sub_8041F08: push {lr} sub sp, 0x8 movs r1, 0x2 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] movs r1, 0x15 movs r2, 0x1 movs r3, 0x3 bl sub_8041550 add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_8041F08 thumb_func_start nullsub_90 nullsub_90: bx lr thumb_func_end nullsub_90 thumb_func_start sub_8041F28 sub_8041F28: push {lr} cmp r1, 0 bne _08041F3A movs r1, 0xCA lsls r1, 1 movs r2, 0x1 bl sub_804151C b _08041F42 _08041F3A: ldr r1, _08041F48 movs r2, 0x1 bl sub_804151C _08041F42: pop {r0} bx r0 .align 2, 0 _08041F48: .4byte 0x00000193 thumb_func_end sub_8041F28 thumb_func_start sub_8041F4C sub_8041F4C: push {lr} cmp r1, 0 bne _08041F60 ldr r1, _08041F5C movs r2, 0x1 bl sub_804151C b _08041F68 .align 2, 0 _08041F5C: .4byte 0x0000018f _08041F60: ldr r1, _08041F6C movs r2, 0x1 bl sub_804151C _08041F68: pop {r0} bx r0 .align 2, 0 _08041F6C: .4byte 0x00000191 thumb_func_end sub_8041F4C thumb_func_start sub_8041F70 sub_8041F70: push {lr} cmp r1, 0 bne _08041F84 ldr r1, _08041F80 movs r2, 0x1 bl sub_804151C b _08041F8E .align 2, 0 _08041F80: .4byte 0x000001a9 _08041F84: movs r1, 0xC9 lsls r1, 1 movs r2, 0x1 bl sub_804151C _08041F8E: pop {r0} bx r0 thumb_func_end sub_8041F70 thumb_func_start sub_8041F94 sub_8041F94: push {lr} cmp r1, 0 bne _08041FA6 movs r1, 0xC7 lsls r1, 1 movs r2, 0x1 bl sub_804151C b _08041FB0 _08041FA6: movs r1, 0xC8 lsls r1, 1 movs r2, 0x1 bl sub_804151C _08041FB0: pop {r0} bx r0 thumb_func_end sub_8041F94 thumb_func_start sub_8041FB4 sub_8041FB4: push {lr} cmp r1, 0 bne _08041FC8 ldr r1, _08041FC4 movs r2, 0x1 bl sub_804151C b _08041FD2 .align 2, 0 _08041FC4: .4byte 0x000001a9 _08041FC8: movs r1, 0xC9 lsls r1, 1 movs r2, 0x1 bl sub_804151C _08041FD2: pop {r0} bx r0 thumb_func_end sub_8041FB4 thumb_func_start sub_8041FD8 sub_8041FD8: push {lr} cmp r1, 0 bne _08041FEA movs r1, 0xCA lsls r1, 1 movs r2, 0x1 bl sub_804151C b _08041FF2 _08041FEA: ldr r1, _08041FF8 movs r2, 0x1 bl sub_804151C _08041FF2: pop {r0} bx r0 .align 2, 0 _08041FF8: .4byte 0x00000193 thumb_func_end sub_8041FD8 thumb_func_start sub_8041FFC sub_8041FFC: push {lr} cmp r1, 0 bne _0804200E movs r1, 0xC7 lsls r1, 1 movs r2, 0x1 bl sub_804151C b _08042018 _0804200E: movs r1, 0xC8 lsls r1, 1 movs r2, 0x1 bl sub_804151C _08042018: pop {r0} bx r0 thumb_func_end sub_8041FFC thumb_func_start sub_804201C sub_804201C: push {lr} cmp r1, 0 bne _08042030 ldr r1, _0804202C movs r2, 0x1 bl sub_804151C b _08042038 .align 2, 0 _0804202C: .4byte 0x0000018f _08042030: ldr r1, _0804203C movs r2, 0x1 bl sub_804151C _08042038: pop {r0} bx r0 .align 2, 0 _0804203C: .4byte 0x00000191 thumb_func_end sub_804201C thumb_func_start sub_8042040 sub_8042040: push {lr} cmp r1, 0 bne _08042052 movs r1, 0xC6 lsls r1, 1 movs r2, 0x1 bl sub_804151C b _0804205A _08042052: movs r1, 0xD movs r2, 0x1 bl sub_804151C _0804205A: pop {r0} bx r0 thumb_func_end sub_8042040 thumb_func_start sub_8042060 sub_8042060: push {lr} cmp r1, 0 bne _08042074 ldr r1, _08042070 movs r2, 0x1 bl sub_804151C b _0804207C .align 2, 0 _08042070: .4byte 0x0000018d _08042074: movs r1, 0xE movs r2, 0x1 bl sub_804151C _0804207C: pop {r0} bx r0 thumb_func_end sub_8042060 thumb_func_start sub_8042080 sub_8042080: push {lr} cmp r1, 0 bne _08042092 movs r1, 0xC6 lsls r1, 1 movs r2, 0x1 bl sub_804151C b _0804209A _08042092: movs r1, 0xD movs r2, 0x1 bl sub_804151C _0804209A: pop {r0} bx r0 thumb_func_end sub_8042080 thumb_func_start sub_80420A0 sub_80420A0: push {lr} ldr r1, _080420B0 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080420B0: .4byte 0x00000143 thumb_func_end sub_80420A0 thumb_func_start nullsub_91 nullsub_91: bx lr thumb_func_end nullsub_91 thumb_func_start sub_80420B8 sub_80420B8: push {lr} movs r1, 0x19 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_80420B8 thumb_func_start sub_80420C8 sub_80420C8: push {lr} sub sp, 0x8 movs r1, 0x2 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] movs r1, 0x15 movs r2, 0x1 movs r3, 0x3 bl sub_8041550 add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_80420C8 thumb_func_start nullsub_92 nullsub_92: bx lr thumb_func_end nullsub_92 thumb_func_start sub_80420E8 sub_80420E8: push {r4,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, [r1, 0x8] ldr r0, _0804211C ldr r0, [r0] ldr r2, _08042120 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _08042106 adds r0, r1, 0 bl sub_806F62C adds r1, r0, 0 _08042106: cmp r1, 0x1 beq _08042124 cmp r1, 0x1 bcc _08042116 cmp r1, 0x2 beq _08042128 cmp r1, 0x3 beq _0804212C _08042116: movs r1, 0x8 b _0804212E .align 2, 0 _0804211C: .4byte gUnknown_203B418 _08042120: .4byte 0x0000016d _08042124: movs r1, 0x9 b _0804212E _08042128: movs r1, 0xA b _0804212E _0804212C: movs r1, 0xB _0804212E: movs r0, 0 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] adds r0, r4, 0 movs r2, 0x1 movs r3, 0x3 bl sub_8041550 add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_80420E8 thumb_func_start sub_8042148 sub_8042148: push {r4,lr} adds r4, r0, 0 ldr r1, _08042164 bl sub_80421C0 movs r1, 0x9F lsls r1, 1 adds r0, r4, 0 movs r2, 0x1 bl sub_804151C pop {r4} pop {r0} bx r0 .align 2, 0 _08042164: .4byte 0x000001a7 thumb_func_end sub_8042148 thumb_func_start nullsub_93 nullsub_93: bx lr thumb_func_end nullsub_93 thumb_func_start sub_804216C sub_804216C: push {lr} adds r0, r1, 0 cmp r2, 0x1 bne _0804217E movs r1, 0xF8 movs r2, 0x1 bl sub_804151C b _08042186 _0804217E: movs r1, 0xF9 movs r2, 0x1 bl sub_804151C _08042186: pop {r0} bx r0 thumb_func_end sub_804216C thumb_func_start sub_804218C sub_804218C: push {lr} adds r0, r1, 0 movs r1, 0x2A movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_804218C thumb_func_start sub_804219C sub_804219C: push {lr} movs r1, 0x90 movs r2, 0x1 bl sub_80416E0 pop {r0} bx r0 thumb_func_end sub_804219C thumb_func_start sub_80421AC sub_80421AC: push {lr} adds r0, r1, 0 ldr r1, _080421BC movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080421BC: .4byte 0x00000167 thumb_func_end sub_80421AC thumb_func_start sub_80421C0 sub_80421C0: push {r4,lr} adds r2, r0, 0 lsls r1, 16 lsrs r0, r1, 16 adds r4, r0, 0 cmp r2, 0 bne _080421D4 bl sub_8083E38 b _080421E6 _080421D4: adds r0, r2, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _080421E6 adds r0, r4, 0 bl sub_8083E38 _080421E6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80421C0 thumb_func_start sub_80421EC sub_80421EC: push {r4,lr} lsls r1, 16 lsrs r4, r1, 16 bl sub_803F428 lsls r0, 24 cmp r0, 0 beq _08042202 adds r0, r4, 0 bl sub_8083E38 _08042202: pop {r4} pop {r0} bx r0 thumb_func_end sub_80421EC thumb_func_start sub_8042208 sub_8042208: push {lr} lsls r1, 24 lsrs r1, 24 cmp r1, 0 bne _0804221C movs r0, 0xA9 lsls r0, 1 bl sub_8083E38 b _08042234 _0804221C: cmp r1, 0x1 bne _0804222C ldr r0, _08042228 bl sub_8083E38 b _08042234 .align 2, 0 _08042228: .4byte 0x00000151 _0804222C: movs r0, 0xA8 lsls r0, 1 bl sub_8083E38 _08042234: pop {r0} bx r0 thumb_func_end sub_8042208 thumb_func_start sub_8042238 sub_8042238: push {lr} ldr r0, [r1, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 beq _08042250 ldr r0, _0804224C bl sub_8083E38 b _08042258 .align 2, 0 _0804224C: .4byte 0x00000157 _08042250: movs r0, 0xAB lsls r0, 1 bl sub_8083E38 _08042258: pop {r0} bx r0 thumb_func_end sub_8042238 thumb_func_start sub_804225C sub_804225C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r8, r0 adds r5, r1, 0 lsls r2, 24 lsrs r4, r2, 24 adds r7, r4, 0 cmp r4, 0x11 bne _08042274 b _08042384 _08042274: adds r0, r5, 0 bl sub_803F428 lsls r0, 24 cmp r0, 0 bne _08042282 b _08042384 _08042282: adds r0, r4, 0 bl sub_800EF28 bl sub_800EF64 movs r0, 0x4 movs r1, 0x42 bl sub_803E708 movs r0, 0 ldrsh r1, [r5, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r1, 0xC0 lsls r1, 4 adds r0, r1 cmp r0, 0 bge _080422AA adds r0, 0xFF _080422AA: lsls r0, 8 lsrs r0, 16 ldr r1, _080422FC ldr r2, [sp] ands r2, r1 orrs r2, r0 str r2, [sp] movs r0, 0x2 ldrsh r1, [r5, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r1, 0x80 lsls r1, 5 adds r0, r1 cmp r0, 0 bge _080422CE adds r0, 0xFF _080422CE: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r1, _08042300 ands r2, r1 orrs r2, r0 str r2, [sp] adds r0, r4, 0 mov r1, sp bl sub_800E448 adds r6, r0, 0 cmp r4, 0x4 bne _08042308 ldr r1, _08042304 movs r0, 0 bl sub_80421C0 movs r0, 0x28 movs r1, 0x33 bl sub_803E708 b _08042360 .align 2, 0 _080422FC: .4byte 0xffff0000 _08042300: .4byte 0x0000ffff _08042304: .4byte 0x00000193 _08042308: cmp r7, 0x8 bne _08042358 mov r0, r8 ldr r7, [r0, 0x70] adds r0, r7, 0 adds r0, 0x46 ldrb r4, [r0] movs r5, 0 b _0804231C _0804231A: adds r5, 0x2 _0804231C: ldr r0, _08042354 cmp r5, r0 bgt _08042346 subs r4, 0x1 movs r0, 0x7 ands r4, r0 mov r0, r8 movs r1, 0 adds r2, r4, 0 bl sub_806CDD4 movs r0, 0x2 movs r1, 0x33 bl sub_803E708 adds r0, r6, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 bne _0804231A _08042346: movs r0, 0x7 ands r4, r0 adds r0, r7, 0 adds r0, 0x46 strb r4, [r0] b _08042360 .align 2, 0 _08042354: .4byte 0x000003e7 _08042358: movs r0, 0x28 movs r1, 0x33 bl sub_803E708 _08042360: movs r5, 0 ldr r4, _08042368 b _0804236E .align 2, 0 _08042368: .4byte 0x000003e7 _0804236C: adds r5, 0x1 _0804236E: cmp r5, r4 bgt _08042384 movs r0, 0x42 bl sub_803E46C adds r0, r6, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 bne _0804236C _08042384: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804225C thumb_func_start sub_8042390 sub_8042390: push {r4-r6,lr} sub sp, 0x18 adds r5, r0, 0 adds r4, r1, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _08042454 ldrb r1, [r4] movs r0, 0x8 ands r0, r1 movs r6, 0 cmp r0, 0 bne _080423B0 ldrb r6, [r4, 0x2] _080423B0: adds r0, r6, 0 movs r1, 0 bl sub_800EF40 bl sub_800EF64 movs r0, 0x4 movs r1, 0x42 bl sub_803E708 ldr r0, [r5, 0xC] cmp r0, 0 bge _080423CC adds r0, 0xFF _080423CC: lsls r0, 8 lsrs r0, 16 ldr r1, _08042428 ldr r2, [sp, 0x14] ands r2, r1 orrs r2, r0 str r2, [sp, 0x14] ldr r0, [r5, 0x10] cmp r0, 0 bge _080423E2 adds r0, 0xFF _080423E2: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r4, _0804242C ands r4, r2 orrs r4, r0 str r4, [sp, 0x14] asrs r4, 16 ldr r0, _08042430 ldr r0, [r0] ldr r1, _08042434 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] subs r4, r0 lsrs r0, r4, 31 adds r4, r0 asrs r4, 1 adds r4, 0x1 adds r1, r5, 0 adds r1, 0x28 add r0, sp, 0x4 bl sub_8005700 add r1, sp, 0x14 str r4, [sp] adds r0, r6, 0 add r2, sp, 0x4 movs r3, 0 bl sub_800E49C adds r5, r0, 0 movs r4, 0 ldr r6, _08042438 b _0804243E .align 2, 0 _08042428: .4byte 0xffff0000 _0804242C: .4byte 0x0000ffff _08042430: .4byte gUnknown_203B418 _08042434: .4byte 0x000181f2 _08042438: .4byte 0x000003e7 _0804243C: adds r4, 0x1 _0804243E: cmp r4, r6 bgt _08042454 movs r0, 0x42 bl sub_803E46C adds r0, r5, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 bne _0804243C _08042454: add sp, 0x18 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8042390 thumb_func_start sub_804245C sub_804245C: push {r4-r6,lr} sub sp, 0x18 adds r5, r0, 0 adds r4, r1, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _08042518 ldrb r1, [r4] movs r0, 0x8 ands r0, r1 movs r6, 0 cmp r0, 0 bne _0804247C ldrb r6, [r4, 0x2] _0804247C: bl sub_800EF64 movs r0, 0x4 movs r1, 0x42 bl sub_803E708 ldr r0, [r5, 0xC] cmp r0, 0 bge _08042490 adds r0, 0xFF _08042490: lsls r0, 8 lsrs r0, 16 ldr r1, _080424EC ldr r2, [sp, 0x14] ands r2, r1 orrs r2, r0 str r2, [sp, 0x14] ldr r0, [r5, 0x10] cmp r0, 0 bge _080424A6 adds r0, 0xFF _080424A6: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r4, _080424F0 ands r4, r2 orrs r4, r0 str r4, [sp, 0x14] asrs r4, 16 ldr r0, _080424F4 ldr r0, [r0] ldr r1, _080424F8 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] subs r4, r0 lsrs r0, r4, 31 adds r4, r0 asrs r4, 1 adds r4, 0x1 adds r1, r5, 0 adds r1, 0x28 add r0, sp, 0x4 bl sub_8005700 add r1, sp, 0x14 str r4, [sp] adds r0, r6, 0 add r2, sp, 0x4 movs r3, 0x1 bl sub_800E49C adds r5, r0, 0 movs r4, 0 ldr r6, _080424FC b _08042502 .align 2, 0 _080424EC: .4byte 0xffff0000 _080424F0: .4byte 0x0000ffff _080424F4: .4byte gUnknown_203B418 _080424F8: .4byte 0x000181f2 _080424FC: .4byte 0x000003e7 _08042500: adds r4, 0x1 _08042502: cmp r4, r6 bgt _08042518 movs r0, 0x42 bl sub_803E46C adds r0, r5, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 bne _08042500 _08042518: add sp, 0x18 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_804245C thumb_func_start sub_8042520 sub_8042520: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x3C adds r4, r0, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 bne _0804253A b _08042664 _0804253A: ldr r0, [r4, 0x70] adds r0, 0x46 ldrb r5, [r0] ldr r0, [r4, 0xC] cmp r0, 0 bge _08042548 adds r0, 0xFF _08042548: lsls r0, 8 lsrs r0, 16 ldr r1, _0804264C ldr r2, [sp, 0x2C] ands r2, r1 orrs r2, r0 str r2, [sp, 0x2C] ldr r0, [r4, 0x10] cmp r0, 0 bge _0804255E adds r0, 0xFF _0804255E: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r1, _08042650 ands r1, r2 orrs r1, r0 str r1, [sp, 0x2C] asrs r1, 16 ldr r0, _08042654 ldr r0, [r0] ldr r2, _08042658 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] subs r1, r0 lsrs r0, r1, 31 adds r1, r0 asrs r7, r1, 1 ldr r0, _0804265C str r0, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r5, [sp, 0xC] add r1, sp, 0x4 add r4, sp, 0x2C ldrh r0, [r4] strh r0, [r1, 0xC] ldr r0, [sp, 0x2C] asrs r0, 16 strh r0, [r1, 0xE] adds r0, r1, 0 strh r2, [r0, 0x10] strh r2, [r0, 0x12] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x18] str r7, [sp, 0x1C] add r0, sp, 0x20 bl sub_8004E8C add r0, sp, 0x4 movs r1, 0 bl sub_8041764 adds r6, r0, 0 mov r10, r4 lsls r1, r5, 2 mov r0, sp adds r0, 0x30 str r0, [sp, 0x38] ldr r0, _08042660 adds r5, r1, r0 movs r1, 0x5 mov r8, r1 mov r9, r10 _080425CC: movs r0, 0 str r0, [sp] adds r0, r6, 0 adds r1, r4, 0 movs r2, 0 adds r3, r7, 0 bl sub_800E8AC movs r0, 0x42 bl sub_803E46C movs r2, 0 ldrsh r0, [r5, r2] lsls r0, 2 mov r1, r9 ldrh r1, [r1] adds r0, r1 mov r2, r9 strh r0, [r2] movs r0, 0x2 ldrsh r1, [r5, r0] lsls r1, 2 ldrh r0, [r4, 0x2] adds r0, r1 strh r0, [r4, 0x2] movs r2, 0x2 ldrsh r1, [r4, r2] ldr r0, _08042654 ldr r0, [r0] ldr r2, _08042658 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] subs r1, r0 lsrs r0, r1, 31 adds r1, r0 asrs r7, r1, 1 movs r0, 0x1 negs r0, r0 add r8, r0 mov r1, r8 cmp r1, 0 bge _080425CC bl sub_800DBBC mov r2, r10 movs r1, 0 ldrsh r0, [r2, r1] lsls r0, 8 str r0, [sp, 0x30] add r0, sp, 0x2C movs r2, 0x2 ldrsh r0, [r0, r2] lsls r0, 8 ldr r1, [sp, 0x38] str r0, [r1, 0x4] movs r1, 0xD0 lsls r1, 1 ldr r0, [sp, 0x38] movs r2, 0x1 bl sub_80416E0 adds r6, r0, 0 b _08042668 .align 2, 0 _0804264C: .4byte 0xffff0000 _08042650: .4byte 0x0000ffff _08042654: .4byte gUnknown_203B418 _08042658: .4byte 0x000181f2 _0804265C: .4byte 0x00000165 _08042660: .4byte gUnknown_80F4448 _08042664: movs r6, 0x1 negs r6, r6 _08042668: adds r0, r6, 0 add sp, 0x3C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8042520 thumb_func_start sub_804267C sub_804267C: push {r4,lr} ldr r4, _080426B8 bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08042694 cmp r0, 0 blt _08042694 cmp r0, 0x2 ble _080426AC _08042694: ldr r0, _080426BC ldr r0, [r0] ldr r1, _080426C0 adds r0, r1 ldrb r0, [r0] bl GetStairDirection lsls r0, 24 ldr r4, _080426C4 cmp r0, 0 beq _080426AC subs r4, 0x1 _080426AC: adds r0, r4, 0 bl sub_8083E38 pop {r4} pop {r0} bx r0 .align 2, 0 _080426B8: .4byte 0x000003e5 _080426BC: .4byte gUnknown_203B418 _080426C0: .4byte 0x00000644 _080426C4: .4byte 0x00000155 thumb_func_end sub_804267C thumb_func_start sub_80426C8 sub_80426C8: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 cmp r4, 0x3 bne _080426D8 movs r0, 0 bl sub_8083E88 _080426D8: cmp r5, 0x4 beq _080426F0 ldr r0, _080426EC lsls r1, r4, 1 adds r1, r0 ldrh r0, [r1] bl sub_8083E38 b _080426FC .align 2, 0 _080426EC: .4byte gUnknown_80F67DC _080426F0: ldr r0, _08042708 lsls r1, r4, 1 adds r1, r0 ldrh r0, [r1] bl sub_8083E38 _080426FC: adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x80 bl sub_8042B34 b _08042712 .align 2, 0 _08042708: .4byte gUnknown_80F67E4 _0804270C: movs r0, 0x46 bl sub_803E46C _08042712: bl sub_8042CC0 lsls r0, 24 cmp r0, 0 bne _0804270C bl sub_8042D7C bl sub_8040238 movs r0, 0x1 bl sub_8052210 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80426C8 thumb_func_start sub_8042730 sub_8042730: push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x8 movs r2, 0x8 bl sub_806CDD4 movs r5, 0 b _08042742 _08042740: adds r5, 0x1 _08042742: cmp r5, 0x63 bgt _08042760 movs r0, 0x51 bl sub_803E46C ldr r0, [r4, 0x40] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08042760 adds r0, r4, 0 adds r0, 0x6B ldrb r0, [r0] cmp r0, 0x8 beq _08042740 _08042760: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8042730 thumb_func_start sub_8042768 sub_8042768: push {lr} adds r1, r0, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _08042778 _08042774: movs r0, 0 b _080427A6 _08042778: ldr r0, _08042794 ldr r2, [r0] ldr r3, _08042798 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0 beq _0804279C subs r3, 0x12 adds r0, r2, r3 ldr r0, [r0] cmp r0, r1 bne _08042774 movs r0, 0x1 b _080427A6 .align 2, 0 _08042794: .4byte gUnknown_203B418 _08042798: .4byte 0x0001820a _0804279C: adds r0, r1, 0 bl sub_8045888 lsls r0, 24 lsrs r0, 24 _080427A6: pop {r1} bx r1 thumb_func_end sub_8042768 thumb_func_start sub_80427AC sub_80427AC: push {r4-r6,lr} movs r6, 0 _080427B0: ldr r0, _08042808 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0804280C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080427FA ldr r5, [r4, 0x70] adds r1, r5, 0 adds r1, 0xF3 ldrb r0, [r1] cmp r0, 0 beq _080427FA movs r0, 0 strb r0, [r1] adds r0, r4, 0 bl sub_80429A0 ldrb r0, [r5, 0x6] cmp r0, 0 bne _080427FA ldr r0, _08042810 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08042814 ldr r1, [r0] adds r0, r4, 0 bl sub_805239C _080427FA: adds r6, 0x1 cmp r6, 0x13 ble _080427B0 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08042808: .4byte gUnknown_203B418 _0804280C: .4byte 0x000135cc _08042810: .4byte gUnknown_202DF98 _08042814: .4byte gUnknown_8100270 thumb_func_end sub_80427AC thumb_func_start sub_8042818 sub_8042818: push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r7, r1, 24 ldr r0, _08042874 ldr r0, [r0] ldr r1, _08042878 adds r0, r1 ldr r4, [r0] cmp r4, 0 bne _08042836 bl sub_8083600 adds r4, r0, 0 _08042836: ldr r1, _0804287C lsls r0, r5, 1 adds r2, r0, r1 ldrh r1, [r2] ldr r0, _08042880 cmp r1, r0 beq _0804284A adds r0, r4, 0 bl sub_80421C0 _0804284A: ldr r0, _08042884 lsls r1, r5, 2 adds r0, r1, r0 ldr r5, [r0] adds r6, r1, 0 cmp r5, 0 blt _08042896 cmp r7, 0 beq _08042888 bl sub_80441BC lsls r0, 24 cmp r0, 0 bne _08042888 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl sub_804151C b _08042896 .align 2, 0 _08042874: .4byte gUnknown_203B418 _08042878: .4byte 0x000181f8 _0804287C: .4byte gUnknown_80F682C _08042880: .4byte 0x000003e5 _08042884: .4byte gUnknown_80F67EC _08042888: ldr r0, _0804289C adds r0, r6, r0 ldr r1, [r0] adds r0, r4, 0 movs r2, 0 bl sub_804151C _08042896: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804289C: .4byte gUnknown_80F680C thumb_func_end sub_8042818 thumb_func_start sub_80428A0 sub_80428A0: push {lr} movs r1, 0x29 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_80428A0 thumb_func_start sub_80428B0 sub_80428B0: push {lr} ldr r1, _080428C0 movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080428C0: .4byte 0x000001a9 thumb_func_end sub_80428B0 thumb_func_start sub_80428C4 sub_80428C4: push {lr} ldr r1, _080428D4 movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080428D4: .4byte 0x000001a9 thumb_func_end sub_80428C4 thumb_func_start sub_80428D8 sub_80428D8: push {lr} ldr r1, _080428E8 movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080428E8: .4byte 0x000001a9 thumb_func_end sub_80428D8 thumb_func_start sub_80428EC sub_80428EC: push {lr} ldr r1, _080428FC movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080428FC: .4byte 0x000001a9 thumb_func_end sub_80428EC thumb_func_start sub_8042900 sub_8042900: push {lr} movs r1, 0xD4 lsls r1, 1 movs r2, 0 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042900 thumb_func_start sub_8042910 sub_8042910: push {lr} movs r1, 0x29 movs r2, 0 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042910 thumb_func_start sub_8042920 sub_8042920: push {lr} movs r1, 0x48 movs r2, 0 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042920 thumb_func_start sub_8042930 sub_8042930: push {lr} movs r1, 0xD3 lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042930 thumb_func_start sub_8042940 sub_8042940: push {lr} movs r1, 0xC7 lsls r1, 1 movs r2, 0 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042940 thumb_func_start sub_8042950 sub_8042950: push {lr} movs r1, 0xD8 lsls r1, 1 movs r2, 0x1 bl sub_804151C movs r0, 0xA movs r1, 0x42 bl sub_803E708 pop {r0} bx r0 thumb_func_end sub_8042950 thumb_func_start sub_8042968 sub_8042968: push {lr} movs r1, 0xD4 lsls r1, 1 movs r2, 0 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042968 thumb_func_start sub_8042978 sub_8042978: push {lr} ldr r1, _08042988 movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _08042988: .4byte 0x000001a9 thumb_func_end sub_8042978 thumb_func_start sub_804298C sub_804298C: push {lr} ldr r1, _0804299C movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _0804299C: .4byte 0x000001a9 thumb_func_end sub_804298C thumb_func_start sub_80429A0 sub_80429A0: push {lr} ldr r1, _080429B0 movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080429B0: .4byte 0x00000199 thumb_func_end sub_80429A0 thumb_func_start sub_80429B4 sub_80429B4: push {lr} ldr r1, _080429C4 movs r2, 0 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080429C4: .4byte 0x000001ab thumb_func_end sub_80429B4 thumb_func_start sub_80429C8 sub_80429C8: push {lr} movs r1, 0x4 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_80429C8 thumb_func_start sub_80429D8 sub_80429D8: push {lr} movs r1, 0x8F lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_80429D8 thumb_func_start sub_80429E8 sub_80429E8: push {lr} ldr r1, _080429F8 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 .align 2, 0 _080429F8: .4byte 0x0000011d thumb_func_end sub_80429E8 thumb_func_start sub_80429FC sub_80429FC: push {lr} movs r1, 0xCF lsls r1, 1 movs r2, 0x1 bl sub_80416A4 movs r0, 0 movs r1, 0xD4 bl sub_80421C0 pop {r0} bx r0 thumb_func_end sub_80429FC thumb_func_start sub_8042A14 sub_8042A14: push {lr} movs r1, 0x36 movs r2, 0x1 bl sub_80416A4 pop {r0} bx r0 thumb_func_end sub_8042A14 thumb_func_start sub_8042A24 sub_8042A24: push {lr} movs r1, 0x15 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042A24 thumb_func_start sub_8042A34 sub_8042A34: push {lr} movs r1, 0x9F lsls r1, 1 movs r2, 0 bl sub_80416A4 pop {r0} bx r0 thumb_func_end sub_8042A34 thumb_func_start sub_8042A44 sub_8042A44: push {lr} movs r1, 0xDA lsls r1, 1 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042A44 thumb_func_start sub_8042A54 sub_8042A54: push {lr} movs r1, 0x37 movs r2, 0x1 bl sub_80416A4 pop {r0} bx r0 thumb_func_end sub_8042A54 thumb_func_start sub_8042A64 sub_8042A64: push {lr} movs r1, 0x29 movs r2, 0x1 bl sub_80416A4 pop {r0} bx r0 thumb_func_end sub_8042A64 thumb_func_start sub_8042A74 sub_8042A74: push {lr} movs r1, 0x18 movs r2, 0x1 bl sub_804151C pop {r0} bx r0 thumb_func_end sub_8042A74 thumb_func_start sub_8042A84 sub_8042A84: push {r4-r7,lr} adds r4, r1, 0 adds r7, r2, 0 lsls r0, 16 asrs r5, r0, 16 movs r6, 0x80 lsls r6, 2 adds r0, r4, 0 bl sub_8042768 lsls r0, 24 cmp r0, 0 beq _08042AF8 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl sub_804151C adds r0, r7, 0 movs r1, 0x42 bl sub_803E708 adds r5, r4, 0 adds r5, 0x20 _08042AB4: ldr r1, [r4, 0x1C] ldr r0, _08042B00 cmp r1, r0 bgt _08042AF0 movs r0, 0x42 bl sub_803E46C ldr r1, [r4, 0x1C] adds r1, r6 str r1, [r4, 0x1C] movs r0, 0x80 lsls r0, 1 adds r6, r0 ldr r0, [r4, 0x10] subs r0, r1 cmp r0, 0 bge _08042AD8 adds r0, 0xFF _08042AD8: asrs r1, r0, 8 ldr r0, _08042B04 ldr r0, [r0] ldr r2, _08042B08 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] subs r1, r0 movs r0, 0x8 negs r0, r0 cmp r1, r0 bge _08042AB4 _08042AF0: movs r0, 0 strb r0, [r5] bl sub_804178C _08042AF8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08042B00: .4byte 0x0000c7ff _08042B04: .4byte gUnknown_203B418 _08042B08: .4byte 0x000181f2 thumb_func_end sub_8042A84 thumb_func_start sub_8042B0C sub_8042B0C: push {lr} adds r1, r0, 0 movs r0, 0x9F lsls r0, 1 movs r2, 0x5 bl sub_8042A84 pop {r0} bx r0 thumb_func_end sub_8042B0C thumb_func_start sub_8042B20 sub_8042B20: push {lr} adds r1, r0, 0 movs r0, 0xDE lsls r0, 1 movs r2, 0xE bl sub_8042A84 pop {r0} bx r0 thumb_func_end sub_8042B20 thumb_func_start sub_8042B34 sub_8042B34: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 adds r5, r0, 0 adds r4, r1, 0 adds r6, r2, 0 movs r0, 0 mov r8, r0 bl sub_8085480 mov r10, r0 ldr r7, _08042CB0 movs r0, 0xCC movs r1, 0x7 bl MemoryAlloc str r0, [r7] str r5, [r0] adds r4, 0x1 lsls r4, 2 str r4, [r0, 0x8] ldr r4, _08042CB4 lsls r0, r5, 1 adds r0, r5 lsls r0, 3 adds r0, r4 movs r1, 0 ldrsh r0, [r0, r1] bl sub_800EE5C bl sub_800EF64 movs r0, 0x46 bl sub_803E46C ldr r0, [r7] str r6, [r0, 0x4] movs r5, 0 ldr r0, [r0, 0x8] cmp r5, r0 blt _08042B8E b _08042C9E _08042B8E: mov r9, sp _08042B90: mov r2, r8 lsls r6, r2, 3 ldr r0, [r7] ldr r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r6, r0 ldr r3, _08042CB4 adds r0, r3 movs r1, 0 ldrsh r0, [r0, r1] str r0, [sp] str r5, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] mov r2, r10 ldr r0, [r2, 0xC] cmp r0, 0 bge _08042BBA adds r0, 0xFF _08042BBA: asrs r0, 8 mov r3, r9 strh r0, [r3, 0xC] mov r1, sp mov r2, r10 ldr r0, [r2, 0x10] cmp r0, 0 bge _08042BCC adds r0, 0xFF _08042BCC: asrs r0, 8 strh r0, [r1, 0xE] movs r0, 0x2 bl RandomCapped ldr r1, [r7] lsls r4, r5, 2 adds r3, r1, 0 adds r3, 0x4C adds r3, r4 ldr r2, [r1] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, r6, r1 ldr r2, _08042CB4 adds r2, 0x4 adds r1, r2 ldr r1, [r1] lsls r1, 1 adds r1, r0 str r1, [r3] movs r0, 0xF0 bl RandomCapped ldr r1, [r7] adds r1, r4 adds r0, 0x98 adds r1, 0x8C strh r0, [r1] lsls r0, r5, 1 adds r0, 0x8 bl RandomCapped ldr r1, [r7] adds r2, r1, r4 adds r3, r0, 0 adds r3, 0x18 adds r1, r5, 0 cmp r5, 0 bge _08042C20 adds r1, r5, 0x3 _08042C20: asrs r1, 2 lsls r1, 2 subs r1, r5, r1 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 subs r0, r3, r0 adds r1, r2, 0 adds r1, 0x8E strh r0, [r1] adds r0, r2, 0 adds r0, 0x8C ldrh r0, [r0] mov r3, r9 strh r0, [r3, 0x10] ldrh r0, [r1] strh r0, [r3, 0x12] movs r0, 0x4 str r0, [sp, 0x14] ldr r0, _08042CB8 str r0, [sp, 0x18] add r1, sp, 0x1C ldr r0, _08042CBC ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} mov r0, sp bl sub_800E890 ldr r2, [r7] adds r1, r2, 0 adds r1, 0xC adds r1, r4 str r0, [r1] movs r6, 0x1 add r8, r6 mov r0, r8 cmp r0, 0x2 bgt _08042C82 ldr r0, [r2] lsls r1, r0, 1 adds r1, r0 add r1, r8 lsls r1, 3 ldr r2, _08042CB4 adds r1, r2 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 bne _08042C86 _08042C82: movs r6, 0 mov r8, r6 _08042C86: ldr r0, [sp] bl sub_800ECA4 ldr r0, [r0, 0x4] bl sub_800F15C adds r5, 0x1 ldr r0, [r7] ldr r0, [r0, 0x8] cmp r5, r0 bge _08042C9E b _08042B90 _08042C9E: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08042CB0: .4byte gUnknown_203B414 _08042CB4: .4byte gUnknown_80F6624 _08042CB8: .4byte 0x0000ffff _08042CBC: .4byte gUnknown_80F683C thumb_func_end sub_8042B34 thumb_func_start sub_8042CC0 sub_8042CC0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r7, 0 ldr r2, _08042D20 ldr r1, [r2] ldr r0, [r1, 0x4] cmp r0, 0 beq _08042CDC movs r7, 0x1 subs r0, 0x1 str r0, [r1, 0x4] _08042CDC: movs r5, 0 ldr r0, [r2] ldr r0, [r0, 0x8] cmp r5, r0 bge _08042D56 adds r6, r2, 0 movs r0, 0x98 negs r0, r0 mov r9, r0 movs r4, 0 ldr r1, _08042D24 mov r8, r1 _08042CF4: ldr r3, [r6] adds r0, r3, r4 adds r2, r0, 0 adds r2, 0x8C adds r0, r3, 0 adds r0, 0x4C adds r0, r4 ldr r1, [r0] ldrh r0, [r2] subs r0, r1 strh r0, [r2] lsls r0, 16 asrs r0, 16 cmp r0, r9 bgt _08042D2E ldr r0, [r3, 0x4] cmp r0, 0 ble _08042D28 movs r0, 0x98 strh r0, [r2] b _08042D30 .align 2, 0 _08042D20: .4byte gUnknown_203B414 _08042D24: .4byte 0x0000ff68 _08042D28: mov r0, r8 strh r0, [r2] b _08042D30 _08042D2E: movs r7, 0x1 _08042D30: ldr r2, [r6] adds r0, r2, 0 adds r0, 0xC adds r0, r4 ldr r0, [r0] adds r1, r4, 0 adds r1, 0x8C adds r2, r1 movs r1, 0 str r1, [sp] movs r3, 0 bl sub_800E8AC adds r4, 0x4 adds r5, 0x1 ldr r0, [r6] ldr r0, [r0, 0x8] cmp r5, r0 blt _08042CF4 _08042D56: ldr r0, _08042D74 ldr r0, [r0] ldr r1, _08042D78 adds r0, r1 bl sub_800E90C adds r0, r7, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08042D74: .4byte gUnknown_203B418 _08042D78: .4byte 0x000181f0 thumb_func_end sub_8042CC0 thumb_func_start sub_8042D7C sub_8042D7C: push {r4-r6,lr} ldr r1, _08042DD0 ldr r0, [r1] cmp r0, 0 beq _08042DCA movs r5, 0 ldr r0, [r0, 0x8] cmp r5, r0 bge _08042DBA adds r6, r1, 0 _08042D90: ldr r0, [r6] lsls r4, r5, 2 adds r0, 0xC adds r0, r4 ldr r0, [r0] bl sub_800E9A8 lsls r0, 24 cmp r0, 0 beq _08042DB0 ldr r0, [r6] adds r0, 0xC adds r0, r4 ldr r0, [r0] bl sub_800DC14 _08042DB0: adds r5, 0x1 ldr r0, [r6] ldr r0, [r0, 0x8] cmp r5, r0 blt _08042D90 _08042DBA: bl sub_800DBBC ldr r4, _08042DD0 ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08042DCA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08042DD0: .4byte gUnknown_203B414 thumb_func_end sub_8042D7C thumb_func_start sub_8042DD4 sub_8042DD4: push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 adds r7, r2, 0 movs r2, 0 ldr r0, _08042E04 mov r12, r0 ldr r3, _08042E08 _08042DE4: mov r1, r12 ldr r0, [r1] adds r4, r0, r3 ldr r1, [r4] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _08042E0C str r5, [r4] str r6, [r4, 0xC] str r7, [r4, 0x4] adds r0, r5, 0 bl sub_800E6D8 str r0, [r4, 0x8] b _08042E14 .align 2, 0 _08042E04: .4byte gUnknown_203B418 _08042E08: .4byte 0x000005c4 _08042E0C: adds r3, 0x10 adds r2, 0x1 cmp r2, 0x2 ble _08042DE4 _08042E14: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8042DD4 thumb_func_start sub_8042E1C sub_8042E1C: push {r4-r6,lr} movs r5, 0 ldr r6, _08042E44 ldr r4, _08042E48 _08042E24: ldr r0, [r6] adds r0, r4 ldr r1, [r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08042E4C adds r0, r1, 0 bl sub_800E9A8 lsls r0, 24 cmp r0, 0 beq _08042E4C movs r0, 0x1 b _08042E56 .align 2, 0 _08042E44: .4byte gUnknown_203B418 _08042E48: .4byte 0x000005c4 _08042E4C: adds r4, 0x10 adds r5, 0x1 cmp r5, 0x2 ble _08042E24 movs r0, 0 _08042E56: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8042E1C thumb_func_start sub_8042E5C sub_8042E5C: push {r4-r7,lr} ldr r7, _08042E90 ldr r6, _08042E94 movs r5, 0x2 _08042E64: ldr r0, [r7] adds r4, r0, r6 ldr r0, [r4] cmp r0, 0 blt _08042E82 bl sub_800E9A8 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08042E82 movs r0, 0x1 negs r0, r0 str r0, [r4] str r1, [r4, 0xC] _08042E82: adds r6, 0x10 subs r5, 0x1 cmp r5, 0 bge _08042E64 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08042E90: .4byte gUnknown_203B418 _08042E94: .4byte 0x000005c4 thumb_func_end sub_8042E5C thumb_func_start sub_8042E98 sub_8042E98: push {r4,r5,lr} ldr r5, _08042EC0 movs r4, 0x1 negs r4, r4 movs r3, 0 ldr r2, _08042EC4 movs r1, 0x2 _08042EA6: ldr r0, [r5] adds r0, r2 str r4, [r0] str r3, [r0, 0x4] str r3, [r0, 0xC] adds r2, 0x10 subs r1, 0x1 cmp r1, 0 bge _08042EA6 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08042EC0: .4byte gUnknown_203B418 _08042EC4: .4byte 0x000005c4 thumb_func_end sub_8042E98 thumb_func_start sub_8042EC8 sub_8042EC8: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r6, r0, 0 mov r8, r1 movs r7, 0 _08042ED6: ldr r1, _08042F5C lsls r0, r7, 4 ldr r2, _08042F60 adds r0, r2 ldr r1, [r1] adds r4, r1, r0 ldr r0, [r4] cmp r0, 0 blt _08042F4A ldr r0, [r4, 0xC] cmp r0, r6 bne _08042F4A ldr r0, [r6, 0xC] cmp r0, 0 bge _08042EF6 adds r0, 0xFF _08042EF6: lsls r0, 8 lsrs r0, 16 ldr r1, _08042F64 ldr r2, [sp, 0x8] ands r2, r1 orrs r2, r0 str r2, [sp, 0x8] ldr r1, [r6, 0x10] cmp r1, 0 bge _08042F0C adds r1, 0xFF _08042F0C: lsls r1, 8 lsrs r1, 16 lsls r1, 16 ldr r0, _08042F68 ands r2, r0 orrs r2, r1 str r2, [sp, 0x8] movs r0, 0 str r0, [sp, 0x4] ldr r5, [r6, 0x70] ldr r2, [r4, 0x8] subs r0, 0x1 cmp r2, r0 beq _08042F36 lsls r2, 24 lsrs r2, 24 add r0, sp, 0x4 adds r1, r6, 0 adds r1, 0x28 bl sub_800569C _08042F36: ldr r0, [r4] adds r1, r5, 0 adds r1, 0x46 ldrb r1, [r1] str r1, [sp] add r1, sp, 0x8 add r2, sp, 0x4 mov r3, r8 bl sub_800EB24 _08042F4A: adds r7, 0x1 cmp r7, 0x2 ble _08042ED6 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08042F5C: .4byte gUnknown_203B418 _08042F60: .4byte 0x000005c4 _08042F64: .4byte 0xffff0000 _08042F68: .4byte 0x0000ffff thumb_func_end sub_8042EC8 thumb_func_start xxx_dungeon_8042F6C xxx_dungeon_8042F6C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r8, r0 ldr r1, _0804310C movs r0, 0 strb r0, [r1] mov r0, r8 ldrb r6, [r0, 0x8] ldrb r1, [r0, 0x11] mov r9, r1 ldrb r2, [r0, 0x10] mov r10, r2 ldr r0, _08043110 mov r3, r8 ldr r1, [r3, 0x74] str r1, [r0] ldr r2, _08043114 ldr r0, [r3, 0x78] str r0, [r2] cmp r6, 0 bne _08042FA0 strb r6, [r1] _08042FA0: ldr r2, [r2] movs r1, 0 ldr r4, _08043118 ldr r5, _0804311C mov r0, sp adds r0, 0x4 str r0, [sp, 0x8] mov r3, r8 adds r3, 0x7C str r3, [sp, 0xC] movs r3, 0 _08042FB6: adds r0, r2, r1 strb r3, [r0] adds r1, 0x1 cmp r1, r4 bls _08042FB6 movs r7, 0 movs r0, 0x64 strh r0, [r5] cmp r6, 0 bne _0804300C ldr r4, _08043114 ldr r0, [r4] mov r5, r8 ldrb r1, [r5, 0xF] movs r2, 0xCF lsls r2, 3 adds r0, r2 strb r1, [r0] ldr r2, [r4] ldr r3, _08043120 adds r2, r3 ldr r0, [r5, 0x14] ldr r1, [r5, 0x18] str r0, [r2] str r1, [r2, 0x4] ldrb r0, [r5, 0x4] bl GetUnkC ldr r1, [r4] ldr r5, _08043124 adds r2, r1, r5 strh r0, [r2] ldr r0, _08043128 adds r1, r0 strb r7, [r1] mov r1, r8 ldrb r0, [r1, 0x4] bl GetUnk3 ldr r1, [r4] ldr r2, _0804312C adds r1, r2 strb r0, [r1] _0804300C: ldr r4, _08043114 ldr r0, [r4] movs r3, 0xD3 lsls r3, 3 adds r0, r3 strb r7, [r0] ldr r0, [r4] ldr r5, _08043130 adds r0, r5 strb r7, [r0] ldr r0, [r4] mov r2, r8 ldrb r1, [r2, 0x9] subs r3, 0x3C adds r0, r3 strb r1, [r0] ldr r0, [r4] ldrb r1, [r2, 0xC] subs r5, 0x3F adds r0, r5 strb r1, [r0] ldr r0, [r4] ldrb r1, [r2, 0xA] movs r2, 0xCB lsls r2, 3 adds r0, r2 strb r1, [r0] ldr r0, [r4] mov r3, r8 ldrb r1, [r3, 0xB] subs r5, 0x1 adds r0, r5 strb r1, [r0] ldr r0, [r4] ldrb r1, [r3, 0xD] adds r2, 0x3 adds r0, r2 strb r1, [r0] ldr r0, [r4] ldrb r1, [r3, 0xE] ldr r3, _08043134 adds r0, r3 strb r1, [r0] bl sub_8083F34 bl sub_803D4AC bl sub_804513C bl sub_8043CD8 bl sub_80495E4 bl sub_803E250 bl sub_8040130 bl sub_8040124 movs r0, 0x1 bl sub_803F27C ldr r1, _08043138 ldr r5, _0804313C adds r0, r5, 0 strh r0, [r1] movs r0, 0x1 movs r1, 0x14 bl sub_80095CC movs r0, 0 bl sub_800DAC0 movs r0, 0x1 bl xxx_update_some_bg_tiles bl sub_803DF60 bl sub_803E02C bl sub_8042E98 ldr r0, _08043140 strb r7, [r0] cmp r6, 0 beq _080430C8 ldr r0, _08043110 ldr r0, [r0] movs r1, 0x90 lsls r1, 7 bl sub_8081BF4 bl sub_8049840 _080430C8: mov r0, r9 cmp r0, 0 beq _080430D2 bl sub_8043D60 _080430D2: cmp r6, 0 beq _080430D8 b _080431DC _080430D8: ldr r0, [r4] ldr r1, _08043144 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] ldr r2, _08043148 adds r0, r2 strb r1, [r0] ldr r2, [r4] movs r3, 0xCF lsls r3, 3 adds r0, r2, r3 ldrb r3, [r0] cmp r3, 0x1 bne _08043154 mov r5, r8 ldrb r1, [r5, 0x14] ldr r5, _0804314C adds r0, r2, r5 strb r1, [r0] ldr r0, [r4] ldr r1, _08043150 adds r0, r1 strb r3, [r0] b _0804315E .align 2, 0 _0804310C: .4byte gUnknown_203B40C _08043110: .4byte gUnknown_203B41C _08043114: .4byte gUnknown_203B418 _08043118: .4byte 0x0001cedb _0804311C: .4byte gUnknown_203B410 _08043120: .4byte 0x0000064c _08043124: .4byte 0x00000666 _08043128: .4byte 0x0000067a _0804312C: .4byte 0x0000067b _08043130: .4byte 0x00000699 _08043134: .4byte 0x0000065d _08043138: .4byte gUnknown_2026E4E _0804313C: .4byte 0x00000808 _08043140: .4byte gUnknown_202F32C _08043144: .4byte 0x0001820b _08043148: .4byte 0x0001820c _0804314C: .4byte 0x00000644 _08043150: .4byte 0x00000645 _08043154: ldr r3, _0804318C adds r1, r2, r3 mov r5, r8 ldr r0, [r5, 0x4] str r0, [r1] _0804315E: ldr r4, _08043190 ldr r0, [r4] ldr r1, _08043194 adds r0, r1 movs r1, 0 strb r1, [r0] bl sub_8044124 cmp r6, 0 bne _080431DC ldr r1, [r4] movs r2, 0xCF lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 bne _0804319C ldr r3, _08043198 adds r1, r3 mov r5, r8 ldr r0, [r5, 0x18] str r0, [r1] b _080431AC .align 2, 0 _0804318C: .4byte 0x00000644 _08043190: .4byte gUnknown_203B418 _08043194: .4byte 0x00000674 _08043198: .4byte 0x0000067c _0804319C: bl Random ldr r2, [r4] ldr r1, _08043208 adds r2, r1 ldr r1, _0804320C ands r1, r0 str r1, [r2] _080431AC: ldr r4, _08043210 ldr r0, [r4] ldr r2, _08043208 adds r0, r2 ldr r0, [r0] bl sub_808408C cmp r6, 0 bne _080431DC bl sub_80980A4 lsls r0, 24 cmp r0, 0 bne _080431D8 ldr r0, [r4] ldr r3, _08043214 adds r0, r3 ldrb r0, [r0] cmp r0, 0 bne _080431D8 bl sub_8043FD0 _080431D8: bl sub_806890C _080431DC: mov r5, r9 cmp r5, 0 beq _08043230 ldr r1, _08043218 ldr r0, _08043210 ldr r0, [r0] ldr r2, _0804321C adds r0, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 str r0, [r1] cmp r0, 0 beq _08043224 ldr r0, _08043220 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _08043230 .align 2, 0 _08043208: .4byte 0x0000067c _0804320C: .4byte 0x00ffffff _08043210: .4byte gUnknown_203B418 _08043214: .4byte 0x00000644 _08043218: .4byte gUnknown_202DE30 _0804321C: .4byte 0x0000067b _08043220: .4byte gUnknown_80FEC48 _08043224: ldr r0, _080432B4 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _08043230: mov r3, r10 cmp r3, 0 beq _0804326A mov r1, r8 adds r1, 0x44 movs r0, 0 strb r0, [r1] ldr r0, _080432B8 ldr r0, [r0] ldr r5, _080432BC adds r0, r5 ldrb r0, [r0] bl GetLevelCondition lsls r0, 24 mov r4, r8 adds r4, 0x1C cmp r0, 0 beq _0804325C adds r0, r4, 0 bl sub_808D0D8 _0804325C: adds r0, r4, 0 bl sub_8068A84 cmp r6, 0 beq _0804326A bl sub_806B404 _0804326A: bl sub_8068614 cmp r6, 0 bne _080432F4 ldr r0, _080432B8 ldr r0, [r0] movs r1, 0xCF lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080432F4 mov r0, sp bl sub_8099394 lsls r0, 24 cmp r0, 0 beq _080432F4 mov r0, sp ldrb r0, [r0] bl sub_8095228 adds r2, r0, 0 adds r2, 0x2C movs r0, 0 ldrsb r0, [r2, r0] cmp r0, 0 beq _080432E8 ldr r1, _080432C0 str r0, [r1] ldr r0, _080432C4 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _080432F4 .align 2, 0 _080432B4: .4byte gUnknown_80FEC7C _080432B8: .4byte gUnknown_203B418 _080432BC: .4byte 0x00000644 _080432C0: .4byte gUnknown_202DE30 _080432C4: .4byte gUnknown_81002B8 _080432C8: ldr r4, _080432CC b _080432D2 .align 2, 0 _080432CC: .4byte 0x00000226 _080432D0: ldr r4, _080432E4 _080432D2: bl sub_8083600 adds r2, r0, 0 adds r0, r4, 0 movs r1, 0 bl sub_8083AB0 bl _08043AF4 .align 2, 0 _080432E4: .4byte 0x00000227 _080432E8: ldr r0, _080434B8 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _080432F4: movs r2, 0 mov r10, r2 movs r3, 0 mov r9, r3 _080432FC: bl sub_8098080 bl nullsub_16 bl sub_80521D0 bl sub_80531A8 bl sub_800F690 cmp r6, 0 bne _08043318 bl sub_804513C _08043318: ldr r0, _080434BC movs r5, 0 str r5, [r0] ldr r4, _080434C0 ldr r0, [r4] strb r5, [r0] cmp r6, 0 bne _08043346 bl sub_80840A4 ldr r1, [r4] movs r3, 0xD0 lsls r3, 3 adds r2, r1, r3 str r0, [r2] movs r0, 0xCD lsls r0, 3 adds r1, r0 movs r0, 0xA strh r0, [r1] ldr r0, [r2] bl sub_80840D8 _08043346: ldr r0, [r4] ldr r1, _080434C4 adds r0, r1 strb r5, [r0] cmp r6, 0 bne _08043390 ldr r0, [r4] ldr r2, _080434C8 adds r0, r2 strb r6, [r0] movs r0, 0x4 bl sub_8084100 ldr r1, [r4] ldr r3, _080434CC adds r1, r3 strb r6, [r1] ldr r1, [r4] ldr r2, _080434D0 adds r1, r2 strb r6, [r1] ldr r2, [r4] ldr r1, _080434D4 lsls r0, 1 adds r0, r1 ldrh r1, [r0] adds r3, 0x3 adds r0, r2, r3 strh r1, [r0] ldr r0, _080434D8 adds r2, r0 mov r1, r10 strb r1, [r2] ldr r0, [r4] ldr r2, _080434DC adds r0, r2 strb r1, [r0] _08043390: bl sub_803D4D0 ldr r0, [r4] strb r5, [r0, 0x1] ldr r0, [r4] strb r5, [r0, 0x10] ldr r0, [r4] strb r5, [r0, 0x2] ldr r0, [r4] strb r5, [r0, 0x4] ldr r0, [r4] strb r5, [r0, 0x11] ldr r0, [r4] strb r5, [r0, 0x8] ldr r0, [r4] strb r5, [r0, 0x3] ldr r0, [r4] strb r5, [r0, 0x6] ldr r0, [r4] strb r5, [r0, 0xF] ldr r2, [r4] movs r3, 0xB8 lsls r3, 3 adds r1, r2, r3 movs r0, 0x1 negs r0, r0 str r0, [r1] strb r5, [r2, 0x7] ldr r0, [r4] strb r5, [r0, 0x9] ldr r0, [r4] strb r5, [r0, 0xA] ldr r0, [r4] movs r1, 0x1 strb r1, [r0, 0xB] ldr r0, [r4] strb r1, [r0, 0xD] ldr r0, [r4] strb r5, [r0, 0xE] ldr r0, [r4] ldr r2, _080434E0 adds r0, r2 strb r5, [r0] cmp r6, 0 bne _080434A6 ldr r0, [r4] adds r3, 0xB9 adds r0, r3 strb r6, [r0] ldr r1, [r4] ldr r5, _080434E4 adds r0, r1, r5 str r6, [r0] movs r2, 0xD2 lsls r2, 3 adds r0, r1, r2 str r6, [r0] adds r3, 0x1B adds r0, r1, r3 str r6, [r0] subs r5, 0x2C adds r0, r1, r5 strh r6, [r0] subs r2, 0x2E adds r0, r1, r2 strh r6, [r0] subs r3, 0x26 adds r1, r3 mov r5, r10 strb r5, [r1] ldr r0, [r4] ldr r1, _080434E8 adds r0, r1 strb r5, [r0] ldr r0, [r4] adds r2, 0xE adds r0, r2 strb r5, [r0] ldr r0, [r4] adds r3, 0x8 adds r0, r3 strb r5, [r0] ldr r0, [r4] ldr r5, _080434EC adds r0, r5 mov r1, r10 strb r1, [r0] ldr r0, [r4] adds r2, 0x2 adds r0, r2 strb r1, [r0] ldr r1, [r4] subs r3, 0xC adds r2, r1, r3 ldr r0, _080434F0 strh r0, [r2] adds r5, 0x17 adds r0, r1, r5 strh r6, [r0] ldr r0, _080434F4 adds r1, r0 mov r2, r10 strb r2, [r1] ldr r1, [r4] adds r3, 0x1A adds r0, r1, r3 movs r2, 0x63 strh r2, [r0] subs r5, 0x2 adds r0, r1, r5 strh r2, [r0] ldr r0, _080434F8 adds r1, r0 mov r2, r10 strb r2, [r1] ldr r1, [r4] ldr r3, _080434FC adds r0, r1, r3 ldrb r2, [r0] ldr r5, _08043500 adds r0, r1, r5 strh r2, [r0] ldr r2, _08043504 adds r0, r1, r2 ldrb r2, [r0] ldr r3, _08043508 adds r0, r1, r3 strh r2, [r0] ldr r5, _0804350C adds r0, r1, r5 ldrb r0, [r0] ldr r2, _08043510 adds r1, r2 strh r0, [r1] movs r0, 0 bl sub_807E5E4 bl sub_80842F0 _080434A6: bl sub_803D8F0 bl sub_8068658 cmp r6, 0 bne _08043514 bl sub_80687AC b _0804351C .align 2, 0 _080434B8: .4byte gUnknown_81002D8 _080434BC: .4byte gUnknown_203B450 _080434C0: .4byte gUnknown_203B418 _080434C4: .4byte 0x000037ec _080434C8: .4byte 0x000037fc _080434CC: .4byte 0x000037fd _080434D0: .4byte 0x000037fe _080434D4: .4byte gUnknown_80F6850 _080434D8: .4byte 0x000037ff _080434DC: .4byte 0x00000675 _080434E0: .4byte 0x0001c05e _080434E4: .4byte 0x0000068c _080434E8: .4byte 0x0000066f _080434EC: .4byte 0x00000671 _080434F0: .4byte 0x000003e7 _080434F4: .4byte 0x0000068a _080434F8: .4byte 0x0000e264 _080434FC: .4byte 0x0001c576 _08043500: .4byte 0x00003a0e _08043504: .4byte 0x0001c577 _08043508: .4byte 0x00003a10 _0804350C: .4byte 0x0001c586 _08043510: .4byte 0x00003a14 _08043514: bl sub_8068768 bl sub_8082B40 _0804351C: bl sub_806C42C bl sub_806AD3C cmp r6, 0 bne _08043544 ldr r1, _080435B4 ldr r3, _080435B8 ldr r0, [r3] ldr r5, _080435BC adds r0, r5 movs r2, 0 ldrsh r0, [r0, r2] lsls r0, 1 adds r0, r1 ldrh r0, [r0] bl sub_8083E88 bl sub_80847D4 _08043544: bl sub_8049840 bl sub_803E178 ldr r0, _080435C0 mov r3, r9 str r3, [r0] bl sub_8040124 movs r0, 0x4 movs r1, 0 bl sub_803EAF0 movs r0, 0 bl sub_8052210 adds r0, r6, 0 bl sub_803F27C bl ShowDungeonNameBanner cmp r6, 0 bne _08043594 bl sub_804AFAC ldr r5, _080435B8 ldr r0, [r5] ldr r1, _080435C4 adds r0, r1 ldrb r0, [r0] bl GetUnkC ldr r2, [r5] ldr r3, _080435C8 adds r1, r2, r3 strh r0, [r1] ldr r5, _080435CC adds r2, r5 mov r0, r10 strb r0, [r2] _08043594: bl sub_804AAD4 bl sub_8049B8C bl sub_804966C cmp r6, 0 bne _080435D0 bl sub_806B168 bl sub_806C3C0 bl sub_806B6C4 b _080435D4 .align 2, 0 _080435B4: .4byte gUnknown_80F5668 _080435B8: .4byte gUnknown_203B418 _080435BC: .4byte 0x00003a10 _080435C0: .4byte gUnknown_202EDC8 _080435C4: .4byte 0x00000644 _080435C8: .4byte 0x00000666 _080435CC: .4byte 0x0000067a _080435D0: bl sub_806B678 _080435D4: ldr r4, _0804362C ldr r1, [r4] ldr r2, _08043630 adds r0, r1, r2 mov r3, r9 str r3, [r0] ldr r5, _08043634 adds r0, r1, r5 str r3, [r0] adds r2, 0x4 adds r0, r1, r2 str r3, [r0] ldr r3, _08043638 adds r0, r1, r3 mov r5, r9 str r5, [r0] adds r2, 0x4 adds r0, r1, r2 str r5, [r0] adds r3, 0x4 adds r1, r3 str r5, [r1] cmp r6, 0 bne _08043644 bl sub_807FA18 bl sub_8045CB0 ldr r1, [r4] ldr r5, _0804363C adds r2, r1, r5 ldr r3, _08043640 adds r0, r1, r3 ldr r0, [r0] str r0, [r2] subs r5, 0x4 adds r1, r5 str r6, [r1] bl sub_8051E3C bl sub_804AAAC b _08043648 .align 2, 0 _0804362C: .4byte gUnknown_203B418 _08043630: .4byte 0x00017b2c _08043634: .4byte 0x00017b38 _08043638: .4byte 0x00017b3c _0804363C: .4byte 0x00000694 _08043640: .4byte 0x0000068c _08043644: bl sub_806A338 _08043648: bl sub_8068F80 bl sub_8049884 bl sub_8049ED4 cmp r6, 0 bne _08043664 movs r0, 0x1 movs r1, 0 movs r2, 0 bl sub_806A914 b _0804366C _08043664: bl sub_806CF60 bl sub_806A974 _0804366C: movs r0, 0x1 bl sub_8041888 cmp r6, 0 bne _0804367E bl sub_80848F0 bl sub_8097890 _0804367E: ldr r0, _080436A0 movs r1, 0x1 strb r1, [r0] cmp r6, 0 beq _08043690 bl sub_807E88C bl sub_806AB2C _08043690: ldr r2, _080436A4 ldr r0, [r2] ldrb r0, [r0, 0x7] cmp r0, 0 bne _080436A8 bl sub_803E748 b _080436AC .align 2, 0 _080436A0: .4byte gUnknown_203B40C _080436A4: .4byte gUnknown_203B418 _080436A8: bl sub_803E7C8 _080436AC: movs r0, 0 bl sub_8040094 movs r0, 0 movs r1, 0 bl sub_803EAF0 adds r0, r6, 0 bl sub_8040150 bl sub_8040A84 ldr r4, _08043730 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xB8 mov r3, r9 str r3, [r0] ldr r5, _08043734 adds r1, r5 strb r3, [r1] ldr r0, [r4] ldr r1, _08043738 adds r0, r1 mov r2, r9 strb r2, [r0] ldr r1, [r4] movs r5, 0 movs r0, 0x63 strh r0, [r1, 0x12] movs r3, 0x1 strb r3, [r1] cmp r6, 0 bne _08043706 bl sub_8052DD0 ldr r1, [r4] ldrb r0, [r1, 0x9] cmp r0, 0 beq _08043706 strb r5, [r1, 0x9] bl sub_8083D68 bl sub_8052F80 _08043706: ldr r0, _0804373C mov r5, r9 str r5, [r0] ldr r4, _08043730 ldr r0, [r4] strb r5, [r0, 0x5] cmp r6, 0 bne _08043778 bl sub_8084B64 ldr r1, [r4] ldrb r0, [r1, 0x4] cmp r0, 0 bne _08043728 ldrb r0, [r1, 0x2] cmp r0, 0 beq _08043740 _08043728: movs r0, 0x1 strb r0, [r1, 0x5] b _0804374C .align 2, 0 _08043730: .4byte gUnknown_203B418 _08043734: .4byte 0x0000066c _08043738: .4byte 0x0000066d _0804373C: .4byte gUnknown_203B450 _08043740: bl sub_8083600 bl sub_803F4A0 bl sub_8040A84 _0804374C: cmp r6, 0 bne _08043778 ldr r1, _08043774 ldr r0, [r1] ldrb r0, [r0, 0x5] cmp r0, 0 bne _0804377C bl sub_807E5AC movs r0, 0 bl sub_807E580 lsls r0, 24 cmp r0, 0 beq _0804377C movs r0, 0x1 bl sub_807E7FC b _0804377C .align 2, 0 _08043774: .4byte gUnknown_203B418 _08043778: bl sub_8069E8C _0804377C: cmp r6, 0 beq _08043784 movs r6, 0 b _080437A2 _08043784: bl sub_80427AC bl sub_8083600 ldr r2, _08043960 ldr r1, [r2] ldr r3, _08043964 adds r1, r3 ldrb r1, [r1] bl sub_8075900 movs r0, 0x1 movs r1, 0 bl sub_807EAA0 _080437A2: bl nullsub_16 ldr r2, _08043960 ldr r0, [r2] ldrb r1, [r0, 0x5] cmp r1, 0 bne _080437DA movs r4, 0x1 ldr r5, _08043968 adds r0, r5 strb r1, [r0] ldr r0, [r2] ldr r3, _0804396C adds r0, r3 strb r1, [r0] ldr r0, [r2] ldr r5, _08043970 adds r0, r5 strb r4, [r0] _080437C8: adds r0, r4, 0 bl RunDungeon movs r4, 0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080437C8 _080437DA: bl sub_8083600 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080437F0 adds r0, r4, 0 bl sub_8071DA4 _080437F0: ldr r5, _08043960 ldr r0, [r5] ldr r4, _08043968 adds r0, r4 ldrb r0, [r0] cmp r0, 0x1 beq _08043822 movs r0, 0x1 bl sub_8043ED0 lsls r0, 24 cmp r0, 0 beq _08043812 ldr r0, [r5] adds r0, r4 movs r1, 0x1 strb r1, [r0] _08043812: ldr r1, [r5] adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0x1 beq _08043822 ldrb r0, [r1, 0x11] cmp r0, 0 beq _08043830 _08043822: ldr r2, _08043960 ldr r0, [r2] ldrb r0, [r0, 0x6] cmp r0, 0 bne _08043830 bl sub_806AA70 _08043830: bl sub_8083600 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0804384A movs r0, 0x4F bl sub_80526D0 movs r0, 0x4F bl sub_8052740 _0804384A: bl sub_8040124 movs r0, 0x1 movs r1, 0 bl sub_803EAF0 ldr r3, _08043960 ldr r0, [r3] ldr r5, _08043970 adds r0, r5 mov r1, r9 strb r1, [r0] ldr r0, [r3] ldr r2, _0804396C adds r0, r2 movs r3, 0x1 strb r3, [r0] ldr r5, _08043960 ldr r1, [r5] ldrb r0, [r1, 0x3] cmp r0, 0 bne _08043896 ldrb r0, [r1, 0x6] cmp r0, 0 bne _08043896 ldr r2, _08043974 adds r0, r1, r2 ldrh r0, [r0] cmp r0, 0x72 bne _08043896 ldr r3, _08043978 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0x1B bne _08043896 movs r0, 0x3C bl sub_8083ED8 _08043896: movs r0, 0x4 movs r1, 0x4F bl sub_803E708 ldr r5, _08043960 ldr r0, [r5] ldrb r0, [r0, 0x7] cmp r0, 0 bne _080438AC bl sub_803E830 _080438AC: movs r0, 0 bl SetBGOBJEnableFlags ldr r1, _0804397C ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0x60 orrs r0, r1 ldr r1, _08043980 ands r0, r1 movs r1, 0x80 lsls r1, 8 orrs r0, r1 ldr r1, _08043984 ands r0, r1 movs r1, 0xF8 lsls r1, 16 orrs r0, r1 str r0, [sp, 0x4] ldr r0, _08043988 ldr r2, [r0] movs r0, 0xFD ldr r1, [sp, 0x8] movs r3, 0 bl SetBGPaletteBufferColorRGB movs r0, 0x1 bl sub_8040094 ldr r0, [r5] ldr r1, _0804396C adds r0, r1 movs r7, 0 movs r2, 0x1 strb r2, [r0] ldr r1, [r5] ldrb r0, [r1, 0x10] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08043926 ldrb r0, [r1, 0x6] cmp r0, 0 beq _08043926 bl sub_8083600 adds r4, r0, 0 ldr r0, _0804398C ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage ldr r0, [r5] strb r7, [r0, 0x6] ldr r0, _08043990 adds r1, r4, 0 adds r2, r4, 0 bl sub_8083AB0 _08043926: bl sub_80688CC bl sub_8049820 ldr r0, _08043994 ldr r0, [r0] bl CloseFile bl sub_800F740 ldr r0, _08043998 mov r3, r10 strb r3, [r0] ldr r4, _08043960 ldr r1, [r4] ldrb r0, [r1, 0x3] cmp r0, 0 beq _0804394C b _08043BFC _0804394C: ldrb r0, [r1, 0x6] cmp r0, 0 beq _080439A0 ldr r0, _0804399C ldr r0, [r0] movs r1, 0x90 lsls r1, 7 bl sub_8080B30 b _080439A6 .align 2, 0 _08043960: .4byte gUnknown_203B418 _08043964: .4byte 0x00003a08 _08043968: .4byte 0x00000654 _0804396C: .4byte 0x00018218 _08043970: .4byte 0x00018219 _08043974: .4byte 0x0001ceda _08043978: .4byte 0x00000644 _0804397C: .4byte 0xffffff00 _08043980: .4byte 0xffff00ff _08043984: .4byte 0xff00ffff _08043988: .4byte gUnknown_202EDC8 _0804398C: .4byte gUnknown_81006A4 _08043990: .4byte 0x00000222 _08043994: .4byte gDungeonNameBannerPalette _08043998: .4byte gUnknown_203B40C _0804399C: .4byte gUnknown_203B41C _080439A0: movs r0, 0x2 bl sub_8046F84 _080439A6: bl sub_806C1D8 ldr r4, _080439CC ldr r1, [r4] ldr r5, _080439D0 adds r0, r1, r5 ldrb r0, [r0] cmp r0, 0x1 bne _080439D4 adds r5, 0x1A adds r0, r1, r5 ldrb r0, [r0] cmp r0, 0 bne _080439C4 b _08043AF4 _080439C4: bl sub_804700C b _08043AF4 .align 2, 0 _080439CC: .4byte gUnknown_203B418 _080439D0: .4byte 0x00000654 _080439D4: ldrb r0, [r1, 0x11] cmp r0, 0x1 bne _080439DC b _080432C8 _080439DC: cmp r0, 0x2 bne _08043A00 bl sub_8083600 adds r2, r0, 0 ldr r0, _080439F8 movs r1, 0 bl sub_8083AB0 ldr r0, [r4] ldr r1, _080439FC adds r0, r1 b _08043A62 .align 2, 0 _080439F8: .4byte 0x00000229 _080439FC: .4byte 0x0000066e _08043A00: cmp r0, 0x3 bne _08043A24 bl sub_8083600 adds r2, r0, 0 ldr r0, _08043A1C movs r1, 0 bl sub_8083AB0 ldr r0, [r4] ldr r2, _08043A20 adds r0, r2 b _08043A62 .align 2, 0 _08043A1C: .4byte 0x0000022a _08043A20: .4byte 0x0000066e _08043A24: cmp r0, 0x4 bne _08043A2A b _080432D0 _08043A2A: movs r3, 0xCF lsls r3, 3 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0x1 bne _08043A74 bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08043A74 ldr r0, [r4] adds r0, r5 ldrb r0, [r0] cmp r0, 0x2 bne _08043A74 bl sub_8083600 adds r2, r0, 0 movs r0, 0x8A lsls r0, 2 movs r1, 0 bl sub_8083AB0 ldr r0, [r4] ldr r5, _08043A70 adds r0, r5 _08043A62: ldrb r0, [r0] cmp r0, 0 beq _08043AF4 bl sub_8097810 b _08043AF4 .align 2, 0 _08043A70: .4byte 0x0000066e _08043A74: ldr r4, _08043ACC ldr r0, [r4] ldr r1, _08043AD0 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08043A86 bl sub_8097810 _08043A86: ldr r1, [r4] ldr r3, _08043AD4 adds r2, r1, r3 ldrb r0, [r2] adds r0, 0x1 ldr r5, _08043AD8 adds r1, r5 ldrb r1, [r1] cmp r0, r1 bge _08043AE4 strb r0, [r2] ldr r0, [r4] ldr r1, _08043ADC adds r0, r1 ldrh r1, [r0] ldr r0, _08043AE0 cmp r1, r0 beq _08043AAC b _080432FC _08043AAC: movs r0, 0x1F bl sub_8098100 lsls r0, 24 cmp r0, 0 beq _08043ABA b _080432FC _08043ABA: movs r0, 0x1F bl sub_8097FA8 bl sub_8086130 bl sub_8097FF8 b _080432FC .align 2, 0 _08043ACC: .4byte gUnknown_203B418 _08043AD0: .4byte 0x0000066e _08043AD4: .4byte 0x00000645 _08043AD8: .4byte 0x0001cec8 _08043ADC: .4byte 0x00000644 _08043AE0: .4byte 0x0000060b _08043AE4: ldr r4, _08043B80 bl sub_8083600 adds r2, r0, 0 adds r0, r4, 0 movs r1, 0 bl sub_8083AB0 _08043AF4: ldr r1, _08043B84 movs r0, 0 strb r0, [r1] mov r4, r8 adds r4, 0x7E movs r0, 0 strb r0, [r4] bl sub_8097FF8 movs r0, 0x1 movs r1, 0x14 bl sub_80095CC bl sub_803E13C movs r0, 0x4 bl sub_800CDA8 ldr r0, _08043B88 ldr r1, [r0] ldrb r0, [r1, 0x6] cmp r0, 0 bne _08043B38 movs r2, 0xCF lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] bl sub_8083C88 lsls r0, 24 cmp r0, 0 beq _08043B38 bl sub_80841EC _08043B38: bl sub_8083C24 lsls r0, 24 cmp r0, 0 beq _08043BA4 ldr r5, _08043B88 ldr r0, [r5] ldrb r0, [r0, 0x6] cmp r0, 0 beq _08043B98 ldr r0, _08043B8C ldr r3, [sp, 0xC] strh r0, [r3] mov r4, r8 adds r4, 0x84 adds r0, r4, 0 movs r1, 0 movs r2, 0x8 bl memset mov r3, r8 adds r3, 0x80 ldr r1, [r5] ldr r5, _08043B90 adds r2, r1, r5 ldr r0, [r2] str r0, [r3] ldr r0, [r2] str r0, [r4] mov r2, r8 adds r2, 0x88 ldr r0, _08043B94 adds r1, r0 ldr r0, [r1] str r0, [r2] b _08043C32 .align 2, 0 _08043B80: .4byte 0x00000227 _08043B84: .4byte gUnknown_203B40C _08043B88: .4byte gUnknown_203B418 _08043B8C: .4byte 0x0000fffe _08043B90: .4byte 0x00000644 _08043B94: .4byte 0x0000067c _08043B98: ldr r0, _08043BA0 ldr r1, [sp, 0xC] strh r0, [r1] b _08043C32 .align 2, 0 _08043BA0: .4byte 0x0000ffff _08043BA4: bl sub_8083C50 lsls r0, 24 cmp r0, 0 beq _08043C28 ldr r0, _08043BC8 ldr r0, [r0] movs r2, 0xCF lsls r2, 3 adds r0, r2 ldrb r0, [r0] cmp r0, 0x1 bne _08043BCC movs r0, 0x4 ldr r3, [sp, 0xC] strh r0, [r3] b _08043BE6 .align 2, 0 _08043BC8: .4byte gUnknown_203B418 _08043BCC: cmp r0, 0 bne _08043BDC movs r0, 0x1 ldr r5, [sp, 0xC] strh r0, [r5] bl sub_8084424 b _08043BE6 _08043BDC: movs r0, 0x1 ldr r1, [sp, 0xC] strh r0, [r1] bl sub_8084424 _08043BE6: ldr r0, _08043BF4 ldr r0, [r0] ldr r2, _08043BF8 adds r0, r2 ldrb r0, [r0] strb r0, [r4] b _08043C32 .align 2, 0 _08043BF4: .4byte gUnknown_203B418 _08043BF8: .4byte 0x00000674 _08043BFC: ldr r0, _08043C20 ldr r0, [r0] movs r1, 0x90 lsls r1, 7 bl sub_8080B30 movs r0, 0x3 ldr r3, [sp, 0xC] strh r0, [r3] mov r1, r8 adds r1, 0x80 ldr r0, [r4] ldr r5, _08043C24 adds r0, r5 ldr r0, [r0] str r0, [r1] b _08043C32 .align 2, 0 _08043C20: .4byte gUnknown_203B41C _08043C24: .4byte 0x00000644 _08043C28: movs r0, 0x2 ldr r1, [sp, 0xC] strh r0, [r1] bl sub_8084424 _08043C32: bl sub_806863C bl sub_803E214 bl nullsub_56 bl sub_8040218 ldr r2, [sp, 0xC] movs r3, 0 ldrsh r0, [r2, r3] cmp r0, 0x1 beq _08043C54 cmp r0, 0x4 beq _08043C54 cmp r0, 0x2 bne _08043C58 _08043C54: bl sub_8047104 _08043C58: ldr r5, [sp, 0xC] movs r0, 0 ldrsh r1, [r5, r0] cmp r1, 0x1 beq _08043C8A movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _08043C78 cmp r1, 0x4 beq _08043C78 adds r0, 0x1 cmp r1, r0 beq _08043C78 cmp r1, 0x2 bne _08043CAC _08043C78: ldr r2, [sp, 0xC] movs r3, 0 ldrsh r1, [r2, r3] cmp r1, 0x1 beq _08043C8A cmp r1, 0x4 beq _08043C8A cmp r1, 0x2 bne _08043C92 _08043C8A: movs r0, 0x1 bl sub_8068BDC b _08043CAC _08043C92: movs r0, 0x2 negs r0, r0 cmp r1, r0 bne _08043CA2 movs r0, 0 bl sub_8068BDC b _08043CAC _08043CA2: bl sub_8068F28 movs r0, 0 bl sub_8068BDC _08043CAC: bl sub_800DB7C ldr r0, _08043CD0 movs r1, 0 str r1, [r0] ldr r0, _08043CD4 str r1, [r0] bl nullsub_16 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08043CD0: .4byte gUnknown_203B418 _08043CD4: .4byte gUnknown_203B41C thumb_func_end xxx_dungeon_8042F6C thumb_func_start sub_8043CD8 sub_8043CD8: push {lr} bl sub_8009804 pop {r0} bx r0 thumb_func_end sub_8043CD8 thumb_func_start sub_8043CE4 sub_8043CE4: push {lr} adds r1, r0, 0 ldr r0, _08043CF4 ldrb r0, [r0] cmp r0, 0 beq _08043CF8 movs r0, 0x1 b _08043D08 .align 2, 0 _08043CF4: .4byte gUnknown_202F1A8 _08043CF8: movs r2, 0 ldr r0, _08043D0C adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0x2 bne _08043D06 movs r2, 0x1 _08043D06: adds r0, r2, 0 _08043D08: pop {r1} bx r1 .align 2, 0 _08043D0C: .4byte gUnknown_810ACC0 thumb_func_end sub_8043CE4 thumb_func_start sub_8043D10 sub_8043D10: push {lr} ldr r0, _08043D38 ldr r1, [r0] movs r2, 0xCF lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 bne _08043D3C subs r2, 0x2B adds r0, r1, r2 subs r2, 0x8 adds r1, r2 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bne _08043D3C movs r0, 0x2 b _08043D4C .align 2, 0 _08043D38: .4byte gUnknown_203B418 _08043D3C: bl sub_80441BC lsls r0, 24 cmp r0, 0 bne _08043D4A movs r0, 0 b _08043D4C _08043D4A: movs r0, 0x1 _08043D4C: pop {r1} bx r1 thumb_func_end sub_8043D10 thumb_func_start sub_8043D50 sub_8043D50: ldr r2, _08043D5C str r2, [r1] movs r1, 0x90 lsls r1, 7 str r1, [r0] bx lr .align 2, 0 _08043D5C: .4byte 0x0001cedc thumb_func_end sub_8043D50 thumb_func_start sub_8043D60 sub_8043D60: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r5, 0 _08043D6A: ldr r0, _08043DA4 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08043DA8 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08043DCE ldr r2, [r4, 0x70] movs r1, 0x1 ldrb r0, [r2, 0x8] eors r0, r1 negs r1, r0 orrs r1, r0 lsrs r1, 31 adds r0, r2, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08043DA0 cmp r0, 0x47 bne _08043DAC _08043DA0: movs r0, 0x1 b _08043DAE .align 2, 0 _08043DA4: .4byte gUnknown_203B418 _08043DA8: .4byte 0x0001358c _08043DAC: movs r0, 0 _08043DAE: cmp r0, 0 beq _08043DB4 movs r1, 0 _08043DB4: adds r0, r2, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _08043DC0 movs r1, 0 _08043DC0: cmp r1, 0 beq _08043DCE adds r0, r4, 0 ldr r1, _08043EC0 adds r2, r4, 0 bl sub_8068FE0 _08043DCE: adds r5, 0x1 cmp r5, 0xF ble _08043D6A movs r5, 0 ldr r0, _08043EC4 mov r9, r0 mov r8, r5 _08043DDC: mov r1, r9 ldr r0, [r1] lsls r1, r5, 2 ldr r2, _08043EC8 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 adds r7, r5, 0x1 cmp r0, 0 beq _08043E62 adds r0, r4, 0 adds r0, 0x22 mov r1, r8 strb r1, [r0] adds r1, r4, 0 adds r1, 0x20 movs r0, 0x1 strb r0, [r1] ldr r4, [r4, 0x70] ldrh r0, [r4, 0x10] strh r0, [r4, 0xE] movs r2, 0x9E lsls r2, 1 adds r1, r4, r2 adds r2, 0x4 adds r0, r4, r2 ldr r0, [r0] str r0, [r1] mov r1, r9 ldr r0, [r1] ldr r2, _08043ECC adds r0, r2 mov r1, r8 strb r1, [r0] adds r0, r4, 0 movs r1, 0 bl sub_806BFC0 ldrh r0, [r4, 0x2] strh r0, [r4, 0x4] adds r0, r4, 0 adds r0, 0xFD mov r2, r8 strb r2, [r0] movs r0, 0x8C lsls r0, 1 adds r5, r4, r0 adds r4, r5, 0 movs r6, 0x3 _08043E46: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08043E58 adds r0, r5, 0 bl sub_8092BF4 strb r0, [r4, 0x4] _08043E58: adds r4, 0x8 adds r5, 0x8 subs r6, 0x1 cmp r6, 0 bge _08043E46 _08043E62: adds r5, r7, 0 cmp r5, 0x3 ble _08043DDC movs r6, 0 _08043E6A: movs r5, 0 adds r7, r6, 0x1 _08043E6E: adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 ldr r4, [r0, 0x14] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08043EA0 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 bne _08043EA0 adds r0, r4, 0 bl sub_8045104 adds r1, r0, 0 ldrb r0, [r1] cmp r0, 0x1B bne _08043EA0 movs r0, 0x5 strb r0, [r1] _08043EA0: adds r5, 0x1 cmp r5, 0x37 ble _08043E6E adds r6, r7, 0 cmp r6, 0x1F ble _08043E6A movs r0, 0x2 bl sub_8046F84 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08043EC0: .4byte 0x00000207 _08043EC4: .4byte gUnknown_203B418 _08043EC8: .4byte 0x0001357c _08043ECC: .4byte 0x00000676 thumb_func_end sub_8043D60 thumb_func_start sub_8043ED0 sub_8043ED0: push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r7, 0 cmp r5, 0 bne _08043EEA bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08043EEA movs r0, 0 b _08043FB8 _08043EEA: ldr r6, _08043F2C ldr r0, [r6] ldrb r0, [r0, 0x10] cmp r0, 0x1 bne _08043F40 bl sub_8083600 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08043FB6 cmp r5, 0 bne _08043F20 ldr r0, _08043F30 ldr r1, [r6] ldr r2, _08043F34 adds r1, r2 bl strcpy ldr r0, _08043F38 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _08043F20: adds r0, r4, 0 bl sub_8042B0C ldr r1, _08043F3C b _08043FAC .align 2, 0 _08043F2C: .4byte gUnknown_203B418 _08043F30: .4byte gUnknown_202DF98 _08043F34: .4byte 0x000005f4 _08043F38: .4byte gUnknown_80F89B4 _08043F3C: .4byte 0x0000021f _08043F40: cmp r0, 0x2 bne _08043F74 bl sub_8083600 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08043FB6 cmp r5, 0 bne _08043FA4 ldr r0, _08043F68 ldr r1, [r6] ldr r2, _08043F6C adds r1, r2 bl strcpy ldr r0, _08043F70 b _08043F9A .align 2, 0 _08043F68: .4byte gUnknown_202DF98 _08043F6C: .4byte 0x000005f4 _08043F70: .4byte gUnknown_80F89D4 _08043F74: cmp r0, 0x3 bne _08043FB6 bl sub_8083600 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08043FB6 cmp r5, 0 bne _08043FA4 ldr r0, _08043FC0 ldr r1, [r6] ldr r2, _08043FC4 adds r1, r2 bl strcpy ldr r0, _08043FC8 _08043F9A: ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _08043FA4: adds r0, r4, 0 bl sub_8042B0C ldr r1, _08043FCC _08043FAC: adds r0, r4, 0 adds r2, r4, 0 bl sub_8068FE0 movs r7, 0x1 _08043FB6: adds r0, r7, 0 _08043FB8: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08043FC0: .4byte gUnknown_202DF98 _08043FC4: .4byte 0x000005f4 _08043FC8: .4byte gUnknown_80F89D8 _08043FCC: .4byte 0x00000222 thumb_func_end sub_8043ED0 thumb_func_start sub_8043FD0 sub_8043FD0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x44 movs r0, 0x2 mov r9, r0 movs r1, 0x1 mov r10, r1 movs r0, 0xFF mov r8, r0 _08043FE8: movs r3, 0 mov r1, r9 adds r1, 0x1 str r1, [sp, 0x3C] _08043FF0: ldr r2, _080440E4 movs r0, 0x58 adds r1, r3, 0 muls r1, r0 ldr r0, [r2] adds r4, r0, r1 ldrh r1, [r4] mov r0, r10 ands r0, r1 adds r3, 0x1 str r3, [sp, 0x40] cmp r0, 0 beq _080440FE lsrs r0, r1, 1 mov r1, r10 ands r0, r1 cmp r0, 0 beq _080440FE add r5, sp, 0x20 movs r0, 0x8 ldrsh r1, [r4, r0] adds r0, r5, 0 mov r2, r9 bl sub_808E010 mov r1, r9 strb r1, [r4, 0x3] ldr r0, [sp, 0x20] str r0, [r4, 0x1C] ldrh r0, [r5, 0x4] ldrh r1, [r4, 0x16] adds r0, r1 movs r2, 0 strh r0, [r4, 0x16] lsls r0, 16 ldr r1, _080440E8 cmp r0, r1 ble _08044040 ldr r0, _080440EC strh r0, [r4, 0x16] _08044040: ldrb r0, [r4, 0x18] str r0, [sp, 0x2C] ldrb r0, [r4, 0x19] str r0, [sp, 0x30] ldrb r0, [r4, 0x1A] str r0, [sp, 0x34] ldrb r0, [r4, 0x1B] str r0, [sp, 0x38] ldrb r1, [r5, 0x6] ldr r0, [sp, 0x2C] adds r0, r1 str r0, [sp, 0x2C] ldrb r1, [r5, 0x7] ldr r0, [sp, 0x30] adds r0, r1 str r0, [sp, 0x30] ldrb r1, [r5, 0x8] ldr r0, [sp, 0x34] adds r0, r1 str r0, [sp, 0x34] ldrb r1, [r5, 0x9] ldr r0, [sp, 0x38] adds r0, r1 str r0, [sp, 0x38] ldr r0, [sp, 0x2C] cmp r0, 0xFE ble _0804407A mov r0, r8 str r0, [sp, 0x2C] _0804407A: ldr r0, [sp, 0x30] cmp r0, 0xFE ble _08044084 mov r1, r8 str r1, [sp, 0x30] _08044084: ldr r0, [sp, 0x34] cmp r0, 0xFE ble _0804408E mov r0, r8 str r0, [sp, 0x34] _0804408E: ldr r0, [sp, 0x38] cmp r0, 0xFE ble _08044098 mov r1, r8 str r1, [sp, 0x38] _08044098: ldr r0, [sp, 0x2C] strb r0, [r4, 0x18] ldr r0, [sp, 0x30] strb r0, [r4, 0x19] ldr r0, [sp, 0x34] strb r0, [r4, 0x1A] ldr r0, [sp, 0x38] strb r0, [r4, 0x1B] movs r0, 0x8 ldrsh r1, [r4, r0] ldrb r2, [r4, 0x3] mov r0, sp ldr r3, _080440EC bl sub_808E0AC adds r6, r0, 0 cmp r6, 0 beq _080440FE movs r0, 0 cmp r0, r6 bge _080440FE _080440C2: movs r3, 0 adds r7, r0, 0x1 lsls r0, 1 mov r1, sp adds r5, r1, r0 adds r2, r4, 0 adds r2, 0x2C _080440D0: ldrb r1, [r2] mov r0, r10 ands r0, r1 cmp r0, 0 bne _080440F0 ldrh r1, [r5] adds r0, r2, 0 bl sub_8092AD4 b _080440F8 .align 2, 0 _080440E4: .4byte gUnknown_203B45C _080440E8: .4byte 0x03e60000 _080440EC: .4byte 0x000003e7 _080440F0: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _080440D0 _080440F8: adds r0, r7, 0 cmp r0, r6 blt _080440C2 _080440FE: ldr r3, [sp, 0x40] movs r0, 0xCE lsls r0, 1 cmp r3, r0 bgt _0804410A b _08043FF0 _0804410A: ldr r0, [sp, 0x3C] mov r9, r0 cmp r0, 0x5 bgt _08044114 b _08043FE8 _08044114: add sp, 0x44 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8043FD0 thumb_func_start sub_8044124 sub_8044124: push {r4,r5,lr} ldr r0, _080441AC ldr r0, [r0] ldr r1, _080441B0 adds r0, r1 ldrb r0, [r0] bl GetMaxItemCount cmp r0, 0 bne _08044182 movs r3, 0 ldr r4, _080441B4 movs r2, 0 _0804413E: lsls r1, r3, 2 ldr r0, [r4] adds r1, r0 strb r2, [r1, 0x2] strb r2, [r1, 0x1] strb r2, [r1] adds r3, 0x1 cmp r3, 0x13 ble _0804413E movs r3, 0 ldr r5, _080441B8 movs r4, 0x1 _08044156: movs r0, 0x58 adds r1, r3, 0 muls r1, r0 ldr r0, [r5] adds r1, r0, r1 ldrh r2, [r1] adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _08044178 lsrs r0, r2, 1 ands r0, r4 cmp r0, 0 beq _08044178 adds r1, 0x28 movs r0, 0 strb r0, [r1] _08044178: adds r3, 0x1 movs r0, 0xCE lsls r0, 1 cmp r3, r0 ble _08044156 _08044182: ldr r0, _080441AC ldr r0, [r0] ldr r2, _080441B0 adds r0, r2 ldrb r0, [r0] bl GetMoneyCondition lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080441A4 ldr r0, _080441B4 ldr r0, [r0] movs r2, 0x98 lsls r2, 2 adds r0, r2 str r1, [r0] _080441A4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080441AC: .4byte gUnknown_203B418 _080441B0: .4byte 0x00000644 _080441B4: .4byte gUnknown_203B460 _080441B8: .4byte gUnknown_203B45C thumb_func_end sub_8044124 thumb_func_start sub_80441BC sub_80441BC: push {lr} ldr r0, _080441D8 ldr r0, [r0] ldr r1, _080441DC adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _080441E0 cmp r0, 0x31 bgt _080441E0 movs r0, 0x1 b _080441E2 .align 2, 0 _080441D8: .4byte gUnknown_203B418 _080441DC: .4byte 0x00003a14 _080441E0: movs r0, 0 _080441E2: pop {r1} bx r1 thumb_func_end sub_80441BC thumb_func_start sub_80441E8 sub_80441E8: push {lr} ldr r0, _08044200 ldr r0, [r0] ldr r1, _08044204 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x3F bgt _08044208 movs r0, 0 b _0804420A .align 2, 0 _08044200: .4byte gUnknown_203B418 _08044204: .4byte 0x00003a0e _08044208: movs r0, 0x1 _0804420A: pop {r1} bx r1 thumb_func_end sub_80441E8 thumb_func_start sub_8044210 sub_8044210: push {lr} ldr r0, _0804422C ldr r0, [r0] ldr r1, _08044230 adds r0, r1 ldrb r0, [r0] subs r0, 0x4B lsls r0, 24 lsrs r0, 24 cmp r0, 0x16 bls _08044234 movs r0, 0 b _08044236 .align 2, 0 _0804422C: .4byte gUnknown_203B418 _08044230: .4byte 0x00000644 _08044234: movs r0, 0x1 _08044236: pop {r1} bx r1 thumb_func_end sub_8044210 thumb_func_start RunDungeon RunDungeon: push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080442C6 bl sub_8044994 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080442C6 adds r0, r4, 0 bl xxx_dungeon_80442D0 lsls r0, 24 lsrs r4, r0, 24 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080442C6 cmp r4, 0 beq _08044280 bl sub_807E378 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080442C6 _08044280: bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080442C6 bl sub_8044574 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080442C6 bl sub_8044820 bl sub_8044B28 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080442C6 bl sub_8044AB4 ldr r0, _080442CC ldr r0, [r0] movs r2, 0xCC lsls r2, 3 adds r1, r0, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0x18 bne _080442C6 strh r4, [r1] _080442C6: pop {r4} pop {r0} bx r0 .align 2, 0 _080442CC: .4byte gUnknown_203B418 thumb_func_end RunDungeon thumb_func_start xxx_dungeon_80442D0 xxx_dungeon_80442D0: push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 bl sub_8083600 adds r5, r0, 0 cmp r5, 0 beq _0804431A bl sub_8069E8C adds r0, r5, 0 bl sub_8070774 ldr r3, _08044320 ldr r1, _08044324 ldr r1, [r1] movs r2, 0xCC lsls r2, 3 adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] lsls r1, 1 movs r2, 0x32 muls r0, r2 adds r1, r0 adds r1, r3 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 beq _0804431A ldr r0, [r5, 0x70] movs r1, 0xA4 lsls r1, 1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08044328 _0804431A: movs r0, 0 b _0804444E .align 2, 0 _08044320: .4byte gUnknown_80F6860 _08044324: .4byte gUnknown_203B418 _08044328: bl sub_8083600 adds r5, r0, 0 cmp r5, 0 beq _0804431A movs r0, 0 bl sub_807520C lsls r0, 24 cmp r0, 0 bne _0804435C ldr r0, _08044388 ldr r1, [r0] ldr r2, _0804438C adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08044356 ldr r3, _08044390 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _0804435C _08044356: movs r0, 0xC bl sub_803E46C _0804435C: ldr r0, [r5, 0x70] adds r0, 0xF8 movs r1, 0 strb r1, [r0] bl sub_8044B28 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0804431A ldr r0, _08044388 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xB8 str r5, [r0] adds r1, 0xBC str r2, [r1] cmp r7, 0 beq _08044394 movs r7, 0 b _0804439A .align 2, 0 _08044388: .4byte gUnknown_203B418 _0804438C: .4byte 0x0000066c _08044390: .4byte 0x00000673 _08044394: adds r0, r5, 0 bl sub_8074B54 _0804439A: bl sub_8044B28 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0804431A adds r0, r5, 0 bl sub_8071DA4 ldr r6, _08044434 ldr r1, [r6] movs r0, 0x1 strb r0, [r1, 0xF] bl sub_805D8C8 ldr r0, [r6] strb r4, [r0, 0xF] bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0804444C adds r0, r5, 0 bl sub_8072CF4 bl sub_8086AC0 movs r0, 0 bl sub_8043ED0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0804444C ldr r2, [r5, 0x70] ldrh r1, [r2] movs r3, 0x80 lsls r3, 8 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08044400 subs r3, 0x1 adds r0, r3, 0 ands r0, r1 movs r3, 0x80 lsls r3, 7 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] _08044400: bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0804444C bl sub_8044454 bl sub_8044B28 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0804444C ldr r2, [r6] adds r0, r2, 0 adds r0, 0xBC ldr r1, [r0] cmp r1, 0 beq _08044438 bl sub_805F02C ldr r0, [r6] adds r0, 0xBC str r4, [r0] movs r7, 0x1 b _08044328 .align 2, 0 _08044434: .4byte gUnknown_203B418 _08044438: ldr r0, [r5, 0x70] adds r0, 0xF8 ldrb r0, [r0] cmp r0, 0 beq _0804444C movs r3, 0xCC lsls r3, 3 adds r0, r2, r3 strh r1, [r0] b _08044328 _0804444C: movs r0, 0x1 _0804444E: pop {r4-r7} pop {r1} bx r1 thumb_func_end xxx_dungeon_80442D0 thumb_func_start sub_8044454 sub_8044454: push {r4-r6,lr} ldr r0, _080444E8 ldr r1, [r0] ldrb r0, [r1, 0xE] cmp r0, 0 beq _080444E2 movs r0, 0 strb r0, [r1, 0xE] movs r6, 0 _08044466: ldr r0, _080444E8 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _080444EC adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080444DC ldr r5, [r4, 0x70] ldrh r0, [r5] movs r2, 0x80 lsls r2, 8 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _080444DC bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080444E2 adds r0, r4, 0 bl sub_8074B54 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080444DC adds r0, r4, 0 bl sub_8071DA4 adds r0, r4, 0 movs r1, 0 bl sub_8075990 adds r0, r4, 0 bl sub_8072CF4 bl sub_8086AC0 movs r0, 0 bl sub_8043ED0 ldrh r0, [r5] ldr r2, _080444F0 adds r1, r2, 0 ands r0, r1 movs r2, 0x80 lsls r2, 7 adds r1, r2, 0 orrs r0, r1 strh r0, [r5] _080444DC: adds r6, 0x1 cmp r6, 0x13 ble _08044466 _080444E2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080444E8: .4byte gUnknown_203B418 _080444EC: .4byte 0x000135cc _080444F0: .4byte 0x00007fff thumb_func_end sub_8044454 thumb_func_start sub_80444F4 sub_80444F4: push {r4-r6,lr} adds r6, r0, 0 bl sub_8083600 cmp r6, r0 bne _08044566 ldr r0, _0804456C ldr r1, [r0] ldrb r0, [r1, 0xE] cmp r0, 0 beq _08044566 movs r0, 0 strb r0, [r1, 0xE] movs r5, 0 _08044510: ldr r0, _0804456C ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08044570 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08044560 cmp r6, r4 beq _08044560 ldr r0, [r4, 0x70] ldrh r0, [r0] movs r2, 0x80 lsls r2, 8 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _08044560 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08044566 adds r0, r4, 0 movs r1, 0 bl sub_8075990 adds r0, r4, 0 bl sub_8072CF4 bl sub_8086AC0 movs r0, 0 bl sub_8043ED0 _08044560: adds r5, 0x1 cmp r5, 0x13 ble _08044510 _08044566: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804456C: .4byte gUnknown_203B418 _08044570: .4byte 0x000135cc thumb_func_end sub_80444F4 thumb_func_start sub_8044574 sub_8044574: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x44 bl sub_8083600 mov r10, r0 movs r7, 0 mov r0, sp adds r0, 0x4 str r0, [sp, 0x40] ldr r1, _08044634 mov r9, r1 _08044592: mov r2, r9 ldr r0, [r2] lsls r1, r7, 2 ldr r3, _08044638 adds r0, r3 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080446A4 ldr r6, [r5, 0x70] mov r8, r6 ldrb r0, [r6, 0x7] cmp r0, 0 bne _080446A4 bl sub_8044B28 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080446AC mov r1, r9 ldr r0, [r1] adds r0, 0xB8 str r5, [r0] bl sub_8069E8C movs r2, 0xA2 lsls r2, 1 adds r0, r6, r2 strb r4, [r0] adds r0, r5, 0 bl sub_8070774 mov r3, r9 ldr r1, [r3] movs r2, 0xCC lsls r2, 3 adds r1, r2 movs r3, 0 ldrsh r1, [r1, r3] lsls r1, 1 movs r2, 0x32 muls r0, r2 adds r1, r0 ldr r0, _0804463C adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _080446A4 movs r3, 0xA4 lsls r3, 1 adds r0, r6, r3 ldrb r0, [r0] cmp r0, 0 bne _080446A4 ldrh r1, [r6] movs r2, 0x80 lsls r2, 8 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080446A4 movs r3, 0x80 lsls r3, 7 adds r0, r3, 0 ands r0, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _08044644 ldr r2, _08044640 adds r0, r2, 0 ands r0, r1 strh r0, [r6] b _080446A4 .align 2, 0 _08044634: .4byte gUnknown_203B418 _08044638: .4byte 0x0001357c _0804463C: .4byte gUnknown_80F6860 _08044640: .4byte 0x0000bfff _08044644: ldr r1, _08044668 add r1, r8 strb r0, [r1] adds r0, r5, 0 bl sub_8074B54 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080446A4 adds r0, r5, 0 bl sub_8071DA4 movs r4, 0 b _0804466E .align 2, 0 _08044668: .4byte 0x00000145 _0804466C: adds r4, 0x1 _0804466E: cmp r4, 0x2 bgt _080446A4 adds r0, r5, 0 movs r1, 0 bl sub_8075990 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080446A4 adds r0, r5, 0 bl sub_8072CF4 lsls r0, 24 cmp r0, 0 beq _080446A4 bl sub_8086AC0 movs r0, 0 bl sub_8043ED0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0804466C _080446A4: adds r7, 0x1 cmp r7, 0x3 bgt _080446AC b _08044592 _080446AC: movs r0, 0 mov r8, r0 _080446B0: adds r0, 0x1 mov r9, r0 add r2, sp, 0x8 ldr r1, [sp, 0x40] mov r0, sp movs r7, 0x2 _080446BC: mov r3, r8 str r3, [r0] str r2, [r1] adds r2, 0x8 adds r1, 0x8 adds r0, 0x8 subs r7, 0x1 cmp r7, 0 bge _080446BC str r3, [sp, 0x18] str r3, [sp, 0x1C] movs r7, 0 _080446D4: ldr r0, _08044710 ldr r0, [r0] lsls r1, r7, 2 ldr r2, _08044714 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08044760 ldr r1, [r4, 0x70] movs r3, 0xA2 lsls r3, 1 adds r2, r1, r3 ldrb r0, [r2] cmp r0, 0 beq _08044760 ldrb r0, [r1, 0x7] cmp r0, 0 beq _08044718 adds r3, 0x1 adds r0, r1, r3 mov r1, r8 strb r1, [r0] strb r1, [r2] b _08044760 .align 2, 0 _08044710: .4byte gUnknown_203B418 _08044714: .4byte 0x0001357c _08044718: mov r2, r10 movs r3, 0x4 ldrsh r1, [r2, r3] movs r2, 0x4 ldrsh r0, [r4, r2] subs r2, r1, r0 cmp r2, 0 bge _0804472A negs r2, r2 _0804472A: mov r3, r10 movs r0, 0x6 ldrsh r1, [r3, r0] movs r3, 0x6 ldrsh r0, [r4, r3] subs r1, r0 cmp r1, 0 bge _0804473C negs r1, r1 _0804473C: cmp r1, r2 bge _08044742 adds r1, r2, 0 _08044742: cmp r1, 0x2 ble _08044748 movs r1, 0x2 _08044748: add r3, sp, 0x20 lsls r0, r7, 3 adds r3, r0 str r4, [r3] add r2, sp, 0x24 adds r2, r0 lsls r1, 3 ldr r0, [sp, 0x40] adds r1, r0, r1 ldr r0, [r1] str r0, [r2] str r3, [r1] _08044760: adds r7, 0x1 cmp r7, 0x3 ble _080446D4 mov r5, sp movs r6, 0 _0804476A: ldr r4, [r5] cmp r4, 0 beq _080447A0 ldr r1, [r4, 0x70] ldr r3, _08044814 adds r2, r1, r3 movs r0, 0x1 strb r0, [r2] movs r2, 0xA2 lsls r2, 1 adds r0, r1, r2 strb r6, [r0] adds r0, r4, 0 movs r1, 0x1 bl sub_8075990 adds r0, r4, 0 bl sub_8072CF4 bl sub_8086AC0 movs r0, 0 bl sub_8043ED0 adds r0, r4, 0 bl sub_80450E0 _080447A0: ldr r5, [r5, 0x4] cmp r5, 0 bne _0804476A mov r0, r9 cmp r0, 0x2 ble _080446B0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08044802 movs r7, 0 _080447B8: ldr r0, _08044818 ldr r0, [r0] lsls r1, r7, 2 ldr r3, _0804481C adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080447FC ldr r0, [r4, 0x70] movs r1, 0xA2 lsls r1, 1 adds r5, r0, r1 ldrb r0, [r5] cmp r0, 0 beq _080447FC adds r0, r4, 0 bl sub_8074094 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080447FC adds r0, r4, 0 bl sub_8071DA4 movs r0, 0 strb r0, [r5] _080447FC: adds r7, 0x1 cmp r7, 0x3 ble _080447B8 _08044802: add sp, 0x44 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08044814: .4byte 0x00000145 _08044818: .4byte gUnknown_203B418 _0804481C: .4byte 0x0001357c thumb_func_end sub_8044574 thumb_func_start sub_8044820 sub_8044820: push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 ldr r0, _08044830 mov r8, r0 b _080448FC .align 2, 0 _08044830: .4byte gUnknown_80F6860 _08044834: ldr r4, [r5, 0x70] ldr r0, [r6] adds r0, 0xB8 str r5, [r0] bl sub_8069E8C ldrh r2, [r4] movs r1, 0x80 lsls r1, 8 adds r0, r1, 0 ands r0, r2 cmp r0, 0 bne _080448FA movs r1, 0x80 lsls r1, 7 adds r0, r1, 0 ands r0, r2 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _0804486C ldr r1, _08044868 adds r0, r1, 0 ands r0, r2 strh r0, [r4] b _080448FA .align 2, 0 _08044868: .4byte 0x0000bfff _0804486C: movs r2, 0xA2 lsls r2, 1 adds r0, r4, r2 strb r1, [r0] adds r0, r5, 0 bl sub_8070774 ldr r1, [r6] movs r2, 0xCC lsls r2, 3 adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] lsls r1, 1 movs r2, 0x32 muls r0, r2 adds r1, r0 add r1, r8 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _080448FA movs r1, 0xA4 lsls r1, 1 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _080448FA ldrh r1, [r4] ldr r2, _08044984 adds r0, r2, 0 ands r1, r0 movs r0, 0 strh r1, [r4] ldr r2, _08044988 adds r1, r4, r2 strb r0, [r1] adds r0, r5, 0 bl sub_8074B54 adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080448FA adds r0, r5, 0 bl sub_8071DA4 adds r0, r5, 0 movs r1, 0 bl sub_8075990 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08044924 adds r0, r5, 0 bl sub_8072CF4 bl sub_8086AC0 movs r0, 0 bl sub_8043ED0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08044924 _080448FA: adds r7, 0x1 _080448FC: cmp r7, 0xF bgt _08044924 ldr r6, _0804498C ldr r0, [r6] lsls r1, r7, 2 ldr r2, _08044990 adds r0, r2 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080448FA bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08044834 _08044924: bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0804497A movs r7, 0 _08044930: ldr r0, _0804498C ldr r0, [r0] lsls r1, r7, 2 ldr r2, _08044990 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08044974 ldr r0, [r4, 0x70] movs r1, 0xA2 lsls r1, 1 adds r5, r0, r1 ldrb r0, [r5] cmp r0, 0 beq _08044974 adds r0, r4, 0 bl sub_8074094 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08044974 adds r0, r4, 0 bl sub_8071DA4 movs r0, 0 strb r0, [r5] _08044974: adds r7, 0x1 cmp r7, 0xF ble _08044930 _0804497A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08044984: .4byte 0x00003fff _08044988: .4byte 0x00000145 _0804498C: .4byte gUnknown_203B418 _08044990: .4byte 0x0001358c thumb_func_end sub_8044820 thumb_func_start sub_8044994 sub_8044994: push {r4-r7,lr} mov r7, r8 push {r7} ldr r1, _08044A94 ldr r4, _08044A98 ldr r0, [r4] movs r2, 0xCC lsls r2, 3 adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 1 adds r1, 0x32 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _08044A8A bl sub_8071B48 ldr r0, [r4] ldr r2, _08044A9C adds r0, r2 movs r2, 0 strb r2, [r0] ldr r0, [r4] ldr r3, _08044AA0 adds r0, r3 strb r2, [r0] ldr r0, [r4] ldr r1, _08044AA4 adds r0, r1 strb r2, [r0] ldr r0, [r4] adds r3, 0x2 adds r0, r3 strb r2, [r0] ldr r0, [r4] ldr r3, _08044AA8 adds r1, r0, r3 str r2, [r1] ldr r1, _08044AAC adds r0, r1 movs r1, 0x2 str r1, [r0] mov r8, r2 adds r7, r4, 0 _080449F2: ldr r0, [r7] mov r2, r8 lsls r1, r2, 2 ldr r3, _08044AB0 adds r0, r3 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08044A7A ldr r0, [r5, 0x70] adds r4, r0, 0 movs r0, 0xA4 lsls r0, 1 adds r1, r4, r0 movs r0, 0 strb r0, [r1] ldrb r0, [r4, 0x6] movs r6, 0x1 cmp r0, 0 beq _08044A24 movs r6, 0 _08044A24: adds r0, r5, 0 movs r1, 0x32 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08044A46 ldr r1, [r7] ldr r2, _08044AA8 adds r0, r1, r2 str r5, [r0] ldr r3, _08044AAC adds r1, r3 adds r0, r4, 0 adds r0, 0x98 ldr r0, [r0] str r0, [r1] _08044A46: adds r0, r5, 0 movs r1, 0x3F bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08044A60 ldr r0, [r7] ldr r1, _08044AA4 adds r0, r1 adds r0, r6 movs r1, 0x1 strb r1, [r0] _08044A60: adds r0, r5, 0 movs r1, 0x38 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08044A7A ldr r0, [r7] ldr r2, _08044A9C adds r0, r2 adds r0, r6 movs r1, 0x1 strb r1, [r0] _08044A7A: movs r3, 0x1 add r8, r3 mov r0, r8 cmp r0, 0x13 ble _080449F2 movs r0, 0 bl sub_8043ED0 _08044A8A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08044A94: .4byte gUnknown_80F6860 _08044A98: .4byte gUnknown_203B418 _08044A9C: .4byte 0x000037f8 _08044AA0: .4byte 0x000037f9 _08044AA4: .4byte 0x000037fa _08044AA8: .4byte 0x00017b2c _08044AAC: .4byte 0x00017b38 _08044AB0: .4byte 0x000135cc thumb_func_end sub_8044994 thumb_func_start sub_8044AB4 sub_8044AB4: push {r4,lr} ldr r1, _08044ADC ldr r0, _08044AE0 ldr r0, [r0] movs r2, 0xCC lsls r2, 3 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r0, 0x1 lsls r0, 1 adds r1, 0x32 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _08044B1A movs r4, 0 b _08044AE6 .align 2, 0 _08044ADC: .4byte gUnknown_80F6860 _08044AE0: .4byte gUnknown_203B418 _08044AE4: adds r4, 0x1 _08044AE6: cmp r4, 0x13 bgt _08044B08 ldr r0, _08044B20 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _08044B24 adds r0, r2 adds r0, r1 ldr r0, [r0] bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08044AE4 movs r0, 0 bl sub_807520C _08044B08: movs r0, 0x1 movs r1, 0 bl sub_807EAA0 bl sub_8086AC0 movs r0, 0 bl sub_8043ED0 _08044B1A: pop {r4} pop {r0} bx r0 .align 2, 0 _08044B20: .4byte gUnknown_203B418 _08044B24: .4byte 0x000135cc thumb_func_end sub_8044AB4 thumb_func_start sub_8044B28 sub_8044B28: push {r4,lr} ldr r4, _08044B48 ldr r0, [r4] ldrb r0, [r0, 0x4] cmp r0, 0 bne _08044B76 bl sub_8083600 cmp r0, 0 bne _08044B50 ldr r0, [r4] ldr r1, _08044B4C adds r0, r1 movs r1, 0x1 strb r1, [r0] b _08044B76 .align 2, 0 _08044B48: .4byte gUnknown_203B418 _08044B4C: .4byte 0x00000654 _08044B50: ldr r0, [r4] ldrb r2, [r0, 0x2] cmp r2, 0x1 bne _08044B68 ldr r2, _08044B64 adds r1, r0, r2 movs r0, 0x2 strb r0, [r1] b _08044B76 .align 2, 0 _08044B64: .4byte 0x00000654 _08044B68: cmp r2, 0x2 beq _08044B70 movs r0, 0 b _08044B78 _08044B70: ldr r1, _08044B80 adds r0, r1 strb r2, [r0] _08044B76: movs r0, 0x1 _08044B78: pop {r4} pop {r1} bx r1 .align 2, 0 _08044B80: .4byte 0x00000654 thumb_func_end sub_8044B28 thumb_func_start sub_8044B84 sub_8044B84: push {lr} ldr r0, _08044B9C ldr r0, [r0] ldrb r0, [r0, 0x10] cmp r0, 0 bne _08044BA0 bl sub_8044B28 lsls r0, 24 lsrs r0, 24 b _08044BA2 .align 2, 0 _08044B9C: .4byte gUnknown_203B418 _08044BA0: movs r0, 0x1 _08044BA2: pop {r1} bx r1 thumb_func_end sub_8044B84 thumb_func_start sub_8044BA8 sub_8044BA8: push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 24 lsrs r5, r1, 24 cmp r4, 0x26 bne _08044BCC bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08044BCC ldr r0, _08044BC8 b _08044C02 .align 2, 0 _08044BC8: .4byte gUnknown_80F91EC _08044BCC: ldr r1, _08044BEC lsls r0, r4, 3 adds r4, r0, r1 ldr r0, [r4] ldr r1, _08044BF0 bl strcmp cmp r0, 0 beq _08044BE0 movs r0, 0x1 _08044BE0: lsls r0, 24 cmp r0, 0 beq _08044BF4 ldr r0, [r4] b _08044C04 .align 2, 0 _08044BEC: .4byte gUnknown_80F7C50 _08044BF0: .4byte gUnknown_80F697C _08044BF4: ldr r4, _08044C0C adds r0, r5, 0 bl sub_8090D6C lsls r0, 3 adds r4, 0x4 adds r0, r4 _08044C02: ldr r0, [r0] _08044C04: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08044C0C: .4byte gUnknown_80F7B14 thumb_func_end sub_8044BA8 thumb_func_start sub_8044C10 sub_8044C10: push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8083654 adds r2, r0, 0 adds r1, r2, 0 adds r1, 0x44 movs r3, 0 movs r0, 0 strh r0, [r1] cmp r4, 0 beq _08044C44 adds r0, r2, 0 adds r0, 0x48 strb r3, [r0] adds r0, 0x8 strb r3, [r0] adds r1, 0x14 ldr r0, _08044C4C strh r0, [r1] adds r1, 0x2 movs r0, 0x1 negs r0, r0 strh r0, [r1] _08044C44: pop {r4} pop {r0} bx r0 .align 2, 0 _08044C4C: .4byte 0x0000ffff thumb_func_end sub_8044C10 thumb_func_start sub_8044C50 sub_8044C50: push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl sub_8083654 adds r2, r0, 0 adds r0, 0x44 movs r1, 0 strh r4, [r0] adds r0, 0x4 strb r1, [r0] adds r0, 0x8 strb r1, [r0] adds r1, r2, 0 adds r1, 0x58 ldr r0, _08044C84 strh r0, [r1] adds r1, 0x2 movs r0, 0x1 negs r0, r0 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08044C84: .4byte 0x0000ffff thumb_func_end sub_8044C50 thumb_func_start sub_8044C88 sub_8044C88: movs r2, 0 movs r1, 0 strh r1, [r0] strb r2, [r0, 0x4] strb r2, [r0, 0xC] bx lr thumb_func_end sub_8044C88 thumb_func_start sub_8044C94 sub_8044C94: movs r2, 0 strh r1, [r0] strb r2, [r0, 0x4] strb r2, [r0, 0xC] bx lr thumb_func_end sub_8044C94 thumb_func_start sub_8044CA0 sub_8044CA0: push {r4,lr} adds r4, r0, 0 lsls r0, r1, 16 asrs r0, 16 bl sub_808DB48 lsls r0, 24 cmp r0, 0 beq _08044CB6 movs r0, 0x2 b _08044CB8 _08044CB6: movs r0, 0x1 _08044CB8: strh r0, [r4] movs r0, 0 strb r0, [r4, 0x4] strb r0, [r4, 0xC] pop {r4} pop {r0} bx r0 thumb_func_end sub_8044CA0 thumb_func_start sub_8044CC8 sub_8044CC8: push {lr} adds r3, r0, 0 adds r2, r1, 0 ldrb r1, [r2] subs r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bhi _08044CEC ldr r0, _08044CE8 ldrb r1, [r2] lsls r1, 2 subs r1, 0x4 ldr r0, [r0] adds r0, r1 b _08044D34 .align 2, 0 _08044CE8: .4byte gUnknown_203B460 _08044CEC: adds r0, r1, 0 cmp r0, 0x80 bne _08044D06 movs r1, 0x4 ldrsh r0, [r2, r1] movs r3, 0x6 ldrsh r1, [r2, r3] bl sub_804954C ldr r0, [r0, 0x14] bl sub_8045108 b _08044D34 _08044D06: cmp r0, 0x81 bne _08044D0E ldr r0, [r3, 0x70] b _08044D32 _08044D0E: adds r0, r1, 0 adds r0, 0x70 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _08044D1E movs r0, 0 b _08044D34 _08044D1E: ldr r0, _08044D38 ldr r1, [r0] ldrb r0, [r2] subs r0, 0x90 lsls r0, 2 ldr r2, _08044D3C adds r1, r2 adds r1, r0 ldr r0, [r1] ldr r0, [r0, 0x70] _08044D32: adds r0, 0x60 _08044D34: pop {r1} bx r1 .align 2, 0 _08044D38: .4byte gUnknown_203B418 _08044D3C: .4byte 0x0001357c thumb_func_end sub_8044CC8 thumb_func_start sub_8044D40 sub_8044D40: push {lr} lsls r1, 3 adds r1, 0x4 adds r2, r0, r1 ldrb r1, [r2] subs r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bhi _08044D74 ldr r1, _08044D70 ldrb r0, [r2] lsls r0, 2 subs r0, 0x4 ldr r1, [r1] adds r1, r0 movs r0, 0 strb r0, [r1, 0x2] strb r0, [r1, 0x1] strb r0, [r1] bl sub_80910B4 b _08044D88 .align 2, 0 _08044D70: .4byte gUnknown_203B460 _08044D74: lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0x80 beq _08044D80 movs r0, 0 b _08044D8A _08044D80: adds r0, r2, 0x4 movs r1, 0x1 bl sub_80461C8 _08044D88: movs r0, 0x1 _08044D8A: pop {r1} bx r1 thumb_func_end sub_8044D40 thumb_func_start sub_8044D90 sub_8044D90: push {lr} ldr r3, [r0, 0x70] lsls r1, 3 adds r1, 0x48 adds r3, r1 adds r1, r3, 0 bl sub_8044CC8 pop {r1} bx r1 thumb_func_end sub_8044D90 thumb_func_start sub_8044DA4 sub_8044DA4: ldr r0, [r0, 0x70] ldr r2, _08044DC0 ldr r2, [r2] lsls r1, 3 adds r0, r1 adds r0, 0x48 ldrb r0, [r0] lsls r0, 2 ldr r1, _08044DC4 adds r2, r1 adds r2, r0 ldr r0, [r2] bx lr .align 2, 0 _08044DC0: .4byte gUnknown_203B418 _08044DC4: .4byte 0x0001357c thumb_func_end sub_8044DA4 thumb_func_start sub_8044DC8 sub_8044DC8: push {r4,lr} adds r1, r0, 0 ldrb r0, [r1, 0x2] cmp r0, 0xE9 beq _08044DE8 ldr r4, _08044DE4 bl sub_8090BD0 lsls r0, 24 lsrs r0, 23 adds r0, r4 ldrh r0, [r0] b _08044DEA .align 2, 0 _08044DE4: .4byte gUnknown_80F6964 _08044DE8: movs r0, 0x35 _08044DEA: pop {r4} pop {r1} bx r1 thumb_func_end sub_8044DC8 thumb_func_start sub_8044DF0 sub_8044DF0: push {r4,lr} ldr r4, [r0, 0x70] bl sub_8044D90 adds r1, r0, 0 adds r0, r4, 0 adds r0, 0x48 ldrb r0, [r0] cmp r0, 0x80 bne _08044E10 adds r0, r4, 0 adds r0, 0x4C movs r1, 0x1 bl sub_80461C8 b _08044E1C _08044E10: movs r0, 0 strb r0, [r1, 0x2] strb r0, [r1, 0x1] strb r0, [r1] bl sub_80910B4 _08044E1C: pop {r4} pop {r0} bx r0 thumb_func_end sub_8044DF0 thumb_func_start sub_8044E24 sub_8044E24: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 adds r7, r2, 0 bl sub_8044D90 adds r5, r0, 0 ldr r0, [r4, 0x70] mov r8, r0 ldrb r0, [r5, 0x2] bl sub_80915A0 lsls r0, 24 cmp r0, 0 bne _08044EBA ldrb r0, [r5, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _08044EB0 lsls r1, r6, 3 mov r2, r8 adds r0, r2, r1 adds r0, 0x48 ldrb r0, [r0] cmp r0, 0x80 bne _08044EA4 ldr r0, [r5] str r0, [sp] adds r4, r1, r2 adds r4, 0x4C adds r0, r4, 0 movs r1, 0x1 bl sub_80461C8 ldrb r1, [r5, 0x2] subs r1, 0x7D lsls r1, 24 lsrs r1, 16 ldr r2, _08044E9C ldr r0, [sp] ands r0, r2 orrs r0, r1 ldr r1, _08044EA0 ands r0, r1 movs r1, 0xF8 lsls r1, 15 orrs r0, r1 str r0, [sp] adds r0, r4, 0 mov r1, sp movs r2, 0x1 bl sub_80460F8 b _08044EBA .align 2, 0 _08044E9C: .4byte 0xffff00ff _08044EA0: .4byte 0xff00ffff _08044EA4: ldrb r0, [r5, 0x2] subs r0, 0x7D strb r0, [r5, 0x1] movs r0, 0x7C strb r0, [r5, 0x2] b _08044EBA _08044EB0: adds r0, r4, 0 adds r1, r6, 0 adds r2, r7, 0 bl sub_8044DF0 _08044EBA: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8044E24 thumb_func_start sub_8044EC8 sub_8044EC8: push {r4,r5,lr} adds r5, r0, 0 ldr r1, _08044EE8 lsls r0, r5, 2 adds r0, r1 ldrh r4, [r0] cmp r4, 0x26 bne _08044EF0 bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08044EF0 ldr r0, _08044EEC b _08044F2C .align 2, 0 _08044EE8: .4byte gUnknown_202EE44 _08044EEC: .4byte gUnknown_80F91EC _08044EF0: ldr r1, _08044F10 lsls r0, r4, 3 adds r4, r0, r1 ldr r0, [r4] ldr r1, _08044F14 bl strcmp cmp r0, 0 beq _08044F04 movs r0, 0x1 _08044F04: lsls r0, 24 cmp r0, 0 beq _08044F18 ldr r0, [r4] b _08044F2E .align 2, 0 _08044F10: .4byte gUnknown_80F7C50 _08044F14: .4byte gUnknown_80F697C _08044F18: ldr r4, _08044F34 ldr r1, _08044F38 lsls r0, r5, 2 adds r0, r1 ldrb r0, [r0, 0x2] bl sub_8090D6C lsls r0, 3 adds r4, 0x4 adds r0, r4 _08044F2C: ldr r0, [r0] _08044F2E: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08044F34: .4byte gUnknown_80F7B14 _08044F38: .4byte gUnknown_202EE44 thumb_func_end sub_8044EC8 thumb_func_start sub_8044F3C sub_8044F3C: push {lr} adds r1, r0, 0 cmp r1, 0 blt _08044F54 ldr r0, _08044F50 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x3] b _08044F56 .align 2, 0 _08044F50: .4byte gUnknown_202EE44 _08044F54: movs r0, 0 _08044F56: pop {r1} bx r1 thumb_func_end sub_8044F3C thumb_func_start sub_8044F5C sub_8044F5C: push {r4-r7,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 24 lsrs r7, r1, 24 ldr r0, _08044FAC ldr r2, [r0] adds r6, r0, 0 cmp r2, 0x9 bgt _08044FA4 movs r3, 0 ldr r5, _08044FB0 cmp r3, r2 bge _08044F8A adds r1, r2, 0 adds r2, r5, 0 _08044F7C: ldrh r0, [r2] cmp r0, r4 beq _08044FA4 adds r2, 0x4 adds r3, 0x1 cmp r3, r1 blt _08044F7C _08044F8A: ldr r0, [r6] lsls r0, 2 adds r0, r5 strh r4, [r0] strb r7, [r0, 0x2] ldr r0, [r6] lsls r0, 2 adds r0, r5 movs r1, 0x1 strb r1, [r0, 0x3] ldr r0, [r6] adds r0, 0x1 str r0, [r6] _08044FA4: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08044FAC: .4byte gUnknown_202EE6C _08044FB0: .4byte gUnknown_202EE44 thumb_func_end sub_8044F5C thumb_func_start sub_8044FB4 sub_8044FB4: push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 movs r1, 0 ldr r0, _08044FD4 ldr r0, [r0] cmp r1, r0 bge _08044FE4 adds r3, r0, 0 ldr r2, _08044FD8 _08044FC8: ldrh r0, [r2] cmp r0, r4 bne _08044FDC adds r0, r1, 0 b _08044FE8 .align 2, 0 _08044FD4: .4byte gUnknown_202EE6C _08044FD8: .4byte gUnknown_202EE44 _08044FDC: adds r2, 0x4 adds r1, 0x1 cmp r1, r3 blt _08044FC8 _08044FE4: movs r0, 0x1 negs r0, r0 _08044FE8: pop {r4} pop {r1} bx r1 thumb_func_end sub_8044FB4 thumb_func_start sub_8044FF0 sub_8044FF0: push {r4,r5,lr} lsls r0, 16 lsrs r3, r0, 16 movs r2, 0 ldr r1, _08045010 ldr r0, [r1] cmp r2, r0 bge _08045022 movs r5, 0 adds r4, r1, 0 ldr r1, _08045014 _08045006: ldrh r0, [r1] cmp r0, r3 bne _08045018 strb r5, [r1, 0x3] b _08045022 .align 2, 0 _08045010: .4byte gUnknown_202EE6C _08045014: .4byte gUnknown_202EE44 _08045018: adds r1, 0x4 adds r2, 0x1 ldr r0, [r4] cmp r2, r0 blt _08045006 _08045022: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8044FF0 thumb_func_start sub_8045028 sub_8045028: push {r4,lr} adds r2, r0, 0 lsls r1, 24 ldr r0, [r2, 0x70] adds r4, r0, 0 adds r4, 0x44 cmp r1, 0 beq _08045044 adds r0, r2, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0804505A _08045044: ldrh r0, [r4] cmp r0, 0 beq _0804505A cmp r0, 0x2 beq _0804505A cmp r0, 0x1 beq _0804505A cmp r0, 0x5 beq _0804505A movs r0, 0 b _0804505C _0804505A: movs r0, 0x1 _0804505C: pop {r4} pop {r1} bx r1 thumb_func_end sub_8045028 thumb_func_start sub_8045064 sub_8045064: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r1, 0 ldr r0, _080450D4 mov r8, r0 ldr r0, [r0] cmp r1, r0 bge _080450C8 mov r7, r8 ldr r2, _080450D8 mov r9, r2 ldr r0, _080450DC mov r12, r0 _08045082: adds r4, r1, 0x1 ldr r0, [r7] adds r5, r4, 0 cmp r5, r0 bge _080450BE lsls r0, r1, 2 mov r1, r12 adds r3, r0, r1 mov r6, r9 lsls r0, r5, 2 adds r2, r0, r1 _08045098: ldrh r1, [r3] lsls r1, 3 adds r1, r6 ldrh r0, [r2] lsls r0, 3 adds r0, r6 ldr r1, [r1] ldr r0, [r0] cmp r1, r0 ble _080450B4 ldr r1, [r3] ldr r0, [r2] str r0, [r3] str r1, [r2] _080450B4: adds r2, 0x4 adds r4, 0x1 ldr r0, [r7] cmp r4, r0 blt _08045098 _080450BE: adds r1, r5, 0 mov r2, r8 ldr r0, [r2] cmp r1, r0 blt _08045082 _080450C8: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080450D4: .4byte gUnknown_202EE6C _080450D8: .4byte gUnknown_80F7C54 _080450DC: .4byte gUnknown_202EE44 thumb_func_end sub_8045064 thumb_func_start sub_80450E0 sub_80450E0: push {lr} cmp r0, 0 bne _080450EA movs r0, 0 b _080450F2 _080450EA: ldr r0, [r0] cmp r0, 0 beq _080450F2 movs r0, 0x1 _080450F2: pop {r1} bx r1 thumb_func_end sub_80450E0 thumb_func_start sub_80450F8 sub_80450F8: ldr r0, [r0] bx lr thumb_func_end sub_80450F8 thumb_func_start sub_80450FC sub_80450FC: adds r0, 0x25 ldrb r0, [r0] bx lr thumb_func_end sub_80450FC thumb_func_start sub_8045104 sub_8045104: ldr r0, [r0, 0x70] bx lr thumb_func_end sub_8045104 thumb_func_start sub_8045108 sub_8045108: ldr r0, [r0, 0x70] bx lr thumb_func_end sub_8045108 thumb_func_start sub_804510C sub_804510C: ldr r0, [r0, 0x70] bx lr thumb_func_end sub_804510C thumb_func_start sub_8045110 sub_8045110: ldr r0, [r0, 0x70] bx lr thumb_func_end sub_8045110 thumb_func_start sub_8045114 sub_8045114: push {lr} movs r1, 0x4 ldrsh r2, [r0, r1] movs r3, 0x6 ldrsh r1, [r0, r3] adds r0, r2, 0 bl sub_804954C pop {r1} bx r1 thumb_func_end sub_8045114 thumb_func_start sub_8045128 sub_8045128: push {lr} movs r1, 0x4 ldrsh r2, [r0, r1] movs r3, 0x6 ldrsh r1, [r0, r3] adds r0, r2, 0 bl sub_8049590 pop {r1} bx r1 thumb_func_end sub_8045128 thumb_func_start sub_804513C sub_804513C: push {r4-r7,lr} movs r3, 0 ldr r7, _080451FC ldr r6, _08045200 ldr r4, _08045204 movs r5, 0 _08045148: ldr r0, [r7] lsls r2, r3, 2 adds r1, r0, r6 adds r1, r2 adds r0, r4 str r0, [r1] str r5, [r0] adds r4, 0x74 adds r3, 0x1 cmp r3, 0x3 ble _08045148 ldr r1, _08045208 movs r2, 0 adds r0, r1, 0x5 _08045164: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08045164 movs r3, 0 ldr r7, _080451FC ldr r6, _0804520C ldr r4, _08045210 movs r5, 0 _08045176: ldr r0, [r7] lsls r2, r3, 2 adds r1, r0, r6 adds r1, r2 adds r0, r4 str r0, [r1] str r5, [r0] adds r4, 0x74 adds r3, 0x1 cmp r3, 0xF ble _08045176 ldr r1, _08045214 movs r2, 0 adds r0, r1, 0 adds r0, 0xF _08045194: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08045194 movs r3, 0 ldr r5, _080451FC ldr r4, _08045218 movs r2, 0 _080451A4: ldr r0, [r5] lsls r1, r3, 2 adds r0, r4 adds r0, r1 str r2, [r0] adds r3, 0x1 cmp r3, 0x13 ble _080451A4 movs r3, 0 ldr r7, _080451FC ldr r6, _0804521C ldr r4, _08045220 movs r5, 0 _080451BE: ldr r0, [r7] lsls r2, r3, 2 adds r1, r0, r6 adds r1, r2 adds r0, r4 str r0, [r1] str r5, [r0] adds r4, 0x74 adds r3, 0x1 cmp r3, 0x3F ble _080451BE movs r3, 0 ldr r7, _080451FC ldr r6, _08045224 ldr r4, _08045228 movs r5, 0 _080451DE: ldr r0, [r7] lsls r2, r3, 2 adds r1, r0, r6 adds r1, r2 adds r0, r4 str r0, [r1] str r5, [r0] adds r4, 0x74 adds r3, 0x1 cmp r3, 0x3F ble _080451DE pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080451FC: .4byte gUnknown_203B418 _08045200: .4byte 0x0001357c _08045204: .4byte 0x0001381c _08045208: .4byte gUnknown_202EE70 _0804520C: .4byte 0x0001358c _08045210: .4byte 0x000139ec _08045214: .4byte gUnknown_202EE76 _08045218: .4byte 0x000135cc _0804521C: .4byte 0x0001361c _08045220: .4byte 0x0001412c _08045224: .4byte 0x0001371c _08045228: .4byte 0x00015e2c thumb_func_end sub_804513C thumb_func_start sub_804522C sub_804522C: push {r4-r7,lr} sub sp, 0x4 ldr r2, _08045274 ldr r0, [r2] ldr r3, _08045278 adds r1, r0, r3 ldrb r7, [r1] ldr r1, _0804527C adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080452AA movs r6, 0 adds r7, r2, 0 _08045248: ldr r0, [r7] lsls r1, r6, 2 ldr r2, _08045280 adds r0, r2 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080452A2 ldr r0, [r7] ldr r3, _08045284 adds r0, r3 ldr r0, [r0] cmp r5, r0 bne _08045288 adds r0, r5, 0 bl sub_806C51C b _080452A2 .align 2, 0 _08045274: .4byte gUnknown_203B418 _08045278: .4byte 0x00018210 _0804527C: .4byte 0x0001820a _08045280: .4byte 0x000135cc _08045284: .4byte 0x000181f8 _08045288: ldr r4, [r5, 0x70] adds r0, r5, 0 bl sub_804187C adds r2, r0, 0 adds r0, r4, 0 adds r0, 0x98 ldr r0, [r0] movs r3, 0x4 ldrsh r1, [r4, r3] movs r3, 0 bl sub_800F75C _080452A2: adds r6, 0x1 cmp r6, 0x13 ble _08045248 b _0804533E _080452AA: movs r6, 0 _080452AC: ldr r0, _08045348 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0804534C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080452CC adds r0, r4, 0 bl sub_806C51C _080452CC: adds r6, 0x1 cmp r6, 0x3 ble _080452AC movs r6, 0 _080452D4: ldr r5, _08045348 ldr r0, [r5] lsls r1, r6, 2 ldr r3, _08045350 adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080452F4 adds r0, r4, 0 bl sub_806C51C _080452F4: adds r6, 0x1 cmp r6, 0xF ble _080452D4 movs r6, 0 ldr r0, [r5] ldr r1, _08045354 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r6, r0 bge _08045336 adds r4, r5, 0 _0804530C: ldr r0, [r4] lsls r1, r6, 2 ldr r3, _08045358 adds r0, r3 adds r0, r1 ldr r0, [r0] movs r1, 0 str r1, [sp] adds r1, r7, 0 movs r2, 0x1 movs r3, 0xFF bl sub_80462AC adds r6, 0x1 ldr r0, [r4] ldr r1, _08045354 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r6, r0 blt _0804530C _08045336: cmp r7, 0 beq _0804533E bl sub_807FA9C _0804533E: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08045348: .4byte gUnknown_203B418 _0804534C: .4byte 0x0001357c _08045350: .4byte 0x0001358c _08045354: .4byte 0x00003904 _08045358: .4byte 0x0001361c thumb_func_end sub_804522C thumb_func_start sub_804535C sub_804535C: push {lr} adds r2, r0, 0 cmp r1, 0 beq _0804536C ldr r0, [r1] str r0, [r2, 0xC] ldr r0, [r1, 0x4] b _0804538E _0804536C: movs r0, 0x4 ldrsh r1, [r2, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r1, 0xC0 lsls r1, 4 adds r0, r1 str r0, [r2, 0xC] movs r0, 0x6 ldrsh r1, [r2, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r1, 0x80 lsls r1, 5 adds r0, r1 _0804538E: str r0, [r2, 0x10] pop {r0} bx r0 thumb_func_end sub_804535C thumb_func_start sub_8045394 sub_8045394: str r1, [r0, 0xC] str r2, [r0, 0x10] bx lr thumb_func_end sub_8045394 thumb_func_start sub_804539C sub_804539C: ldr r3, [r0, 0xC] adds r3, r1 str r3, [r0, 0xC] ldr r1, [r0, 0x10] adds r1, r2 str r1, [r0, 0x10] bx lr thumb_func_end sub_804539C thumb_func_start sub_80453AC sub_80453AC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 asrs r0, 16 mov r8, r0 movs r0, 0x1 negs r0, r0 mov r9, r0 mov r0, r8 bl sub_808DACC lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 movs r0, 0x6 subs r3, r0, r6 ldr r4, _080453D8 b _080453DE .align 2, 0 _080453D8: .4byte gUnknown_202EE70 _080453DC: adds r5, 0x1 _080453DE: cmp r5, r3 bgt _08045400 movs r2, 0 cmp r2, r6 bge _080453FA adds r1, r5, r4 b _080453F4 _080453EC: adds r1, 0x1 adds r2, 0x1 cmp r2, r6 bge _080453FA _080453F4: ldrb r0, [r1] cmp r0, 0 beq _080453EC _080453FA: cmp r2, r6 bne _080453DC mov r9, r5 _08045400: movs r0, 0x1 negs r0, r0 cmp r9, r0 beq _080454FC movs r5, 0 ldr r7, _080454DC _0804540C: ldr r1, _080454E0 ldr r0, [r1] lsls r1, r5, 2 ldr r2, _080454E4 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 lsrs r0, 24 mov r10, r0 cmp r0, 0 bne _080454F0 movs r0, 0x1 str r0, [r4] adds r0, r4, 0 adds r0, 0x24 strb r5, [r0] ldr r1, _080454E0 ldr r0, [r1] adds r0, r7 str r0, [r4, 0x70] mov r2, r8 strh r2, [r0, 0x2] movs r0, 0 mov r1, r8 bl sub_8069F54 ldr r1, [r4, 0x70] strh r0, [r1, 0x4] ldr r0, [r4, 0x70] movs r5, 0 strb r5, [r0, 0x6] movs r0, 0 mov r1, r8 bl sub_8069F54 lsls r0, 16 asrs r0, 16 bl sub_80687D0 str r0, [r4, 0x64] mov r1, r9 lsls r0, r1, 4 adds r0, 0x40 adds r1, r4, 0 adds r1, 0x68 strh r0, [r1] adds r1, 0x2 movs r0, 0x7 strb r0, [r1] adds r0, r4, 0 adds r0, 0x6C movs r2, 0 strb r2, [r0] adds r1, 0x1 movs r0, 0xFF strb r0, [r1] adds r0, r4, 0 adds r0, 0x6D movs r5, 0x1 strb r5, [r0] adds r0, 0x2 strb r5, [r0] mov r0, r10 str r0, [r4, 0x1C] bl sub_8045ACC ldr r0, [r4, 0x70] ldr r1, _080454E8 adds r0, r1 mov r2, r9 strb r2, [r0] ldr r0, [r4, 0x70] movs r5, 0xB4 lsls r5, 1 adds r0, r5 strb r6, [r0] cmp r6, 0 beq _080454C6 ldr r3, _080454EC movs r2, 0x1 adds r1, r6, 0 _080454B6: mov r5, r9 adds r0, r5, r3 strb r2, [r0] movs r0, 0x1 add r9, r0 subs r1, 0x1 cmp r1, 0 bne _080454B6 _080454C6: ldr r1, _080454E0 ldr r0, [r1] movs r2, 0xCD lsls r2, 3 adds r0, r2 ldrh r2, [r0] adds r1, r2, 0x1 strh r1, [r0] strh r2, [r4, 0x26] adds r0, r4, 0 b _080454FE .align 2, 0 _080454DC: .4byte 0x0000069c _080454E0: .4byte gUnknown_203B418 _080454E4: .4byte 0x0001357c _080454E8: .4byte 0x00000167 _080454EC: .4byte gUnknown_202EE70 _080454F0: movs r0, 0x82 lsls r0, 2 adds r7, r0 adds r5, 0x1 cmp r5, 0x3 ble _0804540C _080454FC: movs r0, 0 _080454FE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80453AC thumb_func_start sub_804550C sub_804550C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 16 asrs r0, 16 mov r8, r0 movs r0, 0x1 negs r0, r0 mov r9, r0 mov r0, r8 bl sub_808DACC lsls r0, 24 lsrs r7, r0, 24 movs r5, 0 movs r0, 0x10 subs r3, r0, r7 ldr r4, _08045538 b _0804553E .align 2, 0 _08045538: .4byte gUnknown_202EE76 _0804553C: adds r5, 0x1 _0804553E: cmp r5, r3 bgt _08045560 movs r2, 0 cmp r2, r7 bge _0804555A adds r1, r5, r4 b _08045554 _0804554C: adds r1, 0x1 adds r2, 0x1 cmp r2, r7 bge _0804555A _08045554: ldrb r0, [r1] cmp r0, 0 beq _0804554C _0804555A: cmp r2, r7 bne _0804553C mov r9, r5 _08045560: movs r0, 0x1 negs r0, r0 cmp r9, r0 bne _0804556A b _08045670 _0804556A: movs r5, 0 movs r1, 0x1 mov r10, r1 ldr r2, _08045650 mov r3, r9 lsls r0, r3, 4 adds r0, 0xA0 str r0, [sp] _0804557A: ldr r1, _08045654 ldr r0, [r1] lsls r1, r5, 2 ldr r3, _08045658 adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 str r2, [sp, 0x4] bl sub_80450E0 lsls r0, 24 lsrs r6, r0, 24 ldr r2, [sp, 0x4] cmp r6, 0 bne _08045664 mov r0, r10 str r0, [r4] adds r0, r4, 0 adds r0, 0x24 strb r5, [r0] subs r0, 0x2 strb r6, [r0] ldr r1, _08045654 ldr r0, [r1] adds r0, r2 str r0, [r4, 0x70] mov r2, r8 strh r2, [r0, 0x2] movs r0, 0 mov r1, r8 bl sub_8069F54 ldr r1, [r4, 0x70] strh r0, [r1, 0x4] ldr r0, [r4, 0x70] mov r3, r10 strb r3, [r0, 0x6] movs r0, 0 mov r1, r8 bl sub_8069F54 lsls r0, 16 asrs r0, 16 bl sub_80687D0 str r0, [r4, 0x64] adds r0, r4, 0 adds r0, 0x68 mov r5, sp ldrh r5, [r5] strh r5, [r0] adds r1, r4, 0 adds r1, 0x6A movs r0, 0x7 strb r0, [r1] adds r0, r4, 0 adds r0, 0x6C movs r1, 0 strb r1, [r0] adds r1, r4, 0 adds r1, 0x6B movs r0, 0xFF strb r0, [r1] adds r0, r4, 0 adds r0, 0x6D mov r2, r10 strb r2, [r0] adds r0, 0x2 strb r2, [r0] str r6, [r4, 0x1C] ldr r0, [r4, 0x70] ldr r3, _0804565C adds r0, r3 mov r5, r9 strb r5, [r0] ldr r0, [r4, 0x70] movs r1, 0xB4 lsls r1, 1 adds r0, r1 strb r7, [r0] cmp r7, 0 beq _08045636 ldr r3, _08045660 movs r2, 0x1 adds r1, r7, 0 _08045626: mov r5, r9 adds r0, r5, r3 strb r2, [r0] movs r0, 0x1 add r9, r0 subs r1, 0x1 cmp r1, 0 bne _08045626 _08045636: bl sub_8045ACC ldr r1, _08045654 ldr r0, [r1] movs r2, 0xCD lsls r2, 3 adds r0, r2 ldrh r2, [r0] adds r1, r2, 0x1 strh r1, [r0] strh r2, [r4, 0x26] adds r0, r4, 0 b _08045672 .align 2, 0 _08045650: .4byte 0x00000ebc _08045654: .4byte gUnknown_203B418 _08045658: .4byte 0x0001358c _0804565C: .4byte 0x00000167 _08045660: .4byte gUnknown_202EE76 _08045664: movs r3, 0x82 lsls r3, 2 adds r2, r3 adds r5, 0x1 cmp r5, 0xF ble _0804557A _08045670: movs r0, 0 _08045672: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_804550C thumb_func_start sub_8045684 sub_8045684: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r1 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r2, 24 lsrs r2, 24 mov r9, r2 movs r5, 0 ldr r7, _080456E4 ldr r6, _080456E8 _080456A2: ldr r0, [r7] lsls r1, r5, 2 ldr r2, _080456EC adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080456F0 movs r0, 0x2 str r0, [r4] ldr r0, [r7] adds r0, r6 str r0, [r4, 0x70] mov r2, r8 strb r2, [r0] ldr r0, [r4, 0x70] mov r2, r9 strb r2, [r0, 0x1] str r1, [r4, 0x1C] adds r0, r4, 0 adds r0, 0x22 strb r1, [r0] mov r2, r10 ldr r0, [r2] str r0, [r4, 0x4] strh r1, [r4, 0x26] adds r0, r4, 0 b _080456FA .align 2, 0 _080456E4: .4byte gUnknown_203B418 _080456E8: .4byte 0x00003908 _080456EC: .4byte 0x0001371c _080456F0: adds r6, 0x4 adds r5, 0x1 cmp r5, 0x3F ble _080456A2 movs r0, 0 _080456FA: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8045684 thumb_func_start sub_8045708 sub_8045708: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 ldr r1, _08045744 ldr r0, _08045748 ldr r0, [r0] ldr r2, _0804574C adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _0804579C mov r1, r8 movs r2, 0 ldrsh r0, [r1, r2] movs r3, 0x2 ldrsh r1, [r1, r3] bl sub_8049590 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _0804579C b _080457C4 .align 2, 0 _08045744: .4byte gUnknown_810ACC0 _08045748: .4byte gUnknown_203B418 _0804574C: .4byte 0x00003a0e _08045750: movs r0, 0x3 str r0, [r4] ldr r0, _08045798 adds r1, r6, r0 mov r2, r9 ldr r0, [r2] adds r0, r1 str r0, [r4, 0x70] mov r3, r8 ldr r0, [r3] str r0, [r4, 0x4] movs r1, 0 ldrsh r0, [r3, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x4 lsls r1, 8 movs r2, 0x2 ldrsh r0, [r3, r2] lsls r2, r0, 1 adds r2, r0 lsls r2, 3 adds r2, 0x4 lsls r2, 8 adds r0, r4, 0 bl sub_8045394 movs r0, 0 strh r7, [r4, 0x26] adds r1, r4, 0 adds r1, 0x22 strb r0, [r1] str r7, [r4, 0x1C] adds r0, r4, 0 b _080457C6 .align 2, 0 _08045798: .4byte 0x00003804 _0804579C: movs r5, 0 ldr r3, _080457D4 mov r9, r3 _080457A2: mov r1, r9 ldr r0, [r1] lsls r6, r5, 2 ldr r2, _080457D8 adds r0, r2 adds r0, r6 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0 beq _08045750 adds r5, 0x1 cmp r5, 0x3F ble _080457A2 _080457C4: movs r0, 0 _080457C6: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080457D4: .4byte gUnknown_203B418 _080457D8: .4byte 0x0001361c thumb_func_end sub_8045708 thumb_func_start sub_80457DC sub_80457DC: push {r4-r6,lr} adds r4, r0, 0 movs r0, 0x5 str r0, [r4] movs r6, 0 movs r5, 0 strh r5, [r4, 0x4] strh r5, [r4, 0x6] adds r0, r4, 0 movs r1, 0 movs r2, 0 bl sub_8045394 strh r5, [r4, 0x26] adds r4, 0x22 strb r6, [r4] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80457DC thumb_func_start sub_8045804 sub_8045804: push {r4-r6,lr} adds r4, r0, 0 bl sub_80450F8 cmp r0, 0x1 beq _0804581C cmp r0, 0x1 bcc _08045880 cmp r0, 0x5 beq _08045880 _08045818: movs r0, 0x1 b _08045882 _0804581C: adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _08045880 ldr r0, _08045874 ldr r1, [r0] ldr r0, _08045878 adds r2, r1, r0 ldr r5, [r2, 0x10] ldr r3, [r4, 0x70] ldrb r0, [r3, 0x6] cmp r0, 0 beq _08045818 ldr r6, _0804587C adds r0, r1, r6 ldrb r0, [r0] cmp r0, 0 bne _0804584C adds r0, r3, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 beq _08045880 _0804584C: adds r0, r2, 0 adds r0, 0x23 ldrb r0, [r0] cmp r0, 0 bne _08045818 adds r0, r2, 0 adds r0, 0x25 ldrb r0, [r0] cmp r0, 0 bne _08045818 cmp r5, 0 beq _08045880 adds r1, r4, 0x4 adds r0, r2, 0 bl sub_8083294 lsls r0, 24 lsrs r0, 24 b _08045882 .align 2, 0 _08045874: .4byte gUnknown_203B418 _08045878: .4byte 0x000181e8 _0804587C: .4byte 0x0001820f _08045880: movs r0, 0 _08045882: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8045804 thumb_func_start sub_8045888 sub_8045888: push {r4,r5,lr} adds r4, r0, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _08045988 ldr r1, [r4, 0xC] cmp r1, 0 bge _0804589C adds r1, 0xFF _0804589C: asrs r1, 8 ldr r0, _080458F0 ldr r2, [r0] ldr r3, _080458F4 adds r0, r2, r3 movs r5, 0 ldrsh r0, [r0, r5] subs r3, r1, r0 ldr r0, [r4, 0x10] cmp r0, 0 bge _080458B4 adds r0, 0xFF _080458B4: asrs r0, 8 ldr r5, _080458F8 adds r1, r2, r5 movs r5, 0 ldrsh r1, [r1, r5] subs r1, r0, r1 movs r0, 0x20 negs r0, r0 cmp r3, r0 blt _08045988 cmp r1, r0 blt _08045988 movs r0, 0x88 lsls r0, 1 cmp r3, r0 bgt _08045988 cmp r1, 0xC0 bgt _08045988 ldr r0, _080458FC adds r5, r2, r0 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x5 bhi _08045984 lsls r0, 2 ldr r1, _08045900 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080458F0: .4byte gUnknown_203B418 _080458F4: .4byte 0x000181f0 _080458F8: .4byte 0x000181f2 _080458FC: .4byte 0x000181e8 _08045900: .4byte _08045904 .align 2, 0 _08045904: .4byte _08045988 .4byte _08045934 .4byte _08045964 .4byte _0804591C .4byte _08045984 .4byte _08045988 _0804591C: adds r0, r5, 0 adds r0, 0x26 _08045920: ldrb r0, [r0] cmp r0, 0 bne _08045984 adds r0, r4, 0x4 bl sub_803F428 lsls r0, 24 _0804592E: cmp r0, 0 bne _08045984 b _08045988 _08045934: ldr r1, [r4, 0x70] ldrb r0, [r1, 0x6] cmp r0, 0 beq _08045984 ldr r0, _0804595C ldr r0, [r0] ldr r2, _08045960 adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _08045954 adds r0, r1, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 beq _08045988 _08045954: adds r0, r5, 0 adds r0, 0x25 b _08045920 .align 2, 0 _0804595C: .4byte gUnknown_203B418 _08045960: .4byte 0x0001820f _08045964: ldr r0, _0804597C ldr r0, [r0] ldr r3, _08045980 adds r0, r3 ldrb r0, [r0] cmp r0, 0 bne _08045984 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] b _0804592E .align 2, 0 _0804597C: .4byte gUnknown_203B418 _08045980: .4byte 0x0001820f _08045984: movs r0, 0x1 b _0804598A _08045988: movs r0, 0 _0804598A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8045888 thumb_func_start sub_8045990 sub_8045990: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080459E8 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080459E8 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _080459E8 ldr r0, [r4] cmp r0, 0x1 bne _080459EC ldr r0, [r5] cmp r0, 0x1 bne _080459DE adds r0, r5, 0 bl sub_8071884 lsls r0, 24 cmp r0, 0 bne _080459D8 ldr r0, [r4, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 beq _080459E8 _080459D8: ldr r0, [r5, 0x70] adds r0, 0xE8 b _080459E2 _080459DE: ldr r0, [r4, 0x70] adds r0, 0xE4 _080459E2: ldrb r0, [r0] cmp r0, 0x1 bne _080459EC _080459E8: movs r0, 0 b _080459F8 _080459EC: adds r0, r5, 0x4 adds r1, r4, 0x4 bl sub_8083294 lsls r0, 24 lsrs r0, 24 _080459F8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8045990 thumb_func_start sub_8045A00 sub_8045A00: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08045A58 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08045A58 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _08045A58 ldr r0, [r4] cmp r0, 0x1 bne _08045A5C ldr r0, [r5] cmp r0, 0x1 bne _08045A4E adds r0, r5, 0 bl sub_8071884 lsls r0, 24 cmp r0, 0 bne _08045A48 ldr r0, [r4, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 beq _08045A58 _08045A48: ldr r0, [r5, 0x70] adds r0, 0xE8 b _08045A52 _08045A4E: ldr r0, [r4, 0x70] adds r0, 0xE4 _08045A52: ldrb r0, [r0] cmp r0, 0x1 bne _08045A5C _08045A58: movs r0, 0 b _08045A68 _08045A5C: adds r0, r5, 0x4 adds r1, r4, 0x4 bl sub_808333C lsls r0, 24 lsrs r0, 24 _08045A68: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8045A00 thumb_func_start sub_8045A70 sub_8045A70: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08045AA4 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08045AA4 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _08045AA4 adds r0, r5, 0x4 adds r1, r4, 0x4 bl sub_8083294 lsls r0, 24 lsrs r0, 24 b _08045AA6 _08045AA4: movs r0, 0 _08045AA6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8045A70 thumb_func_start sub_8045AAC sub_8045AAC: push {lr} adds r0, 0x4 bl sub_8083294 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_8045AAC thumb_func_start sub_8045ABC sub_8045ABC: push {lr} adds r0, 0x4 bl sub_808333C lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_8045ABC thumb_func_start sub_8045ACC sub_8045ACC: push {r4-r7,lr} movs r6, 0 movs r5, 0 ldr r7, _08045B50 _08045AD4: ldr r0, [r7] lsls r1, r5, 2 ldr r2, _08045B54 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08045AFA ldr r0, [r7] lsls r1, r6, 2 ldr r2, _08045B58 adds r0, r2 adds r0, r1 str r4, [r0] adds r6, 0x1 _08045AFA: adds r5, 0x1 cmp r5, 0x3 ble _08045AD4 movs r5, 0 ldr r7, _08045B50 _08045B04: ldr r0, [r7] lsls r1, r5, 2 ldr r2, _08045B5C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08045B2A ldr r0, [r7] lsls r1, r6, 2 ldr r2, _08045B58 adds r0, r2 adds r0, r1 str r4, [r0] adds r6, 0x1 _08045B2A: adds r5, 0x1 cmp r5, 0xF ble _08045B04 cmp r6, 0x13 bgt _08045B4A ldr r4, _08045B50 ldr r3, _08045B58 movs r2, 0 _08045B3A: ldr r0, [r4] lsls r1, r6, 2 adds r0, r3 adds r0, r1 str r2, [r0] adds r6, 0x1 cmp r6, 0x13 ble _08045B3A _08045B4A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08045B50: .4byte gUnknown_203B418 _08045B54: .4byte 0x0001357c _08045B58: .4byte 0x000135cc _08045B5C: .4byte 0x0001358c thumb_func_end sub_8045ACC thumb_func_start sub_8045B60 sub_8045B60: push {r4,lr} adds r3, r0, 0 movs r2, 0 ldr r0, _08045B78 ldr r0, [r0] ldr r4, _08045B7C adds r1, r0, r4 _08045B6E: ldr r0, [r1] cmp r3, r0 bne _08045B80 adds r0, r2, 0 b _08045B8C .align 2, 0 _08045B78: .4byte gUnknown_203B418 _08045B7C: .4byte 0x0001357c _08045B80: adds r1, 0x4 adds r2, 0x1 cmp r2, 0x3 ble _08045B6E movs r0, 0x1 negs r0, r0 _08045B8C: pop {r4} pop {r1} bx r1 thumb_func_end sub_8045B60 thumb_func_start sub_8045B94 sub_8045B94: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 adds r6, r2, 0 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 beq _08045BD2 cmp r0, 0x2 bhi _08045BB0 cmp r0, 0x1 beq _08045BB6 b _08045BE2 _08045BB0: cmp r0, 0x3 beq _08045BC2 b _08045BE2 _08045BB6: ldr r1, [r4, 0x70] adds r0, r5, 0 adds r2, r6, 0 bl sub_80708B4 b _08045BEC _08045BC2: adds r0, r4, 0 bl sub_8045110 adds r1, r0, 0 adds r0, r5, 0 bl sub_8045BF8 b _08045BEC _08045BD2: adds r0, r4, 0 bl sub_804510C ldrb r1, [r0] adds r0, r5, 0 bl sub_807FE84 b _08045BEC _08045BE2: ldr r0, _08045BF4 ldr r1, [r0] adds r0, r5, 0 bl strcpy _08045BEC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08045BF4: .4byte gUnknown_80FE6F4 thumb_func_end sub_8045B94 thumb_func_start sub_8045BF8 sub_8045BF8: push {lr} ldr r2, _08045C04 bl sub_8090E14 pop {r0} bx r0 .align 2, 0 _08045C04: .4byte gUnknown_80F699C thumb_func_end sub_8045BF8 thumb_func_start sub_8045C08 sub_8045C08: push {lr} ldr r2, _08045C14 bl sub_8090E14 pop {r0} bx r0 .align 2, 0 _08045C14: .4byte gUnknown_80F69A8 thumb_func_end sub_8045C08 thumb_func_start sub_8045C18 sub_8045C18: push {lr} ldr r2, _08045C24 bl sub_8090E14 pop {r0} bx r0 .align 2, 0 _08045C24: .4byte gUnknown_80F6990 thumb_func_end sub_8045C18 thumb_func_start sub_8045C28 sub_8045C28: push {r4-r7,lr} adds r5, r0, 0 adds r6, r2, 0 lsls r1, 24 lsrs r4, r1, 24 adds r1, r4, 0 movs r2, 0 bl sub_8090A8C movs r7, 0 adds r0, r4, 0 bl sub_8091544 lsls r0, 24 cmp r0, 0 beq _08045C72 cmp r6, 0 bne _08045C6C movs r0, 0x64 bl sub_8084100 ldr r1, _08045C64 ldr r1, [r1] ldr r2, _08045C68 adds r1, r2 ldrb r1, [r1] cmp r0, r1 bge _08045C72 b _08045C76 .align 2, 0 _08045C64: .4byte gUnknown_203B418 _08045C68: .4byte 0x0001c57e _08045C6C: cmp r6, 0x1 bne _08045C72 movs r7, 0x1 _08045C72: cmp r7, 0 beq _08045C7E _08045C76: ldrb r1, [r5] movs r0, 0x8 orrs r0, r1 strb r0, [r5] _08045C7E: adds r0, r4, 0 bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _08045CA2 ldr r0, _08045CA8 ldr r0, [r0] ldr r1, _08045CAC adds r0, r1 ldrb r0, [r0] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r0, r5, 0 bl sub_8046CE4 _08045CA2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08045CA8: .4byte gUnknown_203B418 _08045CAC: .4byte 0x0001c58b thumb_func_end sub_8045C28 thumb_func_start sub_8045CB0 sub_8045CB0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0x38 bl sub_8084100 adds r5, r0, 0 movs r0, 0x20 bl sub_8084100 adds r6, r0, 0 ldr r0, _08045D34 ldr r0, [r0] ldr r1, _08045D38 adds r0, r1 movs r1, 0 strh r1, [r0] movs r0, 0 _08045CDA: adds r6, 0x1 cmp r6, 0x20 bne _08045CE2 movs r6, 0 _08045CE2: adds r0, 0x1 mov r10, r0 movs r3, 0x2 mov r9, r3 movs r0, 0x37 mov r8, r0 _08045CEE: adds r5, 0x1 cmp r5, 0x38 bne _08045CF6 movs r5, 0 _08045CF6: adds r0, r5, 0 adds r1, r6, 0 bl sub_804954C adds r2, r0, 0 ldrh r0, [r2] movs r3, 0x80 lsls r3, 2 adds r1, r3, 0 ands r0, r1 cmp r0, 0 bne _08045D92 ldrh r1, [r2, 0x4] mov r0, r9 ands r0, r1 cmp r0, 0 beq _08045D92 movs r7, 0 lsls r0, r5, 16 lsls r1, r6, 16 lsrs r0, 16 orrs r0, r1 str r0, [sp, 0x4] ldrh r1, [r2] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08045D3C movs r7, 0x1 movs r0, 0x1 b _08045D58 .align 2, 0 _08045D34: .4byte gUnknown_203B418 _08045D38: .4byte 0x00003904 _08045D3C: movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08045D48 movs r0, 0x3 b _08045D58 _08045D48: movs r0, 0x40 ands r0, r1 lsls r0, 16 lsrs r0, 16 negs r0, r0 asrs r0, 31 mov r1, r9 ands r0, r1 _08045D58: bl sub_803D73C lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 bl sub_80914E4 lsls r0, 24 cmp r0, 0 bne _08045D6E movs r7, 0 _08045D6E: mov r0, sp adds r1, r4, 0 movs r2, 0 bl sub_8045C28 cmp r7, 0 beq _08045D88 mov r0, sp ldrb r1, [r0] mov r0, r9 orrs r0, r1 mov r1, sp strb r0, [r1] _08045D88: add r0, sp, 0x4 mov r1, sp movs r2, 0x1 bl sub_80460F8 _08045D92: movs r3, 0x1 negs r3, r3 add r8, r3 mov r0, r8 cmp r0, 0 bge _08045CEE mov r0, r10 cmp r0, 0x1F ble _08045CDA add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8045CB0 thumb_func_start sub_8045DB4 sub_8045DB4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xB8 mov r10, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0xA8] bl sub_8083600 adds r7, r0, 0 ldr r0, [r7, 0x70] str r0, [sp, 0xAC] mov r1, r10 movs r2, 0 ldrsh r0, [r1, r2] movs r3, 0x2 ldrsh r1, [r1, r3] bl sub_804954C ldr r4, [r0, 0x14] cmp r4, 0 bne _08045DE8 b _080460E0 _08045DE8: adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x3 beq _08045DF4 b _080460E0 _08045DF4: adds r0, r4, 0 bl sub_8045108 adds r5, r0, 0 ldr r0, [sp, 0xAC] adds r0, 0x48 ldrb r0, [r0] cmp r0, 0 bne _08045E08 b _0804602E _08045E08: adds r0, r7, 0 movs r1, 0x1 bl sub_8071518 lsls r0, 24 cmp r0, 0 beq _08045E40 ldr r0, [sp, 0xA8] cmp r0, 0 bne _08045E1E b _080460E0 _08045E1E: ldr r0, _08045E34 adds r1, r5, 0 bl sub_8045BF8 ldr r0, _08045E38 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08045E3C b _08046048 .align 2, 0 _08045E34: .4byte gUnknown_202DE58 _08045E38: .4byte gUnknown_202DF98 _08045E3C: .4byte gUnknown_80F8F88 _08045E40: ldrb r0, [r5, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _08045E7C movs r0, 0xA6 lsls r0, 1 bl sub_8083E38 adds r0, r5, 0 bl sub_80915D4 bl sub_80913A0 ldr r0, _08045E74 adds r1, r5, 0 bl sub_8045BF8 mov r0, r10 movs r1, 0x1 bl sub_80461C8 ldr r0, _08045E78 b _08045FD0 .align 2, 0 _08045E74: .4byte gUnknown_202DE58 _08045E78: .4byte gUnknown_80F8FFC _08045E7C: ldr r0, _08045EA8 ldr r0, [r0] ldr r1, _08045EAC adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08045EB4 movs r4, 0 ldr r0, _08045EB0 mov r2, sp ldr r0, [r0] add r1, sp, 0x54 _08045E94: stm r1!, {r0} stm r2!, {r4} adds r0, 0x4 adds r4, 0x1 cmp r4, 0x13 ble _08045E94 movs r2, 0x14 mov r8, r2 b _08045EC4 .align 2, 0 _08045EA8: .4byte gUnknown_203B418 _08045EAC: .4byte 0x0000065b _08045EB0: .4byte gUnknown_203B460 _08045EB4: ldr r0, [sp, 0xAC] adds r0, 0x60 str r0, [sp, 0x54] movs r0, 0x1 negs r0, r0 str r0, [sp] movs r3, 0x1 mov r8, r3 _08045EC4: ldrb r0, [r5, 0x2] add r6, sp, 0xB0 strb r0, [r6] cmp r0, 0x8 bls _08045ED0 b _08046000 _08045ED0: ldrb r1, [r5] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08045EDC b _08046000 _08045EDC: movs r1, 0x1 negs r1, r1 mov r12, r1 mov r2, r12 str r2, [sp, 0xB4] movs r4, 0 cmp r4, r8 bge _08045F2C ldr r3, _08045FDC mov r9, r3 add r3, sp, 0x54 _08045EF2: ldr r2, [r3] ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08045F24 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08045F24 ldr r1, [r5] mov r6, r9 ands r1, r6 ldr r0, [r2] ands r0, r6 cmp r1, r0 bne _08045F24 ldrb r0, [r2, 0x1] cmp r0, 0x63 beq _08045F24 ldr r1, [sp, 0xB4] cmp r1, r0 bge _08045F24 str r0, [sp, 0xB4] mov r12, r4 _08045F24: adds r3, 0x4 adds r4, 0x1 cmp r4, r8 blt _08045EF2 _08045F2C: movs r0, 0x1 negs r0, r0 cmp r12, r0 bne _08045F80 mov r2, r12 str r2, [sp, 0xB4] movs r4, 0 cmp r4, r8 bge _08045F78 add r3, sp, 0xB0 ldrb r3, [r3] mov r9, r3 add r3, sp, 0x54 _08045F46: ldr r2, [r3] ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08045F70 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08045F70 ldrb r6, [r2, 0x2] cmp r9, r6 bne _08045F70 ldrb r0, [r2, 0x1] cmp r0, 0x63 beq _08045F70 ldr r1, [sp, 0xB4] cmp r1, r0 bge _08045F70 str r0, [sp, 0xB4] mov r12, r4 _08045F70: adds r3, 0x4 adds r4, 0x1 cmp r4, r8 blt _08045F46 _08045F78: movs r0, 0x1 negs r0, r0 cmp r12, r0 beq _08046000 _08045F80: add r0, sp, 0x54 mov r2, r12 lsls r4, r2, 2 adds r3, r0, r4 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r5, 0x1] adds r1, r0 cmp r1, 0x62 ble _08045F96 movs r1, 0x63 _08045F96: strb r1, [r2, 0x1] ldrb r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08045FAC ldr r0, [r3] ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 strb r1, [r0] _08045FAC: ldr r0, _08045FE0 adds r1, r5, 0 bl sub_8045BF8 mov r0, r10 movs r1, 0x1 bl sub_80461C8 movs r0, 0xA5 lsls r0, 1 bl sub_8083E38 mov r3, sp adds r0, r3, r4 ldr r0, [r0] cmp r0, 0 bge _08045FE8 ldr r0, _08045FE4 _08045FD0: ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 b _08045FF2 .align 2, 0 _08045FDC: .4byte 0x00ff0008 _08045FE0: .4byte gUnknown_202DE58 _08045FE4: .4byte gUnknown_80F8FC4 _08045FE8: ldr r0, _08045FFC ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 _08045FF2: ldrb r0, [r5, 0x2] bl sub_8052EC0 b _080460E0 .align 2, 0 _08045FFC: .4byte gUnknown_80F8FF8 _08046000: movs r4, 0 cmp r4, r8 bge _0804602A ldr r0, [sp, 0x54] ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0804602A movs r3, 0x1 add r2, sp, 0x54 _08046016: adds r2, 0x4 adds r4, 0x1 cmp r4, r8 bge _0804602A ldr r0, [r2] ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _08046016 _0804602A: cmp r4, r8 bne _08046060 _0804602E: ldr r6, [sp, 0xA8] cmp r6, 0 beq _080460E0 ldr r0, _08046054 adds r1, r5, 0 bl sub_8045BF8 ldr r0, _08046058 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r0, _0804605C _08046048: ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 b _080460E0 .align 2, 0 _08046054: .4byte gUnknown_202DE58 _08046058: .4byte gUnknown_202DF98 _0804605C: .4byte gUnknown_80F8F54 _08046060: movs r0, 0xA5 lsls r0, 1 bl sub_8083E38 lsls r0, r4, 2 add r0, sp ldr r0, [r0] cmp r0, 0 bge _08046094 ldr r0, [r5] ldr r1, [sp, 0xAC] str r0, [r1, 0x60] ldr r0, _0804608C adds r1, r5, 0 bl sub_8045BF8 mov r0, r10 movs r1, 0x1 bl sub_80461C8 ldr r0, _08046090 b _080460AC .align 2, 0 _0804608C: .4byte gUnknown_202DE58 _08046090: .4byte gUnknown_80F8FC4 _08046094: adds r0, r5, 0 bl sub_8091290 lsls r0, 24 cmp r0, 0 beq _080460C0 ldr r0, _080460B8 adds r1, r7, 0 movs r2, 0 bl sub_8045B94 ldr r0, _080460BC _080460AC: ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 b _080460DA .align 2, 0 _080460B8: .4byte gUnknown_202DF98 _080460BC: .4byte gUnknown_80F8FAC _080460C0: ldr r0, _080460F0 adds r1, r5, 0 bl sub_8045BF8 mov r0, r10 movs r1, 0x1 bl sub_80461C8 ldr r0, _080460F4 ldr r1, [r0] adds r0, r7, 0 bl sub_80522A8 _080460DA: ldrb r0, [r5, 0x2] bl sub_8052EC0 _080460E0: add sp, 0xB8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080460F0: .4byte gUnknown_202DE58 _080460F4: .4byte gUnknown_80F8FF8 thumb_func_end sub_8045DB4 thumb_func_start sub_80460F8 sub_80460F8: push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r7, r2, 24 bl sub_8045708 adds r4, r0, 0 cmp r4, 0 bne _08046110 movs r0, 0 b _080461B6 _08046110: ldr r1, [r4, 0x70] ldr r0, [r6] str r0, [r1] ldr r2, [r4, 0x70] ldrb r1, [r2] movs r0, 0xEF ands r0, r1 strb r0, [r2] adds r1, r4, 0 adds r1, 0x20 movs r0, 0x1 strb r0, [r1] movs r1, 0 ldrsh r0, [r5, r1] movs r2, 0x2 ldrsh r1, [r5, r2] bl sub_8049590 str r4, [r0, 0x14] ldrh r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08046186 ldrb r0, [r6, 0x2] bl sub_80914E4 lsls r0, 24 cmp r0, 0 beq _08046186 ldrb r1, [r6] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08046170 cmp r7, 0 beq _08046186 adds r0, r6, 0 bl sub_8090C7C ldr r1, _08046168 ldr r2, [r1] ldr r1, _0804616C b _0804617E .align 2, 0 _08046168: .4byte gUnknown_203B418 _0804616C: .4byte 0x0000068c _08046170: adds r0, r6, 0 bl sub_8090CCC ldr r1, _080461BC ldr r2, [r1] movs r1, 0xD2 lsls r1, 3 _0804617E: adds r2, r1 ldr r1, [r2] adds r1, r0 str r1, [r2] _08046186: movs r6, 0 movs r4, 0 _0804618A: ldr r5, _080461BC ldr r0, [r5] lsls r1, r4, 2 ldr r2, _080461C0 adds r0, r2 adds r0, r1 ldr r0, [r0] bl sub_80450E0 lsls r0, 24 adds r1, r4, 0x1 cmp r0, 0 beq _080461A6 adds r6, r1, 0 _080461A6: adds r4, r1, 0 cmp r4, 0x3F ble _0804618A ldr r0, [r5] ldr r1, _080461C4 adds r0, r1 strh r6, [r0] movs r0, 0x1 _080461B6: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080461BC: .4byte gUnknown_203B418 _080461C0: .4byte 0x0001361c _080461C4: .4byte 0x00003904 thumb_func_end sub_80460F8 thumb_func_start sub_80461C8 sub_80461C8: push {r4-r7,lr} adds r2, r0, 0 lsls r1, 24 lsrs r7, r1, 24 movs r1, 0 ldrsh r0, [r2, r1] movs r3, 0x2 ldrsh r1, [r2, r3] bl sub_8049590 adds r6, r0, 0 ldr r5, [r6, 0x14] cmp r5, 0 beq _080461EE adds r0, r5, 0 bl sub_80450F8 cmp r0, 0x3 beq _080461F2 _080461EE: movs r0, 0 b _08046284 _080461F2: adds r0, r5, 0 bl sub_8045108 adds r4, r0, 0 ldrh r1, [r6] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0804624E ldrb r0, [r4, 0x2] bl sub_80914E4 lsls r0, 24 cmp r0, 0 beq _0804624E ldrb r1, [r4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08046238 cmp r7, 0 beq _0804624E adds r0, r4, 0 bl sub_8090C7C ldr r1, _08046230 ldr r2, [r1] ldr r1, _08046234 adds r2, r1 b _08046248 .align 2, 0 _08046230: .4byte gUnknown_203B418 _08046234: .4byte 0x0000068c _08046238: adds r0, r4, 0 bl sub_8090CCC ldr r1, _0804628C ldr r2, [r1] movs r3, 0xD2 lsls r3, 3 adds r2, r3 _08046248: ldr r1, [r2] subs r1, r0 str r1, [r2] _0804624E: movs r0, 0 str r0, [r6, 0x14] str r0, [r5] movs r6, 0 movs r4, 0 _08046258: ldr r5, _0804628C ldr r0, [r5] lsls r1, r4, 2 ldr r2, _08046290 adds r0, r2 adds r0, r1 ldr r0, [r0] bl sub_80450E0 lsls r0, 24 adds r1, r4, 0x1 cmp r0, 0 beq _08046274 adds r6, r1, 0 _08046274: adds r4, r1, 0 cmp r4, 0x3F ble _08046258 ldr r0, [r5] ldr r3, _08046294 adds r0, r3 strh r6, [r0] movs r0, 0x1 _08046284: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0804628C: .4byte gUnknown_203B418 _08046290: .4byte 0x0001361c _08046294: .4byte 0x00003904 thumb_func_end sub_80461C8 thumb_func_start sub_8046298 sub_8046298: ldrb r0, [r0, 0x2] ldr r1, _080462A8 ldr r1, [r1] lsls r0, 5 adds r0, r1 ldrb r0, [r0, 0xD] bx lr .align 2, 0 _080462A8: .4byte gItemParametersFile + 4 thumb_func_end sub_8046298 thumb_func_start sub_80462AC sub_80462AC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r4, r0, 0 ldr r0, [sp, 0x28] lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 24 lsrs r3, 24 mov r9, r3 lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _080462E4 b _08046498 _080462E4: cmp r5, 0 beq _08046316 movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C ldrh r0, [r0] movs r1, 0x3 ands r1, r0 cmp r1, 0 bne _08046300 b _08046498 _08046300: cmp r1, 0x2 bne _08046308 movs r3, 0x1 str r3, [sp, 0x4] _08046308: adds r0, r4, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 bne _08046316 b _08046498 _08046316: ldr r1, [r4, 0xC] cmp r1, 0 bge _0804631E adds r1, 0xFF _0804631E: asrs r1, 8 ldr r0, _080463A4 ldr r2, [r0] ldr r5, _080463A8 adds r0, r2, r5 movs r3, 0 ldrsh r0, [r0, r3] subs r6, r1, r0 ldr r3, [r4, 0x10] ldr r0, [r4, 0x1C] subs r1, r3, r0 cmp r1, 0 bge _0804633A adds r1, 0xFF _0804633A: asrs r1, 8 ldr r5, _080463AC adds r0, r2, r5 movs r5, 0 ldrsh r2, [r0, r5] subs r1, r2 mov r8, r1 adds r0, r3, 0 cmp r0, 0 bge _08046350 adds r0, 0xFF _08046350: asrs r0, 8 subs r0, r2 adds r7, r0, 0 adds r7, 0x8 lsrs r0, r7, 31 adds r0, r7, r0 asrs r7, r0, 1 movs r0, 0x20 negs r0, r0 cmp r6, r0 bge _08046368 b _08046498 _08046368: cmp r8, r0 bge _0804636E b _08046498 _0804636E: movs r0, 0x88 lsls r0, 1 cmp r6, r0 ble _08046378 b _08046498 _08046378: mov r0, r8 cmp r0, 0xC0 ble _08046380 b _08046498 _08046380: ldr r5, _080463B0 ldrh r1, [r5, 0x2] ldr r0, _080463B4 ands r0, r1 strh r0, [r5, 0x2] mov r1, r10 cmp r1, 0 beq _080463BC movs r2, 0x17 mov r10, r2 movs r2, 0xA0 lsls r2, 8 ldrh r1, [r5, 0x4] ldr r0, _080463B8 ands r0, r1 orrs r0, r2 strh r0, [r5, 0x4] b _08046408 .align 2, 0 _080463A4: .4byte gUnknown_203B418 _080463A8: .4byte 0x000181f0 _080463AC: .4byte 0x000181f2 _080463B0: .4byte gUnknown_202EDC0 _080463B4: .4byte 0x0000c1ff _080463B8: .4byte 0x00000fff _080463BC: ldr r0, [r4, 0x70] bl sub_8046298 mov r10, r0 mov r3, r9 cmp r3, 0xFF beq _080463EE cmp r0, 0 bne _080463EE ldr r0, _08046478 add r0, r9 ldrb r0, [r0] mov r10, r0 ldr r0, _0804647C add r0, r9 ldrb r1, [r0] lsls r1, 3 movs r0, 0x1F ands r1, r0 lsls r1, 9 ldrh r2, [r5, 0x2] ldr r0, _08046480 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x2] _080463EE: ldr r0, [r4, 0x70] ldrb r0, [r0, 0x2] bl sub_8090D58 movs r1, 0xF ands r0, r1 lsls r0, 12 ldr r3, _08046484 ldrh r2, [r3, 0x4] ldr r1, _08046488 ands r1, r2 orrs r1, r0 strh r1, [r3, 0x4] _08046408: ldr r1, _08046488 mov r5, r8 ands r1, r5 lsls r1, 4 ldr r4, _08046484 ldrh r2, [r4, 0x6] movs r0, 0xF ands r0, r2 orrs r0, r1 strh r0, [r4, 0x6] ldr r0, _0804648C ands r6, r0 ldrh r1, [r4, 0x2] movs r0, 0xFE lsls r0, 8 ands r0, r1 orrs r0, r6 strh r0, [r4, 0x2] ldr r0, [sp, 0x4] lsls r3, r0, 10 ldrh r2, [r4] ldr r1, _08046490 adds r0, r1, 0 ands r0, r2 orrs r0, r3 strh r0, [r4] movs r2, 0xC0 lsls r2, 4 ldrh r0, [r4, 0x4] ands r1, r0 orrs r1, r2 mov r2, r10 lsls r0, r2, 2 movs r3, 0xD0 lsls r3, 1 adds r0, r3 ldr r2, _08046494 ands r0, r2 movs r2, 0xFC lsls r2, 8 ands r1, r2 orrs r1, r0 strh r1, [r4, 0x4] ldr r5, [sp] cmp r5, 0 bne _08046466 movs r7, 0x1 _08046466: adds r0, r4, 0 adds r1, r7, 0 movs r2, 0 movs r3, 0 bl AddSprite movs r0, 0x1 b _0804649A .align 2, 0 _08046478: .4byte gUnknown_203B420 _0804647C: .4byte gUnknown_203B428 _08046480: .4byte 0x0000c1ff _08046484: .4byte gUnknown_202EDC0 _08046488: .4byte 0x00000fff _0804648C: .4byte 0x000001ff _08046490: .4byte 0x0000f3ff _08046494: .4byte 0x000003ff _08046498: movs r0, 0 _0804649A: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80462AC thumb_func_start sub_80464AC sub_80464AC: push {r4,lr} ldr r4, _080464C4 ldrb r0, [r0, 0x2] bl sub_8090D6C lsls r0, 3 adds r0, r4 ldr r0, [r0] pop {r4} pop {r1} bx r1 .align 2, 0 _080464C4: .4byte gUnknown_80F7B14 thumb_func_end sub_80464AC thumb_func_start sub_80464C8 sub_80464C8: push {r4-r6,lr} sub sp, 0x78 adds r6, r0, 0 adds r3, r1, 0 adds r5, r2, 0 movs r0, 0x3 str r0, [sp, 0x4] add r0, sp, 0x28 movs r4, 0 strb r4, [r0] add r1, sp, 0x24 movs r0, 0x1 strb r0, [r1] mov r0, sp adds r0, 0x26 strb r4, [r0] str r5, [sp, 0x74] ldr r0, [r3] str r0, [sp, 0x8] movs r1, 0 ldrsh r0, [r3, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x4 lsls r1, 8 movs r2, 0x2 ldrsh r0, [r3, r2] lsls r2, r0, 1 adds r2, r0 lsls r2, 3 adds r2, 0x4 lsls r2, 8 add r0, sp, 0x4 bl sub_8045394 add r0, sp, 0x4 strh r4, [r0, 0x26] str r4, [sp] adds r0, r6, 0 add r1, sp, 0x4 adds r2, r5, 0 movs r3, 0x1 bl sub_804652C add sp, 0x78 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80464C8 thumb_func_start sub_804652C sub_804652C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r10, r0 adds r5, r1, 0 mov r9, r2 lsls r3, 24 lsrs r6, r3, 24 movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_804954C adds r4, r0, 0 ldr r0, [r4, 0x14] movs r3, 0 str r3, [sp, 0xC] cmp r0, 0 beq _0804658C bl sub_80450F8 cmp r0, 0x2 bne _0804658C adds r4, r5, 0x4 adds r0, r5, 0 adds r1, r4, 0 bl sub_8046734 adds r0, r4, 0 movs r1, 0x1 bl sub_807FE44 ldr r0, _080465A4 ldr r1, [r0] mov r0, r10 bl sub_80522A8 mov r0, r9 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0804658C b _0804671E _0804658C: ldrh r1, [r5, 0x6] lsls r1, 16 ldrh r0, [r5, 0x4] orrs r0, r1 str r0, [sp] mov r8, r0 movs r7, 0x1 cmp r6, 0 beq _08046632 movs r7, 0 b _08046632 .align 2, 0 _080465A4: .4byte gUnknown_80FED30 _080465A8: lsls r3, r7, 2 adds r3, r0 ldrh r0, [r3] ldrh r1, [r5, 0x4] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _08046628 ldr r2, [sp] ands r2, r1 orrs r2, r0 str r2, [sp] ldrh r0, [r3, 0x2] ldrh r3, [r5, 0x6] adds r0, r3 lsls r0, 16 ldr r1, _0804662C ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] asrs r1, 16 bl sub_804954C adds r4, r0, 0 ldrh r1, [r4] movs r6, 0x3 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08046630 movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 bne _08046630 ldr r0, [r4, 0x14] cmp r0, 0 bne _08046630 adds r0, r5, 0 mov r1, sp bl sub_8046734 ldr r3, [sp] mov r8, r3 ldrh r1, [r4] adds r0, r6, 0 ands r0, r1 cmp r0, 0x3 beq _08046620 mov r0, sp mov r1, r9 movs r2, 0x1 bl sub_80460F8 lsls r0, 24 cmp r0, 0 beq _08046644 _08046620: movs r0, 0x1 str r0, [sp, 0xC] b _08046644 .align 2, 0 _08046628: .4byte 0xffff0000 _0804662C: .4byte 0x0000ffff _08046630: adds r7, 0x1 _08046632: ldr r0, _08046688 lsls r1, r7, 2 adds r1, r0 movs r2, 0 ldrsh r1, [r1, r2] cmp r1, 0x63 bne _080465A8 movs r3, 0 str r3, [sp, 0xC] _08046644: ldr r0, _0804668C mov r1, r9 bl sub_8045BF8 ldr r0, [sp, 0xC] cmp r0, 0 beq _080466C8 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] mov r4, sp movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_80402AC mov r0, sp movs r3, 0 ldrsh r0, [r0, r3] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C ldrh r0, [r0] movs r1, 0x3 ands r1, r0 adds r0, r1, 0 cmp r1, 0x1 beq _0804669A cmp r1, 0x1 bgt _08046690 cmp r1, 0 beq _080466AC b _0804671E .align 2, 0 _08046688: .4byte gUnknown_80F4468 _0804668C: .4byte gUnknown_202DE58 _08046690: cmp r0, 0x2 beq _080466A4 cmp r0, 0x3 beq _080466B4 b _0804671E _0804669A: ldr r0, _080466A0 b _080466B6 .align 2, 0 _080466A0: .4byte gUnknown_80F93E8 _080466A4: ldr r0, _080466A8 b _080466B6 .align 2, 0 _080466A8: .4byte gUnknown_80F9408 _080466AC: ldr r0, _080466B0 b _080466B6 .align 2, 0 _080466B0: .4byte gUnknown_80F9424 _080466B4: ldr r0, _080466C4 _080466B6: ldr r2, [r0] mov r0, r10 mov r1, sp bl sub_8052364 b _0804671E .align 2, 0 _080466C4: .4byte gUnknown_80F949C _080466C8: mov r3, r8 lsls r1, r3, 16 asrs r1, 16 lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r1, 0xC0 lsls r1, 4 adds r0, r1 str r0, [sp, 0x4] asrs r1, r3, 16 lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r2, 0xC0 lsls r2, 4 adds r0, r2 add r2, sp, 0x4 str r0, [r2, 0x4] ldr r3, [sp, 0x30] cmp r3, 0 beq _0804670C movs r1, 0 ldrsh r0, [r3, r1] lsls r0, 8 ldr r1, [sp, 0x4] adds r0, r1 str r0, [sp, 0x4] movs r1, 0x2 ldrsh r0, [r3, r1] lsls r0, 8 ldr r1, [r2, 0x4] adds r0, r1 str r0, [r2, 0x4] _0804670C: adds r0, r2, 0 bl sub_804219C ldr r0, _08046730 ldr r2, [r0] mov r0, r10 mov r1, sp bl sub_8052364 _0804671E: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08046730: .4byte gUnknown_80F943C thumb_func_end sub_804652C thumb_func_start sub_8046734 sub_8046734: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 mov r8, r0 ldr r0, _08046858 ldr r0, [r0] ldr r2, _0804685C adds r0, r2 ldrb r0, [r0] str r0, [sp, 0xC] movs r0, 0 ldrsh r2, [r1, r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r0, 0x4 lsls r4, r0, 8 movs r2, 0x2 ldrsh r1, [r1, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, 0x4 lsls r5, r0, 8 mov r1, r8 ldr r0, [r1, 0xC] subs r0, r4 cmp r0, 0 bge _08046776 negs r0, r0 _08046776: mov r2, r8 ldr r2, [r2, 0x10] mov r9, r2 cmp r0, 0xB bgt _0804678C subs r0, r2, r5 cmp r0, 0 bge _08046788 negs r0, r0 _08046788: cmp r0, 0xB ble _08046822 _0804678C: movs r0, 0 mov r10, r0 movs r1, 0 str r1, [sp, 0x10] mov r2, r8 ldr r0, [r2, 0xC] str r0, [sp, 0x4] mov r1, r9 str r1, [sp, 0x8] subs r0, r4, r0 movs r1, 0x18 bl __divsi3 adds r6, r0, 0 mov r2, r9 subs r0, r5, r2 movs r1, 0x18 bl __divsi3 adds r7, r0, 0 movs r0, 0 mov r9, r0 mov r1, sp adds r1, 0x4 str r1, [sp, 0x14] _080467BE: ldr r0, [sp, 0x4] adds r0, r6 str r0, [sp, 0x4] ldr r2, [sp, 0x14] ldr r0, [r2, 0x4] adds r0, r7 str r0, [r2, 0x4] ldr r0, [sp, 0x10] bl sub_8009C7C lsls r1, r0, 1 adds r1, r0 lsls r1, 2 mov r0, r8 str r1, [r0, 0x1C] add r1, sp, 0x4 bl sub_804535C mov r1, r10 lsls r3, r1, 24 lsrs r3, 24 movs r0, 0 str r0, [sp] mov r0, r8 ldr r1, [sp, 0xC] movs r2, 0 bl sub_80462AC movs r0, 0x13 bl sub_803E46C ldr r2, [sp, 0x10] adds r2, 0x55 str r2, [sp, 0x10] movs r0, 0x3 mov r1, r9 ands r0, r1 cmp r0, 0 bne _08046810 movs r2, 0x1 add r10, r2 _08046810: movs r0, 0x7 mov r1, r10 ands r1, r0 mov r10, r1 movs r2, 0x1 add r9, r2 mov r0, r9 cmp r0, 0x17 ble _080467BE _08046822: mov r0, r8 adds r1, r4, 0 adds r2, r5, 0 bl sub_8045394 movs r0, 0 mov r1, r8 str r0, [r1, 0x1C] str r0, [sp] mov r0, r8 ldr r1, [sp, 0xC] movs r2, 0x1 movs r3, 0xFF bl sub_80462AC movs r0, 0x13 bl sub_803E46C add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08046858: .4byte gUnknown_203B418 _0804685C: .4byte 0x00018210 thumb_func_end sub_8046734 thumb_func_start sub_8046860 sub_8046860: push {r4,r5,lr} sub sp, 0x4 adds r4, r1, 0 adds r5, r2, 0 str r3, [sp] adds r2, r4, 0 adds r3, r5, 0 bl sub_804687C add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8046860 thumb_func_start sub_804687C sub_804687C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08046970 add sp, r4 ldr r5, _08046974 add r5, sp str r0, [r5] movs r0, 0xA5 lsls r0, 3 add r0, sp str r1, [r0] mov r8, r2 ldr r1, _08046978 add r1, sp str r3, [r1] movs r1, 0 movs r7, 0x1D ldr r0, _0804697C add r0, sp _080468A8: strb r1, [r0] subs r0, 0x1 subs r7, 0x1 cmp r7, 0 bge _080468A8 movs r7, 0 movs r2, 0xAD lsls r2, 3 add r2, sp ldr r2, [r2] cmp r7, r2 blt _080468C2 b _080469DE _080468C2: ldr r3, _08046980 mov r9, r3 ldr r5, _08046984 movs r0, 0 ldrsh r5, [r5, r0] ldr r0, _08046988 add r0, sp str r5, [r0] _080468D2: mov r1, r8 ldrh r0, [r1] ldr r1, _0804698C ands r4, r1 orrs r4, r0 mov r2, r8 ldrh r0, [r2, 0x2] lsls r0, 16 mov r3, r9 ands r4, r3 orrs r4, r0 movs r5, 0 adds r0, r7, 0x1 mov r10, r0 ldr r1, _08046984 ldr r2, _08046988 add r2, sp ldr r2, [r2] cmp r2, 0x63 beq _080469B0 ldr r3, _08046990 add r3, sp ldr r0, _08046994 add r0, sp str r3, [r0] _08046904: ldr r0, _08046998 add r0, sp adds r6, r0, r5 ldrb r0, [r6] cmp r0, 0 bne _0804699C lsls r2, r5, 2 adds r2, r1 ldrh r0, [r2] mov r1, r8 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _0804698C ands r4, r1 orrs r4, r0 ldrh r0, [r2, 0x2] mov r2, r8 ldrh r2, [r2, 0x2] adds r0, r2 lsls r0, 16 mov r3, r9 ands r4, r3 orrs r4, r0 lsls r0, r4, 16 asrs r0, 16 asrs r1, r4, 16 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0804699C movs r3, 0x80 lsls r3, 2 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0804699C ldr r0, [r2, 0x14] cmp r0, 0 bne _0804699C lsls r0, r7, 2 ldr r5, _08046994 add r5, sp ldr r5, [r5] adds r0, r5, r0 str r4, [r0] movs r0, 0x1 strb r0, [r6] b _080469CE .align 2, 0 _08046970: .4byte 0xfffffab8 _08046974: .4byte 0x00000524 _08046978: .4byte 0x0000052c _0804697C: .4byte 0x00000521 _08046980: .4byte 0x0000ffff _08046984: .4byte gUnknown_80F4468 _08046988: .4byte 0x00000534 _0804698C: .4byte 0xffff0000 _08046990: .4byte 0x0000048c _08046994: .4byte 0x00000544 _08046998: .4byte 0x00000504 _0804699C: adds r5, 0x1 cmp r5, 0x1D bgt _080469B0 lsls r0, r5, 2 ldr r1, _08046A18 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x63 bne _08046904 _080469B0: movs r3, 0 cmp r3, 0 bne _080469CE ldr r1, _08046A1C add r1, sp lsls r0, r7, 2 adds r1, r0 ldrh r2, [r1] mov r0, r9 orrs r0, r2 strh r0, [r1] ldrh r2, [r1, 0x2] mov r0, r9 orrs r0, r2 strh r0, [r1, 0x2] _080469CE: mov r7, r10 movs r5, 0xAD lsls r5, 3 add r5, sp ldr r5, [r5] cmp r7, r5 bge _080469DE b _080468D2 _080469DE: movs r1, 0 mov r9, r1 movs r7, 0 movs r0, 0xAD lsls r0, 3 add r0, sp ldr r0, [r0] cmp r7, r0 blt _080469F2 b _08046B0A _080469F2: movs r2, 0 mov r8, r2 _080469F6: ldr r0, _08046A1C add r0, sp lsls r2, r7, 2 adds r3, r0, r2 movs r4, 0 ldrsh r0, [r3, r4] cmp r0, 0 bge _08046A20 movs r0, 0x74 muls r0, r7 add r0, sp adds r0, 0x4 mov r5, r8 str r5, [r0] movs r0, 0x1 mov r9, r0 b _08046AFA .align 2, 0 _08046A18: .4byte gUnknown_80F4468 _08046A1C: .4byte 0x0000048c _08046A20: movs r0, 0x74 adds r6, r7, 0 muls r6, r0 mov r4, sp adds r4, r6 adds r4, 0x4 movs r0, 0x3 str r0, [r4] adds r0, r4, 0 adds r0, 0x24 mov r1, r8 strb r1, [r0] adds r1, r4, 0 adds r1, 0x20 movs r0, 0x1 strb r0, [r1] adds r0, r4, 0 adds r0, 0x22 mov r5, r8 strb r5, [r0] add r0, sp, 0x74 adds r0, r6 ldr r1, _08046B2C add r1, sp ldr r1, [r1] adds r2, r1, r2 str r2, [r0] add r0, sp, 0x8 adds r0, r6 ldr r1, [r3] str r1, [r0] movs r2, 0xA5 lsls r2, 3 add r2, sp ldr r2, [r2] movs r5, 0 ldrsh r0, [r2, r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x4 lsls r1, 8 movs r5, 0x2 ldrsh r0, [r2, r5] lsls r2, r0, 1 adds r2, r0 lsls r2, 3 adds r2, 0x4 lsls r2, 8 adds r0, r4, 0 movs r5, 0xA8 lsls r5, 3 add r5, sp str r3, [r5] bl sub_8045394 mov r0, r8 strh r0, [r4, 0x26] ldr r4, _08046B30 add r4, sp lsls r5, r7, 3 adds r4, r5 movs r1, 0xA8 lsls r1, 3 add r1, sp ldr r3, [r1] movs r2, 0 ldrsh r1, [r3, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, 0x4 lsls r0, 8 add r1, sp, 0x10 adds r1, r6 ldr r1, [r1] subs r0, r1 movs r1, 0x18 movs r2, 0xA8 lsls r2, 3 add r2, sp str r3, [r2] bl __divsi3 str r0, [r4] movs r4, 0x97 lsls r4, 3 add r4, sp adds r4, r5 movs r5, 0xA8 lsls r5, 3 add r5, sp ldr r3, [r5] movs r0, 0x2 ldrsh r1, [r3, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, 0x4 lsls r0, 8 add r1, sp, 0x14 adds r1, r6 ldr r1, [r1] subs r0, r1 movs r1, 0x18 bl __divsi3 str r0, [r4] movs r1, 0x1 _08046AFA: adds r7, 0x1 movs r2, 0xAD lsls r2, 3 add r2, sp ldr r2, [r2] cmp r7, r2 bge _08046B0A b _080469F6 _08046B0A: cmp r1, 0 bne _08046B54 movs r3, 0xAD lsls r3, 3 add r3, sp ldr r3, [r3] cmp r3, 0x1 ble _08046B3C ldr r0, _08046B34 ldr r1, [r0] ldr r4, _08046B38 add r4, sp ldr r0, [r4] bl sub_80522A8 b _08046C7C .align 2, 0 _08046B2C: .4byte 0x0000052c _08046B30: .4byte 0x000004b4 _08046B34: .4byte gUnknown_80F945C _08046B38: .4byte 0x00000524 _08046B3C: ldr r0, _08046B4C ldr r1, [r0] ldr r5, _08046B50 add r5, sp ldr r0, [r5] bl sub_80522A8 b _08046C7C .align 2, 0 _08046B4C: .4byte gUnknown_80F943C _08046B50: .4byte 0x00000524 _08046B54: mov r0, r9 cmp r0, 0 beq _08046B68 ldr r0, _08046C90 ldr r1, [r0] ldr r2, _08046C94 add r2, sp ldr r0, [r2] bl sub_80522A8 _08046B68: movs r3, 0 mov r9, r3 ldr r0, _08046C98 ldr r0, [r0] ldr r4, _08046C9C adds r0, r4 ldrb r0, [r0] movs r5, 0xA6 lsls r5, 3 add r5, sp str r0, [r5] mov r10, r3 movs r6, 0 _08046B82: movs r7, 0 mov r0, r10 adds r0, 0x55 movs r1, 0xA7 lsls r1, 3 add r1, sp str r0, [r1] adds r2, r6, 0x1 ldr r3, _08046CA0 add r3, sp str r2, [r3] movs r4, 0xAD lsls r4, 3 add r4, sp ldr r4, [r4] cmp r7, r4 bge _08046C14 mov r5, r9 lsls r5, 24 mov r8, r5 _08046BAA: movs r0, 0x74 adds r5, r7, 0 muls r5, r0 mov r4, sp adds r4, r5 adds r4, 0x4 adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08046C06 ldr r0, _08046CA4 add r0, sp lsls r2, r7, 3 adds r0, r2 ldr r1, [r0] movs r0, 0x97 lsls r0, 3 add r0, sp adds r0, r2 ldr r2, [r0] adds r0, r4, 0 bl sub_804539C mov r0, r10 bl sub_8009C7C add r2, sp, 0x20 adds r2, r5 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 str r1, [r2] movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0xA6 lsls r2, 3 add r2, sp ldr r1, [r2] movs r2, 0x1 mov r4, r8 lsrs r3, r4, 24 bl sub_80462AC _08046C06: adds r7, 0x1 movs r5, 0xAD lsls r5, 3 add r5, sp ldr r5, [r5] cmp r7, r5 blt _08046BAA _08046C14: movs r0, 0x13 bl sub_803E46C movs r0, 0xA7 lsls r0, 3 add r0, sp ldr r0, [r0] mov r10, r0 movs r0, 0x3 ands r0, r6 cmp r0, 0 bne _08046C30 movs r1, 0x1 add r9, r1 _08046C30: movs r0, 0x7 mov r2, r9 ands r2, r0 mov r9, r2 ldr r3, _08046CA0 add r3, sp ldr r6, [r3] cmp r6, 0x17 ble _08046B82 movs r4, 0xAD lsls r4, 3 add r4, sp ldr r4, [r4] cmp r4, 0 ble _08046C7C ldr r0, _08046CA8 add r0, sp ldr r5, [r0] ldr r4, _08046CAC add r4, sp movs r1, 0xAD lsls r1, 3 add r1, sp ldr r7, [r1] _08046C60: movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0 blt _08046C72 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_80460F8 _08046C72: adds r5, 0x4 adds r4, 0x4 subs r7, 0x1 cmp r7, 0 bne _08046C60 _08046C7C: movs r3, 0xA9 lsls r3, 3 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08046C90: .4byte gUnknown_80F947C _08046C94: .4byte 0x00000524 _08046C98: .4byte gUnknown_203B418 _08046C9C: .4byte 0x00018210 _08046CA0: .4byte 0x0000053c _08046CA4: .4byte 0x000004b4 _08046CA8: .4byte 0x0000052c _08046CAC: .4byte 0x0000048c thumb_func_end sub_804687C thumb_func_start sub_8046CB0 sub_8046CB0: push {lr} lsls r1, 24 lsrs r1, 24 ldr r0, [r0, 0x70] adds r3, r0, 0 adds r0, 0x60 ldrb r2, [r0] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _08046CDC movs r0, 0x8 ands r0, r2 cmp r0, 0 bne _08046CDC adds r0, r3, 0 adds r0, 0x62 ldrb r0, [r0] cmp r0, r1 bne _08046CDC movs r0, 0x1 b _08046CDE _08046CDC: movs r0, 0 _08046CDE: pop {r1} bx r1 thumb_func_end sub_8046CB0 thumb_func_start sub_8046CE4 sub_8046CE4: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x64 bl sub_8084100 adds r1, r0, 0 movs r2, 0 ldr r3, _08046D04 _08046CF6: lsls r0, r1, 2 adds r0, r3 ldr r0, [r0] cmp r0, r5 bgt _08046D08 strb r1, [r4, 0x1] b _08046D18 .align 2, 0 _08046D04: .4byte gUnknown_810A3F0 _08046D08: lsrs r0, r1, 31 adds r0, r1, r0 asrs r1, r0, 1 adds r2, 0x1 cmp r2, 0xC7 ble _08046CF6 movs r0, 0x1 strb r0, [r4, 0x1] _08046D18: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8046CE4 thumb_func_start sub_8046D20 sub_8046D20: push {r4,r5,lr} ldr r4, _08046D5C ldr r0, [r4] ldrb r5, [r0, 0x8] bl sub_8046D70 ldr r1, [r4] strb r0, [r1, 0x8] ldr r0, [r4] ldrb r0, [r0, 0x8] cmp r0, 0x1 bne _08046D64 cmp r5, 0 bne _08046D64 ldr r0, _08046D60 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C adds r1, r0, 0 cmp r1, 0x1 bne _08046D64 ldr r0, [r4] strb r1, [r0, 0x4] ldr r1, [r4] movs r0, 0x2 strb r0, [r1, 0x11] b _08046D68 .align 2, 0 _08046D5C: .4byte gUnknown_203B418 _08046D60: .4byte gUnknown_80FA408 _08046D64: bl sub_8046D8C _08046D68: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8046D20 thumb_func_start sub_8046D70 sub_8046D70: push {lr} ldr r0, _08046D84 ldr r0, [r0] ldr r1, _08046D88 adds r0, r1 ldrb r0, [r0] movs r0, 0 pop {r1} bx r1 .align 2, 0 _08046D84: .4byte gUnknown_203B418 _08046D88: .4byte 0x0000068a thumb_func_end sub_8046D70 thumb_func_start sub_8046D8C sub_8046D8C: push {r4-r7,lr} sub sp, 0xC movs r6, 0 ldr r5, _08046EDC movs r4, 0 _08046D96: movs r7, 0 movs r0, 0x1 negs r0, r0 str r0, [sp] str r0, [sp, 0x4] str r0, [sp, 0x8] movs r3, 0 ldr r2, [r5] _08046DA6: ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08046DC8 ldrb r0, [r2, 0x2] cmp r0, 0x79 bne _08046DB8 str r3, [sp] _08046DB8: ldrb r0, [r2, 0x2] cmp r0, 0x77 bne _08046DC0 str r3, [sp, 0x4] _08046DC0: ldrb r0, [r2, 0x2] cmp r0, 0x78 bne _08046DC8 str r3, [sp, 0x8] _08046DC8: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x13 ble _08046DA6 ldr r1, [sp] cmp r1, 0 blt _08046E1E ldr r0, [sp, 0x4] cmp r0, 0 blt _08046E1E ldr r0, [sp, 0x8] cmp r0, 0 blt _08046E1E movs r7, 0x1 movs r6, 0x1 lsls r1, 2 ldr r0, [r5] adds r1, r0 strb r4, [r1, 0x2] strb r4, [r1, 0x1] strb r4, [r1] ldr r0, [sp, 0x4] lsls r0, 2 ldr r1, [r5] adds r0, r1 strb r4, [r0, 0x2] strb r4, [r0, 0x1] strb r4, [r0] ldr r0, [sp, 0x8] lsls r0, 2 ldr r1, [r5] adds r0, r1 strb r4, [r0, 0x2] strb r4, [r0, 0x1] strb r4, [r0] ldr r1, [sp] lsls r1, 2 ldr r0, [r5] adds r0, r1 movs r1, 0x7A movs r2, 0 bl sub_8090A8C _08046E1E: cmp r7, 0 bne _08046D96 bl sub_80910B4 cmp r6, 0 beq _08046ED4 bl sub_8083600 adds r4, r0, 0 ldr r0, _08046EE0 bl sub_80855E4 ldr r6, _08046EE4 ldr r0, [r6] ldr r5, _08046EE8 adds r0, r5 movs r1, 0x1 strb r1, [r0] ldr r0, _08046EEC ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage movs r0, 0x3C movs r1, 0x41 bl sub_803E708 ldr r0, _08046EF0 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage adds r0, r4, 0 movs r1, 0x4 movs r2, 0xA movs r3, 0 bl sub_80869E4 adds r0, r4, 0 adds r0, 0xC movs r1, 0x86 lsls r1, 1 movs r2, 0 bl sub_80416E0 adds r0, r4, 0 movs r1, 0xD7 bl sub_80421C0 movs r0, 0x3C movs r1, 0x41 bl sub_803E708 ldr r0, _08046EF4 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08046EF8 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage movs r0, 0xA movs r1, 0x41 bl sub_803E708 movs r0, 0xD4 bl sub_8083E38 ldr r0, _08046EFC ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage movs r0, 0xA movs r1, 0x41 bl sub_803E708 movs r0, 0x1 bl sub_804178C ldr r0, [r6] adds r0, r5 strb r7, [r0] bl sub_8040A84 _08046ED4: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08046EDC: .4byte gUnknown_203B460 _08046EE0: .4byte sub_80861A8 _08046EE4: .4byte gUnknown_203B418 _08046EE8: .4byte 0x0001356c _08046EEC: .4byte gUnknown_810531C _08046EF0: .4byte gUnknown_8105360 _08046EF4: .4byte gUnknown_202DF98 _08046EF8: .4byte gUnknown_81053A8 _08046EFC: .4byte gUnknown_8105434 thumb_func_end sub_8046D8C thumb_func_start sub_8046F00 sub_8046F00: push {r4-r7,lr} adds r4, r0, 0 ldrb r0, [r4, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _08046F7C ldrb r0, [r4, 0x2] bl sub_80913CC lsls r0, 16 lsrs r7, r0, 16 ldrb r0, [r4, 0x2] bl sub_80915A0 lsls r0, 24 cmp r0, 0 bne _08046F6E movs r6, 0 _08046F2A: ldr r0, _08046F74 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _08046F78 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08046F68 ldr r0, [r4, 0x70] movs r2, 0x2 ldrsh r1, [r0, r2] adds r0, r7, 0 bl sub_808E190 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 movs r1, 0 bl sub_8070B6C lsls r0, 24 cmp r0, 0 beq _08046F64 movs r5, 0 _08046F64: cmp r5, 0 bne _08046F7C _08046F68: adds r6, 0x1 cmp r6, 0x3 ble _08046F2A _08046F6E: movs r0, 0 b _08046F7E .align 2, 0 _08046F74: .4byte gUnknown_203B418 _08046F78: .4byte 0x0001357c _08046F7C: movs r0, 0x1 _08046F7E: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8046F00 thumb_func_start sub_8046F84 sub_8046F84: push {r4-r7,lr} adds r7, r0, 0 movs r5, 0 ldr r4, _08047000 movs r6, 0x1 movs r3, 0 _08046F90: lsls r1, r5, 2 ldr r0, [r4] adds r2, r0, r1 ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08046FAE ldrb r0, [r2] ands r0, r7 cmp r0, 0 beq _08046FAE strb r3, [r2, 0x2] strb r3, [r2, 0x1] strb r3, [r2] _08046FAE: adds r5, 0x1 cmp r5, 0x13 ble _08046F90 bl sub_80910B4 movs r5, 0 movs r6, 0 _08046FBC: ldr r0, _08047004 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08047008 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08046FF4 ldr r0, [r4, 0x70] adds r2, r0, 0 adds r2, 0x60 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08046FF4 ldrb r0, [r2] ands r0, r7 cmp r0, 0 beq _08046FF4 strb r6, [r2, 0x2] strb r6, [r2, 0x1] strb r6, [r2] _08046FF4: adds r5, 0x1 cmp r5, 0x3 ble _08046FBC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08047000: .4byte gUnknown_203B460 _08047004: .4byte gUnknown_203B418 _08047008: .4byte 0x0001357c thumb_func_end sub_8046F84 thumb_func_start sub_804700C sub_804700C: push {r4,r5,lr} movs r5, 0 ldr r4, _08047078 _08047012: lsls r1, r5, 2 ldr r0, [r4] adds r2, r0, r1 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0804702C adds r0, r2, 0 movs r1, 0x46 movs r2, 0 bl sub_8090A8C _0804702C: adds r5, 0x1 cmp r5, 0x13 ble _08047012 bl sub_80910B4 movs r5, 0 _08047038: ldr r0, _0804707C ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08047080 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0804706C ldr r0, [r4, 0x70] adds r2, r0, 0 adds r2, 0x60 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0804706C adds r0, r2, 0 movs r1, 0x46 movs r2, 0 bl sub_8090A8C _0804706C: adds r5, 0x1 cmp r5, 0x3 ble _08047038 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08047078: .4byte gUnknown_203B460 _0804707C: .4byte gUnknown_203B418 _08047080: .4byte 0x0001357c thumb_func_end sub_804700C thumb_func_start sub_8047084 sub_8047084: push {r4-r6,lr} adds r6, r0, 0 movs r5, 0 ldr r0, _080470E8 ldr r2, [r0] movs r3, 0x1 _08047090: ldrb r1, [r2] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080470A2 ldrb r0, [r2] ands r0, r6 cmp r0, 0 bne _080470E2 _080470A2: adds r2, 0x4 adds r5, 0x1 cmp r5, 0x13 ble _08047090 bl sub_80910B4 movs r5, 0 _080470B0: ldr r0, _080470EC ldr r0, [r0] lsls r1, r5, 2 ldr r2, _080470F0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _080470F4 ldr r0, [r4, 0x70] adds r2, r0, 0 adds r2, 0x60 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080470F4 ldrb r0, [r2] ands r0, r6 cmp r0, 0 beq _080470F4 _080470E2: movs r0, 0x1 b _080470FC .align 2, 0 _080470E8: .4byte gUnknown_203B460 _080470EC: .4byte gUnknown_203B418 _080470F0: .4byte 0x0001357c _080470F4: adds r5, 0x1 cmp r5, 0x3 ble _080470B0 movs r0, 0 _080470FC: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8047084 thumb_func_start sub_8047104 sub_8047104: push {r4-r6,lr} movs r6, 0 movs r5, 0 _0804710A: ldr r0, _08047154 lsls r1, r6, 2 ldr r0, [r0] adds r4, r0, r1 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08047142 ldrb r0, [r4, 0x2] cmp r0, 0x69 bne _08047132 adds r0, r4, 0 bl sub_80915D4 bl sub_80913A0 strb r5, [r4, 0x2] strb r5, [r4, 0x1] strb r5, [r4] _08047132: ldrb r1, [r4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08047142 strb r5, [r4, 0x2] strb r5, [r4, 0x1] strb r5, [r4] _08047142: adds r6, 0x1 cmp r6, 0x13 ble _0804710A bl sub_80910B4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08047154: .4byte gUnknown_203B460 thumb_func_end sub_8047104 thumb_func_start sub_8047158 sub_8047158: push {r4-r6,lr} movs r3, 0 ldr r5, _0804718C movs r6, 0x1 movs r4, 0x4 _08047162: lsls r1, r3, 2 ldr r0, [r5] adds r2, r0, r1 ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08047180 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08047180 movs r0, 0xFB ands r0, r1 strb r0, [r2] _08047180: adds r3, 0x1 cmp r3, 0x13 ble _08047162 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804718C: .4byte gUnknown_203B460 thumb_func_end sub_8047158 thumb_func_start sub_8047190 sub_8047190: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _080472E8 add sp, r4 mov r9, r0 str r1, [sp, 0x214] ldr r6, _080472EC ldr r1, [r6] ldr r4, _080472F0 adds r0, r1, r4 ldrb r0, [r0] str r0, [sp, 0x220] mov r8, r3 adds r7, r1, 0 adds r7, 0xC0 movs r0, 0x3 str r0, [r7] adds r0, r1, 0 adds r0, 0xE4 movs r4, 0 strb r4, [r0] subs r0, 0x4 movs r5, 0x1 strb r5, [r0] adds r0, 0x2 strb r4, [r0] ldr r0, [sp, 0x214] str r0, [r7, 0x70] str r4, [r7, 0x1C] ldr r0, [r2] str r0, [r7, 0x4] movs r1, 0 ldrsh r0, [r2, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x4 lsls r1, 8 movs r3, 0x2 ldrsh r0, [r2, r3] lsls r2, r0, 1 adds r2, r0 lsls r2, 11 adds r0, r7, 0 bl sub_8045394 strh r4, [r7, 0x26] str r4, [sp, 0x224] mov r0, r9 bl sub_80450F8 cmp r0, 0x1 bne _08047214 mov r0, r9 movs r1, 0x2A bl sub_8046CB0 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r1, 31 str r1, [sp, 0x224] _08047214: ldr r0, [sp, 0x260] movs r1, 0x2 ldrsh r0, [r0, r1] str r0, [sp, 0x218] movs r2, 0 str r2, [sp, 0x21C] ldr r0, [r6] ldr r3, _080472F4 adds r0, r3 strb r5, [r0] _08047228: ldr r4, [r7, 0x4] mov r10, r4 ldr r1, [sp, 0x260] ldrb r0, [r1, 0x1] cmp r0, 0 beq _080472AE ldrb r0, [r1] cmp r0, 0 bne _080472AE movs r2, 0x4 ldrsh r0, [r7, r2] ldr r2, _080472F8 mov r3, r8 lsls r4, r3, 2 adds r2, r4, r2 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r7, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x3 ands r0, r1 str r4, [sp, 0x230] cmp r0, 0 bne _080472AE movs r6, 0 ldr r1, _080472FC mov r4, r10 lsls r0, r4, 16 asrs r0, 16 str r0, [sp, 0x23C] ldr r0, [sp, 0x230] adds r5, r0, r1 asrs r2, r4, 16 _0804727A: ldrb r4, [r5] cmp r4, 0x7 bgt _080472A6 ldr r0, _080472F8 lsls r1, r4, 2 adds r1, r0 movs r3, 0 ldrsh r0, [r1, r3] ldr r3, [sp, 0x23C] adds r0, r3 movs r3, 0x2 ldrsh r1, [r1, r3] adds r1, r2 str r2, [sp, 0x234] bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 ldr r2, [sp, 0x234] cmp r0, 0 bne _08047300 _080472A6: adds r5, 0x1 adds r6, 0x1 cmp r6, 0x3 ble _0804727A _080472AE: ldr r0, _080472F8 mov r4, r8 lsls r2, r4, 2 adds r3, r2, r0 ldrh r1, [r3] ldrh r0, [r7, 0x4] adds r1, r0 strh r1, [r7, 0x4] ldrh r0, [r3, 0x2] ldrh r4, [r7, 0x6] adds r0, r4 strh r0, [r7, 0x6] lsls r1, 16 asrs r1, 16 str r2, [sp, 0x230] cmp r1, 0 blt _080472E0 lsls r0, 16 asrs r0, 16 cmp r0, 0 blt _080472E0 cmp r1, 0x37 bgt _080472E0 cmp r0, 0x1F ble _08047304 _080472E0: movs r0, 0x2 mov r10, r0 b _0804744C .align 2, 0 _080472E8: .4byte 0xfffffdc0 _080472EC: .4byte gUnknown_203B418 _080472F0: .4byte 0x00018210 _080472F4: .4byte 0x0001c05e _080472F8: .4byte gUnknown_80F4448 _080472FC: .4byte gUnknown_80F4D64 _08047300: mov r8, r4 b _080472AE _08047304: movs r1, 0 ldrsh r0, [r3, r1] lsls r0, 10 str r0, [sp, 0x228] movs r2, 0x2 ldrsh r0, [r3, r2] lsls r0, 10 str r0, [sp, 0x22C] mov r3, r8 lsls r6, r3, 24 movs r5, 0x5 _0804731A: movs r4, 0 adds r0, r7, 0 ldr r1, [sp, 0x228] ldr r2, [sp, 0x22C] bl sub_804539C bl sub_804AF74 lsls r0, 24 movs r2, 0 cmp r0, 0 beq _08047334 movs r2, 0x3 _08047334: ldr r0, [r7, 0xC] cmp r0, 0 bge _0804733C adds r0, 0xFF _0804733C: asrs r0, 8 adds r0, 0x8 ldr r1, [r7, 0x10] cmp r1, 0 bge _08047348 adds r1, 0xFF _08047348: asrs r1, 8 adds r1, 0x10 bl sub_8083568 lsls r0, 24 cmp r0, 0 beq _08047358 movs r4, 0x1 _08047358: movs r0, 0x1 str r0, [sp] adds r0, r7, 0 ldr r1, [sp, 0x220] movs r2, 0 lsrs r3, r6, 24 bl sub_80462AC lsls r0, 24 cmp r0, 0 beq _08047370 movs r4, 0x1 _08047370: cmp r4, 0 beq _0804737A movs r0, 0x12 bl sub_803E46C _0804737A: subs r5, 0x1 cmp r5, 0 bge _0804731A movs r4, 0x4 ldrsh r0, [r7, r4] movs r2, 0x6 ldrsh r1, [r7, r2] bl sub_804954C adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _080473A2 ldr r3, [sp, 0x260] ldrb r0, [r3] cmp r0, 0 bne _080473A2 b _0804757A _080473A2: ldr r1, [r5, 0x10] cmp r1, 0 beq _08047436 movs r4, 0 ldr r2, [sp, 0x260] ldrb r0, [r2] cmp r0, 0 bne _080473CE adds r0, r1, 0 bl sub_80450F8 cmp r0, 0x1 bne _080473CE ldr r0, [r5, 0x10] movs r1, 0x26 bl sub_8046CB0 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 _080473CE: cmp r4, 0 beq _080473E0 movs r3, 0x4 add r8, r3 movs r0, 0x7 mov r4, r8 ands r4, r0 mov r8, r4 b _08047436 _080473E0: movs r6, 0x1 ldr r0, [r5, 0x10] bl sub_80450F8 cmp r0, 0x1 bne _08047406 add r4, sp, 0x208 adds r0, r4, 0 ldr r1, _080474B8 bl sub_8092A88 ldr r0, [r5, 0x10] adds r1, r4, 0 bl sub_80571F0 lsls r0, 24 cmp r0, 0 beq _08047406 movs r6, 0 _08047406: cmp r6, 0 beq _08047436 ldr r0, [sp, 0x21C] cmp r0, 0x3F bgt _0804742C lsls r0, 3 mov r4, sp adds r4, r0 adds r4, 0x8 ldr r0, [r5, 0x10] str r0, [r4] ldr r1, [r5, 0x10] mov r0, r9 bl sub_8047930 strb r0, [r4, 0x4] ldr r1, [sp, 0x21C] adds r1, 0x1 str r1, [sp, 0x21C] _0804742C: ldr r2, [sp, 0x260] ldrb r0, [r2] cmp r0, 0 bne _08047436 b _08047574 _08047436: ldr r3, [sp, 0x218] subs r3, 0x1 str r3, [sp, 0x218] cmp r3, 0 ble _08047442 b _08047228 _08047442: movs r4, 0x1 mov r10, r4 mov r0, r8 lsls r0, 2 str r0, [sp, 0x230] _0804744C: ldr r0, _080474BC ldr r0, [r0] ldr r1, _080474C0 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r2, [sp, 0x21C] cmp r2, 0 ble _0804752C add r5, sp, 0x8 adds r6, r2, 0 _08047462: ldr r4, [r5] ldrb r0, [r5, 0x4] cmp r0, 0 beq _080474D0 ldr r0, _080474C4 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _080474C8 ldr r1, [sp, 0x214] bl sub_8045C08 ldr r0, _080474CC ldr r2, [r0] mov r0, r9 adds r1, r4, 0 bl sub_80522F4 mov r0, r9 adds r1, r4, 0 bl sub_807A96C lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r3, [sp, 0x224] cmp r3, 0 bne _080474A4 ldr r3, [sp, 0x260] ldrb r0, [r3] cmp r0, 0 beq _080474A6 _080474A4: movs r1, 0x1 _080474A6: str r4, [sp] ldr r4, [sp, 0x214] str r4, [sp, 0x4] movs r0, 0x1 mov r3, r9 bl sub_80479B8 b _08047524 .align 2, 0 _080474B8: .4byte 0x00000195 _080474BC: .4byte gUnknown_203B418 _080474C0: .4byte 0x0001c05e _080474C4: .4byte gUnknown_202DF98 _080474C8: .4byte gUnknown_202DE58 _080474CC: .4byte gUnknown_80F94C4 _080474D0: ldr r1, [sp, 0x260] ldrb r0, [r1] cmp r0, 0 bne _080474E2 ldr r2, [sp, 0x21C] cmp r2, 0x1 bne _080474E2 movs r3, 0x1 mov r10, r3 _080474E2: ldr r0, _0804750C adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08047510 ldr r1, [sp, 0x214] bl sub_8045BF8 ldr r1, [sp, 0x260] ldrb r0, [r1] cmp r0, 0 beq _08047518 ldr r0, _08047514 ldr r2, [r0] mov r0, r9 adds r1, r4, 0 bl sub_80522F4 b _08047524 .align 2, 0 _0804750C: .4byte gUnknown_202DF98 _08047510: .4byte gUnknown_202DE58 _08047514: .4byte gUnknown_80F94D8 _08047518: ldr r0, _08047564 ldr r2, [r0] mov r0, r9 adds r1, r4, 0 bl sub_80522F4 _08047524: adds r5, 0x8 subs r6, 0x1 cmp r6, 0 bne _08047462 _0804752C: ldr r2, _08047568 ldr r3, [sp, 0x230] adds r2, r3, r2 movs r4, 0 ldrsh r1, [r2, r4] lsls r1, 19 lsrs r1, 16 ldr r4, _0804756C add r3, sp, 0x210 ldr r0, [r3] ands r0, r4 orrs r0, r1 str r0, [r3] movs r4, 0x2 ldrsh r1, [r2, r4] lsls r1, 19 ldr r2, _08047570 ands r0, r2 orrs r0, r1 str r0, [r3] mov r0, r10 cmp r0, 0x1 beq _08047584 cmp r0, 0x1 bcc _080475A8 cmp r0, 0x2 beq _08047596 b _080475A8 .align 2, 0 _08047564: .4byte gUnknown_80F94F0 _08047568: .4byte gUnknown_80F4448 _0804756C: .4byte 0xffff0000 _08047570: .4byte 0x0000ffff _08047574: movs r1, 0 mov r10, r1 b _0804744C _0804757A: mov r2, r10 str r2, [r7, 0x4] movs r3, 0x1 mov r10, r3 b _0804744C _08047584: add r0, sp, 0x210 str r0, [sp] mov r0, r9 adds r1, r7, 0 ldr r2, [sp, 0x214] movs r3, 0x1 bl sub_804652C b _080475A8 _08047596: ldr r0, _080475BC ldr r1, [sp, 0x214] bl sub_8045C08 ldr r0, _080475C0 ldr r1, [r0] mov r0, r9 bl sub_80522A8 _080475A8: movs r3, 0x90 lsls r3, 2 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080475BC: .4byte gUnknown_202DE58 _080475C0: .4byte gUnknown_80F9530 thumb_func_end sub_8047190 thumb_func_start sub_80475C4 sub_80475C4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x44 str r0, [sp, 0x10] str r1, [sp, 0x14] adds r7, r2, 0 str r3, [sp, 0x18] ldr r0, _08047848 mov r8, r0 ldr r2, [r0] ldr r1, _0804784C adds r0, r2, r1 ldrb r0, [r0] str r0, [sp, 0x24] movs r4, 0 movs r5, 0 adds r3, r2, 0 adds r3, 0xC0 str r3, [sp, 0x1C] movs r0, 0x3 str r0, [r3] adds r0, r2, 0 adds r0, 0xE4 strb r4, [r0] adds r1, r2, 0 adds r1, 0xE0 movs r0, 0x1 strb r0, [r1] adds r0, r2, 0 adds r0, 0xE2 strb r4, [r0] ldr r0, [sp, 0x14] str r0, [r3, 0x70] str r5, [r3, 0x1C] ldr r0, [r7] str r0, [r3, 0x4] movs r1, 0 ldrsh r0, [r7, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x4 lsls r1, 8 movs r2, 0x2 ldrsh r0, [r7, r2] lsls r2, r0, 1 adds r2, r0 lsls r2, 3 adds r2, 0x4 lsls r2, 8 ldr r0, [sp, 0x1C] bl sub_8045394 ldr r3, [sp, 0x1C] strh r4, [r3, 0x26] movs r0, 0x1 str r0, [sp, 0x20] movs r1, 0 str r1, [sp, 0x28] ldr r0, [sp, 0x10] bl sub_80450F8 cmp r0, 0x1 bne _0804765E ldr r0, [sp, 0x10] movs r1, 0x2A bl sub_8046CB0 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r1, 31 str r1, [sp, 0x28] _0804765E: adds r0, r7, 0 bl sub_803F428 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 ldr r0, [sp, 0x18] bl sub_803F428 lsls r0, 24 cmp r0, 0 beq _0804767C movs r4, 0x1 _0804767C: mov r2, r8 ldr r0, [r2] ldr r3, _08047850 adds r0, r3 add r1, sp, 0x20 ldrb r1, [r1] strb r1, [r0] cmp r4, 0 bne _08047690 b _080477D0 _08047690: ldr r2, [sp, 0x1C] movs r3, 0x4 ldrsh r0, [r2, r3] ldr r1, [sp, 0x18] movs r2, 0 ldrsh r1, [r1, r2] mov r9, r1 subs r1, r0, r1 cmp r1, 0 bge _080476A6 negs r1, r1 _080476A6: ldr r3, [sp, 0x1C] movs r2, 0x6 ldrsh r0, [r3, r2] ldr r3, [sp, 0x18] movs r2, 0x2 ldrsh r3, [r3, r2] mov r10, r3 subs r0, r3 cmp r0, 0 bge _080476BC negs r0, r0 _080476BC: adds r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r4, r0, 2 adds r3, r4, 0 adds r3, 0xC str r3, [sp, 0x30] cmp r3, 0x3F ble _080476D2 movs r0, 0x40 str r0, [sp, 0x30] _080476D2: movs r1, 0 str r1, [sp, 0x3C] movs r0, 0x80 lsls r0, 12 adds r1, r4, 0 bl __divsi3 str r0, [sp, 0x40] movs r2, 0 ldrsh r1, [r7, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 mov r8, r0 movs r3, 0x2 ldrsh r1, [r7, r3] lsls r0, r1, 1 adds r0, r1 lsls r7, r0, 11 mov r1, r9 lsls r0, r1, 1 add r0, r9 lsls r0, 11 mov r2, r8 subs r0, r2 adds r1, r4, 0 bl __divsi3 str r0, [sp, 0x34] mov r3, r10 lsls r0, r3, 1 add r0, r10 lsls r0, 11 subs r0, r7 adds r1, r4, 0 bl __divsi3 str r0, [sp, 0x38] subs r0, r4, 0x3 cmp r0, 0 ble _080477D0 str r0, [sp, 0x2C] _08047726: movs r0, 0 mov r10, r0 ldr r0, [sp, 0x3C] cmp r0, 0 bge _08047732 adds r0, 0xFF _08047732: asrs r0, 8 bl sub_8009C7C ldr r2, [sp, 0x30] adds r1, r0, 0 muls r1, r2 movs r0, 0x80 lsls r0, 3 mov r2, r8 adds r3, r2, r0 adds r2, r7, r0 ldr r0, [sp, 0x1C] str r1, [r0, 0x1C] mov r0, r8 cmp r0, 0 bge _08047754 adds r0, 0xFF _08047754: asrs r0, 8 adds r0, 0x8 mov r9, r0 adds r0, r7, 0 cmp r7, 0 bge _08047762 adds r0, 0xFF _08047762: asrs r0, 8 adds r4, r0, 0 adds r4, 0x10 ldr r1, [sp, 0x3C] ldr r0, [sp, 0x40] adds r1, r0 str r1, [sp, 0x3C] ldr r0, [sp, 0x1C] adds r1, r3, 0 bl sub_8045394 bl sub_804AF74 lsls r0, 24 movs r2, 0 cmp r0, 0 beq _08047786 movs r2, 0x3 _08047786: mov r0, r9 adds r1, r4, 0 bl sub_8083568 lsls r0, 24 cmp r0, 0 beq _08047798 movs r1, 0x1 mov r10, r1 _08047798: movs r0, 0x1 str r0, [sp] ldr r0, [sp, 0x1C] ldr r1, [sp, 0x24] movs r2, 0 movs r3, 0xFF bl sub_80462AC lsls r0, 24 cmp r0, 0 beq _080477B2 movs r2, 0x1 mov r10, r2 _080477B2: mov r3, r10 cmp r3, 0 beq _080477BE movs r0, 0x17 bl sub_803E46C _080477BE: ldr r0, [sp, 0x34] add r8, r0 ldr r1, [sp, 0x38] adds r7, r1 ldr r2, [sp, 0x2C] subs r2, 0x1 str r2, [sp, 0x2C] cmp r2, 0 bne _08047726 _080477D0: ldr r3, [sp, 0x18] ldr r0, [r3] ldr r1, [sp, 0x1C] str r0, [r1, 0x4] ldr r0, _08047848 ldr r0, [r0] ldr r2, _08047850 adds r0, r2 movs r1, 0 strb r1, [r0] movs r1, 0 ldrsh r0, [r3, r1] movs r2, 0x2 ldrsh r1, [r3, r2] bl sub_804954C adds r4, r0, 0 ldr r0, [r4, 0x10] cmp r0, 0 bne _080477FA b _08047904 _080477FA: movs r3, 0x1 mov r8, r3 movs r7, 0 bl sub_80450F8 cmp r0, 0x1 bne _08047834 ldr r0, [r4, 0x10] movs r1, 0x26 bl sub_8046CB0 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r7, r1, 31 ldr r1, _08047854 add r0, sp, 0x8 bl sub_8092A88 ldr r0, [r4, 0x10] add r1, sp, 0x8 bl sub_80571F0 lsls r0, 24 cmp r0, 0 beq _08047834 movs r0, 0 mov r8, r0 _08047834: mov r1, r8 cmp r1, 0 beq _08047904 ldr r1, [r4, 0x10] adds r5, r1, 0 cmp r7, 0 beq _0804785C ldr r0, _08047858 ands r6, r0 b _0804786E .align 2, 0 _08047848: .4byte gUnknown_203B418 _0804784C: .4byte 0x00018210 _08047850: .4byte 0x0001c05e _08047854: .4byte 0x00000195 _08047858: .4byte 0xffffff00 _0804785C: ldr r0, [sp, 0x10] bl sub_8047930 lsls r0, 24 lsrs r0, 24 ldr r1, _080478CC ands r1, r6 adds r6, r1, 0 orrs r6, r0 _0804786E: ldr r0, _080478D0 ldr r1, [sp, 0x14] bl sub_8045C08 ldr r0, _080478D4 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 lsls r0, r6, 24 cmp r0, 0 beq _080478DC adds r0, r5, 0 movs r1, 0x8 bl sub_806CE94 ldr r0, _080478D8 ldr r2, [r0] ldr r0, [sp, 0x10] adds r1, r5, 0 bl sub_80522F4 ldr r0, [sp, 0x10] adds r1, r5, 0 bl sub_807A96C lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r3, [sp, 0x28] cmp r3, 0 bne _080478B6 ldr r0, [sp, 0x64] ldrb r0, [r0] cmp r0, 0 beq _080478B8 _080478B6: movs r1, 0x1 _080478B8: str r5, [sp] ldr r0, [sp, 0x14] str r0, [sp, 0x4] movs r0, 0x1 ldr r3, [sp, 0x10] bl sub_80479B8 movs r1, 0 str r1, [sp, 0x20] b _08047904 .align 2, 0 _080478CC: .4byte 0xffffff00 _080478D0: .4byte gUnknown_202DE58 _080478D4: .4byte gUnknown_202DF98 _080478D8: .4byte gUnknown_80F94C4 _080478DC: cmp r7, 0 beq _080478F4 ldr r0, _080478F0 ldr r2, [r0] ldr r0, [sp, 0x10] adds r1, r5, 0 bl sub_80522F4 b _08047900 .align 2, 0 _080478F0: .4byte gUnknown_80F9510 _080478F4: ldr r0, _0804792C ldr r2, [r0] ldr r0, [sp, 0x10] adds r1, r5, 0 bl sub_80522F4 _08047900: movs r2, 0x1 str r2, [sp, 0x20] _08047904: ldr r3, [sp, 0x20] cmp r3, 0x1 bne _0804791A movs r0, 0 str r0, [sp] ldr r0, [sp, 0x10] ldr r1, [sp, 0x1C] ldr r2, [sp, 0x14] movs r3, 0 bl sub_804652C _0804791A: add sp, 0x44 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804792C: .4byte gUnknown_80F94F0 thumb_func_end sub_80475C4 thumb_func_start sub_8047930 sub_8047930: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r1, [r5, 0x70] ldrb r0, [r1, 0x8] cmp r0, 0x1 beq _0804794C adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x4 beq _0804794C cmp r0, 0x1 bne _08047950 _0804794C: movs r0, 0 b _080479B0 _08047950: movs r0, 0x64 bl sub_8084100 ldr r1, _08047980 movs r2, 0 ldrsh r1, [r1, r2] movs r6, 0 cmp r0, r1 bge _08047964 movs r6, 0x1 _08047964: adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x1 bne _08047994 adds r0, r4, 0 movs r1, 0x28 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08047984 movs r6, 0 b _08047994 .align 2, 0 _08047980: .4byte gUnknown_80F4FA2 _08047984: adds r0, r4, 0 movs r1, 0x2A bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08047994 movs r6, 0x1 _08047994: adds r0, r5, 0 bl sub_80450F8 cmp r0, 0x1 bne _080479AE adds r0, r5, 0 movs r1, 0x25 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _080479AE movs r6, 0 _080479AE: adds r0, r6, 0 _080479B0: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8047930 thumb_func_start sub_80479B8 sub_80479B8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C adds r4, r3, 0 ldr r5, [sp, 0x3C] ldr r7, [sp, 0x40] lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 mov r10, r2 cmp r6, 0 beq _08047AD0 cmp r1, 0 bne _08047ABC movs r0, 0 mov r8, r0 ldr r1, [r5, 0x70] mov r9, r1 ldrb r0, [r1, 0x6] cmp r0, 0 beq _08047A20 ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 cmp r0, 0 beq _08047A3C ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _08047A3C ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 eors r0, r1 negs r1, r0 orrs r1, r0 lsrs r1, 31 mov r8, r1 b _08047A3C _08047A20: ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _08047A3C adds r0, r5, 0 movs r1, 0x2 bl sub_80718D8 lsls r0, 24 lsrs r0, 24 mov r8, r0 _08047A3C: adds r0, r5, 0 bl sub_8070C60 lsls r0, 24 cmp r0, 0 beq _08047A4C movs r0, 0 mov r8, r0 _08047A4C: mov r1, r8 cmp r1, 0 beq _08047ABC mov r0, r9 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08047ABC mov r1, r9 ldrb r0, [r1, 0x8] cmp r0, 0x1 bne _08047A76 adds r1, r5, 0x4 adds r0, r4, 0 adds r2, r7, 0 bl sub_80464C8 bl _080482BA _08047A76: ldr r0, _08047AAC bl sub_8083E38 ldr r0, _08047AB0 adds r1, r7, 0 bl sub_8045BF8 ldr r0, _08047AB4 adds r1, r5, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08047AB8 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 ldr r0, [r7] mov r1, r9 str r0, [r1, 0x60] adds r0, r5, 0 bl sub_806A6E8 bl _080482BA .align 2, 0 _08047AAC: .4byte 0x0000014d _08047AB0: .4byte gUnknown_202DE58 _08047AB4: .4byte gUnknown_202DF98 _08047AB8: .4byte gUnknown_80FDBB8 _08047ABC: cmp r6, 0 beq _08047AD0 adds r0, r5, 0 adds r1, r7, 0 bl sub_8042390 adds r0, r4, 0 adds r1, r5, 0 bl sub_806F450 _08047AD0: ldrb r1, [r7] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08047B2C ldr r0, _08047B1C adds r1, r7, 0 bl sub_8045BF8 ldr r0, _08047B20 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 cmp r6, 0 beq _08047B30 ldr r0, _08047B24 movs r1, 0 ldrsh r2, [r0, r1] add r0, sp, 0x18 str r0, [sp] movs r1, 0 str r1, [sp, 0x4] ldr r0, _08047B28 str r0, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] str r1, [sp, 0x14] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x1 bl sub_806F370 adds r0, r4, 0 bl sub_8071DA4 b _080482BA .align 2, 0 _08047B1C: .4byte gUnknown_202DE58 _08047B20: .4byte gUnknown_80FE3E8 _08047B24: .4byte gUnknown_80F4FAE _08047B28: .4byte 0x00000217 _08047B2C: cmp r6, 0 bne _08047B38 _08047B30: adds r0, r5, 0 adds r1, r7, 0 bl sub_804245C _08047B38: ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08047B56 movs r0, 0 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x5 movs r3, 0 bl sub_8078B5C _08047B56: ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 beq _08047B72 ldrb r0, [r7, 0x2] bl sub_8090BD0 lsls r0, 24 lsrs r0, 24 cmp r0, 0xA bne _08047B9C _08047B72: cmp r6, 0 beq _08047B88 ldr r0, _08047B84 movs r1, 0 ldrsh r2, [r0, r1] mov r0, sp adds r0, 0x19 b _08048284 .align 2, 0 _08047B84: .4byte gUnknown_80F4FAC _08047B88: ldr r0, _08047B98 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 b _080482B4 .align 2, 0 _08047B98: .4byte gUnknown_80FE458 _08047B9C: ldrb r0, [r7, 0x2] subs r0, 0x1 cmp r0, 0xE8 bls _08047BA6 b _08048276 _08047BA6: lsls r0, 2 ldr r1, _08047BB0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08047BB0: .4byte _08047BB4 .align 2, 0 _08047BB4: .4byte _08047F58 .4byte _08047F70 .4byte _08047F88 .4byte _08047FA0 .4byte _08047FB8 .4byte _08047FD0 .4byte _08047FF0 .4byte _08047FE8 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048004 .4byte _0804825E .4byte _08048010 .4byte _0804801A .4byte _0804804C .4byte _08048276 .4byte _0804802E .4byte _0804809C .4byte _08048038 .4byte _08048024 .4byte _080480BA .4byte _080480C4 .4byte _08048042 .4byte _0804806A .4byte _08048060 .4byte _08048056 .4byte _0804807E .4byte _080480B0 .4byte _08048074 .4byte _080480D8 .4byte _080480CE .4byte _08048092 .4byte _08048088 .4byte _080480A6 .4byte _080480E4 .4byte _080480EE .4byte _080480F8 .4byte _08048102 .4byte _0804810C .4byte _08048212 .4byte _08048122 .4byte _0804813C .4byte _0804812A .4byte _08048146 .4byte _08048152 .4byte _0804815E .4byte _0804816A .4byte _08048176 .4byte _08048182 .4byte _0804818E .4byte _0804819A .4byte _080481A6 .4byte _080481B2 .4byte _080481BE .4byte _080481CA .4byte _080481D6 .4byte _080481E2 .4byte _080481EE .4byte _080481FA .4byte _08048206 .4byte _08048212 .4byte _08048220 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _0804823A .4byte _08048252 .4byte _08048246 .4byte _0804826A .4byte _0804822E .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048276 .4byte _08048116 _08047F58: ldr r0, _08047F6C movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x1 bl sub_80482FC b _080482B4 .align 2, 0 _08047F6C: .4byte gUnknown_80F503A _08047F70: ldr r0, _08047F84 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x2 bl sub_80482FC b _080482B4 .align 2, 0 _08047F84: .4byte gUnknown_80F503C _08047F88: ldr r0, _08047F9C movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x3 bl sub_80482FC b _080482B4 .align 2, 0 _08047F9C: .4byte gUnknown_80F503E _08047FA0: ldr r0, _08047FB4 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x4 bl sub_80482FC b _080482B4 .align 2, 0 _08047FB4: .4byte gUnknown_80F5040 _08047FB8: ldr r0, _08047FCC movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x5 bl sub_80482FC b _080482B4 .align 2, 0 _08047FCC: .4byte gUnknown_80F5042 _08047FD0: ldr r0, _08047FE4 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x6 bl sub_80482FC b _080482B4 .align 2, 0 _08047FE4: .4byte gUnknown_80F5044 _08047FE8: ldr r0, _08047FEC b _08047FF2 .align 2, 0 _08047FEC: .4byte gUnknown_80F5048 _08047FF0: ldr r0, _08048000 _08047FF2: movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 bl sub_8048340 b _080482B4 .align 2, 0 _08048000: .4byte gUnknown_80F5046 _08048004: adds r0, r4, 0 adds r1, r5, 0 mov r2, r10 bl sub_8048364 b _080482B4 _08048010: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048374 b _080482B4 _0804801A: adds r0, r4, 0 adds r1, r5, 0 bl sub_804839C b _080482B4 _08048024: adds r0, r4, 0 adds r1, r5, 0 bl sub_80483D4 b _080482B4 _0804802E: adds r0, r4, 0 adds r1, r5, 0 bl sub_80483F4 b _080482B4 _08048038: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048400 b _080482B4 _08048042: adds r0, r4, 0 adds r1, r5, 0 bl sub_804840C b _080482B4 _0804804C: adds r0, r4, 0 adds r1, r5, 0 bl sub_804841C b _080482B4 _08048056: adds r0, r4, 0 adds r1, r5, 0 bl sub_804849C b _080482B4 _08048060: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048428 b _080482B4 _0804806A: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048450 b _080482B4 _08048074: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048480 b _080482B4 _0804807E: adds r0, r4, 0 adds r1, r5, 0 bl sub_80482D4 b _080482B4 _08048088: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048490 b _080482B4 _08048092: adds r0, r4, 0 adds r1, r5, 0 bl sub_80484A8 b _080482B4 _0804809C: adds r0, r4, 0 adds r1, r5, 0 bl sub_80484DC b _080482B4 _080480A6: adds r0, r4, 0 adds r1, r5, 0 bl sub_80484BC b _080482B4 _080480B0: adds r0, r4, 0 adds r1, r5, 0 bl sub_80484C8 b _080482B4 _080480BA: adds r0, r4, 0 adds r1, r5, 0 bl sub_80484E8 b _080482B4 _080480C4: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048524 b _080482B4 _080480CE: adds r0, r4, 0 adds r1, r5, 0 bl sub_80485B0 b _080482B4 _080480D8: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_804869C b _080482B4 _080480E4: adds r0, r4, 0 adds r1, r5, 0 bl sub_80483C4 b _080482B4 _080480EE: adds r0, r4, 0 adds r1, r5, 0 bl sub_804891C b _080482B4 _080480F8: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048928 b _080482B4 _08048102: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048934 b _080482B4 _0804810C: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048940 b _080482B4 _08048116: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl nullsub_94 b _080482B4 _08048122: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x64 b _08048130 _0804812A: ldr r2, _08048138 adds r0, r4, 0 adds r1, r5, 0 _08048130: movs r3, 0xA bl sub_80487CC b _080482B4 .align 2, 0 _08048138: .4byte 0x000003e7 _0804813C: adds r0, r4, 0 adds r1, r5, 0 bl sub_8048E04 b _080482B4 _08048146: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_80487E0 b _080482B4 _08048152: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x2 bl sub_80487E0 b _080482B4 _0804815E: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 bl sub_80487E0 b _080482B4 _0804816A: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x4 bl sub_80487E0 b _080482B4 _08048176: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x5 bl sub_80487E0 b _080482B4 _08048182: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x6 bl sub_80487E0 b _080482B4 _0804818E: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x7 bl sub_80487E0 b _080482B4 _0804819A: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x8 bl sub_80487E0 b _080482B4 _080481A6: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x9 bl sub_80487E0 b _080482B4 _080481B2: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xA bl sub_80487E0 b _080482B4 _080481BE: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xB bl sub_80487E0 b _080482B4 _080481CA: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xC bl sub_80487E0 b _080482B4 _080481D6: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xD bl sub_80487E0 b _080482B4 _080481E2: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xE bl sub_80487E0 b _080482B4 _080481EE: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xF bl sub_80487E0 b _080482B4 _080481FA: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x10 bl sub_80487E0 b _080482B4 _08048206: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x11 bl sub_80487E0 b _080482B4 _08048212: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x32 movs r3, 0x5 bl sub_80487CC b _080482B4 _08048220: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xA movs r3, 0 bl sub_80487CC b _080482B4 _0804822E: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_8048DB8 b _080482B4 _0804823A: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_8048EB0 b _080482B4 _08048246: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_8048EC4 b _080482B4 _08048252: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_8048ED8 b _080482B4 _0804825E: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_8048EEC b _080482B4 _0804826A: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_8048F00 b _080482B4 _08048276: cmp r6, 0 beq _080482A8 ldr r0, _080482A0 movs r1, 0 ldrsh r2, [r0, r1] mov r0, sp adds r0, 0x1A _08048284: str r0, [sp] movs r1, 0 str r1, [sp, 0x4] ldr r0, _080482A4 str r0, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] str r1, [sp, 0x14] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x1 bl sub_806F370 b _080482B4 .align 2, 0 _080482A0: .4byte gUnknown_80F4FAC _080482A4: .4byte 0x00000217 _080482A8: ldr r0, _080482CC ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 _080482B4: adds r0, r4, 0 bl sub_8071DA4 _080482BA: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080482CC: .4byte gUnknown_80FE458 thumb_func_end sub_80479B8 thumb_func_start nullsub_205 nullsub_205: bx lr thumb_func_end nullsub_205 thumb_func_start sub_80482D4 sub_80482D4: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r1, _080482F8 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r2, r0, 0 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8075C58 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080482F8: .4byte gUnknown_80F4E74 thumb_func_end sub_80482D4 thumb_func_start sub_80482FC sub_80482FC: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0xC mov r8, r0 mov r9, r1 adds r6, r2, 0 lsls r4, r3, 24 lsrs r4, 24 add r5, sp, 0x4 ldr r1, _0804833C adds r0, r5, 0 bl sub_8092A88 strb r6, [r5, 0x4] movs r3, 0x80 lsls r3, 1 str r4, [sp] mov r0, r8 mov r1, r9 add r2, sp, 0x4 bl sub_8055640 add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804833C: .4byte 0x00000195 thumb_func_end sub_80482FC thumb_func_start sub_8048340 sub_8048340: push {r4,lr} sub sp, 0x18 movs r4, 0 str r4, [sp] str r4, [sp, 0x4] movs r3, 0x84 lsls r3, 2 str r3, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] str r4, [sp, 0x14] movs r3, 0x1 bl sub_806F370 add sp, 0x18 pop {r4} pop {r0} bx r0 thumb_func_end sub_8048340 thumb_func_start sub_8048364 sub_8048364: push {lr} lsls r3, r2, 24 lsrs r3, 24 movs r2, 0x1 bl sub_8079F20 pop {r0} bx r0 thumb_func_end sub_8048364 thumb_func_start sub_8048374 sub_8048374: push {r4,lr} sub sp, 0x4 ldr r2, _08048394 movs r3, 0 ldrsh r2, [r2, r3] ldr r3, _08048398 movs r4, 0 ldrsh r3, [r3, r4] movs r4, 0x1 str r4, [sp] bl sub_8077C44 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08048394: .4byte gUnknown_80F4FB6 _08048398: .4byte gUnknown_80F4FB8 thumb_func_end sub_8048374 thumb_func_start sub_804839C sub_804839C: push {r4,lr} sub sp, 0x4 ldr r2, _080483BC movs r3, 0 ldrsh r2, [r2, r3] ldr r3, _080483C0 movs r4, 0 ldrsh r3, [r3, r4] movs r4, 0x1 str r4, [sp] bl sub_8077C44 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080483BC: .4byte gUnknown_80F4FBA _080483C0: .4byte gUnknown_80F4FBC thumb_func_end sub_804839C thumb_func_start sub_80483C4 sub_80483C4: push {lr} ldr r2, _080483D0 bl sub_80792F8 pop {r0} bx r0 .align 2, 0 _080483D0: .4byte 0x000003e7 thumb_func_end sub_80483C4 thumb_func_start sub_80483D4 sub_80483D4: push {r4,lr} sub sp, 0x4 ldr r2, _080483F0 movs r4, 0 ldrsh r3, [r2, r4] movs r2, 0x1 str r2, [sp] movs r2, 0 bl sub_8077C44 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080483F0: .4byte gUnknown_80F4FBE thumb_func_end sub_80483D4 thumb_func_start sub_80483F4 sub_80483F4: push {lr} bl sub_8079140 pop {r0} bx r0 thumb_func_end sub_80483F4 thumb_func_start sub_8048400 sub_8048400: push {lr} bl sub_80791D8 pop {r0} bx r0 thumb_func_end sub_8048400 thumb_func_start sub_804840C sub_804840C: push {lr} movs r2, 0 movs r3, 0x1 bl sub_8077910 pop {r0} bx r0 thumb_func_end sub_804840C thumb_func_start sub_804841C sub_804841C: push {lr} bl sub_8079270 pop {r0} bx r0 thumb_func_end sub_804841C thumb_func_start sub_8048428 sub_8048428: push {lr} adds r3, r0, 0 ldr r0, [r1, 0x70] adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 bne _0804843E adds r0, r3, 0 bl sub_807A290 b _08048448 _0804843E: ldr r0, _0804844C ldr r2, [r0] adds r0, r3, 0 bl sub_80522F4 _08048448: pop {r0} bx r0 .align 2, 0 _0804844C: .4byte gUnknown_80F89F4 thumb_func_end sub_8048428 thumb_func_start sub_8048450 sub_8048450: push {lr} adds r3, r0, 0 ldr r0, [r1, 0x70] adds r0, 0xAC ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0804846C adds r0, r3, 0 bl sub_807A290 b _08048476 _0804846C: ldr r0, _0804847C ldr r2, [r0] adds r0, r3, 0 bl sub_80522F4 _08048476: pop {r0} bx r0 .align 2, 0 _0804847C: .4byte gUnknown_80F89F4 thumb_func_end sub_8048450 thumb_func_start sub_8048480 sub_8048480: push {lr} movs r2, 0 movs r3, 0 bl sub_807D148 pop {r0} bx r0 thumb_func_end sub_8048480 thumb_func_start sub_8048490 sub_8048490: push {lr} bl sub_8075FCC pop {r0} bx r0 thumb_func_end sub_8048490 thumb_func_start sub_804849C sub_804849C: push {lr} movs r2, 0x1 bl sub_8077AE4 pop {r0} bx r0 thumb_func_end sub_804849C thumb_func_start sub_80484A8 sub_80484A8: push {lr} sub sp, 0x4 movs r2, 0x1 str r2, [sp] movs r3, 0x1 bl sub_8072008 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80484A8 thumb_func_start sub_80484BC sub_80484BC: push {lr} bl sub_8076D10 pop {r0} bx r0 thumb_func_end sub_80484BC thumb_func_start sub_80484C8 sub_80484C8: push {lr} ldr r2, _080484D8 ldr r2, [r2] bl sub_80522F4 pop {r0} bx r0 .align 2, 0 _080484D8: .4byte gUnknown_80F89F4 thumb_func_end sub_80484C8 thumb_func_start sub_80484DC sub_80484DC: push {lr} movs r2, 0x1 bl sub_807232C pop {r0} bx r0 thumb_func_end sub_80484DC thumb_func_start sub_80484E8 sub_80484E8: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r0, [r4, 0x70] adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x1 bne _08048500 adds r0, r5, 0 bl sub_807A290 b _08048516 _08048500: ldr r0, _0804851C adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08048520 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _08048516: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804851C: .4byte gUnknown_202DF98 _08048520: .4byte gUnknown_80FB580 thumb_func_end sub_80484E8 thumb_func_start sub_8048524 sub_8048524: push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 adds r4, r1, 0 ldr r0, [r4, 0x70] adds r5, r0, 0 ldrb r0, [r5, 0x7] cmp r0, 0 beq _08048542 adds r0, r6, 0 movs r2, 0 movs r3, 0x5 bl sub_8078A58 b _080485A4 _08048542: ldr r0, _08048560 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 adds r0, r4, 0 movs r1, 0x12 bl sub_80718D8 lsls r0, 24 cmp r0, 0 beq _08048568 ldr r0, _08048564 b _08048586 .align 2, 0 _08048560: .4byte gUnknown_202DF98 _08048564: .4byte gUnknown_8100298 _08048568: movs r0, 0x9E lsls r0, 1 adds r5, r0 ldr r0, [r5] bl sub_8094450 cmp r0, 0 beq _08048598 mov r0, sp movs r1, 0 bl sub_80943A0 ldr r0, [sp] str r0, [r5] ldr r0, _08048594 _08048586: ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _080485A4 .align 2, 0 _08048594: .4byte gUnknown_80F9740 _08048598: ldr r0, _080485AC ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _080485A4: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080485AC: .4byte gUnknown_80F9760 thumb_func_end sub_8048524 thumb_func_start sub_80485B0 sub_80485B0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r9, r0 mov r8, r1 movs r0, 0 str r0, [sp] movs r2, 0x1 mov r10, r2 ldr r4, [r1, 0x70] movs r0, 0x64 bl sub_8084100 ldr r1, _0804865C movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _080485DE movs r0, 0x3 mov r10, r0 _080485DE: ldrb r0, [r4, 0x7] cmp r0, 0 beq _0804867C movs r2, 0x8C lsls r2, 1 adds r4, r2 adds r5, r4, 0 movs r7, 0x3 _080485EE: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0804862C movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0804862C adds r0, r5, 0 bl sub_8092BC0 cmp r0, 0 beq _0804862C ldrb r6, [r4, 0x5] adds r0, r5, 0 bl sub_8092C0C adds r1, r0, 0 ldrb r0, [r4, 0x5] add r0, r10 strb r0, [r4, 0x5] ldrb r0, [r4, 0x5] cmp r0, r1 blt _08048622 strb r1, [r4, 0x5] _08048622: ldrb r0, [r4, 0x5] cmp r6, r0 beq _0804862C movs r2, 0x1 str r2, [sp] _0804862C: adds r4, 0x8 adds r5, 0x8 subs r7, 0x1 cmp r7, 0 bge _080485EE ldr r0, [sp] cmp r0, 0 beq _08048668 ldr r0, _08048660 ldr r2, [r0] mov r0, r9 mov r1, r8 bl sub_80522F4 mov r2, r10 cmp r2, 0x1 beq _08048688 movs r0, 0xA movs r1, 0x40 bl sub_803E708 ldr r0, _08048664 b _0804866A .align 2, 0 _0804865C: .4byte gUnknown_80F4F46 _08048660: .4byte gUnknown_80FE454 _08048664: .4byte gUnknown_80FE434 _08048668: ldr r0, _08048678 _0804866A: ldr r2, [r0] mov r0, r9 mov r1, r8 bl sub_80522F4 b _08048688 .align 2, 0 _08048678: .4byte gUnknown_80FE40C _0804867C: ldr r0, _08048698 ldr r2, [r0] mov r0, r9 mov r1, r8 bl sub_80522F4 _08048688: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08048698: .4byte gUnknown_80FE40C thumb_func_end sub_80485B0 thumb_func_start sub_804869C sub_804869C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x1C adds r4, r0, 0 adds r7, r1, 0 lsls r2, 24 cmp r2, 0 beq _08048724 ldr r5, [r7, 0x70] ldr r0, _080486D4 ldr r0, [r0] ldr r1, _080486D8 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080486E4 ldr r0, _080486DC movs r1, 0 ldrsh r6, [r0, r1] ldr r0, _080486E0 ldr r2, [r0] adds r0, r4, 0 adds r1, r7, 0 bl sub_80522F4 b _080486EA .align 2, 0 _080486D4: .4byte gUnknown_203B418 _080486D8: .4byte 0x00000675 _080486DC: .4byte gUnknown_80F4FA8 _080486E0: .4byte gUnknown_80FEAE8 _080486E4: ldr r0, _0804871C movs r1, 0 ldrsh r6, [r0, r1] _080486EA: adds r0, r5, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 bne _080486FC adds r0, r4, 0 adds r1, r7, 0 bl sub_807A324 _080486FC: add r0, sp, 0x18 str r0, [sp] movs r1, 0 str r1, [sp, 0x4] ldr r0, _08048720 str r0, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] str r1, [sp, 0x14] adds r0, r4, 0 adds r1, r7, 0 adds r2, r6, 0 movs r3, 0x1 bl sub_806F370 b _080487B6 .align 2, 0 _0804871C: .4byte gUnknown_80F4FA4 _08048720: .4byte 0x00000216 _08048724: adds r0, r4, 0 bl sub_8042520 adds r0, r4, 0 bl sub_80696FC adds r5, r0, 0 cmp r5, 0 bne _08048748 ldr r0, _08048744 ldr r2, [r0] adds r0, r4, 0 adds r1, r7, 0 bl sub_80522F4 b _080487B6 .align 2, 0 _08048744: .4byte gUnknown_80FDBA0 _08048748: ldr r1, [r5, 0x70] mov r8, r1 ldr r0, _08048770 ldr r0, [r0] ldr r1, _08048774 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08048780 ldr r0, _08048778 movs r1, 0 ldrsh r6, [r0, r1] ldr r0, _0804877C ldr r2, [r0] adds r0, r4, 0 adds r1, r7, 0 bl sub_80522F4 b _08048786 .align 2, 0 _08048770: .4byte gUnknown_203B418 _08048774: .4byte 0x00000675 _08048778: .4byte gUnknown_80F4FAA _0804877C: .4byte gUnknown_80FEAE8 _08048780: ldr r0, _080487C4 movs r1, 0 ldrsh r6, [r0, r1] _08048786: mov r0, r8 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 bne _08048798 adds r0, r4, 0 adds r1, r5, 0 bl sub_807A324 _08048798: add r0, sp, 0x18 str r0, [sp] movs r1, 0 str r1, [sp, 0x4] ldr r0, _080487C8 str r0, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] str r1, [sp, 0x14] adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0x1 bl sub_806F370 _080487B6: add sp, 0x1C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080487C4: .4byte gUnknown_80F4FA6 _080487C8: .4byte 0x00000216 thumb_func_end sub_804869C thumb_func_start sub_80487CC sub_80487CC: push {r4,lr} sub sp, 0x4 movs r4, 0x1 str r4, [sp] bl sub_8078B5C add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80487CC thumb_func_start sub_80487E0 sub_80487E0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 mov r9, r0 mov r8, r1 lsls r3, r2, 24 ldr r5, [r1, 0x70] ldr r4, _08048858 lsrs r3, 23 adds r0, r5, 0 adds r0, 0x5C ldrb r0, [r0] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r3, r1 adds r0, r1, r4 movs r2, 0 ldrsh r6, [r0, r2] adds r0, r5, 0 adds r0, 0x5D ldrb r2, [r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r3, r0 adds r4, r3, r4 movs r2, 0 ldrsh r0, [r4, r2] adds r6, r0 ldr r0, _0804885C adds r1, r0 movs r4, 0 ldrsh r2, [r1, r4] adds r3, r0 movs r1, 0 ldrsh r0, [r3, r1] adds r2, r0 movs r0, 0x1 str r0, [sp] mov r0, r9 mov r1, r8 movs r3, 0 bl sub_8078B5C ldrb r0, [r5, 0x6] cmp r0, 0 bne _08048906 adds r0, r5, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08048852 cmp r0, 0x47 bne _08048860 _08048852: movs r0, 0x1 b _08048862 .align 2, 0 _08048858: .4byte gUnknown_810A580 _0804885C: .4byte gUnknown_810A808 _08048860: movs r0, 0 _08048862: cmp r0, 0 bne _08048906 movs r2, 0xC ldrsh r7, [r5, r2] ldrh r0, [r5, 0xC] adds r0, r6 strh r0, [r5, 0xC] adds r2, r7, r6 lsls r0, 16 cmp r0, 0 bgt _0804887C movs r0, 0x1 strh r0, [r5, 0xC] _0804887C: movs r4, 0xC ldrsh r0, [r5, r4] ldr r1, _080488A0 cmp r0, r1 ble _08048888 strh r1, [r5, 0xC] _08048888: movs r1, 0xC ldrsh r0, [r5, r1] cmp r7, r0 bne _080488A8 ldr r0, _080488A4 ldr r2, [r0] mov r0, r9 mov r1, r8 bl sub_80522F4 b _08048906 .align 2, 0 _080488A0: .4byte 0x000003e7 _080488A4: .4byte gUnknown_80FD644 _080488A8: subs r0, r2, r7 movs r2, 0 cmp r0, 0x8 bgt _080488BE movs r2, 0x1 cmp r0, 0x4 bgt _080488BE movs r2, 0x3 cmp r0, 0x2 ble _080488BE movs r2, 0x2 _080488BE: movs r4, 0xC ldrsh r0, [r5, r4] subs r0, r7 movs r4, 0 cmp r0, 0x8 bgt _080488D8 movs r4, 0x1 cmp r0, 0x4 bgt _080488D8 movs r4, 0x3 cmp r0, 0x2 ble _080488D8 movs r4, 0x2 _080488D8: ldr r1, _08048914 lsls r0, r2, 2 adds r0, r1 ldr r2, [r0] mov r0, r9 mov r1, r8 bl sub_80522F4 ldr r1, _08048918 lsls r0, r4, 2 adds r0, r1 ldr r2, [r0] mov r0, r9 mov r1, r8 bl sub_80522F4 mov r0, r8 bl sub_807191C adds r0, r5, 0 adds r1, r7, 0 bl sub_806A7E8 _08048906: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08048914: .4byte gUnknown_80FD648 _08048918: .4byte gUnknown_80FD6E8 thumb_func_end sub_80487E0 thumb_func_start sub_804891C sub_804891C: push {lr} movs r2, 0x3 bl sub_80793B0 pop {r0} bx r0 thumb_func_end sub_804891C thumb_func_start sub_8048928 sub_8048928: push {lr} movs r2, 0x3 bl sub_8079420 pop {r0} bx r0 thumb_func_end sub_8048928 thumb_func_start sub_8048934 sub_8048934: push {lr} movs r2, 0x3 bl sub_8079490 pop {r0} bx r0 thumb_func_end sub_8048934 thumb_func_start sub_8048940 sub_8048940: push {lr} movs r2, 0x3 bl sub_8079500 pop {r0} bx r0 thumb_func_end sub_8048940 thumb_func_start nullsub_94 nullsub_94: bx lr thumb_func_end nullsub_94 thumb_func_start sub_8048950 sub_8048950: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r0 mov r8, r1 ldrb r0, [r1, 0x2] bl sub_80913CC lsls r0, 16 lsrs r0, 16 mov r9, r0 mov r0, r8 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08048988 ldr r0, _08048984 _08048978: ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _08048A58 .align 2, 0 _08048984: .4byte gUnknown_80FE3E8 _08048988: mov r1, r8 ldrb r0, [r1, 0x2] bl sub_80915A0 lsls r0, 24 cmp r0, 0 beq _080489A0 ldr r0, _0804899C b _08048978 .align 2, 0 _0804899C: .4byte gUnknown_81006CC _080489A0: movs r7, 0 _080489A2: ldr r0, _080489FC ldr r0, [r0] lsls r1, r7, 2 ldr r2, _08048A00 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08048A12 ldr r6, [r4, 0x70] movs r0, 0x2 ldrsh r1, [r6, r0] mov r0, r9 bl sub_808E190 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 movs r1, 0 bl sub_8070B6C lsls r0, 24 cmp r0, 0 beq _080489DC movs r5, 0 _080489DC: adds r0, r6, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _080489E8 movs r5, 0 _080489E8: adds r0, r6, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _080489F6 cmp r0, 0x47 bne _08048A04 _080489F6: movs r0, 0x1 b _08048A06 .align 2, 0 _080489FC: .4byte gUnknown_203B418 _08048A00: .4byte 0x0001357c _08048A04: movs r0, 0 _08048A06: cmp r0, 0 beq _08048A0C movs r5, 0 _08048A0C: ldr r1, _08048A50 adds r0, r6, r1 strb r5, [r0] _08048A12: adds r7, 0x1 cmp r7, 0x3 ble _080489A2 movs r0, 0 movs r1, 0x1 bl sub_8062978 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08048A58 mov r0, r10 mov r1, r8 bl sub_804245C adds r0, r4, 0 mov r1, r9 bl sub_8072938 lsls r0, 24 cmp r0, 0 beq _08048A58 ldr r2, _08048A54 mov r0, r10 movs r1, 0 bl sub_8044E24 movs r0, 0x1 b _08048A5A .align 2, 0 _08048A50: .4byte 0x00000157 _08048A54: .4byte 0x00000141 _08048A58: movs r0, 0 _08048A5A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8048950 thumb_func_start sub_8048A68 sub_8048A68: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r0 mov r8, r1 ldrb r1, [r1] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08048A90 ldr r0, _08048A8C _08048A80: ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _08048B8C .align 2, 0 _08048A8C: .4byte gUnknown_80FE3E8 _08048A90: ldr r0, _08048AA4 ldr r0, [r0] ldr r1, _08048AA8 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08048AB0 ldr r0, _08048AAC b _08048A80 .align 2, 0 _08048AA4: .4byte gUnknown_203B418 _08048AA8: .4byte 0x0000065c _08048AAC: .4byte gUnknown_80F9BD8 _08048AB0: movs r7, 0 _08048AB2: ldr r0, _08048B24 ldr r0, [r0] lsls r1, r7, 2 ldr r2, _08048B28 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08048B4A ldr r5, [r4, 0x70] movs r6, 0x1 ldrb r0, [r5, 0xA] cmp r0, 0x3 bhi _08048AF4 ldr r2, _08048B2C ldrb r1, [r5, 0xA] movs r0, 0x64 muls r1, r0 ldr r0, _08048B30 adds r1, r0 ldr r0, [r2] adds r0, r1 movs r1, 0xA ldrsh r0, [r0, r1] bl sub_806A538 lsls r0, 24 cmp r0, 0 beq _08048AF6 _08048AF4: movs r6, 0 _08048AF6: adds r0, r4, 0 movs r1, 0 bl sub_8070B6C lsls r0, 24 cmp r0, 0 beq _08048B06 movs r6, 0 _08048B06: adds r0, r5, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _08048B12 movs r6, 0 _08048B12: adds r0, r5, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08048B20 cmp r0, 0x47 bne _08048B34 _08048B20: movs r0, 0x1 b _08048B36 .align 2, 0 _08048B24: .4byte gUnknown_203B418 _08048B28: .4byte 0x0001357c _08048B2C: .4byte gUnknown_203B45C _08048B30: .4byte 0x00008df8 _08048B34: movs r0, 0 _08048B36: cmp r0, 0 beq _08048B3C movs r6, 0 _08048B3C: ldrb r0, [r5, 0x7] cmp r0, 0 beq _08048B44 movs r6, 0 _08048B44: ldr r2, _08048B84 adds r0, r5, r2 strb r6, [r0] _08048B4A: adds r7, 0x1 cmp r7, 0x3 ble _08048AB2 movs r0, 0 movs r1, 0x1 bl sub_8062978 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _08048B8C mov r0, r9 mov r1, r8 bl sub_804245C ldr r0, _08048B88 ldr r0, [r0] adds r0, 0xBC str r4, [r0] movs r2, 0xA1 lsls r2, 1 mov r0, r9 movs r1, 0 bl sub_8044E24 movs r0, 0x1 b _08048B8E .align 2, 0 _08048B84: .4byte 0x00000157 _08048B88: .4byte gUnknown_203B418 _08048B8C: movs r0, 0 _08048B8E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8048A68 thumb_func_start sub_8048B9C sub_8048B9C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x20 mov r9, r0 movs r0, 0 mov r8, r0 mov r2, r9 ldr r0, [r2, 0x70] adds r6, r0, 0 adds r6, 0x44 ldrb r1, [r1] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08048BD4 ldr r0, _08048BD0 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage movs r0, 0 b _08048D40 .align 2, 0 _08048BD0: .4byte gUnknown_80FE3E8 _08048BD4: movs r2, 0 _08048BD6: ldr r0, _08048C28 ldr r0, [r0] lsls r1, r2, 2 ldr r3, _08048C2C adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 str r2, [sp, 0x1C] bl sub_80450E0 lsls r0, 24 ldr r2, [sp, 0x1C] cmp r0, 0 beq _08048C3E ldr r5, [r4, 0x70] movs r7, 0x1 adds r0, r4, 0 movs r1, 0 bl sub_8070B6C lsls r0, 24 ldr r2, [sp, 0x1C] cmp r0, 0 beq _08048C0A movs r7, 0 _08048C0A: adds r0, r5, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _08048C16 movs r7, 0 _08048C16: adds r0, r5, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08048C24 cmp r0, 0x47 bne _08048C30 _08048C24: movs r0, 0x1 b _08048C32 .align 2, 0 _08048C28: .4byte gUnknown_203B418 _08048C2C: .4byte 0x0001357c _08048C30: movs r0, 0 _08048C32: cmp r0, 0 beq _08048C38 movs r7, 0 _08048C38: ldr r4, _08048C5C adds r0, r5, r4 strb r7, [r0] _08048C3E: adds r2, 0x1 cmp r2, 0x3 ble _08048BD6 movs r0, 0 movs r1, 0x1 bl sub_8062978 adds r4, r0, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 bne _08048C60 movs r0, 0 b _08048D40 .align 2, 0 _08048C5C: .4byte 0x00000157 _08048C60: add r1, sp, 0x4 adds r0, r6, 0 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} b _08048CE2 _08048C6E: ldrh r0, [r6] cmp r0, 0x1D bne _08048C7C adds r0, r6, 0 bl sub_80637E8 b _08048CE2 _08048C7C: cmp r0, 0x20 bne _08048C9A movs r0, 0 movs r1, 0 bl sub_803EAF0 adds r0, r6, 0 bl sub_8063BB4 movs r0, 0x1 bl sub_8044C10 movs r5, 0x1 mov r8, r5 b _08048CE2 _08048C9A: cmp r0, 0x21 bne _08048CB6 movs r0, 0 movs r1, 0 bl sub_803EAF0 adds r0, r6, 0 movs r1, 0 bl sub_8063CF0 movs r0, 0x1 bl sub_8044C10 b _08048CE2 _08048CB6: cmp r0, 0x1E beq _08048CBE cmp r0, 0x33 bne _08048CD0 _08048CBE: movs r0, 0 movs r1, 0 bl sub_803EAF0 adds r0, r6, 0 movs r1, 0 bl sub_8063A70 b _08048CE2 _08048CD0: cmp r0, 0x1F bne _08048CE2 movs r0, 0 movs r1, 0 bl sub_803EAF0 adds r0, r6, 0 bl sub_8063B54 _08048CE2: adds r0, r6, 0 bl sub_8044C88 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r1, 0x1 movs r2, 0 movs r3, 0 bl sub_8062F90 lsls r0, 24 cmp r0, 0 beq _08048C6E mov r0, r8 cmp r0, 0 beq _08048D38 ldr r0, _08048D34 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 bne _08048C6E adds r1, r6, 0 add r0, sp, 0x4 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} mov r0, r9 movs r1, 0 movs r2, 0x6E bl sub_8044DF0 adds r0, r6, 0 movs r1, 0x2C bl sub_8044C94 b _08048D3E .align 2, 0 _08048D34: .4byte gUnknown_80FECA0 _08048D38: movs r0, 0x1 bl sub_8044C10 _08048D3E: mov r0, r8 _08048D40: add sp, 0x20 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8048B9C thumb_func_start sub_8048D50 sub_8048D50: push {r4,lr} adds r4, r0, 0 adds r2, r1, 0 ldr r3, [r4, 0x70] ldrb r1, [r2] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08048D78 ldr r0, _08048D70 adds r1, r2, 0 bl sub_8045BF8 ldr r0, _08048D74 b _08048D9A .align 2, 0 _08048D70: .4byte gUnknown_202DE58 _08048D74: .4byte gUnknown_80FE3E8 _08048D78: adds r0, r3, 0 adds r0, 0xEC ldrb r0, [r0] cmp r0, 0x1 bne _08048DB0 ldrb r0, [r2, 0x2] bl sub_8091570 lsls r0, 24 cmp r0, 0 beq _08048DB0 ldr r0, _08048DA8 adds r1, r4, 0 movs r2, 0 bl sub_8045B94 ldr r0, _08048DAC _08048D9A: ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 movs r0, 0 b _08048DB2 .align 2, 0 _08048DA8: .4byte gUnknown_202DF98 _08048DAC: .4byte gUnknown_80FDCA4 _08048DB0: movs r0, 0x1 _08048DB2: pop {r4} pop {r1} bx r1 thumb_func_end sub_8048D50 thumb_func_start sub_8048DB8 sub_8048DB8: push {r4,lr} sub sp, 0x1C adds r3, r0, 0 adds r4, r1, 0 lsls r2, 24 cmp r2, 0 beq _08048DF4 ldr r0, _08048DEC movs r1, 0 ldrsh r2, [r0, r1] add r0, sp, 0x18 str r0, [sp] movs r1, 0 str r1, [sp, 0x4] ldr r0, _08048DF0 str r0, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] str r1, [sp, 0x14] adds r0, r3, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_806F370 b _08048DFA .align 2, 0 _08048DEC: .4byte gUnknown_80F4FAC _08048DF0: .4byte 0x00000217 _08048DF4: adds r0, r3, 0 bl sub_8051E7C _08048DFA: add sp, 0x1C pop {r4} pop {r0} bx r0 thumb_func_end sub_8048DB8 thumb_func_start sub_8048E04 sub_8048E04: push {r4-r6,lr} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 movs r0, 0x1 str r0, [sp] adds r0, r5, 0 movs r2, 0x1E movs r3, 0 bl sub_8078B5C movs r0, 0x5 bl sub_8084100 cmp r0, 0x4 bhi _08048E9E lsls r0, 2 ldr r1, _08048E30 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08048E30: .4byte _08048E34 .align 2, 0 _08048E34: .4byte _08048E48 .4byte _08048E54 .4byte _08048E5E .4byte _08048E6C .4byte _08048E78 _08048E48: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 bl sub_80763F8 b _08048E9E _08048E54: adds r0, r5, 0 adds r1, r6, 0 bl sub_80769CC b _08048E9E _08048E5E: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 movs r3, 0x1 bl sub_8076210 b _08048E9E _08048E6C: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 bl sub_8077780 b _08048E9E _08048E78: ldr r0, _08048EA8 ldr r2, [r0] movs r4, 0x1 str r4, [sp] str r4, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x3 bl sub_8076E20 ldr r0, _08048EAC ldr r2, [r0] str r4, [sp] str r4, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x3 bl sub_8076E20 _08048E9E: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08048EA8: .4byte gUnknown_8106A4C _08048EAC: .4byte gUnknown_8106A50 thumb_func_end sub_8048E04 thumb_func_start sub_8048EB0 sub_8048EB0: push {lr} ldr r1, _08048EC0 ldr r1, [r1] bl sub_80522A8 pop {r0} bx r0 .align 2, 0 _08048EC0: .4byte gUnknown_81003E0 thumb_func_end sub_8048EB0 thumb_func_start sub_8048EC4 sub_8048EC4: push {lr} ldr r1, _08048ED4 ldr r1, [r1] bl sub_80522A8 pop {r0} bx r0 .align 2, 0 _08048ED4: .4byte gUnknown_8100404 thumb_func_end sub_8048EC4 thumb_func_start sub_8048ED8 sub_8048ED8: push {lr} ldr r1, _08048EE8 ldr r1, [r1] bl sub_80522A8 pop {r0} bx r0 .align 2, 0 _08048EE8: .4byte gUnknown_8100428 thumb_func_end sub_8048ED8 thumb_func_start sub_8048EEC sub_8048EEC: push {lr} ldr r1, _08048EFC ldr r1, [r1] bl sub_80522A8 pop {r0} bx r0 .align 2, 0 _08048EFC: .4byte gUnknown_810044C thumb_func_end sub_8048EEC thumb_func_start sub_8048F00 sub_8048F00: push {r4,lr} adds r4, r0, 0 movs r1, 0xD6 bl sub_80421C0 ldr r0, _08048F24 ldr r1, [r0] adds r0, r4, 0 bl sub_80522A8 movs r0, 0x3C movs r1, 0x46 bl sub_803E708 pop {r4} pop {r0} bx r0 .align 2, 0 _08048F24: .4byte gUnknown_8100494 thumb_func_end sub_8048F00 thumb_func_start sub_8048F28 sub_8048F28: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 ldr r3, [r4, 0x70] movs r6, 0 movs r0, 0x1 adds r5, r2, 0 ands r5, r0 lsrs r2, 1 movs r0, 0x1 ands r2, r0 ldrb r0, [r1, 0x2] subs r0, 0x1 cmp r0, 0xCC bls _08048F48 b _080494E0 _08048F48: lsls r0, 2 ldr r1, _08048F54 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08048F54: .4byte _08048F58 .align 2, 0 _08048F58: .4byte _0804928C .4byte _0804928C .4byte _0804928C .4byte _0804928C .4byte _0804928C .4byte _0804928C .4byte _0804928C .4byte _0804928C .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _08049408 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _08049296 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080492B0 .4byte _080492B0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _08049320 .4byte _080494E0 .4byte _080492B8 .4byte _080492B8 .4byte _0804935E .4byte _080494E0 .4byte _080493E0 .4byte _0804948E .4byte _08049394 .4byte _08049344 .4byte _0804946E .4byte _0804947A .4byte _08049378 .4byte _080493CE .4byte _080493AC .4byte _080493B8 .4byte _08049436 .4byte _080494E0 .4byte _080493F6 .4byte _080494B2 .4byte _0804946A .4byte _08049462 .4byte _08049454 .4byte _08049498 .4byte _080492DC .4byte _0804932C .4byte _08049338 .4byte _0804933C .4byte _08049340 .4byte _080494C2 .4byte _080494C2 .4byte _080494D6 .4byte _080494C2 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494E0 .4byte _080494DA _0804928C: cmp r5, 0 bne _08049292 b _080494E2 _08049292: movs r6, 0x46 b _080494E2 _08049296: cmp r5, 0 bne _0804929C b _080494E0 _0804929C: movs r1, 0x9E lsls r1, 1 adds r0, r3, r1 ldr r0, [r0] bl sub_8094450 cmp r0, 0 ble _080492AE b _0804948A _080492AE: b _080494E0 _080492B0: cmp r5, 0 beq _080492B6 b _0804948A _080492B6: b _080494E0 _080492B8: movs r2, 0xE ldrsh r1, [r3, r2] movs r2, 0x10 ldrsh r0, [r3, r2] cmp r1, r0 blt _080492C6 b _080494E2 _080492C6: cmp r0, 0 bge _080492CC adds r0, 0x3 _080492CC: asrs r0, 2 cmp r1, r0 ble _080492D4 b _080494E2 _080492D4: cmp r5, 0 bne _080492DA b _08049420 _080492DA: b _08049432 _080492DC: movs r6, 0 movs r0, 0x8C lsls r0, 1 adds r5, r3, r0 adds r7, r5, 0 movs r2, 0x3 _080492E8: ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0804930C ldrb r0, [r5, 0x4] cmp r0, 0 bne _080492FA adds r6, 0x1E _080492FA: ldrb r4, [r5, 0x4] adds r0, r7, 0 str r2, [sp] bl sub_8092BF4 ldr r2, [sp] cmp r4, r0 beq _0804930C adds r6, 0x6 _0804930C: adds r5, 0x8 adds r7, 0x8 subs r2, 0x1 cmp r2, 0 bge _080492E8 cmp r6, 0x62 bgt _0804931C b _080494E2 _0804931C: movs r6, 0x63 b _080494E2 _08049320: adds r0, r4, 0 bl sub_8070A58 lsls r0, 24 movs r6, 0 b _080494BC _0804932C: ldrb r0, [r3, 0x14] _0804932E: movs r6, 0x64 cmp r0, 0xF9 bhi _08049336 b _080494E2 _08049336: b _080494E0 _08049338: ldrb r0, [r3, 0x15] b _0804932E _0804933C: ldrb r0, [r3, 0x16] b _0804932E _08049340: ldrb r0, [r3, 0x17] b _0804932E _08049344: cmp r5, 0 beq _0804934A b _080494E0 _0804934A: adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x64 cmp r0, 0 bne _0804935A b _080494E2 _0804935A: movs r6, 0xA b _080494E2 _0804935E: adds r0, r4, 0 bl sub_8071884 lsls r0, 24 cmp r0, 0 beq _0804936C b _080494A2 _0804936C: adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x5 b _080494BC _08049378: ldr r0, [r4, 0x70] movs r1, 0x82 lsls r1, 1 adds r0, r1 ldr r0, [r0] cmp r0, 0x3 ble _08049388 b _080494A2 _08049388: adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x5 b _080494BC _08049394: adds r0, r3, 0 adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0x2 bne _080493A0 b _080494A2 _080493A0: adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x5 b _080494BC _080493AC: adds r0, r3, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 bne _080494A2 b _080494B2 _080493B8: adds r0, r3, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 beq _080494A2 adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0xF b _080494BC _080493CE: adds r0, r3, 0 adds r0, 0xAC ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080494A2 b _08049420 _080493E0: adds r0, r3, 0 adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0x1 beq _080494A2 adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x5 b _080494BC _080493F6: cmp r2, 0 bne _0804940C adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x5 cmp r0, 0 beq _080494E2 _08049408: movs r6, 0x28 b _080494E2 _0804940C: movs r2, 0xE ldrsh r1, [r3, r2] movs r2, 0x10 ldrsh r0, [r3, r2] cmp r1, r0 bge _080494E2 cmp r1, 0x13 bgt _080494E2 cmp r5, 0 bne _08049432 _08049420: adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x32 cmp r0, 0 beq _080494E2 movs r6, 0x64 b _080494E2 _08049432: movs r6, 0x32 b _080494E2 _08049436: adds r0, r3, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x1 beq _080494A2 cmp r0, 0x5 beq _080494A2 cmp r0, 0x3 beq _080494A2 adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x5 b _080494BC _08049454: adds r0, r3, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x2 beq _080494A2 movs r6, 0x5 b _080494E2 _08049462: ldrb r0, [r3, 0x9] movs r6, 0 cmp r0, 0x62 bhi _080494E2 _0804946A: movs r6, 0x50 b _080494E2 _0804946E: adds r0, r3, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x1 beq _0804948A b _080494E0 _0804947A: movs r1, 0x9E lsls r1, 1 adds r0, r3, r1 ldr r0, [r0] bl sub_8094450 cmp r0, 0 ble _080494E0 _0804948A: movs r0, 0x32 b _080494E4 _0804948E: ldrb r0, [r3, 0x9] movs r6, 0 cmp r0, 0x1 bls _080494E2 b _0804946A _08049498: adds r0, r3, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x6 bne _080494A6 _080494A2: movs r0, 0 b _080494E4 _080494A6: adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x5 b _080494BC _080494B2: adds r0, r4, 0 bl sub_80494EC lsls r0, 24 movs r6, 0x1E _080494BC: cmp r0, 0 beq _080494E2 b _0804946A _080494C2: movs r2, 0x9E lsls r2, 1 adds r0, r3, r2 ldr r0, [r0] bl sub_8094450 cmp r0, 0x9 bgt _080494E0 movs r0, 0x64 b _080494E4 _080494D6: movs r6, 0x1E b _080494E2 _080494DA: movs r6, 0x14 cmp r5, 0 beq _080494E2 _080494E0: movs r6, 0 _080494E2: adds r0, r6, 0 _080494E4: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8048F28 thumb_func_start sub_80494EC sub_80494EC: push {r4-r6,lr} adds r5, r0, 0 movs r6, 0 _080494F2: movs r1, 0x4 ldrsh r0, [r5, r1] ldr r1, _08049538 lsls r2, r6, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r5, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C ldr r4, [r0, 0x10] cmp r4, 0 beq _0804953C adds r0, r4, 0 bl sub_80450F8 cmp r0, 0 beq _0804953C adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0804953C movs r0, 0x1 b _08049544 .align 2, 0 _08049538: .4byte gUnknown_80F4448 _0804953C: adds r6, 0x1 cmp r6, 0x7 ble _080494F2 movs r0, 0 _08049544: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80494EC thumb_func_start sub_804954C sub_804954C: push {lr} adds r2, r0, 0 adds r3, r1, 0 cmp r2, 0 blt _08049584 cmp r3, 0 blt _08049584 cmp r2, 0x37 bgt _08049584 cmp r3, 0x1F bgt _08049584 ldr r0, _0804957C ldr r1, [r0] lsls r2, 2 lsls r0, r3, 3 subs r0, r3 lsls r0, 5 adds r2, r0 ldr r0, _08049580 adds r1, r0 adds r1, r2 ldr r0, [r1] b _08049588 .align 2, 0 _0804957C: .4byte gUnknown_203B418 _08049580: .4byte 0x0000e8c0 _08049584: ldr r0, _0804958C ldr r0, [r0] _08049588: pop {r1} bx r1 .align 2, 0 _0804958C: .4byte gUnknown_203B430 thumb_func_end sub_804954C thumb_func_start sub_8049590 sub_8049590: push {r4,r5,lr} adds r2, r0, 0 adds r3, r1, 0 cmp r2, 0 blt _080495A6 cmp r3, 0 blt _080495A6 cmp r2, 0x37 bgt _080495A6 cmp r3, 0x1F ble _080495C0 _080495A6: ldr r0, _080495B8 ldr r1, _080495BC adds r2, r0, 0 ldr r1, [r1] ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} b _080495D6 .align 2, 0 _080495B8: .4byte gUnknown_202F190 _080495BC: .4byte gUnknown_203B430 _080495C0: ldr r0, _080495DC ldr r1, [r0] lsls r2, 2 lsls r0, r3, 3 subs r0, r3 lsls r0, 5 adds r2, r0 ldr r0, _080495E0 adds r1, r0 adds r1, r2 ldr r0, [r1] _080495D6: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080495DC: .4byte gUnknown_203B418 _080495E0: .4byte 0x0000e8c0 thumb_func_end sub_8049590 thumb_func_start sub_80495E4 sub_80495E4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r2, 0 ldr r0, _08049658 mov r9, r0 mov r12, r9 ldr r7, _0804965C ldr r1, _08049660 mov r8, r1 _080495FA: lsls r1, r2, 3 lsls r0, r2, 2 adds r6, r2, 0x1 subs r1, r2 adds r0, r2 lsls r0, 2 adds r0, r2 lsls r0, 6 movs r4, 0 lsls r2, r1, 5 mov r3, r8 adds r5, r0, r3 movs r3, 0x37 _08049614: mov r1, r12 ldr r0, [r1] adds r1, r0, r7 adds r1, r2 adds r0, r5 adds r0, r4 str r0, [r1] adds r4, 0x18 adds r2, 0x4 subs r3, 0x1 cmp r3, 0 bge _08049614 adds r2, r6, 0 cmp r2, 0x1F ble _080495FA movs r2, 0 mov r3, r9 ldr r1, [r3] ldr r4, _08049664 adds r0, r1, r4 movs r3, 0 strh r2, [r0] adds r4, 0x2 adds r0, r1, r4 strh r2, [r0] ldr r0, _08049668 adds r1, r0 strb r3, [r1] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08049658: .4byte gUnknown_203B418 _0804965C: .4byte 0x0000e8c0 _08049660: .4byte 0x00003a18 _08049664: .4byte 0x00003a0e _08049668: .4byte 0x00013570 thumb_func_end sub_80495E4 thumb_func_start sub_804966C sub_804966C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC ldr r1, _08049734 ldr r0, _08049738 mov r8, r0 ldr r6, _0804973C ldr r0, [r6] ldr r5, _08049740 adds r0, r5 movs r2, 0 ldrsh r0, [r0, r2] add r0, r8 ldrb r2, [r0] mov r0, sp bl sprintf ldr r7, _08049744 mov r0, sp adds r1, r7, 0 bl OpenFileAndGetFileDataPtr adds r4, r0, 0 ldr r0, _08049748 movs r1, 0 adds r2, r4, 0 bl sub_800AE28 adds r0, r4, 0 bl CloseFile ldr r1, _0804974C ldr r0, [r6] adds r0, r5 movs r3, 0 ldrsh r2, [r0, r3] mov r0, sp bl sprintf mov r0, sp adds r1, r7, 0 bl OpenFileAndGetFileDataPtr ldr r1, _08049750 str r0, [r1] ldr r1, _08049754 ldr r0, [r6] adds r0, r5 movs r4, 0 ldrsh r0, [r0, r4] add r0, r8 ldrb r2, [r0] mov r0, sp bl sprintf mov r0, sp adds r1, r7, 0 bl OpenFileAndGetFileDataPtr adds r4, r0, 0 ldr r0, [r6] ldr r1, _08049758 adds r0, r1 ldr r1, _0804975C adds r2, r4, 0 bl sub_800AAA8 adds r0, r4, 0 bl CloseFile ldr r0, [r6] adds r2, r0, r5 movs r3, 0 ldrsh r0, [r2, r3] cmp r0, 0x3F bgt _08049768 ldr r1, _08049760 add r0, r8 ldrb r2, [r0] mov r0, sp bl sprintf mov r0, sp adds r1, r7, 0 bl OpenFileAndGetFileDataPtr adds r4, r0, 0 ldr r0, [r6] ldr r1, _08049764 adds r0, r1 movs r1, 0x93 lsls r1, 4 adds r2, r4, 0 bl sub_800AAA8 adds r0, r4, 0 bl CloseFile b _08049794 .align 2, 0 _08049734: .4byte gUnknown_80F6A04 _08049738: .4byte gUnknown_8108EC0 _0804973C: .4byte gUnknown_203B418 _08049740: .4byte 0x00003a0e _08049744: .4byte gUnknown_83B0000 _08049748: .4byte 0x06008000 _0804974C: .4byte gUnknown_80F6A10 _08049750: .4byte gUnknown_202EE88 _08049754: .4byte gUnknown_80F6A1C _08049758: .4byte 0x00011884 _0804975C: .4byte 0x00001194 _08049760: .4byte gUnknown_80F6A28 _08049764: .4byte 0x00012c24 _08049768: ldr r1, _080497E8 movs r3, 0 ldrsh r2, [r2, r3] mov r0, sp bl sprintf mov r0, sp adds r1, r7, 0 bl OpenFileAndGetFileDataPtr adds r4, r0, 0 ldr r0, [r6] ldr r1, _080497EC adds r0, r1 movs r1, 0x90 lsls r1, 2 adds r2, r4, 0 bl sub_800AAA8 adds r0, r4, 0 bl CloseFile _08049794: ldr r1, _080497F0 ldr r5, _080497F4 ldr r0, [r5] ldr r4, _080497F8 adds r0, r4 movs r3, 0 ldrsh r2, [r0, r3] mov r0, sp bl sprintf ldr r1, _080497FC mov r0, sp bl OpenFileAndGetFileDataPtr adds r1, r0, 0 ldr r0, _08049800 str r1, [r0] ldr r0, _08049804 movs r2, 0x20 bl sub_8004AA4 ldr r2, _08049808 movs r6, 0 strb r6, [r2] movs r3, 0x1 strb r3, [r2, 0x1] movs r0, 0x2 strb r0, [r2, 0x2] movs r0, 0x3 strb r0, [r2, 0x3] ldr r1, _0804980C ldr r0, [r5] adds r0, r4 movs r4, 0 ldrsh r0, [r0, r4] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _08049810 strb r3, [r2, 0x4] strb r6, [r2, 0x5] b _08049814 .align 2, 0 _080497E8: .4byte gUnknown_80F6A34 _080497EC: .4byte 0x00012c24 _080497F0: .4byte gUnknown_80F6A40 _080497F4: .4byte gUnknown_203B418 _080497F8: .4byte 0x00003a0e _080497FC: .4byte gUnknown_83B0000 _08049800: .4byte gUnknown_202F18C _08049804: .4byte gUnknown_202EE8C _08049808: .4byte gUnknown_202F314 _0804980C: .4byte gUnknown_810ACC0 _08049810: strb r6, [r2, 0x4] strb r3, [r2, 0x5] _08049814: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804966C thumb_func_start sub_8049820 sub_8049820: push {lr} ldr r0, _08049838 ldr r0, [r0] bl CloseFile ldr r0, _0804983C ldr r0, [r0] bl CloseFile pop {r0} bx r0 .align 2, 0 _08049838: .4byte gUnknown_202F18C _0804983C: .4byte gUnknown_202EE88 thumb_func_end sub_8049820 thumb_func_start sub_8049840 sub_8049840: push {lr} ldr r0, _08049860 ldr r0, [r0] ldr r1, _08049864 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bl sub_8043CE4 lsls r0, 24 cmp r0, 0 beq _08049870 ldr r1, _08049868 ldr r0, _0804986C b _08049874 .align 2, 0 _08049860: .4byte gUnknown_203B418 _08049864: .4byte 0x00003a0e _08049868: .4byte gUnknown_203B430 _0804986C: .4byte gUnknown_80F69EC _08049870: ldr r1, _0804987C ldr r0, _08049880 _08049874: str r0, [r1] pop {r0} bx r0 .align 2, 0 _0804987C: .4byte gUnknown_203B430 _08049880: .4byte gUnknown_80F69D4 thumb_func_end sub_8049840 thumb_func_start sub_8049884 sub_8049884: push {r4-r6,lr} movs r5, 0 _08049888: movs r4, 0 adds r6, r5, 0x1 _0804988C: adds r0, r4, 0 adds r1, r5, 0 bl sub_80498A8 adds r4, 0x1 cmp r4, 0x37 ble _0804988C adds r5, r6, 0 cmp r5, 0x1F ble _08049888 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8049884 thumb_func_start sub_80498A8 sub_80498A8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 mov r10, r0 mov r9, r1 cmp r0, 0 bge _080498BE b _08049B72 _080498BE: cmp r1, 0 bge _080498C4 b _08049B72 _080498C4: cmp r0, 0x37 ble _080498CA b _08049B72 _080498CA: cmp r1, 0x1F ble _080498D0 b _08049B72 _080498D0: movs r7, 0 bl sub_804954C ldrh r0, [r0] movs r1, 0x3 mov r8, r1 mov r6, r8 ands r6, r0 str r6, [sp, 0x20] ldr r4, _08049914 ldr r0, [r4] ldr r3, _08049918 adds r0, r3 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x3F ble _08049928 mov r3, r10 cmp r3, 0x17 bgt _0804991C mov r0, r9 cmp r0, 0x17 bgt _0804991C mov r0, r10 mov r1, r9 bl sub_8049590 ldr r2, [r4] mov r3, r9 lsls r1, r3, 1 add r1, r9 lsls r1, 3 add r1, r10 b _08049B68 .align 2, 0 _08049914: .4byte gUnknown_203B418 _08049918: .4byte 0x00003a0e _0804991C: mov r0, r10 mov r1, r9 bl sub_8049590 movs r1, 0 b _08049B70 _08049928: mov r0, r9 adds r0, 0x1 str r0, [sp, 0x24] mov r0, r10 ldr r1, [sp, 0x24] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp] mov r4, r10 adds r4, 0x1 adds r0, r4, 0 ldr r1, [sp, 0x24] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp, 0x4] adds r0, r4, 0 mov r1, r9 bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp, 0x8] mov r5, r9 subs r5, 0x1 adds r0, r4, 0 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp, 0xC] mov r0, r10 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp, 0x10] subs r4, 0x2 adds r0, r4, 0 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp, 0x14] adds r0, r4, 0 mov r1, r9 bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 str r0, [sp, 0x18] adds r0, r4, 0 ldr r1, [sp, 0x24] bl sub_804954C ldrh r0, [r0] mov r1, r8 ands r1, r0 str r1, [sp, 0x1C] cmp r6, 0x1 bne _08049A1E movs r7, 0xFF ldr r0, [sp] cmp r0, 0 bne _080499C6 movs r7, 0xFE _080499C6: ldr r0, [sp, 0x4] cmp r0, 0 bne _080499D2 movs r0, 0x3 negs r0, r0 ands r7, r0 _080499D2: ldr r0, [sp, 0x8] cmp r0, 0 bne _080499DE movs r0, 0x5 negs r0, r0 ands r7, r0 _080499DE: ldr r0, [sp, 0xC] cmp r0, 0 bne _080499EA movs r0, 0x9 negs r0, r0 ands r7, r0 _080499EA: ldr r0, [sp, 0x10] cmp r0, 0 bne _080499F6 movs r0, 0x11 negs r0, r0 ands r7, r0 _080499F6: ldr r0, [sp, 0x14] cmp r0, 0 bne _08049A02 movs r0, 0x21 negs r0, r0 ands r7, r0 _08049A02: ldr r0, [sp, 0x18] cmp r0, 0 bne _08049A0E movs r0, 0x41 negs r0, r0 ands r7, r0 _08049A0E: cmp r1, 0 bne _08049A18 movs r0, 0x81 negs r0, r0 ands r7, r0 _08049A18: movs r0, 0x80 lsls r0, 2 b _08049B3A _08049A1E: cmp r6, 0x2 bne _08049A84 movs r7, 0xFF ldr r0, [sp] cmp r0, 0x2 beq _08049A2C movs r7, 0xFE _08049A2C: ldr r0, [sp, 0x4] cmp r0, 0x2 beq _08049A38 movs r0, 0x3 negs r0, r0 ands r7, r0 _08049A38: ldr r0, [sp, 0x8] cmp r0, 0x2 beq _08049A44 movs r0, 0x5 negs r0, r0 ands r7, r0 _08049A44: ldr r0, [sp, 0xC] cmp r0, 0x2 beq _08049A50 movs r0, 0x9 negs r0, r0 ands r7, r0 _08049A50: ldr r0, [sp, 0x10] cmp r0, 0x2 beq _08049A5C movs r0, 0x11 negs r0, r0 ands r7, r0 _08049A5C: ldr r0, [sp, 0x14] cmp r0, 0x2 beq _08049A68 movs r0, 0x21 negs r0, r0 ands r7, r0 _08049A68: ldr r0, [sp, 0x18] cmp r0, 0x2 beq _08049A74 movs r0, 0x41 negs r0, r0 ands r7, r0 _08049A74: cmp r1, 0x2 beq _08049A7E movs r0, 0x81 negs r0, r0 ands r7, r0 _08049A7E: movs r0, 0x80 lsls r0, 1 b _08049B3A _08049A84: ldr r1, [sp, 0x20] cmp r1, 0x3 bne _08049AEE movs r7, 0xFF ldr r0, [sp] cmp r0, 0x3 beq _08049A94 movs r7, 0xFE _08049A94: ldr r0, [sp, 0x4] cmp r0, 0x3 beq _08049AA0 movs r0, 0x3 negs r0, r0 ands r7, r0 _08049AA0: ldr r0, [sp, 0x8] cmp r0, 0x3 beq _08049AAC movs r0, 0x5 negs r0, r0 ands r7, r0 _08049AAC: ldr r0, [sp, 0xC] cmp r0, 0x3 beq _08049AB8 movs r0, 0x9 negs r0, r0 ands r7, r0 _08049AB8: ldr r0, [sp, 0x10] cmp r0, 0x3 beq _08049AC4 movs r0, 0x11 negs r0, r0 ands r7, r0 _08049AC4: ldr r0, [sp, 0x14] cmp r0, 0x3 beq _08049AD0 movs r0, 0x21 negs r0, r0 ands r7, r0 _08049AD0: ldr r0, [sp, 0x18] cmp r0, 0x3 beq _08049ADC movs r0, 0x41 negs r0, r0 ands r7, r0 _08049ADC: ldr r0, [sp, 0x1C] cmp r0, 0x3 beq _08049AE8 movs r0, 0x81 negs r0, r0 ands r7, r0 _08049AE8: movs r0, 0x80 lsls r0, 1 b _08049B3A _08049AEE: ldr r0, [sp] cmp r0, 0 bne _08049AF6 movs r7, 0x1 _08049AF6: ldr r0, [sp, 0x4] cmp r0, 0 bne _08049B00 movs r0, 0x2 orrs r7, r0 _08049B00: ldr r0, [sp, 0x8] cmp r0, 0 bne _08049B0A movs r0, 0x4 orrs r7, r0 _08049B0A: ldr r0, [sp, 0xC] cmp r0, 0 bne _08049B14 movs r0, 0x8 orrs r7, r0 _08049B14: ldr r0, [sp, 0x10] cmp r0, 0 bne _08049B1E movs r0, 0x10 orrs r7, r0 _08049B1E: ldr r0, [sp, 0x14] cmp r0, 0 bne _08049B28 movs r0, 0x20 orrs r7, r0 _08049B28: ldr r0, [sp, 0x18] cmp r0, 0 bne _08049B32 movs r0, 0x40 orrs r7, r0 _08049B32: ldr r0, [sp, 0x1C] cmp r0, 0 bne _08049B3C movs r0, 0x80 _08049B3A: orrs r7, r0 _08049B3C: movs r0, 0x4 bl RandomCapped adds r4, r0, 0 cmp r4, 0x3 bne _08049B4A movs r4, 0 _08049B4A: bl sub_80441BC lsls r0, 24 cmp r0, 0 beq _08049B56 movs r4, 0 _08049B56: mov r0, r10 mov r1, r9 bl sub_8049590 ldr r1, _08049B84 ldr r2, [r1] lsls r1, r7, 1 adds r1, r7 adds r1, r4, r1 _08049B68: ldr r3, _08049B88 adds r2, r3 adds r2, r1 ldrb r1, [r2] _08049B70: strb r1, [r0, 0x8] _08049B72: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08049B84: .4byte gUnknown_203B418 _08049B88: .4byte 0x00012c24 thumb_func_end sub_80498A8 thumb_func_start sub_8049B8C sub_8049B8C: push {r4-r6,lr} movs r5, 0 _08049B90: movs r4, 0 adds r6, r5, 0x1 _08049B94: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049BB0 adds r4, 0x1 cmp r4, 0x37 ble _08049B94 adds r5, r6, 0 cmp r5, 0x1F ble _08049B90 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8049B8C thumb_func_start sub_8049BB0 sub_8049BB0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x44 mov r10, r0 str r1, [sp, 0x40] movs r0, 0 str r0, [sp] str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] adds r0, r1, 0 adds r0, 0x1 mov r9, r0 mov r0, r10 mov r1, r9 bl sub_804954C ldrh r1, [r0] movs r4, 0x3 adds r0, r4, 0 ands r0, r1 add r6, sp, 0x18 str r0, [sp, 0x18] mov r5, r10 adds r5, 0x1 adds r0, r5, 0 mov r1, r9 bl sub_804954C ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 str r0, [r6, 0x4] adds r0, r5, 0 ldr r1, [sp, 0x40] bl sub_804954C ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 str r0, [r6, 0x8] ldr r0, [sp, 0x40] subs r0, 0x1 mov r8, r0 adds r0, r5, 0 mov r1, r8 bl sub_804954C ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 str r0, [r6, 0xC] mov r0, r10 mov r1, r8 bl sub_804954C ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 str r0, [r6, 0x10] subs r5, 0x2 adds r0, r5, 0 mov r1, r8 bl sub_804954C ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 str r0, [r6, 0x14] adds r0, r5, 0 ldr r1, [sp, 0x40] bl sub_804954C ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 str r0, [r6, 0x18] adds r0, r5, 0 mov r1, r9 bl sub_804954C ldrh r0, [r0] ands r4, r0 str r4, [r6, 0x1C] ldr r1, [sp, 0x18] cmp r1, 0x1 bne _08049C6A ldr r0, [sp] orrs r0, r1 str r0, [sp] _08049C6A: ldr r0, [r6, 0x8] cmp r0, 0x1 bne _08049C78 ldr r0, [sp] movs r1, 0x4 orrs r0, r1 str r0, [sp] _08049C78: ldr r0, [r6, 0x10] cmp r0, 0x1 bne _08049C86 ldr r0, [sp] movs r1, 0x10 orrs r0, r1 str r0, [sp] _08049C86: ldr r0, [r6, 0x18] cmp r0, 0x1 bne _08049C94 ldr r0, [sp] movs r1, 0x40 orrs r0, r1 str r0, [sp] _08049C94: ldr r2, [sp, 0x18] cmp r2, 0 beq _08049CAE ldr r0, [r6, 0x4] cmp r0, 0x1 bne _08049CAE ldr r0, [r6, 0x8] cmp r0, 0 beq _08049CC8 ldr r0, [sp] movs r1, 0x2 orrs r0, r1 str r0, [sp] _08049CAE: ldr r0, [r6, 0x8] cmp r0, 0 beq _08049CC8 ldr r0, [r6, 0xC] cmp r0, 0x1 bne _08049CC8 ldr r0, [r6, 0x10] cmp r0, 0 beq _08049CE2 ldr r0, [sp] movs r1, 0x8 orrs r0, r1 str r0, [sp] _08049CC8: ldr r0, [r6, 0x10] cmp r0, 0 beq _08049CE2 ldr r0, [r6, 0x14] cmp r0, 0x1 bne _08049CE2 ldr r0, [r6, 0x18] cmp r0, 0 beq _08049CFA ldr r0, [sp] movs r1, 0x20 orrs r0, r1 str r0, [sp] _08049CE2: ldr r0, [r6, 0x18] cmp r0, 0 beq _08049CFA ldr r0, [r6, 0x1C] cmp r0, 0x1 bne _08049CFA cmp r2, 0 beq _08049CFA ldr r0, [sp] movs r1, 0x80 orrs r0, r1 str r0, [sp] _08049CFA: add r4, sp, 0x38 movs r7, 0x1 adds r2, r4, 0 adds r1, r6, 0 movs r5, 0 movs r3, 0x7 _08049D06: ldr r0, [r1] subs r0, 0x1 cmp r0, 0x1 bhi _08049D12 strb r7, [r2] b _08049D14 _08049D12: strb r5, [r2] _08049D14: adds r2, 0x1 adds r1, 0x4 subs r3, 0x1 cmp r3, 0 bge _08049D06 ldrb r0, [r4] cmp r0, 0 beq _08049D2C ldr r0, [sp, 0x4] movs r1, 0x1 orrs r0, r1 str r0, [sp, 0x4] _08049D2C: ldrb r0, [r4, 0x2] cmp r0, 0 beq _08049D3A ldr r0, [sp, 0x4] movs r1, 0x4 orrs r0, r1 str r0, [sp, 0x4] _08049D3A: ldrb r0, [r4, 0x4] cmp r0, 0 beq _08049D48 ldr r0, [sp, 0x4] movs r1, 0x10 orrs r0, r1 str r0, [sp, 0x4] _08049D48: ldrb r0, [r4, 0x6] cmp r0, 0 beq _08049D56 ldr r0, [sp, 0x4] movs r1, 0x40 orrs r0, r1 str r0, [sp, 0x4] _08049D56: ldr r2, [sp, 0x18] cmp r2, 0 beq _08049D70 ldrb r0, [r4, 0x1] cmp r0, 0 beq _08049D70 ldr r0, [r6, 0x8] cmp r0, 0 beq _08049D8A ldr r0, [sp, 0x4] movs r1, 0x2 orrs r0, r1 str r0, [sp, 0x4] _08049D70: ldr r0, [r6, 0x8] cmp r0, 0 beq _08049D8A ldrb r0, [r4, 0x3] cmp r0, 0 beq _08049D8A ldr r0, [r6, 0x10] cmp r0, 0 beq _08049DA4 ldr r0, [sp, 0x4] movs r1, 0x8 orrs r0, r1 str r0, [sp, 0x4] _08049D8A: ldr r0, [r6, 0x10] cmp r0, 0 beq _08049DA4 ldrb r0, [r4, 0x5] cmp r0, 0 beq _08049DA4 ldr r0, [r6, 0x18] cmp r0, 0 beq _08049DBC ldr r0, [sp, 0x4] movs r1, 0x20 orrs r0, r1 str r0, [sp, 0x4] _08049DA4: ldr r0, [r6, 0x18] cmp r0, 0 beq _08049DBC ldrb r0, [r4, 0x7] cmp r0, 0 beq _08049DBC cmp r2, 0 beq _08049DC8 ldr r0, [sp, 0x4] movs r1, 0x80 orrs r0, r1 str r0, [sp, 0x4] _08049DBC: cmp r2, 0 beq _08049DC8 ldr r0, [sp, 0x8] movs r1, 0x1 orrs r0, r1 str r0, [sp, 0x8] _08049DC8: ldr r0, [r6, 0x8] cmp r0, 0 beq _08049DD6 ldr r0, [sp, 0x8] movs r1, 0x4 orrs r0, r1 str r0, [sp, 0x8] _08049DD6: ldr r0, [r6, 0x10] cmp r0, 0 beq _08049DE4 ldr r0, [sp, 0x8] movs r1, 0x10 orrs r0, r1 str r0, [sp, 0x8] _08049DE4: ldr r0, [r6, 0x18] cmp r0, 0 beq _08049DF2 ldr r0, [sp, 0x8] movs r1, 0x40 orrs r0, r1 str r0, [sp, 0x8] _08049DF2: cmp r2, 0 beq _08049E0A ldr r0, [r6, 0x4] cmp r0, 0 beq _08049E0A ldr r0, [r6, 0x8] cmp r0, 0 beq _08049E24 ldr r0, [sp, 0x8] movs r1, 0x2 orrs r0, r1 str r0, [sp, 0x8] _08049E0A: ldr r0, [r6, 0x8] cmp r0, 0 beq _08049E24 ldr r0, [r6, 0xC] cmp r0, 0 beq _08049E24 ldr r0, [r6, 0x10] cmp r0, 0 beq _08049E3E ldr r0, [sp, 0x8] movs r1, 0x8 orrs r0, r1 str r0, [sp, 0x8] _08049E24: ldr r0, [r6, 0x10] cmp r0, 0 beq _08049E3E ldr r0, [r6, 0x14] cmp r0, 0 beq _08049E3E ldr r0, [r6, 0x18] cmp r0, 0 beq _08049E56 ldr r0, [sp, 0x8] movs r1, 0x20 orrs r0, r1 str r0, [sp, 0x8] _08049E3E: ldr r0, [r6, 0x18] cmp r0, 0 beq _08049E56 ldr r0, [r6, 0x1C] cmp r0, 0 beq _08049E56 cmp r2, 0 beq _08049E56 ldr r0, [sp, 0x8] movs r1, 0x80 orrs r0, r1 str r0, [sp, 0x8] _08049E56: movs r0, 0xFF str r0, [sp, 0xC] mov r0, r10 cmp r0, 0x1 bgt _08049E64 movs r0, 0x1F str r0, [sp, 0xC] _08049E64: ldr r0, [sp, 0x40] cmp r0, 0x1 bgt _08049E74 ldr r0, [sp, 0xC] movs r1, 0x39 negs r1, r1 ands r0, r1 str r0, [sp, 0xC] _08049E74: mov r0, r10 cmp r0, 0x35 ble _08049E84 ldr r0, [sp, 0xC] movs r1, 0xF negs r1, r1 ands r0, r1 str r0, [sp, 0xC] _08049E84: ldr r0, [sp, 0x40] cmp r0, 0x1D ble _08049E94 ldr r0, [sp, 0xC] movs r1, 0x84 negs r1, r1 ands r0, r1 str r0, [sp, 0xC] _08049E94: mov r0, r10 ldr r1, [sp, 0x40] bl sub_8049590 ldr r1, [sp] strb r1, [r0, 0xA] mov r0, r10 ldr r1, [sp, 0x40] bl sub_8049590 ldr r1, [sp, 0x4] strb r1, [r0, 0xB] mov r0, r10 ldr r1, [sp, 0x40] bl sub_8049590 ldr r1, [sp, 0x8] strb r1, [r0, 0xC] mov r0, r10 ldr r1, [sp, 0x40] bl sub_8049590 ldr r1, [sp, 0xC] strb r1, [r0, 0xD] add sp, 0x44 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8049BB0 thumb_func_start sub_8049ED4 sub_8049ED4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x38 ldr r0, _08049F78 ldr r6, [r0] ldr r1, _08049F7C adds r0, r6, r1 ldrb r0, [r0] str r0, [sp] ldr r2, _08049F80 adds r0, r6, r2 ldrb r0, [r0] str r0, [sp, 0x4] ldr r4, _08049F84 adds r0, r6, r4 ldrh r0, [r0] lsls r0, 16 asrs r3, r0, 19 ldr r1, _08049F88 adds r0, r3, 0 adds r0, 0x1E lsls r0, 1 adds r1, r0, r1 movs r4, 0 ldrsh r2, [r1, r4] mov r10, r2 ldr r1, _08049F8C adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] str r1, [sp, 0x10] movs r4, 0 str r4, [sp, 0x8] _08049F1C: ldr r1, _08049F90 adds r0, r6, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 subs r2, r0, 0x1 mov r9, r2 movs r1, 0x1F ands r3, r1 ldr r1, _08049F88 adds r0, 0x1D lsls r0, 1 adds r1, r0, r1 movs r2, 0 ldrsh r4, [r1, r2] mov r8, r4 ldr r1, _08049F8C adds r0, r1 movs r1, 0 ldrsh r4, [r0, r1] str r4, [sp, 0x14] mov r2, r8 lsls r0, r2, 1 add r0, r8 mov r4, r10 adds r7, r4, r0 ldr r0, [sp, 0x10] ldr r1, [sp, 0x14] str r3, [sp, 0x34] bl sub_804954C adds r5, r0, 0 ldrh r2, [r5] movs r1, 0x80 lsls r1, 5 adds r0, r1, 0 ands r0, r2 ldr r3, [sp, 0x34] cmp r0, 0 beq _08049F98 lsls r0, r7, 1 ldr r2, _08049F94 adds r0, r2 adds r2, r6, r0 b _0804A06A .align 2, 0 _08049F78: .4byte gUnknown_203B418 _08049F7C: .4byte 0x00018210 _08049F80: .4byte 0x0001820f _08049F84: .4byte 0x000181f0 _08049F88: .4byte gUnknown_80F6A4A _08049F8C: .4byte gUnknown_80F6C06 _08049F90: .4byte 0x000181f2 _08049F94: .4byte 0x00012bec _08049F98: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _08049FAC lsls r0, r7, 1 ldr r4, _08049FA8 b _08049FD2 .align 2, 0 _08049FA8: .4byte 0x00012bda _08049FAC: ldr r0, [sp] cmp r0, 0 beq _08049FC4 ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r2, _08049FC0 adds r1, r2 b _0804A064 .align 2, 0 _08049FC0: .4byte 0x00011884 _08049FC4: ldrh r1, [r5, 0x4] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08049FDC lsls r0, r7, 1 ldr r4, _08049FD8 _08049FD2: adds r0, r4 adds r2, r6, r0 b _0804A06A .align 2, 0 _08049FD8: .4byte 0x00012bfe _08049FDC: ldr r4, [r5, 0x14] cmp r4, 0 beq _0804A028 adds r0, r4, 0 str r3, [sp, 0x34] bl sub_80450F8 ldr r3, [sp, 0x34] cmp r0, 0x2 bne _0804A014 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _0804A000 ldr r0, [sp, 0x4] cmp r0, 0 beq _0804A014 _0804A000: ldr r0, [r4, 0x70] ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r1, _0804A010 adds r0, r1 b _0804A046 .align 2, 0 _0804A010: .4byte 0x00012a18 _0804A014: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r2, _0804A024 adds r1, r2 b _0804A064 .align 2, 0 _0804A024: .4byte 0x00011884 _0804A028: movs r4, 0x80 lsls r4, 2 adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _0804A058 ldr r1, _0804A050 adds r0, r6, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r4, _0804A054 adds r0, r4 _0804A046: adds r0, r6, r0 lsls r1, r7, 1 adds r2, r0, r1 b _0804A06A .align 2, 0 _0804A050: .4byte 0x00003a12 _0804A054: .4byte 0x00012a18 _0804A058: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r0, _0804A0E8 adds r1, r0 _0804A064: adds r1, r6, r1 lsls r0, r7, 1 adds r2, r1, r0 _0804A06A: lsls r1, r3, 1 str r1, [sp, 0x30] adds r3, 0x1 str r3, [sp, 0x2C] mov r4, r10 adds r4, 0x1 str r4, [sp, 0x28] ldr r0, [sp, 0x8] adds r0, 0x1 str r0, [sp, 0x24] mov r1, r10 lsls r3, r1, 1 ldr r4, _0804A0EC adds r4, r3, r4 str r4, [sp, 0x18] ldr r0, _0804A0F0 adds r0, r3, r0 str r0, [sp, 0x1C] ldr r1, _0804A0F4 adds r1, r3, r1 str r1, [sp, 0x20] movs r4, 0x16 str r4, [sp, 0xC] _0804A098: movs r0, 0x1F mov r1, r9 ands r1, r0 mov r9, r1 lsls r0, r1, 6 ldr r4, [sp, 0x30] adds r0, r4, r0 ldr r1, _0804A0F8 adds r0, r1 ldrh r1, [r2] strh r1, [r0] adds r2, 0x6 movs r4, 0x1 add r9, r4 add r8, r4 mov r0, r8 cmp r0, 0x3 bne _0804A1AC movs r1, 0 mov r8, r1 ldr r2, [sp, 0x14] adds r2, 0x1 str r2, [sp, 0x14] mov r7, r10 ldr r0, [sp, 0x10] adds r1, r2, 0 str r3, [sp, 0x34] bl sub_804954C adds r5, r0, 0 ldrh r2, [r5] movs r0, 0x20 ands r0, r2 ldr r3, [sp, 0x34] cmp r0, 0 beq _0804A0FC ldr r4, [sp, 0x18] adds r2, r6, r4 b _0804A1AC .align 2, 0 _0804A0E8: .4byte 0x00011884 _0804A0EC: .4byte 0x00012bda _0804A0F0: .4byte 0x00012bec _0804A0F4: .4byte 0x00012bfe _0804A0F8: .4byte gUnknown_202C838 _0804A0FC: movs r1, 0x80 lsls r1, 5 adds r0, r1, 0 ands r0, r2 cmp r0, 0 beq _0804A10E ldr r4, [sp, 0x1C] adds r2, r6, r4 b _0804A1AC _0804A10E: ldr r0, [sp] cmp r0, 0 bne _0804A19C ldrh r1, [r5, 0x4] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0804A124 ldr r4, [sp, 0x20] adds r2, r6, r4 b _0804A1AC _0804A124: ldr r4, [r5, 0x14] cmp r4, 0 beq _0804A174 adds r0, r4, 0 str r3, [sp, 0x34] bl sub_80450F8 ldr r3, [sp, 0x34] cmp r0, 0x2 bne _0804A15C adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _0804A148 ldr r0, [sp, 0x4] cmp r0, 0 beq _0804A15C _0804A148: ldr r0, [r4, 0x70] ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r1, _0804A158 b _0804A1A6 .align 2, 0 _0804A158: .4byte 0x00012a18 _0804A15C: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r2, _0804A170 adds r1, r2 adds r1, r6, r1 lsls r0, r7, 1 adds r2, r1, r0 b _0804A1AC .align 2, 0 _0804A170: .4byte 0x00011884 _0804A174: movs r4, 0x80 lsls r4, 2 adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _0804A19C ldr r1, _0804A194 adds r0, r6, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r4, _0804A198 adds r0, r4 b _0804A1A8 .align 2, 0 _0804A194: .4byte 0x00003a12 _0804A198: .4byte 0x00012a18 _0804A19C: ldrb r1, [r5, 0x8] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r1, _0804A1EC _0804A1A6: adds r0, r1 _0804A1A8: adds r0, r6, r0 adds r2, r0, r3 _0804A1AC: ldr r4, [sp, 0xC] subs r4, 0x1 str r4, [sp, 0xC] cmp r4, 0 blt _0804A1B8 b _0804A098 _0804A1B8: ldr r3, [sp, 0x2C] ldr r0, [sp, 0x28] mov r10, r0 cmp r0, 0x3 bne _0804A1CC movs r1, 0 mov r10, r1 ldr r2, [sp, 0x10] adds r2, 0x1 str r2, [sp, 0x10] _0804A1CC: ldr r4, [sp, 0x24] str r4, [sp, 0x8] cmp r4, 0x1E bgt _0804A1D6 b _08049F1C _0804A1D6: movs r0, 0x3 bl sub_80098F8 add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804A1EC: .4byte 0x00011884 thumb_func_end sub_8049ED4 thumb_func_start sub_804A1F0 sub_804A1F0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 ldr r2, _0804A284 ldr r7, [r2] ldr r3, _0804A288 adds r2, r7, r3 ldrb r2, [r2] str r2, [sp] ldr r4, _0804A28C adds r2, r7, r4 ldrb r2, [r2] str r2, [sp, 0x4] ldr r5, _0804A290 adds r2, r7, r5 movs r3, 0 ldrsh r2, [r2, r3] adds r2, r0 subs r4, 0x1D adds r0, r7, r4 movs r5, 0 ldrsh r0, [r0, r5] adds r0, r1 asrs r0, 3 asrs r2, 3 str r2, [sp, 0x14] subs r1, r0, 0x1 mov r9, r1 ldr r3, _0804A294 adds r1, r2, 0 adds r1, 0x1E lsls r1, 1 adds r2, r1, r3 movs r5, 0 ldrsh r4, [r2, r5] str r4, [sp, 0x10] ldr r2, _0804A298 adds r1, r2 movs r5, 0 ldrsh r4, [r1, r5] str r4, [sp, 0xC] adds r0, 0x1D lsls r0, 1 adds r3, r0, r3 movs r4, 0 ldrsh r1, [r3, r4] mov r8, r1 adds r0, r2 movs r1, 0 ldrsh r5, [r0, r1] mov r10, r5 mov r2, r8 lsls r0, r2, 1 add r0, r8 ldr r3, [sp, 0x10] adds r6, r3, r0 ldr r0, [sp, 0xC] mov r1, r10 bl sub_804954C adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0804A2A0 lsls r0, r6, 1 ldr r4, _0804A29C adds r0, r4 adds r2, r7, r0 b _0804A356 .align 2, 0 _0804A284: .4byte gUnknown_203B418 _0804A288: .4byte 0x00018210 _0804A28C: .4byte 0x0001820f _0804A290: .4byte 0x000181f0 _0804A294: .4byte gUnknown_80F6A4A _0804A298: .4byte gUnknown_80F6C06 _0804A29C: .4byte 0x00012bda _0804A2A0: movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 beq _0804A2B8 lsls r0, r6, 1 ldr r5, _0804A2B4 adds r0, r5 adds r2, r7, r0 b _0804A356 .align 2, 0 _0804A2B4: .4byte 0x00012bec _0804A2B8: ldr r0, [sp] cmp r0, 0 beq _0804A2D0 ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r2, _0804A2CC adds r1, r2 b _0804A350 .align 2, 0 _0804A2CC: .4byte 0x00011884 _0804A2D0: ldr r4, [r5, 0x14] cmp r4, 0 beq _0804A318 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 bne _0804A304 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _0804A2F0 ldr r3, [sp, 0x4] cmp r3, 0 beq _0804A304 _0804A2F0: ldr r0, [r4, 0x70] ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r4, _0804A300 adds r0, r4 b _0804A334 .align 2, 0 _0804A300: .4byte 0x00012a18 _0804A304: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r5, _0804A314 adds r1, r5 b _0804A350 .align 2, 0 _0804A314: .4byte 0x00011884 _0804A318: movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _0804A344 ldr r1, _0804A33C adds r0, r7, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r3, _0804A340 adds r0, r3 _0804A334: adds r0, r7, r0 lsls r1, r6, 1 adds r2, r0, r1 b _0804A356 .align 2, 0 _0804A33C: .4byte 0x00003a12 _0804A340: .4byte 0x00012a18 _0804A344: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r4, _0804A3AC adds r1, r4 _0804A350: adds r1, r7, r1 lsls r0, r6, 1 adds r2, r1, r0 _0804A356: movs r5, 0x16 str r5, [sp, 0x8] _0804A35A: movs r0, 0x1F ldr r1, [sp, 0x14] ands r1, r0 str r1, [sp, 0x14] mov r3, r9 ands r3, r0 mov r9, r3 lsls r1, 1 lsls r0, r3, 6 adds r1, r0 ldr r4, _0804A3B0 adds r1, r4 ldrh r0, [r2] strh r0, [r1] adds r2, 0x6 movs r5, 0x1 add r9, r5 add r8, r5 mov r0, r8 cmp r0, 0x3 beq _0804A386 b _0804A476 _0804A386: movs r1, 0 mov r8, r1 add r10, r5 ldr r6, [sp, 0x10] ldr r0, [sp, 0xC] mov r1, r10 bl sub_804954C adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0804A3B8 lsls r0, r6, 1 ldr r2, _0804A3B4 adds r0, r2 adds r2, r7, r0 b _0804A476 .align 2, 0 _0804A3AC: .4byte 0x00011884 _0804A3B0: .4byte gUnknown_202C838 _0804A3B4: .4byte 0x00012bda _0804A3B8: movs r3, 0x80 lsls r3, 5 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0804A3D4 lsls r0, r6, 1 ldr r4, _0804A3D0 adds r0, r4 adds r2, r7, r0 b _0804A476 .align 2, 0 _0804A3D0: .4byte 0x00012bec _0804A3D4: ldr r0, [sp] cmp r0, 0 beq _0804A3EC ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r2, _0804A3E8 adds r1, r2 b _0804A470 .align 2, 0 _0804A3E8: .4byte 0x00011884 _0804A3EC: ldr r4, [r5, 0x14] cmp r4, 0 beq _0804A434 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 bne _0804A420 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _0804A40C ldr r3, [sp, 0x4] cmp r3, 0 beq _0804A420 _0804A40C: ldr r0, [r4, 0x70] ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r4, _0804A41C adds r0, r4 b _0804A452 .align 2, 0 _0804A41C: .4byte 0x00012a18 _0804A420: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r5, _0804A430 adds r1, r5 b _0804A470 .align 2, 0 _0804A430: .4byte 0x00011884 _0804A434: movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0804A464 ldr r3, _0804A45C adds r0, r7, r3 movs r4, 0 ldrsh r1, [r0, r4] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r5, _0804A460 adds r0, r5 _0804A452: adds r0, r7, r0 lsls r1, r6, 1 adds r2, r0, r1 b _0804A476 .align 2, 0 _0804A45C: .4byte 0x00003a12 _0804A460: .4byte 0x00012a18 _0804A464: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r0, _0804A498 adds r1, r0 _0804A470: adds r1, r7, r1 lsls r0, r6, 1 adds r2, r1, r0 _0804A476: ldr r1, [sp, 0x8] subs r1, 0x1 str r1, [sp, 0x8] cmp r1, 0 blt _0804A482 b _0804A35A _0804A482: movs r0, 0x3 bl sub_80098F8 add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804A498: .4byte 0x00011884 thumb_func_end sub_804A1F0 thumb_func_start sub_804A49C sub_804A49C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 ldr r2, _0804A52C ldr r7, [r2] ldr r3, _0804A530 adds r2, r7, r3 ldrb r2, [r2] str r2, [sp] ldr r4, _0804A534 adds r2, r7, r4 ldrb r2, [r2] str r2, [sp, 0x4] subs r3, 0x20 adds r2, r7, r3 movs r4, 0 ldrsh r2, [r2, r4] adds r2, r0 adds r3, 0x2 adds r0, r7, r3 movs r4, 0 ldrsh r0, [r0, r4] adds r0, r1 asrs r2, 3 mov r8, r2 asrs r0, 3 str r0, [sp, 0x14] ldr r2, _0804A538 mov r0, r8 adds r0, 0x1E lsls r0, 1 adds r1, r0, r2 movs r4, 0 ldrsh r3, [r1, r4] mov r9, r3 ldr r1, _0804A53C adds r0, r1 movs r4, 0 ldrsh r3, [r0, r4] mov r10, r3 ldr r0, [sp, 0x14] adds r0, 0x1E lsls r0, 1 adds r2, r0, r2 movs r4, 0 ldrsh r3, [r2, r4] str r3, [sp, 0x10] adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] str r1, [sp, 0xC] lsls r0, r3, 1 adds r0, r3 mov r3, r9 adds r6, r3, r0 mov r0, r10 bl sub_804954C adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0804A544 lsls r0, r6, 1 ldr r4, _0804A540 adds r0, r4 adds r2, r7, r0 b _0804A5DA .align 2, 0 _0804A52C: .4byte gUnknown_203B418 _0804A530: .4byte 0x00018210 _0804A534: .4byte 0x0001820f _0804A538: .4byte gUnknown_80F6A4A _0804A53C: .4byte gUnknown_80F6C06 _0804A540: .4byte 0x00012bda _0804A544: movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 beq _0804A55C lsls r0, r6, 1 ldr r1, _0804A558 adds r0, r1 adds r2, r7, r0 b _0804A5DA .align 2, 0 _0804A558: .4byte 0x00012bec _0804A55C: ldr r2, [sp] cmp r2, 0 beq _0804A574 ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r3, _0804A570 adds r1, r3 b _0804A5D4 .align 2, 0 _0804A570: .4byte 0x00011884 _0804A574: ldr r4, [r5, 0x14] cmp r4, 0 beq _0804A59A adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 bne _0804A5C8 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _0804A594 ldr r0, [sp, 0x4] cmp r0, 0 beq _0804A5C8 _0804A594: ldr r0, [r4, 0x70] ldrb r1, [r0] b _0804A5AC _0804A59A: movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _0804A5C8 ldr r3, _0804A5C0 adds r0, r7, r3 movs r4, 0 ldrsh r1, [r0, r4] _0804A5AC: lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r1, _0804A5C4 adds r0, r1 adds r0, r7, r0 lsls r1, r6, 1 adds r2, r0, r1 b _0804A5DA .align 2, 0 _0804A5C0: .4byte 0x00003a12 _0804A5C4: .4byte 0x00012a18 _0804A5C8: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r2, _0804A638 adds r1, r2 _0804A5D4: adds r1, r7, r1 lsls r0, r6, 1 adds r2, r1, r0 _0804A5DA: movs r3, 0x1E str r3, [sp, 0x8] _0804A5DE: movs r0, 0x1F mov r4, r8 ands r4, r0 mov r8, r4 ldr r1, [sp, 0x14] ands r1, r0 str r1, [sp, 0x14] lsls r1, r4, 1 ldr r3, [sp, 0x14] lsls r0, r3, 6 adds r1, r0 ldr r4, _0804A63C adds r1, r4 ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 movs r0, 0x1 add r8, r0 add r9, r0 mov r1, r9 cmp r1, 0x3 beq _0804A60C b _0804A702 _0804A60C: movs r2, 0 mov r9, r2 add r10, r0 ldr r3, [sp, 0x10] lsls r0, r3, 1 adds r6, r0, r3 mov r0, r10 ldr r1, [sp, 0xC] bl sub_804954C adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0804A644 lsls r0, r6, 1 ldr r4, _0804A640 adds r0, r4 adds r2, r7, r0 b _0804A702 .align 2, 0 _0804A638: .4byte 0x00011884 _0804A63C: .4byte gUnknown_202C838 _0804A640: .4byte 0x00012bda _0804A644: movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0804A660 lsls r0, r6, 1 ldr r3, _0804A65C adds r0, r3 adds r2, r7, r0 b _0804A702 .align 2, 0 _0804A65C: .4byte 0x00012bec _0804A660: ldr r4, [sp] cmp r4, 0 beq _0804A678 ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r0, _0804A674 adds r1, r0 b _0804A6FC .align 2, 0 _0804A674: .4byte 0x00011884 _0804A678: ldr r4, [r5, 0x14] cmp r4, 0 beq _0804A6C0 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x2 bne _0804A6AC adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _0804A698 ldr r1, [sp, 0x4] cmp r1, 0 beq _0804A6AC _0804A698: ldr r0, [r4, 0x70] ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r2, _0804A6A8 adds r0, r2 b _0804A6DE .align 2, 0 _0804A6A8: .4byte 0x00012a18 _0804A6AC: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r3, _0804A6BC adds r1, r3 b _0804A6FC .align 2, 0 _0804A6BC: .4byte 0x00011884 _0804A6C0: movs r4, 0x80 lsls r4, 2 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0804A6F0 ldr r1, _0804A6E8 adds r0, r7, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 ldr r3, _0804A6EC adds r0, r3 _0804A6DE: adds r0, r7, r0 lsls r1, r6, 1 adds r2, r0, r1 b _0804A702 .align 2, 0 _0804A6E8: .4byte 0x00003a12 _0804A6EC: .4byte 0x00012a18 _0804A6F0: ldrb r0, [r5, 0x8] lsls r1, r0, 3 adds r1, r0 lsls r1, 1 ldr r4, _0804A724 adds r1, r4 _0804A6FC: adds r1, r7, r1 lsls r0, r6, 1 adds r2, r1, r0 _0804A702: ldr r0, [sp, 0x8] subs r0, 0x1 str r0, [sp, 0x8] cmp r0, 0 blt _0804A70E b _0804A5DE _0804A70E: movs r0, 0x3 bl sub_80098F8 add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804A724: .4byte 0x00011884 thumb_func_end sub_804A49C thumb_func_start sub_804A728 sub_804A728: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x40 str r0, [sp, 0x1C] adds r5, r1, 0 adds r4, r3, 0 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x20] lsls r4, 24 lsrs r4, 24 ldr r6, _0804A814 ldr r0, [r6] mov r8, r0 bl sub_8083600 str r0, [sp, 0x24] ldr r0, _0804A818 add r0, r8 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 str r0, [sp, 0x30] adds r1, r0, 0 ldr r0, [r6] ldr r2, _0804A81C adds r0, r2 strb r4, [r0] ldr r3, [sp, 0x1C] movs r4, 0 ldrsh r7, [r3, r4] movs r0, 0x2 ldrsh r6, [r3, r0] ldr r0, _0804A820 lsls r5, 2 adds r5, r0 movs r2, 0 ldrsh r4, [r5, r2] movs r0, 0x2 ldrsh r3, [r5, r0] mov r0, sp movs r2, 0x5 _0804A782: strh r7, [r0] strh r6, [r0, 0x2] adds r7, r4 adds r6, r3 adds r0, 0x4 subs r2, 0x1 cmp r2, 0 bge _0804A782 ldr r0, _0804A824 adds r1, 0x1E lsls r1, 1 adds r0, r1, r0 movs r3, 0 ldrsh r2, [r0, r3] str r2, [sp, 0x28] ldr r0, _0804A828 adds r1, r0 movs r0, 0 ldrsh r4, [r1, r0] mov r10, r4 movs r7, 0 _0804A7AC: ldr r0, _0804A82C add r0, r8 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 str r0, [sp, 0x34] ldr r0, _0804A824 ldr r1, [sp, 0x34] adds r1, 0x1E lsls r1, 1 adds r0, r1, r0 movs r3, 0 ldrsh r2, [r0, r3] str r2, [sp, 0x2C] ldr r0, _0804A828 adds r1, r0 movs r0, 0 ldrsh r4, [r1, r0] mov r9, r4 lsls r0, r2, 1 adds r0, r2 ldr r1, [sp, 0x28] adds r5, r1, r0 mov r2, r10 lsls r0, r2, 16 lsls r1, r4, 16 lsrs r0, 16 orrs r0, r1 str r0, [sp, 0x18] ldr r3, [sp, 0x20] cmp r3, 0 beq _0804A850 ldr r4, [sp, 0x1C] movs r1, 0 ldrsh r0, [r4, r1] cmp r10, r0 bne _0804A834 movs r2, 0x2 ldrsh r0, [r4, r2] cmp r9, r0 bne _0804A834 lsls r0, r5, 1 ldr r3, _0804A830 adds r0, r3 mov r4, r8 adds r2, r4, r0 ldr r0, [sp, 0x28] adds r0, 0x1 str r0, [sp, 0x3C] adds r1, r7, 0x1 str r1, [sp, 0x38] b _0804A8FC .align 2, 0 _0804A814: .4byte gUnknown_203B418 _0804A818: .4byte 0x000181f0 _0804A81C: .4byte 0x0001821a _0804A820: .4byte gUnknown_80F4448 _0804A824: .4byte gUnknown_80F6A4A _0804A828: .4byte gUnknown_80F6C06 _0804A82C: .4byte 0x000181f2 _0804A830: .4byte 0x00012b92 _0804A834: lsls r0, r5, 1 ldr r2, _0804A84C adds r0, r2 mov r3, r8 adds r2, r3, r0 ldr r4, [sp, 0x28] adds r4, 0x1 str r4, [sp, 0x3C] adds r0, r7, 0x1 str r0, [sp, 0x38] b _0804A8FC .align 2, 0 _0804A84C: .4byte 0x00013554 _0804A850: add r4, sp, 0x18 ldr r0, [sp, 0x24] adds r1, r4, 0 bl sub_807049C lsls r0, 24 cmp r0, 0 bne _0804A8E8 ldr r0, [sp, 0x24] adds r1, r4, 0 bl sub_8045AAC lsls r0, 24 cmp r0, 0 beq _0804A8E8 movs r2, 0 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] lsls r3, r5, 1 ldr r4, [sp, 0x28] adds r4, 0x1 str r4, [sp, 0x3C] adds r1, r7, 0x1 str r1, [sp, 0x38] cmp r0, r10 bne _0804A890 mov r0, sp movs r4, 0x2 ldrsh r0, [r0, r4] cmp r0, r9 beq _0804A8AC _0804A890: adds r2, 0x1 cmp r2, 0x5 bgt _0804A8AC lsls r0, r2, 2 mov r4, sp adds r1, r4, r0 movs r4, 0 ldrsh r0, [r1, r4] cmp r0, r10 bne _0804A890 movs r4, 0x2 ldrsh r0, [r1, r4] cmp r0, r9 bne _0804A890 _0804A8AC: cmp r2, 0x6 bne _0804A8D8 ldr r0, _0804A8C0 ldr r0, [r0] ldrb r0, [r0, 0x3] cmp r0, 0 beq _0804A8C8 ldr r1, _0804A8C4 adds r0, r3, r1 b _0804A8DC .align 2, 0 _0804A8C0: .4byte gUnknown_203B46C _0804A8C4: .4byte 0x00012b80 _0804A8C8: ldr r4, _0804A8D4 adds r0, r3, r4 mov r1, r8 adds r2, r1, r0 b _0804A8FC .align 2, 0 _0804A8D4: .4byte 0x00013554 _0804A8D8: ldr r2, _0804A8E4 adds r0, r3, r2 _0804A8DC: mov r3, r8 adds r2, r3, r0 b _0804A8FC .align 2, 0 _0804A8E4: .4byte 0x00012b92 _0804A8E8: lsls r0, r5, 1 ldr r4, _0804A968 adds r0, r4 mov r1, r8 adds r2, r1, r0 ldr r3, [sp, 0x28] adds r3, 0x1 str r3, [sp, 0x3C] adds r4, r7, 0x1 str r4, [sp, 0x38] _0804A8FC: movs r6, 0 _0804A8FE: movs r0, 0x1F ldr r1, [sp, 0x30] ands r1, r0 str r1, [sp, 0x30] ldr r3, [sp, 0x34] ands r3, r0 lsls r0, r1, 1 lsls r1, r3, 6 adds r0, r1 ldr r4, _0804A96C adds r0, r4 ldrh r1, [r2] strh r1, [r0] adds r2, 0x6 adds r3, 0x1 str r3, [sp, 0x34] ldr r0, [sp, 0x2C] adds r0, 0x1 str r0, [sp, 0x2C] adds r7, r6, 0x1 cmp r0, 0x3 beq _0804A92C b _0804AA20 _0804A92C: movs r1, 0 str r1, [sp, 0x2C] movs r2, 0x1 add r9, r2 ldr r5, [sp, 0x28] add r4, sp, 0x18 mov r3, r10 strh r3, [r4] adds r0, r4, 0 mov r1, r9 strh r1, [r0, 0x2] ldr r2, [sp, 0x20] cmp r2, 0 beq _0804A984 ldr r3, [sp, 0x1C] movs r4, 0 ldrsh r0, [r3, r4] cmp r10, r0 bne _0804A974 movs r1, 0x2 ldrsh r0, [r3, r1] cmp r9, r0 bne _0804A974 ldr r2, [sp, 0x28] lsls r0, r2, 1 ldr r3, _0804A970 adds r0, r3 mov r4, r8 adds r2, r4, r0 b _0804AA20 .align 2, 0 _0804A968: .4byte 0x00013554 _0804A96C: .4byte gUnknown_202C038 _0804A970: .4byte 0x00012b92 _0804A974: lsls r0, r5, 1 ldr r1, _0804A980 adds r0, r1 mov r3, r8 adds r2, r3, r0 b _0804AA1E .align 2, 0 _0804A980: .4byte 0x00013554 _0804A984: ldr r0, [sp, 0x24] adds r1, r4, 0 bl sub_807049C lsls r0, 24 cmp r0, 0 bne _0804AA14 ldr r0, [sp, 0x24] adds r1, r4, 0 bl sub_8045AAC lsls r0, 24 cmp r0, 0 beq _0804AA14 movs r2, 0 mov r0, sp movs r4, 0 ldrsh r0, [r0, r4] ldr r1, [sp, 0x28] lsls r3, r1, 1 cmp r0, r10 bne _0804A9BA mov r0, sp movs r4, 0x2 ldrsh r0, [r0, r4] cmp r0, r9 beq _0804A9D6 _0804A9BA: adds r2, 0x1 cmp r2, 0x5 bgt _0804A9D6 lsls r0, r2, 2 mov r4, sp adds r1, r4, r0 movs r4, 0 ldrsh r0, [r1, r4] cmp r0, r10 bne _0804A9BA movs r4, 0x2 ldrsh r0, [r1, r4] cmp r0, r9 bne _0804A9BA _0804A9D6: cmp r2, 0x6 bne _0804AA04 ldr r0, _0804A9EC ldr r0, [r0] ldrb r0, [r0, 0x3] cmp r0, 0 beq _0804A9F4 ldr r1, _0804A9F0 adds r0, r3, r1 b _0804AA08 .align 2, 0 _0804A9EC: .4byte gUnknown_203B46C _0804A9F0: .4byte 0x00012b80 _0804A9F4: ldr r4, _0804AA00 adds r0, r3, r4 mov r1, r8 adds r2, r1, r0 b _0804AA20 .align 2, 0 _0804AA00: .4byte 0x00013554 _0804AA04: ldr r2, _0804AA10 adds r0, r3, r2 _0804AA08: mov r3, r8 adds r2, r3, r0 b _0804AA20 .align 2, 0 _0804AA10: .4byte 0x00012b92 _0804AA14: lsls r0, r5, 1 ldr r4, _0804AA5C adds r0, r4 mov r1, r8 adds r2, r1, r0 _0804AA1E: adds r7, r6, 0x1 _0804AA20: adds r6, r7, 0 cmp r6, 0x14 bgt _0804AA28 b _0804A8FE _0804AA28: ldr r2, [sp, 0x30] adds r2, 0x1 str r2, [sp, 0x30] ldr r3, [sp, 0x3C] str r3, [sp, 0x28] cmp r3, 0x3 bne _0804AA3E movs r4, 0 str r4, [sp, 0x28] movs r0, 0x1 add r10, r0 _0804AA3E: ldr r7, [sp, 0x38] cmp r7, 0x1E bgt _0804AA46 b _0804A7AC _0804AA46: movs r0, 0x2 bl sub_80098F8 add sp, 0x40 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804AA5C: .4byte 0x00013554 thumb_func_end sub_804A728 thumb_func_start sub_804AA60 sub_804AA60: push {r4,lr} movs r1, 0 ldr r0, _0804AAA0 movs r3, 0 movs r2, 0x80 lsls r2, 5 adds r4, r0, r2 _0804AA6E: lsls r0, r1, 6 adds r2, r1, 0x1 movs r1, 0x1F adds r0, r4 adds r0, 0x3E _0804AA78: strh r3, [r0] subs r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _0804AA78 adds r1, r2, 0 cmp r1, 0x1F ble _0804AA6E movs r4, 0 movs r0, 0x2 bl sub_80098F8 ldr r0, _0804AAA4 ldr r0, [r0] ldr r1, _0804AAA8 adds r0, r1 strb r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0804AAA0: .4byte gUnknown_202B038 _0804AAA4: .4byte gUnknown_203B418 _0804AAA8: .4byte 0x0001821a thumb_func_end sub_804AA60 thumb_func_start sub_804AAAC sub_804AAAC: push {r4-r7,lr} movs r5, 0 movs r7, 0 _0804AAB2: movs r4, 0 adds r6, r5, 0x1 _0804AAB6: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 strh r7, [r0, 0x4] adds r4, 0x1 cmp r4, 0x37 ble _0804AAB6 adds r5, r6, 0 cmp r5, 0x1F ble _0804AAB2 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804AAAC thumb_func_start sub_804AAD4 sub_804AAD4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r4, _0804AC04 movs r0, 0 mov r8, r0 ldr r6, _0804AC08 ldr r5, _0804AC0C movs r2, 0 movs r3, 0x1F _0804AAEA: ldr r0, [r4] adds r0, r2 ldr r1, _0804AC10 adds r0, r1 mov r7, r8 strb r7, [r0] ldr r0, [r4] adds r0, r2 adds r1, 0x1 adds r0, r1 strb r7, [r0] ldr r0, [r4] adds r0, r2 ldr r7, _0804AC14 adds r1, r0, r7 strh r6, [r1] adds r7, 0x2 adds r1, r0, r7 strh r6, [r1] adds r7, 0x2 adds r1, r0, r7 strh r5, [r1] ldr r1, _0804AC18 adds r0, r1 strh r5, [r0] adds r2, 0x1C subs r3, 0x1 cmp r3, 0 bge _0804AAEA movs r4, 0 mov r9, r4 movs r6, 0 ldr r7, _0804AC04 mov r8, r7 _0804AB2E: movs r4, 0 adds r5, r6, 0x1 _0804AB32: adds r0, r4, 0 adds r1, r6, 0 bl sub_804954C ldrb r2, [r0, 0x9] adds r3, r4, 0x1 cmp r2, 0xFF beq _0804AB84 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 ldr r1, _0804AC10 adds r0, r1 mov r7, r8 ldr r1, [r7] adds r1, r0 movs r0, 0x1 strb r0, [r1] movs r7, 0x2 ldrsh r0, [r1, r7] cmp r0, r4 ble _0804AB60 strh r4, [r1, 0x2] _0804AB60: movs r4, 0x4 ldrsh r0, [r1, r4] cmp r0, r6 ble _0804AB6A strh r6, [r1, 0x4] _0804AB6A: movs r7, 0x6 ldrsh r0, [r1, r7] cmp r0, r3 bge _0804AB74 strh r3, [r1, 0x6] _0804AB74: movs r4, 0x8 ldrsh r0, [r1, r4] cmp r0, r5 bge _0804AB7E strh r5, [r1, 0x8] _0804AB7E: cmp r9, r2 bge _0804AB84 mov r9, r2 _0804AB84: adds r4, r3, 0 cmp r4, 0x37 ble _0804AB32 adds r6, r5, 0 cmp r6, 0x1F ble _0804AB2E ldr r7, _0804AC04 mov r8, r7 mov r5, r9 adds r5, 0x1 mov r6, r8 movs r4, 0 movs r3, 0x1F _0804AB9E: ldr r1, _0804AC10 adds r0, r4, r1 ldr r1, [r6] adds r2, r1, r0 ldrb r0, [r2] cmp r0, 0 beq _0804ABE4 movs r7, 0x2 ldrsh r1, [r2, r7] subs r1, 0x1 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 str r0, [r2, 0xC] movs r0, 0x4 ldrsh r1, [r2, r0] subs r1, 0x1 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 str r0, [r2, 0x10] movs r7, 0x6 ldrsh r1, [r2, r7] adds r1, 0x1 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 str r0, [r2, 0x14] movs r0, 0x8 ldrsh r1, [r2, r0] adds r1, 0x1 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 str r0, [r2, 0x18] _0804ABE4: adds r4, 0x1C subs r3, 0x1 cmp r3, 0 bge _0804AB9E mov r1, r8 ldr r0, [r1] ldr r4, _0804AC1C adds r0, r4 strb r5, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804AC04: .4byte gUnknown_203B418 _0804AC08: .4byte 0x0000270f _0804AC0C: .4byte 0x0000d8f1 _0804AC10: .4byte 0x000104c4 _0804AC14: .4byte 0x000104c6 _0804AC18: .4byte 0x000104cc _0804AC1C: .4byte 0x000104c0 thumb_func_end sub_804AAD4 thumb_func_start sub_804AC20 sub_804AC20: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r4, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C ldrb r1, [r0, 0x9] ldr r0, _0804AC6C ldr r3, [r0] ldr r5, _0804AC70 adds r0, r3, r5 ldrb r2, [r0] adds r5, 0x1 adds r0, r3, r5 ldrb r0, [r0] cmp r0, 0 bne _0804ACD4 cmp r2, 0 bne _0804AC52 movs r2, 0x2 _0804AC52: cmp r1, 0xFF bne _0804AC74 movs r0, 0 ldrsh r1, [r4, r0] subs r3, r1, r2 mov r9, r3 movs r5, 0x2 ldrsh r0, [r4, r5] subs r3, r0, r2 adds r6, r1, r2 adds r0, r2 mov r8, r0 b _0804ACA2 .align 2, 0 _0804AC6C: .4byte gUnknown_203B418 _0804AC70: .4byte 0x00018209 _0804AC74: lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _0804ACE0 adds r0, r1 adds r2, r3, r0 ldrb r0, [r2, 0x1] cmp r0, 0 bne _0804ACD4 movs r0, 0x1 strb r0, [r2, 0x1] movs r3, 0x2 ldrsh r0, [r2, r3] subs r0, 0x1 mov r9, r0 movs r5, 0x4 ldrsh r0, [r2, r5] subs r3, r0, 0x1 movs r0, 0x6 ldrsh r6, [r2, r0] movs r5, 0x8 ldrsh r1, [r2, r5] mov r8, r1 _0804ACA2: adds r5, r3, 0 cmp r5, r8 bgt _0804ACD4 _0804ACA8: mov r4, r9 adds r7, r5, 0x1 cmp r4, r6 bgt _0804ACCE _0804ACB0: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x3 orrs r1, r2 strh r1, [r0, 0x4] adds r0, r4, 0 adds r1, r5, 0 bl sub_80402AC adds r4, 0x1 cmp r4, r6 ble _0804ACB0 _0804ACCE: adds r5, r7, 0 cmp r5, r8 ble _0804ACA8 _0804ACD4: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804ACE0: .4byte 0x000104c4 thumb_func_end sub_804AC20 thumb_func_start sub_804ACE4 sub_804ACE4: push {lr} movs r1, 0 ldrsh r2, [r0, r1] movs r3, 0x2 ldrsh r1, [r0, r3] adds r0, r2, 0 bl sub_804954C ldr r0, [r0, 0x14] cmp r0, 0 beq _0804AD06 bl sub_80450F8 cmp r0, 0x3 bne _0804AD06 movs r0, 0x1 b _0804AD08 _0804AD06: movs r0, 0 _0804AD08: pop {r1} bx r1 thumb_func_end sub_804ACE4 thumb_func_start sub_804AD0C sub_804AD0C: push {lr} movs r1, 0 ldrsh r2, [r0, r1] movs r3, 0x2 ldrsh r1, [r0, r3] adds r0, r2, 0 bl sub_804954C ldr r1, [r0, 0x10] cmp r1, 0 beq _0804AD2C ldr r0, [r1] cmp r0, 0x1 bne _0804AD2C adds r0, r1, 0 b _0804AD2E _0804AD2C: movs r0, 0 _0804AD2E: pop {r1} bx r1 thumb_func_end sub_804AD0C thumb_func_start sub_804AD34 sub_804AD34: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 movs r0, 0 mov r8, r0 movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0x2 ldrsh r1, [r6, r2] bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0804ADB6 movs r0, 0x88 lsls r0, 1 ands r0, r1 cmp r0, 0 bne _0804ADB6 movs r0, 0x1 mov r8, r0 ldr r0, _0804ADFC ands r0, r1 movs r1, 0x1 orrs r0, r1 strh r0, [r2] movs r5, 0x1 negs r5, r5 _0804AD74: movs r4, 0x1 negs r4, r4 adds r7, r5, 0x1 _0804AD7A: movs r1, 0 ldrsh r0, [r6, r1] adds r0, r4, r0 movs r2, 0x2 ldrsh r1, [r6, r2] adds r1, r5, r1 bl sub_80498A8 movs r1, 0 ldrsh r0, [r6, r1] adds r0, r4, r0 movs r2, 0x2 ldrsh r1, [r6, r2] adds r1, r5, r1 bl sub_8049BB0 movs r1, 0 ldrsh r0, [r6, r1] adds r0, r4, r0 movs r2, 0x2 ldrsh r1, [r6, r2] adds r1, r5, r1 bl sub_80402AC adds r4, 0x1 cmp r4, 0x1 ble _0804AD7A adds r5, r7, 0 cmp r5, 0x1 ble _0804AD74 _0804ADB6: mov r0, r8 cmp r0, 0 beq _0804ADEE movs r5, 0 _0804ADBE: ldr r0, _0804AE00 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0804AE04 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0804ADDE adds r0, r4, 0 bl sub_806CF98 _0804ADDE: adds r5, 0x1 cmp r5, 0x13 ble _0804ADBE bl sub_8049ED4 adds r0, r6, 0 bl sub_8042A14 _0804ADEE: mov r0, r8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0804ADFC: .4byte 0x0000fffc _0804AE00: .4byte gUnknown_203B418 _0804AE04: .4byte 0x000135cc thumb_func_end sub_804AD34 thumb_func_start sub_804AE08 sub_804AE08: push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 movs r0, 0 mov r8, r0 movs r1, 0 ldrsh r0, [r7, r1] movs r2, 0x2 ldrsh r1, [r7, r2] bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0804AE72 movs r0, 0x88 lsls r0, 1 ands r0, r1 cmp r0, 0 bne _0804AE72 movs r0, 0x1 mov r8, r0 ldr r0, _0804AE80 ands r0, r1 movs r1, 0x1 orrs r0, r1 strh r0, [r2] ldrh r1, [r2, 0x4] movs r0, 0x10 orrs r0, r1 strh r0, [r2, 0x4] movs r5, 0x1 negs r5, r5 _0804AE50: movs r4, 0x1 negs r4, r4 adds r6, r5, 0x1 _0804AE56: movs r1, 0 ldrsh r0, [r7, r1] adds r0, r4, r0 movs r2, 0x2 ldrsh r1, [r7, r2] adds r1, r5, r1 bl sub_8049BB0 adds r4, 0x1 cmp r4, 0x1 ble _0804AE56 adds r5, r6, 0 cmp r5, 0x1 ble _0804AE50 _0804AE72: mov r0, r8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0804AE80: .4byte 0x0000fffc thumb_func_end sub_804AE08 thumb_func_start sub_804AE84 sub_804AE84: push {r4-r7,lr} adds r5, r0, 0 movs r1, 0 ldrsh r0, [r5, r1] movs r2, 0x2 ldrsh r1, [r5, r2] bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2, 0x4] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0804AF0E ldr r0, _0804AF14 ands r0, r1 strh r0, [r2, 0x4] movs r6, 0x1 negs r6, r6 _0804AEAA: movs r4, 0x1 negs r4, r4 adds r7, r6, 0x1 _0804AEB0: movs r1, 0 ldrsh r0, [r5, r1] adds r0, r4, r0 movs r2, 0x2 ldrsh r1, [r5, r2] adds r1, r6, r1 bl sub_80498A8 movs r1, 0 ldrsh r0, [r5, r1] adds r0, r4, r0 movs r2, 0x2 ldrsh r1, [r5, r2] adds r1, r6, r1 bl sub_80402AC adds r4, 0x1 cmp r4, 0x1 ble _0804AEB0 adds r6, r7, 0 cmp r6, 0x1 ble _0804AEAA movs r6, 0 _0804AEDE: ldr r0, _0804AF18 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0804AF1C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_80450E0 lsls r0, 24 cmp r0, 0 beq _0804AEFE adds r0, r4, 0 bl sub_806CF98 _0804AEFE: adds r6, 0x1 cmp r6, 0x13 ble _0804AEDE bl sub_8049ED4 adds r0, r5, 0 bl sub_8042A14 _0804AF0E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804AF14: .4byte 0x0000ffef _0804AF18: .4byte gUnknown_203B418 _0804AF1C: .4byte 0x000135cc thumb_func_end sub_804AE84 thumb_func_start sub_804AF20 sub_804AF20: push {r4,r5,lr} adds r4, r0, 0 movs r5, 0 bl sub_804AF74 lsls r0, 24 cmp r0, 0 beq _0804AF3C ldrh r1, [r4] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0804AF5E b _0804AF5C _0804AF3C: ldrh r1, [r4] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _0804AF5C ldr r1, _0804AF68 ldr r0, _0804AF6C ldr r0, [r0] ldr r2, _0804AF70 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _0804AF5E _0804AF5C: movs r5, 0x1 _0804AF5E: adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0804AF68: .4byte gUnknown_810ACC0 _0804AF6C: .4byte gUnknown_203B418 _0804AF70: .4byte 0x00003a0e thumb_func_end sub_804AF20 thumb_func_start sub_804AF74 sub_804AF74: push {lr} ldr r0, _0804AF9C ldr r0, [r0] ldr r1, _0804AFA0 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _0804AF96 cmp r0, 0x31 beq _0804AF96 cmp r0, 0x20 beq _0804AF96 cmp r0, 0x21 beq _0804AF96 cmp r0, 0x36 bne _0804AFA4 _0804AF96: movs r0, 0x1 b _0804AFA6 .align 2, 0 _0804AF9C: .4byte gUnknown_203B418 _0804AFA0: .4byte 0x00003a0e _0804AFA4: movs r0, 0 _0804AFA6: pop {r1} bx r1 thumb_func_end sub_804AF74 thumb_func_start sub_804AFAC sub_804AFAC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x44 movs r0, 0 mov r10, r0 ldr r4, _0804B0E8 ldr r0, [r4] ldr r1, _0804B0EC adds r1, r0 mov r8, r1 ldr r0, _0804B0F0 ldr r1, _0804B0F4 bl OpenFileAndGetFileDataPtr ldr r2, [r4] ldr r3, _0804B0F8 adds r1, r2, r3 str r0, [r1] ldr r0, _0804B0FC mov r6, r10 strb r6, [r0] ldr r0, _0804B100 strb r6, [r0] ldr r0, _0804B104 strb r6, [r0] ldr r5, _0804B108 movs r3, 0 ldr r1, _0804B10C ldr r0, _0804B110 adds r2, r0 movs r6, 0 ldrsh r0, [r2, r6] adds r0, r1 ldrb r0, [r0] cmp r0, 0x2 bne _0804AFFC movs r3, 0x1 _0804AFFC: strb r3, [r5] ldr r1, _0804B114 movs r0, 0xFF strb r0, [r1] ldr r0, _0804B118 mov r1, r10 strb r1, [r0] ldr r1, _0804B11C mov r2, r8 ldrb r0, [r2, 0x7] strh r0, [r1] ldr r1, _0804B120 ldrb r0, [r2, 0x8] strh r0, [r1] ldr r1, _0804B124 movs r0, 0x1 strb r0, [r1] ldr r1, _0804B128 movs r0, 0x1 negs r0, r0 str r0, [r1] str r0, [r1, 0x8] str r0, [r1, 0x4] str r0, [r1, 0xC] bl sub_804FD30 ldr r3, [r4] mov r6, r8 ldrb r2, [r6, 0x6] ldr r1, _0804B12C adds r0, r3, r1 movs r1, 0 strh r2, [r0] ldr r2, _0804B130 adds r0, r3, r2 strb r1, [r0] ldr r0, [r4] ldr r3, _0804B134 adds r0, r3 strb r1, [r0] ldr r1, _0804B138 mov r6, r8 ldrb r0, [r6, 0xC] str r0, [r1] movs r0, 0 str r0, [sp, 0x40] _0804B058: ldr r0, _0804B0E8 ldr r2, [r0] ldr r3, _0804B13C adds r1, r2, r3 ldr r0, _0804B140 strh r0, [r1] ldr r6, _0804B144 adds r1, r2, r6 movs r0, 0x1 negs r0, r0 strh r0, [r1] ldr r0, _0804B148 adds r1, r2, r0 movs r0, 0x1 negs r0, r0 strh r0, [r1] ldr r1, _0804B14C adds r2, r1 strh r0, [r2] movs r2, 0 mov r9, r2 _0804B082: ldr r4, _0804B0E8 ldr r0, [r4] ldr r3, _0804B150 adds r0, r3 movs r5, 0 movs r1, 0 mov r6, r9 strh r6, [r0] mov r0, r9 cmp r0, 0 ble _0804B09C ldr r0, _0804B138 str r1, [r0] _0804B09C: ldr r0, _0804B154 strb r5, [r0] ldr r1, _0804B158 ldr r0, _0804B140 strh r0, [r1] movs r0, 0x1 negs r0, r0 strh r0, [r1, 0x2] bl sub_804FD30 ldr r1, [r4] ldr r3, _0804B13C adds r2, r1, r3 movs r0, 0x1 negs r0, r0 strh r0, [r2] ldr r6, _0804B144 adds r2, r1, r6 strh r0, [r2] ldr r0, _0804B15C adds r1, r0 strb r5, [r1] ldr r0, [r4] ldr r2, _0804B160 adds r1, r0, r2 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 beq _0804B164 mov r1, r8 bl sub_804C70C lsls r0, 24 cmp r0, 0 beq _0804B0E4 b _0804B376 _0804B0E4: b _0804B2F6 .align 2, 0 _0804B0E8: .4byte gUnknown_203B418 _0804B0EC: .4byte 0x0001c574 _0804B0F0: .4byte gUnknown_80F6DCC _0804B0F4: .4byte gUnknown_83B0000 _0804B0F8: .4byte 0x00013568 _0804B0FC: .4byte gUnknown_202F1AA _0804B100: .4byte gUnknown_202F1AB _0804B104: .4byte gUnknown_202F1AC _0804B108: .4byte gUnknown_202F1A8 _0804B10C: .4byte gUnknown_810ACC0 _0804B110: .4byte 0x00003a0e _0804B114: .4byte gUnknown_202F1B4 _0804B118: .4byte gUnknown_202F1AE _0804B11C: .4byte gUnknown_202F1B0 _0804B120: .4byte gUnknown_202F1B2 _0804B124: .4byte gUnknown_202F1AD _0804B128: .4byte gUnknown_202F1B8 _0804B12C: .4byte 0x00000664 _0804B130: .4byte 0x00003a09 _0804B134: .4byte 0x00003a0a _0804B138: .4byte gUnknown_202F1C8 _0804B13C: .4byte 0x0000e218 _0804B140: .4byte 0x0000ffff _0804B144: .4byte 0x0000e21a _0804B148: .4byte 0x0000e21c _0804B14C: .4byte 0x0000e21e _0804B150: .4byte 0x00003a16 _0804B154: .4byte gUnknown_202F1A9 _0804B158: .4byte gUnknown_202F1D8 _0804B15C: .4byte 0x00003a08 _0804B160: .4byte 0x00003a14 _0804B164: mov r0, r8 ldrb r7, [r0] movs r6, 0x20 _0804B16A: cmp r7, 0x8 beq _0804B17E movs r0, 0x2 movs r1, 0x9 bl sub_808411C adds r5, r0, 0 movs r0, 0x2 movs r1, 0x8 b _0804B18C _0804B17E: movs r0, 0x2 movs r1, 0x5 bl sub_808411C adds r5, r0, 0 movs r0, 0x2 movs r1, 0x4 _0804B18C: bl sub_808411C adds r4, r0, 0 cmp r5, 0x6 bgt _0804B19A cmp r4, 0x4 ble _0804B1A4 _0804B19A: subs r6, 0x1 cmp r6, 0 bne _0804B16A movs r5, 0x4 movs r4, 0x4 _0804B1A4: movs r0, 0x38 adds r1, r5, 0 bl __divsi3 cmp r0, 0x7 bgt _0804B1B2 movs r5, 0x1 _0804B1B2: movs r0, 0x20 adds r1, r4, 0 bl __divsi3 cmp r0, 0x7 bgt _0804B1C0 movs r4, 0x1 _0804B1C0: ldr r2, _0804B1EC ldr r0, [r2] ldr r1, _0804B1F0 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, [r2] ldr r2, _0804B1F4 adds r0, r2 movs r1, 0xFF strb r1, [r0] ldr r0, _0804B1F8 str r7, [r0] movs r0, 0xF ands r0, r7 cmp r0, 0xB bhi _0804B274 lsls r0, 2 ldr r1, _0804B1FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804B1EC: .4byte gUnknown_203B418 _0804B1F0: .4byte 0x00003a08 _0804B1F4: .4byte 0x00003a0c _0804B1F8: .4byte gUnknown_202F1D0 _0804B1FC: .4byte _0804B200 .align 2, 0 _0804B200: .4byte _0804B274 .4byte _0804B230 .4byte _0804B280 .4byte _0804B298 .4byte _0804B2A4 .4byte _0804B2B0 .4byte _0804B2CC .4byte _0804B2D8 .4byte _0804B274 .4byte _0804B2E0 .4byte _0804B2E8 .4byte _0804B250 _0804B230: movs r0, 0x2 bl sub_8084100 adds r4, r0, 0x2 ldr r1, _0804B24C movs r0, 0x1 strb r0, [r1] movs r0, 0x4 adds r1, r4, 0 mov r2, r8 bl sub_804B634 b _0804B2AA .align 2, 0 _0804B24C: .4byte gUnknown_202F1AE _0804B250: movs r0, 0x2 bl sub_8084100 adds r4, r0, 0x2 ldr r1, _0804B270 movs r0, 0x2 strb r0, [r1] movs r0, 0x4 adds r1, r4, 0 mov r2, r8 bl sub_804B634 movs r6, 0x1 mov r10, r6 b _0804B2F6 .align 2, 0 _0804B270: .4byte gUnknown_202F1AE _0804B274: adds r0, r5, 0 adds r1, r4, 0 mov r2, r8 bl sub_804B634 b _0804B2D2 _0804B280: bl sub_804C918 ldr r0, _0804B290 ldr r0, [r0] ldr r1, _0804B294 adds r0, r1 b _0804B2BC .align 2, 0 _0804B290: .4byte gUnknown_203B418 _0804B294: .4byte 0x00003a08 _0804B298: mov r0, r8 bl sub_804B72C movs r2, 0x1 mov r10, r2 b _0804B2F6 _0804B2A4: mov r0, r8 bl sub_804BC80 _0804B2AA: movs r3, 0x1 mov r10, r3 b _0804B2F6 _0804B2B0: bl sub_804C9D0 ldr r0, _0804B2C4 ldr r0, [r0] ldr r6, _0804B2C8 adds r0, r6 _0804B2BC: movs r1, 0x1 strb r1, [r0] b _0804B2F6 .align 2, 0 _0804B2C4: .4byte gUnknown_203B418 _0804B2C8: .4byte 0x00003a08 _0804B2CC: mov r0, r8 bl sub_804C0A8 _0804B2D2: movs r0, 0x1 mov r10, r0 b _0804B2F6 _0804B2D8: mov r0, r8 bl sub_804C190 b _0804B2F6 _0804B2E0: mov r0, r8 bl sub_804C2F4 b _0804B2F6 _0804B2E8: adds r0, r5, 0 adds r1, r4, 0 mov r2, r8 bl sub_804C53C movs r1, 0x1 mov r10, r1 _0804B2F6: bl sub_80518F0 bl sub_804FCCC ldr r0, _0804B4B4 ldrb r0, [r0] cmp r0, 0 bne _0804B36A movs r7, 0 movs r1, 0 mov r0, sp adds r0, 0x3F _0804B30E: strb r1, [r0] subs r0, 0x1 cmp r0, sp bge _0804B30E movs r5, 0 _0804B318: movs r4, 0 adds r6, r5, 0x1 _0804B31C: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C adds r1, r0, 0 ldrh r0, [r1] movs r2, 0x3 ands r2, r0 cmp r2, 0x1 bne _0804B340 ldrb r0, [r1, 0x9] cmp r0, 0xF0 bhi _0804B340 adds r7, 0x1 cmp r0, 0x3F bhi _0804B340 add r0, sp strb r2, [r0] _0804B340: adds r4, 0x1 cmp r4, 0x1F ble _0804B31C adds r5, r6, 0 cmp r5, 0x37 ble _0804B318 movs r1, 0 movs r4, 0 _0804B350: mov r2, sp adds r0, r2, r4 ldrb r0, [r0] cmp r0, 0 beq _0804B35C adds r1, 0x1 _0804B35C: adds r4, 0x1 cmp r4, 0x3F ble _0804B350 cmp r7, 0x1D ble _0804B36A cmp r1, 0x1 bgt _0804B376 _0804B36A: movs r3, 0x1 add r9, r3 mov r6, r9 cmp r6, 0x9 bgt _0804B376 b _0804B082 _0804B376: mov r0, r9 cmp r0, 0xA bne _0804B398 ldr r1, _0804B4B8 ldr r0, _0804B4BC strh r0, [r1] movs r0, 0x1 negs r0, r0 strh r0, [r1, 0x2] bl sub_804C918 ldr r0, _0804B4C0 ldr r0, [r0] ldr r1, _0804B4C4 adds r0, r1 movs r1, 0x1 strb r1, [r0] _0804B398: bl sub_804E9DC mov r2, r10 cmp r2, 0 beq _0804B3AA movs r0, 0x1 mov r1, r8 bl sub_80506F0 _0804B3AA: movs r0, 0x64 bl sub_8084100 movs r4, 0 mov r3, r8 ldrb r3, [r3, 0x19] cmp r0, r3 bge _0804B3BC movs r4, 0x1 _0804B3BC: mov r0, r8 adds r1, r4, 0 bl sub_804FF08 mov r0, r8 adds r1, r4, 0 bl sub_8050438 bl sub_804FBE8 ldr r5, _0804B4C0 ldr r1, [r5] ldr r6, _0804B4C8 adds r0, r1, r6 movs r2, 0 ldrsh r0, [r0, r2] movs r4, 0x1 negs r4, r4 cmp r0, r4 beq _0804B42A ldr r3, _0804B4CC adds r0, r1, r3 movs r6, 0 ldrsh r0, [r0, r6] cmp r0, r4 beq _0804B42A bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0804B436 ldr r1, [r5] ldr r0, _0804B4D0 adds r2, r1, r0 movs r3, 0 ldrsh r0, [r2, r3] cmp r0, r4 beq _0804B42A ldr r6, _0804B4D4 adds r1, r6 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, r4 beq _0804B42A movs r6, 0 ldrsh r0, [r2, r6] movs r2, 0 ldrsh r1, [r1, r2] movs r2, 0 bl sub_8050C30 lsls r0, 24 cmp r0, 0 bne _0804B436 _0804B42A: ldr r3, [sp, 0x40] adds r3, 0x1 str r3, [sp, 0x40] cmp r3, 0x9 bgt _0804B436 b _0804B058 _0804B436: ldr r6, [sp, 0x40] cmp r6, 0xA bne _0804B474 ldr r1, _0804B4B8 ldr r0, _0804B4BC strh r0, [r1] movs r0, 0x1 negs r0, r0 strh r0, [r1, 0x2] bl sub_804FD30 bl sub_804C918 ldr r0, _0804B4C0 ldr r0, [r0] ldr r1, _0804B4C4 adds r0, r1 movs r1, 0x1 strb r1, [r0] bl sub_804E9DC mov r0, r8 movs r1, 0 bl sub_804FF08 mov r0, r8 movs r1, 0 bl sub_8050438 bl sub_804FBE8 _0804B474: ldr r1, _0804B4B8 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 blt _0804B498 movs r3, 0x2 ldrsh r0, [r1, r3] cmp r0, 0 blt _0804B498 movs r6, 0 ldrsh r0, [r1, r6] movs r2, 0x2 ldrsh r1, [r1, r2] movs r2, 0xBE lsls r2, 1 movs r3, 0 bl sub_806C330 _0804B498: ldr r0, _0804B4D8 ldr r0, [r0] cmp r0, 0 blt _0804B4E0 mov r0, r8 bl sub_8051654 ldr r0, _0804B4C0 ldr r0, [r0] ldr r3, _0804B4DC adds r0, r3 movs r1, 0x1 b _0804B4EA .align 2, 0 _0804B4B4: .4byte gUnknown_202F1A9 _0804B4B8: .4byte gUnknown_202F1D8 _0804B4BC: .4byte 0x0000ffff _0804B4C0: .4byte gUnknown_203B418 _0804B4C4: .4byte 0x00003a08 _0804B4C8: .4byte 0x0000e218 _0804B4CC: .4byte 0x0000e21a _0804B4D0: .4byte 0x0000e21c _0804B4D4: .4byte 0x0000e21e _0804B4D8: .4byte gUnknown_202F1B8 _0804B4DC: .4byte 0x00003a0a _0804B4E0: ldr r0, _0804B524 ldr r0, [r0] ldr r6, _0804B528 adds r0, r6 movs r1, 0 _0804B4EA: strb r1, [r0] movs r0, 0 movs r1, 0 movs r2, 0x38 movs r3, 0x20 bl sub_804B534 ldr r0, _0804B52C ldrb r0, [r0] cmp r0, 0 beq _0804B504 bl sub_804FC74 _0804B504: ldr r0, _0804B524 ldr r0, [r0] ldr r1, _0804B530 adds r0, r1 ldr r0, [r0] bl CloseFile add sp, 0x44 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804B524: .4byte gUnknown_203B418 _0804B528: .4byte 0x00003a0a _0804B52C: .4byte gUnknown_202F1A8 _0804B530: .4byte 0x00013568 thumb_func_end sub_804AFAC thumb_func_start sub_804B534 sub_804B534: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 str r1, [sp] str r2, [sp, 0x4] mov r10, r3 adds r5, r0, 0 cmp r5, r2 bge _0804B620 _0804B54C: ldr r4, [sp] adds r0, r5, 0x1 mov r9, r0 cmp r4, r10 bge _0804B618 movs r6, 0x3 mov r8, r6 _0804B55A: movs r3, 0 adds r0, r5, 0 adds r1, r4, 0 str r3, [sp, 0xC] bl sub_8049590 adds r2, r0, 0 ldrh r0, [r2] ldr r6, _0804B630 adds r1, r6, 0 ands r1, r0 strh r1, [r2] ldrb r0, [r2, 0x9] adds r6, r4, 0x1 ldr r3, [sp, 0xC] cmp r0, 0xFF bne _0804B612 movs r7, 0x3 adds r0, r1, 0 ands r0, r7 cmp r0, 0x1 bne _0804B612 cmp r5, 0 ble _0804B5A4 subs r0, r5, 0x1 adds r1, r4, 0 str r2, [sp, 0x8] bl sub_804954C ldrh r1, [r0] adds r0, r7, 0 ands r0, r1 ldr r2, [sp, 0x8] ldr r3, [sp, 0xC] cmp r0, 0x1 bne _0804B5A4 movs r3, 0x1 _0804B5A4: cmp r4, 0 ble _0804B5C4 subs r1, r4, 0x1 adds r0, r5, 0 str r2, [sp, 0x8] str r3, [sp, 0xC] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r2, [sp, 0x8] ldr r3, [sp, 0xC] cmp r0, 0x1 bne _0804B5C4 adds r3, 0x1 _0804B5C4: cmp r5, 0x35 bgt _0804B5E4 mov r0, r9 adds r1, r4, 0 str r2, [sp, 0x8] str r3, [sp, 0xC] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r2, [sp, 0x8] ldr r3, [sp, 0xC] cmp r0, 0x1 bne _0804B5E4 adds r3, 0x1 _0804B5E4: adds r6, r4, 0x1 cmp r5, 0x1D bgt _0804B606 adds r0, r5, 0 adds r1, r6, 0 str r2, [sp, 0x8] str r3, [sp, 0xC] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r2, [sp, 0x8] ldr r3, [sp, 0xC] cmp r0, 0x1 bne _0804B606 adds r3, 0x1 _0804B606: cmp r3, 0x2 ble _0804B612 ldrh r1, [r2] movs r0, 0x8 orrs r0, r1 strh r0, [r2] _0804B612: adds r4, r6, 0 cmp r4, r10 blt _0804B55A _0804B618: mov r5, r9 ldr r0, [sp, 0x4] cmp r5, r0 blt _0804B54C _0804B620: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804B630: .4byte 0x0000fffb thumb_func_end sub_804B534 thumb_func_start sub_804B634 sub_804B634: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} ldr r4, _0804B718 add sp, r4 adds r4, r0, 0 adds r5, r1, 0 mov r9, r2 ldr r0, _0804B71C add r0, sp mov r8, r0 ldr r6, _0804B720 add r6, sp adds r1, r6, 0 adds r2, r4, 0 adds r3, r5, 0 bl sub_804D024 add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 bl sub_804D084 mov r1, r9 movs r3, 0x1 ldrsb r3, [r1, r3] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 bl sub_804D154 str r6, [sp] mov r1, r9 ldrb r0, [r1, 0xD] str r0, [sp, 0x4] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 mov r3, r8 bl sub_804D2D0 add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 mov r3, r9 bl sub_804D5B0 str r6, [sp] movs r0, 0 str r0, [sp, 0x4] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 mov r3, r8 bl sub_804D8C8 str r6, [sp] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 mov r3, r8 bl sub_804E590 mov r0, r9 ldrb r3, [r0, 0x9] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 bl sub_804F0D0 ldr r0, _0804B724 movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 bl sub_804EBC8 ldr r0, _0804B728 movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 bl sub_804EEE4 mov r0, r9 ldrb r3, [r0, 0x13] add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 bl sub_804CBEC add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 bl sub_804E03C add r0, sp, 0x8 adds r1, r4, 0 adds r2, r5, 0 bl sub_804D534 movs r3, 0xE5 lsls r3, 5 add sp, r3 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804B718: .4byte 0xffffe360 _0804B71C: .4byte 0x00001c28 _0804B720: .4byte 0x00001c64 _0804B724: .4byte gUnknown_202F1B0 _0804B728: .4byte gUnknown_202F1B2 thumb_func_end sub_804B634 thumb_func_start sub_804B72C sub_804B72C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0804B9AC add sp, r4 movs r1, 0xE5 lsls r1, 5 add r1, sp str r0, [r1] movs r5, 0 movs r6, 0x1 ldr r1, _0804B9B0 add r1, sp str r5, [r1] movs r0, 0x5 str r0, [r1, 0x4] movs r0, 0x1C str r0, [r1, 0xC] movs r0, 0x33 str r0, [r1, 0x14] movs r0, 0x38 str r0, [r1, 0x18] movs r2, 0x10 str r2, [r1, 0x8] movs r0, 0x27 str r0, [r1, 0x10] ldr r1, _0804B9B4 add r1, sp movs r0, 0x2 str r0, [r1] movs r0, 0x7 str r0, [r1, 0x4] str r2, [r1, 0x8] movs r0, 0x19 str r0, [r1, 0xC] movs r0, 0x1E str r0, [r1, 0x10] add r0, sp, 0x8 movs r1, 0x6 movs r2, 0x4 bl sub_804D084 mov r2, sp adds r2, 0x3B ldr r3, _0804B9B8 add r3, sp str r2, [r3] mov r4, sp adds r4, 0x3C ldr r0, _0804B9BC add r0, sp str r4, [r0] mov r1, sp adds r1, 0x5B ldr r2, _0804B9C0 add r2, sp str r1, [r2] mov r3, sp adds r3, 0x5C movs r4, 0xE6 lsls r4, 5 add r4, sp str r3, [r4] mov r0, sp adds r0, 0x7B ldr r1, _0804B9C4 add r1, sp str r0, [r1] mov r2, sp adds r2, 0x7E ldr r3, _0804B9C8 add r3, sp str r2, [r3] add r1, sp, 0x68 add r0, sp, 0x8 movs r2, 0xF0 lsls r2, 1 movs r4, 0x6 _0804B7CC: strb r5, [r0, 0xA] strb r5, [r1, 0xA] adds r1, r2 adds r0, r2 subs r4, 0x1 cmp r4, 0 bne _0804B7CC movs r2, 0x6 subs r2, 0x1 movs r4, 0x4 cmp r4, 0 beq _0804B80C lsls r0, r2, 4 subs r0, r2 lsls r0, 5 add r0, sp adds r0, 0x8 add r1, sp, 0x8 ldr r3, _0804B9CC add r3, sp str r4, [r3] _0804B7F6: strb r5, [r1, 0xA] strb r5, [r0, 0xA] adds r0, 0x20 adds r1, 0x20 ldr r3, _0804B9CC add r3, sp ldr r4, [r3] subs r4, 0x1 str r4, [r3] cmp r4, 0 bne _0804B7F6 _0804B80C: movs r4, 0x1 cmp r4, r2 bge _0804B848 movs r1, 0x3 _0804B814: adds r5, r4, 0x1 mov r8, r5 cmp r1, 0x1 ble _0804B842 lsls r0, r4, 4 subs r0, r4 lsls r0, 5 add r0, sp adds r0, 0x8 adds r0, 0x20 subs r3, r1, 0x1 ldr r4, _0804B9CC add r4, sp str r3, [r4] _0804B830: strb r6, [r0, 0xA] adds r0, 0x20 ldr r3, _0804B9CC add r3, sp ldr r5, [r3] subs r5, 0x1 str r5, [r3] cmp r5, 0 bne _0804B830 _0804B842: mov r4, r8 cmp r4, r2 blt _0804B814 _0804B848: movs r4, 0 ldr r5, _0804B9D0 add r5, sp str r4, [r5] ldr r0, _0804B9CC add r0, sp str r4, [r0] cmp r4, 0x4 blt _0804B85C b _0804BA8C _0804B85C: movs r4, 0 ldr r2, _0804B9CC add r2, sp ldr r1, [r2] adds r1, 0x1 ldr r2, _0804B9D4 add r2, sp str r1, [r2] cmp r4, 0x6 blt _0804B872 b _0804BA7A _0804B872: ldr r3, _0804B9B0 add r3, sp ldr r5, _0804B9D8 add r5, sp str r3, [r5] ldr r0, _0804B9B4 add r0, sp ldr r1, _0804B9DC add r1, sp str r0, [r1] ldr r2, _0804B9CC add r2, sp ldr r2, [r2] lsls r0, r2, 2 ldr r3, [r1] adds r0, r3, r0 ldr r3, _0804B9E0 add r3, sp str r0, [r3] _0804B898: lsls r0, r4, 4 subs r0, r4 ldr r5, _0804B9CC add r5, sp ldr r5, [r5] adds r0, r5 lsls r0, 5 mov r7, sp adds r7, r0 adds r7, 0x8 ldrb r0, [r7, 0xA] cmp r0, 0 bne _0804B8B4 b _0804B9F4 _0804B8B4: lsls r0, r4, 2 ldr r1, _0804B9D8 add r1, sp ldr r1, [r1] adds r0, r1, r0 ldr r1, [r0] adds r2, r1, 0x2 mov r10, r2 ldr r3, _0804B9E0 add r3, sp ldr r3, [r3] ldr r2, [r3] adds r5, r2, 0x2 ldr r0, _0804B9E4 add r0, sp str r5, [r0] adds r4, 0x1 mov r9, r4 lsls r0, r4, 2 ldr r3, _0804B9D8 add r3, sp ldr r3, [r3] adds r0, r3, r0 ldr r4, [r0] subs r4, r1 subs r4, 0x3 ldr r5, _0804B9D4 add r5, sp ldr r5, [r5] lsls r0, r5, 2 ldr r1, _0804B9DC add r1, sp ldr r1, [r1] adds r0, r1, r0 ldr r5, [r0] subs r5, r2 subs r5, 0x3 movs r0, 0x5 adds r1, r4, 0 bl sub_808411C mov r8, r0 movs r0, 0x4 adds r1, r5, 0 bl sub_808411C adds r6, r0, 0 mov r2, r8 subs r4, r2 adds r0, r4, 0 bl sub_8084100 adds r4, r0, 0 add r4, r10 subs r5, r6 adds r0, r5, 0 bl sub_8084100 ldr r5, _0804B9E4 add r5, sp ldr r3, [r5] adds r3, r0 mov r10, r3 mov r0, r8 adds r3, r4, r0 add r6, r10 strh r4, [r7] strh r3, [r7, 0x4] mov r1, r10 strh r1, [r7, 0x2] strh r6, [r7, 0x6] mov r8, r9 ldr r5, _0804B9D0 add r5, sp ldr r2, [r5] adds r2, 0x1 ldr r5, _0804B9E8 add r5, sp str r2, [r5] cmp r4, r3 bge _0804B99E _0804B956: mov r5, r10 adds r7, r4, 0x1 cmp r5, r6 bge _0804B998 ldr r0, _0804B9EC mov r9, r0 _0804B962: adds r0, r4, 0 adds r1, r5, 0 ldr r2, _0804B9F0 add r2, sp str r3, [r2] bl sub_8049590 ldrh r1, [r0] mov r2, r9 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 ldr r1, _0804B9D0 add r1, sp ldrb r1, [r1] strb r1, [r0, 0x9] adds r5, 0x1 ldr r2, _0804B9F0 add r2, sp ldr r3, [r2] cmp r5, r6 blt _0804B962 _0804B998: adds r4, r7, 0 cmp r4, r3 blt _0804B956 _0804B99E: ldr r3, _0804B9E8 add r3, sp ldr r3, [r3] ldr r4, _0804B9D0 add r4, sp str r3, [r4] b _0804BA72 .align 2, 0 _0804B9AC: .4byte 0xffffe320 _0804B9B0: .4byte 0x00001c28 _0804B9B4: .4byte 0x00001c64 _0804B9B8: .4byte 0x00001cd4 _0804B9BC: .4byte 0x00001cd8 _0804B9C0: .4byte 0x00001cbc _0804B9C4: .4byte 0x00001cc4 _0804B9C8: .4byte 0x00001cc8 _0804B9CC: .4byte 0x00001ca4 _0804B9D0: .4byte 0x00001ca8 _0804B9D4: .4byte 0x00001ccc _0804B9D8: .4byte 0x00001cac _0804B9DC: .4byte 0x00001cb4 _0804B9E0: .4byte 0x00001cb8 _0804B9E4: .4byte 0x00001cb0 _0804B9E8: .4byte 0x00001cd0 _0804B9EC: .4byte 0x0000fffc _0804B9F0: .4byte 0x00001cdc _0804B9F4: lsls r0, r4, 2 ldr r5, _0804BBE8 add r5, sp ldr r5, [r5] adds r0, r5, r0 ldr r2, [r0] adds r0, r2, 0x1 ldr r1, _0804BBEC add r1, sp ldr r1, [r1] ldr r3, [r1] adds r6, r3, 0x1 adds r4, 0x1 mov r8, r4 lsls r1, r4, 2 adds r1, r5, r1 ldr r1, [r1] subs r1, r2 subs r1, 0x3 ldr r5, _0804BBF0 add r5, sp ldr r5, [r5] lsls r2, r5, 2 ldr r4, _0804BBF4 add r4, sp ldr r4, [r4] adds r2, r4, r2 ldr r4, [r2] subs r4, r3 subs r4, 0x3 adds r1, r0, r1 bl sub_808411C adds r5, r0, 0 adds r4, r6, r4 adds r0, r6, 0 adds r1, r4, 0 bl sub_808411C adds r4, r0, 0 strh r5, [r7] adds r0, r5, 0x1 strh r0, [r7, 0x4] strh r4, [r7, 0x2] adds r0, r4, 0x1 strh r0, [r7, 0x6] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r1, [r0] ldr r3, _0804BBF8 adds r2, r3, 0 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0xFF strb r1, [r0, 0x9] _0804BA72: mov r4, r8 cmp r4, 0x6 bge _0804BA7A b _0804B898 _0804BA7A: ldr r4, _0804BBF0 add r4, sp ldr r4, [r4] ldr r5, _0804BBFC add r5, sp str r4, [r5] cmp r4, 0x4 bge _0804BA8C b _0804B85C _0804BA8C: add r1, sp, 0x8 movs r6, 0 movs r0, 0x1 strb r0, [r1, 0x16] ldr r1, _0804BC00 add r1, sp strb r0, [r1] movs r1, 0xFF lsls r1, 1 add r1, sp strb r0, [r1] ldr r1, _0804BC04 add r1, sp strb r0, [r1] ldr r1, _0804BC08 add r1, sp strb r0, [r1] ldr r1, _0804BC0C add r1, sp strb r0, [r1] ldr r1, _0804BC10 add r1, sp strb r0, [r1] ldr r1, _0804BC14 add r1, sp strb r0, [r1] ldr r1, _0804BC18 add r1, sp strb r0, [r1] ldr r1, _0804BC1C add r1, sp strb r0, [r1] add r1, sp, 0x8 strb r0, [r1, 0x14] ldr r5, _0804BC20 add r5, sp ldr r5, [r5] strb r0, [r5] ldr r1, _0804BC24 add r1, sp ldr r1, [r1] strb r0, [r1] ldr r2, _0804BC28 add r2, sp ldr r2, [r2] strb r0, [r2] movs r3, 0xE6 lsls r3, 5 add r3, sp ldr r3, [r3] strb r0, [r3] ldr r4, _0804BC2C add r4, sp ldr r4, [r4] strb r0, [r4] ldr r5, _0804BC30 add r5, sp ldr r5, [r5] strb r0, [r5] ldr r1, _0804BC34 add r1, sp strb r0, [r1] ldr r1, _0804BC38 add r1, sp strb r0, [r1] ldr r1, _0804BC3C add r1, sp strb r0, [r1] ldr r1, _0804BC40 add r1, sp strb r0, [r1] ldr r1, _0804BC44 add r1, sp strb r0, [r1] ldr r1, _0804BC48 add r1, sp strb r0, [r1] ldr r1, _0804BC4C add r1, sp strb r0, [r1] ldr r1, _0804BC50 add r1, sp strb r0, [r1] ldr r1, _0804BC54 add r1, sp strb r0, [r1] ldr r1, _0804BC58 add r1, sp strb r0, [r1] ldr r1, _0804BC5C add r1, sp strb r0, [r1] ldr r1, _0804BC60 add r1, sp strb r0, [r1] ldr r1, _0804BC64 add r1, sp strb r0, [r1] ldr r1, _0804BC68 add r1, sp strb r0, [r1] ldr r1, _0804BC6C add r1, sp strb r0, [r1] add r0, sp, 0x8 movs r1, 0x6 movs r2, 0x4 movs r4, 0xE5 lsls r4, 5 add r4, sp ldr r3, [r4] bl sub_804D5B0 ldr r5, _0804BC70 add r5, sp ldr r4, _0804BC74 add r4, sp str r4, [sp] str r6, [sp, 0x4] add r0, sp, 0x8 movs r1, 0x6 movs r2, 0x4 adds r3, r5, 0 bl sub_804D8C8 str r4, [sp] add r0, sp, 0x8 movs r1, 0x6 movs r2, 0x4 adds r3, r5, 0 bl sub_804E590 ldr r0, _0804BC78 movs r5, 0 ldrsh r3, [r0, r5] add r0, sp, 0x8 movs r1, 0x6 movs r2, 0x4 bl sub_804EBC8 ldr r0, _0804BC7C movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 movs r1, 0x6 movs r2, 0x4 bl sub_804EEE4 movs r2, 0xE5 lsls r2, 5 add r2, sp ldr r2, [r2] ldrb r3, [r2, 0x13] add r0, sp, 0x8 movs r1, 0x6 movs r2, 0x4 bl sub_804CBEC add r0, sp, 0x8 movs r1, 0x6 movs r2, 0x4 bl sub_804E03C movs r3, 0xE7 lsls r3, 5 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804BBE8: .4byte 0x00001cac _0804BBEC: .4byte 0x00001cb8 _0804BBF0: .4byte 0x00001ccc _0804BBF4: .4byte 0x00001cb4 _0804BBF8: .4byte 0x0000fffc _0804BBFC: .4byte 0x00001ca4 _0804BC00: .4byte 0x000001fd _0804BC04: .4byte 0x000003dd _0804BC08: .4byte 0x000003de _0804BC0C: .4byte 0x000005bd _0804BC10: .4byte 0x000005be _0804BC14: .4byte 0x0000079d _0804BC18: .4byte 0x0000079e _0804BC1C: .4byte 0x0000097d _0804BC20: .4byte 0x00001cd4 _0804BC24: .4byte 0x00001cd8 _0804BC28: .4byte 0x00001cbc _0804BC2C: .4byte 0x00001cc4 _0804BC30: .4byte 0x00001cc8 _0804BC34: .4byte 0x0000025d _0804BC38: .4byte 0x0000025e _0804BC3C: .4byte 0x0000043d _0804BC40: .4byte 0x0000043e _0804BC44: .4byte 0x0000061d _0804BC48: .4byte 0x0000061e _0804BC4C: .4byte 0x000007fd _0804BC50: .4byte 0x000007fe _0804BC54: .4byte 0x000009dd _0804BC58: .4byte 0x0000097c _0804BC5C: .4byte 0x0000099b _0804BC60: .4byte 0x0000099c _0804BC64: .4byte 0x000009bb _0804BC68: .4byte 0x000009bc _0804BC6C: .4byte 0x000009db _0804BC70: .4byte 0x00001c28 _0804BC74: .4byte 0x00001c64 _0804BC78: .4byte gUnknown_202F1B0 _0804BC7C: .4byte gUnknown_202F1B2 thumb_func_end sub_804B72C thumb_func_start sub_804BC80 sub_804BC80: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0804BED0 add sp, r4 movs r1, 0xE5 lsls r1, 5 add r1, sp str r0, [r1] movs r4, 0x1 movs r5, 0 ldr r1, _0804BED4 add r1, sp str r5, [r1] movs r0, 0xB str r0, [r1, 0x4] movs r0, 0x16 str r0, [r1, 0x8] movs r0, 0x21 str r0, [r1, 0xC] movs r0, 0x2C str r0, [r1, 0x10] movs r0, 0x38 str r0, [r1, 0x14] ldr r1, _0804BED8 add r1, sp str r4, [r1] movs r0, 0x9 str r0, [r1, 0x4] movs r0, 0x10 str r0, [r1, 0x8] movs r0, 0x17 str r0, [r1, 0xC] movs r0, 0x1F str r0, [r1, 0x10] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x4 bl sub_804D084 add r6, sp, 0x70 add r1, sp, 0x68 add r0, sp, 0x8 movs r3, 0xF0 lsls r3, 1 movs r2, 0x5 _0804BCE0: strb r4, [r0, 0xA] strb r4, [r1, 0xA] adds r1, r3 adds r0, r3 subs r2, 0x1 cmp r2, 0 bne _0804BCE0 movs r3, 0x5 subs r3, 0x1 movs r2, 0x4 cmp r2, 0 beq _0804BD1A lsls r0, r3, 4 subs r0, r3 lsls r0, 5 add r0, sp adds r0, 0x8 add r1, sp, 0x8 mov r10, r2 _0804BD06: strb r4, [r1, 0xA] strb r4, [r0, 0xA] adds r0, 0x20 adds r1, 0x20 movs r2, 0x1 negs r2, r2 add r10, r2 mov r2, r10 cmp r2, 0 bne _0804BD06 _0804BD1A: movs r2, 0x1 cmp r2, r3 bge _0804BD58 movs r1, 0x3 _0804BD22: adds r4, r2, 0x1 ldr r0, _0804BEDC add r0, sp str r4, [r0] cmp r1, 0x1 ble _0804BD4E lsls r0, r2, 4 subs r0, r2 lsls r0, 5 add r0, sp adds r0, 0x8 adds r0, 0x20 subs r2, r1, 0x1 mov r10, r2 _0804BD3E: strb r5, [r0, 0xA] adds r0, 0x20 movs r4, 0x1 negs r4, r4 add r10, r4 mov r2, r10 cmp r2, 0 bne _0804BD3E _0804BD4E: ldr r4, _0804BEDC add r4, sp ldr r2, [r4] cmp r2, r3 blt _0804BD22 _0804BD58: add r0, sp, 0x8 movs r1, 0x1 strb r1, [r0, 0x8] movs r0, 0xF2 lsls r0, 3 add r0, sp strb r1, [r0] strb r1, [r6] movs r0, 0xFE lsls r0, 3 add r0, sp strb r1, [r0] movs r5, 0 ldr r6, _0804BEE0 add r6, sp str r5, [r6] mov r10, r5 cmp r5, 0x4 blt _0804BD80 b _0804BFAC _0804BD80: movs r0, 0x4 movs r1, 0xE6 lsls r1, 5 add r1, sp str r0, [r1] _0804BD8A: movs r2, 0 cmp r2, 0x5 blt _0804BD92 b _0804BF94 _0804BD92: ldr r3, _0804BED4 add r3, sp ldr r4, _0804BEE4 add r4, sp str r3, [r4] ldr r5, _0804BED8 add r5, sp ldr r6, _0804BEE8 add r6, sp str r5, [r6] mov r1, r10 lsls r0, r1, 2 adds r0, r5, r0 ldr r3, _0804BEEC add r3, sp str r0, [r3] _0804BDB2: lsls r0, r2, 4 subs r0, r2 add r0, r10 lsls r0, 5 mov r7, sp adds r7, r0 adds r7, 0x8 ldrb r0, [r7, 0x8] adds r4, r2, 0x1 ldr r5, _0804BEDC add r5, sp str r4, [r5] cmp r0, 0 beq _0804BDD0 b _0804BF88 _0804BDD0: ldrb r0, [r7, 0xA] cmp r0, 0 bne _0804BDD8 b _0804BF00 _0804BDD8: lsls r0, r2, 2 ldr r6, _0804BEE4 add r6, sp ldr r6, [r6] adds r0, r6, r0 ldr r1, [r0] adds r0, r1, 0x2 mov r9, r0 ldr r3, _0804BEEC add r3, sp ldr r3, [r3] ldr r2, [r3] adds r4, r2, 0x2 ldr r5, _0804BEF0 add r5, sp str r4, [r5] ldr r6, _0804BEDC add r6, sp ldr r6, [r6] lsls r0, r6, 2 ldr r3, _0804BEE4 add r3, sp ldr r3, [r3] adds r0, r3, r0 ldr r4, [r0] subs r4, r1 subs r4, 0x3 ldr r5, _0804BEE8 add r5, sp ldr r5, [r5] movs r6, 0xE6 lsls r6, 5 add r6, sp ldr r6, [r6] adds r0, r5, r6 ldr r5, [r0] subs r5, r2 subs r5, 0x3 movs r0, 0x5 adds r1, r4, 0 bl sub_808411C mov r8, r0 movs r0, 0x4 adds r1, r5, 0 bl sub_808411C adds r6, r0, 0 mov r0, r8 subs r4, r0 adds r0, r4, 0 bl sub_8084100 adds r4, r0, 0 add r4, r9 subs r5, r6 adds r0, r5, 0 bl sub_8084100 ldr r2, _0804BEF0 add r2, sp ldr r1, [r2] adds r1, r0 mov r9, r1 mov r5, r8 adds r3, r4, r5 add r6, r9 strh r4, [r7] strh r3, [r7, 0x4] strh r1, [r7, 0x2] strh r6, [r7, 0x6] ldr r1, _0804BEE0 add r1, sp ldr r0, [r1] adds r0, 0x1 ldr r1, _0804BEF4 add r1, sp str r0, [r1] cmp r4, r3 bge _0804BEC0 _0804BE78: mov r5, r9 adds r7, r4, 0x1 cmp r5, r6 bge _0804BEBA ldr r2, _0804BEF8 mov r8, r2 _0804BE84: adds r0, r4, 0 adds r1, r5, 0 ldr r2, _0804BEFC add r2, sp str r3, [r2] bl sub_8049590 ldrh r1, [r0] mov r2, r8 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 ldr r1, _0804BEE0 add r1, sp ldrb r1, [r1] strb r1, [r0, 0x9] adds r5, 0x1 ldr r2, _0804BEFC add r2, sp ldr r3, [r2] cmp r5, r6 blt _0804BE84 _0804BEBA: adds r4, r7, 0 cmp r4, r3 blt _0804BE78 _0804BEC0: ldr r3, _0804BEF4 add r3, sp ldr r3, [r3] ldr r4, _0804BEE0 add r4, sp str r3, [r4] b _0804BF88 .align 2, 0 _0804BED0: .4byte 0xffffe338 _0804BED4: .4byte 0x00001c28 _0804BED8: .4byte 0x00001c64 _0804BEDC: .4byte 0x00001cb8 _0804BEE0: .4byte 0x00001ca4 _0804BEE4: .4byte 0x00001ca8 _0804BEE8: .4byte 0x00001cb0 _0804BEEC: .4byte 0x00001cb4 _0804BEF0: .4byte 0x00001cac _0804BEF4: .4byte 0x00001cbc _0804BEF8: .4byte 0x0000fffc _0804BEFC: .4byte 0x00001cc4 _0804BF00: lsls r0, r2, 2 ldr r4, _0804C080 add r4, sp ldr r4, [r4] adds r0, r4, r0 ldr r2, [r0] adds r0, r2, 0x1 ldr r5, _0804C084 add r5, sp ldr r5, [r5] ldr r3, [r5] adds r6, r3, 0x1 mov r8, r6 ldr r4, _0804C088 add r4, sp ldr r4, [r4] lsls r1, r4, 2 ldr r5, _0804C080 add r5, sp ldr r5, [r5] adds r1, r5, r1 ldr r1, [r1] subs r1, r2 subs r1, 0x3 ldr r6, _0804C08C add r6, sp ldr r6, [r6] movs r4, 0xE6 lsls r4, 5 add r4, sp ldr r4, [r4] adds r2, r6, r4 ldr r4, [r2] subs r4, r3 subs r4, 0x3 adds r1, r0, r1 bl sub_808411C adds r5, r0, 0 add r4, r8 mov r0, r8 adds r1, r4, 0 bl sub_808411C adds r4, r0, 0 strh r5, [r7] adds r0, r5, 0x1 strh r0, [r7, 0x4] strh r4, [r7, 0x2] adds r0, r4, 0x1 strh r0, [r7, 0x6] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r1, [r0] ldr r6, _0804C090 adds r2, r6, 0 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0xFF strb r1, [r0, 0x9] _0804BF88: ldr r0, _0804C088 add r0, sp ldr r2, [r0] cmp r2, 0x5 bge _0804BF94 b _0804BDB2 _0804BF94: movs r2, 0xE6 lsls r2, 5 add r2, sp ldr r1, [r2] adds r1, 0x4 str r1, [r2] movs r3, 0x1 add r10, r3 mov r4, r10 cmp r4, 0x4 bge _0804BFAC b _0804BD8A _0804BFAC: movs r2, 0x1 movs r1, 0x1 movs r3, 0xF add r4, sp, 0x1C _0804BFB4: movs r5, 0 mov r10, r5 lsls r0, r3, 5 adds r0, r4 _0804BFBC: strb r1, [r0] strb r1, [r0, 0x1F] adds r0, 0x20 movs r6, 0x1 add r10, r6 mov r5, r10 cmp r5, 0x2 ble _0804BFBC movs r0, 0xF0 lsls r0, 1 adds r3, 0xF adds r2, 0x1 cmp r2, 0x3 ble _0804BFB4 mov r10, r6 movs r5, 0x1 adds r4, r0, 0 mov r6, sp adds r6, r4 adds r6, 0x8 _0804BFE4: movs r2, 0 mov r1, r10 lsls r0, r1, 5 mov r3, r10 adds r3, 0x1 adds r1, r0, r6 add r0, sp adds r0, 0x8 _0804BFF4: strb r5, [r0, 0x16] strb r5, [r1, 0x15] adds r1, r4 adds r0, r4 adds r2, 0x1 cmp r2, 0x3 ble _0804BFF4 mov r10, r3 cmp r3, 0x2 ble _0804BFE4 ldr r5, _0804C094 add r5, sp ldr r4, _0804C098 add r4, sp str r4, [sp] movs r0, 0x1 str r0, [sp, 0x4] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x4 adds r3, r5, 0 bl sub_804D8C8 str r4, [sp] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x4 adds r3, r5, 0 bl sub_804E590 ldr r0, _0804C09C movs r2, 0 ldrsh r3, [r0, r2] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x4 bl sub_804EBC8 ldr r0, _0804C0A0 movs r4, 0 ldrsh r3, [r0, r4] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x4 bl sub_804EEE4 movs r5, 0xE5 lsls r5, 5 add r5, sp ldr r5, [r5] ldrb r3, [r5, 0x13] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x4 bl sub_804CBEC add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x4 bl sub_804E03C ldr r3, _0804C0A4 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804C080: .4byte 0x00001ca8 _0804C084: .4byte 0x00001cb4 _0804C088: .4byte 0x00001cb8 _0804C08C: .4byte 0x00001cb0 _0804C090: .4byte 0x0000fffc _0804C094: .4byte 0x00001c28 _0804C098: .4byte 0x00001c64 _0804C09C: .4byte gUnknown_202F1B0 _0804C0A0: .4byte gUnknown_202F1B2 _0804C0A4: .4byte 0x00001cc8 thumb_func_end sub_804BC80 thumb_func_start sub_804C0A8 sub_804C0A8: push {r4-r6,lr} mov r6, r8 push {r6} ldr r4, _0804C17C add sp, r4 adds r6, r0, 0 ldr r4, _0804C180 add r4, sp movs r0, 0 str r0, [r4] movs r0, 0xB str r0, [r4, 0x4] movs r0, 0x16 str r0, [r4, 0x8] movs r0, 0x21 str r0, [r4, 0xC] movs r0, 0x2C str r0, [r4, 0x10] movs r0, 0x38 str r0, [r4, 0x14] ldr r5, _0804C184 add r5, sp movs r0, 0x4 str r0, [r5] movs r0, 0xF str r0, [r5, 0x4] movs r0, 0x1 mov r8, r0 add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 bl sub_804D084 movs r3, 0x1 ldrsb r3, [r6, r3] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 bl sub_804D154 str r5, [sp] ldrb r0, [r6, 0xD] str r0, [sp, 0x4] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 adds r3, r4, 0 bl sub_804D2D0 add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 adds r3, r6, 0 bl sub_804D5B0 str r5, [sp] mov r1, r8 str r1, [sp, 0x4] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 adds r3, r4, 0 bl sub_804D8C8 str r5, [sp] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 adds r3, r4, 0 bl sub_804E590 ldr r0, _0804C188 movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 bl sub_804EBC8 ldr r0, _0804C18C movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 bl sub_804EEE4 ldrb r3, [r6, 0x13] add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 bl sub_804CBEC add r0, sp, 0x8 movs r1, 0x5 movs r2, 0x1 bl sub_804E03C movs r3, 0xE5 lsls r3, 5 add sp, r3 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804C17C: .4byte 0xffffe360 _0804C180: .4byte 0x00001c28 _0804C184: .4byte 0x00001c64 _0804C188: .4byte gUnknown_202F1B0 _0804C18C: .4byte gUnknown_202F1B2 thumb_func_end sub_804C0A8 thumb_func_start sub_804C190 sub_804C190: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0804C2CC add sp, r4 mov r10, r0 ldr r1, _0804C2D0 add r1, sp movs r2, 0xB str r2, [r1] movs r0, 0x16 str r0, [r1, 0x4] movs r0, 0x21 str r0, [r1, 0x8] movs r0, 0x2C str r0, [r1, 0xC] ldr r1, _0804C2D4 add r1, sp movs r0, 0x2 str r0, [r1] str r2, [r1, 0x4] movs r0, 0x14 str r0, [r1, 0x8] movs r0, 0x1E str r0, [r1, 0xC] movs r0, 0x3 mov r8, r0 movs r7, 0x3 add r0, sp, 0x8 movs r1, 0x3 movs r2, 0x3 bl sub_804D084 movs r1, 0 add r5, sp, 0x50 movs r0, 0x3E add r0, sp mov r9, r0 mov r0, r10 ldrb r0, [r0, 0xD] mov r12, r0 _0804C1E6: adds r3, r1, 0x1 cmp r7, 0 beq _0804C204 lsls r0, r1, 4 subs r0, r1 movs r2, 0x1 lsls r0, 5 add r0, sp adds r0, 0x8 adds r1, r7, 0 _0804C1FA: strb r2, [r0, 0xA] adds r0, 0x20 subs r1, 0x1 cmp r1, 0 bne _0804C1FA _0804C204: adds r1, r3, 0 cmp r1, r8 blt _0804C1E6 add r0, sp, 0x8 movs r4, 0x1 strb r4, [r0, 0x8] add r0, sp, 0x3D0 strb r4, [r0] strb r4, [r5] movs r0, 0x82 lsls r0, 3 add r0, sp strb r4, [r0] ldr r6, _0804C2D0 add r6, sp ldr r5, _0804C2D4 add r5, sp str r5, [sp] mov r1, r12 str r1, [sp, 0x4] add r0, sp, 0x8 mov r1, r8 adds r2, r7, 0 adds r3, r6, 0 bl sub_804D2D0 mov r0, r9 strb r4, [r0] ldr r0, _0804C2D8 add r0, sp strb r4, [r0] ldr r0, _0804C2DC add r0, sp strb r4, [r0] ldr r0, _0804C2E0 add r0, sp strb r4, [r0] add r0, sp, 0x1FC strb r4, [r0] ldr r0, _0804C2E4 add r0, sp strb r4, [r0] add r0, sp, 0x21C strb r4, [r0] ldr r0, _0804C2E8 add r0, sp strb r4, [r0] str r5, [sp] str r4, [sp, 0x4] add r0, sp, 0x8 mov r1, r8 adds r2, r7, 0 adds r3, r6, 0 bl sub_804D8C8 str r5, [sp] add r0, sp, 0x8 mov r1, r8 adds r2, r7, 0 adds r3, r6, 0 bl sub_804E590 ldr r0, _0804C2EC movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 mov r1, r8 adds r2, r7, 0 bl sub_804EBC8 ldr r0, _0804C2F0 movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 mov r1, r8 adds r2, r7, 0 bl sub_804EEE4 mov r0, r10 ldrb r3, [r0, 0x13] add r0, sp, 0x8 mov r1, r8 adds r2, r7, 0 bl sub_804CBEC add r0, sp, 0x8 mov r1, r8 adds r2, r7, 0 bl sub_804E03C movs r3, 0xE5 lsls r3, 5 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804C2CC: .4byte 0xffffe360 _0804C2D0: .4byte 0x00001c28 _0804C2D4: .4byte 0x00001c64 _0804C2D8: .4byte 0x0000021d _0804C2DC: .4byte 0x0000021e _0804C2E0: .4byte 0x000003fd _0804C2E4: .4byte 0x0000021b _0804C2E8: .4byte 0x0000023b _0804C2EC: .4byte gUnknown_202F1B0 _0804C2F0: .4byte gUnknown_202F1B2 thumb_func_end sub_804C190 thumb_func_start sub_804C2F4 sub_804C2F4: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0804C420 add sp, r4 mov r8, r0 ldr r1, _0804C424 add r1, sp movs r0, 0x5 str r0, [r1] movs r0, 0xF str r0, [r1, 0x4] movs r0, 0x23 str r0, [r1, 0x8] movs r0, 0x32 str r0, [r1, 0xC] ldr r1, _0804C428 add r1, sp movs r0, 0x2 str r0, [r1] movs r0, 0xB str r0, [r1, 0x4] movs r0, 0x14 str r0, [r1, 0x8] movs r0, 0x1E str r0, [r1, 0xC] movs r7, 0x3 movs r6, 0x3 add r0, sp, 0x8 movs r1, 0x3 movs r2, 0x3 bl sub_804D084 movs r1, 0 mov r0, r8 ldrb r4, [r0, 0xD] _0804C33C: adds r3, r1, 0x1 cmp r6, 0 beq _0804C35A lsls r0, r1, 4 subs r0, r1 movs r2, 0x1 lsls r0, 5 add r0, sp adds r0, 0x8 adds r1, r6, 0 _0804C350: strb r2, [r0, 0xA] adds r0, 0x20 subs r1, 0x1 cmp r1, 0 bne _0804C350 _0804C35A: adds r1, r3, 0 cmp r1, r7 blt _0804C33C ldr r3, _0804C424 add r3, sp ldr r0, _0804C428 add r0, sp str r0, [sp] str r4, [sp, 0x4] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804D2D0 movs r4, 0x1 ldr r3, _0804C42C add r3, sp ldr r0, _0804C430 add r0, sp add r2, sp, 0x8 movs r1, 0x2 _0804C384: strb r4, [r2, 0x16] strb r4, [r0] strb r4, [r0, 0x1] strb r4, [r3] adds r3, 0x20 adds r0, 0x20 adds r2, 0x20 subs r1, 0x1 cmp r1, 0 bge _0804C384 ldr r5, _0804C424 add r5, sp ldr r4, _0804C428 add r4, sp str r4, [sp] movs r0, 0x1 str r0, [sp, 0x4] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 adds r3, r5, 0 bl sub_804D8C8 movs r0, 0x1 movs r1, 0 movs r2, 0x1 add r3, sp, 0x8 bl sub_804C43C movs r0, 0x1 movs r1, 0 movs r2, 0x2 add r3, sp, 0x8 bl sub_804C43C str r4, [sp] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 adds r3, r5, 0 bl sub_804E590 ldr r0, _0804C434 movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804EBC8 ldr r0, _0804C438 movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804EEE4 mov r0, r8 ldrb r3, [r0, 0x13] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804CBEC add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804E03C movs r3, 0xE5 lsls r3, 5 add sp, r3 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804C420: .4byte 0xffffe360 _0804C424: .4byte 0x00001c28 _0804C428: .4byte 0x00001c64 _0804C42C: .4byte 0x000003dd _0804C430: .4byte 0x000001fd _0804C434: .4byte gUnknown_202F1B0 _0804C438: .4byte gUnknown_202F1B2 thumb_func_end sub_804C2F4 thumb_func_start sub_804C43C sub_804C43C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 str r0, [sp] str r3, [sp, 0x4] lsls r7, r1, 5 lsls r0, 4 str r0, [sp, 0xC] ldr r3, [sp] subs r0, r3 lsls r0, 5 ldr r4, [sp, 0x4] adds r0, r4 adds r3, r7, r0 adds r6, r1, r2 lsls r1, r6, 5 adds r2, r1, r0 movs r5, 0 ldrsh r1, [r2, r5] adds r4, r1, 0 ldrh r0, [r3] mov r8, r0 movs r5, 0 ldrsh r0, [r3, r5] cmp r1, r0 ble _0804C478 mov r4, r8 _0804C478: lsls r0, r4, 16 asrs r0, 16 str r0, [sp, 0x8] movs r1, 0x2 ldrsh r0, [r3, r1] mov r10, r0 movs r4, 0x4 ldrsh r1, [r2, r4] adds r4, r1, 0 ldrh r5, [r3, 0x4] mov r8, r5 movs r5, 0x4 ldrsh r0, [r3, r5] cmp r1, r0 bge _0804C498 mov r4, r8 _0804C498: lsls r0, r4, 16 asrs r0, 16 str r0, [sp, 0x10] movs r1, 0x6 ldrsh r0, [r2, r1] mov r8, r0 movs r2, 0 ldrsh r0, [r3, r2] mov r1, r10 bl sub_804954C ldrb r0, [r0, 0x9] mov r9, r0 ldr r5, [sp, 0x8] str r7, [sp, 0x1C] ldr r3, [sp, 0xC] str r3, [sp, 0x18] str r6, [sp, 0x14] ldr r4, [sp, 0x10] cmp r5, r4 bge _0804C4F2 _0804C4C2: mov r4, r10 adds r6, r5, 0x1 cmp r10, r8 bge _0804C4EA ldr r0, _0804C538 adds r7, r0, 0 _0804C4CE: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r1, [r0] ands r1, r7 movs r2, 0x1 orrs r1, r2 strh r1, [r0] mov r1, r9 strb r1, [r0, 0x9] adds r4, 0x1 cmp r4, r8 blt _0804C4CE _0804C4EA: adds r5, r6, 0 ldr r2, [sp, 0x10] cmp r5, r2 blt _0804C4C2 _0804C4F2: ldr r3, [sp, 0x18] ldr r4, [sp] subs r1, r3, r4 lsls r1, 5 ldr r5, [sp, 0x4] adds r1, r5 ldr r0, [sp, 0x1C] adds r2, r0, r1 movs r3, 0 mov r4, sp ldrh r4, [r4, 0x8] strh r4, [r2] mov r5, sp ldrh r5, [r5, 0x10] strh r5, [r2, 0x4] mov r0, r10 strh r0, [r2, 0x2] mov r4, r8 strh r4, [r2, 0x6] ldr r5, [sp, 0x14] lsls r0, r5, 5 adds r0, r1 movs r1, 0x1 strb r1, [r0, 0x12] strb r1, [r2, 0x12] strb r3, [r0, 0xB] strb r1, [r0, 0x11] add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804C538: .4byte 0x0000fffc thumb_func_end sub_804C43C thumb_func_start sub_804C53C sub_804C53C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0804C6F8 add sp, r4 mov r10, r2 adds r7, r0, 0 adds r6, r1, 0 ldr r0, _0804C6FC add r0, sp ldr r1, _0804C700 add r1, sp adds r2, r7, 0 adds r3, r6, 0 bl sub_804D024 add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804D084 movs r2, 0 cmp r2, r7 bge _0804C594 _0804C570: adds r3, r2, 0x1 cmp r6, 0 ble _0804C58E lsls r0, r2, 4 subs r0, r2 movs r2, 0x1 lsls r0, 5 add r0, sp adds r0, 0x8 adds r1, r6, 0 _0804C584: strb r2, [r0, 0xA] adds r0, 0x20 subs r1, 0x1 cmp r1, 0 bne _0804C584 _0804C58E: adds r2, r3, 0 cmp r2, r7 blt _0804C570 _0804C594: movs r2, 0x1 subs r0, r7, 0x1 mov r8, r0 subs r1, r6, 0x1 mov r9, r1 mov r0, r10 ldrb r0, [r0, 0xD] mov r12, r0 cmp r2, r8 bge _0804C5D2 mov r4, r9 mov r5, r8 _0804C5AC: adds r3, r2, 0x1 cmp r4, 0x1 ble _0804C5CC lsls r0, r2, 4 subs r0, r2 movs r2, 0x1 lsls r0, 5 add r0, sp adds r0, 0x8 adds r0, 0x20 subs r1, r4, 0x1 _0804C5C2: strb r2, [r0, 0x8] adds r0, 0x20 subs r1, 0x1 cmp r1, 0 bne _0804C5C2 _0804C5CC: adds r2, r3, 0 cmp r2, r5 blt _0804C5AC _0804C5D2: ldr r3, _0804C6FC add r3, sp ldr r0, _0804C700 add r0, sp str r0, [sp] mov r1, r12 str r1, [sp, 0x4] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804D2D0 movs r2, 0 cmp r2, r8 bge _0804C636 movs r4, 0x1 mov r0, r9 lsls r5, r0, 5 subs r1, r7, 0x2 mov r12, r1 _0804C5FA: cmp r2, 0 beq _0804C614 lsls r0, r2, 4 subs r0, r2 lsls r0, 5 mov r1, sp adds r1, r0 adds r1, 0x8 strb r4, [r1, 0x16] adds r0, r5, r0 add r0, sp adds r0, 0x8 strb r4, [r0, 0x16] _0804C614: adds r3, r2, 0x1 cmp r2, r12 bge _0804C630 lsls r0, r3, 4 subs r0, r3 lsls r0, 5 mov r1, sp adds r1, r0 adds r1, 0x8 strb r4, [r1, 0x15] adds r0, r5, r0 add r0, sp adds r0, 0x8 strb r4, [r0, 0x15] _0804C630: adds r2, r3, 0 cmp r2, r8 blt _0804C5FA _0804C636: movs r1, 0 cmp r1, r9 bge _0804C66A movs r3, 0x1 mov r2, r8 lsls r0, r2, 4 subs r0, r2 lsls r0, 5 add r0, sp adds r0, 0x8 add r2, sp, 0x8 subs r5, r6, 0x2 mov r4, r9 _0804C650: cmp r1, 0 beq _0804C658 strb r3, [r2, 0x13] strb r3, [r0, 0x13] _0804C658: cmp r1, r5 bge _0804C660 strb r3, [r2, 0x14] strb r3, [r0, 0x14] _0804C660: adds r0, 0x20 adds r2, 0x20 adds r1, 0x1 cmp r1, r4 blt _0804C650 _0804C66A: ldr r5, _0804C6FC add r5, sp ldr r4, _0804C700 add r4, sp str r4, [sp] movs r0, 0 str r0, [sp, 0x4] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 adds r3, r5, 0 bl sub_804D8C8 str r4, [sp] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 adds r3, r5, 0 bl sub_804E590 mov r0, r10 ldrb r3, [r0, 0x9] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804F0D0 ldr r0, _0804C704 movs r1, 0 ldrsh r3, [r0, r1] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804EBC8 ldr r0, _0804C708 movs r2, 0 ldrsh r3, [r0, r2] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804EEE4 mov r0, r10 ldrb r3, [r0, 0x13] add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804CBEC add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804E03C add r0, sp, 0x8 adds r1, r7, 0 adds r2, r6, 0 bl sub_804D534 movs r3, 0xE5 lsls r3, 5 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804C6F8: .4byte 0xffffe360 _0804C6FC: .4byte 0x00001c28 _0804C700: .4byte 0x00001c64 _0804C704: .4byte gUnknown_202F1B0 _0804C708: .4byte gUnknown_202F1B2 thumb_func_end sub_804C53C thumb_func_start sub_804C70C sub_804C70C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r7, r0, 0 mov r8, r1 ldr r0, _0804C73C ldr r0, [r0] ldr r1, _0804C740 adds r0, r1 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r7, 2 adds r0, r1 ldr r0, [r0] ldrb r5, [r0] ldrb r6, [r0, 0x1] cmp r5, 0 beq _0804C736 cmp r6, 0 bne _0804C744 _0804C736: bl sub_804C918 b _0804C782 .align 2, 0 _0804C73C: .4byte gUnknown_203B418 _0804C740: .4byte 0x00013568 _0804C744: cmp r7, 0x31 bgt _0804C752 adds r0, r7, 0 bl sub_8051288 movs r0, 0x1 b _0804C784 _0804C752: adds r1, r5, 0x4 movs r0, 0x38 bl __divsi3 adds r4, r0, 0 cmp r4, 0x1 bgt _0804C762 movs r4, 0x1 _0804C762: adds r1, r6, 0x4 movs r0, 0x20 bl __divsi3 adds r1, r0, 0 cmp r1, 0x1 bgt _0804C772 movs r1, 0x1 _0804C772: str r7, [sp] mov r0, r8 str r0, [sp, 0x4] adds r0, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_804C790 _0804C782: movs r0, 0 _0804C784: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_804C70C thumb_func_start sub_804C790 sub_804C790: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0804C81C add sp, r4 adds r5, r0, 0 adds r4, r1, 0 ldr r0, _0804C820 add r0, sp str r2, [r0] ldr r1, _0804C824 add r1, sp str r3, [r1] movs r2, 0 mov r10, r2 mov r8, r2 ldr r0, _0804C828 add r0, sp ldr r1, _0804C82C add r1, sp adds r2, r5, 0 adds r3, r4, 0 bl sub_804D024 add r0, sp, 0x10 adds r1, r5, 0 adds r2, r4, 0 bl sub_804D084 ldr r0, _0804C830 add r0, sp ldr r0, [r0] movs r3, 0x1 ldrsb r3, [r0, r3] add r0, sp, 0x10 adds r1, r5, 0 adds r2, r4, 0 bl sub_804D154 mov r6, r8 cmp r8, r5 bge _0804C818 _0804C7E8: movs r1, 0 mov r8, r1 adds r2, r6, 0x1 cmp r8, r4 bge _0804C812 lsls r0, r6, 4 subs r0, r6 movs r1, 0x1 lsls r0, 5 add r0, sp adds r0, 0x10 mov r8, r4 _0804C800: strb r1, [r0, 0x1B] adds r0, 0x20 movs r3, 0x1 negs r3, r3 add r8, r3 mov r3, r8 cmp r3, 0 bne _0804C800 mov r8, r4 _0804C812: adds r6, r2, 0 cmp r6, r5 blt _0804C7E8 _0804C818: movs r7, 0 b _0804C836 .align 2, 0 _0804C81C: .4byte 0xffffe350 _0804C820: .4byte 0x00001ca8 _0804C824: .4byte 0x00001cac _0804C828: .4byte 0x00001c30 _0804C82C: .4byte 0x00001c6c _0804C830: .4byte 0x00001cd4 _0804C834: adds r7, 0x1 _0804C836: cmp r7, 0x3F bgt _0804C864 adds r0, r5, 0 bl sub_8084100 adds r6, r0, 0 adds r0, r4, 0 bl sub_8084100 mov r8, r0 mov r0, r8 muls r0, r5 adds r0, r6 mov r10, r0 lsls r0, r6, 4 subs r0, r6 add r0, r8 lsls r0, 5 add r0, sp adds r0, 0x10 ldrb r0, [r0, 0xA] cmp r0, 0 beq _0804C834 _0804C864: ldr r0, _0804C8FC add r0, sp mov r9, r0 ldr r7, _0804C900 add r7, sp str r7, [sp] mov r1, r10 str r1, [sp, 0x4] ldr r2, _0804C904 add r2, sp ldr r2, [r2] str r2, [sp, 0x8] ldr r3, _0804C908 add r3, sp ldr r3, [r3] str r3, [sp, 0xC] add r0, sp, 0x10 adds r1, r5, 0 adds r2, r4, 0 mov r3, r9 bl sub_8050F90 cmp r5, 0x1 bne _0804C898 cmp r4, 0x1 beq _0804C8D0 _0804C898: mov r0, r8 str r0, [sp] ldr r1, _0804C90C add r1, sp ldr r1, [r1] str r1, [sp, 0x4] add r0, sp, 0x10 adds r1, r5, 0 adds r2, r4, 0 adds r3, r6, 0 bl sub_804D5F0 str r7, [sp] movs r0, 0x1 str r0, [sp, 0x4] add r0, sp, 0x10 adds r1, r5, 0 adds r2, r4, 0 mov r3, r9 bl sub_804D8C8 str r7, [sp] add r0, sp, 0x10 adds r1, r5, 0 adds r2, r4, 0 mov r3, r9 bl sub_804E590 _0804C8D0: lsls r0, r6, 4 subs r0, r6 lsls r0, 5 add r0, sp adds r0, 0x10 mov r2, r8 lsls r1, r2, 5 adds r0, r1 ldr r3, _0804C910 add r3, sp ldr r1, [r3] bl sub_8051438 ldr r3, _0804C914 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804C8FC: .4byte 0x00001c30 _0804C900: .4byte 0x00001c6c _0804C904: .4byte 0x00001ca8 _0804C908: .4byte 0x00001cac _0804C90C: .4byte 0x00001cd4 _0804C910: .4byte 0x00001cd0 _0804C914: .4byte 0x00001cb0 thumb_func_end sub_804C790 thumb_func_start sub_804C918 sub_804C918: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r4, _0804C9C4 add sp, r4 mov r0, sp movs r1, 0x1 movs r2, 0x1 bl sub_804D084 mov r0, sp movs r3, 0 movs r2, 0x2 strh r2, [r0] mov r1, sp movs r0, 0x36 strh r0, [r1, 0x4] mov r0, sp strh r2, [r0, 0x2] movs r0, 0x1E strh r0, [r1, 0x6] mov r0, sp movs r1, 0x1 strb r1, [r0, 0xA] strb r1, [r0, 0xB] strb r3, [r0, 0x8] movs r1, 0 ldrsh r5, [r0, r1] movs r2, 0x4 ldrsh r0, [r0, r2] cmp r5, r0 bge _0804C9A6 mov r6, sp _0804C95C: movs r0, 0x2 ldrsh r4, [r6, r0] movs r1, 0x6 ldrsh r0, [r6, r1] adds r7, r5, 0x1 cmp r4, r0 bge _0804C99C movs r2, 0 mov r9, r2 ldr r0, _0804C9C8 mov r8, r0 _0804C972: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r1, [r0] mov r2, r8 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 mov r1, r9 strb r1, [r0, 0x9] adds r4, 0x1 movs r2, 0x6 ldrsh r0, [r6, r2] cmp r4, r0 blt _0804C972 _0804C99C: adds r5, r7, 0 movs r1, 0x4 ldrsh r0, [r6, r1] cmp r5, r0 blt _0804C95C _0804C9A6: ldr r3, _0804C9CC mov r0, sp movs r1, 0x1 movs r2, 0x1 bl sub_804EEE4 movs r3, 0xE1 lsls r3, 5 add sp, r3 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804C9C4: .4byte 0xffffe3e0 _0804C9C8: .4byte 0x0000fffc _0804C9CC: .4byte 0x000003e7 thumb_func_end sub_804C918 thumb_func_start sub_804C9D0 sub_804C9D0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0804CBB4 add sp, r4 movs r0, 0 movs r1, 0xE5 lsls r1, 5 add r1, sp str r0, [r1] ldr r1, _0804CBB8 add r1, sp movs r2, 0x2 str r2, [r1] movs r0, 0x1C str r0, [r1, 0x4] movs r0, 0x36 str r0, [r1, 0x8] ldr r1, _0804CBBC add r1, sp str r2, [r1] movs r0, 0x1E str r0, [r1, 0x4] add r0, sp, 0x8 movs r1, 0x2 movs r2, 0x1 bl sub_804D084 movs r0, 0 ldr r2, _0804CBB8 add r2, sp ldr r3, _0804CBC0 add r3, sp str r2, [r3] ldr r4, _0804CBBC add r4, sp ldr r1, _0804CBC4 add r1, sp str r4, [r1] _0804CA22: movs r7, 0 lsls r2, r0, 2 ldr r3, _0804CBC8 add r3, sp str r2, [r3] adds r4, r0, 0x1 ldr r1, _0804CBCC add r1, sp str r4, [r1] lsls r0, 5 ldr r2, _0804CBD0 add r2, sp str r0, [r2] _0804CA3C: lsls r0, r7, 2 ldr r3, _0804CBC0 add r3, sp ldr r3, [r3] adds r0, r3, r0 ldr r1, [r0] adds r4, r1, 0x1 mov r10, r4 ldr r2, _0804CBC4 add r2, sp ldr r2, [r2] ldr r3, _0804CBC8 add r3, sp ldr r3, [r3] adds r0, r2, r3 ldr r2, [r0] adds r4, r2, 0x1 ldr r0, _0804CBD4 add r0, sp str r4, [r0] adds r3, r7, 0x1 mov r9, r3 lsls r0, r3, 2 ldr r4, _0804CBC0 add r4, sp ldr r4, [r4] adds r0, r4, r0 ldr r4, [r0] subs r4, r1 subs r4, 0x3 ldr r1, _0804CBCC add r1, sp ldr r1, [r1] lsls r0, r1, 2 ldr r3, _0804CBC4 add r3, sp ldr r3, [r3] adds r0, r3, r0 ldr r5, [r0] subs r5, r2 subs r5, 0x3 movs r0, 0xA adds r1, r4, 0 bl sub_808411C mov r8, r0 movs r0, 0x10 adds r1, r5, 0 bl sub_808411C adds r6, r0, 0 mov r0, r8 subs r4, r0 adds r0, r4, 0 bl sub_8084100 adds r4, r0, 0 add r4, r10 subs r5, r6 adds r0, r5, 0 bl sub_8084100 ldr r2, _0804CBD4 add r2, sp ldr r1, [r2] adds r1, r0 mov r10, r1 mov r0, r8 adds r3, r4, r0 add r6, r10 lsls r0, r7, 4 subs r0, r7 lsls r0, 5 ldr r1, _0804CBD0 add r1, sp ldr r1, [r1] adds r0, r1, r0 add r0, sp adds r0, 0x8 movs r1, 0x1 strb r1, [r0, 0xA] strh r4, [r0] strh r3, [r0, 0x4] mov r2, r10 strh r2, [r0, 0x2] strh r6, [r0, 0x6] mov r0, r9 ldr r1, _0804CBD8 add r1, sp str r0, [r1] movs r0, 0xE5 lsls r0, 5 add r0, sp ldr r2, [r0] adds r2, 0x1 mov r9, r2 cmp r4, r3 bge _0804CB4E _0804CB00: mov r5, r10 adds r7, r4, 0x1 cmp r5, r6 bge _0804CB48 ldr r1, _0804CBDC mov r8, r1 _0804CB0C: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xE6 lsls r2, 5 add r2, sp str r3, [r2] bl sub_8049590 ldrh r1, [r0] mov r2, r8 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 movs r1, 0xE5 lsls r1, 5 add r1, sp ldrb r1, [r1] strb r1, [r0, 0x9] adds r5, 0x1 movs r2, 0xE6 lsls r2, 5 add r2, sp ldr r3, [r2] cmp r5, r6 blt _0804CB0C _0804CB48: adds r4, r7, 0 cmp r4, r3 blt _0804CB00 _0804CB4E: mov r3, r9 movs r4, 0xE5 lsls r4, 5 add r4, sp str r3, [r4] ldr r0, _0804CBD8 add r0, sp ldr r7, [r0] cmp r7, 0x1 bgt _0804CB64 b _0804CA3C _0804CB64: ldr r1, _0804CBCC add r1, sp ldr r0, [r1] cmp r0, 0 bgt _0804CB70 b _0804CA22 _0804CB70: add r0, sp, 0x8 movs r2, 0 movs r1, 0x1 strb r1, [r0, 0x16] ldr r0, _0804CBE0 add r0, sp strb r1, [r0] ldr r3, _0804CBB8 add r3, sp ldr r0, _0804CBBC add r0, sp str r0, [sp] str r2, [sp, 0x4] add r0, sp, 0x8 movs r1, 0x2 movs r2, 0x1 bl sub_804D8C8 ldr r3, _0804CBE4 add r0, sp, 0x8 movs r1, 0x2 movs r2, 0x1 bl sub_804EEE4 ldr r3, _0804CBE8 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804CBB4: .4byte 0xffffe33c _0804CBB8: .4byte 0x00001c28 _0804CBBC: .4byte 0x00001c64 _0804CBC0: .4byte 0x00001ca4 _0804CBC4: .4byte 0x00001cac _0804CBC8: .4byte 0x00001cb0 _0804CBCC: .4byte 0x00001cbc _0804CBD0: .4byte 0x00001cb4 _0804CBD4: .4byte 0x00001ca8 _0804CBD8: .4byte 0x00001cb8 _0804CBDC: .4byte 0x0000fffc _0804CBE0: .4byte 0x000001fd _0804CBE4: .4byte 0x000003e7 _0804CBE8: .4byte 0x00001cc4 thumb_func_end sub_804C9D0 thumb_func_start sub_804CBEC sub_804CBEC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 str r0, [sp] str r1, [sp, 0x4] str r2, [sp, 0x8] str r3, [sp, 0xC] cmp r3, 0 bne _0804CC06 b _0804D006 _0804CC06: movs r5, 0 cmp r5, r3 blt _0804CC0E b _0804D006 _0804CC0E: ldr r0, [sp, 0x4] bl sub_8084100 mov r9, r0 ldr r0, [sp, 0x8] bl sub_8084100 mov r10, r0 lsls r0, 5 mov r2, r9 lsls r1, r2, 4 subs r1, r2 lsls r1, 5 ldr r3, [sp] adds r1, r3 adds r4, r0, r1 ldrb r0, [r4, 0xA] adds r5, 0x1 str r5, [sp, 0x18] cmp r0, 0 bne _0804CC3A b _0804CFFC _0804CC3A: ldrb r0, [r4, 0xB] cmp r0, 0 bne _0804CC42 b _0804CFFC _0804CC42: ldrb r0, [r4, 0x8] cmp r0, 0 beq _0804CC4A b _0804CFFC _0804CC4A: ldrb r0, [r4, 0x10] cmp r0, 0 beq _0804CC52 b _0804CFFC _0804CC52: movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x4 ldrsh r1, [r4, r2] bl sub_808411C adds r7, r0, 0 movs r3, 0x2 ldrsh r0, [r4, r3] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_808411C adds r6, r0, 0 movs r0, 0x4 bl sub_8084100 lsls r0, 1 mov r8, r0 ldr r1, [sp, 0x8] subs r1, 0x1 movs r3, 0x2 str r3, [sp, 0x10] ldr r0, [sp, 0x4] subs r0, 0x1 _0804CC84: mov r2, r8 cmp r2, 0 bne _0804CC92 cmp r10, r1 blt _0804CC92 movs r3, 0x2 mov r8, r3 _0804CC92: mov r2, r8 cmp r2, 0x2 bne _0804CCA0 cmp r9, r0 blt _0804CCA0 movs r3, 0x4 mov r8, r3 _0804CCA0: mov r2, r8 cmp r2, 0x4 bne _0804CCB0 mov r3, r10 cmp r3, 0 bgt _0804CCB0 movs r2, 0x6 mov r8, r2 _0804CCB0: mov r3, r8 cmp r3, 0x6 bne _0804CCC0 mov r2, r9 cmp r2, 0 bgt _0804CCC0 movs r3, 0 mov r8, r3 _0804CCC0: ldr r2, [sp, 0x10] subs r2, 0x1 str r2, [sp, 0x10] cmp r2, 0 bge _0804CC84 adds r0, r7, 0 adds r1, r6, 0 bl sub_804954C ldrb r5, [r0, 0x9] ldr r1, _0804CCE0 mov r3, r8 lsls r0, r3, 2 adds r4, r0, r1 b _0804CCF0 .align 2, 0 _0804CCE0: .4byte gUnknown_80F4448 _0804CCE4: movs r1, 0 ldrsh r0, [r4, r1] adds r7, r0 movs r2, 0x2 ldrsh r0, [r4, r2] adds r6, r0 _0804CCF0: adds r0, r7, 0 adds r1, r6, 0 bl sub_804954C ldrb r0, [r0, 0x9] cmp r5, r0 beq _0804CCE4 ldr r1, _0804CD08 mov r3, r8 lsls r0, r3, 2 adds r4, r0, r1 b _0804CD18 .align 2, 0 _0804CD08: .4byte gUnknown_80F4448 _0804CD0C: movs r1, 0 ldrsh r0, [r4, r1] adds r7, r0 movs r2, 0x2 ldrsh r0, [r4, r2] adds r6, r0 _0804CD18: adds r0, r7, 0 adds r1, r6, 0 bl sub_804954C ldrh r1, [r0] movs r5, 0x3 adds r0, r5, 0 ands r0, r1 cmp r0, 0x1 beq _0804CD0C adds r0, r7, 0 adds r1, r6, 0 bl sub_804954C ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0x2 bne _0804CD40 b _0804CFFC _0804CD40: movs r3, 0 subs r2, r7, 0x2 adds r4, r7, 0x2 b _0804CD4A _0804CD48: adds r2, 0x1 _0804CD4A: cmp r2, r4 bgt _0804CD6C subs r0, r6, 0x2 adds r1, r6, 0x2 b _0804CD56 _0804CD54: adds r0, 0x1 _0804CD56: cmp r0, r1 bgt _0804CD68 cmp r2, 0x37 bhi _0804CD66 cmp r0, 0 blt _0804CD66 cmp r0, 0x1F ble _0804CD54 _0804CD66: movs r3, 0x1 _0804CD68: cmp r3, 0 beq _0804CD48 _0804CD6C: cmp r3, 0 beq _0804CD72 b _0804CFFC _0804CD72: ldr r2, _0804CDD4 mov r1, r8 adds r1, 0x2 movs r4, 0x6 ands r1, r4 lsls r1, 2 adds r1, r2 movs r3, 0 ldrsh r0, [r1, r3] movs r3, 0x2 ldrsh r1, [r1, r3] adds r0, r7, r0 adds r1, r6, r1 str r2, [sp, 0x1C] bl sub_804954C ldrh r1, [r0] movs r5, 0x3 adds r0, r5, 0 ands r0, r1 ldr r2, [sp, 0x1C] cmp r0, 0x1 bne _0804CDA2 b _0804CFFC _0804CDA2: mov r1, r8 subs r1, 0x2 ands r1, r4 lsls r1, 2 adds r1, r2 movs r2, 0 ldrsh r0, [r1, r2] movs r3, 0x2 ldrsh r1, [r1, r3] adds r0, r7, r0 adds r1, r6, r1 bl sub_804954C ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0x1 bne _0804CDC8 b _0804CFFC _0804CDC8: movs r0, 0x3 bl sub_8084100 adds r0, 0x3 str r0, [sp, 0x10] b _0804CFD4 .align 2, 0 _0804CDD4: .4byte gUnknown_80F4448 _0804CDD8: adds r0, r7, 0 adds r1, r6, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0804CDEC b _0804CFFC _0804CDEC: movs r0, 0x1 str r0, [sp, 0x14] adds r4, r7, 0x1 adds r0, r4, 0 adds r1, r6, 0 bl sub_804954C ldrh r1, [r0] mov r0, r10 ands r0, r1 mov r9, r4 cmp r0, 0x1 bne _0804CE32 adds r5, r6, 0x1 adds r0, r4, 0 adds r1, r5, 0 bl sub_804954C ldrh r0, [r0] mov r4, r10 ands r4, r0 cmp r4, 0x1 bne _0804CE32 adds r0, r7, 0 adds r1, r5, 0 bl sub_804954C ldrh r0, [r0] mov r1, r10 ands r0, r1 eors r0, r4 negs r1, r0 orrs r1, r0 lsrs r1, 31 str r1, [sp, 0x14] _0804CE32: mov r0, r9 adds r1, r6, 0 bl sub_804954C ldrh r1, [r0] movs r5, 0x3 adds r0, r5, 0 ands r0, r1 cmp r0, 0x1 bne _0804CE70 subs r4, r6, 0x1 mov r0, r9 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0x1 bne _0804CE70 adds r0, r7, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0x1 bne _0804CE70 movs r2, 0 str r2, [sp, 0x14] _0804CE70: subs r4, r7, 0x1 adds r0, r4, 0 adds r1, r6, 0 bl sub_804954C ldrh r1, [r0] movs r2, 0x3 adds r0, r2, 0 ands r0, r1 cmp r0, 0x1 bne _0804CEB6 adds r5, r6, 0x1 adds r0, r4, 0 adds r1, r5, 0 str r2, [sp, 0x1C] bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x1C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x1 bne _0804CEB6 adds r0, r7, 0 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x1C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x1 bne _0804CEB6 movs r3, 0 str r3, [sp, 0x14] _0804CEB6: adds r0, r4, 0 adds r1, r6, 0 bl sub_804954C ldrh r1, [r0] movs r2, 0x3 adds r0, r2, 0 ands r0, r1 cmp r0, 0x1 bne _0804CEFA subs r5, r6, 0x1 adds r0, r4, 0 adds r1, r5, 0 str r2, [sp, 0x1C] bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x1C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x1 bne _0804CEFA adds r0, r7, 0 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x1C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x1 bne _0804CEFA movs r0, 0 str r0, [sp, 0x14] _0804CEFA: ldr r1, [sp, 0x14] cmp r1, 0 beq _0804CF16 adds r0, r7, 0 adds r1, r6, 0 bl sub_8049590 ldrh r1, [r0] ldr r3, _0804D018 adds r2, r3, 0 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] _0804CF16: ldr r2, _0804D01C movs r0, 0x2 add r0, r8 mov r9, r0 movs r1, 0x6 mov r10, r1 mov r1, r9 mov r3, r10 ands r1, r3 lsls r1, 2 adds r1, r2 movs r3, 0 ldrsh r0, [r1, r3] movs r3, 0x2 ldrsh r1, [r1, r3] adds r0, r7, r0 adds r1, r6, r1 str r2, [sp, 0x1C] bl sub_804954C ldrh r1, [r0] movs r5, 0x3 adds r0, r5, 0 ands r0, r1 ldr r2, [sp, 0x1C] cmp r0, 0x1 beq _0804CFFC mov r4, r8 subs r4, 0x2 adds r1, r4, 0 mov r0, r10 ands r1, r0 lsls r1, 2 adds r1, r2 movs r2, 0 ldrsh r0, [r1, r2] movs r3, 0x2 ldrsh r1, [r1, r3] adds r0, r7, r0 adds r1, r6, r1 bl sub_804954C ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0x1 beq _0804CFFC ldr r0, [sp, 0x10] subs r0, 0x1 str r0, [sp, 0x10] cmp r0, 0 bne _0804CFC0 movs r0, 0x3 bl sub_8084100 adds r0, 0x3 str r0, [sp, 0x10] movs r0, 0x64 bl sub_8084100 mov r8, r4 cmp r0, 0x31 bgt _0804CF96 mov r8, r9 _0804CF96: mov r1, r8 mov r2, r10 ands r1, r2 mov r8, r1 cmp r7, 0x1F ble _0804CFAE ldr r0, _0804D020 ldrb r0, [r0] cmp r0, 0x1 bne _0804CFAE cmp r1, 0x2 beq _0804CFFC _0804CFAE: cmp r7, 0x2F ble _0804CFC0 ldr r0, _0804D020 ldrb r0, [r0] cmp r0, 0x2 bne _0804CFC0 mov r3, r8 cmp r3, 0x2 beq _0804CFFC _0804CFC0: ldr r0, _0804D01C mov r2, r8 lsls r1, r2, 2 adds r1, r0 movs r3, 0 ldrsh r0, [r1, r3] adds r7, r0 movs r2, 0x2 ldrsh r0, [r1, r2] adds r6, r0 _0804CFD4: cmp r7, 0x1 ble _0804CFFC cmp r6, 0x1 ble _0804CFFC cmp r7, 0x36 bgt _0804CFFC cmp r6, 0x1E bgt _0804CFFC adds r0, r7, 0 adds r1, r6, 0 bl sub_804954C ldrh r1, [r0] movs r3, 0x3 mov r10, r3 mov r0, r10 ands r0, r1 cmp r0, 0x1 beq _0804CFFC b _0804CDD8 _0804CFFC: ldr r5, [sp, 0x18] ldr r0, [sp, 0xC] cmp r5, r0 bge _0804D006 b _0804CC0E _0804D006: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804D018: .4byte 0x0000fffc _0804D01C: .4byte gUnknown_80F4448 _0804D020: .4byte gUnknown_202F1AE thumb_func_end sub_804CBEC thumb_func_start sub_804D024 sub_804D024: push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 mov r8, r1 adds r5, r2, 0 adds r6, r3, 0 movs r4, 0 cmp r4, r5 bge _0804D04E movs r0, 0x38 adds r1, r5, 0 bl __divsi3 adds r2, r7, 0 adds r1, r5, 0 _0804D044: stm r2!, {r4} adds r4, r0 subs r1, 0x1 cmp r1, 0 bne _0804D044 _0804D04E: lsls r0, r5, 2 adds r0, r7 str r4, [r0] movs r4, 0 lsls r5, r6, 2 cmp r4, r6 bge _0804D072 movs r0, 0x20 adds r1, r6, 0 bl __divsi3 mov r2, r8 adds r1, r6, 0 _0804D068: stm r2!, {r4} adds r4, r0 subs r1, 0x1 cmp r1, 0 bne _0804D068 _0804D072: mov r1, r8 adds r0, r5, r1 str r4, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804D024 thumb_func_start sub_804D084 sub_804D084: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r8, r0 adds r5, r1, 0 mov r9, r2 movs r2, 0 cmp r2, r5 bge _0804D144 lsrs r0, r5, 31 adds r0, r5, r0 asrs r0, 1 str r0, [sp] movs r3, 0 _0804D0A6: adds r0, r2, 0x1 mov r10, r0 mov r4, r9 cmp r4, 0 ble _0804D13E ldr r6, _0804D0D8 ldrb r6, [r6] str r6, [sp, 0x4] lsls r0, r2, 4 subs r0, r2 lsls r0, 5 mov r4, r8 adds r1, r0, r4 movs r7, 0 movs r6, 0x1 mov r12, r6 mov r4, r9 _0804D0C8: ldr r0, [sp, 0x4] cmp r0, 0x1 bne _0804D0DC ldr r6, [sp] cmp r2, r6 blt _0804D0DC strb r0, [r1, 0x8] b _0804D102 .align 2, 0 _0804D0D8: .4byte gUnknown_202F1AE _0804D0DC: ldr r6, _0804D0FC ldrb r0, [r6] cmp r0, 0x2 bne _0804D100 lsls r0, r5, 1 adds r0, r5 cmp r0, 0 bge _0804D0EE adds r0, 0x3 _0804D0EE: asrs r0, 2 cmp r2, r0 blt _0804D100 mov r0, r12 strb r0, [r1, 0x8] b _0804D102 .align 2, 0 _0804D0FC: .4byte gUnknown_202F1AE _0804D100: strb r3, [r1, 0x8] _0804D102: lsls r0, r2, 4 subs r0, r2 lsls r0, 5 add r0, r8 adds r0, r7, r0 mov r6, r12 strb r6, [r0, 0xA] strb r3, [r0, 0xB] strb r3, [r0, 0xF] strb r3, [r0, 0xE] strb r3, [r0, 0xC] strb r3, [r0, 0x16] strb r3, [r0, 0x15] strb r3, [r0, 0x14] strb r3, [r0, 0x13] strb r3, [r0, 0x1A] strb r3, [r0, 0x19] strb r3, [r0, 0x18] strb r3, [r0, 0x17] strb r3, [r0, 0x9] strb r3, [r0, 0x11] strb r3, [r0, 0x10] strb r3, [r0, 0x12] strb r3, [r0, 0x1C] strb r3, [r0, 0x1D] adds r1, 0x20 adds r7, 0x20 subs r4, 0x1 cmp r4, 0 bne _0804D0C8 _0804D13E: mov r2, r10 cmp r2, r5 blt _0804D0A6 _0804D144: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804D084 thumb_func_start sub_804D154 sub_804D154: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x114 str r0, [sp, 0x100] mov r9, r1 mov r8, r2 adds r4, r3, 0 movs r0, 0x3 bl sub_8084100 adds r3, r0, 0 cmp r4, 0 bge _0804D17E negs r4, r4 b _0804D180 _0804D178: movs r0, 0x1 strb r0, [r4, 0xA] b _0804D2B6 _0804D17E: adds r4, r3 _0804D180: movs r3, 0 mov r0, r8 mov r2, r9 muls r2, r0 cmp r3, r4 bge _0804D19A movs r1, 0x1 _0804D18E: mov r5, sp adds r0, r5, r3 strb r1, [r0] adds r3, 0x1 cmp r3, r4 blt _0804D18E _0804D19A: cmp r3, 0xFF bgt _0804D1AC movs r1, 0 _0804D1A0: mov r6, sp adds r0, r6, r3 strb r1, [r0] adds r3, 0x1 cmp r3, 0xFF ble _0804D1A0 _0804D1AC: adds r5, r2, 0 movs r6, 0x3F _0804D1B0: adds r0, r5, 0 bl sub_8084100 adds r4, r0, 0 adds r0, r5, 0 bl sub_8084100 mov r1, sp adds r2, r1, r4 ldrb r3, [r2] adds r1, r0 ldrb r0, [r1] strb r0, [r2] strb r3, [r1] subs r6, 0x1 cmp r6, 0 bge _0804D1B0 movs r3, 0 ldr r0, _0804D24C str r3, [r0] movs r7, 0 mov r12, r0 cmp r7, r9 bge _0804D262 _0804D1E0: movs r5, 0 adds r4, r7, 0x1 str r4, [sp, 0x104] cmp r5, r8 bge _0804D25C lsls r2, r7, 4 subs r2, r7 lsls r2, 5 ldr r6, [sp, 0x100] adds r0, r2, r6 mov r1, r9 movs r4, 0x1 ands r1, r4 str r1, [sp, 0x110] mov r1, r9 subs r1, 0x1 adds r0, 0x20 mov r10, r0 adds r0, r6, 0 adds r0, 0x8 adds r2, r0 lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 _0804D210: ldrb r4, [r2] cmp r4, 0 bne _0804D254 mov r6, r12 ldr r0, [r6] cmp r0, 0x1F ble _0804D220 strb r4, [r2, 0x2] _0804D220: mov r6, sp adds r0, r6, r3 ldrb r0, [r0] cmp r0, 0 beq _0804D250 movs r0, 0x1 strb r0, [r2, 0x2] mov r6, r12 ldr r0, [r6] adds r0, 0x1 str r0, [r6] ldr r0, [sp, 0x110] cmp r0, 0 beq _0804D252 cmp r7, r1 bne _0804D252 cmp r5, 0x1 bne _0804D252 mov r6, r10 strb r4, [r6, 0xA] b _0804D252 .align 2, 0 _0804D24C: .4byte gUnknown_202F1CC _0804D250: strb r0, [r2, 0x2] _0804D252: adds r3, 0x1 _0804D254: adds r2, 0x20 adds r5, 0x1 cmp r5, r8 blt _0804D210 _0804D25C: ldr r7, [sp, 0x104] cmp r7, r9 blt _0804D1E0 _0804D262: mov r1, r12 ldr r0, [r1] cmp r0, 0x1 bgt _0804D2BC movs r1, 0 movs r2, 0 _0804D26E: movs r7, 0 cmp r2, r9 bge _0804D2AC movs r6, 0 _0804D276: movs r5, 0 cmp r5, r8 bge _0804D2A4 lsls r0, r6, 5 ldr r3, [sp, 0x100] adds r4, r0, r3 _0804D282: ldrb r0, [r4, 0x8] cmp r0, 0 bne _0804D29C movs r0, 0x64 str r1, [sp, 0x108] str r2, [sp, 0x10C] bl sub_8084100 ldr r1, [sp, 0x108] ldr r2, [sp, 0x10C] cmp r0, 0x3B bgt _0804D29C b _0804D178 _0804D29C: adds r4, 0x20 adds r5, 0x1 cmp r5, r8 blt _0804D282 _0804D2A4: adds r6, 0xF adds r7, 0x1 cmp r7, r9 blt _0804D276 _0804D2AC: cmp r2, 0 bne _0804D2B6 adds r1, 0x1 cmp r1, 0xC7 ble _0804D26E _0804D2B6: ldr r1, _0804D2CC movs r0, 0 strb r0, [r1] _0804D2BC: add sp, 0x114 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804D2CC: .4byte gUnknown_202F1AD thumb_func_end sub_804D154 thumb_func_start sub_804D2D0 sub_804D2D0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x38 str r0, [sp] str r1, [sp, 0x4] str r2, [sp, 0x8] str r3, [sp, 0xC] movs r0, 0 str r0, [sp, 0x10] movs r1, 0 str r1, [sp, 0x14] cmp r1, r2 blt _0804D2F2 b _0804D520 _0804D2F2: movs r2, 0 mov r10, r2 ldr r3, [sp, 0x14] adds r3, 0x1 str r3, [sp, 0x28] ldr r4, [sp, 0x4] cmp r10, r4 blt _0804D304 b _0804D514 _0804D304: ldr r5, [sp, 0x14] lsls r5, 5 str r5, [sp, 0x1C] _0804D30A: mov r1, r10 lsls r0, r1, 2 ldr r2, [sp, 0xC] adds r0, r2 ldr r3, [r0] adds r4, r3, 0x2 mov r9, r4 ldr r5, [sp, 0x14] lsls r1, r5, 2 ldr r2, [sp, 0x58] adds r1, r2 ldr r2, [r1] adds r4, r2, 0x2 str r4, [sp, 0x18] ldr r0, [r0, 0x4] subs r0, r3 subs r4, r0, 0x4 ldr r0, [r1, 0x4] subs r0, r2 subs r0, 0x3 mov r8, r0 mov r5, r10 lsls r1, r5, 4 subs r0, r1, r5 lsls r0, 5 ldr r2, [sp] adds r0, r2 ldr r3, [sp, 0x1C] adds r7, r3, r0 ldrb r0, [r7, 0x8] str r1, [sp, 0x2C] adds r5, 0x1 str r5, [sp, 0x24] cmp r0, 0 beq _0804D352 b _0804D508 _0804D352: ldrb r0, [r7, 0xA] cmp r0, 0 bne _0804D35A b _0804D48C _0804D35A: movs r0, 0x5 adds r1, r4, 0 bl sub_808411C adds r6, r0, 0 movs r0, 0x4 mov r1, r8 bl sub_808411C adds r5, r0, 0 movs r1, 0x1 adds r0, r6, 0 orrs r0, r1 cmp r0, r4 bge _0804D37A adds r6, r0, 0 _0804D37A: adds r0, r5, 0 orrs r0, r1 cmp r0, r8 bge _0804D384 adds r5, r0, 0 _0804D384: lsls r0, r5, 1 adds r0, r5 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 cmp r6, r0 ble _0804D394 adds r6, r0, 0 _0804D394: lsls r0, r6, 1 adds r0, r6 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 cmp r5, r0 ble _0804D3A4 adds r5, r0, 0 _0804D3A4: subs r0, r4, r6 bl sub_8084100 adds r4, r0, 0 add r4, r9 mov r1, r8 subs r0, r1, r5 bl sub_8084100 ldr r2, [sp, 0x18] adds r0, r2 mov r8, r0 adds r3, r4, r6 adds r6, r0, r5 strh r4, [r7] strh r3, [r7, 0x4] mov r5, r8 strh r5, [r7, 0x2] strh r6, [r7, 0x6] ldr r0, [sp, 0x10] adds r0, 0x1 str r0, [sp, 0x20] cmp r4, r3 bge _0804D412 _0804D3D4: mov r5, r8 adds r7, r4, 0x1 cmp r5, r6 bge _0804D40C ldr r1, _0804D484 mov r9, r1 _0804D3E0: adds r0, r4, 0 adds r1, r5, 0 str r3, [sp, 0x34] bl sub_8049590 ldrh r1, [r0] mov r2, r9 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 mov r1, sp ldrb r1, [r1, 0x10] strb r1, [r0, 0x9] adds r5, 0x1 ldr r3, [sp, 0x34] cmp r5, r6 blt _0804D3E0 _0804D40C: adds r4, r7, 0 cmp r4, r3 blt _0804D3D4 _0804D412: movs r5, 0x1 movs r0, 0x64 bl sub_8084100 movs r1, 0 cmp r0, 0x4F bgt _0804D422 movs r1, 0x1 _0804D422: adds r4, r1, 0 ldr r0, _0804D488 ldr r0, [r0] cmp r0, 0 bne _0804D42E movs r4, 0 _0804D42E: movs r0, 0x4 ldr r2, [sp, 0x5C] ands r0, r2 cmp r0, 0 bne _0804D43A movs r5, 0 _0804D43A: cmp r5, 0 beq _0804D466 cmp r4, 0 beq _0804D44E movs r0, 0x64 bl sub_8084100 cmp r0, 0x31 ble _0804D466 movs r4, 0 _0804D44E: cmp r5, 0 beq _0804D466 ldr r3, [sp, 0x2C] mov r5, r10 subs r0, r3, r5 lsls r0, 5 ldr r1, [sp] adds r0, r1 ldr r2, [sp, 0x1C] adds r0, r2, r0 movs r1, 0x1 strb r1, [r0, 0x1C] _0804D466: cmp r4, 0 beq _0804D47E ldr r3, [sp, 0x2C] mov r4, r10 subs r0, r3, r4 lsls r0, 5 ldr r5, [sp] adds r0, r5 ldr r1, [sp, 0x1C] adds r0, r1, r0 movs r1, 0x1 strb r1, [r0, 0x1D] _0804D47E: ldr r2, [sp, 0x20] str r2, [sp, 0x10] b _0804D508 .align 2, 0 _0804D484: .4byte 0x0000fffc _0804D488: .4byte gUnknown_202F1C8 _0804D48C: movs r1, 0x2 movs r3, 0x4 movs r6, 0x2 movs r2, 0x4 mov r5, r10 cmp r5, 0 bne _0804D49C movs r1, 0x1 _0804D49C: ldr r0, [sp, 0x14] cmp r0, 0 bne _0804D4A4 movs r6, 0x1 _0804D4A4: ldr r0, [sp, 0x4] subs r0, 0x1 cmp r10, r0 bne _0804D4AE movs r3, 0x2 _0804D4AE: ldr r0, [sp, 0x8] subs r0, 0x1 ldr r5, [sp, 0x14] cmp r5, r0 bne _0804D4BA movs r2, 0x2 _0804D4BA: mov r5, r9 adds r0, r5, r1 adds r1, r5, r4 subs r1, r3 str r2, [sp, 0x30] bl sub_808411C adds r5, r0, 0 ldr r1, [sp, 0x18] adds r0, r1, r6 add r1, r8 ldr r2, [sp, 0x30] subs r1, r2 bl sub_808411C adds r4, r0, 0 strh r5, [r7] adds r0, r5, 0x1 strh r0, [r7, 0x4] strh r4, [r7, 0x2] adds r0, r4, 0x1 strh r0, [r7, 0x6] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r1, [r0] ldr r3, _0804D530 adds r2, r3, 0 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0xFE strb r1, [r0, 0x9] _0804D508: ldr r4, [sp, 0x24] mov r10, r4 ldr r5, [sp, 0x4] cmp r10, r5 bge _0804D514 b _0804D30A _0804D514: ldr r0, [sp, 0x28] str r0, [sp, 0x14] ldr r1, [sp, 0x8] cmp r0, r1 bge _0804D520 b _0804D2F2 _0804D520: add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804D530: .4byte 0x0000fffc thumb_func_end sub_804D2D0 thumb_func_start sub_804D534 sub_804D534: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r3, r0, 0 adds r7, r1, 0 mov r9, r2 movs r1, 0 cmp r1, r9 bge _0804D5A0 _0804D54A: adds r0, r1, 0x1 mov r8, r0 cmp r7, 0 ble _0804D59A lsls r1, 5 adds r0, r1, 0 adds r0, 0x8 adds r4, r3, r0 adds r5, r3, r1 adds r6, r7, 0 _0804D55E: ldrb r0, [r4] cmp r0, 0 bne _0804D58C ldrb r0, [r4, 0x6] cmp r0, 0 bne _0804D58C ldrb r0, [r4, 0xA] cmp r0, 0 bne _0804D58C ldrb r0, [r4, 0x2] cmp r0, 0 beq _0804D58C ldrb r0, [r4, 0x14] cmp r0, 0 bne _0804D58C ldrb r0, [r4, 0x15] cmp r0, 0 beq _0804D58C adds r0, r5, 0 str r3, [sp] bl sub_804F694 ldr r3, [sp] _0804D58C: movs r0, 0xF0 lsls r0, 1 adds r4, r0 adds r5, r0 subs r6, 0x1 cmp r6, 0 bne _0804D55E _0804D59A: mov r1, r8 cmp r1, r9 blt _0804D54A _0804D5A0: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804D534 thumb_func_start sub_804D5B0 sub_804D5B0: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 mov r9, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 adds r0, r4, 0 bl sub_8084100 mov r8, r0 adds r0, r5, 0 bl sub_8084100 str r0, [sp] str r6, [sp, 0x4] mov r0, r9 adds r1, r4, 0 adds r2, r5, 0 mov r3, r8 bl sub_804D5F0 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_804D5B0 thumb_func_start sub_804D5F0 sub_804D5F0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 str r0, [sp] str r1, [sp, 0x4] str r2, [sp, 0x8] adds r7, r3, 0 ldr r6, [sp, 0x40] ldr r0, [sp, 0x44] ldrb r0, [r0, 0x5] str r0, [sp, 0xC] movs r0, 0x4 bl sub_8084100 adds r5, r0, 0 movs r1, 0 mov r10, r1 ldr r2, [sp, 0xC] cmp r10, r2 blt _0804D620 b _0804D726 _0804D620: lsls r4, r6, 5 mov r9, r4 lsls r0, r7, 4 subs r0, r7 lsls r0, 5 ldr r1, [sp] adds r0, r1 mov r8, r0 _0804D630: movs r0, 0x8 bl sub_8084100 adds r4, r0, 0 movs r0, 0x4 bl sub_8084100 cmp r4, 0x3 bgt _0804D644 adds r5, r0, 0 _0804D644: mov r4, r10 adds r4, 0x1 _0804D648: movs r1, 0 movs r0, 0x3 ands r0, r5 cmp r0, 0x1 beq _0804D670 cmp r0, 0x1 bgt _0804D65C cmp r0, 0 beq _0804D666 b _0804D686 _0804D65C: cmp r0, 0x2 beq _0804D676 cmp r0, 0x3 beq _0804D67C b _0804D686 _0804D666: ldr r0, [sp, 0x4] subs r0, 0x1 cmp r7, r0 blt _0804D68A b _0804D684 _0804D670: cmp r6, 0 bgt _0804D68A b _0804D684 _0804D676: cmp r7, 0 bgt _0804D68A b _0804D684 _0804D67C: ldr r0, [sp, 0x8] subs r0, 0x1 cmp r6, r0 blt _0804D68A _0804D684: adds r5, 0x1 _0804D686: cmp r1, 0 beq _0804D648 _0804D68A: movs r1, 0x3 ands r1, r5 cmp r1, 0x1 beq _0804D6C6 cmp r1, 0x1 bgt _0804D69C cmp r1, 0 beq _0804D6A6 b _0804D71E _0804D69C: cmp r1, 0x2 beq _0804D6E2 cmp r1, 0x3 beq _0804D704 b _0804D71E _0804D6A6: mov r1, r9 add r1, r8 movs r0, 0xF0 lsls r0, 1 adds r2, r1, r0 ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804D71E movs r0, 0x1 strb r0, [r1, 0x16] strb r0, [r2, 0x15] movs r1, 0xF0 lsls r1, 1 add r8, r1 adds r7, 0x1 b _0804D71E _0804D6C6: mov r2, r9 add r2, r8 adds r3, r2, 0 subs r3, 0x20 ldrb r0, [r3, 0x8] cmp r0, 0 bne _0804D71E strb r1, [r2, 0x13] strb r1, [r3, 0x14] movs r2, 0x20 negs r2, r2 add r9, r2 subs r6, 0x1 b _0804D71E _0804D6E2: mov r1, r9 add r1, r8 ldr r0, _0804D700 adds r2, r1, r0 ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804D71E movs r0, 0x1 strb r0, [r1, 0x15] strb r0, [r2, 0x16] ldr r1, _0804D700 add r8, r1 subs r7, 0x1 b _0804D71E .align 2, 0 _0804D700: .4byte 0xfffffe20 _0804D704: mov r1, r9 add r1, r8 adds r2, r1, 0 adds r2, 0x20 ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804D71E movs r0, 0x1 strb r0, [r1, 0x14] strb r0, [r2, 0x13] movs r1, 0x20 add r9, r1 adds r6, 0x1 _0804D71E: mov r10, r4 ldr r2, [sp, 0xC] cmp r10, r2 blt _0804D630 _0804D726: ldr r4, [sp, 0x44] ldrb r0, [r4, 0xB] cmp r0, 0 beq _0804D730 b _0804D8B8 _0804D730: movs r0, 0 mov r9, r0 movs r7, 0 ldr r1, [sp, 0x4] cmp r9, r1 blt _0804D73E b _0804D8B0 _0804D73E: movs r2, 0x1 mov r8, r2 _0804D742: movs r6, 0 adds r4, r7, 0x1 str r4, [sp, 0x14] ldr r0, [sp, 0x8] cmp r6, r0 blt _0804D750 b _0804D8A6 _0804D750: lsls r1, r7, 4 str r1, [sp, 0x10] subs r0, r1, r7 lsls r0, 5 ldr r2, [sp] adds r3, r0, r2 _0804D75C: lsls r0, r6, 5 adds r2, r0, r3 ldrb r1, [r2, 0x8] adds r4, r0, 0 adds r0, r6, 0x1 str r0, [sp, 0x18] cmp r1, 0 beq _0804D76E b _0804D89C _0804D76E: ldrb r0, [r2, 0xA] cmp r0, 0 beq _0804D776 b _0804D89C _0804D776: ldrb r0, [r2, 0x13] negs r1, r0 orrs r1, r0 lsrs r1, 31 ldrb r0, [r2, 0x14] cmp r0, 0 beq _0804D786 adds r1, 0x1 _0804D786: ldrb r0, [r2, 0x15] cmp r0, 0 beq _0804D78E adds r1, 0x1 _0804D78E: ldrb r0, [r2, 0x16] cmp r0, 0 beq _0804D796 adds r1, 0x1 _0804D796: cmp r1, 0x1 beq _0804D79C b _0804D89C _0804D79C: movs r0, 0x4 str r3, [sp, 0x1C] bl sub_8084100 adds r5, r0, 0 movs r2, 0 mov r10, r2 ldr r1, [sp, 0x10] subs r0, r1, r7 lsls r0, 5 ldr r1, [sp] adds r0, r1 adds r1, r4, r0 ldr r3, [sp, 0x1C] _0804D7B8: movs r0, 0x3 ands r0, r5 cmp r0, 0x1 beq _0804D7E0 cmp r0, 0x1 bgt _0804D7CA cmp r0, 0 beq _0804D7D4 b _0804D800 _0804D7CA: cmp r0, 0x2 beq _0804D7E8 cmp r0, 0x3 beq _0804D7F0 b _0804D800 _0804D7D4: ldr r0, [sp, 0x4] subs r0, 0x1 cmp r7, r0 bge _0804D7FE ldrb r0, [r1, 0x16] b _0804D7FA _0804D7E0: cmp r6, 0 ble _0804D7FE ldrb r0, [r1, 0x13] b _0804D7FA _0804D7E8: cmp r7, 0 ble _0804D7FE ldrb r0, [r1, 0x15] b _0804D7FA _0804D7F0: ldr r0, [sp, 0x8] subs r0, 0x1 cmp r6, r0 bge _0804D7FE ldrb r0, [r1, 0x14] _0804D7FA: cmp r0, 0 beq _0804D80E _0804D7FE: adds r5, 0x1 _0804D800: mov r0, r10 cmp r0, 0 bne _0804D80E adds r2, 0x1 cmp r2, 0x7 ble _0804D7B8 b _0804D89C _0804D80E: movs r2, 0x3 ands r2, r5 cmp r2, 0x1 beq _0804D844 cmp r2, 0x1 bgt _0804D820 cmp r2, 0 beq _0804D82A b _0804D89C _0804D820: cmp r2, 0x2 beq _0804D85C cmp r2, 0x3 beq _0804D880 b _0804D89C _0804D82A: adds r1, r4, r3 movs r4, 0xF0 lsls r4, 1 adds r2, r1, r4 ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804D89C mov r0, r8 strb r0, [r1, 0x16] strb r0, [r2, 0x15] movs r1, 0x1 mov r9, r1 b _0804D89C _0804D844: adds r1, r4, r3 movs r4, 0xF0 lsls r4, 1 adds r0, r1, r4 ldrb r0, [r0, 0x8] cmp r0, 0 bne _0804D89C strb r2, [r1, 0x13] adds r0, r1, 0 subs r0, 0x20 strb r2, [r0, 0x14] b _0804D898 _0804D85C: adds r1, r4, r3 movs r2, 0xF0 lsls r2, 1 adds r0, r1, r2 ldrb r0, [r0, 0x8] cmp r0, 0 bne _0804D89C mov r4, r8 strb r4, [r1, 0x15] ldr r2, _0804D87C adds r0, r1, r2 strb r4, [r0, 0x16] movs r4, 0x1 mov r9, r4 b _0804D89C .align 2, 0 _0804D87C: .4byte 0xfffffe20 _0804D880: adds r1, r4, r3 movs r2, 0xF0 lsls r2, 1 adds r0, r1, r2 ldrb r0, [r0, 0x8] cmp r0, 0 bne _0804D89C mov r4, r8 strb r4, [r1, 0x14] adds r0, r1, 0 adds r0, 0x20 strb r4, [r0, 0x13] _0804D898: movs r0, 0x1 mov r9, r0 _0804D89C: ldr r6, [sp, 0x18] ldr r1, [sp, 0x8] cmp r6, r1 bge _0804D8A6 b _0804D75C _0804D8A6: ldr r7, [sp, 0x14] ldr r2, [sp, 0x4] cmp r7, r2 bge _0804D8B0 b _0804D742 _0804D8B0: mov r4, r9 cmp r4, 0 beq _0804D8B8 b _0804D730 _0804D8B8: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804D5F0 thumb_func_start sub_804D8C8 sub_804D8C8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x58 str r0, [sp, 0xC] str r1, [sp, 0x10] str r2, [sp, 0x14] str r3, [sp, 0x18] ldr r0, [sp, 0x7C] lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x1C] movs r0, 0 str r0, [sp, 0x20] cmp r0, r1 bge _0804D968 _0804D8EC: movs r1, 0 mov r10, r1 ldr r2, [sp, 0x20] adds r2, 0x1 str r2, [sp, 0x38] ldr r3, [sp, 0x14] cmp r10, r3 bge _0804D95E ldr r4, [sp, 0x20] lsls r1, r4, 4 subs r1, r4 movs r3, 0 lsls r1, 5 ldr r0, [sp, 0xC] adds r0, 0x8 adds r1, r0 _0804D90C: ldrb r2, [r1] cmp r2, 0 beq _0804D91C strb r3, [r1, 0xF] strb r3, [r1, 0x10] strb r3, [r1, 0x11] strb r3, [r1, 0x12] b _0804D952 _0804D91C: ldr r5, [sp, 0x20] cmp r5, 0 bgt _0804D924 strb r2, [r1, 0xD] _0804D924: mov r6, r10 cmp r6, 0 bgt _0804D92C strb r2, [r1, 0xB] _0804D92C: ldr r0, [sp, 0x10] subs r0, 0x1 ldr r7, [sp, 0x20] cmp r7, r0 blt _0804D938 strb r2, [r1, 0xE] _0804D938: ldr r0, [sp, 0x14] subs r0, 0x1 cmp r10, r0 blt _0804D942 strb r2, [r1, 0xC] _0804D942: ldrb r0, [r1, 0xB] strb r0, [r1, 0xF] ldrb r0, [r1, 0xC] strb r0, [r1, 0x10] ldrb r0, [r1, 0xD] strb r0, [r1, 0x11] ldrb r0, [r1, 0xE] strb r0, [r1, 0x12] _0804D952: adds r1, 0x20 movs r0, 0x1 add r10, r0 ldr r2, [sp, 0x14] cmp r10, r2 blt _0804D90C _0804D95E: ldr r3, [sp, 0x38] str r3, [sp, 0x20] ldr r4, [sp, 0x10] cmp r3, r4 blt _0804D8EC _0804D968: movs r5, 0 str r5, [sp, 0x20] ldr r6, [sp, 0x10] cmp r5, r6 blt _0804D974 b _0804DBC6 _0804D974: movs r7, 0 mov r10, r7 ldr r0, [sp, 0x20] adds r0, 0x1 str r0, [sp, 0x38] ldr r1, [sp, 0x14] cmp r10, r1 blt _0804D986 b _0804DBBA _0804D986: ldr r2, [sp, 0x20] lsls r2, 4 str r2, [sp, 0x40] ldr r3, [sp, 0x20] subs r1, r2, r3 lsls r1, 5 movs r4, 0 str r4, [sp, 0x48] ldr r5, [sp, 0xC] movs r6, 0xF0 lsls r6, 1 adds r0, r5, r6 adds r0, r1 mov r8, r0 adds r5, r1, r5 ldr r7, [sp, 0xC] ldr r2, _0804DA0C adds r0, r7, r2 adds r7, r1, r0 ldr r3, [sp, 0x78] str r3, [sp, 0x4C] ldr r0, [sp, 0xC] adds r0, 0x20 adds r0, r1, r0 str r0, [sp, 0x50] ldr r0, [sp, 0xC] subs r0, 0x20 adds r6, r1, r0 ldr r4, [sp, 0x20] lsls r0, r4, 2 ldr r1, [sp, 0x18] adds r0, r1 str r0, [sp, 0x24] _0804D9C8: ldr r2, [sp, 0x20] lsls r0, r2, 4 subs r0, r2 lsls r0, 5 ldr r3, [sp, 0xC] adds r0, r3 ldr r1, [sp, 0x48] adds r4, r1, r0 ldrb r0, [r4, 0x8] cmp r0, 0 beq _0804D9E0 b _0804DB92 _0804D9E0: ldrb r0, [r4, 0xA] cmp r0, 0 beq _0804DA10 movs r2, 0 ldrsh r0, [r4, r2] adds r0, 0x1 movs r3, 0x4 ldrsh r1, [r4, r3] subs r1, 0x1 bl sub_808411C mov r9, r0 movs r1, 0x2 ldrsh r0, [r4, r1] adds r0, 0x1 movs r2, 0x6 ldrsh r1, [r4, r2] subs r1, 0x1 bl sub_808411C adds r4, r0, 0 b _0804DA1A .align 2, 0 _0804DA0C: .4byte 0xfffffe20 _0804DA10: movs r0, 0 ldrsh r3, [r4, r0] mov r9, r3 movs r1, 0x2 ldrsh r4, [r4, r1] _0804DA1A: ldrb r0, [r5, 0x17] cmp r0, 0 beq _0804DA74 ldrb r0, [r6, 0x8] cmp r0, 0 bne _0804DA68 ldrb r0, [r6, 0xA] cmp r0, 0 beq _0804DA40 movs r2, 0 ldrsh r0, [r6, r2] adds r0, 0x1 movs r3, 0x4 ldrsh r1, [r6, r3] subs r1, 0x1 bl sub_808411C adds r2, r0, 0 b _0804DA44 _0804DA40: movs r0, 0 ldrsh r2, [r6, r0] _0804DA44: movs r3, 0x2 ldrsh r1, [r5, r3] movs r0, 0x6 ldrsh r3, [r6, r0] subs r3, 0x1 mov r12, r3 movs r3, 0x1 str r3, [sp] ldr r3, [sp, 0x24] ldr r0, [r3] str r0, [sp, 0x4] ldr r3, [sp, 0x4C] ldr r0, [r3] str r0, [sp, 0x8] mov r0, r9 mov r3, r12 bl sub_804E328 _0804DA68: movs r0, 0 strb r0, [r5, 0x17] strb r0, [r6, 0x18] movs r1, 0x1 strb r1, [r5, 0xB] strb r1, [r6, 0xB] _0804DA74: ldrb r0, [r5, 0x18] cmp r0, 0 beq _0804DAD4 ldr r2, [sp, 0x50] ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804DAC6 ldrb r0, [r2, 0xA] cmp r0, 0 beq _0804DA9C movs r3, 0x20 ldrsh r0, [r5, r3] adds r0, 0x1 movs r2, 0x24 ldrsh r1, [r5, r2] subs r1, 0x1 bl sub_808411C adds r2, r0, 0 b _0804DAA0 _0804DA9C: movs r3, 0x20 ldrsh r2, [r5, r3] _0804DAA0: movs r0, 0x6 ldrsh r1, [r5, r0] subs r1, 0x1 movs r0, 0x22 ldrsh r3, [r5, r0] mov r12, r3 movs r3, 0x1 str r3, [sp] ldr r3, [sp, 0x24] ldr r0, [r3] str r0, [sp, 0x4] ldr r3, [sp, 0x4C] ldr r0, [r3, 0x4] subs r0, 0x1 str r0, [sp, 0x8] mov r0, r9 mov r3, r12 bl sub_804E328 _0804DAC6: movs r0, 0 strb r0, [r5, 0x18] ldr r1, [sp, 0x50] strb r0, [r1, 0x17] movs r2, 0x1 strb r2, [r5, 0xB] strb r2, [r1, 0xB] _0804DAD4: ldrb r0, [r5, 0x19] cmp r0, 0 beq _0804DB2E ldrb r0, [r7, 0x8] cmp r0, 0 bne _0804DB22 ldrb r0, [r7, 0xA] cmp r0, 0 beq _0804DAFA movs r3, 0x2 ldrsh r0, [r7, r3] adds r0, 0x1 movs r2, 0x6 ldrsh r1, [r7, r2] subs r1, 0x1 bl sub_808411C adds r3, r0, 0 b _0804DAFE _0804DAFA: movs r0, 0x2 ldrsh r3, [r7, r0] _0804DAFE: movs r1, 0 ldrsh r0, [r5, r1] movs r1, 0 ldrsh r2, [r7, r1] subs r2, 0x1 mov r9, r2 movs r2, 0 str r2, [sp] ldr r2, [sp, 0x24] ldr r1, [r2] str r1, [sp, 0x4] ldr r2, [sp, 0x4C] ldr r1, [r2] str r1, [sp, 0x8] adds r1, r4, 0 mov r2, r9 bl sub_804E328 _0804DB22: movs r3, 0 strb r3, [r5, 0x19] strb r3, [r7, 0x1A] movs r0, 0x1 strb r0, [r5, 0xB] strb r0, [r7, 0xB] _0804DB2E: ldrb r0, [r5, 0x1A] cmp r0, 0 beq _0804DB92 mov r1, r8 ldrb r0, [r1, 0x8] cmp r0, 0 bne _0804DB84 ldrb r0, [r1, 0xA] cmp r0, 0 beq _0804DB56 movs r2, 0x2 ldrsh r0, [r1, r2] adds r0, 0x1 movs r3, 0x6 ldrsh r1, [r1, r3] subs r1, 0x1 bl sub_808411C adds r3, r0, 0 b _0804DB5C _0804DB56: mov r0, r8 movs r1, 0x2 ldrsh r3, [r0, r1] _0804DB5C: movs r2, 0x4 ldrsh r0, [r5, r2] subs r0, 0x1 mov r1, r8 movs r2, 0 ldrsh r1, [r1, r2] mov r9, r1 movs r1, 0 str r1, [sp] ldr r2, [sp, 0x24] ldr r1, [r2, 0x4] subs r1, 0x1 str r1, [sp, 0x4] ldr r2, [sp, 0x4C] ldr r1, [r2] str r1, [sp, 0x8] adds r1, r4, 0 mov r2, r9 bl sub_804E328 _0804DB84: movs r3, 0 strb r3, [r5, 0x1A] mov r4, r8 strb r3, [r4, 0x19] movs r0, 0x1 strb r0, [r5, 0xB] strb r0, [r4, 0xB] _0804DB92: ldr r1, [sp, 0x48] adds r1, 0x20 str r1, [sp, 0x48] movs r2, 0x20 add r8, r2 adds r5, 0x20 adds r7, 0x20 ldr r3, [sp, 0x4C] adds r3, 0x4 str r3, [sp, 0x4C] ldr r4, [sp, 0x50] adds r4, 0x20 str r4, [sp, 0x50] adds r6, 0x20 movs r0, 0x1 add r10, r0 ldr r1, [sp, 0x14] cmp r10, r1 bge _0804DBBA b _0804D9C8 _0804DBBA: ldr r2, [sp, 0x38] str r2, [sp, 0x20] ldr r3, [sp, 0x10] cmp r2, r3 bge _0804DBC6 b _0804D974 _0804DBC6: ldr r4, [sp, 0x1C] cmp r4, 0 beq _0804DBCE b _0804E026 _0804DBCE: movs r5, 0 str r5, [sp, 0x20] ldr r6, [sp, 0x10] cmp r5, r6 blt _0804DBDA b _0804E026 _0804DBDA: movs r7, 0 mov r10, r7 ldr r0, [sp, 0x20] adds r0, 0x1 str r0, [sp, 0x38] ldr r1, [sp, 0x14] cmp r10, r1 blt _0804DBEC b _0804E018 _0804DBEC: movs r0, 0x64 bl sub_8084100 mov r2, r10 adds r2, 0x1 str r2, [sp, 0x3C] cmp r0, 0x4 ble _0804DBFE b _0804E00C _0804DBFE: mov r3, r10 lsls r1, r3, 5 ldr r4, [sp, 0x20] lsls r2, r4, 4 subs r0, r2, r4 lsls r0, 5 ldr r5, [sp, 0xC] adds r0, r5 adds r4, r1, r0 ldrb r0, [r4, 0x8] str r1, [sp, 0x44] str r2, [sp, 0x40] cmp r0, 0 beq _0804DC1C b _0804E00C _0804DC1C: ldrb r0, [r4, 0xB] cmp r0, 0 bne _0804DC24 b _0804E00C _0804DC24: ldrb r0, [r4, 0x12] cmp r0, 0 beq _0804DC2C b _0804E00C _0804DC2C: ldrb r0, [r4, 0x9] cmp r0, 0 beq _0804DC34 b _0804E00C _0804DC34: ldrb r0, [r4, 0xA] cmp r0, 0 bne _0804DC3C b _0804E00C _0804DC3C: movs r0, 0x4 bl sub_8084100 cmp r0, 0x1 bne _0804DC48 b _0804DD50 _0804DC48: cmp r0, 0x1 bgt _0804DC52 cmp r0, 0 beq _0804DC60 b _0804E00C _0804DC52: cmp r0, 0x2 bne _0804DC58 b _0804DE3C _0804DC58: cmp r0, 0x3 bne _0804DC5E b _0804DF30 _0804DC5E: b _0804E00C _0804DC60: ldr r6, [sp, 0x20] cmp r6, 0 bgt _0804DC68 b _0804E00C _0804DC68: ldr r7, _0804DD48 adds r2, r4, r7 ldrb r0, [r2, 0xB] cmp r0, 0 bne _0804DC74 b _0804E00C _0804DC74: ldrb r0, [r2, 0x8] cmp r0, 0 beq _0804DC7C b _0804E00C _0804DC7C: ldrb r0, [r2, 0xA] cmp r0, 0 bne _0804DC84 b _0804E00C _0804DC84: ldrb r0, [r2, 0x9] cmp r0, 0 beq _0804DC8C b _0804E00C _0804DC8C: ldrb r0, [r2, 0x12] cmp r0, 0 beq _0804DC94 b _0804E00C _0804DC94: movs r1, 0 ldrsh r0, [r2, r1] str r0, [sp, 0x28] ldrh r3, [r4, 0x2] movs r5, 0x2 ldrsh r1, [r4, r5] ldrh r5, [r2, 0x2] movs r6, 0x2 ldrsh r0, [r2, r6] cmp r1, r0 ble _0804DCAC adds r3, r5, 0 _0804DCAC: lsls r0, r3, 16 asrs r0, 16 mov r9, r0 movs r0, 0x4 ldrsh r7, [r4, r0] mov r10, r7 ldrh r3, [r4, 0x6] movs r5, 0x6 ldrsh r1, [r4, r5] ldrh r5, [r2, 0x6] movs r6, 0x6 ldrsh r0, [r2, r6] cmp r1, r0 bge _0804DCCA adds r3, r5, 0 _0804DCCA: lsls r0, r3, 16 asrs r7, r0, 16 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C ldrb r0, [r0, 0x9] mov r8, r0 ldr r5, [sp, 0x28] cmp r5, r10 bge _0804DD16 _0804DCE4: mov r4, r9 adds r6, r5, 0x1 cmp r9, r7 bge _0804DD10 ldr r0, _0804DD4C adds r3, r0, 0 _0804DCF0: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp, 0x54] bl sub_8049590 ldrh r1, [r0] ldr r3, [sp, 0x54] ands r1, r3 movs r2, 0x1 orrs r1, r2 strh r1, [r0] mov r1, r8 strb r1, [r0, 0x9] adds r4, 0x1 cmp r4, r7 blt _0804DCF0 _0804DD10: adds r5, r6, 0 cmp r5, r10 blt _0804DCE4 _0804DD16: ldr r2, [sp, 0x40] ldr r3, [sp, 0x20] subs r0, r2, r3 lsls r0, 5 ldr r4, [sp, 0xC] adds r0, r4 ldr r5, [sp, 0x44] adds r0, r5, r0 ldr r6, _0804DD48 adds r3, r0, r6 mov r1, sp ldrh r1, [r1, 0x28] strh r1, [r3] mov r2, r10 strh r2, [r3, 0x4] mov r4, r9 strh r4, [r3, 0x2] strh r7, [r3, 0x6] movs r5, 0x1 strb r5, [r0, 0x12] strb r5, [r3, 0x12] movs r6, 0 strb r6, [r0, 0xB] strb r5, [r0, 0x11] b _0804E00C .align 2, 0 _0804DD48: .4byte 0xfffffe20 _0804DD4C: .4byte 0x0000fffc _0804DD50: mov r7, r10 cmp r7, 0 bgt _0804DD58 b _0804E00C _0804DD58: adds r2, r4, 0 subs r2, 0x20 ldrb r0, [r2, 0xB] cmp r0, 0 bne _0804DD64 b _0804E00C _0804DD64: ldrb r0, [r2, 0x8] cmp r0, 0 beq _0804DD6C b _0804E00C _0804DD6C: ldrb r0, [r2, 0xA] cmp r0, 0 bne _0804DD74 b _0804E00C _0804DD74: ldrb r0, [r2, 0x9] cmp r0, 0 beq _0804DD7C b _0804E00C _0804DD7C: ldrb r0, [r2, 0x12] cmp r0, 0 beq _0804DD84 b _0804E00C _0804DD84: ldrh r3, [r4] movs r0, 0 ldrsh r1, [r4, r0] ldrh r5, [r2] movs r6, 0 ldrsh r0, [r2, r6] cmp r1, r0 ble _0804DD96 adds r3, r5, 0 _0804DD96: lsls r0, r3, 16 asrs r0, 16 str r0, [sp, 0x2C] movs r0, 0x2 ldrsh r7, [r2, r0] mov r10, r7 ldrh r3, [r4, 0x4] movs r5, 0x4 ldrsh r1, [r4, r5] ldrh r5, [r2, 0x4] movs r6, 0x4 ldrsh r0, [r2, r6] cmp r1, r0 bge _0804DDB4 adds r3, r5, 0 _0804DDB4: lsls r0, r3, 16 asrs r0, 16 mov r8, r0 movs r0, 0x6 ldrsh r7, [r4, r0] movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C ldrb r0, [r0, 0x9] mov r9, r0 ldr r5, [sp, 0x2C] cmp r5, r8 bge _0804DE06 _0804DDD4: mov r4, r10 adds r6, r5, 0x1 cmp r10, r7 bge _0804DE00 ldr r0, _0804DE38 adds r3, r0, 0 _0804DDE0: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp, 0x54] bl sub_8049590 ldrh r1, [r0] ldr r3, [sp, 0x54] ands r1, r3 movs r2, 0x1 orrs r1, r2 strh r1, [r0] mov r1, r9 strb r1, [r0, 0x9] adds r4, 0x1 cmp r4, r7 blt _0804DDE0 _0804DE00: adds r5, r6, 0 cmp r5, r8 blt _0804DDD4 _0804DE06: ldr r2, [sp, 0x40] ldr r3, [sp, 0x20] subs r0, r2, r3 lsls r0, 5 ldr r4, [sp, 0xC] adds r0, r4 ldr r5, [sp, 0x44] adds r0, r5, r0 adds r3, r0, 0 subs r3, 0x20 mov r6, sp ldrh r6, [r6, 0x2C] strh r6, [r3] mov r1, r8 strh r1, [r3, 0x4] mov r2, r10 strh r2, [r3, 0x2] strh r7, [r3, 0x6] movs r4, 0x1 strb r4, [r0, 0x12] strb r4, [r3, 0x12] movs r5, 0 strb r5, [r0, 0xB] strb r4, [r0, 0x11] b _0804E00C .align 2, 0 _0804DE38: .4byte 0x0000fffc _0804DE3C: ldr r0, [sp, 0x10] subs r0, 0x2 ldr r6, [sp, 0x20] cmp r6, r0 ble _0804DE48 b _0804E00C _0804DE48: movs r7, 0xF0 lsls r7, 1 adds r2, r4, r7 ldrb r0, [r2, 0xB] cmp r0, 0 bne _0804DE56 b _0804E00C _0804DE56: ldrb r0, [r2, 0x8] cmp r0, 0 beq _0804DE5E b _0804E00C _0804DE5E: ldrb r0, [r2, 0xA] cmp r0, 0 bne _0804DE66 b _0804E00C _0804DE66: ldrb r0, [r2, 0x9] cmp r0, 0 beq _0804DE6E b _0804E00C _0804DE6E: ldrb r0, [r2, 0x12] cmp r0, 0 beq _0804DE76 b _0804E00C _0804DE76: movs r1, 0 ldrsh r0, [r4, r1] str r0, [sp, 0x30] ldrh r3, [r2, 0x2] movs r5, 0x2 ldrsh r1, [r2, r5] ldrh r5, [r4, 0x2] movs r6, 0x2 ldrsh r0, [r4, r6] cmp r1, r0 ble _0804DE8E adds r3, r5, 0 _0804DE8E: lsls r0, r3, 16 asrs r0, 16 mov r9, r0 movs r0, 0x4 ldrsh r7, [r2, r0] mov r10, r7 ldrh r3, [r2, 0x6] movs r5, 0x6 ldrsh r1, [r2, r5] ldrh r2, [r4, 0x6] movs r6, 0x6 ldrsh r0, [r4, r6] cmp r1, r0 bge _0804DEAC adds r3, r2, 0 _0804DEAC: lsls r0, r3, 16 asrs r7, r0, 16 movs r0, 0x2 ldrsh r1, [r4, r0] ldr r0, [sp, 0x30] bl sub_804954C ldrb r0, [r0, 0x9] mov r8, r0 ldr r5, [sp, 0x30] cmp r5, r10 bge _0804DEF6 _0804DEC4: mov r4, r9 adds r6, r5, 0x1 cmp r9, r7 bge _0804DEF0 ldr r1, _0804DF2C adds r3, r1, 0 _0804DED0: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp, 0x54] bl sub_8049590 ldrh r1, [r0] ldr r3, [sp, 0x54] ands r1, r3 movs r2, 0x1 orrs r1, r2 strh r1, [r0] mov r2, r8 strb r2, [r0, 0x9] adds r4, 0x1 cmp r4, r7 blt _0804DED0 _0804DEF0: adds r5, r6, 0 cmp r5, r10 blt _0804DEC4 _0804DEF6: ldr r3, [sp, 0x40] ldr r4, [sp, 0x20] subs r0, r3, r4 lsls r0, 5 ldr r5, [sp, 0xC] adds r0, r5 ldr r6, [sp, 0x44] adds r0, r6, r0 mov r1, sp ldrh r1, [r1, 0x30] strh r1, [r0] mov r2, r10 strh r2, [r0, 0x4] mov r3, r9 strh r3, [r0, 0x2] strh r7, [r0, 0x6] movs r4, 0xF0 lsls r4, 1 adds r1, r0, r4 movs r5, 0x1 strb r5, [r1, 0x12] strb r5, [r0, 0x12] movs r6, 0 strb r6, [r1, 0xB] strb r5, [r1, 0x11] b _0804E00C .align 2, 0 _0804DF2C: .4byte 0x0000fffc _0804DF30: ldr r0, [sp, 0x14] subs r0, 0x2 cmp r10, r0 bgt _0804E00C adds r3, r4, 0 adds r3, 0x20 ldrb r0, [r3, 0xB] cmp r0, 0 beq _0804E00C ldrb r0, [r3, 0x8] cmp r0, 0 bne _0804E00C ldrb r0, [r3, 0xA] cmp r0, 0 beq _0804E00C ldrb r0, [r3, 0x9] cmp r0, 0 bne _0804E00C ldrb r0, [r3, 0x12] cmp r0, 0 bne _0804E00C ldrh r2, [r4, 0x20] movs r7, 0x20 ldrsh r1, [r4, r7] ldrh r5, [r4] movs r6, 0 ldrsh r0, [r4, r6] cmp r1, r0 ble _0804DF6C adds r2, r5, 0 _0804DF6C: lsls r0, r2, 16 asrs r0, 16 str r0, [sp, 0x34] movs r7, 0x2 ldrsh r6, [r4, r7] ldrh r2, [r3, 0x4] movs r0, 0x4 ldrsh r1, [r3, r0] ldrh r5, [r4, 0x4] movs r7, 0x4 ldrsh r0, [r4, r7] cmp r1, r0 bge _0804DF88 adds r2, r5, 0 _0804DF88: lsls r0, r2, 16 asrs r0, 16 mov r8, r0 movs r0, 0x6 ldrsh r3, [r3, r0] movs r1, 0 ldrsh r0, [r4, r1] adds r1, r6, 0 str r3, [sp, 0x54] bl sub_804954C ldrb r0, [r0, 0x9] mov r10, r0 ldr r5, [sp, 0x34] ldr r3, [sp, 0x54] cmp r5, r8 bge _0804DFDE _0804DFAA: adds r4, r6, 0 adds r7, r5, 0x1 cmp r6, r3 bge _0804DFD8 ldr r2, _0804E038 mov r9, r2 _0804DFB6: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp, 0x54] bl sub_8049590 ldrh r1, [r0] mov r2, r9 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] mov r1, r10 strb r1, [r0, 0x9] adds r4, 0x1 ldr r3, [sp, 0x54] cmp r4, r3 blt _0804DFB6 _0804DFD8: adds r5, r7, 0 cmp r5, r8 blt _0804DFAA _0804DFDE: ldr r2, [sp, 0x40] ldr r4, [sp, 0x20] subs r0, r2, r4 lsls r0, 5 ldr r5, [sp, 0xC] adds r0, r5 ldr r7, [sp, 0x44] adds r0, r7, r0 mov r1, sp ldrh r1, [r1, 0x34] strh r1, [r0] mov r2, r8 strh r2, [r0, 0x4] strh r6, [r0, 0x2] strh r3, [r0, 0x6] adds r1, r0, 0 adds r1, 0x20 movs r3, 0x1 strb r3, [r1, 0x12] strb r3, [r0, 0x12] movs r4, 0 strb r4, [r1, 0xB] strb r3, [r1, 0x11] _0804E00C: ldr r5, [sp, 0x3C] mov r10, r5 ldr r6, [sp, 0x14] cmp r10, r6 bge _0804E018 b _0804DBEC _0804E018: ldr r7, [sp, 0x38] str r7, [sp, 0x20] adds r0, r7, 0 ldr r1, [sp, 0x10] cmp r0, r1 bge _0804E026 b _0804DBDA _0804E026: add sp, 0x58 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804E038: .4byte 0x0000fffc thumb_func_end sub_804D8C8 thumb_func_start sub_804E03C sub_804E03C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x44 str r0, [sp] str r1, [sp, 0x4] str r2, [sp, 0x8] movs r0, 0 str r0, [sp, 0xC] cmp r0, r1 blt _0804E058 b _0804E318 _0804E058: movs r2, 0 ldr r1, [sp, 0xC] adds r1, 0x1 str r1, [sp, 0x28] ldr r3, [sp, 0x8] cmp r2, r3 blt _0804E068 b _0804E30C _0804E068: ldr r4, [sp, 0xC] lsls r4, 4 str r4, [sp, 0x14] ldr r6, [sp, 0xC] subs r0, r4, r6 lsls r0, 5 ldr r1, [sp] adds r0, r1 str r0, [sp, 0x18] _0804E07A: lsls r0, r2, 5 ldr r3, [sp, 0x18] adds r4, r0, r3 ldrb r1, [r4, 0x8] str r0, [sp, 0x34] adds r2, 0x1 str r2, [sp, 0x2C] cmp r1, 0 beq _0804E08E b _0804E302 _0804E08E: ldrb r0, [r4, 0x11] cmp r0, 0 beq _0804E096 b _0804E302 _0804E096: ldrb r0, [r4, 0x12] cmp r0, 0 beq _0804E09E b _0804E302 _0804E09E: ldrb r0, [r4, 0xB] cmp r0, 0 bne _0804E0A6 b _0804E302 _0804E0A6: ldrb r0, [r4, 0xA] cmp r0, 0 bne _0804E0AE b _0804E302 _0804E0AE: ldrb r0, [r4, 0x9] cmp r0, 0 beq _0804E0B6 b _0804E302 _0804E0B6: ldrb r0, [r4, 0x10] cmp r0, 0 beq _0804E0BE b _0804E302 _0804E0BE: ldrb r0, [r4, 0x1C] cmp r0, 0 bne _0804E0C6 b _0804E302 _0804E0C6: movs r0, 0x64 bl sub_8084100 cmp r0, 0x3B bgt _0804E0D2 b _0804E302 _0804E0D2: movs r6, 0x4 ldrsh r2, [r4, r6] movs r1, 0 ldrsh r0, [r4, r1] subs r2, r0 movs r3, 0x6 ldrsh r0, [r4, r3] movs r6, 0x2 ldrsh r1, [r4, r6] subs r0, r1 adds r2, r0 str r2, [sp, 0x10] adds r0, r2, 0 cmp r2, 0 bge _0804E0F2 adds r0, 0x3 _0804E0F2: asrs r0, 2 str r0, [sp, 0x10] cmp r0, 0 bne _0804E0FE movs r0, 0x1 str r0, [sp, 0x10] _0804E0FE: movs r1, 0 ldr r2, [sp, 0x10] cmp r1, r2 blt _0804E108 b _0804E302 _0804E108: ldr r3, [sp, 0x14] ldr r4, [sp, 0xC] subs r0, r3, r4 lsls r0, 5 ldr r6, [sp] adds r0, r6 ldr r2, [sp, 0x34] adds r0, r2, r0 str r0, [sp, 0x20] _0804E11A: movs r4, 0 adds r1, 0x1 str r1, [sp, 0x30] _0804E120: movs r0, 0x4 bl sub_8084100 str r0, [sp, 0x1C] cmp r0, 0x1 beq _0804E14A cmp r0, 0x1 ble _0804E138 cmp r0, 0x2 beq _0804E168 cmp r0, 0x3 beq _0804E182 _0804E138: ldr r3, [sp, 0x20] movs r6, 0 ldrsh r7, [r3, r6] movs r1, 0x2 ldrsh r0, [r3, r1] mov r8, r0 cmp r4, 0 bne _0804E19C b _0804E15C _0804E14A: ldr r2, [sp, 0x20] movs r3, 0x4 ldrsh r0, [r2, r3] subs r7, r0, 0x1 movs r0, 0x2 ldrsh r6, [r2, r0] mov r8, r6 cmp r4, 0 beq _0804E162 _0804E15C: movs r3, 0 movs r2, 0x1 b _0804E1A0 _0804E162: movs r3, 0x1 negs r3, r3 b _0804E19E _0804E168: ldr r1, [sp, 0x20] movs r2, 0x4 ldrsh r0, [r1, r2] subs r7, r0, 0x1 movs r3, 0x6 ldrsh r0, [r1, r3] subs r0, 0x1 mov r8, r0 cmp r4, 0 beq _0804E194 movs r3, 0x1 negs r3, r3 b _0804E19E _0804E182: ldr r6, [sp, 0x20] movs r0, 0 ldrsh r7, [r6, r0] movs r1, 0x6 ldrsh r0, [r6, r1] subs r0, 0x1 mov r8, r0 cmp r4, 0 beq _0804E19C _0804E194: movs r3, 0 movs r2, 0x1 negs r2, r2 b _0804E1A0 _0804E19C: movs r3, 0x1 _0804E19E: movs r2, 0 _0804E1A0: movs r6, 0 mov r9, r6 ldr r5, [sp, 0x34] ldr r0, [sp, 0x14] str r0, [sp, 0x40] ldr r6, [sp, 0x18] adds r1, r5, r6 movs r6, 0 ldrsh r0, [r1, r6] mov r10, r0 adds r4, 0x1 str r4, [sp, 0x24] cmp r7, r10 bge _0804E1BE b _0804E2F0 _0804E1BE: movs r4, 0x4 ldrsh r0, [r1, r4] cmp r7, r0 blt _0804E1C8 b _0804E2F0 _0804E1C8: ldr r6, [sp, 0x40] ldr r1, [sp, 0xC] subs r0, r6, r1 lsls r0, 5 ldr r4, [sp] adds r0, r4 adds r4, r5, r0 movs r6, 0x2 ldrsh r0, [r4, r6] cmp r8, r0 bge _0804E1E0 b _0804E2F0 _0804E1E0: movs r1, 0x6 ldrsh r0, [r4, r1] cmp r8, r0 blt _0804E1EA b _0804E2F0 _0804E1EA: adds r0, r7, 0 mov r1, r8 str r2, [sp, 0x38] str r3, [sp, 0x3C] bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 ldr r2, [sp, 0x38] ldr r3, [sp, 0x3C] cmp r0, 0x1 bne _0804E2D0 movs r6, 0 _0804E206: ldr r1, _0804E228 lsls r0, r6, 2 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] adds r1, r7 mov r10, r1 movs r3, 0x2 ldrsh r0, [r0, r3] add r0, r8 mov r9, r0 movs r3, 0 movs r5, 0x1 negs r5, r5 _0804E222: movs r4, 0x1 negs r4, r4 b _0804E22E .align 2, 0 _0804E228: .4byte gUnknown_80F4448 _0804E22C: adds r4, 0x1 _0804E22E: cmp r4, 0x1 bgt _0804E25A mov r1, r10 adds r0, r1, r4 mov r2, r9 adds r1, r2, r5 str r3, [sp, 0x3C] bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 ldr r3, [sp, 0x3C] cmp r0, 0x1 bne _0804E22C ldrb r0, [r2, 0x9] cmp r0, 0xFF bne _0804E256 movs r3, 0x1 _0804E256: cmp r3, 0 beq _0804E22C _0804E25A: cmp r3, 0 bne _0804E26A adds r5, 0x1 cmp r5, 0x1 ble _0804E222 adds r6, 0x1 cmp r6, 0x7 ble _0804E206 _0804E26A: cmp r6, 0x8 bne _0804E2F0 movs r6, 0 ldr r3, [sp, 0x1C] lsls r1, r3, 3 ldr r0, _0804E2C4 adds r4, r1, r0 _0804E278: ldr r0, _0804E2C8 lsls r1, r6, 2 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] movs r3, 0x2 ldrsh r1, [r1, r3] adds r0, r7, r0 add r1, r8 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 movs r1, 0 cmp r0, 0x1 bne _0804E29C movs r1, 0x1 _0804E29C: ldrb r0, [r4] cmp r0, r1 bne _0804E2AA adds r4, 0x2 adds r6, 0x2 cmp r6, 0x7 ble _0804E278 _0804E2AA: cmp r6, 0x8 bne _0804E2F0 adds r0, r7, 0 mov r1, r8 bl sub_8049590 ldrh r2, [r0] ldr r4, _0804E2CC adds r1, r4, 0 ands r2, r1 strh r2, [r0] b _0804E2F0 .align 2, 0 _0804E2C4: .4byte gUnknown_80F6DD5 _0804E2C8: .4byte gUnknown_80F4448 _0804E2CC: .4byte 0x0000fffc _0804E2D0: adds r7, r3 add r8, r2 movs r6, 0x1 add r9, r6 mov r0, r9 cmp r0, 0x9 bgt _0804E2F0 movs r1, 0 ldrsh r0, [r4, r1] cmp r7, r0 blt _0804E2F0 movs r6, 0x4 ldrsh r0, [r4, r6] cmp r7, r0 bge _0804E2F0 b _0804E1C8 _0804E2F0: ldr r4, [sp, 0x24] cmp r4, 0x1 bgt _0804E2F8 b _0804E120 _0804E2F8: ldr r1, [sp, 0x30] ldr r0, [sp, 0x10] cmp r1, r0 bge _0804E302 b _0804E11A _0804E302: ldr r2, [sp, 0x2C] ldr r1, [sp, 0x8] cmp r2, r1 bge _0804E30C b _0804E07A _0804E30C: ldr r2, [sp, 0x28] str r2, [sp, 0xC] ldr r3, [sp, 0x4] cmp r2, r3 bge _0804E318 b _0804E058 _0804E318: add sp, 0x44 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804E03C thumb_func_start sub_804E328 sub_804E328: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r5, r0, 0 adds r4, r1, 0 str r2, [sp] str r3, [sp, 0x4] ldr r0, [sp, 0x28] lsls r0, 24 mov r10, r5 mov r9, r4 ldr r1, [sp, 0x2C] mov r8, r1 ldr r7, [sp, 0x30] cmp r0, 0 bne _0804E350 b _0804E470 _0804E350: movs r6, 0 _0804E352: cmp r4, r7 beq _0804E3A8 adds r0, r6, 0 adds r6, 0x1 cmp r0, 0x37 ble _0804E360 b _0804E57E _0804E360: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804E390 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] ldr r3, _0804E38C adds r1, r3, 0 ands r2, r1 movs r1, 0x1 orrs r2, r1 strh r2, [r0] b _0804E39C .align 2, 0 _0804E38C: .4byte 0x0000fffc _0804E390: cmp r5, r10 beq _0804E396 b _0804E57E _0804E396: cmp r4, r9 beq _0804E39C b _0804E57E _0804E39C: cmp r4, r7 bge _0804E3A4 adds r4, 0x1 b _0804E352 _0804E3A4: subs r4, 0x1 b _0804E352 _0804E3A8: movs r6, 0 ldr r0, [sp] cmp r5, r0 beq _0804E40A movs r7, 0 _0804E3B2: adds r0, r6, 0 adds r6, 0x1 cmp r0, 0x37 ble _0804E3BC b _0804E57E _0804E3BC: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804E3EC adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] ldr r3, _0804E3E8 adds r1, r3, 0 ands r2, r1 movs r1, 0x1 orrs r2, r1 strh r2, [r0] b _0804E3F8 .align 2, 0 _0804E3E8: .4byte 0x0000fffc _0804E3EC: cmp r5, r10 beq _0804E3F2 b _0804E57E _0804E3F2: cmp r4, r9 beq _0804E3F8 b _0804E57E _0804E3F8: ldr r0, [sp] cmp r5, r0 bge _0804E402 adds r5, 0x1 b _0804E404 _0804E402: subs r5, 0x1 _0804E404: ldr r1, [sp] cmp r5, r1 bne _0804E3B2 _0804E40A: movs r6, 0 ldr r3, [sp, 0x4] cmp r4, r3 bne _0804E414 b _0804E57E _0804E414: movs r7, 0 _0804E416: adds r0, r6, 0 adds r6, 0x1 cmp r0, 0x37 ble _0804E420 b _0804E57E _0804E420: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804E450 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] ldr r3, _0804E44C adds r1, r3, 0 ands r2, r1 movs r1, 0x1 orrs r2, r1 strh r2, [r0] b _0804E45C .align 2, 0 _0804E44C: .4byte 0x0000fffc _0804E450: cmp r5, r10 beq _0804E456 b _0804E57E _0804E456: cmp r4, r9 beq _0804E45C b _0804E57E _0804E45C: ldr r0, [sp, 0x4] cmp r4, r0 bge _0804E466 adds r4, 0x1 b _0804E468 _0804E466: subs r4, 0x1 _0804E468: ldr r1, [sp, 0x4] cmp r4, r1 bne _0804E416 b _0804E57E _0804E470: movs r6, 0 cmp r5, r8 beq _0804E4C6 movs r7, 0 _0804E478: adds r0, r6, 0 adds r6, 0x1 cmp r0, 0x37 ble _0804E482 b _0804E57E _0804E482: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804E4B0 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] ldr r3, _0804E4AC adds r1, r3, 0 ands r2, r1 movs r1, 0x1 orrs r2, r1 strh r2, [r0] b _0804E4B8 .align 2, 0 _0804E4AC: .4byte 0x0000fffc _0804E4B0: cmp r5, r10 bne _0804E57E cmp r4, r9 bne _0804E57E _0804E4B8: cmp r5, r8 bge _0804E4C0 adds r5, 0x1 b _0804E4C2 _0804E4C0: subs r5, 0x1 _0804E4C2: cmp r5, r8 bne _0804E478 _0804E4C6: movs r6, 0 ldr r0, [sp, 0x4] cmp r4, r0 beq _0804E522 movs r7, 0 _0804E4D0: adds r0, r6, 0 adds r6, 0x1 cmp r0, 0x37 bgt _0804E57E adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804E508 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] ldr r3, _0804E504 adds r1, r3, 0 ands r2, r1 movs r1, 0x1 orrs r2, r1 strh r2, [r0] b _0804E510 .align 2, 0 _0804E504: .4byte 0x0000fffc _0804E508: cmp r5, r10 bne _0804E57E cmp r4, r9 bne _0804E57E _0804E510: ldr r0, [sp, 0x4] cmp r4, r0 bge _0804E51A adds r4, 0x1 b _0804E51C _0804E51A: subs r4, 0x1 _0804E51C: ldr r1, [sp, 0x4] cmp r4, r1 bne _0804E4D0 _0804E522: movs r6, 0 ldr r3, [sp] cmp r5, r3 beq _0804E57E movs r7, 0 _0804E52C: adds r0, r6, 0 adds r6, 0x1 cmp r0, 0x37 bgt _0804E57E adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804E564 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] ldr r3, _0804E560 adds r1, r3, 0 ands r2, r1 movs r1, 0x1 orrs r2, r1 strh r2, [r0] b _0804E56C .align 2, 0 _0804E560: .4byte 0x0000fffc _0804E564: cmp r5, r10 bne _0804E57E cmp r4, r9 bne _0804E57E _0804E56C: ldr r0, [sp] cmp r5, r0 bge _0804E576 adds r5, 0x1 b _0804E578 _0804E576: subs r5, 0x1 _0804E578: ldr r1, [sp] cmp r5, r1 bne _0804E52C _0804E57E: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804E328 thumb_func_start sub_804E590 sub_804E590: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x40 str r0, [sp, 0xC] str r1, [sp, 0x10] str r2, [sp, 0x14] str r3, [sp, 0x18] movs r0, 0 str r0, [sp, 0x1C] cmp r0, r1 blt _0804E5AE b _0804E8AA _0804E5AE: movs r1, 0x1 mov r10, r1 _0804E5B2: movs r2, 0 str r2, [sp, 0x20] ldr r3, [sp, 0x1C] adds r3, 0x1 str r3, [sp, 0x2C] ldr r4, [sp, 0x14] cmp r2, r4 blt _0804E5C4 b _0804E89E _0804E5C4: ldr r5, [sp, 0x1C] lsls r5, 4 ldr r6, [sp, 0x1C] subs r1, r5, r6 lsls r1, 5 ldr r2, [sp, 0xC] movs r3, 0xF0 lsls r3, 1 adds r0, r2, r3 adds r0, r1 mov r8, r0 adds r6, r1, r2 ldr r4, _0804E6A4 adds r0, r2, r4 adds r7, r1, r0 adds r0, r2, 0 adds r0, 0x20 adds r0, r1 mov r9, r0 ldr r5, [sp, 0x60] str r5, [sp, 0x34] adds r0, r2, 0 subs r0, 0x20 adds r1, r0 str r1, [sp, 0x38] movs r0, 0 str r0, [sp, 0x3C] ldr r1, [sp, 0x1C] lsls r0, r1, 2 ldr r2, [sp, 0x18] adds r0, r2 str r0, [sp, 0x28] _0804E604: ldr r3, [sp, 0x1C] lsls r0, r3, 4 subs r0, r3 lsls r0, 5 ldr r4, [sp, 0xC] adds r0, r4 ldr r5, [sp, 0x3C] adds r4, r5, r0 ldrb r0, [r4, 0x8] cmp r0, 0 beq _0804E61C b _0804E874 _0804E61C: ldrb r0, [r4, 0x11] cmp r0, 0 beq _0804E624 b _0804E874 _0804E624: ldrb r0, [r4, 0xB] cmp r0, 0 beq _0804E62C b _0804E874 _0804E62C: ldrb r0, [r4, 0xA] cmp r0, 0 bne _0804E634 b _0804E848 _0804E634: ldrb r0, [r4, 0x9] cmp r0, 0 beq _0804E63C b _0804E848 _0804E63C: movs r1, 0 ldrsh r0, [r4, r1] adds r0, 0x1 movs r2, 0x4 ldrsh r1, [r4, r2] subs r1, 0x1 bl sub_808411C str r0, [sp, 0x24] movs r3, 0x2 ldrsh r0, [r4, r3] adds r0, 0x1 movs r5, 0x6 ldrsh r1, [r4, r5] subs r1, 0x1 bl sub_808411C adds r5, r0, 0 ldr r0, [sp, 0x20] cmp r0, 0 ble _0804E6DC subs r4, 0x20 ldrb r0, [r4, 0x8] cmp r0, 0 bne _0804E6DC ldrb r0, [r4, 0x12] cmp r0, 0 bne _0804E6DC ldrb r0, [r4, 0xB] cmp r0, 0 beq _0804E6DC ldrb r0, [r4, 0xA] cmp r0, 0 beq _0804E6A8 movs r1, 0 ldrsh r0, [r4, r1] adds r0, 0x1 movs r2, 0x4 ldrsh r1, [r4, r2] subs r1, 0x1 bl sub_808411C adds r5, r0, 0 movs r3, 0x2 ldrsh r0, [r4, r3] adds r0, 0x1 movs r2, 0x6 ldrsh r1, [r4, r2] subs r1, 0x1 bl sub_808411C b _0804E6AC .align 2, 0 _0804E6A4: .4byte 0xfffffe20 _0804E6A8: movs r3, 0 ldrsh r5, [r4, r3] _0804E6AC: movs r4, 0x2 ldrsh r1, [r6, r4] ldr r0, [sp, 0x38] movs r2, 0x6 ldrsh r3, [r0, r2] subs r3, 0x1 mov r4, r10 str r4, [sp] ldr r2, [sp, 0x28] ldr r0, [r2] str r0, [sp, 0x4] ldr r4, [sp, 0x34] ldr r0, [r4] str r0, [sp, 0x8] ldr r0, [sp, 0x24] adds r2, r5, 0 bl sub_804E328 mov r5, r10 strb r5, [r6, 0xB] strb r5, [r6, 0x13] ldr r0, [sp, 0x38] strb r5, [r0, 0x14] b _0804E874 _0804E6DC: ldr r0, [sp, 0x14] subs r0, 0x1 ldr r1, [sp, 0x20] cmp r1, r0 bge _0804E758 mov r2, r9 ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804E758 ldrb r0, [r2, 0x12] cmp r0, 0 bne _0804E758 ldrb r0, [r2, 0xB] cmp r0, 0 beq _0804E758 ldrb r0, [r2, 0xA] cmp r0, 0 beq _0804E724 movs r3, 0x20 ldrsh r0, [r6, r3] adds r0, 0x1 movs r4, 0x24 ldrsh r1, [r6, r4] subs r1, 0x1 bl sub_808411C adds r5, r0, 0 movs r1, 0x22 ldrsh r0, [r6, r1] adds r0, 0x1 movs r2, 0x26 ldrsh r1, [r6, r2] subs r1, 0x1 bl sub_808411C b _0804E728 _0804E724: movs r3, 0x20 ldrsh r5, [r6, r3] _0804E728: movs r4, 0x6 ldrsh r1, [r6, r4] subs r1, 0x1 movs r0, 0x22 ldrsh r3, [r6, r0] mov r2, r10 str r2, [sp] ldr r4, [sp, 0x28] ldr r0, [r4] str r0, [sp, 0x4] ldr r2, [sp, 0x34] ldr r0, [r2, 0x4] subs r0, 0x1 str r0, [sp, 0x8] ldr r0, [sp, 0x24] adds r2, r5, 0 bl sub_804E328 mov r3, r10 strb r3, [r6, 0xB] strb r3, [r6, 0x14] mov r4, r9 strb r3, [r4, 0x13] b _0804E874 _0804E758: ldr r0, [sp, 0x1C] cmp r0, 0 ble _0804E7C8 ldrb r0, [r7, 0x8] cmp r0, 0 bne _0804E7C8 ldrb r0, [r7, 0x12] cmp r0, 0 bne _0804E7C8 ldrb r0, [r7, 0xB] cmp r0, 0 beq _0804E7C8 ldrb r0, [r7, 0xA] cmp r0, 0 beq _0804E79A movs r1, 0 ldrsh r0, [r7, r1] adds r0, 0x1 movs r2, 0x4 ldrsh r1, [r7, r2] subs r1, 0x1 bl sub_808411C movs r3, 0x2 ldrsh r0, [r7, r3] adds r0, 0x1 movs r4, 0x6 ldrsh r1, [r7, r4] subs r1, 0x1 bl sub_808411C adds r3, r0, 0 b _0804E79E _0804E79A: movs r0, 0x2 ldrsh r3, [r7, r0] _0804E79E: movs r1, 0 ldrsh r0, [r6, r1] movs r4, 0 ldrsh r2, [r7, r4] subs r2, 0x1 movs r1, 0 str r1, [sp] ldr r4, [sp, 0x28] ldr r1, [r4] str r1, [sp, 0x4] ldr r4, [sp, 0x34] ldr r1, [r4] str r1, [sp, 0x8] adds r1, r5, 0 bl sub_804E328 mov r5, r10 strb r5, [r6, 0xB] strb r5, [r6, 0x15] strb r5, [r7, 0x16] b _0804E874 _0804E7C8: ldr r0, [sp, 0x10] subs r0, 0x1 ldr r1, [sp, 0x1C] cmp r1, r0 bge _0804E874 mov r2, r8 ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804E874 ldrb r0, [r2, 0x12] cmp r0, 0 bne _0804E874 ldrb r0, [r2, 0xB] cmp r0, 0 beq _0804E874 ldrb r0, [r2, 0xA] cmp r0, 0 beq _0804E812 movs r3, 0 ldrsh r0, [r2, r3] adds r0, 0x1 movs r4, 0x4 ldrsh r1, [r2, r4] subs r1, 0x1 bl sub_808411C mov r1, r8 movs r2, 0x2 ldrsh r0, [r1, r2] adds r0, 0x1 movs r3, 0x6 ldrsh r1, [r1, r3] subs r1, 0x1 bl sub_808411C adds r3, r0, 0 b _0804E818 _0804E812: mov r4, r8 movs r0, 0x2 ldrsh r3, [r4, r0] _0804E818: movs r1, 0x4 ldrsh r0, [r6, r1] subs r0, 0x1 mov r4, r8 movs r1, 0 ldrsh r2, [r4, r1] movs r1, 0 str r1, [sp] ldr r4, [sp, 0x28] ldr r1, [r4, 0x4] subs r1, 0x1 str r1, [sp, 0x4] ldr r4, [sp, 0x34] ldr r1, [r4] str r1, [sp, 0x8] adds r1, r5, 0 bl sub_804E328 mov r5, r10 strb r5, [r6, 0xB] strb r5, [r6, 0x16] mov r0, r8 strb r5, [r0, 0x15] b _0804E874 _0804E848: movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0x2 ldrsh r1, [r6, r2] bl sub_8049590 ldrh r1, [r0] ldr r3, _0804E99C adds r2, r3, 0 ands r1, r2 strh r1, [r0] ldrh r1, [r0, 0x4] ldr r4, _0804E9A0 adds r2, r4, 0 ands r1, r2 ldr r5, _0804E9A4 adds r2, r5, 0 ands r1, r2 subs r3, 0x1 adds r2, r3, 0 ands r1, r2 strh r1, [r0, 0x4] _0804E874: movs r4, 0x20 add r8, r4 adds r6, 0x20 adds r7, 0x20 add r9, r4 ldr r5, [sp, 0x34] adds r5, 0x4 str r5, [sp, 0x34] ldr r0, [sp, 0x38] adds r0, 0x20 str r0, [sp, 0x38] ldr r1, [sp, 0x3C] adds r1, 0x20 str r1, [sp, 0x3C] ldr r2, [sp, 0x20] adds r2, 0x1 str r2, [sp, 0x20] ldr r3, [sp, 0x14] cmp r2, r3 bge _0804E89E b _0804E604 _0804E89E: ldr r4, [sp, 0x2C] str r4, [sp, 0x1C] ldr r5, [sp, 0x10] cmp r4, r5 bge _0804E8AA b _0804E5B2 _0804E8AA: movs r6, 0 str r6, [sp, 0x1C] ldr r0, [sp, 0x10] cmp r6, r0 bge _0804E98A _0804E8B4: movs r1, 0 str r1, [sp, 0x20] ldr r2, [sp, 0x1C] adds r2, 0x1 str r2, [sp, 0x2C] ldr r3, [sp, 0x14] cmp r1, r3 bge _0804E980 ldr r4, [sp, 0x1C] lsls r4, 4 mov r9, r4 _0804E8CA: ldr r5, [sp, 0x20] lsls r2, r5, 5 ldr r6, [sp, 0x1C] lsls r3, r6, 4 subs r0, r3, r6 lsls r0, 5 ldr r1, [sp, 0xC] adds r4, r0, r1 adds r1, r2, r4 ldrb r0, [r1, 0x8] mov r8, r2 adds r5, 0x1 str r5, [sp, 0x30] cmp r0, 0 bne _0804E976 ldrb r0, [r1, 0x11] cmp r0, 0 bne _0804E976 ldrb r0, [r1, 0xB] cmp r0, 0 bne _0804E976 ldrb r0, [r1, 0xF] cmp r0, 0 bne _0804E976 movs r6, 0 ldrsh r5, [r1, r6] movs r6, 0x4 ldrsh r0, [r1, r6] cmp r5, r0 bge _0804E976 mov r10, r4 _0804E908: ldr r1, [sp, 0x1C] subs r0, r3, r1 lsls r0, 5 ldr r3, [sp, 0xC] adds r0, r3 adds r0, r2, r0 movs r6, 0x2 ldrsh r4, [r0, r6] movs r1, 0x6 ldrsh r0, [r0, r1] adds r7, r5, 0x1 cmp r4, r0 bge _0804E95C mov r6, r8 add r6, r10 _0804E926: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] ldr r3, _0804E99C adds r1, r3, 0 ands r2, r1 strh r2, [r0] ldrh r2, [r0, 0x4] adds r3, 0x1 adds r1, r3, 0 ands r2, r1 adds r3, 0x1 adds r1, r3, 0 ands r2, r1 subs r3, 0x3 adds r1, r3, 0 ands r2, r1 strh r2, [r0, 0x4] movs r1, 0xFF strb r1, [r0, 0x9] adds r4, 0x1 movs r1, 0x6 ldrsh r0, [r6, r1] cmp r4, r0 blt _0804E926 _0804E95C: adds r5, r7, 0 mov r2, r8 mov r3, r9 ldr r4, [sp, 0x1C] subs r0, r3, r4 lsls r0, 5 ldr r6, [sp, 0xC] adds r0, r6 adds r0, r2, r0 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r5, r0 blt _0804E908 _0804E976: ldr r2, [sp, 0x30] str r2, [sp, 0x20] ldr r3, [sp, 0x14] cmp r2, r3 blt _0804E8CA _0804E980: ldr r4, [sp, 0x2C] str r4, [sp, 0x1C] ldr r5, [sp, 0x10] cmp r4, r5 blt _0804E8B4 _0804E98A: add sp, 0x40 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804E99C: .4byte 0x0000fffc _0804E9A0: .4byte 0x0000fffe _0804E9A4: .4byte 0x0000fffd thumb_func_end sub_804E590 thumb_func_start sub_804E9A8 sub_804E9A8: push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 lsls r2, 24 lsrs r2, 24 ldrh r0, [r4] ldr r5, _0804E9D8 adds r3, r5, 0 ands r3, r0 strh r3, [r4] cmp r1, 0 beq _0804E9D0 ldrb r0, [r4, 0x9] cmp r0, r2 bne _0804E9D0 adds r0, r3, 0 ands r0, r5 movs r1, 0x2 orrs r0, r1 strh r0, [r4] _0804E9D0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804E9D8: .4byte 0x0000fffc thumb_func_end sub_804E9A8 thumb_func_start sub_804E9DC sub_804E9DC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r5, 0 movs r0, 0x3 mov r8, r0 movs r7, 0x8 ldr r3, _0804EAF0 mov r9, r3 _0804E9F2: movs r4, 0 adds r6, r5, 0x1 mov r10, r6 _0804E9F8: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 adds r6, r4, 0x1 cmp r0, 0x1 beq _0804EA0E b _0804EB0E _0804EA0E: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrb r0, [r0, 0x9] cmp r0, 0xFF bne _0804EAF4 cmp r5, 0 ble _0804EA4E subs r0, r5, 0x1 adds r1, r4, 0 bl sub_8049590 adds r2, r0, 0 ldrb r0, [r2, 0x9] cmp r0, 0xFF beq _0804EA4E ldrh r0, [r2] adds r1, r0, 0 orrs r1, r7 movs r3, 0 strh r1, [r2] adds r0, r1, 0 mov r6, r8 ands r0, r6 cmp r0, 0x2 bne _0804EA4E mov r0, r9 ands r1, r0 movs r0, 0x1 orrs r1, r0 strh r1, [r2] _0804EA4E: cmp r4, 0 ble _0804EA82 subs r1, r4, 0x1 adds r0, r5, 0 bl sub_8049590 adds r2, r0, 0 ldrb r0, [r2, 0x9] cmp r0, 0xFF beq _0804EA82 ldrh r0, [r2] adds r1, r0, 0 orrs r1, r7 movs r3, 0 orrs r1, r7 strh r1, [r2] adds r0, r1, 0 mov r6, r8 ands r0, r6 cmp r0, 0x2 bne _0804EA82 mov r0, r9 ands r1, r0 movs r0, 0x1 orrs r1, r0 strh r1, [r2] _0804EA82: adds r6, r4, 0x1 cmp r4, 0x1E bgt _0804EABA adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 adds r2, r0, 0 ldrb r0, [r2, 0x9] cmp r0, 0xFF beq _0804EABA ldrh r0, [r2] adds r1, r0, 0 orrs r1, r7 movs r3, 0 mov r12, r3 orrs r1, r7 strh r1, [r2] adds r0, r1, 0 mov r3, r8 ands r0, r3 cmp r0, 0x2 bne _0804EABA mov r0, r9 ands r1, r0 movs r0, 0x1 orrs r1, r0 strh r1, [r2] _0804EABA: cmp r5, 0x36 bgt _0804EB0E mov r0, r10 adds r1, r4, 0 bl sub_8049590 adds r2, r0, 0 ldrb r0, [r2, 0x9] cmp r0, 0xFF beq _0804EB0E ldrh r0, [r2] adds r1, r0, 0 orrs r1, r7 movs r3, 0 orrs r1, r7 strh r1, [r2] adds r0, r1, 0 mov r4, r8 ands r0, r4 cmp r0, 0x2 bne _0804EB0E mov r0, r9 ands r1, r0 movs r0, 0x1 orrs r1, r0 strh r1, [r2] b _0804EB0E .align 2, 0 _0804EAF0: .4byte 0x0000fffc _0804EAF4: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrb r0, [r0, 0x9] cmp r0, 0xFE bne _0804EB0E adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0xFF strb r1, [r0, 0x9] _0804EB0E: adds r4, r6, 0 cmp r4, 0x1F bgt _0804EB16 b _0804E9F8 _0804EB16: mov r5, r10 cmp r5, 0x37 bgt _0804EB1E b _0804E9F2 _0804EB1E: bl sub_804EB30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804E9DC thumb_func_start sub_804EB30 sub_804EB30: push {r4-r7,lr} ldr r0, _0804EBB4 ldr r6, [r0] movs r2, 0 movs r1, 0x1F ldr r3, _0804EBB8 adds r0, r6, r3 _0804EB3E: strh r2, [r0] subs r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _0804EB3E movs r5, 0 _0804EB4A: movs r4, 0 adds r7, r5, 0x1 _0804EB4E: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0804EBA2 adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrb r3, [r0, 0x9] cmp r3, 0x1F bhi _0804EBA2 lsls r0, r3, 1 ldr r2, _0804EBBC adds r1, r6, r2 adds r2, r1, r0 movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0x1F bgt _0804EBA2 lsls r0, 2 lsls r1, r3, 7 adds r0, r1 adds r0, r6, r0 ldr r3, _0804EBC0 adds r0, r3 strh r5, [r0] movs r3, 0 ldrsh r0, [r2, r3] lsls r0, 2 adds r0, r1 adds r0, r6, r0 ldr r1, _0804EBC4 adds r0, r1 strh r4, [r0] ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] _0804EBA2: adds r4, 0x1 cmp r4, 0x1F ble _0804EB4E adds r5, r7, 0 cmp r5, 0x37 ble _0804EB4A pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804EBB4: .4byte gUnknown_203B418 _0804EBB8: .4byte 0x00010882 _0804EBBC: .4byte 0x00010844 _0804EBC0: .4byte 0x00010884 _0804EBC4: .4byte 0x00010886 thumb_func_end sub_804EB30 thumb_func_start sub_804EBC8 sub_804EBC8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x58 str r0, [sp, 0x40] str r1, [sp, 0x44] mov r10, r2 adds r4, r3, 0 ldr r0, _0804EE90 ldr r0, [r0] mov r8, r0 ldr r1, _0804EE94 ldr r0, _0804EE98 strh r0, [r1] movs r0, 0x1 negs r0, r0 strh r0, [r1, 0x2] ldr r0, _0804EE9C ldrb r0, [r0] cmp r0, 0 beq _0804EBF8 b _0804EED4 _0804EBF8: bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0804EC06 b _0804EED4 _0804EC06: cmp r4, 0 bne _0804EC0C b _0804EED4 _0804EC0C: movs r0, 0x64 bl sub_8084100 cmp r4, r0 bgt _0804EC18 b _0804EED4 _0804EC18: movs r5, 0 add r7, sp, 0x20 adds r1, r7, 0 mov r0, sp _0804EC20: strh r5, [r0] strh r5, [r1] adds r1, 0x2 adds r0, 0x2 adds r5, 0x1 cmp r5, 0xE ble _0804EC20 movs r5, 0xC7 _0804EC30: movs r0, 0xF bl sub_8084100 adds r4, r0, 0 movs r0, 0xF bl sub_8084100 lsls r4, 1 mov r1, sp adds r2, r1, r4 movs r4, 0 ldrsh r3, [r2, r4] lsls r0, 1 adds r1, r0 ldrh r0, [r1] strh r0, [r2] strh r3, [r1] subs r5, 0x1 cmp r5, 0 bge _0804EC30 adds r6, r7, 0 movs r5, 0xC7 _0804EC5C: movs r0, 0xF bl sub_8084100 adds r4, r0, 0 movs r0, 0xF bl sub_8084100 lsls r4, 1 adds r4, r6, r4 movs r1, 0 ldrsh r2, [r4, r1] lsls r0, 1 adds r0, r6, r0 ldrh r1, [r0] strh r1, [r4] strh r2, [r0] subs r5, 0x1 cmp r5, 0 bge _0804EC5C movs r5, 0 _0804EC84: lsls r0, r5, 1 add r0, sp movs r3, 0 ldrsh r2, [r0, r3] mov r9, r2 ldr r4, [sp, 0x44] cmp r9, r4 blt _0804EC96 b _0804EECC _0804EC96: movs r4, 0 _0804EC98: lsls r0, r4, 1 adds r0, r7, r0 movs r2, 0 ldrsh r1, [r0, r2] cmp r1, r10 blt _0804ECA6 b _0804EEC4 _0804ECA6: lsls r1, 5 mov r3, r9 lsls r2, r3, 4 subs r0, r2, r3 lsls r0, 5 ldr r3, [sp, 0x40] adds r0, r3 adds r3, r1, r0 ldrb r0, [r3, 0x8] str r1, [sp, 0x4C] str r2, [sp, 0x48] cmp r0, 0 beq _0804ECC2 b _0804EEC4 _0804ECC2: ldrb r0, [r3, 0x11] cmp r0, 0 beq _0804ECCA b _0804EEC4 _0804ECCA: ldrb r0, [r3, 0x12] cmp r0, 0 beq _0804ECD2 b _0804EEC4 _0804ECD2: ldrb r0, [r3, 0xB] cmp r0, 0 bne _0804ECDA b _0804EEC4 _0804ECDA: ldrb r0, [r3, 0xA] cmp r0, 0 bne _0804ECE2 b _0804EEC4 _0804ECE2: ldrb r0, [r3, 0x9] cmp r0, 0 beq _0804ECEA b _0804EEC4 _0804ECEA: ldrb r0, [r3, 0x10] cmp r0, 0 beq _0804ECF2 b _0804EEC4 _0804ECF2: ldrb r0, [r3, 0x1D] cmp r0, 0 beq _0804ECFA b _0804EEC4 _0804ECFA: movs r0, 0x4 ldrsh r1, [r3, r0] movs r2, 0 ldrsh r0, [r3, r2] subs r1, r0 cmp r1, 0 bge _0804ED0A negs r1, r1 _0804ED0A: cmp r1, 0x4 bgt _0804ED10 b _0804EEC4 _0804ED10: movs r0, 0x6 ldrsh r1, [r3, r0] movs r2, 0x2 ldrsh r0, [r3, r2] subs r1, r0 cmp r1, 0 bge _0804ED20 negs r1, r1 _0804ED20: cmp r1, 0x3 bgt _0804ED26 b _0804EEC4 _0804ED26: ldr r1, _0804EEA0 movs r0, 0x1 strb r0, [r1] movs r0, 0x1 strb r0, [r3, 0xC] ldr r2, _0804EEA4 movs r4, 0 ldrsh r0, [r3, r4] adds r0, 0x1 str r0, [r2] movs r7, 0x4 ldrsh r0, [r3, r7] subs r0, 0x1 str r0, [r2, 0x8] movs r0, 0x2 ldrsh r1, [r3, r0] adds r1, 0x1 str r1, [r2, 0x4] movs r4, 0x6 ldrsh r3, [r3, r4] subs r0, r3, 0x1 str r0, [r2, 0xC] subs r0, r1 mov r10, r2 cmp r0, 0x2 bgt _0804ED5C str r3, [r2, 0xC] _0804ED5C: ldr r0, _0804EEA8 add r0, r8 ldr r1, _0804EEAC str r1, [r0] ldr r0, _0804EEB0 add r0, r8 str r1, [r0] ldr r0, _0804EEB4 add r0, r8 ldr r1, _0804EEB8 str r1, [r0] ldr r0, _0804EEBC add r0, r8 str r1, [r0] mov r7, r10 ldr r5, [r7] ldr r0, [r7, 0x8] cmp r5, r0 bge _0804EDFA mov r3, r10 _0804ED84: ldr r4, [r3, 0x4] ldr r0, [r3, 0xC] adds r1, r5, 0x1 str r1, [sp, 0x54] cmp r4, r0 bge _0804EDF0 ldr r6, _0804EEA8 add r6, r8 ldr r2, _0804EEA4 mov r10, r2 _0804ED98: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp, 0x50] bl sub_8049590 ldrh r2, [r0] movs r1, 0x20 orrs r1, r2 strh r1, [r0] ldrh r2, [r0, 0x4] ldr r7, _0804EEC0 adds r1, r7, 0 ands r2, r1 adds r7, 0x7 adds r1, r7, 0 ands r2, r1 strh r2, [r0, 0x4] ldr r0, [r6] ldr r3, [sp, 0x50] cmp r0, r5 ble _0804EDC4 str r5, [r6] _0804EDC4: ldr r1, _0804EEB0 add r1, r8 ldr r0, [r1] cmp r0, r4 ble _0804EDD0 str r4, [r1] _0804EDD0: ldr r1, _0804EEB4 add r1, r8 ldr r0, [r1] cmp r0, r5 bge _0804EDDC str r5, [r1] _0804EDDC: ldr r1, _0804EEBC add r1, r8 ldr r0, [r1] cmp r0, r4 bge _0804EDE8 str r4, [r1] _0804EDE8: adds r4, 0x1 ldr r0, [r3, 0xC] cmp r4, r0 blt _0804ED98 _0804EDF0: ldr r5, [sp, 0x54] mov r1, r10 ldr r0, [r1, 0x8] cmp r5, r0 blt _0804ED84 _0804EDFA: ldr r3, [sp, 0x4C] ldr r2, [sp, 0x48] mov r4, r9 subs r0, r2, r4 lsls r0, 5 ldr r7, [sp, 0x40] adds r1, r0, r7 adds r0, r3, r1 movs r4, 0 ldrsh r5, [r0, r4] movs r7, 0x4 ldrsh r0, [r0, r7] cmp r5, r0 bge _0804EE6C mov r8, r1 _0804EE18: mov r1, r9 subs r0, r2, r1 lsls r0, 5 ldr r2, [sp, 0x40] adds r0, r2 adds r0, r3, r0 movs r3, 0x2 ldrsh r4, [r0, r3] movs r7, 0x6 ldrsh r0, [r0, r7] adds r1, r5, 0x1 str r1, [sp, 0x54] cmp r4, r0 bge _0804EE52 ldr r6, [sp, 0x4C] add r6, r8 _0804EE38: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x10 orrs r1, r2 strh r1, [r0, 0x4] adds r4, 0x1 movs r2, 0x6 ldrsh r0, [r6, r2] cmp r4, r0 blt _0804EE38 _0804EE52: ldr r5, [sp, 0x54] ldr r3, [sp, 0x4C] ldr r2, [sp, 0x48] mov r4, r9 subs r0, r2, r4 lsls r0, 5 ldr r7, [sp, 0x40] adds r0, r7 adds r0, r3, r0 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r5, r0 blt _0804EE18 _0804EE6C: ldr r2, _0804EEA4 ldr r0, [r2] ldr r1, [r2, 0x8] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r5, r0, 1 ldr r0, [r2, 0x4] ldr r1, [r2, 0xC] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r4, r0, 1 ldr r0, _0804EE94 strh r5, [r0] strh r4, [r0, 0x2] b _0804EED4 .align 2, 0 _0804EE90: .4byte gUnknown_203B418 _0804EE94: .4byte gUnknown_202F1D8 _0804EE98: .4byte 0x0000ffff _0804EE9C: .4byte gUnknown_202F1AB _0804EEA0: .4byte gUnknown_202F1AA _0804EEA4: .4byte gUnknown_202F1B8 _0804EEA8: .4byte 0x0000e240 _0804EEAC: .4byte 0x0000270f _0804EEB0: .4byte 0x0000e244 _0804EEB4: .4byte 0x0000e248 _0804EEB8: .4byte 0xffffd8f1 _0804EEBC: .4byte 0x0000e24c _0804EEC0: .4byte 0x0000fff7 _0804EEC4: adds r4, 0x1 cmp r4, 0xE bgt _0804EECC b _0804EC98 _0804EECC: adds r5, 0x1 cmp r5, 0xE bgt _0804EED4 b _0804EC84 _0804EED4: add sp, 0x58 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804EBC8 thumb_func_start sub_804EEE4 sub_804EEE4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x108 str r0, [sp, 0x100] mov r8, r1 adds r7, r2, 0 adds r4, r3, 0 ldr r5, _0804F094 ldr r0, [r5] str r0, [sp, 0x104] cmp r4, 0 bne _0804EF04 b _0804F0C0 _0804EF04: movs r0, 0x64 bl sub_8084100 cmp r4, r0 bgt _0804EF10 b _0804F0C0 _0804EF10: ldr r0, _0804F098 ldrb r0, [r0] cmp r0, 0 beq _0804EF1A b _0804F0C0 _0804EF1A: ldr r0, [r5] movs r1, 0xD1 lsls r1, 3 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 beq _0804EF2C b _0804F0C0 _0804EF2C: bl sub_8043D10 lsls r0, 24 cmp r0, 0 beq _0804EF38 b _0804F0C0 _0804EF38: movs r6, 0 movs r1, 0 cmp r1, r8 bge _0804EF94 _0804EF40: adds r2, r1, 0x1 cmp r7, 0 ble _0804EF8E lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldr r1, [sp, 0x100] adds r1, 0x8 adds r1, r0, r1 adds r3, r7, 0 _0804EF54: ldrb r0, [r1] cmp r0, 0 bne _0804EF86 ldrb r0, [r1, 0x9] cmp r0, 0 bne _0804EF86 ldrb r0, [r1, 0x3] cmp r0, 0 beq _0804EF86 ldrb r0, [r1, 0x2] cmp r0, 0 beq _0804EF86 ldrb r0, [r1, 0x4] cmp r0, 0 bne _0804EF86 ldrb r0, [r1, 0x7] cmp r0, 0 bne _0804EF86 ldrb r0, [r1, 0x8] cmp r0, 0 bne _0804EF86 ldrb r0, [r1, 0x1] cmp r0, 0 bne _0804EF86 adds r6, 0x1 _0804EF86: adds r1, 0x20 subs r3, 0x1 cmp r3, 0 bne _0804EF54 _0804EF8E: adds r1, r2, 0 cmp r1, r8 blt _0804EF40 _0804EF94: cmp r6, 0 bne _0804EF9A b _0804F0C0 _0804EF9A: movs r1, 0 mov r0, sp adds r0, 0xFF _0804EFA0: strb r1, [r0] subs r0, 0x1 cmp r0, sp bge _0804EFA0 mov r1, sp movs r0, 0x1 strb r0, [r1] movs r5, 0x3F _0804EFB0: adds r0, r6, 0 bl sub_8084100 adds r4, r0, 0 adds r0, r6, 0 bl sub_8084100 mov r3, sp adds r2, r3, r4 ldrb r3, [r2] mov r4, sp adds r1, r4, r0 ldrb r0, [r1] strb r0, [r2] strb r3, [r1] subs r5, 0x1 cmp r5, 0 bge _0804EFB0 movs r5, 0 movs r1, 0 cmp r1, r8 bge _0804F0C0 ldr r6, [sp, 0x100] mov r9, r6 movs r4, 0 _0804EFE2: movs r3, 0 cmp r3, r7 bge _0804F0B2 mov r10, r3 lsls r0, r4, 5 ldr r6, [sp, 0x100] adds r2, r0, r6 _0804EFF0: ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804F0A6 ldrb r0, [r2, 0x11] cmp r0, 0 bne _0804F0A6 ldrb r0, [r2, 0xB] cmp r0, 0 beq _0804F0A6 ldrb r0, [r2, 0xA] cmp r0, 0 beq _0804F0A6 ldrb r0, [r2, 0xC] cmp r0, 0 bne _0804F0A6 ldrb r0, [r2, 0xF] cmp r0, 0 bne _0804F0A6 ldrb r0, [r2, 0x10] cmp r0, 0 bne _0804F0A6 ldrb r0, [r2, 0x9] cmp r0, 0 bne _0804F0A6 mov r6, sp adds r0, r6, r5 ldrb r0, [r0] cmp r0, 0 beq _0804F0A4 ldr r1, _0804F09C movs r0, 0x1 strb r0, [r1] movs r0, 0x1 strb r0, [r2, 0xE] movs r0, 0 ldrsh r5, [r2, r0] movs r1, 0x4 ldrsh r0, [r2, r1] cmp r5, r0 bge _0804F0C0 mov r2, r10 add r2, r9 mov r8, r2 _0804F046: mov r1, r10 add r1, r9 movs r3, 0x2 ldrsh r4, [r1, r3] movs r6, 0x6 ldrsh r0, [r1, r6] adds r7, r5, 0x1 cmp r4, r0 bge _0804F086 adds r6, r1, 0 _0804F05A: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] movs r1, 0x40 orrs r1, r2 strh r1, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrb r1, [r0, 0x9] ldr r2, [sp, 0x104] ldr r3, _0804F0A0 adds r0, r2, r3 strb r1, [r0] adds r4, 0x1 movs r1, 0x6 ldrsh r0, [r6, r1] cmp r4, r0 blt _0804F05A _0804F086: adds r5, r7, 0 mov r2, r8 movs r3, 0x4 ldrsh r0, [r2, r3] cmp r5, r0 blt _0804F046 b _0804F0C0 .align 2, 0 _0804F094: .4byte gUnknown_203B418 _0804F098: .4byte gUnknown_202F1AA _0804F09C: .4byte gUnknown_202F1AB _0804F0A0: .4byte 0x00003a0c _0804F0A4: adds r5, 0x1 _0804F0A6: movs r6, 0x20 add r10, r6 adds r2, 0x20 adds r3, 0x1 cmp r3, r7 blt _0804EFF0 _0804F0B2: movs r0, 0xF0 lsls r0, 1 add r9, r0 adds r4, 0xF adds r1, 0x1 cmp r1, r8 blt _0804EFE2 _0804F0C0: add sp, 0x108 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804EEE4 thumb_func_start sub_804F0D0 sub_804F0D0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x104 str r0, [sp, 0x100] mov r10, r1 mov r9, r2 adds r4, r3, 0 ldr r0, _0804F244 ldr r5, [r0] cmp r4, 0 bne _0804F0EE b _0804F266 _0804F0EE: movs r0, 0x64 bl sub_8084100 cmp r4, r0 bgt _0804F0FA b _0804F266 _0804F0FA: ldr r1, _0804F248 adds r0, r5, r1 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 blt _0804F108 b _0804F266 _0804F108: movs r5, 0 movs r6, 0 cmp r6, r10 bge _0804F184 _0804F110: adds r7, r6, 0x1 mov r4, r9 cmp r4, 0 ble _0804F17E lsls r0, r6, 4 subs r0, r6 lsls r0, 5 ldr r6, [sp, 0x100] adds r2, r0, r6 _0804F122: ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804F176 ldrb r0, [r2, 0x11] cmp r0, 0 bne _0804F176 ldrb r0, [r2, 0xB] cmp r0, 0 beq _0804F176 ldrb r0, [r2, 0xA] cmp r0, 0 beq _0804F176 ldrb r0, [r2, 0xC] cmp r0, 0 bne _0804F176 ldrb r0, [r2, 0xF] cmp r0, 0 bne _0804F176 ldrb r0, [r2, 0xE] cmp r0, 0 bne _0804F176 ldrb r0, [r2, 0x9] cmp r0, 0 bne _0804F176 movs r1, 0x4 ldrsh r0, [r2, r1] movs r3, 0 ldrsh r1, [r2, r3] subs r0, r1 movs r3, 0x1 ands r0, r3 cmp r0, 0 beq _0804F176 movs r6, 0x6 ldrsh r0, [r2, r6] movs r6, 0x2 ldrsh r1, [r2, r6] subs r0, r1 ands r0, r3 cmp r0, 0 beq _0804F176 adds r5, 0x1 _0804F176: adds r2, 0x20 subs r4, 0x1 cmp r4, 0 bne _0804F122 _0804F17E: adds r6, r7, 0 cmp r6, r10 blt _0804F110 _0804F184: cmp r5, 0 beq _0804F266 movs r1, 0 mov r0, sp adds r0, 0xFF _0804F18E: strb r1, [r0] subs r0, 0x1 cmp r0, sp bge _0804F18E mov r1, sp movs r0, 0x1 strb r0, [r1] movs r7, 0x3F mov r8, r7 _0804F1A0: adds r0, r5, 0 bl sub_8084100 adds r4, r0, 0 adds r0, r5, 0 bl sub_8084100 mov r1, sp adds r2, r1, r4 ldrb r3, [r2] adds r1, r0 ldrb r0, [r1] strb r0, [r2] strb r3, [r1] movs r3, 0x1 negs r3, r3 add r8, r3 mov r4, r8 cmp r4, 0 bge _0804F1A0 movs r6, 0 mov r8, r6 cmp r6, r10 bge _0804F266 ldr r7, [sp, 0x100] mov r12, r7 _0804F1D4: movs r4, 0 cmp r4, r9 bge _0804F25A mov r2, r12 mov r5, r12 _0804F1DE: ldrb r0, [r2, 0x8] cmp r0, 0 bne _0804F250 ldrb r0, [r2, 0x11] cmp r0, 0 bne _0804F250 ldrb r0, [r2, 0xB] cmp r0, 0 beq _0804F250 ldrb r0, [r2, 0xA] cmp r0, 0 beq _0804F250 ldrb r0, [r2, 0xC] cmp r0, 0 bne _0804F250 ldrb r0, [r2, 0xF] cmp r0, 0 bne _0804F250 ldrb r0, [r2, 0xE] cmp r0, 0 bne _0804F250 ldrb r0, [r2, 0x9] cmp r0, 0 bne _0804F250 movs r1, 0x4 ldrsh r0, [r2, r1] movs r3, 0 ldrsh r1, [r2, r3] subs r0, r1 movs r3, 0x1 ands r0, r3 cmp r0, 0 beq _0804F250 movs r7, 0x6 ldrsh r0, [r2, r7] movs r7, 0x2 ldrsh r1, [r2, r7] subs r0, r1 ands r0, r3 cmp r0, 0 beq _0804F250 mov r0, sp add r0, r8 ldrb r0, [r0] cmp r0, 0 beq _0804F24C adds r0, r5, 0 movs r1, 0 bl sub_804F278 b _0804F266 .align 2, 0 _0804F244: .4byte gUnknown_203B418 _0804F248: .4byte 0x00003a16 _0804F24C: movs r0, 0x1 add r8, r0 _0804F250: adds r2, 0x20 adds r5, 0x20 adds r4, 0x1 cmp r4, r9 blt _0804F1DE _0804F25A: movs r1, 0xF0 lsls r1, 1 add r12, r1 adds r6, 0x1 cmp r6, r10 blt _0804F1D4 _0804F266: add sp, 0x104 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804F0D0 thumb_func_start sub_804F278 sub_804F278: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 mov r8, r1 ldr r1, _0804F2B0 movs r0, 0x1 strb r0, [r1] movs r0, 0x1 strb r0, [r4, 0x10] movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C ldrb r0, [r0, 0x9] mov r9, r0 movs r5, 0 ldrsh r0, [r4, r5] adds r6, r0, 0x1 b _0804F2F0 .align 2, 0 _0804F2B0: .4byte gUnknown_202F1AC _0804F2B4: movs r2, 0x2 ldrsh r1, [r4, r2] subs r1, 0x1 adds r0, r6, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804F2EE movs r5, 0x2 ldrsh r3, [r4, r5] subs r1, r3, 0x1 movs r0, 0 ldrsh r2, [r4, r0] movs r5, 0x4 ldrsh r0, [r4, r5] str r0, [sp] movs r5, 0x6 ldrsh r0, [r4, r5] str r0, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] mov r5, r9 str r5, [sp, 0xC] adds r0, r6, 0 bl sub_804F494 _0804F2EE: adds r6, 0x2 _0804F2F0: movs r1, 0x4 ldrsh r0, [r4, r1] subs r0, 0x1 cmp r6, r0 blt _0804F2B4 movs r2, 0x2 ldrsh r0, [r4, r2] adds r5, r0, 0x1 movs r6, 0x6 ldrsh r0, [r4, r6] b _0804F342 _0804F306: movs r1, 0x4 ldrsh r0, [r4, r1] adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804F33C movs r2, 0x4 ldrsh r0, [r4, r2] movs r6, 0 ldrsh r2, [r4, r6] movs r1, 0x2 ldrsh r3, [r4, r1] str r0, [sp] movs r6, 0x6 ldrsh r1, [r4, r6] str r1, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] mov r6, r9 str r6, [sp, 0xC] adds r1, r5, 0 bl sub_804F494 _0804F33C: adds r5, 0x2 movs r1, 0x6 ldrsh r0, [r4, r1] _0804F342: subs r0, 0x1 cmp r5, r0 blt _0804F306 movs r2, 0 ldrsh r0, [r4, r2] adds r6, r0, 0x1 movs r5, 0x4 ldrsh r0, [r4, r5] b _0804F392 _0804F354: movs r0, 0x6 ldrsh r1, [r4, r0] adds r0, r6, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804F38C movs r2, 0x6 ldrsh r1, [r4, r2] movs r5, 0 ldrsh r2, [r4, r5] movs r0, 0x2 ldrsh r3, [r4, r0] movs r5, 0x4 ldrsh r0, [r4, r5] str r0, [sp] adds r0, r1, 0 str r0, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] mov r5, r9 str r5, [sp, 0xC] adds r0, r6, 0 bl sub_804F494 _0804F38C: adds r6, 0x2 movs r1, 0x4 ldrsh r0, [r4, r1] _0804F392: subs r0, 0x1 cmp r6, r0 blt _0804F354 movs r2, 0x2 ldrsh r0, [r4, r2] adds r5, r0, 0x1 movs r6, 0x6 ldrsh r0, [r4, r6] b _0804F3E4 _0804F3A4: movs r1, 0 ldrsh r0, [r4, r1] subs r0, 0x1 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804F3DE movs r6, 0 ldrsh r2, [r4, r6] subs r0, r2, 0x1 movs r1, 0x2 ldrsh r3, [r4, r1] movs r6, 0x4 ldrsh r1, [r4, r6] str r1, [sp] movs r6, 0x6 ldrsh r1, [r4, r6] str r1, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] mov r6, r9 str r6, [sp, 0xC] adds r1, r5, 0 bl sub_804F494 _0804F3DE: adds r5, 0x2 movs r1, 0x6 ldrsh r0, [r4, r1] _0804F3E4: subs r0, 0x1 cmp r5, r0 blt _0804F3A4 movs r2, 0 ldrsh r0, [r4, r2] adds r6, r0, 0x3 b _0804F478 _0804F3F2: movs r1, 0x2 ldrsh r0, [r4, r1] adds r5, r0, 0x3 movs r2, 0x6 ldrsh r0, [r4, r2] subs r0, 0x3 adds r1, r6, 0x2 mov r10, r1 cmp r5, r0 bge _0804F476 ldr r2, _0804F434 adds r7, r2, 0 _0804F40A: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0804F46A mov r0, r8 cmp r0, 0 beq _0804F438 subs r0, r6, 0x1 adds r1, r5, 0 bl sub_8049590 ldrh r1, [r0] ands r1, r7 movs r2, 0x2 orrs r1, r2 b _0804F444 .align 2, 0 _0804F434: .4byte 0x0000fffc _0804F438: subs r0, r6, 0x1 adds r1, r5, 0 bl sub_8049590 ldrh r1, [r0] ands r1, r7 _0804F444: strh r1, [r0] movs r1, 0 ldrsh r2, [r4, r1] movs r0, 0x2 ldrsh r3, [r4, r0] movs r1, 0x4 ldrsh r0, [r4, r1] str r0, [sp] movs r1, 0x6 ldrsh r0, [r4, r1] str r0, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] mov r1, r9 str r1, [sp, 0xC] adds r0, r6, 0 adds r1, r5, 0 bl sub_804F494 _0804F46A: adds r5, 0x2 movs r2, 0x6 ldrsh r0, [r4, r2] subs r0, 0x3 cmp r5, r0 blt _0804F40A _0804F476: mov r6, r10 _0804F478: movs r5, 0x4 ldrsh r0, [r4, r5] subs r0, 0x3 cmp r6, r0 blt _0804F3F2 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804F278 thumb_func_start sub_804F494 sub_804F494: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r5, r0, 0 adds r4, r1, 0 str r2, [sp] str r3, [sp, 0x4] ldr r0, [sp, 0x30] ldr r1, [sp, 0x34] lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 24 mov r8, r1 movs r0, 0x3 mov r10, r0 _0804F4BA: movs r0, 0x4 bl sub_8084100 adds r6, r0, 0 movs r7, 0 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 mov r1, r9 mov r3, r8 lsrs r2, r3, 24 bl sub_804E9A8 _0804F4D6: adds r0, r6, 0 mov r1, r10 ands r0, r1 cmp r0, 0x1 beq _0804F4F6 cmp r0, 0x1 bgt _0804F4EA cmp r0, 0 beq _0804F4F0 b _0804F506 _0804F4EA: cmp r0, 0x2 beq _0804F4FE b _0804F506 _0804F4F0: movs r0, 0x2 movs r1, 0 b _0804F50A _0804F4F6: movs r0, 0 movs r1, 0x2 negs r1, r1 b _0804F50A _0804F4FE: movs r0, 0x2 negs r0, r0 movs r1, 0 b _0804F50A _0804F506: movs r0, 0 movs r1, 0x2 _0804F50A: adds r0, r5, r0 ldr r2, [sp] cmp r2, r0 bgt _0804F534 ldr r3, [sp, 0x28] cmp r3, r0 ble _0804F534 adds r1, r4, r1 ldr r2, [sp, 0x4] cmp r2, r1 bgt _0804F534 ldr r3, [sp, 0x2C] cmp r3, r1 ble _0804F534 bl sub_804954C ldrh r1, [r0] mov r0, r10 ands r0, r1 cmp r0, 0x1 beq _0804F53E _0804F534: adds r6, 0x1 adds r7, 0x1 cmp r7, 0x3 bgt _0804F5B2 b _0804F4D6 _0804F53E: mov r0, r10 ands r0, r6 cmp r0, 0x1 beq _0804F570 cmp r0, 0x1 bgt _0804F550 cmp r0, 0 beq _0804F55A b _0804F4BA _0804F550: cmp r0, 0x2 beq _0804F586 cmp r0, 0x3 beq _0804F59C b _0804F4BA _0804F55A: adds r0, r5, 0x1 adds r1, r4, 0 bl sub_8049590 mov r1, r9 mov r3, r8 lsrs r2, r3, 24 bl sub_804E9A8 adds r5, 0x2 b _0804F4BA _0804F570: subs r1, r4, 0x1 adds r0, r5, 0 bl sub_8049590 mov r1, r9 mov r3, r8 lsrs r2, r3, 24 bl sub_804E9A8 subs r4, 0x2 b _0804F4BA _0804F586: subs r0, r5, 0x1 adds r1, r4, 0 bl sub_8049590 mov r1, r9 mov r3, r8 lsrs r2, r3, 24 bl sub_804E9A8 subs r5, 0x2 b _0804F4BA _0804F59C: adds r1, r4, 0x1 adds r0, r5, 0 bl sub_8049590 mov r1, r9 mov r3, r8 lsrs r2, r3, 24 bl sub_804E9A8 adds r4, 0x2 b _0804F4BA _0804F5B2: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804F494 thumb_func_start sub_804F5C4 sub_804F5C4: ldrh r3, [r0] ldr r2, _0804F5D4 ands r2, r3 movs r3, 0x2 orrs r2, r3 orrs r2, r1 strh r2, [r0] bx lr .align 2, 0 _0804F5D4: .4byte 0x0000fffc thumb_func_end sub_804F5C4 thumb_func_start sub_804F5D8 sub_804F5D8: push {r4-r7,lr} adds r5, r0, 0 movs r0, 0 ldrsh r6, [r5, r0] b _0804F60C _0804F5E2: movs r0, 0x2 ldrsh r4, [r5, r0] movs r1, 0x6 ldrsh r0, [r5, r1] adds r7, r6, 0x1 cmp r4, r0 bge _0804F60A _0804F5F0: adds r0, r6, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x20 orrs r1, r2 strh r1, [r0, 0x4] adds r4, 0x1 movs r1, 0x6 ldrsh r0, [r5, r1] cmp r4, r0 blt _0804F5F0 _0804F60A: adds r6, r7, 0 _0804F60C: movs r1, 0x4 ldrsh r0, [r5, r1] cmp r6, r0 blt _0804F5E2 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804F5D8 thumb_func_start sub_804F61C sub_804F61C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r0 mov r8, r1 movs r7, 0x1 negs r7, r7 b _0804F67A _0804F62E: movs r5, 0x1 negs r5, r5 b _0804F666 _0804F634: cmp r7, 0 beq _0804F63C cmp r5, 0 bne _0804F660 _0804F63C: adds r0, r6, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0804F660 adds r0, r6, 0 adds r1, r4, 0 bl sub_804954C ldrb r0, [r0, 0x9] cmp r0, 0xFF bne _0804F660 movs r0, 0x1 b _0804F686 _0804F660: adds r5, 0x1 cmp r5, 0x1 bgt _0804F672 _0804F666: mov r0, r8 adds r4, r0, r5 cmp r4, 0 blt _0804F660 cmp r4, 0x1F ble _0804F634 _0804F672: adds r7, 0x1 cmp r7, 0x1 bgt _0804F684 mov r0, r9 _0804F67A: adds r6, r0, r7 cmp r6, 0 blt _0804F672 cmp r6, 0x37 ble _0804F62E _0804F684: movs r0, 0 _0804F686: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_804F61C thumb_func_start sub_804F694 sub_804F694: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r7, r0, 0 movs r0, 0x6 bl sub_8084100 subs r0, 0x1 cmp r0, 0x4 bls _0804F6B0 b _0804FBD6 _0804F6B0: lsls r0, 2 ldr r1, _0804F6BC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804F6BC: .4byte _0804F6C0 .align 2, 0 _0804F6C0: .4byte _0804FB24 .4byte _0804FA98 .4byte _0804F9DC .4byte _0804F826 .4byte _0804F6D4 _0804F6D4: ldr r1, _0804F70C ldr r0, [r1] cmp r0, 0 bne _0804F6DE b _0804FBD6 _0804F6DE: subs r0, 0x1 str r0, [r1] adds r0, r7, 0 bl sub_804F5D8 movs r0, 0x2 bl sub_8084100 cmp r0, 0 beq _0804F78E movs r5, 0 movs r1, 0 ldrsh r0, [r7, r1] movs r2, 0x4 ldrsh r1, [r7, r2] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 mov r8, r0 movs r3, 0x2 ldrsh r4, [r7, r3] b _0804F712 .align 2, 0 _0804F70C: .4byte gUnknown_202F1C8 _0804F710: adds r4, 0x1 _0804F712: movs r1, 0x6 ldrsh r0, [r7, r1] cmp r4, r0 bge _0804F72A mov r0, r8 adds r1, r4, 0 bl sub_804F61C lsls r0, 24 cmp r0, 0 beq _0804F710 movs r5, 0x1 _0804F72A: cmp r5, 0 beq _0804F730 b _0804FBD6 _0804F730: movs r2, 0x2 ldrsh r4, [r7, r2] movs r3, 0x6 ldrsh r0, [r7, r3] cmp r4, r0 bge _0804F754 _0804F73C: mov r0, r8 adds r1, r4, 0 bl sub_8049590 movs r1, 0 bl sub_804F5C4 adds r4, 0x1 movs r5, 0x6 ldrsh r0, [r7, r5] cmp r4, r0 blt _0804F73C _0804F754: movs r0, 0 ldrsh r5, [r7, r0] cmp r5, r8 blt _0804F75E b _0804FBD2 _0804F75E: movs r1, 0x2 ldrsh r4, [r7, r1] movs r2, 0x6 ldrsh r0, [r7, r2] adds r6, r5, 0x1 cmp r4, r0 bge _0804F786 _0804F76C: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r2, [r0] movs r1, 0x80 orrs r1, r2 strh r1, [r0] adds r4, 0x1 movs r3, 0x6 ldrsh r0, [r7, r3] cmp r4, r0 blt _0804F76C _0804F786: adds r5, r6, 0 cmp r5, r8 blt _0804F75E b _0804FBD2 _0804F78E: movs r5, 0 movs r4, 0x2 ldrsh r0, [r7, r4] movs r2, 0x6 ldrsh r1, [r7, r2] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 mov r8, r0 movs r3, 0 ldrsh r4, [r7, r3] b _0804F7AA _0804F7A8: adds r4, 0x1 _0804F7AA: movs r1, 0x4 ldrsh r0, [r7, r1] cmp r4, r0 bge _0804F7C2 adds r0, r4, 0 mov r1, r8 bl sub_804F61C lsls r0, 24 cmp r0, 0 beq _0804F7A8 movs r5, 0x1 _0804F7C2: cmp r5, 0 beq _0804F7C8 b _0804FBD6 _0804F7C8: movs r2, 0 ldrsh r4, [r7, r2] movs r3, 0x4 ldrsh r0, [r7, r3] cmp r4, r0 bge _0804F7EC _0804F7D4: adds r0, r4, 0 mov r1, r8 bl sub_8049590 movs r1, 0 bl sub_804F5C4 adds r4, 0x1 movs r5, 0x4 ldrsh r0, [r7, r5] cmp r4, r0 blt _0804F7D4 _0804F7EC: movs r0, 0x2 ldrsh r5, [r7, r0] cmp r5, r8 blt _0804F7F6 b _0804FBD2 _0804F7F6: movs r1, 0 ldrsh r4, [r7, r1] movs r2, 0x4 ldrsh r0, [r7, r2] adds r6, r5, 0x1 cmp r4, r0 bge _0804F81E _0804F804: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 ldrh r2, [r0] movs r1, 0x80 orrs r1, r2 strh r1, [r0] adds r4, 0x1 movs r3, 0x4 ldrsh r0, [r7, r3] cmp r4, r0 blt _0804F804 _0804F81E: adds r5, r6, 0 cmp r5, r8 blt _0804F7F6 b _0804FBD2 _0804F826: movs r4, 0x4 ldrsh r3, [r7, r4] movs r5, 0 ldrsh r1, [r7, r5] subs r0, r3, r1 cmp r0, 0x5 bgt _0804F836 b _0804FBD6 _0804F836: movs r0, 0x6 ldrsh r4, [r7, r0] movs r5, 0x2 ldrsh r2, [r7, r5] subs r0, r4, r2 cmp r0, 0x5 bgt _0804F846 b _0804FBD6 _0804F846: adds r0, r1, r3 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [sp] adds r0, r2, r4 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [sp, 0x4] ldr r1, _0804F9D8 ldr r0, [r1] cmp r0, 0 bne _0804F864 b _0804FBD6 _0804F864: subs r0, 0x1 str r0, [r1] adds r0, r7, 0 bl sub_804F5D8 ldr r5, [sp] subs r5, 0x2 ldr r0, [sp, 0x4] subs r0, 0x2 mov r10, r0 adds r0, r5, 0 mov r1, r10 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 ldr r1, [sp] subs r1, 0x1 mov r9, r1 mov r0, r9 mov r1, r10 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 ldr r0, [sp] mov r1, r10 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 ldr r2, [sp] adds r2, 0x1 mov r8, r2 mov r0, r8 mov r1, r10 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 ldr r6, [sp, 0x4] subs r6, 0x1 adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 adds r0, r5, 0 ldr r1, [sp, 0x4] bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 ldr r4, [sp, 0x4] adds r4, 0x1 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 mov r0, r9 adds r1, r4, 0 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 ldr r0, [sp] adds r1, r4, 0 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 mov r0, r8 mov r1, r10 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 mov r0, r8 adds r1, r6, 0 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 mov r0, r8 ldr r1, [sp, 0x4] bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 mov r0, r8 adds r1, r4, 0 bl sub_8049590 movs r1, 0x4 bl sub_804F5C4 mov r0, r9 adds r1, r6, 0 bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x4 orrs r1, r2 strh r1, [r0, 0x4] mov r0, r9 adds r1, r6, 0 bl sub_8049590 ldrh r1, [r0, 0x4] movs r2, 0x40 orrs r1, r2 strh r1, [r0, 0x4] ldr r0, [sp] adds r1, r6, 0 bl sub_8049590 ldrh r1, [r0, 0x4] movs r4, 0x2 orrs r1, r4 strh r1, [r0, 0x4] mov r0, r9 ldr r1, [sp, 0x4] bl sub_8049590 ldrh r1, [r0, 0x4] orrs r1, r4 strh r1, [r0, 0x4] ldr r0, [sp] ldr r1, [sp, 0x4] bl sub_8049590 ldrh r1, [r0, 0x4] orrs r1, r4 strh r1, [r0, 0x4] mov r0, r9 adds r1, r6, 0 bl sub_8049590 ldrh r1, [r0, 0x4] movs r4, 0x10 orrs r1, r4 strh r1, [r0, 0x4] ldr r0, [sp] adds r1, r6, 0 bl sub_8049590 ldrh r1, [r0, 0x4] orrs r1, r4 strh r1, [r0, 0x4] mov r0, r9 ldr r1, [sp, 0x4] bl sub_8049590 ldrh r1, [r0, 0x4] orrs r1, r4 strh r1, [r0, 0x4] ldr r0, [sp] ldr r1, [sp, 0x4] bl sub_8049590 ldrh r1, [r0, 0x4] orrs r4, r1 strh r4, [r0, 0x4] b _0804FBD2 .align 2, 0 _0804F9D8: .4byte gUnknown_202F1C8 _0804F9DC: movs r4, 0x4 ldrsh r3, [r7, r4] movs r5, 0 ldrsh r2, [r7, r5] subs r0, r3, r2 cmp r0, 0x4 bgt _0804F9EC b _0804FBD6 _0804F9EC: movs r1, 0x6 ldrsh r0, [r7, r1] movs r4, 0x2 ldrsh r1, [r7, r4] subs r0, r1 cmp r0, 0x4 bgt _0804F9FC b _0804FBD6 _0804F9FC: adds r0, r2, 0x2 subs r1, r3, 0x3 bl sub_808411C adds r4, r0, 0 movs r5, 0x2 ldrsh r0, [r7, r5] adds r0, 0x2 movs r2, 0x6 ldrsh r1, [r7, r2] subs r1, 0x3 bl sub_808411C mov r10, r0 movs r3, 0 ldrsh r0, [r7, r3] adds r0, 0x2 movs r5, 0x4 ldrsh r1, [r7, r5] subs r1, 0x3 bl sub_808411C mov r9, r0 movs r1, 0x2 ldrsh r0, [r7, r1] adds r0, 0x2 movs r2, 0x6 ldrsh r1, [r7, r2] subs r1, 0x3 bl sub_808411C adds r6, r0, 0 ldr r1, _0804FA94 ldr r0, [r1] cmp r0, 0 bne _0804FA46 b _0804FBD6 _0804FA46: subs r0, 0x1 str r0, [r1] adds r0, r7, 0 bl sub_804F5D8 cmp r4, r9 ble _0804FA5A adds r0, r4, 0 mov r4, r9 mov r9, r0 _0804FA5A: cmp r10, r6 ble _0804FA64 mov r0, r10 mov r10, r6 adds r6, r0, 0 _0804FA64: adds r5, r4, 0 cmp r5, r9 ble _0804FA6C b _0804FBD2 _0804FA6C: mov r4, r10 adds r3, r5, 0x1 mov r8, r3 cmp r4, r6 bgt _0804FA8A _0804FA76: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0 bl sub_804F5C4 adds r4, 0x1 cmp r4, r6 ble _0804FA76 _0804FA8A: mov r5, r8 cmp r5, r9 ble _0804FA6C b _0804FBD2 .align 2, 0 _0804FA94: .4byte gUnknown_202F1C8 _0804FA98: movs r4, 0x4 ldrsh r0, [r7, r4] movs r5, 0 ldrsh r1, [r7, r5] subs r0, r1 movs r2, 0x1 ands r0, r2 cmp r0, 0 bne _0804FAAC b _0804FBD6 _0804FAAC: movs r1, 0x6 ldrsh r0, [r7, r1] movs r3, 0x2 ldrsh r1, [r7, r3] subs r0, r1 ands r0, r2 cmp r0, 0 bne _0804FABE b _0804FBD6 _0804FABE: ldr r1, _0804FB20 ldr r0, [r1] cmp r0, 0 bne _0804FAC8 b _0804FBD6 _0804FAC8: subs r0, 0x1 str r0, [r1] adds r0, r7, 0 bl sub_804F5D8 movs r6, 0x3F _0804FAD4: movs r4, 0x4 ldrsh r0, [r7, r4] movs r5, 0 ldrsh r1, [r7, r5] subs r0, r1 bl sub_8084100 adds r4, r0, 0 movs r1, 0x6 ldrsh r0, [r7, r1] movs r2, 0x2 ldrsh r1, [r7, r2] subs r0, r1 bl sub_8084100 adds r2, r0, 0 adds r0, r4, r2 movs r5, 0x1 ands r0, r5 cmp r0, 0 beq _0804FB14 movs r3, 0 ldrsh r0, [r7, r3] adds r0, r4 movs r4, 0x2 ldrsh r1, [r7, r4] adds r1, r2 bl sub_8049590 movs r1, 0 bl sub_804F5C4 _0804FB14: subs r6, 0x1 cmp r6, 0 bge _0804FAD4 strb r5, [r7, 0x9] b _0804FBD6 .align 2, 0 _0804FB20: .4byte gUnknown_202F1C8 _0804FB24: ldr r1, _0804FBC0 ldr r0, [r1] cmp r0, 0 beq _0804FBD6 subs r0, 0x1 str r0, [r1] movs r5, 0x4 ldrsh r3, [r7, r5] movs r0, 0 ldrsh r2, [r7, r0] subs r6, r3, r2 movs r4, 0x1 adds r0, r6, 0 ands r0, r4 cmp r0, 0 beq _0804FB54 movs r1, 0x6 ldrsh r0, [r7, r1] movs r5, 0x2 ldrsh r1, [r7, r5] subs r0, r1 ands r0, r4 cmp r0, 0 bne _0804FBC4 _0804FB54: adds r0, r2, r3 lsrs r1, r0, 31 adds r0, r1 asrs r5, r0, 1 movs r0, 0x2 ldrsh r3, [r7, r0] movs r1, 0x6 ldrsh r2, [r7, r1] adds r0, r3, r2 lsrs r1, r0, 31 adds r0, r1 asrs r4, r0, 1 cmp r6, 0x4 ble _0804FBAE subs r0, r2, r3 cmp r0, 0x4 ble _0804FBAE adds r0, r5, 0x1 adds r1, r4, 0 bl sub_8049590 movs r1, 0 bl sub_804F5C4 adds r1, r4, 0x1 adds r0, r5, 0 bl sub_8049590 movs r1, 0 bl sub_804F5C4 subs r0, r5, 0x1 adds r1, r4, 0 bl sub_8049590 movs r1, 0 bl sub_804F5C4 subs r1, r4, 0x1 adds r0, r5, 0 bl sub_8049590 movs r1, 0 bl sub_804F5C4 _0804FBAE: adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0 bl sub_804F5C4 b _0804FBD2 .align 2, 0 _0804FBC0: .4byte gUnknown_202F1C8 _0804FBC4: adds r0, r7, 0 bl sub_804F5D8 adds r0, r7, 0 movs r1, 0x1 bl sub_804F278 _0804FBD2: movs r0, 0x1 strb r0, [r7, 0x9] _0804FBD6: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804F694 thumb_func_start sub_804FBE8 sub_804FBE8: push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 ldr r0, _0804FC6C adds r5, r0, 0 _0804FBF4: movs r4, 0 adds r3, r6, 0x1 mov r8, r3 _0804FBFA: adds r0, r6, 0 adds r1, r4, 0 bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0804FC2A movs r7, 0x88 lsls r7, 1 adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _0804FC24 ldrh r0, [r2, 0x4] ldr r3, _0804FC70 adds r1, r3, 0 ands r0, r1 strh r0, [r2, 0x4] _0804FC24: ldrh r0, [r2, 0x4] ands r0, r5 strh r0, [r2, 0x4] _0804FC2A: ldrh r3, [r2, 0x4] movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _0804FC46 ldrh r0, [r2] movs r7, 0x80 lsls r7, 2 adds r1, r7, 0 orrs r1, r0 strh r1, [r2] adds r0, r3, 0 ands r0, r5 strh r0, [r2, 0x4] _0804FC46: ldrh r1, [r2, 0x4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0804FC56 adds r0, r1, 0 ands r0, r5 strh r0, [r2, 0x4] _0804FC56: adds r4, 0x1 cmp r4, 0x1F ble _0804FBFA mov r6, r8 cmp r6, 0x37 ble _0804FBF4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804FC6C: .4byte 0x0000fffb _0804FC70: .4byte 0x0000fffd thumb_func_end sub_804FBE8 thumb_func_start sub_804FC74 sub_804FC74: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r5, 0 movs r0, 0x3 mov r8, r0 ldr r0, _0804FCC8 adds r7, r0, 0 _0804FC86: movs r4, 0 adds r6, r5, 0x1 _0804FC8A: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _0804FCAE adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r1, [r0] ands r1, r7 mov r2, r8 orrs r1, r2 strh r1, [r0] _0804FCAE: adds r4, 0x1 cmp r4, 0x1F ble _0804FC8A adds r5, r6, 0 cmp r5, 0x37 ble _0804FC86 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804FCC8: .4byte 0x0000fffc thumb_func_end sub_804FC74 thumb_func_start sub_804FCCC sub_804FCCC: push {r4-r7,lr} movs r5, 0 ldr r0, _0804FD0C adds r7, r0, 0 _0804FCD4: movs r4, 0 adds r6, r5, 0x1 _0804FCD8: adds r0, r5, 0 adds r1, r4, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0804FCF8 adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r1, [r0] ands r1, r7 strh r1, [r0] _0804FCF8: adds r4, 0x1 cmp r4, 0x1F ble _0804FCD8 adds r5, r6, 0 cmp r5, 0x37 ble _0804FCD4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804FD0C: .4byte 0x0000fffc thumb_func_end sub_804FCCC thumb_func_start sub_804FD10 sub_804FD10: movs r2, 0 movs r3, 0 strh r3, [r0] strh r3, [r0, 0x4] movs r1, 0xFF strb r1, [r0, 0x9] strb r2, [r0, 0x8] strb r2, [r0, 0xA] strb r2, [r0, 0xB] strb r2, [r0, 0xC] strb r2, [r0, 0xD] strb r2, [r0, 0xE] str r3, [r0, 0x10] str r3, [r0, 0x14] bx lr thumb_func_end sub_804FD10 thumb_func_start sub_804FD30 sub_804FD30: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r6, 0 _0804FD3A: movs r7, 0 adds r4, r6, 0x1 _0804FD3E: adds r0, r6, 0 adds r1, r7, 0 bl sub_8049590 bl sub_804FD10 subs r3, r7, 0x1 cmp r6, 0 blt _0804FD5C cmp r3, 0 blt _0804FD5C cmp r6, 0x37 bgt _0804FD5C cmp r3, 0x1F ble _0804FD60 _0804FD5C: movs r0, 0x1 b _0804FD62 _0804FD60: movs r0, 0 _0804FD62: cmp r0, 0 bne _0804FE24 cmp r4, 0 blt _0804FD76 cmp r3, 0 blt _0804FD76 cmp r4, 0x37 bgt _0804FD76 cmp r3, 0x1F ble _0804FD7A _0804FD76: movs r0, 0x1 b _0804FD7C _0804FD7A: movs r0, 0 _0804FD7C: cmp r0, 0 bne _0804FE24 cmp r4, 0 blt _0804FD90 cmp r3, 0 blt _0804FD90 cmp r4, 0x37 bgt _0804FD90 cmp r3, 0x1F ble _0804FD94 _0804FD90: movs r0, 0x1 b _0804FD96 _0804FD94: movs r0, 0 _0804FD96: cmp r0, 0 bne _0804FE24 adds r2, r7, 0x1 cmp r4, 0 blt _0804FDAC cmp r2, 0 blt _0804FDAC cmp r4, 0x37 bgt _0804FDAC cmp r2, 0x1F ble _0804FDB0 _0804FDAC: movs r0, 0x1 b _0804FDB2 _0804FDB0: movs r0, 0 _0804FDB2: cmp r0, 0 bne _0804FE24 cmp r6, 0 blt _0804FDC6 cmp r2, 0 blt _0804FDC6 cmp r6, 0x37 bgt _0804FDC6 cmp r2, 0x1F ble _0804FDCA _0804FDC6: movs r0, 0x1 b _0804FDCC _0804FDCA: movs r0, 0 _0804FDCC: cmp r0, 0 bne _0804FE24 adds r0, r2, 0 subs r1, r6, 0x1 cmp r1, 0 blt _0804FDE4 cmp r0, 0 blt _0804FDE4 cmp r1, 0x37 bgt _0804FDE4 cmp r2, 0x1F ble _0804FDE8 _0804FDE4: movs r0, 0x1 b _0804FDEA _0804FDE8: movs r0, 0 _0804FDEA: cmp r0, 0 bne _0804FE24 cmp r1, 0 blt _0804FDFE cmp r7, 0 blt _0804FDFE cmp r1, 0x37 bgt _0804FDFE cmp r7, 0x1F ble _0804FE02 _0804FDFE: movs r0, 0x1 b _0804FE04 _0804FE02: movs r0, 0 _0804FE04: cmp r0, 0 bne _0804FE24 adds r0, r3, 0 cmp r1, 0 blt _0804FE1A cmp r0, 0 blt _0804FE1A cmp r1, 0x37 bgt _0804FE1A cmp r3, 0x1F ble _0804FE1E _0804FE1A: movs r0, 0x1 b _0804FE20 _0804FE1E: movs r0, 0 _0804FE20: cmp r0, 0 beq _0804FE34 _0804FE24: adds r0, r6, 0 adds r1, r7, 0 bl sub_8049590 ldrh r2, [r0] movs r1, 0x10 orrs r1, r2 strh r1, [r0] _0804FE34: adds r7, 0x1 cmp r7, 0x1F ble _0804FD3E adds r6, 0x1 cmp r6, 0x37 bgt _0804FE42 b _0804FD3A _0804FE42: ldr r3, _0804FEB4 ldr r1, [r3] ldr r0, _0804FEB8 adds r2, r1, r0 ldr r0, _0804FEBC strh r0, [r2] ldr r2, _0804FEC0 adds r1, r2 movs r0, 0x1 negs r0, r0 strh r0, [r1] movs r6, 0 mov r8, r3 ldr r1, _0804FEC4 _0804FE5E: adds r5, r1, 0 movs r4, 0 movs r7, 0x7 _0804FE64: mov r2, r8 ldr r0, [r2] adds r0, r5 adds r0, r4 str r1, [sp] bl sub_804FD10 adds r4, 0x18 subs r7, 0x1 ldr r1, [sp] cmp r7, 0 bge _0804FE64 adds r1, 0xC0 adds r6, 0x1 cmp r6, 0x7 ble _0804FE5E ldr r0, _0804FEB4 ldr r1, [r0] ldr r2, _0804FEC8 adds r1, r2 movs r2, 0 strh r2, [r1] movs r6, 0 adds r4, r0, 0 ldr r3, _0804FECC _0804FE96: ldr r0, [r4] lsls r1, r6, 2 adds r0, r3 adds r0, r1 ldr r0, [r0] str r2, [r0] adds r6, 0x1 cmp r6, 0x3F ble _0804FE96 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804FEB4: .4byte gUnknown_203B418 _0804FEB8: .4byte 0x0000e21c _0804FEBC: .4byte 0x0000ffff _0804FEC0: .4byte 0x0000e21e _0804FEC4: .4byte 0x0000e27c _0804FEC8: .4byte 0x00003904 _0804FECC: .4byte 0x0001371c thumb_func_end sub_804FD30 thumb_func_start sub_804FED0 sub_804FED0: push {r4-r7,lr} adds r7, r0, 0 adds r5, r1, 0 movs r6, 0 b _0804FEFA _0804FEDA: adds r0, r5, 0 bl sub_8084100 adds r4, r0, 0 adds r0, r5, 0 bl sub_8084100 lsls r4, 2 adds r4, r7 ldr r2, [r4] lsls r0, 2 adds r0, r7 ldr r1, [r0] str r1, [r4] str r2, [r0] adds r6, 0x1 _0804FEFA: lsls r0, r5, 1 cmp r6, r0 blt _0804FEDA pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804FED0 thumb_func_start sub_804FF08 sub_804FF08: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08050234 add sp, r4 mov r10, r0 lsls r1, 24 lsrs r1, 24 movs r0, 0xE0 lsls r0, 5 add r0, sp str r1, [r0] ldr r0, _08050238 ldr r0, [r0] mov r9, r0 ldr r0, _0805023C add r0, r9 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _0804FF46 ldr r0, _08050240 add r0, r9 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, r1 bne _08050038 _0804FF46: movs r0, 0 mov r8, r0 movs r6, 0 _0804FF4C: movs r5, 0 mov r1, r8 lsls r0, r1, 2 mov r2, sp adds r4, r0, r2 _0804FF56: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C adds r1, r0, 0 ldrh r2, [r1] movs r0, 0x3 ands r0, r2 cmp r0, 0x1 bne _0804FFAA ldrb r0, [r1, 0x9] cmp r0, 0xFF beq _0804FFAA movs r0, 0x20 ands r0, r2 cmp r0, 0 bne _0804FFAA ldrh r1, [r1, 0x4] movs r3, 0x8 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0804FFAA movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0804FFAA adds r0, r3, 0 ands r0, r2 cmp r0, 0 bne _0804FFAA movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 ands r0, r2 cmp r0, 0 bne _0804FFAA strb r6, [r4] strb r5, [r4, 0x1] adds r4, 0x4 movs r2, 0x1 add r8, r2 _0804FFAA: adds r5, 0x1 cmp r5, 0x1F ble _0804FF56 adds r6, 0x1 cmp r6, 0x37 ble _0804FF4C mov r0, r8 cmp r0, 0 beq _08050038 bl sub_8084100 lsls r0, 2 mov r1, sp adds r4, r1, r0 ldrb r0, [r4] ldrb r1, [r4, 0x1] bl sub_8049590 adds r5, r0, 0 ldrh r1, [r5, 0x4] movs r0, 0x1 orrs r0, r1 ldr r1, _08050244 ands r0, r1 strh r0, [r5, 0x4] ldr r1, _08050248 ldrb r0, [r5, 0x9] strb r0, [r1] ldrb r1, [r4] ldr r0, _0805023C add r0, r9 strh r1, [r0] ldrb r1, [r4, 0x1] ldr r0, _08050240 add r0, r9 strh r1, [r0] bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08050038 ldrb r4, [r5, 0x9] movs r6, 0 _08050002: movs r5, 0 _08050004: adds r0, r6, 0 adds r1, r5, 0 bl sub_8049590 adds r1, r0, 0 ldrh r2, [r1] movs r0, 0x3 ands r0, r2 cmp r0, 0x1 bne _0805002C ldrb r0, [r1, 0x9] cmp r0, r4 bne _0805002C movs r0, 0x40 orrs r0, r2 strh r0, [r1] ldrb r1, [r1, 0x9] ldr r0, _0805024C add r0, r9 strb r1, [r0] _0805002C: adds r5, 0x1 cmp r5, 0x1F ble _08050004 adds r6, 0x1 cmp r6, 0x37 ble _08050002 _08050038: movs r2, 0 mov r8, r2 movs r6, 0 _0805003E: movs r5, 0 adds r7, r6, 0x1 mov r1, r8 lsls r0, r1, 2 mov r2, sp adds r4, r0, r2 _0805004A: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C adds r1, r0, 0 ldrh r2, [r1] movs r0, 0x3 ands r0, r2 cmp r0, 0x1 bne _08050092 ldrb r0, [r1, 0x9] cmp r0, 0xFF beq _08050092 movs r0, 0x20 ands r0, r2 cmp r0, 0 bne _08050092 movs r0, 0x40 ands r0, r2 cmp r0, 0 bne _08050092 movs r0, 0x8 ands r0, r2 cmp r0, 0 bne _08050092 movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 ands r0, r2 cmp r0, 0 bne _08050092 strb r6, [r4] strb r5, [r4, 0x1] adds r4, 0x4 movs r2, 0x1 add r8, r2 _08050092: adds r5, 0x1 cmp r5, 0x1F ble _0805004A adds r6, r7, 0 cmp r6, 0x37 ble _0805003E mov r0, r8 cmp r0, 0 beq _080500FA mov r1, r10 ldrb r4, [r1, 0xF] cmp r4, 0 beq _080500FA subs r0, r4, 0x2 adds r1, r4, 0x2 bl sub_808411C adds r4, r0, 0 cmp r4, 0 bgt _080500BC movs r4, 0x1 _080500BC: mov r0, sp mov r1, r8 bl sub_804FED0 mov r0, r8 bl sub_8084100 adds r5, r0, 0 cmp r4, 0 ble _080500FA adds r6, r4, 0 lsls r0, r5, 2 mov r2, sp adds r4, r0, r2 _080500D8: ldrb r0, [r4] ldrb r1, [r4, 0x1] bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x2 orrs r1, r2 strh r1, [r0, 0x4] adds r4, 0x4 adds r5, 0x1 cmp r5, r8 bne _080500F4 mov r4, sp movs r5, 0 _080500F4: subs r6, 0x1 cmp r6, 0 bne _080500D8 _080500FA: movs r0, 0 mov r8, r0 movs r6, 0 _08050100: movs r5, 0 adds r7, r6, 0x1 mov r1, r8 lsls r0, r1, 2 mov r2, sp adds r4, r0, r2 _0805010C: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08050128 strb r6, [r4] strb r5, [r4, 0x1] adds r4, 0x4 movs r0, 0x1 add r8, r0 _08050128: adds r5, 0x1 cmp r5, 0x1F ble _0805010C adds r6, r7, 0 cmp r6, 0x37 ble _08050100 mov r1, r8 cmp r1, 0 beq _0805018E mov r2, r10 ldrb r4, [r2, 0x14] cmp r4, 0 beq _0805018E subs r0, r4, 0x2 adds r1, r4, 0x2 bl sub_808411C adds r4, r0, 0 cmp r4, 0 ble _0805018E mov r0, sp mov r1, r8 bl sub_804FED0 mov r0, r8 bl sub_8084100 adds r5, r0, 0 cmp r4, 0 ble _0805018E adds r6, r4, 0 lsls r0, r5, 2 mov r1, sp adds r4, r0, r1 _0805016C: ldrb r0, [r4] ldrb r1, [r4, 0x1] bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x2 orrs r1, r2 strh r1, [r0, 0x4] adds r4, 0x4 adds r5, 0x1 cmp r5, r8 bne _08050188 mov r4, sp movs r5, 0 _08050188: subs r6, 0x1 cmp r6, 0 bne _0805016C _0805018E: movs r2, 0 mov r8, r2 movs r0, 0xE0 lsls r0, 5 add r0, sp ldr r0, [r0] cmp r0, 0 bne _080501E4 movs r6, 0 _080501A0: movs r5, 0 adds r7, r6, 0x1 mov r1, r8 lsls r0, r1, 2 mov r2, sp adds r4, r0, r2 _080501AC: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _080501D8 movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080501D8 movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080501D8 strb r6, [r4] strb r5, [r4, 0x1] adds r4, 0x4 movs r0, 0x1 add r8, r0 _080501D8: adds r5, 0x1 cmp r5, 0x1F ble _080501AC adds r6, r7, 0 cmp r6, 0x37 ble _080501A0 _080501E4: mov r1, r8 cmp r1, 0 beq _08050294 lsrs r4, r1, 31 add r4, r8 asrs r4, 1 lsls r0, r1, 3 movs r1, 0xA bl __divsi3 adds r1, r0, 0 adds r0, r4, 0 bl sub_808411C adds r4, r0, 0 cmp r4, 0x5 bgt _08050208 movs r4, 0x6 _08050208: ldr r0, _08050250 movs r2, 0 ldrsh r0, [r0, r2] cmp r4, r0 blt _08050214 adds r4, r0, 0 _08050214: mov r0, sp mov r1, r8 bl sub_804FED0 mov r0, r8 bl sub_8084100 adds r5, r0, 0 cmp r4, 0 ble _08050294 adds r6, r4, 0 lsls r0, r5, 2 mov r1, sp adds r7, r0, r1 _08050230: ldrb r0, [r7] b _08050254 .align 2, 0 _08050234: .4byte 0xffffe3fc _08050238: .4byte gUnknown_203B418 _0805023C: .4byte 0x0000e21c _08050240: .4byte 0x0000e21e _08050244: .4byte 0x0000fffd _08050248: .4byte gUnknown_202F1B4 _0805024C: .4byte 0x00003a0c _08050250: .4byte gUnknown_80F4DA0 _08050254: ldrb r1, [r7, 0x1] bl sub_8049590 adds r4, r0, 0 movs r0, 0x2 bl sub_8084100 cmp r0, 0 beq _0805026C ldrh r0, [r4, 0x4] movs r1, 0x2 b _0805027E _0805026C: ldr r0, _08050424 ldr r0, [r0] ldr r2, _08050428 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _08050282 ldrh r0, [r4, 0x4] movs r1, 0x4 _0805027E: orrs r0, r1 strh r0, [r4, 0x4] _08050282: adds r7, 0x4 adds r5, 0x1 cmp r5, r8 bne _0805028E mov r7, sp movs r5, 0 _0805028E: subs r6, 0x1 cmp r6, 0 bne _08050230 _08050294: movs r0, 0 mov r8, r0 movs r6, 0 _0805029A: movs r5, 0 adds r7, r6, 0x1 mov r1, r8 lsls r0, r1, 2 mov r2, sp adds r4, r0, r2 _080502A6: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C adds r1, r0, 0 ldrh r2, [r1] movs r0, 0x3 ands r0, r2 cmp r0, 0x1 bne _080502F0 ldrb r0, [r1, 0x9] cmp r0, 0xFF beq _080502F0 movs r0, 0x20 ands r0, r2 cmp r0, 0 bne _080502F0 ldrh r1, [r1, 0x4] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080502F0 movs r0, 0x8 ands r0, r2 cmp r0, 0 bne _080502F0 movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 ands r0, r2 cmp r0, 0 bne _080502F0 strb r6, [r4] strb r5, [r4, 0x1] adds r4, 0x4 movs r2, 0x1 add r8, r2 _080502F0: adds r5, 0x1 cmp r5, 0x1F ble _080502A6 adds r6, r7, 0 cmp r6, 0x37 ble _0805029A mov r0, r8 cmp r0, 0 beq _08050356 mov r2, r10 ldrb r1, [r2, 0x10] lsrs r0, r1, 1 bl sub_808411C adds r4, r0, 0 cmp r4, 0 ble _08050356 cmp r4, 0x37 ble _08050318 movs r4, 0x38 _08050318: mov r0, sp mov r1, r8 bl sub_804FED0 mov r0, r8 bl sub_8084100 adds r5, r0, 0 cmp r4, 0 ble _08050356 adds r6, r4, 0 lsls r0, r5, 2 mov r1, sp adds r4, r0, r1 _08050334: ldrb r0, [r4] ldrb r1, [r4, 0x1] bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x4 orrs r1, r2 strh r1, [r0, 0x4] adds r4, 0x4 adds r5, 0x1 cmp r5, r8 bne _08050350 mov r4, sp movs r5, 0 _08050350: subs r6, 0x1 cmp r6, 0 bne _08050334 _08050356: ldr r0, _0805042C add r0, r9 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _08050372 ldr r0, _08050430 add r0, r9 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, r1 bne _08050410 _08050372: movs r0, 0 mov r8, r0 movs r6, 0 _08050378: movs r5, 0 adds r7, r6, 0x1 mov r1, r8 lsls r0, r1, 2 mov r2, sp adds r4, r0, r2 _08050384: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _080503E2 ldrb r0, [r2, 0x9] cmp r0, 0xFF beq _080503E2 movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _080503E2 movs r3, 0x8 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _080503E2 movs r0, 0x80 lsls r0, 1 mov r10, r0 mov r0, r10 ands r0, r1 cmp r0, 0 bne _080503E2 ldrh r1, [r2, 0x4] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080503E2 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _080503E2 movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080503E2 strb r6, [r4] strb r5, [r4, 0x1] adds r4, 0x4 movs r1, 0x1 add r8, r1 _080503E2: adds r5, 0x1 cmp r5, 0x1F ble _08050384 adds r6, r7, 0 cmp r6, 0x37 ble _08050378 mov r2, r8 cmp r2, 0 beq _08050410 mov r0, r8 bl sub_8084100 lsls r0, 2 mov r1, sp adds r2, r1, r0 ldrb r1, [r2] ldr r0, _0805042C add r0, r9 strh r1, [r0] ldrb r1, [r2, 0x1] ldr r0, _08050430 add r0, r9 strh r1, [r0] _08050410: ldr r3, _08050434 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08050424: .4byte gUnknown_203B418 _08050428: .4byte 0x0000065c _0805042C: .4byte 0x0000e218 _08050430: .4byte 0x0000e21a _08050434: .4byte 0x00001c04 thumb_func_end sub_804FF08 thumb_func_start sub_8050438 sub_8050438: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08050470 add sp, r4 lsls r1, 24 lsrs r1, 24 movs r2, 0xE0 lsls r2, 5 add r2, sp str r1, [r2] ldr r1, _08050474 ldr r1, [r1] mov r10, r1 ldrb r1, [r0, 0x6] cmp r1, 0 ble _08050478 lsrs r0, r1, 1 bl sub_808411C adds r7, r0, 0 cmp r7, 0 bgt _0805047A movs r7, 0x1 b _0805047A .align 2, 0 _08050470: .4byte 0xffffe3f8 _08050474: .4byte gUnknown_203B418 _08050478: adds r7, r1, 0 _0805047A: movs r0, 0 mov r8, r0 movs r6, 0 _08050480: movs r5, 0 adds r1, r6, 0x1 mov r9, r1 mov r2, r8 lsls r0, r2, 2 mov r1, sp adds r4, r0, r1 _0805048E: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C adds r1, r0, 0 ldrh r3, [r1] movs r2, 0x3 ands r2, r3 cmp r2, 0x1 bne _080504F6 ldrb r0, [r1, 0x9] cmp r0, 0xFF beq _080504F6 movs r0, 0x20 ands r0, r3 cmp r0, 0 bne _080504F6 ldrh r1, [r1, 0x4] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080504F6 ands r2, r1 cmp r2, 0 bne _080504F6 movs r0, 0x8 ands r0, r3 cmp r0, 0 bne _080504F6 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 ands r0, r3 cmp r0, 0 bne _080504F6 ldr r0, _080506A0 add r0, r10 movs r1, 0 ldrsh r0, [r0, r1] cmp r6, r0 bne _080504EC ldr r0, _080506A4 add r0, r10 movs r2, 0 ldrsh r0, [r0, r2] cmp r5, r0 beq _080504F6 _080504EC: strb r6, [r4] strb r5, [r4, 0x1] adds r4, 0x4 movs r0, 0x1 add r8, r0 _080504F6: adds r5, 0x1 cmp r5, 0x1F ble _0805048E mov r6, r9 cmp r6, 0x37 ble _08050480 mov r1, r8 cmp r1, 0 beq _0805055E ldr r0, _080506A8 ldr r0, [r0] movs r2, 0xD1 lsls r2, 3 adds r0, r2 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _0805051C adds r7, 0x1 _0805051C: cmp r7, 0 beq _0805055E mov r0, sp mov r1, r8 bl sub_804FED0 mov r0, r8 bl sub_8084100 adds r5, r0, 0 cmp r7, 0 ble _0805055E adds r6, r7, 0 lsls r0, r5, 2 mov r2, sp adds r4, r0, r2 _0805053C: ldrb r0, [r4] ldrb r1, [r4, 0x1] bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x8 orrs r1, r2 strh r1, [r0, 0x4] adds r4, 0x4 adds r5, 0x1 cmp r5, r8 bne _08050558 mov r4, sp movs r5, 0 _08050558: subs r6, 0x1 cmp r6, 0 bne _0805053C _0805055E: ldr r0, _080506AC add r0, r10 ldrb r0, [r0] cmp r0, 0 bne _0805056A b _0805068C _0805056A: ldr r0, _080506B0 movs r2, 0 ldrsh r1, [r0, r2] ldr r2, _080506B4 add r2, sp str r1, [r2] movs r0, 0 mov r8, r0 movs r1, 0xE0 lsls r1, 5 add r1, sp ldr r1, [r1] cmp r1, 0 beq _0805058A movs r0, 0x3 str r0, [r2] _0805058A: ldr r1, _080506B4 add r1, sp ldr r1, [r1] lsls r0, r1, 1 adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 ldr r1, _080506B4 add r1, sp str r0, [r1] movs r6, 0 _080505A2: movs r5, 0 adds r2, r6, 0x1 mov r9, r2 mov r1, r8 lsls r0, r1, 2 mov r2, sp adds r4, r0, r2 _080505B0: adds r0, r6, 0 adds r1, r5, 0 bl sub_804954C adds r1, r0, 0 ldrh r2, [r1] movs r0, 0x3 ands r0, r2 cmp r0, 0x1 bne _08050608 ldrb r0, [r1, 0x9] cmp r0, 0xFF beq _08050608 movs r0, 0x20 ands r0, r2 cmp r0, 0 bne _08050608 movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 ands r0, r2 cmp r0, 0 bne _08050608 movs r0, 0x40 ands r0, r2 cmp r0, 0 beq _08050608 ldr r0, _080506A0 add r0, r10 movs r2, 0 ldrsh r0, [r0, r2] cmp r6, r0 bne _080505FE ldr r0, _080506A4 add r0, r10 movs r1, 0 ldrsh r0, [r0, r1] cmp r5, r0 beq _08050608 _080505FE: strb r6, [r4] strb r5, [r4, 0x1] adds r4, 0x4 movs r2, 0x1 add r8, r2 _08050608: adds r5, 0x1 cmp r5, 0x1F ble _080505B0 mov r6, r9 cmp r6, 0x37 ble _080505A2 mov r0, r8 cmp r0, 0 beq _0805068C lsls r4, r0, 3 subs r0, r4, r0 movs r1, 0xA bl __divsi3 adds r5, r0, 0 adds r0, r4, 0 movs r1, 0xA bl __divsi3 adds r1, r0, 0 adds r0, r5, 0 bl sub_808411C adds r7, r0, 0 cmp r7, 0 bne _0805063E movs r7, 0x1 _0805063E: ldr r1, _080506B4 add r1, sp ldr r1, [r1] cmp r7, r1 blt _0805064E ldr r2, _080506B4 add r2, sp ldr r7, [r2] _0805064E: mov r0, sp mov r1, r8 bl sub_804FED0 mov r0, r8 bl sub_8084100 adds r5, r0, 0 cmp r7, 0 ble _0805068C adds r6, r7, 0 lsls r0, r5, 2 mov r1, sp adds r4, r0, r1 _0805066A: ldrb r0, [r4] ldrb r1, [r4, 0x1] bl sub_8049590 ldrh r2, [r0, 0x4] movs r1, 0x8 orrs r1, r2 strh r1, [r0, 0x4] adds r4, 0x4 adds r5, 0x1 cmp r5, r8 bne _08050686 mov r4, sp movs r5, 0 _08050686: subs r6, 0x1 cmp r6, 0 bne _0805066A _0805068C: ldr r3, _080506B8 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080506A0: .4byte 0x0000e218 _080506A4: .4byte 0x0000e21a _080506A8: .4byte gUnknown_203B418 _080506AC: .4byte 0x00003a08 _080506B0: .4byte gUnknown_80F4DA4 _080506B4: .4byte 0x00001c04 _080506B8: .4byte 0x00001c08 thumb_func_end sub_8050438 thumb_func_start sub_80506BC sub_80506BC: push {lr} adds r3, r0, 0 movs r2, 0x1 ldrh r1, [r3] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080506CE movs r2, 0 _080506CE: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080506D8 movs r2, 0 _080506D8: cmp r2, 0 beq _080506E6 ldr r0, _080506EC ands r0, r1 movs r1, 0x2 orrs r0, r1 strh r0, [r3] _080506E6: pop {r0} bx r0 .align 2, 0 _080506EC: .4byte 0x0000fffc thumb_func_end sub_80506BC thumb_func_start sub_80506F0 sub_80506F0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xA4 str r1, [sp, 0x64] ldrb r1, [r1, 0xD] ands r1, r0 cmp r1, 0 bne _08050708 b _08050C20 _08050708: ldr r4, _08050738 movs r0, 0x8 bl sub_8084100 lsls r0, 2 adds r0, r4 ldr r4, [r0] cmp r4, 0 bne _0805071C b _08050A7C _0805071C: movs r0, 0x64 bl sub_8084100 cmp r0, 0x31 bgt _0805073C movs r0, 0x1 str r0, [sp, 0x74] movs r1, 0x1F mov r10, r1 movs r2, 0x1 negs r2, r2 str r2, [sp, 0x70] b _08050746 .align 2, 0 _08050738: .4byte gUnknown_80F6DF8 _0805073C: movs r0, 0 str r0, [sp, 0x74] mov r10, r0 movs r1, 0x1 str r1, [sp, 0x70] _08050746: movs r0, 0x32 bl sub_8084100 adds r0, 0xA str r0, [sp, 0x78] movs r0, 0x2 movs r1, 0x36 bl sub_808411C mov r9, r0 movs r2, 0 str r2, [sp, 0x6C] subs r4, 0x1 str r4, [sp, 0x98] _08050762: movs r0, 0x6 bl sub_8084100 adds r0, 0x2 str r0, [sp, 0x68] cmp r0, 0 bne _08050772 b _08050A38 _08050772: mov r0, r9 cmp r0, 0x37 bhi _080507B8 mov r1, r10 bl sub_804954C ldrh r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _0805078A b _08050A74 _0805078A: mov r1, r9 cmp r1, 0 blt _080507A2 mov r2, r10 cmp r2, 0 blt _080507A2 mov r0, r9 cmp r0, 0x37 bgt _080507A2 mov r1, r10 cmp r1, 0x1F ble _080507A6 _080507A2: movs r0, 0x1 b _080507A8 _080507A6: movs r0, 0 _080507A8: cmp r0, 0 bne _080507B8 mov r0, r9 mov r1, r10 bl sub_8049590 bl sub_80506BC _080507B8: ldr r2, [sp, 0x68] subs r2, 0x1 str r2, [sp, 0x68] ldr r0, [sp, 0x6C] add r9, r0 ldr r1, [sp, 0x70] add r10, r1 mov r2, r10 cmp r2, 0x1F bls _080507CE b _08050A38 _080507CE: ldr r0, [sp, 0x78] subs r0, 0x1 str r0, [sp, 0x78] cmp r0, 0 beq _080507DA b _08050A30 _080507DA: movs r1, 0x3F str r1, [sp, 0x7C] _080507DE: movs r0, 0x7 bl sub_8084100 subs r0, 0x3 str r0, [sp, 0x84] movs r0, 0x7 bl sub_8084100 subs r1, r0, 0x3 ldr r6, [sp, 0x84] add r6, r9 subs r0, r6, 0x2 cmp r0, 0x33 bhi _080508DA mov r2, r10 adds r5, r1, r2 cmp r5, 0x1 ble _080508DA cmp r5, 0x1D bgt _080508DA adds r4, r6, 0x1 adds r0, r5, 0x1 mov r8, r0 adds r0, r4, 0 mov r1, r8 bl sub_804954C ldrh r1, [r0] movs r2, 0x3 adds r0, r2, 0 ands r0, r1 cmp r0, 0x2 beq _080508B2 adds r0, r4, 0 adds r1, r5, 0 str r2, [sp, 0x9C] bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x2 beq _080508B2 subs r7, r5, 0x1 adds r0, r4, 0 adds r1, r7, 0 bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x2 beq _080508B2 adds r0, r6, 0 mov r1, r8 bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x2 beq _080508B2 adds r0, r6, 0 adds r1, r7, 0 bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x2 beq _080508B2 subs r4, r6, 0x1 adds r0, r4, 0 mov r1, r8 bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x2 beq _080508B2 adds r0, r4, 0 adds r1, r5, 0 bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x2 beq _080508B2 adds r0, r4, 0 adds r1, r7, 0 bl sub_804954C ldrh r1, [r0] ldr r2, [sp, 0x9C] adds r0, r2, 0 ands r0, r1 cmp r0, 0x2 bne _080508DA _080508B2: ldr r0, [sp, 0x84] add r0, r9 cmp r0, 0 blt _080508C6 cmp r5, 0 blt _080508C6 cmp r0, 0x37 bgt _080508C6 cmp r5, 0x1F ble _080508CA _080508C6: movs r1, 0x1 b _080508CC _080508CA: movs r1, 0 _080508CC: cmp r1, 0 bne _080508DA adds r1, r5, 0 bl sub_8049590 bl sub_80506BC _080508DA: ldr r1, [sp, 0x7C] subs r1, 0x1 str r1, [sp, 0x7C] cmp r1, 0 blt _080508E6 b _080507DE _080508E6: movs r0, 0x3 negs r0, r0 _080508EA: movs r2, 0x3 negs r2, r2 str r2, [sp, 0x80] mov r1, r9 adds r1, r0, r1 str r1, [sp, 0x90] adds r0, 0x1 str r0, [sp, 0x8C] adds r7, r1, 0 mov r5, r10 subs r5, 0x3 _08050900: movs r6, 0 subs r0, r7, 0x2 cmp r0, 0x33 bls _0805090A b _08050A1A _0805090A: str r5, [sp, 0x88] str r5, [sp, 0x94] cmp r5, 0x1 bgt _08050914 b _08050A1A _08050914: cmp r5, 0x1D ble _0805091A b _08050A1A _0805091A: adds r4, r7, 0x1 adds r3, r5, 0x1 adds r0, r4, 0 adds r1, r3, 0 str r3, [sp, 0xA0] bl sub_804954C ldrh r1, [r0] movs r2, 0x3 mov r8, r2 mov r0, r8 ands r0, r1 ldr r3, [sp, 0xA0] cmp r0, 0x2 bne _0805093A movs r6, 0x1 _0805093A: adds r0, r4, 0 adds r1, r5, 0 str r3, [sp, 0xA0] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r3, [sp, 0xA0] cmp r0, 0x2 bne _08050952 adds r6, 0x1 _08050952: subs r2, r5, 0x1 adds r0, r4, 0 adds r1, r2, 0 str r2, [sp, 0x9C] str r3, [sp, 0xA0] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r2, [sp, 0x9C] ldr r3, [sp, 0xA0] cmp r0, 0x2 bne _08050970 adds r6, 0x1 _08050970: adds r0, r7, 0 adds r1, r3, 0 str r2, [sp, 0x9C] str r3, [sp, 0xA0] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r2, [sp, 0x9C] ldr r3, [sp, 0xA0] cmp r0, 0x2 bne _0805098C adds r6, 0x1 _0805098C: adds r0, r7, 0 adds r1, r2, 0 str r2, [sp, 0x9C] str r3, [sp, 0xA0] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r2, [sp, 0x9C] ldr r3, [sp, 0xA0] cmp r0, 0x2 bne _080509A8 adds r6, 0x1 _080509A8: subs r4, r7, 0x1 adds r0, r4, 0 adds r1, r3, 0 str r2, [sp, 0x9C] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r2, [sp, 0x9C] cmp r0, 0x2 bne _080509C2 adds r6, 0x1 _080509C2: adds r0, r4, 0 adds r1, r5, 0 str r2, [sp, 0x9C] bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 ldr r2, [sp, 0x9C] cmp r0, 0x2 bne _080509DA adds r6, 0x1 _080509DA: adds r0, r4, 0 adds r1, r2, 0 bl sub_804954C ldrh r1, [r0] mov r0, r8 ands r0, r1 cmp r0, 0x2 bne _080509EE adds r6, 0x1 _080509EE: cmp r6, 0x3 ble _08050A1A cmp r7, 0 blt _08050A04 cmp r5, 0 blt _08050A04 cmp r7, 0x37 bgt _08050A04 ldr r0, [sp, 0x88] cmp r0, 0x1F ble _08050A08 _08050A04: movs r0, 0x1 b _08050A0A _08050A08: movs r0, 0 _08050A0A: cmp r0, 0 bne _08050A1A ldr r0, [sp, 0x90] ldr r1, [sp, 0x94] bl sub_8049590 bl sub_80506BC _08050A1A: adds r5, 0x1 ldr r1, [sp, 0x80] adds r1, 0x1 str r1, [sp, 0x80] cmp r1, 0x3 bgt _08050A28 b _08050900 _08050A28: ldr r0, [sp, 0x8C] cmp r0, 0x3 bgt _08050A30 b _080508EA _08050A30: ldr r2, [sp, 0x68] cmp r2, 0 beq _08050A38 b _08050772 _08050A38: ldr r0, [sp, 0x6C] cmp r0, 0 beq _08050A54 movs r1, 0x1 str r1, [sp, 0x70] ldr r2, [sp, 0x74] cmp r2, 0 beq _08050A4E movs r0, 0x1 negs r0, r0 str r0, [sp, 0x70] _08050A4E: movs r1, 0 str r1, [sp, 0x6C] b _08050A6C _08050A54: movs r0, 0x64 bl sub_8084100 movs r2, 0x1 str r2, [sp, 0x6C] cmp r0, 0x31 bgt _08050A68 movs r0, 0x1 negs r0, r0 str r0, [sp, 0x6C] _08050A68: movs r1, 0 str r1, [sp, 0x70] _08050A6C: mov r2, r10 cmp r2, 0x1F bhi _08050A74 b _08050762 _08050A74: ldr r4, [sp, 0x98] cmp r4, 0 beq _08050A7C b _0805071C _08050A7C: movs r0, 0 ldr r1, [sp, 0x64] ldrb r1, [r1, 0x15] cmp r0, r1 blt _08050A88 b _08050BAE _08050A88: movs r2, 0 mov r8, r2 mov r9, r2 movs r5, 0 adds r0, 0x1 mov r10, r0 b _08050A98 _08050A96: adds r5, 0x1 _08050A98: cmp r5, 0xC7 bgt _08050AC2 movs r0, 0 movs r1, 0x38 bl sub_808411C mov r9, r0 movs r0, 0 movs r1, 0x20 bl sub_808411C mov r8, r0 mov r0, r9 subs r0, 0x1 cmp r0, 0x35 bhi _08050A96 mov r0, r8 cmp r0, 0 ble _08050A96 cmp r0, 0x1E bgt _08050A96 _08050AC2: cmp r5, 0xC8 beq _08050BA2 movs r7, 0 movs r3, 0x1 movs r1, 0 _08050ACC: movs r2, 0 lsls r0, r7, 2 adds r4, r7, 0x1 adds r0, r7 lsls r0, 1 add r0, sp _08050AD8: cmp r7, 0 beq _08050AE8 cmp r7, 0x9 beq _08050AE8 cmp r2, 0 beq _08050AE8 cmp r2, 0x9 bne _08050AEC _08050AE8: strb r3, [r0] b _08050AEE _08050AEC: strb r1, [r0] _08050AEE: adds r0, 0x1 adds r2, 0x1 cmp r2, 0x9 ble _08050AD8 adds r7, r4, 0 cmp r7, 0x9 ble _08050ACC movs r5, 0x4F _08050AFE: movs r0, 0x8 bl sub_8084100 adds r4, r0, 0 adds r7, r4, 0x1 movs r0, 0x8 bl sub_8084100 adds r2, r0, 0x1 lsls r0, r4, 2 adds r0, r4 lsls r0, 1 adds r0, r2, r0 add r0, sp ldrb r0, [r0] cmp r0, 0 bne _08050B50 adds r1, r7, 0x1 lsls r0, r1, 2 adds r0, r1 lsls r0, 1 adds r0, r2, r0 add r0, sp ldrb r0, [r0] cmp r0, 0 bne _08050B50 lsls r0, r7, 2 adds r0, r7 lsls r1, r0, 1 subs r0, r1, 0x1 adds r0, r2, r0 add r0, sp ldrb r0, [r0] cmp r0, 0 bne _08050B50 adds r0, r1, 0x1 adds r0, r2, r0 add r0, sp ldrb r0, [r0] cmp r0, 0 beq _08050B60 _08050B50: lsls r0, r7, 2 adds r0, r7 lsls r0, 1 adds r0, r2, r0 mov r2, sp adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] _08050B60: subs r5, 0x1 cmp r5, 0 bge _08050AFE movs r7, 0 _08050B68: lsls r0, r7, 2 adds r4, r7, 0x1 adds r0, r7 lsls r0, 1 mov r6, r8 subs r6, 0x5 mov r1, sp adds r5, r0, r1 add r7, r9 movs r2, 0x9 _08050B7C: ldrb r0, [r5] cmp r0, 0 bne _08050B92 subs r0, r7, 0x5 adds r1, r6, 0 str r2, [sp, 0x9C] bl sub_8049590 bl sub_80506BC ldr r2, [sp, 0x9C] _08050B92: adds r6, 0x1 adds r5, 0x1 subs r2, 0x1 cmp r2, 0 bge _08050B7C adds r7, r4, 0 cmp r7, 0x9 ble _08050B68 _08050BA2: mov r0, r10 ldr r2, [sp, 0x64] ldrb r2, [r2, 0x15] cmp r0, r2 bge _08050BAE b _08050A88 _08050BAE: movs r0, 0 mov r9, r0 movs r6, 0x1 ldr r1, _08050BF4 adds r5, r1, 0 _08050BB8: movs r2, 0 mov r10, r2 mov r4, r9 adds r4, 0x1 _08050BC0: mov r0, r9 mov r1, r10 bl sub_8049590 adds r2, r0, 0 ldrh r3, [r2] movs r0, 0x3 ands r0, r3 cmp r0, 0x2 bne _08050C10 movs r1, 0xB0 lsls r1, 1 adds r0, r1, 0 ands r0, r3 cmp r0, 0 bne _08050BEA ldrh r1, [r2, 0x4] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08050BF8 _08050BEA: adds r0, r3, 0 ands r0, r5 orrs r0, r6 b _08050C0E .align 2, 0 _08050BF4: .4byte 0x0000fffc _08050BF8: mov r0, r9 subs r0, 0x2 cmp r0, 0x34 bhi _08050C0A mov r0, r10 cmp r0, 0x1 ble _08050C0A cmp r0, 0x1E ble _08050C10 _08050C0A: ldrh r0, [r2] ands r0, r5 _08050C0E: strh r0, [r2] _08050C10: movs r1, 0x1 add r10, r1 mov r2, r10 cmp r2, 0x1F ble _08050BC0 mov r9, r4 cmp r4, 0x37 ble _08050BB8 _08050C20: add sp, 0xA4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80506F0 thumb_func_start sub_8050C30 sub_8050C30: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08050F3C add sp, r4 mov r8, r0 mov r9, r1 lsls r2, 24 lsrs r2, 24 movs r0, 0xE0 lsls r0, 3 add r0, sp str r2, [r0] movs r7, 0 mov r1, r8 lsls r1, 5 movs r2, 0xE2 lsls r2, 3 add r2, sp str r1, [r2] _08050C5C: movs r6, 0 lsls r2, r7, 5 adds r3, r7, 0x1 mov r10, r3 mov r5, sp adds r4, r2, r5 _08050C68: adds r0, r7, 0 adds r1, r6, 0 bl sub_8049590 adds r2, r0, 0 ldrh r0, [r2] movs r3, 0x3 ands r3, r0 movs r0, 0 strb r0, [r4] movs r0, 0xE0 lsls r0, 3 add r0, sp ldr r0, [r0] cmp r0, 0 beq _08050C92 ldrh r0, [r2] ldr r5, _08050F40 adds r1, r5, 0 ands r0, r1 strh r0, [r2] _08050C92: cmp r3, 0x1 beq _08050CA8 ldrh r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _08050CA8 ldrb r0, [r4] movs r1, 0x1 orrs r0, r1 strb r0, [r4] _08050CA8: cmp r3, 0x2 bne _08050CBE ldrh r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _08050CBE ldrb r0, [r4] movs r1, 0x2 orrs r0, r1 strb r0, [r4] _08050CBE: adds r4, 0x1 adds r6, 0x1 cmp r6, 0x1F ble _08050C68 mov r7, r10 cmp r7, 0x37 ble _08050C5C movs r1, 0xE2 lsls r1, 3 add r1, sp ldr r0, [r1] add r0, r9 mov r3, sp adds r2, r3, r0 ldrb r1, [r2] movs r0, 0x50 orrs r0, r1 strb r0, [r2] ldr r0, _08050F44 ldr r1, [r0] ldr r5, _08050F48 adds r0, r1, r5 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, r8 beq _08050CF4 b _08050F36 _08050CF4: ldr r3, _08050F4C adds r0, r1, r3 movs r5, 0 ldrsh r0, [r0, r5] cmp r0, r9 beq _08050D02 b _08050F36 _08050D02: ldr r1, _08050F50 movs r0, 0 str r0, [r1] movs r0, 0x40 mov r9, r0 _08050D0C: movs r1, 0 ldr r2, _08050F54 add r2, sp str r1, [r2] ldr r3, _08050F50 ldr r0, [r3] adds r0, 0x1 str r0, [r3] movs r7, 0 _08050D1E: movs r6, 0 lsls r2, r7, 5 adds r5, r7, 0x1 mov r10, r5 subs r0, r7, 0x1 movs r1, 0xE1 lsls r1, 3 add r1, sp str r0, [r1] lsls r0, 5 mov r1, sp subs r1, 0x1 adds r5, r2, r1 add r0, sp mov r8, r0 mov r2, r10 ldr r3, _08050F58 add r3, sp str r2, [r3] lsls r0, r2, 5 add r0, sp mov r12, r0 _08050D4A: ldrb r1, [r5, 0x1] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08050D56 b _08050EDA _08050D56: movs r3, 0x40 mov r0, r9 ands r0, r1 cmp r0, 0 bne _08050D62 b _08050EDA _08050D62: ldr r2, _08050F54 add r2, sp ldr r0, [r2] adds r0, 0x1 str r0, [r2] movs r0, 0xBF ands r0, r1 movs r2, 0 movs r1, 0x80 orrs r0, r1 strb r0, [r5, 0x1] cmp r7, 0 ble _08050D90 mov r0, r8 ldrb r1, [r0] movs r0, 0x83 ands r0, r1 cmp r0, 0 bne _08050D90 adds r0, r1, 0 orrs r0, r3 mov r1, r8 strb r0, [r1] _08050D90: cmp r6, 0 ble _08050DA4 ldrb r1, [r5] movs r0, 0x83 ands r0, r1 cmp r0, 0 bne _08050DA4 mov r0, r9 orrs r0, r1 strb r0, [r5] _08050DA4: cmp r7, 0x36 bgt _08050DBA mov r2, r12 ldrb r1, [r2] movs r0, 0x83 ands r0, r1 cmp r0, 0 bne _08050DBA mov r0, r9 orrs r0, r1 strb r0, [r2] _08050DBA: cmp r6, 0x1E bgt _08050DCE ldrb r1, [r5, 0x2] movs r0, 0x83 ands r0, r1 cmp r0, 0 bne _08050DCE mov r0, r9 orrs r0, r1 strb r0, [r5, 0x2] _08050DCE: cmp r7, 0 ble _08050E12 cmp r6, 0 ble _08050E12 movs r3, 0xE1 lsls r3, 3 add r3, sp ldr r3, [r3] lsls r1, r3, 5 subs r0, r1, 0x1 adds r0, r6, r0 mov r2, sp adds r4, r2, r0 ldrb r3, [r4] movs r0, 0x87 ands r0, r3 cmp r0, 0 bne _08050E12 adds r0, r6, r1 add r0, sp ldrb r1, [r0] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08050E12 ldrb r1, [r5] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08050E12 mov r0, r9 orrs r0, r3 strb r0, [r4] _08050E12: cmp r7, 0x36 bgt _08050E54 cmp r6, 0 ble _08050E54 ldr r3, _08050F58 add r3, sp ldr r3, [r3] lsls r1, r3, 5 subs r0, r1, 0x1 adds r0, r6, r0 mov r2, sp adds r4, r2, r0 ldrb r3, [r4] movs r0, 0x87 ands r0, r3 cmp r0, 0 bne _08050E54 adds r0, r6, r1 add r0, sp ldrb r1, [r0] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08050E54 ldrb r1, [r5] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08050E54 mov r0, r9 orrs r0, r3 strb r0, [r4] _08050E54: cmp r7, 0 ble _08050E98 cmp r6, 0x1E bgt _08050E98 movs r3, 0xE1 lsls r3, 3 add r3, sp ldr r3, [r3] lsls r1, r3, 5 adds r0, r1, 0x1 adds r0, r6, r0 mov r2, sp adds r4, r2, r0 ldrb r3, [r4] movs r0, 0x87 ands r0, r3 cmp r0, 0 bne _08050E98 adds r0, r6, r1 add r0, sp ldrb r1, [r0] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08050E98 ldrb r1, [r5, 0x2] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08050E98 mov r0, r9 orrs r0, r3 strb r0, [r4] _08050E98: cmp r7, 0x36 bgt _08050EDA cmp r6, 0x1E bgt _08050EDA ldr r3, _08050F58 add r3, sp ldr r3, [r3] lsls r1, r3, 5 adds r0, r1, 0x1 adds r0, r6, r0 mov r2, sp adds r4, r2, r0 ldrb r3, [r4] movs r0, 0x87 ands r0, r3 cmp r0, 0 bne _08050EDA adds r0, r6, r1 add r0, sp ldrb r1, [r0] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08050EDA ldrb r1, [r5, 0x2] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08050EDA mov r0, r9 orrs r0, r3 strb r0, [r4] _08050EDA: adds r5, 0x1 movs r3, 0x1 add r8, r3 add r12, r3 adds r6, 0x1 cmp r6, 0x1F bgt _08050EEA b _08050D4A _08050EEA: mov r7, r10 cmp r7, 0x37 bgt _08050EF2 b _08050D1E _08050EF2: ldr r5, _08050F54 add r5, sp ldr r5, [r5] cmp r5, 0 beq _08050EFE b _08050D0C _08050EFE: movs r7, 0 _08050F00: movs r6, 0 lsls r2, r7, 5 mov r0, sp adds r4, r2, r0 _08050F08: adds r0, r7, 0 adds r1, r6, 0 bl sub_8049590 adds r2, r0, 0 ldrb r1, [r4] movs r0, 0x87 ands r0, r1 cmp r0, 0 bne _08050F68 movs r1, 0xE0 lsls r1, 3 add r1, sp ldr r1, [r1] cmp r1, 0 bne _08050F5C ldrh r0, [r2] movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 ands r0, r1 cmp r0, 0 bne _08050F68 _08050F36: movs r0, 0 b _08050F78 .align 2, 0 _08050F3C: .4byte 0xfffff8ec _08050F40: .4byte 0x00007fff _08050F44: .4byte gUnknown_203B418 _08050F48: .4byte 0x0000e21c _08050F4C: .4byte 0x0000e21e _08050F50: .4byte gUnknown_202F1D4 _08050F54: .4byte 0x00000704 _08050F58: .4byte 0x0000070c _08050F5C: ldrh r1, [r2] movs r3, 0x80 lsls r3, 8 adds r0, r3, 0 orrs r0, r1 strh r0, [r2] _08050F68: adds r4, 0x1 adds r6, 0x1 cmp r6, 0x1F ble _08050F08 adds r7, 0x1 cmp r7, 0x37 ble _08050F00 movs r0, 0x1 _08050F78: ldr r3, _08050F8C add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08050F8C: .4byte 0x00000714 thumb_func_end sub_8050C30 thumb_func_start sub_8050F90 sub_8050F90: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x3C str r0, [sp] str r1, [sp, 0x4] str r2, [sp, 0x8] str r3, [sp, 0xC] movs r0, 0 str r0, [sp, 0x10] movs r1, 0 str r1, [sp, 0x14] movs r2, 0 b _080511D0 _08050FB0: movs r4, 0 str r4, [sp, 0x18] ldr r5, [sp, 0x1C] adds r5, 0x1 str r5, [sp, 0x28] ldr r6, [sp, 0x4] cmp r4, r6 blt _08050FC2 b _080511CE _08050FC2: ldr r1, [sp, 0x18] lsls r0, r1, 2 ldr r2, [sp, 0xC] adds r0, r2 ldr r3, [r0] adds r4, r3, 0x2 mov r9, r4 ldr r5, [sp, 0x1C] lsls r1, r5, 2 ldr r6, [sp, 0x5C] adds r1, r6 ldr r2, [r1] adds r4, r2, 0x2 mov r10, r4 ldr r0, [r0, 0x4] subs r0, r3 subs r4, r0, 0x4 ldr r0, [r1, 0x4] subs r0, r2 subs r7, r0, 0x4 movs r3, 0x5 movs r5, 0x5 ldr r6, [sp, 0x4] cmp r6, 0x2 bgt _08050FF8 movs r3, 0xA movs r4, 0xE _08050FF8: ldr r0, [sp, 0x8] cmp r0, 0x1 bne _08051002 movs r5, 0x10 movs r7, 0x18 _08051002: ldr r2, [sp, 0x1C] lsls r1, r2, 5 ldr r6, [sp, 0x18] lsls r2, r6, 4 subs r0, r2, r6 lsls r0, 5 ldr r6, [sp] adds r0, r6 adds r6, r1, r0 ldrb r0, [r6, 0xA] str r1, [sp, 0x30] str r2, [sp, 0x2C] cmp r0, 0 bne _08051020 b _08051130 _08051020: ldr r0, [sp, 0x14] ldr r1, [sp, 0x60] cmp r0, r1 beq _0805108C adds r0, r3, 0 adds r1, r4, 0 bl sub_808411C adds r6, r0, 0 adds r0, r5, 0 adds r1, r7, 0 bl sub_808411C adds r5, r0, 0 movs r1, 0x1 adds r0, r6, 0 orrs r0, r1 cmp r0, r4 bge _08051048 adds r6, r0, 0 _08051048: adds r0, r5, 0 orrs r0, r1 cmp r0, r7 bge _08051052 adds r5, r0, 0 _08051052: lsls r0, r5, 1 adds r0, r5 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 cmp r6, r0 ble _08051062 adds r6, r0, 0 _08051062: lsls r0, r6, 1 adds r0, r6 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 cmp r5, r0 ble _08051072 adds r5, r0, 0 _08051072: subs r0, r4, r6 bl sub_8084100 mov r2, r9 adds r4, r0, r2 subs r0, r7, r5 bl sub_8084100 mov r3, r10 adds r7, r0, r3 adds r3, r4, r6 adds r6, r7, r5 b _08051098 _0805108C: mov r4, r9 mov r7, r10 ldr r5, [sp, 0x64] adds r3, r4, r5 ldr r0, [sp, 0x68] adds r6, r7, r0 _08051098: ldr r1, [sp, 0x2C] ldr r2, [sp, 0x18] subs r0, r1, r2 lsls r0, 5 ldr r5, [sp] adds r0, r5 ldr r1, [sp, 0x30] adds r0, r1, r0 strh r4, [r0] strh r3, [r0, 0x4] strh r7, [r0, 0x2] strh r6, [r0, 0x6] adds r5, r4, 0 ldr r2, [sp, 0x10] adds r2, 0x1 str r2, [sp, 0x20] ldr r4, [sp, 0x14] adds r4, 0x1 str r4, [sp, 0x24] ldr r0, [sp, 0x18] adds r0, 0x1 mov r10, r0 cmp r5, r3 bge _08051108 _080510C8: adds r4, r7, 0 adds r1, r5, 0x1 mov r8, r1 cmp r4, r6 bge _08051102 ldr r2, _0805112C mov r9, r2 _080510D6: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp, 0x38] bl sub_8049590 ldrh r1, [r0] mov r2, r9 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 mov r1, sp ldrb r1, [r1, 0x10] strb r1, [r0, 0x9] adds r4, 0x1 ldr r3, [sp, 0x38] cmp r4, r6 blt _080510D6 _08051102: mov r5, r8 cmp r5, r3 blt _080510C8 _08051108: ldr r2, [sp, 0x14] ldr r3, [sp, 0x60] cmp r2, r3 beq _08051124 ldr r4, [sp, 0x2C] ldr r5, [sp, 0x18] subs r0, r4, r5 lsls r0, 5 ldr r6, [sp] adds r0, r6 ldr r1, [sp, 0x30] adds r0, r1, r0 movs r1, 0x1 strb r1, [r0, 0x1D] _08051124: ldr r2, [sp, 0x20] str r2, [sp, 0x10] b _080511BE .align 2, 0 _0805112C: .4byte 0x0000fffc _08051130: movs r1, 0x2 movs r3, 0x4 movs r2, 0x2 mov r8, r3 ldr r5, [sp, 0x18] cmp r5, 0 bne _08051140 movs r1, 0x1 _08051140: ldr r0, [sp, 0x1C] cmp r0, 0 bne _08051148 movs r2, 0x1 _08051148: ldr r0, [sp, 0x4] subs r0, 0x1 ldr r5, [sp, 0x18] cmp r5, r0 bne _08051154 movs r3, 0x2 _08051154: ldr r0, [sp, 0x8] subs r0, 0x1 ldr r5, [sp, 0x1C] cmp r5, r0 bne _08051162 movs r0, 0x2 mov r8, r0 _08051162: mov r5, r9 adds r0, r5, r1 adds r1, r5, r4 subs r1, r3 str r2, [sp, 0x34] bl sub_808411C adds r5, r0, 0 ldr r2, [sp, 0x34] mov r1, r10 adds r0, r1, r2 adds r1, r7 mov r2, r8 subs r1, r2 bl sub_808411C adds r4, r0, 0 strh r5, [r6] adds r0, r5, 0x1 strh r0, [r6, 0x4] strh r4, [r6, 0x2] adds r0, r4, 0x1 strh r0, [r6, 0x6] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 ldrh r1, [r0] ldr r3, _080511EC adds r2, r3, 0 ands r1, r2 movs r2, 0x1 orrs r1, r2 strh r1, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_8049590 movs r1, 0xFF strb r1, [r0, 0x9] ldr r4, [sp, 0x14] adds r4, 0x1 str r4, [sp, 0x24] ldr r5, [sp, 0x18] adds r5, 0x1 mov r10, r5 _080511BE: ldr r6, [sp, 0x24] str r6, [sp, 0x14] mov r0, r10 str r0, [sp, 0x18] ldr r1, [sp, 0x4] cmp r0, r1 bge _080511CE b _08050FC2 _080511CE: ldr r2, [sp, 0x28] _080511D0: str r2, [sp, 0x1C] ldr r3, [sp, 0x8] cmp r2, r3 bge _080511DA b _08050FB0 _080511DA: add sp, 0x3C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080511EC: .4byte 0x0000fffc thumb_func_end sub_8050F90 thumb_func_start sub_80511F0 sub_80511F0: push {r4-r6,lr} ldr r6, _08051204 ldrb r0, [r6] cmp r0, 0 beq _0805120C subs r0, 0x1 strb r0, [r6] ldr r0, _08051208 ldrb r0, [r0] b _08051244 .align 2, 0 _08051204: .4byte gUnknown_202F1E1 _08051208: .4byte gUnknown_202F1E0 _0805120C: ldr r1, _0805122C ldr r5, _08051230 ldr r2, [r5] ldrb r3, [r2] strb r3, [r1] adds r4, r2, 0x1 str r4, [r5] lsls r0, r3, 24 lsrs r0, 24 cmp r0, 0xE bne _08051234 ldrb r0, [r2, 0x1] strb r0, [r1] adds r0, r4, 0x1 str r0, [r5] b _08051242 .align 2, 0 _0805122C: .4byte gUnknown_202F1E0 _08051230: .4byte gUnknown_202F1DC _08051234: movs r0, 0xF ands r0, r3 strb r0, [r6] movs r0, 0xF0 ands r0, r3 lsrs r0, 4 strb r0, [r1] _08051242: ldrb r0, [r1] _08051244: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80511F0 thumb_func_start sub_805124C sub_805124C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r5, [sp, 0x1C] lsls r1, 24 lsrs r1, 24 lsls r5, 24 lsrs r5, 24 ldrh r6, [r0] movs r7, 0x80 lsls r7, 1 adds r4, r7, 0 movs r7, 0 mov r8, r7 orrs r4, r6 strh r4, [r0] mov r4, r8 strb r4, [r0, 0xE] str r5, [sp] bl sub_8051A74 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805124C thumb_func_start sub_8051288 sub_8051288: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC str r0, [sp, 0x4] ldr r0, _08051374 ldr r7, [r0] ldr r0, _08051378 adds r3, r7, r0 ldr r0, [r3] ldr r0, [r0, 0x4] ldr r2, [sp, 0x4] lsls r1, r2, 2 adds r0, r1, r0 ldr r0, [r0] ldrb r2, [r0] mov r10, r2 ldrb r0, [r0, 0x1] mov r9, r0 ldr r2, _0805137C adds r0, r7, r2 movs r4, 0 mov r2, r10 strh r2, [r0] ldr r2, _08051380 adds r0, r7, r2 mov r2, r9 strh r2, [r0] ldr r2, _08051384 ldr r0, [r3] ldr r0, [r0, 0x4] adds r1, r0 ldr r0, [r1] adds r0, 0x3 str r0, [r2] ldr r0, _08051388 strb r4, [r0] movs r6, 0x5 mov r0, r9 adds r0, 0x5 cmp r6, r0 bge _0805132E movs r1, 0x5 add r1, r10 mov r8, r1 str r0, [sp, 0x8] _080512E8: movs r5, 0x5 cmp r5, r8 bge _08051326 _080512EE: bl sub_80511F0 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 movs r1, 0x1 str r1, [sp] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_805124C lsls r0, 24 cmp r0, 0 beq _08051320 ldr r2, _0805138C adds r0, r7, r2 strh r5, [r0] ldr r1, _08051390 adds r0, r7, r1 strh r6, [r0] _08051320: adds r5, 0x1 cmp r5, r8 blt _080512EE _08051326: adds r6, 0x1 ldr r2, [sp, 0x8] cmp r6, r2 blt _080512E8 _0805132E: movs r6, 0 ldr r0, _08051394 adds r7, r0, 0 _08051334: movs r5, 0 adds r4, r6, 0x1 _08051338: cmp r5, 0x4 ble _08051350 mov r0, r10 adds r0, 0x5 cmp r5, r0 bge _08051350 cmp r6, 0x4 ble _08051350 mov r0, r9 adds r0, 0x5 cmp r6, r0 blt _080513A0 _08051350: adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 movs r3, 0 orrs r1, r0 strh r1, [r2] ldr r0, _08051398 ldrb r0, [r0] cmp r0, 0 beq _0805139C ands r1, r7 movs r0, 0x3 orrs r1, r0 b _0805139E .align 2, 0 _08051374: .4byte gUnknown_203B418 _08051378: .4byte 0x00013568 _0805137C: .4byte 0x0000e260 _08051380: .4byte 0x0000e262 _08051384: .4byte gUnknown_202F1DC _08051388: .4byte gUnknown_202F1E1 _0805138C: .4byte 0x0000e21c _08051390: .4byte 0x0000e21e _08051394: .4byte 0x0000fffc _08051398: .4byte gUnknown_202F1A8 _0805139C: ands r1, r7 _0805139E: strh r1, [r2] _080513A0: adds r5, 0x1 cmp r5, 0x37 ble _08051338 adds r6, r4, 0 cmp r6, 0x1F ble _08051334 ldr r1, [sp, 0x4] cmp r1, 0x4 bne _080513DA movs r6, 0x5 ldr r2, _0805142C adds r7, r2, 0 _080513B8: movs r5, 0x2 adds r4, r6, 0x1 _080513BC: adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 ldrh r2, [r0] movs r1, 0x10 orrs r1, r2 ands r1, r7 strh r1, [r0] adds r5, 0x1 cmp r5, 0x4 ble _080513BC adds r6, r4, 0 cmp r6, 0x10 ble _080513B8 _080513DA: ldr r0, _08051430 ldr r0, [r0] ldr r1, _08051434 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x3F ble _08051416 movs r6, 0 _080513EC: movs r5, 0 adds r4, r6, 0x1 _080513F0: adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0805140A movs r0, 0x10 orrs r0, r1 strh r0, [r2] _0805140A: adds r5, 0x1 cmp r5, 0x37 ble _080513F0 adds r6, r4, 0 cmp r6, 0x1F ble _080513EC _08051416: bl sub_804E9DC add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805142C: .4byte 0x0000fffc _08051430: .4byte gUnknown_203B418 _08051434: .4byte 0x00003a0e thumb_func_end sub_8051288 thumb_func_start sub_8051438 sub_8051438: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r9, r0 ldr r0, _080515AC ldr r0, [r0] str r0, [sp, 0x4] ldr r2, _080515B0 ldr r4, _080515B4 adds r3, r0, r4 ldr r0, [r3] ldr r0, [r0, 0x4] lsls r1, 2 adds r0, r1, r0 ldr r0, [r0] adds r0, 0x3 str r0, [r2] ldr r2, _080515B8 movs r0, 0 strb r0, [r2] ldr r0, [r3] ldr r0, [r0, 0x4] adds r1, r0 ldr r0, [r1] ldrb r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0805147A b _080515D8 _0805147A: ldr r5, [sp, 0x4] ldr r0, _080515BC adds r1, r5, r0 mov r2, r9 movs r3, 0 ldrsh r0, [r2, r3] str r0, [r1] ldr r4, _080515C0 adds r1, r5, r4 movs r5, 0x2 ldrsh r0, [r2, r5] str r0, [r1] ldr r0, [sp, 0x4] ldr r2, _080515C4 adds r1, r0, r2 mov r3, r9 movs r4, 0x4 ldrsh r0, [r3, r4] str r0, [r1] ldr r5, [sp, 0x4] ldr r0, _080515C8 adds r1, r5, r0 movs r2, 0x6 ldrsh r0, [r3, r2] str r0, [r1] movs r3, 0 str r3, [sp, 0x8] mov r4, r9 movs r5, 0x2 ldrsh r4, [r4, r5] mov r8, r4 mov r1, r9 movs r2, 0x6 ldrsh r0, [r1, r2] cmp r8, r0 blt _080514C4 b _08051640 _080514C4: mov r3, r9 movs r4, 0 ldrsh r7, [r3, r4] movs r5, 0x4 ldrsh r0, [r3, r5] ldr r1, [sp, 0x8] adds r1, 0x1 str r1, [sp, 0x10] mov r2, r8 adds r2, 0x1 str r2, [sp, 0xC] cmp r7, r0 bge _08051598 ldr r4, _080515CC ldr r3, [sp, 0x4] adds r4, r3, r4 str r4, [sp, 0x14] movs r5, 0 str r5, [sp, 0x18] ldr r0, [sp, 0x8] mov r10, r0 _080514EE: bl sub_80511F0 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r7, 0 mov r1, r8 bl sub_8049590 adds r6, r0, 0 ldr r1, [sp, 0x4] ldr r2, _080515D0 adds r0, r1, r2 add r0, r10 strb r5, [r0] ldr r3, [sp, 0x8] lsls r4, r3, 1 adds r4, r3 lsls r4, 3 ldr r1, [sp, 0x14] adds r0, r1, r4 movs r2, 0 str r2, [sp] adds r1, r5, 0 adds r2, r7, 0 mov r3, r8 bl sub_805124C ldrb r1, [r6, 0x9] ldr r3, [sp, 0x18] adds r4, r3 ldr r5, [sp, 0x4] adds r4, r5, r4 adds r0, r6, 0 ldr r2, _080515CC adds r4, r2 ldm r4!, {r2,r3,r5} stm r0!, {r2,r3,r5} ldm r4!, {r2,r3,r5} stm r0!, {r2,r3,r5} mov r3, r9 movs r4, 0 ldrsh r0, [r3, r4] adds r0, 0x2 cmp r7, r0 blt _08051572 movs r5, 0x4 ldrsh r0, [r3, r5] subs r0, 0x2 cmp r7, r0 bge _08051572 movs r2, 0x2 ldrsh r0, [r3, r2] adds r0, 0x2 cmp r8, r0 blt _08051572 movs r4, 0x6 ldrsh r0, [r3, r4] subs r0, 0x2 cmp r8, r0 bge _08051572 movs r0, 0x88 lsls r0, 1 strh r0, [r6] movs r0, 0xE strb r0, [r6, 0xE] _08051572: strb r1, [r6, 0x9] ldr r5, [sp, 0x4] ldr r2, _080515D4 adds r0, r5, r2 strb r1, [r0] ldr r3, [sp, 0x14] adds r3, 0xC0 str r3, [sp, 0x14] ldr r4, [sp, 0x18] adds r4, 0xC0 str r4, [sp, 0x18] movs r5, 0x8 add r10, r5 adds r7, 0x1 mov r1, r9 movs r2, 0x4 ldrsh r0, [r1, r2] cmp r7, r0 blt _080514EE _08051598: ldr r3, [sp, 0x10] str r3, [sp, 0x8] ldr r4, [sp, 0xC] mov r8, r4 mov r5, r9 movs r1, 0x6 ldrsh r0, [r5, r1] cmp r8, r0 blt _080514C4 b _08051640 .align 2, 0 _080515AC: .4byte gUnknown_203B418 _080515B0: .4byte gUnknown_202F1DC _080515B4: .4byte 0x00013568 _080515B8: .4byte gUnknown_202F1E1 _080515BC: .4byte 0x0000e250 _080515C0: .4byte 0x0000e254 _080515C4: .4byte 0x0000e258 _080515C8: .4byte 0x0000e25c _080515CC: .4byte 0x0000e27c _080515D0: .4byte 0x0000e87c _080515D4: .4byte 0x0000e8bc _080515D8: mov r2, r9 movs r3, 0x2 ldrsh r2, [r2, r3] mov r8, r2 b _08051636 _080515E2: mov r0, r9 movs r1, 0 ldrsh r7, [r0, r1] movs r2, 0x4 ldrsh r0, [r0, r2] mov r3, r8 adds r3, 0x1 str r3, [sp, 0xC] cmp r7, r0 bge _08051632 _080515F6: bl sub_80511F0 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r7, 0 mov r1, r8 bl sub_8049590 adds r5, r0, 0 ldrb r6, [r5, 0x9] movs r0, 0x1 str r0, [sp] adds r0, r5, 0 adds r1, r4, 0 adds r2, r7, 0 mov r3, r8 bl sub_805124C strb r6, [r5, 0x9] ldr r4, [sp, 0x4] ldr r5, _08051650 adds r0, r4, r5 strb r6, [r0] adds r7, 0x1 mov r1, r9 movs r2, 0x4 ldrsh r0, [r1, r2] cmp r7, r0 blt _080515F6 _08051632: ldr r3, [sp, 0xC] mov r8, r3 _08051636: mov r4, r9 movs r5, 0x6 ldrsh r0, [r4, r5] cmp r8, r0 blt _080515E2 _08051640: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08051650: .4byte 0x0000e8bc thumb_func_end sub_8051438 thumb_func_start sub_8051654 sub_8051654: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 str r0, [sp] ldr r4, _080516EC ldr r1, [r4, 0x8] ldr r0, [r4] subs r1, r0 subs r1, 0x2 movs r0, 0x3 bl sub_808411C mov r8, r0 cmp r0, 0x2 bgt _0805167C movs r0, 0x3 mov r8, r0 _0805167C: ldr r1, [r4, 0xC] ldr r0, [r4, 0x4] subs r1, r0 subs r1, 0x2 movs r0, 0x3 bl sub_808411C mov r9, r0 cmp r0, 0x2 bgt _08051694 movs r1, 0x3 mov r9, r1 _08051694: movs r0, 0x2 movs r1, 0x4 bl sub_808411C mov r10, r0 movs r5, 0 cmp r5, r10 bge _08051734 ldr r0, [r4, 0x8] ldr r1, [r4] subs r0, r1 cmp r0, r8 ble _08051734 adds r6, r4, 0 _080516B0: movs r0, 0x64 bl sub_8084100 cmp r0, 0x31 bgt _080516F4 ldr r4, [r6, 0x4] ldr r0, [r6, 0xC] adds r7, r5, 0x1 cmp r4, r0 bge _080516E4 ldr r5, _080516EC ldr r0, _080516F0 adds r2, r0, 0 _080516CA: ldr r0, [r5] adds r1, r4, 0 str r2, [sp, 0xC] bl sub_8049590 ldrh r1, [r0] ldr r2, [sp, 0xC] ands r1, r2 strh r1, [r0] adds r4, 0x1 ldr r0, [r5, 0xC] cmp r4, r0 blt _080516CA _080516E4: ldr r0, [r6] adds r0, 0x1 str r0, [r6] b _08051724 .align 2, 0 _080516EC: .4byte gUnknown_202F1B8 _080516F0: .4byte 0x0000ffdf _080516F4: ldr r0, [r6, 0x8] subs r0, 0x1 str r0, [r6, 0x8] ldr r4, [r6, 0x4] ldr r0, [r6, 0xC] adds r7, r5, 0x1 cmp r4, r0 bge _08051724 ldr r5, _08051784 ldr r1, _08051788 adds r2, r1, 0 _0805170A: ldr r0, [r5, 0x8] adds r1, r4, 0 str r2, [sp, 0xC] bl sub_8049590 ldrh r1, [r0] ldr r2, [sp, 0xC] ands r1, r2 strh r1, [r0] adds r4, 0x1 ldr r0, [r5, 0xC] cmp r4, r0 blt _0805170A _08051724: adds r5, r7, 0 cmp r5, r10 bge _08051734 ldr r0, [r6, 0x8] ldr r1, [r6] subs r0, r1 cmp r0, r8 bgt _080516B0 _08051734: movs r5, 0 ldr r3, _08051784 cmp r5, r10 bge _080517CE ldr r0, [r3, 0xC] ldr r1, [r3, 0x4] subs r0, r1 cmp r0, r9 ble _080517CE adds r6, r3, 0 _08051748: movs r0, 0x64 bl sub_8084100 cmp r0, 0x31 bgt _0805178C ldr r4, [r6] ldr r0, [r6, 0x8] adds r7, r5, 0x1 cmp r4, r0 bge _0805177C ldr r5, _08051784 ldr r0, _08051788 adds r2, r0, 0 _08051762: ldr r1, [r5, 0x4] adds r0, r4, 0 str r2, [sp, 0xC] bl sub_8049590 ldrh r1, [r0] ldr r2, [sp, 0xC] ands r1, r2 strh r1, [r0] adds r4, 0x1 ldr r0, [r5, 0x8] cmp r4, r0 blt _08051762 _0805177C: ldr r0, [r6, 0x4] adds r0, 0x1 str r0, [r6, 0x4] b _080517BC .align 2, 0 _08051784: .4byte gUnknown_202F1B8 _08051788: .4byte 0x0000ffdf _0805178C: ldr r0, [r6, 0xC] subs r0, 0x1 str r0, [r6, 0xC] ldr r4, [r6] ldr r0, [r6, 0x8] adds r7, r5, 0x1 cmp r4, r0 bge _080517BC ldr r5, _080518E4 ldr r1, _080518E8 adds r2, r1, 0 _080517A2: ldr r1, [r5, 0xC] adds r0, r4, 0 str r2, [sp, 0xC] bl sub_8049590 ldrh r1, [r0] ldr r2, [sp, 0xC] ands r1, r2 strh r1, [r0] adds r4, 0x1 ldr r0, [r5, 0x8] cmp r4, r0 blt _080517A2 _080517BC: adds r5, r7, 0 ldr r3, _080518E4 cmp r5, r10 bge _080517CE ldr r1, [r6, 0xC] ldr r0, [r6, 0x4] subs r1, r0 cmp r1, r9 bgt _08051748 _080517CE: ldr r7, [r3] ldr r0, [r3, 0x8] cmp r7, r0 bge _08051824 adds r4, r3, 0 mov r9, r3 _080517DA: ldr r5, [r4, 0x4] ldr r0, [r4, 0xC] adds r1, r7, 0x1 mov r8, r1 cmp r5, r0 bge _0805181A ldr r3, _080518E4 ldr r0, _080518E8 adds r6, r0, 0 _080517EC: adds r0, r7, 0 adds r1, r5, 0 str r3, [sp, 0x10] bl sub_8049590 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x20 ands r0, r1 ldr r3, [sp, 0x10] cmp r0, 0 beq _08051812 movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08051812 adds r0, r1, 0 ands r0, r6 strh r0, [r2] _08051812: adds r5, 0x1 ldr r0, [r4, 0xC] cmp r5, r0 blt _080517EC _0805181A: mov r7, r8 mov r1, r9 ldr r0, [r1, 0x8] cmp r7, r0 blt _080517DA _08051824: ldr r0, [r3] ldr r1, [r3, 0x8] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r2, r0, 1 ldr r0, [r3, 0x4] ldr r1, [r3, 0xC] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 subs r0, 0x1 mov r10, r0 movs r0, 0 mov r9, r0 subs r7, r2, 0x1 adds r0, r2, 0x2 cmp r7, r0 bge _080518D2 adds r2, r0, 0 str r2, [sp, 0x4] _08051850: mov r5, r10 adds r0, r5, 0x3 adds r1, r7, 0x1 mov r8, r1 mov r1, r9 adds r1, 0x1 str r1, [sp, 0x8] cmp r5, r0 bge _080518C6 movs r3, 0 _08051864: adds r0, r7, 0 adds r1, r5, 0 str r3, [sp, 0x10] bl sub_8049590 adds r6, r0, 0 ldrh r1, [r6] movs r0, 0x20 ands r0, r1 ldr r3, [sp, 0x10] cmp r0, 0 beq _080518BA movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080518BA movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080518BA mov r0, r9 lsls r2, r0, 1 adds r2, r3 ldr r0, [sp] ldrb r1, [r0, 0x18] lsls r0, r1, 3 adds r0, r1 lsls r0, 1 adds r2, r0 ldr r1, _080518EC adds r2, r1 movs r0, 0 ldrsh r4, [r2, r0] movs r0, 0x64 bl sub_8084100 ldr r3, [sp, 0x10] cmp r4, r0 ble _080518BA ldrh r1, [r6, 0x4] movs r0, 0x2 orrs r0, r1 strh r0, [r6, 0x4] _080518BA: adds r5, 0x1 adds r3, 0x6 mov r0, r10 adds r0, 0x3 cmp r5, r0 blt _08051864 _080518C6: mov r7, r8 ldr r1, [sp, 0x8] mov r9, r1 ldr r0, [sp, 0x4] cmp r7, r0 blt _08051850 _080518D2: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080518E4: .4byte gUnknown_202F1B8 _080518E8: .4byte 0x0000ffdf _080518EC: .4byte gUnknown_80F57D4 thumb_func_end sub_8051654 thumb_func_start sub_80518F0 sub_80518F0: push {r4-r7,lr} movs r5, 0 movs r6, 0x10 movs r7, 0 _080518F8: adds r0, r5, 0 movs r1, 0x1 bl sub_8049590 adds r4, r0, 0 bl sub_804FD10 cmp r5, 0 beq _0805190E cmp r5, 0x37 bne _08051914 _0805190E: ldrh r0, [r4] orrs r0, r6 strh r0, [r4] _08051914: adds r0, r5, 0 movs r1, 0x1E bl sub_8049590 adds r4, r0, 0 bl sub_804FD10 cmp r5, 0 beq _0805192A cmp r5, 0x37 bne _08051930 _0805192A: ldrh r0, [r4] orrs r0, r6 strh r0, [r4] _08051930: adds r5, 0x1 cmp r5, 0x37 ble _080518F8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80518F0 thumb_func_start sub_805193C sub_805193C: push {r4-r6,lr} sub sp, 0x8 adds r6, r3, 0 ldr r4, [sp, 0x18] lsls r0, 24 lsrs r5, r0, 24 lsls r1, 16 lsls r2, 16 lsrs r1, 16 orrs r1, r2 str r1, [sp, 0x4] adds r0, r5, 0 bl sub_805210C lsls r0, 24 cmp r0, 0 beq _0805196A mov r0, sp movs r1, 0x76 movs r2, 0 bl sub_8090A8C b _08051974 _0805196A: mov r0, sp adds r1, r5, 0 movs r2, 0 bl sub_8090A8C _08051974: mov r0, sp ldrb r0, [r0] orrs r4, r0 mov r0, sp strb r4, [r0] cmp r6, 0 beq _08051984 strb r6, [r0, 0x1] _08051984: add r0, sp, 0x4 mov r1, sp movs r2, 0x1 bl sub_80460F8 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_805193C thumb_func_start sub_8051998 sub_8051998: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 mov r8, r1 mov r9, r2 lsls r0, 16 asrs r0, 16 adds r1, r0, 0 lsls r3, 24 lsrs r6, r3, 24 adds r7, r6, 0 ldr r0, _080519E4 cmp r1, r0 bne _080519E8 mov r1, sp movs r5, 0 movs r4, 0 movs r0, 0x3C strh r0, [r1] bl sub_803DA20 mov r1, sp strh r0, [r1, 0x8] mov r0, sp strb r6, [r0, 0x2] str r4, [sp, 0x4] strb r5, [r0, 0x10] mov r1, r8 strh r1, [r0, 0xC] mov r1, r9 strh r1, [r0, 0xE] movs r1, 0x1 bl sub_806B7F8 b _08051A14 .align 2, 0 _080519E4: .4byte 0x000001a5 _080519E8: cmp r1, 0 beq _08051A14 mov r0, sp movs r5, 0 movs r4, 0 strh r1, [r0] adds r0, r1, 0 bl sub_803DA20 mov r1, sp strh r0, [r1, 0x8] mov r0, sp strb r7, [r0, 0x2] str r4, [sp, 0x4] strb r5, [r0, 0x10] mov r1, r8 strh r1, [r0, 0xC] mov r1, r9 strh r1, [r0, 0xE] movs r1, 0x1 bl sub_806B7F8 _08051A14: add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8051998 thumb_func_start sub_8051A24 sub_8051A24: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 lsls r6, 24 lsrs r6, 24 lsls r3, 24 lsrs r3, 24 mov r8, r3 adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 adds r7, r0, 0 lsls r4, 16 lsls r5, 16 lsrs r4, 16 orrs r4, r5 str r4, [sp] adds r0, r6, 0 mov r1, sp movs r2, 0 bl sub_8045684 cmp r0, 0 beq _08051A66 str r0, [r7, 0x14] adds r0, 0x20 mov r1, r8 strb r1, [r0] _08051A66: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8051A24 thumb_func_start sub_8051A74 sub_8051A74: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r4, r0, 0 adds r6, r2, 0 adds r7, r3, 0 ldr r0, [sp, 0x20] lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r0, 24 lsrs r0, 24 mov r9, r0 cmp r1, 0xF bls _08051AA2 ldrh r0, [r4] ldr r1, _08051AB4 ands r1, r0 movs r0, 0x1 orrs r1, r0 strh r1, [r4] _08051AA2: mov r0, r8 cmp r0, 0x45 bls _08051AAA b _08051D68 _08051AAA: lsls r0, 2 ldr r1, _08051AB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08051AB4: .4byte 0x0000fffc _08051AB8: .4byte _08051ABC .align 2, 0 _08051ABC: .4byte _08051BF0 .4byte _08051C0C .4byte _08051D50 .4byte _08051E1A .4byte _08051C20 .4byte _08051C54 .4byte _08051C64 .4byte _08051C74 .4byte _08051C94 .4byte _08051D00 .4byte _08051C7E .4byte _08051D10 .4byte _08051D24 .4byte _08051D50 .4byte _08051D50 .4byte _08051E1A .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051D68 .4byte _08051C94 .4byte _08051CD4 .4byte _08051BD4 _08051BD4: ldr r0, _08051BFC ldr r0, [r0] ldr r2, _08051C00 adds r1, r0, r2 strh r6, [r1] ldr r3, _08051C04 adds r0, r3 strh r7, [r0] movs r0, 0xB adds r1, r6, 0 adds r2, r7, 0 movs r3, 0 bl sub_8051A24 _08051BF0: ldrh r1, [r4] ldr r0, _08051C08 ands r0, r1 movs r1, 0x1 movs r2, 0 b _08051D42 .align 2, 0 _08051BFC: .4byte gUnknown_203B418 _08051C00: .4byte 0x00000684 _08051C04: .4byte 0x00000686 _08051C08: .4byte 0x0000fffc _08051C0C: ldrh r1, [r4] ldr r0, _08051C18 ands r0, r1 ldr r1, _08051C1C ands r0, r1 b _08051D5A .align 2, 0 _08051C18: .4byte 0x0000fffc _08051C1C: .4byte 0x0000feff _08051C20: ldrh r1, [r4] ldr r0, _08051C44 ands r0, r1 movs r1, 0x1 movs r2, 0 orrs r0, r1 strh r0, [r4] ldr r0, _08051C48 ldr r0, [r0] ldr r3, _08051C4C adds r1, r0, r3 strh r6, [r1] ldr r1, _08051C50 adds r0, r1 strh r7, [r0] strb r2, [r4, 0x9] b _08051E1A .align 2, 0 _08051C44: .4byte 0x0000fffc _08051C48: .4byte gUnknown_203B418 _08051C4C: .4byte 0x0000e218 _08051C50: .4byte 0x0000e21a _08051C54: ldrh r1, [r4] ldr r0, _08051C60 ands r0, r1 movs r2, 0 movs r1, 0x2 b _08051D42 .align 2, 0 _08051C60: .4byte 0x0000fffc _08051C64: ldrh r1, [r4] ldr r0, _08051C70 ands r0, r1 movs r1, 0x3 b _08051D58 .align 2, 0 _08051C70: .4byte 0x0000fffc _08051C74: ldr r1, _08051C8C movs r0, 0x1 strb r0, [r1] bl sub_8049840 _08051C7E: ldrh r1, [r4] ldr r0, _08051C90 ands r0, r1 movs r1, 0x3 orrs r0, r1 b _08051D56 .align 2, 0 _08051C8C: .4byte gUnknown_202F1A8 _08051C90: .4byte 0x0000fffc _08051C94: ldrh r1, [r4] ldr r0, _08051CC0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strh r0, [r4] ldrh r0, [r4, 0x4] movs r2, 0 orrs r0, r1 ldr r1, _08051CC4 ands r0, r1 strh r0, [r4, 0x4] strb r2, [r4, 0x9] ldr r0, _08051CC8 ldr r0, [r0] ldr r2, _08051CCC adds r1, r0, r2 strh r6, [r1] ldr r3, _08051CD0 adds r0, r3 strh r7, [r0] b _08051E1A .align 2, 0 _08051CC0: .4byte 0x0000fffc _08051CC4: .4byte 0x0000fffd _08051CC8: .4byte gUnknown_203B418 _08051CCC: .4byte 0x0000e21c _08051CD0: .4byte 0x0000e21e _08051CD4: ldrh r1, [r4] movs r2, 0x80 lsls r2, 4 adds r0, r2, 0 orrs r0, r1 ldr r1, _08051CF8 ands r0, r1 movs r1, 0x1 movs r2, 0 orrs r0, r1 strh r0, [r4] ldrh r1, [r4, 0x4] ldr r0, _08051CFC ands r0, r1 strh r0, [r4, 0x4] strb r2, [r4, 0x9] b _08051E1A .align 2, 0 _08051CF8: .4byte 0x0000fffc _08051CFC: .4byte 0x0000fffd _08051D00: ldrh r1, [r4] ldr r0, _08051D0C ands r0, r1 movs r1, 0x1 b _08051D58 .align 2, 0 _08051D0C: .4byte 0x0000fffc _08051D10: ldrh r1, [r4] ldr r0, _08051D20 ands r0, r1 movs r1, 0x1 movs r2, 0 orrs r0, r1 b _08051D3C .align 2, 0 _08051D20: .4byte 0x0000fffc _08051D24: ldrh r1, [r4] ldr r0, _08051D4C ands r0, r1 movs r1, 0x1 orrs r0, r1 movs r2, 0x80 lsls r2, 5 adds r1, r2, 0 orrs r0, r1 movs r1, 0x10 orrs r0, r1 movs r2, 0 _08051D3C: movs r3, 0x80 lsls r3, 4 adds r1, r3, 0 _08051D42: orrs r0, r1 strh r0, [r4] strb r2, [r4, 0x9] b _08051E1A .align 2, 0 _08051D4C: .4byte 0x0000fffc _08051D50: ldrh r1, [r4] ldr r0, _08051D64 ands r0, r1 _08051D56: movs r1, 0x10 _08051D58: orrs r0, r1 _08051D5A: strh r0, [r4] movs r0, 0xFF strb r0, [r4, 0x9] b _08051E1A .align 2, 0 _08051D64: .4byte 0x0000fffc _08051D68: mov r0, r8 subs r0, 0x10 lsls r0, 24 lsrs r0, 24 cmp r0, 0xCB bhi _08051E1A mov r1, r8 lsls r0, r1, 4 ldr r1, _08051DA0 adds r5, r0, r1 ldrb r0, [r5, 0xC] strb r0, [r4, 0x9] ldrb r1, [r5] cmp r1, 0 beq _08051DB8 mov r2, r9 cmp r2, 0 beq _08051DA4 ldrb r0, [r5] movs r1, 0x2 ldrsh r3, [r5, r1] ldr r1, [r5, 0x4] str r1, [sp] adds r1, r6, 0 adds r2, r7, 0 bl sub_805193C b _08051DDC .align 2, 0 _08051DA0: .4byte gUnknown_80F6D20 _08051DA4: ldr r0, _08051DB0 ldr r0, [r0] ldr r2, _08051DB4 adds r0, r2 strb r1, [r0] b _08051DDC .align 2, 0 _08051DB0: .4byte gUnknown_203B418 _08051DB4: .4byte 0x0000068b _08051DB8: ldr r2, [r5, 0x4] cmp r2, 0 beq _08051DDC ldr r0, _08051E2C ldr r1, [r0] subs r0, r2, 0x1 lsls r0, 2 adds r0, r1, r0 ldr r3, _08051E30 adds r0, r3 strh r6, [r0] ldr r0, [r5, 0x4] subs r0, 0x1 lsls r0, 2 adds r1, r0 ldr r0, _08051E34 adds r1, r0 strh r7, [r1] _08051DDC: movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 beq _08051DF2 ldrb r3, [r5, 0xA] mov r1, r8 str r1, [sp] adds r1, r6, 0 adds r2, r7, 0 bl sub_8051998 _08051DF2: ldrb r0, [r5, 0xB] cmp r0, 0x14 beq _08051E08 mov r2, r9 cmp r2, 0 beq _08051E08 ldrb r3, [r5, 0xD] adds r1, r6, 0 adds r2, r7, 0 bl sub_8051A24 _08051E08: ldrb r0, [r5, 0xE] cmp r0, 0 beq _08051E1A ldrh r0, [r4] ldr r1, _08051E38 ands r1, r0 movs r0, 0x2 orrs r1, r0 strh r1, [r4] _08051E1A: movs r0, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08051E2C: .4byte gUnknown_203B418 _08051E30: .4byte 0x0000e220 _08051E34: .4byte 0x0000e222 _08051E38: .4byte 0x0000fffc thumb_func_end sub_8051A74 thumb_func_start sub_8051E3C sub_8051E3C: push {r4-r6,lr} sub sp, 0x4 movs r5, 0 _08051E42: movs r4, 0 adds r6, r5, 0x1 _08051E46: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049590 adds r2, r0, 0 ldrb r0, [r2, 0xE] cmp r0, 0xF bls _08051E66 adds r1, r0, 0 movs r0, 0 str r0, [sp] adds r0, r2, 0 adds r2, r4, 0 adds r3, r5, 0 bl sub_8051A74 _08051E66: adds r4, 0x1 cmp r4, 0x37 ble _08051E46 adds r5, r6, 0 cmp r5, 0x1F ble _08051E42 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8051E3C thumb_func_start sub_8051E7C sub_8051E7C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r9, r0 movs r1, 0x4 ldrsh r0, [r0, r1] mov r2, r9 movs r3, 0x6 ldrsh r1, [r2, r3] subs r1, 0x1 bl sub_8049590 str r0, [sp, 0x8] ldrh r1, [r0] movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 bne _08051EB8 ldr r0, _08051EB4 ldr r1, [r0] mov r0, r9 bl sub_80522A8 b _080520F6 .align 2, 0 _08051EB4: .4byte gUnknown_80FDDF0 _08051EB8: ldr r0, _08051EF0 ldr r0, [r0] ldr r1, _08051EF4 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08051EC8 b _080520EC _08051EC8: mov r2, r9 ldrh r1, [r2, 0x6] subs r1, 0x1 lsls r1, 16 ldrh r0, [r2, 0x4] orrs r0, r1 str r0, [sp, 0x4] mov r0, r9 bl sub_80450FC lsls r0, 24 lsrs r0, 24 str r0, [sp, 0xC] mov r3, r9 movs r1, 0x6 ldrsh r0, [r3, r1] adds r6, r0, 0 subs r6, 0x15 b _08051FE0 .align 2, 0 _08051EF0: .4byte gUnknown_203B418 _08051EF4: .4byte 0x00003a09 _08051EF8: mov r2, r9 movs r3, 0x4 ldrsh r0, [r2, r3] adds r5, r0, 0 subs r5, 0x14 adds r0, 0x14 adds r1, r6, 0x1 str r1, [sp, 0x10] cmp r5, r0 bgt _08051FD8 ldr r2, _080520C0 mov r10, r2 _08051F10: mov r0, r10 ldr r3, [r0] ldr r1, _080520C4 adds r0, r3, r1 ldr r1, [r0] subs r2, r5, r1 mov r8, r2 ldr r2, _080520C8 adds r0, r3, r2 ldr r2, [r0] subs r7, r6, r2 mov r0, r8 cmp r0, 0 blt _08051FCA cmp r7, 0 blt _08051FCA cmp r0, 0x7 bgt _08051FCA cmp r7, 0x7 bgt _08051FCA adds r0, r1, 0x1 cmp r5, r0 blt _08051FCA adds r0, r2, 0x1 cmp r6, r0 blt _08051FCA ldr r1, _080520CC adds r0, r3, r1 ldr r0, [r0] subs r0, 0x1 cmp r5, r0 bge _08051FCA ldr r2, _080520D0 adds r0, r3, r2 ldr r0, [r0] subs r0, 0x1 cmp r6, r0 bge _08051FCA adds r0, r5, 0 adds r1, r6, 0 bl sub_8049590 adds r4, r0, 0 ldrh r0, [r4] movs r3, 0x80 lsls r3, 1 adds r1, r3, 0 ands r0, r1 cmp r0, 0 beq _08051F9A mov r0, r10 ldr r2, [r0] lsls r1, r7, 1 adds r1, r7 lsls r1, 3 mov r3, r8 lsls r0, r3, 1 add r0, r8 lsls r0, 6 adds r1, r0 adds r2, r1 ldr r1, _080520D4 adds r0, r2, r1 ldrh r0, [r0] strh r0, [r4] ldr r3, _080520D8 adds r2, r3 ldrh r0, [r2] strh r0, [r4, 0x4] _08051F9A: mov r1, r10 ldr r0, [r1] mov r2, r8 lsls r1, r2, 3 adds r1, r7, r1 ldr r3, _080520DC adds r0, r3 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 str r0, [sp] adds r0, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_8051A74 ldrh r1, [r4, 0x4] movs r0, 0x3 orrs r0, r1 strh r0, [r4, 0x4] ldr r0, [sp, 0xC] cmp r0, 0xFF beq _08051FCA strb r0, [r4, 0x9] _08051FCA: adds r5, 0x1 mov r2, r9 movs r3, 0x4 ldrsh r0, [r2, r3] adds r0, 0x14 cmp r5, r0 ble _08051F10 _08051FD8: ldr r6, [sp, 0x10] mov r1, r9 movs r2, 0x6 ldrsh r0, [r1, r2] _08051FE0: adds r0, 0x13 cmp r6, r0 ble _08051EF8 mov r3, r9 movs r1, 0x6 ldrsh r0, [r3, r1] adds r6, r0, 0 subs r6, 0x15 adds r0, 0x13 ldr r7, _080520C0 cmp r6, r0 bgt _0805207A _08051FF8: mov r2, r9 movs r3, 0x4 ldrsh r0, [r2, r3] adds r5, r0, 0 subs r5, 0x14 adds r0, 0x14 adds r1, r6, 0x1 str r1, [sp, 0x10] cmp r5, r0 bgt _0805206C ldr r7, _080520C0 _0805200E: ldr r0, _080520C0 ldr r4, [r0] ldr r2, _080520C4 adds r0, r4, r2 ldr r2, [r0] subs r1, r5, r2 ldr r3, _080520C8 adds r0, r4, r3 ldr r3, [r0] subs r0, r6, r3 cmp r1, 0 blt _0805205E cmp r0, 0 blt _0805205E cmp r1, 0x7 bgt _0805205E cmp r0, 0x7 bgt _0805205E adds r0, r2, 0x1 cmp r5, r0 blt _0805205E adds r0, r3, 0x1 cmp r6, r0 blt _0805205E ldr r1, _080520CC adds r0, r4, r1 ldr r0, [r0] subs r0, 0x1 cmp r5, r0 bge _0805205E ldr r2, _080520D0 adds r0, r4, r2 ldr r0, [r0] subs r0, 0x1 cmp r6, r0 bge _0805205E adds r0, r5, 0 adds r1, r6, 0 bl sub_80498A8 _0805205E: adds r5, 0x1 mov r3, r9 movs r1, 0x4 ldrsh r0, [r3, r1] adds r0, 0x14 cmp r5, r0 ble _0805200E _0805206C: ldr r6, [sp, 0x10] mov r2, r9 movs r3, 0x6 ldrsh r0, [r2, r3] adds r0, 0x13 cmp r6, r0 ble _08051FF8 _0805207A: ldr r0, [r7] ldr r1, _080520E0 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r2, [sp, 0x8] ldrh r1, [r2] ldr r0, _080520E4 ands r0, r1 strh r0, [r2] mov r3, r9 movs r1, 0x4 ldrsh r0, [r3, r1] movs r2, 0x6 ldrsh r1, [r3, r2] subs r1, 0x1 bl sub_80498A8 bl sub_8049B8C bl sub_8049ED4 add r0, sp, 0x4 bl sub_80429FC ldr r0, _080520E8 ldr r1, [r0] mov r0, r9 bl sub_80522A8 movs r0, 0x14 movs r1, 0x3C bl sub_803E708 b _080520F6 .align 2, 0 _080520C0: .4byte gUnknown_203B418 _080520C4: .4byte 0x0000e250 _080520C8: .4byte 0x0000e254 _080520CC: .4byte 0x0000e258 _080520D0: .4byte 0x0000e25c _080520D4: .4byte 0x0000e27c _080520D8: .4byte 0x0000e280 _080520DC: .4byte 0x0000e87c _080520E0: .4byte 0x00003a09 _080520E4: .4byte 0x0000efef _080520E8: .4byte gUnknown_80FDDD0 _080520EC: ldr r0, _08052108 ldr r1, [r0] mov r0, r9 bl sub_80522A8 _080520F6: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08052108: .4byte gUnknown_80FDDF0 thumb_func_end sub_8051E7C thumb_func_start sub_805210C sub_805210C: push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r3, 0 ldr r7, _080521B4 movs r4, 0x1 ldr r2, [r7] _0805211A: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0805212A ldrb r0, [r2, 0x2] cmp r0, r5 beq _080521C8 _0805212A: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x13 ble _0805211A movs r3, 0 ldr r0, _080521B8 ldr r4, [r0] movs r6, 0x1 _0805213A: movs r0, 0x64 adds r2, r3, 0 muls r2, r0 adds r0, r2, r4 ldr r1, _080521BC adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0805216C adds r0, r2, r4 ldr r1, _080521C0 adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 ands r0, r1 adds r1, r2, r4 cmp r0, 0 beq _0805216C ldr r2, _080521C4 adds r0, r1, r2 ldrb r0, [r0] cmp r0, r5 beq _080521C8 _0805216C: adds r3, 0x1 cmp r3, 0x3 ble _0805213A movs r3, 0 ldr r0, _080521B8 ldr r4, [r0] _08052178: movs r0, 0x58 muls r0, r3 adds r2, r0, r4 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08052196 adds r0, r2, 0 adds r0, 0x28 ldrb r0, [r0] cmp r0, 0 beq _08052196 cmp r0, r5 beq _080521C8 _08052196: adds r3, 0x1 movs r0, 0xCE lsls r0, 1 cmp r3, r0 ble _08052178 ldr r0, [r7] lsls r1, r5, 1 adds r0, 0x50 adds r0, r1 ldrh r0, [r0] cmp r0, 0 bne _080521C8 movs r0, 0 b _080521CA .align 2, 0 _080521B4: .4byte gUnknown_203B460 _080521B8: .4byte gUnknown_203B45C _080521BC: .4byte 0x00008df8 _080521C0: .4byte 0x00008e38 _080521C4: .4byte 0x00008e3a _080521C8: movs r0, 0x1 _080521CA: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805210C thumb_func_start sub_80521D0 sub_80521D0: push {r4-r6,lr} movs r1, 0 ldr r5, _08052200 ldr r6, _08052204 ldr r4, _08052208 ldr r3, _0805220C movs r2, 0 _080521DE: ldr r0, [r4] adds r0, r3 adds r0, r1 strb r2, [r0] adds r1, 0x1 cmp r1, 0x9 ble _080521DE movs r0, 0 str r0, [r5] movs r0, 0x1 strb r0, [r6] movs r0, 0 bl sub_8052210 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08052200: .4byte gUnknown_202F1E8 _08052204: .4byte gUnknown_203B434 _08052208: .4byte gUnknown_203B418 _0805220C: .4byte 0x0001c054 thumb_func_end sub_80521D0 thumb_func_start sub_8052210 sub_8052210: push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r5, _08052280 _0805221A: lsls r0, r4, 6 ldr r1, [r5] adds r0, r1 ldr r1, _08052284 adds r0, r1 ldr r1, _08052288 bl strcpy adds r4, 0x1 cmp r4, 0x9 ble _0805221A ldr r1, _08052280 ldr r0, [r1] ldr r2, _0805228C adds r0, r2 movs r3, 0 strb r3, [r0] ldr r0, [r1] adds r2, 0x1 adds r1, r0, r2 strh r3, [r1] adds r2, 0x2 adds r1, r0, r2 strh r3, [r1] adds r2, 0x2 adds r1, r0, r2 strh r3, [r1] ldr r1, _08052290 adds r2, r0, r1 movs r1, 0x4 strh r1, [r2] ldr r2, _08052294 adds r0, r2 str r3, [r0] cmp r6, 0 beq _08052278 ldr r0, _08052298 ldr r0, [r0] cmp r0, 0x3 bne _08052278 movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0xB bl sub_803E46C _08052278: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08052280: .4byte gUnknown_203B418 _08052284: .4byte 0x0001bdd4 _08052288: .4byte gUnknown_80F7AE8 _0805228C: .4byte 0x0001c05f _08052290: .4byte 0x0001c066 _08052294: .4byte 0x0001c06c _08052298: .4byte gUnknown_202EDD0 thumb_func_end sub_8052210 .align 2, 0 @ Don't pad with nop.