summaryrefslogtreecommitdiff
path: root/asm/code_8027C84.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/code_8027C84.s')
-rw-r--r--asm/code_8027C84.s42617
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