summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-05-12 16:28:23 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-05-12 16:28:23 -0400
commit6934e6086bc4c0ab5fcb9e1c278f72e7891db59f (patch)
treee88e52af1aeb5724b1f5ab8a158304187efba406
parent4eca32d1306bfe48303309eb7a87484fc24c152b (diff)
Disassemble module 62
-rw-r--r--arm9/arm9.lcf28
-rw-r--r--arm9/global.inc12
-rw-r--r--arm9/modules/62/asm/module_62.s7543
3 files changed, 7579 insertions, 4 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index 42ea31f6..18126223 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -2479,12 +2479,23 @@ SECTIONS {
SDK_OVERLAY.MODULE_61.BSS_SIZE = SDK_OVERLAY.MODULE_61.BSS_END - SDK_OVERLAY.MODULE_61.BSS_START;
} >> MODULE_61
- .MODULE_62: {
+ .MODULE_62 :
+ {
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY_MODULE_62_ID = 62;
SDK_OVERLAY.MODULE_62.ID = 62;
SDK_OVERLAY.MODULE_62.START = .;
- FILE_2AEC00.o (.text) /* 0x2AAC00 */
+ module_62.o (.text)
+ module_62.o (.rodata)
+ module_62.o (.init)
+ SDK_OVERLAY.MODULE_62.SINIT_START = .;
+ module_62.o (.ctor)
+ module_62.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_62.SINIT_END = .;
+ . = ALIGN(32);
+ module_62.o (.sdata)
+ module_62.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_62.END = .;
SDK_OVERLAY.MODULE_62.SIZE = SDK_OVERLAY.MODULE_62.END - SDK_OVERLAY.MODULE_62.START;
@@ -2494,7 +2505,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_62.BSS_START = .;
- FILE_2AEC00.o (.bss)
+ module_62.o (.bss)
+ module_62.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_62.BSS_END = .;
SDK_OVERLAY.MODULE_62.BSS_SIZE = SDK_OVERLAY.MODULE_62.BSS_END - SDK_OVERLAY.MODULE_62.BSS_START;
@@ -3687,7 +3699,15 @@ SECTIONS {
WRITEW 61;
WRITEW 0;
- OVERLAY_TABLE(MODULE_62, 62)
+ WRITEW 62;
+ WRITEW ADDR(.MODULE_62);
+ WRITEW SDK_OVERLAY.MODULE_62.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_62.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_62.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_62.SINIT_END;
+ WRITEW 62;
+ WRITEW 0;
+
OVERLAY_TABLE(MODULE_63, 63)
OVERLAY_TABLE(MODULE_64, 64)
OVERLAY_TABLE(MODULE_65, 65)
diff --git a/arm9/global.inc b/arm9/global.inc
index e874771d..c4fda40d 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -5588,6 +5588,18 @@
.extern FUN_0201CD38
.extern FUN_020294A8
.extern FUN_0202EEB0
+.extern MOD08_02217E80
+.extern MOD08_02217ECC
+.extern MOD08_02217F08
+.extern MOD08_0222A02C
+.extern FUN_0200C6D8
+.extern FUN_02029CA4
+.extern FUN_02029CF4
+.extern FUN_02029CF8
+.extern FUN_02029D40
+.extern FUN_02029D84
+.extern FUN_02085D9C
+.extern FUN_02085FAC
.extern FUN_02031370
.extern FUN_0200A064
.extern FUN_0200C918
diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s
new file mode 100644
index 00000000..4623b0ae
--- /dev/null
+++ b/arm9/modules/62/asm/module_62.s
@@ -0,0 +1,7543 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD62_0222D5C0
+MOD62_0222D5C0: ; 0x0222D5C0
+ ldr r3, _0222D5C8 ; =HandleLoadOverlay
+ ldr r0, _0222D5CC ; =SDK_OVERLAY_MODULE_08_ID
+ mov r1, #2
+ bx r3
+ .align 2, 0
+_0222D5C8: .word HandleLoadOverlay
+_0222D5CC: .word SDK_OVERLAY_MODULE_08_ID
+ thumb_func_end MOD62_0222D5C0
+
+ thumb_func_start MOD62_0222D5D0
+MOD62_0222D5D0: ; 0x0222D5D0
+ add r3, r2, #0
+ sub r3, #0xa
+ strb r3, [r0]
+ add r3, r1, #0
+ sub r3, #0xa
+ strb r3, [r0, #2]
+ add r2, #0xa
+ strb r2, [r0, #1]
+ add r1, #0xa
+ strb r1, [r0, #3]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD62_0222D5D0
+
+ thumb_func_start MOD62_0222D5E8
+MOD62_0222D5E8: ; 0x0222D5E8
+ mov r1, #0
+ strb r1, [r0]
+ strb r1, [r0, #2]
+ mov r1, #0xc0
+ strb r1, [r0, #1]
+ mov r1, #0xff
+ strb r1, [r0, #3]
+ bx lr
+ thumb_func_end MOD62_0222D5E8
+
+ thumb_func_start MOD62_0222D5F8
+MOD62_0222D5F8: ; 0x0222D5F8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ beq _0222D64C
+ cmp r2, #1
+ bne _0222D628
+ ldr r3, _0222D650 ; =0x021C48F8
+ mov r1, #0x1c
+ mov r2, #0x1e
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, r4, #0
+ bl FUN_0200C714
+ add r1, sp, #0
+ add r0, r4, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r0, r5, #0
+ bl MOD62_0222D5E8
+ pop {r3, r4, r5, pc}
+_0222D628:
+ add r1, sp, #0
+ add r0, r4, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r3, sp, #0
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl MOD62_0222D5D0
+_0222D64C:
+ pop {r3, r4, r5, pc}
+ nop
+_0222D650: .word 0x021C48F8
+ thumb_func_end MOD62_0222D5F8
+
+ thumb_func_start MOD62_0222D654
+MOD62_0222D654: ; 0x0222D654
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ add r7, r4, #0
+ mov r6, #0xcb
+ add r5, r0, #0
+ sub r7, #0x38
+ lsl r6, r6, #2
+_0222D662:
+ ldr r0, [r5, r6]
+ cmp r0, #0
+ beq _0222D670
+ add r1, r7, #0
+ mov r2, #0x10
+ bl FUN_0200C82C
+_0222D670:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #8
+ blt _0222D662
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222D654
+
+ thumb_func_start MOD62_0222D67C
+MOD62_0222D67C: ; 0x0222D67C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r6, #0
+ lsl r0, r0, #3
+ add r0, r7, r0
+ ldr r4, [r0, #8]
+ add r5, r7, #0
+_0222D690:
+ ldrb r1, [r4]
+ cmp r1, #0
+ beq _0222D6CE
+ mov r0, #0xca
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ ldrb r1, [r4, #1]
+ add r0, r0, #1
+ strb r1, [r5, r0]
+ ldrb r1, [r4, #2]
+ ldr r0, _0222D6E8 ; =0x0000032A
+ strb r1, [r5, r0]
+ lsl r1, r6, #0x18
+ add r0, r7, #0
+ lsr r1, r1, #0x18
+ bl MOD62_0222D9A0
+ mov r0, #0x33
+ mov r1, #0xcb
+ lsl r0, r0, #4
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ mov r2, #0
+ bl MOD62_0222D5F8
+ mov r0, #0xc9
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ b _0222D6DA
+_0222D6CE:
+ mov r0, #0xc9
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add r0, r0, #4
+ strb r1, [r5, r0]
+_0222D6DA:
+ add r6, r6, #1
+ add r4, r4, #3
+ add r5, #0x10
+ cmp r6, #8
+ blt _0222D690
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222D6E8: .word 0x0000032A
+ thumb_func_end MOD62_0222D67C
+
+ thumb_func_start MOD62_0222D6EC
+MOD62_0222D6EC: ; 0x0222D6EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ mov r0, #0xc9
+ mov r4, #0
+ add r3, r6, #0
+ lsl r0, r0, #2
+_0222D6FA:
+ ldr r2, [r3, r0]
+ cmp r2, #1
+ beq _0222D75C
+ add r0, r6, r1
+ mov r1, #0x42
+ lsl r1, r1, #4
+ ldrb r3, [r0, r1]
+ lsl r5, r4, #4
+ add r0, r1, #0
+ add r2, r6, r5
+ sub r0, #0xf8
+ strb r3, [r2, r0]
+ add r0, r1, #0
+ sub r0, #0xf7
+ add r7, r6, r0
+ mov r0, #0xbe
+ sub r1, #0xf6
+ strb r0, [r7, r5]
+ add r0, r6, r1
+ mov r1, #0x46
+ strb r1, [r0, r5]
+ str r0, [sp]
+ add r0, sp, #8
+ add r1, sp, #4
+ bl FUN_02020AB0
+ ldr r0, [sp, #8]
+ strb r0, [r7, r5]
+ ldr r1, [sp, #4]
+ ldr r0, [sp]
+ strb r1, [r0, r5]
+ lsl r1, r4, #0x18
+ add r0, r6, #0
+ lsr r1, r1, #0x18
+ bl MOD62_0222D9A0
+ lsl r1, r4, #0x18
+ add r0, r6, #0
+ lsr r1, r1, #0x18
+ bl MOD62_0222D788
+ mov r0, #0xc9
+ mov r2, #1
+ add r1, r6, r5
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ add sp, #0xc
+ add r0, r4, #0
+ pop {r4, r5, r6, r7, pc}
+_0222D75C:
+ add r4, r4, #1
+ add r3, #0x10
+ cmp r4, #8
+ blt _0222D6FA
+ mov r0, #0xff
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222D6EC
+
+ thumb_func_start MOD62_0222D76C
+MOD62_0222D76C: ; 0x0222D76C
+ mov r1, #0xc9
+ mov r3, #0
+ lsl r1, r1, #2
+_0222D772:
+ ldr r2, [r0, r1]
+ cmp r2, #1
+ beq _0222D77C
+ mov r0, #1
+ bx lr
+_0222D77C:
+ add r3, r3, #1
+ add r0, #0x10
+ cmp r3, #8
+ blt _0222D772
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD62_0222D76C
+
+ thumb_func_start MOD62_0222D788
+MOD62_0222D788: ; 0x0222D788
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #0xc9
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+ lsl r7, r7, #2
+_0222D794:
+ ldr r0, [r5, r7]
+ cmp r0, #1
+ bne _0222D7D4
+ cmp r4, r6
+ bne _0222D7AC
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C6C4
+ b _0222D7D4
+_0222D7AC:
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0200C6D8
+ add r1, r0, #0
+ bne _0222D7C8
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r1, #1
+ bl FUN_0200C6C4
+ b _0222D7D4
+_0222D7C8:
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r1, #2
+ bl FUN_0200C6C4
+_0222D7D4:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #8
+ blt _0222D794
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222D788
+
+ thumb_func_start MOD62_0222D7E0
+MOD62_0222D7E0: ; 0x0222D7E0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r1, #0
+ add r1, r0, #0
+ add r1, #0xdc
+ ldr r4, [r1]
+ add r1, r0, #0
+ add r1, #0xe0
+ ldr r5, [r1]
+ mov r1, #0x5b
+ str r1, [sp]
+ add r1, #0xca
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ mov r1, #1
+ str r1, [sp, #0xc]
+ mov r1, #2
+ str r1, [sp, #0x10]
+ ldr r1, _0222D864 ; =0x0000532D
+ add r6, r2, #0
+ str r1, [sp, #0x14]
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #3
+ add r2, r4, #0
+ add r3, r5, #0
+ bl FUN_0200C0DC
+ add r0, r7, #0
+ bl FUN_02085FAC
+ add r3, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0222D868 ; =0x00004E20
+ add r1, r5, #0
+ add r0, r6, r0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r2, #0x5b
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222D86C ; =0x0000564D
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0x5d
+ bl FUN_0200C124
+ mov r3, #1
+ ldr r0, _0222D870 ; =0x000059D9
+ str r3, [sp]
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0x5b
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222D864: .word 0x0000532D
+_0222D868: .word 0x00004E20
+_0222D86C: .word 0x0000564D
+_0222D870: .word 0x000059D9
+ thumb_func_end MOD62_0222D7E0
+
+ thumb_func_start MOD62_0222D874
+MOD62_0222D874: ; 0x0222D874
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x74
+ mov r1, #0x26
+ lsl r1, r1, #4
+ str r0, [sp]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _0222D886
+ b _0222D994
+_0222D886:
+ ldr r0, [sp]
+ mov r7, #0
+ str r7, [r0, r1]
+ add r4, sp, #0x54
+ add r5, sp, #0x34
+ add r6, r0, #0
+_0222D892:
+ mov r0, #0xff
+ str r0, [r4]
+ str r0, [r5]
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _0222D8AA
+ bl FUN_0200C6D8
+ str r0, [r4]
+ str r7, [r5]
+_0222D8AA:
+ add r7, r7, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ add r6, #0x10
+ cmp r7, #8
+ blt _0222D892
+ mov r0, #0
+ mov ip, r0
+_0222D8BA:
+ mov r0, ip
+ mov r3, #7
+ cmp r0, #7
+ bge _0222D8EA
+ add r4, sp, #0x70
+ add r5, sp, #0x50
+_0222D8C6:
+ sub r7, r4, #4
+ ldr r2, [r4]
+ ldr r0, [r7]
+ cmp r0, r2
+ blt _0222D8DE
+ ldr r1, [r5]
+ sub r6, r5, #4
+ str r0, [r4]
+ ldr r0, [r6]
+ str r0, [r5]
+ str r2, [r7]
+ str r1, [r6]
+_0222D8DE:
+ sub r3, r3, #1
+ mov r0, ip
+ sub r4, r4, #4
+ sub r5, r5, #4
+ cmp r3, r0
+ bgt _0222D8C6
+_0222D8EA:
+ mov r0, ip
+ add r0, r0, #1
+ mov ip, r0
+ cmp r0, #7
+ blt _0222D8BA
+ mov r3, #0xca
+ lsl r3, r3, #2
+ ldr r0, [sp]
+ mov r2, #0
+ add r1, sp, #0x1c
+ add r4, r3, #1
+ add r5, r3, #2
+_0222D902:
+ ldrb r6, [r0, r3]
+ add r2, r2, #1
+ strb r6, [r1]
+ ldrb r6, [r0, r4]
+ strb r6, [r1, #1]
+ ldrb r6, [r0, r5]
+ add r0, #0x10
+ strb r6, [r1, #2]
+ add r1, r1, #3
+ cmp r2, #8
+ blt _0222D902
+ add r3, sp, #0x1c
+ add r2, sp, #4
+ mov r1, #0x18
+_0222D91E:
+ ldrb r0, [r3]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _0222D91E
+ ldr r5, [sp]
+ mov r6, #0
+ add r4, sp, #0x34
+ add r7, sp, #4
+_0222D932:
+ ldr r1, [r4]
+ cmp r1, #0xff
+ bne _0222D94A
+ mov r0, #0xca
+ mov r1, #0
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ add r0, r0, #1
+ strb r1, [r5, r0]
+ ldr r0, _0222D998 ; =0x0000032A
+ strb r1, [r5, r0]
+ b _0222D98A
+_0222D94A:
+ lsl r0, r1, #1
+ add r0, r1, r0
+ ldrb r1, [r7, r0]
+ mov r0, #0xca
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ ldr r1, [r4]
+ lsl r0, r1, #1
+ add r0, r1, r0
+ add r0, r7, r0
+ ldrb r1, [r0, #1]
+ ldr r0, _0222D99C ; =0x00000329
+ strb r1, [r5, r0]
+ ldr r1, [r4]
+ lsl r0, r1, #1
+ add r0, r1, r0
+ add r0, r7, r0
+ ldrb r1, [r0, #2]
+ ldr r0, _0222D998 ; =0x0000032A
+ strb r1, [r5, r0]
+ ldr r0, [r4]
+ lsl r1, r0, #4
+ ldr r0, [sp]
+ add r1, r0, r1
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0222D98A
+ add r1, r6, #0
+ bl FUN_0200C6C4
+_0222D98A:
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, #0x10
+ cmp r6, #8
+ blt _0222D932
+_0222D994:
+ add sp, #0x74
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222D998: .word 0x0000032A
+_0222D99C: .word 0x00000329
+ thumb_func_end MOD62_0222D874
+
+ thumb_func_start MOD62_0222D9A0
+MOD62_0222D9A0: ; 0x0222D9A0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r1, #0
+ add r1, r0, #0
+ add r1, #0xdc
+ ldr r7, [r1]
+ add r1, r0, #0
+ add r1, #0xe0
+ ldr r6, [r1]
+ mov r1, #0xc9
+ lsl r1, r1, #2
+ add r2, r0, r1
+ lsl r1, r5, #4
+ add r4, r2, r1
+ ldr r1, [r2, r1]
+ cmp r1, #1
+ bne _0222D9CC
+ bl ErrorHandling
+ add sp, #0x34
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0222D9CC:
+ ldrb r1, [r4, #4]
+ add r2, r5, #0
+ bl MOD62_0222D7E0
+ ldrb r1, [r4, #5]
+ add r0, sp, #0
+ strh r1, [r0]
+ ldrb r1, [r4, #6]
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ strh r1, [r0, #6]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x2c]
+ sub r0, r0, #2
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x30]
+ str r1, [sp, #8]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ ldrb r0, [r4, #4]
+ bl FUN_02085FAC
+ ldr r0, _0222DA28 ; =0x00004E20
+ add r1, r6, #0
+ add r0, r5, r0
+ str r0, [sp, #0x14]
+ ldr r0, _0222DA2C ; =0x0000532D
+ add r2, sp, #0
+ str r0, [sp, #0x18]
+ ldr r0, _0222DA30 ; =0x0000564D
+ str r0, [sp, #0x1c]
+ ldr r0, _0222DA34 ; =0x000059D9
+ str r0, [sp, #0x20]
+ add r0, r7, #0
+ bl FUN_0200C154
+ str r0, [r4, #8]
+ bl FUN_0200C5A8
+ mov r0, #1
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222DA28: .word 0x00004E20
+_0222DA2C: .word 0x0000532D
+_0222DA30: .word 0x0000564D
+_0222DA34: .word 0x000059D9
+ thumb_func_end MOD62_0222D9A0
+
+ thumb_func_start MOD62_0222DA38
+MOD62_0222DA38: ; 0x0222DA38
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r2, #0
+ add r6, r1, #0
+ mov r1, #0xc9
+ add r4, r0, #0
+ lsl r7, r5, #4
+ add r3, r4, r7
+ lsl r1, r1, #2
+ ldr r2, [r3, r1]
+ cmp r2, #0
+ bne _0222DA52
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222DA52:
+ cmp r6, #3
+ bhi _0222DAE2
+ add r2, r6, r6
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0222DA62: ; jump table
+ .short _0222DA6A - _0222DA62 - 2 ; case 0
+ .short _0222DAAA - _0222DA62 - 2 ; case 1
+ .short _0222DA80 - _0222DA62 - 2 ; case 2
+ .short _0222DAAA - _0222DA62 - 2 ; case 3
+_0222DA6A:
+ add r1, r4, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ cmp r1, #0xff
+ bne _0222DAE6
+ add r4, #0xd4
+ add r1, r5, #0
+ str r5, [r4]
+ bl MOD62_0222D788
+ b _0222DAE6
+_0222DA80:
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, r5
+ bne _0222DAE6
+ add r0, r1, #0
+ add r0, #0xc
+ add r1, #8
+ ldr r0, [r3, r0]
+ ldr r1, [r3, r1]
+ mov r2, #1
+ bl MOD62_0222D5F8
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD62_0222DBCC
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD62_0222DC48
+ b _0222DAE6
+_0222DAAA:
+ add r1, r4, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ cmp r1, #0xff
+ bne _0222DAE6
+ add r1, r5, #0
+ bl MOD62_0222DB38
+ mov r1, #0x33
+ add r2, r4, r7
+ lsl r1, r1, #4
+ add r6, r0, #0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ mov r2, #0
+ bl MOD62_0222D5F8
+ cmp r6, #0
+ bne _0222DADA
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD62_0222DB78
+_0222DADA:
+ mov r0, #0xff
+ add r4, #0xd4
+ str r0, [r4]
+ b _0222DAE6
+_0222DAE2:
+ bl ErrorHandling
+_0222DAE6:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222DA38
+
+ thumb_func_start MOD62_0222DAEC
+MOD62_0222DAEC: ; 0x0222DAEC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r7, #0xc9
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_0222DAF8:
+ ldr r0, [r5, r7]
+ cmp r0, #1
+ bne _0222DB06
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD62_0222DB78
+_0222DB06:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #8
+ blt _0222DAF8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222DAEC
+
+ thumb_func_start MOD62_0222DB10
+MOD62_0222DB10: ; 0x0222DB10
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #0xc9
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+ lsl r7, r7, #2
+_0222DB1C:
+ ldr r0, [r5, r7]
+ cmp r0, #1
+ bne _0222DB2E
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_0200C644
+_0222DB2E:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #8
+ blt _0222DB1C
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222DB10
+
+ thumb_func_start MOD62_0222DB38
+MOD62_0222DB38: ; 0x0222DB38
+ push {r3, lr}
+ lsl r1, r1, #4
+ add r2, r0, r1
+ mov r0, #0xc9
+ lsl r0, r0, #2
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _0222DB4C
+ mov r0, #1
+ pop {r3, pc}
+_0222DB4C:
+ add r0, #8
+ ldr r0, [r2, r0]
+ add r1, sp, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r2, sp, #0
+ mov r0, #2
+ mov r1, #0
+ ldrsh r0, [r2, r0]
+ ldrsh r1, [r2, r1]
+ mov r2, #0xbe
+ mov r3, #0x46
+ bl MOD08_0222A02C
+ cmp r0, #0x3c
+ bgt _0222DB74
+ mov r0, #1
+ pop {r3, pc}
+_0222DB74:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD62_0222DB38
+
+ thumb_func_start MOD62_0222DB78
+MOD62_0222DB78: ; 0x0222DB78
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0xca
+ add r7, r1, #0
+ lsl r0, r0, #2
+ lsl r4, r7, #4
+ add r6, r5, r0
+ ldrb r0, [r6, r4]
+ bl FUN_02085FAC
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r1, _0222DBC8 ; =0x00004E20
+ ldr r0, [r0]
+ add r1, r7, r1
+ bl FUN_0200C358
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ add r7, r5, r0
+ ldr r0, [r7, r4]
+ bl FUN_0200C3DC
+ mov r1, #0
+ mov r2, #0xc9
+ lsl r2, r2, #2
+ str r1, [r7, r4]
+ add r3, r5, r4
+ str r1, [r3, r2]
+ strb r1, [r6, r4]
+ add r0, r2, #5
+ strb r1, [r3, r0]
+ add r0, r2, #6
+ add r2, #0xc
+ strb r1, [r3, r0]
+ ldr r0, [r3, r2]
+ add r2, r1, #0
+ bl MOD62_0222D5D0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222DBC8: .word 0x00004E20
+ thumb_func_end MOD62_0222DB78
+
+ thumb_func_start MOD62_0222DBCC
+MOD62_0222DBCC: ; 0x0222DBCC
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ bl MOD62_0222DB38
+ cmp r0, #0
+ bne _0222DBEC
+ lsl r0, r5, #4
+ add r1, r4, r0
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_0200C90C
+ pop {r3, r4, r5, pc}
+_0222DBEC:
+ lsl r0, r5, #4
+ add r1, r4, r0
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_0200C90C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222DBCC
+
+ thumb_func_start MOD62_0222DC00
+MOD62_0222DC00: ; 0x0222DC00
+ push {r4, r5, r6, r7}
+ mov r2, #0xf1
+ lsl r2, r2, #2
+ ldr r2, [r0, r2]
+ ldr r4, _0222DC44 ; =0x00000329
+ lsl r2, r2, #3
+ add r2, r0, r2
+ ldr r2, [r2, #8]
+ mov r1, #0
+ add r3, r4, #1
+ sub r5, r4, #1
+_0222DC16:
+ ldrb r7, [r0, r5]
+ ldrb r6, [r2]
+ cmp r7, r6
+ bne _0222DC2E
+ ldrb r7, [r0, r4]
+ ldrb r6, [r2, #1]
+ cmp r7, r6
+ bne _0222DC2E
+ ldrb r7, [r0, r3]
+ ldrb r6, [r2, #2]
+ cmp r7, r6
+ beq _0222DC34
+_0222DC2E:
+ mov r0, #1
+ pop {r4, r5, r6, r7}
+ bx lr
+_0222DC34:
+ add r1, r1, #1
+ add r2, r2, #3
+ add r0, #0x10
+ cmp r1, #8
+ blt _0222DC16
+ mov r0, #0
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_0222DC44: .word 0x00000329
+ thumb_func_end MOD62_0222DC00
+
+ thumb_func_start MOD62_0222DC48
+MOD62_0222DC48: ; 0x0222DC48
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r4, r1, #4
+ mov r0, #0xcb
+ add r1, r5, r4
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r1, sp, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r2, sp, #0
+ mov r0, #2
+ ldrsh r1, [r2, r0]
+ ldr r0, _0222DC78 ; =0x00000329
+ add r3, r5, r4
+ strb r1, [r3, r0]
+ mov r1, #0
+ ldrsh r1, [r2, r1]
+ add r0, r0, #1
+ strb r1, [r3, r0]
+ pop {r3, r4, r5, pc}
+ nop
+_0222DC78: .word 0x00000329
+ thumb_func_end MOD62_0222DC48
+
+ thumb_func_start MOD62_0222DC7C
+MOD62_0222DC7C: ; 0x0222DC7C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ mov r3, #0xca
+ add r7, r0, #0
+ lsl r3, r3, #2
+ mov r0, #0
+ add r1, r7, #0
+ add r2, sp, #0
+ add r4, r3, #1
+ add r5, r3, #2
+_0222DC90:
+ ldrb r6, [r1, r3]
+ add r0, r0, #1
+ strb r6, [r2]
+ ldrb r6, [r1, r4]
+ strb r6, [r2, #1]
+ ldrb r6, [r1, r5]
+ add r1, #0x10
+ strb r6, [r2, #2]
+ add r2, r2, #3
+ cmp r0, #8
+ blt _0222DC90
+ ldr r0, [r7]
+ mov r2, #0xf1
+ lsl r2, r2, #2
+ ldr r0, [r0, #0x20]
+ ldr r2, [r7, r2]
+ add r1, sp, #0
+ bl FUN_02029CA4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222DC7C
+
+ thumb_func_start MOD62_0222DCBC
+MOD62_0222DCBC: ; 0x0222DCBC
+ push {r3, r4, r5, r6}
+ mov r3, #0xca
+ lsl r3, r3, #2
+ mov r2, #0
+ add r4, r3, #1
+ add r5, r3, #2
+_0222DCC8:
+ ldrb r6, [r1, r3]
+ add r2, r2, #1
+ strb r6, [r0]
+ ldrb r6, [r1, r4]
+ strb r6, [r0, #1]
+ ldrb r6, [r1, r5]
+ add r1, #0x10
+ strb r6, [r0, #2]
+ add r0, r0, #3
+ cmp r2, #8
+ blt _0222DCC8
+ pop {r3, r4, r5, r6}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD62_0222DCBC
+
+ thumb_func_start MOD62_0222DCE4
+MOD62_0222DCE4: ; 0x0222DCE4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r0, r1, #0
+ add r1, sp, #0
+ add r4, r2, #0
+ add r1, #2
+ add r2, sp, #0
+ add r6, r3, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ sub r2, r2, r6
+ strb r2, [r5]
+ ldrsh r0, [r1, r0]
+ add r0, r0, r6
+ strb r0, [r5, #1]
+ mov r0, #2
+ ldrsh r2, [r1, r0]
+ sub r2, r2, r4
+ strb r2, [r5, #2]
+ ldrsh r0, [r1, r0]
+ add r0, r0, r4
+ strb r0, [r5, #3]
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD62_0222DCE4
+
+ thumb_func_start MOD62_0222DD1C
+MOD62_0222DD1C: ; 0x0222DD1C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #2
+ mov r1, #0x35
+ bl FUN_02011744
+ mov r1, #0x8d
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #2
+ mov r1, #0x35
+ bl FUN_02002C50
+ pop {r4, pc}
+ thumb_func_end MOD62_0222DD1C
+
+ thumb_func_start MOD62_0222DD38
+MOD62_0222DD38: ; 0x0222DD38
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #2
+ bl FUN_02002CF8
+ mov r0, #0x8e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02011870
+ mov r0, #9
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl FUN_0201D5E8
+ mov r0, #0x8f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02011870
+ mov r0, #0x93
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_0201D5E8
+ mov r0, #0x8d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_020117BC
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222DD38
+
+ thumb_func_start MOD62_0222DD78
+MOD62_0222DD78: ; 0x0222DD78
+ push {r3, lr}
+ sub sp, #0x18
+ add r3, r0, #0
+ mov r0, #0xe
+ str r0, [sp]
+ mov r0, #7
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, _0222DDB0 ; =0x00007530
+ add r2, r3, #0
+ str r0, [sp, #0x14]
+ add r0, r3, #0
+ add r0, #0xe8
+ add r2, #0xdc
+ add r3, #0xe0
+ ldr r0, [r0]
+ ldr r2, [r2]
+ ldr r3, [r3]
+ mov r1, #3
+ bl FUN_0200C0DC
+ add sp, #0x18
+ pop {r3, pc}
+ .align 2, 0
+_0222DDB0: .word 0x00007530
+ thumb_func_end MOD62_0222DD78
+
+ thumb_func_start MOD62_0222DDB4
+MOD62_0222DDB4: ; 0x0222DDB4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl MOD62_0222DD78
+ mov r1, #0
+ add r0, r4, #0
+ mov r2, #0x4e
+ mov r3, #0xa5
+ str r1, [sp]
+ bl MOD62_0222DE00
+ mov r0, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xac
+ mov r3, #0xa5
+ bl MOD62_0222DE00
+ add sp, #4
+ pop {r3, r4, pc}
+ thumb_func_end MOD62_0222DDB4
+
+ thumb_func_start MOD62_0222DDE0
+MOD62_0222DDE0: ; 0x0222DDE0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x8e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_020119D0
+ mov r0, #0x8f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_020119D0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222DDE0
+
+ thumb_func_start MOD62_0222DE00
+MOD62_0222DE00: ; 0x0222DE00
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ add r5, r0, #0
+ add r4, r1, #0
+ str r2, [sp, #0x10]
+ add r7, r3, #0
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #8
+ mov r3, #0x35
+ bl FUN_0200A86C
+ add r1, r4, #5
+ str r0, [sp, #0x14]
+ bl FUN_0200A914
+ str r0, [sp, #0x18]
+ add r0, sp, #0x1c
+ bl FUN_0201901C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r1, sp, #0x1c
+ mov r2, #0xa
+ mov r3, #2
+ bl FUN_020190EC
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0222DEF0 ; =0x000F0D02
+ ldr r2, [sp, #0x18]
+ str r0, [sp, #8]
+ add r0, sp, #0x1c
+ mov r1, #2
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, sp, #0x1c
+ mov r1, #2
+ mov r2, #0x35
+ bl FUN_02011898
+ mov r3, #9
+ lsl r3, r3, #6
+ mov r1, #0xc
+ add r6, r4, #0
+ mul r6, r1
+ add r3, r5, r3
+ mov r1, #1
+ mov r2, #2
+ add r3, r3, r6
+ bl FUN_0201D568
+ mov r0, #0x8d
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x1c
+ str r0, [sp, #0x30]
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ bl FUN_0200CA40
+ str r0, [sp, #0x34]
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ ldr r1, _0222DEF4 ; =0x00007530
+ bl FUN_0200C334
+ str r0, [sp, #0x38]
+ mov r0, #0
+ mov r1, #0x91
+ str r0, [sp, #0x3c]
+ add r0, r5, r6
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x10]
+ add r7, #0xc0
+ str r0, [sp, #0x44]
+ mov r0, #1
+ str r0, [sp, #0x4c]
+ mov r0, #0x28
+ str r0, [sp, #0x50]
+ mov r0, #2
+ str r0, [sp, #0x54]
+ mov r0, #0x35
+ sub r1, #0xc
+ str r0, [sp, #0x58]
+ str r7, [sp, #0x48]
+ add r5, r5, r1
+ lsl r4, r4, #2
+ add r0, sp, #0x2c
+ bl FUN_020117E8
+ str r0, [r5, r4]
+ ldr r0, [r5, r4]
+ ldr r1, [sp, #0x70]
+ bl FUN_02011AC0
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x14]
+ bl FUN_0200A8B8
+ add r0, sp, #0x1c
+ bl FUN_02019178
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222DEF0: .word 0x000F0D02
+_0222DEF4: .word 0x00007530
+ thumb_func_end MOD62_0222DE00
+
+ thumb_func_start MOD62_0222DEF8
+MOD62_0222DEF8: ; 0x0222DEF8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r6, #0
+ add r5, r0, #0
+ mov r0, #0x42
+ add r3, r1, #0
+ add r7, r6, #0
+ add r2, r6, #0
+ add r4, r6, #0
+ lsl r0, r0, #4
+_0222DF0C:
+ add r1, r5, r2
+ add r2, r2, #1
+ strb r4, [r1, r0]
+ cmp r2, #8
+ blt _0222DF0C
+ lsl r0, r3, #3
+ str r0, [sp, #4]
+ add r0, r5, #0
+ str r0, [sp]
+ add r0, #0x68
+ str r0, [sp]
+_0222DF22:
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl FUN_02029CF8
+ add r1, r5, r4
+ add r1, #0x80
+ ldrb r1, [r1]
+ cmp r1, #0
+ bne _0222DF38
+ cmp r0, #1
+ bne _0222DF50
+_0222DF38:
+ ldr r0, [sp, #4]
+ add r7, r7, #1
+ cmp r7, r0
+ ble _0222DF50
+ mov r0, #0x42
+ add r1, r5, r6
+ add r2, r4, #1
+ lsl r0, r0, #4
+ add r6, r6, #1
+ strb r2, [r1, r0]
+ cmp r6, #8
+ bge _0222DF56
+_0222DF50:
+ add r4, r4, #1
+ cmp r4, #0x51
+ blt _0222DF22
+_0222DF56:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222DEF8
+
+ thumb_func_start MOD62_0222DF5C
+MOD62_0222DF5C: ; 0x0222DF5C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r7, r0, #0
+ add r0, #0xdc
+ ldr r6, [r0]
+ add r0, r7, #0
+ add r0, #0xe0
+ ldr r5, [r0]
+ add r0, r7, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r4, #0
+ str r0, [sp, #0x18]
+_0222DF76:
+ mov r0, #0x42
+ add r1, r7, r4
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ bl FUN_02085FAC
+ add r3, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0222DFF4 ; =0x000061A8
+ add r1, r5, #0
+ add r0, r4, r0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ mov r2, #0x5b
+ bl FUN_0200C00C
+ add r4, r4, #1
+ cmp r4, #8
+ blt _0222DF76
+ mov r0, #0x5b
+ str r0, [sp]
+ add r0, #0xca
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, _0222DFF8 ; =0x000066B4
+ mov r1, #3
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ add r2, r6, #0
+ add r3, r5, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222DFFC ; =0x00006A2C
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x5b
+ mov r3, #0xb4
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222E000 ; =0x00006DB8
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x5b
+ mov r3, #0x58
+ bl FUN_0200C13C
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222DFF4: .word 0x000061A8
+_0222DFF8: .word 0x000066B4
+_0222DFFC: .word 0x00006A2C
+_0222E000: .word 0x00006DB8
+ thumb_func_end MOD62_0222DF5C
+
+ thumb_func_start MOD62_0222E004
+MOD62_0222E004: ; 0x0222E004
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ add r5, r0, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ mov r4, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r7, [r0]
+ add r0, sp, #4
+ strh r4, [r0, #0x20]
+ strh r4, [r0, #0x22]
+ strh r4, [r0, #0x24]
+ strh r4, [r0, #0x26]
+ mov r0, #0x3c
+ str r0, [sp, #0x2c]
+ mov r0, #2
+ str r0, [sp, #0x34]
+ mov r0, #1
+ str r0, [sp, #0x50]
+ sub r0, r0, #2
+ str r0, [sp, #0x48]
+ str r0, [sp, #0x4c]
+ ldr r0, _0222E0B4 ; =0x000066B4
+ str r4, [sp, #0x54]
+ str r0, [sp, #0x3c]
+ ldr r0, _0222E0B8 ; =0x00006A2C
+ str r4, [sp, #0x30]
+ str r0, [sp, #0x40]
+ ldr r0, _0222E0BC ; =0x00006DB8
+ str r0, [sp, #0x44]
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ add r6, r5, r0
+_0222E04A:
+ ldr r0, _0222E0C0 ; =0x000061A8
+ add r1, r7, #0
+ add r0, r4, r0
+ str r0, [sp, #0x38]
+ ldr r0, [sp]
+ add r2, sp, #0x24
+ bl FUN_0200C154
+ add r4, r4, #1
+ stmia r6!, {r0}
+ cmp r4, #8
+ blt _0222E04A
+ ldr r3, _0222E0C4 ; =0x02231158
+ add r2, sp, #4
+ mov r1, #0x10
+_0222E068:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _0222E068
+ mov r7, #0xf9
+ mov r6, #0
+ add r4, sp, #4
+ lsl r7, r7, #2
+_0222E07C:
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ mov r0, #0xf9
+ mov r1, #0
+ lsl r0, r0, #2
+ sub r2, r2, #1
+ lsl r2, r2, #0x10
+ ldrsh r1, [r4, r1]
+ ldr r0, [r5, r0]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0200C5A8
+ ldr r0, [r5, r7]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r6, #8
+ blt _0222E07C
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E0B4: .word 0x000066B4
+_0222E0B8: .word 0x00006A2C
+_0222E0BC: .word 0x00006DB8
+_0222E0C0: .word 0x000061A8
+_0222E0C4: .word 0x02231158
+ thumb_func_end MOD62_0222E004
+
+ thumb_func_start MOD62_0222E0C8
+MOD62_0222E0C8: ; 0x0222E0C8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r7, #0xf9
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_0222E0D4:
+ add r0, r6, #0
+ add r0, #0xe0
+ ldr r1, _0222E0F4 ; =0x000061A8
+ ldr r0, [r0]
+ add r1, r4, r1
+ bl FUN_0200C358
+ ldr r0, [r5, r7]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #8
+ blt _0222E0D4
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E0F4: .word 0x000061A8
+ thumb_func_end MOD62_0222E0C8
+
+ thumb_func_start MOD62_0222E0F8
+MOD62_0222E0F8: ; 0x0222E0F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r1, #0
+ mov r4, #0
+ str r0, [sp]
+ str r4, [sp, #4]
+ add r5, r7, #0
+ add r6, r7, #0
+_0222E108:
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ beq _0222E120
+ add r0, r6, #0
+ bl MOD08_02217F08
+ cmp r0, #1
+ bne _0222E120
+ mov r0, #1
+ str r0, [sp, #4]
+_0222E120:
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0x24
+ cmp r4, #8
+ blt _0222E108
+ mov r0, #0x12
+ lsl r0, r0, #4
+ add r0, r7, r0
+ bl MOD08_02217ECC
+ cmp r0, #1
+ bne _0222E160
+ mov r3, #0x59
+ mov r0, #1
+ lsl r3, r3, #2
+ str r0, [sp, #4]
+ ldr r0, [r7, r3]
+ sub r3, #0x44
+ ldrsh r3, [r7, r3]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0x59
+ lsl r3, r3, #2
+ ldr r0, [r7, r3]
+ sub r3, #0x42
+ ldrsh r3, [r7, r3]
+ mov r1, #5
+ mov r2, #3
+ bl FUN_020179E0
+_0222E160:
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _0222E17C
+ mov r0, #0x5b
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0
+ str r1, [r0]
+ add r0, r7, #0
+ bl FUN_02016A18
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_0222E17C:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222E0F8
+
+ thumb_func_start MOD62_0222E180
+MOD62_0222E180: ; 0x0222E180
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r1, [sp, #0xc]
+ mov r1, #0x17
+ str r0, [sp, #8]
+ mov r0, #0x35
+ lsl r1, r1, #4
+ str r2, [sp, #0x10]
+ bl FUN_02016998
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #8]
+ mov r1, #0x59
+ add r0, #0xe4
+ ldr r2, [r0]
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ add r4, r0, #0
+ add r5, r0, #0
+ ldr r0, [sp, #0xc]
+ mov r1, #0x38
+ lsl r0, r0, #4
+ neg r0, r0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0xc]
+ ldr r6, [sp, #8]
+ mul r1, r0
+ ldr r0, [sp, #0x10]
+ mov r7, #0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x20]
+_0222E1C4:
+ mov r0, #0xc9
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ bne _0222E1D8
+ mov r0, #0x51
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _0222E22E
+_0222E1D8:
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r1, [r6, r0]
+ mov r0, #0x51
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r1, sp, #0x24
+ ldr r0, [r4, r0]
+ add r1, #2
+ add r2, sp, #0x24
+ bl FUN_0200C7A0
+ add r1, sp, #0x24
+ mov r0, #0
+ ldrsh r3, [r1, r0]
+ mov r0, #2
+ ldrsh r1, [r1, r0]
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ str r0, [sp, #4]
+ add r0, r5, #0
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r1, #0x51
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add r0, r5, #0
+ bl MOD08_02217F08
+ mov r1, #0x51
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add r0, r5, #0
+ bl MOD08_02217F08
+_0222E22E:
+ add r7, r7, #1
+ add r6, #0x10
+ add r4, r4, #4
+ add r5, #0x24
+ cmp r7, #8
+ blt _0222E1C4
+ mov r1, #0x59
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #5
+ bl FUN_02017B48
+ add r4, r0, #0
+ mov r1, #0x59
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #5
+ bl FUN_02017B54
+ add r3, r0, #0
+ ldr r0, [sp, #0xc]
+ mov r5, #0x37
+ lsl r0, r0, #4
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [sp, #0x10]
+ mov r1, #0x12
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ lsl r3, r3, #0x10
+ ldr r2, [sp, #0xc]
+ mvn r5, r5
+ mul r5, r2
+ add r2, r4, r5
+ lsl r2, r2, #0x10
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #4
+ add r0, r0, r1
+ lsl r1, r4, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ mov r2, #0x96
+ lsl r2, r2, #2
+ ldr r0, [sp, #8]
+ add r1, r2, #0
+ add r3, r0, r2
+ ldr r0, [sp, #0x1c]
+ sub r1, #0xec
+ str r3, [r0, r1]
+ sub r2, #0xec
+ ldr r0, [r0, r2]
+ mov r3, #1
+ str r3, [r0]
+ ldr r0, _0222E2B8 ; =MOD62_0222E0F8
+ ldr r1, [sp, #0x1c]
+ lsl r2, r3, #0xc
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E2B8: .word MOD62_0222E0F8
+ thumb_func_end MOD62_0222E180
+
+ thumb_func_start MOD62_0222E2BC
+MOD62_0222E2BC: ; 0x0222E2BC
+ push {r3, lr}
+ sub sp, #8
+ mov r2, #2
+ mov r1, #0
+ ldr r0, _0222E2D8 ; =MOD62_0222E2DC
+ str r2, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x35
+ add r3, r1, #0
+ bl FUN_02022318
+ add sp, #8
+ pop {r3, pc}
+ nop
+_0222E2D8: .word MOD62_0222E2DC
+ thumb_func_end MOD62_0222E2BC
+
+ thumb_func_start MOD62_0222E2DC
+MOD62_0222E2DC: ; 0x0222E2DC
+ push {r3, lr}
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r0, _0222E348 ; =0x04000008
+ mov r1, #3
+ ldrh r2, [r0]
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ strh r1, [r0]
+ add r0, #0x58
+ ldrh r2, [r0]
+ ldr r1, _0222E34C ; =0xFFFFCFFD
+ and r2, r1
+ strh r2, [r0]
+ add r2, r1, #2
+ ldrh r3, [r0]
+ add r1, r1, #2
+ and r3, r2
+ mov r2, #0x10
+ orr r2, r3
+ strh r2, [r0]
+ ldrh r3, [r0]
+ ldr r2, _0222E350 ; =0x0000CFFB
+ and r3, r2
+ strh r3, [r0]
+ ldrh r3, [r0]
+ sub r2, #0x1c
+ and r3, r1
+ mov r1, #8
+ orr r1, r3
+ strh r1, [r0]
+ ldrh r1, [r0]
+ and r1, r2
+ strh r1, [r0]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl G3X_SetFog
+ mov r0, #0
+ ldr r2, _0222E354 ; =0x00007FFF
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _0222E358 ; =0xBFFF0000
+ ldr r0, _0222E35C ; =0x04000580
+ str r1, [r0]
+ pop {r3, pc}
+ .align 2, 0
+_0222E348: .word 0x04000008
+_0222E34C: .word 0xFFFFCFFD
+_0222E350: .word 0x0000CFFB
+_0222E354: .word 0x00007FFF
+_0222E358: .word 0xBFFF0000
+_0222E35C: .word 0x04000580
+ thumb_func_end MOD62_0222E2DC
+
+ thumb_func_start MOD62_0222E360
+MOD62_0222E360: ; 0x0222E360
+ push {r3, r4, r5, lr}
+ ldr r3, _0222E398 ; =0x021064B8
+ mov r0, #2
+ mov r1, #0
+ ldr r3, [r3]
+ lsl r0, r0, #0xe
+ add r2, r1, #0
+ blx r3
+ ldr r3, _0222E39C ; =0x021064C0
+ mov r1, #0
+ add r4, r0, #0
+ ldr r3, [r3]
+ mov r0, #0x80
+ add r2, r1, #0
+ blx r3
+ add r5, r0, #0
+ cmp r4, #0
+ bne _0222E388
+ bl ErrorHandling
+_0222E388:
+ cmp r5, #0
+ bne _0222E390
+ bl ErrorHandling
+_0222E390:
+ bl FUN_02012CC8
+ pop {r3, r4, r5, pc}
+ nop
+_0222E398: .word 0x021064B8
+_0222E39C: .word 0x021064C0
+ thumb_func_end MOD62_0222E360
+
+ thumb_func_start MOD62_0222E3A0
+MOD62_0222E3A0: ; 0x0222E3A0
+ push {r3, lr}
+ bl FUN_020222AC
+ bl FUN_02013364
+ cmp r0, #0
+ ble _0222E3B6
+ bl FUN_020222AC
+ bl FUN_020B02C8
+_0222E3B6:
+ bl FUN_02013388
+ mov r0, #1
+ mov r1, #0
+ bl FUN_020222B4
+ pop {r3, pc}
+ thumb_func_end MOD62_0222E3A0
+
+ thumb_func_start MOD62_0222E3C4
+MOD62_0222E3C4: ; 0x0222E3C4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ str r1, [sp, #0x18]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x58]
+ add r0, r3, #0
+ add r6, r2, #0
+ str r3, [sp, #0x1c]
+ bl MOD62_0222F89C
+ cmp r0, #3
+ bhi _0222E442
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222E3E8: ; jump table
+ .short _0222E3F0 - _0222E3E8 - 2 ; case 0
+ .short _0222E402 - _0222E3E8 - 2 ; case 1
+ .short _0222E418 - _0222E3E8 - 2 ; case 2
+ .short _0222E42E - _0222E3E8 - 2 ; case 3
+_0222E3F0:
+ mov r0, #0
+ str r0, [sp, #0x24]
+ mov r0, #4
+ str r0, [sp, #0x28]
+ mov r0, #1
+ mov r5, #0xd
+ mov r4, #6
+ str r0, [sp, #0x2c]
+ b _0222E442
+_0222E402:
+ mov r0, #2
+ str r0, [sp, #0x24]
+ mov r0, #0
+ str r0, [sp, #0x28]
+ mov r0, #4
+ str r0, [sp, #0x2c]
+ mov r0, #1
+ mov r5, #0xb
+ mov r4, #8
+ str r0, [sp, #0x30]
+ b _0222E442
+_0222E418:
+ mov r0, #3
+ str r0, [sp, #0x24]
+ mov r0, #0
+ str r0, [sp, #0x28]
+ mov r0, #4
+ str r0, [sp, #0x2c]
+ mov r0, #1
+ mov r5, #0xb
+ mov r4, #8
+ str r0, [sp, #0x30]
+ b _0222E442
+_0222E42E:
+ mov r0, #2
+ str r0, [sp, #0x24]
+ mov r0, #0
+ str r0, [sp, #0x28]
+ mov r0, #4
+ str r0, [sp, #0x2c]
+ mov r0, #1
+ mov r5, #0xb
+ mov r4, #8
+ str r0, [sp, #0x30]
+_0222E442:
+ lsr r0, r4, #0x1f
+ add r0, r4, r0
+ asr r7, r0, #1
+ ldr r0, [sp, #0x18]
+ bl FUN_0201901C
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xe
+ str r0, [sp, #0xc]
+ mov r0, #0xa6
+ str r0, [sp, #0x10]
+ lsl r2, r6, #0x18
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ lsr r2, r2, #0x18
+ mov r3, #0x15
+ bl FUN_02019064
+ add r0, r7, #0
+ mov r1, #0x35
+ bl FUN_02012838
+ mov r2, #0x67
+ ldr r1, [sp, #0x1c]
+ lsl r2, r2, #2
+ str r0, [r1, r2]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #8
+ mov r3, #0x35
+ bl FUN_0200A86C
+ mov r6, #0
+ str r0, [sp, #0x20]
+ cmp r7, #0
+ ble _0222E4D0
+ add r5, sp, #0x24
+_0222E49A:
+ ldr r1, [r5]
+ ldr r0, [sp, #0x20]
+ lsl r2, r1, #3
+ ldr r1, _0222E538 ; =0x02231358
+ ldr r1, [r1, r2]
+ bl FUN_0200A914
+ ldr r2, [r5]
+ add r4, r0, #0
+ lsl r3, r2, #3
+ ldr r2, _0222E538 ; =0x02231358
+ mov r0, #0x67
+ add r2, r2, r3
+ ldr r1, [sp, #0x1c]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ ldr r2, [r2, #4]
+ add r1, r4, #0
+ bl FUN_020128A0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r7
+ blt _0222E49A
+_0222E4D0:
+ ldr r0, [sp, #0x20]
+ bl FUN_0200A8B8
+ mov r1, #0x67
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #0
+ str r0, [sp, #0x34]
+ add r0, sp, #0x24
+ strb r1, [r0, #0x18]
+ ldr r1, [sp, #0x18]
+ mov r2, #0xf
+ str r1, [sp, #0x38]
+ mov r1, #1
+ strb r1, [r0, #0x19]
+ strb r7, [r0, #0x1a]
+ ldrb r3, [r0, #0x1b]
+ bic r3, r2
+ strb r3, [r0, #0x1b]
+ ldrb r3, [r0, #0x1b]
+ mov r2, #0x30
+ bic r3, r2
+ strb r3, [r0, #0x1b]
+ ldrb r3, [r0, #0x1b]
+ mov r2, #0xc0
+ bic r3, r2
+ mov r2, #0x40
+ orr r2, r3
+ strb r2, [r0, #0x1b]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1f
+ mov r3, #0xd
+ bl FUN_0200CCA4
+ mov r0, #0x35
+ str r0, [sp]
+ mov r0, #2
+ mov r2, #0
+ str r0, [sp, #4]
+ add r0, sp, #0x34
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02001C14
+ mov r2, #0x1a
+ ldr r1, [sp, #0x1c]
+ lsl r2, r2, #4
+ str r0, [r1, r2]
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E538: .word 0x02231358
+ thumb_func_end MOD62_0222E3C4
+
+ thumb_func_start MOD62_0222E53C
+MOD62_0222E53C: ; 0x0222E53C
+ push {r4, r5}
+ lsr r5, r0, #0x1f
+ lsl r4, r0, #0x1e
+ sub r4, r4, r5
+ mov r3, #0x1e
+ ror r4, r3
+ add r4, r5, r4
+ mov r3, #0x38
+ mul r3, r4
+ add r3, #0x28
+ strh r3, [r1]
+ asr r1, r0, #2
+ mov r0, #0x35
+ mul r0, r1
+ add r0, #0x1b
+ strh r0, [r2]
+ pop {r4, r5}
+ bx lr
+ thumb_func_end MOD62_0222E53C
+
+ thumb_func_start MOD62_0222E560
+MOD62_0222E560: ; 0x0222E560
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r1, r0, #0
+ add r1, #0xdc
+ ldr r4, [r1]
+ add r1, r0, #0
+ add r1, #0xe0
+ add r0, #0xe8
+ ldr r5, [r1]
+ ldr r6, [r0]
+ bl FUN_0206B888
+ mov r1, #0x13
+ str r1, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ mov r0, #0xfa
+ lsl r0, r0, #6
+ str r0, [sp, #0x14]
+ add r0, r6, #0
+ mov r1, #2
+ add r2, r4, #0
+ add r3, r5, #0
+ bl FUN_0200C0DC
+ bl FUN_0206B894
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0222E5D0 ; =0x00004268
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x13
+ bl FUN_0200C124
+ bl FUN_0206B8A0
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0222E5D4 ; =0x00004650
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x13
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222E5D0: .word 0x00004268
+_0222E5D4: .word 0x00004650
+ thumb_func_end MOD62_0222E560
+
+ thumb_func_start MOD62_0222E5D8
+MOD62_0222E5D8: ; 0x0222E5D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ add r5, r0, #0
+ ldr r1, [r5]
+ mov r6, #0
+ ldr r0, [r1]
+ cmp r0, #0
+ ble _0222E6C6
+ str r6, [sp, #0xc]
+ add r4, r5, #0
+_0222E5EC:
+ ldr r0, [sp, #0xc]
+ add r0, r1, r0
+ ldr r7, [r0, #4]
+ add r0, r7, #0
+ bl FUN_0206B6C8
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _0222E6CC ; =0x00003A98
+ add r1, r5, #0
+ add r0, r6, r0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x13
+ bl FUN_0200C978
+ mov r1, #0
+ add r0, sp, #0x18
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ strh r1, [r0, #6]
+ mov r0, #0xa
+ str r0, [sp, #0x20]
+ add r0, r1, #0
+ str r0, [sp, #0x24]
+ mov r0, #1
+ str r0, [sp, #0x28]
+ mov r0, #2
+ str r0, [sp, #0x44]
+ add r0, r1, #0
+ str r0, [sp, #0x48]
+ ldr r0, _0222E6CC ; =0x00003A98
+ add r2, sp, #0x18
+ add r0, r6, r0
+ str r0, [sp, #0x2c]
+ mov r0, #0xfa
+ lsl r0, r0, #6
+ str r0, [sp, #0x30]
+ ldr r0, _0222E6D0 ; =0x00004268
+ str r0, [sp, #0x34]
+ ldr r0, _0222E6D4 ; =0x00004650
+ str r0, [sp, #0x38]
+ sub r0, r1, #1
+ str r0, [sp, #0x3c]
+ sub r0, r1, #1
+ str r0, [sp, #0x40]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl FUN_0200C154
+ mov r1, #0xbf
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r7, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, r0, #0
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ mov r0, #0xbf
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r0, [r0]
+ bl FUN_020202DC
+ mov r0, #0xbf
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C5C0
+ ldr r0, [sp, #0xc]
+ ldr r1, [r5]
+ add r0, r0, #4
+ str r0, [sp, #0xc]
+ ldr r0, [r1]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, r0
+ blt _0222E5EC
+_0222E6C6:
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222E6CC: .word 0x00003A98
+_0222E6D0: .word 0x00004268
+_0222E6D4: .word 0x00004650
+ thumb_func_end MOD62_0222E5D8
+
+ thumb_func_start MOD62_0222E6D8
+MOD62_0222E6D8: ; 0x0222E6D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ mov r4, #0
+ ldr r0, [r0]
+ cmp r0, #0
+ ble _0222E700
+ mov r7, #0xbf
+ add r5, r6, #0
+ lsl r7, r7, #2
+_0222E6EC:
+ ldr r0, [r5, r7]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r6]
+ add r4, r4, #1
+ ldr r0, [r0]
+ add r5, r5, #4
+ cmp r4, r0
+ blt _0222E6EC
+_0222E700:
+ mov r5, #0
+ add r4, r6, #0
+_0222E704:
+ ldr r7, [r4, #4]
+ cmp r7, #0xff
+ beq _0222E748
+ add r1, sp, #0
+ add r0, r5, #0
+ add r1, #2
+ add r2, sp, #0
+ bl MOD62_0222E53C
+ add r2, sp, #0
+ mov r1, #2
+ ldrsh r1, [r2, r1]
+ add r3, r2, #0
+ mov r2, #0
+ ldrsh r2, [r3, r2]
+ lsl r0, r7, #2
+ add r7, r6, r0
+ mov r0, #0xbf
+ lsl r0, r0, #2
+ sub r1, #0x10
+ add r2, #0xc
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r7, r0]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ mov r0, #0xbf
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #1
+ bl FUN_0200C644
+_0222E748:
+ add r5, r5, #1
+ add r4, #8
+ cmp r5, #0xc
+ blt _0222E704
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222E6D8
+
+ thumb_func_start MOD62_0222E754
+MOD62_0222E754: ; 0x0222E754
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ mov r4, #0
+ ldr r0, [r0]
+ cmp r0, #0
+ ble _0222E77A
+ mov r7, #0xbf
+ add r5, r6, #0
+ lsl r7, r7, #2
+_0222E768:
+ ldr r0, [r5, r7]
+ bl FUN_0200C5A8
+ ldr r0, [r6]
+ add r4, r4, #1
+ ldr r0, [r0]
+ add r5, r5, #4
+ cmp r4, r0
+ blt _0222E768
+_0222E77A:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222E754
+
+ thumb_func_start MOD62_0222E77C
+MOD62_0222E77C: ; 0x0222E77C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ mov r4, #0
+ ldr r0, [r0]
+ cmp r0, #0
+ ble _0222E7A2
+ mov r7, #0xbf
+ add r5, r6, #0
+ lsl r7, r7, #2
+_0222E790:
+ ldr r0, [r5, r7]
+ bl FUN_0200C3DC
+ ldr r0, [r6]
+ add r4, r4, #1
+ ldr r0, [r0]
+ add r5, r5, #4
+ cmp r4, r0
+ blt _0222E790
+_0222E7A2:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222E77C
+
+ thumb_func_start MOD62_0222E7A4
+MOD62_0222E7A4: ; 0x0222E7A4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r6, #0
+ add r4, r7, #0
+ add r5, r7, #0
+_0222E7AE:
+ ldr r0, [r4, #8]
+ bl MOD62_0222F870
+ mov r1, #0x9a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x99
+ ldr r1, [r4, #4]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _0222E7DC
+ mov r0, #0x99
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0xff
+ beq _0222E7DC
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD62_02230D38
+_0222E7DC:
+ add r6, r6, #1
+ add r4, #8
+ add r5, #0xc
+ cmp r6, #0xc
+ blt _0222E7AE
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222E7A4
+
+ thumb_func_start MOD62_0222E7E8
+MOD62_0222E7E8: ; 0x0222E7E8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x4c
+ add r4, r0, #0
+ mov r0, #0x35
+ bl FUN_0200BB14
+ add r2, sp, #0x2c
+ ldr r5, _0222E868 ; =0x02231138
+ str r0, [r4, #8]
+ ldmia r5!, {r0, r1}
+ add r3, r2, #0
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ ldr r6, _0222E86C ; =0x0223110C
+ stmia r2!, {r0, r1}
+ add r5, sp, #0x18
+ ldmia r6!, {r0, r1}
+ add r2, r5, #0
+ stmia r5!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r3, #0
+ str r0, [r5]
+ ldr r0, [r4, #8]
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ ldr r3, _0222E870 ; =0x02231120
+ add r2, sp, #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}
+ ldr r0, [r4, #8]
+ bl FUN_0200BB34
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ mov r2, #0x80
+ bl FUN_0200BBF0
+ cmp r0, #0
+ bne _0222E852
+ bl ErrorHandling
+_0222E852:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ add r2, sp, #0
+ bl FUN_0200BF60
+ cmp r0, #0
+ bne _0222E864
+ bl ErrorHandling
+_0222E864:
+ add sp, #0x4c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222E868: .word 0x02231138
+_0222E86C: .word 0x0223110C
+_0222E870: .word 0x02231120
+ thumb_func_end MOD62_0222E7E8
+
+ thumb_func_start MOD62_0222E874
+MOD62_0222E874: ; 0x0222E874
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ bl FUN_0200C398
+ ldr r0, [r4, #8]
+ bl FUN_0200BD04
+ pop {r4, pc}
+ thumb_func_end MOD62_0222E874
+
+ thumb_func_start MOD62_0222E888
+MOD62_0222E888: ; 0x0222E888
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0222E8EC ; =0x0000AFC8
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ mov r2, #0x5b
+ add r3, r2, #0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r3, #0xae
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222E8F0 ; =0x0000B798
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x5b
+ mov r3, #0xad
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222E8F4 ; =0x0000BB80
+ mov r2, #0x5b
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xdc
+ add r4, #0xe0
+ ldr r0, [r0]
+ ldr r1, [r4]
+ mov r3, #0x51
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0222E8EC: .word 0x0000AFC8
+_0222E8F0: .word 0x0000B798
+_0222E8F4: .word 0x0000BB80
+ thumb_func_end MOD62_0222E888
+
+ thumb_func_start MOD62_0222E8F8
+MOD62_0222E8F8: ; 0x0222E8F8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x64
+ ldr r4, _0222E97C ; =0x02231178
+ add r6, r0, #0
+ add r3, sp, #0
+ mov r2, #6
+_0222E904:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E904
+ mov r7, #0
+ add r4, sp, #0
+ add r5, r6, #0
+_0222E912:
+ ldr r1, [r4]
+ add r0, sp, #0
+ strh r1, [r0, #0x30]
+ ldr r1, [r4, #4]
+ add r2, sp, #0x30
+ strh r1, [r0, #0x32]
+ mov r1, #0
+ strh r1, [r0, #0x34]
+ strh r1, [r0, #0x36]
+ mov r0, #0x28
+ str r0, [sp, #0x38]
+ mov r0, #2
+ str r0, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ mov r0, #1
+ str r0, [sp, #0x5c]
+ add r0, r1, #0
+ str r0, [sp, #0x60]
+ ldr r0, _0222E980 ; =0x0000AFC8
+ str r0, [sp, #0x44]
+ ldr r0, _0222E984 ; =0x000066B2
+ str r0, [sp, #0x48]
+ ldr r0, _0222E988 ; =0x0000B798
+ str r0, [sp, #0x4c]
+ ldr r0, _0222E98C ; =0x0000BB80
+ str r0, [sp, #0x50]
+ sub r0, r1, #1
+ str r0, [sp, #0x54]
+ sub r0, r1, #1
+ str r0, [sp, #0x58]
+ add r0, r6, #0
+ add r1, r6, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl FUN_0200C154
+ mov r1, #0xc5
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ ldr r1, [r4, #8]
+ bl FUN_0200C8D0
+ add r7, r7, #1
+ add r4, #0xc
+ add r5, r5, #4
+ cmp r7, #4
+ blt _0222E912
+ add sp, #0x64
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E97C: .word 0x02231178
+_0222E980: .word 0x0000AFC8
+_0222E984: .word 0x000066B2
+_0222E988: .word 0x0000B798
+_0222E98C: .word 0x0000BB80
+ thumb_func_end MOD62_0222E8F8
+
+ thumb_func_start MOD62_0222E990
+MOD62_0222E990: ; 0x0222E990
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0222E9B0
+ mov r6, #0xc5
+ mov r4, #0
+ lsl r6, r6, #2
+_0222E9A2:
+ ldr r0, [r5, r6]
+ bl FUN_0200C5A8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222E9A2
+_0222E9B0:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222E990
+
+ thumb_func_start MOD62_0222E9B4
+MOD62_0222E9B4: ; 0x0222E9B4
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #0xc5
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+ lsl r7, r7, #2
+_0222E9C0:
+ ldr r0, [r5, r7]
+ add r1, r6, #0
+ bl FUN_0200C644
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222E9C0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222E9B4
+
+ thumb_func_start MOD62_0222E9D4
+MOD62_0222E9D4: ; 0x0222E9D4
+ push {r4, r5, r6, lr}
+ mov r6, #0xc5
+ add r5, r0, #0
+ mov r4, #0
+ lsl r6, r6, #2
+_0222E9DE:
+ ldr r0, [r5, r6]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222E9DE
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222E9D4
+
+ thumb_func_start MOD62_0222E9F0
+MOD62_0222E9F0: ; 0x0222E9F0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ mov r6, #1
+ str r6, [sp]
+ ldr r6, [sp, #0x3c]
+ add r7, r2, #0
+ str r6, [sp, #4]
+ ldr r6, _0222EA68 ; =0x00002AF8
+ add r2, r3, #0
+ add r2, r2, r6
+ str r2, [sp, #8]
+ mov r2, #0x5b
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200C00C
+ mov r0, #0x5b
+ str r0, [sp]
+ ldr r0, [sp, #0x30]
+ mov r1, #0
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r1, [sp, #0x44]
+ add r2, r5, #0
+ str r1, [sp, #0xc]
+ ldr r1, [sp, #0x3c]
+ add r3, r4, #0
+ str r1, [sp, #0x10]
+ add r1, r6, #0
+ add r0, r0, r1
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x40]
+ add r0, r7, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ ldr r3, [sp, #0x34]
+ add r0, r6, #0
+ add r0, r3, r0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x5b
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r3, [sp, #0x38]
+ add r0, r6, #0
+ add r0, r3, r0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x5b
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222EA68: .word 0x00002AF8
+ thumb_func_end MOD62_0222E9F0
+
+ thumb_func_start MOD62_0222EA6C
+MOD62_0222EA6C: ; 0x0222EA6C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x54
+ add r5, r0, #0
+ ldr r0, _0222EC14 ; =0x0000011E
+ add r2, r5, #0
+ str r0, [sp]
+ mov r0, #0xae
+ str r0, [sp, #4]
+ mov r3, #0x52
+ str r3, [sp, #8]
+ mov r1, #1
+ str r1, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ add r2, #0xe8
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ add r3, #0xb8
+ bl MOD62_0222E9F0
+ ldr r0, _0222EC18 ; =0x00000123
+ add r2, r5, #0
+ str r0, [sp]
+ mov r0, #0xb3
+ str r0, [sp, #4]
+ mov r3, #0x57
+ str r3, [sp, #8]
+ mov r1, #1
+ str r1, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ add r2, #0xe8
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ add r3, #0xbc
+ bl MOD62_0222E9F0
+ mov r6, #0
+ add r4, r5, #0
+ add r7, sp, #0x18
+_0222EAD4:
+ mov r0, #0
+ strh r0, [r7, #8]
+ strh r0, [r7, #0xa]
+ strh r0, [r7, #0xc]
+ mov r0, #0x9a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r5, #0
+ strh r0, [r7, #0xe]
+ mov r0, #0x28
+ sub r0, r0, r6
+ str r0, [sp, #0x28]
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ mov r0, #1
+ str r0, [sp, #0x30]
+ mov r0, #2
+ str r0, [sp, #0x4c]
+ mov r0, #0
+ str r0, [sp, #0x50]
+ ldr r0, _0222EC1C ; =0x00002C02
+ add r1, #0xe0
+ str r0, [sp, #0x34]
+ add r0, #0x14
+ str r0, [sp, #0x38]
+ ldr r0, _0222EC20 ; =0x00002BA6
+ add r2, sp, #0x20
+ str r0, [sp, #0x3c]
+ sub r0, #0x5c
+ str r0, [sp, #0x40]
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, r5, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl FUN_0200C154
+ mov r1, #0x9b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r1, sp, #0x1c
+ add r0, r6, #0
+ add r1, #2
+ add r2, sp, #0x1c
+ bl MOD62_0222E53C
+ mov r0, #0x9b
+ mov r1, #6
+ mov r2, #4
+ lsl r0, r0, #2
+ ldrsh r1, [r7, r1]
+ ldrsh r2, [r7, r2]
+ ldr r0, [r4, r0]
+ bl FUN_0200C714
+ add r6, r6, #1
+ add r4, #0xc
+ cmp r6, #0xc
+ blt _0222EAD4
+ mov r1, #0
+ add r0, sp, #0x18
+ strh r1, [r0, #8]
+ strh r1, [r0, #0xa]
+ strh r1, [r0, #0xc]
+ strh r1, [r0, #0xe]
+ mov r0, #0x14
+ str r0, [sp, #0x28]
+ mov r0, #1
+ str r1, [sp, #0x2c]
+ str r1, [sp, #0x50]
+ ldr r1, _0222EC24 ; =0x00002C0B
+ str r0, [sp, #0x30]
+ add r0, r1, #0
+ add r0, #0x10
+ str r0, [sp, #0x38]
+ add r0, r1, #0
+ mov r2, #2
+ sub r0, #0x60
+ str r1, [sp, #0x34]
+ str r0, [sp, #0x3c]
+ sub r0, r2, #3
+ sub r1, #0xbc
+ str r1, [sp, #0x40]
+ add r1, r5, #0
+ str r2, [sp, #0x4c]
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, r5, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, sp, #0x20
+ bl FUN_0200C154
+ mov r1, #0xbd
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, sp, #0x20
+ bl FUN_0200C154
+ mov r1, #0xbe
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r1, #0xcc
+ ldr r0, [r5, r1]
+ add r1, sp, #0x18
+ add r1, #2
+ add r2, sp, #0x18
+ bl MOD62_0222E53C
+ mov r0, #0xbd
+ lsl r0, r0, #2
+ add r3, sp, #0x18
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r5, r0]
+ bl FUN_0200C714
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ add r3, sp, #0x18
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r5, r0]
+ bl FUN_0200C714
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x19
+ bl FUN_0200C6C4
+ mov r0, #0xbd
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C5C0
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C5C0
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222EC14: .word 0x0000011E
+_0222EC18: .word 0x00000123
+_0222EC1C: .word 0x00002C02
+_0222EC20: .word 0x00002BA6
+_0222EC24: .word 0x00002C0B
+ thumb_func_end MOD62_0222EA6C
+
+ thumb_func_start MOD62_0222EC28
+MOD62_0222EC28: ; 0x0222EC28
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl MOD62_0222E7A4
+ add r0, r5, #0
+ bl MOD62_0222E6D8
+ mov r7, #0x9a
+ lsl r7, r7, #2
+ mov r4, #0
+ add r6, r7, #4
+_0222EC3E:
+ ldr r0, [r5, r6]
+ cmp r0, #0
+ beq _0222EC4A
+ ldr r1, [r5, r7]
+ bl FUN_0200C5C0
+_0222EC4A:
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #0xc
+ blt _0222EC3E
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222EC28
+
+ thumb_func_start MOD62_0222EC54
+MOD62_0222EC54: ; 0x0222EC54
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ lsl r6, r1, #3
+ add r0, r5, r6
+ ldr r0, [r0, #4]
+ lsl r4, r2, #3
+ str r1, [sp]
+ add r1, r5, r4
+ ldr r7, [r1, #4]
+ cmp r0, #0xff
+ beq _0222EC80
+ add r1, r2, #1
+ str r1, [sp, #0xc]
+ ldr r1, [r5]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #4]
+ mov r1, #0xa1
+ add r2, sp, #0xc
+ bl FUN_02067830
+_0222EC80:
+ cmp r7, #0xff
+ beq _0222EC9A
+ ldr r0, [sp]
+ add r2, sp, #8
+ add r0, r0, #1
+ str r0, [sp, #8]
+ ldr r1, [r5]
+ lsl r0, r7, #2
+ add r0, r1, r0
+ ldr r0, [r0, #4]
+ mov r1, #0xa1
+ bl FUN_02067830
+_0222EC9A:
+ add r2, r5, #4
+ ldr r1, [r2, r6]
+ ldr r0, [r2, r4]
+ add r7, r5, #0
+ str r0, [r2, r6]
+ str r1, [r2, r4]
+ add r7, #8
+ ldr r0, [r7, r6]
+ add r1, sp, #0x10
+ bl FUN_02029C74
+ add r0, r5, #0
+ str r0, [sp, #4]
+ add r0, #8
+ str r0, [sp, #4]
+ ldr r0, [r0, r4]
+ ldr r1, [r7, r6]
+ bl FUN_02029C74
+ ldr r1, [sp, #4]
+ add r0, sp, #0x10
+ ldr r1, [r1, r4]
+ bl FUN_02029C74
+ add r0, r5, #0
+ bl MOD62_0222EC28
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222EC54
+
+ thumb_func_start MOD62_0222ECD4
+MOD62_0222ECD4: ; 0x0222ECD4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r6, #0x9b
+ mov r4, #0
+ add r5, r7, #0
+ lsl r6, r6, #2
+_0222ECE0:
+ ldr r0, [r5, r6]
+ bl FUN_0200C5A8
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #0xc
+ blt _0222ECE0
+ mov r0, #0xbd
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_0200C5A8
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_0200C5A8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222ECD4
+
+ thumb_func_start MOD62_0222ED04
+MOD62_0222ED04: ; 0x0222ED04
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r6, #0x9b
+ mov r4, #0
+ add r5, r7, #0
+ lsl r6, r6, #2
+_0222ED10:
+ ldr r0, [r5, r6]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #0xc
+ blt _0222ED10
+ mov r0, #0xbd
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_0200C3DC
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_0200C3DC
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222ED04
+
+ thumb_func_start MOD62_0222ED34
+MOD62_0222ED34: ; 0x0222ED34
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r6, r2, #0
+ add r4, r1, #0
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ mov r1, #0x35
+ str r1, [sp, #4]
+ mov r1, #1
+ add r2, r1, #0
+ mov r3, #0xf
+ add r5, r0, #0
+ bl FUN_0200CD68
+ add r0, r6, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xc0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x26
+ mov r3, #0x35
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x35
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #0xd
+ bl FUN_0200CB00
+ bl FUN_0200CAFC
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xd0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x26
+ mov r3, #0x35
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xe0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #0x35
+ bl FUN_020030E8
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD62_0222ED34
+
+ thumb_func_start MOD62_0222EDBC
+MOD62_0222EDBC: ; 0x0222EDBC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r6, r2, #0
+ add r4, r1, #0
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ mov r1, #0x35
+ str r1, [sp, #4]
+ mov r1, #4
+ mov r2, #1
+ mov r3, #0xf
+ add r5, r0, #0
+ bl FUN_0200CD68
+ add r0, r6, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xc0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x26
+ mov r3, #0x35
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x35
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #4
+ mov r2, #0x1f
+ mov r3, #0xd
+ bl FUN_0200CB00
+ bl FUN_0200CAFC
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xd0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x26
+ mov r3, #0x35
+ bl FUN_020030E8
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xe0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #0x35
+ bl FUN_020030E8
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x30
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #0x35
+ bl FUN_020030E8
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x20
+ mov r1, #0x5b
+ str r0, [sp, #4]
+ mov r0, #0xb0
+ add r2, r1, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r2, #0xcb
+ mov r3, #0x35
+ bl FUN_020030E8
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222EDBC
+
+ thumb_func_start MOD62_0222EE78
+MOD62_0222EE78: ; 0x0222EE78
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, _0222EEDC ; =0x0000FFFF
+ add r4, r0, #0
+ cmp r5, r1
+ bne _0222EE96
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ bl FUN_020191D0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_0222EE96:
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #8
+ mov r3, #0x35
+ bl FUN_0200A86C
+ add r1, r5, #0
+ add r6, r0, #0
+ bl FUN_0200A914
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r0, r4, #0
+ add r2, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r4, #0
+ bl FUN_020191D0
+ add r0, r5, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_0200A8B8
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222EEDC: .word 0x0000FFFF
+ thumb_func_end MOD62_0222EE78
+
+ thumb_func_start MOD62_0222EEE0
+MOD62_0222EEE0: ; 0x0222EEE0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_0201901C
+ ldr r0, [sp, #0x28]
+ lsl r2, r4, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #0x2c]
+ lsl r3, r6, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x30]
+ add r1, r5, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xe
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x34]
+ lsr r2, r2, #0x18
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ mov r1, #1
+ add r0, r5, #0
+ add r2, r1, #0
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r5, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0
+ bl FUN_020191D0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222EEE0
+
+ thumb_func_start MOD62_0222EF44
+MOD62_0222EF44: ; 0x0222EF44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_0201901C
+ ldr r0, [sp, #0x28]
+ lsl r2, r4, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #0x2c]
+ lsl r3, r6, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x30]
+ add r1, r5, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x38]
+ lsr r2, r2, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x34]
+ lsr r3, r3, #0x18
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0
+ bl FUN_020191D0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222EF44
+
+ thumb_func_start MOD62_0222EFA0
+MOD62_0222EFA0: ; 0x0222EFA0
+ push {r3, r4, lr}
+ sub sp, #0x14
+ mov r1, #2
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0x94
+ str r1, [sp, #0xc]
+ mov r0, #0xb
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0xe4
+ add r1, #0x88
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #6
+ mov r3, #3
+ bl MOD62_0222EF44
+ mov r1, #2
+ str r1, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0x9c
+ str r1, [sp, #0xc]
+ mov r0, #0xb
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0xe4
+ add r1, #0x90
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #6
+ mov r3, #0xa
+ bl MOD62_0222EF44
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r1, #0xa4
+ str r1, [sp, #0xc]
+ mov r0, #0xb
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0xe4
+ add r1, #0x98
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #6
+ mov r3, #3
+ bl MOD62_0222EF44
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r1, #0xac
+ str r1, [sp, #0xc]
+ mov r0, #0xb
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0xe4
+ add r1, #0xa0
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #6
+ mov r3, #0xa
+ bl MOD62_0222EF44
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r1, #0xb4
+ str r1, [sp, #0xc]
+ mov r0, #0xb
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0xe4
+ add r1, #0xa8
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #6
+ mov r3, #3
+ bl MOD62_0222EF44
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r1, #0xbc
+ str r1, [sp, #0xc]
+ mov r0, #0xb
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0xe4
+ add r1, #0xb0
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #6
+ mov r3, #0xa
+ bl MOD62_0222EF44
+ mov r2, #0xb
+ str r2, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r1, #0xc4
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ str r2, [sp, #0x10]
+ add r0, #0xe4
+ add r1, #0xb8
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #6
+ mov r3, #3
+ bl MOD62_0222EF44
+ mov r2, #0xb
+ str r2, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r1, #0xcc
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ str r2, [sp, #0x10]
+ add r0, #0xe4
+ add r1, #0xc0
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #6
+ mov r3, #0xa
+ bl MOD62_0222EF44
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222EFA0
+
+ thumb_func_start MOD62_0222F0D4
+MOD62_0222F0D4: ; 0x0222F0D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0
+ add r5, r7, #0
+ add r5, #0xec
+ mov r6, #3
+ add r5, #0x30
+_0222F0E2:
+ ldr r0, _0222F160 ; =0x0000041D
+ add r1, r7, r6
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0x10]
+ cmp r0, #0
+ bne _0222F0FE
+ add r0, r5, #0
+ mov r1, #0xee
+ bl FUN_02019620
+ add r0, r5, #0
+ bl FUN_020191D0
+ b _0222F152
+_0222F0FE:
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x64
+ mov r1, #0x35
+ bl FUN_020219F4
+ ldr r1, [sp, #0x10]
+ add r4, r0, #0
+ ldr r0, [r7, #0x64]
+ sub r1, r1, #1
+ bl FUN_02029CF4
+ add r1, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #3
+ mov r3, #1
+ bl FUN_02021B04
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0222F164 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r2, r4, #0
+ mov r3, #7
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_020191D0
+ add r0, r4, #0
+ bl FUN_02021A20
+_0222F152:
+ add r6, r6, #1
+ add r5, #0x10
+ cmp r6, #0xb
+ blt _0222F0E2
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222F160: .word 0x0000041D
+_0222F164: .word 0x00010200
+ thumb_func_end MOD62_0222F0D4
+
+ thumb_func_start MOD62_0222F168
+MOD62_0222F168: ; 0x0222F168
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ add r0, r1, #3
+ lsl r4, r0, #4
+ mov r0, #0x42
+ add r1, r6, r1
+ lsl r0, r0, #4
+ add r5, r6, #0
+ ldrb r7, [r1, r0]
+ add r5, #0xec
+ cmp r7, #0
+ bne _0222F194
+ add r0, r5, r4
+ mov r1, #0xee
+ bl FUN_02019620
+ add r0, r5, r4
+ bl FUN_020191D0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+_0222F194:
+ add r0, r5, r4
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x64
+ mov r1, #0x35
+ bl FUN_020219F4
+ str r0, [sp, #0x10]
+ ldr r0, [r6, #0x64]
+ sub r1, r7, #1
+ bl FUN_02029CF4
+ add r1, r0, #0
+ mov r3, #1
+ ldr r0, [sp, #0x10]
+ mov r2, #3
+ str r3, [sp]
+ bl FUN_02021B04
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0222F1E4 ; =0x00010200
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #8]
+ add r0, r5, r4
+ mov r3, #7
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, r4
+ bl FUN_020191D0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F1E4: .word 0x00010200
+ thumb_func_end MOD62_0222F168
+
+ thumb_func_start MOD62_0222F1E8
+MOD62_0222F1E8: ; 0x0222F1E8
+ push {r3, r4, r5, lr}
+ add r0, #0xec
+ add r5, r0, #0
+ mov r4, #3
+ add r5, #0x30
+_0222F1F2:
+ add r0, r5, #0
+ bl FUN_02019570
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #0xb
+ blt _0222F1F2
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD62_0222F1E8
+
+ thumb_func_start MOD62_0222F208
+MOD62_0222F208: ; 0x0222F208
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, _0222F26C ; =0x0000FFFF
+ add r4, r0, #0
+ cmp r5, r1
+ bne _0222F226
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ bl FUN_020191D0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_0222F226:
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xa
+ mov r3, #0x35
+ bl FUN_0200A86C
+ add r1, r5, #0
+ add r6, r0, #0
+ bl FUN_0200A914
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r0, r4, #0
+ add r2, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r4, #0
+ bl FUN_020191D0
+ add r0, r5, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_0200A8B8
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222F26C: .word 0x0000FFFF
+ thumb_func_end MOD62_0222F208
+
+ thumb_func_start MOD62_0222F270
+MOD62_0222F270: ; 0x0222F270
+ push {r3, lr}
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ pop {r3, pc}
+ thumb_func_end MOD62_0222F270
+
+ thumb_func_start MOD62_0222F288
+MOD62_0222F288: ; 0x0222F288
+ push {lr}
+ sub sp, #0xc
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x35
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222F288
+
+ thumb_func_start MOD62_0222F2A8
+MOD62_0222F2A8: ; 0x0222F2A8
+ push {lr}
+ sub sp, #0xc
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x35
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add sp, #0xc
+ pop {pc}
+ thumb_func_end MOD62_0222F2A8
+
+ thumb_func_start MOD62_0222F2C8
+MOD62_0222F2C8: ; 0x0222F2C8
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x35
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x5b
+ add r2, #0xe4
+ add r1, r0, #0
+ ldr r2, [r2]
+ add r1, #0xb1
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x35
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x5b
+ add r2, #0xe4
+ add r1, r0, #0
+ ldr r2, [r2]
+ add r1, #0xc1
+ mov r3, #2
+ bl FUN_020068C8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x40
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r1, [sp, #8]
+ add r0, #0xe8
+ mov r1, #0x5b
+ add r2, r1, #0
+ ldr r0, [r0]
+ add r2, #0xc5
+ mov r3, #0x35
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x35
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x5b
+ add r2, #0xe4
+ add r1, r0, #0
+ ldr r2, [r2]
+ add r1, #0xb2
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x35
+ str r0, [sp, #0xc]
+ mov r0, #0x5b
+ add r4, #0xe4
+ add r1, r0, #0
+ ldr r2, [r4]
+ add r1, #0xc2
+ mov r3, #3
+ bl FUN_020068C8
+ add sp, #0x10
+ pop {r4, pc}
+ thumb_func_end MOD62_0222F2C8
+
+ thumb_func_start MOD62_0222F36C
+MOD62_0222F36C: ; 0x0222F36C
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x35
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x5b
+ add r2, #0xe4
+ add r1, r0, #0
+ ldr r2, [r2]
+ add r1, #0xb0
+ mov r3, #5
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x35
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x5b
+ add r2, #0xe4
+ add r1, r0, #0
+ ldr r2, [r2]
+ add r1, #0xc0
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x40
+ str r0, [sp, #4]
+ mov r0, #0
+ mov r1, #0x5b
+ add r2, r1, #0
+ add r4, #0xe8
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ add r2, #0xc4
+ mov r3, #0x35
+ bl FUN_020030E8
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222F36C
+
+ thumb_func_start MOD62_0222F3D4
+MOD62_0222F3D4: ; 0x0222F3D4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x35
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x5b
+ add r2, #0xe4
+ add r1, r0, #0
+ ldr r2, [r2]
+ add r1, #0xb0
+ mov r3, #7
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x35
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x5b
+ add r2, #0xe4
+ add r1, r0, #0
+ ldr r2, [r2]
+ add r1, #0xbf
+ mov r3, #7
+ bl FUN_020068C8
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x40
+ str r0, [sp, #4]
+ mov r0, #0
+ mov r1, #0x5b
+ add r2, r1, #0
+ add r4, #0xe8
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ add r2, #0xc4
+ mov r3, #0x35
+ bl FUN_020030E8
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222F3D4
+
+ thumb_func_start MOD62_0222F43C
+MOD62_0222F43C: ; 0x0222F43C
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r1, r0, #0
+ add r1, #0xdc
+ ldr r4, [r1]
+ add r1, r0, #0
+ add r1, #0xe0
+ ldr r5, [r1]
+ mov r1, #0x5b
+ str r1, [sp]
+ add r1, #0xc7
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ mov r1, #3
+ str r1, [sp, #0xc]
+ mov r2, #2
+ str r2, [sp, #0x10]
+ ldr r2, _0222F57C ; =0x000066B2
+ add r0, #0xe8
+ str r2, [sp, #0x14]
+ ldr r0, [r0]
+ add r2, r4, #0
+ add r3, r5, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0222F580 ; =0x000062B9
+ mov r2, #0x5b
+ add r3, r2, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, #0xb6
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222F584 ; =0x00006A29
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0xb1
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222F588 ; =0x00006DB5
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0x55
+ bl FUN_0200C13C
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0222F58C ; =0x000062BA
+ mov r2, #0x5b
+ add r3, r2, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, #0xb7
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222F590 ; =0x00006A2A
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0xb2
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222F594 ; =0x00006DB6
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0x56
+ bl FUN_0200C13C
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0222F598 ; =0x000062B6
+ mov r2, #0x5b
+ add r3, r2, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, #0xb3
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222F59C ; =0x00006A27
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0xaf
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222F5A0 ; =0x00006DB3
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0x53
+ bl FUN_0200C13C
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0222F5A4 ; =0x000089C8
+ mov r2, #0x5b
+ add r3, r2, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, #0xb5
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222F5A8 ; =0x00006A28
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0xb0
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222F5AC ; =0x00006DB4
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0x54
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222F57C: .word 0x000066B2
+_0222F580: .word 0x000062B9
+_0222F584: .word 0x00006A29
+_0222F588: .word 0x00006DB5
+_0222F58C: .word 0x000062BA
+_0222F590: .word 0x00006A2A
+_0222F594: .word 0x00006DB6
+_0222F598: .word 0x000062B6
+_0222F59C: .word 0x00006A27
+_0222F5A0: .word 0x00006DB3
+_0222F5A4: .word 0x000089C8
+_0222F5A8: .word 0x00006A28
+_0222F5AC: .word 0x00006DB4
+ thumb_func_end MOD62_0222F43C
+
+ thumb_func_start MOD62_0222F5B0
+MOD62_0222F5B0: ; 0x0222F5B0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0xa0
+ add r7, r0, #0
+ add r0, #0xdc
+ ldr r6, [r0]
+ add r0, r7, #0
+ add r0, #0xe0
+ ldr r5, [r0]
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ add r4, r7, r0
+ mov r1, #0
+ add r2, sp, #0x6c
+ strh r1, [r2]
+ strh r1, [r2, #2]
+ strh r1, [r2, #4]
+ strh r1, [r2, #6]
+ mov r0, #0x3c
+ str r0, [sp, #0x74]
+ mov r0, #2
+ str r0, [sp, #0x7c]
+ mov r0, #1
+ str r1, [sp, #0x9c]
+ sub r1, r0, #2
+ str r0, [sp, #0x98]
+ str r0, [sp, #0x78]
+ ldr r0, _0222F6FC ; =0x000062B9
+ str r1, [sp, #0x90]
+ str r0, [sp, #0x80]
+ ldr r0, _0222F700 ; =0x000066B2
+ str r1, [sp, #0x94]
+ str r0, [sp, #0x84]
+ ldr r0, _0222F704 ; =0x00006A29
+ add r1, r5, #0
+ str r0, [sp, #0x88]
+ ldr r0, _0222F708 ; =0x00006DB5
+ str r0, [sp, #0x8c]
+ add r0, r6, #0
+ bl FUN_0200C154
+ str r0, [r4, #0x20]
+ ldr r0, _0222F70C ; =0x000062BA
+ add r1, r5, #0
+ str r0, [sp, #0x80]
+ ldr r0, _0222F700 ; =0x000066B2
+ add r2, sp, #0x6c
+ str r0, [sp, #0x84]
+ ldr r0, _0222F710 ; =0x00006A2A
+ str r0, [sp, #0x88]
+ ldr r0, _0222F714 ; =0x00006DB6
+ str r0, [sp, #0x8c]
+ add r0, r6, #0
+ bl FUN_0200C154
+ str r0, [r4, #0x24]
+ mov r0, #1
+ str r0, [sp, #0x98]
+ str r0, [sp, #0x78]
+ ldr r0, _0222F718 ; =0x000089C8
+ add r1, r5, #0
+ str r0, [sp, #0x80]
+ ldr r0, _0222F700 ; =0x000066B2
+ add r2, sp, #0x6c
+ str r0, [sp, #0x84]
+ ldr r0, _0222F71C ; =0x00006A28
+ str r0, [sp, #0x88]
+ ldr r0, _0222F720 ; =0x00006DB4
+ str r0, [sp, #0x8c]
+ add r0, r6, #0
+ bl FUN_0200C154
+ str r0, [r4, #0x28]
+ mov r0, #1
+ str r0, [sp, #0x98]
+ mov r0, #0
+ str r0, [sp, #0x78]
+ ldr r0, _0222F724 ; =0x000062B6
+ add r1, r5, #0
+ str r0, [sp, #0x80]
+ ldr r0, _0222F700 ; =0x000066B2
+ add r2, sp, #0x6c
+ str r0, [sp, #0x84]
+ ldr r0, _0222F728 ; =0x00006A27
+ str r0, [sp, #0x88]
+ ldr r0, _0222F72C ; =0x00006DB3
+ str r0, [sp, #0x8c]
+ add r0, r6, #0
+ bl FUN_0200C154
+ str r0, [r4, #0x2c]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, sp, #0x6c
+ bl FUN_0200C154
+ ldr r3, _0222F730 ; =0x022311A8
+ str r0, [r4, #0x30]
+ add r2, sp, #0x38
+ mov r1, #0x1a
+_0222F676:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _0222F676
+ ldr r3, _0222F734 ; =0x022311DC
+ add r2, sp, #4
+ mov r1, #0x1a
+_0222F688:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _0222F688
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0x1d
+ add r4, r7, #0
+ lsl r0, r0, #4
+ add r7, r7, r0
+ add r6, sp, #0x58
+ add r4, #0x20
+ add r5, sp, #0x24
+ add r7, #0x20
+_0222F6A8:
+ mov r0, #0xf9
+ mov r1, #0
+ mov r2, #2
+ lsl r0, r0, #2
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r6, r2]
+ ldr r0, [r4, r0]
+ bl FUN_0200C714
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200C5A8
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C61C
+ mov r1, #0xf9
+ mov r2, #0
+ mov r3, #2
+ lsl r1, r1, #2
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ ldr r1, [r4, r1]
+ add r0, r7, #0
+ bl MOD62_0222DCE4
+ ldr r0, [sp]
+ add r6, r6, #4
+ add r0, r0, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ add r7, r7, #4
+ str r0, [sp]
+ cmp r0, #0xd
+ blt _0222F6A8
+ add sp, #0xa0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222F6FC: .word 0x000062B9
+_0222F700: .word 0x000066B2
+_0222F704: .word 0x00006A29
+_0222F708: .word 0x00006DB5
+_0222F70C: .word 0x000062BA
+_0222F710: .word 0x00006A2A
+_0222F714: .word 0x00006DB6
+_0222F718: .word 0x000089C8
+_0222F71C: .word 0x00006A28
+_0222F720: .word 0x00006DB4
+_0222F724: .word 0x000062B6
+_0222F728: .word 0x00006A27
+_0222F72C: .word 0x00006DB3
+_0222F730: .word 0x022311A8
+_0222F734: .word 0x022311DC
+ thumb_func_end MOD62_0222F5B0
+
+ thumb_func_start MOD62_0222F738
+MOD62_0222F738: ; 0x0222F738
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #0xf9
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+ lsl r7, r7, #2
+_0222F744:
+ ldr r0, [r5, r7]
+ add r1, r6, #0
+ bl FUN_0200C644
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xd
+ blt _0222F744
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222F738
+
+ thumb_func_start MOD62_0222F758
+MOD62_0222F758: ; 0x0222F758
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD62_0222F758
+
+ thumb_func_start MOD62_0222F75C
+MOD62_0222F75C: ; 0x0222F75C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r6, #0xf9
+ mov r4, #8
+ add r5, #0x20
+ lsl r6, r6, #2
+_0222F768:
+ ldr r0, [r5, r6]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xd
+ blt _0222F768
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD62_0222F75C
+
+ thumb_func_start MOD62_0222F778
+MOD62_0222F778: ; 0x0222F778
+ add r1, r0, #0
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ ldr r3, _0222F78C ; =0x02029C75
+ lsl r0, r0, #3
+ add r0, r1, r0
+ ldr r0, [r0, #8]
+ add r1, #0x68
+ bx r3
+ .align 2, 0
+_0222F78C: .word 0x02029C75
+ thumb_func_end MOD62_0222F778
+
+ thumb_func_start MOD62_0222F790
+MOD62_0222F790: ; 0x0222F790
+ mov r1, #0xf1
+ add r2, r0, #0
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ ldr r3, _0222F7A4 ; =0x02029C75
+ lsl r1, r1, #3
+ add r1, r2, r1
+ add r0, #0x68
+ ldr r1, [r1, #8]
+ bx r3
+ .align 2, 0
+_0222F7A4: .word 0x02029C75
+ thumb_func_end MOD62_0222F790
+
+ thumb_func_start MOD62_0222F7A8
+MOD62_0222F7A8: ; 0x0222F7A8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_0222F7AE:
+ ldr r0, [r5, #0x64]
+ add r1, r4, #0
+ bl FUN_02029CF4
+ add r1, r5, r4
+ add r1, #0x80
+ add r4, r4, #1
+ strb r0, [r1]
+ cmp r4, #0x51
+ blt _0222F7AE
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD62_0222F7A8
+
+ thumb_func_start MOD62_0222F7C4
+MOD62_0222F7C4: ; 0x0222F7C4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_0222F7CA:
+ add r2, r5, r4
+ add r2, #0x80
+ ldrb r2, [r2]
+ ldr r0, [r5, #0x64]
+ add r1, r4, #0
+ bl FUN_02029D40
+ add r4, r4, #1
+ cmp r4, #0x51
+ blt _0222F7CA
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD62_0222F7C4
+
+ thumb_func_start MOD62_0222F7E0
+MOD62_0222F7E0: ; 0x0222F7E0
+ push {r3, lr}
+ mov r0, #7
+ str r0, [sp]
+ ldr r0, _0222F804 ; =0x04000050
+ mov r1, #0
+ mov r2, #6
+ mov r3, #0xb
+ bl G2x_SetBlendAlpha_
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _0222F808 ; =0x04001050
+ mov r1, #0
+ mov r2, #0xe
+ mov r3, #7
+ bl G2x_SetBlendAlpha_
+ pop {r3, pc}
+ .align 2, 0
+_0222F804: .word 0x04000050
+_0222F808: .word 0x04001050
+ thumb_func_end MOD62_0222F7E0
+
+ thumb_func_start MOD62_0222F80C
+MOD62_0222F80C: ; 0x0222F80C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0xf1
+ add r5, r0, #0
+ lsl r1, r1, #2
+ ldr r0, [r5, r1]
+ lsl r0, r0, #3
+ add r0, r5, r0
+ ldr r0, [r0, #4]
+ cmp r0, #0xff
+ beq _0222F832
+ ldr r2, [r5]
+ lsl r0, r0, #2
+ add r0, r2, r0
+ add r1, #0x64
+ ldr r0, [r0, #4]
+ ldr r1, [r5, r1]
+ bl FUN_02069B88
+ pop {r3, r4, r5, r6, r7, pc}
+_0222F832:
+ ldr r1, [r5]
+ mov r6, #0
+ ldr r0, [r1]
+ cmp r0, #0
+ ble _0222F868
+ add r4, r6, #0
+_0222F83E:
+ add r0, r1, r4
+ ldr r7, [r0, #4]
+ mov r1, #0x4c
+ add r0, r7, #0
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222F85C
+ ldr r1, _0222F86C ; =0x00000428
+ add r0, r7, #0
+ ldr r1, [r5, r1]
+ bl FUN_02069B88
+ pop {r3, r4, r5, r6, r7, pc}
+_0222F85C:
+ ldr r1, [r5]
+ add r6, r6, #1
+ ldr r0, [r1]
+ add r4, r4, #4
+ cmp r6, r0
+ blt _0222F83E
+_0222F868:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222F86C: .word 0x00000428
+ thumb_func_end MOD62_0222F80C
+
+ thumb_func_start MOD62_0222F870
+MOD62_0222F870: ; 0x0222F870
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #0
+ add r6, r0, #0
+ add r5, r7, #0
+ add r4, r7, #0
+_0222F87A:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_02029CC8
+ bl FUN_02029CE0
+ cmp r0, #0
+ beq _0222F88C
+ add r5, r5, #1
+_0222F88C:
+ add r4, r4, #1
+ cmp r4, #8
+ blt _0222F87A
+ cmp r5, #0
+ beq _0222F898
+ mov r7, #1
+_0222F898:
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222F870
+
+ thumb_func_start MOD62_0222F89C
+MOD62_0222F89C: ; 0x0222F89C
+ mov r2, #0xc
+ mul r2, r1
+ add r1, r0, r2
+ mov r0, #0x99
+ lsl r0, r0, #2
+ ldr r2, [r1, r0]
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r2, #0xff
+ bne _0222F8B8
+ cmp r0, #0
+ bne _0222F8B8
+ mov r0, #0
+ bx lr
+_0222F8B8:
+ cmp r2, #0xff
+ bne _0222F8C4
+ cmp r0, #1
+ bne _0222F8C4
+ mov r0, #1
+ bx lr
+_0222F8C4:
+ cmp r2, #0xff
+ beq _0222F8D0
+ cmp r0, #1
+ bne _0222F8D0
+ mov r0, #2
+ bx lr
+_0222F8D0:
+ mov r0, #3
+ bx lr
+ thumb_func_end MOD62_0222F89C
+
+ thumb_func_start MOD62_0222F8D4
+MOD62_0222F8D4: ; 0x0222F8D4
+ push {r3, r4}
+ cmp r2, #0xff
+ bne _0222F8E6
+ mov r2, #0xf6
+ lsl r2, r2, #2
+ ldr r4, [r0, r2]
+ sub r2, r2, #4
+ str r4, [r0, r2]
+ b _0222F8EC
+_0222F8E6:
+ mov r4, #0xf5
+ lsl r4, r4, #2
+ str r2, [r0, r4]
+_0222F8EC:
+ mov r2, #0xf3
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ add r1, r2, #0
+ add r1, #0xc
+ str r3, [r0, r1]
+ mov r1, #0
+ add r2, #0x10
+ str r1, [r0, r2]
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD62_0222F8D4
+
+ thumb_func_start MOD62_0222F904
+MOD62_0222F904: ; 0x0222F904
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xfc
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0xfc
+ bl FUN_02019570
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ add r4, #0xfc
+ add r0, r4, #0
+ bl FUN_02019178
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222F904
+
+ thumb_func_start MOD62_0222F93C
+MOD62_0222F93C: ; 0x0222F93C
+ push {r3, lr}
+ mov r1, #1
+ mov r2, #0
+ mov r3, #3
+ bl MOD62_0222F8D4
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD62_0222F93C
+
+ thumb_func_start MOD62_0222F94C
+MOD62_0222F94C: ; 0x0222F94C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD62_0222D874
+ add r0, r4, #0
+ bl MOD62_0222DC7C
+ add r0, r4, #0
+ bl MOD62_0222EC28
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD62_0222F8D4
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD62_0222F94C
+
+ thumb_func_start MOD62_0222F970
+MOD62_0222F970: ; 0x0222F970
+ push {r3, lr}
+ mov r1, #3
+ mov r2, #0
+ add r3, r1, #0
+ bl MOD62_0222F8D4
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD62_0222F970
+
+ thumb_func_start MOD62_0222F980
+MOD62_0222F980: ; 0x0222F980
+ push {r3, lr}
+ mov r1, #4
+ mov r2, #0
+ mov r3, #3
+ bl MOD62_0222F8D4
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD62_0222F980
+
+ thumb_func_start MOD62_0222F990
+MOD62_0222F990: ; 0x0222F990
+ push {r3, r4, r5, lr}
+ mov r1, #0xf3
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ lsl r2, r1, #2
+ ldr r1, _0222F9B0 ; =0x02231220
+ ldr r1, [r1, r2]
+ blx r1
+ add r4, #0xe0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl FUN_0200BC1C
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222F9B0: .word 0x02231220
+ thumb_func_end MOD62_0222F990
+
+ thumb_func_start MOD62_0222F9B4
+MOD62_0222F9B4: ; 0x0222F9B4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222FA3C ; =0x021C48B8
+ mov r1, #0x10
+ ldr r0, [r0, #0x4c]
+ tst r1, r0
+ beq _0222F9D2
+ ldr r0, [r4]
+ mov r1, #0xc
+ add r0, r0, #1
+ str r0, [r4]
+ bl _s32_div_f
+ str r1, [r4]
+ b _0222FA38
+_0222F9D2:
+ mov r1, #0x20
+ tst r1, r0
+ beq _0222F9EA
+ ldr r0, [r4]
+ cmp r0, #0
+ ble _0222F9E4
+ sub r0, r0, #1
+ str r0, [r4]
+ b _0222FA38
+_0222F9E4:
+ mov r0, #0xb
+ str r0, [r4]
+ b _0222FA38
+_0222F9EA:
+ mov r1, #0x40
+ tst r1, r0
+ beq _0222FA0E
+ ldr r1, [r4]
+ asr r0, r1, #1
+ lsr r0, r0, #0x1e
+ add r0, r1, r0
+ asr r0, r0, #2
+ beq _0222FA0A
+ sub r0, r1, #4
+ mov r1, #0xc
+ str r0, [r4]
+ bl _s32_div_f
+ str r1, [r4]
+ b _0222FA38
+_0222FA0A:
+ mov r0, #0
+ pop {r4, pc}
+_0222FA0E:
+ mov r1, #0x80
+ tst r0, r1
+ beq _0222FA34
+ ldr r1, [r4]
+ asr r0, r1, #1
+ lsr r0, r0, #0x1e
+ add r0, r1, r0
+ asr r0, r0, #2
+ cmp r0, #2
+ beq _0222FA30
+ add r0, r1, #4
+ mov r1, #0xc
+ str r0, [r4]
+ bl _s32_div_f
+ str r1, [r4]
+ b _0222FA38
+_0222FA30:
+ mov r0, #0
+ pop {r4, pc}
+_0222FA34:
+ mov r0, #0
+ pop {r4, pc}
+_0222FA38:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_0222FA3C: .word 0x021C48B8
+ thumb_func_end MOD62_0222F9B4
+
+ thumb_func_start MOD62_0222FA40
+MOD62_0222FA40: ; 0x0222FA40
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r4, #0
+ str r2, [sp]
+ cmp r1, #0
+ bne _0222FA50
+ mov r4, #1
+_0222FA50:
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ lsl r6, r1, #2
+ add r7, r5, r0
+ add r1, sp, #4
+ ldr r0, [r7, r6]
+ add r1, #2
+ add r2, sp, #4
+ bl MOD62_0222E53C
+ mov r0, #0xbd
+ add r1, r5, r6
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r3, sp, #4
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ bl FUN_0200C714
+ ldr r0, [sp]
+ cmp r0, #1
+ bne _0222FAAE
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, [r7, r6]
+ lsl r4, r4, #2
+ str r0, [r1, r4]
+ ldr r0, [r1, r4]
+ add r1, sp, #4
+ add r1, #2
+ add r2, sp, #4
+ bl MOD62_0222E53C
+ mov r0, #0xbd
+ add r1, r5, r4
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r3, sp, #4
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ bl FUN_0200C714
+_0222FAAE:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222FA40
+
+ thumb_func_start MOD62_0222FAB4
+MOD62_0222FAB4: ; 0x0222FAB4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ mov r1, #0xf5
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ cmp r1, #6
+ bls _0222FAC6
+ b _0222FD4C
+_0222FAC6:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222FAD2: ; jump table
+ .short _0222FAE0 - _0222FAD2 - 2 ; case 0
+ .short _0222FBBC - _0222FAD2 - 2 ; case 1
+ .short _0222FBCC - _0222FAD2 - 2 ; case 2
+ .short _0222FBE0 - _0222FAD2 - 2 ; case 3
+ .short _0222FCA2 - _0222FAD2 - 2 ; case 4
+ .short _0222FD00 - _0222FAD2 - 2 ; case 5
+ .short _0222FD10 - _0222FAD2 - 2 ; case 6
+_0222FAE0:
+ bl MOD62_0222E560
+ add r0, r4, #0
+ bl MOD62_0222E5D8
+ add r0, r4, #0
+ bl MOD62_0222E6D8
+ add r0, r4, #0
+ bl MOD62_0222F2C8
+ add r0, r4, #0
+ bl MOD62_0222F36C
+ add r0, r4, #0
+ bl MOD62_0222F3D4
+ add r0, r4, #0
+ bl MOD62_0222E7A4
+ add r0, r4, #0
+ bl MOD62_0222EA6C
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r3, #2
+ add r1, r4, #0
+ str r3, [sp, #8]
+ mov r0, #0x28
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r1, #0xec
+ mov r2, #1
+ bl MOD62_0222EEE0
+ add r0, r4, #0
+ bl MOD62_0222D67C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_0222DB10
+ add r0, r4, #0
+ bl MOD62_0222D654
+ add r0, r4, #0
+ bl MOD62_0222F43C
+ add r0, r4, #0
+ bl MOD62_0222F5B0
+ add r0, r4, #0
+ bl MOD62_0222E888
+ add r0, r4, #0
+ bl MOD62_0222E8F8
+ add r0, r4, #0
+ bl MOD62_0222F778
+ add r0, r4, #0
+ bl MOD62_0222F7A8
+ ldr r1, _0222FD60 ; =0x00000418
+ add r0, r4, #0
+ ldr r1, [r4, r1]
+ bl MOD62_0222DEF8
+ add r0, r4, #0
+ bl MOD62_0222DF5C
+ add r0, r4, #0
+ bl MOD62_0222E004
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_0222F738
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_0222E9B4
+ add r0, r4, #0
+ bl MOD62_0222DDB4
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_0222DDE0
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #7
+ bl MOD62_0222EE78
+ bl MOD62_0222F270
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_022300DC
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _0222FD4C
+_0222FBBC:
+ bl MOD62_0222F288
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _0222FD4C
+_0222FBCC:
+ bl FUN_0200E308
+ cmp r0, #1
+ beq _0222FBD6
+ b _0222FD4C
+_0222FBD6:
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+_0222FBE0:
+ bl FUN_02020AA4
+ cmp r0, #1
+ bne _0222FBF0
+ add r0, r4, #0
+ bl MOD62_0222F93C
+ b _0222FD4C
+_0222FBF0:
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ ldr r6, [r4, r0]
+ add r0, r4, r0
+ bl MOD62_0222F9B4
+ mov r1, #0xf1
+ lsl r1, r1, #2
+ ldr r5, [r4, r1]
+ cmp r0, #1
+ str r6, [r4, r1]
+ bne _0222FC4C
+ add r0, r4, #0
+ bl MOD62_0222D874
+ add r0, r4, #0
+ bl MOD62_0222DC7C
+ add r0, r4, #0
+ bl MOD62_0222EC28
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD62_0222FA40
+ add r0, r4, #0
+ bl MOD62_0222DAEC
+ add r0, r4, #0
+ bl MOD62_0222D67C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_0222DB10
+ add r0, r4, #0
+ bl MOD62_0222D654
+ ldr r0, _0222FD64 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222FD4C
+_0222FC4C:
+ ldr r0, _0222FD68 ; =0x021C48B8
+ ldr r2, [r0, #0x48]
+ mov r0, #1
+ tst r0, r2
+ beq _0222FC8E
+ add r0, r1, #0
+ add r0, #0x10
+ ldr r0, [r4, r0]
+ add r1, #0x10
+ add r0, r0, #1
+ str r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #8
+ bl MOD62_0222EE78
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r4, #0
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r1, #0xfc
+ mov r2, #1
+ add r3, r4, #0
+ bl MOD62_0222E3C4
+ ldr r0, _0222FD64 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222FD4C
+_0222FC8E:
+ mov r0, #2
+ tst r0, r2
+ beq _0222FD4C
+ mov r0, #5
+ add r1, #0x10
+ str r0, [r4, r1]
+ ldr r0, _0222FD6C ; =0x000005DD
+ bl FUN_020054C8
+ b _0222FD4C
+_0222FCA2:
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02001C78
+ add r1, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r1, r0
+ beq _0222FCBE
+ add r0, r0, #1
+ cmp r1, r0
+ beq _0222FD4C
+ b _0222FCD8
+_0222FCBE:
+ add r0, r4, #0
+ bl MOD62_0222F904
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #7
+ bl MOD62_0222EE78
+ mov r0, #0xf5
+ mov r1, #3
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _0222FD4C
+_0222FCD8:
+ cmp r1, #0
+ beq _0222FD4C
+ add r0, r4, #0
+ blx r1
+ cmp r0, #1
+ beq _0222FCEC
+ add r0, r4, #0
+ bl MOD62_0222F904
+ b _0222FD4C
+_0222FCEC:
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #7
+ bl MOD62_0222EE78
+ mov r0, #0xf5
+ mov r1, #3
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _0222FD4C
+_0222FD00:
+ bl MOD62_0222F2A8
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _0222FD4C
+_0222FD10:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _0222FD4C
+ add r0, r4, #0
+ add r0, #0xec
+ bl FUN_02019178
+ add r0, r4, #0
+ bl MOD62_0222ED04
+ add r0, r4, #0
+ bl MOD62_0222E77C
+ add r0, r4, #0
+ bl MOD62_0222F75C
+ add r0, r4, #0
+ bl MOD62_0222E9D4
+ add r0, r4, #0
+ bl MOD62_0222E0C8
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_02085D9C
+ add sp, #0x10
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222FD4C:
+ add r0, r4, #0
+ bl MOD62_0222E754
+ add r0, r4, #0
+ bl MOD62_0222ECD4
+ mov r0, #1
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_0222FD60: .word 0x00000418
+_0222FD64: .word 0x000005DC
+_0222FD68: .word 0x021C48B8
+_0222FD6C: .word 0x000005DD
+ thumb_func_end MOD62_0222FAB4
+
+ thumb_func_start MOD62_0222FD70
+MOD62_0222FD70: ; 0x0222FD70
+ push {r3, lr}
+ cmp r1, #3
+ bhi _0222FDA2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222FD82: ; jump table
+ .short _0222FD8A - _0222FD82 - 2 ; case 0
+ .short _0222FD9A - _0222FD82 - 2 ; case 1
+ .short _0222FD92 - _0222FD82 - 2 ; case 2
+ .short _0222FD9A - _0222FD82 - 2 ; case 3
+_0222FD8A:
+ mov r1, #1
+ bl FUN_0200C61C
+ pop {r3, pc}
+_0222FD92:
+ mov r1, #2
+ bl FUN_0200C61C
+ pop {r3, pc}
+_0222FD9A:
+ mov r1, #0
+ bl FUN_0200C61C
+ pop {r3, pc}
+_0222FDA2:
+ bl ErrorHandling
+ pop {r3, pc}
+ thumb_func_end MOD62_0222FD70
+
+ thumb_func_start MOD62_0222FDA8
+MOD62_0222FDA8: ; 0x0222FDA8
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ cmp r5, #0
+ beq _0222FDCC
+ add r1, sp, #4
+ add r2, sp, #0
+ bl FUN_020119A4
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ add r0, r5, #0
+ add r1, r1, r4
+ add r2, r2, r6
+ bl FUN_020118C4
+_0222FDCC:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD62_0222FDA8
+
+ thumb_func_start MOD62_0222FDD0
+MOD62_0222FDD0: ; 0x0222FDD0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #3
+ beq _0222FDE2
+ cmp r0, #6
+ beq _0222FDFC
+ b _0222FE1C
+_0222FDE2:
+ mov r1, #0
+ ldr r0, [r4, #8]
+ sub r2, r1, #1
+ bl MOD62_0222FDA8
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_0200C61C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_0222FDFC:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ mov r2, #2
+ bl MOD62_0222FDA8
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+_0222FE1C:
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222FDD0
+
+ thumb_func_start MOD62_0222FE24
+MOD62_0222FE24: ; 0x0222FE24
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #0x35
+ mov r1, #0xc
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r0, #1
+ str r0, [r4]
+ mov r1, #0
+ str r6, [r4, #4]
+ add r0, r5, #0
+ sub r2, r1, #1
+ str r5, [r4, #8]
+ bl MOD62_0222FDA8
+ mov r2, #0xfa
+ ldr r0, _0222FE54 ; =MOD62_0222FDD0
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222FE54: .word MOD62_0222FDD0
+ thumb_func_end MOD62_0222FE24
+
+ thumb_func_start MOD62_0222FE58
+MOD62_0222FE58: ; 0x0222FE58
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ add r6, r1, #0
+ cmp r0, #0
+ bne _0222FE6C
+ b _022300A8
+_0222FE6C:
+ cmp r5, #0x14
+ bls _0222FE72
+ b _022300A4
+_0222FE72:
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222FE7E: ; jump table
+ .short _0222FFE6 - _0222FE7E - 2 ; case 0
+ .short _0222FFE6 - _0222FE7E - 2 ; case 1
+ .short _0222FFE6 - _0222FE7E - 2 ; case 2
+ .short _0222FFE6 - _0222FE7E - 2 ; case 3
+ .short _0222FFE6 - _0222FE7E - 2 ; case 4
+ .short _0222FFE6 - _0222FE7E - 2 ; case 5
+ .short _0222FFE6 - _0222FE7E - 2 ; case 6
+ .short _0222FFE6 - _0222FE7E - 2 ; case 7
+ .short _0222FEA8 - _0222FE7E - 2 ; case 8
+ .short _0222FEF2 - _0222FE7E - 2 ; case 9
+ .short _0222FF40 - _0222FE7E - 2 ; case 10
+ .short _0222FF6E - _0222FE7E - 2 ; case 11
+ .short _0222FFAC - _0222FE7E - 2 ; case 12
+ .short _02230074 - _0222FE7E - 2 ; case 13
+ .short _02230074 - _0222FE7E - 2 ; case 14
+ .short _02230074 - _0222FE7E - 2 ; case 15
+ .short _02230074 - _0222FE7E - 2 ; case 16
+ .short _02230074 - _0222FE7E - 2 ; case 17
+ .short _02230074 - _0222FE7E - 2 ; case 18
+ .short _02230074 - _0222FE7E - 2 ; case 19
+ .short _02230074 - _0222FE7E - 2 ; case 20
+_0222FEA8:
+ cmp r6, #0
+ bne _0222FEE6
+ ldr r1, _022300AC ; =0x00000418
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ ble _0222FEB6
+ b _0222FEBA
+_0222FEB6:
+ add r0, r1, #4
+ ldr r0, [r4, r0]
+_0222FEBA:
+ sub r0, r0, #1
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD62_0222E0C8
+ ldr r1, _022300AC ; =0x00000418
+ add r0, r4, #0
+ ldr r1, [r4, r1]
+ bl MOD62_0222DEF8
+ add r0, r4, #0
+ bl MOD62_0222DF5C
+ add r0, r4, #0
+ bl MOD62_0222E004
+ add r0, r4, #0
+ bl MOD62_0222F0D4
+ ldr r0, _022300B0 ; =0x000006C5
+ bl FUN_020054C8
+_0222FEE6:
+ ldr r0, _022300B4 ; =0x00000404
+ add r1, r6, #0
+ ldr r0, [r4, r0]
+ bl MOD62_0222FD70
+ pop {r4, r5, r6, pc}
+_0222FEF2:
+ cmp r6, #0
+ bne _0222FF34
+ ldr r1, _022300AC ; =0x00000418
+ ldr r0, [r4, r1]
+ add r0, r0, #1
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ bl _s32_div_f
+ ldr r0, _022300AC ; =0x00000418
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD62_0222E0C8
+ ldr r1, _022300AC ; =0x00000418
+ add r0, r4, #0
+ ldr r1, [r4, r1]
+ bl MOD62_0222DEF8
+ add r0, r4, #0
+ bl MOD62_0222DF5C
+ add r0, r4, #0
+ bl MOD62_0222E004
+ add r0, r4, #0
+ bl MOD62_0222F0D4
+ ldr r0, _022300B0 ; =0x000006C5
+ bl FUN_020054C8
+_0222FF34:
+ ldr r0, _022300B8 ; =0x00000408
+ add r1, r6, #0
+ ldr r0, [r4, r0]
+ bl MOD62_0222FD70
+ pop {r4, r5, r6, pc}
+_0222FF40:
+ cmp r6, #0
+ bne _0222FF62
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #5
+ beq _0222FF58
+ mov r1, #5
+ str r1, [r4, r0]
+ ldr r0, _022300BC ; =0x000005DD
+ bl FUN_020054C8
+_0222FF58:
+ ldr r0, _022300C0 ; =0x0000040C
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl MOD62_0222FE24
+_0222FF62:
+ ldr r0, _022300C0 ; =0x0000040C
+ add r1, r6, #0
+ ldr r0, [r4, r0]
+ bl MOD62_0222FD70
+ pop {r4, r5, r6, pc}
+_0222FF6E:
+ cmp r6, #0
+ bne _0222FF9E
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #6
+ beq _0222FF8E
+ mov r1, #6
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_022300DC
+ ldr r0, _022300C4 ; =0x000005E2
+ bl FUN_020054C8
+_0222FF8E:
+ mov r0, #0x41
+ mov r1, #0x8e
+ lsl r0, r0, #4
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ bl MOD62_0222FE24
+_0222FF9E:
+ mov r0, #0x41
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ add r1, r6, #0
+ bl MOD62_0222FD70
+ pop {r4, r5, r6, pc}
+_0222FFAC:
+ cmp r6, #0
+ bne _0222FFDA
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #7
+ beq _0222FFCC
+ mov r1, #7
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_022300DC
+ ldr r0, _022300BC ; =0x000005DD
+ bl FUN_020054C8
+_0222FFCC:
+ ldr r0, _022300C8 ; =0x00000414
+ mov r1, #0x8f
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ bl MOD62_0222FE24
+_0222FFDA:
+ ldr r0, _022300C8 ; =0x00000414
+ add r1, r6, #0
+ ldr r0, [r4, r0]
+ bl MOD62_0222FD70
+ pop {r4, r5, r6, pc}
+_0222FFE6:
+ cmp r6, #0
+ bne _022300A8
+ add r0, r4, #0
+ bl MOD62_0222D76C
+ cmp r0, #0
+ bne _02230006
+ ldr r0, _022300CC ; =0x000005F2
+ bl FUN_020054C8
+ add r4, #0xec
+ add r0, r4, #0
+ mov r1, #0xf
+ bl MOD62_0222EE78
+ pop {r4, r5, r6, pc}
+_02230006:
+ mov r0, #0x42
+ lsl r0, r0, #4
+ add r6, r4, r0
+ ldrb r1, [r6, r5]
+ cmp r1, #0
+ beq _0223005C
+ ldr r0, [r4, #0x64]
+ sub r1, r1, #1
+ bl FUN_02029CF4
+ cmp r0, #0
+ beq _0223005C
+ lsl r1, r5, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ bl MOD62_0222D6EC
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+ ldrb r0, [r6, r5]
+ bl FUN_02085FD0
+ add r1, r0, #0
+ add r0, r4, #0
+ add r0, #0xec
+ bl MOD62_0222F208
+ ldr r0, [r4]
+ mov r2, #0
+ ldrb r1, [r6, r5]
+ ldr r0, [r0, #0x20]
+ mvn r2, r2
+ bl FUN_02029D44
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD62_0222F168
+ ldr r0, _022300D0 ; =0x000005EB
+ bl FUN_020054C8
+ pop {r4, r5, r6, pc}
+_0223005C:
+ ldrb r0, [r6, r5]
+ cmp r0, #0
+ beq _022300A8
+ ldr r0, _022300CC ; =0x000005F2
+ bl FUN_020054C8
+ add r4, #0xec
+ add r0, r4, #0
+ mov r1, #0x10
+ bl MOD62_0222EE78
+ pop {r4, r5, r6, pc}
+_02230074:
+ cmp r6, #0
+ bne _022300A8
+ sub r5, #0xd
+ lsl r2, r5, #0x18
+ add r0, r4, #0
+ lsr r2, r2, #0x18
+ bl MOD62_0222DA38
+ lsl r0, r5, #4
+ add r1, r4, r0
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldrb r0, [r1, r0]
+ bl FUN_02085FD0
+ add r4, #0xec
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD62_0222F208
+ ldr r0, _022300D0 ; =0x000005EB
+ bl FUN_020054C8
+ pop {r4, r5, r6, pc}
+_022300A4:
+ bl ErrorHandling
+_022300A8:
+ pop {r4, r5, r6, pc}
+ nop
+_022300AC: .word 0x00000418
+_022300B0: .word 0x000006C5
+_022300B4: .word 0x00000404
+_022300B8: .word 0x00000408
+_022300BC: .word 0x000005DD
+_022300C0: .word 0x0000040C
+_022300C4: .word 0x000005E2
+_022300C8: .word 0x00000414
+_022300CC: .word 0x000005F2
+_022300D0: .word 0x000005EB
+ thumb_func_end MOD62_0222FE58
+
+ thumb_func_start MOD62_022300D4
+MOD62_022300D4: ; 0x022300D4
+ mov r1, #0x96
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+ thumb_func_end MOD62_022300D4
+
+ thumb_func_start MOD62_022300DC
+MOD62_022300DC: ; 0x022300DC
+ add r0, #0xd8
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD62_022300DC
+
+ thumb_func_start MOD62_022300E4
+MOD62_022300E4: ; 0x022300E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #4]
+ add r1, sp, #0x10
+ mov r0, #0
+ strb r0, [r1]
+ strb r0, [r1, #1]
+ strb r0, [r1, #2]
+ mov r7, #0x1d
+ lsl r7, r7, #4
+ strb r0, [r1, #3]
+ ldr r1, _022301A0 ; =0x02231260
+ ldr r2, [sp, #4]
+ add r3, r7, #1
+ add r4, r7, #2
+ add r5, r7, #3
+_02230104:
+ ldrb r6, [r1]
+ add r0, r0, #1
+ strb r6, [r2, r7]
+ ldrb r6, [r1, #1]
+ strb r6, [r2, r3]
+ ldrb r6, [r1, #2]
+ strb r6, [r2, r4]
+ ldrb r6, [r1, #3]
+ add r1, r1, #4
+ strb r6, [r2, r5]
+ add r2, r2, #4
+ cmp r0, #0xd
+ blt _02230104
+ cmp r0, #0x15
+ bge _0223017E
+ mov r3, #0x1d
+ ldr r2, [sp, #4]
+ lsl r3, r3, #4
+ add r2, r2, r3
+ lsl r4, r0, #2
+ ldr r1, [sp, #4]
+ ldr r3, [sp, #4]
+ add r1, r1, r4
+ add r2, r2, r4
+ lsl r4, r0, #4
+ add r5, sp, #0xc
+ add r3, r3, r4
+ ldrb r4, [r5, #4]
+ strb r4, [r5]
+ ldrb r4, [r5, #5]
+ strb r4, [r5, #1]
+ ldrb r4, [r5, #6]
+ strb r4, [r5, #2]
+ ldrb r4, [r5, #7]
+ strb r4, [r5, #3]
+ ldrb r4, [r5, #2]
+ ldrb r6, [r5]
+ ldrb r7, [r5, #1]
+ str r4, [sp, #8]
+ ldrb r4, [r5, #3]
+ mov ip, r4
+_02230156:
+ mov r4, #0x1d
+ lsl r4, r4, #4
+ strb r6, [r1, r4]
+ add r4, r4, #1
+ strb r7, [r1, r4]
+ ldr r5, _022301A4 ; =0x000001D2
+ ldr r4, [sp, #8]
+ add r0, r0, #1
+ strb r4, [r1, r5]
+ add r5, r5, #1
+ mov r4, ip
+ strb r4, [r1, r5]
+ mov r4, #0x26
+ lsl r4, r4, #4
+ str r2, [r3, r4]
+ add r1, r1, #4
+ add r2, r2, #4
+ add r3, #0x10
+ cmp r0, #0x15
+ blt _02230156
+_0223017E:
+ mov r0, #0x35
+ str r0, [sp]
+ mov r1, #0x1d
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ add r0, r0, r1
+ ldr r2, _022301A8 ; =MOD62_0222FE58
+ ldr r3, [sp, #4]
+ mov r1, #0x15
+ bl FUN_020220C4
+ mov r2, #0x73
+ ldr r1, [sp, #4]
+ lsl r2, r2, #2
+ str r0, [r1, r2]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022301A0: .word 0x02231260
+_022301A4: .word 0x000001D2
+_022301A8: .word MOD62_0222FE58
+ thumb_func_end MOD62_022300E4
+
+ thumb_func_start MOD62_022301AC
+MOD62_022301AC: ; 0x022301AC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x34
+ ldr r1, _02230214 ; =0x00000428
+ add r5, r0, #0
+ ldr r1, [r5, r1]
+ add r0, sp, #0x24
+ mov r2, #2
+ bl FUN_02068B68
+ ldr r0, _02230214 ; =0x00000428
+ mov r1, #5
+ ldr r0, [r5, r0]
+ mov r2, #0
+ bl FUN_020671BC
+ add r4, r0, #0
+ ldr r0, _02230214 ; =0x00000428
+ mov r1, #2
+ ldr r0, [r5, r0]
+ bl FUN_02068E14
+ add r6, r0, #0
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ lsl r1, r4, #0x10
+ str r6, [r5, r0]
+ add r0, sp, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_02069010
+ ldr r0, _02230218 ; =0xFFFFFD80
+ add r6, #0x30
+ str r0, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ add r0, sp, #0x10
+ str r0, [sp, #8]
+ mov r0, #0x69
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, sp, #0x24
+ mov r2, #0xc0
+ add r3, r6, #0
+ bl FUN_020073A0
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add sp, #0x34
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02230214: .word 0x00000428
+_02230218: .word 0xFFFFFD80
+ thumb_func_end MOD62_022301AC
+
+ thumb_func_start MOD62_0223021C
+MOD62_0223021C: ; 0x0223021C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, _02230268 ; =0x00000428
+ mov r1, #5
+ ldr r0, [r5, r0]
+ mov r2, #0
+ bl FUN_020671BC
+ add r4, r0, #0
+ ldr r0, _02230268 ; =0x00000428
+ ldr r0, [r5, r0]
+ bl FUN_02068854
+ add r6, r0, #0
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02007314
+ mov r1, #0x97
+ lsl r2, r4, #0x10
+ str r6, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ lsl r1, r1, #2
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ sub r1, #0xb4
+ ldr r1, [r5, r1]
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FUN_02069038
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02230268: .word 0x00000428
+ thumb_func_end MOD62_0223021C
+
+ thumb_func_start MOD62_0223026C
+MOD62_0223026C: ; 0x0223026C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xc
+ mov r2, #0
+ bl FUN_02007558
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xd
+ mov r2, #0
+ bl FUN_02007558
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0223026C
+
+ thumb_func_start MOD62_02230290
+MOD62_02230290: ; 0x02230290
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xc
+ bl FUN_0200782C
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r0, r1
+ bne _022302AC
+ mov r0, #0
+ pop {r4, pc}
+_022302AC:
+ add r1, #0xa8
+ ldr r0, [r4, r1]
+ mov r1, #0xc
+ bl FUN_0200782C
+ mov r2, #1
+ lsl r2, r2, #8
+ cmp r0, r2
+ blt _022302DE
+ add r0, r2, #0
+ add r0, #0xa8
+ ldr r0, [r4, r0]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, r0]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r0, #0
+ pop {r4, pc}
+_022302DE:
+ add r2, #0xa8
+ ldr r0, [r4, r2]
+ mov r1, #0xc
+ mov r2, #0x20
+ bl FUN_020079E0
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xd
+ mov r2, #0x20
+ bl FUN_020079E0
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ bl FUN_02007F34
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_02230290
+
+ thumb_func_start MOD62_0223030C
+MOD62_0223030C: ; 0x0223030C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xc
+ bl FUN_0200782C
+ cmp r0, #0
+ bne _02230324
+ mov r0, #0
+ pop {r4, pc}
+_02230324:
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xc
+ bl FUN_0200782C
+ cmp r0, #0
+ bgt _02230354
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xc
+ mov r2, #0
+ bl FUN_02007558
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xd
+ mov r2, #0
+ bl FUN_02007558
+ mov r0, #0
+ pop {r4, pc}
+_02230354:
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, r0]
+ sub r2, #0x2c
+ bl FUN_020079E0
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, r0]
+ sub r2, #0x2d
+ bl FUN_020079E0
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ bl FUN_02007F34
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0223030C
+
+ thumb_func_start MOD62_02230388
+MOD62_02230388: ; 0x02230388
+ add r2, r1, #0
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ ldr r3, _02230398 ; =0x02007559
+ mov r1, #6
+ bx r3
+ nop
+_02230398: .word 0x02007559
+ thumb_func_end MOD62_02230388
+
+ thumb_func_start MOD62_0223039C
+MOD62_0223039C: ; 0x0223039C
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ ldr r3, _022303A8 ; =0x02007535
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_022303A8: .word 0x02007535
+ thumb_func_end MOD62_0223039C
+
+ thumb_func_start MOD62_022303AC
+MOD62_022303AC: ; 0x022303AC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xa4
+ mov r1, #0xf5
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ cmp r2, #0xa
+ bhi _0223042C
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_022303C8: ; jump table
+ .short _022303DE - _022303C8 - 2 ; case 0
+ .short _02230424 - _022303C8 - 2 ; case 1
+ .short _0223049A - _022303C8 - 2 ; case 2
+ .short _022304D2 - _022303C8 - 2 ; case 3
+ .short _02230BDA - _022303C8 - 2 ; case 4
+ .short _022304F2 - _022303C8 - 2 ; case 5
+ .short _02230846 - _022303C8 - 2 ; case 6
+ .short _022308B2 - _022303C8 - 2 ; case 7
+ .short _02230AD4 - _022303C8 - 2 ; case 8
+ .short _02230B00 - _022303C8 - 2 ; case 9
+ .short _02230B96 - _022303C8 - 2 ; case 10
+_022303DE:
+ mov r1, #0
+ bl MOD62_022300DC
+ add r0, r4, #0
+ ldr r1, _0223071C ; =0x0000FFFF
+ add r0, #0xec
+ bl MOD62_0222EE78
+ add r0, r4, #0
+ bl MOD62_0222EFA0
+ add r0, r4, #0
+ bl MOD62_0222F0D4
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #4
+ bl MOD62_0222E180
+ add r0, r4, #0
+ bl MOD62_0222F778
+ add r0, r4, #0
+ bl MOD62_0222F7A8
+ mov r0, #0x26
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_02230424:
+ bl MOD62_022300D4
+ cmp r0, #1
+ bne _0223042E
+_0223042C:
+ b _02230BDA
+_0223042E:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #1
+ mov r2, #3
+ bl FUN_02003210
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _0223071C ; =0x0000FFFF
+ mov r1, #4
+ bl FUN_02003210
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #7
+ mov r1, #1
+ bl FUN_020178BC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_0222F738
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_0222E9B4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_0222DDE0
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_0223049A:
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02230598
+ mov r0, #3
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #1
+ mov r2, #2
+ bl FUN_02003210
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_022304D2:
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02230598
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_022300DC
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_022304F2:
+ add r2, r1, #0
+ add r2, #8
+ ldr r2, [r4, r2]
+ cmp r2, #7
+ bls _022304FE
+ b _0223080C
+_022304FE:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223050A: ; jump table
+ .short _0223051A - _0223050A - 2 ; case 0
+ .short _0223058C - _0223050A - 2 ; case 1
+ .short _022305E2 - _0223050A - 2 ; case 2
+ .short _02230646 - _0223050A - 2 ; case 3
+ .short _02230692 - _0223050A - 2 ; case 4
+ .short _022306D6 - _0223050A - 2 ; case 5
+ .short _0223072C - _0223050A - 2 ; case 6
+ .short _022307A0 - _0223050A - 2 ; case 7
+_0223051A:
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _02230720 ; =0x0000080B
+ mov r1, #2
+ bl FUN_02003210
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _0223071C ; =0x0000FFFF
+ mov r1, #8
+ bl FUN_02003210
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_022300DC
+ mov r0, #0x3e
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD62_0222F80C
+ add r0, r4, #0
+ bl MOD62_022301AC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_02230388
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #0xd
+ bl MOD62_0222EE78
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_0223058C:
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223059A
+_02230598:
+ b _02230BDA
+_0223059A:
+ mov r0, #0x35
+ str r0, [sp, #0x80]
+ mov r1, #1
+ mov r2, #0
+ mov r0, #0xff
+ str r0, [sp, #0x88]
+ add r0, r4, #0
+ str r1, [sp, #0x7c]
+ str r1, [sp, #0x94]
+ str r2, [sp, #0x84]
+ str r2, [sp, #0x90]
+ add r0, #0xdc
+ ldr r0, [r0]
+ mov r1, #0x9a
+ str r0, [sp, #0x98]
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ str r0, [sp, #0x9c]
+ ldr r0, _02230724 ; =0x00000428
+ ldr r0, [r4, r0]
+ bl FUN_020671BC
+ str r0, [sp, #0x8c]
+ add r0, sp, #0x7c
+ bl MOD08_02229918
+ mov r1, #0x8b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_022305E2:
+ add r2, sp, #0x58
+ mov r0, #0
+ str r0, [r2]
+ str r0, [r2, #4]
+ str r0, [r2, #8]
+ mov r0, #1
+ str r0, [sp, #0x58]
+ add r0, r1, #0
+ add r0, #0x54
+ ldr r0, [r4, r0]
+ sub r1, #0x10
+ str r0, [sp, #0x60]
+ ldr r0, [r4, r1]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ add r0, sp, #0x64
+ bl MOD62_0222DCBC
+ ldr r0, _02230724 ; =0x00000428
+ mov r1, #0xa1
+ ldr r0, [r4, r0]
+ add r2, sp, #0x18
+ bl FUN_02067830
+ ldr r0, _02230724 ; =0x00000428
+ mov r1, #0xaa
+ ldr r0, [r4, r0]
+ add r2, sp, #0x64
+ bl FUN_02067830
+ mov r0, #0x35
+ add r1, sp, #0x58
+ bl MOD08_02228218
+ mov r1, #0x8a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ bl MOD08_02228524
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ mov r1, #0
+ add r0, r0, #4
+ str r1, [r4, r0]
+ b _02230BDA
+_02230646:
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_02228570
+ cmp r0, #1
+ bne _02230702
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_02229A00
+ cmp r0, #1
+ bne _02230702
+ add r0, r4, #0
+ bl MOD62_02230290
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_022285A4
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_02230388
+ add r0, r4, #0
+ bl MOD62_0223026C
+ ldr r0, _02230728 ; =0x000006C6
+ bl FUN_020054C8
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_02230692:
+ bl MOD62_02230290
+ add r5, r0, #0
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_022299E8
+ cmp r0, #0
+ bne _02230702
+ cmp r5, #0
+ bne _02230702
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_02229A2C
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ bl MOD62_0223021C
+ mov r0, #0x3e
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ sub r1, r0, #4
+ ldr r1, [r4, r1]
+ sub r0, r0, #4
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_022306D6:
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_022285B4
+ cmp r0, #0
+ bne _02230702
+ mov r0, #0x97
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02014D7C
+ cmp r0, #1
+ bne _02230702
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02007390
+ cmp r0, #0
+ beq _02230704
+_02230702:
+ b _02230BDA
+_02230704:
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_02228618
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+ nop
+_0223071C: .word 0x0000FFFF
+_02230720: .word 0x0000080B
+_02230724: .word 0x00000428
+_02230728: .word 0x000006C6
+_0223072C:
+ add r0, r1, #0
+ add r0, #0xc
+ ldr r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #0
+ add r0, #0xc
+ str r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0xc
+ ldr r0, [r4, r0]
+ cmp r0, #0x1e
+ blt _0223081A
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #0xc
+ str r2, [r4, r0]
+ mov r0, #0x35
+ mov r3, #1
+ str r0, [sp, #0x34]
+ mov r0, #5
+ str r0, [sp, #0x38]
+ mov r0, #0xff
+ str r0, [sp, #0x3c]
+ add r0, r4, #0
+ str r3, [sp, #0x30]
+ str r2, [sp, #0x44]
+ str r3, [sp, #0x48]
+ add r0, #0xdc
+ ldr r0, [r0]
+ add r1, #0x54
+ str r0, [sp, #0x4c]
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ str r0, [sp, #0x50]
+ ldr r0, [r4, r1]
+ mov r1, #0x9a
+ bl FUN_020671BC
+ str r0, [sp, #0x40]
+ add r0, sp, #0x30
+ bl MOD08_02229918
+ mov r1, #0x8b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ bl MOD62_0222F7E0
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_022307A0:
+ bl MOD62_0223030C
+ add r5, r0, #0
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_022299E8
+ cmp r0, #0
+ bne _0223081A
+ cmp r5, #0
+ bne _0223081A
+ mov r0, #0xa
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _02230B38 ; =0x0000080B
+ mov r1, #2
+ bl FUN_02003210
+ mov r0, #0xa
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _02230B3C ; =0x0000FFFF
+ mov r1, #8
+ bl FUN_02003210
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_02230388
+ add r0, r4, #0
+ bl MOD62_0223039C
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_02229A2C
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_0223080C:
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223081C
+_0223081A:
+ b _02230BDA
+_0223081C:
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_022300DC
+ mov r0, #0xf7
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r1, #4
+ sub r0, #8
+ str r1, [r4, r0]
+ add r0, r4, #0
+ ldr r1, _02230B3C ; =0x0000FFFF
+ add r0, #0xec
+ bl MOD62_0222EE78
+ b _02230BDA
+_02230846:
+ add r0, #0xec
+ mov r1, #0xc
+ bl MOD62_0222EE78
+ add r0, r4, #0
+ bl MOD62_0222DC00
+ cmp r0, #1
+ bne _02230860
+ mov r0, #0x26
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_02230860:
+ add r0, r4, #0
+ bl MOD62_0222DC7C
+ add r0, r4, #0
+ bl MOD62_0222EC28
+ ldr r0, [r4]
+ ldr r0, [r0, #0x28]
+ bl FUN_02029FC8
+ mov r1, #6
+ bl FUN_0202A170
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r2, r4, r0
+ mov r0, #0x99
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ cmp r0, #0xff
+ beq _022308A8
+ ldr r2, [r4]
+ lsl r0, r0, #2
+ add r0, r2, r0
+ ldr r5, [r0, #4]
+ ldr r0, [r2, #0x20]
+ bl FUN_02029C8C
+ add r2, r0, #0
+ add r0, r5, #0
+ mov r1, #0xaa
+ bl FUN_02067830
+_022308A8:
+ mov r0, #0xf5
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _02230BDA
+_022308B2:
+ add r1, #8
+ ldr r1, [r4, r1]
+ cmp r1, #5
+ bhi _0223093C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022308C6: ; jump table
+ .short _022308D2 - _022308C6 - 2 ; case 0
+ .short _02230930 - _022308C6 - 2 ; case 1
+ .short _022309B4 - _022308C6 - 2 ; case 2
+ .short _022309C6 - _022308C6 - 2 ; case 3
+ .short _02230A2E - _022308C6 - 2 ; case 4
+ .short _02230A6A - _022308C6 - 2 ; case 5
+_022308D2:
+ bl MOD62_0222DC00
+ cmp r0, #0
+ bne _022308E4
+ mov r0, #0xf5
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _02230BDA
+_022308E4:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _02230B38 ; =0x0000080B
+ mov r1, #2
+ bl FUN_02003210
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _02230B3C ; =0x0000FFFF
+ mov r1, #8
+ bl FUN_02003210
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_022300DC
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_02230930:
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223093E
+_0223093C:
+ b _02230BDA
+_0223093E:
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_020038F0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r2, #4
+ add r0, r4, #0
+ str r2, [sp, #8]
+ mov r1, #0x28
+ str r1, [sp, #0xc]
+ add r0, #0xe4
+ add r1, #0xe4
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r3, #2
+ bl MOD62_0222EEE0
+ add r0, r4, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ mov r1, #0x19
+ str r0, [sp, #0x1c]
+ mov r0, #4
+ str r0, [sp, #0x20]
+ mov r0, #0xd4
+ str r0, [sp, #0x24]
+ mov r0, #5
+ str r0, [sp, #0x28]
+ add r0, sp, #0x10
+ strb r1, [r0, #0x1c]
+ mov r1, #6
+ strb r1, [r0, #0x1d]
+ mov r0, #0x35
+ bl FUN_02014590
+ mov r1, #0x89
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ add r1, sp, #0x1c
+ bl FUN_020145C8
+ mov r0, #0x43
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0xe
+ bl MOD62_0222EE78
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_022309B4:
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E74C
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+_022309C6:
+ mov r0, #0x89
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0201466C
+ cmp r0, #0
+ beq _02230A76
+ cmp r0, #1
+ beq _022309DC
+ cmp r0, #2
+ bne _02230A76
+_022309DC:
+ mov r1, #0x3e
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_020038F0
+ mov r0, #0x89
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ mov r0, #0x89
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_020145A8
+ mov r0, #0x43
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #1
+ bl FUN_0200D0E0
+ mov r0, #0x43
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019570
+ mov r0, #0x43
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_02230A2E:
+ mov r0, #0xa
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _02230B38 ; =0x0000080B
+ mov r1, #2
+ bl FUN_02003210
+ mov r0, #0xa
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _02230B3C ; =0x0000FFFF
+ mov r1, #8
+ bl FUN_02003210
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_02230A6A:
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _02230A78
+_02230A76:
+ b _02230BDA
+_02230A78:
+ mov r0, #0x3e
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _02230AC2
+ cmp r1, #1
+ beq _02230A8C
+ cmp r1, #2
+ beq _02230ABC
+ b _02230AC2
+_02230A8C:
+ add r0, r4, #0
+ bl MOD62_0222F790
+ add r0, r4, #0
+ bl MOD62_0222F7C4
+ add r0, r4, #0
+ bl MOD62_0222F0D4
+ add r0, r4, #0
+ bl MOD62_0222DAEC
+ add r0, r4, #0
+ bl MOD62_0222D67C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_0222DB10
+ mov r0, #0xf5
+ mov r1, #6
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _02230AC2
+_02230ABC:
+ mov r1, #4
+ sub r0, #0xc
+ str r1, [r4, r0]
+_02230AC2:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_022300DC
+ mov r0, #0xf7
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _02230BDA
+_02230AD4:
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #1
+ mov r2, #2
+ bl FUN_02003210
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_02230B00:
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02230BDA
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ add r0, r4, #0
+ mov r1, #1
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ add r2, r1, #0
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _02230B3C ; =0x0000FFFF
+ b _02230B40
+ .align 2, 0
+_02230B38: .word 0x0000080B
+_02230B3C: .word 0x0000FFFF
+_02230B40:
+ mov r1, #4
+ bl FUN_02003210
+ mov r0, #3
+ add r1, r0, #0
+ bl FUN_020178BC
+ mov r0, #7
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E74C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_0222F738
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_0222E9B4
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_0222DDE0
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ mov r2, #4
+ bl MOD62_0222E180
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_022300DC
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_02230B96:
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02230BDA
+ add r0, r4, #0
+ bl MOD62_022300D4
+ cmp r0, #1
+ beq _02230BDA
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r1, #0
+ add r0, r4, #0
+ mov r2, #0xff
+ add r3, r1, #0
+ bl MOD62_0222F8D4
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #7
+ bl MOD62_0222EE78
+ add r0, r4, #0
+ bl MOD62_0222F1E8
+ add sp, #0xa4
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02230BDA:
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r5, [r0]
+ cmp r5, #0xff
+ bne _02230BF0
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02022144
+ b _02230C98
+_02230BF0:
+ add r0, sp, #0x14
+ add r1, sp, #0x10
+ bl FUN_02020AB0
+ cmp r0, #0
+ beq _02230C3E
+ lsl r6, r5, #4
+ mov r0, #0xca
+ add r1, r4, r6
+ lsl r0, r0, #2
+ ldrb r0, [r1, r0]
+ bl FUN_02085FD0
+ add r1, r0, #0
+ add r0, r4, #0
+ add r0, #0xec
+ bl MOD62_0222F208
+ mov r0, #0xcb
+ ldr r2, [sp, #0x10]
+ add r1, r4, r6
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x14]
+ lsl r2, r2, #0x10
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD62_0222DBCC
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD62_0222DC48
+ b _02230C98
+_02230C3E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD62_0222DB38
+ lsl r6, r5, #4
+ mov r2, #0x33
+ add r1, r4, r6
+ lsl r2, r2, #4
+ add r7, r0, #0
+ ldr r0, [r1, r2]
+ sub r2, r2, #4
+ ldr r1, [r1, r2]
+ mov r2, #0
+ bl MOD62_0222D5F8
+ cmp r7, #0
+ bne _02230C80
+ mov r1, #0xca
+ ldr r0, [r4]
+ add r2, r4, r6
+ lsl r1, r1, #2
+ ldrb r1, [r2, r1]
+ ldr r0, [r0, #0x20]
+ mov r2, #1
+ bl FUN_02029D84
+ add r0, r4, #0
+ bl MOD62_0222F0D4
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD62_0222DB78
+_02230C80:
+ ldr r0, _02230CB8 ; =0x000005EA
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0xff
+ add r0, #0xd4
+ str r1, [r0]
+ add r0, r4, #0
+ ldr r1, _02230CBC ; =0x0000FFFF
+ add r0, #0xec
+ bl MOD62_0222F208
+_02230C98:
+ add r0, r4, #0
+ bl MOD62_0222F758
+ add r0, r4, #0
+ bl MOD62_0222E990
+ add r0, r4, #0
+ bl MOD62_0222E754
+ add r0, r4, #0
+ bl MOD62_0222ECD4
+ mov r0, #1
+ add sp, #0xa4
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02230CB8: .word 0x000005EA
+_02230CBC: .word 0x0000FFFF
+ thumb_func_end MOD62_022303AC
+
+ thumb_func_start MOD62_02230CC0
+MOD62_02230CC0: ; 0x02230CC0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _02230CD8
+ cmp r1, #1
+ beq _02230CDC
+ cmp r1, #2
+ beq _02230CEC
+ b _02230D26
+_02230CD8:
+ add r1, r1, #1
+ str r1, [r4, r0]
+_02230CDC:
+ bl MOD62_0222F2A8
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230D26
+_02230CEC:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _02230D26
+ add r0, r4, #0
+ add r0, #0xec
+ bl FUN_02019178
+ add r0, r4, #0
+ bl MOD62_0222ED04
+ add r0, r4, #0
+ bl MOD62_0222E77C
+ add r0, r4, #0
+ bl MOD62_0222F75C
+ add r0, r4, #0
+ bl MOD62_0222E9D4
+ add r0, r4, #0
+ bl MOD62_0222E0C8
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_02085D9C
+ mov r0, #0
+ pop {r4, pc}
+_02230D26:
+ add r0, r4, #0
+ bl MOD62_0222E754
+ add r0, r4, #0
+ bl MOD62_0222ECD4
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_02230CC0
+
+ thumb_func_start MOD62_02230D38
+MOD62_02230D38: ; 0x02230D38
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r5, #4
+ lsl r6, r1, #3
+ str r0, [sp]
+ ldr r0, [r4, r6]
+ cmp r0, #0xff
+ beq _02230D5C
+ ldr r1, [r5]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #4]
+ mov r1, #0xa1
+ add r2, sp, #0
+ bl FUN_02067830
+_02230D5C:
+ mov r0, #0xff
+ str r0, [r4, r6]
+ add r0, r5, #0
+ bl MOD62_0222EC28
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD62_02230D38
+
+ thumb_func_start MOD62_02230D6C
+MOD62_02230D6C: ; 0x02230D6C
+ push {r4, lr}
+ mov r2, #0xf5
+ add r4, r0, #0
+ lsl r2, r2, #2
+ ldr r1, [r4, r2]
+ cmp r1, #0
+ beq _02230D84
+ cmp r1, #1
+ beq _02230DA2
+ cmp r1, #2
+ beq _02230DB2
+ b _02230DC6
+_02230D84:
+ sub r2, #0x10
+ ldr r1, [r4, r2]
+ bl MOD62_02230D38
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #9
+ bl MOD62_0222EE78
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230DC6
+_02230DA2:
+ ldr r0, _02230DD8 ; =0x021C48B8
+ ldr r3, [r0, #0x48]
+ ldr r0, _02230DDC ; =0x00000CF3
+ tst r0, r3
+ beq _02230DC6
+ add r0, r1, #1
+ str r0, [r4, r2]
+ b _02230DC6
+_02230DB2:
+ mov r1, #0
+ mov r2, #0xff
+ add r3, r1, #0
+ bl MOD62_0222F8D4
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #7
+ bl MOD62_0222EE78
+_02230DC6:
+ add r0, r4, #0
+ bl MOD62_0222E754
+ add r0, r4, #0
+ bl MOD62_0222ECD4
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_02230DD8: .word 0x021C48B8
+_02230DDC: .word 0x00000CF3
+ thumb_func_end MOD62_02230D6C
+
+ thumb_func_start MOD62_02230DE0
+MOD62_02230DE0: ; 0x02230DE0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #3
+ bls _02230DF0
+ b _02230F18
+_02230DF0:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02230DFC: ; jump table
+ .short _02230E04 - _02230DFC - 2 ; case 0
+ .short _02230E46 - _02230DFC - 2 ; case 1
+ .short _02230ED0 - _02230DFC - 2 ; case 2
+ .short _02230EE0 - _02230DFC - 2 ; case 3
+_02230E04:
+ sub r0, #0xe0
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl FUN_0200C6C4
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ mov r0, #0xbd
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C5C0
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #0xa
+ bl MOD62_0222EE78
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C644
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+_02230E46:
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD62_0222F9B4
+ cmp r0, #1
+ bne _02230E66
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD62_0222FA40
+ ldr r0, _02230F28 ; =0x000005DC
+ bl FUN_020054C8
+ b _02230F18
+_02230E66:
+ ldr r0, _02230F2C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _02230EA4
+ mov r2, #0xf1
+ lsl r2, r2, #2
+ ldr r1, [r4, r2]
+ add r2, r2, #4
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD62_0222EC54
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD62_0222FA40
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #0xb
+ bl MOD62_0222EE78
+ mov r0, #0xf5
+ mov r1, #2
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, _02230F28 ; =0x000005DC
+ bl FUN_020054C8
+ b _02230F18
+_02230EA4:
+ mov r0, #2
+ tst r0, r1
+ beq _02230F18
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD62_0222FA40
+ mov r0, #0xf5
+ mov r1, #3
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, _02230F30 ; =0x000005DD
+ bl FUN_020054C8
+ b _02230F18
+_02230ED0:
+ ldr r1, _02230F2C ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ ldr r1, _02230F34 ; =0x00000CF3
+ tst r1, r2
+ beq _02230F18
+ mov r1, #3
+ str r1, [r4, r0]
+ b _02230F18
+_02230EE0:
+ sub r0, #0xe0
+ ldr r0, [r4, r0]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl FUN_0200C6C4
+ mov r1, #0
+ add r0, r4, #0
+ mov r2, #0xff
+ add r3, r1, #0
+ bl MOD62_0222F8D4
+ mov r0, #0xbd
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C5C0
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #7
+ bl MOD62_0222EE78
+_02230F18:
+ add r0, r4, #0
+ bl MOD62_0222E754
+ add r0, r4, #0
+ bl MOD62_0222ECD4
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_02230F28: .word 0x000005DC
+_02230F2C: .word 0x021C48B8
+_02230F30: .word 0x000005DD
+_02230F34: .word 0x00000CF3
+ thumb_func_end MOD62_02230DE0
+
+ thumb_func_start MOD62_02230F38
+MOD62_02230F38: ; 0x02230F38
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD62_02230F38
+
+ thumb_func_start MOD62_02230F3C
+MOD62_02230F3C: ; 0x02230F3C
+ push {r3, lr}
+ 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, _02230F68 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _02230F6C ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ pop {r3, pc}
+ .align 2, 0
+_02230F68: .word 0xFFFFE0FF
+_02230F6C: .word 0x04001000
+ thumb_func_end MOD62_02230F3C
+
+ thumb_func_start MOD62_02230F70
+MOD62_02230F70: ; 0x02230F70
+ push {r3, lr}
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ pop {r3, pc}
+ thumb_func_end MOD62_02230F70
+
+ thumb_func_start MOD62_02230F80
+MOD62_02230F80: ; 0x02230F80
+ push {r4, r5, lr}
+ sub sp, #0xfc
+ add r4, r0, #0
+ bl FUN_0201E6D8
+ ldr r5, _022310B8 ; =0x02231238
+ add r3, sp, #0x10
+ mov r2, #5
+_02230F90:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02230F90
+ add r0, sp, #0x10
+ bl FUN_0201E66C
+ mov r1, #6
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x12
+ bl MIi_CpuClear32
+ mov r1, #0x62
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ bl MIi_CpuClear32
+ mov r1, #0x19
+ mov r2, #1
+ mov r0, #0
+ lsl r1, r1, #0x16
+ lsl r2, r2, #0x12
+ bl MIi_CpuClear32
+ mov r1, #0x66
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ bl MIi_CpuClear32
+ ldr r5, _022310BC ; =0x02231210
+ add r3, sp, #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, _022310C0 ; =0x02231294
+ add r3, sp, #0xa8
+ mov r2, #0xa
+_02230FF0:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02230FF0
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ add r2, sp, #0xa8
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ add r2, sp, #0xc4
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #3
+ add r2, sp, #0xe0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ ldr r1, _022310C4 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #1
+ orr r2, r0
+ strh r2, [r1]
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r5, _022310C8 ; =0x022312E8
+ add r3, sp, #0x38
+ mov r2, #0xe
+_02231052:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02231052
+ add r0, r4, #0
+ mov r1, #4
+ add r2, sp, #0x38
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #5
+ add r2, sp, #0x54
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #6
+ add r2, sp, #0x70
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #7
+ add r2, sp, #0x8c
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #6
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #7
+ bl FUN_02018744
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E74C
+ add sp, #0xfc
+ pop {r4, r5, pc}
+ nop
+_022310B8: .word 0x02231238
+_022310BC: .word 0x02231210
+_022310C0: .word 0x02231294
+_022310C4: .word 0x04000008
+_022310C8: .word 0x022312E8
+ thumb_func_end MOD62_02230F80
+
+ thumb_func_start MOD62_022310CC
+MOD62_022310CC: ; 0x022310CC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x69
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_020081C4
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_0200372C
+ add r4, #0xe4
+ ldr r0, [r4]
+ bl FUN_0201AB60
+ ldr r3, _02231104 ; =0x027E0000
+ ldr r1, _02231108 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ nop
+_02231104: .word 0x027E0000
+_02231108: .word 0x00003FF8
+ thumb_func_end MOD62_022310CC
+
+ .section .rodata
+ ; 0x0223110C
+ .incbin "baserom.nds", 0x2B274C, 0x274
+
+ .section .sinit
+ .word MOD62_0222D5C0