diff options
Diffstat (limited to 'asm/code_8027C84.s')
-rw-r--r-- | asm/code_8027C84.s | 42617 |
1 files changed, 42617 insertions, 0 deletions
diff --git a/asm/code_8027C84.s b/asm/code_8027C84.s new file mode 100644 index 0000000..e8823f2 --- /dev/null +++ b/asm/code_8027C84.s @@ -0,0 +1,42617 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + 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 gGenderText +_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 gStarterReveal +_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 + + .align 2,0 |