summaryrefslogtreecommitdiff
path: root/arm9/modules/56/asm/module_56.s
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/modules/56/asm/module_56.s')
-rw-r--r--arm9/modules/56/asm/module_56.s8689
1 files changed, 8689 insertions, 0 deletions
diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s
new file mode 100644
index 00000000..4ab4e3a4
--- /dev/null
+++ b/arm9/modules/56/asm/module_56.s
@@ -0,0 +1,8689 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD56_02211E60
+MOD56_02211E60: ; 0x02211E60
+ sub r0, #9
+ cmp r0, #5
+ bhi _02211E82
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02211E72: ; jump table
+ .short _02211E7E - _02211E72 - 2 ; case 0
+ .short _02211E7E - _02211E72 - 2 ; case 1
+ .short _02211E7E - _02211E72 - 2 ; case 2
+ .short _02211E7E - _02211E72 - 2 ; case 3
+ .short _02211E7E - _02211E72 - 2 ; case 4
+ .short _02211E7E - _02211E72 - 2 ; case 5
+_02211E7E:
+ mov r0, #1
+ bx lr
+_02211E82:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD56_02211E60
+
+ thumb_func_start MOD56_02211E88
+MOD56_02211E88: ; 0x02211E88
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD56_02211E60
+ cmp r0, #0
+ beq _02211E98
+ mov r0, #1
+ pop {r4, pc}
+_02211E98:
+ cmp r4, #0xf
+ bne _02211EA0
+ mov r0, #1
+ pop {r4, pc}
+_02211EA0:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD56_02211E88
+
+ thumb_func_start MOD56_02211EA4
+MOD56_02211EA4: ; 0x02211EA4
+ cmp r0, #7
+ bhi _02211EC8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02211EB4: ; jump table
+ .short _02211EC8 - _02211EB4 - 2 ; case 0
+ .short _02211EC8 - _02211EB4 - 2 ; case 1
+ .short _02211EC4 - _02211EB4 - 2 ; case 2
+ .short _02211EC4 - _02211EB4 - 2 ; case 3
+ .short _02211EC4 - _02211EB4 - 2 ; case 4
+ .short _02211EC4 - _02211EB4 - 2 ; case 5
+ .short _02211EC4 - _02211EB4 - 2 ; case 6
+ .short _02211EC4 - _02211EB4 - 2 ; case 7
+_02211EC4:
+ mov r0, #1
+ bx lr
+_02211EC8:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD56_02211EA4
+
+ thumb_func_start MOD56_02211ECC
+MOD56_02211ECC: ; 0x02211ECC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD56_02211EA4
+ cmp r0, #0
+ beq _02211EDC
+ mov r0, #1
+ pop {r4, pc}
+_02211EDC:
+ cmp r4, #1
+ beq _02211EE4
+ cmp r4, #8
+ bne _02211EE8
+_02211EE4:
+ mov r0, #1
+ pop {r4, pc}
+_02211EE8:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD56_02211ECC
+
+ thumb_func_start MOD56_02211EEC
+MOD56_02211EEC: ; 0x02211EEC
+ sub r0, #0xc
+ cmp r0, #3
+ bhi _02211F0A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02211EFE: ; jump table
+ .short _02211F06 - _02211EFE - 2 ; case 0
+ .short _02211F06 - _02211EFE - 2 ; case 1
+ .short _02211F06 - _02211EFE - 2 ; case 2
+ .short _02211F06 - _02211EFE - 2 ; case 3
+_02211F06:
+ mov r0, #1
+ bx lr
+_02211F0A:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD56_02211EEC
+
+ thumb_func_start MOD56_02211F10
+MOD56_02211F10: ; 0x02211F10
+ mov r1, #0x11
+ cmp r0, #0x10
+ bhi _02211F82
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02211F22: ; jump table
+ .short _02211F82 - _02211F22 - 2 ; case 0
+ .short _02211F80 - _02211F22 - 2 ; case 1
+ .short _02211F68 - _02211F22 - 2 ; case 2
+ .short _02211F6C - _02211F22 - 2 ; case 3
+ .short _02211F70 - _02211F22 - 2 ; case 4
+ .short _02211F74 - _02211F22 - 2 ; case 5
+ .short _02211F78 - _02211F22 - 2 ; case 6
+ .short _02211F7C - _02211F22 - 2 ; case 7
+ .short _02211F64 - _02211F22 - 2 ; case 8
+ .short _02211F48 - _02211F22 - 2 ; case 9
+ .short _02211F4C - _02211F22 - 2 ; case 10
+ .short _02211F50 - _02211F22 - 2 ; case 11
+ .short _02211F54 - _02211F22 - 2 ; case 12
+ .short _02211F58 - _02211F22 - 2 ; case 13
+ .short _02211F5C - _02211F22 - 2 ; case 14
+ .short _02211F44 - _02211F22 - 2 ; case 15
+ .short _02211F60 - _02211F22 - 2 ; case 16
+_02211F44:
+ mov r1, #8
+ b _02211F82
+_02211F48:
+ mov r1, #2
+ b _02211F82
+_02211F4C:
+ mov r1, #3
+ b _02211F82
+_02211F50:
+ mov r1, #4
+ b _02211F82
+_02211F54:
+ mov r1, #5
+ b _02211F82
+_02211F58:
+ mov r1, #6
+ b _02211F82
+_02211F5C:
+ mov r1, #7
+ b _02211F82
+_02211F60:
+ mov r1, #1
+ b _02211F82
+_02211F64:
+ mov r1, #0xf
+ b _02211F82
+_02211F68:
+ mov r1, #9
+ b _02211F82
+_02211F6C:
+ mov r1, #0xa
+ b _02211F82
+_02211F70:
+ mov r1, #0xb
+ b _02211F82
+_02211F74:
+ mov r1, #0xc
+ b _02211F82
+_02211F78:
+ mov r1, #0xd
+ b _02211F82
+_02211F7C:
+ mov r1, #0xe
+ b _02211F82
+_02211F80:
+ mov r1, #0x10
+_02211F82:
+ add r0, r1, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD56_02211F10
+
+ thumb_func_start MOD56_02211F88
+MOD56_02211F88: ; 0x02211F88
+ push {r3, r4, r5, r6, r7, lr}
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_0206BB1C
+ str r0, [sp]
+ bl FUN_0206B9AC
+ mov r5, #0
+ add r7, r0, #0
+ add r4, r5, #0
+ cmp r7, #0
+ ble _02211FCE
+_02211FA2:
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ mov r1, #0xa2
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02211FC8
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _02211FC8
+ add r5, r5, #1
+_02211FC8:
+ add r4, r4, #1
+ cmp r4, r7
+ blt _02211FA2
+_02211FCE:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02211F88
+
+ thumb_func_start MOD56_02211FD4
+MOD56_02211FD4: ; 0x02211FD4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _02212074 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _02212078 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ mov r0, #0x36
+ bl FUN_02016B94
+ add r1, r4, #0
+ add r1, #0xc0
+ str r0, [r1]
+ mov r0, #0x36
+ bl FUN_0200AA80
+ add r1, r4, #0
+ add r1, #0xc8
+ str r0, [r1]
+ mov r2, #0x25
+ mov r0, #0
+ mov r1, #0x1a
+ lsl r2, r2, #4
+ mov r3, #0x36
+ bl FUN_0200A86C
+ add r1, r4, #0
+ add r1, #0xcc
+ str r0, [r1]
+ ldr r2, _0221207C ; =0x00000265
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x36
+ bl FUN_0200A86C
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ bl MOD56_022122B4
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl MOD56_022122D4
+ add r0, r4, #0
+ bl MOD56_0221257C
+ ldr r0, _02212080 ; =MOD56_0221228C
+ add r1, r4, #0
+ bl FUN_02015F10
+ bl MOD56_0221269C
+ add r0, r4, #0
+ bl MOD56_022126E0
+ add r0, r4, #0
+ bl MOD56_022127D4
+ pop {r4, pc}
+ .align 2, 0
+_02212074: .word 0xFFFFE0FF
+_02212078: .word 0x04001000
+_0221207C: .word 0x00000265
+_02212080: .word MOD56_0221228C
+ thumb_func_end MOD56_02211FD4
+
+ thumb_func_start MOD56_02212084
+MOD56_02212084: ; 0x02212084
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #0
+ beq _02212098
+ cmp r1, #1
+ beq _0221214E
+ b _0221215C
+_02212098:
+ bl FUN_0200628C
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ cmp r0, #1
+ bne _022120B2
+ mov r2, #7
+ mov r0, #3
+ mov r1, #0x36
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ b _022120BE
+_022120B2:
+ mov r2, #0xb
+ mov r0, #3
+ mov r1, #0x36
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+_022120BE:
+ mov r1, #0x3f
+ add r0, r4, #0
+ lsl r1, r1, #4
+ mov r2, #0x36
+ bl FUN_02006268
+ mov r2, #0x3f
+ mov r1, #0
+ lsl r2, r2, #4
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r0, #0x5e
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ ldr r1, [r6]
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_020286EC
+ str r0, [r4]
+ mov r1, #0xef
+ ldr r0, [r6, #4]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ mov r2, #8
+ sub r0, #8
+ str r2, [r4, r0]
+ sub r2, #9
+ add r1, #0x1c
+ str r2, [r4, r1]
+ mov r0, #0xf
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #0xf
+ mov r1, #0
+ bl FUN_0201E74C
+ add r0, r4, #0
+ bl MOD56_0221244C
+ add r0, r4, #0
+ bl MOD56_02211FD4
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x36
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ bl FUN_02033590
+ cmp r0, #0
+ bne _02212146
+ bl FUN_02088858
+_02212146:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0221215C
+_0221214E:
+ bl FUN_02006278
+ mov r0, #0
+ str r0, [r5]
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_0221215C:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02212084
+
+ thumb_func_start MOD56_02212164
+MOD56_02212164: ; 0x02212164
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #0
+ beq _0221217E
+ cmp r1, #1
+ beq _0221218C
+ cmp r1, #2
+ beq _022121A2
+ b _022121AE
+_0221217E:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _022121AE
+ mov r0, #1
+ str r0, [r5]
+ b _022121AE
+_0221218C:
+ mov r2, #0x3b
+ lsl r2, r2, #4
+ ldr r2, [r4, r2]
+ lsl r3, r2, #2
+ ldr r2, _022121C0 ; =0x022164E0
+ ldr r2, [r2, r3]
+ cmp r2, #0
+ beq _022121AE
+ blx r2
+ str r0, [r5]
+ b _022121AE
+_022121A2:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _022121AE
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022121AE:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _022121BC
+ bl FUN_0201FDEC
+_022121BC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022121C0: .word 0x022164E0
+ thumb_func_end MOD56_02212164
+
+ thumb_func_start MOD56_022121C4
+MOD56_022121C4: ; 0x022121C4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0xb
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0xb1
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r7, #0x2b
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #4
+_022121EC:
+ ldr r0, [r5, r7]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _022121EC
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ add r0, r6, #0
+ bl MOD56_0221295C
+ add r0, r6, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl MOD56_02212540
+ add r0, r6, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl FUN_0200A8B8
+ add r0, r6, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ bl FUN_0200A8B8
+ add r6, #0xc8
+ ldr r0, [r6]
+ bl FUN_0200AB18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD56_022121C4
+
+ thumb_func_start MOD56_02212240
+MOD56_02212240: ; 0x02212240
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD56_022121C4
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r6, r0, #0
+ mov r0, #0xed
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ str r1, [r6, #4]
+ ldr r0, [r4, r0]
+ cmp r0, #8
+ beq _02212268
+ cmp r0, #0xa
+ bne _0221226E
+_02212268:
+ bl FUN_02088868
+ b _02212274
+_0221226E:
+ bl MOD04_021D853C
+ str r0, [r6, #8]
+_02212274:
+ add r0, r4, #0
+ bl MOD56_022124E4
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x36
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02212240
+
+ thumb_func_start MOD56_0221228C
+MOD56_0221228C: ; 0x0221228C
+ push {r3, lr}
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl FUN_0201AB60
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r3, _022122AC ; =0x027E0000
+ ldr r1, _022122B0 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ .align 2, 0
+_022122AC: .word 0x027E0000
+_022122B0: .word 0x00003FF8
+ thumb_func_end MOD56_0221228C
+
+ thumb_func_start MOD56_022122B4
+MOD56_022122B4: ; 0x022122B4
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _022122D0 ; =0x02216454
+ add r3, sp, #0
+ mov r2, #5
+_022122BE:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022122BE
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_022122D0: .word 0x02216454
+ thumb_func_end MOD56_022122B4
+
+ thumb_func_start MOD56_022122D4
+MOD56_022122D4: ; 0x022122D4
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ ldr r5, _0221242C ; =0x02216330
+ add r3, sp, #0x8c
+ add r4, r0, #0
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r5, _02212430 ; =0x02216368
+ add r3, sp, #0x70
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #0
+ str r0, [r3]
+ add r0, r4, #0
+ add r3, r1, #0
+ bl FUN_02016C18
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x36
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02018744
+ ldr r5, _02212434 ; =0x02216384
+ add r3, sp, #0x54
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #1
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x36
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _02212438 ; =0x022163A0
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x36
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r5, _0221243C ; =0x022163BC
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #3
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #3
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x36
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ ldr r5, _02212440 ; =0x022163D8
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #4
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x36
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x36
+ bl FUN_02017F18
+ mov r0, #0
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #1
+ mov r1, #2
+ bl FUN_020178BC
+ mov r0, #3
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #0
+ bl FUN_020178BC
+ ldr r0, _02212444 ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, _02212448 ; =0x04001050
+ strh r1, [r0]
+ add sp, #0x9c
+ pop {r4, r5, pc}
+ .align 2, 0
+_0221242C: .word 0x02216330
+_02212430: .word 0x02216368
+_02212434: .word 0x02216384
+_02212438: .word 0x022163A0
+_0221243C: .word 0x022163BC
+_02212440: .word 0x022163D8
+_02212444: .word 0x04000050
+_02212448: .word 0x04001050
+ thumb_func_end MOD56_022122D4
+
+ thumb_func_start MOD56_0221244C
+MOD56_0221244C: ; 0x0221244C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+ mov r7, #8
+_02212456:
+ add r0, r7, #0
+ mov r1, #0x36
+ bl FUN_020219F4
+ add r1, r5, #0
+ add r1, #0xd4
+ str r0, [r1]
+ ldr r0, [r6]
+ add r1, r4, #0
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r5, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl FUN_02021E28
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x20
+ blt _02212456
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ mov r1, #0x36
+ bl FUN_020219F4
+ mov r1, #0x57
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ add r1, #0x20
+ add r0, r1, #0
+ mov r1, #0x36
+ bl FUN_020219F4
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ add r7, r1, #0
+ str r0, [r6, r1]
+ mov r5, #0
+ add r4, r6, #0
+ sub r7, #0x10
+_022124A8:
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ mov r1, #0x36
+ bl FUN_020219F4
+ str r0, [r4, r7]
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #4
+ blt _022124A8
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ mov r1, #0x36
+ bl FUN_020219F4
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ mov r0, #0xb4
+ mov r1, #0x36
+ bl FUN_020219F4
+ mov r1, #0x16
+ lsl r1, r1, #4
+ str r0, [r6, r1]
+ mov r0, #0x3b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD56_0221244C
+
+ thumb_func_start MOD56_022124E4
+MOD56_022124E4: ; 0x022124E4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r4, #0
+ add r5, r7, #0
+_022124EC:
+ add r0, r5, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x20
+ blt _022124EC
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r7, r0]
+ bl FUN_02021A20
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_02021A20
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_02021A20
+ mov r6, #0x59
+ mov r5, #0
+ add r4, r7, #0
+ lsl r6, r6, #2
+_02212524:
+ ldr r0, [r4, r6]
+ bl FUN_02021A20
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #4
+ blt _02212524
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_02021A20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD56_022124E4
+
+ thumb_func_start MOD56_02212540
+MOD56_02212540: ; 0x02212540
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02212540
+
+ thumb_func_start MOD56_0221257C
+MOD56_0221257C: ; 0x0221257C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r0, #0xc0
+ ldr r4, [r0]
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E74C
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x36
+ str r0, [sp, #4]
+ mov r0, #0x5c
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x36
+ str r0, [sp, #4]
+ mov r0, #0x5c
+ mov r1, #3
+ mov r2, #4
+ bl FUN_02006930
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x36
+ bl FUN_02002EEC
+ mov r1, #6
+ mov r0, #0
+ lsl r1, r1, #6
+ mov r2, #0x36
+ bl FUN_02002EEC
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ mov r0, #0x5c
+ mov r1, #2
+ add r2, r4, #0
+ bl FUN_0200687C
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ mov r0, #0x5c
+ mov r1, #4
+ add r2, r4, #0
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ mov r0, #0x5c
+ mov r1, #9
+ add r2, r4, #0
+ mov r3, #4
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ mov r0, #0x5c
+ mov r1, #0xa
+ add r2, r4, #0
+ mov r3, #4
+ bl FUN_020068C8
+ add r5, #0xc4
+ ldr r0, [r5]
+ bl LoadPlayerDataAddress
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x36
+ str r0, [sp, #4]
+ ldr r2, _02212694 ; =0x000001E2
+ add r0, r4, #0
+ mov r1, #2
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x36
+ str r0, [sp, #4]
+ ldr r2, _02212698 ; =0x000001D9
+ add r0, r4, #0
+ mov r1, #2
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x36
+ str r0, [sp, #4]
+ ldr r2, _02212698 ; =0x000001D9
+ add r0, r4, #0
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CB00
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212694: .word 0x000001E2
+_02212698: .word 0x000001D9
+ thumb_func_end MOD56_0221257C
+
+ thumb_func_start MOD56_0221269C
+MOD56_0221269C: ; 0x0221269C
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _022126D8 ; =0x02216340
+ add r3, sp, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_0201D040
+ mov r0, #0x14
+ mov r1, #0x36
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ ldr r1, _022126DC ; =0x00100010
+ mov r0, #1
+ bl FUN_02008D44
+ mov r0, #1
+ bl FUN_02008DDC
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_022126D8: .word 0x02216340
+_022126DC: .word 0x00100010
+ thumb_func_end MOD56_0221269C
+
+ thumb_func_start MOD56_022126E0
+MOD56_022126E0: ; 0x022126E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x7e
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x36
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ mov r1, #0x62
+ lsl r1, r1, #2
+ mov r0, #0x1e
+ add r1, r6, r1
+ mov r2, #0x36
+ bl FUN_02008C9C
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ add r0, r1, #4
+ mov r2, #1
+ add r0, r6, r0
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ mov r7, #0x2b
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #4
+_0221272C:
+ mov r0, #2
+ add r1, r4, #0
+ mov r2, #0x36
+ bl FUN_02008DEC
+ str r0, [r5, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0221272C
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x36
+ str r0, [sp, #8]
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ mov r1, #0x5c
+ mov r2, #7
+ bl FUN_02008F34
+ mov r1, #0xb
+ lsl r1, r1, #6
+ str r0, [r6, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #7
+ str r0, [sp, #8]
+ mov r0, #0x36
+ sub r1, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [r6, r1]
+ mov r1, #0x5c
+ mov r2, #8
+ bl FUN_02008FEC
+ mov r1, #0xb1
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x36
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r6, r1]
+ mov r1, #0x5c
+ mov r2, #1
+ bl FUN_020090AC
+ mov r1, #0xb2
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x36
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r6, r1]
+ mov r1, #0x5c
+ add r3, r2, #0
+ bl FUN_020090AC
+ mov r1, #0xb3
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ sub r1, #0xc
+ ldr r0, [r6, r1]
+ bl FUN_02009A50
+ mov r0, #0xb1
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009CF0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD56_022126E0
+
+ thumb_func_start MOD56_022127D4
+MOD56_022127D4: ; 0x022127D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [sp]
+ sub r0, r1, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r2, #0x2b
+ str r1, [sp, #0x10]
+ lsl r2, r2, #4
+ ldr r0, [r5, r2]
+ add r3, r1, #0
+ str r0, [sp, #0x14]
+ add r0, r2, #4
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x18]
+ add r0, r2, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x1c]
+ add r0, r2, #0
+ add r0, #0xc
+ ldr r0, [r5, r0]
+ add r2, #0x30
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ add r0, r5, r2
+ add r2, r1, #0
+ str r1, [sp, #0x28]
+ bl FUN_02008AA4
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r4, #0
+ str r0, [sp, #0x2c]
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ add r0, r5, r0
+ str r0, [sp, #0x30]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ mov r7, #6
+ str r4, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, sp, #0x2c
+ strh r4, [r0, #0x20]
+ mov r0, #1
+ str r0, [sp, #0x50]
+ str r0, [sp, #0x54]
+ mov r0, #0x36
+ str r0, [sp, #0x58]
+ mov r6, #0x20
+ lsl r7, r7, #0xe
+_02212848:
+ mov r0, #1
+ lsl r1, r6, #0xc
+ lsl r0, r0, #0x14
+ add r0, r1, r0
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ str r7, [sp, #0x34]
+ bl FUN_0201FE94
+ mov r1, #0xca
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_02020130
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #2
+ bl FUN_02020238
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r6, #0x20
+ add r5, r5, #4
+ cmp r4, #5
+ blt _02212848
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD56_022127D4
+
+ thumb_func_start MOD56_022128A4
+MOD56_022128A4: ; 0x022128A4
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _022128CE
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_022128CE:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x16
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _02212954 ; =0x000001CA
+ mov r1, #0xd7
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0xc0
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #3
+ mov r3, #5
+ bl FUN_02019064
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ mov r2, #0x16
+ add r0, #0xcc
+ lsl r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x11
+ bl FUN_0200A8E0
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0xb0
+ bl FUN_02002F40
+ mov r1, #0
+ add r3, r0, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02212958 ; =0x000F0E00
+ add r2, #0x61
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_02212954: .word 0x000001CA
+_02212958: .word 0x000F0E00
+ thumb_func_end MOD56_022128A4
+
+ thumb_func_start MOD56_0221295C
+MOD56_0221295C: ; 0x0221295C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02212978
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_02212978:
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02212990
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_02212990:
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _022129A8
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_022129A8:
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _022129C0
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_022129C0:
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _022129D8
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_022129D8:
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022129EA
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_02001300
+_022129EA:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02212A00
+ bl FUN_02012870
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb0
+ str r1, [r0]
+_02212A00:
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02212A18
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_02212A18:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_0221295C
+
+ thumb_func_start MOD56_02212A1C
+MOD56_02212A1C: ; 0x02212A1C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r1, _02212B30 ; =0x00000497
+ mov r0, #0xb
+ mov r2, #1
+ bl FUN_0200433C
+ bl FUN_02033590
+ cmp r0, #0
+ beq _02212A9A
+ bl FUN_02033E74
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ bl FUN_020334DC
+ add r1, r0, #0
+ str r0, [r5, #4]
+ add r1, #0x22
+ ldrb r1, [r1]
+ add r0, #0x21
+ strb r1, [r0]
+ ldr r0, [r5, #4]
+ ldrb r0, [r0, #0x1b]
+ cmp r0, #8
+ bne _02212A80
+ bl FUN_02033208
+ bl FUN_020334DC
+ add r1, r0, #0
+ str r0, [r5, #4]
+ add r1, #0x22
+ ldrb r1, [r1]
+ add r0, #0x21
+ strb r1, [r0]
+ mov r0, #0xf1
+ mov r1, #0x14
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x40
+ sub r0, #0x14
+ str r1, [r5, r0]
+ b _02212B2C
+_02212A80:
+ add r0, r5, #0
+ mov r1, #0x2b
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x10
+ bl FUN_02031588
+ mov r0, #0x3b
+ mov r1, #0x3c
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02212B2C
+_02212A9A:
+ add r0, r5, #0
+ bl MOD56_022128A4
+ ldr r0, [r5]
+ bl FUN_02028228
+ bl FUN_02096F80
+ cmp r0, #0
+ bne _02212AFA
+ mov r0, #0
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #3
+ mov r1, #2
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #1
+ mov r1, #0
+ bl FUN_020178BC
+ add r0, r5, #0
+ mov r1, #0x11
+ bl MOD56_02215FF4
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02212B34 ; =0x02216310
+ ldr r2, _02212B38 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #6
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02212B2C
+_02212AFA:
+ ldr r0, [r5]
+ bl FUN_02028228
+ bl FUN_02096F18
+ cmp r0, #0
+ bne _02212B1A
+ add r0, r5, #0
+ mov r1, #0x13
+ bl MOD56_02215FF4
+ mov r0, #0x3b
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02212B2C
+_02212B1A:
+ add r0, r5, #0
+ mov r1, #0x10
+ mov r2, #1
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02212B2C:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212B30: .word 0x00000497
+_02212B34: .word 0x02216310
+_02212B38: .word 0x000001D9
+ thumb_func_end MOD56_02212A1C
+
+ thumb_func_start MOD56_02212B3C
+MOD56_02212B3C: ; 0x02212B3C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02212B76
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02212B7C ; =0x022162F8
+ ldr r2, _02212B80 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02212B76:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02212B7C: .word 0x022162F8
+_02212B80: .word 0x000001D9
+ thumb_func_end MOD56_02212B3C
+
+ thumb_func_start MOD56_02212B84
+MOD56_02212B84: ; 0x02212B84
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02212BA2
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02212BA2:
+ cmp r0, #0
+ bne _02212BD4
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r1, _02212BE0 ; =0x000004A4
+ bl FUN_0203346C
+ str r0, [r5, #4]
+ add r0, r5, #0
+ mov r1, #0x16
+ mov r2, #1
+ bl MOD56_02215EA4
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r1, _02212BE4 ; =0x000001E2
+ add r0, r5, r0
+ bl FUN_0200D858
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r1, #0xe
+ b _02212BD6
+_02212BD4:
+ mov r1, #0x22
+_02212BD6:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212BE0: .word 0x000004A4
+_02212BE4: .word 0x000001E2
+ thumb_func_end MOD56_02212B84
+
+ thumb_func_start MOD56_02212BE8
+MOD56_02212BE8: ; 0x02212BE8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, _02212C44 ; =0x021C48B8
+ add r5, r0, #0
+ ldr r2, [r1, #0x48]
+ mov r1, #3
+ tst r1, r2
+ beq _02212C40
+ mov r1, #0x14
+ bl MOD56_02215FF4
+ mov r0, #0
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #3
+ mov r1, #2
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #1
+ mov r1, #0
+ bl FUN_020178BC
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02212C48 ; =0x02216310
+ ldr r2, _02212C4C ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02212C40:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212C44: .word 0x021C48B8
+_02212C48: .word 0x02216310
+_02212C4C: .word 0x000001D9
+ thumb_func_end MOD56_02212BE8
+
+ thumb_func_start MOD56_02212C50
+MOD56_02212C50: ; 0x02212C50
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ add r6, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ bne _02212C74
+ add sp, #4
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, pc}
+_02212C74:
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ cmp r6, #0
+ bne _02212CB4
+ add r0, r5, #0
+ mov r1, #0x15
+ bl MOD56_02215FF4
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02212CC4 ; =0x02216310
+ ldr r2, _02212CC8 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r1, #5
+ b _02212CB6
+_02212CB4:
+ mov r1, #0x22
+_02212CB6:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02212CC4: .word 0x02216310
+_02212CC8: .word 0x000001D9
+ thumb_func_end MOD56_02212C50
+
+ thumb_func_start MOD56_02212CCC
+MOD56_02212CCC: ; 0x02212CCC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ add r6, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ bne _02212CEC
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02212CEC:
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ cmp r6, #0
+ bne _02212D44
+ ldr r0, [r5]
+ bl FUN_020281E8
+ mov r1, #0x3b
+ mov r0, #0xe
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, #0xf4
+ bl FUN_0203346C
+ str r0, [r5, #4]
+ add r0, r5, #0
+ mov r1, #0x16
+ mov r2, #1
+ bl MOD56_02215EA4
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r1, _02212D50 ; =0x000001E2
+ add r0, r5, r0
+ bl FUN_0200D858
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r1, #1
+ mov r0, #0x3d
+ b _02212D48
+_02212D44:
+ mov r1, #0x22
+ mov r0, #0x3b
+_02212D48:
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02212D50: .word 0x000001E2
+ thumb_func_end MOD56_02212CCC
+
+ thumb_func_start MOD56_02212D54
+MOD56_02212D54: ; 0x02212D54
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ add r6, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ bne _02212D74
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02212D74:
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ cmp r6, #0
+ bne _02212DC6
+ mov r1, #0x3b
+ mov r0, #0xe
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, #0xf4
+ bl FUN_0203346C
+ str r0, [r5, #4]
+ add r0, r5, #0
+ mov r1, #0x16
+ mov r2, #1
+ bl MOD56_02215EA4
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r1, _02212DD4 ; =0x000001E2
+ add r0, r5, r0
+ bl FUN_0200D858
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r1, #1
+ mov r0, #0x3d
+ b _02212DCA
+_02212DC6:
+ mov r1, #0x22
+ mov r0, #0x3b
+_02212DCA:
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02212DD4: .word 0x000001E2
+ thumb_func_end MOD56_02212D54
+
+ thumb_func_start MOD56_02212DD8
+MOD56_02212DD8: ; 0x02212DD8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #1
+ mov r1, #2
+ bl FUN_020178BC
+ mov r0, #3
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #0
+ bl FUN_020178BC
+ mov r0, #0x3b
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02212DD8
+
+ thumb_func_start MOD56_02212E0C
+MOD56_02212E0C: ; 0x02212E0C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ str r1, [sp]
+ bl FUN_020238F4
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_02024DA0
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_0206BB1C
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_02029AFC
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ bl FUN_0206B9AC
+ mov r6, #0
+ str r0, [sp, #4]
+ cmp r0, #0
+ ble _02212E82
+ add r4, r6, #0
+_02212E52:
+ ldr r0, [sp, #0xc]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ mov r1, #5
+ mov r2, #0
+ add r7, r0, #0
+ bl FUN_020671BC
+ ldr r1, [r5, #4]
+ mov r2, #0
+ strh r0, [r1, r4]
+ add r0, r7, #0
+ mov r1, #6
+ bl FUN_020671BC
+ ldr r1, [r5, #4]
+ add r6, r6, #1
+ add r1, r1, r4
+ strh r0, [r1, #0xc]
+ ldr r0, [sp, #4]
+ add r4, r4, #2
+ cmp r6, r0
+ blt _02212E52
+_02212E82:
+ ldr r0, [sp, #0x14]
+ bl FUN_02023A68
+ ldr r1, [r5, #4]
+ strb r0, [r1, #0x18]
+ ldr r0, [sp, #0x14]
+ bl FUN_02023A70
+ ldr r1, [r5, #4]
+ strb r0, [r1, #0x19]
+ ldr r0, [sp, #0x10]
+ bl FUN_02024CA4
+ ldr r1, [r5, #4]
+ strb r0, [r1, #0x1a]
+ ldr r1, [r5, #4]
+ ldr r0, [sp]
+ strb r0, [r1, #0x1b]
+ ldr r0, [r5, #4]
+ mov r1, #0
+ strb r1, [r0, #0x1c]
+ ldr r0, [sp, #0x14]
+ bl FUN_02023A28
+ ldr r1, [r5, #4]
+ strb r0, [r1, #0x1d]
+ ldr r0, [sp, #0x14]
+ bl FUN_020239CC
+ ldr r1, [r5, #4]
+ strb r0, [r1, #0x1e]
+ ldr r0, [sp, #8]
+ bl FUN_02029B38
+ ldr r1, [r5, #4]
+ strb r0, [r1, #0x1f]
+ ldr r0, [sp, #8]
+ bl FUN_02029B3C
+ ldr r1, [r5, #4]
+ add r1, #0x20
+ strb r0, [r1]
+ ldr r0, [r5, #4]
+ mov r1, #1
+ add r0, #0x21
+ strb r1, [r0]
+ ldr r0, [r5, #4]
+ add r0, #0x22
+ strb r1, [r0]
+ ldr r0, [r5, #4]
+ mov r1, #0x24
+ bl MOD04_021D8478
+ ldr r0, [r5, #4]
+ mov r1, #0x24
+ add r0, #0x24
+ bl MOD04_021D83D4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02212E0C
+
+ thumb_func_start MOD56_02212EFC
+MOD56_02212EFC: ; 0x02212EFC
+ push {r3, r4, r5, r6, r7, lr}
+ mov r5, #0
+ add r6, r0, #0
+ add r4, r5, #0
+ add r7, r5, #0
+_02212F06:
+ add r0, r6, r4
+ strb r7, [r0, #0xc]
+ add r0, r4, #0
+ bl MOD04_021D8480
+ cmp r0, #0
+ beq _02212F1C
+ add r0, r6, r5
+ add r1, r4, #1
+ strb r1, [r0, #0xc]
+ add r5, r5, #1
+_02212F1C:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _02212F06
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02212EFC
+
+ thumb_func_start MOD56_02212F28
+MOD56_02212F28: ; 0x02212F28
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ add r7, r0, #0
+ str r4, [sp]
+ add r5, r4, #0
+ add r6, r7, #0
+_02212F34:
+ ldr r0, [r7, #4]
+ add r0, r0, r5
+ add r0, #0x3f
+ ldrb r1, [r0]
+ ldr r0, [r6, #0x2c]
+ cmp r0, r1
+ beq _02212F6E
+ str r1, [r6, #0x2c]
+ ldr r3, [r7, #4]
+ ldr r0, [r7]
+ add r3, r3, r5
+ add r3, #0x41
+ ldrb r3, [r3]
+ add r1, r4, #0
+ mov r2, #7
+ bl FUN_020282E8
+ ldr r3, [r7, #4]
+ ldr r0, [r7]
+ add r3, r3, r5
+ add r3, #0x42
+ ldrb r3, [r3]
+ add r1, r4, #0
+ mov r2, #8
+ bl FUN_020282E8
+ ldr r0, [sp]
+ add r0, r0, #1
+ str r0, [sp]
+_02212F6E:
+ add r4, r4, #1
+ add r5, #0x24
+ add r6, r6, #4
+ cmp r4, #0x20
+ blt _02212F34
+ ldr r0, [sp]
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD56_02212F28
+
+ thumb_func_start MOD56_02212F7C
+MOD56_02212F7C: ; 0x02212F7C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r4, r0, #0
+ add r5, r1, #0
+ bl FUN_02033180
+ mov r1, #0
+ mvn r1, r1
+ cmp r5, r1
+ beq _02212F98
+ cmp r5, #0xb
+ beq _02212F98
+ cmp r0, r1
+ bne _02212F9E
+_02212F98:
+ mov r6, #0xe
+ mov r5, #0xb
+ b _02212FAC
+_02212F9E:
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _02212FAA
+ mov r6, #0xd
+ mov r5, #0xc
+ b _02212FAC
+_02212FAA:
+ add r6, r5, #0
+_02212FAC:
+ add r0, r4, #0
+ bl MOD56_02216120
+ bl FUN_02033180
+ add r2, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ mov r3, #5
+ bl FUN_0200AD38
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD56_02215FF4
+ cmp r5, #0xb
+ bhi _02213022
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02212FE6: ; jump table
+ .short _02213022 - _02212FE6 - 2 ; case 0
+ .short _02212FFE - _02212FE6 - 2 ; case 1
+ .short _02213022 - _02212FE6 - 2 ; case 2
+ .short _02213022 - _02212FE6 - 2 ; case 3
+ .short _02212FFE - _02212FE6 - 2 ; case 4
+ .short _02212FFE - _02212FE6 - 2 ; case 5
+ .short _0221300A - _02212FE6 - 2 ; case 6
+ .short _0221300A - _02212FE6 - 2 ; case 7
+ .short _0221300A - _02212FE6 - 2 ; case 8
+ .short _0221300A - _02212FE6 - 2 ; case 9
+ .short _02213016 - _02212FE6 - 2 ; case 10
+ .short _02212FFE - _02212FE6 - 2 ; case 11
+_02212FFE:
+ mov r0, #0x3b
+ mov r1, #0xa
+ lsl r0, r0, #4
+ add sp, #8
+ str r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_0221300A:
+ mov r0, #0x3b
+ mov r1, #0xa
+ lsl r0, r0, #4
+ add sp, #8
+ str r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_02213016:
+ mov r0, #0x3b
+ mov r1, #0xa
+ lsl r0, r0, #4
+ add sp, #8
+ str r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_02213022:
+ mov r0, #0x3b
+ mov r1, #0x23
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02212F7C
+
+ thumb_func_start MOD56_02213030
+MOD56_02213030: ; 0x02213030
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02033180
+ bl MOD04_021D80E0
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD56_02212F7C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02213030
+
+ thumb_func_start MOD56_02213048
+MOD56_02213048: ; 0x02213048
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _02213088 ; =0x021C48B8
+ add r4, r1, #0
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _02213084
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _0221307C
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_0221307C:
+ mov r0, #0x3b
+ mov r1, #8
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02213084:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02213088: .word 0x021C48B8
+ thumb_func_end MOD56_02213048
+
+ thumb_func_start MOD56_0221308C
+MOD56_0221308C: ; 0x0221308C
+ mov r2, #0x3b
+ mov r3, #9
+ lsl r2, r2, #4
+ str r3, [r0, r2]
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD56_0221308C
+
+ thumb_func_start MOD56_02213098
+MOD56_02213098: ; 0x02213098
+ mov r2, #0x3b
+ mov r3, #0xb
+ lsl r2, r2, #4
+ str r3, [r0, r2]
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD56_02213098
+
+ thumb_func_start MOD56_022130A4
+MOD56_022130A4: ; 0x022130A4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _022130F0 ; =0x021C48B8
+ add r4, r1, #0
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _022130EA
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _022130D8
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_022130D8:
+ add r0, r5, #0
+ mov r1, #0x33
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0xb
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_022130EA:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022130F0: .word 0x021C48B8
+ thumb_func_end MOD56_022130A4
+
+ thumb_func_start MOD56_022130F4
+MOD56_022130F4: ; 0x022130F4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0221312E
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02213134 ; =0x02216308
+ ldr r2, _02213138 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #0xc
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_0221312E:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02213134: .word 0x02216308
+_02213138: .word 0x000001D9
+ thumb_func_end MOD56_022130F4
+
+ thumb_func_start MOD56_0221313C
+MOD56_0221313C: ; 0x0221313C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0221315A
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_0221315A:
+ cmp r0, #0
+ bne _02213172
+ bl FUN_020331C4
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ mov r0, #0x3b
+ mov r1, #0xd
+ lsl r0, r0, #4
+ b _02213186
+_02213172:
+ bl FUN_020331C4
+ bl FUN_0202DBA4
+ mov r0, #0xed
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x22
+ sub r0, r0, #4
+_02213186:
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD56_02216120
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD56_0221313C
+
+ thumb_func_start MOD56_02213194
+MOD56_02213194: ; 0x02213194
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ str r1, [sp, #0x10]
+ bl FUN_0202E4C8
+ cmp r0, #0
+ bne _0221326E
+ add r0, r6, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_02018744
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ add r2, r6, #0
+ str r3, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5c
+ mov r1, #4
+ bl FUN_020068C8
+ add r0, r6, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02213206
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+ add r0, r6, #0
+ add r0, #0xb4
+ mov r1, #0
+ ldr r0, [r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ add r0, r6, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ add r0, r6, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_02012870
+ add r0, r6, #0
+ mov r1, #0
+ add r0, #0xb0
+ str r1, [r0]
+_02213206:
+ add r0, r6, #0
+ add r0, #0xc
+ mov r1, #0
+ mov r2, #0x20
+ bl MI_CpuFill8
+ add r0, r6, #0
+ add r0, #0x2c
+ mov r1, #0
+ mov r2, #0x80
+ bl MI_CpuFill8
+ mov r7, #0xca
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_02213226:
+ ldr r0, [r5, r7]
+ mov r1, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _02213226
+ add r0, r6, #0
+ bl MOD56_022128A4
+ add r0, r6, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r1, _02213274 ; =0x000004A4
+ bl FUN_0203346C
+ str r0, [r6, #4]
+ add r0, r6, #0
+ mov r1, #0x16
+ mov r2, #1
+ bl MOD56_02215EA4
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r1, _02213278 ; =0x000001E2
+ add r0, r6, r0
+ bl FUN_0200D858
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r6, r1]
+ mov r0, #0x3b
+ mov r1, #0xe
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+_0221326E:
+ ldr r0, [sp, #0x10]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02213274: .word 0x000004A4
+_02213278: .word 0x000001E2
+ thumb_func_end MOD56_02213194
+
+ thumb_func_start MOD56_0221327C
+MOD56_0221327C: ; 0x0221327C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02033138
+ cmp r0, #0
+ beq _022132E0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #8
+ beq _022132B6
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _022132B6
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD7C
+ mov r0, #0x5e
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_022132B6:
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ beq _022132C8
+ mov r1, #0x10
+ sub r0, #0x20
+ str r1, [r5, r0]
+ b _022132F6
+_022132C8:
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_02212E0C
+ add r0, r5, #0
+ bl MOD56_02212EFC
+ mov r0, #0x3b
+ mov r1, #0x12
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _022132F6
+_022132E0:
+ bl FUN_02033250
+ cmp r0, #0
+ bne _022132F0
+ bl FUN_0203300C
+ cmp r0, #3
+ bne _022132F6
+_022132F0:
+ add r0, r5, #0
+ bl MOD56_02213030
+_022132F6:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD56_0221327C
+
+ thumb_func_start MOD56_022132FC
+MOD56_022132FC: ; 0x022132FC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ ble _02213314
+ sub r1, r1, #1
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02213314:
+ bl FUN_02033154
+ cmp r0, #0
+ beq _02213326
+ mov r0, #0x3b
+ mov r1, #0x12
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02213364
+_02213326:
+ bl FUN_0203300C
+ cmp r0, #4
+ bge _02213340
+ bl FUN_02033128
+ cmp r0, #0
+ bne _02213340
+ mov r0, #0
+ bl FUN_02030E7C
+ cmp r0, #0
+ bne _0221334E
+_02213340:
+ bl FUN_020331E8
+ mov r0, #0x3b
+ mov r1, #0x12
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02213364
+_0221334E:
+ bl FUN_02033250
+ cmp r0, #0
+ bne _0221335E
+ bl FUN_0203300C
+ cmp r0, #3
+ bne _02213364
+_0221335E:
+ add r0, r5, #0
+ bl MOD56_02213030
+_02213364:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD56_022132FC
+
+ thumb_func_start MOD56_02213368
+MOD56_02213368: ; 0x02213368
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD56_02216120
+ add r0, r5, #0
+ mov r1, #0x12
+ bl MOD56_02215FF4
+ mov r0, #0x3b
+ mov r1, #0x11
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02213368
+
+ thumb_func_start MOD56_02213388
+MOD56_02213388: ; 0x02213388
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _02213418 ; =0x021C48B8
+ add r4, r1, #0
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _02213412
+ mov r1, #0xef
+ lsl r1, r1, #2
+ ldr r0, [r5, r1]
+ cmp r0, #1
+ bne _022133B6
+ add r0, r1, #0
+ mov r2, #0xa
+ sub r0, #8
+ str r2, [r5, r0]
+ mov r0, #0x22
+ sub r1, #0xc
+ str r0, [r5, r1]
+ bl FUN_020331C4
+ b _02213412
+_022133B6:
+ ldr r0, [r5]
+ bl FUN_02028448
+ cmp r0, #0
+ bne _022133DA
+ add r0, r5, #0
+ mov r1, #0x19
+ mov r2, #1
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x3a
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ mov r1, #1
+ add r0, #0x14
+ str r1, [r5, r0]
+ b _02213412
+_022133DA:
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_02212E0C
+ add r0, r5, #0
+ bl MOD56_02212EFC
+ mov r0, #0x3b
+ mov r1, #0x12
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ sub r0, #0x44
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02213412
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_02213412:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02213418: .word 0x021C48B8
+ thumb_func_end MOD56_02213388
+
+ thumb_func_start MOD56_0221341C
+MOD56_0221341C: ; 0x0221341C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r5, _02213618 ; =0x00010200
+ bl FUN_020238F4
+ mov r1, #0x36
+ bl FUN_020239A0
+ add r6, r0, #0
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ bne _0221344C
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+_0221344C:
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ add r0, r5, #0
+ str r0, [sp, #8]
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ add r2, r6, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [r4, #4]
+ ldrb r0, [r0, #0x1b]
+ cmp r0, #0x10
+ bls _02213484
+ b _02213614
+_02213484:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213490: ; jump table
+ .short _022135D8 - _02213490 - 2 ; case 0
+ .short _022134B2 - _02213490 - 2 ; case 1
+ .short _0221350C - _02213490 - 2 ; case 2
+ .short _0221350C - _02213490 - 2 ; case 3
+ .short _0221350C - _02213490 - 2 ; case 4
+ .short _0221350C - _02213490 - 2 ; case 5
+ .short _0221350C - _02213490 - 2 ; case 6
+ .short _0221350C - _02213490 - 2 ; case 7
+ .short _0221359A - _02213490 - 2 ; case 8
+ .short _02213522 - _02213490 - 2 ; case 9
+ .short _02213536 - _02213490 - 2 ; case 10
+ .short _0221354A - _02213490 - 2 ; case 11
+ .short _0221355E - _02213490 - 2 ; case 12
+ .short _02213572 - _02213490 - 2 ; case 13
+ .short _02213586 - _02213490 - 2 ; case 14
+ .short _022135B0 - _02213490 - 2 ; case 15
+ .short _022135C4 - _02213490 - 2 ; case 16
+_022134B2:
+ ldr r5, _0221361C ; =0x00020E00
+ bl MOD04_021D853C
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _022134D4
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x1a
+ bl FUN_0200A8E0
+ b _022135DC
+_022134D4:
+ bl MOD04_021D853C
+ add r1, r0, #0
+ ldr r0, [r4]
+ mov r2, #8
+ bl FUN_0202822C
+ cmp r0, #0
+ bne _022134EA
+ ldr r5, _02213620 ; =0x00050600
+ b _022134F2
+_022134EA:
+ cmp r0, #1
+ bne _022134F2
+ mov r5, #0xc1
+ lsl r5, r5, #0xa
+_022134F2:
+ bl MOD04_021D853C
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl FUN_020283A4
+ add r1, r0, #0
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02021E28
+ b _022135DC
+_0221350C:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x17
+ bl FUN_0200A8E0
+ ldr r5, _0221361C ; =0x00020E00
+ b _022135DC
+_02213522:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x3b
+ bl FUN_0200A8E0
+ b _022135DC
+_02213536:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x3c
+ bl FUN_0200A8E0
+ b _022135DC
+_0221354A:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x3a
+ bl FUN_0200A8E0
+ b _022135DC
+_0221355E:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x3e
+ bl FUN_0200A8E0
+ b _022135DC
+_02213572:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x3f
+ bl FUN_0200A8E0
+ b _022135DC
+_02213586:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x3d
+ bl FUN_0200A8E0
+ b _022135DC
+_0221359A:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x19
+ bl FUN_0200A8E0
+ ldr r5, _0221361C ; =0x00020E00
+ b _022135DC
+_022135B0:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x18
+ bl FUN_0200A8E0
+ b _022135DC
+_022135C4:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x2d
+ bl FUN_0200A8E0
+ b _022135DC
+_022135D8:
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+_022135DC:
+ mov r1, #0x56
+ lsl r1, r1, #2
+ mov r0, #0
+ ldr r1, [r4, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0
+ add r3, r0, #0
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r5, [sp, #8]
+ mov r5, #0x9c
+ str r1, [sp, #0xc]
+ add r2, #0x59
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ sub r3, r5, r3
+ bl FUN_0201BDE0
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+_02213614:
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02213618: .word 0x00010200
+_0221361C: .word 0x00020E00
+_02213620: .word 0x00050600
+ thumb_func_end MOD56_0221341C
+
+ thumb_func_start MOD56_02213624
+MOD56_02213624: ; 0x02213624
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ mov r1, #0x13
+ add r7, r2, #0
+ bl FUN_02001470
+ add r4, r0, #0
+ ldr r6, _02213750 ; =0x00010200
+ cmp r5, #0x20
+ beq _02213642
+ mov r0, #1
+ mvn r0, r0
+ cmp r5, r0
+ bne _02213644
+_02213642:
+ b _0221374C
+_02213644:
+ mov r1, #0x24
+ ldr r0, [r4, #4]
+ mul r1, r5
+ add r0, r0, r1
+ add r0, #0x3f
+ ldrb r0, [r0]
+ cmp r0, #0x11
+ bhi _022136B6
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213660: ; jump table
+ .short _022136B6 - _02213660 - 2 ; case 0
+ .short _02213684 - _02213660 - 2 ; case 1
+ .short _0221368A - _02213660 - 2 ; case 2
+ .short _0221368A - _02213660 - 2 ; case 3
+ .short _0221368A - _02213660 - 2 ; case 4
+ .short _0221368A - _02213660 - 2 ; case 5
+ .short _0221368A - _02213660 - 2 ; case 6
+ .short _0221368A - _02213660 - 2 ; case 7
+ .short _022136A8 - _02213660 - 2 ; case 8
+ .short _02213690 - _02213660 - 2 ; case 9
+ .short _02213694 - _02213660 - 2 ; case 10
+ .short _02213698 - _02213660 - 2 ; case 11
+ .short _0221369C - _02213660 - 2 ; case 12
+ .short _022136A0 - _02213660 - 2 ; case 13
+ .short _022136A4 - _02213660 - 2 ; case 14
+ .short _022136AE - _02213660 - 2 ; case 15
+ .short _022136B2 - _02213660 - 2 ; case 16
+ .short _022136B6 - _02213660 - 2 ; case 17
+_02213684:
+ mov r1, #0x1a
+ ldr r6, _02213754 ; =0x00020E00
+ b _022136B8
+_0221368A:
+ mov r1, #0x17
+ ldr r6, _02213754 ; =0x00020E00
+ b _022136B8
+_02213690:
+ mov r1, #0x3b
+ b _022136B8
+_02213694:
+ mov r1, #0x3c
+ b _022136B8
+_02213698:
+ mov r1, #0x3a
+ b _022136B8
+_0221369C:
+ mov r1, #0x3e
+ b _022136B8
+_022136A0:
+ mov r1, #0x3f
+ b _022136B8
+_022136A4:
+ mov r1, #0x3d
+ b _022136B8
+_022136A8:
+ mov r1, #0x19
+ ldr r6, _02213754 ; =0x00020E00
+ b _022136B8
+_022136AE:
+ mov r1, #0x18
+ b _022136B8
+_022136B2:
+ mov r1, #0x2d
+ b _022136B8
+_022136B6:
+ mov r1, #0x37
+_022136B8:
+ cmp r1, #0
+ beq _02213706
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r1, #0x56
+ lsl r1, r1, #2
+ mov r0, #0
+ ldr r1, [r4, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov ip, r0
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ str r7, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r6, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ add r2, #0x59
+ ldr r2, [r4, r2]
+ mov r6, #0xa4
+ mov r3, ip
+ add r0, r4, r0
+ sub r3, r6, r3
+ bl FUN_0201BDE0
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+_02213706:
+ ldr r0, [r4]
+ add r1, r5, #0
+ mov r2, #8
+ bl FUN_0202822C
+ ldr r1, _02213750 ; =0x00010200
+ cmp r0, #0
+ bne _0221371A
+ ldr r1, _02213758 ; =0x00050600
+ b _02213722
+_0221371A:
+ cmp r0, #1
+ bne _02213722
+ mov r1, #0xc1
+ lsl r1, r1, #0xa
+_02213722:
+ str r7, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ lsl r2, r5, #2
+ str r1, [sp, #8]
+ mov r1, #0
+ add r2, r4, r2
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xd4
+ ldr r2, [r2]
+ add r0, r4, r0
+ mov r3, #8
+ bl FUN_0201BDE0
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+_0221374C:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02213750: .word 0x00010200
+_02213754: .word 0x00020E00
+_02213758: .word 0x00050600
+ thumb_func_end MOD56_02213624
+
+ thumb_func_start MOD56_0221375C
+MOD56_0221375C: ; 0x0221375C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r4, r1, #0
+ ldr r1, _0221389C ; =0x022162E0
+ add r5, r3, #0
+ ldrh r3, [r1, #0x10]
+ add r7, r2, #0
+ add r2, sp, #0
+ strh r3, [r2, #0x30]
+ ldrh r3, [r1, #0x12]
+ add r0, #0xc0
+ strh r3, [r2, #0x32]
+ ldrh r3, [r1, #0x14]
+ strh r3, [r2, #0x34]
+ ldrh r3, [r1, #0x16]
+ strh r3, [r2, #0x36]
+ ldrh r3, [r1, #8]
+ strh r3, [r2, #0x28]
+ ldrh r3, [r1, #0xa]
+ strh r3, [r2, #0x2a]
+ ldrh r3, [r1, #0xc]
+ strh r3, [r2, #0x2c]
+ ldrh r3, [r1, #0xe]
+ strh r3, [r2, #0x2e]
+ ldrh r3, [r1, #0x38]
+ strh r3, [r2, #0x20]
+ ldrh r3, [r1, #0x3a]
+ strh r3, [r2, #0x22]
+ ldrh r3, [r1, #0x3c]
+ strh r3, [r2, #0x24]
+ ldrh r3, [r1, #0x3e]
+ strh r3, [r2, #0x26]
+ ldrh r3, [r1]
+ strh r3, [r2, #0x18]
+ ldrh r3, [r1, #2]
+ strh r3, [r2, #0x1a]
+ ldrh r3, [r1, #4]
+ strh r3, [r2, #0x1c]
+ ldrh r3, [r1, #6]
+ strh r3, [r2, #0x1e]
+ ldrh r3, [r1, #0x20]
+ strh r3, [r2, #0x10]
+ ldrh r3, [r1, #0x22]
+ strh r3, [r2, #0x12]
+ ldrh r3, [r1, #0x24]
+ strh r3, [r2, #0x14]
+ ldrh r1, [r1, #0x26]
+ strh r1, [r2, #0x16]
+ ldr r1, _022138A0 ; =0x02216320
+ ldrh r3, [r1]
+ strh r3, [r2, #8]
+ ldrh r3, [r1, #2]
+ strh r3, [r2, #0xa]
+ ldrh r3, [r1, #4]
+ strh r3, [r2, #0xc]
+ ldrh r3, [r1, #6]
+ strh r3, [r2, #0xe]
+ ldrh r3, [r1, #8]
+ strh r3, [r2]
+ ldrh r3, [r1, #0xa]
+ strh r3, [r2, #2]
+ ldrh r3, [r1, #0xc]
+ strh r3, [r2, #4]
+ ldrh r1, [r1, #0xe]
+ strh r1, [r2, #6]
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0201886C
+ add r1, r0, #0
+ mov r2, #0
+ cmp r4, #0x11
+ bhi _0221383A
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022137FA: ; jump table
+ .short _0221383A - _022137FA - 2 ; case 0
+ .short _0221381E - _022137FA - 2 ; case 1
+ .short _02213826 - _022137FA - 2 ; case 2
+ .short _02213826 - _022137FA - 2 ; case 3
+ .short _02213826 - _022137FA - 2 ; case 4
+ .short _02213826 - _022137FA - 2 ; case 5
+ .short _02213826 - _022137FA - 2 ; case 6
+ .short _02213826 - _022137FA - 2 ; case 7
+ .short _0221382E - _022137FA - 2 ; case 8
+ .short _02213822 - _022137FA - 2 ; case 9
+ .short _02213822 - _022137FA - 2 ; case 10
+ .short _02213822 - _022137FA - 2 ; case 11
+ .short _02213822 - _022137FA - 2 ; case 12
+ .short _02213822 - _022137FA - 2 ; case 13
+ .short _02213822 - _022137FA - 2 ; case 14
+ .short _0221382A - _022137FA - 2 ; case 15
+ .short _02213832 - _022137FA - 2 ; case 16
+ .short _02213836 - _022137FA - 2 ; case 17
+_0221381E:
+ add r0, sp, #0x18
+ b _0221383C
+_02213822:
+ mov r2, #1
+ lsl r2, r2, #0xc
+_02213826:
+ add r0, sp, #0x30
+ b _0221383C
+_0221382A:
+ mov r2, #1
+ lsl r2, r2, #0xc
+_0221382E:
+ add r0, sp, #0x28
+ b _0221383C
+_02213832:
+ add r0, sp, #0x20
+ b _0221383C
+_02213836:
+ add r0, sp, #8
+ b _0221383C
+_0221383A:
+ add r0, sp, #0
+_0221383C:
+ ldr r3, [sp, #0x50]
+ ldrh r4, [r0]
+ lsl r3, r3, #5
+ add r5, r5, r3
+ add r6, r4, r2
+ lsl r4, r5, #1
+ strh r6, [r1, r4]
+ ldrh r4, [r0, #2]
+ add r6, r5, #1
+ lsl r6, r6, #1
+ add r4, r4, r2
+ strh r4, [r1, r6]
+ add r6, r5, #0
+ ldrh r4, [r0, #4]
+ add r6, #0x20
+ lsl r6, r6, #1
+ add r4, r4, r2
+ strh r4, [r1, r6]
+ ldrh r0, [r0, #6]
+ add r5, #0x21
+ add r2, r0, r2
+ lsl r0, r5, #1
+ strh r2, [r1, r0]
+ cmp r7, #0
+ beq _02213872
+ add r2, sp, #0
+ b _02213874
+_02213872:
+ add r2, sp, #0x10
+_02213874:
+ ldr r0, [sp, #0x54]
+ ldrh r4, [r2]
+ add r0, r0, r3
+ lsl r3, r0, #1
+ strh r4, [r1, r3]
+ add r3, r0, #1
+ ldrh r4, [r2, #2]
+ lsl r3, r3, #1
+ strh r4, [r1, r3]
+ add r3, r0, #0
+ add r3, #0x20
+ add r0, #0x21
+ ldrh r4, [r2, #4]
+ lsl r3, r3, #1
+ lsl r0, r0, #1
+ strh r4, [r1, r3]
+ ldrh r2, [r2, #6]
+ strh r2, [r1, r0]
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221389C: .word 0x022162E0
+_022138A0: .word 0x02216320
+ thumb_func_end MOD56_0221375C
+
+ thumb_func_start MOD56_022138A4
+MOD56_022138A4: ; 0x022138A4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, #0xc0
+ add r7, r1, #0
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0201886C
+ mov r6, #0
+ mov r4, #5
+_022138BA:
+ add r0, r7, r6
+ cmp r0, #0x20
+ blt _022138C6
+ mov r1, #0
+ mov r2, #1
+ b _022138E2
+_022138C6:
+ add r0, r5, r0
+ ldrb r1, [r0, #0xc]
+ cmp r1, #0
+ bne _022138D4
+ mov r1, #0
+ mov r2, #1
+ b _022138E2
+_022138D4:
+ mov r2, #0x24
+ ldr r0, [r5, #4]
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r1, [r0, #0x1b]
+ add r0, #0x21
+ ldrb r2, [r0]
+_022138E2:
+ str r4, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r3, #3
+ bl MOD56_0221375C
+ add r6, r6, #1
+ add r4, r4, #3
+ cmp r6, #5
+ blt _022138BA
+ ldr r0, [r5, #4]
+ ldrb r1, [r0, #0x1b]
+ add r0, #0x21
+ ldrb r2, [r0]
+ cmp r1, #1
+ bne _02213906
+ mov r1, #0
+_02213906:
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r3, #3
+ bl MOD56_0221375C
+ add r5, #0xc0
+ ldr r0, [r5]
+ mov r1, #0
+ bl FUN_02017CD0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD56_022138A4
+
+ thumb_func_start MOD56_02213924
+MOD56_02213924: ; 0x02213924
+ push {r3, lr}
+ cmp r2, #0
+ bne _02213930
+ ldr r0, _02213934 ; =0x000005DC
+ bl FUN_020054C8
+_02213930:
+ pop {r3, pc}
+ nop
+_02213934: .word 0x000005DC
+ thumb_func_end MOD56_02213924
+
+ thumb_func_start MOD56_02213938
+MOD56_02213938: ; 0x02213938
+ push {r3, r4, r5, r6, r7, lr}
+ mov r6, #0
+ mov r7, #0x5d
+ add r5, r0, #0
+ add r4, r6, #0
+ lsl r7, r7, #2
+_02213944:
+ add r0, r5, r4
+ ldrb r2, [r0, #0xc]
+ cmp r2, #0
+ beq _0221395C
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r1, [r5, r7]
+ sub r2, r2, #1
+ bl FUN_020128A0
+ add r6, r6, #1
+_0221395C:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _02213944
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xb0
+ add r1, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x1b
+ mov r3, #0x20
+ bl FUN_02012880
+ add r0, r5, #0
+ add r0, #0xb0
+ add r5, #0xcc
+ mov r2, #0x2e
+ add r3, r2, #0
+ ldr r0, [r0]
+ ldr r1, [r5]
+ sub r3, #0x30
+ bl FUN_02012880
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02213938
+
+ thumb_func_start MOD56_02213990
+MOD56_02213990: ; 0x02213990
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ mov r0, #0x22
+ mov r1, #0x36
+ bl FUN_02012838
+ add r1, r5, #0
+ add r1, #0xb0
+ str r0, [r1]
+ add r0, r5, #0
+ bl MOD56_02213938
+ add r4, r0, #0
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _022139D0
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_022139D0:
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #0x15
+ str r0, [sp, #4]
+ mov r0, #0xe
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc0
+ mov r1, #0xdf
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ add r1, r5, r1
+ mov r2, #3
+ mov r3, #6
+ bl FUN_02019064
+ ldr r6, _02213A3C ; =0x022163F4
+ add r3, sp, #0x14
+ add r2, r3, #0
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ add r1, r4, #2
+ str r0, [sp, #0x14]
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #0x20]
+ add r0, sp, #0x14
+ strh r1, [r0, #0x10]
+ mov r1, #0
+ add r0, r2, #0
+ add r2, r1, #0
+ mov r3, #0x36
+ str r5, [sp, #0x30]
+ bl FUN_020010A8
+ add r5, #0xb4
+ str r0, [r5]
+ add sp, #0x34
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02213A3C: .word 0x022163F4
+ thumb_func_end MOD56_02213990
+
+ thumb_func_start MOD56_02213A40
+MOD56_02213A40: ; 0x02213A40
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02213A6A
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_02213A6A:
+ mov r0, #0x15
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ lsl r0, r0, #5
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0xc0
+ mov r1, #0xd3
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #3
+ mov r3, #7
+ bl FUN_02019064
+ add sp, #0x14
+ pop {r3, r4, pc}
+ thumb_func_end MOD56_02213A40
+
+ thumb_func_start MOD56_02213A94
+MOD56_02213A94: ; 0x02213A94
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD56_02216248
+ add r0, r5, #0
+ bl MOD56_02216274
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_02018744
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ add r2, r5, #0
+ str r3, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5c
+ mov r1, #5
+ bl FUN_020068C8
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02213AF0
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_02213AF0:
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02213B2C
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ add r0, r5, #0
+ add r0, #0xb4
+ mov r1, #0
+ ldr r0, [r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_02012870
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xb0
+ str r1, [r0]
+_02213B2C:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x15
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _02213BEC ; =0x000001CA
+ mov r1, #0xd7
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc0
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ add r1, r5, r1
+ mov r2, #3
+ mov r3, #4
+ bl FUN_02019064
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ mov r2, #0x16
+ add r0, #0xcc
+ lsl r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x12
+ bl FUN_0200A8E0
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02213BF0 ; =0x000F0E00
+ add r2, #0x61
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add r0, r5, #0
+ bl MOD56_02216120
+ add r0, r5, #0
+ bl MOD56_02212EFC
+ add r0, r5, #0
+ bl MOD56_02213990
+ add r0, r5, #0
+ bl MOD56_02213A40
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD56_022138A4
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ mov r1, #0
+ mov r0, #0xf6
+ mvn r1, r1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ bl MOD04_021D865C
+ mov r0, #0x33
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_02213BEC: .word 0x000001CA
+_02213BF0: .word 0x000F0E00
+ thumb_func_end MOD56_02213A94
+
+ thumb_func_start MOD56_02213BF4
+MOD56_02213BF4: ; 0x02213BF4
+ push {r3, lr}
+ bl FUN_0203300C
+ cmp r0, #1
+ bne _02213C02
+ mov r0, #1
+ pop {r3, pc}
+_02213C02:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02213BF4
+
+ thumb_func_start MOD56_02213C08
+MOD56_02213C08: ; 0x02213C08
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ bl MOD56_02212EFC
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD56_02212F28
+ ldr r1, [r5, #8]
+ cmp r1, r4
+ bne _02213C24
+ cmp r0, #0
+ beq _02213CA8
+_02213C24:
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_0201291C
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ mov r1, #2
+ add r2, r4, #2
+ bl FUN_02001538
+ cmp r4, #3
+ ble _02213C50
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ mov r1, #3
+ mov r2, #5
+ bl FUN_02001538
+ b _02213C5E
+_02213C50:
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ mov r1, #3
+ add r2, r4, #2
+ bl FUN_02001538
+_02213C5E:
+ add r0, r5, #0
+ bl MOD56_02213938
+ add r0, r5, #0
+ add r0, #0xb4
+ add r1, sp, #0xc
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0xc
+ bl FUN_02001448
+ cmp r4, #3
+ blt _02213C84
+ add r0, sp, #0xc
+ ldrh r1, [r0, #2]
+ sub r2, r4, #3
+ cmp r2, r1
+ bgt _02213C84
+ strh r2, [r0, #2]
+_02213C84:
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r0, r5, #0
+ str r1, [sp, #8]
+ add r3, sp, #0xc
+ add r0, #0xb4
+ ldrh r2, [r3, #2]
+ ldrh r3, [r3]
+ ldr r0, [r0]
+ bl FUN_020013C8
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ bl FUN_02001328
+ str r4, [r5, #8]
+_02213CA8:
+ add r0, r5, #0
+ add r0, #0xb4
+ add r1, sp, #0xc
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0xc
+ bl FUN_02001448
+ add r0, sp, #0xc
+ ldr r1, [r5, #8]
+ ldrh r3, [r0]
+ ldrh r2, [r0, #2]
+ add r1, r1, #2
+ add r4, r2, r3
+ cmp r1, r4
+ bgt _02213D0C
+ cmp r1, r4
+ bgt _02213CF0
+_02213CCC:
+ cmp r2, #0
+ beq _02213CD8
+ ldrh r1, [r0, #2]
+ sub r1, r1, #1
+ strh r1, [r0, #2]
+ b _02213CE2
+_02213CD8:
+ cmp r3, #0
+ beq _02213CE2
+ ldrh r1, [r0]
+ sub r1, r1, #1
+ strh r1, [r0]
+_02213CE2:
+ ldrh r3, [r0]
+ ldr r1, [r5, #8]
+ ldrh r2, [r0, #2]
+ add r4, r1, #2
+ add r1, r2, r3
+ cmp r4, r1
+ ble _02213CCC
+_02213CF0:
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r0, r5, #0
+ str r1, [sp, #8]
+ add r0, #0xb4
+ ldr r0, [r0]
+ bl FUN_020013C8
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ bl FUN_02001328
+_02213D0C:
+ add r1, sp, #0xc
+ ldrh r1, [r1, #2]
+ add r0, r5, #0
+ bl MOD56_022138A4
+ add r2, sp, #0xc
+ ldrh r3, [r2]
+ mov r0, #0x33
+ lsl r0, r0, #4
+ lsl r2, r3, #1
+ add r2, r3, r2
+ add r2, r2, #6
+ ldr r0, [r5, r0]
+ mov r1, #0x10
+ lsl r2, r2, #3
+ bl MOD56_02214470
+ add r0, sp, #0xc
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _02213D52
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x20
+ bl MOD56_02214470
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ b _02213D5E
+_02213D52:
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_02213D5E:
+ add r0, sp, #0xc
+ ldrh r1, [r0, #2]
+ ldr r0, [r5, #8]
+ sub r0, r0, #3
+ cmp r1, r0
+ bge _02213D88
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x9c
+ bl MOD56_02214470
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_02213D88:
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD56_02213C08
+
+ thumb_func_start MOD56_02213D98
+MOD56_02213D98: ; 0x02213D98
+ push {r4, r5, r6, lr}
+ mov r6, #0
+ mvn r6, r6
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD56_02213C08
+ bl MOD04_021D8640
+ add r1, r6, #0
+ cmp r0, r1
+ bne _02213DEE
+ ldr r0, _02213F84 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ lsl r0, r0, #0xa
+ tst r0, r1
+ beq _02213DEE
+ add r0, r5, #0
+ bl MOD56_0221620C
+ cmp r0, #0
+ beq _02213DD2
+ add r0, r5, #0
+ mov r1, #0x35
+ mov r2, #0
+ bl MOD56_02215EA4
+ b _02213DDC
+_02213DD2:
+ add r0, r5, #0
+ mov r1, #0x36
+ mov r2, #0
+ bl MOD56_02215EA4
+_02213DDC:
+ ldr r0, _02213F88 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x3b
+ mov r1, #0x14
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02213DEE:
+ bl FUN_02033250
+ cmp r0, #0
+ beq _02213E00
+ add r0, r5, #0
+ bl MOD56_02213030
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02213E00:
+ add r0, r5, #0
+ bl MOD56_02213BF4
+ cmp r0, #0
+ beq _02213E1C
+ ldr r0, _02213F8C ; =0x00000624
+ bl FUN_020054C8
+ mov r0, #0x3b
+ mov r1, #0x2f
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02213E1C:
+ mov r0, #0xf6
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r1, r0
+ bne _02213E5C
+ bl MOD04_021D8640
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02213E5C
+ bl MOD04_021D8640
+ mov r1, #0xf6
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0x2a
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0xeb
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ b _02213ECE
+_02213E5C:
+ mov r0, #0xf6
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r1, r0
+ beq _02213ECE
+ bl MOD04_021D8640
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02213ECE
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ add r0, r5, #0
+ add r0, #0xb4
+ mov r1, #0
+ ldr r0, [r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_02012870
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xb0
+ str r1, [r0]
+ mov r1, #0xf6
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD56_02215EA4
+ bl FUN_020331E8
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02213ECE:
+ mov r0, #0xf6
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r1, r0
+ bne _02213EE8
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ bl FUN_02001204
+ add r6, r0, #0
+_02213EE8:
+ mov r0, #1
+ mvn r0, r0
+ cmp r6, r0
+ beq _02213EFA
+ add r0, r0, #1
+ cmp r6, r0
+ bne _02213F32
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02213EFA:
+ ldr r0, _02213F88 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, [r5, #4]
+ ldrb r0, [r0, #0x1b]
+ bl MOD56_02211E88
+ cmp r0, #0
+ beq _02213F16
+ mov r0, #0x3b
+ mov r1, #0x27
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02213F2E
+_02213F16:
+ mov r0, #0xed
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x38
+ sub r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ mov r1, #0x18
+ mov r2, #1
+ bl MOD56_02215EA4
+_02213F2E:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02213F32:
+ ldr r0, _02213F88 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, [r5, #4]
+ ldrb r0, [r0, #0x1b]
+ bl MOD56_02211E88
+ cmp r0, #0
+ beq _02213F4E
+ mov r0, #0x3b
+ mov r1, #0x27
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02213F7E
+_02213F4E:
+ cmp r6, #0x20
+ bne _02213F76
+ ldr r0, [r5, #4]
+ ldrb r0, [r0, #0x1b]
+ cmp r0, #0x10
+ bne _02213F64
+ mov r0, #0x3b
+ mov r1, #0x24
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02213F7E
+_02213F64:
+ bl MOD56_02211E88
+ cmp r0, #0
+ beq _02213F7E
+ mov r0, #0x3b
+ mov r1, #0x27
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02213F7E
+_02213F76:
+ mov r0, #0x3b
+ mov r1, #0x2a
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02213F7E:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02213F84: .word 0x021C48B8
+_02213F88: .word 0x000005DD
+_02213F8C: .word 0x00000624
+ thumb_func_end MOD56_02213D98
+
+ thumb_func_start MOD56_02213F90
+MOD56_02213F90: ; 0x02213F90
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD56_02213BF4
+ cmp r0, #0
+ beq _02213FA8
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02213FC8
+_02213FA8:
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02213FC8
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD56_02216120
+_02213FC8:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD56_02213F90
+
+ thumb_func_start MOD56_02213FCC
+MOD56_02213FCC: ; 0x02213FCC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, _022140A0 ; =0x021C48B8
+ add r5, r0, #0
+ ldr r2, [r1, #0x48]
+ mov r1, #2
+ tst r1, r2
+ beq _02213FEE
+ mov r1, #0x43
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x41
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221407C
+_02213FEE:
+ bl FUN_0203300C
+ cmp r0, #5
+ bne _02214016
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221407C
+_02214016:
+ bl FUN_0203300C
+ cmp r0, #3
+ bne _0221403E
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221407C
+_0221403E:
+ bl FUN_0203300C
+ cmp r0, #4
+ beq _0221404E
+ bl FUN_02033128
+ cmp r0, #0
+ beq _0221406E
+_0221404E:
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221407C
+_0221406E:
+ bl FUN_02033250
+ cmp r0, #0
+ beq _0221407C
+ add r0, r5, #0
+ bl MOD56_02213030
+_0221407C:
+ bl FUN_0203300C
+ cmp r0, #1
+ bne _0221409A
+ add r0, r5, #0
+ bl MOD56_02216274
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD56_0221617C
+ mov r0, #0x3b
+ mov r1, #0x18
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_0221409A:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022140A0: .word 0x021C48B8
+ thumb_func_end MOD56_02213FCC
+
+ thumb_func_start MOD56_022140A4
+MOD56_022140A4: ; 0x022140A4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0203300C
+ cmp r0, #1
+ bne _022140D8
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xa
+ mov r2, #0
+ bl MOD56_02215EA4
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD56_0221617C
+ mov r0, #0x3b
+ mov r1, #0x17
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_022140D8:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD56_022140A4
+
+ thumb_func_start MOD56_022140DC
+MOD56_022140DC: ; 0x022140DC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02214116
+ ldr r0, _0221411C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0221410E
+ add r0, r5, #0
+ bl MOD56_02216120
+ mov r0, #0x3b
+ mov r1, #0x18
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02214116
+_0221410E:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD56_02214120
+_02214116:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0221411C: .word 0x021C48B8
+ thumb_func_end MOD56_022140DC
+
+ thumb_func_start MOD56_02214120
+MOD56_02214120: ; 0x02214120
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD56_02213C08
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xcd
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ bl FUN_0203300C
+ cmp r0, #5
+ bne _0221416A
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221422E
+_0221416A:
+ bl FUN_0203300C
+ cmp r0, #3
+ bne _02214192
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221422E
+_02214192:
+ bl FUN_0203300C
+ cmp r0, #4
+ beq _022141A2
+ bl FUN_02033128
+ cmp r0, #0
+ beq _022141C2
+_022141A2:
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221422E
+_022141C2:
+ bl FUN_02033250
+ cmp r0, #0
+ beq _022141D2
+ add r0, r5, #0
+ bl MOD56_02213030
+ b _0221422E
+_022141D2:
+ ldr r0, _02214234 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _022141F0
+ add r0, r5, #0
+ mov r1, #0x10
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x19
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221422E
+_022141F0:
+ bl MOD04_021D861C
+ cmp r0, #0
+ beq _02214214
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x20
+ mov r2, #0xb0
+ bl MOD56_02214470
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ b _0221422E
+_02214214:
+ mov r0, #0xcd
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x20
+ mov r2, #0xb0
+ bl MOD56_02214470
+ mov r0, #0xcd
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_0221422E:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02214234: .word 0x021C48B8
+ thumb_func_end MOD56_02214120
+
+ thumb_func_start MOD56_02214238
+MOD56_02214238: ; 0x02214238
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0221427E
+ bl MOD04_021D853C
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl FUN_020285D0
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02214284 ; =0x02216308
+ ldr r2, _02214288 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #0x1a
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_0221427E:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02214284: .word 0x02216308
+_02214288: .word 0x000001D9
+ thumb_func_end MOD56_02214238
+
+ thumb_func_start MOD56_0221428C
+MOD56_0221428C: ; 0x0221428C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _022142F0
+ bl FUN_0203300C
+ cmp r0, #4
+ bge _022142C0
+ bl FUN_02033128
+ cmp r0, #0
+ bne _022142C0
+ mov r0, #0
+ bl FUN_02030E7C
+ cmp r0, #0
+ bne _022142EC
+_022142C0:
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021EC
+ mov r0, #0
+ mov r1, #0xf6
+ mvn r0, r0
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ mov r2, #0x14
+ sub r0, #0x14
+ str r2, [r5, r0]
+ mov r0, #0x40
+ sub r1, #0x28
+ str r0, [r5, r1]
+_022142EC:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_022142F0:
+ cmp r0, #0
+ bne _0221431A
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ bl FUN_0203323C
+ mov r0, #0
+ mov r1, #0xf6
+ mvn r0, r0
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ mov r2, #0x14
+ sub r0, #0x14
+ str r2, [r5, r0]
+ mov r0, #0x40
+ sub r1, #0x28
+ str r0, [r5, r1]
+ b _02214322
+_0221431A:
+ mov r0, #0x3b
+ mov r1, #0x18
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02214322:
+ add r0, r5, #0
+ bl MOD56_02216120
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD56_0221428C
+
+ thumb_func_start MOD56_0221432C
+MOD56_0221432C: ; 0x0221432C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r5, #4]
+ ldrb r1, [r1, #0x1b]
+ cmp r1, #0x10
+ beq _02214340
+ mov r1, #0x10
+ bl MOD56_0221617C
+_02214340:
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _0221435E
+ mov r0, #0xf1
+ mov r1, #0x1e
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_0221435E:
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ sub r1, r1, #1
+ str r1, [r5, r0]
+ ldr r1, _022143B0 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #3
+ tst r1, r2
+ bne _02214378
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _022143AC
+_02214378:
+ add r0, r5, #0
+ bl MOD56_02216120
+ bl FUN_020331E8
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0221439C
+ mov r0, #0xf1
+ mov r1, #0x14
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x40
+ sub r0, #0x14
+ str r1, [r5, r0]
+ b _022143AC
+_0221439C:
+ mov r1, #0
+ mov r0, #0xf6
+ mvn r1, r1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x13
+ sub r0, #0x28
+ str r1, [r5, r0]
+_022143AC:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022143B0: .word 0x021C48B8
+ thumb_func_end MOD56_0221432C
+
+ thumb_func_start MOD56_022143B4
+MOD56_022143B4: ; 0x022143B4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _022143D0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_022143D0:
+ ldr r0, _02214400 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _022143FA
+ add r0, r5, #0
+ bl MOD56_02216120
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ bl FUN_020331E8
+ mov r0, #0xf1
+ mov r1, #0x14
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x40
+ sub r0, #0x14
+ str r1, [r5, r0]
+_022143FA:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02214400: .word 0x021C48B8
+ thumb_func_end MOD56_022143B4
+
+ thumb_func_start MOD56_02214404
+MOD56_02214404: ; 0x02214404
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02214420
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02214420:
+ ldr r0, _02214460 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0221445C
+ add r0, r5, #0
+ bl MOD56_02216120
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0221444C
+ mov r0, #0x3b
+ mov r1, #0x12
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221445C
+_0221444C:
+ mov r1, #0
+ mov r0, #0xf6
+ mvn r1, r1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x13
+ sub r0, #0x28
+ str r1, [r5, r0]
+_0221445C:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214460: .word 0x021C48B8
+ thumb_func_end MOD56_02214404
+
+ thumb_func_start MOD56_02214464
+MOD56_02214464: ; 0x02214464
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD56_02214464
+
+ thumb_func_start MOD56_02214468
+MOD56_02214468: ; 0x02214468
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD56_02214468
+
+ thumb_func_start MOD56_0221446C
+MOD56_0221446C: ; 0x0221446C
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD56_0221446C
+
+ thumb_func_start MOD56_02214470
+MOD56_02214470: ; 0x02214470
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r5, r2, #0
+ cmp r1, #0
+ ble _0221448E
+ lsl r0, r1, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _0221449C
+_0221448E:
+ lsl r0, r1, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_0221449C:
+ bl _ffix
+ str r0, [sp]
+ cmp r5, #0
+ ble _022144B8
+ lsl r0, r5, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _022144C6
+_022144B8:
+ lsl r0, r5, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_022144C6:
+ bl _ffix
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, sp, #0
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r4, r5, pc}
+ thumb_func_end MOD56_02214470
+
+ thumb_func_start MOD56_022144DC
+MOD56_022144DC: ; 0x022144DC
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, _02214500 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #3
+ tst r1, r2
+ beq _022144FC
+ mov r1, #0xed
+ mov r2, #8
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ mov r2, #0x22
+ sub r1, r1, #4
+ str r2, [r0, r1]
+ bl FUN_020331C4
+_022144FC:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+_02214500: .word 0x021C48B8
+ thumb_func_end MOD56_022144DC
+
+ thumb_func_start MOD56_02214504
+MOD56_02214504: ; 0x02214504
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #6
+ mov r2, #0
+ add r5, r0, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x28
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02214504
+
+ thumb_func_start MOD56_02214520
+MOD56_02214520: ; 0x02214520
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0221455A
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02214560 ; =0x02216308
+ ldr r2, _02214564 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #0x29
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_0221455A:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02214560: .word 0x02216308
+_02214564: .word 0x000001D9
+ thumb_func_end MOD56_02214520
+
+ thumb_func_start MOD56_02214568
+MOD56_02214568: ; 0x02214568
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r6, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ add r4, r0, #0
+ mov r0, #0xf6
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r1, r0
+ bne _022145A8
+ bl MOD04_021D8640
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _022145A8
+ cmp r4, r1
+ bne _022145A6
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021EC
+_022145A6:
+ mov r4, #1
+_022145A8:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _022145B4
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_022145B4:
+ cmp r4, #0
+ bne _022145C0
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+_022145C0:
+ add r0, r5, #0
+ bl MOD56_02216120
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02214568
+
+ thumb_func_start MOD56_022145D4
+MOD56_022145D4: ; 0x022145D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ ldr r3, _022146C0 ; =0x02216414
+ add r2, sp, #0x14
+ add r5, r0, #0
+ add r7, r1, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ mov r0, #4
+ mov r1, #0x36
+ bl FUN_02012838
+ add r1, r5, #0
+ add r1, #0xb8
+ ldr r4, _022146C4 ; =0x02216480
+ str r0, [r1]
+ mov r6, #0
+_02214602:
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xb8
+ add r1, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, #4
+ blt _02214602
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02214642
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_02214642:
+ mov r0, #9
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x33
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc0
+ mov r1, #0xe3
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ add r1, r5, r1
+ mov r2, #2
+ mov r3, #0x10
+ bl FUN_02019064
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ ldr r2, _022146C8 ; =0x000001D9
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ mov r2, #0xe3
+ lsl r2, r2, #2
+ str r0, [sp, #0x14]
+ add r0, r5, r2
+ str r0, [sp, #0x20]
+ add r2, #0x50
+ ldrh r2, [r5, r2]
+ add r0, sp, #0x14
+ mov r1, #0
+ mov r3, #0x36
+ bl FUN_020010A8
+ add r1, r5, #0
+ add r1, #0xbc
+ str r0, [r1]
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x25
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r7, #0
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022146C0: .word 0x02216414
+_022146C4: .word 0x02216480
+_022146C8: .word 0x000001D9
+ thumb_func_end MOD56_022145D4
+
+ thumb_func_start MOD56_022146CC
+MOD56_022146CC: ; 0x022146CC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ bl MOD56_02211F88
+ add r7, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _022146EE
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022146EE:
+ add r0, r5, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ bl FUN_02001204
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD56_02213BF4
+ cmp r0, #0
+ beq _02214708
+ mov r4, #1
+ mvn r4, r4
+_02214708:
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _0221471A
+ add r0, r0, #1
+ cmp r4, r0
+ bne _02214730
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0221471A:
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD56_02216120
+ ldr r0, _02214804 ; =0x000005DD
+ bl FUN_020054C8
+ b _022147CE
+_02214730:
+ ldr r0, _02214804 ; =0x000005DD
+ bl FUN_020054C8
+ cmp r4, #0xf
+ bne _02214752
+ cmp r7, #2
+ bge _02214752
+ add r0, r5, #0
+ mov r1, #0x34
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1d
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _022147CE
+_02214752:
+ cmp r4, #1
+ bne _0221476E
+ cmp r7, #2
+ bge _0221476E
+ add r0, r5, #0
+ mov r1, #0x42
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1d
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _022147CE
+_0221476E:
+ cmp r4, #1
+ bhi _022147B8
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ add r0, r5, #0
+ add r0, #0xbc
+ mov r2, #0xf7
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ mov r1, #0
+ add r2, r5, r2
+ bl FUN_02001300
+ add r0, r5, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ bl FUN_02012870
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD56_02214808
+ mov r0, #0x3b
+ mov r1, #0x26
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022147B8:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD56_0221617C
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD56_02216120
+_022147CE:
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ add r0, r5, #0
+ add r0, #0xbc
+ mov r2, #0xf7
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ mov r1, #0
+ add r2, r5, r2
+ bl FUN_02001300
+ add r5, #0xb8
+ ldr r0, [r5]
+ bl FUN_02012870
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02214804: .word 0x000005DD
+ thumb_func_end MOD56_022146CC
+
+ thumb_func_start MOD56_02214808
+MOD56_02214808: ; 0x02214808
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ cmp r1, #0
+ bne _0221481A
+ ldr r4, _0221490C ; =0x022164A0
+ mov r7, #4
+ mov r1, #1
+ b _02214820
+_0221481A:
+ ldr r4, _02214910 ; =0x022164C0
+ mov r7, #4
+ mov r1, #0
+_02214820:
+ ldr r0, _02214914 ; =0x000003E2
+ ldr r3, _02214918 ; =0x02216414
+ strh r1, [r5, r0]
+ add r2, sp, #0x14
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r7, #0
+ mov r1, #0x36
+ bl FUN_02012838
+ add r1, r5, #0
+ add r1, #0xb8
+ mov r6, #0
+ str r0, [r1]
+ cmp r7, #0
+ ble _02214868
+_0221484C:
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xb8
+ add r1, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, r7
+ blt _0221484C
+_02214868:
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _0221488C
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_0221488C:
+ mov r1, #9
+ str r1, [sp]
+ mov r1, #0xf
+ lsl r0, r7, #1
+ str r1, [sp, #4]
+ lsl r1, r0, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #8]
+ mov r1, #0xd
+ str r1, [sp, #0xc]
+ mov r1, #0x3b
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc0
+ mov r1, #0xe3
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ add r1, r5, r1
+ mov r2, #2
+ mov r3, #0x10
+ bl FUN_02019064
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ ldr r2, _0221491C ; =0x000001D9
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ mov r3, #0xe3
+ lsl r3, r3, #2
+ str r0, [sp, #0x14]
+ add r0, r5, r3
+ add r2, r3, #0
+ str r0, [sp, #0x20]
+ add r2, #0x56
+ ldrh r2, [r5, r2]
+ add r3, #0x52
+ add r0, sp, #0x14
+ lsl r2, r2, #1
+ add r2, r5, r2
+ ldrh r2, [r2, r3]
+ mov r1, #0
+ mov r3, #0x36
+ bl FUN_020010A8
+ add r1, r5, #0
+ add r1, #0xbc
+ str r0, [r1]
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r0, #1
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221490C: .word 0x022164A0
+_02214910: .word 0x022164C0
+_02214914: .word 0x000003E2
+_02214918: .word 0x02216414
+_0221491C: .word 0x000001D9
+ thumb_func_end MOD56_02214808
+
+ thumb_func_start MOD56_02214920
+MOD56_02214920: ; 0x02214920
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r6, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _0221493C
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_0221493C:
+ add r0, r5, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ bl FUN_02001204
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD56_02213BF4
+ cmp r0, #0
+ beq _02214956
+ mov r4, #1
+ mvn r4, r4
+_02214956:
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _02214968
+ add r0, r0, #1
+ cmp r4, r0
+ bne _02214978
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_02214968:
+ ldr r0, _022149D0 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x3b
+ mov r1, #0x24
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02214994
+_02214978:
+ ldr r0, _022149D0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD56_0221617C
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD56_02216120
+_02214994:
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ ldr r3, _022149D4 ; =0x000003DE
+ add r0, r5, #0
+ add r2, r5, r3
+ add r3, r3, #4
+ ldrh r3, [r5, r3]
+ add r0, #0xbc
+ ldr r0, [r0]
+ lsl r3, r3, #1
+ mov r1, #0
+ add r2, r2, r3
+ bl FUN_02001300
+ add r5, #0xb8
+ ldr r0, [r5]
+ bl FUN_02012870
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022149D0: .word 0x000005DD
+_022149D4: .word 0x000003DE
+ thumb_func_end MOD56_02214920
+
+ thumb_func_start MOD56_022149D8
+MOD56_022149D8: ; 0x022149D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ ldr r3, _02214BB0 ; =0x02216434
+ add r5, r0, #0
+ mov r0, #3
+ add r2, sp, #0x2c
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x20]
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ add r1, sp, #0x28
+ bl FUN_0200143C
+ add r0, sp, #0x28
+ ldrh r0, [r0]
+ add r0, r5, r0
+ ldrb r0, [r0, #0xc]
+ sub r0, r0, #1
+ str r0, [sp, #0x18]
+ ldr r1, [sp, #0x18]
+ mov r0, #0x24
+ mul r0, r1
+ ldr r1, [r5, #4]
+ add r1, r1, r0
+ add r1, #0x3f
+ ldrb r6, [r1]
+ mov r1, #0xf9
+ lsl r1, r1, #2
+ strh r6, [r5, r1]
+ ldr r2, [r5, #4]
+ add r2, #0x45
+ ldrb r2, [r2, r0]
+ add r0, r1, #2
+ mov r1, #0x36
+ strh r2, [r5, r0]
+ ldr r0, [r5, #4]
+ add r0, #0x21
+ ldrb r0, [r0]
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x1c]
+ mov r0, #3
+ bl FUN_02012838
+ add r1, r5, #0
+ add r1, #0xb8
+ str r0, [r1]
+ mov r0, #0
+ ldr r4, _02214BB4 ; =0x02216350
+ str r0, [sp, #0x24]
+ add r7, sp, #0x28
+_02214A52:
+ ldr r0, [sp, #0x24]
+ cmp r0, #0
+ bne _02214AC8
+ add r0, r6, #0
+ bl MOD56_02211ECC
+ cmp r0, #0
+ bne _02214A6A
+ cmp r6, #0
+ beq _02214A6A
+ cmp r6, #0x11
+ blo _02214A7E
+_02214A6A:
+ ldrh r0, [r7, #0x16]
+ sub r0, r0, #1
+ strh r0, [r7, #0x16]
+ ldrh r0, [r7, #0x14]
+ sub r0, r0, #1
+ strh r0, [r7, #0x14]
+ ldr r0, [sp, #0x20]
+ sub r0, r0, #1
+ str r0, [sp, #0x20]
+ b _02214ADC
+_02214A7E:
+ cmp r6, #0x10
+ bne _02214AB2
+ ldr r0, [sp, #0x1c]
+ cmp r0, #2
+ bne _02214A9E
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xb8
+ add r1, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r3, [r4, #4]
+ mov r2, #0x1a
+ bl FUN_02012880
+ b _02214ADC
+_02214A9E:
+ ldrh r0, [r7, #0x16]
+ sub r0, r0, #1
+ strh r0, [r7, #0x16]
+ ldrh r0, [r7, #0x14]
+ sub r0, r0, #1
+ strh r0, [r7, #0x14]
+ ldr r0, [sp, #0x20]
+ sub r0, r0, #1
+ str r0, [sp, #0x20]
+ b _02214ADC
+_02214AB2:
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xb8
+ add r1, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ b _02214ADC
+_02214AC8:
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xb8
+ add r1, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+_02214ADC:
+ ldr r0, [sp, #0x24]
+ add r4, #8
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #3
+ blo _02214A52
+ ldr r0, [sp, #0x20]
+ mov r1, #3
+ sub r0, r1, r0
+ lsl r0, r0, #1
+ add r0, #0xb
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x20]
+ mov r1, #0xe3
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x3b
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc0
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ add r1, r5, r1
+ mov r2, #2
+ mov r3, #0x10
+ bl FUN_02019064
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ ldr r2, _02214BB8 ; =0x000001D9
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ mov r1, #0
+ str r0, [sp, #0x2c]
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ add r2, r1, #0
+ mov r3, #0x36
+ bl FUN_020010A8
+ add r1, r5, #0
+ add r1, #0xbc
+ str r0, [r1]
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ ldr r1, [sp, #0x18]
+ add r0, r5, #0
+ bl MOD56_022160E4
+ cmp r6, #0xf
+ bne _02214B6C
+ mov r1, #3
+ b _02214B9A
+_02214B6C:
+ add r0, r6, #0
+ bl MOD56_02211E60
+ cmp r0, #0
+ beq _02214B7A
+ mov r1, #2
+ b _02214B9A
+_02214B7A:
+ cmp r6, #8
+ bne _02214B82
+ mov r1, #0x30
+ b _02214B9A
+_02214B82:
+ add r0, r6, #0
+ bl MOD56_02211EA4
+ cmp r0, #0
+ beq _02214B90
+ mov r1, #0x2f
+ b _02214B9A
+_02214B90:
+ cmp r6, #1
+ bne _02214B98
+ mov r1, #0x31
+ b _02214B9A
+_02214B98:
+ mov r1, #4
+_02214B9A:
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x2b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp, #0x14]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02214BB0: .word 0x02216434
+_02214BB4: .word 0x02216350
+_02214BB8: .word 0x000001D9
+ thumb_func_end MOD56_022149D8
+
+ thumb_func_start MOD56_02214BBC
+MOD56_02214BBC: ; 0x02214BBC
+ push {r4, r5}
+ ldr r2, _02214BF8 ; =0x000001EF
+ mov r5, #0
+ add r1, r2, #0
+ sub r1, #0x1f
+ add r3, r2, #0
+_02214BC8:
+ ldrh r4, [r0]
+ cmp r4, r3
+ bne _02214BD4
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02214BD4:
+ cmp r4, r2
+ bls _02214BDE
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02214BDE:
+ ldrh r4, [r0, #0xc]
+ cmp r4, r1
+ bls _02214BEA
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02214BEA:
+ add r5, r5, #1
+ add r0, r0, #2
+ cmp r5, #6
+ blt _02214BC8
+ mov r0, #1
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_02214BF8: .word 0x000001EF
+ thumb_func_end MOD56_02214BBC
+
+ thumb_func_start MOD56_02214BFC
+MOD56_02214BFC: ; 0x02214BFC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ str r1, [sp]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r6, #0
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02214C1E
+ ldr r0, [sp]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+_02214C1E:
+ add r0, r4, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ bl FUN_02001204
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD56_02213BF4
+ cmp r0, #0
+ beq _02214C36
+ sub r5, r6, #2
+_02214C36:
+ mov r0, #1
+ mvn r0, r0
+ cmp r5, r0
+ beq _02214C4A
+ add r0, r0, #1
+ cmp r5, r0
+ bne _02214C5A
+ ldr r0, [sp]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+_02214C4A:
+ ldr r0, _02214E20 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _02214DE2
+_02214C5A:
+ ldr r0, _02214E20 ; =0x000005DD
+ bl FUN_020054C8
+ cmp r5, #1
+ beq _02214C66
+ b _02214DD6
+_02214C66:
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ add r1, sp, #0xc
+ bl FUN_0200143C
+ add r0, sp, #0xc
+ ldrh r0, [r0]
+ add r0, r4, r0
+ ldrb r5, [r0, #0xc]
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ strh r5, [r4, r0]
+ cmp r5, #0
+ bne _02214C8E
+ b _02214DE2
+_02214C8E:
+ add r0, r4, #0
+ bl MOD56_02211F88
+ sub r1, r5, #1
+ str r0, [sp, #8]
+ mov r0, #0x24
+ add r3, r1, #0
+ ldr r2, [r4, #4]
+ mul r3, r0
+ add r0, r2, r3
+ add r0, #0x3f
+ ldrb r0, [r0]
+ str r0, [sp, #4]
+ add r0, r2, r3
+ add r0, #0x45
+ ldrb r7, [r0]
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ ldrh r1, [r4, r0]
+ ldr r0, [sp, #4]
+ cmp r1, r0
+ bne _02214CC6
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ add r0, r0, #2
+ ldrh r0, [r4, r0]
+ cmp r0, r7
+ beq _02214CE4
+_02214CC6:
+ add r0, r4, #0
+ sub r1, r5, #1
+ bl MOD56_022160E4
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1d
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r6, #1
+ b _02214DE2
+_02214CE4:
+ add r2, #0x24
+ add r0, r2, r3
+ bl MOD56_02214BBC
+ cmp r0, #0
+ bne _02214D0E
+ add r0, r4, #0
+ sub r1, r5, #1
+ bl MOD56_022160E4
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1d
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r6, #1
+ b _02214DE2
+_02214D0E:
+ ldr r0, [sp, #4]
+ bl MOD56_02211EEC
+ cmp r0, #0
+ beq _02214D46
+ ldr r0, [sp, #8]
+ cmp r0, #2
+ bge _02214D46
+ ldr r0, [sp, #4]
+ cmp r0, #0xf
+ bne _02214D30
+ add r0, r4, #0
+ mov r1, #0x34
+ mov r2, #0
+ bl MOD56_02215EA4
+ b _02214D3A
+_02214D30:
+ add r0, r4, #0
+ mov r1, #0x42
+ mov r2, #0
+ bl MOD56_02215EA4
+_02214D3A:
+ mov r0, #0x3b
+ mov r1, #0x1d
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r6, #1
+ b _02214DE2
+_02214D46:
+ ldr r0, [r4, #4]
+ add r0, #0x21
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _02214D76
+ cmp r7, #0
+ beq _02214D60
+ add r0, r4, #0
+ mov r1, #0x44
+ mov r2, #0
+ bl MOD56_02215EA4
+ b _02214D6A
+_02214D60:
+ add r0, r4, #0
+ mov r1, #0x45
+ mov r2, #0
+ bl MOD56_02215EA4
+_02214D6A:
+ mov r0, #0x3b
+ mov r1, #0x3e
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r6, #1
+ b _02214DE2
+_02214D76:
+ ldr r0, [sp, #4]
+ bl MOD56_02211F10
+ add r7, r0, #0
+ cmp r7, #0x11
+ beq _02214DE2
+ sub r0, r5, #1
+ bl MOD04_021D8480
+ cmp r0, #6
+ bne _02214DE2
+ sub r0, r5, #1
+ bl FUN_02032FDC
+ cmp r0, #0
+ beq _02214DE2
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD56_0221617C
+ add r0, r4, #0
+ sub r1, r5, #1
+ bl MOD56_022160E4
+ add r0, r4, #0
+ mov r1, #0xd
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r1, _02214E24 ; =0x000001E2
+ add r0, r4, r0
+ bl FUN_0200D858
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ cmp r7, #1
+ beq _02214DCA
+ mov r1, #0x2c
+ b _02214DCC
+_02214DCA:
+ mov r1, #0x15
+_02214DCC:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r6, #1
+ b _02214DE2
+_02214DD6:
+ cmp r5, #2
+ bne _02214DE2
+ mov r0, #0x3b
+ mov r1, #0x35
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_02214DE2:
+ cmp r6, #0
+ bne _02214DEC
+ add r0, r4, #0
+ bl MOD56_02216120
+_02214DEC:
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0xbc
+ mov r1, #0
+ ldr r0, [r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ add r4, #0xb8
+ ldr r0, [r4]
+ bl FUN_02012870
+ ldr r0, [sp]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02214E20: .word 0x000005DD
+_02214E24: .word 0x000001E2
+ thumb_func_end MOD56_02214BFC
+
+ thumb_func_start MOD56_02214E28
+MOD56_02214E28: ; 0x02214E28
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, _02214F08 ; =0x021C48B8
+ add r5, r0, #0
+ ldr r2, [r1, #0x48]
+ mov r1, #2
+ tst r1, r2
+ beq _02214E4A
+ mov r1, #0x43
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x2d
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02214F02
+_02214E4A:
+ bl FUN_0203300C
+ cmp r0, #3
+ bne _02214E72
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02214F02
+_02214E72:
+ bl FUN_0203300C
+ cmp r0, #5
+ bne _02214E9A
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02214F02
+_02214E9A:
+ bl FUN_0203300C
+ cmp r0, #4
+ beq _02214EAA
+ bl FUN_02033128
+ cmp r0, #0
+ beq _02214ECA
+_02214EAA:
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02214F02
+_02214ECA:
+ bl FUN_02033250
+ cmp r0, #0
+ beq _02214EDA
+ add r0, r5, #0
+ bl MOD56_02213030
+ b _02214F02
+_02214EDA:
+ bl FUN_0203300C
+ cmp r0, #1
+ bne _02214F02
+ add r0, r5, #0
+ bl MOD56_02216274
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0202DB14
+ mov r0, #0xf1
+ mov r1, #0x1e
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x30
+ sub r0, #0x14
+ str r1, [r5, r0]
+_02214F02:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02214F08: .word 0x021C48B8
+ thumb_func_end MOD56_02214E28
+
+ thumb_func_start MOD56_02214F0C
+MOD56_02214F0C: ; 0x02214F0C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02214F46
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02214F4C ; =0x02216308
+ ldr r2, _02214F50 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #0x42
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02214F46:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02214F4C: .word 0x02216308
+_02214F50: .word 0x000001D9
+ thumb_func_end MOD56_02214F0C
+
+ thumb_func_start MOD56_02214F54
+MOD56_02214F54: ; 0x02214F54
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r6, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD56_02213BF4
+ cmp r0, #0
+ beq _02214F90
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02214F86
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021EC
+_02214F86:
+ mov r0, #0x3b
+ mov r1, #0x15
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02214FCC
+_02214F90:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02214F9C
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_02214F9C:
+ cmp r4, #0
+ bne _02214FC4
+ add r0, r5, #0
+ bl MOD56_02216248
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ bl FUN_020331E8
+ mov r1, #0
+ mov r0, #0xf6
+ mvn r1, r1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x13
+ sub r0, #0x28
+ str r1, [r5, r0]
+ b _02214FCC
+_02214FC4:
+ mov r0, #0x3b
+ mov r1, #0x15
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02214FCC:
+ add r0, r5, #0
+ bl MOD56_02216120
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02214F54
+
+ thumb_func_start MOD56_02214FD8
+MOD56_02214FD8: ; 0x02214FD8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02215012
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02215018 ; =0x02216308
+ ldr r2, _0221501C ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #0x2e
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02215012:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02215018: .word 0x02216308
+_0221501C: .word 0x000001D9
+ thumb_func_end MOD56_02214FD8
+
+ thumb_func_start MOD56_02215020
+MOD56_02215020: ; 0x02215020
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r6, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD56_02213BF4
+ cmp r0, #0
+ beq _0221505C
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02215052
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021EC
+_02215052:
+ mov r0, #0x3b
+ mov r1, #0x2c
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02215098
+_0221505C:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02215068
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_02215068:
+ cmp r4, #0
+ bne _02215090
+ add r0, r5, #0
+ bl MOD56_02216248
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ bl FUN_020331E8
+ mov r1, #0
+ mov r0, #0xf6
+ mvn r1, r1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x13
+ sub r0, #0x28
+ str r1, [r5, r0]
+ b _02215098
+_02215090:
+ mov r0, #0x3b
+ mov r1, #0x2c
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02215098:
+ add r0, r5, #0
+ bl MOD56_02216120
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02215020
+
+ thumb_func_start MOD56_022150A4
+MOD56_022150A4: ; 0x022150A4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ add r6, r1, #0
+ ldrb r4, [r0, #0x1b]
+ bl MOD04_021D853C
+ mov r1, #0x24
+ ldr r2, [r5, #4]
+ mul r1, r0
+ add r0, r2, r1
+ add r0, #0x3f
+ ldrb r0, [r0]
+ cmp r4, #0xc
+ bne _022150D0
+ cmp r0, #5
+ bne _022150D0
+ mov r0, #0x3b
+ mov r1, #0x30
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221517E
+_022150D0:
+ cmp r4, #0xd
+ bne _022150E2
+ cmp r0, #6
+ bne _022150E2
+ mov r0, #0x3b
+ mov r1, #0x30
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221517E
+_022150E2:
+ cmp r4, #0xe
+ bne _022150F4
+ cmp r0, #7
+ bne _022150F4
+ mov r0, #0x3b
+ mov r1, #0x30
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221517E
+_022150F4:
+ cmp r4, #9
+ bne _02215106
+ cmp r0, #2
+ bne _02215106
+ mov r0, #0x3b
+ mov r1, #0x30
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221517E
+_02215106:
+ cmp r4, #0xa
+ bne _02215118
+ cmp r0, #3
+ bne _02215118
+ mov r0, #0x3b
+ mov r1, #0x30
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221517E
+_02215118:
+ cmp r4, #0xb
+ bne _0221512A
+ cmp r0, #4
+ bne _0221512A
+ mov r0, #0x3b
+ mov r1, #0x30
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221517E
+_0221512A:
+ cmp r4, #0xf
+ bne _0221513C
+ cmp r0, #8
+ bne _0221513C
+ mov r0, #0x3b
+ mov r1, #0x30
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221517E
+_0221513C:
+ cmp r4, #0x10
+ bne _02215150
+ cmp r0, #1
+ bne _02215150
+ mov r0, #0x3b
+ mov r1, #0x16
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_02215150:
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1d
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ bl FUN_020331E8
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_0221517E:
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #7
+ mov r2, #0
+ bl MOD56_02215EA4
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0202DB14
+ mov r0, #0x3b
+ mov r1, #0x30
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ mov r1, #0x1e
+ add r0, #0x14
+ str r1, [r5, r0]
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_022150A4
+
+ thumb_func_start MOD56_022151B4
+MOD56_022151B4: ; 0x022151B4
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0203300C
+ cmp r0, #3
+ blt _022151E0
+ mov r1, #0xf6
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD56_022160E4
+ add r0, r4, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _022151F4
+_022151E0:
+ bl FUN_02033250
+ cmp r0, #0
+ beq _022151F0
+ add r0, r4, #0
+ bl MOD56_02213030
+ b _022151F4
+_022151F0:
+ mov r0, #0
+ pop {r4, pc}
+_022151F4:
+ mov r0, #0xfb
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD56_022151B4
+
+ thumb_func_start MOD56_02215200
+MOD56_02215200: ; 0x02215200
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0203300C
+ cmp r0, #4
+ bge _02215220
+ bl FUN_02033128
+ cmp r0, #0
+ bne _02215220
+ mov r0, #0
+ bl FUN_02030E7C
+ cmp r0, #0
+ bne _0221525A
+_02215220:
+ mov r1, #0xfb
+ lsl r1, r1, #2
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ beq _02215236
+ add r0, r5, #0
+ mov r1, #0x40
+ mov r2, #0
+ bl MOD56_02215EA4
+ b _0221524A
+_02215236:
+ sub r1, #0x14
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD56_02215EA4
+_0221524A:
+ mov r0, #0xfb
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x1b
+ sub r0, #0x3c
+ str r1, [r5, r0]
+ b _022152A2
+_0221525A:
+ add r0, r5, #0
+ bl MOD56_022151B4
+ cmp r0, #0
+ bne _022152A2
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ bne _02215292
+ mov r0, #0xd
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _022152A2
+ bl FUN_0203168C
+ mov r0, #0xe
+ bl FUN_02031588
+ mov r0, #0xfb
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x31
+ sub r0, #0x3c
+ str r1, [r5, r0]
+ b _022152A2
+_02215292:
+ sub r1, r1, #1
+ str r1, [r5, r0]
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _022152A2
+ mov r0, #0xd
+ bl FUN_02031588
+_022152A2:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02215200
+
+ thumb_func_start MOD56_022152A8
+MOD56_022152A8: ; 0x022152A8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD56_022151B4
+ cmp r0, #0
+ bne _022152DA
+ mov r0, #0xe
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _022152DA
+ ldr r0, [r5, #4]
+ ldrb r1, [r0, #0x1b]
+ add r0, sp, #0
+ strh r1, [r0]
+ bl FUN_02031190
+ add r1, sp, #0
+ bl FUN_020316AC
+ mov r0, #0x3b
+ mov r1, #0x32
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_022152DA:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD56_022152A8
+
+ thumb_func_start MOD56_022152E0
+MOD56_022152E0: ; 0x022152E0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ bl FUN_02031190
+ mov r1, #1
+ sub r0, r1, r0
+ bl FUN_020316E0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD56_022151B4
+ cmp r0, #0
+ bne _0221534A
+ cmp r4, #0
+ beq _0221534A
+ ldr r0, [r5, #4]
+ ldrb r0, [r0, #0x1b]
+ bl MOD56_02211F10
+ lsl r0, r0, #0x10
+ ldrh r1, [r4]
+ lsr r0, r0, #0x10
+ cmp r1, r0
+ beq _0221531C
+ ldr r0, [r5, #4]
+ ldrb r0, [r0, #0x1b]
+ cmp r1, r0
+ bne _0221532C
+_0221531C:
+ mov r0, #0xf
+ bl FUN_02031588
+ mov r0, #0x3b
+ mov r1, #0x33
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221534A
+_0221532C:
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xc
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_0221534A:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_022152E0
+
+ thumb_func_start MOD56_02215350
+MOD56_02215350: ; 0x02215350
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD56_022151B4
+ cmp r0, #0
+ bne _02215382
+ mov r0, #0xf
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _02215382
+ bl FUN_0202DBE0
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020334E8
+ mov r0, #0x12
+ bl FUN_02031588
+ mov r0, #0x3b
+ mov r1, #0x34
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02215382:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02215350
+
+ thumb_func_start MOD56_02215388
+MOD56_02215388: ; 0x02215388
+ push {r4, r5, lr}
+ sub sp, #0x2c
+ add r4, r0, #0
+ add r5, r1, #0
+ bl MOD56_022151B4
+ cmp r0, #0
+ bne _02215476
+ mov r0, #0x12
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _02215476
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, sp, #0xc
+ mov r2, #0x36
+ bl FUN_020339B4
+ add r0, r4, #0
+ bl MOD56_02216120
+ bl MOD04_021D853C
+ mov r1, #0x24
+ ldr r2, [r4, #4]
+ mul r1, r0
+ add r0, r2, r1
+ add r0, #0x3f
+ ldrb r1, [r0]
+ cmp r1, #0xf
+ beq _022153CE
+ cmp r1, #8
+ bne _022153DA
+_022153CE:
+ mov r0, #0xed
+ mov r2, #7
+ lsl r0, r0, #2
+ mov r1, #8
+ str r2, [r4, r0]
+ b _02215450
+_022153DA:
+ cmp r1, #9
+ beq _022153E2
+ cmp r1, #2
+ bne _022153EE
+_022153E2:
+ mov r0, #0xed
+ mov r2, #1
+ lsl r0, r0, #2
+ mov r1, #2
+ str r2, [r4, r0]
+ b _02215450
+_022153EE:
+ cmp r1, #0xa
+ beq _022153F6
+ cmp r1, #3
+ bne _02215402
+_022153F6:
+ mov r0, #0xed
+ mov r2, #2
+ lsl r0, r0, #2
+ mov r1, #3
+ str r2, [r4, r0]
+ b _02215450
+_02215402:
+ cmp r1, #0xb
+ beq _0221540A
+ cmp r1, #4
+ bne _02215416
+_0221540A:
+ mov r0, #0xed
+ mov r2, #3
+ lsl r0, r0, #2
+ mov r1, #4
+ str r2, [r4, r0]
+ b _02215450
+_02215416:
+ cmp r1, #0xc
+ beq _0221541E
+ cmp r1, #5
+ bne _0221542A
+_0221541E:
+ mov r0, #0xed
+ mov r2, #4
+ lsl r0, r0, #2
+ mov r1, #5
+ str r2, [r4, r0]
+ b _02215450
+_0221542A:
+ cmp r1, #0xd
+ beq _02215432
+ cmp r1, #6
+ bne _0221543E
+_02215432:
+ mov r0, #0xed
+ mov r2, #5
+ lsl r0, r0, #2
+ mov r1, #6
+ str r2, [r4, r0]
+ b _02215450
+_0221543E:
+ cmp r1, #0xe
+ beq _02215446
+ cmp r1, #7
+ bne _02215450
+_02215446:
+ mov r0, #0xed
+ mov r2, #6
+ lsl r0, r0, #2
+ mov r1, #7
+ str r2, [r4, r0]
+_02215450:
+ add r0, r4, #0
+ bl MOD56_0221617C
+ mov r0, #1
+ bl FUN_02031400
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x36
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r5, #2
+_02215476:
+ add r0, r5, #0
+ add sp, #0x2c
+ pop {r4, r5, pc}
+ thumb_func_end MOD56_02215388
+
+ thumb_func_start MOD56_0221547C
+MOD56_0221547C: ; 0x0221547C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r0, #0xc0
+ add r4, r1, #0
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_02018744
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ add r2, r5, #0
+ str r3, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5c
+ mov r1, #5
+ bl FUN_020068C8
+ mov r0, #0xf3
+ mov r1, #0
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ mov r1, #0x12
+ sub r0, #0x1c
+ str r1, [r5, r0]
+ add r0, r4, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD56_0221547C
+
+ thumb_func_start MOD56_022154BC
+MOD56_022154BC: ; 0x022154BC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r0, #0xc0
+ add r7, r1, #0
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_02018744
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x36
+ add r2, r5, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5c
+ mov r1, #6
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0x33
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02215532
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_02215532:
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #0xe
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc0
+ mov r1, #0xe7
+ lsl r1, r1, #2
+ mov r2, #3
+ ldr r0, [r0]
+ add r1, r5, r1
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ add r1, sp, #0x14
+ bl FUN_0200143C
+ add r0, sp, #0x14
+ ldrh r0, [r0]
+ add r0, r5, r0
+ ldrb r0, [r0, #0xc]
+ sub r0, r0, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x20
+ bl FUN_0200A8E0
+ mov r2, #0x16
+ add r0, r5, #0
+ lsl r2, r2, #4
+ add r0, #0xc8
+ ldr r1, [r5, r2]
+ sub r2, #8
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ add r2, #0x61
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add r0, r5, #0
+ mov r1, #0x29
+ mov r2, #0
+ bl MOD56_02215EA4
+ add r0, r5, #0
+ mov r2, #0x16
+ add r0, #0xcc
+ lsl r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x21
+ bl FUN_0200A8E0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ mov r0, #0x36
+ bl FUN_02023928
+ add r6, r0, #0
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl FUN_020283E8
+ add r1, r0, #0
+ add r0, r6, #0
+ bl FUN_0202395C
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ add r2, r6, #0
+ bl FUN_0200ABC0
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x4e
+ bl FUN_0200A8E0
+ mov r2, #0x16
+ add r0, r5, #0
+ lsl r2, r2, #4
+ add r0, #0xc8
+ ldr r1, [r5, r2]
+ sub r2, #8
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r1, #0x16
+ lsl r1, r1, #4
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xce
+ sub r3, r1, r0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ mov r2, #0x16
+ add r0, #0xcc
+ lsl r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x22
+ bl FUN_0200A8E0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x23
+ bl FUN_0200A8E0
+ mov r2, #0x16
+ add r0, r5, #0
+ lsl r2, r2, #4
+ add r0, #0xc8
+ ldr r1, [r5, r2]
+ sub r2, #8
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r0, #0x30
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r3, #0x1e
+ bl FUN_0201BDE0
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r2, #2
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x24
+ bl FUN_0200A8E0
+ mov r2, #0x16
+ add r0, r5, #0
+ lsl r2, r2, #4
+ add r0, #0xc8
+ ldr r1, [r5, r2]
+ sub r2, #8
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r1, #0x16
+ lsl r1, r1, #4
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r6, r0, #0
+ mov r0, #0x30
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r3, #0xce
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ sub r3, r3, r6
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ mov r2, #0x16
+ add r0, #0xcc
+ lsl r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x25
+ bl FUN_0200A8E0
+ mov r0, #0x40
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r2, #3
+ bl FUN_0202822C
+ add r6, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ add r2, r6, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ cmp r6, #1
+ bne _02215810
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x26
+ bl FUN_0200A8E0
+ b _02215822
+_02215810:
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x4f
+ bl FUN_0200A8E0
+_02215822:
+ mov r2, #0x16
+ add r0, r5, #0
+ lsl r2, r2, #4
+ add r0, #0xc8
+ ldr r1, [r5, r2]
+ sub r2, #8
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r1, #0x16
+ lsl r1, r1, #4
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r6, r0, #0
+ mov r0, #0x40
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r3, #0xce
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ sub r3, r3, r6
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ mov r2, #0x16
+ add r0, #0xcc
+ lsl r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x27
+ bl FUN_0200A8E0
+ mov r0, #0x50
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r2, #6
+ bl FUN_0202822C
+ add r2, r0, #0
+ beq _0221594C
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xc8
+ mov r1, #2
+ ldr r0, [r0]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r2, #4
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r2, #5
+ bl FUN_0202822C
+ add r2, r0, #0
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200B764
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x28
+ bl FUN_0200A8E0
+ mov r2, #0x16
+ add r0, r5, #0
+ lsl r2, r2, #4
+ add r0, #0xc8
+ ldr r1, [r5, r2]
+ sub r2, #8
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r1, #0x16
+ lsl r1, r1, #4
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r0, #0x60
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r4, #0xce
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ sub r3, r4, r3
+ bl FUN_0201BDE0
+_0221594C:
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r0, #0x3b
+ mov r1, #0x36
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r7, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02215964: .word 0x00010200
+ thumb_func_end MOD56_022154BC
+
+ thumb_func_start MOD56_02215968
+MOD56_02215968: ; 0x02215968
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02215984
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02215984:
+ add r0, r5, #0
+ bl MOD56_02213BF4
+ cmp r0, #0
+ beq _02215996
+ mov r0, #0x3b
+ mov r1, #0x37
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02215996:
+ ldr r0, _022159AC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _022159A8
+ mov r0, #0x3b
+ mov r1, #0x37
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_022159A8:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022159AC: .word 0x021C48B8
+ thumb_func_end MOD56_02215968
+
+ thumb_func_start MOD56_022159B0
+MOD56_022159B0: ; 0x022159B0
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r4, r1, #0
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_02018744
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_02018744
+ add r0, r5, #0
+ bl MOD56_02216120
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ add r2, r5, #0
+ str r3, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5c
+ mov r1, #5
+ bl FUN_020068C8
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ mov r2, #0x16
+ add r0, #0xcc
+ lsl r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x12
+ bl FUN_0200A8E0
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215A88 ; =0x000F0E00
+ add r2, #0x61
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add r0, r5, #0
+ bl MOD56_02212EFC
+ add r0, r5, #0
+ bl MOD56_02213A40
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD56_022138A4
+ ldr r1, [r5, #4]
+ add r0, r5, #0
+ ldrb r1, [r1, #0x1b]
+ bl MOD56_0221617C
+ mov r0, #0x33
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ sub r1, #0x14
+ str r1, [r5, #8]
+ add r0, r4, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02215A88: .word 0x000F0E00
+ thumb_func_end MOD56_022159B0
+
+ thumb_func_start MOD56_02215A8C
+MOD56_02215A8C: ; 0x02215A8C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02215AC6
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02215ACC ; =0x02216308
+ ldr r2, _02215AD0 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #0x39
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02215AC6:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02215ACC: .word 0x02216308
+_02215AD0: .word 0x000001D9
+ thumb_func_end MOD56_02215A8C
+
+ thumb_func_start MOD56_02215AD4
+MOD56_02215AD4: ; 0x02215AD4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r6, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ add r4, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02215AFE
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_02215AFE:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02215B0A
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_02215B0A:
+ cmp r4, #0
+ bne _02215B26
+ add r0, r5, #0
+ mov r1, #0x19
+ mov r2, #1
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x3a
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ mov r1, #1
+ add r0, #0x14
+ b _02215B32
+_02215B26:
+ add r0, r5, #0
+ bl MOD56_02216120
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+_02215B32:
+ str r1, [r5, r0]
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD56_02215AD4
+
+ thumb_func_start MOD56_02215B38
+MOD56_02215B38: ; 0x02215B38
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02215B54
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02215B54:
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ cmp r1, #1
+ bne _02215B66
+ mov r1, #0
+ str r1, [r5, r0]
+ bl FUN_020331C4
+_02215B66:
+ bl FUN_02031810
+ cmp r0, #0
+ bne _02215B8C
+ ldr r0, [r5]
+ bl FUN_0202858C
+ add r0, r5, #0
+ mov r1, #0x1a
+ mov r2, #1
+ bl MOD56_02215EA4
+ mov r1, #0x3b
+ lsl r0, r1, #4
+ str r1, [r5, r0]
+ mov r0, #0xf1
+ mov r1, #0x1e
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_02215B8C:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD56_02215B38
+
+ thumb_func_start MOD56_02215B90
+MOD56_02215B90: ; 0x02215B90
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02215BAC
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02215BAC:
+ mov r1, #0xf1
+ lsl r1, r1, #2
+ ldr r0, [r5, r1]
+ sub r0, r0, #1
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ bne _02215BD0
+ add r0, r1, #0
+ mov r2, #8
+ sub r0, #0x10
+ str r2, [r5, r0]
+ mov r0, #0x22
+ sub r1, #0x14
+ str r0, [r5, r1]
+ add r0, r5, #0
+ bl MOD56_02216120
+_02215BD0:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD56_02215B90
+
+ thumb_func_start MOD56_02215BD4
+MOD56_02215BD4: ; 0x02215BD4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r1, #0
+ add r1, r0, #0
+ bl FUN_020334E8
+ mov r0, #0x10
+ bl FUN_020315D8
+ cmp r0, #0
+ bne _02215BF0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02215BF0:
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02215C24
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02215C28 ; =0x02216308
+ ldr r2, _02215C2C ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #0x3d
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02215C24:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02215C28: .word 0x02216308
+_02215C2C: .word 0x000001D9
+ thumb_func_end MOD56_02215BD4
+
+ thumb_func_start MOD56_02215C30
+MOD56_02215C30: ; 0x02215C30
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02215C4C
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02215C4C:
+ bl FUN_02033138
+ cmp r0, #0
+ bne _02215C64
+ bl FUN_02033128
+ cmp r0, #0
+ bne _02215C64
+ bl FUN_0203300C
+ cmp r0, #3
+ blt _02215C84
+_02215C64:
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021EC
+ add r0, r5, #0
+ mov r1, #0x40
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1c
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02215D18
+_02215C84:
+ bl FUN_02033250
+ cmp r0, #0
+ beq _02215CA0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021EC
+ add r0, r5, #0
+ bl MOD56_02213030
+ b _02215D18
+_02215CA0:
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02215CB8
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02215CB8:
+ cmp r0, #0
+ bne _02215CF0
+ add r0, r5, #0
+ mov r1, #0x48
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r1, _02215D1C ; =0x000001E2
+ add r0, r5, r0
+ bl FUN_0200D858
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r1, #0xfb
+ mov r0, #1
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ mov r2, #0x30
+ sub r0, #0x3c
+ str r2, [r5, r0]
+ mov r0, #0x1e
+ sub r1, #0x28
+ str r0, [r5, r1]
+ b _02215D08
+_02215CF0:
+ add r0, r5, #0
+ bl MOD56_02216120
+ bl FUN_0203323C
+ mov r0, #0xf1
+ mov r1, #0x14
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x40
+ sub r0, #0x14
+ str r1, [r5, r0]
+_02215D08:
+ bl FUN_020334DC
+ add r1, r0, #0
+ str r0, [r5, #4]
+ add r1, #0x22
+ ldrb r1, [r1]
+ add r0, #0x21
+ strb r1, [r0]
+_02215D18:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02215D1C: .word 0x000001E2
+ thumb_func_end MOD56_02215C30
+
+ thumb_func_start MOD56_02215D20
+MOD56_02215D20: ; 0x02215D20
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02215D5A
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02215D60 ; =0x02216308
+ ldr r2, _02215D64 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #0x3f
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02215D5A:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02215D60: .word 0x02216308
+_02215D64: .word 0x000001D9
+ thumb_func_end MOD56_02215D20
+
+ thumb_func_start MOD56_02215D68
+MOD56_02215D68: ; 0x02215D68
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0203300C
+ cmp r0, #3
+ blt _02215D96
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021EC
+ add r0, r5, #0
+ mov r1, #0x40
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1c
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02215E6A
+_02215D96:
+ bl FUN_02033250
+ cmp r0, #0
+ beq _02215DB2
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021EC
+ add r0, r5, #0
+ bl MOD56_02213030
+ b _02215E6A
+_02215DB2:
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02215DCA
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02215DCA:
+ cmp r0, #0
+ bne _02215E58
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ ldrh r0, [r5, r0]
+ bl MOD56_02211F10
+ add r6, r0, #0
+ cmp r6, #0x11
+ beq _02215E58
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ ldrh r0, [r5, r0]
+ sub r0, r0, #1
+ bl MOD04_021D8480
+ cmp r0, #6
+ bne _02215E58
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ ldrh r0, [r5, r0]
+ sub r0, r0, #1
+ bl FUN_02032FDC
+ cmp r0, #0
+ beq _02215E58
+ mov r0, #0
+ bl FUN_02031400
+ add r0, r5, #0
+ bl MOD56_022161DC
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD56_0221617C
+ mov r1, #0xfa
+ lsl r1, r1, #2
+ ldrh r1, [r5, r1]
+ add r0, r5, #0
+ sub r1, r1, #1
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r1, _02215E70 ; =0x000001E2
+ add r0, r5, r0
+ bl FUN_0200D858
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ cmp r6, #1
+ beq _02215E4C
+ mov r0, #0x3b
+ mov r1, #0x2c
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02215E4C:
+ mov r0, #0x3b
+ mov r1, #0x15
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02215E58:
+ add r0, r5, #0
+ bl MOD56_02216120
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02215E6A:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02215E70: .word 0x000001E2
+ thumb_func_end MOD56_02215D68
+
+ thumb_func_start MOD56_02215E74
+MOD56_02215E74: ; 0x02215E74
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ bl FUN_02031810
+ cmp r0, #0
+ bne _02215E9C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x36
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r4, #2
+_02215E9C:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02215E74
+
+ thumb_func_start MOD56_02215EA4
+MOD56_02215EA4: ; 0x02215EA4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r4, r1, #0
+ add r6, r2, #0
+ bl LoadPlayerDataAddress
+ bl FUN_02024FF4
+ add r7, r0, #0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02215EE0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_02215EE0:
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02215F04
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_02215F04:
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #8
+ beq _02215F30
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02215F30
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD7C
+ mov r0, #0x5e
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_02215F30:
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, _02215FEC ; =0x0000012D
+ mov r1, #0xcf
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc0
+ lsl r1, r1, #2
+ mov r2, #2
+ ldr r0, [r0]
+ add r1, r5, r1
+ add r3, r2, #0
+ bl FUN_02019064
+ cmp r6, #0
+ beq _02215F70
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xd0
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ add r1, r4, #0
+ bl FUN_0200A8E0
+ b _02215F82
+_02215F70:
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ add r1, r4, #0
+ bl FUN_0200A8E0
+_02215F82:
+ mov r2, #0x57
+ add r0, r5, #0
+ lsl r2, r2, #2
+ add r0, #0xc8
+ ldr r1, [r5, r2]
+ sub r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r2, _02215FF0 ; =0x000001E2
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r0, #1
+ bl FUN_02002B60
+ mov r0, #0
+ bl FUN_02002B7C
+ mov r3, #0
+ str r3, [sp]
+ str r7, [sp, #4]
+ mov r2, #0x57
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ str r3, [sp, #8]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02215FEC: .word 0x0000012D
+_02215FF0: .word 0x000001E2
+ thumb_func_end MOD56_02215EA4
+
+ thumb_func_start MOD56_02215FF4
+MOD56_02215FF4: ; 0x02215FF4
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD56_02216274
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02216024
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_02216024:
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02216048
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_02216048:
+ mov r3, #4
+ str r3, [sp]
+ mov r0, #0x17
+ str r0, [sp, #4]
+ mov r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ mov r0, #0x69
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc0
+ mov r1, #0xdb
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ add r1, r5, r1
+ mov r2, #2
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xd0
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ add r1, r4, #0
+ bl FUN_0200A8E0
+ mov r2, #0x57
+ add r0, r5, #0
+ lsl r2, r2, #2
+ add r0, #0xc8
+ ldr r1, [r5, r2]
+ sub r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ ldr r2, _022160E0 ; =0x000001D9
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ mov r3, #0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ str r3, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ add r2, #0x5d
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_022160E0: .word 0x000001D9
+ thumb_func_end MOD56_02215FF4
+
+ thumb_func_start MOD56_022160E4
+MOD56_022160E4: ; 0x022160E4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0
+ add r6, r1, #0
+ mvn r0, r0
+ cmp r6, r0
+ beq _0221611C
+ mov r0, #0x36
+ bl FUN_02023928
+ add r4, r0, #0
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_0202395C
+ add r5, #0xc8
+ ldr r0, [r5]
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_0200ABC0
+ add r0, r4, #0
+ bl FUN_02016A18
+_0221611C:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_022160E4
+
+ thumb_func_start MOD56_02216120
+MOD56_02216120: ; 0x02216120
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD56_02216274
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #8
+ beq _02216154
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02216154
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD7C
+ mov r0, #0x5e
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_02216154:
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02216178
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_02216178:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02216120
+
+ thumb_func_start MOD56_0221617C
+MOD56_0221617C: ; 0x0221617C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r5, #4]
+ ldrb r0, [r1, #0x1b]
+ cmp r0, r4
+ beq _022161C8
+ add r0, r4, #0
+ strb r4, [r1, #0x1b]
+ bl MOD56_02211EA4
+ cmp r0, #0
+ bne _022161C8
+ cmp r4, #8
+ beq _022161C8
+ cmp r4, #1
+ bne _022161A8
+ mov r0, #0
+ mov r1, #0x1e
+ bl FUN_020053CC
+ b _022161C8
+_022161A8:
+ cmp r4, #0x10
+ bne _022161C8
+ ldr r0, _022161D8 ; =0x00000497
+ mov r1, #0x5a
+ bl FUN_0200488C
+ mov r0, #7
+ mov r1, #0x12
+ mov r2, #0
+ bl FUN_02004828
+ mov r0, #0x7f
+ mov r1, #0x1e
+ mov r2, #1
+ bl FUN_0200538C
+_022161C8:
+ ldr r0, [r5, #4]
+ mov r1, #0x24
+ bl MOD04_021D8478
+ add r0, r5, #0
+ bl MOD56_0221341C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022161D8: .word 0x00000497
+ thumb_func_end MOD56_0221617C
+
+ thumb_func_start MOD56_022161DC
+MOD56_022161DC: ; 0x022161DC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r2, [r4, #4]
+ add r0, r2, #0
+ add r0, #0x21
+ ldrb r1, [r0]
+ mov r0, #1
+ add r2, #0x21
+ sub r0, r0, r1
+ strb r0, [r2]
+ ldr r0, [r4, #4]
+ add r0, #0x21
+ ldrb r0, [r0]
+ bl MOD04_021D8678
+ ldr r0, [r4, #4]
+ mov r1, #0x24
+ bl MOD04_021D8478
+ ldr r0, [r4, #4]
+ add r0, #0x21
+ ldrb r0, [r0]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_022161DC
+
+ thumb_func_start MOD56_0221620C
+MOD56_0221620C: ; 0x0221620C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r2, [r4, #4]
+ add r0, r2, #0
+ add r0, #0x22
+ ldrb r1, [r0]
+ mov r0, #1
+ add r2, #0x22
+ sub r0, r0, r1
+ strb r0, [r2]
+ ldr r1, [r4, #4]
+ add r0, r1, #0
+ add r0, #0x22
+ ldrb r0, [r0]
+ add r1, #0x21
+ strb r0, [r1]
+ ldr r0, [r4, #4]
+ add r0, #0x21
+ ldrb r0, [r0]
+ bl MOD04_021D8678
+ ldr r0, [r4, #4]
+ mov r1, #0x24
+ bl MOD04_021D8478
+ ldr r0, [r4, #4]
+ add r0, #0x22
+ ldrb r0, [r0]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_0221620C
+
+ thumb_func_start MOD56_02216248
+MOD56_02216248: ; 0x02216248
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ add r0, r1, #0
+ add r0, #0x22
+ ldrb r0, [r0]
+ add r1, #0x21
+ strb r0, [r1]
+ ldr r0, [r4, #4]
+ add r0, #0x21
+ ldrb r0, [r0]
+ bl MOD04_021D8678
+ ldr r0, [r4, #4]
+ mov r1, #0x24
+ bl MOD04_021D8478
+ ldr r0, [r4, #4]
+ add r0, #0x22
+ ldrb r0, [r0]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02216248
+
+ thumb_func_start MOD56_02216274
+MOD56_02216274: ; 0x02216274
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _022162DC
+ bl FUN_0200DC24
+ mov r0, #6
+ mov r1, #0
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ sub r0, #8
+ ldr r0, [r4, r0]
+ cmp r0, #8
+ beq _022162B8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _022162B8
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD7C
+ mov r0, #0x5e
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_022162B8:
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _022162DC
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_022162DC:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02216274
+
+ .section .rodata
+ ; 0x022162E0
+ .incbin "baserom.nds", 0x2A5E80, 0x19C
+
+ .section .data
+ ; 0x02216480
+ .incbin "baserom.nds", 0x2A6020, 0x180