summaryrefslogtreecommitdiff
path: root/arm9/modules
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/modules')
-rw-r--r--arm9/modules/05/asm/module_05.s72
-rw-r--r--arm9/modules/11/asm/module_11.s694
-rw-r--r--arm9/modules/12/asm/module_12.s48108
-rw-r--r--arm9/modules/13/asm/module_13_arm1.s6051
-rw-r--r--arm9/modules/13/asm/module_13_arm2.s35373
-rw-r--r--arm9/modules/13/asm/module_13_init.s33
-rw-r--r--arm9/modules/13/asm/module_13_thumb.s14779
-rw-r--r--arm9/modules/14/asm/module_14.s30403
8 files changed, 135130 insertions, 383 deletions
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index e4c836c6..9374c856 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -61,9 +61,9 @@ _021D752C:
lsl r0, r0, #8
lsr r0, r0, #0x1c
beq _021D7564
- ldr r0, _021D7678 ; =0x00000006
+ ldr r0, _021D7678 ; =SDK_MODULE_06_ID
mov r1, #2
- bl FUN_02005FDC
+ bl HandleLoadOverlay
_021D7564:
ldr r2, [r4, #0x70]
mov r0, #3
@@ -174,7 +174,7 @@ _021D7666:
.balign 4, 0
_021D7670: .word 0x04000050
_021D7674: .word 0x04001050
-_021D7678: .word 0x00000006
+_021D7678: .word SDK_MODULE_06_ID
thumb_func_start MOD05_021D767C
MOD05_021D767C: ; 0x021D767C
@@ -367,8 +367,8 @@ _021D7806:
lsl r0, r0, #8
lsr r0, r0, #0x1c
beq _021D7856
- ldr r0, _021D7860 ; =0x00000006
- bl FUN_02005F60
+ ldr r0, _021D7860 ; =SDK_MODULE_06_ID
+ bl UnloadOverlayByID
_021D7856:
mov r0, #1
pop {r3, r4, r5, pc}
@@ -376,7 +376,7 @@ _021D785A:
mov r0, #0
pop {r3, r4, r5, pc}
nop
-_021D7860: .word 0x00000006
+_021D7860: .word SDK_MODULE_06_ID
thumb_func_start MOD05_021D7864
MOD05_021D7864: ; 0x021D7864
@@ -9485,16 +9485,16 @@ _021DBE9C: .word 0x02050E2D
MOD05_021DBEA0: ; 0x021DBEA0
push {r4, lr}
add r4, r0, #0
- ldr r0, _021DBEB8 ; =0x00000033
+ ldr r0, _021DBEB8 ; =SDK_MODULE_51_ID
mov r1, #2
- bl FUN_02005FDC
+ bl HandleLoadOverlay
add r0, r4, #0
bl FUN_02254A68
add r4, #0x80
str r0, [r4]
pop {r4, pc}
.balign 4, 0
-_021DBEB8: .word 0x00000033
+_021DBEB8: .word SDK_MODULE_51_ID
thumb_func_start MOD05_021DBEBC
MOD05_021DBEBC: ; 0x021DBEBC
@@ -9516,11 +9516,11 @@ MOD05_021DBECC: ; 0x021DBECC
add r0, #0x80
ldr r0, [r0]
bl FUN_02254AB8
- ldr r0, _021DBEE0 ; =0x00000033
- bl FUN_02005F60
+ ldr r0, _021DBEE0 ; =SDK_MODULE_51_ID
+ bl UnloadOverlayByID
pop {r3, pc}
nop
-_021DBEE0: .word 0x00000033
+_021DBEE0: .word SDK_MODULE_51_ID
thumb_func_start MOD05_021DBEE4
MOD05_021DBEE4: ; 0x021DBEE4
@@ -24576,11 +24576,11 @@ _021E33A0:
ldr r0, [r5, #0xc]
bl FUN_0204C1A8
add r6, r0, #0
- ldr r0, _021E341C ; =0x00000013
- bl FUN_02005F60
- ldr r0, _021E3420 ; =0x00000014
+ ldr r0, _021E341C ; =SDK_MODULE_19_ID
+ bl UnloadOverlayByID
+ ldr r0, _021E3420 ; =SDK_MODULE_20_ID
mov r1, #2
- bl FUN_02005FDC
+ bl HandleLoadOverlay
add r0, r6, #0
bl FUN_0204BEB8
mov r0, #1
@@ -24624,8 +24624,8 @@ _021E3414:
add sp, #4
pop {r3, r4, r5, r6, pc}
nop
-_021E341C: .word 0x00000013
-_021E3420: .word 0x00000014
+_021E341C: .word SDK_MODULE_19_ID
+_021E3420: .word SDK_MODULE_20_ID
thumb_func_start MOD05_021E3424
MOD05_021E3424: ; 0x021E3424
@@ -50085,9 +50085,9 @@ MOD05_021EFAAC: ; 0x021EFAAC
bl FUN_0205F1E4
cmp r0, #0
bne _021EFAF8
- ldr r0, _021EFB0C ; =0x00000014
+ ldr r0, _021EFB0C ; =SDK_MODULE_20_ID
mov r1, #2
- bl FUN_02005FDC
+ bl HandleLoadOverlay
mov r0, #1
bl FUN_0200A03C
str r0, [sp]
@@ -50100,16 +50100,16 @@ MOD05_021EFAAC: ; 0x021EFAAC
add sp, #4
pop {r3, r4, r5, r6, pc}
_021EFAF8:
- ldr r0, _021EFB10 ; =0x00000013
+ ldr r0, _021EFB10 ; =SDK_MODULE_19_ID
mov r1, #2
- bl FUN_02005FDC
+ bl HandleLoadOverlay
ldr r0, [r5, #8]
bl FUN_02252440
add sp, #4
pop {r3, r4, r5, r6, pc}
nop
-_021EFB0C: .word 0x00000014
-_021EFB10: .word 0x00000013
+_021EFB0C: .word SDK_MODULE_20_ID
+_021EFB10: .word SDK_MODULE_19_ID
thumb_func_start MOD05_021EFB14
MOD05_021EFB14: ; 0x021EFB14
@@ -50165,8 +50165,8 @@ MOD05_021EFB50: ; 0x021EFB50
ldr r0, [r5, #4]
mov r1, #0
str r1, [r0, #0x14]
- ldr r0, _021EFBAC ; =0x00000014
- bl FUN_02005F60
+ ldr r0, _021EFBAC ; =SDK_MODULE_20_ID
+ bl UnloadOverlayByID
mov r0, #1
pop {r4, r5, r6, pc}
_021EFB94:
@@ -50174,29 +50174,29 @@ _021EFB94:
bl FUN_02252504
cmp r0, #0
beq _021EFBA8
- ldr r0, _021EFBB0 ; =0x00000013
- bl FUN_02005F60
+ ldr r0, _021EFBB0 ; =SDK_MODULE_19_ID
+ bl UnloadOverlayByID
mov r0, #1
pop {r4, r5, r6, pc}
_021EFBA8:
mov r0, #0
pop {r4, r5, r6, pc}
.balign 4, 0
-_021EFBAC: .word 0x00000014
-_021EFBB0: .word 0x00000013
+_021EFBAC: .word SDK_MODULE_20_ID
+_021EFBB0: .word SDK_MODULE_19_ID
thumb_func_start MOD05_021EFBB4
MOD05_021EFBB4: ; 0x021EFBB4
push {r4, lr}
add r4, r0, #0
- ldr r0, _021EFBC8 ; =0x00000013
+ ldr r0, _021EFBC8 ; =SDK_MODULE_19_ID
mov r1, #2
- bl FUN_02005FDC
+ bl HandleLoadOverlay
ldr r0, [r4, #8]
bl FUN_02252440
pop {r4, pc}
.balign 4, 0
-_021EFBC8: .word 0x00000013
+_021EFBC8: .word SDK_MODULE_19_ID
thumb_func_start MOD05_021EFBCC
MOD05_021EFBCC: ; 0x021EFBCC
@@ -50213,15 +50213,15 @@ MOD05_021EFBD8: ; 0x021EFBD8
bl FUN_02252504
cmp r0, #0
beq _021EFBEE
- ldr r0, _021EFBF4 ; =0x00000013
- bl FUN_02005F60
+ ldr r0, _021EFBF4 ; =SDK_MODULE_19_ID
+ bl UnloadOverlayByID
mov r0, #1
pop {r3, pc}
_021EFBEE:
mov r0, #0
pop {r3, pc}
nop
-_021EFBF4: .word 0x00000013
+_021EFBF4: .word SDK_MODULE_19_ID
thumb_func_start MOD05_021EFBF8
MOD05_021EFBF8: ; 0x021EFBF8
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s
index 7f7ae7cf..1f539d08 100644
--- a/arm9/modules/11/asm/module_11.s
+++ b/arm9/modules/11/asm/module_11.s
@@ -128,8 +128,8 @@ _0222D6AC:
bl MOD11_0222FC38
cmp r0, #1
bne _0222D6D2
- ldr r0, _0222D7F0 ; =0x00000007
- bl FUN_02005F60
+ ldr r0, _0222D7F0 ; =SDK_MODULE_07_ID
+ bl UnloadOverlayByID
mov r0, #7
str r0, [r4]
mov r0, #0x3d
@@ -147,9 +147,9 @@ _0222D6D4:
str r0, [r4]
b _0222D7EA
_0222D6DA:
- ldr r0, _0222D7F4 ; =0x00000008
+ ldr r0, _0222D7F4 ; =SDK_MODULE_08_ID
mov r1, #2
- bl FUN_02005FDC
+ bl HandleLoadOverlay
add r0, r6, #0
bl MOD11_0222DB50
mov r0, #9
@@ -184,8 +184,8 @@ _0222D720:
bl MOD11_0222FE58
cmp r0, #1
bne _0222D7EA
- ldr r0, _0222D7F0 ; =0x00000007
- bl FUN_02005F60
+ ldr r0, _0222D7F0 ; =SDK_MODULE_07_ID
+ bl UnloadOverlayByID
mov r0, #5
bl FUN_020168D0
mov r0, #0x3e
@@ -279,8 +279,8 @@ _0222D7EA:
add sp, #0x28
pop {r4, r5, r6, pc}
.align 2, 0
-_0222D7F0: .word 0x00000007
-_0222D7F4: .word 0x00000008
+_0222D7F0: .word SDK_MODULE_07_ID
+_0222D7F4: .word SDK_MODULE_08_ID
thumb_func_start MOD11_0222D7F8
MOD11_0222D7F8: ; 0x0222D7F8
@@ -302,16 +302,16 @@ MOD11_0222D7F8: ; 0x0222D7F8
add r0, r4, #0
mov r1, #3
bl MOD11_02231338
- ldr r0, _0222D838 ; =0x00000008
- bl FUN_02005F60
- ldr r0, _0222D83C ; =0x00000009
+ ldr r0, _0222D838 ; =SDK_MODULE_08_ID
+ bl UnloadOverlayByID
+ ldr r0, _0222D83C ; =SDK_MODULE_09_ID
mov r1, #2
- bl FUN_02005FDC
+ bl HandleLoadOverlay
pop {r4, pc}
.align 2, 0
_0222D834: .word 0x000023FB
-_0222D838: .word 0x00000008
-_0222D83C: .word 0x00000009
+_0222D838: .word SDK_MODULE_08_ID
+_0222D83C: .word SDK_MODULE_09_ID
thumb_func_start MOD11_0222D840
MOD11_0222D840: ; 0x0222D840
@@ -349,11 +349,11 @@ MOD11_0222D840: ; 0x0222D840
MOD11_0222D88C: ; 0x0222D88C
push {r3, r4, r5, lr}
add r4, r0, #0
- ldr r0, _0222D938 ; =0x00000009
- bl FUN_02005F60
- ldr r0, _0222D93C ; =0x00000008
+ ldr r0, _0222D938 ; =SDK_MODULE_09_ID
+ bl UnloadOverlayByID
+ ldr r0, _0222D93C ; =SDK_MODULE_08_ID
mov r1, #2
- bl FUN_02005FDC
+ bl HandleLoadOverlay
add r0, r4, #0
mov r1, #0
bl MOD11_02231338
@@ -363,7 +363,7 @@ MOD11_0222D88C: ; 0x0222D88C
add r1, r0, #0
mov r0, #0
add r2, r5, #0
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
bl FUN_02031190
add r1, r0, #0
add r0, r4, #0
@@ -415,8 +415,8 @@ MOD11_0222D88C: ; 0x0222D88C
bl FUN_02008D24
pop {r3, r4, r5, pc}
.align 2, 0
-_0222D938: .word 0x00000009
-_0222D93C: .word 0x00000008
+_0222D938: .word SDK_MODULE_09_ID
+_0222D93C: .word SDK_MODULE_08_ID
_0222D940: .word 0x000023FB
thumb_func_start MOD11_0222D944
@@ -663,14 +663,14 @@ MOD11_0222DB50: ; 0x0222DB50
add r1, r0, #0
mov r0, #0
add r2, r5, #0
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
bl FUN_02022300
add r5, r0, #0
bl FUN_020222F8
add r1, r0, #0
mov r0, #0
add r2, r5, #0
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
bl FUN_0201B9D4
ldr r1, _0222DF0C ; =0x00002430
str r0, [r4, r1]
@@ -915,14 +915,14 @@ _0222DC42:
ldr r1, _0222DF24 ; =0x00002224
mov r2, #0xe0
add r1, r4, r1
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
ldr r0, [r4, #0x28]
mov r1, #2
bl FUN_020031FC
ldr r1, _0222DF28 ; =0x00002304
mov r2, #0xe0
add r1, r4, r1
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r0, r4, #0
bl MOD11_02230C68
mov r1, #0
@@ -1396,13 +1396,13 @@ _0222E220:
bl FUN_0201C350
add r0, r4, #0
bl FUN_02016A18
- ldr r0, _0222E25C ; =0x00000008
- bl FUN_02005F60
+ ldr r0, _0222E25C ; =SDK_MODULE_08_ID
+ bl UnloadOverlayByID
bl FUN_02033590
cmp r0, #0
bne _0222E244
- ldr r0, _0222E260 ; =0x00000010
- bl FUN_02005F60
+ ldr r0, _0222E260 ; =SDK_MODULE_16_ID
+ bl UnloadOverlayByID
_0222E244:
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -1411,8 +1411,8 @@ _0222E24C: .word 0x00002410
_0222E250: .word 0x000023F9
_0222E254: .word 0x00002430
_0222E258: .word 0x00000704
-_0222E25C: .word 0x00000008
-_0222E260: .word 0x00000010
+_0222E25C: .word SDK_MODULE_08_ID
+_0222E260: .word SDK_MODULE_16_ID
thumb_func_start MOD11_0222E264
MOD11_0222E264: ; 0x0222E264
@@ -1440,25 +1440,25 @@ _0222E282:
mov r0, #0
lsl r1, r1, #0x18
lsl r2, r2, #0x12
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x62
mov r2, #2
mov r0, #0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x19
mov r2, #1
mov r0, #0
lsl r1, r1, #0x16
lsl r2, r2, #0x12
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x66
mov r2, #2
mov r0, #0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
ldr r6, _0222E454 ; =0x0225D9A8
add r3, sp, #0x10
add r2, r3, #0
@@ -3032,13 +3032,13 @@ MOD11_0222EF50: ; 0x0222EF50
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
- blx G3X_SetFog
+ bl G3X_SetFog
mov r0, #0
ldr r2, _0222EFC8 ; =0x00007FFF
add r1, r0, #0
mov r3, #0x3f
str r0, [sp]
- blx G3X_SetClearColor
+ bl G3X_SetClearColor
ldr r1, _0222EFCC ; =0xBFFF0000
ldr r0, _0222EFD0 ; =0x04000580
str r1, [r0]
@@ -3384,13 +3384,13 @@ MOD11_0222F284: ; 0x0222F284
bl FUN_02033590
cmp r0, #0
bne _0222F296
- ldr r0, _0222F298 ; =0x00000010
+ ldr r0, _0222F298 ; =SDK_MODULE_16_ID
mov r1, #2
- bl FUN_02005FDC
+ bl HandleLoadOverlay
_0222F296:
pop {r3, pc}
.align 2, 0
-_0222F298: .word 0x00000010
+_0222F298: .word SDK_MODULE_16_ID
thumb_func_start MOD11_0222F29C
MOD11_0222F29C: ; 0x0222F29C
@@ -3454,31 +3454,31 @@ _0222F30E:
mov r0, #0
lsl r1, r1, #0x18
lsl r2, r2, #0x12
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x62
mov r2, #2
mov r0, #0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x19
mov r2, #1
mov r0, #0
lsl r1, r1, #0x16
lsl r2, r2, #0x12
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x66
mov r2, #2
mov r0, #0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #5
mov r2, #2
mov r0, #0
lsl r1, r1, #0x18
lsl r2, r2, #8
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
ldr r6, _0222F4CC ; =0x0225D9B8
add r3, sp, #0x30
add r2, r3, #0
@@ -4229,7 +4229,7 @@ MOD11_0222F988: ; 0x0222F988
ldr r2, _0222FAB4 ; =0x00002444
mov r0, #0
add r1, r4, #0
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0
add r1, r6, #0
bl MOD11_0222E520
@@ -4244,9 +4244,9 @@ _0222F9C6:
mov r0, #0
pop {r4, r5, r6, pc}
_0222F9CA:
- ldr r0, _0222FAB8 ; =0x00000007
+ ldr r0, _0222FAB8 ; =SDK_MODULE_07_ID
mov r1, #2
- bl FUN_02005FDC
+ bl HandleLoadOverlay
ldr r1, [r4, #0x2c]
mov r0, #8
tst r0, r1
@@ -4263,7 +4263,7 @@ _0222F9DE:
ldr r1, [r4, r1]
mov r0, #0
mov r2, #0x2c
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r5, #0
bl FUN_020313CC
cmp r0, #3
@@ -4363,7 +4363,7 @@ _0222FAA4:
pop {r4, r5, r6, pc}
nop
_0222FAB4: .word 0x00002444
-_0222FAB8: .word 0x00000007
+_0222FAB8: .word SDK_MODULE_07_ID
thumb_func_start MOD11_0222FABC
MOD11_0222FABC: ; 0x0222FABC
@@ -4435,7 +4435,7 @@ _0222FB2E:
ldr r1, [r4, r1]
mov r0, #0
mov r2, #0x2c
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r1, [r4, #0x2c]
mov r0, #8
tst r0, r1
@@ -4612,9 +4612,9 @@ _0222FCA2:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_0222FCA8:
- ldr r0, _0222FE54 ; =0x00000007
+ ldr r0, _0222FE54 ; =SDK_MODULE_07_ID
mov r1, #2
- bl FUN_02005FDC
+ bl HandleLoadOverlay
mov r0, #5
mov r1, #0x2c
bl FUN_02016998
@@ -4625,7 +4625,7 @@ _0222FCA8:
mov r0, #0
add r1, r6, #0
mov r2, #0x2c
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
str r7, [r6]
ldr r0, [r7, #0x14]
cmp r0, #5
@@ -4818,7 +4818,7 @@ _0222FE48:
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
-_0222FE54: .word 0x00000007
+_0222FE54: .word SDK_MODULE_07_ID
thumb_func_start MOD11_0222FE58
MOD11_0222FE58: ; 0x0222FE58
@@ -6514,7 +6514,7 @@ _02230AA2:
mul r1, r0
add r0, r1, #0
mov r1, #0x64
- blx _u32_div_f
+ bl _u32_div_f
str r0, [sp, #0x20]
cmp r0, #0
bne _02230AC2
@@ -6686,7 +6686,7 @@ _02230BFC:
mov r0, #0x96
mul r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #8]
_02230C28:
ldr r0, [sp, #0x18]
@@ -7242,7 +7242,7 @@ MOD11_02230FCC: ; 0x02230FCC
ldr r0, _02231224 ; =0x06010000
ldr r1, [r4, r1]
lsl r2, r2, #0x10
- blx MIi_CpuCopy32
+ bl MIi_CpuCopy32
mov r0, #0x22
lsl r0, r0, #4
ldr r5, [r4, r0]
@@ -7252,7 +7252,7 @@ MOD11_02230FCC: ; 0x02230FCC
mov r2, #2
add r1, r5, #0
lsl r2, r2, #8
- blx MIi_CpuCopy32
+ bl MIi_CpuCopy32
mov r0, #0x19
lsl r0, r0, #0x16
str r0, [sp, #0x24]
@@ -11434,7 +11434,7 @@ _02232FB4:
ldr r1, [r5, r1]
mul r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, _022330E4 ; =0x00002144
str r0, [r5, r1]
_02233040:
@@ -11456,7 +11456,7 @@ _02233040:
add r0, #0xa
mul r0, r1
mov r1, #0xa
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, _022330E4 ; =0x00002144
str r0, [r5, r1]
_0223306E:
@@ -11497,7 +11497,7 @@ _02233094:
mov r0, #0xf
mul r0, r1
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, _022330E4 ; =0x00002144
add sp, #0x1c
str r0, [r5, r1]
@@ -12655,7 +12655,7 @@ _022339C6:
ldrb r0, [r2, r0]
mul r0, r1
mov r1, #7
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
ldr r1, [sp]
lsr r0, r0, #0x10
@@ -12664,7 +12664,7 @@ _022339C6:
lsr r4, r0, #1
ldr r1, [sp, #4]
add r0, r4, #0
- blx _s32_div_f
+ bl _s32_div_f
add r1, r5, #0
add r1, #0x9c
str r0, [r1]
@@ -12680,7 +12680,7 @@ _022339C6:
_02233A1E:
ldr r1, [sp]
add r0, r4, #0
- blx _s32_div_f
+ bl _s32_div_f
add r1, r5, #0
add r1, #0xa0
str r0, [r1]
@@ -12695,7 +12695,7 @@ _02233A1E:
b _02233A6A
_02233A3E:
ldr r1, [sp, #4]
- blx _s32_div_f
+ bl _s32_div_f
add r1, r5, #0
add r1, #0x9c
str r0, [r1]
@@ -13311,7 +13311,7 @@ _02233EEA:
_02233EF4:
ldr r0, [r4]
add r1, r5, #0
- blx _s32_div_f
+ bl _s32_div_f
str r0, [r4]
b _02233F42
_02233F00:
@@ -14219,7 +14219,7 @@ _022345FE:
b _02234648
_02234606:
add r1, r4, #0
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0xc]
b _02234648
_02234610:
@@ -14442,7 +14442,7 @@ MOD11_022347B0: ; 0x022347B0
add r6, r0, #0
bl FUN_0201B9EC
add r1, r4, #1
- blx _s32_div_f
+ bl _s32_div_f
mov r0, #0x4d
add r1, r6, r1
lsl r0, r0, #2
@@ -14548,7 +14548,7 @@ _02234890:
_0223489A:
ldr r0, [r4]
ldr r1, [r1]
- blx _s32_div_f
+ bl _s32_div_f
str r0, [r4]
b _022348F6
_022348A6:
@@ -14709,7 +14709,7 @@ _022349C0:
_022349CA:
ldr r0, [sp, #0xc]
ldr r1, [r1]
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0xc]
b _02234A26
_022349D6:
@@ -15703,7 +15703,7 @@ _0223519E:
_022351A0:
bl FUN_0201B9EC
add r1, r6, #0
- blx _s32_div_f
+ bl _s32_div_f
ldr r2, [r4, #0x64]
mov r0, #0xc0
mul r0, r2
@@ -16388,7 +16388,7 @@ _022356AA:
lsr r5, r0, #0x10
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, r5
bge _0223572C
ldr r1, [r4, #0x64]
@@ -16476,7 +16476,7 @@ _02235784:
lsr r5, r0, #0x10
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, r5
bge _022357DA
ldr r1, [r4, #0x64]
@@ -16623,7 +16623,7 @@ _022358DE:
_022358E0:
ldr r0, [r4]
ldr r1, [r1]
- blx _s32_div_f
+ bl _s32_div_f
str r0, [r4]
cmp r0, #0
bne _022358F0
@@ -16802,7 +16802,7 @@ MOD11_02235A2C: ; 0x02235A2C
_02235A3C:
bl FUN_0201B9EC
ldr r1, _02235A80 ; =0x000001D3
- blx _s32_div_f
+ bl _s32_div_f
add r0, r1, #1
ldr r1, [r6, #0x64]
lsl r0, r0, #0x10
@@ -17258,7 +17258,7 @@ _02235D7E:
add r5, r2, #0
mul r5, r1
mov r1, #5
- blx _s32_div_f
+ bl _s32_div_f
ldr r2, [r4, r5]
mov r0, #0x38
bic r2, r0
@@ -18521,7 +18521,7 @@ _022367DE:
_022367EA:
bl FUN_0201B9EC
add r1, r6, #0
- blx _s32_div_f
+ bl _s32_div_f
ldr r0, [sp, #0xc]
add r5, r1, #0
add r5, r5, r0
@@ -19867,7 +19867,7 @@ MOD11_02237290: ; 0x02237290
bne _0223731C
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
ldr r0, _0223732C ; =0x00003120
strb r1, [r4, r0]
ldrb r1, [r4, r0]
@@ -20322,7 +20322,7 @@ MOD11_02237584: ; 0x02237584
mov r0, #0x28
mul r0, r1
mov r1, #0x3f
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, _02237668 ; =0x00002154
add r0, #0x1e
str r0, [r4, r1]
@@ -20331,7 +20331,7 @@ MOD11_02237584: ; 0x02237584
mov r0, #0xf
mul r0, r1
mov r1, #0x3f
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #1
ldr r0, _0223766C ; =0x00002160
str r1, [r4, r0]
@@ -20496,7 +20496,7 @@ MOD11_022376D0: ; 0x022376D0
mov r0, #0xf
mul r0, r1
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
str r0, [r5, r4]
b _022377AC
_022377A4:
@@ -20701,7 +20701,7 @@ _02237900:
str r2, [r5, r1]
lsl r0, r4, #1
mov r1, #5
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, _02237AB0 ; =0x00002144
add r0, r0, #2
ldr r2, [r5, r1]
@@ -20723,12 +20723,12 @@ _02237900:
add r1, r0, #0
ldr r0, _02237AB0 ; =0x00002144
ldr r0, [r5, r0]
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, _02237AB0 ; =0x00002144
str r0, [r5, r1]
ldr r0, [r5, r1]
mov r1, #0x32
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, _02237AB0 ; =0x00002144
str r0, [r5, r1]
ldr r0, [r5, r1]
@@ -20753,7 +20753,7 @@ _02237900:
mov r0, #0xf
mul r0, r1
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, _02237AB0 ; =0x00002144
str r0, [r5, r1]
_022379CC:
@@ -21220,7 +21220,7 @@ _02237D8A:
beq _02237DA8
bl FUN_0201B9EC
add r1, r7, #0
- blx _s32_div_f
+ bl _s32_div_f
lsl r1, r1, #1
add r0, sp, #0x18
ldrh r2, [r0, r1]
@@ -21713,7 +21713,7 @@ MOD11_02238130: ; 0x02238130
add r1, r1, #4
ldr r1, [r2, r1]
mul r0, r3
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, _02238178 ; =0x00002154
str r0, [r4, r1]
ldr r0, [r4, r1]
@@ -22681,7 +22681,7 @@ MOD11_022388C0: ; 0x022388C0
lsl r2, r2, #2
add r2, r4, r2
ldr r1, [r2, r1]
- blx _u32_div_f
+ bl _u32_div_f
add r1, r0, #1
ldr r0, _02238900 ; =0x00002154
str r1, [r4, r0]
@@ -22743,7 +22743,7 @@ MOD11_02238904: ; 0x02238904
mov r0, #0xf
mul r0, r1
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, _022389F4 ; =0x00002144
str r0, [r5, r1]
mov r0, #0x71
@@ -22906,7 +22906,7 @@ MOD11_02238A84: ; 0x02238A84
add r1, r1, #4
ldr r1, [r3, r1]
mul r0, r2
- blx _u32_div_f
+ bl _u32_div_f
add r1, r0, #1
ldr r0, _02238AB8 ; =0x00002154
str r1, [r4, r0]
@@ -23905,12 +23905,12 @@ _02239222:
bne _022392EC
bl FUN_0201B9EC
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0
bne _022392EC
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r5, r1, #0
add r0, r4, #0
mov r1, #0xa0
@@ -23918,7 +23918,7 @@ _02239222:
bl FUN_020671BC
sub r0, r0, #1
mov r1, #0xa
- blx _u32_div_f
+ bl _u32_div_f
lsl r0, r0, #0x18
lsr r2, r0, #0x18
cmp r2, #0xa
@@ -23999,7 +23999,7 @@ _02239324:
_0223932E:
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
ldr r2, [sp, #0xc]
ldr r0, _02239378 ; =0x0225E15C
ldrb r0, [r0, r2]
@@ -24716,7 +24716,7 @@ _022398F0:
_022398F8:
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, r4
bge _0223991E
add r0, r5, #0
@@ -24799,7 +24799,7 @@ _022399A0:
_022399A2:
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, r4
ble _022399C2
add r0, r5, #0
@@ -25529,7 +25529,7 @@ _02239F82:
beq _02239FB0
bl FUN_0201B9EC
add r1, r4, #0
- blx _s32_div_f
+ bl _s32_div_f
lsl r1, r1, #2
add r0, sp, #0
ldr r0, [r0, r1]
@@ -25721,7 +25721,7 @@ MOD11_0223A0D8: ; 0x0223A0D8
bne _0223A126
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
ldr r0, [sp]
cmp r1, r0
bge _0223A126
@@ -26840,7 +26840,7 @@ _0223A96C:
mov r0, #0x96
mul r0, r1
mov r1, #0x64
- blx _u32_div_f
+ bl _u32_div_f
str r0, [sp, #0x34]
_0223A980:
ldr r0, [sp, #0x1c]
@@ -26850,7 +26850,7 @@ _0223A980:
mov r0, #0x96
mul r0, r1
mov r1, #0x64
- blx _u32_div_f
+ bl _u32_div_f
str r0, [sp, #0x34]
_0223A994:
ldr r0, [r4]
@@ -26870,7 +26870,7 @@ _0223A994:
mov r0, #0xaa
mul r0, r1
mov r1, #0x64
- blx _u32_div_f
+ bl _u32_div_f
str r0, [sp, #0x34]
b _0223A9D0
_0223A9C2:
@@ -26878,7 +26878,7 @@ _0223A9C2:
mov r0, #0x96
mul r0, r1
mov r1, #0x64
- blx _u32_div_f
+ bl _u32_div_f
str r0, [sp, #0x34]
_0223A9D0:
mov r1, #2
@@ -29543,7 +29543,7 @@ _0223BFEE:
add r0, r2, #0
ldr r2, _0223C208 ; =0x0225DCF1
ldrb r1, [r2, r1]
- blx _u32_div_f
+ bl _u32_div_f
str r0, [sp]
b _0223C03A
_0223C026:
@@ -29697,7 +29697,7 @@ _0223C12E:
add r0, r1, #0
mul r0, r5
mov r1, #0xa
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, _0223C218 ; =0x00002D8C
add r2, r4, r6
ldr r1, [r2, r1]
@@ -29706,7 +29706,7 @@ _0223C12E:
mul r1, r0
add r0, r1, #0
add r1, r7, #0
- blx _u32_div_f
+ bl _u32_div_f
add r1, r0, #0
ldr r0, _0223C21C ; =0x00002DAC
add r2, r4, r6
@@ -29722,7 +29722,7 @@ _0223C170:
mov r0, #0xf
mul r0, r1
mov r1, #0xa
- blx _u32_div_f
+ bl _u32_div_f
add r1, r0, #0
_0223C182:
cmp r1, #0xff
@@ -29735,7 +29735,7 @@ _0223C18A:
strh r2, [r0]
mov r0, #0xff
lsl r0, r0, #0x10
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, _0223C224 ; =0x040002B8
add r2, r1, #0
str r0, [r1]
@@ -29772,7 +29772,7 @@ _0223C1CC:
ldr r1, _0223C228 ; =0x040002B4
ldr r0, _0223C22C ; =0x000FFFF0
ldr r1, [r1]
- blx _u32_div_f
+ bl _u32_div_f
add r6, r0, #0
mov r5, #0
_0223C1E0:
@@ -31753,7 +31753,7 @@ MOD11_0223D1DC: ; 0x0223D1DC
ldr r2, _0223D22C ; =0x0000314C
mov r0, #0
add r1, r4, #0
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0
bl MOD11_02245494
add r0, r5, #0
@@ -36663,7 +36663,7 @@ MOD11_0223F770: ; 0x0223F770
str r0, [r4, #0xc]
bl FUN_0201B9EC
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
mov r0, #0x4e
lsl r0, r0, #2
str r1, [r4, r0]
@@ -36709,7 +36709,7 @@ MOD11_0223F7CC: ; 0x0223F7CC
str r0, [r4, #0xc]
bl FUN_0201B9EC
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
mov r0, #0x4e
lsl r0, r0, #2
str r1, [r4, r0]
@@ -37667,7 +37667,7 @@ _0223FF42:
beq _0223FF9E
bl FUN_0201B9EC
mov r1, #5
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0
beq _0223FF82
ldr r0, [sp, #0x1c]
@@ -38595,7 +38595,7 @@ _02240688:
ldr r2, _02240880 ; =0x0225E179
ldrb r1, [r2, r1]
mul r0, r4
- blx _u32_div_f
+ bl _u32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, r5, #0
@@ -38606,7 +38606,7 @@ _02240688:
mov r0, #0x82
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_022406B6:
@@ -38644,7 +38644,7 @@ _022406B6:
mov r0, #0x50
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_02240708:
@@ -38664,7 +38664,7 @@ _02240708:
mov r0, #0x50
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_02240732:
@@ -38678,7 +38678,7 @@ _02240732:
mov r0, #6
mul r0, r4
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0224074E:
@@ -38693,7 +38693,7 @@ _0224074E:
mov r0, #0x50
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0224076E:
@@ -38713,7 +38713,7 @@ _0224076E:
mov r0, #0x32
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_02240798:
@@ -38730,7 +38730,7 @@ _02240798:
mov r1, #0x64
sub r0, r1, r0
mul r0, r4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_022407BE:
@@ -38748,7 +38748,7 @@ _022407BE:
add r0, #0x64
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_022407E6:
@@ -38763,7 +38763,7 @@ _022407E6:
add r0, r4, #0
mul r0, r6
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_02240806:
@@ -38781,7 +38781,7 @@ _02240806:
mov r0, #0x78
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0224082A:
@@ -38795,13 +38795,13 @@ _0224082A:
mov r0, #0xa
mul r0, r4
mov r1, #6
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_02240846:
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r1, #1
cmp r0, r4
ble _02240860
@@ -39876,7 +39876,7 @@ _0224106A:
bne _022410A4
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
ldr r0, [sp]
cmp r1, r0
bge _022410A4
@@ -42997,7 +42997,7 @@ MOD11_02242870: ; 0x02242870
_022428B8:
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, r6
bge _0224290A
ldr r0, _02242918 ; =0x00003044
@@ -46522,7 +46522,7 @@ _02244356:
mul r0, r2
ldr r2, _0224456C ; =0x0225E285
ldrb r1, [r2, r1]
- blx _s32_div_f
+ bl _s32_div_f
add r6, r0, #0
ldr r0, [sp, #0x14]
lsl r1, r7, #1
@@ -46534,7 +46534,7 @@ _02244356:
mul r0, r2
ldr r2, _0224456C ; =0x0225E285
ldrb r1, [r2, r1]
- blx _s32_div_f
+ bl _s32_div_f
add r4, r0, #0
mov r0, #0xd
str r0, [sp]
@@ -46630,7 +46630,7 @@ _0224442E:
mov r0, #0xf
mul r0, r6
mov r1, #0xa
- blx _u32_div_f
+ bl _u32_div_f
add r6, r0, #0
_02244440:
ldr r0, [sp, #0x58]
@@ -46658,7 +46658,7 @@ _02244456:
mov r0, #0xf
mul r0, r6
mov r1, #0xa
- blx _u32_div_f
+ bl _u32_div_f
add r6, r0, #0
b _02244488
_02244478:
@@ -46721,14 +46721,14 @@ _022444DE:
bne _0224451C
ldr r1, [sp, #0x54]
mov r0, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0
ldr r0, [sp, #8]
lsl r0, r0, #1
add r2, r5, r0
ldr r0, _02244584 ; =0x0000310C
ldrh r0, [r2, r0]
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0
bne _0224451C
mov r0, #1
@@ -46806,7 +46806,7 @@ _02244594:
mov r0, #0xf
mul r0, r4
mov r1, #0xa
- blx _u32_div_f
+ bl _u32_div_f
add r4, r0, #0
_022445A6:
ldr r0, [sp, #0x50]
@@ -46834,7 +46834,7 @@ _022445BC:
mov r0, #0xf
mul r0, r4
mov r1, #0xa
- blx _u32_div_f
+ bl _u32_div_f
add r4, r0, #0
b _022445EE
_022445DE:
@@ -46897,14 +46897,14 @@ _02244644:
bne _02244682
ldr r1, [sp, #0x4c]
mov r0, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0
ldr r0, [sp, #0xc]
lsl r0, r0, #1
add r2, r5, r0
ldr r0, _022448A0 ; =0x0000310C
ldrh r0, [r2, r0]
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0
bne _02244682
mov r0, #1
@@ -47517,7 +47517,7 @@ _02244AF4:
_02244AFC:
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, r6
bge _02244B16
ldr r1, _02244C1C ; =0x0000213C
@@ -47586,7 +47586,7 @@ _02244B7C:
_02244B84:
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, r7
bge _02244C00
ldr r2, _02244C04 ; =0x00002174
@@ -48866,7 +48866,7 @@ _02245558:
mov r0, #0
add r1, r6, #0
mov r2, #0x1c
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r1, r5, r4
ldr r0, _02245584 ; =0x000021A4
add r4, r4, #1
@@ -49765,11 +49765,11 @@ _02245C7A:
mov r0, #0
add r1, r7, #0
mov r2, #0x40
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r0, #0
add r1, r6, #0
mov r2, #4
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r0, _02245D24 ; =0x00002DB0
ldr r1, [r4, r0]
ldr r0, [sp, #8]
@@ -50618,7 +50618,7 @@ _02246346:
mov r0, #0xf
mul r0, r1
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x50]
_02246354:
add r0, r5, #0
@@ -50866,7 +50866,7 @@ _02246532:
str r0, [sp, #0x1c]
mul r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x50]
_0224654A:
ldr r0, [sp, #0x54]
@@ -51718,7 +51718,7 @@ MOD11_02246B58: ; 0x02246B58
blo _02246B76
bl FUN_0201B9EC
mov r1, #0x70
- blx _u32_div_f
+ bl _u32_div_f
add r6, r1, #0
mov r0, #0
_02246B76:
@@ -51758,7 +51758,7 @@ _02246BA8:
ldrb r0, [r4, #2]
mul r0, r1
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0
_02246BC2:
cmp r6, r7
@@ -51768,7 +51768,7 @@ _02246BC2:
ldrb r0, [r4, #2]
mul r0, r1
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0
_02246BD6:
add r4, r4, #3
@@ -52481,7 +52481,7 @@ _0224711C:
cmp r2, r1
bhs _02247164
lsl r0, r2, #7
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, _0224718C ; =0x0000311E
ldrb r2, [r5, r1]
mov r1, #0x1e
@@ -53156,7 +53156,7 @@ _02247616:
beq _02247696
bl FUN_0201B9EC
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #3
bge _02247696
ldr r0, [sp, #4]
@@ -53237,7 +53237,7 @@ MOD11_022476C0: ; 0x022476C0
_022476CC:
mov r4, #1
_022476CE:
- blx _s32_div_f
+ bl _s32_div_f
cmp r0, #0
bne _022476D8
add r0, r4, #0
@@ -53740,7 +53740,7 @@ _02247A56:
ldr r0, _02247D6C ; =0x0225E284
ldrb r0, [r0, r2]
mul r0, r3
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, [sp, #0x78]
add r0, r1, r0
str r0, [sp, #0x78]
@@ -53755,7 +53755,7 @@ _02247A56:
ldr r0, _02247D6C ; =0x0225E284
ldrb r0, [r0, r2]
mul r0, r3
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, [sp, #0x74]
add r0, r1, r0
str r0, [sp, #0x74]
@@ -54211,7 +54211,7 @@ _02247E08:
add r6, r0, #0
bl FUN_0201B9EC
add r1, r6, #0
- blx _s32_div_f
+ bl _s32_div_f
mov r0, #0xc0
add r2, r5, #0
mul r2, r0
@@ -54974,7 +54974,7 @@ _022483C6:
beq _022483E6
bl FUN_0201B9EC
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #3
blt _022483E8
_022483E6:
@@ -55214,12 +55214,12 @@ _0224859A:
beq _02248650
bl FUN_0201B9EC
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #3
bge _02248650
bl FUN_0201B9EC
mov r1, #3
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0
beq _022485D0
cmp r1, #1
@@ -55322,7 +55322,7 @@ _02248688:
beq _02248770
bl FUN_0201B9EC
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #3
bge _02248770
add r0, r5, #0
@@ -55396,7 +55396,7 @@ _02248712:
beq _02248770
bl FUN_0201B9EC
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #3
bge _02248770
add r0, r5, #0
@@ -55482,7 +55482,7 @@ _022487AC:
beq _0224887A
bl FUN_0201B9EC
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #3
bge _0224887A
add r0, r5, #0
@@ -56527,7 +56527,7 @@ _02248F98:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r6, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -56561,7 +56561,7 @@ _02248FDC:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r6, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -56599,7 +56599,7 @@ _02249024:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r6, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -56634,7 +56634,7 @@ _0224906A:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r6, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -56669,7 +56669,7 @@ _022490B0:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r6, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -56704,7 +56704,7 @@ _022490F6:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r6, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -56740,7 +56740,7 @@ _0224913A:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r6, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -56765,7 +56765,7 @@ _02249168:
_02249172:
bl FUN_0201B9EC
add r1, r7, #0
- blx _s32_div_f
+ bl _s32_div_f
add r0, r5, r1
ldrsb r0, [r0, r6]
cmp r0, #0xc
@@ -56833,7 +56833,7 @@ _022491EA:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r6, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -56859,7 +56859,7 @@ _0224921E:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r6, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -57417,7 +57417,7 @@ _0224965C:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r7, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -57444,7 +57444,7 @@ _02249692:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r7, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -57654,7 +57654,7 @@ _02249838:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r7, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -57689,7 +57689,7 @@ _0224987E:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r7, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -57725,7 +57725,7 @@ _022498C6:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r7, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -57761,7 +57761,7 @@ _0224990E:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r7, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -57800,7 +57800,7 @@ _02249958:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r7, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -57836,7 +57836,7 @@ _022499A0:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r7, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -57870,7 +57870,7 @@ _022499E4:
add r1, r4, r1
ldr r0, [r1, r0]
add r1, r7, #0
- blx _u32_div_f
+ bl _u32_div_f
ldr r1, [sp, #0x14]
ldr r1, [r1, r5]
cmp r1, r0
@@ -57894,7 +57894,7 @@ _02249A12:
_02249A1A:
bl FUN_0201B9EC
mov r1, #5
- blx _s32_div_f
+ bl _s32_div_f
add r0, r5, r1
ldrsb r0, [r0, r7]
cmp r0, #0xc
@@ -59203,7 +59203,7 @@ _0224A3F2:
_0224A3FC:
bl FUN_0201B9EC
add r1, r7, #0
- blx _s32_div_f
+ bl _s32_div_f
ldr r0, [r4, #0x64]
add r2, r0, #0
mul r2, r6
@@ -60053,7 +60053,7 @@ _0224AA5A:
_0224AA64:
bl FUN_0201B9EC
add r1, r7, #0
- blx _s32_div_f
+ bl _s32_div_f
ldr r0, [r4, #0x6c]
add r2, r0, #0
mul r2, r6
@@ -61458,7 +61458,7 @@ _0224B564:
mov r1, #0xa
ldr r0, [r5, r0]
mul r0, r4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, sp, #0x90
@@ -61489,7 +61489,7 @@ _0224B594:
mov r0, #0xf
mul r0, r4
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0224B5B2:
@@ -61503,7 +61503,7 @@ _0224B5B2:
mov r0, #0xf
mul r0, r4
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0224B5CE:
@@ -61561,7 +61561,7 @@ _0224B620:
mov r1, #0x64
add r0, #0x64
mul r0, r4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
b _0224B648
@@ -61578,7 +61578,7 @@ _0224B648:
mov r0, #0x96
mul r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x7c]
@@ -61590,7 +61590,7 @@ _0224B660:
mov r0, #0x96
mul r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x74]
@@ -61613,7 +61613,7 @@ _0224B678:
mov r0, #0x96
mul r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x74]
@@ -61636,7 +61636,7 @@ _0224B6A6:
mov r0, #0x96
mul r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x10]
@@ -61727,7 +61727,7 @@ _0224B774:
mov r1, #0x64
add r0, #0x64
mul r0, r4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0224B78A:
@@ -61748,7 +61748,7 @@ _0224B798:
mov r1, #0x64
add r0, #0x64
mul r0, r4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0224B7B2:
@@ -61762,7 +61762,7 @@ _0224B7B2:
mov r1, #0x64
add r0, #0x64
mul r0, r4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0224B7CE:
@@ -61777,7 +61777,7 @@ _0224B7CE:
add r0, #0x64
str r0, [sp, #0x2c]
mul r0, r4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0224B7EC:
@@ -61802,7 +61802,7 @@ _0224B808:
mov r0, #0x96
mul r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x7c]
@@ -61816,7 +61816,7 @@ _0224B81E:
mov r0, #0x96
mul r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x7c]
@@ -61835,7 +61835,7 @@ _0224B83A:
mov r0, #0x96
mul r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x78]
@@ -61855,7 +61855,7 @@ _0224B862:
mov r0, #0x96
mul r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x74]
@@ -61875,7 +61875,7 @@ _0224B88C:
mov r0, #0x96
mul r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x74]
@@ -61910,14 +61910,14 @@ _0224B8E6:
bne _0224B90A
ldr r0, [sp, #0x4c]
mov r1, #3
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, [sp, #0x50]
cmp r1, r0
bgt _0224B90A
mov r0, #0x96
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0224B90A:
@@ -61927,14 +61927,14 @@ _0224B90A:
bne _0224B92E
ldr r0, [sp, #0x4c]
mov r1, #3
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, [sp, #0x50]
cmp r1, r0
bgt _0224B92E
mov r0, #0x96
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0224B92E:
@@ -61944,14 +61944,14 @@ _0224B92E:
bne _0224B952
ldr r0, [sp, #0x4c]
mov r1, #3
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, [sp, #0x50]
cmp r1, r0
bgt _0224B952
mov r0, #0x96
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0224B952:
@@ -61961,14 +61961,14 @@ _0224B952:
bne _0224B976
ldr r0, [sp, #0x4c]
mov r1, #3
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, [sp, #0x50]
cmp r1, r0
bgt _0224B976
mov r0, #0x96
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0224B976:
@@ -61996,7 +61996,7 @@ _0224B98E:
mov r0, #0x7d
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0224B9B0:
@@ -62129,7 +62129,7 @@ _0224BA5C:
mov r0, #0x7d
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0224BAAA:
@@ -62148,7 +62148,7 @@ _0224BAAA:
mov r0, #0x4b
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0224BAD0:
@@ -62164,7 +62164,7 @@ _0224BAD4:
mov r0, #0xc
mul r0, r4
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
b _0224BAF8
@@ -62203,7 +62203,7 @@ _0224BAF8:
mov r0, #0xf
mul r0, r1
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x74]
@@ -62223,7 +62223,7 @@ _0224BB54:
mov r0, #0xf
mul r0, r1
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x10]
@@ -62244,7 +62244,7 @@ _0224BB66:
mov r0, #0xf
mul r0, r1
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x7c]
@@ -62270,7 +62270,7 @@ _0224BB92:
mov r0, #0xf
mul r0, r1
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x10]
@@ -62303,7 +62303,7 @@ _0224BBE0:
mul r0, r2
ldr r2, _0224BDE8 ; =0x0225E285
ldrb r1, [r2, r1]
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x84]
b _0224BC24
_0224BC08:
@@ -62319,7 +62319,7 @@ _0224BC0E:
mul r0, r2
ldr r2, _0224BDE8 ; =0x0225E285
ldrb r1, [r2, r1]
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x84]
_0224BC24:
ldr r0, [sp, #0x84]
@@ -62329,7 +62329,7 @@ _0224BC24:
str r1, [sp, #0x84]
lsl r0, r0, #1
mov r1, #5
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #2
ldr r0, [sp, #0x84]
mul r1, r0
@@ -62347,7 +62347,7 @@ _0224BC24:
mul r0, r2
ldr r2, _0224BDE8 ; =0x0225E285
ldrb r1, [r2, r1]
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x78]
b _0224BC76
_0224BC60:
@@ -62359,14 +62359,14 @@ _0224BC60:
mul r0, r2
ldr r2, _0224BDE8 ; =0x0225E285
ldrb r1, [r2, r1]
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x78]
_0224BC76:
ldr r0, [sp, #0x84]
ldr r1, [sp, #0x78]
- blx _s32_div_f
+ bl _s32_div_f
mov r1, #0x32
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x84]
ldr r0, [sp, #0x48]
mov r1, #0x10
@@ -62406,7 +62406,7 @@ _0224BCB2:
ldr r0, [sp, #0x84]
mov r1, #3
lsl r0, r0, #1
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x84]
b _0224BDC8
_0224BCD6:
@@ -62432,7 +62432,7 @@ _0224BCE2:
mul r0, r2
ldr r2, _0224BDE8 ; =0x0225E285
ldrb r1, [r2, r1]
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x84]
b _0224BD24
_0224BD08:
@@ -62448,7 +62448,7 @@ _0224BD0E:
mul r0, r2
ldr r2, _0224BDE8 ; =0x0225E285
ldrb r1, [r2, r1]
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x84]
_0224BD24:
ldr r0, [sp, #0x84]
@@ -62458,7 +62458,7 @@ _0224BD24:
str r1, [sp, #0x84]
lsl r0, r0, #1
mov r1, #5
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #2
ldr r0, [sp, #0x84]
mul r1, r0
@@ -62476,7 +62476,7 @@ _0224BD24:
mul r0, r2
ldr r2, _0224BDE8 ; =0x0225E285
ldrb r1, [r2, r1]
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x10]
b _0224BD76
_0224BD60:
@@ -62488,14 +62488,14 @@ _0224BD60:
mul r0, r2
ldr r2, _0224BDE8 ; =0x0225E285
ldrb r1, [r2, r1]
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x10]
_0224BD76:
ldr r0, [sp, #0x84]
ldr r1, [sp, #0x10]
- blx _s32_div_f
+ bl _s32_div_f
mov r1, #0x32
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x84]
ldr r0, [sp, #0xc]
mov r1, #2
@@ -62520,7 +62520,7 @@ _0224BD76:
ldr r0, [sp, #0x84]
mov r1, #3
lsl r0, r0, #1
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x84]
b _0224BDC8
_0224BDBE:
@@ -62628,7 +62628,7 @@ _0224BE8C:
mov r0, #0xf
mul r0, r1
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x84]
_0224BE9A:
ldr r1, _0224BF0C ; =0x000080CF
@@ -62658,7 +62658,7 @@ _0224BEC4:
mov r0, #0xf
mul r0, r1
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x84]
b _0224BEDE
_0224BED4:
@@ -62681,7 +62681,7 @@ _0224BEDE:
mov r0, #0xf
mul r0, r1
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x84]
_0224BF00:
ldr r0, [sp, #0x84]
@@ -62707,7 +62707,7 @@ MOD11_0224BF10: ; 0x0224BF10
mov r1, #0x64
sub r0, r1, r0
mul r0, r4
- blx _s32_div_f
+ bl _s32_div_f
add r4, r0, #0
bne _0224BF36
mov r4, #1
@@ -62812,7 +62812,7 @@ _0224BFE0:
bl FUN_0201B9EC
ldr r1, _0224C040 ; =0x0225E244
ldrb r1, [r1, r5]
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0
bne _0224C026
ldr r1, [sp]
@@ -64223,7 +64223,7 @@ _0224C9A6:
mov r0, #0xf
mul r0, r1
mov r1, #0x3f
- blx _s32_div_f
+ bl _s32_div_f
add r5, r0, #1
cmp r5, #9
blt _0224CA54
@@ -64295,7 +64295,7 @@ MOD11_0224CA64: ; 0x0224CA64
mov r0, #0
add r1, r4, #0
lsl r2, r2, #2
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r0, #0x65
ldrb r1, [r5]
lsl r0, r0, #2
@@ -66824,7 +66824,7 @@ MOD11_0224DE50: ; 0x0224DE50
mov r0, #0
add r1, r4, #0
mov r2, #1
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r0, #0x65
str r7, [r4, #0xc]
lsl r0, r0, #2
@@ -66918,7 +66918,7 @@ MOD11_0224DF18: ; 0x0224DF18
mov r0, #0
add r1, r4, #0
mov r2, #1
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r0, #0x65
str r6, [r4, #0xc]
lsl r0, r0, #2
@@ -66957,7 +66957,7 @@ MOD11_0224DF60: ; 0x0224DF60
mov r0, #0
add r1, r4, #0
mov r2, #0x3c
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r7, #0
strb r7, [r4, #0xa]
strb r7, [r4, #0xb]
@@ -67569,7 +67569,7 @@ _0224E422:
add r0, r4, #0
mov r1, #0
mov r2, #1
- blx MI_CpuFill8
+ bl MI_CpuFill8
str r7, [r4, #0xc]
add r0, r4, #0
ldrb r1, [r5]
@@ -67637,7 +67637,7 @@ _0224E4AE:
add r0, r4, #0
mov r1, #0
mov r2, #1
- blx MI_CpuFill8
+ bl MI_CpuFill8
str r7, [r4, #0xc]
add r0, r4, #0
ldrb r1, [r5]
@@ -68275,7 +68275,7 @@ MOD11_0224E9C0: ; 0x0224E9C0
mov r0, #0
add r1, r4, #0
mov r2, #1
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r0, #0x65
str r7, [r4, #0xc]
lsl r0, r0, #2
@@ -72931,11 +72931,11 @@ MOD11_02250F94: ; 0x02250F94
add r0, r2, #0
ldr r2, _02251010 ; =0x0225E831
ldrb r1, [r2, r1]
- blx _s32_div_f
+ bl _s32_div_f
add r5, r0, #0
bl FUN_0201B9EC
mov r1, #0xff
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, r5
ldr r0, [r4]
bgt _02250FEA
@@ -73224,7 +73224,7 @@ _0225122E:
blt _0225121C
bl FUN_0201B9EC
add r1, r7, #0
- blx _s32_div_f
+ bl _s32_div_f
lsl r1, r1, #2
add r0, sp, #0x10
ldr r4, [r0, r1]
@@ -74576,7 +74576,7 @@ _02251CEC:
mov r1, #0
mov r2, #1
add r5, r0, #0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r4]
add r1, r6, #0
bl MOD11_02230260
@@ -77140,7 +77140,7 @@ _0225319A:
bl MOD11_02231244
add r1, r7, #0
mov r2, #0xe0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
ldr r0, [r4]
bl MOD11_0222FF74
cmp r0, #0x4a
@@ -77153,7 +77153,7 @@ _0225319A:
bl MOD11_02231250
add r1, r7, #0
mov r2, #0xa0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
b _0225323E
_022531DC:
ldr r0, [r4]
@@ -77168,7 +77168,7 @@ _022531DC:
bl MOD11_02231250
add r1, r7, #0
mov r2, #0xe0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
b _0225323E
_02253200:
ldr r0, [r4]
@@ -77184,7 +77184,7 @@ _02253200:
bl MOD11_02231250
add r1, r7, #0
mov r2, #0xa0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
b _0225323E
_02253226:
add r0, r5, #0
@@ -77195,7 +77195,7 @@ _02253226:
bl MOD11_02231250
add r1, r7, #0
mov r2, #0x80
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
_0225323E:
mov r0, #0x10
str r0, [sp]
@@ -77292,7 +77292,7 @@ _022532F6:
bl MOD11_02231244
add r1, r6, #0
mov r2, #0xe0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
ldr r0, [r4]
bl MOD11_0222FF74
cmp r0, #0x4a
@@ -77305,7 +77305,7 @@ _022532F6:
bl MOD11_02231250
add r1, r6, #0
mov r2, #0xa0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
b _02253394
_02253332:
ldr r0, [r4]
@@ -77320,7 +77320,7 @@ _02253332:
bl MOD11_02231250
add r1, r6, #0
mov r2, #0xe0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
b _02253394
_02253356:
ldr r0, [r4]
@@ -77336,7 +77336,7 @@ _02253356:
bl MOD11_02231250
add r1, r6, #0
mov r2, #0xa0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
b _02253394
_0225337C:
add r0, r5, #0
@@ -77347,7 +77347,7 @@ _0225337C:
bl MOD11_02231250
add r1, r6, #0
mov r2, #0x80
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
_02253394:
mov r3, #0
str r3, [sp]
@@ -79823,7 +79823,7 @@ _022546D4:
asr r1, r0, #0x1f
lsl r2, r2, #0xa
mov r3, #0
- blx _ll_mul
+ bl _ll_mul
add r2, r1, #0
mov r1, #4
add r5, r0, #0
@@ -81204,7 +81204,7 @@ MOD11_02255188: ; 0x02255188
add r1, sp, #0x28
mov r2, #0x2c
add r6, r3, #0
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r0, [sp, #4]
bl MOD11_0222FF78
ldr r1, [sp, #0xc]
@@ -82911,7 +82911,7 @@ MOD11_02255EAC: ; 0x02255EAC
mov r0, #0x64
mul r0, r1
add r1, r2, #0
- blx _s32_div_f
+ bl _s32_div_f
add r1, sp, #4
strh r0, [r1, #2]
mov r0, #4
@@ -82952,7 +82952,7 @@ _02255F12:
mul r0, r1
add r1, r2, #4
ldr r1, [r6, r1]
- blx _u32_div_f
+ bl _u32_div_f
add r1, sp, #4
strh r0, [r1, #2]
_02255F24:
@@ -84395,7 +84395,7 @@ MOD11_022569DC: ; 0x022569DC
add r1, r5, #0
mov r2, #8
add r6, r3, #0
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r0, [sp]
bl MOD11_0222FF74
add r4, r0, #0
@@ -85259,7 +85259,7 @@ _0225705C:
add r1, r1, r3
ldr r3, _0225713C ; =0x0225E9B2
ldrh r2, [r3, r2]
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
mov r0, #0x45
bl MOD11_02257F60
add r1, r5, #0
@@ -85273,7 +85273,7 @@ _0225705C:
add r1, r1, r3
ldr r3, _02257144 ; =0x0225EA12
ldrh r2, [r3, r2]
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
ldr r1, [r5, #0x28]
add r0, r5, #0
mov r2, #6
@@ -85295,7 +85295,7 @@ _022570E8:
add r1, r1, r3
ldr r3, _0225713C ; =0x0225E9B2
ldrh r2, [r3, r2]
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
mov r0, #0x44
bl MOD11_02257F60
add r1, r5, #0
@@ -85309,7 +85309,7 @@ _022570E8:
add r1, r1, r3
ldr r3, _0225714C ; =0x0225E9E2
ldrh r2, [r3, r2]
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
ldr r1, [r5, #0x28]
add r0, r5, #0
mov r2, #1
@@ -85908,7 +85908,7 @@ MOD11_022574F0: ; 0x022574F0
add r0, r6, #0
ldrh r2, [r2, r7]
add r1, r3, r1
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r0, r5, #0
add r0, #0x25
ldrb r0, [r0]
@@ -85923,7 +85923,7 @@ MOD11_022574F0: ; 0x022574F0
ldr r0, [sp, #0x20]
ldrh r2, [r2, r7]
add r1, r3, r1
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r0, r5, #0
add r0, #0x25
ldrb r0, [r0]
@@ -85940,7 +85940,7 @@ MOD11_022574F0: ; 0x022574F0
add r1, r1, r3
ldr r3, _02257648 ; =0x0225EC92
ldrh r2, [r3, r2]
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r5, #0x25
ldrb r0, [r5]
ldr r4, [r4, #4]
@@ -85957,7 +85957,7 @@ MOD11_022574F0: ; 0x022574F0
ldr r3, _02257650 ; =0x0225EC96
add r1, r4, r1
ldrh r2, [r3, r2]
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r0, sp, #0x24
bl FUN_02019178
ldr r0, [sp, #0x18]
@@ -86022,7 +86022,7 @@ _02257670:
ldrh r2, [r3, r2]
add r0, r0, r1
add r1, r7, #0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
ldr r0, [sp]
ldr r1, _02257754 ; =0x0225EABC
add r0, #0x25
@@ -86039,7 +86039,7 @@ _02257670:
add r0, r0, r1
add r1, r7, #0
add r1, #0x40
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
mov r2, #0
add r1, r2, #0
_022576D6:
@@ -86077,7 +86077,7 @@ _022576DA:
ldr r3, _02257750 ; =0x0225EABA
add r0, r7, #0
ldrh r2, [r3, r2]
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
ldr r0, [sp]
ldr r3, _02257754 ; =0x0225EABC
add r0, #0x25
@@ -86095,7 +86095,7 @@ _022576DA:
ldr r3, _02257758 ; =0x0225EABE
add r0, #0x40
ldrh r2, [r3, r2]
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r0, r7, #0
bl FUN_02016A18
add sp, #8
@@ -86122,7 +86122,7 @@ MOD11_0225775C: ; 0x0225775C
add r0, r4, #0
mov r1, #0xff
mov r2, #0x60
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [sp, #4]
ldr r0, [r0, #0xc]
bl MOD11_022300BC
@@ -86153,7 +86153,7 @@ MOD11_0225775C: ; 0x0225775C
ldrh r2, [r3, r2]
add r0, r0, r1
add r1, r7, #0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
ldr r0, [sp, #4]
ldr r1, _02257874 ; =0x0225EA2C
add r0, #0x25
@@ -86170,7 +86170,7 @@ MOD11_0225775C: ; 0x0225775C
add r0, r0, r1
add r1, r7, #0
add r1, #0x60
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
mov r2, #0
add r1, r2, #0
_022577EE:
@@ -86208,7 +86208,7 @@ _022577F2:
ldr r3, _02257870 ; =0x0225EA2A
add r0, r7, #0
ldrh r2, [r3, r2]
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
ldr r0, [sp, #4]
ldr r3, _02257874 ; =0x0225EA2C
add r0, #0x25
@@ -86226,7 +86226,7 @@ _022577F2:
ldr r3, _02257878 ; =0x0225EA2E
add r0, #0x60
ldrh r2, [r3, r2]
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r0, r4, #0
bl FUN_02016A18
add r0, r7, #0
@@ -86250,7 +86250,7 @@ MOD11_0225787C: ; 0x0225787C
mov r1, #0xff
mov r2, #0x60
add r4, r0, #0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r5, #0xc]
bl MOD11_022300B4
str r4, [sp]
@@ -86276,7 +86276,7 @@ MOD11_0225787C: ; 0x0225787C
ldr r3, _022578FC ; =0x0225EA5A
add r0, r4, #0
ldrh r2, [r3, r2]
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r5, #0x25
ldrb r0, [r5]
ldr r3, _02257900 ; =0x0225EA5C
@@ -86290,7 +86290,7 @@ MOD11_0225787C: ; 0x0225787C
ldr r3, _02257904 ; =0x0225EA5E
ldrh r2, [r3, r2]
add r0, r4, r0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r0, r4, #0
bl FUN_02016A18
pop {r3, r4, r5, r6, r7, pc}
@@ -86310,7 +86310,7 @@ MOD11_02257908: ; 0x02257908
mov r1, #0xff
mov r2, #0x60
add r4, r0, #0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r5, #0xc]
bl MOD11_022300B4
str r4, [sp]
@@ -86335,7 +86335,7 @@ MOD11_02257908: ; 0x02257908
ldr r3, _02257964 ; =0x0225E9FA
add r0, r4, #0
ldrh r2, [r3, r2]
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r0, r4, #0
bl FUN_02016A18
pop {r3, r4, r5, pc}
@@ -86376,7 +86376,7 @@ _02257982:
ldr r3, _022579B4 ; =0x0225E9CA
add r1, r4, r1
ldrh r2, [r3, r2]
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
pop {r3, r4, r5, pc}
nop
_022579B0: .word 0x0225E9C8
@@ -86406,7 +86406,7 @@ MOD11_022579B8: ; 0x022579B8
ldr r3, _022579F4 ; =0x0225E99A
add r1, r4, r1
ldrh r2, [r3, r2]
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
pop {r3, r4, r5, pc}
nop
_022579F0: .word 0x0225E998
@@ -86473,7 +86473,7 @@ _02257A26:
add r1, r1, r2
add r0, r5, #0
mov r2, #0xc0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
mov r2, #0xd
mov r0, #0x1a
lsl r2, r2, #6
@@ -86483,7 +86483,7 @@ _02257A26:
add r1, r1, r2
add r0, r5, r0
mov r2, #0xc0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
mov r2, #0xa
lsl r2, r2, #8
add r0, r5, #0
@@ -86492,7 +86492,7 @@ _02257A26:
add r1, r1, r2
add r0, #0xc0
mov r2, #0xe0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
mov r0, #0x1a
mov r1, #0xb
lsl r0, r0, #4
@@ -86503,7 +86503,7 @@ _02257A26:
add r1, r2, r1
add r0, #0xc0
mov r2, #0xe0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r0, sp, #0x18
bl FUN_02019178
add r0, r7, #0
@@ -86598,7 +86598,7 @@ _02257B1E:
add r1, r1, r2
add r0, r5, #0
mov r2, #0xc0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
mov r2, #0x15
mov r0, #0x1a
lsl r2, r2, #6
@@ -86608,7 +86608,7 @@ _02257B1E:
add r1, r1, r2
add r0, r5, r0
mov r2, #0xc0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
mov r2, #3
lsl r2, r2, #0xa
add r0, r5, #0
@@ -86617,7 +86617,7 @@ _02257B1E:
add r1, r1, r2
add r0, #0xc0
mov r2, #0xe0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
mov r0, #0x1a
mov r1, #0xd
lsl r0, r0, #4
@@ -86628,7 +86628,7 @@ _02257B1E:
add r1, r2, r1
add r0, #0xc0
mov r2, #0xe0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r0, sp, #0x24
bl FUN_02019178
add r0, r6, #0
@@ -86671,8 +86671,8 @@ _02257C10:
_02257C22:
ldr r6, [r5, #0x40]
add r0, r6, #0
- blx _s32_div_f
- blx abs
+ bl _s32_div_f
+ bl abs
mov r1, #0xb
lsl r0, r0, #0x10
add r3, r5, #0
@@ -86793,7 +86793,7 @@ _02257CE6:
add r2, r3, r2
add r1, r1, r2
mov r2, #0x20
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
b _02257D42
_02257D16:
ldrb r0, [r0, r4]
@@ -86816,7 +86816,7 @@ _02257D16:
add r1, r1, r3
add r1, r2, r1
mov r2, #0x20
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
_02257D42:
add r0, r4, #1
lsl r0, r0, #0x18
@@ -86877,7 +86877,7 @@ _02257D9C:
add r0, r6, r0
add r1, r3, r1
mov r2, #0x20
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
b _02257DD0
_02257DBA:
ldrb r0, [r0, r4]
@@ -86889,7 +86889,7 @@ _02257DBA:
add r1, r1, r2
add r0, r6, r0
mov r2, #0x20
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
_02257DD0:
add r0, r4, #1
lsl r0, r0, #0x18
@@ -86957,7 +86957,7 @@ _02257E3E:
bge _02257E7E
lsl r0, r0, #8
add r1, r2, #0
- blx _s32_div_f
+ bl _s32_div_f
cmp r6, #0
ldr r1, [r5]
bge _02257E62
@@ -87043,14 +87043,14 @@ _02257ECE:
add r0, r1, #0
mul r0, r2
add r1, r6, #0
- blx _u32_div_f
+ bl _u32_div_f
lsr r0, r0, #8
b _02257EEC
_02257EE2:
add r0, r1, #0
mul r0, r2
add r1, r6, #0
- blx _u32_div_f
+ bl _u32_div_f
_02257EEC:
add r2, r0, #0
cmp r0, #0
@@ -87103,18 +87103,18 @@ _02257F38:
add r0, r7, #0
mul r0, r6
add r1, r5, #0
- blx _s32_div_f
+ bl _s32_div_f
add r7, r0, #0
add r0, r4, #0
mul r0, r6
add r1, r5, #0
- blx _s32_div_f
+ bl _s32_div_f
lsl r1, r7, #0x18
lsl r0, r0, #0x18
asr r1, r1, #0x18
asr r0, r0, #0x18
sub r0, r1, r0
- blx abs
+ bl abs
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -87281,7 +87281,7 @@ MOD11_0225805C: ; 0x0225805C
mov r1, #0
mov r2, #0xc
add r4, r0, #0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r2, #0xfa
str r5, [r4]
ldr r0, _0225808C ; =MOD11_02258090
@@ -87493,7 +87493,7 @@ _022581FC:
asr r1, r0, #0x1f
lsl r2, r2, #0xa
mov r3, #0
- blx _ll_mul
+ bl _ll_mul
mov r2, #2
add r3, r0, #0
add r5, r1, #0
@@ -87722,7 +87722,7 @@ MOD11_022583D8: ; 0x022583D8
add r1, r5, #0
mov r2, #0x10
add r7, r3, #0
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
str r4, [r5, #4]
strb r6, [r5, #8]
strb r7, [r5, #9]
@@ -87748,7 +87748,7 @@ MOD11_0225840C: ; 0x0225840C
mov r0, #0
add r1, r4, #0
mov r2, #0x10
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
pop {r4, pc}
.align 2, 0
@@ -87763,7 +87763,7 @@ MOD11_02258428: ; 0x02258428
mov r1, #0
lsl r2, r2, #8
add r4, r0, #0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r1, #0
ldr r0, _0225844C ; =0x0000069F
mvn r1, r1
@@ -87891,7 +87891,7 @@ _02258512:
ldr r0, [sp, #0x18]
add r2, r7, #0
add r0, #0xc
- blx MIi_CpuCopy32
+ bl MIi_CpuCopy32
add r0, r5, #0
bl FUN_02016A18
add r4, r4, #1
@@ -87919,7 +87919,7 @@ _0225854E:
mov r2, #2
ldr r1, [r6, #0x58]
lsl r2, r2, #8
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r5, r6, #0
mov r7, #0x46
mov r4, #0
@@ -87932,7 +87932,7 @@ _02258592:
add r0, r5, r0
mov r1, #0xff
mov r2, #0x18
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r4, r4, #1
_022585A2:
cmp r4, #4
@@ -87981,7 +87981,7 @@ _022585DE:
ldr r1, [r6, #0x5c]
ldr r0, [r6, #0x58]
mov r2, #0x20
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
mov r0, #7
mov r1, #0xca
add r2, sp, #0x14
@@ -87992,7 +87992,7 @@ _022585DE:
ldr r1, [r6, #0x60]
ldr r0, [r0, #0xc]
mov r2, #0x20
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r0, r4, #0
bl FUN_02016A18
bl FUN_02002BE4
@@ -88226,7 +88226,7 @@ MOD11_02258820: ; 0x02258820
add r0, r3, #0
add r1, #0x18
mov r2, #0x22
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
_0225883A:
ldr r0, _0225893C ; =0x000006A2
mov r1, #0
@@ -88333,7 +88333,7 @@ _022588D0:
ldr r0, _02258950 ; =0x04001050
mov r1, #2
mov r3, #0x1b
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
add r0, r7, #0
bl MOD11_0225ACB0
ldr r0, [sp, #0x2c]
@@ -89077,7 +89077,7 @@ _02258F20:
add r0, r5, r0
mov r1, #0
mov r2, #4
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _02258F54 ; =0x000006EC
ldr r0, [r5, r0]
bl MOD11_0225D648
@@ -89445,7 +89445,7 @@ MOD11_0225916C: ; 0x0225916C
add r4, r0, #0
mov r1, #0
mov r2, #0x14
- blx MI_CpuFill8
+ bl MI_CpuFill8
str r5, [r4]
ldr r0, _02259254 ; =0xFFFF9C64
strb r6, [r4, #0x12]
@@ -89458,7 +89458,7 @@ MOD11_0225916C: ; 0x0225916C
ldr r0, _02259258 ; =0x0000639C
sub r0, r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
strh r0, [r4, #0xc]
mov r0, #0xa
ldrsh r1, [r4, r0]
@@ -89466,7 +89466,7 @@ MOD11_0225916C: ; 0x0225916C
lsl r0, r0, #4
sub r0, r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
strh r0, [r4, #0xe]
ldr r0, _0225925C ; =0x0000070E
bl FUN_020054C8
@@ -91621,7 +91621,7 @@ MOD11_0225A428: ; 0x0225A428
add r1, r4, r1
asr r5, r1, #3
mov r1, #8
- blx FX_ModS32
+ bl FX_ModS32
cmp r0, #0
beq _0225A450
add r5, r5, #1
@@ -92109,7 +92109,7 @@ _0225A7CE:
ldr r0, [r0, #0x14]
ldr r1, [r1, #0x18]
ldr r2, [sp, #0xc]
- blx MIi_CpuCopy32
+ bl MIi_CpuCopy32
ldr r0, [sp, #0x44]
bl FUN_02016A18
_0225A814:
@@ -92426,7 +92426,7 @@ _0225AA24:
lsl r3, r3, #0x14
ldr r0, [r0, #0x18]
add r1, r3, r1
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
_0225AA9E:
add r4, r4, #1
_0225AAA0:
@@ -92821,7 +92821,7 @@ _0225AD90:
add r0, r4, r0
mov r1, #0
mov r2, #0x24
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r2, _0225ADAC ; =0x00000514
add r0, r5, #0
add r1, r4, #0
@@ -92845,7 +92845,7 @@ MOD11_0225ADB0: ; 0x0225ADB0
add r0, r4, r0
mov r2, #0x24
str r1, [r4, #8]
- blx MI_CpuFill8
+ bl MI_CpuFill8
_0225ADCE:
pop {r4, pc}
@@ -93706,13 +93706,13 @@ _0225B454:
lsl r0, r0, #2
sub r0, r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
strh r0, [r5, #0xc]
mov r0, #0xa
ldrsh r0, [r5, r0]
mov r1, #0x64
neg r0, r0
- blx _s32_div_f
+ bl _s32_div_f
strh r0, [r5, #0xe]
mov r0, #8
ldrsh r0, [r5, r0]
@@ -93829,7 +93829,7 @@ _0225B55A:
ldrsh r0, [r5, r0]
mov r1, #0x64
neg r0, r0
- blx _s32_div_f
+ bl _s32_div_f
add r4, r0, #0
b _0225B5B6
_0225B586:
@@ -93852,7 +93852,7 @@ _0225B590:
mov r0, #8
ldrsh r0, [r5, r0]
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r4, r0, #0
add r4, #0xff
_0225B5B6:
@@ -93869,7 +93869,7 @@ _0225B5B6:
mov r0, #0xa
ldrsh r0, [r5, r0]
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, #0x90
cmp r4, #0
bge _0225B5E2
@@ -94210,7 +94210,7 @@ _0225B866:
add r0, #0x16
add r1, #0x16
mov r2, #0xa
- blx memcmp
+ bl memcmp
cmp r0, #0
bne _0225B8A8
ldr r0, [r5, #0x60]
@@ -94218,7 +94218,7 @@ _0225B866:
add r0, #0x16
add r1, r4, #0
mov r2, #0xa
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
pop {r3, r4, r5, r6, r7, pc}
_0225B888:
ldr r1, [r5, #0x60]
@@ -94226,7 +94226,7 @@ _0225B888:
add r0, #0x16
add r1, #0x16
mov r2, #0xa
- blx memcmp
+ bl memcmp
cmp r0, #0
bne _0225B8A8
ldr r0, [r5, #0x5c]
@@ -94234,7 +94234,7 @@ _0225B888:
add r0, #0x16
add r1, r4, #0
mov r2, #0xa
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
_0225B8A8:
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -94819,7 +94819,7 @@ _0225BD10:
ldr r0, _0225BDD8 ; =0x0225F6A0
add r1, sp, #8
mov r2, #6
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r4, #0
mov r1, #2
mov r2, #3
@@ -95001,7 +95001,7 @@ MOD11_0225BE30: ; 0x0225BE30
str r0, [sp, #0x48]
ldr r0, _0225C13C ; =0x0225F690
add r1, sp, #0x50
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r1, sp, #0x58
add r0, r6, #0
add r1, #2
@@ -96552,7 +96552,7 @@ MOD11_0225C9D4: ; 0x0225C9D4
mov r1, #0
lsl r2, r2, #6
add r4, r0, #0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0
pop {r4, pc}
.align 2, 0
@@ -96741,7 +96741,7 @@ _0225CB32:
add r0, r5, #0
mov r1, #0
mov r2, #0x1c
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r1, [sp, #0x18]
ldr r2, _0225CBA8 ; =0x0225FE48
add r0, r7, #0
@@ -96958,7 +96958,7 @@ _0225CCBC:
sub r0, r0, r3
str r0, [sp]
ldr r0, _0225CDA0 ; =0x04000050
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
ldrb r0, [r4, #0x1a]
add r0, r0, #1
strb r0, [r4, #0x1a]
@@ -97076,7 +97076,7 @@ _0225CDD4:
add r0, r5, #0
mov r1, #0
mov r2, #0x30
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [sp, #0x24]
ldr r1, [sp, #0x28]
ldr r2, _0225CEA4 ; =0x0225FE7C
@@ -98000,7 +98000,7 @@ _0225D496:
mov r1, #0
mov r2, #0x18
str r0, [sp]
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r5, [sp]
mov r4, #0
_0225D4CE:
@@ -98351,7 +98351,7 @@ _0225D74C:
mov r1, #0
mov r2, #0x20
add r4, r0, #0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r1, [sp]
add r0, r7, #0
add r2, sp, #4
@@ -98497,7 +98497,7 @@ _0225D886:
bne _0225D8DA
ldr r0, [r4, #0x10]
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_0201B93C
@@ -98505,7 +98505,7 @@ _0225D886:
asr r1, r0, #0x1f
lsl r2, r2, #0xc
mov r3, #0
- blx _ll_mul
+ bl _ll_mul
add r5, r1, #0
ldr r1, [r4, #8]
mov r2, #2
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s
new file mode 100644
index 00000000..9748eb5c
--- /dev/null
+++ b/arm9/modules/12/asm/module_12.s
@@ -0,0 +1,48108 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD12_0222D5C0
+MOD12_0222D5C0: ; 0x0222D5C0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r1, #1
+ lsl r1, r1, #0x1a
+ ldr r0, [r1]
+ ldr r2, _0222D85C ; =0xFFFFE0FF
+ and r0, r2
+ str r0, [r1]
+ ldr r0, _0222D860 ; =0x04001000
+ ldr r3, [r0]
+ and r2, r3
+ str r2, [r0]
+ ldr r3, [r1]
+ ldr r2, _0222D864 ; =0xFFFF1FFF
+ and r3, r2
+ str r3, [r1]
+ ldr r3, [r0]
+ add r1, #0x50
+ and r2, r3
+ str r2, [r0]
+ mov r2, #0
+ strh r2, [r1]
+ add r0, #0x50
+ strh r2, [r0]
+ mov r2, #7
+ mov r0, #3
+ mov r1, #0x15
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ ldr r1, _0222D868 ; =0x00001658
+ add r0, r5, #0
+ mov r2, #0x15
+ bl FUN_02006268
+ ldr r2, _0222D868 ; =0x00001658
+ mov r1, #0
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r0, #0x15
+ bl MOD12_022312D8
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl FUN_0200628C
+ mov r1, #0x5b
+ str r0, [r4]
+ lsl r1, r1, #2
+ str r4, [r0, r1]
+ ldr r2, [r4]
+ mov r3, #2
+ add r0, r1, #4
+ strb r3, [r2, r0]
+ ldr r0, [r4]
+ str r0, [r4, #0xc]
+ add r0, r4, #0
+ bl MOD12_0222DCEC
+ mov r0, #0x15
+ bl FUN_02002FD0
+ str r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_020038F0
+ mov r2, #2
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ lsl r2, r2, #8
+ mov r3, #0x15
+ bl FUN_02003008
+ mov r1, #1
+ ldr r0, [r4, #0x5c]
+ lsl r2, r1, #9
+ mov r3, #0x15
+ bl FUN_02003008
+ mov r2, #7
+ ldr r0, [r4, #0x5c]
+ mov r1, #2
+ lsl r2, r2, #6
+ mov r3, #0x15
+ bl FUN_02003008
+ mov r2, #2
+ ldr r0, [r4, #0x5c]
+ mov r1, #3
+ lsl r2, r2, #8
+ mov r3, #0x15
+ bl FUN_02003008
+ mov r0, #0x15
+ bl FUN_02016B94
+ str r0, [r4, #0x30]
+ mov r0, #0x40
+ mov r1, #0x15
+ bl FUN_0201C24C
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ mov r2, #0x23
+ add r1, r4, #0
+ lsl r2, r2, #4
+ ldr r0, [r4]
+ add r1, #0xc
+ add r2, r4, r2
+ bl MOD12_02231A24
+ ldr r1, _0222D86C ; =0x0000081C
+ str r0, [r4, r1]
+ ldr r0, [r4, #0x30]
+ bl MOD12_0222DB50
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ mov r0, #2
+ mov r1, #0x15
+ bl FUN_02002C50
+ mov r0, #0x15
+ bl FUN_0200BB14
+ ldr r1, _0222D870 ; =0x022449C8
+ ldr r2, _0222D874 ; =0x0224499C
+ mov r3, #0x20
+ str r0, [r4, #0x24]
+ bl FUN_0200BB6C
+ ldr r1, _0222D878 ; =0x00100010
+ mov r0, #1
+ bl FUN_02008D44
+ mov r0, #1
+ bl FUN_02008DDC
+ ldr r0, [r4, #0x24]
+ bl FUN_0200BB34
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x28]
+ mov r2, #0x80
+ bl FUN_0200BBF0
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x28]
+ ldr r2, _0222D87C ; =0x022449B0
+ bl FUN_0200BF60
+ ldr r0, [r4, #0x24]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+ mov r0, #0x15
+ bl FUN_02006D98
+ str r0, [r4, #0x10]
+ bl MOD12_0222DCAC
+ mov r0, #0x15
+ bl FUN_02211F5C
+ mov r1, #1
+ str r0, [r4, #0x2c]
+ bl FUN_02211FF0
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xbf
+ mov r3, #0x15
+ bl FUN_0200A86C
+ str r0, [r4, #0x44]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xc0
+ mov r3, #0x15
+ bl FUN_0200A86C
+ str r0, [r4, #0x48]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xc5
+ mov r3, #0x15
+ bl FUN_0200A86C
+ str r0, [r4, #0x4c]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xc6
+ mov r3, #0x15
+ bl FUN_0200A86C
+ str r0, [r4, #0x50]
+ mov r0, #8
+ mov r1, #0x15
+ bl FUN_02011744
+ str r0, [r4, #0x60]
+ mov r0, #0x15
+ bl FUN_0200AA80
+ str r0, [r4, #0x54]
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ mov r1, #0x15
+ bl FUN_020219F4
+ str r0, [r4, #0x58]
+ add r0, r4, #0
+ bl MOD12_0222DFC4
+ add r0, r4, #0
+ bl MOD12_0222E0F8
+ add r0, r4, #0
+ bl MOD12_0222DC80
+ add r0, r4, #0
+ bl MOD12_022335B0
+ add r0, r4, #0
+ bl MOD12_0222DD20
+ add r0, r4, #0
+ bl MOD12_0222DE30
+ ldr r7, _0222D880 ; =0x00000123
+ mov r6, #0
+ add r5, sp, #0xc
+_0222D7BC:
+ ldr r1, [r4]
+ mov r2, #0
+ ldrb r0, [r1, r7]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ add r1, #0x36
+ bl FUN_020671BC
+ strh r0, [r5]
+ add r6, r6, #1
+ add r5, r5, #2
+ cmp r6, #4
+ blt _0222D7BC
+ ldr r0, _0222D86C ; =0x0000081C
+ add r1, sp, #0xc
+ ldr r0, [r4, r0]
+ bl MOD12_02232C08
+ ldr r0, _0222D86C ; =0x0000081C
+ mov r1, #0
+ ldr r0, [r4, r0]
+ mov r2, #1
+ add r3, r1, #0
+ bl MOD12_02231B4C
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD12_02233758
+ bl FUN_02033E74
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r1, #0x15
+ str r1, [sp, #8]
+ mov r1, #0x1f
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldr r0, _0222D884 ; =MOD12_0222DB18
+ ldr r2, _0222D888 ; =0x0000EA60
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #4]
+ ldr r0, _0222D88C ; =0x00000824
+ mov r1, #1
+ strb r1, [r4, r0]
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r1, _0222D890 ; =0x0000046F
+ mov r0, #6
+ mov r2, #1
+ bl FUN_0200433C
+ ldr r1, [r4]
+ ldr r0, _0222D894 ; =0x00000171
+ ldrb r0, [r1, r0]
+ bl FUN_020833D4
+ ldr r0, _0222D898 ; =MOD12_0222DAE4
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r0, #1
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222D85C: .word 0xFFFFE0FF
+_0222D860: .word 0x04001000
+_0222D864: .word 0xFFFF1FFF
+_0222D868: .word 0x00001658
+_0222D86C: .word 0x0000081C
+_0222D870: .word 0x022449C8
+_0222D874: .word 0x0224499C
+_0222D878: .word 0x00100010
+_0222D87C: .word 0x022449B0
+_0222D880: .word 0x00000123
+_0222D884: .word MOD12_0222DB18
+_0222D888: .word 0x0000EA60
+_0222D88C: .word 0x00000824
+_0222D890: .word 0x0000046F
+_0222D894: .word 0x00000171
+_0222D898: .word MOD12_0222DAE4
+
+ thumb_func_start MOD12_0222D89C
+MOD12_0222D89C: ; 0x0222D89C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02082878
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _0222D8BE
+ cmp r0, #1
+ beq _0222D8CC
+ cmp r0, #2
+ beq _0222D986
+ b _0222D994
+_0222D8BE:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _0222D994
+ mov r0, #1
+ str r0, [r5]
+ b _0222D994
+_0222D8CC:
+ ldr r0, [r4]
+ bl FUN_020828BC
+ cmp r0, #1
+ bne _0222D93E
+ ldr r2, _0222D99C ; =0x00000822
+ ldr r1, _0222D9A0 ; =0x00001648
+ ldrh r2, [r4, r2]
+ add r0, r4, #0
+ add r1, r4, r1
+ lsl r3, r2, #2
+ ldr r2, _0222D9A4 ; =0x02244A10
+ ldr r2, [r2, r3]
+ blx r2
+ sub r1, r0, #1
+ cmp r1, #1
+ bhi _0222D910
+ cmp r0, #1
+ bne _0222D8FA
+ ldr r0, _0222D99C ; =0x00000822
+ ldrh r1, [r4, r0]
+ add r1, r1, #1
+ b _0222D900
+_0222D8FA:
+ ldr r0, _0222D9A8 ; =0x0000164A
+ ldrh r1, [r4, r0]
+ ldr r0, _0222D99C ; =0x00000822
+_0222D900:
+ strh r1, [r4, r0]
+ ldr r0, _0222D9A0 ; =0x00001648
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #8
+ bl MI_CpuFill8
+ b _0222D93E
+_0222D910:
+ cmp r0, #3
+ bne _0222D93E
+ mov r0, #2
+ str r0, [r5]
+ ldr r0, _0222D9A0 ; =0x00001648
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #8
+ bl MI_CpuFill8
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x15
+ mov r1, #0x20
+ str r0, [sp, #8]
+ mov r0, #2
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ b _0222D994
+_0222D93E:
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD12_022410A0
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD12_02241114
+ ldr r0, _0222D9AC ; =0x00001650
+ ldrb r1, [r4, r0]
+ cmp r1, #1
+ bne _0222D994
+ mov r1, #2
+ sub r0, #8
+ str r1, [r5]
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #8
+ bl MI_CpuFill8
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x15
+ mov r1, #0x20
+ str r0, [sp, #8]
+ mov r0, #2
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ b _0222D994
+_0222D986:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _0222D994
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_0222D994:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0222D99C: .word 0x00000822
+_0222D9A0: .word 0x00001648
+_0222D9A4: .word 0x02244A10
+_0222D9A8: .word 0x0000164A
+_0222D9AC: .word 0x00001650
+
+ thumb_func_start MOD12_0222D9B0
+MOD12_0222D9B0: ; 0x0222D9B0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl FUN_02012EAC
+ ldr r0, [r4, #0x2c]
+ bl FUN_02212024
+ add r0, r4, #0
+ bl MOD12_0222DDC4
+ add r0, r4, #0
+ bl MOD12_0222DEEC
+ add r0, r4, #0
+ bl MOD12_0222E0F4
+ add r0, r4, #0
+ bl MOD12_0222E0FC
+ add r0, r4, #0
+ add r0, #0x34
+ bl FUN_02019178
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0x30]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0x30]
+ bl MOD12_022319FC
+ ldr r0, _0222DAD8 ; =0x0000081C
+ ldr r0, [r4, r0]
+ bl MOD12_02231AE8
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x28]
+ bl FUN_0200C398
+ ldr r0, [r4, #0x24]
+ bl FUN_0200BD04
+ bl FUN_0201C29C
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD12_02233848
+ ldr r0, [r4, #0x10]
+ bl FUN_020072E8
+ mov r0, #2
+ bl FUN_02002CF8
+ ldr r0, [r4, #0x60]
+ bl FUN_020117BC
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ bl FUN_02003038
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_02003038
+ ldr r0, [r4, #0x5c]
+ mov r1, #2
+ bl FUN_02003038
+ ldr r0, [r4, #0x5c]
+ mov r1, #3
+ bl FUN_02003038
+ ldr r0, [r4, #0x5c]
+ bl FUN_02002FEC
+ ldr r0, [r4, #0x58]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x54]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x44]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x48]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x4c]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x50]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x30]
+ bl FUN_02016A18
+ ldr r0, [r4, #4]
+ bl FUN_0200CAB4
+ ldr r0, [r4, #8]
+ bl MOD12_02231378
+ bl FUN_0201CD04
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ mov r0, #0x15
+ bl FUN_020168D0
+ bl FUN_02083404
+ bl FUN_02033ED0
+ ldr r0, _0222DADC ; =SDK_MODULE_08_ID
+ bl UnloadOverlayByID
+ ldr r0, _0222DAE0 ; =SDK_MODULE_17_ID
+ bl UnloadOverlayByID
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_0222DAD8: .word 0x0000081C
+_0222DADC: .word SDK_MODULE_08_ID
+_0222DAE0: .word SDK_MODULE_17_ID
+
+ thumb_func_start MOD12_0222DAE4
+MOD12_0222DAE4: ; 0x0222DAE4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ bl FUN_020081C4
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ ldr r0, [r4, #0x5c]
+ bl FUN_0200372C
+ ldr r0, [r4, #0x30]
+ bl FUN_0201AB60
+ ldr r3, _0222DB10 ; =0x027E0000
+ ldr r1, _0222DB14 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .align 2, 0
+_0222DB10: .word 0x027E0000
+_0222DB14: .word 0x00003FF8
+
+ thumb_func_start MOD12_0222DB18
+MOD12_0222DB18: ; 0x0222DB18
+ push {r4, lr}
+ ldr r0, _0222DB48 ; =0x00000824
+ add r4, r1, #0
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ bne _0222DB3E
+ ldr r0, [r4, #0x10]
+ bl FUN_02006ED4
+ bl FUN_02215A44
+ ldr r0, [r4, #0x28]
+ bl FUN_0200BC1C
+ bl FUN_0200BC38
+ ldr r0, _0222DB4C ; =0x04000540
+ mov r1, #1
+ str r1, [r0]
+_0222DB3E:
+ ldr r1, [r4, #0x30]
+ mov r0, #0x15
+ bl FUN_020335F0
+ pop {r4, pc}
+ .align 2, 0
+_0222DB48: .word 0x00000824
+_0222DB4C: .word 0x04000540
+
+ thumb_func_start MOD12_0222DB50
+MOD12_0222DB50: ; 0x0222DB50
+ push {r4, r5, lr}
+ sub sp, #0x8c
+ add r4, r0, #0
+ bl FUN_0201E6D8
+ ldr r5, _0222DC70 ; =0x022449E8
+ add r3, sp, #0x10
+ mov r2, #5
+_0222DB60:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222DB60
+ 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, _0222DC74 ; =0x0224498C
+ 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, _0222DC78 ; =0x02244A50
+ add r3, sp, #0x38
+ mov r2, #0xa
+_0222DBC0:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222DBC0
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ add r2, sp, #0x38
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #2
+ add r2, sp, #0x54
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #2
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #3
+ add r2, sp, #0x70
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020179E0
+ mov r1, #3
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ ldr r1, _0222DC7C ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #2
+ orr r0, r2
+ strh r0, [r1]
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ bl MOD12_022319A4
+ add sp, #0x8c
+ pop {r4, r5, pc}
+ .align 2, 0
+_0222DC70: .word 0x022449E8
+_0222DC74: .word 0x0224498C
+_0222DC78: .word 0x02244A50
+_0222DC7C: .word 0x04000008
+
+ thumb_func_start MOD12_0222DC80
+MOD12_0222DC80: ; 0x0222DC80
+ push {lr}
+ sub sp, #0x14
+ add r1, r0, #0
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x14
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #3
+ lsl r0, r0, #8
+ str r0, [sp, #0x10]
+ ldr r0, [r1, #0x30]
+ add r1, #0x34
+ mov r2, #1
+ mov r3, #0xb
+ bl FUN_02019064
+ add sp, #0x14
+ pop {pc}
+
+ thumb_func_start MOD12_0222DCAC
+MOD12_0222DCAC: ; 0x0222DCAC
+ push {r3, r4, r5, lr}
+ ldr r3, _0222DCE4 ; =0x021064B8
+ mov r0, #2
+ mov r1, #0
+ ldr r3, [r3]
+ lsl r0, r0, #0xe
+ add r2, r1, #0
+ blx r3
+ ldr r3, _0222DCE8 ; =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 _0222DCD4
+ bl ErrorHandling
+_0222DCD4:
+ cmp r5, #0
+ bne _0222DCDC
+ bl ErrorHandling
+_0222DCDC:
+ bl FUN_02012CC8
+ pop {r3, r4, r5, pc}
+ nop
+_0222DCE4: .word 0x021064B8
+_0222DCE8: .word 0x021064C0
+
+ thumb_func_start MOD12_0222DCEC
+MOD12_0222DCEC: ; 0x0222DCEC
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _0222DCFA
+ bl ErrorHandling
+_0222DCFA:
+ ldr r1, _0222DD1C ; =0x00000172
+ mov r0, #0
+ add r2, r1, #0
+ add r2, #0xbf
+_0222DD02:
+ ldr r3, [r4]
+ add r3, r3, r0
+ ldrb r5, [r3, r1]
+ add r3, r4, r0
+ add r0, r0, #1
+ strb r5, [r3, r2]
+ cmp r0, #4
+ blt _0222DD02
+ add r0, r4, #0
+ bl MOD12_02235D7C
+ pop {r3, r4, r5, pc}
+ nop
+_0222DD1C: .word 0x00000172
+
+ thumb_func_start MOD12_0222DD20
+MOD12_0222DD20: ; 0x0222DD20
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ mov r0, #0x2e
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, _0222DDB8 ; =0x000080E9
+ mov r1, #2
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x5c]
+ ldr r2, [r4, #0x24]
+ ldr r3, [r4, #0x28]
+ bl FUN_0200C0DC
+ mov r0, #0x2e
+ str r0, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _0222DDBC ; =0x000080ED
+ mov r1, #2
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x5c]
+ ldr r2, [r4, #0x24]
+ ldr r3, [r4, #0x28]
+ bl FUN_0200C0DC
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x28]
+ bl MOD12_02235194
+ add r0, r4, #0
+ bl MOD12_022350F8
+ add r0, r4, #0
+ ldr r1, [r4]
+ add r0, #0xc
+ bl MOD12_02233A8C
+ add r0, r4, #0
+ ldr r2, [r4]
+ ldr r1, _0222DDC0 ; =0x0000011E
+ add r0, #0xc
+ ldrb r1, [r2, r1]
+ bl MOD12_02233EEC
+ ldr r0, [r4, #0x5c]
+ ldr r1, [r4, #0x24]
+ ldr r2, [r4, #0x28]
+ bl MOD12_02233B04
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD12_02233B7C
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x28]
+ bl MOD12_02233FAC
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x28]
+ bl MOD12_022342A8
+ add sp, #0x18
+ pop {r4, pc}
+ nop
+_0222DDB8: .word 0x000080E9
+_0222DDBC: .word 0x000080ED
+_0222DDC0: .word 0x0000011E
+
+ thumb_func_start MOD12_0222DDC4
+MOD12_0222DDC4: ; 0x0222DDC4
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc
+ bl MOD12_02233F78
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD12_02233AD4
+ add r0, r4, #0
+ bl MOD12_02235114
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD12_0223524C
+ ldr r0, [r4, #0x28]
+ bl MOD12_022351E0
+ ldr r0, [r4, #0x28]
+ ldr r1, _0222DE28 ; =0x000080E9
+ bl FUN_0200C368
+ ldr r0, [r4, #0x28]
+ ldr r1, _0222DE2C ; =0x000080ED
+ bl FUN_0200C368
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD12_02233BBC
+ ldr r0, [r4, #0x28]
+ bl MOD12_02233B58
+ ldr r0, [r4, #0x28]
+ bl MOD12_02233FF8
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD12_02234044
+ ldr r0, [r4, #0x28]
+ bl MOD12_02234334
+ add r4, #0xc
+ add r0, r4, #0
+ bl MOD12_0223439C
+ pop {r4, pc}
+ nop
+_0222DE28: .word 0x000080E9
+_0222DE2C: .word 0x000080ED
+
+ thumb_func_start MOD12_0222DE30
+MOD12_0222DE30: ; 0x0222DE30
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #0x2e
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r1, #3
+ str r1, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, _0222DED8 ; =0x000080EF
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #0x5c]
+ ldr r2, [r5, #0x24]
+ ldr r3, [r5, #0x28]
+ bl FUN_0200C0DC
+ mov r0, #0x2e
+ str r0, [sp]
+ mov r0, #9
+ 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, _0222DEDC ; =0x000080F0
+ mov r1, #3
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #0x5c]
+ ldr r2, [r5, #0x24]
+ ldr r3, [r5, #0x28]
+ bl FUN_0200C0DC
+ ldr r0, [r5, #0x24]
+ ldr r1, [r5, #0x28]
+ bl MOD12_022334A4
+ ldr r0, [r5, #0x24]
+ ldr r1, [r5, #0x28]
+ bl MOD12_022333F8
+ ldr r2, _0222DEE0 ; =0x000080F4
+ ldr r0, [r5, #0x24]
+ ldr r1, [r5, #0x28]
+ add r3, r2, #0
+ bl MOD12_02240E34
+ ldr r7, _0222DEE4 ; =0x000080F6
+ ldr r6, _0222DEE8 ; =0x00000123
+ mov r4, #0
+_0222DE9E:
+ ldr r1, [r5]
+ mov r2, #0
+ ldrb r0, [r1, r6]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0x36
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0222DEBE
+ mov r1, #0xb
+ bl FUN_0206AB18
+ add r3, r0, #0
+ b _0222DEC0
+_0222DEBE:
+ mov r3, #0
+_0222DEC0:
+ add r0, r4, r7
+ str r0, [sp]
+ ldr r0, [r5, #0x24]
+ ldr r1, [r5, #0x28]
+ mov r2, #2
+ bl MOD12_02240E00
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0222DE9E
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222DED8: .word 0x000080EF
+_0222DEDC: .word 0x000080F0
+_0222DEE0: .word 0x000080F4
+_0222DEE4: .word 0x000080F6
+_0222DEE8: .word 0x00000123
+
+ thumb_func_start MOD12_0222DEEC
+MOD12_0222DEEC: ; 0x0222DEEC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x28]
+ ldr r1, _0222DF24 ; =0x000080EF
+ bl FUN_0200C368
+ ldr r0, [r5, #0x28]
+ bl MOD12_0223353C
+ ldr r0, [r5, #0x28]
+ bl MOD12_02233478
+ ldr r1, _0222DF28 ; =0x000080F4
+ ldr r0, [r5, #0x28]
+ add r2, r1, #0
+ bl MOD12_02240E84
+ ldr r6, _0222DF2C ; =0x000080F6
+ mov r4, #0
+_0222DF12:
+ ldr r0, [r5, #0x28]
+ add r1, r4, r6
+ bl MOD12_02240E7C
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0222DF12
+ pop {r4, r5, r6, pc}
+ nop
+_0222DF24: .word 0x000080EF
+_0222DF28: .word 0x000080F4
+_0222DF2C: .word 0x000080F6
+
+ thumb_func_start MOD12_0222DF30
+MOD12_0222DF30: ; 0x0222DF30
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r4, r2, #0
+ cmp r1, #0
+ bne _0222DF9A
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xe
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x15
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x30]
+ mov r0, #0x2d
+ mov r1, #3
+ 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, #0x15
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x30]
+ mov r0, #0x2d
+ mov r1, #5
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #0
+ bl FUN_020178BC
+ add r0, r5, #0
+ bl MOD12_022335B0
+ cmp r4, #1
+ bne _0222DFBE
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_0222DF9A:
+ mov r0, #2
+ lsl r1, r0, #0xd
+ mov r2, #0
+ mov r3, #0x15
+ bl FUN_02017F18
+ ldr r0, [r5, #0x30]
+ mov r1, #2
+ bl FUN_02018744
+ mov r0, #1
+ mov r1, #0
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #1
+ bl FUN_020178BC
+_0222DFBE:
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0222DFC4
+MOD12_0222DFC4: ; 0x0222DFC4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r0, #0x15
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x30]
+ mov r0, #0x2d
+ 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, #0x15
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x30]
+ mov r0, #0x2d
+ mov r1, #2
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x15
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x30]
+ mov r0, #0x2d
+ mov r1, #3
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x15
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x30]
+ mov r0, #0x2d
+ mov r1, #4
+ bl FUN_020068C8
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ bl MOD12_0222DF30
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x5c]
+ mov r1, #0x2d
+ mov r2, #0x1d
+ mov r3, #0x15
+ bl FUN_020030E8
+ mov r0, #0x15
+ mov r1, #0x20
+ bl FUN_02016998
+ add r7, r0, #0
+ mov r0, #0x15
+ mov r1, #0x20
+ bl FUN_02016998
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x5c]
+ mov r1, #0
+ bl FUN_020031FC
+ add r4, r0, #0
+ ldr r0, [r5, #0x5c]
+ mov r1, #0
+ bl FUN_02003204
+ str r0, [sp, #0x14]
+ ldr r0, _0222E0EC ; =0x022451D0
+ add r1, r7, #0
+ ldrb r0, [r0]
+ mov r2, #0x20
+ lsl r6, r0, #5
+ add r0, r4, r6
+ bl MIi_CpuCopy16
+ ldr r1, [r5]
+ ldr r0, _0222E0F0 ; =0x00000123
+ mov r2, #0x20
+ ldrb r1, [r1, r0]
+ ldr r0, _0222E0EC ; =0x022451D0
+ ldrb r0, [r0, r1]
+ ldr r1, [sp, #0x10]
+ lsl r0, r0, #5
+ add r0, r4, r0
+ bl MIi_CpuCopy16
+ ldr r2, [r5]
+ ldr r1, _0222E0F0 ; =0x00000123
+ add r0, r7, #0
+ ldrb r2, [r2, r1]
+ ldr r1, _0222E0EC ; =0x022451D0
+ ldrb r1, [r1, r2]
+ mov r2, #0x20
+ lsl r1, r1, #5
+ add r1, r4, r1
+ bl MIi_CpuCopy16
+ ldr r0, [sp, #0x10]
+ add r1, r4, r6
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ ldr r2, [r5]
+ ldr r1, _0222E0F0 ; =0x00000123
+ add r0, r7, #0
+ ldrb r2, [r2, r1]
+ ldr r1, _0222E0EC ; =0x022451D0
+ ldrb r1, [r1, r2]
+ lsl r2, r1, #5
+ ldr r1, [sp, #0x14]
+ add r1, r1, r2
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r1, r1, r6
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ add r0, r7, #0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x10]
+ bl FUN_02016A18
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E0EC: .word 0x022451D0
+_0222E0F0: .word 0x00000123
+
+ thumb_func_start MOD12_0222E0F4
+MOD12_0222E0F4: ; 0x0222E0F4
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0222E0F8
+MOD12_0222E0F8: ; 0x0222E0F8
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0222E0FC
+MOD12_0222E0FC: ; 0x0222E0FC
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0222E100
+MOD12_0222E100: ; 0x0222E100
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ bne _0222E128
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ add r0, r2, r0
+ add r1, r2, #0
+ mov r2, #2
+ mov r3, #0
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222E148
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222E148
+_0222E128:
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ ldr r3, [r2]
+ ldr r4, _0222E14C ; =0x00000127
+ add r0, r2, r0
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222E148
+ mov r0, #1
+ pop {r4, pc}
+_0222E148:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_0222E14C: .word 0x00000127
+
+ thumb_func_start MOD12_0222E150
+MOD12_0222E150: ; 0x0222E150
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ bl FUN_020832EC
+ cmp r0, #0
+ bne _0222E164
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222E164:
+ ldrh r0, [r4]
+ cmp r0, #0
+ bne _0222E196
+ ldr r3, _0222E1BC ; =0x0000040C
+ mov r1, #0
+ strb r1, [r5, r3]
+ add r0, r3, #2
+ strb r1, [r5, r0]
+ add r0, r3, #3
+ strb r1, [r5, r0]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ sub r3, #0xe4
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #0x14
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222E1B6
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222E1B6
+_0222E196:
+ ldr r4, _0222E1C0 ; =0x00000127
+ ldr r3, [r5]
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ add r0, r5, r0
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222E1B6
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222E1B6:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0222E1BC: .word 0x0000040C
+_0222E1C0: .word 0x00000127
+
+ thumb_func_start MOD12_0222E1C4
+MOD12_0222E1C4: ; 0x0222E1C4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ bne _0222E218
+ ldr r0, [r5]
+ bl FUN_020832EC
+ cmp r0, #1
+ bne _0222E1E2
+ ldr r0, _0222E23C ; =0x0000040C
+ mov r1, #0x2d
+ strb r1, [r5, r0]
+ b _0222E1F0
+_0222E1E2:
+ ldr r1, [r5]
+ ldr r0, _0222E240 ; =0x0000011F
+ ldrb r0, [r1, r0]
+ bl MOD12_02235A98
+ ldr r1, _0222E23C ; =0x0000040C
+ strb r0, [r5, r1]
+_0222E1F0:
+ ldr r3, _0222E244 ; =0x0000040E
+ mov r1, #0
+ strb r1, [r5, r3]
+ add r0, r3, #1
+ strb r1, [r5, r0]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ sub r3, #0xe6
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #0x14
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222E238
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222E238
+_0222E218:
+ ldr r4, _0222E248 ; =0x00000127
+ ldr r3, [r5]
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ add r0, r5, r0
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222E238
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222E238:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222E23C: .word 0x0000040C
+_0222E240: .word 0x0000011F
+_0222E244: .word 0x0000040E
+_0222E248: .word 0x00000127
+
+ thumb_func_start MOD12_0222E24C
+MOD12_0222E24C: ; 0x0222E24C
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD12_0222E250
+MOD12_0222E250: ; 0x0222E250
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r1, [sp]
+ ldrh r1, [r1]
+ add r4, r0, #0
+ cmp r1, #0
+ beq _0222E268
+ cmp r1, #1
+ beq _0222E288
+ cmp r1, #2
+ beq _0222E2B0
+ b _0222E2F0
+_0222E268:
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ add r0, r4, r0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222E300
+ ldr r0, [sp]
+ ldrh r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp]
+ strh r1, [r0]
+ b _0222E300
+_0222E288:
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ ldr r3, [r4]
+ add r0, r4, r0
+ ldr r4, _0222E308 ; =0x00000127
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222E300
+ ldr r0, [sp]
+ ldrh r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp]
+ strh r1, [r0]
+ b _0222E300
+_0222E2B0:
+ add r1, sp, #4
+ bl MOD12_0223900C
+ ldr r1, [r4]
+ ldr r0, _0222E308 ; =0x00000127
+ ldrb r0, [r1, r0]
+ cmp r0, #4
+ bge _0222E2E4
+ lsl r2, r0, #1
+ add r3, sp, #4
+ add r1, r3, r2
+ ldr r7, _0222E30C ; =0x0000023E
+ add r2, r4, r2
+ add r3, r3, r0
+_0222E2CC:
+ ldrh r6, [r1]
+ ldr r5, _0222E310 ; =0x00000236
+ add r1, r1, #2
+ strh r6, [r2, r5]
+ ldrb r6, [r3, #8]
+ add r5, r4, r0
+ add r0, r0, #1
+ strb r6, [r5, r7]
+ add r2, r2, #2
+ add r3, r3, #1
+ cmp r0, #4
+ blt _0222E2CC
+_0222E2E4:
+ ldr r0, [sp]
+ ldrh r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp]
+ strh r1, [r0]
+ b _0222E300
+_0222E2F0:
+ mov r1, #0xce
+ lsl r1, r1, #2
+ add r1, r4, r1
+ bl MOD12_0223808C
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222E300:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E308: .word 0x00000127
+_0222E30C: .word 0x0000023E
+_0222E310: .word 0x00000236
+
+ thumb_func_start MOD12_0222E314
+MOD12_0222E314: ; 0x0222E314
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r2, _0222E394 ; =0x00000235
+ add r4, r0, #0
+ ldrb r0, [r4, r2]
+ add r1, r4, r0
+ sub r0, r2, #4
+ ldrb r0, [r1, r0]
+ add r1, r2, #0
+ add r1, #0xf3
+ strb r0, [r4, r1]
+ str r0, [sp]
+ add r0, r2, #0
+ ldrb r1, [r4, r2]
+ add r0, #0xf4
+ strb r1, [r4, r0]
+ ldr r0, [sp]
+ add r1, r4, r0
+ add r0, r2, #0
+ add r0, #9
+ ldrb r3, [r1, r0]
+ add r0, r2, #0
+ add r0, #0xf5
+ strb r3, [r4, r0]
+ add r3, r2, #0
+ mov r0, #0
+ add r3, #0xf6
+ strb r0, [r4, r3]
+ ldrb r2, [r4, r2]
+ cmp r2, #0
+ ble _0222E374
+ ldr r7, _0222E398 ; =0x0000023E
+ mov r5, #1
+ add r3, r7, #0
+_0222E356:
+ ldr r2, _0222E39C ; =0x00000231
+ add r6, r4, r0
+ ldrb r2, [r6, r2]
+ add r2, r4, r2
+ ldrb r6, [r2, r7]
+ ldrb r2, [r1, r3]
+ cmp r6, r2
+ bne _0222E36A
+ ldr r2, _0222E3A0 ; =0x0000032B
+ strb r5, [r4, r2]
+_0222E36A:
+ ldr r2, _0222E394 ; =0x00000235
+ add r0, r0, #1
+ ldrb r2, [r4, r2]
+ cmp r0, r2
+ blt _0222E356
+_0222E374:
+ mov r1, #1
+ lsl r1, r1, #0xa
+ ldr r2, [sp]
+ add r0, r4, #0
+ add r1, r4, r1
+ bl MOD12_02235274
+ ldr r1, _0222E3A4 ; =0x00000406
+ ldr r2, [sp]
+ add r0, r4, #0
+ add r1, r4, r1
+ bl MOD12_02235274
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E394: .word 0x00000235
+_0222E398: .word 0x0000023E
+_0222E39C: .word 0x00000231
+_0222E3A0: .word 0x0000032B
+_0222E3A4: .word 0x00000406
+
+ thumb_func_start MOD12_0222E3A8
+MOD12_0222E3A8: ; 0x0222E3A8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ bne _0222E3D4
+ mov r0, #0xc3
+ mov r3, #0xca
+ lsl r0, r0, #4
+ lsl r3, r3, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #4
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222E3F4
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222E3F4
+_0222E3D4:
+ ldr r4, _0222E3F8 ; =0x00000127
+ ldr r3, [r5]
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ add r0, r5, r0
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222E3F4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222E3F4:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222E3F8: .word 0x00000127
+
+ thumb_func_start MOD12_0222E3FC
+MOD12_0222E3FC: ; 0x0222E3FC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrh r0, [r5]
+ cmp r0, #0
+ bne _0222E42C
+ ldr r3, _0222E458 ; =0x0000040C
+ mov r0, #0
+ strb r0, [r4, r3]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ sub r3, #0xe4
+ add r0, r4, r0
+ add r1, r4, #0
+ mov r2, #6
+ add r3, r4, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222E452
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _0222E452
+_0222E42C:
+ ldr r5, _0222E45C ; =0x00000127
+ ldr r3, [r4]
+ sub r2, r5, #4
+ ldrb r1, [r3, r5]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ sub r5, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r5]
+ add r0, r4, r0
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222E452
+ ldr r0, _0222E458 ; =0x0000040C
+ mov r1, #0
+ strb r1, [r4, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222E452:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0222E458: .word 0x0000040C
+_0222E45C: .word 0x00000127
+
+ thumb_func_start MOD12_0222E460
+MOD12_0222E460: ; 0x0222E460
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrh r0, [r5]
+ cmp r0, #0
+ beq _0222E472
+ cmp r0, #1
+ beq _0222E4A2
+ b _0222E4C2
+_0222E472:
+ ldr r0, _0222E4F0 ; =0x0000040C
+ mov r1, #4
+ strb r1, [r4, r0]
+ add r1, r0, #0
+ sub r1, #0xe1
+ ldrb r1, [r4, r1]
+ cmp r1, #1
+ bne _0222E486
+ mov r1, #5
+ b _0222E488
+_0222E486:
+ mov r1, #0
+_0222E488:
+ mov r2, #0xce
+ add r0, r0, #1
+ strb r1, [r4, r0]
+ lsl r2, r2, #2
+ add r1, r4, r2
+ sub r2, #0x10
+ ldrb r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD12_02238224
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+_0222E4A2:
+ mov r0, #0xc3
+ mov r3, #0xca
+ lsl r0, r0, #4
+ lsl r3, r3, #2
+ add r0, r4, r0
+ add r1, r4, #0
+ mov r2, #7
+ add r3, r4, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222E4EC
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _0222E4EC
+_0222E4C2:
+ ldr r5, _0222E4F4 ; =0x00000127
+ ldr r3, [r4]
+ sub r2, r5, #4
+ ldrb r1, [r3, r5]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ sub r5, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r5]
+ add r0, r4, r0
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222E4EC
+ ldr r0, _0222E4F0 ; =0x0000040C
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, r0, #1
+ strb r1, [r4, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222E4EC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222E4F0: .word 0x0000040C
+_0222E4F4: .word 0x00000127
+
+ thumb_func_start MOD12_0222E4F8
+MOD12_0222E4F8: ; 0x0222E4F8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrh r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0xc
+ bls _0222E506
+ b _0222E6B6
+_0222E506:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222E512: ; jump table
+ .short _0222E52C - _0222E512 - 2 ; case 0
+ .short _0222E542 - _0222E512 - 2 ; case 1
+ .short _0222E556 - _0222E512 - 2 ; case 2
+ .short _0222E576 - _0222E512 - 2 ; case 3
+ .short _0222E59C - _0222E512 - 2 ; case 4
+ .short _0222E5B6 - _0222E512 - 2 ; case 5
+ .short _0222E5D6 - _0222E512 - 2 ; case 6
+ .short _0222E5FA - _0222E512 - 2 ; case 7
+ .short _0222E614 - _0222E512 - 2 ; case 8
+ .short _0222E634 - _0222E512 - 2 ; case 9
+ .short _0222E658 - _0222E512 - 2 ; case 10
+ .short _0222E672 - _0222E512 - 2 ; case 11
+ .short _0222E692 - _0222E512 - 2 ; case 12
+_0222E52C:
+ mov r2, #0xce
+ lsl r2, r2, #2
+ add r1, r5, r2
+ sub r2, #0x10
+ ldrb r2, [r5, r2]
+ bl MOD12_022380FC
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222E6CA
+_0222E542:
+ mov r2, #0xce
+ lsl r2, r2, #2
+ add r1, r5, r2
+ sub r2, #0x10
+ ldrb r2, [r5, r2]
+ bl MOD12_02238280
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+_0222E556:
+ mov r0, #0xc3
+ mov r3, #0xca
+ lsl r0, r0, #4
+ lsl r3, r3, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #0xa
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222E592
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222E6CA
+_0222E576:
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ ldr r3, [r5]
+ add r0, r5, r0
+ ldr r5, _0222E6D0 ; =0x00000127
+ sub r2, r5, #4
+ ldrb r1, [r3, r5]
+ sub r5, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r5]
+ bl MOD12_022411F4
+ cmp r0, #1
+ beq _0222E594
+_0222E592:
+ b _0222E6CA
+_0222E594:
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222E6CA
+_0222E59C:
+ mov r3, #0xce
+ lsl r3, r3, #2
+ add r2, r3, #0
+ add r1, r5, r3
+ sub r2, #0x10
+ sub r3, #0xf
+ ldrb r2, [r5, r2]
+ ldrb r3, [r5, r3]
+ bl MOD12_022382A8
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+_0222E5B6:
+ mov r0, #0xc3
+ mov r3, #0xca
+ lsl r0, r0, #4
+ lsl r3, r3, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #0xb
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222E6CA
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222E6CA
+_0222E5D6:
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ ldr r3, [r5]
+ add r0, r5, r0
+ ldr r5, _0222E6D0 ; =0x00000127
+ sub r2, r5, #4
+ ldrb r1, [r3, r5]
+ sub r5, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r5]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222E6CA
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222E6CA
+_0222E5FA:
+ mov r3, #0xce
+ lsl r3, r3, #2
+ add r2, r3, #0
+ add r1, r5, r3
+ sub r2, #0x10
+ sub r3, #0xf
+ ldrb r2, [r5, r2]
+ ldrb r3, [r5, r3]
+ bl MOD12_02238370
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+_0222E614:
+ mov r0, #0xc3
+ mov r3, #0xca
+ lsl r0, r0, #4
+ lsl r3, r3, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #0xc
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222E6CA
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222E6CA
+_0222E634:
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ ldr r3, [r5]
+ add r0, r5, r0
+ ldr r5, _0222E6D0 ; =0x00000127
+ sub r2, r5, #4
+ ldrb r1, [r3, r5]
+ sub r5, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r5]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222E6CA
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222E6CA
+_0222E658:
+ mov r3, #0xce
+ lsl r3, r3, #2
+ add r2, r3, #0
+ sub r2, #0x10
+ ldrb r2, [r5, r2]
+ add r1, r5, r3
+ add r3, #0xc8
+ add r3, r5, r3
+ bl MOD12_0223850C
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+_0222E672:
+ mov r0, #0xc3
+ mov r3, #0xca
+ lsl r0, r0, #4
+ lsl r3, r3, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #0xd
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222E6CA
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222E6CA
+_0222E692:
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ ldr r3, [r5]
+ add r0, r5, r0
+ ldr r5, _0222E6D0 ; =0x00000127
+ sub r2, r5, #4
+ ldrb r1, [r3, r5]
+ sub r5, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r5]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222E6CA
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222E6CA
+_0222E6B6:
+ mov r2, #0xce
+ lsl r2, r2, #2
+ add r1, r5, r2
+ sub r2, #0x10
+ ldrb r2, [r5, r2]
+ add r0, r5, #0
+ bl MOD12_02238160
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222E6CA:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0222E6D0: .word 0x00000127
+
+ thumb_func_start MOD12_0222E6D4
+MOD12_0222E6D4: ; 0x0222E6D4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ bne _0222E700
+ mov r0, #0xc3
+ mov r3, #0xca
+ lsl r0, r0, #4
+ lsl r3, r3, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #5
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222E720
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222E720
+_0222E700:
+ ldr r4, _0222E724 ; =0x00000127
+ ldr r3, [r5]
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ add r0, r5, r0
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222E720
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222E720:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222E724: .word 0x00000127
+
+ thumb_func_start MOD12_0222E728
+MOD12_0222E728: ; 0x0222E728
+ ldr r2, _0222E744 ; =0x00000235
+ ldrb r3, [r0, r2]
+ add r3, r3, #1
+ strb r3, [r0, r2]
+ ldrb r0, [r0, r2]
+ cmp r0, #4
+ blo _0222E73A
+ mov r0, #1
+ bx lr
+_0222E73A:
+ mov r0, #5
+ strh r0, [r1, #2]
+ mov r0, #2
+ bx lr
+ nop
+_0222E744: .word 0x00000235
+
+ thumb_func_start MOD12_0222E748
+MOD12_0222E748: ; 0x0222E748
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ add r7, r1, #0
+ ldrh r1, [r7]
+ str r0, [sp]
+ cmp r1, #0x18
+ bls _0222E758
+ b _0222EBFA
+_0222E758:
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222E764: ; jump table
+ .short _0222E796 - _0222E764 - 2 ; case 0
+ .short _0222E79C - _0222E764 - 2 ; case 1
+ .short _0222E7BA - _0222E764 - 2 ; case 2
+ .short _0222E7E8 - _0222E764 - 2 ; case 3
+ .short _0222E80C - _0222E764 - 2 ; case 4
+ .short _0222E834 - _0222E764 - 2 ; case 5
+ .short _0222E850 - _0222E764 - 2 ; case 6
+ .short _0222E878 - _0222E764 - 2 ; case 7
+ .short _0222E9CE - _0222E764 - 2 ; case 8
+ .short _0222E9D6 - _0222E764 - 2 ; case 9
+ .short _0222E9FA - _0222E764 - 2 ; case 10
+ .short _0222EA2C - _0222E764 - 2 ; case 11
+ .short _0222EA44 - _0222E764 - 2 ; case 12
+ .short _0222EA50 - _0222E764 - 2 ; case 13
+ .short _0222EA6E - _0222E764 - 2 ; case 14
+ .short _0222EA9C - _0222E764 - 2 ; case 15
+ .short _0222EAC0 - _0222E764 - 2 ; case 16
+ .short _0222EB12 - _0222E764 - 2 ; case 17
+ .short _0222EB2A - _0222E764 - 2 ; case 18
+ .short _0222EB36 - _0222E764 - 2 ; case 19
+ .short _0222EB48 - _0222E764 - 2 ; case 20
+ .short _0222EB66 - _0222E764 - 2 ; case 21
+ .short _0222EB94 - _0222E764 - 2 ; case 22
+ .short _0222EBB8 - _0222E764 - 2 ; case 23
+ .short _0222EBDE - _0222E764 - 2 ; case 24
+_0222E796:
+ add r0, r1, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222E79C:
+ ldr r1, [r7, #4]
+ ldr r0, [sp]
+ ldr r2, _0222EAE4 ; =0x00000231
+ add r0, r0, r1
+ ldrb r3, [r0, r2]
+ add r1, r2, #0
+ ldr r0, [sp]
+ add r1, #0xf7
+ strb r3, [r0, r1]
+ ldr r1, [r7, #4]
+ add r2, #0xf8
+ strb r1, [r0, r2]
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+_0222E7BA:
+ mov r3, #0xce
+ ldr r0, [sp]
+ lsl r3, r3, #2
+ add r4, r3, #0
+ add r1, r0, #0
+ add r1, r1, r3
+ sub r4, #0x10
+ add r2, r0, #0
+ ldrb r2, [r2, r4]
+ sub r3, #0xf
+ add r4, r0, #0
+ ldrb r3, [r4, r3]
+ bl MOD12_022383EC
+ cmp r0, #1
+ bne _0222E7E2
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222E7E2:
+ mov r0, #5
+ strh r0, [r7]
+ b _0222EC00
+_0222E7E8:
+ mov r1, #0xc3
+ ldr r0, [sp]
+ lsl r1, r1, #4
+ add r0, r0, r1
+ ldr r1, [sp]
+ mov r4, #0xca
+ lsl r4, r4, #2
+ add r3, r1, #0
+ mov r2, #0xe
+ add r3, r3, r4
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222E82A
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222E80C:
+ ldr r0, [sp]
+ mov r1, #0xc3
+ ldr r4, _0222EAE8 ; =0x00000127
+ ldr r3, [r0]
+ lsl r1, r1, #4
+ add r0, r0, r1
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ beq _0222E82C
+_0222E82A:
+ b _0222EC00
+_0222E82C:
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222E834:
+ ldr r0, [r7, #4]
+ add r0, r0, #1
+ str r0, [r7, #4]
+ cmp r0, #4
+ blt _0222E84A
+ mov r0, #0
+ str r0, [r7, #4]
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222E84A:
+ mov r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222E850:
+ mov r6, #0xce
+ lsl r6, r6, #2
+ add r5, r6, #0
+ mov r4, #0
+ add r5, #0xc8
+_0222E85A:
+ ldr r0, [sp]
+ add r2, r4, #0
+ add r1, r0, #0
+ add r3, r0, #0
+ add r1, r1, r6
+ add r3, r3, r5
+ bl MOD12_02238660
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0222E85A
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222E878:
+ mov r5, #0
+ add r2, sp, #0x40
+ add r3, sp, #0x34
+ add r6, sp, #4
+ mov r0, #4
+_0222E882:
+ mov r1, #0
+ str r1, [r2]
+ str r5, [r3]
+ add r4, r6, #0
+_0222E88A:
+ add r1, r1, #1
+ stmia r4!, {r0}
+ cmp r1, #4
+ blt _0222E88A
+ add r5, r5, #1
+ add r2, r2, #4
+ add r3, r3, #4
+ add r6, #0x10
+ cmp r5, #3
+ blt _0222E882
+ mov r3, #0
+ add r6, sp, #0x40
+_0222E8A2:
+ ldr r0, [sp]
+ add r1, r0, r3
+ ldr r0, _0222EAE4 ; =0x00000231
+ ldrb r1, [r1, r0]
+ ldr r0, [sp]
+ add r2, r0, r1
+ ldr r0, _0222EAEC ; =0x0000023E
+ ldrb r0, [r2, r0]
+ lsl r0, r0, #2
+ ldr r4, [r6, r0]
+ add r4, r4, #1
+ str r4, [r6, r0]
+ ldr r0, _0222EAEC ; =0x0000023E
+ mov r4, #0
+ ldrb r0, [r2, r0]
+ lsl r2, r0, #4
+ add r0, sp, #4
+ add r5, r0, r2
+ add r2, r5, #0
+_0222E8C8:
+ ldr r0, [r2]
+ cmp r0, #4
+ bne _0222E8D4
+ lsl r0, r4, #2
+ str r1, [r5, r0]
+ b _0222E8DC
+_0222E8D4:
+ add r4, r4, #1
+ add r2, r2, #4
+ cmp r4, #4
+ blt _0222E8C8
+_0222E8DC:
+ add r3, r3, #1
+ cmp r3, #4
+ blt _0222E8A2
+ mov r6, #0
+_0222E8E4:
+ mov r2, #2
+ cmp r6, #2
+ bge _0222E910
+ add r0, sp, #0x48
+ add r1, sp, #0x3c
+_0222E8EE:
+ sub r3, r0, #4
+ ldr r5, [r0]
+ ldr r4, [r3]
+ cmp r4, r5
+ bge _0222E906
+ str r4, [r0]
+ str r5, [r3]
+ sub r3, r1, #4
+ ldr r5, [r1]
+ ldr r4, [r3]
+ str r4, [r1]
+ str r5, [r3]
+_0222E906:
+ sub r2, r2, #1
+ sub r0, r0, #4
+ sub r1, r1, #4
+ cmp r2, r6
+ bgt _0222E8EE
+_0222E910:
+ add r6, r6, #1
+ cmp r6, #2
+ blt _0222E8E4
+ ldr r0, [r7, #4]
+ mov r2, #0x41
+ lsl r0, r0, #2
+ add r1, sp, #0x34
+ ldr r3, [r1, r0]
+ ldr r0, [sp]
+ lsl r2, r2, #4
+ strb r3, [r0, r2]
+ mov r3, #0
+ ldr r6, _0222EAF0 ; =0x00000411
+ add r2, r3, #0
+ add r5, sp, #4
+_0222E92E:
+ ldr r0, [r7, #4]
+ ldr r4, [sp]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r4, r4, r3
+ lsl r0, r0, #4
+ add r0, r5, r0
+ ldr r0, [r2, r0]
+ add r3, r3, #1
+ add r2, r2, #4
+ strb r0, [r4, r6]
+ cmp r3, #4
+ blt _0222E92E
+ ldr r0, [r7, #4]
+ lsl r1, r0, #2
+ add r0, sp, #0x40
+ ldr r0, [r0, r1]
+ cmp r0, #4
+ bhi _0222E992
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222E960: ; jump table
+ .short _0222E992 - _0222E960 - 2 ; case 0
+ .short _0222E96A - _0222E960 - 2 ; case 1
+ .short _0222E974 - _0222E960 - 2 ; case 2
+ .short _0222E97E - _0222E960 - 2 ; case 3
+ .short _0222E988 - _0222E960 - 2 ; case 4
+_0222E96A:
+ ldr r1, _0222EAF4 ; =0x0000040C
+ ldr r0, [sp]
+ mov r2, #0xa
+ strb r2, [r0, r1]
+ b _0222E99C
+_0222E974:
+ ldr r1, _0222EAF4 ; =0x0000040C
+ ldr r0, [sp]
+ mov r2, #7
+ strb r2, [r0, r1]
+ b _0222E99C
+_0222E97E:
+ ldr r1, _0222EAF4 ; =0x0000040C
+ ldr r0, [sp]
+ mov r2, #8
+ strb r2, [r0, r1]
+ b _0222E99C
+_0222E988:
+ ldr r1, _0222EAF4 ; =0x0000040C
+ ldr r0, [sp]
+ mov r2, #9
+ strb r2, [r0, r1]
+ b _0222E99C
+_0222E992:
+ mov r0, #0xc
+ strh r0, [r7]
+ add sp, #0x4c
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0222E99C:
+ ldr r2, _0222EAF8 ; =0x0000040D
+ ldr r0, [sp]
+ mov r1, #0
+ add r3, r2, #0
+ strb r1, [r0, r2]
+ sub r3, #0xd
+ add r1, r0, #0
+ add r1, r1, r3
+ sub r2, #0xe5
+ add r3, r0, #0
+ ldrb r2, [r3, r2]
+ bl MOD12_02235274
+ ldr r0, [sp]
+ ldr r3, _0222EAFC ; =0x00000406
+ add r1, r0, #0
+ add r1, r1, r3
+ sub r3, #0xde
+ add r2, r0, #0
+ ldrb r2, [r2, r3]
+ bl MOD12_02235274
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+_0222E9CE:
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222E9D6:
+ mov r1, #0xc3
+ ldr r0, [sp]
+ lsl r1, r1, #4
+ add r0, r0, r1
+ ldr r1, [sp]
+ mov r4, #0xca
+ lsl r4, r4, #2
+ add r3, r1, #0
+ mov r2, #0x10
+ add r3, r3, r4
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222EADE
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222E9FA:
+ ldr r0, [sp]
+ mov r1, #0xc3
+ ldr r4, _0222EAE8 ; =0x00000127
+ ldr r3, [r0]
+ lsl r1, r1, #4
+ add r0, r0, r1
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222EADE
+ ldr r1, _0222EAF4 ; =0x0000040C
+ ldr r0, [sp]
+ mov r2, #0
+ strb r2, [r0, r1]
+ add r1, r1, #1
+ strb r2, [r0, r1]
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222EA2C:
+ ldr r0, [r7, #4]
+ add r0, r0, #1
+ str r0, [r7, #4]
+ cmp r0, #3
+ bge _0222EA3C
+ mov r0, #7
+ strh r0, [r7]
+ b _0222EC00
+_0222EA3C:
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222EA44:
+ mov r0, #0
+ str r0, [r7, #4]
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222EA50:
+ ldr r1, [r7, #4]
+ ldr r0, [sp]
+ ldr r2, _0222EAE4 ; =0x00000231
+ add r0, r0, r1
+ ldrb r3, [r0, r2]
+ add r1, r2, #0
+ ldr r0, [sp]
+ add r1, #0xf7
+ strb r3, [r0, r1]
+ ldr r1, [r7, #4]
+ add r2, #0xf8
+ strb r1, [r0, r2]
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+_0222EA6E:
+ mov r3, #0xce
+ ldr r0, [sp]
+ lsl r3, r3, #2
+ add r4, r3, #0
+ add r1, r0, #0
+ add r1, r1, r3
+ sub r4, #0x10
+ add r2, r0, #0
+ ldrb r2, [r2, r4]
+ sub r3, #0xf
+ add r4, r0, #0
+ ldrb r3, [r4, r3]
+ bl MOD12_0223844C
+ cmp r0, #0
+ bne _0222EA94
+ mov r0, #0x11
+ strh r0, [r7]
+ b _0222EC00
+_0222EA94:
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222EA9C:
+ mov r1, #0xc3
+ ldr r0, [sp]
+ lsl r1, r1, #4
+ add r0, r0, r1
+ ldr r1, [sp]
+ mov r4, #0xca
+ lsl r4, r4, #2
+ add r3, r1, #0
+ mov r2, #0x11
+ add r3, r3, r4
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222EADE
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222EAC0:
+ ldr r0, [sp]
+ mov r1, #0xc3
+ ldr r4, _0222EAE8 ; =0x00000127
+ ldr r3, [r0]
+ lsl r1, r1, #4
+ add r0, r0, r1
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ beq _0222EAE0
+_0222EADE:
+ b _0222EC00
+_0222EAE0:
+ ldr r1, _0222EAF4 ; =0x0000040C
+ b _0222EB00
+ .align 2, 0
+_0222EAE4: .word 0x00000231
+_0222EAE8: .word 0x00000127
+_0222EAEC: .word 0x0000023E
+_0222EAF0: .word 0x00000411
+_0222EAF4: .word 0x0000040C
+_0222EAF8: .word 0x0000040D
+_0222EAFC: .word 0x00000406
+_0222EB00:
+ ldr r0, [sp]
+ mov r2, #0
+ strb r2, [r0, r1]
+ add r1, r1, #1
+ strb r2, [r0, r1]
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222EB12:
+ ldr r0, [r7, #4]
+ add r0, r0, #1
+ str r0, [r7, #4]
+ cmp r0, #4
+ bge _0222EB22
+ mov r0, #0xd
+ strh r0, [r7]
+ b _0222EC00
+_0222EB22:
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222EB2A:
+ mov r0, #0
+ str r0, [r7, #4]
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222EB36:
+ mov r1, #0xce
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ add r0, r0, r1
+ bl MOD12_02238210
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+_0222EB48:
+ ldr r1, [r7, #4]
+ ldr r0, [sp]
+ ldr r2, _0222EC08 ; =0x00000231
+ add r0, r0, r1
+ ldrb r3, [r0, r2]
+ add r1, r2, #0
+ ldr r0, [sp]
+ add r1, #0xf7
+ strb r3, [r0, r1]
+ ldr r1, [r7, #4]
+ add r2, #0xf8
+ strb r1, [r0, r2]
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+_0222EB66:
+ mov r3, #0xce
+ ldr r0, [sp]
+ lsl r3, r3, #2
+ add r4, r3, #0
+ add r1, r0, #0
+ add r1, r1, r3
+ sub r4, #0x10
+ add r2, r0, #0
+ ldrb r2, [r2, r4]
+ sub r3, #0xf
+ add r4, r0, #0
+ ldrb r3, [r4, r3]
+ bl MOD12_022384AC
+ cmp r0, #1
+ bne _0222EB8E
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222EB8E:
+ mov r0, #0x18
+ strh r0, [r7]
+ b _0222EC00
+_0222EB94:
+ mov r1, #0xc3
+ ldr r0, [sp]
+ lsl r1, r1, #4
+ add r0, r0, r1
+ ldr r1, [sp]
+ mov r4, #0xca
+ lsl r4, r4, #2
+ add r3, r1, #0
+ mov r2, #0xf
+ add r3, r3, r4
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222EC00
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222EBB8:
+ ldr r0, [sp]
+ mov r1, #0xc3
+ ldr r4, _0222EC0C ; =0x00000127
+ ldr r3, [r0]
+ lsl r1, r1, #4
+ add r0, r0, r1
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222EC00
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222EBDE:
+ ldr r0, [r7, #4]
+ add r0, r0, #1
+ str r0, [r7, #4]
+ cmp r0, #4
+ blt _0222EBF4
+ mov r0, #0
+ str r0, [r7, #4]
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _0222EC00
+_0222EBF4:
+ mov r0, #0x14
+ strh r0, [r7]
+ b _0222EC00
+_0222EBFA:
+ add sp, #0x4c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0222EC00:
+ mov r0, #0
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222EC08: .word 0x00000231
+_0222EC0C: .word 0x00000127
+
+ thumb_func_start MOD12_0222EC10
+MOD12_0222EC10: ; 0x0222EC10
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _0222EC26
+ cmp r0, #1
+ beq _0222EC2C
+ cmp r0, #2
+ beq _0222EC4C
+ b _0222EC70
+_0222EC26:
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222EC74
+_0222EC2C:
+ mov r0, #0xc3
+ mov r3, #0xca
+ lsl r0, r0, #4
+ lsl r3, r3, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #0x12
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222EC74
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222EC74
+_0222EC4C:
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ ldr r3, [r5]
+ add r0, r5, r0
+ ldr r5, _0222EC78 ; =0x00000127
+ sub r2, r5, #4
+ ldrb r1, [r3, r5]
+ sub r5, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r5]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222EC74
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222EC74
+_0222EC70:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222EC74:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222EC78: .word 0x00000127
+
+ thumb_func_start MOD12_0222EC7C
+MOD12_0222EC7C: ; 0x0222EC7C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldrh r1, [r5]
+ add r4, r0, #0
+ cmp r1, #6
+ bls _0222EC8A
+ b _0222EDEE
+_0222EC8A:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222EC96: ; jump table
+ .short _0222ECA4 - _0222EC96 - 2 ; case 0
+ .short _0222ECC4 - _0222EC96 - 2 ; case 1
+ .short _0222ECEA - _0222EC96 - 2 ; case 2
+ .short _0222ED4A - _0222EC96 - 2 ; case 3
+ .short _0222ED6E - _0222EC96 - 2 ; case 4
+ .short _0222EDAA - _0222EC96 - 2 ; case 5
+ .short _0222EDCA - _0222EC96 - 2 ; case 6
+_0222ECA4:
+ mov r0, #0xc3
+ mov r3, #0xca
+ lsl r0, r0, #4
+ lsl r3, r3, #2
+ add r0, r4, r0
+ add r1, r4, #0
+ mov r2, #0x15
+ add r3, r4, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222ECE0
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _0222EE0E
+_0222ECC4:
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ ldr r3, [r4]
+ add r0, r4, r0
+ ldr r4, _0222EE14 ; =0x00000127
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ beq _0222ECE2
+_0222ECE0:
+ b _0222EE0E
+_0222ECE2:
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _0222EE0E
+_0222ECEA:
+ mov r2, #0x36
+ mov r1, #0
+ lsl r2, r2, #4
+ add r0, r1, #0
+ add r2, r4, r2
+_0222ECF4:
+ ldr r3, [r2]
+ lsl r3, r3, #0x1a
+ lsr r3, r3, #0x1e
+ beq _0222ECFE
+ add r1, r1, #1
+_0222ECFE:
+ add r0, r0, #1
+ add r2, #0x2c
+ cmp r0, #4
+ blt _0222ECF4
+ mov r0, #0x23
+ lsl r0, r0, #4
+ ldrb r0, [r4, r0]
+ cmp r0, #3
+ bhs _0222ED1C
+ cmp r1, #4
+ bge _0222ED1C
+ ldr r0, _0222EE18 ; =0x0000040C
+ mov r1, #0x2a
+ strb r1, [r4, r0]
+ b _0222ED22
+_0222ED1C:
+ ldr r0, _0222EE18 ; =0x0000040C
+ mov r1, #0
+ strb r1, [r4, r0]
+_0222ED22:
+ ldr r3, _0222EE1C ; =0x0000040E
+ mov r1, #0
+ strb r1, [r4, r3]
+ add r0, r3, #1
+ strb r1, [r4, r0]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ sub r3, #0xe6
+ add r0, r4, r0
+ add r1, r4, #0
+ mov r2, #0x14
+ add r3, r4, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222EE0E
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _0222EE0E
+_0222ED4A:
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ ldr r3, [r4]
+ add r0, r4, r0
+ ldr r4, _0222EE14 ; =0x00000127
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222EE0E
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _0222EE0E
+_0222ED6E:
+ mov r1, #0xce
+ lsl r1, r1, #2
+ add r1, r4, r1
+ bl MOD12_0223818C
+ mov r0, #0x23
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD12_02235C60
+ ldr r0, _0222EE20 ; =0x00000236
+ mov r6, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ add r1, #0x20
+_0222ED8C:
+ ldrh r2, [r3, r0]
+ add r6, r6, #1
+ strh r2, [r3, r1]
+ add r3, r3, #2
+ cmp r6, #4
+ blt _0222ED8C
+ mov r0, #0x23
+ lsl r0, r0, #4
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _0222EE0E
+_0222EDAA:
+ mov r0, #0xc3
+ mov r3, #0x23
+ lsl r0, r0, #4
+ lsl r3, r3, #4
+ add r0, r4, r0
+ add r1, r4, #0
+ mov r2, #0x13
+ add r3, r4, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222EE0E
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _0222EE0E
+_0222EDCA:
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ ldr r3, [r4]
+ add r0, r4, r0
+ ldr r4, _0222EE14 ; =0x00000127
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222EE0E
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _0222EE0E
+_0222EDEE:
+ mov r0, #0x23
+ lsl r0, r0, #4
+ ldrb r1, [r4, r0]
+ cmp r1, #4
+ blo _0222EE00
+ mov r0, #0xf
+ strh r0, [r5, #2]
+ mov r0, #2
+ pop {r4, r5, r6, pc}
+_0222EE00:
+ mov r1, #0
+ add r0, r0, #5
+ strb r1, [r4, r0]
+ mov r0, #3
+ strh r0, [r5, #2]
+ mov r0, #2
+ pop {r4, r5, r6, pc}
+_0222EE0E:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0222EE14: .word 0x00000127
+_0222EE18: .word 0x0000040C
+_0222EE1C: .word 0x0000040E
+_0222EE20: .word 0x00000236
+
+ thumb_func_start MOD12_0222EE24
+MOD12_0222EE24: ; 0x0222EE24
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r3, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #3
+ bhi _0222EED0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222EE3C: ; jump table
+ .short _0222EE44 - _0222EE3C - 2 ; case 0
+ .short _0222EE66 - _0222EE3C - 2 ; case 1
+ .short _0222EE90 - _0222EE3C - 2 ; case 2
+ .short _0222EEB4 - _0222EE3C - 2 ; case 3
+_0222EE44:
+ mov r1, #0
+ ldr r7, _0222EEF4 ; =0x0000012E
+ add r2, r3, #0
+ add r5, r1, #0
+_0222EE4C:
+ ldr r0, _0222EEF8 ; =0x00000242
+ ldr r6, [r3]
+ ldrsh r0, [r2, r0]
+ add r6, r6, r5
+ add r1, r1, #1
+ strh r0, [r6, r7]
+ add r2, r2, #2
+ add r5, #0xc
+ cmp r1, #4
+ blt _0222EE4C
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+_0222EE66:
+ ldr r5, _0222EEFC ; =0x0000040C
+ mov r0, #0x2b
+ strb r0, [r3, r5]
+ add r0, r5, #1
+ mov r1, #0
+ strb r1, [r3, r0]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ sub r5, #0xe4
+ add r0, r3, r0
+ add r1, r3, #0
+ mov r2, #3
+ add r3, r3, r5
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222EEF0
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222EEF0
+_0222EE90:
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ ldr r5, [r3]
+ add r0, r3, r0
+ ldr r3, _0222EF00 ; =0x00000127
+ sub r2, r3, #4
+ ldrb r1, [r5, r3]
+ sub r3, #0xb
+ ldrb r2, [r5, r2]
+ ldrb r3, [r5, r3]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222EEF0
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222EEF0
+_0222EEB4:
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ add r0, r3, r0
+ add r1, r3, #0
+ mov r2, #1
+ mov r3, #0
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222EEF0
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222EEF0
+_0222EED0:
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ ldr r4, [r3]
+ add r0, r3, r0
+ ldr r3, _0222EF00 ; =0x00000127
+ sub r2, r3, #4
+ ldrb r1, [r4, r3]
+ sub r3, #0xb
+ ldrb r2, [r4, r2]
+ ldrb r3, [r4, r3]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222EEF0
+ mov r0, #3
+ pop {r3, r4, r5, r6, r7, pc}
+_0222EEF0:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222EEF4: .word 0x0000012E
+_0222EEF8: .word 0x00000242
+_0222EEFC: .word 0x0000040C
+_0222EF00: .word 0x00000127
+
+ thumb_func_start MOD12_0222EF04
+MOD12_0222EF04: ; 0x0222EF04
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r1, #1
+ lsl r1, r1, #0x1a
+ ldr r0, [r1]
+ ldr r2, _0222F15C ; =0xFFFFE0FF
+ and r0, r2
+ str r0, [r1]
+ ldr r0, _0222F160 ; =0x04001000
+ ldr r3, [r0]
+ and r2, r3
+ str r2, [r0]
+ ldr r3, [r1]
+ ldr r2, _0222F164 ; =0xFFFF1FFF
+ and r3, r2
+ str r3, [r1]
+ ldr r3, [r0]
+ add r1, #0x50
+ and r2, r3
+ str r2, [r0]
+ mov r2, #0
+ strh r2, [r1]
+ add r0, #0x50
+ strh r2, [r0]
+ mov r2, #7
+ mov r0, #3
+ mov r1, #0x16
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ ldr r1, _0222F168 ; =0x00000F68
+ add r0, r4, #0
+ mov r2, #0x16
+ bl FUN_02006268
+ ldr r2, _0222F168 ; =0x00000F68
+ mov r1, #0
+ add r5, r0, #0
+ bl MI_CpuFill8
+ mov r0, #0x16
+ bl MOD12_022312D8
+ str r0, [r5, #8]
+ add r0, r4, #0
+ bl FUN_0200628C
+ mov r1, #0x5b
+ str r0, [r5]
+ lsl r1, r1, #2
+ str r5, [r0, r1]
+ ldr r2, [r5]
+ mov r3, #0
+ add r0, r1, #4
+ strb r3, [r2, r0]
+ ldr r0, [r5]
+ str r0, [r5, #0xc]
+ add r0, r5, #0
+ bl MOD12_0222F720
+ mov r0, #0x16
+ bl FUN_02002FD0
+ str r0, [r5, #0x50]
+ mov r1, #1
+ bl FUN_020038F0
+ mov r2, #2
+ ldr r0, [r5, #0x50]
+ mov r1, #0
+ lsl r2, r2, #8
+ mov r3, #0x16
+ bl FUN_02003008
+ mov r1, #1
+ ldr r0, [r5, #0x50]
+ lsl r2, r1, #9
+ mov r3, #0x16
+ bl FUN_02003008
+ mov r2, #7
+ ldr r0, [r5, #0x50]
+ mov r1, #2
+ lsl r2, r2, #6
+ mov r3, #0x16
+ bl FUN_02003008
+ mov r2, #2
+ ldr r0, [r5, #0x50]
+ mov r1, #3
+ lsl r2, r2, #8
+ mov r3, #0x16
+ bl FUN_02003008
+ mov r0, #0x16
+ bl FUN_02016B94
+ str r0, [r5, #0x30]
+ mov r0, #0x40
+ mov r1, #0x16
+ bl FUN_0201C24C
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ ldr r0, [r5, #0x30]
+ bl MOD12_0222F548
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ mov r0, #2
+ mov r1, #0x16
+ bl FUN_02002C50
+ mov r0, #0x16
+ bl FUN_0200BB14
+ ldr r1, _0222F16C ; =0x02244AFC
+ ldr r2, _0222F170 ; =0x02244AB4
+ mov r3, #0x20
+ str r0, [r5, #0x28]
+ bl FUN_0200BB6C
+ ldr r1, _0222F174 ; =0x00100010
+ mov r0, #1
+ bl FUN_02008D44
+ mov r0, #1
+ bl FUN_02008DDC
+ ldr r0, [r5, #0x28]
+ bl FUN_0200BB34
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x2c]
+ mov r2, #0x80
+ bl FUN_0200BBF0
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x2c]
+ ldr r2, _0222F178 ; =0x02244AC8
+ bl FUN_0200BF60
+ ldr r0, [r5, #0x28]
+ bl FUN_0200BB68
+ mov r2, #1
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ mov r0, #0x16
+ bl FUN_02006D98
+ str r0, [r5, #0x10]
+ bl MOD12_0222F6E0
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xc4
+ mov r3, #0x16
+ bl FUN_0200A86C
+ str r0, [r5, #0x44]
+ mov r0, #0x16
+ bl FUN_0200AA80
+ str r0, [r5, #0x48]
+ mov r0, #5
+ lsl r0, r0, #6
+ mov r1, #0x16
+ bl FUN_020219F4
+ str r0, [r5, #0x4c]
+ add r0, r5, #0
+ bl MOD12_0222F834
+ add r0, r5, #0
+ bl MOD12_0222F938
+ add r0, r5, #0
+ bl MOD12_0222F6B4
+ add r0, r5, #0
+ bl MOD12_0222F748
+ add r0, r5, #0
+ bl MOD12_0222F7F4
+ mov r0, #1
+ str r0, [sp]
+ add r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ ldr r0, [r5, #0x50]
+ ldr r3, _0222F17C ; =0x00007FFF
+ add r2, r1, #0
+ bl FUN_02003914
+ mov r1, #1
+ add r0, r1, #0
+ str r1, [sp]
+ add r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x50]
+ ldr r3, _0222F17C ; =0x00007FFF
+ mov r2, #0
+ bl FUN_02003914
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0xe0
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x50]
+ ldr r3, _0222F17C ; =0x00007FFF
+ mov r1, #2
+ bl FUN_02003914
+ mov r2, #0
+ mov r0, #1
+ str r2, [sp]
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x50]
+ ldr r3, _0222F17C ; =0x00007FFF
+ mov r1, #3
+ bl FUN_02003914
+ bl FUN_02033E74
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r1, #0x16
+ str r1, [sp, #8]
+ mov r1, #0x1b
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldr r0, _0222F180 ; =MOD12_0222F4F4
+ ldr r2, _0222F184 ; =0x0000EA60
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ ldr r0, _0222F188 ; =0x000004F8
+ mov r1, #1
+ strb r1, [r5, r0]
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #0
+ bl FUN_0200415C
+ ldr r1, _0222F18C ; =0x0000046F
+ mov r0, #6
+ mov r2, #1
+ bl FUN_0200433C
+ ldr r1, [r5]
+ ldr r0, _0222F190 ; =0x00000171
+ ldrb r0, [r1, r0]
+ bl FUN_020833D4
+ ldr r0, _0222F194 ; =MOD12_0222F458
+ add r1, r5, #0
+ bl FUN_02015F10
+ ldr r0, _0222F198 ; =0x00000605
+ bl FUN_020054C8
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0222F15C: .word 0xFFFFE0FF
+_0222F160: .word 0x04001000
+_0222F164: .word 0xFFFF1FFF
+_0222F168: .word 0x00000F68
+_0222F16C: .word 0x02244AFC
+_0222F170: .word 0x02244AB4
+_0222F174: .word 0x00100010
+_0222F178: .word 0x02244AC8
+_0222F17C: .word 0x00007FFF
+_0222F180: .word MOD12_0222F4F4
+_0222F184: .word 0x0000EA60
+_0222F188: .word 0x000004F8
+_0222F18C: .word 0x0000046F
+_0222F190: .word 0x00000171
+_0222F194: .word MOD12_0222F458
+_0222F198: .word 0x00000605
+
+ thumb_func_start MOD12_0222F19C
+MOD12_0222F19C: ; 0x0222F19C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02082878
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _0222F1C0
+ cmp r0, #1
+ beq _0222F236
+ cmp r0, #2
+ bne _0222F1BE
+ b _0222F2EC
+_0222F1BE:
+ b _0222F2FA
+_0222F1C0:
+ bl FUN_0200E308
+ cmp r0, #1
+ beq _0222F1CA
+ b _0222F2FA
+_0222F1CA:
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0222F300 ; =0x00007FFF
+ ldr r2, _0222F304 ; =0x0000FFFF
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x50]
+ mov r1, #1
+ mov r3, #6
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0222F300 ; =0x00007FFF
+ ldr r2, _0222F304 ; =0x0000FFFF
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x50]
+ mov r1, #2
+ mov r3, #6
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ ldr r2, _0222F300 ; =0x00007FFF
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ ldr r0, [r4, #0x50]
+ mov r1, #4
+ lsr r2, r2, #1
+ mov r3, #6
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0222F300 ; =0x00007FFF
+ ldr r2, _0222F304 ; =0x0000FFFF
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x50]
+ mov r1, #8
+ mov r3, #6
+ bl FUN_02003210
+ ldr r0, _0222F308 ; =0x000006E5
+ bl FUN_020054C8
+ mov r0, #1
+ str r0, [r5]
+ b _0222F2FA
+_0222F236:
+ ldr r0, [r4]
+ bl FUN_020828BC
+ cmp r0, #1
+ bne _0222F2A8
+ ldr r2, _0222F30C ; =0x000004F6
+ ldr r1, _0222F310 ; =0x00000F14
+ ldrh r2, [r4, r2]
+ add r0, r4, #0
+ add r1, r4, r1
+ lsl r3, r2, #2
+ ldr r2, _0222F314 ; =0x02244B44
+ ldr r2, [r2, r3]
+ blx r2
+ sub r1, r0, #1
+ cmp r1, #1
+ bhi _0222F27A
+ cmp r0, #1
+ bne _0222F264
+ ldr r0, _0222F30C ; =0x000004F6
+ ldrh r1, [r4, r0]
+ add r1, r1, #1
+ b _0222F26A
+_0222F264:
+ ldr r0, _0222F318 ; =0x00000F16
+ ldrh r1, [r4, r0]
+ ldr r0, _0222F30C ; =0x000004F6
+_0222F26A:
+ strh r1, [r4, r0]
+ ldr r0, _0222F310 ; =0x00000F14
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #8
+ bl MI_CpuFill8
+ b _0222F2A8
+_0222F27A:
+ cmp r0, #3
+ bne _0222F2A8
+ mov r0, #2
+ str r0, [r5]
+ ldr r0, _0222F310 ; =0x00000F14
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #8
+ bl MI_CpuFill8
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x16
+ str r0, [sp, #8]
+ mov r0, #2
+ mov r1, #0x10
+ mov r2, #0x24
+ mov r3, #0
+ bl FUN_0200E1D0
+ b _0222F2FA
+_0222F2A8:
+ ldr r0, _0222F31C ; =0x000004FC
+ add r0, r4, r0
+ bl MOD12_022410A0
+ ldr r0, _0222F31C ; =0x000004FC
+ add r1, r4, #0
+ add r0, r4, r0
+ bl MOD12_02241114
+ ldr r0, _0222F320 ; =0x00000F1C
+ ldrb r1, [r4, r0]
+ cmp r1, #1
+ bne _0222F2FA
+ mov r1, #2
+ sub r0, #8
+ str r1, [r5]
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #8
+ bl MI_CpuFill8
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x16
+ str r0, [sp, #8]
+ mov r0, #2
+ mov r1, #0x10
+ mov r2, #0x24
+ mov r3, #0
+ bl FUN_0200E1D0
+ b _0222F2FA
+_0222F2EC:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _0222F2FA
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_0222F2FA:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_0222F300: .word 0x00007FFF
+_0222F304: .word 0x0000FFFF
+_0222F308: .word 0x000006E5
+_0222F30C: .word 0x000004F6
+_0222F310: .word 0x00000F14
+_0222F314: .word 0x02244B44
+_0222F318: .word 0x00000F16
+_0222F31C: .word 0x000004FC
+_0222F320: .word 0x00000F1C
+
+ thumb_func_start MOD12_0222F324
+MOD12_0222F324: ; 0x0222F324
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ bl FUN_02006278
+ add r4, r0, #0
+ bl FUN_02012EAC
+ add r0, r4, #0
+ bl MOD12_0222F7C0
+ add r0, r4, #0
+ bl MOD12_0222F824
+ add r0, r4, #0
+ bl MOD12_0222F934
+ add r0, r4, #0
+ bl MOD12_0222F98C
+ add r0, r4, #0
+ add r0, #0x34
+ bl FUN_02019178
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0x30]
+ mov r1, #3
+ bl FUN_020178A0
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201797C
+ ldr r0, [r4, #0x30]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x2c]
+ bl FUN_0200C398
+ ldr r0, [r4, #0x28]
+ bl FUN_0200BD04
+ bl FUN_0201C29C
+ mov r7, #0xf2
+ mov r6, #0
+ add r5, r4, #0
+ lsl r7, r7, #4
+_0222F3A4:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _0222F3AE
+ bl FUN_021DD540
+_0222F3AE:
+ add r6, r6, #1
+ add r5, #0x10
+ cmp r6, #4
+ blt _0222F3A4
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD12_02239874
+ add r0, r4, #0
+ bl MOD12_02239A58
+ ldr r0, [r4, #0x10]
+ bl FUN_020072E8
+ mov r0, #2
+ bl FUN_02002CF8
+ ldr r0, [r4, #0x50]
+ mov r1, #0
+ bl FUN_02003038
+ ldr r0, [r4, #0x50]
+ mov r1, #1
+ bl FUN_02003038
+ ldr r0, [r4, #0x50]
+ mov r1, #2
+ bl FUN_02003038
+ ldr r0, [r4, #0x50]
+ mov r1, #3
+ bl FUN_02003038
+ ldr r0, [r4, #0x50]
+ bl FUN_02002FEC
+ ldr r0, [r4, #0x48]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x4c]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x44]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x30]
+ bl FUN_02016A18
+ ldr r0, [r4, #4]
+ bl FUN_0200CAB4
+ ldr r0, [r4, #8]
+ bl MOD12_02231378
+ bl FUN_0201CD04
+ ldr r0, [sp]
+ bl FUN_0200627C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ mov r0, #0x16
+ bl FUN_020168D0
+ bl FUN_02083404
+ bl FUN_02033ED0
+ ldr r0, _0222F450 ; =SDK_MODULE_08_ID
+ bl UnloadOverlayByID
+ ldr r0, _0222F454 ; =SDK_MODULE_17_ID
+ bl UnloadOverlayByID
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222F450: .word SDK_MODULE_08_ID
+_0222F454: .word SDK_MODULE_17_ID
+
+ thumb_func_start MOD12_0222F458
+MOD12_0222F458: ; 0x0222F458
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, _0222F4E4 ; =0x00000F63
+ sub r1, r0, #2
+ ldrb r3, [r6, r1]
+ sub r1, r0, #3
+ ldrb r1, [r6, r1]
+ sub r5, r0, #1
+ ldrb r5, [r6, r5]
+ lsl r2, r1, #8
+ mov r1, #0xff
+ lsl r1, r1, #8
+ and r2, r1
+ orr r2, r5
+ ldrb r4, [r6, r0]
+ ldr r5, _0222F4E8 ; =0x04000040
+ strh r2, [r5]
+ lsl r2, r3, #8
+ and r2, r1
+ orr r2, r4
+ strh r2, [r5, #4]
+ add r2, r0, #4
+ ldrb r4, [r6, r2]
+ add r2, r0, #2
+ ldrb r3, [r6, r2]
+ add r2, r0, #1
+ ldrb r2, [r6, r2]
+ add r0, r0, #3
+ ldrb r0, [r6, r0]
+ lsl r2, r2, #8
+ and r2, r1
+ orr r0, r2
+ strh r0, [r5, #2]
+ lsl r0, r3, #8
+ and r0, r1
+ orr r0, r4
+ strh r0, [r5, #6]
+ ldr r0, [r6, #0x10]
+ bl FUN_020081C4
+ mov r7, #0xf2
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #4
+_0222F4B0:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _0222F4BA
+ bl FUN_021DD58C
+_0222F4BA:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #4
+ blt _0222F4B0
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ ldr r0, [r6, #0x50]
+ bl FUN_0200372C
+ ldr r0, [r6, #0x30]
+ bl FUN_0201AB60
+ ldr r3, _0222F4EC ; =0x027E0000
+ ldr r1, _0222F4F0 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F4E4: .word 0x00000F63
+_0222F4E8: .word 0x04000040
+_0222F4EC: .word 0x027E0000
+_0222F4F0: .word 0x00003FF8
+
+ thumb_func_start MOD12_0222F4F4
+MOD12_0222F4F4: ; 0x0222F4F4
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r0, _0222F540 ; =0x000004F8
+ add r6, r1, #0
+ ldrb r0, [r6, r0]
+ cmp r0, #1
+ bne _0222F534
+ ldr r0, [r6, #0x10]
+ bl FUN_02006ED4
+ mov r7, #0xf2
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #4
+_0222F50E:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _0222F518
+ bl FUN_021DD518
+_0222F518:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #4
+ blt _0222F50E
+ bl FUN_02215A44
+ ldr r0, [r6, #0x2c]
+ bl FUN_0200BC1C
+ bl FUN_0200BC38
+ ldr r0, _0222F544 ; =0x04000540
+ mov r1, #1
+ str r1, [r0]
+_0222F534:
+ ldr r1, [r6, #0x30]
+ mov r0, #0x16
+ bl FUN_020335F0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222F540: .word 0x000004F8
+_0222F544: .word 0x04000540
+
+ thumb_func_start MOD12_0222F548
+MOD12_0222F548: ; 0x0222F548
+ push {r3, r4, r5, lr}
+ sub sp, #0xa8
+ add r4, r0, #0
+ bl FUN_0201E6D8
+ ldr r5, _0222F6A0 ; =0x02244B1C
+ add r3, sp, #0x2c
+ mov r2, #5
+_0222F558:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222F558
+ add r0, sp, #0x2c
+ 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, _0222F6A4 ; =0x02244AA4
+ add r3, sp, #0x1c
+ 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, _0222F6A8 ; =0x02244B70
+ add r3, sp, #0x54
+ mov r2, #0xa
+_0222F5B8:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222F5B8
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ add r2, sp, #0x54
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #2
+ add r2, sp, #0x70
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #2
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #3
+ add r2, sp, #0x8c
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020179E0
+ mov r1, #3
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ ldr r1, _0222F6AC ; =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, _0222F6B0 ; =0x02244AE0
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #4
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #4
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add sp, #0xa8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222F6A0: .word 0x02244B1C
+_0222F6A4: .word 0x02244AA4
+_0222F6A8: .word 0x02244B70
+_0222F6AC: .word 0x04000008
+_0222F6B0: .word 0x02244AE0
+
+ thumb_func_start MOD12_0222F6B4
+MOD12_0222F6B4: ; 0x0222F6B4
+ push {lr}
+ sub sp, #0x14
+ add r1, r0, #0
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r1, #0x30]
+ add r1, #0x34
+ mov r2, #1
+ mov r3, #2
+ bl FUN_02019064
+ add sp, #0x14
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0222F6E0
+MOD12_0222F6E0: ; 0x0222F6E0
+ push {r3, r4, r5, lr}
+ ldr r3, _0222F718 ; =0x021064B8
+ mov r0, #2
+ mov r1, #0
+ ldr r3, [r3]
+ lsl r0, r0, #0xe
+ add r2, r1, #0
+ blx r3
+ ldr r3, _0222F71C ; =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 _0222F708
+ bl ErrorHandling
+_0222F708:
+ cmp r5, #0
+ bne _0222F710
+ bl ErrorHandling
+_0222F710:
+ bl FUN_02012CC8
+ pop {r3, r4, r5, pc}
+ nop
+_0222F718: .word 0x021064B8
+_0222F71C: .word 0x021064C0
+
+ thumb_func_start MOD12_0222F720
+MOD12_0222F720: ; 0x0222F720
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _0222F72E
+ bl ErrorHandling
+_0222F72E:
+ mov r3, #0
+ mov r0, #3
+_0222F732:
+ add r1, r4, r3
+ sub r2, r0, r3
+ add r1, #0xd4
+ add r3, r3, #1
+ strb r2, [r1]
+ cmp r3, #4
+ blt _0222F732
+ add r0, r4, #0
+ bl MOD12_02239B88
+ pop {r4, pc}
+
+ thumb_func_start MOD12_0222F748
+MOD12_0222F748: ; 0x0222F748
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ mov r0, #0x2e
+ str r0, [sp]
+ mov r0, #7
+ 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]
+ ldr r0, _0222F7B8 ; =0x000080E9
+ mov r1, #2
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x50]
+ ldr r2, [r4, #0x28]
+ ldr r3, [r4, #0x2c]
+ bl FUN_0200C0DC
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x2c]
+ bl MOD12_0223988C
+ mov r0, #0
+ mvn r0, r0
+ ldr r3, _0222F7B8 ; =0x000080E9
+ str r0, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x2c]
+ ldr r2, [r4, #0x50]
+ bl MOD12_022316F8
+ ldr r3, _0222F7B8 ; =0x000080E9
+ mov r0, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ str r0, [sp, #0xc]
+ mov r0, #0xc8
+ str r0, [sp, #0x10]
+ mov r0, #3
+ str r0, [sp, #0x14]
+ ldr r0, _0222F7BC ; =0x0000C350
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ ldr r1, [r4, #0x28]
+ ldr r2, [r4, #0x2c]
+ add r0, #0xb4
+ bl MOD12_022317C8
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222F7B8: .word 0x000080E9
+_0222F7BC: .word 0x0000C350
+
+ thumb_func_start MOD12_0222F7C0
+MOD12_0222F7C0: ; 0x0222F7C0
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4, #0x2c]
+ bl MOD12_022398D8
+ add r0, r4, #0
+ add r0, #0xb4
+ bl MOD12_0223185C
+ ldr r1, _0222F7F0 ; =0x000080E9
+ mov r2, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x2c]
+ mvn r2, r2
+ add r3, r1, #0
+ bl MOD12_02231780
+ ldr r0, [r4, #0x2c]
+ ldr r1, _0222F7F0 ; =0x000080E9
+ bl FUN_0200C368
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222F7F0: .word 0x000080E9
+
+ thumb_func_start MOD12_0222F7F4
+MOD12_0222F7F4: ; 0x0222F7F4
+ push {r3, lr}
+ sub sp, #0x18
+ add r3, r0, #0
+ mov r0, #0x2e
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #2
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _0222F820 ; =0x000080EA
+ mov r1, #3
+ str r0, [sp, #0x14]
+ ldr r0, [r3, #0x50]
+ ldr r2, [r3, #0x28]
+ ldr r3, [r3, #0x2c]
+ bl FUN_0200C0DC
+ add sp, #0x18
+ pop {r3, pc}
+ .align 2, 0
+_0222F820: .word 0x000080EA
+
+ thumb_func_start MOD12_0222F824
+MOD12_0222F824: ; 0x0222F824
+ ldr r3, _0222F82C ; =0x0200C369
+ ldr r0, [r0, #0x2c]
+ ldr r1, _0222F830 ; =0x000080EA
+ bx r3
+ .align 2, 0
+_0222F82C: .word 0x0200C369
+_0222F830: .word 0x000080EA
+
+ thumb_func_start MOD12_0222F834
+MOD12_0222F834: ; 0x0222F834
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r1, #0x16
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x30]
+ mov r0, #0x2d
+ 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, #0x16
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x30]
+ mov r0, #0x2d
+ mov r1, #0x15
+ mov r3, #3
+ bl FUN_020068C8
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_02018744
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x50]
+ mov r1, #0x2d
+ mov r2, #0x22
+ mov r3, #0x16
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xd0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x50]
+ mov r1, #0x2d
+ mov r2, #0x23
+ mov r3, #0x16
+ bl FUN_020030E8
+ ldr r1, [r5]
+ ldr r0, _0222F930 ; =0x00001988
+ ldr r0, [r1, r0]
+ bl FUN_02025084
+ add r4, r0, #0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x16
+ str r0, [sp, #4]
+ mov r1, #1
+ ldr r0, [r5, #0x30]
+ add r2, r1, #0
+ mov r3, #0xf
+ bl FUN_0200CD68
+ add r0, r4, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xe0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x50]
+ mov r1, #0x26
+ mov r3, #0x16
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x16
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x30]
+ mov r0, #0x2d
+ mov r1, #0x17
+ 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, #0x16
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x30]
+ mov r0, #0x2d
+ mov r1, #0x14
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xc0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x50]
+ mov r1, #0x2d
+ mov r2, #0x24
+ mov r3, #0x16
+ bl FUN_020030E8
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222F930: .word 0x00001988
+
+ thumb_func_start MOD12_0222F934
+MOD12_0222F934: ; 0x0222F934
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0222F938
+MOD12_0222F938: ; 0x0222F938
+ 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, #0x16
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x30]
+ mov r0, #0x2d
+ mov r1, #0x12
+ mov r3, #4
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x16
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x30]
+ mov r0, #0x2d
+ mov r1, #0x13
+ mov r3, #4
+ bl FUN_020068C8
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x50]
+ mov r1, #0x2d
+ mov r2, #0x21
+ mov r3, #0x16
+ bl FUN_020030E8
+ add sp, #0x10
+ pop {r4, pc}
+
+ thumb_func_start MOD12_0222F98C
+MOD12_0222F98C: ; 0x0222F98C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0222F990
+MOD12_0222F990: ; 0x0222F990
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ bne _0222F9BC
+ ldr r0, [r5, #0x50]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0222F9C0
+ ldr r0, [r5]
+ mov r1, #0x16
+ bl MOD12_022314CC
+ ldr r0, [r5]
+ bl MOD12_0223150C
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222F9C0
+_0222F9BC:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222F9C0:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD12_0222F9C4
+MOD12_0222F9C4: ; 0x0222F9C4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrh r0, [r5]
+ cmp r0, #0
+ bne _0222FA10
+ ldr r0, [r4]
+ bl FUN_020832EC
+ cmp r0, #1
+ bne _0222F9DE
+ mov r1, #2
+ b _0222F9E0
+_0222F9DE:
+ mov r1, #1
+_0222F9E0:
+ add r0, r4, #0
+ add r0, #0xe9
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xea
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0xeb
+ strb r1, [r0]
+ ldr r0, _0222FA34 ; =0x000004FC
+ add r1, r4, #0
+ add r0, r4, r0
+ add r4, #0xe2
+ mov r2, #0xd
+ add r3, r4, #0
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222FA2E
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _0222FA2E
+_0222FA10:
+ ldr r0, _0222FA34 ; =0x000004FC
+ ldr r3, [r4]
+ add r0, r4, r0
+ ldr r4, _0222FA38 ; =0x00000127
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222FA2E
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222FA2E:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0222FA34: .word 0x000004FC
+_0222FA38: .word 0x00000127
+
+ thumb_func_start MOD12_0222FA3C
+MOD12_0222FA3C: ; 0x0222FA3C
+ push {r4, lr}
+ add r4, r1, #0
+ add r3, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ bne _0222FA74
+ add r0, r3, #0
+ add r0, #0xd8
+ ldrb r0, [r0]
+ mov r2, #0
+ add r0, r3, r0
+ add r0, #0xd4
+ ldrb r1, [r0]
+ add r0, r3, #0
+ add r0, #0xe2
+ strb r1, [r0]
+ ldr r0, _0222FA98 ; =0x000004FC
+ add r1, r3, #0
+ add r0, r3, r0
+ add r3, #0xe2
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222FA92
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222FA92
+_0222FA74:
+ ldr r0, _0222FA98 ; =0x000004FC
+ ldr r4, [r3]
+ add r0, r3, r0
+ ldr r3, _0222FA9C ; =0x00000127
+ sub r2, r3, #4
+ ldrb r1, [r4, r3]
+ sub r3, #0xb
+ ldrb r2, [r4, r2]
+ ldrb r3, [r4, r3]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222FA92
+ mov r0, #1
+ pop {r4, pc}
+_0222FA92:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0222FA98: .word 0x000004FC
+_0222FA9C: .word 0x00000127
+
+ thumb_func_start MOD12_0222FAA0
+MOD12_0222FAA0: ; 0x0222FAA0
+ push {r4, lr}
+ add r4, r1, #0
+ add r3, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ bne _0222FAE6
+ add r1, r3, #0
+ mov r0, #0
+ add r1, #0xec
+ strb r0, [r1]
+ add r2, r0, #0
+ add r1, r3, #0
+ sub r2, #0x10
+ add r1, #0xed
+ strb r2, [r1]
+ add r1, r3, #0
+ mov r2, #0x10
+ add r1, #0xee
+ strb r2, [r1]
+ add r1, r3, #0
+ add r1, #0xf0
+ strh r0, [r1]
+ ldr r0, _0222FB08 ; =0x000004FC
+ add r1, r3, #0
+ add r0, r3, r0
+ mov r2, #0xe
+ add r3, #0xe2
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222FB04
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222FB04
+_0222FAE6:
+ ldr r0, _0222FB08 ; =0x000004FC
+ ldr r4, [r3]
+ add r0, r3, r0
+ ldr r3, _0222FB0C ; =0x00000127
+ sub r2, r3, #4
+ ldrb r1, [r4, r3]
+ sub r3, #0xb
+ ldrb r2, [r4, r2]
+ ldrb r3, [r4, r3]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222FB04
+ mov r0, #1
+ pop {r4, pc}
+_0222FB04:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_0222FB08: .word 0x000004FC
+_0222FB0C: .word 0x00000127
+
+ thumb_func_start MOD12_0222FB10
+MOD12_0222FB10: ; 0x0222FB10
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ ldr r0, _0222FB58 ; =0x000004FC
+ bne _0222FB36
+ add r0, r2, r0
+ add r1, r2, #0
+ mov r2, #0xf
+ mov r3, #0
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222FB52
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222FB52
+_0222FB36:
+ ldr r3, [r2]
+ ldr r4, _0222FB5C ; =0x00000127
+ add r0, r2, r0
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222FB52
+ mov r0, #1
+ pop {r4, pc}
+_0222FB52:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0222FB58: .word 0x000004FC
+_0222FB5C: .word 0x00000127
+
+ thumb_func_start MOD12_0222FB60
+MOD12_0222FB60: ; 0x0222FB60
+ push {r4, lr}
+ add r4, r1, #0
+ add r3, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ ldr r0, _0222FBA8 ; =0x000004FC
+ bne _0222FB86
+ add r0, r3, r0
+ add r1, r3, #0
+ mov r2, #2
+ add r3, #0xe2
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222FBA2
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222FBA2
+_0222FB86:
+ ldr r4, [r3]
+ add r0, r3, r0
+ ldr r3, _0222FBAC ; =0x00000127
+ sub r2, r3, #4
+ ldrb r1, [r4, r3]
+ sub r3, #0xb
+ ldrb r2, [r4, r2]
+ ldrb r3, [r4, r3]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222FBA2
+ mov r0, #1
+ pop {r4, pc}
+_0222FBA2:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0222FBA8: .word 0x000004FC
+_0222FBAC: .word 0x00000127
+
+ thumb_func_start MOD12_0222FBB0
+MOD12_0222FBB0: ; 0x0222FBB0
+ push {r4, lr}
+ add r4, r1, #0
+ add r3, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _0222FBC2
+ cmp r0, #1
+ beq _0222FC1C
+ b _0222FC36
+_0222FBC2:
+ add r0, r3, #0
+ add r0, #0xd8
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0222FBD6
+ cmp r0, #1
+ beq _0222FBE0
+ cmp r0, #2
+ beq _0222FBEA
+ b _0222FBF4
+_0222FBD6:
+ add r0, r3, #0
+ mov r1, #3
+ add r0, #0xe9
+ strb r1, [r0]
+ b _0222FBFC
+_0222FBE0:
+ add r0, r3, #0
+ mov r1, #4
+ add r0, #0xe9
+ strb r1, [r0]
+ b _0222FBFC
+_0222FBEA:
+ add r0, r3, #0
+ mov r1, #5
+ add r0, #0xe9
+ strb r1, [r0]
+ b _0222FBFC
+_0222FBF4:
+ add r0, r3, #0
+ mov r1, #6
+ add r0, #0xe9
+ strb r1, [r0]
+_0222FBFC:
+ add r0, r3, #0
+ mov r1, #0
+ add r0, #0xea
+ strb r1, [r0]
+ add r0, r3, #0
+ add r0, #0xeb
+ strb r1, [r0]
+ add r0, r3, #0
+ add r0, #0xe2
+ ldrb r1, [r0]
+ add r0, r3, #0
+ add r0, #0xe5
+ strb r1, [r0]
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+_0222FC1C:
+ ldr r0, _0222FC58 ; =0x000004FC
+ add r1, r3, #0
+ add r0, r3, r0
+ mov r2, #0xd
+ add r3, #0xe2
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222FC54
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222FC54
+_0222FC36:
+ ldr r0, _0222FC58 ; =0x000004FC
+ ldr r4, [r3]
+ add r0, r3, r0
+ ldr r3, _0222FC5C ; =0x00000127
+ sub r2, r3, #4
+ ldrb r1, [r4, r3]
+ sub r3, #0xb
+ ldrb r2, [r4, r2]
+ ldrb r3, [r4, r3]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222FC54
+ mov r0, #1
+ pop {r4, pc}
+_0222FC54:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_0222FC58: .word 0x000004FC
+_0222FC5C: .word 0x00000127
+
+ thumb_func_start MOD12_0222FC60
+MOD12_0222FC60: ; 0x0222FC60
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _0222FC76
+ cmp r0, #1
+ beq _0222FCA0
+ cmp r0, #2
+ beq _0222FCBC
+ b _0222FCDE
+_0222FC76:
+ add r1, r5, #0
+ add r1, #0xe2
+ ldrb r1, [r1]
+ ldr r0, [r5]
+ bl FUN_02083308
+ add r1, r5, #0
+ add r1, #0xe3
+ strb r0, [r1]
+ add r1, r5, #0
+ add r1, #0xe2
+ ldrb r1, [r1]
+ ldr r0, [r5]
+ bl FUN_0208336C
+ add r1, r5, #0
+ add r1, #0xe4
+ strb r0, [r1]
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+_0222FCA0:
+ ldr r0, _0222FCE8 ; =0x000004FC
+ add r1, r5, #0
+ add r0, r5, r0
+ add r5, #0xe2
+ mov r2, #6
+ add r3, r5, #0
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222FCE2
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222FCE2
+_0222FCBC:
+ ldr r0, _0222FCE8 ; =0x000004FC
+ ldr r3, [r5]
+ add r0, r5, r0
+ ldr r5, _0222FCEC ; =0x00000127
+ sub r2, r5, #4
+ ldrb r1, [r3, r5]
+ sub r5, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r5]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222FCE2
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222FCE2
+_0222FCDE:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222FCE2:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0222FCE8: .word 0x000004FC
+_0222FCEC: .word 0x00000127
+
+ thumb_func_start MOD12_0222FCF0
+MOD12_0222FCF0: ; 0x0222FCF0
+ ldrh r2, [r1]
+ cmp r2, #0
+ bne _0222FD0A
+ add r2, r0, #0
+ add r2, #0xd8
+ ldrb r2, [r2]
+ add r0, #0xd8
+ add r2, r2, #1
+ strb r2, [r0]
+ ldrh r0, [r1]
+ add r0, r0, #1
+ strh r0, [r1]
+ b _0222FD1C
+_0222FD0A:
+ add r0, #0xd8
+ ldrb r0, [r0]
+ cmp r0, #4
+ blo _0222FD16
+ mov r0, #1
+ bx lr
+_0222FD16:
+ mov r0, #2
+ strh r0, [r1, #2]
+ bx lr
+_0222FD1C:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD12_0222FD20
+MOD12_0222FD20: ; 0x0222FD20
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r3, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #3
+ bhi _0222FDC8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222FD38: ; jump table
+ .short _0222FD40 - _0222FD38 - 2 ; case 0
+ .short _0222FD62 - _0222FD38 - 2 ; case 1
+ .short _0222FD84 - _0222FD38 - 2 ; case 2
+ .short _0222FDAE - _0222FD38 - 2 ; case 3
+_0222FD40:
+ add r0, r3, #0
+ ldr r1, _0222FDEC ; =0x000006E5
+ add r0, #0xf2
+ strh r1, [r0]
+ ldr r0, _0222FDF0 ; =0x000004FC
+ add r1, r3, #0
+ add r0, r3, r0
+ mov r2, #0x10
+ add r3, #0xe2
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222FDE6
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222FDE6
+_0222FD62:
+ ldr r0, _0222FDF0 ; =0x000004FC
+ ldr r5, [r3]
+ add r0, r3, r0
+ ldr r3, _0222FDF4 ; =0x00000127
+ sub r2, r3, #4
+ ldrb r1, [r5, r3]
+ sub r3, #0xb
+ ldrb r2, [r5, r2]
+ ldrb r3, [r5, r3]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222FDE6
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222FDE6
+_0222FD84:
+ ldr r1, [r3]
+ ldr r0, _0222FDF8 ; =0x00000121
+ ldrb r0, [r1, r0]
+ cmp r0, #2
+ bne _0222FD92
+ mov r1, #7
+ b _0222FD94
+_0222FD92:
+ mov r1, #0
+_0222FD94:
+ add r0, r3, #0
+ add r0, #0xe9
+ strb r1, [r0]
+ add r0, r3, #0
+ mov r1, #0
+ add r0, #0xea
+ strb r1, [r0]
+ add r0, r3, #0
+ add r0, #0xeb
+ strb r1, [r0]
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+_0222FDAE:
+ ldr r0, _0222FDF0 ; =0x000004FC
+ add r1, r3, #0
+ add r0, r3, r0
+ mov r2, #0xd
+ add r3, #0xe2
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222FDE6
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222FDE6
+_0222FDC8:
+ ldr r0, _0222FDF0 ; =0x000004FC
+ ldr r4, [r3]
+ add r0, r3, r0
+ ldr r3, _0222FDF4 ; =0x00000127
+ sub r2, r3, #4
+ ldrb r1, [r4, r3]
+ sub r3, #0xb
+ ldrb r2, [r4, r2]
+ ldrb r3, [r4, r3]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222FDE6
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222FDE6:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0222FDEC: .word 0x000006E5
+_0222FDF0: .word 0x000004FC
+_0222FDF4: .word 0x00000127
+_0222FDF8: .word 0x00000121
+
+ thumb_func_start MOD12_0222FDFC
+MOD12_0222FDFC: ; 0x0222FDFC
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ ldr r0, _0222FE44 ; =0x000004FC
+ bne _0222FE22
+ add r0, r2, r0
+ add r1, r2, #0
+ mov r2, #1
+ mov r3, #0
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _0222FE3E
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0222FE3E
+_0222FE22:
+ ldr r3, [r2]
+ ldr r4, _0222FE48 ; =0x00000127
+ add r0, r2, r0
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _0222FE3E
+ mov r0, #3
+ pop {r4, pc}
+_0222FE3E:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0222FE44: .word 0x000004FC
+_0222FE48: .word 0x00000127
+
+ thumb_func_start MOD12_0222FE4C
+MOD12_0222FE4C: ; 0x0222FE4C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r1, #1
+ lsl r1, r1, #0x1a
+ ldr r0, [r1]
+ ldr r2, _022300E0 ; =0xFFFFE0FF
+ and r0, r2
+ str r0, [r1]
+ ldr r0, _022300E4 ; =0x04001000
+ ldr r3, [r0]
+ and r2, r3
+ str r2, [r0]
+ ldr r3, [r1]
+ ldr r2, _022300E8 ; =0xFFFF1FFF
+ and r3, r2
+ str r3, [r1]
+ ldr r3, [r0]
+ add r1, #0x50
+ and r2, r3
+ str r2, [r0]
+ mov r2, #0
+ strh r2, [r1]
+ add r0, #0x50
+ strh r2, [r0]
+ mov r2, #0xa
+ mov r0, #3
+ mov r1, #0x17
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ ldr r1, _022300EC ; =0x00001BF4
+ add r0, r4, #0
+ mov r2, #0x17
+ bl FUN_02006268
+ ldr r2, _022300EC ; =0x00001BF4
+ mov r1, #0
+ add r5, r0, #0
+ bl MI_CpuFill8
+ mov r0, #0x17
+ bl MOD12_022312D8
+ str r0, [r5, #0x10]
+ add r0, r4, #0
+ bl FUN_0200628C
+ mov r1, #0x5b
+ str r0, [r5]
+ lsl r1, r1, #2
+ str r5, [r0, r1]
+ ldr r2, [r5]
+ mov r3, #1
+ add r0, r1, #4
+ strb r3, [r2, r0]
+ ldr r0, [r5]
+ str r0, [r5, #0x14]
+ add r0, r5, #0
+ bl MOD12_022306F8
+ mov r0, #0x17
+ bl FUN_02002FD0
+ add r1, r5, #0
+ add r1, #0xa4
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_020038F0
+ add r0, r5, #0
+ add r0, #0xa4
+ mov r2, #2
+ ldr r0, [r0]
+ mov r1, #0
+ lsl r2, r2, #8
+ mov r3, #0x17
+ bl FUN_02003008
+ add r0, r5, #0
+ add r0, #0xa4
+ mov r1, #1
+ ldr r0, [r0]
+ lsl r2, r1, #9
+ mov r3, #0x17
+ bl FUN_02003008
+ add r0, r5, #0
+ add r0, #0xa4
+ mov r2, #7
+ ldr r0, [r0]
+ mov r1, #2
+ lsl r2, r2, #6
+ mov r3, #0x17
+ bl FUN_02003008
+ add r0, r5, #0
+ add r0, #0xa4
+ mov r2, #2
+ ldr r0, [r0]
+ mov r1, #3
+ lsl r2, r2, #8
+ mov r3, #0x17
+ bl FUN_02003008
+ mov r1, #2
+ mov r0, #0x17
+ lsl r1, r1, #8
+ bl FUN_02016998
+ ldr r1, _022300F0 ; =0x0000110C
+ str r0, [r5, r1]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD12_0223EC7C
+ mov r0, #0x17
+ bl FUN_02016B94
+ str r0, [r5, #0x74]
+ mov r0, #0x40
+ mov r1, #0x17
+ bl FUN_0201C24C
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ add r1, r5, #0
+ ldr r0, [r5]
+ add r1, #0x14
+ bl MOD12_0223B49C
+ ldr r1, _022300F4 ; =0x00001130
+ str r0, [r5, r1]
+ ldr r0, [r5, #0x74]
+ bl MOD12_02230574
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ mov r0, #2
+ mov r1, #0x17
+ bl FUN_02002C50
+ mov r0, #0x17
+ bl FUN_0200BB14
+ ldr r1, _022300F8 ; =0x02244C18
+ ldr r2, _022300FC ; =0x02244BD4
+ mov r3, #0x20
+ str r0, [r5, #0x6c]
+ bl FUN_0200BB6C
+ ldr r1, _02230100 ; =0x00100010
+ mov r0, #1
+ bl FUN_02008D44
+ mov r0, #1
+ bl FUN_02008DDC
+ ldr r0, [r5, #0x6c]
+ bl FUN_0200BB34
+ str r0, [r5, #0x70]
+ ldr r0, [r5, #0x6c]
+ ldr r1, [r5, #0x70]
+ mov r2, #0x80
+ bl FUN_0200BBF0
+ ldr r0, [r5, #0x6c]
+ ldr r1, [r5, #0x70]
+ ldr r2, _02230104 ; =0x02244C00
+ bl FUN_0200BF60
+ ldr r0, [r5, #0x6c]
+ bl FUN_0200BB68
+ mov r2, #1
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ mov r0, #0x17
+ bl FUN_02006D98
+ str r0, [r5, #0x58]
+ bl MOD12_022306F0
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xc1
+ mov r3, #0x17
+ bl FUN_0200A86C
+ add r1, r5, #0
+ add r1, #0x98
+ str r0, [r1]
+ mov r0, #0x17
+ bl FUN_0200AA80
+ add r1, r5, #0
+ add r1, #0x9c
+ str r0, [r1]
+ mov r0, #5
+ lsl r0, r0, #6
+ mov r1, #0x17
+ bl FUN_020219F4
+ add r1, r5, #0
+ add r1, #0xa0
+ str r0, [r1]
+ mov r0, #9
+ mov r1, #0x17
+ bl FUN_02011744
+ add r1, r5, #0
+ add r1, #0xa8
+ str r0, [r1]
+ add r0, r5, #0
+ bl MOD12_022308F0
+ add r0, r5, #0
+ bl MOD12_022309D0
+ add r0, r5, #0
+ bl MOD12_022306A4
+ add r0, r5, #0
+ bl MOD12_02230750
+ add r0, r5, #0
+ bl MOD12_02230880
+ ldr r0, _022300F4 ; =0x00001130
+ mov r1, #0
+ ldr r0, [r5, r0]
+ mov r2, #1
+ add r3, r1, #0
+ bl MOD12_0223B758
+ add r0, r5, #0
+ bl MOD12_0223C248
+ add r0, r5, #0
+ add r0, #0x14
+ bl MOD12_0223D0CC
+ add r0, r5, #0
+ bl MOD12_022309D8
+ add r0, r5, #0
+ bl MOD12_0223CAF8
+ add r0, r5, #0
+ bl MOD12_0223D55C
+ bl FUN_02033E74
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r1, #0x17
+ str r1, [sp, #8]
+ mov r1, #0x11
+ mov r2, #0x25
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldr r0, _02230108 ; =MOD12_02230520
+ ldr r2, _0223010C ; =0x00013880
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ ldr r0, _02230110 ; =0x00001154
+ mov r1, #1
+ strb r1, [r5, r0]
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r1, _02230114 ; =0x0000046F
+ mov r0, #6
+ mov r2, #1
+ bl FUN_0200433C
+ ldr r1, [r5]
+ ldr r0, _02230118 ; =0x00000171
+ ldrb r0, [r1, r0]
+ bl FUN_020833D4
+ mov r1, #0x39
+ add r2, r1, #0
+ ldr r0, _0223011C ; =0x04000050
+ sub r2, #0x3f
+ bl G2x_SetBlendBrightness_
+ ldr r0, _02230120 ; =0x000006E5
+ bl FUN_020054C8
+ ldr r0, _02230124 ; =MOD12_022303C0
+ add r1, r5, #0
+ bl FUN_02015F10
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_022300E0: .word 0xFFFFE0FF
+_022300E4: .word 0x04001000
+_022300E8: .word 0xFFFF1FFF
+_022300EC: .word 0x00001BF4
+_022300F0: .word 0x0000110C
+_022300F4: .word 0x00001130
+_022300F8: .word 0x02244C18
+_022300FC: .word 0x02244BD4
+_02230100: .word 0x00100010
+_02230104: .word 0x02244C00
+_02230108: .word MOD12_02230520
+_0223010C: .word 0x00013880
+_02230110: .word 0x00001154
+_02230114: .word 0x0000046F
+_02230118: .word 0x00000171
+_0223011C: .word 0x04000050
+_02230120: .word 0x000006E5
+_02230124: .word MOD12_022303C0
+
+ thumb_func_start MOD12_02230128
+MOD12_02230128: ; 0x02230128
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02082878
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _0223014A
+ cmp r0, #1
+ beq _02230158
+ cmp r0, #2
+ beq _0223020E
+ b _0223021C
+_0223014A:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _0223021C
+ mov r0, #1
+ str r0, [r5]
+ b _0223021C
+_02230158:
+ ldr r0, [r4]
+ bl FUN_020828BC
+ cmp r0, #1
+ bne _022301CA
+ ldr r2, _02230224 ; =0x00001152
+ ldr r1, _02230228 ; =0x00001BE8
+ ldrh r2, [r4, r2]
+ add r0, r4, #0
+ add r1, r4, r1
+ lsl r3, r2, #2
+ ldr r2, _0223022C ; =0x02244C60
+ ldr r2, [r2, r3]
+ blx r2
+ sub r1, r0, #1
+ cmp r1, #1
+ bhi _0223019C
+ cmp r0, #1
+ bne _02230186
+ ldr r0, _02230224 ; =0x00001152
+ ldrh r1, [r4, r0]
+ add r1, r1, #1
+ b _0223018C
+_02230186:
+ ldr r0, _02230230 ; =0x00001BEA
+ ldrh r1, [r4, r0]
+ ldr r0, _02230224 ; =0x00001152
+_0223018C:
+ strh r1, [r4, r0]
+ ldr r0, _02230228 ; =0x00001BE8
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #8
+ bl MI_CpuFill8
+ b _022301CA
+_0223019C:
+ cmp r0, #3
+ bne _022301CA
+ mov r0, #2
+ str r0, [r5]
+ ldr r0, _02230228 ; =0x00001BE8
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #8
+ bl MI_CpuFill8
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x17
+ mov r1, #0x1e
+ str r0, [sp, #8]
+ mov r0, #2
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ b _0223021C
+_022301CA:
+ ldr r0, _02230234 ; =0x00001158
+ add r0, r4, r0
+ bl MOD12_022410A0
+ ldr r0, _02230234 ; =0x00001158
+ add r1, r4, #0
+ add r0, r4, r0
+ bl MOD12_02241114
+ ldr r0, _02230238 ; =0x00001BF0
+ ldrb r1, [r4, r0]
+ cmp r1, #1
+ bne _0223021C
+ mov r1, #2
+ sub r0, #8
+ str r1, [r5]
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #8
+ bl MI_CpuFill8
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x17
+ mov r1, #0x1e
+ str r0, [sp, #8]
+ mov r0, #2
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ b _0223021C
+_0223020E:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _0223021C
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_0223021C:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_02230224: .word 0x00001152
+_02230228: .word 0x00001BE8
+_0223022C: .word 0x02244C60
+_02230230: .word 0x00001BEA
+_02230234: .word 0x00001158
+_02230238: .word 0x00001BF0
+
+ thumb_func_start MOD12_0223023C
+MOD12_0223023C: ; 0x0223023C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_020133C8
+ cmp r0, #0
+ beq _02230254
+ bl ErrorHandling
+_02230254:
+ add r0, r4, #0
+ bl MOD12_02230A40
+ bl FUN_02012EAC
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD12_0223CA1C
+ add r0, r4, #0
+ bl MOD12_0223CB18
+ add r0, r4, #0
+ bl MOD12_0223D578
+ add r0, r4, #0
+ bl MOD12_0223DCC0
+ add r0, r4, #0
+ bl MOD12_02230808
+ add r0, r4, #0
+ bl MOD12_022308EC
+ add r0, r4, #0
+ bl MOD12_022309CC
+ add r0, r4, #0
+ bl MOD12_022309D4
+ add r5, r4, #0
+ mov r6, #0
+ add r5, #0x78
+_02230296:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r6, r6, #1
+ add r5, #0x10
+ cmp r6, #2
+ blt _02230296
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0x74]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0x74]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0x74]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0x74]
+ bl MOD12_0223B474
+ ldr r0, _022303B0 ; =0x00001130
+ ldr r0, [r4, r0]
+ bl MOD12_0223B4C0
+ ldr r0, [r4, #0x6c]
+ ldr r1, [r4, #0x70]
+ bl FUN_0200C398
+ ldr r0, [r4, #0x6c]
+ bl FUN_0200BD04
+ bl FUN_0201C29C
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD12_0223C300
+ ldr r0, [r4, #0x58]
+ bl FUN_020072E8
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ bl FUN_020117BC
+ mov r0, #2
+ bl FUN_02002CF8
+ ldr r0, _022303B4 ; =0x0000110C
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_02003038
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_02003038
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ mov r1, #2
+ bl FUN_02003038
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_02003038
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ bl FUN_02002FEC
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ bl FUN_0200AB18
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x74]
+ bl FUN_02016A18
+ ldr r0, [r4, #4]
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x10]
+ bl MOD12_02231378
+ bl FUN_0201CD04
+ add r0, r7, #0
+ bl FUN_0200627C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ mov r0, #0x17
+ bl FUN_020168D0
+ bl FUN_02083404
+ bl FUN_02033ED0
+ ldr r0, _022303B8 ; =SDK_MODULE_08_ID
+ bl UnloadOverlayByID
+ ldr r0, _022303BC ; =SDK_MODULE_17_ID
+ bl UnloadOverlayByID
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022303B0: .word 0x00001130
+_022303B4: .word 0x0000110C
+_022303B8: .word SDK_MODULE_08_ID
+_022303BC: .word SDK_MODULE_17_ID
+
+ thumb_func_start MOD12_022303C0
+MOD12_022303C0: ; 0x022303C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ ldr r0, _02230494 ; =0x00001134
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _02230450
+ add r1, r0, #4
+ add r3, r4, r1
+ ldr r2, [r4, r1]
+ mov r5, #0
+ ldr r1, [r3, #4]
+ add r2, r2, #1
+ adc r1, r5
+ add r0, r0, #4
+ str r2, [r4, r0]
+ mov r0, #7
+ str r1, [r3, #4]
+ bl FUN_02004F64
+ ldr r1, _02230498 ; =0x00000AF8
+ ldr r1, [r4, r1]
+ mul r0, r1
+ ldr r1, _0223049C ; =0x00001388
+ add r0, r0, r1
+ lsl r1, r1, #1
+ bl _u32_div_f
+ ldr r7, _022304A0 ; =0x0000114C
+ add r5, r0, #1
+ add r1, r7, #0
+ str r0, [r4, r7]
+ sub r1, #0x14
+ ldr r2, [r4, r1]
+ add r1, r7, #0
+ sub r1, #0x10
+ add r0, r5, #0
+ ldr r6, [r4, r1]
+ mov r3, #0
+ add r1, r3, #0
+ eor r1, r6
+ eor r0, r2
+ orr r0, r1
+ beq _0223044C
+ sub r0, r7, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0x12
+ bhi _02230430
+ mov ip, r3
+ mov r0, ip
+ sub r1, r5, r2
+ sbc r0, r6
+ mov r6, #0
+ mov r2, #1
+ sub r1, r2, r1
+ sbc r6, r0
+ bhs _02230440
+_02230430:
+ ldr r1, _022304A4 ; =0x00001138
+ str r5, [r4, r1]
+ add r0, r1, #4
+ str r3, [r4, r0]
+ mov r0, #0
+ add r1, #0x10
+ str r0, [r4, r1]
+ b _02230450
+_02230440:
+ sub r0, r7, #4
+ ldr r0, [r4, r0]
+ add r1, r0, #1
+ sub r0, r7, #4
+ str r1, [r4, r0]
+ b _02230450
+_0223044C:
+ sub r0, r7, #4
+ str r3, [r4, r0]
+_02230450:
+ ldr r0, [r4, #0x58]
+ bl FUN_020081C4
+ mov r6, #0
+ add r5, r4, #0
+_0223045A:
+ ldr r0, [r5, #0x18]
+ cmp r0, #0
+ beq _02230464
+ bl FUN_021DD58C
+_02230464:
+ add r6, r6, #1
+ add r5, #0x10
+ cmp r6, #4
+ blt _0223045A
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ bl FUN_0200372C
+ ldr r0, [r4, #0x74]
+ bl FUN_0201AB60
+ ldr r3, _022304A8 ; =0x027E0000
+ ldr r1, _022304AC ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02230494: .word 0x00001134
+_02230498: .word 0x00000AF8
+_0223049C: .word 0x00001388
+_022304A0: .word 0x0000114C
+_022304A4: .word 0x00001138
+_022304A8: .word 0x027E0000
+_022304AC: .word 0x00003FF8
+
+ thumb_func_start MOD12_022304B0
+MOD12_022304B0: ; 0x022304B0
+ push {r3, r4, r5, lr}
+ ldr r1, _0223051C ; =0x0000110C
+ add r5, r0, r1
+ ldrb r1, [r5, #0x11]
+ cmp r1, #0
+ beq _02230518
+ add r0, #0xa4
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_02003204
+ add r4, r0, #0
+ mov r2, #2
+ ldr r0, [r5]
+ add r1, r4, #0
+ lsl r2, r2, #8
+ bl MIi_CpuCopy16
+ ldrb r0, [r5, #0x10]
+ cmp r0, #1
+ bne _02230518
+ ldrh r0, [r5, #0xe]
+ add r1, r4, #0
+ str r0, [sp]
+ ldrh r3, [r5, #8]
+ ldrh r2, [r5, #6]
+ ldr r0, [r5]
+ asr r3, r3, #8
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02003A30
+ ldrh r3, [r5, #0xa]
+ ldrh r1, [r5, #8]
+ cmp r1, r3
+ bne _022304FE
+ mov r0, #0
+ strb r0, [r5, #0x10]
+ pop {r3, r4, r5, pc}
+_022304FE:
+ mov r0, #0xc
+ ldrsh r2, [r5, r0]
+ add r0, r1, r2
+ cmp r2, #0
+ ble _0223050C
+ cmp r0, r3
+ bge _02230514
+_0223050C:
+ cmp r2, #0
+ bge _02230516
+ cmp r0, r3
+ bgt _02230516
+_02230514:
+ add r0, r3, #0
+_02230516:
+ strh r0, [r5, #8]
+_02230518:
+ pop {r3, r4, r5, pc}
+ nop
+_0223051C: .word 0x0000110C
+
+ thumb_func_start MOD12_02230520
+MOD12_02230520: ; 0x02230520
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD12_022304B0
+ ldr r0, _0223056C ; =0x00001154
+ ldrb r0, [r6, r0]
+ cmp r0, #1
+ bne _02230562
+ ldr r0, [r6, #0x58]
+ bl FUN_02006ED4
+ mov r4, #0
+ add r5, r6, #0
+_0223053C:
+ ldr r0, [r5, #0x18]
+ cmp r0, #0
+ beq _02230546
+ bl FUN_021DD518
+_02230546:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #4
+ blt _0223053C
+ bl FUN_02215A44
+ ldr r0, [r6, #0x70]
+ bl FUN_0200BC1C
+ bl FUN_0200BC38
+ ldr r0, _02230570 ; =0x04000540
+ mov r1, #1
+ str r1, [r0]
+_02230562:
+ ldr r1, [r6, #0x74]
+ mov r0, #0x17
+ bl FUN_020335F0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0223056C: .word 0x00001154
+_02230570: .word 0x04000540
+
+ thumb_func_start MOD12_02230574
+MOD12_02230574: ; 0x02230574
+ push {r4, r5, lr}
+ sub sp, #0x8c
+ add r4, r0, #0
+ bl FUN_0201E6D8
+ ldr r5, _02230694 ; =0x02244C38
+ add r3, sp, #0x10
+ mov r2, #5
+_02230584:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02230584
+ 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, _02230698 ; =0x02244BC4
+ 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, _0223069C ; =0x02244C94
+ add r3, sp, #0x38
+ mov r2, #0xa
+_022305E4:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022305E4
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ add r2, sp, #0x38
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #2
+ add r2, sp, #0x54
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #2
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #3
+ add r2, sp, #0x70
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020179E0
+ mov r1, #3
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ ldr r1, _022306A0 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #2
+ orr r0, r2
+ strh r0, [r1]
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ bl MOD12_0223B41C
+ add sp, #0x8c
+ pop {r4, r5, pc}
+ .align 2, 0
+_02230694: .word 0x02244C38
+_02230698: .word 0x02244BC4
+_0223069C: .word 0x02244C94
+_022306A0: .word 0x04000008
+
+ thumb_func_start MOD12_022306A4
+MOD12_022306A4: ; 0x022306A4
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ add r1, r4, #0
+ ldr r0, [r4, #0x74]
+ add r1, #0x78
+ mov r2, #1
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #0xb
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r3, #2
+ str r3, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x74]
+ add r4, #0x88
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_02019064
+ add sp, #0x14
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD12_022306F0
+MOD12_022306F0: ; 0x022306F0
+ ldr r3, _022306F4 ; =0x02012CC9
+ bx r3
+ .align 2, 0
+_022306F4: .word 0x02012CC9
+
+ thumb_func_start MOD12_022306F8
+MOD12_022306F8: ; 0x022306F8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ cmp r0, #0
+ bne _02230706
+ bl ErrorHandling
+_02230706:
+ mov r4, #0xad
+ lsl r4, r4, #4
+ mov r1, #0
+ mov r2, #3
+ add r6, r4, #5
+_02230710:
+ sub r3, r2, r1
+ lsl r3, r3, #0x18
+ add r0, r5, r1
+ lsr r3, r3, #0x18
+ strb r3, [r0, r4]
+ add r1, r1, #1
+ strb r3, [r0, r6]
+ cmp r1, #4
+ blt _02230710
+ add r0, r5, #0
+ bl MOD12_0223EE80
+ mov r4, #0
+ ldr r7, _0223074C ; =0x00000AB4
+ add r6, r4, #0
+_0223072E:
+ ldr r0, [r5]
+ mov r1, #5
+ ldr r0, [r0, r6]
+ mov r2, #0
+ bl FUN_020671BC
+ bl MOD12_0223EE70
+ add r1, r5, r4
+ add r4, r4, #1
+ add r6, r6, #4
+ strb r0, [r1, r7]
+ cmp r4, #4
+ blt _0223072E
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223074C: .word 0x00000AB4
+
+ thumb_func_start MOD12_02230750
+MOD12_02230750: ; 0x02230750
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ mov r0, #0x2e
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, _02230804 ; =0x000080E9
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ ldr r2, [r4, #0x6c]
+ ldr r3, [r4, #0x70]
+ bl FUN_0200C0DC
+ ldr r0, [r4, #0x6c]
+ ldr r1, [r4, #0x70]
+ bl MOD12_0223C320
+ ldr r0, [r4, #0x6c]
+ ldr r1, [r4, #0x70]
+ bl MOD12_0223C450
+ ldr r0, [r4, #0x6c]
+ ldr r1, [r4, #0x70]
+ bl MOD12_0223C668
+ add r0, r4, #0
+ ldr r1, [r4, #0x6c]
+ ldr r2, [r4, #0x70]
+ add r0, #0x14
+ bl MOD12_0223C6DC
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD12_0223C734
+ ldr r0, [r4, #0x6c]
+ ldr r1, [r4, #0x70]
+ bl MOD12_0223CA44
+ add r0, r4, #0
+ ldr r1, [r4, #0x6c]
+ ldr r2, [r4, #0x70]
+ add r0, #0x14
+ bl MOD12_0223CAB8
+ ldr r0, [r4, #0x6c]
+ ldr r1, [r4, #0x70]
+ bl MOD12_0223E2B8
+ ldr r1, [r4, #0x6c]
+ ldr r2, [r4, #0x70]
+ add r0, r4, #0
+ bl MOD12_0223E32C
+ ldr r0, [r4, #0x6c]
+ ldr r1, [r4, #0x70]
+ bl MOD12_0223CB54
+ add r0, r4, #0
+ ldr r1, [r4, #0x6c]
+ ldr r2, [r4, #0x70]
+ add r0, #0x14
+ bl MOD12_0223CBC8
+ ldr r0, [r4, #0x6c]
+ ldr r1, [r4, #0x70]
+ bl MOD12_0223CD40
+ add r0, r4, #0
+ ldr r1, [r4, #0x6c]
+ ldr r2, [r4, #0x70]
+ add r0, #0x14
+ bl MOD12_0223CDB4
+ ldr r0, [r4, #0x6c]
+ ldr r1, [r4, #0x70]
+ bl MOD12_0223CDBC
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+_02230804: .word 0x000080E9
+
+ thumb_func_start MOD12_02230808
+MOD12_02230808: ; 0x02230808
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x70]
+ bl MOD12_0223C324
+ ldr r0, [r4, #0x70]
+ bl MOD12_0223C4E8
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD12_0223C640
+ ldr r0, [r4, #0x70]
+ bl MOD12_0223C6B8
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD12_0223C710
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD12_0223C878
+ ldr r0, [r4, #0x70]
+ bl MOD12_0223CA94
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD12_0223CADC
+ add r0, r4, #0
+ bl MOD12_0223E38C
+ ldr r0, [r4, #0x70]
+ bl MOD12_0223E308
+ ldr r0, [r4, #0x70]
+ bl MOD12_0223CBA4
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD12_0223CC70
+ ldr r0, [r4, #0x70]
+ bl MOD12_0223CD90
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD12_0223CDB8
+ ldr r0, [r4, #0x70]
+ bl MOD12_0223CE0C
+ ldr r0, [r4, #0x70]
+ ldr r1, _0223087C ; =0x000080E9
+ bl FUN_0200C368
+ pop {r4, pc}
+ .align 2, 0
+_0223087C: .word 0x000080E9
+
+ thumb_func_start MOD12_02230880
+MOD12_02230880: ; 0x02230880
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ mov r0, #0x2e
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #2
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _022308E0 ; =0x000080EA
+ mov r1, #3
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ ldr r2, [r4, #0x6c]
+ ldr r3, [r4, #0x70]
+ bl FUN_0200C0DC
+ mov r0, #0x2e
+ str r0, [sp]
+ mov r0, #9
+ 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, _022308E4 ; =0x000080EB
+ mov r1, #3
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ ldr r2, [r4, #0x6c]
+ ldr r3, [r4, #0x70]
+ bl FUN_0200C0DC
+ ldr r0, _022308E8 ; =0x00001130
+ ldr r0, [r4, r0]
+ bl MOD12_0223B4E0
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+_022308E0: .word 0x000080EA
+_022308E4: .word 0x000080EB
+_022308E8: .word 0x00001130
+
+ thumb_func_start MOD12_022308EC
+MOD12_022308EC: ; 0x022308EC
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_022308F0
+MOD12_022308F0: ; 0x022308F0
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x17
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x74]
+ mov r0, #0x2d
+ mov r1, #0xd
+ 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, #0x17
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x74]
+ mov r0, #0x2d
+ mov r1, #0xe
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ mov r1, #0x2d
+ mov r2, #0x1f
+ mov r3, #0x17
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xd0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ mov r1, #0x2d
+ mov r2, #0x23
+ mov r3, #0x17
+ bl FUN_020030E8
+ ldr r1, [r5]
+ ldr r0, _022309C4 ; =0x00001988
+ ldr r0, [r1, r0]
+ bl FUN_02025084
+ add r4, r0, #0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x17
+ str r0, [sp, #4]
+ mov r1, #1
+ ldr r0, [r5, #0x74]
+ add r2, r1, #0
+ mov r3, #0xf
+ bl FUN_0200CD68
+ add r0, r4, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xe0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ mov r1, #0x26
+ mov r3, #0x17
+ bl FUN_020030E8
+ add r0, r5, #0
+ bl MOD12_0223E734
+ add r0, r5, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_020031FC
+ ldr r1, _022309C8 ; =0x0000110C
+ mov r2, #2
+ ldr r1, [r5, r1]
+ lsl r2, r2, #8
+ bl MIi_CpuCopy16
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022309C4: .word 0x00001988
+_022309C8: .word 0x0000110C
+
+ thumb_func_start MOD12_022309CC
+MOD12_022309CC: ; 0x022309CC
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_022309D0
+MOD12_022309D0: ; 0x022309D0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_022309D4
+MOD12_022309D4: ; 0x022309D4
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_022309D8
+MOD12_022309D8: ; 0x022309D8
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _022309E8
+ bl ErrorHandling
+_022309E8:
+ mov r1, #0x12
+ mov r0, #0x17
+ lsl r1, r1, #0xa
+ bl FUN_02016998
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x17
+ str r0, [sp, #4]
+ mov r3, #0x12
+ ldr r0, _02230A38 ; =MOD12_02230A60
+ ldr r1, _02230A3C ; =MOD12_02230A7C
+ lsl r3, r3, #0xa
+ bl FUN_02012CDC
+ str r0, [r4, #0xc]
+ bl FUN_0201343C
+ add r2, r0, #0
+ mov r0, #1
+ mov r1, #0xe1
+ lsl r0, r0, #0xc
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+ mov r0, #0x3d
+ mov r1, #3
+ mov r2, #0x17
+ bl FUN_0201318C
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r2, #0xa
+ mov r3, #1
+ bl FUN_02013194
+ add sp, #8
+ pop {r4, pc}
+ nop
+_02230A38: .word MOD12_02230A60
+_02230A3C: .word MOD12_02230A7C
+
+ thumb_func_start MOD12_02230A40
+MOD12_02230A40: ; 0x02230A40
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_020133E8
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_02012DE4
+ add r0, r5, #0
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02230A60
+MOD12_02230A60: ; 0x02230A60
+ push {r4, lr}
+ ldr r3, _02230A78 ; =0x021064B8
+ mov r2, #0
+ ldr r3, [r3]
+ blx r3
+ add r4, r0, #0
+ bl FUN_0201327C
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0xd
+ pop {r4, pc}
+ nop
+_02230A78: .word 0x021064B8
+
+ thumb_func_start MOD12_02230A7C
+MOD12_02230A7C: ; 0x02230A7C
+ push {r4, lr}
+ ldr r3, _02230A94 ; =0x021064C0
+ mov r2, #0
+ ldr r3, [r3]
+ blx r3
+ add r4, r0, #0
+ bl FUN_020132BC
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0xd
+ pop {r4, pc}
+ nop
+_02230A94: .word 0x021064C0
+
+ thumb_func_start MOD12_02230A98
+MOD12_02230A98: ; 0x02230A98
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ ldr r0, _02230AE4 ; =0x00001158
+ bne _02230AC2
+ mov r3, #0xad
+ lsl r3, r3, #4
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #0xa
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02230ADE
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02230ADE
+_02230AC2:
+ ldr r4, _02230AE8 ; =0x00000127
+ ldr r3, [r5]
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ add r0, r5, r0
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02230ADE
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02230ADE:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02230AE4: .word 0x00001158
+_02230AE8: .word 0x00000127
+
+ thumb_func_start MOD12_02230AEC
+MOD12_02230AEC: ; 0x02230AEC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _02230AFE
+ cmp r0, #1
+ beq _02230B52
+ b _02230B74
+_02230AFE:
+ ldr r0, _02230B7C ; =0x00000B37
+ mov r2, #0
+ strb r2, [r5, r0]
+ add r1, r0, #1
+ strb r2, [r5, r1]
+ ldr r2, [r5]
+ ldr r1, _02230B80 ; =0x00000123
+ sub r0, r0, #7
+ ldrb r2, [r2, r1]
+ strb r2, [r5, r0]
+ ldr r2, [r5]
+ sub r0, r1, #3
+ ldrb r0, [r2, r0]
+ bl MOD12_0223E464
+ ldr r1, _02230B84 ; =0x00000B34
+ strb r0, [r5, r1]
+ ldr r0, [r5]
+ bl FUN_020832EC
+ cmp r0, #1
+ bne _02230B2E
+ mov r1, #2
+ b _02230B30
+_02230B2E:
+ mov r1, #1
+_02230B30:
+ ldr r0, _02230B88 ; =0x00000B36
+ mov r3, #0xb
+ strb r1, [r5, r0]
+ ldr r0, _02230B8C ; =0x00001158
+ lsl r3, r3, #8
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #9
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02230B78
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02230B78
+_02230B52:
+ ldr r0, _02230B8C ; =0x00001158
+ ldr r3, [r5]
+ add r0, r5, r0
+ ldr r5, _02230B90 ; =0x00000127
+ sub r2, r5, #4
+ ldrb r1, [r3, r5]
+ sub r5, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r5]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02230B78
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02230B78
+_02230B74:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02230B78:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02230B7C: .word 0x00000B37
+_02230B80: .word 0x00000123
+_02230B84: .word 0x00000B34
+_02230B88: .word 0x00000B36
+_02230B8C: .word 0x00001158
+_02230B90: .word 0x00000127
+
+ thumb_func_start MOD12_02230B94
+MOD12_02230B94: ; 0x02230B94
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ ldr r0, _02230BDC ; =0x00001158
+ bne _02230BBA
+ add r0, r2, r0
+ add r1, r2, #0
+ mov r2, #3
+ mov r3, #0
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02230BD6
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02230BD6
+_02230BBA:
+ ldr r3, [r2]
+ ldr r4, _02230BE0 ; =0x00000127
+ add r0, r2, r0
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02230BD6
+ mov r0, #1
+ pop {r4, pc}
+_02230BD6:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02230BDC: .word 0x00001158
+_02230BE0: .word 0x00000127
+
+ thumb_func_start MOD12_02230BE4
+MOD12_02230BE4: ; 0x02230BE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrh r0, [r5]
+ cmp r0, #4
+ bls _02230BF2
+ b _02230D7C
+_02230BF2:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02230BFE: ; jump table
+ .short _02230C08 - _02230BFE - 2 ; case 0
+ .short _02230CFE - _02230BFE - 2 ; case 1
+ .short _02230D1C - _02230BFE - 2 ; case 2
+ .short _02230D3E - _02230BFE - 2 ; case 3
+ .short _02230D5A - _02230BFE - 2 ; case 4
+_02230C08:
+ mov r0, #0x12
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _02230C18
+ cmp r0, #1
+ bne _02230C1C
+_02230C18:
+ mov r1, #0
+ b _02230C1E
+_02230C1C:
+ mov r1, #1
+_02230C1E:
+ mov r0, #0xc
+ add r6, r1, #0
+ mul r6, r0
+ ldr r0, _02230D84 ; =0x02244BE8
+ add r1, r0, r6
+ mov r0, #0xab
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02230D88 ; =0x02244BEA
+ ldrh r7, [r0, r6]
+ ldr r0, _02230D8C ; =0x0112A880
+ add r1, r7, #0
+ bl _s32_div_f
+ ldr r1, _02230D90 ; =0x00000AE8
+ mov r3, #0
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ ldr r2, _02230D94 ; =0x00001388
+ lsl r0, r0, #4
+ mov ip, r3
+ mov r1, ip
+ add r0, r0, r2
+ adc r1, r3
+ lsl r2, r2, #1
+ bl _ll_udiv
+ ldr r1, _02230D98 ; =0x00000AEC
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #0x10
+ strh r7, [r4, r0]
+ sub r0, r1, #4
+ ldr r2, [r4, r0]
+ ldr r0, _02230D9C ; =0x02244BEE
+ add r3, r2, #0
+ ldrb r0, [r0, r6]
+ mul r3, r0
+ add r0, r1, #4
+ str r3, [r4, r0]
+ sub r0, r1, #4
+ ldr r2, [r4, r0]
+ ldr r0, _02230DA0 ; =0x02244BEF
+ add r3, r2, #0
+ ldrb r0, [r0, r6]
+ mul r3, r0
+ add r0, r1, #0
+ add r0, #8
+ str r3, [r4, r0]
+ sub r0, r1, #4
+ ldr r0, [r4, r0]
+ mov r1, #0x30
+ bl _u32_div_f
+ ldr r1, _02230DA4 ; =0x00000AF8
+ str r0, [r4, r1]
+ ldr r0, _02230DA8 ; =0x02244BED
+ ldrb r2, [r0, r6]
+ add r0, r1, #6
+ strb r2, [r4, r0]
+ ldr r0, _02230D84 ; =0x02244BE8
+ ldrh r2, [r0, r6]
+ add r0, r1, #0
+ sub r0, #0x14
+ str r2, [r4, r0]
+ add r0, r1, #0
+ sub r0, #0x48
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ ldrh r3, [r0]
+ add r2, #0x2c
+ strh r3, [r4, r2]
+ add r2, r1, #0
+ ldrh r3, [r0, #2]
+ add r2, #0x2e
+ strh r3, [r4, r2]
+ add r2, r1, #0
+ ldrh r3, [r0, #4]
+ add r2, #0x30
+ strh r3, [r4, r2]
+ add r2, r1, #0
+ ldrh r3, [r0, #6]
+ add r2, #0x32
+ strh r3, [r4, r2]
+ add r2, r1, #0
+ ldrh r3, [r0, #8]
+ add r2, #0x34
+ strh r3, [r4, r2]
+ ldrh r2, [r0, #0xa]
+ add r0, r1, #0
+ add r0, #0x36
+ strh r2, [r4, r0]
+ add r0, r1, #0
+ sub r0, #0x10
+ ldr r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x10
+ str r2, [r4, r0]
+ add r0, r1, #0
+ sub r0, #0xc
+ ldr r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x14
+ str r2, [r4, r0]
+ add r0, r1, #4
+ ldrh r0, [r4, r0]
+ add r1, #0x18
+ strh r0, [r4, r1]
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _02230D80
+_02230CFE:
+ ldr r0, _02230DAC ; =0x00001158
+ mov r3, #0xad
+ lsl r3, r3, #4
+ add r0, r4, r0
+ add r1, r4, #0
+ mov r2, #0xa
+ add r3, r4, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02230D80
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _02230D80
+_02230D1C:
+ ldr r0, _02230DAC ; =0x00001158
+ ldr r3, [r4]
+ add r0, r4, r0
+ ldr r4, _02230DB0 ; =0x00000127
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02230D80
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _02230D80
+_02230D3E:
+ ldr r0, _02230DAC ; =0x00001158
+ mov r2, #0xb
+ lsl r3, r2, #8
+ add r0, r4, r0
+ add r1, r4, #0
+ add r3, r4, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02230D80
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _02230D80
+_02230D5A:
+ ldr r0, _02230DAC ; =0x00001158
+ ldr r3, [r4]
+ add r0, r4, r0
+ ldr r4, _02230DB0 ; =0x00000127
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02230D80
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _02230D80
+_02230D7C:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02230D80:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02230D84: .word 0x02244BE8
+_02230D88: .word 0x02244BEA
+_02230D8C: .word 0x0112A880
+_02230D90: .word 0x00000AE8
+_02230D94: .word 0x00001388
+_02230D98: .word 0x00000AEC
+_02230D9C: .word 0x02244BEE
+_02230DA0: .word 0x02244BEF
+_02230DA4: .word 0x00000AF8
+_02230DA8: .word 0x02244BED
+_02230DAC: .word 0x00001158
+_02230DB0: .word 0x00000127
+
+ thumb_func_start MOD12_02230DB4
+MOD12_02230DB4: ; 0x02230DB4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldrh r0, [r1]
+ str r1, [sp]
+ cmp r0, #0
+ bne _02230E0E
+ ldr r1, _02230E18 ; =0x00000AD4
+ mov r4, #0
+ ldrb r0, [r5, r1]
+ add r2, r5, r0
+ sub r0, r1, #4
+ ldrb r0, [r2, r0]
+ add r1, #0x2c
+ strb r0, [r5, r1]
+ ldr r0, _02230E1C ; =0x00000AD5
+ add r1, r0, #0
+ add r1, #0x2d
+_02230DD6:
+ add r3, r5, r4
+ ldrb r2, [r3, r0]
+ add r4, r4, #1
+ cmp r4, #4
+ strb r2, [r3, r1]
+ blt _02230DD6
+ ldr r1, [r5]
+ ldr r0, _02230E20 ; =0x00000127
+ ldrb r6, [r1, r0]
+ cmp r6, #4
+ bge _02230E02
+ lsl r0, r6, #2
+ ldr r7, _02230E24 ; =0x00000B14
+ add r4, r5, r0
+_02230DF2:
+ ldr r0, [r5]
+ bl FUN_02082878
+ str r0, [r4, r7]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _02230DF2
+_02230E02:
+ ldr r0, [sp]
+ ldrh r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp]
+ strh r1, [r0]
+ b _02230E12
+_02230E0E:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02230E12:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02230E18: .word 0x00000AD4
+_02230E1C: .word 0x00000AD5
+_02230E20: .word 0x00000127
+_02230E24: .word 0x00000B14
+
+ thumb_func_start MOD12_02230E28
+MOD12_02230E28: ; 0x02230E28
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ ldr r0, _02230E74 ; =0x00001158
+ bne _02230E52
+ mov r3, #0xb
+ lsl r3, r3, #8
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #7
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02230E6E
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02230E6E
+_02230E52:
+ ldr r4, _02230E78 ; =0x00000127
+ ldr r3, [r5]
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ add r0, r5, r0
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02230E6E
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02230E6E:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02230E74: .word 0x00001158
+_02230E78: .word 0x00000127
+
+ thumb_func_start MOD12_02230E7C
+MOD12_02230E7C: ; 0x02230E7C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ ldr r0, _02230EC8 ; =0x00001158
+ bne _02230EA6
+ mov r3, #0xb
+ lsl r3, r3, #8
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #5
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02230EC2
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02230EC2
+_02230EA6:
+ ldr r4, _02230ECC ; =0x00000127
+ ldr r3, [r5]
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ add r0, r5, r0
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02230EC2
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02230EC2:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02230EC8: .word 0x00001158
+_02230ECC: .word 0x00000127
+
+ thumb_func_start MOD12_02230ED0
+MOD12_02230ED0: ; 0x02230ED0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ ldr r0, _02230F1C ; =0x00001158
+ bne _02230EFA
+ mov r3, #0xb
+ lsl r3, r3, #8
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #8
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02230F16
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02230F16
+_02230EFA:
+ ldr r4, _02230F20 ; =0x00000127
+ ldr r3, [r5]
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ add r0, r5, r0
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02230F16
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02230F16:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02230F1C: .word 0x00001158
+_02230F20: .word 0x00000127
+
+ thumb_func_start MOD12_02230F24
+MOD12_02230F24: ; 0x02230F24
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ bne _02230F76
+ ldr r1, _02230F98 ; =0x00000AD4
+ ldrb r0, [r5, r1]
+ cmp r0, #3
+ blo _02230F3C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02230F3C:
+ add r0, r1, #2
+ ldrb r0, [r5, r0]
+ add r1, #0x5c
+ strb r0, [r5, r1]
+ mov r0, #0x12
+ ldr r1, [r5]
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ bl MOD12_0223E464
+ ldr r3, _02230F9C ; =0x00000B34
+ mov r1, #0
+ strb r0, [r5, r3]
+ add r0, r3, #2
+ strb r1, [r5, r0]
+ ldr r0, _02230FA0 ; =0x00001158
+ sub r3, #0x34
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #6
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02230F94
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02230F94
+_02230F76:
+ ldr r4, _02230FA4 ; =0x00000127
+ ldr r3, [r5]
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ ldr r0, _02230FA0 ; =0x00001158
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ add r0, r5, r0
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02230F94
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02230F94:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02230F98: .word 0x00000AD4
+_02230F9C: .word 0x00000B34
+_02230FA0: .word 0x00001158
+_02230FA4: .word 0x00000127
+
+ thumb_func_start MOD12_02230FA8
+MOD12_02230FA8: ; 0x02230FA8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r3, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _02230FBE
+ cmp r0, #1
+ beq _02230FE8
+ cmp r0, #2
+ beq _02231006
+ b _02231028
+_02230FBE:
+ ldr r0, _0223104C ; =0x00000AD5
+ ldr r1, _0223104C ; =0x00000AD5
+ ldrb r7, [r3, r0]
+ mov r6, #0
+ add r0, r0, #1
+_02230FC8:
+ add r5, r3, r6
+ ldrb r2, [r5, r0]
+ add r6, r6, #1
+ cmp r6, #3
+ strb r2, [r5, r1]
+ blt _02230FC8
+ ldr r0, _02231050 ; =0x00000AD8
+ strb r7, [r3, r0]
+ sub r1, r0, #4
+ ldrb r1, [r3, r1]
+ sub r0, r0, #4
+ add r1, r1, #1
+ strb r1, [r3, r0]
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+_02230FE8:
+ ldr r0, _02231054 ; =0x00001158
+ mov r5, #0xad
+ lsl r5, r5, #4
+ add r0, r3, r0
+ add r1, r3, #0
+ mov r2, #0xa
+ add r3, r3, r5
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02231048
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02231048
+_02231006:
+ ldr r0, _02231054 ; =0x00001158
+ ldr r5, [r3]
+ add r0, r3, r0
+ ldr r3, _02231058 ; =0x00000127
+ sub r2, r3, #4
+ ldrb r1, [r5, r3]
+ sub r3, #0xb
+ ldrb r2, [r5, r2]
+ ldrb r3, [r5, r3]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02231048
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02231048
+_02231028:
+ ldr r1, _0223105C ; =0x00000AD4
+ ldrb r0, [r3, r1]
+ cmp r0, #4
+ bhs _02231044
+ add r0, r1, #0
+ add r0, #0x2d
+ ldrb r0, [r3, r0]
+ add r1, #0x2d
+ add r0, r0, #1
+ strb r0, [r3, r1]
+ mov r0, #4
+ strh r0, [r4, #2]
+ mov r0, #2
+ pop {r3, r4, r5, r6, r7, pc}
+_02231044:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02231048:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223104C: .word 0x00000AD5
+_02231050: .word 0x00000AD8
+_02231054: .word 0x00001158
+_02231058: .word 0x00000127
+_0223105C: .word 0x00000AD4
+
+ thumb_func_start MOD12_02231060
+MOD12_02231060: ; 0x02231060
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _02231072
+ cmp r0, #1
+ beq _02231090
+ b _022310B2
+_02231072:
+ ldr r0, _022310BC ; =0x00001158
+ mov r3, #0xb
+ lsl r3, r3, #8
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #0xc
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _022310B6
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _022310B6
+_02231090:
+ ldr r0, _022310BC ; =0x00001158
+ ldr r3, [r5]
+ add r0, r5, r0
+ ldr r5, _022310C0 ; =0x00000127
+ sub r2, r5, #4
+ ldrb r1, [r3, r5]
+ sub r5, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r5]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _022310B6
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _022310B6
+_022310B2:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022310B6:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022310BC: .word 0x00001158
+_022310C0: .word 0x00000127
+
+ thumb_func_start MOD12_022310C4
+MOD12_022310C4: ; 0x022310C4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp]
+ ldrh r0, [r1]
+ str r1, [sp, #4]
+ cmp r0, #0
+ beq _022310DE
+ cmp r0, #1
+ beq _022311D4
+ cmp r0, #2
+ bne _022310DC
+ b _022311FA
+_022310DC:
+ b _02231222
+_022310DE:
+ mov r1, #0
+ mov r6, #0x4b
+ ldr r2, [sp]
+ ldr r5, _02231230 ; =0x00000ADA
+ add r3, r1, #0
+ lsl r6, r6, #2
+_022310EA:
+ ldr r4, [sp]
+ ldrsh r0, [r2, r5]
+ ldr r4, [r4]
+ add r1, r1, #1
+ add r4, r4, r3
+ strh r0, [r4, r6]
+ add r2, r2, #2
+ add r3, #0xc
+ cmp r1, #4
+ blt _022310EA
+ ldr r0, [sp]
+ mov r1, #0
+ ldr r0, [r0]
+ add r2, sp, #0x1c
+ bl MOD12_022435E4
+ ldr r0, [sp]
+ mov r1, #1
+ ldr r0, [r0]
+ add r2, sp, #0x14
+ bl MOD12_022435E4
+ mov r6, #0
+ add r2, sp, #0x14
+ add r3, sp, #0x1c
+ add r4, sp, #0xc
+ add r5, sp, #8
+ add r7, r6, #0
+_02231122:
+ mov r0, #0
+ ldrsh r1, [r3, r0]
+ ldrsh r0, [r2, r7]
+ strb r6, [r5]
+ add r6, r6, #1
+ add r0, r1, r0
+ strh r0, [r4]
+ add r2, r2, #2
+ add r3, r3, #2
+ add r4, r4, #2
+ add r5, r5, #1
+ cmp r6, #4
+ blt _02231122
+ mov r6, #0
+ sub r7, r6, #2
+_02231140:
+ mov r3, #3
+ cmp r6, #3
+ bge _02231172
+ add r4, sp, #0x10
+ add r5, sp, #8
+ add r4, #2
+ add r5, #3
+_0223114E:
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ ldrsh r1, [r4, r7]
+ cmp r1, r0
+ bge _02231168
+ strh r1, [r4]
+ sub r1, r4, #2
+ strh r0, [r1]
+ sub r0, r5, #1
+ ldrb r2, [r5]
+ ldrb r1, [r0]
+ strb r1, [r5]
+ strb r2, [r0]
+_02231168:
+ sub r3, r3, #1
+ sub r4, r4, #2
+ sub r5, r5, #1
+ cmp r3, r6
+ bgt _0223114E
+_02231172:
+ add r6, r6, #1
+ cmp r6, #3
+ blt _02231140
+ ldr r1, _02231234 ; =0x00000172
+ mov r4, #0
+ add r3, sp, #8
+_0223117E:
+ ldr r0, [sp]
+ ldrb r2, [r3]
+ ldr r0, [r0]
+ add r3, r3, #1
+ add r0, r0, r4
+ add r4, r4, #1
+ strb r2, [r0, r1]
+ cmp r4, #4
+ blt _0223117E
+ ldr r2, _02231238 ; =0x00000B37
+ ldr r1, [sp]
+ mov r0, #0
+ strb r0, [r1, r2]
+ add r3, r2, #1
+ strb r0, [r1, r3]
+ ldr r1, [r1]
+ ldr r4, _02231234 ; =0x00000172
+ sub r3, r2, #7
+ ldrb r5, [r1, r4]
+ ldr r1, [sp]
+ sub r4, #0x51
+ strb r5, [r1, r3]
+ ldr r1, [r1]
+ ldrb r1, [r1, r4]
+ cmp r1, #0
+ beq _022311BA
+ cmp r1, #1
+ beq _022311BA
+ cmp r1, #2
+ bne _022311C4
+_022311BA:
+ ldr r1, _0223123C ; =0x00000B36
+ ldr r0, [sp]
+ mov r2, #6
+ strb r2, [r0, r1]
+ b _022311CA
+_022311C4:
+ ldr r1, [sp]
+ sub r2, r2, #1
+ strb r0, [r1, r2]
+_022311CA:
+ ldr r0, [sp, #4]
+ ldrh r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #4]
+ strh r1, [r0]
+_022311D4:
+ ldr r1, _02231240 ; =0x00001158
+ ldr r0, [sp]
+ mov r4, #0xb
+ add r0, r0, r1
+ ldr r1, [sp]
+ lsl r4, r4, #8
+ add r3, r1, #0
+ mov r2, #9
+ add r3, r3, r4
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02231228
+ ldr r0, [sp, #4]
+ ldrh r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #4]
+ strh r1, [r0]
+ b _02231228
+_022311FA:
+ ldr r0, [sp]
+ ldr r4, _02231244 ; =0x00000127
+ ldr r3, [r0]
+ ldr r1, _02231240 ; =0x00001158
+ sub r2, r4, #4
+ add r0, r0, r1
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02231228
+ ldr r0, [sp, #4]
+ ldrh r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #4]
+ strh r1, [r0]
+ b _02231228
+_02231222:
+ add sp, #0x24
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02231228:
+ mov r0, #0
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02231230: .word 0x00000ADA
+_02231234: .word 0x00000172
+_02231238: .word 0x00000B37
+_0223123C: .word 0x00000B36
+_02231240: .word 0x00001158
+_02231244: .word 0x00000127
+
+ thumb_func_start MOD12_02231248
+MOD12_02231248: ; 0x02231248
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _0223125A
+ cmp r0, #1
+ beq _0223125E
+ b _0223128E
+_0223125A:
+ add r0, r0, #1
+ strh r0, [r4]
+_0223125E:
+ ldr r3, _022312B0 ; =0x00000172
+ mov r0, #0
+ add r1, sp, #0
+_02231264:
+ ldr r5, [r2]
+ add r5, r5, r0
+ ldrb r5, [r5, r3]
+ add r0, r0, #1
+ strb r5, [r1]
+ add r1, r1, #1
+ cmp r0, #4
+ blt _02231264
+ ldr r0, _022312B4 ; =0x00001158
+ add r1, r2, #0
+ add r0, r2, r0
+ mov r2, #4
+ add r3, sp, #0
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _022312AC
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _022312AC
+_0223128E:
+ ldr r0, _022312B4 ; =0x00001158
+ ldr r3, [r2]
+ ldr r4, _022312B8 ; =0x00000127
+ add r0, r2, r0
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _022312AC
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+_022312AC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022312B0: .word 0x00000172
+_022312B4: .word 0x00001158
+_022312B8: .word 0x00000127
+
+ thumb_func_start MOD12_022312BC
+MOD12_022312BC: ; 0x022312BC
+ push {r3, lr}
+ ldr r0, _022312D0 ; =SDK_MODULE_08_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+ ldr r0, _022312D4 ; =SDK_MODULE_17_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+ pop {r3, pc}
+ .align 2, 0
+_022312D0: .word SDK_MODULE_08_ID
+_022312D4: .word SDK_MODULE_17_ID
+
+ thumb_func_start MOD12_022312D8
+MOD12_022312D8: ; 0x022312D8
+ push {r3, lr}
+ sub sp, #8
+ mov r2, #2
+ ldr r1, _022312F0 ; =MOD12_022312F4
+ str r2, [sp]
+ str r1, [sp, #4]
+ mov r1, #0
+ add r3, r1, #0
+ bl FUN_02022318
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+_022312F0: .word MOD12_022312F4
+
+ thumb_func_start MOD12_022312F4
+MOD12_022312F4: ; 0x022312F4
+ push {r3, lr}
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r0, _02231360 ; =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, _02231364 ; =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, _02231368 ; =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, _0223136C ; =0x00007FFF
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _02231370 ; =0xBFFF0000
+ ldr r0, _02231374 ; =0x04000580
+ str r1, [r0]
+ pop {r3, pc}
+ .align 2, 0
+_02231360: .word 0x04000008
+_02231364: .word 0xFFFFCFFD
+_02231368: .word 0x0000CFFB
+_0223136C: .word 0x00007FFF
+_02231370: .word 0xBFFF0000
+_02231374: .word 0x04000580
+
+ thumb_func_start MOD12_02231378
+MOD12_02231378: ; 0x02231378
+ ldr r3, _0223137C ; =0x020223BD
+ bx r3
+ .align 2, 0
+_0223137C: .word 0x020223BD
+
+ thumb_func_start MOD12_02231380
+MOD12_02231380: ; 0x02231380
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x74
+ str r0, [sp, #0x18]
+ str r1, [sp, #0x1c]
+ str r2, [sp, #0x20]
+ ldr r0, [sp, #0x90]
+ ldr r1, [sp, #0x8c]
+ mov r2, #0
+ str r3, [sp, #0x24]
+ ldr r5, [sp, #0x88]
+ ldr r4, [sp, #0xa0]
+ bl FUN_02002E14
+ add r7, r0, #0
+ asr r1, r7, #2
+ lsr r1, r1, #0x1d
+ add r1, r7, r1
+ asr r6, r1, #3
+ mov r1, #8
+ bl FX_ModS32
+ cmp r0, #0
+ beq _022313B0
+ add r6, r6, #1
+_022313B0:
+ add r0, sp, #0x34
+ bl FUN_0201901C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ lsl r2, r6, #0x18
+ ldr r0, [sp, #0x1c]
+ add r1, sp, #0x34
+ lsr r2, r2, #0x18
+ mov r3, #2
+ bl FUN_020190EC
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x94]
+ ldr r1, [sp, #0x90]
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ ldr r2, [sp, #0x8c]
+ add r0, sp, #0x34
+ str r3, [sp, #0x14]
+ bl FUN_0201BE3C
+ ldr r2, [sp, #0x18]
+ add r0, sp, #0x34
+ mov r1, #1
+ bl FUN_02011898
+ mov r1, #1
+ add r2, r1, #0
+ add r3, sp, #0x28
+ bl FUN_0201D568
+ ldr r0, [sp, #0xa8]
+ cmp r0, #1
+ bne _02231408
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r0, r0, #1
+ sub r4, r4, r0
+_02231408:
+ ldr r0, [sp, #0x24]
+ str r0, [sp, #0x44]
+ add r0, sp, #0x34
+ str r0, [sp, #0x48]
+ ldr r0, [sp, #0x20]
+ bl FUN_0200CA40
+ str r0, [sp, #0x4c]
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x9c]
+ bl FUN_0200C334
+ str r0, [sp, #0x50]
+ mov r0, #0
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0x2c]
+ str r4, [sp, #0x5c]
+ str r0, [sp, #0x58]
+ ldr r0, [sp, #0xa4]
+ sub r0, #8
+ str r0, [sp, #0x60]
+ ldr r0, [sp, #0xac]
+ str r0, [sp, #0x64]
+ ldr r0, [sp, #0xb0]
+ str r0, [sp, #0x68]
+ mov r0, #1
+ str r0, [sp, #0x6c]
+ ldr r0, [sp, #0x18]
+ str r0, [sp, #0x70]
+ add r0, sp, #0x44
+ bl FUN_020117E8
+ ldr r1, [sp, #0x98]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _02231454
+ bl FUN_02011A90
+_02231454:
+ ldr r2, [sp, #0xa4]
+ add r0, r6, #0
+ add r1, r4, #0
+ sub r2, #8
+ bl FUN_020118C4
+ add r0, sp, #0x34
+ bl FUN_02019178
+ str r6, [r5]
+ add r3, sp, #0x28
+ ldmia r3!, {r0, r1}
+ add r2, r5, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ strh r7, [r5, #0x10]
+ add sp, #0x74
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223147C
+MOD12_0223147C: ; 0x0223147C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02011870
+ add r0, r4, #4
+ bl FUN_0201D5E8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02231490
+MOD12_02231490: ; 0x02231490
+ cmp r3, #1
+ bne _0223149A
+ ldrh r3, [r0, #0x10]
+ lsr r3, r3, #1
+ sub r1, r1, r3
+_0223149A:
+ ldr r3, _022314A4 ; =0x020118C5
+ ldr r0, [r0]
+ sub r2, #8
+ bx r3
+ nop
+_022314A4: .word 0x020118C5
+
+ thumb_func_start MOD12_022314A8
+MOD12_022314A8: ; 0x022314A8
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r3, r1, #0
+ mov r0, #1
+ mov r1, #0x1a
+ mov r2, #0xc2
+ bl FUN_0200A86C
+ add r5, r0, #0
+ add r1, r4, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD12_022314CC
+MOD12_022314CC: ; 0x022314CC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ ldr r1, _02231504 ; =0x00000122
+ ldrb r1, [r5, r1]
+ bl MOD12_0224473C
+ add r7, r0, #0
+ mov r6, #0
+ add r4, r5, #0
+_022314E0:
+ add r0, r5, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ add r1, r7, #0
+ bl MOD12_02244710
+ ldr r1, _02231508 ; =0x0000012A
+ add r6, r6, #1
+ strh r0, [r4, r1]
+ add r5, r5, #4
+ add r4, #0xc
+ cmp r6, #4
+ blt _022314E0
+ add r0, r7, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02231504: .word 0x00000122
+_02231508: .word 0x0000012A
+
+ thumb_func_start MOD12_0223150C
+MOD12_0223150C: ; 0x0223150C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r0, [sp]
+ ldr r4, [sp]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ str r0, [sp, #4]
+_0223151C:
+ ldr r0, [r4]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ mov r6, #0x64
+ add r5, r0, #0
+ add r0, r6, #0
+ ldr r1, [sp]
+ add r0, #0xbb
+ ldrb r0, [r1, r0]
+ cmp r0, #4
+ bls _02231538
+ b _022316AA
+_02231538:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02231544: ; jump table
+ .short _0223154E - _02231544 - 2 ; case 0
+ .short _02231594 - _02231544 - 2 ; case 1
+ .short _022315DA - _02231544 - 2 ; case 2
+ .short _02231620 - _02231544 - 2 ; case 3
+ .short _02231666 - _02231544 - 2 ; case 4
+_0223154E:
+ ldr r0, [r4]
+ mov r1, #0x13
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ mov r1, #0x17
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #0x14
+ mov r2, #0
+ bl FUN_020671BC
+ add r7, r0, #0
+ add r0, r6, #0
+ add r0, #0xa0
+ cmp r5, r0
+ beq _0223158C
+ add r0, r6, #0
+ add r0, #0xa1
+ cmp r5, r0
+ beq _02231590
+ add r0, r6, #0
+ add r0, #0xa4
+ cmp r5, r0
+ beq _02231590
+ b _022316B2
+_0223158C:
+ mov r6, #0x6e
+ b _022316B2
+_02231590:
+ mov r6, #0x69
+ b _022316B2
+_02231594:
+ ldr r0, [r4]
+ mov r1, #0x14
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ mov r1, #0x13
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #0x15
+ mov r2, #0
+ bl FUN_020671BC
+ add r7, r0, #0
+ add r0, r6, #0
+ add r0, #0xa0
+ cmp r5, r0
+ beq _022315D6
+ add r0, r6, #0
+ add r0, #0xa1
+ cmp r5, r0
+ beq _022315D2
+ add r0, r6, #0
+ add r0, #0xa2
+ cmp r5, r0
+ beq _022315D6
+ b _022316B2
+_022315D2:
+ mov r6, #0x6e
+ b _022316B2
+_022315D6:
+ mov r6, #0x69
+ b _022316B2
+_022315DA:
+ ldr r0, [r4]
+ mov r1, #0x15
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ mov r1, #0x14
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #0x16
+ mov r2, #0
+ bl FUN_020671BC
+ add r7, r0, #0
+ add r0, r6, #0
+ add r0, #0xa1
+ cmp r5, r0
+ beq _0223161C
+ add r0, r6, #0
+ add r0, #0xa2
+ cmp r5, r0
+ beq _02231618
+ add r0, r6, #0
+ add r0, #0xa3
+ cmp r5, r0
+ beq _0223161C
+ b _022316B2
+_02231618:
+ mov r6, #0x6e
+ b _022316B2
+_0223161C:
+ mov r6, #0x69
+ b _022316B2
+_02231620:
+ ldr r0, [r4]
+ mov r1, #0x16
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ mov r1, #0x15
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #0x17
+ mov r2, #0
+ bl FUN_020671BC
+ add r7, r0, #0
+ add r0, r6, #0
+ add r0, #0xa2
+ cmp r5, r0
+ beq _02231662
+ add r0, r6, #0
+ add r0, #0xa3
+ cmp r5, r0
+ beq _0223165E
+ add r0, r6, #0
+ add r0, #0xa4
+ cmp r5, r0
+ beq _02231662
+ b _022316B2
+_0223165E:
+ mov r6, #0x6e
+ b _022316B2
+_02231662:
+ mov r6, #0x69
+ b _022316B2
+_02231666:
+ ldr r0, [r4]
+ mov r1, #0x17
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ mov r1, #0x16
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #0x13
+ mov r2, #0
+ bl FUN_020671BC
+ add r7, r0, #0
+ add r0, r6, #0
+ add r0, #0xa0
+ cmp r5, r0
+ beq _022316A6
+ add r0, r6, #0
+ add r0, #0xa3
+ cmp r5, r0
+ beq _022316A6
+ add r0, r6, #0
+ add r0, #0xa4
+ cmp r5, r0
+ bne _022316B2
+ mov r6, #0x6e
+ b _022316B2
+_022316A6:
+ mov r6, #0x69
+ b _022316B2
+_022316AA:
+ bl ErrorHandling
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+_022316B2:
+ ldr r0, [r4]
+ mov r1, #0x18
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, [sp, #8]
+ add r1, r1, r7
+ add r1, r0, r1
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r1, r0, #1
+ ldr r0, [sp, #0xc]
+ add r1, r0, r1
+ add r0, r1, #0
+ mul r0, r6
+ mov r1, #0x64
+ bl _s32_div_f
+ mov r1, #0x4a
+ ldr r2, [sp, #4]
+ lsl r1, r1, #2
+ strh r0, [r2, r1]
+ add r0, r2, #0
+ add r0, #0xc
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x10]
+ add r4, r4, #4
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, #4
+ bge _022316F2
+ b _0223151C
+_022316F2:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022316F8
+MOD12_022316F8: ; 0x022316F8
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r6, r2, #0
+ mov r2, #0
+ mvn r2, r2
+ add r5, r0, #0
+ add r4, r1, #0
+ cmp r3, r2
+ beq _0223171A
+ mov r2, #1
+ str r2, [sp]
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ mov r2, #0x2e
+ mov r3, #0x49
+ bl FUN_0200C00C
+_0223171A:
+ mov r1, #0
+ ldr r0, [sp, #0x28]
+ mvn r1, r1
+ cmp r0, r1
+ beq _02231744
+ mov r1, #0x2e
+ str r1, [sp]
+ mov r1, #7
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ mov r1, #1
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ add r0, r6, #0
+ mov r1, #2
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+_02231744:
+ mov r0, #0
+ ldr r1, [sp, #0x2c]
+ mvn r0, r0
+ cmp r1, r0
+ beq _02231760
+ mov r0, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x2e
+ mov r3, #0x4a
+ bl FUN_0200C124
+_02231760:
+ mov r0, #0
+ ldr r1, [sp, #0x30]
+ mvn r0, r0
+ cmp r1, r0
+ beq _0223177C
+ mov r0, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x2e
+ mov r3, #0x4b
+ bl FUN_0200C13C
+_0223177C:
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD12_02231780
+MOD12_02231780: ; 0x02231780
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ mov r2, #0
+ mvn r2, r2
+ add r5, r0, #0
+ add r6, r3, #0
+ cmp r1, r2
+ beq _02231794
+ bl FUN_0200C358
+_02231794:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ beq _022317A4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200C368
+_022317A4:
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ beq _022317B4
+ add r0, r5, #0
+ add r1, r6, #0
+ bl FUN_0200C378
+_022317B4:
+ mov r0, #0
+ ldr r1, [sp, #0x10]
+ mvn r0, r0
+ cmp r1, r0
+ beq _022317C4
+ add r0, r5, #0
+ bl FUN_0200C388
+_022317C4:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022317C8
+MOD12_022317C8: ; 0x022317C8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ ldr r5, _02231850 ; =0x02244D18
+ str r2, [sp, #4]
+ str r0, [sp]
+ add r7, r1, #0
+ add r4, sp, #8
+ mov r2, #6
+_022317D8:
+ ldmia r5!, {r0, r1}
+ stmia r4!, {r0, r1}
+ sub r2, r2, #1
+ bne _022317D8
+ ldr r0, [r5]
+ ldr r5, _02231854 ; =0x02244CE8
+ str r0, [r4]
+ ldr r0, [sp, #0x50]
+ ldr r4, [sp]
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x54]
+ str r3, [sp, #0x1c]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x58]
+ mov r6, #0
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x5c]
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x60]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x64]
+ str r0, [sp, #0x34]
+_02231804:
+ ldr r1, [sp, #4]
+ add r0, r7, #0
+ add r2, sp, #8
+ bl FUN_0200C154
+ str r0, [r4]
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r5, r1]
+ ldrsh r2, [r5, r2]
+ bl FUN_0200C714
+ ldrb r1, [r5, #6]
+ ldr r0, [r4]
+ bl FUN_0200C5C0
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0200C840
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, #8
+ cmp r6, #6
+ blt _02231804
+ ldr r0, _02231858 ; =MOD12_02231880
+ ldr r1, [sp]
+ ldr r2, [sp, #0x68]
+ bl FUN_0200CA44
+ ldr r1, [sp]
+ str r0, [r1, #0x18]
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02231850: .word 0x02244D18
+_02231854: .word 0x02244CE8
+_02231858: .word MOD12_02231880
+
+ thumb_func_start MOD12_0223185C
+MOD12_0223185C: ; 0x0223185C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_02231864:
+ ldr r0, [r5]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02231864
+ ldr r0, [r6, #0x18]
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r6, #0x18]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02231880
+MOD12_02231880: ; 0x02231880
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r4, _022318A0 ; =0x02244CE8
+ add r5, r1, #0
+ mov r6, #0
+ mov r7, #4
+_0223188A:
+ ldrsh r1, [r4, r7]
+ ldr r0, [r5]
+ bl FUN_0200C8BC
+ add r6, r6, #1
+ add r4, #8
+ add r5, r5, #4
+ cmp r6, #6
+ blt _0223188A
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022318A0: .word 0x02244CE8
+
+ thumb_func_start MOD12_022318A4
+MOD12_022318A4: ; 0x022318A4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ mov r1, #0x14
+ add r6, r2, #0
+ add r7, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x14
+ bl MI_CpuFill8
+ str r5, [r4, #4]
+ str r6, [r4, #0xc]
+ ldr r0, [sp, #0x18]
+ strb r7, [r4, #0x10]
+ strb r0, [r4, #0x12]
+ ldr r0, _022318D8 ; =MOD12_0223190C
+ ldr r2, [sp, #0x1c]
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4]
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022318D8: .word MOD12_0223190C
+
+ thumb_func_start MOD12_022318DC
+MOD12_022318DC: ; 0x022318DC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _022318EA
+ bl ErrorHandling
+_022318EA:
+ ldr r0, [r4]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start MOD12_022318F8
+MOD12_022318F8: ; 0x022318F8
+ push {r3, lr}
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #1
+ bne _02231908
+ mov r0, #1
+ pop {r3, pc}
+_02231908:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD12_0223190C
+MOD12_0223190C: ; 0x0223190C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r0, #1
+ add r4, r1, #0
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _02231972
+ ldr r0, [r4, #8]
+ add r2, r0, #1
+ str r2, [r4, #8]
+ ldrb r0, [r4, #0x11]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #1
+ ldrh r0, [r1, r0]
+ cmp r2, r0
+ ble _02231972
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #6
+ mov r1, #0
+ mov r2, #4
+ mov r3, #0x3f
+ bl FUN_0200A208
+ ldr r0, _02231978 ; =0x000005F8
+ bl FUN_020054C8
+ mov r0, #0
+ str r0, [r4, #8]
+ ldrb r0, [r4, #0x11]
+ add r0, r0, #1
+ strb r0, [r4, #0x11]
+ ldrb r1, [r4, #0x11]
+ ldrb r0, [r4, #0x10]
+ cmp r1, r0
+ blo _02231972
+ ldrb r0, [r4, #0x12]
+ cmp r0, #0
+ bne _02231966
+ add r0, r4, #0
+ bl MOD12_022318DC
+ add sp, #4
+ pop {r3, r4, pc}
+_02231966:
+ cmp r0, #0xff
+ beq _0223196E
+ sub r0, r0, #1
+ strb r0, [r4, #0x12]
+_0223196E:
+ mov r0, #0
+ strb r0, [r4, #0x11]
+_02231972:
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_02231978: .word 0x000005F8
+
+ thumb_func_start MOD12_0223197C
+MOD12_0223197C: ; 0x0223197C
+ push {r4, lr}
+ mov r1, #0x32
+ mov r0, #0x15
+ lsl r1, r1, #4
+ bl FUN_02016998
+ mov r2, #0x32
+ mov r1, #0
+ lsl r2, r2, #4
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r1, #0
+ mov r0, #0x2e
+ mvn r1, r1
+ lsl r0, r0, #4
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022319A4
+MOD12_022319A4: ; 0x022319A4
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ ldr r6, _022319F8 ; =0x02244F64
+ add r5, r0, #0
+ add r7, r4, #0
+_022319AE:
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r2, r6, #0
+ add r3, r7, #0
+ bl FUN_02016C18
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ mov r2, #0
+ bl FUN_02018768
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ mov r2, #0
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r4, r4, #1
+ add r6, #0x1c
+ cmp r4, #4
+ blo _022319AE
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022319F8: .word 0x02244F64
+
+ thumb_func_start MOD12_022319FC
+MOD12_022319FC: ; 0x022319FC
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_02231A04:
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r6, #0
+ bl FUN_0201797C
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178A0
+ add r4, r4, #1
+ cmp r4, #4
+ blo _02231A04
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD12_02231A24
+MOD12_02231A24: ; 0x02231A24
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD12_0223197C
+ add r4, r0, #0
+ str r5, [r4]
+ str r6, [r4, #4]
+ mov r0, #0xc
+ mov r1, #0x15
+ str r7, [r4, #8]
+ bl FUN_02011744
+ mov r7, #2
+ str r0, [r4, #0x3c]
+ mov r5, #0
+ lsl r7, r7, #0xa
+ b _02231A88
+_02231A4C:
+ mov r0, #0x15
+ add r1, r7, #0
+ bl FUN_02016998
+ lsl r1, r5, #2
+ add r1, r4, r1
+ str r0, [r1, #0x20]
+ mov r0, #0x15
+ str r0, [sp]
+ ldr r1, _02231AE0 ; =0x02244D6C
+ lsl r2, r5, #1
+ ldrh r1, [r1, r2]
+ mov r0, #0x2d
+ mov r2, #1
+ add r3, sp, #0xc
+ bl FUN_02006BDC
+ add r6, r0, #0
+ lsl r0, r5, #2
+ add r0, r4, r0
+ ldr r1, [r0, #0x20]
+ ldr r0, [sp, #0xc]
+ add r2, r7, #0
+ add r0, #0xc
+ bl MIi_CpuCopy32
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r5, r5, #1
+_02231A88:
+ cmp r5, #5
+ blt _02231A4C
+ ldr r0, [r4, #4]
+ mov r7, #2
+ ldr r6, [r0, #0x50]
+ mov r5, #0
+ lsl r7, r7, #8
+ b _02231AD6
+_02231A98:
+ mov r0, #0x15
+ add r1, r7, #0
+ bl FUN_02016998
+ lsl r1, r5, #2
+ add r1, r4, r1
+ str r0, [r1, #0x34]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, _02231AE4 ; =0x02244D54
+ lsl r3, r5, #1
+ ldrh r2, [r2, r3]
+ add r0, r6, #0
+ mov r1, #0x2d
+ mov r3, #0x15
+ bl FUN_020030E8
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_020031FC
+ lsl r1, r5, #2
+ add r1, r4, r1
+ ldr r1, [r1, #0x34]
+ add r2, r7, #0
+ bl MIi_CpuCopy16
+ add r5, r5, #1
+_02231AD6:
+ cmp r5, #2
+ blt _02231A98
+ add r0, r4, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02231AE0: .word 0x02244D6C
+_02231AE4: .word 0x02244D54
+
+ thumb_func_start MOD12_02231AE8
+MOD12_02231AE8: ; 0x02231AE8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r6, r0, #0
+ bl MOD12_02232638
+ ldr r0, [r6, #0x3c]
+ bl FUN_020117BC
+ ldr r3, _02231B48 ; =0x000080F8
+ str r3, [sp]
+ ldr r0, [r6, #4]
+ add r1, r3, #5
+ ldr r0, [r0, #0x1c]
+ sub r2, r3, #7
+ bl MOD12_022447C0
+ mov r0, #0xc5
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl MOD12_0224486C
+ mov r4, #0
+ add r5, r6, #0
+_02231B16:
+ ldr r0, [r5, #0x20]
+ bl FUN_02016A18
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _02231B16
+ mov r5, #0
+ add r4, r6, #0
+_02231B28:
+ ldr r0, [r4, #0x34]
+ bl FUN_02016A18
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #2
+ blt _02231B28
+ add r0, r6, #0
+ bl MOD12_02232B7C
+ add r0, r6, #0
+ bl FUN_02016A18
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02231B48: .word 0x000080F8
+
+ thumb_func_start MOD12_02231B4C
+MOD12_02231B4C: ; 0x02231B4C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r0, #0
+ str r3, [r7, #0xc]
+ ldr r0, [r7, #4]
+ str r2, [sp, #8]
+ ldr r0, [r0, #0x24]
+ str r1, [sp, #4]
+ str r0, [sp, #0xc]
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldrsb r2, [r7, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r2, r0
+ bne _02231B76
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ b _02231B80
+_02231B76:
+ mov r0, #0x30
+ ldr r1, _02231C70 ; =0x02245074
+ mul r0, r2
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+_02231B80:
+ ldr r0, [sp, #4]
+ mov r1, #0x30
+ ldr r2, _02231C70 ; =0x02245074
+ mul r1, r0
+ add r0, r2, r1
+ str r0, [sp, #0x14]
+ mov r4, #0
+ add r5, r0, #0
+_02231B90:
+ ldrh r1, [r5, #0xc]
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _02231B90
+ mov r0, #2
+ lsl r0, r0, #8
+ str r0, [sp]
+ ldr r1, [sp, #0x14]
+ ldr r0, [r7, #4]
+ ldrh r1, [r1, #2]
+ ldr r0, [r0, #0x50]
+ mov r2, #1
+ lsl r1, r1, #2
+ add r1, r7, r1
+ ldr r1, [r1, #0x34]
+ mov r3, #0
+ bl FUN_02003054
+ ldr r6, [sp, #0x14]
+ ldr r4, [sp, #0x10]
+ mov r5, #0
+_02231BCA:
+ ldrh r2, [r6, #4]
+ ldr r0, _02231C74 ; =0x0000FFFF
+ cmp r2, r0
+ beq _02231C00
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ beq _02231BDE
+ ldrh r0, [r4, #4]
+ cmp r2, r0
+ beq _02231C00
+_02231BDE:
+ lsl r2, r2, #2
+ add r1, r5, #4
+ add r2, r7, r2
+ lsl r1, r1, #0x18
+ mov r3, #2
+ ldr r0, [sp, #0xc]
+ ldr r2, [r2, #0x20]
+ lsr r1, r1, #0x18
+ lsl r3, r3, #0xa
+ bl FUN_02017DFC
+ add r1, r5, #4
+ lsl r1, r1, #0x18
+ ldr r0, [sp, #0xc]
+ lsr r1, r1, #0x18
+ bl FUN_0201AC68
+_02231C00:
+ add r5, r5, #1
+ add r6, r6, #2
+ add r4, r4, #2
+ cmp r5, #4
+ blt _02231BCA
+ mov r1, #0x2e
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ strb r0, [r7, r1]
+ add r0, r7, #0
+ bl MOD12_02232638
+ ldr r0, [sp, #0x14]
+ ldr r3, [r0, #0x28]
+ cmp r3, #0
+ beq _02231C28
+ ldr r1, [sp, #4]
+ ldr r2, [sp, #8]
+ add r0, r7, #0
+ blx r3
+_02231C28:
+ ldr r0, [sp, #0x14]
+ ldrh r1, [r0]
+ ldr r0, _02231C74 ; =0x0000FFFF
+ cmp r1, r0
+ beq _02231C62
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ beq _02231C40
+ ldr r0, [sp, #0x10]
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _02231C62
+_02231C40:
+ mov r3, #0xb7
+ mov r0, #0x15
+ lsl r3, r3, #2
+ str r0, [sp]
+ mov r0, #0x2d
+ mov r2, #1
+ add r3, r7, r3
+ bl FUN_02006BB0
+ mov r1, #0xb6
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ ldr r0, _02231C78 ; =MOD12_0223336C
+ add r1, r7, #0
+ mov r2, #0xa
+ bl FUN_0200CA98
+_02231C62:
+ ldr r0, _02231C7C ; =MOD12_022333A8
+ add r1, r7, #0
+ mov r2, #0xa
+ bl FUN_0200CA98
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02231C70: .word 0x02245074
+_02231C74: .word 0x0000FFFF
+_02231C78: .word MOD12_0223336C
+_02231C7C: .word MOD12_022333A8
+
+ thumb_func_start MOD12_02231C80
+MOD12_02231C80: ; 0x02231C80
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldrsb r1, [r5, r0]
+ mov r6, #0
+ sub r0, r6, #1
+ cmp r1, r0
+ bne _02231C96
+ bl ErrorHandling
+_02231C96:
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldrsb r1, [r5, r0]
+ ldr r3, _02231D44 ; =0x02245074
+ mov r0, #0x30
+ add r2, r1, #0
+ mul r2, r0
+ add r4, r3, r2
+ ldr r1, [r4, #0x14]
+ cmp r1, #0
+ bne _02231CB0
+ sub r0, #0x31
+ pop {r3, r4, r5, r6, r7, pc}
+_02231CB0:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ bne _02231CBA
+ bl ErrorHandling
+_02231CBA:
+ ldr r0, [r4, #0x14]
+ bl FUN_02020988
+ add r7, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r7, r0
+ bne _02231CD4
+ add r0, r5, #0
+ bl MOD12_02232E18
+ add r7, r0, #0
+ add r6, r6, #1
+_02231CD4:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp]
+ cmp r7, r0
+ bne _02231CE2
+ mov r2, #0xff
+ b _02231CEE
+_02231CE2:
+ ldr r1, [r4, #0x18]
+ lsl r0, r7, #2
+ ldr r0, [r1, r0]
+ str r0, [sp]
+ ldr r0, [r4, #0x1c]
+ ldrb r2, [r0, r7]
+_02231CEE:
+ ldr r3, [r4, #0x2c]
+ cmp r3, #0
+ beq _02231D3E
+ ldr r1, [sp]
+ add r0, r5, #0
+ blx r3
+ mov r1, #0
+ mvn r1, r1
+ str r0, [sp]
+ cmp r0, r1
+ beq _02231D3E
+ ldr r2, [r4, #0x24]
+ cmp r2, #0
+ beq _02231D10
+ add r0, r5, #0
+ add r1, r7, #0
+ blx r2
+_02231D10:
+ mov r0, #0xc6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ mov r0, #0xc5
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl MOD12_0224493C
+ cmp r6, #0
+ ble _02231D36
+ mov r0, #0xc7
+ mov r1, #1
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ b _02231D3E
+_02231D36:
+ mov r0, #0xc7
+ mov r1, #0
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+_02231D3E:
+ ldr r0, [sp]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02231D44: .word 0x02245074
+
+ thumb_func_start MOD12_02231D48
+MOD12_02231D48: ; 0x02231D48
+ ldr r1, [r0, #0x10]
+ cmp r1, #0
+ bne _02231D58
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _02231D58
+ mov r0, #1
+ bx lr
+_02231D58:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD12_02231D5C
+MOD12_02231D5C: ; 0x02231D5C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ mov r2, #0x12
+ lsl r2, r2, #4
+ ldr r3, [r0]
+ add r1, r2, #1
+ ldrb r0, [r3, r2]
+ ldrb r1, [r3, r1]
+ ldr r3, [r5]
+ add r2, #0x51
+ ldrb r2, [r3, r2]
+ bl FUN_02083228
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ ldr r1, _02231E28 ; =0x0000011F
+ ldr r2, [r0]
+ ldrb r0, [r2, r1]
+ add r1, r1, #2
+ ldrb r1, [r2, r1]
+ bl FUN_020832A4
+ add r6, r0, #0
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ ldr r0, [r0, #0x38]
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ add r1, r6, #0
+ ldr r0, [r0, #0x38]
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r0, _02231E2C ; =0x00010200
+ add r1, r5, #0
+ str r0, [sp]
+ mov r3, #0
+ ldr r0, _02231E30 ; =0x000080F0
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x7f
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r1, #0x40
+ add r2, r4, #0
+ str r3, [sp, #0x18]
+ bl MOD12_022322C0
+ ldr r0, _02231E2C ; =0x00010200
+ add r1, r5, #0
+ str r0, [sp]
+ mov r3, #0
+ ldr r0, _02231E30 ; =0x000080F0
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x9f
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r1, #0x54
+ add r2, r6, #0
+ str r3, [sp, #0x18]
+ bl MOD12_022322C0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r2, [r5, #4]
+ mov r0, #1
+ str r0, [sp]
+ mov r1, #0x20
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ ldr r0, [r2]
+ add r1, #0xff
+ ldrb r0, [r0, r1]
+ mov r1, #0x2d
+ mov r3, #0x15
+ lsl r0, r0, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #0xc]
+ ldr r0, [r2, #0x50]
+ mov r2, #0x25
+ bl FUN_02003084
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02231E28: .word 0x0000011F
+_02231E2C: .word 0x00010200
+_02231E30: .word 0x000080F0
+
+ thumb_func_start MOD12_02231E34
+MOD12_02231E34: ; 0x02231E34
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r6, r0, #0
+ mov r0, #0x69
+ lsl r0, r0, #2
+ add r5, r6, r0
+ ldr r0, _022320A0 ; =0x000002E1
+ mov r1, #0xff
+ strb r1, [r6, r0]
+ add r0, r5, #0
+ str r0, [sp, #0x24]
+ add r0, #0x50
+ str r0, [sp, #0x24]
+ add r0, r5, #0
+ add r7, r6, #0
+ str r0, [sp, #0x28]
+ add r0, #0xa0
+ mov r4, #0
+ add r7, #0x40
+ str r0, [sp, #0x28]
+ b _02231F80
+_02231E5E:
+ ldr r0, [r6, #4]
+ ldr r1, _022320A4 ; =0x00000123
+ ldr r0, [r0]
+ mov r2, #0
+ ldrb r1, [r0, r1]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ add r1, r4, #0
+ add r1, #0x36
+ bl FUN_020671BC
+ lsl r1, r4, #1
+ add r2, sp, #0x3c
+ strh r0, [r2, r1]
+ add r0, r2, #0
+ ldrh r0, [r0, r1]
+ cmp r0, #0
+ beq _02231E8C
+ mov r0, #0x4b
+ add r2, r5, r4
+ lsl r0, r0, #2
+ ldrb r2, [r2, r0]
+ b _02231E8E
+_02231E8C:
+ mov r2, #0
+_02231E8E:
+ add r0, sp, #0x34
+ strh r2, [r0, r1]
+ ldr r0, _022320A8 ; =0x00010708
+ ldr r1, _022320AC ; =0x02244D94
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _022320B0 ; =0x000080F0
+ mov r2, #0
+ str r0, [sp, #8]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ mov r3, #2
+ str r1, [sp, #0xc]
+ ldr r1, _022320AC ; =0x02244D94
+ add r0, r1, r0
+ ldrh r0, [r0, #2]
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ mov r0, #0x14
+ mul r1, r0
+ add r0, r5, r1
+ str r0, [sp, #0x18]
+ add r0, r6, #0
+ add r1, r7, r1
+ bl MOD12_022322C0
+ ldr r0, _022320B4 ; =0x00010200
+ ldr r1, _022320B8 ; =0x02244E30
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _022320B0 ; =0x000080F0
+ add r2, r4, #4
+ str r0, [sp, #8]
+ lsl r0, r4, #3
+ ldrh r1, [r1, r0]
+ str r1, [sp, #0xc]
+ ldr r1, _022320B8 ; =0x02244E30
+ add r0, r1, r0
+ ldrh r0, [r0, #2]
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ mov r0, #0x14
+ mul r1, r0
+ ldr r0, [sp, #0x24]
+ add r0, r0, r1
+ mov r1, #0x14
+ mul r1, r2
+ mov r2, #0
+ str r0, [sp, #0x18]
+ add r0, r6, #0
+ add r1, r7, r1
+ add r3, r2, #0
+ bl MOD12_022322C0
+ ldr r0, _022320B4 ; =0x00010200
+ add r2, r4, #0
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _022320B0 ; =0x000080F0
+ lsl r1, r4, #3
+ str r0, [sp, #8]
+ ldr r0, _022320B8 ; =0x02244E30
+ add r2, #8
+ add r1, r0, r1
+ ldrh r0, [r1, #4]
+ str r0, [sp, #0xc]
+ ldrh r0, [r1, #6]
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ mov r0, #0x14
+ mul r1, r0
+ ldr r0, [sp, #0x28]
+ add r0, r0, r1
+ mov r1, #0x14
+ mul r1, r2
+ mov r2, #0
+ str r0, [sp, #0x18]
+ add r0, r6, #0
+ add r1, r7, r1
+ add r3, r2, #0
+ bl MOD12_022322C0
+ lsl r1, r4, #1
+ add r0, sp, #0x3c
+ ldrh r0, [r0, r1]
+ cmp r0, #0
+ bne _02231F7E
+ mov r0, #0x14
+ mul r0, r4
+ add r0, r6, r0
+ ldr r0, [r0, #0x40]
+ mov r1, #0
+ bl FUN_020119D0
+ add r1, r4, #4
+ mov r0, #0x14
+ mul r0, r1
+ add r0, r6, r0
+ ldr r0, [r0, #0x40]
+ mov r1, #0
+ bl FUN_020119D0
+ add r1, r4, #0
+ add r1, #8
+ mov r0, #0x14
+ mul r0, r1
+ add r0, r6, r0
+ ldr r0, [r0, #0x40]
+ mov r1, #0
+ bl FUN_020119D0
+_02231F7E:
+ add r4, r4, #1
+_02231F80:
+ cmp r4, #4
+ bge _02231F86
+ b _02231E5E
+_02231F86:
+ mov r4, #0
+ add r7, sp, #0x3c
+ b _02231FB4
+_02231F8C:
+ lsl r0, r4, #1
+ ldrh r0, [r7, r0]
+ cmp r0, #0
+ beq _02231FA6
+ mov r0, #0x13
+ add r1, r5, r4
+ lsl r0, r0, #4
+ ldrb r1, [r1, r0]
+ add r0, r6, #0
+ add r2, r4, #0
+ bl MOD12_022325AC
+ b _02231FB2
+_02231FA6:
+ mov r1, #0
+ add r0, r6, #0
+ mvn r1, r1
+ add r2, r4, #0
+ bl MOD12_022325AC
+_02231FB2:
+ add r4, r4, #1
+_02231FB4:
+ cmp r4, #4
+ blt _02231F8C
+ mov r4, #0
+ mov r7, #0x20
+ add r5, sp, #0x3c
+ b _02232006
+_02231FC0:
+ lsl r0, r4, #1
+ ldrh r2, [r5, r0]
+ cmp r2, #0
+ beq _02232004
+ ldr r1, [r6, #4]
+ ldr r0, [r6, #8]
+ ldr r3, [r1]
+ ldr r1, _022320A4 ; =0x00000123
+ ldrb r1, [r3, r1]
+ bl MOD12_02235BEC
+ cmp r0, #0
+ bne _02232004
+ str r7, [sp]
+ ldr r0, [r6, #4]
+ mov r1, #1
+ add r3, r4, #4
+ lsl r3, r3, #0x14
+ ldr r2, [r6, #0x38]
+ lsl r1, r1, #8
+ add r1, r2, r1
+ ldr r0, [r0, #0x50]
+ mov r2, #1
+ lsr r3, r3, #0x10
+ bl FUN_02003054
+ ldr r0, _022320A0 ; =0x000002E1
+ ldrb r0, [r6, r0]
+ cmp r0, #0xff
+ beq _02232000
+ bl ErrorHandling
+_02232000:
+ ldr r0, _022320A0 ; =0x000002E1
+ strb r4, [r6, r0]
+_02232004:
+ add r4, r4, #1
+_02232006:
+ cmp r4, #4
+ blt _02231FC0
+ add r0, r6, #0
+ add r1, sp, #0x3c
+ bl MOD12_02232470
+ mov r4, #0
+ b _02232096
+_02232016:
+ lsl r1, r4, #1
+ add r0, sp, #0x3c
+ ldrh r0, [r0, r1]
+ cmp r0, #0
+ beq _02232094
+ add r0, sp, #0x34
+ ldrh r0, [r0, r1]
+ bl FUN_02083114
+ str r0, [sp, #0x20]
+ cmp r0, #0
+ bge _02232030
+ neg r0, r0
+_02232030:
+ mov r1, #0xa
+ bl _s32_div_f
+ str r0, [sp, #0x1c]
+ cmp r0, #6
+ ble _02232040
+ bl ErrorHandling
+_02232040:
+ mov r0, #0x18
+ mul r0, r4
+ add r7, r6, r0
+ lsl r0, r4, #3
+ ldr r1, _022320BC ; =0x02244E50
+ str r0, [sp, #0x2c]
+ add r0, r1, r0
+ mov r5, #0
+ str r0, [sp, #0x30]
+ b _0223208E
+_02232054:
+ lsl r0, r5, #2
+ add r1, r7, r0
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02232066
+ bl ErrorHandling
+_02232066:
+ ldr r0, [sp, #0x20]
+ ldr r3, _022320BC ; =0x02244E50
+ str r0, [sp]
+ ldr r2, [sp, #0x2c]
+ ldr r1, [r6, #4]
+ ldr r3, [r3, r2]
+ lsl r2, r5, #3
+ add r2, r3, r2
+ ldr r3, [sp, #0x30]
+ ldr r0, [r1, #0x18]
+ ldr r1, [r1, #0x1c]
+ ldr r3, [r3, #4]
+ bl MOD12_022334F4
+ lsl r1, r5, #2
+ add r2, r7, r1
+ mov r1, #0x51
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ add r5, r5, #1
+_0223208E:
+ ldr r0, [sp, #0x1c]
+ cmp r5, r0
+ blt _02232054
+_02232094:
+ add r4, r4, #1
+_02232096:
+ cmp r4, #4
+ blt _02232016
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022320A0: .word 0x000002E1
+_022320A4: .word 0x00000123
+_022320A8: .word 0x00010708
+_022320AC: .word 0x02244D94
+_022320B0: .word 0x000080F0
+_022320B4: .word 0x00010200
+_022320B8: .word 0x02244E30
+_022320BC: .word 0x02244E50
+
+ thumb_func_start MOD12_022320C0
+MOD12_022320C0: ; 0x022320C0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ mov r0, #0x69
+ lsl r0, r0, #2
+ add r6, r5, r0
+ add r7, r5, #0
+ mov r4, #0
+ add r6, #0xf0
+ add r7, #0x40
+ b _0223210E
+_022320D6:
+ ldr r0, _0223216C ; =0x0001090A
+ ldr r1, _02232170 ; =0x02244D78
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _02232174 ; =0x000080F0
+ mov r2, #0
+ str r0, [sp, #8]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ mov r3, #2
+ str r1, [sp, #0xc]
+ ldr r1, _02232170 ; =0x02244D78
+ add r0, r1, r0
+ ldrh r0, [r0, #2]
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0x14
+ mul r1, r0
+ add r0, r6, r1
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r7, r1
+ bl MOD12_022322C0
+ add r4, r4, #1
+_0223210E:
+ cmp r4, #3
+ blt _022320D6
+ ldr r0, [r5, #4]
+ mov r1, #0x35
+ ldr r0, [r0, #0x38]
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r0, _0223216C ; =0x0001090A
+ ldr r1, _02232174 ; =0x000080F0
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0x80
+ str r1, [sp, #0xc]
+ mov r1, #0xa4
+ str r1, [sp, #0x10]
+ mov r1, #1
+ str r1, [sp, #0x14]
+ add r2, r5, #0
+ mov r1, #0x14
+ str r0, [sp, #0x18]
+ add r2, #0x40
+ mul r1, r4
+ add r1, r2, r1
+ add r0, r5, #0
+ add r2, r6, #0
+ mov r3, #2
+ bl MOD12_022322C0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r2, [r5, #4]
+ ldr r0, [r2, #0x18]
+ ldr r1, [r2, #0x1c]
+ ldr r3, [r2]
+ ldr r2, _02232178 ; =0x0000011E
+ ldrb r2, [r3, r2]
+ bl MOD12_02233448
+ mov r1, #5
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223216C: .word 0x0001090A
+_02232170: .word 0x02244D78
+_02232174: .word 0x000080F0
+_02232178: .word 0x0000011E
+
+ thumb_func_start MOD12_0223217C
+MOD12_0223217C: ; 0x0223217C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #1
+ str r2, [sp]
+ cmp r0, #4
+ bhi _022321A0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02232196: ; jump table
+ .short _022321A0 - _02232196 - 2 ; case 0
+ .short _022321A6 - _02232196 - 2 ; case 1
+ .short _022321A6 - _02232196 - 2 ; case 2
+ .short _022321A6 - _02232196 - 2 ; case 3
+ .short _022321A6 - _02232196 - 2 ; case 4
+_022321A0:
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_022321A6:
+ ldr r0, [r4, #4]
+ mov r2, #0
+ ldr r1, [r0]
+ ldr r0, _02232208 ; =0x00000123
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r1, r5, #0
+ add r1, #0x36
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022321C8
+ ldr r0, _0223220C ; =0x000002E1
+ ldrb r0, [r4, r0]
+ cmp r0, r5
+ bne _022321CE
+_022321C8:
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_022321CE:
+ mov r0, #6
+ ldr r1, _02232210 ; =0x02244E00
+ mul r0, r5
+ add r7, r1, r0
+ ldr r1, _02232214 ; =0x02244EA4
+ lsl r0, r5, #4
+ add r6, r1, r0
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD12_02232AB8
+ ldr r0, _02232218 ; =MOD12_022327E0
+ add r1, r4, #0
+ bl MOD12_02232654
+ mov r1, #0xbd
+ lsl r1, r1, #2
+ str r7, [r4, r1]
+ add r0, r1, #4
+ str r6, [r4, r0]
+ add r0, r1, #0
+ mov r2, #2
+ add r0, #0xc
+ strb r2, [r4, r0]
+ add r1, #8
+ str r5, [r4, r1]
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232208: .word 0x00000123
+_0223220C: .word 0x000002E1
+_02232210: .word 0x02244E00
+_02232214: .word 0x02244EA4
+_02232218: .word MOD12_022327E0
+
+ thumb_func_start MOD12_0223221C
+MOD12_0223221C: ; 0x0223221C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #1
+ cmp r0, #4
+ bhi _0223223E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02232234: ; jump table
+ .short _0223223E - _02232234 - 2 ; case 0
+ .short _02232242 - _02232234 - 2 ; case 1
+ .short _02232246 - _02232234 - 2 ; case 2
+ .short _0223224A - _02232234 - 2 ; case 3
+ .short _0223224E - _02232234 - 2 ; case 4
+_0223223E:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02232242:
+ mov r6, #0
+ b _02232250
+_02232246:
+ mov r6, #1
+ b _02232250
+_0223224A:
+ mov r6, #2
+ b _02232250
+_0223224E:
+ mov r6, #3
+_02232250:
+ ldr r0, [r4, #4]
+ ldr r1, [r0]
+ ldr r0, _022322B0 ; =0x0000011E
+ ldrb r0, [r1, r0]
+ cmp r5, r0
+ bne _02232260
+ mov r7, #1
+ b _02232262
+_02232260:
+ mov r7, #0
+_02232262:
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD12_02232AB8
+ ldr r0, _022322B4 ; =MOD12_022326A4
+ add r1, r4, #0
+ bl MOD12_02232654
+ mov r0, #6
+ ldr r1, _022322B8 ; =0x02244E18
+ mul r0, r5
+ add r0, r1, r0
+ mov r1, #0xbd
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r2, _022322BC ; =0x02244EE4
+ lsl r0, r5, #4
+ add r2, r2, r0
+ add r0, r1, #4
+ str r2, [r4, r0]
+ mov r2, #3
+ lsl r0, r2, #8
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #8
+ str r5, [r4, r0]
+ add r0, r1, #0
+ add r0, #0xd
+ strb r6, [r4, r0]
+ cmp r7, #1
+ bne _022322AA
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ sub r1, #0xc
+ str r0, [r4, r1]
+_022322AA:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022322B0: .word 0x0000011E
+_022322B4: .word MOD12_022326A4
+_022322B8: .word 0x02244E18
+_022322BC: .word 0x02244EE4
+
+ thumb_func_start MOD12_022322C0
+MOD12_022322C0: ; 0x022322C0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x7c
+ add r5, r1, #0
+ add r7, r0, #0
+ ldr r0, [r5]
+ str r2, [sp, #0x18]
+ str r3, [sp, #0x1c]
+ ldr r6, [sp, #0x9c]
+ ldr r4, [sp, #0xa8]
+ cmp r0, #0
+ beq _022322DA
+ bl ErrorHandling
+_022322DA:
+ ldr r1, [r7, #4]
+ cmp r4, #0
+ ldr r0, [r1, #0x24]
+ str r0, [sp, #0x24]
+ ldr r0, [r1, #0x1c]
+ str r0, [sp, #0x20]
+ bne _022322F6
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ add r2, sp, #0x2c
+ add r3, sp, #0x28
+ bl MOD12_02232DE8
+ b _022322FE
+_022322F6:
+ ldrh r0, [r4, #0x12]
+ str r0, [sp, #0x2c]
+ ldrh r0, [r4, #0x10]
+ str r0, [sp, #0x28]
+_022322FE:
+ cmp r4, #0
+ bne _0223233C
+ add r0, sp, #0x3c
+ bl FUN_0201901C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ lsl r2, r2, #0x18
+ add r1, sp, #0x3c
+ lsr r2, r2, #0x18
+ mov r3, #2
+ bl FUN_020190EC
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x90]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ ldr r2, [sp, #0x18]
+ add r0, sp, #0x3c
+ str r3, [sp, #0x14]
+ bl FUN_0201BE3C
+ b _02232348
+_0223233C:
+ add r3, r4, #0
+ add r2, sp, #0x3c
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+_02232348:
+ add r0, sp, #0x3c
+ mov r1, #2
+ mov r2, #0x15
+ bl FUN_02011898
+ mov r1, #1
+ mov r2, #2
+ add r3, sp, #0x30
+ bl FUN_0201D568
+ ldr r0, [sp, #0xa4]
+ cmp r0, #1
+ bne _0223236C
+ ldr r1, [sp, #0x2c]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ sub r6, r6, r0
+_0223236C:
+ ldr r0, [r7, #0x3c]
+ str r0, [sp, #0x4c]
+ add r0, sp, #0x3c
+ str r0, [sp, #0x50]
+ ldr r0, [sp, #0x20]
+ bl FUN_0200CA40
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x98]
+ bl FUN_0200C334
+ str r0, [sp, #0x58]
+ mov r0, #0
+ ldr r1, [sp, #0x34]
+ str r0, [sp, #0x5c]
+ str r0, [sp, #0x6c]
+ mov r0, #0x64
+ str r1, [sp, #0x60]
+ mov r1, #0x42
+ str r0, [sp, #0x70]
+ mov r0, #2
+ str r0, [sp, #0x74]
+ mov r0, #0x15
+ str r0, [sp, #0x78]
+ ldr r2, [sp, #0xa0]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ add r0, sp, #0x4c
+ str r6, [sp, #0x64]
+ str r1, [sp, #0x68]
+ bl FUN_020117E8
+ ldr r1, [sp, #0x94]
+ add r7, r0, #0
+ bl FUN_02011AC0
+ mov r2, #0x42
+ ldr r3, [sp, #0xa0]
+ lsl r2, r2, #2
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r3, r2
+ bl FUN_020118C4
+ cmp r4, #0
+ bne _022323D0
+ add r0, sp, #0x3c
+ bl FUN_02019178
+_022323D0:
+ str r7, [r5]
+ add r3, sp, #0x30
+ ldmia r3!, {r0, r1}
+ add r2, r5, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [sp, #0x2c]
+ strh r0, [r5, #0x10]
+ add sp, #0x7c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022323E8
+MOD12_022323E8: ; 0x022323E8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r6, #0
+ add r4, r5, #0
+ add r4, #0x44
+ add r7, r6, #0
+_022323F4:
+ ldr r0, [r5, #0x40]
+ cmp r0, #0
+ beq _02232406
+ bl FUN_02011870
+ add r0, r4, #0
+ bl FUN_0201D5E8
+ str r7, [r5, #0x40]
+_02232406:
+ add r6, r6, #1
+ add r5, #0x14
+ add r4, #0x14
+ cmp r6, #0xc
+ blt _022323F4
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02232414
+MOD12_02232414: ; 0x02232414
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0223242E
+ bl MOD12_0223349C
+ mov r0, #5
+ mov r1, #0
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+_0223242E:
+ pop {r4, pc}
+
+ thumb_func_start MOD12_02232430
+MOD12_02232430: ; 0x02232430
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ mov r0, #0
+ mov r7, #0x51
+ str r0, [sp, #4]
+ add r6, r0, #0
+ lsl r7, r7, #2
+_02232440:
+ ldr r5, [sp]
+ mov r4, #0
+_02232444:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _02232454
+ bl MOD12_02233534
+ mov r0, #0x51
+ lsl r0, r0, #2
+ str r6, [r5, r0]
+_02232454:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02232444
+ ldr r0, [sp]
+ add r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #4
+ blt _02232440
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD12_02232470
+MOD12_02232470: ; 0x02232470
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r5, r0, #0
+ add r7, r1, #0
+ ldr r1, [r5, #4]
+ ldr r4, _02232504 ; =0x02244E70
+ ldr r0, [r1, #0x18]
+ add r3, sp, #8
+ str r0, [sp, #4]
+ ldr r0, [r1, #0x1c]
+ mov r2, #6
+ str r0, [sp]
+_02232488:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02232488
+ ldr r0, [r4]
+ mov r4, #0
+ str r0, [r3]
+ add r6, sp, #8
+ b _022324FC
+_0223249A:
+ lsl r0, r4, #2
+ add r1, r5, r0
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022324AC
+ bl ErrorHandling
+_022324AC:
+ lsl r0, r4, #1
+ ldrh r0, [r7, r0]
+ cmp r0, #0
+ beq _022324FA
+ mov r0, #0xb5
+ add r1, r5, r4
+ lsl r0, r0, #2
+ ldrb r2, [r1, r0]
+ ldr r0, _02232508 ; =0x000080F6
+ ldr r1, _0223250C ; =0x02244DB4
+ add r0, r4, r0
+ str r0, [sp, #0x1c]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ add r3, sp, #8
+ strh r1, [r6]
+ ldr r1, _0223250C ; =0x02244DB4
+ add r0, r1, r0
+ ldrh r0, [r0, #2]
+ ldr r1, [sp]
+ strh r0, [r6, #2]
+ ldr r0, [sp, #4]
+ bl MOD12_02240E98
+ lsl r1, r4, #2
+ mov r2, #0x13
+ mov r3, #0x11
+ add r1, r5, r1
+ lsl r2, r2, #4
+ str r0, [r1, r2]
+ add r0, r2, #0
+ ldr r0, [r1, r0]
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r6, r2]
+ lsl r3, r3, #0x10
+ bl FUN_0200C750
+_022324FA:
+ add r4, r4, #1
+_022324FC:
+ cmp r4, #4
+ blt _0223249A
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232504: .word 0x02244E70
+_02232508: .word 0x000080F6
+_0223250C: .word 0x02244DB4
+
+ thumb_func_start MOD12_02232510
+MOD12_02232510: ; 0x02232510
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ mov r7, #0x13
+ add r5, r0, #0
+ add r6, r4, #0
+ lsl r7, r7, #4
+_0223251C:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _0223252C
+ bl MOD12_02240EC8
+ mov r0, #0x13
+ lsl r0, r0, #4
+ str r6, [r5, r0]
+_0223252C:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0223251C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02232538
+MOD12_02232538: ; 0x02232538
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ add r6, r1, #0
+ ldr r0, [r0, #0x24]
+ add r7, r3, #0
+ mov r1, #4
+ add r4, r2, #0
+ str r0, [sp, #4]
+ bl FUN_0201886C
+ mov ip, r0
+ lsl r0, r7, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x20]
+ ldr r7, [r4]
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ lsl r0, r0, #1
+ ldrsh r1, [r6, r0]
+ ldr r0, [r4, #4]
+ cmp r7, r0
+ bgt _0223259E
+ lsl r6, r7, #5
+_0223256A:
+ lsl r2, r6, #1
+ mov r0, ip
+ add r5, r0, r2
+ ldr r0, [sp]
+ ldr r3, [r4, #0xc]
+ add r2, r0, r2
+ ldr r0, [r4, #8]
+ cmp r0, r3
+ bgt _02232594
+ lsl r3, r0, #1
+ add r2, r2, r3
+ add r3, r5, r3
+_02232582:
+ ldrh r5, [r2]
+ add r0, r0, #1
+ add r2, r2, #2
+ add r5, r1, r5
+ strh r5, [r3]
+ ldr r5, [r4, #0xc]
+ add r3, r3, #2
+ cmp r0, r5
+ ble _02232582
+_02232594:
+ ldr r0, [r4, #4]
+ add r7, r7, #1
+ add r6, #0x20
+ cmp r7, r0
+ ble _0223256A
+_0223259E:
+ ldr r0, [sp, #4]
+ mov r1, #4
+ bl FUN_0201AC68
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022325AC
+MOD12_022325AC: ; 0x022325AC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ ldr r6, _02232624 ; =0x02244DD8
+ add r5, r2, #0
+ add r4, r0, #0
+ add r3, r1, #0
+ add r2, sp, #4
+ ldmia r6!, {r0, r1}
+ add r7, r2, #0
+ stmia r2!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r2]
+ mov r0, #0
+ mvn r0, r0
+ cmp r3, r0
+ beq _022325EC
+ mov r0, #0x20
+ str r0, [sp]
+ lsl r1, r3, #2
+ ldr r0, [r4, #4]
+ add r3, r5, #4
+ lsl r3, r3, #0x14
+ ldr r0, [r0, #0x50]
+ ldr r1, [r7, r1]
+ mov r2, #1
+ lsr r3, r3, #0x10
+ bl FUN_02003054
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_022325EC:
+ ldr r2, _02232628 ; =0x02244D64
+ lsl r1, r5, #1
+ mov r0, #0
+ add r1, r2, r1
+ str r0, [sp]
+ ldr r3, _0223262C ; =0x02244F24
+ lsl r2, r5, #4
+ add r2, r3, r2
+ add r0, r4, #0
+ mov r3, #2
+ bl MOD12_02232538
+ mov r2, #0x20
+ str r2, [sp]
+ ldr r0, [r4, #4]
+ add r3, r5, #4
+ lsl r3, r3, #0x14
+ ldr r1, [r4, #0x38]
+ add r2, #0xe0
+ add r1, r1, r2
+ ldr r0, [r0, #0x50]
+ mov r2, #1
+ lsr r3, r3, #0x10
+ bl FUN_02003054
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232624: .word 0x02244DD8
+_02232628: .word 0x02244D64
+_0223262C: .word 0x02244F24
+
+ thumb_func_start MOD12_02232630
+MOD12_02232630: ; 0x02232630
+ ldr r3, _02232634 ; =MOD12_02232638
+ bx r3
+ .align 2, 0
+_02232634: .word MOD12_02232638
+
+ thumb_func_start MOD12_02232638
+MOD12_02232638: ; 0x02232638
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD12_02232414
+ add r0, r4, #0
+ bl MOD12_02232430
+ add r0, r4, #0
+ bl MOD12_02232510
+ add r0, r4, #0
+ bl MOD12_022323E8
+ pop {r4, pc}
+
+ thumb_func_start MOD12_02232654
+MOD12_02232654: ; 0x02232654
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _02232664
+ bl ErrorHandling
+_02232664:
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #0x20
+ bl MI_CpuFill8
+ ldr r2, _02232680 ; =0x00000514
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02232680: .word 0x00000514
+
+ thumb_func_start MOD12_02232684
+MOD12_02232684: ; 0x02232684
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _022326A2
+ bl FUN_0200CAB4
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #0x20
+ str r1, [r4, #0x10]
+ bl MI_CpuFill8
+_022326A2:
+ pop {r4, pc}
+
+ thumb_func_start MOD12_022326A4
+MOD12_022326A4: ; 0x022326A4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ mov r3, #0xb9
+ add r5, r1, #0
+ lsl r3, r3, #2
+ ldrsh r0, [r5, r3]
+ cmp r0, #0
+ beq _022326BE
+ cmp r0, #1
+ beq _02232730
+ cmp r0, #2
+ beq _0223274C
+ b _022327BC
+_022326BE:
+ mov r0, #2
+ str r0, [sp]
+ add r1, r3, #0
+ add r2, r3, #0
+ add r3, #0x1c
+ add r1, #0x10
+ add r2, #0x14
+ ldrb r3, [r5, r3]
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ add r0, r5, #0
+ bl MOD12_02232538
+ ldr r0, _022327DC ; =0x00000301
+ add r2, sp, #4
+ ldrb r1, [r5, r0]
+ mov r0, #0x14
+ mul r0, r1
+ add r0, r5, r0
+ ldr r0, [r0, #0x40]
+ add r1, sp, #8
+ bl FUN_020119A4
+ ldr r0, _022327DC ; =0x00000301
+ ldr r2, [sp, #4]
+ ldrb r1, [r5, r0]
+ mov r0, #0x14
+ sub r2, r2, #2
+ mul r0, r1
+ add r0, r5, r0
+ ldr r0, [r0, #0x40]
+ ldr r1, [sp, #8]
+ bl FUN_020118C4
+ mov r7, #0xba
+ mov r6, #0
+ add r4, r5, #0
+ lsl r7, r7, #2
+_0223270A:
+ ldr r0, [r4, r7]
+ cmp r0, #0
+ beq _0223271A
+ mov r1, #0
+ ldr r0, [r0]
+ sub r2, r1, #2
+ bl FUN_0200C7FC
+_0223271A:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #3
+ blt _0223270A
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ ldrsh r1, [r5, r0]
+ add sp, #0xc
+ add r1, r1, #1
+ strh r1, [r5, r0]
+ pop {r4, r5, r6, r7, pc}
+_02232730:
+ add r0, r3, #2
+ ldrsh r0, [r5, r0]
+ add r1, r0, #1
+ add r0, r3, #2
+ strh r1, [r5, r0]
+ ldrsh r0, [r5, r0]
+ cmp r0, #0
+ ble _022327D8
+ mov r1, #0
+ add r0, r3, #2
+ strh r1, [r5, r0]
+ ldrsh r0, [r5, r3]
+ add r0, r0, #1
+ strh r0, [r5, r3]
+_0223274C:
+ mov r0, #1
+ mov r3, #0xbd
+ str r0, [sp]
+ lsl r3, r3, #2
+ add r2, r3, #4
+ ldr r1, [r5, r3]
+ add r3, #0xc
+ ldrb r3, [r5, r3]
+ ldr r2, [r5, r2]
+ add r0, r5, #0
+ bl MOD12_02232538
+ ldr r0, _022327DC ; =0x00000301
+ add r2, sp, #4
+ ldrb r1, [r5, r0]
+ mov r0, #0x14
+ mul r0, r1
+ add r0, r5, r0
+ ldr r0, [r0, #0x40]
+ add r1, sp, #8
+ bl FUN_020119A4
+ ldr r0, _022327DC ; =0x00000301
+ ldr r2, [sp, #4]
+ ldrb r1, [r5, r0]
+ mov r0, #0x14
+ add r2, r2, #1
+ mul r0, r1
+ add r0, r5, r0
+ ldr r0, [r0, #0x40]
+ ldr r1, [sp, #8]
+ bl FUN_020118C4
+ mov r7, #0xba
+ mov r6, #0
+ add r4, r5, #0
+ lsl r7, r7, #2
+_02232796:
+ ldr r0, [r4, r7]
+ cmp r0, #0
+ beq _022327A6
+ ldr r0, [r0]
+ mov r1, #0
+ mov r2, #1
+ bl FUN_0200C7FC
+_022327A6:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #3
+ blt _02232796
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ ldrsh r1, [r5, r0]
+ add sp, #0xc
+ add r1, r1, #1
+ strh r1, [r5, r0]
+ pop {r4, r5, r6, r7, pc}
+_022327BC:
+ add r0, r3, #2
+ ldrsh r0, [r5, r0]
+ add r1, r0, #1
+ add r0, r3, #2
+ strh r1, [r5, r0]
+ ldrsh r0, [r5, r0]
+ cmp r0, #0
+ ble _022327D8
+ add r0, r5, #0
+ bl MOD12_02232630
+ add r0, r5, #0
+ bl MOD12_02232684
+_022327D8:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022327DC: .word 0x00000301
+
+ thumb_func_start MOD12_022327E0
+MOD12_022327E0: ; 0x022327E0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ ldr r7, _02232A64 ; =0x00000123
+ add r4, r1, #0
+ mov r6, #0
+ add r5, sp, #0x20
+_022327EC:
+ ldr r0, [r4, #4]
+ mov r2, #0
+ ldr r0, [r0]
+ ldrb r1, [r0, r7]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ add r1, r6, #0
+ add r1, #0x36
+ bl FUN_020671BC
+ strh r0, [r5]
+ add r6, r6, #1
+ add r5, r5, #2
+ cmp r6, #4
+ blt _022327EC
+ mov r0, #0xbf
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #3
+ bhi _02232870
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02232820: ; jump table
+ .short _02232828 - _02232820 - 2 ; case 0
+ .short _0223283A - _02232820 - 2 ; case 1
+ .short _0223284C - _02232820 - 2 ; case 2
+ .short _0223285E - _02232820 - 2 ; case 3
+_02232828:
+ mov r0, #8
+ str r0, [sp, #0xc]
+ add r0, sp, #0x20
+ ldrh r0, [r0]
+ mov r5, #0
+ mov r6, #4
+ str r0, [sp, #8]
+ str r5, [sp, #4]
+ b _02232878
+_0223283A:
+ mov r0, #9
+ str r0, [sp, #0xc]
+ add r0, sp, #0x20
+ ldrh r0, [r0, #2]
+ mov r5, #1
+ mov r6, #5
+ str r0, [sp, #8]
+ str r5, [sp, #4]
+ b _02232878
+_0223284C:
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ add r0, sp, #0x20
+ ldrh r0, [r0, #4]
+ mov r5, #2
+ mov r6, #6
+ str r0, [sp, #8]
+ str r5, [sp, #4]
+ b _02232878
+_0223285E:
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ add r0, sp, #0x20
+ ldrh r0, [r0, #6]
+ mov r5, #3
+ mov r6, #7
+ str r0, [sp, #8]
+ str r5, [sp, #4]
+ b _02232878
+_02232870:
+ mov r5, #0
+ add r6, r5, #0
+ str r5, [sp, #0xc]
+ str r5, [sp, #8]
+_02232878:
+ mov r3, #0xb9
+ lsl r3, r3, #2
+ ldrsh r0, [r4, r3]
+ cmp r0, #0
+ beq _0223288C
+ cmp r0, #1
+ beq _0223295A
+ cmp r0, #2
+ beq _02232976
+ b _02232A42
+_0223288C:
+ mov r0, #2
+ str r0, [sp]
+ add r1, r3, #0
+ add r2, r3, #0
+ add r3, #0x1c
+ add r1, #0x10
+ add r2, #0x14
+ ldrb r3, [r4, r3]
+ ldr r1, [r4, r1]
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD12_02232538
+ add r7, r4, #0
+ mov r0, #0x14
+ mul r0, r5
+ add r7, #0x40
+ str r0, [sp, #0x10]
+ ldr r0, [r7, r0]
+ add r1, sp, #0x2c
+ add r2, sp, #0x28
+ bl FUN_020119A4
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x28]
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #0x2c]
+ sub r2, r2, #2
+ bl FUN_020118C4
+ add r7, r4, #0
+ mov r0, #0x14
+ mul r0, r6
+ add r7, #0x40
+ str r0, [sp, #0x14]
+ ldr r0, [r7, r0]
+ add r1, sp, #0x2c
+ add r2, sp, #0x28
+ bl FUN_020119A4
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x28]
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #0x2c]
+ sub r2, r2, #2
+ bl FUN_020118C4
+ ldr r0, [sp, #0xc]
+ add r6, r4, #0
+ mov r1, #0x14
+ add r7, r0, #0
+ mul r7, r1
+ add r6, #0x40
+ ldr r0, [r6, r7]
+ add r1, sp, #0x2c
+ add r2, sp, #0x28
+ bl FUN_020119A4
+ ldr r2, [sp, #0x28]
+ ldr r0, [r6, r7]
+ ldr r1, [sp, #0x2c]
+ sub r2, r2, #2
+ bl FUN_020118C4
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _0223294C
+ lsl r0, r5, #2
+ add r1, r4, r0
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #0
+ ldr r0, [r0]
+ sub r2, r1, #2
+ bl FUN_0200C7FC
+ mov r7, #0x51
+ ldr r0, [sp, #4]
+ mov r1, #0x18
+ mul r1, r0
+ mov r6, #0
+ add r5, r4, r1
+ lsl r7, r7, #2
+_02232934:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _02232944
+ mov r1, #0
+ ldr r0, [r0]
+ sub r2, r1, #2
+ bl FUN_0200C7FC
+_02232944:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #6
+ blt _02232934
+_0223294C:
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ ldrsh r1, [r4, r0]
+ add sp, #0x30
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223295A:
+ add r0, r3, #2
+ ldrsh r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _02232A5E
+ mov r1, #0
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r3]
+ add r0, r0, #1
+ strh r0, [r4, r3]
+_02232976:
+ mov r0, #1
+ mov r3, #0xbd
+ str r0, [sp]
+ lsl r3, r3, #2
+ add r2, r3, #4
+ ldr r1, [r4, r3]
+ add r3, #0xc
+ ldrb r3, [r4, r3]
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD12_02232538
+ add r7, r4, #0
+ mov r0, #0x14
+ mul r0, r5
+ add r7, #0x40
+ str r0, [sp, #0x18]
+ ldr r0, [r7, r0]
+ add r1, sp, #0x2c
+ add r2, sp, #0x28
+ bl FUN_020119A4
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x28]
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #0x2c]
+ add r2, r2, #1
+ bl FUN_020118C4
+ add r7, r4, #0
+ mov r0, #0x14
+ mul r0, r6
+ add r7, #0x40
+ str r0, [sp, #0x1c]
+ ldr r0, [r7, r0]
+ add r1, sp, #0x2c
+ add r2, sp, #0x28
+ bl FUN_020119A4
+ ldr r0, [sp, #0x1c]
+ ldr r2, [sp, #0x28]
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #0x2c]
+ add r2, r2, #1
+ bl FUN_020118C4
+ ldr r0, [sp, #0xc]
+ add r6, r4, #0
+ mov r1, #0x14
+ add r7, r0, #0
+ mul r7, r1
+ add r6, #0x40
+ ldr r0, [r6, r7]
+ add r1, sp, #0x2c
+ add r2, sp, #0x28
+ bl FUN_020119A4
+ ldr r2, [sp, #0x28]
+ ldr r0, [r6, r7]
+ ldr r1, [sp, #0x2c]
+ add r2, r2, #1
+ bl FUN_020118C4
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _02232A34
+ lsl r0, r5, #2
+ add r1, r4, r0
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #1
+ bl FUN_0200C7FC
+ mov r7, #0x51
+ ldr r0, [sp, #4]
+ mov r1, #0x18
+ mul r1, r0
+ mov r6, #0
+ add r5, r4, r1
+ lsl r7, r7, #2
+_02232A1C:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _02232A2C
+ ldr r0, [r0]
+ mov r1, #0
+ mov r2, #1
+ bl FUN_0200C7FC
+_02232A2C:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #6
+ blt _02232A1C
+_02232A34:
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ ldrsh r1, [r4, r0]
+ add sp, #0x30
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_02232A42:
+ add r0, r3, #2
+ ldrsh r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _02232A5E
+ add r0, r4, #0
+ bl MOD12_02232630
+ add r0, r4, #0
+ bl MOD12_02232684
+_02232A5E:
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232A64: .word 0x00000123
+
+ thumb_func_start MOD12_02232A68
+MOD12_02232A68: ; 0x02232A68
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02232A78
+ bl ErrorHandling
+_02232A78:
+ mov r0, #0xc1
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #0xc
+ bl MI_CpuFill8
+ ldr r2, _02232A94 ; =0x00000528
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x14]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02232A94: .word 0x00000528
+
+ thumb_func_start MOD12_02232A98
+MOD12_02232A98: ; 0x02232A98
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02232AB6
+ bl FUN_0200CAB4
+ mov r0, #0xc1
+ lsl r0, r0, #2
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #0xc
+ str r1, [r4, #0x14]
+ bl MI_CpuFill8
+_02232AB6:
+ pop {r4, pc}
+
+ thumb_func_start MOD12_02232AB8
+MOD12_02232AB8: ; 0x02232AB8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #0xff
+ beq _02232ACE
+ ldr r0, _02232AD0 ; =MOD12_02232AD8
+ add r1, r5, #0
+ bl MOD12_02232A68
+ ldr r0, _02232AD4 ; =0x0000030D
+ strb r4, [r5, r0]
+_02232ACE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02232AD0: .word MOD12_02232AD8
+_02232AD4: .word 0x0000030D
+
+ thumb_func_start MOD12_02232AD8
+MOD12_02232AD8: ; 0x02232AD8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r0, #0xc1
+ add r5, r1, #0
+ lsl r0, r0, #2
+ add r2, r5, r0
+ ldr r0, [r5, #4]
+ mov r4, #0
+ ldr r3, [r0, #0x50]
+ ldrb r0, [r2, #8]
+ cmp r0, #0
+ beq _02232AF8
+ cmp r0, #1
+ beq _02232B14
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02232AF8:
+ mov r0, #0xa
+ lsl r0, r0, #8
+ strh r0, [r2, #4]
+ ldr r0, _02232B74 ; =0xFFFFFB00
+ strh r0, [r2, #6]
+ mov r0, #4
+ ldrsh r1, [r2, r0]
+ mov r0, #6
+ ldrsh r0, [r2, r0]
+ sub r0, r1, r0
+ strh r0, [r2, #4]
+ ldrb r0, [r2, #8]
+ add r0, r0, #1
+ strb r0, [r2, #8]
+_02232B14:
+ mov r7, #4
+ mov r6, #6
+ ldrsh r1, [r2, r7]
+ ldrsh r0, [r2, r6]
+ add r0, r1, r0
+ strh r0, [r2, #4]
+ ldrsh r6, [r2, r6]
+ cmp r6, #0
+ blt _02232B34
+ ldrsh r1, [r2, r7]
+ lsl r0, r7, #0xa
+ cmp r1, r0
+ blt _02232B34
+ strh r0, [r2, #4]
+ mov r4, #1
+ b _02232B46
+_02232B34:
+ cmp r6, #0
+ bge _02232B46
+ mov r0, #4
+ ldrsh r0, [r2, r0]
+ cmp r0, #0
+ bgt _02232B46
+ mov r0, #0
+ strh r0, [r2, #4]
+ mov r4, #1
+_02232B46:
+ mov r0, #4
+ ldrsh r0, [r2, r0]
+ mov r1, #1
+ asr r0, r0, #8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, _02232B78 ; =0x00007FFF
+ str r0, [sp, #4]
+ ldrb r2, [r2, #9]
+ add r0, r3, #0
+ mov r3, #0x10
+ lsl r2, r2, #0x14
+ lsr r2, r2, #0x10
+ bl FUN_020039E8
+ cmp r4, #1
+ bne _02232B70
+ add r0, r5, #0
+ bl MOD12_02232A98
+_02232B70:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232B74: .word 0xFFFFFB00
+_02232B78: .word 0x00007FFF
+
+ thumb_func_start MOD12_02232B7C
+MOD12_02232B7C: ; 0x02232B7C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r1, #0x69
+ add r5, r0, #0
+ mov r0, #0
+ lsl r1, r1, #2
+ str r0, [sp, #4]
+ add r0, r5, r1
+ str r0, [sp]
+ add r0, r1, #0
+ add r0, #0x50
+ add r1, #0xa0
+ add r4, r5, #0
+ add r7, r5, r0
+ add r6, r5, r1
+_02232B9A:
+ mov r0, #0x1b
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02232BAA
+ ldr r0, [sp]
+ bl FUN_02019178
+_02232BAA:
+ mov r0, #2
+ lsl r0, r0, #8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02232BBA
+ add r0, r7, #0
+ bl FUN_02019178
+_02232BBA:
+ mov r0, #0x25
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02232BCA
+ add r0, r6, #0
+ bl FUN_02019178
+_02232BCA:
+ ldr r0, [sp]
+ add r4, #0x14
+ add r0, #0x14
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r7, #0x14
+ add r0, r0, #1
+ add r6, #0x14
+ str r0, [sp, #4]
+ cmp r0, #4
+ blt _02232B9A
+ mov r0, #0xa5
+ lsl r0, r0, #2
+ add r7, r0, #0
+ mov r6, #0
+ add r4, r5, r0
+ add r7, #0xc
+_02232BEC:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _02232BF8
+ add r0, r4, #0
+ bl FUN_02019178
+_02232BF8:
+ add r6, r6, #1
+ add r5, #0x14
+ add r4, #0x14
+ cmp r6, #3
+ blt _02232BEC
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02232C08
+MOD12_02232C08: ; 0x02232C08
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r0, #0
+ mov r0, #0x69
+ lsl r0, r0, #2
+ add r6, r5, r0
+ mov r0, #0
+ str r0, [sp, #0x20]
+ add r0, r6, #0
+ str r0, [sp, #0x18]
+ add r0, #0x50
+ str r0, [sp, #0x18]
+ add r0, r6, #0
+ str r0, [sp, #0x14]
+ add r0, #0xa0
+ add r7, r1, #0
+ str r6, [sp, #0x1c]
+ str r0, [sp, #0x14]
+_02232C2C:
+ ldrh r0, [r7]
+ cmp r0, #0
+ beq _02232C52
+ ldr r1, [sp, #0x20]
+ add r4, r6, r1
+ mov r1, #0xa
+ bl FUN_0206AB18
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ strb r0, [r4, r1]
+ ldrh r0, [r7]
+ mov r1, #0xb
+ bl FUN_0206AB18
+ mov r1, #0x13
+ lsl r1, r1, #4
+ strb r0, [r4, r1]
+ b _02232C62
+_02232C52:
+ ldr r0, [sp, #0x20]
+ mov r1, #0
+ add r4, r6, r0
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ strb r1, [r4, r0]
+ add r0, r0, #4
+ strb r1, [r4, r0]
+_02232C62:
+ ldrh r0, [r7]
+ mov r1, #0x15
+ bl FUN_0200AA14
+ str r0, [sp, #0x24]
+ ldr r0, _02232D6C ; =0x00010708
+ ldr r1, [sp, #0x24]
+ str r0, [sp]
+ ldr r3, [sp, #0x1c]
+ add r0, r5, #0
+ mov r2, #2
+ bl MOD12_02232D7C
+ ldr r0, [sp, #0x24]
+ bl FUN_02021A20
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ add r1, sp, #0x34
+ add r2, sp, #0x30
+ bl FUN_02083130
+ ldr r0, [r5, #4]
+ ldr r1, [sp, #0x34]
+ ldr r0, [r0, #0x40]
+ bl FUN_0200A914
+ str r0, [sp, #0x28]
+ ldr r0, [r5, #4]
+ ldr r1, [sp, #0x30]
+ ldr r0, [r0, #0x40]
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, _02232D70 ; =0x00010200
+ ldr r1, [sp, #0x28]
+ str r0, [sp]
+ ldr r3, [sp, #0x18]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD12_02232D7C
+ ldr r0, _02232D70 ; =0x00010200
+ ldr r3, [sp, #0x14]
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD12_02232D7C
+ ldr r0, [sp, #0x28]
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x1c]
+ add r7, r7, #2
+ add r0, #0x14
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r0, #0x14
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r0, #0x14
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ cmp r0, #4
+ blt _02232C2C
+ mov r7, #0
+ add r4, r7, #0
+ add r6, #0xf0
+_02232CF8:
+ ldr r0, [r5, #4]
+ mov r1, #0x15
+ ldr r0, [r0]
+ add r0, r0, r4
+ add r0, #0xd0
+ ldrh r0, [r0]
+ bl MOD12_022314A8
+ str r0, [sp, #0x2c]
+ ldr r0, _02232D74 ; =0x0001090A
+ ldr r1, [sp, #0x2c]
+ str r0, [sp]
+ add r0, r5, #0
+ mov r2, #2
+ add r3, r6, #0
+ bl MOD12_02232D7C
+ ldr r0, [sp, #0x2c]
+ bl FUN_02021A20
+ add r7, r7, #1
+ add r4, #8
+ add r6, #0x14
+ cmp r7, #3
+ blt _02232CF8
+ ldr r3, _02232D78 ; =0x000080F1
+ ldr r2, [r5, #4]
+ add r0, r3, #7
+ str r3, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r2, #0x18]
+ ldr r1, [r2, #0x1c]
+ ldr r2, [r2, #0x50]
+ add r3, #0xc
+ bl MOD12_02244750
+ ldr r3, _02232D78 ; =0x000080F1
+ ldr r1, [r5, #4]
+ add r0, r3, #7
+ str r3, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r1, #0x18]
+ ldr r1, [r1, #0x1c]
+ mov r2, #0x15
+ add r3, #0xc
+ bl MOD12_022447E8
+ mov r1, #0xc5
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232D6C: .word 0x00010708
+_02232D70: .word 0x00010200
+_02232D74: .word 0x0001090A
+_02232D78: .word 0x000080F1
+
+ thumb_func_start MOD12_02232D7C
+MOD12_02232D7C: ; 0x02232D7C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r7, r2, #0
+ add r6, r1, #0
+ add r5, r0, #0
+ add r4, r3, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, sp, #0x1c
+ add r3, sp, #0x18
+ bl MOD12_02232DE8
+ ldr r0, [sp, #0x1c]
+ strh r0, [r4, #0x12]
+ ldr r0, [sp, #0x18]
+ strh r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _02232DA8
+ add r0, r4, #0
+ bl FUN_02019178
+_02232DA8:
+ add r0, r4, #0
+ bl FUN_0201901C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ ldr r2, [sp, #0x18]
+ ldr r0, [r0, #0x24]
+ lsl r2, r2, #0x18
+ add r1, r4, #0
+ lsr r2, r2, #0x18
+ mov r3, #2
+ bl FUN_020190EC
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x38]
+ add r1, r7, #0
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ add r0, r4, #0
+ add r2, r6, #0
+ str r3, [sp, #0x14]
+ bl FUN_0201BE3C
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02232DE8
+MOD12_02232DE8: ; 0x02232DE8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r6, r2, #0
+ add r0, r1, #0
+ add r1, r4, #0
+ mov r2, #0
+ add r7, r3, #0
+ bl FUN_02002E14
+ add r4, r0, #0
+ asr r1, r4, #2
+ lsr r1, r1, #0x1d
+ add r1, r4, r1
+ asr r5, r1, #3
+ mov r1, #8
+ bl FX_ModS32
+ cmp r0, #0
+ beq _02232E10
+ add r5, r5, #1
+_02232E10:
+ str r4, [r6]
+ str r5, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02232E18
+MOD12_02232E18: ; 0x02232E18
+ push {r4, r5, r6, lr}
+ mov r6, #0xc6
+ lsl r6, r6, #2
+ add r2, r6, #0
+ add r5, r0, #0
+ sub r2, #0x38
+ ldrsb r2, [r5, r2]
+ ldr r1, _02232E7C ; =0x02245074
+ mov r3, #0x30
+ add r4, r2, #0
+ mul r4, r3
+ add r4, r1, r4
+ ldr r2, [r4, #0x20]
+ cmp r2, #0
+ bne _02232E3C
+ sub r3, #0x31
+ add r0, r3, #0
+ pop {r4, r5, r6, pc}
+_02232E3C:
+ ldrb r1, [r5, r6]
+ cmp r1, #0
+ bne _02232E76
+ add r0, r6, #4
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ beq _02232E54
+ ldr r1, _02232E80 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ ldr r1, _02232E84 ; =0x00000CF3
+ tst r1, r2
+ beq _02232E70
+_02232E54:
+ cmp r0, #0
+ bne _02232E5E
+ ldr r0, _02232E88 ; =0x000005DC
+ bl FUN_020054C8
+_02232E5E:
+ mov r1, #1
+ mov r0, #0xc7
+ strb r1, [r5, r6]
+ mov r2, #0
+ lsl r0, r0, #2
+ strb r2, [r5, r0]
+ ldr r2, [r4, #0x20]
+ add r0, r5, #0
+ blx r2
+_02232E70:
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_02232E76:
+ mov r1, #0
+ blx r2
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02232E7C: .word 0x02245074
+_02232E80: .word 0x021C48B8
+_02232E84: .word 0x00000CF3
+_02232E88: .word 0x000005DC
+
+ thumb_func_start MOD12_02232E8C
+MOD12_02232E8C: ; 0x02232E8C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r1, [sp, #8]
+ mov r1, #0x31
+ add r5, r0, #0
+ lsl r1, r1, #4
+ add r0, r5, r1
+ str r0, [sp, #0xc]
+ add r0, r1, #0
+ sub r1, #0x30
+ add r0, #8
+ add r6, r5, r0
+ ldrsb r1, [r5, r1]
+ mov r0, #0x30
+ ldr r2, _02232FE4 ; =0x02245074
+ mul r0, r1
+ add r7, r2, r0
+ mov r4, #0
+ b _02232ED0
+_02232EB2:
+ ldr r0, [r5, #4]
+ ldr r1, _02232FE8 ; =0x00000123
+ ldr r0, [r0]
+ mov r2, #0
+ ldrb r1, [r0, r1]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ add r1, r4, #0
+ add r1, #0x36
+ bl FUN_020671BC
+ lsl r2, r4, #1
+ add r1, sp, #0x10
+ strh r0, [r1, r2]
+ add r4, r4, #1
+_02232ED0:
+ cmp r4, #4
+ blt _02232EB2
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _02232F4E
+ ldr r0, [sp, #0xc]
+ mov r1, #0
+ ldrsb r0, [r0, r1]
+ mov r4, #1
+ strb r0, [r6, #2]
+ ldr r0, [sp, #0xc]
+ ldrsb r0, [r0, r4]
+ strb r0, [r6, #1]
+ ldrsb r0, [r6, r4]
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r2, [r6, r0]
+ ldr r0, _02232FEC ; =0x02244D58
+ add r0, r0, r3
+ ldrb r3, [r2, r0]
+ add r0, sp, #0x10
+ lsl r2, r3, #1
+ ldrh r0, [r0, r2]
+ cmp r0, #0
+ bne _02232F1A
+ ldr r0, [sp, #0xc]
+ strb r1, [r0]
+ strb r1, [r0, #1]
+ strb r1, [r6, #2]
+ strb r1, [r6, #1]
+ ldrsb r0, [r6, r4]
+ lsl r2, r0, #1
+ mov r0, #2
+ ldrsb r1, [r6, r0]
+ ldr r0, _02232FEC ; =0x02244D58
+ add r0, r0, r2
+ ldrb r3, [r1, r0]
+_02232F1A:
+ ldr r0, [r7, #0x14]
+ lsl r3, r3, #2
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r7, #0x14]
+ mov r0, #0xc5
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD12_02244918
+ mov r0, #0
+ add sp, #0x1c
+ mvn r0, r0
+ pop {r4, r5, r6, r7, pc}
+_02232F4E:
+ ldr r0, _02232FEC ; =0x02244D58
+ add r1, sp, #0x18
+ mov r2, #4
+ bl MI_CpuCopy8
+ mov r1, #2
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, sp, #0x18
+ bl MOD12_0223318C
+ cmp r0, #0x20
+ bhi _02232F7E
+ bhs _02232F8A
+ cmp r0, #2
+ bhi _02232F78
+ cmp r0, #1
+ blo _02232FDC
+ beq _02232FC8
+ cmp r0, #2
+ b _02232FDC
+_02232F78:
+ cmp r0, #0x10
+ beq _02232F8A
+ b _02232FDC
+_02232F7E:
+ cmp r0, #0x40
+ bhi _02232F86
+ beq _02232F8A
+ b _02232FDC
+_02232F86:
+ cmp r0, #0x80
+ bne _02232FDC
+_02232F8A:
+ mov r0, #1
+ ldrsb r0, [r6, r0]
+ ldr r2, _02232FEC ; =0x02244D58
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r1, [r6, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [r7, #0x14]
+ lsl r3, r1, #2
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r7, #0x14]
+ mov r0, #0xc5
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD12_02244918
+ b _02232FDC
+_02232FC8:
+ mov r0, #1
+ ldrsb r0, [r6, r0]
+ ldr r2, _02232FEC ; =0x02244D58
+ add sp, #0x1c
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r1, [r6, r0]
+ add r0, r2, r3
+ ldrb r0, [r1, r0]
+ pop {r4, r5, r6, r7, pc}
+_02232FDC:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232FE4: .word 0x02245074
+_02232FE8: .word 0x00000123
+_02232FEC: .word 0x02244D58
+
+ thumb_func_start MOD12_02232FF0
+MOD12_02232FF0: ; 0x02232FF0
+ push {r4, r5, r6, r7}
+ mov r2, #0x31
+ lsl r2, r2, #4
+ mov r4, #0
+ add r2, r0, r2
+ ldr r7, _02233028 ; =0x02244D58
+ add r0, r4, #0
+ b _0223301E
+_02233000:
+ lsl r5, r4, #1
+ add r3, r0, #0
+ add r6, r7, r5
+ b _02233018
+_02233008:
+ ldrb r5, [r3, r6]
+ cmp r1, r5
+ bne _02233016
+ strb r3, [r2]
+ strb r4, [r2, #1]
+ pop {r4, r5, r6, r7}
+ bx lr
+_02233016:
+ add r3, r3, #1
+_02233018:
+ cmp r3, #2
+ blt _02233008
+ add r4, r4, #1
+_0223301E:
+ cmp r4, #2
+ blt _02233000
+ pop {r4, r5, r6, r7}
+ bx lr
+ nop
+_02233028: .word 0x02244D58
+
+ thumb_func_start MOD12_0223302C
+MOD12_0223302C: ; 0x0223302C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r7, #0x31
+ lsl r7, r7, #4
+ add r3, r7, #0
+ add r5, r0, #0
+ sub r3, #0x30
+ add r0, r7, #0
+ ldrsb r6, [r5, r3]
+ add r0, #8
+ add r4, r5, r0
+ mov r3, #0x30
+ add r2, r1, #0
+ ldr r0, _02233144 ; =0x02245074
+ mul r3, r6
+ add r1, r5, r7
+ add r6, r0, r3
+ cmp r2, #1
+ bne _022330A0
+ mov r0, #2
+ ldrsb r2, [r1, r0]
+ strb r2, [r4, #2]
+ mov r2, #3
+ ldrsb r1, [r1, r2]
+ strb r1, [r4, #1]
+ mov r1, #1
+ ldrsb r2, [r4, r1]
+ ldrsb r3, [r4, r0]
+ lsl r1, r2, #1
+ add r2, r2, r1
+ ldr r1, _02233148 ; =0x02244D5C
+ add r0, r1, r2
+ ldrb r1, [r3, r0]
+ ldr r0, [r6, #0x14]
+ lsl r3, r1, #2
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r6, #0x14]
+ add r0, r7, #4
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r5, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD12_02244918
+ mov r0, #0
+ add sp, #0x10
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_022330A0:
+ ldr r0, _02233148 ; =0x02244D5C
+ add r1, sp, #8
+ mov r2, #6
+ bl MI_CpuCopy8
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #2
+ add r3, sp, #8
+ bl MOD12_0223318C
+ cmp r0, #0x20
+ bhi _022330D2
+ bhs _022330DE
+ cmp r0, #2
+ bhi _022330CC
+ cmp r0, #1
+ blo _0223313A
+ beq _0223311E
+ cmp r0, #2
+ beq _02233134
+ b _0223313A
+_022330CC:
+ cmp r0, #0x10
+ beq _022330DE
+ b _0223313A
+_022330D2:
+ cmp r0, #0x40
+ bhi _022330DA
+ beq _022330DE
+ b _0223313A
+_022330DA:
+ cmp r0, #0x80
+ bne _0223313A
+_022330DE:
+ mov r0, #1
+ ldrsb r1, [r4, r0]
+ ldr r2, _02233148 ; =0x02244D5C
+ lsl r0, r1, #1
+ add r3, r1, r0
+ mov r0, #2
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [r6, #0x14]
+ lsl r3, r1, #2
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r6, #0x14]
+ mov r0, #0xc5
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD12_02244918
+ b _0223313A
+_0223311E:
+ mov r0, #1
+ ldrsb r1, [r4, r0]
+ ldr r2, _02233148 ; =0x02244D5C
+ add sp, #0x10
+ lsl r0, r1, #1
+ add r3, r1, r0
+ mov r0, #2
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r0, [r1, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_02233134:
+ add sp, #0x10
+ mov r0, #3
+ pop {r3, r4, r5, r6, r7, pc}
+_0223313A:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02233144: .word 0x02245074
+_02233148: .word 0x02244D5C
+
+ thumb_func_start MOD12_0223314C
+MOD12_0223314C: ; 0x0223314C
+ push {r4, r5, r6, r7}
+ cmp r1, #3
+ beq _02233184
+ mov r2, #0x31
+ lsl r2, r2, #4
+ add r3, r0, r2
+ mov r5, #0
+ ldr r0, _02233188 ; =0x02244D5C
+ add r2, r5, #0
+ b _02233180
+_02233160:
+ lsl r6, r5, #1
+ add r6, r5, r6
+ add r4, r2, #0
+ add r7, r0, r6
+ b _0223317A
+_0223316A:
+ ldrb r6, [r4, r7]
+ cmp r1, r6
+ bne _02233178
+ strb r4, [r3, #2]
+ strb r5, [r3, #3]
+ pop {r4, r5, r6, r7}
+ bx lr
+_02233178:
+ add r4, r4, #1
+_0223317A:
+ cmp r4, #3
+ blt _0223316A
+ add r5, r5, #1
+_02233180:
+ cmp r5, #2
+ blt _02233160
+_02233184:
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_02233188: .word 0x02244D5C
+
+ thumb_func_start MOD12_0223318C
+MOD12_0223318C: ; 0x0223318C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #2
+ add r4, r1, #0
+ ldrsb r1, [r0, r7]
+ mov r5, #1
+ add r6, r2, #0
+ str r1, [sp]
+ ldrsb r1, [r0, r5]
+ add r2, r3, #0
+ mov r3, #0x40
+ mov ip, r1
+ ldr r1, _02233364 ; =0x021C48B8
+ ldr r1, [r1, #0x48]
+ tst r3, r1
+ beq _022331FA
+ mov r1, ip
+ sub r1, r1, #1
+ strb r1, [r0, #1]
+ ldrsb r1, [r0, r5]
+ cmp r1, #0
+ bge _022331BA
+ mov r1, #0
+ strb r1, [r0, #1]
+_022331BA:
+ cmp r2, #0
+ beq _022331F6
+ mov r3, #1
+ mov r1, #2
+ ldrsb r3, [r0, r3]
+ ldrsb r1, [r0, r1]
+ mul r3, r4
+ add r1, r1, r3
+ ldrb r1, [r2, r1]
+ cmp r1, #0xff
+ bne _022331F6
+ add r1, r0, #1
+ mov r7, #0
+ mov r6, #1
+_022331D6:
+ ldrsb r3, [r1, r7]
+ sub r3, r3, #1
+ strb r3, [r1]
+ ldrsb r3, [r0, r6]
+ cmp r3, #0
+ bge _022331E8
+ mov r1, ip
+ strb r1, [r0, #1]
+ b _022331F6
+_022331E8:
+ mov r5, #2
+ ldrsb r5, [r0, r5]
+ mul r3, r4
+ add r5, r2, r5
+ ldrb r3, [r3, r5]
+ cmp r3, #0xff
+ beq _022331D6
+_022331F6:
+ mov r5, #0x40
+ b _0223330E
+_022331FA:
+ mov r3, #0x80
+ tst r3, r1
+ beq _02233250
+ mov r1, ip
+ add r1, r1, #1
+ strb r1, [r0, #1]
+ ldrsb r1, [r0, r5]
+ cmp r1, r6
+ blt _02233210
+ sub r1, r6, #1
+ strb r1, [r0, #1]
+_02233210:
+ cmp r2, #0
+ beq _0223324C
+ mov r3, #1
+ mov r1, #2
+ ldrsb r3, [r0, r3]
+ ldrsb r1, [r0, r1]
+ mul r3, r4
+ add r1, r1, r3
+ ldrb r1, [r2, r1]
+ cmp r1, #0xff
+ bne _0223324C
+ add r1, r0, #1
+ mov r7, #1
+_0223322A:
+ mov r3, #0
+ ldrsb r3, [r1, r3]
+ add r3, r3, #1
+ strb r3, [r1]
+ ldrsb r3, [r0, r7]
+ cmp r3, r6
+ blt _0223323E
+ mov r1, ip
+ strb r1, [r0, #1]
+ b _0223324C
+_0223323E:
+ mov r5, #2
+ ldrsb r5, [r0, r5]
+ mul r3, r4
+ add r5, r2, r5
+ ldrb r3, [r3, r5]
+ cmp r3, #0xff
+ beq _0223322A
+_0223324C:
+ mov r5, #0x80
+ b _0223330E
+_02233250:
+ mov r3, #0x20
+ tst r3, r1
+ beq _022332A6
+ ldr r1, [sp]
+ sub r1, r1, #1
+ strb r1, [r0, #2]
+ ldrsb r1, [r0, r7]
+ cmp r1, #0
+ bge _02233266
+ mov r1, #0
+ strb r1, [r0, #2]
+_02233266:
+ cmp r2, #0
+ beq _022332A2
+ mov r3, #1
+ mov r1, #2
+ ldrsb r3, [r0, r3]
+ ldrsb r1, [r0, r1]
+ mul r3, r4
+ add r1, r1, r3
+ ldrb r1, [r2, r1]
+ cmp r1, #0xff
+ bne _022332A2
+ add r5, r0, #2
+ mov r7, #0
+ mov r6, #2
+_02233282:
+ ldrsb r1, [r5, r7]
+ sub r1, r1, #1
+ strb r1, [r5]
+ ldrsb r3, [r0, r6]
+ cmp r3, #0
+ bge _02233294
+ ldr r1, [sp]
+ strb r1, [r0, #2]
+ b _022332A2
+_02233294:
+ mov r1, #1
+ ldrsb r1, [r0, r1]
+ add r3, r2, r3
+ mul r1, r4
+ ldrb r1, [r1, r3]
+ cmp r1, #0xff
+ beq _02233282
+_022332A2:
+ mov r5, #0x20
+ b _0223330E
+_022332A6:
+ mov r3, #0x10
+ tst r3, r1
+ beq _022332FC
+ ldr r1, [sp]
+ add r1, r1, #1
+ strb r1, [r0, #2]
+ ldrsb r1, [r0, r7]
+ cmp r1, r4
+ blt _022332BC
+ sub r1, r4, #1
+ strb r1, [r0, #2]
+_022332BC:
+ cmp r2, #0
+ beq _022332F8
+ mov r3, #1
+ mov r1, #2
+ ldrsb r3, [r0, r3]
+ ldrsb r1, [r0, r1]
+ mul r3, r4
+ add r1, r1, r3
+ ldrb r1, [r2, r1]
+ cmp r1, #0xff
+ bne _022332F8
+ add r5, r0, #2
+ mov r7, #0
+ mov r6, #2
+_022332D8:
+ ldrsb r1, [r5, r7]
+ add r1, r1, #1
+ strb r1, [r5]
+ ldrsb r3, [r0, r6]
+ cmp r3, r4
+ blt _022332EA
+ ldr r1, [sp]
+ strb r1, [r0, #2]
+ b _022332F8
+_022332EA:
+ mov r1, #1
+ ldrsb r1, [r0, r1]
+ add r3, r2, r3
+ mul r1, r4
+ ldrb r1, [r1, r3]
+ cmp r1, #0xff
+ beq _022332D8
+_022332F8:
+ mov r5, #0x10
+ b _0223330E
+_022332FC:
+ add r3, r1, #0
+ tst r3, r5
+ bne _0223330E
+ tst r1, r7
+ beq _0223330A
+ add r5, r7, #0
+ b _0223330E
+_0223330A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223330E:
+ cmp r2, #0
+ beq _02233338
+ mov r1, ip
+ add r3, r4, #0
+ mul r3, r1
+ ldr r1, [sp]
+ add r1, r1, r3
+ mov r3, #2
+ ldrsb r6, [r0, r3]
+ mov r3, #1
+ ldrsb r3, [r0, r3]
+ ldrb r1, [r2, r1]
+ mul r3, r4
+ add r3, r6, r3
+ ldrb r2, [r2, r3]
+ cmp r1, r2
+ bne _02233338
+ ldr r1, [sp]
+ strb r1, [r0, #2]
+ mov r1, ip
+ strb r1, [r0, #1]
+_02233338:
+ mov r1, #2
+ ldrsb r2, [r0, r1]
+ ldr r1, [sp]
+ cmp r2, r1
+ bne _0223334C
+ mov r1, #1
+ ldrsb r1, [r0, r1]
+ mov r0, ip
+ cmp r1, r0
+ beq _02233354
+_0223334C:
+ ldr r0, _02233368 ; =0x000005DC
+ bl FUN_020054C8
+ b _0223335E
+_02233354:
+ mov r0, #0xf0
+ tst r0, r5
+ beq _0223335E
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223335E:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02233364: .word 0x021C48B8
+_02233368: .word 0x000005DC
+
+ thumb_func_start MOD12_0223336C
+MOD12_0223336C: ; 0x0223336C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0
+ mov r2, #0xb7
+ add r4, r1, #0
+ str r0, [sp]
+ lsl r2, r2, #2
+ ldr r0, [r4, #4]
+ ldr r2, [r4, r2]
+ mov r3, #6
+ ldr r0, [r0, #0x24]
+ ldr r2, [r2, #0x14]
+ mov r1, #4
+ lsl r3, r3, #0xc
+ bl FUN_02017E14
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0xb6
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022333A8
+MOD12_022333A8: ; 0x022333A8
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldrsb r1, [r1, r0]
+ mov r0, #0x30
+ mov r4, #0
+ ldr r2, _022333F0 ; =0x02245074
+ mul r0, r1
+ ldr r6, _022333F4 ; =0x0000FFFF
+ add r5, r2, r0
+ add r7, r4, #0
+_022333C0:
+ ldrh r0, [r5, #4]
+ cmp r0, r6
+ bne _022333D4
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r7, #0
+ bl FUN_0201797C
+ b _022333E0
+_022333D4:
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #1
+ bl FUN_0201797C
+_022333E0:
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _022333C0
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022333F0: .word 0x02245074
+_022333F4: .word 0x0000FFFF
+
+ thumb_func_start MOD12_022333F8
+MOD12_022333F8: ; 0x022333F8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r2, #1
+ str r2, [sp]
+ mov r2, #2
+ str r2, [sp, #4]
+ ldr r2, _02233440 ; =0x000080FB
+ mov r3, #0x2a
+ str r2, [sp, #8]
+ mov r2, #0x2e
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02233444 ; =0x000080F6
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x2b
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02233444 ; =0x000080F6
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x2c
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02233440: .word 0x000080FB
+_02233444: .word 0x000080F6
+
+ thumb_func_start MOD12_02233448
+MOD12_02233448: ; 0x02233448
+ push {r3, r4, r5, lr}
+ add r5, r2, #0
+ ldr r2, _02233474 ; =0x02245168
+ bl FUN_0200C154
+ mov r1, #0x58
+ mul r1, r5
+ add r1, #0x28
+ lsl r1, r1, #0x10
+ mov r3, #0x11
+ add r4, r0, #0
+ asr r1, r1, #0x10
+ mov r2, #0x60
+ lsl r3, r3, #0x10
+ bl FUN_0200C750
+ ldr r0, [r4]
+ bl FUN_0200C59C
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233474: .word 0x02245168
+
+ thumb_func_start MOD12_02233478
+MOD12_02233478: ; 0x02233478
+ push {r4, lr}
+ ldr r1, _02233494 ; =0x000080FB
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _02233498 ; =0x000080F6
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _02233498 ; =0x000080F6
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_02233494: .word 0x000080FB
+_02233498: .word 0x000080F6
+
+ thumb_func_start MOD12_0223349C
+MOD12_0223349C: ; 0x0223349C
+ ldr r3, _022334A0 ; =0x0200C3DD
+ bx r3
+ .align 2, 0
+_022334A0: .word 0x0200C3DD
+
+ thumb_func_start MOD12_022334A4
+MOD12_022334A4: ; 0x022334A4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r2, #1
+ str r2, [sp]
+ mov r2, #2
+ str r2, [sp, #4]
+ ldr r2, _022334EC ; =0x000080FA
+ mov r3, #0x2d
+ str r2, [sp, #8]
+ mov r2, #0x2e
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _022334F0 ; =0x000080F5
+ mov r2, #0x2e
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _022334F0 ; =0x000080F5
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x2f
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_022334EC: .word 0x000080FA
+_022334F0: .word 0x000080F5
+
+ thumb_func_start MOD12_022334F4
+MOD12_022334F4: ; 0x022334F4
+ push {r4, r5, r6, lr}
+ add r5, r2, #0
+ ldr r2, [sp, #0x10]
+ add r6, r3, #0
+ cmp r2, #0
+ blt _02233508
+ ldr r2, _0223352C ; =0x02245134
+ bl FUN_0200C154
+ b _0223350E
+_02233508:
+ ldr r2, _02233530 ; =0x0224519C
+ bl FUN_0200C154
+_0223350E:
+ add r4, r0, #0
+ lsl r1, r5, #0x10
+ lsl r2, r6, #0x10
+ mov r3, #0x11
+ add r0, r4, #0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ lsl r3, r3, #0x10
+ bl FUN_0200C750
+ ldr r0, [r4]
+ bl FUN_0200C59C
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0223352C: .word 0x02245134
+_02233530: .word 0x0224519C
+
+ thumb_func_start MOD12_02233534
+MOD12_02233534: ; 0x02233534
+ ldr r3, _02233538 ; =0x0200C3DD
+ bx r3
+ .align 2, 0
+_02233538: .word 0x0200C3DD
+
+ thumb_func_start MOD12_0223353C
+MOD12_0223353C: ; 0x0223353C
+ push {r4, lr}
+ ldr r1, _02233558 ; =0x000080FA
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _0223355C ; =0x000080F5
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0223355C ; =0x000080F5
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_02233558: .word 0x000080FA
+_0223355C: .word 0x000080F5
+
+ thumb_func_start MOD12_02233560
+MOD12_02233560: ; 0x02233560
+ ldr r0, _02233568 ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_02233568: .word 0x04000050
+
+ thumb_func_start MOD12_0223356C
+MOD12_0223356C: ; 0x0223356C
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r0, [r0, #0x30]
+ add r5, r1, #0
+ mov r1, #2
+ add r4, r2, #0
+ bl FUN_0201886C
+ mov r1, #0xc0
+ mul r1, r5
+ lsl r1, r1, #1
+ mov r2, #0
+ ldr r6, _022335AC ; =0x00000FFF
+ add r0, r0, r1
+ add r3, r2, #0
+ lsl r4, r4, #0xc
+_0223358A:
+ lsl r5, r3, #1
+ mov r1, #0
+ add r5, r0, r5
+_02233590:
+ ldrh r7, [r5]
+ add r1, r1, #1
+ and r7, r6
+ orr r7, r4
+ strh r7, [r5]
+ add r5, r5, #2
+ cmp r1, #0xa
+ blt _02233590
+ add r2, r2, #1
+ add r3, #0x20
+ cmp r2, #6
+ blt _0223358A
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022335AC: .word 0x00000FFF
+
+ thumb_func_start MOD12_022335B0
+MOD12_022335B0: ; 0x022335B0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r4, #0
+ ldr r6, _022335DC ; =0x022451D0
+ ldr r7, _022335E0 ; =0x00000231
+ b _022335CC
+_022335BC:
+ add r2, r5, r4
+ ldrb r2, [r2, r7]
+ add r0, r5, #0
+ add r1, r4, #0
+ ldrb r2, [r6, r2]
+ bl MOD12_0223356C
+ add r4, r4, #1
+_022335CC:
+ cmp r4, #4
+ blt _022335BC
+ ldr r0, [r5, #0x30]
+ mov r1, #2
+ bl FUN_0201AC68
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022335DC: .word 0x022451D0
+_022335E0: .word 0x00000231
+
+ thumb_func_start MOD12_022335E4
+MOD12_022335E4: ; 0x022335E4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x15
+ mov r1, #0xc
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0xc
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [r5, #0x5c]
+ ldr r2, _02233614 ; =0x00009CA4
+ str r0, [r4]
+ ldr r0, _02233618 ; =MOD12_02233648
+ add r1, r4, #0
+ strb r6, [r4, #0xa]
+ bl FUN_0200CA44
+ str r0, [r4, #4]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02233614: .word 0x00009CA4
+_02233618: .word MOD12_02233648
+
+ thumb_func_start MOD12_0223361C
+MOD12_0223361C: ; 0x0223361C
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0
+ beq _0223362A
+ bl ErrorHandling
+_0223362A:
+ ldr r0, [r4, #4]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start MOD12_02233638
+MOD12_02233638: ; 0x02233638
+ mov r1, #1
+ strb r1, [r0, #0xb]
+ mov r1, #0xa
+ lsl r1, r1, #8
+ strh r1, [r0, #8]
+ bx lr
+
+ thumb_func_start MOD12_02233644
+MOD12_02233644: ; 0x02233644
+ ldrb r0, [r0, #0xb]
+ bx lr
+
+ thumb_func_start MOD12_02233648
+MOD12_02233648: ; 0x02233648
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0
+ beq _0223369E
+ mov r0, #8
+ ldrsh r0, [r4, r0]
+ ldr r2, _022336A4 ; =0x022451D0
+ mov r1, #0
+ asr r0, r0, #8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, _022336A8 ; =0x00007FFF
+ str r0, [sp, #4]
+ ldrb r3, [r4, #0xa]
+ ldr r0, [r4]
+ ldrb r2, [r2, r3]
+ mov r3, #4
+ lsl r2, r2, #4
+ add r2, r2, #1
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_020039E8
+ mov r1, #8
+ ldrsh r2, [r4, r1]
+ cmp r2, #0
+ bne _0223368C
+ mov r0, #0
+ add sp, #8
+ strb r0, [r4, #0xb]
+ pop {r4, pc}
+_0223368C:
+ mov r0, #0xa
+ lsl r0, r0, #6
+ sub r0, r2, r0
+ strh r0, [r4, #8]
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ bge _0223369E
+ mov r0, #0
+ strh r0, [r4, #8]
+_0223369E:
+ add sp, #8
+ pop {r4, pc}
+ nop
+_022336A4: .word 0x022451D0
+_022336A8: .word 0x00007FFF
+
+ thumb_func_start MOD12_022336AC
+MOD12_022336AC: ; 0x022336AC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ str r0, [sp, #0x18]
+ add r0, #8
+ str r0, [sp, #0x18]
+ add r6, r1, #0
+ lsl r0, r6, #2
+ ldr r1, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ ldr r0, [r1, r0]
+ bl FUN_02007534
+ lsl r0, r6, #4
+ add r0, r5, r0
+ ldr r0, [r0, #0x58]
+ cmp r0, #0
+ bne _022336D4
+ bl ErrorHandling
+_022336D4:
+ add r2, r5, #0
+ add r2, #0x58
+ lsl r1, r6, #4
+ add r0, r2, r1
+ str r0, [sp, #0x14]
+ ldr r0, [r2, r1]
+ mov r2, #0x32
+ mov r1, #0
+ lsl r2, r2, #6
+ bl MI_CpuFill8
+ ldr r1, [sp, #0x14]
+ lsl r0, r6, #5
+ str r1, [sp]
+ mov r1, #0x15
+ str r1, [sp, #4]
+ mov r1, #0xd8
+ sub r1, r1, r0
+ str r1, [sp, #8]
+ mov r1, #0x70
+ sub r0, r1, r0
+ str r0, [sp, #0xc]
+ ldr r0, _02233754 ; =0xFFFFFE00
+ add r7, r5, #0
+ str r0, [sp, #0x10]
+ ldr r2, [r5]
+ lsl r4, r6, #2
+ ldr r0, [r5, #4]
+ ldr r2, [r2, r4]
+ add r7, #8
+ add r1, r6, #0
+ mov r3, #0
+ bl FUN_02082E64
+ str r0, [r7, r4]
+ ldr r0, [r7, r4]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ ldr r0, [r7, r4]
+ mov r1, #0x25
+ mov r2, #1
+ bl FUN_02007558
+ ldr r0, [r5]
+ mov r1, #5
+ ldr r0, [r0, r4]
+ mov r2, #0
+ bl FUN_020671BC
+ bl MOD08_0222A6C8
+ cmp r0, #1
+ bne _02233750
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ mov r2, #1
+ ldr r0, [r1, r0]
+ mov r1, #0x23
+ bl FUN_02007558
+_02233750:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02233754: .word 0xFFFFFE00
+
+ thumb_func_start MOD12_02233758
+MOD12_02233758: ; 0x02233758
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r0, [sp, #0x14]
+ ldr r7, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ add r6, r0, #0
+ add r0, r7, #0
+ str r0, [sp, #0x18]
+ add r0, #0x58
+ ldr r4, [sp, #0x1c]
+ str r0, [sp, #0x18]
+ add r5, r7, #0
+_02233772:
+ ldr r0, [r7, #0x58]
+ cmp r0, #0
+ beq _0223377C
+ bl ErrorHandling
+_0223377C:
+ mov r1, #0x32
+ mov r0, #0x15
+ lsl r1, r1, #6
+ bl FUN_02016998
+ str r0, [r7, #0x58]
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ str r0, [sp]
+ mov r0, #0x15
+ str r0, [sp, #4]
+ mov r0, #0xd8
+ sub r0, r0, r6
+ str r0, [sp, #8]
+ mov r0, #0x70
+ sub r0, r0, r6
+ str r0, [sp, #0xc]
+ ldr r0, _02233844 ; =0xFFFFFE00
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ ldr r2, [r2]
+ ldr r0, [r0, #4]
+ ldr r2, [r2, r4]
+ mov r3, #0
+ bl FUN_02082E64
+ str r0, [r5, #8]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ ldr r0, [r5, #8]
+ mov r1, #0x25
+ mov r2, #1
+ bl FUN_02007558
+ ldr r0, [sp, #0x14]
+ mov r1, #5
+ ldr r0, [r0]
+ mov r2, #0
+ ldr r0, [r0, r4]
+ bl FUN_020671BC
+ bl MOD08_0222A6C8
+ cmp r0, #1
+ bne _022337E6
+ ldr r0, [r5, #8]
+ mov r1, #0x23
+ mov r2, #1
+ bl FUN_02007558
+_022337E6:
+ ldr r0, [sp, #0x18]
+ add r7, #0x10
+ add r0, #0x10
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ add r6, #0x20
+ add r0, r0, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ str r0, [sp, #0x1c]
+ cmp r0, #4
+ blt _02233772
+ ldr r0, [sp, #0x14]
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0223380C
+ bl ErrorHandling
+_0223380C:
+ mov r1, #0x32
+ mov r0, #0x15
+ lsl r1, r1, #6
+ bl FUN_02016998
+ ldr r1, [sp, #0x14]
+ mov r2, #0x32
+ add r1, #0x98
+ str r0, [r1]
+ ldr r0, [sp, #0x14]
+ lsl r2, r2, #6
+ ldr r1, [r0, #0x60]
+ add r0, #0xa0
+ str r1, [r0]
+ ldr r0, [sp, #0x14]
+ ldr r1, [r0, #0x5c]
+ add r0, #0x9c
+ str r1, [r0]
+ ldr r1, [sp, #0x14]
+ mov r0, #0
+ add r1, #0x98
+ str r1, [sp, #0x14]
+ ldr r1, [r1]
+ bl MIi_CpuClear32
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02233844: .word 0xFFFFFE00
+
+ thumb_func_start MOD12_02233848
+MOD12_02233848: ; 0x02233848
+ push {r3, r4, r5, r6, r7, lr}
+ mov r6, #0
+ str r0, [sp]
+ add r4, r0, #0
+ add r5, r0, #0
+ add r7, r6, #0
+_02233854:
+ ldr r0, [r4, #8]
+ bl FUN_02007534
+ ldr r0, [r5, #0x58]
+ bl FUN_02016A18
+ str r7, [r5, #0x58]
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, #0x10
+ cmp r6, #4
+ blt _02233854
+ ldr r0, [sp]
+ add r0, #0x98
+ ldr r0, [r0]
+ bl FUN_02016A18
+ ldr r0, [sp]
+ mov r1, #0
+ add r0, #0x98
+ str r0, [sp]
+ str r1, [r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02233884
+MOD12_02233884: ; 0x02233884
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ ldr r4, [sp, #0x70]
+ str r0, [sp, #0x18]
+ add r5, r1, #0
+ add r7, r2, #0
+ cmp r4, #0
+ beq _0223389A
+ cmp r4, #1
+ beq _022338A8
+ b _022338B6
+_0223389A:
+ mov r0, #0x20
+ str r0, [sp, #0x20]
+ mov r0, #0x1e
+ mov r3, #0x1f
+ mov r6, #1
+ str r0, [sp, #0x1c]
+ b _022338C2
+_022338A8:
+ mov r0, #0x26
+ str r0, [sp, #0x20]
+ mov r0, #0x24
+ mov r3, #0x25
+ mov r6, #3
+ str r0, [sp, #0x1c]
+ b _022338C2
+_022338B6:
+ mov r0, #0x23
+ str r0, [sp, #0x20]
+ mov r0, #0x21
+ mov r3, #0x22
+ mov r6, #2
+ str r0, [sp, #0x1c]
+_022338C2:
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0223396C ; =0x000080E9
+ add r1, r7, #0
+ add r0, r4, r0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0x2e
+ bl FUN_0200C00C
+ mov r0, #0x2e
+ str r0, [sp]
+ str r6, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _02233970 ; =0x000080EA
+ mov r1, #2
+ add r0, r4, r0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ add r2, r5, #0
+ add r3, r7, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223396C ; =0x000080E9
+ ldr r3, [sp, #0x20]
+ add r0, r4, r0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0x2e
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223396C ; =0x000080E9
+ ldr r3, [sp, #0x1c]
+ add r0, r4, r0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0x2e
+ bl FUN_0200C13C
+ ldr r6, _02233974 ; =0x022453D8
+ add r3, sp, #0x24
+ mov r2, #6
+_0223392C:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0223392C
+ ldr r0, [r6]
+ add r2, sp, #0x24
+ str r0, [r3]
+ ldr r0, _0223396C ; =0x000080E9
+ add r1, r4, r0
+ add r0, r0, #1
+ add r0, r4, r0
+ str r0, [sp, #0x3c]
+ str r1, [sp, #0x38]
+ str r1, [sp, #0x40]
+ str r1, [sp, #0x44]
+ lsl r1, r4, #5
+ add r1, #0x60
+ add r0, sp, #0x24
+ strh r1, [r0]
+ mov r1, #0x28
+ strh r1, [r0, #2]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_0200C154
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_0200C59C
+ add r0, r4, #0
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223396C: .word 0x000080E9
+_02233970: .word 0x000080EA
+_02233974: .word 0x022453D8
+
+ thumb_func_start MOD12_02233978
+MOD12_02233978: ; 0x02233978
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r4, r2, #0
+ bl FUN_0200C3DC
+ ldr r1, _022339B0 ; =0x000080E9
+ add r0, r5, #0
+ add r1, r4, r1
+ bl FUN_0200C358
+ ldr r1, _022339B4 ; =0x000080EA
+ add r0, r5, #0
+ add r1, r4, r1
+ bl FUN_0200C368
+ ldr r1, _022339B0 ; =0x000080E9
+ add r0, r5, #0
+ add r1, r4, r1
+ bl FUN_0200C378
+ ldr r1, _022339B0 ; =0x000080E9
+ add r0, r5, #0
+ add r1, r4, r1
+ bl FUN_0200C388
+ pop {r3, r4, r5, pc}
+ nop
+_022339B0: .word 0x000080E9
+_022339B4: .word 0x000080EA
+
+ thumb_func_start MOD12_022339B8
+MOD12_022339B8: ; 0x022339B8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02233A04 ; =0x000080EC
+ add r4, r2, #0
+ add r5, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x2e
+ mov r3, #0x27
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02233A04 ; =0x000080EC
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x28
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02233A04 ; =0x000080EC
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x29
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_02233A04: .word 0x000080EC
+
+ thumb_func_start MOD12_02233A08
+MOD12_02233A08: ; 0x02233A08
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ ldr r4, _02233A5C ; =0x0224520C
+ add r6, r2, #0
+ add r3, r0, #0
+ add r7, r1, #0
+ ldmia r4!, {r0, r1}
+ add r2, sp, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r4]
+ ldr r5, _02233A60 ; =0x0224533C
+ str r0, [r2]
+ add r4, sp, #0xc
+ mov r2, #6
+_02233A24:
+ ldmia r5!, {r0, r1}
+ stmia r4!, {r0, r1}
+ sub r2, r2, #1
+ bne _02233A24
+ ldr r0, [r5]
+ lsl r1, r6, #5
+ str r0, [r4]
+ add r1, #0x60
+ add r0, sp, #0
+ strh r1, [r0, #0xc]
+ mov r1, #0x20
+ strh r1, [r0, #0xe]
+ lsl r1, r6, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ add r1, r7, #0
+ str r0, [sp, #0x18]
+ add r0, r3, #0
+ add r2, sp, #0xc
+ bl FUN_0200C154
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_0200C59C
+ add r0, r4, #0
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02233A5C: .word 0x0224520C
+_02233A60: .word 0x0224533C
+
+ thumb_func_start MOD12_02233A64
+MOD12_02233A64: ; 0x02233A64
+ ldr r3, _02233A68 ; =0x0200C3DD
+ bx r3
+ .align 2, 0
+_02233A68: .word 0x0200C3DD
+
+ thumb_func_start MOD12_02233A6C
+MOD12_02233A6C: ; 0x02233A6C
+ push {r4, lr}
+ ldr r1, _02233A88 ; =0x000080EC
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _02233A88 ; =0x000080EC
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _02233A88 ; =0x000080EC
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_02233A88: .word 0x000080EC
+
+ thumb_func_start MOD12_02233A8C
+MOD12_02233A8C: ; 0x02233A8C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r1, #0
+ ldr r0, [r7, #0x50]
+ ldr r1, [r7, #0x18]
+ ldr r2, [r7, #0x1c]
+ bl MOD12_022339B8
+ mov r4, #0
+ add r5, r7, #0
+ add r6, #0xd0
+_02233AA2:
+ ldr r0, [r7, #0x18]
+ ldr r1, [r7, #0x1c]
+ add r2, r4, #0
+ bl MOD12_02233A08
+ add r1, r5, #0
+ add r1, #0xb4
+ str r0, [r1]
+ str r4, [sp]
+ ldr r0, [r7, #0x50]
+ ldr r1, [r7, #0x18]
+ ldr r2, [r7, #0x1c]
+ add r3, r6, #0
+ bl MOD12_02233884
+ add r1, r5, #0
+ add r1, #0xa8
+ add r4, r4, #1
+ str r0, [r1]
+ add r5, r5, #4
+ add r6, #8
+ cmp r4, #3
+ blt _02233AA2
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02233AD4
+MOD12_02233AD4: ; 0x02233AD4
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_02233ADC:
+ add r1, r5, #0
+ add r1, #0xa8
+ ldr r0, [r6, #0x1c]
+ ldr r1, [r1]
+ add r2, r4, #0
+ bl MOD12_02233978
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ bl MOD12_02233A64
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _02233ADC
+ ldr r0, [r6, #0x1c]
+ bl MOD12_02233A6C
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD12_02233B04
+MOD12_02233B04: ; 0x02233B04
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02233B50 ; =0x000080F5
+ add r4, r2, #0
+ add r5, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x2e
+ mov r3, #0xe
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02233B54 ; =0x000080F3
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0xd
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02233B54 ; =0x000080F3
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0xc
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_02233B50: .word 0x000080F5
+_02233B54: .word 0x000080F3
+
+ thumb_func_start MOD12_02233B58
+MOD12_02233B58: ; 0x02233B58
+ push {r4, lr}
+ ldr r1, _02233B74 ; =0x000080F5
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _02233B78 ; =0x000080F3
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _02233B78 ; =0x000080F3
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_02233B74: .word 0x000080F5
+_02233B78: .word 0x000080F3
+
+ thumb_func_start MOD12_02233B7C
+MOD12_02233B7C: ; 0x02233B7C
+ push {r4, r5, lr}
+ sub sp, #0x34
+ ldr r4, _02233BB8 ; =0x022452D4
+ add r5, r0, #0
+ add r3, sp, #0
+ mov r2, #6
+_02233B88:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02233B88
+ ldr r0, [r4]
+ add r2, sp, #0
+ str r0, [r3]
+ ldr r0, [r5, #0x18]
+ ldr r1, [r5, #0x1c]
+ bl FUN_0200C154
+ add r4, r0, #0
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4]
+ bl FUN_0200C59C
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ str r4, [r5, r0]
+ add sp, #0x34
+ pop {r4, r5, pc}
+ nop
+_02233BB8: .word 0x022452D4
+
+ thumb_func_start MOD12_02233BBC
+MOD12_02233BBC: ; 0x02233BBC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02233BCE
+ bl ErrorHandling
+_02233BCE:
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200C3DC
+ mov r0, #0x5f
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02233BE4
+MOD12_02233BE4: ; 0x02233BE4
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r6, r1, #0
+ add r5, r2, #0
+ cmp r0, #0
+ bne _02233BFA
+ bl ErrorHandling
+_02233BFA:
+ ldr r1, _02233C60 ; =0x02245200
+ lsl r2, r6, #2
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r3, _02233C64 ; =0x02245202
+ ldrsh r1, [r1, r2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, r0]
+ bl FUN_0200C714
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r5, #0
+ bl FUN_0200C5C0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C644
+ cmp r5, #3
+ bhi _02233C5C
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02233C36: ; jump table
+ .short _02233C3E - _02233C36 - 2 ; case 0
+ .short _02233C46 - _02233C36 - 2 ; case 1
+ .short _02233C4E - _02233C36 - 2 ; case 2
+ .short _02233C56 - _02233C36 - 2 ; case 3
+_02233C3E:
+ ldr r0, _02233C68 ; =0x000006E1
+ bl FUN_020054C8
+ pop {r4, r5, r6, pc}
+_02233C46:
+ ldr r0, _02233C6C ; =0x000006DF
+ bl FUN_020054C8
+ pop {r4, r5, r6, pc}
+_02233C4E:
+ ldr r0, _02233C70 ; =0x000005DD
+ bl FUN_020054C8
+ pop {r4, r5, r6, pc}
+_02233C56:
+ ldr r0, _02233C70 ; =0x000005DD
+ bl FUN_020054C8
+_02233C5C:
+ pop {r4, r5, r6, pc}
+ nop
+_02233C60: .word 0x02245200
+_02233C64: .word 0x02245202
+_02233C68: .word 0x000006E1
+_02233C6C: .word 0x000006DF
+_02233C70: .word 0x000005DD
+
+ thumb_func_start MOD12_02233C74
+MOD12_02233C74: ; 0x02233C74
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02233C86
+ bl ErrorHandling
+_02233C86:
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ pop {r4, pc}
+
+ thumb_func_start MOD12_02233C94
+MOD12_02233C94: ; 0x02233C94
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ str r1, [sp]
+ mov r0, #0x15
+ mov r1, #0x28
+ add r6, r2, #0
+ add r7, r3, #0
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x28
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r0, #0
+ strb r0, [r7]
+ str r7, [r4, #4]
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [sp]
+ str r5, [r4]
+ strb r0, [r4, #8]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r0, #0xb4
+ ldr r0, [r0]
+ add r1, #0xc
+ add r2, #0xe
+ bl FUN_0200C7A0
+ cmp r6, #6
+ bhi _02233CEE
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02233CE0: ; jump table
+ .short _02233CEE - _02233CE0 - 2 ; case 0
+ .short _02233D04 - _02233CE0 - 2 ; case 1
+ .short _02233D10 - _02233CE0 - 2 ; case 2
+ .short _02233D20 - _02233CE0 - 2 ; case 3
+ .short _02233D30 - _02233CE0 - 2 ; case 4
+ .short _02233D40 - _02233CE0 - 2 ; case 5
+ .short _02233D50 - _02233CE0 - 2 ; case 6
+_02233CEE:
+ mov r0, #1
+ strb r0, [r4, #0x18]
+ ldr r0, _02233D64 ; =0xFFFFFE00
+ ldr r2, _02233D68 ; =0x00009C40
+ strh r0, [r4, #0x24]
+ strh r0, [r4, #0x26]
+ ldr r0, _02233D6C ; =MOD12_02233E48
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+_02233D04:
+ ldr r0, _02233D70 ; =MOD12_02233D84
+ ldr r2, _02233D68 ; =0x00009C40
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+_02233D10:
+ ldr r0, _02233D74 ; =0xFFFFFD00
+ ldr r2, _02233D68 ; =0x00009C40
+ strh r0, [r4, #0x24]
+ ldr r0, _02233D6C ; =MOD12_02233E48
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+_02233D20:
+ ldr r0, _02233D78 ; =0xFFFFFC00
+ ldr r2, _02233D68 ; =0x00009C40
+ strh r0, [r4, #0x24]
+ ldr r0, _02233D6C ; =MOD12_02233E48
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+_02233D30:
+ ldr r0, _02233D7C ; =0xFFFFFB80
+ ldr r2, _02233D68 ; =0x00009C40
+ strh r0, [r4, #0x24]
+ ldr r0, _02233D6C ; =MOD12_02233E48
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+_02233D40:
+ ldr r0, _02233D80 ; =0xFFFFFD80
+ ldr r2, _02233D68 ; =0x00009C40
+ strh r0, [r4, #0x24]
+ ldr r0, _02233D6C ; =MOD12_02233E48
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+_02233D50:
+ mov r0, #0xff
+ mvn r0, r0
+ strh r0, [r4, #0x24]
+ ldr r0, _02233D6C ; =MOD12_02233E48
+ ldr r2, _02233D68 ; =0x00009C40
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02233D64: .word 0xFFFFFE00
+_02233D68: .word 0x00009C40
+_02233D6C: .word MOD12_02233E48
+_02233D70: .word MOD12_02233D84
+_02233D74: .word 0xFFFFFD00
+_02233D78: .word 0xFFFFFC00
+_02233D7C: .word 0xFFFFFB80
+_02233D80: .word 0xFFFFFD80
+
+ thumb_func_start MOD12_02233D84
+MOD12_02233D84: ; 0x02233D84
+ push {r4, lr}
+ add r2, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r2, #0xa]
+ cmp r0, #0
+ beq _02233D9A
+ cmp r0, #1
+ beq _02233DB0
+ cmp r0, #2
+ beq _02233DF0
+ b _02233E0A
+_02233D9A:
+ mov r0, #0xc
+ ldrsh r0, [r2, r0]
+ lsl r0, r0, #8
+ str r0, [r2, #0x10]
+ mov r0, #0xe
+ ldrsh r0, [r2, r0]
+ lsl r0, r0, #8
+ str r0, [r2, #0x14]
+ ldrb r0, [r2, #0xa]
+ add r0, r0, #1
+ strb r0, [r2, #0xa]
+_02233DB0:
+ ldrb r0, [r2, #0x18]
+ mov r1, #1
+ tst r0, r1
+ beq _02233DC4
+ mov r0, #0xc
+ ldrsh r0, [r2, r0]
+ lsl r3, r0, #8
+ lsl r0, r1, #9
+ add r0, r3, r0
+ b _02233DCE
+_02233DC4:
+ mov r0, #0xc
+ ldrsh r0, [r2, r0]
+ lsl r3, r0, #8
+ lsl r0, r1, #9
+ sub r0, r3, r0
+_02233DCE:
+ str r0, [r2, #0x10]
+ ldrb r0, [r2, #0x18]
+ add r0, r0, #1
+ strb r0, [r2, #0x18]
+ ldrb r0, [r2, #0x18]
+ cmp r0, #4
+ bls _02233E1E
+ mov r0, #0xc
+ ldrsh r0, [r2, r0]
+ lsl r0, r0, #8
+ str r0, [r2, #0x10]
+ mov r0, #0
+ strb r0, [r2, #0x18]
+ ldrb r0, [r2, #0xa]
+ add r0, r0, #1
+ strb r0, [r2, #0xa]
+ b _02233E1E
+_02233DF0:
+ mov r0, #9
+ ldrsb r1, [r2, r0]
+ add r1, r1, #1
+ strb r1, [r2, #9]
+ ldrsb r0, [r2, r0]
+ cmp r0, #0xf
+ ble _02233E1E
+ mov r0, #0
+ strb r0, [r2, #9]
+ ldrb r0, [r2, #0xa]
+ add r0, r0, #1
+ strb r0, [r2, #0xa]
+ b _02233E1E
+_02233E0A:
+ ldr r0, [r2, #4]
+ mov r1, #1
+ strb r1, [r0]
+ add r0, r2, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+_02233E1E:
+ ldrb r0, [r2, #8]
+ ldr r1, [r2]
+ ldr r3, [r2, #0x10]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ asr r1, r3, #7
+ lsr r1, r1, #0x18
+ add r1, r3, r1
+ ldr r3, [r2, #0x14]
+ add r0, #0xb4
+ asr r2, r3, #7
+ lsr r2, r2, #0x18
+ add r2, r3, r2
+ lsl r1, r1, #8
+ lsl r2, r2, #8
+ ldr r0, [r0]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ pop {r4, pc}
+
+ thumb_func_start MOD12_02233E48
+MOD12_02233E48: ; 0x02233E48
+ push {r4, lr}
+ add r2, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r2, #0xa]
+ cmp r0, #0
+ beq _02233E5A
+ cmp r0, #1
+ beq _02233E70
+ b _02233ED8
+_02233E5A:
+ mov r0, #0xc
+ ldrsh r0, [r2, r0]
+ lsl r0, r0, #8
+ str r0, [r2, #0x10]
+ mov r0, #0xe
+ ldrsh r0, [r2, r0]
+ lsl r0, r0, #8
+ str r0, [r2, #0x14]
+ ldrb r0, [r2, #0xa]
+ add r0, r0, #1
+ strb r0, [r2, #0xa]
+_02233E70:
+ mov r0, #0x24
+ ldrsh r1, [r2, r0]
+ ldr r3, [r2, #0x14]
+ add r1, r3, r1
+ str r1, [r2, #0x14]
+ ldrsh r0, [r2, r0]
+ add r0, #0x80
+ strh r0, [r2, #0x24]
+ mov r0, #0xe
+ ldrsh r0, [r2, r0]
+ lsl r1, r0, #8
+ ldr r0, [r2, #0x14]
+ cmp r0, r1
+ blt _02233EAE
+ str r1, [r2, #0x14]
+ ldrb r0, [r2, #0x18]
+ cmp r0, #0
+ beq _02233EA8
+ mov r0, #0x26
+ ldrsh r0, [r2, r0]
+ strh r0, [r2, #0x24]
+ ldrb r0, [r2, #0x18]
+ sub r0, r0, #1
+ strb r0, [r2, #0x18]
+ ldrb r0, [r2, #0xa]
+ sub r0, r0, #1
+ strb r0, [r2, #0xa]
+ b _02233EAE
+_02233EA8:
+ ldrb r0, [r2, #0xa]
+ add r0, r0, #1
+ strb r0, [r2, #0xa]
+_02233EAE:
+ ldrb r0, [r2, #8]
+ ldr r1, [r2]
+ ldr r3, [r2, #0x10]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ asr r1, r3, #7
+ lsr r1, r1, #0x18
+ add r1, r3, r1
+ ldr r3, [r2, #0x14]
+ add r0, #0xb4
+ asr r2, r3, #7
+ lsr r2, r2, #0x18
+ add r2, r3, r2
+ lsl r1, r1, #8
+ lsl r2, r2, #8
+ ldr r0, [r0]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ pop {r4, pc}
+_02233ED8:
+ ldr r0, [r2, #4]
+ mov r1, #1
+ strb r1, [r0]
+ add r0, r2, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+
+ thumb_func_start MOD12_02233EEC
+MOD12_02233EEC: ; 0x02233EEC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _02233F00
+ bl ErrorHandling
+_02233F00:
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02233F70 ; =0x000080ED
+ mov r2, #0x2e
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x18]
+ ldr r1, [r5, #0x1c]
+ mov r3, #0x14
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02233F70 ; =0x000080ED
+ mov r2, #0x2e
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x18]
+ ldr r1, [r5, #0x1c]
+ mov r3, #0x13
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02233F70 ; =0x000080ED
+ mov r2, #0x2e
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x18]
+ ldr r1, [r5, #0x1c]
+ mov r3, #0x12
+ bl FUN_0200C13C
+ ldr r0, [r5, #0x18]
+ ldr r1, [r5, #0x1c]
+ ldr r2, _02233F74 ; =0x02245370
+ bl FUN_0200C154
+ add r1, r5, #0
+ add r1, #0xc0
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ lsl r1, r4, #5
+ add r5, #0xc0
+ add r1, #0x60
+ lsl r1, r1, #0x10
+ ldr r0, [r5]
+ asr r1, r1, #0x10
+ mov r2, #0x38
+ bl FUN_0200C714
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02233F70: .word 0x000080ED
+_02233F74: .word 0x02245370
+
+ thumb_func_start MOD12_02233F78
+MOD12_02233F78: ; 0x02233F78
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x1c]
+ ldr r1, _02233FA8 ; =0x000080ED
+ bl FUN_0200C358
+ ldr r0, [r4, #0x1c]
+ ldr r1, _02233FA8 ; =0x000080ED
+ bl FUN_0200C378
+ ldr r0, [r4, #0x1c]
+ ldr r1, _02233FA8 ; =0x000080ED
+ bl FUN_0200C388
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl FUN_0200C3DC
+ mov r0, #0
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+ nop
+_02233FA8: .word 0x000080ED
+
+ thumb_func_start MOD12_02233FAC
+MOD12_02233FAC: ; 0x02233FAC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r2, #1
+ str r2, [sp]
+ str r2, [sp, #4]
+ ldr r2, _02233FF4 ; =0x000080EE
+ mov r3, #0x11
+ str r2, [sp, #8]
+ mov r2, #0x2e
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02233FF4 ; =0x000080EE
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x10
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02233FF4 ; =0x000080EE
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0xf
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_02233FF4: .word 0x000080EE
+
+ thumb_func_start MOD12_02233FF8
+MOD12_02233FF8: ; 0x02233FF8
+ push {r4, lr}
+ ldr r1, _02234014 ; =0x000080EE
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _02234014 ; =0x000080EE
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _02234014 ; =0x000080EE
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_02234014: .word 0x000080EE
+
+ thumb_func_start MOD12_02234018
+MOD12_02234018: ; 0x02234018
+ push {r4, r5, r6, lr}
+ mov r2, #0x18
+ mov r4, #0
+ mul r2, r1
+ add r5, r0, r2
+ add r6, r4, #0
+_02234024:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02234038
+ bl FUN_0200C3DC
+ add r0, r5, #0
+ add r0, #0xc4
+ str r6, [r0]
+_02234038:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02234024
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02234044
+MOD12_02234044: ; 0x02234044
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_0223404A:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD12_02234018
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0223404A
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223405C
+MOD12_0223405C: ; 0x0223405C
+ push {r4, r5, r6, lr}
+ add r5, r2, #0
+ ldr r2, _02234084 ; =0x022453A4
+ add r4, r3, #0
+ bl FUN_0200C154
+ add r6, r0, #0
+ ldr r0, [r6]
+ bl FUN_0200C59C
+ lsl r1, r5, #0x10
+ lsl r2, r4, #0x10
+ add r0, r6, #0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02234084: .word 0x022453A4
+
+ thumb_func_start MOD12_02234088
+MOD12_02234088: ; 0x02234088
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ add r7, r1, #0
+ add r0, r3, #0
+ mov r1, #0xa
+ str r2, [sp, #4]
+ bl _s32_div_f
+ str r0, [sp, #8]
+ cmp r0, #0x18
+ ble _022340A4
+ mov r0, #0x18
+ str r0, [sp, #8]
+_022340A4:
+ mov r0, #0x18
+ add r1, r7, #0
+ mul r1, r0
+ ldr r0, [sp]
+ ldr r4, [sp, #8]
+ mov r6, #0
+ add r5, r0, r1
+ b _022340CE
+_022340B4:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022340CC
+ bl FUN_0200C3DC
+ lsl r0, r4, #2
+ add r0, r5, r0
+ add r0, #0xc4
+ str r6, [r0]
+_022340CC:
+ add r4, r4, #1
+_022340CE:
+ cmp r4, #6
+ blt _022340B4
+ ldr r0, [sp, #8]
+ add r1, r7, #0
+ sub r4, r0, #1
+ mov r0, #0x18
+ mul r1, r0
+ ldr r0, [sp]
+ add r7, r0, r1
+ ldr r0, [sp, #4]
+ ldr r1, _02234190 ; =0x02245228
+ lsl r0, r0, #2
+ str r0, [sp, #0xc]
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ b _02234170
+_022340EE:
+ add r0, r4, #0
+ mov r1, #6
+ bl _s32_div_f
+ add r5, r1, #0
+ add r0, r4, #0
+ mov r1, #6
+ bl _s32_div_f
+ str r0, [sp, #0x14]
+ lsl r0, r5, #2
+ add r0, r7, r0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0223414C
+ ldr r3, _02234190 ; =0x02245228
+ ldr r2, [sp, #0xc]
+ ldr r0, [sp]
+ ldrsh r3, [r3, r2]
+ lsl r2, r5, #3
+ ldr r1, [sp]
+ add r2, r3, r2
+ ldr r6, [sp, #0x10]
+ mov r3, #2
+ ldrsh r3, [r6, r3]
+ ldr r0, [r0, #0x18]
+ ldr r1, [r1, #0x1c]
+ bl MOD12_0223405C
+ lsl r2, r5, #2
+ add r1, r7, r2
+ add r1, #0xc4
+ str r0, [r1]
+ add r0, r7, r2
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r1, [sp, #0x14]
+ bl FUN_0200C5C0
+ lsl r0, r5, #2
+ add r0, r7, r0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl MOD12_0223419C
+ b _0223416E
+_0223414C:
+ bl FUN_0200C5CC
+ ldr r1, [sp, #0x14]
+ cmp r0, r1
+ bhs _0223416E
+ lsl r0, r5, #2
+ add r0, r7, r0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_0200C5C0
+ lsl r0, r5, #2
+ add r0, r7, r0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl MOD12_0223419C
+_0223416E:
+ sub r4, r4, #1
+_02234170:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bgt _022340EE
+ ldr r0, _02234194 ; =0x000006E1
+ bl FUN_020054C8
+ ldr r2, [sp, #8]
+ ldr r0, _02234194 ; =0x000006E1
+ sub r2, r2, #1
+ ldr r1, _02234198 ; =0x0000FFFF
+ lsl r2, r2, #6
+ bl FUN_02004D34
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02234190: .word 0x02245228
+_02234194: .word 0x000006E1
+_02234198: .word 0x0000FFFF
+
+ thumb_func_start MOD12_0223419C
+MOD12_0223419C: ; 0x0223419C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x15
+ mov r1, #0x10
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x10
+ add r4, r0, #0
+ bl MI_CpuFill8
+ add r0, r5, #0
+ mov r1, #0
+ str r5, [r4]
+ bl FUN_0200C644
+ ldr r0, _022341C8 ; =MOD12_022341D0
+ ldr r2, _022341CC ; =0x00009C40
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022341C8: .word MOD12_022341D0
+_022341CC: .word 0x00009C40
+
+ thumb_func_start MOD12_022341D0
+MOD12_022341D0: ; 0x022341D0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0
+ beq _022341E6
+ cmp r0, #1
+ beq _02234202
+ cmp r0, #2
+ beq _0223423C
+ b _0223428A
+_022341E6:
+ ldr r0, [r4]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, _022342A0 ; =0x3DCCCCCD
+ mov r1, #1
+ str r0, [r4, #4]
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ bl FUN_0200C644
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02234202:
+ ldr r0, [r4, #4]
+ ldr r1, _022342A4 ; =0x3E99999A
+ bl _fadd
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ ldr r1, _022342A4 ; =0x3E99999A
+ bl _fadd
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #8]
+ bl FUN_0200C884
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0200C8BC
+ mov r1, #0xff
+ ldr r0, [r4, #4]
+ lsl r1, r1, #0x16
+ bl _fgeq
+ blo _0223429E
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223423C:
+ ldr r0, [r4, #4]
+ ldr r1, _022342A4 ; =0x3E99999A
+ bl _fsub
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ ldr r1, _022342A4 ; =0x3E99999A
+ bl _fsub
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #8]
+ bl FUN_0200C884
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0200C8BC
+ mov r1, #0xfe
+ ldr r0, [r4, #4]
+ lsl r1, r1, #0x16
+ bl _fleq
+ bhi _0223429E
+ mov r1, #0xfe
+ lsl r1, r1, #0x16
+ ldr r0, [r4]
+ add r2, r1, #0
+ bl FUN_0200C884
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0200C898
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223428A:
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0200C840
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0223429E:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022342A0: .word 0x3DCCCCCD
+_022342A4: .word 0x3E99999A
+
+ thumb_func_start MOD12_022342A8
+MOD12_022342A8: ; 0x022342A8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r2, #1
+ str r2, [sp]
+ str r2, [sp, #4]
+ ldr r2, _0223432C ; =0x000080F0
+ mov r3, #0x1a
+ str r2, [sp, #8]
+ mov r2, #0x2e
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223432C ; =0x000080F0
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x19
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223432C ; =0x000080F0
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x18
+ bl FUN_0200C13C
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02234330 ; =0x000080EF
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x1d
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02234330 ; =0x000080EF
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x1c
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02234330 ; =0x000080EF
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x1b
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_0223432C: .word 0x000080F0
+_02234330: .word 0x000080EF
+
+ thumb_func_start MOD12_02234334
+MOD12_02234334: ; 0x02234334
+ push {r4, lr}
+ ldr r1, _02234368 ; =0x000080F0
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _02234368 ; =0x000080F0
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _02234368 ; =0x000080F0
+ add r0, r4, #0
+ bl FUN_0200C388
+ ldr r1, _0223436C ; =0x000080EF
+ add r0, r4, #0
+ bl FUN_0200C358
+ ldr r1, _0223436C ; =0x000080EF
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0223436C ; =0x000080EF
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_02234368: .word 0x000080F0
+_0223436C: .word 0x000080EF
+
+ thumb_func_start MOD12_02234370
+MOD12_02234370: ; 0x02234370
+ push {r3, r4, r5, r6, r7, lr}
+ mov r2, #0x14
+ mov r4, #0
+ mul r2, r1
+ mov r7, #0x49
+ add r5, r0, r2
+ add r6, r4, #0
+ lsl r7, r7, #2
+_02234380:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _02234390
+ bl FUN_0200C3DC
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r6, [r5, r0]
+_02234390:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _02234380
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223439C
+MOD12_0223439C: ; 0x0223439C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_022343A2:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD12_02234370
+ add r4, r4, #1
+ cmp r4, #3
+ blt _022343A2
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022343B4
+MOD12_022343B4: ; 0x022343B4
+ push {r4, r5, r6, lr}
+ add r5, r2, #0
+ ldr r2, _022343DC ; =0x02245308
+ add r4, r3, #0
+ bl FUN_0200C154
+ add r6, r0, #0
+ ldr r0, [r6]
+ bl FUN_0200C59C
+ lsl r1, r5, #0x10
+ lsl r2, r4, #0x10
+ add r0, r6, #0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022343DC: .word 0x02245308
+
+ thumb_func_start MOD12_022343E0
+MOD12_022343E0: ; 0x022343E0
+ push {r4, r5, r6, lr}
+ add r5, r2, #0
+ ldr r2, _02234408 ; =0x02245238
+ add r4, r3, #0
+ bl FUN_0200C154
+ add r6, r0, #0
+ ldr r0, [r6]
+ bl FUN_0200C59C
+ lsl r1, r5, #0x10
+ lsl r2, r4, #0x10
+ add r0, r6, #0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02234408: .word 0x02245238
+
+ thumb_func_start MOD12_0223440C
+MOD12_0223440C: ; 0x0223440C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x2e
+ ldrb r0, [r0]
+ cmp r0, #5
+ bls _0223441E
+ b _022345AC
+_0223441E:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223442A: ; jump table
+ .short _02234436 - _0223442A - 2 ; case 0
+ .short _0223447C - _0223442A - 2 ; case 1
+ .short _022344BC - _0223442A - 2 ; case 2
+ .short _022344EC - _0223442A - 2 ; case 3
+ .short _0223452A - _0223442A - 2 ; case 4
+ .short _0223457C - _0223442A - 2 ; case 5
+_02234436:
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_0200C840
+ mov r0, #2
+ ldr r1, [r4, #0x10]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [r4, #0x20]
+ mov r0, #0x12
+ ldr r1, [r4, #0x14]
+ lsl r0, r0, #0xa
+ add r0, r1, r0
+ str r0, [r4, #0x24]
+ ldr r1, [r4, #0x20]
+ ldr r0, [r4, #0x10]
+ sub r0, r1, r0
+ mov r1, #0xa
+ bl _s32_div_f
+ strh r0, [r4, #0x28]
+ ldr r1, [r4, #0x24]
+ ldr r0, [r4, #0x14]
+ sub r0, r1, r0
+ mov r1, #0xa
+ bl _s32_div_f
+ strh r0, [r4, #0x2a]
+ add r0, r4, #0
+ add r0, #0x2e
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2e
+ strb r1, [r0]
+_0223447C:
+ mov r1, #0x28
+ ldrsh r0, [r4, r1]
+ ldr r2, [r4, #0x10]
+ add r0, r2, r0
+ str r0, [r4, #0x10]
+ mov r0, #0x2a
+ ldrsh r0, [r4, r0]
+ ldr r2, [r4, #0x14]
+ add r0, r2, r0
+ str r0, [r4, #0x14]
+ ldrsh r2, [r4, r1]
+ cmp r2, #0
+ ble _0223449E
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ bge _022344AC
+_0223449E:
+ cmp r2, #0
+ bge _022344AA
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ ble _022344AC
+_022344AA:
+ b _022345D0
+_022344AC:
+ add r0, r4, #0
+ add r0, #0x2e
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2e
+ strb r1, [r0]
+ b _022345D0
+_022344BC:
+ add r0, r4, #0
+ add r0, #0x2f
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2f
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x2f
+ ldrb r0, [r0]
+ cmp r0, #3
+ bls _022345D0
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x2f
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x2e
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2e
+ strb r1, [r0]
+ b _022345D0
+_022344EC:
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ str r0, [r4, #0x20]
+ add r0, r4, #0
+ add r0, #0x2d
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ str r0, [r4, #0x24]
+ ldr r1, [r4, #0x20]
+ ldr r0, [r4, #0x10]
+ sub r0, r1, r0
+ mov r1, #6
+ bl _s32_div_f
+ strh r0, [r4, #0x28]
+ ldr r1, [r4, #0x24]
+ ldr r0, [r4, #0x14]
+ sub r0, r1, r0
+ mov r1, #6
+ bl _s32_div_f
+ strh r0, [r4, #0x2a]
+ add r0, r4, #0
+ add r0, #0x2e
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2e
+ strb r1, [r0]
+_0223452A:
+ mov r1, #0x28
+ ldrsh r0, [r4, r1]
+ ldr r2, [r4, #0x10]
+ add r0, r2, r0
+ str r0, [r4, #0x10]
+ mov r0, #0x2a
+ ldrsh r0, [r4, r0]
+ ldr r2, [r4, #0x14]
+ add r0, r2, r0
+ str r0, [r4, #0x14]
+ ldrsh r2, [r4, r1]
+ cmp r2, #0
+ ble _0223454C
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ bge _02234558
+_0223454C:
+ cmp r2, #0
+ bge _022345D0
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ bgt _022345D0
+_02234558:
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ str r0, [r4, #0x10]
+ add r0, r4, #0
+ add r0, #0x2d
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ str r0, [r4, #0x14]
+ add r0, r4, #0
+ add r0, #0x2e
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2e
+ strb r1, [r0]
+ b _022345D0
+_0223457C:
+ add r0, r4, #0
+ add r0, #0x2f
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2f
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x2f
+ ldrb r0, [r0]
+ cmp r0, #2
+ bls _022345D0
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x2f
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x2e
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2e
+ strb r1, [r0]
+ b _022345D0
+_022345AC:
+ ldr r0, [r4, #4]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200C644
+ mov r0, #0x6e
+ lsl r0, r0, #4
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+_022345D0:
+ mov r1, #2
+ ldr r0, [r4, #4]
+ lsl r1, r1, #0xc
+ bl FUN_0200C8BC
+ ldr r2, [r4, #0x10]
+ ldr r3, [r4, #0x14]
+ asr r1, r2, #7
+ lsr r1, r1, #0x18
+ add r1, r2, r1
+ asr r2, r3, #7
+ lsr r2, r2, #0x18
+ add r2, r3, r2
+ lsl r1, r1, #8
+ lsl r2, r2, #8
+ ldr r0, [r4, #4]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022345FC
+MOD12_022345FC: ; 0x022345FC
+ push {r4, r5, r6, lr}
+ mov r2, #0x14
+ mul r2, r1
+ mov r6, #0x49
+ mov r4, #0
+ add r5, r0, r2
+ lsl r6, r6, #2
+_0223460A:
+ ldr r0, [r5, r6]
+ cmp r0, #0
+ beq _0223461C
+ bl FUN_0200C658
+ cmp r0, #0
+ bne _0223461C
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0223461C:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _0223460A
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD12_02234628
+MOD12_02234628: ; 0x02234628
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r4, r2, #0
+ str r0, [sp, #0x1c]
+ str r1, [sp]
+ add r0, r4, #0
+ mov r1, #0xa
+ bl _s32_div_f
+ str r0, [sp, #4]
+ cmp r0, #5
+ ble _02234644
+ bl ErrorHandling
+_02234644:
+ ldr r0, [sp]
+ mov r1, #0x14
+ lsl r7, r0, #2
+ ldr r0, _02234770 ; =0x022451F4
+ mov r5, #0
+ add r0, r0, r7
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ mul r1, r0
+ ldr r0, [sp, #0x1c]
+ add r0, r0, r1
+ str r0, [sp, #8]
+ ldr r0, _02234774 ; =0x02245200
+ add r0, r0, r7
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x14]
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ b _02234738
+_02234672:
+ ldr r0, [sp, #8]
+ lsl r2, r5, #2
+ add r1, r0, r2
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02234736
+ ldr r3, _02234770 ; =0x022451F4
+ ldr r0, [sp, #0x1c]
+ ldrsh r3, [r3, r7]
+ add r2, r5, r2
+ ldr r4, [sp, #0xc]
+ ldr r1, [sp, #0x1c]
+ add r2, r3, r2
+ mov r3, #2
+ ldrsh r3, [r4, r3]
+ ldr r0, [r0, #0x18]
+ ldr r1, [r1, #0x1c]
+ bl MOD12_022343B4
+ ldr r1, [sp, #8]
+ lsl r2, r5, #2
+ add r2, r1, r2
+ mov r1, #0x49
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ add r0, r1, #0
+ ldr r0, [r2, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #0x15
+ mov r1, #0x34
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x34
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [sp, #0x1c]
+ lsl r1, r5, #2
+ str r0, [r4]
+ ldr r0, [sp, #8]
+ ldr r2, _02234774 ; =0x02245200
+ add r1, r0, r1
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ ldr r6, [sp, #0x10]
+ str r0, [r4, #8]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x1c]
+ mov r3, #2
+ ldrsh r2, [r2, r7]
+ ldrsh r3, [r6, r3]
+ ldr r0, [r0, #0x18]
+ ldr r1, [r1, #0x1c]
+ bl MOD12_022343E0
+ str r0, [r4, #4]
+ ldr r0, _02234774 ; =0x02245200
+ ldr r1, [sp, #0x10]
+ ldrsh r0, [r0, r7]
+ ldr r2, _02234778 ; =0x00009C40
+ lsl r0, r0, #8
+ str r0, [r4, #0x10]
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ lsl r0, r0, #8
+ str r0, [r4, #0x14]
+ ldr r0, _02234770 ; =0x022451F4
+ ldrsh r1, [r0, r7]
+ lsl r0, r5, #2
+ add r0, r5, r0
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+ ldr r1, [sp, #0xc]
+ mov r0, #2
+ ldrsh r1, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x2d
+ strb r1, [r0]
+ add r1, r4, #0
+ ldr r0, [sp, #0x14]
+ add r1, #0x30
+ strb r0, [r1]
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x31
+ strb r0, [r1]
+ ldr r0, _0223477C ; =MOD12_0223440C
+ add r1, r4, #0
+ bl FUN_0200CA44
+_02234736:
+ add r5, r5, #1
+_02234738:
+ ldr r0, [sp, #4]
+ cmp r5, r0
+ blt _02234672
+ ldr r0, [sp]
+ mov r1, #0x14
+ mul r1, r0
+ ldr r0, [sp, #0x1c]
+ mov r7, #0x49
+ lsl r7, r7, #2
+ add r4, r0, r1
+ add r6, r7, #0
+ b _02234768
+_02234750:
+ lsl r0, r5, #2
+ add r0, r4, r0
+ ldr r0, [r0, r6]
+ cmp r0, #0
+ beq _02234766
+ bl FUN_0200C3DC
+ lsl r0, r5, #2
+ add r1, r4, r0
+ mov r0, #0
+ str r0, [r1, r7]
+_02234766:
+ add r5, r5, #1
+_02234768:
+ cmp r5, #5
+ blt _02234750
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02234770: .word 0x022451F4
+_02234774: .word 0x02245200
+_02234778: .word 0x00009C40
+_0223477C: .word MOD12_0223440C
+
+ thumb_func_start MOD12_02234780
+MOD12_02234780: ; 0x02234780
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r1, #0
+ str r0, [sp]
+ cmp r2, #1
+ bne _02234790
+ mov r6, #1
+ b _02234792
+_02234790:
+ mov r6, #0
+_02234792:
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ str r0, [sp, #8]
+ str r0, [sp, #4]
+_0223479C:
+ ldr r5, [sp]
+ mov r4, #0
+_022347A0:
+ add r0, r5, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022347BC
+ add r1, r7, #0
+ bl FUN_0200C90C
+ add r0, r5, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ add r1, r6, #0
+ bl FUN_0200C644
+_022347BC:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _022347A0
+ mov r1, #0x5b
+ ldr r0, [sp, #8]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _022347E4
+ add r1, r7, #0
+ bl FUN_0200C90C
+ mov r1, #0x5b
+ ldr r0, [sp, #8]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ add r1, r6, #0
+ bl FUN_0200C644
+_022347E4:
+ mov r1, #0x63
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ add r1, r7, #0
+ bl FUN_02011AF0
+ mov r1, #0x77
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ add r1, r7, #0
+ bl FUN_02011AF0
+ mov r1, #0x63
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ add r1, r6, #0
+ bl FUN_020119D0
+ mov r1, #0x77
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ add r1, r6, #0
+ bl FUN_020119D0
+ ldr r0, [sp]
+ add r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #8]
+ add r0, r0, #4
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r0, #0x14
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ cmp r0, #4
+ blt _0223479C
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD12_0223483C
+MOD12_0223483C: ; 0x0223483C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ mov r0, #0
+ strb r0, [r7]
+ mov r0, #0x15
+ mov r1, #0x10
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x10
+ bl MI_CpuFill8
+ str r5, [r4]
+ mov r2, #0xfa
+ strb r6, [r4, #0xd]
+ ldr r0, _02234870 ; =MOD12_02234874
+ add r1, r4, #0
+ lsl r2, r2, #2
+ str r7, [r4, #4]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02234870: .word MOD12_02234874
+
+ thumb_func_start MOD12_02234874
+MOD12_02234874: ; 0x02234874
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #3
+ bls _02234882
+ b _022349B8
+_02234882:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223488E: ; jump table
+ .short _02234896 - _0223488E - 2 ; case 0
+ .short _022348F2 - _0223488E - 2 ; case 1
+ .short _02234926 - _0223488E - 2 ; case 2
+ .short _0223497A - _0223488E - 2 ; case 3
+_02234896:
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0
+ bne _022348BE
+ mov r0, #1
+ lsl r0, r0, #0xc
+ strh r0, [r4, #8]
+ mov r1, #0
+ strh r1, [r4, #0xa]
+ ldr r0, _022349D0 ; =0x04000050
+ str r1, [sp]
+ mov r2, #0xe
+ mov r3, #0x10
+ bl G2x_SetBlendAlpha_
+ mov r1, #1
+ ldr r0, [r4]
+ add r2, r1, #0
+ bl MOD12_02234780
+ b _022348E0
+_022348BE:
+ mov r3, #0
+ mov r0, #1
+ strh r3, [r4, #8]
+ lsl r0, r0, #0xc
+ strh r0, [r4, #0xa]
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _022349D0 ; =0x04000050
+ mov r1, #4
+ mov r2, #0xe
+ bl G2x_SetBlendAlpha_
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #1
+ bl MOD12_0222DF30
+_022348E0:
+ ldr r0, _022349D4 ; =MOD12_022349D8
+ add r1, r4, #0
+ mov r2, #0xa
+ bl FUN_0200CA98
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_022348F2:
+ ldrb r1, [r4, #0xd]
+ cmp r1, #0
+ bne _02234912
+ mov r0, #8
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bne _02234912
+ mov r1, #0
+ ldr r0, [r4]
+ add r2, r1, #0
+ bl MOD12_02234780
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02234912:
+ cmp r1, #1
+ bne _022349CE
+ mov r0, #0xa
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bne _022349CE
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02234926:
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0
+ bne _02234946
+ mov r0, #1
+ lsl r0, r0, #0xc
+ strh r0, [r4, #8]
+ mov r0, #0
+ strh r0, [r4, #0xa]
+ str r0, [sp]
+ ldr r0, _022349D0 ; =0x04000050
+ mov r1, #4
+ mov r2, #0xe
+ mov r3, #0x10
+ bl G2x_SetBlendAlpha_
+ b _02234968
+_02234946:
+ mov r1, #0
+ mov r0, #1
+ strh r1, [r4, #8]
+ lsl r0, r0, #0xc
+ strh r0, [r4, #0xa]
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _022349D0 ; =0x04000050
+ mov r2, #0xe
+ add r3, r1, #0
+ bl G2x_SetBlendAlpha_
+ mov r1, #1
+ ldr r0, [r4]
+ add r2, r1, #0
+ bl MOD12_02234780
+_02234968:
+ ldr r0, _022349D4 ; =MOD12_022349D8
+ add r1, r4, #0
+ mov r2, #0xa
+ bl FUN_0200CA98
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223497A:
+ ldrb r1, [r4, #0xd]
+ cmp r1, #0
+ bne _0223499A
+ mov r0, #8
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bne _0223499A
+ mov r1, #1
+ ldr r0, [r4]
+ add r2, r1, #0
+ bl MOD12_0222DF30
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223499A:
+ cmp r1, #1
+ bne _022349CE
+ mov r0, #0xa
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bne _022349CE
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #1
+ bl MOD12_02234780
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_022349B8:
+ bl MOD12_02233560
+ ldr r0, [r4, #4]
+ mov r1, #1
+ strb r1, [r0]
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_022349CE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022349D0: .word 0x04000050
+_022349D4: .word MOD12_022349D8
+
+ thumb_func_start MOD12_022349D8
+MOD12_022349D8: ; 0x022349D8
+ push {r3, r4, r5, lr}
+ ldrb r3, [r1, #0xd]
+ mov r2, #0
+ cmp r3, #0
+ bne _02234A10
+ mov r4, #8
+ ldrsh r5, [r1, r4]
+ lsl r3, r4, #8
+ sub r3, r5, r3
+ strh r3, [r1, #8]
+ mov r3, #0xa
+ ldrsh r5, [r1, r3]
+ lsl r3, r4, #8
+ add r3, r5, r3
+ strh r3, [r1, #0xa]
+ ldrsh r3, [r1, r4]
+ cmp r3, #0
+ bgt _02234A00
+ strh r2, [r1, #8]
+ add r2, r2, #1
+_02234A00:
+ mov r3, #0xa
+ ldrsh r4, [r1, r3]
+ mov r3, #1
+ lsl r3, r3, #0xc
+ cmp r4, r3
+ blt _02234A3C
+ strh r3, [r1, #0xa]
+ b _02234A3C
+_02234A10:
+ mov r4, #8
+ ldrsh r5, [r1, r4]
+ lsl r3, r4, #8
+ add r3, r5, r3
+ strh r3, [r1, #8]
+ mov r3, #0xa
+ ldrsh r5, [r1, r3]
+ lsl r3, r4, #8
+ sub r3, r5, r3
+ strh r3, [r1, #0xa]
+ ldrsh r5, [r1, r4]
+ lsl r3, r4, #9
+ cmp r5, r3
+ blt _02234A30
+ strh r3, [r1, #8]
+ add r2, r2, #1
+_02234A30:
+ mov r3, #0xa
+ ldrsh r3, [r1, r3]
+ cmp r3, #0
+ bgt _02234A3C
+ mov r3, #0
+ strh r3, [r1, #0xa]
+_02234A3C:
+ mov r3, #8
+ ldrsh r3, [r1, r3]
+ asr r4, r3, #8
+ mov r3, #0xa
+ ldrsh r3, [r1, r3]
+ mov r1, #0xff
+ bic r3, r1
+ orr r3, r4
+ ldr r1, _02234A5C ; =0x04000052
+ cmp r2, #0
+ strh r3, [r1]
+ ble _02234A58
+ bl FUN_0200CAB4
+_02234A58:
+ pop {r3, r4, r5, pc}
+ nop
+_02234A5C: .word 0x04000052
+
+ thumb_func_start MOD12_02234A60
+MOD12_02234A60: ; 0x02234A60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r1, #0
+ add r4, r0, #0
+ add r5, r2, #0
+ add r6, r3, #0
+ cmp r7, #2
+ blt _02234A78
+ cmp r5, #0
+ bne _02234A78
+ bl ErrorHandling
+_02234A78:
+ cmp r7, #0x1c
+ bls _02234A7E
+ b _02234EF2
+_02234A7E:
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02234A8A: ; jump table
+ .short _02234EF6 - _02234A8A - 2 ; case 0
+ .short _02234AC4 - _02234A8A - 2 ; case 1
+ .short _02234AE2 - _02234A8A - 2 ; case 2
+ .short _02234AFC - _02234A8A - 2 ; case 3
+ .short _02234B16 - _02234A8A - 2 ; case 4
+ .short _02234B24 - _02234A8A - 2 ; case 5
+ .short _02234B38 - _02234A8A - 2 ; case 6
+ .short _02234B50 - _02234A8A - 2 ; case 7
+ .short _02234B80 - _02234A8A - 2 ; case 8
+ .short _02234BA4 - _02234A8A - 2 ; case 9
+ .short _02234BD0 - _02234A8A - 2 ; case 10
+ .short _02234BFE - _02234A8A - 2 ; case 11
+ .short _02234C2E - _02234A8A - 2 ; case 12
+ .short _02234C52 - _02234A8A - 2 ; case 13
+ .short _02234C7E - _02234A8A - 2 ; case 14
+ .short _02234CAE - _02234A8A - 2 ; case 15
+ .short _02234CD2 - _02234A8A - 2 ; case 16
+ .short _02234CF6 - _02234A8A - 2 ; case 17
+ .short _02234D16 - _02234A8A - 2 ; case 18
+ .short _02234D3A - _02234A8A - 2 ; case 19
+ .short _02234D64 - _02234A8A - 2 ; case 20
+ .short _02234D8E - _02234A8A - 2 ; case 21
+ .short _02234DAC - _02234A8A - 2 ; case 22
+ .short _02234DD6 - _02234A8A - 2 ; case 23
+ .short _02234E04 - _02234A8A - 2 ; case 24
+ .short _02234E32 - _02234A8A - 2 ; case 25
+ .short _02234E54 - _02234A8A - 2 ; case 26
+ .short _02234E7E - _02234A8A - 2 ; case 27
+ .short _02234EB6 - _02234A8A - 2 ; case 28
+_02234AC4:
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234AE2:
+ ldrb r0, [r5]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234AFC:
+ ldrb r0, [r5, #1]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234B16:
+ ldrh r2, [r5, #2]
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200AD5C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234B24:
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ ldrb r2, [r5, #4]
+ ldr r0, [r4, #0x54]
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234B38:
+ ldrb r2, [r5, #5]
+ ldr r3, [r4, #0xc]
+ ldr r0, [r4, #0x54]
+ lsl r2, r2, #3
+ add r2, r3, r2
+ add r2, #0xd0
+ ldrh r2, [r2]
+ mov r1, #0
+ bl FUN_0200B244
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234B50:
+ ldrb r0, [r5]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldrb r0, [r5, #1]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234B80:
+ ldrb r0, [r5]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldrh r2, [r5, #2]
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ bl FUN_0200AD5C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234BA4:
+ ldrb r0, [r5]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200ACF8
+ mov r0, #0
+ mov r1, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldrb r2, [r5, #4]
+ ldr r0, [r4, #0x54]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234BD0:
+ ldrb r0, [r5]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldrb r2, [r5, #5]
+ ldr r3, [r4, #0xc]
+ ldr r0, [r4, #0x54]
+ lsl r2, r2, #3
+ add r2, r3, r2
+ add r2, #0xd0
+ ldrh r2, [r2]
+ mov r1, #1
+ bl FUN_0200B244
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234BFE:
+ ldrb r0, [r5, #1]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldrb r0, [r5]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234C2E:
+ ldrb r0, [r5, #1]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldrh r2, [r5, #2]
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ bl FUN_0200AD5C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234C52:
+ ldrb r0, [r5, #1]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200ACF8
+ mov r0, #0
+ mov r1, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldrb r2, [r5, #4]
+ ldr r0, [r4, #0x54]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234C7E:
+ ldrb r0, [r5, #1]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldrb r0, [r5]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234CAE:
+ ldrh r2, [r5, #2]
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200AD5C
+ ldrb r0, [r5]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234CD2:
+ ldrh r2, [r5, #2]
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200AD5C
+ ldrb r0, [r5, #1]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234CF6:
+ ldrh r2, [r5, #2]
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200AD5C
+ mov r0, #0
+ mov r1, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldrb r2, [r5, #4]
+ ldr r0, [r4, #0x54]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234D16:
+ ldrh r2, [r5, #2]
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200AD5C
+ ldrb r0, [r5]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234D3A:
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ ldrb r2, [r5, #4]
+ ldr r0, [r4, #0x54]
+ bl FUN_0200AD38
+ ldrb r0, [r5]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234D64:
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ ldrb r2, [r5, #4]
+ ldr r0, [r4, #0x54]
+ bl FUN_0200AD38
+ ldrb r0, [r5, #1]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234D8E:
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ ldrb r2, [r5, #4]
+ ldr r0, [r4, #0x54]
+ bl FUN_0200AD38
+ ldrh r2, [r5, #2]
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ bl FUN_0200AD5C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234DAC:
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ ldrb r2, [r5, #4]
+ ldr r0, [r4, #0x54]
+ bl FUN_0200AD38
+ ldrb r0, [r5]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234DD6:
+ ldrb r2, [r5, #5]
+ ldr r3, [r4, #0xc]
+ ldr r0, [r4, #0x54]
+ lsl r2, r2, #3
+ add r2, r3, r2
+ add r2, #0xd0
+ ldrh r2, [r2]
+ mov r1, #0
+ bl FUN_0200B244
+ ldrb r0, [r5]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234E04:
+ ldrb r2, [r5, #5]
+ ldr r3, [r4, #0xc]
+ ldr r0, [r4, #0x54]
+ lsl r2, r2, #3
+ add r2, r3, r2
+ add r2, #0xd0
+ ldrh r2, [r2]
+ mov r1, #0
+ bl FUN_0200B244
+ ldrb r0, [r5, #1]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234E32:
+ ldrb r2, [r5, #5]
+ ldr r3, [r4, #0xc]
+ ldr r0, [r4, #0x54]
+ lsl r2, r2, #3
+ add r2, r3, r2
+ add r2, #0xd0
+ ldrh r2, [r2]
+ mov r1, #0
+ bl FUN_0200B244
+ ldrh r2, [r5, #2]
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ bl FUN_0200AD5C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234E54:
+ ldrb r2, [r5, #5]
+ ldr r3, [r4, #0xc]
+ ldr r0, [r4, #0x54]
+ lsl r2, r2, #3
+ add r2, r3, r2
+ add r2, #0xd0
+ ldrh r2, [r2]
+ mov r1, #0
+ bl FUN_0200B244
+ mov r0, #0
+ mov r1, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldrb r2, [r5, #4]
+ ldr r0, [r4, #0x54]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234E7E:
+ ldrb r0, [r5]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldrb r2, [r5, #5]
+ ldr r3, [r4, #0xc]
+ ldr r0, [r4, #0x54]
+ lsl r2, r2, #3
+ add r2, r3, r2
+ add r2, #0xd0
+ ldrh r2, [r2]
+ mov r1, #1
+ bl FUN_0200B244
+ ldrh r2, [r5, #2]
+ ldr r0, [r4, #0x54]
+ mov r1, #2
+ bl FUN_0200AD5C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234EB6:
+ ldrb r2, [r6]
+ ldr r3, [r4, #0xc]
+ ldr r0, [r4, #0x54]
+ lsl r2, r2, #3
+ add r2, r3, r2
+ add r2, #0xd0
+ ldrh r2, [r2]
+ mov r1, #0
+ bl FUN_0200B244
+ mov r5, #0
+_02234ECC:
+ add r0, r6, r5
+ ldrb r0, [r0, #1]
+ cmp r0, #4
+ beq _02234EF6
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ add r1, r5, #1
+ bl FUN_0200ACF8
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02234ECC
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02234EF2:
+ bl ErrorHandling
+_02234EF6:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02234EFC
+MOD12_02234EFC: ; 0x02234EFC
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x34
+ mov r1, #0xff
+ bl FUN_02019620
+ add r4, #0x34
+ add r0, r4, #0
+ bl FUN_020191D0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02234F14
+MOD12_02234F14: ; 0x02234F14
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [sp, #0x30]
+ add r6, r1, #0
+ add r7, r2, #0
+ str r3, [sp, #0xc]
+ cmp r0, #1
+ bne _02234F2A
+ mov r4, #0
+ b _02234F42
+_02234F2A:
+ ldr r1, [r5]
+ ldr r0, _02234FA8 ; =0x00000171
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _02234F40
+ ldr r0, _02234FAC ; =0x00001988
+ ldr r0, [r1, r0]
+ bl FUN_02024FF4
+ add r4, r0, #0
+ b _02234F42
+_02234F40:
+ mov r4, #1
+_02234F42:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x2c]
+ add r0, r5, #0
+ bl MOD12_02234A60
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ add r0, #0x34
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r5, #0
+ ldr r2, [r5, #0x58]
+ add r0, #0x34
+ mov r1, #1
+ bl FUN_0201BD84
+ mov r1, #0x8b
+ lsl r1, r1, #2
+ strb r0, [r5, r1]
+ cmp r4, #0
+ bne _02234F96
+ mov r0, #0xff
+ strb r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0x34
+ bl FUN_020191D0
+_02234F96:
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_02017B48
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02234FA8: .word 0x00000171
+_02234FAC: .word 0x00001988
+
+ thumb_func_start MOD12_02234FB0
+MOD12_02234FB0: ; 0x02234FB0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r7, r0, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ cmp r5, #0x2f
+ blo _02234FC4
+ bl ErrorHandling
+_02234FC4:
+ ldr r0, _02234FE4 ; =0x0224540F
+ lsl r3, r5, #2
+ ldrb r0, [r0, r3]
+ str r4, [sp]
+ ldr r2, _02234FE8 ; =0x0224540C
+ str r6, [sp, #4]
+ str r0, [sp, #8]
+ ldr r4, _02234FEC ; =0x0224540E
+ ldrh r2, [r2, r3]
+ ldrb r3, [r4, r3]
+ ldr r1, [r7, #0x44]
+ add r0, r7, #0
+ bl MOD12_02234F14
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02234FE4: .word 0x0224540F
+_02234FE8: .word 0x0224540C
+_02234FEC: .word 0x0224540E
+
+ thumb_func_start MOD12_02234FF0
+MOD12_02234FF0: ; 0x02234FF0
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ add r5, r3, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ add r2, sp, #0x10
+ add r3, sp, #0xc
+ bl FUN_02083170
+ ldr r0, [sp, #0x20]
+ str r5, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r1, [r4, #0x50]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0xc]
+ add r0, r4, #0
+ bl MOD12_02234F14
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02235020
+MOD12_02235020: ; 0x02235020
+ push {r3, lr}
+ mov r1, #0x8b
+ lsl r1, r1, #2
+ ldrb r0, [r0, r1]
+ cmp r0, #0xff
+ bne _02235030
+ mov r0, #0
+ pop {r3, pc}
+_02235030:
+ bl FUN_0201BD70
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02235038
+MOD12_02235038: ; 0x02235038
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0xc
+ mov r1, #0x15
+ bl FUN_020219F4
+ str r0, [sp, #0x30]
+ lsl r0, r4, #2
+ ldr r1, [r5, #0xc]
+ str r0, [sp, #0x2c]
+ ldr r0, [r1, r0]
+ ldr r2, [sp, #0x30]
+ mov r1, #0x76
+ bl FUN_020671BC
+ ldr r1, [r5]
+ ldr r0, _022350E8 ; =0x00000123
+ ldrb r0, [r1, r0]
+ cmp r4, r0
+ bne _02235068
+ ldr r6, _022350EC ; =0x00010200
+ b _0223506A
+_02235068:
+ ldr r6, _022350F0 ; =0x00050600
+_0223506A:
+ mov r0, #0x14
+ add r7, r4, #0
+ mul r7, r0
+ mov r0, #0x77
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r0, r0, r7
+ str r0, [sp]
+ ldr r0, [sp, #0x30]
+ mov r1, #0
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ str r6, [sp, #0xc]
+ ldr r0, _022350F4 ; =0x000080ED
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x18]
+ str r1, [sp, #0x1c]
+ str r1, [sp, #0x20]
+ str r1, [sp, #0x24]
+ mov r0, #0xf
+ str r0, [sp, #0x28]
+ ldr r1, [r5, #0x30]
+ ldr r2, [r5, #0x28]
+ ldr r3, [r5, #0x60]
+ mov r0, #0x15
+ bl MOD12_02231380
+ mov r0, #0x63
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r0, r0, r7
+ str r0, [sp]
+ ldr r1, [r5]
+ ldr r0, [sp, #0x2c]
+ add r0, r1, r0
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #0
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ str r6, [sp, #0xc]
+ ldr r0, _022350F4 ; =0x000080ED
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x18]
+ str r1, [sp, #0x1c]
+ str r1, [sp, #0x20]
+ str r1, [sp, #0x24]
+ mov r0, #0xf
+ str r0, [sp, #0x28]
+ ldr r1, [r5, #0x30]
+ ldr r2, [r5, #0x28]
+ ldr r3, [r5, #0x60]
+ mov r0, #0x15
+ bl MOD12_02231380
+ ldr r0, [sp, #0x30]
+ bl FUN_02021A20
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022350E8: .word 0x00000123
+_022350EC: .word 0x00010200
+_022350F0: .word 0x00050600
+_022350F4: .word 0x000080ED
+
+ thumb_func_start MOD12_022350F8
+MOD12_022350F8: ; 0x022350F8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_022350FE:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD12_02235038
+ add r4, r4, #1
+ cmp r4, #4
+ blt _022350FE
+ add r0, r5, #0
+ bl MOD12_0223513C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD12_02235114
+MOD12_02235114: ; 0x02235114
+ push {r4, r5, r6, lr}
+ mov r1, #0x77
+ lsl r1, r1, #2
+ add r4, r0, r1
+ sub r1, #0x50
+ mov r6, #0
+ add r5, r0, r1
+_02235122:
+ add r0, r4, #0
+ bl MOD12_0223147C
+ add r0, r5, #0
+ bl MOD12_0223147C
+ add r6, r6, #1
+ add r4, #0x14
+ add r5, #0x14
+ cmp r6, #4
+ blt _02235122
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223513C
+MOD12_0223513C: ; 0x0223513C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ mov r1, #0x77
+ lsl r1, r1, #2
+ str r0, [sp]
+ add r0, r0, r1
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ sub r1, #0x50
+ add r0, r0, r1
+ mov r4, #0
+ mov r6, #0xc
+ mov r5, #0x1c
+ str r0, [sp, #8]
+_02235158:
+ ldr r0, [sp]
+ add r2, r6, #0
+ add r1, r0, r4
+ ldr r0, _02235190 ; =0x00000231
+ mov r3, #0
+ ldrb r1, [r1, r0]
+ mov r0, #0x14
+ add r7, r1, #0
+ mul r7, r0
+ ldr r0, [sp, #4]
+ mov r1, #1
+ add r0, r0, r7
+ bl MOD12_02231490
+ ldr r0, [sp, #8]
+ mov r1, #1
+ add r0, r0, r7
+ add r2, r5, #0
+ mov r3, #0
+ bl MOD12_02231490
+ add r4, r4, #1
+ add r6, #0x30
+ add r5, #0x30
+ cmp r4, #4
+ blt _02235158
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235190: .word 0x00000231
+
+ thumb_func_start MOD12_02235194
+MOD12_02235194: ; 0x02235194
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r2, #1
+ str r2, [sp]
+ str r2, [sp, #4]
+ ldr r2, _022351DC ; =0x000080F1
+ mov r3, #0x17
+ str r2, [sp, #8]
+ mov r2, #0x2e
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _022351DC ; =0x000080F1
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x16
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _022351DC ; =0x000080F1
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x15
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_022351DC: .word 0x000080F1
+
+ thumb_func_start MOD12_022351E0
+MOD12_022351E0: ; 0x022351E0
+ push {r4, lr}
+ ldr r1, _022351FC ; =0x000080F1
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _022351FC ; =0x000080F1
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _022351FC ; =0x000080F1
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_022351FC: .word 0x000080F1
+
+ thumb_func_start MOD12_02235200
+MOD12_02235200: ; 0x02235200
+ push {r3, r4, r5, r6, r7, lr}
+ add r3, r0, #0
+ mov r0, #0x16
+ add r6, r1, #0
+ lsl r0, r0, #4
+ lsl r5, r6, #2
+ add r4, r3, r0
+ ldr r0, [r4, r5]
+ add r7, r2, #0
+ cmp r0, #0
+ bne _02235222
+ ldr r0, [r3, #0x18]
+ ldr r1, [r3, #0x1c]
+ ldr r2, _02235248 ; =0x0224526C
+ bl FUN_0200C154
+ str r0, [r4, r5]
+_02235222:
+ ldr r0, [r4, r5]
+ add r1, r7, #0
+ bl FUN_0200C5C0
+ mov r2, #0x30
+ mul r2, r6
+ add r2, #0x2a
+ lsl r2, r2, #0x10
+ ldr r0, [r4, r5]
+ mov r1, #0x40
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, r5]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235248: .word 0x0224526C
+
+ thumb_func_start MOD12_0223524C
+MOD12_0223524C: ; 0x0223524C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ mov r7, #0x16
+ add r5, r0, #0
+ add r6, r4, #0
+ lsl r7, r7, #4
+_02235258:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _02235268
+ bl FUN_0200C3DC
+ mov r0, #0x16
+ lsl r0, r0, #4
+ str r6, [r5, r0]
+_02235268:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02235258
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02235274
+MOD12_02235274: ; 0x02235274
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #6
+ bl MI_CpuFill8
+ lsl r0, r6, #1
+ add r1, r5, r0
+ ldr r0, _0223529C ; =0x00000236
+ strb r6, [r4]
+ ldrh r1, [r1, r0]
+ add r0, #8
+ strh r1, [r4, #2]
+ add r1, r5, r6
+ ldrb r0, [r1, r0]
+ strb r0, [r4, #5]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0223529C: .word 0x00000236
+
+ thumb_func_start MOD12_022352A0
+MOD12_022352A0: ; 0x022352A0
+ strb r0, [r2]
+ cmp r1, #0
+ bgt _022352AA
+ mov r0, #0x1f
+ bx lr
+_022352AA:
+ cmp r1, #0x14
+ bgt _022352B2
+ mov r0, #0x20
+ bx lr
+_022352B2:
+ cmp r1, #0x32
+ bgt _022352BA
+ mov r0, #0x21
+ bx lr
+_022352BA:
+ cmp r1, #0x5a
+ bgt _022352C2
+ mov r0, #0x22
+ bx lr
+_022352C2:
+ mov r0, #0x23
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_022352C8
+MOD12_022352C8: ; 0x022352C8
+ push {r4, lr}
+ mov r1, #0x32
+ bl _s32_div_f
+ cmp r0, #4
+ blo _022352D6
+ mov r0, #3
+_022352D6:
+ lsl r1, r0, #2
+ ldr r0, _022352F0 ; =0x02245218
+ ldr r4, [r0, r1]
+ cmp r4, #0
+ bge _022352E4
+ bl ErrorHandling
+_022352E4:
+ cmp r4, #0x7f
+ ble _022352EC
+ bl ErrorHandling
+_022352EC:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+_022352F0: .word 0x02245218
+
+ thumb_func_start MOD12_022352F4
+MOD12_022352F4: ; 0x022352F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ ldr r0, [sp, #0x1c]
+ mov r1, #0
+ strb r1, [r0]
+ mov r0, #0x15
+ mov r1, #0x14
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x14
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [sp, #0x1c]
+ str r5, [r4]
+ str r0, [r4, #0x10]
+ strb r7, [r4, #0xd]
+ ldr r0, [sp]
+ strb r6, [r4, #0xb]
+ str r0, [r4, #4]
+ ldr r0, [sp, #0x18]
+ ldr r2, _02235334 ; =0x00000BB8
+ strb r0, [r4, #0xe]
+ ldr r0, _02235338 ; =MOD12_0223533C
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235334: .word 0x00000BB8
+_02235338: .word MOD12_0223533C
+
+ thumb_func_start MOD12_0223533C
+MOD12_0223533C: ; 0x0223533C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #8]
+ cmp r0, #0
+ beq _02235354
+ cmp r0, #1
+ beq _02235376
+ cmp r0, #2
+ beq _022353A6
+ b _0223541C
+_02235354:
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0
+ beq _02235362
+ sub r0, r0, #1
+ add sp, #0x10
+ strb r0, [r4, #0xd]
+ pop {r3, r4, r5, pc}
+_02235362:
+ ldr r0, _02235468 ; =0x000006E5
+ bl FUN_020054C8
+ ldr r0, _02235468 ; =0x000006E5
+ ldr r1, [r4, #4]
+ bl FUN_0200488C
+ ldrb r0, [r4, #8]
+ add r0, r0, #1
+ strb r0, [r4, #8]
+_02235376:
+ ldrb r0, [r4, #9]
+ cmp r0, #0
+ bne _02235380
+ mov r1, #0
+ b _02235382
+_02235380:
+ mov r1, #2
+_02235382:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x15
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x2d
+ ldr r2, [r2, #0x30]
+ mov r3, #3
+ bl FUN_020068C8
+ ldrb r0, [r4, #8]
+ add sp, #0x10
+ add r0, r0, #1
+ strb r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_022353A6:
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4, #0xc]
+ cmp r0, #2
+ bls _022353DE
+ mov r0, #0
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #9]
+ mov r0, #1
+ eor r0, r1
+ strb r0, [r4, #9]
+ ldrb r0, [r4, #8]
+ sub r0, r0, #1
+ strb r0, [r4, #8]
+ ldrb r0, [r4, #9]
+ cmp r0, #0
+ bne _022353DE
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #0xa]
+ cmp r0, #2
+ bls _022353DE
+ mov r0, #0xff
+ add sp, #0x10
+ strb r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_022353DE:
+ ldrb r0, [r4, #0xe]
+ cmp r0, #1
+ bne _02235464
+ ldrb r0, [r4, #0xb]
+ mov r1, #0x32
+ lsl r0, r0, #4
+ bl _s32_div_f
+ mov r1, #0xf
+ ldrsb r2, [r4, r1]
+ cmp r2, r0
+ bge _02235464
+ add r2, r2, #2
+ strb r2, [r4, #0xf]
+ ldrsb r1, [r4, r1]
+ cmp r1, r0
+ ble _02235402
+ strb r0, [r4, #0xf]
+_02235402:
+ ldrb r0, [r4, #0xf]
+ mov r1, #0
+ mov r2, #1
+ str r0, [sp]
+ ldr r0, _0223546C ; =0x0000237E
+ mov r3, #2
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ ldr r0, [r0, #0x5c]
+ bl FUN_020039E8
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_0223541C:
+ ldrb r0, [r4, #0xe]
+ cmp r0, #1
+ bne _02235452
+ mov r0, #0xf
+ ldrsb r1, [r4, r0]
+ cmp r1, #0
+ beq _02235452
+ sub r1, r1, #2
+ strb r1, [r4, #0xf]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bge _02235438
+ mov r0, #0
+ strb r0, [r4, #0xf]
+_02235438:
+ ldrb r0, [r4, #0xf]
+ mov r1, #0
+ mov r2, #1
+ str r0, [sp]
+ ldr r0, _0223546C ; =0x0000237E
+ mov r3, #2
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ ldr r0, [r0, #0x5c]
+ bl FUN_020039E8
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_02235452:
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ strb r1, [r0]
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02235464:
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02235468: .word 0x000006E5
+_0223546C: .word 0x0000237E
+
+ thumb_func_start MOD12_02235470
+MOD12_02235470: ; 0x02235470
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r3, #0
+ ldr r3, [sp, #0x38]
+ add r6, sp, #0x1c
+ str r3, [sp, #0x38]
+ mov r3, #0
+ str r3, [sp, #8]
+ strb r3, [r5]
+ mov r3, #0x30
+ mul r3, r2
+ ldr r2, [sp, #8]
+ str r3, [sp, #0x10]
+ add r3, #0x18
+ str r2, [sp, #4]
+ str r2, [sp, #0xc]
+ mov r2, #0x18
+ mul r2, r1
+ add r7, r0, r2
+ add r0, r3, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r3, [sp, #0x10]
+ str r0, [sp, #0x18]
+_022354A0:
+ add r0, r7, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _022354AC
+ b _0223560C
+_022354AC:
+ ldrb r1, [r5]
+ cmp r1, #0
+ bne _02235576
+ add r1, sp, #0x20
+ add r1, #2
+ add r2, sp, #0x20
+ bl FUN_0200C7A0
+ mov r0, #4
+ ldrsh r1, [r6, r0]
+ ldr r0, [sp, #0x10]
+ sub r1, r1, r0
+ bpl _022354C8
+ neg r1, r1
+_022354C8:
+ mov r0, #6
+ ldrsh r0, [r6, r0]
+ sub r0, #0x28
+ bpl _022354D2
+ neg r0, r0
+_022354D2:
+ bl FUN_020799F4
+ lsl r0, r0, #8
+ str r0, [sp, #8]
+ mov r0, #6
+ ldrsh r0, [r6, r0]
+ sub r0, #0x28
+ bl _fflt
+ str r0, [sp, #0x14]
+ mov r0, #4
+ ldrsh r1, [r6, r0]
+ ldr r0, [sp, #0x10]
+ sub r0, r1, r0
+ bl _fflt
+ add r4, r0, #0
+ ldr r0, [sp, #0x14]
+ mov r1, #0
+ bl _fgr
+ ldr r0, _02235620 ; =0x45800000
+ bls _02235514
+ ldr r1, [sp, #0x14]
+ bl _fmul
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ str r0, [sp]
+ b _02235524
+_02235514:
+ ldr r1, [sp, #0x14]
+ bl _fmul
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+ str r0, [sp]
+_02235524:
+ add r0, r4, #0
+ mov r1, #0
+ bl _fgr
+ ldr r0, _02235620 ; =0x45800000
+ bls _02235542
+ add r1, r4, #0
+ bl _fmul
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _02235550
+_02235542:
+ add r1, r4, #0
+ bl _fmul
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_02235550:
+ bl _ffix
+ add r4, r0, #0
+ ldr r0, [sp]
+ bl _ffix
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FX_Atan2
+ ldr r1, _02235624 ; =0x00008CA0
+ mul r1, r0
+ add r0, r1, #0
+ ldr r1, _02235628 ; =0x0000FFFF
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+_02235576:
+ mov r0, #0x15
+ mov r1, #0x28
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x28
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [sp, #0x38]
+ add r1, r4, #0
+ str r0, [r4, #4]
+ add r0, r7, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ add r1, #0x21
+ str r0, [r4, #8]
+ ldr r0, [sp, #8]
+ add r2, sp, #0x1c
+ str r0, [r4, #0x10]
+ ldr r0, [sp, #4]
+ strh r0, [r4, #0x1e]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ str r0, [r4, #0x14]
+ mov r0, #0x28
+ strb r0, [r1]
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x22
+ strb r0, [r1]
+ str r5, [r4, #0xc]
+ mov r0, #6
+ ldrsh r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x23
+ strb r1, [r0]
+ mov r0, #4
+ ldrsh r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+ add r0, r7, #0
+ add r0, #0xd0
+ add r1, sp, #0x1c
+ ldr r0, [r0]
+ add r1, #2
+ bl FUN_0200C7A0
+ mov r0, #6
+ ldrsh r1, [r6, r0]
+ mov r0, #2
+ ldrsh r0, [r6, r0]
+ sub r0, r1, r0
+ bpl _022355E6
+ neg r0, r0
+_022355E6:
+ ldrb r2, [r5]
+ lsl r0, r0, #8
+ lsl r1, r2, #1
+ add r1, r2, r1
+ bl _s32_div_f
+ strh r0, [r4, #0x1c]
+ mov r0, #2
+ ldrsh r0, [r6, r0]
+ ldr r2, _0223562C ; =0x00009C40
+ add r1, r4, #0
+ lsl r0, r0, #8
+ str r0, [r4, #0x18]
+ ldr r0, _02235630 ; =MOD12_02235634
+ bl FUN_0200CA44
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+_0223560C:
+ ldr r0, [sp, #0xc]
+ add r7, r7, #4
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ cmp r0, #6
+ bge _0223561A
+ b _022354A0
+_0223561A:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02235620: .word 0x45800000
+_02235624: .word 0x00008CA0
+_02235628: .word 0x0000FFFF
+_0223562C: .word 0x00009C40
+_02235630: .word MOD12_02235634
+
+ thumb_func_start MOD12_02235634
+MOD12_02235634: ; 0x02235634
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0223564C
+ cmp r0, #1
+ beq _02235696
+ b _02235778
+_0223564C:
+ ldrh r0, [r5, #0x1c]
+ ldr r1, [r5, #0x18]
+ sub r1, r1, r0
+ add r0, r5, #0
+ str r1, [r5, #0x18]
+ add r0, #0x23
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ cmp r1, r0
+ bgt _02235670
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x20
+ strb r1, [r0]
+_02235670:
+ add r1, sp, #0xc
+ ldr r0, [r5, #8]
+ add r1, #2
+ add r2, sp, #0xc
+ bl FUN_0200C7A0
+ ldr r0, [r5, #0x18]
+ add r3, sp, #0xc
+ asr r0, r0, #8
+ strh r0, [r3, #2]
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r5, #8]
+ bl FUN_0200C714
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+_02235696:
+ ldrh r2, [r5, #0x1e]
+ ldr r1, [r5, #0x14]
+ add r0, r5, #0
+ add r1, r2, r1
+ strh r1, [r5, #0x1e]
+ ldrh r2, [r5, #0x1e]
+ ldr r1, _022357A4 ; =0x00008CA0
+ add r0, #0x1e
+ cmp r2, r1
+ blo _022356B0
+ ldrh r2, [r0]
+ sub r1, r2, r1
+ strh r1, [r0]
+_022356B0:
+ mov r0, #3
+ ldr r1, [r5, #0x10]
+ lsl r0, r0, #8
+ cmp r1, r0
+ bls _022356BE
+ sub r0, r1, r0
+ b _022356C0
+_022356BE:
+ mov r0, #0
+_022356C0:
+ str r0, [r5, #0x10]
+ mov r0, #2
+ ldr r1, [r5, #0x10]
+ lsl r0, r0, #8
+ cmp r1, r0
+ bhi _022356DA
+ add r0, r5, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x20
+ strb r1, [r0]
+_022356DA:
+ ldr r0, [r5, #0x10]
+ mov r1, #0x64
+ lsr r4, r0, #8
+ ldrh r0, [r5, #0x1e]
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0201B954
+ str r0, [sp]
+ lsl r6, r4, #0xc
+ ldrh r0, [r5, #0x1e]
+ mov r1, #0x64
+ asr r7, r6, #0x1f
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0201B93C
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ add r2, r6, #0
+ asr r1, r0, #0x1f
+ add r3, r7, #0
+ bl _ll_mul
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r4, r1, #0
+ asr r1, r0, #0x1f
+ add r2, r6, #0
+ add r3, r7, #0
+ bl _ll_mul
+ mov r3, #2
+ add r2, r1, #0
+ add r1, r5, #0
+ add r7, r0, #0
+ add r1, #0x21
+ ldr r6, [sp, #8]
+ lsl r3, r3, #0xa
+ add r6, r6, r3
+ ldr r3, _022357A8 ; =0x00000000
+ ldrb r1, [r1]
+ adc r4, r3
+ lsl r3, r4, #0x14
+ lsr r4, r6, #0xc
+ orr r4, r3
+ asr r3, r4, #0xb
+ lsr r3, r3, #0x14
+ add r3, r4, r3
+ asr r3, r3, #0xc
+ add r1, r1, r3
+ mov r4, #2
+ ldr r0, [r5, #8]
+ lsl r1, r1, #0x10
+ add r5, #0x22
+ lsl r4, r4, #0xa
+ asr r1, r1, #0x10
+ ldrb r3, [r5]
+ add r5, r7, r4
+ ldr r4, _022357A8 ; =0x00000000
+ adc r2, r4
+ lsl r2, r2, #0x14
+ lsr r4, r5, #0xc
+ orr r4, r2
+ asr r2, r4, #0xb
+ lsr r2, r2, #0x14
+ add r2, r4, r2
+ asr r2, r2, #0xc
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+_02235778:
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, _022357AC ; =0x000005E1
+ bl FUN_020054C8
+ ldr r0, [r5, #4]
+ bl MOD12_02233638
+ ldr r1, [r5, #0xc]
+ ldrb r0, [r1]
+ sub r0, r0, #1
+ strb r0, [r1]
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022357A4: .word 0x00008CA0
+_022357A8: .word 0x00000000
+_022357AC: .word 0x000005E1
+
+ thumb_func_start MOD12_022357B0
+MOD12_022357B0: ; 0x022357B0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x15
+ mov r1, #0xc
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0xc
+ add r4, r0, #0
+ bl MI_CpuFill8
+ str r5, [r4]
+ ldr r0, _022357DC ; =MOD12_022357F8
+ ldr r2, _022357E0 ; =0x00009C40
+ add r1, r4, #0
+ strb r6, [r4, #8]
+ bl FUN_0200CA44
+ str r0, [r4, #4]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022357DC: .word MOD12_022357F8
+_022357E0: .word 0x00009C40
+
+ thumb_func_start MOD12_022357E4
+MOD12_022357E4: ; 0x022357E4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022357F8
+MOD12_022357F8: ; 0x022357F8
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ mov r7, #0x13
+ add r6, r1, #0
+ add r5, r4, #0
+ lsl r7, r7, #4
+_02235804:
+ ldrb r2, [r6, #8]
+ mov r1, #0x14
+ ldr r0, [r6]
+ mul r1, r2
+ add r0, r0, r1
+ add r0, r5, r0
+ ldr r0, [r0, r7]
+ cmp r0, #0
+ beq _0223581A
+ bl FUN_0200C5A8
+_0223581A:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _02235804
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD12_02235824
+MOD12_02235824: ; 0x02235824
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ mov r0, #0x30
+ mul r0, r2
+ add r0, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0x14
+ add r2, r3, #0
+ mul r2, r1
+ ldr r1, [sp]
+ ldr r5, [sp, #0x20]
+ mov r7, #0
+ strb r7, [r5]
+ add r6, r1, r2
+ str r0, [sp, #4]
+_02235846:
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _02235890
+ mov r0, #0x15
+ mov r1, #0x28
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x28
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [sp]
+ ldr r2, _0223589C ; =0x00009C40
+ str r0, [r4]
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ str r0, [r4, #4]
+ str r5, [r4, #8]
+ mov r0, #0x28
+ strb r0, [r4, #0xf]
+ ldr r0, [sp, #4]
+ strb r0, [r4, #0x10]
+ ldrb r1, [r5]
+ mov r0, #0xc
+ mul r0, r1
+ strh r0, [r4, #0x24]
+ ldr r0, _022358A0 ; =MOD12_022358A4
+ add r1, r4, #0
+ bl FUN_0200CA44
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+_02235890:
+ add r7, r7, #1
+ add r6, r6, #4
+ cmp r7, #5
+ blt _02235846
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223589C: .word 0x00009C40
+_022358A0: .word MOD12_022358A4
+
+ thumb_func_start MOD12_022358A4
+MOD12_022358A4: ; 0x022358A4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r5, #0xe]
+ cmp r0, #0
+ beq _022358BE
+ cmp r0, #1
+ beq _022358FE
+ cmp r0, #2
+ bne _022358BC
+ b _02235A26
+_022358BC:
+ b _02235A5E
+_022358BE:
+ mov r0, #0x24
+ ldrsh r0, [r5, r0]
+ cmp r0, #0
+ ble _022358CE
+ sub r0, r0, #1
+ add sp, #8
+ strh r0, [r5, #0x24]
+ pop {r3, r4, r5, r6, r7, pc}
+_022358CE:
+ add r1, sp, #4
+ ldr r0, [r5, #4]
+ add r1, #2
+ add r2, sp, #4
+ bl FUN_0200C7A0
+ add r2, sp, #4
+ mov r1, #0
+ ldrsh r0, [r2, r1]
+ add r0, r0, #6
+ strh r0, [r2]
+ mov r0, #2
+ ldrsh r0, [r2, r0]
+ lsl r0, r0, #8
+ str r0, [r5, #0x1c]
+ ldrsh r0, [r2, r1]
+ lsl r0, r0, #8
+ str r0, [r5, #0x20]
+ ldr r0, _02235A84 ; =0x000007F9
+ bl FUN_020054C8
+ ldrb r0, [r5, #0xe]
+ add r0, r0, #1
+ strb r0, [r5, #0xe]
+_022358FE:
+ ldrh r2, [r5, #0xc]
+ mov r1, #2
+ lsl r1, r1, #0xa
+ add r1, r2, r1
+ strh r1, [r5, #0xc]
+ ldrh r2, [r5, #0xc]
+ ldr r1, _02235A88 ; =0x00008CA0
+ add r0, r5, #0
+ add r0, #0xc
+ cmp r2, r1
+ blo _0223591A
+ ldrh r2, [r0]
+ sub r1, r2, r1
+ strh r1, [r0]
+_0223591A:
+ ldrh r0, [r5, #0xc]
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0201B93C
+ add r4, r0, #0
+ ldrh r0, [r5, #0xc]
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0201B954
+ add r6, r0, #0
+ ldr r0, [r5, #0x20]
+ mov r2, #3
+ add r0, #0x80
+ str r0, [r5, #0x20]
+ asr r1, r4, #0x1f
+ add r0, r4, #0
+ lsl r2, r2, #0xe
+ mov r3, #0
+ bl _ll_mul
+ mov r2, #6
+ str r0, [sp]
+ add r4, r1, #0
+ asr r1, r6, #0x1f
+ add r0, r6, #0
+ lsl r2, r2, #0xc
+ mov r3, #0
+ bl _ll_mul
+ add r2, r1, #0
+ ldr r1, [r5, #0x1c]
+ mov r6, #2
+ add r7, r0, #0
+ ldr r3, [sp]
+ lsl r6, r6, #0xa
+ asr r1, r1, #8
+ add r6, r3, r6
+ ldr r3, _02235A8C ; =0x00000000
+ ldr r0, [r5, #4]
+ adc r4, r3
+ lsl r3, r4, #0x14
+ lsr r4, r6, #0xc
+ orr r4, r3
+ asr r3, r4, #0xb
+ lsr r3, r3, #0x14
+ add r3, r4, r3
+ asr r3, r3, #0xc
+ add r1, r1, r3
+ ldr r3, [r5, #0x20]
+ mov r4, #2
+ lsl r1, r1, #0x10
+ ldr r6, _02235A8C ; =0x00000000
+ lsl r4, r4, #0xa
+ asr r1, r1, #0x10
+ asr r3, r3, #8
+ add r4, r7, r4
+ adc r2, r6
+ lsl r6, r2, #0x14
+ lsr r2, r4, #0xc
+ orr r2, r6
+ asr r4, r2, #0xb
+ lsr r4, r4, #0x14
+ add r4, r2, r4
+ asr r2, r4, #0xc
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ mov r0, #0x24
+ ldrsh r1, [r5, r0]
+ add r1, r1, #1
+ strh r1, [r5, #0x24]
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x50
+ ble _02235A80
+ mov r0, #0
+ strh r0, [r5, #0x24]
+ add r1, sp, #4
+ ldr r0, [r5, #4]
+ add r1, #2
+ add r2, sp, #4
+ bl FUN_0200C7A0
+ add r2, sp, #4
+ mov r0, #2
+ ldrsh r0, [r2, r0]
+ lsl r1, r0, #8
+ str r1, [r5, #0x1c]
+ mov r1, #0
+ ldrsh r6, [r2, r1]
+ lsl r1, r6, #8
+ str r1, [r5, #0x20]
+ ldrb r1, [r5, #0xf]
+ sub r0, r0, r1
+ bpl _022359EC
+ neg r0, r0
+_022359EC:
+ ldrb r1, [r5, #0x10]
+ lsl r0, r0, #8
+ sub r4, r6, r1
+ bpl _022359F6
+ neg r4, r4
+_022359F6:
+ mov r1, #3
+ lsl r1, r1, #8
+ str r1, [r5, #0x14]
+ bl _s32_div_f
+ add r1, r0, #0
+ lsl r0, r4, #8
+ bl _s32_div_f
+ str r0, [r5, #0x18]
+ ldrb r0, [r5, #0x10]
+ cmp r0, r6
+ bge _02235A16
+ ldr r0, [r5, #0x18]
+ neg r0, r0
+ str r0, [r5, #0x18]
+_02235A16:
+ ldr r0, _02235A90 ; =0x000006EA
+ bl FUN_020054C8
+ ldrb r0, [r5, #0xe]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r5, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02235A26:
+ ldr r1, [r5, #0x1c]
+ ldr r0, [r5, #0x14]
+ sub r0, r1, r0
+ str r0, [r5, #0x1c]
+ ldr r1, [r5, #0x20]
+ ldr r0, [r5, #0x18]
+ add r0, r1, r0
+ str r0, [r5, #0x20]
+ ldrb r0, [r5, #0xf]
+ lsl r1, r0, #8
+ ldr r0, [r5, #0x1c]
+ cmp r0, r1
+ bgt _02235A48
+ str r1, [r5, #0x1c]
+ ldrb r0, [r5, #0xe]
+ add r0, r0, #1
+ strb r0, [r5, #0xe]
+_02235A48:
+ ldr r1, [r5, #0x1c]
+ ldr r2, [r5, #0x20]
+ lsl r1, r1, #8
+ lsl r2, r2, #8
+ ldr r0, [r5, #4]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02235A5E:
+ ldr r0, [r5, #4]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, _02235A94 ; =0x000005E1
+ bl FUN_020054C8
+ ldr r1, [r5, #8]
+ ldrb r0, [r1]
+ sub r0, r0, #1
+ strb r0, [r1]
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_02235A80:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235A84: .word 0x000007F9
+_02235A88: .word 0x00008CA0
+_02235A8C: .word 0x00000000
+_02235A90: .word 0x000006EA
+_02235A94: .word 0x000005E1
+
+ thumb_func_start MOD12_02235A98
+MOD12_02235A98: ; 0x02235A98
+ push {r4}
+ sub sp, #0xc
+ ldr r3, _02235AC0 ; =0x022451D4
+ add r2, sp, #0
+ ldrh r4, [r3, #0x14]
+ add r1, sp, #0
+ lsl r0, r0, #1
+ strh r4, [r2]
+ ldrh r4, [r3, #0x16]
+ strh r4, [r2, #2]
+ ldrh r4, [r3, #0x18]
+ strh r4, [r2, #4]
+ ldrh r4, [r3, #0x1a]
+ ldrh r3, [r3, #0x1c]
+ strh r4, [r2, #6]
+ strh r3, [r2, #8]
+ ldrh r0, [r1, r0]
+ add sp, #0xc
+ pop {r4}
+ bx lr
+ .align 2, 0
+_02235AC0: .word 0x022451D4
+
+ thumb_func_start MOD12_02235AC4
+MOD12_02235AC4: ; 0x02235AC4
+ push {r4}
+ sub sp, #0xc
+ ldr r3, _02235AEC ; =0x022451D4
+ add r2, sp, #0
+ ldrh r4, [r3, #0xa]
+ add r1, sp, #0
+ lsl r0, r0, #1
+ strh r4, [r2]
+ ldrh r4, [r3, #0xc]
+ strh r4, [r2, #2]
+ ldrh r4, [r3, #0xe]
+ strh r4, [r2, #4]
+ ldrh r4, [r3, #0x10]
+ ldrh r3, [r3, #0x12]
+ strh r4, [r2, #6]
+ strh r3, [r2, #8]
+ ldrh r0, [r1, r0]
+ add sp, #0xc
+ pop {r4}
+ bx lr
+ .align 2, 0
+_02235AEC: .word 0x022451D4
+
+ thumb_func_start MOD12_02235AF0
+MOD12_02235AF0: ; 0x02235AF0
+ push {r4}
+ sub sp, #0xc
+ ldr r3, _02235B18 ; =0x022451D4
+ add r2, sp, #0
+ ldrh r4, [r3]
+ add r1, sp, #0
+ lsl r0, r0, #1
+ strh r4, [r2]
+ ldrh r4, [r3, #2]
+ strh r4, [r2, #2]
+ ldrh r4, [r3, #4]
+ strh r4, [r2, #4]
+ ldrh r4, [r3, #6]
+ ldrh r3, [r3, #8]
+ strh r4, [r2, #6]
+ strh r3, [r2, #8]
+ ldrh r0, [r1, r0]
+ add sp, #0xc
+ pop {r4}
+ bx lr
+ .align 2, 0
+_02235B18: .word 0x022451D4
+
+ thumb_func_start MOD12_02235B1C
+MOD12_02235B1C: ; 0x02235B1C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r3, #0
+ add r6, r0, #0
+ add r7, r1, #0
+ add r5, r2, #0
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0xc
+ bl MI_CpuFill8
+ strh r5, [r4, #4]
+ cmp r5, #0x8f
+ bgt _02235B52
+ bge _02235B8A
+ cmp r5, #0x4c
+ bgt _02235B44
+ bge _02235B8A
+ cmp r5, #0xd
+ beq _02235B8A
+ pop {r3, r4, r5, r6, r7, pc}
+_02235B44:
+ cmp r5, #0x77
+ bgt _02235B4C
+ beq _02235BC8
+ pop {r3, r4, r5, r6, r7, pc}
+_02235B4C:
+ cmp r5, #0x82
+ beq _02235B8A
+ pop {r3, r4, r5, r6, r7, pc}
+_02235B52:
+ ldr r1, _02235BE4 ; =0x0000010B
+ cmp r5, r1
+ bgt _02235B72
+ bge _02235BCE
+ cmp r5, #0xae
+ bgt _02235B62
+ beq _02235B9C
+ pop {r3, r4, r5, r6, r7, pc}
+_02235B62:
+ cmp r5, #0xda
+ bgt _02235BE2
+ cmp r5, #0xd8
+ blt _02235BE2
+ beq _02235B90
+ cmp r5, #0xda
+ beq _02235B96
+ pop {r3, r4, r5, r6, r7, pc}
+_02235B72:
+ add r0, r1, #0
+ add r0, #0xd
+ cmp r5, r0
+ bgt _02235B82
+ add r1, #0xd
+ cmp r5, r1
+ beq _02235BD4
+ pop {r3, r4, r5, r6, r7, pc}
+_02235B82:
+ add r1, #0xc8
+ cmp r5, r1
+ beq _02235BDA
+ pop {r3, r4, r5, r6, r7, pc}
+_02235B8A:
+ mov r0, #1
+ strb r0, [r4, #6]
+ pop {r3, r4, r5, r6, r7, pc}
+_02235B90:
+ mov r0, #0xff
+ strb r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02235B96:
+ mov r0, #0
+ strb r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02235B9C:
+ lsl r5, r7, #2
+ ldr r0, [r6, r5]
+ mov r1, #0xb0
+ mov r2, #0
+ bl FUN_020671BC
+ add r7, r0, #0
+ ldr r0, [r6, r5]
+ mov r1, #0xb1
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r7, #7
+ beq _02235BBC
+ cmp r0, #7
+ bne _02235BC2
+_02235BBC:
+ mov r0, #1
+ strb r0, [r4, #7]
+ pop {r3, r4, r5, r6, r7, pc}
+_02235BC2:
+ mov r0, #0
+ strb r0, [r4, #7]
+ pop {r3, r4, r5, r6, r7, pc}
+_02235BC8:
+ mov r0, #1
+ strh r0, [r4, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02235BCE:
+ mov r0, #0xa1
+ strh r0, [r4, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02235BD4:
+ mov r0, #1
+ strb r0, [r4, #7]
+ pop {r3, r4, r5, r6, r7, pc}
+_02235BDA:
+ mov r0, #1
+ strb r0, [r4, #6]
+ ldr r0, _02235BE8 ; =0x200400C0
+ str r0, [r4]
+_02235BE2:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235BE4: .word 0x0000010B
+_02235BE8: .word 0x200400C0
+
+ thumb_func_start MOD12_02235BEC
+MOD12_02235BEC: ; 0x02235BEC
+ cmp r2, #0
+ bne _02235BF4
+ mov r0, #0
+ bx lr
+_02235BF4:
+ lsl r3, r1, #1
+ add r3, r0, r3
+ ldrh r3, [r3, #0x26]
+ cmp r2, r3
+ bne _02235C12
+ lsl r1, r1, #2
+ add r0, r0, r1
+ add r0, #0xe0
+ ldr r0, [r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r2, r0
+ beq _02235C12
+ mov r0, #0
+ bx lr
+_02235C12:
+ mov r0, #1
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_02235C18
+MOD12_02235C18: ; 0x02235C18
+ push {r3, r4}
+ add r1, r0, r1
+ ldrb r4, [r1, #0xe]
+ mov r3, #0
+ add r2, r3, #0
+_02235C22:
+ add r1, r0, r2
+ ldrb r1, [r1, #0xe]
+ cmp r1, r4
+ bne _02235C2C
+ add r3, r3, #1
+_02235C2C:
+ add r2, r2, #1
+ cmp r2, #4
+ blt _02235C22
+ sub r0, r3, #1
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD12_02235C38
+MOD12_02235C38: ; 0x02235C38
+ ldr r1, _02235C40 ; =0x022454C8
+ ldrb r0, [r1, r0]
+ bx lr
+ nop
+_02235C40: .word 0x022454C8
+
+ thumb_func_start MOD12_02235C44
+MOD12_02235C44: ; 0x02235C44
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #0xb
+ bl FUN_0206AB18
+ lsl r1, r4, #2
+ add r2, r4, r1
+ ldr r1, _02235C5C ; =0x022454E4
+ add r1, r1, r2
+ ldrsb r0, [r0, r1]
+ pop {r4, pc}
+ .align 2, 0
+_02235C5C: .word 0x022454E4
+
+ thumb_func_start MOD12_02235C60
+MOD12_02235C60: ; 0x02235C60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r3, #0
+ mov lr, r0
+ add r2, sp, #8
+ add r1, sp, #4
+ add r7, r3, #0
+ add r0, sp, #0
+ mov r6, #0x1a
+ b _02235C9A
+_02235C74:
+ lsl r4, r3, #1
+ mov r5, lr
+ add r5, r5, r4
+ ldrsh r5, [r5, r6]
+ strb r3, [r1, r3]
+ strh r5, [r2, r4]
+ add r4, r7, #0
+ b _02235C94
+_02235C84:
+ mov r5, lr
+ add r5, r5, r4
+ ldrb r5, [r5, #1]
+ cmp r3, r5
+ bne _02235C92
+ strb r4, [r0, r3]
+ b _02235C98
+_02235C92:
+ add r4, r4, #1
+_02235C94:
+ cmp r4, #4
+ blt _02235C84
+_02235C98:
+ add r3, r3, #1
+_02235C9A:
+ cmp r3, #4
+ blt _02235C74
+ mov r3, #0
+ ldr r6, _02235D70 ; =0x022454D4
+ add r1, sp, #8
+ ldr r0, _02235D74 ; =0x022454CC
+ ldr r2, _02235D78 ; =0x022454DC
+ mov r7, #0x2c
+ b _02235CFC
+_02235CAC:
+ add r5, r3, #0
+ mul r5, r7
+ mov r4, lr
+ add r4, r4, r5
+ ldr r4, [r4, #0x58]
+ lsl r5, r4, #0x1a
+ lsr r5, r5, #0x1e
+ cmp r5, #3
+ bhi _02235CFA
+ add r5, r5, r5
+ add r5, pc
+ ldrh r5, [r5, #6]
+ lsl r5, r5, #0x10
+ asr r5, r5, #0x10
+ add pc, r5
+_02235CCA: ; jump table
+ .short _02235CFA - _02235CCA - 2 ; case 0
+ .short _02235CD2 - _02235CCA - 2 ; case 1
+ .short _02235CE0 - _02235CCA - 2 ; case 2
+ .short _02235CEE - _02235CCA - 2 ; case 3
+_02235CD2:
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x1e
+ lsl r4, r4, #1
+ ldrsh r5, [r2, r4]
+ lsl r4, r3, #1
+ strh r5, [r1, r4]
+ b _02235CFA
+_02235CE0:
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x1e
+ lsl r4, r4, #1
+ ldrsh r5, [r0, r4]
+ lsl r4, r3, #1
+ strh r5, [r1, r4]
+ b _02235CFA
+_02235CEE:
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x1e
+ lsl r4, r4, #1
+ ldrsh r5, [r6, r4]
+ lsl r4, r3, #1
+ strh r5, [r1, r4]
+_02235CFA:
+ add r3, r3, #1
+_02235CFC:
+ cmp r3, #4
+ blt _02235CAC
+ mov r3, #0
+ b _02235D52
+_02235D04:
+ mov r4, #3
+ add r2, sp, #8
+ add r7, sp, #0
+ b _02235D4C
+_02235D0C:
+ sub r1, r4, #1
+ lsl r0, r1, #1
+ lsl r5, r4, #1
+ ldrsh r0, [r2, r0]
+ ldrsh r5, [r2, r5]
+ cmp r0, r5
+ bgt _02235D26
+ cmp r0, r5
+ bne _02235D4A
+ ldrb r1, [r7, r1]
+ ldrb r0, [r7, r4]
+ cmp r1, r0
+ bhs _02235D4A
+_02235D26:
+ sub r0, r4, #1
+ lsl r1, r4, #1
+ lsl r5, r0, #1
+ mov ip, r5
+ ldrsh r6, [r2, r1]
+ ldrsh r5, [r2, r5]
+ strh r5, [r2, r1]
+ mov r1, ip
+ strh r6, [r2, r1]
+ add r1, sp, #4
+ ldrb r6, [r1, r4]
+ ldrb r5, [r1, r0]
+ strb r5, [r1, r4]
+ strb r6, [r1, r0]
+ ldrb r5, [r7, r4]
+ ldrb r1, [r7, r0]
+ strb r1, [r7, r4]
+ strb r5, [r7, r0]
+_02235D4A:
+ sub r4, r4, #1
+_02235D4C:
+ cmp r4, r3
+ bgt _02235D0C
+ add r3, r3, #1
+_02235D52:
+ cmp r3, #3
+ blt _02235D04
+ mov r3, #0
+ add r2, sp, #4
+ b _02235D66
+_02235D5C:
+ ldrb r1, [r2, r3]
+ mov r0, lr
+ add r0, r0, r3
+ strb r1, [r0, #1]
+ add r3, r3, #1
+_02235D66:
+ cmp r3, #4
+ blt _02235D5C
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235D70: .word 0x022454D4
+_02235D74: .word 0x022454CC
+_02235D78: .word 0x022454DC
+
+ thumb_func_start MOD12_02235D7C
+MOD12_02235D7C: ; 0x02235D7C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ ldr r1, _02235DB4 ; =0x02245500
+ add r3, sp, #0
+ str r1, [sp]
+ mov r1, #0x16
+ strh r1, [r3, #4]
+ ldr r1, [r0]
+ ldr r2, _02235DB8 ; =0x00000123
+ ldrb r1, [r1, r2]
+ strb r1, [r3, #6]
+ sub r1, r2, #7
+ ldr r4, [r0]
+ add r2, #0x4e
+ ldrb r1, [r4, r1]
+ strb r1, [r3, #8]
+ ldr r1, [r0]
+ ldrb r1, [r1, r2]
+ strb r1, [r3, #7]
+ mov r1, #0xc3
+ lsl r1, r1, #4
+ add r0, r0, r1
+ add r1, sp, #0
+ bl MOD12_02240ED0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_02235DB4: .word 0x02245500
+_02235DB8: .word 0x00000123
+
+ thumb_func_start MOD12_02235DBC
+MOD12_02235DBC: ; 0x02235DBC
+ push {r3, lr}
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ mov r3, #0
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02235DD4
+MOD12_02235DD4: ; 0x02235DD4
+ push {r3, lr}
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r2, #0
+ mov r2, #0
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02235DE8
+MOD12_02235DE8: ; 0x02235DE8
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_02235DEC
+MOD12_02235DEC: ; 0x02235DEC
+ push {r3, lr}
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ mov r3, #0
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02235E04
+MOD12_02235E04: ; 0x02235E04
+ push {r3, lr}
+ ldr r0, _02235E20 ; =0x00001650
+ mov r3, #1
+ strb r3, [r1, r0]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r2, #0
+ mov r2, #0
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ pop {r3, pc}
+ nop
+_02235E20: .word 0x00001650
+
+ thumb_func_start MOD12_02235E24
+MOD12_02235E24: ; 0x02235E24
+ push {r3, lr}
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ mov r3, #0
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02235E3C
+MOD12_02235E3C: ; 0x02235E3C
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r0, #0x15
+ mov r1, #0x10
+ add r5, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x10
+ bl MI_CpuFill8
+ str r6, [r4]
+ ldrh r0, [r5]
+ ldr r2, _02235E74 ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, _02235E78 ; =MOD12_02235E7C
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ nop
+_02235E74: .word 0x00007530
+_02235E78: .word MOD12_02235E7C
+
+ thumb_func_start MOD12_02235E7C
+MOD12_02235E7C: ; 0x02235E7C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldrb r1, [r4, #0xf]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _02235E94
+ cmp r1, #1
+ beq _02235EB2
+ cmp r1, #2
+ beq _02235ECC
+ b _02235EDA
+_02235E94:
+ mov r1, #0
+ add r0, r4, #0
+ str r1, [sp]
+ add r0, #0xe
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #0x46
+ bl MOD12_022352F4
+ ldrb r0, [r4, #0xf]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ pop {r3, r4, r5, pc}
+_02235EB2:
+ ldrh r0, [r4, #0xc]
+ add r0, r0, #1
+ strh r0, [r4, #0xc]
+ ldrh r0, [r4, #0xc]
+ cmp r0, #0x1e
+ bls _02235EF8
+ mov r0, #0
+ strh r0, [r4, #0xc]
+ ldrb r0, [r4, #0xf]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ pop {r3, r4, r5, pc}
+_02235ECC:
+ ldrb r0, [r4, #0xe]
+ cmp r0, #1
+ bne _02235EF8
+ add r0, r1, #1
+ add sp, #8
+ strb r0, [r4, #0xf]
+ pop {r3, r4, r5, pc}
+_02235EDA:
+ mov r0, #0xc3
+ mov r2, #0
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02235EF8:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD12_02235EFC
+MOD12_02235EFC: ; 0x02235EFC
+ push {r3, lr}
+ mov r0, #0xf4
+ str r0, [sp]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02235F14
+MOD12_02235F14: ; 0x02235F14
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r0, #0x15
+ mov r1, #0x1c
+ add r5, r2, #0
+ add r6, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x1c
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _02235F6C ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ add r0, r6, #0
+ add r0, #0xe4
+ ldrb r0, [r0]
+ strb r0, [r4, #0x18]
+ add r0, r6, #0
+ add r0, #0xd8
+ ldrh r0, [r0]
+ strh r0, [r4, #0x12]
+ add r0, r6, #0
+ add r0, #0xda
+ ldrh r0, [r0]
+ add r6, #0xdc
+ strh r0, [r4, #0x14]
+ ldrh r0, [r6]
+ strh r0, [r4, #0x16]
+ ldr r0, _02235F70 ; =MOD12_02235F74
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235F6C: .word 0x00007530
+_02235F70: .word MOD12_02235F74
+
+ thumb_func_start MOD12_02235F74
+MOD12_02235F74: ; 0x02235F74
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #4
+ bhi _0223601A
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02235F8E: ; jump table
+ .short _02235F98 - _02235F8E - 2 ; case 0
+ .short _02235FBA - _02235F8E - 2 ; case 1
+ .short _02235FD4 - _02235F8E - 2 ; case 2
+ .short _02235FEE - _02235F8E - 2 ; case 3
+ .short _0223600C - _02235F8E - 2 ; case 4
+_02235F98:
+ ldrb r1, [r4, #0x18]
+ cmp r1, #0
+ beq _02235FAA
+ add r2, r4, #0
+ ldr r0, [r4]
+ add r2, #0x12
+ mov r3, #0
+ bl MOD12_02234FB0
+_02235FAA:
+ ldr r0, _0223603C ; =0x000006F9
+ bl FUN_020054C8
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02235FBA:
+ ldrb r0, [r4, #0x18]
+ cmp r0, #0
+ beq _02235FCA
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _02236038
+_02235FCA:
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02235FD4:
+ ldrh r0, [r4, #0xe]
+ add r0, r0, #1
+ strh r0, [r4, #0xe]
+ ldrh r0, [r4, #0xe]
+ cmp r0, #0x1e
+ bls _02236038
+ mov r0, #0
+ strh r0, [r4, #0xe]
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02235FEE:
+ mov r1, #0
+ add r0, r4, #0
+ str r1, [sp]
+ add r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #0x46
+ bl MOD12_022352F4
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223600C:
+ ldrb r1, [r4, #0x10]
+ cmp r1, #1
+ bne _02236038
+ add r0, r0, #1
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223601A:
+ mov r0, #0xc3
+ mov r2, #0
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02236038:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223603C: .word 0x000006F9
+
+ thumb_func_start MOD12_02236040
+MOD12_02236040: ; 0x02236040
+ push {r3, lr}
+ mov r0, #0xf4
+ str r0, [sp]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02236058
+MOD12_02236058: ; 0x02236058
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ mov r0, #0x15
+ mov r1, #0x1c
+ add r5, r2, #0
+ add r7, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x1c
+ bl MI_CpuFill8
+ str r6, [r4]
+ ldrh r0, [r5]
+ add r2, r4, #0
+ mov r1, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ add r2, #0x16
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldrb r0, [r7]
+ strb r0, [r4, #0x15]
+ add r0, r6, #0
+ bl MOD12_0223483C
+ ldr r0, _022360A8 ; =MOD12_022360B0
+ ldr r2, _022360AC ; =0x00007530
+ add r1, r4, #0
+ bl FUN_0200CA44
+ add r0, r6, #0
+ bl MOD12_02234EFC
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022360A8: .word MOD12_022360B0
+_022360AC: .word 0x00007530
+
+ thumb_func_start MOD12_022360B0
+MOD12_022360B0: ; 0x022360B0
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ ldr r1, [r0, #0xc]
+ ldrb r0, [r4, #0x15]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_02068E14
+ add r5, r0, #0
+ ldrb r0, [r4, #0x14]
+ cmp r0, #3
+ bls _022360D0
+ b _022361DA
+_022360D0:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022360DC: ; jump table
+ .short _022360E4 - _022360DC - 2 ; case 0
+ .short _02236100 - _022360DC - 2 ; case 1
+ .short _02236162 - _022360DC - 2 ; case 2
+ .short _0223617C - _022360DC - 2 ; case 3
+_022360E4:
+ mov r0, #0x18
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ strh r1, [r4, #0x18]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0xa
+ bgt _022360F4
+ b _022361FE
+_022360F4:
+ mov r0, #0
+ strh r0, [r4, #0x18]
+ ldrb r0, [r4, #0x14]
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02236100:
+ ldrb r0, [r4, #0x15]
+ mov r1, #0
+ lsl r5, r0, #2
+ ldr r0, [r4]
+ ldr r0, [r0, #0xc]
+ ldr r0, [r0, r5]
+ bl FUN_02068E14
+ add r6, r0, #0
+ ldr r0, [r4]
+ mov r1, #0x25
+ add r0, r0, r5
+ ldr r0, [r0, #0x14]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ mov r1, #6
+ add r0, r0, r5
+ ldr r0, [r0, #0x14]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ mov r2, #1
+ add r0, r0, r5
+ ldr r0, [r0, #0x14]
+ mov r1, #0
+ lsl r2, r2, #8
+ bl FUN_02007558
+ ldr r0, [r4]
+ add r6, #0xac
+ add r0, r0, r5
+ ldr r0, [r0, #0x14]
+ mov r1, #1
+ add r2, r6, #0
+ bl FUN_02007558
+ mov r0, #1
+ lsl r0, r0, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x2b
+ lsl r0, r0, #0xa
+ str r0, [r4, #0x10]
+ ldrb r0, [r4, #0x14]
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02236162:
+ ldr r0, [r4]
+ ldrb r2, [r4, #0x15]
+ ldr r1, [r0]
+ ldr r0, _02236200 ; =0x00000123
+ ldrb r0, [r1, r0]
+ cmp r2, r0
+ bne _02236176
+ ldr r0, _02236204 ; =0x000006F8
+ bl FUN_020054C8
+_02236176:
+ ldrb r0, [r4, #0x14]
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+_0223617C:
+ ldr r1, [r4, #0xc]
+ ldr r0, _02236208 ; =0x000005B6
+ sub r0, r1, r0
+ str r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ ldr r0, _0223620C ; =0x00000892
+ sub r0, r1, r0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ asr r0, r0, #8
+ cmp r0, #0xd8
+ ble _0223619C
+ ldr r0, [r4, #0x10]
+ asr r0, r0, #8
+ cmp r0, #0x70
+ bgt _022361AE
+_0223619C:
+ mov r0, #0x36
+ lsl r0, r0, #0xa
+ str r0, [r4, #0xc]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x10]
+ ldrb r0, [r4, #0x14]
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+_022361AE:
+ ldrb r0, [r4, #0x15]
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #0x14]
+ mov r1, #0
+ asr r2, r2, #8
+ bl FUN_02007558
+ ldrb r0, [r4, #0x15]
+ ldr r2, [r4, #0x10]
+ ldr r1, [r4]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ asr r2, r2, #8
+ ldr r0, [r0, #0x14]
+ mov r1, #1
+ add r2, r2, r5
+ bl FUN_02007558
+ pop {r4, r5, r6, pc}
+_022361DA:
+ ldrb r0, [r4, #0x16]
+ cmp r0, #1
+ bne _022361FE
+ mov r0, #0xc3
+ mov r2, #0
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_022361FE:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02236200: .word 0x00000123
+_02236204: .word 0x000006F8
+_02236208: .word 0x000005B6
+_0223620C: .word 0x00000892
+
+ thumb_func_start MOD12_02236210
+MOD12_02236210: ; 0x02236210
+ push {r3, lr}
+ mov r0, #0xf4
+ str r0, [sp]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02236228
+MOD12_02236228: ; 0x02236228
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ mov r0, #0x15
+ mov r1, #0x1c
+ add r5, r2, #0
+ add r7, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x1c
+ bl MI_CpuFill8
+ str r6, [r4]
+ ldrh r0, [r5]
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldrb r0, [r7]
+ strb r0, [r4, #0x15]
+ ldr r1, [r6, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_02068E14
+ mov r0, #0x36
+ lsl r0, r0, #0xa
+ str r0, [r4, #0xc]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x10]
+ ldr r0, _0223627C ; =MOD12_02236284
+ ldr r2, _02236280 ; =0x00007530
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223627C: .word MOD12_02236284
+_02236280: .word 0x00007530
+
+ thumb_func_start MOD12_02236284
+MOD12_02236284: ; 0x02236284
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ ldrb r0, [r5, #0x15]
+ mov r1, #0
+ lsl r4, r0, #2
+ ldr r0, [r5]
+ ldr r0, [r0, #0xc]
+ ldr r0, [r0, r4]
+ bl FUN_02068E14
+ add r6, r0, #0
+ ldrb r0, [r5, #0x14]
+ cmp r0, #0
+ beq _022362A8
+ cmp r0, #1
+ beq _0223631A
+ b _02236342
+_022362A8:
+ ldr r1, [r5, #0xc]
+ ldr r0, _02236364 ; =0x000005B6
+ add r0, r1, r0
+ str r0, [r5, #0xc]
+ ldr r1, [r5, #0x10]
+ ldr r0, _02236368 ; =0x00000892
+ add r0, r1, r0
+ str r0, [r5, #0x10]
+ ldr r0, [r5, #0xc]
+ asr r1, r0, #8
+ mov r0, #1
+ lsl r0, r0, #8
+ cmp r1, r0
+ bge _022362CC
+ ldr r0, [r5, #0x10]
+ asr r0, r0, #8
+ cmp r0, #0xac
+ blt _022362EE
+_022362CC:
+ ldr r0, [r5]
+ mov r1, #0x25
+ add r0, r0, r4
+ ldr r0, [r0, #0x14]
+ mov r2, #1
+ bl FUN_02007558
+ ldr r0, [r5]
+ mov r1, #6
+ add r0, r0, r4
+ ldr r0, [r0, #0x14]
+ mov r2, #1
+ bl FUN_02007558
+ ldrb r0, [r5, #0x14]
+ add r0, r0, #1
+ strb r0, [r5, #0x14]
+_022362EE:
+ ldrb r0, [r5, #0x15]
+ ldr r2, [r5, #0xc]
+ ldr r1, [r5]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #0x14]
+ mov r1, #0
+ asr r2, r2, #8
+ bl FUN_02007558
+ ldrb r0, [r5, #0x15]
+ ldr r2, [r5, #0x10]
+ ldr r1, [r5]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ asr r2, r2, #8
+ ldr r0, [r0, #0x14]
+ mov r1, #1
+ add r2, r2, r6
+ bl FUN_02007558
+ pop {r3, r4, r5, r6, r7, pc}
+_0223631A:
+ ldrb r1, [r5, #0x15]
+ ldr r0, [r5]
+ ldr r2, _0223636C ; =0x00001652
+ add r3, r0, r1
+ ldrb r2, [r3, r2]
+ cmp r2, #1
+ bne _0223633A
+ add r0, #0xc
+ bl MOD12_022336AC
+ ldrb r0, [r5, #0x15]
+ ldr r1, [r5]
+ mov r2, #0
+ add r1, r1, r0
+ ldr r0, _0223636C ; =0x00001652
+ strb r2, [r1, r0]
+_0223633A:
+ ldrb r0, [r5, #0x14]
+ add r0, r0, #1
+ strb r0, [r5, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+_02236342:
+ mov r0, #0xc3
+ mov r2, #0
+ ldr r1, [r5]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r5, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02236364: .word 0x000005B6
+_02236368: .word 0x00000892
+_0223636C: .word 0x00001652
+
+ thumb_func_start MOD12_02236370
+MOD12_02236370: ; 0x02236370
+ push {r3, lr}
+ mov r0, #0xf4
+ str r0, [sp]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02236388
+MOD12_02236388: ; 0x02236388
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r0, #0x15
+ mov r1, #0x1c
+ add r6, r2, #0
+ add r5, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x1c
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r6]
+ ldr r2, _022363EC ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r6, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r6, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r6, #6]
+ strh r0, [r4, #0xa]
+ ldrb r0, [r5]
+ strb r0, [r4, #0xd]
+ ldrb r0, [r5, #2]
+ strb r0, [r4, #0xe]
+ add r0, r5, #0
+ add r0, #0xe4
+ ldrb r0, [r0]
+ strb r0, [r4, #0x1a]
+ add r0, r5, #0
+ add r0, #0xd8
+ ldrh r0, [r0]
+ strh r0, [r4, #0x14]
+ add r0, r5, #0
+ add r0, #0xda
+ ldrh r0, [r0]
+ strh r0, [r4, #0x16]
+ add r0, r5, #0
+ add r0, #0xdc
+ ldrh r0, [r0]
+ strh r0, [r4, #0x18]
+ ldrb r0, [r5, #3]
+ strb r0, [r4, #0x10]
+ ldr r0, _022363F0 ; =MOD12_022363F4
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022363EC: .word 0x00007530
+_022363F0: .word MOD12_022363F4
+
+ thumb_func_start MOD12_022363F4
+MOD12_022363F4: ; 0x022363F4
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #8
+ bhi _02236502
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223640E: ; jump table
+ .short _02236420 - _0223640E - 2 ; case 0
+ .short _0223645C - _0223640E - 2 ; case 1
+ .short _0223646A - _0223640E - 2 ; case 2
+ .short _02236472 - _0223640E - 2 ; case 3
+ .short _02236496 - _0223640E - 2 ; case 4
+ .short _022364AA - _0223640E - 2 ; case 5
+ .short _022364B2 - _0223640E - 2 ; case 6
+ .short _022364D6 - _0223640E - 2 ; case 7
+ .short _022364E4 - _0223640E - 2 ; case 8
+_02236420:
+ ldrb r0, [r4, #0xd]
+ ldr r1, [r4]
+ lsl r0, r0, #1
+ add r1, r1, r0
+ ldr r0, _02236524 ; =0x00000242
+ ldrsh r0, [r1, r0]
+ bl MOD12_022352C8
+ add r3, r0, #0
+ cmp r3, #0
+ ble _0223644A
+ mov r1, #0
+ add r0, r4, #0
+ str r1, [sp]
+ add r0, #0x12
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r2, r1, #0
+ bl MOD12_022352F4
+ b _02236452
+_0223644A:
+ mov r0, #2
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02236452:
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223645C:
+ ldrb r1, [r4, #0x12]
+ cmp r1, #1
+ bne _02236520
+ add r0, r0, #1
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223646A:
+ add r0, r0, #1
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02236472:
+ ldrb r1, [r4, #0x1a]
+ cmp r1, #0
+ beq _0223648E
+ add r2, r4, #0
+ ldr r0, [r4]
+ add r2, #0x14
+ mov r3, #0
+ bl MOD12_02234FB0
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223648E:
+ mov r0, #5
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02236496:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _02236520
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_022364AA:
+ add r0, r0, #1
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_022364B2:
+ ldr r0, [r4]
+ ldrb r1, [r4, #0xe]
+ ldrb r2, [r4, #0x10]
+ add r0, #0xc
+ bl MOD12_02233BE4
+ add r3, r4, #0
+ ldrb r1, [r4, #0xe]
+ ldrb r2, [r4, #0x10]
+ ldr r0, [r4]
+ add r3, #0xf
+ bl MOD12_02233C94
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_022364D6:
+ ldrb r1, [r4, #0xf]
+ cmp r1, #1
+ bne _02236520
+ add r0, r0, #1
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_022364E4:
+ ldrb r0, [r4, #0x11]
+ add r0, r0, #1
+ strb r0, [r4, #0x11]
+ ldrb r0, [r4, #0x11]
+ cmp r0, #5
+ bls _02236520
+ ldr r0, [r4]
+ add r0, #0xc
+ bl MOD12_02233C74
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02236502:
+ mov r0, #0xc3
+ mov r2, #0
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02236520:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02236524: .word 0x00000242
+
+ thumb_func_start MOD12_02236528
+MOD12_02236528: ; 0x02236528
+ push {r3, lr}
+ mov r0, #0xf4
+ str r0, [sp]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02236540
+MOD12_02236540: ; 0x02236540
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x49
+ mov r0, #0x15
+ lsl r1, r1, #2
+ add r6, r2, #0
+ add r5, r3, #0
+ bl FUN_02016998
+ mov r2, #0x49
+ add r4, r0, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r6]
+ add r3, r4, #0
+ add r3, #0x14
+ strh r0, [r4, #4]
+ ldrh r0, [r6, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r6, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r6, #6]
+ strh r0, [r4, #0xa]
+ ldrb r0, [r5]
+ strb r0, [r4, #0xd]
+ ldrb r1, [r5]
+ mov r0, #0x2c
+ add r2, r1, #0
+ mul r2, r0
+ add r1, r5, r2
+ ldrh r1, [r1, #0x10]
+ strh r1, [r4, #0xe]
+ add r1, r5, #0
+ add r1, #0xe4
+ ldrb r2, [r1]
+ add r1, r0, #0
+ add r1, #0xe2
+ strb r2, [r4, r1]
+ add r1, r5, #0
+ add r1, #0xd8
+ ldrh r2, [r1]
+ add r1, r0, #0
+ add r1, #0xdc
+ strh r2, [r4, r1]
+ add r1, r5, #0
+ add r1, #0xda
+ ldrh r2, [r1]
+ add r1, r0, #0
+ add r1, #0xde
+ strh r2, [r4, r1]
+ add r1, r5, #0
+ add r1, #0xdc
+ ldrh r2, [r1]
+ add r1, r0, #0
+ add r1, #0xe0
+ strh r2, [r4, r1]
+ add r1, r5, #0
+ add r1, #0xe5
+ ldrb r2, [r1]
+ add r1, r0, #0
+ add r1, #0xea
+ strb r2, [r4, r1]
+ add r1, r5, #0
+ add r1, #0xde
+ ldrh r2, [r1]
+ add r1, r0, #0
+ add r1, #0xe4
+ strh r2, [r4, r1]
+ add r1, r5, #0
+ add r1, #0xe0
+ ldrh r2, [r1]
+ add r1, r0, #0
+ add r1, #0xe6
+ strh r2, [r4, r1]
+ add r1, r5, #0
+ add r1, #0xe2
+ ldrh r1, [r1]
+ add r0, #0xe8
+ mov r2, #0x1e
+ strh r1, [r4, r0]
+_022365E6:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022365E6
+ ldr r0, [r5]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, _02236600 ; =MOD12_02236604
+ mov r2, #5
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02236600: .word MOD12_02236604
+
+ thumb_func_start MOD12_02236604
+MOD12_02236604: ; 0x02236604
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x114
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r6, r0, #0
+ add r2, r4, #0
+ mov r5, #0x2c
+ add r0, r1, #0
+ add r2, #0x24
+ mul r0, r5
+ add r3, r2, r0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0xe
+ bls _02236622
+ b _02236A70
+_02236622:
+ add r2, r0, r0
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223662E: ; jump table
+ .short _0223664C - _0223662E - 2 ; case 0
+ .short _02236674 - _0223662E - 2 ; case 1
+ .short _02236688 - _0223662E - 2 ; case 2
+ .short _02236690 - _0223662E - 2 ; case 3
+ .short _022366B6 - _0223662E - 2 ; case 4
+ .short _022366CA - _0223662E - 2 ; case 5
+ .short _022366D2 - _0223662E - 2 ; case 6
+ .short _022366FA - _0223662E - 2 ; case 7
+ .short _02236710 - _0223662E - 2 ; case 8
+ .short _02236718 - _0223662E - 2 ; case 9
+ .short _0223672C - _0223662E - 2 ; case 10
+ .short _022369D6 - _0223662E - 2 ; case 11
+ .short _02236A2C - _0223662E - 2 ; case 12
+ .short _02236A4C - _0223662E - 2 ; case 13
+ .short _02236A62 - _0223662E - 2 ; case 14
+_0223664C:
+ add r0, r5, #0
+ add r0, #0xe2
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _0223666C
+ add r5, #0xdc
+ ldr r0, [r4]
+ add r2, r4, r5
+ mov r3, #0
+ bl MOD12_02234FB0
+ ldrb r0, [r4, #0xc]
+ add sp, #0x114
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_0223666C:
+ mov r0, #2
+ add sp, #0x114
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_02236674:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _02236704
+ ldrb r0, [r4, #0xc]
+ add sp, #0x114
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_02236688:
+ add r0, r0, #1
+ add sp, #0x114
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_02236690:
+ ldrb r1, [r3, #0x12]
+ cmp r1, #0
+ beq _022366AE
+ mov r0, #0
+ str r0, [sp]
+ ldrb r2, [r3, #0x13]
+ ldr r0, [r4]
+ add r3, #0xc
+ bl MOD12_02234FF0
+ ldrb r0, [r4, #0xc]
+ add sp, #0x114
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_022366AE:
+ mov r0, #5
+ add sp, #0x114
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_022366B6:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _02236704
+ ldrb r0, [r4, #0xc]
+ add sp, #0x114
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_022366CA:
+ add r0, r0, #1
+ add sp, #0x114
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_022366D2:
+ add r0, r5, #0
+ add r0, #0xea
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _022366F2
+ add r5, #0xdc
+ ldr r0, [r4]
+ add r2, r4, r5
+ mov r3, #0
+ bl MOD12_02234FB0
+ ldrb r0, [r4, #0xc]
+ add sp, #0x114
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_022366F2:
+ mov r0, #8
+ add sp, #0x114
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_022366FA:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ beq _02236706
+_02236704:
+ b _02236A8E
+_02236706:
+ ldrb r0, [r4, #0xc]
+ add sp, #0x114
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_02236710:
+ add r0, r0, #1
+ add sp, #0x114
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_02236718:
+ ldr r0, [r4]
+ ldrh r2, [r4, #0xe]
+ add r5, #0xec
+ ldr r0, [r0]
+ add r3, r4, r5
+ bl MOD12_02235B1C
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_0223672C:
+ ldrb r0, [r4, #0xd]
+ add r5, r0, #1
+ cmp r5, #4
+ blt _02236736
+ mov r5, #0
+_02236736:
+ add r0, sp, #0xbc
+ mov r1, #0
+ mov r2, #0x58
+ bl MI_CpuFill8
+ add r0, sp, #0x2c
+ mov r1, #0
+ mov r2, #0x90
+ bl MI_CpuFill8
+ ldr r0, [r4]
+ mov r2, #0
+ ldr r1, [r0, #0xc]
+ ldrb r0, [r4, #0xd]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #5
+ bl FUN_020671BC
+ add r6, r0, #0
+ ldr r0, [r4]
+ mov r2, #0
+ ldr r1, [r0, #0xc]
+ ldrb r0, [r4, #0xd]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #0x6f
+ bl FUN_020671BC
+ add r7, r0, #0
+ ldr r0, [r4]
+ ldr r1, [r0, #0xc]
+ ldrb r0, [r4, #0xd]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_02068A80
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ mov r2, #0
+ ldr r1, [r0, #0xc]
+ ldrb r0, [r4, #0xd]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #0x70
+ bl FUN_020671BC
+ str r0, [sp, #0x1c]
+ ldr r0, [r4]
+ ldr r1, [r0, #0xc]
+ ldrb r0, [r4, #0xd]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_020671BC
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ lsl r5, r5, #2
+ ldr r0, [r0, #0xc]
+ mov r1, #5
+ ldr r0, [r0, r5]
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0x18]
+ ldr r0, [r4]
+ mov r1, #0x6f
+ ldr r0, [r0, #0xc]
+ mov r2, #0
+ ldr r0, [r0, r5]
+ bl FUN_020671BC
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ ldr r0, [r0, #0xc]
+ ldr r0, [r0, r5]
+ bl FUN_02068A80
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ mov r1, #0x70
+ ldr r0, [r0, #0xc]
+ mov r2, #0
+ ldr r0, [r0, r5]
+ bl FUN_020671BC
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0, #0xc]
+ add r2, r1, #0
+ ldr r0, [r0, r5]
+ bl FUN_020671BC
+ str r0, [sp, #4]
+ mov r2, #0x47
+ mov r0, #0
+ add r1, sp, #0xbc
+ strb r0, [r1]
+ strb r0, [r1, #1]
+ lsl r2, r2, #2
+ ldrh r3, [r4, r2]
+ mov r5, #1
+ strh r3, [r1, #2]
+ str r5, [sp, #0xc0]
+ mov r3, #0xa
+ strh r3, [r1, #8]
+ add r3, r2, #3
+ ldrb r3, [r4, r3]
+ add r2, r2, #4
+ strh r3, [r1, #0xa]
+ ldrb r2, [r4, r2]
+ strh r2, [r1, #0xc]
+ str r0, [sp, #0xcc]
+ strh r0, [r1, #0x14]
+ strh r5, [r1, #0x16]
+ mov r2, #9
+ str r2, [sp, #0x110]
+ lsl r2, r6, #0x10
+ lsr r2, r2, #0x10
+_0223682A:
+ add r0, r0, #1
+ strh r2, [r1, #0x18]
+ add r1, r1, #2
+ cmp r0, #4
+ blt _0223682A
+ ldr r0, [sp, #0x18]
+ add r1, sp, #0xbc
+ strh r0, [r1, #0x1a]
+ ldr r0, [r4]
+ mov r5, #0
+ ldr r0, [r0, #0x30]
+ str r0, [sp, #0x30]
+ ldr r0, [r4]
+ ldr r0, [r0, #0x5c]
+ str r0, [sp, #0x34]
+ ldrb r0, [r4, #0xd]
+ ldr r1, [r4]
+ add r1, #0x64
+ lsl r0, r0, #4
+ add r0, r1, r0
+ str r0, [sp, #0x38]
+ ldr r0, [r4]
+ add r1, sp, #0x2c
+ add r0, #0xa4
+ str r0, [sp, #0x3c]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x28]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x20]
+ add r2, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov ip, r0
+ ldr r0, [sp, #0x1c]
+ add r3, r1, #0
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+_0223687A:
+ mov r0, #0xff
+ strb r0, [r1, #0x1c]
+ ldr r0, [sp, #0x28]
+ add r6, r1, #0
+ strh r0, [r2, #0x34]
+ ldr r0, [sp, #0x24]
+ add r6, #0x3c
+ strb r0, [r6]
+ add r6, r1, #0
+ add r6, #0x40
+ mov r0, ip
+ strb r0, [r6]
+ add r0, r1, #0
+ add r0, #0x44
+ strb r7, [r0]
+ ldr r0, [sp, #8]
+ add r5, r5, #1
+ str r0, [r3, #0x48]
+ mov r0, #0
+ str r0, [r3, #0x58]
+ add r1, r1, #1
+ add r2, r2, #2
+ add r3, r3, #4
+ cmp r5, #4
+ blt _0223687A
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, sp, #0x2c
+ str r0, [sp, #0x84]
+ mov r0, #0
+ strb r0, [r2, #0x1c]
+ mov r0, #1
+ ldr r1, [sp, #0x18]
+ strb r0, [r2, #0x1d]
+ strh r1, [r2, #0x36]
+ ldr r1, [sp, #0x14]
+ add r2, sp, #0x4c
+ strb r1, [r2, #0x1d]
+ ldr r1, [sp, #0x10]
+ add r2, sp, #0x6c
+ strb r1, [r2, #1]
+ ldr r1, [sp, #0xc]
+ strb r1, [r2, #5]
+ ldr r1, [sp, #4]
+ str r1, [sp, #0x78]
+ ldrb r1, [r4, #0xd]
+ ldr r2, [r4]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ ldr r1, [r1, #0x14]
+ str r1, [sp, #0x4c]
+ ldrb r1, [r4, #0xd]
+ cmp r1, #0
+ beq _022368EA
+ mov r0, #0
+_022368EA:
+ lsl r5, r0, #2
+ ldr r0, [r4]
+ mov r2, #0x57
+ add r0, r0, r5
+ ldr r0, [r0, #0x14]
+ mov r1, #8
+ str r1, [sp, #0x94]
+ mov r1, #0x2d
+ str r1, [sp, #0x98]
+ mov r1, #1
+ str r1, [sp, #0x9c]
+ mov r1, #0x1d
+ str r0, [sp, #0x50]
+ mov r0, #0
+ str r1, [sp, #0xa0]
+ mov r1, #2
+ str r0, [sp, #0x5c]
+ str r0, [sp, #0xa8]
+ mov r0, #3
+ str r1, [sp, #0xa4]
+ str r0, [sp, #0xac]
+ ldr r0, [r4]
+ lsl r2, r2, #2
+ ldr r0, [r0, #0x24]
+ add r3, sp, #0x2c
+ str r0, [sp, #0x2c]
+ ldr r0, [r4]
+ ldr r1, [r0]
+ ldrb r0, [r4, #0xd]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, r2]
+ sub r2, #0x40
+ str r0, [sp, #0xb0]
+ ldr r0, [r4]
+ ldrh r2, [r4, r2]
+ ldr r0, [r0, #0x2c]
+ add r1, sp, #0xbc
+ bl FUN_02212048
+ ldr r0, [r4]
+ ldr r1, [r0, #0xc]
+ ldrb r0, [r4, #0xd]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_02068E14
+ add r6, r0, #0
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ ldr r0, _02236A94 ; =0xDFFBFF3F
+ cmp r1, r0
+ beq _0223696A
+ ldrb r0, [r4, #0xd]
+ ldr r1, [r4]
+ mov r2, #0
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #0x14]
+ mov r1, #6
+ bl FUN_02007558
+_0223696A:
+ ldrb r0, [r4, #0xd]
+ ldr r1, [r4]
+ mov r2, #0
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #0x14]
+ mov r1, #0x25
+ bl FUN_02007558
+ ldrb r0, [r4, #0xd]
+ ldr r1, [r4]
+ mov r2, #0xd8
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #0x14]
+ mov r1, #0
+ bl FUN_02007558
+ ldrb r0, [r4, #0xd]
+ add r6, #0x70
+ ldr r1, [r4]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #0x14]
+ mov r1, #1
+ add r2, r6, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ mov r1, #0x25
+ add r0, r0, r5
+ ldr r0, [r0, #0x14]
+ mov r2, #1
+ bl FUN_02007558
+ ldr r0, [r4]
+ mov r1, #0
+ add r0, r0, r5
+ ldr r0, [r0, #0x14]
+ mov r2, #0x50
+ bl FUN_02007558
+ ldr r0, [r4]
+ mov r1, #1
+ add r0, r0, r5
+ ldr r0, [r0, #0x14]
+ mov r2, #0x2a
+ bl FUN_02007558
+ ldrb r0, [r4, #0xc]
+ add sp, #0x114
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_022369D6:
+ ldr r0, [r4]
+ ldr r0, [r0, #0x2c]
+ bl FUN_02212384
+ ldr r0, [r4]
+ ldr r0, [r0, #0x2c]
+ bl FUN_022123A0
+ cmp r0, #0
+ bne _02236A8E
+ ldr r0, [r4]
+ ldr r0, [r0, #0x2c]
+ bl FUN_022123B0
+ add r1, r5, #0
+ add r1, #0xf2
+ ldrb r0, [r4, r1]
+ cmp r0, #0
+ beq _02236A22
+ sub r0, r0, #1
+ strb r0, [r4, r1]
+ add r0, r1, #1
+ ldrb r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ sub r0, r1, #6
+ ldr r2, [r4, r0]
+ ldr r0, _02236A98 ; =0x200400C0
+ cmp r2, r0
+ bne _02236A1A
+ ldr r2, _02236A94 ; =0xDFFBFF3F
+ sub r0, r1, #6
+ str r2, [r4, r0]
+_02236A1A:
+ mov r0, #0xa
+ add sp, #0x114
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_02236A22:
+ ldrb r0, [r4, #0xc]
+ add sp, #0x114
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_02236A2C:
+ add r5, #0xf0
+ ldrh r0, [r4, r5]
+ cmp r0, #0x90
+ beq _02236A38
+ cmp r0, #0xa4
+ bne _02236A42
+_02236A38:
+ ldr r0, [r4]
+ mov r2, #1
+ add r1, r0, r1
+ ldr r0, _02236A9C ; =0x00001652
+ strb r2, [r1, r0]
+_02236A42:
+ ldrb r0, [r4, #0xc]
+ add sp, #0x114
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_02236A4C:
+ add r2, r4, #0
+ ldr r0, [r4]
+ mov r1, #1
+ add r2, #0x10
+ bl MOD12_0223483C
+ ldrb r0, [r4, #0xc]
+ add sp, #0x114
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_02236A62:
+ ldrb r1, [r4, #0x10]
+ cmp r1, #1
+ bne _02236A8E
+ add r0, r0, #1
+ add sp, #0x114
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_02236A70:
+ mov r0, #0xc3
+ mov r2, #0
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_02236A8E:
+ add sp, #0x114
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02236A94: .word 0xDFFBFF3F
+_02236A98: .word 0x200400C0
+_02236A9C: .word 0x00001652
+
+ thumb_func_start MOD12_02236AA0
+MOD12_02236AA0: ; 0x02236AA0
+ push {r3, lr}
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ mov r3, #0
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02236AB8
+MOD12_02236AB8: ; 0x02236AB8
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r0, #0x15
+ mov r1, #0x14
+ add r5, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x14
+ bl MI_CpuFill8
+ str r6, [r4]
+ ldrh r0, [r5]
+ mov r2, #0x64
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r1, [r6, #0xc]
+ ldr r0, _02236AF8 ; =0x00000123
+ ldrb r0, [r1, r0]
+ add r1, r4, #0
+ strb r0, [r4, #0xd]
+ ldr r0, _02236AFC ; =MOD12_02236B00
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ nop
+_02236AF8: .word 0x00000123
+_02236AFC: .word MOD12_02236B00
+
+ thumb_func_start MOD12_02236B00
+MOD12_02236B00: ; 0x02236B00
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0xa
+ bls _02236B10
+ b _02236C9E
+_02236B10:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02236B1C: ; jump table
+ .short _02236B32 - _02236B1C - 2 ; case 0
+ .short _02236B4C - _02236B1C - 2 ; case 1
+ .short _02236BAA - _02236B1C - 2 ; case 2
+ .short _02236BBA - _02236B1C - 2 ; case 3
+ .short _02236BF4 - _02236B1C - 2 ; case 4
+ .short _02236C08 - _02236B1C - 2 ; case 5
+ .short _02236C0E - _02236B1C - 2 ; case 6
+ .short _02236C42 - _02236B1C - 2 ; case 7
+ .short _02236C52 - _02236B1C - 2 ; case 8
+ .short _02236C76 - _02236B1C - 2 ; case 9
+ .short _02236C98 - _02236B1C - 2 ; case 10
+_02236B32:
+ ldr r1, [r4]
+ ldr r0, _02236CE8 ; =0x0000081C
+ mov r2, #0
+ ldr r0, [r1, r0]
+ mov r1, #1
+ add r3, r2, #0
+ bl MOD12_02231B4C
+ ldrb r0, [r4, #0xc]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, pc}
+_02236B4C:
+ ldr r1, [r4]
+ ldr r0, _02236CE8 ; =0x0000081C
+ mov r2, #0
+ ldr r0, [r1, r0]
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD12_02231B4C
+ mov r0, #0x23
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ add r2, r0, #1
+ cmp r2, #4
+ bne _02236B6E
+ mov r1, #3
+ b _02236B70
+_02236B6E:
+ mov r1, #2
+_02236B70:
+ add r0, sp, #0
+ strb r2, [r0, #0xa]
+ add r2, sp, #4
+ ldr r0, [r4]
+ add r2, #2
+ mov r3, #0
+ bl MOD12_02234FB0
+ mov r0, #0x23
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ add r0, r0, #1
+ cmp r0, #4
+ bne _02236BA0
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0
+ bne _02236BA0
+ ldr r0, _02236CEC ; =0x000006F6
+ bl FUN_020054C8
+ ldrb r0, [r4, #0xe]
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+_02236BA0:
+ ldrb r0, [r4, #0xc]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, pc}
+_02236BAA:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _02236BCE
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02236BBA:
+ ldr r1, [r4]
+ ldr r0, _02236CE8 ; =0x0000081C
+ ldr r0, [r1, r0]
+ bl MOD12_02231C80
+ add r1, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r1, r0
+ bne _02236BD0
+_02236BCE:
+ b _02236CE4
+_02236BD0:
+ ldr r0, [r4]
+ add r1, #0x36
+ ldr r2, [r0, #0xc]
+ ldrb r0, [r4, #0xd]
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x10]
+ ldr r0, _02236CF0 ; =0x000005DD
+ bl FUN_020054C8
+ ldrb r0, [r4, #0xc]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, pc}
+_02236BF4:
+ ldr r1, [r4]
+ ldr r0, _02236CE8 ; =0x0000081C
+ ldr r0, [r1, r0]
+ bl MOD12_02231D48
+ cmp r0, #0
+ beq _02236CE4
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02236C08:
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02236C0E:
+ ldr r1, [r4]
+ ldr r0, _02236CE8 ; =0x0000081C
+ mov r2, #0
+ ldr r0, [r1, r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl MOD12_02231B4C
+ mov r0, #0x23
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ add r2, sp, #0
+ mov r3, #0
+ add r1, r0, #1
+ add r0, sp, #0
+ strb r1, [r0, #4]
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD12_02234FB0
+ ldrb r0, [r4, #0xc]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, pc}
+_02236C42:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _02236CE4
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02236C52:
+ ldr r1, [r4]
+ ldr r0, _02236CE8 ; =0x0000081C
+ ldr r0, [r1, r0]
+ bl MOD12_02231C80
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02236CE4
+ strh r0, [r4, #0x12]
+ ldr r0, _02236CF0 ; =0x000005DD
+ bl FUN_020054C8
+ ldrb r0, [r4, #0xc]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, pc}
+_02236C76:
+ ldr r1, [r4]
+ ldr r0, _02236CE8 ; =0x0000081C
+ ldr r0, [r1, r0]
+ bl MOD12_02231D48
+ cmp r0, #0
+ beq _02236CE4
+ ldrh r0, [r4, #0x12]
+ cmp r0, #3
+ bne _02236C92
+ mov r0, #1
+ add sp, #0xc
+ strb r0, [r4, #0xc]
+ pop {r4, r5, pc}
+_02236C92:
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02236C98:
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02236C9E:
+ ldr r0, [r4]
+ ldr r1, _02236CF4 ; =0x00000171
+ ldr r2, [r0]
+ ldrb r1, [r2, r1]
+ cmp r1, #1
+ bne _02236CB4
+ mov r2, #0
+ mov r1, #0x2e
+ add r3, r2, #0
+ bl MOD12_02234FB0
+_02236CB4:
+ mov r0, #0xc3
+ add r2, r4, #0
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r4, #4
+ add r2, #0x10
+ mov r3, #4
+ bl MOD12_02240FB0
+ ldr r1, [r4]
+ ldr r0, _02236CE8 ; =0x0000081C
+ ldr r0, [r1, r0]
+ mov r1, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD12_02231B4C
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02236CE4:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02236CE8: .word 0x0000081C
+_02236CEC: .word 0x000006F6
+_02236CF0: .word 0x000005DD
+_02236CF4: .word 0x00000171
+
+ thumb_func_start MOD12_02236CF8
+MOD12_02236CF8: ; 0x02236CF8
+ push {r4, r5}
+ ldr r0, [sp, #8]
+ lsl r2, r0, #2
+ ldr r5, [r3, r2]
+ lsl r2, r0, #1
+ ldrh r4, [r5]
+ add r3, r1, r2
+ ldr r2, _02236D18 ; =0x00000236
+ add r0, r1, r0
+ strh r4, [r3, r2]
+ ldrh r3, [r5, #2]
+ add r2, #8
+ strb r3, [r0, r2]
+ pop {r4, r5}
+ bx lr
+ nop
+_02236D18: .word 0x00000236
+
+ thumb_func_start MOD12_02236D1C
+MOD12_02236D1C: ; 0x02236D1C
+ push {r3, lr}
+ mov r0, #0xf4
+ str r0, [sp]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02236D34
+MOD12_02236D34: ; 0x02236D34
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_02236D38
+MOD12_02236D38: ; 0x02236D38
+ push {r3, lr}
+ mov r0, #0xf4
+ str r0, [sp]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02236D50
+MOD12_02236D50: ; 0x02236D50
+ push {r3, r4, r5, r6, r7, lr}
+ mov r0, #0x15
+ add r7, r1, #0
+ add r1, r0, #0
+ add r1, #0xff
+ add r6, r2, #0
+ add r5, r3, #0
+ bl FUN_02016998
+ mov r2, #0x45
+ add r4, r0, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r6]
+ add r3, r4, #0
+ add r3, #0x14
+ strh r0, [r4, #4]
+ ldrh r0, [r6, #2]
+ mov r2, #0x1e
+ strh r0, [r4, #6]
+ ldrh r0, [r6, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r6, #6]
+ strh r0, [r4, #0xa]
+ ldrb r0, [r5]
+ strb r0, [r4, #0xd]
+ ldrb r0, [r5, #1]
+ strb r0, [r4, #0xe]
+_02236D8E:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02236D8E
+ ldr r0, [r5]
+ ldr r2, _02236DA8 ; =0x00007530
+ str r0, [r3]
+ ldr r0, _02236DAC ; =MOD12_02236DB0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02236DA8: .word 0x00007530
+_02236DAC: .word MOD12_02236DB0
+
+ thumb_func_start MOD12_02236DB0
+MOD12_02236DB0: ; 0x02236DB0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r5, r0, #0
+ add r3, r4, #0
+ add r2, r1, #0
+ mov r0, #0x2c
+ ldrb r1, [r4, #0xc]
+ add r3, #0x24
+ mul r2, r0
+ add r2, r3, r2
+ cmp r1, #4
+ bhi _02236E48
+ add r3, r1, r1
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_02236DD6: ; jump table
+ .short _02236DE0 - _02236DD6 - 2 ; case 0
+ .short _02236DF0 - _02236DD6 - 2 ; case 1
+ .short _02236DF6 - _02236DD6 - 2 ; case 2
+ .short _02236E2E - _02236DD6 - 2 ; case 3
+ .short _02236E48 - _02236DD6 - 2 ; case 4
+_02236DE0:
+ mov r0, #0x1a
+ ldrsh r1, [r2, r0]
+ add r0, #0xee
+ strh r1, [r4, r0]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02236DF0:
+ add r0, r1, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02236DF6:
+ add r0, #0xdc
+ mov r3, #0x18
+ ldrsh r1, [r4, r0]
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _02236E28
+ add r0, r3, #0
+ add r0, #0xf0
+ ldrsh r1, [r4, r0]
+ add r0, r3, #0
+ add r0, #0xf0
+ add r1, #0xa
+ strh r1, [r4, r0]
+ add r3, #0xf0
+ ldr r0, [r4]
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xe]
+ ldrsh r3, [r4, r3]
+ add r0, #0xc
+ bl MOD12_02234088
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02236E28:
+ mov r0, #4
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02236E2E:
+ mov r0, #0xf
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #0xf]
+ ldrsb r0, [r4, r0]
+ cmp r0, #2
+ ble _02236E66
+ mov r0, #0
+ strb r0, [r4, #0xf]
+ ldrb r0, [r4, #0xc]
+ sub r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02236E48:
+ mov r0, #0xc3
+ mov r2, #0
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02236E66:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD12_02236E68
+MOD12_02236E68: ; 0x02236E68
+ push {r3, lr}
+ mov r0, #0xf4
+ str r0, [sp]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02236E80
+MOD12_02236E80: ; 0x02236E80
+ push {r3, r4, r5, r6, r7, lr}
+ mov r0, #0x15
+ add r7, r1, #0
+ add r1, r0, #0
+ add r1, #0xff
+ add r6, r2, #0
+ add r5, r3, #0
+ bl FUN_02016998
+ mov r2, #0x45
+ add r4, r0, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r6]
+ add r3, r4, #0
+ add r3, #0x14
+ strh r0, [r4, #4]
+ ldrh r0, [r6, #2]
+ mov r2, #0x1e
+ strh r0, [r4, #6]
+ ldrh r0, [r6, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r6, #6]
+ strh r0, [r4, #0xa]
+ ldrb r0, [r5]
+ strb r0, [r4, #0xd]
+ ldrb r0, [r5, #1]
+ strb r0, [r4, #0xe]
+_02236EBE:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02236EBE
+ ldr r0, [r5]
+ ldr r2, _02236ED8 ; =0x00007530
+ str r0, [r3]
+ ldr r0, _02236EDC ; =MOD12_02236EE0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02236ED8: .word 0x00007530
+_02236EDC: .word MOD12_02236EE0
+
+ thumb_func_start MOD12_02236EE0
+MOD12_02236EE0: ; 0x02236EE0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ str r0, [sp, #4]
+ add r2, r4, #0
+ mov r0, #0x2c
+ add r2, #0x24
+ mul r0, r1
+ add r3, r2, r0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0x10
+ bls _02236EFC
+ b _022370D4
+_02236EFC:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02236F08: ; jump table
+ .short _02236F2A - _02236F08 - 2 ; case 0
+ .short _02236F3C - _02236F08 - 2 ; case 1
+ .short _02236F62 - _02236F08 - 2 ; case 2
+ .short _02236F76 - _02236F08 - 2 ; case 3
+ .short _02236F7A - _02236F08 - 2 ; case 4
+ .short _02236F80 - _02236F08 - 2 ; case 5
+ .short _02236FB2 - _02236F08 - 2 ; case 6
+ .short _02236FD0 - _02236F08 - 2 ; case 7
+ .short _02236FD4 - _02236F08 - 2 ; case 8
+ .short _02237000 - _02236F08 - 2 ; case 9
+ .short _02237052 - _02236F08 - 2 ; case 10
+ .short _0223706E - _02236F08 - 2 ; case 11
+ .short _02237072 - _02236F08 - 2 ; case 12
+ .short _02237078 - _02236F08 - 2 ; case 13
+ .short _022370C8 - _02236F08 - 2 ; case 14
+ .short _022370CE - _02236F08 - 2 ; case 15
+ .short _022370D4 - _02236F08 - 2 ; case 16
+_02236F2A:
+ mov r0, #0x1a
+ ldrsh r1, [r3, r0]
+ add r0, #0xee
+ add sp, #8
+ strh r1, [r4, r0]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02236F3C:
+ ldrb r1, [r3, #0x12]
+ cmp r1, #0
+ beq _02236F5A
+ mov r0, #0
+ str r0, [sp]
+ ldrb r2, [r3, #0x13]
+ ldr r0, [r4]
+ add r3, #0xc
+ bl MOD12_02234FF0
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02236F5A:
+ mov r0, #3
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02236F62:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _02236FC0
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02236F76:
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02236F7A:
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02236F80:
+ mov r5, #0x42
+ lsl r5, r5, #2
+ mov r0, #0x18
+ ldrsh r1, [r4, r5]
+ ldrsh r0, [r3, r0]
+ cmp r1, r0
+ bge _02236FAA
+ add r1, #0xa
+ strh r1, [r4, r5]
+ ldr r0, [r4]
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xe]
+ ldrsh r3, [r4, r5]
+ add r0, #0xc
+ bl MOD12_02234088
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02236FAA:
+ mov r0, #7
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02236FB2:
+ mov r0, #0xf
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #0xf]
+ ldrsb r0, [r4, r0]
+ cmp r0, #2
+ bgt _02236FC2
+_02236FC0:
+ b _022370F2
+_02236FC2:
+ mov r0, #0
+ strb r0, [r4, #0xf]
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ sub r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02236FD0:
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02236FD4:
+ ldr r0, [r3, #0x28]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02236FF8
+ ldrb r0, [r3, #3]
+ add sp, #8
+ add r1, r4, r0
+ mov r0, #0xe4
+ ldrsb r1, [r1, r0]
+ add r0, #0x26
+ strh r1, [r4, r0]
+ mov r0, #0
+ strb r0, [r4, #0x10]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02236FF8:
+ mov r0, #0xb
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02237000:
+ mov r0, #0x10
+ ldrsb r0, [r4, r0]
+ mov r6, #0
+ add r5, r6, #0
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ mov r7, #0xe7
+_0223700E:
+ mov r2, #0x10
+ ldrsb r3, [r4, r2]
+ add r1, r4, r5
+ mov r0, #0xe4
+ mov r2, #0xa
+ ldrsb r0, [r1, r0]
+ mul r2, r3
+ sub r2, r0, r2
+ ldrsb r0, [r1, r7]
+ cmp r0, r2
+ bgt _02237036
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r0, #0xc
+ add r6, r6, #1
+ bl MOD12_02234628
+ ldr r0, _022370F8 ; =0x000006DF
+ bl FUN_020054C8
+_02237036:
+ add r5, r5, #1
+ cmp r5, #3
+ blt _0223700E
+ cmp r6, #0
+ ble _0223704A
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223704A:
+ mov r0, #0xb
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02237052:
+ mov r0, #0xf
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #0xf]
+ ldrsb r0, [r4, r0]
+ cmp r0, #2
+ ble _022370F2
+ mov r0, #0
+ strb r0, [r4, #0xf]
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ sub r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223706E:
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02237072:
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02237078:
+ add r6, r4, #0
+ mov r5, #0
+ add r6, #0x4c
+_0223707E:
+ ldr r2, [r4]
+ ldr r0, _022370FC ; =0x00000231
+ add r1, r2, r5
+ ldrb r1, [r1, r0]
+ mov r0, #0x2c
+ add r7, r1, #0
+ mul r7, r0
+ ldr r0, [r6, r7]
+ lsl r1, r0, #0x1a
+ lsl r3, r0, #0x16
+ lsr r1, r1, #0x1e
+ lsr r3, r3, #0x1e
+ cmp r1, r3
+ bne _022370A6
+ lsl r1, r0, #0x18
+ lsl r0, r0, #0x14
+ lsr r1, r1, #0x1e
+ lsr r0, r0, #0x1e
+ cmp r1, r0
+ beq _022370BC
+_022370A6:
+ add r2, #0xc
+ add r0, r2, #0
+ ldr r2, [r6, r7]
+ add r1, r5, #0
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1e
+ bl MOD12_02235200
+ ldr r0, _02237100 ; =0x000006E2
+ bl FUN_020054C8
+_022370BC:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0223707E
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_022370C8:
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_022370CE:
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_022370D4:
+ mov r0, #0xc3
+ mov r2, #0
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [sp, #4]
+ bl FUN_0200CAB4
+_022370F2:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022370F8: .word 0x000006DF
+_022370FC: .word 0x00000231
+_02237100: .word 0x000006E2
+
+ thumb_func_start MOD12_02237104
+MOD12_02237104: ; 0x02237104
+ push {r3, lr}
+ mov r0, #0xf4
+ str r0, [sp]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_0223711C
+MOD12_0223711C: ; 0x0223711C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r0, #0x15
+ add r7, r1, #0
+ add r1, r0, #0
+ add r1, #0xff
+ add r6, r2, #0
+ add r5, r3, #0
+ bl FUN_02016998
+ mov r2, #0x45
+ add r4, r0, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r6]
+ add r3, r4, #0
+ add r3, #0x14
+ strh r0, [r4, #4]
+ ldrh r0, [r6, #2]
+ mov r2, #0x1e
+ strh r0, [r4, #6]
+ ldrh r0, [r6, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r6, #6]
+ strh r0, [r4, #0xa]
+ ldrb r0, [r5]
+ strb r0, [r4, #0xd]
+ ldrb r0, [r5, #1]
+ strb r0, [r4, #0xe]
+_0223715A:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0223715A
+ ldr r0, [r5]
+ ldr r2, _02237174 ; =0x00007530
+ str r0, [r3]
+ ldr r0, _02237178 ; =MOD12_0223717C
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02237174: .word 0x00007530
+_02237178: .word MOD12_0223717C
+
+ thumb_func_start MOD12_0223717C
+MOD12_0223717C: ; 0x0223717C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r5, r0, #0
+ add r2, r4, #0
+ mov r0, #0x2c
+ add r2, #0x24
+ mul r0, r1
+ add r3, r2, r0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #8
+ bhi _0223724C
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022371A0: ; jump table
+ .short _022371B2 - _022371A0 - 2 ; case 0
+ .short _022371C2 - _022371A0 - 2 ; case 1
+ .short _022371E4 - _022371A0 - 2 ; case 2
+ .short _022371F6 - _022371A0 - 2 ; case 3
+ .short _022371FA - _022371A0 - 2 ; case 4
+ .short _02237200 - _022371A0 - 2 ; case 5
+ .short _0223722E - _022371A0 - 2 ; case 6
+ .short _02237248 - _022371A0 - 2 ; case 7
+ .short _0223724C - _022371A0 - 2 ; case 8
+_022371B2:
+ mov r0, #0x1a
+ ldrsh r1, [r3, r0]
+ add r0, #0xee
+ strh r1, [r4, r0]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_022371C2:
+ ldrb r1, [r3, #0x12]
+ cmp r1, #0
+ beq _022371DE
+ mov r0, #0
+ str r0, [sp]
+ ldrb r2, [r3, #0x13]
+ ldr r0, [r4]
+ add r3, #0xc
+ bl MOD12_02234FF0
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_022371DE:
+ mov r0, #3
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_022371E4:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _0223726A
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_022371F6:
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_022371FA:
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02237200:
+ mov r5, #0x42
+ lsl r5, r5, #2
+ mov r0, #0x18
+ ldrsh r1, [r4, r5]
+ ldrsh r0, [r3, r0]
+ cmp r1, r0
+ bge _02237228
+ add r1, #0xa
+ strh r1, [r4, r5]
+ ldr r0, [r4]
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xe]
+ ldrsh r3, [r4, r5]
+ add r0, #0xc
+ bl MOD12_02234088
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237228:
+ mov r0, #7
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223722E:
+ mov r0, #0xf
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #0xf]
+ ldrsb r0, [r4, r0]
+ cmp r0, #2
+ ble _0223726A
+ mov r0, #0
+ strb r0, [r4, #0xf]
+ ldrb r0, [r4, #0xc]
+ sub r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237248:
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_0223724C:
+ mov r0, #0xc3
+ mov r2, #0
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0223726A:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD12_0223726C
+MOD12_0223726C: ; 0x0223726C
+ push {r3, lr}
+ mov r0, #0xf4
+ str r0, [sp]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02237284
+MOD12_02237284: ; 0x02237284
+ push {r3, r4, r5, r6, r7, lr}
+ mov r0, #0x15
+ add r7, r1, #0
+ add r1, r0, #0
+ add r1, #0xff
+ add r6, r2, #0
+ add r5, r3, #0
+ bl FUN_02016998
+ mov r2, #0x45
+ add r4, r0, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r6]
+ add r3, r4, #0
+ add r3, #0x14
+ strh r0, [r4, #4]
+ ldrh r0, [r6, #2]
+ mov r2, #0x1e
+ strh r0, [r4, #6]
+ ldrh r0, [r6, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r6, #6]
+ strh r0, [r4, #0xa]
+ ldrb r0, [r5]
+ strb r0, [r4, #0xd]
+ ldrb r0, [r5, #1]
+ strb r0, [r4, #0xe]
+_022372C2:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022372C2
+ ldr r0, [r5]
+ ldr r2, _022372DC ; =0x00007530
+ str r0, [r3]
+ ldr r0, _022372E0 ; =MOD12_022372E4
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022372DC: .word 0x00007530
+_022372E0: .word MOD12_022372E4
+
+ thumb_func_start MOD12_022372E4
+MOD12_022372E4: ; 0x022372E4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r6, r0, #0
+ add r3, r4, #0
+ add r2, r1, #0
+ mov r0, #0x2c
+ ldrb r1, [r4, #0xc]
+ add r3, #0x24
+ mul r2, r0
+ add r5, r3, r2
+ cmp r1, #0x19
+ bls _02237302
+ b _02237624
+_02237302:
+ add r2, r1, r1
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223730E: ; jump table
+ .short _02237342 - _0223730E - 2 ; case 0
+ .short _02237358 - _0223730E - 2 ; case 1
+ .short _0223739C - _0223730E - 2 ; case 2
+ .short _022373AC - _0223730E - 2 ; case 3
+ .short _022373B0 - _0223730E - 2 ; case 4
+ .short _022373D8 - _0223730E - 2 ; case 5
+ .short _022373EC - _0223730E - 2 ; case 6
+ .short _022373F0 - _0223730E - 2 ; case 7
+ .short _02237424 - _0223730E - 2 ; case 8
+ .short _02237442 - _0223730E - 2 ; case 9
+ .short _02237446 - _0223730E - 2 ; case 10
+ .short _0223744C - _0223730E - 2 ; case 11
+ .short _022374B8 - _0223730E - 2 ; case 12
+ .short _022374D0 - _0223730E - 2 ; case 13
+ .short _022374EA - _0223730E - 2 ; case 14
+ .short _0223750A - _0223730E - 2 ; case 15
+ .short _02237532 - _0223730E - 2 ; case 16
+ .short _02237548 - _0223730E - 2 ; case 17
+ .short _0223754C - _0223730E - 2 ; case 18
+ .short _02237578 - _0223730E - 2 ; case 19
+ .short _02237586 - _0223730E - 2 ; case 20
+ .short _0223758A - _0223730E - 2 ; case 21
+ .short _0223759C - _0223730E - 2 ; case 22
+ .short _022375E0 - _0223730E - 2 ; case 23
+ .short _022375FC - _0223730E - 2 ; case 24
+ .short _02237624 - _0223730E - 2 ; case 25
+_02237342:
+ ldrb r0, [r5, #3]
+ add sp, #8
+ add r1, r4, r0
+ mov r0, #0xe4
+ ldrsb r1, [r1, r0]
+ add r0, #0x26
+ strh r1, [r4, r0]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_02237358:
+ ldrb r1, [r5, #3]
+ mov r0, #0xe7
+ add r3, r4, r1
+ ldrsb r2, [r3, r0]
+ mov r0, #0xe4
+ ldrsb r0, [r3, r0]
+ cmp r2, r0
+ ble _02237394
+ cmp r2, #0x32
+ blt _02237370
+ mov r6, #3
+ b _02237372
+_02237370:
+ mov r6, #2
+_02237372:
+ ldr r0, [r4]
+ add r2, r6, #0
+ add r0, #0xc
+ bl MOD12_02233BE4
+ ldr r3, _0223764C ; =0x0000010E
+ ldrb r1, [r5, #3]
+ ldr r0, [r4]
+ add r2, r6, #0
+ add r3, r4, r3
+ bl MOD12_02233C94
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_02237394:
+ mov r0, #3
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_0223739C:
+ add r0, #0xe2
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ bne _02237432
+ add r0, r1, #1
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_022373AC:
+ add r0, r1, #1
+ strb r0, [r4, #0xc]
+_022373B0:
+ add r0, r4, #0
+ add r0, #0xf8
+ ldrb r1, [r0]
+ cmp r1, #0
+ beq _022373D0
+ add r2, r4, #0
+ ldr r0, [r4]
+ add r2, #0xec
+ mov r3, #0
+ bl MOD12_02234FB0
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_022373D0:
+ mov r0, #6
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_022373D8:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _02237432
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_022373EC:
+ add r0, r1, #1
+ strb r0, [r4, #0xc]
+_022373F0:
+ ldrb r0, [r5, #3]
+ add r2, r4, r0
+ mov r0, #0xe7
+ ldrsb r1, [r2, r0]
+ mov r0, #0xe4
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ ble _02237416
+ mov r0, #1
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x11
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ mov r2, #0
+ mov r3, #0x46
+ bl MOD12_022352F4
+ b _0223741A
+_02237416:
+ mov r0, #1
+ strb r0, [r4, #0x11]
+_0223741A:
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_02237424:
+ mov r0, #0xf
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #0xf]
+ ldrsb r0, [r4, r0]
+ cmp r0, #8
+ bgt _02237434
+_02237432:
+ b _02237648
+_02237434:
+ mov r0, #0
+ strb r0, [r4, #0xf]
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_02237442:
+ add r0, r1, #1
+ strb r0, [r4, #0xc]
+_02237446:
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_0223744C:
+ ldrb r0, [r5, #3]
+ add r3, r4, r0
+ mov r0, #0xe7
+ ldrsb r1, [r3, r0]
+ add r0, #0x23
+ ldrsh r0, [r4, r0]
+ cmp r0, r1
+ beq _022374B0
+ mov r2, #0xe4
+ ldrsb r0, [r3, r2]
+ sub r0, r1, r0
+ cmp r0, #0
+ ble _02237484
+ add r0, r2, #0
+ add r0, #0x26
+ ldrsh r1, [r4, r0]
+ add r0, r2, #0
+ add r0, #0x26
+ add r1, #0xa
+ strh r1, [r4, r0]
+ add r2, #0x26
+ ldr r0, [r4]
+ ldrb r1, [r5, #3]
+ ldrsh r2, [r4, r2]
+ add r0, #0xc
+ bl MOD12_02234628
+ b _022374A6
+_02237484:
+ add r0, r2, #0
+ add r0, #0x26
+ ldrsh r1, [r4, r0]
+ add r0, r2, #0
+ add r0, #0x26
+ sub r1, #0xa
+ strh r1, [r4, r0]
+ add r2, #0x26
+ ldr r0, [r4]
+ ldrb r1, [r5, #3]
+ ldrsh r2, [r4, r2]
+ add r0, #0xc
+ bl MOD12_02234628
+ ldr r0, _02237650 ; =0x000006DF
+ bl FUN_020054C8
+_022374A6:
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_022374B0:
+ mov r0, #0xe
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_022374B8:
+ ldr r0, [r4]
+ ldrb r1, [r5, #3]
+ add r0, #0xc
+ bl MOD12_022345FC
+ cmp r0, #1
+ bne _0223753C
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_022374D0:
+ mov r0, #0xf
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #0xf]
+ ldrsb r0, [r4, r0]
+ cmp r0, #2
+ ble _0223753C
+ mov r0, #0
+ strb r0, [r4, #0xf]
+ mov r0, #0xb
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_022374EA:
+ add r0, #0xde
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x32
+ blt _02237500
+ ldrb r1, [r5, #3]
+ ldr r0, [r4]
+ bl MOD12_022357B0
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+_02237500:
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_0223750A:
+ add r0, r4, #0
+ add r0, #0xf9
+ ldrb r1, [r0]
+ cmp r1, #0
+ beq _0223752A
+ add r2, r4, #0
+ ldr r0, [r4]
+ add r2, #0xf2
+ mov r3, #0
+ bl MOD12_02234FB0
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_0223752A:
+ mov r0, #0x11
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_02237532:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ beq _0223753E
+_0223753C:
+ b _02237648
+_0223753E:
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_02237548:
+ add r0, r1, #1
+ strb r0, [r4, #0xc]
+_0223754C:
+ ldr r0, _02237654 ; =0x0000010A
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x32
+ blt _02237570
+ add r0, r4, #0
+ add r0, #0x12
+ str r0, [sp]
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xe]
+ ldrb r3, [r5, #3]
+ ldr r0, [r4]
+ bl MOD12_02235824
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_02237570:
+ mov r0, #0x14
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_02237578:
+ ldrb r0, [r4, #0x12]
+ cmp r0, #0
+ bne _02237648
+ add r0, r1, #1
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_02237586:
+ add r0, r1, #1
+ strb r0, [r4, #0xc]
+_0223758A:
+ mov r0, #0x1a
+ ldrsh r1, [r5, r0]
+ add r0, #0xee
+ add sp, #8
+ strh r1, [r4, r0]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_0223759C:
+ add r0, #0xdc
+ mov r3, #0x18
+ ldrsh r1, [r4, r0]
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ bge _022375D0
+ add r0, r3, #0
+ add r0, #0xf0
+ ldrsh r1, [r4, r0]
+ add r0, r3, #0
+ add r0, #0xf0
+ add r1, #0xa
+ strh r1, [r4, r0]
+ add r3, #0xf0
+ ldr r0, [r4]
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xe]
+ ldrsh r3, [r4, r3]
+ add r0, #0xc
+ bl MOD12_02234088
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_022375D0:
+ ldr r0, [r4]
+ add r0, #0xc
+ bl MOD12_02233C74
+ mov r0, #0x18
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_022375E0:
+ mov r0, #0xf
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #0xf]
+ ldrsb r0, [r4, r0]
+ cmp r0, #2
+ ble _02237648
+ mov r0, #0
+ strb r0, [r4, #0xf]
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ sub r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_022375FC:
+ add r1, r0, #0
+ add r1, #0xde
+ ldrsh r1, [r4, r1]
+ cmp r1, #0x32
+ blt _0223761A
+ add r0, #0xe4
+ ldr r0, [r4, r0]
+ bl MOD12_022357E4
+ ldr r0, [r4]
+ ldrb r1, [r5, #3]
+ add r0, #0xc
+ mov r2, #0
+ bl MOD12_02234628
+_0223761A:
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r4, r5, r6, pc}
+_02237624:
+ ldrb r0, [r4, #0x11]
+ cmp r0, #1
+ bne _02237648
+ mov r0, #0xc3
+ mov r2, #0
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_02237648:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0223764C: .word 0x0000010E
+_02237650: .word 0x000006DF
+_02237654: .word 0x0000010A
+
+ thumb_func_start MOD12_02237658
+MOD12_02237658: ; 0x02237658
+ push {r3, lr}
+ mov r0, #0xf4
+ str r0, [sp]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02237670
+MOD12_02237670: ; 0x02237670
+ push {r3, r4, r5, r6, r7, lr}
+ mov r0, #0x15
+ add r7, r1, #0
+ add r1, r0, #0
+ add r1, #0xff
+ add r6, r2, #0
+ add r5, r3, #0
+ bl FUN_02016998
+ mov r2, #0x45
+ add r4, r0, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r6]
+ add r3, r4, #0
+ add r3, #0x14
+ strh r0, [r4, #4]
+ ldrh r0, [r6, #2]
+ mov r2, #0x1e
+ strh r0, [r4, #6]
+ ldrh r0, [r6, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r6, #6]
+ strh r0, [r4, #0xa]
+ ldrb r0, [r5]
+ strb r0, [r4, #0xd]
+ ldrb r0, [r5, #1]
+ strb r0, [r4, #0xe]
+_022376AE:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022376AE
+ ldr r0, [r5]
+ ldr r2, _022376C8 ; =0x00007530
+ str r0, [r3]
+ ldr r0, _022376CC ; =MOD12_022376D0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022376C8: .word 0x00007530
+_022376CC: .word MOD12_022376D0
+
+ thumb_func_start MOD12_022376D0
+MOD12_022376D0: ; 0x022376D0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r5, r0, #0
+ add r2, r4, #0
+ mov r0, #0x2c
+ add r2, #0x24
+ mul r0, r1
+ add r3, r2, r0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #8
+ bhi _022377A0
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022376F4: ; jump table
+ .short _02237706 - _022376F4 - 2 ; case 0
+ .short _02237716 - _022376F4 - 2 ; case 1
+ .short _02237738 - _022376F4 - 2 ; case 2
+ .short _0223774A - _022376F4 - 2 ; case 3
+ .short _0223774E - _022376F4 - 2 ; case 4
+ .short _02237754 - _022376F4 - 2 ; case 5
+ .short _02237782 - _022376F4 - 2 ; case 6
+ .short _0223779C - _022376F4 - 2 ; case 7
+ .short _022377A0 - _022376F4 - 2 ; case 8
+_02237706:
+ mov r0, #0x1a
+ ldrsh r1, [r3, r0]
+ add r0, #0xee
+ strh r1, [r4, r0]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237716:
+ ldrb r1, [r3, #0x12]
+ cmp r1, #0
+ beq _02237732
+ mov r0, #0
+ str r0, [sp]
+ ldrb r2, [r3, #0x13]
+ ldr r0, [r4]
+ add r3, #0xc
+ bl MOD12_02234FF0
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237732:
+ mov r0, #3
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237738:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _022377BE
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223774A:
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_0223774E:
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02237754:
+ mov r5, #0x42
+ lsl r5, r5, #2
+ mov r0, #0x18
+ ldrsh r1, [r4, r5]
+ ldrsh r0, [r3, r0]
+ cmp r1, r0
+ bge _02237776
+ add r1, #0xa
+ strh r1, [r4, r5]
+ ldr r0, [r4]
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xe]
+ ldrsh r3, [r4, r5]
+ add r0, #0xc
+ bl MOD12_02234088
+ b _0223777A
+_02237776:
+ mov r0, #7
+ strb r0, [r4, #0xc]
+_0223777A:
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237782:
+ mov r0, #0xf
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #0xf]
+ ldrsb r0, [r4, r0]
+ cmp r0, #2
+ ble _022377BE
+ mov r0, #0
+ strb r0, [r4, #0xf]
+ ldrb r0, [r4, #0xc]
+ sub r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223779C:
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_022377A0:
+ mov r0, #0xc3
+ mov r2, #0
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_022377BE:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD12_022377C0
+MOD12_022377C0: ; 0x022377C0
+ push {r3, lr}
+ mov r0, #0xf4
+ str r0, [sp]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_022377D8
+MOD12_022377D8: ; 0x022377D8
+ push {r3, r4, r5, r6, r7, lr}
+ mov r0, #0x15
+ add r7, r1, #0
+ add r1, r0, #0
+ add r1, #0xf7
+ add r5, r2, #0
+ add r6, r3, #0
+ bl FUN_02016998
+ mov r2, #0x43
+ add r4, r0, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ add r3, r4, #0
+ add r3, #0x10
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ mov r2, #0x1e
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+_0223780E:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0223780E
+ ldr r0, [r6]
+ ldr r2, _02237828 ; =0x00007530
+ str r0, [r3]
+ ldr r0, _0223782C ; =MOD12_02237830
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02237828: .word 0x00007530
+_0223782C: .word MOD12_02237830
+
+ thumb_func_start MOD12_02237830
+MOD12_02237830: ; 0x02237830
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp, #4]
+ ldr r0, _02237A8C ; =0x00000106
+ add r4, r1, #0
+ ldrb r0, [r4, r0]
+ mov r7, #0
+ add r0, r4, r0
+ add r0, #0xf9
+ ldrb r1, [r0]
+ cmp r1, #4
+ beq _0223786C
+ add r2, r4, #0
+ mov r0, #0x2c
+ add r2, #0x20
+ mul r0, r1
+ add r5, r2, r0
+ ldr r3, [r4]
+ ldr r6, _02237A90 ; =0x00000231
+ add r2, r7, #0
+_02237858:
+ ldrb r0, [r3, r6]
+ cmp r1, r0
+ bne _02237862
+ add r7, r2, #0
+ b _0223786E
+_02237862:
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r2, #4
+ blt _02237858
+ b _0223786E
+_0223786C:
+ add r5, r7, #0
+_0223786E:
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0x11
+ bls _02237876
+ b _02237A6A
+_02237876:
+ add r2, r0, r0
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02237882: ; jump table
+ .short _022378A6 - _02237882 - 2 ; case 0
+ .short _022378B4 - _02237882 - 2 ; case 1
+ .short _02237908 - _02237882 - 2 ; case 2
+ .short _02237918 - _02237882 - 2 ; case 3
+ .short _0223791C - _02237882 - 2 ; case 4
+ .short _02237944 - _02237882 - 2 ; case 5
+ .short _0223795A - _02237882 - 2 ; case 6
+ .short _0223795E - _02237882 - 2 ; case 7
+ .short _02237988 - _02237882 - 2 ; case 8
+ .short _0223799C - _02237882 - 2 ; case 9
+ .short _022379A0 - _02237882 - 2 ; case 10
+ .short _022379C8 - _02237882 - 2 ; case 11
+ .short _022379DC - _02237882 - 2 ; case 12
+ .short _022379E0 - _02237882 - 2 ; case 13
+ .short _022379F2 - _02237882 - 2 ; case 14
+ .short _02237A24 - _02237882 - 2 ; case 15
+ .short _02237A40 - _02237882 - 2 ; case 16
+ .short _02237A6A - _02237882 - 2 ; case 17
+_022378A6:
+ mov r0, #0x1a
+ ldrsh r1, [r5, r0]
+ add r0, #0xea
+ strh r1, [r4, r0]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_022378B4:
+ ldrb r0, [r5, #9]
+ cmp r0, #0
+ bne _022378C6
+ mov r0, #0x6f
+ lsl r0, r0, #4
+ mov r6, #4
+ bl FUN_020054C8
+ b _022378F0
+_022378C6:
+ cmp r0, #1
+ bne _022378D4
+ ldr r0, _02237A94 ; =0x000006EF
+ mov r6, #5
+ bl FUN_020054C8
+ b _022378F0
+_022378D4:
+ cmp r0, #2
+ bne _022378E2
+ ldr r0, _02237A98 ; =0x000006EE
+ mov r6, #6
+ bl FUN_020054C8
+ b _022378F0
+_022378E2:
+ mov r0, #3
+ strb r0, [r4, #0xc]
+ ldr r0, _02237A9C ; =0x000006DF
+ bl FUN_020054C8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_022378F0:
+ ldr r3, _02237AA0 ; =0x00000107
+ ldrb r1, [r5, #3]
+ ldr r0, [r4]
+ add r2, r6, #0
+ add r3, r4, r3
+ bl MOD12_02233C94
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02237908:
+ ldr r1, _02237AA0 ; =0x00000107
+ ldrb r1, [r4, r1]
+ cmp r1, #1
+ bne _0223794E
+ add r0, r0, #1
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02237918:
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_0223791C:
+ ldrb r1, [r5, #0x12]
+ cmp r1, #0
+ beq _0223793C
+ mov r0, #0
+ str r0, [sp]
+ ldrb r2, [r5, #0x13]
+ add r5, #0xc
+ ldr r0, [r4]
+ add r3, r5, #0
+ bl MOD12_02234FF0
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223793C:
+ mov r0, #6
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02237944:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ beq _02237950
+_0223794E:
+ b _02237A88
+_02237950:
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223795A:
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_0223795E:
+ add r0, r4, #0
+ add r0, #0xf4
+ ldrb r1, [r0]
+ cmp r1, #0
+ beq _02237980
+ add r2, r4, #0
+ add r3, r4, #0
+ ldr r0, [r4]
+ add r2, #0xe8
+ add r3, #0xf8
+ bl MOD12_02234FB0
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02237980:
+ mov r0, #9
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02237988:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _02237A88
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223799C:
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_022379A0:
+ add r0, r4, #0
+ add r0, #0xf5
+ ldrb r1, [r0]
+ cmp r1, #0
+ beq _022379C0
+ add r2, r4, #0
+ ldr r0, [r4]
+ add r2, #0xee
+ mov r3, #0
+ bl MOD12_02234FB0
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_022379C0:
+ mov r0, #0xc
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_022379C8:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _02237A88
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_022379DC:
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_022379E0:
+ mov r0, #0x1a
+ ldrsh r1, [r5, r0]
+ add r0, #0xea
+ add sp, #8
+ strh r1, [r4, r0]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_022379F2:
+ mov r3, #0x41
+ lsl r3, r3, #2
+ mov r2, #0x18
+ ldrsh r0, [r4, r3]
+ ldrsh r2, [r5, r2]
+ cmp r0, r2
+ bge _02237A12
+ add r0, #0xa
+ strh r0, [r4, r3]
+ ldr r0, [r4]
+ ldrsh r3, [r4, r3]
+ add r0, #0xc
+ add r2, r7, #0
+ bl MOD12_02234088
+ b _02237A1A
+_02237A12:
+ mov r0, #0x10
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02237A1A:
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02237A24:
+ mov r0, #0xd
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #0xd]
+ ldrsb r0, [r4, r0]
+ cmp r0, #2
+ ble _02237A88
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ sub r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02237A40:
+ ldr r0, _02237A8C ; =0x00000106
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ ldrb r0, [r4, r0]
+ cmp r0, #4
+ bhs _02237A60
+ add r0, r4, r0
+ add r0, #0xf9
+ ldrb r0, [r0]
+ cmp r0, #4
+ beq _02237A60
+ mov r0, #0xd
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02237A60:
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02237A6A:
+ mov r0, #0xc3
+ mov r2, #0
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [sp, #4]
+ bl FUN_0200CAB4
+_02237A88:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02237A8C: .word 0x00000106
+_02237A90: .word 0x00000231
+_02237A94: .word 0x000006EF
+_02237A98: .word 0x000006EE
+_02237A9C: .word 0x000006DF
+_02237AA0: .word 0x00000107
+
+ thumb_func_start MOD12_02237AA4
+MOD12_02237AA4: ; 0x02237AA4
+ push {r3, lr}
+ mov r0, #0xf4
+ str r0, [sp]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02237ABC
+MOD12_02237ABC: ; 0x02237ABC
+ push {r3, r4, r5, r6, r7, lr}
+ mov r0, #0x15
+ add r7, r1, #0
+ add r1, r0, #0
+ add r1, #0xff
+ add r6, r2, #0
+ add r5, r3, #0
+ bl FUN_02016998
+ mov r2, #0x45
+ add r4, r0, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r6]
+ add r3, r4, #0
+ add r3, #0x14
+ strh r0, [r4, #4]
+ ldrh r0, [r6, #2]
+ mov r2, #0x1e
+ strh r0, [r4, #6]
+ ldrh r0, [r6, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r6, #6]
+ strh r0, [r4, #0xa]
+ ldrb r0, [r5]
+ strb r0, [r4, #0xd]
+ ldrb r0, [r5, #1]
+ strb r0, [r4, #0xe]
+_02237AFA:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02237AFA
+ ldr r0, [r5]
+ ldr r2, _02237B14 ; =0x00007530
+ str r0, [r3]
+ ldr r0, _02237B18 ; =MOD12_02237B1C
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02237B14: .word 0x00007530
+_02237B18: .word MOD12_02237B1C
+
+ thumb_func_start MOD12_02237B1C
+MOD12_02237B1C: ; 0x02237B1C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r5, r0, #0
+ add r2, r4, #0
+ mov r0, #0x2c
+ add r2, #0x24
+ mul r0, r1
+ add r3, r2, r0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0xe
+ bls _02237B36
+ b _02237C6E
+_02237B36:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02237B42: ; jump table
+ .short _02237B60 - _02237B42 - 2 ; case 0
+ .short _02237B70 - _02237B42 - 2 ; case 1
+ .short _02237B92 - _02237B42 - 2 ; case 2
+ .short _02237BA4 - _02237B42 - 2 ; case 3
+ .short _02237BA8 - _02237B42 - 2 ; case 4
+ .short _02237BCC - _02237B42 - 2 ; case 5
+ .short _02237BDE - _02237B42 - 2 ; case 6
+ .short _02237BE2 - _02237B42 - 2 ; case 7
+ .short _02237C06 - _02237B42 - 2 ; case 8
+ .short _02237C18 - _02237B42 - 2 ; case 9
+ .short _02237C1C - _02237B42 - 2 ; case 10
+ .short _02237C22 - _02237B42 - 2 ; case 11
+ .short _02237C50 - _02237B42 - 2 ; case 12
+ .short _02237C6A - _02237B42 - 2 ; case 13
+ .short _02237C6E - _02237B42 - 2 ; case 14
+_02237B60:
+ mov r0, #0x1a
+ ldrsh r1, [r3, r0]
+ add r0, #0xee
+ strh r1, [r4, r0]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237B70:
+ ldrb r1, [r3, #0x12]
+ cmp r1, #0
+ beq _02237B8C
+ mov r0, #0
+ str r0, [sp]
+ ldrb r2, [r3, #0x13]
+ ldr r0, [r4]
+ add r3, #0xc
+ bl MOD12_02234FF0
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237B8C:
+ mov r0, #3
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237B92:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _02237C8C
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237BA4:
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02237BA8:
+ add r0, r4, #0
+ add r0, #0xf8
+ ldrb r1, [r0]
+ cmp r1, #0
+ beq _02237BC6
+ add r2, r4, #0
+ ldr r0, [r4]
+ add r2, #0xec
+ mov r3, #0
+ bl MOD12_02234FB0
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237BC6:
+ mov r0, #6
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237BCC:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _02237C8C
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237BDE:
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02237BE2:
+ add r0, r4, #0
+ add r0, #0xf9
+ ldrb r1, [r0]
+ cmp r1, #0
+ beq _02237C00
+ add r2, r4, #0
+ ldr r0, [r4]
+ add r2, #0xf2
+ mov r3, #0
+ bl MOD12_02234FB0
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237C00:
+ mov r0, #9
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237C06:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _02237C8C
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237C18:
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02237C1C:
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02237C22:
+ mov r5, #0x42
+ lsl r5, r5, #2
+ mov r0, #0x18
+ ldrsh r1, [r4, r5]
+ ldrsh r0, [r3, r0]
+ cmp r1, r0
+ bge _02237C44
+ add r1, #0xa
+ strh r1, [r4, r5]
+ ldr r0, [r4]
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xe]
+ ldrsh r3, [r4, r5]
+ add r0, #0xc
+ bl MOD12_02234088
+ b _02237C48
+_02237C44:
+ mov r0, #0xd
+ strb r0, [r4, #0xc]
+_02237C48:
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237C50:
+ mov r0, #0xf
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #0xf]
+ ldrsb r0, [r4, r0]
+ cmp r0, #2
+ ble _02237C8C
+ mov r0, #0
+ strb r0, [r4, #0xf]
+ ldrb r0, [r4, #0xc]
+ sub r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237C6A:
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02237C6E:
+ mov r0, #0xc3
+ mov r2, #0
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02237C8C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02237C90
+MOD12_02237C90: ; 0x02237C90
+ push {r3, lr}
+ mov r0, #0xf4
+ str r0, [sp]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02237CA8
+MOD12_02237CA8: ; 0x02237CA8
+ push {r3, r4, r5, r6, r7, lr}
+ mov r0, #0x15
+ add r7, r1, #0
+ add r1, r0, #0
+ add r1, #0xff
+ add r5, r2, #0
+ add r6, r3, #0
+ bl FUN_02016998
+ mov r2, #0x45
+ add r4, r0, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ add r3, r4, #0
+ add r3, #0x14
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ mov r2, #0x1e
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r1, [r7, #0xc]
+ ldr r0, _02237D04 ; =0x00000123
+ ldrb r0, [r1, r0]
+ strb r0, [r4, #0xd]
+ ldrb r0, [r6, #1]
+ strb r0, [r4, #0xe]
+_02237CEA:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02237CEA
+ ldr r0, [r6]
+ ldr r2, _02237D08 ; =0x00007530
+ str r0, [r3]
+ ldr r0, _02237D0C ; =MOD12_02237D10
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02237D04: .word 0x00000123
+_02237D08: .word 0x00007530
+_02237D0C: .word MOD12_02237D10
+
+ thumb_func_start MOD12_02237D10
+MOD12_02237D10: ; 0x02237D10
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xd]
+ add r2, r4, #0
+ mov r1, #0x2c
+ add r2, #0x24
+ mul r1, r0
+ add r2, r2, r1
+ ldrb r1, [r4, #0xc]
+ cmp r1, #0
+ beq _02237D34
+ cmp r1, #1
+ beq _02237D54
+ cmp r1, #2
+ beq _02237D68
+ b _02237D70
+_02237D34:
+ mov r1, #0x18
+ ldrsh r1, [r2, r1]
+ add r2, sp, #0
+ bl MOD12_022352A0
+ add r1, r0, #0
+ ldr r0, [r4]
+ add r2, sp, #0
+ mov r3, #0
+ bl MOD12_02234FB0
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237D54:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _02237D8E
+ ldrb r0, [r4, #0xc]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237D68:
+ add r0, r1, #1
+ add sp, #8
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_02237D70:
+ mov r0, #0xc3
+ mov r2, #0
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02237D8E:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02237D94
+MOD12_02237D94: ; 0x02237D94
+ push {r3, lr}
+ mov r1, #0xf4
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02237DA8
+MOD12_02237DA8: ; 0x02237DA8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x15
+ mov r1, #0x28
+ add r5, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x28
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _02237DE4 ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, _02237DE8 ; =MOD12_02237DEC
+ str r6, [r4, #0xc]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02237DE4: .word 0x00007530
+_02237DE8: .word MOD12_02237DEC
+
+ thumb_func_start MOD12_02237DEC
+MOD12_02237DEC: ; 0x02237DEC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #3
+ bhi _02237EC2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237E0A: ; jump table
+ .short _02237E12 - _02237E0A - 2 ; case 0
+ .short _02237E36 - _02237E0A - 2 ; case 1
+ .short _02237E78 - _02237E0A - 2 ; case 2
+ .short _02237EC2 - _02237E0A - 2 ; case 3
+_02237E12:
+ mov r1, #0
+ add r0, r4, #0
+ str r1, [sp]
+ add r0, #0x27
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #0x46
+ bl MOD12_022352F4
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02237E36:
+ add r7, r4, #0
+ mov r5, #0
+ add r6, r4, #0
+ add r7, #0x23
+_02237E3E:
+ ldr r0, [r4]
+ ldr r1, _02237EE8 ; =0x00000231
+ add r2, r0, r5
+ ldrb r1, [r2, r1]
+ bl MOD12_022335E4
+ str r0, [r6, #0x10]
+ ldr r1, [r4]
+ add r3, r7, r5
+ str r0, [sp]
+ add r0, r1, #0
+ add r2, r1, r5
+ ldr r1, _02237EE8 ; =0x00000231
+ ldrb r1, [r2, r1]
+ add r2, r5, #0
+ bl MOD12_02235470
+ add r5, r5, #1
+ add r6, r6, #4
+ cmp r5, #4
+ blt _02237E3E
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02237E78:
+ mov r7, #0
+ add r6, r7, #0
+ add r5, r4, #0
+_02237E7E:
+ add r0, r4, r6
+ add r0, #0x23
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02237E94
+ ldr r0, [r5, #0x10]
+ bl MOD12_02233644
+ cmp r0, #0
+ bne _02237E94
+ add r7, r7, #1
+_02237E94:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _02237E7E
+ cmp r7, #4
+ bne _02237EE4
+ mov r6, #0
+ add r5, r4, #0
+_02237EA4:
+ ldr r0, [r5, #0x10]
+ bl MOD12_0223361C
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _02237EA4
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02237EC2:
+ add r0, r4, #0
+ add r0, #0x27
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02237EE4
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02237EE4:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02237EE8: .word 0x00000231
+
+ thumb_func_start MOD12_02237EEC
+MOD12_02237EEC: ; 0x02237EEC
+ push {r3, lr}
+ mov r0, #0xf8
+ str r0, [sp]
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ lsl r2, r2, #0x10
+ add r0, r1, r0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+
+ thumb_func_start MOD12_02237F04
+MOD12_02237F04: ; 0x02237F04
+ push {r4, r5, r6, lr}
+ mov r0, #0x23
+ add r5, r1, #0
+ lsl r0, r0, #4
+ add r4, r2, #0
+ add r6, r5, r0
+ mov r2, #0x1f
+_02237F12:
+ ldmia r3!, {r0, r1}
+ stmia r6!, {r0, r1}
+ sub r2, r2, #1
+ bne _02237F12
+ add r0, r5, #0
+ add r0, #0xc
+ bl MOD12_02234044
+ add r0, r5, #0
+ add r0, #0xc
+ bl MOD12_0223524C
+ add r0, r5, #0
+ bl MOD12_0223513C
+ add r0, r5, #0
+ bl MOD12_022335B0
+ mov r0, #0xc3
+ lsl r0, r0, #4
+ mov r2, #0
+ add r0, r5, r0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD12_02237F48
+MOD12_02237F48: ; 0x02237F48
+ push {r3, lr}
+ mov r1, #0xf4
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02237F5C
+MOD12_02237F5C: ; 0x02237F5C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #0x15
+ mov r1, #0x20
+ add r6, r2, #0
+ add r5, r3, #0
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x20
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [sp]
+ ldr r2, _02237FCC ; =0x00007530
+ str r0, [r4]
+ ldrh r0, [r6]
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r6, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r6, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r6, #6]
+ strh r0, [r4, #0xa]
+ str r7, [r4, #0xc]
+ ldrb r0, [r5]
+ strb r0, [r4, #0x11]
+ add r0, r5, #0
+ add r0, #0xd8
+ ldrh r0, [r0]
+ strh r0, [r4, #0x14]
+ add r0, r5, #0
+ add r0, #0xda
+ ldrh r0, [r0]
+ strh r0, [r4, #0x16]
+ add r0, r5, #0
+ add r0, #0xdc
+ ldrh r0, [r0]
+ strh r0, [r4, #0x18]
+ add r0, r5, #0
+ add r0, #0xe4
+ ldrb r0, [r0]
+ strb r0, [r4, #0x1a]
+ add r0, r5, #0
+ add r0, #0xe7
+ ldrb r0, [r0]
+ add r5, #0xe6
+ strb r0, [r4, #0x1c]
+ ldrb r0, [r5]
+ strb r0, [r4, #0x1b]
+ ldr r0, _02237FD0 ; =MOD12_02237FD4
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02237FCC: .word 0x00007530
+_02237FD0: .word MOD12_02237FD4
+
+ thumb_func_start MOD12_02237FD4
+MOD12_02237FD4: ; 0x02237FD4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #0
+ beq _02237FEA
+ cmp r0, #1
+ beq _0223800A
+ cmp r0, #2
+ beq _0223801C
+ b _02238040
+_02237FEA:
+ ldrb r1, [r4, #0x1a]
+ cmp r1, #0
+ beq _02238004
+ add r2, r4, #0
+ ldr r0, [r4]
+ add r2, #0x14
+ mov r3, #0
+ bl MOD12_02234FB0
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02238004:
+ mov r0, #0x64
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223800A:
+ ldr r0, [r4]
+ bl MOD12_02235020
+ cmp r0, #0
+ bne _02238058
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223801C:
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #1
+ bne _02238030
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02238030:
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x1b]
+ cmp r1, r0
+ blo _02238058
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02238040:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02238058:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223805C
+MOD12_0223805C: ; 0x0223805C
+ strb r1, [r0, #0x12]
+ ldr r1, _02238088 ; =0x00007530
+ strb r2, [r0, #0x13]
+ cmp r3, r1
+ beq _02238068
+ strb r3, [r0, #0xc]
+_02238068:
+ ldr r2, [sp]
+ ldr r1, _02238088 ; =0x00007530
+ cmp r2, r1
+ beq _02238072
+ strb r2, [r0, #0xd]
+_02238072:
+ ldr r2, [sp, #4]
+ ldr r1, _02238088 ; =0x00007530
+ cmp r2, r1
+ beq _0223807C
+ strh r2, [r0, #0xe]
+_0223807C:
+ ldr r2, [sp, #8]
+ ldr r1, _02238088 ; =0x00007530
+ cmp r2, r1
+ beq _02238086
+ strb r2, [r0, #0x10]
+_02238086:
+ bx lr
+ .align 2, 0
+_02238088: .word 0x00007530
+
+ thumb_func_start MOD12_0223808C
+MOD12_0223808C: ; 0x0223808C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x26
+ add r5, r1, #0
+ lsl r0, r0, #4
+ add r4, r6, r0
+ add r3, r5, #0
+ mov r2, #0x19
+_0223809C:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0223809C
+ add r0, r5, #0
+ bl MOD12_02238688
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #0xb0
+ bl MI_CpuFill8
+ mov r4, #0
+ add r7, r6, #0
+_022380B8:
+ add r1, r5, #0
+ add r0, r6, #0
+ add r1, #0xc
+ add r2, r4, #0
+ bl MOD12_02235274
+ ldr r0, _022380F4 ; =0x0000023E
+ add r1, r6, r4
+ ldrb r0, [r1, r0]
+ mov r1, #0xa
+ strb r0, [r5, #3]
+ ldr r0, _022380F8 ; =0x00000236
+ ldrh r0, [r7, r0]
+ strh r0, [r5]
+ bl FUN_0206AB18
+ strb r0, [r5, #2]
+ mov r0, #0x23
+ lsl r0, r0, #4
+ add r0, r6, r0
+ add r1, r4, #0
+ bl MOD12_02235C18
+ strb r0, [r5, #9]
+ add r4, r4, #1
+ add r5, #0x2c
+ add r7, r7, #2
+ cmp r4, #4
+ blt _022380B8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022380F4: .word 0x0000023E
+_022380F8: .word 0x00000236
+
+ thumb_func_start MOD12_022380FC
+MOD12_022380FC: ; 0x022380FC
+ push {r4, r5, r6, r7}
+ add r3, r1, #0
+ ldr r5, _02238154 ; =0xFFFFFCFF
+ ldr r6, _02238158 ; =0xFFFFF3FF
+ add r4, r0, #0
+ mov r1, #0
+ add r2, r3, #0
+_0223810A:
+ ldr r7, [r2, #0x28]
+ add r1, r1, #1
+ add r0, r7, #0
+ lsl r7, r7, #0x1a
+ lsr r7, r7, #0x1e
+ lsl r7, r7, #0x1e
+ and r0, r5
+ lsr r7, r7, #0x16
+ orr r7, r0
+ add r0, r7, #0
+ lsl r7, r7, #0x18
+ lsr r7, r7, #0x1e
+ lsl r7, r7, #0x1e
+ and r0, r6
+ lsr r7, r7, #0x14
+ orr r0, r7
+ str r0, [r2, #0x28]
+ add r2, #0x2c
+ cmp r1, #4
+ blt _0223810A
+ ldr r1, _0223815C ; =0x00000252
+ mov r0, #0
+ add r5, r1, #0
+_02238138:
+ add r7, r4, r0
+ ldrsb r6, [r7, r1]
+ add r2, r3, r0
+ add r2, #0xc0
+ strb r6, [r2]
+ add r2, r3, r0
+ ldrsb r6, [r7, r5]
+ add r2, #0xc3
+ add r0, r0, #1
+ strb r6, [r2]
+ cmp r0, #3
+ blt _02238138
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_02238154: .word 0xFFFFFCFF
+_02238158: .word 0xFFFFF3FF
+_0223815C: .word 0x00000252
+
+ thumb_func_start MOD12_02238160
+MOD12_02238160: ; 0x02238160
+ push {r4, r5, r6, r7}
+ mov r5, #0
+ ldr r2, _02238188 ; =0x00000252
+ add r3, r5, #0
+_02238168:
+ add r7, r1, r5
+ mov r6, #0xc3
+ ldrsb r7, [r7, r6]
+ ldr r6, _02238188 ; =0x00000252
+ add r4, r0, r5
+ strb r7, [r4, r6]
+ ldrsb r6, [r4, r2]
+ cmp r6, #0x32
+ blt _0223817E
+ ldr r6, _02238188 ; =0x00000252
+ strb r3, [r4, r6]
+_0223817E:
+ add r5, r5, #1
+ cmp r5, #3
+ blt _02238168
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_02238188: .word 0x00000252
+
+ thumb_func_start MOD12_0223818C
+MOD12_0223818C: ; 0x0223818C
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r7, _022381D4 ; =0x00000242
+ mov ip, r1
+ add r5, r7, #0
+ mov lr, r0
+ mov r1, #0
+ mov r2, ip
+ add r3, r0, #0
+ mov r6, #0x18
+ add r5, #8
+_022381A0:
+ ldr r0, _022381D4 ; =0x00000242
+ mov r4, #0x18
+ ldrsh r0, [r3, r0]
+ ldrsh r4, [r2, r4]
+ add r1, r1, #1
+ add r0, r0, r4
+ strh r0, [r3, r7]
+ ldrsh r0, [r2, r6]
+ add r2, #0x2c
+ strh r0, [r3, r5]
+ add r3, r3, #2
+ cmp r1, #4
+ blt _022381A0
+ mov r1, #0x26
+ lsl r1, r1, #4
+ mov r0, lr
+ add r4, r0, r1
+ mov r3, #0x19
+_022381C4:
+ mov r2, ip
+ ldmia r2!, {r0, r1}
+ mov ip, r2
+ stmia r4!, {r0, r1}
+ sub r3, r3, #1
+ bne _022381C4
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022381D4: .word 0x00000242
+
+ thumb_func_start MOD12_022381D8
+MOD12_022381D8: ; 0x022381D8
+ push {r3, r4}
+ mov r2, #0x2c
+ mul r2, r1
+ add r2, r0, r2
+ mov r1, #0x18
+ ldrsh r1, [r2, r1]
+ mov r4, #0
+ strh r1, [r2, #0x1a]
+ strh r4, [r2, #0x1e]
+ strh r4, [r2, #0x20]
+ mov r1, #0xc3
+_022381EE:
+ add r3, r0, r4
+ ldrsb r2, [r3, r1]
+ add r3, #0xc0
+ add r4, r4, #1
+ strb r2, [r3]
+ cmp r4, #3
+ blt _022381EE
+ mov r2, #0
+ add r1, r2, #0
+_02238200:
+ strb r1, [r0, #0x14]
+ strb r1, [r0, #0x12]
+ add r2, r2, #1
+ add r0, #0x2c
+ cmp r2, #4
+ blt _02238200
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD12_02238210
+MOD12_02238210: ; 0x02238210
+ mov r3, #0
+ mov r1, #0x18
+_02238214:
+ ldrsh r2, [r0, r1]
+ add r3, r3, #1
+ strh r2, [r0, #0x1c]
+ add r0, #0x2c
+ cmp r3, #4
+ blt _02238214
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_02238224
+MOD12_02238224: ; 0x02238224
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r7, r2, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD12_022381D8
+ mov r0, #0x2c
+ add r4, r7, #0
+ mul r4, r0
+ add r6, r5, #2
+ ldrb r0, [r6, r4]
+ ldr r1, _02238274 ; =0x02245619
+ lsl r2, r0, #3
+ ldrb r1, [r1, r2]
+ cmp r1, #0
+ bne _0223826E
+ mov r1, #4
+ add r2, sp, #0x10
+ add r3, sp, #0xc
+ bl FUN_02083170
+ ldr r1, [sp, #0x10]
+ ldr r0, _02238278 ; =0x0000FFFF
+ cmp r1, r0
+ beq _0223826E
+ ldr r0, _0223827C ; =0x00007530
+ mov r2, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldrb r1, [r6, r4]
+ add r0, r5, r4
+ add r3, r7, #0
+ bl MOD12_0223805C
+_0223826E:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02238274: .word 0x02245619
+_02238278: .word 0x0000FFFF
+_0223827C: .word 0x00007530
+
+ thumb_func_start MOD12_02238280
+MOD12_02238280: ; 0x02238280
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r2, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD12_022381D8
+ add r4, r6, #0
+ mov r0, #0x2c
+ mul r4, r0
+ add r0, r5, r4
+ ldrb r0, [r0, #2]
+ add r6, r5, #4
+ bl FUN_02083114
+ strb r0, [r6, r4]
+ ldrb r1, [r6, r4]
+ add r0, r5, r4
+ strh r1, [r0, #0x18]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD12_022382A8
+MOD12_022382A8: ; 0x022382A8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r1, #0
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ add r0, r7, #0
+ add r1, r2, #0
+ str r3, [sp, #0xc]
+ bl MOD12_022381D8
+ ldr r0, [sp, #8]
+ mov r1, #0x2c
+ add r4, r0, #0
+ mul r4, r1
+ add r0, r7, r4
+ ldrb r0, [r0, #2]
+ lsl r6, r0, #3
+ ldr r0, _02238364 ; =0x02245618
+ ldrb r0, [r0, r6]
+ cmp r0, #3
+ bne _022382FE
+ ldr r0, [sp, #0xc]
+ ldr r5, _02238368 ; =0x02245614
+ str r0, [sp]
+ ldr r2, [sp, #8]
+ ldr r0, [sp, #4]
+ ldr r5, [r5, r6]
+ add r1, r7, #0
+ add r3, r2, #0
+ blx r5
+ add r2, r7, #0
+ mov r0, #1
+ add r3, r7, r4
+ strb r0, [r3, #0x14]
+ mov r0, #0x1e
+ add r2, #0x18
+ mov r5, #0x20
+ ldrsh r0, [r3, r0]
+ ldrsh r3, [r3, r5]
+ ldrsh r1, [r2, r4]
+ add r0, r0, r3
+ add r0, r1, r0
+ strh r0, [r2, r4]
+_022382FE:
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ blt _02238360
+_02238308:
+ ldr r1, [sp, #4]
+ ldr r0, [sp, #0x10]
+ add r1, r1, r0
+ ldr r0, _0223836C ; =0x00000231
+ ldrb r5, [r1, r0]
+ mov r0, #0x2c
+ mul r0, r5
+ add r4, r7, r0
+ ldrb r0, [r4, #2]
+ lsl r1, r0, #3
+ ldr r0, _02238368 ; =0x02245614
+ add r0, r0, r1
+ ldrb r0, [r0, #4]
+ cmp r0, #2
+ bne _02238354
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD12_022381D8
+ ldr r0, [sp, #0xc]
+ add r3, r5, #0
+ str r0, [sp]
+ ldrb r5, [r4, #2]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #8]
+ lsl r6, r5, #3
+ ldr r5, _02238368 ; =0x02245614
+ add r1, r7, #0
+ ldr r5, [r5, r6]
+ blx r5
+ mov r0, #1
+ strb r0, [r4, #0x14]
+ mov r0, #0x18
+ ldrsh r1, [r4, r0]
+ mov r0, #0x1e
+ ldrsh r0, [r4, r0]
+ add r0, r1, r0
+ strh r0, [r4, #0x18]
+_02238354:
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, r1
+ ble _02238308
+_02238360:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238364: .word 0x02245618
+_02238368: .word 0x02245614
+_0223836C: .word 0x00000231
+
+ thumb_func_start MOD12_02238370
+MOD12_02238370: ; 0x02238370
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r6, r2, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD12_022381D8
+ add r7, r5, #0
+ lsl r0, r6, #2
+ add r7, #0xb0
+ str r0, [sp, #0xc]
+ ldr r0, [r7, r0]
+ lsl r0, r0, #8
+ lsr r0, r0, #0x18
+ beq _022383C6
+ mov r0, #0x2c
+ add r4, r6, #0
+ mul r4, r0
+ add r1, r5, r4
+ mov r0, #0x18
+ ldrsh r0, [r1, r0]
+ add r1, r5, #0
+ add r1, #0x1e
+ ldrsh r2, [r1, r4]
+ add r2, r2, r0
+ strh r2, [r1, r4]
+ mov r1, #0xa
+ bl _s32_div_f
+ ldr r1, _022383E8 ; =0x00007530
+ mov r2, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ add r0, r5, r4
+ ldr r1, [r7, r1]
+ add r3, r6, #0
+ lsl r1, r1, #8
+ lsr r1, r1, #0x18
+ bl MOD12_0223805C
+_022383C6:
+ mov r0, #0x2c
+ add r2, r6, #0
+ add r1, r5, #0
+ mul r2, r0
+ add r1, #0x18
+ add r5, r5, r2
+ mov r3, #0x1e
+ ldrsh r4, [r5, r3]
+ mov r3, #0x20
+ ldrsh r3, [r5, r3]
+ ldrsh r0, [r1, r2]
+ add r3, r4, r3
+ add r0, r0, r3
+ strh r0, [r1, r2]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022383E8: .word 0x00007530
+
+ thumb_func_start MOD12_022383EC
+MOD12_022383EC: ; 0x022383EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r2, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ str r3, [sp, #8]
+ bl MOD12_022381D8
+ mov r0, #0x2c
+ add r4, r6, #0
+ mul r4, r0
+ add r0, r5, r4
+ ldrb r0, [r0, #2]
+ lsl r7, r0, #3
+ ldr r0, _02238444 ; =0x02245618
+ ldrb r0, [r0, r7]
+ cmp r0, #4
+ bne _0223843C
+ ldr r0, [sp, #8]
+ add r2, r6, #0
+ add r3, r6, #0
+ ldr r6, _02238448 ; =0x02245614
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r6, [r6, r7]
+ add r1, r5, #0
+ blx r6
+ add r3, r5, r4
+ mov r0, #1
+ strb r0, [r3, #0x14]
+ add r5, #0x18
+ mov r1, #0x1e
+ ldrsh r2, [r5, r4]
+ ldrsh r1, [r3, r1]
+ add sp, #0xc
+ add r1, r2, r1
+ strh r1, [r5, r4]
+ pop {r4, r5, r6, r7, pc}
+_0223843C:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02238444: .word 0x02245618
+_02238448: .word 0x02245614
+
+ thumb_func_start MOD12_0223844C
+MOD12_0223844C: ; 0x0223844C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r2, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ str r3, [sp, #8]
+ bl MOD12_022381D8
+ mov r0, #0x2c
+ add r4, r6, #0
+ mul r4, r0
+ add r0, r5, r4
+ ldrb r0, [r0, #2]
+ lsl r7, r0, #3
+ ldr r0, _022384A4 ; =0x02245618
+ ldrb r0, [r0, r7]
+ cmp r0, #5
+ bne _0223849C
+ ldr r0, [sp, #8]
+ add r2, r6, #0
+ add r3, r6, #0
+ ldr r6, _022384A8 ; =0x02245614
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r6, [r6, r7]
+ add r1, r5, #0
+ blx r6
+ add r3, r5, r4
+ mov r0, #1
+ strb r0, [r3, #0x14]
+ add r5, #0x18
+ mov r1, #0x1e
+ ldrsh r2, [r5, r4]
+ ldrsh r1, [r3, r1]
+ add sp, #0xc
+ add r1, r2, r1
+ strh r1, [r5, r4]
+ pop {r4, r5, r6, r7, pc}
+_0223849C:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022384A4: .word 0x02245618
+_022384A8: .word 0x02245614
+
+ thumb_func_start MOD12_022384AC
+MOD12_022384AC: ; 0x022384AC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r2, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ str r3, [sp, #8]
+ bl MOD12_022381D8
+ mov r0, #0x2c
+ add r4, r6, #0
+ mul r4, r0
+ add r0, r5, r4
+ ldrb r0, [r0, #2]
+ lsl r7, r0, #3
+ ldr r0, _02238504 ; =0x02245618
+ ldrb r0, [r0, r7]
+ cmp r0, #6
+ bne _022384FC
+ ldr r0, [sp, #8]
+ add r2, r6, #0
+ add r3, r6, #0
+ ldr r6, _02238508 ; =0x02245614
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r6, [r6, r7]
+ add r1, r5, #0
+ blx r6
+ add r3, r5, r4
+ mov r0, #1
+ strb r0, [r3, #0x14]
+ add r5, #0x18
+ mov r1, #0x1e
+ ldrsh r2, [r5, r4]
+ ldrsh r1, [r3, r1]
+ add sp, #0xc
+ add r1, r2, r1
+ strh r1, [r5, r4]
+ pop {r4, r5, r6, r7, pc}
+_022384FC:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02238504: .word 0x02245618
+_02238508: .word 0x02245614
+
+ thumb_func_start MOD12_0223850C
+MOD12_0223850C: ; 0x0223850C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ str r0, [sp]
+ add r0, r4, #0
+ add r1, r2, #0
+ str r2, [sp, #4]
+ add r7, r3, #0
+ bl MOD12_022381D8
+ mov r0, #0
+ strb r0, [r7, #0xc]
+ strb r0, [r7, #0xd]
+ ldr r1, [sp]
+ ldr r0, [sp, #4]
+ mov r6, #0x2c
+ add r1, r1, r0
+ ldr r0, _02238658 ; =0x0000023E
+ ldrb r5, [r1, r0]
+ ldr r0, [sp]
+ ldr r3, [r0]
+ ldr r0, [sp, #4]
+ add r2, r5, #0
+ add r1, r0, #0
+ mul r1, r6
+ add r0, r4, r1
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ add r0, #0xf3
+ str r1, [sp, #0x10]
+ add r6, #0xf2
+ ldrb r0, [r3, r0]
+ ldrh r1, [r4, r1]
+ ldrb r3, [r3, r6]
+ bl MOD12_02235C44
+ add r6, r0, #0
+ cmp r6, #0
+ ble _0223857A
+ ldr r0, [sp, #0xc]
+ ldr r0, [r0, #0x28]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bne _0223857A
+ add r0, r4, #0
+ add r0, #0xc3
+ ldrsb r1, [r0, r5]
+ add r1, r1, r6
+ strb r1, [r0, r5]
+ ldrsb r1, [r0, r5]
+ cmp r1, #0x32
+ blt _022385A6
+ mov r1, #0x32
+ strb r1, [r0, r5]
+ b _022385A6
+_0223857A:
+ cmp r6, #0
+ bge _022385A4
+ ldr r0, [sp, #0xc]
+ ldr r0, [r0, #0x28]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bne _022385A4
+ add r0, r4, #0
+ add r0, #0xc3
+ add r1, r0, r5
+ ldrsb r0, [r0, r5]
+ cmp r0, #0
+ ble _022385A4
+ add r0, r0, r6
+ mov r2, #0
+ strb r0, [r1]
+ ldrsb r0, [r1, r2]
+ cmp r0, #0
+ bgt _022385A6
+ strb r2, [r1]
+ b _022385A6
+_022385A4:
+ mov r6, #0
+_022385A6:
+ add r1, r4, #0
+ add r1, #0xc3
+ add r0, r1, r5
+ str r0, [sp, #8]
+ ldrsb r0, [r1, r5]
+ cmp r0, #0x32
+ blt _022385D2
+ ldr r0, [sp]
+ ldr r1, [r0]
+ ldr r0, _0223865C ; =0x0000011E
+ ldrb r0, [r1, r0]
+ cmp r5, r0
+ bne _022385CA
+ ldr r0, [sp, #0x10]
+ mov r1, #0x50
+ add r0, r4, r0
+ strb r1, [r0, #8]
+ b _022385D2
+_022385CA:
+ ldr r0, [sp, #0x10]
+ mov r1, #0x32
+ add r0, r4, r0
+ strb r1, [r0, #8]
+_022385D2:
+ add r0, r4, #0
+ ldr r1, [sp, #0x10]
+ add r0, #8
+ add r5, r0, r1
+ ldrsb r0, [r0, r1]
+ mov r1, #0xa
+ bl _s32_div_f
+ strb r0, [r7, #0xa]
+ cmp r6, #0
+ ble _0223862C
+ ldr r0, [sp, #0xc]
+ mov r1, #0xb
+ ldrh r0, [r0]
+ bl FUN_0206AB18
+ bl MOD12_02235AC4
+ strb r0, [r7, #0xc]
+ ldr r0, [sp, #8]
+ mov r1, #0
+ ldrsb r0, [r0, r1]
+ mov r1, #0xa
+ bl _s32_div_f
+ cmp r0, #5
+ bhi _0223863E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02238614: ; jump table
+ .short _0223863E - _02238614 - 2 ; case 0
+ .short _0223863E - _02238614 - 2 ; case 1
+ .short _0223863E - _02238614 - 2 ; case 2
+ .short _0223863E - _02238614 - 2 ; case 3
+ .short _02238620 - _02238614 - 2 ; case 4
+ .short _02238626 - _02238614 - 2 ; case 5
+_02238620:
+ mov r0, #0x19
+ strb r0, [r7, #0xd]
+ b _0223863E
+_02238626:
+ mov r0, #0x1a
+ strb r0, [r7, #0xd]
+ b _0223863E
+_0223862C:
+ bge _0223863E
+ ldr r0, [sp, #0xc]
+ mov r1, #0xb
+ ldrh r0, [r0]
+ bl FUN_0206AB18
+ bl MOD12_02235AF0
+ strb r0, [r7, #0xc]
+_0223863E:
+ ldr r0, [sp, #4]
+ mov r1, #0x2c
+ add r2, r0, #0
+ mov r0, #0
+ add r4, #0x18
+ mul r2, r1
+ ldrsh r1, [r4, r2]
+ ldrsb r0, [r5, r0]
+ add r0, r1, r0
+ strh r0, [r4, r2]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02238658: .word 0x0000023E
+_0223865C: .word 0x0000011E
+
+ thumb_func_start MOD12_02238660
+MOD12_02238660: ; 0x02238660
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r2, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD12_022381D8
+ mov r0, #0x2c
+ add r4, r6, #0
+ mul r4, r0
+ add r0, r5, r4
+ ldrb r0, [r0, #9]
+ bl MOD12_02235C38
+ add r5, #0x18
+ ldrsh r1, [r5, r4]
+ add r0, r1, r0
+ strh r0, [r5, r4]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02238688
+MOD12_02238688: ; 0x02238688
+ push {r3, r4, r5, r6}
+ add r3, r0, #0
+ ldr r4, _022386B8 ; =0xFFFF0000
+ ldr r5, _022386BC ; =0xFF00FFFF
+ mov r2, #0
+ add r3, #0xb0
+_02238694:
+ ldr r1, [r3]
+ add r2, r2, #1
+ and r1, r4
+ str r1, [r3]
+ ldr r6, [r0, #0x28]
+ and r1, r5
+ lsl r6, r6, #0xc
+ lsr r6, r6, #0x18
+ lsl r6, r6, #0x18
+ lsr r6, r6, #8
+ orr r1, r6
+ add r0, #0x2c
+ stmia r3!, {r1}
+ cmp r2, #4
+ blt _02238694
+ pop {r3, r4, r5, r6}
+ bx lr
+ nop
+_022386B8: .word 0xFFFF0000
+_022386BC: .word 0xFF00FFFF
+
+ thumb_func_start MOD12_022386C0
+MOD12_022386C0: ; 0x022386C0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r0, #4
+ str r3, [sp, #0xc]
+ mov ip, r0
+ add r7, r1, #0
+ mov r0, #0
+ add r2, sp, #0x10
+ mov r3, #0xff
+_022386D2:
+ ldr r4, [r1, #0x28]
+ lsl r5, r4, #0x1a
+ lsr r5, r5, #0x1e
+ bne _022386DE
+ strb r3, [r2]
+ b _022386F2
+_022386DE:
+ cmp r5, #1
+ bne _022386EA
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x1e
+ bne _022386EA
+ mov ip, r0
+_022386EA:
+ ldr r4, [r1, #0x28]
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x1e
+ strb r4, [r2]
+_022386F2:
+ add r0, r0, #1
+ add r1, #0x2c
+ add r2, r2, #1
+ cmp r0, #4
+ blt _022386D2
+ ldr r0, [sp, #0xc]
+ mov r1, #0xff
+ add r6, sp, #0x10
+ strb r1, [r6, r0]
+ mov r4, #0
+_02238706:
+ mov r1, #0
+ add r2, r6, #0
+ add r3, r7, #0
+_0223870C:
+ ldrb r0, [r2]
+ cmp r0, #0xff
+ beq _02238728
+ cmp r4, r0
+ bne _02238728
+ ldr r5, [r3, #0x28]
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x1e
+ cmp r0, r5
+ bne _02238728
+ ldrb r0, [r6, r1]
+ add r0, r0, #1
+ strb r0, [r6, r1]
+ b _02238732
+_02238728:
+ add r1, r1, #1
+ add r2, r2, #1
+ add r3, #0x2c
+ cmp r1, #4
+ blt _0223870C
+_02238732:
+ cmp r1, #4
+ beq _0223873C
+ add r4, r4, #1
+ cmp r4, #4
+ blt _02238706
+_0223873C:
+ mov r3, #0
+ add r1, sp, #0x10
+ add r2, r7, #0
+ mov r4, #0xc0
+_02238744:
+ ldrb r5, [r1]
+ cmp r5, #0xff
+ beq _02238756
+ ldr r0, [r2, #0x28]
+ lsl r5, r5, #0x1e
+ bic r0, r4
+ lsr r5, r5, #0x18
+ orr r0, r5
+ str r0, [r2, #0x28]
+_02238756:
+ add r3, r3, #1
+ add r1, r1, #1
+ add r2, #0x2c
+ cmp r3, #4
+ blt _02238744
+ ldr r0, [sp, #0xc]
+ mov r1, #0x2c
+ mul r1, r0
+ add r0, r7, r1
+ ldr r2, [r0, #0x28]
+ mov r1, #0x30
+ bic r2, r1
+ mov r1, #0x10
+ orr r2, r1
+ mov r1, #0xc0
+ bic r2, r1
+ mov r1, ip
+ str r2, [r0, #0x28]
+ cmp r1, #4
+ beq _02238794
+ mov r1, ip
+ str r1, [sp]
+ ldr r1, _022387AC ; =0x00007530
+ ldr r3, [sp, #0xc]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ ldrb r1, [r0, #2]
+ mov r2, #1
+ bl MOD12_0223805C
+ b _022387A6
+_02238794:
+ ldr r1, _022387AC ; =0x00007530
+ ldr r3, [sp, #0xc]
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ ldrb r1, [r0, #2]
+ mov r2, #0
+ bl MOD12_0223805C
+_022387A6:
+ mov r0, #1
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022387AC: .word 0x00007530
+
+ thumb_func_start MOD12_022387B0
+MOD12_022387B0: ; 0x022387B0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r0, #4
+ str r3, [sp, #0xc]
+ mov ip, r0
+ add r7, r1, #0
+ mov r0, #0
+ add r2, sp, #0x10
+ mov r3, #0xff
+_022387C2:
+ ldr r4, [r1, #0x28]
+ lsl r5, r4, #0x1a
+ lsr r5, r5, #0x1e
+ bne _022387CE
+ strb r3, [r2]
+ b _022387E4
+_022387CE:
+ cmp r5, #2
+ bne _022387DC
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x1e
+ cmp r4, #3
+ bne _022387DC
+ mov ip, r0
+_022387DC:
+ ldr r4, [r1, #0x28]
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x1e
+ strb r4, [r2]
+_022387E4:
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ add r1, #0x2c
+ add r2, r2, #1
+ cmp r0, #4
+ blt _022387C2
+ ldr r0, [sp, #0xc]
+ mov r1, #0xff
+ add r6, sp, #0x10
+ strb r1, [r6, r0]
+ mov r4, #3
+_022387FC:
+ mov r1, #0
+ add r2, r6, #0
+ add r3, r7, #0
+_02238802:
+ ldrb r0, [r2]
+ cmp r0, #0xff
+ beq _0223881E
+ cmp r4, r0
+ bne _0223881E
+ ldr r5, [r3, #0x28]
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x1e
+ cmp r0, r5
+ bne _0223881E
+ ldrb r0, [r6, r1]
+ sub r0, r0, #1
+ strb r0, [r6, r1]
+ b _0223882C
+_0223881E:
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ add r2, r2, #1
+ add r3, #0x2c
+ cmp r1, #4
+ blt _02238802
+_0223882C:
+ cmp r1, #4
+ beq _0223883E
+ sub r0, r4, #1
+ lsl r0, r0, #0x18
+ asr r4, r0, #0x18
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bgt _022387FC
+_0223883E:
+ mov r3, #0
+ add r1, sp, #0x10
+ add r2, r7, #0
+ mov r4, #0xc0
+_02238846:
+ ldrb r5, [r1]
+ cmp r5, #0xff
+ beq _02238858
+ ldr r0, [r2, #0x28]
+ lsl r5, r5, #0x1e
+ bic r0, r4
+ lsr r5, r5, #0x18
+ orr r0, r5
+ str r0, [r2, #0x28]
+_02238858:
+ add r0, r3, #1
+ lsl r0, r0, #0x18
+ asr r3, r0, #0x18
+ add r1, r1, #1
+ add r2, #0x2c
+ cmp r3, #4
+ blt _02238846
+ ldr r0, [sp, #0xc]
+ mov r1, #0x2c
+ mul r1, r0
+ add r0, r7, r1
+ ldr r2, [r0, #0x28]
+ mov r1, #0x30
+ bic r2, r1
+ mov r1, #0x20
+ orr r2, r1
+ mov r1, #0xc0
+ bic r2, r1
+ mov r1, #0xc0
+ orr r1, r2
+ str r1, [r0, #0x28]
+ mov r1, ip
+ cmp r1, #4
+ bne _0223889C
+ ldr r1, _022388B8 ; =0x00007530
+ ldr r3, [sp, #0xc]
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ ldrb r1, [r0, #2]
+ mov r2, #0
+ bl MOD12_0223805C
+ b _022388B0
+_0223889C:
+ mov r1, ip
+ str r1, [sp]
+ ldr r1, _022388B8 ; =0x00007530
+ ldr r3, [sp, #0xc]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ ldrb r1, [r0, #2]
+ mov r2, #1
+ bl MOD12_0223805C
+_022388B0:
+ mov r0, #1
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022388B8: .word 0x00007530
+
+ thumb_func_start MOD12_022388BC
+MOD12_022388BC: ; 0x022388BC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r4, #0
+ mov r0, #0x2c
+ add r7, r3, #0
+ mul r3, r0
+ add r2, #9
+ add r1, #0x1e
+ ldrb r6, [r2, r3]
+ mov r5, #0x14
+ ldrsh r0, [r1, r3]
+ mul r5, r6
+ add r0, r0, r5
+ strh r0, [r1, r3]
+ ldrb r0, [r2, r3]
+ cmp r0, #0
+ beq _022388EA
+ cmp r0, #1
+ beq _022388EE
+ cmp r0, #2
+ beq _022388F2
+ b _022388F6
+_022388EA:
+ mov r2, #0
+ b _022388F8
+_022388EE:
+ mov r2, #1
+ b _022388F8
+_022388F2:
+ mov r2, #2
+ b _022388F8
+_022388F6:
+ mov r2, #3
+_022388F8:
+ ldr r0, _02238910 ; =0x00007530
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r4, r3
+ ldrb r1, [r0, #2]
+ add r3, r7, #0
+ bl MOD12_0223805C
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238910: .word 0x00007530
+
+ thumb_func_start MOD12_02238914
+MOD12_02238914: ; 0x02238914
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r3, [sp, #0xc]
+ ldr r3, [r0]
+ ldr r0, [sp, #0xc]
+ mov r6, #0x2c
+ add r4, r0, #0
+ add r0, r6, #0
+ mul r4, r6
+ add r5, r1, #0
+ add r7, r5, r4
+ add r0, #0xf3
+ add r6, #0xf2
+ ldrb r0, [r3, r0]
+ ldrh r1, [r5, r4]
+ ldrb r2, [r7, #3]
+ ldrb r3, [r3, r6]
+ bl MOD12_02235C44
+ cmp r0, #0
+ ble _0223896C
+ ldr r0, [r7, #0x28]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bne _0223896C
+ add r1, r5, #0
+ add r1, #0x1e
+ ldrsh r0, [r1, r4]
+ ldr r2, _02238974 ; =0x00007530
+ ldr r3, [sp, #0xc]
+ add r0, #0x14
+ strh r0, [r1, r4]
+ str r2, [sp]
+ ldrh r1, [r5, r4]
+ add r0, r7, #0
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ ldrb r1, [r0, #2]
+ mov r2, #0
+ bl MOD12_0223805C
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223896C:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02238974: .word 0x00007530
+
+ thumb_func_start MOD12_02238978
+MOD12_02238978: ; 0x02238978
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD12_0223897C
+MOD12_0223897C: ; 0x0223897C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ mov r0, #0x2c
+ add r4, r3, #0
+ mul r4, r0
+ add r0, r1, r4
+ ldrb r2, [r0, #9]
+ cmp r2, #0
+ bne _022389A8
+ add r1, #0x1e
+ ldrsh r2, [r1, r4]
+ add r2, #0x1e
+ strh r2, [r1, r4]
+ ldr r1, _022389C0 ; =0x00007530
+ mov r2, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ ldrb r1, [r0, #2]
+ bl MOD12_0223805C
+ b _022389B8
+_022389A8:
+ ldr r1, _022389C0 ; =0x00007530
+ mov r2, #1
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ ldrb r1, [r0, #2]
+ bl MOD12_0223805C
+_022389B8:
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_022389C0: .word 0x00007530
+
+ thumb_func_start MOD12_022389C4
+MOD12_022389C4: ; 0x022389C4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ lsl r4, r3, #1
+ add r2, r1, #0
+ add r4, r0, r4
+ ldr r0, _02238A10 ; =0x00000256
+ mov r1, #0x2c
+ add r7, r3, #0
+ mul r7, r1
+ ldrh r1, [r2, r7]
+ ldrh r0, [r4, r0]
+ cmp r1, r0
+ beq _02238A0A
+ add r6, r2, #0
+ add r6, #0xb0
+ lsl r5, r3, #2
+ lsl r1, r1, #0x10
+ ldr r4, [r6, r5]
+ ldr r0, _02238A14 ; =0xFFFF0000
+ lsr r1, r1, #0x10
+ and r0, r4
+ orr r0, r1
+ str r0, [r6, r5]
+ ldr r0, _02238A18 ; =0x00007530
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r2, r7
+ ldrb r1, [r0, #2]
+ mov r2, #0
+ bl MOD12_0223805C
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02238A0A:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238A10: .word 0x00000256
+_02238A14: .word 0xFFFF0000
+_02238A18: .word 0x00007530
+
+ thumb_func_start MOD12_02238A1C
+MOD12_02238A1C: ; 0x02238A1C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r0, #0x2c
+ add r4, r3, #0
+ add r5, r1, #0
+ mul r4, r0
+ add r0, r5, r4
+ ldrb r0, [r0, #3]
+ add r2, r5, #0
+ add r2, #0x1e
+ add r1, r5, r0
+ mov r0, #0xc0
+ ldrsb r0, [r1, r0]
+ ldrsh r1, [r2, r4]
+ add r1, r1, r0
+ strh r1, [r2, r4]
+ mov r1, #0xa
+ bl _s32_div_f
+ ldr r3, _02238A5C ; =0x00007530
+ mov r2, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, r4
+ ldrb r1, [r0, #2]
+ bl MOD12_0223805C
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_02238A5C: .word 0x00007530
+
+ thumb_func_start MOD12_02238A60
+MOD12_02238A60: ; 0x02238A60
+ push {r3, r4, lr}
+ sub sp, #0xc
+ mov r0, #0x2c
+ add r4, r3, #0
+ mul r4, r0
+ add r0, r1, r4
+ ldrb r2, [r0, #9]
+ cmp r2, #3
+ bne _02238A8C
+ add r1, #0x1e
+ ldrsh r2, [r1, r4]
+ add r2, #0x96
+ strh r2, [r1, r4]
+ ldr r1, _02238AA4 ; =0x00007530
+ mov r2, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ ldrb r1, [r0, #2]
+ bl MOD12_0223805C
+ b _02238A9C
+_02238A8C:
+ ldr r1, _02238AA4 ; =0x00007530
+ mov r2, #1
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ ldrb r1, [r0, #2]
+ bl MOD12_0223805C
+_02238A9C:
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_02238AA4: .word 0x00007530
+
+ thumb_func_start MOD12_02238AA8
+MOD12_02238AA8: ; 0x02238AA8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ mov r0, #0x2c
+ add r7, r3, #0
+ add r4, r1, #0
+ mul r7, r0
+ add r1, r4, r7
+ ldr r0, [r1, #0x28]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02238AC6
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02238AC6:
+ mov r3, #0
+ mov r0, #0xc3
+_02238ACA:
+ add r2, r4, r3
+ ldrsb r2, [r2, r0]
+ cmp r2, #0
+ bne _02238AD8
+ add r3, r3, #1
+ cmp r3, #3
+ blt _02238ACA
+_02238AD8:
+ cmp r3, #3
+ bne _02238AE2
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02238AE2:
+ ldr r2, [r1, #0x28]
+ mov r0, #8
+ orr r0, r2
+ mov r3, #0xc3
+ str r0, [r1, #0x28]
+ mov r2, #0
+ add r5, r3, #0
+_02238AF0:
+ add r0, r4, r2
+ ldrsb r6, [r0, r5]
+ cmp r6, #0
+ ble _02238B00
+ ldrsb r6, [r0, r3]
+ add r0, #0xc3
+ sub r6, #0xa
+ strb r6, [r0]
+_02238B00:
+ add r2, r2, #1
+ cmp r2, #3
+ blt _02238AF0
+ ldr r3, _02238B20 ; =0x00007530
+ add r0, r1, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ add r1, r4, r7
+ ldrb r1, [r1, #2]
+ mov r2, #0
+ bl MOD12_0223805C
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238B20: .word 0x00007530
+
+ thumb_func_start MOD12_02238B24
+MOD12_02238B24: ; 0x02238B24
+ mov r0, #0x2c
+ mul r0, r3
+ add r2, r1, r0
+ ldr r1, [r2, #0x28]
+ ldr r0, _02238B40 ; =0xFFF00FFF
+ and r1, r0
+ ldrb r0, [r2, #2]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0xc
+ orr r0, r1
+ str r0, [r2, #0x28]
+ mov r0, #1
+ bx lr
+ nop
+_02238B40: .word 0xFFF00FFF
+
+ thumb_func_start MOD12_02238B44
+MOD12_02238B44: ; 0x02238B44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r2, r1, #0
+ ldr r1, [sp, #0x20]
+ add r4, r0, #0
+ mov ip, r3
+ cmp r1, #4
+ bge _02238B70
+ ldr r7, _02238B90 ; =0x00000231
+ mov r6, #0x2c
+ mov r3, #2
+_02238B5A:
+ add r0, r4, r1
+ ldrb r0, [r0, r7]
+ add r1, r1, #1
+ add r5, r0, #0
+ mul r5, r6
+ add r0, r2, r5
+ ldr r5, [r0, #0x28]
+ orr r5, r3
+ str r5, [r0, #0x28]
+ cmp r1, #4
+ blt _02238B5A
+_02238B70:
+ ldr r3, _02238B94 ; =0x00007530
+ mov r1, #0x2c
+ mov r0, ip
+ str r3, [sp]
+ mul r1, r0
+ str r3, [sp, #4]
+ add r0, r2, r1
+ str r3, [sp, #8]
+ ldrb r1, [r0, #2]
+ mov r2, #0
+ bl MOD12_0223805C
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02238B90: .word 0x00000231
+_02238B94: .word 0x00007530
+
+ thumb_func_start MOD12_02238B98
+MOD12_02238B98: ; 0x02238B98
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [sp, #0x20]
+ cmp r1, #0
+ bne _02238BAA
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_02238BAA:
+ sub r1, r1, #1
+ add r1, r0, r1
+ ldr r0, _02238BF0 ; =0x00000231
+ ldrb r4, [r1, r0]
+ mov r0, #0x2c
+ add r1, r4, #0
+ mul r1, r0
+ add r2, r5, r1
+ mov r1, #8
+ ldrsb r2, [r2, r1]
+ cmp r2, #0
+ bne _02238BC8
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_02238BC8:
+ add r1, r3, #0
+ mul r1, r0
+ add r0, r5, #0
+ add r0, #0x1e
+ ldrsh r6, [r0, r1]
+ add r2, r6, r2
+ strh r2, [r0, r1]
+ ldr r0, _02238BF4 ; =0x00007530
+ str r4, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, r1
+ ldrb r1, [r0, #2]
+ mov r2, #0
+ bl MOD12_0223805C
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02238BF0: .word 0x00000231
+_02238BF4: .word 0x00007530
+
+ thumb_func_start MOD12_02238BF8
+MOD12_02238BF8: ; 0x02238BF8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ str r1, [sp, #0xc]
+ str r3, [sp, #0x10]
+ mov r3, #0
+ add r0, sp, #0x18
+ add r1, sp, #0x14
+_02238C08:
+ lsl r2, r3, #0x18
+ lsr r2, r2, #0x18
+ strb r2, [r0]
+ strb r2, [r1]
+ add r2, r3, #1
+ lsl r2, r2, #0x18
+ asr r3, r2, #0x18
+ add r0, r0, #1
+ add r1, r1, #1
+ cmp r3, #4
+ blt _02238C08
+ mov r4, #0
+ add r7, sp, #0x18
+ add r6, sp, #0x14
+_02238C24:
+ ldr r0, [r5]
+ bl FUN_02082878
+ mov r1, #4
+ sub r1, r1, r4
+ bl _s32_div_f
+ lsl r0, r1, #0x18
+ lsr r2, r0, #0x18
+ mov r1, #0
+ add r3, r6, #0
+_02238C3A:
+ ldrb r0, [r3]
+ cmp r0, #0xff
+ beq _02238C52
+ cmp r2, #0
+ bne _02238C4C
+ mov r0, #0xff
+ strb r4, [r7, r1]
+ strb r0, [r6, r1]
+ b _02238C5E
+_02238C4C:
+ sub r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+_02238C52:
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ add r3, r3, #1
+ cmp r1, #4
+ blt _02238C3A
+_02238C5E:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ asr r4, r0, #0x18
+ cmp r4, #4
+ blt _02238C24
+ ldr r1, [sp, #0xc]
+ mov r3, #0
+ add r2, sp, #0x18
+ mov r4, #0x30
+ mov r7, #0x30
+ mov r5, #0xc0
+_02238C74:
+ ldr r0, [r1, #0x28]
+ bic r0, r4
+ orr r0, r7
+ str r0, [r1, #0x28]
+ ldrb r6, [r2]
+ bic r0, r5
+ add r2, r2, #1
+ lsl r6, r6, #0x1e
+ lsr r6, r6, #0x18
+ orr r0, r6
+ str r0, [r1, #0x28]
+ add r0, r3, #1
+ lsl r0, r0, #0x18
+ asr r3, r0, #0x18
+ add r1, #0x2c
+ cmp r3, #4
+ blt _02238C74
+ ldr r3, _02238CB8 ; =0x00007530
+ ldr r0, [sp, #0x10]
+ mov r1, #0x2c
+ mul r1, r0
+ str r3, [sp]
+ ldr r0, [sp, #0xc]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r0, r1
+ ldrb r1, [r0, #2]
+ mov r2, #0
+ bl MOD12_0223805C
+ mov r0, #1
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02238CB8: .word 0x00007530
+
+ thumb_func_start MOD12_02238CBC
+MOD12_02238CBC: ; 0x02238CBC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ ldr r0, [sp, #0x18]
+ add r5, r1, #0
+ cmp r0, #3
+ bne _02238CFE
+ add r4, r3, #0
+ mov r0, #0x2c
+ add r3, r5, #0
+ add r2, r5, #0
+ mul r4, r0
+ add r3, #0x18
+ add r2, #0x1e
+ ldrsh r1, [r2, r4]
+ ldrsh r0, [r3, r4]
+ add r0, r1, r0
+ strh r0, [r2, r4]
+ ldrsh r0, [r3, r4]
+ mov r1, #0xa
+ bl _s32_div_f
+ ldr r3, _02238D04 ; =0x00007530
+ mov r2, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, r4
+ ldrb r1, [r0, #2]
+ bl MOD12_0223805C
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_02238CFE:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02238D04: .word 0x00007530
+
+ thumb_func_start MOD12_02238D08
+MOD12_02238D08: ; 0x02238D08
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r0, #0x2c
+ add r4, r3, #0
+ add r5, r1, #0
+ mul r4, r0
+ add r0, r5, r4
+ ldrb r0, [r0, #3]
+ add r1, r5, r0
+ mov r0, #0xc0
+ ldrsb r0, [r1, r0]
+ mov r1, #0xa
+ bl _s32_div_f
+ ldr r1, _02238D50 ; =0x0224560C
+ add r2, r5, #0
+ add r2, #0x1e
+ ldrb r0, [r1, r0]
+ ldrsh r1, [r2, r4]
+ add r1, r1, r0
+ strh r1, [r2, r4]
+ mov r1, #0xa
+ bl _s32_div_f
+ ldr r3, _02238D54 ; =0x00007530
+ mov r2, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, r4
+ ldrb r1, [r0, #2]
+ bl MOD12_0223805C
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02238D50: .word 0x0224560C
+_02238D54: .word 0x00007530
+
+ thumb_func_start MOD12_02238D58
+MOD12_02238D58: ; 0x02238D58
+ push {r3, r4, lr}
+ sub sp, #0xc
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ bne _02238D8A
+ add r4, r3, #0
+ mov r0, #0x2c
+ add r2, r1, #0
+ mul r4, r0
+ add r2, #0x1e
+ ldrsh r0, [r2, r4]
+ ldr r3, _02238D90 ; =0x00007530
+ add r0, #0x14
+ strh r0, [r2, r4]
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r1, r4
+ ldrb r1, [r0, #2]
+ mov r2, #0
+ bl MOD12_0223805C
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, pc}
+_02238D8A:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_02238D90: .word 0x00007530
+
+ thumb_func_start MOD12_02238D94
+MOD12_02238D94: ; 0x02238D94
+ push {r3, r4, lr}
+ sub sp, #0xc
+ ldr r0, [sp, #0x18]
+ cmp r0, #3
+ bne _02238DC6
+ add r4, r3, #0
+ mov r0, #0x2c
+ add r2, r1, #0
+ mul r4, r0
+ add r2, #0x1e
+ ldrsh r0, [r2, r4]
+ ldr r3, _02238DCC ; =0x00007530
+ add r0, #0x14
+ strh r0, [r2, r4]
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r1, r4
+ ldrb r1, [r0, #2]
+ mov r2, #0
+ bl MOD12_0223805C
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, pc}
+_02238DC6:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_02238DCC: .word 0x00007530
+
+ thumb_func_start MOD12_02238DD0
+MOD12_02238DD0: ; 0x02238DD0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r2, r1, #0
+ ldr r1, [sp, #0x20]
+ add r4, r0, #0
+ mov ip, r3
+ cmp r1, #4
+ bge _02238DFC
+ ldr r7, _02238E1C ; =0x00000231
+ mov r6, #0x2c
+ mov r3, #4
+_02238DE6:
+ add r0, r4, r1
+ ldrb r0, [r0, r7]
+ add r1, r1, #1
+ add r5, r0, #0
+ mul r5, r6
+ add r0, r2, r5
+ ldr r5, [r0, #0x28]
+ orr r5, r3
+ str r5, [r0, #0x28]
+ cmp r1, #4
+ blt _02238DE6
+_02238DFC:
+ ldr r3, _02238E20 ; =0x00007530
+ mov r1, #0x2c
+ mov r0, ip
+ str r3, [sp]
+ mul r1, r0
+ str r3, [sp, #4]
+ add r0, r2, r1
+ str r3, [sp, #8]
+ ldrb r1, [r0, #2]
+ mov r2, #0
+ bl MOD12_0223805C
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02238E1C: .word 0x00000231
+_02238E20: .word 0x00007530
+
+ thumb_func_start MOD12_02238E24
+MOD12_02238E24: ; 0x02238E24
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r6, r0, #0
+ ldr r0, [sp, #0x38]
+ add r5, r1, #0
+ str r3, [sp, #0xc]
+ cmp r0, #0
+ bne _02238E3A
+ add sp, #0x24
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02238E3A:
+ sub r0, r0, #1
+ add r1, r6, r0
+ ldr r0, _02238EDC ; =0x00000231
+ mov r3, #0x2c
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0xc]
+ add r4, r0, #0
+ mul r4, r3
+ add r0, r5, r4
+ str r0, [sp, #0x18]
+ ldr r0, [r0, #0x28]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bne _02238E6C
+ ldr r0, [sp, #0x1c]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r0, [sp, #0x14]
+ ldr r0, [r0, #0x28]
+ str r1, [sp, #0x10]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ beq _02238E72
+_02238E6C:
+ add sp, #0x24
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02238E72:
+ add r0, r3, #0
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x18]
+ ldr r7, [r6]
+ add r0, #0xf3
+ add r3, #0xf2
+ ldrb r0, [r7, r0]
+ ldrh r1, [r1]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r7, r3]
+ bl MOD12_02235C44
+ ldr r2, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ add r2, r5, r2
+ ldr r6, [r6]
+ ldr r3, _02238EE0 ; =0x0000011F
+ str r0, [sp, #0x20]
+ ldrb r0, [r6, r3]
+ sub r3, r3, #1
+ ldrh r1, [r1]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r6, r3]
+ bl MOD12_02235C44
+ cmp r0, #0
+ ble _02238ED6
+ ldr r0, [sp, #0x20]
+ cmp r0, #0
+ ble _02238ED6
+ add r1, r5, #0
+ add r1, #0x1e
+ ldrsh r0, [r1, r4]
+ ldr r3, [sp, #0xc]
+ mov r2, #0
+ add r0, #0x1e
+ strh r0, [r1, r4]
+ ldr r0, [sp, #0x1c]
+ add r1, r5, r4
+ str r0, [sp]
+ ldr r0, _02238EE4 ; =0x00007530
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldrb r1, [r1, #2]
+ ldr r0, [sp, #0x18]
+ bl MOD12_0223805C
+ add sp, #0x24
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02238ED6:
+ mov r0, #0
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238EDC: .word 0x00000231
+_02238EE0: .word 0x0000011F
+_02238EE4: .word 0x00007530
+
+ thumb_func_start MOD12_02238EE8
+MOD12_02238EE8: ; 0x02238EE8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r0, r1, #0
+ mov r1, #0x2c
+ mul r1, r3
+ add r4, r0, r1
+ mov r1, #0x1e
+ ldrsh r2, [r4, r1]
+ ldr r1, [sp, #0x18]
+ ldr r5, _02238F44 ; =0x02245608
+ ldrb r5, [r5, r1]
+ add r2, r2, r5
+ strh r2, [r4, #0x1e]
+ cmp r1, #3
+ bhi _02238F26
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02238F12: ; jump table
+ .short _02238F1A - _02238F12 - 2 ; case 0
+ .short _02238F1E - _02238F12 - 2 ; case 1
+ .short _02238F22 - _02238F12 - 2 ; case 2
+ .short _02238F26 - _02238F12 - 2 ; case 3
+_02238F1A:
+ mov r2, #0
+ b _02238F28
+_02238F1E:
+ mov r2, #1
+ b _02238F28
+_02238F22:
+ mov r2, #2
+ b _02238F28
+_02238F26:
+ mov r2, #3
+_02238F28:
+ ldr r1, _02238F48 ; =0x00007530
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0x2c
+ mul r1, r3
+ add r0, r0, r1
+ ldrb r1, [r0, #2]
+ bl MOD12_0223805C
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_02238F44: .word 0x02245608
+_02238F48: .word 0x00007530
+
+ thumb_func_start MOD12_02238F4C
+MOD12_02238F4C: ; 0x02238F4C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ ldr r2, [sp, #0x18]
+ cmp r2, #0
+ bne _02238F5C
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_02238F5C:
+ sub r2, r2, #1
+ add r2, r0, r2
+ ldr r0, _02238FA4 ; =0x00000231
+ ldrb r2, [r2, r0]
+ mov r0, #0x2c
+ mul r0, r2
+ add r2, r1, r0
+ mov r0, #8
+ ldrsb r0, [r2, r0]
+ cmp r0, #0x32
+ bge _02238F76
+ cmp r0, #0x50
+ blt _02238F9E
+_02238F76:
+ add r2, r1, #0
+ mov r0, #0x2c
+ add r4, r3, #0
+ mul r4, r0
+ add r2, #0x1e
+ ldrsh r0, [r2, r4]
+ add r0, #0x1e
+ strh r0, [r2, r4]
+ ldr r0, _02238FA8 ; =0x00007530
+ mov r2, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r1, r4
+ ldrb r1, [r0, #2]
+ bl MOD12_0223805C
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, pc}
+_02238F9E:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_02238FA4: .word 0x00000231
+_02238FA8: .word 0x00007530
+
+ thumb_func_start MOD12_02238FAC
+MOD12_02238FAC: ; 0x02238FAC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ mov ip, r1
+ mov r0, #0x2c
+ add r6, r3, #0
+ mul r6, r0
+ mov r0, ip
+ mov r2, #0
+ add r4, r1, #0
+ add r5, r0, r6
+ mov r7, #0x1c
+_02238FC2:
+ cmp r2, r3
+ beq _02238FD0
+ mov r0, #0x1a
+ ldrsh r1, [r4, r0]
+ ldrsh r0, [r5, r7]
+ cmp r1, r0
+ blt _02238FD8
+_02238FD0:
+ add r2, r2, #1
+ add r4, #0x2c
+ cmp r2, #4
+ blt _02238FC2
+_02238FD8:
+ cmp r2, #4
+ beq _02238FE2
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02238FE2:
+ mov r1, ip
+ add r1, #0x1e
+ ldrsh r0, [r1, r6]
+ mov r2, #0
+ add r0, #0x1e
+ strh r0, [r1, r6]
+ ldr r0, _02239008 ; =0x00007530
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, ip
+ add r0, r0, r6
+ ldrb r1, [r0, #2]
+ bl MOD12_0223805C
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02239008: .word 0x00007530
+
+ thumb_func_start MOD12_0223900C
+MOD12_0223900C: ; 0x0223900C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ str r1, [sp, #4]
+ mov r0, #0x15
+ mov r1, #0x32
+ bl FUN_02016998
+ add r7, r0, #0
+ ldr r1, [r6]
+ ldr r0, _02239060 ; =0x00000127
+ ldrb r4, [r1, r0]
+ cmp r4, #4
+ bge _02239056
+ ldr r0, [sp, #4]
+ lsl r1, r4, #1
+ add r5, r0, r1
+ add r0, #8
+ str r0, [sp, #4]
+_02239032:
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD12_02239064
+ ldr r0, [sp, #4]
+ add r1, r7, #0
+ add r0, r0, r4
+ str r0, [sp]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r5, #0
+ bl MOD12_022390DC
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _02239032
+_02239056:
+ add r0, r7, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02239060: .word 0x00000127
+
+ thumb_func_start MOD12_02239064
+MOD12_02239064: ; 0x02239064
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ add r7, r2, #0
+ str r1, [sp]
+ add r0, r1, #0
+ mov r1, #0
+ mov r2, #0x32
+ bl MI_CpuFill8
+ lsl r0, r7, #2
+ ldr r5, [sp]
+ mov r4, #0
+ str r0, [sp, #4]
+_02239080:
+ ldr r1, [r6]
+ ldr r0, [sp, #4]
+ mov r2, #0
+ ldr r0, [r0, r1]
+ add r1, r4, #0
+ add r1, #0x36
+ bl FUN_020671BC
+ strh r0, [r5]
+ mov r0, #0x23
+ lsl r0, r0, #4
+ ldrh r2, [r5]
+ add r0, r6, r0
+ add r1, r7, #0
+ bl MOD12_02235BEC
+ cmp r0, #1
+ bne _022390BA
+ ldrh r0, [r5]
+ mov r1, #0xa
+ bl FUN_0206AB18
+ strb r0, [r5, #0xa]
+ ldrh r0, [r5]
+ mov r1, #0xb
+ bl FUN_0206AB18
+ strb r0, [r5, #0xb]
+ b _022390BE
+_022390BA:
+ mov r0, #0
+ strh r0, [r5]
+_022390BE:
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #4
+ blt _02239080
+ ldr r0, [r6]
+ add r1, r0, r7
+ mov r0, #0x43
+ lsl r0, r0, #2
+ ldrb r1, [r1, r0]
+ ldr r0, [sp]
+ add r0, #0x30
+ str r0, [sp]
+ strb r1, [r0]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD12_022390DC
+MOD12_022390DC: ; 0x022390DC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x58]
+ str r1, [sp, #8]
+ str r0, [sp, #0x58]
+ mov r1, #0x23
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ add r0, r0, r1
+ str r0, [sp, #0x1c]
+ mov r0, #0
+ str r2, [sp, #0xc]
+ str r3, [sp, #0x10]
+ str r0, [sp, #0x20]
+_022390FA:
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x20]
+ add r0, r1, r0
+ ldrb r1, [r0, #1]
+ ldr r0, [sp, #0xc]
+ cmp r0, r1
+ beq _02239112
+ ldr r0, [sp, #0x20]
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ cmp r0, #4
+ blt _022390FA
+_02239112:
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, _022393A4 ; =0x0224574C
+ str r0, [sp, #0x18]
+_0223911A:
+ ldr r0, [sp, #0x20]
+ add r1, r0, #1
+ ldr r0, [sp, #0x18]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0223920C
+ mov r1, #0
+ add r2, sp, #0x3c
+ add r2, #2
+ add r0, r1, #0
+_0223912E:
+ add r1, r1, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ cmp r1, #3
+ blt _0223912E
+ ldr r0, [sp, #4]
+ add r3, sp, #0x3c
+ ldr r1, [r0]
+ ldr r0, _022393A8 ; =0x0000011F
+ ldr r4, [sp, #0x18]
+ ldrb r0, [r1, r0]
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #8]
+ str r0, [sp]
+ ldrb r4, [r4, #1]
+ ldr r0, [sp, #0x1c]
+ add r3, #2
+ lsl r5, r4, #2
+ ldr r4, _022393AC ; =0x022456D8
+ ldr r4, [r4, r5]
+ blx r4
+ cmp r0, #1
+ bne _0223920C
+ ldr r0, [sp, #0x18]
+ mov r1, #3
+ ldrsb r0, [r0, r1]
+ cmp r0, #0
+ beq _02239170
+ cmp r0, #2
+ beq _02239184
+ cmp r0, #3
+ beq _02239184
+ b _0223919A
+_02239170:
+ mov r2, #0
+ add r1, sp, #0x3c
+ add r1, #2
+ add r0, r2, #0
+_02239178:
+ add r2, r2, #1
+ strb r0, [r1]
+ add r1, r1, #1
+ cmp r2, #3
+ blt _02239178
+ b _0223919A
+_02239184:
+ add r2, sp, #0x3c
+ mov r3, #0
+ add r2, #2
+ mov r0, #1
+_0223918C:
+ ldrb r1, [r2]
+ add r3, r3, #1
+ eor r1, r0
+ strb r1, [r2]
+ add r2, r2, #1
+ cmp r3, #3
+ blt _0223918C
+_0223919A:
+ ldr r0, [sp, #4]
+ ldr r1, [r0]
+ ldr r0, [sp, #0xc]
+ add r1, r0, r1
+ mov r0, #0x43
+ lsl r0, r0, #2
+ ldrb r2, [r1, r0]
+ ldr r0, [sp, #0x18]
+ lsl r1, r2, #1
+ add r0, r0, r1
+ mov r1, #4
+ ldrsh r4, [r0, r1]
+ cmp r2, #0
+ beq _022391BC
+ ldr r0, [sp, #0x18]
+ ldrsh r0, [r0, r1]
+ add r4, r4, r0
+_022391BC:
+ ldr r0, [sp, #0x18]
+ ldrb r0, [r0, #2]
+ cmp r0, #0xf0
+ beq _022391CA
+ cmp r0, #0xf1
+ beq _0223920E
+ b _0223924E
+_022391CA:
+ ldr r0, [sp, #8]
+ mov r7, #0
+ mov r5, #4
+_022391D0:
+ ldr r1, [sp, #4]
+ ldr r2, [r1]
+ ldr r1, _022393A8 ; =0x0000011F
+ ldrb r2, [r2, r1]
+ ldrb r1, [r0, #0xb]
+ cmp r2, r1
+ bne _02239204
+ mov r1, #2
+ ldrsh r1, [r0, r1]
+ mov r3, #0
+ add r2, r0, #0
+ add r1, r1, r4
+ strh r1, [r0, #2]
+ add r1, sp, #0x3c
+ add r1, #2
+_022391EE:
+ ldrb r6, [r1]
+ cmp r6, #1
+ bne _022391FA
+ ldrsh r6, [r2, r5]
+ add r6, r6, r4
+ strh r6, [r2, #4]
+_022391FA:
+ add r3, r3, #1
+ add r1, r1, #1
+ add r2, r2, #2
+ cmp r3, #3
+ blt _022391EE
+_02239204:
+ add r7, r7, #1
+ add r0, #0xc
+ cmp r7, #4
+ blt _022391D0
+_0223920C:
+ b _0223928C
+_0223920E:
+ ldr r5, [sp, #8]
+ mov r7, #0
+ mov r6, #4
+_02239214:
+ ldrb r0, [r5, #0xa]
+ bl FUN_02083114
+ cmp r0, #0x14
+ blt _02239244
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ mov r2, #0
+ add r1, r5, #0
+ add r0, r0, r4
+ strh r0, [r5, #2]
+ add r0, sp, #0x3c
+ add r0, #2
+_0223922E:
+ ldrb r3, [r0]
+ cmp r3, #1
+ bne _0223923A
+ ldrsh r3, [r1, r6]
+ add r3, r3, r4
+ strh r3, [r1, #4]
+_0223923A:
+ add r2, r2, #1
+ add r0, r0, #1
+ add r1, r1, #2
+ cmp r2, #3
+ blt _0223922E
+_02239244:
+ add r7, r7, #1
+ add r5, #0xc
+ cmp r7, #4
+ blt _02239214
+ b _0223928C
+_0223924E:
+ ldr r0, [sp, #8]
+ mov r7, #0
+ mov r5, #4
+_02239254:
+ ldr r1, [sp, #0x18]
+ ldrb r2, [r1, #2]
+ ldrb r1, [r0, #0xa]
+ cmp r2, r1
+ bne _02239284
+ mov r1, #2
+ ldrsh r1, [r0, r1]
+ mov r3, #0
+ add r2, r0, #0
+ add r1, r1, r4
+ strh r1, [r0, #2]
+ add r1, sp, #0x3c
+ add r1, #2
+_0223926E:
+ ldrb r6, [r1]
+ cmp r6, #1
+ bne _0223927A
+ ldrsh r6, [r2, r5]
+ add r6, r6, r4
+ strh r6, [r2, #4]
+_0223927A:
+ add r3, r3, #1
+ add r1, r1, #1
+ add r2, r2, #2
+ cmp r3, #3
+ blt _0223926E
+_02239284:
+ add r7, r7, #1
+ add r0, #0xc
+ cmp r7, #4
+ blt _02239254
+_0223928C:
+ ldr r0, [sp, #0x18]
+ add r0, #0xc
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, #0xa5
+ bge _0223929E
+ b _0223911A
+_0223929E:
+ add r4, sp, #0x34
+ mov r5, #0
+ add r4, #2
+_022392A4:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl FUN_02082878
+ strh r0, [r4]
+ add r5, r5, #1
+ add r4, r4, #2
+ cmp r5, #4
+ blt _022392A4
+ mov r5, #0
+ add r4, sp, #0x30
+_022392BA:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl FUN_02082878
+ strh r0, [r4]
+ add r5, r5, #1
+ add r4, r4, #2
+ cmp r5, #3
+ blt _022392BA
+ ldr r0, [sp, #8]
+ mov r7, #0
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _022392E2
+ ldr r1, [sp, #8]
+_022392D8:
+ add r1, #0xc
+ ldrh r0, [r1]
+ add r7, r7, #1
+ cmp r0, #0
+ beq _022392D8
+_022392E2:
+ mov r2, #0xc
+ add r1, r7, #0
+ ldr r0, [sp, #8]
+ mul r1, r2
+ add r1, r0, r1
+ mov r0, #2
+ add r4, r7, #1
+ ldrsh r1, [r1, r0]
+ cmp r4, #4
+ bge _02239336
+ ldr r0, [sp, #8]
+ mul r2, r4
+ add r2, r0, r2
+ add r0, sp, #0x34
+ lsl r3, r4, #1
+ add r0, #2
+ add r3, r0, r3
+_02239304:
+ ldrh r0, [r2]
+ cmp r0, #0
+ beq _0223932C
+ mov r0, #2
+ ldrsh r0, [r2, r0]
+ cmp r0, r1
+ bgt _02239328
+ cmp r0, r1
+ bne _0223932C
+ ldrh r5, [r3]
+ lsl r6, r7, #1
+ str r5, [sp, #0x28]
+ add r5, sp, #0x34
+ add r5, #2
+ ldrh r6, [r5, r6]
+ ldr r5, [sp, #0x28]
+ cmp r5, r6
+ bls _0223932C
+_02239328:
+ add r7, r4, #0
+ add r1, r0, #0
+_0223932C:
+ add r4, r4, #1
+ add r2, #0xc
+ add r3, r3, #2
+ cmp r4, #4
+ blt _02239304
+_02239336:
+ ldr r0, [sp, #4]
+ ldr r5, [r0]
+ ldr r0, _022393B0 ; =0x00000171
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ bne _022393CA
+ mov r0, #0xc
+ add r6, r7, #0
+ mul r6, r0
+ ldr r0, [sp, #8]
+ mov r2, #0
+ add r4, r0, r6
+ add r3, r2, #0
+ mov r0, #4
+_02239352:
+ ldrsh r1, [r4, r0]
+ cmp r1, #0
+ bne _0223935A
+ add r2, r2, #1
+_0223935A:
+ add r3, r3, #1
+ add r4, r4, #2
+ cmp r3, #3
+ blt _02239352
+ cmp r2, #3
+ bne _022393CA
+ ldr r1, _022393B4 ; =0x022456D4
+ add r0, sp, #0x2c
+ ldrb r2, [r1]
+ strb r2, [r0]
+ ldrb r2, [r1, #1]
+ strb r2, [r0, #1]
+ ldrb r2, [r1, #2]
+ ldrb r1, [r1, #3]
+ strb r2, [r0, #2]
+ strb r1, [r0, #3]
+ add r0, r5, #0
+ bl FUN_02082878
+ ldr r1, [sp, #4]
+ mov r2, #0x12
+ lsl r0, r0, #0x18
+ ldr r1, [r1]
+ lsl r2, r2, #4
+ ldrb r4, [r1, r2]
+ add r3, sp, #0x2c
+ lsr r0, r0, #0x18
+ ldrb r3, [r3, r4]
+ cmp r0, r3
+ bge _022393CA
+ add r2, r2, #3
+ ldrb r2, [r1, r2]
+ ldr r1, [sp, #4]
+ ldr r0, [sp, #8]
+ add r2, r1, r2
+ ldr r1, _022393B8 ; =0x0000023E
+ b _022393BC
+ .align 2, 0
+_022393A4: .word 0x0224574C
+_022393A8: .word 0x0000011F
+_022393AC: .word 0x022456D8
+_022393B0: .word 0x00000171
+_022393B4: .word 0x022456D4
+_022393B8: .word 0x0000023E
+_022393BC:
+ add r0, r0, #4
+ ldrb r1, [r2, r1]
+ add r0, r0, r6
+ lsl r2, r1, #1
+ ldrsh r1, [r0, r2]
+ sub r1, #0x64
+ strh r1, [r0, r2]
+_022393CA:
+ mov r0, #0
+ str r0, [sp, #0x24]
+ mov r0, #0xc
+ add r1, r7, #0
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r3, sp, #0x30
+ add r0, r0, r1
+ mov r1, #4
+ ldrsh r5, [r0, r1]
+ mov ip, r0
+ mov r4, #1
+ add r2, r0, #2
+ add r3, #2
+_022393E6:
+ mov r0, #4
+ ldrsh r6, [r2, r0]
+ cmp r6, r5
+ bgt _02239400
+ cmp r6, r5
+ bne _02239404
+ ldr r0, [sp, #0x24]
+ ldrh r7, [r3]
+ lsl r1, r0, #1
+ add r0, sp, #0x30
+ ldrh r0, [r0, r1]
+ cmp r7, r0
+ bls _02239404
+_02239400:
+ str r4, [sp, #0x24]
+ add r5, r6, #0
+_02239404:
+ add r4, r4, #1
+ add r2, r2, #2
+ add r3, r3, #2
+ cmp r4, #3
+ blt _022393E6
+ mov r0, ip
+ ldrh r1, [r0]
+ ldr r0, [sp, #0x10]
+ strh r1, [r0]
+ ldr r1, [sp, #0x58]
+ ldr r0, [sp, #0x24]
+ strb r0, [r1]
+ ldr r0, [sp, #0x10]
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _02239428
+ bl ErrorHandling
+_02239428:
+ ldr r0, [sp, #0x58]
+ ldrb r0, [r0]
+ cmp r0, #3
+ blo _02239434
+ bl ErrorHandling
+_02239434:
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD12_02239438
+MOD12_02239438: ; 0x02239438
+ ldrb r0, [r0]
+ cmp r0, #4
+ bne _02239442
+ mov r0, #1
+ bx lr
+_02239442:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_02239448
+MOD12_02239448: ; 0x02239448
+ lsl r1, r1, #2
+ add r0, r0, r1
+ add r0, #0xe0
+ ldr r0, [r0]
+ lsl r0, r0, #8
+ lsr r0, r0, #0x18
+ beq _0223945A
+ mov r0, #1
+ bx lr
+_0223945A:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_02239460
+MOD12_02239460: ; 0x02239460
+ mov r1, #0
+_02239462:
+ ldrb r0, [r2, #0xa]
+ cmp r0, #5
+ bne _0223946C
+ mov r0, #1
+ bx lr
+_0223946C:
+ add r1, r1, #1
+ add r2, #0xc
+ cmp r1, #4
+ blt _02239462
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD12_02239478
+MOD12_02239478: ; 0x02239478
+ mov r1, #0
+_0223947A:
+ ldrb r0, [r2, #0xa]
+ cmp r0, #9
+ bne _02239484
+ mov r0, #1
+ bx lr
+_02239484:
+ add r1, r1, #1
+ add r2, #0xc
+ cmp r1, #4
+ blt _0223947A
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD12_02239490
+MOD12_02239490: ; 0x02239490
+ mov r1, #0
+_02239492:
+ ldrb r0, [r2, #0xa]
+ cmp r0, #0xc
+ bne _0223949C
+ mov r0, #1
+ bx lr
+_0223949C:
+ add r1, r1, #1
+ add r2, #0xc
+ cmp r1, #4
+ blt _02239492
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD12_022394A8
+MOD12_022394A8: ; 0x022394A8
+ mov r1, #0
+_022394AA:
+ ldrb r0, [r2, #0xa]
+ cmp r0, #0xf
+ bne _022394B4
+ mov r0, #1
+ bx lr
+_022394B4:
+ add r1, r1, #1
+ add r2, #0xc
+ cmp r1, #4
+ blt _022394AA
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD12_022394C0
+MOD12_022394C0: ; 0x022394C0
+ mov r1, #0
+_022394C2:
+ ldrb r0, [r2, #0xa]
+ cmp r0, #0x11
+ bne _022394CC
+ mov r0, #1
+ bx lr
+_022394CC:
+ add r1, r1, #1
+ add r2, #0xc
+ cmp r1, #4
+ blt _022394C2
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD12_022394D8
+MOD12_022394D8: ; 0x022394D8
+ mov r1, #0
+_022394DA:
+ ldrb r0, [r2, #0xa]
+ cmp r0, #0x12
+ bne _022394E4
+ mov r0, #1
+ bx lr
+_022394E4:
+ add r1, r1, #1
+ add r2, #0xc
+ cmp r1, #4
+ blt _022394DA
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD12_022394F0
+MOD12_022394F0: ; 0x022394F0
+ mov r1, #0
+_022394F2:
+ ldrb r0, [r2, #0xa]
+ cmp r0, #0x13
+ bne _022394FC
+ mov r0, #1
+ bx lr
+_022394FC:
+ add r1, r1, #1
+ add r2, #0xc
+ cmp r1, #4
+ blt _022394F2
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD12_02239508
+MOD12_02239508: ; 0x02239508
+ mov r1, #0
+_0223950A:
+ ldrb r0, [r2, #0xa]
+ cmp r0, #0x14
+ bne _02239514
+ mov r0, #1
+ bx lr
+_02239514:
+ add r1, r1, #1
+ add r2, #0xc
+ cmp r1, #4
+ blt _0223950A
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD12_02239520
+MOD12_02239520: ; 0x02239520
+ mov r1, #0
+_02239522:
+ ldrb r0, [r2, #0xa]
+ cmp r0, #0x15
+ bne _0223952C
+ mov r0, #1
+ bx lr
+_0223952C:
+ add r1, r1, #1
+ add r2, #0xc
+ cmp r1, #4
+ blt _02239522
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD12_02239538
+MOD12_02239538: ; 0x02239538
+ push {r3, r4}
+ lsl r1, r1, #1
+ add r2, r0, r1
+ mov r1, #0x12
+ ldrsh r3, [r2, r1]
+ mov r4, #0
+_02239544:
+ ldrsh r2, [r0, r1]
+ cmp r3, r2
+ bgt _02239552
+ add r4, r4, #1
+ add r0, r0, #2
+ cmp r4, #4
+ blt _02239544
+_02239552:
+ cmp r4, #4
+ bne _0223955C
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_0223955C:
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_02239564
+MOD12_02239564: ; 0x02239564
+ push {r3, r4}
+ ldrb r2, [r0]
+ cmp r2, #4
+ bne _0223958E
+ lsl r1, r1, #1
+ add r2, r0, r1
+ mov r1, #0x12
+ ldrsh r3, [r2, r1]
+ mov r4, #0
+_02239576:
+ ldrsh r2, [r0, r1]
+ cmp r3, r2
+ bgt _02239584
+ add r4, r4, #1
+ add r0, r0, #2
+ cmp r4, #4
+ blt _02239576
+_02239584:
+ cmp r4, #4
+ bne _0223958E
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_0223958E:
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD12_02239594
+MOD12_02239594: ; 0x02239594
+ ldr r3, [sp]
+ mov r1, #0
+_02239598:
+ ldrb r0, [r2, #0xa]
+ cmp r0, #4
+ bne _022395A8
+ ldrb r0, [r2, #0xb]
+ cmp r3, r0
+ bne _022395A8
+ mov r0, #1
+ bx lr
+_022395A8:
+ add r1, r1, #1
+ add r2, #0xc
+ cmp r1, #4
+ blt _02239598
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD12_022395B4
+MOD12_022395B4: ; 0x022395B4
+ ldr r3, [sp]
+ mov r1, #0
+_022395B8:
+ ldrb r0, [r2, #0xb]
+ cmp r3, r0
+ bne _022395C2
+ mov r0, #1
+ bx lr
+_022395C2:
+ add r1, r1, #1
+ add r2, #0xc
+ cmp r1, #4
+ blt _022395B8
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_022395D0
+MOD12_022395D0: ; 0x022395D0
+ push {r3, r4, r5, r6}
+ ldr r5, [sp, #0x10]
+ mov r4, #0
+_022395D6:
+ ldrb r1, [r2, #0xb]
+ cmp r5, r1
+ beq _022395E4
+ add r4, r4, #1
+ add r2, #0xc
+ cmp r4, #4
+ blt _022395D6
+_022395E4:
+ cmp r4, #4
+ bne _022395EE
+ mov r0, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+_022395EE:
+ mov r5, #0
+ add r6, r5, #0
+ mov r2, #1
+ mov r1, #0x22
+_022395F6:
+ add r4, r0, r6
+ ldrsb r4, [r4, r1]
+ cmp r4, #0x28
+ bne _02239602
+ strb r2, [r3, r6]
+ add r5, r5, #1
+_02239602:
+ add r6, r6, #1
+ cmp r6, #3
+ blt _022395F6
+ cmp r5, #0
+ ble _02239612
+ mov r0, #1
+ pop {r3, r4, r5, r6}
+ bx lr
+_02239612:
+ mov r0, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+
+ thumb_func_start MOD12_02239618
+MOD12_02239618: ; 0x02239618
+ push {r3, r4, r5, r6}
+ ldr r5, [sp, #0x10]
+ mov r4, #0
+_0223961E:
+ ldrb r1, [r2, #0xb]
+ cmp r5, r1
+ beq _0223962C
+ add r4, r4, #1
+ add r2, #0xc
+ cmp r4, #4
+ blt _0223961E
+_0223962C:
+ cmp r4, #4
+ bne _02239636
+ mov r0, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+_02239636:
+ mov r5, #0
+ add r6, r5, #0
+ mov r2, #1
+ mov r1, #0x22
+_0223963E:
+ add r4, r0, r6
+ ldrsb r4, [r4, r1]
+ cmp r4, #0x1e
+ bne _0223964A
+ add r5, r5, #1
+ strb r2, [r3, r6]
+_0223964A:
+ add r6, r6, #1
+ cmp r6, #3
+ blt _0223963E
+ cmp r5, #0
+ ble _0223965A
+ mov r0, #1
+ pop {r3, r4, r5, r6}
+ bx lr
+_0223965A:
+ mov r0, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+
+ thumb_func_start MOD12_02239660
+MOD12_02239660: ; 0x02239660
+ mov r1, #0
+_02239662:
+ ldrb r0, [r2, #0xa]
+ cmp r0, #8
+ bne _0223966C
+ mov r0, #1
+ bx lr
+_0223966C:
+ add r1, r1, #1
+ add r2, #0xc
+ cmp r1, #4
+ blt _02239662
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD12_02239678
+MOD12_02239678: ; 0x02239678
+ mov r1, #0
+_0223967A:
+ ldrb r0, [r2, #0xa]
+ cmp r0, #0xd
+ bne _02239684
+ mov r0, #1
+ bx lr
+_02239684:
+ add r1, r1, #1
+ add r2, #0xc
+ cmp r1, #4
+ blt _0223967A
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD12_02239690
+MOD12_02239690: ; 0x02239690
+ push {r3, r4, r5, r6}
+ mov r6, #0
+ add r5, r6, #0
+ mov r2, #1
+ mov r1, #0x22
+_0223969A:
+ add r4, r0, r5
+ ldrsb r4, [r4, r1]
+ cmp r4, #0x28
+ bne _022396A6
+ add r6, r6, #1
+ strb r2, [r3, r5]
+_022396A6:
+ add r5, r5, #1
+ cmp r5, #3
+ blt _0223969A
+ cmp r6, #0
+ ble _022396B6
+ mov r0, #1
+ pop {r3, r4, r5, r6}
+ bx lr
+_022396B6:
+ mov r0, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+
+ thumb_func_start MOD12_022396BC
+MOD12_022396BC: ; 0x022396BC
+ push {r3, r4, r5, r6}
+ mov r6, #0
+ add r5, r6, #0
+ mov r2, #1
+ mov r1, #0x22
+_022396C6:
+ add r4, r0, r5
+ ldrsb r4, [r4, r1]
+ cmp r4, #0x1e
+ bne _022396D2
+ add r6, r6, #1
+ strb r2, [r3, r5]
+_022396D2:
+ add r5, r5, #1
+ cmp r5, #3
+ blt _022396C6
+ cmp r6, #0
+ ble _022396E2
+ mov r0, #1
+ pop {r3, r4, r5, r6}
+ bx lr
+_022396E2:
+ mov r0, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+
+ thumb_func_start MOD12_022396E8
+MOD12_022396E8: ; 0x022396E8
+ push {r3, r4, r5, r6}
+ mov r6, #0
+ add r5, r6, #0
+ mov r2, #1
+ mov r1, #0x22
+_022396F2:
+ add r4, r0, r5
+ ldrsb r4, [r4, r1]
+ cmp r4, #0xa
+ bgt _022396FE
+ add r6, r6, #1
+ strb r2, [r3, r5]
+_022396FE:
+ add r5, r5, #1
+ cmp r5, #3
+ blt _022396F2
+ cmp r6, #0
+ ble _0223970E
+ mov r0, #1
+ pop {r3, r4, r5, r6}
+ bx lr
+_0223970E:
+ mov r0, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+
+ thumb_func_start MOD12_02239714
+MOD12_02239714: ; 0x02239714
+ push {r3, r4}
+ mov r4, #0
+ mov r1, #0x22
+_0223971A:
+ add r2, r0, r4
+ ldrsb r2, [r2, r1]
+ cmp r2, #0x14
+ bge _02239728
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+_02239728:
+ add r4, r4, #1
+ cmp r4, #3
+ blt _0223971A
+ mov r1, #0
+ mov r0, #1
+_02239732:
+ strb r0, [r3, r1]
+ add r1, r1, #1
+ cmp r1, #3
+ blt _02239732
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_02239740
+MOD12_02239740: ; 0x02239740
+ push {r3, r4}
+ mov r4, #0
+ mov r1, #0x22
+_02239746:
+ add r2, r0, r4
+ ldrsb r2, [r2, r1]
+ cmp r2, #0x14
+ ble _02239754
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+_02239754:
+ add r4, r4, #1
+ cmp r4, #3
+ blt _02239746
+ mov r1, #0
+ mov r0, #1
+_0223975E:
+ strb r0, [r3, r1]
+ add r1, r1, #1
+ cmp r1, #3
+ blt _0223975E
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0223976C
+MOD12_0223976C: ; 0x0223976C
+ push {r3, r4, r5, r6}
+ mov r6, #0
+ add r5, r6, #0
+ mov r2, #1
+ mov r1, #0x22
+_02239776:
+ add r4, r0, r5
+ ldrsb r4, [r4, r1]
+ cmp r4, #0x14
+ bgt _02239782
+ strb r2, [r3, r5]
+ add r6, r6, #1
+_02239782:
+ add r5, r5, #1
+ cmp r5, #3
+ blt _02239776
+ cmp r6, #1
+ bne _02239792
+ mov r0, #1
+ pop {r3, r4, r5, r6}
+ bx lr
+_02239792:
+ mov r0, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+
+ thumb_func_start MOD12_02239798
+MOD12_02239798: ; 0x02239798
+ push {r3, r4, r5, r6}
+ mov r6, #0
+ add r5, r6, #0
+ mov r2, #1
+ mov r1, #0x22
+_022397A2:
+ add r4, r0, r5
+ ldrsb r4, [r4, r1]
+ cmp r4, #0x28
+ bne _022397AE
+ strb r2, [r3, r5]
+ add r6, r6, #1
+_022397AE:
+ add r5, r5, #1
+ cmp r5, #3
+ blt _022397A2
+ cmp r6, #2
+ bne _022397BE
+ mov r0, #1
+ pop {r3, r4, r5, r6}
+ bx lr
+_022397BE:
+ mov r0, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+
+ thumb_func_start MOD12_022397C4
+MOD12_022397C4: ; 0x022397C4
+ push {r3, r4, r5, r6}
+ mov r6, #0
+ add r5, r6, #0
+ mov r2, #1
+ mov r1, #0x22
+_022397CE:
+ add r4, r0, r5
+ ldrsb r4, [r4, r1]
+ cmp r4, #0
+ bne _022397DA
+ strb r2, [r3, r5]
+ add r6, r6, #1
+_022397DA:
+ add r5, r5, #1
+ cmp r5, #3
+ blt _022397CE
+ cmp r6, #1
+ bne _022397EA
+ mov r0, #1
+ pop {r3, r4, r5, r6}
+ bx lr
+_022397EA:
+ mov r0, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+
+ thumb_func_start MOD12_022397F0
+MOD12_022397F0: ; 0x022397F0
+ push {r3, r4, r5, r6}
+ ldr r5, [sp, #0x10]
+ mov r4, #0
+_022397F6:
+ ldrb r1, [r2, #0xb]
+ cmp r5, r1
+ beq _02239804
+ add r4, r4, #1
+ add r2, #0xc
+ cmp r4, #4
+ blt _022397F6
+_02239804:
+ cmp r4, #4
+ bne _0223980E
+ mov r0, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+_0223980E:
+ mov r5, #0
+ add r6, r5, #0
+ mov r2, #1
+ mov r1, #0x22
+_02239816:
+ add r4, r0, r6
+ ldrsb r4, [r4, r1]
+ cmp r4, #0x28
+ bne _02239822
+ strb r2, [r3, r6]
+ add r5, r5, #1
+_02239822:
+ add r6, r6, #1
+ cmp r6, #3
+ blt _02239816
+ cmp r5, #0
+ ble _02239832
+ mov r0, #1
+ pop {r3, r4, r5, r6}
+ bx lr
+_02239832:
+ mov r0, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+
+ thumb_func_start MOD12_02239838
+MOD12_02239838: ; 0x02239838
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ bne _02239858
+ lsl r0, r4, #4
+ add r0, r5, r0
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ beq _02239872
+ bl ErrorHandling
+ pop {r3, r4, r5, r6, r7, pc}
+_02239858:
+ bl FUN_02007534
+ add r6, r5, #0
+ add r6, #0x48
+ lsl r7, r4, #4
+ ldr r0, [r6, r7]
+ bl FUN_02016A18
+ lsl r0, r4, #2
+ mov r1, #0
+ add r0, r5, r0
+ str r1, [r0, #8]
+ str r1, [r6, r7]
+_02239872:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD12_02239874
+MOD12_02239874: ; 0x02239874
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_0223987A:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD12_02239838
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0223987A
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223988C
+MOD12_0223988C: ; 0x0223988C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r2, #1
+ str r2, [sp]
+ mov r2, #2
+ str r2, [sp, #4]
+ ldr r2, _022398D4 ; =0x000080EA
+ mov r3, #0x43
+ str r2, [sp, #8]
+ mov r2, #0x2e
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _022398D4 ; =0x000080EA
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x44
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _022398D4 ; =0x000080EA
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x45
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_022398D4: .word 0x000080EA
+
+ thumb_func_start MOD12_022398D8
+MOD12_022398D8: ; 0x022398D8
+ push {r4, lr}
+ ldr r1, _022398F4 ; =0x000080EA
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _022398F4 ; =0x000080EA
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _022398F4 ; =0x000080EA
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_022398F4: .word 0x000080EA
+
+ thumb_func_start MOD12_022398F8
+MOD12_022398F8: ; 0x022398F8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x16
+ mov r1, #0x18
+ add r7, r2, #0
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x18
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x2c]
+ ldr r2, _0223996C ; =0x02245F14
+ bl FUN_0200C154
+ lsl r1, r6, #0x10
+ lsl r2, r7, #0x10
+ mov r3, #1
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ lsl r3, r3, #0x14
+ str r0, [r4, #4]
+ bl FUN_0200C750
+ ldr r0, [sp, #0x18]
+ cmp r0, #1
+ bne _0223993C
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_0200C5C0
+_0223993C:
+ ldr r0, [r4, #4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ lsl r0, r6, #8
+ str r0, [r4, #8]
+ lsl r0, r7, #8
+ str r0, [r4, #0xc]
+ ldr r0, _02239970 ; =0x000004F9
+ ldr r2, _02239974 ; =0x0000C350
+ add r1, r5, r0
+ str r1, [r4]
+ ldrb r0, [r1]
+ add r0, r0, #1
+ strb r0, [r1]
+ ldr r0, _02239978 ; =MOD12_02239980
+ add r1, r4, #0
+ bl FUN_0200CA44
+ ldr r0, _0223997C ; =0x000006E1
+ bl FUN_020054C8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223996C: .word 0x02245F14
+_02239970: .word 0x000004F9
+_02239974: .word 0x0000C350
+_02239978: .word MOD12_02239980
+_0223997C: .word 0x000006E1
+
+ thumb_func_start MOD12_02239980
+MOD12_02239980: ; 0x02239980
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x14]
+ cmp r0, #0
+ bne _022399EE
+ ldr r0, [r4, #0x10]
+ bl FUN_0201B9B8
+ lsl r1, r0, #3
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r5, r0, #0xc
+ mov r0, #6
+ mov r3, #1
+ ldr r1, [r4, #0x10]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ lsl r3, r3, #8
+ sub r2, r0, r3
+ str r2, [r4, #0xc]
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #4]
+ asr r6, r1, #7
+ lsr r6, r6, #0x18
+ add r6, r1, r6
+ asr r1, r6, #8
+ add r1, r1, r5
+ asr r5, r2, #7
+ lsr r5, r5, #0x18
+ add r5, r2, r5
+ lsl r1, r1, #0x10
+ lsl r2, r5, #8
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ lsl r3, r3, #0xc
+ bl FUN_0200C750
+ ldrh r0, [r4, #0x16]
+ add r0, r0, #1
+ strh r0, [r4, #0x16]
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0x3c
+ bhs _022399E6
+ ldr r1, [r4, #0xc]
+ ldr r0, _02239A0C ; =0xFFFFE000
+ cmp r1, r0
+ bgt _02239A08
+_022399E6:
+ ldrb r0, [r4, #0x14]
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_022399EE:
+ ldr r0, [r4, #4]
+ bl FUN_0200C3DC
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ sub r0, r0, #1
+ strb r0, [r1]
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02239A08:
+ pop {r4, r5, r6, pc}
+ nop
+_02239A0C: .word 0xFFFFE000
+
+ thumb_func_start MOD12_02239A10
+MOD12_02239A10: ; 0x02239A10
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ ldr r0, [r5, #0x24]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _02239A22
+ bl ErrorHandling
+_02239A22:
+ mov r1, #0x30
+ ldr r2, [r5]
+ mul r1, r4
+ add r1, r2, r1
+ ldrh r1, [r1, #0x1a]
+ add r0, sp, #0x10
+ bl FUN_020690AC
+ ldr r0, _02239A54 ; =0xFFFFFDC0
+ mov r2, #5
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x10]
+ add r1, sp, #0x10
+ lsl r2, r2, #6
+ mov r3, #0x20
+ bl FUN_020073A0
+ str r0, [r5, #0x24]
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02239A54: .word 0xFFFFFDC0
+
+ thumb_func_start MOD12_02239A58
+MOD12_02239A58: ; 0x02239A58
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _02239A6A
+ bl FUN_02007534
+ mov r0, #0
+ str r0, [r4, #0x24]
+_02239A6A:
+ pop {r4, pc}
+
+ thumb_func_start MOD12_02239A6C
+MOD12_02239A6C: ; 0x02239A6C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #0
+ beq _02239A82
+ cmp r6, #0
+ bne _02239A82
+ bl ErrorHandling
+_02239A82:
+ cmp r4, #0
+ beq _02239ACC
+ cmp r4, #1
+ bne _02239AC8
+ ldrb r4, [r6]
+ ldr r3, [r5]
+ mov r0, #1
+ lsl r2, r4, #2
+ str r0, [sp]
+ mov r0, #2
+ add r2, r3, r2
+ add r4, r3, r4
+ mov r3, #0x42
+ str r0, [sp, #4]
+ lsl r3, r3, #2
+ add r2, #0xe8
+ ldrb r3, [r4, r3]
+ ldr r0, [r5, #0x48]
+ ldr r2, [r2]
+ mov r1, #0
+ bl FUN_0200ABB4
+ ldrb r0, [r6]
+ ldr r1, [r5, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r5, #0x48]
+ mov r1, #1
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_02239AC8:
+ bl ErrorHandling
+_02239ACC:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD12_02239AD0
+MOD12_02239AD0: ; 0x02239AD0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r6, r1, #0
+ ldr r1, [r5]
+ ldr r0, _02239B40 ; =0x00000171
+ add r7, r2, #0
+ ldrb r0, [r1, r0]
+ str r3, [sp, #0xc]
+ cmp r0, #0
+ bne _02239AF2
+ ldr r0, _02239B44 ; =0x00001988
+ ldr r0, [r1, r0]
+ bl FUN_02024FF4
+ add r4, r0, #0
+ b _02239AF4
+_02239AF2:
+ mov r4, #1
+_02239AF4:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x28]
+ add r0, r5, #0
+ bl MOD12_02239A6C
+ ldr r0, [r5, #0x48]
+ ldr r1, [r5, #0x4c]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ add r0, #0x34
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r5, #0
+ ldr r2, [r5, #0x4c]
+ add r0, #0x34
+ mov r1, #1
+ bl FUN_0201BD84
+ add r5, #0xd0
+ strb r0, [r5]
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02239B40: .word 0x00000171
+_02239B44: .word 0x00001988
+
+ thumb_func_start MOD12_02239B48
+MOD12_02239B48: ; 0x02239B48
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r1, #0
+ add r6, r0, #0
+ add r4, r2, #0
+ cmp r5, #0xf
+ blo _02239B5A
+ bl ErrorHandling
+_02239B5A:
+ str r4, [sp]
+ ldr r2, _02239B74 ; =0x02245F48
+ lsl r3, r5, #2
+ ldr r4, _02239B78 ; =0x02245F4A
+ ldrh r2, [r2, r3]
+ ldrb r3, [r4, r3]
+ ldr r1, [r6, #0x44]
+ add r0, r6, #0
+ bl MOD12_02239AD0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02239B74: .word 0x02245F48
+_02239B78: .word 0x02245F4A
+
+ thumb_func_start MOD12_02239B7C
+MOD12_02239B7C: ; 0x02239B7C
+ ldr r3, _02239B84 ; =0x0201BD71
+ add r0, #0xd0
+ ldrb r0, [r0]
+ bx r3
+ .align 2, 0
+_02239B84: .word 0x0201BD71
+
+ thumb_func_start MOD12_02239B88
+MOD12_02239B88: ; 0x02239B88
+ push {r3, r4, lr}
+ sub sp, #0xc
+ ldr r1, _02239BBC ; =0x02245FA4
+ add r3, sp, #0
+ str r1, [sp]
+ mov r1, #0x11
+ strh r1, [r3, #4]
+ ldr r1, [r0]
+ ldr r2, _02239BC0 ; =0x00000123
+ ldrb r1, [r1, r2]
+ strb r1, [r3, #6]
+ sub r1, r2, #7
+ ldr r4, [r0]
+ add r2, #0x4e
+ ldrb r1, [r4, r1]
+ strb r1, [r3, #8]
+ ldr r1, [r0]
+ ldrb r1, [r1, r2]
+ strb r1, [r3, #7]
+ ldr r1, _02239BC4 ; =0x000004FC
+ add r0, r0, r1
+ add r1, sp, #0
+ bl MOD12_02240ED0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_02239BBC: .word 0x02245FA4
+_02239BC0: .word 0x00000123
+_02239BC4: .word 0x000004FC
+
+ thumb_func_start MOD12_02239BC8
+MOD12_02239BC8: ; 0x02239BC8
+ push {r3, lr}
+ lsl r2, r2, #0x10
+ mov r3, #0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02239BDC
+MOD12_02239BDC: ; 0x02239BDC
+ push {r3, lr}
+ add r1, r2, #0
+ mov r2, #0
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02239BEC
+MOD12_02239BEC: ; 0x02239BEC
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_02239BF0
+MOD12_02239BF0: ; 0x02239BF0
+ push {r3, lr}
+ lsl r2, r2, #0x10
+ mov r3, #0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02239C04
+MOD12_02239C04: ; 0x02239C04
+ push {r4, lr}
+ ldr r3, _02239C18 ; =0x00000F1C
+ mov r4, #1
+ strb r4, [r1, r3]
+ add r1, r2, #0
+ mov r2, #0
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ pop {r4, pc}
+ .align 2, 0
+_02239C18: .word 0x00000F1C
+
+ thumb_func_start MOD12_02239C1C
+MOD12_02239C1C: ; 0x02239C1C
+ push {r3, lr}
+ mov r1, #0x12
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02239C30
+MOD12_02239C30: ; 0x02239C30
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x10]
+ add r6, r1, #0
+ mov r0, #0x16
+ mov r1, #0x1c
+ add r5, r2, #0
+ add r7, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x1c
+ bl MI_CpuFill8
+ str r6, [r4]
+ ldrh r0, [r5]
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ mov r5, #0
+ strh r0, [r4, #0xa]
+ ldr r0, [sp, #0x10]
+ str r0, [r4, #0xc]
+ ldrb r0, [r7]
+ strb r0, [r4, #0x11]
+ b _02239C90
+_02239C6C:
+ ldr r1, [r4]
+ lsl r0, r5, #4
+ add r1, r1, r0
+ mov r0, #0xf2
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02239C8E
+ bl FUN_021DD540
+ ldr r1, [r4]
+ lsl r0, r5, #4
+ add r2, r1, r0
+ mov r0, #0xf2
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r2, r0]
+_02239C8E:
+ add r5, r5, #1
+_02239C90:
+ cmp r5, #4
+ blt _02239C6C
+ ldrb r0, [r7]
+ ldr r1, [r6, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #2
+ bl FUN_02068E14
+ add r0, sp, #0x14
+ mov r1, #0
+ mov r2, #0x10
+ bl MI_CpuFill8
+ mov r0, #0x16
+ str r0, [sp, #0x20]
+ mov r1, #0x80
+ mov r0, #0x68
+ str r1, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ ldrb r2, [r7]
+ lsl r2, r2, #4
+ add r3, r6, r2
+ ldr r2, _02239D74 ; =0x00000F24
+ str r1, [r3, r2]
+ ldrb r1, [r7]
+ lsl r1, r1, #4
+ add r3, r6, r1
+ add r1, r2, #4
+ str r0, [r3, r1]
+ ldrb r1, [r7]
+ ldr r2, [r6]
+ add r0, sp, #0x14
+ lsl r1, r1, #2
+ add r1, r2, r1
+ add r1, #0xf8
+ ldr r1, [r1]
+ bl FUN_021DD4F4
+ ldrb r1, [r7]
+ lsl r1, r1, #4
+ add r2, r6, r1
+ mov r1, #0xf2
+ lsl r1, r1, #4
+ str r0, [r2, r1]
+ ldrb r0, [r7]
+ lsl r0, r0, #4
+ add r0, r6, r0
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl FUN_021DD594
+ ldr r0, _02239D78 ; =0x04000048
+ mov r2, #0x3f
+ ldrh r1, [r0]
+ mov r3, #0x1f
+ bic r1, r2
+ add r5, r1, #0
+ orr r5, r3
+ mov r1, #0x20
+ orr r1, r5
+ strh r1, [r0]
+ ldrh r1, [r0, #2]
+ bic r1, r2
+ orr r1, r3
+ strh r1, [r0, #2]
+ mov r1, #1
+ add r2, r1, #0
+ add r0, #8
+ sub r2, #0x11
+ bl G2x_SetBlendBrightness_
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _02239D7C ; =0xFFFF1FFF
+ mov r3, #0xff
+ and r1, r0
+ lsr r0, r2, #0xd
+ orr r0, r1
+ mov r1, #0xf6
+ str r0, [r2]
+ lsl r1, r1, #4
+ mov r0, #0
+ strb r0, [r6, r1]
+ add r2, r1, #1
+ strb r0, [r6, r2]
+ add r2, r1, #2
+ strb r3, [r6, r2]
+ ldr r2, _02239D80 ; =0x02245F84
+ add r1, r1, #3
+ ldrsb r2, [r2, r0]
+ mov r3, #2
+ add r2, r2, #4
+ lsl r2, r2, #3
+ strb r2, [r6, r1]
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x16
+ str r0, [sp, #0xc]
+ ldr r2, [r6, #0x30]
+ mov r0, #0x2d
+ mov r1, #0x14
+ bl FUN_020068C8
+ ldr r0, _02239D84 ; =MOD12_02239D8C
+ ldr r2, _02239D88 ; =0x00007530
+ add r1, r4, #0
+ bl FUN_0200CA44
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02239D74: .word 0x00000F24
+_02239D78: .word 0x04000048
+_02239D7C: .word 0xFFFF1FFF
+_02239D80: .word 0x02245F84
+_02239D84: .word MOD12_02239D8C
+_02239D88: .word 0x00007530
+
+ thumb_func_start MOD12_02239D8C
+MOD12_02239D8C: ; 0x02239D8C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #4
+ bhi _02239E6E
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02239DA4: ; jump table
+ .short _02239DAE - _02239DA4 - 2 ; case 0
+ .short _02239DB4 - _02239DA4 - 2 ; case 1
+ .short _02239E0E - _02239DA4 - 2 ; case 2
+ .short _02239E14 - _02239DA4 - 2 ; case 3
+ .short _02239E54 - _02239DA4 - 2 ; case 4
+_02239DAE:
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02239DB4:
+ ldr r1, _02239E88 ; =0x04000048
+ mov r0, #0x3f
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #0x1e
+ orr r2, r0
+ mov r0, #0x20
+ orr r0, r2
+ strh r0, [r1]
+ ldr r0, [r4]
+ ldr r1, [r0, #0xc]
+ ldrb r0, [r4, #0x11]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #2
+ bl FUN_02068E14
+ add r3, r0, #0
+ ldrb r0, [r4, #0x11]
+ mov r2, #0xf2
+ lsl r2, r2, #4
+ lsl r1, r0, #4
+ ldr r0, [r4]
+ add r5, r0, r1
+ add r1, r2, #4
+ ldr r0, [r5, r2]
+ add r2, #8
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ bl FUN_021DD678
+ ldrb r0, [r4, #0x11]
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r1, r1, r0
+ mov r0, #0xf2
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_021DD594
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02239E0E:
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02239E14:
+ ldr r1, _02239E88 ; =0x04000048
+ mov r0, #0x3f
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #0x1f
+ orr r2, r0
+ mov r0, #0x20
+ orr r0, r2
+ strh r0, [r1]
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4]
+ ldr r2, _02239E8C ; =0x00001FFF
+ ldr r0, [r0, #0x50]
+ add r3, r1, #0
+ bl FUN_02003A64
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, [r4]
+ ldr r2, _02239E90 ; =0x00003FFF
+ ldr r0, [r0, #0x50]
+ mov r1, #2
+ bl FUN_02003A64
+ ldr r0, _02239E94 ; =0x000006EC
+ bl FUN_020054C8
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02239E54:
+ mov r0, #0x12
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ strh r1, [r4, #0x12]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0xa
+ ble _02239E86
+ mov r0, #0
+ strh r0, [r4, #0x12]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02239E6E:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02239E86:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02239E88: .word 0x04000048
+_02239E8C: .word 0x00001FFF
+_02239E90: .word 0x00003FFF
+_02239E94: .word 0x000006EC
+
+ thumb_func_start MOD12_02239E98
+MOD12_02239E98: ; 0x02239E98
+ push {r3, lr}
+ mov r1, #0x12
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02239EAC
+MOD12_02239EAC: ; 0x02239EAC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x16
+ mov r1, #0x1c
+ add r5, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x1c
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _02239EF0 ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, [sp]
+ str r6, [r4, #0xc]
+ ldrb r0, [r0]
+ strb r0, [r4, #0x11]
+ ldr r0, _02239EF4 ; =MOD12_02239EF8
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02239EF0: .word 0x00007530
+_02239EF4: .word MOD12_02239EF8
+
+ thumb_func_start MOD12_02239EF8
+MOD12_02239EF8: ; 0x02239EF8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #0
+ beq _02239F0A
+ cmp r0, #1
+ beq _02239F3A
+ b _02239F8E
+_02239F0A:
+ ldrb r0, [r4, #0x11]
+ ldr r1, [r4]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #0x14]
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #8
+ str r0, [r4, #0x14]
+ ldrb r0, [r4, #0x11]
+ ldr r1, [r4]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #0x14]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #8
+ str r0, [r4, #0x18]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02239F3A:
+ ldr r0, [r4]
+ ldr r1, [r0, #0xc]
+ ldrb r0, [r4, #0x11]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #2
+ bl FUN_02068E14
+ mov r0, #1
+ ldr r1, [r4, #0x18]
+ lsl r0, r0, #8
+ add r2, r1, r0
+ lsl r1, r0, #6
+ str r2, [r4, #0x18]
+ cmp r2, r1
+ blt _02239F64
+ lsl r0, r0, #6
+ str r0, [r4, #0x18]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+_02239F64:
+ ldrb r0, [r4, #0x11]
+ ldr r2, [r4, #0x14]
+ ldr r1, [r4]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #0x14]
+ mov r1, #0
+ asr r2, r2, #8
+ bl FUN_02007558
+ ldrb r0, [r4, #0x11]
+ ldr r2, [r4, #0x18]
+ ldr r1, [r4]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #0x14]
+ mov r1, #1
+ asr r2, r2, #8
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_02239F8E:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD12_02239FA8
+MOD12_02239FA8: ; 0x02239FA8
+ push {r3, lr}
+ mov r1, #0x12
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02239FBC
+MOD12_02239FBC: ; 0x02239FBC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x16
+ mov r1, #0x1c
+ add r5, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x1c
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _0223A004 ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, [sp]
+ str r6, [r4, #0xc]
+ ldrb r0, [r0, #1]
+ strb r0, [r4, #0x12]
+ mov r0, #0
+ strb r0, [r4, #0x1a]
+ ldr r0, _0223A008 ; =MOD12_0223A0BC
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223A004: .word 0x00007530
+_0223A008: .word MOD12_0223A0BC
+
+ thumb_func_start MOD12_0223A00C
+MOD12_0223A00C: ; 0x0223A00C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x16
+ mov r1, #0x1c
+ add r5, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x1c
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _0223A054 ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, [sp]
+ str r6, [r4, #0xc]
+ ldrb r0, [r0, #2]
+ strb r0, [r4, #0x12]
+ mov r0, #1
+ strb r0, [r4, #0x1a]
+ ldr r0, _0223A058 ; =MOD12_0223A0BC
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223A054: .word 0x00007530
+_0223A058: .word MOD12_0223A0BC
+
+ thumb_func_start MOD12_0223A05C
+MOD12_0223A05C: ; 0x0223A05C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #0x16
+ mov r1, #0x1c
+ add r5, r2, #0
+ add r6, r3, #0
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x1c
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [sp]
+ ldr r2, _0223A0B4 ; =0x00007530
+ str r0, [r4]
+ ldrh r0, [r5]
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ str r7, [r4, #0xc]
+ ldrb r1, [r6, #1]
+ ldrb r0, [r6, #2]
+ add r0, r1, r0
+ strb r0, [r4, #0x12]
+ ldrb r0, [r6, #1]
+ add r1, r4, #0
+ strb r0, [r4, #0x14]
+ ldrb r0, [r6, #2]
+ strb r0, [r4, #0x15]
+ mov r0, #0
+ strb r0, [r4, #0x1a]
+ mov r0, #1
+ strb r0, [r4, #0x1b]
+ ldr r0, _0223A0B8 ; =MOD12_0223A0BC
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223A0B4: .word 0x00007530
+_0223A0B8: .word MOD12_0223A0BC
+
+ thumb_func_start MOD12_0223A0BC
+MOD12_0223A0BC: ; 0x0223A0BC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r5, #0x10]
+ cmp r0, #0
+ beq _0223A0D6
+ cmp r0, #1
+ beq _0223A0E6
+ cmp r0, #2
+ bne _0223A0D4
+ b _0223A22E
+_0223A0D4:
+ b _0223A248
+_0223A0D6:
+ ldr r0, _0223A264 ; =0x000006E5
+ bl FUN_020054C8
+ mov r0, #0xf
+ strb r0, [r5, #0x11]
+ ldrb r0, [r5, #0x10]
+ add r0, r0, #1
+ strb r0, [r5, #0x10]
+_0223A0E6:
+ ldrb r1, [r5, #0x13]
+ ldrb r0, [r5, #0x12]
+ cmp r1, r0
+ blo _0223A102
+ mov r0, #0
+ strb r0, [r5, #0x11]
+ ldr r0, _0223A264 ; =0x000006E5
+ bl FUN_020054C8
+ ldrb r0, [r5, #0x10]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223A102:
+ ldrb r0, [r5, #0x1b]
+ cmp r0, #1
+ bne _0223A112
+ ldrb r0, [r5, #0x14]
+ cmp r1, r0
+ blo _0223A112
+ mov r0, #1
+ strb r0, [r5, #0x1a]
+_0223A112:
+ ldrb r0, [r5, #0x11]
+ cmp r0, #0
+ beq _0223A120
+ sub r0, r0, #1
+ add sp, #8
+ strb r0, [r5, #0x11]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223A120:
+ mov r0, #3
+ strb r0, [r5, #0x11]
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_02082878
+ mov r1, #0x60
+ bl _s32_div_f
+ lsl r0, r1, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_02082878
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1a
+ sub r1, r1, r2
+ mov r0, #0x1a
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_02082878
+ mov r1, #1
+ tst r0, r1
+ beq _0223A164
+ ldr r0, [sp, #4]
+ add r0, #0x80
+ b _0223A16A
+_0223A164:
+ ldr r0, [sp, #4]
+ mov r1, #0x80
+ sub r0, r1, r0
+_0223A16A:
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_02082878
+ mov r1, #1
+ tst r0, r1
+ beq _0223A182
+ add r0, r7, #0
+ add r0, #0x60
+ b _0223A186
+_0223A182:
+ mov r0, #0x60
+ sub r0, r0, r7
+_0223A186:
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ ldrb r0, [r5, #0x13]
+ cmp r0, #0
+ beq _0223A1F6
+ mov r0, #0x16
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x80
+ bge _0223A19C
+ cmp r6, #0x80
+ blt _0223A1A4
+_0223A19C:
+ cmp r0, #0x80
+ ble _0223A1F6
+ cmp r6, #0x80
+ ble _0223A1F6
+_0223A1A4:
+ mov r0, #0x18
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x60
+ bge _0223A1B0
+ cmp r4, #0x60
+ blt _0223A1B8
+_0223A1B0:
+ cmp r0, #0x60
+ ble _0223A1F6
+ cmp r4, #0x60
+ ble _0223A1F6
+_0223A1B8:
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_02082878
+ mov r1, #1
+ tst r0, r1
+ beq _0223A1E2
+ cmp r6, #0x80
+ bge _0223A1D6
+ ldr r0, [sp, #4]
+ add r0, #0x80
+ str r0, [sp, #4]
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ b _0223A1F6
+_0223A1D6:
+ ldr r0, [sp, #4]
+ mov r1, #0x80
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ b _0223A1F6
+_0223A1E2:
+ cmp r4, #0x60
+ bge _0223A1EE
+ add r7, #0x60
+ lsl r0, r7, #0x10
+ asr r4, r0, #0x10
+ b _0223A1F6
+_0223A1EE:
+ mov r0, #0x60
+ sub r0, r0, r7
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+_0223A1F6:
+ ldrb r1, [r5, #0x13]
+ mov r0, #1
+ tst r0, r1
+ ldrb r0, [r5, #0x1a]
+ beq _0223A212
+ str r0, [sp]
+ mov r3, #0x2d
+ ldr r0, [r5]
+ add r1, r6, #0
+ add r2, r4, #0
+ lsl r3, r3, #0xe
+ bl MOD12_022398F8
+ b _0223A220
+_0223A212:
+ str r0, [sp]
+ ldr r0, [r5]
+ add r1, r6, #0
+ add r2, r4, #0
+ mov r3, #0
+ bl MOD12_022398F8
+_0223A220:
+ strh r6, [r5, #0x16]
+ strh r4, [r5, #0x18]
+ ldrb r0, [r5, #0x13]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r5, #0x13]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223A22E:
+ ldrb r0, [r5, #0x11]
+ add r0, r0, #1
+ strb r0, [r5, #0x11]
+ ldrb r0, [r5, #0x11]
+ cmp r0, #0x1e
+ bls _0223A260
+ mov r0, #0
+ strb r0, [r5, #0x11]
+ ldrb r0, [r5, #0x10]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223A248:
+ mov r2, #0
+ ldr r0, [r5, #0xc]
+ add r1, r5, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_0223A260:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223A264: .word 0x000006E5
+
+ thumb_func_start MOD12_0223A268
+MOD12_0223A268: ; 0x0223A268
+ push {r3, lr}
+ mov r1, #0x12
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223A27C
+MOD12_0223A27C: ; 0x0223A27C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x16
+ mov r1, #0x1c
+ add r5, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x1c
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _0223A2C0 ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, [sp]
+ str r6, [r4, #0xc]
+ ldrb r0, [r0]
+ strb r0, [r4, #0x11]
+ ldr r0, _0223A2C4 ; =MOD12_0223A2C8
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223A2C0: .word 0x00007530
+_0223A2C4: .word MOD12_0223A2C8
+
+ thumb_func_start MOD12_0223A2C8
+MOD12_0223A2C8: ; 0x0223A2C8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ ldr r1, [r0, #0xc]
+ ldrb r0, [r4, #0x11]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #2
+ bl FUN_02068E14
+ add r3, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #0
+ beq _0223A2EC
+ cmp r0, #1
+ beq _0223A314
+ b _0223A348
+_0223A2EC:
+ ldrb r0, [r4, #0x11]
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r1, r1, r0
+ ldr r0, _0223A384 ; =0x00000F24
+ ldr r1, [r1, r0]
+ add r0, r0, #4
+ lsl r1, r1, #8
+ str r1, [r4, #0x14]
+ ldrb r1, [r4, #0x11]
+ ldr r2, [r4]
+ lsl r1, r1, #4
+ add r1, r2, r1
+ ldr r0, [r1, r0]
+ lsl r0, r0, #8
+ str r0, [r4, #0x18]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223A314:
+ mov r0, #3
+ ldr r1, [r4, #0x14]
+ lsl r0, r0, #8
+ add r1, r1, r0
+ mov r0, #0x4b
+ lsl r0, r0, #0xa
+ str r1, [r4, #0x14]
+ cmp r1, r0
+ blt _0223A32C
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+_0223A32C:
+ ldrb r0, [r4, #0x11]
+ ldr r2, [r4, #0x18]
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r1, r1, r0
+ mov r0, #0xf2
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ ldr r1, [r4, #0x14]
+ asr r2, r2, #8
+ asr r1, r1, #8
+ bl FUN_021DD678
+ pop {r3, r4, r5, pc}
+_0223A348:
+ ldrb r0, [r4, #0x11]
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r1, r1, r0
+ mov r0, #0xf2
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ bl FUN_021DD540
+ ldrb r0, [r4, #0x11]
+ mov r2, #0
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r1, r1, r0
+ mov r0, #0xf2
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ nop
+_0223A384: .word 0x00000F24
+
+ thumb_func_start MOD12_0223A388
+MOD12_0223A388: ; 0x0223A388
+ push {r3, lr}
+ lsl r2, r2, #0x10
+ mov r3, #0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223A39C
+MOD12_0223A39C: ; 0x0223A39C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x16
+ mov r1, #0x18
+ add r5, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x18
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _0223A3D8 ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, _0223A3DC ; =MOD12_0223A3E0
+ str r6, [r4, #0xc]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223A3D8: .word 0x00007530
+_0223A3DC: .word MOD12_0223A3E0
+
+ thumb_func_start MOD12_0223A3E0
+MOD12_0223A3E0: ; 0x0223A3E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldrb r0, [r1, #0x10]
+ str r1, [sp]
+ cmp r0, #0
+ beq _0223A3F0
+ b _0223A516
+_0223A3F0:
+ ldr r0, [sp]
+ mov r1, #0x14
+ ldrsb r0, [r0, r1]
+ cmp r0, #0
+ ble _0223A404
+ sub r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x14]
+ pop {r4, r5, r6, r7, pc}
+_0223A404:
+ ldr r0, [sp]
+ mov r1, #0x13
+ ldrsb r0, [r0, r1]
+ cmp r0, #0
+ ble _0223A418
+ sub r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x13]
+ pop {r4, r5, r6, r7, pc}
+_0223A418:
+ ldr r0, [sp]
+ mov r1, #1
+ strb r1, [r0, #0x13]
+ ldr r0, [r0]
+ mov r1, #2
+ ldr r0, [r0, #0x30]
+ bl FUN_0201886C
+ mov ip, r0
+ mov r0, #0
+ str r0, [sp, #8]
+ b _0223A490
+_0223A430:
+ ldr r0, [sp]
+ mov r1, #0x11
+ ldrsb r1, [r0, r1]
+ ldr r0, _0223A534 ; =0x02245F84
+ ldrsb r1, [r0, r1]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ bmi _0223A48A
+ lsl r1, r0, #6
+ mov r0, ip
+ add r3, r0, r1
+ ldr r0, [sp]
+ mov r5, #0
+ ldrb r0, [r0, #0x12]
+ mov r7, #0x3f
+ str r5, [sp, #4]
+ lsl r1, r0, #1
+ ldr r0, _0223A538 ; =0x02245F8C
+ lsl r7, r7, #0xa
+ ldrh r1, [r0, r1]
+ ldr r0, [sp, #8]
+ lsl r0, r0, #5
+ add r6, r1, r0
+ b _0223A484
+_0223A460:
+ mov r4, #0
+ b _0223A478
+_0223A464:
+ add r0, r5, r4
+ lsl r2, r0, #1
+ ldrh r0, [r3, r2]
+ and r0, r7
+ strh r0, [r3, r2]
+ ldrh r1, [r3, r2]
+ add r0, r6, r4
+ add r4, r4, #1
+ orr r0, r1
+ strh r0, [r3, r2]
+_0223A478:
+ cmp r4, #8
+ blt _0223A464
+ ldr r0, [sp, #4]
+ add r5, #8
+ add r0, r0, #1
+ str r0, [sp, #4]
+_0223A484:
+ ldr r0, [sp, #4]
+ cmp r0, #4
+ blt _0223A460
+_0223A48A:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+_0223A490:
+ ldr r0, [sp, #8]
+ cmp r0, #4
+ blt _0223A430
+ ldr r0, [sp]
+ mov r1, #0x11
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ ble _0223A4D2
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0
+ bne _0223A4D2
+ ldr r0, _0223A534 ; =0x02245F84
+ sub r1, r1, #1
+ ldrsb r0, [r0, r1]
+ lsl r1, r0, #6
+ mov r0, ip
+ add r3, r0, r1
+ mov r0, #0
+ mov r1, #0x3f
+ str r0, [sp, #4]
+ lsl r1, r1, #0xa
+ b _0223A4CC
+_0223A4BC:
+ ldr r0, [sp, #4]
+ lsl r2, r0, #1
+ ldrh r0, [r3, r2]
+ and r0, r1
+ strh r0, [r3, r2]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+_0223A4CC:
+ ldr r0, [sp, #4]
+ cmp r0, #0x20
+ blt _0223A4BC
+_0223A4D2:
+ ldr r0, [sp]
+ mov r1, #2
+ ldr r0, [r0]
+ ldr r0, [r0, #0x30]
+ bl FUN_0201AC68
+ ldr r0, [sp]
+ ldrb r0, [r0, #0x12]
+ add r1, r0, #1
+ ldr r0, [sp]
+ strb r1, [r0, #0x12]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0xc
+ blo _0223A530
+ ldr r1, [sp]
+ mov r0, #0
+ mov r2, #0x11
+ strb r0, [r1, #0x12]
+ ldrsb r1, [r1, r2]
+ add r3, r1, #1
+ ldr r1, [sp]
+ strb r3, [r1, #0x11]
+ strb r0, [r1, #0x14]
+ add r0, r1, #0
+ ldrsb r0, [r0, r2]
+ cmp r0, #5
+ blo _0223A530
+ add r0, r1, #0
+ ldrb r0, [r0, #0x10]
+ add r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_0223A516:
+ add r0, r1, #0
+ mov r2, #0
+ ldr r0, [r0, #0xc]
+ add r1, r1, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ ldr r0, [sp]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_0223A530:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223A534: .word 0x02245F84
+_0223A538: .word 0x02245F8C
+
+ thumb_func_start MOD12_0223A53C
+MOD12_0223A53C: ; 0x0223A53C
+ push {r3, lr}
+ lsl r2, r2, #0x10
+ mov r3, #0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223A550
+MOD12_0223A550: ; 0x0223A550
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x16
+ mov r1, #0x18
+ add r5, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x18
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _0223A58C ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, _0223A590 ; =MOD12_0223A594
+ str r6, [r4, #0xc]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223A58C: .word 0x00007530
+_0223A590: .word MOD12_0223A594
+
+ thumb_func_start MOD12_0223A594
+MOD12_0223A594: ; 0x0223A594
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldrb r0, [r1, #0x10]
+ str r1, [sp]
+ cmp r0, #0
+ beq _0223A5A4
+ b _0223A6F2
+_0223A5A4:
+ ldr r0, [sp]
+ mov r1, #0x14
+ ldrsb r0, [r0, r1]
+ cmp r0, #0
+ ble _0223A5B8
+ sub r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x14]
+ pop {r4, r5, r6, r7, pc}
+_0223A5B8:
+ ldr r0, [sp]
+ mov r1, #0x13
+ ldrsb r0, [r0, r1]
+ cmp r0, #0
+ ble _0223A5CC
+ sub r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x13]
+ pop {r4, r5, r6, r7, pc}
+_0223A5CC:
+ ldr r0, [sp]
+ mov r1, #1
+ strb r1, [r0, #0x13]
+ ldr r0, [r0]
+ mov r1, #2
+ ldr r0, [r0, #0x30]
+ bl FUN_0201886C
+ mov ip, r0
+ mov r0, #0
+ str r0, [sp, #8]
+ b _0223A64C
+_0223A5E4:
+ ldr r0, [sp]
+ mov r1, #0x11
+ ldrsb r1, [r0, r1]
+ mov r0, #4
+ sub r1, r0, r1
+ ldr r0, _0223A710 ; =0x02245F84
+ ldrsb r1, [r0, r1]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ bmi _0223A646
+ lsl r1, r0, #6
+ mov r0, ip
+ add r3, r0, r1
+ ldr r0, [sp]
+ mov r5, #0
+ ldrb r1, [r0, #0x12]
+ mov r0, #0xb
+ mov r7, #0x3f
+ sub r0, r0, r1
+ lsl r1, r0, #1
+ ldr r0, _0223A714 ; =0x02245F8C
+ str r5, [sp, #4]
+ ldrh r1, [r0, r1]
+ ldr r0, [sp, #8]
+ lsl r7, r7, #0xa
+ lsl r0, r0, #5
+ add r6, r1, r0
+ b _0223A640
+_0223A61C:
+ mov r4, #0
+ b _0223A634
+_0223A620:
+ add r0, r5, r4
+ lsl r2, r0, #1
+ ldrh r0, [r3, r2]
+ and r0, r7
+ strh r0, [r3, r2]
+ ldrh r1, [r3, r2]
+ add r0, r6, r4
+ add r4, r4, #1
+ orr r0, r1
+ strh r0, [r3, r2]
+_0223A634:
+ cmp r4, #8
+ blt _0223A620
+ ldr r0, [sp, #4]
+ add r5, #8
+ add r0, r0, #1
+ str r0, [sp, #4]
+_0223A640:
+ ldr r0, [sp, #4]
+ cmp r0, #4
+ blt _0223A61C
+_0223A646:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+_0223A64C:
+ ldr r0, [sp, #8]
+ cmp r0, #4
+ blt _0223A5E4
+ ldr r0, [sp]
+ mov r1, #0x11
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ ble _0223A6AE
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0
+ bne _0223A6AE
+ mov r0, #5
+ sub r1, r0, r1
+ ldr r0, _0223A710 ; =0x02245F84
+ mov r7, #0x3f
+ ldrsb r0, [r0, r1]
+ lsl r7, r7, #0xa
+ mov r6, #0x1d
+ add r0, r0, #3
+ lsl r1, r0, #6
+ mov r0, ip
+ add r3, r0, r1
+ mov r0, #0
+ mov r1, #2
+ str r0, [sp, #4]
+ lsl r1, r1, #8
+ b _0223A6A8
+_0223A682:
+ ldr r0, [sp, #4]
+ ldr r5, [sp, #4]
+ lsl r4, r0, #1
+ ldrh r0, [r3, r4]
+ lsl r5, r5, #0x1d
+ and r0, r7
+ strh r0, [r3, r4]
+ ldr r0, [sp, #4]
+ ldrh r2, [r3, r4]
+ lsr r0, r0, #0x1f
+ sub r5, r5, r0
+ ror r5, r6
+ add r0, r0, r5
+ add r0, r0, r1
+ orr r0, r2
+ strh r0, [r3, r4]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+_0223A6A8:
+ ldr r0, [sp, #4]
+ cmp r0, #0x20
+ blt _0223A682
+_0223A6AE:
+ ldr r0, [sp]
+ mov r1, #2
+ ldr r0, [r0]
+ ldr r0, [r0, #0x30]
+ bl FUN_0201AC68
+ ldr r0, [sp]
+ ldrb r0, [r0, #0x12]
+ add r1, r0, #1
+ ldr r0, [sp]
+ strb r1, [r0, #0x12]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0xc
+ blo _0223A70C
+ ldr r1, [sp]
+ mov r0, #0
+ mov r2, #0x11
+ strb r0, [r1, #0x12]
+ ldrsb r1, [r1, r2]
+ add r3, r1, #1
+ ldr r1, [sp]
+ strb r3, [r1, #0x11]
+ strb r0, [r1, #0x14]
+ add r0, r1, #0
+ ldrsb r0, [r0, r2]
+ cmp r0, #5
+ blo _0223A70C
+ add r0, r1, #0
+ ldrb r0, [r0, #0x10]
+ add r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_0223A6F2:
+ add r0, r1, #0
+ mov r2, #0
+ ldr r0, [r0, #0xc]
+ add r1, r1, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ ldr r0, [sp]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_0223A70C:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223A710: .word 0x02245F84
+_0223A714: .word 0x02245F8C
+
+ thumb_func_start MOD12_0223A718
+MOD12_0223A718: ; 0x0223A718
+ push {r3, lr}
+ mov r1, #0x12
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223A72C
+MOD12_0223A72C: ; 0x0223A72C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x16
+ mov r1, #0x1c
+ add r5, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x1c
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _0223A770 ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, [sp]
+ str r6, [r4, #0xc]
+ ldrb r0, [r0]
+ strb r0, [r4, #0x11]
+ ldr r0, _0223A774 ; =MOD12_0223A778
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223A770: .word 0x00007530
+_0223A774: .word MOD12_0223A778
+
+ thumb_func_start MOD12_0223A778
+MOD12_0223A778: ; 0x0223A778
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #0
+ beq _0223A78A
+ cmp r0, #1
+ beq _0223A7B4
+ b _0223A7F8
+_0223A78A:
+ ldrb r1, [r4, #0x11]
+ ldr r0, [r4]
+ bl MOD12_02239A10
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0, #0x24]
+ bl FUN_0200782C
+ lsl r0, r0, #8
+ str r0, [r4, #0x14]
+ ldr r0, [r4]
+ mov r1, #1
+ ldr r0, [r0, #0x24]
+ bl FUN_0200782C
+ lsl r0, r0, #8
+ str r0, [r4, #0x18]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+_0223A7B4:
+ mov r0, #1
+ ldr r1, [r4, #0x14]
+ lsl r0, r0, #0xa
+ sub r1, r1, r0
+ mov r0, #0xe6
+ lsl r0, r0, #8
+ str r1, [r4, #0x14]
+ cmp r1, r0
+ bgt _0223A7CE
+ str r0, [r4, #0x14]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+_0223A7CE:
+ ldr r3, [r4, #0x14]
+ ldr r0, [r4]
+ asr r2, r3, #7
+ lsr r2, r2, #0x18
+ add r2, r3, r2
+ ldr r0, [r0, #0x24]
+ mov r1, #0
+ asr r2, r2, #8
+ bl FUN_02007558
+ ldr r3, [r4, #0x18]
+ ldr r0, [r4]
+ asr r2, r3, #7
+ lsr r2, r2, #0x18
+ add r2, r3, r2
+ ldr r0, [r0, #0x24]
+ mov r1, #1
+ asr r2, r2, #8
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_0223A7F8:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223A814
+MOD12_0223A814: ; 0x0223A814
+ push {r3, lr}
+ mov r1, #0x12
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223A828
+MOD12_0223A828: ; 0x0223A828
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x16
+ mov r1, #0x1c
+ add r5, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x1c
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _0223A86C ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, [sp]
+ str r6, [r4, #0xc]
+ ldrb r0, [r0]
+ strb r0, [r4, #0x11]
+ ldr r0, _0223A870 ; =MOD12_0223A874
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223A86C: .word 0x00007530
+_0223A870: .word MOD12_0223A874
+
+ thumb_func_start MOD12_0223A874
+MOD12_0223A874: ; 0x0223A874
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #0
+ beq _0223A886
+ cmp r0, #1
+ beq _0223A8B4
+ b _0223A8F8
+_0223A886:
+ ldr r0, [r4]
+ ldr r0, [r0, #0x24]
+ cmp r0, #0
+ bne _0223A892
+ bl ErrorHandling
+_0223A892:
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0, #0x24]
+ bl FUN_0200782C
+ lsl r0, r0, #8
+ str r0, [r4, #0x14]
+ ldr r0, [r4]
+ mov r1, #1
+ ldr r0, [r0, #0x24]
+ bl FUN_0200782C
+ lsl r0, r0, #8
+ str r0, [r4, #0x18]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+_0223A8B4:
+ mov r0, #1
+ ldr r1, [r4, #0x14]
+ lsl r0, r0, #0xa
+ add r1, r1, r0
+ mov r0, #5
+ lsl r0, r0, #0xe
+ str r1, [r4, #0x14]
+ cmp r1, r0
+ blt _0223A8CE
+ str r0, [r4, #0x14]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+_0223A8CE:
+ ldr r3, [r4, #0x14]
+ ldr r0, [r4]
+ asr r2, r3, #7
+ lsr r2, r2, #0x18
+ add r2, r3, r2
+ ldr r0, [r0, #0x24]
+ mov r1, #0
+ asr r2, r2, #8
+ bl FUN_02007558
+ ldr r3, [r4, #0x18]
+ ldr r0, [r4]
+ asr r2, r3, #7
+ lsr r2, r2, #0x18
+ add r2, r3, r2
+ ldr r0, [r0, #0x24]
+ mov r1, #1
+ asr r2, r2, #8
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_0223A8F8:
+ ldr r0, [r4]
+ bl MOD12_02239A58
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD12_0223A918
+MOD12_0223A918: ; 0x0223A918
+ push {r3, lr}
+ mov r1, #0x12
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223A92C
+MOD12_0223A92C: ; 0x0223A92C
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r6, r1, #0
+ mov r0, #0x16
+ mov r1, #0x58
+ add r5, r2, #0
+ add r7, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x58
+ bl MI_CpuFill8
+ str r6, [r4]
+ ldrh r0, [r5]
+ ldr r2, _0223A988 ; =0x00007530
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, [sp]
+ str r0, [r4, #0xc]
+ ldrb r0, [r7]
+ strb r0, [r4, #0x11]
+ str r6, [r4, #0x2c]
+ str r6, [r4, #0x38]
+ add r0, r4, #0
+ ldrb r1, [r7]
+ add r0, #0x46
+ strb r1, [r0]
+ str r6, [r4, #0x48]
+ ldrb r0, [r7]
+ ldr r1, [r6, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ str r0, [r4, #0x24]
+ ldr r0, _0223A98C ; =MOD12_0223A990
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223A988: .word 0x00007530
+_0223A98C: .word MOD12_0223A990
+
+ thumb_func_start MOD12_0223A990
+MOD12_0223A990: ; 0x0223A990
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r5, #0x10]
+ cmp r0, #0
+ beq _0223A9A8
+ cmp r0, #1
+ beq _0223AA32
+ cmp r0, #2
+ beq _0223AA5C
+ b _0223AA8A
+_0223A9A8:
+ ldr r0, _0223AAA8 ; =MOD12_0223AB54
+ ldr r2, _0223AAAC ; =0x0000753A
+ add r1, #0x2c
+ bl FUN_0200CA44
+ add r1, r5, #0
+ ldr r0, _0223AAB0 ; =MOD12_0223ACFC
+ ldr r2, _0223AAAC ; =0x0000753A
+ add r1, #0x48
+ bl FUN_0200CA44
+ ldr r0, [r5, #0x38]
+ ldr r1, [r0, #0xc]
+ add r0, r5, #0
+ add r0, #0x46
+ ldrb r0, [r0]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #2
+ bl FUN_02068E14
+ add r4, r0, #0
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #0x10
+ bl MI_CpuFill8
+ mov r0, #0x16
+ str r0, [sp, #0xc]
+ mov r0, #0x80
+ add r4, #0x40
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ ldr r1, [r5, #0x38]
+ add r0, sp, #0
+ ldr r2, [r1]
+ add r1, r5, #0
+ add r1, #0x46
+ ldrb r1, [r1]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ add r1, #0xf8
+ ldr r1, [r1]
+ bl FUN_021DD4F4
+ add r1, r5, #0
+ add r1, #0x46
+ ldrb r1, [r1]
+ ldr r2, [r5, #0x38]
+ lsl r1, r1, #4
+ add r2, r2, r1
+ mov r1, #0xf2
+ lsl r1, r1, #4
+ str r0, [r2, r1]
+ add r0, r5, #0
+ add r0, #0x46
+ ldrb r0, [r0]
+ ldr r2, [r5, #0x38]
+ lsl r0, r0, #4
+ add r0, r2, r0
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl FUN_021DD594
+ ldrb r0, [r5, #0x10]
+ add sp, #0x10
+ add r0, r0, #1
+ strb r0, [r5, #0x10]
+ pop {r3, r4, r5, pc}
+_0223AA32:
+ add r0, r5, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _0223AAA2
+ ldr r0, _0223AAB4 ; =MOD12_0223AAF8
+ ldr r2, _0223AAAC ; =0x0000753A
+ add r1, #0x14
+ bl FUN_0200CA44
+ add r1, r5, #0
+ ldr r0, _0223AAB8 ; =MOD12_0223ABD4
+ ldr r2, _0223AAAC ; =0x0000753A
+ add r1, #0x38
+ bl FUN_0200CA44
+ ldrb r0, [r5, #0x10]
+ add sp, #0x10
+ add r0, r0, #1
+ strb r0, [r5, #0x10]
+ pop {r3, r4, r5, pc}
+_0223AA5C:
+ add r0, r5, #0
+ add r0, #0x29
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _0223AAA2
+ add r0, r5, #0
+ add r0, #0x45
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _0223AAA2
+ add r0, r5, #0
+ add r0, #0x55
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _0223AAA2
+ ldr r0, _0223AABC ; =0x000006E5
+ bl FUN_020054C8
+ ldrb r0, [r5, #0x10]
+ add sp, #0x10
+ add r0, r0, #1
+ strb r0, [r5, #0x10]
+ pop {r3, r4, r5, pc}
+_0223AA8A:
+ mov r2, #0
+ ldr r0, [r5, #0xc]
+ add r1, r5, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_0223AAA2:
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_0223AAA8: .word MOD12_0223AB54
+_0223AAAC: .word 0x0000753A
+_0223AAB0: .word MOD12_0223ACFC
+_0223AAB4: .word MOD12_0223AAF8
+_0223AAB8: .word MOD12_0223ABD4
+_0223AABC: .word 0x000006E5
+
+ thumb_func_start MOD12_0223AAC0
+MOD12_0223AAC0: ; 0x0223AAC0
+ push {r3}
+ sub sp, #0xc
+ add r2, sp, #0
+ mov r1, #0
+ str r1, [r2]
+ str r1, [r2, #4]
+ str r1, [r2, #8]
+ ldr r1, [r0, #0x20]
+ ldr r2, [sp]
+ ldr r1, [r1]
+ ldr r1, [r1, #4]
+ add r1, r2, r1
+ str r1, [r0, #0x28]
+ ldr r1, [r0, #0x20]
+ ldr r2, [sp, #4]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r1, r2, r1
+ str r1, [r0, #0x2c]
+ ldr r1, [r0, #0x20]
+ ldr r2, [sp, #8]
+ ldr r1, [r1]
+ ldr r1, [r1, #0xc]
+ add r1, r2, r1
+ str r1, [r0, #0x30]
+ add sp, #0xc
+ pop {r3}
+ bx lr
+
+ thumb_func_start MOD12_0223AAF8
+MOD12_0223AAF8: ; 0x0223AAF8
+ push {r4, lr}
+ add r4, r1, #0
+ ldrb r2, [r4, #0x14]
+ cmp r2, #0
+ beq _0223AB08
+ cmp r2, #1
+ beq _0223AB2C
+ b _0223AB44
+_0223AB08:
+ mov r0, #0
+ str r0, [r4]
+ ldr r0, [r4, #0x10]
+ str r0, [r4, #8]
+ mov r0, #0x16
+ bl MOD08_02228218
+ str r0, [r4, #0xc]
+ bl MOD08_02228524
+ ldr r0, [r4, #0xc]
+ ldr r1, _0223AB50 ; =MOD12_0223AAC0
+ bl MOD08_02228574
+ ldrb r0, [r4, #0x14]
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+ pop {r4, pc}
+_0223AB2C:
+ ldr r0, [r4, #0xc]
+ bl MOD08_022285B4
+ cmp r0, #0
+ bne _0223AB4C
+ ldr r0, [r4, #0xc]
+ bl MOD08_02228618
+ ldrb r0, [r4, #0x14]
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+ pop {r4, pc}
+_0223AB44:
+ mov r1, #1
+ strb r1, [r4, #0x15]
+ bl FUN_0200CAB4
+_0223AB4C:
+ pop {r4, pc}
+ nop
+_0223AB50: .word MOD12_0223AAC0
+
+ thumb_func_start MOD12_0223AB54
+MOD12_0223AB54: ; 0x0223AB54
+ push {r3, r4, r5, lr}
+ sub sp, #0x28
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #8]
+ cmp r0, #0
+ beq _0223AB6C
+ cmp r0, #1
+ beq _0223AB86
+ cmp r0, #2
+ beq _0223ABB6
+ b _0223ABC0
+_0223AB6C:
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #0xa]
+ cmp r0, #1
+ blo _0223ABD0
+ mov r0, #0
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #8]
+ add sp, #0x28
+ add r0, r0, #1
+ strb r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_0223AB86:
+ mov r0, #0xe
+ str r0, [sp]
+ mov r0, #0x16
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ ldr r0, [r0, #0x28]
+ str r0, [sp, #0x1c]
+ ldr r0, [r4]
+ ldr r0, [r0, #0x50]
+ str r0, [sp, #0x20]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ add r0, sp, #0
+ bl MOD08_02229918
+ str r0, [r4, #4]
+ ldrb r0, [r4, #8]
+ add sp, #0x28
+ add r0, r0, #1
+ strb r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_0223ABB6:
+ ldr r0, [r4, #4]
+ bl MOD08_022299E8
+ cmp r0, #1
+ beq _0223ABD0
+_0223ABC0:
+ ldr r0, [r4, #4]
+ bl MOD08_02229A2C
+ mov r0, #1
+ strb r0, [r4, #9]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0223ABD0:
+ add sp, #0x28
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD12_0223ABD4
+MOD12_0223ABD4: ; 0x0223ABD4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ ldr r1, [r0, #0xc]
+ ldrb r0, [r4, #0xe]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #2
+ bl FUN_02068E14
+ add r6, r0, #0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0223ABFA
+ cmp r0, #1
+ beq _0223AC4A
+ b _0223ACE8
+_0223ABFA:
+ mov r1, #0
+ str r1, [r4, #4]
+ str r1, [r4, #8]
+ ldrb r0, [r4, #0xe]
+ mov r3, #0xf2
+ ldr r2, [r4]
+ lsl r0, r0, #4
+ add r0, r2, r0
+ lsl r3, r3, #4
+ ldr r0, [r0, r3]
+ add r2, r1, #0
+ add r3, #0xe0
+ bl FUN_021DD60C
+ ldrb r1, [r4, #0xe]
+ ldr r2, [r4]
+ mov r0, #0x80
+ lsl r1, r1, #4
+ add r2, r2, r1
+ ldr r1, _0223ACF8 ; =0x00000F24
+ str r0, [r2, r1]
+ ldrb r2, [r4, #0xe]
+ ldr r3, [r4]
+ mov r0, #0x68
+ lsl r2, r2, #4
+ add r3, r3, r2
+ add r2, r1, #4
+ str r0, [r3, r2]
+ ldrb r0, [r4, #0xe]
+ ldr r2, [r4]
+ lsl r0, r0, #4
+ add r2, r2, r0
+ sub r0, r1, #4
+ ldr r0, [r2, r0]
+ mov r1, #1
+ bl FUN_021DD594
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_0223AC4A:
+ mov r0, #2
+ ldr r1, [r4, #4]
+ lsl r0, r0, #8
+ add r1, r1, r0
+ str r1, [r4, #4]
+ ldr r1, [r4, #8]
+ add r1, r1, r0
+ str r1, [r4, #8]
+ ldr r2, [r4, #4]
+ lsl r1, r0, #3
+ cmp r2, r1
+ blt _0223AC68
+ lsl r0, r0, #3
+ str r0, [r4, #4]
+ str r0, [r4, #8]
+_0223AC68:
+ ldrb r0, [r4, #0xe]
+ mov r3, #0xf2
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ lsl r3, r3, #4
+ ldr r0, [r0, r3]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #8]
+ add r3, #0xe0
+ bl FUN_021DD60C
+ ldrb r0, [r4, #0xe]
+ mov r2, #0xf2
+ lsl r2, r2, #4
+ lsl r1, r0, #4
+ ldr r0, [r4]
+ add r3, r0, r1
+ add r1, r2, #4
+ ldr r0, [r3, r2]
+ add r2, #8
+ ldr r1, [r3, r1]
+ ldr r2, [r3, r2]
+ add r3, r6, #0
+ bl FUN_021DD678
+ mov r0, #1
+ ldr r1, [r4, #4]
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ blt _0223ACF2
+ ldr r0, [r4]
+ mov r2, #0
+ ldr r1, [r0, #0xc]
+ ldrb r0, [r4, #0xe]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #5
+ bl FUN_020671BC
+ add r2, r0, #0
+ mov r0, #0x7f
+ str r0, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #0x16
+ str r3, [sp, #8]
+ ldr r3, [r4]
+ lsl r2, r2, #0x10
+ ldr r5, [r3]
+ ldrb r3, [r4, #0xe]
+ add r0, #0xdd
+ lsr r2, r2, #0x10
+ lsl r3, r3, #2
+ add r3, r5, r3
+ ldr r0, [r3, r0]
+ add r3, r1, #0
+ bl FUN_02069FB0
+ ldrb r0, [r4, #0xc]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, pc}
+_0223ACE8:
+ mov r0, #1
+ strb r0, [r4, #0xd]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0223ACF2:
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0223ACF8: .word 0x00000F24
+
+ thumb_func_start MOD12_0223ACFC
+MOD12_0223ACFC: ; 0x0223ACFC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #4
+ bls _0223AD0A
+ b _0223AE32
+_0223AD0A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223AD16: ; jump table
+ .short _0223AD20 - _0223AD16 - 2 ; case 0
+ .short _0223AD46 - _0223AD16 - 2 ; case 1
+ .short _0223AD68 - _0223AD16 - 2 ; case 2
+ .short _0223ADD6 - _0223AD16 - 2 ; case 3
+ .short _0223ADEE - _0223AD16 - 2 ; case 4
+_0223AD20:
+ ldr r0, [r4]
+ ldr r0, [r0, #0x24]
+ cmp r0, #0
+ bne _0223AD2C
+ bl ErrorHandling
+_0223AD2C:
+ ldrb r0, [r4, #0xf]
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ ldrb r0, [r4, #0xf]
+ cmp r0, #1
+ bhi _0223AD3A
+ b _0223AE42
+_0223AD3A:
+ mov r0, #0
+ strb r0, [r4, #0xf]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223AD46:
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0, #0x24]
+ bl FUN_0200782C
+ lsl r0, r0, #8
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ mov r1, #1
+ ldr r0, [r0, #0x24]
+ bl FUN_0200782C
+ lsl r0, r0, #8
+ str r0, [r4, #8]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_0223AD68:
+ ldrb r1, [r4, #0xe]
+ mov r0, #1
+ tst r0, r1
+ ldr r0, [r4]
+ beq _0223AD9A
+ ldr r3, [r4, #4]
+ ldr r0, [r0, #0x24]
+ asr r2, r3, #7
+ lsr r2, r2, #0x18
+ add r2, r3, r2
+ mov r1, #0
+ asr r2, r2, #8
+ bl FUN_02007558
+ ldr r3, [r4, #8]
+ ldr r0, [r4]
+ asr r2, r3, #7
+ lsr r2, r2, #0x18
+ add r2, r3, r2
+ ldr r0, [r0, #0x24]
+ mov r1, #1
+ asr r2, r2, #8
+ bl FUN_02007558
+ b _0223ADC2
+_0223AD9A:
+ ldr r3, [r4, #4]
+ ldr r0, [r0, #0x24]
+ asr r2, r3, #7
+ lsr r2, r2, #0x18
+ add r2, r3, r2
+ mov r1, #0
+ asr r2, r2, #8
+ bl FUN_02007558
+ ldr r3, [r4, #8]
+ ldr r0, [r4]
+ asr r2, r3, #7
+ lsr r2, r2, #0x18
+ add r2, r3, r2
+ asr r2, r2, #8
+ ldr r0, [r0, #0x24]
+ mov r1, #1
+ sub r2, r2, #3
+ bl FUN_02007558
+_0223ADC2:
+ ldrb r0, [r4, #0xe]
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ ldrb r0, [r4, #0xe]
+ cmp r0, #3
+ blo _0223AE42
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223ADD6:
+ ldrb r0, [r4, #0xf]
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ ldrb r0, [r4, #0xf]
+ cmp r0, #7
+ blo _0223AE42
+ mov r0, #0
+ strb r0, [r4, #0xf]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223ADEE:
+ mov r0, #1
+ ldr r1, [r4, #4]
+ lsl r0, r0, #0xa
+ add r1, r1, r0
+ mov r0, #5
+ lsl r0, r0, #0xe
+ str r1, [r4, #4]
+ cmp r1, r0
+ blt _0223AE08
+ str r0, [r4, #4]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_0223AE08:
+ ldr r3, [r4, #4]
+ ldr r0, [r4]
+ asr r2, r3, #7
+ lsr r2, r2, #0x18
+ add r2, r3, r2
+ ldr r0, [r0, #0x24]
+ mov r1, #0
+ asr r2, r2, #8
+ bl FUN_02007558
+ ldr r3, [r4, #8]
+ ldr r0, [r4]
+ asr r2, r3, #7
+ lsr r2, r2, #0x18
+ add r2, r3, r2
+ ldr r0, [r0, #0x24]
+ mov r1, #1
+ asr r2, r2, #8
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_0223AE32:
+ ldr r0, [r4]
+ bl MOD12_02239A58
+ mov r0, #1
+ strb r0, [r4, #0xd]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0223AE42:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD12_0223AE44
+MOD12_0223AE44: ; 0x0223AE44
+ push {r3, lr}
+ mov r1, #0x12
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223AE58
+MOD12_0223AE58: ; 0x0223AE58
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #0x16
+ mov r1, #0x1c
+ add r6, r2, #0
+ add r5, r3, #0
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x1c
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [sp]
+ ldr r2, _0223AEB8 ; =0x00007530
+ str r0, [r4]
+ ldrh r0, [r6]
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r6, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r6, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r6, #6]
+ strh r0, [r4, #0xa]
+ str r7, [r4, #0xc]
+ ldrb r0, [r5]
+ strb r0, [r4, #0x11]
+ ldrb r0, [r5, #3]
+ strb r0, [r4, #0x13]
+ ldrb r0, [r5, #4]
+ strb r0, [r4, #0x14]
+ ldrb r0, [r5, #5]
+ strb r0, [r4, #0x15]
+ ldrb r0, [r5, #6]
+ strb r0, [r4, #0x16]
+ ldrb r0, [r5, #7]
+ strb r0, [r4, #0x17]
+ ldrb r0, [r5, #9]
+ strb r0, [r4, #0x19]
+ ldrb r0, [r5, #8]
+ strb r0, [r4, #0x18]
+ ldr r0, _0223AEBC ; =MOD12_0223AEC0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223AEB8: .word 0x00007530
+_0223AEBC: .word MOD12_0223AEC0
+
+ thumb_func_start MOD12_0223AEC0
+MOD12_0223AEC0: ; 0x0223AEC0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #0
+ beq _0223AED6
+ cmp r0, #1
+ beq _0223AF0E
+ cmp r0, #2
+ beq _0223AF20
+ b _0223AF58
+_0223AED6:
+ ldrb r0, [r4, #0x17]
+ cmp r0, #0
+ beq _0223AF08
+ ldr r0, [r4]
+ mov r1, #1
+ add r0, #0x34
+ add r2, r1, #0
+ mov r3, #0xe
+ bl FUN_0200D0BC
+ ldr r0, [r4]
+ mov r1, #1
+ ldr r0, [r0, #0x30]
+ bl FUN_0201AC68
+ add r2, r4, #0
+ ldrb r1, [r4, #0x17]
+ ldr r0, [r4]
+ add r2, #0x13
+ bl MOD12_02239B48
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223AF08:
+ mov r0, #0x64
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223AF0E:
+ ldr r0, [r4]
+ bl MOD12_02239B7C
+ cmp r0, #0
+ bne _0223AF70
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223AF20:
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+ ldrb r0, [r4, #0x19]
+ cmp r0, #1
+ bne _0223AF34
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223AF34:
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x18]
+ cmp r1, r0
+ blo _0223AF70
+ ldr r0, [r4]
+ mov r1, #1
+ add r0, #0x34
+ bl FUN_0200D0E0
+ ldr r0, [r4]
+ mov r1, #1
+ ldr r0, [r0, #0x30]
+ bl FUN_0201AC68
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223AF58:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0223AF70:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223AF74
+MOD12_0223AF74: ; 0x0223AF74
+ push {r3, lr}
+ mov r1, #0x12
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223AF88
+MOD12_0223AF88: ; 0x0223AF88
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #0x16
+ mov r1, #0x18
+ add r5, r2, #0
+ add r6, r3, #0
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x18
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [sp]
+ ldr r2, _0223AFD8 ; =0x00007530
+ str r0, [r4]
+ ldrh r0, [r5]
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ str r7, [r4, #0xc]
+ mov r0, #0xa
+ ldrsb r0, [r6, r0]
+ strb r0, [r4, #0x11]
+ mov r0, #0xb
+ ldrsb r0, [r6, r0]
+ strb r0, [r4, #0x12]
+ mov r0, #0xc
+ ldrsb r0, [r6, r0]
+ strb r0, [r4, #0x13]
+ ldr r0, _0223AFDC ; =MOD12_0223AFE0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223AFD8: .word 0x00007530
+_0223AFDC: .word MOD12_0223AFE0
+
+ thumb_func_start MOD12_0223AFE0
+MOD12_0223AFE0: ; 0x0223AFE0
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #0
+ beq _0223AFF4
+ cmp r0, #1
+ beq _0223B06C
+ b _0223B0A8
+_0223AFF4:
+ ldr r0, [r4]
+ ldr r1, [r0]
+ ldr r0, _0223B0C4 ; =0x00000171
+ ldrb r0, [r1, r0]
+ cmp r0, #1
+ bne _0223B04E
+ ldr r0, _0223B0C8 ; =0x04000048
+ ldr r1, _0223B0CC ; =0xFFFFC0FF
+ ldrh r2, [r0]
+ and r2, r1
+ mov r1, #0x1f
+ lsl r1, r1, #8
+ orr r1, r2
+ strh r1, [r0]
+ ldrh r2, [r0, #2]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x1f
+ orr r2, r1
+ mov r1, #0x20
+ orr r2, r1
+ strh r2, [r0, #2]
+ lsl r3, r1, #0x15
+ ldr r2, [r3]
+ ldr r0, _0223B0D0 ; =0xFFFF1FFF
+ and r2, r0
+ lsl r0, r1, #9
+ orr r0, r2
+ str r0, [r3]
+ ldr r1, [r4]
+ ldr r0, _0223B0D4 ; =0x00000F64
+ mov r2, #0xf0
+ strb r2, [r1, r0]
+ ldr r2, [r4]
+ mov r3, #0
+ add r1, r0, #1
+ strb r3, [r2, r1]
+ add r1, r0, #2
+ ldr r2, [r4]
+ mov r3, #0xff
+ strb r3, [r2, r1]
+ ldr r1, [r4]
+ mov r2, #0x10
+ add r0, r0, #3
+ strb r2, [r1, r0]
+_0223B04E:
+ mov r0, #1
+ str r0, [sp]
+ mov r1, #0x12
+ mov r2, #0x11
+ ldrb r0, [r4, #0x13]
+ ldrsb r1, [r4, r1]
+ ldrsb r2, [r4, r2]
+ mov r3, #0x3d
+ bl FUN_0200A208
+ ldrb r0, [r4, #0x10]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223B06C:
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #1
+ bne _0223B0C0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xd0
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r2, r1, #0
+ ldr r0, [r0, #0x50]
+ add r3, r1, #0
+ bl FUN_02003914
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0xe0
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ mov r1, #2
+ ldr r0, [r0, #0x50]
+ add r3, r2, #0
+ bl FUN_02003914
+ ldrb r0, [r4, #0x10]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223B0A8:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0223B0C0:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223B0C4: .word 0x00000171
+_0223B0C8: .word 0x04000048
+_0223B0CC: .word 0xFFFFC0FF
+_0223B0D0: .word 0xFFFF1FFF
+_0223B0D4: .word 0x00000F64
+
+ thumb_func_start MOD12_0223B0D8
+MOD12_0223B0D8: ; 0x0223B0D8
+ push {r3, lr}
+ lsl r2, r2, #0x10
+ mov r3, #0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223B0EC
+MOD12_0223B0EC: ; 0x0223B0EC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x16
+ mov r1, #0x1c
+ add r5, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x1c
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _0223B128 ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, _0223B12C ; =MOD12_0223B130
+ str r6, [r4, #0xc]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223B128: .word 0x00007530
+_0223B12C: .word MOD12_0223B130
+
+ thumb_func_start MOD12_0223B130
+MOD12_0223B130: ; 0x0223B130
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r1, #0x18]
+ str r1, [sp]
+ add r1, r0, #1
+ ldr r0, [sp]
+ cmp r1, #0x1e
+ str r1, [r0, #0x18]
+ bne _0223B14C
+ mov r1, #0x1e
+ strb r1, [r0, #0x13]
+ mov r1, #1
+ strb r1, [r0, #0x15]
+_0223B14C:
+ ldr r0, [sp]
+ ldr r0, [r0]
+ ldr r1, [r0]
+ ldr r0, _0223B344 ; =0x00000171
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _0223B186
+ ldr r0, [sp]
+ ldr r0, [r0, #0x18]
+ cmp r0, #0x1e
+ bge _0223B186
+ ldr r0, _0223B348 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ bne _0223B174
+ ldr r0, _0223B34C ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _0223B186
+_0223B174:
+ ldr r0, [sp]
+ mov r1, #0x1e
+ str r1, [r0, #0x18]
+ ldr r1, [sp]
+ mov r0, #0
+ strb r0, [r1, #0x13]
+ mov r2, #1
+ strb r2, [r1, #0x15]
+ b _0223B194
+_0223B186:
+ ldr r0, [sp]
+ ldr r0, [r0, #0x18]
+ cmp r0, #0x1e
+ ble _0223B192
+ mov r0, #0
+ b _0223B194
+_0223B192:
+ mov r0, #1
+_0223B194:
+ ldr r1, [sp]
+ ldrb r1, [r1, #0x10]
+ cmp r1, #0
+ beq _0223B19E
+ b _0223B316
+_0223B19E:
+ ldr r1, [sp]
+ mov r2, #0x14
+ ldrsb r1, [r1, r2]
+ cmp r1, #0
+ ble _0223B1B2
+ ldr r0, [sp]
+ sub r1, r1, #1
+ strb r1, [r0, #0x14]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0223B1B2:
+ ldr r1, [sp]
+ mov r2, #0x13
+ ldrsb r1, [r1, r2]
+ cmp r1, #0
+ ble _0223B1C6
+ ldr r0, [sp]
+ sub r1, r1, #1
+ strb r1, [r0, #0x13]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0223B1C6:
+ ldr r1, [sp]
+ strb r0, [r1, #0x13]
+ add r0, r1, #0
+ ldrb r0, [r0, #0x15]
+ cmp r0, #1
+ bne _0223B1DE
+ ldr r0, _0223B350 ; =0x000006ED
+ bl FUN_020054C8
+ ldr r0, [sp]
+ mov r1, #0
+ strb r1, [r0, #0x15]
+_0223B1DE:
+ ldr r0, [sp]
+ mov r1, #2
+ ldr r0, [r0]
+ ldr r0, [r0, #0x30]
+ bl FUN_0201886C
+ mov ip, r0
+ mov r0, #0
+ str r0, [sp, #8]
+ b _0223B252
+_0223B1F2:
+ ldr r0, [sp]
+ mov r1, #0x11
+ ldrsb r1, [r0, r1]
+ ldr r0, _0223B354 ; =0x02245F84
+ ldrsb r1, [r0, r1]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ bmi _0223B24C
+ lsl r1, r0, #6
+ mov r0, ip
+ add r3, r0, r1
+ ldr r0, [sp]
+ mov r5, #0
+ ldrb r0, [r0, #0x12]
+ mov r7, #0x3f
+ str r5, [sp, #4]
+ lsl r1, r0, #1
+ ldr r0, _0223B358 ; =0x02245F8C
+ lsl r7, r7, #0xa
+ ldrh r1, [r0, r1]
+ ldr r0, [sp, #8]
+ lsl r0, r0, #5
+ add r6, r1, r0
+ b _0223B246
+_0223B222:
+ mov r4, #0
+ b _0223B23A
+_0223B226:
+ add r0, r5, r4
+ lsl r2, r0, #1
+ ldrh r0, [r3, r2]
+ and r0, r7
+ strh r0, [r3, r2]
+ ldrh r1, [r3, r2]
+ add r0, r6, r4
+ add r4, r4, #1
+ orr r0, r1
+ strh r0, [r3, r2]
+_0223B23A:
+ cmp r4, #8
+ blt _0223B226
+ ldr r0, [sp, #4]
+ add r5, #8
+ add r0, r0, #1
+ str r0, [sp, #4]
+_0223B246:
+ ldr r0, [sp, #4]
+ cmp r0, #4
+ blt _0223B222
+_0223B24C:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+_0223B252:
+ ldr r0, [sp, #8]
+ cmp r0, #4
+ blt _0223B1F2
+ ldr r0, [sp]
+ mov r1, #0x11
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ ble _0223B294
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0
+ bne _0223B294
+ ldr r0, _0223B354 ; =0x02245F84
+ sub r1, r1, #1
+ ldrsb r0, [r0, r1]
+ lsl r1, r0, #6
+ mov r0, ip
+ add r3, r0, r1
+ mov r0, #0
+ mov r1, #0x3f
+ str r0, [sp, #4]
+ lsl r1, r1, #0xa
+ b _0223B28E
+_0223B27E:
+ ldr r0, [sp, #4]
+ lsl r2, r0, #1
+ ldrh r0, [r3, r2]
+ and r0, r1
+ strh r0, [r3, r2]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+_0223B28E:
+ ldr r0, [sp, #4]
+ cmp r0, #0x20
+ blt _0223B27E
+_0223B294:
+ ldr r0, [sp]
+ mov r1, #2
+ ldr r0, [r0]
+ ldr r0, [r0, #0x30]
+ bl FUN_0201AC68
+ ldr r0, [sp]
+ mov r1, #0xc
+ ldrb r0, [r0, #0x12]
+ lsl r0, r0, #5
+ bl _u32_div_f
+ ldr r1, [sp]
+ mov r2, #0x11
+ ldrsb r2, [r1, r2]
+ ldr r1, _0223B354 ; =0x02245F84
+ ldrsb r1, [r1, r2]
+ add r1, r1, #4
+ lsl r1, r1, #3
+ sub r2, r1, r0
+ ldr r0, [sp]
+ ldr r1, _0223B35C ; =0x00000F63
+ ldr r0, [r0]
+ strb r2, [r0, r1]
+ ldr r0, [sp]
+ ldr r0, [r0]
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _0223B2DE
+ ldr r2, _0223B360 ; =0x04000050
+ mov r0, #0
+ strh r0, [r2]
+ sub r2, #0x50
+ ldr r1, [r2]
+ ldr r0, _0223B364 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+_0223B2DE:
+ ldr r0, [sp]
+ ldrb r0, [r0, #0x12]
+ add r1, r0, #1
+ ldr r0, [sp]
+ strb r1, [r0, #0x12]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0xc
+ blo _0223B340
+ ldr r1, [sp]
+ mov r0, #0
+ mov r2, #0x11
+ strb r0, [r1, #0x12]
+ ldrsb r1, [r1, r2]
+ add r3, r1, #1
+ ldr r1, [sp]
+ strb r3, [r1, #0x11]
+ strb r0, [r1, #0x14]
+ add r0, r1, #0
+ ldrsb r0, [r0, r2]
+ cmp r0, #5
+ blo _0223B340
+ add r0, r1, #0
+ ldrb r0, [r0, #0x10]
+ add r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_0223B316:
+ ldr r3, _0223B360 ; =0x04000050
+ mov r2, #0
+ strh r2, [r3]
+ sub r3, #0x50
+ ldr r1, [r3]
+ ldr r0, _0223B364 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r3]
+ ldr r0, [sp]
+ ldr r1, [sp]
+ ldr r0, [r0, #0xc]
+ add r1, r1, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ ldr r0, [sp]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_0223B340:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223B344: .word 0x00000171
+_0223B348: .word 0x021C48B8
+_0223B34C: .word 0x021C48F8
+_0223B350: .word 0x000006ED
+_0223B354: .word 0x02245F84
+_0223B358: .word 0x02245F8C
+_0223B35C: .word 0x00000F63
+_0223B360: .word 0x04000050
+_0223B364: .word 0xFFFF1FFF
+
+ thumb_func_start MOD12_0223B368
+MOD12_0223B368: ; 0x0223B368
+ push {r3, lr}
+ mov r1, #0x12
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223B37C
+MOD12_0223B37C: ; 0x0223B37C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x16
+ mov r1, #0x14
+ add r5, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x14
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, [sp]
+ str r6, [r4, #0xc]
+ ldrh r0, [r0, #0x10]
+ bl FUN_020054C8
+ ldr r0, _0223B3C0 ; =MOD12_0223B3C8
+ ldr r2, _0223B3C4 ; =0x00007530
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223B3C0: .word MOD12_0223B3C8
+_0223B3C4: .word 0x00007530
+
+ thumb_func_start MOD12_0223B3C8
+MOD12_0223B3C8: ; 0x0223B3C8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r1, [r4]
+ ldr r0, _0223B3F4 ; =0x000004F9
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _0223B3F0
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0223B3F0:
+ pop {r3, r4, r5, pc}
+ nop
+_0223B3F4: .word 0x000004F9
+
+ thumb_func_start MOD12_0223B3F8
+MOD12_0223B3F8: ; 0x0223B3F8
+ push {r4, lr}
+ mov r0, #0x17
+ mov r1, #0xf4
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0xf4
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ add r0, #0x96
+ strb r1, [r0]
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223B41C
+MOD12_0223B41C: ; 0x0223B41C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ ldr r6, _0223B470 ; =0x022460DC
+ add r5, r0, #0
+ add r7, r4, #0
+_0223B426:
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r2, r6, #0
+ add r3, r7, #0
+ bl FUN_02016C18
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ mov r2, #0
+ bl FUN_02018768
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ mov r2, #0
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r4, r4, #1
+ add r6, #0x1c
+ cmp r4, #4
+ blo _0223B426
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223B470: .word 0x022460DC
+
+ thumb_func_start MOD12_0223B474
+MOD12_0223B474: ; 0x0223B474
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_0223B47C:
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r6, #0
+ bl FUN_0201797C
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178A0
+ add r4, r4, #1
+ cmp r4, #4
+ blo _0223B47C
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD12_0223B49C
+MOD12_0223B49C: ; 0x0223B49C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ bl MOD12_0223B3F8
+ add r4, r0, #0
+ str r5, [r4]
+ str r6, [r4, #4]
+ mov r0, #6
+ mov r1, #0x17
+ bl FUN_02011744
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD12_0223B4F8
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD12_0223B4C0
+MOD12_0223B4C0: ; 0x0223B4C0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD12_0223B710
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD12_0223BE50
+ ldr r0, [r4, #0x18]
+ bl FUN_020117BC
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223B4E0
+MOD12_0223B4E0: ; 0x0223B4E0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD12_0223B940
+ add r0, r4, #0
+ bl MOD12_0223BA0C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD12_0223BE10
+ pop {r4, pc}
+
+ thumb_func_start MOD12_0223B4F8
+MOD12_0223B4F8: ; 0x0223B4F8
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ mov r1, #6
+ add r4, r0, #0
+ mov r0, #0x17
+ lsl r1, r1, #0xc
+ bl FUN_02016998
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ mov r1, #6
+ mov r0, #0x17
+ lsl r1, r1, #0xc
+ bl FUN_02016998
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+ mov r1, #0x1b
+ mov r0, #0x17
+ lsl r1, r1, #8
+ bl FUN_02016998
+ add r1, r4, #0
+ add r1, #0xd8
+ str r0, [r1]
+ mov r1, #2
+ mov r0, #0x17
+ lsl r1, r1, #0xa
+ bl FUN_02016998
+ add r1, r4, #0
+ add r1, #0xdc
+ str r0, [r1]
+ mov r1, #2
+ mov r0, #0x17
+ lsl r1, r1, #0xa
+ bl FUN_02016998
+ add r1, r4, #0
+ add r1, #0xe0
+ str r0, [r1]
+ mov r1, #2
+ mov r0, #0x17
+ lsl r1, r1, #0xa
+ bl FUN_02016998
+ add r1, r4, #0
+ add r1, #0xe4
+ str r0, [r1]
+ mov r1, #2
+ mov r0, #0x17
+ lsl r1, r1, #0xa
+ bl FUN_02016998
+ add r1, r4, #0
+ add r1, #0xe8
+ str r0, [r1]
+ mov r1, #2
+ mov r0, #0x17
+ lsl r1, r1, #8
+ bl FUN_02016998
+ add r1, r4, #0
+ add r1, #0xec
+ str r0, [r1]
+ mov r1, #2
+ mov r0, #0x17
+ lsl r1, r1, #8
+ bl FUN_02016998
+ add r1, r4, #0
+ add r1, #0xf0
+ str r0, [r1]
+ mov r0, #0x17
+ str r0, [sp]
+ mov r0, #0x2d
+ mov r1, #9
+ mov r2, #1
+ add r3, sp, #0xc
+ bl FUN_02006BB0
+ add r5, r0, #0
+ ldr r0, [sp, #0xc]
+ add r1, r4, #0
+ add r1, #0xd0
+ mov r2, #6
+ ldr r0, [r0, #0x14]
+ ldr r1, [r1]
+ lsl r2, r2, #0xc
+ bl MIi_CpuCopy32
+ add r0, r5, #0
+ bl FUN_02016A18
+ mov r0, #0x17
+ str r0, [sp]
+ mov r0, #0x2d
+ mov r1, #0x11
+ mov r2, #1
+ add r3, sp, #0xc
+ bl FUN_02006BB0
+ add r5, r0, #0
+ ldr r0, [sp, #0xc]
+ add r1, r4, #0
+ add r1, #0xd4
+ mov r2, #6
+ ldr r0, [r0, #0x14]
+ ldr r1, [r1]
+ lsl r2, r2, #0xc
+ bl MIi_CpuCopy32
+ add r0, r5, #0
+ bl FUN_02016A18
+ mov r0, #0x17
+ str r0, [sp]
+ mov r0, #0x2d
+ mov r1, #0xf
+ mov r2, #1
+ add r3, sp, #0xc
+ bl FUN_02006BB0
+ add r5, r0, #0
+ ldr r0, [sp, #0xc]
+ add r1, r4, #0
+ add r1, #0xd8
+ mov r2, #0x1b
+ ldr r0, [r0, #0x14]
+ ldr r1, [r1]
+ lsl r2, r2, #8
+ bl MIi_CpuCopy32
+ add r0, r5, #0
+ bl FUN_02016A18
+ mov r0, #0x17
+ str r0, [sp]
+ mov r0, #0x2d
+ mov r1, #7
+ mov r2, #1
+ add r3, sp, #8
+ bl FUN_02006BDC
+ add r1, r4, #0
+ add r5, r0, #0
+ ldr r0, [sp, #8]
+ add r1, #0xdc
+ mov r2, #2
+ ldr r1, [r1]
+ add r0, #0xc
+ lsl r2, r2, #0xa
+ bl MIi_CpuCopy32
+ add r0, r5, #0
+ bl FUN_02016A18
+ mov r0, #0x17
+ str r0, [sp]
+ mov r0, #0x2d
+ mov r1, #8
+ mov r2, #1
+ add r3, sp, #8
+ bl FUN_02006BDC
+ add r1, r4, #0
+ add r5, r0, #0
+ ldr r0, [sp, #8]
+ add r1, #0xe0
+ mov r2, #2
+ ldr r1, [r1]
+ add r0, #0xc
+ lsl r2, r2, #0xa
+ bl MIi_CpuCopy32
+ add r0, r5, #0
+ bl FUN_02016A18
+ mov r0, #0x17
+ str r0, [sp]
+ mov r0, #0x2d
+ mov r1, #0x10
+ mov r2, #1
+ add r3, sp, #8
+ bl FUN_02006BDC
+ add r1, r4, #0
+ add r5, r0, #0
+ ldr r0, [sp, #8]
+ add r1, #0xe4
+ mov r2, #2
+ ldr r1, [r1]
+ add r0, #0xc
+ lsl r2, r2, #0xa
+ bl MIi_CpuCopy32
+ add r0, r5, #0
+ bl FUN_02016A18
+ mov r0, #0x17
+ str r0, [sp]
+ mov r0, #0x2d
+ mov r1, #0x1b
+ mov r2, #1
+ add r3, sp, #8
+ bl FUN_02006BDC
+ add r1, r4, #0
+ add r5, r0, #0
+ ldr r0, [sp, #8]
+ add r1, #0xe8
+ mov r2, #2
+ ldr r1, [r1]
+ add r0, #0xc
+ lsl r2, r2, #0xa
+ bl MIi_CpuCopy32
+ add r0, r5, #0
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ mov r3, #2
+ str r0, [sp, #4]
+ mov r0, #0x2d
+ mov r1, #0x1e
+ mov r2, #0x17
+ lsl r3, r3, #8
+ bl FUN_0200317C
+ ldr r0, [r4, #4]
+ mov r2, #0x17
+ ldr r1, [r0]
+ ldr r0, _0223B70C ; =0x0000011F
+ mov r3, #0x20
+ ldrb r0, [r1, r0]
+ mov r1, #0x25
+ lsl r0, r0, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ add r0, #0x40
+ str r0, [sp, #4]
+ mov r0, #0x2d
+ bl FUN_0200317C
+ mov r0, #0
+ mov r1, #0x20
+ add r4, #0xf0
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r2, #0x17
+ str r0, [sp, #4]
+ mov r0, #0x2d
+ lsl r3, r1, #4
+ bl FUN_0200317C
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223B70C: .word 0x0000011F
+
+ thumb_func_start MOD12_0223B710
+MOD12_0223B710: ; 0x0223B710
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r6, #0
+ add r4, r5, #0
+_0223B718:
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl FUN_02016A18
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #3
+ blt _0223B718
+ mov r6, #0
+ add r4, r5, #0
+_0223B72E:
+ add r0, r4, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ bl FUN_02016A18
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _0223B72E
+ mov r4, #0
+_0223B742:
+ add r0, r5, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ bl FUN_02016A18
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #2
+ blt _0223B742
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223B758
+MOD12_0223B758: ; 0x0223B758
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0
+ str r3, [r7, #8]
+ ldr r0, [r7, #4]
+ str r2, [sp, #8]
+ ldr r0, [r0, #0x60]
+ str r1, [sp, #4]
+ str r0, [sp, #0xc]
+ mov r0, #0x96
+ ldrsb r2, [r7, r0]
+ sub r0, #0x97
+ cmp r2, r0
+ bne _0223B77C
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r6, #0
+ b _0223B784
+_0223B77C:
+ mov r0, #0x24
+ ldr r1, _0223B868 ; =0x02246094
+ mul r0, r2
+ add r6, r1, r0
+_0223B784:
+ ldr r0, [sp, #4]
+ mov r1, #0x24
+ ldr r2, _0223B868 ; =0x02246094
+ mul r1, r0
+ add r0, r2, r1
+ str r0, [sp, #0x10]
+ mov r4, #0
+ add r5, r0, #0
+_0223B794:
+ ldrh r1, [r5, #0xc]
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _0223B794
+ ldr r0, [sp, #0x10]
+ mov r2, #8
+ ldrh r1, [r0]
+ add r0, r7, #0
+ add r0, #0x94
+ strh r1, [r0]
+ ldr r0, _0223B86C ; =MOD12_0223C19C
+ add r1, r7, #0
+ bl FUN_0200CA98
+ ldr r0, [sp, #0x10]
+ ldrh r1, [r0, #2]
+ ldr r0, _0223B870 ; =0x0000FFFF
+ cmp r1, r0
+ beq _0223B7F2
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ beq _0223B7D6
+ ldrh r0, [r6, #2]
+ cmp r1, r0
+ beq _0223B7F2
+_0223B7D6:
+ mov r0, #2
+ lsl r0, r0, #8
+ str r0, [sp]
+ ldr r0, [r7, #4]
+ lsl r1, r1, #2
+ add r1, r7, r1
+ add r0, #0x90
+ add r1, #0xec
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_02003054
+_0223B7F2:
+ ldr r4, [sp, #0x10]
+ mov r5, #0
+_0223B7F6:
+ ldrh r2, [r4, #4]
+ ldr r0, _0223B870 ; =0x0000FFFF
+ cmp r2, r0
+ beq _0223B82E
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ beq _0223B80A
+ ldrh r0, [r6, #4]
+ cmp r2, r0
+ beq _0223B82E
+_0223B80A:
+ lsl r2, r2, #2
+ add r2, r7, r2
+ add r1, r5, #4
+ add r2, #0xdc
+ lsl r1, r1, #0x18
+ mov r3, #2
+ ldr r0, [sp, #0xc]
+ ldr r2, [r2]
+ lsr r1, r1, #0x18
+ lsl r3, r3, #0xa
+ bl FUN_02017DFC
+ add r1, r5, #4
+ lsl r1, r1, #0x18
+ ldr r0, [sp, #0xc]
+ lsr r1, r1, #0x18
+ bl FUN_0201AC68
+_0223B82E:
+ add r5, r5, #1
+ add r4, r4, #2
+ add r6, r6, #2
+ cmp r5, #4
+ blt _0223B7F6
+ add r1, r7, #0
+ ldr r0, [sp, #4]
+ add r1, #0x96
+ strb r0, [r1]
+ add r0, r7, #0
+ mov r1, #0
+ bl MOD12_0223BE50
+ ldr r0, [sp, #0x10]
+ ldr r3, [r0, #0x1c]
+ cmp r3, #0
+ beq _0223B858
+ ldr r1, [sp, #4]
+ ldr r2, [sp, #8]
+ add r0, r7, #0
+ blx r3
+_0223B858:
+ ldr r0, _0223B874 ; =MOD12_0223C14C
+ add r1, r7, #0
+ mov r2, #0xa
+ bl FUN_0200CA98
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223B868: .word 0x02246094
+_0223B86C: .word MOD12_0223C19C
+_0223B870: .word 0x0000FFFF
+_0223B874: .word MOD12_0223C14C
+
+ thumb_func_start MOD12_0223B878
+MOD12_0223B878: ; 0x0223B878
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x96
+ ldrsb r1, [r5, r0]
+ sub r0, #0x97
+ cmp r1, r0
+ bne _0223B88A
+ bl ErrorHandling
+_0223B88A:
+ mov r0, #0x96
+ ldrsb r1, [r5, r0]
+ ldr r3, _0223B910 ; =0x02246094
+ mov r0, #0x24
+ add r2, r1, #0
+ mul r2, r0
+ add r4, r3, r2
+ ldr r1, [r4, #0x14]
+ cmp r1, #0
+ bne _0223B8A2
+ sub r0, #0x25
+ pop {r4, r5, r6, pc}
+_0223B8A2:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ bne _0223B8AC
+ bl ErrorHandling
+_0223B8AC:
+ ldr r0, [r4, #0x14]
+ bl FUN_02020988
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0223B8F0
+ ldr r2, [r4, #0x18]
+ ldr r1, _0223B914 ; =0x02246070
+ cmp r2, r1
+ bne _0223B8F0
+ ldr r1, _0223B918 ; =0x021C48B8
+ mov r2, #0x11
+ ldr r1, [r1, #0x48]
+ add r3, r1, #0
+ tst r3, r2
+ beq _0223B8D2
+ mov r0, #3
+ b _0223B8F0
+_0223B8D2:
+ mov r3, #0x82
+ add r6, r1, #0
+ tst r6, r3
+ beq _0223B8DE
+ mov r0, #1
+ b _0223B8F0
+_0223B8DE:
+ lsl r2, r2, #6
+ tst r2, r1
+ beq _0223B8E8
+ mov r0, #0
+ b _0223B8F0
+_0223B8E8:
+ lsl r2, r3, #4
+ tst r1, r2
+ beq _0223B8F0
+ mov r0, #2
+_0223B8F0:
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0223B8FE
+ ldr r1, [r4, #0x18]
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+_0223B8FE:
+ ldr r2, [r4, #0x20]
+ cmp r2, #0
+ beq _0223B90A
+ add r0, r5, #0
+ blx r2
+ add r1, r0, #0
+_0223B90A:
+ add r0, r1, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0223B910: .word 0x02246094
+_0223B914: .word 0x02246070
+_0223B918: .word 0x021C48B8
+
+ thumb_func_start MOD12_0223B91C
+MOD12_0223B91C: ; 0x0223B91C
+ ldr r0, [r0, #0xc]
+ cmp r0, #0
+ bne _0223B926
+ mov r0, #1
+ bx lr
+_0223B926:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0223B92C
+MOD12_0223B92C: ; 0x0223B92C
+ mov r1, #0x96
+ ldrsb r0, [r0, r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0223B934
+MOD12_0223B934: ; 0x0223B934
+ ldr r3, _0223B93C ; =MOD12_0223BE10
+ mov r1, #1
+ bx r3
+ nop
+_0223B93C: .word MOD12_0223BE10
+
+ thumb_func_start MOD12_0223B940
+MOD12_0223B940: ; 0x0223B940
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #1
+ mov r1, #0x1a
+ mov r2, #0xbf
+ mov r3, #0x17
+ bl FUN_0200A86C
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ mov r2, #0x12
+ lsl r2, r2, #4
+ ldr r3, [r0]
+ add r1, r2, #1
+ ldrb r0, [r3, r2]
+ ldrb r1, [r3, r1]
+ ldr r3, [r5]
+ add r2, #0x51
+ ldrb r2, [r3, r2]
+ bl FUN_02083228
+ add r6, r0, #0
+ ldr r0, [r5, #4]
+ ldr r1, _0223B9F4 ; =0x0000011F
+ ldr r2, [r0]
+ ldrb r0, [r2, r1]
+ add r1, r1, #2
+ ldrb r1, [r2, r1]
+ bl FUN_020832A4
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_0200A914
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldr r0, _0223B9F8 ; =0x00010200
+ add r1, r5, #0
+ str r0, [sp]
+ mov r3, #0
+ ldr r0, _0223B9FC ; =0x000080EB
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x7f
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r1, #0x1c
+ add r2, r6, #0
+ bl MOD12_0223BCD8
+ ldr r0, _0223B9F8 ; =0x00010200
+ mov r3, #0
+ str r0, [sp]
+ ldr r0, _0223B9FC ; =0x000080EB
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x9f
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r5, #0x30
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD12_0223BCD8
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_0200A8B8
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223B9F4: .word 0x0000011F
+_0223B9F8: .word 0x00010200
+_0223B9FC: .word 0x000080EB
+
+ thumb_func_start MOD12_0223BA00
+MOD12_0223BA00: ; 0x0223BA00
+ ldr r3, _0223BA08 ; =MOD12_0223BE10
+ mov r1, #1
+ bx r3
+ nop
+_0223BA08: .word MOD12_0223BE10
+
+ thumb_func_start MOD12_0223BA0C
+MOD12_0223BA0C: ; 0x0223BA0C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ ldr r2, [r0, #4]
+ str r0, [sp, #0x18]
+ add r0, r2, #0
+ add r0, #0x84
+ ldr r5, [r0]
+ ldr r1, [r2]
+ ldr r0, _0223BB14 ; =0x00000123
+ ldrb r0, [r1, r0]
+ add r1, r2, r0
+ mov r0, #0xaa
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ cmp r0, #1
+ bne _0223BA36
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200A914
+ b _0223BA3E
+_0223BA36:
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200A914
+_0223BA3E:
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0200A914
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #3
+ bl FUN_0200A914
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #4
+ bl FUN_0200A914
+ add r5, r0, #0
+ ldr r0, _0223BB18 ; =0x0001010B
+ add r2, r4, #0
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0223BB1C ; =0x000080EB
+ mov r3, #2
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x18
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ add r1, r0, #0
+ add r1, #0x44
+ bl MOD12_0223BCD8
+ ldr r0, _0223BB18 ; =0x0001010B
+ add r2, r6, #0
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0223BB1C ; =0x000080EB
+ mov r3, #2
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x78
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ add r1, r0, #0
+ add r1, #0x58
+ bl MOD12_0223BCD8
+ ldr r0, _0223BB18 ; =0x0001010B
+ add r2, r7, #0
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0223BB1C ; =0x000080EB
+ mov r3, #2
+ str r0, [sp, #8]
+ mov r0, #0x30
+ str r0, [sp, #0xc]
+ mov r0, #0x40
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ add r1, r0, #0
+ add r1, #0x6c
+ bl MOD12_0223BCD8
+ ldr r0, _0223BB18 ; =0x0001010B
+ add r2, r5, #0
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0223BB1C ; =0x000080EB
+ mov r3, #2
+ str r0, [sp, #8]
+ mov r0, #0xd0
+ str r0, [sp, #0xc]
+ mov r0, #0x40
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ add r1, r0, #0
+ add r1, #0x80
+ str r1, [sp, #0x18]
+ bl MOD12_0223BCD8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl FUN_02021A20
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223BB14: .word 0x00000123
+_0223BB18: .word 0x0001010B
+_0223BB1C: .word 0x000080EB
+
+ thumb_func_start MOD12_0223BB20
+MOD12_0223BB20: ; 0x0223BB20
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r4, r0, #0
+ add r0, r6, #1
+ cmp r0, #4
+ bhi _0223BB42
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223BB38: ; jump table
+ .short _0223BB42 - _0223BB38 - 2 ; case 0
+ .short _0223BB46 - _0223BB38 - 2 ; case 1
+ .short _0223BB4A - _0223BB38 - 2 ; case 2
+ .short _0223BB4E - _0223BB38 - 2 ; case 3
+ .short _0223BB52 - _0223BB38 - 2 ; case 4
+_0223BB42:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_0223BB46:
+ mov r5, #2
+ b _0223BB54
+_0223BB4A:
+ mov r5, #3
+ b _0223BB54
+_0223BB4E:
+ mov r5, #4
+ b _0223BB54
+_0223BB52:
+ mov r5, #5
+_0223BB54:
+ ldr r0, _0223BBB0 ; =MOD12_0223BEB4
+ add r1, r4, #0
+ bl MOD12_0223BE64
+ add r0, r4, #0
+ mov r1, #2
+ add r0, #0xb8
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xbc
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #0x12
+ add r0, #0xca
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0x2d
+ add r0, #0xc8
+ strh r1, [r0]
+ mov r0, #0xc
+ ldr r1, _0223BBB4 ; =0x0224614C
+ mul r0, r6
+ add r2, r1, r0
+ add r1, r4, #0
+ add r1, #0xa0
+ str r2, [r1]
+ ldr r1, _0223BBB8 ; =0x0224617C
+ add r2, r1, r0
+ add r1, r4, #0
+ add r1, #0xa4
+ str r2, [r1]
+ ldr r1, _0223BBBC ; =0x022461AC
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xa8
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ str r6, [r0]
+ add r4, #0xcc
+ strb r5, [r4]
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0223BBB0: .word MOD12_0223BEB4
+_0223BBB4: .word 0x0224614C
+_0223BBB8: .word 0x0224617C
+_0223BBBC: .word 0x022461AC
+
+ thumb_func_start MOD12_0223BBC0
+MOD12_0223BBC0: ; 0x0223BBC0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x17
+ mov r1, #0x20
+ add r5, r3, #0
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x20
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ beq _0223BBEC
+ lsl r0, r5, #2
+ add r0, r6, r0
+ add r0, #0xd0
+ ldr r0, [r0]
+ str r0, [r4, #0xc]
+_0223BBEC:
+ ldr r0, [sp, #0x1c]
+ lsl r0, r0, #5
+ strh r0, [r4, #0x1c]
+ ldr r0, [sp, #0x18]
+ ldrh r1, [r0]
+ strh r1, [r4, #0x10]
+ ldrh r1, [r0, #2]
+ strh r1, [r4, #0x12]
+ ldrh r1, [r0, #4]
+ strh r1, [r4, #0x14]
+ ldrh r1, [r0, #6]
+ strh r1, [r4, #0x16]
+ ldrh r1, [r0, #8]
+ strh r1, [r4, #0x18]
+ ldrh r0, [r0, #0xa]
+ strh r0, [r4, #0x1a]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020187B0
+ str r0, [r4, #4]
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223BC1C
+MOD12_0223BC1C: ; 0x0223BC1C
+ push {r4, lr}
+ sub sp, #8
+ ldr r4, [sp, #0x10]
+ str r4, [sp]
+ ldr r4, [sp, #0x14]
+ str r4, [sp, #4]
+ bl MOD12_0223BBC0
+ add r4, r0, #0
+ ldr r0, _0223BC40 ; =MOD12_0223C1DC
+ add r1, r4, #0
+ mov r2, #0x14
+ bl FUN_0200CA98
+ str r0, [r4]
+ add r0, r4, #0
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_0223BC40: .word MOD12_0223C1DC
+
+ thumb_func_start MOD12_0223BC44
+MOD12_0223BC44: ; 0x0223BC44
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _0223BC62
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0223BC58
+ bl FUN_02016A18
+_0223BC58:
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r4, pc}
+_0223BC62:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223BC68
+MOD12_0223BC68: ; 0x0223BC68
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldrh r1, [r5, #0x16]
+ ldrh r0, [r5, #0x1c]
+ mov r6, #0
+ mul r0, r1
+ str r0, [sp]
+ ldrh r0, [r5, #0x12]
+ lsl r7, r0, #0xa
+ ldrh r0, [r5, #0x1a]
+ cmp r0, #0
+ ble _0223BCD4
+ add r4, r6, #0
+_0223BC82:
+ ldr r2, [r5, #0xc]
+ cmp r2, #0
+ beq _0223BCB0
+ ldrh r0, [r5, #0x14]
+ ldrh r3, [r5, #0x1c]
+ lsl r1, r0, #5
+ add r0, r3, #0
+ ldr r3, [sp]
+ mul r0, r6
+ add r0, r3, r0
+ add r0, r1, r0
+ ldrh r1, [r5, #0x10]
+ add r0, r2, r0
+ ldr r3, [r5, #4]
+ lsl r2, r1, #5
+ add r1, r7, r4
+ add r1, r2, r1
+ ldrh r2, [r5, #0x18]
+ add r1, r3, r1
+ lsl r2, r2, #5
+ bl MIi_CpuCopy16
+ b _0223BCC6
+_0223BCB0:
+ ldrh r1, [r5, #0x10]
+ ldr r3, [r5, #4]
+ mov r0, #0
+ lsl r2, r1, #5
+ add r1, r7, r4
+ add r1, r2, r1
+ ldrh r2, [r5, #0x18]
+ add r1, r3, r1
+ lsl r2, r2, #5
+ bl MIi_CpuClear16
+_0223BCC6:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r4, r4, r0
+ ldrh r0, [r5, #0x1a]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _0223BC82
+_0223BCD4:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223BCD8
+MOD12_0223BCD8: ; 0x0223BCD8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x78
+ add r5, r1, #0
+ str r0, [sp, #0x18]
+ ldr r0, [r5]
+ str r2, [sp, #0x1c]
+ str r3, [sp, #0x20]
+ ldr r4, [sp, #0x9c]
+ cmp r0, #0
+ beq _0223BCF0
+ bl ErrorHandling
+_0223BCF0:
+ ldr r0, [sp, #0x18]
+ mov r2, #0
+ ldr r1, [r0, #4]
+ ldr r0, [r1, #0x60]
+ str r0, [sp, #0x28]
+ ldr r0, [r1, #0x5c]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x20]
+ bl FUN_02002E14
+ add r7, r0, #0
+ asr r1, r7, #2
+ lsr r1, r1, #0x1d
+ add r1, r7, r1
+ asr r6, r1, #3
+ mov r1, #8
+ bl FX_ModS32
+ cmp r0, #0
+ beq _0223BD1C
+ add r6, r6, #1
+_0223BD1C:
+ add r0, sp, #0x38
+ bl FUN_0201901C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ lsl r2, r6, #0x18
+ ldr r0, [sp, #0x28]
+ add r1, sp, #0x38
+ lsr r2, r2, #0x18
+ mov r3, #2
+ bl FUN_020190EC
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x90]
+ ldr r1, [sp, #0x20]
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ ldr r2, [sp, #0x1c]
+ add r0, sp, #0x38
+ str r3, [sp, #0x14]
+ bl FUN_0201BE3C
+ add r0, sp, #0x38
+ mov r1, #2
+ mov r2, #0x17
+ bl FUN_02011898
+ mov r1, #1
+ mov r2, #2
+ add r3, sp, #0x2c
+ bl FUN_0201D568
+ ldr r0, [sp, #0xa4]
+ cmp r0, #1
+ bne _0223BD74
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r0, r0, #1
+ sub r4, r4, r0
+_0223BD74:
+ ldr r0, [sp, #0x18]
+ ldr r0, [r0, #0x18]
+ str r0, [sp, #0x48]
+ add r0, sp, #0x38
+ str r0, [sp, #0x4c]
+ ldr r0, [sp, #0x24]
+ bl FUN_0200CA40
+ str r0, [sp, #0x50]
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x98]
+ bl FUN_0200C334
+ mov r1, #0
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0x30]
+ str r1, [sp, #0x58]
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0xa0]
+ str r4, [sp, #0x60]
+ add r0, #0xf8
+ str r0, [sp, #0x64]
+ mov r0, #0x64
+ str r0, [sp, #0x6c]
+ mov r0, #2
+ str r0, [sp, #0x70]
+ mov r0, #0x17
+ str r0, [sp, #0x74]
+ add r0, sp, #0x48
+ str r1, [sp, #0x68]
+ bl FUN_020117E8
+ ldr r1, [sp, #0x94]
+ add r6, r0, #0
+ bl FUN_02011AC0
+ ldr r2, [sp, #0xa0]
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, #0xf8
+ bl FUN_020118C4
+ add r0, sp, #0x38
+ bl FUN_02019178
+ str r6, [r5]
+ add r3, sp, #0x2c
+ ldmia r3!, {r0, r1}
+ add r2, r5, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ strh r7, [r5, #0x10]
+ add sp, #0x78
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223BDE4
+MOD12_0223BDE4: ; 0x0223BDE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r6, #0
+ add r4, r5, #0
+ add r4, #0x20
+ add r7, r6, #0
+_0223BDF0:
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _0223BE02
+ bl FUN_02011870
+ add r0, r4, #0
+ bl FUN_0201D5E8
+ str r7, [r5, #0x1c]
+_0223BE02:
+ add r6, r6, #1
+ add r5, #0x14
+ add r4, #0x14
+ cmp r6, #6
+ blt _0223BDF0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223BE10
+MOD12_0223BE10: ; 0x0223BE10
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ cmp r7, #1
+ bne _0223BE2C
+ mov r1, #0x96
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ bne _0223BE26
+ mov r4, #0
+ mov r6, #1
+ b _0223BE30
+_0223BE26:
+ mov r4, #2
+ mov r6, #5
+ b _0223BE30
+_0223BE2C:
+ mov r4, #0
+ mov r6, #5
+_0223BE30:
+ cmp r4, r6
+ bgt _0223BE4E
+ mov r1, #0x14
+ mul r1, r4
+ add r5, r0, r1
+_0223BE3A:
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _0223BE46
+ add r1, r7, #0
+ bl FUN_020119D0
+_0223BE46:
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, r6
+ ble _0223BE3A
+_0223BE4E:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD12_0223BE50
+MOD12_0223BE50: ; 0x0223BE50
+ push {r3, lr}
+ cmp r1, #1
+ bne _0223BE5C
+ bl MOD12_0223BDE4
+ pop {r3, pc}
+_0223BE5C:
+ mov r1, #0
+ bl MOD12_0223BE10
+ pop {r3, pc}
+
+ thumb_func_start MOD12_0223BE64
+MOD12_0223BE64: ; 0x0223BE64
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0223BE74
+ bl ErrorHandling
+_0223BE74:
+ add r0, r4, #0
+ add r0, #0x98
+ mov r1, #0
+ mov r2, #0x38
+ bl MI_CpuFill8
+ ldr r2, _0223BE90 ; =0x00000514
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+ nop
+_0223BE90: .word 0x00000514
+
+ thumb_func_start MOD12_0223BE94
+MOD12_0223BE94: ; 0x0223BE94
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0223BEB0
+ bl FUN_0200CAB4
+ mov r1, #0
+ str r1, [r4, #0xc]
+ add r4, #0x98
+ add r0, r4, #0
+ mov r2, #0x38
+ bl MI_CpuFill8
+_0223BEB0:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223BEB4
+MOD12_0223BEB4: ; 0x0223BEB4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ mov r0, #0x98
+ ldrsh r0, [r4, r0]
+ cmp r0, #8
+ bls _0223BEC4
+ b _0223C140
+_0223BEC4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223BED0: ; jump table
+ .short _0223BEE2 - _0223BED0 - 2 ; case 0
+ .short _0223BF6A - _0223BED0 - 2 ; case 1
+ .short _0223BF84 - _0223BED0 - 2 ; case 2
+ .short _0223BFAA - _0223BED0 - 2 ; case 3
+ .short _0223C034 - _0223BED0 - 2 ; case 4
+ .short _0223C050 - _0223BED0 - 2 ; case 5
+ .short _0223C076 - _0223BED0 - 2 ; case 6
+ .short _0223C100 - _0223BED0 - 2 ; case 7
+ .short _0223C11A - _0223BED0 - 2 ; case 8
+_0223BEE2:
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r2, r4, #0
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0xca
+ ldrh r0, [r0]
+ add r3, r4, #0
+ add r2, #0xc8
+ str r0, [sp, #4]
+ add r3, #0xb8
+ ldrh r2, [r2]
+ ldr r3, [r3]
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD12_0223BC1C
+ add r1, r4, #0
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xcc
+ ldrb r1, [r0]
+ mov r0, #0x14
+ add r2, sp, #8
+ mul r0, r1
+ add r0, r4, r0
+ ldr r0, [r0, #0x1c]
+ add r1, sp, #0xc
+ bl FUN_020119A4
+ add r0, r4, #0
+ add r0, #0xcc
+ ldrb r1, [r0]
+ mov r0, #0x14
+ ldr r2, [sp, #8]
+ mul r0, r1
+ add r0, r4, r0
+ ldr r0, [r0, #0x1c]
+ ldr r1, [sp, #0xc]
+ add r2, #0x10
+ bl FUN_020118C4
+ mov r6, #0
+ add r5, r4, #0
+ add r7, r6, #0
+_0223BF40:
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0223BF54
+ ldr r0, [r0]
+ add r1, r7, #0
+ mov r2, #0x10
+ bl FUN_0200C7FC
+_0223BF54:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #3
+ blt _0223BF40
+ mov r0, #0x98
+ ldrsh r0, [r4, r0]
+ add r4, #0x98
+ add sp, #0x10
+ add r0, r0, #1
+ strh r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BF6A:
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ bl MOD12_0223BC44
+ cmp r0, #0
+ beq _0223C042
+ mov r0, #0x98
+ ldrsh r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x98
+ strh r1, [r0]
+_0223BF84:
+ mov r1, #0x9a
+ ldrsh r0, [r4, r1]
+ add r2, r0, #1
+ add r0, r4, #0
+ add r0, #0x9a
+ strh r2, [r0]
+ ldrsh r0, [r4, r1]
+ cmp r0, #2
+ ble _0223C042
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x9a
+ strh r1, [r0]
+ mov r0, #0x98
+ ldrsh r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x98
+ strh r1, [r0]
+_0223BFAA:
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ add r2, r4, #0
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0xca
+ ldrh r0, [r0]
+ add r3, r4, #0
+ add r2, #0xc8
+ str r0, [sp, #4]
+ add r3, #0xbc
+ ldrh r2, [r2]
+ ldr r3, [r3]
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD12_0223BC1C
+ add r1, r4, #0
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xcc
+ ldrb r1, [r0]
+ mov r0, #0x14
+ add r2, sp, #8
+ mul r0, r1
+ add r0, r4, r0
+ ldr r0, [r0, #0x1c]
+ add r1, sp, #0xc
+ bl FUN_020119A4
+ add r0, r4, #0
+ add r0, #0xcc
+ ldrb r1, [r0]
+ mov r0, #0x14
+ ldr r2, [sp, #8]
+ mul r0, r1
+ add r0, r4, r0
+ ldr r0, [r0, #0x1c]
+ ldr r1, [sp, #0xc]
+ sub r2, r2, #4
+ bl FUN_020118C4
+ mov r6, #0
+ add r5, r4, #0
+ add r7, r6, #0
+_0223C008:
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0223C01E
+ mov r2, #3
+ ldr r0, [r0]
+ add r1, r7, #0
+ mvn r2, r2
+ bl FUN_0200C7FC
+_0223C01E:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #3
+ blt _0223C008
+ mov r0, #0x98
+ ldrsh r0, [r4, r0]
+ add r4, #0x98
+ add sp, #0x10
+ add r0, r0, #1
+ strh r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C034:
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ bl MOD12_0223BC44
+ cmp r0, #0
+ bne _0223C044
+_0223C042:
+ b _0223C146
+_0223C044:
+ mov r0, #0x98
+ ldrsh r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x98
+ strh r1, [r0]
+_0223C050:
+ mov r1, #0x9a
+ ldrsh r0, [r4, r1]
+ add r2, r0, #1
+ add r0, r4, #0
+ add r0, #0x9a
+ strh r2, [r0]
+ ldrsh r0, [r4, r1]
+ cmp r0, #2
+ ble _0223C146
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x9a
+ strh r1, [r0]
+ mov r0, #0x98
+ ldrsh r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x98
+ strh r1, [r0]
+_0223C076:
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ add r2, r4, #0
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0xca
+ ldrh r0, [r0]
+ add r3, r4, #0
+ add r2, #0xc8
+ str r0, [sp, #4]
+ add r3, #0xc0
+ ldrh r2, [r2]
+ ldr r3, [r3]
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD12_0223BC1C
+ add r1, r4, #0
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xcc
+ ldrb r1, [r0]
+ mov r0, #0x14
+ add r2, sp, #8
+ mul r0, r1
+ add r0, r4, r0
+ ldr r0, [r0, #0x1c]
+ add r1, sp, #0xc
+ bl FUN_020119A4
+ add r0, r4, #0
+ add r0, #0xcc
+ ldrb r1, [r0]
+ mov r0, #0x14
+ ldr r2, [sp, #8]
+ mul r0, r1
+ add r0, r4, r0
+ ldr r0, [r0, #0x1c]
+ ldr r1, [sp, #0xc]
+ sub r2, #0xc
+ bl FUN_020118C4
+ mov r6, #0
+ add r5, r4, #0
+ add r7, r6, #0
+_0223C0D4:
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0223C0EA
+ mov r2, #0xb
+ ldr r0, [r0]
+ add r1, r7, #0
+ mvn r2, r2
+ bl FUN_0200C7FC
+_0223C0EA:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #3
+ blt _0223C0D4
+ mov r0, #0x98
+ ldrsh r0, [r4, r0]
+ add r4, #0x98
+ add sp, #0x10
+ add r0, r0, #1
+ strh r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C100:
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ bl MOD12_0223BC44
+ cmp r0, #0
+ beq _0223C146
+ mov r0, #0x98
+ ldrsh r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x98
+ strh r1, [r0]
+_0223C11A:
+ mov r1, #0x9a
+ ldrsh r0, [r4, r1]
+ add r2, r0, #1
+ add r0, r4, #0
+ add r0, #0x9a
+ strh r2, [r0]
+ ldrsh r0, [r4, r1]
+ cmp r0, #2
+ ble _0223C146
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x9a
+ strh r1, [r0]
+ mov r0, #0x98
+ ldrsh r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x98
+ strh r1, [r0]
+_0223C140:
+ add r0, r4, #0
+ bl MOD12_0223BE94
+_0223C146:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223C14C
+MOD12_0223C14C: ; 0x0223C14C
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ mov r0, #0x96
+ ldrsb r1, [r1, r0]
+ mov r0, #0x24
+ mov r4, #0
+ ldr r2, _0223C194 ; =0x02246094
+ mul r0, r1
+ ldr r6, _0223C198 ; =0x0000FFFF
+ add r5, r2, r0
+ add r7, r4, #0
+_0223C162:
+ ldrh r0, [r5, #4]
+ cmp r0, r6
+ bne _0223C176
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r7, #0
+ bl FUN_0201797C
+ b _0223C182
+_0223C176:
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #1
+ bl FUN_0201797C
+_0223C182:
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _0223C162
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223C194: .word 0x02246094
+_0223C198: .word 0x0000FFFF
+
+ thumb_func_start MOD12_0223C19C
+MOD12_0223C19C: ; 0x0223C19C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x94
+ ldrh r2, [r0]
+ ldr r0, _0223C1D8 ; =0x0000FFFF
+ cmp r2, r0
+ beq _0223C1CE
+ mov r0, #0
+ lsl r2, r2, #2
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ add r2, r4, r2
+ add r2, #0xd0
+ mov r3, #6
+ ldr r0, [r0, #0x60]
+ ldr r2, [r2]
+ mov r1, #4
+ lsl r3, r3, #0xc
+ bl FUN_02017E14
+ ldr r0, _0223C1D8 ; =0x0000FFFF
+ add r4, #0x94
+ strh r0, [r4]
+_0223C1CE:
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ nop
+_0223C1D8: .word 0x0000FFFF
+
+ thumb_func_start MOD12_0223C1DC
+MOD12_0223C1DC: ; 0x0223C1DC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD12_0223BC68
+ mov r0, #0
+ str r0, [r4]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD12_0223C1F4
+MOD12_0223C1F4: ; 0x0223C1F4
+ push {r3, lr}
+ sub sp, #8
+ str r2, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r0, #4]
+ mov r1, #1
+ add r0, #0x90
+ ldr r0, [r0]
+ mov r2, #0
+ mov r3, #0x40
+ bl FUN_020039E8
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD12_0223C210
+MOD12_0223C210: ; 0x0223C210
+ mov r1, #6
+ mul r1, r0
+ ldr r0, _0223C21C ; =0x022461F4
+ ldrsh r0, [r0, r1]
+ bx lr
+ nop
+_0223C21C: .word 0x022461F4
+
+ thumb_func_start MOD12_0223C220
+MOD12_0223C220: ; 0x0223C220
+ mov r1, #6
+ mul r1, r0
+ ldr r0, _0223C230 ; =0x022461F4
+ add r1, r0, r1
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ bx lr
+ nop
+_0223C230: .word 0x022461F4
+
+ thumb_func_start MOD12_0223C234
+MOD12_0223C234: ; 0x0223C234
+ mov r1, #6
+ mul r1, r0
+ ldr r0, _0223C244 ; =0x022461F4
+ add r1, r0, r1
+ mov r0, #4
+ ldrsh r0, [r1, r0]
+ bx lr
+ nop
+_0223C244: .word 0x022461F4
+
+ thumb_func_start MOD12_0223C248
+MOD12_0223C248: ; 0x0223C248
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r4, #0
+ b _0223C264
+_0223C252:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ add r0, #0xac
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0223C262
+ bl ErrorHandling
+_0223C262:
+ add r4, r4, #1
+_0223C264:
+ cmp r4, #4
+ blt _0223C252
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #0x10
+ bl MI_CpuFill8
+ mov r0, #0x17
+ str r0, [sp, #0xc]
+ mov r4, #0
+ ldr r7, _0223C2F8 ; =0x022461F4
+ b _0223C2F0
+_0223C27C:
+ ldr r0, _0223C2FC ; =0x00000AD5
+ add r1, r5, r4
+ ldrb r6, [r1, r0]
+ ldr r1, [r5]
+ lsl r0, r6, #2
+ ldr r0, [r1, r0]
+ mov r1, #2
+ bl FUN_02068E14
+ add r2, r0, #0
+ mov r0, #6
+ mul r0, r4
+ ldrsh r1, [r7, r0]
+ add r0, r7, r0
+ mov r3, #2
+ ldrsh r3, [r0, r3]
+ str r1, [sp, #4]
+ add r2, r2, r3
+ str r2, [sp, #8]
+ lsl r2, r6, #4
+ add r2, r5, r2
+ str r1, [r2, #0x1c]
+ ldr r1, [sp, #8]
+ str r1, [r2, #0x20]
+ mov r1, #4
+ ldrsh r0, [r0, r1]
+ lsl r1, r6, #2
+ str r0, [r2, #0x24]
+ ldr r2, [r5]
+ add r0, sp, #0
+ add r1, r2, r1
+ add r1, #0xf8
+ ldr r1, [r1]
+ bl FUN_021DD4F4
+ lsl r1, r6, #4
+ add r2, r5, r1
+ str r0, [r2, #0x18]
+ ldr r1, [r2, #0x1c]
+ ldr r2, [r2, #0x20]
+ bl FUN_021DD620
+ cmp r4, #0
+ ble _0223C2EE
+ lsl r0, r6, #4
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ mov r1, #0
+ bl FUN_021DD59C
+ lsl r0, r6, #4
+ add r0, r5, r0
+ mov r1, #0x63
+ ldr r0, [r0, #0x18]
+ mvn r1, r1
+ bl FUN_021DD6CC
+_0223C2EE:
+ add r4, r4, #1
+_0223C2F0:
+ cmp r4, #4
+ blt _0223C27C
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223C2F8: .word 0x022461F4
+_0223C2FC: .word 0x00000AD5
+
+ thumb_func_start MOD12_0223C300
+MOD12_0223C300: ; 0x0223C300
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_0223C308:
+ ldr r0, [r5, #4]
+ bl FUN_021DD540
+ add r0, r5, #0
+ add r0, #0x98
+ add r4, r4, #1
+ add r5, #0x10
+ str r6, [r0]
+ cmp r4, #4
+ blt _0223C308
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223C320
+MOD12_0223C320: ; 0x0223C320
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0223C324
+MOD12_0223C324: ; 0x0223C324
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0223C328
+MOD12_0223C328: ; 0x0223C328
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #8
+ cmp r1, r0
+ ble _0223C338
+ add r1, r0, #0
+_0223C338:
+ asr r0, r1, #2
+ lsr r0, r0, #0x1d
+ add r0, r1, r0
+ lsr r2, r1, #0x1f
+ lsl r1, r1, #0x1d
+ asr r4, r0, #3
+ sub r1, r1, r2
+ mov r0, #0x1d
+ ror r1, r0
+ add r0, r2, r1
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ mov r1, #3
+ ldr r0, [r0, #0x60]
+ bl FUN_0201886C
+ add r2, r0, #0
+ mov r1, #0
+ cmp r4, #0
+ ble _0223C394
+ ldr r0, _0223C420 ; =0x00002014
+ add r3, r2, #0
+ mov r7, #0x1d
+_0223C366:
+ lsr r6, r1, #0x1f
+ lsl r5, r1, #0x1d
+ sub r5, r5, r6
+ ror r5, r7
+ add r5, r6, r5
+ bne _0223C37A
+ mov r5, #0x13
+ lsl r5, r5, #6
+ strh r0, [r3, r5]
+ b _0223C38C
+_0223C37A:
+ mov r5, #1
+ tst r5, r1
+ beq _0223C384
+ ldr r6, _0223C424 ; =0x00002034
+ b _0223C386
+_0223C384:
+ ldr r6, _0223C428 ; =0x00002054
+_0223C386:
+ mov r5, #0x13
+ lsl r5, r5, #6
+ strh r6, [r3, r5]
+_0223C38C:
+ add r1, r1, #1
+ add r3, r3, #2
+ cmp r1, r4
+ blt _0223C366
+_0223C394:
+ cmp r1, #0x20
+ bge _0223C3D4
+ lsr r4, r1, #0x1f
+ lsl r3, r1, #0x1d
+ sub r3, r3, r4
+ mov r0, #0x1d
+ ror r3, r0
+ add r0, r4, r3
+ bne _0223C3B8
+ ldr r3, _0223C42C ; =0x0000200C
+ ldr r0, [sp, #4]
+ add r4, r0, r3
+ lsl r0, r1, #1
+ add r3, r2, r0
+ mov r0, #0x13
+ lsl r0, r0, #6
+ strh r4, [r3, r0]
+ b _0223C3D2
+_0223C3B8:
+ mov r0, #1
+ tst r0, r1
+ beq _0223C3C2
+ ldr r3, _0223C430 ; =0x0000202C
+ b _0223C3C4
+_0223C3C2:
+ ldr r3, _0223C434 ; =0x0000204C
+_0223C3C4:
+ ldr r0, [sp, #4]
+ add r4, r0, r3
+ lsl r0, r1, #1
+ add r3, r2, r0
+ mov r0, #0x13
+ lsl r0, r0, #6
+ strh r4, [r3, r0]
+_0223C3D2:
+ add r1, r1, #1
+_0223C3D4:
+ cmp r1, #0x20
+ bge _0223C410
+ lsl r0, r1, #1
+ add r2, r2, r0
+ mov r4, #0x13
+ ldr r0, _0223C42C ; =0x0000200C
+ mov r7, #1
+ lsl r4, r4, #6
+ mov r5, #0x1d
+_0223C3E6:
+ lsr r6, r1, #0x1f
+ lsl r3, r1, #0x1d
+ sub r3, r3, r6
+ ror r3, r5
+ add r3, r6, r3
+ bne _0223C3F6
+ strh r0, [r2, r4]
+ b _0223C408
+_0223C3F6:
+ add r3, r1, #0
+ tst r3, r7
+ beq _0223C400
+ ldr r6, _0223C430 ; =0x0000202C
+ b _0223C402
+_0223C400:
+ ldr r6, _0223C434 ; =0x0000204C
+_0223C402:
+ mov r3, #0x13
+ lsl r3, r3, #6
+ strh r6, [r2, r3]
+_0223C408:
+ add r1, r1, #1
+ add r2, r2, #2
+ cmp r1, #0x20
+ blt _0223C3E6
+_0223C410:
+ ldr r0, [sp]
+ mov r1, #3
+ ldr r0, [r0, #0x60]
+ bl FUN_0201AC68
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223C420: .word 0x00002014
+_0223C424: .word 0x00002034
+_0223C428: .word 0x00002054
+_0223C42C: .word 0x0000200C
+_0223C430: .word 0x0000202C
+_0223C434: .word 0x0000204C
+
+ thumb_func_start MOD12_0223C438
+MOD12_0223C438: ; 0x0223C438
+ push {r4, lr}
+ add r4, r0, #0
+ lsl r0, r1, #8
+ add r1, r2, #0
+ bl _s32_div_f
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD12_0223C328
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223C450
+MOD12_0223C450: ; 0x0223C450
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r2, #1
+ str r2, [sp]
+ str r2, [sp, #4]
+ ldr r2, _0223C4D8 ; =0x000080EB
+ mov r3, #0x3a
+ str r2, [sp, #8]
+ mov r2, #0x2e
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0223C4DC ; =0x000080EC
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x3b
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0223C4E0 ; =0x000080ED
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x3c
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0223C4E4 ; =0x000080EE
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x3d
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223C4D8 ; =0x000080EB
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x3e
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223C4D8 ; =0x000080EB
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x3f
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_0223C4D8: .word 0x000080EB
+_0223C4DC: .word 0x000080EC
+_0223C4E0: .word 0x000080ED
+_0223C4E4: .word 0x000080EE
+
+ thumb_func_start MOD12_0223C4E8
+MOD12_0223C4E8: ; 0x0223C4E8
+ push {r4, lr}
+ ldr r1, _0223C51C ; =0x000080EB
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _0223C520 ; =0x000080EC
+ add r0, r4, #0
+ bl FUN_0200C358
+ ldr r1, _0223C524 ; =0x000080ED
+ add r0, r4, #0
+ bl FUN_0200C358
+ ldr r1, _0223C528 ; =0x000080EE
+ add r0, r4, #0
+ bl FUN_0200C358
+ ldr r1, _0223C51C ; =0x000080EB
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0223C51C ; =0x000080EB
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_0223C51C: .word 0x000080EB
+_0223C520: .word 0x000080EC
+_0223C524: .word 0x000080ED
+_0223C528: .word 0x000080EE
+
+ thumb_func_start MOD12_0223C52C
+MOD12_0223C52C: ; 0x0223C52C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ ldr r4, _0223C62C ; =0x022462E0
+ add r7, r2, #0
+ add r6, r3, #0
+ add r5, r0, #0
+ mov ip, r1
+ add r3, sp, #0
+ mov r2, #6
+_0223C53E:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0223C53E
+ ldr r0, [r4]
+ cmp r6, #2
+ str r0, [r3]
+ bne _0223C556
+ ldr r0, [sp, #8]
+ add r0, #0xa
+ str r0, [sp, #8]
+ b _0223C586
+_0223C556:
+ ldr r0, [sp, #0x54]
+ cmp r0, #3
+ bhi _0223C586
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223C568: ; jump table
+ .short _0223C586 - _0223C568 - 2 ; case 0
+ .short _0223C570 - _0223C568 - 2 ; case 1
+ .short _0223C578 - _0223C568 - 2 ; case 2
+ .short _0223C580 - _0223C568 - 2 ; case 3
+_0223C570:
+ ldr r0, [sp, #8]
+ add r0, r0, #3
+ str r0, [sp, #8]
+ b _0223C586
+_0223C578:
+ ldr r0, [sp, #8]
+ add r0, r0, #2
+ str r0, [sp, #8]
+ b _0223C586
+_0223C580:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+_0223C586:
+ ldr r0, [sp, #0x48]
+ cmp r0, #4
+ bhi _0223C5C0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223C598: ; jump table
+ .short _0223C5C0 - _0223C598 - 2 ; case 0
+ .short _0223C5B6 - _0223C598 - 2 ; case 1
+ .short _0223C5C0 - _0223C598 - 2 ; case 2
+ .short _0223C5A2 - _0223C598 - 2 ; case 3
+ .short _0223C5AC - _0223C598 - 2 ; case 4
+_0223C5A2:
+ ldr r0, _0223C630 ; =0x000080EC
+ str r0, [sp, #0x14]
+ mov r0, #2
+ str r0, [sp, #0xc]
+ b _0223C5C8
+_0223C5AC:
+ ldr r0, _0223C634 ; =0x000080EE
+ str r0, [sp, #0x14]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ b _0223C5C8
+_0223C5B6:
+ ldr r0, _0223C638 ; =0x000080ED
+ str r0, [sp, #0x14]
+ mov r0, #7
+ str r0, [sp, #0xc]
+ b _0223C5C8
+_0223C5C0:
+ ldr r0, _0223C63C ; =0x000080EB
+ str r0, [sp, #0x14]
+ mov r0, #2
+ str r0, [sp, #0xc]
+_0223C5C8:
+ mov r0, ip
+ add r1, r7, #0
+ add r2, sp, #0
+ bl FUN_0200C154
+ add r4, r0, #0
+ add r1, r6, #0
+ bl FUN_0200C5C0
+ ldr r0, [r4]
+ bl FUN_0200C59C
+ ldr r1, [sp, #0x4c]
+ ldr r2, [sp, #0x50]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ mov r3, #1
+ add r0, r4, #0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ lsl r3, r3, #0x14
+ bl FUN_0200C750
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_0200C5E0
+ mov r0, #0
+ add r2, r5, #0
+_0223C602:
+ add r1, r2, #0
+ add r1, #0xd8
+ ldr r1, [r1]
+ cmp r1, #0
+ bne _0223C618
+ lsl r1, r0, #2
+ add r1, r5, r1
+ add r1, #0xd8
+ add sp, #0x34
+ str r4, [r1]
+ pop {r4, r5, r6, r7, pc}
+_0223C618:
+ add r0, r0, #1
+ add r2, r2, #4
+ cmp r0, #0x44
+ blt _0223C602
+ bl ErrorHandling
+ mov r0, #0
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223C62C: .word 0x022462E0
+_0223C630: .word 0x000080EC
+_0223C634: .word 0x000080EE
+_0223C638: .word 0x000080ED
+_0223C63C: .word 0x000080EB
+
+ thumb_func_start MOD12_0223C640
+MOD12_0223C640: ; 0x0223C640
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_0223C648:
+ add r0, r5, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0223C65C
+ bl FUN_0200C3DC
+ add r0, r5, #0
+ add r0, #0xd8
+ str r6, [r0]
+_0223C65C:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x44
+ blt _0223C648
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223C668
+MOD12_0223C668: ; 0x0223C668
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r2, #1
+ str r2, [sp]
+ str r2, [sp, #4]
+ ldr r2, _0223C6B0 ; =0x000080EF
+ mov r3, #0x37
+ str r2, [sp, #8]
+ mov r2, #0x2e
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223C6B4 ; =0x000080EC
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x38
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223C6B4 ; =0x000080EC
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x39
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0223C6B0: .word 0x000080EF
+_0223C6B4: .word 0x000080EC
+
+ thumb_func_start MOD12_0223C6B8
+MOD12_0223C6B8: ; 0x0223C6B8
+ push {r4, lr}
+ ldr r1, _0223C6D4 ; =0x000080EF
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _0223C6D8 ; =0x000080EC
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0223C6D8 ; =0x000080EC
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_0223C6D4: .word 0x000080EF
+_0223C6D8: .word 0x000080EC
+
+ thumb_func_start MOD12_0223C6DC
+MOD12_0223C6DC: ; 0x0223C6DC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ mov r4, #0
+_0223C6E6:
+ ldr r2, _0223C708 ; =0x02246314
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_0200C154
+ ldr r1, _0223C70C ; =0x000009DC
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _0223C6E6
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223C708: .word 0x02246314
+_0223C70C: .word 0x000009DC
+
+ thumb_func_start MOD12_0223C710
+MOD12_0223C710: ; 0x0223C710
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ ldr r7, _0223C730 ; =0x000009DC
+ add r5, r0, #0
+ add r6, r4, #0
+_0223C71A:
+ ldr r0, _0223C730 ; =0x000009DC
+ ldr r0, [r5, r0]
+ bl FUN_0200C3DC
+ str r6, [r5, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _0223C71A
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223C730: .word 0x000009DC
+
+ thumb_func_start MOD12_0223C734
+MOD12_0223C734: ; 0x0223C734
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r5, r0, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ mov r1, #5
+ bl FUN_0200A914
+ str r0, [sp, #0x38]
+ add r0, r5, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ mov r1, #6
+ bl FUN_0200A914
+ str r0, [sp, #0x34]
+ add r0, r5, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ mov r1, #7
+ bl FUN_0200A914
+ str r0, [sp, #0x30]
+ mov r0, #0
+ ldr r1, _0223C868 ; =0x000009E8
+ str r0, [sp, #0x3c]
+ add r0, r5, r1
+ str r0, [sp, #0x2c]
+ add r0, r1, #0
+ add r0, #0x3c
+ add r1, #0x78
+ add r4, r5, #0
+ add r7, r5, r0
+ add r6, r5, r1
+_0223C778:
+ ldr r0, [sp, #0x2c]
+ add r3, r5, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x38]
+ add r3, #0x94
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, _0223C86C ; =0x000B0C00
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, _0223C870 ; =0x000080E9
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ mov r0, #1
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x24]
+ mov r0, #0xc
+ str r0, [sp, #0x28]
+ ldr r1, [r5, #0x60]
+ ldr r2, [r5, #0x5c]
+ ldr r3, [r3]
+ mov r0, #0x17
+ bl MOD12_02231380
+ ldr r0, _0223C868 ; =0x000009E8
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_020119D0
+ add r3, r5, #0
+ ldr r0, [sp, #0x34]
+ str r7, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, _0223C86C ; =0x000B0C00
+ add r3, #0x94
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, _0223C870 ; =0x000080E9
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ mov r0, #1
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x24]
+ mov r0, #0xc
+ str r0, [sp, #0x28]
+ ldr r1, [r5, #0x60]
+ ldr r2, [r5, #0x5c]
+ ldr r3, [r3]
+ mov r0, #0x17
+ bl MOD12_02231380
+ ldr r0, _0223C874 ; =0x00000A24
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_020119D0
+ add r3, r5, #0
+ ldr r0, [sp, #0x30]
+ str r6, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, _0223C86C ; =0x000B0C00
+ add r3, #0x94
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, _0223C870 ; =0x000080E9
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ mov r0, #1
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x24]
+ mov r0, #0xc
+ str r0, [sp, #0x28]
+ ldr r1, [r5, #0x60]
+ ldr r2, [r5, #0x5c]
+ ldr r3, [r3]
+ mov r0, #0x17
+ bl MOD12_02231380
+ mov r0, #0xa6
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020119D0
+ ldr r0, [sp, #0x2c]
+ add r4, #0x14
+ add r0, #0x14
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x3c]
+ add r7, #0x14
+ add r0, r0, #1
+ add r6, #0x14
+ str r0, [sp, #0x3c]
+ cmp r0, #3
+ blt _0223C778
+ ldr r0, [sp, #0x38]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x34]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x30]
+ bl FUN_02021A20
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223C868: .word 0x000009E8
+_0223C86C: .word 0x000B0C00
+_0223C870: .word 0x000080E9
+_0223C874: .word 0x00000A24
+
+ thumb_func_start MOD12_0223C878
+MOD12_0223C878: ; 0x0223C878
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r1, _0223C89C ; =0x000009E8
+ mov r7, #0
+ add r6, r0, r1
+_0223C880:
+ mov r4, #0
+ add r5, r6, #0
+_0223C884:
+ add r0, r5, #0
+ bl MOD12_0223147C
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, #3
+ blt _0223C884
+ add r7, r7, #1
+ add r6, #0x3c
+ cmp r7, #3
+ blt _0223C880
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223C89C: .word 0x000009E8
+
+ thumb_func_start MOD12_0223C8A0
+MOD12_0223C8A0: ; 0x0223C8A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ ldr r4, [sp, #0x2c]
+ add r5, r0, #0
+ str r3, [sp]
+ cmp r4, #0
+ bne _0223C8B2
+ str r4, [sp, #4]
+ b _0223C8B6
+_0223C8B2:
+ sub r0, r4, #1
+ str r0, [sp, #4]
+_0223C8B6:
+ mov r0, #0x9a
+ lsl r0, r0, #4
+ add r2, r5, r0
+ ldr r0, [sp, #4]
+ mov r1, #0x14
+ mul r1, r0
+ add r6, r2, r1
+ ldr r0, [r6, #8]
+ cmp r0, #0
+ beq _0223C8CE
+ bl FUN_0200CAB4
+_0223C8CE:
+ add r0, r6, #0
+ mov r1, #0
+ mov r2, #0x14
+ bl MI_CpuFill8
+ ldr r1, _0223C980 ; =0x022461E4
+ lsl r2, r4, #2
+ ldrsh r0, [r1, r2]
+ add r1, r1, r2
+ str r0, [sp, #0xc]
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _0223C984 ; =0x000009DC
+ ldr r0, [r1, r0]
+ ldr r1, [sp]
+ str r0, [r6]
+ bl FUN_0200C5C0
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #8]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ mov r3, #1
+ ldr r0, [r6]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ lsl r3, r3, #0x14
+ bl FUN_0200C750
+ ldr r0, [r6]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldr r0, [r6]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [sp, #4]
+ mov r1, #0x14
+ add r7, r0, #0
+ mov r4, #0
+ mul r7, r1
+ b _0223C940
+_0223C92C:
+ mov r0, #0x3c
+ mul r0, r4
+ add r0, r5, r0
+ add r1, r0, r7
+ ldr r0, _0223C988 ; =0x000009E8
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020119D0
+ add r4, r4, #1
+_0223C940:
+ cmp r4, #3
+ blt _0223C92C
+ ldr r0, _0223C988 ; =0x000009E8
+ mov r1, #0x3c
+ add r2, r5, r0
+ ldr r0, [sp]
+ mov r3, #1
+ mul r1, r0
+ add r2, r2, r1
+ ldr r0, [sp, #4]
+ mov r1, #0x14
+ mul r1, r0
+ add r0, r2, r1
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #8]
+ str r0, [r6, #4]
+ bl MOD12_02231490
+ ldr r0, [r6, #4]
+ mov r1, #1
+ ldr r0, [r0]
+ bl FUN_020119D0
+ ldr r0, _0223C98C ; =MOD12_0223C994
+ ldr r2, _0223C990 ; =0x00009D08
+ add r1, r6, #0
+ bl FUN_0200CA44
+ str r0, [r6, #8]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223C980: .word 0x022461E4
+_0223C984: .word 0x000009DC
+_0223C988: .word 0x000009E8
+_0223C98C: .word MOD12_0223C994
+_0223C990: .word 0x00009D08
+
+ thumb_func_start MOD12_0223C994
+MOD12_0223C994: ; 0x0223C994
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #0
+ beq _0223C9A8
+ cmp r0, #1
+ beq _0223C9E6
+ b _0223C9FA
+_0223C9A8:
+ ldr r0, [r4, #4]
+ add r1, sp, #4
+ ldr r0, [r0]
+ add r2, sp, #0
+ bl FUN_020119A4
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ sub r2, r0, #4
+ str r2, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0]
+ bl FUN_020118C4
+ mov r1, #0
+ ldr r0, [r4]
+ sub r2, r1, #4
+ bl FUN_0200C82C
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #4
+ ble _0223CA16
+ mov r0, #0
+ str r0, [r4, #0xc]
+ ldrb r0, [r4, #0x10]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223C9E6:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #0xe
+ ble _0223CA16
+ ldrb r0, [r4, #0x10]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223C9FA:
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_020119D0
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #0
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0223CA16:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223CA1C
+MOD12_0223CA1C: ; 0x0223CA1C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ ldr r7, _0223CA40 ; =0x000009A8
+ add r5, r0, #0
+ add r6, r4, #0
+_0223CA26:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _0223CA34
+ bl FUN_0200CAB4
+ ldr r0, _0223CA40 ; =0x000009A8
+ str r6, [r5, r0]
+_0223CA34:
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, #3
+ blt _0223CA26
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223CA40: .word 0x000009A8
+
+ thumb_func_start MOD12_0223CA44
+MOD12_0223CA44: ; 0x0223CA44
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r2, #1
+ str r2, [sp]
+ str r2, [sp, #4]
+ ldr r2, _0223CA8C ; =0x000080F0
+ mov r3, #0x40
+ str r2, [sp, #8]
+ mov r2, #0x2e
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223CA90 ; =0x000080ED
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x41
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223CA90 ; =0x000080ED
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x42
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0223CA8C: .word 0x000080F0
+_0223CA90: .word 0x000080ED
+
+ thumb_func_start MOD12_0223CA94
+MOD12_0223CA94: ; 0x0223CA94
+ push {r4, lr}
+ ldr r1, _0223CAB0 ; =0x000080F0
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _0223CAB4 ; =0x000080ED
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0223CAB4 ; =0x000080ED
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_0223CAB0: .word 0x000080F0
+_0223CAB4: .word 0x000080ED
+
+ thumb_func_start MOD12_0223CAB8
+MOD12_0223CAB8: ; 0x0223CAB8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ ldr r2, _0223CAD8 ; =0x02246244
+ bl FUN_0200C154
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_0200C59C
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ str r4, [r5, r0]
+ pop {r3, r4, r5, pc}
+ nop
+_0223CAD8: .word 0x02246244
+
+ thumb_func_start MOD12_0223CADC
+MOD12_0223CADC: ; 0x0223CADC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0223CAF6
+ bl FUN_0200C3DC
+ mov r0, #0x7a
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0223CAF6:
+ pop {r4, pc}
+
+ thumb_func_start MOD12_0223CAF8
+MOD12_0223CAF8: ; 0x0223CAF8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0223CB10 ; =MOD12_0223CB28
+ ldr r2, _0223CB14 ; =0x00009CAE
+ add r1, r4, #0
+ bl FUN_0200CA44
+ mov r1, #2
+ lsl r1, r1, #8
+ str r0, [r4, r1]
+ pop {r4, pc}
+ nop
+_0223CB10: .word MOD12_0223CB28
+_0223CB14: .word 0x00009CAE
+
+ thumb_func_start MOD12_0223CB18
+MOD12_0223CB18: ; 0x0223CB18
+ mov r1, #2
+ lsl r1, r1, #8
+ ldr r3, _0223CB24 ; =0x0200CAB5
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_0223CB24: .word 0x0200CAB5
+
+ thumb_func_start MOD12_0223CB28
+MOD12_0223CB28: ; 0x0223CB28
+ push {r3, lr}
+ ldr r2, [r1]
+ ldr r0, _0223CB50 ; =0x00000123
+ mov r3, #1
+ ldrb r2, [r2, r0]
+ add r0, #0xd9
+ ldr r0, [r1, r0]
+ lsl r2, r2, #4
+ add r2, r1, r2
+ ldr r1, [r2, #0x1c]
+ ldr r2, [r2, #0x20]
+ lsl r1, r1, #0x10
+ sub r2, #0x28
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ lsl r3, r3, #0x14
+ bl FUN_0200C750
+ pop {r3, pc}
+ .align 2, 0
+_0223CB50: .word 0x00000123
+
+ thumb_func_start MOD12_0223CB54
+MOD12_0223CB54: ; 0x0223CB54
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r2, #1
+ str r2, [sp]
+ str r2, [sp, #4]
+ ldr r2, _0223CB9C ; =0x000080F2
+ mov r3, #0x5a
+ str r2, [sp, #8]
+ mov r2, #0x2e
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223CBA0 ; =0x000080EF
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x59
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223CBA0 ; =0x000080EF
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x58
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0223CB9C: .word 0x000080F2
+_0223CBA0: .word 0x000080EF
+
+ thumb_func_start MOD12_0223CBA4
+MOD12_0223CBA4: ; 0x0223CBA4
+ push {r4, lr}
+ ldr r1, _0223CBC0 ; =0x000080F2
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _0223CBC4 ; =0x000080EF
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0223CBC4 ; =0x000080EF
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_0223CBC0: .word 0x000080F2
+_0223CBC4: .word 0x000080EF
+
+ thumb_func_start MOD12_0223CBC8
+MOD12_0223CBC8: ; 0x0223CBC8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r1, [sp, #4]
+ str r0, [sp, #0xc]
+ ldr r4, [sp]
+ mov r1, #2
+ add r0, r4, #0
+ lsl r1, r1, #8
+ ldr r6, [sp, #0xc]
+ str r2, [sp, #8]
+ add r7, r0, #4
+ add r5, r0, r1
+_0223CBE4:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ ldr r2, _0223CC60 ; =0x022462AC
+ bl FUN_0200C154
+ mov r1, #0x81
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ mov r0, #0x81
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C840
+ ldr r1, [sp, #0xc]
+ ldr r0, _0223CC64 ; =0x00000213
+ strb r1, [r4, r0]
+ sub r0, r0, #7
+ str r7, [r4, r0]
+ ldr r0, [sp]
+ mov r1, #2
+ ldr r0, [r0]
+ ldr r0, [r0, r6]
+ bl FUN_02068E14
+ mov r1, #0x85
+ lsl r1, r1, #2
+ strb r0, [r4, r1]
+ mov r1, #1
+ add r0, r5, #0
+ add r2, r1, #0
+ bl MOD12_0223CD38
+ ldr r0, _0223CC68 ; =MOD12_0223CCBC
+ ldr r2, _0223CC6C ; =0x0000A08C
+ add r1, r5, #0
+ bl FUN_0200CA44
+ mov r1, #2
+ lsl r1, r1, #8
+ str r0, [r4, r1]
+ ldr r0, [sp, #0xc]
+ add r4, #0x18
+ add r0, r0, #1
+ add r7, #0x10
+ add r6, r6, #4
+ add r5, #0x18
+ str r0, [sp, #0xc]
+ cmp r0, #4
+ blt _0223CBE4
+ ldr r0, [sp]
+ mov r1, #0
+ bl MOD12_0223CC9C
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223CC60: .word 0x022462AC
+_0223CC64: .word 0x00000213
+_0223CC68: .word MOD12_0223CCBC
+_0223CC6C: .word 0x0000A08C
+
+ thumb_func_start MOD12_0223CC70
+MOD12_0223CC70: ; 0x0223CC70
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ mov r7, #0x81
+ add r5, r0, #0
+ add r6, r4, #0
+ lsl r7, r7, #2
+_0223CC7C:
+ mov r0, #0x81
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0200C3DC
+ mov r0, #2
+ lsl r0, r0, #8
+ ldr r0, [r5, r0]
+ bl FUN_0200CAB4
+ str r6, [r5, r7]
+ add r4, r4, #1
+ add r5, #0x18
+ cmp r4, #4
+ blt _0223CC7C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD12_0223CC9C
+MOD12_0223CC9C: ; 0x0223CC9C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #0x81
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+ lsl r7, r7, #2
+_0223CCA8:
+ ldr r0, [r5, r7]
+ add r1, r6, #0
+ bl FUN_0200C644
+ add r4, r4, #1
+ add r5, #0x18
+ cmp r4, #4
+ blt _0223CCA8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223CCBC
+MOD12_0223CCBC: ; 0x0223CCBC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r0, [r5, #0xc]
+ ldr r6, [r0, #4]
+ ldr r4, [r0, #8]
+ ldr r0, [r0, #0xc]
+ bl MOD12_0223D06C
+ mov r1, #0x14
+ ldrsb r2, [r5, r1]
+ mov r1, #0x28
+ sub r2, r1, r2
+ add r1, r2, #0
+ mul r1, r0
+ asr r2, r1, #7
+ lsr r2, r2, #0x18
+ add r2, r1, r2
+ asr r1, r2, #8
+ add r4, r4, r1
+ mov r1, #0x64
+ mul r1, r0
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r0, r0, #8
+ bl _fflt
+ ldr r1, _0223CD34 ; =0x42C80000
+ bl _fdiv
+ add r7, r0, #0
+ ldrb r0, [r5, #0x12]
+ cmp r0, #0
+ bne _0223CD16
+ add r1, sp, #0
+ mov r3, #1
+ ldr r0, [r5, #4]
+ add r1, #2
+ add r2, sp, #0
+ lsl r3, r3, #0x14
+ bl FUN_0200C7F0
+ add r1, sp, #0
+ mov r0, #0
+ ldrsh r4, [r1, r0]
+_0223CD16:
+ lsl r1, r6, #0x10
+ lsl r2, r4, #0x10
+ mov r3, #1
+ ldr r0, [r5, #4]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ lsl r3, r3, #0x14
+ bl FUN_0200C750
+ ldr r0, [r5, #4]
+ add r1, r7, #0
+ add r2, r7, #0
+ bl FUN_0200C884
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223CD34: .word 0x42C80000
+
+ thumb_func_start MOD12_0223CD38
+MOD12_0223CD38: ; 0x0223CD38
+ strb r1, [r0, #0x11]
+ strb r2, [r0, #0x12]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0223CD40
+MOD12_0223CD40: ; 0x0223CD40
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r2, #1
+ str r2, [sp]
+ str r2, [sp, #4]
+ ldr r2, _0223CD88 ; =0x000080F3
+ mov r3, #0x5d
+ str r2, [sp, #8]
+ mov r2, #0x2e
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223CD8C ; =0x000080F0
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x5c
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223CD8C ; =0x000080F0
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x5b
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0223CD88: .word 0x000080F3
+_0223CD8C: .word 0x000080F0
+
+ thumb_func_start MOD12_0223CD90
+MOD12_0223CD90: ; 0x0223CD90
+ push {r4, lr}
+ ldr r1, _0223CDAC ; =0x000080F3
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _0223CDB0 ; =0x000080F0
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0223CDB0 ; =0x000080F0
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_0223CDAC: .word 0x000080F3
+_0223CDB0: .word 0x000080F0
+
+ thumb_func_start MOD12_0223CDB4
+MOD12_0223CDB4: ; 0x0223CDB4
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0223CDB8
+MOD12_0223CDB8: ; 0x0223CDB8
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0223CDBC
+MOD12_0223CDBC: ; 0x0223CDBC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r2, #1
+ str r2, [sp]
+ str r2, [sp, #4]
+ ldr r2, _0223CE04 ; =0x000080F4
+ mov r3, #0x60
+ str r2, [sp, #8]
+ mov r2, #0x2e
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223CE08 ; =0x000080F1
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x5f
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223CE08 ; =0x000080F1
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x5e
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0223CE04: .word 0x000080F4
+_0223CE08: .word 0x000080F1
+
+ thumb_func_start MOD12_0223CE0C
+MOD12_0223CE0C: ; 0x0223CE0C
+ push {r4, lr}
+ ldr r1, _0223CE28 ; =0x000080F4
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _0223CE2C ; =0x000080F1
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0223CE2C ; =0x000080F1
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_0223CE28: .word 0x000080F4
+_0223CE2C: .word 0x000080F1
+
+ thumb_func_start MOD12_0223CE30
+MOD12_0223CE30: ; 0x0223CE30
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0xad
+ lsl r0, r0, #2
+ add r7, r1, #0
+ add r1, r5, r0
+ sub r0, #0xf4
+ mul r0, r7
+ add r4, r1, r0
+ str r2, [sp]
+ mov r1, #0
+_0223CE48:
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0223CE56
+ add r1, r1, #1
+ add r4, #0x1c
+ cmp r1, #0x10
+ blt _0223CE48
+_0223CE56:
+ cmp r1, #0x10
+ bne _0223CE60
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CE60:
+ ldr r0, [r5, #0x6c]
+ ldr r1, [r5, #0x70]
+ ldr r2, _0223CF2C ; =0x02246348
+ bl FUN_0200C154
+ add r6, r0, #0
+ bne _0223CE74
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CE74:
+ lsl r1, r7, #4
+ add r2, r5, r1
+ ldr r1, [r2, #0x1c]
+ ldr r7, [r2, #0x20]
+ str r1, [sp, #4]
+ ldr r1, [sp]
+ bl FUN_0200C5C0
+ ldr r1, [sp, #4]
+ lsl r2, r7, #0x10
+ lsl r1, r1, #0x10
+ mov r3, #1
+ add r0, r6, #0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ lsl r3, r3, #0x14
+ bl FUN_0200C750
+ ldr r0, [r6]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r6]
+ bl FUN_0200C59C
+ ldr r0, [r5]
+ bl FUN_02082878
+ ldr r2, _0223CF30 ; =0x04000280
+ mov r1, #0
+ strh r1, [r2]
+ str r0, [r2, #0x10]
+ mov r0, #5
+ lsl r0, r0, #8
+ add r2, #0x18
+ str r0, [r2]
+ str r1, [r2, #4]
+ add r0, r4, #0
+ mov r2, #0x1c
+ bl MI_CpuFill8
+ ldr r0, [sp, #4]
+ str r6, [r4, #4]
+ lsl r0, r0, #8
+ str r0, [r4, #8]
+ lsl r0, r7, #8
+ ldr r2, _0223CF30 ; =0x04000280
+ str r0, [r4, #0xc]
+ lsr r0, r2, #0xb
+_0223CED6:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0223CED6
+ ldr r0, _0223CF34 ; =0x040002A8
+ ldr r1, [r0]
+ mov r0, #1
+ str r1, [r4, #0x10]
+ tst r0, r1
+ beq _0223CEEC
+ neg r0, r1
+ str r0, [r4, #0x10]
+_0223CEEC:
+ ldr r0, [r5]
+ bl FUN_02082878
+ ldr r2, _0223CF38 ; =0x04000290
+ mov r1, #0xf
+ str r0, [r2]
+ lsl r1, r1, #8
+ add r2, #8
+ mov r0, #0
+ str r1, [r2]
+ str r0, [r2, #4]
+ ldr r2, _0223CF30 ; =0x04000280
+ lsr r0, r2, #0xb
+_0223CF06:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0223CF06
+ ldr r0, _0223CF34 ; =0x040002A8
+ ldr r2, _0223CF3C ; =0x00009C40
+ ldr r1, [r0]
+ lsr r0, r0, #0x10
+ add r0, r1, r0
+ neg r0, r0
+ str r0, [r4, #0x14]
+ ldr r0, _0223CF40 ; =MOD12_0223CF44
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4]
+ mov r0, #1
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223CF2C: .word 0x02246348
+_0223CF30: .word 0x04000280
+_0223CF34: .word 0x040002A8
+_0223CF38: .word 0x04000290
+_0223CF3C: .word 0x00009C40
+_0223CF40: .word MOD12_0223CF44
+
+ thumb_func_start MOD12_0223CF44
+MOD12_0223CF44: ; 0x0223CF44
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x10]
+ add r0, r1, r0
+ str r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x14]
+ add r0, r1, r0
+ str r0, [r4, #0xc]
+ mov r0, #2
+ ldr r1, [r4, #0x14]
+ lsl r0, r0, #8
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldrh r0, [r4, #0x18]
+ add r0, r0, #1
+ strh r0, [r4, #0x18]
+ ldrh r0, [r4, #0x18]
+ cmp r0, #0xa
+ bhi _0223CF8A
+ mov r0, #0x11
+ ldr r1, [r4, #8]
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bgt _0223CF8A
+ ldr r0, _0223CFF0 ; =0xFFFEF000
+ cmp r1, r0
+ blt _0223CF8A
+ mov r0, #0xd
+ ldr r2, [r4, #0xc]
+ lsl r0, r0, #0xc
+ cmp r2, r0
+ ble _0223CF9E
+_0223CF8A:
+ ldr r0, [r4, #4]
+ bl FUN_0200C3DC
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_0223CF9E:
+ ldr r0, _0223CFF4 ; =0x04000280
+ mov r3, #0
+ strh r3, [r0]
+ str r1, [r0, #0x10]
+ add r1, r0, #0
+ lsr r2, r0, #0x12
+ add r1, #0x18
+ str r2, [r1]
+ str r3, [r1, #4]
+ lsr r1, r0, #0xb
+_0223CFB2:
+ ldrh r2, [r0]
+ tst r2, r1
+ bne _0223CFB2
+ ldr r3, _0223CFF8 ; =0x040002A0
+ ldr r2, [r4, #0xc]
+ add r0, r3, #0
+ ldr r1, [r3]
+ sub r0, #0x10
+ str r2, [r0]
+ lsr r2, r3, #0x12
+ sub r3, #8
+ mov r0, #0
+ str r2, [r3]
+ str r0, [r3, #4]
+ ldr r3, _0223CFF4 ; =0x04000280
+ lsr r0, r3, #0xb
+_0223CFD2:
+ ldrh r2, [r3]
+ tst r2, r0
+ bne _0223CFD2
+ ldr r2, _0223CFF8 ; =0x040002A0
+ lsl r1, r1, #0x10
+ ldr r2, [r2]
+ mov r3, #1
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #4]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ lsl r3, r3, #0x14
+ bl FUN_0200C750
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223CFF0: .word 0xFFFEF000
+_0223CFF4: .word 0x04000280
+_0223CFF8: .word 0x040002A0
+
+ thumb_func_start MOD12_0223CFFC
+MOD12_0223CFFC: ; 0x0223CFFC
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ str r1, [sp]
+ cmp r2, #2
+ beq _0223D058
+ add r0, r1, #0
+ lsl r0, r0, #1
+ add r1, r7, r0
+ ldr r0, _0223D05C ; =0x00000ADA
+ ldrsh r0, [r1, r0]
+ cmp r0, #0
+ beq _0223D058
+ ldr r1, _0223D060 ; =0x04000280
+ mov r6, #0
+ strh r6, [r1]
+ str r0, [r1, #0x10]
+ mov r0, #2
+ add r1, #0x18
+ str r0, [r1]
+ str r6, [r1, #4]
+ cmp r3, #0
+ beq _0223D02A
+ mov r6, #1
+_0223D02A:
+ ldr r2, _0223D060 ; =0x04000280
+ lsr r0, r2, #0xb
+_0223D02E:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0223D02E
+ ldr r0, _0223D064 ; =0x040002A0
+ ldr r5, [r0]
+ cmp r5, #0x10
+ ble _0223D03E
+ mov r5, #0x10
+_0223D03E:
+ mov r4, #0
+ cmp r5, #0
+ ble _0223D058
+_0223D044:
+ ldr r1, [sp]
+ add r0, r7, #0
+ add r2, r6, #0
+ bl MOD12_0223CE30
+ cmp r0, #0
+ beq _0223D058
+ add r4, r4, #1
+ cmp r4, r5
+ blt _0223D044
+_0223D058:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223D05C: .word 0x00000ADA
+_0223D060: .word 0x04000280
+_0223D064: .word 0x040002A0
+
+ thumb_func_start MOD12_0223D068
+MOD12_0223D068: ; 0x0223D068
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0223D06C
+MOD12_0223D06C: ; 0x0223D06C
+ ldr r1, _0223D098 ; =0xFFFFFD80
+ cmp r0, r1
+ bne _0223D076
+ mov r0, #0xc0
+ bx lr
+_0223D076:
+ add r1, #0x80
+ cmp r0, r1
+ bne _0223D082
+ mov r0, #1
+ lsl r0, r0, #8
+ bx lr
+_0223D082:
+ mov r1, #0xa
+ lsl r1, r1, #6
+ add r0, r0, r1
+ lsl r1, r0, #6
+ asr r0, r1, #6
+ lsr r0, r0, #0x19
+ add r0, r1, r0
+ asr r0, r0, #7
+ add r0, #0xc0
+ bx lr
+ nop
+_0223D098: .word 0xFFFFFD80
+
+ thumb_func_start MOD12_0223D09C
+MOD12_0223D09C: ; 0x0223D09C
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0xc]
+ bl MOD12_0223D06C
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r0, r1
+ bne _0223D0B2
+ lsl r1, r1, #4
+ b _0223D0BC
+_0223D0B2:
+ lsl r1, r0, #0xc
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r1, r0, #8
+_0223D0BC:
+ mov r3, #1
+ ldr r0, [r4]
+ add r2, r1, #0
+ lsl r3, r3, #0xc
+ bl FUN_021DD60C
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223D0CC
+MOD12_0223D0CC: ; 0x0223D0CC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r6, #0
+ add r4, r5, #4
+_0223D0D4:
+ ldr r0, [r5, #0x48]
+ add r1, r4, #0
+ bl MOD12_0223D09C
+ add r6, r6, #1
+ add r4, #0x10
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0223D0D4
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD12_0223D0E8
+MOD12_0223D0E8: ; 0x0223D0E8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldrb r0, [r2, #2]
+ str r2, [sp, #0x10]
+ cmp r0, r1
+ bne _0223D0FC
+ mov r0, #0
+ str r0, [sp, #0x14]
+ b _0223D100
+_0223D0FC:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_0223D100:
+ ldr r0, [sp, #0x10]
+ mov r4, #0
+ ldrb r0, [r0, #6]
+ lsl r6, r0, #3
+ ldr r0, [sp, #0x10]
+ ldrb r1, [r0, #7]
+ ldr r0, _0223D1C0 ; =0x022461DC
+ ldrb r7, [r0, r1]
+ b _0223D156
+_0223D112:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0223D154
+ add r1, sp, #0x18
+ mov r3, #1
+ add r1, #2
+ add r2, sp, #0x18
+ lsl r3, r3, #0x14
+ bl FUN_0200C7F0
+ add r1, sp, #0x18
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ cmp r0, r6
+ bne _0223D154
+ mov r0, #0
+ ldrsh r0, [r1, r0]
+ cmp r0, r7
+ bne _0223D154
+ lsl r0, r4, #2
+ add r0, r5, r0
+ add r0, #0xec
+ ldr r0, [r0]
+ bl FUN_0200C5CC
+ cmp r0, #2
+ beq _0223D154
+ add sp, #0x1c
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223D154:
+ add r4, r4, #1
+_0223D156:
+ cmp r4, #0x44
+ blt _0223D112
+ ldr r0, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ ldrb r0, [r0, #3]
+ str r0, [sp]
+ str r6, [sp, #4]
+ ldr r0, [sp, #0x10]
+ str r7, [sp, #8]
+ ldrb r0, [r0, #7]
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ ldr r1, [r5, #0x6c]
+ ldr r2, [r5, #0x70]
+ add r0, #0x14
+ bl MOD12_0223C52C
+ ldr r0, [sp, #0x10]
+ ldrb r0, [r0, #7]
+ cmp r0, #0
+ bne _0223D1BA
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ bne _0223D1BA
+ ldr r0, [r5]
+ ldr r1, _0223D1C4 ; =0x00000123
+ ldr r2, _0223D1C8 ; =0x00000AD5
+ ldrb r0, [r0, r1]
+ add r6, #0x80
+ add r0, r5, r0
+ ldrb r3, [r0, r2]
+ ldr r0, _0223D1C0 ; =0x022461DC
+ ldrb r3, [r0, r3]
+ ldr r0, [sp, #0x10]
+ ldrb r0, [r0, #3]
+ str r0, [sp]
+ str r6, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r5]
+ mov r3, #2
+ ldrb r0, [r0, r1]
+ add r0, r5, r0
+ ldrb r0, [r0, r2]
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ ldr r1, [r5, #0x6c]
+ ldr r2, [r5, #0x70]
+ add r0, #0x14
+ bl MOD12_0223C52C
+_0223D1BA:
+ mov r0, #1
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223D1C0: .word 0x022461DC
+_0223D1C4: .word 0x00000123
+_0223D1C8: .word 0x00000AD5
+
+ thumb_func_start MOD12_0223D1CC
+MOD12_0223D1CC: ; 0x0223D1CC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldrb r1, [r4, #5]
+ add r5, r0, #0
+ ldrb r0, [r4, #2]
+ cmp r1, #3
+ bhi _0223D200
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223D1E8: ; jump table
+ .short _0223D1F0 - _0223D1E8 - 2 ; case 0
+ .short _0223D1F4 - _0223D1E8 - 2 ; case 1
+ .short _0223D1F8 - _0223D1E8 - 2 ; case 2
+ .short _0223D1FC - _0223D1E8 - 2 ; case 3
+_0223D1F0:
+ mov r2, #2
+ b _0223D202
+_0223D1F4:
+ mov r2, #2
+ b _0223D202
+_0223D1F8:
+ mov r2, #1
+ b _0223D202
+_0223D1FC:
+ mov r2, #1
+ b _0223D202
+_0223D200:
+ mov r2, #0
+_0223D202:
+ ldr r1, _0223D498 ; =0x00000ADA
+ lsl r0, r0, #1
+ add r1, r5, r1
+ add r3, r1, r0
+ str r3, [sp, #8]
+ ldrsh r3, [r1, r0]
+ add r2, r3, r2
+ strh r2, [r1, r0]
+ ldrb r0, [r4, #7]
+ cmp r0, #0
+ bne _0223D262
+ ldr r0, _0223D49C ; =0x00001BA0
+ mov r2, #0
+ add r3, r5, r0
+ add r6, r5, #0
+ sub r7, r0, #2
+_0223D222:
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bne _0223D250
+ mov r0, #0xa
+ mul r0, r2
+ ldrh r1, [r4]
+ ldr r2, _0223D4A0 ; =0x00001B98
+ add r0, r5, r0
+ strh r1, [r0, r2]
+ ldrh r3, [r4, #2]
+ add r1, r2, #2
+ strh r3, [r0, r1]
+ ldrh r3, [r4, #4]
+ add r1, r2, #4
+ strh r3, [r0, r1]
+ add r1, r2, #6
+ ldrh r3, [r4, #6]
+ add r2, #8
+ strh r3, [r0, r1]
+ ldrh r1, [r4, #8]
+ strh r1, [r0, r2]
+ b _0223D262
+_0223D250:
+ ldrb r1, [r4, #6]
+ ldrb r0, [r6, r7]
+ cmp r1, r0
+ beq _0223D262
+ add r2, r2, #1
+ add r3, #0xa
+ add r6, #0xa
+ cmp r2, #8
+ blt _0223D222
+_0223D262:
+ ldrb r0, [r4, #4]
+ cmp r0, #0
+ bne _0223D280
+ ldr r0, _0223D4A4 ; =0x00000AB9
+ ldrb r2, [r4, #2]
+ add r3, r5, r0
+ add r0, r0, #4
+ ldrb r1, [r3, r2]
+ add r1, r1, #1
+ strb r1, [r3, r2]
+ ldrb r1, [r4, #2]
+ add r2, r5, r0
+ ldrb r0, [r2, r1]
+ add r0, r0, #1
+ b _0223D290
+_0223D280:
+ ldrb r1, [r4, #2]
+ mov r0, #0
+ add r2, r5, r1
+ ldr r1, _0223D4A4 ; =0x00000AB9
+ strb r0, [r2, r1]
+ ldrb r2, [r4, #2]
+ add r1, r1, #4
+ add r2, r5, r2
+_0223D290:
+ strb r0, [r2, r1]
+ ldrb r0, [r4, #4]
+ cmp r0, #2
+ beq _0223D2A6
+ ldr r0, _0223D4A8 ; =0x00000AC8
+ ldrb r1, [r4, #2]
+ add r2, r5, r0
+ ldrb r0, [r2, r1]
+ add r0, r0, #1
+ strb r0, [r2, r1]
+ b _0223D2BC
+_0223D2A6:
+ ldr r0, _0223D4AC ; =0x00000AC1
+ ldrb r2, [r4, #2]
+ add r3, r5, r0
+ add r0, r0, #7
+ ldrb r1, [r3, r2]
+ add r1, r1, #1
+ strb r1, [r3, r2]
+ ldrb r1, [r4, #2]
+ mov r2, #0
+ add r1, r5, r1
+ strb r2, [r1, r0]
+_0223D2BC:
+ ldrb r0, [r4, #7]
+ cmp r0, #0
+ beq _0223D2EE
+ ldrb r0, [r4, #4]
+ cmp r0, #0
+ beq _0223D2D2
+ cmp r0, #1
+ beq _0223D2DC
+ cmp r0, #2
+ beq _0223D2E6
+ b _0223D2EE
+_0223D2D2:
+ ldr r0, _0223D4B0 ; =0x00000AC5
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ b _0223D2EE
+_0223D2DC:
+ ldr r0, _0223D4B4 ; =0x00000AC6
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ b _0223D2EE
+_0223D2E6:
+ ldr r0, _0223D4B8 ; =0x00000AC7
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+_0223D2EE:
+ ldrb r0, [r4, #2]
+ str r0, [sp]
+ ldrb r0, [r4, #7]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ ldrb r3, [r4, #4]
+ ldr r1, [r5, #0x6c]
+ ldr r2, [r5, #0x70]
+ add r0, #0x14
+ bl MOD12_0223C8A0
+ ldr r2, [r5]
+ ldr r1, _0223D4BC ; =0x00000123
+ add r0, r5, #0
+ ldrb r1, [r2, r1]
+ add r2, r4, #0
+ bl MOD12_0223D0E8
+ ldrb r0, [r4, #8]
+ mov r1, #0
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ str r0, [sp]
+ ldr r0, [sp, #8]
+ ldrsh r0, [r0, r1]
+ str r0, [sp, #4]
+ ldrb r1, [r4, #2]
+ ldrb r2, [r4, #7]
+ ldrb r3, [r4, #3]
+ add r0, r5, #0
+ bl MOD12_0223D4E8
+ ldrb r1, [r4, #2]
+ ldrb r2, [r4, #4]
+ ldrb r3, [r4, #7]
+ add r0, r5, #0
+ bl MOD12_0223CFFC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD12_0223E788
+ ldr r1, [r5]
+ ldr r0, _0223D4BC ; =0x00000123
+ ldrb r2, [r4, #2]
+ ldrb r0, [r1, r0]
+ cmp r2, r0
+ bne _0223D36E
+ ldrb r0, [r4, #4]
+ cmp r0, #0
+ bne _0223D360
+ ldrb r1, [r4, #6]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD12_0223E9C4
+ b _0223D36E
+_0223D360:
+ cmp r0, #1
+ bne _0223D36E
+ ldrb r1, [r4, #6]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD12_0223E9C4
+_0223D36E:
+ ldrb r1, [r4, #7]
+ cmp r1, #0
+ bne _0223D3AC
+ ldrb r0, [r4, #8]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _0223D3AC
+ ldrb r1, [r4, #2]
+ ldr r0, _0223D4C0 ; =0x00000AFE
+ add r2, r5, r1
+ add r1, r0, #0
+ sub r1, #0x41
+ ldrb r3, [r5, r0]
+ ldrb r1, [r2, r1]
+ cmp r3, r1
+ bne _0223D39A
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD12_0223EA48
+ b _0223D3F2
+_0223D39A:
+ sub r0, #0x3d
+ ldrb r0, [r2, r0]
+ cmp r0, #0
+ bne _0223D3F2
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD12_0223EA48
+ b _0223D3F2
+_0223D3AC:
+ cmp r1, #0
+ beq _0223D3F2
+ ldrb r0, [r4, #8]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _0223D3F2
+ ldr r3, _0223D4B0 ; =0x00000AC5
+ add r0, r3, #2
+ ldrb r1, [r5, r0]
+ add r0, r3, #0
+ ldrb r2, [r5, r3]
+ add r0, #0x39
+ add r3, r3, #1
+ ldrb r6, [r5, r0]
+ ldrb r3, [r5, r3]
+ lsl r0, r6, #1
+ add r3, r2, r3
+ add r0, r6, r0
+ add r3, r1, r3
+ cmp r0, r3
+ bne _0223D3F2
+ cmp r2, r0
+ bne _0223D3E6
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD12_0223EA48
+ b _0223D3F2
+_0223D3E6:
+ cmp r1, #0
+ bne _0223D3F2
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD12_0223EA48
+_0223D3F2:
+ ldrb r0, [r4, #8]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _0223D404
+ ldr r0, _0223D4C4 ; =0x000006F5
+ bl FUN_020054C8
+ b _0223D40A
+_0223D404:
+ ldr r0, _0223D4C8 ; =0x000006F4
+ bl FUN_020054C8
+_0223D40A:
+ ldr r0, _0223D4CC ; =0x00000ACC
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _0223D426
+ beq _0223D492
+ ldrb r0, [r4, #7]
+ cmp r0, #0
+ beq _0223D426
+ ldr r1, [r5]
+ ldr r0, _0223D4BC ; =0x00000123
+ ldrb r2, [r4, #2]
+ ldrb r0, [r1, r0]
+ cmp r2, r0
+ bne _0223D492
+_0223D426:
+ ldrb r0, [r4, #4]
+ cmp r0, #0
+ beq _0223D438
+ cmp r0, #1
+ beq _0223D46E
+ cmp r0, #2
+ beq _0223D478
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0223D438:
+ ldrb r0, [r4, #2]
+ add r1, r5, r0
+ ldr r0, _0223D4D0 ; =0x00000ABD
+ ldrb r1, [r1, r0]
+ add r0, #0x41
+ ldrb r0, [r5, r0]
+ cmp r0, r1
+ bne _0223D454
+ mov r0, #0x6f
+ lsl r0, r0, #4
+ bl FUN_020054C8
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0223D454:
+ sub r0, r0, #1
+ cmp r0, r1
+ bne _0223D464
+ ldr r0, _0223D4D4 ; =0x000006EF
+ bl FUN_020054C8
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0223D464:
+ ldr r0, _0223D4D8 ; =0x000006EE
+ bl FUN_020054C8
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0223D46E:
+ ldr r0, _0223D4DC ; =0x000006F1
+ bl FUN_020054C8
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0223D478:
+ ldrb r0, [r4, #8]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _0223D48C
+ ldr r0, _0223D4E0 ; =0x000006F2
+ bl FUN_020054C8
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0223D48C:
+ ldr r0, _0223D4E4 ; =0x000005F6
+ bl FUN_020054C8
+_0223D492:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223D498: .word 0x00000ADA
+_0223D49C: .word 0x00001BA0
+_0223D4A0: .word 0x00001B98
+_0223D4A4: .word 0x00000AB9
+_0223D4A8: .word 0x00000AC8
+_0223D4AC: .word 0x00000AC1
+_0223D4B0: .word 0x00000AC5
+_0223D4B4: .word 0x00000AC6
+_0223D4B8: .word 0x00000AC7
+_0223D4BC: .word 0x00000123
+_0223D4C0: .word 0x00000AFE
+_0223D4C4: .word 0x000006F5
+_0223D4C8: .word 0x000006F4
+_0223D4CC: .word 0x00000ACC
+_0223D4D0: .word 0x00000ABD
+_0223D4D4: .word 0x000006EF
+_0223D4D8: .word 0x000006EE
+_0223D4DC: .word 0x000006F1
+_0223D4E0: .word 0x000006F2
+_0223D4E4: .word 0x000005F6
+
+ thumb_func_start MOD12_0223D4E8
+MOD12_0223D4E8: ; 0x0223D4E8
+ push {r4, r5, r6, lr}
+ ldr r4, _0223D558 ; =0x00000F3C
+ add r5, r0, r4
+ mov r0, #0x4c
+ add r4, r1, #0
+ mul r4, r0
+ add r1, r5, r4
+ add r4, r1, #0
+ add r4, #0x20
+ ldrb r4, [r4]
+ sub r0, #0x4d
+ add r6, r4, #0
+ cmp r4, #0x20
+ bge _0223D514
+_0223D504:
+ ldrb r5, [r1, r6]
+ cmp r5, #0
+ bne _0223D50E
+ add r0, r6, #0
+ b _0223D514
+_0223D50E:
+ add r6, r6, #1
+ cmp r6, #0x20
+ blt _0223D504
+_0223D514:
+ mov r5, #0
+ mvn r5, r5
+ cmp r0, r5
+ bne _0223D532
+ mov r6, #0
+ cmp r4, #0
+ ble _0223D532
+_0223D522:
+ ldrb r5, [r1, r6]
+ cmp r5, #0
+ bne _0223D52C
+ add r0, r6, #0
+ b _0223D532
+_0223D52C:
+ add r6, r6, #1
+ cmp r6, r4
+ blt _0223D522
+_0223D532:
+ mov r4, #0
+ mvn r4, r4
+ cmp r0, r4
+ bne _0223D540
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+_0223D540:
+ strb r3, [r1, r0]
+ add r0, r1, #0
+ add r0, #0x21
+ strb r2, [r0]
+ add r0, r1, #0
+ ldr r2, [sp, #0x10]
+ add r0, #0x22
+ strb r2, [r0]
+ ldr r0, [sp, #0x14]
+ add r1, #0x23
+ strb r0, [r1]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0223D558: .word 0x00000F3C
+
+ thumb_func_start MOD12_0223D55C
+MOD12_0223D55C: ; 0x0223D55C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0223D570 ; =MOD12_0223D5B0
+ ldr r2, _0223D574 ; =0x00009862
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #8]
+ pop {r4, pc}
+ nop
+_0223D570: .word MOD12_0223D5B0
+_0223D574: .word 0x00009862
+
+ thumb_func_start MOD12_0223D578
+MOD12_0223D578: ; 0x0223D578
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #8]
+ pop {r4, pc}
+
+ thumb_func_start MOD12_0223D588
+MOD12_0223D588: ; 0x0223D588
+ ldr r1, _0223D5AC ; =0x00000F3C
+ mov r2, #0
+ add r1, r0, r1
+_0223D58E:
+ add r0, r1, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _0223D59E
+ mov r0, #0
+ bx lr
+_0223D59E:
+ add r2, r2, #1
+ add r1, #0x4c
+ cmp r2, #4
+ blt _0223D58E
+ mov r0, #1
+ bx lr
+ nop
+_0223D5AC: .word 0x00000F3C
+
+ thumb_func_start MOD12_0223D5B0
+MOD12_0223D5B0: ; 0x0223D5B0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r1, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r1, _0223D76C ; =0x00000F3C
+ ldr r0, [sp, #0x10]
+ ldr r6, [sp, #0x10]
+ add r4, r0, r1
+ mov r1, #0x85
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r5, [sp, #0x10]
+ str r0, [sp, #0x14]
+ add r6, #0x18
+_0223D5CE:
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ mov r7, #0
+ ldrb r0, [r4, r0]
+ str r0, [sp, #0x1c]
+ cmp r0, #0
+ bne _0223D5E0
+ b _0223D750
+_0223D5E0:
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x18]
+ mov r2, #4
+ bl MOD12_0223DCE8
+ ldr r1, [sp, #0x10]
+ ldr r0, _0223D770 ; =0x00000AE8
+ ldr r0, [r1, r0]
+ ldr r1, _0223D774 ; =0x00002710
+ bl _u32_div_f
+ ldr r1, [sp, #0x1c]
+ cmp r1, #4
+ bls _0223D5FE
+ b _0223D708
+_0223D5FE:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223D60A: ; jump table
+ .short _0223D708 - _0223D60A - 2 ; case 0
+ .short _0223D614 - _0223D60A - 2 ; case 1
+ .short _0223D67E - _0223D60A - 2 ; case 2
+ .short _0223D6AC - _0223D60A - 2 ; case 3
+ .short _0223D6DA - _0223D60A - 2 ; case 4
+_0223D614:
+ ldr r2, [sp, #0x10]
+ ldr r1, [sp, #0x18]
+ add r2, r2, r1
+ ldr r1, _0223D778 ; =0x00000AB4
+ ldrb r1, [r2, r1]
+ cmp r1, #1
+ bne _0223D650
+ add r1, r4, #0
+ add r1, #0x22
+ ldrb r1, [r1]
+ add r3, r4, #0
+ sub r0, r0, #1
+ str r1, [sp]
+ add r1, r4, #0
+ add r1, #0x23
+ ldrb r1, [r1]
+ add r3, #0x21
+ add r2, r6, #0
+ str r1, [sp, #4]
+ ldr r1, [sp, #0x14]
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrb r3, [r3]
+ ldr r1, [r5, #0x5c]
+ add r0, #0x24
+ bl MOD12_0223D77C
+ add r7, r0, #0
+ b _0223D70C
+_0223D650:
+ add r1, r4, #0
+ add r1, #0x22
+ ldrb r1, [r1]
+ add r3, r4, #0
+ sub r0, r0, #1
+ str r1, [sp]
+ add r1, r4, #0
+ add r1, #0x23
+ ldrb r1, [r1]
+ add r3, #0x21
+ add r2, r6, #0
+ str r1, [sp, #4]
+ add r1, r7, #0
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrb r3, [r3]
+ ldr r1, [r5, #0x5c]
+ add r0, #0x24
+ bl MOD12_0223D890
+ add r7, r0, #0
+ b _0223D70C
+_0223D67E:
+ add r1, r4, #0
+ add r1, #0x22
+ ldrb r1, [r1]
+ add r3, r4, #0
+ sub r0, r0, #1
+ str r1, [sp]
+ add r1, r4, #0
+ add r1, #0x23
+ ldrb r1, [r1]
+ add r3, #0x21
+ add r2, r6, #0
+ str r1, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrb r3, [r3]
+ ldr r1, [r5, #0x5c]
+ add r0, #0x24
+ bl MOD12_0223D890
+ add r7, r0, #0
+ b _0223D70C
+_0223D6AC:
+ add r1, r4, #0
+ add r1, #0x22
+ ldrb r1, [r1]
+ add r3, r4, #0
+ sub r0, r0, #1
+ str r1, [sp]
+ add r1, r4, #0
+ add r1, #0x23
+ ldrb r1, [r1]
+ add r3, #0x21
+ add r2, r6, #0
+ str r1, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrb r3, [r3]
+ ldr r1, [r5, #0x5c]
+ add r0, #0x24
+ bl MOD12_0223DA10
+ add r7, r0, #0
+ b _0223D70C
+_0223D6DA:
+ add r1, r4, #0
+ add r1, #0x22
+ ldrb r1, [r1]
+ add r3, r4, #0
+ sub r0, r0, #1
+ str r1, [sp]
+ add r1, r4, #0
+ add r1, #0x23
+ ldrb r1, [r1]
+ add r3, #0x21
+ add r2, r6, #0
+ str r1, [sp, #4]
+ add r1, r7, #0
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrb r3, [r3]
+ ldr r1, [r5, #0x5c]
+ add r0, #0x24
+ bl MOD12_0223DA10
+ add r7, r0, #0
+ b _0223D70C
+_0223D708:
+ bl ErrorHandling
+_0223D70C:
+ cmp r7, #1
+ bne _0223D750
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r1, [r0]
+ mov r0, #0
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0x20
+ blo _0223D73A
+ add r1, r4, #0
+ add r1, #0x20
+ mov r0, #0
+ strb r0, [r1]
+_0223D73A:
+ add r0, r4, #0
+ add r0, #0x24
+ mov r1, #0
+ mov r2, #0x28
+ bl MI_CpuFill8
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x18]
+ mov r2, #3
+ bl MOD12_0223DCE8
+_0223D750:
+ ldr r0, [sp, #0x14]
+ add r4, #0x4c
+ add r0, #0x18
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ add r6, #0x10
+ add r0, r0, #1
+ add r5, r5, #4
+ str r0, [sp, #0x18]
+ cmp r0, #4
+ bge _0223D768
+ b _0223D5CE
+_0223D768:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223D76C: .word 0x00000F3C
+_0223D770: .word 0x00000AE8
+_0223D774: .word 0x00002710
+_0223D778: .word 0x00000AB4
+
+ thumb_func_start MOD12_0223D77C
+MOD12_0223D77C: ; 0x0223D77C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp, #4]
+ ldrb r0, [r5, #0x10]
+ add r4, r2, #0
+ add r6, r3, #0
+ cmp r0, #0
+ beq _0223D796
+ cmp r0, #1
+ beq _0223D7E4
+ b _0223D818
+_0223D796:
+ ldr r0, [r4, #4]
+ ldr r1, [sp, #0x2c]
+ lsl r0, r0, #8
+ str r0, [r5]
+ ldr r0, [r4, #8]
+ lsr r1, r1, #1
+ lsl r0, r0, #8
+ str r0, [r5, #4]
+ ldr r0, [r5]
+ str r0, [r5, #8]
+ ldr r0, [r5, #4]
+ str r0, [r5, #0xc]
+ mov r0, #5
+ lsl r0, r0, #8
+ bl _u32_div_f
+ ldr r1, [sp, #0x20]
+ cmp r1, #1
+ bne _0223D7CE
+ ldr r1, _0223D888 ; =0xFFFFF600
+ strh r1, [r5, #0x14]
+ mov r1, #0xc8
+ mul r1, r0
+ add r0, r1, #0
+ mov r1, #0x64
+ bl _s32_div_f
+ b _0223D7D2
+_0223D7CE:
+ ldr r1, _0223D88C ; =0xFFFFFB00
+ strh r1, [r5, #0x14]
+_0223D7D2:
+ strh r0, [r5, #0x16]
+ ldr r0, [sp, #0x28]
+ mov r1, #1
+ mov r2, #0
+ bl MOD12_0223CD38
+ ldrb r0, [r5, #0x10]
+ add r0, r0, #1
+ strb r0, [r5, #0x10]
+_0223D7E4:
+ mov r0, #0x14
+ ldrsh r1, [r5, r0]
+ ldr r2, [r5, #0xc]
+ add r1, r2, r1
+ str r1, [r5, #0xc]
+ ldrsh r1, [r5, r0]
+ mov r0, #0x16
+ ldrsh r0, [r5, r0]
+ add r0, r1, r0
+ strh r0, [r5, #0x14]
+ ldr r1, [r5, #4]
+ ldr r0, [r5, #0xc]
+ cmp r0, r1
+ blt _0223D81E
+ str r1, [r5, #0xc]
+ mov r1, #1
+ ldr r0, [sp, #0x28]
+ add r2, r1, #0
+ bl MOD12_0223CD38
+ mov r0, #1
+ str r0, [sp, #4]
+ ldrb r0, [r5, #0x10]
+ add r0, r0, #1
+ strb r0, [r5, #0x10]
+ b _0223D81E
+_0223D818:
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0223D81E:
+ cmp r6, #0
+ bne _0223D826
+ mov r6, #0x64
+ b _0223D828
+_0223D826:
+ mov r6, #0x28
+_0223D828:
+ ldr r0, [sp, #0x24]
+ lsl r1, r0, #9
+ mov r0, #0x19
+ lsl r0, r0, #0xa
+ cmp r1, r0
+ ble _0223D836
+ add r1, r0, #0
+_0223D836:
+ asr r0, r1, #8
+ add r6, r6, r0
+ ldr r0, [r5]
+ ldr r1, [r5, #8]
+ str r0, [sp]
+ sub r1, r1, r0
+ ldr r7, [r5, #4]
+ ldr r0, [r5, #0xc]
+ sub r5, r0, r7
+ add r0, r1, #0
+ mul r0, r6
+ mov r1, #0x64
+ bl _s32_div_f
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mul r0, r6
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r2, [sp]
+ ldr r1, [sp, #8]
+ add r2, r2, r1
+ asr r1, r2, #7
+ lsr r1, r1, #0x18
+ add r1, r2, r1
+ asr r1, r1, #8
+ str r1, [r4, #4]
+ add r1, r7, r0
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r2, r0, #8
+ str r2, [r4, #8]
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ bl FUN_021DD620
+ ldr r0, [sp, #4]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223D888: .word 0xFFFFF600
+_0223D88C: .word 0xFFFFFB00
+
+ thumb_func_start MOD12_0223D890
+MOD12_0223D890: ; 0x0223D890
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldrb r0, [r4, #0x10]
+ add r6, r2, #0
+ str r3, [sp]
+ ldr r5, [sp, #0x30]
+ cmp r0, #0
+ beq _0223D8B0
+ cmp r0, #1
+ beq _0223D908
+ cmp r0, #2
+ beq _0223D95A
+ b _0223D99E
+_0223D8B0:
+ ldr r0, [r6, #4]
+ ldr r1, [sp, #0x34]
+ lsl r0, r0, #8
+ str r0, [r4]
+ ldr r0, [r6, #8]
+ lsl r0, r0, #8
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ str r0, [r4, #0xc]
+ mov r0, #0x1e
+ mul r0, r1
+ mov r1, #0x64
+ bl _u32_div_f
+ add r7, r0, #0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ add r1, r7, #0
+ bl _s32_div_f
+ ldr r1, [sp, #0x34]
+ str r0, [r4, #0x14]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ sub r1, r1, r7
+ bl _s32_div_f
+ str r0, [r4, #0x18]
+ cmp r5, #0
+ bne _0223D902
+ ldr r1, [r4, #0x14]
+ mov r0, #0
+ mvn r0, r0
+ add r2, r1, #0
+ mul r2, r0
+ str r2, [r4, #0x14]
+ ldr r1, [r4, #0x18]
+ mul r0, r1
+ str r0, [r4, #0x18]
+_0223D902:
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+_0223D908:
+ ldr r0, [sp, #0x28]
+ cmp r0, #1
+ bne _0223D924
+ ldr r1, [r4, #0x14]
+ mov r0, #0xc8
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r1, [r4, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0xc]
+ mov r0, #0x20
+ b _0223D92E
+_0223D924:
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x14]
+ add r0, r1, r0
+ str r0, [r4, #0xc]
+ mov r0, #0x10
+_0223D92E:
+ lsl r0, r0, #8
+ str r0, [sp, #8]
+ ldr r7, [r4, #4]
+ ldr r0, [r4, #0xc]
+ sub r0, r0, r7
+ bl abs
+ ldr r1, [sp, #8]
+ cmp r0, r1
+ blt _0223D9A4
+ cmp r5, #1
+ bne _0223D94C
+ add r0, r1, #0
+ add r0, r7, r0
+ b _0223D950
+_0223D94C:
+ add r0, r1, #0
+ sub r0, r7, r0
+_0223D950:
+ str r0, [r4, #0xc]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ b _0223D9A4
+_0223D95A:
+ ldr r0, [sp, #0x28]
+ cmp r0, #1
+ bne _0223D970
+ ldr r1, [r4, #0x18]
+ mov r0, #0xc8
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r1, [r4, #0xc]
+ b _0223D974
+_0223D970:
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x18]
+_0223D974:
+ sub r0, r1, r0
+ str r0, [r4, #0xc]
+ cmp r5, #1
+ bne _0223D984
+ ldr r1, [r4, #4]
+ ldr r0, [r4, #0xc]
+ cmp r0, r1
+ ble _0223D990
+_0223D984:
+ cmp r5, #0
+ bne _0223D9A4
+ ldr r1, [r4, #4]
+ ldr r0, [r4, #0xc]
+ cmp r0, r1
+ blt _0223D9A4
+_0223D990:
+ str r1, [r4, #0xc]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _0223D9A4
+_0223D99E:
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0223D9A4:
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _0223D9AE
+ mov r5, #0x64
+ b _0223D9B0
+_0223D9AE:
+ mov r5, #0x28
+_0223D9B0:
+ ldr r0, [sp, #0x2c]
+ lsl r1, r0, #9
+ mov r0, #0x19
+ lsl r0, r0, #0xa
+ cmp r1, r0
+ ble _0223D9BE
+ add r1, r0, #0
+_0223D9BE:
+ asr r0, r1, #8
+ add r5, r5, r0
+ ldr r0, [r4]
+ ldr r1, [r4, #8]
+ str r0, [sp, #4]
+ sub r1, r1, r0
+ ldr r7, [r4, #4]
+ ldr r0, [r4, #0xc]
+ sub r4, r0, r7
+ add r0, r1, #0
+ mul r0, r5
+ mov r1, #0x64
+ bl _s32_div_f
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ mul r0, r5
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r2, [sp, #4]
+ ldr r1, [sp, #0x10]
+ add r2, r2, r1
+ asr r1, r2, #7
+ lsr r1, r1, #0x18
+ add r1, r2, r1
+ asr r1, r1, #8
+ str r1, [r6, #4]
+ add r1, r7, r0
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r2, r0, #8
+ str r2, [r6, #8]
+ ldr r0, [r6]
+ ldr r1, [r6, #4]
+ bl FUN_021DD620
+ ldr r0, [sp, #0xc]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD12_0223DA10
+MOD12_0223DA10: ; 0x0223DA10
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldrb r0, [r5, #0x10]
+ add r4, r2, #0
+ str r3, [sp]
+ ldr r6, [sp, #0x38]
+ cmp r0, #0
+ beq _0223DA30
+ cmp r0, #1
+ beq _0223DAB0
+ cmp r0, #2
+ beq _0223DB22
+ b _0223DB84
+_0223DA30:
+ ldr r0, [r4, #4]
+ ldr r1, [sp, #0x3c]
+ lsl r0, r0, #8
+ str r0, [r5]
+ ldr r0, [r4, #8]
+ lsl r0, r0, #8
+ str r0, [r5, #4]
+ ldr r0, [r5]
+ str r0, [r5, #8]
+ ldr r0, [r5, #4]
+ str r0, [r5, #0xc]
+ mov r0, #0x1e
+ mul r0, r1
+ mov r1, #0x64
+ bl _u32_div_f
+ ldr r1, [sp, #0x3c]
+ str r0, [sp, #0x14]
+ sub r7, r1, r0
+ ldr r0, _0223DC04 ; =0x00038E00
+ ldr r1, [sp, #0x14]
+ bl _s32_div_f
+ str r0, [r5, #0x18]
+ ldr r0, _0223DC08 ; =0xFFFC7200
+ add r1, r7, #0
+ bl _s32_div_f
+ str r0, [r5, #0x1c]
+ mov r0, #1
+ ldr r1, [sp, #0x14]
+ lsl r0, r0, #0xc
+ bl _s32_div_f
+ str r0, [r5, #0x20]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ add r1, r7, #0
+ bl _s32_div_f
+ neg r0, r0
+ str r0, [r5, #0x24]
+ cmp r6, #1
+ bne _0223DAAA
+ ldr r1, [r5, #0x18]
+ mov r0, #0
+ mvn r0, r0
+ add r2, r1, #0
+ mul r2, r0
+ str r2, [r5, #0x18]
+ ldr r1, [r5, #0x1c]
+ add r2, r1, #0
+ mul r2, r0
+ str r2, [r5, #0x1c]
+ ldr r1, [r5, #0x20]
+ add r2, r1, #0
+ mul r2, r0
+ str r2, [r5, #0x20]
+ ldr r1, [r5, #0x24]
+ mul r0, r1
+ str r0, [r5, #0x24]
+_0223DAAA:
+ ldrb r0, [r5, #0x10]
+ add r0, r0, #1
+ strb r0, [r5, #0x10]
+_0223DAB0:
+ ldr r0, [sp, #0x30]
+ cmp r0, #1
+ bne _0223DADC
+ ldr r1, [r5, #0x20]
+ mov r0, #0xc8
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r1, [r5, #8]
+ add r0, r1, r0
+ str r0, [r5, #8]
+ mov r0, #0x20
+ str r0, [sp, #0xc]
+ ldr r1, [r5, #0x18]
+ mov r0, #0xc8
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r1, [r5, #0x14]
+ b _0223DAEC
+_0223DADC:
+ ldr r1, [r5, #8]
+ ldr r0, [r5, #0x20]
+ add r0, r1, r0
+ str r0, [r5, #8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldr r1, [r5, #0x14]
+ ldr r0, [r5, #0x18]
+_0223DAEC:
+ add r0, r1, r0
+ str r0, [r5, #0x14]
+ ldr r0, [sp, #0xc]
+ ldr r7, [r5]
+ lsl r0, r0, #8
+ str r0, [sp, #8]
+ ldr r0, [r5, #8]
+ sub r0, r0, r7
+ bl abs
+ ldr r1, [sp, #8]
+ cmp r0, r1
+ blt _0223DB8A
+ cmp r6, #1
+ bne _0223DB10
+ add r0, r1, #0
+ sub r0, r7, r0
+ b _0223DB14
+_0223DB10:
+ add r0, r1, #0
+ add r0, r7, r0
+_0223DB14:
+ str r0, [r5, #8]
+ ldr r0, [r5, #4]
+ str r0, [r5, #0xc]
+ ldrb r0, [r5, #0x10]
+ add r0, r0, #1
+ strb r0, [r5, #0x10]
+ b _0223DB8A
+_0223DB22:
+ ldr r0, [sp, #0x30]
+ cmp r0, #1
+ bne _0223DB4A
+ ldr r1, [r5, #0x24]
+ mov r0, #0xc8
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r1, [r5, #8]
+ add r0, r1, r0
+ str r0, [r5, #8]
+ ldr r1, [r5, #0x1c]
+ mov r0, #0xc8
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r1, [r5, #0x14]
+ b _0223DB56
+_0223DB4A:
+ ldr r1, [r5, #8]
+ ldr r0, [r5, #0x24]
+ add r0, r1, r0
+ str r0, [r5, #8]
+ ldr r1, [r5, #0x14]
+ ldr r0, [r5, #0x1c]
+_0223DB56:
+ add r0, r1, r0
+ str r0, [r5, #0x14]
+ cmp r6, #1
+ bne _0223DB66
+ ldr r1, [r5]
+ ldr r0, [r5, #8]
+ cmp r0, r1
+ bge _0223DB72
+_0223DB66:
+ cmp r6, #0
+ bne _0223DB8A
+ ldr r1, [r5]
+ ldr r0, [r5, #8]
+ cmp r0, r1
+ bgt _0223DB8A
+_0223DB72:
+ str r1, [r5, #8]
+ mov r0, #0
+ str r0, [r5, #0x14]
+ ldrb r0, [r5, #0x10]
+ add r0, r0, #1
+ strb r0, [r5, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ b _0223DB8A
+_0223DB84:
+ add sp, #0x1c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0223DB8A:
+ ldr r1, [r5, #0x14]
+ ldr r0, [r4]
+ lsl r1, r1, #8
+ lsr r1, r1, #0x10
+ bl FUN_021DD604
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _0223DBA0
+ mov r6, #0x64
+ b _0223DBA2
+_0223DBA0:
+ mov r6, #0x28
+_0223DBA2:
+ ldr r0, [sp, #0x34]
+ lsl r1, r0, #9
+ mov r0, #0x19
+ lsl r0, r0, #0xa
+ cmp r1, r0
+ ble _0223DBB0
+ add r1, r0, #0
+_0223DBB0:
+ asr r0, r1, #8
+ add r6, r6, r0
+ ldr r0, [r5]
+ ldr r1, [r5, #8]
+ str r0, [sp, #4]
+ sub r1, r1, r0
+ ldr r7, [r5, #4]
+ ldr r0, [r5, #0xc]
+ sub r5, r0, r7
+ add r0, r1, #0
+ mul r0, r6
+ mov r1, #0x64
+ bl _s32_div_f
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ mul r0, r6
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r2, [sp, #4]
+ ldr r1, [sp, #0x18]
+ add r2, r2, r1
+ asr r1, r2, #7
+ lsr r1, r1, #0x18
+ add r1, r2, r1
+ asr r1, r1, #8
+ str r1, [r4, #4]
+ add r1, r7, r0
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r2, r0, #8
+ str r2, [r4, #8]
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ bl FUN_021DD620
+ ldr r0, [sp, #0x10]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223DC04: .word 0x00038E00
+_0223DC08: .word 0xFFFC7200
+
+ thumb_func_start MOD12_0223DC0C
+MOD12_0223DC0C: ; 0x0223DC0C
+ ldr r1, _0223DC24 ; =0x00001BA0
+ mov r2, #0
+ add r3, r0, r1
+ mov r0, #4
+_0223DC14:
+ ldrb r1, [r3]
+ add r2, r2, #1
+ bic r1, r0
+ strb r1, [r3]
+ add r3, #0xa
+ cmp r2, #8
+ blt _0223DC14
+ bx lr
+ .align 2, 0
+_0223DC24: .word 0x00001BA0
+
+ thumb_func_start MOD12_0223DC28
+MOD12_0223DC28: ; 0x0223DC28
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, _0223DCAC ; =0x00001070
+ add r6, r1, #0
+ add r7, r5, r0
+ mov r0, #0x28
+ mul r0, r6
+ str r0, [sp, #4]
+ ldr r0, [r7, r0]
+ str r2, [sp]
+ cmp r0, #0
+ beq _0223DC46
+ bl ErrorHandling
+_0223DC46:
+ ldr r0, _0223DCB0 ; =0x0000106C
+ mov r2, #0x28
+ add r4, r6, #0
+ add r0, r5, r0
+ mul r4, r2
+ str r0, [sp, #8]
+ add r0, r0, r4
+ mov r1, #0
+ bl MI_CpuFill8
+ ldr r0, [sp, #8]
+ ldr r2, _0223DCB4 ; =0x00001086
+ str r5, [r0, r4]
+ add r3, r5, r4
+ ldr r0, [sp]
+ strb r6, [r3, r2]
+ sub r1, r2, #1
+ strb r0, [r3, r1]
+ lsl r0, r6, #2
+ add r0, r5, r0
+ add r1, r2, #0
+ ldr r0, [r0, #0x5c]
+ sub r1, #0x12
+ str r0, [r3, r1]
+ add r0, r5, #0
+ add r0, #0x18
+ lsl r1, r6, #4
+ add r1, r0, r1
+ add r0, r2, #0
+ sub r0, #0xe
+ str r1, [r3, r0]
+ add r2, #0xa
+ add r0, r5, r2
+ ldrb r2, [r0, r4]
+ mov r1, #4
+ orr r1, r2
+ strb r1, [r0, r4]
+ ldrb r2, [r0, r4]
+ mov r1, #8
+ orr r1, r2
+ strb r1, [r0, r4]
+ ldr r1, [sp, #8]
+ ldr r0, _0223DCB8 ; =MOD12_0223DE10
+ ldr r2, _0223DCBC ; =0x00009858
+ add r1, r1, r4
+ bl FUN_0200CA44
+ ldr r1, [sp, #4]
+ str r0, [r7, r1]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223DCAC: .word 0x00001070
+_0223DCB0: .word 0x0000106C
+_0223DCB4: .word 0x00001086
+_0223DCB8: .word MOD12_0223DE10
+_0223DCBC: .word 0x00009858
+
+ thumb_func_start MOD12_0223DCC0
+MOD12_0223DCC0: ; 0x0223DCC0
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ ldr r7, _0223DCE4 ; =0x00001070
+ add r5, r0, #0
+ add r6, r4, #0
+_0223DCCA:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _0223DCD8
+ bl FUN_0200CAB4
+ ldr r0, _0223DCE4 ; =0x00001070
+ str r6, [r5, r0]
+_0223DCD8:
+ add r4, r4, #1
+ add r5, #0x28
+ cmp r4, #4
+ blt _0223DCCA
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223DCE4: .word 0x00001070
+
+ thumb_func_start MOD12_0223DCE8
+MOD12_0223DCE8: ; 0x0223DCE8
+ push {r3, r4, r5, lr}
+ mov r3, #0x28
+ mul r3, r1
+ ldr r1, _0223DDAC ; =0x00001070
+ add r4, r0, r3
+ ldr r5, [r4, r1]
+ cmp r5, #0
+ beq _0223DDA8
+ cmp r2, #5
+ bhi _0223DDA4
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223DD08: ; jump table
+ .short _0223DD14 - _0223DD08 - 2 ; case 0
+ .short _0223DD2A - _0223DD08 - 2 ; case 1
+ .short _0223DD38 - _0223DD08 - 2 ; case 2
+ .short _0223DD46 - _0223DD08 - 2 ; case 3
+ .short _0223DD64 - _0223DD08 - 2 ; case 4
+ .short _0223DD92 - _0223DD08 - 2 ; case 5
+_0223DD14:
+ add r1, #0x20
+ add r2, r0, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x20
+ bic r1, r0
+ strb r1, [r2, r3]
+ ldrb r1, [r2, r3]
+ mov r0, #0x10
+ bic r1, r0
+ strb r1, [r2, r3]
+ pop {r3, r4, r5, pc}
+_0223DD2A:
+ add r1, #0x20
+ add r2, r0, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x20
+ orr r0, r1
+ strb r0, [r2, r3]
+ pop {r3, r4, r5, pc}
+_0223DD38:
+ add r1, #0x20
+ add r2, r0, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x10
+ orr r0, r1
+ strb r0, [r2, r3]
+ pop {r3, r4, r5, pc}
+_0223DD46:
+ add r1, #0x20
+ add r0, r0, r1
+ ldrb r2, [r0, r3]
+ mov r1, #2
+ bic r2, r1
+ strb r2, [r0, r3]
+ ldrb r2, [r0, r3]
+ mov r1, #1
+ bic r2, r1
+ strb r2, [r0, r3]
+ ldrb r2, [r0, r3]
+ mov r1, #4
+ orr r1, r2
+ strb r1, [r0, r3]
+ pop {r3, r4, r5, pc}
+_0223DD64:
+ add r2, r1, #0
+ add r2, #0x20
+ ldrb r2, [r4, r2]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x1f
+ bne _0223DDA8
+ add r2, r1, #0
+ add r2, #0x20
+ add r5, r0, r2
+ ldrb r2, [r5, r3]
+ mov r0, #2
+ orr r0, r2
+ strb r0, [r5, r3]
+ ldrb r0, [r5, r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bne _0223DDA8
+ add r0, r1, #0
+ add r0, #0x10
+ ldr r0, [r4, r0]
+ add r1, #0x1c
+ str r0, [r4, r1]
+ pop {r3, r4, r5, pc}
+_0223DD92:
+ add r1, #0x20
+ add r2, r0, r1
+ ldrb r1, [r2, r3]
+ mov r0, #1
+ bic r1, r0
+ mov r0, #1
+ orr r0, r1
+ strb r0, [r2, r3]
+ pop {r3, r4, r5, pc}
+_0223DDA4:
+ bl ErrorHandling
+_0223DDA8:
+ pop {r3, r4, r5, pc}
+ nop
+_0223DDAC: .word 0x00001070
+
+ thumb_func_start MOD12_0223DDB0
+MOD12_0223DDB0: ; 0x0223DDB0
+ mov r2, #0x28
+ mul r2, r1
+ ldr r1, _0223DDE0 ; =0x00001070
+ add r2, r0, r2
+ ldr r0, [r2, r1]
+ cmp r0, #0
+ bne _0223DDC2
+ mov r0, #1
+ bx lr
+_0223DDC2:
+ add r0, r1, #0
+ add r0, #0x20
+ ldrb r0, [r2, r0]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ beq _0223DDD8
+ add r1, #0x15
+ ldrb r0, [r2, r1]
+ cmp r0, #0
+ bne _0223DDDC
+_0223DDD8:
+ mov r0, #1
+ bx lr
+_0223DDDC:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_0223DDE0: .word 0x00001070
+
+ thumb_func_start MOD12_0223DDE4
+MOD12_0223DDE4: ; 0x0223DDE4
+ mov r2, #0x28
+ mul r2, r1
+ add r2, r0, r2
+ ldr r0, _0223DE0C ; =0x00001070
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _0223DDF6
+ mov r0, #1
+ bx lr
+_0223DDF6:
+ add r0, #0x20
+ ldrb r0, [r2, r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _0223DE06
+ mov r0, #1
+ bx lr
+_0223DE06:
+ mov r0, #0
+ bx lr
+ nop
+_0223DE0C: .word 0x00001070
+
+ thumb_func_start MOD12_0223DE10
+MOD12_0223DE10: ; 0x0223DE10
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD12_0223DE24
+ add r0, r4, #0
+ bl MOD12_0223DF18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223DE24
+MOD12_0223DE24: ; 0x0223DE24
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r0, #0x24
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ beq _0223DF00
+ ldrb r0, [r4, #0x19]
+ cmp r0, #0
+ beq _0223DF00
+ ldr r5, [r4]
+ ldr r1, _0223DF04 ; =0x00001138
+ ldr r2, _0223DF08 ; =0x00002710
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r3, #0
+ bl _ll_mul
+ ldr r2, _0223DF0C ; =0x00000AE8
+ mov r3, #0
+ ldr r7, [r5, r2]
+ add r2, r7, #0
+ bl _ull_mod
+ add r5, r0, #0
+ add r6, r1, #0
+ lsr r7, r7, #1
+ lsr r0, r5, #0x13
+ lsl r1, r6, #0xd
+ orr r1, r0
+ lsl r0, r5, #0xd
+ add r2, r7, #0
+ mov r3, #0
+ bl _ll_udiv
+ add r2, r1, #0
+ mov r1, #1
+ sub r3, r5, r7
+ ldr r3, _0223DF10 ; =0x00000000
+ sbc r6, r3
+ blo _0223DE80
+ lsl r3, r1, #0xe
+ mov r1, #0
+ sub r0, r3, r0
+_0223DE80:
+ add r2, r4, #0
+ add r2, #0x24
+ ldrb r2, [r2]
+ ldr r3, _0223DF14 ; =0xFFFD8000
+ mov r5, #0x40
+ add r0, r0, r3
+ str r0, [r4, #0x10]
+ add r0, r4, #0
+ add r0, #0x24
+ ldrb r0, [r0]
+ lsl r2, r2, #0x19
+ lsr r2, r2, #0x1f
+ bic r0, r5
+ lsl r5, r1, #0x18
+ lsr r5, r5, #0x18
+ lsl r5, r5, #0x1f
+ lsr r5, r5, #0x19
+ orr r5, r0
+ add r0, r4, #0
+ add r0, #0x24
+ strb r5, [r0]
+ add r0, r4, #0
+ add r0, #0x24
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _0223DEEA
+ ldr r0, [r4, #0x10]
+ cmp r0, r3
+ beq _0223DEC6
+ cmp r2, #0
+ bne _0223DEEA
+ cmp r1, #1
+ bne _0223DEEA
+_0223DEC6:
+ ldr r0, _0223DF14 ; =0xFFFD8000
+ str r0, [r4, #0x10]
+ add r0, r4, #0
+ add r0, #0x24
+ ldrb r1, [r0]
+ mov r0, #0x10
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x24
+ ldrb r1, [r0]
+ mov r0, #0x20
+ orr r1, r0
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+_0223DEEA:
+ ldr r1, [r4, #0x10]
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r1, r0, #8
+ ldr r0, [r4, #0xc]
+ str r1, [r0, #0xc]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ bl MOD12_0223D09C
+_0223DF00:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223DF04: .word 0x00001138
+_0223DF08: .word 0x00002710
+_0223DF0C: .word 0x00000AE8
+_0223DF10: .word 0x00000000
+_0223DF14: .word 0xFFFD8000
+
+ thumb_func_start MOD12_0223DF18
+MOD12_0223DF18: ; 0x0223DF18
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ ldr r2, [r4]
+ ldr r1, _0223E058 ; =0x00001138
+ mov r3, #0
+ ldr r0, [r2, r1]
+ add r1, r1, #4
+ ldr r1, [r2, r1]
+ ldr r2, _0223E05C ; =0x00002710
+ ldr r5, [r4, #0x14]
+ bl _ll_mul
+ ldr r3, [r4]
+ ldr r2, _0223E060 ; =0x00000AE8
+ ldr r2, [r3, r2]
+ mov r3, #0
+ lsl r2, r2, #1
+ bl _ull_mod
+ mov r2, #0x5a
+ lsl r2, r2, #2
+ mov r3, #0
+ bl _ll_mul
+ ldr r3, [r4]
+ ldr r2, _0223E060 ; =0x00000AE8
+ ldr r2, [r3, r2]
+ mov r3, #0
+ lsl r2, r2, #1
+ bl _ll_udiv
+ lsr r2, r0, #0x18
+ lsl r1, r1, #8
+ orr r1, r2
+ lsl r0, r0, #8
+ add r2, r4, #0
+ str r0, [r4, #0x14]
+ add r2, #0x24
+ ldrb r2, [r2]
+ lsl r3, r2, #0x1e
+ lsr r3, r3, #0x1f
+ bne _0223E054
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1f
+ cmp r2, #1
+ bne _0223DF86
+ add r2, r4, #0
+ add r2, #0x24
+ ldrb r2, [r2]
+ mov r3, #8
+ add r5, r0, #0
+ bic r2, r3
+ add r3, r4, #0
+ add r3, #0x24
+ strb r2, [r3]
+_0223DF86:
+ add r2, r4, #0
+ add r2, #0x24
+ ldrb r2, [r2]
+ lsl r2, r2, #0x1d
+ lsr r2, r2, #0x1f
+ cmp r2, #1
+ bne _0223DFCE
+ mov r2, #0
+ sub r3, r0, r5
+ mov ip, r1
+ mov r3, ip
+ sbc r3, r2
+ bhs _0223DFA4
+ add r7, r5, r0
+ b _0223DFA6
+_0223DFA4:
+ add r7, r0, #0
+_0223DFA6:
+ ldr r6, [r4, #0x20]
+ mov r2, #0
+ add r3, r2, #0
+ add r2, r6, #0
+ eor r3, r1
+ eor r2, r0
+ orr r2, r3
+ beq _0223DFBE
+ cmp r5, r6
+ bhi _0223E054
+ cmp r6, r7
+ bhi _0223E054
+_0223DFBE:
+ add r2, r4, #0
+ add r2, #0x24
+ ldrb r3, [r2]
+ mov r2, #4
+ bic r3, r2
+ add r2, r4, #0
+ add r2, #0x24
+ strb r3, [r2]
+_0223DFCE:
+ add r2, r4, #0
+ add r2, #0x24
+ ldrb r2, [r2]
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1f
+ cmp r2, #1
+ bne _0223E014
+ mov r3, #0
+ mov r2, #0
+ eor r3, r1
+ eor r2, r0
+ orr r2, r3
+ beq _0223DFF0
+ mov r2, #0
+ sub r0, r0, r5
+ sbc r1, r2
+ bhs _0223E014
+_0223DFF0:
+ add r1, r4, #0
+ add r1, #0x24
+ ldrb r2, [r1]
+ mov r1, #1
+ mov r0, #0
+ bic r2, r1
+ add r1, r4, #0
+ add r1, #0x24
+ strb r2, [r1]
+ add r1, r4, #0
+ add r1, #0x24
+ ldrb r2, [r1]
+ mov r1, #2
+ orr r2, r1
+ add r1, r4, #0
+ add r1, #0x24
+ strb r2, [r1]
+ str r0, [r4, #0x20]
+_0223E014:
+ ldrb r0, [r4, #0x19]
+ cmp r0, #0
+ bne _0223E01C
+ b _0223E01C
+_0223E01C:
+ ldr r0, [r4, #0x14]
+ mov r5, #3
+ lsl r0, r0, #8
+ lsr r0, r0, #0x10
+ bl FUN_0201B954
+ add r1, r5, #0
+ mul r1, r0
+ ldrb r2, [r4, #0x19]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ mov r1, #6
+ add r3, r2, #0
+ mul r3, r1
+ ldr r1, _0223E064 ; =0x022461F4
+ asr r0, r0, #0xc
+ ldrsh r1, [r1, r3]
+ add r0, r0, r1
+ sub r1, r0, r5
+ ldr r0, [r4, #0xc]
+ str r1, [r0, #4]
+ ldr r2, [r4, #0xc]
+ ldr r0, [r2]
+ ldr r1, [r2, #4]
+ ldr r2, [r2, #8]
+ bl FUN_021DD620
+_0223E054:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223E058: .word 0x00001138
+_0223E05C: .word 0x00002710
+_0223E060: .word 0x00000AE8
+_0223E064: .word 0x022461F4
+
+ thumb_func_start MOD12_0223E068
+MOD12_0223E068: ; 0x0223E068
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r1, #0
+ add r4, r0, #0
+ add r5, r2, #0
+ cmp r6, #0
+ beq _0223E07E
+ cmp r5, #0
+ bne _0223E07E
+ bl ErrorHandling
+_0223E07E:
+ cmp r6, #6
+ bls _0223E084
+ b _0223E1E4
+_0223E084:
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223E090: ; jump table
+ .short _0223E1E8 - _0223E090 - 2 ; case 0
+ .short _0223E09E - _0223E090 - 2 ; case 1
+ .short _0223E0BA - _0223E090 - 2 ; case 2
+ .short _0223E0DE - _0223E090 - 2 ; case 3
+ .short _0223E0F4 - _0223E090 - 2 ; case 4
+ .short _0223E138 - _0223E090 - 2 ; case 5
+ .short _0223E16A - _0223E090 - 2 ; case 6
+_0223E09E:
+ ldrb r0, [r5]
+ ldr r1, [r4, #0x14]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r4, #0x9c
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_0223E0BA:
+ mov r2, #0x12
+ lsl r2, r2, #4
+ ldr r3, [r4]
+ add r1, r2, #1
+ ldrb r0, [r3, r2]
+ add r2, #0x51
+ ldrb r1, [r3, r1]
+ ldrb r2, [r3, r2]
+ bl FUN_02083228
+ add r4, #0x9c
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0200B278
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_0223E0DE:
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ add r4, #0x9c
+ ldrb r2, [r5, #4]
+ ldr r0, [r4]
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_0223E0F4:
+ ldrb r6, [r5]
+ ldr r3, [r4]
+ mov r0, #1
+ lsl r2, r6, #2
+ str r0, [sp]
+ mov r0, #2
+ add r2, r3, r2
+ add r6, r3, r6
+ mov r3, #0x42
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r3, r3, #2
+ add r0, #0x9c
+ add r2, #0xe8
+ ldrb r3, [r6, r3]
+ ldr r0, [r0]
+ ldr r2, [r2]
+ mov r1, #0
+ bl FUN_0200ABB4
+ ldrb r0, [r5]
+ ldr r1, [r4, #0x14]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r4, #0x9c
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_0223E138:
+ ldrb r0, [r5]
+ ldr r1, [r4, #0x14]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ mov r0, #0
+ mov r1, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r4, #0x9c
+ ldrb r2, [r5, #4]
+ ldr r0, [r4]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_0223E16A:
+ mov r2, #0x12
+ lsl r2, r2, #4
+ ldr r3, [r4]
+ add r1, r2, #1
+ ldrb r0, [r3, r2]
+ add r2, #0x51
+ ldrb r1, [r3, r1]
+ ldrb r2, [r3, r2]
+ bl FUN_02083228
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200B278
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x9c
+ ldrb r2, [r5, #4]
+ ldr r0, [r0]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ ldrb r6, [r5]
+ ldr r3, [r4]
+ mov r0, #1
+ lsl r2, r6, #2
+ str r0, [sp]
+ mov r1, #2
+ add r2, r3, r2
+ add r6, r3, r6
+ mov r3, #0x42
+ add r0, r4, #0
+ str r1, [sp, #4]
+ lsl r3, r3, #2
+ add r0, #0x9c
+ add r2, #0xe8
+ ldrb r3, [r6, r3]
+ ldr r0, [r0]
+ ldr r2, [r2]
+ bl FUN_0200ABB4
+ ldrb r0, [r5]
+ ldr r1, [r4, #0x14]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r4, #0x9c
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r1, #3
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_0223E1E4:
+ bl ErrorHandling
+_0223E1E8:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD12_0223E1EC
+MOD12_0223E1EC: ; 0x0223E1EC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r6, r1, #0
+ ldr r1, [r5]
+ ldr r0, _0223E268 ; =0x00000171
+ add r7, r2, #0
+ ldrb r0, [r1, r0]
+ str r3, [sp, #0xc]
+ cmp r0, #0
+ bne _0223E20E
+ ldr r0, _0223E26C ; =0x00001988
+ ldr r0, [r1, r0]
+ bl FUN_02024FF4
+ add r4, r0, #0
+ b _0223E210
+_0223E20E:
+ mov r4, #1
+_0223E210:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x28]
+ add r0, r5, #0
+ bl MOD12_0223E068
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0x9c
+ add r1, #0xa0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ add r0, #0x78
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ add r2, r5, #0
+ add r0, r5, #0
+ str r3, [sp, #8]
+ add r2, #0xa0
+ ldr r2, [r2]
+ add r0, #0x78
+ mov r1, #1
+ bl FUN_0201BD84
+ ldr r1, _0223E270 ; =0x00000AB8
+ strb r0, [r5, r1]
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223E268: .word 0x00000171
+_0223E26C: .word 0x00001988
+_0223E270: .word 0x00000AB8
+
+ thumb_func_start MOD12_0223E274
+MOD12_0223E274: ; 0x0223E274
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #8
+ blo _0223E286
+ bl ErrorHandling
+_0223E286:
+ lsl r3, r4, #2
+ ldr r2, _0223E2A0 ; =0x02246224
+ add r0, r5, #0
+ ldr r4, _0223E2A4 ; =0x02246226
+ ldrh r2, [r2, r3]
+ str r6, [sp]
+ add r5, #0x98
+ ldrb r3, [r4, r3]
+ ldr r1, [r5]
+ bl MOD12_0223E1EC
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0223E2A0: .word 0x02246224
+_0223E2A4: .word 0x02246226
+
+ thumb_func_start MOD12_0223E2A8
+MOD12_0223E2A8: ; 0x0223E2A8
+ ldr r1, _0223E2B0 ; =0x00000AB8
+ ldr r3, _0223E2B4 ; =0x0201BD71
+ ldrb r0, [r0, r1]
+ bx r3
+ .align 2, 0
+_0223E2B0: .word 0x00000AB8
+_0223E2B4: .word 0x0201BD71
+
+ thumb_func_start MOD12_0223E2B8
+MOD12_0223E2B8: ; 0x0223E2B8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r2, #1
+ str r2, [sp]
+ str r2, [sp, #4]
+ ldr r2, _0223E300 ; =0x000080F1
+ mov r3, #0x4c
+ str r2, [sp, #8]
+ mov r2, #0x2e
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223E304 ; =0x000080EE
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x4d
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223E304 ; =0x000080EE
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x2e
+ mov r3, #0x4e
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0223E300: .word 0x000080F1
+_0223E304: .word 0x000080EE
+
+ thumb_func_start MOD12_0223E308
+MOD12_0223E308: ; 0x0223E308
+ push {r4, lr}
+ ldr r1, _0223E324 ; =0x000080F1
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _0223E328 ; =0x000080EE
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0223E328 ; =0x000080EE
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_0223E324: .word 0x000080F1
+_0223E328: .word 0x000080EE
+
+ thumb_func_start MOD12_0223E32C
+MOD12_0223E32C: ; 0x0223E32C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0223E33E
+ bl ErrorHandling
+_0223E33E:
+ mov r0, #0x17
+ mov r1, #0x10
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x10
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r0, #0x21
+ lsl r0, r0, #4
+ str r4, [r5, r0]
+ str r5, [r4, #8]
+ ldr r0, [r5, #0x6c]
+ ldr r1, [r5, #0x70]
+ ldr r2, _0223E380 ; =0x02246278
+ bl FUN_0200C154
+ str r0, [r4, #4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, _0223E384 ; =MOD12_0223E3BC
+ ldr r2, _0223E388 ; =0x00009C4F
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223E380: .word 0x02246278
+_0223E384: .word MOD12_0223E3BC
+_0223E388: .word 0x00009C4F
+
+ thumb_func_start MOD12_0223E38C
+MOD12_0223E38C: ; 0x0223E38C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ ldr r0, [r0]
+ bl FUN_0200CAB4
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ ldr r0, [r0, #4]
+ bl FUN_0200C3DC
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0x21
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ pop {r4, pc}
+
+ thumb_func_start MOD12_0223E3BC
+MOD12_0223E3BC: ; 0x0223E3BC
+ ldrb r0, [r1, #0xc]
+ cmp r0, #0
+ beq _0223E3CA
+ cmp r0, #1
+ beq _0223E3CE
+ cmp r0, #2
+ b _0223E3CE
+_0223E3CA:
+ add r0, r0, #1
+ strb r0, [r1, #0xc]
+_0223E3CE:
+ ldr r0, [r1, #4]
+ ldr r3, _0223E3D8 ; =0x0200C59D
+ ldr r0, [r0]
+ bx r3
+ nop
+_0223E3D8: .word 0x0200C59D
+
+ thumb_func_start MOD12_0223E3DC
+MOD12_0223E3DC: ; 0x0223E3DC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ lsl r0, r1, #8
+ add r1, r2, #0
+ bl _u32_div_f
+ ldr r1, _0223E434 ; =0x00002710
+ add r4, r0, #0
+ mul r0, r1
+ lsl r1, r1, #4
+ mov r6, #0x90
+ bl _u32_div_f
+ mov r0, #0xb4
+ mul r0, r1
+ ldr r1, _0223E438 ; =0x00027100
+ bl _u32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0201B93C
+ mov r1, #0xa
+ mul r1, r0
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ sub r2, r6, r0
+ lsl r1, r4, #0x10
+ lsl r2, r2, #0x10
+ mov r3, #1
+ ldr r0, [r5, #4]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ lsl r3, r3, #0x14
+ bl FUN_0200C750
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_0200C644
+ pop {r4, r5, r6, pc}
+ nop
+_0223E434: .word 0x00002710
+_0223E438: .word 0x00027100
+
+ thumb_func_start MOD12_0223E43C
+MOD12_0223E43C: ; 0x0223E43C
+ ldr r3, _0223E444 ; =0x0200C645
+ ldr r0, [r0, #4]
+ mov r1, #0
+ bx r3
+ .align 2, 0
+_0223E444: .word 0x0200C645
+
+ thumb_func_start MOD12_0223E448
+MOD12_0223E448: ; 0x0223E448
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_0200C644
+ mov r3, #1
+ ldr r0, [r4, #4]
+ mov r1, #0
+ mov r2, #0x90
+ lsl r3, r3, #0x14
+ bl FUN_0200C750
+ pop {r4, pc}
+
+ thumb_func_start MOD12_0223E464
+MOD12_0223E464: ; 0x0223E464
+ push {r3, r4}
+ ldr r2, _0223E484 ; =0x022461E0
+ add r1, sp, #0
+ ldrb r3, [r2]
+ add r4, sp, #0
+ strb r3, [r1]
+ ldrb r3, [r2, #1]
+ strb r3, [r1, #1]
+ ldrb r3, [r2, #2]
+ ldrb r2, [r2, #3]
+ strb r3, [r1, #2]
+ strb r2, [r1, #3]
+ ldrb r0, [r4, r0]
+ pop {r3, r4}
+ bx lr
+ nop
+_0223E484: .word 0x022461E0
+
+ thumb_func_start MOD12_0223E488
+MOD12_0223E488: ; 0x0223E488
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ add r7, r2, #0
+ cmp r4, #8
+ blo _0223E49A
+ bl ErrorHandling
+_0223E49A:
+ ldr r0, _0223E51C ; =0x00001BF1
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ beq _0223E516
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0x88
+ add r2, r1, #0
+ mov r3, #0xe
+ bl FUN_0200D0BC
+ ldr r0, [r5, #0x74]
+ mov r1, #1
+ bl FUN_0201AC68
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r1, _0223E520 ; =0x02246224
+ lsl r4, r4, #2
+ ldrh r1, [r1, r4]
+ ldr r0, [r0]
+ bl FUN_0200A914
+ ldr r1, _0223E524 ; =0x02246226
+ add r6, r0, #0
+ ldrb r1, [r1, r4]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD12_0223E068
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0x9c
+ add r1, #0xa0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ add r0, #0x88
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ add r2, r5, #0
+ add r0, r5, #0
+ str r3, [sp, #8]
+ add r2, #0xa0
+ ldr r2, [r2]
+ add r0, #0x88
+ mov r1, #1
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _0223E51C ; =0x00001BF1
+ mov r1, #1
+ strb r1, [r5, r0]
+_0223E516:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223E51C: .word 0x00001BF1
+_0223E520: .word 0x02246224
+_0223E524: .word 0x02246226
+
+ thumb_func_start MOD12_0223E528
+MOD12_0223E528: ; 0x0223E528
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x88
+ mov r1, #1
+ bl FUN_0200D0E0
+ ldr r0, [r4, #0x74]
+ mov r1, #1
+ bl FUN_0201AC68
+ ldr r0, _0223E544 ; =0x00001BF1
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_0223E544: .word 0x00001BF1
+
+ thumb_func_start MOD12_0223E548
+MOD12_0223E548: ; 0x0223E548
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _0223E584 ; =0x00000AEC
+ ldrb r1, [r1, #4]
+ ldr r3, [r5, r0]
+ add r6, r2, #0
+ mul r1, r3
+ mul r6, r1
+ add r1, r0, #4
+ add r0, #8
+ ldr r1, [r5, r1]
+ ldr r0, [r5, r0]
+ mov r4, #0
+ add r0, r1, r0
+ mul r0, r2
+ add r0, r1, r0
+ ldr r1, _0223E588 ; =0x00002710
+ bl _u32_div_f
+ add r1, r4, #0
+ add r3, r6, r0
+ ldr r0, _0223E58C ; =0x00001138
+ adc r4, r1
+ ldr r2, [r5, r0]
+ add r0, r0, #4
+ ldr r1, [r5, r0]
+ sub r0, r3, r2
+ sbc r4, r1
+ add r1, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0223E584: .word 0x00000AEC
+_0223E588: .word 0x00002710
+_0223E58C: .word 0x00001138
+
+ thumb_func_start MOD12_0223E590
+MOD12_0223E590: ; 0x0223E590
+ ldr r3, _0223E594 ; =MOD12_0223E548
+ bx r3
+ .align 2, 0
+_0223E594: .word MOD12_0223E548
+
+ thumb_func_start MOD12_0223E598
+MOD12_0223E598: ; 0x0223E598
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ add r7, r2, #0
+ mov r0, #0
+ strb r0, [r7]
+ mov r0, #0x17
+ mov r1, #0x2c
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x2c
+ add r4, r0, #0
+ bl MI_CpuFill8
+ add r1, r6, #0
+ add r1, #0x18
+ lsl r0, r5, #4
+ str r6, [r4]
+ add r0, r1, r0
+ str r0, [r4, #4]
+ mov r0, #0x85
+ lsl r0, r0, #2
+ add r1, r6, r0
+ mov r0, #0x18
+ mul r0, r5
+ add r0, r1, r0
+ str r0, [r4, #8]
+ ldr r0, _0223E5F4 ; =0x00000AB4
+ str r7, [r4, #0xc]
+ add r1, r6, r5
+ ldrb r0, [r1, r0]
+ ldr r2, _0223E5F8 ; =0x00009C40
+ cmp r0, #1
+ bne _0223E5E8
+ ldr r0, _0223E5FC ; =MOD12_0223E604
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+_0223E5E8:
+ ldr r0, _0223E600 ; =MOD12_0223E6A4
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223E5F4: .word 0x00000AB4
+_0223E5F8: .word 0x00009C40
+_0223E5FC: .word MOD12_0223E604
+_0223E600: .word MOD12_0223E6A4
+
+ thumb_func_start MOD12_0223E604
+MOD12_0223E604: ; 0x0223E604
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #0
+ beq _0223E616
+ cmp r0, #1
+ beq _0223E636
+ b _0223E686
+_0223E616:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ mov r2, #0
+ bl MOD12_0223CD38
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #8]
+ lsl r0, r0, #8
+ str r0, [r4, #0x1c]
+ str r0, [r4, #0x18]
+ mov r0, #5
+ lsl r0, r0, #8
+ str r0, [r4, #0x14]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+_0223E636:
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ sub r0, r1, r0
+ str r0, [r4, #0x18]
+ mov r0, #2
+ ldr r1, [r4, #0x14]
+ lsl r0, r0, #8
+ sub r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r1, [r4, #0x1c]
+ ldr r0, [r4, #0x18]
+ cmp r0, r1
+ blt _0223E66A
+ str r1, [r4, #0x18]
+ ldrb r0, [r4, #0x11]
+ add r0, r0, #1
+ strb r0, [r4, #0x11]
+ ldrb r0, [r4, #0x11]
+ cmp r0, #1
+ bls _0223E666
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ b _0223E66A
+_0223E666:
+ mov r0, #0
+ strb r0, [r4, #0x10]
+_0223E66A:
+ ldr r1, [r4, #0x18]
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r1, r0, #8
+ ldr r0, [r4, #4]
+ str r1, [r0, #8]
+ ldr r2, [r4, #4]
+ ldr r0, [r2]
+ ldr r1, [r2, #4]
+ ldr r2, [r2, #8]
+ bl FUN_021DD620
+ pop {r3, r4, r5, pc}
+_0223E686:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ strb r1, [r0]
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl MOD12_0223CD38
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223E6A4
+MOD12_0223E6A4: ; 0x0223E6A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #0
+ beq _0223E6B6
+ cmp r0, #1
+ beq _0223E6C6
+ b _0223E720
+_0223E6B6:
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #4]
+ lsl r0, r0, #8
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x24]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+_0223E6C6:
+ ldr r0, [r4, #0x20]
+ bl FUN_0201B9B8
+ lsl r1, r0, #2
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ mov r1, #0x32
+ ldr r2, [r4, #0x20]
+ lsl r1, r1, #0xc
+ add r1, r2, r1
+ str r1, [r4, #0x20]
+ asr r2, r1, #0xc
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ asr r0, r0, #0xc
+ cmp r2, r1
+ blt _0223E702
+ ldrb r1, [r4, #0x11]
+ add r1, r1, #1
+ strb r1, [r4, #0x11]
+ ldrb r1, [r4, #0x11]
+ cmp r1, #5
+ bls _0223E702
+ ldr r0, [r4, #0x28]
+ str r0, [r4, #0x24]
+ ldrb r1, [r4, #0x10]
+ mov r0, #0
+ add r1, r1, #1
+ strb r1, [r4, #0x10]
+_0223E702:
+ ldr r2, [r4, #0x24]
+ asr r1, r2, #7
+ lsr r1, r1, #0x18
+ add r1, r2, r1
+ asr r1, r1, #8
+ add r1, r1, r0
+ ldr r0, [r4, #4]
+ str r1, [r0, #4]
+ ldr r2, [r4, #4]
+ ldr r0, [r2]
+ ldr r1, [r2, #4]
+ ldr r2, [r2, #8]
+ bl FUN_021DD620
+ pop {r3, r4, r5, pc}
+_0223E720:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ strb r1, [r0]
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD12_0223E734
+MOD12_0223E734: ; 0x0223E734
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0223E738
+MOD12_0223E738: ; 0x0223E738
+ push {r3, lr}
+ ldr r0, _0223E74C ; =0x04000050
+ mov r3, #0
+ mov r1, #1
+ mov r2, #0x3e
+ str r3, [sp]
+ bl G2x_SetBlendAlpha_
+ pop {r3, pc}
+ nop
+_0223E74C: .word 0x04000050
+
+ thumb_func_start MOD12_0223E750
+MOD12_0223E750: ; 0x0223E750
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r0, #0xa4
+ add r5, r1, #0
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_020031FC
+ ldr r3, _0223E77C ; =0x0224620C
+ lsl r5, r5, #2
+ ldrh r1, [r3, r5]
+ add r3, r3, r5
+ ldr r2, _0223E780 ; =0x00001FE3
+ str r1, [sp]
+ ldrh r3, [r3, #2]
+ ldr r1, _0223E784 ; =0x0000110C
+ lsl r3, r3, #0x18
+ ldr r1, [r4, r1]
+ lsr r3, r3, #0x18
+ bl FUN_02003A30
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223E77C: .word 0x0224620C
+_0223E780: .word 0x00001FE3
+_0223E784: .word 0x0000110C
+
+ thumb_func_start MOD12_0223E788
+MOD12_0223E788: ; 0x0223E788
+ push {r3, lr}
+ ldrb r2, [r1, #7]
+ cmp r2, #0
+ bne _0223E7D0
+ ldrb r2, [r1, #4]
+ cmp r2, #0
+ beq _0223E79E
+ cmp r2, #1
+ beq _0223E79E
+ cmp r2, #2
+ b _0223E7CA
+_0223E79E:
+ ldrb r2, [r1, #3]
+ cmp r2, #4
+ bhi _0223E7CC
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223E7B0: ; jump table
+ .short _0223E7CC - _0223E7B0 - 2 ; case 0
+ .short _0223E7BA - _0223E7B0 - 2 ; case 1
+ .short _0223E7BE - _0223E7B0 - 2 ; case 2
+ .short _0223E7C2 - _0223E7B0 - 2 ; case 3
+ .short _0223E7C6 - _0223E7B0 - 2 ; case 4
+_0223E7BA:
+ mov r1, #1
+ b _0223E7CC
+_0223E7BE:
+ mov r1, #2
+ b _0223E7CC
+_0223E7C2:
+ mov r1, #3
+ b _0223E7CC
+_0223E7C6:
+ mov r1, #4
+ b _0223E7CC
+_0223E7CA:
+ mov r1, #5
+_0223E7CC:
+ bl MOD12_0223E750
+_0223E7D0:
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223E7D4
+MOD12_0223E7D4: ; 0x0223E7D4
+ push {r3, r4, r5, r6, r7, lr}
+ str r1, [sp]
+ ldr r1, _0223E844 ; =0x00000AE8
+ mov ip, r0
+ ldr r0, [r0, r1]
+ ldr r1, _0223E848 ; =0x00001BA0
+ lsr r7, r0, #1
+ mov r0, ip
+ add r3, r0, r1
+ ldr r1, _0223E84C ; =0x04000280
+ mov r6, #0
+ mov r4, ip
+ lsr r0, r1, #0xb
+_0223E7EE:
+ ldrb r2, [r3]
+ lsl r2, r2, #0x1d
+ lsr r2, r2, #0x1f
+ cmp r2, #1
+ bne _0223E836
+ ldr r2, _0223E850 ; =0x00001B9E
+ mov r5, #0
+ ldrb r2, [r4, r2]
+ add r2, #0x10
+ strh r5, [r1]
+ ldr r5, _0223E854 ; =0x04000290
+ mul r2, r7
+ str r2, [r5]
+ ldr r5, _0223E858 ; =0x00002710
+ ldr r2, _0223E85C ; =0x04000298
+ str r5, [r2]
+ mov r5, #0
+ str r5, [r2, #4]
+_0223E812:
+ ldrh r2, [r1]
+ tst r2, r0
+ bne _0223E812
+ ldr r2, _0223E860 ; =0x040002A0
+ ldr r5, [r2]
+ ldr r2, [sp]
+ cmp r5, r2
+ bne _0223E836
+ ldr r2, _0223E864 ; =0x00001B98
+ mov r1, ip
+ add r2, r1, r2
+ mov r1, #0xa
+ mul r1, r6
+ mov r0, ip
+ add r1, r2, r1
+ bl MOD12_0223E788
+ pop {r3, r4, r5, r6, r7, pc}
+_0223E836:
+ add r6, r6, #1
+ add r3, #0xa
+ add r4, #0xa
+ cmp r6, #8
+ blt _0223E7EE
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223E844: .word 0x00000AE8
+_0223E848: .word 0x00001BA0
+_0223E84C: .word 0x04000280
+_0223E850: .word 0x00001B9E
+_0223E854: .word 0x04000290
+_0223E858: .word 0x00002710
+_0223E85C: .word 0x04000298
+_0223E860: .word 0x040002A0
+_0223E864: .word 0x00001B98
+
+ thumb_func_start MOD12_0223E868
+MOD12_0223E868: ; 0x0223E868
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ mov r0, #0x82
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0223E87A
+ bl ErrorHandling
+_0223E87A:
+ mov r0, #0x81
+ lsl r0, r0, #2
+ add r5, r4, r0
+ ldr r0, _0223E890 ; =MOD12_0223E8EC
+ ldr r2, _0223E894 ; =0x00009C40
+ add r1, r5, #0
+ str r4, [r5]
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223E890: .word MOD12_0223E8EC
+_0223E894: .word 0x00009C40
+
+ thumb_func_start MOD12_0223E898
+MOD12_0223E898: ; 0x0223E898
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x82
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0223E8B2
+ bl FUN_0200CAB4
+ mov r0, #0x82
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0223E8B2:
+ pop {r4, pc}
+
+ thumb_func_start MOD12_0223E8B4
+MOD12_0223E8B4: ; 0x0223E8B4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r1, #0x81
+ lsl r1, r1, #2
+ add r4, r0, r1
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _0223E8C8
+ bl ErrorHandling
+_0223E8C8:
+ cmp r5, #0
+ bne _0223E8D0
+ mov r0, #0x40
+ b _0223E8D2
+_0223E8D0:
+ mov r0, #0x30
+_0223E8D2:
+ strb r0, [r4, #0xa]
+ mov r0, #1
+ strb r0, [r4, #0xb]
+ mov r0, #0xa
+ lsl r0, r0, #8
+ strh r0, [r4, #8]
+ ldr r0, _0223E8E8 ; =0x000006F8
+ bl FUN_020054C8
+ pop {r3, r4, r5, pc}
+ nop
+_0223E8E8: .word 0x000006F8
+
+ thumb_func_start MOD12_0223E8EC
+MOD12_0223E8EC: ; 0x0223E8EC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0
+ beq _0223E946
+ ldr r0, [r4]
+ mov r1, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ bl FUN_020031FC
+ ldrb r1, [r4, #0xa]
+ lsl r3, r1, #1
+ ldr r1, _0223E94C ; =0x00007FFF
+ add r0, r0, r3
+ str r1, [sp]
+ ldr r2, [r4]
+ ldr r1, _0223E950 ; =0x0000110C
+ ldr r1, [r2, r1]
+ mov r2, #0x10
+ add r1, r1, r3
+ ldrh r3, [r4, #8]
+ asr r3, r3, #8
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02003974
+ ldrh r1, [r4, #8]
+ cmp r1, #0
+ bne _0223E932
+ mov r0, #0
+ add sp, #4
+ strb r0, [r4, #0xb]
+ pop {r3, r4, pc}
+_0223E932:
+ mov r0, #1
+ lsl r0, r0, #8
+ cmp r1, r0
+ bls _0223E942
+ sub r0, r1, r0
+ add sp, #4
+ strh r0, [r4, #8]
+ pop {r3, r4, pc}
+_0223E942:
+ mov r0, #0
+ strh r0, [r4, #8]
+_0223E946:
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0223E94C: .word 0x00007FFF
+_0223E950: .word 0x0000110C
+
+ thumb_func_start MOD12_0223E954
+MOD12_0223E954: ; 0x0223E954
+ push {r3, r4, r5, lr}
+ ldr r5, _0223E97C ; =0x00001120
+ add r4, r0, #0
+ str r2, [r4, r5]
+ add r0, r5, #4
+ str r3, [r4, r0]
+ add r0, r5, #0
+ ldr r2, [sp, #0x10]
+ add r0, #8
+ str r2, [r4, r0]
+ ldr r0, [sp, #0x14]
+ add r5, #0xc
+ str r0, [r4, r5]
+ ldr r0, [r4, #0xc]
+ ldr r2, _0223E980 ; =MOD12_0223E984
+ add r3, r4, #0
+ bl FUN_020133AC
+ pop {r3, r4, r5, pc}
+ nop
+_0223E97C: .word 0x00001120
+_0223E980: .word MOD12_0223E984
+
+ thumb_func_start MOD12_0223E984
+MOD12_0223E984: ; 0x0223E984
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201341C
+ ldr r1, _0223E9C0 ; =0x00001120
+ add r1, r0, r1
+ ldr r0, [r4, #0x20]
+ ldr r2, [r1]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r2, r0
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x20]
+ ldr r2, [r1, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r2, r0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r2, [r1, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r2, r0
+ str r0, [r4, #0x30]
+ ldr r1, [r1, #0xc]
+ add r0, r4, #0
+ bl FUN_02013450
+ pop {r4, pc}
+ nop
+_0223E9C0: .word 0x00001120
+
+ thumb_func_start MOD12_0223E9C4
+MOD12_0223E9C4: ; 0x0223E9C4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r4, r0, #0
+ add r6, r2, #0
+ cmp r5, #0x21
+ blo _0223E9D6
+ bl ErrorHandling
+_0223E9D6:
+ ldr r0, _0223EA3C ; =0x0224637C
+ lsl r1, r5, #2
+ ldr r5, [r0, r1]
+ cmp r6, #0
+ ldr r0, _0223EA40 ; =0xFFFFEB80
+ ldr r3, _0223EA44 ; =0xFFFFBADC
+ bne _0223EA10
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r5, #0
+ bl MOD12_0223E954
+ ldr r0, _0223EA40 ; =0xFFFFEB80
+ ldr r3, _0223EA44 ; =0xFFFFBADC
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r5, #0
+ bl MOD12_0223E954
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_0223EA10:
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #2
+ add r2, r5, #0
+ bl MOD12_0223E954
+ ldr r0, _0223EA40 ; =0xFFFFEB80
+ ldr r3, _0223EA44 ; =0xFFFFBADC
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #3
+ add r2, r5, #0
+ bl MOD12_0223E954
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0223EA3C: .word 0x0224637C
+_0223EA40: .word 0xFFFFEB80
+_0223EA44: .word 0xFFFFBADC
+
+ thumb_func_start MOD12_0223EA48
+MOD12_0223EA48: ; 0x0223EA48
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ cmp r1, #0
+ ldr r1, _0223EBFC ; =0xFFFFEB80
+ ldr r3, _0223EC00 ; =0xFFFFE764
+ bne _0223EAD6
+ str r1, [sp]
+ mov r1, #1
+ lsl r1, r1, #0xc
+ str r1, [sp, #4]
+ ldr r2, _0223EC04 ; =0xFFFFCD38
+ mov r1, #5
+ bl MOD12_0223E954
+ ldr r0, _0223EBFC ; =0xFFFFEB80
+ ldr r2, _0223EC04 ; =0xFFFFCD38
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r3, _0223EC00 ; =0xFFFFE764
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD12_0223E954
+ ldr r0, _0223EBFC ; =0xFFFFEB80
+ ldr r2, _0223EC04 ; =0xFFFFCD38
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r3, _0223EC00 ; =0xFFFFE764
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD12_0223E954
+ ldr r0, _0223EBFC ; =0xFFFFEB80
+ ldr r2, _0223EC08 ; =0x00005014
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r3, _0223EC00 ; =0xFFFFE764
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD12_0223E954
+ ldr r0, _0223EBFC ; =0xFFFFEB80
+ ldr r2, _0223EC08 ; =0x00005014
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r3, _0223EC00 ; =0xFFFFE764
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD12_0223E954
+ ldr r0, _0223EBFC ; =0xFFFFEB80
+ ldr r2, _0223EC08 ; =0x00005014
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r3, _0223EC00 ; =0xFFFFE764
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD12_0223E954
+ b _0223EBAC
+_0223EAD6:
+ str r1, [sp]
+ mov r1, #1
+ lsl r1, r1, #0xc
+ str r1, [sp, #4]
+ ldr r2, _0223EC0C ; =0xFFFFBD98
+ mov r1, #8
+ bl MOD12_0223E954
+ ldr r0, _0223EBFC ; =0xFFFFEB80
+ ldr r2, _0223EC0C ; =0xFFFFBD98
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r3, _0223EC00 ; =0xFFFFE764
+ add r0, r4, #0
+ mov r1, #9
+ bl MOD12_0223E954
+ ldr r0, _0223EBFC ; =0xFFFFEB80
+ ldr r2, _0223EC0C ; =0xFFFFBD98
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r3, _0223EC00 ; =0xFFFFE764
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD12_0223E954
+ ldr r0, _0223EBFC ; =0xFFFFEB80
+ ldr r2, _0223EC0C ; =0xFFFFBD98
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r3, _0223EC00 ; =0xFFFFE764
+ add r0, r4, #0
+ mov r1, #0xb
+ bl MOD12_0223E954
+ ldr r0, _0223EBFC ; =0xFFFFEB80
+ ldr r2, _0223EC0C ; =0xFFFFBD98
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r3, _0223EC00 ; =0xFFFFE764
+ add r0, r4, #0
+ mov r1, #0xc
+ bl MOD12_0223E954
+ ldr r0, _0223EBFC ; =0xFFFFEB80
+ ldr r2, _0223EC10 ; =0x00004074
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r3, _0223EC00 ; =0xFFFFE764
+ add r0, r4, #0
+ mov r1, #8
+ bl MOD12_0223E954
+ ldr r0, _0223EBFC ; =0xFFFFEB80
+ ldr r2, _0223EC10 ; =0x00004074
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r3, _0223EC00 ; =0xFFFFE764
+ add r0, r4, #0
+ mov r1, #9
+ bl MOD12_0223E954
+ ldr r0, _0223EBFC ; =0xFFFFEB80
+ ldr r2, _0223EC10 ; =0x00004074
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r3, _0223EC00 ; =0xFFFFE764
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD12_0223E954
+ ldr r0, _0223EBFC ; =0xFFFFEB80
+ ldr r2, _0223EC10 ; =0x00004074
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r3, _0223EC00 ; =0xFFFFE764
+ add r0, r4, #0
+ mov r1, #0xb
+ bl MOD12_0223E954
+ ldr r0, _0223EBFC ; =0xFFFFEB80
+ ldr r2, _0223EC10 ; =0x00004074
+ str r0, [sp]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r3, _0223EC00 ; =0xFFFFE764
+ add r0, r4, #0
+ mov r1, #0xc
+ bl MOD12_0223E954
+_0223EBAC:
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0223EC14 ; =0x00007FFF
+ ldr r1, _0223EC18 ; =0x00001FE3
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #8
+ mov r3, #0x10
+ bl MOD12_0223EC4C
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r2, _0223EC14 ; =0x00007FFF
+ add r0, r4, #0
+ str r2, [sp, #8]
+ add r0, #0xa4
+ mov r1, #4
+ ldr r0, [r0]
+ lsr r2, r2, #1
+ sub r3, r1, #5
+ bl FUN_02003210
+ ldr r0, _0223EC1C ; =0x04000050
+ mov r1, #0x3f
+ mov r2, #0x10
+ bl G2x_SetBlendBrightness_
+ mov r2, #0xfa
+ ldr r0, _0223EC20 ; =MOD12_0223EC28
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ ldr r0, _0223EC24 ; =0x000006E5
+ bl FUN_020054C8
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_0223EBFC: .word 0xFFFFEB80
+_0223EC00: .word 0xFFFFE764
+_0223EC04: .word 0xFFFFCD38
+_0223EC08: .word 0x00005014
+_0223EC0C: .word 0xFFFFBD98
+_0223EC10: .word 0x00004074
+_0223EC14: .word 0x00007FFF
+_0223EC18: .word 0x00001FE3
+_0223EC1C: .word 0x04000050
+_0223EC20: .word MOD12_0223EC28
+_0223EC24: .word 0x000006E5
+
+ thumb_func_start MOD12_0223EC28
+MOD12_0223EC28: ; 0x0223EC28
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r3, #0
+ ldr r0, _0223EC48 ; =0x04000050
+ mov r1, #1
+ mov r2, #0x3e
+ str r3, [sp]
+ bl G2x_SetBlendAlpha_
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0223EC48: .word 0x04000050
+
+ thumb_func_start MOD12_0223EC4C
+MOD12_0223EC4C: ; 0x0223EC4C
+ push {r3, r4, r5, lr}
+ ldr r4, _0223EC78 ; =0x0000110C
+ ldr r5, [sp, #0x10]
+ add r4, r0, r4
+ lsl r0, r3, #8
+ strh r0, [r4, #8]
+ lsl r0, r5, #8
+ strh r0, [r4, #0xa]
+ add r0, sp, #0
+ ldrh r0, [r0, #0x14]
+ strh r0, [r4, #0xe]
+ sub r0, r5, r3
+ strh r1, [r4, #6]
+ lsl r0, r0, #8
+ add r1, r2, #0
+ bl _u32_div_f
+ strh r0, [r4, #0xc]
+ mov r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+ nop
+_0223EC78: .word 0x0000110C
+
+ thumb_func_start MOD12_0223EC7C
+MOD12_0223EC7C: ; 0x0223EC7C
+ ldr r2, _0223EC84 ; =0x0000111D
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_0223EC84: .word 0x0000111D
+
+ thumb_func_start MOD12_0223EC88
+MOD12_0223EC88: ; 0x0223EC88
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ str r1, [sp]
+ cmp r2, #0
+ bne _0223EC98
+ ldr r7, _0223ECC4 ; =0x00007FFF
+ ldr r6, _0223ECC8 ; =0x0000254A
+ b _0223EC9C
+_0223EC98:
+ ldr r7, _0223ECC8 ; =0x0000254A
+ ldr r6, _0223ECC4 ; =0x00007FFF
+_0223EC9C:
+ mov r4, #0
+_0223EC9E:
+ ldr r0, [sp]
+ cmp r4, r0
+ ldr r0, [r5, #0x18]
+ bne _0223ECAE
+ add r1, r7, #0
+ bl FUN_021DD6B8
+ b _0223ECB4
+_0223ECAE:
+ add r1, r6, #0
+ bl FUN_021DD6B8
+_0223ECB4:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #4
+ blt _0223EC9E
+ ldr r0, _0223ECCC ; =0x000006EC
+ bl FUN_020054C8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223ECC4: .word 0x00007FFF
+_0223ECC8: .word 0x0000254A
+_0223ECCC: .word 0x000006EC
+
+ thumb_func_start MOD12_0223ECD0
+MOD12_0223ECD0: ; 0x0223ECD0
+ push {r4, r5, r6, lr}
+ ldr r6, _0223ECEC ; =0x00007FFF
+ add r5, r0, #0
+ mov r4, #0
+_0223ECD8:
+ ldr r0, [r5, #0x18]
+ add r1, r6, #0
+ bl FUN_021DD6B8
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #4
+ blt _0223ECD8
+ pop {r4, r5, r6, pc}
+ nop
+_0223ECEC: .word 0x00007FFF
+
+ thumb_func_start MOD12_0223ECF0
+MOD12_0223ECF0: ; 0x0223ECF0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r0, [sp, #0xc]
+ mov r4, #0
+ add r5, sp, #0x18
+ add r3, sp, #0x14
+ ldr r2, _0223ED9C ; =0x00000ADA
+ b _0223ED0E
+_0223ED00:
+ ldr r1, [sp, #0xc]
+ lsl r0, r4, #1
+ add r1, r1, r0
+ ldrsh r1, [r1, r2]
+ strb r4, [r3, r4]
+ add r4, r4, #1
+ strh r1, [r5, r0]
+_0223ED0E:
+ cmp r4, #4
+ blt _0223ED00
+ mov r4, #0
+ add r7, sp, #0x18
+ b _0223ED42
+_0223ED18:
+ mov r6, #3
+ b _0223ED3C
+_0223ED1C:
+ sub r3, r6, #1
+ lsl r5, r3, #1
+ lsl r1, r6, #1
+ ldrsh r2, [r7, r5]
+ ldrsh r0, [r7, r1]
+ cmp r2, r0
+ bge _0223ED3A
+ strh r2, [r7, r1]
+ strh r0, [r7, r5]
+ add r0, sp, #0x14
+ add r1, sp, #0x14
+ ldrb r0, [r0, r6]
+ ldrb r2, [r1, r3]
+ strb r2, [r1, r6]
+ strb r0, [r1, r3]
+_0223ED3A:
+ sub r6, r6, #1
+_0223ED3C:
+ cmp r6, r4
+ bgt _0223ED1C
+ add r4, r4, #1
+_0223ED42:
+ cmp r4, #3
+ blt _0223ED18
+ ldr r3, _0223EDA0 ; =0x02246400
+ add r0, sp, #0x10
+ ldrb r1, [r3]
+ mov r4, #1
+ add r2, sp, #0x10
+ strb r1, [r0]
+ add r1, sp, #0x18
+ b _0223ED6E
+_0223ED56:
+ ldrb r0, [r3, r4]
+ sub r6, r4, #1
+ lsl r5, r6, #1
+ strb r0, [r2, r4]
+ lsl r0, r4, #1
+ ldrsh r0, [r1, r0]
+ ldrsh r5, [r1, r5]
+ cmp r0, r5
+ bne _0223ED6C
+ ldrb r0, [r2, r6]
+ strb r0, [r2, r4]
+_0223ED6C:
+ add r4, r4, #1
+_0223ED6E:
+ cmp r4, #4
+ blt _0223ED56
+ mov r4, #0
+ add r5, sp, #0x10
+ mov r6, #0x1e
+ add r7, r4, #0
+ b _0223ED94
+_0223ED7C:
+ ldrb r0, [r5, r4]
+ add r1, sp, #0x14
+ ldrb r1, [r1, r4]
+ str r0, [sp]
+ str r6, [sp, #4]
+ ldr r0, [sp, #0xc]
+ ldr r2, _0223EDA4 ; =0x00007FFF
+ ldr r3, _0223EDA8 ; =0x0000254A
+ str r7, [sp, #8]
+ bl MOD12_0223EDAC
+ add r4, r4, #1
+_0223ED94:
+ cmp r4, #4
+ blt _0223ED7C
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223ED9C: .word 0x00000ADA
+_0223EDA0: .word 0x02246400
+_0223EDA4: .word 0x00007FFF
+_0223EDA8: .word 0x0000254A
+
+ thumb_func_start MOD12_0223EDAC
+MOD12_0223EDAC: ; 0x0223EDAC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #0x17
+ mov r1, #0x14
+ add r6, r2, #0
+ str r3, [sp, #4]
+ ldr r5, [sp, #0x28]
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x14
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [sp]
+ ldr r1, [sp, #0x24]
+ lsl r0, r0, #4
+ add r0, r7, r0
+ ldr r0, [r0, #0x18]
+ str r0, [r4]
+ strh r6, [r4, #8]
+ ldr r0, [sp, #4]
+ strh r0, [r4, #0xa]
+ ldr r0, [sp, #0x20]
+ strb r0, [r4, #0x10]
+ lsl r0, r0, #8
+ bl _s32_div_f
+ strh r0, [r4, #0xc]
+ str r5, [r4, #4]
+ cmp r5, #0
+ beq _0223EDF4
+ mov r0, #0
+ strb r0, [r5]
+_0223EDF4:
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl FUN_021DD6B8
+ ldr r0, _0223EE0C ; =MOD12_0223EE14
+ ldr r2, _0223EE10 ; =0x00009C40
+ add r1, r4, #0
+ bl FUN_0200CA44
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223EE0C: .word MOD12_0223EE14
+_0223EE10: .word 0x00009C40
+
+ thumb_func_start MOD12_0223EE14
+MOD12_0223EE14: ; 0x0223EE14
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r6, r0, #0
+ ldrh r1, [r5, #0xe]
+ ldrh r0, [r5, #0xc]
+ add r0, r1, r0
+ strh r0, [r5, #0xe]
+ ldrh r0, [r5, #0xe]
+ asr r4, r0, #8
+ ldrb r0, [r5, #0x10]
+ cmp r4, r0
+ ble _0223EE30
+ add r4, r0, #0
+_0223EE30:
+ ldrh r0, [r5, #0xa]
+ lsl r3, r4, #0x18
+ add r1, sp, #4
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #8
+ mov r2, #1
+ lsr r3, r3, #0x18
+ bl FUN_02003974
+ add r1, sp, #4
+ ldrh r1, [r1]
+ ldr r0, [r5]
+ bl FUN_021DD6B8
+ ldrb r0, [r5, #0x10]
+ cmp r4, r0
+ blt _0223EE6A
+ ldr r1, [r5, #4]
+ cmp r1, #0
+ beq _0223EE5E
+ mov r0, #1
+ strb r0, [r1]
+_0223EE5E:
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0223EE6A:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223EE70
+MOD12_0223EE70: ; 0x0223EE70
+ cmp r0, #0x32
+ beq _0223EE78
+ cmp r0, #0x33
+ bne _0223EE7C
+_0223EE78:
+ mov r0, #0
+ bx lr
+_0223EE7C:
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD12_0223EE80
+MOD12_0223EE80: ; 0x0223EE80
+ push {r3, r4, lr}
+ sub sp, #0xc
+ ldr r1, _0223EEB4 ; =0x02246424
+ add r3, sp, #0
+ str r1, [sp]
+ mov r1, #0xd
+ strh r1, [r3, #4]
+ ldr r1, [r0]
+ ldr r2, _0223EEB8 ; =0x00000123
+ ldrb r1, [r1, r2]
+ strb r1, [r3, #6]
+ sub r1, r2, #7
+ ldr r4, [r0]
+ add r2, #0x4e
+ ldrb r1, [r4, r1]
+ strb r1, [r3, #8]
+ ldr r1, [r0]
+ ldrb r1, [r1, r2]
+ strb r1, [r3, #7]
+ ldr r1, _0223EEBC ; =0x00001158
+ add r0, r0, r1
+ add r1, sp, #0
+ bl MOD12_02240ED0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_0223EEB4: .word 0x02246424
+_0223EEB8: .word 0x00000123
+_0223EEBC: .word 0x00001158
+
+ thumb_func_start MOD12_0223EEC0
+MOD12_0223EEC0: ; 0x0223EEC0
+ push {r3, lr}
+ lsl r2, r2, #0x10
+ mov r3, #0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223EED4
+MOD12_0223EED4: ; 0x0223EED4
+ push {r3, lr}
+ add r1, r2, #0
+ mov r2, #0
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223EEE4
+MOD12_0223EEE4: ; 0x0223EEE4
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0223EEE8
+MOD12_0223EEE8: ; 0x0223EEE8
+ push {r3, lr}
+ lsl r2, r2, #0x10
+ mov r3, #0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223EEFC
+MOD12_0223EEFC: ; 0x0223EEFC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x17
+ mov r1, #0x18
+ add r5, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x18
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _0223EF38 ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, _0223EF3C ; =MOD12_0223EF40
+ str r6, [r4, #0xc]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223EF38: .word 0x00007530
+_0223EF3C: .word MOD12_0223EF40
+
+ thumb_func_start MOD12_0223EF40
+MOD12_0223EF40: ; 0x0223EF40
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldrb r0, [r1, #0x10]
+ str r1, [sp]
+ cmp r0, #0
+ beq _0223EF50
+ b _0223F076
+_0223EF50:
+ ldr r0, [sp]
+ mov r1, #0x14
+ ldrsb r0, [r0, r1]
+ cmp r0, #0
+ ble _0223EF64
+ sub r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x14]
+ pop {r4, r5, r6, r7, pc}
+_0223EF64:
+ ldr r0, [sp]
+ mov r1, #0x13
+ ldrsb r0, [r0, r1]
+ cmp r0, #0
+ ble _0223EF78
+ sub r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x13]
+ pop {r4, r5, r6, r7, pc}
+_0223EF78:
+ ldr r0, [sp]
+ mov r1, #1
+ strb r1, [r0, #0x13]
+ ldr r0, [r0]
+ mov r1, #2
+ ldr r0, [r0, #0x74]
+ bl FUN_0201886C
+ mov ip, r0
+ mov r0, #0
+ str r0, [sp, #8]
+ b _0223EFF0
+_0223EF90:
+ ldr r0, [sp]
+ mov r1, #0x11
+ ldrsb r1, [r0, r1]
+ ldr r0, _0223F094 ; =0x02246404
+ ldrsb r1, [r0, r1]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ bmi _0223EFEA
+ lsl r1, r0, #6
+ mov r0, ip
+ add r3, r0, r1
+ ldr r0, [sp]
+ mov r5, #0
+ ldrb r0, [r0, #0x12]
+ mov r7, #0x3f
+ str r5, [sp, #4]
+ lsl r1, r0, #1
+ ldr r0, _0223F098 ; =0x0224640C
+ lsl r7, r7, #0xa
+ ldrh r1, [r0, r1]
+ ldr r0, [sp, #8]
+ lsl r0, r0, #5
+ add r6, r1, r0
+ b _0223EFE4
+_0223EFC0:
+ mov r4, #0
+ b _0223EFD8
+_0223EFC4:
+ add r0, r5, r4
+ lsl r2, r0, #1
+ ldrh r0, [r3, r2]
+ and r0, r7
+ strh r0, [r3, r2]
+ ldrh r1, [r3, r2]
+ add r0, r6, r4
+ add r4, r4, #1
+ orr r0, r1
+ strh r0, [r3, r2]
+_0223EFD8:
+ cmp r4, #8
+ blt _0223EFC4
+ ldr r0, [sp, #4]
+ add r5, #8
+ add r0, r0, #1
+ str r0, [sp, #4]
+_0223EFE4:
+ ldr r0, [sp, #4]
+ cmp r0, #4
+ blt _0223EFC0
+_0223EFEA:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+_0223EFF0:
+ ldr r0, [sp, #8]
+ cmp r0, #4
+ blt _0223EF90
+ ldr r0, [sp]
+ mov r1, #0x11
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ ble _0223F032
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0
+ bne _0223F032
+ ldr r0, _0223F094 ; =0x02246404
+ sub r1, r1, #1
+ ldrsb r0, [r0, r1]
+ lsl r1, r0, #6
+ mov r0, ip
+ add r3, r0, r1
+ mov r0, #0
+ mov r1, #0x3f
+ str r0, [sp, #4]
+ lsl r1, r1, #0xa
+ b _0223F02C
+_0223F01C:
+ ldr r0, [sp, #4]
+ lsl r2, r0, #1
+ ldrh r0, [r3, r2]
+ and r0, r1
+ strh r0, [r3, r2]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+_0223F02C:
+ ldr r0, [sp, #4]
+ cmp r0, #0x20
+ blt _0223F01C
+_0223F032:
+ ldr r0, [sp]
+ mov r1, #2
+ ldr r0, [r0]
+ ldr r0, [r0, #0x74]
+ bl FUN_0201AC68
+ ldr r0, [sp]
+ ldrb r0, [r0, #0x12]
+ add r1, r0, #1
+ ldr r0, [sp]
+ strb r1, [r0, #0x12]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0xc
+ blo _0223F090
+ ldr r1, [sp]
+ mov r0, #0
+ mov r2, #0x11
+ strb r0, [r1, #0x12]
+ ldrsb r1, [r1, r2]
+ add r3, r1, #1
+ ldr r1, [sp]
+ strb r3, [r1, #0x11]
+ strb r0, [r1, #0x14]
+ add r0, r1, #0
+ ldrsb r0, [r0, r2]
+ cmp r0, #5
+ blo _0223F090
+ add r0, r1, #0
+ ldrb r0, [r0, #0x10]
+ add r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_0223F076:
+ add r0, r1, #0
+ mov r2, #0
+ ldr r0, [r0, #0xc]
+ add r1, r1, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ ldr r0, [sp]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_0223F090:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223F094: .word 0x02246404
+_0223F098: .word 0x0224640C
+
+ thumb_func_start MOD12_0223F09C
+MOD12_0223F09C: ; 0x0223F09C
+ push {r3, lr}
+ lsl r2, r2, #0x10
+ mov r3, #0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223F0B0
+MOD12_0223F0B0: ; 0x0223F0B0
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r1, #0
+ mov r0, #0x17
+ mov r1, #0x18
+ add r5, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x18
+ bl MI_CpuFill8
+ str r6, [r4]
+ ldrh r0, [r5]
+ ldr r2, _0223F0F8 ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, _0223F0FC ; =MOD12_0223F108
+ str r7, [r4, #0xc]
+ bl FUN_0200CA44
+ ldr r0, _0223F100 ; =0x00001134
+ mov r1, #0
+ strb r1, [r6, r0]
+ ldr r0, _0223F104 ; =0x0000046F
+ bl FUN_0200521C
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223F0F8: .word 0x00007530
+_0223F0FC: .word MOD12_0223F108
+_0223F100: .word 0x00001134
+_0223F104: .word 0x0000046F
+
+ thumb_func_start MOD12_0223F108
+MOD12_0223F108: ; 0x0223F108
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldrb r0, [r1, #0x10]
+ str r1, [sp]
+ cmp r0, #0
+ beq _0223F118
+ b _0223F266
+_0223F118:
+ ldr r0, [sp]
+ mov r1, #0x14
+ ldrsb r0, [r0, r1]
+ cmp r0, #0
+ ble _0223F12C
+ sub r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x14]
+ pop {r4, r5, r6, r7, pc}
+_0223F12C:
+ ldr r0, [sp]
+ mov r1, #0x13
+ ldrsb r0, [r0, r1]
+ cmp r0, #0
+ ble _0223F140
+ sub r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x13]
+ pop {r4, r5, r6, r7, pc}
+_0223F140:
+ ldr r0, [sp]
+ mov r1, #1
+ strb r1, [r0, #0x13]
+ ldr r0, [r0]
+ mov r1, #2
+ ldr r0, [r0, #0x74]
+ bl FUN_0201886C
+ mov ip, r0
+ mov r0, #0
+ str r0, [sp, #8]
+ b _0223F1C0
+_0223F158:
+ ldr r0, [sp]
+ mov r1, #0x11
+ ldrsb r1, [r0, r1]
+ mov r0, #4
+ sub r1, r0, r1
+ ldr r0, _0223F284 ; =0x02246404
+ ldrsb r1, [r0, r1]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ bmi _0223F1BA
+ lsl r1, r0, #6
+ mov r0, ip
+ add r3, r0, r1
+ ldr r0, [sp]
+ mov r5, #0
+ ldrb r1, [r0, #0x12]
+ mov r0, #0xb
+ mov r7, #0x3f
+ sub r0, r0, r1
+ lsl r1, r0, #1
+ ldr r0, _0223F288 ; =0x0224640C
+ str r5, [sp, #4]
+ ldrh r1, [r0, r1]
+ ldr r0, [sp, #8]
+ lsl r7, r7, #0xa
+ lsl r0, r0, #5
+ add r6, r1, r0
+ b _0223F1B4
+_0223F190:
+ mov r4, #0
+ b _0223F1A8
+_0223F194:
+ add r0, r5, r4
+ lsl r2, r0, #1
+ ldrh r0, [r3, r2]
+ and r0, r7
+ strh r0, [r3, r2]
+ ldrh r1, [r3, r2]
+ add r0, r6, r4
+ add r4, r4, #1
+ orr r0, r1
+ strh r0, [r3, r2]
+_0223F1A8:
+ cmp r4, #8
+ blt _0223F194
+ ldr r0, [sp, #4]
+ add r5, #8
+ add r0, r0, #1
+ str r0, [sp, #4]
+_0223F1B4:
+ ldr r0, [sp, #4]
+ cmp r0, #4
+ blt _0223F190
+_0223F1BA:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+_0223F1C0:
+ ldr r0, [sp, #8]
+ cmp r0, #4
+ blt _0223F158
+ ldr r0, [sp]
+ mov r1, #0x11
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ ble _0223F222
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0
+ bne _0223F222
+ mov r0, #5
+ sub r1, r0, r1
+ ldr r0, _0223F284 ; =0x02246404
+ mov r7, #0x3f
+ ldrsb r0, [r0, r1]
+ lsl r7, r7, #0xa
+ mov r6, #0x1d
+ add r0, r0, #3
+ lsl r1, r0, #6
+ mov r0, ip
+ add r3, r0, r1
+ mov r0, #0
+ mov r1, #2
+ str r0, [sp, #4]
+ lsl r1, r1, #8
+ b _0223F21C
+_0223F1F6:
+ ldr r0, [sp, #4]
+ ldr r5, [sp, #4]
+ lsl r4, r0, #1
+ ldrh r0, [r3, r4]
+ lsl r5, r5, #0x1d
+ and r0, r7
+ strh r0, [r3, r4]
+ ldr r0, [sp, #4]
+ ldrh r2, [r3, r4]
+ lsr r0, r0, #0x1f
+ sub r5, r5, r0
+ ror r5, r6
+ add r0, r0, r5
+ add r0, r0, r1
+ orr r0, r2
+ strh r0, [r3, r4]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+_0223F21C:
+ ldr r0, [sp, #4]
+ cmp r0, #0x20
+ blt _0223F1F6
+_0223F222:
+ ldr r0, [sp]
+ mov r1, #2
+ ldr r0, [r0]
+ ldr r0, [r0, #0x74]
+ bl FUN_0201AC68
+ ldr r0, [sp]
+ ldrb r0, [r0, #0x12]
+ add r1, r0, #1
+ ldr r0, [sp]
+ strb r1, [r0, #0x12]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0xc
+ blo _0223F280
+ ldr r1, [sp]
+ mov r0, #0
+ mov r2, #0x11
+ strb r0, [r1, #0x12]
+ ldrsb r1, [r1, r2]
+ add r3, r1, #1
+ ldr r1, [sp]
+ strb r3, [r1, #0x11]
+ strb r0, [r1, #0x14]
+ add r0, r1, #0
+ ldrsb r0, [r0, r2]
+ cmp r0, #5
+ blo _0223F280
+ add r0, r1, #0
+ ldrb r0, [r0, #0x10]
+ add r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_0223F266:
+ add r0, r1, #0
+ mov r2, #0
+ ldr r0, [r0, #0xc]
+ add r1, r1, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ ldr r0, [sp]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_0223F280:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223F284: .word 0x02246404
+_0223F288: .word 0x0224640C
+
+ thumb_func_start MOD12_0223F28C
+MOD12_0223F28C: ; 0x0223F28C
+ push {r3, lr}
+ lsl r2, r2, #0x10
+ mov r3, #0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223F2A0
+MOD12_0223F2A0: ; 0x0223F2A0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x17
+ mov r1, #0x14
+ add r5, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x14
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _0223F2DC ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, _0223F2E0 ; =MOD12_0223F2E4
+ str r6, [r4, #0xc]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223F2DC: .word 0x00007530
+_0223F2E0: .word MOD12_0223F2E4
+
+ thumb_func_start MOD12_0223F2E4
+MOD12_0223F2E4: ; 0x0223F2E4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #5
+ bhi _0223F388
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223F2FC: ; jump table
+ .short _0223F308 - _0223F2FC - 2 ; case 0
+ .short _0223F318 - _0223F2FC - 2 ; case 1
+ .short _0223F328 - _0223F2FC - 2 ; case 2
+ .short _0223F34A - _0223F2FC - 2 ; case 3
+ .short _0223F364 - _0223F2FC - 2 ; case 4
+ .short _0223F37C - _0223F2FC - 2 ; case 5
+_0223F308:
+ ldr r0, _0223F3A4 ; =0x0000046F
+ mov r1, #0x1e
+ bl FUN_02005350
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223F318:
+ bl FUN_02005404
+ cmp r0, #0
+ bne _0223F3A0
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223F328:
+ ldr r0, _0223F3A8 ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ bl MOD12_0223E738
+ ldr r0, [r4]
+ mov r1, #1
+ add r0, #0x14
+ bl MOD12_0223CC9C
+ ldr r0, _0223F3AC ; =0x000006EC
+ bl FUN_020054C8
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223F34A:
+ mov r0, #0x12
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ strh r1, [r4, #0x12]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x1e
+ ble _0223F3A0
+ mov r0, #0
+ strh r0, [r4, #0x12]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223F364:
+ ldr r0, [r4]
+ ldr r1, _0223F3B0 ; =0x00000123
+ ldr r2, [r0]
+ ldrb r1, [r2, r1]
+ add r2, r4, #0
+ add r2, #0x11
+ bl MOD12_0223E598
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223F37C:
+ ldrb r1, [r4, #0x11]
+ cmp r1, #1
+ bne _0223F3A0
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0223F388:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0223F3A0:
+ pop {r3, r4, r5, pc}
+ nop
+_0223F3A4: .word 0x0000046F
+_0223F3A8: .word 0x04000050
+_0223F3AC: .word 0x000006EC
+_0223F3B0: .word 0x00000123
+
+ thumb_func_start MOD12_0223F3B4
+MOD12_0223F3B4: ; 0x0223F3B4
+ push {r3, lr}
+ mov r1, #4
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223F3C8
+MOD12_0223F3C8: ; 0x0223F3C8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ add r2, r3, #0
+ ldr r0, _0223F3F8 ; =0x00001BF0
+ mov r1, #1
+ strb r1, [r5, r0]
+ ldr r3, _0223F3FC ; =0x00000172
+ mov r1, #0
+_0223F3DC:
+ ldr r6, [r5]
+ ldrb r0, [r2, r1]
+ add r6, r6, r1
+ add r1, r1, #1
+ strb r0, [r6, r3]
+ cmp r1, #4
+ blt _0223F3DC
+ mov r2, #0
+ add r0, r7, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223F3F8: .word 0x00001BF0
+_0223F3FC: .word 0x00000172
+
+ thumb_func_start MOD12_0223F400
+MOD12_0223F400: ; 0x0223F400
+ push {r3, lr}
+ mov r1, #0x3c
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223F414
+MOD12_0223F414: ; 0x0223F414
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ mov r1, #0x57
+ add r7, r0, #0
+ mov r0, #0x17
+ lsl r1, r1, #2
+ add r5, r2, #0
+ str r3, [sp, #4]
+ bl FUN_02016998
+ mov r2, #0x57
+ add r4, r0, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl MI_CpuFill8
+ str r6, [r4]
+ ldrh r0, [r5]
+ add r3, r4, #0
+ add r3, #0x18
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ mov r2, #7
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ ldr r5, [sp, #4]
+ strh r0, [r4, #0xa]
+ str r7, [r4, #0xc]
+_0223F452:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0223F452
+ ldr r0, [r5]
+ ldr r2, _0223F510 ; =0x00007530
+ str r0, [r3]
+ ldr r0, _0223F514 ; =MOD12_0223F5CC
+ add r1, r4, #0
+ str r6, [r4, #0x54]
+ bl FUN_0200CA44
+ mov r7, #0
+ add r5, r4, #0
+_0223F46E:
+ ldr r1, [r6]
+ ldr r0, _0223F518 ; =0x00000127
+ ldrb r0, [r1, r0]
+ cmp r7, r0
+ bge _0223F482
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD12_0223F524
+ b _0223F48A
+_0223F482:
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD12_0223F524
+_0223F48A:
+ mov r1, #0x53
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r7, r7, #1
+ add r5, r5, #4
+ cmp r7, #4
+ blt _0223F46E
+ ldr r1, [r4]
+ ldr r2, _0223F51C ; =0x00000123
+ ldr r3, [r1]
+ mov r0, #0
+ ldrb r3, [r3, r2]
+_0223F4A2:
+ add r2, r4, r0
+ ldrb r2, [r2, #0x1a]
+ cmp r3, r2
+ bne _0223F4B0
+ ldr r2, _0223F520 ; =0x00000ACC
+ strb r0, [r1, r2]
+ b _0223F4B6
+_0223F4B0:
+ add r0, r0, #1
+ cmp r0, #4
+ blt _0223F4A2
+_0223F4B6:
+ add r0, r6, #0
+ bl MOD12_0223FDA0
+ ldr r1, [r6]
+ ldr r0, _0223F518 ; =0x00000127
+ ldrb r5, [r1, r0]
+ cmp r5, #4
+ bge _0223F50C
+ ldr r0, [sp, #4]
+ lsl r1, r5, #2
+ add r7, r0, r1
+ add r1, r4, #0
+ mov r0, #0x3c
+ add r1, #0x5c
+ mul r0, r5
+ add r0, r1, r0
+ str r0, [sp, #8]
+_0223F4D8:
+ mov r2, #0
+_0223F4DA:
+ add r0, r4, r2
+ ldrb r0, [r0, #0x1a]
+ cmp r5, r0
+ beq _0223F4E8
+ add r2, r2, #1
+ cmp r2, #4
+ blt _0223F4DA
+_0223F4E8:
+ ldr r0, [r6]
+ add r1, r0, r5
+ mov r0, #0x43
+ lsl r0, r0, #2
+ ldrb r0, [r1, r0]
+ add r1, r5, #0
+ str r0, [sp]
+ ldr r0, [sp, #8]
+ ldr r3, [r7, #0x14]
+ bl MOD12_02240774
+ ldr r0, [sp, #8]
+ add r5, r5, #1
+ add r0, #0x3c
+ add r7, r7, #4
+ str r0, [sp, #8]
+ cmp r5, #4
+ blt _0223F4D8
+_0223F50C:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223F510: .word 0x00007530
+_0223F514: .word MOD12_0223F5CC
+_0223F518: .word 0x00000127
+_0223F51C: .word 0x00000123
+_0223F520: .word 0x00000ACC
+
+ thumb_func_start MOD12_0223F524
+MOD12_0223F524: ; 0x0223F524
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x17
+ mov r1, #0x14
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x14
+ add r4, r0, #0
+ bl MI_CpuFill8
+ str r5, [r4, #4]
+ ldr r0, _0223F550 ; =MOD12_0223F588
+ ldr r2, _0223F554 ; =0x00007594
+ add r1, r4, #0
+ strb r6, [r4, #0x12]
+ bl FUN_0200CA44
+ str r0, [r4]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0223F550: .word MOD12_0223F588
+_0223F554: .word 0x00007594
+
+ thumb_func_start MOD12_0223F558
+MOD12_0223F558: ; 0x0223F558
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223F56C
+MOD12_0223F56C: ; 0x0223F56C
+ ldrh r2, [r1]
+ strh r2, [r0, #8]
+ ldrh r2, [r1, #2]
+ strh r2, [r0, #0xa]
+ ldrh r2, [r1, #4]
+ strh r2, [r0, #0xc]
+ ldrh r2, [r1, #6]
+ strh r2, [r0, #0xe]
+ ldrh r1, [r1, #8]
+ strh r1, [r0, #0x10]
+ mov r1, #1
+ strb r1, [r0, #0x13]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0223F588
+MOD12_0223F588: ; 0x0223F588
+ push {r4, lr}
+ add r4, r1, #0
+ ldrb r0, [r4, #0x13]
+ cmp r0, #0
+ beq _0223F5C4
+ ldr r0, [r4, #4]
+ ldr r1, _0223F5C8 ; =0x00000171
+ ldr r2, [r0]
+ ldrb r1, [r2, r1]
+ cmp r1, #0
+ beq _0223F5A4
+ ldrb r1, [r4, #0x12]
+ cmp r1, #1
+ bne _0223F5B2
+_0223F5A4:
+ add r1, r4, #0
+ add r1, #8
+ bl MOD12_0223D1CC
+ mov r0, #0
+ strb r0, [r4, #0x13]
+ pop {r4, pc}
+_0223F5B2:
+ add r1, r4, #0
+ mov r0, #0x19
+ add r1, #8
+ bl FUN_020311D0
+ cmp r0, #1
+ bne _0223F5C4
+ mov r0, #0
+ strb r0, [r4, #0x13]
+_0223F5C4:
+ pop {r4, pc}
+ nop
+_0223F5C8: .word 0x00000171
+
+ thumb_func_start MOD12_0223F5CC
+MOD12_0223F5CC: ; 0x0223F5CC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r4, r1, #0
+ str r0, [sp, #0x18]
+ ldr r0, [r4]
+ ldr r1, _0223F920 ; =0x00000123
+ ldr r2, [r0]
+ ldrb r2, [r2, r1]
+ ldrb r1, [r4, #0x18]
+ cmp r2, r1
+ beq _0223F5E6
+ mov r7, #1
+ b _0223F5E8
+_0223F5E6:
+ mov r7, #0
+_0223F5E8:
+ ldr r1, _0223F924 ; =0x00001138
+ ldr r2, [r0, r1]
+ add r1, #8
+ ldr r1, [r0, r1]
+ sub r1, r2, r1
+ ldr r2, [r4, #0x24]
+ str r1, [sp, #0x20]
+ lsr r3, r2, #1
+ cmp r1, r3
+ blo _0223F602
+ mov r1, #1
+ str r1, [sp, #0x1c]
+ b _0223F606
+_0223F602:
+ mov r1, #0
+ str r1, [sp, #0x1c]
+_0223F606:
+ ldrb r1, [r4, #0x10]
+ cmp r1, #3
+ bls _0223F60E
+ b _0223FA38
+_0223F60E:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223F61A: ; jump table
+ .short _0223F622 - _0223F61A - 2 ; case 0
+ .short _0223F68A - _0223F61A - 2 ; case 1
+ .short _0223F6F4 - _0223F61A - 2 ; case 2
+ .short _0223F9C8 - _0223F61A - 2 ; case 3
+_0223F622:
+ add r0, #0x14
+ mov r1, #0
+ bl MOD12_0223D068
+ ldr r0, [r4]
+ bl MOD12_0223DC0C
+ add r3, r4, #0
+ ldrb r2, [r4, #0x18]
+ mov r1, #0x3c
+ add r3, #0x5c
+ mul r1, r2
+ add r1, r3, r1
+ ldr r0, [r4]
+ ldr r2, [r4, #0x24]
+ ldr r3, [r4, #0x20]
+ bl MOD12_022407D4
+ mov r0, #0x21
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ bl MOD12_0223E448
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD12_0223E750
+ ldr r0, [r4]
+ bl MOD12_0223E868
+ add r0, r4, #0
+ add r0, #0x41
+ ldrb r1, [r0]
+ add r0, sp, #0x2c
+ cmp r7, #0
+ strb r1, [r0, #4]
+ ldr r0, [r4]
+ add r2, sp, #0x2c
+ bne _0223F67A
+ mov r1, #4
+ bl MOD12_0223E488
+ b _0223F680
+_0223F67A:
+ mov r1, #5
+ bl MOD12_0223E488
+_0223F680:
+ ldrb r0, [r4, #0x10]
+ add sp, #0x44
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_0223F68A:
+ ldrb r2, [r4, #0x19]
+ add r1, r4, #0
+ add r1, #0x3c
+ bl MOD12_0223E590
+ mov r3, #0
+ mov r2, #0
+ sub r0, r2, r0
+ sbc r3, r1
+ bge _0223F6A0
+ b _0223FA66
+_0223F6A0:
+ ldr r0, [r4]
+ bl MOD12_0223E528
+ ldr r5, [r4]
+ add r1, r4, #0
+ ldrb r2, [r4, #0x19]
+ add r0, r5, #0
+ add r1, #0x3c
+ bl MOD12_0223E590
+ ldr r2, _0223F924 ; =0x00001138
+ add r6, r0, #0
+ add r0, r1, #0
+ add r1, r2, #4
+ ldr r3, [r5, r2]
+ ldr r1, [r5, r1]
+ add r3, r3, r6
+ adc r1, r0
+ add r0, r2, #0
+ add r0, #8
+ add r2, #0xc
+ str r3, [r5, r0]
+ str r1, [r5, r2]
+ cmp r7, #0
+ bne _0223F6E0
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD12_0223E8B4
+ ldrb r0, [r4, #0x11]
+ add r0, r0, #1
+ strb r0, [r4, #0x11]
+_0223F6E0:
+ ldrb r1, [r4, #0x18]
+ ldr r0, [r4]
+ mov r2, #0
+ bl MOD12_0223EC88
+ ldrb r0, [r4, #0x10]
+ add sp, #0x44
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_0223F6F4:
+ ldr r1, [sp, #0x20]
+ add r0, #0x14
+ bl MOD12_0223C438
+ mov r0, #0x21
+ ldr r3, [r4]
+ ldr r1, _0223F924 ; =0x00001138
+ lsl r0, r0, #4
+ ldr r2, [r3, r1]
+ add r1, #8
+ ldr r1, [r3, r1]
+ ldr r0, [r3, r0]
+ sub r1, r2, r1
+ ldr r2, [r4, #0x24]
+ bl MOD12_0223E3DC
+ ldr r5, [r4, #0x24]
+ ldr r0, [sp, #0x20]
+ cmp r0, r5
+ blo _0223F7DC
+ ldrb r0, [r4, #0x16]
+ ldr r1, _0223F924 ; =0x00001138
+ add r0, r0, #1
+ strb r0, [r4, #0x16]
+ ldr r5, [r4]
+ add r0, r5, r1
+ ldmia r0!, {r2, r3}
+ add r1, #8
+ add r0, r5, r1
+ stmia r0!, {r2, r3}
+ mov r0, #0
+ strb r0, [r4, #0x11]
+ strb r0, [r4, #0x12]
+ ldr r0, [r4]
+ bl MOD12_0223FDA0
+ mov r0, #0
+ strb r0, [r4, #0x17]
+ ldr r0, [r4]
+ ldr r1, [r0]
+ ldr r0, _0223F928 ; =0x00000127
+ ldrb r6, [r1, r0]
+ cmp r6, #4
+ bge _0223F764
+ add r1, r4, #0
+ mov r0, #0x3c
+ add r1, #0x5c
+ mul r0, r6
+ add r5, r1, r0
+_0223F756:
+ add r0, r5, #0
+ bl MOD12_0224079C
+ add r6, r6, #1
+ add r5, #0x3c
+ cmp r6, #4
+ blt _0223F756
+_0223F764:
+ ldr r0, [r4]
+ add r0, #0x14
+ bl MOD12_0223C640
+ ldr r0, [r4]
+ bl MOD12_0223DC0C
+ add r3, r4, #0
+ ldrb r2, [r4, #0x18]
+ mov r1, #0x3c
+ add r3, #0x5c
+ mul r1, r2
+ add r1, r3, r1
+ ldr r0, [r4]
+ ldr r2, [r4, #0x24]
+ ldr r3, [r4, #0x20]
+ bl MOD12_022407D4
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD12_0223E750
+ add r0, r4, #0
+ add r0, #0x40
+ ldrb r1, [r4, #0x16]
+ ldrb r0, [r0]
+ cmp r1, r0
+ ldr r0, [r4]
+ blo _0223F7B6
+ bl MOD12_0223ECD0
+ ldr r0, [r4]
+ mov r1, #2
+ add r0, #0x14
+ bl MOD12_0223D068
+ ldrb r0, [r4, #0x10]
+ add sp, #0x44
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_0223F7B6:
+ ldrb r1, [r4, #0x18]
+ mov r2, #0
+ bl MOD12_0223EC88
+ cmp r7, #0
+ bne _0223F7C8
+ ldrb r0, [r4, #0x11]
+ cmp r0, #0
+ beq _0223F7CA
+_0223F7C8:
+ b _0223FA66
+_0223F7CA:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD12_0223E8B4
+ ldrb r0, [r4, #0x11]
+ add sp, #0x44
+ add r0, r0, #1
+ strb r0, [r4, #0x11]
+ pop {r4, r5, r6, r7, pc}
+_0223F7DC:
+ ldr r1, [r4]
+ ldr r0, _0223F92C ; =0x00000ACC
+ ldrb r6, [r1, r0]
+ ldr r0, [sp, #0x20]
+ lsr r1, r5, #1
+ cmp r0, r1
+ blo _0223F7EE
+ mov r0, #1
+ b _0223F7F0
+_0223F7EE:
+ mov r0, #0
+_0223F7F0:
+ cmp r7, #0
+ bne _0223F88C
+ cmp r0, #0
+ bne _0223F828
+ add r0, r4, #0
+ add r0, #0x41
+ ldrb r1, [r4, #0x17]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bhs _0223F828
+ ldr r0, [r4, #0x20]
+ ldr r1, _0223F930 ; =0x00002710
+ lsr r0, r0, #2
+ bl _u32_div_f
+ lsr r1, r5, #1
+ sub r1, r1, r0
+ ldr r0, [sp, #0x20]
+ cmp r0, r1
+ bhs _0223F828
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x54
+ add r1, sp, #0x34
+ add r3, r2, #0
+ bl MOD12_0223FA74
+ b _0223F836
+_0223F828:
+ add r0, r4, #0
+ mov r2, #1
+ add r0, #0x54
+ add r1, sp, #0x34
+ add r3, r2, #0
+ bl MOD12_0223FA74
+_0223F836:
+ mov r0, #0
+ ldr r1, [sp, #0x34]
+ mvn r0, r0
+ cmp r1, r0
+ bne _0223F842
+ b _0223F94E
+_0223F842:
+ add r0, r4, #0
+ add r0, #0x44
+ str r0, [sp]
+ add r0, sp, #0x38
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r6, [sp, #0xc]
+ ldrb r0, [r4, #0x17]
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0x41
+ ldrb r0, [r0]
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ ldr r3, [r4, #0x20]
+ ldr r2, [r0]
+ ldr r0, _0223F920 ; =0x00000123
+ ldrb r0, [r2, r0]
+ ldr r2, [sp, #0x20]
+ bl MOD12_0223FCAC
+ ldr r0, [r4]
+ ldr r1, [r0]
+ ldr r0, _0223F920 ; =0x00000123
+ ldrb r1, [r1, r0]
+ add r0, #0x29
+ lsl r1, r1, #2
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, sp, #0x38
+ bl MOD12_0223F56C
+ ldrb r0, [r4, #0x17]
+ add r0, r0, #1
+ strb r0, [r4, #0x17]
+ b _0223F94E
+_0223F88C:
+ cmp r0, #1
+ bne _0223F8D2
+ add r0, r4, #0
+ add r0, #0x41
+ ldrb r1, [r4, #0x17]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bhs _0223F8D2
+ ldr r0, [r4, #0x20]
+ ldr r1, _0223F930 ; =0x00002710
+ lsr r0, r0, #2
+ bl _u32_div_f
+ sub r1, r5, r0
+ ldr r0, [sp, #0x20]
+ cmp r0, r1
+ bhs _0223F8D2
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x54
+ add r1, sp, #0x34
+ add r3, r2, #0
+ bl MOD12_0223FA74
+ ldrb r0, [r4, #0x11]
+ cmp r0, #0
+ bne _0223F8E0
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD12_0223E8B4
+ ldrb r0, [r4, #0x11]
+ add r0, r0, #1
+ strb r0, [r4, #0x11]
+ b _0223F8E0
+_0223F8D2:
+ add r0, r4, #0
+ mov r2, #1
+ add r0, #0x54
+ add r1, sp, #0x34
+ add r3, r2, #0
+ bl MOD12_0223FA74
+_0223F8E0:
+ mov r0, #0
+ ldr r1, [sp, #0x34]
+ mvn r0, r0
+ cmp r1, r0
+ beq _0223F94E
+ add r2, r4, #0
+ ldr r0, [r4]
+ add r2, #0x44
+ str r2, [sp]
+ add r2, sp, #0x38
+ str r2, [sp, #4]
+ ldr r2, _0223F934 ; =0x00001B98
+ add r2, r0, r2
+ str r2, [sp, #8]
+ str r6, [sp, #0xc]
+ ldrb r2, [r4, #0x17]
+ str r2, [sp, #0x10]
+ add r2, r4, #0
+ add r2, #0x41
+ ldrb r2, [r2]
+ str r2, [sp, #0x14]
+ ldr r2, [r0]
+ ldr r0, _0223F920 ; =0x00000123
+ ldr r3, [r4, #0x20]
+ ldrb r0, [r2, r0]
+ ldr r2, [sp, #0x20]
+ bl MOD12_0223FCAC
+ ldr r0, [r4]
+ ldr r1, [r0]
+ ldr r0, _0223F920 ; =0x00000123
+ b _0223F938
+ .align 2, 0
+_0223F920: .word 0x00000123
+_0223F924: .word 0x00001138
+_0223F928: .word 0x00000127
+_0223F92C: .word 0x00000ACC
+_0223F930: .word 0x00002710
+_0223F934: .word 0x00001B98
+_0223F938:
+ ldrb r1, [r1, r0]
+ add r0, #0x29
+ lsl r1, r1, #2
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, sp, #0x38
+ bl MOD12_0223F56C
+ ldrb r0, [r4, #0x17]
+ add r0, r0, #1
+ strb r0, [r4, #0x17]
+_0223F94E:
+ ldr r0, [r4]
+ ldr r1, [r0]
+ ldr r0, _0223FA6C ; =0x00000127
+ ldrb r7, [r1, r0]
+ cmp r7, #4
+ bge _0223F99A
+ lsl r0, r7, #2
+ add r5, r4, r0
+ add r1, r4, #0
+ mov r0, #0x3c
+ add r1, #0x5c
+ mul r0, r7
+ add r6, r1, r0
+ add r0, r4, #0
+ str r0, [sp, #0x28]
+ add r0, #0x3c
+ str r0, [sp, #0x28]
+_0223F970:
+ ldr r0, [r4, #0x24]
+ ldr r3, [sp, #0x20]
+ str r0, [sp]
+ ldr r0, [r4, #0x20]
+ add r2, r6, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x28]
+ str r0, [sp, #8]
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [r4]
+ bl MOD12_02240B08
+ add r7, r7, #1
+ add r5, r5, #4
+ add r6, #0x3c
+ cmp r7, #4
+ blt _0223F970
+_0223F99A:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #1
+ bne _0223F9B6
+ ldrb r0, [r4, #0x12]
+ cmp r0, #0
+ bne _0223F9B6
+ ldrb r1, [r4, #0x18]
+ ldr r0, [r4]
+ mov r2, #1
+ bl MOD12_0223EC88
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+_0223F9B6:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #1
+ bne _0223FA66
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ bl MOD12_0223E7D4
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+_0223F9C8:
+ add r0, r4, #0
+ add r0, #0x54
+ add r1, sp, #0x34
+ mov r2, #1
+ mov r3, #0
+ bl MOD12_0223FA74
+ cmp r0, #1
+ bne _0223FA66
+ ldr r0, [r4]
+ add r0, #0x14
+ bl MOD12_0223C640
+ ldr r0, [r4]
+ ldr r2, [r4, #0x24]
+ add r0, #0x14
+ mov r1, #0
+ bl MOD12_0223C438
+ mov r0, #0x21
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ bl MOD12_0223E43C
+ ldr r0, [r4]
+ mov r1, #2
+ add r0, #0x14
+ bl MOD12_0223D068
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD12_0223E750
+ ldr r0, [r4]
+ bl MOD12_0223E898
+ ldr r1, [r4]
+ ldr r0, _0223FA70 ; =0x00001130
+ ldr r0, [r1, r0]
+ bl MOD12_0223B92C
+ cmp r0, #0
+ beq _0223FA2E
+ ldr r1, [r4]
+ ldr r0, _0223FA70 ; =0x00001130
+ mov r2, #6
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl MOD12_0223C1F4
+_0223FA2E:
+ ldrb r0, [r4, #0x10]
+ add sp, #0x44
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_0223FA38:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ mov r7, #0x53
+ mov r6, #0
+ add r5, r4, #0
+ lsl r7, r7, #2
+_0223FA4C:
+ ldr r0, [r5, r7]
+ bl MOD12_0223F558
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0223FA4C
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x18]
+ bl FUN_0200CAB4
+_0223FA66:
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223FA6C: .word 0x00000127
+_0223FA70: .word 0x00001130
+
+ thumb_func_start MOD12_0223FA74
+MOD12_0223FA74: ; 0x0223FA74
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r7, r1, #0
+ sub r0, r4, #1
+ add r6, r2, #0
+ str r3, [sp]
+ str r0, [r7]
+ cmp r6, #0
+ bne _0223FAA6
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ beq _0223FAA6
+ sub r0, r0, #1
+ strb r0, [r5, #5]
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ bne _0223FAA6
+ ldr r1, [r5]
+ ldr r0, _0223FB74 ; =0x00001130
+ add r2, r4, #0
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ bl MOD12_0223C1F4
+_0223FAA6:
+ ldrb r0, [r5, #4]
+ cmp r0, #0
+ beq _0223FAB6
+ cmp r0, #1
+ beq _0223FADC
+ cmp r0, #2
+ beq _0223FB1E
+ b _0223FB44
+_0223FAB6:
+ cmp r6, #0
+ bne _0223FAD8
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _0223FAD8
+ mov r1, #0
+ strb r1, [r5, #5]
+ ldr r2, [r5]
+ ldr r0, _0223FB74 ; =0x00001130
+ ldr r0, [r2, r0]
+ add r2, r1, #0
+ bl MOD12_0223C1F4
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ b _0223FB44
+_0223FAD8:
+ mov r4, #1
+ b _0223FB44
+_0223FADC:
+ cmp r6, #1
+ beq _0223FAE6
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ beq _0223FAEA
+_0223FAE6:
+ mov r4, #1
+ b _0223FB44
+_0223FAEA:
+ ldr r1, [r5]
+ ldr r0, _0223FB74 ; =0x00001130
+ ldr r0, [r1, r0]
+ bl MOD12_0223B878
+ mov r1, #0
+ mvn r1, r1
+ str r0, [r7]
+ cmp r0, r1
+ beq _0223FB1A
+ ldr r1, [r5]
+ ldr r0, _0223FB78 ; =0x00000AE8
+ ldr r0, [r1, r0]
+ ldr r1, _0223FB7C ; =0x00002710
+ bl _u32_div_f
+ strb r0, [r5, #5]
+ ldrb r0, [r5, #5]
+ sub r0, r0, #2
+ strb r0, [r5, #5]
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ b _0223FB44
+_0223FB1A:
+ mov r4, #1
+ b _0223FB44
+_0223FB1E:
+ ldr r1, [r5]
+ ldr r0, _0223FB74 ; =0x00001130
+ ldr r0, [r1, r0]
+ bl MOD12_0223B91C
+ cmp r0, #1
+ bne _0223FB44
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ beq _0223FB40
+ ldr r1, [r5]
+ ldr r0, _0223FB74 ; =0x00001130
+ mov r2, #6
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl MOD12_0223C1F4
+_0223FB40:
+ mov r0, #1
+ strb r0, [r5, #4]
+_0223FB44:
+ ldr r0, [sp]
+ cmp r0, #1
+ bne _0223FB6E
+ cmp r4, #1
+ bne _0223FB6E
+ ldr r1, [r5]
+ ldr r0, _0223FB74 ; =0x00001130
+ ldr r0, [r1, r0]
+ bl MOD12_0223B92C
+ cmp r0, #0
+ beq _0223FB6E
+ ldr r1, [r5]
+ ldr r0, _0223FB74 ; =0x00001130
+ mov r2, #6
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl MOD12_0223C1F4
+ mov r0, #0
+ strb r0, [r5, #4]
+_0223FB6E:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223FB74: .word 0x00001130
+_0223FB78: .word 0x00000AE8
+_0223FB7C: .word 0x00002710
+
+ thumb_func_start MOD12_0223FB80
+MOD12_0223FB80: ; 0x0223FB80
+ push {r3, lr}
+ cmp r0, #3
+ bhi _0223FBAA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223FB92: ; jump table
+ .short _0223FB9A - _0223FB92 - 2 ; case 0
+ .short _0223FB9E - _0223FB92 - 2 ; case 1
+ .short _0223FBA2 - _0223FB92 - 2 ; case 2
+ .short _0223FBA6 - _0223FB92 - 2 ; case 3
+_0223FB9A:
+ mov r0, #1
+ pop {r3, pc}
+_0223FB9E:
+ mov r0, #2
+ pop {r3, pc}
+_0223FBA2:
+ mov r0, #3
+ pop {r3, pc}
+_0223FBA6:
+ mov r0, #4
+ pop {r3, pc}
+_0223FBAA:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223FBB4
+MOD12_0223FBB4: ; 0x0223FBB4
+ push {r3, lr}
+ cmp r0, #4
+ bhi _0223FBE0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223FBC6: ; jump table
+ .short _0223FBE0 - _0223FBC6 - 2 ; case 0
+ .short _0223FBD0 - _0223FBC6 - 2 ; case 1
+ .short _0223FBD4 - _0223FBC6 - 2 ; case 2
+ .short _0223FBD8 - _0223FBC6 - 2 ; case 3
+ .short _0223FBDC - _0223FBC6 - 2 ; case 4
+_0223FBD0:
+ mov r0, #0
+ pop {r3, pc}
+_0223FBD4:
+ mov r0, #1
+ pop {r3, pc}
+_0223FBD8:
+ mov r0, #2
+ pop {r3, pc}
+_0223FBDC:
+ mov r0, #3
+ pop {r3, pc}
+_0223FBE0:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD12_0223FBE8
+MOD12_0223FBE8: ; 0x0223FBE8
+ push {r3, r4}
+ ldrb r4, [r1]
+ cmp r0, r4
+ bgt _0223FBFA
+ mov r0, #0
+ strb r0, [r2]
+ strb r0, [r3]
+ pop {r3, r4}
+ bx lr
+_0223FBFA:
+ ldrb r4, [r1, #1]
+ cmp r0, r4
+ bgt _0223FC0C
+ mov r0, #0
+ strb r0, [r2]
+ mov r0, #1
+ strb r0, [r3]
+ pop {r3, r4}
+ bx lr
+_0223FC0C:
+ ldrb r4, [r1, #2]
+ cmp r0, r4
+ bgt _0223FC1E
+ mov r0, #1
+ strb r0, [r2]
+ mov r0, #2
+ strb r0, [r3]
+ pop {r3, r4}
+ bx lr
+_0223FC1E:
+ ldrb r1, [r1, #3]
+ cmp r0, r1
+ bgt _0223FC30
+ mov r0, #1
+ strb r0, [r2]
+ mov r0, #3
+ strb r0, [r3]
+ pop {r3, r4}
+ bx lr
+_0223FC30:
+ mov r0, #2
+ strb r0, [r2]
+ mov r0, #4
+ strb r0, [r3]
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD12_0223FC3C
+MOD12_0223FC3C: ; 0x0223FC3C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r2, #0
+ add r6, r0, #0
+ mov r0, #0
+ ldr r2, _0223FCA4 ; =0x00002710
+ str r3, [sp]
+ mul r6, r2
+ lsr r1, r1, #1
+ add r5, r0, #0
+ add r4, r0, #0
+ cmp r6, #0
+ bls _0223FC62
+ bls _0223FC60
+_0223FC58:
+ add r4, r4, r1
+ add r5, r5, #1
+ cmp r4, r6
+ blo _0223FC58
+_0223FC60:
+ sub r0, r4, r1
+_0223FC62:
+ ldr r1, _0223FCA8 ; =0x00001388
+ add r0, r0, r1
+ lsl r1, r1, #1
+ bl _u32_div_f
+ ldr r1, _0223FCA8 ; =0x00001388
+ str r0, [sp, #4]
+ add r0, r4, r1
+ lsl r1, r1, #1
+ bl _u32_div_f
+ add r4, r0, #0
+ ldr r1, _0223FCA4 ; =0x00002710
+ add r0, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #4]
+ sub r1, r0, r1
+ bpl _0223FC8A
+ neg r1, r1
+_0223FC8A:
+ sub r0, r0, r4
+ bpl _0223FC90
+ neg r0, r0
+_0223FC90:
+ cmp r1, r0
+ bhi _0223FC98
+ sub r5, r5, #1
+ b _0223FC9A
+_0223FC98:
+ add r1, r0, #0
+_0223FC9A:
+ ldr r0, [sp]
+ str r1, [r7]
+ str r5, [r0]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223FCA4: .word 0x00002710
+_0223FCA8: .word 0x00001388
+
+ thumb_func_start MOD12_0223FCAC
+MOD12_0223FCAC: ; 0x0223FCAC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r0, [sp]
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r1, #0
+ ldr r5, [sp, #0x34]
+ ldr r6, [sp, #0x38]
+ mov r7, #0
+ bl MOD12_0223FB80
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ add r2, sp, #0x18
+ add r3, sp, #0x14
+ bl MOD12_0223FC3C
+ cmp r6, #0
+ beq _0223FD00
+ ldr r0, [sp, #0x14]
+ add r4, r7, #0
+ sub r0, #0x10
+ add r1, r6, #0
+ add r2, r6, #0
+_0223FCDE:
+ ldrb r3, [r1, #8]
+ lsl r3, r3, #0x1d
+ lsr r3, r3, #0x1f
+ cmp r3, #1
+ bne _0223FCEE
+ ldrb r3, [r2, #6]
+ cmp r0, r3
+ beq _0223FCF8
+_0223FCEE:
+ add r4, r4, #1
+ add r1, #0xa
+ add r2, #0xa
+ cmp r4, #8
+ blo _0223FCDE
+_0223FCF8:
+ cmp r4, #8
+ bne _0223FD00
+ mov r0, #0xff
+ str r0, [sp, #0x18]
+_0223FD00:
+ add r2, sp, #0x10
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x30]
+ add r2, #1
+ add r3, sp, #0x10
+ bl MOD12_0223FBE8
+ cmp r6, #0
+ beq _0223FD40
+ cmp r4, #8
+ beq _0223FD40
+ add r0, sp, #0x10
+ ldrb r0, [r0, #1]
+ cmp r0, #0
+ beq _0223FD22
+ cmp r0, #1
+ bne _0223FD40
+_0223FD22:
+ mov r0, #0xa
+ mul r0, r4
+ add r0, r6, r0
+ ldrb r1, [r0, #3]
+ ldr r0, [sp, #0xc]
+ cmp r0, r1
+ beq _0223FD40
+ mov r0, #0xff
+ str r0, [sp, #0x18]
+ mov r1, #4
+ add r0, sp, #0x10
+ strb r1, [r0]
+ mov r1, #2
+ strb r1, [r0, #1]
+ mov r7, #1
+_0223FD40:
+ ldr r0, [sp]
+ strb r0, [r5, #2]
+ ldr r0, [sp, #4]
+ strh r0, [r5]
+ ldr r0, [sp, #0xc]
+ strb r0, [r5, #3]
+ add r0, sp, #0x10
+ ldrb r1, [r0, #1]
+ strb r1, [r5, #4]
+ ldrb r0, [r0]
+ ldr r1, [sp, #0x40]
+ strb r0, [r5, #5]
+ ldr r0, [sp, #0x14]
+ strb r0, [r5, #6]
+ ldr r0, [sp, #0x3c]
+ strb r0, [r5, #7]
+ ldr r0, [sp, #0x44]
+ sub r0, r0, #1
+ cmp r1, r0
+ blt _0223FD6C
+ mov r1, #1
+ b _0223FD6E
+_0223FD6C:
+ mov r1, #0
+_0223FD6E:
+ ldrb r2, [r5, #8]
+ mov r0, #1
+ bic r2, r0
+ lsl r0, r1, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #1
+ and r0, r1
+ orr r0, r2
+ strb r0, [r5, #8]
+ ldrb r1, [r5, #8]
+ mov r0, #2
+ bic r1, r0
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1e
+ orr r0, r1
+ strb r0, [r5, #8]
+ ldrb r1, [r5, #8]
+ mov r0, #4
+ orr r0, r1
+ strb r0, [r5, #8]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223FDA0
+MOD12_0223FDA0: ; 0x0223FDA0
+ push {r4, r5}
+ ldr r1, _0223FDC8 ; =0x00000ABD
+ mov r5, #0
+ add r3, r5, #0
+ add r2, r1, #4
+_0223FDAA:
+ add r4, r0, r5
+ strb r3, [r4, r1]
+ add r5, r5, #1
+ strb r3, [r4, r2]
+ cmp r5, #4
+ blt _0223FDAA
+ ldr r1, _0223FDCC ; =0x00000AC5
+ strb r3, [r0, r1]
+ add r2, r1, #1
+ strb r3, [r0, r2]
+ add r1, r1, #2
+ strb r3, [r0, r1]
+ pop {r4, r5}
+ bx lr
+ nop
+_0223FDC8: .word 0x00000ABD
+_0223FDCC: .word 0x00000AC5
+
+ thumb_func_start MOD12_0223FDD0
+MOD12_0223FDD0: ; 0x0223FDD0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0223FDD4
+MOD12_0223FDD4: ; 0x0223FDD4
+ push {r3, lr}
+ mov r1, #0x3c
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0223FDE8
+MOD12_0223FDE8: ; 0x0223FDE8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r0, #0x17
+ str r1, [sp]
+ add r1, r0, #0
+ add r1, #0xed
+ add r5, r2, #0
+ add r6, r3, #0
+ bl FUN_02016998
+ mov r2, #0x41
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [sp]
+ add r3, r4, #0
+ str r0, [r4]
+ ldrh r0, [r5]
+ add r3, #0xc8
+ mov r2, #7
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ str r7, [r4, #0xc]
+_0223FE24:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0223FE24
+ ldr r0, [r6]
+ ldr r2, _0223FE3C ; =0x00007530
+ str r0, [r3]
+ ldr r0, _0223FE40 ; =MOD12_0223FE44
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223FE3C: .word 0x00007530
+_0223FE40: .word MOD12_0223FE44
+
+ thumb_func_start MOD12_0223FE44
+MOD12_0223FE44: ; 0x0223FE44
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #5
+ bls _0223FE54
+ b _02240002
+_0223FE54:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223FE60: ; jump table
+ .short _0223FE6C - _0223FE60 - 2 ; case 0
+ .short _0223FEBC - _0223FE60 - 2 ; case 1
+ .short _0223FEEA - _0223FE60 - 2 ; case 2
+ .short _0223FF9C - _0223FE60 - 2 ; case 3
+ .short _0223FFBE - _0223FE60 - 2 ; case 4
+ .short _0223FFE2 - _0223FE60 - 2 ; case 5
+_0223FE6C:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD12_0223EC7C
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #1
+ add r0, #0xa4
+ ldr r0, [r0]
+ ldr r2, _02240020 ; =0x00001FE3
+ sub r3, r1, #3
+ bl FUN_02003210
+ add r6, r4, #0
+ mov r5, #0
+ mov r7, #0x10
+ add r6, #0x11
+_0223FE96:
+ str r7, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ add r0, r6, r5
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ ldr r2, _02240024 ; =0x00007FFF
+ ldr r3, _02240028 ; =0x0000254A
+ add r1, r5, #0
+ bl MOD12_0223EDAC
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0223FE96
+ ldrb r0, [r4, #0x10]
+ add sp, #0x18
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223FEBC:
+ ldr r0, [r4]
+ add r0, #0xa4
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0223FEDE
+ mov r1, #0
+_0223FECC:
+ add r0, r4, r1
+ ldrb r0, [r0, #0x11]
+ cmp r0, #0
+ beq _0223FEDA
+ add r1, r1, #1
+ cmp r1, #4
+ blt _0223FECC
+_0223FEDA:
+ cmp r1, #4
+ beq _0223FEE0
+_0223FEDE:
+ b _0224001A
+_0223FEE0:
+ ldrb r0, [r4, #0x10]
+ add sp, #0x18
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223FEEA:
+ add r0, r4, #0
+ str r0, [sp, #0xc]
+ add r0, #0x18
+ mov r6, #0
+ str r0, [sp, #0xc]
+_0223FEF4:
+ add r0, r4, r6
+ add r0, #0xca
+ ldrb r1, [r0]
+ mov r2, #0x2c
+ add r7, r1, #0
+ mul r7, r2
+ ldr r2, [r4]
+ lsl r0, r1, #2
+ ldr r2, [r2, #0x14]
+ add r5, r4, r7
+ ldr r2, [r2, r0]
+ str r2, [r5, #0x18]
+ ldr r2, [r4]
+ add r0, r2, r0
+ ldr r0, [r0, #0x5c]
+ str r0, [r5, #0x1c]
+ ldr r2, [r4]
+ lsl r0, r1, #4
+ add r2, #0x18
+ add r0, r2, r0
+ str r0, [r5, #0x20]
+ ldr r1, [r4]
+ ldr r0, _0224002C ; =0x00000AF4
+ ldr r0, [r1, r0]
+ ldr r1, _02240030 ; =0x00002710
+ bl _u32_div_f
+ mov r1, #0x28
+ mul r1, r0
+ add r0, r1, #0
+ mov r1, #0x64
+ bl _u32_div_f
+ strh r0, [r5, #0x26]
+ add r0, r5, #0
+ add r0, #0x24
+ strb r6, [r0]
+ cmp r6, #0
+ bne _0223FF48
+ add r5, #0x25
+ mov r0, #3
+ b _0223FF4C
+_0223FF48:
+ sub r0, r6, #1
+ add r5, #0x25
+_0223FF4C:
+ ldr r1, [sp, #0xc]
+ strb r0, [r5]
+ ldr r0, _02240034 ; =MOD12_02240044
+ ldr r2, _02240038 ; =0x00009CA4
+ add r1, r1, r7
+ bl FUN_0200CA44
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0223FEF4
+ add r0, r4, #0
+ add r0, #0xf1
+ ldrb r1, [r0]
+ add r0, sp, #0x10
+ strb r1, [r0, #4]
+ ldr r0, [r4]
+ add r1, r4, #0
+ add r1, #0xcb
+ ldrb r3, [r1]
+ ldr r2, [r0]
+ ldr r1, _0224003C ; =0x00000123
+ ldrb r1, [r2, r1]
+ cmp r3, r1
+ add r2, sp, #0x10
+ bne _0223FF86
+ mov r1, #4
+ bl MOD12_0223E488
+ b _0223FF8C
+_0223FF86:
+ mov r1, #5
+ bl MOD12_0223E488
+_0223FF8C:
+ ldr r0, _02240040 ; =0x000006F7
+ bl FUN_020054C8
+ ldrb r0, [r4, #0x10]
+ add sp, #0x18
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223FF9C:
+ mov r2, #0
+_0223FF9E:
+ add r0, r1, #0
+ add r0, #0x43
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0223FFB0
+ add r2, r2, #1
+ add r1, #0x2c
+ cmp r2, #4
+ blt _0223FF9E
+_0223FFB0:
+ cmp r2, #4
+ bne _0224001A
+ ldrb r0, [r4, #0x10]
+ add sp, #0x18
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223FFBE:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #1
+ add r0, #0xa4
+ ldr r0, [r0]
+ ldr r2, _02240020 ; =0x00001FE3
+ sub r3, r1, #3
+ bl FUN_02003210
+ ldrb r0, [r4, #0x10]
+ add sp, #0x18
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223FFE2:
+ ldr r0, [r4]
+ add r0, #0xa4
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0224001A
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD12_0223EC7C
+ ldrb r0, [r4, #0x10]
+ add sp, #0x18
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_02240002:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0224001A:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02240020: .word 0x00001FE3
+_02240024: .word 0x00007FFF
+_02240028: .word 0x0000254A
+_0224002C: .word 0x00000AF4
+_02240030: .word 0x00002710
+_02240034: .word MOD12_02240044
+_02240038: .word 0x00009CA4
+_0224003C: .word 0x00000123
+_02240040: .word 0x000006F7
+
+ thumb_func_start MOD12_02240044
+MOD12_02240044: ; 0x02240044
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r1, #0x2a
+ ldrb r1, [r1]
+ cmp r1, #0
+ beq _02240058
+ cmp r1, #1
+ beq _02240114
+ b _0224025E
+_02240058:
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #4]
+ lsl r0, r0, #8
+ str r0, [r5, #0x10]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #8]
+ lsl r0, r0, #8
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #0xc]
+ lsl r0, r0, #8
+ str r0, [r5, #0x18]
+ ldrb r0, [r5, #0xc]
+ bl MOD12_0223C210
+ lsl r4, r0, #8
+ ldrb r0, [r5, #0xc]
+ bl MOD12_0223C220
+ lsl r0, r0, #8
+ str r0, [sp, #8]
+ ldrb r0, [r5, #0xc]
+ bl MOD12_0223C234
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ ldrb r0, [r5, #0xd]
+ cmp r0, #0
+ beq _02240096
+ cmp r0, #3
+ bne _022400C8
+_02240096:
+ cmp r0, #0
+ bne _0224009E
+ ldr r0, _0224026C ; =0xFFFFB000
+ b _022400A2
+_0224009E:
+ mov r0, #0x59
+ lsl r0, r0, #0xa
+_022400A2:
+ ldrh r1, [r5, #0xe]
+ sub r0, r0, r4
+ lsr r1, r1, #1
+ bl _s32_div_f
+ str r0, [r5, #0x1c]
+ ldrh r1, [r5, #0xe]
+ mov r0, #0
+ lsr r1, r1, #1
+ bl _s32_div_f
+ str r0, [r5, #0x20]
+ ldrh r1, [r5, #0xe]
+ mov r0, #0
+ lsr r1, r1, #1
+ bl _s32_div_f
+ str r0, [r5, #0x24]
+ b _02240104
+_022400C8:
+ bl MOD12_0223C210
+ lsl r6, r0, #8
+ ldrb r0, [r5, #0xd]
+ bl MOD12_0223C220
+ lsl r0, r0, #8
+ str r0, [sp]
+ ldrb r0, [r5, #0xd]
+ bl MOD12_0223C234
+ lsl r7, r0, #8
+ ldrh r1, [r5, #0xe]
+ sub r0, r6, r4
+ bl _s32_div_f
+ str r0, [r5, #0x1c]
+ ldr r1, [sp]
+ ldr r0, [sp, #8]
+ sub r0, r1, r0
+ ldrh r1, [r5, #0xe]
+ bl _s32_div_f
+ str r0, [r5, #0x20]
+ ldr r0, [sp, #4]
+ ldrh r1, [r5, #0xe]
+ sub r0, r7, r0
+ bl _s32_div_f
+ str r0, [r5, #0x24]
+_02240104:
+ add r0, r5, #0
+ add r0, #0x2a
+ ldrb r0, [r0]
+ add r5, #0x2a
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r5]
+ pop {r4, r5, r6, r7, pc}
+_02240114:
+ ldr r1, [r5, #0x10]
+ ldr r0, [r5, #0x1c]
+ add r0, r1, r0
+ str r0, [r5, #0x10]
+ ldr r1, [r5, #0x14]
+ ldr r0, [r5, #0x20]
+ add r0, r1, r0
+ str r0, [r5, #0x14]
+ ldr r1, [r5, #0x18]
+ ldr r0, [r5, #0x24]
+ add r0, r1, r0
+ str r0, [r5, #0x18]
+ ldrh r0, [r5, #0x28]
+ add r0, r0, #1
+ strh r0, [r5, #0x28]
+ ldrb r0, [r5, #0xd]
+ cmp r0, #0
+ beq _0224013C
+ cmp r0, #3
+ bne _022401DC
+_0224013C:
+ ldrh r1, [r5, #0xe]
+ ldrh r2, [r5, #0x28]
+ lsr r1, r1, #1
+ cmp r2, r1
+ bne _022401DC
+ cmp r0, #0
+ bne _02240164
+ ldr r0, _02240270 ; =0xFFFF9C00
+ mov r1, #1
+ str r0, [r5, #0x10]
+ ldr r0, [r5, #8]
+ ldr r0, [r0]
+ bl FUN_021DD59C
+ ldr r0, [r5, #8]
+ mov r1, #0x64
+ ldr r0, [r0]
+ bl FUN_021DD6CC
+ b _02240184
+_02240164:
+ bl MOD12_0223C210
+ add r0, #0x50
+ lsl r0, r0, #8
+ str r0, [r5, #0x10]
+ ldr r0, [r5, #8]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_021DD59C
+ ldr r0, [r5, #8]
+ mov r1, #0x63
+ ldr r0, [r0]
+ mvn r1, r1
+ bl FUN_021DD6CC
+_02240184:
+ ldr r0, [r5]
+ mov r1, #2
+ bl FUN_02068E14
+ add r4, r0, #0
+ ldrb r0, [r5, #0xd]
+ bl MOD12_0223C220
+ add r0, r4, r0
+ lsl r0, r0, #8
+ str r0, [r5, #0x14]
+ ldrb r0, [r5, #0xd]
+ bl MOD12_0223C234
+ lsl r0, r0, #8
+ str r0, [r5, #0x18]
+ ldrb r0, [r5, #0xd]
+ bl MOD12_0223C210
+ ldrh r2, [r5, #0xe]
+ ldrh r1, [r5, #0x28]
+ lsl r0, r0, #8
+ ldr r7, [r5, #0x14]
+ sub r1, r2, r1
+ sub r4, r1, #1
+ ldr r1, [r5, #0x10]
+ ldr r6, [r5, #0x18]
+ sub r0, r0, r1
+ add r1, r4, #0
+ bl _s32_div_f
+ str r0, [r5, #0x1c]
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ sub r0, r7, r0
+ bl _s32_div_f
+ str r0, [r5, #0x20]
+ ldr r0, [r5, #0x18]
+ add r1, r4, #0
+ sub r0, r6, r0
+ bl _s32_div_f
+ str r0, [r5, #0x24]
+_022401DC:
+ ldrh r1, [r5, #0x28]
+ ldrh r0, [r5, #0xe]
+ cmp r1, r0
+ blo _0224021C
+ ldr r0, [r5]
+ mov r1, #2
+ bl FUN_02068E14
+ add r4, r0, #0
+ ldrb r0, [r5, #0xd]
+ bl MOD12_0223C210
+ lsl r0, r0, #8
+ str r0, [r5, #0x10]
+ ldrb r0, [r5, #0xd]
+ bl MOD12_0223C220
+ add r0, r4, r0
+ lsl r0, r0, #8
+ str r0, [r5, #0x14]
+ ldrb r0, [r5, #0xd]
+ bl MOD12_0223C234
+ lsl r0, r0, #8
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0x2a
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x2a
+ strb r1, [r0]
+_0224021C:
+ ldr r1, [r5, #0x10]
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r1, r0, #8
+ ldr r0, [r5, #8]
+ str r1, [r0, #4]
+ ldr r1, [r5, #0x14]
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r1, r0, #8
+ ldr r0, [r5, #8]
+ str r1, [r0, #8]
+ ldr r1, [r5, #0x18]
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r1, r0, #8
+ ldr r0, [r5, #8]
+ str r1, [r0, #0xc]
+ ldr r2, [r5, #8]
+ ldr r0, [r2]
+ ldr r1, [r2, #4]
+ ldr r2, [r2, #8]
+ bl FUN_021DD620
+ ldr r0, [r5, #4]
+ ldr r1, [r5, #8]
+ bl MOD12_0223D09C
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0224025E:
+ mov r1, #1
+ add r5, #0x2b
+ strb r1, [r5]
+ bl FUN_0200CAB4
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224026C: .word 0xFFFFB000
+_02240270: .word 0xFFFF9C00
+
+ thumb_func_start MOD12_02240274
+MOD12_02240274: ; 0x02240274
+ push {r3, lr}
+ mov r1, #0x3c
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02240288
+MOD12_02240288: ; 0x02240288
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #0x17
+ mov r1, #0x50
+ add r5, r2, #0
+ add r6, r3, #0
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x50
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [sp]
+ add r3, r4, #0
+ str r0, [r4]
+ ldrh r0, [r5]
+ add r3, #0x10
+ mov r2, #7
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ str r7, [r4, #0xc]
+_022402C0:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022402C0
+ ldr r0, [r6]
+ ldr r2, _022402D8 ; =0x00007530
+ str r0, [r3]
+ ldr r0, _022402DC ; =MOD12_022402E0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022402D8: .word 0x00007530
+_022402DC: .word MOD12_022402E0
+
+ thumb_func_start MOD12_022402E0
+MOD12_022402E0: ; 0x022402E0
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0x4c
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02240330
+ mov r4, #0
+_022402F2:
+ add r1, r5, r4
+ ldrb r1, [r1, #0x12]
+ ldr r0, [r5]
+ add r2, r4, #0
+ bl MOD12_0223DC28
+ add r4, r4, #1
+ cmp r4, #4
+ blt _022402F2
+ ldr r1, [r5]
+ ldr r0, _0224034C ; =0x00001130
+ mov r3, #0
+ ldr r0, [r1, r0]
+ mov r1, #1
+ add r2, r1, #0
+ bl MOD12_0223B758
+ ldr r1, [r5]
+ ldr r0, _0224034C ; =0x00001130
+ mov r2, #6
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl MOD12_0223C1F4
+ add r0, r5, #0
+ add r0, #0x4c
+ ldrb r0, [r0]
+ add r5, #0x4c
+ add r0, r0, #1
+ strb r0, [r5]
+ pop {r3, r4, r5, pc}
+_02240330:
+ mov r2, #0
+ ldr r0, [r5, #0xc]
+ add r1, r5, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ nop
+_0224034C: .word 0x00001130
+
+ thumb_func_start MOD12_02240350
+MOD12_02240350: ; 0x02240350
+ push {r3, lr}
+ mov r1, #0x3c
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02240364
+MOD12_02240364: ; 0x02240364
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #0x17
+ mov r1, #0x50
+ add r5, r2, #0
+ add r6, r3, #0
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x50
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [sp]
+ add r3, r4, #0
+ str r0, [r4]
+ ldrh r0, [r5]
+ add r3, #0x10
+ mov r2, #7
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ str r7, [r4, #0xc]
+_0224039C:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0224039C
+ ldr r0, [r6]
+ ldr r2, _022403B4 ; =0x00007530
+ str r0, [r3]
+ ldr r0, _022403B8 ; =MOD12_022403BC
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022403B4: .word 0x00007530
+_022403B8: .word MOD12_022403BC
+
+ thumb_func_start MOD12_022403BC
+MOD12_022403BC: ; 0x022403BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0x4c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022403D2
+ cmp r0, #1
+ beq _0224040A
+ b _0224044E
+_022403D2:
+ ldr r0, [r5]
+ bl MOD12_0223D588
+ cmp r0, #0
+ beq _02240484
+ mov r4, #0
+ mov r6, #2
+ mov r7, #5
+_022403E2:
+ ldr r0, [r5]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD12_0223DCE8
+ ldr r0, [r5]
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD12_0223DCE8
+ add r4, r4, #1
+ cmp r4, #4
+ blt _022403E2
+ add r0, r5, #0
+ add r0, #0x4c
+ ldrb r0, [r0]
+ add r5, #0x4c
+ add r0, r0, #1
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224040A:
+ mov r7, #0
+ add r6, r7, #0
+ add r4, r7, #0
+_02240410:
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl MOD12_0223DDB0
+ cmp r0, #1
+ bne _0224041E
+ add r7, r7, #1
+_0224041E:
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl MOD12_0223DDE4
+ cmp r0, #1
+ bne _0224042C
+ add r6, r6, #1
+_0224042C:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _02240410
+ cmp r7, #4
+ blt _02240484
+ cmp r6, #4
+ blt _02240484
+ ldr r0, [r5]
+ bl MOD12_0223DCC0
+ add r0, r5, #0
+ add r0, #0x4c
+ ldrb r0, [r0]
+ add r5, #0x4c
+ add r0, r0, #1
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224044E:
+ ldr r1, [r5]
+ ldr r0, _02240488 ; =0x00001130
+ mov r2, #1
+ ldr r0, [r1, r0]
+ mov r1, #0
+ add r3, r1, #0
+ bl MOD12_0223B758
+ ldr r1, [r5]
+ ldr r0, _02240488 ; =0x00001130
+ ldr r0, [r1, r0]
+ mov r1, #0
+ add r2, r1, #0
+ bl MOD12_0223C1F4
+ mov r2, #0
+ ldr r0, [r5, #0xc]
+ add r1, r5, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_02240484:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02240488: .word 0x00001130
+
+ thumb_func_start MOD12_0224048C
+MOD12_0224048C: ; 0x0224048C
+ push {r3, lr}
+ mov r1, #0x3c
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022404A0
+MOD12_022404A0: ; 0x022404A0
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #0x17
+ mov r1, #0x20
+ add r6, r2, #0
+ add r5, r3, #0
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x20
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [sp]
+ ldr r2, _02240504 ; =0x00007530
+ str r0, [r4]
+ ldrh r0, [r6]
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r6, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r6, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r6, #6]
+ strh r0, [r4, #0xa]
+ str r7, [r4, #0xc]
+ ldrb r0, [r5]
+ strb r0, [r4, #0x11]
+ ldrh r0, [r5, #0x30]
+ strh r0, [r4, #0x14]
+ ldrh r0, [r5, #0x32]
+ strh r0, [r4, #0x16]
+ ldrh r0, [r5, #0x34]
+ strh r0, [r4, #0x18]
+ add r0, r5, #0
+ add r0, #0x36
+ ldrb r0, [r0]
+ strb r0, [r4, #0x1a]
+ add r0, r5, #0
+ add r0, #0x38
+ ldrb r0, [r0]
+ add r5, #0x37
+ strb r0, [r4, #0x1c]
+ ldrb r0, [r5]
+ strb r0, [r4, #0x1b]
+ ldr r0, _02240508 ; =MOD12_0224050C
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02240504: .word 0x00007530
+_02240508: .word MOD12_0224050C
+
+ thumb_func_start MOD12_0224050C
+MOD12_0224050C: ; 0x0224050C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #0
+ beq _02240522
+ cmp r0, #1
+ beq _0224055A
+ cmp r0, #2
+ beq _0224056C
+ b _022405A4
+_02240522:
+ ldrb r0, [r4, #0x1a]
+ cmp r0, #0
+ beq _02240554
+ ldr r0, [r4]
+ mov r1, #1
+ add r0, #0x78
+ add r2, r1, #0
+ mov r3, #0xe
+ bl FUN_0200D0BC
+ ldr r0, [r4]
+ mov r1, #1
+ ldr r0, [r0, #0x74]
+ bl FUN_0201AC68
+ add r2, r4, #0
+ ldrb r1, [r4, #0x1a]
+ ldr r0, [r4]
+ add r2, #0x14
+ bl MOD12_0223E274
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02240554:
+ mov r0, #0x64
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0224055A:
+ ldr r0, [r4]
+ bl MOD12_0223E2A8
+ cmp r0, #0
+ bne _022405BC
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0224056C:
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #1
+ bne _02240580
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02240580:
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x1b]
+ cmp r1, r0
+ blo _022405BC
+ ldr r0, [r4]
+ mov r1, #1
+ add r0, #0x78
+ bl FUN_0200D0E0
+ ldr r0, [r4]
+ mov r1, #1
+ ldr r0, [r0, #0x74]
+ bl FUN_0201AC68
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_022405A4:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_022405BC:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022405C0
+MOD12_022405C0: ; 0x022405C0
+ push {r3, lr}
+ mov r1, #0x30
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022405D4
+MOD12_022405D4: ; 0x022405D4
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ mov r0, #0xad
+ lsl r0, r0, #4
+ add r6, r1, r0
+ mov r5, #6
+_022405E0:
+ ldmia r3!, {r0, r1}
+ stmia r6!, {r0, r1}
+ sub r5, r5, #1
+ bne _022405E0
+ add r1, r2, #0
+ mov r2, #0
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022405F8
+MOD12_022405F8: ; 0x022405F8
+ push {r3, lr}
+ mov r1, #0x3c
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0224060C
+MOD12_0224060C: ; 0x0224060C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r3, #0
+ add r6, r0, #0
+ add r5, r1, #0
+ add r7, r2, #0
+ bl FUN_0200541C
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200521C
+ ldr r0, _02240640 ; =0x00001134
+ mov r1, #1
+ strb r1, [r5, r0]
+ add r1, r0, #4
+ add r0, #0xc
+ add r1, r5, r1
+ ldmia r1!, {r2, r3}
+ add r0, r5, r0
+ stmia r0!, {r2, r3}
+ mov r2, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02240640: .word 0x00001134
+
+ thumb_func_start MOD12_02240644
+MOD12_02240644: ; 0x02240644
+ push {r3, lr}
+ mov r1, #0x3c
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02240658
+MOD12_02240658: ; 0x02240658
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #0x17
+ mov r1, #0x54
+ add r5, r2, #0
+ add r6, r3, #0
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x54
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [sp]
+ add r3, r4, #0
+ str r0, [r4]
+ ldrh r0, [r5]
+ add r3, #0x10
+ mov r2, #7
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ str r7, [r4, #0xc]
+_02240690:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02240690
+ ldr r0, [r6]
+ ldr r2, _022406A8 ; =0x00007530
+ str r0, [r3]
+ ldr r0, _022406AC ; =MOD12_022406B0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022406A8: .word 0x00007530
+_022406AC: .word MOD12_022406B0
+
+ thumb_func_start MOD12_022406B0
+MOD12_022406B0: ; 0x022406B0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x50
+ ldrb r0, [r0]
+ cmp r0, #4
+ bhi _0224074E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022406CC: ; jump table
+ .short _022406D6 - _022406CC - 2 ; case 0
+ .short _022406EC - _022406CC - 2 ; case 1
+ .short _02240704 - _022406CC - 2 ; case 2
+ .short _02240718 - _022406CC - 2 ; case 3
+ .short _02240734 - _022406CC - 2 ; case 4
+_022406D6:
+ ldr r1, [r4]
+ ldr r0, _02240768 ; =0x00001134
+ mov r2, #0
+ strb r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x50
+ ldrb r0, [r0]
+ add r4, #0x50
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_022406EC:
+ ldrh r0, [r4, #0x34]
+ bl FUN_02005410
+ cmp r0, #0
+ bne _02240766
+ add r0, r4, #0
+ add r0, #0x50
+ ldrb r0, [r0]
+ add r4, #0x50
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02240704:
+ ldr r0, [r4]
+ bl MOD12_0223ECF0
+ add r0, r4, #0
+ add r0, #0x50
+ ldrb r0, [r0]
+ add r4, #0x50
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02240718:
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ cmp r0, #0x3c
+ bls _02240766
+ mov r0, #0
+ str r0, [r4, #0x4c]
+ add r0, r4, #0
+ add r0, #0x50
+ ldrb r0, [r0]
+ add r4, #0x50
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02240734:
+ ldr r0, _0224076C ; =0x0000046F
+ bl FUN_0200521C
+ ldr r0, _02240770 ; =0x000006E5
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0x50
+ ldrb r0, [r0]
+ add r4, #0x50
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0224074E:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02240766:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02240768: .word 0x00001134
+_0224076C: .word 0x0000046F
+_02240770: .word 0x000006E5
+
+ thumb_func_start MOD12_02240774
+MOD12_02240774: ; 0x02240774
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #0x3c
+ add r7, r3, #0
+ bl MI_CpuFill8
+ add r0, r5, #0
+ add r0, #0x37
+ strb r4, [r0]
+ add r0, r5, #0
+ add r0, #0x38
+ strb r6, [r0]
+ str r7, [r5, #0x30]
+ ldr r0, [sp, #0x18]
+ add r5, #0x39
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD12_0224079C
+MOD12_0224079C: ; 0x0224079C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #0x30]
+ mov r2, #0x3c
+ str r1, [sp]
+ add r1, r5, #0
+ add r1, #0x37
+ ldrb r7, [r1]
+ add r1, r5, #0
+ add r1, #0x38
+ ldrb r6, [r1]
+ add r1, r5, #0
+ add r1, #0x39
+ ldrb r4, [r1]
+ mov r1, #0
+ bl MI_CpuFill8
+ ldr r0, [sp]
+ str r0, [r5, #0x30]
+ add r0, r5, #0
+ add r0, #0x37
+ strb r7, [r0]
+ add r0, r5, #0
+ add r0, #0x38
+ strb r6, [r0]
+ add r5, #0x39
+ strb r4, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD12_022407D4
+MOD12_022407D4: ; 0x022407D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r1, _022409BC ; =0x00001388
+ lsr r0, r3, #2
+ add r0, r0, r1
+ lsl r1, r1, #1
+ str r3, [sp]
+ bl _u32_div_f
+ str r0, [sp, #8]
+ mov r0, #0x12
+ ldr r1, [r7]
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _022407FC
+ cmp r0, #1
+ bne _02240806
+_022407FC:
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #8
+ str r0, [sp, #0x10]
+ b _02240814
+_02240806:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ lsr r0, r0, #1
+ str r0, [sp]
+_02240814:
+ mov r5, #0
+ add r1, r5, #0
+ add r0, sp, #0x24
+ b _02240820
+_0224081C:
+ strb r1, [r0, r5]
+ add r5, r5, #1
+_02240820:
+ cmp r5, #0x10
+ blt _0224081C
+ ldr r0, [sp, #0x10]
+ mov r6, #0
+ sub r0, r0, #1
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ str r0, [sp, #0x14]
+ add r0, #0x30
+ str r0, [sp, #0x14]
+_02240834:
+ ldr r0, [r4, #0x30]
+ ldr r1, [sp, #0x14]
+ bl FUN_02082880
+ ldr r1, [sp, #0x10]
+ bl _s32_div_f
+ add r5, r1, #0
+ beq _02240834
+ add r0, sp, #0x24
+ ldrb r0, [r0, r5]
+ cmp r0, #0
+ bne _02240834
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _0224088E
+ ldr r0, [sp, #0x18]
+ cmp r5, r0
+ bne _02240864
+ sub r1, r5, #1
+ add r0, sp, #0x24
+ ldrb r0, [r0, r1]
+ cmp r0, #1
+ beq _02240834
+_02240864:
+ sub r1, r5, #1
+ add r0, sp, #0x24
+ ldrb r0, [r0, r1]
+ cmp r0, #1
+ beq _02240834
+ add r1, r5, #1
+ add r0, sp, #0x24
+ ldrb r0, [r0, r1]
+ cmp r0, #1
+ beq _02240834
+ mov r0, #1
+ tst r0, r5
+ beq _0224088E
+ ldr r0, [r4, #0x30]
+ ldr r1, [sp, #0x14]
+ bl FUN_02082880
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x80
+ blt _02240834
+_0224088E:
+ mov r1, #1
+ add r0, sp, #0x24
+ strb r1, [r0, r5]
+ ldr r0, _022409C0 ; =0x00000AFE
+ add r6, r6, #1
+ ldrb r0, [r7, r0]
+ cmp r6, r0
+ blt _02240834
+ mov r6, #0
+ add r5, r6, #0
+ b _022408C4
+_022408A4:
+ add r0, sp, #0x24
+ ldrb r0, [r0, r5]
+ cmp r0, #1
+ bne _022408C2
+ ldr r0, [sp]
+ add r1, r5, #0
+ mul r1, r0
+ ldr r0, _022409BC ; =0x00001388
+ add r0, r1, r0
+ ldr r1, _022409C4 ; =0x00002710
+ bl _u32_div_f
+ lsl r1, r6, #2
+ str r0, [r4, r1]
+ add r6, r6, #1
+_022408C2:
+ add r5, r5, #1
+_022408C4:
+ cmp r5, #0x10
+ blt _022408A4
+ mov r0, #0x12
+ ldr r1, [r7]
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0x39
+ ldrb r1, [r1]
+ bl MOD12_022409CC
+ add r6, r0, #0
+ add r0, r4, #0
+ str r0, [sp, #0x1c]
+ add r0, #0x30
+ str r0, [sp, #0x1c]
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r0, r0, #1
+ add r0, r0, #1
+ mov r5, #0
+ str r0, [sp, #0x20]
+ b _0224092C
+_022408F2:
+ ldr r0, [r4, #0x30]
+ ldr r1, [sp, #0x1c]
+ bl FUN_02082880
+ add r1, r6, #2
+ bl _s32_div_f
+ lsl r0, r5, #2
+ ldr r0, [r4, r0]
+ add r1, r0, r1
+ ldr r0, [sp, #0x20]
+ sub r3, r1, r0
+ bpl _0224090E
+ mov r3, #0
+_0224090E:
+ lsl r0, r5, #2
+ ldr r1, [r4, r0]
+ ldr r0, [sp, #8]
+ sub r2, r3, r1
+ cmp r2, r0
+ blo _0224091E
+ add r0, r0, r1
+ sub r3, r0, #1
+_0224091E:
+ lsl r0, r5, #2
+ add r1, r4, r5
+ str r3, [r4, r0]
+ add r1, #0x28
+ mov r0, #1
+ strb r0, [r1]
+ add r5, r5, #1
+_0224092C:
+ ldr r0, _022409C0 ; =0x00000AFE
+ ldrb r0, [r7, r0]
+ cmp r5, r0
+ blt _022408F2
+ mov r0, #0x12
+ ldr r1, [r7]
+ lsl r0, r0, #4
+ ldrb r1, [r1, r0]
+ ldr r0, _022409C8 ; =0x022464C4
+ ldrb r0, [r0, r1]
+ add r1, r4, #0
+ add r1, #0x30
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x30]
+ bl FUN_02082880
+ add r6, r4, #0
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r4, #0
+ add r1, r2, r1
+ add r0, #0x20
+ strb r1, [r0]
+ mov r5, #1
+ add r6, #0x30
+ b _022409B0
+_02240966:
+ ldr r0, _022409C0 ; =0x00000AFE
+ ldrb r0, [r7, r0]
+ sub r0, r0, #1
+ cmp r5, r0
+ bge _02240994
+ ldr r0, [r4, #0x30]
+ add r1, r6, #0
+ bl FUN_02082880
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r0, [sp, #4]
+ cmp r0, r1
+ ble _02240994
+ sub r0, r5, #1
+ add r0, r4, r0
+ add r0, #0x20
+ ldrb r1, [r0]
+ add r0, r4, r5
+ add r0, #0x20
+ strb r1, [r0]
+ b _022409AE
+_02240994:
+ ldr r0, [r4, #0x30]
+ add r1, r6, #0
+ bl FUN_02082880
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x1e
+ sub r2, r2, r1
+ mov r0, #0x1e
+ ror r2, r0
+ add r0, r4, r5
+ add r1, r1, r2
+ add r0, #0x20
+ strb r1, [r0]
+_022409AE:
+ add r5, r5, #1
+_022409B0:
+ ldr r0, _022409C0 ; =0x00000AFE
+ ldrb r0, [r7, r0]
+ cmp r5, r0
+ blt _02240966
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022409BC: .word 0x00001388
+_022409C0: .word 0x00000AFE
+_022409C4: .word 0x00002710
+_022409C8: .word 0x022464C4
+
+ thumb_func_start MOD12_022409CC
+MOD12_022409CC: ; 0x022409CC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #4
+ blo _022409DA
+ bl ErrorHandling
+_022409DA:
+ ldr r0, _02240A0C ; =0x022464C0
+ cmp r4, #3
+ ldrsb r0, [r0, r5]
+ bhi _02240A02
+ add r1, r4, r4
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022409EE: ; jump table
+ .short _022409F6 - _022409EE - 2 ; case 0
+ .short _02240A08 - _022409EE - 2 ; case 1
+ .short _022409FA - _022409EE - 2 ; case 2
+ .short _02240A02 - _022409EE - 2 ; case 3
+_022409F6:
+ lsl r0, r0, #1
+ pop {r3, r4, r5, pc}
+_022409FA:
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ pop {r3, r4, r5, pc}
+_02240A02:
+ mov r1, #3
+ bl _s32_div_f
+_02240A08:
+ pop {r3, r4, r5, pc}
+ nop
+_02240A0C: .word 0x022464C0
+
+ thumb_func_start MOD12_02240A10
+MOD12_02240A10: ; 0x02240A10
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r6, r0, #0
+ add r5, r2, #0
+ add r4, r3, #0
+ cmp r7, #4
+ blo _02240A22
+ bl ErrorHandling
+_02240A22:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ beq _02240A3C
+ mov r0, #1
+ add r1, r5, #0
+ and r1, r0
+ and r0, r4
+ cmp r1, r0
+ sub r0, r5, r4
+ cmp r0, #4
+ sub r0, r5, r4
+ cmp r0, #8
+_02240A3C:
+ ldr r0, _02240A70 ; =0x022464C0
+ cmp r6, #3
+ ldrsb r0, [r0, r7]
+ bhi _02240A68
+ add r1, r6, r6
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02240A50: ; jump table
+ .short _02240A58 - _02240A50 - 2 ; case 0
+ .short _02240A5C - _02240A50 - 2 ; case 1
+ .short _02240A60 - _02240A50 - 2 ; case 2
+ .short _02240A68 - _02240A50 - 2 ; case 3
+_02240A58:
+ lsl r0, r0, #1
+ b _02240A68
+_02240A5C:
+ lsl r0, r0, #1
+ b _02240A68
+_02240A60:
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r1, r1, #1
+ add r0, r0, r1
+_02240A68:
+ cmp r0, #0
+ bge _02240A6E
+ mov r0, #0
+_02240A6E:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02240A70: .word 0x022464C0
+
+ thumb_func_start MOD12_02240A74
+MOD12_02240A74: ; 0x02240A74
+ push {r4, r5}
+ mov r4, #0
+ ldr r5, [sp, #8]
+ cmp r1, #3
+ bhi _02240AB0
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02240A8A: ; jump table
+ .short _02240A92 - _02240A8A - 2 ; case 0
+ .short _02240A9A - _02240A8A - 2 ; case 1
+ .short _02240AA2 - _02240A8A - 2 ; case 2
+ .short _02240AAA - _02240A8A - 2 ; case 3
+_02240A92:
+ cmp r5, #1
+ bne _02240AB0
+ add r4, r4, #3
+ b _02240AB0
+_02240A9A:
+ cmp r5, #2
+ bne _02240AB0
+ add r4, r4, #3
+ b _02240AB0
+_02240AA2:
+ cmp r5, #4
+ bne _02240AB0
+ add r4, r4, #3
+ b _02240AB0
+_02240AAA:
+ cmp r5, #3
+ bne _02240AB0
+ add r4, r4, #3
+_02240AB0:
+ ldr r1, [sp, #0xc]
+ cmp r1, #0
+ beq _02240ABC
+ cmp r5, r1
+ beq _02240ABC
+ add r4, #8
+_02240ABC:
+ mov r1, #0
+ mvn r1, r1
+ cmp r3, r1
+ beq _02240ADA
+ mov r1, #1
+ add r5, r2, #0
+ and r5, r1
+ and r1, r3
+ cmp r5, r1
+ beq _02240AD2
+ add r4, r4, #2
+_02240AD2:
+ sub r1, r2, r3
+ cmp r1, #8
+ blt _02240ADA
+ add r4, r4, #5
+_02240ADA:
+ cmp r0, #3
+ bhi _02240B02
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02240AEA: ; jump table
+ .short _02240AF2 - _02240AEA - 2 ; case 0
+ .short _02240AF6 - _02240AEA - 2 ; case 1
+ .short _02240AFA - _02240AEA - 2 ; case 2
+ .short _02240B02 - _02240AEA - 2 ; case 3
+_02240AF2:
+ lsl r4, r4, #1
+ b _02240B02
+_02240AF6:
+ lsl r4, r4, #1
+ b _02240B02
+_02240AFA:
+ lsr r0, r4, #0x1f
+ add r0, r4, r0
+ asr r0, r0, #1
+ add r4, r4, r0
+_02240B02:
+ add r0, r4, #0
+ pop {r4, r5}
+ bx lr
+
+ thumb_func_start MOD12_02240B08
+MOD12_02240B08: ; 0x02240B08
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r2, #0
+ add r4, #0x38
+ ldrb r4, [r4]
+ cmp r4, #0
+ bne _02240B36
+ cmp r0, #0
+ bne _02240B36
+ ldr r0, [sp, #0x1c]
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x24]
+ str r0, [sp, #8]
+ add r0, r1, #0
+ add r1, r2, #0
+ add r2, r3, #0
+ ldr r3, [sp, #0x18]
+ bl MOD12_02240B5C
+ add sp, #0xc
+ pop {r3, r4, pc}
+_02240B36:
+ cmp r4, #0
+ beq _02240B56
+ cmp r0, #1
+ bne _02240B56
+ ldr r0, [sp, #0x1c]
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x24]
+ str r0, [sp, #8]
+ add r0, r1, #0
+ add r1, r2, #0
+ add r2, r3, #0
+ ldr r3, [sp, #0x18]
+ bl MOD12_02240C00
+_02240B56:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02240B5C
+MOD12_02240B5C: ; 0x02240B5C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x24
+ add r4, r1, #0
+ add r0, r4, #0
+ add r0, #0x38
+ ldrb r3, [r0]
+ cmp r3, #0
+ bne _02240BF6
+ ldr r0, [sp, #0x3c]
+ add r1, #0x36
+ ldrb r0, [r0, #5]
+ ldrb r1, [r1]
+ cmp r1, r0
+ bhs _02240BF6
+ mov r5, #0x34
+ ldrsh r5, [r4, r5]
+ cmp r5, #0
+ ble _02240B88
+ sub r0, r5, #1
+ add sp, #0x24
+ strh r0, [r4, #0x34]
+ pop {r3, r4, r5, r6, pc}
+_02240B88:
+ mov r5, #0
+_02240B8A:
+ add r6, r4, r5
+ add r6, #0x28
+ ldrb r6, [r6]
+ cmp r6, #1
+ beq _02240B9A
+ add r5, r5, #1
+ cmp r5, #8
+ blt _02240B8A
+_02240B9A:
+ cmp r5, #8
+ bge _02240BF6
+ lsl r6, r5, #2
+ ldr r6, [r4, r6]
+ cmp r6, r2
+ bhi _02240BF6
+ ldr r6, [sp, #0x3c]
+ add r6, #8
+ str r6, [sp]
+ add r6, sp, #0x18
+ str r6, [sp, #4]
+ mov r6, #0
+ str r6, [sp, #8]
+ str r3, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ add r1, r4, r5
+ add r0, #0x37
+ add r1, #0x20
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ ldr r3, [sp, #0x38]
+ bl MOD12_0223FCAC
+ ldr r0, [sp, #0x40]
+ add r1, sp, #0x18
+ bl MOD12_0223F56C
+ add r0, r4, r5
+ add r1, r6, #0
+ add r0, #0x28
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x36
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x36
+ strb r1, [r0]
+ ldr r0, [sp, #0x38]
+ ldr r1, _02240BFC ; =0x00002710
+ bl _u32_div_f
+ sub r0, r0, #2
+ strh r0, [r4, #0x34]
+_02240BF6:
+ add sp, #0x24
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02240BFC: .word 0x00002710
+
+ thumb_func_start MOD12_02240C00
+MOD12_02240C00: ; 0x02240C00
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r7, r0, #0
+ ldr r0, [sp, #0x5c]
+ add r5, r1, #0
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0x58]
+ str r2, [sp, #0x18]
+ lsr r0, r0, #1
+ str r0, [sp, #0x34]
+ add r0, r5, #0
+ add r0, #0x38
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02240C3C
+ add r0, r5, #0
+ add r0, #0x36
+ ldrb r1, [r0]
+ ldr r0, [sp, #0x5c]
+ ldrb r0, [r0, #5]
+ cmp r1, r0
+ bhs _02240C3C
+ mov r0, #0xa
+ mul r0, r1
+ ldr r2, _02240DB4 ; =0x00001BA0
+ add r4, r7, r0
+ ldrb r2, [r4, r2]
+ lsl r2, r2, #0x1d
+ lsr r2, r2, #0x1f
+ bne _02240C3E
+_02240C3C:
+ b _02240DB0
+_02240C3E:
+ mov r6, #0x34
+ ldrsh r2, [r5, r6]
+ cmp r2, #0
+ ble _02240C4E
+ sub r0, r2, #1
+ add sp, #0x44
+ strh r0, [r5, #0x34]
+ pop {r4, r5, r6, r7, pc}
+_02240C4E:
+ ldr r2, _02240DB4 ; =0x00001BA0
+ sub r2, #8
+ add r2, r7, r2
+ add r4, r2, r0
+ ldr r0, [sp, #0x18]
+ lsr r2, r3, #1
+ sub r0, r0, r2
+ str r0, [sp, #0x30]
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ bne _02240D4C
+ cmp r1, #0
+ bne _02240C70
+ mov r0, #0
+ sub r6, #0x35
+ str r0, [sp, #0x1c]
+ b _02240C86
+_02240C70:
+ sub r1, r1, #1
+ mov r0, #0xa
+ mul r0, r1
+ ldr r1, _02240DB4 ; =0x00001BA0
+ add r0, r7, r0
+ sub r1, r1, #2
+ ldrb r6, [r0, r1]
+ ldr r1, _02240DB4 ; =0x00001BA0
+ sub r1, r1, #5
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0x1c]
+_02240C86:
+ mov r0, #0x12
+ ldr r1, [r7]
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ add r1, r5, #0
+ add r1, #0x39
+ ldrb r1, [r1]
+ ldrb r2, [r4, #6]
+ add r3, r6, #0
+ bl MOD12_02240A10
+ str r0, [sp, #0x28]
+ ldrb r0, [r4, #3]
+ add r3, r6, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x1c]
+ str r0, [sp, #4]
+ mov r0, #0x12
+ ldr r1, [r7]
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ add r1, r5, #0
+ add r1, #0x39
+ ldrb r1, [r1]
+ ldrb r2, [r4, #6]
+ bl MOD12_02240A74
+ str r0, [sp, #0x24]
+ ldrb r1, [r4, #6]
+ ldr r0, [sp, #0x34]
+ mul r0, r1
+ ldr r1, _02240DB8 ; =0x00001388
+ add r0, r0, r1
+ lsl r1, r1, #1
+ bl _u32_div_f
+ add r6, r0, #0
+ add r1, r5, #0
+ ldr r0, [r5, #0x30]
+ add r1, #0x30
+ bl FUN_02082880
+ ldr r1, [sp, #0x28]
+ add r1, r1, #2
+ bl _s32_div_f
+ ldr r0, [sp, #0x28]
+ lsr r2, r0, #0x1f
+ add r2, r0, r2
+ asr r0, r2, #1
+ add r0, r0, #1
+ sub r0, r1, r0
+ add r0, r0, r6
+ str r0, [sp, #0x2c]
+ bpl _02240CF8
+ mov r0, #0
+ str r0, [sp, #0x2c]
+_02240CF8:
+ add r1, r5, #0
+ ldr r0, [r5, #0x30]
+ add r1, #0x30
+ bl FUN_02082880
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r2, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ add r0, r2, r0
+ cmp r1, r0
+ bge _02240D38
+ add r6, r5, #0
+ add r6, #0x30
+_02240D16:
+ ldr r0, [r5, #0x30]
+ add r1, r6, #0
+ bl FUN_02082880
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x1e
+ sub r2, r2, r1
+ mov r0, #0x1e
+ ror r2, r0
+ add r0, r1, r2
+ str r0, [sp, #0x20]
+ bl MOD12_0223FB80
+ ldrb r1, [r4, #3]
+ cmp r1, r0
+ beq _02240D16
+ b _02240D40
+_02240D38:
+ ldrb r0, [r4, #3]
+ bl MOD12_0223FBB4
+ str r0, [sp, #0x20]
+_02240D40:
+ ldr r0, [sp, #0x2c]
+ str r0, [r5]
+ ldr r0, [sp, #0x20]
+ strb r0, [r5, #4]
+ mov r0, #1
+ strb r0, [r5, #5]
+_02240D4C:
+ ldr r1, [r5]
+ ldr r0, [sp, #0x30]
+ cmp r1, r0
+ bhi _02240DB0
+ ldr r0, [sp, #0x5c]
+ ldr r2, [sp, #0x18]
+ add r0, #8
+ str r0, [sp]
+ add r0, sp, #0x38
+ str r0, [sp, #4]
+ ldr r0, _02240DBC ; =0x00001B98
+ ldr r3, [sp, #0x58]
+ add r0, r7, r0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x38
+ ldrb r0, [r0]
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0x36
+ ldrb r0, [r0]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x5c]
+ ldrb r0, [r0, #5]
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r0, #0x37
+ ldrb r0, [r0]
+ ldrb r1, [r5, #4]
+ bl MOD12_0223FCAC
+ ldr r0, [sp, #0x60]
+ add r1, sp, #0x38
+ bl MOD12_0223F56C
+ mov r0, #0
+ strb r0, [r5, #5]
+ add r0, r5, #0
+ add r0, #0x36
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x36
+ strb r1, [r0]
+ ldr r0, [sp, #0x58]
+ ldr r1, _02240DC0 ; =0x00002710
+ bl _u32_div_f
+ sub r0, r0, #2
+ strh r0, [r5, #0x34]
+_02240DB0:
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02240DB4: .word 0x00001BA0
+_02240DB8: .word 0x00001388
+_02240DBC: .word 0x00001B98
+_02240DC0: .word 0x00002710
+
+ thumb_func_start MOD12_02240DC4
+MOD12_02240DC4: ; 0x02240DC4
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r4, #5
+ blo _02240DD0
+ bl ErrorHandling
+_02240DD0:
+ ldr r0, _02240DD8 ; =0x022464D0
+ lsl r1, r4, #2
+ ldr r0, [r0, r1]
+ pop {r4, pc}
+ .align 2, 0
+_02240DD8: .word 0x022464D0
+
+ thumb_func_start MOD12_02240DDC
+MOD12_02240DDC: ; 0x02240DDC
+ mov r0, #0x31
+ bx lr
+
+ thumb_func_start MOD12_02240DE0
+MOD12_02240DE0: ; 0x02240DE0
+ mov r0, #0x32
+ bx lr
+
+ thumb_func_start MOD12_02240DE4
+MOD12_02240DE4: ; 0x02240DE4
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r4, #5
+ blo _02240DF0
+ bl ErrorHandling
+_02240DF0:
+ ldr r0, _02240DF8 ; =0x022464C8
+ ldrb r0, [r0, r4]
+ pop {r4, pc}
+ nop
+_02240DF8: .word 0x022464C8
+
+ thumb_func_start MOD12_02240DFC
+MOD12_02240DFC: ; 0x02240DFC
+ mov r0, #0x2e
+ bx lr
+
+ thumb_func_start MOD12_02240E00
+MOD12_02240E00: ; 0x02240E00
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r3, #0
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ bl MOD12_02240DFC
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD12_02240DC4
+ add r3, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [sp, #0x28]
+ str r4, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl FUN_0200C00C
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02240E34
+MOD12_02240E34: ; 0x02240E34
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD12_02240DFC
+ str r0, [sp, #8]
+ bl MOD12_02240DDC
+ add r3, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ str r6, [sp, #4]
+ bl FUN_0200C124
+ bl MOD12_02240DFC
+ add r6, r0, #0
+ bl MOD12_02240DE0
+ add r3, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ str r7, [sp, #4]
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD12_02240E7C
+MOD12_02240E7C: ; 0x02240E7C
+ ldr r3, _02240E80 ; =0x0200C359
+ bx r3
+ .align 2, 0
+_02240E80: .word 0x0200C359
+
+ thumb_func_start MOD12_02240E84
+MOD12_02240E84: ; 0x02240E84
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ bl FUN_0200C378
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200C388
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD12_02240E98
+MOD12_02240E98: ; 0x02240E98
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r6, r3, #0
+ add r4, r0, #0
+ add r7, r1, #0
+ add r5, sp, #0
+ mov r3, #6
+_02240EA6:
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ sub r3, r3, #1
+ bne _02240EA6
+ ldr r0, [r6]
+ str r0, [r5]
+ add r0, r2, #0
+ bl MOD12_02240DE4
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, sp, #0
+ bl FUN_0200C154
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD12_02240EC8
+MOD12_02240EC8: ; 0x02240EC8
+ ldr r3, _02240ECC ; =0x0200C3DD
+ bx r3
+ .align 2, 0
+_02240ECC: .word 0x0200C3DD
+
+ thumb_func_start MOD12_02240ED0
+MOD12_02240ED0: ; 0x02240ED0
+ push {r3, r4, r5, lr}
+ ldr r2, _02240EF4 ; =0x00000A18
+ add r4, r1, #0
+ mov r1, #0
+ add r5, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [r4]
+ str r0, [r5]
+ ldrh r0, [r4, #4]
+ strh r0, [r5, #4]
+ ldrb r0, [r4, #6]
+ strb r0, [r5, #6]
+ ldrb r0, [r4, #7]
+ strb r0, [r5, #7]
+ ldrb r0, [r4, #8]
+ strb r0, [r5, #8]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02240EF4: .word 0x00000A18
+
+ thumb_func_start MOD12_02240EF8
+MOD12_02240EF8: ; 0x02240EF8
+ push {r3, r4, r5, lr}
+ ldr r5, [r0, #0xc]
+ mov r4, #0
+ mov r2, #1
+_02240F00:
+ add r3, r2, #0
+ lsl r3, r4
+ add r1, r5, #0
+ tst r1, r3
+ bne _02240F14
+ ldr r1, [r0, #0xc]
+ orr r1, r3
+ str r1, [r0, #0xc]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02240F14:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _02240F00
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02240F24
+MOD12_02240F24: ; 0x02240F24
+ push {r3, r4}
+ mov r2, #1
+ add r3, r2, #0
+ lsl r3, r1
+ sub r1, r2, #2
+ ldr r4, [r0, #0xc]
+ eor r1, r3
+ and r1, r4
+ str r1, [r0, #0xc]
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_02240F3C
+MOD12_02240F3C: ; 0x02240F3C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ ldr r4, [sp, #0x28]
+ add r5, r0, #0
+ mov r0, #2
+ str r4, [sp, #4]
+ add r4, #8
+ lsl r0, r0, #8
+ add r6, r1, #0
+ add r7, r2, #0
+ str r3, [sp]
+ cmp r4, r0
+ bls _02240F5A
+ bl ErrorHandling
+_02240F5A:
+ add r0, r5, #0
+ mov r2, #2
+ add r0, #0x10
+ mov r1, #0
+ lsl r2, r2, #8
+ bl MI_CpuFill8
+ add r0, sp, #8
+ strb r6, [r0, #4]
+ strh r7, [r0, #2]
+ add r0, r5, #0
+ bl MOD12_02240EF8
+ add r1, sp, #8
+ strb r0, [r1, #5]
+ mov r0, #0
+ strb r0, [r1, #6]
+ strh r4, [r1]
+ add r1, r5, #0
+ add r0, sp, #8
+ add r1, #0x10
+ mov r2, #8
+ bl MIi_CpuCopy32
+ add r1, r5, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, #0x18
+ bl MI_CpuCopy8
+ ldr r0, _02240FAC ; =0x00000A15
+ mov r1, #0
+ strb r1, [r5, r0]
+ mov r1, #1
+ sub r0, r0, #5
+ strb r1, [r5, r0]
+ add r0, sp, #8
+ ldrb r0, [r0, #5]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02240FAC: .word 0x00000A15
+
+ thumb_func_start MOD12_02240FB0
+MOD12_02240FB0: ; 0x02240FB0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r7, r3, #0
+ mov r0, #2
+ add r7, #8
+ lsl r0, r0, #8
+ add r4, r1, #0
+ add r6, r2, #0
+ str r3, [sp]
+ cmp r7, r0
+ bls _02240FCC
+ bl ErrorHandling
+_02240FCC:
+ add r0, r5, #0
+ mov r2, #2
+ add r0, #0x10
+ mov r1, #0
+ lsl r2, r2, #8
+ bl MI_CpuFill8
+ ldrh r2, [r4]
+ add r1, sp, #4
+ add r0, sp, #4
+ strh r2, [r1]
+ ldrh r2, [r4, #2]
+ strh r2, [r1, #2]
+ ldrh r2, [r4, #4]
+ strh r2, [r1, #4]
+ ldrh r2, [r4, #6]
+ strh r2, [r1, #6]
+ mov r2, #0xfe
+ strb r2, [r1, #4]
+ mov r2, #1
+ strb r2, [r1, #6]
+ strh r7, [r1]
+ add r1, r5, #0
+ add r1, #0x10
+ mov r2, #8
+ bl MIi_CpuCopy32
+ cmp r6, #0
+ beq _02241012
+ add r1, r5, #0
+ ldr r2, [sp]
+ add r0, r6, #0
+ add r1, #0x18
+ bl MI_CpuCopy8
+_02241012:
+ mov r0, #0xa1
+ mov r1, #1
+ lsl r0, r0, #4
+ strb r1, [r5, r0]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02241020
+MOD12_02241020: ; 0x02241020
+ push {r4, r5}
+ lsl r5, r1, #9
+ mov r1, #0x21
+ lsl r1, r1, #4
+ add r4, r0, r1
+ add r1, #8
+ add r4, r4, r5
+ add r0, r0, r1
+ str r4, [r2]
+ add r0, r0, r5
+ str r0, [r3]
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0224103C
+MOD12_0224103C: ; 0x0224103C
+ mov r1, #0xa1
+ lsl r1, r1, #4
+ ldrb r0, [r0, r1]
+ cmp r0, #1
+ bne _0224104A
+ mov r0, #0
+ bx lr
+_0224104A:
+ mov r0, #1
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_02241050
+MOD12_02241050: ; 0x02241050
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ bl MOD12_0224103C
+ cmp r0, #0
+ bne _02241066
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02241066:
+ ldrh r0, [r5, #4]
+ cmp r4, r0
+ blt _02241070
+ bl ErrorHandling
+_02241070:
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r6, #0xc
+ ldr r5, [r5]
+ mul r6, r4
+ add r2, r4, #0
+ ldr r4, [r5, r6]
+ add r3, r7, #0
+ blx r4
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02241088
+MOD12_02241088: ; 0x02241088
+ cmp r0, r2
+ beq _02241098
+ cmp r2, #0xff
+ beq _02241098
+ cmp r2, #0xfe
+ bne _0224109C
+ cmp r1, r0
+ bne _0224109C
+_02241098:
+ mov r0, #1
+ bx lr
+_0224109C:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD12_022410A0
+MOD12_022410A0: ; 0x022410A0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xa1
+ lsl r0, r0, #4
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _022410B2
+ mov r0, #0
+ pop {r4, pc}
+_022410B2:
+ ldrb r0, [r4, #7]
+ cmp r0, #0
+ bne _022410F0
+ ldrb r1, [r4, #6]
+ mov r2, #0x21
+ lsl r2, r2, #4
+ add r0, r4, #0
+ add r3, r4, r2
+ lsl r1, r1, #9
+ add r0, #0x10
+ add r1, r3, r1
+ sub r2, #0x10
+ bl MI_CpuCopy8
+ ldrb r0, [r4, #6]
+ mov r2, #1
+ add r1, r4, r0
+ ldr r0, _02241110 ; =0x00000A11
+ strb r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x10
+ mov r1, #0
+ lsl r2, r2, #9
+ bl MI_CpuFill8
+ mov r0, #0xa1
+ mov r1, #0
+ lsl r0, r0, #4
+ strb r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_022410F0:
+ ldrh r2, [r4, #0x10]
+ add r1, r4, #0
+ mov r0, #0x18
+ add r1, #0x10
+ bl FUN_02030A78
+ cmp r0, #1
+ bne _0224110C
+ mov r0, #0xa1
+ mov r1, #0
+ lsl r0, r0, #4
+ strb r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_0224110C:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02241110: .word 0x00000A11
+
+ thumb_func_start MOD12_02241114
+MOD12_02241114: ; 0x02241114
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r7, r0, #0
+ add r4, r1, #0
+ add r0, sp, #0x18
+ mov r1, #0
+ mov r2, #0x10
+ bl MI_CpuFill8
+ ldr r0, _022411EC ; =0x00000A11
+ mov r6, #0
+_0224112A:
+ add r1, r7, r6
+ ldrb r1, [r1, r0]
+ cmp r1, #1
+ bne _022411DE
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, sp, #0x14
+ add r3, sp, #0x10
+ bl MOD12_02241020
+ ldr r2, [sp, #0x14]
+ ldrb r0, [r7, #6]
+ ldrb r1, [r7, #8]
+ ldrb r2, [r2, #4]
+ bl MOD12_02241088
+ cmp r0, #1
+ bne _022411C0
+ ldr r2, [sp, #0x14]
+ ldrh r1, [r7, #4]
+ ldrh r0, [r2, #2]
+ str r0, [sp, #8]
+ cmp r0, r1
+ bhs _022411C0
+ ldrb r0, [r2, #6]
+ cmp r0, #0
+ bne _0224117A
+ add r1, r4, #0
+ ldr r4, [r7]
+ ldr r5, [sp, #8]
+ str r4, [sp, #4]
+ mov r4, #0xc
+ mul r4, r5
+ ldr r5, [sp, #4]
+ ldr r3, [sp, #0x10]
+ add r4, r5, r4
+ ldr r4, [r4, #4]
+ add r0, r7, #0
+ blx r4
+ b _022411C0
+_0224117A:
+ ldr r1, [sp, #8]
+ mov r3, #0xc
+ ldr r0, [r7]
+ mul r3, r1
+ add r0, r0, r3
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _022411AE
+ ldr r1, [sp, #0x10]
+ lsl r0, r6, #2
+ add r3, sp, #0x18
+ str r1, [r3, r0]
+ str r6, [sp]
+ add r1, r4, #0
+ ldr r4, [r7]
+ mov r5, #0xc
+ mov ip, r4
+ ldrh r4, [r2, #2]
+ add r0, r7, #0
+ mul r5, r4
+ str r5, [sp, #0xc]
+ ldr r4, [sp, #0xc]
+ mov r5, ip
+ add r4, r5, r4
+ ldr r4, [r4, #8]
+ blx r4
+_022411AE:
+ ldr r1, [sp, #0x14]
+ add r0, r7, #0
+ ldrb r1, [r1, #5]
+ bl MOD12_02240F24
+ ldr r0, _022411F0 ; =0x00000A15
+ ldrb r1, [r7, r0]
+ add r1, r1, #1
+ strb r1, [r7, r0]
+_022411C0:
+ ldr r0, _022411EC ; =0x00000A11
+ mov r1, #0
+ add r2, r7, r6
+ strb r1, [r2, r0]
+ mov r2, #0x21
+ lsl r2, r2, #4
+ add r3, r7, r2
+ lsl r0, r6, #9
+ add r0, r3, r0
+ sub r2, #0x10
+ bl MI_CpuFill8
+ add sp, #0x28
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022411DE:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0224112A
+ mov r0, #0
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022411EC: .word 0x00000A11
+_022411F0: .word 0x00000A15
+
+ thumb_func_start MOD12_022411F4
+MOD12_022411F4: ; 0x022411F4
+ cmp r2, r3
+ beq _022411FC
+ mov r0, #1
+ bx lr
+_022411FC:
+ ldr r2, _0224120C ; =0x00000A15
+ ldrb r0, [r0, r2]
+ cmp r0, r1
+ blt _02241208
+ mov r0, #1
+ bx lr
+_02241208:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_0224120C: .word 0x00000A15
+
+ thumb_func_start MOD12_02241210
+MOD12_02241210: ; 0x02241210
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r1, #1
+ lsl r1, r1, #0x1a
+ ldr r0, [r1]
+ ldr r2, _02241454 ; =0xFFFFE0FF
+ and r0, r2
+ str r0, [r1]
+ ldr r0, _02241458 ; =0x04001000
+ ldr r3, [r0]
+ and r2, r3
+ str r2, [r0]
+ ldr r3, [r1]
+ ldr r2, _0224145C ; =0xFFFF1FFF
+ and r3, r2
+ str r3, [r1]
+ ldr r3, [r0]
+ add r1, #0x50
+ and r2, r3
+ str r2, [r0]
+ mov r2, #0
+ strh r2, [r1]
+ add r0, #0x50
+ strh r2, [r0]
+ mov r2, #7
+ mov r0, #3
+ mov r1, #0x18
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ mov r1, #0x4a
+ add r0, r4, #0
+ lsl r1, r1, #6
+ mov r2, #0x18
+ bl FUN_02006268
+ mov r2, #0x4a
+ mov r1, #0
+ lsl r2, r2, #6
+ add r5, r0, #0
+ bl MI_CpuFill8
+ mov r0, #0x18
+ bl MOD12_022312D8
+ str r0, [r5, #0xc]
+ add r0, r4, #0
+ bl FUN_0200628C
+ mov r1, #0x5b
+ str r0, [r5]
+ lsl r1, r1, #2
+ str r5, [r0, r1]
+ ldr r2, [r5]
+ mov r3, #3
+ add r0, r1, #4
+ strb r3, [r2, r0]
+ ldr r0, [r5]
+ str r0, [r5, #0x10]
+ add r0, r5, #0
+ bl MOD12_02241B4C
+ ldr r0, _02241460 ; =0x0000127F
+ mov r1, #0
+ strb r1, [r5, r0]
+ mov r0, #0x18
+ bl FUN_02002FD0
+ add r1, r5, #0
+ add r1, #0xd0
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_020038F0
+ add r0, r5, #0
+ add r0, #0xd0
+ mov r2, #2
+ ldr r0, [r0]
+ mov r1, #0
+ lsl r2, r2, #8
+ mov r3, #0x18
+ bl FUN_02003008
+ add r0, r5, #0
+ add r0, #0xd0
+ mov r1, #1
+ ldr r0, [r0]
+ lsl r2, r1, #9
+ mov r3, #0x18
+ bl FUN_02003008
+ add r0, r5, #0
+ add r0, #0xd0
+ mov r2, #7
+ ldr r0, [r0]
+ mov r1, #2
+ lsl r2, r2, #6
+ mov r3, #0x18
+ bl FUN_02003008
+ add r0, r5, #0
+ add r0, #0xd0
+ mov r2, #2
+ ldr r0, [r0]
+ mov r1, #3
+ lsl r2, r2, #8
+ mov r3, #0x18
+ bl FUN_02003008
+ mov r0, #0x18
+ bl FUN_02016B94
+ str r0, [r5, #0x30]
+ mov r0, #0x40
+ mov r1, #0x18
+ bl FUN_0201C24C
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ ldr r0, [r5, #0x30]
+ bl MOD12_02241864
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ mov r0, #2
+ mov r1, #0x18
+ bl FUN_02002C50
+ mov r0, #0x18
+ bl FUN_0200BB14
+ ldr r1, _02241464 ; =0x0224654C
+ ldr r2, _02241468 ; =0x02246504
+ mov r3, #0x20
+ str r0, [r5, #0x28]
+ bl FUN_0200BB6C
+ ldr r1, _0224146C ; =0x00100010
+ mov r0, #1
+ bl FUN_02008D44
+ mov r0, #1
+ bl FUN_02008DDC
+ ldr r0, [r5, #0x28]
+ bl FUN_0200BB34
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x2c]
+ mov r2, #0x80
+ bl FUN_0200BBF0
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x2c]
+ ldr r2, _02241470 ; =0x02246518
+ bl FUN_0200BF60
+ mov r0, #0x18
+ bl FUN_02006D98
+ str r0, [r5, #0x14]
+ bl MOD12_02241B0C
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xcc
+ mov r3, #0x18
+ bl FUN_0200A86C
+ add r1, r5, #0
+ add r1, #0xc4
+ str r0, [r1]
+ mov r0, #0x18
+ bl FUN_0200AA80
+ add r1, r5, #0
+ add r1, #0xc8
+ str r0, [r1]
+ mov r0, #5
+ lsl r0, r0, #6
+ mov r1, #0x18
+ bl FUN_020219F4
+ add r1, r5, #0
+ add r1, #0xcc
+ str r0, [r1]
+ mov r0, #0xa
+ mov r1, #0x18
+ bl FUN_02011744
+ add r1, r5, #0
+ add r1, #0xd4
+ str r0, [r1]
+ add r0, r5, #0
+ bl MOD12_02241B90
+ add r0, r5, #0
+ bl MOD12_02241BA0
+ add r0, r5, #0
+ bl MOD12_022419D0
+ add r0, r5, #0
+ bl MOD12_02241B78
+ add r0, r5, #0
+ bl MOD12_02241B88
+ add r0, r5, #0
+ bl MOD12_02242454
+ bl FUN_02033E74
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r1, #0x18
+ str r1, [sp, #8]
+ mov r1, #0x21
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldr r0, _02241474 ; =MOD12_0224182C
+ ldr r2, _02241478 ; =0x00013880
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ mov r0, #0x85
+ mov r1, #1
+ lsl r0, r0, #4
+ strb r1, [r5, r0]
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r1, _0224147C ; =0x0000046F
+ mov r0, #6
+ mov r2, #1
+ bl FUN_0200433C
+ ldr r1, [r5]
+ ldr r0, _02241480 ; =0x00000171
+ ldrb r0, [r1, r0]
+ bl FUN_020833D4
+ ldr r0, _02241484 ; =MOD12_02241754
+ add r1, r5, #0
+ bl FUN_02015F10
+ ldr r0, _02241488 ; =MOD12_02241814
+ add r1, r5, #0
+ mov r2, #0xa
+ bl FUN_0200CA60
+ str r0, [r5, #8]
+ ldr r0, _0224148C ; =0x000006E5
+ bl FUN_020054C8
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02241454: .word 0xFFFFE0FF
+_02241458: .word 0x04001000
+_0224145C: .word 0xFFFF1FFF
+_02241460: .word 0x0000127F
+_02241464: .word 0x0224654C
+_02241468: .word 0x02246504
+_0224146C: .word 0x00100010
+_02241470: .word 0x02246518
+_02241474: .word MOD12_0224182C
+_02241478: .word 0x00013880
+_0224147C: .word 0x0000046F
+_02241480: .word 0x00000171
+_02241484: .word MOD12_02241754
+_02241488: .word MOD12_02241814
+_0224148C: .word 0x000006E5
+
+ thumb_func_start MOD12_02241490
+MOD12_02241490: ; 0x02241490
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02082878
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _022414B2
+ cmp r0, #1
+ beq _022414E4
+ cmp r0, #2
+ beq _0224156C
+ b _0224157A
+_022414B2:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _0224157A
+ ldr r0, _02241580 ; =MOD12_022417DC
+ add r1, r4, #0
+ bl FUN_02015F34
+ mov r0, #0xff
+ str r0, [sp]
+ ldr r0, _02241584 ; =0x0000D6D8
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r1, #0xd0
+ ldr r1, [r1]
+ ldr r2, _02241588 ; =0x022464F4
+ mov r0, #0x18
+ mov r3, #8
+ bl MOD12_022318A4
+ ldr r1, _0224158C ; =0x00000848
+ str r0, [r4, r1]
+ mov r0, #1
+ str r0, [r5]
+ b _0224157A
+_022414E4:
+ ldr r0, [r4]
+ bl FUN_020828BC
+ cmp r0, #1
+ bne _02241540
+ ldr r2, _02241590 ; =0x0000084E
+ ldr r1, _02241594 ; =0x00001274
+ ldrh r2, [r4, r2]
+ add r0, r4, #0
+ add r1, r4, r1
+ lsl r3, r2, #2
+ ldr r2, _02241598 ; =0x02246594
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #1
+ beq _02241508
+ cmp r0, #2
+ bne _0224152A
+_02241508:
+ cmp r0, #1
+ bne _02241514
+ ldr r0, _02241590 ; =0x0000084E
+ ldrh r1, [r4, r0]
+ add r1, r1, #1
+ b _0224151A
+_02241514:
+ ldr r0, _0224159C ; =0x00001276
+ ldrh r1, [r4, r0]
+ ldr r0, _02241590 ; =0x0000084E
+_0224151A:
+ strh r1, [r4, r0]
+ ldr r0, _02241594 ; =0x00001274
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #8
+ bl MI_CpuFill8
+ b _02241540
+_0224152A:
+ cmp r0, #3
+ bne _02241540
+ mov r0, #2
+ str r0, [r5]
+ ldr r0, _02241594 ; =0x00001274
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #8
+ bl MI_CpuFill8
+ b _0224157A
+_02241540:
+ ldr r0, _022415A0 ; =0x0000085C
+ add r0, r4, r0
+ bl MOD12_022410A0
+ ldr r0, _022415A0 ; =0x0000085C
+ add r1, r4, #0
+ add r0, r4, r0
+ bl MOD12_02241114
+ ldr r0, _022415A4 ; =0x0000127C
+ ldrb r1, [r4, r0]
+ cmp r1, #1
+ bne _0224157A
+ mov r1, #2
+ sub r0, #8
+ str r1, [r5]
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #8
+ bl MI_CpuFill8
+ b _0224157A
+_0224156C:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _0224157A
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0224157A:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02241580: .word MOD12_022417DC
+_02241584: .word 0x0000D6D8
+_02241588: .word 0x022464F4
+_0224158C: .word 0x00000848
+_02241590: .word 0x0000084E
+_02241594: .word 0x00001274
+_02241598: .word 0x02246594
+_0224159C: .word 0x00001276
+_022415A0: .word 0x0000085C
+_022415A4: .word 0x0000127C
+
+ thumb_func_start MOD12_022415A8
+MOD12_022415A8: ; 0x022415A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl FUN_02012EAC
+ add r0, r4, #0
+ bl MOD12_02241B80
+ add r0, r4, #0
+ bl MOD12_02241B8C
+ add r0, r4, #0
+ bl MOD12_02241B98
+ add r0, r4, #0
+ bl MOD12_02241BF8
+ add r5, r4, #0
+ mov r6, #0
+ add r5, #0x34
+_022415D4:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r6, r6, #1
+ add r5, #0x10
+ cmp r6, #9
+ blt _022415D4
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0x30]
+ mov r1, #3
+ bl FUN_020178A0
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201797C
+ ldr r0, [r4, #0x30]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x2c]
+ bl FUN_0200C398
+ ldr r0, [r4, #0x28]
+ bl FUN_0200BD04
+ bl FUN_0201C29C
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD12_022424D4
+ ldr r0, [r4, #0x14]
+ bl FUN_020072E8
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl FUN_020117BC
+ mov r0, #2
+ bl FUN_02002CF8
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_02003038
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_02003038
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ mov r1, #2
+ bl FUN_02003038
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_02003038
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl FUN_02002FEC
+ add r0, r4, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_0200AB18
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x30]
+ bl FUN_02016A18
+ ldr r0, [r4, #4]
+ bl FUN_0200CAB4
+ ldr r0, [r4, #8]
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0xc]
+ bl MOD12_02231378
+ bl FUN_0201CD04
+ add r0, r7, #0
+ bl FUN_0200627C
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _02241734 ; =0xFFFF1FFF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _02241738 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ mov r0, #0x18
+ bl FUN_020168D0
+ bl FUN_02083404
+ mov r1, #5
+ mov r2, #2
+ ldr r0, _0224173C ; =0x00007FFF
+ lsl r1, r1, #0x18
+ lsl r2, r2, #8
+ bl MIi_CpuClear16
+ mov r2, #2
+ ldr r0, _0224173C ; =0x00007FFF
+ ldr r1, _02241740 ; =0x05000200
+ lsl r2, r2, #8
+ bl MIi_CpuClear16
+ mov r2, #2
+ ldr r0, _0224173C ; =0x00007FFF
+ ldr r1, _02241744 ; =0x05000400
+ lsl r2, r2, #8
+ bl MIi_CpuClear16
+ mov r2, #2
+ ldr r0, _0224173C ; =0x00007FFF
+ ldr r1, _02241748 ; =0x05000600
+ lsl r2, r2, #8
+ bl MIi_CpuClear16
+ bl FUN_02033ED0
+ ldr r0, _0224174C ; =SDK_MODULE_08_ID
+ bl UnloadOverlayByID
+ ldr r0, _02241750 ; =SDK_MODULE_17_ID
+ bl UnloadOverlayByID
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02241734: .word 0xFFFF1FFF
+_02241738: .word 0x04001000
+_0224173C: .word 0x00007FFF
+_02241740: .word 0x05000200
+_02241744: .word 0x05000400
+_02241748: .word 0x05000600
+_0224174C: .word SDK_MODULE_08_ID
+_02241750: .word SDK_MODULE_17_ID
+
+ thumb_func_start MOD12_02241754
+MOD12_02241754: ; 0x02241754
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ ldr r0, _022417CC ; =0x00000854
+ sub r1, r0, #2
+ ldrb r3, [r4, r1]
+ sub r1, r0, #3
+ ldrb r1, [r4, r1]
+ sub r6, r0, #1
+ ldrb r6, [r4, r6]
+ lsl r2, r1, #8
+ mov r1, #0xff
+ lsl r1, r1, #8
+ and r2, r1
+ orr r2, r6
+ ldrb r5, [r4, r0]
+ ldr r6, _022417D0 ; =0x04000040
+ strh r2, [r6]
+ lsl r2, r3, #8
+ and r2, r1
+ orr r2, r5
+ strh r2, [r6, #4]
+ add r2, r0, #4
+ ldrb r5, [r4, r2]
+ add r2, r0, #2
+ ldrb r3, [r4, r2]
+ add r2, r0, #1
+ ldrb r2, [r4, r2]
+ add r0, r0, #3
+ ldrb r0, [r4, r0]
+ lsl r2, r2, #8
+ and r2, r1
+ orr r0, r2
+ strh r0, [r6, #2]
+ lsl r0, r3, #8
+ and r0, r1
+ orr r0, r5
+ strh r0, [r6, #6]
+ ldr r0, [r4, #0x14]
+ bl FUN_020081C4
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl FUN_0200372C
+ ldr r0, [r4, #0x30]
+ bl FUN_0201AB60
+ ldr r3, _022417D4 ; =0x027E0000
+ ldr r1, _022417D8 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, r5, r6, pc}
+ nop
+_022417CC: .word 0x00000854
+_022417D0: .word 0x04000040
+_022417D4: .word 0x027E0000
+_022417D8: .word 0x00003FF8
+
+ thumb_func_start MOD12_022417DC
+MOD12_022417DC: ; 0x022417DC
+ push {r3, lr}
+ ldr r1, _0224180C ; =0x0000127F
+ ldrb r0, [r0, r1]
+ cmp r0, #1
+ bne _02241808
+ ldr r0, _02241810 ; =0x04000006
+ ldrh r0, [r0]
+ cmp r0, #0x90
+ blt _022417FC
+ cmp r0, #0x98
+ bgt _022417FC
+ mov r0, #1
+ mov r1, #0
+ bl FUN_020178BC
+ pop {r3, pc}
+_022417FC:
+ cmp r0, #0x90
+ bge _02241808
+ mov r0, #1
+ mov r1, #2
+ bl FUN_020178BC
+_02241808:
+ pop {r3, pc}
+ nop
+_0224180C: .word 0x0000127F
+_02241810: .word 0x04000006
+
+ thumb_func_start MOD12_02241814
+MOD12_02241814: ; 0x02241814
+ push {r3, lr}
+ ldr r0, _02241828 ; =0x0000127F
+ ldrb r0, [r1, r0]
+ cmp r0, #1
+ bne _02241826
+ mov r0, #1
+ mov r1, #2
+ bl FUN_020178BC
+_02241826:
+ pop {r3, pc}
+ .align 2, 0
+_02241828: .word 0x0000127F
+
+ thumb_func_start MOD12_0224182C
+MOD12_0224182C: ; 0x0224182C
+ push {r4, lr}
+ mov r0, #0x85
+ add r4, r1, #0
+ lsl r0, r0, #4
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ bne _02241854
+ ldr r0, [r4, #0x14]
+ bl FUN_02006ED4
+ bl FUN_02215A44
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200BC1C
+ bl FUN_0200BC38
+ ldr r0, _02241860 ; =0x04000540
+ mov r1, #1
+ str r1, [r0]
+_02241854:
+ ldr r1, [r4, #0x30]
+ mov r0, #0x18
+ bl FUN_020335F0
+ pop {r4, pc}
+ nop
+_02241860: .word 0x04000540
+
+ thumb_func_start MOD12_02241864
+MOD12_02241864: ; 0x02241864
+ push {r3, r4, r5, lr}
+ sub sp, #0xa8
+ add r4, r0, #0
+ bl FUN_0201E6D8
+ ldr r5, _022419BC ; =0x0224656C
+ add r3, sp, #0x2c
+ mov r2, #5
+_02241874:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02241874
+ add r0, sp, #0x2c
+ 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, _022419C0 ; =0x022464E4
+ add r3, sp, #0x1c
+ 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, _022419C4 ; =0x022465C0
+ add r3, sp, #0x54
+ mov r2, #0xa
+_022418D4:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022418D4
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ add r2, sp, #0x54
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #2
+ add r2, sp, #0x70
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #2
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #3
+ add r2, sp, #0x8c
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020179E0
+ mov r1, #3
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ ldr r1, _022419C8 ; =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, _022419CC ; =0x02246530
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #4
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #4
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add sp, #0xa8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022419BC: .word 0x0224656C
+_022419C0: .word 0x022464E4
+_022419C4: .word 0x022465C0
+_022419C8: .word 0x04000008
+_022419CC: .word 0x02246530
+
+ thumb_func_start MOD12_022419D0
+MOD12_022419D0: ; 0x022419D0
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ add r1, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0x34
+ mov r2, #1
+ mov r3, #2
+ bl FUN_02019064
+ mov r2, #1
+ add r1, r4, #0
+ str r2, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x8b
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x30]
+ add r1, #0x44
+ mov r3, #6
+ bl FUN_02019064
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0xa3
+ str r0, [sp, #0x10]
+ add r1, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0x54
+ mov r2, #1
+ mov r3, #6
+ bl FUN_02019064
+ mov r0, #9
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0xbb
+ str r0, [sp, #0x10]
+ add r1, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0x64
+ mov r2, #1
+ mov r3, #6
+ bl FUN_02019064
+ mov r1, #0xd
+ str r1, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0xd3
+ str r0, [sp, #0x10]
+ add r1, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0x74
+ mov r2, #1
+ mov r3, #6
+ bl FUN_02019064
+ mov r2, #1
+ add r1, r4, #0
+ str r2, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0xeb
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x30]
+ add r1, #0x84
+ mov r3, #0x10
+ bl FUN_02019064
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ add r0, #0xf6
+ str r0, [sp, #0x10]
+ add r1, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0x94
+ mov r2, #1
+ mov r3, #0x10
+ bl FUN_02019064
+ mov r0, #9
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _02241B04 ; =0x0000011B
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x30]
+ add r1, #0xa4
+ mov r2, #1
+ mov r3, #0x10
+ bl FUN_02019064
+ mov r1, #0xd
+ str r1, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ ldr r0, _02241B08 ; =0x00000133
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x30]
+ add r4, #0xb4
+ add r1, r4, #0
+ mov r2, #1
+ mov r3, #0x10
+ bl FUN_02019064
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+_02241B04: .word 0x0000011B
+_02241B08: .word 0x00000133
+
+ thumb_func_start MOD12_02241B0C
+MOD12_02241B0C: ; 0x02241B0C
+ push {r3, r4, r5, lr}
+ ldr r3, _02241B44 ; =0x021064B8
+ mov r0, #2
+ mov r1, #0
+ ldr r3, [r3]
+ lsl r0, r0, #0xe
+ add r2, r1, #0
+ blx r3
+ ldr r3, _02241B48 ; =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 _02241B34
+ bl ErrorHandling
+_02241B34:
+ cmp r5, #0
+ bne _02241B3C
+ bl ErrorHandling
+_02241B3C:
+ bl FUN_02012CC8
+ pop {r3, r4, r5, pc}
+ nop
+_02241B44: .word 0x021064B8
+_02241B48: .word 0x021064C0
+
+ thumb_func_start MOD12_02241B4C
+MOD12_02241B4C: ; 0x02241B4C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _02241B5A
+ bl ErrorHandling
+_02241B5A:
+ mov r1, #0xf3
+ mov r5, #0
+ mov r0, #3
+ lsl r1, r1, #2
+_02241B62:
+ sub r3, r0, r5
+ add r2, r4, r5
+ add r5, r5, #1
+ strb r3, [r2, r1]
+ cmp r5, #4
+ blt _02241B62
+ add r0, r4, #0
+ bl MOD12_02243A20
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02241B78
+MOD12_02241B78: ; 0x02241B78
+ ldr r3, _02241B7C ; =MOD12_0224278C
+ bx r3
+ .align 2, 0
+_02241B7C: .word MOD12_0224278C
+
+ thumb_func_start MOD12_02241B80
+MOD12_02241B80: ; 0x02241B80
+ ldr r3, _02241B84 ; =MOD12_02242A6C
+ bx r3
+ .align 2, 0
+_02241B84: .word MOD12_02242A6C
+
+ thumb_func_start MOD12_02241B88
+MOD12_02241B88: ; 0x02241B88
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_02241B8C
+MOD12_02241B8C: ; 0x02241B8C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_02241B90
+MOD12_02241B90: ; 0x02241B90
+ ldr r3, _02241B94 ; =MOD12_022426BC
+ bx r3
+ .align 2, 0
+_02241B94: .word MOD12_022426BC
+
+ thumb_func_start MOD12_02241B98
+MOD12_02241B98: ; 0x02241B98
+ ldr r3, _02241B9C ; =MOD12_02242A18
+ bx r3
+ .align 2, 0
+_02241B9C: .word MOD12_02242A18
+
+ thumb_func_start MOD12_02241BA0
+MOD12_02241BA0: ; 0x02241BA0
+ 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, #0x18
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x30]
+ mov r0, #0x2d
+ mov r1, #0x12
+ mov r3, #4
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x30]
+ mov r0, #0x2d
+ mov r1, #0x13
+ mov r3, #4
+ bl FUN_020068C8
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ add r4, #0xd0
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #0x2d
+ mov r2, #0x21
+ mov r3, #0x18
+ bl FUN_020030E8
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02241BF8
+MOD12_02241BF8: ; 0x02241BF8
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_02241BFC
+MOD12_02241BFC: ; 0x02241BFC
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ ldrh r1, [r7]
+ add r4, r0, #0
+ cmp r1, #0
+ beq _02241C12
+ cmp r1, #1
+ beq _02241CA0
+ cmp r1, #2
+ beq _02241CBE
+ b _02241CE0
+_02241C12:
+ bl MOD12_022436D0
+ mov r0, #0x13
+ ldr r2, [r4]
+ mov r5, #0
+ lsl r0, r0, #4
+_02241C1E:
+ ldrb r1, [r2, r0]
+ cmp r1, #0
+ beq _02241C2C
+ add r5, r5, #1
+ add r2, #0xc
+ cmp r5, #4
+ blt _02241C1E
+_02241C2C:
+ cmp r5, #4
+ bne _02241C34
+ bl ErrorHandling
+_02241C34:
+ ldr r0, _02241CE8 ; =0x00000438
+ ldr r1, _02241CEC ; =0x00000439
+ strb r5, [r4, r0]
+ mov r5, #0
+ sub r0, #0x67
+_02241C3E:
+ add r3, r4, r5
+ ldrb r2, [r3, r0]
+ add r5, r5, #1
+ cmp r5, #4
+ strb r2, [r3, r1]
+ blt _02241C3E
+ mov r3, #0
+ add r1, r3, #0
+ add r2, r4, #0
+_02241C50:
+ ldr r0, [r4]
+ mov r5, #0x4a
+ add r0, r0, r1
+ lsl r5, r5, #2
+ ldrh r6, [r0, r5]
+ mov r5, #0xe7
+ lsl r5, r5, #2
+ strh r6, [r2, r5]
+ ldr r5, _02241CF0 ; =0x0000012A
+ add r3, r3, #1
+ ldrh r6, [r0, r5]
+ ldr r5, _02241CF4 ; =0x0000039E
+ add r1, #0xc
+ strh r6, [r2, r5]
+ mov r5, #0x4b
+ lsl r5, r5, #2
+ ldrh r6, [r0, r5]
+ mov r5, #0x3a
+ lsl r5, r5, #4
+ strh r6, [r2, r5]
+ ldr r5, _02241CF8 ; =0x0000012E
+ ldrh r6, [r0, r5]
+ ldr r5, _02241CFC ; =0x000003A2
+ strh r6, [r2, r5]
+ mov r5, #0x13
+ lsl r5, r5, #4
+ ldrh r6, [r0, r5]
+ mov r5, #0xe9
+ lsl r5, r5, #2
+ strh r6, [r2, r5]
+ ldr r5, _02241D00 ; =0x00000132
+ ldrh r5, [r0, r5]
+ ldr r0, _02241D04 ; =0x000003A6
+ strh r5, [r2, r0]
+ add r2, #0xc
+ cmp r3, #4
+ blt _02241C50
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+_02241CA0:
+ ldr r0, _02241D08 ; =0x0000085C
+ mov r3, #0xe7
+ lsl r3, r3, #2
+ add r0, r4, r0
+ add r1, r4, #0
+ mov r2, #1
+ add r3, r4, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02241CE4
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _02241CE4
+_02241CBE:
+ ldr r0, _02241D08 ; =0x0000085C
+ ldr r3, [r4]
+ add r0, r4, r0
+ ldr r4, _02241D0C ; =0x00000127
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02241CE4
+ ldrh r0, [r7]
+ add r0, r0, #1
+ strh r0, [r7]
+ b _02241CE4
+_02241CE0:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02241CE4:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02241CE8: .word 0x00000438
+_02241CEC: .word 0x00000439
+_02241CF0: .word 0x0000012A
+_02241CF4: .word 0x0000039E
+_02241CF8: .word 0x0000012E
+_02241CFC: .word 0x000003A2
+_02241D00: .word 0x00000132
+_02241D04: .word 0x000003A6
+_02241D08: .word 0x0000085C
+_02241D0C: .word 0x00000127
+
+ thumb_func_start MOD12_02241D10
+MOD12_02241D10: ; 0x02241D10
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _02241D22
+ cmp r0, #1
+ beq _02241D5C
+ b _02241D7E
+_02241D22:
+ ldr r3, _02241D88 ; =0x00000445
+ mov r1, #0
+ strb r1, [r5, r3]
+ add r0, r3, #2
+ strb r1, [r5, r0]
+ add r0, r3, #1
+ strb r1, [r5, r0]
+ add r0, r3, #0
+ sub r0, #0x79
+ ldrb r1, [r5, r0]
+ sub r0, r3, #7
+ mov r2, #5
+ strb r1, [r5, r0]
+ sub r0, r3, #1
+ mov r1, #1
+ strb r1, [r5, r0]
+ ldr r0, _02241D8C ; =0x0000085C
+ sub r3, #0xf
+ add r0, r5, r0
+ add r1, r5, #0
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02241D82
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02241D82
+_02241D5C:
+ ldr r0, _02241D8C ; =0x0000085C
+ ldr r3, [r5]
+ add r0, r5, r0
+ ldr r5, _02241D90 ; =0x00000127
+ sub r2, r5, #4
+ ldrb r1, [r3, r5]
+ sub r5, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r5]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02241D82
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02241D82
+_02241D7E:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02241D82:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02241D88: .word 0x00000445
+_02241D8C: .word 0x0000085C
+_02241D90: .word 0x00000127
+
+ thumb_func_start MOD12_02241D94
+MOD12_02241D94: ; 0x02241D94
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _02241DA6
+ cmp r0, #1
+ beq _02241DC4
+ b _02241DE6
+_02241DA6:
+ ldr r0, _02241DF0 ; =0x0000085C
+ mov r3, #0xe7
+ lsl r3, r3, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #6
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02241DEA
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02241DEA
+_02241DC4:
+ ldr r0, _02241DF0 ; =0x0000085C
+ ldr r3, [r5]
+ add r0, r5, r0
+ ldr r5, _02241DF4 ; =0x00000127
+ sub r2, r5, #4
+ ldrb r1, [r3, r5]
+ sub r5, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r5]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02241DEA
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02241DEA
+_02241DE6:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02241DEA:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02241DF0: .word 0x0000085C
+_02241DF4: .word 0x00000127
+
+ thumb_func_start MOD12_02241DF8
+MOD12_02241DF8: ; 0x02241DF8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _02241E0E
+ cmp r0, #1
+ beq _02241E40
+ cmp r0, #2
+ beq _02241E62
+ b _02241E74
+_02241E0E:
+ ldr r3, _02241E7C ; =0x00000445
+ mov r0, #0
+ strb r0, [r5, r3]
+ mov r1, #1
+ add r0, r3, #2
+ strb r1, [r5, r0]
+ add r0, r3, #1
+ strb r1, [r5, r0]
+ sub r0, r3, #1
+ mov r1, #6
+ strb r1, [r5, r0]
+ ldr r0, _02241E80 ; =0x0000085C
+ sub r3, #0xf
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #5
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02241E78
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02241E78
+_02241E40:
+ ldr r0, _02241E80 ; =0x0000085C
+ ldr r3, [r5]
+ add r0, r5, r0
+ ldr r5, _02241E84 ; =0x00000127
+ sub r2, r5, #4
+ ldrb r1, [r3, r5]
+ sub r5, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r5]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02241E78
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02241E78
+_02241E62:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ cmp r0, #0x3c
+ ble _02241E78
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02241E78
+_02241E74:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02241E78:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02241E7C: .word 0x00000445
+_02241E80: .word 0x0000085C
+_02241E84: .word 0x00000127
+
+ thumb_func_start MOD12_02241E88
+MOD12_02241E88: ; 0x02241E88
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r3, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #4
+ bhi _02241F78
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02241EA0: ; jump table
+ .short _02241EAA - _02241EA0 - 2 ; case 0
+ .short _02241F00 - _02241EA0 - 2 ; case 1
+ .short _02241F22 - _02241EA0 - 2 ; case 2
+ .short _02241F44 - _02241EA0 - 2 ; case 3
+ .short _02241F66 - _02241EA0 - 2 ; case 4
+_02241EAA:
+ ldr r1, [r3]
+ ldr r0, _02241F80 ; =0x00000121
+ ldrb r0, [r1, r0]
+ cmp r0, #4
+ bhi _02241ECA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02241EC0: ; jump table
+ .short _02241ECE - _02241EC0 - 2 ; case 0
+ .short _02241ECE - _02241EC0 - 2 ; case 1
+ .short _02241ECE - _02241EC0 - 2 ; case 2
+ .short _02241ECE - _02241EC0 - 2 ; case 3
+ .short _02241ECE - _02241EC0 - 2 ; case 4
+_02241ECA:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02241ECE:
+ ldr r5, _02241F84 ; =0x00000445
+ mov r0, #0
+ strb r0, [r3, r5]
+ mov r1, #1
+ add r0, r5, #2
+ strb r1, [r3, r0]
+ add r0, r5, #1
+ strb r1, [r3, r0]
+ sub r0, r5, #1
+ mov r1, #2
+ strb r1, [r3, r0]
+ ldr r0, _02241F88 ; =0x0000085C
+ sub r5, #0xf
+ add r0, r3, r0
+ add r1, r3, #0
+ mov r2, #5
+ add r3, r3, r5
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02241F7C
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02241F7C
+_02241F00:
+ ldr r0, _02241F88 ; =0x0000085C
+ ldr r5, [r3]
+ add r0, r3, r0
+ ldr r3, _02241F8C ; =0x00000127
+ sub r2, r3, #4
+ ldrb r1, [r5, r3]
+ sub r3, #0xb
+ ldrb r2, [r5, r2]
+ ldrb r3, [r5, r3]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02241F7C
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02241F7C
+_02241F22:
+ ldr r5, _02241F90 ; =0x0000043D
+ mov r0, #0
+ strb r0, [r3, r5]
+ ldr r0, _02241F88 ; =0x0000085C
+ sub r5, r5, #7
+ add r0, r3, r0
+ add r1, r3, #0
+ mov r2, #9
+ add r3, r3, r5
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02241F7C
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02241F7C
+_02241F44:
+ ldr r0, _02241F88 ; =0x0000085C
+ ldr r5, [r3]
+ add r0, r3, r0
+ ldr r3, _02241F8C ; =0x00000127
+ sub r2, r3, #4
+ ldrb r1, [r5, r3]
+ sub r3, #0xb
+ ldrb r2, [r5, r2]
+ ldrb r3, [r5, r3]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02241F7C
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02241F7C
+_02241F66:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ cmp r0, #0x3c
+ ble _02241F7C
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02241F7C
+_02241F78:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02241F7C:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02241F80: .word 0x00000121
+_02241F84: .word 0x00000445
+_02241F88: .word 0x0000085C
+_02241F8C: .word 0x00000127
+_02241F90: .word 0x0000043D
+
+ thumb_func_start MOD12_02241F94
+MOD12_02241F94: ; 0x02241F94
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrh r0, [r5]
+ cmp r0, #4
+ bhi _022420A0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02241FAC: ; jump table
+ .short _02241FB6 - _02241FAC - 2 ; case 0
+ .short _02242028 - _02241FAC - 2 ; case 1
+ .short _0224204A - _02241FAC - 2 ; case 2
+ .short _0224206C - _02241FAC - 2 ; case 3
+ .short _0224208E - _02241FAC - 2 ; case 4
+_02241FB6:
+ ldr r1, [r4]
+ ldr r0, _022420A8 ; =0x00000121
+ ldrb r0, [r1, r0]
+ cmp r0, #6
+ bhi _02241FDA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02241FCC: ; jump table
+ .short _02241FDA - _02241FCC - 2 ; case 0
+ .short _02241FDE - _02241FCC - 2 ; case 1
+ .short _02241FDE - _02241FCC - 2 ; case 2
+ .short _02241FDA - _02241FCC - 2 ; case 3
+ .short _02241FDA - _02241FCC - 2 ; case 4
+ .short _02241FDE - _02241FCC - 2 ; case 5
+ .short _02241FDE - _02241FCC - 2 ; case 6
+_02241FDA:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02241FDE:
+ ldr r1, _022420AC ; =0x00000445
+ mov r0, #0
+ strb r0, [r4, r1]
+ mov r2, #1
+ add r0, r1, #2
+ strb r2, [r4, r0]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ sub r0, #0x79
+ ldrb r2, [r4, r0]
+ sub r0, r1, #7
+ sub r1, #0x79
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r1]
+ bl FUN_020832DC
+ ldr r3, _022420B0 ; =0x00000442
+ add r0, r0, #1
+ strb r0, [r4, r3]
+ add r0, r3, #2
+ mov r1, #3
+ strb r1, [r4, r0]
+ ldr r0, _022420B4 ; =0x0000085C
+ sub r3, #0xc
+ add r0, r4, r0
+ add r1, r4, #0
+ mov r2, #5
+ add r3, r4, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _022420A4
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _022420A4
+_02242028:
+ ldr r0, _022420B4 ; =0x0000085C
+ ldr r3, [r4]
+ add r0, r4, r0
+ ldr r4, _022420B8 ; =0x00000127
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _022420A4
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _022420A4
+_0224204A:
+ ldr r3, _022420BC ; =0x0000043D
+ mov r0, #1
+ strb r0, [r4, r3]
+ ldr r0, _022420B4 ; =0x0000085C
+ sub r3, r3, #7
+ add r0, r4, r0
+ add r1, r4, #0
+ mov r2, #9
+ add r3, r4, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _022420A4
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _022420A4
+_0224206C:
+ ldr r0, _022420B4 ; =0x0000085C
+ ldr r3, [r4]
+ add r0, r4, r0
+ ldr r4, _022420B8 ; =0x00000127
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _022420A4
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _022420A4
+_0224208E:
+ ldr r0, [r5, #4]
+ add r0, r0, #1
+ str r0, [r5, #4]
+ cmp r0, #0x5a
+ ble _022420A4
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _022420A4
+_022420A0:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022420A4:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022420A8: .word 0x00000121
+_022420AC: .word 0x00000445
+_022420B0: .word 0x00000442
+_022420B4: .word 0x0000085C
+_022420B8: .word 0x00000127
+_022420BC: .word 0x0000043D
+
+ thumb_func_start MOD12_022420C0
+MOD12_022420C0: ; 0x022420C0
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrh r0, [r5]
+ cmp r0, #4
+ bls _022420CE
+ b _022421D2
+_022420CE:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022420DA: ; jump table
+ .short _022420E4 - _022420DA - 2 ; case 0
+ .short _0224215A - _022420DA - 2 ; case 1
+ .short _0224217C - _022420DA - 2 ; case 2
+ .short _0224219E - _022420DA - 2 ; case 3
+ .short _022421C0 - _022420DA - 2 ; case 4
+_022420E4:
+ ldr r1, [r4]
+ ldr r0, _022421DC ; =0x00000121
+ ldrb r0, [r1, r0]
+ cmp r0, #8
+ bhi _0224210C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022420FA: ; jump table
+ .short _02242110 - _022420FA - 2 ; case 0
+ .short _0224210C - _022420FA - 2 ; case 1
+ .short _02242110 - _022420FA - 2 ; case 2
+ .short _0224210C - _022420FA - 2 ; case 3
+ .short _0224210C - _022420FA - 2 ; case 4
+ .short _0224210C - _022420FA - 2 ; case 5
+ .short _0224210C - _022420FA - 2 ; case 6
+ .short _02242110 - _022420FA - 2 ; case 7
+ .short _02242110 - _022420FA - 2 ; case 8
+_0224210C:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02242110:
+ ldr r1, _022421E0 ; =0x00000445
+ mov r0, #0
+ strb r0, [r4, r1]
+ mov r2, #1
+ add r0, r1, #2
+ strb r2, [r4, r0]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ sub r0, #0x79
+ ldrb r2, [r4, r0]
+ sub r0, r1, #7
+ sub r1, #0x79
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r1]
+ bl FUN_020832DC
+ ldr r3, _022421E4 ; =0x00000442
+ add r0, r0, #1
+ strb r0, [r4, r3]
+ add r0, r3, #2
+ mov r1, #4
+ strb r1, [r4, r0]
+ ldr r0, _022421E8 ; =0x0000085C
+ sub r3, #0xc
+ add r0, r4, r0
+ add r1, r4, #0
+ mov r2, #5
+ add r3, r4, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _022421D6
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _022421D6
+_0224215A:
+ ldr r0, _022421E8 ; =0x0000085C
+ ldr r3, [r4]
+ add r0, r4, r0
+ ldr r4, _022421EC ; =0x00000127
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _022421D6
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _022421D6
+_0224217C:
+ ldr r3, _022421F0 ; =0x0000043D
+ mov r0, #2
+ strb r0, [r4, r3]
+ ldr r0, _022421E8 ; =0x0000085C
+ sub r3, r3, #7
+ add r0, r4, r0
+ add r1, r4, #0
+ mov r2, #9
+ add r3, r4, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _022421D6
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _022421D6
+_0224219E:
+ ldr r0, _022421E8 ; =0x0000085C
+ ldr r3, [r4]
+ add r0, r4, r0
+ ldr r4, _022421EC ; =0x00000127
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _022421D6
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _022421D6
+_022421C0:
+ ldr r0, [r5, #4]
+ add r0, r0, #1
+ str r0, [r5, #4]
+ cmp r0, #0xf
+ ble _022421D6
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _022421D6
+_022421D2:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022421D6:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022421DC: .word 0x00000121
+_022421E0: .word 0x00000445
+_022421E4: .word 0x00000442
+_022421E8: .word 0x0000085C
+_022421EC: .word 0x00000127
+_022421F0: .word 0x0000043D
+
+ thumb_func_start MOD12_022421F4
+MOD12_022421F4: ; 0x022421F4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _02242206
+ cmp r0, #1
+ beq _02242222
+ b _02242244
+_02242206:
+ ldr r0, _0224224C ; =0x0000085C
+ ldr r3, _02242250 ; =0x00000436
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #7
+ add r3, r5, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02242248
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02242248
+_02242222:
+ ldr r0, _0224224C ; =0x0000085C
+ ldr r3, [r5]
+ add r0, r5, r0
+ ldr r5, _02242254 ; =0x00000127
+ sub r2, r5, #4
+ ldrb r1, [r3, r5]
+ sub r5, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r5]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02242248
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02242248
+_02242244:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02242248:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224224C: .word 0x0000085C
+_02242250: .word 0x00000436
+_02242254: .word 0x00000127
+
+ thumb_func_start MOD12_02242258
+MOD12_02242258: ; 0x02242258
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrh r0, [r5]
+ cmp r0, #3
+ bhi _02242320
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02242270: ; jump table
+ .short _02242278 - _02242270 - 2 ; case 0
+ .short _022422C0 - _02242270 - 2 ; case 1
+ .short _022422E2 - _02242270 - 2 ; case 2
+ .short _022422FE - _02242270 - 2 ; case 3
+_02242278:
+ ldr r1, _02242328 ; =0x00000445
+ mov r0, #0
+ strb r0, [r4, r1]
+ mov r2, #1
+ add r0, r1, #2
+ strb r2, [r4, r0]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ sub r0, #0xd
+ ldrb r2, [r4, r0]
+ sub r0, r1, #7
+ sub r1, #0xd
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r1]
+ bl FUN_020832DC
+ ldr r3, _0224232C ; =0x00000442
+ add r0, r0, #1
+ strb r0, [r4, r3]
+ add r0, r3, #2
+ mov r2, #5
+ strb r2, [r4, r0]
+ ldr r0, _02242330 ; =0x0000085C
+ sub r3, #0xc
+ add r0, r4, r0
+ add r1, r4, #0
+ add r3, r4, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02242324
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _02242324
+_022422C0:
+ ldr r0, _02242330 ; =0x0000085C
+ ldr r3, [r4]
+ add r0, r4, r0
+ ldr r4, _02242334 ; =0x00000127
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02242324
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _02242324
+_022422E2:
+ ldr r0, _02242330 ; =0x0000085C
+ ldr r3, _02242338 ; =0x00000436
+ add r0, r4, r0
+ add r1, r4, #0
+ mov r2, #8
+ add r3, r4, r3
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02242324
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _02242324
+_022422FE:
+ ldr r0, _02242330 ; =0x0000085C
+ ldr r3, [r4]
+ add r0, r4, r0
+ ldr r4, _02242334 ; =0x00000127
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02242324
+ ldrh r0, [r5]
+ add r0, r0, #1
+ strh r0, [r5]
+ b _02242324
+_02242320:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02242324:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02242328: .word 0x00000445
+_0224232C: .word 0x00000442
+_02242330: .word 0x0000085C
+_02242334: .word 0x00000127
+_02242338: .word 0x00000436
+
+ thumb_func_start MOD12_0224233C
+MOD12_0224233C: ; 0x0224233C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r3, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _0224234E
+ cmp r0, #1
+ beq _02242386
+ b _022423A8
+_0224234E:
+ ldr r5, _022423B0 ; =0x00000445
+ mov r0, #0
+ strb r0, [r3, r5]
+ add r1, r5, #2
+ strb r0, [r3, r1]
+ add r1, r5, #1
+ strb r0, [r3, r1]
+ add r1, r5, #0
+ sub r1, #0x79
+ ldrb r2, [r3, r1]
+ sub r1, r5, #7
+ strb r2, [r3, r1]
+ sub r1, r5, #1
+ strb r0, [r3, r1]
+ ldr r0, _022423B4 ; =0x0000085C
+ sub r5, #0xf
+ add r0, r3, r0
+ add r1, r3, #0
+ mov r2, #5
+ add r3, r3, r5
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _022423AC
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _022423AC
+_02242386:
+ ldr r0, _022423B4 ; =0x0000085C
+ ldr r5, [r3]
+ add r0, r3, r0
+ ldr r3, _022423B8 ; =0x00000127
+ sub r2, r3, #4
+ ldrb r1, [r5, r3]
+ sub r3, #0xb
+ ldrb r2, [r5, r2]
+ ldrb r3, [r5, r3]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _022423AC
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _022423AC
+_022423A8:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022423AC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022423B0: .word 0x00000445
+_022423B4: .word 0x0000085C
+_022423B8: .word 0x00000127
+
+ thumb_func_start MOD12_022423BC
+MOD12_022423BC: ; 0x022423BC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _022423D2
+ cmp r0, #1
+ beq _022423EC
+ cmp r0, #2
+ beq _0224240E
+ b _02242428
+_022423D2:
+ ldr r0, _0224244C ; =0x0000085C
+ add r1, r2, #0
+ add r0, r2, r0
+ mov r2, #0xa
+ mov r3, #0
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02242446
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02242446
+_022423EC:
+ ldr r0, _0224244C ; =0x0000085C
+ ldr r3, [r2]
+ ldr r5, _02242450 ; =0x00000127
+ add r0, r2, r0
+ sub r2, r5, #4
+ ldrb r1, [r3, r5]
+ sub r5, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r5]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02242446
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02242446
+_0224240E:
+ ldr r0, _0224244C ; =0x0000085C
+ add r1, r2, #0
+ add r0, r2, r0
+ mov r2, #4
+ mov r3, #0
+ bl MOD12_02241050
+ cmp r0, #1
+ bne _02242446
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ b _02242446
+_02242428:
+ ldr r0, _0224244C ; =0x0000085C
+ ldr r3, [r2]
+ ldr r4, _02242450 ; =0x00000127
+ add r0, r2, r0
+ sub r2, r4, #4
+ ldrb r1, [r3, r4]
+ sub r4, #0xb
+ ldrb r2, [r3, r2]
+ ldrb r3, [r3, r4]
+ bl MOD12_022411F4
+ cmp r0, #1
+ bne _02242446
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+_02242446:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0224244C: .word 0x0000085C
+_02242450: .word 0x00000127
+
+ thumb_func_start MOD12_02242454
+MOD12_02242454: ; 0x02242454
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r7, r5, #0
+ mov r4, #0
+ add r7, #0xd8
+ b _022424C6
+_02242462:
+ mov r0, #0xf3
+ add r1, r5, r4
+ lsl r0, r0, #2
+ ldrb r6, [r1, r0]
+ lsl r0, r6, #4
+ add r0, r5, r0
+ add r0, #0xd8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0224247A
+ bl ErrorHandling
+_0224247A:
+ mov r1, #0x32
+ mov r0, #0x18
+ lsl r1, r1, #6
+ bl FUN_02016998
+ lsl r2, r6, #4
+ add r1, r5, r2
+ add r1, #0xd8
+ str r0, [r1]
+ add r0, r7, r2
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #6
+ ldr r1, _022424D0 ; =0x02246634
+ mul r0, r4
+ ldrsh r1, [r1, r0]
+ lsl r2, r6, #2
+ str r1, [sp, #8]
+ ldr r1, _022424D0 ; =0x02246634
+ add r0, r1, r0
+ mov r1, #2
+ ldrsh r1, [r0, r1]
+ str r1, [sp, #0xc]
+ mov r1, #4
+ ldrsh r0, [r0, r1]
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r3, [r5, #0x10]
+ ldr r0, [r5, #0x14]
+ ldr r2, [r3, r2]
+ mov r3, #2
+ bl FUN_02082E64
+ lsl r1, r6, #2
+ add r1, r5, r1
+ str r0, [r1, #0x18]
+ add r4, r4, #1
+_022424C6:
+ cmp r4, #4
+ blt _02242462
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022424D0: .word 0x02246634
+
+ thumb_func_start MOD12_022424D4
+MOD12_022424D4: ; 0x022424D4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r6, #0
+ add r4, r5, #0
+ add r7, r6, #0
+_022424DE:
+ ldr r0, [r5, #8]
+ bl FUN_02007534
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ add r0, #0xc8
+ add r6, r6, #1
+ str r7, [r0]
+ add r5, r5, #4
+ add r4, #0x10
+ cmp r6, #4
+ blt _022424DE
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD12_02242500
+MOD12_02242500: ; 0x02242500
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r1, #0
+ add r4, r0, #0
+ add r5, r2, #0
+ cmp r6, #0
+ beq _02242516
+ cmp r5, #0
+ bne _02242516
+ bl ErrorHandling
+_02242516:
+ cmp r6, #3
+ bhi _022425EC
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02242526: ; jump table
+ .short _022425F0 - _02242526 - 2 ; case 0
+ .short _0224252E - _02242526 - 2 ; case 1
+ .short _02242552 - _02242526 - 2 ; case 2
+ .short _02242596 - _02242526 - 2 ; case 3
+_0224252E:
+ mov r2, #0x12
+ lsl r2, r2, #4
+ ldr r3, [r4]
+ add r1, r2, #1
+ ldrb r0, [r3, r2]
+ add r2, #0x51
+ ldrb r1, [r3, r1]
+ ldrb r2, [r3, r2]
+ bl FUN_02083228
+ add r4, #0xc8
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0200B278
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_02242552:
+ ldrb r6, [r5]
+ ldr r3, [r4]
+ mov r0, #1
+ lsl r2, r6, #2
+ str r0, [sp]
+ mov r0, #2
+ add r2, r3, r2
+ add r6, r3, r6
+ mov r3, #0x42
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r3, r3, #2
+ add r0, #0xc8
+ add r2, #0xe8
+ ldrb r3, [r6, r3]
+ ldr r0, [r0]
+ ldr r2, [r2]
+ mov r1, #0
+ bl FUN_0200ABB4
+ ldrb r0, [r5]
+ ldr r1, [r4, #0x10]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r4, #0xc8
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_02242596:
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldrb r2, [r5, #4]
+ ldr r0, [r0]
+ bl FUN_0200AD38
+ ldrb r6, [r5]
+ ldr r3, [r4]
+ mov r1, #1
+ lsl r2, r6, #2
+ add r2, r3, r2
+ add r6, r3, r6
+ mov r3, #0x42
+ str r1, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r3, r3, #2
+ add r0, #0xc8
+ add r2, #0xe8
+ ldrb r3, [r6, r3]
+ ldr r0, [r0]
+ ldr r2, [r2]
+ bl FUN_0200ABB4
+ ldrb r0, [r5]
+ ldr r1, [r4, #0x10]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_020690E4
+ add r4, #0xc8
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r1, #2
+ bl FUN_0200ACF8
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_022425EC:
+ bl ErrorHandling
+_022425F0:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD12_022425F4
+MOD12_022425F4: ; 0x022425F4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r6, r1, #0
+ ldr r1, [r5]
+ ldr r0, _02242670 ; =0x00000171
+ add r7, r2, #0
+ ldrb r0, [r1, r0]
+ str r3, [sp, #0xc]
+ cmp r0, #0
+ bne _02242616
+ ldr r0, _02242674 ; =0x00001988
+ ldr r0, [r1, r0]
+ bl FUN_02024FF4
+ add r4, r0, #0
+ b _02242618
+_02242616:
+ mov r4, #1
+_02242618:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x28]
+ add r0, r5, #0
+ bl MOD12_02242500
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xc8
+ add r1, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ add r0, #0x34
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ add r2, r5, #0
+ add r0, r5, #0
+ str r3, [sp, #8]
+ add r2, #0xcc
+ ldr r2, [r2]
+ add r0, #0x34
+ mov r1, #1
+ bl FUN_0201BD84
+ mov r1, #0xe6
+ lsl r1, r1, #2
+ strb r0, [r5, r1]
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02242670: .word 0x00000171
+_02242674: .word 0x00001988
+
+ thumb_func_start MOD12_02242678
+MOD12_02242678: ; 0x02242678
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #7
+ blo _0224268A
+ bl ErrorHandling
+_0224268A:
+ lsl r3, r4, #2
+ ldr r2, _022426A4 ; =0x0224664C
+ add r0, r5, #0
+ ldr r4, _022426A8 ; =0x0224664E
+ ldrh r2, [r2, r3]
+ str r6, [sp]
+ add r5, #0xc4
+ ldrb r3, [r4, r3]
+ ldr r1, [r5]
+ bl MOD12_022425F4
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_022426A4: .word 0x0224664C
+_022426A8: .word 0x0224664E
+
+ thumb_func_start MOD12_022426AC
+MOD12_022426AC: ; 0x022426AC
+ mov r1, #0xe6
+ lsl r1, r1, #2
+ ldr r3, _022426B8 ; =0x0201BD71
+ ldrb r0, [r0, r1]
+ bx r3
+ nop
+_022426B8: .word 0x0201BD71
+
+ thumb_func_start MOD12_022426BC
+MOD12_022426BC: ; 0x022426BC
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x30]
+ mov r0, #0x2d
+ mov r1, #0x16
+ 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, #0x18
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x30]
+ mov r0, #0x2d
+ mov r1, #0x15
+ mov r3, #3
+ bl FUN_020068C8
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_02018744
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ mov r1, #0x2d
+ mov r2, #0x22
+ mov r3, #0x18
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xd0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ mov r1, #0x2d
+ mov r2, #0x23
+ mov r3, #0x18
+ bl FUN_020030E8
+ ldr r1, [r5]
+ ldr r0, _02242784 ; =0x00001988
+ ldr r0, [r1, r0]
+ bl FUN_02025084
+ add r4, r0, #0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r1, #1
+ ldr r0, [r5, #0x30]
+ add r2, r1, #0
+ mov r3, #0xf
+ bl FUN_0200CD68
+ add r0, r4, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xe0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ mov r1, #0x26
+ mov r3, #0x18
+ bl FUN_020030E8
+ ldr r0, [r5, #0x30]
+ mov r1, #2
+ bl FUN_02018744
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_02242784: .word 0x00001988
+
+ thumb_func_start MOD12_02242788
+MOD12_02242788: ; 0x02242788
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_0224278C
+MOD12_0224278C: ; 0x0224278C
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ ldr r0, _022427D4 ; =0x000080EA
+ add r2, r4, #0
+ str r0, [sp]
+ sub r3, r0, #1
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ add r2, #0xd0
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x2c]
+ ldr r2, [r2]
+ bl MOD12_022316F8
+ ldr r0, _022427D4 ; =0x000080EA
+ mov r1, #0xc8
+ str r0, [sp]
+ sub r3, r0, #1
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r1, [sp, #0x10]
+ mov r0, #3
+ str r0, [sp, #0x14]
+ ldr r0, _022427D8 ; =0x0000C350
+ add r1, #0x50
+ str r0, [sp, #0x18]
+ add r0, r4, r1
+ ldr r1, [r4, #0x28]
+ ldr r2, [r4, #0x2c]
+ bl MOD12_022317C8
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ .align 2, 0
+_022427D4: .word 0x000080EA
+_022427D8: .word 0x0000C350
+
+ thumb_func_start MOD12_022427DC
+MOD12_022427DC: ; 0x022427DC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0x46
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD12_0223185C
+ ldr r1, _02242800 ; =0x000080E9
+ str r1, [sp]
+ ldr r0, [r4, #0x2c]
+ add r2, r1, #1
+ add r3, r1, #0
+ bl MOD12_02231780
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_02242800: .word 0x000080E9
+
+ thumb_func_start MOD12_02242804
+MOD12_02242804: ; 0x02242804
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r2, [r6, #0x30]
+ mov r0, #0x2d
+ mov r1, #0x1a
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r1, #0x18
+ str r1, [sp, #0xc]
+ ldr r2, [r6, #0x30]
+ mov r0, #0x2d
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r2, [r6, #0x30]
+ mov r0, #0x2d
+ mov r1, #0x19
+ mov r3, #2
+ bl FUN_020068C8
+ ldr r0, [r6, #0x30]
+ mov r1, #1
+ bl FUN_02018744
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ mov r1, #0x2d
+ mov r2, #0x26
+ mov r3, #0x18
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xd0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ mov r1, #0x2d
+ mov r2, #0x23
+ mov r3, #0x18
+ bl FUN_020030E8
+ ldr r1, [r6]
+ ldr r0, _022429D0 ; =0x00001988
+ ldr r0, [r1, r0]
+ bl FUN_02025084
+ add r4, r0, #0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r1, #1
+ ldr r0, [r6, #0x30]
+ add r2, r1, #0
+ mov r3, #0xf
+ bl FUN_0200CD68
+ add r0, r4, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xe0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ mov r1, #0x26
+ mov r3, #0x18
+ bl FUN_020030E8
+ mov r0, #0xc
+ mov r1, #0x18
+ bl FUN_020219F4
+ add r4, r6, #0
+ add r7, r0, #0
+ mov r5, #0
+ add r4, #0x34
+_022428E6:
+ mov r0, #0xf3
+ add r1, r6, r5
+ lsl r0, r0, #2
+ ldrb r0, [r1, r0]
+ ldr r1, [r6, #0x10]
+ add r2, r7, #0
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [r1, r0]
+ mov r1, #0x76
+ bl FUN_020671BC
+ add r0, r5, #1
+ lsl r0, r0, #4
+ str r0, [sp, #0x14]
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #5
+ lsl r0, r0, #4
+ str r0, [sp, #0x18]
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _022429D4 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ add r2, r7, #0
+ add r0, r4, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _022429D4 ; =0x00010200
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r3, [r6]
+ ldr r0, [sp, #0x18]
+ add r2, r3, r2
+ add r2, #0xe8
+ mov r1, #0
+ ldr r2, [r2]
+ add r0, r4, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r5, r5, #1
+ cmp r5, #4
+ blt _022428E6
+ add r0, r7, #0
+ bl FUN_02021A20
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _022429D8 ; =0xFFFF1FFF
+ mov r5, #0x3f
+ and r1, r0
+ mov r0, #6
+ lsl r0, r0, #0xc
+ orr r0, r1
+ add r1, r2, #0
+ add r1, #0x48
+ str r0, [r2]
+ ldrh r0, [r1]
+ mov r3, #0x1f
+ bic r0, r5
+ add r4, r0, #0
+ orr r4, r3
+ mov r0, #0x20
+ orr r4, r0
+ strh r4, [r1]
+ ldrh r6, [r1]
+ ldr r4, _022429DC ; =0xFFFFC0FF
+ lsl r3, r3, #8
+ and r4, r6
+ orr r4, r3
+ lsl r3, r0, #8
+ orr r3, r4
+ strh r3, [r1]
+ add r3, r2, #0
+ add r3, #0x4a
+ ldrh r4, [r3]
+ mov r1, #0x1b
+ bic r4, r5
+ orr r1, r4
+ orr r0, r1
+ strh r0, [r3]
+ add r0, r2, #0
+ mov r3, #0xff
+ add r0, #0x40
+ strh r3, [r0]
+ add r0, r2, #0
+ mov r1, #0
+ add r0, #0x44
+ strh r1, [r0]
+ add r0, r2, #0
+ add r0, #0x42
+ strh r3, [r0]
+ add r2, #0x46
+ strh r1, [r2]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022429D0: .word 0x00001988
+_022429D4: .word 0x00010200
+_022429D8: .word 0xFFFF1FFF
+_022429DC: .word 0xFFFFC0FF
+
+ thumb_func_start MOD12_022429E0
+MOD12_022429E0: ; 0x022429E0
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r3, #0
+ mov r0, #1
+ str r3, [sp]
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ mov r1, #1
+ mov r2, #2
+ bl FUN_02003914
+ mov r3, #0
+ mov r0, #1
+ str r3, [sp]
+ lsl r0, r0, #8
+ add r4, #0xd0
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ mov r1, #3
+ mov r2, #2
+ bl FUN_02003914
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD12_02242A18
+MOD12_02242A18: ; 0x02242A18
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_02242A1C
+MOD12_02242A1C: ; 0x02242A1C
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ mov r0, #0x2e
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #4
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, _02242A68 ; =0x000080E9
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ ldr r2, [r4, #0x28]
+ ldr r3, [r4, #0x2c]
+ bl FUN_0200C0DC
+ add r0, r4, #0
+ bl MOD12_02242C38
+ add r0, r4, #0
+ bl MOD12_02242A90
+ add r0, r4, #0
+ bl MOD12_02242EE0
+ add r0, r4, #0
+ bl MOD12_02242FF8
+ add sp, #0x18
+ pop {r4, pc}
+ nop
+_02242A68: .word 0x000080E9
+
+ thumb_func_start MOD12_02242A6C
+MOD12_02242A6C: ; 0x02242A6C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD12_02242BCC
+ add r0, r4, #0
+ bl MOD12_02242F94
+ add r0, r4, #0
+ bl MOD12_022431F8
+ add r0, r4, #0
+ bl MOD12_02242C88
+ add r0, r4, #0
+ bl MOD12_02243074
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02242A90
+MOD12_02242A90: ; 0x02242A90
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ add r5, r0, #0
+ 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]
+ ldr r0, _02242BB4 ; =0x000080EB
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ ldr r2, [r5, #0x28]
+ ldr r3, [r5, #0x2c]
+ bl FUN_0200C0DC
+ bl FUN_0206B894
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02242BB8 ; =0x000080EA
+ mov r2, #0x13
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x2c]
+ bl FUN_0200C124
+ bl FUN_0206B8A0
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02242BB8 ; =0x000080EA
+ mov r2, #0x13
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x2c]
+ bl FUN_0200C13C
+ ldr r4, _02242BBC ; =0x0224669C
+ add r3, sp, #0x18
+ mov r2, #6
+_02242AF6:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02242AF6
+ ldr r0, [r4]
+ mov r7, #0
+ str r0, [r3]
+ add r6, r7, #0
+ add r4, r5, #0
+_02242B08:
+ ldr r0, [r5]
+ ldr r0, [r0, r6]
+ bl FUN_0206B6C8
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02242BB8 ; =0x000080EA
+ mov r2, #0x13
+ add r0, r7, r0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x2c]
+ bl FUN_0200C978
+ ldr r0, _02242BB8 ; =0x000080EA
+ add r2, sp, #0x18
+ add r0, r7, r0
+ str r0, [sp, #0x2c]
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x2c]
+ bl FUN_0200C154
+ mov r1, #0x4e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C5C0
+ ldr r0, [r5]
+ ldr r0, [r0, r6]
+ bl FUN_0206B87C
+ add r1, r0, #0
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r0, [r0]
+ bl FUN_020202DC
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200C5A8
+ add r7, r7, #1
+ add r6, r6, #4
+ add r4, r4, #4
+ cmp r7, #4
+ blt _02242B08
+ ldr r4, _02242BC0 ; =0x02246614
+ mov r6, #0
+ mov r7, #2
+_02242B7A:
+ mov r0, #0xf3
+ add r1, r5, r6
+ lsl r0, r0, #2
+ ldrb r0, [r1, r0]
+ ldrsh r2, [r4, r7]
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #0
+ ldrsh r1, [r4, r1]
+ bl FUN_0200C714
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _02242B7A
+ ldr r0, _02242BC4 ; =MOD12_02242C1C
+ ldr r2, _02242BC8 ; =0x0000C738
+ add r1, r5, #0
+ bl FUN_0200CA44
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02242BB4: .word 0x000080EB
+_02242BB8: .word 0x000080EA
+_02242BBC: .word 0x0224669C
+_02242BC0: .word 0x02246614
+_02242BC4: .word MOD12_02242C1C
+_02242BC8: .word 0x0000C738
+
+ thumb_func_start MOD12_02242BCC
+MOD12_02242BCC: ; 0x02242BCC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x2c]
+ ldr r1, _02242C14 ; =0x000080EA
+ bl FUN_0200C378
+ ldr r0, [r6, #0x2c]
+ ldr r1, _02242C14 ; =0x000080EA
+ bl FUN_0200C388
+ ldr r0, [r6, #0x2c]
+ ldr r1, _02242C18 ; =0x000080EB
+ bl FUN_0200C368
+ mov r7, #0x4e
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_02242BF0:
+ ldr r1, _02242C14 ; =0x000080EA
+ ldr r0, [r6, #0x2c]
+ add r1, r4, r1
+ bl FUN_0200C358
+ ldr r0, [r5, r7]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02242BF0
+ mov r0, #0x4d
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02242C14: .word 0x000080EA
+_02242C18: .word 0x000080EB
+
+ thumb_func_start MOD12_02242C1C
+MOD12_02242C1C: ; 0x02242C1C
+ push {r4, r5, r6, lr}
+ mov r6, #0x4e
+ add r5, r1, #0
+ mov r4, #0
+ lsl r6, r6, #2
+_02242C26:
+ ldr r0, [r5, r6]
+ bl FUN_0200C5A8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02242C26
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02242C38
+MOD12_02242C38: ; 0x02242C38
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02242C80 ; =0x000080EF
+ mov r2, #0x2e
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x2c]
+ mov r3, #0x51
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02242C84 ; =0x000080EC
+ mov r2, #0x2e
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x2c]
+ mov r3, #0x50
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02242C84 ; =0x000080EC
+ mov r2, #0x2e
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x2c]
+ mov r3, #0x4f
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_02242C80: .word 0x000080EF
+_02242C84: .word 0x000080EC
+
+ thumb_func_start MOD12_02242C88
+MOD12_02242C88: ; 0x02242C88
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x2c]
+ ldr r1, _02242CA8 ; =0x000080EF
+ bl FUN_0200C358
+ ldr r0, [r4, #0x2c]
+ ldr r1, _02242CAC ; =0x000080EC
+ bl FUN_0200C378
+ ldr r0, [r4, #0x2c]
+ ldr r1, _02242CAC ; =0x000080EC
+ bl FUN_0200C388
+ pop {r4, pc}
+ nop
+_02242CA8: .word 0x000080EF
+_02242CAC: .word 0x000080EC
+
+ thumb_func_start MOD12_02242CB0
+MOD12_02242CB0: ; 0x02242CB0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x18
+ mov r1, #8
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #8
+ add r6, r0, #0
+ bl MI_CpuFill8
+ str r5, [r6]
+ mov r4, #0
+_02242CCA:
+ add r0, r5, #0
+ bl MOD12_02242D3C
+ add r4, r4, #1
+ cmp r4, #8
+ blt _02242CCA
+ ldr r0, _02242CE4 ; =MOD12_02242CF8
+ ldr r2, _02242CE8 ; =0x0000C35A
+ add r1, r6, #0
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ nop
+_02242CE4: .word MOD12_02242CF8
+_02242CE8: .word 0x0000C35A
+
+ thumb_func_start MOD12_02242CEC
+MOD12_02242CEC: ; 0x02242CEC
+ ldr r1, _02242CF4 ; =0x0000127D
+ mov r2, #1
+ strb r2, [r0, r1]
+ bx lr
+ .align 2, 0
+_02242CF4: .word 0x0000127D
+
+ thumb_func_start MOD12_02242CF8
+MOD12_02242CF8: ; 0x02242CF8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r3, [r1]
+ ldr r0, _02242D38 ; =0x0000127D
+ ldrb r2, [r3, r0]
+ cmp r2, #1
+ bne _02242D14
+ add r0, r1, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+_02242D14:
+ add r0, r0, #1
+ ldrb r0, [r3, r0]
+ cmp r0, #0x30
+ bhs _02242D34
+ mov r0, #4
+ ldrsh r2, [r1, r0]
+ add r2, r2, #1
+ strh r2, [r1, #4]
+ ldrsh r0, [r1, r0]
+ cmp r0, #6
+ ble _02242D34
+ mov r0, #0
+ strh r0, [r1, #4]
+ ldr r0, [r1]
+ bl MOD12_02242D3C
+_02242D34:
+ pop {r4, pc}
+ nop
+_02242D38: .word 0x0000127D
+
+ thumb_func_start MOD12_02242D3C
+MOD12_02242D3C: ; 0x02242D3C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x18
+ mov r1, #0x20
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x20
+ bl MI_CpuFill8
+ str r5, [r4]
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x2c]
+ ldr r2, _02242DE8 ; =0x02246668
+ bl FUN_0200C154
+ str r0, [r4, #4]
+ ldr r0, [r5]
+ bl FUN_02082878
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r0, [r5]
+ add r6, #0x14
+ bl FUN_02082878
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1a
+ sub r1, r1, r2
+ mov r0, #0x1a
+ ror r1, r0
+ add r2, r2, r1
+ lsl r0, r6, #8
+ lsl r1, r6, #0x10
+ sub r2, #0x10
+ str r0, [r4, #8]
+ lsl r0, r2, #8
+ str r0, [r4, #0xc]
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #4]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r5]
+ bl FUN_02082878
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x18
+ sub r1, r1, r2
+ mov r0, #0x18
+ ror r1, r0
+ add r0, r2, r1
+ add r0, #0x30
+ str r0, [r4, #0x14]
+ ldr r0, [r5]
+ bl FUN_02082878
+ mov r1, #3
+ lsl r1, r1, #8
+ bl _s32_div_f
+ str r1, [r4, #0x18]
+ ldr r0, [r5]
+ bl FUN_02082878
+ mov r1, #0x18
+ bl _s32_div_f
+ add r1, #0x10
+ strh r1, [r4, #0x12]
+ ldr r0, [r4, #4]
+ bl FUN_0200C5A8
+ ldr r0, _02242DEC ; =MOD12_02242DF8
+ ldr r2, _02242DF0 ; =0x0000C35B
+ add r1, r4, #0
+ bl FUN_0200CA44
+ ldr r0, _02242DF4 ; =0x0000127E
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ pop {r4, r5, r6, pc}
+ nop
+_02242DE8: .word 0x02246668
+_02242DEC: .word MOD12_02242DF8
+_02242DF0: .word 0x0000C35B
+_02242DF4: .word 0x0000127E
+
+ thumb_func_start MOD12_02242DF8
+MOD12_02242DF8: ; 0x02242DF8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ ldr r1, _02242ED8 ; =0x0000127D
+ ldrb r1, [r0, r1]
+ cmp r1, #1
+ beq _02242E2C
+ ldr r2, [r4, #0xc]
+ asr r1, r2, #7
+ lsr r1, r1, #0x18
+ add r1, r2, r1
+ asr r1, r1, #8
+ cmp r1, #0xd0
+ bgt _02242E2C
+ mov r2, #0x10
+ ldrsh r1, [r4, r2]
+ ldr r3, [r4, #8]
+ sub r2, #0x20
+ add r3, r3, r1
+ asr r1, r3, #7
+ lsr r1, r1, #0x18
+ add r1, r3, r1
+ asr r1, r1, #8
+ cmp r1, r2
+ bge _02242E48
+_02242E2C:
+ ldr r1, _02242EDC ; =0x0000127E
+ ldrb r2, [r0, r1]
+ sub r2, r2, #1
+ strb r2, [r0, r1]
+ ldr r0, [r4, #4]
+ bl FUN_0200C3DC
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+_02242E48:
+ ldr r2, [r4, #0x1c]
+ ldr r1, [r4, #0x18]
+ add r0, r4, #0
+ add r2, r2, r1
+ mov r1, #0x5a
+ lsl r1, r1, #0xa
+ add r0, #0x1c
+ str r2, [r4, #0x1c]
+ cmp r2, r1
+ blt _02242E62
+ ldr r2, [r0]
+ sub r1, r2, r1
+ str r1, [r0]
+_02242E62:
+ mov r0, #0x12
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x1c]
+ lsl r5, r0, #0xc
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ lsl r0, r0, #8
+ lsr r0, r0, #0x10
+ bl FUN_0201B93C
+ asr r1, r0, #0x1f
+ asr r3, r5, #0x1f
+ add r2, r5, #0
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r5, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r5, #0xc
+ orr r1, r0
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ strh r0, [r4, #0x10]
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x14]
+ sub r0, r1, r0
+ str r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ lsr r0, r2, #2
+ add r2, r1, r0
+ str r2, [r4, #0xc]
+ ldr r3, [r4, #8]
+ ldr r0, [r4, #4]
+ asr r1, r3, #7
+ lsr r1, r1, #0x18
+ add r1, r3, r1
+ asr r3, r1, #8
+ mov r1, #0x10
+ ldrsh r1, [r4, r1]
+ add r1, r3, r1
+ asr r3, r2, #7
+ lsr r3, r3, #0x18
+ add r3, r2, r3
+ lsl r1, r1, #0x10
+ lsl r2, r3, #8
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, #4]
+ bl FUN_0200C5A8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02242ED8: .word 0x0000127D
+_02242EDC: .word 0x0000127E
+
+ thumb_func_start MOD12_02242EE0
+MOD12_02242EE0: ; 0x02242EE0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02242F84 ; =0x000080EE
+ mov r2, #0x2e
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x2c]
+ mov r3, #0x54
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02242F88 ; =0x000080EB
+ mov r2, #0x2e
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x2c]
+ mov r3, #0x53
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02242F88 ; =0x000080EB
+ mov r2, #0x2e
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x2c]
+ mov r3, #0x52
+ bl FUN_0200C13C
+ mov r7, #0x52
+ mov r6, #0
+ add r4, r5, #0
+ lsl r7, r7, #2
+_02242F2C:
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x2c]
+ ldr r2, _02242F8C ; =0x022466D0
+ bl FUN_0200C154
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_0200C5A8
+ ldr r0, [r4, r7]
+ mov r1, #0
+ bl FUN_0200C644
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _02242F2C
+ ldr r4, _02242F90 ; =0x02246624
+ mov r6, #0
+ mov r7, #2
+_02242F5A:
+ mov r0, #0xf3
+ add r1, r5, r6
+ lsl r0, r0, #2
+ ldrb r0, [r1, r0]
+ ldrsh r2, [r4, r7]
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #0
+ ldrsh r1, [r4, r1]
+ bl FUN_0200C714
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _02242F5A
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02242F84: .word 0x000080EE
+_02242F88: .word 0x000080EB
+_02242F8C: .word 0x022466D0
+_02242F90: .word 0x02246624
+
+ thumb_func_start MOD12_02242F94
+MOD12_02242F94: ; 0x02242F94
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x2c]
+ ldr r1, _02242FC8 ; =0x000080EE
+ bl FUN_0200C358
+ ldr r0, [r5, #0x2c]
+ ldr r1, _02242FCC ; =0x000080EB
+ bl FUN_0200C378
+ ldr r0, [r5, #0x2c]
+ ldr r1, _02242FCC ; =0x000080EB
+ bl FUN_0200C388
+ mov r6, #0x52
+ mov r4, #0
+ lsl r6, r6, #2
+_02242FB6:
+ ldr r0, [r5, r6]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02242FB6
+ pop {r4, r5, r6, pc}
+ nop
+_02242FC8: .word 0x000080EE
+_02242FCC: .word 0x000080EB
+
+ thumb_func_start MOD12_02242FD0
+MOD12_02242FD0: ; 0x02242FD0
+ push {r3, r4, r5, lr}
+ mov r3, #0x52
+ lsl r3, r3, #2
+ lsl r4, r1, #2
+ add r5, r0, r3
+ ldr r0, [r5, r4]
+ add r1, r2, #0
+ bl FUN_0200C5C0
+ ldr r0, [r5, r4]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, _02242FF4 ; =0x000005DD
+ bl FUN_020054C8
+ pop {r3, r4, r5, pc}
+ nop
+_02242FF4: .word 0x000005DD
+
+ thumb_func_start MOD12_02242FF8
+MOD12_02242FF8: ; 0x02242FF8
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ mov r0, #0x2e
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _02243068 ; =0x000080EC
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ ldr r2, [r4, #0x28]
+ ldr r3, [r4, #0x2c]
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0224306C ; =0x000080F0
+ mov r2, #0x2e
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x2c]
+ mov r3, #0x57
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02243070 ; =0x000080ED
+ mov r2, #0x2e
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x2c]
+ mov r3, #0x56
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02243070 ; =0x000080ED
+ mov r2, #0x2e
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x2c]
+ mov r3, #0x55
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r4, pc}
+ nop
+_02243068: .word 0x000080EC
+_0224306C: .word 0x000080F0
+_02243070: .word 0x000080ED
+
+ thumb_func_start MOD12_02243074
+MOD12_02243074: ; 0x02243074
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x2c]
+ ldr r1, _0224309C ; =0x000080EC
+ bl FUN_0200C368
+ ldr r0, [r4, #0x2c]
+ ldr r1, _022430A0 ; =0x000080F0
+ bl FUN_0200C358
+ ldr r0, [r4, #0x2c]
+ ldr r1, _022430A4 ; =0x000080ED
+ bl FUN_0200C378
+ ldr r0, [r4, #0x2c]
+ ldr r1, _022430A4 ; =0x000080ED
+ bl FUN_0200C388
+ pop {r4, pc}
+ nop
+_0224309C: .word 0x000080EC
+_022430A0: .word 0x000080F0
+_022430A4: .word 0x000080ED
+
+ thumb_func_start MOD12_022430A8
+MOD12_022430A8: ; 0x022430A8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r0, #0
+ str r3, [sp]
+ cmp r2, #0
+ beq _022430BE
+ cmp r2, #1
+ beq _022430D2
+ cmp r2, #2
+ beq _022430EC
+ b _0224310C
+_022430BE:
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0x56
+ lsl r0, r0, #2
+ add r2, r7, r0
+ mov r0, #0x30
+ mul r0, r1
+ mov r6, #0
+ add r4, r2, r0
+ b _02243114
+_022430D2:
+ lsl r0, r1, #1
+ add r2, r7, r0
+ ldr r0, _022431F0 ; =0x0000041E
+ ldrsh r6, [r2, r0]
+ mov r0, #0x11
+ str r0, [sp, #0x14]
+ mov r0, #0x86
+ lsl r0, r0, #2
+ add r2, r7, r0
+ mov r0, #0x30
+ mul r0, r1
+ add r4, r2, r0
+ b _02243114
+_022430EC:
+ lsl r0, r1, #1
+ add r3, r7, r0
+ ldr r0, _022431F0 ; =0x0000041E
+ ldrsh r2, [r3, r0]
+ add r0, #8
+ ldrsh r0, [r3, r0]
+ add r6, r2, r0
+ mov r0, #0x21
+ str r0, [sp, #0x14]
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ add r2, r7, r0
+ mov r0, #0x30
+ mul r0, r1
+ add r4, r2, r0
+ b _02243114
+_0224310C:
+ bl ErrorHandling
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_02243114:
+ ldr r0, [sp, #0x30]
+ add r6, #0x30
+ lsl r0, r0, #5
+ str r0, [sp, #0x10]
+ add r0, #0x20
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ asr r0, r0, #3
+ lsr r1, r0, #0x1c
+ ldr r0, [sp]
+ add r1, r0, r1
+ asr r0, r1, #4
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1c
+ sub r1, r1, r2
+ mov r0, #0x1c
+ ror r1, r0
+ add r0, r2, r1
+ beq _02243144
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+_02243144:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0xc
+ ble _0224314E
+ bl ErrorHandling
+_0224314E:
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ ble _0224317A
+ add r5, r4, #0
+_0224315A:
+ ldr r0, [r5]
+ cmp r0, #0
+ bne _0224316C
+ ldr r0, [r7, #0x28]
+ ldr r1, [r7, #0x2c]
+ ldr r2, _022431F4 ; =0x02246704
+ bl FUN_0200C154
+ str r0, [r5]
+_0224316C:
+ ldr r0, [sp, #8]
+ add r5, r5, #4
+ add r1, r0, #1
+ ldr r0, [sp, #0xc]
+ str r1, [sp, #8]
+ cmp r1, r0
+ blt _0224315A
+_0224317A:
+ ldr r0, [sp]
+ mov r7, #0
+ cmp r0, #0x10
+ blt _022431A2
+ ldr r0, [sp, #0x14]
+ add r5, r4, #0
+ str r0, [sp, #4]
+ add r0, #0xf
+ str r0, [sp, #4]
+_0224318C:
+ ldr r0, [r5]
+ ldr r1, [sp, #4]
+ bl FUN_0200C5C0
+ ldr r0, [sp]
+ add r5, r5, #4
+ sub r0, #0x10
+ add r7, r7, #1
+ str r0, [sp]
+ cmp r0, #0x10
+ bge _0224318C
+_022431A2:
+ ldr r0, [sp]
+ cmp r0, #0
+ ble _022431BE
+ ldr r0, [sp, #0xc]
+ cmp r7, r0
+ bge _022431BE
+ ldr r2, [sp, #0x14]
+ ldr r1, [sp]
+ lsl r0, r7, #2
+ add r1, r2, r1
+ ldr r0, [r4, r0]
+ sub r1, r1, #1
+ bl FUN_0200C5C0
+_022431BE:
+ ldr r0, [sp, #0xc]
+ mov r5, #0
+ cmp r0, #0
+ ble _022431EA
+ ldr r0, [sp, #0x10]
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+_022431CC:
+ lsl r1, r6, #0x10
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ add r2, r7, #0
+ bl FUN_0200C714
+ ldr r0, [r4]
+ bl FUN_0200C5A8
+ ldr r0, [sp, #0xc]
+ add r5, r5, #1
+ add r6, #0x10
+ add r4, r4, #4
+ cmp r5, r0
+ blt _022431CC
+_022431EA:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022431F0: .word 0x0000041E
+_022431F4: .word 0x02246704
+
+ thumb_func_start MOD12_022431F8
+MOD12_022431F8: ; 0x022431F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r7, #0x86
+ lsl r7, r7, #2
+ str r0, [sp]
+ mov r0, #0
+ add r6, r7, #0
+ str r0, [sp, #4]
+ sub r6, #0xc0
+_0224320A:
+ ldr r5, [sp]
+ mov r4, #0
+_0224320E:
+ ldr r0, [r5, r6]
+ cmp r0, #0
+ beq _02243218
+ bl FUN_0200C3DC
+_02243218:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _02243222
+ bl FUN_0200C3DC
+_02243222:
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02243230
+ bl FUN_0200C3DC
+_02243230:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xc
+ blt _0224320E
+ ldr r0, [sp]
+ add r0, #0x30
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #4
+ blt _0224320A
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD12_0224324C
+MOD12_0224324C: ; 0x0224324C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ mov r0, #0
+ strb r0, [r7]
+ mov r0, #0x18
+ mov r1, #0x14
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x14
+ bl MI_CpuFill8
+ str r5, [r4]
+ str r7, [r4, #4]
+ cmp r6, #0
+ ldr r2, _0224329C ; =0x0000A028
+ bne _02243286
+ mov r0, #6
+ lsl r0, r0, #0xc
+ str r0, [r4, #8]
+ str r0, [r4, #0xc]
+ ldr r0, _022432A0 ; =MOD12_022432A8
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+_02243286:
+ mov r0, #3
+ lsl r0, r0, #0xc
+ str r0, [r4, #8]
+ mov r0, #9
+ lsl r0, r0, #0xc
+ str r0, [r4, #0xc]
+ ldr r0, _022432A4 ; =MOD12_0224333C
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224329C: .word 0x0000A028
+_022432A0: .word MOD12_022432A8
+_022432A4: .word MOD12_0224333C
+
+ thumb_func_start MOD12_022432A8
+MOD12_022432A8: ; 0x022432A8
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldrb r0, [r1, #0x10]
+ cmp r0, #0
+ bne _02243322
+ mov r0, #1
+ ldr r2, [r1, #8]
+ lsl r0, r0, #0xa
+ sub r2, r2, r0
+ str r2, [r1, #8]
+ ldr r2, [r1, #0xc]
+ add r0, r2, r0
+ str r0, [r1, #0xc]
+ mov r0, #3
+ ldr r2, [r1, #8]
+ lsl r0, r0, #0xc
+ cmp r2, r0
+ bgt _022432DA
+ str r0, [r1, #8]
+ mov r0, #9
+ lsl r0, r0, #0xc
+ str r0, [r1, #0xc]
+ ldrb r0, [r1, #0x10]
+ add r0, r0, #1
+ strb r0, [r1, #0x10]
+_022432DA:
+ ldr r3, [r1]
+ ldr r2, _02243338 ; =0x00000851
+ mov r0, #0
+ strb r0, [r3, r2]
+ ldr r3, [r1, #8]
+ ldr r4, [r1]
+ asr r5, r3, #8
+ add r3, r2, #1
+ strb r5, [r4, r3]
+ ldr r4, [r1]
+ mov r5, #0xff
+ add r3, r2, #2
+ strb r5, [r4, r3]
+ ldr r3, [r1, #0xc]
+ ldr r4, [r1]
+ asr r5, r3, #8
+ add r3, r2, #3
+ strb r5, [r4, r3]
+ ldr r4, [r1]
+ mov r5, #1
+ add r3, r2, #4
+ strb r5, [r4, r3]
+ ldr r3, [r1, #8]
+ ldr r4, [r1]
+ asr r5, r3, #8
+ add r3, r2, #5
+ strb r5, [r4, r3]
+ ldr r4, [r1]
+ add r3, r2, #6
+ strb r0, [r4, r3]
+ ldr r0, [r1, #0xc]
+ ldr r1, [r1]
+ asr r3, r0, #8
+ add r0, r2, #7
+ strb r3, [r1, r0]
+ pop {r3, r4, r5, pc}
+_02243322:
+ ldr r0, [r1, #4]
+ mov r2, #1
+ strb r2, [r0]
+ add r0, r1, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ nop
+_02243338: .word 0x00000851
+
+ thumb_func_start MOD12_0224333C
+MOD12_0224333C: ; 0x0224333C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldrb r0, [r1, #0x10]
+ cmp r0, #0
+ bne _022433B2
+ mov r0, #1
+ ldr r2, [r1, #8]
+ lsl r0, r0, #0xa
+ add r2, r2, r0
+ str r2, [r1, #8]
+ ldr r2, [r1, #0xc]
+ sub r0, r2, r0
+ str r0, [r1, #0xc]
+ mov r0, #6
+ ldr r2, [r1, #8]
+ lsl r0, r0, #0xc
+ cmp r2, r0
+ blt _0224336A
+ str r0, [r1, #8]
+ str r0, [r1, #0xc]
+ ldrb r0, [r1, #0x10]
+ add r0, r0, #1
+ strb r0, [r1, #0x10]
+_0224336A:
+ ldr r3, [r1]
+ ldr r2, _022433C8 ; =0x00000851
+ mov r0, #0
+ strb r0, [r3, r2]
+ ldr r3, [r1, #8]
+ ldr r4, [r1]
+ asr r5, r3, #8
+ add r3, r2, #1
+ strb r5, [r4, r3]
+ ldr r4, [r1]
+ mov r5, #0xff
+ add r3, r2, #2
+ strb r5, [r4, r3]
+ ldr r3, [r1, #0xc]
+ ldr r4, [r1]
+ asr r5, r3, #8
+ add r3, r2, #3
+ strb r5, [r4, r3]
+ ldr r4, [r1]
+ mov r5, #1
+ add r3, r2, #4
+ strb r5, [r4, r3]
+ ldr r3, [r1, #8]
+ ldr r4, [r1]
+ asr r5, r3, #8
+ add r3, r2, #5
+ strb r5, [r4, r3]
+ ldr r4, [r1]
+ add r3, r2, #6
+ strb r0, [r4, r3]
+ ldr r0, [r1, #0xc]
+ ldr r1, [r1]
+ asr r3, r0, #8
+ add r0, r2, #7
+ strb r3, [r1, r0]
+ pop {r3, r4, r5, pc}
+_022433B2:
+ ldr r0, [r1, #4]
+ mov r2, #1
+ strb r2, [r0]
+ add r0, r1, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ nop
+_022433C8: .word 0x00000851
+
+ thumb_func_start MOD12_022433CC
+MOD12_022433CC: ; 0x022433CC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r1, #0
+ add r0, r3, #0
+ strb r1, [r0]
+ mov r0, #0x18
+ mov r1, #0x14
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x14
+ add r4, r0, #0
+ bl MI_CpuFill8
+ lsl r0, r6, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ cmp r7, #0
+ str r0, [r4]
+ ldr r0, [sp]
+ ldr r2, _0224342C ; =0x0000C350
+ str r0, [r4, #4]
+ bne _02243416
+ mov r0, #0x4a
+ lsl r0, r0, #0xa
+ str r0, [r4, #8]
+ mov r0, #6
+ lsl r0, r0, #0xc
+ str r0, [r4, #0xc]
+ ldr r0, _02243430 ; =MOD12_02243438
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+_02243416:
+ mov r0, #2
+ lsl r0, r0, #0xe
+ str r0, [r4, #8]
+ mov r0, #6
+ lsl r0, r0, #0xc
+ str r0, [r4, #0xc]
+ ldr r0, _02243434 ; =MOD12_022434A4
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224342C: .word 0x0000C350
+_02243430: .word MOD12_02243438
+_02243434: .word MOD12_022434A4
+
+ thumb_func_start MOD12_02243438
+MOD12_02243438: ; 0x02243438
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #0
+ beq _0224344A
+ cmp r0, #1
+ beq _0224345A
+ b _0224348E
+_0224344A:
+ ldr r0, [r4]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+_0224345A:
+ mov r0, #2
+ ldr r1, [r4, #8]
+ lsl r0, r0, #0xa
+ sub r2, r1, r0
+ lsl r1, r0, #4
+ str r2, [r4, #8]
+ cmp r2, r1
+ bgt _02243474
+ lsl r0, r0, #4
+ str r0, [r4, #8]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+_02243474:
+ ldr r2, [r4, #8]
+ ldr r0, [r4]
+ mov r1, #0
+ asr r2, r2, #8
+ bl FUN_02007558
+ ldr r2, [r4, #0xc]
+ ldr r0, [r4]
+ mov r1, #1
+ asr r2, r2, #8
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_0224348E:
+ ldr r0, [r4, #4]
+ mov r1, #1
+ strb r1, [r0]
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022434A4
+MOD12_022434A4: ; 0x022434A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #0
+ beq _022434B6
+ cmp r0, #1
+ beq _022434BA
+ b _022434F0
+_022434B6:
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+_022434BA:
+ mov r0, #2
+ ldr r1, [r4, #8]
+ lsl r0, r0, #0xa
+ sub r1, r1, r0
+ ldr r0, _02243510 ; =0xFFFFD800
+ str r1, [r4, #8]
+ cmp r1, r0
+ bgt _022434D0
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+_022434D0:
+ ldr r3, [r4, #8]
+ ldr r0, [r4]
+ asr r2, r3, #7
+ lsr r2, r2, #0x18
+ add r2, r3, r2
+ mov r1, #0
+ asr r2, r2, #8
+ bl FUN_02007558
+ ldr r2, [r4, #0xc]
+ ldr r0, [r4]
+ mov r1, #1
+ asr r2, r2, #8
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_022434F0:
+ ldr r0, [r4]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #1
+ strb r1, [r0]
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ nop
+_02243510: .word 0xFFFFD800
+
+ thumb_func_start MOD12_02243514
+MOD12_02243514: ; 0x02243514
+ ldr r2, _022435B0 ; =0x00000121
+ ldrb r0, [r0, r2]
+ cmp r0, #8
+ bhi _022435AA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02243528: ; jump table
+ .short _0224353A - _02243528 - 2 ; case 0
+ .short _02243552 - _02243528 - 2 ; case 1
+ .short _02243568 - _02243528 - 2 ; case 2
+ .short _02243586 - _02243528 - 2 ; case 3
+ .short _02243586 - _02243528 - 2 ; case 4
+ .short _02243592 - _02243528 - 2 ; case 5
+ .short _02243592 - _02243528 - 2 ; case 6
+ .short _0224359E - _02243528 - 2 ; case 7
+ .short _0224359E - _02243528 - 2 ; case 8
+_0224353A:
+ cmp r1, #0
+ beq _02243544
+ cmp r1, #2
+ beq _02243548
+ b _0224354E
+_02243544:
+ ldr r0, _022435B4 ; =0x00001770
+ bx lr
+_02243548:
+ mov r0, #0xfa
+ lsl r0, r0, #4
+ bx lr
+_0224354E:
+ mov r0, #0
+ bx lr
+_02243552:
+ cmp r1, #0
+ beq _0224355C
+ cmp r1, #1
+ beq _02243560
+ b _02243564
+_0224355C:
+ ldr r0, _022435B8 ; =0x00001B58
+ bx lr
+_02243560:
+ ldr r0, _022435BC ; =0x00000BB8
+ bx lr
+_02243564:
+ mov r0, #0
+ bx lr
+_02243568:
+ cmp r1, #0
+ beq _02243576
+ cmp r1, #1
+ beq _0224357A
+ cmp r1, #2
+ beq _0224357E
+ b _02243582
+_02243576:
+ ldr r0, _022435C0 ; =0x00000D05
+ bx lr
+_0224357A:
+ ldr r0, _022435C0 ; =0x00000D05
+ bx lr
+_0224357E:
+ ldr r0, _022435C0 ; =0x00000D05
+ bx lr
+_02243582:
+ mov r0, #0
+ bx lr
+_02243586:
+ cmp r1, #0
+ bne _0224358E
+ ldr r0, _022435C4 ; =0x00002710
+ bx lr
+_0224358E:
+ mov r0, #0
+ bx lr
+_02243592:
+ cmp r1, #1
+ bne _0224359A
+ ldr r0, _022435C4 ; =0x00002710
+ bx lr
+_0224359A:
+ mov r0, #0
+ bx lr
+_0224359E:
+ cmp r1, #2
+ bne _022435A6
+ ldr r0, _022435C4 ; =0x00002710
+ bx lr
+_022435A6:
+ mov r0, #0
+ bx lr
+_022435AA:
+ mov r0, #0
+ bx lr
+ nop
+_022435B0: .word 0x00000121
+_022435B4: .word 0x00001770
+_022435B8: .word 0x00001B58
+_022435BC: .word 0x00000BB8
+_022435C0: .word 0x00000D05
+_022435C4: .word 0x00002710
+
+ thumb_func_start MOD12_022435C8
+MOD12_022435C8: ; 0x022435C8
+ push {r3, lr}
+ bl MOD12_02243514
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r1, _022435E0 ; =0x00001388
+ add r0, r2, r1
+ lsl r1, r1, #1
+ bl _s32_div_f
+ pop {r3, pc}
+ .align 2, 0
+_022435E0: .word 0x00001388
+
+ thumb_func_start MOD12_022435E4
+MOD12_022435E4: ; 0x022435E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ str r0, [sp]
+ mov r0, #0
+ ldr r7, [sp]
+ add r5, r1, #0
+ add r6, r2, #0
+ str r0, [sp, #8]
+ add r4, sp, #0x24
+_022435F6:
+ cmp r5, #0
+ beq _02243604
+ cmp r5, #1
+ beq _0224361E
+ cmp r5, #2
+ beq _02243628
+ b _02243630
+_02243604:
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl FUN_02083308
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl FUN_0208336C
+ ldr r1, [sp, #0x10]
+ add r0, r1, r0
+ str r0, [r4]
+ b _02243638
+_0224361E:
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldrsh r0, [r7, r0]
+ str r0, [r4]
+ b _02243638
+_02243628:
+ ldr r0, _022436CC ; =0x0000012E
+ ldrsh r0, [r7, r0]
+ str r0, [r4]
+ b _02243638
+_02243630:
+ bl ErrorHandling
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+_02243638:
+ ldr r0, [sp, #8]
+ add r4, r4, #4
+ add r0, r0, #1
+ add r7, #0xc
+ str r0, [sp, #8]
+ cmp r0, #4
+ blt _022435F6
+ mov r4, #0
+ mov r3, #1
+ add r2, sp, #0x28
+ add r7, sp, #0x24
+_0224364E:
+ lsl r0, r4, #2
+ ldr r1, [r7, r0]
+ ldr r0, [r2]
+ cmp r1, r0
+ bge _0224365A
+ add r4, r3, #0
+_0224365A:
+ add r3, r3, #1
+ add r2, r2, #4
+ cmp r3, #4
+ blt _0224364E
+ ldr r0, [sp]
+ add r1, r5, #0
+ bl MOD12_02243514
+ lsl r2, r4, #2
+ add r1, sp, #0x24
+ ldr r1, [r1, r2]
+ bl _s32_div_f
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #4]
+ add r7, sp, #0x24
+ add r4, sp, #0x14
+_0224367E:
+ ldr r0, [r7]
+ ldr r1, [sp, #0xc]
+ mul r0, r1
+ str r0, [r4]
+ add r0, #0x32
+ mov r1, #0x64
+ bl _s32_div_f
+ stmia r4!, {r0}
+ ldr r0, [sp, #4]
+ add r7, r7, #4
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #4
+ blt _0224367E
+ mov r2, #0
+ add r1, sp, #0x14
+_022436A0:
+ cmp r5, #0
+ beq _022436AE
+ cmp r5, #1
+ beq _022436B4
+ cmp r5, #2
+ beq _022436BA
+ b _022436BE
+_022436AE:
+ ldr r0, [r1]
+ strh r0, [r6]
+ b _022436BE
+_022436B4:
+ ldr r0, [r1]
+ strh r0, [r6]
+ b _022436BE
+_022436BA:
+ ldr r0, [r1]
+ strh r0, [r6]
+_022436BE:
+ add r2, r2, #1
+ add r1, r1, #4
+ add r6, r6, #2
+ cmp r2, #4
+ blt _022436A0
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022436CC: .word 0x0000012E
+
+ thumb_func_start MOD12_022436D0
+MOD12_022436D0: ; 0x022436D0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ str r0, [sp]
+ ldr r0, [r0]
+ ldr r1, _022439F0 ; =0x00000121
+ ldrb r1, [r0, r1]
+ cmp r1, #8
+ bhi _02243790
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022436EC: ; jump table
+ .short _022436FE - _022436EC - 2 ; case 0
+ .short _0224371C - _022436EC - 2 ; case 1
+ .short _0224373A - _022436EC - 2 ; case 2
+ .short _02243768 - _022436EC - 2 ; case 3
+ .short _02243768 - _022436EC - 2 ; case 4
+ .short _02243776 - _022436EC - 2 ; case 5
+ .short _02243776 - _022436EC - 2 ; case 6
+ .short _02243784 - _022436EC - 2 ; case 7
+ .short _02243784 - _022436EC - 2 ; case 8
+_022436FE:
+ ldr r3, _022439F4 ; =0x000003D6
+ ldr r2, [sp]
+ mov r1, #0
+ add r2, r2, r3
+ bl MOD12_022435E4
+ ldr r0, [sp]
+ ldr r3, _022439F8 ; =0x000003E6
+ ldr r2, [sp]
+ ldr r0, [r0]
+ mov r1, #2
+ add r2, r2, r3
+ bl MOD12_022435E4
+ b _02243790
+_0224371C:
+ ldr r3, _022439F4 ; =0x000003D6
+ ldr r2, [sp]
+ mov r1, #0
+ add r2, r2, r3
+ bl MOD12_022435E4
+ ldr r0, [sp]
+ ldr r3, _022439FC ; =0x000003DE
+ ldr r2, [sp]
+ ldr r0, [r0]
+ mov r1, #1
+ add r2, r2, r3
+ bl MOD12_022435E4
+ b _02243790
+_0224373A:
+ ldr r3, _022439F4 ; =0x000003D6
+ ldr r2, [sp]
+ mov r1, #0
+ add r2, r2, r3
+ bl MOD12_022435E4
+ ldr r0, [sp]
+ ldr r3, _022439FC ; =0x000003DE
+ ldr r2, [sp]
+ ldr r0, [r0]
+ mov r1, #1
+ add r2, r2, r3
+ bl MOD12_022435E4
+ ldr r0, [sp]
+ ldr r3, _022439F8 ; =0x000003E6
+ ldr r2, [sp]
+ ldr r0, [r0]
+ mov r1, #2
+ add r2, r2, r3
+ bl MOD12_022435E4
+ b _02243790
+_02243768:
+ ldr r3, _022439F4 ; =0x000003D6
+ ldr r2, [sp]
+ mov r1, #0
+ add r2, r2, r3
+ bl MOD12_022435E4
+ b _02243790
+_02243776:
+ ldr r3, _022439FC ; =0x000003DE
+ ldr r2, [sp]
+ mov r1, #1
+ add r2, r2, r3
+ bl MOD12_022435E4
+ b _02243790
+_02243784:
+ ldr r3, _022439F8 ; =0x000003E6
+ ldr r2, [sp]
+ mov r1, #2
+ add r2, r2, r3
+ bl MOD12_022435E4
+_02243790:
+ ldr r7, _022439F4 ; =0x000003D6
+ ldr r6, [sp]
+ add r0, r7, #0
+ add r1, r7, #0
+ mov r5, #0
+ add r0, #8
+ add r1, #0x18
+_0224379E:
+ ldr r2, _022439F8 ; =0x000003E6
+ ldrsh r3, [r6, r7]
+ ldrsh r4, [r6, r2]
+ ldrsh r2, [r6, r0]
+ add r5, r5, #1
+ add r2, r3, r2
+ add r2, r4, r2
+ strh r2, [r6, r1]
+ add r6, r6, #2
+ cmp r5, #4
+ blt _0224379E
+ ldr r1, [sp]
+ ldr r4, _022439F4 ; =0x000003D6
+ mov r0, #0
+ mov r2, #1
+ add r1, r1, #2
+ add r5, r4, #0
+_022437C0:
+ ldr r3, [sp]
+ lsl r6, r0, #1
+ add r3, r3, r6
+ ldrsh r6, [r3, r4]
+ ldrsh r3, [r1, r5]
+ cmp r6, r3
+ bge _022437D0
+ add r0, r2, #0
+_022437D0:
+ add r2, r2, #1
+ add r1, r1, #2
+ cmp r2, #4
+ blt _022437C0
+ lsl r1, r0, #1
+ ldr r0, [sp]
+ ldr r4, [sp]
+ add r1, r0, r1
+ ldr r0, _022439F4 ; =0x000003D6
+ mov r5, #0
+ add r7, r0, #0
+ ldrsh r6, [r1, r0]
+ add r7, #0x20
+_022437EA:
+ ldr r0, _022439F4 ; =0x000003D6
+ ldrsh r1, [r4, r0]
+ mov r0, #0x64
+ mul r0, r1
+ add r1, r6, #0
+ bl _s32_div_f
+ strh r0, [r4, r7]
+ add r5, r5, #1
+ add r4, r4, #2
+ cmp r5, #4
+ blt _022437EA
+ ldr r0, [sp]
+ ldr r4, _022439FC ; =0x000003DE
+ mov r2, #0
+ mov r1, #1
+ add r0, r0, #2
+ add r5, r4, #0
+_0224380E:
+ ldr r3, [sp]
+ lsl r6, r2, #1
+ add r3, r3, r6
+ ldrsh r6, [r3, r4]
+ ldrsh r3, [r0, r5]
+ cmp r6, r3
+ bge _0224381E
+ add r2, r1, #0
+_0224381E:
+ add r1, r1, #1
+ add r0, r0, #2
+ cmp r1, #4
+ blt _0224380E
+ ldr r0, [sp]
+ lsl r1, r2, #1
+ add r1, r0, r1
+ ldr r0, _022439FC ; =0x000003DE
+ ldr r4, [sp]
+ add r7, r0, #0
+ ldrsh r6, [r1, r0]
+ mov r5, #0
+ add r7, #0x20
+_02243838:
+ ldr r0, _022439FC ; =0x000003DE
+ ldrsh r1, [r4, r0]
+ mov r0, #0x64
+ mul r0, r1
+ add r1, r6, #0
+ bl _s32_div_f
+ strh r0, [r4, r7]
+ add r5, r5, #1
+ add r4, r4, #2
+ cmp r5, #4
+ blt _02243838
+ ldr r0, [sp]
+ ldr r4, _022439F8 ; =0x000003E6
+ mov r2, #0
+ mov r1, #1
+ add r0, r0, #2
+ add r5, r4, #0
+_0224385C:
+ ldr r3, [sp]
+ lsl r6, r2, #1
+ add r3, r3, r6
+ ldrsh r6, [r3, r4]
+ ldrsh r3, [r0, r5]
+ cmp r6, r3
+ bge _0224386C
+ add r2, r1, #0
+_0224386C:
+ add r1, r1, #1
+ add r0, r0, #2
+ cmp r1, #4
+ blt _0224385C
+ ldr r0, [sp]
+ lsl r1, r2, #1
+ add r1, r0, r1
+ ldr r0, _022439F8 ; =0x000003E6
+ ldr r4, [sp]
+ add r7, r0, #0
+ ldrsh r6, [r1, r0]
+ mov r5, #0
+ add r7, #0x20
+_02243886:
+ ldr r0, _022439F8 ; =0x000003E6
+ ldrsh r1, [r4, r0]
+ mov r0, #0x64
+ mul r0, r1
+ add r1, r6, #0
+ bl _s32_div_f
+ strh r0, [r4, r7]
+ add r5, r5, #1
+ add r4, r4, #2
+ cmp r5, #4
+ blt _02243886
+ ldr r0, [sp]
+ mov r1, #0
+ ldr r0, [r0]
+ bl MOD12_022435C8
+ ldr r4, [sp]
+ ldr r7, _02243A00 ; =0x0000041E
+ add r6, r0, #0
+ mov r5, #0
+_022438B0:
+ ldr r0, _02243A04 ; =0x000003F6
+ mov r1, #0x64
+ ldrsh r0, [r4, r0]
+ mul r0, r6
+ bl _s32_div_f
+ strh r0, [r4, r7]
+ add r5, r5, #1
+ add r4, r4, #2
+ cmp r5, #4
+ blt _022438B0
+ ldr r0, [sp]
+ mov r1, #1
+ ldr r0, [r0]
+ bl MOD12_022435C8
+ ldr r4, [sp]
+ ldr r7, _02243A08 ; =0x00000426
+ add r6, r0, #0
+ mov r5, #0
+_022438D8:
+ ldr r0, _02243A0C ; =0x000003FE
+ mov r1, #0x64
+ ldrsh r0, [r4, r0]
+ mul r0, r6
+ bl _s32_div_f
+ strh r0, [r4, r7]
+ add r5, r5, #1
+ add r4, r4, #2
+ cmp r5, #4
+ blt _022438D8
+ ldr r0, [sp]
+ mov r1, #2
+ ldr r0, [r0]
+ bl MOD12_022435C8
+ ldr r4, [sp]
+ ldr r7, _02243A10 ; =0x0000042E
+ add r6, r0, #0
+ mov r5, #0
+_02243900:
+ ldr r0, _02243A14 ; =0x00000406
+ mov r1, #0x64
+ ldrsh r0, [r4, r0]
+ mul r0, r6
+ bl _s32_div_f
+ strh r0, [r4, r7]
+ add r5, r5, #1
+ add r4, r4, #2
+ cmp r5, #4
+ blt _02243900
+ ldr r7, _02243A00 ; =0x0000041E
+ ldr r5, [sp]
+ add r0, r7, #0
+ add r1, r7, #0
+ mov r6, #0
+ add r0, #8
+ sub r1, #8
+_02243924:
+ ldr r2, _02243A10 ; =0x0000042E
+ ldrsh r3, [r5, r7]
+ ldrsh r4, [r5, r2]
+ ldrsh r2, [r5, r0]
+ add r6, r6, #1
+ add r2, r3, r2
+ add r2, r4, r2
+ strh r2, [r5, r1]
+ add r5, r5, #2
+ cmp r6, #4
+ blt _02243924
+ ldr r0, [sp]
+ mov r7, #0
+ add r6, sp, #0x18
+ str r0, [sp, #4]
+ add r4, sp, #8
+ add r5, sp, #0x28
+_02243946:
+ stmia r6!, {r7}
+ ldr r1, [sp, #4]
+ ldr r0, _02243A18 ; =0x00000416
+ ldrsh r0, [r1, r0]
+ stmia r4!, {r0}
+ ldr r0, [sp]
+ ldr r0, [r0]
+ bl FUN_02082878
+ stmia r5!, {r0}
+ ldr r0, [sp, #4]
+ add r7, r7, #1
+ add r0, r0, #2
+ str r0, [sp, #4]
+ cmp r7, #4
+ blt _02243946
+ mov r0, #0
+ mov ip, r0
+_0224396A:
+ mov r0, ip
+ mov r7, #3
+ cmp r0, #3
+ bge _022439B8
+ add r2, sp, #0x14
+ add r3, sp, #0x34
+ add r4, sp, #0x24
+_02243978:
+ sub r0, r2, #4
+ ldr r5, [r2]
+ ldr r6, [r0]
+ cmp r6, r5
+ blt _02243990
+ cmp r6, r5
+ bne _022439AA
+ sub r0, r3, #4
+ ldr r1, [r0]
+ ldr r0, [r3]
+ cmp r1, r0
+ bge _022439AA
+_02243990:
+ str r6, [r2]
+ sub r0, r2, #4
+ str r5, [r0]
+ sub r0, r4, #4
+ ldr r5, [r4]
+ ldr r1, [r0]
+ str r1, [r4]
+ str r5, [r0]
+ sub r0, r3, #4
+ ldr r5, [r3]
+ ldr r1, [r0]
+ str r1, [r3]
+ str r5, [r0]
+_022439AA:
+ sub r7, r7, #1
+ mov r0, ip
+ sub r2, r2, #4
+ sub r3, r3, #4
+ sub r4, r4, #4
+ cmp r7, r0
+ bgt _02243978
+_022439B8:
+ mov r0, ip
+ add r0, r0, #1
+ mov ip, r0
+ cmp r0, #3
+ blt _0224396A
+ mov r1, #0x13
+ ldr r7, _02243A1C ; =0x000003D1
+ mov r6, #0
+ add r5, sp, #0x18
+ mov r0, #0xc
+ lsl r1, r1, #4
+_022439CE:
+ ldr r3, [sp]
+ ldr r2, [r5]
+ add r3, r3, r6
+ strb r2, [r3, r7]
+ ldr r2, [sp]
+ ldr r4, [r2]
+ ldr r2, [r5]
+ add r5, r5, #4
+ add r3, r2, #0
+ mul r3, r0
+ add r2, r4, r3
+ strb r6, [r2, r1]
+ add r6, r6, #1
+ cmp r6, #4
+ blt _022439CE
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022439F0: .word 0x00000121
+_022439F4: .word 0x000003D6
+_022439F8: .word 0x000003E6
+_022439FC: .word 0x000003DE
+_02243A00: .word 0x0000041E
+_02243A04: .word 0x000003F6
+_02243A08: .word 0x00000426
+_02243A0C: .word 0x000003FE
+_02243A10: .word 0x0000042E
+_02243A14: .word 0x00000406
+_02243A18: .word 0x00000416
+_02243A1C: .word 0x000003D1
+
+ thumb_func_start MOD12_02243A20
+MOD12_02243A20: ; 0x02243A20
+ push {r3, r4, lr}
+ sub sp, #0xc
+ ldr r1, _02243A54 ; =0x02246758
+ add r3, sp, #0
+ str r1, [sp]
+ mov r1, #0xb
+ strh r1, [r3, #4]
+ ldr r1, [r0]
+ ldr r2, _02243A58 ; =0x00000123
+ ldrb r1, [r1, r2]
+ strb r1, [r3, #6]
+ sub r1, r2, #7
+ ldr r4, [r0]
+ add r2, #0x4e
+ ldrb r1, [r4, r1]
+ strb r1, [r3, #8]
+ ldr r1, [r0]
+ ldrb r1, [r1, r2]
+ strb r1, [r3, #7]
+ ldr r1, _02243A5C ; =0x0000085C
+ add r0, r0, r1
+ add r1, sp, #0
+ bl MOD12_02240ED0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_02243A54: .word 0x02246758
+_02243A58: .word 0x00000123
+_02243A5C: .word 0x0000085C
+
+ thumb_func_start MOD12_02243A60
+MOD12_02243A60: ; 0x02243A60
+ push {r3, lr}
+ lsl r2, r2, #0x10
+ mov r3, #0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02243A74
+MOD12_02243A74: ; 0x02243A74
+ push {r3, lr}
+ add r1, r2, #0
+ mov r2, #0
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02243A84
+MOD12_02243A84: ; 0x02243A84
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD12_02243A88
+MOD12_02243A88: ; 0x02243A88
+ push {r3, lr}
+ mov r1, #0x9a
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02243A9C
+MOD12_02243A9C: ; 0x02243A9C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ mov r1, #0xe7
+ lsl r1, r1, #2
+ str r0, [sp]
+ mov ip, r2
+ add r0, r3, #0
+ add r4, r6, r1
+ mov r2, #0x4d
+_02243AAE:
+ ldrh r1, [r0]
+ add r0, r0, #2
+ strh r1, [r4]
+ add r4, r4, #2
+ sub r2, r2, #1
+ bne _02243AAE
+ mov r1, #0
+ ldr r7, _02243B04 ; =0x00000132
+ add r2, r1, #0
+_02243AC0:
+ ldr r0, [r6]
+ mov r4, #0x4a
+ add r0, r0, r2
+ ldrh r5, [r3]
+ lsl r4, r4, #2
+ add r1, r1, #1
+ strh r5, [r0, r4]
+ ldrh r5, [r3, #2]
+ add r4, r4, #2
+ add r2, #0xc
+ strh r5, [r0, r4]
+ mov r4, #0x4b
+ ldrh r5, [r3, #4]
+ lsl r4, r4, #2
+ strh r5, [r0, r4]
+ ldrh r5, [r3, #6]
+ add r4, r4, #2
+ strh r5, [r0, r4]
+ mov r4, #0x13
+ ldrh r5, [r3, #8]
+ lsl r4, r4, #4
+ strh r5, [r0, r4]
+ ldrh r4, [r3, #0xa]
+ add r3, #0xc
+ cmp r1, #4
+ strh r4, [r0, r7]
+ blt _02243AC0
+ mov r2, #0
+ ldr r0, [sp]
+ mov r1, ip
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02243B04: .word 0x00000132
+
+ thumb_func_start MOD12_02243B08
+MOD12_02243B08: ; 0x02243B08
+ push {r3, lr}
+ lsl r2, r2, #0x10
+ mov r3, #0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02243B1C
+MOD12_02243B1C: ; 0x02243B1C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x18
+ add r7, r1, #0
+ add r1, r0, #0
+ add r5, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x18
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _02243B58 ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, _02243B5C ; =MOD12_02243B60
+ str r6, [r4, #0xc]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02243B58: .word 0x00007530
+_02243B5C: .word MOD12_02243B60
+
+ thumb_func_start MOD12_02243B60
+MOD12_02243B60: ; 0x02243B60
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldrb r0, [r1, #0x10]
+ str r1, [sp]
+ cmp r0, #0
+ beq _02243B70
+ b _02243C96
+_02243B70:
+ ldr r0, [sp]
+ mov r1, #0x14
+ ldrsb r0, [r0, r1]
+ cmp r0, #0
+ ble _02243B84
+ sub r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x14]
+ pop {r4, r5, r6, r7, pc}
+_02243B84:
+ ldr r0, [sp]
+ mov r1, #0x13
+ ldrsb r0, [r0, r1]
+ cmp r0, #0
+ ble _02243B98
+ sub r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x13]
+ pop {r4, r5, r6, r7, pc}
+_02243B98:
+ ldr r0, [sp]
+ mov r1, #1
+ strb r1, [r0, #0x13]
+ ldr r0, [r0]
+ mov r1, #2
+ ldr r0, [r0, #0x30]
+ bl FUN_0201886C
+ mov ip, r0
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02243C10
+_02243BB0:
+ ldr r0, [sp]
+ mov r1, #0x11
+ ldrsb r1, [r0, r1]
+ ldr r0, _02243CB4 ; =0x02246738
+ ldrsb r1, [r0, r1]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ bmi _02243C0A
+ lsl r1, r0, #6
+ mov r0, ip
+ add r3, r0, r1
+ ldr r0, [sp]
+ mov r5, #0
+ ldrb r0, [r0, #0x12]
+ mov r7, #0x3f
+ str r5, [sp, #4]
+ lsl r1, r0, #1
+ ldr r0, _02243CB8 ; =0x02246740
+ lsl r7, r7, #0xa
+ ldrh r1, [r0, r1]
+ ldr r0, [sp, #8]
+ lsl r0, r0, #5
+ add r6, r1, r0
+ b _02243C04
+_02243BE0:
+ mov r4, #0
+ b _02243BF8
+_02243BE4:
+ add r0, r5, r4
+ lsl r2, r0, #1
+ ldrh r0, [r3, r2]
+ and r0, r7
+ strh r0, [r3, r2]
+ ldrh r1, [r3, r2]
+ add r0, r6, r4
+ add r4, r4, #1
+ orr r0, r1
+ strh r0, [r3, r2]
+_02243BF8:
+ cmp r4, #8
+ blt _02243BE4
+ ldr r0, [sp, #4]
+ add r5, #8
+ add r0, r0, #1
+ str r0, [sp, #4]
+_02243C04:
+ ldr r0, [sp, #4]
+ cmp r0, #4
+ blt _02243BE0
+_02243C0A:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+_02243C10:
+ ldr r0, [sp, #8]
+ cmp r0, #4
+ blt _02243BB0
+ ldr r0, [sp]
+ mov r1, #0x11
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ ble _02243C52
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0
+ bne _02243C52
+ ldr r0, _02243CB4 ; =0x02246738
+ sub r1, r1, #1
+ ldrsb r0, [r0, r1]
+ lsl r1, r0, #6
+ mov r0, ip
+ add r3, r0, r1
+ mov r0, #0
+ mov r1, #0x3f
+ str r0, [sp, #4]
+ lsl r1, r1, #0xa
+ b _02243C4C
+_02243C3C:
+ ldr r0, [sp, #4]
+ lsl r2, r0, #1
+ ldrh r0, [r3, r2]
+ and r0, r1
+ strh r0, [r3, r2]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+_02243C4C:
+ ldr r0, [sp, #4]
+ cmp r0, #0x20
+ blt _02243C3C
+_02243C52:
+ ldr r0, [sp]
+ mov r1, #2
+ ldr r0, [r0]
+ ldr r0, [r0, #0x30]
+ bl FUN_0201AC68
+ ldr r0, [sp]
+ ldrb r0, [r0, #0x12]
+ add r1, r0, #1
+ ldr r0, [sp]
+ strb r1, [r0, #0x12]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0xc
+ blo _02243CB0
+ ldr r1, [sp]
+ mov r0, #0
+ mov r2, #0x11
+ strb r0, [r1, #0x12]
+ ldrsb r1, [r1, r2]
+ add r3, r1, #1
+ ldr r1, [sp]
+ strb r3, [r1, #0x11]
+ strb r0, [r1, #0x14]
+ add r0, r1, #0
+ ldrsb r0, [r0, r2]
+ cmp r0, #5
+ blo _02243CB0
+ add r0, r1, #0
+ ldrb r0, [r0, #0x10]
+ add r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_02243C96:
+ add r0, r1, #0
+ mov r2, #0
+ ldr r0, [r0, #0xc]
+ add r1, r1, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ ldr r0, [sp]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_02243CB0:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02243CB4: .word 0x02246738
+_02243CB8: .word 0x02246740
+
+ thumb_func_start MOD12_02243CBC
+MOD12_02243CBC: ; 0x02243CBC
+ push {r3, lr}
+ lsl r2, r2, #0x10
+ mov r3, #0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02243CD0
+MOD12_02243CD0: ; 0x02243CD0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x18
+ add r7, r1, #0
+ add r1, r0, #0
+ add r5, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x18
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _02243D0C ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, _02243D10 ; =MOD12_02243D14
+ str r6, [r4, #0xc]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02243D0C: .word 0x00007530
+_02243D10: .word MOD12_02243D14
+
+ thumb_func_start MOD12_02243D14
+MOD12_02243D14: ; 0x02243D14
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldrb r0, [r1, #0x10]
+ str r1, [sp]
+ cmp r0, #0
+ beq _02243D24
+ b _02243E72
+_02243D24:
+ ldr r0, [sp]
+ mov r1, #0x14
+ ldrsb r0, [r0, r1]
+ cmp r0, #0
+ ble _02243D38
+ sub r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x14]
+ pop {r4, r5, r6, r7, pc}
+_02243D38:
+ ldr r0, [sp]
+ mov r1, #0x13
+ ldrsb r0, [r0, r1]
+ cmp r0, #0
+ ble _02243D4C
+ sub r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x13]
+ pop {r4, r5, r6, r7, pc}
+_02243D4C:
+ ldr r0, [sp]
+ mov r1, #1
+ strb r1, [r0, #0x13]
+ ldr r0, [r0]
+ mov r1, #2
+ ldr r0, [r0, #0x30]
+ bl FUN_0201886C
+ mov ip, r0
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02243DCC
+_02243D64:
+ ldr r0, [sp]
+ mov r1, #0x11
+ ldrsb r1, [r0, r1]
+ mov r0, #4
+ sub r1, r0, r1
+ ldr r0, _02243E90 ; =0x02246738
+ ldrsb r1, [r0, r1]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ bmi _02243DC6
+ lsl r1, r0, #6
+ mov r0, ip
+ add r3, r0, r1
+ ldr r0, [sp]
+ mov r5, #0
+ ldrb r1, [r0, #0x12]
+ mov r0, #0xb
+ mov r7, #0x3f
+ sub r0, r0, r1
+ lsl r1, r0, #1
+ ldr r0, _02243E94 ; =0x02246740
+ str r5, [sp, #4]
+ ldrh r1, [r0, r1]
+ ldr r0, [sp, #8]
+ lsl r7, r7, #0xa
+ lsl r0, r0, #5
+ add r6, r1, r0
+ b _02243DC0
+_02243D9C:
+ mov r4, #0
+ b _02243DB4
+_02243DA0:
+ add r0, r5, r4
+ lsl r2, r0, #1
+ ldrh r0, [r3, r2]
+ and r0, r7
+ strh r0, [r3, r2]
+ ldrh r1, [r3, r2]
+ add r0, r6, r4
+ add r4, r4, #1
+ orr r0, r1
+ strh r0, [r3, r2]
+_02243DB4:
+ cmp r4, #8
+ blt _02243DA0
+ ldr r0, [sp, #4]
+ add r5, #8
+ add r0, r0, #1
+ str r0, [sp, #4]
+_02243DC0:
+ ldr r0, [sp, #4]
+ cmp r0, #4
+ blt _02243D9C
+_02243DC6:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+_02243DCC:
+ ldr r0, [sp, #8]
+ cmp r0, #4
+ blt _02243D64
+ ldr r0, [sp]
+ mov r1, #0x11
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ ble _02243E2E
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0
+ bne _02243E2E
+ mov r0, #5
+ sub r1, r0, r1
+ ldr r0, _02243E90 ; =0x02246738
+ mov r7, #0x3f
+ ldrsb r0, [r0, r1]
+ lsl r7, r7, #0xa
+ mov r6, #0x1d
+ add r0, r0, #3
+ lsl r1, r0, #6
+ mov r0, ip
+ add r3, r0, r1
+ mov r0, #0
+ mov r1, #2
+ str r0, [sp, #4]
+ lsl r1, r1, #8
+ b _02243E28
+_02243E02:
+ ldr r0, [sp, #4]
+ ldr r5, [sp, #4]
+ lsl r4, r0, #1
+ ldrh r0, [r3, r4]
+ lsl r5, r5, #0x1d
+ and r0, r7
+ strh r0, [r3, r4]
+ ldr r0, [sp, #4]
+ ldrh r2, [r3, r4]
+ lsr r0, r0, #0x1f
+ sub r5, r5, r0
+ ror r5, r6
+ add r0, r0, r5
+ add r0, r0, r1
+ orr r0, r2
+ strh r0, [r3, r4]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+_02243E28:
+ ldr r0, [sp, #4]
+ cmp r0, #0x20
+ blt _02243E02
+_02243E2E:
+ ldr r0, [sp]
+ mov r1, #2
+ ldr r0, [r0]
+ ldr r0, [r0, #0x30]
+ bl FUN_0201AC68
+ ldr r0, [sp]
+ ldrb r0, [r0, #0x12]
+ add r1, r0, #1
+ ldr r0, [sp]
+ strb r1, [r0, #0x12]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0xc
+ blo _02243E8C
+ ldr r1, [sp]
+ mov r0, #0
+ mov r2, #0x11
+ strb r0, [r1, #0x12]
+ ldrsb r1, [r1, r2]
+ add r3, r1, #1
+ ldr r1, [sp]
+ strb r3, [r1, #0x11]
+ strb r0, [r1, #0x14]
+ add r0, r1, #0
+ ldrsb r0, [r0, r2]
+ cmp r0, #5
+ blo _02243E8C
+ add r0, r1, #0
+ ldrb r0, [r0, #0x10]
+ add r1, r0, #1
+ ldr r0, [sp]
+ add sp, #0xc
+ strb r1, [r0, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_02243E72:
+ add r0, r1, #0
+ mov r2, #0
+ ldr r0, [r0, #0xc]
+ add r1, r1, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ ldr r0, [sp]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_02243E8C:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02243E90: .word 0x02246738
+_02243E94: .word 0x02246740
+
+ thumb_func_start MOD12_02243E98
+MOD12_02243E98: ; 0x02243E98
+ push {r3, lr}
+ lsl r2, r2, #0x10
+ mov r3, #0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02243EAC
+MOD12_02243EAC: ; 0x02243EAC
+ push {r4, lr}
+ ldr r3, _02243EC0 ; =0x0000127C
+ mov r4, #1
+ strb r4, [r1, r3]
+ add r1, r2, #0
+ mov r2, #0
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ pop {r4, pc}
+ .align 2, 0
+_02243EC0: .word 0x0000127C
+
+ thumb_func_start MOD12_02243EC4
+MOD12_02243EC4: ; 0x02243EC4
+ push {r3, lr}
+ mov r1, #0x12
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02243ED8
+MOD12_02243ED8: ; 0x02243ED8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #0x18
+ mov r1, #0x20
+ add r6, r2, #0
+ add r5, r3, #0
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x20
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [sp]
+ ldr r2, _02243F38 ; =0x00007530
+ str r0, [r4]
+ ldrh r0, [r6]
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r6, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r6, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r6, #6]
+ strh r0, [r4, #0xa]
+ str r7, [r4, #0xc]
+ ldrb r0, [r5]
+ strb r0, [r4, #0x11]
+ ldrh r0, [r5, #8]
+ strh r0, [r4, #0x14]
+ ldrh r0, [r5, #0xa]
+ strh r0, [r4, #0x16]
+ ldrh r0, [r5, #0xc]
+ strh r0, [r4, #0x18]
+ ldrb r0, [r5, #0xe]
+ strb r0, [r4, #0x1a]
+ ldrb r0, [r5, #0x11]
+ strb r0, [r4, #0x1d]
+ ldrb r0, [r5, #0x10]
+ strb r0, [r4, #0x1c]
+ ldrb r0, [r5, #0xf]
+ strb r0, [r4, #0x1b]
+ ldr r0, _02243F3C ; =MOD12_02243F40
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02243F38: .word 0x00007530
+_02243F3C: .word MOD12_02243F40
+
+ thumb_func_start MOD12_02243F40
+MOD12_02243F40: ; 0x02243F40
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #0
+ beq _02243F56
+ cmp r0, #1
+ beq _02243F94
+ cmp r0, #2
+ beq _02243FA6
+ b _02243FDE
+_02243F56:
+ ldrb r0, [r4, #0x1a]
+ cmp r0, #0
+ beq _02243F8E
+ ldrb r0, [r4, #0x1d]
+ cmp r0, #0
+ bne _02243F7A
+ ldr r0, [r4]
+ mov r1, #1
+ add r0, #0x34
+ add r2, r1, #0
+ mov r3, #0xe
+ bl FUN_0200D0BC
+ ldr r0, [r4]
+ mov r1, #1
+ ldr r0, [r0, #0x30]
+ bl FUN_0201AC68
+_02243F7A:
+ ldrb r1, [r4, #0x1a]
+ add r2, r4, #0
+ ldr r0, [r4]
+ add r2, #0x14
+ bl MOD12_02242678
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02243F8E:
+ mov r0, #0x64
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02243F94:
+ ldr r0, [r4]
+ bl MOD12_022426AC
+ cmp r0, #0
+ bne _02243FF6
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02243FA6:
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #1
+ bne _02243FBA
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02243FBA:
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x1b]
+ cmp r1, r0
+ blo _02243FF6
+ ldr r0, [r4]
+ mov r1, #1
+ add r0, #0x34
+ bl FUN_0200D0E0
+ ldr r0, [r4]
+ mov r1, #1
+ ldr r0, [r0, #0x30]
+ bl FUN_0201AC68
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02243FDE:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02243FF6:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD12_02243FF8
+MOD12_02243FF8: ; 0x02243FF8
+ push {r3, lr}
+ mov r1, #0x9a
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0224400C
+MOD12_0224400C: ; 0x0224400C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r0, #0xe7
+ add r6, r1, #0
+ lsl r0, r0, #2
+ add r5, r2, #0
+ add r2, r6, r0
+ mov r1, #0x4d
+_0224401C:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _0224401C
+ mov r0, #0x18
+ mov r1, #0x14
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x14
+ bl MI_CpuFill8
+ str r6, [r4]
+ ldrh r0, [r5]
+ mov r2, #0xfa
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ lsl r2, r2, #2
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, _0224405C ; =MOD12_02244060
+ str r7, [r4, #0xc]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224405C: .word MOD12_02244060
+
+ thumb_func_start MOD12_02244060
+MOD12_02244060: ; 0x02244060
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #6
+ bls _02244070
+ b _0224419A
+_02244070:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224407C: ; jump table
+ .short _0224408A - _0224407C - 2 ; case 0
+ .short _0224409E - _0224407C - 2 ; case 1
+ .short _022440B2 - _0224407C - 2 ; case 2
+ .short _022440DC - _0224407C - 2 ; case 3
+ .short _022440EE - _0224407C - 2 ; case 4
+ .short _0224415A - _0224407C - 2 ; case 5
+ .short _02244182 - _0224407C - 2 ; case 6
+_0224408A:
+ ldr r1, [r4]
+ ldr r0, _022441B8 ; =0x00000848
+ ldr r0, [r1, r0]
+ bl MOD12_022318DC
+ ldrb r0, [r4, #0x10]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_0224409E:
+ bl MOD12_022318F8
+ cmp r0, #1
+ beq _022440A8
+ b _022441B2
+_022440A8:
+ ldrb r0, [r4, #0x10]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_022440B2:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, _022441BC ; =0x0000046F
+ mov r1, #0x1e
+ bl FUN_02005350
+ ldrb r0, [r4, #0x10]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_022440DC:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _022441B2
+ ldrb r0, [r4, #0x10]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_022440EE:
+ ldr r0, [r4]
+ bl MOD12_02242788
+ ldr r0, [r4]
+ bl MOD12_022427DC
+ ldr r0, [r4]
+ bl MOD12_02242804
+ ldr r0, [r4]
+ bl MOD12_02242A1C
+ ldr r0, [r4]
+ bl MOD12_022429E0
+ ldr r0, [r4]
+ mov r1, #0
+ add r0, #0x34
+ mov r2, #1
+ mov r3, #0xe
+ bl FUN_0200D0BC
+ ldr r0, [r4]
+ mov r1, #0xff
+ add r0, #0x34
+ bl FUN_02019620
+ ldr r0, [r4]
+ add r0, #0x34
+ bl FUN_020191D0
+ mov r6, #0
+ add r5, r6, #0
+ mov r7, #6
+_02244132:
+ ldr r0, [r4]
+ add r1, r7, #0
+ add r0, r0, r5
+ ldr r0, [r0, #0x18]
+ mov r2, #1
+ bl FUN_02007558
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _02244132
+ ldr r1, [r4]
+ ldr r0, _022441C0 ; =0x0000127F
+ mov r2, #1
+ strb r2, [r1, r0]
+ ldrb r0, [r4, #0x10]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_0224415A:
+ bl FUN_02005404
+ cmp r0, #0
+ bne _022441B2
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #0x10]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_02244182:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _022441B2
+ ldr r0, _022441C4 ; =0x0000049D
+ bl FUN_0200521C
+ ldrb r0, [r4, #0x10]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_0224419A:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_022441B2:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022441B8: .word 0x00000848
+_022441BC: .word 0x0000046F
+_022441C0: .word 0x0000127F
+_022441C4: .word 0x0000049D
+
+ thumb_func_start MOD12_022441C8
+MOD12_022441C8: ; 0x022441C8
+ push {r3, lr}
+ mov r1, #0x12
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022441DC
+MOD12_022441DC: ; 0x022441DC
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r0, #0x18
+ str r1, [sp]
+ add r1, r0, #0
+ add r6, r2, #0
+ add r5, r3, #0
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x18
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [sp]
+ mov r2, #0
+ str r0, [r4]
+ ldrh r0, [r6]
+ strh r0, [r4, #4]
+ ldrh r0, [r6, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r6, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r6, #6]
+ strh r0, [r4, #0xa]
+ str r7, [r4, #0xc]
+_02244210:
+ add r0, r5, r2
+ ldrb r1, [r0, #3]
+ add r0, r4, r2
+ add r2, r2, #1
+ strb r1, [r0, #0x11]
+ cmp r2, #4
+ blt _02244210
+ ldr r0, _0224422C ; =MOD12_02244234
+ ldr r2, _02244230 ; =0x00007530
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224422C: .word MOD12_02244234
+_02244230: .word 0x00007530
+
+ thumb_func_start MOD12_02244234
+MOD12_02244234: ; 0x02244234
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #4
+ bhi _022442A6
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224424C: ; jump table
+ .short _02244256 - _0224424C - 2 ; case 0
+ .short _0224425C - _0224424C - 2 ; case 1
+ .short _0224427A - _0224424C - 2 ; case 2
+ .short _02244294 - _0224424C - 2 ; case 3
+ .short _022442A6 - _0224424C - 2 ; case 4
+_02244256:
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0224425C:
+ ldrb r1, [r4, #0x15]
+ mov r0, #3
+ sub r2, r0, r1
+ add r1, r4, r2
+ ldrb r1, [r1, #0x11]
+ ldr r0, [r4]
+ bl MOD12_02242FD0
+ ldrb r0, [r4, #0x15]
+ add r0, r0, #1
+ strb r0, [r4, #0x15]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0224427A:
+ mov r0, #0x16
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ strh r1, [r4, #0x16]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x1e
+ ble _022442BE
+ mov r0, #0
+ strh r0, [r4, #0x16]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_02244294:
+ ldrb r1, [r4, #0x15]
+ cmp r1, #4
+ bhs _022442A0
+ mov r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_022442A0:
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_022442A6:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_022442BE:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD12_022442C0
+MOD12_022442C0: ; 0x022442C0
+ push {r3, lr}
+ mov r1, #0x12
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022442D4
+MOD12_022442D4: ; 0x022442D4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x18
+ add r7, r1, #0
+ add r1, r0, #0
+ add r5, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x18
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _02244318 ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, [sp]
+ str r6, [r4, #0xc]
+ ldrb r0, [r0, #2]
+ strb r0, [r4, #0x11]
+ ldr r0, _0224431C ; =MOD12_02244320
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02244318: .word 0x00007530
+_0224431C: .word MOD12_02244320
+
+ thumb_func_start MOD12_02244320
+MOD12_02244320: ; 0x02244320
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #6
+ bhi _02244414
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224433A: ; jump table
+ .short _02244348 - _0224433A - 2 ; case 0
+ .short _02244370 - _0224433A - 2 ; case 1
+ .short _0224437E - _0224433A - 2 ; case 2
+ .short _02244396 - _0224433A - 2 ; case 3
+ .short _022443A4 - _0224433A - 2 ; case 4
+ .short _022443E6 - _0224433A - 2 ; case 5
+ .short _022443F8 - _0224433A - 2 ; case 6
+_02244348:
+ ldr r0, [r4]
+ bl MOD12_02242CB0
+ add r2, r4, #0
+ ldr r0, [r4]
+ mov r1, #0
+ add r2, #0x12
+ bl MOD12_0224324C
+ ldr r0, _02244430 ; =0x0000049E
+ bl FUN_0200521C
+ ldr r0, _02244434 ; =0x000006E5
+ bl FUN_020054C8
+ ldrb r0, [r4, #0x10]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r4, r5, pc}
+_02244370:
+ ldrb r1, [r4, #0x12]
+ cmp r1, #1
+ bne _0224442C
+ add r0, r0, #1
+ add sp, #0xc
+ strb r0, [r4, #0x10]
+ pop {r4, r5, pc}
+_0224437E:
+ ldrb r1, [r4, #0x11]
+ add r3, r4, #0
+ ldr r0, [r4]
+ mov r2, #0
+ add r3, #0x13
+ bl MOD12_022433CC
+ ldrb r0, [r4, #0x10]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r4, r5, pc}
+_02244396:
+ ldrb r1, [r4, #0x13]
+ cmp r1, #1
+ bne _0224442C
+ add r0, r0, #1
+ add sp, #0xc
+ strb r0, [r4, #0x10]
+ pop {r4, r5, pc}
+_022443A4:
+ ldr r0, [r4]
+ mov r2, #0
+ ldr r1, [r0, #0x10]
+ ldrb r0, [r4, #0x11]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #5
+ bl FUN_020671BC
+ add r2, r0, #0
+ mov r0, #0x7f
+ str r0, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #0x18
+ str r3, [sp, #8]
+ ldr r3, [r4]
+ lsl r2, r2, #0x10
+ ldr r5, [r3]
+ ldrb r3, [r4, #0x11]
+ add r0, #0xdd
+ lsr r2, r2, #0x10
+ lsl r3, r3, #2
+ add r3, r5, r3
+ ldr r0, [r3, r0]
+ add r3, r1, #0
+ bl FUN_02069FB0
+ ldrb r0, [r4, #0x10]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r4, r5, pc}
+_022443E6:
+ bl FUN_02005670
+ cmp r0, #0
+ bne _0224442C
+ ldrb r0, [r4, #0x10]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r4, r5, pc}
+_022443F8:
+ mov r0, #0x14
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ strh r1, [r4, #0x14]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x3c
+ ble _0224442C
+ mov r0, #0
+ strh r0, [r4, #0x14]
+ ldrb r0, [r4, #0x10]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r4, r5, pc}
+_02244414:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0224442C:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02244430: .word 0x0000049E
+_02244434: .word 0x000006E5
+
+ thumb_func_start MOD12_02244438
+MOD12_02244438: ; 0x02244438
+ push {r3, lr}
+ mov r1, #0x12
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0224444C
+MOD12_0224444C: ; 0x0224444C
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r5, r1, #0
+ mov r0, #0x18
+ mov r1, #0x24
+ add r6, r2, #0
+ add r7, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x24
+ bl MI_CpuFill8
+ str r5, [r4]
+ ldrh r0, [r6]
+ strh r0, [r4, #4]
+ ldrh r0, [r6, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r6, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r6, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, [sp]
+ str r0, [r4, #0xc]
+ ldrb r0, [r7, #7]
+ strb r0, [r4, #0x11]
+ ldrb r0, [r7, #7]
+ cmp r0, #0
+ beq _02244492
+ cmp r0, #1
+ beq _022444A8
+ cmp r0, #2
+ beq _022444BE
+ b _022444D4
+_02244492:
+ ldr r0, _022444E4 ; =0x0000041E
+ mov r2, #0
+ add r3, r4, #0
+_02244498:
+ ldrsh r1, [r5, r0]
+ add r2, r2, #1
+ add r5, r5, #2
+ strh r1, [r3, #0x14]
+ add r3, r3, #2
+ cmp r2, #4
+ blt _02244498
+ b _022444D8
+_022444A8:
+ ldr r0, _022444E8 ; =0x00000426
+ mov r3, #0
+ add r2, r4, #0
+_022444AE:
+ ldrsh r1, [r5, r0]
+ add r3, r3, #1
+ add r5, r5, #2
+ strh r1, [r2, #0x14]
+ add r2, r2, #2
+ cmp r3, #4
+ blt _022444AE
+ b _022444D8
+_022444BE:
+ ldr r0, _022444EC ; =0x0000042E
+ mov r3, #0
+ add r2, r4, #0
+_022444C4:
+ ldrsh r1, [r5, r0]
+ add r3, r3, #1
+ add r5, r5, #2
+ strh r1, [r2, #0x14]
+ add r2, r2, #2
+ cmp r3, #4
+ blt _022444C4
+ b _022444D8
+_022444D4:
+ bl ErrorHandling
+_022444D8:
+ ldr r0, _022444F0 ; =MOD12_022444F8
+ ldr r2, _022444F4 ; =0x00007530
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022444E4: .word 0x0000041E
+_022444E8: .word 0x00000426
+_022444EC: .word 0x0000042E
+_022444F0: .word MOD12_022444F8
+_022444F4: .word 0x00007530
+
+ thumb_func_start MOD12_022444F8
+MOD12_022444F8: ; 0x022444F8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #5
+ bhi _022445E8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02244510: ; jump table
+ .short _0224451C - _02244510 - 2 ; case 0
+ .short _0224452A - _02244510 - 2 ; case 1
+ .short _02244544 - _02244510 - 2 ; case 2
+ .short _02244566 - _02244510 - 2 ; case 3
+ .short _022445BC - _02244510 - 2 ; case 4
+ .short _022445E8 - _02244510 - 2 ; case 5
+_0224451C:
+ ldr r0, _02244604 ; =0x000006FA
+ bl FUN_020054C8
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224452A:
+ mov r0, #0x12
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ strh r1, [r4, #0x12]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x2d
+ ble _02244600
+ mov r0, #0
+ strh r0, [r4, #0x12]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_02244544:
+ mov r2, #0
+ add r3, r4, #0
+ mov r0, #0x14
+_0224454A:
+ ldrsh r1, [r3, r0]
+ cmp r1, #0
+ ble _02244558
+ ldr r0, _02244608 ; =0x000006FB
+ bl FUN_020054C8
+ b _02244560
+_02244558:
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #4
+ blt _0224454A
+_02244560:
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+_02244566:
+ mov r0, #0x12
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ strh r1, [r4, #0x12]
+ ldrsh r0, [r4, r0]
+ cmp r0, #1
+ blt _02244600
+ mov r6, #0
+ strh r6, [r4, #0x12]
+ add r5, r6, #0
+ mov r7, #0x14
+_0224457C:
+ ldr r0, [r4]
+ mov r2, #0x1c
+ add r1, r0, r5
+ mov r0, #0xf3
+ lsl r0, r0, #2
+ ldrb r1, [r1, r0]
+ lsl r0, r1, #1
+ add r0, r4, r0
+ ldrsh r2, [r0, r2]
+ add r2, r2, #1
+ strh r2, [r0, #0x1c]
+ mov r2, #0x1c
+ ldrsh r3, [r0, r2]
+ ldrsh r0, [r0, r7]
+ cmp r3, r0
+ bgt _022445A8
+ str r5, [sp]
+ ldrb r2, [r4, #0x11]
+ ldr r0, [r4]
+ bl MOD12_022430A8
+ b _022445AA
+_022445A8:
+ add r6, r6, #1
+_022445AA:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0224457C
+ cmp r6, #4
+ blt _02244600
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_022445BC:
+ mov r3, #0
+ add r2, r4, #0
+ mov r0, #0x14
+_022445C2:
+ ldrsh r1, [r2, r0]
+ cmp r1, #0
+ ble _022445D0
+ ldr r0, _0224460C ; =0x000006F9
+ bl FUN_020054C8
+ b _022445D8
+_022445D0:
+ add r3, r3, #1
+ add r2, r2, #2
+ cmp r3, #4
+ blt _022445C2
+_022445D8:
+ ldr r0, _02244604 ; =0x000006FA
+ mov r1, #0
+ bl FUN_020054F0
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_022445E8:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02244600:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02244604: .word 0x000006FA
+_02244608: .word 0x000006FB
+_0224460C: .word 0x000006F9
+
+ thumb_func_start MOD12_02244610
+MOD12_02244610: ; 0x02244610
+ push {r3, lr}
+ lsl r2, r2, #0x10
+ mov r3, #0
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ str r3, [sp]
+ bl MOD12_02240F3C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02244624
+MOD12_02244624: ; 0x02244624
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x18
+ mov r1, #0x14
+ add r5, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x14
+ bl MI_CpuFill8
+ str r7, [r4]
+ ldrh r0, [r5]
+ ldr r2, _02244660 ; =0x00007530
+ add r1, r4, #0
+ strh r0, [r4, #4]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #6]
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strh r0, [r4, #0xa]
+ ldr r0, _02244664 ; =MOD12_02244668
+ str r6, [r4, #0xc]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02244660: .word 0x00007530
+_02244664: .word MOD12_02244668
+
+ thumb_func_start MOD12_02244668
+MOD12_02244668: ; 0x02244668
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x10]
+ cmp r0, #0
+ beq _0224467E
+ cmp r0, #1
+ beq _0224469E
+ cmp r0, #2
+ beq _022446CE
+ b _022446E8
+_0224467E:
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #0x5a
+ mov r1, #0x10
+ mov r2, #0
+ mov r3, #0x3f
+ bl FUN_0200A208
+ ldr r0, _02244704 ; =0x0000049E
+ mov r1, #0x5a
+ bl FUN_02005350
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_0224469E:
+ mov r0, #3
+ bl FUN_0200A344
+ cmp r0, #1
+ bne _02244700
+ bl FUN_02005404
+ cmp r0, #0
+ bne _02244700
+ ldr r0, [r4]
+ bl MOD12_02242CEC
+ ldr r0, _02244708 ; =0x0400006C
+ mov r1, #0x10
+ bl GXx_SetMasterBrightness_
+ ldr r0, _0224470C ; =0x0400106C
+ mov r1, #0x10
+ bl GXx_SetMasterBrightness_
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_022446CE:
+ mov r0, #0x12
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ strh r1, [r4, #0x12]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x3c
+ ble _02244700
+ mov r0, #0
+ strh r0, [r4, #0x12]
+ ldrb r0, [r4, #0x10]
+ add r0, r0, #1
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+_022446E8:
+ mov r2, #0
+ ldr r0, [r4, #0xc]
+ add r1, r4, #4
+ add r3, r2, #0
+ bl MOD12_02240FB0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02244700:
+ pop {r3, r4, r5, pc}
+ nop
+_02244704: .word 0x0000049E
+_02244708: .word 0x0400006C
+_0224470C: .word 0x0400106C
+
+ thumb_func_start MOD12_02244710
+MOD12_02244710: ; 0x02244710
+ push {r3, r4, r5, r6, r7, lr}
+ mov r6, #0
+ add r5, r0, #0
+ add r7, r1, #0
+ add r4, r6, #0
+_0224471A:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_02027A14
+ cmp r0, #1
+ bne _02244732
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_02027BDC
+ ldrb r0, [r7, r0]
+ add r6, r6, r0
+_02244732:
+ add r4, r4, #1
+ cmp r4, #0x14
+ blt _0224471A
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD12_0224473C
+MOD12_0224473C: ; 0x0224473C
+ push {r3, lr}
+ add r3, r0, #0
+ mov r2, #0
+ mov r0, #0x5a
+ add r1, r1, #3
+ str r2, [sp]
+ bl FUN_02006C98
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02244750
+MOD12_02244750: ; 0x02244750
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x2c
+ 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, [sp, #0x28]
+ add r4, r1, #0
+ add r6, r3, #0
+ str r0, [sp, #0x14]
+ add r0, r2, #0
+ mov r1, #3
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ mov r3, #0xba
+ str r6, [sp, #8]
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [sp, #0x2c]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0xbb
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [sp, #0x30]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0xbc
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD12_022447C0
+MOD12_022447C0: ; 0x022447C0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_0200C358
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200C368
+ add r0, r5, #0
+ add r1, r6, #0
+ bl FUN_0200C378
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl FUN_0200C388
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_022447E8
+MOD12_022447E8: ; 0x022447E8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r3, #0
+ mov ip, r2
+ ldr r3, _02244860 ; =0x022467DC
+ add r6, r0, #0
+ add r7, r1, #0
+ add r2, sp, #4
+ mov r4, #6
+_022447FA:
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ sub r4, r4, #1
+ bne _022447FA
+ ldr r0, [r3]
+ mov r1, #0x18
+ str r0, [r2]
+ ldr r0, [sp, #0x50]
+ str r5, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x54]
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x58]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x5c]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x60]
+ str r0, [sp, #0x30]
+ mov r0, ip
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x18
+ str r0, [sp]
+ bl MI_CpuFill8
+ ldr r5, [sp]
+ mov r4, #0
+_02244832:
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, sp, #4
+ bl FUN_0200C154
+ mov r1, #0
+ stmia r5!, {r0}
+ bl FUN_0200C644
+ add r4, r4, #1
+ cmp r4, #5
+ blt _02244832
+ ldr r0, _02244864 ; =MOD12_02244958
+ ldr r1, [sp]
+ ldr r2, _02244868 ; =0x00009C40
+ bl FUN_0200CA44
+ ldr r1, [sp]
+ str r0, [r1, #0x14]
+ add r0, r1, #0
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02244860: .word 0x022467DC
+_02244864: .word MOD12_02244958
+_02244868: .word 0x00009C40
+
+ thumb_func_start MOD12_0224486C
+MOD12_0224486C: ; 0x0224486C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_02244874:
+ ldr r0, [r5]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _02244874
+ ldr r0, [r6, #0x14]
+ bl FUN_0200CAB4
+ add r0, r6, #0
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD12_02244890
+MOD12_02244890: ; 0x02244890
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r4, [sp, #0x24]
+ add r6, r3, #0
+ ldr r0, [r5]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ add r3, r4, #0
+ bl FUN_0200C750
+ ldr r2, [sp, #0x10]
+ lsl r1, r6, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #4]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ add r3, r4, #0
+ bl FUN_0200C750
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x18]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #8]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ add r3, r4, #0
+ bl FUN_0200C750
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0xc]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ add r3, r4, #0
+ bl FUN_0200C750
+ ldr r0, [r5]
+ mov r1, #0
+ bl FUN_0200C5C0
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_0200C5C0
+ ldr r0, [r5, #8]
+ mov r1, #2
+ bl FUN_0200C5C0
+ ldr r0, [r5, #0xc]
+ mov r1, #3
+ bl FUN_0200C5C0
+ mov r4, #0
+ mov r6, #1
+_02244906:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl FUN_0200C644
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02244906
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD12_02244918
+MOD12_02244918: ; 0x02244918
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r2, #0
+ str r3, [sp]
+ ldr r2, [sp, #0x20]
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ str r4, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldr r2, [sp, #0x24]
+ str r2, [sp, #0x14]
+ add r2, r3, #0
+ add r3, r4, #0
+ bl MOD12_02244890
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_0224493C
+MOD12_0224493C: ; 0x0224493C
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_02244944:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl FUN_0200C644
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _02244944
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD12_02244958
+MOD12_02244958: ; 0x02244958
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ ldr r0, [r6]
+ bl FUN_0200C658
+ cmp r0, #0
+ beq _02244988
+ mov r4, #0
+ add r5, r6, #0
+_0224496A:
+ ldr r0, [r5]
+ bl FUN_0200C5A8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0224496A
+ ldr r0, [r6, #0x10]
+ bl FUN_0200C658
+ cmp r0, #1
+ bne _02244988
+ ldr r0, [r6, #0x10]
+ bl FUN_0200C5A8
+_02244988:
+ pop {r4, r5, r6, pc}
+
+ .section .data
+ ; 0x0224498C
+ .incbin "baserom.nds", 0x1F71CC, 0x1E94
diff --git a/arm9/modules/13/asm/module_13_arm1.s b/arm9/modules/13/asm/module_13_arm1.s
new file mode 100644
index 00000000..edb71ead
--- /dev/null
+++ b/arm9/modules/13/asm/module_13_arm1.s
@@ -0,0 +1,6051 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ arm_func_start MOD13_02211EA4
+MOD13_02211EA4: ; 0x02211EA4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ strh r1, [sp]
+ add r2, sp, #0
+ mov r1, #0xd
+ bl MOD13_022130E8
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start MOD13_02211EC8
+MOD13_02211EC8: ; 0x02211EC8
+ cmp r0, #1
+ blo _02211EDC
+ cmp r0, #0xf
+ movls r0, #1
+ bxls lr
+_02211EDC:
+ mov r0, #0
+ bx lr
+
+ arm_func_start MOD13_02211EE4
+MOD13_02211EE4: ; 0x02211EE4
+ cmp r1, r0
+ movls r1, r0
+ mov r0, r1
+ bx lr
+
+ arm_func_start MOD13_02211EF4
+MOD13_02211EF4: ; 0x02211EF4
+ ldr r1, _02211F6C ; =0x02240A40
+ mov r2, #1
+ mov r2, r2, lsl r0
+ ldr r1, [r1]
+ ands r1, r1, r2
+ bxeq lr
+ ldr r2, _02211F70 ; =0x02240AFC
+ ldr r1, _02211F74 ; =0x000005D4
+ ldr r2, [r2]
+ mla r3, r0, r1, r2
+ add r0, r3, #0x1000
+ ldrb r0, [r0, #0xd52]
+ cmp r0, #0
+ bxeq lr
+ add r0, r3, #0x1d00
+ ldrh r1, [r0, #0x4c]
+ cmp r1, #0
+ bxeq lr
+ ldrh r2, [r0, #0x48]
+ ldrh ip, [r0, #0x4a]
+ cmp ip, r2
+ bhi _02211F60
+ add r1, ip, #2
+ cmp r2, r1
+ addle r1, r2, #1
+ strleh r1, [r0, #0x48]
+ bxle lr
+_02211F60:
+ add r0, r3, #0x1d00
+ strh ip, [r0, #0x48]
+ bx lr
+ .align 2, 0
+_02211F6C: .word 0x02240A40
+_02211F70: .word 0x02240AFC
+_02211F74: .word 0x000005D4
+
+ arm_func_start MOD13_02211F78
+MOD13_02211F78: ; 0x02211F78
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0xc
+ add r1, sp, #0
+ mov r0, #0
+ mov r2, #0xa
+ bl MIi_CpuClear16
+ mov ip, #1
+ ldr r0, _022120FC ; =0x02240AFC
+ mov r4, ip
+ ldr r3, [r0]
+ mov r5, ip
+ mov r0, ip
+ mov r1, ip
+ mov r2, ip
+_02211FB0:
+ sub lr, ip, #1
+ add lr, r3, lr, lsl #2
+ add lr, lr, #0x1000
+ ldr lr, [lr, #0x4e8]
+ cmp lr, #0xb
+ addls pc, pc, lr, lsl #2
+ b _02212048
+_02211FCC: ; jump table
+ b _02212048 ; case 0
+ b _02212048 ; case 1
+ b _02211FFC ; case 2
+ b _02212048 ; case 3
+ b _0221201C ; case 4
+ b _0221200C ; case 5
+ b _02212048 ; case 6
+ b _02212048 ; case 7
+ b _0221202C ; case 8
+ b _02212048 ; case 9
+ b _02212048 ; case 10
+ b _0221203C ; case 11
+_02211FFC:
+ ldrh lr, [sp]
+ orr lr, lr, r2, lsl ip
+ strh lr, [sp]
+ b _02212048
+_0221200C:
+ ldrh lr, [sp, #2]
+ orr lr, lr, r1, lsl ip
+ strh lr, [sp, #2]
+ b _02212048
+_0221201C:
+ ldrh lr, [sp, #4]
+ orr lr, lr, r0, lsl ip
+ strh lr, [sp, #4]
+ b _02212048
+_0221202C:
+ ldrh lr, [sp, #6]
+ orr lr, lr, r5, lsl ip
+ strh lr, [sp, #6]
+ b _02212048
+_0221203C:
+ ldrh lr, [sp, #8]
+ orr lr, lr, r4, lsl ip
+ strh lr, [sp, #8]
+_02212048:
+ add ip, ip, #1
+ mov ip, ip, lsl #0x10
+ mov ip, ip, lsr #0x10
+ cmp ip, #0xf
+ bls _02211FB0
+ ldrh r1, [sp, #6]
+ cmp r1, #0
+ beq _02212074
+ mov r0, #5
+ bl MOD13_02212614
+ b _022120D4
+_02212074:
+ ldrh r1, [sp]
+ cmp r1, #0
+ beq _0221208C
+ mov r0, #1
+ bl MOD13_02212614
+ b _022120D4
+_0221208C:
+ ldrh r1, [sp, #8]
+ cmp r1, #0
+ beq _022120A4
+ mov r0, #6
+ bl MOD13_02212614
+ b _022120D4
+_022120A4:
+ ldrh r1, [sp, #4]
+ cmp r1, #0
+ beq _022120BC
+ mov r0, #2
+ bl MOD13_02212614
+ b _022120D4
+_022120BC:
+ ldrh r0, [sp, #2]
+ cmp r0, #0
+ beq _022120D0
+ bl MOD13_02212464
+ b _022120D4
+_022120D0:
+ bl MOD13_02212104
+_022120D4:
+ cmp r0, #0x15
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, lr}
+ bxne lr
+ ldr r1, _02212100 ; =0x0000FFFF
+ mov r0, #0
+ bl MOD13_02212614
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+ .align 2, 0
+_022120FC: .word 0x02240AFC
+_02212100: .word 0x0000FFFF
+
+ arm_func_start MOD13_02212104
+MOD13_02212104: ; 0x02212104
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0x1c
+ ldr r5, _022123B0 ; =0x02240AFC
+ ldr r0, [r5]
+ add r0, r0, #0x1000
+ ldrb r0, [r0, #0x524]
+ cmp r0, #0
+ addeq sp, sp, #0x1c
+ moveq r0, #0x15
+ ldmeqia sp!, {r4, r5, r6, r7, lr}
+ bxeq lr
+ ldr r4, _022123B4 ; =0x000005D4
+ mov r1, #0
+_02212138:
+ ldr r0, [r5]
+ add r3, r0, #0x1000
+ ldrb r0, [r3, #0x525]
+ add r0, r0, #1
+ mov r2, r0, lsr #0x1f
+ rsb r0, r2, r0, lsl #28
+ add r0, r2, r0, ror #28
+ strb r0, [r3, #0x525]
+ ldr r2, [r5]
+ add r0, r2, #0x1000
+ ldrb r0, [r0, #0x525]
+ mla r3, r0, r4, r2
+ add r2, r3, #0x1000
+ ldrb r2, [r2, #0xd52]
+ cmp r2, #0
+ beq _02212188
+ add r2, r3, #0x1d00
+ ldrh r2, [r2, #0x4c]
+ cmp r2, #0
+ bne _02212198
+_02212188:
+ add r1, r1, #1
+ and r1, r1, #0xff
+ cmp r1, #0x10
+ blo _02212138
+_02212198:
+ cmp r1, #0x10
+ addeq sp, sp, #0x1c
+ moveq r0, #0x15
+ ldmeqia sp!, {r4, r5, r6, r7, lr}
+ bxeq lr
+ bl MOD13_02211EF4
+ ldr r0, _022123B0 ; =0x02240AFC
+ ldr r1, _022123B4 ; =0x000005D4
+ ldr r6, [r0]
+ ldr r2, _022123B8 ; =0x00001D2C
+ add r0, r6, #0x1000
+ ldrb r0, [r0, #0x525]
+ ldr r3, _022123BC ; =0x00001788
+ add r4, r6, r2
+ mul r5, r0, r1
+ add r0, r6, r5
+ add r0, r0, #0x1d00
+ ldrh r2, [r0, #0x48]
+ add r3, r6, r3
+ add r0, sp, #8
+ add r1, r4, r5
+ add r3, r3, r5
+ bl MOD13_02213558
+ cmp r0, #0
+ addeq sp, sp, #0x1c
+ moveq r0, #0x15
+ ldmeqia sp!, {r4, r5, r6, r7, lr}
+ bxeq lr
+ ldr r0, _022123B0 ; =0x02240AFC
+ mov r2, #4
+ ldr r1, [r0]
+ strb r2, [sp]
+ add r2, r1, #0x1000
+ ldrb r4, [r2, #0x525]
+ ldr r3, _022123B4 ; =0x000005D4
+ add r0, sp, #0
+ strh r4, [sp, #2]
+ ldrb r4, [r2, #0x525]
+ mla r2, r4, r3, r1
+ add r2, r2, #0x1d00
+ ldrh r2, [r2, #0x48]
+ strh r2, [sp, #4]
+ bl MOD13_022171AC
+ ldr r1, _022123B0 ; =0x02240AFC
+ ldr r4, _022123B4 ; =0x000005D4
+ ldr r5, [r1]
+ ldrb r1, [sp, #0x14]
+ add r2, r5, #0x1000
+ ldrb r2, [r2, #0x525]
+ ldr r6, [sp, #0x10]
+ ldr r3, [sp, #0xc]
+ mla r5, r2, r4, r5
+ add r2, r5, r1, lsl #2
+ add r4, r5, #0x1000
+ add r2, r2, #0x1000
+ ldr r5, [r4, #0xd58]
+ ldr r2, [r2, #0xd2c]
+ ldr r1, [r5, r1, lsl #2]
+ sub r2, r6, r2
+ add r7, r2, r1
+ ldr r6, [r4, #0xd54]
+ mov r2, r0
+ mov r0, r6
+ mov r1, r7
+ bl MOD13_02216A68
+ cmp r0, #0
+ bne _02212378
+ ldr r1, _022123B0 ; =0x02240AFC
+ ldr r0, _022123C0 ; =0x00007CE0
+ ldr r1, [r1]
+ add r5, r1, r0
+ mov r0, r5
+ bl MOD13_02216D78
+ cmp r0, #0
+ bne _02212368
+ ldr r0, [r6]
+ cmp r0, #0
+ subne r0, r0, #1
+ strne r0, [r6]
+ bne _02212368
+ add lr, r6, #0x30
+ mov r4, #0
+ mov ip, r4
+ mov r3, lr
+_022122E8:
+ add r0, lr, ip, lsl #4
+ ldr r0, [r0, #0xc]
+ mov r2, ip, lsl #4
+ cmp r0, #2
+ bne _02212318
+ cmp r4, #0
+ beq _02212314
+ ldr r1, [r4]
+ ldr r0, [lr, r2]
+ cmp r1, r0
+ bls _02212318
+_02212314:
+ mov r4, r3
+_02212318:
+ add ip, ip, #1
+ cmp ip, #4
+ add r3, r3, #0x10
+ blt _022122E8
+ cmp r4, #0
+ bne _02212334
+ bl OS_Terminate
+_02212334:
+ mov r0, #2
+ str r0, [r6]
+ mov r0, #1
+ str r0, [r4, #0xc]
+ bic r0, r7, #0x1f
+ str r0, [r4]
+ str r4, [r5, #0x10]
+ ldr r1, _022123C4 ; =MOD13_022123C8
+ mov r0, r5
+ mov r2, #0
+ mov r3, #4
+ str r6, [r5, #0x14]
+ bl MOD13_02216BE8
+_02212368:
+ add sp, sp, #0x1c
+ mov r0, #0x15
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_02212378:
+ ldr r0, _022123B0 ; =0x02240AFC
+ ldr r4, [sp, #0xc]
+ ldr r2, [r0]
+ ldr r1, _022123B4 ; =0x000005D4
+ add r0, r2, #0x1000
+ ldrb r3, [r0, #0x525]
+ add r0, r4, #6
+ mla r1, r3, r1, r2
+ add r1, r1, #0x1d00
+ ldrh r1, [r1, #0x4c]
+ bl MOD13_022141E8
+ add sp, sp, #0x1c
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+ .align 2, 0
+_022123B0: .word 0x02240AFC
+_022123B4: .word 0x000005D4
+_022123B8: .word 0x00001D2C
+_022123BC: .word 0x00001788
+_022123C0: .word 0x00007CE0
+_022123C4: .word MOD13_022123C8
+
+ arm_func_start MOD13_022123C8
+MOD13_022123C8: ; 0x022123C8
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0x4c
+ ldr r5, [r0, #0x14]
+ ldr r4, [r0, #0x10]
+ add r0, sp, #4
+ bl FS_InitFile
+ ldr r1, [r5, #0x14]
+ add r0, r5, #0x10
+ ldr r5, [r4]
+ bl FS_FindArchive
+ mvn r1, #0
+ str r1, [sp]
+ ldr r2, [r4, #4]
+ mov r1, r0
+ add r3, r5, r2
+ add r0, sp, #4
+ mov r2, r5
+ bl FS_OpenFileDirect
+ cmp r0, #0
+ beq _02212440
+ ldr r1, [r4, #8]
+ ldr r2, [r4, #4]
+ add r0, sp, #4
+ bl FS_ReadFile
+ ldr r1, [r4, #4]
+ cmp r1, r0
+ moveq r0, #2
+ streq r0, [r4, #0xc]
+ add r0, sp, #4
+ bl FS_CloseFile
+_02212440:
+ ldr r0, [r4, #0xc]
+ cmp r0, #2
+ movne r0, #0
+ strne r0, [r4]
+ movne r0, #2
+ strne r0, [r4, #0xc]
+ add sp, sp, #0x4c
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+
+ arm_func_start MOD13_02212464
+MOD13_02212464: ; 0x02212464
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0x1c
+ mov r4, #0
+ add r0, sp, #6
+ mov r1, r4
+ mov r2, #0x10
+ mvn r5, #0
+ bl MI_CpuFill8
+ ldr r1, _02212604 ; =0x02240AFC
+ mov r0, #1
+ ldr r1, [r1]
+ add ip, sp, #6
+_02212494:
+ sub r3, r0, #1
+ add r2, r1, r3, lsl #2
+ add r2, r2, #0x1000
+ ldr r2, [r2, #0x4e8]
+ cmp r2, #5
+ bne _022124C4
+ add r2, r1, r3
+ add r2, r2, #0x1500
+ ldrsb r3, [r2, #0x26]
+ ldrb r2, [ip, r3]
+ add r2, r2, #1
+ strb r2, [ip, r3]
+_022124C4:
+ add r0, r0, #1
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ cmp r0, #0xf
+ bls _02212494
+ ldr r2, _02212608 ; =0x0223F780
+ mov r0, #0
+ ldrb r3, [r2]
+ add lr, sp, #6
+ ldr ip, _0221260C ; =0x000005D4
+_022124EC:
+ add r2, r3, #1
+ mov r3, r2, lsr #0x1f
+ rsb r2, r3, r2, lsl #28
+ add r2, r3, r2, ror #28
+ and r3, r2, #0xff
+ mla r2, r3, ip, r1
+ add r2, r2, #0x1000
+ ldrb r2, [r2, #0xd52]
+ cmp r2, #0
+ beq _02212528
+ ldrb r2, [lr, r3]
+ cmp r2, #0
+ movne r0, r3, lsl #0x18
+ movne r5, r0, asr #0x18
+ bne _02212538
+_02212528:
+ add r0, r0, #1
+ and r0, r0, #0xff
+ cmp r0, #0x10
+ blo _022124EC
+_02212538:
+ mvn r0, #0
+ cmp r5, r0
+ addeq sp, sp, #0x1c
+ moveq r0, #0x15
+ ldmeqia sp!, {r4, r5, lr}
+ bxeq lr
+ ldr r2, _02212608 ; =0x0223F780
+ mov r0, #1
+ strb r5, [r2]
+ mov r3, r0
+_02212560:
+ sub ip, r0, #1
+ add r2, r1, ip, lsl #2
+ add r2, r2, #0x1000
+ ldr r2, [r2, #0x4e8]
+ cmp r2, #5
+ bne _02212594
+ add r2, r1, ip
+ add r2, r2, #0x1500
+ ldrsb r2, [r2, #0x26]
+ cmp r5, r2
+ orreq r2, r4, r3, lsl r0
+ moveq r2, r2, lsl #0x10
+ moveq r4, r2, lsr #0x10
+_02212594:
+ add r0, r0, #1
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ cmp r0, #0xf
+ bls _02212560
+ mov r2, #3
+ add r0, sp, #0
+ strb r2, [sp]
+ strh r5, [sp, #2]
+ bl MOD13_022171AC
+ movs r1, r0
+ beq _022125E4
+ ldr r2, _02212604 ; =0x02240AFC
+ ldr r0, _02212610 ; =0x00001788
+ ldr r3, [r2]
+ ldr r2, _0221260C ; =0x000005D4
+ add r0, r3, r0
+ mla r0, r5, r2, r0
+ mov r2, #0xe4
+ bl MI_CpuCopy8
+_022125E4:
+ ldr r0, _02212604 ; =0x02240AFC
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0xea
+ bl MOD13_022141E8
+ add sp, sp, #0x1c
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+ .align 2, 0
+_02212604: .word 0x02240AFC
+_02212608: .word 0x0223F780
+_0221260C: .word 0x000005D4
+_02212610: .word 0x00001788
+
+ arm_func_start MOD13_02212614
+MOD13_02212614: ; 0x02212614
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r2, _02212654 ; =0x02240AFC
+ mov r4, r1
+ ldr r1, [r2]
+ strb r0, [sp]
+ add r0, sp, #0
+ bl MOD13_022171AC
+ ldr r0, _02212654 ; =0x02240AFC
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #6
+ bl MOD13_022141E8
+ add sp, sp, #8
+ ldmia sp!, {r4, lr}
+ bx lr
+ .align 2, 0
+_02212654: .word 0x02240AFC
+
+ arm_func_start MOD13_02212658
+MOD13_02212658: ; 0x02212658
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r4, r0
+ mov r6, #0
+ ldr r2, _02212700 ; =0x02240AFC
+ mov r3, r6
+ ldr r1, _02212704 ; =0x000005D4
+_02212670:
+ ldr r0, [r2]
+ mla r5, r6, r1, r0
+ add r0, r5, #0x1000
+ ldrb r0, [r0, #0xd52]
+ cmp r0, #0
+ addne r0, r5, #0x1d00
+ strneh r3, [r0, #0x4a]
+ add r0, r6, #1
+ mov r0, r0, lsl #0x10
+ mov r6, r0, lsr #0x10
+ cmp r6, #0x10
+ blo _02212670
+ ldr r0, _02212708 ; =0x02240A40
+ mov r1, #0
+ str r1, [r0]
+ mov r6, #1
+ ldr r5, _0221270C ; =0x0000FFFF
+_022126B4:
+ mov r0, r4
+ mov r1, r6
+ bl WM_ReadMPData
+ cmp r0, #0
+ beq _022126E4
+ ldrh r1, [r0]
+ cmp r1, r5
+ beq _022126E4
+ cmp r1, #0
+ beq _022126E4
+ mov r1, r6
+ bl MOD13_02212710
+_022126E4:
+ add r0, r6, #1
+ mov r0, r0, lsl #0x10
+ mov r6, r0, lsr #0x10
+ cmp r6, #0xf
+ bls _022126B4
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+ .align 2, 0
+_02212700: .word 0x02240AFC
+_02212704: .word 0x000005D4
+_02212708: .word 0x02240A40
+_0221270C: .word 0x0000FFFF
+
+ arm_func_start MOD13_02212710
+MOD13_02212710: ; 0x02212710
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #0x38
+ movs r7, r1
+ addeq sp, sp, #0x38
+ ldmeqia sp!, {r4, r5, r6, r7, r8, lr}
+ bxeq lr
+ cmp r7, #0xf
+ addhi sp, sp, #0x38
+ ldmhiia sp!, {r4, r5, r6, r7, r8, lr}
+ bxhi lr
+ add r1, sp, #0
+ mov r2, r7
+ add r0, r0, #0xa
+ bl MOD13_02217070
+ ldr r3, _02212C14 ; =0x02240AFC
+ ldrb r8, [sp]
+ ldr r2, [r3]
+ sub r4, r7, #1
+ add r1, r2, r4, lsl #2
+ add r1, r1, #0x1000
+ ldr r6, [r1, #0x4e8]
+ mov r5, r0
+ cmp r8, #0xb
+ addls pc, pc, r8, lsl #2
+ b _02212C08
+_02212774: ; jump table
+ b _02212C08 ; case 0
+ b _02212C08 ; case 1
+ b _02212C08 ; case 2
+ b _02212C08 ; case 3
+ b _02212C08 ; case 4
+ b _02212C08 ; case 5
+ b _02212C08 ; case 6
+ b _022127A4 ; case 7
+ b _02212A30 ; case 8
+ b _02212AEC ; case 9
+ b _02212B68 ; case 10
+ b _02212C08 ; case 11
+_022127A4:
+ cmp r6, #2
+ bne _02212848
+ cmp r5, #0
+ addeq sp, sp, #0x38
+ ldmeqia sp!, {r4, r5, r6, r7, r8, lr}
+ bxeq lr
+ add r1, sp, #0x14
+ mov r2, #0x1d
+ bl MI_CpuCopy8
+ ldr r3, _02212C14 ; =0x02240AFC
+ mov r0, r4
+ ldr r1, [r3]
+ ldr r2, [sp, #0x14]
+ add r1, r1, r0, lsl #2
+ add r1, r1, #0x1000
+ str r2, [r1, #0x4a8]
+ ldr r1, [r3]
+ mov r2, #0x16
+ add r1, r1, r0, lsl #1
+ mul r8, r0, r2
+ ldrh ip, [sp, #0x2e]
+ add r1, r1, #0x1400
+ add r0, sp, #0x18
+ strh ip, [r1, #0x8a]
+ ldr r1, [r3]
+ add r1, r1, #0x1340
+ add r1, r1, r8
+ bl MI_CpuCopy8
+ ldr r0, _02212C14 ; =0x02240AFC
+ and r1, r7, #0xff
+ ldr r0, [r0]
+ and r2, r1, #0xf
+ add ip, r0, #0x1340
+ ldrb r3, [ip, r8]
+ mov r0, r7
+ mov r1, #0xa
+ bic r3, r3, #0xf0
+ orr r2, r3, r2, lsl #4
+ strb r2, [ip, r8]
+ add r2, sp, #0x18
+ bl MOD13_02213124
+_02212848:
+ cmp r6, #0xa
+ addne sp, sp, #0x38
+ ldmneia sp!, {r4, r5, r6, r7, r8, lr}
+ bxne lr
+ ldrb r8, [r5, #0x1c]
+ mov r2, #0
+ cmp r8, #0x10
+ bhs _022128A4
+ ldr r0, _02212C14 ; =0x02240AFC
+ ldr r1, _02212C18 ; =0x000005D4
+ ldr r0, [r0]
+ mla r6, r8, r1, r0
+ add r1, r6, #0x1000
+ ldrb r3, [r1, #0xd52]
+ cmp r3, #0
+ beq _022128A4
+ add r3, r0, r4, lsl #2
+ ldr r1, [r1, #0xd40]
+ add r3, r3, #0x1000
+ ldr r5, [r3, #0x4a8]
+ ldr r3, [r1, #0x14]
+ cmp r5, r3
+ beq _022128C0
+_022128A4:
+ ldr r0, _02212C14 ; =0x02240AFC
+ mov r1, #4
+ ldr r0, [r0]
+ add r0, r0, r4, lsl #1
+ add r0, r0, #0x1700
+ strh r1, [r0, #0x54]
+ b _02212924
+_022128C0:
+ add r3, r6, #0x1d00
+ ldrh r6, [r3, #0x4e]
+ mov ip, r2
+ mov r5, #1
+_022128D0:
+ mov r3, r5, lsl ip
+ ands r3, r3, r6
+ add r3, ip, #1
+ addne r2, r2, #1
+ and ip, r3, #0xff
+ andne r2, r2, #0xff
+ cmp ip, #0x10
+ blo _022128D0
+ ldrb r1, [r1, #0x18]
+ cmp r2, r1
+ blo _02212924
+ add r1, r0, r4, lsl #1
+ add r3, r1, #0x1700
+ mov r2, #0
+ mov r0, r7
+ mov r1, #0xb
+ strh r2, [r3, #0x54]
+ bl MOD13_02213124
+ add sp, sp, #0x38
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02212924:
+ ldr r3, _02212C14 ; =0x02240AFC
+ ldr r2, [r3]
+ add r0, r2, r4, lsl #1
+ add r4, r0, #0x1700
+ ldrh r0, [r4, #0x54]
+ cmp r0, #3
+ beq _02212954
+ cmp r0, #4
+ beq _02212A10
+ add sp, sp, #0x38
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02212954:
+ add r0, r2, #0x1500
+ mov r1, #1
+ ldrh r0, [r0, #0x36]
+ mov r6, r1, lsl r7
+ ands r0, r0, r6
+ addne sp, sp, #0x38
+ ldmneia sp!, {r4, r5, r6, r7, r8, lr}
+ bxne lr
+ add r0, r2, #0x1000
+ ldrb r2, [r0, #0x535]
+ ldr r1, _02212C18 ; =0x000005D4
+ sub r5, r7, #1
+ add r2, r2, #1
+ strb r2, [r0, #0x535]
+ ldr r0, [r3]
+ mul r4, r8, r1
+ add r1, r0, #0x1500
+ ldrh ip, [r1, #0x36]
+ mov r0, r7
+ mov r2, #0
+ orr r7, ip, r6
+ strh r7, [r1, #0x36]
+ ldr r7, [r3]
+ mov r1, #5
+ add r7, r7, r5
+ add r7, r7, #0x1000
+ strb r8, [r7, #0x526]
+ ldr r7, [r3]
+ add r7, r7, r4
+ add r7, r7, #0x1d00
+ ldrh r8, [r7, #0x4e]
+ orr r8, r8, r6
+ strh r8, [r7, #0x4e]
+ ldr r7, [r3]
+ add r4, r7, r4
+ add r4, r4, #0x1d00
+ ldrh r7, [r4, #0x50]
+ orr r6, r7, r6
+ strh r6, [r4, #0x50]
+ ldr r3, [r3]
+ add r3, r3, r5, lsl #1
+ add r3, r3, #0x1700
+ strh r2, [r3, #0x54]
+ bl MOD13_02213124
+ add sp, sp, #0x38
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02212A10:
+ mov r2, #0
+ mov r0, r7
+ mov r1, #4
+ strh r2, [r4, #0x54]
+ bl MOD13_02213124
+ add sp, sp, #0x38
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02212A30:
+ cmp r6, #5
+ bne _02212A54
+ mov r0, r7
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD13_02213124
+ add sp, sp, #0x38
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02212A54:
+ cmp r6, #0xe
+ addne sp, sp, #0x38
+ ldmneia sp!, {r4, r5, r6, r7, r8, lr}
+ bxne lr
+ add r0, r2, r4, lsl #1
+ add r0, r0, #0x1700
+ ldrh r0, [r0, #0x54]
+ mov r5, r4, lsl #1
+ cmp r0, #2
+ addne sp, sp, #0x38
+ ldmneia sp!, {r4, r5, r6, r7, r8, lr}
+ bxne lr
+ add r0, r2, r4
+ add r0, r0, #0x1000
+ ldrb r1, [r0, #0x526]
+ ldr r0, _02212C18 ; =0x000005D4
+ mov r6, #1
+ mul r4, r1, r0
+ add r0, r2, r4
+ add r1, r0, #0x1d00
+ ldrh r8, [r1, #0x4c]
+ mov r2, #0
+ mov r0, r7
+ orr r6, r8, r6, lsl r7
+ strh r6, [r1, #0x4c]
+ ldr r6, [r3]
+ mov r1, #6
+ add r4, r6, r4
+ add r4, r4, #0x1d00
+ strh r2, [r4, #0x48]
+ ldr r3, [r3]
+ add r3, r3, r5
+ add r3, r3, #0x1700
+ strh r2, [r3, #0x54]
+ bl MOD13_02213124
+ add sp, sp, #0x38
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02212AEC:
+ cmp r6, #6
+ addne sp, sp, #0x38
+ ldmneia sp!, {r4, r5, r6, r7, r8, lr}
+ bxne lr
+ add r0, r2, r4
+ add r0, r0, #0x1000
+ ldrb r5, [r0, #0x526]
+ cmp r5, #0xff
+ addeq sp, sp, #0x38
+ ldmeqia sp!, {r4, r5, r6, r7, r8, lr}
+ bxeq lr
+ ldr r0, _02212C18 ; =0x000005D4
+ ldrh r1, [sp, #2]
+ mul r4, r5, r0
+ add r0, r2, r4
+ add r0, r0, #0x1d00
+ ldrh r0, [r0, #0x4a]
+ bl MOD13_02211EE4
+ ldr r1, _02212C14 ; =0x02240AFC
+ ldr r2, _02212C1C ; =0x02240A40
+ ldr r1, [r1]
+ mov r3, #1
+ add r1, r1, r4
+ add r1, r1, #0x1d00
+ strh r0, [r1, #0x4a]
+ ldr r0, [r2]
+ add sp, sp, #0x38
+ orr r0, r0, r3, lsl r5
+ str r0, [r2]
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02212B68:
+ cmp r6, #6
+ bne _02212BC8
+ add r0, r2, r4
+ add r0, r0, #0x1000
+ ldrb r3, [r0, #0x526]
+ cmp r3, #0xff
+ addeq sp, sp, #0x38
+ ldmeqia sp!, {r4, r5, r6, r7, r8, lr}
+ bxeq lr
+ ldr r0, _02212C18 ; =0x000005D4
+ mov r1, #1
+ mla r0, r3, r0, r2
+ add r3, r0, #0x1d00
+ ldrh r2, [r3, #0x4c]
+ mvn r0, r1, lsl r7
+ and r4, r2, r0
+ mov r0, r7
+ mov r1, #7
+ mov r2, #0
+ strh r4, [r3, #0x4c]
+ bl MOD13_02213124
+ add sp, sp, #0x38
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02212BC8:
+ cmp r6, #7
+ addne sp, sp, #0x38
+ ldmneia sp!, {r4, r5, r6, r7, r8, lr}
+ bxne lr
+ add r0, r2, r4, lsl #1
+ add r3, r0, #0x1700
+ ldrh r0, [r3, #0x54]
+ cmp r0, #5
+ addne sp, sp, #0x38
+ ldmneia sp!, {r4, r5, r6, r7, r8, lr}
+ bxne lr
+ mov r2, #0
+ mov r0, r7
+ mov r1, #8
+ strh r2, [r3, #0x54]
+ bl MOD13_02213124
+_02212C08:
+ add sp, sp, #0x38
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+ .align 2, 0
+_02212C14: .word 0x02240AFC
+_02212C18: .word 0x000005D4
+_02212C1C: .word 0x02240A40
+
+ arm_func_start MOD13_02212C20
+MOD13_02212C20: ; 0x02212C20
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ mov r6, r0
+ mov r4, r1
+ cmp r6, #0x19
+ bgt _02212C84
+ cmp r6, #0x19
+ bge _02212ECC
+ cmp r6, #0x11
+ bgt _02212C78
+ cmp r6, #0x11
+ bge _02213084
+ cmp r6, #3
+ bgt _02213084
+ cmp r6, #0
+ blt _02213084
+ cmp r6, #0
+ beq _02212CC0
+ cmp r6, #1
+ beq _02212CE4
+ cmp r6, #3
+ beq _02212EC0
+ b _02213084
+_02212C78:
+ cmp r6, #0x15
+ beq _02212CAC
+ b _02213084
+_02212C84:
+ cmp r6, #0xff
+ bgt _02212CA0
+ cmp r6, #0xff
+ bge _02212F70
+ cmp r6, #0x1c
+ beq _02212ED4
+ b _02213084
+_02212CA0:
+ cmp r6, #0x100
+ beq _02212FE0
+ b _02213084
+_02212CAC:
+ mov r2, r4
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02213124
+ b _02213084
+_02212CC0:
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0
+ beq _02213084
+ cmp r0, #0x10
+ bhs _02213084
+ mov r2, r4
+ mov r1, #2
+ bl MOD13_02213124
+ b _02213084
+_02212CE4:
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0
+ beq _02213084
+ cmp r0, #0x10
+ bhs _02213084
+ ldr r2, _022130D8 ; =0x02240AFC
+ sub r0, r0, #1
+ ldr r3, [r2]
+ mov r1, #0
+ add r0, r3, r0, lsl #1
+ add r0, r0, #0x1400
+ strh r1, [r0, #0x8a]
+ ldrh r3, [r4, #0x10]
+ ldr r5, [r2]
+ ldr r0, _022130DC ; =0x000014A8
+ sub r2, r3, #1
+ add r0, r5, r0
+ add r0, r0, r2, lsl #2
+ mov r2, #4
+ bl MI_CpuFill8
+ ldr r0, _022130D8 ; =0x02240AFC
+ ldrh r1, [r4, #0x10]
+ ldr r0, [r0]
+ mov r2, #0x16
+ add r0, r0, #0x1340
+ sub r1, r1, #1
+ mla r0, r1, r2, r0
+ mov r1, #0
+ bl MI_CpuFill8
+ ldrh r0, [r4, #0x10]
+ bl MOD13_02217234
+ ldrh r1, [r4, #0x10]
+ ldr r0, _022130D8 ; =0x02240AFC
+ mov r3, #0
+ ldr r2, [r0]
+ sub r1, r1, #1
+ add r1, r2, r1, lsl #1
+ add r1, r1, #0x1700
+ strh r3, [r1, #0x54]
+ ldrh r8, [r4, #0x10]
+ ldr r5, [r0]
+ mvn r1, #0
+ sub r7, r8, #1
+ add r2, r5, r7
+ add r2, r2, #0x1500
+ ldrsb r3, [r2, #0x26]
+ cmp r3, r1
+ beq _02212E0C
+ ldr r2, _022130E0 ; =0x000005D4
+ and r3, r3, #0xff
+ mul r2, r3, r2
+ add r3, r5, r2
+ add sb, r3, #0x1d00
+ mov r5, #1
+ ldrh sl, [sb, #0x4e]
+ mvn r3, r5, lsl r8
+ and sl, sl, r3
+ strh sl, [sb, #0x4e]
+ ldr sb, [r0]
+ add sb, sb, r2
+ add sb, sb, #0x1d00
+ ldrh sl, [sb, #0x50]
+ orr r5, sl, r5, lsl r8
+ strh r5, [sb, #0x50]
+ ldr r5, [r0]
+ add r5, r5, r7
+ add r5, r5, #0x1000
+ strb r1, [r5, #0x526]
+ ldr r0, [r0]
+ add r0, r0, r2
+ add r0, r0, #0x1d00
+ ldrh r1, [r0, #0x4c]
+ and r1, r1, r3
+ strh r1, [r0, #0x4c]
+_02212E0C:
+ ldr r1, _022130D8 ; =0x02240AFC
+ ldrh r2, [r4, #0x10]
+ ldr r7, [r1]
+ mov r3, #1
+ add r0, r7, #0x1500
+ ldrh r5, [r0, #0x36]
+ mov r0, r3, lsl r2
+ ands r0, r5, r0
+ beq _02212E5C
+ add r0, r7, #0x1000
+ ldrb r2, [r0, #0x535]
+ sub r2, r2, #1
+ strb r2, [r0, #0x535]
+ ldr r0, [r1]
+ ldrh r1, [r4, #0x10]
+ add r0, r0, #0x1500
+ ldrh r2, [r0, #0x36]
+ mvn r1, r3, lsl r1
+ and r1, r2, r1
+ strh r1, [r0, #0x36]
+_02212E5C:
+ ldrh r0, [r4, #0x10]
+ ldr r1, _022130D8 ; =0x02240AFC
+ ldr r2, [r1]
+ sub r1, r0, #1
+ add r1, r2, r1, lsl #2
+ add r1, r1, #0x1000
+ ldr r1, [r1, #0x4e8]
+ cmp r1, #8
+ bne _02212E8C
+ mov r1, #9
+ mov r2, #0
+ bl MOD13_02213124
+_02212E8C:
+ ldrh r0, [r4, #0x10]
+ mov r2, r4
+ mov r1, #3
+ bl MOD13_02213124
+ ldrh r1, [r4, #0x10]
+ ldr r0, _022130D8 ; =0x02240AFC
+ mov r3, #0
+ ldr r2, [r0]
+ sub r0, r1, #1
+ add r0, r2, r0, lsl #2
+ add r0, r0, #0x1000
+ str r3, [r0, #0x4e8]
+ b _02213084
+_02212EC0:
+ mov r0, r4
+ bl MOD13_02212658
+ b _02213084
+_02212ECC:
+ bl MOD13_02211F78
+ b _02213084
+_02212ED4:
+ mov r5, #0
+ ldr sb, _022130D8 ; =0x02240AFC
+ ldr r7, _022130E4 ; =0x0000186C
+ ldr r8, _022130E0 ; =0x000005D4
+ mov sl, r5
+_02212EE8:
+ mul r4, r5, r8
+ ldr r1, [sb]
+ add r2, r1, r4
+ add r0, r2, #0x1000
+ ldrb r0, [r0, #0xd52]
+ cmp r0, #0
+ beq _02212F38
+ add r0, r2, #0x1d00
+ ldrh r3, [r0, #0x50]
+ cmp r3, #0
+ beq _02212F38
+ ldrh r2, [r0, #0x4e]
+ add r0, r1, r7
+ add r0, r0, r4
+ add r1, r1, #0x1340
+ bl MOD13_022148D4
+ ldr r0, [sb]
+ add r0, r0, r4
+ add r0, r0, #0x1d00
+ strh sl, [r0, #0x50]
+_02212F38:
+ add r0, r5, #1
+ and r5, r0, #0xff
+ cmp r5, #0x10
+ blo _02212EE8
+ bl MOD13_02214BF4
+ mov r5, r0
+ bl MOD13_02214BE0
+ mov r4, r0
+ bl MOD13_02214B80
+ mov r2, r0
+ mov r0, r5
+ mov r1, r4
+ bl MOD13_02214768
+ b _02213084
+_02212F70:
+ ldrh r0, [r4, #2]
+ cmp r0, #0xf
+ addls pc, pc, r0, lsl #2
+ b _02212FD0
+_02212F80: ; jump table
+ b _02212FD0 ; case 0
+ b _02212FC0 ; case 1
+ b _02212FD0 ; case 2
+ b _02212FD0 ; case 3
+ b _02212FC0 ; case 4
+ b _02212FC0 ; case 5
+ b _02212FC0 ; case 6
+ b _02212FD0 ; case 7
+ b _02212FC0 ; case 8
+ b _02212FC0 ; case 9
+ b _02212FD0 ; case 10
+ b _02212FD0 ; case 11
+ b _02212FD0 ; case 12
+ b _02212FD0 ; case 13
+ b _02212FD0 ; case 14
+ b _02212FD0 ; case 15
+_02212FC0:
+ mov r0, #0
+ mov r1, #9
+ bl MOD13_02211EA4
+ b _02213084
+_02212FD0:
+ mov r0, #0
+ mov r1, #8
+ bl MOD13_02211EA4
+ b _02213084
+_02212FE0:
+ ldrh r0, [r4]
+ cmp r0, #0x1d
+ addls pc, pc, r0, lsl #2
+ b _02213078
+_02212FF0: ; jump table
+ b _02213068 ; case 0
+ b _02213078 ; case 1
+ b _02213078 ; case 2
+ b _02213078 ; case 3
+ b _02213078 ; case 4
+ b _02213078 ; case 5
+ b _02213078 ; case 6
+ b _02213068 ; case 7
+ b _02213068 ; case 8
+ b _02213078 ; case 9
+ b _02213078 ; case 10
+ b _02213078 ; case 11
+ b _02213078 ; case 12
+ b _02213068 ; case 13
+ b _02213068 ; case 14
+ b _02213068 ; case 15
+ b _02213078 ; case 16
+ b _02213068 ; case 17
+ b _02213068 ; case 18
+ b _02213078 ; case 19
+ b _02213078 ; case 20
+ b _02213068 ; case 21
+ b _02213078 ; case 22
+ b _02213078 ; case 23
+ b _02213078 ; case 24
+ b _02213068 ; case 25
+ b _02213078 ; case 26
+ b _02213078 ; case 27
+ b _02213078 ; case 28
+ b _02213068 ; case 29
+_02213068:
+ mov r0, #0
+ mov r1, #9
+ bl MOD13_02211EA4
+ b _02213084
+_02213078:
+ mov r0, #0
+ mov r1, #8
+ bl MOD13_02211EA4
+_02213084:
+ cmp r6, #0x11
+ ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ bxne lr
+ ldr r1, _022130D8 ; =0x02240AFC
+ mov r0, #0
+ ldr r1, [r1]
+ mov r2, #0x7d00
+ add r3, r1, #0x1000
+ ldr r4, [r3, #0x4e4]
+ bl MIi_CpuClearFast
+ ldr r1, _022130D8 ; =0x02240AFC
+ mov r0, #0
+ str r0, [r1]
+ cmp r4, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ bxeq lr
+ mov r2, r0
+ mov r1, #0xc
+ blx r4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ bx lr
+ .align 2, 0
+_022130D8: .word 0x02240AFC
+_022130DC: .word 0x000014A8
+_022130E0: .word 0x000005D4
+_022130E4: .word 0x0000186C
+
+ arm_func_start MOD13_022130E8
+MOD13_022130E8: ; 0x022130E8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r3, _02213120 ; =0x02240AFC
+ ldr r3, [r3]
+ add r3, r3, #0x1000
+ ldr r3, [r3, #0x4e4]
+ cmp r3, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ blx r3
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+ .align 2, 0
+_02213120: .word 0x02240AFC
+
+ arm_func_start MOD13_02213124
+MOD13_02213124: ; 0x02213124
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl MOD13_02211EC8
+ cmp r0, #0
+ beq _02213158
+ ldr r0, _02213170 ; =0x02240AFC
+ sub r1, r6, #1
+ ldr r0, [r0]
+ add r0, r0, r1, lsl #2
+ add r0, r0, #0x1000
+ str r5, [r0, #0x4e8]
+_02213158:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_022130E8
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+ .align 2, 0
+_02213170: .word 0x02240AFC
+
+ arm_func_start MOD13_02213174
+MOD13_02213174: ; 0x02213174
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r5, r1
+ mov r7, r0
+ bl OS_DisableInterrupts
+ mov r4, r0
+ cmp r5, #3
+ addls pc, pc, r5, lsl #2
+ b _022131D8
+_02213198: ; jump table
+ b _022131A8 ; case 0
+ b _022131B4 ; case 1
+ b _022131C0 ; case 2
+ b _022131CC ; case 3
+_022131A8:
+ mov r5, #0xa
+ mov r6, #4
+ b _022131F0
+_022131B4:
+ mov r5, #0xa
+ mov r6, #3
+ b _022131F0
+_022131C0:
+ mov r5, #0xe
+ mov r6, #2
+ b _022131F0
+_022131CC:
+ mov r5, #7
+ mov r6, #5
+ b _022131F0
+_022131D8:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_022131F0:
+ ldr r0, _0221326C ; =0x02240AFC
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02213254
+ mov r0, r7
+ bl MOD13_02211EC8
+ cmp r0, #0
+ beq _02213254
+ ldr r0, _0221326C ; =0x02240AFC
+ sub r2, r7, #1
+ ldr r1, [r0]
+ add r0, r1, r2, lsl #2
+ add r0, r0, #0x1000
+ ldr r0, [r0, #0x4e8]
+ cmp r5, r0
+ bne _02213254
+ add r0, r1, r2, lsl #1
+ add r1, r0, #0x1700
+ mov r0, r4
+ strh r6, [r1, #0x54]
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ mov r0, #1
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_02213254:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+ .align 2, 0
+_0221326C: .word 0x02240AFC
+
+ arm_func_start MOD13_02213270
+MOD13_02213270: ; 0x02213270
+ stmdb sp!, {r4, lr}
+ ldr r1, _022132C8 ; =0x02240AFC
+ mov r4, r0
+ ldr r1, [r1]
+ cmp r1, #0
+ beq _022132BC
+ bl MOD13_02211EC8
+ cmp r0, #0
+ beq _022132BC
+ ldr r0, _022132C8 ; =0x02240AFC
+ sub r1, r4, #1
+ ldr r0, [r0]
+ add r0, r0, r1, lsl #2
+ add r0, r0, #0x1000
+ ldr r0, [r0, #0x4e8]
+ cmp r0, #7
+ moveq r0, #1
+ ldmeqia sp!, {r4, lr}
+ bxeq lr
+_022132BC:
+ mov r0, #0
+ ldmia sp!, {r4, lr}
+ bx lr
+ .align 2, 0
+_022132C8: .word 0x02240AFC
+
+ arm_func_start MOD13_022132CC
+MOD13_022132CC: ; 0x022132CC
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, _02213360 ; =0x02240AFC
+ mov r4, r0
+ ldr r0, [r1]
+ cmp r0, #0
+ beq _02213348
+ mov r0, r5
+ bl MOD13_02211EC8
+ cmp r0, #0
+ beq _02213348
+ ldr r0, _02213360 ; =0x02240AFC
+ sub r3, r5, #1
+ ldr ip, [r0]
+ ldr r1, _02213364 ; =0x00001772
+ add r0, ip, #0x1340
+ mov r2, #0x16
+ mla r0, r3, r2, r0
+ add r1, ip, r1
+ bl MI_CpuCopy8
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldr r1, _02213360 ; =0x02240AFC
+ ldr r0, _02213364 ; =0x00001772
+ ldr r1, [r1]
+ add sp, sp, #4
+ add r0, r1, r0
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+_02213348:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+ .align 2, 0
+_02213360: .word 0x02240AFC
+_02213364: .word 0x00001772
+
+ arm_func_start MOD13_02213368
+MOD13_02213368: ; 0x02213368
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r1, _02213390 ; =0x02240AFC
+ ldr r1, [r1]
+ add r1, r1, #0x1000
+ str r4, [r1, #0x4e4]
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4, lr}
+ bx lr
+ .align 2, 0
+_02213390: .word 0x02240AFC
+
+ arm_func_start MOD13_02213394
+MOD13_02213394: ; 0x02213394
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r3, _02213498 ; =0x0223C420
+ ldr r3, [r3, r0, lsl #2]
+ cmp r3, #0
+ beq _022133BC
+ cmp r3, #1
+ beq _022133CC
+ cmp r3, #2
+ bne _02213478
+_022133BC:
+ bl MOD13_022134A8
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+_022133CC:
+ cmp r1, #0x2000000
+ blo _02213444
+ ldr r0, _0221349C ; =0x023FE800
+ cmp r1, r0
+ bhs _02213444
+ cmp r1, #0x2300000
+ add r1, r1, r2
+ bhs _02213400
+ cmp r1, #0x2300000
+ addhi sp, sp, #4
+ movhi r0, #0
+ ldmhiia sp!, {lr}
+ bxhi lr
+_02213400:
+ cmp r1, #0x2300000
+ addls sp, sp, #4
+ movls r0, #1
+ ldmlsia sp!, {lr}
+ bxls lr
+ ldr r0, _0221349C ; =0x023FE800
+ cmp r1, r0
+ bhs _02213434
+ cmp r2, #0x40000
+ addls sp, sp, #4
+ movls r0, #1
+ ldmlsia sp!, {lr}
+ bxls lr
+_02213434:
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {lr}
+ bx lr
+_02213444:
+ ldr r0, _022134A0 ; =0x037F8000
+ cmp r1, r0
+ blo _02213488
+ ldr r0, _022134A4 ; =0x0380F000
+ cmp r1, r0
+ bhs _02213488
+ add r1, r1, r2
+ cmp r1, r0
+ movls r0, #1
+ add sp, sp, #4
+ movhi r0, #0
+ ldmia sp!, {lr}
+ bx lr
+_02213478:
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {lr}
+ bx lr
+_02213488:
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+ .align 2, 0
+_02213498: .word 0x0223C420
+_0221349C: .word 0x023FE800
+_022134A0: .word 0x037F8000
+_022134A4: .word 0x0380F000
+
+ arm_func_start MOD13_022134A8
+MOD13_022134A8: ; 0x022134A8
+ ldr r3, _0221354C ; =0x0223C420
+ ldr r0, [r3, r0, lsl #2]
+ cmp r0, #0
+ beq _022134EC
+ cmp r0, #1
+ beq _02213508
+ cmp r0, #2
+ bne _0221353C
+ ldr r0, _02213550 ; =0x027FFE00
+ cmp r1, r0
+ blo _02213544
+ ldr r0, _02213554 ; =0x027FFF60
+ add r1, r1, r2
+ cmp r1, r0
+ bhi _02213544
+ mov r0, #1
+ bx lr
+_022134EC:
+ cmp r1, #0x2000000
+ blo _02213544
+ add r0, r1, r2
+ cmp r0, #0x22c0000
+ bhi _02213544
+ mov r0, #1
+ bx lr
+_02213508:
+ cmp r1, #0x22c0000
+ blo _02213520
+ add r0, r1, r2
+ cmp r0, #0x2300000
+ movls r0, #1
+ bxls lr
+_02213520:
+ cmp r1, #0x2000000
+ blo _02213544
+ add r0, r1, r2
+ cmp r0, #0x2300000
+ bhi _02213544
+ mov r0, #1
+ bx lr
+_0221353C:
+ mov r0, #0
+ bx lr
+_02213544:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_0221354C: .word 0x0223C420
+_02213550: .word 0x027FFE00
+_02213554: .word 0x027FFF60
+
+ arm_func_start MOD13_02213558
+MOD13_02213558: ; 0x02213558
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldrh r4, [r1, #0x12]
+ cmp r2, r4
+ addhs sp, sp, #4
+ movhs r0, #0
+ ldmhsia sp!, {r4, r5, lr}
+ bxhs lr
+ mov ip, #2
+_0221357C:
+ add r4, r1, ip, lsl #1
+ ldrh r4, [r4, #0xc]
+ cmp r2, r4
+ bhs _0221359C
+ sub r4, ip, #1
+ mov ip, r4, lsl #0x18
+ movs ip, ip, asr #0x18
+ bpl _0221357C
+_0221359C:
+ cmp ip, #0
+ addlt sp, sp, #4
+ movlt r0, #0
+ ldmltia sp!, {r4, r5, lr}
+ bxlt lr
+ ldr r4, _02213628 ; =0x02240AFC
+ add r5, r1, ip, lsl #1
+ ldr lr, [r4]
+ ldrh r5, [r5, #0xc]
+ add lr, lr, #0x1000
+ ldr lr, [lr, #0x318]
+ sub r5, r2, r5
+ mul r2, r5, lr
+ add r3, r3, #0xc
+ add r5, r3, ip, lsl #4
+ ldr r3, [r5, #8]
+ sub r3, r3, r2
+ str r3, [r0, #4]
+ ldr r3, [r4]
+ ldr r4, [r0, #4]
+ add r3, r3, #0x1000
+ ldr r3, [r3, #0x318]
+ cmp r4, r3
+ strhi r3, [r0, #4]
+ ldr r1, [r1, ip, lsl #2]
+ add r1, r2, r1
+ str r1, [r0, #8]
+ ldr r1, [r5]
+ add r1, r2, r1
+ str r1, [r0]
+ strb ip, [r0, #0xc]
+ mov r0, #1
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+ .align 2, 0
+_02213628: .word 0x02240AFC
+
+ arm_func_start MOD13_0221362C
+MOD13_0221362C: ; 0x0221362C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ mov r5, r0
+ add r4, r5, #0xc
+ cmp r1, #0
+ mov r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ bxeq lr
+ mov r2, r0
+_0221364C:
+ str r0, [r5, r2, lsl #2]
+ add r3, r1, r2, lsl #4
+ add r2, r2, #1
+ ldr r3, [r3, #0x14]
+ and r2, r2, #0xff
+ cmp r2, #3
+ add r0, r0, r3
+ blo _0221364C
+ mov r8, #0
+ strh r8, [r4]
+ ldr r6, _02213704 ; =0x02240AFC
+ add r7, r1, #0xc
+_0221367C:
+ ldr r0, [r6]
+ add sl, r7, r8, lsl #4
+ add r0, r0, #0x1000
+ ldr r1, [r0, #0x318]
+ ldr sb, [sl, #8]
+ add r0, sb, r1
+ sub r0, r0, #1
+ bl _u32_div_f
+ mov r1, r8, lsl #1
+ ldrh r3, [r4, r1]
+ mov r2, r0, lsl #0x10
+ ldr r1, [sl, #4]
+ add r2, r3, r2, lsr #16
+ mov r3, r2, lsl #0x10
+ mov r2, sb
+ mov r0, r8
+ mov sb, r3, lsr #0x10
+ bl MOD13_02213394
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ bxeq lr
+ cmp r8, #2
+ addlo r0, r8, #1
+ movlo r0, r0, lsl #1
+ strloh sb, [r4, r0]
+ add r0, r8, #1
+ and r8, r0, #0xff
+ strhsh sb, [r5, #0x12]
+ cmp r8, #3
+ blo _0221367C
+ mov r0, #1
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ bx lr
+ .align 2, 0
+_02213704: .word 0x02240AFC
+
+ arm_func_start MOD13_02213708
+MOD13_02213708: ; 0x02213708
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ ldr r1, [r1]
+ mov r7, r2
+ mov r6, r3
+ cmp r1, #0
+ beq _02213740
+ cmp r1, #1
+ beq _022137A4
+ cmp r1, #2
+ beq _02213880
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_02213740:
+ ldr r2, [r0, #0x28]
+ add r3, r0, #0x28
+ cmp r2, #0x2000000
+ blo _02213794
+ cmp r2, #0x22c0000
+ bhs _02213794
+ ldr r1, [r3, #4]
+ add r0, r2, r1
+ cmp r0, #0x22c0000
+ bhi _02213794
+ str r1, [r7, #8]
+ ldr r0, [r3]
+ add sp, sp, #4
+ str r0, [r7, #4]
+ ldr r0, [r7, #4]
+ str r0, [r7]
+ ldr r0, [r7, #0xc]
+ bic r0, r0, #1
+ str r0, [r7, #0xc]
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_02213794:
+ bl OS_Terminate
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_022137A4:
+ add r4, r0, #0x38
+ ldr r2, [r0, #0x38]
+ ldr r1, [r4, #4]
+ mov ip, #0
+ mov r5, ip
+ cmp r2, #0x2000000
+ add r3, r2, r1
+ blo _022137F4
+ ldr r0, _022138B0 ; =0x023FE800
+ cmp r2, r0
+ bhs _022137F4
+ cmp r3, #0x2300000
+ bls _02213820
+ cmp r3, r0
+ bhs _022137EC
+ cmp r1, #0x40000
+ movls r5, #1
+ bls _02213820
+_022137EC:
+ mov ip, #1
+ b _02213820
+_022137F4:
+ ldr r0, _022138B4 ; =0x037F8000
+ cmp r2, r0
+ blo _0221381C
+ ldr r0, _022138B8 ; =0x0380F000
+ cmp r2, r0
+ bhs _0221381C
+ cmp r3, r0
+ movls r5, #1
+ movhi ip, #1
+ b _02213820
+_0221381C:
+ mov ip, #1
+_02213820:
+ cmp ip, #1
+ bne _0221382C
+ bl OS_Terminate
+_0221382C:
+ ldr r0, [r4, #4]
+ cmp r5, #0
+ str r0, [r7, #8]
+ ldr r0, [r4]
+ str r0, [r7, #4]
+ ldreq r0, [r7, #4]
+ streq r0, [r7]
+ beq _02213864
+ ldr r0, [r6]
+ str r0, [r7]
+ ldr r1, [r6]
+ ldr r0, [r7, #8]
+ add r0, r1, r0
+ str r0, [r6]
+_02213864:
+ ldr r0, [r7, #0xc]
+ add sp, sp, #4
+ bic r0, r0, #1
+ orr r0, r0, #1
+ str r0, [r7, #0xc]
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_02213880:
+ mov r1, #0x160
+ ldr r0, _022138BC ; =0x027FFE00
+ str r1, [r7, #8]
+ str r0, [r7, #4]
+ ldr r0, [r7, #4]
+ str r0, [r7]
+ ldr r0, [r7, #0xc]
+ bic r0, r0, #1
+ str r0, [r7, #0xc]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+ .align 2, 0
+_022138B0: .word 0x023FE800
+_022138B4: .word 0x037F8000
+_022138B8: .word 0x0380F000
+_022138BC: .word 0x027FFE00
+
+ arm_func_start MOD13_022138C0
+MOD13_022138C0: ; 0x022138C0
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ sub sp, sp, #8
+ mov r2, #0x22c0000
+ mov r5, r1
+ str r2, [sp]
+ mov r6, r0
+ ldr r0, [r5, #0x24]
+ ldr r4, _02213940 ; =0x0223C420
+ str r0, [r6]
+ ldr r0, [r5, #0x34]
+ add r8, r5, #0x160
+ str r0, [r6, #4]
+ add sl, r6, #0xc
+ mov sb, #0
+ add r7, sp, #0
+_022138FC:
+ mov r0, r5
+ mov r1, r4
+ mov r2, sl
+ mov r3, r7
+ bl MOD13_02213708
+ add sb, sb, #1
+ cmp sb, #3
+ add sl, sl, #0x10
+ add r4, r4, #4
+ blt _022138FC
+ mov r0, r8
+ add r1, r6, #0x3c
+ mov r2, #0x88
+ bl MI_CpuCopy8
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ bx lr
+ .align 2, 0
+_02213940: .word 0x0223C420
+
+ arm_func_start MOD13_02213944
+MOD13_02213944: ; 0x02213944
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ mov sb, r0
+ mov r8, r1
+ mov r6, #0xff
+ bl OS_DisableInterrupts
+ mov r5, r0
+ bl MOD13_02214B60
+ cmp r0, #0
+ bne _02213984
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, lr}
+ bx lr
+_02213984:
+ ldr r0, _02213BFC ; =0x02240AFC
+ ldr r0, [r0]
+ add r1, r0, #0x1000
+ ldrb r1, [r1, #0x524]
+ add r1, r1, #1
+ cmp r1, #0x10
+ ble _022139B8
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, lr}
+ bx lr
+_022139B8:
+ ldr r1, _02213C00 ; =0x000005D4
+ mov r4, #0
+_022139C0:
+ mla r2, r4, r1, r0
+ add r2, r2, #0x1000
+ ldr r3, [r2, #0xd40]
+ cmp r3, sb
+ bne _022139EC
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, lr}
+ bx lr
+_022139EC:
+ ldrb r2, [r2, #0xd52]
+ cmp r2, #0
+ moveq r6, r4
+ beq _02213A0C
+ add r2, r4, #1
+ and r4, r2, #0xff
+ cmp r4, #0x10
+ blo _022139C0
+_02213A0C:
+ cmp r4, #0x10
+ bne _02213A2C
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, lr}
+ bx lr
+_02213A2C:
+ ldr r1, _02213C00 ; =0x000005D4
+ ldr r2, _02213BFC ; =0x02240AFC
+ mul r4, r6, r1
+ add r0, r0, r4
+ add r0, r0, #0x1000
+ str sb, [r0, #0xd40]
+ ldr r2, [r2]
+ ldr r0, _02213C04 ; =0x00001788
+ mov r1, r8
+ add r0, r2, r0
+ add r7, r0, r4
+ mov r0, r7
+ bl MOD13_022138C0
+ add r0, sb, #0x1c
+ add r1, r7, #0xc4
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ ldr r1, _02213BFC ; =0x02240AFC
+ ldr r0, _02213C08 ; =0x00001D2C
+ ldr r2, [r1]
+ mov r1, r7
+ add r0, r2, r0
+ add r0, r0, r4
+ bl MOD13_0221362C
+ cmp r0, #0
+ bne _02213AAC
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, lr}
+ bx lr
+_02213AAC:
+ ldr r1, _02213BFC ; =0x02240AFC
+ ldr r0, _02213C0C ; =0x0000186C
+ ldr r2, [r1]
+ mov r1, sb
+ add r0, r2, r0
+ add r0, r0, r4
+ add r2, r2, #0x1300
+ bl MOD13_02214A0C
+ ldr r2, _02213BFC ; =0x02240AFC
+ ldr r1, _02213C0C ; =0x0000186C
+ ldr r0, [r2]
+ add r0, r0, r4
+ add r0, r0, #0x1000
+ strb r6, [r0, #0xd21]
+ ldr r0, [r2]
+ add r0, r0, r1
+ add r0, r0, r4
+ bl MOD13_02214868
+ ldr r0, _02213C10 ; =0x02240A44
+ ldr r1, _02213BFC ; =0x02240AFC
+ ldrb r7, [r0]
+ ldr r3, [r1]
+ mov r2, #1
+ add r6, r7, #1
+ add r3, r3, r4
+ strb r6, [r0]
+ add r0, r3, #0x1000
+ strb r7, [r0, #0xd1f]
+ ldr r0, [r1]
+ add r3, r8, #0x1e8
+ add r0, r0, r4
+ add r0, r0, #0x1d00
+ strh r2, [r0, #0x4e]
+ ldr r0, [r1]
+ add r2, r8, #0x258
+ add r0, r0, r4
+ add r0, r0, #0x1000
+ str r8, [r0, #0xd44]
+ ldr r0, [r1]
+ add r0, r0, r4
+ add r0, r0, #0x1000
+ str r3, [r0, #0xd54]
+ ldr r0, [r1]
+ add r0, r0, r4
+ add r0, r0, #0x1000
+ str r2, [r0, #0xd58]
+ ldr r0, [r1]
+ add r0, r0, r4
+ add r0, r0, #0x1000
+ ldr r0, [r0, #0xd54]
+ ldr r0, [r0, #0x6c]
+ cmp r0, #0
+ beq _02213BB8
+ bl MOD13_02216DA4
+ cmp r0, #0
+ bne _02213BB8
+ ldr r1, _02213BFC ; =0x02240AFC
+ ldr r0, _02213C14 ; =0x00007CE0
+ ldr r1, [r1]
+ add r0, r1, r0
+ bl MOD13_02216D90
+ ldr r1, _02213BFC ; =0x02240AFC
+ ldr r0, _02213C18 ; =0x000074E0
+ ldr r2, [r1]
+ mov r1, #0x800
+ add r0, r2, r0
+ bl MOD13_02216DC0
+_02213BB8:
+ ldr r2, _02213BFC ; =0x02240AFC
+ mov r3, #1
+ ldr r1, [r2]
+ mov r0, r5
+ add r1, r1, r4
+ add r1, r1, #0x1000
+ strb r3, [r1, #0xd52]
+ ldr r1, [r2]
+ add r1, r1, #0x1000
+ ldrb r2, [r1, #0x524]
+ add r2, r2, #1
+ strb r2, [r1, #0x524]
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, lr}
+ bx lr
+ .align 2, 0
+_02213BFC: .word 0x02240AFC
+_02213C00: .word 0x000005D4
+_02213C04: .word 0x00001788
+_02213C08: .word 0x00001D2C
+_02213C0C: .word 0x0000186C
+_02213C10: .word 0x02240A44
+_02213C14: .word 0x00007CE0
+_02213C18: .word 0x000074E0
+
+ arm_func_start MOD13_02213C1C
+MOD13_02213C1C: ; 0x02213C1C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov lr, r1
+ ldr ip, [r0]
+ ldr r1, [r0, #0xc]
+ cmp lr, #0x4000
+ movlo lr, #0x4000
+ cmp r2, #0x8000
+ movhi r2, #0x8000
+ cmp lr, ip
+ add r1, ip, r1
+ movlo lr, ip
+ cmp r2, r1
+ movhi r2, r1
+ cmp lr, r2
+ addhs sp, sp, #4
+ ldmhsia sp!, {lr}
+ bxhs lr
+ cmp r3, #0
+ beq _02213C8C
+ ldr r0, [r0, #8]
+ sub r2, r2, lr
+ add r0, r0, lr
+ mov r1, #0
+ bl MI_CpuFill8
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+_02213C8C:
+ ldr r3, [r0, #4]
+ ldr r1, [r0, #8]
+ add r0, r3, lr
+ add r1, r1, lr
+ sub r2, r2, lr
+ bl MI_CpuCopy8
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start MOD13_02213CB0
+MOD13_02213CB0: ; 0x02213CB0
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x6c
+ str r2, [sp, #4]
+ cmp r2, #0x164
+ mov r2, #0
+ mov sl, r0
+ mov sb, r1
+ str r2, [sp, #8]
+ blo _022140F4
+ ldr r8, [sp, #4]
+ mov r7, sb
+ str r2, [sp, #0xc]
+ mov r6, r2
+ mov r5, r2
+ cmp sl, #0
+ add r7, r7, #0x160
+ sub r8, r8, #0x160
+ beq _02213D24
+ ldr r4, [sl, #0x2c]
+ ldr r3, [sl, #0x24]
+ mov r2, #0x160
+ sub fp, r4, r3
+ bl FS_ReadFile
+ cmp r0, #0x160
+ ldr r4, [sb, #0x80]
+ movlt r8, r5
+ cmp r4, #0
+ moveq r4, #0x1000000
+ b _02213D9C
+_02213D24:
+ ldr r0, _02214104 ; =0x027FFE00
+ mov r1, #1
+ ldr r4, [r0, #0x80]
+ add r0, sp, #0x20
+ cmp r4, #0
+ moveq r4, #0x1000000
+ str r1, [sp, #0xc]
+ bl FS_InitFile
+ ldr r0, _02214108 ; =0x0223F788
+ mov r1, #3
+ bl FS_FindArchive
+ mov r1, r0
+ mvn r0, #0
+ str r0, [sp]
+ add r0, sp, #0x20
+ mov r2, #0
+ add r3, r4, #0x88
+ bl FS_OpenFileDirect
+ ldr r2, [sp, #0x4c]
+ ldr r1, [sp, #0x44]
+ ldr r0, _02214104 ; =0x027FFE00
+ sub fp, r2, r1
+ mov r1, sb
+ mov r2, #0x160
+ add sl, sp, #0x20
+ bl MI_CpuCopy8
+ ldr r1, [sb, #0x60]
+ ldr r0, _0221410C ; =0x00406000
+ orr r0, r1, r0
+ str r0, [sb, #0x60]
+_02213D9C:
+ cmp r8, #0x88
+ movlo r8, #0
+ blo _02213DD0
+ mov r0, sl
+ add r1, fp, r4
+ mov r2, #0
+ bl FS_SeekFile
+ mov r0, sl
+ mov r1, r7
+ mov r2, #0x88
+ bl FS_ReadFile
+ add r7, r7, #0x88
+ sub r8, r8, #0x88
+_02213DD0:
+ cmp r8, #0x70
+ blo _02213E40
+ mov r0, r7
+ mov r6, r7
+ bl MOD13_02216B80
+ add r7, r7, #0x70
+ sub r8, r8, #0x70
+ mov r0, #3
+ str r0, [sp]
+ mov r0, r6
+ mov r1, #0
+ mov r2, #0x160
+ mov r3, sb
+ bl MOD13_02216B0C
+ ldr r0, [sl, #8]
+ mov r4, #0
+ b _02213E18
+_02213E14:
+ add r4, r4, #1
+_02213E18:
+ cmp r4, #3
+ bge _02213E2C
+ ldrsb r1, [r0, r4]
+ cmp r1, #0
+ bne _02213E14
+_02213E2C:
+ mov r2, r4
+ add r1, r6, #0x10
+ bl MI_CpuCopy8
+ str r4, [r6, #0x14]
+ b _02213E44
+_02213E40:
+ mov r8, #0
+_02213E44:
+ cmp r8, #0x10
+ movlo r8, #0
+ blo _02213E8C
+ mov r0, #0
+ str r0, [r7]
+ ldr r0, [sl, #0x24]
+ ldr r1, [sb, #0x20]
+ add r0, fp, r0
+ add r0, r1, r0
+ str r0, [r7, #4]
+ ldr r0, [sl, #0x24]
+ ldr r1, [sb, #0x30]
+ add r0, fp, r0
+ add r0, r1, r0
+ mov r5, r7
+ str r0, [r7, #8]
+ add r7, r7, #0x10
+ sub r8, r8, #0x10
+_02213E8C:
+ ldr r1, [sb, #0x2c]
+ ldr r0, [sb, #0x3c]
+ add r0, r1, r0
+ cmp r8, r0
+ blo _02213F38
+ ldr r4, [sl, #0x24]
+ ldr r1, [r5, #4]
+ mov r0, sl
+ sub r1, r1, r4
+ mov r2, #0
+ bl FS_SeekFile
+ ldr r2, [sb, #0x2c]
+ mov r0, sl
+ mov r1, r7
+ bl FS_ReadFile
+ mov r0, #3
+ str r0, [sp]
+ ldr r1, [r5, #4]
+ ldr r2, [sb, #0x2c]
+ mov r0, r6
+ mov r3, r7
+ bl MOD13_02216B0C
+ ldr r1, [sb, #0x2c]
+ mov r0, sl
+ add r7, r7, r1
+ ldr r1, [r5, #8]
+ mov r2, #0
+ sub r1, r1, r4
+ bl FS_SeekFile
+ ldr r2, [sb, #0x3c]
+ mov r0, sl
+ mov r1, r7
+ bl FS_ReadFile
+ mov r0, #3
+ str r0, [sp]
+ ldr r1, [r5, #8]
+ ldr r2, [sb, #0x3c]
+ mov r3, r7
+ mov r0, r6
+ bl MOD13_02216B0C
+ mov r0, #1
+ str r0, [sp, #8]
+ b _0221400C
+_02213F38:
+ cmp r8, #0xcc00
+ blo _0221400C
+ ldr r4, [sl, #0x24]
+ ldr r5, [r5, #4]
+ mov r0, sl
+ sub r1, r5, r4
+ mov r2, #0
+ bl FS_SeekFile
+ mov r0, sl
+ mov r1, r7
+ mov r2, #0x4400
+ bl FS_ReadFile
+ mov r0, #3
+ str r0, [sp]
+ mov r0, r6
+ mov r1, r5
+ mov r2, #0x4400
+ mov r3, r7
+ bl MOD13_02216B0C
+ add r1, r5, #0x4400
+ mov r0, sl
+ sub r1, r1, r4
+ mov r2, #0
+ bl FS_SeekFile
+ mov r0, sl
+ add r1, r7, #0x4400
+ mov r2, #0x4400
+ bl FS_ReadFile
+ mov r0, #2
+ str r0, [sp]
+ mov r0, r6
+ add r1, r5, #0x4400
+ mov r2, #0x4400
+ add r3, r7, #0x4400
+ bl MOD13_02216B0C
+ add r1, r5, #0x8800
+ mov r0, sl
+ sub r1, r1, r4
+ mov r2, #0
+ bl FS_SeekFile
+ mov r0, sl
+ add r1, r7, #0x8800
+ mov r2, #0x4400
+ bl FS_ReadFile
+ mov r0, #2
+ str r0, [sp]
+ add r1, r5, #0x8800
+ add r3, r7, #0x8800
+ mov r0, r6
+ mov r2, #0x4400
+ bl MOD13_02216B0C
+ mov r0, #1
+ str r0, [sp, #8]
+_0221400C:
+ mov r0, sl
+ mov r1, fp
+ mov r2, #0
+ bl FS_SeekFile
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ beq _022140DC
+ add r0, sp, #0x20
+ bl FS_CloseFile
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _022140DC
+ ldr r1, [sb, #0x20]
+ ldr r0, _02214110 ; =0x0223F784
+ str r1, [sp, #0x10]
+ ldr r2, [sb, #0x28]
+ ldr r1, [sb, #0x20]
+ ldr r4, [r0]
+ sub r0, r2, r1
+ str r0, [sp, #0x14]
+ ldr r2, [r6, #0x48]
+ ldr r1, [sb, #0x20]
+ add r0, sp, #0x10
+ sub r1, r2, r1
+ str r1, [sp, #0x18]
+ ldr r1, [sp, #4]
+ mov r2, #0x8000
+ str r1, [sp, #0x1c]
+ mov r1, #0x4000
+ mov r3, #1
+ bl MOD13_02213C1C
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _022140C4
+ add r7, sp, #0x10
+ mov r5, #0
+_0221409C:
+ ldr r1, [r4]
+ ldr r2, [r4, #4]
+ mov r0, r7
+ mov r3, r5
+ add r2, r1, r2
+ bl MOD13_02213C1C
+ add r4, r4, #8
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _0221409C
+_022140C4:
+ ldr r1, [sb, #0x28]
+ ldr r2, _02214114 ; =0x02000A74
+ ldr r3, [r6, #0x48]
+ ldr r0, _02214118 ; =0xE12FFF1E
+ sub r1, r2, r1
+ str r0, [r3, r1]
+_022140DC:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _022140F4
+ ldr r1, [sp, #4]
+ mov r0, sb
+ bl DC_FlushRange
+_022140F4:
+ ldr r0, [sp, #8]
+ add sp, sp, #0x6c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ bx lr
+ .align 2, 0
+_02214104: .word 0x027FFE00
+_02214108: .word 0x0223F788
+_0221410C: .word 0x00406000
+_02214110: .word 0x0223F784
+_02214114: .word 0x02000A74
+_02214118: .word 0xE12FFF1E
+
+ arm_func_start MOD13_0221411C
+MOD13_0221411C: ; 0x0221411C
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0x64
+ mov r6, #0
+ movs r7, r0
+ mov r5, r6
+ beq _02214168
+ ldr ip, [r7, #0x2c]
+ ldr r3, [r7, #0x24]
+ add r1, sp, #0
+ mov r2, #0x60
+ sub r4, ip, r3
+ bl FS_ReadFile
+ cmp r0, #0x60
+ mov r0, r7
+ mov r1, r4
+ mov r2, #0
+ addhs r6, sp, #0
+ bl FS_SeekFile
+ b _0221416C
+_02214168:
+ ldr r6, _0221419C ; =0x027FFE00
+_0221416C:
+ cmp r6, #0
+ beq _0221418C
+ ldr r1, [r6, #0x2c]
+ ldr r0, [r6, #0x3c]
+ add r1, r1, #0x268
+ add r5, r1, r0
+ cmp r5, #0x10000
+ movlo r5, #0x10000
+_0221418C:
+ mov r0, r5
+ add sp, sp, #0x64
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+ .align 2, 0
+_0221419C: .word 0x027FFE00
+
+ arm_func_start MOD13_022141A0
+MOD13_022141A0: ; 0x022141A0
+ mov r2, r1, asr #1
+ cmp r2, #0
+ mov r3, #0
+ ble _022141C4
+_022141B0:
+ ldrh r1, [r0], #2
+ sub r2, r2, #1
+ cmp r2, #0
+ add r3, r3, r1
+ bgt _022141B0
+_022141C4:
+ ldr r0, _022141E4 ; =0x0000FFFF
+ and r1, r3, r0
+ add r1, r1, r3, lsr #16
+ add r1, r1, r1, lsr #16
+ eor r0, r1, r0
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ bx lr
+ .align 2, 0
+_022141E4: .word 0x0000FFFF
+
+ arm_func_start MOD13_022141E8
+MOD13_022141E8: ; 0x022141E8
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, r0
+ mov r4, r2
+ add r2, r6, #0x1f
+ mov r5, r1
+ mov r0, r4
+ bic r1, r2, #0x1f
+ bl DC_FlushRange
+ bl DC_WaitWriteBufferEmpty
+ mov r0, r4
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_02214C08
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+
+ arm_func_start MOD13_02214224
+MOD13_02214224: ; 0x02214224
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x14
+ ldr r3, _022144AC ; =0x02240A50
+ str r0, [sp, #8]
+ ldr r0, [r3, #4]
+ ldrb r3, [r3, #0xe]
+ ldrb r0, [r0, #0x4b4]
+ str r1, [sp, #0xc]
+ str r2, [sp, #0x10]
+ cmp r3, r0
+ beq _02214254
+ bl MOD13_022144C8
+_02214254:
+ ldr r3, _022144B0 ; =0x02240A80
+ ldr r1, _022144AC ; =0x02240A50
+ ldrb r2, [r3, #4]
+ ldr r0, [r1, #4]
+ ldrb r5, [r1, #0x11]
+ bic r2, r2, #3
+ orr r2, r2, #2
+ strb r2, [r3, #4]
+ ldrb r4, [r0, #0x4b3]
+ ldrb r2, [r1, #0xe]
+ ldrb r7, [r3, #4]
+ strb r4, [r3, #5]
+ strb r2, [r3, #6]
+ ldr r4, [r0, #0x4b8]
+ ldr r2, _022144B4 ; =0x02240A48
+ str r4, [r3]
+ ldrb r6, [r0, #0x4b5]
+ add r4, r5, #1
+ bic r7, r7, #0xfc
+ and r6, r6, #0x3f
+ orr r6, r7, r6, lsl #2
+ strb r6, [r3, #4]
+ strb r4, [r1, #0x11]
+ strb r5, [r3, #7]
+ ldrb r4, [r0, #0x358]
+ add r1, r0, #0x300
+ ldr r2, [r2]
+ strb r4, [r3, #0xa]
+ ldrh r4, [r1, #0x5a]
+ cmp r2, #0
+ strh r4, [r3, #0xc]
+ ldrh r1, [r1, #0x5c]
+ strh r1, [r3, #0xe]
+ bne _022142F4
+ ldr r1, _022144B8 ; =0x02240A4C
+ ldr r1, [r1]
+ cmp r1, #0
+ beq _022142F4
+ ldr r0, [r0, #0x4b8]
+ blx r1
+_022142F4:
+ ldr r0, _022144AC ; =0x02240A50
+ ldr r1, _022144B0 ; =0x02240A80
+ ldr r2, [r0, #4]
+ mov r3, #0
+_02214304:
+ ldrb r0, [r2, #0x4a8]
+ add r3, r3, #1
+ cmp r3, #8
+ strb r0, [r1, #0x68]
+ add r2, r2, #1
+ add r1, r1, #1
+ blt _02214304
+ ldr r1, _022144BC ; =0x02240A90
+ mov r0, #0
+ mov r2, #0x58
+ bl MIi_CpuClear16
+ ldr r0, _022144AC ; =0x02240A50
+ mov sl, #0
+ ldr r1, [r0, #4]
+ ldr sb, _022144BC ; =0x02240A90
+ add r0, r1, #0x400
+ add r1, r1, #0x300
+ ldrh r2, [r0, #0xb0]
+ ldrh r0, [r1, #0x5a]
+ mov r5, sl
+ mov r8, sl
+ eor r0, r2, r0
+ mov r0, r0, lsl #0x10
+ mov r7, r0, lsr #0x10
+ mov fp, #0x16
+ mov r4, #2
+_0221436C:
+ mov r6, r4, lsl r5
+ ands r0, r7, r6
+ beq _022143C0
+ ldr r0, _022144AC ; =0x02240A50
+ mov r1, sb
+ ldr r2, [r0, #4]
+ ldr r0, _022144C0 ; =0x0000035E
+ add r0, r2, r0
+ add r0, r0, r8
+ mov r2, fp
+ bl MIi_CpuCopy16
+ ldr r0, _022144AC ; =0x02240A50
+ add sl, sl, #1
+ ldr r0, [r0, #4]
+ add sb, sb, #0x16
+ add r0, r0, #0x400
+ ldrh r1, [r0, #0xb0]
+ cmp sl, #4
+ orr r1, r1, r6
+ strh r1, [r0, #0xb0]
+ beq _022143D0
+_022143C0:
+ add r5, r5, #1
+ cmp r5, #0xf
+ add r8, r8, #0x16
+ blt _0221436C
+_022143D0:
+ cmp sl, #4
+ bhs _022143F0
+ mov r0, #0x16
+ mul r1, sl, r0
+ ldr r2, _022144BC ; =0x02240A90
+ ldrb r0, [r2, r1]
+ bic r0, r0, #0xf0
+ strb r0, [r2, r1]
+_022143F0:
+ ldr r2, _022144B0 ; =0x02240A80
+ mov r3, #0
+ ldr r0, _022144C4 ; =0x02240A88
+ mov r1, #0x68
+ strh r3, [r2, #8]
+ bl MOD13_022141A0
+ ldr r2, _022144AC ; =0x02240A50
+ ldr r1, _022144B0 ; =0x02240A80
+ ldr r3, [r2, #4]
+ strh r0, [r1, #8]
+ add r0, r3, #0x400
+ add r1, r3, #0x300
+ ldrh r3, [r0, #0xb0]
+ ldrh r0, [r1, #0x5a]
+ ldr r1, _022144B0 ; =0x02240A80
+ cmp r3, r0
+ moveq r0, #1
+ streqb r0, [r2, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r3, [sp, #8]
+ orr r2, r0, #3
+ ldr r0, [sp, #0xc]
+ and r4, r2, #0xff
+ str r0, [sp]
+ mov r0, #0
+ mov r2, #0x70
+ str r4, [sp, #4]
+ bl WM_SetGameInfo
+ ldr r0, _022144B4 ; =0x02240A48
+ ldr r0, [r0]
+ cmp r0, #1
+ addne sp, sp, #0x14
+ ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ bxne lr
+ ldr r0, _022144B8 ; =0x02240A4C
+ ldr r1, [r0]
+ cmp r1, #0
+ addeq sp, sp, #0x14
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ bxeq lr
+ ldr r0, _022144AC ; =0x02240A50
+ ldr r0, [r0, #4]
+ ldr r0, [r0, #0x4b8]
+ blx r1
+ add sp, sp, #0x14
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ bx lr
+ .align 2, 0
+_022144AC: .word 0x02240A50
+_022144B0: .word 0x02240A80
+_022144B4: .word 0x02240A48
+_022144B8: .word 0x02240A4C
+_022144BC: .word 0x02240A90
+_022144C0: .word 0x0000035E
+_022144C4: .word 0x02240A88
+
+ arm_func_start MOD13_022144C8
+MOD13_022144C8: ; 0x022144C8
+ ldr r1, _022144F4 ; =0x02240A50
+ mov r3, #1
+ ldr r0, [r1, #4]
+ mov r2, #5
+ add r0, r0, #0x400
+ strh r3, [r0, #0xb0]
+ ldr r0, [r1, #4]
+ ldrb r0, [r0, #0x4b4]
+ strb r0, [r1, #0xe]
+ strb r2, [r1, #0xc]
+ bx lr
+ .align 2, 0
+_022144F4: .word 0x02240A50
+
+ arm_func_start MOD13_022144F8
+MOD13_022144F8: ; 0x022144F8
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r3, _02214660 ; =0x02240A50
+ mov r6, r0
+ ldr r0, [r3, #4]
+ ldr r3, [r3, #8]
+ add r7, r0, #0x358
+ add r0, r3, #0x62
+ cmp r0, r7
+ mov r5, r1
+ ldrls r0, _02214664 ; =0x02240A80
+ movls r1, #0x62
+ mov r4, r2
+ strlsb r1, [r0, #0xc]
+ bls _02214558
+ ldr r0, _02214664 ; =0x02240A80
+ sub r1, r7, r3
+ strb r1, [r0, #0xc]
+ ldrb r2, [r0, #0xc]
+ ldr r1, _02214668 ; =0x02240A8E
+ mov r0, #0
+ add r1, r1, r2
+ rsb r2, r2, #0x62
+ bl MIi_CpuClear16
+_02214558:
+ ldr r0, _02214664 ; =0x02240A80
+ ldr r1, _02214660 ; =0x02240A50
+ ldrb r2, [r0, #0xc]
+ ldr r0, [r1, #8]
+ ldr r1, _02214668 ; =0x02240A8E
+ bl MIi_CpuCopy16
+ ldr r3, _02214660 ; =0x02240A50
+ ldr r2, _02214664 ; =0x02240A80
+ ldrb r8, [r3, #0xf]
+ ldrb r1, [r3, #0x10]
+ ldrb r7, [r2, #4]
+ strb r8, [r2, #0xa]
+ ldr r0, [r3, #4]
+ strb r1, [r2, #0xb]
+ ldrb r1, [r0, #0x4b2]
+ bic r7, r7, #3
+ ldrb r8, [r3, #0xe]
+ and r1, r1, #3
+ orr r1, r7, r1
+ strb r1, [r2, #4]
+ ldrb ip, [r0, #0x4b3]
+ ldrb r1, [r2, #4]
+ ldrb r7, [r3, #0x11]
+ strb ip, [r2, #5]
+ strb r8, [r2, #6]
+ ldr r8, [r0, #0x4b8]
+ bic r1, r1, #0xfc
+ str r8, [r2]
+ ldrb r0, [r0, #0x4b5]
+ add lr, r7, #1
+ mov ip, #0
+ and r0, r0, #0x3f
+ orr r8, r1, r0, lsl #2
+ ldr r0, _0221466C ; =0x02240A88
+ mov r1, #0x68
+ strb r8, [r2, #4]
+ strb lr, [r3, #0x11]
+ strb r7, [r2, #7]
+ strh ip, [r2, #8]
+ bl MOD13_022141A0
+ ldr r1, _02214660 ; =0x02240A50
+ ldr r2, _02214664 ; =0x02240A80
+ ldrb ip, [r1, #0xf]
+ strh r0, [r2, #8]
+ ldrb r3, [r1, #0x10]
+ add r0, ip, #1
+ strb r0, [r1, #0xf]
+ ldrb r0, [r1, #0xf]
+ mov r2, #0x70
+ cmp r0, r3
+ ldrlo r0, [r1, #8]
+ mov r3, r6
+ addlo r0, r0, #0x62
+ strlo r0, [r1, #8]
+ movhs r0, #4
+ strhsb r0, [r1, #0xc]
+ orr r0, r4, #3
+ and r4, r0, #0xff
+ str r5, [sp]
+ ldr r1, _02214664 ; =0x02240A80
+ mov r0, #0
+ str r4, [sp, #4]
+ bl WM_SetGameInfo
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+ .align 2, 0
+_02214660: .word 0x02240A50
+_02214664: .word 0x02240A80
+_02214668: .word 0x02240A8E
+_0221466C: .word 0x02240A88
+
+ arm_func_start MOD13_02214670
+MOD13_02214670: ; 0x02214670
+ ldr r0, _022146B8 ; =0x02240A50
+ ldrb r1, [r0, #0xc]
+ cmp r1, #2
+ bxne lr
+ ldr r2, [r0, #4]
+ ldrb r1, [r2, #0x4b2]
+ cmp r1, #0
+ moveq r1, #9
+ streqb r1, [r0, #0x10]
+ streq r2, [r0, #8]
+ addne r1, r2, #0x220
+ movne r2, #4
+ strne r1, [r0, #8]
+ strneb r2, [r0, #0x10]
+ ldr r0, _022146B8 ; =0x02240A50
+ mov r1, #3
+ strb r1, [r0, #0xc]
+ bx lr
+ .align 2, 0
+_022146B8: .word 0x02240A50
+
+ arm_func_start MOD13_022146BC
+MOD13_022146BC: ; 0x022146BC
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r0, _02214760 ; =0x02240A50
+ ldr r1, [r0]
+ cmp r1, #0
+ bne _02214710
+ bl MOD13_02214BF4
+ mov r4, r0
+ bl MOD13_02214BE0
+ str r0, [sp]
+ mov ip, #8
+ ldr r1, _02214764 ; =0x02240A80
+ mov r3, r4
+ mov r0, #0
+ mov r2, #0x70
+ str ip, [sp, #4]
+ bl WM_SetGameInfo
+ add sp, sp, #8
+ mov r0, #0
+ ldmia sp!, {r4, lr}
+ bx lr
+_02214710:
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _0221472C
+ ldr r0, [r0, #0x4bc]
+ cmp r0, #0
+ beq _0221472C
+ mov r1, r0
+_0221472C:
+ ldr r0, _02214760 ; =0x02240A50
+ str r1, [r0, #4]
+ bl MOD13_02214810
+ ldr r1, _02214760 ; =0x02240A50
+ mov r2, #2
+ ldr r3, [r1, #4]
+ mov r0, #1
+ ldrb r3, [r3, #0x4b4]
+ strb r3, [r1, #0xe]
+ strb r2, [r1, #0xc]
+ add sp, sp, #8
+ ldmia sp!, {r4, lr}
+ bx lr
+ .align 2, 0
+_02214760: .word 0x02240A50
+_02214764: .word 0x02240A80
+
+ arm_func_start MOD13_02214768
+MOD13_02214768: ; 0x02214768
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ ldr r4, _0221480C ; =0x02240A50
+_02214780:
+ ldrb r0, [r4, #0xc]
+ cmp r0, #6
+ addls pc, pc, r0, lsl #2
+ b _02214780
+_02214790: ; jump table
+ b _022147AC ; case 0
+ b _022147AC ; case 1
+ b _022147C4 ; case 2
+ b _022147CC ; case 3
+ b _022147E8 ; case 4
+ b _022147F0 ; case 5
+ b _02214780 ; case 6
+_022147AC:
+ bl MOD13_022146BC
+ cmp r0, #0
+ bne _02214780
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_022147C4:
+ bl MOD13_02214670
+ b _02214780
+_022147CC:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_022144F8
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_022147E8:
+ bl MOD13_022144C8
+ b _02214780
+_022147F0:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_02214224
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+ .align 2, 0
+_0221480C: .word 0x02240A50
+
+ arm_func_start MOD13_02214810
+MOD13_02214810: ; 0x02214810
+ ldr r0, _02214830 ; =0x02240A50
+ mov r1, #0
+ strb r1, [r0, #0xd]
+ strb r1, [r0, #0xe]
+ strb r1, [r0, #0xf]
+ strb r1, [r0, #0x10]
+ strb r1, [r0, #0x11]
+ bx lr
+ .align 2, 0
+_02214830: .word 0x02240A50
+
+ arm_func_start MOD13_02214834
+MOD13_02214834: ; 0x02214834
+ ldr r1, _0221485C ; =0x02240A50
+ mov r3, #0
+ ldr r0, _02214860 ; =0x02240A4C
+ mov r2, #1
+ ldr ip, _02214864 ; =MOD13_02214810
+ str r3, [r1]
+ str r3, [r1, #4]
+ strb r2, [r1, #0xc]
+ str r3, [r0]
+ bx ip
+ .align 2, 0
+_0221485C: .word 0x02240A50
+_02214860: .word 0x02240A4C
+_02214864: .word MOD13_02214810
+
+ arm_func_start MOD13_02214868
+MOD13_02214868: ; 0x02214868
+ ldr r1, _022148A8 ; =0x02240A50
+ ldr r2, [r1]
+ cmp r2, #0
+ streq r0, [r1]
+ beq _0221489C
+ ldr r1, [r2, #0x4bc]
+ cmp r1, #0
+ beq _02214898
+_02214888:
+ mov r2, r1
+ ldr r1, [r1, #0x4bc]
+ cmp r1, #0
+ bne _02214888
+_02214898:
+ str r0, [r2, #0x4bc]
+_0221489C:
+ mov r1, #0
+ str r1, [r0, #0x4bc]
+ bx lr
+ .align 2, 0
+_022148A8: .word 0x02240A50
+
+ arm_func_start MOD13_022148AC
+MOD13_022148AC: ; 0x022148AC
+ ldrh r1, [r0], #2
+ mov r2, #0
+ cmp r1, #0
+ beq _022148CC
+_022148BC:
+ ldrh r1, [r0], #2
+ add r2, r2, #1
+ cmp r1, #0
+ bne _022148BC
+_022148CC:
+ mov r0, r2
+ bx lr
+
+ arm_func_start MOD13_022148D4
+MOD13_022148D4: ; 0x022148D4
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ ldr r4, _02214950 ; =0x0000035E
+ mov r6, r0
+ mov r5, r2
+ mov r0, r1
+ ldr r2, _02214954 ; =0x0000014A
+ add r1, r6, r4
+ mov r4, r3
+ mov r7, #1
+ bl MIi_CpuCopy16
+ mov r2, #0
+ mov r1, #2
+_02214908:
+ mov r0, r1, lsl r2
+ ands r0, r5, r0
+ addne r0, r7, #1
+ add r2, r2, #1
+ andne r7, r0, #0xff
+ cmp r2, #0xf
+ blt _02214908
+ strb r7, [r6, #0x358]
+ orr r1, r5, #1
+ add r0, r6, #0x300
+ strh r1, [r0, #0x5a]
+ strh r4, [r0, #0x5c]
+ ldrb r0, [r6, #0x4b4]
+ add r0, r0, #1
+ strb r0, [r6, #0x4b4]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+ .align 2, 0
+_02214950: .word 0x0000035E
+_02214954: .word 0x0000014A
+
+ arm_func_start MOD13_02214958
+MOD13_02214958: ; 0x02214958
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #0x48
+ cmp r2, #0
+ movne r4, #0x200
+ moveq r4, #0x20
+ mov r6, r0
+ mov r5, r1
+ cmp r2, #0
+ addne r5, r5, #0x20
+ cmp r6, #0
+ addeq sp, sp, #0x48
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, lr}
+ bxeq lr
+ add r0, sp, #0
+ bl FS_InitFile
+ add r0, sp, #0
+ mov r1, r6
+ bl FS_OpenFile
+ cmp r0, #0
+ addeq sp, sp, #0x48
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, lr}
+ bxeq lr
+ ldr r1, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ sub r0, r1, r0
+ cmp r4, r0
+ beq _022149E4
+ add r0, sp, #0
+ bl FS_CloseFile
+ add sp, sp, #0x48
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+_022149E4:
+ add r0, sp, #0
+ mov r1, r5
+ mov r2, r4
+ bl FS_ReadFile
+ add r0, sp, #0
+ bl FS_CloseFile
+ mov r0, #1
+ add sp, sp, #0x48
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+
+ arm_func_start MOD13_02214A0C
+MOD13_02214A0C: ; 0x02214A0C
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ mov r1, r6
+ mov r0, #0
+ mov r2, #0x4c0
+ bl MIi_CpuClear16
+ mov r0, #0
+ strb r0, [r6, #0x4b2]
+ ldr r0, [r5, #0xc]
+ mov r1, r6
+ mov r2, #1
+ bl MOD13_02214958
+ cmp r0, #0
+ moveq r7, #1
+ ldr r0, [r5, #0x10]
+ mov r1, r6
+ mov r2, #0
+ movne r7, #0
+ bl MOD13_02214958
+ cmp r0, #0
+ moveq r0, #1
+ movne r0, #0
+ orrs r0, r7, r0
+ beq _02214A90
+ mov r3, #1
+ mov r1, r6
+ mov r0, #0
+ mov r2, #0x220
+ strb r3, [r6, #0x4b2]
+ bl MIi_CpuClearFast
+_02214A90:
+ ldr r0, [r5, #0x14]
+ cmp r4, #0
+ str r0, [r6, #0x4b8]
+ beq _02214AB0
+ mov r0, r4
+ add r1, r6, #0x220
+ mov r2, #0x16
+ bl MIi_CpuCopy16
+_02214AB0:
+ ldrb r0, [r5, #0x18]
+ strb r0, [r6, #0x236]
+ ldr r0, [r5, #4]
+ bl MOD13_022148AC
+ mov r2, r0, lsl #0x11
+ ldr r0, [r5, #4]
+ add r1, r6, #0x238
+ mov r2, r2, lsr #0x10
+ bl MIi_CpuCopy16
+ ldr r0, [r5, #8]
+ add r1, r6, #0x298
+ mov r2, #0xc0
+ bl MIi_CpuCopy16
+ mov r1, #1
+ strb r1, [r6, #0x358]
+ add r0, r6, #0x300
+ strh r1, [r0, #0x5a]
+ add r0, r6, #0x400
+ strh r1, [r0, #0xb0]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+
+ arm_func_start MOD13_02214B08
+MOD13_02214B08: ; 0x02214B08
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r1, #2
+ addeq sp, sp, #4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ cmp r1, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldr r2, _02214B5C ; =0x02240AF8
+ strh r0, [sp]
+ ldr r0, [r2]
+ strh r1, [sp, #2]
+ ldr r2, [r0, #0x51c]
+ add r1, sp, #0
+ mov r0, #0xff
+ blx r2
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+ .align 2, 0
+_02214B5C: .word 0x02240AF8
+
+ arm_func_start MOD13_02214B60
+MOD13_02214B60: ; 0x02214B60
+ ldr r0, _02214B7C ; =0x02240AF8
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x50d]
+ cmp r0, #1
+ moveq r0, #1
+ movne r0, #0
+ bx lr
+ .align 2, 0
+_02214B7C: .word 0x02240AF8
+
+ arm_func_start MOD13_02214B80
+MOD13_02214B80: ; 0x02214B80
+ ldr r0, _02214BDC ; =0x02240AF8
+ ldr r1, [r0]
+ ldrh r0, [r1, #0x12]
+ cmp r0, #0
+ ldrh r0, [r1, #0xe]
+ movne r2, #2
+ moveq r2, #0
+ cmp r0, #0
+ movne r3, #1
+ ldrh r0, [r1, #0x14]
+ moveq r3, #0
+ cmp r0, #0
+ movne ip, #4
+ ldrh r0, [r1, #0x16]
+ moveq ip, #0
+ cmp r0, #0
+ movne r1, #8
+ orr r0, r3, r2
+ moveq r1, #0
+ orr r0, ip, r0
+ orr r0, r1, r0
+ and r0, r0, #0xff
+ bx lr
+ .align 2, 0
+_02214BDC: .word 0x02240AF8
+
+ arm_func_start MOD13_02214BE0
+MOD13_02214BE0: ; 0x02214BE0
+ ldr r0, _02214BF0 ; =0x02240AF8
+ ldr r0, [r0]
+ ldrh r0, [r0, #0xc]
+ bx lr
+ .align 2, 0
+_02214BF0: .word 0x02240AF8
+
+ arm_func_start MOD13_02214BF4
+MOD13_02214BF4: ; 0x02214BF4
+ ldr r0, _02214C04 ; =0x02240AF8
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ bx lr
+ .align 2, 0
+_02214C04: .word 0x02240AF8
+
+ arm_func_start MOD13_02214C08
+MOD13_02214C08: ; 0x02214C08
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr ip, _02214D04 ; =0x02240AF8
+ mov r3, r1, lsl #0x10
+ ldr r5, [ip]
+ mov ip, r2, lsl #0x10
+ add lr, r5, #0x500
+ ldrh r4, [lr, #0x28]
+ mov r1, r0
+ mov r2, r3, lsr #0x10
+ cmp r4, #0
+ mov r4, ip, lsr #0x10
+ beq _02214C48
+ ldrh r0, [lr, #0x26]
+ cmp r0, #1
+ bne _02214C58
+_02214C48:
+ add sp, sp, #4
+ mov r0, #1
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+_02214C58:
+ ldrh r0, [lr, #0x24]
+ cmp r0, #1
+ beq _02214C70
+ cmp r0, #2
+ beq _02214CBC
+ b _02214CF4
+_02214C70:
+ ldrh r0, [lr, #0x2c]
+ cmp r0, #0
+ moveq r0, #0x3e8
+ movne r0, #0
+ mov r3, r0, lsl #0x10
+ str r4, [sp]
+ ldr r0, [r5, #0x508]
+ mov r3, r3, lsr #0x10
+ bl MOD13_02214D0C
+ cmp r0, #2
+ ldreq r1, _02214D04 ; =0x02240AF8
+ moveq r2, #1
+ ldreq r1, [r1]
+ add sp, sp, #4
+ streqb r2, [r1, #0x50c]
+ cmp r0, #2
+ moveq r0, #0
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+_02214CBC:
+ ldr r0, _02214D08 ; =MOD13_02215724
+ mov r3, #0
+ str r4, [sp]
+ bl MOD13_02214D0C
+ cmp r0, #2
+ ldreq r1, _02214D04 ; =0x02240AF8
+ moveq r2, #1
+ ldreq r1, [r1]
+ add sp, sp, #4
+ streqb r2, [r1, #0x50c]
+ cmp r0, #2
+ moveq r0, #0
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+_02214CF4:
+ mov r0, #1
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+ .align 2, 0
+_02214D04: .word 0x02240AF8
+_02214D08: .word MOD13_02215724
+
+ arm_func_start MOD13_02214D0C
+MOD13_02214D0C: ; 0x02214D0C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #0x10
+ ldrh r4, [sp, #0x18]
+ mov r3, r2
+ mov r2, r1
+ str r4, [sp]
+ mov r4, #1
+ str r4, [sp, #4]
+ mov r4, #3
+ mov r1, #0
+ str r4, [sp, #8]
+ bl WM_SetMPDataToPortEx
+ mov r4, r0
+ mov r1, r4
+ mov r0, #0xf
+ bl MOD13_02214B08
+ mov r0, r4
+ add sp, sp, #0x10
+ ldmia sp!, {r4, lr}
+ bx lr
+
+ arm_func_start MOD13_02214D5C
+MOD13_02214D5C: ; 0x02214D5C
+ ldr r1, _02214D68 ; =0x02240B00
+ strh r0, [r1, #6]
+ bx lr
+ .align 2, 0
+_02214D68: .word 0x02240B00
+
+ arm_func_start MOD13_02214D6C
+MOD13_02214D6C: ; 0x02214D6C
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ ldr r0, _02214F08 ; =MOD13_02216098
+ mov r1, r5
+ bl WM_Disconnect
+ cmp r5, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, r6, r7, lr}
+ bxeq lr
+ cmp r5, #0x10
+ addhs sp, sp, #4
+ ldmhsia sp!, {r4, r5, r6, r7, lr}
+ bxhs lr
+ ldr r2, _02214F0C ; =0x02240AFC
+ sub r4, r5, #1
+ ldr r0, [r2]
+ mov r1, #0
+ add r0, r0, r4, lsl #1
+ add r0, r0, #0x1400
+ strh r1, [r0, #0x8a]
+ ldr r3, [r2]
+ ldr r0, _02214F10 ; =0x000014A8
+ mov r2, #4
+ add r0, r3, r0
+ add r0, r0, r4, lsl #2
+ bl MI_CpuFill8
+ ldr r0, _02214F0C ; =0x02240AFC
+ mov r2, #0x16
+ ldr r0, [r0]
+ mov r1, #0
+ add r0, r0, #0x1340
+ mla r0, r4, r2, r0
+ bl MI_CpuFill8
+ mov r0, r5
+ bl MOD13_02217234
+ ldr lr, _02214F0C ; =0x02240AFC
+ mov r2, #0
+ ldr r1, [lr]
+ mvn r0, #0
+ add r1, r1, r4, lsl #1
+ add r1, r1, #0x1700
+ strh r2, [r1, #0x54]
+ ldr r3, [lr]
+ add r1, r3, r4
+ add r1, r1, #0x1500
+ ldrsb r2, [r1, #0x26]
+ cmp r2, r0
+ beq _02214E9C
+ ldr r1, _02214F14 ; =0x000005D4
+ and r2, r2, #0xff
+ mul r1, r2, r1
+ add r2, r3, r1
+ add ip, r2, #0x1d00
+ mov r3, #1
+ ldrh r6, [ip, #0x4e]
+ mvn r2, r3, lsl r5
+ and r6, r6, r2
+ strh r6, [ip, #0x4e]
+ ldr r7, [lr]
+ mov r6, r4
+ add r7, r7, r1
+ add ip, r7, #0x1d00
+ ldrh r7, [ip, #0x50]
+ orr r3, r7, r3, lsl r5
+ strh r3, [ip, #0x50]
+ ldr r3, [lr]
+ add r3, r3, r6
+ add r3, r3, #0x1000
+ strb r0, [r3, #0x526]
+ ldr r0, [lr]
+ add r0, r0, r1
+ add r0, r0, #0x1d00
+ ldrh r1, [r0, #0x4c]
+ and r1, r1, r2
+ strh r1, [r0, #0x4c]
+_02214E9C:
+ ldr r1, _02214F0C ; =0x02240AFC
+ mov r0, #1
+ ldr r2, [r1]
+ mov r5, r0, lsl r5
+ add r0, r2, #0x1500
+ ldrh r0, [r0, #0x36]
+ ands r0, r0, r5
+ beq _02214EE4
+ add r0, r2, #0x1000
+ ldrb r3, [r0, #0x535]
+ mvn r2, r5
+ sub r3, r3, #1
+ strb r3, [r0, #0x535]
+ ldr r0, [r1]
+ add r0, r0, #0x1500
+ ldrh r1, [r0, #0x36]
+ and r1, r1, r2
+ strh r1, [r0, #0x36]
+_02214EE4:
+ ldr r0, _02214F0C ; =0x02240AFC
+ mov r1, #0
+ ldr r0, [r0]
+ add r0, r0, r4, lsl #2
+ add r0, r0, #0x1000
+ str r1, [r0, #0x4e8]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+ .align 2, 0
+_02214F08: .word MOD13_02216098
+_02214F0C: .word 0x02240AFC
+_02214F10: .word 0x000014A8
+_02214F14: .word 0x000005D4
+
+ arm_func_start MOD13_02214F18
+MOD13_02214F18: ; 0x02214F18
+ stmdb sp!, {r4, lr}
+ bl OS_DisableInterrupts
+ ldr r1, _02214F54 ; =0x02240AFC
+ mov r4, r0
+ ldr r0, [r1]
+ add r0, r0, #0x1000
+ ldr r0, [r0, #0x320]
+ cmp r0, #0
+ bne _02214F40
+ bl OS_Terminate
+_02214F40:
+ bl MOD13_02214F58
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4, lr}
+ bx lr
+ .align 2, 0
+_02214F54: .word 0x02240AFC
+
+ arm_func_start MOD13_02214F58
+MOD13_02214F58: ; 0x02214F58
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, #1
+ bl OS_DisableInterrupts
+ ldr r1, _02214FD8 ; =0x02240AF8
+ mov r4, r0
+ ldr r2, [r1]
+ add r0, r2, #0x500
+ ldrh r0, [r0, #0x26]
+ cmp r0, #0
+ bne _02214FC0
+ mov r0, #0
+ str r0, [r2, #0x5e4]
+ ldr r0, [r1]
+ mov r1, r5
+ add r0, r0, #0x500
+ strh r1, [r0, #0x26]
+ bl MOD13_02216DA4
+ cmp r0, #0
+ beq _02214FB8
+ ldr r0, _02214FDC ; =MOD13_02214FE0
+ bl MOD13_02216B94
+ mov r5, #0
+ b _02214FC0
+_02214FB8:
+ bl MOD13_02214FEC
+ mov r5, r0
+_02214FC0:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, r5
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+ .align 2, 0
+_02214FD8: .word 0x02240AF8
+_02214FDC: .word MOD13_02214FE0
+
+ arm_func_start MOD13_02214FE0
+MOD13_02214FE0: ; 0x02214FE0
+ ldr ip, _02214FE8 ; =MOD13_02214FEC
+ bx ip
+ .align 2, 0
+_02214FE8: .word MOD13_02214FEC
+
+ arm_func_start MOD13_02214FEC
+MOD13_02214FEC: ; 0x02214FEC
+ stmdb sp!, {r4, lr}
+ ldr r0, _02215024 ; =0x02240AF8
+ ldr r0, [r0]
+ ldr r0, [r0, #0x508]
+ bl WM_Reset
+ mov r4, r0
+ mov r1, r4
+ mov r0, #1
+ bl MOD13_02214B08
+ cmp r4, #2
+ moveq r4, #0
+ mov r0, r4
+ ldmia sp!, {r4, lr}
+ bx lr
+ .align 2, 0
+_02215024: .word 0x02240AF8
+
+ arm_func_start MOD13_02215028
+MOD13_02215028: ; 0x02215028
+ ldr r1, _02215044 ; =0x02240AFC
+ ldr ip, _02215048 ; =MOD13_0221504C
+ ldr r1, [r1]
+ mov r2, #1
+ add r1, r1, #0x1000
+ str r2, [r1, #0x320]
+ bx ip
+ .align 2, 0
+_02215044: .word 0x02240AFC
+_02215048: .word MOD13_0221504C
+
+ arm_func_start MOD13_0221504C
+MOD13_0221504C: ; 0x0221504C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r1, _02215234 ; =0x02240AF8
+ ldr r2, _02215238 ; =0x02240AFC
+ ldr r3, [r1]
+ ldr r1, _0221523C ; =0x00007D1F
+ strh r4, [r3, #0x32]
+ ldr r3, [r2]
+ ldr r2, _02215240 ; =0x02240AF4
+ add r1, r3, r1
+ bic r1, r1, #0x1f
+ mov r4, r0
+ str r1, [r2]
+ add r0, r3, #0x1000
+ ldr r5, [r0, #0x4e4]
+ ldr r2, _02215244 ; =0x000069C0
+ add r1, r3, #0x1340
+ mov r0, #0
+ bl MIi_CpuClear16
+ mov r0, r5
+ bl MOD13_02213368
+ ldr r1, _02215234 ; =0x02240AF8
+ ldr r0, _02215238 ; =0x02240AFC
+ ldr r3, [r1]
+ ldr r2, [r0]
+ add r0, r3, #0x500
+ ldrh r3, [r0]
+ add r0, r2, #0x1000
+ sub r2, r3, #6
+ str r2, [r0, #0x318]
+ ldr r0, [r1]
+ add r0, r0, #0x500
+ ldrh r0, [r0, #2]
+ bl MOD13_022172A0
+ ldr r1, _02215238 ; =0x02240AFC
+ ldr r0, _02215248 ; =0x00001538
+ ldr r1, [r1]
+ add r0, r1, r0
+ bl MOD13_02217280
+ mov r5, #0
+ ldr r2, _02215238 ; =0x02240AFC
+ mov r0, r5
+ mvn r3, #0
+_02215100:
+ ldr r1, [r2]
+ add r1, r1, r5, lsl #2
+ add r1, r1, #0x1000
+ str r0, [r1, #0x4e8]
+ ldr r1, [r2]
+ add r1, r1, r5
+ add r1, r1, #0x1000
+ add r5, r5, #1
+ strb r3, [r1, #0x526]
+ cmp r5, #0xf
+ blt _02215100
+ ldr r1, [r2]
+ ldr r3, _0221524C ; =0x00001788
+ add r1, r1, #0x1000
+ strb r0, [r1, #0x524]
+ ldr r1, [r2]
+ ldr r2, _02215250 ; =0x00005D40
+ add r1, r1, r3
+ bl MIi_CpuClear16
+ ldr r1, _02215238 ; =0x02240AFC
+ ldr r0, _02215254 ; =0x00001754
+ ldr r2, [r1]
+ mov r1, #0
+ add r0, r2, r0
+ mov r2, #0x1e
+ bl MI_CpuFill8
+ ldr r2, _02215234 ; =0x02240AF8
+ mov r3, #1
+ ldr r0, [r2]
+ ldr r1, _02215258 ; =MOD13_02212C20
+ add r0, r0, #0x500
+ strh r3, [r0, #0x24]
+ ldr r0, [r2]
+ ldr r3, _0221525C ; =MOD13_02216098
+ str r1, [r0, #0x51c]
+ ldr r0, [r2]
+ mov r1, #0xf
+ str r3, [r0, #0x508]
+ ldr r3, [r2]
+ add r0, r3, #0x500
+ ldrh r0, [r0]
+ strh r0, [r3, #0x34]
+ ldr r0, [r2]
+ ldrh r3, [r0, #0x34]
+ add r0, r0, #0x500
+ add r3, r3, #0x23
+ bic r3, r3, #0x1f
+ strh r3, [r0, #0x18]
+ ldr r3, [r2]
+ add r0, r3, #0x500
+ ldrh r0, [r0, #2]
+ strh r0, [r3, #0x36]
+ ldr r0, [r2]
+ ldrh r2, [r0, #0x36]
+ add r0, r0, #0x500
+ add r2, r2, #0xe
+ mul r1, r2, r1
+ add r1, r1, #0x29
+ bic r1, r1, #0x1f
+ mov r1, r1, lsl #1
+ strh r1, [r0, #0x1a]
+ bl MOD13_02214834
+ bl MOD13_02215260
+ mov r5, r0
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0xf
+ mov r1, #1
+ bl PXI_IsCallbackReady
+ ldr r1, _02215238 ; =0x02240AFC
+ ldr r1, [r1]
+ add r1, r1, #0x7000
+ str r0, [r1, #0x4c8]
+ mov r0, r5
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+ .align 2, 0
+_02215234: .word 0x02240AF8
+_02215238: .word 0x02240AFC
+_0221523C: .word 0x00007D1F
+_02215240: .word 0x02240AF4
+_02215244: .word 0x000069C0
+_02215248: .word 0x00001538
+_0221524C: .word 0x00001788
+_02215250: .word 0x00005D40
+_02215254: .word 0x00001754
+_02215258: .word MOD13_02212C20
+_0221525C: .word MOD13_02216098
+
+ arm_func_start MOD13_02215260
+MOD13_02215260: ; 0x02215260
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r2, _02215350 ; =0x02240AF8
+ mov r3, #0
+ ldr r1, [r2]
+ mov r0, #0xa
+ add r1, r1, #0x500
+ strh r3, [r1, #0x28]
+ ldr r1, [r2]
+ add r1, r1, #0x500
+ strh r3, [r1, #0x2a]
+ ldr r1, [r2]
+ add r1, r1, #0x500
+ strh r3, [r1, #0x26]
+ ldr r1, [r2]
+ add r1, r1, #0x500
+ strh r3, [r1, #0x48]
+ bl MOD13_02214D5C
+ ldr r0, _02215354 ; =0x02240AFC
+ ldr r0, [r0]
+ add r0, r0, #0x1000
+ ldr r0, [r0, #0x320]
+ cmp r0, #0
+ bne _02215320
+ ldr r6, _02215358 ; =0x02240AF4
+ ldr r5, _02215350 ; =0x02240AF8
+ ldr r4, _0221535C ; =0x02240AF0
+_022152C8:
+ ldr r1, [r5]
+ ldrh r2, [r4]
+ ldr r0, [r6]
+ ldr r1, [r1, #0x508]
+ bl WM_Initialize
+ cmp r0, #4
+ beq _022152C8
+ cmp r0, #2
+ movne r0, #8
+ ldmneia sp!, {r4, r5, r6, lr}
+ bxne lr
+ ldr r0, _02215350 ; =0x02240AF8
+ ldr r0, [r0]
+ ldr r0, [r0, #0x508]
+ bl WM_SetIndCallback
+ ldr r0, _02215350 ; =0x02240AF8
+ mov r2, #1
+ ldr r1, [r0]
+ mov r0, #0
+ strb r2, [r1, #0x50d]
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+_02215320:
+ ldr r0, _02215350 ; =0x02240AF8
+ ldr r0, [r0]
+ ldr r0, [r0, #0x508]
+ bl WM_SetIndCallback
+ ldr r0, _02215350 ; =0x02240AF8
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x50d]
+ bl MOD13_02216910
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+ .align 2, 0
+_02215350: .word 0x02240AF8
+_02215354: .word 0x02240AFC
+_02215358: .word 0x02240AF4
+_0221535C: .word 0x02240AF0
+
+ arm_func_start MOD13_02215360
+MOD13_02215360: ; 0x02215360
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r5, r0
+ mov r4, r1
+ bl OS_DisableInterrupts
+ ldr r1, _02215400 ; =0x02240AF8
+ mov r6, r0
+ ldr r1, [r1]
+ ldrb r1, [r1, #0x50d]
+ cmp r1, #0
+ beq _02215398
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+_02215398:
+ mov r0, r5
+ mov r2, r4
+ mov r1, #8
+ bl MOD13_02215404
+ cmp r0, #0
+ bne _022153C4
+ mov r0, r6
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+_022153C4:
+ ldr r2, _02215400 ; =0x02240AF8
+ mov r0, r6
+ ldr r1, [r2]
+ mov r3, #8
+ strh r4, [r1, #0x10]
+ ldr r1, [r2]
+ add r1, r1, #0x500
+ strh r5, [r1]
+ ldr r1, [r2]
+ add r1, r1, #0x500
+ strh r3, [r1, #2]
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+ .align 2, 0
+_02215400: .word 0x02240AF8
+
+ arm_func_start MOD13_02215404
+MOD13_02215404: ; 0x02215404
+ ldr r3, _02215468 ; =0x000001FE
+ cmp r0, r3
+ bhi _02215418
+ cmp r0, #0xe4
+ bhs _02215420
+_02215418:
+ mov r0, #0
+ bx lr
+_02215420:
+ cmp r1, #0x10
+ bhi _02215430
+ cmp r1, #8
+ bhs _02215438
+_02215430:
+ mov r0, #0
+ bx lr
+_02215438:
+ add r1, r1, #0x20
+ mov r3, r1, lsl #2
+ ldr r1, _0221546C ; =0x0000014A
+ add r0, r0, #0x26
+ add r1, r1, r0, lsl #2
+ add r0, r3, #0x70
+ mla r1, r2, r0, r1
+ ldr r0, _02215470 ; =0x000015E0
+ cmp r1, r0
+ movlt r0, #1
+ movge r0, #0
+ bx lr
+ .align 2, 0
+_02215468: .word 0x000001FE
+_0221546C: .word 0x0000014A
+_02215470: .word 0x000015E0
+
+ arm_func_start MOD13_02215474
+MOD13_02215474: ; 0x02215474
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ ldr r4, _0221567C ; =0x02240AFC
+ mov sb, r1
+ ldr r1, [r4]
+ mov r8, r2
+ mov r7, r3
+ cmp r1, #0
+ beq _022154B4
+ add r1, r1, #0x1300
+ ldrh r1, [r1, #0x16]
+ cmp r1, #0
+ addne sp, sp, #4
+ movne r0, #2
+ ldmneia sp!, {r4, r5, r6, r7, r8, sb, lr}
+ bxne lr
+_022154B4:
+ add r1, r0, #0x1f
+ ldr r0, _02215680 ; =0x00001E1F
+ bic r6, r1, #0x1f
+ add r0, r6, r0
+ cmp r7, #0x10000
+ bic r5, r0, #0x1f
+ bne _022154D8
+ bl WM_GetNextTgid
+ mov r7, r0
+_022154D8:
+ bl OS_DisableInterrupts
+ ldr ip, _02215684 ; =0x02240AF8
+ ldr r3, _0221567C ; =0x02240AFC
+ mov r4, r0
+ ldr r1, [sp, #0x20]
+ ldr r0, _02215688 ; =0x02240AF0
+ ldr r2, _0221568C ; =0x0000FFFF
+ strh r1, [r0]
+ ldr r0, _02215690 ; =0x0223F798
+ ldr r1, _02215694 ; =0x0223F78C
+ strh r2, [r0]
+ mov r2, #5
+ ldr r0, _02215698 ; =0x0223F790
+ strh r2, [r1]
+ mov r2, #0x28
+ ldr r1, _0221569C ; =0x0223F794
+ strh r2, [r0]
+ ldr r0, _022156A0 ; =0x0223F7A0
+ strh r2, [r1]
+ mov r2, #1
+ mov r1, r6
+ str r2, [r0]
+ mov r0, #0
+ mov r2, #0x1e00
+ str r6, [ip]
+ str r5, [r3]
+ bl MIi_CpuClear32
+ mov r1, r5
+ mov r0, #0
+ mov r2, #0x1340
+ bl MIi_CpuClear16
+ ldrb r0, [sb, #1]
+ add r1, r6, #0x530
+ mov r2, #0
+ cmp r0, #0
+ ble _02215584
+_02215568:
+ add r0, sb, r2, lsl #1
+ ldrh r0, [r0, #2]
+ add r2, r2, #1
+ strh r0, [r1], #2
+ ldrb r0, [sb, #1]
+ cmp r2, r0
+ blt _02215568
+_02215584:
+ ldr r0, _022156A4 ; =0x00000538
+ mov r3, #0
+ add ip, r6, r0
+ ldr r0, _022156A8 ; =0x0223F79C
+_02215594:
+ ldr r2, [r0]
+ ldrh r1, [r2]
+ cmp r1, #0
+ beq _022155C0
+ add r1, r2, #2
+ str r1, [r0]
+ ldrh r1, [r2]
+ add r3, r3, #1
+ cmp r3, #0x10
+ strh r1, [ip], #2
+ blt _02215594
+_022155C0:
+ mov r0, sb
+ add r1, r5, #0x1300
+ mov r2, #0x16
+ bl MI_CpuCopy8
+ ldrb r0, [sb, #1]
+ mov r2, #0
+ cmp r0, #0xa
+ addlo r0, r5, r0, lsl #1
+ addlo r0, r0, #0x1300
+ movlo r1, #0
+ strloh r1, [r0, #2]
+ add r0, r6, #0x500
+ mov r1, #0x100
+ strh r1, [r0]
+ mov r1, #8
+ strh r1, [r0, #2]
+ strh r2, [r0, #0x18]
+ strh r2, [r0, #0x1a]
+ mov r1, #1
+ strh r1, [r0, #0x2c]
+ add r0, r5, #0x400
+ str r0, [r6, #0x504]
+ strh r2, [r6, #0xe]
+ strh r2, [r6, #0x12]
+ strh r1, [r6, #0x16]
+ strh r2, [r6, #0x14]
+ str r8, [r6, #8]
+ strh r7, [r6, #0xc]
+ bl MOD13_022156AC
+ add r0, r0, #0xc8
+ strh r0, [r6, #0x18]
+ mov r0, #0xf
+ strh r0, [r6, #0x10]
+ mov r3, #0
+ strb r3, [r6, #0x50c]
+ strb r3, [r6, #0x50d]
+ add r1, r5, #0x1300
+ mov r2, #1
+ strh r2, [r1, #0x16]
+ add r1, r5, #0x1000
+ mov r0, r4
+ str r3, [r1, #0x31c]
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, lr}
+ bx lr
+ .align 2, 0
+_0221567C: .word 0x02240AFC
+_02215680: .word 0x00001E1F
+_02215684: .word 0x02240AF8
+_02215688: .word 0x02240AF0
+_0221568C: .word 0x0000FFFF
+_02215690: .word 0x0223F798
+_02215694: .word 0x0223F78C
+_02215698: .word 0x0223F790
+_0221569C: .word 0x0223F794
+_022156A0: .word 0x0223F7A0
+_022156A4: .word 0x00000538
+_022156A8: .word 0x0223F79C
+
+ arm_func_start MOD13_022156AC
+MOD13_022156AC: ; 0x022156AC
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ add r0, sp, #0
+ bl OS_GetMacAddress
+ mov r2, #0
+ add r1, sp, #0
+ mov r3, r2
+_022156C8:
+ ldrb r0, [r1]
+ add r2, r2, #1
+ cmp r2, #6
+ add r3, r3, r0
+ add r1, r1, #1
+ blt _022156C8
+ ldr r1, _02215718 ; =0x027FFC3C
+ mov r0, #7
+ ldr r2, [r1]
+ ldr r1, _0221571C ; =0xCCCCCCCD
+ add r2, r3, r2
+ mul r3, r2, r0
+ umull r1, r0, r3, r1
+ ldr r2, _02215720 ; =0x00000014
+ mov r0, r0, lsr #4
+ umull r0, r1, r2, r0
+ sub r0, r3, r0
+ add sp, sp, #0xc
+ ldmia sp!, {lr}
+ bx lr
+ .align 2, 0
+_02215718: .word 0x027FFC3C
+_0221571C: .word 0xCCCCCCCD
+_02215720: .word 0x00000014
+
+ arm_func_start MOD13_02215724
+MOD13_02215724: ; 0x02215724
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #0x20
+ mov r6, r0
+ ldrh r0, [r6]
+ ldr r1, _02215F98 ; =0x02240AF8
+ cmp r0, #0x1d
+ ldr r5, [r1]
+ bgt _022157B0
+ cmp r0, #0x1d
+ bge _02215838
+ cmp r0, #0x15
+ addls pc, pc, r0, lsl #2
+ b _02215F7C
+_02215758: ; jump table
+ b _022157BC ; case 0
+ b _02215E4C ; case 1
+ b _02215EB8 ; case 2
+ b _02215F7C ; case 3
+ b _02215F7C ; case 4
+ b _02215F7C ; case 5
+ b _02215F7C ; case 6
+ b _02215F7C ; case 7
+ b _02215F7C ; case 8
+ b _02215F7C ; case 9
+ b _022158DC ; case 10
+ b _02215B64 ; case 11
+ b _02215BBC ; case 12
+ b _02215F7C ; case 13
+ b _02215D54 ; case 14
+ b _02215DDC ; case 15
+ b _02215F7C ; case 16
+ b _02215F7C ; case 17
+ b _02215F7C ; case 18
+ b _02215F7C ; case 19
+ b _02215F7C ; case 20
+ b _02215F20 ; case 21
+_022157B0:
+ cmp r0, #0x80
+ beq _02215F50
+ b _02215F7C
+_022157BC:
+ ldrh r0, [r6, #2]
+ cmp r0, #0
+ beq _022157E4
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #0x100
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_022157E4:
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #0x15
+ blx r2
+ ldr r0, _02215F9C ; =0x0223F794
+ ldr r1, _02215FA0 ; =0x0223F798
+ ldrh r3, [r0]
+ ldr r2, _02215FA4 ; =0x0223F790
+ ldr r0, _02215FA8 ; =0x0223F78C
+ str r3, [sp]
+ ldrh r3, [r0]
+ ldrh r1, [r1]
+ ldrh r2, [r2]
+ ldr r0, _02215FAC ; =MOD13_02215724
+ bl WM_SetLifeTime
+ mov r1, r0
+ mov r0, #0x1d
+ bl MOD13_02214B08
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215838:
+ ldrh r0, [r6, #2]
+ cmp r0, #0
+ beq _02215860
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #0x100
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215860:
+ ldr r0, _02215FB0 ; =0x02240B00
+ add r2, r5, #0x440
+ ldrh r1, [r0, #4]
+ str r2, [r0]
+ mov r2, #1
+ cmp r1, #0
+ moveq r1, #1
+ streqh r1, [r0, #4]
+ ldr r0, _02215FB0 ; =0x02240B00
+ ldrh r1, [r0, #6]
+ cmp r1, #0
+ moveq r1, #0xc8
+ streqh r1, [r0, #6]
+ ldr r1, _02215FB0 ; =0x02240B00
+ mov r0, #0xff
+ strb r0, [r1, #8]
+ strb r0, [r1, #9]
+ strb r0, [r1, #0xa]
+ strb r0, [r1, #0xb]
+ strb r0, [r1, #0xc]
+ strb r0, [r1, #0xd]
+ str r2, [r5, #0x5e4]
+ ldr r0, _02215FAC ; =MOD13_02215724
+ str r2, [r5, #0x5e8]
+ bl WM_StartScan
+ mov r1, r0
+ mov r0, #0xa
+ bl MOD13_02214B08
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_022158DC:
+ ldrh r0, [r6, #2]
+ cmp r0, #0
+ beq _02215904
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #0x100
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215904:
+ ldrh r0, [r6, #8]
+ cmp r0, #3
+ addeq sp, sp, #0x20
+ ldmeqia sp!, {r4, r5, r6, r7, r8, lr}
+ bxeq lr
+ cmp r0, #4
+ beq _02215AE0
+ cmp r0, #5
+ bne _02215B48
+ add r0, r5, #0x500
+ ldrh r0, [r0, #0xe0]
+ add r3, r5, #0x600
+ mov r4, #0
+ cmp r0, #0
+ ble _02215A18
+ ldrb r1, [r6, #0xa]
+ mov r2, r3
+_02215948:
+ ldrb r7, [r2, #0xca]
+ cmp r1, r7
+ bne _02215A08
+ ldrb r8, [r6, #0xb]
+ ldrb r7, [r2, #0xcb]
+ cmp r8, r7
+ bne _02215A08
+ ldrb r8, [r6, #0xc]
+ ldrb r7, [r2, #0xcc]
+ cmp r8, r7
+ bne _02215A08
+ ldrb r8, [r6, #0xd]
+ ldrb r7, [r2, #0xcd]
+ cmp r8, r7
+ bne _02215A08
+ ldrb r8, [r6, #0xe]
+ ldrb r7, [r2, #0xce]
+ cmp r8, r7
+ bne _02215A08
+ ldrb r8, [r6, #0xf]
+ ldrb r7, [r2, #0xcf]
+ cmp r8, r7
+ bne _02215A08
+ mov r0, #0x180
+ mul r7, r4, r0
+ add r0, r3, r7
+ ldrh r1, [r6, #0x36]
+ add r8, r6, #0x38
+ add lr, r0, #0xf8
+ strh r1, [r0, #0xf6]
+ mov ip, #8
+_022159C4:
+ ldmia r8!, {r0, r1, r2, r3}
+ stmia lr!, {r0, r1, r2, r3}
+ subs ip, ip, #1
+ bne _022159C4
+ add r0, r5, #0x600
+ add r7, r0, r7
+ mov r0, r7
+ mov r1, #0xc0
+ bl DC_InvalidateRange
+ ldr r0, _02215FB4 ; =0x02240AF0
+ mov r2, r7
+ ldrh r0, [r0]
+ add r1, r5, #0x440
+ mov r3, #0xc0
+ bl MI_DmaCopy16
+ str r4, [r5, #0x5ec]
+ b _02215A78
+_02215A08:
+ add r4, r4, #1
+ cmp r4, r0
+ add r2, r2, #0x180
+ blt _02215948
+_02215A18:
+ cmp r4, #0x10
+ bge _02215A78
+ mov r0, #0x180
+ mul r7, r4, r0
+ add r1, r3, r7
+ mov r0, r6
+ add ip, r4, #1
+ add r3, r5, #0x500
+ add r1, r1, #0xc0
+ mov r2, #0xb8
+ strh ip, [r3, #0xe0]
+ bl MIi_CpuCopy16
+ add r0, r5, #0x600
+ add r7, r0, r7
+ mov r0, r7
+ mov r1, #0xc0
+ bl DC_InvalidateRange
+ ldr r0, _02215FB4 ; =0x02240AF0
+ mov r2, r7
+ ldrh r0, [r0]
+ add r1, r5, #0x440
+ mov r3, #0xc0
+ bl MI_DmaCopy16
+ str r4, [r5, #0x5ec]
+_02215A78:
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #4
+ blx r2
+ ldr r0, [r5, #0x5e4]
+ cmp r0, #0
+ addeq sp, sp, #0x20
+ ldmeqia sp!, {r4, r5, r6, r7, r8, lr}
+ bxeq lr
+ ldr r0, [r5, #0x5e8]
+ cmp r0, #0
+ beq _02215ABC
+ ldr r0, _02215FB0 ; =0x02240B00
+ bl MOD13_022169EC
+ cmp r0, #0
+ bne _02215ABC
+ bl MOD13_02214F58
+_02215ABC:
+ ldr r0, _02215FAC ; =MOD13_02215724
+ ldr r1, _02215FB0 ; =0x02240B00
+ bl WM_StartScan
+ mov r1, r0
+ mov r0, #0xa
+ bl MOD13_02214B08
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215AE0:
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #5
+ blx r2
+ ldr r0, [r5, #0x5e4]
+ cmp r0, #0
+ addeq sp, sp, #0x20
+ ldmeqia sp!, {r4, r5, r6, r7, r8, lr}
+ bxeq lr
+ ldr r0, [r5, #0x5e8]
+ cmp r0, #0
+ beq _02215B24
+ ldr r0, _02215FB0 ; =0x02240B00
+ bl MOD13_022169EC
+ cmp r0, #0
+ bne _02215B24
+ bl MOD13_02214F58
+_02215B24:
+ ldr r0, _02215FAC ; =MOD13_02215724
+ ldr r1, _02215FB0 ; =0x02240B00
+ bl WM_StartScan
+ mov r1, r0
+ mov r0, #0xa
+ bl MOD13_02214B08
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215B48:
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #0x100
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215B64:
+ ldrh r0, [r6, #2]
+ cmp r0, #0
+ beq _02215B8C
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #0x100
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215B8C:
+ mov r2, #0
+ str r2, [sp]
+ ldr r1, [r5, #0x520]
+ ldr r0, _02215FAC ; =MOD13_02215724
+ mov r3, #1
+ bl WM_StartConnectEx
+ mov r1, r0
+ mov r0, #0xc
+ bl MOD13_02214B08
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215BBC:
+ ldrh r0, [r6, #2]
+ cmp r0, #0
+ beq _02215BF0
+ add r0, r5, #0x500
+ mov r1, #0
+ strh r1, [r0, #0xe0]
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #0xb
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215BF0:
+ ldrh r0, [r6, #8]
+ cmp r0, #9
+ bgt _02215C20
+ cmp r0, #6
+ blt _02215D38
+ cmp r0, #6
+ beq _02215C34
+ cmp r0, #7
+ beq _02215C54
+ cmp r0, #9
+ beq _02215D0C
+ b _02215D38
+_02215C20:
+ cmp r0, #0x1a
+ addeq sp, sp, #0x20
+ ldmeqia sp!, {r4, r5, r6, r7, r8, lr}
+ bxeq lr
+ b _02215D38
+_02215C34:
+ add r0, r5, #0x500
+ mov r1, #0
+ strh r1, [r0, #0x2a]
+ mov r1, #1
+ strh r1, [r0, #0x28]
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215C54:
+ ldrh r2, [r6, #0xa]
+ add r0, r5, #0x500
+ mov r1, r6
+ strh r2, [r0, #0xe2]
+ ldr r2, [r5, #0x51c]
+ mov r0, #6
+ blx r2
+ ldr r1, _02215FB8 ; =MOD13_02215FC0
+ add r3, r5, #0x500
+ mov r0, #1
+ mov r2, #0
+ strh r0, [r3, #0x2a]
+ bl WM_SetPortCallback
+ cmp r0, #0
+ addne sp, sp, #0x20
+ ldmneia sp!, {r4, r5, r6, r7, r8, lr}
+ bxne lr
+ add r0, r5, #0x500
+ ldrh r0, [r0, #0x2c]
+ add r1, r5, #0x500
+ ldrh r2, [r1, #0x18]
+ cmp r0, #0
+ moveq r0, #1
+ movne r0, #0
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ str r2, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ ldrh r2, [r1, #0x1a]
+ ldr r1, [r5, #0x504]
+ ldr r0, _02215FAC ; =MOD13_02215724
+ add r3, r5, #0x40
+ bl WM_StartMPEx
+ mov r1, r0
+ mov r0, #0xe
+ bl MOD13_02214B08
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215D0C:
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #0xa
+ blx r2
+ add r0, r5, #0x500
+ mov r1, #0
+ strh r1, [r0, #0x2a]
+ strh r1, [r0, #0x28]
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215D38:
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #0x100
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215D54:
+ ldrh r0, [r6, #4]
+ cmp r0, #0xa
+ beq _02215D84
+ cmp r0, #0xc
+ addeq sp, sp, #0x20
+ ldmeqia sp!, {r4, r5, r6, r7, r8, lr}
+ bxeq lr
+ cmp r0, #0xd
+ addeq sp, sp, #0x20
+ ldmeqia sp!, {r4, r5, r6, r7, r8, lr}
+ bxeq lr
+ b _02215DC0
+_02215D84:
+ add r0, r5, #0x500
+ mov r1, #1
+ strh r1, [r0, #0x28]
+ bl MOD13_02216984
+ cmp r0, #0
+ addeq sp, sp, #0x20
+ ldmeqia sp!, {r4, r5, r6, r7, r8, lr}
+ bxeq lr
+ ldr r2, [r5, #0x51c]
+ mov r0, #0x19
+ mov r1, #0
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215DC0:
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #0x100
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215DDC:
+ mov r0, #0
+ strb r0, [r5, #0x50c]
+ ldrh r0, [r6, #2]
+ cmp r0, #0
+ bne _02215E04
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #8
+ blx r2
+ b _02215E30
+_02215E04:
+ cmp r0, #9
+ bne _02215E20
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #0x29
+ blx r2
+ b _02215E30
+_02215E20:
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #0x12
+ blx r2
+_02215E30:
+ ldr r2, [r5, #0x51c]
+ mov r0, #0x19
+ mov r1, #0
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215E4C:
+ ldrh r0, [r6, #2]
+ cmp r0, #0
+ beq _02215E80
+ add r0, r5, #0x500
+ mov r1, #0
+ strh r1, [r0, #0x26]
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #0x100
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215E80:
+ add r0, r5, #0x500
+ mov r2, #0
+ strh r2, [r0, #0x2a]
+ ldr r1, [r1]
+ ldr r0, _02215FAC ; =MOD13_02215724
+ add r1, r1, #0x500
+ strh r2, [r1, #0x28]
+ bl WM_End
+ mov r1, r0
+ mov r0, #2
+ bl MOD13_02214B08
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215EB8:
+ ldrh r0, [r6, #2]
+ cmp r0, #0
+ beq _02215EEC
+ add r0, r5, #0x500
+ mov r1, #0
+ strh r1, [r0, #0x26]
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #0x100
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215EEC:
+ mov r2, #0
+ ldr r0, _02215FBC ; =0x02240AFC
+ strb r2, [r5, #0x50d]
+ ldr r0, [r0]
+ mov r1, r6
+ add r0, r0, #0x1300
+ strh r2, [r0, #0x16]
+ ldr r2, [r5, #0x51c]
+ mov r0, #0x11
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215F20:
+ bl MOD13_02216984
+ cmp r0, #0
+ addeq sp, sp, #0x20
+ ldmeqia sp!, {r4, r5, r6, r7, r8, lr}
+ bxeq lr
+ ldr r2, [r5, #0x51c]
+ mov r0, #0x19
+ mov r1, #0
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215F50:
+ ldrh r0, [r6, #4]
+ cmp r0, #0x16
+ beq _02215F6C
+ add sp, sp, #0x20
+ cmp r0, #0x17
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215F6C:
+ bl OS_Terminate
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_02215F7C:
+ ldr r2, [r5, #0x51c]
+ mov r1, r6
+ mov r0, #0x100
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+ .align 2, 0
+_02215F98: .word 0x02240AF8
+_02215F9C: .word 0x0223F794
+_02215FA0: .word 0x0223F798
+_02215FA4: .word 0x0223F790
+_02215FA8: .word 0x0223F78C
+_02215FAC: .word MOD13_02215724
+_02215FB0: .word 0x02240B00
+_02215FB4: .word 0x02240AF0
+_02215FB8: .word MOD13_02215FC0
+_02215FBC: .word 0x02240AFC
+
+ arm_func_start MOD13_02215FC0
+MOD13_02215FC0: ; 0x02215FC0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, r0
+ ldrh r0, [r1, #2]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldrh r0, [r1, #4]
+ cmp r0, #0x15
+ bgt _02216034
+ cmp r0, #0x15
+ bge _02216074
+ cmp r0, #9
+ addgt sp, sp, #4
+ ldmgtia sp!, {lr}
+ bxgt lr
+ cmp r0, #7
+ addlt sp, sp, #4
+ ldmltia sp!, {lr}
+ bxlt lr
+ cmp r0, #7
+ addeq sp, sp, #4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ add sp, sp, #4
+ cmp r0, #9
+ ldmia sp!, {lr}
+ bx lr
+_02216034:
+ cmp r0, #0x1a
+ addgt sp, sp, #4
+ ldmgtia sp!, {lr}
+ bxgt lr
+ cmp r0, #0x19
+ addlt sp, sp, #4
+ ldmltia sp!, {lr}
+ bxlt lr
+ cmp r0, #0x19
+ addeq sp, sp, #4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ add sp, sp, #4
+ cmp r0, #0x1a
+ ldmia sp!, {lr}
+ bx lr
+_02216074:
+ ldr r2, _02216094 ; =0x02240AF8
+ mov r0, #9
+ ldr r2, [r2]
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+ .align 2, 0
+_02216094: .word 0x02240AF8
+
+ arm_func_start MOD13_02216098
+MOD13_02216098: ; 0x02216098
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #0x20
+ mov r4, r0
+ ldrh r0, [r4]
+ cmp r0, #0x19
+ bgt _02216104
+ cmp r0, #0x19
+ bge _022161F8
+ cmp r0, #0xf
+ addls pc, pc, r0, lsl #2
+ b _022168D8
+_022160C4: ; jump table
+ b _02216124 ; case 0
+ b _02216694 ; case 1
+ b _02216744 ; case 2
+ b _022168D8 ; case 3
+ b _022168D8 ; case 4
+ b _022168D8 ; case 5
+ b _022168D8 ; case 6
+ b _022161BC ; case 7
+ b _02216250 ; case 8
+ b _022168D8 ; case 9
+ b _022168D8 ; case 10
+ b _022168D8 ; case 11
+ b _022168D8 ; case 12
+ b _022167C4 ; case 13
+ b _022164E0 ; case 14
+ b _02216584 ; case 15
+_02216104:
+ cmp r0, #0x1d
+ bgt _02216118
+ cmp r0, #0x1d
+ beq _02216164
+ b _022168D8
+_02216118:
+ cmp r0, #0x80
+ beq _02216804
+ b _022168D8
+_02216124:
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ beq _02216154
+ ldr r0, _022168FC ; =0x02240AF8
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0x100
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_02216154:
+ bl MOD13_02216910
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_02216164:
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ beq _02216194
+ ldr r0, _022168FC ; =0x02240AF8
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0x100
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_02216194:
+ ldr r1, _022168FC ; =0x02240AF8
+ ldr r0, _02216900 ; =MOD13_02216098
+ ldr r1, [r1]
+ bl WM_SetParentParameter
+ mov r1, r0
+ mov r0, #7
+ bl MOD13_02214B08
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_022161BC:
+ ldr r0, _022168FC ; =0x02240AF8
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0x15
+ ldr r2, [r2, #0x51c]
+ blx r2
+ ldr r0, _02216900 ; =MOD13_02216098
+ mov r1, #1
+ bl WM_SetBeaconIndication
+ mov r1, r0
+ mov r0, #0x19
+ bl MOD13_02214B08
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_022161F8:
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ beq _02216228
+ ldr r0, _022168FC ; =0x02240AF8
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0x100
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_02216228:
+ ldr r1, _02216904 ; =0x0223F7A0
+ ldr r0, _02216900 ; =MOD13_02216098
+ ldr r1, [r1]
+ bl FUN_020D9564
+ mov r1, r0
+ mov r0, #8
+ bl MOD13_02214B08
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_02216250:
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ beq _02216280
+ ldr r0, _022168FC ; =0x02240AF8
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0x100
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_02216280:
+ ldrh r0, [r4, #8]
+ cmp r0, #7
+ bgt _022162B8
+ cmp r0, #7
+ bge _0221630C
+ cmp r0, #2
+ bgt _022164BC
+ cmp r0, #0
+ blt _022164BC
+ cmp r0, #0
+ beq _022162E0
+ cmp r0, #2
+ beq _02216480
+ b _022164BC
+_022162B8:
+ cmp r0, #9
+ bgt _022162CC
+ cmp r0, #9
+ beq _02216440
+ b _022164BC
+_022162CC:
+ cmp r0, #0x1a
+ addeq sp, sp, #0x20
+ ldmeqia sp!, {r4, lr}
+ bxeq lr
+ b _022164BC
+_022162E0:
+ ldr r1, _022168FC ; =0x02240AF8
+ mov r2, #0
+ ldr r0, [r1]
+ add sp, sp, #0x20
+ add r0, r0, #0x500
+ strh r2, [r0, #0x2a]
+ ldr r0, [r1]
+ add r0, r0, #0x500
+ strh r2, [r0, #0x28]
+ ldmia sp!, {r4, lr}
+ bx lr
+_0221630C:
+ ldr r2, _022168FC ; =0x02240AF8
+ ldr r0, [r2]
+ add r0, r0, #0x500
+ ldrh r1, [r0, #0x26]
+ cmp r1, #1
+ addeq sp, sp, #0x20
+ ldmeqia sp!, {r4, lr}
+ bxeq lr
+ ldrh lr, [r0, #0x2a]
+ ldrh r3, [r4, #0x10]
+ mov ip, #1
+ mov r1, r4
+ orr r3, lr, ip, lsl r3
+ strh r3, [r0, #0x2a]
+ ldr r2, [r2]
+ mov r0, #0
+ ldr r2, [r2, #0x51c]
+ blx r2
+ ldr r1, _022168FC ; =0x02240AF8
+ ldr r0, [r1]
+ add r0, r0, #0x500
+ ldrh r0, [r0, #0x28]
+ cmp r0, #0
+ bne _02216408
+ ldr r0, _02216908 ; =0x02240AFC
+ ldr r0, [r0]
+ add r0, r0, #0x1000
+ ldr r2, [r0, #0x31c]
+ cmp r2, #0
+ bne _02216408
+ mov r2, #1
+ str r2, [r0, #0x31c]
+ ldr r0, [r1]
+ ldr r1, _022168FC ; =0x02240AF8
+ add r0, r0, #0x500
+ ldrh r0, [r0, #0x2c]
+ ldr ip, [r1]
+ mov r1, #1
+ cmp r0, #0
+ movne r2, #0
+ mov r0, r2, lsl #0x10
+ mov r3, r0, lsr #0x10
+ add r0, ip, #0x500
+ ldrh r4, [r0, #0x18]
+ mov r2, #0
+ str r4, [sp]
+ str r3, [sp, #4]
+ str r2, [sp, #8]
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ str r1, [sp, #0x14]
+ str r1, [sp, #0x18]
+ ldrh r2, [r0, #0x1a]
+ ldr r1, [ip, #0x504]
+ ldr r0, _02216900 ; =MOD13_02216098
+ add r3, ip, #0x40
+ bl WM_StartMPEx
+ mov r1, r0
+ mov r0, #0xe
+ bl MOD13_02214B08
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_02216408:
+ bl MOD13_02216984
+ cmp r0, #0
+ addeq sp, sp, #0x20
+ ldmeqia sp!, {r4, lr}
+ bxeq lr
+ ldr r1, _022168FC ; =0x02240AF8
+ mov r0, #0x19
+ ldr r2, [r1]
+ mov r1, #0
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_02216440:
+ ldr r2, _022168FC ; =0x02240AF8
+ ldrh r3, [r4, #0x10]
+ ldr r1, [r2]
+ mov r0, #1
+ add r1, r1, #0x500
+ ldrh ip, [r1, #0x2a]
+ mvn r3, r0, lsl r3
+ and r3, ip, r3
+ strh r3, [r1, #0x2a]
+ ldr r2, [r2]
+ mov r1, r4
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_02216480:
+ ldr r0, _022168FC ; =0x02240AF8
+ ldr r1, [r0]
+ add r0, r1, #0x500
+ ldrh r0, [r0, #0x26]
+ cmp r0, #1
+ addeq sp, sp, #0x20
+ ldmeqia sp!, {r4, lr}
+ bxeq lr
+ ldr r2, [r1, #0x51c]
+ mov r1, r4
+ mov r0, #0x1c
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_022164BC:
+ ldr r0, _022168FC ; =0x02240AF8
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0x100
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_022164E0:
+ ldr r0, _02216908 ; =0x02240AFC
+ mov r1, #0
+ ldr r0, [r0]
+ add r0, r0, #0x1000
+ str r1, [r0, #0x31c]
+ ldrh r0, [r4, #4]
+ cmp r0, #0xa
+ beq _0221650C
+ cmp r0, #0xb
+ beq _0221653C
+ b _02216560
+_0221650C:
+ ldr r3, _022168FC ; =0x02240AF8
+ mov r4, #1
+ ldr r2, [r3]
+ mov r0, #0x19
+ add r2, r2, #0x500
+ strh r4, [r2, #0x28]
+ ldr r2, [r3]
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_0221653C:
+ ldr r0, _022168FC ; =0x02240AF8
+ ldr r1, [r4, #8]
+ ldr r2, [r0]
+ mov r0, #3
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_02216560:
+ ldr r0, _022168FC ; =0x02240AF8
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0x100
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_02216584:
+ ldr r0, _02216908 ; =0x02240AFC
+ ldr r1, [r0]
+ add r0, r1, #0x7000
+ ldr r0, [r0, #0x4c8]
+ cmp r0, #0
+ beq _022165E0
+ mov r3, #0
+ mov r2, r3
+_022165A4:
+ add r0, r1, r2, lsl #2
+ add r0, r0, #0x1000
+ ldr r0, [r0, #0x4e8]
+ cmp r0, #0
+ beq _022165C4
+ add r3, r3, #1
+ cmp r3, #2
+ bhs _022165D0
+_022165C4:
+ add r2, r2, #1
+ cmp r2, #0xf
+ blo _022165A4
+_022165D0:
+ cmp r3, #1
+ bne _022165E0
+ ldr r0, _0221690C ; =0x000032C8
+ bl OS_SpinWait
+_022165E0:
+ ldr r0, _022168FC ; =0x02240AF8
+ mov r2, #0
+ ldr r1, [r0]
+ strb r2, [r1, #0x50c]
+ ldrh r1, [r4, #2]
+ cmp r1, #0
+ bne _02216634
+ ldr r0, [r0]
+ mov r1, r4
+ ldr r2, [r0, #0x51c]
+ mov r0, #2
+ blx r2
+ ldr r1, _022168FC ; =0x02240AF8
+ mov r0, #0x19
+ ldr r2, [r1]
+ mov r1, #0
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_02216634:
+ cmp r1, #0xa
+ bne _0221665C
+ ldr r0, [r0]
+ mov r1, r4
+ ldr r2, [r0, #0x51c]
+ mov r0, #0x2a
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_0221665C:
+ ldr r0, [r0]
+ mov r1, r4
+ ldr r2, [r0, #0x51c]
+ mov r0, #0x13
+ blx r2
+ ldr r1, _022168FC ; =0x02240AF8
+ mov r0, #0x19
+ ldr r2, [r1]
+ mov r1, #0
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_02216694:
+ ldr r0, _02216908 ; =0x02240AFC
+ ldr r0, [r0]
+ add r0, r0, #0x1000
+ ldr r0, [r0, #0x320]
+ cmp r0, #0
+ bne _0221672C
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ beq _022166EC
+ ldr r2, _022168FC ; =0x02240AF8
+ mov r3, #0
+ ldr r0, [r2]
+ mov r1, r4
+ add r0, r0, #0x500
+ strh r3, [r0, #0x26]
+ ldr r2, [r2]
+ mov r0, #0x100
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_022166EC:
+ ldr r2, _022168FC ; =0x02240AF8
+ mov r3, #0
+ ldr r1, [r2]
+ ldr r0, _02216900 ; =MOD13_02216098
+ add r1, r1, #0x500
+ strh r3, [r1, #0x2a]
+ ldr r1, [r2]
+ add r1, r1, #0x500
+ strh r3, [r1, #0x28]
+ bl WM_End
+ mov r1, r0
+ mov r0, #2
+ bl MOD13_02214B08
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_0221672C:
+ mov r1, #0
+ mov r2, r1
+ mov r0, #1
+ bl WM_SetPortCallback
+ mov r0, #0
+ bl WM_SetIndCallback
+_02216744:
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ beq _02216784
+ ldr r2, _022168FC ; =0x02240AF8
+ mov r3, #0
+ ldr r0, [r2]
+ mov r1, r4
+ add r0, r0, #0x500
+ strh r3, [r0, #0x26]
+ ldr r2, [r2]
+ mov r0, #0x100
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_02216784:
+ ldr r2, _022168FC ; =0x02240AF8
+ mov r3, #0
+ ldr r1, [r2]
+ ldr r0, _02216908 ; =0x02240AFC
+ strb r3, [r1, #0x50d]
+ ldr r0, [r0]
+ mov r1, r4
+ add r0, r0, #0x1300
+ strh r3, [r0, #0x16]
+ ldr r2, [r2]
+ mov r0, #0x11
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_022167C4:
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ addne sp, sp, #0x20
+ ldmneia sp!, {r4, lr}
+ bxne lr
+ ldr r0, _022168FC ; =0x02240AF8
+ ldrh r1, [r4, #0xa]
+ ldr r0, [r0]
+ add sp, sp, #0x20
+ add r0, r0, #0x500
+ ldrh r2, [r0, #0x2a]
+ mvn r1, r1
+ and r1, r2, r1
+ strh r1, [r0, #0x2a]
+ ldmia sp!, {r4, lr}
+ bx lr
+_02216804:
+ ldrh r0, [r4, #4]
+ sub r0, r0, #0x10
+ cmp r0, #7
+ addls pc, pc, r0, lsl #2
+ b _022168F0
+_02216818: ; jump table
+ b _02216838 ; case 0
+ b _0221685C ; case 1
+ b _02216880 ; case 2
+ b _022168A4 ; case 3
+ b _022168F0 ; case 4
+ b _022168F0 ; case 5
+ b _022168C8 ; case 6
+ b _022168F0 ; case 7
+_02216838:
+ ldr r0, _022168FC ; =0x02240AF8
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0x1d
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_0221685C:
+ ldr r0, _022168FC ; =0x02240AF8
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0x1f
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_02216880:
+ ldr r0, _022168FC ; =0x02240AF8
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0x20
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_022168A4:
+ ldr r0, _022168FC ; =0x02240AF8
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0x21
+ ldr r2, [r2, #0x51c]
+ blx r2
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_022168C8:
+ bl OS_Terminate
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+_022168D8:
+ ldr r0, _022168FC ; =0x02240AF8
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0x100
+ ldr r2, [r2, #0x51c]
+ blx r2
+_022168F0:
+ add sp, sp, #0x20
+ ldmia sp!, {r4, lr}
+ bx lr
+ .align 2, 0
+_022168FC: .word 0x02240AF8
+_02216900: .word MOD13_02216098
+_02216904: .word 0x0223F7A0
+_02216908: .word 0x02240AFC
+_0221690C: .word 0x000032C8
+
+ arm_func_start MOD13_02216910
+MOD13_02216910: ; 0x02216910
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02216970 ; =MOD13_02216098
+ bl WM_SetIndCallback
+ mov r1, r0
+ mov r0, #0x80
+ bl MOD13_02214B08
+ ldr r0, _02216974 ; =0x0223F794
+ ldr r1, _02216978 ; =0x0223F798
+ ldrh r3, [r0]
+ ldr r2, _0221697C ; =0x0223F790
+ ldr r0, _02216980 ; =0x0223F78C
+ str r3, [sp]
+ ldrh r1, [r1]
+ ldrh r2, [r2]
+ ldrh r3, [r0]
+ ldr r0, _02216970 ; =MOD13_02216098
+ bl WM_SetLifeTime
+ mov r1, r0
+ mov r0, #0x1d
+ bl MOD13_02214B08
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+ .align 2, 0
+_02216970: .word MOD13_02216098
+_02216974: .word 0x0223F794
+_02216978: .word 0x0223F798
+_0221697C: .word 0x0223F790
+_02216980: .word 0x0223F78C
+
+ arm_func_start MOD13_02216984
+MOD13_02216984: ; 0x02216984
+ ldr r1, _022169E8 ; =0x02240AF8
+ mov r0, #0
+ ldr r2, [r1]
+ mov ip, r0
+ add r1, r2, #0x500
+ ldrh r1, [r1, #0x28]
+ mov r3, r0
+ cmp r1, #1
+ bne _022169B4
+ ldrb r1, [r2, #0x50c]
+ cmp r1, #0
+ moveq r3, #1
+_022169B4:
+ cmp r3, #0
+ beq _022169CC
+ add r1, r2, #0x500
+ ldrh r1, [r1, #0x26]
+ cmp r1, #0
+ moveq ip, #1
+_022169CC:
+ cmp ip, #0
+ bxeq lr
+ add r1, r2, #0x500
+ ldrh r1, [r1, #0x2a]
+ cmp r1, #0
+ movne r0, #1
+ bx lr
+ .align 2, 0
+_022169E8: .word 0x02240AF8
+
+ arm_func_start MOD13_022169EC
+MOD13_022169EC: ; 0x022169EC
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl WM_GetAllowedChannel
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, lr}
+ bxeq lr
+ ldrh r3, [r4, #4]
+ mov ip, #0
+ mov lr, r3
+ mov r2, #1
+_02216A18:
+ sub r1, lr, #1
+ mov r1, r2, lsl r1
+ ands r1, r0, r1
+ beq _02216A34
+ cmp r3, lr
+ strneh lr, [r4, #4]
+ bne _02216A5C
+_02216A34:
+ add r1, ip, #1
+ mov r1, r1, lsl #0x10
+ cmp lr, #0x10
+ mov ip, r1, lsr #0x10
+ moveq r1, r2
+ addne r1, lr, #1
+ mov r1, r1, lsl #0x10
+ cmp ip, #0x10
+ mov lr, r1, lsr #0x10
+ blo _02216A18
+_02216A5C:
+ mov r0, #1
+ ldmia sp!, {r4, lr}
+ bx lr
+
+ arm_func_start MOD13_02216A68
+MOD13_02216A68: ; 0x02216A68
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ mov sb, r0
+ mov r8, r1
+ mov r7, r2
+ mov r6, r3
+ mov r5, #0
+ bl OS_DisableInterrupts
+ add r2, sb, #0x30
+ add r1, sb, #0x70
+ mov r4, r0
+ cmp r2, r1
+ bhs _02216AF4
+_02216A9C:
+ ldr r0, [r2, #0xc]
+ cmp r0, #2
+ blo _02216AE8
+ ldr r0, [r2]
+ subs r0, r8, r0
+ bmi _02216AE8
+ ldr r3, [r2, #4]
+ add ip, r0, r6
+ cmp ip, r3
+ bhi _02216AE8
+ ldr r3, [r2, #8]
+ mov r1, r7
+ mov r2, r6
+ add r0, r3, r0
+ bl MI_CpuCopy8
+ mov r0, #0
+ str r0, [sb]
+ mov r5, #1
+ b _02216AF4
+_02216AE8:
+ add r2, r2, #0x10
+ cmp r2, r1
+ blo _02216A9C
+_02216AF4:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, r5
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, lr}
+ bx lr
+
+ arm_func_start MOD13_02216B0C
+MOD13_02216B0C: ; 0x02216B0C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ mov r4, r0
+ mov sb, r1
+ mov r8, r2
+ mov r7, r3
+ bl OS_DisableInterrupts
+ mov r6, r0
+ add r5, r4, #0x30
+ add r4, r4, #0x70
+_02216B34:
+ cmp r5, r4
+ blo _02216B40
+ bl OS_Terminate
+_02216B40:
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bne _02216B64
+ str sb, [r5]
+ str r8, [r5, #4]
+ ldr r0, [sp, #0x20]
+ str r7, [r5, #8]
+ str r0, [r5, #0xc]
+ b _02216B6C
+_02216B64:
+ add r5, r5, #0x10
+ b _02216B34
+_02216B6C:
+ mov r0, r6
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, lr}
+ bx lr
+
+ arm_func_start MOD13_02216B80
+MOD13_02216B80: ; 0x02216B80
+ ldr ip, _02216B90 ; =0x020CE34C
+ mov r1, #0
+ mov r2, #0x70
+ bx ip
+ .align 2, 0
+_02216B90: .word 0x020CE34C
+
+ arm_func_start MOD13_02216B94
+MOD13_02216B94: ; 0x02216B94
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ mov r4, r0
+ bl MOD13_02216DA4
+ cmp r0, #0
+ beq _02216BD0
+ ldr r0, _02216BE4 ; =0x02240B20
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, r5
+ mov r3, r1
+ add r0, r0, #0xc4
+ bl MOD13_02216BE8
+_02216BD0:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+ .align 2, 0
+_02216BE4: .word 0x02240B20
+
+ arm_func_start MOD13_02216BE8
+MOD13_02216BE8: ; 0x02216BE8
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ ldr r4, _02216D74 ; =0x02240B20
+ mov sb, r0
+ mov r8, r1
+ mov r7, r2
+ mov r6, r3
+ ldr r5, [r4]
+ bl MOD13_02216DA4
+ cmp r0, #0
+ bne _02216C18
+ bl OS_Terminate
+_02216C18:
+ ldr r0, [sb, #4]
+ mov r0, r0, lsl #0x1f
+ movs r0, r0, lsr #0x1f
+ beq _02216C2C
+ bl OS_Terminate
+_02216C2C:
+ cmp r6, #0x1f
+ bls _02216C78
+ mov r0, r5
+ bl OS_GetThreadPriority
+ cmp r6, #0x20
+ bne _02216C54
+ cmp r0, #0
+ subne r6, r0, #1
+ moveq r6, #0
+ b _02216C78
+_02216C54:
+ cmp r6, #0x21
+ bne _02216C6C
+ cmp r0, #0x1f
+ addlo r6, r0, #1
+ movhs r6, #0x1f
+ b _02216C78
+_02216C6C:
+ cmp r6, #0x22
+ moveq r6, r0
+ movne r6, #0x1f
+_02216C78:
+ bl OS_DisableInterrupts
+ ldr r2, [sb, #4]
+ bic r1, r6, #0x80000000
+ bic r2, r2, #1
+ orr r2, r2, #1
+ str r2, [sb, #4]
+ ldr r2, [sb, #4]
+ mov r4, r0
+ and r0, r2, #1
+ orr r0, r0, r1, lsl #1
+ str r0, [sb, #4]
+ str r8, [sb, #8]
+ str r7, [sb, #0xc]
+ ldr r0, [r5, #0xc0]
+ cmp r0, #0
+ bne _02216CDC
+ add r0, r5, #0xc4
+ cmp sb, r0
+ ldreq r0, _02216D74 ; =0x02240B20
+ moveq r1, #0
+ streq r1, [r0]
+ mov r0, r5
+ str sb, [r5, #0xc0]
+ bl OS_WakeupThreadDirect
+ b _02216D60
+_02216CDC:
+ add r0, r5, #0xc4
+ cmp sb, r0
+ ldr r2, [r5, #0xc0]
+ bne _02216D1C
+ ldr r0, [r2]
+ cmp r0, #0
+ beq _02216D08
+_02216CF8:
+ mov r2, r0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02216CF8
+_02216D08:
+ ldr r0, _02216D74 ; =0x02240B20
+ str sb, [r2]
+ mov r1, #0
+ str r1, [r0]
+ b _02216D60
+_02216D1C:
+ ldr r0, [r2, #4]
+ mov r0, r0, lsr #1
+ cmp r0, r6
+ bls _02216D3C
+ str sb, [r5, #0xc0]
+ str r2, [sb]
+ b _02216D60
+_02216D38:
+ mov r2, r1
+_02216D3C:
+ ldr r1, [r2]
+ cmp r1, #0
+ beq _02216D58
+ ldr r0, [r1, #4]
+ mov r0, r0, lsr #1
+ cmp r0, r6
+ bls _02216D38
+_02216D58:
+ str r1, [sb]
+ str sb, [r2]
+_02216D60:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, lr}
+ bx lr
+ .align 2, 0
+_02216D74: .word 0x02240B20
+
+ arm_func_start MOD13_02216D78
+MOD13_02216D78: ; 0x02216D78
+ ldr r0, [r0, #4]
+ mov r0, r0, lsl #0x1f
+ movs r0, r0, lsr #0x1f
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+
+ arm_func_start MOD13_02216D90
+MOD13_02216D90: ; 0x02216D90
+ ldr ip, _02216DA0 ; =0x020CE34C
+ mov r1, #0
+ mov r2, #0x20
+ bx ip
+ .align 2, 0
+_02216DA0: .word 0x020CE34C
+
+ arm_func_start MOD13_02216DA4
+MOD13_02216DA4: ; 0x02216DA4
+ ldr r0, _02216DBC ; =0x02240B20
+ ldr r0, [r0]
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_02216DBC: .word 0x02240B20
+
+ arm_func_start MOD13_02216DC0
+MOD13_02216DC0: ; 0x02216DC0
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #8
+ mov r5, r0
+ mov r6, r1
+ bl OS_DisableInterrupts
+ ldr r1, _02216E40 ; =0x02240B20
+ mov r4, r0
+ ldr r0, [r1]
+ cmp r0, #0
+ bne _02216E2C
+ add r0, r5, #0xc4
+ str r5, [r1]
+ bl MOD13_02216D90
+ sub r0, r6, #0xe4
+ mov lr, #0
+ str lr, [r5, #0xc0]
+ bic ip, r0, #3
+ add r3, r5, #0xe4
+ str ip, [sp]
+ ldr r1, _02216E44 ; =MOD13_02216E48
+ mov r0, r5
+ mov r2, r5
+ add r3, r3, ip
+ str lr, [sp, #4]
+ bl OS_CreateThread
+ mov r0, r5
+ bl OS_WakeupThreadDirect
+_02216E2C:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+ .align 2, 0
+_02216E40: .word 0x02240B20
+_02216E44: .word MOD13_02216E48
+
+ arm_func_start MOD13_02216E48
+MOD13_02216E48: ; 0x02216E48
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ mov r8, r0
+ add sb, r8, #0xc4
+ mov r4, #0
+_02216E5C:
+ bl OS_DisableInterrupts
+ ldr r1, [r8, #0xc0]
+ mov r5, r0
+ cmp r1, #0
+ bne _02216E90
+_02216E70:
+ mov r0, r8
+ mov r1, r4
+ bl OS_SetThreadPriority
+ mov r0, r4
+ bl OS_SleepThread
+ ldr r0, [r8, #0xc0]
+ cmp r0, #0
+ beq _02216E70
+_02216E90:
+ ldr r7, [r8, #0xc0]
+ ldr r1, [r8, #0xc0]
+ mov r0, r8
+ ldr r1, [r1]
+ str r1, [r8, #0xc0]
+ ldr r1, [r7, #4]
+ mov r1, r1, lsr #1
+ bl OS_SetThreadPriority
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ ldr r1, [r7, #8]
+ cmp r1, #0
+ beq _02216ECC
+ mov r0, r7
+ blx r1
+_02216ECC:
+ bl OS_DisableInterrupts
+ mov r6, r0
+ mov r0, r8
+ ldr r5, [r7, #0xc]
+ bl OS_GetThreadPriority
+ ldr r1, [r8, #0xc0]
+ cmp r1, #0
+ moveq r1, r4
+ beq _02216F0C
+ ldr r1, [r8, #0xc0]
+ ldr r1, [r1, #4]
+ cmp r0, r1, lsr #1
+ ldrlo r1, [r8, #0xc0]
+ ldrlo r1, [r1, #4]
+ movlo r1, r1, lsr #1
+ movhs r1, r0
+_02216F0C:
+ cmp r1, r0
+ beq _02216F1C
+ mov r0, r8
+ bl OS_SetThreadPriority
+_02216F1C:
+ str r4, [r7]
+ ldr r0, [r7, #4]
+ cmp r5, #0
+ bic r0, r0, #1
+ str r0, [r7, #4]
+ beq _02216F3C
+ mov r0, r7
+ blx r5
+_02216F3C:
+ cmp r7, sb
+ beq _02216F50
+ mov r0, r6
+ bl OS_RestoreInterrupts
+ b _02216E5C
+_02216F50:
+ bl OS_ExitThread
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, lr}
+ bx lr
+
+ arm_func_start MOD13_02216F60
+MOD13_02216F60: ; 0x02216F60
+ ldr r1, _02216FB8 ; =0x02240B28
+ mov ip, #0
+ ldr r2, [r1, #4]
+ cmp r2, #0
+ ble _02216FB0
+ ldr r1, _02216FBC ; =0x02240B24
+ sub r0, r0, #1
+ ldr r1, [r1]
+ add r0, r1, r0, lsl #2
+ ldr r3, [r0, #0x1e0]
+ mov r1, #1
+_02216F8C:
+ mov r0, r1, lsl ip
+ ands r0, r0, r3
+ moveq r0, #0
+ bxeq lr
+ add r0, ip, #1
+ mov r0, r0, lsl #0x10
+ mov ip, r0, lsr #0x10
+ cmp ip, r2
+ blt _02216F8C
+_02216FB0:
+ mov r0, #1
+ bx lr
+ .align 2, 0
+_02216FB8: .word 0x02240B28
+_02216FBC: .word 0x02240B24
+
+ arm_func_start MOD13_02216FC0
+MOD13_02216FC0: ; 0x02216FC0
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ ldr r2, _02217068 ; =0x02240B24
+ mov r7, r1
+ ldr r3, [r2]
+ cmp r3, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, lr}
+ bxeq lr
+ ldr r1, _0221706C ; =0x02240B28
+ ldrb r4, [r0, #2]
+ ldr r2, [r1, #4]
+ cmp r4, r2
+ addgt sp, sp, #4
+ movgt r0, #0
+ ldmgtia sp!, {r4, r5, r6, r7, lr}
+ bxgt lr
+ sub r6, r7, #1
+ ldr r2, [r1]
+ add r1, r3, r6, lsl #5
+ mla r1, r4, r2, r1
+ add r0, r0, #3
+ mov r5, r6, lsl #5
+ bl MI_CpuCopy8
+ ldr r0, _02217068 ; =0x02240B24
+ mov r1, #1
+ ldr r2, [r0]
+ mov r0, r7
+ add r3, r2, #0x1e0
+ ldr r2, [r3, r6, lsl #2]
+ orr r1, r2, r1, lsl r4
+ str r1, [r3, r6, lsl #2]
+ bl MOD13_02216F60
+ cmp r0, #0
+ ldrne r0, _02217068 ; =0x02240B24
+ ldrne r0, [r0]
+ addne r0, r0, r5
+ moveq r0, #0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+ .align 2, 0
+_02217068: .word 0x02240B24
+_0221706C: .word 0x02240B28
+
+ arm_func_start MOD13_02217070
+MOD13_02217070: ; 0x02217070
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, r0
+ ldrb r0, [r6]
+ mov r5, r1
+ mov r4, r2
+ strb r0, [r5]
+ ldrb r0, [r5]
+ cmp r0, #7
+ beq _022170A8
+ cmp r0, #8
+ beq _02217114
+ cmp r0, #9
+ beq _02217140
+ b _0221718C
+_022170A8:
+ mov r0, r4
+ bl MOD13_02216F60
+ cmp r0, #0
+ ldrne r0, _022171A4 ; =0x02240B24
+ subne r1, r4, #1
+ ldrne r0, [r0]
+ addne r0, r0, r1, lsl #5
+ ldmneia sp!, {r4, r5, r6, lr}
+ bxne lr
+ ldrb r1, [r6, #1]
+ ldr r0, _022171A8 ; =0x02240B28
+ strb r1, [r5, #2]
+ ldrb r2, [r5, #2]
+ ldr r1, [r0, #4]
+ cmp r2, r1
+ movgt r0, #0
+ ldmgtia sp!, {r4, r5, r6, lr}
+ bxgt lr
+ ldr r2, [r0]
+ add r0, r6, #2
+ add r1, r5, #3
+ bl MI_CpuCopy8
+ mov r0, r5
+ mov r1, r4
+ bl MOD13_02216FC0
+ mov r4, r0
+ b _02217198
+_02217114:
+ ldrb r0, [r6, #1]
+ add r4, r6, #3
+ and r0, r0, #0xff
+ strh r0, [r5, #2]
+ ldrb r0, [r6, #2]
+ ldrh r1, [r5, #2]
+ mov r0, r0, lsl #8
+ and r0, r0, #0xff00
+ orr r0, r1, r0
+ strh r0, [r5, #2]
+ b _02217198
+_02217140:
+ ldrb r0, [r6, #1]
+ add r4, r6, #3
+ ldr r1, _022171A8 ; =0x02240B28
+ and r0, r0, #0xff
+ strh r0, [r5, #2]
+ ldrb r2, [r6, #2]
+ ldrh r3, [r5, #2]
+ mov r0, r4
+ mov r2, r2, lsl #8
+ and r2, r2, #0xff00
+ orr r2, r3, r2
+ strh r2, [r5, #2]
+ ldr r2, [r1]
+ add r1, r5, #4
+ bl MI_CpuCopy8
+ ldr r0, _022171A8 ; =0x02240B28
+ ldr r0, [r0]
+ add r4, r4, r0
+ b _02217198
+_0221718C:
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+_02217198:
+ mov r0, r4
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+ .align 2, 0
+_022171A4: .word 0x02240B24
+_022171A8: .word 0x02240B28
+
+ arm_func_start MOD13_022171AC
+MOD13_022171AC: ; 0x022171AC
+ ldrb r3, [r0]
+ mov r2, r1
+ add r2, r2, #1
+ strb r3, [r1]
+ ldrb r1, [r0]
+ cmp r1, #6
+ addls pc, pc, r1, lsl #2
+ b _02217224
+_022171CC: ; jump table
+ b _02217224 ; case 0
+ b _0221722C ; case 1
+ b _0221722C ; case 2
+ b _0221722C ; case 3
+ b _022171E8 ; case 4
+ b _0221722C ; case 5
+ b _0221722C ; case 6
+_022171E8:
+ ldrh r3, [r0, #2]
+ add r1, r2, #3
+ strb r3, [r2]
+ ldrh r3, [r0, #2]
+ and r3, r3, #0xff00
+ mov r3, r3, asr #8
+ strb r3, [r2, #1]
+ ldrh r3, [r0, #4]
+ strb r3, [r2, #2]
+ ldrh r0, [r0, #4]
+ add r2, r2, #4
+ and r0, r0, #0xff00
+ mov r0, r0, asr #8
+ strb r0, [r1]
+ b _0221722C
+_02217224:
+ mov r0, #0
+ bx lr
+_0221722C:
+ mov r0, r2
+ bx lr
+
+ arm_func_start MOD13_02217234
+MOD13_02217234: ; 0x02217234
+ stmdb sp!, {r4, lr}
+ ldr r1, _0221727C ; =0x02240B24
+ ldr r1, [r1]
+ cmp r1, #0
+ ldmeqia sp!, {r4, lr}
+ bxeq lr
+ sub r4, r0, #1
+ add r0, r1, r4, lsl #5
+ mov r1, #0
+ mov r2, #0x1e
+ bl MI_CpuFill8
+ ldr r0, _0221727C ; =0x02240B24
+ mov r1, #0
+ ldr r0, [r0]
+ add r0, r0, r4, lsl #2
+ str r1, [r0, #0x1e0]
+ ldmia sp!, {r4, lr}
+ bx lr
+ .align 2, 0
+_0221727C: .word 0x02240B24
+
+ arm_func_start MOD13_02217280
+MOD13_02217280: ; 0x02217280
+ ldr r3, _02217298 ; =0x02240B24
+ ldr ip, _0221729C ; =0x020CE34C
+ mov r1, #0
+ mov r2, #0x21c
+ str r0, [r3]
+ bx ip
+ .align 2, 0
+_02217298: .word 0x02240B24
+_0221729C: .word 0x020CE34C
+
+ arm_func_start MOD13_022172A0
+MOD13_022172A0: ; 0x022172A0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _022172D8 ; =0x02240B28
+ sub r1, r0, #2
+ mov r0, #0x1e
+ str r1, [r2]
+ bl _s32_div_f
+ ldr r1, _022172D8 ; =0x02240B28
+ mov r2, #0x1e
+ str r0, [r1, #4]
+ str r2, [r1, #8]
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+ .align 2, 0
+_022172D8: .word 0x02240B28
diff --git a/arm9/modules/13/asm/module_13_arm2.s b/arm9/modules/13/asm/module_13_arm2.s
new file mode 100644
index 00000000..028a3b7c
--- /dev/null
+++ b/arm9/modules/13/asm/module_13_arm2.s
@@ -0,0 +1,35373 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ arm_func_start MOD13_0221E560
+MOD13_0221E560: ; 0x0221E560
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r0, _0221E640 ; =0x02242FE4
+ mov r1, #0x28
+ ldr r0, [r0]
+ ldrb r0, [r0, #9]
+ add r0, r0, #1
+ bl FX_ModS32
+ ldr r2, _0221E640 ; =0x02242FE4
+ mov r1, #5
+ ldr r3, [r2]
+ strb r0, [r3, #9]
+ ldr r0, [r2]
+ ldrb r0, [r0, #9]
+ bl FX_DivS32
+ ldr r2, _0221E640 ; =0x02242FE4
+ add r1, r0, #0x47
+ ldr r2, [r2]
+ mov r0, #0
+ ldr r2, [r2, #4]
+ bl MOD13_02239E8C
+ ldr r3, _0221E640 ; =0x02242FE4
+ ldr lr, _0221E644 ; =0x0223EC6C
+ ldr r0, [r3]
+ ldr r2, _0221E648 ; =0x0223EC70
+ ldr r5, [r0, #4]
+ ldr r1, _0221E64C ; =0xFE00FF00
+ ldrh r4, [r5, #4]
+ ldr r0, _0221E650 ; =0x000001FF
+ bic r4, r4, #0xc00
+ orr r4, r4, #0x400
+ strh r4, [r5, #4]
+ ldr r4, [r3]
+ ldrb r5, [r4, #8]
+ ldr ip, [r4, #4]
+ ldr r4, [ip]
+ ldrb lr, [lr, r5]
+ bic r4, r4, #0xc00
+ str r4, [ip]
+ ldrh r4, [ip, #4]
+ bic r4, r4, #0xf000
+ orr r4, r4, lr, lsl #12
+ strh r4, [ip, #4]
+ ldr r4, [r3]
+ ldrh r3, [r2, #2]
+ ldr r4, [r4, #4]
+ ldrh lr, [r2]
+ ldr ip, [r4]
+ and r2, r3, #0xff
+ and r1, ip, r1
+ and r3, lr, r0
+ orr r0, r1, r2
+ orr r0, r0, r3, lsl #16
+ str r0, [r4]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0221E640: .word 0x02242FE4
+_0221E644: .word 0x0223EC6C
+_0221E648: .word 0x0223EC70
+_0221E64C: .word 0xFE00FF00
+_0221E650: .word 0x000001FF
+
+ arm_func_start MOD13_0221E654
+MOD13_0221E654: ; 0x0221E654
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _0221E690 ; =0x02242FE4
+ mov r0, #1
+ ldr r1, [r1]
+ ldr r1, [r1]
+ bl MOD13_0223C104
+ ldr r0, _0221E690 ; =0x02242FE4
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bl MOD13_0223B974
+ ldr r0, _0221E690 ; =0x02242FE4
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221E690: .word 0x02242FE4
+
+ arm_func_start MOD13_0221E694
+MOD13_0221E694: ; 0x0221E694
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ mov r4, r0
+ mov r0, #0xc
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r2, _0221E774 ; =0x02242FE4
+ mov r1, #0x47
+ str r0, [r2]
+ strb r4, [r0, #8]
+ mov r0, #0
+ bl MOD13_02239E54
+ ldr r7, _0221E774 ; =0x02242FE4
+ ldr r8, _0221E778 ; =0x0223EC6C
+ ldr r1, [r7]
+ ldr r6, _0221E77C ; =0x0223EC70
+ str r0, [r1, #4]
+ ldr r0, [r7]
+ ldr lr, _0221E780 ; =0x000001FF
+ ldr r3, [r0, #4]
+ ldr r5, _0221E784 ; =0xFE00FF00
+ ldrh r2, [r3, #4]
+ mov r0, #1
+ ldr r1, _0221E788 ; =MOD13_0221E560
+ bic r2, r2, #0xc00
+ orr r2, r2, #0x400
+ strh r2, [r3, #4]
+ ldr r3, [r7]
+ mov r2, #0
+ ldr ip, [r3, #4]
+ mov r3, #0x78
+ ldr sb, [ip]
+ bic sb, sb, #0xc00
+ str sb, [ip]
+ ldrb r4, [r8, r4]
+ ldrh r8, [ip, #4]
+ bic r8, r8, #0xf000
+ orr r4, r8, r4, lsl #12
+ strh r4, [ip, #4]
+ ldr r4, [r7]
+ ldrh r7, [r6]
+ ldr ip, [r4, #4]
+ ldrh r4, [r6, #2]
+ and r7, r7, lr
+ ldr r6, [ip]
+ and r4, r4, #0xff
+ and r5, r6, r5
+ orr r4, r5, r4
+ orr r4, r4, r7, lsl #16
+ str r4, [ip]
+ bl MOD13_0223C1C4
+ ldr r1, _0221E774 ; =0x02242FE4
+ ldr r1, [r1]
+ str r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ .align 2, 0
+_0221E774: .word 0x02242FE4
+_0221E778: .word 0x0223EC6C
+_0221E77C: .word 0x0223EC70
+_0221E780: .word 0x000001FF
+_0221E784: .word 0xFE00FF00
+_0221E788: .word MOD13_0221E560
+
+ arm_func_start MOD13_0221E78C
+MOD13_0221E78C: ; 0x0221E78C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #4
+ ldr r4, _0221E888 ; =0x02242FE8
+ str r0, [sp]
+ ldr r1, [r4]
+ ldrh r0, [r1, #0x14]
+ add r0, r0, #1
+ strh r0, [r1, #0x14]
+ ldr r1, [r4]
+ ldrh r0, [r1, #0x14]
+ cmp r0, #0x10
+ addlo sp, sp, #4
+ ldmloia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ ldrb r1, [r1, #0x17]
+ ldr r0, _0221E88C ; =0x0223EC7C
+ mov sb, #0
+ ldrb sl, [r0, r1]
+ cmp sl, #0
+ ble _0221E838
+ mov r7, sb
+ mov fp, sb
+ mvn r6, #0
+ mov r5, #1
+_0221E7E8:
+ ldr r0, [r4]
+ ldr r2, _0221E890 ; =0x0223EC8C
+ ldrb r3, [r0, #0x17]
+ ldr r0, [r0, sb, lsl #2]
+ mov r1, r7
+ add r2, r2, r3, lsl #1
+ ldrb r8, [sb, r2]
+ bl MOD13_02239ADC
+ mov r2, r0
+ mov r1, r8
+ mov r0, fp
+ bl MOD13_02239E8C
+ ldr r0, [r4]
+ mov r1, r6
+ ldr r0, [r0, sb, lsl #2]
+ mov r2, r5
+ bl MOD13_02239814
+ add sb, sb, #1
+ cmp sb, sl
+ blt _0221E7E8
+_0221E838:
+ ldr r0, _0221E894 ; =0x0223EC74
+ ldrh r0, [r0, #2]
+ bl MOD13_0221EBD8
+ ldr r1, _0221E888 ; =0x02242FE8
+ mov r0, #0
+ ldr r2, [r1]
+ mvn r3, #0
+ strh r0, [r2, #0x14]
+ ldr r2, [r1]
+ strb r3, [r2, #0x16]
+ ldr r2, [r1]
+ ldr r1, [r2, #0x10]
+ cmp r1, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ ldr r1, [sp]
+ str r0, [r2, #0x10]
+ bl MOD13_0223C110
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_0221E888: .word 0x02242FE8
+_0221E88C: .word 0x0223EC7C
+_0221E890: .word 0x0223EC8C
+_0221E894: .word 0x0223EC74
+
+ arm_func_start MOD13_0221E898
+MOD13_0221E898: ; 0x0221E898
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r1, r0
+ mov r0, #0
+ bl MOD13_0223C110
+ ldr r0, _0221E910 ; =0x02242FE8
+ ldr r0, [r0]
+ ldr r1, [r0, #0x10]
+ cmp r1, #0
+ beq _0221E8C8
+ mov r0, #0
+ bl MOD13_0223C110
+_0221E8C8:
+ ldr r4, _0221E910 ; =0x02242FE8
+ mov r5, #0
+_0221E8D0:
+ ldr r0, [r4]
+ ldr r0, [r0, r5, lsl #2]
+ cmp r0, #0
+ beq _0221E8E4
+ bl MOD13_02239AE8
+_0221E8E4:
+ add r5, r5, #1
+ cmp r5, #2
+ blt _0221E8D0
+ ldr r0, _0221E910 ; =0x02242FE8
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ bl MOD13_02239AE8
+ ldr r0, _0221E910 ; =0x02242FE8
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0221E910: .word 0x02242FE8
+
+ arm_func_start MOD13_0221E914
+MOD13_0221E914: ; 0x0221E914
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0221E970 ; =0x02242FE8
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #8]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r0, [sp, #4]
+ add r0, r0, #4
+ str r0, [sp, #4]
+ bl MOD13_0221EBD8
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _0221E974 ; =MOD13_0221E898
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221E970: .word 0x02242FE8
+_0221E974: .word MOD13_0221E898
+
+ arm_func_start MOD13_0221E978
+MOD13_0221E978: ; 0x0221E978
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ sub sp, sp, #8
+ ldr r8, _0221EAE8 ; =0x02242FE8
+ ldr r1, _0221EAEC ; =0x0223EC7C
+ ldr r3, [r8]
+ ldrb r2, [r3, #0x17]
+ ldrb r0, [r3, #0x18]
+ ldrb r7, [r1, r2]
+ cmp r0, #0
+ bne _0221EAD0
+ ldrsb r1, [r3, #0x16]
+ mvn r0, #0
+ cmp r1, r0
+ addne sp, sp, #8
+ ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ cmp r7, #0
+ mov r6, #0
+ ble _0221EAD0
+ ldr r5, _0221EAF0 ; =0x0223EC84
+ ldr r4, _0221EAF4 ; =0x0223EC9C
+ ldr sl, _0221EAF8 ; =0x0223EC78
+ add sb, sp, #0
+_0221E9D0:
+ ldr r0, [r8]
+ mov r1, sl
+ ldrb r0, [r0, #0x17]
+ mov r2, sb
+ add r0, r4, r0, lsl #1
+ ldrb r0, [r6, r0]
+ add r0, r5, r0, lsl #2
+ bl MOD13_0223AB74
+ mov r0, sb
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _0221EAC4
+ ldr r0, _0221EAE8 ; =0x02242FE8
+ ldr r3, [r0]
+ ldr r0, [r3, #0x10]
+ cmp r0, #0
+ bne _0221EAD0
+ ldrb r2, [r3, #0x17]
+ ldr r1, _0221EAFC ; =0x0223EC8C
+ ldr r0, [r3, r6, lsl #2]
+ add r1, r1, r2, lsl #1
+ ldrb r2, [r6, r1]
+ mov r1, #0
+ add r4, r2, #1
+ bl MOD13_02239ADC
+ mov r2, r0
+ mov r1, r4
+ mov r0, #0
+ bl MOD13_02239E8C
+ ldr r0, _0221EAE8 ; =0x02242FE8
+ ldr r1, _0221EAF4 ; =0x0223EC9C
+ ldr r0, [r0]
+ ldr r2, _0221EAF0 ; =0x0223EC84
+ ldrb r4, [r0, #0x17]
+ ldr r3, _0221EB00 ; =0x0223EC86
+ ldr r0, [r0, r6, lsl #2]
+ add r1, r1, r4, lsl #1
+ ldrb r4, [r6, r1]
+ mvn r1, #0
+ mov r4, r4, lsl #2
+ ldrh r2, [r2, r4]
+ ldrh r3, [r3, r4]
+ bl MOD13_02239888
+ ldr r0, _0221EAE8 ; =0x02242FE8
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #1
+ ldr r0, [r0, r6, lsl #2]
+ bl MOD13_02239814
+ mov r0, #0
+ ldr r1, _0221EB04 ; =MOD13_0221E78C
+ mov r2, r0
+ mov r3, #0x6e
+ bl MOD13_0223C1C4
+ ldr r1, _0221EAE8 ; =0x02242FE8
+ add sp, sp, #8
+ ldr r2, [r1]
+ str r0, [r2, #0x10]
+ ldr r0, [r1]
+ strb r6, [r0, #0x16]
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+_0221EAC4:
+ add r6, r6, #1
+ cmp r6, r7
+ blt _0221E9D0
+_0221EAD0:
+ ldr r0, _0221EAE8 ; =0x02242FE8
+ mvn r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x16]
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_0221EAE8: .word 0x02242FE8
+_0221EAEC: .word 0x0223EC7C
+_0221EAF0: .word 0x0223EC84
+_0221EAF4: .word 0x0223EC9C
+_0221EAF8: .word 0x0223EC78
+_0221EAFC: .word 0x0223EC8C
+_0221EB00: .word 0x0223EC86
+_0221EB04: .word MOD13_0221E78C
+
+ arm_func_start MOD13_0221EB08
+MOD13_0221EB08: ; 0x0221EB08
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _0221EB5C ; =0x02242FE8
+ mvn r3, #0
+ ldr r2, [r1]
+ strb r3, [r2, #0x16]
+ ldr r3, [r1]
+ ldrh r2, [r3, #0x14]
+ add r2, r2, #1
+ strh r2, [r3, #0x14]
+ ldr r3, [r1]
+ ldrh r1, [r3, #0x14]
+ cmp r1, #4
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ ldr r1, _0221EB60 ; =MOD13_0221E978
+ mov r2, #0
+ strh r2, [r3, #0x14]
+ bl MOD13_0223C130
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221EB5C: .word 0x02242FE8
+_0221EB60: .word MOD13_0221E978
+
+ arm_func_start MOD13_0221EB64
+MOD13_0221EB64: ; 0x0221EB64
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0221EBCC ; =0x02242FE8
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #8]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r0, [sp, #4]
+ sub r0, r0, #4
+ str r0, [sp, #4]
+ bl MOD13_0221EBD8
+ ldr r0, _0221EBD0 ; =0x0223EC74
+ ldr r1, [sp, #4]
+ ldrh r0, [r0, #2]
+ cmp r1, r0
+ addgt sp, sp, #8
+ ldmgtia sp!, {r4, pc}
+ bl MOD13_0221EBD8
+ ldr r1, _0221EBD4 ; =MOD13_0221EB08
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221EBCC: .word 0x02242FE8
+_0221EBD0: .word 0x0223EC74
+_0221EBD4: .word MOD13_0221EB08
+
+ arm_func_start MOD13_0221EBD8
+MOD13_0221EBD8: ; 0x0221EBD8
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ ldr r2, _0221EC70 ; =0x02242FE8
+ ldr r3, _0221EC74 ; =0x0223EC7C
+ ldr r6, [r2]
+ ldr r2, _0221EC78 ; =0x0223EC84
+ ldrb r4, [r6, #0x17]
+ ldrh r2, [r2, #2]
+ ldr r1, _0221EC7C ; =0x0223EC74
+ ldrb r8, [r3, r4]
+ mov r3, r0
+ add r5, r3, r2
+ ldrh r4, [r1, #2]
+ ldrh r2, [r1]
+ ldr r0, [r6, #8]
+ mvn r1, #0
+ sub r7, r5, r4
+ bl MOD13_02239888
+ mov r6, #0
+ cmp r8, #0
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ ldr sb, _0221EC70 ; =0x02242FE8
+ ldr r4, _0221EC80 ; =0x0223EC9C
+ ldr sl, _0221EC78 ; =0x0223EC84
+ mvn r5, #0
+_0221EC38:
+ ldr r0, [sb]
+ mov r1, r5
+ ldrb r2, [r0, #0x17]
+ ldr r0, [r0, r6, lsl #2]
+ mov r3, r7
+ add r2, r4, r2, lsl #1
+ ldrb r2, [r6, r2]
+ mov r2, r2, lsl #2
+ ldrh r2, [sl, r2]
+ bl MOD13_02239888
+ add r6, r6, #1
+ cmp r6, r8
+ blt _0221EC38
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_0221EC70: .word 0x02242FE8
+_0221EC74: .word 0x0223EC7C
+_0221EC78: .word 0x0223EC84
+_0221EC7C: .word 0x0223EC74
+_0221EC80: .word 0x0223EC9C
+
+ arm_func_start MOD13_0221EC84
+MOD13_0221EC84: ; 0x0221EC84
+ ldr r0, _0221EC98 ; =0x02242FE8
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x18]
+ bx lr
+ .align 2, 0
+_0221EC98: .word 0x02242FE8
+
+ arm_func_start MOD13_0221EC9C
+MOD13_0221EC9C: ; 0x0221EC9C
+ ldr r0, _0221ECB0 ; =0x02242FE8
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x18]
+ bx lr
+ .align 2, 0
+_0221ECB0: .word 0x02242FE8
+
+ arm_func_start MOD13_0221ECB4
+MOD13_0221ECB4: ; 0x0221ECB4
+ ldr r0, _0221ECDC ; =0x02242FE8
+ ldr r0, [r0]
+ cmp r0, #0
+ moveq r0, #1
+ bxeq lr
+ ldrb r0, [r0, #0x19]
+ cmp r0, #0
+ moveq r0, #1
+ movne r0, #0
+ bx lr
+ .align 2, 0
+_0221ECDC: .word 0x02242FE8
+
+ arm_func_start MOD13_0221ECE0
+MOD13_0221ECE0: ; 0x0221ECE0
+ ldr r1, _0221ECF0 ; =0x02242FE8
+ ldr r1, [r1]
+ strb r0, [r1, #0x16]
+ bx lr
+ .align 2, 0
+_0221ECF0: .word 0x02242FE8
+
+ arm_func_start MOD13_0221ECF4
+MOD13_0221ECF4: ; 0x0221ECF4
+ ldr r2, _0221ED10 ; =0x02242FE8
+ mvn r1, #0
+ ldr r3, [r2]
+ ldrsb r2, [r3, #0x16]
+ cmp r2, r1
+ streqb r0, [r3, #0x16]
+ bx lr
+ .align 2, 0
+_0221ED10: .word 0x02242FE8
+
+ arm_func_start MOD13_0221ED14
+MOD13_0221ED14: ; 0x0221ED14
+ ldr r0, _0221ED24 ; =0x02242FE8
+ ldr r0, [r0]
+ ldrsb r0, [r0, #0x16]
+ bx lr
+ .align 2, 0
+_0221ED24: .word 0x02242FE8
+
+ arm_func_start MOD13_0221ED28
+MOD13_0221ED28: ; 0x0221ED28
+ ldr r0, _0221ED4C ; =0x02242FE8
+ mov r3, #1
+ ldr r2, [r0]
+ ldr ip, _0221ED50 ; =MOD13_0223C130
+ strb r3, [r2, #0x19]
+ ldr r0, [r0]
+ ldr r1, _0221ED54 ; =MOD13_0221E914
+ ldr r0, [r0, #0xc]
+ bx ip
+ .align 2, 0
+_0221ED4C: .word 0x02242FE8
+_0221ED50: .word MOD13_0223C130
+_0221ED54: .word MOD13_0221E914
+
+ arm_func_start MOD13_0221ED58
+MOD13_0221ED58: ; 0x0221ED58
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ ldr r2, _0221EE44 ; =0x0223EC7C
+ mov r4, r0
+ mov r0, #0x1c
+ mov r1, #4
+ ldrb r8, [r2, r4]
+ bl MOD13_0223AFE0
+ ldr sb, _0221EE48 ; =0x02242FE8
+ mvn r1, #1
+ str r0, [sb]
+ strb r1, [r0, #0x16]
+ ldr r0, [sb]
+ cmp r8, #0
+ strb r4, [r0, #0x17]
+ mov r7, #0
+ ble _0221EDE8
+ ldr r0, _0221EE4C ; =0x0223EC8C
+ add r6, r0, r4, lsl #1
+ mov r5, r7
+ mov r4, #1
+ mvn sl, #0
+_0221EDAC:
+ ldrb r1, [r6]
+ mov r0, r5
+ mov r2, r4
+ bl MOD13_02239E0C
+ ldr r2, [sb]
+ mov r1, sl
+ str r0, [r2, r7, lsl #2]
+ ldr r0, [sb]
+ mov r2, r4
+ ldr r0, [r0, r7, lsl #2]
+ bl MOD13_02239814
+ add r7, r7, #1
+ cmp r7, r8
+ add r6, r6, #1
+ blt _0221EDAC
+_0221EDE8:
+ mov r1, #1
+ mov r2, r1
+ mov r0, #0
+ bl MOD13_02239E0C
+ ldr r3, _0221EE48 ; =0x02242FE8
+ mvn r1, #0
+ ldr r4, [r3]
+ mov r2, #1
+ str r0, [r4, #8]
+ ldr r0, [r3]
+ ldr r0, [r0, #8]
+ bl MOD13_02239814
+ mov r0, #0xc0
+ bl MOD13_0221EBD8
+ mov r0, #0
+ ldr r1, _0221EE50 ; =MOD13_0221EB64
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0221EE48 ; =0x02242FE8
+ ldr r1, [r1]
+ str r0, [r1, #0xc]
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_0221EE44: .word 0x0223EC7C
+_0221EE48: .word 0x02242FE8
+_0221EE4C: .word 0x0223EC8C
+_0221EE50: .word MOD13_0221EB64
+
+ arm_func_start MOD13_0221EE54
+MOD13_0221EE54: ; 0x0221EE54
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0221EE94 ; =0x02242FEC
+ ldrb r0, [r0]
+ cmp r0, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {pc}
+ mov r0, #1
+ bl MOD13_0223A65C
+ ldr r0, _0221EE94 ; =0x02242FEC
+ mov r1, #0
+ strb r1, [r0]
+ mov r0, #1
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221EE94: .word 0x02242FEC
+
+ arm_func_start MOD13_0221EE98
+MOD13_0221EE98: ; 0x0221EE98
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0x14
+ ldr r3, _0221EF58 ; =0x02242FEC
+ mov r7, r0
+ ldrb r0, [r3]
+ mov r6, r1
+ mov r5, r2
+ cmp r0, #0
+ addne sp, sp, #0x14
+ movne r0, #0
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, _0221EF5C ; =0x0223F934
+ ldr r1, _0221EF60 ; =0x020C91C4
+ bl MOD13_0221F174
+ ldr r3, _0221EF64 ; =0x01920000
+ ldr r2, _0221EF68 ; =0x04001010
+ mov r0, #1
+ mov r1, #0
+ str r3, [r2]
+ bl MOD13_0223A7F0
+ ldr r1, _0221EF6C ; =0x0224307C
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, r7
+ mov r2, r6
+ mov r3, r5
+ bl MOD13_0222352C
+ mov r5, r0
+ bl MOD13_0221EF88
+ ldr r3, _0221EF70 ; =0x0223ECAC
+ mov r1, #2
+ ldrh r2, [r3, #6]
+ str r2, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r5, [sp, #0xc]
+ mov r0, r4
+ ldrh r1, [r3]
+ ldrh r2, [r3, #2]
+ ldrh r3, [r3, #4]
+ bl MOD13_0223A4F0
+ mov r0, r4
+ bl MOD13_0223A410
+ mov r0, #1
+ ldr r1, _0221EF58 ; =0x02242FEC
+ strb r0, [r1]
+ add sp, sp, #0x14
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221EF58: .word 0x02242FEC
+_0221EF5C: .word 0x0223F934
+_0221EF60: .word 0x020C91C4
+_0221EF64: .word 0x01920000
+_0221EF68: .word 0x04001010
+_0221EF6C: .word 0x0224307C
+_0221EF70: .word 0x0223ECAC
+
+ arm_func_start MOD13_0221EF74
+MOD13_0221EF74: ; 0x0221EF74
+ ldr r0, _0221EF84 ; =0x02242FEC
+ mov r1, #0
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_0221EF84: .word 0x02242FEC
+
+ arm_func_start MOD13_0221EF88
+MOD13_0221EF88: ; 0x0221EF88
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02222F34
+ ldr r1, _0221EFA4 ; =0x0223ECCC
+ ldr r0, [r1, r0, lsl #2]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221EFA4: .word 0x0223ECCC
+
+ arm_func_start MOD13_0221EFA8
+MOD13_0221EFA8: ; 0x0221EFA8
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #0x10
+ mov r5, r0
+ mov r0, #0
+ mov r6, r1
+ mov r1, r0
+ bl MOD13_0223A7F0
+ ldr r1, _0221F05C ; =0x0224307C
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, r6
+ bl MOD13_02223568
+ mov r6, r0
+ bl MOD13_0221EF88
+ ldr r3, _0221F060 ; =0x0223ECC4
+ mov r1, #2
+ ldrh r2, [r3, #6]
+ str r2, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r6, [sp, #0xc]
+ ldrh r1, [r3]
+ ldrh r2, [r3, #2]
+ ldrh r3, [r3, #4]
+ mov r0, r4
+ bl MOD13_0223A4F0
+ bl MOD13_02222F34
+ mov r6, r0
+ bl MOD13_02222F34
+ ldr r1, _0221F064 ; =0x00000209
+ mov r3, r0, lsl #2
+ str r1, [sp]
+ ldr r1, _0221F068 ; =0x0223ECE4
+ ldr r2, _0221F06C ; =0x0223ECE6
+ str r5, [sp, #4]
+ mov ip, r6, lsl #2
+ ldrh r2, [r2, r3]
+ ldrh r1, [r1, ip]
+ mov r0, r4
+ mov r3, #2
+ bl MOD13_0223A634
+ mov r0, r4
+ bl MOD13_0223A410
+ add sp, sp, #0x10
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0221F05C: .word 0x0224307C
+_0221F060: .word 0x0223ECC4
+_0221F064: .word 0x00000209
+_0221F068: .word 0x0223ECE4
+_0221F06C: .word 0x0223ECE6
+
+ arm_func_start MOD13_0221F070
+MOD13_0221F070: ; 0x0221F070
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0x14
+ mov r4, r0
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_0223A7F0
+ ldr r1, _0221F0E4 ; =0x0224307C
+ mov r5, r0
+ ldr r0, [r1]
+ mov r1, r4
+ bl MOD13_02223568
+ mov r4, r0
+ bl MOD13_0221EF88
+ ldr r3, _0221F0E8 ; =0x0223ECBC
+ mov r1, #2
+ ldrh r2, [r3, #6]
+ str r2, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r4, [sp, #0xc]
+ mov r0, r5
+ ldrh r1, [r3]
+ ldrh r2, [r3, #2]
+ ldrh r3, [r3, #4]
+ bl MOD13_0223A4F0
+ mov r0, r5
+ bl MOD13_0223A410
+ add sp, sp, #0x14
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0221F0E4: .word 0x0224307C
+_0221F0E8: .word 0x0223ECBC
+
+ arm_func_start MOD13_0221F0EC
+MOD13_0221F0EC: ; 0x0221F0EC
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ mov r4, r0
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F80
+ ldr r0, [sp]
+ cmp r0, #1
+ addne sp, sp, #8
+ ldmneia sp!, {r4, pc}
+ mov r0, r4
+ bl MOD13_0221ED58
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_0221F124
+MOD13_0221F124: ; 0x0221F124
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ mov r4, r0
+ add r0, sp, #0
+ mov r1, #0
+ bl MOD13_02222F80
+ ldr r0, [sp]
+ cmp r0, #1
+ bne _0221F158
+ mov r0, r4
+ bl MOD13_02234DC0
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0221F158:
+ cmp r0, #2
+ addne sp, sp, #8
+ ldmneia sp!, {r4, pc}
+ mov r0, r4
+ bl MOD13_02234820
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_0221F174
+MOD13_0221F174: ; 0x0221F174
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r1
+ bl MOD13_0221F1BC
+ add r1, sp, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, [sp]
+ mov r4, r0
+ bl DC_FlushRange
+ ldr r2, [sp]
+ mov r0, r4
+ mov r1, #0
+ blx r5
+ mov r0, r4
+ bl MOD13_0223939C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+
+ arm_func_start MOD13_0221F1BC
+MOD13_0221F1BC: ; 0x0221F1BC
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldr r0, _0221F214 ; =0x02242FF0
+ mov r1, r4
+ mov r2, #0x3f
+ bl strncpy
+ ldrb r0, [r4, #5]
+ cmp r0, #0x78
+ ldreq r0, _0221F214 ; =0x02242FF0
+ ldmeqia sp!, {r4, pc}
+ bl MOD13_02222F34
+ ldrb r1, [r4, #5]
+ cmp r1, #0x79
+ bne _0221F200
+ cmp r0, #0
+ ldrne r0, _0221F214 ; =0x02242FF0
+ ldmneia sp!, {r4, pc}
+_0221F200:
+ ldr r1, _0221F218 ; =0x0223ECB4
+ ldrb r1, [r1, r0]
+ ldr r0, _0221F214 ; =0x02242FF0
+ strb r1, [r0, #5]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221F214: .word 0x02242FF0
+_0221F218: .word 0x0223ECB4
+
+ arm_func_start MOD13_0221F21C
+MOD13_0221F21C: ; 0x0221F21C
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, #0
+ ldr r4, _0221F258 ; =0x02243030
+ mov r5, r6
+_0221F22C:
+ ldr r0, [r4]
+ ldr r0, [r0, r6, lsl #2]
+ cmp r0, #0
+ beq _0221F248
+ bl MOD13_02239AE8
+ ldr r0, [r4]
+ str r5, [r0, r6, lsl #2]
+_0221F248:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0221F22C
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0221F258: .word 0x02243030
+
+ arm_func_start MOD13_0221F25C
+MOD13_0221F25C: ; 0x0221F25C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ mov sl, r0
+ mov fp, r1
+ str r2, [sp]
+ str r3, [sp, #4]
+ mov sb, #6
+ bl MOD13_0221F21C
+ mov r8, #0
+ ldr r4, _0221F344 ; =0x02243030
+ mov r7, r8
+ mov r6, #1
+ mvn r5, #0
+_0221F290:
+ mov r0, r7
+ mov r1, sb
+ mov r2, r6
+ bl MOD13_02239E0C
+ ldr r2, [r4]
+ mov r1, r5
+ str r0, [r2, r8, lsl #2]
+ ldr r0, [r4]
+ mov r2, r6
+ ldr r0, [r0, r8, lsl #2]
+ bl MOD13_02239814
+ add r8, r8, #1
+ cmp r8, #4
+ add sb, sb, #1
+ blt _0221F290
+ ldr r0, _0221F344 ; =0x02243030
+ ldr r3, [sp]
+ ldr r0, [r0]
+ mov r2, sl
+ ldr r0, [r0]
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r0, _0221F344 ; =0x02243030
+ ldr r3, [sp]
+ ldr r0, [r0]
+ mov r2, fp
+ ldr r0, [r0, #4]
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r0, _0221F344 ; =0x02243030
+ ldr r3, [sp, #4]
+ ldr r0, [r0]
+ mov r2, sl
+ ldr r0, [r0, #8]
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r0, _0221F344 ; =0x02243030
+ ldr r3, [sp, #4]
+ ldr r0, [r0]
+ mov r2, fp
+ ldr r0, [r0, #0xc]
+ mvn r1, #0
+ bl MOD13_02239888
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_0221F344: .word 0x02243030
+
+ arm_func_start MOD13_0221F348
+MOD13_0221F348: ; 0x0221F348
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #4
+ mov r4, r0
+ mov fp, r1
+ str r2, [sp]
+ mov sl, r3
+ bl MOD13_0221F21C
+ ldr r0, _0221F3FC ; =0x0223ECFC
+ mov sb, #0
+ add r8, r0, r4, lsl #1
+ ldr r4, _0221F400 ; =0x02243030
+ mov r7, sb
+ mov r6, #1
+ mvn r5, #0
+_0221F380:
+ ldrb r1, [r8]
+ mov r0, r7
+ mov r2, r6
+ bl MOD13_02239E0C
+ ldr r2, [r4]
+ mov r1, r5
+ str r0, [r2, sb, lsl #2]
+ ldr r0, [r4]
+ mov r2, r6
+ ldr r0, [r0, sb, lsl #2]
+ bl MOD13_02239814
+ add sb, sb, #1
+ cmp sb, #2
+ add r8, r8, #1
+ blt _0221F380
+ ldr r0, _0221F400 ; =0x02243030
+ mov r2, fp
+ ldr r0, [r0]
+ mov r3, sl
+ ldr r0, [r0]
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r0, _0221F400 ; =0x02243030
+ ldr r2, [sp]
+ ldr r0, [r0]
+ mov r3, sl
+ ldr r0, [r0, #4]
+ mvn r1, #0
+ bl MOD13_02239888
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_0221F3FC: .word 0x0223ECFC
+_0221F400: .word 0x02243030
+
+ arm_func_start MOD13_0221F404
+MOD13_0221F404: ; 0x0221F404
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221F21C
+ ldr r0, _0221F420 ; =0x02243030
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221F420: .word 0x02243030
+
+ arm_func_start MOD13_0221F424
+MOD13_0221F424: ; 0x0221F424
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0x10
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r1, _0221F448 ; =0x02243030
+ str r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221F448: .word 0x02243030
+
+ arm_func_start MOD13_0221F44C
+MOD13_0221F44C: ; 0x0221F44C
+ stmdb sp!, {r4, lr}
+ ldr r1, _0221F488 ; =0x02243034
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, #0xc0
+ bl DC_FlushRange
+ ldr r0, _0221F488 ; =0x02243034
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #0xc0
+ bl GX_LoadBG1Scr
+ mov r1, r4
+ mov r0, #1
+ bl MOD13_0223C110
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221F488: .word 0x02243034
+
+ arm_func_start MOD13_0221F48C
+MOD13_0221F48C: ; 0x0221F48C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02234164
+ ldrb r0, [r0, #0xf4]
+ add r0, r0, #2
+ bl MOD13_0221F4CC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0221F4AC
+MOD13_0221F4AC: ; 0x0221F4AC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02234164
+ ldrb r0, [r0, #0xf4]
+ add r0, r0, #5
+ bl MOD13_0221F4CC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0221F4CC
+MOD13_0221F4CC: ; 0x0221F4CC
+ stmdb sp!, {r4, lr}
+ ldr r1, _0221F51C ; =0x0223FB18
+ ldr r0, [r1, r0, lsl #2]
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _0221F520 ; =0x02243034
+ mov r4, r0
+ ldr r1, [r1]
+ mov r2, #0xc0
+ bl MIi_CpuCopyFast
+ mov r0, r4
+ bl MOD13_0223939C
+ mov r0, #1
+ ldr r1, _0221F524 ; =MOD13_0221F44C
+ mov r2, #0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221F51C: .word 0x0223FB18
+_0221F520: .word 0x02243034
+_0221F524: .word MOD13_0221F44C
+
+ arm_func_start MOD13_0221F528
+MOD13_0221F528: ; 0x0221F528
+ ldr ip, _0221F534 ; =MOD13_0223AF90
+ ldr r0, _0221F538 ; =0x02243034
+ bx ip
+ .align 2, 0
+_0221F534: .word MOD13_0223AF90
+_0221F538: .word 0x02243034
+
+ arm_func_start MOD13_0221F53C
+MOD13_0221F53C: ; 0x0221F53C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0xc0
+ mov r1, #4
+ bl MOD13_0223B004
+ ldr r2, _0221F5B0 ; =0x02243034
+ ldr r1, _0221F5B4 ; =0x020C8E1C
+ str r0, [r2]
+ ldr r0, _0221F5B8 ; =0x0223FB68
+ bl MOD13_0221F174
+ bl MOD13_02222F1C
+ cmp r0, #0
+ beq _0221F580
+ cmp r0, #1
+ beq _0221F598
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0221F580:
+ ldr r0, _0221F5BC ; =0x0223FB18
+ ldr r1, _0221F5C0 ; =0x020C915C
+ ldr r0, [r0]
+ bl MOD13_0221F174
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0221F598:
+ ldr r0, _0221F5BC ; =0x0223FB18
+ ldr r1, _0221F5C0 ; =0x020C915C
+ ldr r0, [r0, #4]
+ bl MOD13_0221F174
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221F5B0: .word 0x02243034
+_0221F5B4: .word 0x020C8E1C
+_0221F5B8: .word 0x0223FB68
+_0221F5BC: .word 0x0223FB18
+_0221F5C0: .word 0x020C915C
+
+ arm_func_start MOD13_0221F5C4
+MOD13_0221F5C4: ; 0x0221F5C4
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r0, _0221F67C ; =0x04000208
+ mov r4, #0
+ ldrh r5, [r0]
+ strh r4, [r0]
+ bl WM_GetAllowedChannel
+ cmp r0, #0x8000
+ beq _0221F5F0
+ bl WM_GetLinkLevel
+ mov r4, r0
+_0221F5F0:
+ ldr r2, _0221F67C ; =0x04000208
+ ldr r1, _0221F680 ; =0x02243038
+ ldrh r0, [r2]
+ ldr r3, _0221F684 ; =0x0223ED08
+ mov r0, #0
+ strh r5, [r2]
+ ldr r2, [r1]
+ ldrsb r1, [r2, #8]
+ ldr r2, [r2]
+ add r1, r3, r1, lsl #2
+ ldrb r1, [r4, r1]
+ bl MOD13_02239E8C
+ ldr r0, _0221F688 ; =0x0223ED04
+ ldr r2, _0221F680 ; =0x02243038
+ ldrh r3, [r0, #2]
+ ldr r1, [r2]
+ ldrh ip, [r0]
+ ldr lr, [r1]
+ ldr r0, _0221F68C ; =0x000001FF
+ ldr r4, [lr]
+ ldr r1, _0221F690 ; =0xFE00FF00
+ and r3, r3, #0xff
+ and r1, r4, r1
+ and r4, ip, r0
+ orr r0, r1, r3
+ orr r0, r0, r4, lsl #16
+ str r0, [lr]
+ ldr r0, [r2]
+ ldr r1, [r0]
+ ldrh r0, [r1, #4]
+ bic r0, r0, #0xc00
+ orr r0, r0, #0x800
+ strh r0, [r1, #4]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0221F67C: .word 0x04000208
+_0221F680: .word 0x02243038
+_0221F684: .word 0x0223ED08
+_0221F688: .word 0x0223ED04
+_0221F68C: .word 0x000001FF
+_0221F690: .word 0xFE00FF00
+
+ arm_func_start MOD13_0221F694
+MOD13_0221F694: ; 0x0221F694
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0221F6DC ; =0x02243038
+ ldr r0, [r0]
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r1, [r0, #4]
+ mov r0, #0
+ bl MOD13_0223C104
+ ldr r0, _0221F6DC ; =0x02243038
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl MOD13_0223B974
+ ldr r0, _0221F6DC ; =0x02243038
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221F6DC: .word 0x02243038
+
+ arm_func_start MOD13_0221F6E0
+MOD13_0221F6E0: ; 0x0221F6E0
+ stmdb sp!, {r4, lr}
+ ldr r1, _0221F7A0 ; =0x02243038
+ mov r4, r0
+ ldr r0, [r1]
+ cmp r0, #0
+ ldmneia sp!, {r4, pc}
+ mov r0, #0xc
+ mov r1, #4
+ bl MOD13_0223B004
+ ldr r1, _0221F7A0 ; =0x02243038
+ ldr r2, _0221F7A4 ; =0x0223ED08
+ str r0, [r1]
+ strb r4, [r0, #8]
+ ldrb r1, [r2, r4, lsl #2]
+ mov r0, #0
+ bl MOD13_02239E54
+ ldr r3, _0221F7A0 ; =0x02243038
+ ldr r2, _0221F7A8 ; =0x0223ED04
+ ldr r4, [r3]
+ ldr r1, _0221F7AC ; =0xFE00FF00
+ str r0, [r4]
+ ldr r4, [r3]
+ ldrh r0, [r2, #2]
+ ldr r4, [r4]
+ ldrh lr, [r2]
+ ldr ip, [r4]
+ and r2, r0, #0xff
+ and r1, ip, r1
+ ldr r0, _0221F7B0 ; =0x000001FF
+ orr r1, r1, r2
+ and r0, lr, r0
+ orr r0, r1, r0, lsl #16
+ str r0, [r4]
+ ldr r1, [r3]
+ mov r0, #0
+ ldr lr, [r1]
+ ldr r1, _0221F7B4 ; =MOD13_0221F5C4
+ ldrh ip, [lr, #4]
+ mov r2, r0
+ mov r3, #0x78
+ bic ip, ip, #0xc00
+ orr ip, ip, #0x800
+ strh ip, [lr, #4]
+ bl MOD13_0223C1C4
+ ldr r1, _0221F7A0 ; =0x02243038
+ ldr r1, [r1]
+ str r0, [r1, #4]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221F7A0: .word 0x02243038
+_0221F7A4: .word 0x0223ED08
+_0221F7A8: .word 0x0223ED04
+_0221F7AC: .word 0xFE00FF00
+_0221F7B0: .word 0x000001FF
+_0221F7B4: .word MOD13_0221F5C4
+
+ arm_func_start MOD13_0221F7B8
+MOD13_0221F7B8: ; 0x0221F7B8
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ mov r1, r0
+ mov r0, #0
+ bl MOD13_0223C110
+ mov r7, #0
+ ldr r8, _0221F894 ; =0x0224303C
+ mov r5, r7
+_0221F7D4:
+ mov r6, r5
+ mov r4, r7, lsl #4
+_0221F7DC:
+ ldr r0, [r8]
+ add r0, r4, r0
+ ldr r0, [r0, r6, lsl #2]
+ bl MOD13_0223A978
+ cmp r7, #0
+ bne _0221F804
+ ldr r0, [r8]
+ add r0, r0, r6, lsl #2
+ ldr r0, [r0, #0x104]
+ bl MOD13_02239AE8
+_0221F804:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0221F7DC
+ add r7, r7, #1
+ cmp r7, #3
+ blt _0221F7D4
+ ldr r4, _0221F894 ; =0x0224303C
+ mov r5, #0
+_0221F824:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0xfc]
+ bl MOD13_02239AE8
+ add r5, r5, #1
+ cmp r5, #2
+ blt _0221F824
+ ldr r4, _0221F894 ; =0x0224303C
+ mov r5, #0
+_0221F848:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0xec]
+ bl MOD13_0223B974
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0221F848
+ ldr r4, _0221F894 ; =0x0224303C
+ mov r5, #0
+_0221F86C:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x30]
+ bl MOD13_0223B974
+ add r5, r5, #1
+ cmp r5, #0x2f
+ blt _0221F86C
+ ldr r0, _0221F894 ; =0x0224303C
+ bl MOD13_0223AF90
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0221F894: .word 0x0224303C
+
+ arm_func_start MOD13_0221F898
+MOD13_0221F898: ; 0x0221F898
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0221F908 ; =0x0224303C
+ ldr r2, _0221F90C ; =0x01FF0000
+ ldr ip, [r1]
+ mov r4, r0
+ ldr r3, [ip, #0x30]
+ mov r1, #0
+ ldr r0, [r3]
+ and r0, r0, r2
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [r3]
+ and r0, r0, #0xff
+ str r0, [sp, #4]
+ add r2, r0, #0xc
+ str r2, [sp, #4]
+ ldrb r0, [ip, #0x11d]
+ bl MOD13_022201DC
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _0221F910 ; =MOD13_0221F7B8
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221F908: .word 0x0224303C
+_0221F90C: .word 0x01FF0000
+_0221F910: .word MOD13_0221F7B8
+
+ arm_func_start MOD13_0221F914
+MOD13_0221F914: ; 0x0221F914
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0221F984 ; =0x0224303C
+ ldr r2, _0221F988 ; =0x01FF0000
+ ldr ip, [r1]
+ mov r4, r0
+ ldr r3, [ip, #0x60]
+ mov r1, #1
+ ldr r0, [r3]
+ and r0, r0, r2
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [r3]
+ and r0, r0, #0xff
+ str r0, [sp, #4]
+ add r2, r0, #0xc
+ str r2, [sp, #4]
+ ldrb r0, [ip, #0x11d]
+ bl MOD13_022201DC
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _0221F98C ; =MOD13_0221F898
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221F984: .word 0x0224303C
+_0221F988: .word 0x01FF0000
+_0221F98C: .word MOD13_0221F898
+
+ arm_func_start MOD13_0221F990
+MOD13_0221F990: ; 0x0221F990
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0221FA00 ; =0x0224303C
+ ldr r2, _0221FA04 ; =0x01FF0000
+ ldr ip, [r1]
+ mov r4, r0
+ ldr r3, [ip, #0x90]
+ mov r1, #2
+ ldr r0, [r3]
+ and r0, r0, r2
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [r3]
+ and r0, r0, #0xff
+ str r0, [sp, #4]
+ add r2, r0, #0xc
+ str r2, [sp, #4]
+ ldrb r0, [ip, #0x11d]
+ bl MOD13_022201DC
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _0221FA08 ; =MOD13_0221F914
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221FA00: .word 0x0224303C
+_0221FA04: .word 0x01FF0000
+_0221FA08: .word MOD13_0221F914
+
+ arm_func_start MOD13_0221FA0C
+MOD13_0221FA0C: ; 0x0221FA0C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0221FA7C ; =0x0224303C
+ ldr r2, _0221FA80 ; =0x01FF0000
+ ldr ip, [r1]
+ mov r4, r0
+ ldr r3, [ip, #0xc0]
+ mov r1, #3
+ ldr r0, [r3]
+ and r0, r0, r2
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [r3]
+ and r0, r0, #0xff
+ str r0, [sp, #4]
+ add r2, r0, #0xc
+ str r2, [sp, #4]
+ ldrb r0, [ip, #0x11d]
+ bl MOD13_022201DC
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _0221FA84 ; =MOD13_0221F990
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221FA7C: .word 0x0224303C
+_0221FA80: .word 0x01FF0000
+_0221FA84: .word MOD13_0221F990
+
+ arm_func_start MOD13_0221FA88
+MOD13_0221FA88: ; 0x0221FA88
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0221FB08 ; =0x0224303C
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, #0
+ ldr r0, [r0, #0xfc]
+ bl MOD13_02239ADC
+ ldr r3, [r0]
+ ldr r1, _0221FB0C ; =0x01FF0000
+ ldr r2, _0221FB08 ; =0x0224303C
+ and r1, r3, r1
+ mov r1, r1, lsr #0x10
+ str r1, [sp]
+ ldr r1, [r0]
+ ldr r0, [r2]
+ and r1, r1, #0xff
+ str r1, [sp, #4]
+ add r2, r1, #0xc
+ str r2, [sp, #4]
+ ldrb r0, [r0, #0x11d]
+ mov r1, #4
+ bl MOD13_022201DC
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _0221FB10 ; =MOD13_0221FA0C
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221FB08: .word 0x0224303C
+_0221FB0C: .word 0x01FF0000
+_0221FB10: .word MOD13_0221FA0C
+
+ arm_func_start MOD13_0221FB14
+MOD13_0221FB14: ; 0x0221FB14
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _0221FF90 ; =0x0224303C
+ ldr r3, _0221FF94 ; =0x0223EF08
+ ldr ip, [r2]
+ add r1, ip, #0x100
+ ldrsb lr, [r1, #0x21]
+ add r1, r3, lr, lsl #2
+ ldrsb r1, [r0, r1]
+ strb r1, [ip, #0x121]
+ ldr r1, [r2]
+ add r2, r1, #0x100
+ ldrsb r2, [r2, #0x21]
+ cmp r2, #0x2e
+ bne _0221FB5C
+ cmp r0, #3
+ streqb lr, [r1, #0x120]
+ beq _0221FF7C
+_0221FB5C:
+ cmp r2, #0x33
+ bne _0221FB7C
+ cmp r0, #1
+ beq _0221FB74
+ cmp r0, #3
+ bne _0221FB7C
+_0221FB74:
+ strb lr, [r1, #0x120]
+ b _0221FF7C
+_0221FB7C:
+ cmp r2, #0x34
+ bne _0221FBA0
+ cmp r0, #1
+ beq _0221FB94
+ cmp r0, #3
+ bne _0221FBA0
+_0221FB94:
+ cmp lr, #0x2e
+ strneb lr, [r1, #0x120]
+ b _0221FF7C
+_0221FBA0:
+ mvn r0, #0
+ cmp r2, r0
+ bne _0221FBDC
+ add r0, r1, #0x100
+ ldrsb r0, [r0, #0x20]
+ cmp r0, #0x23
+ beq _0221FBC4
+ cmp r0, #0x32
+ bne _0221FBD0
+_0221FBC4:
+ mov r0, #0x23
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FBD0:
+ mov r0, #0x22
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FBDC:
+ mvn r0, #1
+ cmp r2, r0
+ bne _0221FCA4
+ add r0, r1, #0x100
+ ldrsb r0, [r0, #0x20]
+ cmp r0, #0x26
+ bgt _0221FC38
+ cmp r0, #0x26
+ bge _0221FC74
+ cmp r0, #5
+ bgt _0221FC2C
+ cmp r0, #0
+ addge pc, pc, r0, lsl #2
+ b _0221FC98
+_0221FC14: ; jump table
+ b _0221FC5C ; case 0
+ b _0221FC68 ; case 1
+ b _0221FC98 ; case 2
+ b _0221FC74 ; case 3
+ b _0221FC80 ; case 4
+ b _0221FC8C ; case 5
+_0221FC2C:
+ cmp r0, #0x24
+ beq _0221FC68
+ b _0221FC98
+_0221FC38:
+ cmp r0, #0x28
+ bgt _0221FC54
+ cmp r0, #0x28
+ bge _0221FC8C
+ cmp r0, #0x27
+ beq _0221FC80
+ b _0221FC98
+_0221FC54:
+ cmp r0, #0x31
+ bne _0221FC98
+_0221FC5C:
+ mov r0, #0x31
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FC68:
+ mov r0, #0x24
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FC74:
+ mov r0, #0x26
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FC80:
+ mov r0, #0x27
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FC8C:
+ mov r0, #0x28
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FC98:
+ mov r0, #0x25
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FCA4:
+ mvn r0, #2
+ cmp r2, r0
+ bne _0221FDA8
+ add r0, r1, #0x100
+ ldrsb r0, [r0, #0x20]
+ cmp r0, #0x23
+ bgt _0221FD18
+ cmp r0, #0x23
+ bge _0221FD90
+ cmp r0, #0xb
+ bgt _0221FD0C
+ cmp r0, #0
+ addge pc, pc, r0, lsl #2
+ b _0221FD9C
+_0221FCDC: ; jump table
+ b _0221FD9C ; case 0
+ b _0221FD9C ; case 1
+ b _0221FD9C ; case 2
+ b _0221FD9C ; case 3
+ b _0221FD9C ; case 4
+ b _0221FD9C ; case 5
+ b _0221FD60 ; case 6
+ b _0221FD6C ; case 7
+ b _0221FD9C ; case 8
+ b _0221FD78 ; case 9
+ b _0221FD84 ; case 10
+ b _0221FD90 ; case 11
+_0221FD0C:
+ cmp r0, #0x22
+ beq _0221FD90
+ b _0221FD9C
+_0221FD18:
+ cmp r0, #0x2a
+ bgt _0221FD34
+ cmp r0, #0x2a
+ bge _0221FD6C
+ cmp r0, #0x29
+ beq _0221FD60
+ b _0221FD9C
+_0221FD34:
+ cmp r0, #0x32
+ bgt _0221FD9C
+ cmp r0, #0x2c
+ blt _0221FD9C
+ cmp r0, #0x2c
+ beq _0221FD78
+ cmp r0, #0x2d
+ beq _0221FD84
+ cmp r0, #0x32
+ beq _0221FD90
+ b _0221FD9C
+_0221FD60:
+ mov r0, #0x29
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FD6C:
+ mov r0, #0x2a
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FD78:
+ mov r0, #0x2c
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FD84:
+ mov r0, #0x2d
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FD90:
+ mov r0, #0x2e
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FD9C:
+ mov r0, #0x2b
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FDA8:
+ mvn r0, #3
+ cmp r2, r0
+ bne _0221FE70
+ add r0, r1, #0x100
+ ldrsb r0, [r0, #0x20]
+ cmp r0, #0x26
+ bgt _0221FE04
+ cmp r0, #0x26
+ bge _0221FE40
+ cmp r0, #5
+ bgt _0221FDF8
+ cmp r0, #0
+ addge pc, pc, r0, lsl #2
+ b _0221FE64
+_0221FDE0: ; jump table
+ b _0221FE28 ; case 0
+ b _0221FE34 ; case 1
+ b _0221FE64 ; case 2
+ b _0221FE40 ; case 3
+ b _0221FE4C ; case 4
+ b _0221FE58 ; case 5
+_0221FDF8:
+ cmp r0, #0x24
+ beq _0221FE34
+ b _0221FE64
+_0221FE04:
+ cmp r0, #0x28
+ bgt _0221FE20
+ cmp r0, #0x28
+ bge _0221FE58
+ cmp r0, #0x27
+ beq _0221FE4C
+ b _0221FE64
+_0221FE20:
+ cmp r0, #0x31
+ bne _0221FE64
+_0221FE28:
+ mov r0, #0
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FE34:
+ mov r0, #1
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FE40:
+ mov r0, #3
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FE4C:
+ mov r0, #4
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FE58:
+ mov r0, #5
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FE64:
+ mov r0, #2
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FE70:
+ mvn r0, #4
+ cmp r2, r0
+ bne _0221FF7C
+ add r0, r1, #0x100
+ ldrsb r0, [r0, #0x20]
+ cmp r0, #0x23
+ bgt _0221FEE4
+ cmp r0, #0x23
+ bge _0221FF68
+ cmp r0, #0xb
+ bgt _0221FED8
+ cmp r0, #0
+ addge pc, pc, r0, lsl #2
+ b _0221FF74
+_0221FEA8: ; jump table
+ b _0221FF74 ; case 0
+ b _0221FF74 ; case 1
+ b _0221FF74 ; case 2
+ b _0221FF74 ; case 3
+ b _0221FF74 ; case 4
+ b _0221FF74 ; case 5
+ b _0221FF2C ; case 6
+ b _0221FF38 ; case 7
+ b _0221FF74 ; case 8
+ b _0221FF44 ; case 9
+ b _0221FF50 ; case 10
+ b _0221FF5C ; case 11
+_0221FED8:
+ cmp r0, #0x22
+ beq _0221FF5C
+ b _0221FF74
+_0221FEE4:
+ cmp r0, #0x2a
+ bgt _0221FF00
+ cmp r0, #0x2a
+ bge _0221FF38
+ cmp r0, #0x29
+ beq _0221FF2C
+ b _0221FF74
+_0221FF00:
+ cmp r0, #0x32
+ bgt _0221FF74
+ cmp r0, #0x2c
+ blt _0221FF74
+ cmp r0, #0x2c
+ beq _0221FF44
+ cmp r0, #0x2d
+ beq _0221FF50
+ cmp r0, #0x32
+ beq _0221FF68
+ b _0221FF74
+_0221FF2C:
+ mov r0, #6
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FF38:
+ mov r0, #7
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FF44:
+ mov r0, #9
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FF50:
+ mov r0, #0xa
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FF5C:
+ mov r0, #0xb
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FF68:
+ mov r0, #0x32
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FF74:
+ mov r0, #8
+ strb r0, [r1, #0x121]
+_0221FF7C:
+ bl MOD13_0221FF98
+ mov r0, #8
+ bl MOD13_0223424C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221FF90: .word 0x0224303C
+_0221FF94: .word 0x0223EF08
+
+ arm_func_start MOD13_0221FF98
+MOD13_0221FF98: ; 0x0221FF98
+ stmdb sp!, {r4, lr}
+ ldr r0, _02220068 ; =0x0224303C
+ ldr r1, [r0]
+ add r0, r1, #0x100
+ ldrsb r0, [r0, #0x21]
+ sub r0, r0, #0x2f
+ cmp r0, #5
+ addls pc, pc, r0, lsl #2
+ b _0221FFFC
+_0221FFBC: ; jump table
+ b _0221FFD4 ; case 0
+ b _0221FFDC ; case 1
+ b _0221FFE4 ; case 2
+ b _0221FFEC ; case 3
+ b _0221FFF4 ; case 4
+ b _0221FFF4 ; case 5
+_0221FFD4:
+ mov r4, #0x42
+ b _02220000
+_0221FFDC:
+ mov r4, #0x41
+ b _02220000
+_0221FFE4:
+ mov r4, #0x43
+ b _02220000
+_0221FFEC:
+ mov r4, #0x41
+ b _02220000
+_0221FFF4:
+ mov r4, #0x45
+ b _02220000
+_0221FFFC:
+ mov r4, #0x40
+_02220000:
+ ldr r0, [r1, #0x114]
+ mov r1, #0
+ bl MOD13_02239ADC
+ mov r2, r0
+ mov r1, r4
+ mov r0, #0
+ bl MOD13_02239E8C
+ ldr r0, _02220068 ; =0x0224303C
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #2
+ ldr r0, [r0, #0x114]
+ bl MOD13_02239814
+ ldr r0, _02220068 ; =0x0224303C
+ ldr r2, _0222006C ; =0x0223EE34
+ ldr r3, [r0]
+ mvn r1, #0
+ add r0, r3, #0x100
+ ldrsb ip, [r0, #0x21]
+ ldr r0, [r3, #0x114]
+ ldr r3, _02220070 ; =0x0223EE36
+ mov ip, ip, lsl #2
+ ldrh r2, [r2, ip]
+ ldrh r3, [r3, ip]
+ bl MOD13_02239888
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02220068: .word 0x0224303C
+_0222006C: .word 0x0223EE34
+_02220070: .word 0x0223EE36
+
+ arm_func_start MOD13_02220074
+MOD13_02220074: ; 0x02220074
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r0, #0
+ addlt sp, sp, #4
+ ldmltia sp!, {pc}
+ cmp r0, #0x2f
+ bge _022200CC
+ ldr r2, _02220144 ; =0x0224303C
+ ldr r3, _02220148 ; =0x0223ED10
+ ldr r2, [r2]
+ add sp, sp, #4
+ add r0, r2, r0, lsl #2
+ ldr ip, [r0, #0x30]
+ ldr r0, [ip]
+ bic r0, r0, #0xc00
+ str r0, [ip]
+ ldrh r2, [ip, #4]
+ ldrb r0, [r3, r1]
+ bic r1, r2, #0xf000
+ orr r0, r1, r0, lsl #12
+ strh r0, [ip, #4]
+ ldmia sp!, {pc}
+_022200CC:
+ sub r3, r0, #0x2f
+ cmp r3, #4
+ bge _02220114
+ ldr r0, _02220144 ; =0x0224303C
+ ldr r2, _02220148 ; =0x0223ED10
+ ldr r0, [r0]
+ add sp, sp, #4
+ add r0, r0, r3, lsl #2
+ ldr ip, [r0, #0xec]
+ ldr r0, [ip]
+ bic r0, r0, #0xc00
+ str r0, [ip]
+ ldrh r3, [ip, #4]
+ ldrb r0, [r2, r1]
+ bic r1, r3, #0xf000
+ orr r0, r1, r0, lsl #12
+ strh r0, [ip, #4]
+ ldmia sp!, {pc}
+_02220114:
+ ldr r2, _02220144 ; =0x0224303C
+ ldr r3, _0222014C ; =0x0223ED14
+ ldr r2, [r2]
+ sub r0, r0, #0x33
+ add r0, r2, r0, lsl #2
+ ldrb r3, [r3, r1]
+ ldr r0, [r0, #0xfc]
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_02239994
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02220144: .word 0x0224303C
+_02220148: .word 0x0223ED10
+_0222014C: .word 0x0223ED14
+
+ arm_func_start MOD13_02220150
+MOD13_02220150: ; 0x02220150
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ ldr r1, _022201D4 ; =0x0224303C
+ mov r6, #0
+ ldr r1, [r1]
+ mov r8, r0
+ mov r5, r6
+ mov r7, r6
+ mov r4, r6
+ strb r8, [r1, #0x11d]
+ ldr sb, _022201D8 ; =0x0223ED78
+_0222017C:
+ add r0, sb, r4, lsl #2
+ ldrh r2, [r0, #2]
+ mov r0, r8
+ mov r1, r7
+ bl MOD13_022201DC
+ add r7, r7, #1
+ cmp r7, #4
+ add r4, r4, #0xc
+ blt _0222017C
+ cmp r8, #2
+ moveq r6, #1
+ beq _022201B4
+ cmp r8, #1
+ moveq r5, #1
+_022201B4:
+ mov r1, r6
+ mov r0, #0x2f
+ bl MOD13_02220074
+ mov r1, r5
+ mov r0, #0x30
+ bl MOD13_02220074
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ .align 2, 0
+_022201D4: .word 0x0224303C
+_022201D8: .word 0x0223ED78
+
+ arm_func_start MOD13_022201DC
+MOD13_022201DC: ; 0x022201DC
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x1c
+ ldr r4, _02220460 ; =0x0223ED38
+ ldr lr, _02220464 ; =0x0223ED40
+ ldrb r5, [r4, #4]
+ ldrb sb, [r4]
+ ldrb r8, [r4, #1]
+ strb r5, [sp, #0xc]
+ mov r5, r1
+ mov r1, #0xc
+ mul r1, r5, r1
+ ldrb r7, [r4, #2]
+ ldrb r6, [r4, #3]
+ strb sb, [sp, #8]
+ str r1, [sp, #4]
+ ldrb ip, [lr]
+ ldrb sl, [lr, #1]
+ ldrb r4, [lr, #2]
+ ldrb fp, [lr, #3]
+ ldrb sb, [lr, #4]
+ ldr r3, _02220468 ; =0x0223ED30
+ strb r8, [sp, #9]
+ strb r7, [sp, #0xa]
+ strb r6, [sp, #0xb]
+ add r1, sp, #8
+ ldrb lr, [r3]
+ ldrb r8, [r3, #1]
+ ldrb r7, [r3, #2]
+ ldrb r6, [r3, #3]
+ ldrb r3, [r3, #4]
+ ldrb r1, [r1, r5]
+ strb sl, [sp, #0xe]
+ strb r4, [sp, #0xf]
+ strb sb, [sp, #0x11]
+ strb ip, [sp, #0xd]
+ mov r4, r2
+ ldr sl, [sp, #4]
+ strb fp, [sp, #0x10]
+ strb lr, [sp, #0x12]
+ strb r8, [sp, #0x13]
+ strb r7, [sp, #0x14]
+ strb r6, [sp, #0x15]
+ strb r3, [sp, #0x16]
+ cmp r1, #0
+ mov sb, #0
+ ble _0222030C
+ add r1, sp, #8
+ ldr r2, _0222046C ; =0x0224303C
+ ldr r3, _02220470 ; =0x0223ED78
+ ldr fp, _02220474 ; =0xFE00FF00
+ and r8, r4, #0xff
+ add r7, r1, r5
+_022202AC:
+ ldr r1, [r2]
+ mov r6, sl, lsl #2
+ add r1, r1, sl, lsl #2
+ ldr lr, [r1, #0x30]
+ ldr r1, _02220478 ; =0xC1FFFCFF
+ ldr ip, [lr]
+ add sb, sb, #1
+ and r1, ip, r1
+ str r1, [lr]
+ ldr r1, [r2]
+ ldrh ip, [r3, r6]
+ add r1, r1, sl, lsl #2
+ ldr r6, [r1, #0x30]
+ ldr r1, _0222047C ; =0x000001FF
+ add sl, sl, #1
+ and r1, ip, r1
+ ldr ip, [r6]
+ and ip, ip, fp
+ orr ip, ip, r8
+ orr r1, ip, r1, lsl #16
+ str r1, [r6]
+ ldrb r1, [r7]
+ cmp sb, r1
+ blt _022202AC
+_0222030C:
+ cmp r5, #4
+ bge _0222034C
+ ldr r1, _0222046C ; =0x0224303C
+ mov r2, #2
+ ldr r6, [r1]
+ ldr r1, [sp, #4]
+ str r2, [sp]
+ add r0, r6, r0, lsl #4
+ ldr r3, _02220470 ; =0x0223ED78
+ mov r1, r1, lsl #2
+ add r2, r6, r5, lsl #2
+ ldrh r1, [r3, r1]
+ ldr r3, [r2, #0x104]
+ ldr r0, [r0, r5, lsl #2]
+ mov r2, r4
+ bl MOD13_0223A440
+_0222034C:
+ add r0, r5, #3
+ mov r1, #4
+ bl FX_ModS32
+ add r8, sp, #0xd
+ ldrb r1, [r8, r5]
+ mov r2, #0
+ cmp r1, #0
+ ble _022203E0
+ ldr r3, _02220480 ; =0x0223ED58
+ mov r1, r0, lsl #2
+ ldrh r3, [r3, r1]
+ ldr r0, _0222047C ; =0x000001FF
+ and r7, r4, #0xff
+ and r0, r3, r0
+ mov r6, r0, lsl #0x10
+ add r3, r8, r5
+ ldr sl, _0222046C ; =0x0224303C
+ ldr r8, _02220478 ; =0xC1FFFCFF
+ ldr sb, _02220474 ; =0xFE00FF00
+_02220398:
+ ldr r0, [sl]
+ add r2, r2, #1
+ add r0, r1, r0
+ ldr fp, [r0, #0xec]
+ ldr r0, [fp]
+ and r0, r0, r8
+ str r0, [fp]
+ ldr r0, [sl]
+ add r0, r1, r0
+ ldr r0, [r0, #0xec]
+ ldr fp, [r0]
+ and fp, fp, sb
+ orr fp, fp, r7
+ orr fp, r6, fp
+ str fp, [r0]
+ ldrb r0, [r3]
+ cmp r2, r0
+ blt _02220398
+_022203E0:
+ add r1, sp, #0x12
+ ldrb r0, [r1, r5]
+ mov r8, #0
+ cmp r0, #0
+ addle sp, sp, #0x1c
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ add sb, r1, r5
+ ldr sl, _0222046C ; =0x0224303C
+ ldr r5, _02220484 ; =0x0223ED50
+ mov r6, r8
+ mvn r7, #0
+_0222040C:
+ ldr r0, [sl]
+ mov r1, r7
+ add r0, r0, r8, lsl #2
+ ldr r0, [r0, #0xfc]
+ mov r2, r6
+ mov r3, r6
+ bl MOD13_02239A1C
+ ldr r0, [sl]
+ mov r1, r8, lsl #2
+ add r0, r0, r8, lsl #2
+ ldrh r2, [r5, r1]
+ ldr r0, [r0, #0xfc]
+ mov r1, r7
+ mov r3, r4
+ bl MOD13_02239888
+ ldrb r0, [sb]
+ add r8, r8, #1
+ cmp r8, r0
+ blt _0222040C
+ add sp, sp, #0x1c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02220460: .word 0x0223ED38
+_02220464: .word 0x0223ED40
+_02220468: .word 0x0223ED30
+_0222046C: .word 0x0224303C
+_02220470: .word 0x0223ED78
+_02220474: .word 0xFE00FF00
+_02220478: .word 0xC1FFFCFF
+_0222047C: .word 0x000001FF
+_02220480: .word 0x0223ED58
+_02220484: .word 0x0223ED50
+
+ arm_func_start MOD13_02220488
+MOD13_02220488: ; 0x02220488
+ stmdb sp!, {r4, lr}
+ mov r0, #0x20
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _022204A4
+ mov r0, #0
+ bl MOD13_0221FB14
+_022204A4:
+ mov r0, #0x40
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _022204BC
+ mov r0, #1
+ bl MOD13_0221FB14
+_022204BC:
+ mov r0, #0x10
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _022204D4
+ mov r0, #2
+ bl MOD13_0221FB14
+_022204D4:
+ mov r0, #0x80
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _022204EC
+ mov r0, #3
+ bl MOD13_0221FB14
+_022204EC:
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02220604
+ ldr r2, _022206A4 ; =0x0224303C
+ ldr r0, [r2]
+ add r1, r0, #0x100
+ ldrsb r4, [r1, #0x21]
+ cmp r4, #0x2f
+ bge _0222055C
+ ldrb r1, [r0, #0x124]
+ cmp r1, #0
+ bne _0222052C
+ mov r0, #9
+ bl MOD13_0223424C
+ ldmia sp!, {r4, pc}
+_0222052C:
+ ldrb r3, [r0, #0x11d]
+ ldr r1, _022206A8 ; =0x0223FB7C
+ ldr r1, [r1, r3, lsl #2]
+ ldrb r1, [r1, r4]
+ strb r1, [r0, #0x11c]
+ ldr r0, [r2]
+ ldrb r0, [r0, #0x11d]
+ cmp r0, #1
+ ldmneia sp!, {r4, pc}
+ mov r0, #0
+ bl MOD13_02220150
+ ldmia sp!, {r4, pc}
+_0222055C:
+ sub r1, r4, #0x2f
+ cmp r1, #4
+ bge _022205F4
+ cmp r1, #3
+ addls pc, pc, r1, lsl #2
+ b _022205C4
+_02220574: ; jump table
+ b _02220584 ; case 0
+ b _0222058C ; case 1
+ b _02220594 ; case 2
+ b _022205AC ; case 3
+_02220584:
+ bl MOD13_02220944
+ ldmia sp!, {r4, pc}
+_0222058C:
+ bl MOD13_0222090C
+ ldmia sp!, {r4, pc}
+_02220594:
+ ldrb r1, [r0, #0x124]
+ cmp r1, #0
+ bne _022205C4
+ mov r0, #9
+ bl MOD13_0223424C
+ ldmia sp!, {r4, pc}
+_022205AC:
+ ldrb r1, [r0, #0x123]
+ cmp r1, #0
+ bne _022205C4
+ mov r0, #9
+ bl MOD13_0223424C
+ ldmia sp!, {r4, pc}
+_022205C4:
+ ldrb r0, [r0, #0x11d]
+ cmp r0, #1
+ bne _022205D8
+ mov r0, #0
+ bl MOD13_02220150
+_022205D8:
+ ldr r1, _022206AC ; =0x0223ED48
+ sub r2, r4, #0x2f
+ ldr r0, _022206A4 ; =0x0224303C
+ ldrb r1, [r1, r2]
+ ldr r0, [r0]
+ strb r1, [r0, #0x11c]
+ ldmia sp!, {r4, pc}
+_022205F4:
+ ldr r1, _022206B0 ; =0x0223ED1C
+ sub r2, r4, #0x33
+ ldrb r1, [r1, r2]
+ strb r1, [r0, #0x11c]
+_02220604:
+ mov r0, #2
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222065C
+ ldr r0, _022206A4 ; =0x0224303C
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x123]
+ cmp r0, #0
+ bne _02220650
+ ldrb r0, [r1, #0x125]
+ cmp r0, #0
+ ldmneia sp!, {r4, pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _022206A4 ; =0x0224303C
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x125]
+ ldmia sp!, {r4, pc}
+_02220650:
+ mov r0, #0x80
+ strb r0, [r1, #0x11c]
+ b _02220678
+_0222065C:
+ mov r0, #2
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _022206A4 ; =0x0224303C
+ movne r1, #0
+ ldrne r0, [r0]
+ strneb r1, [r0, #0x125]
+_02220678:
+ mov r0, #0x400
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0222068C
+ bl MOD13_02220944
+_0222068C:
+ mov r0, #0x800
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ ldmeqia sp!, {r4, pc}
+ bl MOD13_0222090C
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022206A4: .word 0x0224303C
+_022206A8: .word 0x0223FB7C
+_022206AC: .word 0x0223ED48
+_022206B0: .word 0x0223ED1C
+
+ arm_func_start MOD13_022206B4
+MOD13_022206B4: ; 0x022206B4
+ stmdb sp!, {r4, lr}
+ ldr r1, _02220704 ; =0x0224303C
+ mov r4, r0
+ ldr r1, [r1]
+ add r1, r1, #0x100
+ ldrsb r1, [r1, #0x1f]
+ cmp r4, r1
+ ldmeqia sp!, {r4, pc}
+ mov r1, #1
+ bl MOD13_02220074
+ ldr r0, _02220704 ; =0x0224303C
+ mov r1, #0
+ ldr r0, [r0]
+ add r0, r0, #0x100
+ ldrsb r0, [r0, #0x1f]
+ bl MOD13_02220074
+ ldr r0, _02220704 ; =0x0224303C
+ ldr r0, [r0]
+ strb r4, [r0, #0x11f]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02220704: .word 0x0224303C
+
+ arm_func_start MOD13_02220708
+MOD13_02220708: ; 0x02220708
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0xc
+ ldr r0, _022208EC ; =0x0223F75C
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _022208CC
+ ldr r7, _022208F0 ; =0x0223ED78
+ mov r4, #0
+ ldr r6, _022208F4 ; =0x0223ED2C
+ add r5, sp, #0
+_02220730:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _02220774
+ ldr r0, _022208F8 ; =0x0224303C
+ ldr r0, [r0]
+ add r0, r0, #0x100
+ ldrsb r0, [r0, #0x1e]
+ cmp r0, r4
+ bne _022208CC
+ mov r0, r4
+ bl MOD13_022206B4
+ b _022208D4
+_02220774:
+ add r4, r4, #1
+ cmp r4, #0x2f
+ add r7, r7, #4
+ blt _02220730
+ ldr r7, _022208FC ; =0x0223ED70
+ ldr r6, _02220900 ; =0x0223ED60
+ mov r5, #2
+ add r4, sp, #0
+_02220794:
+ mov r0, r6
+ mov r1, r7
+ mov r2, r4
+ bl MOD13_0223AB74
+ mov r0, r4
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _02220854
+ ldr r1, _022208F8 ; =0x0224303C
+ add r0, r5, #0x2f
+ ldr r1, [r1]
+ add r1, r1, #0x100
+ ldrsb r1, [r1, #0x1e]
+ cmp r1, r0
+ bne _022208CC
+ bl MOD13_022206B4
+ cmp r5, #3
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, _022208F8 ; =0x0224303C
+ ldr r2, [r0]
+ ldrb r1, [r2, #0x122]
+ add r1, r1, #1
+ strb r1, [r2, #0x122]
+ ldr r2, [r0]
+ ldrb r1, [r2, #0x122]
+ cmp r1, #0x28
+ addlo sp, sp, #0xc
+ ldmloia sp!, {r4, r5, r6, r7, pc}
+ ldrb r1, [r2, #0x123]
+ cmp r1, #0
+ bne _02220834
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _022208F8 ; =0x0224303C
+ mvn r1, #0
+ ldr r0, [r0]
+ add sp, sp, #0xc
+ strb r1, [r0, #0x11e]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220834:
+ mov r1, #0x80
+ strb r1, [r2, #0x11c]
+ ldr r1, [r0]
+ add sp, sp, #0xc
+ ldrb r0, [r1, #0x122]
+ sub r0, r0, #7
+ strb r0, [r1, #0x122]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220854:
+ add r5, r5, #1
+ cmp r5, #4
+ add r7, r7, #4
+ add r6, r6, #4
+ blt _02220794
+ ldr r7, _02220904 ; =0x0223ED50
+ mov r6, #0
+ ldr r5, _02220908 ; =0x0223ED28
+ add r4, sp, #0
+_02220878:
+ mov r0, r7
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_0223AB74
+ mov r0, r4
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _022208BC
+ ldr r1, _022208F8 ; =0x0224303C
+ add r0, r6, #0x33
+ ldr r1, [r1]
+ add r1, r1, #0x100
+ ldrsb r1, [r1, #0x1e]
+ cmp r1, r0
+ bne _022208CC
+ bl MOD13_022206B4
+ b _022208D4
+_022208BC:
+ add r6, r6, #1
+ cmp r6, #2
+ add r7, r7, #4
+ blt _02220878
+_022208CC:
+ mvn r0, #0
+ bl MOD13_022206B4
+_022208D4:
+ ldr r0, _022208F8 ; =0x0224303C
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x122]
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022208EC: .word 0x0223F75C
+_022208F0: .word 0x0223ED78
+_022208F4: .word 0x0223ED2C
+_022208F8: .word 0x0224303C
+_022208FC: .word 0x0223ED70
+_02220900: .word 0x0223ED60
+_02220904: .word 0x0223ED50
+_02220908: .word 0x0223ED28
+
+ arm_func_start MOD13_0222090C
+MOD13_0222090C: ; 0x0222090C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02220940 ; =0x0224303C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x11d]
+ cmp r0, #1
+ movne r0, #1
+ moveq r0, #0
+ bl MOD13_02220150
+ mov r0, #1
+ bl MOD13_0223424C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02220940: .word 0x0224303C
+
+ arm_func_start MOD13_02220944
+MOD13_02220944: ; 0x02220944
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02220978 ; =0x0224303C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x11d]
+ cmp r0, #2
+ moveq r0, #0
+ movne r0, #2
+ bl MOD13_02220150
+ mov r0, #1
+ bl MOD13_0223424C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02220978: .word 0x0224303C
+
+ arm_func_start MOD13_0222097C
+MOD13_0222097C: ; 0x0222097C
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0xc
+ ldr r1, _02220C28 ; =0x0224303C
+ ldr r0, _02220C2C ; =0x0223F75C
+ ldr r1, [r1]
+ mov r2, #0
+ strb r2, [r1, #0x11c]
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ ldr r7, _02220C30 ; =0x0223ED78
+ mov r4, #0
+ ldr r6, _02220C34 ; =0x0223ED2C
+ add r5, sp, #0
+_022209B8:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _02220A38
+ ldr r1, _02220C28 ; =0x0224303C
+ ldr r3, [r1]
+ add r0, r3, #0x100
+ ldrsb r0, [r0, #0x1e]
+ cmp r0, r4
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldrb r2, [r3, #0x11d]
+ ldr r0, _02220C38 ; =0x0223FB7C
+ ldr r0, [r0, r2, lsl #2]
+ ldrb r0, [r0, r4]
+ strb r0, [r3, #0x11c]
+ ldr r0, [r1]
+ ldrb r0, [r0, #0x11d]
+ cmp r0, #1
+ bne _02220A20
+ mov r0, #0
+ bl MOD13_02220150
+_02220A20:
+ ldr r0, _02220C28 ; =0x0224303C
+ ldr r0, [r0]
+ strb r4, [r0, #0x121]
+ bl MOD13_0221FF98
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220A38:
+ add r4, r4, #1
+ cmp r4, #0x2f
+ add r7, r7, #4
+ blt _022209B8
+ ldr r7, _02220C3C ; =0x0223ED70
+ ldr r6, _02220C40 ; =0x0223ED60
+ mov r4, #2
+ add r5, sp, #0
+_02220A58:
+ mov r0, r6
+ mov r1, r7
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _02220AD8
+ ldr r1, _02220C28 ; =0x0224303C
+ add r2, r4, #0x2f
+ ldr r3, [r1]
+ add r0, r3, #0x100
+ ldrsb r0, [r0, #0x1e]
+ cmp r0, r2
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, _02220C44 ; =0x0223ED48
+ ldrb r0, [r0, r4]
+ strb r0, [r3, #0x11c]
+ ldr r0, [r1]
+ ldrb r0, [r0, #0x11d]
+ cmp r0, #1
+ bne _02220ABC
+ mov r0, #0
+ bl MOD13_02220150
+_02220ABC:
+ ldr r0, _02220C28 ; =0x0224303C
+ add r1, r4, #0x2f
+ ldr r0, [r0]
+ strb r1, [r0, #0x121]
+ bl MOD13_0221FF98
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220AD8:
+ add r4, r4, #1
+ cmp r4, #4
+ add r7, r7, #4
+ add r6, r6, #4
+ blt _02220A58
+ ldr r7, _02220C48 ; =0x0223ED50
+ mov r4, #0
+ ldr r6, _02220C4C ; =0x0223ED28
+ add r5, sp, #0
+_02220AFC:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _02220B5C
+ ldr r1, _02220C28 ; =0x0224303C
+ add r2, r4, #0x33
+ ldr r3, [r1]
+ add r0, r3, #0x100
+ ldrsb r0, [r0, #0x1e]
+ cmp r0, r2
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, _02220C50 ; =0x0223ED1C
+ ldrb r0, [r0, r4]
+ strb r0, [r3, #0x11c]
+ ldr r0, [r1]
+ strb r2, [r0, #0x121]
+ bl MOD13_0221FF98
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220B5C:
+ add r4, r4, #1
+ cmp r4, #2
+ add r7, r7, #4
+ blt _02220AFC
+ ldr r0, _02220C54 ; =0x0223ED58
+ ldr r1, _02220C58 ; =0x0223ED68
+ add r2, sp, #0
+ bl MOD13_0223AB74
+ add r0, sp, #0
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _02220BC8
+ ldr r0, _02220C28 ; =0x0224303C
+ ldr r0, [r0]
+ add r0, r0, #0x100
+ ldrsb r0, [r0, #0x1e]
+ cmp r0, #0x2f
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ bl MOD13_02220944
+ ldr r0, _02220C28 ; =0x0224303C
+ mov r1, #0x2f
+ ldr r0, [r0]
+ strb r1, [r0, #0x121]
+ bl MOD13_0221FF98
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220BC8:
+ ldr r0, _02220C5C ; =0x0223ED5C
+ ldr r1, _02220C60 ; =0x0223ED6C
+ add r2, sp, #0
+ bl MOD13_0223AB74
+ add r0, sp, #0
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, _02220C28 ; =0x0224303C
+ ldr r0, [r0]
+ add r0, r0, #0x100
+ ldrsb r0, [r0, #0x1e]
+ cmp r0, #0x30
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ bl MOD13_0222090C
+ ldr r0, _02220C28 ; =0x0224303C
+ mov r1, #0x30
+ ldr r0, [r0]
+ strb r1, [r0, #0x121]
+ bl MOD13_0221FF98
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02220C28: .word 0x0224303C
+_02220C2C: .word 0x0223F75C
+_02220C30: .word 0x0223ED78
+_02220C34: .word 0x0223ED2C
+_02220C38: .word 0x0223FB7C
+_02220C3C: .word 0x0223ED70
+_02220C40: .word 0x0223ED60
+_02220C44: .word 0x0223ED48
+_02220C48: .word 0x0223ED50
+_02220C4C: .word 0x0223ED28
+_02220C50: .word 0x0223ED1C
+_02220C54: .word 0x0223ED58
+_02220C58: .word 0x0223ED68
+_02220C5C: .word 0x0223ED5C
+_02220C60: .word 0x0223ED6C
+
+ arm_func_start MOD13_02220C64
+MOD13_02220C64: ; 0x02220C64
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0xc
+ ldr r0, _02220E28 ; =0x0223F75C
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, _02220E2C ; =0x0224303C
+ mvn r1, #0
+ ldr r0, [r0]
+ ldr r7, _02220E30 ; =0x0223ED78
+ strb r1, [r0, #0x11e]
+ mov r4, #0
+ ldr r6, _02220E34 ; =0x0223ED2C
+ add r5, sp, #0
+_02220CA0:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02220D00
+ ldr r0, _02220E2C ; =0x0224303C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x124]
+ cmp r0, #0
+ bne _02220CE4
+ mov r0, #9
+ bl MOD13_0223424C
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220CE4:
+ mov r0, #0
+ bl MOD13_0223424C
+ ldr r0, _02220E2C ; =0x0224303C
+ add sp, sp, #0xc
+ ldr r0, [r0]
+ strb r4, [r0, #0x11e]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220D00:
+ add r4, r4, #1
+ cmp r4, #0x2f
+ add r7, r7, #4
+ blt _02220CA0
+ ldr r7, _02220E38 ; =0x0223ED68
+ ldr r6, _02220E3C ; =0x0223ED58
+ mov r4, #0
+ add r5, sp, #0
+_02220D20:
+ mov r0, r6
+ mov r1, r7
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02220DAC
+ cmp r4, #3
+ bne _02220D5C
+ ldr r0, _02220E2C ; =0x0224303C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x123]
+ cmp r0, #0
+ beq _02220D78
+_02220D5C:
+ cmp r4, #2
+ bne _02220D88
+ ldr r0, _02220E2C ; =0x0224303C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x124]
+ cmp r0, #0
+ bne _02220D88
+_02220D78:
+ mov r0, #9
+ bl MOD13_0223424C
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220D88:
+ ldr r0, _02220E40 ; =0x0223FB94
+ ldr r0, [r0, r4, lsl #2]
+ bl MOD13_0223424C
+ ldr r0, _02220E2C ; =0x0224303C
+ add r1, r4, #0x2f
+ ldr r0, [r0]
+ add sp, sp, #0xc
+ strb r1, [r0, #0x11e]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220DAC:
+ add r4, r4, #1
+ cmp r4, #4
+ add r7, r7, #4
+ add r6, r6, #4
+ blt _02220D20
+ ldr r7, _02220E44 ; =0x0223ED50
+ mov r6, #0
+ ldr r5, _02220E48 ; =0x0223ED28
+ add r4, sp, #0
+_02220DD0:
+ mov r0, r7
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_0223AB74
+ mov r0, r4
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02220E10
+ mov r0, #0
+ bl MOD13_0223424C
+ ldr r0, _02220E2C ; =0x0224303C
+ add r1, r6, #0x33
+ ldr r0, [r0]
+ add sp, sp, #0xc
+ strb r1, [r0, #0x11e]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220E10:
+ add r6, r6, #1
+ cmp r6, #2
+ add r7, r7, #4
+ blt _02220DD0
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02220E28: .word 0x0223F75C
+_02220E2C: .word 0x0224303C
+_02220E30: .word 0x0223ED78
+_02220E34: .word 0x0223ED2C
+_02220E38: .word 0x0223ED68
+_02220E3C: .word 0x0223ED58
+_02220E40: .word 0x0223FB94
+_02220E44: .word 0x0223ED50
+_02220E48: .word 0x0223ED28
+
+ arm_func_start MOD13_02220E4C
+MOD13_02220E4C: ; 0x02220E4C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02220C64
+ bl MOD13_0222097C
+ bl MOD13_02220708
+ bl MOD13_02220488
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02220EFC ; =0x0224303C
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #0xfc]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r0, _02220F00 ; =0x0223ED50
+ ldr r2, [sp, #4]
+ ldrh r1, [r0, #2]
+ sub r2, r2, #0xc
+ str r2, [sp, #4]
+ cmp r2, r1
+ ble _02220ECC
+ ldr r0, _02220EFC ; =0x0224303C
+ mov r1, #4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x11d]
+ bl MOD13_022201DC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02220ECC:
+ ldr r0, _02220EFC ; =0x0224303C
+ mov r2, r1
+ ldr r0, [r0]
+ mov r1, #4
+ ldrb r0, [r0, #0x11d]
+ bl MOD13_022201DC
+ bl MOD13_0221FF98
+ ldr r1, _02220F04 ; =MOD13_02220E4C
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02220EFC: .word 0x0224303C
+_02220F00: .word 0x0223ED50
+_02220F04: .word MOD13_02220E4C
+
+ arm_func_start MOD13_02220F08
+MOD13_02220F08: ; 0x02220F08
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02220FA8 ; =0x0224303C
+ ldr r2, _02220FAC ; =0x0223ED78
+ ldr lr, [r1]
+ ldr r1, _02220FB0 ; =0x01FF0000
+ ldr ip, [lr, #0xc0]
+ ldrh r3, [r2, #0x92]
+ ldr r2, [ip]
+ mov r4, r0
+ and r0, r2, r1
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [ip]
+ and r0, r0, #0xff
+ sub r2, r0, #0xc
+ str r0, [sp, #4]
+ str r2, [sp, #4]
+ cmp r2, r3
+ ble _02220F6C
+ ldrb r0, [lr, #0x11d]
+ mov r1, #3
+ bl MOD13_022201DC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02220F6C:
+ ldrb r0, [lr, #0x11d]
+ mov r2, r3
+ mov r1, #3
+ bl MOD13_022201DC
+ ldr r0, _02220FA8 ; =0x0224303C
+ mov r1, #4
+ ldr r0, [r0]
+ mov r2, #0xc0
+ ldrb r0, [r0, #0x11d]
+ bl MOD13_022201DC
+ ldr r1, _02220FB4 ; =0x02220E6C
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02220FA8: .word 0x0224303C
+_02220FAC: .word 0x0223ED78
+_02220FB0: .word 0x01FF0000
+_02220FB4: .word 0x02220E6C
+
+ arm_func_start MOD13_02220FB8
+MOD13_02220FB8: ; 0x02220FB8
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02221058 ; =0x0224303C
+ ldr r2, _0222105C ; =0x0223ED78
+ ldr lr, [r1]
+ ldr r1, _02221060 ; =0x01FF0000
+ ldr ip, [lr, #0x90]
+ ldrh r3, [r2, #0x62]
+ ldr r2, [ip]
+ mov r4, r0
+ and r0, r2, r1
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [ip]
+ and r0, r0, #0xff
+ sub r2, r0, #0xc
+ str r0, [sp, #4]
+ str r2, [sp, #4]
+ cmp r2, r3
+ ble _0222101C
+ ldrb r0, [lr, #0x11d]
+ mov r1, #2
+ bl MOD13_022201DC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222101C:
+ ldrb r0, [lr, #0x11d]
+ mov r2, r3
+ mov r1, #2
+ bl MOD13_022201DC
+ ldr r0, _02221058 ; =0x0224303C
+ mov r1, #3
+ ldr r0, [r0]
+ mov r2, #0xc0
+ ldrb r0, [r0, #0x11d]
+ bl MOD13_022201DC
+ ldr r1, _02221064 ; =MOD13_02220F08
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02221058: .word 0x0224303C
+_0222105C: .word 0x0223ED78
+_02221060: .word 0x01FF0000
+_02221064: .word MOD13_02220F08
+
+ arm_func_start MOD13_02221068
+MOD13_02221068: ; 0x02221068
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02221108 ; =0x0224303C
+ ldr r2, _0222110C ; =0x0223ED78
+ ldr lr, [r1]
+ ldr r1, _02221110 ; =0x01FF0000
+ ldr ip, [lr, #0x60]
+ ldrh r3, [r2, #0x32]
+ ldr r2, [ip]
+ mov r4, r0
+ and r0, r2, r1
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [ip]
+ and r0, r0, #0xff
+ sub r2, r0, #0xc
+ str r0, [sp, #4]
+ str r2, [sp, #4]
+ cmp r2, r3
+ ble _022210CC
+ ldrb r0, [lr, #0x11d]
+ mov r1, #1
+ bl MOD13_022201DC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022210CC:
+ ldrb r0, [lr, #0x11d]
+ mov r2, r3
+ mov r1, #1
+ bl MOD13_022201DC
+ ldr r0, _02221108 ; =0x0224303C
+ mov r1, #2
+ ldr r0, [r0]
+ mov r2, #0xc0
+ ldrb r0, [r0, #0x11d]
+ bl MOD13_022201DC
+ ldr r1, _02221114 ; =MOD13_02220FB8
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02221108: .word 0x0224303C
+_0222110C: .word 0x0223ED78
+_02221110: .word 0x01FF0000
+_02221114: .word MOD13_02220FB8
+
+ arm_func_start MOD13_02221118
+MOD13_02221118: ; 0x02221118
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _022211B8 ; =0x0224303C
+ ldr r2, _022211BC ; =0x0223ED78
+ ldr lr, [r1]
+ ldr r1, _022211C0 ; =0x01FF0000
+ ldr ip, [lr, #0x30]
+ ldrh r3, [r2, #2]
+ ldr r2, [ip]
+ mov r4, r0
+ and r0, r2, r1
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [ip]
+ and r0, r0, #0xff
+ sub r2, r0, #0xc
+ str r0, [sp, #4]
+ str r2, [sp, #4]
+ cmp r2, r3
+ ble _0222117C
+ ldrb r0, [lr, #0x11d]
+ mov r1, #0
+ bl MOD13_022201DC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222117C:
+ ldrb r0, [lr, #0x11d]
+ mov r2, r3
+ mov r1, #0
+ bl MOD13_022201DC
+ ldr r0, _022211B8 ; =0x0224303C
+ mov r1, #1
+ ldr r0, [r0]
+ mov r2, #0xc0
+ ldrb r0, [r0, #0x11d]
+ bl MOD13_022201DC
+ ldr r1, _022211C4 ; =MOD13_02221068
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022211B8: .word 0x0224303C
+_022211BC: .word 0x0223ED78
+_022211C0: .word 0x01FF0000
+_022211C4: .word MOD13_02221068
+
+ arm_func_start MOD13_022211C8
+MOD13_022211C8: ; 0x022211C8
+ ldr r0, _022211E0 ; =0x0224303C
+ ldr r0, [r0]
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_022211E0: .word 0x0224303C
+
+ arm_func_start MOD13_022211E4
+MOD13_022211E4: ; 0x022211E4
+ ldr r1, _022211F4 ; =0x0224303C
+ ldr r1, [r1]
+ strb r0, [r1, #0x124]
+ bx lr
+ .align 2, 0
+_022211F4: .word 0x0224303C
+
+ arm_func_start MOD13_022211F8
+MOD13_022211F8: ; 0x022211F8
+ ldr r1, _02221208 ; =0x0224303C
+ ldr r1, [r1]
+ strb r0, [r1, #0x123]
+ bx lr
+ .align 2, 0
+_02221208: .word 0x0224303C
+
+ arm_func_start MOD13_0222120C
+MOD13_0222120C: ; 0x0222120C
+ ldr r0, _0222121C ; =0x0224303C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x11c]
+ bx lr
+ .align 2, 0
+_0222121C: .word 0x0224303C
+
+ arm_func_start MOD13_02221220
+MOD13_02221220: ; 0x02221220
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02221254 ; =0x0224303C
+ ldr r0, [r0]
+ ldr r0, [r0, #0x114]
+ bl MOD13_02239AE8
+ ldr r0, _02221254 ; =0x0224303C
+ ldr r1, _02221258 ; =MOD13_0221FA88
+ ldr r0, [r0]
+ ldr r0, [r0, #0x118]
+ bl MOD13_0223C130
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02221254: .word 0x0224303C
+_02221258: .word MOD13_0221FA88
+
+ arm_func_start MOD13_0222125C
+MOD13_0222125C: ; 0x0222125C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x44
+ add r2, sp, #0x34
+ mov r1, #0
+ strh r1, [r2]
+ strh r1, [r2, #2]
+ strh r1, [r2, #4]
+ strh r1, [r2, #6]
+ ldr r0, _022215EC ; =0x0223ED2C
+ mov r1, #4
+ ldrh r3, [r0]
+ ldrh r2, [r0, #2]
+ mov r0, #0x128
+ strh r3, [sp, #0x38]
+ strh r2, [sp, #0x3a]
+ bl MOD13_0223AFE0
+ ldr r8, _022215F0 ; =0x0224303C
+ mov r6, #0
+ mov r1, #0xff
+ str r0, [r8]
+ strb r1, [r0, #0x11c]
+ ldr r0, [r8]
+ mov r1, #1
+ strb r6, [r0, #0x121]
+ ldr r0, [r8]
+ ldr r7, _022215F4 ; =0xC1FFFCFF
+ strb r1, [r0, #0x123]
+ ldr r0, [r8]
+ mov r5, r6
+ strb r1, [r0, #0x124]
+ mov r4, #0x34
+_022212D8:
+ mov r0, r5
+ mov r1, r4
+ bl MOD13_02239E54
+ ldr r1, [r8]
+ add r1, r1, r6, lsl #2
+ str r0, [r1, #0x30]
+ ldr r0, [r8]
+ add r0, r0, r6, lsl #2
+ ldr r1, [r0, #0x30]
+ ldr r0, [r1]
+ and r0, r0, r7
+ orr r0, r0, #0x200
+ str r0, [r1]
+ ldr r0, [r8]
+ add r0, r0, r6, lsl #2
+ ldr r1, [r0, #0x30]
+ add r6, r6, #1
+ ldrh r0, [r1, #4]
+ cmp r6, #0x2f
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+ blt _022212D8
+ ldr r6, _022215F8 ; =0x0223ED20
+ mov r5, #0
+ ldr r8, _022215F0 ; =0x0224303C
+ mov r4, r5
+ ldr r7, _022215F4 ; =0xC1FFFCFF
+_02221348:
+ ldrb r1, [r6]
+ mov r0, r4
+ bl MOD13_02239E54
+ ldr r1, [r8]
+ add r6, r6, #1
+ add r1, r1, r5, lsl #2
+ str r0, [r1, #0xec]
+ ldr r0, [r8]
+ add r0, r0, r5, lsl #2
+ ldr r1, [r0, #0xec]
+ ldr r0, [r1]
+ and r0, r0, r7
+ orr r0, r0, #0x200
+ str r0, [r1]
+ ldr r0, [r8]
+ add r0, r0, r5, lsl #2
+ ldr r1, [r0, #0xec]
+ add r5, r5, #1
+ ldrh r0, [r1, #4]
+ cmp r5, #4
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+ blt _02221348
+ ldr sl, _022215FC ; =0x0223ED18
+ mov sb, #0
+ ldr r4, _022215F0 ; =0x0224303C
+ mov fp, sb
+ str sb, [sp, #0x1c]
+ mov r8, #1
+ mvn r7, #0
+ mov r6, #0x200
+ mov r5, #3
+_022213CC:
+ ldrb r1, [sl]
+ mov r0, fp
+ mov r2, r8
+ bl MOD13_02239E0C
+ ldr r2, [r4]
+ ldr r3, [sp, #0x1c]
+ add r2, r2, sb, lsl #2
+ str r0, [r2, #0xfc]
+ ldr r0, [r4]
+ mov r1, r7
+ add r0, r0, sb, lsl #2
+ ldr r0, [r0, #0xfc]
+ mov r2, r6
+ bl MOD13_02239A1C
+ ldr r0, [r4]
+ mov r1, r7
+ add r0, r0, sb, lsl #2
+ ldr r0, [r0, #0xfc]
+ mov r2, r5
+ bl MOD13_02239814
+ add sb, sb, #1
+ add sl, sl, #1
+ cmp sb, #2
+ blt _022213CC
+ ldr r1, _02221600 ; =0x0223ED24
+ mov r7, #0
+ ldrh r0, [r1, #2]
+ ldr fp, _02221604 ; =0x0223FB88
+ ldr r4, _022215F0 ; =0x0224303C
+ str r0, [sp, #0x10]
+ ldrh r0, [r1]
+ strh r7, [sp, #0x42]
+ str r7, [sp, #0x2c]
+ str r0, [sp, #0x14]
+ mov r0, #1
+ str r7, [sp, #0x24]
+ str r7, [sp, #0x28]
+ str r7, [sp, #0x20]
+ mov r6, #2
+ mov r5, #0x480
+ str r0, [sp, #0x30]
+_02221470:
+ ldr sb, [sp, #0x20]
+ mov r0, sb
+ str r0, [sp, #0x18]
+_0222147C:
+ add r0, sp, #0x3c
+ str r0, [sp]
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #4]
+ mov r3, r0
+ bl MOD13_0223A9A4
+ ldr r1, [r4]
+ ldr sl, [sp, #0x18]
+ add r1, r1, r7, lsl #4
+ str r0, [r1, sb, lsl #2]
+ ldr r0, [sp, #0x28]
+ strh r0, [sp, #0x34]
+ mov r8, r0
+_022214B8:
+ ldr r1, [fp, r7, lsl #2]
+ mov r0, sl, lsl #1
+ ldrh r2, [r1, r0]
+ ldrh r1, [sp, #0x3a]
+ mov r0, r7, lsl #4
+ strh r2, [sp, #0x40]
+ str r1, [sp]
+ str r6, [sp, #4]
+ add r2, r0, sb, lsl #2
+ str r5, [sp, #8]
+ add r0, sp, #0x40
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ ldrh r1, [sp, #0x34]
+ ldr r0, [r0, r2]
+ ldrh r2, [sp, #0x36]
+ ldrh r3, [sp, #0x38]
+ bl MOD13_0223A4F0
+ ldrh r0, [sp, #0x34]
+ add r8, r8, #1
+ cmp r8, #0xc
+ add r0, r0, #0x12
+ add sl, sl, #1
+ strh r0, [sp, #0x34]
+ blt _022214B8
+ cmp r7, #0
+ bne _02221540
+ ldr r0, [sp, #0x2c]
+ ldr r1, [sp, #0x3c]
+ ldr r2, [sp, #0x30]
+ bl MOD13_02239B74
+ ldr r1, [r4]
+ add r1, r1, sb, lsl #2
+ str r0, [r1, #0x104]
+_02221540:
+ ldr r0, [sp, #0x18]
+ add sb, sb, #1
+ add r0, r0, #0xc
+ str r0, [sp, #0x18]
+ cmp sb, #4
+ blt _0222147C
+ add r7, r7, #1
+ cmp r7, #3
+ blt _02221470
+ mov r0, #0
+ mov r1, #0x40
+ mov r2, #1
+ bl MOD13_02239E0C
+ ldr r3, _022215F0 ; =0x0224303C
+ mvn r1, #0
+ ldr r4, [r3]
+ mov r2, #0x200
+ str r0, [r4, #0x114]
+ ldr r0, [r3]
+ mov r3, #0
+ ldr r0, [r0, #0x114]
+ bl MOD13_02239A1C
+ ldr r0, _022215F0 ; =0x0224303C
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #2
+ ldr r0, [r0, #0x114]
+ bl MOD13_02239814
+ mov r0, #0
+ ldr r1, _02221608 ; =MOD13_02221118
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r3, _022215F0 ; =0x0224303C
+ mov r1, #0
+ ldr r4, [r3]
+ mov r2, #0xc0
+ str r0, [r4, #0x118]
+ ldr r0, [r3]
+ ldrb r0, [r0, #0x11d]
+ bl MOD13_022201DC
+ add sp, sp, #0x44
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_022215EC: .word 0x0223ED2C
+_022215F0: .word 0x0224303C
+_022215F4: .word 0xC1FFFCFF
+_022215F8: .word 0x0223ED20
+_022215FC: .word 0x0223ED18
+_02221600: .word 0x0223ED24
+_02221604: .word 0x0223FB88
+_02221608: .word MOD13_02221118
+
+ arm_func_start MOD13_0222160C
+MOD13_0222160C: ; 0x0222160C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r1, r0
+ mov r0, #0
+ bl MOD13_0223C110
+ mov r5, #0
+ ldr r4, _022216CC ; =0x02243040
+_02221628:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x48]
+ bl MOD13_02239AE8
+ ldr r0, [r4]
+ ldr r0, [r0, r5, lsl #2]
+ bl MOD13_0223A978
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02221628
+ ldr r4, _022216CC ; =0x02243040
+ mov r5, #0
+_02221658:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x40]
+ bl MOD13_02239AE8
+ add r5, r5, #1
+ cmp r5, #2
+ blt _02221658
+ ldr r4, _022216CC ; =0x02243040
+ mov r5, #0
+_0222167C:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x38]
+ bl MOD13_0223B974
+ add r5, r5, #1
+ cmp r5, #2
+ blt _0222167C
+ ldr r4, _022216CC ; =0x02243040
+ mov r5, #0
+_022216A0:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x10]
+ bl MOD13_0223B974
+ add r5, r5, #1
+ cmp r5, #0xa
+ blt _022216A0
+ ldr r0, _022216CC ; =0x02243040
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_022216CC: .word 0x02243040
+
+ arm_func_start MOD13_022216D0
+MOD13_022216D0: ; 0x022216D0
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0222173C ; =0x02243040
+ mov r4, r0
+ ldr r0, [r1]
+ ldr r1, _02221740 ; =0x01FF0000
+ ldr r3, [r0, #0x10]
+ mov r0, #0
+ ldr r2, [r3]
+ and r1, r2, r1
+ mov r1, r1, lsr #0x10
+ str r1, [sp]
+ ldr r1, [r3]
+ and r1, r1, #0xff
+ str r1, [sp, #4]
+ add r1, r1, #0xc
+ str r1, [sp, #4]
+ bl MOD13_02221B6C
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _02221744 ; =MOD13_0222160C
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222173C: .word 0x02243040
+_02221740: .word 0x01FF0000
+_02221744: .word MOD13_0222160C
+
+ arm_func_start MOD13_02221748
+MOD13_02221748: ; 0x02221748
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _022217B4 ; =0x02243040
+ mov r4, r0
+ ldr r0, [r1]
+ ldr r1, _022217B8 ; =0x01FF0000
+ ldr r3, [r0, #0x1c]
+ mov r0, #1
+ ldr r2, [r3]
+ and r1, r2, r1
+ mov r1, r1, lsr #0x10
+ str r1, [sp]
+ ldr r1, [r3]
+ and r1, r1, #0xff
+ str r1, [sp, #4]
+ add r1, r1, #0xc
+ str r1, [sp, #4]
+ bl MOD13_02221B6C
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _022217BC ; =MOD13_022216D0
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022217B4: .word 0x02243040
+_022217B8: .word 0x01FF0000
+_022217BC: .word MOD13_022216D0
+
+ arm_func_start MOD13_022217C0
+MOD13_022217C0: ; 0x022217C0
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0222182C ; =0x02243040
+ mov r4, r0
+ ldr r0, [r1]
+ ldr r1, _02221830 ; =0x01FF0000
+ ldr r3, [r0, #0x28]
+ mov r0, #2
+ ldr r2, [r3]
+ and r1, r2, r1
+ mov r1, r1, lsr #0x10
+ str r1, [sp]
+ ldr r1, [r3]
+ and r1, r1, #0xff
+ str r1, [sp, #4]
+ add r1, r1, #0xc
+ str r1, [sp, #4]
+ bl MOD13_02221B6C
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _02221834 ; =MOD13_02221748
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222182C: .word 0x02243040
+_02221830: .word 0x01FF0000
+_02221834: .word MOD13_02221748
+
+ arm_func_start MOD13_02221838
+MOD13_02221838: ; 0x02221838
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _022218A4 ; =0x02243040
+ mov r4, r0
+ ldr r0, [r1]
+ ldr r1, _022218A8 ; =0x01FF0000
+ ldr r3, [r0, #0x34]
+ mov r0, #3
+ ldr r2, [r3]
+ and r1, r2, r1
+ mov r1, r1, lsr #0x10
+ str r1, [sp]
+ ldr r1, [r3]
+ and r1, r1, #0xff
+ str r1, [sp, #4]
+ add r1, r1, #0xc
+ str r1, [sp, #4]
+ bl MOD13_02221B6C
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _022218AC ; =MOD13_022217C0
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022218A4: .word 0x02243040
+_022218A8: .word 0x01FF0000
+_022218AC: .word MOD13_022217C0
+
+ arm_func_start MOD13_022218B0
+MOD13_022218B0: ; 0x022218B0
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02221924 ; =0x02243040
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, #0
+ ldr r0, [r0, #0x40]
+ bl MOD13_02239ADC
+ ldr r2, [r0]
+ ldr r1, _02221928 ; =0x01FF0000
+ and r1, r2, r1
+ mov r1, r1, lsr #0x10
+ str r1, [sp]
+ ldr r1, [r0]
+ mov r0, #4
+ and r1, r1, #0xff
+ str r1, [sp, #4]
+ add r1, r1, #0xc
+ str r1, [sp, #4]
+ bl MOD13_02221B6C
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _0222192C ; =MOD13_02221838
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02221924: .word 0x02243040
+_02221928: .word 0x01FF0000
+_0222192C: .word MOD13_02221838
+
+ arm_func_start MOD13_02221930
+MOD13_02221930: ; 0x02221930
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _022219FC ; =0x02243040
+ ldr r2, _02221A00 ; =0x0223F0BC
+ ldr r3, [r1]
+ ldrsb ip, [r3, #0x63]
+ add r2, r2, ip, lsl #2
+ ldrsb r2, [r0, r2]
+ strb r2, [r3, #0x63]
+ ldr r1, [r1]
+ ldrsb r2, [r1, #0x63]
+ cmp r2, #0xd
+ bne _0222197C
+ cmp r0, #1
+ beq _02221974
+ cmp r0, #3
+ bne _0222197C
+_02221974:
+ strb ip, [r1, #0x64]
+ b _022219E8
+_0222197C:
+ mvn r0, #0
+ cmp r2, r0
+ bne _022219B4
+ ldrsb r0, [r1, #0x64]
+ cmp r0, #1
+ beq _0222199C
+ cmp r0, #0xa
+ bne _022219A8
+_0222199C:
+ mov r0, #0xa
+ strb r0, [r1, #0x63]
+ b _022219E8
+_022219A8:
+ mov r0, #0xb
+ strb r0, [r1, #0x63]
+ b _022219E8
+_022219B4:
+ mvn r0, #1
+ cmp r2, r0
+ bne _022219E8
+ ldrsb r0, [r1, #0x64]
+ cmp r0, #1
+ beq _022219D4
+ cmp r0, #0xa
+ bne _022219E0
+_022219D4:
+ mov r0, #1
+ strb r0, [r1, #0x63]
+ b _022219E8
+_022219E0:
+ mov r0, #2
+ strb r0, [r1, #0x63]
+_022219E8:
+ bl MOD13_02221A04
+ mov r0, #8
+ bl MOD13_0223424C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022219FC: .word 0x02243040
+_02221A00: .word 0x0223F0BC
+
+ arm_func_start MOD13_02221A04
+MOD13_02221A04: ; 0x02221A04
+ stmdb sp!, {r4, lr}
+ ldr r0, _02221A84 ; =0x02243040
+ ldr r1, [r0]
+ ldrsb r0, [r1, #0x63]
+ cmp r0, #0xb
+ movle r4, #0x44
+ ldr r0, [r1, #0x58]
+ movgt r4, #0x45
+ mov r1, #0
+ bl MOD13_02239ADC
+ mov r2, r0
+ mov r1, r4
+ mov r0, #0
+ bl MOD13_02239E8C
+ ldr r0, _02221A84 ; =0x02243040
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #2
+ ldr r0, [r0, #0x58]
+ bl MOD13_02239814
+ ldr r0, _02221A84 ; =0x02243040
+ ldr r2, _02221A88 ; =0x0223F084
+ ldr r0, [r0]
+ ldr r3, _02221A8C ; =0x0223F086
+ ldrsb ip, [r0, #0x63]
+ ldr r0, [r0, #0x58]
+ mvn r1, #0
+ mov ip, ip, lsl #2
+ ldrh r2, [r2, ip]
+ ldrh r3, [r3, ip]
+ bl MOD13_02239888
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02221A84: .word 0x02243040
+_02221A88: .word 0x0223F084
+_02221A8C: .word 0x0223F086
+
+ arm_func_start MOD13_02221A90
+MOD13_02221A90: ; 0x02221A90
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r0, #0
+ addlt sp, sp, #4
+ ldmltia sp!, {pc}
+ cmp r0, #0xa
+ bge _02221AE8
+ ldr r2, _02221B60 ; =0x02243040
+ ldr r3, _02221B64 ; =0x0223EFE8
+ ldr r2, [r2]
+ add sp, sp, #4
+ add r0, r2, r0, lsl #2
+ ldr ip, [r0, #0x10]
+ ldr r0, [ip]
+ bic r0, r0, #0xc00
+ str r0, [ip]
+ ldrh r2, [ip, #4]
+ ldrb r0, [r3, r1]
+ bic r1, r2, #0xf000
+ orr r0, r1, r0, lsl #12
+ strh r0, [ip, #4]
+ ldmia sp!, {pc}
+_02221AE8:
+ sub r3, r0, #0xa
+ cmp r3, #2
+ bge _02221B30
+ ldr r0, _02221B60 ; =0x02243040
+ ldr r2, _02221B64 ; =0x0223EFE8
+ ldr r0, [r0]
+ add sp, sp, #4
+ add r0, r0, r3, lsl #2
+ ldr ip, [r0, #0x38]
+ ldr r0, [ip]
+ bic r0, r0, #0xc00
+ str r0, [ip]
+ ldrh r3, [ip, #4]
+ ldrb r0, [r2, r1]
+ bic r1, r3, #0xf000
+ orr r0, r1, r0, lsl #12
+ strh r0, [ip, #4]
+ ldmia sp!, {pc}
+_02221B30:
+ ldr r2, _02221B60 ; =0x02243040
+ ldr r3, _02221B68 ; =0x0223EFDC
+ ldr r2, [r2]
+ sub r0, r0, #0xc
+ add r0, r2, r0, lsl #2
+ ldrb r3, [r3, r1]
+ ldr r0, [r0, #0x40]
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_02239994
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02221B60: .word 0x02243040
+_02221B64: .word 0x0223EFE8
+_02221B68: .word 0x0223EFDC
+
+ arm_func_start MOD13_02221B6C
+MOD13_02221B6C: ; 0x02221B6C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x1c
+ ldr r3, _02221DD8 ; =0x0223F00C
+ ldr sb, _02221DDC ; =0x0223F014
+ ldrb r5, [r3, #3]
+ ldrb r8, [r3]
+ ldrb r7, [r3, #1]
+ strb r5, [sp, #0xb]
+ mov r5, r0
+ mov r0, #3
+ mul r0, r5, r0
+ ldrb r6, [r3, #2]
+ ldrb ip, [r3, #4]
+ ldr r2, _02221DE0 ; =0x0223F004
+ strb r8, [sp, #8]
+ strb r7, [sp, #9]
+ strb r6, [sp, #0xa]
+ strb ip, [sp, #0xc]
+ ldrb r4, [sb]
+ ldrb r3, [sb, #1]
+ ldrb fp, [sb, #2]
+ ldrb sl, [sb, #3]
+ ldrb sb, [sb, #4]
+ ldrb lr, [r2]
+ ldrb r8, [r2, #1]
+ ldrb r7, [r2, #2]
+ ldrb r6, [r2, #3]
+ ldrb r2, [r2, #4]
+ strb r4, [sp, #0xd]
+ add ip, sp, #8
+ str r0, [sp, #4]
+ ldrb r0, [ip, r5]
+ strb r3, [sp, #0xe]
+ strb r2, [sp, #0x16]
+ mov r4, r1
+ ldr r3, [sp, #4]
+ strb fp, [sp, #0xf]
+ strb sl, [sp, #0x10]
+ strb sb, [sp, #0x11]
+ strb lr, [sp, #0x12]
+ strb r8, [sp, #0x13]
+ strb r7, [sp, #0x14]
+ strb r6, [sp, #0x15]
+ cmp r0, #0
+ mov r2, #0
+ ble _02221C98
+ and r1, r4, #0xff
+ add r0, ip, r5
+ ldr r6, _02221DE4 ; =0x02243040
+ ldr r7, _02221DE8 ; =0x0223F05C
+ ldr fp, _02221DEC ; =0xC1FFFCFF
+ ldr ip, _02221DF0 ; =0x000001FF
+ ldr lr, _02221DF4 ; =0xFE00FF00
+_02221C40:
+ ldr r8, [r6]
+ mov sb, r3, lsl #2
+ add r8, r8, r3, lsl #2
+ ldr r8, [r8, #0x10]
+ add r2, r2, #1
+ ldr sl, [r8]
+ and sl, sl, fp
+ str sl, [r8]
+ ldrh r8, [r7, sb]
+ ldr sb, [r6]
+ add sb, sb, r3, lsl #2
+ ldr sb, [sb, #0x10]
+ and r8, r8, ip
+ ldr sl, [sb]
+ add r3, r3, #1
+ and sl, sl, lr
+ orr sl, sl, r1
+ orr r8, sl, r8, lsl #16
+ str r8, [sb]
+ ldrb r8, [r0]
+ cmp r2, r8
+ blt _02221C40
+_02221C98:
+ cmp r5, #4
+ bge _02221CD4
+ ldr r0, _02221DE4 ; =0x02243040
+ mov r2, #2
+ ldr r3, [r0]
+ ldr r0, [sp, #4]
+ str r2, [sp]
+ ldr r1, _02221DE8 ; =0x0223F05C
+ mov r0, r0, lsl #2
+ ldrh r1, [r1, r0]
+ add r2, r3, r5, lsl #2
+ ldr r0, [r3, r5, lsl #2]
+ ldr r3, [r2, #0x48]
+ mov r2, r4
+ bl MOD13_0223A440
+_02221CD4:
+ add r3, sp, #0xd
+ ldrb r1, [r3, r5]
+ mov r0, #0
+ cmp r1, #0
+ ble _02221D58
+ and r2, r4, #0xff
+ add r1, r3, r5
+ ldr r8, _02221DE4 ; =0x02243040
+ ldr sb, _02221DF8 ; =0x0223F024
+ ldr r3, _02221DEC ; =0xC1FFFCFF
+ ldr r6, _02221DF0 ; =0x000001FF
+ ldr r7, _02221DF4 ; =0xFE00FF00
+_02221D04:
+ ldr sl, [r8]
+ mov fp, r0, lsl #2
+ add sl, sl, r0, lsl #2
+ ldr sl, [sl, #0x38]
+ ldr ip, [sl]
+ and ip, ip, r3
+ str ip, [sl]
+ ldr ip, [r8]
+ ldrh sl, [sb, fp]
+ add fp, ip, r0, lsl #2
+ ldr fp, [fp, #0x38]
+ and sl, sl, r6
+ ldr ip, [fp]
+ add r0, r0, #1
+ and ip, ip, r7
+ orr ip, ip, r2
+ orr sl, ip, sl, lsl #16
+ str sl, [fp]
+ ldrb sl, [r1]
+ cmp r0, sl
+ blt _02221D04
+_02221D58:
+ add r1, sp, #0x12
+ ldrb r0, [r1, r5]
+ mov r8, #0
+ cmp r0, #0
+ addle sp, sp, #0x1c
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ add sb, r1, r5
+ ldr sl, _02221DE4 ; =0x02243040
+ ldr r5, _02221DFC ; =0x0223F02C
+ mov r6, r8
+ mvn r7, #0
+_02221D84:
+ ldr r0, [sl]
+ mov r1, r7
+ add r0, r0, r8, lsl #2
+ ldr r0, [r0, #0x40]
+ mov r2, r6
+ mov r3, r6
+ bl MOD13_02239A1C
+ ldr r0, [sl]
+ mov r1, r8, lsl #2
+ add r0, r0, r8, lsl #2
+ ldrh r2, [r5, r1]
+ ldr r0, [r0, #0x40]
+ mov r1, r7
+ mov r3, r4
+ bl MOD13_02239888
+ ldrb r0, [sb]
+ add r8, r8, #1
+ cmp r8, r0
+ blt _02221D84
+ add sp, sp, #0x1c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02221DD8: .word 0x0223F00C
+_02221DDC: .word 0x0223F014
+_02221DE0: .word 0x0223F004
+_02221DE4: .word 0x02243040
+_02221DE8: .word 0x0223F05C
+_02221DEC: .word 0xC1FFFCFF
+_02221DF0: .word 0x000001FF
+_02221DF4: .word 0xFE00FF00
+_02221DF8: .word 0x0223F024
+_02221DFC: .word 0x0223F02C
+
+ arm_func_start MOD13_02221E00
+MOD13_02221E00: ; 0x02221E00
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0x20
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02221E20
+ mov r0, #0
+ bl MOD13_02221930
+_02221E20:
+ mov r0, #0x40
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02221E38
+ mov r0, #1
+ bl MOD13_02221930
+_02221E38:
+ mov r0, #0x10
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02221E50
+ mov r0, #2
+ bl MOD13_02221930
+_02221E50:
+ mov r0, #0x80
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02221E68
+ mov r0, #3
+ bl MOD13_02221930
+_02221E68:
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02221F28
+ ldr r0, _02221FB0 ; =0x02243040
+ ldr r0, [r0]
+ ldrsb r2, [r0, #0x63]
+ cmp r2, #0xa
+ bge _02221EB8
+ ldrb r1, [r0, #0x67]
+ cmp r1, #0
+ ldrne r1, _02221FB4 ; =0x0223F034
+ addne sp, sp, #4
+ ldrneb r1, [r1, r2]
+ strneb r1, [r0, #0x60]
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02221EB8:
+ sub r1, r2, #0xa
+ cmp r1, #2
+ bge _02221F18
+ cmp r1, #0
+ bne _02221ED8
+ ldrb r1, [r0, #0x66]
+ cmp r1, #0
+ beq _02221EF0
+_02221ED8:
+ sub r1, r2, #0xa
+ cmp r1, #1
+ bne _02221F00
+ ldrb r1, [r0, #0x68]
+ cmp r1, #0
+ bne _02221F00
+_02221EF0:
+ mov r0, #9
+ bl MOD13_0223424C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02221F00:
+ ldr r1, _02221FB8 ; =0x0223EFF0
+ sub r2, r2, #0xa
+ ldrb r1, [r1, r2]
+ add sp, sp, #4
+ strb r1, [r0, #0x60]
+ ldmia sp!, {pc}
+_02221F18:
+ ldr r1, _02221FBC ; =0x0223EFEC
+ sub r2, r2, #0xc
+ ldrb r1, [r1, r2]
+ strb r1, [r0, #0x60]
+_02221F28:
+ mov r0, #2
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02221F8C
+ ldr r0, _02221FB0 ; =0x02243040
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x66]
+ cmp r0, #0
+ bne _02221F7C
+ ldrb r0, [r1, #0x69]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _02221FB0 ; =0x02243040
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x69]
+ ldmia sp!, {pc}
+_02221F7C:
+ mov r0, #0x10
+ strb r0, [r1, #0x60]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02221F8C:
+ mov r0, #2
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _02221FB0 ; =0x02243040
+ movne r1, #0
+ ldrne r0, [r0]
+ strneb r1, [r0, #0x69]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02221FB0: .word 0x02243040
+_02221FB4: .word 0x0223F034
+_02221FB8: .word 0x0223EFF0
+_02221FBC: .word 0x0223EFEC
+
+ arm_func_start MOD13_02221FC0
+MOD13_02221FC0: ; 0x02221FC0
+ stmdb sp!, {r4, lr}
+ ldr r1, _02222008 ; =0x02243040
+ mov r4, r0
+ ldr r1, [r1]
+ ldrsb r1, [r1, #0x62]
+ cmp r4, r1
+ ldmeqia sp!, {r4, pc}
+ mov r1, #1
+ bl MOD13_02221A90
+ ldr r0, _02222008 ; =0x02243040
+ mov r1, #0
+ ldr r0, [r0]
+ ldrsb r0, [r0, #0x62]
+ bl MOD13_02221A90
+ ldr r0, _02222008 ; =0x02243040
+ ldr r0, [r0]
+ strb r4, [r0, #0x62]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02222008: .word 0x02243040
+
+ arm_func_start MOD13_0222200C
+MOD13_0222200C: ; 0x0222200C
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0xc
+ ldr r0, _022221DC ; =0x0223F75C
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _022221BC
+ ldr r6, _022221E0 ; =0x0223F05C
+ mov r7, #0
+ ldr r5, _022221E4 ; =0x0223EFF4
+ add r4, sp, #0
+_02222034:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_0223AB74
+ mov r0, r4
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _02222074
+ ldr r0, _022221E8 ; =0x02243040
+ ldr r0, [r0]
+ ldrsb r0, [r0, #0x61]
+ cmp r0, r7
+ bne _022221BC
+ mov r0, r7
+ bl MOD13_02221FC0
+ b _022221C4
+_02222074:
+ add r7, r7, #1
+ cmp r7, #0xa
+ add r6, r6, #4
+ blt _02222034
+ ldr r7, _022221EC ; =0x0223F024
+ mov r6, #0
+ ldr r5, _022221F0 ; =0x0223EFFC
+ add r4, sp, #0
+_02222094:
+ mov r0, r7
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_0223AB74
+ mov r0, r4
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _0222214C
+ ldr r1, _022221E8 ; =0x02243040
+ add r0, r6, #0xa
+ ldr r1, [r1]
+ ldrsb r1, [r1, #0x61]
+ cmp r1, r0
+ bne _022221BC
+ bl MOD13_02221FC0
+ cmp r6, #0
+ bne _022221C4
+ ldr r0, _022221E8 ; =0x02243040
+ ldr r2, [r0]
+ ldrb r1, [r2, #0x65]
+ add r1, r1, #1
+ strb r1, [r2, #0x65]
+ ldr r2, [r0]
+ ldrb r1, [r2, #0x65]
+ cmp r1, #0x28
+ addlo sp, sp, #0xc
+ ldmloia sp!, {r4, r5, r6, r7, pc}
+ ldrb r1, [r2, #0x66]
+ cmp r1, #0
+ bne _0222212C
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _022221E8 ; =0x02243040
+ mvn r1, #0
+ ldr r0, [r0]
+ add sp, sp, #0xc
+ strb r1, [r0, #0x61]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_0222212C:
+ mov r1, #0x10
+ strb r1, [r2, #0x60]
+ ldr r1, [r0]
+ add sp, sp, #0xc
+ ldrb r0, [r1, #0x65]
+ sub r0, r0, #7
+ strb r0, [r1, #0x65]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_0222214C:
+ add r6, r6, #1
+ cmp r6, #2
+ add r7, r7, #4
+ blt _02222094
+ ldr r7, _022221F4 ; =0x0223F02C
+ mov r6, #0
+ ldr r5, _022221F8 ; =0x0223F000
+ add r4, sp, #0
+_0222216C:
+ mov r0, r7
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_0223AB74
+ mov r0, r4
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _022221AC
+ ldr r1, _022221E8 ; =0x02243040
+ add r0, r6, #0xc
+ ldr r1, [r1]
+ ldrsb r1, [r1, #0x61]
+ cmp r1, r0
+ bne _022221BC
+ bl MOD13_02221FC0
+ b _022221C4
+_022221AC:
+ add r6, r6, #1
+ cmp r6, #2
+ add r7, r7, #4
+ blt _0222216C
+_022221BC:
+ mvn r0, #0
+ bl MOD13_02221FC0
+_022221C4:
+ ldr r0, _022221E8 ; =0x02243040
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x65]
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022221DC: .word 0x0223F75C
+_022221E0: .word 0x0223F05C
+_022221E4: .word 0x0223EFF4
+_022221E8: .word 0x02243040
+_022221EC: .word 0x0223F024
+_022221F0: .word 0x0223EFFC
+_022221F4: .word 0x0223F02C
+_022221F8: .word 0x0223F000
+
+ arm_func_start MOD13_022221FC
+MOD13_022221FC: ; 0x022221FC
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0xc
+ ldr r1, _022223A0 ; =0x02243040
+ ldr r0, _022223A4 ; =0x0223F75C
+ ldr r1, [r1]
+ mov r2, #0
+ strb r2, [r1, #0x60]
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ ldr r7, _022223A8 ; =0x0223F05C
+ mov r4, #0
+ ldr r6, _022223AC ; =0x0223EFF4
+ add r5, sp, #0
+_02222238:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _02222290
+ ldr r0, _022223A0 ; =0x02243040
+ ldr r2, [r0]
+ ldrsb r1, [r2, #0x61]
+ cmp r1, r4
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldr r1, _022223B0 ; =0x0223F034
+ ldrb r1, [r1, r4]
+ strb r1, [r2, #0x60]
+ ldr r0, [r0]
+ strb r4, [r0, #0x63]
+ bl MOD13_02221A04
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02222290:
+ add r4, r4, #1
+ cmp r4, #0xa
+ add r7, r7, #4
+ blt _02222238
+ ldr r7, _022223B4 ; =0x0223F024
+ mov r4, #0
+ ldr r6, _022223B8 ; =0x0223EFFC
+ add r5, sp, #0
+_022222B0:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _0222230C
+ ldr r0, _022223A0 ; =0x02243040
+ add r2, r4, #0xa
+ ldr r3, [r0]
+ ldrsb r1, [r3, #0x61]
+ cmp r1, r2
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldr r1, _022223BC ; =0x0223EFF0
+ ldrb r1, [r1, r4]
+ strb r1, [r3, #0x60]
+ ldr r0, [r0]
+ strb r2, [r0, #0x63]
+ bl MOD13_02221A04
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_0222230C:
+ add r4, r4, #1
+ cmp r4, #2
+ add r7, r7, #4
+ blt _022222B0
+ ldr r7, _022223C0 ; =0x0223F02C
+ mov r4, #0
+ ldr r6, _022223C4 ; =0x0223F000
+ add r5, sp, #0
+_0222232C:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _02222388
+ ldr r0, _022223A0 ; =0x02243040
+ add r2, r4, #0xc
+ ldr r3, [r0]
+ ldrsb r1, [r3, #0x61]
+ cmp r1, r2
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldr r1, _022223C8 ; =0x0223EFEC
+ ldrb r1, [r1, r4]
+ strb r1, [r3, #0x60]
+ ldr r0, [r0]
+ strb r2, [r0, #0x63]
+ bl MOD13_02221A04
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02222388:
+ add r4, r4, #1
+ cmp r4, #2
+ add r7, r7, #4
+ blt _0222232C
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022223A0: .word 0x02243040
+_022223A4: .word 0x0223F75C
+_022223A8: .word 0x0223F05C
+_022223AC: .word 0x0223EFF4
+_022223B0: .word 0x0223F034
+_022223B4: .word 0x0223F024
+_022223B8: .word 0x0223EFFC
+_022223BC: .word 0x0223EFF0
+_022223C0: .word 0x0223F02C
+_022223C4: .word 0x0223F000
+_022223C8: .word 0x0223EFEC
+
+ arm_func_start MOD13_022223CC
+MOD13_022223CC: ; 0x022223CC
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0xc
+ ldr r0, _02222588 ; =0x0223F75C
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, _0222258C ; =0x02243040
+ mvn r1, #0
+ ldr r0, [r0]
+ ldr r7, _02222590 ; =0x0223F05C
+ strb r1, [r0, #0x61]
+ mov r4, #0
+ ldr r6, _02222594 ; =0x0223EFF4
+ add r5, sp, #0
+_02222408:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02222468
+ ldr r0, _0222258C ; =0x02243040
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x67]
+ cmp r0, #0
+ bne _0222244C
+ mov r0, #9
+ bl MOD13_0223424C
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_0222244C:
+ mov r0, #0
+ bl MOD13_0223424C
+ ldr r0, _0222258C ; =0x02243040
+ add sp, sp, #0xc
+ ldr r0, [r0]
+ strb r4, [r0, #0x61]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02222468:
+ add r4, r4, #1
+ cmp r4, #0xa
+ add r7, r7, #4
+ blt _02222408
+ ldr r7, _02222598 ; =0x0223F024
+ mov r4, #0
+ ldr r6, _0222259C ; =0x0223EFFC
+ add r5, sp, #0
+_02222488:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02222510
+ cmp r4, #0
+ bne _022224C4
+ ldr r0, _0222258C ; =0x02243040
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x66]
+ cmp r0, #0
+ beq _022224E0
+_022224C4:
+ cmp r4, #1
+ bne _022224F0
+ ldr r0, _0222258C ; =0x02243040
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x68]
+ cmp r0, #0
+ bne _022224F0
+_022224E0:
+ mov r0, #9
+ bl MOD13_0223424C
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_022224F0:
+ mov r0, #0
+ bl MOD13_0223424C
+ ldr r0, _0222258C ; =0x02243040
+ add r1, r4, #0xa
+ ldr r0, [r0]
+ add sp, sp, #0xc
+ strb r1, [r0, #0x61]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02222510:
+ add r4, r4, #1
+ cmp r4, #2
+ add r7, r7, #4
+ blt _02222488
+ ldr r7, _022225A0 ; =0x0223F02C
+ mov r6, #0
+ ldr r5, _022225A4 ; =0x0223F000
+ add r4, sp, #0
+_02222530:
+ mov r0, r7
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_0223AB74
+ mov r0, r4
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02222570
+ mov r0, #0
+ bl MOD13_0223424C
+ ldr r0, _0222258C ; =0x02243040
+ add r1, r6, #0xc
+ ldr r0, [r0]
+ add sp, sp, #0xc
+ strb r1, [r0, #0x61]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02222570:
+ add r6, r6, #1
+ cmp r6, #2
+ add r7, r7, #4
+ blt _02222530
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02222588: .word 0x0223F75C
+_0222258C: .word 0x02243040
+_02222590: .word 0x0223F05C
+_02222594: .word 0x0223EFF4
+_02222598: .word 0x0223F024
+_0222259C: .word 0x0223EFFC
+_022225A0: .word 0x0223F02C
+_022225A4: .word 0x0223F000
+
+ arm_func_start MOD13_022225A8
+MOD13_022225A8: ; 0x022225A8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022223CC
+ bl MOD13_022221FC
+ bl MOD13_0222200C
+ bl MOD13_02221E00
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02222640 ; =0x02243040
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #0x40]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r0, _02222644 ; =0x0223F02C
+ ldr r1, [sp, #4]
+ ldrh r0, [r0, #2]
+ sub r1, r1, #0xc
+ str r1, [sp, #4]
+ cmp r1, r0
+ ble _0222261C
+ mov r0, #4
+ bl MOD13_02221B6C
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222261C:
+ mov r1, r0
+ mov r0, #4
+ bl MOD13_02221B6C
+ bl MOD13_02221A04
+ ldr r1, _02222648 ; =MOD13_022225A8
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02222640: .word 0x02243040
+_02222644: .word 0x0223F02C
+_02222648: .word MOD13_022225A8
+
+ arm_func_start MOD13_0222264C
+MOD13_0222264C: ; 0x0222264C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _022226D8 ; =0x02243040
+ ldr r2, _022226DC ; =0x0223F05C
+ ldr r3, [r1]
+ ldr r1, _022226E0 ; =0x01FF0000
+ ldr ip, [r3, #0x34]
+ ldrh r2, [r2, #0x26]
+ ldr r3, [ip]
+ mov r4, r0
+ and r0, r3, r1
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [ip]
+ and r0, r0, #0xff
+ sub r1, r0, #0xc
+ str r0, [sp, #4]
+ str r1, [sp, #4]
+ cmp r1, r2
+ ble _022226AC
+ mov r0, #3
+ bl MOD13_02221B6C
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022226AC:
+ mov r1, r2
+ mov r0, #3
+ bl MOD13_02221B6C
+ mov r0, #4
+ mov r1, #0xc0
+ bl MOD13_02221B6C
+ ldr r1, _022226E4 ; =0x022225C8
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022226D8: .word 0x02243040
+_022226DC: .word 0x0223F05C
+_022226E0: .word 0x01FF0000
+_022226E4: .word 0x022225C8
+
+ arm_func_start MOD13_022226E8
+MOD13_022226E8: ; 0x022226E8
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02222774 ; =0x02243040
+ ldr r2, _02222778 ; =0x0223F05C
+ ldr r3, [r1]
+ ldr r1, _0222277C ; =0x01FF0000
+ ldr ip, [r3, #0x28]
+ ldrh r2, [r2, #0x1a]
+ ldr r3, [ip]
+ mov r4, r0
+ and r0, r3, r1
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [ip]
+ and r0, r0, #0xff
+ sub r1, r0, #0xc
+ str r0, [sp, #4]
+ str r1, [sp, #4]
+ cmp r1, r2
+ ble _02222748
+ mov r0, #2
+ bl MOD13_02221B6C
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02222748:
+ mov r1, r2
+ mov r0, #2
+ bl MOD13_02221B6C
+ mov r0, #3
+ mov r1, #0xc0
+ bl MOD13_02221B6C
+ ldr r1, _02222780 ; =MOD13_0222264C
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02222774: .word 0x02243040
+_02222778: .word 0x0223F05C
+_0222277C: .word 0x01FF0000
+_02222780: .word MOD13_0222264C
+
+ arm_func_start MOD13_02222784
+MOD13_02222784: ; 0x02222784
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02222810 ; =0x02243040
+ ldr r2, _02222814 ; =0x0223F05C
+ ldr r3, [r1]
+ ldr r1, _02222818 ; =0x01FF0000
+ ldr ip, [r3, #0x1c]
+ ldrh r2, [r2, #0xe]
+ ldr r3, [ip]
+ mov r4, r0
+ and r0, r3, r1
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [ip]
+ and r0, r0, #0xff
+ sub r1, r0, #0xc
+ str r0, [sp, #4]
+ str r1, [sp, #4]
+ cmp r1, r2
+ ble _022227E4
+ mov r0, #1
+ bl MOD13_02221B6C
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022227E4:
+ mov r1, r2
+ mov r0, #1
+ bl MOD13_02221B6C
+ mov r0, #2
+ mov r1, #0xc0
+ bl MOD13_02221B6C
+ ldr r1, _0222281C ; =MOD13_022226E8
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02222810: .word 0x02243040
+_02222814: .word 0x0223F05C
+_02222818: .word 0x01FF0000
+_0222281C: .word MOD13_022226E8
+
+ arm_func_start MOD13_02222820
+MOD13_02222820: ; 0x02222820
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _022228AC ; =0x02243040
+ ldr r2, _022228B0 ; =0x0223F05C
+ ldr r3, [r1]
+ ldr r1, _022228B4 ; =0x01FF0000
+ ldr ip, [r3, #0x10]
+ ldrh r2, [r2, #2]
+ ldr r3, [ip]
+ mov r4, r0
+ and r0, r3, r1
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [ip]
+ and r0, r0, #0xff
+ sub r1, r0, #0xc
+ str r0, [sp, #4]
+ str r1, [sp, #4]
+ cmp r1, r2
+ ble _02222880
+ mov r0, #0
+ bl MOD13_02221B6C
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02222880:
+ mov r1, r2
+ mov r0, #0
+ bl MOD13_02221B6C
+ mov r0, #1
+ mov r1, #0xc0
+ bl MOD13_02221B6C
+ ldr r1, _022228B8 ; =MOD13_02222784
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022228AC: .word 0x02243040
+_022228B0: .word 0x0223F05C
+_022228B4: .word 0x01FF0000
+_022228B8: .word MOD13_02222784
+
+ arm_func_start MOD13_022228BC
+MOD13_022228BC: ; 0x022228BC
+ ldr r0, _022228D4 ; =0x02243040
+ ldr r0, [r0]
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_022228D4: .word 0x02243040
+
+ arm_func_start MOD13_022228D8
+MOD13_022228D8: ; 0x022228D8
+ ldr r1, _022228E8 ; =0x02243040
+ ldr r1, [r1]
+ strb r0, [r1, #0x68]
+ bx lr
+ .align 2, 0
+_022228E8: .word 0x02243040
+
+ arm_func_start MOD13_022228EC
+MOD13_022228EC: ; 0x022228EC
+ ldr r1, _022228FC ; =0x02243040
+ ldr r1, [r1]
+ strb r0, [r1, #0x67]
+ bx lr
+ .align 2, 0
+_022228FC: .word 0x02243040
+
+ arm_func_start MOD13_02222900
+MOD13_02222900: ; 0x02222900
+ ldr r1, _02222910 ; =0x02243040
+ ldr r1, [r1]
+ strb r0, [r1, #0x66]
+ bx lr
+ .align 2, 0
+_02222910: .word 0x02243040
+
+ arm_func_start MOD13_02222914
+MOD13_02222914: ; 0x02222914
+ ldr r0, _02222924 ; =0x02243040
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x60]
+ bx lr
+ .align 2, 0
+_02222924: .word 0x02243040
+
+ arm_func_start MOD13_02222928
+MOD13_02222928: ; 0x02222928
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222295C ; =0x02243040
+ ldr r0, [r0]
+ ldr r0, [r0, #0x58]
+ bl MOD13_02239AE8
+ ldr r0, _0222295C ; =0x02243040
+ ldr r1, _02222960 ; =MOD13_022218B0
+ ldr r0, [r0]
+ ldr r0, [r0, #0x5c]
+ bl MOD13_0223C130
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222295C: .word 0x02243040
+_02222960: .word MOD13_022218B0
+
+ arm_func_start MOD13_02222964
+MOD13_02222964: ; 0x02222964
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x3c
+ ldr r1, _02222CCC ; =0x0223F01C
+ ldr r0, _02222CD0 ; =0x0223EFF4
+ ldrh r2, [r1, #4]
+ ldrh r4, [r1, #6]
+ ldrh r6, [r1]
+ ldrh r5, [r1, #2]
+ ldrh r3, [r0]
+ strh r2, [sp, #0x30]
+ ldrh r2, [r0, #2]
+ strh r4, [sp, #0x32]
+ mov r0, #0x6c
+ mov r1, #4
+ strh r6, [sp, #0x2c]
+ strh r5, [sp, #0x2e]
+ strh r3, [sp, #0x30]
+ strh r2, [sp, #0x32]
+ bl MOD13_0223AFE0
+ ldr r8, _02222CD4 ; =0x02243040
+ mov r1, #0x1f
+ str r0, [r8]
+ strb r1, [r0, #0x60]
+ ldr r0, [r8]
+ mov r6, #0
+ strb r6, [r0, #0x63]
+ ldr r0, [r8]
+ mov r1, #1
+ strb r1, [r0, #0x66]
+ ldr r0, [r8]
+ strb r1, [r0, #0x67]
+ ldr r0, [r8]
+ strb r1, [r0, #0x68]
+ mov r5, r6
+ mov r4, #0x36
+ ldr r7, _02222CD8 ; =0xC1FFFCFF
+_022229F4:
+ mov r0, r5
+ mov r1, r4
+ bl MOD13_02239E54
+ ldr r1, [r8]
+ add r1, r1, r6, lsl #2
+ str r0, [r1, #0x10]
+ ldr r0, [r8]
+ add r0, r0, r6, lsl #2
+ ldr r1, [r0, #0x10]
+ ldr r0, [r1]
+ and r0, r0, r7
+ orr r0, r0, #0x200
+ str r0, [r1]
+ ldr r0, [r8]
+ add r0, r0, r6, lsl #2
+ ldr r1, [r0, #0x10]
+ add r6, r6, #1
+ ldrh r0, [r1, #4]
+ cmp r6, #0xa
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+ blt _022229F4
+ ldr r6, _02222CDC ; =0x0223EFE0
+ mov r5, #0
+ ldr r8, _02222CD4 ; =0x02243040
+ mov r4, r5
+ ldr r7, _02222CD8 ; =0xC1FFFCFF
+_02222A64:
+ ldrb r1, [r6]
+ mov r0, r4
+ bl MOD13_02239E54
+ ldr r1, [r8]
+ add r6, r6, #1
+ add r1, r1, r5, lsl #2
+ str r0, [r1, #0x38]
+ ldr r0, [r8]
+ add r0, r0, r5, lsl #2
+ ldr r1, [r0, #0x38]
+ ldr r0, [r1]
+ and r0, r0, r7
+ orr r0, r0, #0x200
+ str r0, [r1]
+ ldr r0, [r8]
+ add r0, r0, r5, lsl #2
+ ldr r1, [r0, #0x38]
+ add r5, r5, #1
+ ldrh r0, [r1, #4]
+ cmp r5, #2
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+ blt _02222A64
+ ldr sl, _02222CE0 ; =0x0223EFE4
+ mov sb, #0
+ ldr r4, _02222CD4 ; =0x02243040
+ mov fp, sb
+ str sb, [sp, #0x1c]
+ mov r8, #1
+ mvn r7, #0
+ mov r6, #0x200
+ mov r5, #3
+_02222AE8:
+ ldrb r1, [sl]
+ mov r0, fp
+ mov r2, r8
+ bl MOD13_02239E0C
+ ldr r2, [r4]
+ ldr r3, [sp, #0x1c]
+ add r2, r2, sb, lsl #2
+ str r0, [r2, #0x40]
+ ldr r0, [r4]
+ mov r1, r7
+ add r0, r0, sb, lsl #2
+ ldr r0, [r0, #0x40]
+ mov r2, r6
+ bl MOD13_02239A1C
+ ldr r0, [r4]
+ mov r1, r7
+ add r0, r0, sb, lsl #2
+ ldr r0, [r0, #0x40]
+ mov r2, r5
+ bl MOD13_02239814
+ add sb, sb, #1
+ add sl, sl, #1
+ cmp sb, #2
+ blt _02222AE8
+ ldr r1, _02222CE4 ; =0x0223EFF8
+ mov r8, #0
+ ldrh r0, [r1, #2]
+ ldr r7, _02222CE8 ; =0x0223F040
+ ldr r4, _02222CD4 ; =0x02243040
+ str r0, [sp, #0x14]
+ ldrh r0, [r1]
+ str r8, [sp, #0x10]
+ strh r8, [sp, #0x3a]
+ str r0, [sp, #0x18]
+ add fp, sp, #0x38
+ str r8, [sp, #0x28]
+ str r8, [sp, #0x20]
+ str r8, [sp, #0x24]
+ mov r6, #2
+ mov r5, #0x480
+_02222B88:
+ add r0, sp, #0x34
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ ldr r2, [sp, #0x14]
+ mov r1, r0
+ str r1, [sp, #4]
+ ldr r1, [sp, #0x18]
+ mov r3, r0
+ bl MOD13_0223A9A4
+ ldr r1, [r4]
+ ldr sl, [sp, #0x10]
+ str r0, [r1, r8, lsl #2]
+ ldr r0, [sp, #0x24]
+ strh r0, [sp, #0x2c]
+ mov sb, r0
+_02222BC4:
+ mov r0, sl, lsl #1
+ ldrh r1, [r7, r0]
+ ldrh r0, [sp, #0x32]
+ strh r1, [sp, #0x38]
+ str r0, [sp]
+ str r6, [sp, #4]
+ str r5, [sp, #8]
+ str fp, [sp, #0xc]
+ ldr r0, [r4]
+ ldrh r1, [sp, #0x2c]
+ ldr r0, [r0, r8, lsl #2]
+ ldrh r2, [sp, #0x2e]
+ ldrh r3, [sp, #0x30]
+ bl MOD13_0223A4F0
+ add sb, sb, #1
+ cmp sb, #3
+ add sl, sl, #1
+ ldrh r0, [sp, #0x2c]
+ add r0, r0, #0x20
+ strh r0, [sp, #0x2c]
+ blt _02222BC4
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0x34]
+ mov r2, r0
+ bl MOD13_02239B74
+ ldr r1, [sp, #0x10]
+ ldr r2, [r4]
+ add r1, r1, #3
+ str r1, [sp, #0x10]
+ add r1, r2, r8, lsl #2
+ add r8, r8, #1
+ str r0, [r1, #0x48]
+ cmp r8, #4
+ blt _02222B88
+ mov r0, #0
+ mov r1, #0x44
+ mov r2, #1
+ bl MOD13_02239E0C
+ ldr r3, _02222CD4 ; =0x02243040
+ mvn r1, #0
+ ldr r4, [r3]
+ mov r2, #0x200
+ str r0, [r4, #0x58]
+ ldr r0, [r3]
+ mov r3, #0
+ ldr r0, [r0, #0x58]
+ bl MOD13_02239A1C
+ ldr r0, _02222CD4 ; =0x02243040
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #2
+ ldr r0, [r0, #0x58]
+ bl MOD13_02239814
+ mov r0, #0
+ ldr r1, _02222CEC ; =MOD13_02222820
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r2, _02222CD4 ; =0x02243040
+ mov r1, #0xc0
+ ldr r2, [r2]
+ str r0, [r2, #0x5c]
+ mov r0, #0
+ bl MOD13_02221B6C
+ add sp, sp, #0x3c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02222CCC: .word 0x0223F01C
+_02222CD0: .word 0x0223EFF4
+_02222CD4: .word 0x02243040
+_02222CD8: .word 0xC1FFFCFF
+_02222CDC: .word 0x0223EFE0
+_02222CE0: .word 0x0223EFE4
+_02222CE4: .word 0x0223EFF8
+_02222CE8: .word 0x0223F040
+_02222CEC: .word MOD13_02222820
+
+ arm_func_start MOD13_02222CF0
+MOD13_02222CF0: ; 0x02222CF0
+ ldr ip, _02222CF8 ; =MOD13_0223AF48
+ bx ip
+ .align 2, 0
+_02222CF8: .word MOD13_0223AF48
+
+ arm_func_start MOD13_02222CFC
+MOD13_02222CFC: ; 0x02222CFC
+ ldr ip, _02222D08 ; =MOD13_0223B004
+ mov r1, #0x20
+ bx ip
+ .align 2, 0
+_02222D08: .word MOD13_0223B004
+
+ arm_func_start MOD13_02222D0C
+MOD13_02222D0C: ; 0x02222D0C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02222D74 ; =0x02243048
+ ldr r0, [r0]
+ blx MOD13_02219798
+ cmp r0, #0
+ ldreq r1, _02222D78 ; =0x02243044
+ moveq r0, #1
+ streqb r0, [r1]
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _02222D74 ; =0x02243048
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x116]
+ cmp r0, #1
+ beq _02222D5C
+ add r0, r0, #0xfd
+ and r0, r0, #0xff
+ cmp r0, #2
+ bhi _02222D68
+_02222D5C:
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {pc}
+_02222D68:
+ mov r0, #2
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02222D74: .word 0x02243048
+_02222D78: .word 0x02243044
+
+ arm_func_start MOD13_02222D7C
+MOD13_02222D7C: ; 0x02222D7C
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ blx MOD13_02219C9C
+ cmp r4, #0
+ beq _02222DC0
+ ldr r0, _02222DCC ; =0x02243048
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x116]
+ cmp r0, #0
+ bne _02222DC0
+ ldr r0, _02222DD0 ; =0x02243044
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02222DC0
+ ldr r0, _02222DD4 ; =0x00000117
+ add r0, r1, r0
+ bl MOD13_0223390C
+_02222DC0:
+ ldr r0, _02222DCC ; =0x02243048
+ bl MOD13_0223AF90
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02222DCC: .word 0x02243048
+_02222DD0: .word 0x02243044
+_02222DD4: .word 0x00000117
+
+ arm_func_start MOD13_02222DD8
+MOD13_02222DD8: ; 0x02222DD8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x104
+ mov r0, #0x26c
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r1, _02222ED4 ; =0x02243048
+ ldr r3, _02222ED8 ; =0x02243044
+ str r0, [r1]
+ mov r0, #0
+ add r1, sp, #0
+ mov r2, #0x104
+ strb r0, [r3]
+ bl MIi_CpuClear16
+ mov r3, #0x50
+ mov r2, #0xc
+ ldr r0, _02222EDC ; =0x0223F0F4
+ add r1, sp, #4
+ strb r3, [sp]
+ strh r2, [sp, #2]
+ bl MI_CpuCopy8
+ ldr r0, _02222ED4 ; =0x02243048
+ mov r2, #3
+ ldr r1, [r0]
+ add ip, sp, #0
+ strh r2, [r1]
+ ldr lr, [r0]
+ mov r2, #0x41
+ add r3, lr, #2
+_02222E48:
+ ldrh r1, [ip], #2
+ ldrh r0, [ip], #2
+ subs r2, r2, #1
+ strh r1, [r3], #2
+ strh r0, [r3], #2
+ bne _02222E48
+ ldr r1, _02222ED4 ; =0x02243048
+ add r0, lr, #0x100
+ mov r3, #1
+ strh r3, [r0, #6]
+ ldr r0, [r1]
+ mvn r2, #0
+ add r0, r0, #0x100
+ strh r2, [r0, #8]
+ ldr r0, [r1]
+ add r0, r0, #0x100
+ strh r3, [r0, #0xa]
+ ldr r0, [r1]
+ add r0, r0, #0x100
+ strh r2, [r0, #0xc]
+ ldr r0, [r1]
+ add r0, r0, #0x100
+ strh r2, [r0, #0xe]
+ ldr r0, [r1]
+ add r0, r0, #0x110
+ bl OS_GetMacAddress
+ ldr r0, _02222EE0 ; =MOD13_02222CFC
+ ldr r1, _02222EE4 ; =MOD13_02222CF0
+ blx MOD13_02219D58
+ cmp r0, #0
+ addeq sp, sp, #0x104
+ ldmeqia sp!, {pc}
+ bl OS_Terminate
+ add sp, sp, #0x104
+ ldmia sp!, {pc}
+ .align 2, 0
+_02222ED4: .word 0x02243048
+_02222ED8: .word 0x02243044
+_02222EDC: .word 0x0223F0F4
+_02222EE0: .word MOD13_02222CFC
+_02222EE4: .word MOD13_02222CF0
+
+ arm_func_start MOD13_02222EE8
+MOD13_02222EE8: ; 0x02222EE8
+ ldr r0, _02222EF8 ; =0x02243050
+ mov r1, #1
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_02222EF8: .word 0x02243050
+
+ arm_func_start MOD13_02222EFC
+MOD13_02222EFC: ; 0x02222EFC
+ ldr r1, _02222F18 ; =0x02243058
+ ldr r1, [r1]
+ mov r1, r1, lsr #4
+ ands r0, r1, r0
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_02222F18: .word 0x02243058
+
+ arm_func_start MOD13_02222F1C
+MOD13_02222F1C: ; 0x02222F1C
+ ldr r0, _02222F30 ; =0x02243058
+ ldr r0, [r0]
+ mov r0, r0, lsl #0x1c
+ mov r0, r0, lsr #0x1c
+ bx lr
+ .align 2, 0
+_02222F30: .word 0x02243058
+
+ arm_func_start MOD13_02222F34
+MOD13_02222F34: ; 0x02222F34
+ ldr r0, _02222F40 ; =0x0224304C
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_02222F40: .word 0x0224304C
+
+ arm_func_start MOD13_02222F44
+MOD13_02222F44: ; 0x02222F44
+ cmp r0, #0
+ ldrne r2, _02222F68 ; =0x02243060
+ ldrne r2, [r2, #8]
+ strne r2, [r0]
+ cmp r1, #0
+ ldrne r0, _02222F68 ; =0x02243060
+ ldrne r0, [r0, #0xc]
+ strne r0, [r1]
+ bx lr
+ .align 2, 0
+_02222F68: .word 0x02243060
+
+ arm_func_start MOD13_02222F6C
+MOD13_02222F6C: ; 0x02222F6C
+ ldr r2, _02222F7C ; =0x02243060
+ str r0, [r2, #8]
+ str r1, [r2, #0xc]
+ bx lr
+ .align 2, 0
+_02222F7C: .word 0x02243060
+
+ arm_func_start MOD13_02222F80
+MOD13_02222F80: ; 0x02222F80
+ cmp r0, #0
+ ldrne r2, _02222FA4 ; =0x02243060
+ ldrne r2, [r2]
+ strne r2, [r0]
+ cmp r1, #0
+ ldrne r0, _02222FA4 ; =0x02243060
+ ldrne r0, [r0, #4]
+ strne r0, [r1]
+ bx lr
+ .align 2, 0
+_02222FA4: .word 0x02243060
+
+ arm_func_start MOD13_02222FA8
+MOD13_02222FA8: ; 0x02222FA8
+ ldr r2, _02222FB8 ; =0x02243060
+ str r0, [r2]
+ str r1, [r2, #4]
+ bx lr
+ .align 2, 0
+_02222FB8: .word 0x02243060
+
+ arm_func_start MOD13_02222FBC
+MOD13_02222FBC: ; 0x02222FBC
+ ldr r1, _02222FC8 ; =0x0224305C
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_02222FC8: .word 0x0224305C
+
+ arm_func_start MOD13_02222FCC
+MOD13_02222FCC: ; 0x02222FCC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl GX_DispOff
+ ldr r1, _02223020 ; =0x04001000
+ ldr r0, [r1]
+ bic r0, r0, #0x10000
+ str r0, [r1]
+ bl MOD13_0223BDD0
+ bl MOD13_0223B6C0
+ bl MOD13_0223B7A0
+ bl MOD13_02234270
+ bl MOD13_02239CE8
+ bl MOD13_0223BA04
+ bl MOD13_0223AA80
+ bl MOD13_0223A3AC
+ bl MOD13_022395A0
+ bl MOD13_0223C2A8
+ bl MOD13_0223B050
+ bl MOD13_0223BEA8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223020: .word 0x04001000
+
+ arm_func_start MOD13_02223024
+MOD13_02223024: ; 0x02223024
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl GX_VBlankIntr
+ mov r0, #1
+ bl GX_SetBankForBG
+ mov r0, #2
+ bl GX_SetBankForOBJ
+ mov r1, #0
+ mov r2, r1
+ mov r0, #1
+ bl GX_SetGraphicsMode
+ mov r3, #0x4000000
+ ldr r1, [r3]
+ ldr r0, _022232DC ; =0x0400006C
+ bic r1, r1, #0x1f00
+ str r1, [r3]
+ ldr r2, [r3]
+ mov r1, #0
+ bic r2, r2, #0xe000
+ str r2, [r3]
+ bl GXx_SetMasterBrightness_
+ mov r3, #0x4000000
+ ldr r2, [r3]
+ ldr r0, _022232E0 ; =0xFFCFFFEF
+ ldr r1, _022232E4 ; =0x00200010
+ and r0, r2, r0
+ orr r0, r0, r1
+ str r0, [r3]
+ ldr r3, _022232E8 ; =0x04000008
+ ldr r2, _022232EC ; =0x0400000A
+ ldrh r0, [r3]
+ ldr r1, _022232F0 ; =0x0400000C
+ ldr r5, _022232F4 ; =0x0400000E
+ bic r0, r0, #0x40
+ strh r0, [r3]
+ ldrh r0, [r2]
+ mov ip, #0
+ ldr r4, _022232F8 ; =0x04000010
+ bic r0, r0, #0x40
+ strh r0, [r2]
+ ldrh r0, [r1]
+ ldr r3, _022232FC ; =0x04000014
+ ldr r2, _02223300 ; =0x04000018
+ bic r0, r0, #0x40
+ strh r0, [r1]
+ ldrh lr, [r5]
+ ldr r1, _02223304 ; =0x0400001C
+ ldr r0, _02223308 ; =0x04000050
+ bic lr, lr, #0x40
+ strh lr, [r5]
+ str ip, [r4]
+ str ip, [r3]
+ str ip, [r2]
+ str ip, [r1]
+ mov r1, #0x3f
+ mov r2, #0x10
+ bl G2x_SetBlendBrightness_
+ mov r0, #0x80
+ bl GX_SetBankForSubBG
+ mov r0, #0x100
+ bl GX_SetBankForSubOBJ
+ mov r0, #0
+ bl GXS_SetGraphicsMode
+ ldr r1, _0222330C ; =0x04001000
+ ldr r0, [r1]
+ bic r0, r0, #0x1f00
+ str r0, [r1]
+ ldr r0, [r1]
+ bic r0, r0, #0xe000
+ str r0, [r1]
+ ldr r0, _02223310 ; =0x0400106C
+ mov r1, #0
+ bl GXx_SetMasterBrightness_
+ ldr r3, _0222330C ; =0x04001000
+ ldr r0, _022232E0 ; =0xFFCFFFEF
+ ldr r1, [r3]
+ ldr r2, _02223314 ; =0x04001008
+ and r0, r1, r0
+ orr r0, r0, #0x10
+ str r0, [r3]
+ ldrh r0, [r2]
+ ldr r1, _02223318 ; =0x0400100A
+ ldr r3, _0222331C ; =0x0400100C
+ bic r0, r0, #0x40
+ strh r0, [r2]
+ ldrh r0, [r1]
+ ldr r4, _02223320 ; =0x0400100E
+ ldr r2, _02223324 ; =0x04001010
+ bic r0, r0, #0x40
+ strh r0, [r1]
+ ldrh r0, [r3]
+ mov ip, #0
+ ldr r1, _02223328 ; =0x04001014
+ bic r0, r0, #0x40
+ strh r0, [r3]
+ ldrh lr, [r4]
+ ldr r0, _0222332C ; =0x04001018
+ ldr r3, _02223330 ; =0x0400101C
+ bic lr, lr, #0x40
+ strh lr, [r4]
+ str ip, [r2]
+ str ip, [r1]
+ str ip, [r0]
+ ldr r0, _02223334 ; =0x04001050
+ mov r1, #0x3f
+ mov r2, #0x10
+ str ip, [r3]
+ bl G2x_SetBlendBrightness_
+ ldr r3, _022232E8 ; =0x04000008
+ ldr r2, _022232EC ; =0x0400000A
+ ldrh r1, [r3]
+ ldr r0, _02223338 ; =0x00000D08
+ ldr lr, _022232F0 ; =0x0400000C
+ and r1, r1, #0x43
+ orr r1, r1, #0xc00
+ strh r1, [r3]
+ ldrh r1, [r2]
+ mov ip, r5
+ ldr r3, _02223314 ; =0x04001008
+ and r1, r1, #0x43
+ orr r0, r1, r0
+ strh r0, [r2]
+ ldrh r0, [lr]
+ ldr r2, _02223318 ; =0x0400100A
+ ldr r1, _0222331C ; =0x0400100C
+ and r0, r0, #0x43
+ orr r0, r0, #0xe10
+ strh r0, [lr]
+ ldrh r0, [ip]
+ and r0, r0, #0x43
+ orr r0, r0, #0xf10
+ strh r0, [ip]
+ ldrh r0, [r3]
+ and r0, r0, #0x43
+ orr r0, r0, #0xc00
+ strh r0, [r3]
+ ldrh r0, [r2]
+ and r0, r0, #0x43
+ orr r0, r0, #0xd00
+ strh r0, [r2]
+ ldrh r0, [r1]
+ and r0, r0, #0x43
+ orr r0, r0, #0xe00
+ strh r0, [r1]
+ mov r3, r4
+ ldrh r0, [r3]
+ mov r2, #0x4000000
+ ldr r1, _0222333C ; =0x04000304
+ and r0, r0, #0x43
+ orr r0, r0, #0xf00
+ strh r0, [r3]
+ ldr r0, [r2]
+ bic r0, r0, #0x38000000
+ str r0, [r2]
+ ldr r0, [r2]
+ bic r0, r0, #0x7000000
+ str r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #0x8000
+ strh r0, [r1]
+ bl MOD13_0223AAD0
+ bl MOD13_0223BA84
+ bl MOD13_0223BCE4
+ bl MOD13_02239D38
+ bl GX_DispOn
+ ldr r2, _0222330C ; =0x04001000
+ mov r0, #1
+ ldr r1, [r2]
+ orr r1, r1, #0x10000
+ str r1, [r2]
+ bl GX_VBlankIntr
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_022232DC: .word 0x0400006C
+_022232E0: .word 0xFFCFFFEF
+_022232E4: .word 0x00200010
+_022232E8: .word 0x04000008
+_022232EC: .word 0x0400000A
+_022232F0: .word 0x0400000C
+_022232F4: .word 0x0400000E
+_022232F8: .word 0x04000010
+_022232FC: .word 0x04000014
+_02223300: .word 0x04000018
+_02223304: .word 0x0400001C
+_02223308: .word 0x04000050
+_0222330C: .word 0x04001000
+_02223310: .word 0x0400106C
+_02223314: .word 0x04001008
+_02223318: .word 0x0400100A
+_0222331C: .word 0x0400100C
+_02223320: .word 0x0400100E
+_02223324: .word 0x04001010
+_02223328: .word 0x04001014
+_0222332C: .word 0x04001018
+_02223330: .word 0x0400101C
+_02223334: .word 0x04001050
+_02223338: .word 0x00000D08
+_0222333C: .word 0x04000304
+
+ arm_func_start MOD13_02223340
+MOD13_02223340: ; 0x02223340
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _02223404 ; =0x04000208
+ mov r0, #0
+ ldrh r1, [r2]
+ strh r0, [r2]
+ bl GX_DispOff
+ ldr r1, _02223408 ; =0x04001000
+ ldr r0, [r1]
+ bic r0, r0, #0x10000
+ str r0, [r1]
+ bl OS_IsTickAvailable
+ cmp r0, #0
+ bne _0222337C
+ bl OS_Terminate
+_0222337C:
+ bl OS_IsAlarmAvailable
+ cmp r0, #0
+ bne _0222338C
+ bl OS_Terminate
+_0222338C:
+ mov r0, #0
+ bl GX_VBlankIntr
+ bl FX_Init
+ mvn r0, #0
+ bl FS_Init
+ bl TP_Init
+ bl RTC_Init
+ bl GX_DispOff
+ ldr r1, _02223408 ; =0x04001000
+ ldr r0, [r1]
+ bic r0, r0, #0x10000
+ str r0, [r1]
+ bl MOD13_0223BFE4
+ ldr r0, _0222340C ; =0x02243054
+ ldr r0, [r0]
+ bl MOD13_0223B07C
+ bl MOD13_0223B7E8
+ bl MOD13_0223C2F4
+ bl MOD13_0223962C
+ bl MOD13_0223B6F4
+ bl MOD13_0223A3C0
+ mov r0, #0x700
+ mov r1, #0x20
+ bl MOD13_0223B004
+ str r0, [sp]
+ bl FUN_02096190
+ add r0, sp, #0
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223404: .word 0x04000208
+_02223408: .word 0x04001000
+_0222340C: .word 0x02243054
+
+ arm_func_start MOD13_02223410
+MOD13_02223410: ; 0x02223410
+ ldr r3, _0222348C ; =0x0224304C
+ ldr r2, _02223490 ; =0x02243058
+ strb r0, [r3]
+ str r1, [r2]
+ cmp r0, #0
+ blt _02223430
+ cmp r0, #5
+ ble _02223438
+_02223430:
+ mov r0, #0
+ bx lr
+_02223438:
+ mov r2, r1, lsl #0x1c
+ mov r2, r2, lsr #0x1c
+ cmp r2, #1
+ movhi r0, #0
+ bxhi lr
+ cmp r0, #0
+ beq _02223464
+ mov r1, r1, lsr #4
+ ands r1, r1, #1
+ movne r0, #0
+ bxne lr
+_02223464:
+ cmp r0, #0
+ bne _02223484
+ ldr r0, _02223490 ; =0x02243058
+ ldr r0, [r0]
+ mov r0, r0, lsr #4
+ ands r0, r0, #1
+ moveq r0, #0
+ bxeq lr
+_02223484:
+ mov r0, #1
+ bx lr
+ .align 2, 0
+_0222348C: .word 0x0224304C
+_02223490: .word 0x02243058
+
+ arm_func_start MOD13_02223494
+MOD13_02223494: ; 0x02223494
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r3, _0222351C ; =0x02243054
+ str r0, [r3]
+ mov r0, r1
+ mov r1, r2
+ bl MOD13_02223410
+ cmp r0, #0
+ mvneq r0, #0
+ ldmeqia sp!, {r4, r5, r6, pc}
+ ldr r0, _02223520 ; =0x02243050
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_02223340
+ bl MOD13_02223024
+ bl MOD13_022342A0
+ ldr r0, _02223524 ; =MOD13_02223E10
+ bl MOD13_02222FBC
+ ldr r5, _02223528 ; =0x0224305C
+ ldr r4, _02223520 ; =0x02243050
+ mov r6, #0
+_022234E4:
+ bl MOD13_0223B6A8
+ ldr r0, [r5]
+ blx r0
+ mov r0, r6
+ bl MOD13_0223C1E0
+ bl MOD13_0223B0BC
+ bl MOD13_0223BDE0
+ bl OS_WaitVBlankIntr
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _022234E4
+ bl MOD13_02222FCC
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0222351C: .word 0x02243054
+_02223520: .word 0x02243050
+_02223524: .word MOD13_02223E10
+_02223528: .word 0x0224305C
+
+ arm_func_start MOD13_0222352C
+MOD13_0222352C: ; 0x0222352C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr ip, _02223564 ; =0x0000FFFF
+ ldr lr, [r0]
+ and r1, r1, ip
+ ldr ip, [r0, #4]
+ ldr r0, [lr, r1, lsl #2]
+ cmp r2, #0
+ add r0, ip, r0
+ addge r3, r3, #0x30
+ movge r1, r2, lsl #1
+ strgeh r3, [r0, r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223564: .word 0x0000FFFF
+
+ arm_func_start MOD13_02223568
+MOD13_02223568: ; 0x02223568
+ ldr r2, _02223584 ; =0x0000FFFF
+ ldr r3, [r0]
+ and r1, r1, r2
+ ldr r2, [r0, #4]
+ ldr r0, [r3, r1, lsl #2]
+ add r0, r2, r0
+ bx lr
+ .align 2, 0
+_02223584: .word 0x0000FFFF
+
+ arm_func_start MOD13_02223588
+MOD13_02223588: ; 0x02223588
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldr r0, [r4, #8]
+ bl MOD13_0223939C
+ ldr r0, _022235B0 ; =0x02243070
+ mov r1, r4
+ ldr r0, [r0]
+ ldr r0, [r0, #0x60]
+ bl MOD13_02239FD0
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022235B0: .word 0x02243070
+
+ arm_func_start MOD13_022235B4
+MOD13_022235B4: ; 0x022235B4
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r1, _02223614 ; =0x02243070
+ mov r5, r0
+ ldr r0, [r1]
+ ldr r0, [r0, #0x60]
+ bl MOD13_02239F78
+ mov r4, r0
+ add r1, sp, #0
+ mov r0, r5
+ mov r2, #4
+ bl MOD13_022393D8
+ str r0, [r4, #8]
+ ldr r1, [r4, #8]
+ mov r0, r4
+ add r2, r1, #0x20
+ add r1, r2, #0x10
+ str r1, [r4]
+ ldr r1, [r2, #4]
+ add r1, r2, r1
+ add r1, r1, #8
+ str r1, [r4, #4]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02223614: .word 0x02243070
+
+ arm_func_start MOD13_02223618
+MOD13_02223618: ; 0x02223618
+ ldr ip, _02223624 ; =MOD13_0223AF90
+ ldr r0, _02223628 ; =0x02243070
+ bx ip
+ .align 2, 0
+_02223624: .word MOD13_0223AF90
+_02223628: .word 0x02243070
+
+ arm_func_start MOD13_0222362C
+MOD13_0222362C: ; 0x0222362C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0x64
+ mov r1, #4
+ bl MOD13_0223B004
+ mov r1, r0
+ ldr r3, _0222366C ; =0x02243070
+ mov r0, #8
+ mov r2, #0xc
+ str r1, [r3]
+ bl MOD13_0223A054
+ ldr r1, _0222366C ; =0x02243070
+ ldr r1, [r1]
+ str r0, [r1, #0x60]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222366C: .word 0x02243070
+
+ arm_func_start MOD13_02223670
+MOD13_02223670: ; 0x02223670
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ mov r4, r0
+ bl MOD13_02238BE0
+ ldr r0, _02223914 ; =0x02243074
+ ldr r0, [r0]
+ add r0, r0, #0x1e000
+ ldrb r1, [r0, #0x2a0]
+ cmp r1, #0
+ beq _022236C4
+ ldrb r1, [r0, #0x2a1]
+ cmp r1, #0
+ bne _022236C4
+ ldr r1, [r0, #0x298]
+ cmp r1, #0
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ mov r0, #0
+ blx r1
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022236C4:
+ add r0, sp, #0
+ add r1, sp, #1
+ bl MOD13_02238B98
+ ldrb r0, [sp]
+ cmp r0, #0x1a
+ bgt _0222375C
+ cmp r0, #0x1a
+ bge _02223870
+ cmp r0, #0x14
+ bgt _0222374C
+ cmp r0, #0
+ addge pc, pc, r0, lsl #2
+ b _0222390C
+_022236F8: ; jump table
+ b _0222390C ; case 0
+ b _0222390C ; case 1
+ b _0222390C ; case 2
+ b _0222390C ; case 3
+ b _0222390C ; case 4
+ b MOD13_02223784 ; case 5
+ b _0222390C ; case 6
+ b _0222390C ; case 7
+ b _0222390C ; case 8
+ b _0222390C ; case 9
+ b _0222390C ; case 10
+ b _0222390C ; case 11
+ b MOD13_022238B4 ; case 12
+ b MOD13_022237E8 ; case 13
+ b _0222390C ; case 14
+ b _0222390C ; case 15
+ b _0222390C ; case 16
+ b _0222390C ; case 17
+ b _0222390C ; case 18
+ b _0222390C ; case 19
+ b _0222382C ; case 20
+_0222374C:
+ cmp r0, #0x17
+ beq _0222382C
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222375C:
+ cmp r0, #0x1d
+ bgt _02223774
+ cmp r0, #0x1d
+ beq _02223870
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02223774:
+ cmp r0, #0x22
+ beq _022238F8
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_02223784
+MOD13_02223784: ; 0x02223784
+ ldrb r0, [sp, #1]
+ cmp r0, #0
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ ldr r1, _02223914 ; =0x02243074
+ ldr r0, _02223918 ; =0x0001E280
+ ldr r1, [r1]
+ add r4, r1, r0
+ bl MOD13_02238B88
+ mov r1, r4
+ mov r2, #0x16
+ bl MIi_CpuCopy16
+ ldr r0, _02223914 ; =0x02243074
+ ldr r0, [r0]
+ add r0, r0, #0x1e000
+ ldr r1, [r0, #0x298]
+ cmp r1, #0
+ moveq r1, #1
+ streqb r1, [r0, #0x2a0]
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ mov r0, #0
+ blx r1
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_022237E8
+MOD13_022237E8: ; 0x022237E8
+ ldrb r0, [sp, #1]
+ cmp r0, #0
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ ldr r0, _02223914 ; =0x02243074
+ ldr r0, [r0]
+ add r0, r0, #0x1e000
+ ldr r1, [r0, #0x298]
+ cmp r1, #0
+ moveq r1, #1
+ streqb r1, [r0, #0x2a0]
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ mov r0, #1
+ blx r1
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222382C:
+ ldrb r0, [sp, #1]
+ cmp r0, #0
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ ldr r0, _02223914 ; =0x02243074
+ ldr r0, [r0]
+ add r0, r0, #0x1e000
+ ldr r1, [r0, #0x298]
+ cmp r1, #0
+ moveq r1, #1
+ streqb r1, [r0, #0x2a0]
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ mov r0, #3
+ blx r1
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02223870:
+ ldrb r0, [sp, #1]
+ cmp r0, #0
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ ldr r0, _02223914 ; =0x02243074
+ ldr r0, [r0]
+ add r0, r0, #0x1e000
+ ldr r1, [r0, #0x298]
+ cmp r1, #0
+ moveq r1, #1
+ streqb r1, [r0, #0x2a0]
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ mov r0, #4
+ blx r1
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_022238B4
+MOD13_022238B4: ; 0x022238B4
+ ldrb r0, [sp, #1]
+ cmp r0, #0
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ ldr r0, _02223914 ; =0x02243074
+ ldr r0, [r0]
+ add r0, r0, #0x1e000
+ ldr r1, [r0, #0x298]
+ cmp r1, #0
+ moveq r1, #1
+ streqb r1, [r0, #0x2a0]
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ mov r0, #2
+ blx r1
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022238F8:
+ mov r1, r4
+ mov r0, #0
+ bl MOD13_0223C110
+ ldr r0, _02223914 ; =0x02243074
+ bl MOD13_0223AF90
+_0222390C:
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02223914: .word 0x02243074
+_02223918: .word 0x0001E280
+
+ arm_func_start MOD13_0222391C
+MOD13_0222391C: ; 0x0222391C
+ ldr r1, _02223930 ; =0x02243074
+ ldr r0, _02223934 ; =0x0001E280
+ ldr r1, [r1]
+ add r0, r1, r0
+ bx lr
+ .align 2, 0
+_02223930: .word 0x02243074
+_02223934: .word 0x0001E280
+
+ arm_func_start MOD13_02223938
+MOD13_02223938: ; 0x02223938
+ ldr ip, _02223940 ; =MOD13_02238FFC
+ bx ip
+ .align 2, 0
+_02223940: .word MOD13_02238FFC
+
+ arm_func_start MOD13_02223944
+MOD13_02223944: ; 0x02223944
+ ldr r1, _02223958 ; =0x02243074
+ ldr r1, [r1]
+ add r1, r1, #0x1e000
+ str r0, [r1, #0x298]
+ bx lr
+ .align 2, 0
+_02223958: .word 0x02243074
+
+ arm_func_start MOD13_0222395C
+MOD13_0222395C: ; 0x0222395C
+ ldr r0, _02223974 ; =0x02243074
+ ldr r0, [r0]
+ cmp r0, #0
+ moveq r0, #1
+ movne r0, #0
+ bx lr
+ .align 2, 0
+_02223974: .word 0x02243074
+
+ arm_func_start MOD13_02223978
+MOD13_02223978: ; 0x02223978
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl MOD13_02239124
+ cmp r0, #0
+ ldmeqia sp!, {r4, pc}
+ ldr r0, _022239B0 ; =0x02243074
+ mov r1, r4
+ ldr r0, [r0]
+ mov r3, #1
+ add r2, r0, #0x1e000
+ mov r0, #0
+ strb r3, [r2, #0x2a1]
+ bl MOD13_0223C110
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022239B0: .word 0x02243074
+
+ arm_func_start MOD13_022239B4
+MOD13_022239B4: ; 0x022239B4
+ ldr ip, _022239CC ; =MOD13_0223C1C4
+ mov r0, #0
+ ldr r1, _022239D0 ; =MOD13_02223978
+ mov r2, r0
+ mov r3, #0x78
+ bx ip
+ .align 2, 0
+_022239CC: .word MOD13_0223C1C4
+_022239D0: .word MOD13_02223978
+
+ arm_func_start MOD13_022239D4
+MOD13_022239D4: ; 0x022239D4
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #0x20
+ mov r4, r0
+ ldr r0, _02223AB0 ; =0x0001E2A4
+ mov r1, #0x20
+ bl MOD13_0223B004
+ ldr r2, _02223AB4 ; =0x02243074
+ add r1, r0, #0x1e000
+ str r0, [r2]
+ str r4, [r1, #0x298]
+ ldr r0, [r2]
+ mov r4, #0
+ add r0, r0, #0x1e000
+ strb r4, [r0, #0x2a0]
+ ldr r0, [r2]
+ ldr lr, _02223AB8 ; =0x0223FDA4
+ add r0, r0, #0x1e000
+ strb r4, [r0, #0x2a1]
+ add ip, sp, #0
+ ldmia lr!, {r0, r1, r2, r3}
+ stmia ip!, {r0, r1, r2, r3}
+ ldmia lr, {r0, r1, r2}
+ stmia ip, {r0, r1, r2}
+ ldr r0, _02223ABC ; =0x0224307C
+ mov r1, r4
+ ldr r0, [r0]
+ bl MOD13_02223568
+ ldr r1, _02223ABC ; =0x0224307C
+ str r0, [sp, #4]
+ ldr r0, [r1]
+ mov r1, #1
+ bl MOD13_02223568
+ str r0, [sp, #8]
+ bl MOD13_02222F34
+ add r0, r0, #0x31
+ strb r0, [sp, #0x18]
+ ldr r0, _02223AB4 ; =0x02243074
+ add r1, sp, #0
+ ldr r0, [r0]
+ bl MOD13_0223923C
+ bl MOD13_0223903C
+ cmp r0, #0
+ bne _02223A84
+ bl OS_Terminate
+_02223A84:
+ mov r0, #0
+ ldr r1, _02223AC0 ; =MOD13_02223670
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02223AB4 ; =0x02243074
+ ldr r1, [r1]
+ add r1, r1, #0x1e000
+ str r0, [r1, #0x29c]
+ add sp, sp, #0x20
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02223AB0: .word 0x0001E2A4
+_02223AB4: .word 0x02243074
+_02223AB8: .word 0x0223FDA4
+_02223ABC: .word 0x0224307C
+_02223AC0: .word MOD13_02223670
+
+ arm_func_start MOD13_02223AC4
+MOD13_02223AC4: ; 0x02223AC4
+ ldr ip, _02223ACC ; =MOD13_0223AF48
+ bx ip
+ .align 2, 0
+_02223ACC: .word MOD13_0223AF48
+
+ arm_func_start MOD13_02223AD0
+MOD13_02223AD0: ; 0x02223AD0
+ ldr ip, _02223ADC ; =MOD13_0223B004
+ mov r1, #0x20
+ bx ip
+ .align 2, 0
+_02223ADC: .word MOD13_0223B004
+
+ arm_func_start MOD13_02223AE0
+MOD13_02223AE0: ; 0x02223AE0
+ ldr r3, _02223AF4 ; =0x02243078
+ ldmia r0, {r0, r1, r2}
+ ldr r3, [r3]
+ stmia r3, {r0, r1, r2}
+ bx lr
+ .align 2, 0
+_02223AF4: .word 0x02243078
+
+ arm_func_start MOD13_02223AF8
+MOD13_02223AF8: ; 0x02223AF8
+ stmdb sp!, {lr}
+ sub sp, sp, #0xec
+ add r0, sp, #0
+ blx MOD13_0221A794
+ cmp r0, #1
+ beq _02223B14
+ bl OS_Terminate
+_02223B14:
+ add r0, sp, #0
+ bl MOD13_02233A24
+ add sp, sp, #0xec
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_02223B24
+MOD13_02223B24: ; 0x02223B24
+ stmdb sp!, {lr}
+ sub sp, sp, #0xec
+ ldr r1, _02223BDC ; =0x02243078
+ ldr r1, [r1]
+ ldr r1, [r1]
+ cmp r1, #7
+ addls pc, pc, r1, lsl #2
+ b _02223BD4
+_02223B44: ; jump table
+ b _02223B64 ; case 0
+ b _02223B64 ; case 1
+ b _02223B70 ; case 2
+ b _02223B64 ; case 3
+ b _02223B7C ; case 4
+ b _02223B64 ; case 5
+ b _02223B88 ; case 6
+ b _02223BD0 ; case 7
+_02223B64:
+ add sp, sp, #0xec
+ mov r0, #0
+ ldmia sp!, {pc}
+_02223B70:
+ add sp, sp, #0xec
+ mov r0, #1
+ ldmia sp!, {pc}
+_02223B7C:
+ add sp, sp, #0xec
+ mov r0, #2
+ ldmia sp!, {pc}
+_02223B88:
+ add r0, sp, #0
+ blx MOD13_0221A794
+ cmp r0, #1
+ beq _02223B9C
+ bl OS_Terminate
+_02223B9C:
+ ldr r0, [sp, #0x20]
+ cmp r0, #0
+ blt _02223BC4
+ cmp r0, #3
+ bgt _02223BC4
+ ldr r0, [sp, #0x24]
+ cmp r0, #1
+ addeq sp, sp, #0xec
+ moveq r0, #3
+ ldmeqia sp!, {pc}
+_02223BC4:
+ add sp, sp, #0xec
+ mov r0, #5
+ ldmia sp!, {pc}
+_02223BD0:
+ mov r0, #4
+_02223BD4:
+ add sp, sp, #0xec
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223BDC: .word 0x02243078
+
+ arm_func_start MOD13_02223BE0
+MOD13_02223BE0: ; 0x02223BE0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ blx MOD13_0221A7EC
+ cmp r0, #1
+ beq _02223BF8
+ bl OS_Terminate
+_02223BF8:
+ ldr r0, _02223C08 ; =0x02243078
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223C08: .word 0x02243078
+
+ arm_func_start MOD13_02223C0C
+MOD13_02223C0C: ; 0x02223C0C
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ mov r0, #0xc
+ mvn r1, #3
+ bl MOD13_0223AFE0
+ ldr r1, _02223C68 ; =0x02243078
+ ldr ip, _02223C6C ; =MOD13_02223AC4
+ str r0, [r1]
+ ldr r2, _02223C70 ; =MOD13_02223AE0
+ ldr r3, _02223C74 ; =MOD13_02223AD0
+ str ip, [sp]
+ mov ip, #0x800
+ mov r0, #0xf
+ mov r1, #0x40
+ str ip, [sp, #4]
+ blx MOD13_0221A8A4
+ cmp r0, #1
+ beq _02223C58
+ bl OS_Terminate
+_02223C58:
+ mov r0, #0xa
+ bl OS_Sleep
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223C68: .word 0x02243078
+_02223C6C: .word MOD13_02223AC4
+_02223C70: .word MOD13_02223AE0
+_02223C74: .word MOD13_02223AD0
+
+ arm_func_start MOD13_02223C78
+MOD13_02223C78: ; 0x02223C78
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_0223C0A0
+ mov r0, #1
+ mov r1, #0
+ bl MOD13_0223C0A0
+ mov r0, #1
+ bl MOD13_02239F20
+ mov r0, #0
+ bl MOD13_02239F20
+ bl MOD13_0221F528
+ bl MOD13_0221F404
+ ldr r0, _02223CF8 ; =0x0224307C
+ ldr r0, [r0]
+ bl MOD13_02223588
+ bl MOD13_02223618
+ bl MOD13_02234178
+ bl MOD13_02222EE8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223CF8: .word 0x0224307C
+
+ arm_func_start MOD13_02223CFC
+MOD13_02223CFC: ; 0x02223CFC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ mov r1, #1
+ mov r2, #0x3f
+ mov r3, #0x14
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x3f
+ mov r3, #0x14
+ bl MOD13_0223A2A8
+ ldr r0, _02223D3C ; =MOD13_02223C78
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223D3C: .word MOD13_02223C78
+
+ arm_func_start MOD13_02223D40
+MOD13_02223D40: ; 0x02223D40
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02222F1C
+ cmp r0, #0
+ beq _02223D8C
+ cmp r0, #1
+ beq _02223DA8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02223D8C:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02223DC4 ; =MOD13_022245B4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02223DA8:
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _02223DC8 ; =MOD13_02230714
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223DC4: .word MOD13_022245B4
+_02223DC8: .word MOD13_02230714
+
+ arm_func_start MOD13_02223DCC
+MOD13_02223DCC: ; 0x02223DCC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r2, r0
+ mov r1, #1
+ mov r3, #0x14
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r2, r0
+ mov r1, #0
+ mov r3, #0x14
+ bl MOD13_0223A2A8
+ ldr r0, _02223E0C ; =MOD13_02223D40
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223E0C: .word MOD13_02223D40
+
+ arm_func_start MOD13_02223E10
+MOD13_02223E10: ; 0x02223E10
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0223418C
+ bl MOD13_0222362C
+ bl MOD13_0221F424
+ bl MOD13_0221F53C
+ bl MOD13_0221EF74
+ bl MOD13_02222F34
+ cmp r0, #1
+ bne _02223E5C
+ mov r0, #2
+ bl MOD13_02222EFC
+ cmp r0, #0
+ beq _02223E5C
+ ldr r0, _02223F90 ; =0x0223FE38
+ bl MOD13_022235B4
+ ldr r1, _02223F94 ; =0x0224307C
+ str r0, [r1]
+ b _02223E74
+_02223E5C:
+ bl MOD13_02222F34
+ ldr r1, _02223F98 ; =0x0223FE20
+ ldr r0, [r1, r0, lsl #2]
+ bl MOD13_022235B4
+ ldr r1, _02223F94 ; =0x0224307C
+ str r0, [r1]
+_02223E74:
+ ldr r0, _02223F9C ; =0x0223FE48
+ bl MOD13_0221F1BC
+ mov r1, r0
+ mov r0, #1
+ bl MOD13_02239F48
+ ldr r0, _02223FA0 ; =0x0223FE5C
+ bl MOD13_0221F1BC
+ mov r1, r0
+ mov r0, #0
+ bl MOD13_02239F48
+ ldr r0, _02223FA4 ; =0x0223FE70
+ ldr r1, _02223FA8 ; =0x020C8DB4
+ bl MOD13_0221F174
+ ldr r0, _02223FAC ; =0x0223FE84
+ ldr r1, _02223FB0 ; =0x020C94E8
+ bl MOD13_0221F174
+ ldr r0, _02223FB4 ; =0x0223FE98
+ ldr r1, _02223FB8 ; =0x020C9294
+ bl MOD13_0221F174
+ ldr r0, _02223FBC ; =0x0223FEB0
+ ldr r1, _02223FC0 ; =0x020C9418
+ bl MOD13_0221F174
+ ldr r0, _02223FC4 ; =0x0223FEC8
+ ldr r1, _02223FC8 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _02223FCC ; =0x0223FEE0
+ ldr r1, _02223FD0 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _02223FD4 ; =0x0223FEF8
+ ldr r1, _02223FD8 ; =0x020C92F4
+ bl MOD13_0221F174
+ ldr r0, _02223FDC ; =0x0223FF10
+ ldr r1, _02223FE0 ; =0x020C9480
+ bl MOD13_0221F174
+ bl MOD13_02222F1C
+ cmp r0, #0
+ beq _02223F14
+ cmp r0, #1
+ beq _02223F24
+ b _02223F30
+_02223F14:
+ ldr r0, _02223FE4 ; =0x0223FF28
+ ldr r1, _02223FE8 ; =0x020C90F4
+ bl MOD13_0221F174
+ b _02223F30
+_02223F24:
+ ldr r0, _02223FEC ; =0x0223FF3C
+ ldr r1, _02223FE8 ; =0x020C90F4
+ bl MOD13_0221F174
+_02223F30:
+ ldr ip, _02223FF0 ; =0x0400100A
+ ldr r3, _02223FF4 ; =0x0400000A
+ ldrh r2, [ip]
+ mov r0, #1
+ mov r1, #2
+ bic r2, r2, #3
+ orr r2, r2, #3
+ strh r2, [ip]
+ ldrh r2, [r3]
+ bic r2, r2, #3
+ orr r2, r2, #3
+ strh r2, [r3]
+ ldrh r2, [r3]
+ bic r2, r2, #3
+ orr r2, r2, #3
+ strh r2, [r3]
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #2
+ bl MOD13_0223AEF4
+ ldr r0, _02223FF8 ; =MOD13_02223DCC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223F90: .word 0x0223FE38
+_02223F94: .word 0x0224307C
+_02223F98: .word 0x0223FE20
+_02223F9C: .word 0x0223FE48
+_02223FA0: .word 0x0223FE5C
+_02223FA4: .word 0x0223FE70
+_02223FA8: .word 0x020C8DB4
+_02223FAC: .word 0x0223FE84
+_02223FB0: .word 0x020C94E8
+_02223FB4: .word 0x0223FE98
+_02223FB8: .word 0x020C9294
+_02223FBC: .word 0x0223FEB0
+_02223FC0: .word 0x020C9418
+_02223FC4: .word 0x0223FEC8
+_02223FC8: .word 0x020C8D4C
+_02223FCC: .word 0x0223FEE0
+_02223FD0: .word 0x020C9550
+_02223FD4: .word 0x0223FEF8
+_02223FD8: .word 0x020C92F4
+_02223FDC: .word 0x0223FF10
+_02223FE0: .word 0x020C9480
+_02223FE4: .word 0x0223FF28
+_02223FE8: .word 0x020C90F4
+_02223FEC: .word 0x0223FF3C
+_02223FF0: .word 0x0400100A
+_02223FF4: .word 0x0400000A
+_02223FF8: .word MOD13_02223DCC
+
+ arm_func_start MOD13_02223FFC
+MOD13_02223FFC: ; 0x02223FFC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02224040 ; =0x0223F100
+ ldr r0, _02224044 ; =0x02243080
+ ldrb r3, [r1]
+ ldrb r2, [r1, #1]
+ ldrb r1, [r0]
+ add ip, sp, #0
+ ldr r0, _02224048 ; =0x02243084
+ strb r3, [sp]
+ strb r2, [sp, #1]
+ ldrb r1, [ip, r1]
+ ldr r0, [r0]
+ mov r2, r1
+ bl MOD13_022327DC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224040: .word 0x0223F100
+_02224044: .word 0x02243080
+_02224048: .word 0x02243084
+
+ arm_func_start MOD13_0222404C
+MOD13_0222404C: ; 0x0222404C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r0, #1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ cmp r0, #3
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r1, _022240BC ; =0x02243080
+ mov r0, #8
+ ldrb r2, [r1]
+ eor r2, r2, #1
+ strb r2, [r1]
+ bl MOD13_0223424C
+ ldr r0, _022240BC ; =0x02243080
+ ldr ip, _022240C0 ; =0x0223F114
+ ldrb r0, [r0]
+ ldr r1, _022240C4 ; =0x0223F118
+ ldr r2, _022240C8 ; =0x0223F116
+ mov lr, r0, lsl #3
+ ldr r3, _022240CC ; =0x0223F11A
+ ldrh r0, [ip, lr]
+ ldrh r1, [r1, lr]
+ ldrh r2, [r2, lr]
+ ldrh r3, [r3, lr]
+ bl MOD13_0221F25C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022240BC: .word 0x02243080
+_022240C0: .word 0x0223F114
+_022240C4: .word 0x0223F118
+_022240C8: .word 0x0223F116
+_022240CC: .word 0x0223F11A
+
+ arm_func_start MOD13_022240D0
+MOD13_022240D0: ; 0x022240D0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221F21C
+ bl MOD13_0221EE54
+ ldr r0, _02224184 ; =0x02243084
+ ldr r0, [r0]
+ bl MOD13_0223939C
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AE98
+ ldr r0, _02224188 ; =0x02243080
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0222414C
+ cmp r0, #1
+ beq _02224168
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222414C:
+ mov r0, #1
+ mov r1, #0
+ bl MOD13_02222FA8
+ ldr r0, _0222418C ; =MOD13_02230714
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02224168:
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _02224190 ; =MOD13_022259A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224184: .word 0x02243084
+_02224188: .word 0x02243080
+_0222418C: .word MOD13_02230714
+_02224190: .word MOD13_022259A8
+
+ arm_func_start MOD13_02224194
+MOD13_02224194: ; 0x02224194
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _022241E8 ; =MOD13_022240D0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022241E8: .word MOD13_022240D0
+
+ arm_func_start MOD13_022241EC
+MOD13_022241EC: ; 0x022241EC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02224210 ; =MOD13_02224194
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224210: .word MOD13_02224194
+
+ arm_func_start MOD13_02224214
+MOD13_02224214: ; 0x02224214
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _02224238
+ cmp r0, #1
+ beq _02224250
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02224238:
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _0222426C ; =MOD13_02223CFC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02224250:
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02223FFC
+ ldr r0, _02224270 ; =MOD13_022241EC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222426C: .word MOD13_02223CFC
+_02224270: .word MOD13_022241EC
+
+ arm_func_start MOD13_02224274
+MOD13_02224274: ; 0x02224274
+ bx lr
+
+ arm_func_start MOD13_02224278
+MOD13_02224278: ; 0x02224278
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r4, _022243B0 ; =0x0223F104
+ mov r5, #0
+_02224288:
+ mov r0, r4
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _022242DC
+ mov r0, #1
+ bl MOD13_0221ECF4
+ ldr r0, _022243B4 ; =0x02243080
+ ldr ip, _022243B8 ; =0x0223F114
+ strb r5, [r0]
+ ldrb r0, [r0]
+ ldr r1, _022243BC ; =0x0223F118
+ ldr r2, _022243C0 ; =0x0223F116
+ mov lr, r0, lsl #3
+ ldr r3, _022243C4 ; =0x0223F11A
+ ldrh r0, [ip, lr]
+ ldrh r1, [r1, lr]
+ ldrh r2, [r2, lr]
+ ldrh r3, [r3, lr]
+ bl MOD13_0221F25C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_022242DC:
+ add r5, r5, #1
+ cmp r5, #2
+ add r4, r4, #8
+ blo _02224288
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0222430C
+ mov r0, #1
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222430C:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0222432C
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222432C:
+ mov r0, #0x40
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222434C
+ mov r0, #1
+ bl MOD13_0222404C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222434C:
+ mov r0, #0x80
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222436C
+ mov r0, #3
+ bl MOD13_0222404C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222436C:
+ mov r0, #0x20
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222438C
+ mov r0, #0
+ bl MOD13_0222404C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222438C:
+ mov r0, #0x10
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ mov r0, #2
+ bl MOD13_0222404C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_022243B0: .word 0x0223F104
+_022243B4: .word 0x02243080
+_022243B8: .word 0x0223F114
+_022243BC: .word 0x0223F118
+_022243C0: .word 0x0223F116
+_022243C4: .word 0x0223F11A
+
+ arm_func_start MOD13_022243C8
+MOD13_022243C8: ; 0x022243C8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02224278
+ bl MOD13_02224274
+ bl MOD13_02224214
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02224414 ; =MOD13_022243C8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224414: .word MOD13_022243C8
+
+ arm_func_start MOD13_02224418
+MOD13_02224418: ; 0x02224418
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221F0EC
+ ldr r0, _02224460 ; =0x022243E4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224460: .word 0x022243E4
+
+ arm_func_start MOD13_02224464
+MOD13_02224464: ; 0x02224464
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AEF4
+ ldr r0, _022244BC ; =MOD13_02224418
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022244BC: .word MOD13_02224418
+
+ arm_func_start MOD13_022244C0
+MOD13_022244C0: ; 0x022244C0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x1c
+ ldr ip, _02224584 ; =0x0223F124
+ add r3, sp, #0
+ mov r2, #0xb
+_022244D4:
+ ldrb r1, [ip], #1
+ ldrb r0, [ip], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _022244D4
+ ldr r0, _02224588 ; =0x0223FF50
+ ldr r1, _0222458C ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _02224590 ; =0x0223FF68
+ ldr r1, _02224594 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _02224598 ; =0x0223FF80
+ ldr r1, _0222459C ; =0x020C908C
+ bl MOD13_0221F174
+ add r0, sp, #0
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _022245A0 ; =0x02243084
+ ldr ip, _022245A4 ; =0x04001008
+ str r0, [r1]
+ ldrh r0, [ip]
+ ldr r3, _022245A8 ; =0x0400100A
+ ldr r2, _022245AC ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ ldr r1, _022245B0 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224584: .word 0x0223F124
+_02224588: .word 0x0223FF50
+_0222458C: .word 0x020C8D4C
+_02224590: .word 0x0223FF68
+_02224594: .word 0x020C9550
+_02224598: .word 0x0223FF80
+_0222459C: .word 0x020C908C
+_022245A0: .word 0x02243084
+_022245A4: .word 0x04001008
+_022245A8: .word 0x0400100A
+_022245AC: .word 0x0400000A
+_022245B0: .word 0x0400000C
+
+ arm_func_start MOD13_022245B4
+MOD13_022245B4: ; 0x022245B4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022244C0
+ mov r0, #0
+ bl MOD13_0221F4CC
+ mov r0, #0x2e
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #4
+ bl MOD13_02234384
+ ldr r0, _02224620 ; =0x02243080
+ ldr r3, _02224624 ; =0x0223F114
+ ldrb r0, [r0]
+ ldr r1, _02224628 ; =0x0223F118
+ ldr r2, _0222462C ; =0x0223F116
+ mov ip, r0, lsl #3
+ ldrh r0, [r3, ip]
+ ldrh r1, [r1, ip]
+ ldrh r2, [r2, ip]
+ ldr r3, _02224630 ; =0x0223F11A
+ ldrh r3, [r3, ip]
+ bl MOD13_0221F25C
+ ldr r0, _02224634 ; =MOD13_02224464
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224620: .word 0x02243080
+_02224624: .word 0x0223F114
+_02224628: .word 0x0223F118
+_0222462C: .word 0x0223F116
+_02224630: .word 0x0223F11A
+_02224634: .word MOD13_02224464
+
+ arm_func_start MOD13_02224638
+MOD13_02224638: ; 0x02224638
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02224660 ; =MOD13_02224808
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224660: .word MOD13_02224808
+
+ arm_func_start MOD13_02224664
+MOD13_02224664: ; 0x02224664
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ beq _0222469C
+ cmp r0, #1
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0xe
+ bl MOD13_0223424C
+ ldr r0, _022246B8 ; =0x02243088
+ mov r1, #1
+ strb r1, [r0]
+ b _022246A4
+_0222469C:
+ mov r0, #7
+ bl MOD13_0223424C
+_022246A4:
+ bl MOD13_02235EB0
+ ldr r0, _022246BC ; =MOD13_02224638
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022246B8: .word 0x02243088
+_022246BC: .word MOD13_02224638
+
+ arm_func_start MOD13_022246C0
+MOD13_022246C0: ; 0x022246C0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222478C ; =0x02243088
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02224700
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_02224700:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _0222478C ; =0x02243088
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02224738
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_02224738:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _0222478C ; =0x02243088
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02224770
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02224790 ; =MOD13_022259A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02224770:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02224794 ; =MOD13_02224D5C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222478C: .word 0x02243088
+_02224790: .word MOD13_022259A8
+_02224794: .word MOD13_02224D5C
+
+ arm_func_start MOD13_02224798
+MOD13_02224798: ; 0x02224798
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ ldr r0, _02224800 ; =0x02243088
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022247DC
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_022247DC:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02224804 ; =MOD13_022246C0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224800: .word 0x02243088
+_02224804: .word MOD13_022246C0
+
+ arm_func_start MOD13_02224808
+MOD13_02224808: ; 0x02224808
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0222482C ; =MOD13_02224798
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222482C: .word MOD13_02224798
+
+ arm_func_start MOD13_02224830
+MOD13_02224830: ; 0x02224830
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _02224854
+ cmp r0, #1
+ beq _0222486C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02224854:
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _022248A0 ; =MOD13_02224808
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222486C:
+ mov r0, #6
+ bl MOD13_0223424C
+ mov r1, #0
+ mov r0, #0x18
+ mov r2, #1
+ mvn r3, #0
+ str r1, [sp]
+ bl MOD13_02235EFC
+ bl MOD13_0221EC84
+ ldr r0, _022248A4 ; =MOD13_02224664
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022248A0: .word MOD13_02224808
+_022248A4: .word MOD13_02224664
+
+ arm_func_start MOD13_022248A8
+MOD13_022248A8: ; 0x022248A8
+ bx lr
+
+ arm_func_start MOD13_022248AC
+MOD13_022248AC: ; 0x022248AC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _022248CC
+ mov r0, #1
+ bl MOD13_0221ECF4
+_022248CC:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022248AC
+ bl MOD13_022248A8
+ bl MOD13_02224830
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222493C ; =0x022248F0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222493C: .word 0x022248F0
+
+ arm_func_start MOD13_02224940
+MOD13_02224940: ; 0x02224940
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #3
+ bl MOD13_0221F0EC
+ ldr r0, _02224988 ; =0x0222490C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224988: .word 0x0222490C
+
+ arm_func_start MOD13_0222498C
+MOD13_0222498C: ; 0x0222498C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _022249E4 ; =MOD13_02224940
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022249E4: .word MOD13_02224940
+
+ arm_func_start MOD13_022249E8
+MOD13_022249E8: ; 0x022249E8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02224A68 ; =0x0223FF94
+ ldr r1, _02224A6C ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02224A70 ; =0x04001008
+ ldr ip, _02224A74 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02224A78 ; =0x04000008
+ ldr r2, _02224A7C ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02224A80 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224A68: .word 0x0223FF94
+_02224A6C: .word 0x020C908C
+_02224A70: .word 0x04001008
+_02224A74: .word 0x0400100A
+_02224A78: .word 0x04000008
+_02224A7C: .word 0x0400000A
+_02224A80: .word 0x0400000C
+
+ arm_func_start MOD13_02224A84
+MOD13_02224A84: ; 0x02224A84
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02224ACC ; =0x02243088
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_022249E8
+ mov r0, #0x12
+ bl MOD13_0221F4CC
+ mov r0, #0x3b
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #0x17
+ bl MOD13_0221F070
+ ldr r0, _02224AD0 ; =MOD13_0222498C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224ACC: .word 0x02243088
+_02224AD0: .word MOD13_0222498C
+
+ arm_func_start MOD13_02224AD4
+MOD13_02224AD4: ; 0x02224AD4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0x1000000
+ bl OS_SpinWait
+ bl PM_ForceToPowerOff
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #3
+ mov r1, #1
+ mov r2, #0x3f
+ mov r3, #0x40
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x3f
+ mov r3, #0x40
+ bl MOD13_0223A2A8
+ ldr r0, _02224B6C ; =MOD13_02224AD4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224B6C: .word MOD13_02224AD4
+
+ arm_func_start MOD13_02224B70
+MOD13_02224B70: ; 0x02224B70
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02224B94 ; =0x02224B18
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224B94: .word 0x02224B18
+
+ arm_func_start MOD13_02224B98
+MOD13_02224B98: ; 0x02224B98
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _02224BC8 ; =MOD13_02224B70
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224BC8: .word MOD13_02224B70
+
+ arm_func_start MOD13_02224BCC
+MOD13_02224BCC: ; 0x02224BCC
+ bx lr
+
+ arm_func_start MOD13_02224BD0
+MOD13_02224BD0: ; 0x02224BD0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02224BD0
+ bl MOD13_02224BCC
+ bl MOD13_02224B98
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02224C48 ; =0x02224BFC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224C48: .word 0x02224BFC
+
+ arm_func_start MOD13_02224C4C
+MOD13_02224C4C: ; 0x02224C4C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #5
+ bl MOD13_0221F0EC
+ ldr r0, _02224C80 ; =0x02224C18
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224C80: .word 0x02224C18
+
+ arm_func_start MOD13_02224C84
+MOD13_02224C84: ; 0x02224C84
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02224CBC ; =MOD13_02224C4C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224CBC: .word MOD13_02224C4C
+
+ arm_func_start MOD13_02224CC0
+MOD13_02224CC0: ; 0x02224CC0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02224D40 ; =0x0223FFA8
+ ldr r1, _02224D44 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02224D48 ; =0x04001008
+ ldr ip, _02224D4C ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02224D50 ; =0x04000008
+ ldr r2, _02224D54 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02224D58 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224D40: .word 0x0223FFA8
+_02224D44: .word 0x020C908C
+_02224D48: .word 0x04001008
+_02224D4C: .word 0x0400100A
+_02224D50: .word 0x04000008
+_02224D54: .word 0x0400000A
+_02224D58: .word 0x0400000C
+
+ arm_func_start MOD13_02224D5C
+MOD13_02224D5C: ; 0x02224D5C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02224CC0
+ mov r0, #0x19
+ bl MOD13_0221F070
+ bl MOD13_02233808
+ ldr r0, _02224D84 ; =MOD13_02224C84
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224D84: .word MOD13_02224C84
+
+ arm_func_start MOD13_02224D88
+MOD13_02224D88: ; 0x02224D88
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02224E08 ; =MOD13_022259A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224E08: .word MOD13_022259A8
+
+ arm_func_start MOD13_02224E0C
+MOD13_02224E0C: ; 0x02224E0C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02224E64 ; =MOD13_02224D88
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224E64: .word MOD13_02224D88
+
+ arm_func_start MOD13_02224E68
+MOD13_02224E68: ; 0x02224E68
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02224E8C ; =MOD13_02224E0C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224E8C: .word MOD13_02224E0C
+
+ arm_func_start MOD13_02224E90
+MOD13_02224E90: ; 0x02224E90
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _02224EC0 ; =MOD13_02224E68
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224EC0: .word MOD13_02224E68
+
+ arm_func_start MOD13_02224EC4
+MOD13_02224EC4: ; 0x02224EC4
+ bx lr
+
+ arm_func_start MOD13_02224EC8
+MOD13_02224EC8: ; 0x02224EC8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02224EC8
+ bl MOD13_02224EC4
+ bl MOD13_02224E90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02224F40 ; =0x02224EF4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224F40: .word 0x02224EF4
+
+ arm_func_start MOD13_02224F44
+MOD13_02224F44: ; 0x02224F44
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #2
+ bl MOD13_0221F0EC
+ ldr r0, _02224F8C ; =0x02224F10
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224F8C: .word 0x02224F10
+
+ arm_func_start MOD13_02224F90
+MOD13_02224F90: ; 0x02224F90
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02224FE8 ; =MOD13_02224F44
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224FE8: .word MOD13_02224F44
+
+ arm_func_start MOD13_02224FEC
+MOD13_02224FEC: ; 0x02224FEC
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x6c
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_0223A7F0
+ mov fp, r0
+ add r0, sp, #0x14
+ bl OS_GetMacAddress
+ ldrb r1, [sp, #0x15]
+ ldr r2, _022251B8 ; =0x0223FFBC
+ add r0, sp, #0x40
+ str r1, [sp]
+ ldrb r3, [sp, #0x16]
+ mov r1, #0x14
+ str r3, [sp, #4]
+ ldrb r3, [sp, #0x17]
+ str r3, [sp, #8]
+ ldrb r3, [sp, #0x18]
+ str r3, [sp, #0xc]
+ ldrb r3, [sp, #0x19]
+ str r3, [sp, #0x10]
+ ldrb r3, [sp, #0x14]
+ bl swprintf
+ ldr r3, _022251BC ; =0x0223F13C
+ mov r2, #2
+ ldrh r4, [r3, #6]
+ mov r1, #0x480
+ add r0, sp, #0x40
+ str r4, [sp]
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ ldrh r1, [r3]
+ ldrh r2, [r3, #2]
+ ldrh r3, [r3, #4]
+ mov r0, fp
+ bl MOD13_0223A4F0
+ add r0, sp, #0x1c
+ bl FUN_02095EC8
+ ldr sb, [sp, #0x1c]
+ ldr sl, [sp, #0x20]
+ mov r3, #0
+ cmp sl, r3
+ cmpeq sb, r3
+ beq _02225160
+ mov r0, sb
+ mov r1, sl
+ mov r2, #0xa
+ bl _ull_mod
+ mov r1, #0x3e8
+ umull r4, r1, r0, r1
+ mov r0, sb
+ mov r1, sl
+ mov r3, #0
+ mov r2, #0xa
+ str r4, [sp, #0x3c]
+ bl _ll_udiv
+ mov sb, r0
+ mov sl, r1
+ mov r8, #0
+ ldr r7, _022251C0 ; =0x00002710
+ add r5, sp, #0x30
+ mov r6, r8
+ mov r4, r8
+_022250EC:
+ mov r0, sb
+ mov r1, sl
+ mov r2, r7
+ mov r3, r6
+ bl _ull_mod
+ rsb r1, r8, #2
+ str r0, [r5, r1, lsl #2]
+ mov r0, sb
+ mov r1, sl
+ mov r2, r7
+ mov r3, r4
+ bl _ll_udiv
+ mov sb, r0
+ mov sl, r1
+ add r8, r8, #1
+ cmp r8, #3
+ blt _022250EC
+ ldr r1, [sp, #0x34]
+ ldr r2, _022251C4 ; =0x0223FFF8
+ str r1, [sp]
+ ldr r1, [sp, #0x38]
+ add r0, sp, #0x40
+ str r1, [sp, #4]
+ ldr r3, [sp, #0x3c]
+ mov r1, #0x14
+ str r3, [sp, #8]
+ ldr r3, [sp, #0x30]
+ bl swprintf
+ b _02225170
+_02225160:
+ ldr r2, _022251C8 ; =0x02240020
+ add r0, sp, #0x40
+ mov r1, #0x14
+ bl swprintf
+_02225170:
+ ldr r0, _022251CC ; =0x0223F144
+ mov r3, #2
+ ldrh r4, [r0, #6]
+ mov r2, #0x480
+ add r1, sp, #0x40
+ str r4, [sp]
+ str r3, [sp, #4]
+ str r2, [sp, #8]
+ str r1, [sp, #0xc]
+ ldrh r1, [r0]
+ ldrh r2, [r0, #2]
+ ldrh r3, [r0, #4]
+ mov r0, fp
+ bl MOD13_0223A4F0
+ mov r0, fp
+ bl MOD13_0223A410
+ add sp, sp, #0x6c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_022251B8: .word 0x0223FFBC
+_022251BC: .word 0x0223F13C
+_022251C0: .word 0x00002710
+_022251C4: .word 0x0223FFF8
+_022251C8: .word 0x02240020
+_022251CC: .word 0x0223F144
+
+ arm_func_start MOD13_022251D0
+MOD13_022251D0: ; 0x022251D0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02225250 ; =0x02240048
+ ldr r1, _02225254 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02225258 ; =0x04001008
+ ldr ip, _0222525C ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02225260 ; =0x04000008
+ ldr r2, _02225264 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02225268 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225250: .word 0x02240048
+_02225254: .word 0x020C908C
+_02225258: .word 0x04001008
+_0222525C: .word 0x0400100A
+_02225260: .word 0x04000008
+_02225264: .word 0x0400000A
+_02225268: .word 0x0400000C
+
+ arm_func_start MOD13_0222526C
+MOD13_0222526C: ; 0x0222526C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022251D0
+ mov r0, #0x11
+ bl MOD13_0221F4CC
+ mov r0, #0x3a
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ bl MOD13_02224FEC
+ ldr r0, _022252A4 ; =MOD13_02224F90
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022252A4: .word MOD13_02224F90
+
+ arm_func_start MOD13_022252A8
+MOD13_022252A8: ; 0x022252A8
+ ldr r1, _022252CC ; =0x0224308C
+ ldr r0, _022252D0 ; =0x02243094
+ ldrb r2, [r1]
+ ldr r1, _022252D4 ; =0x0223F14C
+ ldr ip, _022252D8 ; =MOD13_022327DC
+ ldrb r1, [r1, r2]
+ ldr r0, [r0]
+ mov r2, r1
+ bx ip
+ .align 2, 0
+_022252CC: .word 0x0224308C
+_022252D0: .word 0x02243094
+_022252D4: .word 0x0223F14C
+_022252D8: .word MOD13_022327DC
+
+ arm_func_start MOD13_022252DC
+MOD13_022252DC: ; 0x022252DC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r0, #1
+ bne _0222530C
+ ldr r0, _02225368 ; =0x0224308C
+ mov r1, #3
+ ldrb r0, [r0]
+ add r0, r0, #2
+ bl FX_ModS32
+ ldr r1, _02225368 ; =0x0224308C
+ strb r0, [r1]
+ b _02225328
+_0222530C:
+ ldr r0, _02225368 ; =0x0224308C
+ mov r1, #3
+ ldrb r0, [r0]
+ add r0, r0, #1
+ bl FX_ModS32
+ ldr r1, _02225368 ; =0x0224308C
+ strb r0, [r1]
+_02225328:
+ mov r0, #8
+ bl MOD13_0223424C
+ ldr r0, _02225368 ; =0x0224308C
+ ldr ip, _0222536C ; =0x0223F19C
+ ldrb r0, [r0]
+ ldr r1, _02225370 ; =0x0223F1A0
+ ldr r2, _02225374 ; =0x0223F19E
+ mov lr, r0, lsl #3
+ ldr r3, _02225378 ; =0x0223F1A2
+ ldrh r0, [ip, lr]
+ ldrh r1, [r1, lr]
+ ldrh r2, [r2, lr]
+ ldrh r3, [r3, lr]
+ bl MOD13_0221F25C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225368: .word 0x0224308C
+_0222536C: .word 0x0223F19C
+_02225370: .word 0x0223F1A0
+_02225374: .word 0x0223F19E
+_02225378: .word 0x0223F1A2
+
+ arm_func_start MOD13_0222537C
+MOD13_0222537C: ; 0x0222537C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _0222549C ; =0x02243098
+ ldr r0, [r0]
+ bl MOD13_0223B974
+ bl MOD13_0221F21C
+ bl MOD13_0221EE54
+ ldr r0, _022254A0 ; =0x02243094
+ ldr r0, [r0]
+ bl MOD13_0223939C
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AE98
+ ldr r0, _022254A4 ; =0x02243090
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02225420
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _022254A8 ; =MOD13_022245B4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02225420:
+ ldr r0, _022254AC ; =0x0224308C
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02225448
+ cmp r0, #1
+ beq _02225464
+ cmp r0, #2
+ beq _02225480
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02225448:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022254B0 ; =MOD13_0222526C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02225464:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022254B4 ; =MOD13_02224A84
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02225480:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022254B8 ; =MOD13_02226650
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222549C: .word 0x02243098
+_022254A0: .word 0x02243094
+_022254A4: .word 0x02243090
+_022254A8: .word MOD13_022245B4
+_022254AC: .word 0x0224308C
+_022254B0: .word MOD13_0222526C
+_022254B4: .word MOD13_02224A84
+_022254B8: .word MOD13_02226650
+
+ arm_func_start MOD13_022254BC
+MOD13_022254BC: ; 0x022254BC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02225524 ; =0x02243090
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022254EC
+ bl MOD13_0221ED28
+_022254EC:
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02225528 ; =MOD13_0222537C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225524: .word 0x02243090
+_02225528: .word MOD13_0222537C
+
+ arm_func_start MOD13_0222552C
+MOD13_0222552C: ; 0x0222552C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02225550 ; =MOD13_022254BC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225550: .word MOD13_022254BC
+
+ arm_func_start MOD13_02225554
+MOD13_02225554: ; 0x02225554
+ stmdb sp!, {lr}
+ sub sp, sp, #0x14
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _02225578
+ cmp r0, #1
+ beq _02225584
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+_02225578:
+ mov r0, #7
+ bl MOD13_0223424C
+ b _022255E4
+_02225584:
+ add r0, sp, #0
+ bl FUN_02095EC8
+ ldr r0, _022255F4 ; =0x0224308C
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022255CC
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ mov r0, #0
+ cmp r1, r0
+ cmpeq r2, r0
+ bne _022255CC
+ mov r0, #9
+ bl MOD13_0223424C
+ mvn r0, #0
+ bl MOD13_0221ECE0
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+_022255CC:
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_022252A8
+ ldr r0, _022255F8 ; =0x02243090
+ mov r1, #1
+ strb r1, [r0]
+_022255E4:
+ ldr r0, _022255FC ; =MOD13_0222552C
+ bl MOD13_02222FBC
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+ .align 2, 0
+_022255F4: .word 0x0224308C
+_022255F8: .word 0x02243090
+_022255FC: .word MOD13_0222552C
+
+ arm_func_start MOD13_02225600
+MOD13_02225600: ; 0x02225600
+ bx lr
+
+ arm_func_start MOD13_02225604
+MOD13_02225604: ; 0x02225604
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r4, _022256FC ; =0x0223F184
+ mov r5, #0
+_02225614:
+ mov r0, r4
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02225668
+ mov r0, #1
+ bl MOD13_0221ECF4
+ ldr r0, _02225700 ; =0x0224308C
+ ldr ip, _02225704 ; =0x0223F19C
+ strb r5, [r0]
+ ldrb r0, [r0]
+ ldr r1, _02225708 ; =0x0223F1A0
+ ldr r2, _0222570C ; =0x0223F19E
+ mov lr, r0, lsl #3
+ ldr r3, _02225710 ; =0x0223F1A2
+ ldrh r0, [ip, lr]
+ ldrh r1, [r1, lr]
+ ldrh r2, [r2, lr]
+ ldrh r3, [r3, lr]
+ bl MOD13_0221F25C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02225668:
+ add r5, r5, #1
+ cmp r5, #3
+ add r4, r4, #8
+ blo _02225614
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02225698
+ mov r0, #1
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02225698:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _022256B8
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_022256B8:
+ mov r0, #0x40
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _022256D8
+ mov r0, #1
+ bl MOD13_022252DC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_022256D8:
+ mov r0, #0x80
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ mov r0, #3
+ bl MOD13_022252DC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_022256FC: .word 0x0223F184
+_02225700: .word 0x0224308C
+_02225704: .word 0x0223F19C
+_02225708: .word 0x0223F1A0
+_0222570C: .word 0x0223F19E
+_02225710: .word 0x0223F1A2
+
+ arm_func_start MOD13_02225714
+MOD13_02225714: ; 0x02225714
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02225604
+ bl MOD13_02225600
+ bl MOD13_02225554
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02225760 ; =MOD13_02225714
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225760: .word MOD13_02225714
+
+ arm_func_start MOD13_02225764
+MOD13_02225764: ; 0x02225764
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221F0EC
+ ldr r0, _022257AC ; =0x02225730
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022257AC: .word 0x02225730
+
+ arm_func_start MOD13_022257B0
+MOD13_022257B0: ; 0x022257B0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AEF4
+ ldr r0, _02225808 ; =MOD13_02225764
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225808: .word MOD13_02225764
+
+ arm_func_start MOD13_0222580C
+MOD13_0222580C: ; 0x0222580C
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #0x48
+ ldr r4, _0222597C ; =0x0223F154
+ add r3, sp, #0
+ mov r2, #0xb
+_02225820:
+ ldrb r1, [r4], #1
+ ldrb r0, [r4], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _02225820
+ ldr r4, _02225980 ; =0x0223F16C
+ add r3, sp, #0x16
+ mov r2, #0xb
+_02225844:
+ ldrb r1, [r4], #1
+ ldrb r0, [r4], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _02225844
+ ldrb r2, [r4]
+ ldr r0, _02225984 ; =0x0224005C
+ ldr r1, _02225988 ; =0x020C8D4C
+ strb r2, [r3]
+ bl MOD13_0221F174
+ ldr r0, _0222598C ; =0x02240074
+ ldr r1, _02225990 ; =0x020C908C
+ bl MOD13_0221F174
+ add r0, sp, #0x16
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _02225994 ; =0x02243094
+ str r0, [r1]
+ add r0, sp, #0
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ mov r5, r0
+ add r0, sp, #0x30
+ bl FUN_02095EC8
+ ldr r1, [sp, #0x30]
+ ldr r0, [sp, #0x34]
+ mov r6, #0
+ cmp r0, r6
+ cmpeq r1, r6
+ bne _02225900
+ add r8, r5, #0xc0
+ add r7, r5, #0x40
+ mov r4, #0x20
+_022258DC:
+ mov r0, r8
+ mov r1, r7
+ mov r2, r4
+ bl MI_CpuCopy8
+ add r6, r6, #1
+ cmp r6, #2
+ add r8, r8, #0x20
+ add r7, r7, #0x20
+ blt _022258DC
+_02225900:
+ mov r0, r5
+ mov r1, #0x200
+ bl DC_FlushRange
+ mov r0, r5
+ mov r1, #0
+ mov r2, #0x200
+ bl GX_LoadBGPltt
+ mov r0, r5
+ bl MOD13_0223939C
+ ldr ip, _02225998 ; =0x04001008
+ ldr r3, _0222599C ; =0x0400100A
+ ldrh r0, [ip]
+ ldr r2, _022259A0 ; =0x0400000A
+ ldr r1, _022259A4 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #0x48
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0222597C: .word 0x0223F154
+_02225980: .word 0x0223F16C
+_02225984: .word 0x0224005C
+_02225988: .word 0x020C8D4C
+_0222598C: .word 0x02240074
+_02225990: .word 0x020C908C
+_02225994: .word 0x02243094
+_02225998: .word 0x04001008
+_0222599C: .word 0x0400100A
+_022259A0: .word 0x0400000A
+_022259A4: .word 0x0400000C
+
+ arm_func_start MOD13_022259A8
+MOD13_022259A8: ; 0x022259A8
+ stmdb sp!, {r4, lr}
+ ldr r0, _02225A70 ; =0x02243090
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_0222580C
+ mov r0, #0x10
+ bl MOD13_0221F4CC
+ mov r0, #3
+ bl MOD13_02234384
+ mov r0, #0x39
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #0
+ mov r1, #0x5b
+ bl MOD13_02239E54
+ ldr r3, _02225A74 ; =0x02243098
+ ldr r1, _02225A78 ; =0x0223F150
+ str r0, [r3]
+ ldrh ip, [r1]
+ ldrh r2, [r1, #2]
+ ldr r1, _02225A7C ; =0x000001FF
+ ldr lr, [r0]
+ and r4, ip, r1
+ and ip, r2, #0xff
+ ldr r1, _02225A80 ; =0xFE00FF00
+ ldr r2, _02225A84 ; =0x0224308C
+ and r1, lr, r1
+ orr r1, r1, ip
+ orr r1, r1, r4, lsl #16
+ str r1, [r0]
+ ldr lr, [r3]
+ ldr r0, _02225A88 ; =0x0223F19C
+ ldrh r3, [lr, #4]
+ ldr r1, _02225A8C ; =0x0223F1A0
+ ldr ip, _02225A90 ; =0x0223F19E
+ bic r3, r3, #0xc00
+ orr r3, r3, #0xc00
+ strh r3, [lr, #4]
+ ldrb r2, [r2]
+ ldr r3, _02225A94 ; =0x0223F1A2
+ mov lr, r2, lsl #3
+ ldrh r0, [r0, lr]
+ ldrh r1, [r1, lr]
+ ldrh r2, [ip, lr]
+ ldrh r3, [r3, lr]
+ bl MOD13_0221F25C
+ ldr r0, _02225A98 ; =MOD13_022257B0
+ bl MOD13_02222FBC
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02225A70: .word 0x02243090
+_02225A74: .word 0x02243098
+_02225A78: .word 0x0223F150
+_02225A7C: .word 0x000001FF
+_02225A80: .word 0xFE00FF00
+_02225A84: .word 0x0224308C
+_02225A88: .word 0x0223F19C
+_02225A8C: .word 0x0223F1A0
+_02225A90: .word 0x0223F19E
+_02225A94: .word 0x0223F1A2
+_02225A98: .word MOD13_022257B0
+
+ arm_func_start MOD13_02225A9C
+MOD13_02225A9C: ; 0x02225A9C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r0, #2
+ bne _02225ACC
+ bl MOD13_02233808
+ ldr r0, _02225B24 ; =0x0224309C
+ mov r1, #1
+ strb r1, [r0]
+ bl MOD13_022341E8
+ mov r0, #0x10
+ bl MOD13_0223424C
+ b _02225B08
+_02225ACC:
+ cmp r0, #3
+ bne _02225AF0
+ ldr r0, _02225B24 ; =0x0224309C
+ mov r1, #2
+ strb r1, [r0]
+ bl MOD13_022341E8
+ mov r0, #0x12
+ bl MOD13_0223424C
+ b _02225B08
+_02225AF0:
+ ldr r0, _02225B24 ; =0x0224309C
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_022341E8
+ mov r0, #0x12
+ bl MOD13_0223424C
+_02225B08:
+ mov r0, #0
+ bl MOD13_02223944
+ bl MOD13_022239B4
+ ldr r0, _02225B28 ; =MOD13_02225BD8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225B24: .word 0x0224309C
+_02225B28: .word MOD13_02225BD8
+
+ arm_func_start MOD13_02225B2C
+MOD13_02225B2C: ; 0x02225B2C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0222395C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221F694
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02225BC8 ; =0x0224309C
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02225BA0
+ ldr r0, _02225BCC ; =MOD13_02226CB0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02225BA0:
+ cmp r0, #2
+ bne _02225BB8
+ ldr r0, _02225BD0 ; =MOD13_022268B4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02225BB8:
+ ldr r0, _02225BD4 ; =MOD13_02225FE4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225BC8: .word 0x0224309C
+_02225BCC: .word MOD13_02226CB0
+_02225BD0: .word MOD13_022268B4
+_02225BD4: .word MOD13_02225FE4
+
+ arm_func_start MOD13_02225BD8
+MOD13_02225BD8: ; 0x02225BD8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02225C04 ; =MOD13_02225B2C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225C04: .word MOD13_02225B2C
+
+ arm_func_start MOD13_02225C08
+MOD13_02225C08: ; 0x02225C08
+ bx lr
+
+ arm_func_start MOD13_02225C0C
+MOD13_02225C0C: ; 0x02225C0C
+ bx lr
+
+ arm_func_start MOD13_02225C10
+MOD13_02225C10: ; 0x02225C10
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02225C0C
+ bl MOD13_02225C08
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02225C5C ; =MOD13_02225A9C
+ bl MOD13_02223944
+ ldr r0, _02225C60 ; =MOD13_02225C10
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225C5C: .word MOD13_02225A9C
+_02225C60: .word MOD13_02225C10
+
+ arm_func_start MOD13_02225C64
+MOD13_02225C64: ; 0x02225C64
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02225C9C ; =0x02225C28
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225C9C: .word 0x02225C28
+
+ arm_func_start MOD13_02225CA0
+MOD13_02225CA0: ; 0x02225CA0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02225D20 ; =0x0224008C
+ ldr r1, _02225D24 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02225D28 ; =0x04001008
+ ldr ip, _02225D2C ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02225D30 ; =0x04000008
+ ldr r2, _02225D34 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02225D38 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225D20: .word 0x0224008C
+_02225D24: .word 0x020C908C
+_02225D28: .word 0x04001008
+_02225D2C: .word 0x0400100A
+_02225D30: .word 0x04000008
+_02225D34: .word 0x0400000A
+_02225D38: .word 0x0400000C
+
+ arm_func_start MOD13_02225D3C
+MOD13_02225D3C: ; 0x02225D3C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02225CA0
+ mov r0, #0x1e
+ bl MOD13_0221F070
+ mov r0, #0
+ bl MOD13_0221E694
+ mov r0, #1
+ bl MOD13_0221F6E0
+ mov r0, #0xb
+ bl MOD13_0223424C
+ ldr r0, _02225D78 ; =MOD13_02225C64
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225D78: .word MOD13_02225C64
+
+ arm_func_start MOD13_02225D7C
+MOD13_02225D7C: ; 0x02225D7C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0x1000000
+ bl OS_SpinWait
+ bl PM_ForceToPowerOff
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #3
+ mov r1, #1
+ mov r2, #0x3f
+ mov r3, #0x40
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x3f
+ mov r3, #0x40
+ bl MOD13_0223A2A8
+ ldr r0, _02225E14 ; =MOD13_02225D7C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225E14: .word MOD13_02225D7C
+
+ arm_func_start MOD13_02225E18
+MOD13_02225E18: ; 0x02225E18
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02225E3C ; =0x02225DC0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225E3C: .word 0x02225DC0
+
+ arm_func_start MOD13_02225E40
+MOD13_02225E40: ; 0x02225E40
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _02225E70 ; =MOD13_02225E18
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225E70: .word MOD13_02225E18
+
+ arm_func_start MOD13_02225E74
+MOD13_02225E74: ; 0x02225E74
+ bx lr
+
+ arm_func_start MOD13_02225E78
+MOD13_02225E78: ; 0x02225E78
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02225E78
+ bl MOD13_02225E74
+ bl MOD13_02225E40
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02225EF0 ; =0x02225EA4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225EF0: .word 0x02225EA4
+
+ arm_func_start MOD13_02225EF4
+MOD13_02225EF4: ; 0x02225EF4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #5
+ bl MOD13_0221F0EC
+ ldr r0, _02225F28 ; =0x02225EC0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225F28: .word 0x02225EC0
+
+ arm_func_start MOD13_02225F2C
+MOD13_02225F2C: ; 0x02225F2C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02225F64 ; =MOD13_02225EF4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225F64: .word MOD13_02225EF4
+
+ arm_func_start MOD13_02225F68
+MOD13_02225F68: ; 0x02225F68
+ ldr r1, _02225FD0 ; =0x04001008
+ ldr ip, _02225FD4 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02225FD8 ; =0x04000008
+ ldr r2, _02225FDC ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02225FE0 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_02225FD0: .word 0x04001008
+_02225FD4: .word 0x0400100A
+_02225FD8: .word 0x04000008
+_02225FDC: .word 0x0400000A
+_02225FE0: .word 0x0400000C
+
+ arm_func_start MOD13_02225FE4
+MOD13_02225FE4: ; 0x02225FE4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02225F68
+ mov r0, #0x1f
+ bl MOD13_0221F070
+ ldr r0, _02226008 ; =MOD13_02225F2C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226008: .word MOD13_02225F2C
+
+ arm_func_start MOD13_0222600C
+MOD13_0222600C: ; 0x0222600C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02226068 ; =MOD13_022275A4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226068: .word MOD13_022275A4
+
+ arm_func_start MOD13_0222606C
+MOD13_0222606C: ; 0x0222606C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _022260B0 ; =MOD13_0222600C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022260B0: .word MOD13_0222600C
+
+ arm_func_start MOD13_022260B4
+MOD13_022260B4: ; 0x022260B4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _022260D8 ; =MOD13_0222606C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022260D8: .word MOD13_0222606C
+
+ arm_func_start MOD13_022260DC
+MOD13_022260DC: ; 0x022260DC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _0222610C ; =MOD13_022260B4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222610C: .word MOD13_022260B4
+
+ arm_func_start MOD13_02226110
+MOD13_02226110: ; 0x02226110
+ bx lr
+
+ arm_func_start MOD13_02226114
+MOD13_02226114: ; 0x02226114
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02226114
+ bl MOD13_02226110
+ bl MOD13_022260DC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222618C ; =0x02226140
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222618C: .word 0x02226140
+
+ arm_func_start MOD13_02226190
+MOD13_02226190: ; 0x02226190
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #4
+ bl MOD13_0221F0EC
+ ldr r0, _022261D8 ; =0x0222615C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022261D8: .word 0x0222615C
+
+ arm_func_start MOD13_022261DC
+MOD13_022261DC: ; 0x022261DC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02226214 ; =MOD13_02226190
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226214: .word MOD13_02226190
+
+ arm_func_start MOD13_02226218
+MOD13_02226218: ; 0x02226218
+ ldr r1, _02226280 ; =0x04001008
+ ldr ip, _02226284 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02226288 ; =0x04000008
+ ldr r2, _0222628C ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02226290 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_02226280: .word 0x04001008
+_02226284: .word 0x0400100A
+_02226288: .word 0x04000008
+_0222628C: .word 0x0400000A
+_02226290: .word 0x0400000C
+
+ arm_func_start MOD13_02226294
+MOD13_02226294: ; 0x02226294
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02226218
+ mov r0, #0x1a
+ bl MOD13_0221F070
+ ldr r0, _022262B8 ; =MOD13_022261DC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022262B8: .word MOD13_022261DC
+
+ arm_func_start MOD13_022262BC
+MOD13_022262BC: ; 0x022262BC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02226388 ; =0x022430A0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022262FC
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_022262FC:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _02226388 ; =0x022430A0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02226334
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_02226334:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _02226388 ; =0x022430A0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222636C
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222638C ; =MOD13_022259A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222636C:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02226390 ; =MOD13_02226294
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226388: .word 0x022430A0
+_0222638C: .word MOD13_022259A8
+_02226390: .word MOD13_02226294
+
+ arm_func_start MOD13_02226394
+MOD13_02226394: ; 0x02226394
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ ldr r0, _022263FC ; =0x022430A0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022263D8
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_022263D8:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02226400 ; =MOD13_022262BC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022263FC: .word 0x022430A0
+_02226400: .word MOD13_022262BC
+
+ arm_func_start MOD13_02226404
+MOD13_02226404: ; 0x02226404
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02226428 ; =MOD13_02226394
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226428: .word MOD13_02226394
+
+ arm_func_start MOD13_0222642C
+MOD13_0222642C: ; 0x0222642C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _02226450
+ cmp r0, #1
+ beq _0222645C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02226450:
+ mov r0, #7
+ bl MOD13_0223424C
+ b _02226470
+_0222645C:
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _02226480 ; =0x022430A0
+ mov r1, #1
+ strb r1, [r0]
+_02226470:
+ ldr r0, _02226484 ; =MOD13_02226404
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226480: .word 0x022430A0
+_02226484: .word MOD13_02226404
+
+ arm_func_start MOD13_02226488
+MOD13_02226488: ; 0x02226488
+ bx lr
+
+ arm_func_start MOD13_0222648C
+MOD13_0222648C: ; 0x0222648C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _022264AC
+ mov r0, #1
+ bl MOD13_0221ECF4
+_022264AC:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222648C
+ bl MOD13_02226488
+ bl MOD13_0222642C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222651C ; =0x022264D0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222651C: .word 0x022264D0
+
+ arm_func_start MOD13_02226520
+MOD13_02226520: ; 0x02226520
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #3
+ bl MOD13_0221F0EC
+ ldr r0, _02226554 ; =0x022264EC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226554: .word 0x022264EC
+
+ arm_func_start MOD13_02226558
+MOD13_02226558: ; 0x02226558
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _022265B0 ; =MOD13_02226520
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022265B0: .word MOD13_02226520
+
+ arm_func_start MOD13_022265B4
+MOD13_022265B4: ; 0x022265B4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02226634 ; =0x022400A0
+ ldr r1, _02226638 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222663C ; =0x04001008
+ ldr ip, _02226640 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02226644 ; =0x04000008
+ ldr r2, _02226648 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222664C ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226634: .word 0x022400A0
+_02226638: .word 0x020C908C
+_0222663C: .word 0x04001008
+_02226640: .word 0x0400100A
+_02226644: .word 0x04000008
+_02226648: .word 0x0400000A
+_0222664C: .word 0x0400000C
+
+ arm_func_start MOD13_02226650
+MOD13_02226650: ; 0x02226650
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02226698 ; =0x022430A0
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_022265B4
+ mov r0, #0x13
+ bl MOD13_0221F4CC
+ mov r0, #0x3c
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #0x1b
+ bl MOD13_0221F070
+ ldr r0, _0222669C ; =MOD13_02226558
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226698: .word 0x022430A0
+_0222669C: .word MOD13_02226558
+
+ arm_func_start MOD13_022266A0
+MOD13_022266A0: ; 0x022266A0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022266D8 ; =0x022430A4
+ ldrb r1, [r0]
+ add r1, r1, #1
+ strb r1, [r0]
+ ldrb r0, [r0]
+ cmp r0, #0x78
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ ldr r0, _022266DC ; =MOD13_02226754
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022266D8: .word 0x022430A4
+_022266DC: .word MOD13_02226754
+
+ arm_func_start MOD13_022266E0
+MOD13_022266E0: ; 0x022266E0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02226750 ; =MOD13_022259A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226750: .word MOD13_022259A8
+
+ arm_func_start MOD13_02226754
+MOD13_02226754: ; 0x02226754
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02226794 ; =MOD13_022266E0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226794: .word MOD13_022266E0
+
+ arm_func_start MOD13_02226798
+MOD13_02226798: ; 0x02226798
+ bx lr
+
+ arm_func_start MOD13_0222679C
+MOD13_0222679C: ; 0x0222679C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022266A0
+ bl MOD13_02226798
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0222395C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _022267F0 ; =MOD13_0222679C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022267F0: .word MOD13_0222679C
+
+ arm_func_start MOD13_022267F4
+MOD13_022267F4: ; 0x022267F4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222682C ; =0x022267B4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222682C: .word 0x022267B4
+
+ arm_func_start MOD13_02226830
+MOD13_02226830: ; 0x02226830
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222689C ; =0x022400B4
+ ldr r1, _022268A0 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr ip, _022268A4 ; =0x04001008
+ ldr r3, _022268A8 ; =0x0400100A
+ ldrh r0, [ip]
+ ldr r2, _022268AC ; =0x0400000A
+ ldr r1, _022268B0 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222689C: .word 0x022400B4
+_022268A0: .word 0x020C908C
+_022268A4: .word 0x04001008
+_022268A8: .word 0x0400100A
+_022268AC: .word 0x0400000A
+_022268B0: .word 0x0400000C
+
+ arm_func_start MOD13_022268B4
+MOD13_022268B4: ; 0x022268B4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022268E4 ; =0x022430A4
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_02226830
+ mov r0, #0x21
+ bl MOD13_0221F070
+ ldr r0, _022268E8 ; =MOD13_022267F4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022268E4: .word 0x022430A4
+_022268E8: .word MOD13_022267F4
+
+ arm_func_start MOD13_022268EC
+MOD13_022268EC: ; 0x022268EC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _022269A8 ; =0x022430AC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02226954
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_02226954:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _022269A8 ; =0x022430AC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222698C
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022269AC ; =MOD13_022259A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222698C:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022269B0 ; =MOD13_022275A4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022269A8: .word 0x022430AC
+_022269AC: .word MOD13_022259A8
+_022269B0: .word MOD13_022275A4
+
+ arm_func_start MOD13_022269B4
+MOD13_022269B4: ; 0x022269B4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ ldr r0, _02226A1C ; =0x022430AC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022269F8
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_022269F8:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02226A20 ; =MOD13_022268EC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226A1C: .word 0x022430AC
+_02226A20: .word MOD13_022268EC
+
+ arm_func_start MOD13_02226A24
+MOD13_02226A24: ; 0x02226A24
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02226A48 ; =MOD13_022269B4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226A48: .word MOD13_022269B4
+
+ arm_func_start MOD13_02226A4C
+MOD13_02226A4C: ; 0x02226A4C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _02226A84
+ cmp r0, #1
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r1, _02226AA8 ; =0x022430AC
+ mov r2, #1
+ mov r0, #6
+ strb r2, [r1]
+ bl MOD13_0223424C
+ b _02226A98
+_02226A84:
+ ldr r1, _02226AA8 ; =0x022430AC
+ mov r2, #0
+ mov r0, #7
+ strb r2, [r1]
+ bl MOD13_0223424C
+_02226A98:
+ ldr r0, _02226AAC ; =MOD13_02226A24
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226AA8: .word 0x022430AC
+_02226AAC: .word MOD13_02226A24
+
+ arm_func_start MOD13_02226AB0
+MOD13_02226AB0: ; 0x02226AB0
+ bx lr
+
+ arm_func_start MOD13_02226AB4
+MOD13_02226AB4: ; 0x02226AB4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02226AD4
+ mov r0, #1
+ bl MOD13_0221ECF4
+_02226AD4:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02226AB4
+ bl MOD13_02226AB0
+ bl MOD13_02226A4C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0222395C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02226B54 ; =0x02226AF8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226B54: .word 0x02226AF8
+
+ arm_func_start MOD13_02226B58
+MOD13_02226B58: ; 0x02226B58
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #3
+ bl MOD13_0221F0EC
+ ldr r0, _02226BA0 ; =0x02226B14
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226BA0: .word 0x02226B14
+
+ arm_func_start MOD13_02226BA4
+MOD13_02226BA4: ; 0x02226BA4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02226C0C ; =0x022430A8
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02226BFC
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+_02226BFC:
+ ldr r0, _02226C10 ; =MOD13_02226B58
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226C0C: .word 0x022430A8
+_02226C10: .word MOD13_02226B58
+
+ arm_func_start MOD13_02226C14
+MOD13_02226C14: ; 0x02226C14
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02226C94 ; =0x022400C8
+ ldr r1, _02226C98 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02226C9C ; =0x04001008
+ ldr ip, _02226CA0 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02226CA4 ; =0x04000008
+ ldr r2, _02226CA8 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02226CAC ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226C94: .word 0x022400C8
+_02226C98: .word 0x020C908C
+_02226C9C: .word 0x04001008
+_02226CA0: .word 0x0400100A
+_02226CA4: .word 0x04000008
+_02226CA8: .word 0x0400000A
+_02226CAC: .word 0x0400000C
+
+ arm_func_start MOD13_02226CB0
+MOD13_02226CB0: ; 0x02226CB0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02226C14
+ mov r0, #0x20
+ bl MOD13_0221F070
+ mov r0, #0x3c
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ ldr r1, _02226CEC ; =0x022430A8
+ strb r0, [r1]
+ ldr r0, _02226CF0 ; =MOD13_02226BA4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226CEC: .word 0x022430A8
+_02226CF0: .word MOD13_02226BA4
+
+ arm_func_start MOD13_02226CF4
+MOD13_02226CF4: ; 0x02226CF4
+ ldr r0, _02226D04 ; =0x022430B0
+ mov r1, #1
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_02226D04: .word 0x022430B0
+
+ arm_func_start MOD13_02226D08
+MOD13_02226D08: ; 0x02226D08
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02226DDC ; =0x022430B0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02226D30
+ ldr r0, _02226DE0 ; =0x022430B4
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02226D40
+_02226D30:
+ bl MOD13_0222395C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+_02226D40:
+ mov r0, #0
+ bl MOD13_0223A65C
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _02226DE0 ; =0x022430B4
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02226D74
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_02226D74:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02226DDC ; =0x022430B0
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02226DA0
+ ldr r0, _02226DE4 ; =MOD13_02226CB0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02226DA0:
+ ldr r0, _02226DE0 ; =0x022430B4
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02226DCC
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ ldr r0, _02226DE8 ; =MOD13_022259A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02226DCC:
+ ldr r0, _02226DEC ; =MOD13_02225D3C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226DDC: .word 0x022430B0
+_02226DE0: .word 0x022430B4
+_02226DE4: .word MOD13_02226CB0
+_02226DE8: .word MOD13_022259A8
+_02226DEC: .word MOD13_02225D3C
+
+ arm_func_start MOD13_02226DF0
+MOD13_02226DF0: ; 0x02226DF0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02226E5C ; =0x022430B0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02226E48
+ ldr r0, _02226E60 ; =0x022430B4
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02226E48
+ bl MOD13_02223938
+ b _02226E4C
+_02226E48:
+ bl MOD13_022239B4
+_02226E4C:
+ ldr r0, _02226E64 ; =MOD13_02226D08
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226E5C: .word 0x022430B0
+_02226E60: .word 0x022430B4
+_02226E64: .word MOD13_02226D08
+
+ arm_func_start MOD13_02226E68
+MOD13_02226E68: ; 0x02226E68
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02226EC8 ; =0x022430B4
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02226EA4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_02226EA4:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02226ECC ; =MOD13_02226DF0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226EC8: .word 0x022430B4
+_02226ECC: .word MOD13_02226DF0
+
+ arm_func_start MOD13_02226ED0
+MOD13_02226ED0: ; 0x02226ED0
+ bx lr
+
+ arm_func_start MOD13_02226ED4
+MOD13_02226ED4: ; 0x02226ED4
+ bx lr
+
+ arm_func_start MOD13_02226ED8
+MOD13_02226ED8: ; 0x02226ED8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02226ED4
+ bl MOD13_02226ED0
+ bl MOD13_02235E9C
+ cmp r0, #0
+ beq _02226F04
+ cmp r0, #1
+ beq _02226F1C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02226F04:
+ ldr r1, _02226F4C ; =0x022430B4
+ mov r2, #0
+ mov r0, #7
+ strb r2, [r1]
+ bl MOD13_0223424C
+ b _02226F30
+_02226F1C:
+ ldr r1, _02226F4C ; =0x022430B4
+ mov r2, #1
+ mov r0, #0xe
+ strb r2, [r1]
+ bl MOD13_0223424C
+_02226F30:
+ mov r0, #0
+ bl MOD13_02223944
+ bl MOD13_02235EB0
+ ldr r0, _02226F50 ; =MOD13_02226E68
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226F4C: .word 0x022430B4
+_02226F50: .word MOD13_02226E68
+
+ arm_func_start MOD13_02226F54
+MOD13_02226F54: ; 0x02226F54
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _02226F80 ; =MOD13_02226ED8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226F80: .word MOD13_02226ED8
+
+ arm_func_start MOD13_02226F84
+MOD13_02226F84: ; 0x02226F84
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r2, #0
+ mov r0, #0x1d
+ mov r1, #4
+ mvn r3, #0
+ str r2, [sp]
+ bl MOD13_02235EFC
+ ldr r0, _02226FC8 ; =MOD13_02226F54
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226FC8: .word MOD13_02226F54
+
+ arm_func_start MOD13_02226FCC
+MOD13_02226FCC: ; 0x02226FCC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02227004 ; =MOD13_02226F84
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227004: .word MOD13_02226F84
+
+ arm_func_start MOD13_02227008
+MOD13_02227008: ; 0x02227008
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02227088 ; =0x022400DC
+ ldr r1, _0222708C ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02227090 ; =0x04001008
+ ldr ip, _02227094 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02227098 ; =0x04000008
+ ldr r2, _0222709C ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _022270A0 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227088: .word 0x022400DC
+_0222708C: .word 0x020C908C
+_02227090: .word 0x04001008
+_02227094: .word 0x0400100A
+_02227098: .word 0x04000008
+_0222709C: .word 0x0400000A
+_022270A0: .word 0x0400000C
+
+ arm_func_start MOD13_022270A4
+MOD13_022270A4: ; 0x022270A4
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0x2c
+ bl MOD13_0222391C
+ mov r5, r0
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_0223A7F0
+ ldr r2, _02227160 ; =0x022430B4
+ mov r3, #0
+ ldr r1, _02227164 ; =0x022430B0
+ mov r4, r0
+ strb r3, [r2]
+ strb r3, [r1]
+ bl MOD13_02227008
+ mov r0, #0
+ add r1, sp, #0x10
+ mov r2, #0x16
+ bl MIi_CpuClear16
+ ldrb r2, [r5, #1]
+ add r0, r5, #2
+ add r1, sp, #0x10
+ mov r2, r2, lsl #1
+ bl MIi_CpuCopy16
+ ldr r0, _02227168 ; =0x0223F1B4
+ mov lr, #2
+ ldrh r2, [r0, #2]
+ ldrh r5, [r0, #6]
+ ldrh r1, [r0]
+ mov ip, #0x480
+ sub r5, r5, r2
+ str r5, [sp]
+ str lr, [sp, #4]
+ add r3, sp, #0x10
+ str ip, [sp, #8]
+ str r3, [sp, #0xc]
+ ldrh r3, [r0, #4]
+ mov r0, r4
+ sub r3, r3, r1
+ bl MOD13_0223A4F0
+ mov r0, r4
+ bl MOD13_0223A410
+ ldr r0, _0222716C ; =MOD13_02226CF4
+ bl MOD13_02223944
+ ldr r0, _02227170 ; =MOD13_02226FCC
+ bl MOD13_02222FBC
+ add sp, sp, #0x2c
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02227160: .word 0x022430B4
+_02227164: .word 0x022430B0
+_02227168: .word 0x0223F1B4
+_0222716C: .word MOD13_02226CF4
+_02227170: .word MOD13_02226FCC
+
+ arm_func_start MOD13_02227174
+MOD13_02227174: ; 0x02227174
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl MOD13_022341E8
+ cmp r4, #0
+ bne _022271A0
+ ldr r1, _022271C8 ; =0x022430B8
+ mov r2, #1
+ mov r0, #0x10
+ strb r2, [r1]
+ bl MOD13_0223424C
+ b _022271B4
+_022271A0:
+ ldr r1, _022271C8 ; =0x022430B8
+ mov r2, #2
+ mov r0, #0x12
+ strb r2, [r1]
+ bl MOD13_0223424C
+_022271B4:
+ mov r0, #0
+ bl MOD13_02223944
+ ldr r0, _022271CC ; =MOD13_02227384
+ bl MOD13_02222FBC
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022271C8: .word 0x022430B8
+_022271CC: .word MOD13_02227384
+
+ arm_func_start MOD13_022271D0
+MOD13_022271D0: ; 0x022271D0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _022272E4 ; =0x022430B8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02227210
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_02227210:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _022272E4 ; =0x022430B8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02227240
+ bl MOD13_0222395C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+_02227240:
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _022272E4 ; =0x022430B8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222726C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_0222726C:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _022272E4 ; =0x022430B8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022272A4
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022272E8 ; =MOD13_022259A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022272A4:
+ cmp r0, #2
+ bne _022272C8
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022272EC ; =MOD13_02226CB0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022272C8:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022272F0 ; =MOD13_022270A4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022272E4: .word 0x022430B8
+_022272E8: .word MOD13_022259A8
+_022272EC: .word MOD13_02226CB0
+_022272F0: .word MOD13_022270A4
+
+ arm_func_start MOD13_022272F4
+MOD13_022272F4: ; 0x022272F4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222737C ; =0x022430B8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02227330
+ bl MOD13_0222395C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+_02227330:
+ bl MOD13_0221ED28
+ ldr r0, _0222737C ; =0x022430B8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02227358
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_02227358:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02227380 ; =MOD13_022271D0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222737C: .word 0x022430B8
+_02227380: .word MOD13_022271D0
+
+ arm_func_start MOD13_02227384
+MOD13_02227384: ; 0x02227384
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022273BC ; =0x022430B8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022273A0
+ bl MOD13_022239B4
+_022273A0:
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _022273C0 ; =MOD13_022272F4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022273BC: .word 0x022430B8
+_022273C0: .word MOD13_022272F4
+
+ arm_func_start MOD13_022273C4
+MOD13_022273C4: ; 0x022273C4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_022341E8
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _022273F8 ; =MOD13_02227384
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022273F8: .word MOD13_02227384
+
+ arm_func_start MOD13_022273FC
+MOD13_022273FC: ; 0x022273FC
+ bx lr
+
+ arm_func_start MOD13_02227400
+MOD13_02227400: ; 0x02227400
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02227428
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02227428:
+ bl MOD13_022275F8
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02227400
+ bl MOD13_022273FC
+ bl MOD13_022273C4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _02227490 ; =0x02227448
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227490: .word 0x02227448
+
+ arm_func_start MOD13_02227494
+MOD13_02227494: ; 0x02227494
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #1
+ bl MOD13_0221F0EC
+ ldr r0, _022274C8 ; =0x02227464
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022274C8: .word 0x02227464
+
+ arm_func_start MOD13_022274CC
+MOD13_022274CC: ; 0x022274CC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02227504 ; =MOD13_02227494
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227504: .word MOD13_02227494
+
+ arm_func_start MOD13_02227508
+MOD13_02227508: ; 0x02227508
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02227588 ; =0x022400F0
+ ldr r1, _0222758C ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02227590 ; =0x04001008
+ ldr ip, _02227594 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02227598 ; =0x04000008
+ ldr r2, _0222759C ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _022275A0 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227588: .word 0x022400F0
+_0222758C: .word 0x020C908C
+_02227590: .word 0x04001008
+_02227594: .word 0x0400100A
+_02227598: .word 0x04000008
+_0222759C: .word 0x0400000A
+_022275A0: .word 0x0400000C
+
+ arm_func_start MOD13_022275A4
+MOD13_022275A4: ; 0x022275A4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022275EC ; =MOD13_02227174
+ bl MOD13_022239D4
+ ldr r0, _022275F0 ; =0x022430B8
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_02227508
+ mov r0, #0x1c
+ bl MOD13_0221F070
+ mov r0, #0
+ bl MOD13_0221E694
+ mov r0, #0xb
+ bl MOD13_0223424C
+ ldr r0, _022275F4 ; =MOD13_022274CC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022275EC: .word MOD13_02227174
+_022275F0: .word 0x022430B8
+_022275F4: .word MOD13_022274CC
+
+ arm_func_start MOD13_022275F8
+MOD13_022275F8: ; 0x022275F8
+ ldr r0, _02227614 ; =0x027FFFA8
+ ldrh r0, [r0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_02227614: .word 0x027FFFA8
+
+ arm_func_start MOD13_02227618
+MOD13_02227618: ; 0x02227618
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022341E8
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r1, _02227648 ; =0x022430BC
+ mov r2, #0
+ ldr r0, _0222764C ; =MOD13_02227894
+ strb r2, [r1]
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227648: .word 0x022430BC
+_0222764C: .word MOD13_02227894
+
+ arm_func_start MOD13_02227650
+MOD13_02227650: ; 0x02227650
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02227938
+ bl MOD13_02227934
+ bl MOD13_022278D8
+ ldr r1, _0222769C ; =0x022430C0
+ ldr r0, _022276A0 ; =0x00000438
+ ldrh r2, [r1]
+ add r2, r2, #1
+ strh r2, [r1]
+ ldrh r1, [r1]
+ cmp r1, r0
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ bl MOD13_022341E8
+ ldr r0, _022276A4 ; =MOD13_02227894
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222769C: .word 0x022430C0
+_022276A0: .word 0x00000438
+_022276A4: .word MOD13_02227894
+
+ arm_func_start MOD13_022276A8
+MOD13_022276A8: ; 0x022276A8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _022276D0 ; =MOD13_02227894
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022276D0: .word MOD13_02227894
+
+ arm_func_start MOD13_022276D4
+MOD13_022276D4: ; 0x022276D4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _02227708 ; =MOD13_022276A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227708: .word MOD13_022276A8
+
+ arm_func_start MOD13_0222770C
+MOD13_0222770C: ; 0x0222770C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0223B6A8
+ mov r0, #0
+ bl MOD13_0223C1E0
+ bl MOD13_02227938
+ bl MOD13_022278D8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02227818 ; =0x022430BC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02227770
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_02227770:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _02227818 ; =0x022430BC
+ ldrb r0, [r0]
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ bl MOD13_02222D7C
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _02227818 ; =0x022430BC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022277C4
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_022277C4:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _02227818 ; =0x022430BC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022277FC
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222781C ; =MOD13_02230EC4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022277FC:
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _02227820 ; =MOD13_02227ED0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227818: .word 0x022430BC
+_0222781C: .word MOD13_02230EC4
+_02227820: .word MOD13_02227ED0
+
+ arm_func_start MOD13_02227824
+MOD13_02227824: ; 0x02227824
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ ldr r0, _0222788C ; =0x022430BC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02227868
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_02227868:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02227890 ; =0x02227730
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222788C: .word 0x022430BC
+_02227890: .word 0x02227730
+
+ arm_func_start MOD13_02227894
+MOD13_02227894: ; 0x02227894
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ ldr r0, _022278D0 ; =0x022430C4
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _022278B8
+ mov r0, #1
+ bl MOD13_0223C104
+_022278B8:
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _022278D4 ; =MOD13_02227824
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022278D0: .word 0x022430C4
+_022278D4: .word MOD13_02227824
+
+ arm_func_start MOD13_022278D8
+MOD13_022278D8: ; 0x022278D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222792C ; =0x022430C4
+ ldr r1, [r0]
+ cmp r1, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #1
+ bl MOD13_0223C110
+ ldr r0, _0222792C ; =0x022430C4
+ mov r1, #0
+ str r1, [r0]
+ bl MOD13_0221EC84
+ ldr r0, _02227930 ; =MOD13_02227618
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222792C: .word 0x022430C4
+_02227930: .word MOD13_02227618
+
+ arm_func_start MOD13_02227934
+MOD13_02227934: ; 0x02227934
+ bx lr
+
+ arm_func_start MOD13_02227938
+MOD13_02227938: ; 0x02227938
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02227960
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02227960:
+ bl MOD13_02227CA0
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02227938
+ bl MOD13_02227934
+ bl MOD13_022278D8
+ bl MOD13_02222D0C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ cmp r0, #1
+ beq _022279BC
+ cmp r0, #2
+ beq _022279FC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022279BC:
+ ldr r0, _02227A68 ; =0x022430C4
+ ldr r1, [r0]
+ cmp r1, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r2, _02227A6C ; =0x022430BC
+ mov r0, #1
+ strb r0, [r2]
+ bl MOD13_0223C104
+ ldr r1, _02227A68 ; =0x022430C4
+ mov r2, #0
+ ldr r0, _02227A70 ; =MOD13_02227650
+ str r2, [r1]
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022279FC:
+ ldr r0, _02227A68 ; =0x022430C4
+ ldr r0, [r0]
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_022341E8
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #0xc
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ mov r0, #9
+ bl MOD13_0223424C
+ bl MOD13_0221EC84
+ ldr r1, _02227A68 ; =0x022430C4
+ mov r0, #1
+ ldr r1, [r1]
+ bl MOD13_0223C104
+ ldr r1, _02227A68 ; =0x022430C4
+ mov r2, #0
+ ldr r0, _02227A74 ; =MOD13_022276D4
+ str r2, [r1]
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227A68: .word 0x022430C4
+_02227A6C: .word 0x022430BC
+_02227A70: .word MOD13_02227650
+_02227A74: .word MOD13_022276D4
+
+ arm_func_start MOD13_02227A78
+MOD13_02227A78: ; 0x02227A78
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r1, _02227AC0 ; =MOD13_0222770C
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02227AC4 ; =0x022430C4
+ str r0, [r1]
+ ldr r0, _02227AC8 ; =0x02227980
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227AC0: .word MOD13_0222770C
+_02227AC4: .word 0x022430C4
+_02227AC8: .word 0x02227980
+
+ arm_func_start MOD13_02227ACC
+MOD13_02227ACC: ; 0x02227ACC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #1
+ bl MOD13_0221F0EC
+ ldr r0, _02227B14 ; =MOD13_02227A78
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227B14: .word MOD13_02227A78
+
+ arm_func_start MOD13_02227B18
+MOD13_02227B18: ; 0x02227B18
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02227B70 ; =MOD13_02227ACC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227B70: .word MOD13_02227ACC
+
+ arm_func_start MOD13_02227B74
+MOD13_02227B74: ; 0x02227B74
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02227C0C ; =0x02240104
+ ldr r1, _02227C10 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _02227C14 ; =0x0224011C
+ ldr r1, _02227C18 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _02227C1C ; =0x02240134
+ ldr r1, _02227C20 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02227C24 ; =0x04001008
+ ldr ip, _02227C28 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02227C2C ; =0x04000008
+ ldr r2, _02227C30 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02227C34 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227C0C: .word 0x02240104
+_02227C10: .word 0x020C8D4C
+_02227C14: .word 0x0224011C
+_02227C18: .word 0x020C9550
+_02227C1C: .word 0x02240134
+_02227C20: .word 0x020C908C
+_02227C24: .word 0x04001008
+_02227C28: .word 0x0400100A
+_02227C2C: .word 0x04000008
+_02227C30: .word 0x0400000A
+_02227C34: .word 0x0400000C
+
+ arm_func_start MOD13_02227C38
+MOD13_02227C38: ; 0x02227C38
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02227C98 ; =0x022430C0
+ mov r1, #0
+ strh r1, [r0]
+ bl MOD13_02227B74
+ bl MOD13_0221F4AC
+ mov r0, #0x36
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #2
+ bl MOD13_0221F124
+ mov r0, #0x22
+ bl MOD13_0221F070
+ mov r0, #0
+ bl MOD13_0221E694
+ bl MOD13_02222DD8
+ mov r0, #0xb
+ bl MOD13_0223424C
+ ldr r0, _02227C9C ; =MOD13_02227B18
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227C98: .word 0x022430C0
+_02227C9C: .word MOD13_02227B18
+
+ arm_func_start MOD13_02227CA0
+MOD13_02227CA0: ; 0x02227CA0
+ ldr r0, _02227CBC ; =0x027FFFA8
+ ldrh r0, [r0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_02227CBC: .word 0x027FFFA8
+
+ arm_func_start MOD13_02227CC0
+MOD13_02227CC0: ; 0x02227CC0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02227CF8 ; =0x022430C8
+ ldrb r1, [r0]
+ add r1, r1, #1
+ strb r1, [r0]
+ ldrb r0, [r0]
+ cmp r0, #0x78
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ ldr r0, _02227CFC ; =MOD13_02227D80
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227CF8: .word 0x022430C8
+_02227CFC: .word MOD13_02227D80
+
+ arm_func_start MOD13_02227D00
+MOD13_02227D00: ; 0x02227D00
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222F6C
+ ldr r0, _02227D7C ; =MOD13_0223197C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227D7C: .word MOD13_0223197C
+
+ arm_func_start MOD13_02227D80
+MOD13_02227D80: ; 0x02227D80
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02227DC0 ; =MOD13_02227D00
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227DC0: .word MOD13_02227D00
+
+ arm_func_start MOD13_02227DC4
+MOD13_02227DC4: ; 0x02227DC4
+ bx lr
+
+ arm_func_start MOD13_02227DC8
+MOD13_02227DC8: ; 0x02227DC8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02227CC0
+ bl MOD13_02227DC4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02227E0C ; =MOD13_02227DC8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227E0C: .word MOD13_02227DC8
+
+ arm_func_start MOD13_02227E10
+MOD13_02227E10: ; 0x02227E10
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02227E48 ; =0x02227DE0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227E48: .word 0x02227DE0
+
+ arm_func_start MOD13_02227E4C
+MOD13_02227E4C: ; 0x02227E4C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02227EB8 ; =0x02240148
+ ldr r1, _02227EBC ; =0x020C908C
+ bl MOD13_0221F174
+ ldr ip, _02227EC0 ; =0x04001008
+ ldr r3, _02227EC4 ; =0x0400100A
+ ldrh r0, [ip]
+ ldr r2, _02227EC8 ; =0x0400000A
+ ldr r1, _02227ECC ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227EB8: .word 0x02240148
+_02227EBC: .word 0x020C908C
+_02227EC0: .word 0x04001008
+_02227EC4: .word 0x0400100A
+_02227EC8: .word 0x0400000A
+_02227ECC: .word 0x0400000C
+
+ arm_func_start MOD13_02227ED0
+MOD13_02227ED0: ; 0x02227ED0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02227F0C ; =0x022430C8
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_02227E4C
+ bl MOD13_0221F4AC
+ mov r0, #0x23
+ bl MOD13_0221F070
+ mov r0, #0x10
+ bl MOD13_0223424C
+ ldr r0, _02227F10 ; =MOD13_02227E10
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227F0C: .word 0x022430C8
+_02227F10: .word MOD13_02227E10
+
+ arm_func_start MOD13_02227F14
+MOD13_02227F14: ; 0x02227F14
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221EC9C
+ bl MOD13_02232F2C
+ ldr r0, _02227F44 ; =MOD13_02229150
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227F44: .word MOD13_02229150
+
+ arm_func_start MOD13_02227F48
+MOD13_02227F48: ; 0x02227F48
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _02227F7C ; =MOD13_02227F14
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227F7C: .word MOD13_02227F14
+
+ arm_func_start MOD13_02227F80
+MOD13_02227F80: ; 0x02227F80
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02227FB4 ; =0x0223F1BC
+ ldr r0, _02227FB8 ; =0x022430D4
+ ldrb r1, [r1]
+ ldr r0, [r0]
+ strb r1, [sp]
+ ldrb r1, [sp]
+ ldr r0, [r0, #8]
+ mov r2, r1
+ bl MOD13_022327DC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227FB4: .word 0x0223F1BC
+_02227FB8: .word 0x022430D4
+
+ arm_func_start MOD13_02227FBC
+MOD13_02227FBC: ; 0x02227FBC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _0222804C ; =0x022430D4
+ ldr r0, _02228050 ; =0x022430D0
+ ldr r2, [r1]
+ ldrh r1, [r0]
+ ldrh r0, [r2, #0x40]
+ cmp r1, r0
+ beq _02227FEC
+ ldrb r0, [r2, #0x51]
+ cmp r0, #4
+ bhi _0222801C
+_02227FEC:
+ ldrb r0, [r2, #0x59]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _0222804C ; =0x022430D4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x59]
+ ldmia sp!, {pc}
+_0222801C:
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _02228054 ; =MOD13_02228314
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222804C ; =0x022430D4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222804C: .word 0x022430D4
+_02228050: .word 0x022430D0
+_02228054: .word MOD13_02228314
+
+ arm_func_start MOD13_02228058
+MOD13_02228058: ; 0x02228058
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022280D8 ; =0x022430D0
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _022280A8
+ ldr r0, _022280DC ; =0x022430D4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x59]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _022280DC ; =0x022430D4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x59]
+ ldmia sp!, {pc}
+_022280A8:
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _022280E0 ; =MOD13_022283B4
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _022280DC ; =0x022430D4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022280D8: .word 0x022430D0
+_022280DC: .word 0x022430D4
+_022280E0: .word MOD13_022283B4
+
+ arm_func_start MOD13_022280E4
+MOD13_022280E4: ; 0x022280E4
+ stmdb sp!, {r4, lr}
+ ldr r1, _02228238 ; =0x022430CC
+ mov r4, #1
+ ldrb r2, [r1]
+ cmp r2, #4
+ addls pc, pc, r2, lsl #2
+ b _022281F0
+_02228100: ; jump table
+ b _02228114 ; case 0
+ b _02228180 ; case 1
+ b _02228180 ; case 2
+ b _022281B0 ; case 3
+ b _022281C8 ; case 4
+_02228114:
+ cmp r0, #1
+ bne _02228160
+ ldr r0, _0222823C ; =0x022430D0
+ ldrh r0, [r0]
+ cmp r0, #0
+ moveq r0, #4
+ streqb r0, [r1]
+ beq _022281F0
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _02228240 ; =MOD13_022283B4
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02228244 ; =0x022430D4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {r4, pc}
+_02228160:
+ ldr r0, _02228244 ; =0x022430D4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x51]
+ cmp r0, #1
+ addhi r0, r2, #1
+ strhib r0, [r1]
+ movls r4, #0
+ b _022281F0
+_02228180:
+ cmp r0, #1
+ subeq r0, r2, #1
+ streqb r0, [r1]
+ beq _022281F0
+ ldr r0, _02228244 ; =0x022430D4
+ add r2, r2, #1
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x51]
+ cmp r0, r2
+ strgtb r2, [r1]
+ movle r4, #0
+ b _022281F0
+_022281B0:
+ cmp r0, #1
+ subeq r0, r2, #1
+ streqb r0, [r1]
+ beq _022281F0
+ bl MOD13_02227FBC
+ ldmia sp!, {r4, pc}
+_022281C8:
+ cmp r0, #1
+ moveq r4, #0
+ beq _022281F0
+ ldr r0, _0222823C ; =0x022430D0
+ mov r2, #0
+ strh r2, [r0]
+ strb r2, [r1]
+ bl MOD13_02228754
+ mov r0, #0
+ bl MOD13_02232F44
+_022281F0:
+ cmp r4, #0
+ bne _02228228
+ ldr r0, _02228244 ; =0x022430D4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x59]
+ cmp r0, #0
+ ldmneia sp!, {r4, pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _02228244 ; =0x022430D4
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x59]
+ ldmia sp!, {r4, pc}
+_02228228:
+ mov r0, #8
+ bl MOD13_0223424C
+ bl MOD13_02228248
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02228238: .word 0x022430CC
+_0222823C: .word 0x022430D0
+_02228240: .word MOD13_022283B4
+_02228244: .word 0x022430D4
+
+ arm_func_start MOD13_02228248
+MOD13_02228248: ; 0x02228248
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222828C ; =0x022430CC
+ ldr r1, _02228290 ; =0x0223F224
+ ldrb r2, [r0]
+ ldr r3, _02228294 ; =0x0223F226
+ mov ip, r2, lsl #3
+ cmp r2, #4
+ ldr r2, _02228298 ; =0x0223F228
+ movlo r0, #2
+ ldrh r1, [r1, ip]
+ ldrh r2, [r2, ip]
+ ldrh r3, [r3, ip]
+ movhs r0, #3
+ bl MOD13_0221F348
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222828C: .word 0x022430CC
+_02228290: .word 0x0223F224
+_02228294: .word 0x0223F226
+_02228298: .word 0x0223F228
+
+ arm_func_start MOD13_0222829C
+MOD13_0222829C: ; 0x0222829C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02228300 ; =0x022430D4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x56]
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _02228304 ; =0x022430D0
+ mov r1, #0x1c
+ ldrh r0, [r0]
+ bl FX_ModS32
+ ldr r1, _02228308 ; =0x01FF0000
+ sub r2, r0, #0x32
+ ldr r0, _0222830C ; =0x04000010
+ and r2, r1, r2, lsl #16
+ ldr r1, _02228310 ; =0x04000018
+ str r2, [r0]
+ ldr r0, _02228300 ; =0x022430D4
+ str r2, [r1]
+ ldr r0, [r0]
+ mov r1, #0
+ strb r1, [r0, #0x56]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02228300: .word 0x022430D4
+_02228304: .word 0x022430D0
+_02228308: .word 0x01FF0000
+_0222830C: .word 0x04000010
+_02228310: .word 0x04000018
+
+ arm_func_start MOD13_02228314
+MOD13_02228314: ; 0x02228314
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl MOD13_02232F14
+ bl MOD13_0221F21C
+ ldr r0, _022283AC ; =0x022430D0
+ mov r1, #0x1c
+ ldrh r2, [r0]
+ add r2, r2, #4
+ strh r2, [r0]
+ ldrh r0, [r0]
+ bl FX_ModS32
+ cmp r0, #4
+ blt _02228350
+ bl MOD13_02228490
+ ldmia sp!, {r4, pc}
+_02228350:
+ ldr r1, _022283AC ; =0x022430D0
+ ldrh r2, [r1]
+ sub r0, r2, r0
+ strh r0, [r1]
+ bl MOD13_02228754
+ ldr r1, _022283B0 ; =0x022430D4
+ ldr r0, _022283AC ; =0x022430D0
+ ldr r1, [r1]
+ ldrh r2, [r0]
+ ldrb r0, [r1, #0x53]
+ ldrh r1, [r1, #0x40]
+ mul r0, r2, r0
+ bl FX_DivS32
+ bl MOD13_02232F44
+ bl MOD13_02232F2C
+ bl MOD13_02228248
+ ldr r0, _022283B0 ; =0x022430D4
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0
+ str r0, [r2, #0x38]
+ bl MOD13_0223C110
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022283AC: .word 0x022430D0
+_022283B0: .word 0x022430D4
+
+ arm_func_start MOD13_022283B4
+MOD13_022283B4: ; 0x022283B4
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r4, r0
+ bl MOD13_02232F14
+ bl MOD13_0221F21C
+ ldr r0, _02228488 ; =0x022430D0
+ ldrh r1, [r0]
+ cmp r1, #4
+ subhi r1, r1, #4
+ strhih r1, [r0]
+ movls r1, #0
+ strlsh r1, [r0]
+ ldr r0, _02228488 ; =0x022430D0
+ mov r1, #0x1c
+ ldrh r0, [r0]
+ bl FX_ModS32
+ mov r5, r0
+ cmp r5, #0x18
+ bne _0222840C
+ bl MOD13_02228754
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222840C:
+ cmp r5, #0x18
+ ble _0222842C
+ ldr r0, _02228488 ; =0x022430D0
+ rsb r1, r5, #0x1c
+ ldrh r2, [r0]
+ mov r5, #0
+ add r1, r2, r1
+ strh r1, [r0]
+_0222842C:
+ bl MOD13_02228490
+ cmp r5, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ ldr r1, _0222848C ; =0x022430D4
+ ldr r0, _02228488 ; =0x022430D0
+ ldr r1, [r1]
+ ldrh r2, [r0]
+ ldrb r0, [r1, #0x53]
+ ldrh r1, [r1, #0x40]
+ mul r0, r2, r0
+ bl FX_DivS32
+ bl MOD13_02232F44
+ bl MOD13_02232F2C
+ bl MOD13_02228248
+ ldr r0, _0222848C ; =0x022430D4
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0
+ str r0, [r2, #0x38]
+ bl MOD13_0223C110
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02228488: .word 0x022430D0
+_0222848C: .word 0x022430D4
+
+ arm_func_start MOD13_02228490
+MOD13_02228490: ; 0x02228490
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r0, _02228544 ; =0x022430D0
+ mov r1, #0x1c
+ ldrh r0, [r0]
+ bl FX_ModS32
+ ldr r1, _02228548 ; =0x022430D4
+ rsb r2, r0, #0x36
+ ldr r0, [r1]
+ ldrb r1, [r0, #0x51]
+ mov r0, #0
+ cmp r1, #5
+ movgt r1, #5
+ cmp r1, #0
+ ble _02228530
+ ldr ip, _02228548 ; =0x022430D4
+ ldr r3, _0222854C ; =0xFE00FF00
+_022284D0:
+ ldr r5, [ip]
+ sub r4, r2, #2
+ add r5, r5, r0, lsl #2
+ ldr r6, [r5, #0x10]
+ add lr, r2, #1
+ ldr r5, [r6]
+ and r4, r4, #0xff
+ and r5, r5, r3
+ orr r4, r5, r4
+ orr r4, r4, #0xb30000
+ str r4, [r6]
+ ldr r4, [ip]
+ and lr, lr, #0xff
+ add r4, r4, r0, lsl #2
+ ldr r5, [r4, #0x24]
+ add r0, r0, #1
+ ldr r4, [r5]
+ cmp r0, r1
+ and r4, r4, r3
+ orr r4, r4, lr
+ orr r4, r4, #0xd20000
+ str r4, [r5]
+ add r2, r2, #0x1c
+ blt _022284D0
+_02228530:
+ ldr r0, _02228548 ; =0x022430D4
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x56]
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02228544: .word 0x022430D0
+_02228548: .word 0x022430D4
+_0222854C: .word 0xFE00FF00
+
+ arm_func_start MOD13_02228550
+MOD13_02228550: ; 0x02228550
+ stmdb sp!, {r4, lr}
+ ldr r3, _022285D8 ; =0x022430D4
+ ldr lr, [r3]
+ ldrb r2, [lr, #0x51]
+ cmp r0, r2
+ ldmgeia sp!, {r4, pc}
+ mov r2, #0x2a
+ mul r2, r0, r2
+ ldr r0, [lr]
+ add r4, lr, r1, lsl #2
+ add r0, r0, r2
+ ldrb ip, [r0, #0x28]
+ ldr r4, [r4, #0x10]
+ mov r0, #0x400
+ add ip, lr, ip, lsl #1
+ ldrh lr, [r4, #4]
+ rsb r0, r0, #0
+ ldrh ip, [ip, #0x42]
+ and lr, lr, r0
+ orr ip, lr, ip
+ strh ip, [r4, #4]
+ ldr lr, [r3]
+ ldr r3, [lr]
+ add ip, lr, r1, lsl #2
+ add r1, r3, r2
+ ldrh r1, [r1, #0x26]
+ ldr r3, [ip, #0x24]
+ add r1, lr, r1, lsl #1
+ ldrh r2, [r3, #4]
+ ldrh r1, [r1, #0x48]
+ and r0, r2, r0
+ orr r0, r0, r1
+ strh r0, [r3, #4]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022285D8: .word 0x022430D4
+
+ arm_func_start MOD13_022285DC
+MOD13_022285DC: ; 0x022285DC
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0x34
+ mov r7, r0
+ mov r0, #0x2a
+ ldr r2, _02228750 ; =0x022430D4
+ mul r4, r7, r0
+ ldr r0, [r2]
+ mov r6, r1
+ ldr r0, [r0]
+ mov r1, #0x20
+ add r0, r0, r4
+ bl MOD13_0223BDA4
+ ldr r2, _02228750 ; =0x022430D4
+ mov r1, #0x1c
+ mul r5, r6, r1
+ ldr r2, [r2]
+ mov r6, r0
+ ldrb r1, [r2, #0x51]
+ cmp r7, r1
+ addge sp, sp, #0x34
+ ldmgeia sp!, {r4, r5, r6, r7, pc}
+ add r0, sp, #0xc
+ cmp r6, #0x10
+ mov r1, #0
+ mov r2, #0x22
+ addle r5, r5, #6
+ bl MI_CpuFill8
+ cmp r6, #0x10
+ movle ip, r6
+ movgt ip, #0x10
+ cmp ip, #0
+ mov r7, #0
+ ble _0222868C
+ ldr r0, _02228750 ; =0x022430D4
+ ldr r3, [r0]
+ add r0, sp, #0xc
+_0222866C:
+ ldr r2, [r3]
+ mov r1, r7, lsl #1
+ add r2, r4, r2
+ ldrb r2, [r7, r2]
+ add r7, r7, #1
+ cmp r7, ip
+ strh r2, [r0, r1]
+ blt _0222866C
+_0222868C:
+ mov r1, #0xa
+ add r0, sp, #0xc
+ str r1, [sp]
+ str r0, [sp, #4]
+ mov r2, #1
+ str r2, [sp, #8]
+ ldr r0, _02228750 ; =0x022430D4
+ mov r2, r5
+ ldr r0, [r0]
+ mov r3, #2
+ ldr r0, [r0, #0xc]
+ bl MOD13_0223A528
+ cmp r6, #0x10
+ addle sp, sp, #0x34
+ ldmleia sp!, {r4, r5, r6, r7, pc}
+ add r0, sp, #0xc
+ mov r1, #0
+ mov r2, #0x22
+ bl MI_CpuFill8
+ sub r6, r6, #0x10
+ cmp r6, #0
+ mov r3, #0
+ ble _02228718
+ ldr r0, _02228750 ; =0x022430D4
+ ldr r7, [r0]
+ add r0, sp, #0xc
+_022286F4:
+ ldr r1, [r7]
+ add r2, r3, #0x10
+ add r1, r4, r1
+ ldrb r2, [r2, r1]
+ mov r1, r3, lsl #1
+ add r3, r3, #1
+ strh r2, [r0, r1]
+ cmp r3, r6
+ blt _022286F4
+_02228718:
+ mov r1, #0xa
+ add r0, sp, #0xc
+ str r1, [sp]
+ str r0, [sp, #4]
+ mov r2, #1
+ str r2, [sp, #8]
+ ldr r0, _02228750 ; =0x022430D4
+ add r2, r5, #0xc
+ ldr r0, [r0]
+ mov r3, #2
+ ldr r0, [r0, #0xc]
+ bl MOD13_0223A528
+ add sp, sp, #0x34
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02228750: .word 0x022430D4
+
+ arm_func_start MOD13_02228754
+MOD13_02228754: ; 0x02228754
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ ldr r0, _02228800 ; =0x022430D0
+ mov r1, #0x1c
+ ldrh r0, [r0]
+ bl FX_DivS32
+ ldr r1, _02228804 ; =0x022430D4
+ mov r7, r0
+ ldr r0, [r1]
+ mov r1, #0
+ ldrb r6, [r0, #0x51]
+ ldr r0, [r0, #0xc]
+ bl MOD13_0223A4D8
+ cmp r6, #5
+ movgt r6, #5
+ mov r5, r7
+ cmp r6, #0
+ mov r4, #0
+ ble _022287BC
+_022287A0:
+ mov r0, r5
+ mov r1, r4
+ bl MOD13_022285DC
+ add r4, r4, #1
+ cmp r4, r6
+ add r5, r5, #1
+ blt _022287A0
+_022287BC:
+ cmp r6, #0
+ mov r4, #0
+ ble _022287E4
+_022287C8:
+ mov r0, r7
+ mov r1, r4
+ bl MOD13_02228550
+ add r4, r4, #1
+ cmp r4, r6
+ add r7, r7, #1
+ blt _022287C8
+_022287E4:
+ ldr r0, _02228804 ; =0x022430D4
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ bl MOD13_0223A410
+ bl MOD13_02228490
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02228800: .word 0x022430D0
+_02228804: .word 0x022430D4
+
+ arm_func_start MOD13_02228808
+MOD13_02228808: ; 0x02228808
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r1, _02228A0C ; =0x022430D4
+ mov r0, #1
+ ldr r1, [r1]
+ ldr r1, [r1, #0x3c]
+ bl MOD13_0223C104
+ mov r5, #0
+ ldr r4, _02228A0C ; =0x022430D4
+_02228864:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x10]
+ cmp r0, #0
+ beq _0222887C
+ bl MOD13_0223B974
+_0222887C:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x24]
+ cmp r0, #0
+ beq _02228894
+ bl MOD13_0223B974
+_02228894:
+ add r5, r5, #1
+ cmp r5, #5
+ blt _02228864
+ ldr r0, _02228A0C ; =0x022430D4
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ bl MOD13_0223A688
+ bl MOD13_02232F78
+ bl MOD13_0221F21C
+ bl MOD13_0221EE54
+ bl MOD13_022328E8
+ ldr r0, _02228A0C ; =0x022430D4
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bl MOD13_0223939C
+ ldr r0, _02228A0C ; =0x022430D4
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ bl MOD13_0223939C
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x1d
+ bl MOD13_0223AE98
+ mov r2, #0
+ ldr r1, _02228A10 ; =0x04000010
+ ldr r0, _02228A14 ; =0x04000018
+ str r2, [r1]
+ str r2, [r0]
+ ldr r0, _02228A0C ; =0x022430D4
+ ldr r2, [r0]
+ ldrb r0, [r2, #0x54]
+ cmp r0, #0
+ bne _02228948
+ bl MOD13_02233570
+ bl MOD13_02234164
+ ldrb r0, [r0, #0xf4]
+ bl MOD13_02233C24
+ mov r0, #2
+ mov r1, #0
+ bl MOD13_02222FA8
+ ldr r0, _02228A18 ; =MOD13_02230EC4
+ bl MOD13_02222FBC
+ b _022289FC
+_02228948:
+ ldr r0, _02228A1C ; =0x022430CC
+ ldrb r0, [r0]
+ cmp r0, #4
+ bne _02228974
+ bl MOD13_02233570
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02228A20 ; =MOD13_0222F8A0
+ bl MOD13_02222FBC
+ b _022289FC
+_02228974:
+ ldrb r1, [r2, #0x52]
+ ldr r2, [r2]
+ mov r0, #0x2a
+ mla r0, r1, r0, r2
+ bl MOD13_02234104
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r1, _02228A0C ; =0x022430D4
+ mov r0, #0x2a
+ ldr r2, [r1]
+ ldrb r1, [r2, #0x52]
+ ldr r2, [r2]
+ mla r0, r1, r0, r2
+ ldrb r0, [r0, #0x28]
+ cmp r0, #0
+ beq _022289DC
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_02222F6C
+ ldr r0, _02228A24 ; =MOD13_0222A190
+ bl MOD13_02222FBC
+ b _022289FC
+_022289DC:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222F6C
+ ldr r0, _02228A28 ; =MOD13_0223197C
+ bl MOD13_02222FBC
+_022289FC:
+ ldr r0, _02228A0C ; =0x022430D4
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02228A0C: .word 0x022430D4
+_02228A10: .word 0x04000010
+_02228A14: .word 0x04000018
+_02228A18: .word MOD13_02230EC4
+_02228A1C: .word 0x022430CC
+_02228A20: .word MOD13_0222F8A0
+_02228A24: .word MOD13_0222A190
+_02228A28: .word MOD13_0223197C
+
+ arm_func_start MOD13_02228A2C
+MOD13_02228A2C: ; 0x02228A2C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02228AA0 ; =0x022430D4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x54]
+ cmp r0, #0
+ beq _02228A64
+ bl MOD13_0221ED28
+ b _02228A68
+_02228A64:
+ bl MOD13_0221EC84
+_02228A68:
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x1d
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02228AA4 ; =MOD13_02228808
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02228AA0: .word 0x022430D4
+_02228AA4: .word MOD13_02228808
+
+ arm_func_start MOD13_02228AA8
+MOD13_02228AA8: ; 0x02228AA8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02228ACC ; =MOD13_02228A2C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02228ACC: .word MOD13_02228A2C
+
+ arm_func_start MOD13_02228AD0
+MOD13_02228AD0: ; 0x02228AD0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02228BF8 ; =0x022430D4
+ ldr r1, [r0]
+ ldr r0, [r1, #0x38]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldrb r0, [r1, #0x57]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _02228B1C
+ cmp r0, #1
+ beq _02228B28
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02228B1C:
+ mov r0, #7
+ bl MOD13_0223424C
+ b _02228BE8
+_02228B28:
+ ldr r0, _02228BFC ; =0x022430CC
+ ldrb r0, [r0]
+ cmp r0, #4
+ bne _02228B58
+ ldr r0, _02228BF8 ; =0x022430D4
+ mov r2, #1
+ ldr r1, [r0]
+ mov r0, #6
+ strb r2, [r1, #0x54]
+ bl MOD13_0223424C
+ bl MOD13_02227F80
+ b _02228BE8
+_02228B58:
+ ldr r0, _02228C00 ; =0x022430D0
+ mov r1, #0x1c
+ ldrh r0, [r0]
+ bl FX_DivS32
+ ldr r1, _02228BFC ; =0x022430CC
+ ldr r2, _02228BF8 ; =0x022430D4
+ ldrb lr, [r1]
+ ldr ip, [r2]
+ mov r1, #0x2a
+ ldr r3, [ip]
+ add lr, lr, r0
+ mla r0, lr, r1, r3
+ ldrb r0, [r0, #0x28]
+ cmp r0, #2
+ bne _02228BD0
+ mov r0, #9
+ bl MOD13_0223424C
+ bl MOD13_02232F14
+ bl MOD13_0221EC84
+ mov r1, #1
+ mov r0, #0
+ str r0, [sp]
+ mov r2, r1
+ mov r0, #0xe
+ mvn r3, #0
+ bl MOD13_02235EFC
+ ldr r0, _02228C04 ; =MOD13_02227F48
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02228BD0:
+ mov r0, #1
+ strb r0, [ip, #0x54]
+ ldr r1, [r2]
+ mov r0, #6
+ strb lr, [r1, #0x52]
+ bl MOD13_0223424C
+_02228BE8:
+ ldr r0, _02228C08 ; =MOD13_02228AA8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02228BF8: .word 0x022430D4
+_02228BFC: .word 0x022430CC
+_02228C00: .word 0x022430D0
+_02228C04: .word MOD13_02227F48
+_02228C08: .word MOD13_02228AA8
+
+ arm_func_start MOD13_02228C0C
+MOD13_02228C0C: ; 0x02228C0C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02228EBC ; =0x022430D4
+ ldr r1, [r0]
+ ldr r0, [r1, #0x38]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldrb r0, [r1, #0x55]
+ cmp r0, #0
+ subne r0, r0, #1
+ strneb r0, [r1, #0x55]
+ bl MOD13_02232F50
+ cmp r0, #7
+ addls pc, pc, r0, lsl #2
+ b _02228EB4
+_02228C4C: ; jump table
+ b _02228EB4 ; case 0
+ b _02228C6C ; case 1
+ b _02228C88 ; case 2
+ b _02228CE4 ; case 3
+ b _02228DA4 ; case 4
+ b _02228EA4 ; case 5
+ b _02228E1C ; case 6
+ b _02228EA4 ; case 7
+_02228C6C:
+ ldr r0, _02228EBC ; =0x022430D4
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x57]
+ bl MOD13_0221EC84
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02228C88:
+ ldr r0, _02228EBC ; =0x022430D4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x55]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221F21C
+ bl MOD13_02232F64
+ ldr r1, _02228EBC ; =0x022430D4
+ ldr r1, [r1]
+ ldrh r2, [r1, #0x40]
+ ldrb r1, [r1, #0x53]
+ mul r0, r2, r0
+ bl FX_DivS32
+ ldr r1, _02228EC0 ; =0x022430D0
+ strh r0, [r1]
+ bl MOD13_02228754
+ ldr r0, _02228EBC ; =0x022430D4
+ mov r1, #4
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x55]
+ ldmia sp!, {pc}
+_02228CE4:
+ ldr r0, _02228EBC ; =0x022430D4
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x57]
+ bl MOD13_0221EC9C
+ bl MOD13_02232F64
+ ldr r1, _02228EBC ; =0x022430D4
+ ldr r1, [r1]
+ ldrh r2, [r1, #0x40]
+ ldrb r1, [r1, #0x53]
+ mul r0, r2, r0
+ bl FX_DivS32
+ ldr r1, _02228EC0 ; =0x022430D0
+ strh r0, [r1]
+ mov r0, #0x13
+ bl MOD13_0223424C
+ bl MOD13_02228754
+ ldr r0, _02228EC0 ; =0x022430D0
+ mov r1, #0x1c
+ ldrh r0, [r0]
+ bl FX_ModS32
+ cmp r0, #0
+ bne _02228D4C
+ bl MOD13_02228248
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02228D4C:
+ cmp r0, #0xe
+ bge _02228D7C
+ mov r0, #0
+ ldr r1, _02228EC4 ; =MOD13_022283B4
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02228EBC ; =0x022430D4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_02228D7C:
+ mov r0, #0
+ ldr r1, _02228EC8 ; =MOD13_02228314
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02228EBC ; =0x022430D4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_02228DA4:
+ ldr r0, _02228EC0 ; =0x022430D0
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _02228DEC
+ ldr r0, _02228EBC ; =0x022430D4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x58]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _02228EBC ; =0x022430D4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x58]
+ ldmia sp!, {pc}
+_02228DEC:
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _02228EC4 ; =MOD13_022283B4
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02228EBC ; =0x022430D4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_02228E1C:
+ ldr r0, _02228EBC ; =0x022430D4
+ ldr r2, [r0]
+ ldrb r0, [r2, #0x51]
+ cmp r0, #4
+ bls _02228E44
+ ldr r0, _02228EC0 ; =0x022430D0
+ ldrh r1, [r2, #0x40]
+ ldrh r0, [r0]
+ cmp r0, r1
+ bne _02228E74
+_02228E44:
+ ldrb r0, [r2, #0x58]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _02228EBC ; =0x022430D4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x58]
+ ldmia sp!, {pc}
+_02228E74:
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _02228EC8 ; =MOD13_02228314
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02228EBC ; =0x022430D4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_02228EA4:
+ ldr r0, _02228EBC ; =0x022430D4
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x58]
+_02228EB4:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02228EBC: .word 0x022430D4
+_02228EC0: .word 0x022430D0
+_02228EC4: .word MOD13_022283B4
+_02228EC8: .word MOD13_02228314
+
+ arm_func_start MOD13_02228ECC
+MOD13_02228ECC: ; 0x02228ECC
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r0, _02229140 ; =0x022430D4
+ ldr r1, [r0]
+ ldr r0, [r1, #0x38]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ ldrb r0, [r1, #0x57]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ ldr r0, _02229144 ; =0x0223F75C
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02228F74
+ ldr r0, _02229140 ; =0x022430D4
+ mvn r1, #0
+ ldr r0, [r0]
+ ldr r4, _02229148 ; =0x0223F1FC
+ strb r1, [r0, #0x50]
+ mov r5, #0
+_02228F24:
+ mov r0, r4
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02228F64
+ cmp r5, #4
+ ldrlt r0, _02229140 ; =0x022430D4
+ ldrlt r0, [r0]
+ strltb r5, [r0, #0x50]
+ blt _02228F74
+ mov r0, #1
+ bl MOD13_0221ECF4
+ ldr r0, _0222914C ; =0x022430CC
+ strb r5, [r0]
+ bl MOD13_02228248
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02228F64:
+ add r5, r5, #1
+ cmp r5, #5
+ add r4, r4, #8
+ blo _02228F24
+_02228F74:
+ ldr r0, _02229144 ; =0x0223F75C
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _02228FF4
+ ldr r5, _02229148 ; =0x0223F1FC
+ mov r4, #0
+_02228F8C:
+ mov r0, r5
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _02228FE4
+ ldr r0, _02229140 ; =0x022430D4
+ ldr r1, [r0]
+ ldrsb r0, [r1, #0x50]
+ cmp r0, r4
+ bne _02228FF4
+ ldrb r0, [r1, #0x51]
+ cmp r4, r0
+ blt _02228FC8
+ mov r0, #9
+ bl MOD13_0223424C
+ b _02228FF4
+_02228FC8:
+ mov r0, #1
+ bl MOD13_0221ECF4
+ ldr r0, _0222914C ; =0x022430CC
+ strb r4, [r0]
+ bl MOD13_02228248
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02228FE4:
+ add r4, r4, #1
+ cmp r4, #4
+ add r5, r5, #8
+ blt _02228F8C
+_02228FF4:
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02229018
+ mov r0, #1
+ bl MOD13_0221ECF4
+ bl MOD13_02232F14
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02229018:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02229038
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02229038:
+ mov r0, #0x200
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02229054
+ bl MOD13_02227FBC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02229054:
+ mov r0, #0x200
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _02229140 ; =0x022430D4
+ movne r1, #0
+ ldrne r0, [r0]
+ addne sp, sp, #4
+ strneb r1, [r0, #0x59]
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #0x100
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02229094
+ bl MOD13_02228058
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02229094:
+ mov r0, #0x100
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _02229140 ; =0x022430D4
+ movne r1, #0
+ ldrne r0, [r0]
+ addne sp, sp, #4
+ strneb r1, [r0, #0x59]
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #0x40
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _022290D8
+ mov r0, #1
+ bl MOD13_022280E4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_022290D8:
+ mov r0, #0x40
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _02229140 ; =0x022430D4
+ movne r1, #0
+ ldrne r0, [r0]
+ addne sp, sp, #4
+ strneb r1, [r0, #0x59]
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #0x80
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222911C
+ mov r0, #3
+ bl MOD13_022280E4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222911C:
+ mov r0, #0x80
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _02229140 ; =0x022430D4
+ movne r1, #0
+ ldrne r0, [r0]
+ strneb r1, [r0, #0x59]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02229140: .word 0x022430D4
+_02229144: .word 0x0223F75C
+_02229148: .word 0x0223F1FC
+_0222914C: .word 0x022430CC
+
+ arm_func_start MOD13_02229150
+MOD13_02229150: ; 0x02229150
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02228ECC
+ bl MOD13_02228C0C
+ bl MOD13_02228AD0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222919C ; =MOD13_02229150
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222919C: .word MOD13_02229150
+
+ arm_func_start MOD13_022291A0
+MOD13_022291A0: ; 0x022291A0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221F0EC
+ ldr r0, _022291E8 ; =0x0222916C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022291E8: .word 0x0222916C
+
+ arm_func_start MOD13_022291EC
+MOD13_022291EC: ; 0x022291EC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x1d
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x1d
+ bl MOD13_0223AEF4
+ ldr r0, _02229244 ; =MOD13_022291A0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229244: .word MOD13_022291A0
+
+ arm_func_start MOD13_02229248
+MOD13_02229248: ; 0x02229248
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ ldr r0, _022293BC ; =0x022430D4
+ mov sb, #0
+ ldr r0, [r0]
+ ldrb r4, [r0, #0x51]
+ cmp r4, #5
+ movgt r4, #5
+ cmp r4, #0
+ ble _022292C4
+ ldr r1, _022293C0 ; =0x0223F1C0
+ ldr r0, _022293C4 ; =0x0223F1C4
+ ldrb r8, [r1]
+ ldrb r7, [r0]
+ ldr sl, _022293BC ; =0x022430D4
+ mov r6, sb
+ mov r5, sb
+_02229288:
+ mov r0, r6
+ mov r1, r8
+ bl MOD13_02239E54
+ ldr r2, [sl]
+ mov r1, r7
+ add r2, r2, sb, lsl #2
+ str r0, [r2, #0x10]
+ mov r0, r5
+ bl MOD13_02239E54
+ ldr r1, [sl]
+ add r1, r1, sb, lsl #2
+ add sb, sb, #1
+ str r0, [r1, #0x24]
+ cmp sb, r4
+ blt _02229288
+_022292C4:
+ ldr r7, _022293C0 ; =0x0223F1C0
+ mov r6, #0
+ ldr sb, _022293BC ; =0x022430D4
+ mov r5, r6
+ ldr r8, _022293C8 ; =0x000003FF
+_022292D8:
+ ldr r0, [sb]
+ ldrb r1, [r7]
+ ldr r2, [r0, #0x10]
+ mov r0, r5
+ bl MOD13_02239E8C
+ ldr r0, [sb]
+ add r7, r7, #1
+ ldr r1, [r0, #0x10]
+ add r0, r0, r6, lsl #1
+ ldrh r1, [r1, #4]
+ add r6, r6, #1
+ cmp r6, #3
+ and r1, r1, r8
+ strh r1, [r0, #0x42]
+ blo _022292D8
+ ldr r7, _022293C4 ; =0x0223F1C4
+ mov r6, #0
+ ldr sb, _022293BC ; =0x022430D4
+ mov r5, r6
+ ldr r8, _022293C8 ; =0x000003FF
+_02229328:
+ ldr r0, [sb]
+ ldrb r1, [r7]
+ ldr r2, [r0, #0x24]
+ mov r0, r5
+ bl MOD13_02239E8C
+ ldr r0, [sb]
+ add r7, r7, #1
+ ldr r1, [r0, #0x24]
+ add r0, r0, r6, lsl #1
+ ldrh r1, [r1, #4]
+ add r6, r6, #1
+ cmp r6, #4
+ and r1, r1, r8
+ strh r1, [r0, #0x48]
+ blo _02229328
+ cmp r4, #0
+ mov r0, #0
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ ldr r1, _022293BC ; =0x022430D4
+_02229374:
+ ldr r2, [r1]
+ add r2, r2, r0, lsl #2
+ ldr r3, [r2, #0x10]
+ ldrh r2, [r3, #4]
+ bic r2, r2, #0xc00
+ orr r2, r2, #0xc00
+ strh r2, [r3, #4]
+ ldr r2, [r1]
+ add r2, r2, r0, lsl #2
+ ldr r3, [r2, #0x24]
+ add r0, r0, #1
+ ldrh r2, [r3, #4]
+ cmp r0, r4
+ bic r2, r2, #0xc00
+ orr r2, r2, #0xc00
+ strh r2, [r3, #4]
+ blt _02229374
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_022293BC: .word 0x022430D4
+_022293C0: .word 0x0223F1C0
+_022293C4: .word 0x0223F1C4
+_022293C8: .word 0x000003FF
+
+ arm_func_start MOD13_022293CC
+MOD13_022293CC: ; 0x022293CC
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r2, _02229470 ; =0x022430D4
+ mov r1, #0x1c
+ ldr ip, [r2]
+ mov r0, #0
+ ldrb r3, [ip, #0x51]
+ sub r3, r3, #4
+ mul r1, r3, r1
+ strh r1, [ip, #0x40]
+ ldr r2, [r2]
+ ldrb r1, [r2, #0x51]
+ cmp r1, #4
+ movls r4, r0
+ strlsb r0, [r2, #0x53]
+ bls _02229428
+ cmp r1, #8
+ movls r1, #0x1f
+ strlsb r1, [r2, #0x53]
+ movls r4, #1
+ movhi r1, #0x37
+ strhib r1, [r2, #0x53]
+ movhi r4, #2
+_02229428:
+ cmp r4, #0
+ beq _02229450
+ ldr r1, _02229470 ; =0x022430D4
+ ldr r0, _02229474 ; =0x022430D0
+ ldr r1, [r1]
+ ldrh r2, [r0]
+ ldrb r0, [r1, #0x53]
+ ldrh r1, [r1, #0x40]
+ mul r0, r2, r0
+ bl FX_DivS32
+_02229450:
+ str r0, [sp]
+ mov r0, r4
+ mov r1, #0x55
+ mov r2, #0xec
+ mov r3, #0x3f
+ bl MOD13_02232FB8
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02229470: .word 0x022430D4
+_02229474: .word 0x022430D0
+
+ arm_func_start MOD13_02229478
+MOD13_02229478: ; 0x02229478
+ stmdb sp!, {lr}
+ sub sp, sp, #0x34
+ ldr r3, _022295AC ; =0x0223F1E0
+ add lr, sp, #0
+ mov r2, #0xc
+_0222948C:
+ ldrb r1, [r3], #1
+ ldrb r0, [r3], #1
+ subs r2, r2, #1
+ strb r1, [lr], #1
+ strb r0, [lr], #1
+ bne _0222948C
+ ldrb r0, [r3]
+ ldr ip, _022295B0 ; =0x0223F1C8
+ add r3, sp, #0x19
+ strb r0, [lr]
+ mov r2, #0xb
+_022294B8:
+ ldrb r1, [ip], #1
+ ldrb r0, [ip], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _022294B8
+ ldr r0, _022295B4 ; =0x0224015C
+ ldr r1, _022295B8 ; =0x020C8FBC
+ bl MOD13_0221F174
+ add r0, sp, #0
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _022295BC ; =0x022430D4
+ ldr r2, [r1]
+ str r0, [r2, #4]
+ ldr r0, [r1]
+ ldr r0, [r0, #4]
+ bl MOD13_02232918
+ bl MOD13_022328D0
+ add r0, sp, #0x19
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _022295BC ; =0x022430D4
+ ldr r2, _022295C0 ; =0x04001008
+ ldr r1, [r1]
+ ldr lr, _022295C4 ; =0x0400100A
+ str r0, [r1, #8]
+ ldrh r0, [r2]
+ ldr ip, _022295C8 ; =0x04000008
+ ldr r3, _022295CC ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [lr]
+ ldr r2, _022295D0 ; =0x0400000C
+ ldr r1, _022295D4 ; =0x0400000E
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [lr]
+ ldrh r0, [ip]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #2
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #2
+ strh r0, [r1]
+ add sp, sp, #0x34
+ ldmia sp!, {pc}
+ .align 2, 0
+_022295AC: .word 0x0223F1E0
+_022295B0: .word 0x0223F1C8
+_022295B4: .word 0x0224015C
+_022295B8: .word 0x020C8FBC
+_022295BC: .word 0x022430D4
+_022295C0: .word 0x04001008
+_022295C4: .word 0x0400100A
+_022295C8: .word 0x04000008
+_022295CC: .word 0x0400000A
+_022295D0: .word 0x0400000C
+_022295D4: .word 0x0400000E
+
+ arm_func_start MOD13_022295D8
+MOD13_022295D8: ; 0x022295D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0x5c
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r2, _022296AC ; =0x022430D4
+ mov r1, #0
+ str r0, [r2]
+ add r0, sp, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #0
+ ldreq r0, _022296B0 ; =0x022430D0
+ moveq r2, #0
+ streqh r2, [r0]
+ ldr r0, _022296AC ; =0x022430D4
+ ldreq r1, _022296B4 ; =0x022430CC
+ ldr r0, [r0]
+ streqb r2, [r1]
+ bl MOD13_0223333C
+ ldr r1, _022296AC ; =0x022430D4
+ ldr r1, [r1]
+ strb r0, [r1, #0x51]
+ bl MOD13_02229478
+ bl MOD13_0221F4AC
+ mov r0, #0x34
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #2
+ bl MOD13_0221F124
+ bl MOD13_022293CC
+ bl MOD13_02229248
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_0223A7F0
+ ldr r2, _022296AC ; =0x022430D4
+ ldr r1, _022296B8 ; =MOD13_0222829C
+ ldr r3, [r2]
+ mov r2, #0
+ str r0, [r3, #0xc]
+ mov r0, #1
+ mov r3, #0x6e
+ bl MOD13_0223C1C4
+ ldr r1, _022296AC ; =0x022430D4
+ ldr r1, [r1]
+ str r0, [r1, #0x3c]
+ bl MOD13_02228754
+ bl MOD13_02228248
+ ldr r0, _022296BC ; =MOD13_022291EC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022296AC: .word 0x022430D4
+_022296B0: .word 0x022430D0
+_022296B4: .word 0x022430CC
+_022296B8: .word MOD13_0222829C
+_022296BC: .word MOD13_022291EC
+
+ arm_func_start MOD13_022296C0
+MOD13_022296C0: ; 0x022296C0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02229704 ; =0x022430D8
+ ldr r1, _02229708 ; =0xC1FFFCFF
+ ldr r2, [r0]
+ ldr r0, _0222970C ; =MOD13_02229FD0
+ ldr r3, [r2, #4]
+ ldr r2, [r3]
+ and r1, r2, r1
+ str r1, [r3]
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229704: .word 0x022430D8
+_02229708: .word 0xC1FFFCFF
+_0222970C: .word MOD13_02229FD0
+
+ arm_func_start MOD13_02229710
+MOD13_02229710: ; 0x02229710
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _02229744 ; =MOD13_022296C0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229744: .word MOD13_022296C0
+
+ arm_func_start MOD13_02229748
+MOD13_02229748: ; 0x02229748
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ add r0, sp, #0
+ add r1, sp, #4
+ bl MOD13_02222F44
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _02229778
+ mov r0, #0x35
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+_02229778:
+ add r0, sp, #0
+ add r1, sp, #4
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _022297B0
+ ldr r0, _022298E0 ; =0x022430D8
+ add sp, sp, #0xc
+ ldr r0, [r0]
+ ldrb r0, [r0, #8]
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ ldmia sp!, {pc}
+_022297B0:
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _022297D8
+ ldr r0, _022298E0 ; =0x022430D8
+ ldr r0, [r0]
+ ldrb r0, [r0, #8]
+ cmp r0, #0
+ addeq sp, sp, #0xc
+ moveq r0, #0
+ ldmeqia sp!, {pc}
+_022297D8:
+ ldr r0, _022298E0 ; =0x022430D8
+ mov r1, #0x20
+ ldr r0, [r0]
+ add r0, r0, #8
+ bl MOD13_0223BDA4
+ cmp r0, #0x10
+ bgt _02229838
+ cmp r0, #0xa
+ blt _02229818
+ cmp r0, #0xa
+ beq _02229864
+ cmp r0, #0xd
+ beq _02229858
+ cmp r0, #0x10
+ beq _02229858
+ b _022298D4
+_02229818:
+ cmp r0, #0
+ bgt _0222982C
+ cmp r0, #0
+ beq _02229858
+ b _022298D4
+_0222982C:
+ cmp r0, #5
+ beq _02229858
+ b _022298D4
+_02229838:
+ cmp r0, #0x1a
+ bgt _0222984C
+ cmp r0, #0x1a
+ beq _02229864
+ b _022298D4
+_0222984C:
+ cmp r0, #0x20
+ beq _02229864
+ b _022298D4
+_02229858:
+ add sp, sp, #0xc
+ mov r0, #1
+ ldmia sp!, {pc}
+_02229864:
+ cmp r0, #0
+ mov r3, #0
+ ble _022298C8
+ ldr r1, _022298E0 ; =0x022430D8
+ ldr r1, [r1]
+_02229878:
+ ldrb r2, [r1, #8]
+ cmp r2, #0x30
+ blo _0222988C
+ cmp r2, #0x39
+ bls _022298B8
+_0222988C:
+ cmp r2, #0x41
+ blo _0222989C
+ cmp r2, #0x46
+ bls _022298B8
+_0222989C:
+ cmp r2, #0x61
+ blo _022298AC
+ cmp r2, #0x66
+ bls _022298B8
+_022298AC:
+ add sp, sp, #0xc
+ mov r0, #0
+ ldmia sp!, {pc}
+_022298B8:
+ add r3, r3, #1
+ cmp r3, r0
+ add r1, r1, #1
+ blt _02229878
+_022298C8:
+ add sp, sp, #0xc
+ mov r0, #1
+ ldmia sp!, {pc}
+_022298D4:
+ mov r0, #0
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_022298E0: .word 0x022430D8
+
+ arm_func_start MOD13_022298E4
+MOD13_022298E4: ; 0x022298E4
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r0, _02229980 ; =0x0223F260
+ ldr r1, [r0]
+ ldr r0, [r0, #4]
+ str r1, [sp]
+ str r0, [sp, #4]
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #0xc
+ ldmneia sp!, {pc}
+ ldr r0, _02229984 ; =0x022430D8
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x2a]
+ cmp r0, #0
+ bne _02229948
+ ldr r3, [r1, #4]
+ ldr r1, _02229988 ; =0xC1FFFCFF
+ ldr r2, [r3]
+ ldr r0, _0222998C ; =MOD13_02229FD0
+ and r1, r2, r1
+ str r1, [r3]
+ bl MOD13_02222FBC
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+_02229948:
+ add r0, sp, #8
+ mov r1, #0
+ bl MOD13_02222F44
+ ldr r0, _02229984 ; =0x022430D8
+ ldr r2, [sp, #8]
+ add r1, sp, #0
+ ldr r0, [r0]
+ ldr r1, [r1, r2, lsl #2]
+ add r0, r0, #8
+ blx r1
+ ldr r0, _02229990 ; =MOD13_02229B88
+ bl MOD13_02222FBC
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229980: .word 0x0223F260
+_02229984: .word 0x022430D8
+_02229988: .word 0xC1FFFCFF
+_0222998C: .word MOD13_02229FD0
+_02229990: .word MOD13_02229B88
+
+ arm_func_start MOD13_02229994
+MOD13_02229994: ; 0x02229994
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ ldr r1, _022299F4 ; =0x022430D8
+ ldr r2, [r1]
+ strb r0, [r2, #0x2a]
+ ldr r0, [r1]
+ ldrb r0, [r0, #0x2a]
+ cmp r0, #0
+ beq _022299CC
+ cmp r0, #1
+ beq _022299D8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022299CC:
+ mov r0, #7
+ bl MOD13_0223424C
+ b _022299E0
+_022299D8:
+ mov r0, #0xe
+ bl MOD13_0223424C
+_022299E0:
+ bl MOD13_02235EB0
+ ldr r0, _022299F8 ; =MOD13_022298E4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022299F4: .word 0x022430D8
+_022299F8: .word MOD13_022298E4
+
+ arm_func_start MOD13_022299FC
+MOD13_022299FC: ; 0x022299FC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02229A64 ; =0x022430D8
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x29]
+ ldr lr, [r1, #4]
+ ldr r1, _02229A68 ; =0x0223F268
+ cmp r0, #0x20
+ and r3, r0, #0xf
+ mov r2, r0, asr #4
+ movhs r3, #0xf
+ ldrb ip, [r1, r3]
+ ldr r0, _02229A6C ; =0x0223F250
+ movhs r2, #1
+ ldrb r2, [r0, r2]
+ ldr r3, [lr]
+ ldr r1, _02229A70 ; =0xFE00FF00
+ ldr r0, _02229A74 ; =0x000001FF
+ and r1, r3, r1
+ and r2, r2, #0xff
+ and r3, ip, r0
+ orr r0, r1, r2
+ orr r0, r0, r3, lsl #16
+ str r0, [lr]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229A64: .word 0x022430D8
+_02229A68: .word 0x0223F268
+_02229A6C: .word 0x0223F250
+_02229A70: .word 0xFE00FF00
+_02229A74: .word 0x000001FF
+
+ arm_func_start MOD13_02229A78
+MOD13_02229A78: ; 0x02229A78
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x1c
+ add r0, sp, #0x10
+ mov r1, #0
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ strh r1, [r0, #6]
+ ldr r2, _02229B74 ; =0x0223F250
+ ldr r0, _02229B78 ; =0x0223F254
+ ldrb r4, [r2]
+ ldrh r3, [r0]
+ ldrh r2, [r0, #2]
+ ldr r0, _02229B7C ; =0x022430D8
+ strh r4, [sp, #0x12]
+ ldr r0, [r0]
+ strh r3, [sp, #0x14]
+ strh r2, [sp, #0x16]
+ ldr r0, [r0]
+ bl MOD13_0223A4D8
+ mov sb, #0
+ ldr r0, _02229B74 ; =0x0223F250
+ ldr r6, _02229B80 ; =0x0000E01D
+ ldrb r8, [r0, #1]
+ ldr fp, _02229B84 ; =0x0223F268
+ mov sl, sb
+ strh sb, [sp, #0x1a]
+ mov r7, sb
+ mov r5, #2
+ mov r4, #0x480
+_02229AF0:
+ ldr r0, _02229B7C ; =0x022430D8
+ cmp sb, #0x10
+ ldr r0, [r0]
+ moveq sl, r7
+ streqh r8, [sp, #0x12]
+ add r1, r0, sb
+ ldrb r1, [r1, #8]
+ ldrb r2, [fp, sl]
+ cmp r1, #0x20
+ streqh r6, [sp, #0x18]
+ strneh r1, [sp, #0x18]
+ ldrh r1, [sp, #0x16]
+ strh r2, [sp, #0x10]
+ str r1, [sp]
+ str r5, [sp, #4]
+ str r4, [sp, #8]
+ add r1, sp, #0x18
+ str r1, [sp, #0xc]
+ ldrh r1, [sp, #0x10]
+ ldrh r2, [sp, #0x12]
+ ldrh r3, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD13_0223A4F0
+ add sb, sb, #1
+ cmp sb, #0x20
+ add sl, sl, #1
+ blt _02229AF0
+ ldr r0, _02229B7C ; =0x022430D8
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl MOD13_0223A410
+ add sp, sp, #0x1c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02229B74: .word 0x0223F250
+_02229B78: .word 0x0223F254
+_02229B7C: .word 0x022430D8
+_02229B80: .word 0x0000E01D
+_02229B84: .word 0x0223F268
+
+ arm_func_start MOD13_02229B88
+MOD13_02229B88: ; 0x02229B88
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ bl MOD13_0221EE54
+ ldr r0, _02229C74 ; =0x022430D8
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bl MOD13_0223B974
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _02229C78 ; =0x02240174
+ ldr r1, _02229C7C ; =0x020C9480
+ bl MOD13_0221F174
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ add r0, sp, #0
+ add r1, sp, #4
+ bl MOD13_02222F44
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _02229C0C
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r1, [sp]
+ mov r0, #0
+ bl MOD13_02222F6C
+ ldr r0, _02229C80 ; =MOD13_0222DD4C
+ bl MOD13_02222FBC
+ b _02229C64
+_02229C0C:
+ ldr r0, _02229C74 ; =0x022430D8
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x2a]
+ cmp r0, #0
+ bne _02229C44
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ mov r0, #1
+ mov r1, #0
+ bl MOD13_02222F6C
+ ldr r0, _02229C84 ; =MOD13_022295D8
+ bl MOD13_02222FBC
+ b _02229C64
+_02229C44:
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222F6C
+ ldr r0, _02229C88 ; =MOD13_0223197C
+ bl MOD13_02222FBC
+_02229C64:
+ ldr r0, _02229C74 ; =0x022430D8
+ bl MOD13_0223AF90
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229C74: .word 0x022430D8
+_02229C78: .word 0x02240174
+_02229C7C: .word 0x020C9480
+_02229C80: .word MOD13_0222DD4C
+_02229C84: .word MOD13_022295D8
+_02229C88: .word MOD13_0223197C
+
+ arm_func_start MOD13_02229C8C
+MOD13_02229C8C: ; 0x02229C8C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x14
+ ldr r0, _02229D50 ; =0x0223F258
+ ldr r1, [r0]
+ ldr r0, [r0, #4]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ bl MOD13_022211C8
+ cmp r0, #0
+ addne sp, sp, #0x14
+ ldmneia sp!, {pc}
+ ldr r0, _02229D54 ; =0x022430D8
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x2a]
+ cmp r0, #0
+ bne _02229CDC
+ ldr r0, _02229D58 ; =MOD13_02229B88
+ bl MOD13_02222FBC
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+_02229CDC:
+ cmp r0, #2
+ bne _02229D10
+ mov ip, #0
+ mov r0, #6
+ mov r1, #3
+ mov r2, #1
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ ldr r0, _02229D5C ; =MOD13_02229710
+ bl MOD13_02222FBC
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+_02229D10:
+ add r1, sp, #0xc
+ mov r0, #0
+ bl MOD13_02222F44
+ mov r0, #0
+ str r0, [sp]
+ ldr r2, [sp, #0xc]
+ add r0, sp, #4
+ ldr r0, [r0, r2, lsl #2]
+ mov r1, #2
+ mov r2, #1
+ mvn r3, #0
+ bl MOD13_02235EFC
+ ldr r0, _02229D60 ; =MOD13_02229994
+ bl MOD13_02222FBC
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229D50: .word 0x0223F258
+_02229D54: .word 0x022430D8
+_02229D58: .word MOD13_02229B88
+_02229D5C: .word MOD13_02229710
+_02229D60: .word MOD13_02229994
+
+ arm_func_start MOD13_02229D64
+MOD13_02229D64: ; 0x02229D64
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02221220
+ mov r0, #0x15
+ bl MOD13_0223424C
+ ldr r0, _02229D9C ; =MOD13_02229C8C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229D9C: .word MOD13_02229C8C
+
+ arm_func_start MOD13_02229DA0
+MOD13_02229DA0: ; 0x02229DA0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02229DC0 ; =MOD13_02229D64
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229DC0: .word MOD13_02229D64
+
+ arm_func_start MOD13_02229DC4
+MOD13_02229DC4: ; 0x02229DC4
+ bx lr
+
+ arm_func_start MOD13_02229DC8
+MOD13_02229DC8: ; 0x02229DC8
+ stmdb sp!, {r4, lr}
+ bl MOD13_0222120C
+ mov r4, r0
+ cmp r4, #0x83
+ bgt _02229E0C
+ cmp r4, #0x80
+ blt _02229E00
+ cmp r4, #0x80
+ beq _02229E18
+ cmp r4, #0x82
+ beq _02229E7C
+ cmp r4, #0x83
+ beq _02229EA0
+ b _02229F0C
+_02229E00:
+ cmp r4, #0
+ beq _02229F70
+ b _02229F0C
+_02229E0C:
+ ldr r0, _02229F7C ; =0x0000E01D
+ cmp r4, r0
+ b _02229F0C
+_02229E18:
+ ldr r0, _02229F80 ; =0x022430D8
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x29]
+ cmp r0, #0
+ beq _02229F70
+ mov r0, #3
+ bl MOD13_0223424C
+ ldr r1, _02229F80 ; =0x022430D8
+ mov r0, #0
+ ldr r3, [r1]
+ ldrb r2, [r3, #0x29]
+ sub r2, r2, #1
+ strb r2, [r3, #0x29]
+ ldr r3, [r1]
+ ldrb r2, [r3, #0x29]
+ add r2, r3, r2
+ strb r0, [r2, #8]
+ ldr r1, [r1]
+ ldrb r1, [r1, #0x29]
+ cmp r1, #0
+ bne _02229E70
+ bl MOD13_022211F8
+_02229E70:
+ mov r0, #1
+ bl MOD13_022211E4
+ b _02229F70
+_02229E7C:
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r1, _02229F80 ; =0x022430D8
+ ldr r0, _02229F84 ; =MOD13_02229DA0
+ ldr r1, [r1]
+ mov r2, #0
+ strb r2, [r1, #0x2a]
+ bl MOD13_02222FBC
+ ldmia sp!, {r4, pc}
+_02229EA0:
+ bl MOD13_02229748
+ cmp r0, #0
+ beq _02229EC8
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _02229F80 ; =0x022430D8
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x2a]
+ b _02229EE0
+_02229EC8:
+ ldr r0, _02229F80 ; =0x022430D8
+ mov r2, #2
+ ldr r1, [r0]
+ mov r0, #9
+ strb r2, [r1, #0x2a]
+ bl MOD13_0223424C
+_02229EE0:
+ ldr r0, _02229F80 ; =0x022430D8
+ ldr r1, _02229F88 ; =0xC1FFFCFF
+ ldr r2, [r0]
+ ldr r0, _02229F84 ; =MOD13_02229DA0
+ ldr r3, [r2, #4]
+ ldr r2, [r3]
+ and r1, r2, r1
+ orr r1, r1, #0x200
+ str r1, [r3]
+ bl MOD13_02222FBC
+ ldmia sp!, {r4, pc}
+_02229F0C:
+ ldr r0, _02229F80 ; =0x022430D8
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x29]
+ cmp r0, #0x20
+ beq _02229F70
+ mov r0, #1
+ bl MOD13_0223424C
+ ldr r1, _02229F80 ; =0x022430D8
+ mov r0, #1
+ ldr r3, [r1]
+ ldrb r2, [r3, #0x29]
+ add r2, r3, r2
+ strb r4, [r2, #8]
+ ldr r2, [r1]
+ ldrb r1, [r2, #0x29]
+ add r1, r1, #1
+ strb r1, [r2, #0x29]
+ bl MOD13_022211F8
+ ldr r0, _02229F80 ; =0x022430D8
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x29]
+ cmp r0, #0x20
+ bne _02229F70
+ mov r0, #0
+ bl MOD13_022211E4
+_02229F70:
+ bl MOD13_02229A78
+ bl MOD13_022299FC
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02229F7C: .word 0x0000E01D
+_02229F80: .word 0x022430D8
+_02229F84: .word MOD13_02229DA0
+_02229F88: .word 0xC1FFFCFF
+
+ arm_func_start MOD13_02229F8C
+MOD13_02229F8C: ; 0x02229F8C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02229DC8
+ bl MOD13_02229DC4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222120C
+ cmp r0, #0xff
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _02229FCC ; =MOD13_02229F8C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229FCC: .word MOD13_02229F8C
+
+ arm_func_start MOD13_02229FD0
+MOD13_02229FD0: ; 0x02229FD0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0222125C
+ mov r0, #0x14
+ bl MOD13_0223424C
+ ldr r0, _0222A054 ; =0x022430D8
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x29]
+ cmp r0, #0
+ bne _0222A028
+ mov r0, #0
+ bl MOD13_022211F8
+_0222A028:
+ ldr r0, _0222A054 ; =0x022430D8
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x29]
+ cmp r0, #0x20
+ bne _0222A044
+ mov r0, #0
+ bl MOD13_022211E4
+_0222A044:
+ ldr r0, _0222A058 ; =0x02229FA4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A054: .word 0x022430D8
+_0222A058: .word 0x02229FA4
+
+ arm_func_start MOD13_0222A05C
+MOD13_0222A05C: ; 0x0222A05C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222A0B4 ; =MOD13_02229FD0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A0B4: .word MOD13_02229FD0
+
+ arm_func_start MOD13_0222A0B8
+MOD13_0222A0B8: ; 0x0222A0B8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222A15C ; =0x0224018C
+ ldr r1, _0222A160 ; =0x020C9480
+ bl MOD13_0221F174
+ ldr r0, _0222A164 ; =0x022401A0
+ ldr r1, _0222A168 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _0222A16C ; =0x022401B8
+ ldr r1, _0222A170 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _0222A174 ; =0x022401D0
+ ldr r1, _0222A178 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222A17C ; =0x04001008
+ ldr ip, _0222A180 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _0222A184 ; =0x04000008
+ ldr r2, _0222A188 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222A18C ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #2
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A15C: .word 0x0224018C
+_0222A160: .word 0x020C9480
+_0222A164: .word 0x022401A0
+_0222A168: .word 0x020C8D4C
+_0222A16C: .word 0x022401B8
+_0222A170: .word 0x020C9550
+_0222A174: .word 0x022401D0
+_0222A178: .word 0x020C908C
+_0222A17C: .word 0x04001008
+_0222A180: .word 0x0400100A
+_0222A184: .word 0x04000008
+_0222A188: .word 0x0400000A
+_0222A18C: .word 0x0400000C
+
+ arm_func_start MOD13_0222A190
+MOD13_0222A190: ; 0x0222A190
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r1, _0222A2B8 ; =0x0223F24C
+ mov r0, #0x2c
+ ldrb r3, [r1]
+ ldrb r2, [r1, #1]
+ mov r1, #4
+ strb r3, [sp]
+ strb r2, [sp, #1]
+ bl MOD13_0223AFE0
+ ldr r2, _0222A2BC ; =0x022430D8
+ add r1, sp, #8
+ str r0, [r2]
+ add r0, sp, #4
+ bl MOD13_02222F44
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _0222A208
+ ldr r0, _0222A2BC ; =0x022430D8
+ ldr r0, [r0]
+ add r0, r0, #8
+ bl MOD13_02233E90
+ ldr r0, _0222A2BC ; =0x022430D8
+ mov r1, #0x20
+ ldr r0, [r0]
+ add r0, r0, #8
+ bl MOD13_0223BDA4
+ ldr r1, _0222A2BC ; =0x022430D8
+ ldr r1, [r1]
+ strb r0, [r1, #0x29]
+_0222A208:
+ bl MOD13_0222A0B8
+ ldr r0, [sp, #4]
+ add r0, r0, #9
+ bl MOD13_0221F4CC
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _0222A238
+ mov r0, #0x35
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ b _0222A250
+_0222A238:
+ ldr r2, [sp, #4]
+ add r0, sp, #0
+ ldrb r0, [r0, r2]
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+_0222A250:
+ mov r0, #2
+ bl MOD13_0221F124
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_0223A7F0
+ ldr r2, _0222A2BC ; =0x022430D8
+ mov r1, #0x3e
+ ldr r2, [r2]
+ str r0, [r2]
+ mov r0, #0
+ bl MOD13_02239E54
+ ldr r1, _0222A2BC ; =0x022430D8
+ ldr r2, [r1]
+ str r0, [r2, #4]
+ ldr r0, [r1]
+ ldr r1, [r0, #4]
+ ldrh r0, [r1, #4]
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+ bl MOD13_022299FC
+ bl MOD13_02229A78
+ ldr r0, _0222A2C0 ; =MOD13_0222A05C
+ bl MOD13_02222FBC
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A2B8: .word 0x0223F24C
+_0222A2BC: .word 0x022430D8
+_0222A2C0: .word MOD13_0222A05C
+
+ arm_func_start MOD13_0222A2C4
+MOD13_0222A2C4: ; 0x0222A2C4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222A308 ; =0x022430DC
+ ldr r1, _0222A30C ; =0xC1FFFCFF
+ ldr r2, [r0]
+ ldr r0, _0222A310 ; =MOD13_0222AD78
+ ldr r3, [r2, #4]
+ ldr r2, [r3]
+ and r1, r2, r1
+ str r1, [r3]
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A308: .word 0x022430DC
+_0222A30C: .word 0xC1FFFCFF
+_0222A310: .word MOD13_0222AD78
+
+ arm_func_start MOD13_0222A314
+MOD13_0222A314: ; 0x0222A314
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _0222A348 ; =MOD13_0222A2C4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A348: .word MOD13_0222A2C4
+
+ arm_func_start MOD13_0222A34C
+MOD13_0222A34C: ; 0x0222A34C
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #0x10
+ ldr r1, _0222A4A8 ; =0x0223F278
+ ldr r0, _0222A4AC ; =0x022430DC
+ ldrb lr, [r1]
+ ldrb ip, [r1, #1]
+ ldrb r4, [r1, #2]
+ ldrb r3, [r1, #3]
+ mov r2, #0
+ strb lr, [sp]
+ ldr r0, [r0]
+ strb r4, [sp, #2]
+ add r5, sp, #0
+ mov r1, r2
+ strb ip, [sp, #1]
+ strb r3, [sp, #3]
+ mov lr, r2
+ add r4, r0, #8
+_0222A394:
+ ldrb r3, [r4, r1]
+ add r8, r4, r1
+ cmp r3, #0x20
+ beq _0222A3DC
+ mov r7, lr
+ mov r6, r5
+_0222A3AC:
+ ldrb ip, [r8, r7]
+ ldrb r3, [r6]
+ cmp ip, r3
+ addhi sp, sp, #0x10
+ movhi r0, #0
+ ldmhiia sp!, {r4, r5, r6, r7, r8, pc}
+ cmp ip, r3
+ blo _0222A3DC
+ add r7, r7, #1
+ cmp r7, #3
+ add r6, r6, #1
+ blt _0222A3AC
+_0222A3DC:
+ add r2, r2, #1
+ cmp r2, #4
+ add r1, r1, #3
+ blt _0222A394
+ add r1, sp, #8
+ add r0, r0, #8
+ bl MOD13_02233608
+ add r0, sp, #4
+ mov r1, #0
+ bl MOD13_02222F44
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _0222A48C
+ mov ip, #0
+ add r6, sp, #8
+ mov r5, ip
+ mov r3, ip
+ mov r2, #1
+_0222A424:
+ mov r4, r3
+_0222A428:
+ cmp ip, #0
+ beq _0222A450
+ rsb r0, r4, #7
+ ldrb r1, [r6]
+ mov r0, r2, lsl r0
+ ands r0, r1, r0
+ beq _0222A464
+ add sp, sp, #0x10
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_0222A450:
+ rsb r0, r4, #7
+ ldrb r1, [r6]
+ mov r0, r2, lsl r0
+ ands r0, r1, r0
+ moveq ip, r2
+_0222A464:
+ add r4, r4, #1
+ cmp r4, #8
+ blt _0222A428
+ add r5, r5, #1
+ cmp r5, #4
+ add r6, r6, #1
+ blt _0222A424
+ add sp, sp, #0x10
+ mov r0, #1
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_0222A48C:
+ add r0, sp, #8
+ bl FUN_02095AE0
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ add sp, sp, #0x10
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0222A4A8: .word 0x0223F278
+_0222A4AC: .word 0x022430DC
+
+ arm_func_start MOD13_0222A4B0
+MOD13_0222A4B0: ; 0x0222A4B0
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r6, #0
+ mov r4, r6
+ ldr r0, _0222A538 ; =0x022430DC
+ mov ip, r6
+ mov r1, #0x20
+ mov r2, #0x30
+_0222A4D0:
+ ldr r3, [r0]
+ mov r5, ip
+ add r3, r3, #8
+ add r7, r3, r4
+_0222A4E0:
+ ldrb r3, [r7, r5]
+ add lr, r7, r5
+ cmp r3, #0x30
+ beq _0222A500
+ cmp r3, #0x20
+ beq _0222A500
+ cmp r3, #0
+ bne _0222A51C
+_0222A500:
+ cmp r5, #2
+ moveq r3, r2
+ movne r3, r1
+ add r5, r5, #1
+ strb r3, [lr]
+ cmp r5, #3
+ blt _0222A4E0
+_0222A51C:
+ add r6, r6, #1
+ cmp r6, #4
+ add r4, r4, #3
+ blt _0222A4D0
+ bl MOD13_0222A6B8
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222A538: .word 0x022430DC
+
+ arm_func_start MOD13_0222A53C
+MOD13_0222A53C: ; 0x0222A53C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x1c
+ ldr lr, _0222A5DC ; =0x0223F2B0
+ add ip, sp, #4
+ ldmia lr!, {r0, r1, r2, r3}
+ stmia ip!, {r0, r1, r2, r3}
+ ldr r0, [lr]
+ str r0, [ip]
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #0x1c
+ ldmneia sp!, {pc}
+ ldr r0, _0222A5E0 ; =0x022430DC
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x15]
+ cmp r0, #0
+ bne _0222A5A4
+ ldr r3, [r1, #4]
+ ldr r1, _0222A5E4 ; =0xC1FFFCFF
+ ldr r2, [r3]
+ ldr r0, _0222A5E8 ; =MOD13_0222AD78
+ and r1, r2, r1
+ str r1, [r3]
+ bl MOD13_02222FBC
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+_0222A5A4:
+ add r0, sp, #0
+ mov r1, #0
+ bl MOD13_02222F44
+ ldr r0, _0222A5E0 ; =0x022430DC
+ ldr r2, [sp]
+ add r1, sp, #4
+ ldr r0, [r0]
+ ldr r1, [r1, r2, lsl #2]
+ add r0, r0, #8
+ blx r1
+ ldr r0, _0222A5EC ; =MOD13_0222A79C
+ bl MOD13_02222FBC
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A5DC: .word 0x0223F2B0
+_0222A5E0: .word 0x022430DC
+_0222A5E4: .word 0xC1FFFCFF
+_0222A5E8: .word MOD13_0222AD78
+_0222A5EC: .word MOD13_0222A79C
+
+ arm_func_start MOD13_0222A5F0
+MOD13_0222A5F0: ; 0x0222A5F0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ ldr r1, _0222A650 ; =0x022430DC
+ ldr r2, [r1]
+ strb r0, [r2, #0x15]
+ ldr r0, [r1]
+ ldrb r0, [r0, #0x15]
+ cmp r0, #0
+ beq _0222A628
+ cmp r0, #1
+ beq _0222A634
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222A628:
+ mov r0, #7
+ bl MOD13_0223424C
+ b _0222A63C
+_0222A634:
+ mov r0, #0xe
+ bl MOD13_0223424C
+_0222A63C:
+ bl MOD13_02235EB0
+ ldr r0, _0222A654 ; =MOD13_0222A53C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A650: .word 0x022430DC
+_0222A654: .word MOD13_0222A53C
+
+ arm_func_start MOD13_0222A658
+MOD13_0222A658: ; 0x0222A658
+ ldr r0, _0222A6A8 ; =0x022430DC
+ ldr r2, [r0]
+ mov r0, #3
+ ldrb r3, [r2, #0x14]
+ ldr ip, [r2, #4]
+ cmp r3, #3
+ movgt r3, #3
+ mul r1, r3, r0
+ ldr r0, _0222A6AC ; =0x0223F290
+ add r1, r1, #2
+ ldrb r3, [r0, r1]
+ ldr r0, _0222A6B0 ; =0x000001FF
+ ldr r2, [ip]
+ ldr r1, _0222A6B4 ; =0xFE00FF00
+ and r3, r3, r0
+ and r0, r2, r1
+ orr r0, r0, #0x28
+ orr r0, r0, r3, lsl #16
+ str r0, [ip]
+ bx lr
+ .align 2, 0
+_0222A6A8: .word 0x022430DC
+_0222A6AC: .word 0x0223F290
+_0222A6B0: .word 0x000001FF
+_0222A6B4: .word 0xFE00FF00
+
+ arm_func_start MOD13_0222A6B8
+MOD13_0222A6B8: ; 0x0222A6B8
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #0x1c
+ ldr r0, _0222A78C ; =0x0223F288
+ ldr r1, _0222A790 ; =0x0223F27C
+ ldrh r4, [r0, #4]
+ ldrh r3, [r0, #6]
+ ldrh r6, [r0]
+ ldrh r5, [r0, #2]
+ ldr r0, _0222A794 ; =0x022430DC
+ ldrh r2, [r1]
+ strh r4, [sp, #0x14]
+ ldrh r1, [r1, #2]
+ strh r3, [sp, #0x16]
+ ldr r0, [r0]
+ strh r6, [sp, #0x10]
+ strh r5, [sp, #0x12]
+ strh r2, [sp, #0x14]
+ strh r1, [sp, #0x16]
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD13_0223A4D8
+ mov r5, #0
+ ldr r4, _0222A798 ; =0x0223F290
+ strh r5, [sp, #0x1a]
+ ldr r6, _0222A794 ; =0x022430DC
+ add r7, sp, #0x18
+ mov sb, #2
+ mov r8, #0x480
+_0222A728:
+ ldr ip, [r6]
+ ldrh r0, [sp, #0x16]
+ add r1, ip, r5
+ ldrb r1, [r1, #8]
+ strh r1, [sp, #0x18]
+ ldrb r1, [r4]
+ strh r1, [sp, #0x10]
+ str r0, [sp]
+ str sb, [sp, #4]
+ str r8, [sp, #8]
+ str r7, [sp, #0xc]
+ ldrh r2, [sp, #0x12]
+ ldrh r3, [sp, #0x14]
+ ldr r0, [ip]
+ bl MOD13_0223A4F0
+ add r5, r5, #1
+ cmp r5, #0xc
+ add r4, r4, #1
+ blt _0222A728
+ ldr r0, _0222A794 ; =0x022430DC
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl MOD13_0223A410
+ add sp, sp, #0x1c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ .align 2, 0
+_0222A78C: .word 0x0223F288
+_0222A790: .word 0x0223F27C
+_0222A794: .word 0x022430DC
+_0222A798: .word 0x0223F290
+
+ arm_func_start MOD13_0222A79C
+MOD13_0222A79C: ; 0x0222A79C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EE54
+ ldr r0, _0222A834 ; =0x022430DC
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bl MOD13_0223B974
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _0222A838 ; =0x022401E4
+ ldr r1, _0222A83C ; =0x020C9480
+ bl MOD13_0221F174
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ add r0, sp, #0
+ mov r1, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ mov r1, #1
+ cmp r0, #3
+ addge r0, r0, #1
+ strge r0, [sp]
+ mov r0, #2
+ bl MOD13_02222FA8
+ ldr r1, [sp]
+ mov r0, #0
+ add r1, r1, #3
+ bl MOD13_02222F6C
+ ldr r0, _0222A840 ; =MOD13_0222DD4C
+ bl MOD13_02222FBC
+ ldr r0, _0222A834 ; =0x022430DC
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A834: .word 0x022430DC
+_0222A838: .word 0x022401E4
+_0222A83C: .word 0x020C9480
+_0222A840: .word MOD13_0222DD4C
+
+ arm_func_start MOD13_0222A844
+MOD13_0222A844: ; 0x0222A844
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022228BC
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222A8E0 ; =0x022430DC
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x15]
+ cmp r0, #0
+ bne _0222A880
+ ldr r0, _0222A8E4 ; =MOD13_0222A79C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222A880:
+ cmp r0, #2
+ bne _0222A8B4
+ mov ip, #0
+ mov r0, #6
+ mov r1, #3
+ mov r2, #1
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ ldr r0, _0222A8E8 ; =MOD13_0222A314
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222A8B4:
+ mov ip, #0
+ mov r0, #0x47
+ mov r1, #2
+ mov r2, #1
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ ldr r0, _0222A8EC ; =MOD13_0222A5F0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A8E0: .word 0x022430DC
+_0222A8E4: .word MOD13_0222A79C
+_0222A8E8: .word MOD13_0222A314
+_0222A8EC: .word MOD13_0222A5F0
+
+ arm_func_start MOD13_0222A8F0
+MOD13_0222A8F0: ; 0x0222A8F0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02222928
+ mov r0, #0x15
+ bl MOD13_0223424C
+ ldr r0, _0222A928 ; =MOD13_0222A844
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A928: .word MOD13_0222A844
+
+ arm_func_start MOD13_0222A92C
+MOD13_0222A92C: ; 0x0222A92C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0222A94C ; =MOD13_0222A8F0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A94C: .word MOD13_0222A8F0
+
+ arm_func_start MOD13_0222A950
+MOD13_0222A950: ; 0x0222A950
+ bx lr
+
+ arm_func_start MOD13_0222A954
+MOD13_0222A954: ; 0x0222A954
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r2, _0222A9EC ; =0x022430DC
+ mov r1, #3
+ ldr r2, [r2]
+ mov r4, r0
+ ldrb r0, [r2, #0x14]
+ add r3, r2, #8
+ mul r2, r0, r1
+ ldrb r1, [r3, r2]
+ add r0, r3, r2
+ cmp r1, #0
+ beq _0222A998
+ cmp r1, #0x20
+ addne sp, sp, #8
+ movne r0, #1
+ ldmneia sp!, {r4, pc}
+_0222A998:
+ add r1, sp, #0
+ mov r2, #3
+ bl MI_CpuCopy8
+ mov r3, #0
+ add r2, sp, #0
+ strb r3, [sp, #3]
+ mov r0, #0x20
+_0222A9B4:
+ ldrb r1, [r2]
+ cmp r1, #0
+ bne _0222A9D0
+ add r3, r3, #1
+ cmp r3, #3
+ strb r0, [r2], #1
+ blt _0222A9B4
+_0222A9D0:
+ add r0, sp, #0
+ bl atol
+ cmp r0, r4
+ movge r0, #1
+ movlt r0, #0
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222A9EC: .word 0x022430DC
+
+ arm_func_start MOD13_0222A9F0
+MOD13_0222A9F0: ; 0x0222A9F0
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ bl MOD13_02222914
+ mov r4, r0
+ cmp r4, #0
+ bgt _0222AA18
+ cmp r4, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ b _0222ABF4
+_0222AA18:
+ sub r0, r4, #0x10
+ cmp r0, #3
+ addls pc, pc, r0, lsl #2
+ b _0222ABF4
+_0222AA28: ; jump table
+ b _0222AA40 ; case 0
+ b _0222AAF0 ; case 1
+ b _0222AB48 ; case 2
+ b _0222AB70 ; case 3
+ add sp, sp, #4 ; case 4
+ ldmia sp!, {r4, r5, pc} ; case 5
+_0222AA40:
+ ldr r0, _0222AD28 ; =0x022430DC
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x14]
+ cmp r0, #0
+ bne _0222AA60
+ ldrb r0, [r1, #0xa]
+ cmp r0, #0
+ beq _0222AD18
+_0222AA60:
+ mov r0, #3
+ bl MOD13_0223424C
+ ldr r1, _0222AD28 ; =0x022430DC
+ mov r0, #3
+ ldr r2, [r1]
+ ldrb r1, [r2, #0x14]
+ mul r0, r1, r0
+ add r0, r0, #2
+ add r0, r2, r0
+ ldrb r0, [r0, #8]
+ cmp r0, #0
+ subeq r0, r1, #1
+ streqb r0, [r2, #0x14]
+ ldr r0, _0222AD28 ; =0x022430DC
+ mov r2, #3
+ ldr r0, [r0]
+ mov r1, #0
+ ldrb r3, [r0, #0x14]
+ add r0, r0, #8
+ mla r0, r3, r2, r0
+ bl MI_CpuFill8
+ ldr r0, _0222AD28 ; =0x022430DC
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x14]
+ cmp r0, #0
+ bne _0222AADC
+ ldrb r0, [r1, #0xa]
+ cmp r0, #0
+ bne _0222AADC
+ mov r0, #0
+ bl MOD13_02222900
+_0222AADC:
+ mov r0, #1
+ bl MOD13_022228EC
+ mov r0, #0
+ bl MOD13_022228D8
+ b _0222AD18
+_0222AAF0:
+ ldr r0, _0222AD28 ; =0x022430DC
+ ldr r2, [r0]
+ ldrb r1, [r2, #0x14]
+ cmp r1, #3
+ bhs _0222AD18
+ mov r0, #3
+ mul r0, r1, r0
+ add r0, r0, #2
+ add r0, r2, r0
+ ldrb r0, [r0, #8]
+ cmp r0, #0
+ beq _0222AD18
+ mov r0, #1
+ bl MOD13_0223424C
+ ldr r1, _0222AD28 ; =0x022430DC
+ mov r0, #0
+ ldr r2, [r1]
+ ldrb r1, [r2, #0x14]
+ add r1, r1, #1
+ strb r1, [r2, #0x14]
+ bl MOD13_022228D8
+ b _0222AD18
+_0222AB48:
+ ldr r0, _0222AD28 ; =0x022430DC
+ mov r2, #0
+ ldr r1, [r0]
+ mov r0, #7
+ strb r2, [r1, #0x15]
+ bl MOD13_0223424C
+ ldr r0, _0222AD2C ; =MOD13_0222A92C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222AB70:
+ bl MOD13_0222A34C
+ cmp r0, #0
+ beq _0222AB98
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _0222AD28 ; =0x022430DC
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x15]
+ b _0222ABB0
+_0222AB98:
+ ldr r0, _0222AD28 ; =0x022430DC
+ mov r2, #2
+ ldr r1, [r0]
+ mov r0, #9
+ strb r2, [r1, #0x15]
+ bl MOD13_0223424C
+_0222ABB0:
+ ldr r1, _0222AD28 ; =0x022430DC
+ mov r3, #3
+ ldr r2, [r1]
+ ldr r0, _0222AD30 ; =0xC1FFFCFF
+ strb r3, [r2, #0x14]
+ ldr r1, [r1]
+ ldr r2, [r1, #4]
+ ldr r1, [r2]
+ and r0, r1, r0
+ orr r0, r0, #0x200
+ str r0, [r2]
+ bl MOD13_0222A658
+ bl MOD13_0222A4B0
+ ldr r0, _0222AD2C ; =MOD13_0222A92C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222ABF4:
+ ldr r0, _0222AD28 ; =0x022430DC
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x14]
+ cmp r0, #3
+ bne _0222AC18
+ mov r0, #0x1a
+ bl MOD13_0222A954
+ cmp r0, #0
+ bne _0222AD18
+_0222AC18:
+ mov r0, #1
+ bl MOD13_0223424C
+ ldr r1, _0222AD28 ; =0x022430DC
+ mov r0, #3
+ ldr r3, [r1]
+ ldrb r2, [r3, #0x14]
+ add r5, r3, #8
+ mul lr, r2, r0
+ add r0, lr, #2
+ ldrb r3, [r5, r0]
+ add ip, r5, r0
+ cmp r3, #0
+ streqb r4, [ip]
+ beq _0222ACBC
+ add r2, lr, #1
+ ldrb r0, [r5, r2]
+ add r2, r5, r2
+ cmp r0, #0
+ bne _0222AC98
+ strb r3, [r2]
+ mov r0, #0x1a
+ strb r4, [ip]
+ bl MOD13_0222A954
+ cmp r0, #0
+ beq _0222ACBC
+ ldr r0, _0222AD28 ; =0x022430DC
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x14]
+ cmp r0, #3
+ addlo r0, r0, #1
+ strlob r0, [r1, #0x14]
+ b _0222ACBC
+_0222AC98:
+ strb r0, [r5, lr]
+ ldrb r0, [ip]
+ strb r0, [r2]
+ strb r4, [ip]
+ ldr r1, [r1]
+ ldrb r0, [r1, #0x14]
+ cmp r0, #3
+ addlo r0, r0, #1
+ strlob r0, [r1, #0x14]
+_0222ACBC:
+ mov r0, #1
+ bl MOD13_02222900
+ ldr r0, _0222AD28 ; =0x022430DC
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x14]
+ cmp r0, #3
+ bhs _0222ACE4
+ mov r0, #1
+ bl MOD13_022228D8
+ b _0222ACEC
+_0222ACE4:
+ mov r0, #0
+ bl MOD13_022228D8
+_0222ACEC:
+ ldr r0, _0222AD28 ; =0x022430DC
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x14]
+ cmp r0, #3
+ bne _0222AD18
+ mov r0, #0x1a
+ bl MOD13_0222A954
+ cmp r0, #0
+ beq _0222AD18
+ mov r0, #0
+ bl MOD13_022228EC
+_0222AD18:
+ bl MOD13_0222A6B8
+ bl MOD13_0222A658
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0222AD28: .word 0x022430DC
+_0222AD2C: .word MOD13_0222A92C
+_0222AD30: .word 0xC1FFFCFF
+
+ arm_func_start MOD13_0222AD34
+MOD13_0222AD34: ; 0x0222AD34
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222A9F0
+ bl MOD13_0222A950
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02222914
+ cmp r0, #0x1f
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _0222AD74 ; =MOD13_0222AD34
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222AD74: .word MOD13_0222AD34
+
+ arm_func_start MOD13_0222AD78
+MOD13_0222AD78: ; 0x0222AD78
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02222964
+ mov r0, #0x14
+ bl MOD13_0223424C
+ ldr r0, _0222AE0C ; =0x022430DC
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x14]
+ cmp r0, #0
+ bne _0222ADDC
+ mov r0, #0
+ bl MOD13_02222900
+ mov r0, #0
+ bl MOD13_022228D8
+ b _0222ADFC
+_0222ADDC:
+ mov r0, #0x1a
+ bl MOD13_0222A954
+ cmp r0, #0
+ beq _0222ADF4
+ mov r0, #0
+ bl MOD13_022228EC
+_0222ADF4:
+ mov r0, #0
+ bl MOD13_022228D8
+_0222ADFC:
+ ldr r0, _0222AE10 ; =0x0222AD4C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222AE0C: .word 0x022430DC
+_0222AE10: .word 0x0222AD4C
+
+ arm_func_start MOD13_0222AE14
+MOD13_0222AE14: ; 0x0222AE14
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222AE6C ; =MOD13_0222AD78
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222AE6C: .word MOD13_0222AD78
+
+ arm_func_start MOD13_0222AE70
+MOD13_0222AE70: ; 0x0222AE70
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222AF14 ; =0x022401FC
+ ldr r1, _0222AF18 ; =0x020C9480
+ bl MOD13_0221F174
+ ldr r0, _0222AF1C ; =0x02240210
+ ldr r1, _0222AF20 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _0222AF24 ; =0x02240228
+ ldr r1, _0222AF28 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _0222AF2C ; =0x02240240
+ ldr r1, _0222AF30 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222AF34 ; =0x04001008
+ ldr ip, _0222AF38 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _0222AF3C ; =0x04000008
+ ldr r2, _0222AF40 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222AF44 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #2
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222AF14: .word 0x022401FC
+_0222AF18: .word 0x020C9480
+_0222AF1C: .word 0x02240210
+_0222AF20: .word 0x020C8D4C
+_0222AF24: .word 0x02240228
+_0222AF28: .word 0x020C9550
+_0222AF2C: .word 0x02240240
+_0222AF30: .word 0x020C908C
+_0222AF34: .word 0x04001008
+_0222AF38: .word 0x0400100A
+_0222AF3C: .word 0x04000008
+_0222AF40: .word 0x0400000A
+_0222AF44: .word 0x0400000C
+
+ arm_func_start MOD13_0222AF48
+MOD13_0222AF48: ; 0x0222AF48
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0x24
+ ldr r7, _0222B0A8 ; =0x0223F29C
+ ldr ip, _0222B0AC ; =0x0223F280
+ ldmia r7!, {r0, r1, r2, r3}
+ add r6, sp, #0xc
+ stmia r6!, {r0, r1, r2, r3}
+ ldrb r5, [ip]
+ ldrb r4, [ip, #1]
+ ldrb lr, [ip, #2]
+ ldrb r3, [ip, #3]
+ ldrb r2, [ip, #4]
+ ldr ip, [r7]
+ mov r0, #0x18
+ mov r1, #4
+ str ip, [r6]
+ strb r5, [sp]
+ strb r4, [sp, #1]
+ strb lr, [sp, #2]
+ strb r3, [sp, #3]
+ strb r2, [sp, #4]
+ bl MOD13_0223AFE0
+ ldr r2, _0222B0B0 ; =0x022430DC
+ mov r1, #0
+ str r0, [r2]
+ add r0, sp, #8
+ bl MOD13_02222F44
+ ldr r0, _0222B0B0 ; =0x022430DC
+ ldr r2, [sp, #8]
+ add r1, sp, #0xc
+ ldr r0, [r0]
+ ldr r1, [r1, r2, lsl #2]
+ add r0, r0, #8
+ blx r1
+ ldr r0, _0222B0B0 ; =0x022430DC
+ ldr r1, _0222B0B4 ; =0x02240258
+ ldr r4, [r0]
+ mov r2, #3
+ add r0, r4, #8
+ bl memcmp
+ cmp r0, #0
+ movne r0, #3
+ strneb r0, [r4, #0x14]
+ bne _0222B018
+ add r0, r4, #8
+ mov r1, #0
+ mov r2, #0xc
+ bl MI_CpuFill8
+ ldr r0, _0222B0B0 ; =0x022430DC
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x14]
+_0222B018:
+ bl MOD13_0222AE70
+ ldr r0, [sp, #8]
+ add r0, r0, #0xb
+ bl MOD13_0221F4CC
+ ldr r2, [sp, #8]
+ add r0, sp, #0
+ ldrb r0, [r0, r2]
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #2
+ bl MOD13_0221F124
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_0223A7F0
+ ldr r2, _0222B0B0 ; =0x022430DC
+ mov r1, #0x3f
+ ldr r2, [r2]
+ str r0, [r2]
+ mov r0, #0
+ bl MOD13_02239E54
+ ldr r1, _0222B0B0 ; =0x022430DC
+ ldr r2, [r1]
+ str r0, [r2, #4]
+ ldr r0, [r1]
+ ldr r1, [r0, #4]
+ ldrh r0, [r1, #4]
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+ bl MOD13_0222A658
+ bl MOD13_0222A6B8
+ ldr r0, _0222B0B8 ; =MOD13_0222AE14
+ bl MOD13_02222FBC
+ add sp, sp, #0x24
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222B0A8: .word 0x0223F29C
+_0222B0AC: .word 0x0223F280
+_0222B0B0: .word 0x022430DC
+_0222B0B4: .word 0x02240258
+_0222B0B8: .word MOD13_0222AE14
+
+ arm_func_start MOD13_0222B0BC
+MOD13_0222B0BC: ; 0x0222B0BC
+ ldr r1, _0222B0C8 ; =0x022430E0
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0222B0C8: .word 0x022430E0
+
+ arm_func_start MOD13_0222B0CC
+MOD13_0222B0CC: ; 0x0222B0CC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #0
+ beq _0222B164
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222B194 ; =MOD13_02230714
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222B164:
+ mov r0, #2
+ mov r1, #0
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222F6C
+ mov r0, #0
+ bl MOD13_0222B7F4
+ ldr r0, _0222B198 ; =MOD13_0222DD4C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B194: .word MOD13_02230714
+_0222B198: .word MOD13_0222DD4C
+
+ arm_func_start MOD13_0222B19C
+MOD13_0222B19C: ; 0x0222B19C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _0222B1F4 ; =MOD13_0222B0CC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B1F4: .word MOD13_0222B0CC
+
+ arm_func_start MOD13_0222B1F8
+MOD13_0222B1F8: ; 0x0222B1F8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0222B21C ; =MOD13_0222B19C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B21C: .word MOD13_0222B19C
+
+ arm_func_start MOD13_0222B220
+MOD13_0222B220: ; 0x0222B220
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _0222B250 ; =MOD13_0222B1F8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B250: .word MOD13_0222B1F8
+
+ arm_func_start MOD13_0222B254
+MOD13_0222B254: ; 0x0222B254
+ bx lr
+
+ arm_func_start MOD13_0222B258
+MOD13_0222B258: ; 0x0222B258
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222B258
+ bl MOD13_0222B254
+ bl MOD13_0222B220
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222B2D0 ; =0x0222B284
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B2D0: .word 0x0222B284
+
+ arm_func_start MOD13_0222B2D4
+MOD13_0222B2D4: ; 0x0222B2D4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #4
+ bl MOD13_0221F0EC
+ ldr r0, _0222B31C ; =0x0222B2A0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B31C: .word 0x0222B2A0
+
+ arm_func_start MOD13_0222B320
+MOD13_0222B320: ; 0x0222B320
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222B358 ; =MOD13_0222B2D4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B358: .word MOD13_0222B2D4
+
+ arm_func_start MOD13_0222B35C
+MOD13_0222B35C: ; 0x0222B35C
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #0x28
+ add r1, sp, #0x10
+ mov r0, #0
+ bl MOD13_02222F44
+ ldr r0, _0222B690 ; =0x022430E0
+ ldr r1, _0222B694 ; =0xFFFFB17D
+ ldr r0, [r0]
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B698 ; =0xFFFFB17C
+ cmp r0, r1
+ movge r4, #2
+ bge _0222B5B8
+ ldr r1, _0222B69C ; =0xFFFFB17B
+ cmp r0, r1
+ movge r4, #0x13
+ bge _0222B5B8
+ ldr r1, _0222B6A0 ; =0xFFFFB175
+ cmp r0, r1
+ movge r4, #2
+ bge _0222B5B8
+ ldr r1, _0222B6A4 ; =0xFFFFB174
+ cmp r0, r1
+ movge r4, #0x12
+ bge _0222B5B8
+ ldr r1, _0222B6A8 ; =0xFFFFB173
+ cmp r0, r1
+ movge r4, #2
+ bge _0222B5B8
+ ldr r1, _0222B6AC ; =0xFFFFB172
+ cmp r0, r1
+ movge r4, #3
+ bge _0222B5B8
+ ldr r1, _0222B6B0 ; =0xFFFFADF9
+ cmp r0, r1
+ movge r4, #2
+ bge _0222B5B8
+ ldr r1, _0222B6B4 ; =0xFFFFA629
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B6B8 ; =0xFFFFA241
+ cmp r0, r1
+ movge r4, #0x13
+ bge _0222B5B8
+ ldr r1, _0222B6BC ; =0xFFFF3CB1
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B6C0 ; =0xFFFF3CAE
+ cmp r0, r1
+ movge r4, #7
+ bge _0222B5B8
+ ldr r1, _0222B6C4 ; =0xFFFF3CAD
+ cmp r0, r1
+ movge r4, #5
+ bge _0222B5B8
+ ldr r1, _0222B6C8 ; =0xFFFF3C4E
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B6CC ; =0xFFFF3C4D
+ cmp r0, r1
+ blt _0222B478
+ ldr r0, [sp, #0x10]
+ cmp r0, #2
+ moveq r4, #5
+ movne r4, #7
+ b _0222B5B8
+_0222B478:
+ ldr r1, _0222B6D0 ; =0xFFFF3866
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B6D4 ; =0xFFFF3865
+ cmp r0, r1
+ blt _0222B4A8
+ ldr r0, [sp, #0x10]
+ cmp r0, #2
+ moveq r4, #5
+ movne r4, #8
+ b _0222B5B8
+_0222B4A8:
+ ldr r1, _0222B6D8 ; =0xFFFF3862
+ cmp r0, r1
+ movge r4, #9
+ bge _0222B5B8
+ ldr r1, _0222B6DC ; =0xFFFF3861
+ cmp r0, r1
+ movge r4, #5
+ bge _0222B5B8
+ ldr r1, _0222B6E0 ; =0xFFFF3801
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B6E4 ; =0xFFFF379D
+ cmp r0, r1
+ movge r4, #0x14
+ bge _0222B5B8
+ ldr r1, _0222B6E8 ; =0xFFFF379A
+ cmp r0, r1
+ movge r4, #0x15
+ bge _0222B5B8
+ ldr r1, _0222B6EC ; =0xFFFF3799
+ cmp r0, r1
+ movge r4, #4
+ bge _0222B5B8
+ ldr r1, _0222B6F0 ; =0xFFFF34E1
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B6F4 ; =0xFFFF34DE
+ cmp r0, r1
+ movge r4, #0xa
+ bge _0222B5B8
+ ldr r1, _0222B6F8 ; =0xFFFF34DD
+ cmp r0, r1
+ movge r4, #0x16
+ bge _0222B5B8
+ ldr r1, _0222B6FC ; =0xFFFF347D
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B700 ; =0xFFFF3479
+ cmp r0, r1
+ movge r4, #0xb
+ bge _0222B5B8
+ ldr r1, _0222B704 ; =0xFFFF3419
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B708 ; =0xFFFF3415
+ cmp r0, r1
+ movge r4, #0xb
+ bge _0222B5B8
+ ldr r1, _0222B70C ; =0xFFFF33B5
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B710 ; =0xFFFF3351
+ cmp r0, r1
+ movge r4, #2
+ bge _0222B5B8
+ ldr r1, _0222B714 ; =0xFFFF30F9
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B718 ; =0xFFFF2FCD
+ cmp r0, r1
+ movge r4, #2
+ movlt r4, #0
+_0222B5B8:
+ bl MOD13_02222F34
+ mov r2, r0
+ ldr r1, _0222B71C ; =0x0223F2C4
+ mov r0, #0
+ ldrb r1, [r1, r2]
+ bl MOD13_0223A7F0
+ ldr r1, _0222B720 ; =0x0224307C
+ mov r5, r0
+ ldr r0, [r1]
+ mov r1, r4
+ bl MOD13_02223568
+ ldr r1, _0222B690 ; =0x022430E0
+ mov r4, r0
+ ldr r1, [r1]
+ ldr r2, _0222B724 ; =0x0224025C
+ rsb r3, r1, #0
+ add r0, sp, #0x14
+ mov r1, #8
+ bl swprintf
+ bl MOD13_02222F34
+ mov r1, r0, lsl #2
+ ldr r0, _0222B728 ; =0x0223F2D6
+ ldrh r6, [r0, r1]
+ bl MOD13_02222F34
+ mov r1, r0, lsl #2
+ ldr r0, _0222B72C ; =0x0223F2D4
+ mov ip, #0xa
+ ldrh r1, [r0, r1]
+ add r3, sp, #0x14
+ mov r0, #0
+ str ip, [sp]
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r2, r6
+ mov r0, r5
+ mov r3, #2
+ bl MOD13_0223A528
+ bl MOD13_0221EF88
+ ldr r3, _0222B730 ; =0x0223F2CC
+ mov r1, #2
+ ldrh r2, [r3, #6]
+ str r2, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r4, [sp, #0xc]
+ ldrh r1, [r3]
+ ldrh r2, [r3, #2]
+ ldrh r3, [r3, #4]
+ mov r0, r5
+ bl MOD13_0223A4F0
+ mov r0, r5
+ bl MOD13_0223A410
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0222B690: .word 0x022430E0
+_0222B694: .word 0xFFFFB17D
+_0222B698: .word 0xFFFFB17C
+_0222B69C: .word 0xFFFFB17B
+_0222B6A0: .word 0xFFFFB175
+_0222B6A4: .word 0xFFFFB174
+_0222B6A8: .word 0xFFFFB173
+_0222B6AC: .word 0xFFFFB172
+_0222B6B0: .word 0xFFFFADF9
+_0222B6B4: .word 0xFFFFA629
+_0222B6B8: .word 0xFFFFA241
+_0222B6BC: .word 0xFFFF3CB1
+_0222B6C0: .word 0xFFFF3CAE
+_0222B6C4: .word 0xFFFF3CAD
+_0222B6C8: .word 0xFFFF3C4E
+_0222B6CC: .word 0xFFFF3C4D
+_0222B6D0: .word 0xFFFF3866
+_0222B6D4: .word 0xFFFF3865
+_0222B6D8: .word 0xFFFF3862
+_0222B6DC: .word 0xFFFF3861
+_0222B6E0: .word 0xFFFF3801
+_0222B6E4: .word 0xFFFF379D
+_0222B6E8: .word 0xFFFF379A
+_0222B6EC: .word 0xFFFF3799
+_0222B6F0: .word 0xFFFF34E1
+_0222B6F4: .word 0xFFFF34DE
+_0222B6F8: .word 0xFFFF34DD
+_0222B6FC: .word 0xFFFF347D
+_0222B700: .word 0xFFFF3479
+_0222B704: .word 0xFFFF3419
+_0222B708: .word 0xFFFF3415
+_0222B70C: .word 0xFFFF33B5
+_0222B710: .word 0xFFFF3351
+_0222B714: .word 0xFFFF30F9
+_0222B718: .word 0xFFFF2FCD
+_0222B71C: .word 0x0223F2C4
+_0222B720: .word 0x0224307C
+_0222B724: .word 0x0224025C
+_0222B728: .word 0x0223F2D6
+_0222B72C: .word 0x0223F2D4
+_0222B730: .word 0x0223F2CC
+
+ arm_func_start MOD13_0222B734
+MOD13_0222B734: ; 0x0222B734
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222B7B4 ; =0x02240264
+ ldr r1, _0222B7B8 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222B7BC ; =0x04001008
+ ldr ip, _0222B7C0 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _0222B7C4 ; =0x04000008
+ ldr r2, _0222B7C8 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222B7CC ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B7B4: .word 0x02240264
+_0222B7B8: .word 0x020C908C
+_0222B7BC: .word 0x04001008
+_0222B7C0: .word 0x0400100A
+_0222B7C4: .word 0x04000008
+_0222B7C8: .word 0x0400000A
+_0222B7CC: .word 0x0400000C
+
+ arm_func_start MOD13_0222B7D0
+MOD13_0222B7D0: ; 0x0222B7D0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222B734
+ bl MOD13_0222B35C
+ ldr r0, _0222B7F0 ; =MOD13_0222B320
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B7F0: .word MOD13_0222B320
+
+ arm_func_start MOD13_0222B7F4
+MOD13_0222B7F4: ; 0x0222B7F4
+ ldr r1, _0222B800 ; =0x022430E8
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0222B800: .word 0x022430E8
+
+ arm_func_start MOD13_0222B804
+MOD13_0222B804: ; 0x0222B804
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222B82C ; =MOD13_0222DA24
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B82C: .word MOD13_0222DA24
+
+ arm_func_start MOD13_0222B830
+MOD13_0222B830: ; 0x0222B830
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _0222B874 ; =0x022430F4
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ bl MOD13_02232780
+ ldr r0, _0222B878 ; =MOD13_0222B804
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B874: .word 0x022430F4
+_0222B878: .word MOD13_0222B804
+
+ arm_func_start MOD13_0222B87C
+MOD13_0222B87C: ; 0x0222B87C
+ stmdb sp!, {r4, lr}
+ bl MOD13_02234164
+ mov r4, r0
+ ldrb r0, [r4, #0x40]
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+ ldrb r0, [r4, #0xf6]
+ cmp r0, #0
+ bne _0222B8C8
+ add r0, r4, #0xc8
+ bl FUN_02095AE0
+ cmp r0, #0
+ bne _0222B8C8
+ add r0, r4, #0xcc
+ bl FUN_02095AE0
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+_0222B8C8:
+ ldrb r0, [r4, #0xf5]
+ cmp r0, #0
+ bne _0222B914
+ add r0, r4, #0xc0
+ bl FUN_02095AE0
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+ add r0, r4, #0xc4
+ bl FUN_02095AE0
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+ add r0, r4, #0xc0
+ add r1, r4, #0xf0
+ bl FUN_02095B0C
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+_0222B914:
+ mov r0, #1
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_0222B91C
+MOD13_0222B91C: ; 0x0222B91C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0222B9D0 ; =0x0223F2F0
+ ldr r0, _0222B9D4 ; =0x022430E4
+ ldrb ip, [r1]
+ ldrb r3, [r1, #1]
+ ldrb r2, [r1, #2]
+ ldrb r1, [r1, #3]
+ strb ip, [sp]
+ ldrb lr, [r0]
+ add r4, sp, #0
+ strb r3, [sp, #1]
+ strb r2, [sp, #2]
+ strb r1, [sp, #3]
+ mov ip, #0
+_0222B958:
+ ldrb r0, [r4]
+ cmp lr, r0
+ bne _0222B9B8
+ ldr r0, _0222B9D8 ; =0x022430F4
+ mov r3, #0x14
+ ldr r2, [r0]
+ ands r1, ip, #1
+ add r1, r2, ip
+ strb r3, [r1, #4]
+ beq _0222B99C
+ ldr r1, [r0]
+ sub r0, ip, #1
+ add r0, r1, r0
+ mov r1, #0
+ strb r1, [r0, #4]
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222B99C:
+ ldr r1, [r0]
+ add r0, ip, #1
+ add r0, r1, r0
+ mov r1, #0
+ strb r1, [r0, #4]
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222B9B8:
+ add ip, ip, #1
+ cmp ip, #4
+ add r4, r4, #1
+ blt _0222B958
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222B9D0: .word 0x0223F2F0
+_0222B9D4: .word 0x022430E4
+_0222B9D8: .word 0x022430F4
+
+ arm_func_start MOD13_0222B9DC
+MOD13_0222B9DC: ; 0x0222B9DC
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r5, _0222BA34 ; =0x022430F4
+ mov r4, #0
+_0222B9EC:
+ ldr r0, [r5]
+ add r1, r0, r4
+ ldrb r0, [r1, #4]
+ cmp r0, #0
+ beq _0222BA20
+ sub r0, r0, #1
+ strb r0, [r1, #4]
+ ldr r0, [r5]
+ add r0, r0, r4
+ ldrb r0, [r0, #4]
+ cmp r0, #0
+ bne _0222BA20
+ bl MOD13_0222CD8C
+_0222BA20:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0222B9EC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0222BA34: .word 0x022430F4
+
+ arm_func_start MOD13_0222BA38
+MOD13_0222BA38: ; 0x0222BA38
+ ldr r1, _0222BA64 ; =0x022430E4
+ ldr r0, _0222BA68 ; =0x022430F4
+ ldrb r2, [r1]
+ ldr r0, [r0]
+ ldr r1, _0222BA6C ; =0x0223F2EC
+ sub r2, r2, #0xb
+ ldrb r1, [r1, r2]
+ ldr ip, _0222BA70 ; =MOD13_022327DC
+ ldr r0, [r0, #0x10]
+ mov r2, r1
+ bx ip
+ .align 2, 0
+_0222BA64: .word 0x022430E4
+_0222BA68: .word 0x022430F4
+_0222BA6C: .word 0x0223F2EC
+_0222BA70: .word MOD13_022327DC
+
+ arm_func_start MOD13_0222BA74
+MOD13_0222BA74: ; 0x0222BA74
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ bl MOD13_02234164
+ ldr r1, _0222BDA0 ; =0x022430E4
+ mov r4, #0
+ ldrb r2, [r1]
+ cmp r2, #8
+ bne _0222BABC
+ ldrb r0, [r0, #0xf5]
+ cmp r0, #0
+ bne _0222BABC
+ cmp r5, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ cmp r5, #2
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+_0222BABC:
+ cmp r2, #0
+ bgt _0222BAD0
+ cmp r2, #0
+ beq _0222BAF0
+ b _0222BC78
+_0222BAD0:
+ sub r0, r2, #0xa
+ cmp r0, #3
+ addls pc, pc, r0, lsl #2
+ b _0222BC78
+_0222BAE0: ; jump table
+ b _0222BB20 ; case 0
+ b _0222BB5C ; case 1
+ b _0222BBD4 ; case 2
+ b _0222BBD4 ; case 3
+_0222BAF0:
+ cmp r5, #1
+ ldreq r0, _0222BDA0 ; =0x022430E4
+ moveq r1, #0xb
+ streqb r1, [r0]
+ beq _0222BD74
+ cmp r5, #3
+ ldreq r0, _0222BDA4 ; =0x022430EC
+ movne r4, #2
+ ldreqb r1, [r0]
+ addeq r1, r1, #1
+ streqb r1, [r0]
+ b _0222BD74
+_0222BB20:
+ cmp r5, #1
+ ldreq r0, _0222BDA4 ; =0x022430EC
+ ldreqb r1, [r0]
+ subeq r1, r1, #1
+ streqb r1, [r0]
+ beq _0222BD74
+ cmp r5, #3
+ movne r4, #2
+ bne _0222BD74
+ ldr r1, _0222BDA8 ; =0x022430F4
+ ldr r0, _0222BDA0 ; =0x022430E4
+ ldr r1, [r1]
+ ldrb r1, [r1, #0x42]
+ strb r1, [r0]
+ b _0222BD74
+_0222BB5C:
+ cmp r5, #1
+ bne _0222BB9C
+ ldr r0, _0222BDA8 ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x47]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _0222BDA8 ; =0x022430F4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x47]
+ ldmia sp!, {r4, r5, pc}
+_0222BB9C:
+ cmp r5, #3
+ movne r4, #2
+ bne _0222BD74
+ ldr r2, _0222BDA0 ; =0x022430E4
+ mov r3, #0
+ ldr r1, _0222BDA4 ; =0x022430EC
+ ldr r0, _0222BDAC ; =0x022430F0
+ strb r3, [r2]
+ strb r3, [r1]
+ strh r3, [r0]
+ bl MOD13_0222CD8C
+ mov r0, #0
+ bl MOD13_02232F44
+ b _0222BD74
+_0222BBD4:
+ ldr r0, _0222BDA8 ; =0x022430F4
+ cmp r5, #1
+ ldr r1, [r0]
+ strb r2, [r1, #0x42]
+ bne _0222BC1C
+ ldr r2, _0222BDA0 ; =0x022430E4
+ mov ip, #0xa
+ ldr r1, _0222BDA4 ; =0x022430EC
+ mov r5, #3
+ ldr r0, _0222BDAC ; =0x022430F0
+ mov r3, #0x91
+ strb ip, [r2]
+ strb r5, [r1]
+ strh r3, [r0]
+ bl MOD13_0222CD8C
+ mov r0, #0x37
+ bl MOD13_02232F44
+ b _0222BD74
+_0222BC1C:
+ cmp r5, #3
+ bne _0222BC58
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x47]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _0222BDA8 ; =0x022430F4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x47]
+ ldmia sp!, {r4, r5, pc}
+_0222BC58:
+ cmp r2, #0xc
+ ldreq r0, _0222BDA0 ; =0x022430E4
+ moveq r1, #0xd
+ streqb r1, [r0]
+ ldrne r0, _0222BDA0 ; =0x022430E4
+ movne r1, #0xc
+ strneb r1, [r0]
+ b _0222BD74
+_0222BC78:
+ cmp r5, #1
+ bne _0222BCC8
+ ldr r0, _0222BDA4 ; =0x022430EC
+ ldrb r1, [r0]
+ cmp r1, #0
+ subne r1, r1, #1
+ strneb r1, [r0]
+ bne _0222BD74
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _0222BDB0 ; =MOD13_0222C0E8
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222BDA8 ; =0x022430F4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {r4, r5, pc}
+_0222BCC8:
+ cmp r5, #3
+ bne _0222BD18
+ ldr r0, _0222BDA4 ; =0x022430EC
+ ldrb r1, [r0]
+ cmp r1, #3
+ addlo r1, r1, #1
+ strlob r1, [r0]
+ blo _0222BD74
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _0222BDB4 ; =MOD13_0222C03C
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222BDA8 ; =0x022430F4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {r4, r5, pc}
+_0222BD18:
+ cmp r2, #2
+ ldreq r0, _0222BDA0 ; =0x022430E4
+ moveq r1, #3
+ mov r4, #2
+ streqb r1, [r0]
+ beq _0222BD68
+ cmp r2, #3
+ ldreq r0, _0222BDA0 ; =0x022430E4
+ streqb r4, [r0]
+ beq _0222BD68
+ cmp r2, #7
+ ldreq r0, _0222BDA0 ; =0x022430E4
+ moveq r1, #8
+ streqb r1, [r0]
+ beq _0222BD68
+ cmp r2, #8
+ bne _0222BD74
+ ldr r0, _0222BDA0 ; =0x022430E4
+ mov r1, #7
+ strb r1, [r0]
+_0222BD68:
+ mov r0, #8
+ bl MOD13_0223424C
+ bl MOD13_0222BEC0
+_0222BD74:
+ cmp r4, #2
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ mov r0, #8
+ bl MOD13_0223424C
+ cmp r4, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ bl MOD13_0222BDF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0222BDA0: .word 0x022430E4
+_0222BDA4: .word 0x022430EC
+_0222BDA8: .word 0x022430F4
+_0222BDAC: .word 0x022430F0
+_0222BDB0: .word MOD13_0222C0E8
+_0222BDB4: .word MOD13_0222C03C
+
+ arm_func_start MOD13_0222BDB8
+MOD13_0222BDB8: ; 0x0222BDB8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _0222BDE8 ; =0x022430E4
+ ldr r2, _0222BDEC ; =0x0223F32C
+ strb r0, [r1]
+ ldrb r0, [r2, r0]
+ bl MOD13_0222C1F4
+ ldr r1, _0222BDF0 ; =0x022430EC
+ strb r0, [r1]
+ bl MOD13_0222BEC0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222BDE8: .word 0x022430E4
+_0222BDEC: .word 0x0223F32C
+_0222BDF0: .word 0x022430EC
+
+ arm_func_start MOD13_0222BDF4
+MOD13_0222BDF4: ; 0x0222BDF4
+ stmdb sp!, {r4, lr}
+ ldr r0, _0222BEB0 ; =0x022430E4
+ ldrb r0, [r0]
+ add r0, r0, #0xf5
+ and r0, r0, #0xff
+ cmp r0, #2
+ bhi _0222BE18
+ bl MOD13_0222BEC0
+ ldmia sp!, {r4, pc}
+_0222BE18:
+ bl MOD13_02234164
+ ldr r1, _0222BEB4 ; =0x022430F0
+ mov r4, r0
+ ldrh r0, [r1]
+ mov r1, #0x1d
+ bl FX_DivS32
+ ldr r1, _0222BEB8 ; =0x022430EC
+ ldrb r1, [r1]
+ add r2, r1, r0
+ cmp r2, #2
+ beq _0222BE50
+ cmp r2, #6
+ beq _0222BE74
+ b _0222BE98
+_0222BE50:
+ ldrb r0, [r4, #0xf5]
+ cmp r0, #0
+ ldrne r0, _0222BEB0 ; =0x022430E4
+ movne r1, #2
+ strneb r1, [r0]
+ ldreq r0, _0222BEB0 ; =0x022430E4
+ moveq r1, #3
+ streqb r1, [r0]
+ b _0222BEA8
+_0222BE74:
+ ldrb r0, [r4, #0xf6]
+ cmp r0, #0
+ ldrne r0, _0222BEB0 ; =0x022430E4
+ movne r1, #7
+ strneb r1, [r0]
+ ldreq r0, _0222BEB0 ; =0x022430E4
+ moveq r1, #8
+ streqb r1, [r0]
+ b _0222BEA8
+_0222BE98:
+ ldr r1, _0222BEBC ; =0x0223F314
+ ldr r0, _0222BEB0 ; =0x022430E4
+ ldrb r1, [r1, r2]
+ strb r1, [r0]
+_0222BEA8:
+ bl MOD13_0222BEC0
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222BEB0: .word 0x022430E4
+_0222BEB4: .word 0x022430F0
+_0222BEB8: .word 0x022430EC
+_0222BEBC: .word 0x0223F314
+
+ arm_func_start MOD13_0222BEC0
+MOD13_0222BEC0: ; 0x0222BEC0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x1c
+ ldr ip, _0222BF90 ; =0x0223F338
+ add r3, sp, #8
+ mov r2, #7
+_0222BED4:
+ ldrb r1, [ip], #1
+ ldrb r0, [ip], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _0222BED4
+ ldr r0, _0222BF94 ; =0x022430E4
+ add r1, sp, #8
+ ldrb r0, [r0]
+ ldrb r2, [r1, r0]
+ cmp r2, #3
+ blt _0222BF30
+ mov r3, r2, lsl #3
+ ldr r1, _0222BF98 ; =0x0223F3CC
+ ldr r2, _0222BF9C ; =0x0223F3D0
+ ldr r0, _0222BFA0 ; =0x0223F3CE
+ ldrh r1, [r1, r3]
+ ldrh r2, [r2, r3]
+ ldrh r3, [r0, r3]
+ mov r0, #3
+ bl MOD13_0221F348
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+_0222BF30:
+ ldr r0, _0222BF98 ; =0x0223F3CC
+ mov r1, r2, lsl #3
+ add lr, r0, r2, lsl #3
+ ldrh ip, [r0, r1]
+ ldrh r1, [lr, #2]
+ ldr r0, _0222BFA4 ; =0x022430EC
+ ldrh r3, [lr, #4]
+ strh r1, [sp, #2]
+ ldrh r2, [sp, #2]
+ ldrb r1, [r0]
+ mov r0, #0x1d
+ strh ip, [sp]
+ mla r0, r1, r0, r2
+ strh r3, [sp, #4]
+ strh r0, [sp, #2]
+ ldrh ip, [lr, #6]
+ ldrh r1, [sp]
+ ldrh r2, [sp, #4]
+ ldrh r3, [sp, #2]
+ mov r0, #1
+ strh ip, [sp, #6]
+ bl MOD13_0221F348
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222BF90: .word 0x0223F338
+_0222BF94: .word 0x022430E4
+_0222BF98: .word 0x0223F3CC
+_0222BF9C: .word 0x0223F3D0
+_0222BFA0: .word 0x0223F3CE
+_0222BFA4: .word 0x022430EC
+
+ arm_func_start MOD13_0222BFA8
+MOD13_0222BFA8: ; 0x0222BFA8
+ stmdb sp!, {r4, lr}
+ ldr r0, _0222C024 ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x44]
+ cmp r0, #0
+ ldmeqia sp!, {r4, pc}
+ ldr r0, _0222C028 ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r0, [r0]
+ bl FX_DivS32
+ ldr r1, _0222C028 ; =0x022430F0
+ mov r4, r0
+ ldrh r0, [r1]
+ mov r1, #0x1d
+ bl FX_ModS32
+ ldr r1, _0222C02C ; =0x01FF0000
+ sub ip, r0, #0x33
+ ldr r2, _0222C030 ; =0x04000010
+ and r3, r1, ip, lsl #16
+ ldr r0, _0222C034 ; =0x0223F320
+ str r3, [r2]
+ ldrb r3, [r0, r4]
+ ldr r2, _0222C038 ; =0x04000018
+ ldr r0, _0222C024 ; =0x022430F4
+ add r3, ip, r3
+ and r1, r1, r3, lsl #16
+ str r1, [r2]
+ ldr r0, [r0]
+ mov r1, #0
+ strb r1, [r0, #0x44]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222C024: .word 0x022430F4
+_0222C028: .word 0x022430F0
+_0222C02C: .word 0x01FF0000
+_0222C030: .word 0x04000010
+_0222C034: .word 0x0223F320
+_0222C038: .word 0x04000018
+
+ arm_func_start MOD13_0222C03C
+MOD13_0222C03C: ; 0x0222C03C
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl MOD13_02232F14
+ bl MOD13_0221F21C
+ ldr r0, _0222C0DC ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r2, [r0]
+ add r2, r2, #6
+ strh r2, [r0]
+ ldrh r0, [r0]
+ bl FX_ModS32
+ cmp r0, #6
+ blt _0222C078
+ bl MOD13_0222C4C8
+ ldmia sp!, {r4, pc}
+_0222C078:
+ ldr r1, _0222C0DC ; =0x022430F0
+ ldrh r2, [r1]
+ sub r0, r2, r0
+ strh r0, [r1]
+ bl MOD13_0222CD8C
+ ldr r1, _0222C0DC ; =0x022430F0
+ mov r0, #0x37
+ ldrh r1, [r1]
+ ldr r2, _0222C0E0 ; =0xE1FC780F
+ mul r3, r1, r0
+ smull r1, r0, r2, r3
+ add r0, r3, r0
+ mov r0, r0, asr #7
+ mov r1, r3, lsr #0x1f
+ add r0, r1, r0
+ bl MOD13_02232F44
+ bl MOD13_02232F2C
+ bl MOD13_0222BDF4
+ ldr r0, _0222C0E4 ; =0x022430F4
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0
+ str r0, [r2, #0x38]
+ bl MOD13_0223C110
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222C0DC: .word 0x022430F0
+_0222C0E0: .word 0xE1FC780F
+_0222C0E4: .word 0x022430F4
+
+ arm_func_start MOD13_0222C0E8
+MOD13_0222C0E8: ; 0x0222C0E8
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r4, r0
+ bl MOD13_02232F14
+ bl MOD13_0221F21C
+ ldr r0, _0222C1C4 ; =0x022430F0
+ ldrh r1, [r0]
+ cmp r1, #6
+ subhi r1, r1, #6
+ strhih r1, [r0]
+ movls r1, #0
+ strlsh r1, [r0]
+ ldr r0, _0222C1C4 ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r0, [r0]
+ bl FX_ModS32
+ mov r5, r0
+ cmp r5, #0x17
+ bne _0222C140
+ bl MOD13_0222CD8C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222C140:
+ cmp r5, #0x17
+ ble _0222C160
+ ldr r0, _0222C1C4 ; =0x022430F0
+ rsb r1, r5, #0x1d
+ ldrh r2, [r0]
+ mov r5, #0
+ add r1, r2, r1
+ strh r1, [r0]
+_0222C160:
+ bl MOD13_0222C4C8
+ cmp r5, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ ldr r1, _0222C1C4 ; =0x022430F0
+ mov r0, #0x37
+ ldrh r1, [r1]
+ ldr r2, _0222C1C8 ; =0xE1FC780F
+ mul r3, r1, r0
+ smull r1, r0, r2, r3
+ add r0, r3, r0
+ mov r0, r0, asr #7
+ mov r1, r3, lsr #0x1f
+ add r0, r1, r0
+ bl MOD13_02232F44
+ bl MOD13_02232F2C
+ bl MOD13_0222BDF4
+ ldr r0, _0222C1CC ; =0x022430F4
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0
+ str r0, [r2, #0x38]
+ bl MOD13_0223C110
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0222C1C4: .word 0x022430F0
+_0222C1C8: .word 0xE1FC780F
+_0222C1CC: .word 0x022430F4
+
+ arm_func_start MOD13_0222C1D0
+MOD13_0222C1D0: ; 0x0222C1D0
+ stmdb sp!, {r4, lr}
+ ldr r1, _0222C1F0 ; =0x022430F0
+ mov r4, r0
+ ldrh r0, [r1]
+ mov r1, #0x1d
+ bl FX_DivS32
+ add r0, r0, r4
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222C1F0: .word 0x022430F0
+
+ arm_func_start MOD13_0222C1F4
+MOD13_0222C1F4: ; 0x0222C1F4
+ stmdb sp!, {r4, lr}
+ ldr r1, _0222C234 ; =0x022430F0
+ mov r4, r0
+ ldrh r0, [r1]
+ mov r1, #0x1d
+ bl FX_DivS32
+ mov r1, #0
+_0222C210:
+ cmp r0, r4
+ moveq r0, r1
+ ldmeqia sp!, {r4, pc}
+ add r1, r1, #1
+ cmp r1, #4
+ add r0, r0, #1
+ blt _0222C210
+ mvn r0, #0
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222C234: .word 0x022430F0
+
+ arm_func_start MOD13_0222C238
+MOD13_0222C238: ; 0x0222C238
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #8
+ ldr r0, _0222C4AC ; =0x0223F75C
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ addeq sp, sp, #8
+ moveq r0, #0xe
+ ldmeqia sp!, {r4, r5, r6, pc}
+ ldr r0, _0222C4B0 ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r0, [r0]
+ bl FX_DivS32
+ ldr r1, _0222C4B4 ; =0x0223F2FC
+ add r4, sp, #0
+ ldrh ip, [r1]
+ ldrh r3, [r1, #2]
+ ldrh r2, [r1, #4]
+ ldrh r1, [r1, #6]
+ mov r5, r0
+ strh ip, [sp]
+ strh r3, [sp, #2]
+ strh r2, [sp, #4]
+ strh r1, [sp, #6]
+ mov r6, #0
+_0222C298:
+ cmp r5, #2
+ beq _0222C2C4
+ cmp r5, #6
+ beq _0222C2C4
+ mov r0, r4
+ bl MOD13_0223B194
+ cmp r0, #0
+ ldrne r0, _0222C4B8 ; =0x0223F314
+ addne sp, sp, #8
+ ldrneb r0, [r0, r5]
+ ldmneia sp!, {r4, r5, r6, pc}
+_0222C2C4:
+ ldrh r0, [sp, #2]
+ add r6, r6, #1
+ cmp r6, #4
+ add r0, r0, #0x1d
+ strh r0, [sp, #2]
+ add r5, r5, #1
+ blt _0222C298
+ ldr r0, _0222C4B0 ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r0, [r0]
+ bl FX_DivS32
+ mov r3, #0
+_0222C2F4:
+ cmp r0, #2
+ bne _0222C398
+ ldr r1, _0222C4BC ; =0x0223F30C
+ mov r0, #0x1d
+ ldrh r2, [r1, #2]
+ mul r4, r3, r0
+ strh r2, [sp, #2]
+ ldrh r5, [r1]
+ ldrh r3, [r1, #4]
+ ldrh r2, [r1, #6]
+ ldrh r0, [sp, #2]
+ strh r5, [sp]
+ strh r3, [sp, #4]
+ add r1, r0, r4
+ add r0, sp, #0
+ strh r2, [sp, #6]
+ strh r1, [sp, #2]
+ bl MOD13_0223B194
+ cmp r0, #0
+ addne sp, sp, #8
+ movne r0, #2
+ ldmneia sp!, {r4, r5, r6, pc}
+ ldr r1, _0222C4C0 ; =0x0223F304
+ add r0, sp, #0
+ ldrh r2, [r1, #2]
+ ldrh ip, [r1]
+ ldrh r5, [r1, #4]
+ strh r2, [sp, #2]
+ ldrh r3, [r1, #6]
+ ldrh r2, [sp, #2]
+ strh ip, [sp]
+ strh r5, [sp, #4]
+ add r1, r2, r4
+ strh r3, [sp, #6]
+ strh r1, [sp, #2]
+ bl MOD13_0223B194
+ cmp r0, #0
+ beq _0222C3A8
+ add sp, sp, #8
+ mov r0, #3
+ ldmia sp!, {r4, r5, r6, pc}
+_0222C398:
+ add r3, r3, #1
+ cmp r3, #4
+ add r0, r0, #1
+ blt _0222C2F4
+_0222C3A8:
+ ldr r0, _0222C4B0 ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r0, [r0]
+ bl FX_DivS32
+ mov r3, #0
+_0222C3BC:
+ cmp r0, #6
+ bne _0222C460
+ ldr r1, _0222C4BC ; =0x0223F30C
+ mov r0, #0x1d
+ ldrh r2, [r1, #2]
+ mul r4, r3, r0
+ strh r2, [sp, #2]
+ ldrh r5, [r1]
+ ldrh r3, [r1, #4]
+ ldrh r2, [r1, #6]
+ ldrh r0, [sp, #2]
+ strh r5, [sp]
+ strh r3, [sp, #4]
+ add r1, r0, r4
+ add r0, sp, #0
+ strh r2, [sp, #6]
+ strh r1, [sp, #2]
+ bl MOD13_0223B194
+ cmp r0, #0
+ addne sp, sp, #8
+ movne r0, #7
+ ldmneia sp!, {r4, r5, r6, pc}
+ ldr r1, _0222C4C0 ; =0x0223F304
+ add r0, sp, #0
+ ldrh r2, [r1, #2]
+ ldrh ip, [r1]
+ ldrh r5, [r1, #4]
+ strh r2, [sp, #2]
+ ldrh r3, [r1, #6]
+ ldrh r2, [sp, #2]
+ strh ip, [sp]
+ strh r5, [sp, #4]
+ add r1, r2, r4
+ strh r3, [sp, #6]
+ strh r1, [sp, #2]
+ bl MOD13_0223B194
+ cmp r0, #0
+ beq _0222C470
+ add sp, sp, #8
+ mov r0, #8
+ ldmia sp!, {r4, r5, r6, pc}
+_0222C460:
+ add r3, r3, #1
+ cmp r3, #4
+ add r0, r0, #1
+ blt _0222C3BC
+_0222C470:
+ ldr r5, _0222C4C4 ; =0x0223F3B4
+ mov r4, #0
+_0222C478:
+ mov r0, r5
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ addne sp, sp, #8
+ addne r0, r4, #0xb
+ ldmneia sp!, {r4, r5, r6, pc}
+ add r4, r4, #1
+ cmp r4, #3
+ add r5, r5, #8
+ blt _0222C478
+ mov r0, #0xe
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0222C4AC: .word 0x0223F75C
+_0222C4B0: .word 0x022430F0
+_0222C4B4: .word 0x0223F2FC
+_0222C4B8: .word 0x0223F314
+_0222C4BC: .word 0x0223F30C
+_0222C4C0: .word 0x0223F304
+_0222C4C4: .word 0x0223F3B4
+
+ arm_func_start MOD13_0222C4C8
+MOD13_0222C4C8: ; 0x0222C4C8
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ sub sp, sp, #8
+ ldr r0, _0222C6EC ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r0, [r0]
+ bl FX_DivS32
+ ldr r1, _0222C6EC ; =0x022430F0
+ mov r4, r0
+ ldrh r0, [r1]
+ mov r1, #0x1d
+ bl FX_ModS32
+ ldr r1, _0222C6F0 ; =0x022430F4
+ rsb ip, r0, #0x34
+ ldr r1, [r1]
+ ldr r0, [r1, #0x34]
+ cmp r0, #0
+ beq _0222C54C
+ cmp r4, #0
+ moveq r0, #0x26
+ streq r0, [sp]
+ movne r0, #0x100
+ strne r0, [sp]
+ ldr r5, [r1, #0x34]
+ ldr r1, _0222C6F4 ; =0xFE00FF00
+ ldr r2, [r5]
+ ldr r3, [sp]
+ ldr r0, _0222C6F8 ; =0x000001FF
+ and r2, r2, r1
+ and r1, ip, #0xff
+ and r3, r3, r0
+ orr r0, r2, r1
+ orr r0, r0, r3, lsl #16
+ str r0, [r5]
+_0222C54C:
+ mov r3, ip
+ mov r2, #0
+ ldr r7, _0222C6F0 ; =0x022430F4
+ ldr lr, _0222C6FC ; =0x01FF0000
+ ldr r5, _0222C6F8 ; =0x000001FF
+ ldr r6, _0222C6F4 ; =0xFE00FF00
+_0222C564:
+ ldr r0, [r7]
+ and r8, r3, #0xff
+ add r1, r0, r2, lsl #2
+ ldr r0, [r1, #0x18]
+ add r2, r2, #1
+ ldr sb, [r0]
+ cmp r2, #5
+ and sl, sb, lr
+ mov sb, sl, lsr #0x10
+ str sb, [sp]
+ ldr sb, [r0]
+ and r0, r5, sl, lsr #16
+ and sb, sb, #0xff
+ str sb, [sp, #4]
+ ldr r1, [r1, #0x18]
+ add r3, r3, #0x1d
+ ldr sb, [r1]
+ and sb, sb, r6
+ orr r8, sb, r8
+ orr r0, r8, r0, lsl #16
+ str r0, [r1]
+ blt _0222C564
+ cmp r4, #2
+ bgt _0222C624
+ ldr r6, [r7]
+ ldr r0, _0222C6FC ; =0x01FF0000
+ ldr r5, [r6, #0x2c]
+ rsb r2, r4, #2
+ ldr r3, [r5]
+ mov r1, #0x1d
+ and r0, r3, r0
+ mov r3, r0, lsr #0x10
+ str r3, [sp]
+ ldr r5, [r5]
+ mla r3, r2, r1, ip
+ and r1, r5, #0xff
+ str r1, [sp, #4]
+ ldr r6, [r6, #0x2c]
+ ldr r1, _0222C6F8 ; =0x000001FF
+ ldr r5, [r6]
+ ldr r2, _0222C6F4 ; =0xFE00FF00
+ and r3, r3, #0xff
+ and r2, r5, r2
+ and r1, r1, r0, lsr #16
+ orr r0, r2, r3
+ orr r0, r0, r1, lsl #16
+ str r0, [r6]
+ b _0222C640
+_0222C624:
+ ldr r1, [r7]
+ ldr r0, _0222C6F4 ; =0xFE00FF00
+ ldr r2, [r1, #0x2c]
+ ldr r1, [r2]
+ and r0, r1, r0
+ orr r0, r0, #0x1000000
+ str r0, [r2]
+_0222C640:
+ cmp r4, #2
+ blt _0222C6B4
+ cmp r4, #6
+ bgt _0222C6B4
+ ldr r0, _0222C6F0 ; =0x022430F4
+ ldr r1, _0222C6FC ; =0x01FF0000
+ ldr r0, [r0]
+ rsb r3, r4, #6
+ ldr r6, [r0, #0x30]
+ mov r2, #0x1d
+ ldr r4, [r6]
+ mla r2, r3, r2, ip
+ and r5, r4, r1
+ mov r1, r5, lsr #0x10
+ str r1, [sp]
+ ldr r3, [r6]
+ ldr r1, _0222C6F4 ; =0xFE00FF00
+ and r3, r3, #0xff
+ str r3, [sp, #4]
+ ldr r4, [r0, #0x30]
+ ldr r0, _0222C6F8 ; =0x000001FF
+ ldr r3, [r4]
+ and r2, r2, #0xff
+ and r1, r3, r1
+ and r3, r0, r5, lsr #16
+ orr r0, r1, r2
+ orr r0, r0, r3, lsl #16
+ str r0, [r4]
+ b _0222C6D4
+_0222C6B4:
+ ldr r1, _0222C6F0 ; =0x022430F4
+ ldr r0, _0222C6F4 ; =0xFE00FF00
+ ldr r1, [r1]
+ ldr r2, [r1, #0x30]
+ ldr r1, [r2]
+ and r0, r1, r0
+ orr r0, r0, #0x1000000
+ str r0, [r2]
+_0222C6D4:
+ ldr r0, _0222C6F0 ; =0x022430F4
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x44]
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_0222C6EC: .word 0x022430F0
+_0222C6F0: .word 0x022430F4
+_0222C6F4: .word 0xFE00FF00
+_0222C6F8: .word 0x000001FF
+_0222C6FC: .word 0x01FF0000
+
+ arm_func_start MOD13_0222C700
+MOD13_0222C700: ; 0x0222C700
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #0x30
+ mov ip, r0
+ ldrb r2, [ip, #1]
+ mov r4, r1
+ add r0, sp, #0xc
+ str r2, [sp]
+ ldrb r3, [ip, #2]
+ ldr r2, _0222C780 ; =0x02240278
+ mov r1, #0x10
+ str r3, [sp, #4]
+ ldrb r3, [ip, #3]
+ str r3, [sp, #8]
+ ldrb r3, [ip]
+ bl swprintf
+ mov r2, #7
+ mov r0, #0x1d
+ mul r1, r4, r0
+ str r2, [sp]
+ add r0, sp, #0xc
+ str r0, [sp, #4]
+ mov r2, #1
+ str r2, [sp, #8]
+ ldr r0, _0222C784 ; =0x022430F4
+ add r2, r1, #8
+ ldr r0, [r0]
+ mov r1, #0x5f
+ ldr r0, [r0, #0x14]
+ mov r3, #2
+ bl MOD13_0223A528
+ add sp, sp, #0x30
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222C780: .word 0x02240278
+_0222C784: .word 0x022430F4
+
+ arm_func_start MOD13_0222C788
+MOD13_0222C788: ; 0x0222C788
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #0x30
+ mov r6, r0
+ mov r4, r1
+ add r0, sp, #0xc
+ mov r1, #0
+ mov r2, #0x22
+ bl MI_CpuFill8
+ mov r0, r6
+ mov r1, #0x20
+ bl MOD13_0223BDA4
+ mov r5, r0
+ cmp r5, #0x10
+ movle lr, r5
+ movgt lr, #0x10
+ cmp lr, #0
+ mov ip, #0
+ ble _0222C7FC
+ ldr r2, _0222C8DC ; =0x0000E01D
+ add r1, sp, #0xc
+_0222C7D8:
+ ldrb r3, [r6, ip]
+ cmp r3, #0x20
+ moveq r0, ip, lsl #1
+ streqh r2, [r1, r0]
+ movne r0, ip, lsl #1
+ add ip, ip, #1
+ strneh r3, [r1, r0]
+ cmp ip, lr
+ blt _0222C7D8
+_0222C7FC:
+ mov r0, #0x1d
+ mul r0, r4, r0
+ mov r1, #8
+ add r4, r0, #2
+ str r1, [sp]
+ add r0, sp, #0xc
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ ldr r0, _0222C8E0 ; =0x022430F4
+ cmp r5, #0x10
+ ldr r0, [r0]
+ addle r4, r4, #5
+ ldr r0, [r0, #0x14]
+ mov r2, r4
+ mov r1, #0x48
+ mov r3, #2
+ bl MOD13_0223A528
+ cmp r5, #0x10
+ addle sp, sp, #0x30
+ ldmleia sp!, {r4, r5, r6, pc}
+ add r0, sp, #0xc
+ mov r1, #0
+ mov r2, #0x22
+ bl MI_CpuFill8
+ sub ip, r5, #0x10
+ cmp ip, #0
+ mov r5, #0
+ ble _0222C8A0
+ ldr r2, _0222C8DC ; =0x0000E01D
+ add r1, sp, #0xc
+_0222C878:
+ add r0, r5, #0x10
+ ldrb r3, [r6, r0]
+ cmp r3, #0x20
+ moveq r0, r5, lsl #1
+ streqh r2, [r1, r0]
+ movne r0, r5, lsl #1
+ add r5, r5, #1
+ strneh r3, [r1, r0]
+ cmp r5, ip
+ blt _0222C878
+_0222C8A0:
+ mov r1, #8
+ str r1, [sp]
+ add r0, sp, #0xc
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ ldr r0, _0222C8E0 ; =0x022430F4
+ add r2, r4, #0xc
+ ldr r0, [r0]
+ mov r1, #0x48
+ ldr r0, [r0, #0x14]
+ mov r3, #2
+ bl MOD13_0223A528
+ add sp, sp, #0x30
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0222C8DC: .word 0x0000E01D
+_0222C8E0: .word 0x022430F4
+
+ arm_func_start MOD13_0222C8E4
+MOD13_0222C8E4: ; 0x0222C8E4
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #0x10
+ ldr r5, _0222C9EC ; =0x0223F2FC
+ ldr r4, _0222C9F0 ; =0x0223F30C
+ ldr r3, _0222C9F4 ; =0x0223F304
+ ldrh ip, [r4]
+ ldrh r4, [r3]
+ ldr r3, _0222C9F8 ; =0x022430F4
+ ldrh lr, [r5]
+ ldr r3, [r3]
+ mov r6, r0
+ add r3, r3, #0x18
+ sub r0, r6, #1
+ mov r5, r1
+ strh lr, [sp]
+ strh ip, [sp, #2]
+ strh ip, [sp, #4]
+ strh r4, [sp, #6]
+ strh r4, [sp, #8]
+ cmp r0, #1
+ add r4, r3, r2, lsl #2
+ bhi _0222C960
+ mov r0, r2
+ bl MOD13_0222C1D0
+ cmp r0, #2
+ ldreq r0, _0222C9F8 ; =0x022430F4
+ ldreq r0, [r0]
+ addeq r4, r0, #0x2c
+ ldrne r0, _0222C9F8 ; =0x022430F4
+ ldrne r0, [r0]
+ addne r4, r0, #0x30
+_0222C960:
+ ldr r1, _0222C9FC ; =0x0223F348
+ mov r0, #3
+ mla r0, r6, r0, r1
+ ldrb r1, [r5, r0]
+ cmp r1, #0
+ beq _0222C9CC
+ ldr r2, [r4]
+ mov r0, #0
+ bl MOD13_02239E8C
+ ldr r5, [r4]
+ add r0, sp, #0
+ mov r1, r6, lsl #1
+ ldrh r3, [r0, r1]
+ ldr r0, _0222CA00 ; =0x000001FF
+ ldr r2, [r5]
+ ldr r1, _0222CA04 ; =0xFE00FF00
+ and r3, r3, r0
+ and r0, r2, r1
+ orr r0, r0, r3, lsl #16
+ str r0, [r5]
+ ldr r1, [r4]
+ add sp, sp, #0x10
+ ldrh r0, [r1, #4]
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+ ldmia sp!, {r4, r5, r6, pc}
+_0222C9CC:
+ ldr r2, [r4]
+ ldr r0, _0222CA04 ; =0xFE00FF00
+ ldr r1, [r2]
+ and r0, r1, r0
+ orr r0, r0, #0x1000000
+ str r0, [r2]
+ add sp, sp, #0x10
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0222C9EC: .word 0x0223F2FC
+_0222C9F0: .word 0x0223F30C
+_0222C9F4: .word 0x0223F304
+_0222C9F8: .word 0x022430F4
+_0222C9FC: .word 0x0223F348
+_0222CA00: .word 0x000001FF
+_0222CA04: .word 0xFE00FF00
+
+ arm_func_start MOD13_0222CA08
+MOD13_0222CA08: ; 0x0222CA08
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl MOD13_02234164
+ cmp r4, #0xa
+ mov r1, #1
+ addls pc, pc, r4, lsl #2
+ b _0222CA94
+_0222CA24: ; jump table
+ b _0222CA60 ; case 0
+ b _0222CA60 ; case 1
+ b _0222CA94 ; case 2
+ b _0222CA94 ; case 3
+ b _0222CA78 ; case 4
+ b _0222CA78 ; case 5
+ b _0222CA78 ; case 6
+ b _0222CA50 ; case 7
+ b _0222CA94 ; case 8
+ b _0222CA88 ; case 9
+ b _0222CA88 ; case 10
+_0222CA50:
+ ldrb r0, [r0, #0xf5]
+ cmp r0, #0
+ moveq r1, #0
+ b _0222CA94
+_0222CA60:
+ ldrb r0, [r0, #0xe7]
+ add r0, r0, #0xff
+ and r0, r0, #0xff
+ cmp r0, #1
+ movls r1, #0
+ b _0222CA94
+_0222CA78:
+ ldrb r0, [r0, #0xf5]
+ cmp r0, #0
+ movne r1, #0
+ b _0222CA94
+_0222CA88:
+ ldrb r0, [r0, #0xf6]
+ cmp r0, #0
+ movne r1, #0
+_0222CA94:
+ mov r0, r1
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_0222CA9C
+MOD13_0222CA9C: ; 0x0222CA9C
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r4, r0
+ mov r6, r1
+ bl MOD13_02234164
+ cmp r4, #8
+ addls pc, pc, r4, lsl #2
+ b _0222CBD0
+_0222CAB8: ; jump table
+ b _0222CADC ; case 0
+ b _0222CADC ; case 1
+ b _0222CAF8 ; case 2
+ b _0222CB44 ; case 3
+ b _0222CB44 ; case 4
+ b _0222CB44 ; case 5
+ b _0222CB5C ; case 6
+ b _0222CBB8 ; case 7
+ b _0222CBB8 ; case 8
+_0222CADC:
+ mov r5, #0
+ mov r0, r5
+ mov r4, r5
+ bl MOD13_0222CA08
+ cmp r0, #0
+ moveq r4, #2
+ b _0222CBD8
+_0222CAF8:
+ ldr r2, _0222CBEC ; =0x022430F4
+ ldrb r0, [r0, #0xf5]
+ ldr r3, [r2]
+ mov r1, #0
+ ldrb r2, [r3, #4]
+ cmp r0, #0
+ movne r5, #1
+ movne r0, #4
+ moveq r5, #2
+ moveq r0, #3
+ cmp r2, #0
+ mov r4, r1
+ ldrb r2, [r3, #5]
+ movne r4, #1
+ cmp r2, #0
+ movne r1, #1
+ mov r2, r6
+ bl MOD13_0222C8E4
+ b _0222CBD8
+_0222CB44:
+ ldrb r0, [r0, #0xf5]
+ mov r5, #0
+ cmp r0, #0
+ movne r4, #2
+ moveq r4, r5
+ b _0222CBD8
+_0222CB5C:
+ ldrb r2, [r0, #0xf6]
+ mov r1, #0
+ mov r4, r1
+ cmp r2, #0
+ movne r5, #1
+ movne r0, #4
+ bne _0222CB8C
+ ldrb r0, [r0, #0xf5]
+ mov r5, #2
+ cmp r0, #0
+ moveq r4, #2
+ mov r0, #3
+_0222CB8C:
+ ldr r2, _0222CBEC ; =0x022430F4
+ ldr r3, [r2]
+ ldrb r2, [r3, #6]
+ cmp r2, #0
+ ldrb r2, [r3, #7]
+ movne r4, #1
+ cmp r2, #0
+ movne r1, #1
+ mov r2, r6
+ bl MOD13_0222C8E4
+ b _0222CBD8
+_0222CBB8:
+ ldrb r0, [r0, #0xf6]
+ mov r5, #0
+ cmp r0, #0
+ movne r4, #2
+ moveq r4, r5
+ b _0222CBD8
+_0222CBD0:
+ mov r5, #0
+ mov r4, #2
+_0222CBD8:
+ mov r0, r5
+ mov r1, r4
+ mov r2, r6
+ bl MOD13_0222C8E4
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0222CBEC: .word 0x022430F4
+
+ arm_func_start MOD13_0222CBF0
+MOD13_0222CBF0: ; 0x0222CBF0
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #0x28
+ mov r6, r0
+ mov r5, r1
+ bl MOD13_02234164
+ cmp r6, #8
+ addls pc, pc, r6, lsl #2
+ b _0222CD84
+_0222CC10: ; jump table
+ b _0222CC34 ; case 0
+ b _0222CC48 ; case 1
+ b _0222CD84 ; case 2
+ b _0222CCD8 ; case 3
+ b _0222CCFC ; case 4
+ b _0222CD20 ; case 5
+ b _0222CD84 ; case 6
+ b _0222CD44 ; case 7
+ b _0222CD68 ; case 8
+_0222CC34:
+ mov r1, r5
+ add r0, r0, #0x40
+ bl MOD13_0222C788
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+_0222CC48:
+ ldrb r1, [r0, #0xe6]
+ mov r1, r1, lsl #0x1e
+ mov r1, r1, lsr #0x1e
+ cmp r1, #3
+ addls pc, pc, r1, lsl #2
+ b _0222CC8C
+_0222CC60: ; jump table
+ b _0222CC70 ; case 0
+ b _0222CC78 ; case 1
+ b _0222CC80 ; case 2
+ b _0222CC88 ; case 3
+_0222CC70:
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+_0222CC78:
+ mov r4, #0xa
+ b _0222CC8C
+_0222CC80:
+ mov r4, #0x1a
+ b _0222CC8C
+_0222CC88:
+ mov r4, #0x20
+_0222CC8C:
+ ldrb r0, [r0, #0xe6]
+ mov r1, #0
+ mov r2, #0x21
+ mov r0, r0, lsl #0x18
+ mov r0, r0, lsr #0x1a
+ cmp r0, #1
+ addeq r0, r4, r4, lsr #31
+ moveq r4, r0, asr #1
+ add r0, sp, #0
+ bl MI_CpuFill8
+ add r0, sp, #0
+ mov r2, r4
+ mov r1, #0x2a
+ bl Call_FillMemWithValue
+ add r0, sp, #0
+ mov r1, r5
+ bl MOD13_0222C788
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+_0222CCD8:
+ ldrb r1, [r0, #0xf5]
+ cmp r1, #0
+ addne sp, sp, #0x28
+ ldmneia sp!, {r4, r5, r6, pc}
+ mov r1, r5
+ add r0, r0, #0xc0
+ bl MOD13_0222C700
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+_0222CCFC:
+ ldrb r1, [r0, #0xf5]
+ cmp r1, #0
+ addne sp, sp, #0x28
+ ldmneia sp!, {r4, r5, r6, pc}
+ mov r1, r5
+ add r0, r0, #0xf0
+ bl MOD13_0222C700
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+_0222CD20:
+ ldrb r1, [r0, #0xf5]
+ cmp r1, #0
+ addne sp, sp, #0x28
+ ldmneia sp!, {r4, r5, r6, pc}
+ mov r1, r5
+ add r0, r0, #0xc4
+ bl MOD13_0222C700
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+_0222CD44:
+ ldrb r1, [r0, #0xf6]
+ cmp r1, #0
+ addne sp, sp, #0x28
+ ldmneia sp!, {r4, r5, r6, pc}
+ mov r1, r5
+ add r0, r0, #0xc8
+ bl MOD13_0222C700
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+_0222CD68:
+ ldrb r1, [r0, #0xf6]
+ cmp r1, #0
+ addne sp, sp, #0x28
+ ldmneia sp!, {r4, r5, r6, pc}
+ mov r1, r5
+ add r0, r0, #0xcc
+ bl MOD13_0222C700
+_0222CD84:
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+
+ arm_func_start MOD13_0222CD8C
+MOD13_0222CD8C: ; 0x0222CD8C
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r0, _0222CE44 ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r0, [r0]
+ bl FX_DivS32
+ ldr r1, _0222CE48 ; =0x022430F4
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, #0
+ ldr r0, [r0, #0x14]
+ bl MOD13_0223A4D8
+ mov r6, r4
+ mov r5, #0
+_0222CDC0:
+ mov r0, r6
+ mov r1, r5
+ bl MOD13_0222CBF0
+ add r5, r5, #1
+ cmp r5, #5
+ add r6, r6, #1
+ blt _0222CDC0
+ ldr r0, _0222CE48 ; =0x022430F4
+ ldr r1, _0222CE4C ; =0x0223F358
+ mov r2, r4, lsl #1
+ ldr r3, [r0]
+ ldrh r0, [r1, r2]
+ ldr r2, [r3, #8]
+ mov r1, #0
+ add r0, r2, r0, lsl #1
+ mov r2, #0x1e
+ mov r3, #0x13
+ bl MOD13_02232878
+ mov r5, #0
+_0222CE0C:
+ mov r0, r4
+ mov r1, r5
+ bl MOD13_0222CA9C
+ add r5, r5, #1
+ cmp r5, #5
+ add r4, r4, #1
+ blt _0222CE0C
+ bl MOD13_022328D0
+ ldr r0, _0222CE48 ; =0x022430F4
+ ldr r0, [r0]
+ ldr r0, [r0, #0x14]
+ bl MOD13_0223A410
+ bl MOD13_0222C4C8
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0222CE44: .word 0x022430F0
+_0222CE48: .word 0x022430F4
+_0222CE4C: .word 0x0223F358
+
+ arm_func_start MOD13_0222CE50
+MOD13_0222CE50: ; 0x0222CE50
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ ldr r1, _0222D130 ; =0x022430F4
+ mov r0, #0
+ ldr r1, [r1]
+ ldr r1, [r1]
+ bl MOD13_0223C104
+ ldr r1, _0222D130 ; =0x022430F4
+ mov r0, #1
+ ldr r1, [r1]
+ ldr r1, [r1, #0x3c]
+ bl MOD13_0223C104
+ mov r5, #0
+ ldr r4, _0222D130 ; =0x022430F4
+_0222CEB0:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x18]
+ bl MOD13_0223B974
+ add r5, r5, #1
+ cmp r5, #7
+ blt _0222CEB0
+ ldr r0, _0222D130 ; =0x022430F4
+ ldr r0, [r0]
+ ldr r0, [r0, #0x34]
+ cmp r0, #0
+ beq _0222CEE4
+ bl MOD13_0223B974
+_0222CEE4:
+ bl MOD13_02232F78
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221F21C
+ ldr r0, _0222D130 ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x40]
+ cmp r0, #0xc
+ beq _0222CF0C
+ bl MOD13_0221EE54
+_0222CF0C:
+ bl MOD13_022328E8
+ ldr r0, _0222D130 ; =0x022430F4
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ bl MOD13_0223939C
+ mov r5, #0
+ ldr r4, _0222D130 ; =0x022430F4
+_0222CF28:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0xc]
+ bl MOD13_0223939C
+ add r5, r5, #1
+ cmp r5, #2
+ blt _0222CF28
+ ldr r0, _0222D134 ; =0x02240298
+ ldr r1, _0222D138 ; =0x020C9480
+ bl MOD13_0221F174
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x1d
+ bl MOD13_0223AE98
+ ldr r2, _0222D13C ; =0x04000010
+ mov r1, #0
+ ldr r0, _0222D140 ; =0x04000018
+ str r1, [r2]
+ str r1, [r0]
+ ldr r3, _0222D144 ; =0x0400000C
+ ldr r0, _0222D130 ; =0x022430F4
+ ldrh r2, [r3]
+ and r2, r2, #0x43
+ orr r2, r2, #0xe10
+ strh r2, [r3]
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x40]
+ cmp r0, #0xd
+ addls pc, pc, r0, lsl #2
+ b _0222D120
+_0222CFA8: ; jump table
+ b _0222CFE0 ; case 0
+ b _0222CFE0 ; case 1
+ b _0222D120 ; case 2
+ b _0222D120 ; case 3
+ b _0222CFFC ; case 4
+ b _0222CFFC ; case 5
+ b _0222CFFC ; case 6
+ b _0222D120 ; case 7
+ b _0222D120 ; case 8
+ b _0222CFFC ; case 9
+ b _0222CFFC ; case 10
+ b _0222D02C ; case 11
+ b _0222D0C4 ; case 12
+ b _0222D0D8 ; case 13
+_0222CFE0:
+ bl MOD13_02222F6C
+ mov r0, #2
+ mov r1, #0
+ bl MOD13_02222FA8
+ ldr r0, _0222D148 ; =MOD13_0222A190
+ bl MOD13_02222FBC
+ b _0222D120
+_0222CFFC:
+ sub r4, r0, #4
+ cmp r0, #9
+ subhs r4, r4, #2
+ mov r0, #2
+ mov r1, #0
+ bl MOD13_02222FA8
+ mov r0, r4
+ mov r1, #0
+ bl MOD13_02222F6C
+ ldr r0, _0222D14C ; =MOD13_0222AF48
+ bl MOD13_02222FBC
+ b _0222D120
+_0222D02C:
+ bl MOD13_02234164
+ mov r4, r0
+ add r0, r4, #0xf0
+ bl FUN_02095BE0
+ strb r0, [r4, #0xd0]
+ ldrb r0, [r4, #0xf5]
+ cmp r0, #0
+ beq _0222D084
+ add r0, r4, #0xc0
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ add r0, r4, #0xc4
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ add r0, r4, #0xf0
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ mov r0, #0
+ strb r0, [r4, #0xd0]
+_0222D084:
+ ldrb r0, [r4, #0xf6]
+ cmp r0, #0
+ beq _0222D0A0
+ add r0, r4, #0xc8
+ mov r1, #0
+ mov r2, #8
+ bl MI_CpuFill8
+_0222D0A0:
+ mov r0, #2
+ mov r1, #0
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222F6C
+ ldr r0, _0222D150 ; =MOD13_022313C8
+ bl MOD13_02222FBC
+ b _0222D120
+_0222D0C4:
+ mov r0, r1
+ bl MOD13_02222FA8
+ ldr r0, _0222D154 ; =MOD13_0222E1B0
+ bl MOD13_02222FBC
+ b _0222D120
+_0222D0D8:
+ ldr r0, _0222D158 ; =0x022430E8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222D100
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222D15C ; =MOD13_02230714
+ bl MOD13_02222FBC
+ b _0222D120
+_0222D100:
+ bl MOD13_02234164
+ ldrb r0, [r0, #0xf4]
+ bl MOD13_02233C24
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222D160 ; =MOD13_02230EC4
+ bl MOD13_02222FBC
+_0222D120:
+ ldr r0, _0222D130 ; =0x022430F4
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0222D130: .word 0x022430F4
+_0222D134: .word 0x02240298
+_0222D138: .word 0x020C9480
+_0222D13C: .word 0x04000010
+_0222D140: .word 0x04000018
+_0222D144: .word 0x0400000C
+_0222D148: .word MOD13_0222A190
+_0222D14C: .word MOD13_0222AF48
+_0222D150: .word MOD13_022313C8
+_0222D154: .word MOD13_0222E1B0
+_0222D158: .word 0x022430E8
+_0222D15C: .word MOD13_02230714
+_0222D160: .word MOD13_02230EC4
+
+ arm_func_start MOD13_0222D164
+MOD13_0222D164: ; 0x0222D164
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x1d
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _0222D1B8 ; =MOD13_0222CE50
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222D1B8: .word MOD13_0222CE50
+
+ arm_func_start MOD13_0222D1BC
+MOD13_0222D1BC: ; 0x0222D1BC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02232F14
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0222D1E0 ; =MOD13_0222D164
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222D1E0: .word MOD13_0222D164
+
+ arm_func_start MOD13_0222D1E4
+MOD13_0222D1E4: ; 0x0222D1E4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222D484 ; =0x022430F4
+ ldr r1, [r0]
+ ldr r0, [r1, #0x38]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldrb r0, [r1, #0x41]
+ cmp r0, #0
+ subne r0, r0, #1
+ strneb r0, [r1, #0x41]
+ bl MOD13_02232F50
+ cmp r0, #7
+ addls pc, pc, r0, lsl #2
+ b _0222D47C
+_0222D224: ; jump table
+ b _0222D47C ; case 0
+ b _0222D244 ; case 1
+ b _0222D25C ; case 2
+ b _0222D2BC ; case 3
+ b _0222D37C ; case 4
+ b _0222D46C ; case 5
+ b _0222D3F4 ; case 6
+ b _0222D46C ; case 7
+_0222D244:
+ ldr r0, _0222D484 ; =0x022430F4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x45]
+ ldmia sp!, {pc}
+_0222D25C:
+ ldr r0, _0222D484 ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x41]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221F21C
+ bl MOD13_02232F64
+ mov r1, #0x91
+ mul r1, r0, r1
+ ldr r2, _0222D488 ; =0x094F2095
+ mov r0, r1, lsr #0x1f
+ smull r1, r3, r2, r1
+ mov r3, r3, asr #1
+ ldr r1, _0222D48C ; =0x022430F0
+ add r3, r0, r3
+ strh r3, [r1]
+ bl MOD13_0222CD8C
+ ldr r0, _0222D484 ; =0x022430F4
+ mov r1, #4
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x41]
+ ldmia sp!, {pc}
+_0222D2BC:
+ ldr r0, _0222D484 ; =0x022430F4
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x45]
+ bl MOD13_02232F64
+ mov r1, #0x91
+ mul r1, r0, r1
+ ldr r2, _0222D488 ; =0x094F2095
+ mov r0, r1, lsr #0x1f
+ smull r1, r3, r2, r1
+ mov r3, r3, asr #1
+ ldr r1, _0222D48C ; =0x022430F0
+ add r3, r0, r3
+ mov r0, #0x13
+ strh r3, [r1]
+ bl MOD13_0223424C
+ bl MOD13_0222CD8C
+ ldr r0, _0222D48C ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r0, [r0]
+ bl FX_ModS32
+ cmp r0, #0
+ bne _0222D324
+ bl MOD13_0222BDF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222D324:
+ cmp r0, #0x10
+ bge _0222D354
+ mov r0, #0
+ ldr r1, _0222D490 ; =MOD13_0222C0E8
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222D484 ; =0x022430F4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_0222D354:
+ mov r0, #0
+ ldr r1, _0222D494 ; =MOD13_0222C03C
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222D484 ; =0x022430F4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_0222D37C:
+ ldr r0, _0222D48C ; =0x022430F0
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _0222D3C4
+ ldr r0, _0222D484 ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x46]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _0222D484 ; =0x022430F4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x46]
+ ldmia sp!, {pc}
+_0222D3C4:
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _0222D490 ; =MOD13_0222C0E8
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222D484 ; =0x022430F4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_0222D3F4:
+ ldr r0, _0222D48C ; =0x022430F0
+ ldrh r0, [r0]
+ cmp r0, #0x91
+ bne _0222D43C
+ ldr r0, _0222D484 ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x46]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _0222D484 ; =0x022430F4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x46]
+ ldmia sp!, {pc}
+_0222D43C:
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _0222D494 ; =MOD13_0222C03C
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222D484 ; =0x022430F4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_0222D46C:
+ ldr r0, _0222D484 ; =0x022430F4
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x46]
+_0222D47C:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222D484: .word 0x022430F4
+_0222D488: .word 0x094F2095
+_0222D48C: .word 0x022430F0
+_0222D490: .word MOD13_0222C0E8
+_0222D494: .word MOD13_0222C03C
+
+ arm_func_start MOD13_0222D498
+MOD13_0222D498: ; 0x0222D498
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl MOD13_02234164
+ ldrb r0, [r0, #0xf6]
+ cmp r0, r4
+ ldmeqia sp!, {r4, pc}
+ ldr r1, _0222D4CC ; =0x022430F4
+ mov r0, r4
+ ldr r1, [r1]
+ strb r4, [r1, #0x43]
+ bl MOD13_0223413C
+ bl MOD13_0222CD8C
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222D4CC: .word 0x022430F4
+
+ arm_func_start MOD13_0222D4D0
+MOD13_0222D4D0: ; 0x0222D4D0
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r4, r0
+ bl MOD13_02234164
+ ldrb r1, [r0, #0xf5]
+ cmp r1, r4
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ cmp r4, #0
+ beq _0222D514
+ ldr r0, _0222D544 ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x43]
+ cmp r0, #0
+ movne r5, #1
+ moveq r5, #0
+ b _0222D528
+_0222D514:
+ ldr r1, _0222D544 ; =0x022430F4
+ ldrb r2, [r0, #0xf6]
+ ldr r0, [r1]
+ mov r5, #0
+ strb r2, [r0, #0x43]
+_0222D528:
+ mov r0, r4
+ bl MOD13_02234150
+ mov r0, r5
+ bl MOD13_0223413C
+ bl MOD13_0222CD8C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0222D544: .word 0x022430F4
+
+ arm_func_start MOD13_0222D548
+MOD13_0222D548: ; 0x0222D548
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ mov r4, r0
+ bl MOD13_0222CA08
+ cmp r0, #0
+ bne _0222D570
+ mov r0, #9
+ bl MOD13_0223424C
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222D570:
+ cmp r4, #8
+ addls pc, pc, r4, lsl #2
+ b _0222D5E8
+_0222D57C: ; jump table
+ b _0222D5E8 ; case 0
+ b _0222D5E8 ; case 1
+ b _0222D5A0 ; case 2
+ b _0222D5A0 ; case 3
+ b _0222D5E8 ; case 4
+ b _0222D5E8 ; case 5
+ b _0222D5E8 ; case 6
+ b _0222D5C4 ; case 7
+ b _0222D5C4 ; case 8
+_0222D5A0:
+ mov r0, #6
+ bl MOD13_0223424C
+ sub r0, r4, #2
+ eors r0, r0, #1
+ movne r0, #1
+ moveq r0, #0
+ bl MOD13_0222D4D0
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222D5C4:
+ mov r0, #6
+ bl MOD13_0223424C
+ sub r0, r4, #7
+ eors r0, r0, #1
+ movne r0, #1
+ moveq r0, #0
+ bl MOD13_0222D498
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222D5E8:
+ ldr r0, _0222D6B8 ; =0x022430F4
+ sub r1, r4, #0xb
+ ldr r0, [r0]
+ cmp r1, #1
+ strb r4, [r0, #0x40]
+ bhi _0222D664
+ bl MOD13_0222BA38
+ bl MOD13_0222B87C
+ cmp r0, #0
+ bne _0222D644
+ mov r0, #9
+ bl MOD13_0223424C
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #6
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ ldr r0, _0222D6BC ; =MOD13_0222B830
+ bl MOD13_02222FBC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222D644:
+ cmp r4, #0xb
+ bne _0222D658
+ mov r0, #6
+ bl MOD13_0223424C
+ b _0222D6A4
+_0222D658:
+ mov r0, #0xe
+ bl MOD13_0223424C
+ b _0222D6A4
+_0222D664:
+ cmp r4, #0xd
+ bne _0222D67C
+ bl MOD13_0222BA38
+ mov r0, #7
+ bl MOD13_0223424C
+ b _0222D6A4
+_0222D67C:
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _0222D6C0 ; =0x0223F32C
+ ldrb r0, [r0, r4]
+ bl MOD13_0222C1F4
+ mov r2, r0
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_0222C8E4
+ bl MOD13_0222C4C8
+_0222D6A4:
+ bl MOD13_02232F14
+ ldr r0, _0222D6C4 ; =MOD13_0222D1BC
+ bl MOD13_02222FBC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222D6B8: .word 0x022430F4
+_0222D6BC: .word MOD13_0222B830
+_0222D6C0: .word 0x0223F32C
+_0222D6C4: .word MOD13_0222D1BC
+
+ arm_func_start MOD13_0222D6C8
+MOD13_0222D6C8: ; 0x0222D6C8
+ stmdb sp!, {r4, lr}
+ bl MOD13_02234164
+ bl MOD13_0222C238
+ mov r4, r0
+ cmp r4, #0xe
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+ bl MOD13_0222CA08
+ cmp r0, #0
+ bne _0222D700
+ mov r0, #9
+ bl MOD13_0223424C
+ mov r0, #1
+ ldmia sp!, {r4, pc}
+_0222D700:
+ mov r0, r4
+ bl MOD13_0222BDB8
+ cmp r4, #8
+ addls pc, pc, r4, lsl #2
+ b _0222D73C
+_0222D714: ; jump table
+ b _0222D73C ; case 0
+ b _0222D73C ; case 1
+ b _0222D738 ; case 2
+ b _0222D738 ; case 3
+ b _0222D73C ; case 4
+ b _0222D73C ; case 5
+ b _0222D73C ; case 6
+ b _0222D738 ; case 7
+ b _0222D738 ; case 8
+_0222D738:
+ bl MOD13_0222B91C
+_0222D73C:
+ mov r0, r4
+ bl MOD13_0222D548
+ mov r0, #1
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_0222D74C
+MOD13_0222D74C: ; 0x0222D74C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222DA0C ; =0x022430F4
+ ldr r1, [r0]
+ ldr r0, [r1, #0x38]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldrb r0, [r1, #0x45]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0222D6C8
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0222D7B0
+ ldr r0, _0222DA10 ; =0x022430E4
+ ldrb r0, [r0]
+ bl MOD13_0222D548
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222D7B0:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0222D7E8
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r1, _0222DA0C ; =0x022430F4
+ ldr r0, _0222DA14 ; =MOD13_0222D1BC
+ ldr r1, [r1]
+ mov r2, #0xd
+ strb r2, [r1, #0x40]
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222D7E8:
+ mov r0, #0x200
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222D870
+ ldr r0, _0222DA18 ; =0x022430F0
+ ldrh r0, [r0]
+ cmp r0, #0x91
+ bne _0222D840
+ ldr r0, _0222DA0C ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x47]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _0222DA0C ; =0x022430F4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x47]
+ ldmia sp!, {pc}
+_0222D840:
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _0222DA1C ; =MOD13_0222C03C
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222DA0C ; =0x022430F4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_0222D870:
+ mov r0, #0x200
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _0222DA0C ; =0x022430F4
+ movne r1, #0
+ ldrne r0, [r0]
+ addne sp, sp, #4
+ strneb r1, [r0, #0x47]
+ ldmneia sp!, {pc}
+ mov r0, #0x100
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222D91C
+ ldr r0, _0222DA18 ; =0x022430F0
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _0222D8EC
+ ldr r0, _0222DA0C ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x47]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _0222DA0C ; =0x022430F4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x47]
+ ldmia sp!, {pc}
+_0222D8EC:
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _0222DA20 ; =MOD13_0222C0E8
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222DA0C ; =0x022430F4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_0222D91C:
+ mov r0, #0x100
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _0222DA0C ; =0x022430F4
+ movne r1, #0
+ ldrne r0, [r0]
+ addne sp, sp, #4
+ strneb r1, [r0, #0x47]
+ ldmneia sp!, {pc}
+ mov r0, #0x40
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222D960
+ mov r0, #1
+ bl MOD13_0222BA74
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222D960:
+ mov r0, #0x40
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _0222DA0C ; =0x022430F4
+ movne r1, #0
+ ldrne r0, [r0]
+ addne sp, sp, #4
+ strneb r1, [r0, #0x47]
+ ldmneia sp!, {pc}
+ mov r0, #0x80
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222D9A4
+ mov r0, #3
+ bl MOD13_0222BA74
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222D9A4:
+ mov r0, #0x80
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _0222DA0C ; =0x022430F4
+ movne r1, #0
+ ldrne r0, [r0]
+ addne sp, sp, #4
+ strneb r1, [r0, #0x47]
+ ldmneia sp!, {pc}
+ mov r0, #0x20
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222D9E8
+ mov r0, #0
+ bl MOD13_0222BA74
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222D9E8:
+ mov r0, #0x10
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #2
+ bl MOD13_0222BA74
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222DA0C: .word 0x022430F4
+_0222DA10: .word 0x022430E4
+_0222DA14: .word MOD13_0222D1BC
+_0222DA18: .word 0x022430F0
+_0222DA1C: .word MOD13_0222C03C
+_0222DA20: .word MOD13_0222C0E8
+
+ arm_func_start MOD13_0222DA24
+MOD13_0222DA24: ; 0x0222DA24
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222D74C
+ bl MOD13_0222D1E4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222DA7C ; =MOD13_0222DA24
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222DA7C: .word MOD13_0222DA24
+
+ arm_func_start MOD13_0222DA80
+MOD13_0222DA80: ; 0x0222DA80
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x1d
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x1d
+ bl MOD13_0223AEF4
+ ldr r0, _0222DAD8 ; =0x0222DA3C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222DAD8: .word 0x0222DA3C
+
+ arm_func_start MOD13_0222DADC
+MOD13_0222DADC: ; 0x0222DADC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02234164
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r2, _0222DB28 ; =0x022430F0
+ mov r3, #0
+ ldr r1, _0222DB2C ; =0x022430E4
+ ldr r0, _0222DB30 ; =0x022430EC
+ strh r3, [r2]
+ strb r3, [r1]
+ strb r3, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222DB28: .word 0x022430F0
+_0222DB2C: .word 0x022430E4
+_0222DB30: .word 0x022430EC
+
+ arm_func_start MOD13_0222DB34
+MOD13_0222DB34: ; 0x0222DB34
+ stmdb sp!, {lr}
+ sub sp, sp, #0x44
+ ldr r3, _0222DCFC ; =0x0223F39C
+ add ip, sp, #0
+ mov r2, #0xb
+_0222DB48:
+ ldrb r1, [r3], #1
+ ldrb r0, [r3], #1
+ subs r2, r2, #1
+ strb r1, [ip], #1
+ strb r0, [ip], #1
+ bne _0222DB48
+ ldrb r0, [r3]
+ ldr r3, _0222DD00 ; =0x0223F36C
+ add lr, sp, #0x17
+ strb r0, [ip]
+ mov r2, #0xa
+_0222DB74:
+ ldrb r1, [r3], #1
+ ldrb r0, [r3], #1
+ subs r2, r2, #1
+ strb r1, [lr], #1
+ strb r0, [lr], #1
+ bne _0222DB74
+ ldrb r0, [r3]
+ ldr ip, _0222DD04 ; =0x0223F384
+ add r3, sp, #0x2c
+ strb r0, [lr]
+ mov r2, #0xb
+_0222DBA0:
+ ldrb r1, [ip], #1
+ ldrb r0, [ip], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _0222DBA0
+ ldr ip, _0222DD08 ; =0x0400000C
+ ldr r2, _0222DD0C ; =0x00000E18
+ ldrh r3, [ip]
+ ldr r0, _0222DD10 ; =0x022402B0
+ ldr r1, _0222DD14 ; =0x020C9480
+ and r3, r3, #0x43
+ orr r2, r3, r2
+ strh r2, [ip]
+ bl MOD13_0221F174
+ ldr r0, _0222DD18 ; =0x022402C4
+ ldr r1, _0222DD1C ; =0x020C8C7C
+ bl MOD13_0221F174
+ ldr r0, _0222DD20 ; =0x022402DC
+ ldr r1, _0222DD24 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r1, _0222DD28 ; =0x020C9550
+ add r0, sp, #0x17
+ bl MOD13_0221F174
+ ldr r0, _0222DD2C ; =0x022402F4
+ ldr r1, _0222DD30 ; =0x020C8FBC
+ bl MOD13_0221F174
+ add r0, sp, #0
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _0222DD34 ; =0x022430F4
+ ldr r2, [r1]
+ str r0, [r2, #8]
+ ldr r0, [r1]
+ ldr r0, [r0, #8]
+ bl MOD13_02232918
+ bl MOD13_022328D0
+ add r0, sp, #0x17
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _0222DD34 ; =0x022430F4
+ ldr r1, [r1]
+ str r0, [r1, #0xc]
+ add r0, sp, #0x2c
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _0222DD34 ; =0x022430F4
+ ldr r2, _0222DD38 ; =0x04001008
+ ldr r3, [r1]
+ ldr r1, _0222DD3C ; =0x0400100A
+ str r0, [r3, #0x10]
+ ldrh r0, [r2]
+ ldr ip, _0222DD40 ; =0x04000008
+ ldr r3, _0222DD44 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ ldr r2, _0222DD08 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222DD48 ; =0x0400000E
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #2
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #2
+ strh r0, [r1]
+ add sp, sp, #0x44
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222DCFC: .word 0x0223F39C
+_0222DD00: .word 0x0223F36C
+_0222DD04: .word 0x0223F384
+_0222DD08: .word 0x0400000C
+_0222DD0C: .word 0x00000E18
+_0222DD10: .word 0x022402B0
+_0222DD14: .word 0x020C9480
+_0222DD18: .word 0x022402C4
+_0222DD1C: .word 0x020C8C7C
+_0222DD20: .word 0x022402DC
+_0222DD24: .word 0x020C8D4C
+_0222DD28: .word 0x020C9550
+_0222DD2C: .word 0x022402F4
+_0222DD30: .word 0x020C8FBC
+_0222DD34: .word 0x022430F4
+_0222DD38: .word 0x04001008
+_0222DD3C: .word 0x0400100A
+_0222DD40: .word 0x04000008
+_0222DD44: .word 0x0400000A
+_0222DD48: .word 0x0400000E
+
+ arm_func_start MOD13_0222DD4C
+MOD13_0222DD4C: ; 0x0222DD4C
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ bl MOD13_02234164
+ mov r5, r0
+ mov r0, #0x48
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r1, _0222DF38 ; =0x022430F4
+ mov r2, #0xc
+ str r0, [r1]
+ ldrb r3, [r5, #0xf6]
+ strb r3, [r0, #0x43]
+ ldr r0, [r1]
+ strb r2, [r0, #0x42]
+ bl MOD13_0222DADC
+ bl MOD13_0222DB34
+ ldr r0, _0222DF3C ; =0x022430E8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222DDBC
+ bl MOD13_02222F34
+ ldr r1, _0222DF40 ; =0x0223F2F4
+ ldrb r2, [r5, #0xf4]
+ ldrsb r1, [r1, r0]
+ mov r0, #0x30
+ add r2, r2, #1
+ bl MOD13_0221EE98
+ b _0222DDCC
+_0222DDBC:
+ mov r0, #0x45
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+_0222DDCC:
+ mov r0, #1
+ bl MOD13_0221F124
+ bl MOD13_0221F48C
+ ldr r0, _0222DF44 ; =0x022430F0
+ mov r1, #0x37
+ ldrh r3, [r0]
+ ldr r2, _0222DF48 ; =0xE1FC780F
+ mov r0, #2
+ mul r4, r3, r1
+ smull r1, r3, r2, r4
+ add r3, r4, r3
+ mov r3, r3, asr #7
+ mov r1, r4, lsr #0x1f
+ add r3, r1, r3
+ str r3, [sp]
+ mov r1, #0x55
+ mov r2, #0xf1
+ mov r3, #0x41
+ bl MOD13_02232FB8
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_0223A7F0
+ ldr r6, _0222DF38 ; =0x022430F4
+ mov r4, #0
+ ldr r2, [r6]
+ ldr r1, _0222DF4C ; =0x0223F348
+ str r0, [r2, #0x14]
+ ldrb r8, [r1, #1]
+ mov r7, r4
+_0222DE40:
+ mov r0, r7
+ mov r1, r8
+ bl MOD13_02239E54
+ ldr r1, [r6]
+ add r1, r1, r4, lsl #2
+ add r4, r4, #1
+ str r0, [r1, #0x18]
+ cmp r4, #7
+ blt _0222DE40
+ ldrb r0, [r5, #0xe7]
+ cmp r0, #1
+ beq _0222DE7C
+ cmp r0, #2
+ beq _0222DEB0
+ b _0222DEE0
+_0222DE7C:
+ mov r0, #0
+ mov r1, #0x50
+ bl MOD13_02239E54
+ ldr r1, _0222DF38 ; =0x022430F4
+ ldr r2, [r1]
+ str r0, [r2, #0x34]
+ ldr r0, [r1]
+ ldr r1, [r0, #0x34]
+ ldrh r0, [r1, #4]
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+ b _0222DEE0
+_0222DEB0:
+ mov r0, #0
+ mov r1, #0x51
+ bl MOD13_02239E54
+ ldr r1, _0222DF38 ; =0x022430F4
+ ldr r2, [r1]
+ str r0, [r2, #0x34]
+ ldr r0, [r1]
+ ldr r1, [r0, #0x34]
+ ldrh r0, [r1, #4]
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+_0222DEE0:
+ ldr r1, _0222DF50 ; =MOD13_0222BFA8
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x6e
+ bl MOD13_0223C1C4
+ ldr r2, _0222DF38 ; =0x022430F4
+ ldr r1, _0222DF54 ; =MOD13_0222B9DC
+ ldr r2, [r2]
+ mov r3, #0x78
+ str r0, [r2, #0x3c]
+ mov r0, #0
+ mov r2, r0
+ bl MOD13_0223C1C4
+ ldr r1, _0222DF38 ; =0x022430F4
+ ldr r1, [r1]
+ str r0, [r1]
+ bl MOD13_0222CD8C
+ bl MOD13_0222BEC0
+ ldr r0, _0222DF58 ; =MOD13_0222DA80
+ bl MOD13_02222FBC
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0222DF38: .word 0x022430F4
+_0222DF3C: .word 0x022430E8
+_0222DF40: .word 0x0223F2F4
+_0222DF44: .word 0x022430F0
+_0222DF48: .word 0xE1FC780F
+_0222DF4C: .word 0x0223F348
+_0222DF50: .word MOD13_0222BFA8
+_0222DF54: .word MOD13_0222B9DC
+_0222DF58: .word MOD13_0222DA80
+
+ arm_func_start MOD13_0222DF5C
+MOD13_0222DF5C: ; 0x0222DF5C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AE98
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222DFC4 ; =MOD13_02230714
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222DFC4: .word MOD13_02230714
+
+ arm_func_start MOD13_0222DFC8
+MOD13_0222DFC8: ; 0x0222DFC8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _0222E008 ; =MOD13_0222DF5C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E008: .word MOD13_0222DF5C
+
+ arm_func_start MOD13_0222E00C
+MOD13_0222E00C: ; 0x0222E00C
+ bx lr
+
+ arm_func_start MOD13_0222E010
+MOD13_0222E010: ; 0x0222E010
+ bx lr
+
+ arm_func_start MOD13_0222E014
+MOD13_0222E014: ; 0x0222E014
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222E010
+ bl MOD13_0222E00C
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222E044 ; =MOD13_0222DFC8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E044: .word MOD13_0222DFC8
+
+ arm_func_start MOD13_0222E048
+MOD13_0222E048: ; 0x0222E048
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov ip, #0
+ mov r0, #0x44
+ mov r1, #5
+ mov r2, #1
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ ldr r0, _0222E0A4 ; =MOD13_0222E014
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E0A4: .word MOD13_0222E014
+
+ arm_func_start MOD13_0222E0A8
+MOD13_0222E0A8: ; 0x0222E0A8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AEF4
+ ldr r0, _0222E100 ; =MOD13_0222E048
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E100: .word MOD13_0222E048
+
+ arm_func_start MOD13_0222E104
+MOD13_0222E104: ; 0x0222E104
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222E188 ; =0x02240308
+ ldr r1, _0222E18C ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _0222E190 ; =0x02240320
+ ldr r1, _0222E194 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _0222E198 ; =0x02240338
+ ldr r1, _0222E19C ; =0x020C908C
+ bl MOD13_0221F174
+ ldr ip, _0222E1A0 ; =0x04001008
+ ldr r3, _0222E1A4 ; =0x0400100A
+ ldrh r0, [ip]
+ ldr r2, _0222E1A8 ; =0x0400000A
+ ldr r1, _0222E1AC ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E188: .word 0x02240308
+_0222E18C: .word 0x020C8D4C
+_0222E190: .word 0x02240320
+_0222E194: .word 0x020C9550
+_0222E198: .word 0x02240338
+_0222E19C: .word 0x020C908C
+_0222E1A0: .word 0x04001008
+_0222E1A4: .word 0x0400100A
+_0222E1A8: .word 0x0400000A
+_0222E1AC: .word 0x0400000C
+
+ arm_func_start MOD13_0222E1B0
+MOD13_0222E1B0: ; 0x0222E1B0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222E104
+ bl MOD13_0221F4AC
+ bl MOD13_02233B3C
+ ldr r0, _0222E1D4 ; =MOD13_0222E0A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E1D4: .word MOD13_0222E0A8
+
+ arm_func_start MOD13_0222E1D8
+MOD13_0222E1D8: ; 0x0222E1D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222E200 ; =MOD13_0222E430
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E200: .word MOD13_0222E430
+
+ arm_func_start MOD13_0222E204
+MOD13_0222E204: ; 0x0222E204
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _0222E238 ; =MOD13_0222E1D8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E238: .word MOD13_0222E1D8
+
+ arm_func_start MOD13_0222E23C
+MOD13_0222E23C: ; 0x0222E23C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02223B24
+ cmp r0, #2
+ beq _0222E260
+ cmp r0, #4
+ beq _0222E27C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E260:
+ ldr r1, _0222E2C4 ; =0x022430F8
+ mov r2, #1
+ ldr r0, _0222E2C8 ; =MOD13_0222E430
+ strb r2, [r1]
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E27C:
+ ldr r0, _0222E2C4 ; =0x022430F8
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_022341E8
+ mov r0, #9
+ bl MOD13_0223424C
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #0xd
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ bl MOD13_0221EC84
+ ldr r0, _0222E2CC ; =MOD13_0222E204
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E2C4: .word 0x022430F8
+_0222E2C8: .word MOD13_0222E430
+_0222E2CC: .word MOD13_0222E204
+
+ arm_func_start MOD13_0222E2D0
+MOD13_0222E2D0: ; 0x0222E2D0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222E3A4 ; =0x022430F8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E310
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_0222E310:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _0222E3A4 ; =0x022430F8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E34C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_0222E34C:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _0222E3A4 ; =0x022430F8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E388
+ bl MOD13_02223BE0
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222E3A8 ; =MOD13_02230EC4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E388:
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _0222E3AC ; =MOD13_0222EB58
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E3A4: .word 0x022430F8
+_0222E3A8: .word MOD13_02230EC4
+_0222E3AC: .word MOD13_0222EB58
+
+ arm_func_start MOD13_0222E3B0
+MOD13_0222E3B0: ; 0x0222E3B0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222E428 ; =0x022430F8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E3E0
+ bl MOD13_0221ED28
+_0222E3E0:
+ ldr r0, _0222E428 ; =0x022430F8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E404
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_0222E404:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _0222E42C ; =MOD13_0222E2D0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E428: .word 0x022430F8
+_0222E42C: .word MOD13_0222E2D0
+
+ arm_func_start MOD13_0222E430
+MOD13_0222E430: ; 0x0222E430
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0222E454 ; =MOD13_0222E3B0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E454: .word MOD13_0222E3B0
+
+ arm_func_start MOD13_0222E458
+MOD13_0222E458: ; 0x0222E458
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_022341E8
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _0222E48C ; =MOD13_0222E430
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E48C: .word MOD13_0222E430
+
+ arm_func_start MOD13_0222E490
+MOD13_0222E490: ; 0x0222E490
+ bx lr
+
+ arm_func_start MOD13_0222E494
+MOD13_0222E494: ; 0x0222E494
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0222E4BC
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E4BC:
+ bl MOD13_0222E68C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0xa
+ bl OS_Sleep
+ bl MOD13_0222E23C
+ bl MOD13_0222E494
+ bl MOD13_0222E490
+ bl MOD13_0222E458
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222E534 ; =0x0222E4DC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E534: .word 0x0222E4DC
+
+ arm_func_start MOD13_0222E538
+MOD13_0222E538: ; 0x0222E538
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #1
+ bl MOD13_0221F0EC
+ ldr r0, _0222E56C ; =0x0222E504
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E56C: .word 0x0222E504
+
+ arm_func_start MOD13_0222E570
+MOD13_0222E570: ; 0x0222E570
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222E5A8 ; =MOD13_0222E538
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E5A8: .word MOD13_0222E538
+
+ arm_func_start MOD13_0222E5AC
+MOD13_0222E5AC: ; 0x0222E5AC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222E62C ; =0x0224034C
+ ldr r1, _0222E630 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222E634 ; =0x04001008
+ ldr ip, _0222E638 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _0222E63C ; =0x04000008
+ ldr r2, _0222E640 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222E644 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E62C: .word 0x0224034C
+_0222E630: .word 0x020C908C
+_0222E634: .word 0x04001008
+_0222E638: .word 0x0400100A
+_0222E63C: .word 0x04000008
+_0222E640: .word 0x0400000A
+_0222E644: .word 0x0400000C
+
+ arm_func_start MOD13_0222E648
+MOD13_0222E648: ; 0x0222E648
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222E684 ; =0x022430F8
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_0222E5AC
+ bl MOD13_0221F4AC
+ mov r0, #0x25
+ bl MOD13_0221F070
+ mov r0, #1
+ bl MOD13_0221E694
+ ldr r0, _0222E688 ; =MOD13_0222E570
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E684: .word 0x022430F8
+_0222E688: .word MOD13_0222E570
+
+ arm_func_start MOD13_0222E68C
+MOD13_0222E68C: ; 0x0222E68C
+ ldr r0, _0222E6A8 ; =0x027FFFA8
+ ldrh r0, [r0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_0222E6A8: .word 0x027FFFA8
+
+ arm_func_start MOD13_0222E6AC
+MOD13_0222E6AC: ; 0x0222E6AC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222E6D4 ; =MOD13_0222E940
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E6D4: .word MOD13_0222E940
+
+ arm_func_start MOD13_0222E6D8
+MOD13_0222E6D8: ; 0x0222E6D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _0222E70C ; =MOD13_0222E6AC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E70C: .word MOD13_0222E6AC
+
+ arm_func_start MOD13_0222E710
+MOD13_0222E710: ; 0x0222E710
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02223B24
+ cmp r0, #3
+ beq _0222E73C
+ cmp r0, #4
+ beq _0222E760
+ cmp r0, #5
+ beq _0222E7A8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E73C:
+ ldr r0, _0222E7F0 ; =0x022430FC
+ mov r1, #1
+ strb r1, [r0]
+ bl MOD13_022341E8
+ bl MOD13_02223AF8
+ ldr r0, _0222E7F4 ; =MOD13_0222E940
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E760:
+ ldr r0, _0222E7F0 ; =0x022430FC
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_022341E8
+ mov r0, #9
+ bl MOD13_0223424C
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #0xd
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ bl MOD13_0221EC84
+ ldr r0, _0222E7F8 ; =MOD13_0222E6D8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E7A8:
+ ldr r0, _0222E7F0 ; =0x022430FC
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_022341E8
+ mov r0, #0x12
+ bl MOD13_0223424C
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #0xe
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ bl MOD13_0221EC84
+ ldr r0, _0222E7F8 ; =MOD13_0222E6D8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E7F0: .word 0x022430FC
+_0222E7F4: .word MOD13_0222E940
+_0222E7F8: .word MOD13_0222E6D8
+
+ arm_func_start MOD13_0222E7FC
+MOD13_0222E7FC: ; 0x0222E7FC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222E8C4 ; =0x022430FC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E83C
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_0222E83C:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _0222E8C4 ; =0x022430FC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E878
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_0222E878:
+ bl MOD13_02223BE0
+ ldr r0, _0222E8C4 ; =0x022430FC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E8A8
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222E8C8 ; =MOD13_02230EC4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E8A8:
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _0222E8CC ; =MOD13_0222EDE4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E8C4: .word 0x022430FC
+_0222E8C8: .word MOD13_02230EC4
+_0222E8CC: .word MOD13_0222EDE4
+
+ arm_func_start MOD13_0222E8D0
+MOD13_0222E8D0: ; 0x0222E8D0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ ldr r0, _0222E938 ; =0x022430FC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E914
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_0222E914:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _0222E93C ; =MOD13_0222E7FC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E938: .word 0x022430FC
+_0222E93C: .word MOD13_0222E7FC
+
+ arm_func_start MOD13_0222E940
+MOD13_0222E940: ; 0x0222E940
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0222E964 ; =MOD13_0222E8D0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E964: .word MOD13_0222E8D0
+
+ arm_func_start MOD13_0222E968
+MOD13_0222E968: ; 0x0222E968
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_022341E8
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _0222E99C ; =MOD13_0222E940
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E99C: .word MOD13_0222E940
+
+ arm_func_start MOD13_0222E9A0
+MOD13_0222E9A0: ; 0x0222E9A0
+ bx lr
+
+ arm_func_start MOD13_0222E9A4
+MOD13_0222E9A4: ; 0x0222E9A4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0222E9CC
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E9CC:
+ bl MOD13_0222EB9C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0xa
+ bl OS_Sleep
+ bl MOD13_0222E710
+ bl MOD13_0222E9A4
+ bl MOD13_0222E9A0
+ bl MOD13_0222E968
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222EA44 ; =0x0222E9EC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EA44: .word 0x0222E9EC
+
+ arm_func_start MOD13_0222EA48
+MOD13_0222EA48: ; 0x0222EA48
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #1
+ bl MOD13_0221F0EC
+ ldr r0, _0222EA7C ; =0x0222EA14
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EA7C: .word 0x0222EA14
+
+ arm_func_start MOD13_0222EA80
+MOD13_0222EA80: ; 0x0222EA80
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222EAB8 ; =MOD13_0222EA48
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EAB8: .word MOD13_0222EA48
+
+ arm_func_start MOD13_0222EABC
+MOD13_0222EABC: ; 0x0222EABC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222EB3C ; =0x02240360
+ ldr r1, _0222EB40 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222EB44 ; =0x04001008
+ ldr ip, _0222EB48 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _0222EB4C ; =0x04000008
+ ldr r2, _0222EB50 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222EB54 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EB3C: .word 0x02240360
+_0222EB40: .word 0x020C908C
+_0222EB44: .word 0x04001008
+_0222EB48: .word 0x0400100A
+_0222EB4C: .word 0x04000008
+_0222EB50: .word 0x0400000A
+_0222EB54: .word 0x0400000C
+
+ arm_func_start MOD13_0222EB58
+MOD13_0222EB58: ; 0x0222EB58
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222EB94 ; =0x022430FC
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_0222EABC
+ bl MOD13_0221F4AC
+ mov r0, #0x2a
+ bl MOD13_0221F070
+ mov r0, #2
+ bl MOD13_0221E694
+ ldr r0, _0222EB98 ; =MOD13_0222EA80
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EB94: .word 0x022430FC
+_0222EB98: .word MOD13_0222EA80
+
+ arm_func_start MOD13_0222EB9C
+MOD13_0222EB9C: ; 0x0222EB9C
+ ldr r0, _0222EBB8 ; =0x027FFFA8
+ ldrh r0, [r0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_0222EBB8: .word 0x027FFFA8
+
+ arm_func_start MOD13_0222EBBC
+MOD13_0222EBBC: ; 0x0222EBBC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222EBF4 ; =0x02243100
+ ldrb r1, [r0]
+ add r1, r1, #1
+ strb r1, [r0]
+ ldrb r0, [r0]
+ cmp r0, #0x78
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ ldr r0, _0222EBF8 ; =MOD13_0222EC7C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EBF4: .word 0x02243100
+_0222EBF8: .word MOD13_0222EC7C
+
+ arm_func_start MOD13_0222EBFC
+MOD13_0222EBFC: ; 0x0222EBFC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222F6C
+ ldr r0, _0222EC78 ; =MOD13_0223197C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EC78: .word MOD13_0223197C
+
+ arm_func_start MOD13_0222EC7C
+MOD13_0222EC7C: ; 0x0222EC7C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _0222ECBC ; =MOD13_0222EBFC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222ECBC: .word MOD13_0222EBFC
+
+ arm_func_start MOD13_0222ECC0
+MOD13_0222ECC0: ; 0x0222ECC0
+ bx lr
+
+ arm_func_start MOD13_0222ECC4
+MOD13_0222ECC4: ; 0x0222ECC4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222EBBC
+ bl MOD13_0222ECC0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222ED08 ; =MOD13_0222ECC4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222ED08: .word MOD13_0222ECC4
+
+ arm_func_start MOD13_0222ED0C
+MOD13_0222ED0C: ; 0x0222ED0C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222ED44 ; =0x0222ECDC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222ED44: .word 0x0222ECDC
+
+ arm_func_start MOD13_0222ED48
+MOD13_0222ED48: ; 0x0222ED48
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222EDC8 ; =0x02240374
+ ldr r1, _0222EDCC ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222EDD0 ; =0x04001008
+ ldr ip, _0222EDD4 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _0222EDD8 ; =0x04000008
+ ldr r2, _0222EDDC ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222EDE0 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EDC8: .word 0x02240374
+_0222EDCC: .word 0x020C908C
+_0222EDD0: .word 0x04001008
+_0222EDD4: .word 0x0400100A
+_0222EDD8: .word 0x04000008
+_0222EDDC: .word 0x0400000A
+_0222EDE0: .word 0x0400000C
+
+ arm_func_start MOD13_0222EDE4
+MOD13_0222EDE4: ; 0x0222EDE4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222EE20 ; =0x02243100
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_0222ED48
+ bl MOD13_0221F4AC
+ mov r0, #0x26
+ bl MOD13_0221F070
+ mov r0, #0x10
+ bl MOD13_0223424C
+ ldr r0, _0222EE24 ; =MOD13_0222ED0C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EE20: .word 0x02243100
+_0222EE24: .word MOD13_0222ED0C
+
+ arm_func_start MOD13_0222EE28
+MOD13_0222EE28: ; 0x0222EE28
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222EE50 ; =MOD13_0222F080
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EE50: .word MOD13_0222F080
+
+ arm_func_start MOD13_0222EE54
+MOD13_0222EE54: ; 0x0222EE54
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _0222EE88 ; =MOD13_0222EE28
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EE88: .word MOD13_0222EE28
+
+ arm_func_start MOD13_0222EE8C
+MOD13_0222EE8C: ; 0x0222EE8C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02223B24
+ cmp r0, #1
+ beq _0222EEB0
+ cmp r0, #4
+ beq _0222EECC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222EEB0:
+ ldr r1, _0222EF14 ; =0x02243104
+ mov r2, #1
+ ldr r0, _0222EF18 ; =MOD13_0222F080
+ strb r2, [r1]
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222EECC:
+ ldr r0, _0222EF14 ; =0x02243104
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_022341E8
+ mov r0, #9
+ bl MOD13_0223424C
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #0xd
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ bl MOD13_0221EC84
+ ldr r0, _0222EF1C ; =MOD13_0222EE54
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EF14: .word 0x02243104
+_0222EF18: .word MOD13_0222F080
+_0222EF1C: .word MOD13_0222EE54
+
+ arm_func_start MOD13_0222EF20
+MOD13_0222EF20: ; 0x0222EF20
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222EFF4 ; =0x02243104
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222EF60
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_0222EF60:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _0222EFF4 ; =0x02243104
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222EF9C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_0222EF9C:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _0222EFF4 ; =0x02243104
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222EFD8
+ bl MOD13_02223BE0
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222EFF8 ; =MOD13_02230EC4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222EFD8:
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _0222EFFC ; =MOD13_0222E648
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EFF4: .word 0x02243104
+_0222EFF8: .word MOD13_02230EC4
+_0222EFFC: .word MOD13_0222E648
+
+ arm_func_start MOD13_0222F000
+MOD13_0222F000: ; 0x0222F000
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222F078 ; =0x02243104
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222F030
+ bl MOD13_0221ED28
+_0222F030:
+ ldr r0, _0222F078 ; =0x02243104
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222F054
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_0222F054:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _0222F07C ; =MOD13_0222EF20
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F078: .word 0x02243104
+_0222F07C: .word MOD13_0222EF20
+
+ arm_func_start MOD13_0222F080
+MOD13_0222F080: ; 0x0222F080
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0222F0A4 ; =MOD13_0222F000
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F0A4: .word MOD13_0222F000
+
+ arm_func_start MOD13_0222F0A8
+MOD13_0222F0A8: ; 0x0222F0A8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_022341E8
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _0222F0DC ; =MOD13_0222F080
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F0DC: .word MOD13_0222F080
+
+ arm_func_start MOD13_0222F0E0
+MOD13_0222F0E0: ; 0x0222F0E0
+ bx lr
+
+ arm_func_start MOD13_0222F0E4
+MOD13_0222F0E4: ; 0x0222F0E4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0222F10C
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222F10C:
+ bl MOD13_0222F35C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0xa
+ bl OS_Sleep
+ bl MOD13_0222EE8C
+ bl MOD13_0222F0E4
+ bl MOD13_0222F0E0
+ bl MOD13_0222F0A8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222F184 ; =0x0222F12C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F184: .word 0x0222F12C
+
+ arm_func_start MOD13_0222F188
+MOD13_0222F188: ; 0x0222F188
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02223C0C
+ mov r0, #1
+ bl MOD13_0221F0EC
+ ldr r0, _0222F1D4 ; =0x0222F154
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F1D4: .word 0x0222F154
+
+ arm_func_start MOD13_0222F1D8
+MOD13_0222F1D8: ; 0x0222F1D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222F230 ; =MOD13_0222F188
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F230: .word MOD13_0222F188
+
+ arm_func_start MOD13_0222F234
+MOD13_0222F234: ; 0x0222F234
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222F2CC ; =0x02240388
+ ldr r1, _0222F2D0 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _0222F2D4 ; =0x022403A0
+ ldr r1, _0222F2D8 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _0222F2DC ; =0x022403B8
+ ldr r1, _0222F2E0 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222F2E4 ; =0x04001008
+ ldr ip, _0222F2E8 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _0222F2EC ; =0x04000008
+ ldr r2, _0222F2F0 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222F2F4 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F2CC: .word 0x02240388
+_0222F2D0: .word 0x020C8D4C
+_0222F2D4: .word 0x022403A0
+_0222F2D8: .word 0x020C9550
+_0222F2DC: .word 0x022403B8
+_0222F2E0: .word 0x020C908C
+_0222F2E4: .word 0x04001008
+_0222F2E8: .word 0x0400100A
+_0222F2EC: .word 0x04000008
+_0222F2F0: .word 0x0400000A
+_0222F2F4: .word 0x0400000C
+
+ arm_func_start MOD13_0222F2F8
+MOD13_0222F2F8: ; 0x0222F2F8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222F354 ; =0x02243104
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_0222F234
+ bl MOD13_0221F4AC
+ mov r0, #0x37
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #2
+ bl MOD13_0221F124
+ mov r0, #0x24
+ bl MOD13_0221F070
+ mov r0, #0
+ bl MOD13_0221E694
+ mov r0, #0xb
+ bl MOD13_0223424C
+ ldr r0, _0222F358 ; =MOD13_0222F1D8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F354: .word 0x02243104
+_0222F358: .word MOD13_0222F1D8
+
+ arm_func_start MOD13_0222F35C
+MOD13_0222F35C: ; 0x0222F35C
+ ldr r0, _0222F378 ; =0x027FFFA8
+ ldrh r0, [r0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_0222F378: .word 0x027FFFA8
+
+ arm_func_start MOD13_0222F37C
+MOD13_0222F37C: ; 0x0222F37C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222F3A4 ; =MOD13_0222F520
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F3A4: .word MOD13_0222F520
+
+ arm_func_start MOD13_0222F3A8
+MOD13_0222F3A8: ; 0x0222F3A8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _0222F3DC ; =MOD13_0222F37C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F3DC: .word MOD13_0222F37C
+
+ arm_func_start MOD13_0222F3E0
+MOD13_0222F3E0: ; 0x0222F3E0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+_0222F420:
+ bl MOD13_0223339C
+ cmp r0, #0
+ beq _0222F420
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _0222F4B8 ; =0x02243108
+ ldrb r0, [r0]
+ cmp r0, #1
+ beq _0222F490
+ bl MOD13_02233570
+ bl MOD13_02234164
+ ldrb r0, [r0, #0xf4]
+ bl MOD13_02233C24
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222F4BC ; =MOD13_02230EC4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222F490:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222F6C
+ ldr r0, _0222F4C0 ; =MOD13_022295D8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F4B8: .word 0x02243108
+_0222F4BC: .word MOD13_02230EC4
+_0222F4C0: .word MOD13_022295D8
+
+ arm_func_start MOD13_0222F4C4
+MOD13_0222F4C4: ; 0x0222F4C4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _0222F51C ; =MOD13_0222F3E0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F51C: .word MOD13_0222F3E0
+
+ arm_func_start MOD13_0222F520
+MOD13_0222F520: ; 0x0222F520
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0222F544 ; =MOD13_0222F4C4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F544: .word MOD13_0222F4C4
+
+ arm_func_start MOD13_0222F548
+MOD13_0222F548: ; 0x0222F548
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_022341E8
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _0222F57C ; =MOD13_0222F520
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F57C: .word MOD13_0222F520
+
+ arm_func_start MOD13_0222F580
+MOD13_0222F580: ; 0x0222F580
+ bx lr
+
+ arm_func_start MOD13_0222F584
+MOD13_0222F584: ; 0x0222F584
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_022341E8
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0222F5B4
+MOD13_0222F5B4: ; 0x0222F5B4
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r0, _0222F6D0 ; =0x0224310C
+ ldrh r1, [r0]
+ add r1, r1, #1
+ strh r1, [r0]
+ ldrh r0, [r0]
+ cmp r0, #0x12c
+ addlo sp, sp, #0xc
+ ldmloia sp!, {pc}
+ bl MOD13_022341E8
+ add r0, sp, #4
+ bl MOD13_0223333C
+ cmp r0, #0
+ bne _0222F634
+ ldr r0, _0222F6D4 ; =0x02243108
+ mov r3, #2
+ strb r3, [r0]
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #0xf
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ mov r0, #0x12
+ bl MOD13_0223424C
+ bl MOD13_0221EC84
+ ldr r0, _0222F6D8 ; =MOD13_0222F3A8
+ bl MOD13_02222FBC
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+_0222F634:
+ cmp r0, #0
+ mov r3, #0
+ ble _0222F660
+ ldr r2, [sp, #4]
+_0222F644:
+ ldrb r1, [r2, #0x28]
+ cmp r1, #2
+ bne _0222F660
+ add r3, r3, #1
+ cmp r3, r0
+ add r2, r2, #0x2a
+ blt _0222F644
+_0222F660:
+ cmp r3, r0
+ bne _0222F6AC
+ ldr r0, _0222F6D4 ; =0x02243108
+ mov r3, #3
+ strb r3, [r0]
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #0xe
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ mov r0, #0x12
+ bl MOD13_0223424C
+ bl MOD13_0221EC84
+ ldr r0, _0222F6D8 ; =MOD13_0222F3A8
+ bl MOD13_02222FBC
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+_0222F6AC:
+ ldr r1, _0222F6D4 ; =0x02243108
+ mov r2, #1
+ mov r0, #0xf
+ strb r2, [r1]
+ bl MOD13_0223424C
+ ldr r0, _0222F6DC ; =MOD13_0222F520
+ bl MOD13_02222FBC
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F6D0: .word 0x0224310C
+_0222F6D4: .word 0x02243108
+_0222F6D8: .word MOD13_0222F3A8
+_0222F6DC: .word MOD13_0222F520
+
+ arm_func_start MOD13_0222F6E0
+MOD13_0222F6E0: ; 0x0222F6E0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222F584
+ bl MOD13_0222F580
+ bl MOD13_0222F548
+ bl MOD13_0222F5B4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222F730 ; =MOD13_0222F6E0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F730: .word MOD13_0222F6E0
+
+ arm_func_start MOD13_0222F734
+MOD13_0222F734: ; 0x0222F734
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #1
+ bl MOD13_0221F0EC
+ ldr r0, _0222F77C ; =0x0222F700
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F77C: .word 0x0222F700
+
+ arm_func_start MOD13_0222F780
+MOD13_0222F780: ; 0x0222F780
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222F7D8 ; =MOD13_0222F734
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F7D8: .word MOD13_0222F734
+
+ arm_func_start MOD13_0222F7DC
+MOD13_0222F7DC: ; 0x0222F7DC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222F874 ; =0x022403CC
+ ldr r1, _0222F878 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _0222F87C ; =0x022403E4
+ ldr r1, _0222F880 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _0222F884 ; =0x022403FC
+ ldr r1, _0222F888 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222F88C ; =0x04001008
+ ldr ip, _0222F890 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _0222F894 ; =0x04000008
+ ldr r2, _0222F898 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222F89C ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F874: .word 0x022403CC
+_0222F878: .word 0x020C8D4C
+_0222F87C: .word 0x022403E4
+_0222F880: .word 0x020C9550
+_0222F884: .word 0x022403FC
+_0222F888: .word 0x020C908C
+_0222F88C: .word 0x04001008
+_0222F890: .word 0x0400100A
+_0222F894: .word 0x04000008
+_0222F898: .word 0x0400000A
+_0222F89C: .word 0x0400000C
+
+ arm_func_start MOD13_0222F8A0
+MOD13_0222F8A0: ; 0x0222F8A0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _0222F90C ; =0x0224310C
+ mov r2, #0
+ ldr r0, _0222F910 ; =0x02243108
+ strh r2, [r1]
+ strb r2, [r0]
+ bl MOD13_0222F7DC
+ mov r0, #0x33
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ bl MOD13_0221F4AC
+ mov r0, #2
+ bl MOD13_0221F124
+ mov r0, #0x33
+ bl MOD13_0221F070
+ mov r0, #0
+ bl MOD13_0221E694
+ bl MOD13_022335AC
+ bl MOD13_0223348C
+ mov r0, #0xa
+ bl MOD13_0223424C
+ ldr r0, _0222F914 ; =MOD13_0222F780
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F90C: .word 0x0224310C
+_0222F910: .word 0x02243108
+_0222F914: .word MOD13_0222F780
+
+ arm_func_start MOD13_0222F918
+MOD13_0222F918: ; 0x0222F918
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0xc
+ ldr r2, _0222F9EC ; =0x0223F400
+ ldr r1, _0222F9F0 ; =0x0223F404
+ ldrb r7, [r2]
+ ldrb r6, [r2, #1]
+ ldrb r5, [r2, #2]
+ ldrb r4, [r2, #3]
+ ldrb lr, [r1]
+ ldrb ip, [r1, #1]
+ ldrb r3, [r1, #2]
+ ldrb r2, [r1, #3]
+ ldr r0, _0222F9F4 ; =0x02243110
+ strb r7, [sp]
+ ldrb r1, [r0]
+ strb r2, [sp, #7]
+ strb r6, [sp, #1]
+ strb r5, [sp, #2]
+ strb r4, [sp, #3]
+ strb lr, [sp, #4]
+ strb ip, [sp, #5]
+ strb r3, [sp, #6]
+ cmp r1, #3
+ add r2, sp, #0
+ addhi sp, sp, #0xc
+ ldmhiia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, _0222F9F8 ; =0x02243114
+ ldrb r1, [r2, r1]
+ ldr r0, [r0]
+ ldr r0, [r0]
+ mov r2, r1
+ bl MOD13_022327DC
+ ldr r0, _0222F9F4 ; =0x02243110
+ ldrb r0, [r0]
+ cmp r0, #3
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ bl MOD13_02233D0C
+ ldr r1, _0222F9F4 ; =0x02243110
+ ldr r2, _0222F9F8 ; =0x02243114
+ ldrb r3, [r1]
+ ldr r2, [r2]
+ cmp r0, #2
+ movgt r0, #3
+ add r1, sp, #4
+ add r2, r2, r3, lsl #2
+ ldrb r3, [r1, r0]
+ ldr r0, [r2, #4]
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_02239994
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F9EC: .word 0x0223F400
+_0222F9F0: .word 0x0223F404
+_0222F9F4: .word 0x02243110
+_0222F9F8: .word 0x02243114
+
+ arm_func_start MOD13_0222F9FC
+MOD13_0222F9FC: ; 0x0222F9FC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222FA28 ; =MOD13_022303D8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222FA28: .word MOD13_022303D8
+
+ arm_func_start MOD13_0222FA2C
+MOD13_0222FA2C: ; 0x0222FA2C
+ stmdb sp!, {r4, lr}
+ ldr r0, _0222FB8C ; =0x02243110
+ ldrb r0, [r0]
+ sub r4, r0, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ beq _0222FB00
+ cmp r0, #1
+ ldmneia sp!, {r4, pc}
+ mov r0, #0xe
+ bl MOD13_0223424C
+ mov r0, r4
+ bl MOD13_022338B8
+ ldr r0, _0222FB90 ; =0x02243114
+ mov r1, #0
+ ldr r0, [r0]
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #4]
+ bl MOD13_02239ADC
+ ldr r1, _0222FB94 ; =0x0223F3FC
+ mov r2, r0
+ ldrb r1, [r1, #3]
+ mov r0, #0
+ bl MOD13_02239E8C
+ ldr r0, _0222FB90 ; =0x02243114
+ mov ip, r4, lsl #2
+ ldr r0, [r0]
+ mvn r1, #0
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #4]
+ ldr r2, _0222FB98 ; =0x0223F428
+ ldr r3, _0222FB9C ; =0x0223F42A
+ ldrh r2, [r2, ip]
+ ldrh r3, [r3, ip]
+ bl MOD13_02239888
+ ldr r0, _0222FB90 ; =0x02243114
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #3
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #4]
+ bl MOD13_02239814
+ ldr r0, _0222FB90 ; =0x02243114
+ ldr r0, [r0]
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #0x10]
+ bl MOD13_02239AE8
+ mov r1, #0
+ ldr r0, _0222FB90 ; =0x02243114
+ ldr r0, [r0]
+ add r0, r0, r4, lsl #2
+ str r1, [r0, #0x10]
+ b _0222FB7C
+_0222FB00:
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _0222FB90 ; =0x02243114
+ mov r1, #0
+ ldr r0, [r0]
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #0x10]
+ bl MOD13_02239ADC
+ mov r2, r0
+ mov r0, #0
+ mov r1, #0x11
+ bl MOD13_02239E8C
+ ldr r0, _0222FB90 ; =0x02243114
+ add r1, r4, #3
+ ldr r0, [r0]
+ mov ip, r1, lsl #2
+ ldr r2, _0222FB98 ; =0x0223F428
+ ldr r3, _0222FB9C ; =0x0223F42A
+ add r0, r0, r4, lsl #2
+ ldrh r2, [r2, ip]
+ ldrh r3, [r3, ip]
+ ldr r0, [r0, #0x10]
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r0, _0222FB90 ; =0x02243114
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #3
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #0x10]
+ bl MOD13_02239814
+_0222FB7C:
+ bl MOD13_02235EB0
+ ldr r0, _0222FBA0 ; =MOD13_0222F9FC
+ bl MOD13_02222FBC
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222FB8C: .word 0x02243110
+_0222FB90: .word 0x02243114
+_0222FB94: .word 0x0223F3FC
+_0222FB98: .word 0x0223F428
+_0222FB9C: .word 0x0223F42A
+_0222FBA0: .word MOD13_0222F9FC
+
+ arm_func_start MOD13_0222FBA4
+MOD13_0222FBA4: ; 0x0222FBA4
+ stmdb sp!, {r4, lr}
+ ldr r1, _0222FC2C ; =0x02243110
+ ldr r0, _0222FC30 ; =0x02243114
+ ldrb r2, [r1]
+ ldr r0, [r0]
+ mov r1, #0
+ sub r4, r2, #4
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #0x10]
+ bl MOD13_02239ADC
+ mov r2, r0
+ mov r0, #0
+ mov r1, #0x32
+ bl MOD13_02239E8C
+ ldr r0, _0222FC30 ; =0x02243114
+ add r3, r4, #3
+ ldr r2, [r0]
+ ldr r1, _0222FC34 ; =0x0223F428
+ mov r3, r3, lsl #2
+ ldr r0, _0222FC38 ; =0x0223F42A
+ add ip, r2, r4, lsl #2
+ ldrh r2, [r1, r3]
+ ldrh r3, [r0, r3]
+ ldr r0, [ip, #0x10]
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r0, _0222FC30 ; =0x02243114
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #3
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #0x10]
+ bl MOD13_02239814
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222FC2C: .word 0x02243110
+_0222FC30: .word 0x02243114
+_0222FC34: .word 0x0223F428
+_0222FC38: .word 0x0223F42A
+
+ arm_func_start MOD13_0222FC3C
+MOD13_0222FC3C: ; 0x0222FC3C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r3, _0222FE54 ; =0x02243110
+ mov r1, #1
+ ldrb r2, [r3]
+ cmp r2, #6
+ addls pc, pc, r2, lsl #2
+ b _0222FE34
+_0222FC5C: ; jump table
+ b _0222FC78 ; case 0
+ b _0222FCBC ; case 1
+ b _0222FD00 ; case 2
+ b _0222FD44 ; case 3
+ b _0222FD70 ; case 4
+ b _0222FDB4 ; case 5
+ b _0222FDF4 ; case 6
+_0222FC78:
+ ldr r2, _0222FE58 ; =0x02243114
+ cmp r0, #0
+ ldr r2, [r2]
+ mov ip, #0
+ strb ip, [r2, #0x1c]
+ moveq r0, #2
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #2
+ streqb r1, [r3]
+ beq _0222FE34
+ cmp r0, #1
+ moveq r0, #3
+ streqb r0, [r3]
+ movne r0, #4
+ strneb r0, [r3]
+ b _0222FE34
+_0222FCBC:
+ ldr r2, _0222FE58 ; =0x02243114
+ cmp r0, #0
+ ldr r2, [r2]
+ moveq r0, #0
+ strb r1, [r2, #0x1c]
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #2
+ moveq r0, #2
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #1
+ moveq r0, #3
+ streqb r0, [r3]
+ movne r0, #5
+ strneb r0, [r3]
+ b _0222FE34
+_0222FD00:
+ ldr r2, _0222FE58 ; =0x02243114
+ mov ip, #2
+ ldr r2, [r2]
+ cmp r0, #0
+ strb ip, [r2, #0x1c]
+ streqb r1, [r3]
+ beq _0222FE34
+ cmp r0, #2
+ moveq r0, #0
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #1
+ moveq r0, #3
+ streqb r0, [r3]
+ movne r0, #6
+ strneb r0, [r3]
+ b _0222FE34
+_0222FD44:
+ ldr r2, _0222FE58 ; =0x02243114
+ cmp r0, #1
+ ldr r2, [r2]
+ ldrb ip, [r2, #0x1c]
+ add r2, ip, #4
+ streqb r2, [r3]
+ beq _0222FE34
+ cmp r0, #3
+ streqb ip, [r3]
+ movne r1, #0
+ b _0222FE34
+_0222FD70:
+ ldr r2, _0222FE58 ; =0x02243114
+ cmp r0, #0
+ ldr r2, [r2]
+ mov ip, #0
+ strb ip, [r2, #0x1c]
+ moveq r0, #6
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #2
+ moveq r0, #5
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #1
+ streqb ip, [r3]
+ movne r0, #3
+ strneb r0, [r3]
+ b _0222FE34
+_0222FDB4:
+ ldr r2, _0222FE58 ; =0x02243114
+ cmp r0, #0
+ ldr r2, [r2]
+ moveq r0, #4
+ strb r1, [r2, #0x1c]
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #2
+ moveq r0, #6
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #1
+ streqb r1, [r3]
+ movne r0, #3
+ strneb r0, [r3]
+ b _0222FE34
+_0222FDF4:
+ ldr r2, _0222FE58 ; =0x02243114
+ cmp r0, #0
+ ldr r2, [r2]
+ mov ip, #2
+ strb ip, [r2, #0x1c]
+ moveq r0, #5
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #2
+ moveq r0, #4
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #1
+ streqb ip, [r3]
+ movne r0, #3
+ strneb r0, [r3]
+_0222FE34:
+ cmp r1, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #8
+ bl MOD13_0223424C
+ bl MOD13_0222FE5C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222FE54: .word 0x02243110
+_0222FE58: .word 0x02243114
+
+ arm_func_start MOD13_0222FE5C
+MOD13_0222FE5C: ; 0x0222FE5C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222FED0 ; =0x02243110
+ ldrb r2, [r0]
+ cmp r2, #4
+ bhs _0222FEA4
+ mov ip, r2, lsl #3
+ ldr r0, _0222FED4 ; =0x0223F478
+ ldr r1, _0222FED8 ; =0x0223F47C
+ ldr r2, _0222FEDC ; =0x0223F47A
+ ldr r3, _0222FEE0 ; =0x0223F47E
+ ldrh r0, [r0, ip]
+ ldrh r1, [r1, ip]
+ ldrh r2, [r2, ip]
+ ldrh r3, [r3, ip]
+ bl MOD13_0221F25C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222FEA4:
+ ldr r1, _0222FED4 ; =0x0223F478
+ mov r3, r2, lsl #3
+ ldr r2, _0222FED8 ; =0x0223F47C
+ ldr r0, _0222FEDC ; =0x0223F47A
+ ldrh r1, [r1, r3]
+ ldrh r2, [r2, r3]
+ ldrh r3, [r0, r3]
+ mov r0, #0
+ bl MOD13_0221F348
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222FED0: .word 0x02243110
+_0222FED4: .word 0x0223F478
+_0222FED8: .word 0x0223F47C
+_0222FEDC: .word 0x0223F47A
+_0222FEE0: .word 0x0223F47E
+
+ arm_func_start MOD13_0222FEE4
+MOD13_0222FEE4: ; 0x0222FEE4
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ bl MOD13_022343D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r4, _02230084 ; =0x02243114
+ mov r5, #0
+_0222FF3C:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _0222FF54
+ bl MOD13_02239AE8
+_0222FF54:
+ add r5, r5, #1
+ cmp r5, #3
+ blo _0222FF3C
+ ldr r4, _02230084 ; =0x02243114
+ mov r5, #0
+_0222FF68:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x10]
+ cmp r0, #0
+ beq _0222FF80
+ bl MOD13_02239AE8
+_0222FF80:
+ add r5, r5, #1
+ cmp r5, #3
+ blo _0222FF68
+ bl MOD13_0221F21C
+ bl MOD13_0221EE54
+ ldr r0, _02230084 ; =0x02243114
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl MOD13_0223939C
+ ldr r0, _02230088 ; =0x02240410
+ ldr r1, _0223008C ; =0x020C9480
+ bl MOD13_0221F174
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AE98
+ ldr r0, _02230084 ; =0x02243114
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1d]
+ cmp r0, #2
+ bne _0222FFF4
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _02230090 ; =MOD13_022245B4
+ bl MOD13_02222FBC
+ b _02230074
+_0222FFF4:
+ ldr r0, _02230094 ; =0x02243110
+ ldrb r0, [r0]
+ cmp r0, #3
+ addls pc, pc, r0, lsl #2
+ b _02230074
+_02230008: ; jump table
+ b _02230018 ; case 0
+ b _02230018 ; case 1
+ b _02230018 ; case 2
+ b _02230060 ; case 3
+_02230018:
+ mov r0, #2
+ mov r1, #0
+ bl MOD13_02222FA8
+ bl MOD13_02234164
+ ldrb r0, [r0, #0xe7]
+ cmp r0, #0xff
+ bne _02230040
+ ldr r0, _02230098 ; =MOD13_02230EC4
+ bl MOD13_02222FBC
+ b _02230074
+_02230040:
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222F6C
+ mov r0, #0
+ bl MOD13_0222B7F4
+ ldr r0, _0223009C ; =MOD13_0222DD4C
+ bl MOD13_02222FBC
+ b _02230074
+_02230060:
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022300A0 ; =MOD13_0223201C
+ bl MOD13_02222FBC
+_02230074:
+ ldr r0, _02230084 ; =0x02243114
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02230084: .word 0x02243114
+_02230088: .word 0x02240410
+_0223008C: .word 0x020C9480
+_02230090: .word MOD13_022245B4
+_02230094: .word 0x02243110
+_02230098: .word MOD13_02230EC4
+_0223009C: .word MOD13_0222DD4C
+_022300A0: .word MOD13_0223201C
+
+ arm_func_start MOD13_022300A4
+MOD13_022300A4: ; 0x022300A4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02230130 ; =0x02243114
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1d]
+ cmp r0, #1
+ bne _022300F8
+ ldr r0, _02230134 ; =0x02243110
+ ldrb r0, [r0]
+ cmp r0, #3
+ beq _022300F4
+ bl MOD13_02234164
+ ldrb r0, [r0, #0xe7]
+ cmp r0, #0xff
+ beq _022300F8
+_022300F4:
+ bl MOD13_0221ED28
+_022300F8:
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02230138 ; =MOD13_0222FEE4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230130: .word 0x02243114
+_02230134: .word 0x02243110
+_02230138: .word MOD13_0222FEE4
+
+ arm_func_start MOD13_0223013C
+MOD13_0223013C: ; 0x0223013C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02230178 ; =0x02243114
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1d]
+ cmp r0, #2
+ bne _0223015C
+ bl MOD13_02234908
+_0223015C:
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0223017C ; =MOD13_022300A4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230178: .word 0x02243114
+_0223017C: .word MOD13_022300A4
+
+ arm_func_start MOD13_02230180
+MOD13_02230180: ; 0x02230180
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _022301A4
+ cmp r0, #1
+ beq _022301EC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022301A4:
+ bl MOD13_02222F1C
+ cmp r0, #0
+ beq _022301BC
+ cmp r0, #1
+ beq _022301D8
+ b _02230294
+_022301BC:
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _022302A4 ; =0x02243114
+ mov r1, #2
+ ldr r0, [r0]
+ strb r1, [r0, #0x1d]
+ b _02230294
+_022301D8:
+ bl MOD13_0221EC84
+ ldr r0, _022302A8 ; =MOD13_02223CFC
+ bl MOD13_02222FBC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022301EC:
+ ldr r0, _022302A4 ; =0x02243114
+ mov r2, #1
+ ldr r1, [r0]
+ ldr r0, _022302AC ; =0x02243110
+ strb r2, [r1, #0x1d]
+ ldrb r0, [r0]
+ cmp r0, #4
+ blo _0223027C
+ sub r4, r0, #4
+ mov r0, r4
+ bl MOD13_02233D0C
+ cmp r0, #0xff
+ bne _02230238
+ mov r0, #9
+ bl MOD13_0223424C
+ mvn r0, #0
+ bl MOD13_0221ECE0
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02230238:
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02222F34
+ add r2, r4, #1
+ str r2, [sp]
+ ldr r1, _022302B0 ; =0x0223F408
+ mov r2, #1
+ ldrsb r3, [r1, r0]
+ mov r0, #0x46
+ mov r1, #0
+ bl MOD13_02235EFC
+ bl MOD13_0222FBA4
+ bl MOD13_0221EC84
+ ldr r0, _022302B4 ; =MOD13_0222FA2C
+ bl MOD13_02222FBC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0223027C:
+ cmp r0, #2
+ bhi _02230288
+ bl MOD13_02233C24
+_02230288:
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_0222F918
+_02230294:
+ ldr r0, _022302B8 ; =MOD13_0223013C
+ bl MOD13_02222FBC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022302A4: .word 0x02243114
+_022302A8: .word MOD13_02223CFC
+_022302AC: .word 0x02243110
+_022302B0: .word 0x0223F408
+_022302B4: .word MOD13_0222FA2C
+_022302B8: .word MOD13_0223013C
+
+ arm_func_start MOD13_022302BC
+MOD13_022302BC: ; 0x022302BC
+ bx lr
+
+ arm_func_start MOD13_022302C0
+MOD13_022302C0: ; 0x022302C0
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r4, _022303D0 ; =0x0223F440
+ mov r5, #0
+_022302D0:
+ mov r0, r4
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _022302FC
+ mov r0, #1
+ bl MOD13_0221ECF4
+ ldr r0, _022303D4 ; =0x02243110
+ strb r5, [r0]
+ bl MOD13_0222FE5C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_022302FC:
+ add r5, r5, #1
+ cmp r5, #7
+ add r4, r4, #8
+ blo _022302D0
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0223032C
+ mov r0, #1
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0223032C:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0223034C
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0223034C:
+ mov r0, #0x40
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0223036C
+ mov r0, #1
+ bl MOD13_0222FC3C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0223036C:
+ mov r0, #0x80
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0223038C
+ mov r0, #3
+ bl MOD13_0222FC3C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0223038C:
+ mov r0, #0x20
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _022303AC
+ mov r0, #0
+ bl MOD13_0222FC3C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_022303AC:
+ mov r0, #0x10
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ mov r0, #2
+ bl MOD13_0222FC3C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_022303D0: .word 0x0223F440
+_022303D4: .word 0x02243110
+
+ arm_func_start MOD13_022303D8
+MOD13_022303D8: ; 0x022303D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022302C0
+ bl MOD13_022302BC
+ bl MOD13_02230180
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_02234800
+ cmp r0, #1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02230434 ; =MOD13_022303D8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230434: .word MOD13_022303D8
+
+ arm_func_start MOD13_02230438
+MOD13_02230438: ; 0x02230438
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221F0EC
+ ldr r0, _02230480 ; =0x022303F4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230480: .word 0x022303F4
+
+ arm_func_start MOD13_02230484
+MOD13_02230484: ; 0x02230484
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AEF4
+ ldr r0, _022304DC ; =MOD13_02230438
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022304DC: .word MOD13_02230438
+
+ arm_func_start MOD13_022304E0
+MOD13_022304E0: ; 0x022304E0
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ mov sb, #0
+ ldr r4, _022305F0 ; =0x02243114
+ ldr r5, _022305F4 ; =0x0223F428
+ str sb, [sp]
+ str sb, [sp, #4]
+ mov fp, #0x11
+ mov r7, #1
+ mvn r6, #0
+ mov r8, #3
+_0223050C:
+ mov r0, sb
+ bl MOD13_02233D0C
+ mov sl, r0
+ cmp sl, #0xff
+ moveq sl, r8
+ beq _02230580
+ ldr r0, [sp]
+ mov r1, fp
+ mov r2, r7
+ bl MOD13_02239E0C
+ ldr r1, [r4]
+ add r3, sb, #3
+ add r1, r1, sb, lsl #2
+ str r0, [r1, #0x10]
+ mov r2, r3, lsl #2
+ ldr r0, [r4]
+ add r3, r5, r3, lsl #2
+ add r0, r0, sb, lsl #2
+ ldrh r2, [r5, r2]
+ ldrh r3, [r3, #2]
+ ldr r0, [r0, #0x10]
+ mov r1, r6
+ bl MOD13_02239888
+ ldr r0, [r4]
+ mov r1, r6
+ add r0, r0, sb, lsl #2
+ ldr r0, [r0, #0x10]
+ mov r2, r8
+ bl MOD13_02239814
+_02230580:
+ ldr r0, _022305F8 ; =0x0223F3FC
+ mov r2, r7
+ ldrb r1, [r0, sl]
+ ldr r0, [sp, #4]
+ bl MOD13_02239E0C
+ ldr r1, [r4]
+ mov r2, sb, lsl #2
+ add r1, r1, sb, lsl #2
+ str r0, [r1, #4]
+ ldr r0, [r4]
+ add r3, r5, sb, lsl #2
+ add r0, r0, sb, lsl #2
+ ldrh r2, [r5, r2]
+ ldrh r3, [r3, #2]
+ ldr r0, [r0, #4]
+ mov r1, r6
+ bl MOD13_02239888
+ ldr r0, [r4]
+ mov r1, r6
+ add r0, r0, sb, lsl #2
+ ldr r0, [r0, #4]
+ mov r2, r8
+ bl MOD13_02239814
+ add sb, sb, #1
+ cmp sb, #3
+ blt _0223050C
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_022305F0: .word 0x02243114
+_022305F4: .word 0x0223F428
+_022305F8: .word 0x0223F3FC
+
+ arm_func_start MOD13_022305FC
+MOD13_022305FC: ; 0x022305FC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x1c
+ ldr ip, _022306DC ; =0x0223F410
+ add r3, sp, #0
+ mov r2, #0xb
+_02230610:
+ ldrb r1, [ip], #1
+ ldrb r0, [ip], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _02230610
+ ldr r0, _022306E0 ; =0x02240428
+ ldr r1, _022306E4 ; =0x020C9480
+ bl MOD13_0221F174
+ ldr r0, _022306E8 ; =0x0224043C
+ ldr r1, _022306EC ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _022306F0 ; =0x02240454
+ ldr r1, _022306F4 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _022306F8 ; =0x0224046C
+ ldr r1, _022306FC ; =0x020C908C
+ bl MOD13_0221F174
+ add r0, sp, #0
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r2, _02230700 ; =0x02243114
+ mov r1, #0x10
+ ldr r2, [r2]
+ str r0, [r2]
+ mov r0, #1
+ bl MOD13_0223AEF4
+ ldr ip, _02230704 ; =0x04001008
+ ldr r3, _02230708 ; =0x0400100A
+ ldrh r0, [ip]
+ ldr r2, _0223070C ; =0x0400000A
+ ldr r1, _02230710 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+ .align 2, 0
+_022306DC: .word 0x0223F410
+_022306E0: .word 0x02240428
+_022306E4: .word 0x020C9480
+_022306E8: .word 0x0224043C
+_022306EC: .word 0x020C8D4C
+_022306F0: .word 0x02240454
+_022306F4: .word 0x020C9550
+_022306F8: .word 0x0224046C
+_022306FC: .word 0x020C908C
+_02230700: .word 0x02243114
+_02230704: .word 0x04001008
+_02230708: .word 0x0400100A
+_0223070C: .word 0x0400000A
+_02230710: .word 0x0400000C
+
+ arm_func_start MOD13_02230714
+MOD13_02230714: ; 0x02230714
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0x20
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r1, _02230774 ; =0x02243114
+ mov r2, #0
+ str r0, [r1]
+ strb r2, [r0, #0x1d]
+ bl MOD13_022305FC
+ mov r0, #1
+ bl MOD13_0221F4CC
+ mov r0, #0x2f
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #0
+ bl MOD13_0221F124
+ bl MOD13_022304E0
+ bl MOD13_0222FE5C
+ ldr r0, _02230778 ; =MOD13_02230484
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230774: .word 0x02243114
+_02230778: .word MOD13_02230484
+
+ arm_func_start MOD13_0223077C
+MOD13_0223077C: ; 0x0223077C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r0, _022307D0 ; =0x0223F4B0
+ ldr r1, _022307D4 ; =0x0224311C
+ ldrb lr, [r0]
+ ldrb ip, [r0, #1]
+ ldrb r3, [r0, #2]
+ ldrb r2, [r0, #3]
+ ldr r0, _022307D8 ; =0x02243124
+ ldrsb r1, [r1]
+ add r4, sp, #0
+ strb lr, [sp]
+ strb ip, [sp, #1]
+ strb r3, [sp, #2]
+ strb r2, [sp, #3]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0]
+ mov r2, r1
+ bl MOD13_022327DC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022307D0: .word 0x0223F4B0
+_022307D4: .word 0x0224311C
+_022307D8: .word 0x02243124
+
+ arm_func_start MOD13_022307DC
+MOD13_022307DC: ; 0x022307DC
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r1, _022308B8 ; =0x0224311C
+ mov r5, r0
+ mov r0, #1
+ ldrsb r4, [r1]
+ bl MOD13_02222EFC
+ ldr r2, _022308BC ; =0x0223F4D4
+ mvn r1, #0
+ add r0, r2, r0, lsl #4
+ add r0, r0, r4, lsl #2
+ ldrsb r2, [r5, r0]
+ cmp r2, r1
+ ldmeqia sp!, {r4, r5, r6, pc}
+ cmp r2, #0
+ ldreq r0, _022308C0 ; =0x02243118
+ streqb r4, [r0]
+ mvn r0, #1
+ cmp r2, r0
+ ldreq r1, _022308C0 ; =0x02243118
+ ldreq r0, _022308B8 ; =0x0224311C
+ ldreqsb r1, [r1]
+ streqb r1, [r0]
+ ldrne r0, _022308B8 ; =0x0224311C
+ strneb r2, [r0]
+ mov r0, #8
+ bl MOD13_0223424C
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r6, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r5, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r4, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r3, r0
+ ldr r0, _022308B8 ; =0x0224311C
+ ldr r1, _022308C4 ; =0x0223F534
+ ldrsb lr, [r0]
+ ldr r0, _022308C8 ; =0x0223F536
+ add ip, r1, r6, lsl #5
+ ldr r1, _022308CC ; =0x0223F538
+ add r2, r0, r4, lsl #5
+ ldr r4, _022308D0 ; =0x0223F53A
+ add r1, r1, r5, lsl #5
+ mov r5, lr, lsl #3
+ add r3, r4, r3, lsl #5
+ ldrh r0, [r5, ip]
+ ldrh r1, [r5, r1]
+ ldrh r2, [r5, r2]
+ ldrh r3, [r5, r3]
+ bl MOD13_0221F25C
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_022308B8: .word 0x0224311C
+_022308BC: .word 0x0223F4D4
+_022308C0: .word 0x02243118
+_022308C4: .word 0x0223F534
+_022308C8: .word 0x0223F536
+_022308CC: .word 0x0223F538
+_022308D0: .word 0x0223F53A
+
+ arm_func_start MOD13_022308D4
+MOD13_022308D4: ; 0x022308D4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221F21C
+ bl MOD13_0221EE54
+ ldr r0, _02230A14 ; =0x02243124
+ ldr r0, [r0]
+ bl MOD13_0223939C
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AE98
+ ldr r0, _02230A18 ; =0x02243120
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0223096C
+ mov r0, #2
+ mov r1, #0
+ bl MOD13_02222FA8
+ ldr r0, _02230A1C ; =MOD13_02230714
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0223096C:
+ ldr r0, _02230A20 ; =0x0224311C
+ ldrsb r0, [r0]
+ cmp r0, #3
+ addls pc, pc, r0, lsl #2
+ b _02230A0C
+_02230980: ; jump table
+ b _02230990 ; case 0
+ b _022309AC ; case 1
+ b _022309C8 ; case 2
+ b _022309E4 ; case 3
+_02230990:
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02230A24 ; =MOD13_0222F8A0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022309AC:
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02230A28 ; =MOD13_02227C38
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022309C8:
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02230A2C ; =MOD13_0222F2F8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022309E4:
+ mov r0, #2
+ mov r1, #0
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222F6C
+ mov r0, #1
+ bl MOD13_0222B7F4
+ ldr r0, _02230A30 ; =MOD13_0222DD4C
+ bl MOD13_02222FBC
+_02230A0C:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230A14: .word 0x02243124
+_02230A18: .word 0x02243120
+_02230A1C: .word MOD13_02230714
+_02230A20: .word 0x0224311C
+_02230A24: .word MOD13_0222F8A0
+_02230A28: .word MOD13_02227C38
+_02230A2C: .word MOD13_0222F2F8
+_02230A30: .word MOD13_0222DD4C
+
+ arm_func_start MOD13_02230A34
+MOD13_02230A34: ; 0x02230A34
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02230A9C ; =0x02243120
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02230A64
+ bl MOD13_0221ED28
+_02230A64:
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02230AA0 ; =MOD13_022308D4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230A9C: .word 0x02243120
+_02230AA0: .word MOD13_022308D4
+
+ arm_func_start MOD13_02230AA4
+MOD13_02230AA4: ; 0x02230AA4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02230AC8 ; =MOD13_02230A34
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230AC8: .word MOD13_02230A34
+
+ arm_func_start MOD13_02230ACC
+MOD13_02230ACC: ; 0x02230ACC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _02230AF0
+ cmp r0, #1
+ beq _02230AFC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02230AF0:
+ mov r0, #7
+ bl MOD13_0223424C
+ b _02230B14
+_02230AFC:
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_0223077C
+ ldr r0, _02230B24 ; =0x02243120
+ mov r1, #1
+ strb r1, [r0]
+_02230B14:
+ ldr r0, _02230B28 ; =MOD13_02230AA4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230B24: .word 0x02243120
+_02230B28: .word MOD13_02230AA4
+
+ arm_func_start MOD13_02230B2C
+MOD13_02230B2C: ; 0x02230B2C
+ bx lr
+
+ arm_func_start MOD13_02230B30
+MOD13_02230B30: ; 0x02230B30
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r7, #0
+ mov r6, r7
+ ldr r4, _02230CC0 ; =0x0223F4F4
+ mov r5, #1
+_02230B48:
+ mov r0, r5
+ bl MOD13_02222EFC
+ add r0, r4, r0, lsl #5
+ add r0, r0, r6
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02230BEC
+ mov r0, #1
+ bl MOD13_0221ECF4
+ ldr r1, _02230CC4 ; =0x0224311C
+ mov r0, #1
+ strb r7, [r1]
+ bl MOD13_02222EFC
+ mov r6, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r5, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r4, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r3, r0
+ ldr r0, _02230CC4 ; =0x0224311C
+ ldr r1, _02230CC8 ; =0x0223F534
+ ldrsb lr, [r0]
+ ldr r0, _02230CCC ; =0x0223F536
+ add ip, r1, r6, lsl #5
+ ldr r1, _02230CD0 ; =0x0223F538
+ add r2, r0, r4, lsl #5
+ ldr r4, _02230CD4 ; =0x0223F53A
+ add r1, r1, r5, lsl #5
+ mov r5, lr, lsl #3
+ add r3, r4, r3, lsl #5
+ ldrh r0, [r5, ip]
+ ldrh r1, [r5, r1]
+ ldrh r2, [r5, r2]
+ ldrh r3, [r5, r3]
+ bl MOD13_0221F25C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02230BEC:
+ add r7, r7, #1
+ cmp r7, #4
+ add r6, r6, #8
+ blo _02230B48
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02230C1C
+ mov r0, #1
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02230C1C:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02230C3C
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02230C3C:
+ mov r0, #0x40
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02230C5C
+ mov r0, #1
+ bl MOD13_022307DC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02230C5C:
+ mov r0, #0x80
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02230C7C
+ mov r0, #3
+ bl MOD13_022307DC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02230C7C:
+ mov r0, #0x20
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02230C9C
+ mov r0, #0
+ bl MOD13_022307DC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02230C9C:
+ mov r0, #0x10
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ mov r0, #2
+ bl MOD13_022307DC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02230CC0: .word 0x0223F4F4
+_02230CC4: .word 0x0224311C
+_02230CC8: .word 0x0223F534
+_02230CCC: .word 0x0223F536
+_02230CD0: .word 0x0223F538
+_02230CD4: .word 0x0223F53A
+
+ arm_func_start MOD13_02230CD8
+MOD13_02230CD8: ; 0x02230CD8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02230B30
+ bl MOD13_02230B2C
+ bl MOD13_02230ACC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02230D24 ; =MOD13_02230CD8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230D24: .word MOD13_02230CD8
+
+ arm_func_start MOD13_02230D28
+MOD13_02230D28: ; 0x02230D28
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221F0EC
+ ldr r0, _02230D70 ; =0x02230CF4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230D70: .word 0x02230CF4
+
+ arm_func_start MOD13_02230D74
+MOD13_02230D74: ; 0x02230D74
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AEF4
+ ldr r0, _02230DCC ; =MOD13_02230D28
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230DCC: .word MOD13_02230D28
+
+ arm_func_start MOD13_02230DD0
+MOD13_02230DD0: ; 0x02230DD0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x1c
+ ldr ip, _02230E94 ; =0x0223F4BC
+ add r3, sp, #0
+ mov r2, #0xb
+_02230DE4:
+ ldrb r1, [ip], #1
+ ldrb r0, [ip], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _02230DE4
+ ldr r0, _02230E98 ; =0x02240480
+ ldr r1, _02230E9C ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _02230EA0 ; =0x02240498
+ ldr r1, _02230EA4 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _02230EA8 ; =0x022404B0
+ ldr r1, _02230EAC ; =0x020C908C
+ bl MOD13_0221F174
+ add r0, sp, #0
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _02230EB0 ; =0x02243124
+ ldr ip, _02230EB4 ; =0x04001008
+ str r0, [r1]
+ ldrh r0, [ip]
+ ldr r3, _02230EB8 ; =0x0400100A
+ ldr r2, _02230EBC ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ ldr r1, _02230EC0 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230E94: .word 0x0223F4BC
+_02230E98: .word 0x02240480
+_02230E9C: .word 0x020C8D4C
+_02230EA0: .word 0x02240498
+_02230EA4: .word 0x020C9550
+_02230EA8: .word 0x022404B0
+_02230EAC: .word 0x020C908C
+_02230EB0: .word 0x02243124
+_02230EB4: .word 0x04001008
+_02230EB8: .word 0x0400100A
+_02230EBC: .word 0x0400000A
+_02230EC0: .word 0x0400000C
+
+ arm_func_start MOD13_02230EC4
+MOD13_02230EC4: ; 0x02230EC4
+ stmdb sp!, {r4, r5, r6, lr}
+ bl MOD13_02234164
+ ldr r1, _02230FD0 ; =0x02243118
+ ldr r2, _02230FD4 ; =0x02243120
+ ldrsb r3, [r1]
+ mov r5, #0
+ mov r4, r0
+ cmp r3, #0
+ moveq r0, #1
+ strb r5, [r2]
+ streqb r0, [r1]
+ bl MOD13_02222F34
+ cmp r0, #0
+ beq _02230F24
+ ldr r0, _02230FD8 ; =0x0224311C
+ ldrsb r1, [r0]
+ cmp r1, #2
+ moveq r1, #0
+ streqb r1, [r0]
+ ldr r0, _02230FD0 ; =0x02243118
+ ldrsb r1, [r0]
+ cmp r1, #2
+ moveq r1, #1
+ streqb r1, [r0]
+_02230F24:
+ bl MOD13_02230DD0
+ bl MOD13_0221F4AC
+ bl MOD13_02222F34
+ mov r5, r0
+ ldrb r1, [r4, #0xf4]
+ mov r0, #0x32
+ ldr r3, _02230FDC ; =0x0223F4B4
+ add r2, r1, #1
+ ldrsb r1, [r3, r5]
+ bl MOD13_0221EE98
+ mov r0, #1
+ bl MOD13_0221F124
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r6, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r5, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r4, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r3, r0
+ ldr r1, _02230FE0 ; =0x0223F534
+ ldr r0, _02230FD8 ; =0x0224311C
+ add ip, r1, r6, lsl #5
+ ldrsb lr, [r0]
+ ldr r1, _02230FE4 ; =0x0223F538
+ ldr r0, _02230FE8 ; =0x0223F536
+ add r1, r1, r5, lsl #5
+ add r2, r0, r4, lsl #5
+ mov r5, lr, lsl #3
+ ldrh r0, [r5, ip]
+ ldrh r1, [r5, r1]
+ ldrh r2, [r5, r2]
+ ldr r4, _02230FEC ; =0x0223F53A
+ add r3, r4, r3, lsl #5
+ ldrh r3, [r5, r3]
+ bl MOD13_0221F25C
+ ldr r0, _02230FF0 ; =MOD13_02230D74
+ bl MOD13_02222FBC
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02230FD0: .word 0x02243118
+_02230FD4: .word 0x02243120
+_02230FD8: .word 0x0224311C
+_02230FDC: .word 0x0223F4B4
+_02230FE0: .word 0x0223F534
+_02230FE4: .word 0x0223F538
+_02230FE8: .word 0x0223F536
+_02230FEC: .word 0x0223F53A
+_02230FF0: .word MOD13_02230D74
+
+ arm_func_start MOD13_02230FF4
+MOD13_02230FF4: ; 0x02230FF4
+ ldr ip, _02231000 ; =MOD13_0223AF48
+ mov r0, r1
+ bx ip
+ .align 2, 0
+_02231000: .word MOD13_0223AF48
+
+ arm_func_start MOD13_02231004
+MOD13_02231004: ; 0x02231004
+ ldr ip, _02231014 ; =MOD13_0223B004
+ mov r0, r1
+ mov r1, #0x20
+ bx ip
+ .align 2, 0
+_02231014: .word MOD13_0223B004
+
+ arm_func_start MOD13_02231018
+MOD13_02231018: ; 0x02231018
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ bl FUN_021EBB80
+ movs r4, r0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ bl MOD13_0221F694
+ bl MOD13_022341E8
+ cmp r4, #0
+ ble _0223105C
+ ldr r1, _02231088 ; =0x02243128
+ mov r2, #1
+ mov r0, #0x11
+ strb r2, [r1]
+ bl MOD13_0223424C
+ b _0223106C
+_0223105C:
+ bl FUN_021EBAE8
+ bl MOD13_0222B0BC
+ mov r0, #0x12
+ bl MOD13_0223424C
+_0223106C:
+ ldr r0, _0223108C ; =MOD13_0223115C
+ bl MOD13_02222FBC
+ mov r1, r5
+ mov r0, #0
+ bl MOD13_0223C110
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02231088: .word 0x02243128
+_0223108C: .word MOD13_0223115C
+
+ arm_func_start MOD13_02231090
+MOD13_02231090: ; 0x02231090
+ stmdb sp!, {r4, lr}
+ bl MOD13_022338FC
+ mov r4, r0
+ bl FUN_021EB9D8
+ cmp r0, #0
+ ldmeqia sp!, {r4, pc}
+ bl FUN_02095324
+ add r1, r4, #0xf0
+ mov r2, #0xe
+ bl MI_CpuCopy8
+ bl FUN_02095324
+ add r1, r4, #0x1f0
+ mov r2, #0xe
+ bl MI_CpuCopy8
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _02231120 ; =0x02243128
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02231108
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02231124 ; =MOD13_0222B7D0
+ bl MOD13_02222FBC
+ ldmia sp!, {r4, pc}
+_02231108:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02231128 ; =MOD13_02231704
+ bl MOD13_02222FBC
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02231120: .word 0x02243128
+_02231124: .word MOD13_0222B7D0
+_02231128: .word MOD13_02231704
+
+ arm_func_start MOD13_0223112C
+MOD13_0223112C: ; 0x0223112C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02231158 ; =MOD13_02231090
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231158: .word MOD13_02231090
+
+ arm_func_start MOD13_0223115C
+MOD13_0223115C: ; 0x0223115C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02231188 ; =MOD13_0223112C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231188: .word MOD13_0223112C
+
+ arm_func_start MOD13_0223118C
+MOD13_0223118C: ; 0x0223118C
+ bx lr
+
+ arm_func_start MOD13_02231190
+MOD13_02231190: ; 0x02231190
+ bx lr
+
+ arm_func_start MOD13_02231194
+MOD13_02231194: ; 0x02231194
+ bx lr
+
+ arm_func_start MOD13_02231198
+MOD13_02231198: ; 0x02231198
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02231194
+ bl MOD13_02231190
+ bl MOD13_0223118C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _022311F4 ; =MOD13_02231198
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022311F4: .word MOD13_02231198
+
+ arm_func_start MOD13_022311F8
+MOD13_022311F8: ; 0x022311F8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _02231258
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+_02231258:
+ ldr r0, _02231268 ; =0x022311B4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231268: .word 0x022311B4
+
+ arm_func_start MOD13_0223126C
+MOD13_0223126C: ; 0x0223126C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #0x10
+ bl MOD13_02234164
+ mov r4, r0
+ ldr r0, _022312FC ; =0x0223F574
+ add r1, sp, #4
+ mov r2, #0xc
+ bl MIi_CpuCopy32
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #2
+ moveq r0, #4
+ streqb r0, [sp, #0xe]
+ ldrneb r0, [r4, #0xf4]
+ addne r0, r0, #1
+ strneb r0, [sp, #0xe]
+ add r0, sp, #4
+ bl FUN_021EBC60
+ cmp r0, #0
+ bne _022312C8
+ bl OS_Terminate
+_022312C8:
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _022312E0
+ ldrb r0, [r4, #0xf4]
+ mov r1, r4
+ bl FUN_021EB9A4
+_022312E0:
+ mov r0, #0
+ ldr r1, _02231300 ; =MOD13_02231018
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ add sp, sp, #0x10
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022312FC: .word 0x0223F574
+_02231300: .word MOD13_02231018
+
+ arm_func_start MOD13_02231304
+MOD13_02231304: ; 0x02231304
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0223139C ; =0x022404C4
+ ldr r1, _022313A0 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _022313A4 ; =0x022404DC
+ ldr r1, _022313A8 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _022313AC ; =0x022404F4
+ ldr r1, _022313B0 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _022313B4 ; =0x04001008
+ ldr ip, _022313B8 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _022313BC ; =0x04000008
+ ldr r2, _022313C0 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _022313C4 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223139C: .word 0x022404C4
+_022313A0: .word 0x020C8D4C
+_022313A4: .word 0x022404DC
+_022313A8: .word 0x020C9550
+_022313AC: .word 0x022404F4
+_022313B0: .word 0x020C908C
+_022313B4: .word 0x04001008
+_022313B8: .word 0x0400100A
+_022313BC: .word 0x04000008
+_022313C0: .word 0x0400000A
+_022313C4: .word 0x0400000C
+
+ arm_func_start MOD13_022313C8
+MOD13_022313C8: ; 0x022313C8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02231454 ; =0x02243128
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_02231304
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _02231408
+ mov r0, #0x31
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+_02231408:
+ mov r0, #2
+ bl MOD13_0221F124
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _02231420
+ bl MOD13_0221F4AC
+_02231420:
+ mov r0, #0x2c
+ bl MOD13_0221F070
+ mov r0, #0
+ bl MOD13_0221E694
+ bl MOD13_0223126C
+ mov r0, #0
+ bl MOD13_0221F6E0
+ mov r0, #0xc
+ bl MOD13_0223424C
+ ldr r0, _02231458 ; =MOD13_022311F8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231454: .word 0x02243128
+_02231458: .word MOD13_022311F8
+
+ arm_func_start MOD13_0223145C
+MOD13_0223145C: ; 0x0223145C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022314D0 ; =0x0224312C
+ ldrb r1, [r0]
+ add r1, r1, #1
+ strb r1, [r0]
+ ldrb r0, [r0]
+ cmp r0, #0xb4
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ bl MOD13_02222F1C
+ cmp r0, #0
+ beq _022314C0
+ cmp r0, #1
+ bne _022314C0
+ ldr r0, [sp]
+ cmp r0, #0
+ beq _022314C0
+ ldr r0, _022314D4 ; =MOD13_02223CFC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022314C0:
+ ldr r0, _022314D8 ; =MOD13_02231598
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022314D0: .word 0x0224312C
+_022314D4: .word MOD13_02223CFC
+_022314D8: .word MOD13_02231598
+
+ arm_func_start MOD13_022314DC
+MOD13_022314DC: ; 0x022314DC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_022343D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _02231580
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222F6C
+ ldr r0, _02231590 ; =MOD13_0222DD4C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02231580:
+ ldr r0, _02231594 ; =MOD13_022245B4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231590: .word MOD13_0222DD4C
+_02231594: .word MOD13_022245B4
+
+ arm_func_start MOD13_02231598
+MOD13_02231598: ; 0x02231598
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #0
+ beq _022315BC
+ bl MOD13_02234908
+_022315BC:
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _022315F4 ; =MOD13_022314DC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022315F4: .word MOD13_022314DC
+
+ arm_func_start MOD13_022315F8
+MOD13_022315F8: ; 0x022315F8
+ bx lr
+
+ arm_func_start MOD13_022315FC
+MOD13_022315FC: ; 0x022315FC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0223145C
+ bl MOD13_022315F8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02231640 ; =MOD13_022315FC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231640: .word MOD13_022315FC
+
+ arm_func_start MOD13_02231644
+MOD13_02231644: ; 0x02231644
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0223167C ; =0x02231614
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223167C: .word 0x02231614
+
+ arm_func_start MOD13_02231680
+MOD13_02231680: ; 0x02231680
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022316EC ; =0x02240508
+ ldr r1, _022316F0 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr ip, _022316F4 ; =0x04001008
+ ldr r3, _022316F8 ; =0x0400100A
+ ldrh r0, [ip]
+ ldr r2, _022316FC ; =0x0400000A
+ ldr r1, _02231700 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022316EC: .word 0x02240508
+_022316F0: .word 0x020C908C
+_022316F4: .word 0x04001008
+_022316F8: .word 0x0400100A
+_022316FC: .word 0x0400000A
+_02231700: .word 0x0400000C
+
+ arm_func_start MOD13_02231704
+MOD13_02231704: ; 0x02231704
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02231734 ; =0x0224312C
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_02231680
+ mov r0, #0x2d
+ bl MOD13_0221F070
+ ldr r0, _02231738 ; =MOD13_02231644
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231734: .word 0x0224312C
+_02231738: .word MOD13_02231644
+
+ arm_func_start MOD13_0223173C
+MOD13_0223173C: ; 0x0223173C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02231780 ; =MOD13_022313C8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231780: .word MOD13_022313C8
+
+ arm_func_start MOD13_02231784
+MOD13_02231784: ; 0x02231784
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _022317C0 ; =MOD13_0223173C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022317C0: .word MOD13_0223173C
+
+ arm_func_start MOD13_022317C4
+MOD13_022317C4: ; 0x022317C4
+ bx lr
+
+ arm_func_start MOD13_022317C8
+MOD13_022317C8: ; 0x022317C8
+ bx lr
+
+ arm_func_start MOD13_022317CC
+MOD13_022317CC: ; 0x022317CC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022317C8
+ bl MOD13_022317C4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _02231810 ; =MOD13_02231784
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231810: .word MOD13_02231784
+
+ arm_func_start MOD13_02231814
+MOD13_02231814: ; 0x02231814
+ stmdb sp!, {lr}
+ sub sp, sp, #0x14
+ ldr r0, _02231894 ; =0x0223F580
+ add r3, sp, #8
+ ldmia r0, {r0, r1, r2}
+ stmia r3, {r0, r1, r2}
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #0x14
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #0x14
+ ldmneia sp!, {pc}
+ add r1, sp, #4
+ mov r0, #0
+ bl MOD13_02222F44
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ ldr r3, [sp, #4]
+ add r0, sp, #8
+ ldr r0, [r0, r3, lsl #2]
+ mov r2, r1
+ mvn r3, #0
+ bl MOD13_02235EFC
+ ldr r0, _02231898 ; =MOD13_022317CC
+ bl MOD13_02222FBC
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231894: .word 0x0223F580
+_02231898: .word MOD13_022317CC
+
+ arm_func_start MOD13_0223189C
+MOD13_0223189C: ; 0x0223189C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AEF4
+ ldr r0, _022318F4 ; =MOD13_02231814
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022318F4: .word MOD13_02231814
+
+ arm_func_start MOD13_022318F8
+MOD13_022318F8: ; 0x022318F8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02231964 ; =0x0224051C
+ ldr r1, _02231968 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr ip, _0223196C ; =0x04001008
+ ldr r3, _02231970 ; =0x0400100A
+ ldrh r0, [ip]
+ ldr r2, _02231974 ; =0x0400000A
+ ldr r1, _02231978 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231964: .word 0x0224051C
+_02231968: .word 0x020C908C
+_0223196C: .word 0x04001008
+_02231970: .word 0x0400100A
+_02231974: .word 0x0400000A
+_02231978: .word 0x0400000C
+
+ arm_func_start MOD13_0223197C
+MOD13_0223197C: ; 0x0223197C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02233570
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ bl MOD13_022318F8
+ mov r0, #0x31
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ ldr r0, [sp]
+ cmp r0, #2
+ beq _022319B8
+ bl MOD13_0221F4AC
+_022319B8:
+ ldr r0, [sp]
+ cmp r0, #1
+ bne _022319C8
+ bl MOD13_02233B3C
+_022319C8:
+ ldr r0, _022319D8 ; =MOD13_0223189C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022319D8: .word MOD13_0223189C
+
+ arm_func_start MOD13_022319DC
+MOD13_022319DC: ; 0x022319DC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02231A14 ; =0x02243130
+ ldrb r1, [r0]
+ add r1, r1, #1
+ strb r1, [r0]
+ ldrb r0, [r0]
+ cmp r0, #0x78
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ ldr r0, _02231A18 ; =MOD13_02231A9C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231A14: .word 0x02243130
+_02231A18: .word MOD13_02231A9C
+
+ arm_func_start MOD13_02231A1C
+MOD13_02231A1C: ; 0x02231A1C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, #2
+ bl MOD13_02222F6C
+ ldr r0, _02231A98 ; =MOD13_0223197C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231A98: .word MOD13_0223197C
+
+ arm_func_start MOD13_02231A9C
+MOD13_02231A9C: ; 0x02231A9C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02231ADC ; =MOD13_02231A1C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231ADC: .word MOD13_02231A1C
+
+ arm_func_start MOD13_02231AE0
+MOD13_02231AE0: ; 0x02231AE0
+ bx lr
+
+ arm_func_start MOD13_02231AE4
+MOD13_02231AE4: ; 0x02231AE4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022319DC
+ bl MOD13_02231AE0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02231B28 ; =MOD13_02231AE4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231B28: .word MOD13_02231AE4
+
+ arm_func_start MOD13_02231B2C
+MOD13_02231B2C: ; 0x02231B2C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02231B64 ; =0x02231AFC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231B64: .word 0x02231AFC
+
+ arm_func_start MOD13_02231B68
+MOD13_02231B68: ; 0x02231B68
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02231BE8 ; =0x02240530
+ ldr r1, _02231BEC ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02231BF0 ; =0x04001008
+ ldr ip, _02231BF4 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02231BF8 ; =0x04000008
+ ldr r2, _02231BFC ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02231C00 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231BE8: .word 0x02240530
+_02231BEC: .word 0x020C908C
+_02231BF0: .word 0x04001008
+_02231BF4: .word 0x0400100A
+_02231BF8: .word 0x04000008
+_02231BFC: .word 0x0400000A
+_02231C00: .word 0x0400000C
+
+ arm_func_start MOD13_02231C04
+MOD13_02231C04: ; 0x02231C04
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02231C44 ; =0x02243130
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_02231B68
+ mov r0, #8
+ bl MOD13_0221F4CC
+ mov r0, #0x29
+ bl MOD13_0221F070
+ mov r0, #0x10
+ bl MOD13_0223424C
+ ldr r0, _02231C48 ; =MOD13_02231B2C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231C44: .word 0x02243130
+_02231C48: .word MOD13_02231B2C
+
+ arm_func_start MOD13_02231C4C
+MOD13_02231C4C: ; 0x02231C4C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02231D18 ; =0x02243134
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02231C8C
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_02231C8C:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _02231D18 ; =0x02243134
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02231CC4
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_02231CC4:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _02231D18 ; =0x02243134
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02231CFC
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02231D1C ; =MOD13_02230714
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02231CFC:
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02231D20 ; =MOD13_0223269C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231D18: .word 0x02243134
+_02231D1C: .word MOD13_02230714
+_02231D20: .word MOD13_0223269C
+
+ arm_func_start MOD13_02231D24
+MOD13_02231D24: ; 0x02231D24
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ ldr r0, _02231D8C ; =0x02243134
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02231D68
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_02231D68:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02231D90 ; =MOD13_02231C4C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231D8C: .word 0x02243134
+_02231D90: .word MOD13_02231C4C
+
+ arm_func_start MOD13_02231D94
+MOD13_02231D94: ; 0x02231D94
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02231DB8 ; =MOD13_02231D24
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231DB8: .word MOD13_02231D24
+
+ arm_func_start MOD13_02231DBC
+MOD13_02231DBC: ; 0x02231DBC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _02231DE0
+ cmp r0, #1
+ beq _02231DEC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02231DE0:
+ mov r0, #7
+ bl MOD13_0223424C
+ b _02231E00
+_02231DEC:
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _02231E10 ; =0x02243134
+ mov r1, #1
+ strb r1, [r0]
+_02231E00:
+ ldr r0, _02231E14 ; =MOD13_02231D94
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231E10: .word 0x02243134
+_02231E14: .word MOD13_02231D94
+
+ arm_func_start MOD13_02231E18
+MOD13_02231E18: ; 0x02231E18
+ bx lr
+
+ arm_func_start MOD13_02231E1C
+MOD13_02231E1C: ; 0x02231E1C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02231E3C
+ mov r0, #1
+ bl MOD13_0221ECF4
+_02231E3C:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02231E1C
+ bl MOD13_02231E18
+ bl MOD13_02231DBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02231EAC ; =0x02231E60
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231EAC: .word 0x02231E60
+
+ arm_func_start MOD13_02231EB0
+MOD13_02231EB0: ; 0x02231EB0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0221F0EC
+ ldr r0, _02231EF8 ; =0x02231E7C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231EF8: .word 0x02231E7C
+
+ arm_func_start MOD13_02231EFC
+MOD13_02231EFC: ; 0x02231EFC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02231F54 ; =MOD13_02231EB0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231F54: .word MOD13_02231EB0
+
+ arm_func_start MOD13_02231F58
+MOD13_02231F58: ; 0x02231F58
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02231FF0 ; =0x02240544
+ ldr r1, _02231FF4 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _02231FF8 ; =0x0224055C
+ ldr r1, _02231FFC ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _02232000 ; =0x02240574
+ ldr r1, _02232004 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02232008 ; =0x04001008
+ ldr ip, _0223200C ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02232010 ; =0x04000008
+ ldr r2, _02232014 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02232018 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231FF0: .word 0x02240544
+_02231FF4: .word 0x020C8D4C
+_02231FF8: .word 0x0224055C
+_02231FFC: .word 0x020C9550
+_02232000: .word 0x02240574
+_02232004: .word 0x020C908C
+_02232008: .word 0x04001008
+_0223200C: .word 0x0400100A
+_02232010: .word 0x04000008
+_02232014: .word 0x0400000A
+_02232018: .word 0x0400000C
+
+ arm_func_start MOD13_0223201C
+MOD13_0223201C: ; 0x0223201C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0223206C ; =0x02243134
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_02231F58
+ mov r0, #8
+ bl MOD13_0221F4CC
+ mov r0, #0x38
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #1
+ bl MOD13_0221F124
+ mov r0, #0x27
+ bl MOD13_0221F070
+ ldr r0, _02232070 ; =MOD13_02231EFC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223206C: .word 0x02243134
+_02232070: .word MOD13_02231EFC
+
+ arm_func_start MOD13_02232074
+MOD13_02232074: ; 0x02232074
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _022320DC ; =0x02243138
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _022320AC
+ ldr r0, _022320E0 ; =MOD13_02232444
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022320AC:
+ mov r0, #0xb
+ bl MOD13_0223424C
+ bl MOD13_0221EC9C
+ ldr r1, _022320DC ; =0x02243138
+ mov r2, #0
+ ldr r0, _022320E4 ; =MOD13_022321B8
+ strb r2, [r1]
+ bl MOD13_022353A4
+ ldr r0, _022320E8 ; =0x02232514
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022320DC: .word 0x02243138
+_022320E0: .word MOD13_02232444
+_022320E4: .word MOD13_022321B8
+_022320E8: .word 0x02232514
+
+ arm_func_start MOD13_022320EC
+MOD13_022320EC: ; 0x022320EC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ beq _02232124
+ cmp r0, #1
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r1, _0223214C ; =0x02243138
+ mov r2, #3
+ mov r0, #6
+ strb r2, [r1]
+ bl MOD13_0223424C
+ b _02232138
+_02232124:
+ ldr r1, _0223214C ; =0x02243138
+ mov r2, #1
+ mov r0, #7
+ strb r2, [r1]
+ bl MOD13_0223424C
+_02232138:
+ bl MOD13_02235EB0
+ ldr r0, _02232150 ; =MOD13_02232074
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223214C: .word 0x02243138
+_02232150: .word MOD13_02232074
+
+ arm_func_start MOD13_02232154
+MOD13_02232154: ; 0x02232154
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0223217C ; =MOD13_02232444
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223217C: .word MOD13_02232444
+
+ arm_func_start MOD13_02232180
+MOD13_02232180: ; 0x02232180
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _022321B4 ; =MOD13_02232154
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022321B4: .word MOD13_02232154
+
+ arm_func_start MOD13_022321B8
+MOD13_022321B8: ; 0x022321B8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _022322AC ; =0x02243138
+ ldrb r2, [r1]
+ cmp r2, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ cmp r0, #3
+ addls pc, pc, r0, lsl #2
+ b _022322A4
+_022321E0: ; jump table
+ b _022321F0 ; case 0
+ b _02232234 ; case 1
+ b _02232250 ; case 2
+ b _02232288 ; case 3
+_022321F0:
+ mov r0, #3
+ strb r0, [r1]
+ bl MOD13_022341E8
+ mov r0, #0x12
+ bl MOD13_0223424C
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #0x10
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ bl MOD13_0221EC84
+ ldr r0, _022322B0 ; =MOD13_02232180
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02232234:
+ mov r0, #1
+ strb r0, [r1]
+ bl MOD13_022341E8
+ ldr r0, _022322B4 ; =MOD13_02232444
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02232250:
+ bl MOD13_022341E8
+ mov r0, #0
+ bl MOD13_022353A4
+ mov r1, #0
+ mov r0, #0x11
+ mov r2, #1
+ mvn r3, #0
+ str r1, [sp]
+ bl MOD13_02235EFC
+ bl MOD13_0221EC84
+ ldr r0, _022322B8 ; =MOD13_022320EC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02232288:
+ mov r0, #2
+ strb r0, [r1]
+ bl MOD13_022341E8
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _022322B4 ; =MOD13_02232444
+ bl MOD13_02222FBC
+_022322A4:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022322AC: .word 0x02243138
+_022322B0: .word MOD13_02232180
+_022322B4: .word MOD13_02232444
+_022322B8: .word MOD13_022320EC
+
+ arm_func_start MOD13_022322BC
+MOD13_022322BC: ; 0x022322BC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _022323BC ; =0x02243138
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _022322FC
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_022322FC:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_022353BC
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _022323BC ; =0x02243138
+ ldrb r0, [r0]
+ add r0, r0, #0xfe
+ and r0, r0, #0xff
+ cmp r0, #1
+ bhi _02232344
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_02232344:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _022323BC ; =0x02243138
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _0223237C
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022323C0 ; =MOD13_02230714
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0223237C:
+ cmp r0, #3
+ bne _022323A0
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022323C4 ; =MOD13_0223201C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022323A0:
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _022323C8 ; =MOD13_02231C04
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022323BC: .word 0x02243138
+_022323C0: .word MOD13_02230714
+_022323C4: .word MOD13_0223201C
+_022323C8: .word MOD13_02231C04
+
+ arm_func_start MOD13_022323CC
+MOD13_022323CC: ; 0x022323CC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ ldr r0, _0223243C ; =0x02243138
+ ldrb r0, [r0]
+ add r0, r0, #0xfe
+ and r0, r0, #0xff
+ cmp r0, #1
+ bhi _02232418
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_02232418:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02232440 ; =MOD13_022322BC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223243C: .word 0x02243138
+_02232440: .word MOD13_022322BC
+
+ arm_func_start MOD13_02232444
+MOD13_02232444: ; 0x02232444
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02232468 ; =MOD13_022323CC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232468: .word MOD13_022323CC
+
+ arm_func_start MOD13_0223246C
+MOD13_0223246C: ; 0x0223246C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022324C0 ; =0x02243138
+ ldrb r0, [r0]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _022324C0 ; =0x02243138
+ mov r1, #2
+ strb r1, [r0]
+ bl MOD13_022341E8
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _022324C4 ; =MOD13_02232444
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022324C0: .word 0x02243138
+_022324C4: .word MOD13_02232444
+
+ arm_func_start MOD13_022324C8
+MOD13_022324C8: ; 0x022324C8
+ bx lr
+
+ arm_func_start MOD13_022324CC
+MOD13_022324CC: ; 0x022324CC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _022324F4
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022324F4:
+ bl MOD13_02232730
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022324CC
+ bl MOD13_022324C8
+ bl MOD13_0223246C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02232560 ; =0x02232514
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232560: .word 0x02232514
+
+ arm_func_start MOD13_02232564
+MOD13_02232564: ; 0x02232564
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #2
+ bl MOD13_0221F0EC
+ ldr r0, _02232598 ; =0x02232530
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232598: .word 0x02232530
+
+ arm_func_start MOD13_0223259C
+MOD13_0223259C: ; 0x0223259C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _022325D4 ; =MOD13_02232564
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022325D4: .word MOD13_02232564
+
+ arm_func_start MOD13_022325D8
+MOD13_022325D8: ; 0x022325D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02232670 ; =0x02240588
+ ldr r1, _02232674 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _02232678 ; =0x022405A0
+ ldr r1, _0223267C ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _02232680 ; =0x022405B8
+ ldr r1, _02232684 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02232688 ; =0x04001008
+ ldr ip, _0223268C ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02232690 ; =0x04000008
+ ldr r2, _02232694 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02232698 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232670: .word 0x02240588
+_02232674: .word 0x020C8D4C
+_02232678: .word 0x022405A0
+_0223267C: .word 0x020C9550
+_02232680: .word 0x022405B8
+_02232684: .word 0x020C908C
+_02232688: .word 0x04001008
+_0223268C: .word 0x0400100A
+_02232690: .word 0x04000008
+_02232694: .word 0x0400000A
+_02232698: .word 0x0400000C
+
+ arm_func_start MOD13_0223269C
+MOD13_0223269C: ; 0x0223269C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x6c
+ ldr r0, _02232724 ; =0x02243138
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_022325D8
+ mov r0, #8
+ bl MOD13_0221F4CC
+ mov r0, #2
+ bl MOD13_0221F124
+ add r0, sp, #0x16
+ bl OS_GetOwnerInfo
+ add r1, sp, #0
+ mov r0, #0
+ mov r2, #0x16
+ bl MIi_CpuClear16
+ ldrh r2, [sp, #0x2e]
+ add r0, sp, #0x1a
+ add r1, sp, #0
+ mov r2, r2, lsl #1
+ bl MIi_CpuCopy16
+ add r0, sp, #0
+ mov r1, #0x28
+ bl MOD13_0221EFA8
+ mov r0, #0
+ bl MOD13_0221E694
+ ldr r0, _02232728 ; =MOD13_022321B8
+ bl MOD13_022354F4
+ mov r0, #0xb
+ bl MOD13_0223424C
+ ldr r0, _0223272C ; =MOD13_0223259C
+ bl MOD13_02222FBC
+ add sp, sp, #0x6c
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232724: .word 0x02243138
+_02232728: .word MOD13_022321B8
+_0223272C: .word MOD13_0223259C
+
+ arm_func_start MOD13_02232730
+MOD13_02232730: ; 0x02232730
+ ldr r0, _0223274C ; =0x027FFFA8
+ ldrh r0, [r0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_0223274C: .word 0x027FFFA8
+
+ arm_func_start MOD13_02232750
+MOD13_02232750: ; 0x02232750
+ stmdb sp!, {r4, lr}
+ ldr r1, _0223277C ; =0x02243140
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, #0x5000000
+ mov r2, #0x200
+ bl MIi_CpuCopy16
+ mov r1, r4
+ mov r0, #1
+ bl MOD13_0223C110
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0223277C: .word 0x02243140
+
+ arm_func_start MOD13_02232780
+MOD13_02232780: ; 0x02232780
+ ldr r2, _022327A0 ; =0x02243140
+ ldr ip, _022327A4 ; =MOD13_0223C1C4
+ str r0, [r2]
+ ldr r1, _022327A8 ; =MOD13_02232750
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ bx ip
+ .align 2, 0
+_022327A0: .word 0x02243140
+_022327A4: .word MOD13_0223C1C4
+_022327A8: .word MOD13_02232750
+
+ arm_func_start MOD13_022327AC
+MOD13_022327AC: ; 0x022327AC
+ stmdb sp!, {r4, lr}
+ ldr r1, _022327D8 ; =0x02243140
+ mov r4, r0
+ ldr r0, [r1]
+ ldr r1, [r1, #4]
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ mov r1, r4
+ mov r0, #1
+ bl MOD13_0223C110
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022327D8: .word 0x02243140
+
+ arm_func_start MOD13_022327DC
+MOD13_022327DC: ; 0x022327DC
+ stmdb sp!, {r4, lr}
+ add r4, r0, r1, lsl #5
+ mov r0, r2, lsl #5
+ ldr ip, _02232810 ; =0x02243140
+ add lr, r0, #0x5000000
+ ldr r1, _02232814 ; =MOD13_022327AC
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ str r4, [ip]
+ str lr, [ip, #4]
+ bl MOD13_0223C1C4
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02232810: .word 0x02243140
+_02232814: .word MOD13_022327AC
+
+ arm_func_start MOD13_02232818
+MOD13_02232818: ; 0x02232818
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02232874 ; =0x0224313C
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x604]
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ add r0, r1, #4
+ mov r1, #0x600
+ bl DC_FlushRange
+ ldr r0, _02232874 ; =0x0224313C
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #0x600
+ add r0, r0, #4
+ bl GX_LoadBG2Scr
+ ldr r0, _02232874 ; =0x0224313C
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x604]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232874: .word 0x0224313C
+
+ arm_func_start MOD13_02232878
+MOD13_02232878: ; 0x02232878
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr ip, _022328CC ; =0x0224313C
+ mov r7, r3
+ ldr r3, [ip]
+ mov r8, r0
+ add r0, r3, #4
+ add r6, r0, r1, lsl #1
+ mov r5, #0
+ cmp r7, #0
+ ldmleia sp!, {r4, r5, r6, r7, r8, pc}
+ mov r4, r2, lsl #1
+_022328A4:
+ mov r0, r8
+ mov r1, r6
+ mov r2, r4
+ bl MIi_CpuCopy16
+ add r5, r5, #1
+ cmp r5, r7
+ add r8, r8, #0x40
+ add r6, r6, #0x40
+ blt _022328A4
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_022328CC: .word 0x0224313C
+
+ arm_func_start MOD13_022328D0
+MOD13_022328D0: ; 0x022328D0
+ ldr r0, _022328E4 ; =0x0224313C
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x604]
+ bx lr
+ .align 2, 0
+_022328E4: .word 0x0224313C
+
+ arm_func_start MOD13_022328E8
+MOD13_022328E8: ; 0x022328E8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02232914 ; =0x0224313C
+ mov r0, #1
+ ldr r1, [r1]
+ ldr r1, [r1]
+ bl MOD13_0223C104
+ ldr r0, _02232914 ; =0x0224313C
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232914: .word 0x0224313C
+
+ arm_func_start MOD13_02232918
+MOD13_02232918: ; 0x02232918
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldr r0, _0223296C ; =0x00000608
+ mov r1, #4
+ bl MOD13_0223AFE0
+ mov ip, r0
+ ldr r3, _02232970 ; =0x0224313C
+ mov r0, r4
+ add r1, ip, #4
+ mov r2, #0x600
+ str ip, [r3]
+ bl MIi_CpuCopyFast
+ ldr r1, _02232974 ; =MOD13_02232818
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02232970 ; =0x0224313C
+ ldr r1, [r1]
+ str r0, [r1]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0223296C: .word 0x00000608
+_02232970: .word 0x0224313C
+_02232974: .word MOD13_02232818
+
+ arm_func_start MOD13_02232978
+MOD13_02232978: ; 0x02232978
+ stmdb sp!, {r4, lr}
+ ldr r1, _022329B0 ; =0x02243148
+ mov r4, r0
+ ldr r0, [r1]
+ mvn r1, #0
+ ldrh r3, [r0, #0x12]
+ ldrh r2, [r0, #0x10]
+ ldr r0, [r0]
+ add r3, r4, r3
+ bl MOD13_02239888
+ ldr r0, _022329B0 ; =0x02243148
+ ldr r0, [r0]
+ strb r4, [r0, #0x1a]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022329B0: .word 0x02243148
+
+ arm_func_start MOD13_022329B4
+MOD13_022329B4: ; 0x022329B4
+ ldr r2, _02232A8C ; =0x02243148
+ cmp r0, #4
+ ldr r3, [r2]
+ ldrh r3, [r3, #0x10]
+ strh r3, [r1]
+ ldrh r3, [r1]
+ add r3, r3, #0xc
+ strh r3, [r1, #4]
+ addls pc, pc, r0, lsl #2
+ bx lr
+_022329DC: ; jump table
+ bx lr ; case 0
+ b _022329F0 ; case 1
+ b _02232A24 ; case 2
+ b _02232A44 ; case 3
+ b _02232A68 ; case 4
+_022329F0:
+ ldr r3, [r2]
+ ldr r0, _02232A90 ; =0x0223F590
+ ldrh ip, [r3, #0x12]
+ ldrb r3, [r3, #0x1a]
+ add r3, ip, r3
+ strh r3, [r1, #2]
+ ldr r2, [r2]
+ ldrh r3, [r1, #2]
+ ldrb r2, [r2, #0x1b]
+ ldrb r0, [r0, r2]
+ add r0, r3, r0
+ strh r0, [r1, #6]
+ bx lr
+_02232A24:
+ ldr r0, [r2]
+ ldrh r0, [r0, #0x12]
+ sub r0, r0, #0xd
+ strh r0, [r1, #2]
+ ldr r0, [r2]
+ ldrh r0, [r0, #0x12]
+ strh r0, [r1, #6]
+ bx lr
+_02232A44:
+ ldr r0, [r2]
+ ldrh r2, [r0, #0x12]
+ ldrb r0, [r0, #0x19]
+ add r0, r2, r0
+ strh r0, [r1, #2]
+ ldrh r0, [r1, #2]
+ add r0, r0, #0xd
+ strh r0, [r1, #6]
+ bx lr
+_02232A68:
+ ldr r0, [r2]
+ ldrh r0, [r0, #0x12]
+ strh r0, [r1, #2]
+ ldr r0, [r2]
+ ldrh r2, [r1, #2]
+ ldrb r0, [r0, #0x19]
+ add r0, r2, r0
+ strh r0, [r1, #6]
+ bx lr
+ .align 2, 0
+_02232A8C: .word 0x02243148
+_02232A90: .word 0x0223F590
+
+ arm_func_start MOD13_02232A94
+MOD13_02232A94: ; 0x02232A94
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0xc
+ mov r5, #2
+ add r4, sp, #0
+_02232AA4:
+ mov r0, r5
+ mov r1, r4
+ bl MOD13_022329B4
+ mov r0, r4
+ bl MOD13_0223B320
+ cmp r0, #0
+ addne sp, sp, #0xc
+ movne r0, r5
+ ldmneia sp!, {r4, r5, pc}
+ add r5, r5, #1
+ cmp r5, #3
+ ble _02232AA4
+ mov r0, #0
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, pc}
+
+ arm_func_start MOD13_02232AE0
+MOD13_02232AE0: ; 0x02232AE0
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0xc
+ add r1, sp, #0
+ mov r0, #1
+ bl MOD13_022329B4
+ add r0, sp, #0
+ bl MOD13_0223B248
+ cmp r0, #0
+ addne sp, sp, #0xc
+ movne r0, #1
+ ldmneia sp!, {r4, r5, pc}
+ mov r5, #2
+ add r4, sp, #0
+_02232B14:
+ mov r0, r5
+ mov r1, r4
+ bl MOD13_022329B4
+ mov r0, r4
+ bl MOD13_0223B248
+ cmp r0, #0
+ addne sp, sp, #0xc
+ movne r0, r5
+ ldmneia sp!, {r4, r5, pc}
+ add r5, r5, #1
+ cmp r5, #3
+ ble _02232B14
+ add r1, sp, #0
+ mov r0, #4
+ bl MOD13_022329B4
+ add r0, sp, #0
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ movne r0, #4
+ moveq r0, #0
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, pc}
+
+ arm_func_start MOD13_02232B6C
+MOD13_02232B6C: ; 0x02232B6C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ add r0, sp, #0
+ bl MOD13_0223B14C
+ ldr r0, _02232BD8 ; =0x02243148
+ ldr r2, _02232BDC ; =0x0223F590
+ ldr ip, [r0]
+ ldrh r1, [sp, #2]
+ ldrb r3, [ip, #0x1b]
+ ldrh r0, [ip, #0x12]
+ ldrb r2, [r2, r3]
+ sub r1, r1, r0
+ mov r0, r2, lsr #1
+ subs r0, r1, r0
+ movmi r0, #0
+ bmi _02232BBC
+ ldrb r1, [ip, #0x19]
+ sub r1, r1, r2
+ cmp r0, r1
+ movge r0, r1
+_02232BBC:
+ bl MOD13_02232978
+ ldr r0, _02232BD8 ; =0x02243148
+ mov r1, #3
+ ldr r0, [r0]
+ strb r1, [r0, #0x1d]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232BD8: .word 0x02243148
+_02232BDC: .word 0x0223F590
+
+ arm_func_start MOD13_02232BE0
+MOD13_02232BE0: ; 0x02232BE0
+ ldr r1, _02232C08 ; =0x02243148
+ cmp r0, #2
+ ldr r1, [r1]
+ strb r0, [r1, #0x1c]
+ ldr r0, _02232C08 ; =0x02243148
+ moveq r1, #4
+ ldr r0, [r0]
+ movne r1, #6
+ strb r1, [r0, #0x1d]
+ bx lr
+ .align 2, 0
+_02232C08: .word 0x02243148
+
+ arm_func_start MOD13_02232C0C
+MOD13_02232C0C: ; 0x02232C0C
+ stmdb sp!, {r4, lr}
+ ldr r1, _02232C80 ; =0x02243148
+ ldr r1, [r1]
+ ldrb r1, [r1, #0x1a]
+ subs r4, r1, r0
+ rsbmi r4, r4, #0
+ cmp r4, #2
+ movlt r0, #0
+ blt _02232C48
+ cmp r4, #6
+ movge r0, #0x7f
+ bge _02232C48
+ rsb r1, r4, #6
+ mov r0, #0x7f
+ bl FX_DivS32
+_02232C48:
+ bl MOD13_0223422C
+ cmp r4, #2
+ mvnlt r1, #0xff
+ blt _02232C74
+ cmp r4, #6
+ movge r1, #0x100
+ bge _02232C74
+ rsb r1, r4, #6
+ mov r0, #0x200
+ bl FX_DivS32
+ sub r1, r0, #0x100
+_02232C74:
+ ldr r0, _02232C84 ; =0x0000FFFF
+ bl MOD13_02234208
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02232C80: .word 0x02243148
+_02232C84: .word 0x0000FFFF
+
+ arm_func_start MOD13_02232C88
+MOD13_02232C88: ; 0x02232C88
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r0, _02232D4C ; =0x0223F75C
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _02232D24
+ add r0, sp, #0
+ bl MOD13_0223B14C
+ ldr r0, _02232D50 ; =0x02243148
+ ldrh r1, [sp]
+ ldr r3, [r0]
+ ldrh r0, [r3, #0x10]
+ sub r0, r0, #0x1e
+ cmp r1, r0
+ blt _02232D24
+ ldrh r1, [sp, #2]
+ ldrh r0, [r3, #0x16]
+ ldrb r2, [r3, #0x18]
+ sub r0, r1, r0
+ adds r4, r2, r0
+ movmi r4, #0
+ bmi _02232CFC
+ ldrb r1, [r3, #0x1b]
+ ldr r0, _02232D54 ; =0x0223F590
+ ldrb r2, [r3, #0x19]
+ ldrb r0, [r0, r1]
+ sub r0, r2, r0
+ cmp r4, r0
+ movge r4, r0
+_02232CFC:
+ mov r0, r4
+ bl MOD13_02232C0C
+ mov r0, r4
+ bl MOD13_02232978
+ ldr r0, _02232D50 ; =0x02243148
+ mov r1, #2
+ ldr r0, [r0]
+ add sp, sp, #8
+ strb r1, [r0, #0x1d]
+ ldmia sp!, {r4, pc}
+_02232D24:
+ bl MOD13_022341E8
+ ldr r0, _02232D50 ; =0x02243148
+ mov r3, #0
+ ldr r2, [r0]
+ mov r1, #3
+ strb r3, [r2, #0x1c]
+ ldr r0, [r0]
+ strb r1, [r0, #0x1d]
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02232D4C: .word 0x0223F75C
+_02232D50: .word 0x02243148
+_02232D54: .word 0x0223F590
+
+ arm_func_start MOD13_02232D58
+MOD13_02232D58: ; 0x02232D58
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02232F10 ; =0x02243148
+ mov r2, #0
+ ldr r1, [r0]
+ strb r2, [r1, #0x1d]
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x1c]
+ cmp r0, #3
+ addls pc, pc, r0, lsl #2
+ b _02232F08
+_02232D84: ; jump table
+ b _02232D94 ; case 0
+ b _02232E5C ; case 1
+ b _02232E68 ; case 2
+ b _02232EBC ; case 3
+_02232D94:
+ ldrb r0, [r1, #0x1e]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02232AE0
+ cmp r0, #4
+ addls pc, pc, r0, lsl #2
+ b _02232F08
+_02232DB4: ; jump table
+ b _02232F08 ; case 0
+ b _02232DC8 ; case 1
+ b _02232E30 ; case 2
+ b _02232E40 ; case 3
+ b _02232E50 ; case 4
+_02232DC8:
+ ldr r0, _02232F10 ; =0x02243148
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1b]
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0x16
+ bl MOD13_0223424C
+ mov r0, #0
+ bl MOD13_0223422C
+ ldr r0, _02232F10 ; =0x02243148
+ mov r2, #1
+ ldr r1, [r0]
+ strb r2, [r1, #0x1d]
+ ldr r0, [r0]
+ add r0, r0, #0x14
+ bl MOD13_0223B14C
+ ldr r0, _02232F10 ; =0x02243148
+ mov r1, #1
+ ldr r3, [r0]
+ add sp, sp, #4
+ ldrb r2, [r3, #0x1a]
+ strb r2, [r3, #0x18]
+ ldr r0, [r0]
+ strb r1, [r0, #0x1c]
+ ldmia sp!, {pc}
+_02232E30:
+ mov r0, #2
+ bl MOD13_02232BE0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02232E40:
+ mov r0, #3
+ bl MOD13_02232BE0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02232E50:
+ bl MOD13_02232B6C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02232E5C:
+ bl MOD13_02232C88
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02232E68:
+ mov r0, #2
+ bl MOD13_02232A94
+ cmp r0, #2
+ beq _02232E9C
+ ldr r0, _02232F10 ; =0x02243148
+ mov r3, #5
+ ldr r2, [r0]
+ mov r1, #0
+ strb r3, [r2, #0x1d]
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x1c]
+ ldmia sp!, {pc}
+_02232E9C:
+ bl MOD13_02232AE0
+ cmp r0, #2
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #2
+ bl MOD13_02232BE0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02232EBC:
+ mov r0, #3
+ bl MOD13_02232A94
+ cmp r0, #3
+ beq _02232EF0
+ ldr r0, _02232F10 ; =0x02243148
+ mov r3, #7
+ ldr r2, [r0]
+ mov r1, #0
+ strb r3, [r2, #0x1d]
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x1c]
+ ldmia sp!, {pc}
+_02232EF0:
+ bl MOD13_02232AE0
+ cmp r0, #3
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #3
+ bl MOD13_02232BE0
+_02232F08:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232F10: .word 0x02243148
+
+ arm_func_start MOD13_02232F14
+MOD13_02232F14: ; 0x02232F14
+ ldr r0, _02232F28 ; =0x02243148
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x1e]
+ bx lr
+ .align 2, 0
+_02232F28: .word 0x02243148
+
+ arm_func_start MOD13_02232F2C
+MOD13_02232F2C: ; 0x02232F2C
+ ldr r0, _02232F40 ; =0x02243148
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x1e]
+ bx lr
+ .align 2, 0
+_02232F40: .word 0x02243148
+
+ arm_func_start MOD13_02232F44
+MOD13_02232F44: ; 0x02232F44
+ ldr ip, _02232F4C ; =MOD13_02232978
+ bx ip
+ .align 2, 0
+_02232F4C: .word MOD13_02232978
+
+ arm_func_start MOD13_02232F50
+MOD13_02232F50: ; 0x02232F50
+ ldr r0, _02232F60 ; =0x02243148
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1d]
+ bx lr
+ .align 2, 0
+_02232F60: .word 0x02243148
+
+ arm_func_start MOD13_02232F64
+MOD13_02232F64: ; 0x02232F64
+ ldr r0, _02232F74 ; =0x02243148
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1a]
+ bx lr
+ .align 2, 0
+_02232F74: .word 0x02243148
+
+ arm_func_start MOD13_02232F78
+MOD13_02232F78: ; 0x02232F78
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02232FB4 ; =0x02243148
+ mov r0, #0
+ ldr r1, [r1]
+ ldr r1, [r1, #0xc]
+ bl MOD13_0223C104
+ ldr r0, _02232FB4 ; =0x02243148
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl MOD13_02239AE8
+ ldr r0, _02232FB4 ; =0x02243148
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232FB4: .word 0x02243148
+
+ arm_func_start MOD13_02232FB8
+MOD13_02232FB8: ; 0x02232FB8
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r6, r0
+ mov r7, r1
+ mov r0, #0x20
+ mov r1, #4
+ mov r5, r2
+ mov r4, r3
+ bl MOD13_0223AFE0
+ ldr r2, _0223308C ; =0x02243148
+ ldr ip, [sp, #0x18]
+ str r0, [r2]
+ strb r6, [r0, #0x1b]
+ ldr r1, [r2]
+ mov r0, r5
+ strb r7, [r1, #0x19]
+ ldr r3, [r2]
+ mov r1, r4
+ strb ip, [r3, #0x1a]
+ ldr r2, [r2]
+ add r2, r2, #0x10
+ bl MOD13_0223ABC0
+ ldr r1, _02233090 ; =0x0223F58C
+ mov r0, #0
+ ldrb r1, [r1, r6]
+ mov r2, #1
+ bl MOD13_02239E0C
+ mov r2, r5
+ ldr r5, _0223308C ; =0x02243148
+ ldr r3, [sp, #0x18]
+ ldr r6, [r5]
+ mvn r1, #0
+ str r0, [r6]
+ ldr r0, [r5]
+ add r3, r4, r3
+ ldr r0, [r0]
+ bl MOD13_02239888
+ mov r0, r5
+ ldr r0, [r0]
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #1
+ bl MOD13_02239814
+ mov r0, #0
+ ldr r1, _02233094 ; =MOD13_02232D58
+ mov r2, r0
+ mov r3, #0x80
+ bl MOD13_0223C1C4
+ mov r1, r5
+ ldr r1, [r1]
+ str r0, [r1, #0xc]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223308C: .word 0x02243148
+_02233090: .word 0x0223F58C
+_02233094: .word MOD13_02232D58
+
+ arm_func_start MOD13_02233098
+MOD13_02233098: ; 0x02233098
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xac
+ ldr r1, _022332AC ; =0x0224314C
+ str r0, [sp]
+ ldr r2, [r1]
+ mov r1, #0x400
+ add r0, r2, #0xf00
+ add r2, r2, #0x1300
+ str r2, [sp, #4]
+ bl DC_InvalidateRange
+ ldr r0, [sp]
+ ldrh r1, [r0, #0xe]
+ mov r0, #0
+ str r0, [sp, #8]
+ cmp r1, #0
+ addle sp, sp, #0xac
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x18]
+ mov r0, #0x20
+ str r0, [sp, #0x14]
+ mov r0, #2
+ str r0, [sp, #0x24]
+ mov r0, #1
+ ldr fp, _022332B0 ; =0x0223F598
+ add r5, sp, #0x28
+ mov r6, #6
+ mov r4, #4
+ str r0, [sp, #0x1c]
+_02233114:
+ ldr r1, [sp]
+ ldr r0, [sp, #8]
+ add r0, r1, r0, lsl #2
+ ldr sl, [r0, #0x10]
+ ldrb r0, [sl, #0xc]
+ cmp r0, #0
+ beq _02233284
+ ldrh r0, [sl, #0x3c]
+ cmp r0, #0
+ bne _02233284
+ ldr sb, [sp, #0xc]
+ ldr r8, [sp, #4]
+ add r7, sl, #4
+_02233148:
+ mov r0, r7
+ add r1, r8, #0x20
+ mov r2, r6
+ bl memcmp
+ cmp r0, #0
+ beq _02233170
+ add r8, r8, #0x2a
+ add sb, sb, #1
+ cmp sb, #0x14
+ blt _02233148
+_02233170:
+ cmp sb, #0x14
+ bne _022331B4
+ ldr sb, [sp, #0x10]
+ ldr r7, [sp, #4]
+_02233180:
+ add r0, r7, #0x20
+ mov r1, fp
+ mov r2, r6
+ bl memcmp
+ cmp r0, #0
+ beq _022331A8
+ add r7, r7, #0x2a
+ add sb, sb, #1
+ cmp sb, #0x14
+ blt _02233180
+_022331A8:
+ cmp sb, #0x14
+ addeq sp, sp, #0xac
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_022331B4:
+ ldr r0, [sp, #4]
+ mov r1, #0x2a
+ mla r7, sb, r1, r0
+ add r0, sl, #4
+ add r1, r7, #0x20
+ mov r2, r6
+ bl MI_CpuCopy8
+ ldr r2, [sp, #0x14]
+ add r0, sl, #0xc
+ mov r1, r7
+ bl MI_CpuCopy8
+ ldr r1, [sp]
+ ldr r0, [sp, #8]
+ add r0, r1, r0, lsl #1
+ ldrh r0, [r0, #0x50]
+ strh r0, [r7, #0x26]
+ ldrh r0, [sl, #0x2c]
+ ands r0, r0, #0x10
+ ldreq r0, [sp, #0x18]
+ streqb r0, [r7, #0x28]
+ beq _02233284
+ ldr r0, [sp, #0x1c]
+ mov r1, sl
+ strb r0, [r7, #0x28]
+ mov r0, r5
+ bl WM_GetOtherElements
+ ldrb r8, [sp, #0x28]
+ ldr sb, [sp, #0x20]
+ cmp r8, #0
+ ble _02233284
+_0223322C:
+ add r1, r5, sb, lsl #3
+ ldrb r0, [r1, #4]
+ cmp r0, #0x30
+ ldreq r0, [sp, #0x24]
+ streqb r0, [r7, #0x28]
+ beq _02233284
+ cmp r0, #0xdd
+ bne _02233278
+ ldrb r0, [r1, #5]
+ cmp r0, #4
+ blo _02233278
+ ldr r0, [r1, #8]
+ ldr r1, _022332B4 ; =0x0223F594
+ mov r2, r4
+ bl memcmp
+ cmp r0, #0
+ ldreq r0, [sp, #0x24]
+ streqb r0, [r7, #0x28]
+ beq _02233284
+_02233278:
+ add sb, sb, #1
+ cmp sb, r8
+ blt _0223322C
+_02233284:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ ldr r0, [sp]
+ ldrh r1, [r0, #0xe]
+ ldr r0, [sp, #8]
+ cmp r0, r1
+ blt _02233114
+ add sp, sp, #0xac
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_022332AC: .word 0x0224314C
+_022332B0: .word 0x0223F598
+_022332B4: .word 0x0223F594
+
+ arm_func_start MOD13_022332B8
+MOD13_022332B8: ; 0x022332B8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r1, [r0, #2]
+ cmp r1, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r1, _02233338 ; =0x0224314C
+ ldr r1, [r1]
+ add r1, r1, #0x1000
+ ldrb r1, [r1, #0xe4c]
+ cmp r1, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldrh r1, [r0]
+ cmp r1, #0x26
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldrh r1, [r0, #8]
+ cmp r1, #4
+ beq _02233320
+ cmp r1, #5
+ bne _0223332C
+ bl MOD13_02233098
+ bl MOD13_0223344C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02233320:
+ bl MOD13_0223344C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0223332C:
+ bl OS_Terminate
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02233338: .word 0x0224314C
+
+ arm_func_start MOD13_0223333C
+MOD13_0223333C: ; 0x0223333C
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr r1, _02233394 ; =0x0224314C
+ mov r4, #0
+ ldr r1, [r1]
+ mov r8, r4
+ add r1, r1, #0x1300
+ str r1, [r0]
+ ldr r7, [r0]
+ ldr r6, _02233398 ; =0x0223F598
+ mov r5, #6
+_02233364:
+ mov r1, r6
+ mov r2, r5
+ add r0, r7, #0x20
+ bl memcmp
+ cmp r0, #0
+ add r8, r8, #1
+ addne r4, r4, #1
+ cmp r8, #0x14
+ add r7, r7, #0x2a
+ blt _02233364
+ mov r0, r4
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02233394: .word 0x0224314C
+_02233398: .word 0x0223F598
+
+ arm_func_start MOD13_0223339C
+MOD13_0223339C: ; 0x0223339C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _02233440 ; =0x0224314C
+ mov r3, #1
+ ldr r0, [r2]
+ ldr r1, _02233444 ; =0x0000168C
+ add r0, r0, #0x1000
+ strb r3, [r0, #0xe4c]
+ ldr r0, [r2]
+ add r0, r0, r1
+ bl WM_ReadStatus
+ ldr r0, _02233440 ; =0x0224314C
+ ldr r0, [r0]
+ add r0, r0, #0x1600
+ ldrh r0, [r0, #0x8c]
+ cmp r0, #2
+ beq _02233424
+ ldr r0, _02233448 ; =MOD13_022332B8
+ bl WM_Reset
+ cmp r0, #2
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {pc}
+_022333F8:
+ ldr r1, _02233440 ; =0x0224314C
+ ldr r0, _02233444 ; =0x0000168C
+ ldr r1, [r1]
+ add r0, r1, r0
+ bl WM_ReadStatus
+ ldr r0, _02233440 ; =0x0224314C
+ ldr r0, [r0]
+ add r0, r0, #0x1600
+ ldrh r0, [r0, #0x8c]
+ cmp r0, #2
+ bne _022333F8
+_02233424:
+ ldr r0, _02233448 ; =MOD13_022332B8
+ bl WM_End
+ cmp r0, #2
+ movne r0, #0
+ moveq r0, #1
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02233440: .word 0x0224314C
+_02233444: .word 0x0000168C
+_02233448: .word MOD13_022332B8
+
+ arm_func_start MOD13_0223344C
+MOD13_0223344C: ; 0x0223344C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02233480 ; =0x0224314C
+ ldr r1, _02233484 ; =0x00001648
+ ldr r2, [r0]
+ ldr r0, _02233488 ; =MOD13_022332B8
+ add r1, r2, r1
+ bl WM_StartScanEx
+ cmp r0, #2
+ moveq r0, #1
+ movne r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02233480: .word 0x0224314C
+_02233484: .word 0x00001648
+_02233488: .word MOD13_022332B8
+
+ arm_func_start MOD13_0223348C
+MOD13_0223348C: ; 0x0223348C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r1, _0223355C ; =0x0224314C
+ mov r0, #0
+ ldr r1, [r1]
+ mov r2, #0x348
+ add r1, r1, #0x1300
+ bl MIi_CpuClear16
+ ldr r0, _0223355C ; =0x0224314C
+ ldr r1, _02233560 ; =MOD13_022332B8
+ ldr r0, [r0]
+ mov r2, #3
+ bl WM_Initialize
+ cmp r0, #2
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {r4, r5, pc}
+_022334D0:
+ ldr r1, _0223355C ; =0x0224314C
+ ldr r0, _02233564 ; =0x0000168C
+ ldr r1, [r1]
+ add r0, r1, r0
+ bl WM_ReadStatus
+ ldr r0, _0223355C ; =0x0224314C
+ ldr r5, [r0]
+ add r0, r5, #0x1600
+ ldrh r0, [r0, #0x8c]
+ cmp r0, #2
+ bne _022334D0
+ ldr r0, _02233568 ; =0x00001648
+ ldr r4, _0223356C ; =0x0223F5A0
+ add lr, r5, r0
+ mov ip, #4
+_0223350C:
+ ldmia r4!, {r0, r1, r2, r3}
+ stmia lr!, {r0, r1, r2, r3}
+ subs ip, ip, #1
+ bne _0223350C
+ ldr r0, [r4]
+ add r1, r5, #0xf00
+ str r0, [lr]
+ add r0, r5, #0x1000
+ str r1, [r0, #0x648]
+ bl WM_GetDispersionScanPeriod
+ ldr r1, _0223355C ; =0x0224314C
+ ldr r1, [r1]
+ add r1, r1, #0x1600
+ strh r0, [r1, #0x50]
+ bl MOD13_0223344C
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223355C: .word 0x0224314C
+_02233560: .word MOD13_022332B8
+_02233564: .word 0x0000168C
+_02233568: .word 0x00001648
+_0223356C: .word 0x0223F5A0
+
+ arm_func_start MOD13_02233570
+MOD13_02233570: ; 0x02233570
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022335A8 ; =0x0224314C
+ ldr r0, [r0]
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+_0223358C:
+ bl WM_GetAllowedChannel
+ cmp r0, #0x8000
+ bne _0223358C
+ ldr r0, _022335A8 ; =0x0224314C
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022335A8: .word 0x0224314C
+
+ arm_func_start MOD13_022335AC
+MOD13_022335AC: ; 0x022335AC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022335E4 ; =0x0224314C
+ ldr r0, [r0]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _022335E8 ; =0x00001E60
+ mov r1, #0x20
+ bl MOD13_0223AFE0
+ ldr r1, _022335E4 ; =0x0224314C
+ str r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022335E4: .word 0x0224314C
+_022335E8: .word 0x00001E60
+
+ arm_func_start MOD13_022335EC
+MOD13_022335EC: ; 0x022335EC
+ cmp r0, #0x39
+ subls r0, r0, #0x30
+ bxls lr
+ cmp r0, #0x46
+ subls r0, r0, #0x37
+ subhi r0, r0, #0x57
+ bx lr
+
+ arm_func_start MOD13_02233608
+MOD13_02233608: ; 0x02233608
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #4
+ mov sl, r0
+ mov sb, r1
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ mov r8, #0
+ mov r7, r8
+ add r6, sp, #0
+ mov fp, r8
+ mov r4, #0x20
+ mov r5, #3
+_02233640:
+ mov r1, r6
+ mov r2, r5
+ add r0, sl, r7
+ bl MI_CpuCopy8
+ mov r2, fp
+ mov r1, r6
+_02233658:
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne _02233674
+ add r2, r2, #1
+ cmp r2, #3
+ strb r4, [r1], #1
+ blt _02233658
+_02233674:
+ mov r0, r6
+ bl atol
+ strb r0, [sb, r8]
+ add r8, r8, #1
+ cmp r8, #4
+ add r7, r7, #3
+ blt _02233640
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+
+ arm_func_start MOD13_02233698
+MOD13_02233698: ; 0x02233698
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #0x14
+ ldr r1, _02233800 ; =0x02243150
+ mov r7, r0
+ ldr r0, [r1]
+ mov r4, #0
+ add r2, r0, r7, lsl #8
+ ldrb r6, [r2, #0xe7]
+ mov r3, #1
+ add r0, sp, #4
+ mov r1, r4
+ mov r2, #0x10
+ mov r5, r3, lsl r7
+ bl MI_CpuFill8
+ add r0, sp, #4
+ mov r2, #1
+ str r2, [r0, r7, lsl #2]
+ cmp r7, #2
+ bgt _02233778
+ ldr r0, _02233800 ; =0x02243150
+ ldr r0, [r0]
+ ldrb r1, [r0, #0xef]
+ ands r1, r1, r5
+ movne r4, r2
+ cmp r6, #0xff
+ bne _0223373C
+ cmp r4, #0
+ beq _0223373C
+ ldrb r2, [r0, #0xef]
+ mvn r3, r5
+ ldr r1, _02233800 ; =0x02243150
+ and r2, r2, r3
+ strb r2, [r0, #0xef]
+ ldr r2, [r1]
+ mov r0, #1
+ ldrb r1, [r2, #0x1ef]
+ and r1, r1, r3
+ strb r1, [r2, #0x1ef]
+ str r0, [sp, #8]
+ str r0, [sp, #4]
+ b _02233778
+_0223373C:
+ cmp r6, #0xff
+ beq _02233778
+ cmp r4, #0
+ bne _02233778
+ ldrb r3, [r0, #0xef]
+ ldr r1, _02233800 ; =0x02243150
+ mov r2, #1
+ orr r3, r3, r5
+ strb r3, [r0, #0xef]
+ ldr r1, [r1]
+ ldrb r0, [r1, #0x1ef]
+ orr r0, r0, r5
+ strb r0, [r1, #0x1ef]
+ str r2, [sp, #8]
+ str r2, [sp, #4]
+_02233778:
+ mov r7, #0
+ mov r6, r7
+ ldr sb, _02233800 ; =0x02243150
+ add r5, sp, #4
+ mov r4, #0xfe
+ ldr r8, _02233804 ; =0x000004F8
+_02233790:
+ ldr r0, [r5, r7, lsl #2]
+ cmp r0, #0
+ beq _022337BC
+ ldr r1, [sb]
+ mov r2, r4
+ add r0, r1, r8
+ add r1, r1, r6
+ bl MATH_CalcCRC16
+ ldr r1, [sb]
+ add r1, r1, r7, lsl #8
+ strh r0, [r1, #0xfe]
+_022337BC:
+ add r7, r7, #1
+ cmp r7, #4
+ add r6, r6, #0x100
+ blt _02233790
+ mov r0, #0x100
+ mov r1, #0x20
+ bl MOD13_0223B004
+ mov r2, r0
+ ldr r0, _02233800 ; =0x02243150
+ add r1, sp, #4
+ ldr r0, [r0]
+ str r2, [sp]
+ bl FUN_02095CDC
+ add r0, sp, #0
+ bl MOD13_0223AF90
+ add sp, sp, #0x14
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ .align 2, 0
+_02233800: .word 0x02243150
+_02233804: .word 0x000004F8
+
+ arm_func_start MOD13_02233808
+MOD13_02233808: ; 0x02233808
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #0x18
+ ldr r1, _022338B4 ; =0x02243150
+ mov r0, #0
+ ldr r1, [r1]
+ mov r2, #0x400
+ bl MIi_CpuClear16
+ mov r3, #0
+ ldr r0, _022338B4 ; =0x02243150
+ mov r2, #0xff
+_02233830:
+ ldr r1, [r0]
+ add r1, r1, r3, lsl #8
+ add r3, r3, #1
+ strb r2, [r1, #0xe7]
+ cmp r3, #3
+ blt _02233830
+ add r0, sp, #0
+ bl FUN_020967A4
+ add r0, sp, #0
+ bl FUN_02095330
+ mov r6, #0
+ ldr r4, _022338B4 ; =0x02243150
+ mov r8, r0
+ mov r7, r6
+ mov r5, #0xe
+_0223386C:
+ ldr r1, [r4]
+ mov r0, r8
+ add r1, r1, r7
+ mov r2, r5
+ add r1, r1, #0xf0
+ bl MI_CpuCopy8
+ add r6, r6, #1
+ cmp r6, #2
+ add r7, r7, #0x100
+ blt _0223386C
+ mov r4, #0
+_02233898:
+ mov r0, r4
+ bl MOD13_02233698
+ add r4, r4, #1
+ cmp r4, #4
+ blt _02233898
+ add sp, sp, #0x18
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_022338B4: .word 0x02243150
+
+ arm_func_start MOD13_022338B8
+MOD13_022338B8: ; 0x022338B8
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r1, _022338F8 ; =0x02243150
+ mov r5, r0
+ ldr r0, [r1]
+ mov r1, #0
+ add r4, r0, r5, lsl #8
+ mov r0, r4
+ mov r2, #0xef
+ bl MI_CpuFill8
+ mov r1, #0xff
+ mov r0, r5
+ strb r1, [r4, #0xe7]
+ bl MOD13_02233698
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_022338F8: .word 0x02243150
+
+ arm_func_start MOD13_022338FC
+MOD13_022338FC: ; 0x022338FC
+ ldr r0, _02233908 ; =0x02243150
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_02233908: .word 0x02243150
+
+ arm_func_start MOD13_0223390C
+MOD13_0223390C: ; 0x0223390C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r1, _02233A20 ; =0x02243150
+ mov r5, r0
+ ldr r0, [r1]
+ mov r1, #0
+ add r4, r0, #0x400
+ mov r0, r4
+ mov r2, #0xef
+ bl MI_CpuFill8
+ mov r0, r5
+ add r1, r4, #0xd1
+ mov r2, #5
+ bl MI_CpuCopy8
+ add r0, r5, #6
+ add r1, r4, #0xd6
+ mov r2, #5
+ bl MI_CpuCopy8
+ add r0, r5, #0xc
+ add r1, r4, #0xdb
+ mov r2, #5
+ bl MI_CpuCopy8
+ add r0, r5, #0x12
+ add r1, r4, #0xe0
+ mov r2, #5
+ bl MI_CpuCopy8
+ add r0, r5, #0x18
+ add r1, r4, #0x60
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ add r0, r5, #0x39
+ add r1, r4, #0x80
+ mov r2, #0xd
+ bl MI_CpuCopy8
+ add r0, r5, #0x47
+ add r1, r4, #0x90
+ mov r2, #0xd
+ bl MI_CpuCopy8
+ add r0, r5, #0x55
+ add r1, r4, #0xa0
+ mov r2, #0xd
+ bl MI_CpuCopy8
+ add r0, r5, #0x63
+ add r1, r4, #0xb0
+ mov r2, #0xd
+ bl MI_CpuCopy8
+ add r0, r5, #0x71
+ add r1, r4, #0x40
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ ldrb r1, [r4, #0xe6]
+ mov r3, #1
+ add r0, r4, #0xf0
+ bic r1, r1, #3
+ orr r1, r1, #2
+ strb r1, [r4, #0xe6]
+ ldrb ip, [r4, #0xe6]
+ mov r1, #0
+ mov r2, #4
+ bic ip, ip, #0xfc
+ strb ip, [r4, #0xe6]
+ strb r3, [r4, #0xe7]
+ bl MI_CpuFill8
+ mov r0, #1
+ strb r0, [r4, #0xf5]
+ strb r0, [r4, #0xf6]
+ bl MOD13_02233B3C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02233A20: .word 0x02243150
+
+ arm_func_start MOD13_02233A24
+MOD13_02233A24: ; 0x02233A24
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr r1, _02233B38 ; =0x02243150
+ mov r6, r0
+ ldr r0, [r1]
+ mov r1, #0
+ add r5, r0, #0x400
+ mov r0, r5
+ mov r2, #0xef
+ bl MI_CpuFill8
+ mov r0, r6
+ add r1, r5, #0x40
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ ldr r0, [r6, #0x20]
+ cmp r0, #1
+ beq _02233A78
+ cmp r0, #2
+ beq _02233A90
+ cmp r0, #3
+ beq _02233AA8
+ b _02233AC0
+_02233A78:
+ ldrb r0, [r5, #0xe6]
+ mov r4, #5
+ bic r0, r0, #3
+ orr r0, r0, #1
+ strb r0, [r5, #0xe6]
+ b _02233AD0
+_02233A90:
+ ldrb r0, [r5, #0xe6]
+ mov r4, #0xd
+ bic r0, r0, #3
+ orr r0, r0, #2
+ strb r0, [r5, #0xe6]
+ b _02233AD0
+_02233AA8:
+ ldrb r0, [r5, #0xe6]
+ mov r4, #0x10
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strb r0, [r5, #0xe6]
+ b _02233AD0
+_02233AC0:
+ ldrb r0, [r5, #0xe6]
+ mov r4, #0
+ bic r0, r0, #3
+ strb r0, [r5, #0xe6]
+_02233AD0:
+ ldrb r0, [r5, #0xe6]
+ add r7, r5, #0x80
+ add r6, r6, #0x28
+ bic r0, r0, #0xfc
+ strb r0, [r5, #0xe6]
+ mov r8, #0
+_02233AE8:
+ mov r0, r6
+ mov r1, r7
+ mov r2, r4
+ bl MI_CpuCopy8
+ add r8, r8, #1
+ cmp r8, #4
+ add r7, r7, #0x10
+ add r6, r6, #0x20
+ blt _02233AE8
+ mov r3, #2
+ add r0, r5, #0xf0
+ mov r1, #0
+ mov r2, #4
+ strb r3, [r5, #0xe7]
+ bl MI_CpuFill8
+ mov r0, #1
+ strb r0, [r5, #0xf5]
+ strb r0, [r5, #0xf6]
+ bl MOD13_02233B3C
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02233B38: .word 0x02243150
+
+ arm_func_start MOD13_02233B3C
+MOD13_02233B3C: ; 0x02233B3C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r0, _02233C20 ; =0x02243150
+ mov r2, #0x78
+ ldr r1, [r0]
+ add r5, r1, #0x400
+ ldrb r0, [r5, #0xf4]
+ mov ip, r5
+ add r4, r1, r0, lsl #8
+ mov r3, r4
+_02233B64:
+ ldrb r1, [ip], #1
+ ldrb r0, [ip], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _02233B64
+ ldrb r0, [r5, #0xf5]
+ cmp r0, #0
+ beq _02233BB4
+ add r0, r4, #0xc0
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ add r0, r4, #0xc4
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ mov r0, #0
+ strb r0, [r4, #0xd0]
+ b _02233BE0
+_02233BB4:
+ add r0, r5, #0xc0
+ add r1, r4, #0xc0
+ mov r2, #4
+ bl MI_CpuCopy8
+ add r0, r5, #0xc4
+ add r1, r4, #0xc4
+ mov r2, #4
+ bl MI_CpuCopy8
+ add r0, r5, #0xf0
+ bl FUN_02095BE0
+ strb r0, [r4, #0xd0]
+_02233BE0:
+ ldrb r0, [r5, #0xf6]
+ cmp r0, #0
+ beq _02233C00
+ add r0, r4, #0xc8
+ mov r1, #0
+ mov r2, #8
+ bl MI_CpuFill8
+ b _02233C10
+_02233C00:
+ add r0, r5, #0xc8
+ add r1, r4, #0xc8
+ mov r2, #8
+ bl MI_CpuCopy8
+_02233C10:
+ ldrb r0, [r5, #0xf4]
+ bl MOD13_02233698
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02233C20: .word 0x02243150
+
+ arm_func_start MOD13_02233C24
+MOD13_02233C24: ; 0x02233C24
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r1, _02233D04 ; =0x02243150
+ mov r3, #0x78
+ ldr r5, [r1]
+ add r4, r5, r0, lsl #8
+ mov lr, r4
+ add ip, r5, #0x400
+_02233C44:
+ ldrb r2, [lr], #1
+ ldrb r1, [lr], #1
+ subs r3, r3, #1
+ strb r2, [ip], #1
+ strb r1, [ip], #1
+ bne _02233C44
+ ldr r1, _02233D08 ; =0x0223F5E4
+ strb r0, [r5, #0x4f4]
+ add r0, r4, #0xc0
+ mov r2, #4
+ bl memcmp
+ cmp r0, #0
+ ldrne r0, _02233D04 ; =0x02243150
+ movne r1, #0
+ ldrne r0, [r0]
+ mov r2, #4
+ strneb r1, [r0, #0x4f5]
+ ldreq r0, _02233D04 ; =0x02243150
+ moveq r1, #1
+ ldreq r0, [r0]
+ streqb r1, [r0, #0x4f5]
+ ldr r1, _02233D08 ; =0x0223F5E4
+ add r0, r4, #0xc8
+ bl memcmp
+ cmp r0, #0
+ bne _02233CC4
+ ldr r1, _02233D08 ; =0x0223F5E4
+ add r0, r4, #0xcc
+ mov r2, #4
+ bl memcmp
+ cmp r0, #0
+ beq _02233CD8
+_02233CC4:
+ ldr r0, _02233D04 ; =0x02243150
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x4f6]
+ b _02233CE8
+_02233CD8:
+ ldr r0, _02233D04 ; =0x02243150
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x4f6]
+_02233CE8:
+ ldr r1, _02233D04 ; =0x02243150
+ ldrb r0, [r4, #0xd0]
+ ldr r1, [r1]
+ add r1, r1, #0x4f0
+ bl FUN_02095BB0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02233D04: .word 0x02243150
+_02233D08: .word 0x0223F5E4
+
+ arm_func_start MOD13_02233D0C
+MOD13_02233D0C: ; 0x02233D0C
+ ldr r1, _02233D20 ; =0x02243150
+ ldr r1, [r1]
+ add r0, r1, r0, lsl #8
+ ldrb r0, [r0, #0xe7]
+ bx lr
+ .align 2, 0
+_02233D20: .word 0x02243150
+
+ arm_func_start MOD13_02233D24
+MOD13_02233D24: ; 0x02233D24
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r1, _02233D64 ; =0x02243150
+ ldr r2, _02233D68 ; =0x000004CC
+ ldr r3, [r1]
+ ldr r1, _02233D6C ; =0x022405CC
+ add ip, r3, r2
+ ldrb r2, [ip, #2]
+ str r2, [sp]
+ ldrb r2, [ip, #3]
+ str r2, [sp, #4]
+ ldrb r2, [r3, #0x4cc]
+ ldrb r3, [ip, #1]
+ bl OS_SPrintf
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02233D64: .word 0x02243150
+_02233D68: .word 0x000004CC
+_02233D6C: .word 0x022405CC
+
+ arm_func_start MOD13_02233D70
+MOD13_02233D70: ; 0x02233D70
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r1, _02233DB0 ; =0x02243150
+ ldr r2, _02233DB4 ; =0x000004C8
+ ldr r3, [r1]
+ ldr r1, _02233DB8 ; =0x022405CC
+ add ip, r3, r2
+ ldrb r2, [ip, #2]
+ str r2, [sp]
+ ldrb r2, [ip, #3]
+ str r2, [sp, #4]
+ ldrb r2, [r3, #0x4c8]
+ ldrb r3, [ip, #1]
+ bl OS_SPrintf
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02233DB0: .word 0x02243150
+_02233DB4: .word 0x000004C8
+_02233DB8: .word 0x022405CC
+
+ arm_func_start MOD13_02233DBC
+MOD13_02233DBC: ; 0x02233DBC
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r1, _02233DFC ; =0x02243150
+ ldr r2, _02233E00 ; =0x000004C4
+ ldr r3, [r1]
+ ldr r1, _02233E04 ; =0x022405CC
+ add ip, r3, r2
+ ldrb r2, [ip, #2]
+ str r2, [sp]
+ ldrb r2, [ip, #3]
+ str r2, [sp, #4]
+ ldrb r2, [r3, #0x4c4]
+ ldrb r3, [ip, #1]
+ bl OS_SPrintf
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02233DFC: .word 0x02243150
+_02233E00: .word 0x000004C4
+_02233E04: .word 0x022405CC
+
+ arm_func_start MOD13_02233E08
+MOD13_02233E08: ; 0x02233E08
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r2, _02233E44 ; =0x02243150
+ ldr r1, _02233E48 ; =0x022405CC
+ ldr r3, [r2]
+ add ip, r3, #0x4f0
+ ldrb r2, [ip, #2]
+ str r2, [sp]
+ ldrb r2, [ip, #3]
+ str r2, [sp, #4]
+ ldrb r2, [r3, #0x4f0]
+ ldrb r3, [ip, #1]
+ bl OS_SPrintf
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02233E44: .word 0x02243150
+_02233E48: .word 0x022405CC
+
+ arm_func_start MOD13_02233E4C
+MOD13_02233E4C: ; 0x02233E4C
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r2, _02233E88 ; =0x02243150
+ ldr r1, _02233E8C ; =0x022405CC
+ ldr r3, [r2]
+ add ip, r3, #0x4c0
+ ldrb r2, [ip, #2]
+ str r2, [sp]
+ ldrb r2, [ip, #3]
+ str r2, [sp, #4]
+ ldrb r2, [r3, #0x4c0]
+ ldrb r3, [ip, #1]
+ bl OS_SPrintf
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02233E88: .word 0x02243150
+_02233E8C: .word 0x022405CC
+
+ arm_func_start MOD13_02233E90
+MOD13_02233E90: ; 0x02233E90
+ ldr r2, _02233EAC ; =0x02243150
+ mov r1, r0
+ ldr r0, [r2]
+ ldr ip, _02233EB0 ; =0x020CE3E0
+ mov r2, #0x20
+ add r0, r0, #0x440
+ bx ip
+ .align 2, 0
+_02233EAC: .word 0x02243150
+_02233EB0: .word 0x020CE3E0
+
+ arm_func_start MOD13_02233EB4
+MOD13_02233EB4: ; 0x02233EB4
+ ldr r2, _02233ECC ; =0x02243150
+ ldr r1, _02233ED0 ; =0x000004CC
+ ldr r2, [r2]
+ ldr ip, _02233ED4 ; =MOD13_02233608
+ add r1, r2, r1
+ bx ip
+ .align 2, 0
+_02233ECC: .word 0x02243150
+_02233ED0: .word 0x000004CC
+_02233ED4: .word MOD13_02233608
+
+ arm_func_start MOD13_02233ED8
+MOD13_02233ED8: ; 0x02233ED8
+ ldr r2, _02233EF0 ; =0x02243150
+ ldr r1, _02233EF4 ; =0x000004C8
+ ldr r2, [r2]
+ ldr ip, _02233EF8 ; =MOD13_02233608
+ add r1, r2, r1
+ bx ip
+ .align 2, 0
+_02233EF0: .word 0x02243150
+_02233EF4: .word 0x000004C8
+_02233EF8: .word MOD13_02233608
+
+ arm_func_start MOD13_02233EFC
+MOD13_02233EFC: ; 0x02233EFC
+ ldr r2, _02233F14 ; =0x02243150
+ ldr r1, _02233F18 ; =0x000004C4
+ ldr r2, [r2]
+ ldr ip, _02233F1C ; =MOD13_02233608
+ add r1, r2, r1
+ bx ip
+ .align 2, 0
+_02233F14: .word 0x02243150
+_02233F18: .word 0x000004C4
+_02233F1C: .word MOD13_02233608
+
+ arm_func_start MOD13_02233F20
+MOD13_02233F20: ; 0x02233F20
+ ldr r1, _02233F34 ; =0x02243150
+ ldr ip, _02233F38 ; =MOD13_02233608
+ ldr r1, [r1]
+ add r1, r1, #0x4f0
+ bx ip
+ .align 2, 0
+_02233F34: .word 0x02243150
+_02233F38: .word MOD13_02233608
+
+ arm_func_start MOD13_02233F3C
+MOD13_02233F3C: ; 0x02233F3C
+ ldr r1, _02233F50 ; =0x02243150
+ ldr ip, _02233F54 ; =MOD13_02233608
+ ldr r1, [r1]
+ add r1, r1, #0x4c0
+ bx ip
+ .align 2, 0
+_02233F50: .word 0x02243150
+_02233F54: .word MOD13_02233608
+
+ arm_func_start MOD13_02233F58
+MOD13_02233F58: ; 0x02233F58
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr r1, _02234100 ; =0x02243150
+ mov r6, r0
+ ldr r0, [r1]
+ mov r1, #0
+ add r0, r0, #0x480
+ mov r2, #0x10
+ bl MI_CpuFill8
+ mov r0, r6
+ mov r1, #0x20
+ bl MOD13_0223BDA4
+ mov r4, r0
+ cmp r4, #0xa
+ bgt _02233FA4
+ cmp r4, #0xa
+ bge _02233FC0
+ cmp r4, #0
+ beq _02233FC0
+ b _0223401C
+_02233FA4:
+ cmp r4, #0x1a
+ bgt _02233FB8
+ cmp r4, #0x1a
+ beq _02233FC0
+ b _0223401C
+_02233FB8:
+ cmp r4, #0x20
+ bne _0223401C
+_02233FC0:
+ ldr r0, _02234100 ; =0x02243150
+ cmp r4, #0
+ ldr r2, [r0]
+ mov r5, #0
+ ldrb r1, [r2, #0x4e6]
+ bic r1, r1, #0xfc
+ strb r1, [r2, #0x4e6]
+ ldr r0, [r0]
+ add r8, r0, #0x480
+ ble _02234048
+_02233FE8:
+ ldrb r0, [r6, r5]
+ bl MOD13_022335EC
+ add r1, r5, #1
+ mov r7, r0
+ ldrb r0, [r6, r1]
+ bl MOD13_022335EC
+ add r0, r0, r7, lsl #4
+ add r5, r5, #2
+ strb r0, [r8]
+ cmp r5, r4
+ add r8, r8, #1
+ blt _02233FE8
+ b _02234048
+_0223401C:
+ ldr r1, _02234100 ; =0x02243150
+ mov r0, r6
+ ldr r5, [r1]
+ mov r2, #0x10
+ ldrb r3, [r5, #0x4e6]
+ bic r3, r3, #0xfc
+ orr r3, r3, #4
+ strb r3, [r5, #0x4e6]
+ ldr r1, [r1]
+ add r1, r1, #0x480
+ bl MI_CpuCopy8
+_02234048:
+ cmp r4, #5
+ bgt _02234064
+ cmp r4, #5
+ bge _022340AC
+ cmp r4, #0
+ beq _02234094
+ b _022340E4
+_02234064:
+ cmp r4, #0xd
+ bgt _02234088
+ cmp r4, #0xa
+ blt _022340E4
+ cmp r4, #0xa
+ beq _022340AC
+ cmp r4, #0xd
+ beq _022340C8
+ b _022340E4
+_02234088:
+ cmp r4, #0x1a
+ beq _022340C8
+ b _022340E4
+_02234094:
+ ldr r0, _02234100 ; =0x02243150
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x4e6]
+ bic r0, r0, #3
+ strb r0, [r1, #0x4e6]
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_022340AC:
+ ldr r0, _02234100 ; =0x02243150
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x4e6]
+ bic r0, r0, #3
+ orr r0, r0, #1
+ strb r0, [r1, #0x4e6]
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_022340C8:
+ ldr r0, _02234100 ; =0x02243150
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x4e6]
+ bic r0, r0, #3
+ orr r0, r0, #2
+ strb r0, [r1, #0x4e6]
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_022340E4:
+ ldr r0, _02234100 ; =0x02243150
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x4e6]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strb r0, [r1, #0x4e6]
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02234100: .word 0x02243150
+
+ arm_func_start MOD13_02234104
+MOD13_02234104: ; 0x02234104
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02234138 ; =0x02243150
+ mov r2, #0x20
+ ldr r1, [r1]
+ add r1, r1, #0x440
+ bl MI_CpuCopy8
+ ldr r0, _02234138 ; =0x02243150
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x4e7]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02234138: .word 0x02243150
+
+ arm_func_start MOD13_0223413C
+MOD13_0223413C: ; 0x0223413C
+ ldr r1, _0223414C ; =0x02243150
+ ldr r1, [r1]
+ strb r0, [r1, #0x4f6]
+ bx lr
+ .align 2, 0
+_0223414C: .word 0x02243150
+
+ arm_func_start MOD13_02234150
+MOD13_02234150: ; 0x02234150
+ ldr r1, _02234160 ; =0x02243150
+ ldr r1, [r1]
+ strb r0, [r1, #0x4f5]
+ bx lr
+ .align 2, 0
+_02234160: .word 0x02243150
+
+ arm_func_start MOD13_02234164
+MOD13_02234164: ; 0x02234164
+ ldr r0, _02234174 ; =0x02243150
+ ldr r0, [r0]
+ add r0, r0, #0x400
+ bx lr
+ .align 2, 0
+_02234174: .word 0x02243150
+
+ arm_func_start MOD13_02234178
+MOD13_02234178: ; 0x02234178
+ ldr ip, _02234184 ; =MOD13_0223AF90
+ ldr r0, _02234188 ; =0x02243150
+ bx ip
+ .align 2, 0
+_02234184: .word MOD13_0223AF90
+_02234188: .word 0x02243150
+
+ arm_func_start MOD13_0223418C
+MOD13_0223418C: ; 0x0223418C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022341CC ; =0x000006F8
+ mov r1, #0x20
+ bl MOD13_0223B004
+ ldr r1, _022341D0 ; =0x02243150
+ ldr r2, _022341D4 ; =0x000004F8
+ str r0, [r1]
+ ldr r1, _022341D8 ; =0x0000A001
+ add r0, r0, r2
+ bl MATHi_CRC16InitTableRev
+ ldr r0, _022341D0 ; =0x02243150
+ ldr r0, [r0]
+ bl FUN_02095D68
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022341CC: .word 0x000006F8
+_022341D0: .word 0x02243150
+_022341D4: .word 0x000004F8
+_022341D8: .word 0x0000A001
+
+ arm_func_start MOD13_022341DC
+MOD13_022341DC: ; 0x022341DC
+ ldr ip, _022341E4 ; =0x020C01A0
+ bx ip
+ .align 2, 0
+_022341E4: .word 0x020C01A0
+
+ arm_func_start MOD13_022341E8
+MOD13_022341E8: ; 0x022341E8
+ ldr r0, _02234200 ; =0x02243154
+ ldr ip, _02234204 ; =0x020C10A4
+ ldr r0, [r0]
+ mov r1, #0
+ add r0, r0, #0x90
+ bx ip
+ .align 2, 0
+_02234200: .word 0x02243154
+_02234204: .word 0x020C10A4
+
+ arm_func_start MOD13_02234208
+MOD13_02234208: ; 0x02234208
+ ldr r2, _02234224 ; =0x02243154
+ ldr ip, _02234228 ; =0x020C0EA4
+ ldr r3, [r2]
+ mov r2, r1
+ mov r1, r0
+ add r0, r3, #0x90
+ bx ip
+ .align 2, 0
+_02234224: .word 0x02243154
+_02234228: .word 0x020C0EA4
+
+ arm_func_start MOD13_0223422C
+MOD13_0223422C: ; 0x0223422C
+ ldr r2, _02234244 ; =0x02243154
+ mov r1, r0
+ ldr r0, [r2]
+ ldr ip, _02234248 ; =0x020C0F40
+ add r0, r0, #0x90
+ bx ip
+ .align 2, 0
+_02234244: .word 0x02243154
+_02234248: .word 0x020C0F40
+
+ arm_func_start MOD13_0223424C
+MOD13_0223424C: ; 0x0223424C
+ ldr r1, _02234268 ; =0x02243154
+ mov r2, r0
+ ldr r0, [r1]
+ ldr ip, _0223426C ; =0x020C3888
+ mov r1, #0
+ add r0, r0, #0x90
+ bx ip
+ .align 2, 0
+_02234268: .word 0x02243154
+_0223426C: .word 0x020C3888
+
+ arm_func_start MOD13_02234270
+MOD13_02234270: ; 0x02234270
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _0223429C ; =0x02243154
+ mov r0, #0
+ ldr r1, [r1]
+ ldr r1, [r1, #0x98]
+ bl MOD13_0223C110
+ ldr r0, _0223429C ; =0x02243154
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223429C: .word 0x02243154
+
+ arm_func_start MOD13_022342A0
+MOD13_022342A0: ; 0x022342A0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0x9c
+ mov r1, #4
+ bl MOD13_0223B004
+ ldr r2, _0223432C ; =0x02243154
+ add r1, sp, #0
+ str r0, [r2]
+ ldr r0, _02234330 ; =0x022405DC
+ mov r2, #0x20
+ bl MOD13_022393D8
+ ldr r1, _0223432C ; =0x02243154
+ ldr r1, [r1]
+ str r0, [r1, #0x94]
+ bl FUN_020C01D0
+ ldr r0, _0223432C ; =0x02243154
+ ldr r0, [r0]
+ ldr r1, [r0, #0x94]
+ bl FUN_020C2444
+ mov r0, #0
+ bl FUN_020C39CC
+ ldr r0, _0223432C ; =0x02243154
+ ldr r0, [r0]
+ add r0, r0, #0x90
+ bl FUN_020C0F80
+ mov r0, #0
+ ldr r1, _02234334 ; =MOD13_022341DC
+ mov r2, r0
+ mov r3, #0xc8
+ bl MOD13_0223C1C4
+ ldr r1, _0223432C ; =0x02243154
+ ldr r1, [r1]
+ str r0, [r1, #0x98]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223432C: .word 0x02243154
+_02234330: .word 0x022405DC
+_02234334: .word MOD13_022341DC
+
+ arm_func_start MOD13_02234338
+MOD13_02234338: ; 0x02234338
+ stmdb sp!, {r4, lr}
+ ldr r1, _02234380 ; =0x02243158
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, #0x600
+ bl DC_FlushRange
+ ldr r0, _02234380 ; =0x02243158
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #0x600
+ bl GXS_LoadBG1Scr
+ ldr r0, _02234380 ; =0x02243158
+ ldr r0, [r0]
+ bl MOD13_0223939C
+ mov r1, r4
+ mov r0, #1
+ bl MOD13_0223C110
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02234380: .word 0x02243158
+
+ arm_func_start MOD13_02234384
+MOD13_02234384: ; 0x02234384
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _022343C8 ; =0x02240658
+ ldr r0, [r1, r0, lsl #2]
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r2, _022343CC ; =0x02243158
+ ldr r1, _022343D0 ; =MOD13_02234338
+ str r0, [r2]
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022343C8: .word 0x02240658
+_022343CC: .word 0x02243158
+_022343D0: .word MOD13_02234338
+
+ arm_func_start MOD13_022343D4
+MOD13_022343D4: ; 0x022343D4
+ ldr r0, _022343FC ; =0x0224315C
+ ldr r0, [r0]
+ cmp r0, #0
+ moveq r0, #1
+ bxeq lr
+ ldrb r0, [r0, #0x18]
+ cmp r0, #0
+ moveq r0, #1
+ movne r0, #0
+ bx lr
+ .align 2, 0
+_022343FC: .word 0x0224315C
+
+ arm_func_start MOD13_02234400
+MOD13_02234400: ; 0x02234400
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r1, _022344C8 ; =0x0224315C
+ mov r5, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r0, [sp]
+ ldr r6, _022344C8 ; =0x0224315C
+ sub r0, r0, #8
+ ldr r7, _022344CC ; =0x0223F608
+ mov r4, #0
+ str r0, [sp]
+ mvn r8, #0
+_02234444:
+ add r0, r7, r4, lsl #2
+ ldr r1, [r6]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r4, lsl #2]
+ ldr r2, [sp]
+ mov r1, r8
+ bl MOD13_02239888
+ add r4, r4, #1
+ cmp r4, #5
+ blt _02234444
+ ldr r1, [sp]
+ ldr r0, _022344D0 ; =0x000001D6
+ cmp r1, r0
+ addgt sp, sp, #8
+ ldmgtia sp!, {r4, r5, r6, r7, r8, pc}
+ cmp r1, #0x100
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, r5, r6, r7, r8, pc}
+ mov r1, r5
+ mov r0, #0
+ bl MOD13_0223C110
+ mov r5, #0
+ ldr r4, _022344C8 ; =0x0224315C
+_022344A0:
+ ldr r0, [r4]
+ ldr r0, [r0, r5, lsl #2]
+ bl MOD13_02239AE8
+ add r5, r5, #1
+ cmp r5, #5
+ blt _022344A0
+ ldr r0, _022344C8 ; =0x0224315C
+ bl MOD13_0223AF90
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_022344C8: .word 0x0224315C
+_022344CC: .word 0x0223F608
+_022344D0: .word 0x000001D6
+
+ arm_func_start MOD13_022344D4
+MOD13_022344D4: ; 0x022344D4
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r1, _022345A0 ; =0x0224315C
+ mov r5, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #4]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r4, _022345A4 ; =0x0223F608
+ ldr r1, [sp]
+ ldrh r0, [r4]
+ sub r1, r1, #8
+ str r1, [sp]
+ cmp r1, r0
+ ble _02234554
+ ldr r5, _022345A0 ; =0x0224315C
+ mov r7, #1
+ mvn r6, #0
+_02234524:
+ add r0, r4, r7, lsl #2
+ ldr r1, [r5]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r7, lsl #2]
+ ldr r2, [sp]
+ mov r1, r6
+ bl MOD13_02239888
+ add r7, r7, #1
+ cmp r7, #5
+ blt _02234524
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02234554:
+ str r0, [sp]
+ mov r8, #1
+ ldr r6, _022345A0 ; =0x0224315C
+ mvn r7, #0
+_02234564:
+ add r0, r4, r8, lsl #2
+ ldr r1, [r6]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r8, lsl #2]
+ ldr r2, [sp]
+ mov r1, r7
+ bl MOD13_02239888
+ add r8, r8, #1
+ cmp r8, #5
+ blt _02234564
+ ldr r1, _022345A8 ; =MOD13_02234400
+ mov r0, r5
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_022345A0: .word 0x0224315C
+_022345A4: .word 0x0223F608
+_022345A8: .word MOD13_02234400
+
+ arm_func_start MOD13_022345AC
+MOD13_022345AC: ; 0x022345AC
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r1, _02234678 ; =0x0224315C
+ mov r5, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #8]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r4, _0223467C ; =0x0223F608
+ ldr r1, [sp]
+ ldrh r0, [r4, #4]
+ sub r1, r1, #8
+ str r1, [sp]
+ cmp r1, r0
+ ble _0223462C
+ ldr r5, _02234678 ; =0x0224315C
+ mov r7, #2
+ mvn r6, #0
+_022345FC:
+ add r0, r4, r7, lsl #2
+ ldr r1, [r5]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r7, lsl #2]
+ ldr r2, [sp]
+ mov r1, r6
+ bl MOD13_02239888
+ add r7, r7, #1
+ cmp r7, #5
+ blt _022345FC
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_0223462C:
+ str r0, [sp]
+ mov r8, #2
+ ldr r6, _02234678 ; =0x0224315C
+ mvn r7, #0
+_0223463C:
+ add r0, r4, r8, lsl #2
+ ldr r1, [r6]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r8, lsl #2]
+ ldr r2, [sp]
+ mov r1, r7
+ bl MOD13_02239888
+ add r8, r8, #1
+ cmp r8, #5
+ blt _0223463C
+ ldr r1, _02234680 ; =MOD13_022344D4
+ mov r0, r5
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02234678: .word 0x0224315C
+_0223467C: .word 0x0223F608
+_02234680: .word MOD13_022344D4
+
+ arm_func_start MOD13_02234684
+MOD13_02234684: ; 0x02234684
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r1, _02234750 ; =0x0224315C
+ mov r5, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #0xc]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r4, _02234754 ; =0x0223F608
+ ldr r1, [sp]
+ ldrh r0, [r4, #8]
+ sub r1, r1, #8
+ str r1, [sp]
+ cmp r1, r0
+ ble _02234704
+ ldr r5, _02234750 ; =0x0224315C
+ mov r7, #3
+ mvn r6, #0
+_022346D4:
+ add r0, r4, r7, lsl #2
+ ldr r1, [r5]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r7, lsl #2]
+ ldr r2, [sp]
+ mov r1, r6
+ bl MOD13_02239888
+ add r7, r7, #1
+ cmp r7, #5
+ blt _022346D4
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02234704:
+ str r0, [sp]
+ mov r8, #3
+ ldr r6, _02234750 ; =0x0224315C
+ mvn r7, #0
+_02234714:
+ add r0, r4, r8, lsl #2
+ ldr r1, [r6]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r8, lsl #2]
+ ldr r2, [sp]
+ mov r1, r7
+ bl MOD13_02239888
+ add r8, r8, #1
+ cmp r8, #5
+ blt _02234714
+ ldr r1, _02234758 ; =MOD13_022345AC
+ mov r0, r5
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02234750: .word 0x0224315C
+_02234754: .word 0x0223F608
+_02234758: .word MOD13_022345AC
+
+ arm_func_start MOD13_0223475C
+MOD13_0223475C: ; 0x0223475C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _022347F4 ; =0x0224315C
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #0x10]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r1, _022347F8 ; =0x0223F608
+ ldr r0, [sp]
+ ldrh ip, [r1, #0xc]
+ sub r2, r0, #8
+ str r2, [sp]
+ cmp r2, ip
+ ble _022347C0
+ ldr r0, _022347F4 ; =0x0224315C
+ ldrh r3, [r1, #0x12]
+ ldr r0, [r0]
+ mvn r1, #0
+ ldr r0, [r0, #0x10]
+ bl MOD13_02239888
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022347C0:
+ ldr r0, _022347F4 ; =0x0224315C
+ str ip, [sp]
+ ldr r0, [r0]
+ ldrh r3, [r1, #0x12]
+ ldr r0, [r0, #0x10]
+ mov r2, ip
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r1, _022347FC ; =MOD13_02234684
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022347F4: .word 0x0224315C
+_022347F8: .word 0x0223F608
+_022347FC: .word MOD13_02234684
+
+ arm_func_start MOD13_02234800
+MOD13_02234800: ; 0x02234800
+ ldr r0, _0223481C ; =0x0224315C
+ ldr r0, [r0]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_0223481C: .word 0x0224315C
+
+ arm_func_start MOD13_02234820
+MOD13_02234820: ; 0x02234820
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ mov r1, #5
+ mul r2, r0, r1
+ mov sl, #0
+ str r0, [sp]
+ ldr r1, _022348F8 ; =0x0223F5E8
+ ldr r0, _022348FC ; =0x0223F5F8
+ ldr r4, _02234900 ; =0x0224315C
+ add sb, r1, r2
+ add r8, r0, r2
+ mov r7, sl
+ mov fp, sl
+ str sl, [sp, #4]
+ mov r6, #1
+ mvn r5, #0
+_02234860:
+ ldr r0, [r4]
+ mov r1, r7
+ ldr r0, [r0, sl, lsl #2]
+ bl MOD13_02239ADC
+ mov r2, r0
+ ldrb r1, [sb]
+ mov r0, r6
+ bl MOD13_02239E8C
+ ldr r0, [r4]
+ mov r1, r5
+ ldr r0, [r0, sl, lsl #2]
+ mov r2, fp
+ bl MOD13_02239814
+ ldr r3, _02234904 ; =0x0223F608
+ ldr r0, [r4]
+ add r3, r3, sl, lsl #2
+ ldr r1, _02234904 ; =0x0223F608
+ mov r2, sl, lsl #2
+ ldrh r2, [r1, r2]
+ ldrh r3, [r3, #2]
+ ldr r0, [r0, sl, lsl #2]
+ mov r1, r5
+ bl MOD13_02239888
+ ldr r0, [r4]
+ ldrb r3, [r8]
+ ldr r0, [r0, sl, lsl #2]
+ ldr r2, [sp, #4]
+ mov r1, r5
+ bl MOD13_02239994
+ add sl, sl, #2
+ add sb, sb, #2
+ add r8, r8, #2
+ cmp sl, #5
+ blt _02234860
+ ldr r0, [sp]
+ bl MOD13_02234384
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_022348F8: .word 0x0223F5E8
+_022348FC: .word 0x0223F5F8
+_02234900: .word 0x0224315C
+_02234904: .word 0x0223F608
+
+ arm_func_start MOD13_02234908
+MOD13_02234908: ; 0x02234908
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02234948 ; =0x0224315C
+ mov r0, #0
+ ldr ip, [r1]
+ mov lr, #1
+ ldr r1, _0223494C ; =MOD13_0223475C
+ mov r2, r0
+ mov r3, #0x78
+ strb lr, [ip, #0x18]
+ bl MOD13_0223C1C4
+ ldr r1, _02234948 ; =0x0224315C
+ ldr r1, [r1]
+ str r0, [r1, #0x14]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02234948: .word 0x0224315C
+_0223494C: .word MOD13_0223475C
+
+ arm_func_start MOD13_02234950
+MOD13_02234950: ; 0x02234950
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, r0
+ mov r0, #0
+ bl MOD13_0223C110
+ ldr r0, _0223497C ; =0x0224315C
+ mov r1, #0
+ ldr r0, [r0]
+ str r1, [r0, #0x14]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223497C: .word 0x0224315C
+
+ arm_func_start MOD13_02234980
+MOD13_02234980: ; 0x02234980
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02234A24 ; =0x0224315C
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #0x10]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r1, _02234A28 ; =0x0223F608
+ ldr r0, [sp]
+ ldrh ip, [r1, #0x10]
+ add r2, r0, #8
+ str r2, [sp]
+ cmp r2, ip
+ blt _022349CC
+ cmp r2, #0x100
+ ble _022349F0
+_022349CC:
+ ldr r1, _02234A24 ; =0x0224315C
+ ldr r0, _02234A28 ; =0x0223F608
+ ldr r1, [r1]
+ ldrh r3, [r0, #0x12]
+ ldr r0, [r1, #0x10]
+ mvn r1, #0
+ bl MOD13_02239888
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022349F0:
+ ldr r0, _02234A24 ; =0x0224315C
+ str ip, [sp]
+ ldr r0, [r0]
+ ldrh r3, [r1, #0x12]
+ ldr r0, [r0, #0x10]
+ mov r2, ip
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r1, _02234A2C ; =MOD13_02234950
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02234A24: .word 0x0224315C
+_02234A28: .word 0x0223F608
+_02234A2C: .word MOD13_02234950
+
+ arm_func_start MOD13_02234A30
+MOD13_02234A30: ; 0x02234A30
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r1, _02234B08 ; =0x0224315C
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #0xc]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r6, _02234B0C ; =0x0223F608
+ ldr r1, [sp]
+ ldrh r0, [r6, #0xc]
+ add r1, r1, #8
+ str r1, [sp]
+ cmp r1, r0
+ blt _02234A7C
+ cmp r1, #0x100
+ ble _02234ABC
+_02234A7C:
+ ldr r4, _02234B08 ; =0x0224315C
+ ldr r5, _02234B0C ; =0x0223F608
+ mov r7, #3
+ mvn r6, #0
+_02234A8C:
+ add r0, r5, r7, lsl #2
+ ldr r1, [r4]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r7, lsl #2]
+ ldr r2, [sp]
+ mov r1, r6
+ bl MOD13_02239888
+ add r7, r7, #1
+ cmp r7, #5
+ blt _02234A8C
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02234ABC:
+ str r0, [sp]
+ mov r8, #3
+ ldr r5, _02234B08 ; =0x0224315C
+ mvn r7, #0
+_02234ACC:
+ add r0, r6, r8, lsl #2
+ ldr r1, [r5]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r8, lsl #2]
+ ldr r2, [sp]
+ mov r1, r7
+ bl MOD13_02239888
+ add r8, r8, #1
+ cmp r8, #5
+ blt _02234ACC
+ ldr r1, _02234B10 ; =MOD13_02234980
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02234B08: .word 0x0224315C
+_02234B0C: .word 0x0223F608
+_02234B10: .word MOD13_02234980
+
+ arm_func_start MOD13_02234B14
+MOD13_02234B14: ; 0x02234B14
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r1, _02234BEC ; =0x0224315C
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #8]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r6, _02234BF0 ; =0x0223F608
+ ldr r1, [sp]
+ ldrh r0, [r6, #8]
+ add r1, r1, #8
+ str r1, [sp]
+ cmp r1, r0
+ blt _02234B60
+ cmp r1, #0x100
+ ble _02234BA0
+_02234B60:
+ ldr r4, _02234BEC ; =0x0224315C
+ ldr r5, _02234BF0 ; =0x0223F608
+ mov r7, #2
+ mvn r6, #0
+_02234B70:
+ add r0, r5, r7, lsl #2
+ ldr r1, [r4]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r7, lsl #2]
+ ldr r2, [sp]
+ mov r1, r6
+ bl MOD13_02239888
+ add r7, r7, #1
+ cmp r7, #5
+ blt _02234B70
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02234BA0:
+ str r0, [sp]
+ mov r8, #2
+ ldr r5, _02234BEC ; =0x0224315C
+ mvn r7, #0
+_02234BB0:
+ add r0, r6, r8, lsl #2
+ ldr r1, [r5]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r8, lsl #2]
+ ldr r2, [sp]
+ mov r1, r7
+ bl MOD13_02239888
+ add r8, r8, #1
+ cmp r8, #5
+ blt _02234BB0
+ ldr r1, _02234BF4 ; =MOD13_02234A30
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02234BEC: .word 0x0224315C
+_02234BF0: .word 0x0223F608
+_02234BF4: .word MOD13_02234A30
+
+ arm_func_start MOD13_02234BF8
+MOD13_02234BF8: ; 0x02234BF8
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r1, _02234CD0 ; =0x0224315C
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #4]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r6, _02234CD4 ; =0x0223F608
+ ldr r1, [sp]
+ ldrh r0, [r6, #4]
+ add r1, r1, #8
+ str r1, [sp]
+ cmp r1, r0
+ blt _02234C44
+ cmp r1, #0x100
+ ble _02234C84
+_02234C44:
+ ldr r4, _02234CD0 ; =0x0224315C
+ ldr r5, _02234CD4 ; =0x0223F608
+ mov r7, #1
+ mvn r6, #0
+_02234C54:
+ add r0, r5, r7, lsl #2
+ ldr r1, [r4]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r7, lsl #2]
+ ldr r2, [sp]
+ mov r1, r6
+ bl MOD13_02239888
+ add r7, r7, #1
+ cmp r7, #5
+ blt _02234C54
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02234C84:
+ str r0, [sp]
+ mov r8, #1
+ ldr r5, _02234CD0 ; =0x0224315C
+ mvn r7, #0
+_02234C94:
+ add r0, r6, r8, lsl #2
+ ldr r1, [r5]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r8, lsl #2]
+ ldr r2, [sp]
+ mov r1, r7
+ bl MOD13_02239888
+ add r8, r8, #1
+ cmp r8, #5
+ blt _02234C94
+ ldr r1, _02234CD8 ; =MOD13_02234B14
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02234CD0: .word 0x0224315C
+_02234CD4: .word 0x0223F608
+_02234CD8: .word MOD13_02234B14
+
+ arm_func_start MOD13_02234CDC
+MOD13_02234CDC: ; 0x02234CDC
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r1, _02234DB4 ; =0x0224315C
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r6, _02234DB8 ; =0x0223F608
+ ldr r1, [sp]
+ ldrh r0, [r6]
+ add r1, r1, #8
+ str r1, [sp]
+ cmp r1, r0
+ blt _02234D28
+ cmp r1, #0x100
+ ble _02234D68
+_02234D28:
+ ldr r4, _02234DB4 ; =0x0224315C
+ ldr r5, _02234DB8 ; =0x0223F608
+ mov r7, #0
+ mvn r6, #0
+_02234D38:
+ add r0, r5, r7, lsl #2
+ ldr r1, [r4]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r7, lsl #2]
+ ldr r2, [sp]
+ mov r1, r6
+ bl MOD13_02239888
+ add r7, r7, #1
+ cmp r7, #5
+ blt _02234D38
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02234D68:
+ str r0, [sp]
+ mov r8, #0
+ ldr r5, _02234DB4 ; =0x0224315C
+ mvn r7, #0
+_02234D78:
+ add r0, r6, r8, lsl #2
+ ldr r1, [r5]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r8, lsl #2]
+ ldr r2, [sp]
+ mov r1, r7
+ bl MOD13_02239888
+ add r8, r8, #1
+ cmp r8, #5
+ blt _02234D78
+ ldr r1, _02234DBC ; =MOD13_02234BF8
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02234DB4: .word 0x0224315C
+_02234DB8: .word 0x0223F608
+_02234DBC: .word MOD13_02234BF8
+
+ arm_func_start MOD13_02234DC0
+MOD13_02234DC0: ; 0x02234DC0
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ str r0, [sp]
+ mov r0, #0x1c
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r1, [sp]
+ mov r2, #5
+ mul r3, r1, r2
+ mov sl, #0
+ ldr r4, _02234EC4 ; =0x0224315C
+ ldr r2, _02234EC8 ; =0x0223F5E8
+ ldr r1, _02234ECC ; =0x0223F5F8
+ str r0, [r4]
+ add sb, r2, r3
+ add r8, r1, r3
+ mov fp, sl
+ str sl, [sp, #4]
+ mov r7, #1
+ mvn r6, #0
+ mvn r5, #0x29
+_02234E14:
+ ldrb r1, [sb]
+ mov r0, r7
+ mov r2, r7
+ bl MOD13_02239E0C
+ ldr r2, [r4]
+ mov r1, r6
+ str r0, [r2, sl, lsl #2]
+ ldr r0, [r4]
+ mov r2, fp
+ ldr r0, [r0, sl, lsl #2]
+ bl MOD13_02239814
+ ldr r3, _02234ED0 ; =0x0223F608
+ ldr r0, [r4]
+ add r3, r3, sl, lsl #2
+ ldrh r3, [r3, #2]
+ ldr r0, [r0, sl, lsl #2]
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_02239888
+ ldr r0, [r4]
+ ldrb r3, [r8]
+ ldr r0, [r0, sl, lsl #2]
+ ldr r2, [sp, #4]
+ mov r1, r6
+ bl MOD13_02239994
+ add sl, sl, #1
+ add sb, sb, #1
+ add r8, r8, #1
+ cmp sl, #5
+ blt _02234E14
+ mov r0, #0
+ ldr r1, _02234ED4 ; =MOD13_02234CDC
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02234EC4 ; =0x0224315C
+ ldr r1, [r1]
+ str r0, [r1, #0x14]
+ ldr r0, [sp]
+ bl MOD13_02234384
+ mov r0, #0xd
+ bl MOD13_0223424C
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02234EC4: .word 0x0224315C
+_02234EC8: .word 0x0223F5E8
+_02234ECC: .word 0x0223F5F8
+_02234ED0: .word 0x0223F608
+_02234ED4: .word MOD13_02234CDC
+
+ arm_func_start MOD13_02234ED8
+MOD13_02234ED8: ; 0x02234ED8
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #4
+ str r0, [sp]
+ bl OS_GetTick
+ ldr r2, _02235018 ; =0x02243160
+ ldr r3, _0223501C ; =0x0017F898
+ ldr fp, [r2]
+ mov r8, #0
+ add r2, fp, #0x1000
+ ldr r4, [r2, #0xb78]
+ ldr r2, [r2, #0xb7c]
+ adds r3, r4, r3
+ adc r2, r2, #0
+ cmp r1, r2
+ cmpeq r0, r3
+ addlo sp, sp, #4
+ ldmloia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ mov sb, r8
+ mov sl, r8
+ mov r6, fp
+ add r7, fp, #0x1300
+ mov r4, #1
+ mov r5, #6
+_02234F34:
+ ldr r1, _02235020 ; =0x0223F61C
+ mov r0, r7
+ mov r2, r5
+ bl memcmp
+ cmp r0, #0
+ beq _02234F60
+ add r0, r6, #0x1000
+ ldrb r0, [r0, #0x306]
+ cmp r0, #0
+ movne sb, r4
+ moveq r8, r4
+_02234F60:
+ add sl, sl, #1
+ cmp sl, #0x10
+ add r7, r7, #7
+ add r6, r6, #7
+ blt _02234F34
+ cmp sb, #0
+ beq _02234FA0
+ cmp r8, #0
+ beq _02234FA0
+ add r0, fp, #0x1000
+ ldr r1, [r0, #0x370]
+ cmp r1, #0
+ beq _02234FE4
+ mov r0, #2
+ blx r1
+ b _02234FE4
+_02234FA0:
+ cmp sb, #0
+ beq _02234FC4
+ add r0, fp, #0x1000
+ ldr r1, [r0, #0x370]
+ cmp r1, #0
+ beq _02234FE4
+ mov r0, #1
+ blx r1
+ b _02234FE4
+_02234FC4:
+ cmp r8, #0
+ bne _02234FE4
+ add r0, fp, #0x1000
+ ldr r1, [r0, #0x370]
+ cmp r1, #0
+ beq _02234FE4
+ mov r0, #0
+ blx r1
+_02234FE4:
+ ldr r3, _02235018 ; =0x02243160
+ mov r0, #0
+ ldr r2, [r3]
+ ldr r1, [sp]
+ add r2, r2, #0x1000
+ str r0, [r2, #0xb80]
+ ldr r2, [r3]
+ mov r3, #1
+ add r2, r2, #0x1000
+ strb r3, [r2, #0xb86]
+ bl MOD13_0223C110
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02235018: .word 0x02243160
+_0223501C: .word 0x0017F898
+_02235020: .word 0x0223F61C
+
+ arm_func_start MOD13_02235024
+MOD13_02235024: ; 0x02235024
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ ldr r1, _02235154 ; =0x02243160
+ mov r4, r0
+ ldr r2, [r1]
+ add r1, r2, #0x1000
+ ldrb r0, [r1, #0xb85]
+ cmp r0, #0
+ beq _02235064
+ ldr r1, [r1, #0x370]
+ cmp r1, #0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ blx r1
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_02235064:
+ add r0, r2, #0xf00
+ mov r1, #0x400
+ bl DC_InvalidateRange
+ ldrh fp, [r4, #0xe]
+ mov sl, #0
+ cmp fp, #0
+ addle sp, sp, #0xc
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ ldr r0, _02235154 ; =0x02243160
+ ldr r7, [r0]
+ str sl, [sp, #4]
+ mov r5, #6
+ mov r0, #8
+ str r0, [sp]
+_0223509C:
+ add r0, r4, sl, lsl #2
+ ldr r6, [r0, #0x10]
+ ldr r1, _02235158 ; =0x0223F624
+ ldr r2, [sp]
+ add r0, r6, #0xc
+ bl memcmp
+ cmp r0, #0
+ bne _02235140
+ ldrb r0, [r6, #0x15]
+ ands r0, r0, #1
+ beq _02235140
+ ldr sb, [sp, #4]
+ add r8, r7, #0x1300
+ add r6, r6, #4
+_022350D4:
+ mov r0, r6
+ mov r1, r8
+ mov r2, r5
+ bl memcmp
+ cmp r0, #0
+ bne _02235130
+ mov r0, #7
+ mla r0, sb, r0, r7
+ add r0, r0, #0x1000
+ ldrb r0, [r0, #0x306]
+ cmp r0, #0
+ bne _02235140
+ add r0, r7, #0x1000
+ ldr r1, [r0, #0x370]
+ cmp r1, #0
+ moveq r1, #1
+ streqb r1, [r0, #0xb85]
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ mov r0, #1
+ blx r1
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_02235130:
+ add sb, sb, #1
+ cmp sb, #0x10
+ add r8, r8, #7
+ blt _022350D4
+_02235140:
+ add sl, sl, #1
+ cmp sl, fp
+ blt _0223509C
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02235154: .word 0x02243160
+_02235158: .word 0x0223F624
+
+ arm_func_start MOD13_0223515C
+MOD13_0223515C: ; 0x0223515C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x1c
+ str r0, [sp]
+ ldrh r0, [r0, #0xe]
+ mov fp, #0
+ cmp r0, #0
+ addle sp, sp, #0x1c
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0xc0
+ str r0, [sp, #4]
+ mov r0, #8
+ ldr r4, _022352EC ; =0x0223F61C
+ str fp, [sp, #0x18]
+ str fp, [sp, #0xc]
+ str fp, [sp, #0x10]
+ mov r5, #6
+ str r0, [sp, #8]
+_022351A8:
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ add r0, r0, fp, lsl #2
+ ldr sl, [r0, #0x10]
+ mov r0, sl
+ bl DC_InvalidateRange
+ ldr r1, _022352F0 ; =0x0223F624
+ ldr r2, [sp, #8]
+ add r0, sl, #0xc
+ bl memcmp
+ cmp r0, #0
+ bne _022352D0
+ ldr r0, _022352F4 ; =0x02243160
+ ldr sb, [sp, #0xc]
+ ldr r7, [r0]
+ add r6, sl, #4
+ add r8, r7, #0x1300
+_022351EC:
+ mov r0, r6
+ mov r1, r8
+ mov r2, r5
+ bl memcmp
+ cmp r0, #0
+ bne _0223524C
+ mov r0, #7
+ mla r0, sb, r0, r7
+ add r0, r0, #0x1000
+ ldrb r0, [r0, #0x306]
+ cmp r0, #0
+ bne _022352D0
+ ldrb r0, [sl, #0x15]
+ ands r0, r0, #1
+ beq _022352D0
+ add r0, r7, #0x1000
+ ldr r1, [r0, #0x370]
+ cmp r1, #0
+ addeq sp, sp, #0x1c
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ mov r0, #1
+ blx r1
+ add sp, sp, #0x1c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_0223524C:
+ add r8, r8, #7
+ add sb, sb, #1
+ cmp sb, #0x10
+ blt _022351EC
+ ldr r6, [sp, #0x10]
+ add r8, r7, #0x1300
+_02235264:
+ mov r0, r8
+ mov r1, r4
+ mov r2, r5
+ bl memcmp
+ cmp r0, #0
+ bne _022352C0
+ mov r0, #7
+ add r1, r7, #0x1300
+ mul r7, r6, r0
+ add r1, r1, r7
+ add r0, sl, #4
+ mov r2, r5
+ bl MI_CpuCopy8
+ ldrb r0, [sl, #0x15]
+ ands r0, r0, #1
+ ldr r0, _022352F4 ; =0x02243160
+ ldrne r1, [sp, #0x14]
+ ldr r0, [r0]
+ ldreq r1, [sp, #0x18]
+ add r0, r0, r7
+ add r0, r0, #0x1000
+ strb r1, [r0, #0x306]
+ b _022352D0
+_022352C0:
+ add r8, r8, #7
+ add r6, r6, #1
+ cmp r6, #0x10
+ blt _02235264
+_022352D0:
+ ldr r0, [sp]
+ add fp, fp, #1
+ ldrh r0, [r0, #0xe]
+ cmp fp, r0
+ blt _022351A8
+ add sp, sp, #0x1c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_022352EC: .word 0x0223F61C
+_022352F0: .word 0x0223F624
+_022352F4: .word 0x02243160
+
+ arm_func_start MOD13_022352F8
+MOD13_022352F8: ; 0x022352F8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r1, [r0, #2]
+ cmp r1, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r1, _022353A0 ; =0x02243160
+ ldr r1, [r1]
+ add r1, r1, #0x1000
+ ldrb r2, [r1, #0xb84]
+ cmp r2, #0
+ beq _02235340
+ ldrh r0, [r0]
+ add sp, sp, #4
+ cmp r0, #2
+ moveq r0, #2
+ streqb r0, [r1, #0xb84]
+ ldmia sp!, {pc}
+_02235340:
+ ldrh r2, [r0]
+ cmp r2, #0x26
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldrh r2, [r0, #8]
+ cmp r2, #4
+ beq _02235388
+ cmp r2, #5
+ bne _02235394
+ ldrb r1, [r1, #0xb86]
+ cmp r1, #0
+ beq _02235378
+ bl MOD13_02235024
+ b _0223537C
+_02235378:
+ bl MOD13_0223515C
+_0223537C:
+ bl MOD13_022354B4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02235388:
+ bl MOD13_022354B4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02235394:
+ bl OS_Terminate
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022353A0: .word 0x02243160
+
+ arm_func_start MOD13_022353A4
+MOD13_022353A4: ; 0x022353A4
+ ldr r1, _022353B8 ; =0x02243160
+ ldr r1, [r1]
+ add r1, r1, #0x1000
+ str r0, [r1, #0x370]
+ bx lr
+ .align 2, 0
+_022353B8: .word 0x02243160
+
+ arm_func_start MOD13_022353BC
+MOD13_022353BC: ; 0x022353BC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _022354A8 ; =0x02243160
+ mov r3, #1
+ ldr r0, [r2]
+ ldr r1, _022354AC ; =0x000013B8
+ add r0, r0, #0x1000
+ strb r3, [r0, #0xb84]
+ ldr r0, [r2]
+ add r0, r0, r1
+ bl WM_ReadStatus
+ ldr r0, _022354A8 ; =0x02243160
+ ldr r0, [r0]
+ add r0, r0, #0x1300
+ ldrh r0, [r0, #0xb8]
+ cmp r0, #2
+ beq _02235444
+ ldr r0, _022354B0 ; =MOD13_022352F8
+ bl WM_Reset
+ cmp r0, #2
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {pc}
+_02235418:
+ ldr r1, _022354A8 ; =0x02243160
+ ldr r0, _022354AC ; =0x000013B8
+ ldr r1, [r1]
+ add r0, r1, r0
+ bl WM_ReadStatus
+ ldr r0, _022354A8 ; =0x02243160
+ ldr r0, [r0]
+ add r0, r0, #0x1300
+ ldrh r0, [r0, #0xb8]
+ cmp r0, #2
+ bne _02235418
+_02235444:
+ ldr r0, _022354B0 ; =MOD13_022352F8
+ bl WM_End
+ cmp r0, #2
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {pc}
+ ldr r0, _022354A8 ; =0x02243160
+ ldr r0, [r0]
+ add r0, r0, #0x1000
+ ldr r1, [r0, #0xb80]
+ cmp r1, #0
+ beq _0223547C
+ mov r0, #0
+ bl MOD13_0223C104
+_0223547C:
+ ldr r0, _022354A8 ; =0x02243160
+ ldr r0, [r0]
+ add r0, r0, #0x1000
+_02235488:
+ ldrb r1, [r0, #0xb84]
+ cmp r1, #2
+ bne _02235488
+ ldr r0, _022354A8 ; =0x02243160
+ bl MOD13_0223AF90
+ mov r0, #1
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022354A8: .word 0x02243160
+_022354AC: .word 0x000013B8
+_022354B0: .word MOD13_022352F8
+
+ arm_func_start MOD13_022354B4
+MOD13_022354B4: ; 0x022354B4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022354E8 ; =0x02243160
+ ldr r1, _022354EC ; =0x00001374
+ ldr r2, [r0]
+ ldr r0, _022354F0 ; =MOD13_022352F8
+ add r1, r2, r1
+ bl WM_StartScanEx
+ cmp r0, #2
+ moveq r0, #1
+ movne r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022354E8: .word 0x02243160
+_022354EC: .word 0x00001374
+_022354F0: .word MOD13_022352F8
+
+ arm_func_start MOD13_022354F4
+MOD13_022354F4: ; 0x022354F4
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0x54
+ mov r4, r0
+ ldr r0, _0223565C ; =0x00001BA0
+ mov r1, #0x20
+ bl MOD13_0223AFE0
+ ldr r2, _02235660 ; =0x02243160
+ add r1, r0, #0x1000
+ str r0, [r2]
+ str r4, [r1, #0x370]
+ ldr r4, [r2]
+ bl OS_GetTick
+ add r2, r4, #0x1000
+ str r0, [r2, #0xb78]
+ str r1, [r2, #0xb7c]
+ ldr r1, _02235664 ; =MOD13_022352F8
+ mov r0, r4
+ mov r2, #3
+ bl WM_Initialize
+ cmp r0, #2
+ bne _02235648
+ ldr r5, _02235660 ; =0x02243160
+ ldr r4, _02235668 ; =0x000013B8
+_02235550:
+ ldr r0, [r5]
+ add r0, r0, r4
+ bl WM_ReadStatus
+ ldr ip, [r5]
+ add r0, ip, #0x1300
+ ldrh r0, [r0, #0xb8]
+ cmp r0, #2
+ bne _02235550
+ ldr r0, _0223566C ; =0x00001374
+ ldr lr, _02235670 ; =0x0223F630
+ add r5, ip, r0
+ mov r4, #4
+_02235580:
+ ldmia lr!, {r0, r1, r2, r3}
+ stmia r5!, {r0, r1, r2, r3}
+ subs r4, r4, #1
+ bne _02235580
+ ldr r0, [lr]
+ add r1, ip, #0xf00
+ str r0, [r5]
+ add r0, ip, #0x1000
+ str r1, [r0, #0x374]
+ bl WM_GetDispersionScanPeriod
+ ldr r1, _02235660 ; =0x02243160
+ ldr r1, [r1]
+ add r1, r1, #0x1300
+ strh r0, [r1, #0x7c]
+ add r0, sp, #0
+ bl OS_GetOwnerInfo
+ ldr r0, _02235660 ; =0x02243160
+ ldr r1, _02235674 ; =0x00001388
+ ldr r2, [r0]
+ ldr r0, _02235678 ; =0x0223F624
+ add r1, r2, r1
+ mov r2, #8
+ bl MI_CpuCopy8
+ ldr r2, _02235660 ; =0x02243160
+ mov r3, #1
+ ldr r0, [r2]
+ ldr r1, _0223567C ; =0x00001394
+ add r0, r0, #0x1000
+ strb r3, [r0, #0x391]
+ ldr r2, [r2]
+ ldrh r3, [sp, #0x18]
+ add r1, r2, r1
+ add r0, sp, #4
+ mov r2, r3, lsl #1
+ bl MI_CpuCopy8
+ bl MOD13_022354B4
+ cmp r0, #0
+ beq _02235648
+ mov r0, #0
+ ldr r1, _02235680 ; =MOD13_02234ED8
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02235660 ; =0x02243160
+ add sp, sp, #0x54
+ ldr r1, [r1]
+ add r1, r1, #0x1000
+ str r0, [r1, #0xb80]
+ mov r0, #1
+ ldmia sp!, {r4, r5, pc}
+_02235648:
+ ldr r0, _02235660 ; =0x02243160
+ bl MOD13_0223AF90
+ mov r0, #0
+ add sp, sp, #0x54
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223565C: .word 0x00001BA0
+_02235660: .word 0x02243160
+_02235664: .word MOD13_022352F8
+_02235668: .word 0x000013B8
+_0223566C: .word 0x00001374
+_02235670: .word 0x0223F630
+_02235674: .word 0x00001388
+_02235678: .word 0x0223F624
+_0223567C: .word 0x00001394
+_02235680: .word MOD13_02234ED8
+
+ arm_func_start MOD13_02235684
+MOD13_02235684: ; 0x02235684
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r3, #0x4000000
+ ldr r2, [r3]
+ ldr r1, _02235730 ; =0x02243164
+ bic r2, r2, #0xe000
+ str r2, [r3]
+ ldr r1, [r1]
+ mov r6, r0
+ ldr r0, [r1]
+ bl MOD13_02239AE8
+ ldr r0, _02235730 ; =0x02243164
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bl MOD13_02239AE8
+ ldr r7, _02235730 ; =0x02243164
+ ldr r4, _02235734 ; =0x0223F680
+ ldr r1, [r7]
+ mov r5, #0
+ ldrb r0, [r1, #0x1c]
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ ble _0223570C
+_022356E0:
+ add r0, r1, r5, lsl #2
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _022356F4
+ bl MOD13_02239AE8
+_022356F4:
+ ldr r1, [r7]
+ add r5, r5, #1
+ ldrb r0, [r1, #0x1c]
+ ldrb r0, [r4, r0]
+ cmp r5, r0
+ blt _022356E0
+_0223570C:
+ ldr r0, [r1, #0x10]
+ bl MOD13_0223A978
+ mov r1, r6
+ mov r0, #1
+ bl MOD13_0223C110
+ ldr r0, _02235730 ; =0x02243164
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235730: .word 0x02243164
+_02235734: .word 0x0223F680
+
+ arm_func_start MOD13_02235738
+MOD13_02235738: ; 0x02235738
+ stmdb sp!, {r4, lr}
+ ldr r1, _02235788 ; =0x02243164
+ mov r4, r0
+ ldr r3, [r1]
+ ldr r0, _0223578C ; =0x04000050
+ ldrsb r2, [r3, #0x1a]
+ add r2, r2, #1
+ strb r2, [r3, #0x1a]
+ ldr r1, [r1]
+ ldrsb r1, [r1, #0x1a]
+ bl G2x_ChangeBlendBrightness_
+ ldr r0, _02235788 ; =0x02243164
+ ldr r0, [r0]
+ ldrsb r0, [r0, #0x1a]
+ cmp r0, #0
+ ldmltia sp!, {r4, pc}
+ ldr r1, _02235790 ; =MOD13_02235684
+ mov r0, r4
+ bl MOD13_0223C130
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02235788: .word 0x02243164
+_0223578C: .word 0x04000050
+_02235790: .word MOD13_02235684
+
+ arm_func_start MOD13_02235794
+MOD13_02235794: ; 0x02235794
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02235818 ; =0x02243164
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r0, [sp, #4]
+ add r0, r0, #0xc
+ str r0, [sp, #4]
+ bl MOD13_022359B8
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r0, _02235818 ; =0x02243164
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1e]
+ cmp r0, #0
+ beq _02235804
+ ldr r1, _0223581C ; =MOD13_02235738
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02235804:
+ ldr r1, _02235820 ; =MOD13_02235684
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02235818: .word 0x02243164
+_0223581C: .word MOD13_02235738
+_02235820: .word MOD13_02235684
+
+ arm_func_start MOD13_02235824
+MOD13_02235824: ; 0x02235824
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02235864 ; =0x02243164
+ ldr r3, [r1]
+ ldrb r2, [r3, #0x1d]
+ add r2, r2, #1
+ strb r2, [r3, #0x1d]
+ ldr r1, [r1]
+ ldrb r1, [r1, #0x1d]
+ cmp r1, #8
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ ldr r1, _02235868 ; =MOD13_02235794
+ bl MOD13_0223C130
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02235864: .word 0x02243164
+_02235868: .word MOD13_02235794
+
+ arm_func_start MOD13_0223586C
+MOD13_0223586C: ; 0x0223586C
+ stmdb sp!, {r4, lr}
+ ldr r1, _02235918 ; =0x02243164
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, #0
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #8]
+ bl MOD13_02239ADC
+ ldr r1, _02235918 ; =0x02243164
+ mov r2, r0
+ ldr r0, [r1]
+ ldr r1, _0223591C ; =0x0223F6B0
+ ldrb r3, [r0, #0x1c]
+ mov r0, #0
+ add r1, r1, r3, lsl #1
+ ldrb r1, [r4, r1]
+ add r1, r1, #1
+ bl MOD13_02239E8C
+ ldr r0, _02235918 ; =0x02243164
+ ldr r2, _02235920 ; =0x0223F698
+ ldr r0, [r0]
+ ldr r1, _02235924 ; =0x0223F718
+ ldrb lr, [r0, #0x1c]
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #8]
+ add r2, r2, lr, lsl #1
+ ldrb r3, [r4, r2]
+ add r2, r1, lr, lsl #3
+ mvn r1, #0
+ mov ip, r3, lsl #2
+ ldrh r2, [ip, r2]
+ ldr r3, _02235928 ; =0x0223F71A
+ add r3, r3, lr, lsl #3
+ ldrh r3, [ip, r3]
+ bl MOD13_02239888
+ ldr r0, _02235918 ; =0x02243164
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #0
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #8]
+ bl MOD13_02239814
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02235918: .word 0x02243164
+_0223591C: .word 0x0223F6B0
+_02235920: .word 0x0223F698
+_02235924: .word 0x0223F718
+_02235928: .word 0x0223F71A
+
+ arm_func_start MOD13_0223592C
+MOD13_0223592C: ; 0x0223592C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ mov sl, r0
+ mov sb, r1
+ bl MOD13_02239AD4
+ mov r8, r0
+ cmp r8, #0
+ mov r7, #0
+ addle sp, sp, #0xc
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ add fp, sp, #0
+ mov r6, r7
+ mov r4, r7
+ mov r5, #0x200
+_02235964:
+ mov r0, sl
+ mov r1, r7
+ mov r2, fp
+ add r3, sp, #4
+ bl MOD13_022397DC
+ ldr r0, [sp, #4]
+ cmp r0, sb
+ blt _02235990
+ cmp r0, #0xc0
+ movlt r2, r6
+ blt _02235994
+_02235990:
+ mov r2, r5
+_02235994:
+ mov r0, sl
+ mov r1, r7
+ mov r3, r4
+ bl MOD13_02239A1C
+ add r7, r7, #1
+ cmp r7, r8
+ blt _02235964
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+
+ arm_func_start MOD13_022359B8
+MOD13_022359B8: ; 0x022359B8
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ ldr r1, _02235B4C ; =0x02243164
+ mov sl, r0
+ ldr r0, [r1]
+ ldr r1, _02235B50 ; =0x0223F6E8
+ ldrb r2, [r0, #0x1c]
+ ldr r0, [r0]
+ mov r3, sl
+ mov r2, r2, lsl #2
+ ldrh r2, [r1, r2]
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r1, _02235B4C ; =0x02243164
+ ldr r0, _02235B54 ; =0x0223F674
+ ldr r5, [r1]
+ ldr r2, _02235B50 ; =0x0223F6E8
+ ldrb r3, [r5, #0x1c]
+ ldrh r1, [r0, #2]
+ ldrh r4, [r0]
+ mov r0, r3, lsl #2
+ ldrh r2, [r2, r0]
+ ldr r0, [r5, #4]
+ add r3, sl, r1
+ add r2, r4, r2
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r0, _02235B4C ; =0x02243164
+ mov r1, sl
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl MOD13_0223592C
+ ldr r0, _02235B4C ; =0x02243164
+ mov r1, sl
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bl MOD13_0223592C
+ ldr r4, _02235B4C ; =0x02243164
+ ldr r8, _02235B58 ; =0x0223F680
+ ldr r0, [r4]
+ mov sb, #0
+ ldrb r0, [r0, #0x1c]
+ ldrb r1, [r8, r0]
+ cmp r1, #0
+ ble _02235AE8
+ ldr r7, _02235B5C ; =0x0223F698
+ ldr r5, _02235B60 ; =0x0223F718
+ ldr fp, _02235B50 ; =0x0223F6E8
+ mvn r6, #0
+_02235A7C:
+ add r1, r7, r0, lsl #1
+ ldrb ip, [sb, r1]
+ add r2, r5, r0, lsl #3
+ add r3, fp, r0, lsl #2
+ add r0, r2, ip, lsl #2
+ ldr r1, [r4]
+ mov ip, ip, lsl #2
+ ldrh r2, [ip, r2]
+ ldrh r0, [r0, #2]
+ add r1, r1, sb, lsl #2
+ ldrh r3, [r3, #2]
+ add ip, sl, r0
+ ldr r0, [r1, #8]
+ mov r1, r6
+ sub r3, ip, r3
+ bl MOD13_02239888
+ ldr r0, [r4]
+ mov r1, sl
+ add r0, r0, sb, lsl #2
+ ldr r0, [r0, #8]
+ bl MOD13_0223592C
+ ldr r0, [r4]
+ add sb, sb, #1
+ ldrb r0, [r0, #0x1c]
+ ldrb r1, [r8, r0]
+ cmp sb, r1
+ blt _02235A7C
+_02235AE8:
+ and r1, sl, #0xff
+ cmp r1, #0xc0
+ movge r3, #0
+ movge r1, r3
+ ldrlt r2, _02235B64 ; =0x0223F702
+ movlt r3, r0, lsl #2
+ ldrlth r2, [r2, r3]
+ mov r5, r0, lsl #2
+ add r4, sp, #4
+ addlt r3, r1, r2
+ ldr r2, _02235B50 ; =0x0223F6E8
+ cmp r3, #0xc0
+ ldrh r0, [r2, r5]
+ ldr r2, _02235B68 ; =0x0223F700
+ movgt r3, #0xc0
+ str r4, [sp]
+ ldrh r2, [r2, r5]
+ add r2, r0, r2
+ bl MOD13_0223ABA8
+ mov r0, #0
+ mov r2, r4
+ mov r1, r0
+ bl MOD13_0223AD38
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02235B4C: .word 0x02243164
+_02235B50: .word 0x0223F6E8
+_02235B54: .word 0x0223F674
+_02235B58: .word 0x0223F680
+_02235B5C: .word 0x0223F698
+_02235B60: .word 0x0223F718
+_02235B64: .word 0x0223F702
+_02235B68: .word 0x0223F700
+
+ arm_func_start MOD13_02235B6C
+MOD13_02235B6C: ; 0x02235B6C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _02235BDC ; =0x02243164
+ mvn ip, #0
+ ldr r3, [r2]
+ mov r1, r0
+ strb ip, [r3, #0x1b]
+ ldr r3, [r2]
+ ldrh r0, [r3, #0x18]
+ add r0, r0, #1
+ strh r0, [r3, #0x18]
+ ldr r0, [r2]
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x78
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223C110
+ ldr r1, _02235BE0 ; =MOD13_02235824
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02235BDC ; =0x02243164
+ ldr r1, [r1]
+ str r0, [r1, #0x14]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02235BDC: .word 0x02243164
+_02235BE0: .word MOD13_02235824
+
+ arm_func_start MOD13_02235BE4
+MOD13_02235BE4: ; 0x02235BE4
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ sub sp, sp, #8
+ ldr r5, _02235D20 ; =0x02243164
+ ldr sl, _02235D24 ; =0x0223F680
+ ldr r0, [r5]
+ mov r4, #0
+ ldrb r1, [r0, #0x1c]
+ ldrb r0, [sl, r1]
+ cmp r0, #0
+ ble _02235C6C
+ ldr sb, _02235D28 ; =0x0223F718
+ ldr r8, _02235D2C ; =0x0223F698
+ ldr r7, _02235D30 ; =0x0223F6BC
+ add r6, sp, #0
+_02235C1C:
+ add r0, r8, r1, lsl #1
+ ldrb r0, [r4, r0]
+ add r3, sb, r1, lsl #3
+ mov r2, r6
+ add r0, r3, r0, lsl #2
+ add r1, r7, r1, lsl #2
+ bl MOD13_0223AB74
+ mov r0, r6
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ ldrne r0, _02235D20 ; =0x02243164
+ ldrne r0, [r0]
+ strneb r4, [r0, #0x1b]
+ bne _02235C6C
+ ldr r0, [r5]
+ add r4, r4, #1
+ ldrb r1, [r0, #0x1c]
+ ldrb r0, [sl, r1]
+ cmp r4, r0
+ blt _02235C1C
+_02235C6C:
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02235C98
+ ldr r0, _02235D20 ; =0x02243164
+ ldr r1, _02235D34 ; =0x0223F6A4
+ ldr r2, [r0]
+ ldrb r0, [r2, #0x1c]
+ mov r0, r0, lsl #1
+ ldrsb r0, [r1, r0]
+ strb r0, [r2, #0x1b]
+_02235C98:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02235CC4
+ ldr r0, _02235D20 ; =0x02243164
+ ldr r1, _02235D38 ; =0x0223F6A5
+ ldr r2, [r0]
+ ldrb r0, [r2, #0x1c]
+ mov r0, r0, lsl #1
+ ldrsb r0, [r1, r0]
+ strb r0, [r2, #0x1b]
+_02235CC4:
+ ldr r0, _02235D20 ; =0x02243164
+ ldr r2, _02235D24 ; =0x0223F680
+ ldr r4, [r0]
+ mov r0, #0
+ ldrb r1, [r4, #0x1c]
+ ldrb r1, [r2, r1]
+ cmp r1, #0
+ ble _02235D10
+ ldrsb r3, [r4, #0x1b]
+_02235CE8:
+ cmp r0, r3
+ bne _02235CFC
+ bl MOD13_0223586C
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+_02235CFC:
+ ldrb r1, [r4, #0x1c]
+ add r0, r0, #1
+ ldrb r1, [r2, r1]
+ cmp r0, r1
+ blt _02235CE8
+_02235D10:
+ mvn r0, #0
+ strb r0, [r4, #0x1b]
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_02235D20: .word 0x02243164
+_02235D24: .word 0x0223F680
+_02235D28: .word 0x0223F718
+_02235D2C: .word 0x0223F698
+_02235D30: .word 0x0223F6BC
+_02235D34: .word 0x0223F6A4
+_02235D38: .word 0x0223F6A5
+
+ arm_func_start MOD13_02235D3C
+MOD13_02235D3C: ; 0x02235D3C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02235E10 ; =0x02243164
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r0, [sp, #4]
+ ldr r1, _02235E10 ; =0x02243164
+ sub r0, r0, #0xc
+ ldr r1, [r1]
+ str r0, [sp, #4]
+ ldrb r2, [r1, #0x1c]
+ ldr r1, _02235E14 ; =0x0223F6EA
+ mov r2, r2, lsl #2
+ ldrh r1, [r1, r2]
+ cmp r0, r1
+ ble _02235D9C
+ bl MOD13_022359B8
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02235D9C:
+ mov r0, r1
+ bl MOD13_022359B8
+ ldr r0, _02235E10 ; =0x02243164
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #5
+ bne _02235DDC
+ mov r0, #0
+ ldr r1, _02235E18 ; =MOD13_02235B6C
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02235E10 ; =0x02243164
+ ldr r1, [r1]
+ str r0, [r1, #0x14]
+ b _02235DFC
+_02235DDC:
+ mov r0, #0
+ ldr r1, _02235E1C ; =MOD13_02235BE4
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02235E10 ; =0x02243164
+ ldr r1, [r1]
+ str r0, [r1, #0x14]
+_02235DFC:
+ mov r1, r4
+ mov r0, #1
+ bl MOD13_0223C110
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02235E10: .word 0x02243164
+_02235E14: .word 0x0223F6EA
+_02235E18: .word MOD13_02235B6C
+_02235E1C: .word MOD13_02235BE4
+
+ arm_func_start MOD13_02235E20
+MOD13_02235E20: ; 0x02235E20
+ stmdb sp!, {r4, lr}
+ ldr r1, _02235E74 ; =0x02243164
+ mov r4, r0
+ ldr r3, [r1]
+ ldr r0, _02235E78 ; =0x04000050
+ ldrsb r2, [r3, #0x1a]
+ sub r2, r2, #1
+ strb r2, [r3, #0x1a]
+ ldr r1, [r1]
+ ldrsb r1, [r1, #0x1a]
+ bl G2x_ChangeBlendBrightness_
+ ldr r1, _02235E74 ; =0x02243164
+ mvn r0, #0xb
+ ldr r1, [r1]
+ ldrsb r1, [r1, #0x1a]
+ cmp r1, r0
+ ldmgtia sp!, {r4, pc}
+ ldr r1, _02235E7C ; =MOD13_02235D3C
+ mov r0, r4
+ bl MOD13_0223C130
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02235E74: .word 0x02243164
+_02235E78: .word 0x04000050
+_02235E7C: .word MOD13_02235D3C
+
+ arm_func_start MOD13_02235E80
+MOD13_02235E80: ; 0x02235E80
+ ldr r0, _02235E98 ; =0x02243164
+ ldr r0, [r0]
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_02235E98: .word 0x02243164
+
+ arm_func_start MOD13_02235E9C
+MOD13_02235E9C: ; 0x02235E9C
+ ldr r0, _02235EAC ; =0x02243164
+ ldr r0, [r0]
+ ldrsb r0, [r0, #0x1b]
+ bx lr
+ .align 2, 0
+_02235EAC: .word 0x02243164
+
+ arm_func_start MOD13_02235EB0
+MOD13_02235EB0: ; 0x02235EB0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02235EF4 ; =0x02243164
+ mov r0, #0
+ ldr r1, [r1]
+ ldr r1, [r1, #0x14]
+ bl MOD13_0223C110
+ ldr r1, _02235EF8 ; =MOD13_02235824
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02235EF4 ; =0x02243164
+ ldr r1, [r1]
+ str r0, [r1, #0x14]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02235EF4: .word 0x02243164
+_02235EF8: .word MOD13_02235824
+
+ arm_func_start MOD13_02235EFC
+MOD13_02235EFC: ; 0x02235EFC
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x2c
+ ldr r5, _02236224 ; =0x0223F688
+ ldr r4, _02236228 ; =0x0224307C
+ ldrb sl, [r5]
+ ldrb sb, [r5, #1]
+ ldrb r8, [r5, #2]
+ ldrb r7, [r5, #3]
+ ldrb r6, [r5, #4]
+ ldrb r5, [r5, #5]
+ mov fp, r0
+ str r2, [sp, #0x14]
+ mov r2, r3
+ str r1, [sp, #0x10]
+ ldr r0, [r4]
+ ldr r3, [sp, #0x50]
+ mov r1, fp
+ strb sl, [sp, #0x20]
+ strb sb, [sp, #0x21]
+ strb r8, [sp, #0x22]
+ strb r7, [sp, #0x23]
+ strb r6, [sp, #0x24]
+ strb r5, [sp, #0x25]
+ bl MOD13_0222352C
+ str r0, [sp, #0x18]
+ mov r0, #0x20
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r2, _0223622C ; =0x02243164
+ ldr r1, [sp, #0x10]
+ str r0, [r2]
+ strb r1, [r0, #0x1c]
+ ldr r1, [r2]
+ mvn r3, #1
+ strb r3, [r1, #0x1b]
+ ldr r3, [r2]
+ ldr r2, [sp, #0x14]
+ ldr r0, _02236230 ; =0x04000050
+ strb r2, [r3, #0x1e]
+ mov r1, #0x1f
+ mov r2, #0
+ bl G2x_SetBlendBrightness_
+ mov r0, #0
+ ldr r3, _02236234 ; =0x0223F678
+ ldr r1, [sp, #0x10]
+ mov r2, r0
+ ldrb r1, [r3, r1]
+ bl MOD13_02239E0C
+ ldr r3, _0223622C ; =0x02243164
+ mvn r1, #0
+ ldr r4, [r3]
+ mov r2, #0x100
+ str r0, [r4]
+ ldr r0, [r3]
+ mov r3, #0
+ ldr r0, [r0]
+ bl MOD13_02239888
+ ldr r0, _0223622C ; =0x02243164
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #0
+ ldr r0, [r0]
+ bl MOD13_02239814
+ ldr r2, _02236238 ; =0x0223F680
+ ldr r0, [sp, #0x10]
+ mov sl, #0
+ ldrb r0, [r2, r0]
+ cmp r0, #0
+ ble _0223609C
+ ldr r0, [sp, #0x10]
+ ldr r1, _0223623C ; =0x0223F6B0
+ ldr r4, _0223622C ; =0x02243164
+ add r8, r2, r0
+ add sb, r1, r0, lsl #1
+ str sl, [sp, #0x1c]
+ mov r5, sl
+ mov fp, sl
+ mvn r7, #0
+ mov r6, #0x100
+_02236038:
+ ldr r0, [sp, #0x1c]
+ ldrb r1, [sb]
+ mov r2, r0
+ bl MOD13_02239E0C
+ ldr r2, [r4]
+ mov r1, r7
+ add r2, r2, sl, lsl #2
+ str r0, [r2, #8]
+ ldr r0, [r4]
+ mov r2, r6
+ add r0, r0, sl, lsl #2
+ ldr r0, [r0, #8]
+ mov r3, r5
+ bl MOD13_02239888
+ ldr r0, [r4]
+ mov r1, r7
+ add r0, r0, sl, lsl #2
+ ldr r0, [r0, #8]
+ mov r2, fp
+ bl MOD13_02239814
+ ldrb r0, [r8]
+ add sl, sl, #1
+ add sb, sb, #1
+ cmp sl, r0
+ blt _02236038
+_0223609C:
+ add r1, sp, #0x28
+ str r1, [sp]
+ mov r0, #0
+ mov r1, #0x20
+ mov r2, #0xc
+ mov r3, #1
+ str r0, [sp, #4]
+ bl MOD13_0223A9A4
+ ldr r1, _0223622C ; =0x02243164
+ ldr r1, [r1]
+ str r0, [r1, #0x10]
+ mov r0, #0
+ ldr r1, [sp, #0x28]
+ mov r2, r0
+ bl MOD13_02239B74
+ ldr r1, _0223622C ; =0x02243164
+ ldr r1, [r1]
+ str r0, [r1, #4]
+ bl MOD13_0221EF88
+ ldr r1, [sp, #0x10]
+ mov r3, #2
+ mov r5, r1, lsl #2
+ ldr r1, _02236240 ; =0x0223F6D2
+ ldr r2, _0223622C ; =0x02243164
+ ldrh r4, [r1, r5]
+ mov r1, #0
+ str r4, [sp]
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x18]
+ ldr r3, _02236244 ; =0x0223F6D0
+ str r0, [sp, #0xc]
+ ldr r0, [r2]
+ ldrh r3, [r3, r5]
+ ldr r0, [r0, #0x10]
+ mov r2, r1
+ bl MOD13_0223A4F0
+ ldr r0, _0223622C ; =0x02243164
+ mov r2, #0
+ ldr r3, [r0]
+ mov r1, #0x100
+ str r2, [sp]
+ ldr r0, [r3, #0x10]
+ ldr r3, [r3, #4]
+ bl MOD13_0223A440
+ mov r0, #0
+ mov r1, r0
+ mov r2, #0x1f
+ mov r3, r0
+ bl MOD13_0223ABCC
+ ldr r3, _0223622C ; =0x02243164
+ add r4, sp, #0x20
+ ldr r3, [r3]
+ mov r0, #0
+ ldrb r3, [r3, #0x1c]
+ mov r1, #1
+ mov r2, #0x1f
+ ldrb r3, [r4, r3]
+ bl MOD13_0223ABCC
+ mov r0, #0
+ mov r1, #3
+ mov r2, #0x1f
+ mov r3, #1
+ bl MOD13_0223ABCC
+ ldr r2, _02236248 ; =0x0223F690
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_0223AD38
+ mov r0, #0xc0
+ bl MOD13_022359B8
+ mov r2, #0x4000000
+ ldr r0, [sp, #0x14]
+ ldr r1, [r2]
+ cmp r0, #0
+ bic r0, r1, #0xe000
+ orr r0, r0, #0x6000
+ str r0, [r2]
+ beq _022361FC
+ ldr r1, _0223624C ; =MOD13_02235E20
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0223622C ; =0x02243164
+ add sp, sp, #0x2c
+ ldr r1, [r1]
+ str r0, [r1, #0x14]
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_022361FC:
+ ldr r1, _02236250 ; =MOD13_02235D3C
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0223622C ; =0x02243164
+ ldr r1, [r1]
+ str r0, [r1, #0x14]
+ add sp, sp, #0x2c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02236224: .word 0x0223F688
+_02236228: .word 0x0224307C
+_0223622C: .word 0x02243164
+_02236230: .word 0x04000050
+_02236234: .word 0x0223F678
+_02236238: .word 0x0223F680
+_0223623C: .word 0x0223F6B0
+_02236240: .word 0x0223F6D2
+_02236244: .word 0x0223F6D0
+_02236248: .word 0x0223F690
+_0223624C: .word MOD13_02235E20
+_02236250: .word MOD13_02235D3C
+
+ arm_func_start MOD13_02236254
+MOD13_02236254: ; 0x02236254
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr r1, _02236310 ; =0x02243168
+ mov r5, #1
+ ldr lr, [r1]
+ ldrh r4, [lr, #2]
+ mov ip, r5
+ add r1, lr, #0x24
+ mov r6, #0x1e
+_02236274:
+ mov r2, ip, lsl r5
+ ands r2, r4, r2
+ beq _022362F4
+ sub r2, r5, #1
+ mul r3, r2, r6
+ ldrb r8, [r0]
+ ldrb r7, [r1, r3]
+ add r2, r1, r3
+ cmp r8, r7
+ bne _022362F4
+ ldrb r8, [r0, #1]
+ ldrb r7, [r2, #1]
+ cmp r8, r7
+ bne _022362F4
+ ldrb r8, [r0, #2]
+ ldrb r7, [r2, #2]
+ cmp r8, r7
+ bne _022362F4
+ ldrb r8, [r0, #3]
+ ldrb r7, [r2, #3]
+ cmp r8, r7
+ bne _022362F4
+ ldrb r8, [r0, #4]
+ ldrb r7, [r2, #4]
+ cmp r8, r7
+ bne _022362F4
+ ldrb r7, [r0, #5]
+ ldrb r2, [r2, #5]
+ cmp r7, r2
+ addeq r0, lr, r3
+ ldreqh r0, [r0, #0x2a]
+ ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
+_022362F4:
+ add r2, r5, #1
+ mov r2, r2, lsl #0x10
+ mov r5, r2, lsr #0x10
+ cmp r5, #2
+ blo _02236274
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02236310: .word 0x02243168
+
+ arm_func_start MOD13_02236314
+MOD13_02236314: ; 0x02236314
+ ldr r1, _02236344 ; =0x02243168
+ mov r2, #1
+ ldr r3, [r1]
+ mov r1, r2, lsl r0
+ ldrh r2, [r3, #2]
+ ands r1, r2, r1
+ subne r1, r0, #1
+ addne r2, r3, #0xe
+ movne r0, #0x1e
+ mlane r0, r1, r0, r2
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_02236344: .word 0x02243168
+
+ arm_func_start MOD13_02236348
+MOD13_02236348: ; 0x02236348
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0x14
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r1, _02236410 ; =0x02243168
+ mov r2, #1
+ ldr r3, [r1]
+ mov r1, r2, lsl r4
+ mov r1, r1, lsl #0x10
+ ldrh r2, [r3, #2]
+ mov r4, r1, lsr #0x10
+ mov r5, r0
+ ands r1, r2, r4
+ bne _02236390
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x14
+ mov r0, #0
+ ldmia sp!, {r4, r5, pc}
+_02236390:
+ add r1, sp, #0
+ mov r0, r3
+ mov r2, #0xe
+ bl MI_CpuCopy8
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ ldrh r0, [sp, #4]
+ ands r0, r0, r4
+ addne sp, sp, #0x14
+ movne r0, #2
+ ldmneia sp!, {r4, r5, pc}
+ ldrh r0, [sp, #6]
+ ands r0, r0, r4
+ addne sp, sp, #0x14
+ movne r0, #3
+ ldmneia sp!, {r4, r5, pc}
+ ldrh r0, [sp, #8]
+ ands r0, r0, r4
+ addne sp, sp, #0x14
+ movne r0, #4
+ ldmneia sp!, {r4, r5, pc}
+ ldrh r0, [sp, #0xa]
+ ands r0, r0, r4
+ addne sp, sp, #0x14
+ movne r0, #5
+ ldmneia sp!, {r4, r5, pc}
+ ldrh r0, [sp, #0xc]
+ ands r0, r0, r4
+ movne r0, #6
+ moveq r0, #1
+ add sp, sp, #0x14
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02236410: .word 0x02243168
+
+ arm_func_start MOD13_02236414
+MOD13_02236414: ; 0x02236414
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r2, _02236468 ; =0x02243168
+ ldr r1, _0223646C ; =0x0224316C
+ ldr r2, [r2]
+ add r5, r2, #2
+ add r4, r2, #4
+ add lr, r2, #6
+ add ip, r2, #8
+ add r3, r2, #0xa
+ add r2, r2, #0xc
+ str r5, [r1]
+ str r4, [r1, #4]
+ str lr, [r1, #8]
+ str ip, [r1, #0xc]
+ str r3, [r1, #0x10]
+ str r2, [r1, #0x14]
+ ldr r0, [r1, r0, lsl #2]
+ ldrh r0, [r0]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02236468: .word 0x02243168
+_0223646C: .word 0x0224316C
+
+ arm_func_start MOD13_02236470
+MOD13_02236470: ; 0x02236470
+ ldr r0, _02236480 ; =0x02243168
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ bx lr
+ .align 2, 0
+_02236480: .word 0x02243168
+
+ arm_func_start MOD13_02236484
+MOD13_02236484: ; 0x02236484
+ ldr r1, _02236494 ; =0x02243168
+ ldr r1, [r1]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_02236494: .word 0x02243168
+
+ arm_func_start MOD13_02236498
+MOD13_02236498: ; 0x02236498
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r5, r0
+ mov r4, r2
+ cmp r1, #0xe
+ addls pc, pc, r1, lsl #2
+ b _022367CC
+_022364B0: ; jump table
+ b _022367CC ; case 0
+ ldmia sp!, {r4, r5, r6, pc} ; case 1
+ b _022364EC ; case 2
+ b _02236574 ; case 3
+ ldmia sp!, {r4, r5, r6, pc} ; case 4
+ ldmia sp!, {r4, r5, r6, pc} ; case 5
+ ldmia sp!, {r4, r5, r6, pc} ; case 6
+ b _022366AC ; case 7
+ ldmia sp!, {r4, r5, r6, pc} ; case 8
+ b _022366DC ; case 9
+ b _022365FC ; case 10
+ ldmia sp!, {r4, r5, r6, pc} ; case 11
+ b _02236724 ; case 12
+ b _02236780 ; case 13
+ b _02236668 ; case 14
+_022364EC:
+ bl MOD13_02236470
+ cmp r0, #2
+ ldmneia sp!, {r4, r5, r6, pc}
+ ldr r0, _022367D4 ; =0x02243168
+ ldr r6, [r0]
+ bl OS_DisableInterrupts
+ ldrh r2, [r6, #2]
+ mov r1, #1
+ orr r1, r2, r1, lsl r5
+ strh r1, [r6, #2]
+ bl OS_RestoreInterrupts
+ ldr r1, _022367D4 ; =0x02243168
+ sub r3, r5, #1
+ mov r0, #0x1e
+ mul r0, r3, r0
+ ldr r2, [r1]
+ add r3, r2, #0x24
+ ldrb r2, [r4, #0xa]
+ add ip, r3, r0
+ strb r2, [r3, r0]
+ ldrb r2, [r4, #0xb]
+ strb r2, [ip, #1]
+ ldrb r2, [r4, #0xc]
+ strb r2, [ip, #2]
+ ldrb r2, [r4, #0xd]
+ strb r2, [ip, #3]
+ ldrb r2, [r4, #0xe]
+ strb r2, [ip, #4]
+ ldrb r2, [r4, #0xf]
+ strb r2, [ip, #5]
+ ldr r1, [r1]
+ add r0, r1, r0
+ strh r5, [r0, #0x2a]
+ ldmia sp!, {r4, r5, r6, pc}
+_02236574:
+ bl MOD13_02236348
+ cmp r0, #6
+ ldmeqia sp!, {r4, r5, r6, pc}
+ mov r0, #1
+ mvn r0, r0, lsl r5
+ mov r4, r0, lsl #0x10
+ bl OS_DisableInterrupts
+ ldr r1, _022367D4 ; =0x02243168
+ ldr r3, [r1]
+ ldrh r2, [r3, #2]
+ and r2, r2, r4, lsr #16
+ strh r2, [r3, #2]
+ ldr r3, [r1]
+ ldrh r2, [r3, #4]
+ and r2, r2, r4, lsr #16
+ strh r2, [r3, #4]
+ ldr r3, [r1]
+ ldrh r2, [r3, #6]
+ and r2, r2, r4, lsr #16
+ strh r2, [r3, #6]
+ ldr r3, [r1]
+ ldrh r2, [r3, #8]
+ and r2, r2, r4, lsr #16
+ strh r2, [r3, #8]
+ ldr r3, [r1]
+ ldrh r2, [r3, #0xa]
+ and r2, r2, r4, lsr #16
+ strh r2, [r3, #0xa]
+ ldr r2, [r1]
+ ldrh r1, [r2, #0xc]
+ and r1, r1, r4, lsr #16
+ strh r1, [r2, #0xc]
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4, r5, r6, pc}
+_022365FC:
+ bl MOD13_02236470
+ cmp r0, #2
+ beq _02236614
+ mov r0, r5
+ bl MOD13_02236B38
+ ldmia sp!, {r4, r5, r6, pc}
+_02236614:
+ ldr r0, _022367D4 ; =0x02243168
+ mov r1, #1
+ ldr r3, [r0]
+ mov r0, r5
+ ldrh r2, [r3, #4]
+ orr r1, r2, r1, lsl r5
+ strh r1, [r3, #4]
+ bl MOD13_02236C1C
+ mov r0, r5
+ bl MOD13_022132CC
+ cmp r0, #0
+ ldmeqia sp!, {r4, r5, r6, pc}
+ ldr r1, _022367D4 ; =0x02243168
+ sub r2, r5, #1
+ ldr r3, [r1]
+ mov r1, #0x1e
+ add r3, r3, #0xe
+ mla r1, r2, r1, r3
+ mov r2, #0x16
+ bl MI_CpuCopy8
+ ldmia sp!, {r4, r5, r6, pc}
+_02236668:
+ ldr r0, _022367D4 ; =0x02243168
+ mov r4, #1
+ ldr r3, [r0]
+ mvn r1, r4, lsl r5
+ ldrh r2, [r3, #4]
+ and r1, r2, r1
+ strh r1, [r3, #4]
+ ldr r1, [r0]
+ ldrh r0, [r1, #6]
+ orr r0, r0, r4, lsl r5
+ strh r0, [r1, #6]
+ bl MOD13_02236470
+ cmp r0, #3
+ ldmneia sp!, {r4, r5, r6, pc}
+ mov r0, r5
+ bl MOD13_02236A54
+ ldmia sp!, {r4, r5, r6, pc}
+_022366AC:
+ ldr r0, _022367D4 ; =0x02243168
+ mov r4, #1
+ ldr r3, [r0]
+ mvn r1, r4, lsl r5
+ ldrh r2, [r3, #8]
+ and r1, r2, r1
+ strh r1, [r3, #8]
+ ldr r1, [r0]
+ ldrh r0, [r1, #0xa]
+ orr r0, r0, r4, lsl r5
+ strh r0, [r1, #0xa]
+ ldmia sp!, {r4, r5, r6, pc}
+_022366DC:
+ ldr r0, _022367D4 ; =0x02243168
+ mov r4, #1
+ ldr r3, [r0]
+ mvn r1, r4, lsl r5
+ ldrh r2, [r3, #0xa]
+ and r1, r2, r1
+ strh r1, [r3, #0xa]
+ ldr r2, [r0]
+ ldrh r1, [r2, #0xc]
+ orr r1, r1, r4, lsl r5
+ strh r1, [r2, #0xc]
+ ldr r0, [r0]
+ ldrh r1, [r0, #2]
+ ldrh r0, [r0, #0xc]
+ cmp r1, r0
+ ldmneia sp!, {r4, r5, r6, pc}
+ bl MOD13_02214F18
+ ldmia sp!, {r4, r5, r6, pc}
+_02236724:
+ bl MOD13_02236470
+ cmp r0, #4
+ bne _0223673C
+ mov r0, #5
+ bl MOD13_02236484
+ b _02236744
+_0223673C:
+ mov r0, #0
+ bl MOD13_02236484
+_02236744:
+ ldr r0, _022367D4 ; =0x02243168
+ ldr r0, [r0]
+ add r0, r0, #0x1b000
+ ldr r1, [r0, #0x144]
+ cmp r1, #0
+ movne r1, #0
+ strne r1, [r0, #0x144]
+ ldr r0, _022367D4 ; =0x02243168
+ ldr r0, [r0]
+ add r0, r0, #0x1b000
+ ldr r1, [r0, #0x140]
+ cmp r1, #0
+ movne r1, #0
+ strne r1, [r0, #0x140]
+ ldmia sp!, {r4, r5, r6, pc}
+_02236780:
+ ldrh r0, [r4]
+ cmp r0, #8
+ bgt _022367B8
+ cmp r0, #8
+ ldmgeia sp!, {r4, r5, r6, pc}
+ cmp r0, #2
+ ldmgtia sp!, {r4, r5, r6, pc}
+ cmp r0, #1
+ ldmltia sp!, {r4, r5, r6, pc}
+ cmp r0, #1
+ beq _022367C0
+ cmp r0, #2
+ beq _022367C0
+ ldmia sp!, {r4, r5, r6, pc}
+_022367B8:
+ cmp r0, #9
+ ldmneia sp!, {r4, r5, r6, pc}
+_022367C0:
+ mov r0, #7
+ bl MOD13_02236484
+ ldmia sp!, {r4, r5, r6, pc}
+_022367CC:
+ bl OS_Terminate
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_022367D4: .word 0x02243168
+
+ arm_func_start MOD13_022367D8
+MOD13_022367D8: ; 0x022367D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #6
+ bl MOD13_02236484
+ bl MOD13_02214F18
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_022367F4
+MOD13_022367F4: ; 0x022367F4
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ mov r8, #0
+ mov sb, #1
+ ldr r4, _022368F8 ; =0x02243168
+ mov r6, sb
+ mov r5, #3
+_02236810:
+ ldr r0, [r4]
+ mov r7, r6, lsl sb
+ ldrh r0, [r0, #0xa]
+ ands r0, r0, r7
+ beq _022368BC
+ mov r0, sb
+ mov r1, r5
+ bl MOD13_02213174
+ cmp r0, #0
+ orrne r0, r8, r7
+ movne r0, r0, lsl #0x10
+ movne r8, r0, lsr #0x10
+ bne _022368BC
+ mvn r0, r7
+ mov r7, r0, lsl #0x10
+ bl OS_DisableInterrupts
+ ldr r2, [r4]
+ ldrh r1, [r2, #2]
+ and r1, r1, r7, lsr #16
+ strh r1, [r2, #2]
+ ldr r2, [r4]
+ ldrh r1, [r2, #4]
+ and r1, r1, r7, lsr #16
+ strh r1, [r2, #4]
+ ldr r2, [r4]
+ ldrh r1, [r2, #6]
+ and r1, r1, r7, lsr #16
+ strh r1, [r2, #6]
+ ldr r2, [r4]
+ ldrh r1, [r2, #8]
+ and r1, r1, r7, lsr #16
+ strh r1, [r2, #8]
+ ldr r2, [r4]
+ ldrh r1, [r2, #0xa]
+ and r1, r1, r7, lsr #16
+ strh r1, [r2, #0xa]
+ ldr r2, [r4]
+ ldrh r1, [r2, #0xc]
+ and r1, r1, r7, lsr #16
+ strh r1, [r2, #0xc]
+ bl OS_RestoreInterrupts
+ mov r0, sb
+ bl MOD13_02214D6C
+_022368BC:
+ add r0, sb, #1
+ mov r0, r0, lsl #0x10
+ mov sb, r0, lsr #0x10
+ cmp sb, #0x10
+ blo _02236810
+ cmp r8, #0
+ bne _022368E8
+ mov r0, #7
+ bl MOD13_02236484
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+_022368E8:
+ mov r0, #4
+ bl MOD13_02236484
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ .align 2, 0
+_022368F8: .word 0x02243168
+
+ arm_func_start MOD13_022368FC
+MOD13_022368FC: ; 0x022368FC
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r4, _02236964 ; =0x02243168
+ ldr r0, [r4]
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, pc}
+ mov r6, #1
+ mov r5, r6
+_02236920:
+ ldr r1, [r4]
+ mov r0, r5, lsl r6
+ ldrh r1, [r1, #2]
+ ands r0, r1, r0
+ beq _02236948
+ mov r0, r6
+ bl MOD13_02213270
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, pc}
+_02236948:
+ add r0, r6, #1
+ mov r0, r0, lsl #0x10
+ mov r6, r0, lsr #0x10
+ cmp r6, #0x10
+ blo _02236920
+ mov r0, #1
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02236964: .word 0x02243168
+
+ arm_func_start MOD13_02236968
+MOD13_02236968: ; 0x02236968
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r0, #3
+ bl MOD13_02236484
+ mov r5, #1
+ ldr r7, _02236A50 ; =0x02243168
+ mov r4, r5
+_02236984:
+ ldr r1, [r7]
+ mov r2, r4, lsl r5
+ ldrh r0, [r1, #2]
+ ands r0, r0, r2
+ beq _02236A34
+ ldrh r0, [r1, #4]
+ ands r0, r0, r2
+ bne _02236A34
+ ldrh r0, [r1, #6]
+ ands r0, r0, r2
+ bne _02236A2C
+ mvn r0, r2
+ mov r6, r0, lsl #0x10
+ bl OS_DisableInterrupts
+ ldr r2, [r7]
+ ldrh r1, [r2, #2]
+ and r1, r1, r6, lsr #16
+ strh r1, [r2, #2]
+ ldr r2, [r7]
+ ldrh r1, [r2, #4]
+ and r1, r1, r6, lsr #16
+ strh r1, [r2, #4]
+ ldr r2, [r7]
+ ldrh r1, [r2, #6]
+ and r1, r1, r6, lsr #16
+ strh r1, [r2, #6]
+ ldr r2, [r7]
+ ldrh r1, [r2, #8]
+ and r1, r1, r6, lsr #16
+ strh r1, [r2, #8]
+ ldr r2, [r7]
+ ldrh r1, [r2, #0xa]
+ and r1, r1, r6, lsr #16
+ strh r1, [r2, #0xa]
+ ldr r2, [r7]
+ ldrh r1, [r2, #0xc]
+ and r1, r1, r6, lsr #16
+ strh r1, [r2, #0xc]
+ bl OS_RestoreInterrupts
+ mov r0, r5
+ bl MOD13_02214D6C
+ b _02236A34
+_02236A2C:
+ mov r0, r5
+ bl MOD13_02236A54
+_02236A34:
+ add r0, r5, #1
+ mov r0, r0, lsl #0x10
+ mov r5, r0, lsr #0x10
+ cmp r5, #0x10
+ blo _02236984
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02236A50: .word 0x02243168
+
+ arm_func_start MOD13_02236A54
+MOD13_02236A54: ; 0x02236A54
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r1, #2
+ mov r4, r0
+ bl MOD13_02213174
+ cmp r0, #0
+ bne _02236AF8
+ mov r0, #1
+ mvn r0, r0, lsl r4
+ mov r5, r0, lsl #0x10
+ bl OS_DisableInterrupts
+ ldr r1, _02236B34 ; =0x02243168
+ ldr r3, [r1]
+ ldrh r2, [r3, #2]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #2]
+ ldr r3, [r1]
+ ldrh r2, [r3, #4]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #4]
+ ldr r3, [r1]
+ ldrh r2, [r3, #6]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #6]
+ ldr r3, [r1]
+ ldrh r2, [r3, #8]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #8]
+ ldr r3, [r1]
+ ldrh r2, [r3, #0xa]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #0xa]
+ ldr r2, [r1]
+ ldrh r1, [r2, #0xc]
+ and r1, r1, r5, lsr #16
+ strh r1, [r2, #0xc]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ bl MOD13_02214D6C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02236AF8:
+ bl OS_DisableInterrupts
+ ldr r1, _02236B34 ; =0x02243168
+ mov ip, #1
+ ldr r5, [r1]
+ mvn r2, ip, lsl r4
+ ldrh r3, [r5, #6]
+ and r2, r3, r2
+ strh r2, [r5, #6]
+ ldr r2, [r1]
+ ldrh r1, [r2, #8]
+ orr r1, r1, ip, lsl r4
+ strh r1, [r2, #8]
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02236B34: .word 0x02243168
+
+ arm_func_start MOD13_02236B38
+MOD13_02236B38: ; 0x02236B38
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r1, #0
+ mov r4, r0
+ bl MOD13_02213174
+ cmp r0, #0
+ bne _02236BDC
+ mov r0, #1
+ mvn r0, r0, lsl r4
+ mov r5, r0, lsl #0x10
+ bl OS_DisableInterrupts
+ ldr r1, _02236C18 ; =0x02243168
+ ldr r3, [r1]
+ ldrh r2, [r3, #2]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #2]
+ ldr r3, [r1]
+ ldrh r2, [r3, #4]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #4]
+ ldr r3, [r1]
+ ldrh r2, [r3, #6]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #6]
+ ldr r3, [r1]
+ ldrh r2, [r3, #8]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #8]
+ ldr r3, [r1]
+ ldrh r2, [r3, #0xa]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #0xa]
+ ldr r2, [r1]
+ ldrh r1, [r2, #0xc]
+ and r1, r1, r5, lsr #16
+ strh r1, [r2, #0xc]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ bl MOD13_02214D6C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02236BDC:
+ bl OS_DisableInterrupts
+ ldr r1, _02236C18 ; =0x02243168
+ mov r2, #1
+ ldr r3, [r1]
+ mvn r4, r2, lsl r4
+ ldrh r2, [r3, #4]
+ and r2, r2, r4
+ strh r2, [r3, #4]
+ ldr r2, [r1]
+ ldrh r1, [r2, #2]
+ and r1, r1, r4
+ strh r1, [r2, #2]
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02236C18: .word 0x02243168
+
+ arm_func_start MOD13_02236C1C
+MOD13_02236C1C: ; 0x02236C1C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r4, r0
+ bl MOD13_02213174
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #1
+ mvn r0, r0, lsl r4
+ mov r5, r0, lsl #0x10
+ bl OS_DisableInterrupts
+ ldr r1, _02236CC4 ; =0x02243168
+ ldr r3, [r1]
+ ldrh r2, [r3, #2]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #2]
+ ldr r3, [r1]
+ ldrh r2, [r3, #4]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #4]
+ ldr r3, [r1]
+ ldrh r2, [r3, #6]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #6]
+ ldr r3, [r1]
+ ldrh r2, [r3, #8]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #8]
+ ldr r3, [r1]
+ ldrh r2, [r3, #0xa]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #0xa]
+ ldr r2, [r1]
+ ldrh r1, [r2, #0xc]
+ and r1, r1, r5, lsr #16
+ strh r1, [r2, #0xc]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ bl MOD13_02214D6C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02236CC4: .word 0x02243168
+
+ arm_func_start MOD13_02236CC8
+MOD13_02236CC8: ; 0x02236CC8
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #0x48
+ mov r6, r0
+ ldr r0, [r6]
+ mov r4, #0
+ cmp r0, #0
+ moveq r5, r4
+ beq _02236D10
+ add r0, sp, #0
+ bl FS_InitFile
+ ldr r1, [r6]
+ add r0, sp, #0
+ bl FS_OpenFile
+ cmp r0, #0
+ addeq sp, sp, #0x48
+ moveq r0, r4
+ ldmeqia sp!, {r4, r5, r6, pc}
+ add r5, sp, #0
+_02236D10:
+ mov r0, r5
+ bl MOD13_0221411C
+ cmp r0, #0
+ beq _02236D7C
+ ldr r1, _02236D98 ; =0x02243168
+ ldr r0, [r1]
+ add r2, r0, #0x2c
+ add r0, r0, #0x1b000
+ str r2, [r0, #0x144]
+ ldr r0, [r1]
+ add r0, r0, #0x1b000
+ ldr r1, [r0, #0x144]
+ cmp r1, #0
+ beq _02236D7C
+ mov r0, r5
+ mov r2, #0x10000
+ bl MOD13_02213CB0
+ cmp r0, #0
+ beq _02236D7C
+ ldr r1, _02236D98 ; =0x02243168
+ mov r0, r6
+ ldr r1, [r1]
+ add r1, r1, #0x1b000
+ ldr r1, [r1, #0x144]
+ bl MOD13_02213944
+ cmp r0, #0
+ movne r4, #1
+_02236D7C:
+ add r0, sp, #0
+ cmp r5, r0
+ bne _02236D8C
+ bl FS_CloseFile
+_02236D8C:
+ mov r0, r4
+ add sp, sp, #0x48
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02236D98: .word 0x02243168
+
+ arm_func_start MOD13_02236D9C
+MOD13_02236D9C: ; 0x02236D9C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ mov r4, r1
+ mov r0, #2
+ bl MOD13_02236484
+ mov r0, r4
+ bl MOD13_02215028
+ cmp r0, #0
+ beq _02236DD4
+ mov r0, #7
+ bl MOD13_02236484
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02236DD4:
+ mov r0, r5
+ bl MOD13_02236CC8
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ bl OS_Terminate
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+
+ arm_func_start MOD13_02236DF4
+MOD13_02236DF4: ; 0x02236DF4
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0x7c
+ mov r5, r0
+ add r0, sp, #0x28
+ mov r4, r1
+ bl OS_GetOwnerInfo
+ ldrb r2, [sp, #4]
+ ldrb r1, [sp, #0x29]
+ ldrh r3, [sp, #0x40]
+ bic r2, r2, #0xf
+ and r1, r1, #0xf
+ orr r2, r2, r1
+ strb r2, [sp, #4]
+ add r0, sp, #0x2c
+ add r1, sp, #6
+ mov r2, r3, lsl #1
+ strb r3, [sp, #5]
+ bl MI_CpuCopy8
+ ldrb r0, [sp, #4]
+ add ip, sp, #0x1a
+ mov r1, #0
+ bic r0, r0, #0xf0
+ strb r0, [sp, #4]
+ strh r1, [ip]
+ strh r1, [ip, #2]
+ strh r1, [ip, #4]
+ strh r1, [ip, #6]
+ strh r1, [ip, #8]
+ strh r1, [ip, #0xa]
+ ldr r0, _02236F04 ; =0x02243168
+ strh r1, [ip, #0xc]
+ ldr lr, [r0]
+ mov r2, #3
+ mov r3, lr
+_02236E7C:
+ ldrh r1, [ip], #2
+ ldrh r0, [ip], #2
+ subs r2, r2, #1
+ strh r1, [r3], #2
+ strh r0, [r3], #2
+ bne _02236E7C
+ ldrh r2, [ip]
+ ldr r0, _02236F08 ; =0x00010040
+ add r1, lr, #0x1b000
+ strh r2, [r3]
+ add r0, lr, r0
+ str r0, [r1, #0x140]
+ mov r1, #2
+ str r1, [sp]
+ ldr r0, _02236F04 ; =0x02243168
+ add r1, sp, #4
+ ldr r0, [r0]
+ mov r2, r5
+ add r0, r0, #0x1b000
+ ldr r0, [r0, #0x140]
+ mov r3, r4
+ bl MOD13_02215474
+ cmp r0, #0
+ beq _02236EE0
+ bl OS_Terminate
+_02236EE0:
+ mov r0, #0x100
+ mov r1, #1
+ bl MOD13_02215360
+ ldr r0, _02236F0C ; =MOD13_02236498
+ bl MOD13_02213368
+ mov r0, #1
+ bl MOD13_02236484
+ add sp, sp, #0x7c
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02236F04: .word 0x02243168
+_02236F08: .word 0x00010040
+_02236F0C: .word MOD13_02236498
+
+ arm_func_start MOD13_02236F10
+MOD13_02236F10: ; 0x02236F10
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _02236F54 ; =0x02243168
+ ldr r1, _02236F58 ; =0x0001B160
+ str r0, [r2]
+ add r0, r0, r1
+ bl MOD13_0223831C
+ ldr r1, _02236F54 ; =0x02243168
+ mov r2, #0
+ ldr r0, [r1]
+ add r0, r0, #0x1b000
+ str r2, [r0, #0x140]
+ ldr r0, [r1]
+ add r0, r0, #0x1b000
+ str r2, [r0, #0x144]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02236F54: .word 0x02243168
+_02236F58: .word 0x0001B160
+
+ arm_func_start MOD13_02236F5C
+MOD13_02236F5C: ; 0x02236F5C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02236FB0 ; =0x02243188
+ ldr r0, [r0]
+ ldr r0, [r0, #0x40]
+ cmp r0, #1
+ beq _02236F7C
+ bl OS_Terminate
+_02236F7C:
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _02236FB4 ; =MOD13_0223794C
+ bl WM_End
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ mov r0, #9
+ bl MOD13_02238294
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02236FB0: .word 0x02243188
+_02236FB4: .word MOD13_0223794C
+
+ arm_func_start MOD13_02236FB8
+MOD13_02236FB8: ; 0x02236FB8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022370F8 ; =0x02243188
+ ldr r0, [r0]
+ ldr r2, [r0, #0x40]
+ cmp r2, #1
+ bne _02236FFC
+ ldr r0, _022370FC ; =0x02243184
+ ldr r2, [r0]
+ cmp r2, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r1, _02237100 ; =0x022407D0
+ mov r0, #0x8000000
+ blx r2
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02236FFC:
+ ldr r0, _022370FC ; =0x02243184
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _02237018
+ ldr r1, _02237104 ; =0x022407F4
+ mov r0, #0x8000000
+ blx r3
+_02237018:
+ ldr r0, _022370F8 ; =0x02243188
+ ldr r0, [r0]
+ ldr r0, [r0, #0x40]
+ cmp r0, #6
+ beq _02237050
+ cmp r0, #5
+ beq _02237050
+ cmp r0, #4
+ beq _02237050
+ mov r0, #3
+ bl MOD13_02238294
+ bl MOD13_02237108
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237050:
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _022370F8 ; =0x02243188
+ ldr r0, [r0]
+ ldr r0, [r0, #0x44]
+ cmp r0, #5
+ addls pc, pc, r0, lsl #2
+ b _022370F0
+_02237070: ; jump table
+ b _022370DC ; case 0
+ b _022370A4 ; case 1
+ b _022370C0 ; case 2
+ b _02237088 ; case 3
+ b _022370DC ; case 4
+ b _022370A4 ; case 5
+_02237088:
+ bl MOD13_02237AE4
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02237108
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022370A4:
+ bl MOD13_02237AA8
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02237108
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022370C0:
+ bl MOD13_02237C48
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02237108
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022370DC:
+ bl MOD13_02237C0C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02237108
+_022370F0:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022370F8: .word 0x02243188
+_022370FC: .word 0x02243184
+_02237100: .word 0x022407D0
+_02237104: .word 0x022407F4
+
+ arm_func_start MOD13_02237108
+MOD13_02237108: ; 0x02237108
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022379B4
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0xa
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_02237130
+MOD13_02237130: ; 0x02237130
+ stmdb sp!, {r4, lr}
+ ldr r1, _022371CC ; =0x02243188
+ ldr r2, _022371D0 ; =0x000013E0
+ ldr r3, [r1]
+ mov r1, r0
+ add r0, r3, r2
+ add r2, r3, #0x1c00
+ bl WM_StepDataSharing
+ mov r4, r0
+ cmp r4, #7
+ bne _02237180
+ ldr r0, _022371D4 ; =0x02243184
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _02237178
+ ldr r1, _022371D8 ; =0x02240818
+ mov r0, #0x8000000
+ blx r2
+_02237178:
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+_02237180:
+ cmp r4, #5
+ bne _022371B4
+ ldr r0, _022371D4 ; =0x02243184
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _022371A4
+ ldr r1, _022371DC ; =0x02240848
+ mov r0, #0x8000000
+ blx r2
+_022371A4:
+ mov r0, r4
+ bl MOD13_02238274
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+_022371B4:
+ cmp r4, #0
+ moveq r0, #1
+ ldmeqia sp!, {r4, pc}
+ bl MOD13_02238274
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022371CC: .word 0x02243188
+_022371D0: .word 0x000013E0
+_022371D4: .word 0x02243184
+_022371D8: .word 0x02240818
+_022371DC: .word 0x02240848
+
+ arm_func_start MOD13_022371E0
+MOD13_022371E0: ; 0x022371E0
+ ldr r2, _02237200 ; =0x02243188
+ ldr r1, _02237204 ; =0x000013E0
+ ldr r3, [r2]
+ ldr ip, _02237208 ; =0x020DA048
+ mov r2, r0
+ add r0, r3, r1
+ add r1, r3, #0x1c00
+ bx ip
+ .align 2, 0
+_02237200: .word 0x02243188
+_02237204: .word 0x000013E0
+_02237208: .word 0x020DA048
+
+ arm_func_start MOD13_0223720C
+MOD13_0223720C: ; 0x0223720C
+ ldr r1, _0223721C ; =0x02243188
+ ldr r1, [r1]
+ str r0, [r1, #0x4c]
+ bx lr
+ .align 2, 0
+_0223721C: .word 0x02243188
+
+ arm_func_start MOD13_02237220
+MOD13_02237220: ; 0x02237220
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r3, _02237398 ; =0x02243188
+ mov r6, r0
+ ldr r0, [r3]
+ mov r5, r1
+ ldr r0, [r0, #0x40]
+ mov r4, r2
+ cmp r0, #1
+ beq _02237248
+ bl OS_Terminate
+_02237248:
+ ldr r2, _02237398 ; =0x02243188
+ mov r1, #0x180
+ ldr r0, [r2]
+ mov r3, #0xe0
+ add r0, r0, #0x1000
+ str r1, [r0, #0x2a4]
+ ldr r0, [r2]
+ ldr r1, _0223739C ; =0x02243184
+ add r0, r0, #0x1000
+ str r3, [r0, #0x2a0]
+ ldr r3, [r1]
+ cmp r3, #0
+ beq _02237294
+ ldr r0, [r2]
+ ldr r1, _022373A0 ; =0x0224087C
+ add r0, r0, #0x1000
+ ldr r2, [r0, #0x2a4]
+ mov r0, #0x8000000
+ blx r3
+_02237294:
+ ldr r0, _0223739C ; =0x02243184
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _022372C0
+ ldr r0, _02237398 ; =0x02243188
+ ldr r1, _022373A4 ; =0x02240894
+ ldr r2, [r0]
+ mov r0, #0x8000000
+ add r2, r2, #0x1000
+ ldr r2, [r2, #0x2a0]
+ blx r3
+_022372C0:
+ ldr r1, _02237398 ; =0x02243188
+ mov r0, #3
+ ldr r1, [r1]
+ str r6, [r1, #0x44]
+ bl MOD13_02238294
+ ldr r0, _02237398 ; =0x02243188
+ ldr r1, [r0]
+ strh r5, [r1, #0xc]
+ ldr r0, [r0]
+ strh r4, [r0, #0x32]
+ bl WM_GetDispersionBeaconPeriod
+ ldr r1, _02237398 ; =0x02243188
+ mov r2, #0xd0
+ ldr r3, [r1]
+ mov r4, #0x44
+ strh r0, [r3, #0x18]
+ ldr r0, [r1]
+ mov r3, #2
+ strh r2, [r0, #0x34]
+ ldr r0, [r1]
+ mov r2, #0
+ strh r4, [r0, #0x36]
+ ldr r0, [r1]
+ mov r4, #1
+ strh r3, [r0, #0x10]
+ ldr r0, [r1]
+ cmp r6, #2
+ strh r2, [r0, #0x16]
+ ldr r0, [r1]
+ strh r2, [r0, #0x12]
+ ldr r0, [r1]
+ strh r4, [r0, #0xe]
+ ldr r0, _02237398 ; =0x02243188
+ movne r4, r2
+ ldr r0, [r0]
+ cmp r6, #0
+ strh r4, [r0, #0x14]
+ beq _02237368
+ cmp r6, #2
+ beq _02237368
+ cmp r6, #4
+ bne _02237370
+_02237368:
+ bl MOD13_02238224
+ ldmia sp!, {r4, r5, r6, pc}
+_02237370:
+ ldr r0, _0223739C ; =0x02243184
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _02237390
+ ldr r1, _022373A8 ; =0x022408AC
+ mov r2, r6
+ mov r0, #0x8000000
+ blx r3
+_02237390:
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02237398: .word 0x02243188
+_0223739C: .word 0x02243184
+_022373A0: .word 0x0224087C
+_022373A4: .word 0x02240894
+_022373A8: .word 0x022408AC
+
+ arm_func_start MOD13_022373AC
+MOD13_022373AC: ; 0x022373AC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _022373D4
+ bl MOD13_02238274
+ mov r0, #0xa
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022373D4:
+ ldr r0, _02237408 ; =MOD13_02237464
+ bl WM_SetIndCallback
+ cmp r0, #0
+ beq _022373F8
+ bl MOD13_02238274
+ mov r0, #0xa
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022373F8:
+ mov r0, #1
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237408: .word MOD13_02237464
+
+ arm_func_start MOD13_0223740C
+MOD13_0223740C: ; 0x0223740C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _0223745C ; =0x02243188
+ ldr r1, _02237460 ; =MOD13_022373AC
+ ldr r0, [r0]
+ mov r2, #2
+ add r0, r0, #0x80
+ bl WM_Initialize
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0xa
+ bl MOD13_02238294
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223745C: .word 0x02243188
+_02237460: .word MOD13_022373AC
+
+ arm_func_start MOD13_02237464
+MOD13_02237464: ; 0x02237464
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #8
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_02238294
+ bl OS_Terminate
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_02237490
+MOD13_02237490: ; 0x02237490
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _0223750C ; =0x02243188
+ mov r0, #0
+ ldr r1, [r2]
+ mov r3, #1
+ add r1, r1, #0x1000
+ str r0, [r1, #0x2a4]
+ ldr r1, [r2]
+ add r1, r1, #0x1000
+ str r0, [r1, #0x2a0]
+ ldr r1, [r2]
+ str r0, [r1, #0x48]
+ ldr r1, [r2]
+ strh r0, [r1, #0x50]
+ ldr r1, [r2]
+ strh r3, [r1, #0x52]
+ ldr r1, [r2]
+ str r0, [r1, #0x54]
+ ldr r1, [r2]
+ str r0, [r1]
+ ldr r1, [r2]
+ strh r0, [r1, #4]
+ ldr r1, [r2]
+ str r0, [r1, #0x4c]
+ bl MOD13_0223740C
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223750C: .word 0x02243188
+
+ arm_func_start MOD13_02237510
+MOD13_02237510: ; 0x02237510
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r4, #0
+ mov r2, r4
+ mov r5, r4
+ mov r3, #1
+_02237528:
+ mov r1, r3, lsl r5
+ ands r1, r0, r1
+ beq _0223754C
+ add r1, r5, #1
+ add r2, r2, #1
+ mov r1, r1, lsl #0x10
+ mov r2, r2, lsl #0x10
+ mov r4, r1, asr #0x10
+ mov r2, r2, lsr #0x10
+_0223754C:
+ add r1, r5, #1
+ mov r1, r1, lsl #0x10
+ mov r5, r1, asr #0x10
+ cmp r5, #0x10
+ blt _02237528
+ cmp r2, #1
+ addls sp, sp, #4
+ movls r0, r4
+ ldmlsia sp!, {r4, r5, pc}
+ ldr lr, _022375FC ; =0x02243188
+ ldr r3, _02237600 ; =0x00010DCD
+ ldr r5, [lr]
+ ldr ip, _02237604 ; =0x00003039
+ ldr r4, [r5, #0x58]
+ mov r1, #0
+ mla r3, r4, r3, ip
+ str r3, [r5, #0x58]
+ ldr r3, [lr]
+ ldr r3, [r3, #0x58]
+ and r3, r3, #0xff
+ mul r3, r2, r3
+ mov r2, r3, lsl #8
+ mov r3, r2, lsr #0x10
+_022375A8:
+ ands r2, r0, #1
+ beq _022375D4
+ cmp r3, #0
+ addeq r0, r1, #1
+ moveq r0, r0, lsl #0x10
+ addeq sp, sp, #4
+ moveq r0, r0, asr #0x10
+ ldmeqia sp!, {r4, r5, pc}
+ sub r2, r3, #1
+ mov r2, r2, lsl #0x10
+ mov r3, r2, lsr #0x10
+_022375D4:
+ add r1, r1, #1
+ mov r1, r1, lsl #0x10
+ mov r0, r0, lsl #0xf
+ mov r1, r1, asr #0x10
+ cmp r1, #0x10
+ mov r0, r0, lsr #0x10
+ blt _022375A8
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_022375FC: .word 0x02243188
+_02237600: .word 0x00010DCD
+_02237604: .word 0x00003039
+
+ arm_func_start MOD13_02237608
+MOD13_02237608: ; 0x02237608
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02237684 ; =0x02243188
+ ldr r0, [r0]
+ ldr r0, [r0, #0x40]
+ cmp r0, #7
+ beq _02237628
+ bl OS_Terminate
+_02237628:
+ mov r0, #1
+ bl MOD13_02238294
+ ldr r0, _02237684 ; =0x02243188
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x60]
+ bl MOD13_02237510
+ ldr r2, _02237684 ; =0x02243188
+ ldr r1, _02237688 ; =0x02243184
+ ldr r3, [r2]
+ strh r0, [r3, #0x5c]
+ ldr r3, [r1]
+ cmp r3, #0
+ beq _02237670
+ ldr r0, [r2]
+ ldr r1, _0223768C ; =0x022408C8
+ ldrh r2, [r0, #0x5c]
+ mov r0, #0x8000000
+ blx r3
+_02237670:
+ ldr r0, _02237684 ; =0x02243188
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x5c]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237684: .word 0x02243188
+_02237688: .word 0x02243184
+_0223768C: .word 0x022408C8
+
+ arm_func_start MOD13_02237690
+MOD13_02237690: ; 0x02237690
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r3, r1
+ mov ip, #0x1e
+ mov r1, #3
+ mov r2, #0x11
+ str ip, [sp]
+ bl WM_MeasureChannel
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ beq _022376DC
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ ldmia sp!, {r4, pc}
+_022376DC:
+ ldr r0, _02237788 ; =0x02243184
+ ldr ip, [r0]
+ cmp ip, #0
+ beq _02237700
+ ldrh r2, [r4, #8]
+ ldrh r3, [r4, #0xa]
+ ldr r1, _0223778C ; =0x022408E0
+ mov r0, #0x8000000
+ blx ip
+_02237700:
+ ldr r0, _02237790 ; =0x02243188
+ ldrh r2, [r4, #0xa]
+ ldr r3, [r0]
+ ldrh ip, [r4, #8]
+ ldrh r1, [r3, #0x5e]
+ cmp r1, r2
+ bls _02237738
+ strh r2, [r3, #0x5e]
+ sub r1, ip, #1
+ mov r2, #1
+ mov r1, r2, lsl r1
+ ldr r0, [r0]
+ strh r1, [r0, #0x60]
+ b _02237750
+_02237738:
+ cmp r1, r2
+ ldreqh r2, [r3, #0x60]
+ subeq r0, ip, #1
+ moveq r1, #1
+ orreq r0, r2, r1, lsl r0
+ streqh r0, [r3, #0x60]
+_02237750:
+ add r0, ip, #1
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ bl MOD13_02237794
+ cmp r0, #0x18
+ bne _02237774
+ mov r0, #7
+ bl MOD13_02238294
+ ldmia sp!, {r4, pc}
+_02237774:
+ cmp r0, #2
+ ldmeqia sp!, {r4, pc}
+ mov r0, #9
+ bl MOD13_02238294
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02237788: .word 0x02243184
+_0223778C: .word 0x022408E0
+_02237790: .word 0x02243188
+
+ arm_func_start MOD13_02237794
+MOD13_02237794: ; 0x02237794
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl WM_GetAllowedChannel
+ cmp r0, #0x8000
+ bne _022377C0
+ mov r0, #3
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ mov r0, #3
+ ldmia sp!, {r4, pc}
+_022377C0:
+ cmp r0, #0
+ bne _022377E0
+ mov r0, #0x16
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ mov r0, #0x18
+ ldmia sp!, {r4, pc}
+_022377E0:
+ sub r1, r4, #1
+ mov r2, #1
+ mov r1, r2, lsl r1
+ ands r1, r1, r0
+ bne _0223781C
+_022377F4:
+ add r1, r4, #1
+ mov r1, r1, lsl #0x10
+ mov r4, r1, lsr #0x10
+ cmp r4, #0x10
+ movhi r0, #0x18
+ ldmhiia sp!, {r4, pc}
+ sub r1, r4, #1
+ mov r1, r2, lsl r1
+ ands r1, r1, r0
+ beq _022377F4
+_0223781C:
+ ldr r0, _02237834 ; =0x022376B8
+ mov r1, r4
+ bl MOD13_02237690
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02237834: .word 0x022376B8
+
+ arm_func_start MOD13_02237838
+MOD13_02237838: ; 0x02237838
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ add r0, sp, #0
+ bl OS_GetMacAddress
+ ldr r1, _02237900 ; =0x027FFC3C
+ ldrh r0, [sp]
+ ldr r3, [r1]
+ ldrh r1, [sp, #2]
+ add r0, r0, r3
+ ldr r2, _02237904 ; =0x02243188
+ add r1, r1, r0
+ ldrh r3, [sp, #4]
+ ldr r0, [r2]
+ mov ip, #0
+ add r1, r3, r1
+ str r1, [r0, #0x58]
+ ldr lr, [r2]
+ ldr r0, _02237908 ; =0x00010DCD
+ ldr r3, [lr, #0x58]
+ ldr r1, _0223790C ; =0x00003039
+ mla r0, r3, r0, r1
+ str r0, [lr, #0x58]
+ ldr r0, [r2]
+ mov r3, #0x65
+ strh ip, [r0, #0x5c]
+ ldr r1, [r2]
+ mov r0, #3
+ strh r3, [r1, #0x5e]
+ bl MOD13_02238294
+ mov r0, #1
+ bl MOD13_02237794
+ cmp r0, #0x18
+ bne _022378D8
+ mov r0, #0x18
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #0xc
+ mov r0, #0
+ ldmia sp!, {pc}
+_022378D8:
+ cmp r0, #2
+ addeq sp, sp, #0xc
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ mov r0, #0
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237900: .word 0x027FFC3C
+_02237904: .word 0x02243188
+_02237908: .word 0x00010DCD
+_0223790C: .word 0x00003039
+
+ arm_func_start MOD13_02237910
+MOD13_02237910: ; 0x02237910
+ ldr r0, _02237920 ; =0x02243188
+ ldr r0, [r0]
+ ldr r0, [r0, #0x40]
+ bx lr
+ .align 2, 0
+_02237920: .word 0x02243188
+
+ arm_func_start MOD13_02237924
+MOD13_02237924: ; 0x02237924
+ ldr r0, _02237934 ; =0x02243188
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x52]
+ bx lr
+ .align 2, 0
+_02237934: .word 0x02243188
+
+ arm_func_start MOD13_02237938
+MOD13_02237938: ; 0x02237938
+ ldr r1, _02237948 ; =0x02243188
+ ldr r1, [r1]
+ str r0, [r1, #8]
+ bx lr
+ .align 2, 0
+_02237948: .word 0x02243188
+
+ arm_func_start MOD13_0223794C
+MOD13_0223794C: ; 0x0223794C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _02237970
+ mov r0, #0xa
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237970:
+ mov r0, #0
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ beq _022379A8
+ mov r0, #9
+ bl MOD13_02238294
+ ldrh r0, [r4, #2]
+ bl MOD13_02238274
+ ldmia sp!, {r4, pc}
+_022379A8:
+ mov r0, #1
+ bl MOD13_02238294
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_022379B4
+MOD13_022379B4: ; 0x022379B4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _022379EC ; =0x02237980
+ bl WM_Reset
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022379EC: .word 0x02237980
+
+ arm_func_start MOD13_022379F0
+MOD13_022379F0: ; 0x022379F0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _02237A10
+ bl MOD13_02238274
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237A10:
+ mov r0, #1
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_02237A20
+MOD13_02237A20: ; 0x02237A20
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _02237A60 ; =MOD13_022379F0
+ mov r1, #0
+ bl WM_Disconnect
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ bl MOD13_02237108
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237A60: .word MOD13_022379F0
+
+ arm_func_start MOD13_02237A64
+MOD13_02237A64: ; 0x02237A64
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _02237A88
+ bl MOD13_02238274
+ bl MOD13_02236FB8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237A88:
+ bl MOD13_02237A20
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_02237AA8
+MOD13_02237AA8: ; 0x02237AA8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _02237AE0 ; =MOD13_02237A64
+ bl WM_EndMP
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237AE0: .word MOD13_02237A64
+
+ arm_func_start MOD13_02237AE4
+MOD13_02237AE4: ; 0x02237AE4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02237B40 ; =0x02243188
+ ldr r0, [r0]
+ ldr r0, [r0, #0x40]
+ cmp r0, #6
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {pc}
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _02237B40 ; =0x02243188
+ ldr r0, [r0]
+ add r0, r0, #0x1e00
+ bl WM_EndKeySharing
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237B40: .word 0x02243188
+
+ arm_func_start MOD13_02237B44
+MOD13_02237B44: ; 0x02237B44
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _02237B64
+ bl MOD13_02238274
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237B64:
+ mov r0, #1
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_02237B74
+MOD13_02237B74: ; 0x02237B74
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02237BA4 ; =MOD13_02237B44
+ bl WM_EndParent
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237BA4: .word MOD13_02237B44
+
+ arm_func_start MOD13_02237BA8
+MOD13_02237BA8: ; 0x02237BA8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _02237BCC
+ bl MOD13_02238274
+ bl MOD13_02237108
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237BCC:
+ bl MOD13_02237B74
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02237C04 ; =0x02243184
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _02237BF8
+ ldr r1, _02237C08 ; =0x02240918
+ mov r0, #0x8000000
+ blx r2
+_02237BF8:
+ bl MOD13_02237108
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237C04: .word 0x02243184
+_02237C08: .word 0x02240918
+
+ arm_func_start MOD13_02237C0C
+MOD13_02237C0C: ; 0x02237C0C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _02237C44 ; =MOD13_02237BA8
+ bl WM_EndMP
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237C44: .word MOD13_02237BA8
+
+ arm_func_start MOD13_02237C48
+MOD13_02237C48: ; 0x02237C48
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02237C80 ; =0x02243188
+ ldr r0, [r0]
+ add r0, r0, #0x1e00
+ bl WM_EndKeySharing
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237C80: .word 0x02243188
+
+ arm_func_start MOD13_02237C84
+MOD13_02237C84: ; 0x02237C84
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #6
+ bl MOD13_02238294
+ ldr r0, _02237CC8 ; =0x02243188
+ mov r1, #0xd
+ ldr r0, [r0]
+ add r0, r0, #0x1e00
+ bl WM_StartKeySharing
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237CC8: .word 0x02243188
+
+ arm_func_start MOD13_02237CCC
+MOD13_02237CCC: ; 0x02237CCC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r1, [r0, #2]
+ cmp r1, #0
+ beq _02237CF8
+ mov r0, r1
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237CF8:
+ ldrh r2, [r0, #4]
+ sub r0, r2, #0xa
+ cmp r0, #3
+ addls pc, pc, r0, lsl #2
+ b _02237DEC
+_02237D0C: ; jump table
+ b _02237D1C ; case 0
+ b _02237E0C ; case 1
+ b _02237DEC ; case 2
+ b _02237DEC ; case 3
+_02237D1C:
+ ldr r0, _02237E14 ; =0x02243188
+ ldr r1, [r0]
+ ldr r0, [r1, #0x44]
+ cmp r0, #2
+ bne _02237D88
+ ldr r0, [r1, #0x40]
+ cmp r0, #4
+ bne _02237D78
+ bl MOD13_02237C84
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02237E18 ; =0x02243184
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _02237D68
+ ldr r1, _02237E1C ; =0x02240940
+ mov r0, #0x8000000
+ blx r2
+_02237D68:
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237D78:
+ cmp r0, #6
+ bne _02237DDC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237D88:
+ cmp r0, #4
+ bne _02237DDC
+ ldr r0, _02237E20 ; =0x000013E0
+ mov ip, #1
+ add r0, r1, r0
+ mov r1, #0xd
+ mov r2, #7
+ mov r3, #0x44
+ str ip, [sp]
+ bl WM_StartDataSharing
+ cmp r0, #0
+ beq _02237DCC
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237DCC:
+ mov r0, #5
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237DDC:
+ mov r0, #4
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237DEC:
+ ldr r0, _02237E18 ; =0x02243184
+ ldr r3, [r0]
+ cmp r3, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r1, _02237E24 ; =0x022408F8
+ mov r0, #0x8000000
+ blx r3
+_02237E0C:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237E14: .word 0x02243188
+_02237E18: .word 0x02243184
+_02237E1C: .word 0x02240940
+_02237E20: .word 0x000013E0
+_02237E24: .word 0x022408F8
+
+ arm_func_start MOD13_02237E28
+MOD13_02237E28: ; 0x02237E28
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r0, _02237EBC ; =0x02243188
+ ldr r0, [r0]
+ ldr r0, [r0, #0x40]
+ sub r0, r0, #4
+ cmp r0, #2
+ addls sp, sp, #0xc
+ movls r0, #1
+ ldmlsia sp!, {pc}
+ mov r0, #4
+ bl MOD13_02238294
+ ldr r0, _02237EBC ; =0x02243188
+ mov ip, #1
+ ldr lr, [r0]
+ ldr r2, _02237EC0 ; =0x00001060
+ add r3, lr, #0x1000
+ ldr r1, [r3, #0x2a0]
+ ldr r0, _02237EC4 ; =MOD13_02237CCC
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ str r1, [sp]
+ str ip, [sp, #4]
+ ldr r3, [r3, #0x2a4]
+ add r1, lr, r2
+ mov r2, r3, lsl #0x10
+ mov r2, r2, lsr #0x10
+ add r3, lr, #0xf80
+ bl WM_StartMP
+ cmp r0, #2
+ addeq sp, sp, #0xc
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237EBC: .word 0x02243188
+_02237EC0: .word 0x00001060
+_02237EC4: .word MOD13_02237CCC
+
+ arm_func_start MOD13_02237EC8
+MOD13_02237EC8: ; 0x02237EC8
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ ldrh r2, [r5, #0x10]
+ mov r1, #1
+ ldrh r0, [r5, #2]
+ mov r1, r1, lsl r2
+ mov r1, r1, lsl #0x10
+ cmp r0, #0
+ mov r4, r1, lsr #0x10
+ beq _02237F08
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02237F08:
+ ldrh ip, [r5, #8]
+ cmp ip, #7
+ bgt _02237F44
+ cmp ip, #7
+ bge _02237F50
+ cmp ip, #2
+ bgt _02238034
+ cmp ip, #0
+ blt _02238034
+ cmp ip, #0
+ beq _02238014
+ cmp ip, #2
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ b _02238034
+_02237F44:
+ cmp ip, #9
+ beq _02237FD8
+ b _02238034
+_02237F50:
+ ldr r0, _02238060 ; =0x02243184
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _02237F6C
+ ldr r1, _02238064 ; =0x02240970
+ mov r0, #0x8000000
+ blx r3
+_02237F6C:
+ ldr r0, _02238068 ; =0x02243188
+ ldr r0, [r0]
+ ldr r1, [r0, #0x4c]
+ cmp r1, #0
+ beq _02237FBC
+ mov r0, r5
+ blx r1
+ cmp r0, #0
+ bne _02237FBC
+ ldrh r1, [r5, #0x10]
+ mov r0, #0
+ bl WM_Disconnect
+ cmp r0, #2
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02237FBC:
+ ldr r0, _02238068 ; =0x02243188
+ add sp, sp, #4
+ ldr r1, [r0]
+ ldrh r0, [r1, #0x52]
+ orr r0, r0, r4
+ strh r0, [r1, #0x52]
+ ldmia sp!, {r4, r5, pc}
+_02237FD8:
+ ldr r0, _02238060 ; =0x02243184
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _02237FF4
+ ldr r1, _0223806C ; =0x0224099C
+ mov r0, #0x8000000
+ blx r3
+_02237FF4:
+ ldr r0, _02238068 ; =0x02243188
+ mvn r1, r4
+ ldr r2, [r0]
+ add sp, sp, #4
+ ldrh r0, [r2, #0x52]
+ and r0, r0, r1
+ strh r0, [r2, #0x52]
+ ldmia sp!, {r4, r5, pc}
+_02238014:
+ bl MOD13_02237E28
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02238034:
+ ldr r0, _02238060 ; =0x02243184
+ ldr r3, [r0]
+ cmp r3, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r1, _02238070 ; =0x022408F8
+ mov r2, ip
+ mov r0, #0x8000000
+ blx r3
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02238060: .word 0x02243184
+_02238064: .word 0x02240970
+_02238068: .word 0x02243188
+_0223806C: .word 0x0224099C
+_02238070: .word 0x022408F8
+
+ arm_func_start MOD13_02238074
+MOD13_02238074: ; 0x02238074
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022380E0 ; =0x02243188
+ ldr r0, [r0]
+ ldr r0, [r0, #0x40]
+ sub r0, r0, #4
+ cmp r0, #2
+ addls sp, sp, #4
+ movls r0, #1
+ ldmlsia sp!, {pc}
+ ldr r0, _022380E4 ; =MOD13_02237EC8
+ bl WM_StartParent
+ cmp r0, #2
+ beq _022380BC
+ bl MOD13_02238274
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {pc}
+_022380BC:
+ ldr r1, _022380E0 ; =0x02243188
+ mov r3, #0
+ ldr r2, [r1]
+ mov r0, #1
+ strh r3, [r2, #0x50]
+ ldr r1, [r1]
+ strh r0, [r1, #0x52]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022380E0: .word 0x02243188
+_022380E4: .word MOD13_02237EC8
+
+ arm_func_start MOD13_022380E8
+MOD13_022380E8: ; 0x022380E8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _02238110
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238110:
+ bl MOD13_02238074
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_02238130
+MOD13_02238130: ; 0x02238130
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _02238198 ; =0x02243188
+ ldr r1, [r0]
+ add r0, r1, #0x1000
+ ldr r2, [r0, #0x3ac]
+ add r0, r1, #0x13c0
+ blx r2
+ ldr r2, _02238198 ; =0x02243188
+ mov r1, r0
+ ldr r2, [r2]
+ ldr r0, _0223819C ; =MOD13_022380E8
+ add r2, r2, #0x13c0
+ bl WM_SetWEPKeyEx2
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02238198: .word 0x02243188
+_0223819C: .word MOD13_022380E8
+
+ arm_func_start MOD13_022381A0
+MOD13_022381A0: ; 0x022381A0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _022381C8
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022381C8:
+ ldr r0, _02238220 ; =0x02243188
+ ldr r0, [r0]
+ add r0, r0, #0x1000
+ ldr r0, [r0, #0x3ac]
+ cmp r0, #0
+ beq _02238200
+ bl MOD13_02238130
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238200:
+ bl MOD13_02238074
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02238220: .word 0x02243188
+
+ arm_func_start MOD13_02238224
+MOD13_02238224: ; 0x02238224
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r1, _0223826C ; =0x02243188
+ ldr r0, _02238270 ; =MOD13_022381A0
+ ldr r1, [r1]
+ bl WM_SetParentParameter
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223826C: .word 0x02243188
+_02238270: .word MOD13_022381A0
+
+ arm_func_start MOD13_02238274
+MOD13_02238274: ; 0x02238274
+ ldr r1, _02238290 ; =0x02243188
+ ldr r2, [r1]
+ ldr r1, [r2, #0x40]
+ sub r1, r1, #9
+ cmp r1, #1
+ strhi r0, [r2, #0x54]
+ bx lr
+ .align 2, 0
+_02238290: .word 0x02243188
+
+ arm_func_start MOD13_02238294
+MOD13_02238294: ; 0x02238294
+ stmdb sp!, {r4, lr}
+ ldr r1, _02238308 ; =0x02243184
+ mov r4, r0
+ ldr ip, [r1]
+ cmp ip, #0
+ beq _022382CC
+ ldr r0, _0223830C ; =0x02243188
+ ldr r2, _02238310 ; =0x022407A8
+ ldr r0, [r0]
+ ldr r1, _02238314 ; =0x022409C8
+ ldr r3, [r0, #0x40]
+ mov r0, #0x8000000
+ ldr r2, [r2, r3, lsl #2]
+ blx ip
+_022382CC:
+ ldr r1, _0223830C ; =0x02243188
+ ldr r0, _02238308 ; =0x02243184
+ ldr r2, [r1]
+ str r4, [r2, #0x40]
+ ldr r3, [r0]
+ cmp r3, #0
+ ldmeqia sp!, {r4, pc}
+ ldr r1, [r1]
+ ldr r0, _02238310 ; =0x022407A8
+ ldr r2, [r1, #0x40]
+ ldr r1, _02238318 ; =0x022409D0
+ ldr r2, [r0, r2, lsl #2]
+ mov r0, #0x8000000
+ blx r3
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02238308: .word 0x02243184
+_0223830C: .word 0x02243188
+_02238310: .word 0x022407A8
+_02238314: .word 0x022409C8
+_02238318: .word 0x022409D0
+
+ arm_func_start MOD13_0223831C
+MOD13_0223831C: ; 0x0223831C
+ ldr r1, _02238354 ; =0x02243188
+ mov r2, #0
+ str r0, [r1]
+ str r2, [r0, #0x40]
+ ldr r0, [r1]
+ add r0, r0, #0x1000
+ str r2, [r0, #0x3a8]
+ ldr r0, [r1]
+ add r0, r0, #0x1000
+ str r2, [r0, #0x3ac]
+ ldr r0, [r1]
+ add r0, r0, #0x1000
+ str r2, [r0, #0x3b0]
+ bx lr
+ .align 2, 0
+_02238354: .word 0x02243188
+
+ arm_func_start MOD13_02238358
+MOD13_02238358: ; 0x02238358
+ ldr r0, _0223836C ; =0x0224318C
+ ldr r0, [r0]
+ add r0, r0, #0x100
+ ldrh r0, [r0, #0x44]
+ bx lr
+ .align 2, 0
+_0223836C: .word 0x0224318C
+
+ arm_func_start MOD13_02238370
+MOD13_02238370: ; 0x02238370
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov ip, #0
+ ldr r4, _0223845C ; =0x0224318C
+ mov r5, ip
+ mov r2, ip
+ mov r0, #1
+ mov r1, #0xbc
+ mov lr, #0x44
+_02238394:
+ ldr r3, [r4]
+ add r6, r3, ip, lsl #2
+ ldr r6, [r6, #0x208]
+ cmp r6, #0
+ beq _02238448
+ add r6, r3, #0x100
+ mla r7, ip, lr, r6
+ cmp ip, #1
+ bne _02238448
+ ldrb r6, [r3, #0xa93]
+ cmp r6, #1
+ bne _02238418
+ ldrh r6, [r7]
+ cmp r6, #0x10
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldr r6, [r3, #0xa94]
+ add r6, r6, #1
+ str r6, [r3, #0xa94]
+ ldr r6, [r4]
+ ldr r3, [r6, #0xa94]
+ ands r3, r3, #1
+ bne _02238448
+ add r3, r6, #0x200
+ ldrh r6, [r3]
+ add r6, r6, #1
+ strh r6, [r3]
+ ldr r3, [r4]
+ add r3, r3, #0x200
+ ldrh r6, [r3]
+ cmp r6, #0x24
+ strhsh r2, [r3]
+ b _02238448
+_02238418:
+ add r3, r3, #0x200
+ strh r1, [r3, #2]
+ ldrh r3, [r7]
+ cmp r3, #0xbd
+ bne _02238448
+ ldr r3, [r4]
+ strb r0, [r3, #0xa93]
+ ldr r3, [r4]
+ add r3, r3, #0x200
+ strh r5, [r3]
+ ldr r3, [r4]
+ str r5, [r3, #0xa94]
+_02238448:
+ add ip, ip, #1
+ cmp ip, #0x10
+ blt _02238394
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223845C: .word 0x0224318C
+
+ arm_func_start MOD13_02238460
+MOD13_02238460: ; 0x02238460
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr r3, _022385B8 ; =0x0224318C
+ ldr r5, [r3]
+ ldrb r4, [r5, #0xa93]
+ cmp r4, #1
+ bne _022384A8
+ ldr r4, [r5, #0xab0]
+ strh r0, [r4]
+ ldr r4, [r3]
+ mov r0, r2
+ ldr r4, [r4, #0xab0]
+ mov r2, #0x40
+ strh r1, [r4, #2]
+ ldr r1, [r3]
+ ldr r1, [r1, #0xab0]
+ add r1, r1, #4
+ bl MI_CpuCopy8
+ b _022384D4
+_022384A8:
+ ldr r0, [r5, #0x204]
+ mov r1, #0xbc
+ add r0, r0, #1
+ str r0, [r5, #0x204]
+ ldr r0, [r3]
+ ldr r0, [r0, #0xab0]
+ strh r1, [r0]
+ ldr r0, [r3]
+ ldrb r1, [r0, #0xa92]
+ ldr r0, [r0, #0xab0]
+ strb r1, [r0, #4]
+_022384D4:
+ bl MOD13_02237910
+ cmp r0, #5
+ ldmneia sp!, {r4, r5, r6, r7, r8, pc}
+ ldr r0, _022385B8 ; =0x0224318C
+ ldr r0, [r0]
+ bl MOD13_02237130
+ cmp r0, #0
+ bne _0223850C
+ ldr r0, _022385B8 ; =0x0224318C
+ ldr r1, [r0]
+ ldr r0, [r1, #0x204]
+ add r0, r0, #4
+ str r0, [r1, #0x204]
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_0223850C:
+ ldr r0, _022385B8 ; =0x0224318C
+ ldr r1, [r0]
+ ldrb r0, [r1, #0xa93]
+ cmp r0, #0
+ ldreq r0, [r1, #0x204]
+ addeq r0, r0, #1
+ streq r0, [r1, #0x204]
+ beq _02238550
+ mov r0, #0
+ str r0, [r1, #0x204]
+ bl MOD13_02237924
+ cmp r0, #3
+ ldrne r0, _022385B8 ; =0x0224318C
+ movne r1, #0x1b
+ ldrne r0, [r0]
+ strneb r1, [r0, #0xa90]
+ ldmneia sp!, {r4, r5, r6, r7, r8, pc}
+_02238550:
+ mov r7, #0
+ ldr r8, _022385B8 ; =0x0224318C
+ mov r4, r7
+ mov r6, #0x44
+ mov r5, #1
+_02238564:
+ mov r0, r7
+ bl MOD13_022371E0
+ cmp r0, #0
+ ldreq r0, [r8]
+ addeq r0, r0, r7, lsl #2
+ streq r4, [r0, #0x208]
+ beq _022385A0
+ ldr r1, [r8]
+ mov r2, r6
+ add r1, r1, #0x100
+ mla r1, r7, r6, r1
+ bl MI_CpuCopy8
+ ldr r0, [r8]
+ add r0, r0, r7, lsl #2
+ str r5, [r0, #0x208]
+_022385A0:
+ add r0, r7, #1
+ mov r0, r0, lsl #0x10
+ mov r7, r0, lsr #0x10
+ cmp r7, #2
+ blo _02238564
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_022385B8: .word 0x0224318C
+
+ arm_func_start MOD13_022385BC
+MOD13_022385BC: ; 0x022385BC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02238604 ; =0x0224318C
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #0x100
+ add r0, r0, #0x100
+ bl MI_CpuFill8
+ ldr r0, _02238604 ; =0x0224318C
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #0x100
+ bl MI_CpuFill8
+ ldr r0, _02238604 ; =0x0224318C
+ ldr r0, [r0]
+ str r0, [r0, #0xab0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02238604: .word 0x0224318C
+
+ arm_func_start MOD13_02238608
+MOD13_02238608: ; 0x02238608
+ stmdb sp!, {r4, lr}
+ add r0, r0, #0xa
+ bl MOD13_02236254
+ movs r4, r0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+ bl MOD13_02236314
+ ldr r1, _02238640 ; =0x0224318C
+ sub r2, r4, #1
+ ldr r1, [r1]
+ add r1, r1, r2, lsl #2
+ str r0, [r1, #0xaa0]
+ mov r0, #1
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02238640: .word 0x0224318C
+
+ arm_func_start MOD13_02238644
+MOD13_02238644: ; 0x02238644
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02237910
+ cmp r0, #1
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {pc}
+ bl MOD13_02236F5C
+ ldr r1, _0223867C ; =0x0224318C
+ mov r0, #1
+ ldr r1, [r1]
+ strb r0, [r1, #0xa90]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223867C: .word 0x0224318C
+
+ arm_func_start MOD13_02238680
+MOD13_02238680: ; 0x02238680
+ ldr r0, _02238694 ; =0x0224318C
+ mov r1, #0xc
+ ldr r0, [r0]
+ strb r1, [r0, #0xa90]
+ bx lr
+ .align 2, 0
+_02238694: .word 0x0224318C
+
+ arm_func_start MOD13_02238698
+MOD13_02238698: ; 0x02238698
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02237910
+ cmp r0, #6
+ addls pc, pc, r0, lsl #2
+ b _02238878
+_022386B0: ; jump table
+ b _02238878 ; case 0
+ b _022386CC ; case 1
+ b _02238878 ; case 2
+ b _02238878 ; case 3
+ b _022386FC ; case 4
+ b _022386FC ; case 5
+ b _022386FC ; case 6
+_022386CC:
+ ldr r1, _02238880 ; =0x0224318C
+ mov r0, #4
+ ldr r1, [r1]
+ add r1, r1, #0x600
+ ldrh r3, [r1, #0x48]
+ ldrh r2, [r1, #0x4a]
+ add r1, r3, #1
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ bl MOD13_02237220
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022386FC:
+ ldr r1, _02238880 ; =0x0224318C
+ mov r0, #0
+ ldr r2, [r1]
+ add r1, r2, #0x200
+ ldrh r1, [r1]
+ ldr ip, [r2, #0xaa4]
+ mov r3, r1, lsr #0x1f
+ rsb r2, r3, r1, lsl #28
+ add r2, r3, r2, ror #28
+ add r2, ip, r2, lsl #6
+ bl MOD13_02238460
+ bl MOD13_02238370
+ ldr r0, _02238880 ; =0x0224318C
+ ldr r1, [r0]
+ ldrb r0, [r1, #0xa90]
+ cmp r0, #0x1b
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, [r1, #0x204]
+ cmp r0, #0x1e0
+ movhi r0, #0x1b
+ strhib r0, [r1, #0xa90]
+ addhi sp, sp, #4
+ ldmhiia sp!, {pc}
+ bl MOD13_02238358
+ cmp r0, #0x10
+ beq _02238774
+ bl MOD13_02238358
+ cmp r0, #0x20
+ bne _02238790
+_02238774:
+ bl MOD13_02238358
+ ldr r0, _02238880 ; =0x0224318C
+ mov r1, #0xa
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238790:
+ bl MOD13_02238358
+ cmp r0, #0x40
+ ldreq r0, _02238880 ; =0x0224318C
+ moveq r1, #0xb
+ ldreq r0, [r0]
+ addeq sp, sp, #4
+ streqb r1, [r0, #0xa90]
+ ldmeqia sp!, {pc}
+ bl MOD13_02238358
+ cmp r0, #0xff
+ ldreq r0, _02238880 ; =0x0224318C
+ moveq r1, #0x1b
+ ldreq r0, [r0]
+ addeq sp, sp, #4
+ streqb r1, [r0, #0xa90]
+ ldmeqia sp!, {pc}
+ bl MOD13_02238358
+ cmp r0, #0x50
+ ldreq r0, _02238880 ; =0x0224318C
+ moveq r1, #0x15
+ ldreq r0, [r0]
+ addeq sp, sp, #4
+ streqb r1, [r0, #0xa90]
+ ldmeqia sp!, {pc}
+ bl MOD13_02238358
+ cmp r0, #0x60
+ ldreq r0, _02238880 ; =0x0224318C
+ moveq r1, #0x18
+ ldreq r0, [r0]
+ addeq sp, sp, #4
+ streqb r1, [r0, #0xa90]
+ ldmeqia sp!, {pc}
+ bl MOD13_02238358
+ cmp r0, #0x70
+ ldreq r0, _02238880 ; =0x0224318C
+ moveq r1, #0x1b
+ ldreq r0, [r0]
+ addeq sp, sp, #4
+ streqb r1, [r0, #0xa90]
+ ldmeqia sp!, {pc}
+ bl MOD13_02238358
+ cmp r0, #0
+ ldreq r0, _02238880 ; =0x0224318C
+ moveq r1, #8
+ ldreq r0, [r0]
+ addeq sp, sp, #4
+ streqb r1, [r0, #0xa90]
+ ldmeqia sp!, {pc}
+ bl MOD13_02238358
+ cmp r0, #0xbd
+ ldreq r0, _02238880 ; =0x0224318C
+ moveq r1, #9
+ ldreq r0, [r0]
+ streqb r1, [r0, #0xa90]
+ ldrne r0, _02238880 ; =0x0224318C
+ movne r1, #0x1f
+ ldrne r0, [r0]
+ strneb r1, [r0, #0xa90]
+_02238878:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02238880: .word 0x0224318C
+
+ arm_func_start MOD13_02238884
+MOD13_02238884: ; 0x02238884
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022385BC
+ ldr r0, _022388B0 ; =MOD13_02238608
+ bl MOD13_0223720C
+ ldr r0, _022388B4 ; =0x0224318C
+ mov r1, #8
+ ldr r0, [r0]
+ strb r1, [r0, #0xa90]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022388B0: .word MOD13_02238608
+_022388B4: .word 0x0224318C
+
+ arm_func_start MOD13_022388B8
+MOD13_022388B8: ; 0x022388B8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02236470
+ cmp r0, #7
+ addls pc, pc, r0, lsl #2
+ b _02238A94
+_022388D0: ; jump table
+ b _02238A3C ; case 0
+ b _022388F0 ; case 1
+ b _02238914 ; case 2
+ b _022389AC ; case 3
+ b _02238A94 ; case 4
+ b _02238A08 ; case 5
+ b _02238A94 ; case 6
+ b _02238A20 ; case 7
+_022388F0:
+ ldr r1, _02238A9C ; =0x0224318C
+ ldr r0, _02238AA0 ; =0x00000AB4
+ ldr r2, [r1]
+ add r1, r2, #0x600
+ ldrh r1, [r1, #0x4a]
+ add r0, r2, r0
+ bl MOD13_02236D9C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238914:
+ mov r0, #2
+ bl MOD13_02236414
+ cmp r0, #0
+ ldrne r0, _02238A9C ; =0x0224318C
+ movne r1, #5
+ ldrne r0, [r0]
+ addne sp, sp, #4
+ strneb r1, [r0, #0xa90]
+ ldmneia sp!, {pc}
+ mov r0, #3
+ bl MOD13_02236414
+ cmp r0, #0
+ bne _02238958
+ mov r0, #4
+ bl MOD13_02236414
+ cmp r0, #0
+ beq _02238970
+_02238958:
+ ldr r0, _02238A9C ; =0x0224318C
+ mov r1, #6
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238970:
+ ldr r0, _02238A9C ; =0x0224318C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0xa90]
+ cmp r0, #5
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #2
+ bl MOD13_02236414
+ cmp r0, #0
+ ldreq r0, _02238A9C ; =0x0224318C
+ moveq r1, #0xd
+ ldreq r0, [r0]
+ add sp, sp, #4
+ streqb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_022389AC:
+ bl MOD13_022368FC
+ cmp r0, #0
+ beq _022389C4
+ bl MOD13_022367F4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022389C4:
+ ldr r0, _02238A9C ; =0x0224318C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0xa90]
+ add r0, r0, #0xfa
+ and r0, r0, #0xff
+ cmp r0, #1
+ addhi sp, sp, #4
+ ldmhiia sp!, {pc}
+ mov r0, #3
+ bl MOD13_02236414
+ cmp r0, #0
+ ldreq r0, _02238A9C ; =0x0224318C
+ moveq r1, #0x12
+ ldreq r0, [r0]
+ add sp, sp, #4
+ streqb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238A08:
+ ldr r0, _02238A9C ; =0x0224318C
+ mov r1, #7
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238A20:
+ bl MOD13_022367D8
+ ldr r0, _02238A9C ; =0x0224318C
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238A3C:
+ bl MOD13_02237910
+ cmp r0, #0
+ beq _02238A6C
+ cmp r0, #1
+ beq _02238A60
+ cmp r0, #3
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ b _02238A84
+_02238A60:
+ bl MOD13_02236F5C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238A6C:
+ ldr r0, _02238A9C ; =0x0224318C
+ mov r1, #0x1f
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238A84:
+ ldr r0, _02238A9C ; =0x0224318C
+ mov r1, #0x1f
+ ldr r0, [r0]
+ strb r1, [r0, #0xa90]
+_02238A94:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02238A9C: .word 0x0224318C
+_02238AA0: .word 0x00000AB4
+
+ arm_func_start MOD13_02238AA4
+MOD13_02238AA4: ; 0x02238AA4
+ ldr r0, _02238AC0 ; =0x0224318C
+ ldr ip, _02238AC4 ; =MOD13_02236DF4
+ ldr r2, [r0]
+ add r0, r2, #0x600
+ ldrh r1, [r0, #0x48]
+ ldr r0, [r2, #0xac8]
+ bx ip
+ .align 2, 0
+_02238AC0: .word 0x0224318C
+_02238AC4: .word MOD13_02236DF4
+
+ arm_func_start MOD13_02238AC8
+MOD13_02238AC8: ; 0x02238AC8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02237910
+ cmp r0, #9
+ addls pc, pc, r0, lsl #2
+ b _02238B78
+_02238AE0: ; jump table
+ b _02238B48 ; case 0
+ b _02238B08 ; case 1
+ b _02238B78 ; case 2
+ b _02238B7C ; case 3
+ b _02238B78 ; case 4
+ b _02238B78 ; case 5
+ b _02238B78 ; case 6
+ b _02238B14 ; case 7
+ b _02238B78 ; case 8
+ b _02238B6C ; case 9
+_02238B08:
+ bl MOD13_02237838
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238B14:
+ bl MOD13_02237608
+ ldr r2, _02238B84 ; =0x0224318C
+ mov ip, #0
+ ldr r1, [r2]
+ mov r3, #3
+ add r1, r1, #0x600
+ strh r0, [r1, #0x4a]
+ ldr r0, [r2]
+ add sp, sp, #4
+ str ip, [r0, #0xa98]
+ ldr r0, [r2]
+ strb r3, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238B48:
+ ldr r0, _02238B84 ; =0x0224318C
+ mov r3, #0
+ ldr r2, [r0]
+ mov r1, #3
+ str r3, [r2, #0xa98]
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238B6C:
+ bl MOD13_02237108
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238B78:
+ bl OS_Terminate
+_02238B7C:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02238B84: .word 0x0224318C
+
+ arm_func_start MOD13_02238B88
+MOD13_02238B88: ; 0x02238B88
+ ldr ip, _02238B94 ; =MOD13_022132CC
+ mov r0, #1
+ bx ip
+ .align 2, 0
+_02238B94: .word MOD13_022132CC
+
+ arm_func_start MOD13_02238B98
+MOD13_02238B98: ; 0x02238B98
+ ldr r2, _02238BDC ; =0x0224318C
+ ldr r3, [r2]
+ ldrb r3, [r3, #0xa90]
+ strb r3, [r0]
+ ldr r0, [r2]
+ ldrb r2, [r0, #0xa90]
+ ldrb r0, [r0, #0xa91]
+ cmp r2, r0
+ movne r0, #1
+ strneb r0, [r1]
+ moveq r0, #0
+ streqb r0, [r1]
+ ldr r0, _02238BDC ; =0x0224318C
+ ldr r1, [r0]
+ ldrb r0, [r1, #0xa90]
+ strb r0, [r1, #0xa91]
+ bx lr
+ .align 2, 0
+_02238BDC: .word 0x0224318C
+
+ arm_func_start MOD13_02238BE0
+MOD13_02238BE0: ; 0x02238BE0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02238FF0 ; =0x0224318C
+ ldr r0, [r1]
+ ldrb r2, [r0, #0xa90]
+ cmp r2, #0x22
+ addls pc, pc, r2, lsl #2
+ b _02238FE8
+_02238C00: ; jump table
+ b _02238FE8 ; case 0
+ b _02238C8C ; case 1
+ b _02238CD4 ; case 2
+ b _02238CE0 ; case 3
+ b _02238CFC ; case 4
+ b _02238D14 ; case 5
+ b _02238D14 ; case 6
+ b _02238D20 ; case 7
+ b _02238D2C ; case 8
+ b _02238D2C ; case 9
+ b _02238D2C ; case 10
+ b _02238D38 ; case 11
+ b _02238FE8 ; case 12
+ b _02238FE8 ; case 13
+ b _02238FE8 ; case 14
+ b _02238FE8 ; case 15
+ b _02238D44 ; case 16
+ b _02238D60 ; case 17
+ b _02238D84 ; case 18
+ b _02238DAC ; case 19
+ b _02238FE8 ; case 20
+ b _02238DF0 ; case 21
+ b _02238E18 ; case 22
+ b _02238FE8 ; case 23
+ b _02238E5C ; case 24
+ b _02238E84 ; case 25
+ b _02238FE8 ; case 26
+ b _02238EC8 ; case 27
+ b _02238EF0 ; case 28
+ b _02238FE8 ; case 29
+ b _02238FE4 ; case 30
+ b _02238FE8 ; case 31
+ b _02238F78 ; case 32
+ b _02238FA0 ; case 33
+ b _02238FE8 ; case 34
+_02238C8C:
+ ldrb r2, [r0, #0xaac]
+ cmp r2, #1
+ bne _02238CAC
+ mov r1, #0
+ strb r1, [r0, #0xaac]
+ bl MOD13_0223903C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238CAC:
+ cmp r2, #2
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r2, #0
+ strb r2, [r0, #0xaac]
+ ldr r0, [r1]
+ mov r1, #0x22
+ strb r1, [r0, #0xa90]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238CD4:
+ bl MOD13_02238AC8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238CE0:
+ bl MOD13_02238AA4
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r1, #4
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238CFC:
+ ldr r1, [r0, #0xa98]
+ add r1, r1, #1
+ str r1, [r0, #0xa98]
+ bl MOD13_022388B8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238D14:
+ bl MOD13_022388B8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238D20:
+ bl MOD13_02238884
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238D2C:
+ bl MOD13_02238698
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238D38:
+ bl MOD13_02238680
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238D44:
+ mov r2, #0
+ str r2, [r0, #0xa9c]
+ ldr r0, [r1]
+ mov r1, #0x11
+ strb r1, [r0, #0xa90]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238D60:
+ ldr r2, [r0, #0xa9c]
+ add r1, r2, #1
+ cmp r2, #0x1e
+ str r1, [r0, #0xa9c]
+ addls sp, sp, #4
+ ldmlsia sp!, {pc}
+ bl MOD13_02238644
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238D84:
+ bl MOD13_02214F18
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r3, #0
+ ldr r2, [r0]
+ mov r1, #0x16
+ str r3, [r2, #0xa9c]
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238DAC:
+ ldr r2, [r0, #0xa9c]
+ add r1, r2, #1
+ cmp r2, #0x1e
+ str r1, [r0, #0xa9c]
+ addls sp, sp, #4
+ ldmlsia sp!, {pc}
+ bl MOD13_02237910
+ cmp r0, #1
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02236F5C
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r1, #0x14
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238DF0:
+ bl MOD13_02236FB8
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r3, #0
+ ldr r2, [r0]
+ mov r1, #0x16
+ str r3, [r2, #0xa9c]
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238E18:
+ ldr r2, [r0, #0xa9c]
+ add r1, r2, #1
+ cmp r2, #0x1e
+ str r1, [r0, #0xa9c]
+ addls sp, sp, #4
+ ldmlsia sp!, {pc}
+ bl MOD13_02237910
+ cmp r0, #1
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02236F5C
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r1, #0x17
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238E5C:
+ bl MOD13_02236FB8
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r3, #0
+ ldr r2, [r0]
+ mov r1, #0x19
+ str r3, [r2, #0xa9c]
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238E84:
+ ldr r2, [r0, #0xa9c]
+ add r1, r2, #1
+ cmp r2, #0x1e
+ str r1, [r0, #0xa9c]
+ addls sp, sp, #4
+ ldmlsia sp!, {pc}
+ bl MOD13_02237910
+ cmp r0, #1
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02236F5C
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r1, #0x1a
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238EC8:
+ bl MOD13_02236FB8
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r3, #0
+ ldr r2, [r0]
+ mov r1, #0x1c
+ str r3, [r2, #0xa9c]
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238EF0:
+ ldr r2, [r0, #0xa9c]
+ add r1, r2, #1
+ cmp r2, #0x1e
+ str r1, [r0, #0xa9c]
+ addls sp, sp, #4
+ ldmlsia sp!, {pc}
+ bl MOD13_02237910
+ cmp r0, #1
+ bne _02238F30
+ bl MOD13_02236F5C
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r1, #0x1d
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238F30:
+ ldr r1, _02238FF0 ; =0x0224318C
+ ldr r0, _02238FF4 ; =0x88888889
+ ldr r1, [r1]
+ ldr r2, _02238FF8 ; =0x0000001E
+ ldr r3, [r1, #0xa9c]
+ umull r0, r1, r3, r0
+ mov r1, r1, lsr #4
+ umull r0, r1, r2, r1
+ sub r1, r3, r0
+ cmp r1, #1
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ cmp r3, #0x37
+ addls sp, sp, #4
+ ldmlsia sp!, {pc}
+ bl MOD13_02236FB8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238F78:
+ bl MOD13_02236FB8
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r3, #0
+ ldr r2, [r0]
+ mov r1, #0x21
+ str r3, [r2, #0xa9c]
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238FA0:
+ ldr r2, [r0, #0xa9c]
+ add r1, r2, #1
+ cmp r2, #0x1e
+ str r1, [r0, #0xa9c]
+ addls sp, sp, #4
+ ldmlsia sp!, {pc}
+ bl MOD13_02237910
+ cmp r0, #1
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02236F5C
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r1, #0x22
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238FE4:
+ bl MOD13_02236FB8
+_02238FE8:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02238FF0: .word 0x0224318C
+_02238FF4: .word 0x88888889
+_02238FF8: .word 0x0000001E
+
+ arm_func_start MOD13_02238FFC
+MOD13_02238FFC: ; 0x02238FFC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02239038 ; =0x0224318C
+ ldr r1, [r0]
+ ldrb r0, [r1, #0xa90]
+ cmp r0, #5
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {pc}
+ mov r0, #6
+ strb r0, [r1, #0xa90]
+ bl MOD13_02236968
+ mov r0, #1
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02239038: .word 0x0224318C
+
+ arm_func_start MOD13_0223903C
+MOD13_0223903C: ; 0x0223903C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02239098 ; =0x0224318C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0xa90]
+ cmp r0, #1
+ beq _02239068
+ cmp r0, #0x1a
+ beq _02239068
+ cmp r0, #0x1d
+ bne _0223908C
+_02239068:
+ bl MOD13_0223909C
+ bl MOD13_02237490
+ ldr r0, _02239098 ; =0x0224318C
+ mov r2, #2
+ ldr r1, [r0]
+ add sp, sp, #4
+ strb r2, [r1, #0xa90]
+ mov r0, #1
+ ldmia sp!, {pc}
+_0223908C:
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02239098: .word 0x0224318C
+
+ arm_func_start MOD13_0223909C
+MOD13_0223909C: ; 0x0223909C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02239120 ; =0x0224318C
+ ldr r0, [r0]
+ ldr r0, [r0, #0xac8]
+ bl MOD13_02237938
+ ldr r0, _02239120 ; =0x0224318C
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0xa90]
+ bl WM_GetNextTgid
+ ldr r3, _02239120 ; =0x0224318C
+ mov r2, #0x40
+ ldr r1, [r3]
+ add r1, r1, #0x600
+ strh r0, [r1, #0x48]
+ ldr r1, [r3]
+ ldr r0, [r1, #0xaa4]
+ add r1, r1, #0xa50
+ bl MI_CpuCopy8
+ ldr r0, _02239120 ; =0x0224318C
+ mov r2, #0
+ ldr r1, [r0]
+ strb r2, [r1, #0xa93]
+ ldr r1, [r0]
+ str r2, [r1, #0x204]
+ ldr r0, [r0]
+ add r0, r0, #0x600
+ ldrh r1, [r0, #0x48]
+ add r1, r1, #1
+ strh r1, [r0, #0x48]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02239120: .word 0x0224318C
+
+ arm_func_start MOD13_02239124
+MOD13_02239124: ; 0x02239124
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02239238 ; =0x0224318C
+ ldr r2, [r0]
+ ldrb r1, [r2, #0xa90]
+ cmp r1, #1
+ beq _02239160
+ cmp r1, #0x14
+ beq _02239160
+ cmp r1, #0x17
+ beq _02239160
+ cmp r1, #0x1a
+ beq _02239160
+ cmp r1, #0x1d
+ bne _02239184
+_02239160:
+ mov r1, #0x22
+ strb r1, [r2, #0xa90]
+ ldr r0, _02239238 ; =0x0224318C
+ mov r1, #0
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xaac]
+ mov r0, #1
+ ldmia sp!, {pc}
+_02239184:
+ cmp r1, #4
+ beq _022391A4
+ cmp r1, #5
+ beq _022391A4
+ cmp r1, #6
+ beq _022391A4
+ cmp r1, #0xd
+ bne _022391EC
+_022391A4:
+ cmp r1, #4
+ bne _022391C0
+ ldr r0, [r2, #0xa98]
+ cmp r0, #6
+ addlo sp, sp, #4
+ movlo r0, #0
+ ldmloia sp!, {pc}
+_022391C0:
+ bl MOD13_02214F18
+ ldr r0, _02239238 ; =0x0224318C
+ mov r3, #0x10
+ ldr r1, [r0]
+ mov r2, #2
+ strb r3, [r1, #0xa90]
+ ldr r1, [r0]
+ add sp, sp, #4
+ strb r2, [r1, #0xaac]
+ mov r0, #1
+ ldmia sp!, {pc}
+_022391EC:
+ add r0, r1, #0xf7
+ and r0, r0, #0xff
+ cmp r0, #1
+ movls r0, #0x20
+ strlsb r0, [r2, #0xa90]
+ addls sp, sp, #4
+ movls r0, #1
+ ldmlsia sp!, {pc}
+ cmp r1, #0xc
+ moveq r0, #0x22
+ streqb r0, [r2, #0xa90]
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ cmp r1, #2
+ moveq r0, #0
+ movne r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02239238: .word 0x0224318C
+
+ arm_func_start MOD13_0223923C
+MOD13_0223923C: ; 0x0223923C
+ stmdb sp!, {r4, lr}
+ ldr r2, _02239328 ; =0x0224318C
+ mov r4, r1
+ str r0, [r2]
+ add r0, r0, #0xb00
+ bl MOD13_02236F10
+ ldr r1, _02239328 ; =0x0224318C
+ mov r3, #0
+ ldr r0, [r1]
+ mov r2, #1
+ add r0, r0, #0x600
+ strh r3, [r0, #0x48]
+ ldr r0, [r1]
+ add r0, r0, #0x600
+ strh r3, [r0, #0x4a]
+ ldr r0, [r1]
+ strb r2, [r0, #0xa90]
+ ldr r0, [r1]
+ strb r2, [r0, #0xa91]
+ ldr r0, [r1]
+ str r3, [r0, #0xa9c]
+ bl MOD13_022385BC
+ ldr r0, _02239328 ; =0x0224318C
+ ldr r3, [r4]
+ ldr r2, [r0]
+ mov r1, #2
+ str r3, [r2, #0xab4]
+ ldr r3, [r4, #4]
+ ldr r2, [r0]
+ str r3, [r2, #0xab8]
+ ldr r3, [r4, #8]
+ ldr r2, [r0]
+ str r3, [r2, #0xabc]
+ ldr r3, [r4, #0xc]
+ ldr r2, [r0]
+ str r3, [r2, #0xac0]
+ ldr r3, [r4, #0x10]
+ ldr r2, [r0]
+ str r3, [r2, #0xac4]
+ ldr r3, [r4, #0x14]
+ ldr r2, [r0]
+ str r3, [r2, #0xac8]
+ ldrb r3, [r4, #0x18]
+ ldr r2, [r0]
+ strb r3, [r2, #0xa92]
+ ldr r0, [r0]
+ strb r1, [r0, #0xacc]
+ bl OS_GetTick
+ ldr r1, _02239328 ; =0x0224318C
+ ldr r0, _0223932C ; =0x0000064C
+ ldr r1, [r1]
+ add r0, r1, r0
+ bl FUN_02095D68
+ bl OS_GetTick
+ bl MOD13_022338FC
+ ldr r1, _02239328 ; =0x0224318C
+ ldr r1, [r1]
+ str r0, [r1, #0xaa4]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02239328: .word 0x0224318C
+_0223932C: .word 0x0000064C
+
+ arm_func_start MOD13_02239330
+MOD13_02239330: ; 0x02239330
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r6, r1
+ mov r7, r0
+ mov r5, r2
+ bl strlen
+ mov r4, r0
+ mov r0, r6
+ bl strlen
+ cmp r4, r5
+ blt _02239364
+ cmp r0, r5
+ bge _02239370
+_02239364:
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02239370:
+ sub r1, r0, r5
+ sub r3, r4, r5
+ mov r2, r5
+ add r0, r7, r3
+ add r1, r6, r1
+ bl memcmp
+ cmp r0, #0
+ moveq r0, #1
+ movne r0, #0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+
+ arm_func_start MOD13_0223939C
+MOD13_0223939C: ; 0x0223939C
+ stmdb sp!, {r0, r1, r2, r3}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ add r0, sp, #8
+ bl MOD13_0223AF90
+ ldr r0, _022393D4 ; =0x02243190
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0x84]
+ bl MOD13_02239FD0
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ add sp, sp, #0x10
+ bx lr
+ .align 2, 0
+_022393D4: .word 0x02243190
+
+ arm_func_start MOD13_022393D8
+MOD13_022393D8: ; 0x022393D8
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0x4c
+ ldr r3, _022394C4 ; =0x02243190
+ mov r6, r0
+ ldr r0, [r3]
+ mov r5, r1
+ ldr r0, [r0, #0x84]
+ mov r4, r2
+ bl MOD13_02239F78
+ add r0, sp, #4
+ bl FS_InitFile
+ add r0, sp, #4
+ mov r1, r6
+ bl FS_OpenFile
+ cmp r0, #0
+ bne _0223941C
+ bl OS_Terminate
+_0223941C:
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x28]
+ mov r2, #2
+ sub r7, r1, r0
+ cmp r5, #0
+ ldr r1, _022394C8 ; =0x022409D4
+ mov r0, r6
+ strne r7, [r5]
+ bl MOD13_02239330
+ cmp r0, #0
+ mvnne r6, #3
+ moveq r6, r4
+ mov r0, r7
+ mov r1, r6
+ bl MOD13_0223B004
+ mov r1, r0
+ add r0, sp, #4
+ mov r2, r7
+ str r1, [sp]
+ bl FS_ReadFile
+ add r0, sp, #4
+ bl FS_CloseFile
+ cmp r6, #0
+ ldrgt r0, [sp]
+ addgt sp, sp, #0x4c
+ ldmgtia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, [sp]
+ cmp r5, #0
+ ldr r0, [r0]
+ mov r1, r4
+ mov r0, r0, lsr #8
+ strne r0, [r5]
+ bl MOD13_0223B004
+ mov r4, r0
+ ldr r0, [sp]
+ mov r1, r4
+ bl MI_UncompressLZ8
+ add r0, sp, #0
+ bl MOD13_0223AF90
+ mov r0, r4
+ add sp, sp, #0x4c
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022394C4: .word 0x02243190
+_022394C8: .word 0x022409D4
+
+ arm_func_start MOD13_022394CC
+MOD13_022394CC: ; 0x022394CC
+ mov r0, #1
+ bx lr
+
+ arm_func_start MOD13_022394D4
+MOD13_022394D4: ; 0x022394D4
+ ldr ip, _022394E0 ; =0x020D0B40
+ mov r1, #0
+ bx ip
+ .align 2, 0
+_022394E0: .word 0x020D0B40
+
+ arm_func_start MOD13_022394E4
+MOD13_022394E4: ; 0x022394E4
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr ip, _02239524 ; =MOD13_022394D4
+ str ip, [sp]
+ str r0, [sp, #4]
+ mov ip, #1
+ str ip, [sp, #8]
+ ldr r0, [r0, #0x28]
+ mov ip, r1
+ add r1, r2, r0
+ mov r2, ip
+ mvn r0, #0
+ bl CARDi_ReadRom
+ mov r0, #6
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02239524: .word MOD13_022394D4
+
+ arm_func_start MOD13_02239528
+MOD13_02239528: ; 0x02239528
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r1, #1
+ beq _02239584
+ cmp r1, #9
+ beq _0223954C
+ cmp r1, #0xa
+ beq _02239568
+ b _02239590
+_0223954C:
+ ldr r0, _0223959C ; =0x02243190
+ ldr r0, [r0]
+ ldrh r0, [r0, #0xe4]
+ bl CARD_LockRom
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {pc}
+_02239568:
+ ldr r0, _0223959C ; =0x02243190
+ ldr r0, [r0]
+ ldrh r0, [r0, #0xe4]
+ bl CARD_UnlockRom
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {pc}
+_02239584:
+ add sp, sp, #4
+ mov r0, #4
+ ldmia sp!, {pc}
+_02239590:
+ mov r0, #8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223959C: .word 0x02243190
+
+ arm_func_start MOD13_022395A0
+MOD13_022395A0: ; 0x022395A0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02239624 ; =0x022409D8
+ bl FS_ChangeDir
+ ldr r0, _02239628 ; =0x02243190
+ ldr r0, [r0]
+ add r0, r0, #0x88
+ bl FS_UnloadArchiveTables
+ ldr r0, _02239628 ; =0x02243190
+ ldr r0, [r0]
+ add r0, r0, #0x88
+ bl FUN_020D0EB0
+ ldr r0, _02239628 ; =0x02243190
+ ldr r0, [r0]
+ add r0, r0, #0x88
+ bl FUN_020D0FF0
+ ldr r0, _02239628 ; =0x02243190
+ ldr r0, [r0]
+ ldrh r0, [r0, #0xe4]
+ bl OS_ReleaseLockID
+ ldr r0, _02239628 ; =0x02243190
+ mov r2, #0
+ ldr r1, [r0]
+ strh r2, [r1, #0xe4]
+ ldr r0, [r0]
+ bl MOD13_0223AF90
+ ldr r0, _02239628 ; =0x02243190
+ mov r2, #0
+ ldr r1, [r0]
+ str r2, [r1]
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02239624: .word 0x022409D8
+_02239628: .word 0x02243190
+
+ arm_func_start MOD13_0223962C
+MOD13_0223962C: ; 0x0223962C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #0xe8
+ mov r0, #0xe8
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r1, _022397BC ; =0x02243190
+ str r0, [r1]
+ add r0, sp, #0x20
+ bl FS_InitFile
+ ldr r1, _022397C0 ; =0x022409E0
+ add r0, sp, #0x20
+ bl FS_OpenFile
+ cmp r0, #0
+ bne _02239668
+ bl OS_Terminate
+_02239668:
+ bl OS_GetLockID
+ ldr r2, _022397BC ; =0x02243190
+ add r1, sp, #0x10
+ ldr r3, [r2]
+ mov r2, #8
+ strh r0, [r3, #0xe4]
+ add r0, sp, #0x20
+ ldr r4, [sp, #0x44]
+ bl FS_ReadFile
+ add r0, sp, #0x20
+ add r1, sp, #0x18
+ mov r2, #8
+ bl FS_ReadFile
+ add r0, sp, #0x20
+ bl FS_CloseFile
+ ldr r0, _022397BC ; =0x02243190
+ ldr r0, [r0]
+ add r0, r0, #0x88
+ bl FS_InitArchive
+ ldr r0, _022397BC ; =0x02243190
+ ldr r1, _022397C4 ; =0x0223F740
+ ldr r0, [r0]
+ mov r2, #3
+ add r0, r0, #0x88
+ bl FS_RegisterArchiveName
+ cmp r0, #0
+ bne _022396D8
+ bl OS_Terminate
+_022396D8:
+ ldr r0, _022397BC ; =0x02243190
+ ldr r1, _022397C8 ; =MOD13_02239528
+ ldr r0, [r0]
+ ldr r2, _022397CC ; =0x00000602
+ add r0, r0, #0x88
+ bl FS_SetArchiveProc
+ ldr r0, [sp, #0x10]
+ ldr r1, _022397D0 ; =MOD13_022394E4
+ str r0, [sp]
+ ldr r2, [sp, #0x14]
+ ldr r0, _022397D4 ; =MOD13_022394CC
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _022397BC ; =0x02243190
+ ldr r2, [sp, #0x18]
+ ldr r0, [r0]
+ ldr r3, [sp, #0x1c]
+ mov r1, r4
+ add r0, r0, #0x88
+ bl FS_LoadArchive
+ cmp r0, #0
+ bne _02239738
+ bl OS_Terminate
+_02239738:
+ ldr r0, _022397BC ; =0x02243190
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, r1
+ add r0, r0, #0x88
+ bl FUN_020D0D84
+ mov r1, #4
+ mov r4, r0
+ bl MOD13_0223B004
+ ldr r1, _022397BC ; =0x02243190
+ mov r2, r4
+ ldr r3, [r1]
+ str r0, [r3]
+ ldr r0, [r1]
+ ldr r1, [r0], #0x88
+ bl FUN_020D0D84
+ ldr r1, _022397BC ; =0x02243190
+ mov r0, #0x20
+ ldr r1, [r1]
+ mov r2, #4
+ add r1, r1, #4
+ bl MOD13_0223A054
+ ldr r2, _022397BC ; =0x02243190
+ ldr r1, _022397D8 ; =0x022409F8
+ ldr r3, [r2]
+ ldr r2, _022397C4 ; =0x0223F740
+ str r0, [r3, #0x84]
+ add r0, sp, #0x68
+ bl OS_SPrintf
+ add r0, sp, #0x68
+ bl FS_ChangeDir
+ add sp, sp, #0xe8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022397BC: .word 0x02243190
+_022397C0: .word 0x022409E0
+_022397C4: .word 0x0223F740
+_022397C8: .word MOD13_02239528
+_022397CC: .word 0x00000602
+_022397D0: .word MOD13_022394E4
+_022397D4: .word MOD13_022394CC
+_022397D8: .word 0x022409F8
+
+ arm_func_start MOD13_022397DC
+MOD13_022397DC: ; 0x022397DC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr lr, [r0, #8]
+ ldr r0, _02239810 ; =0x01FF0000
+ ldr ip, [lr, r1, lsl #3]
+ and r0, ip, r0
+ mov r0, r0, lsr #0x10
+ str r0, [r2]
+ ldr r0, [lr, r1, lsl #3]
+ and r0, r0, #0xff
+ str r0, [r3]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02239810: .word 0x01FF0000
+
+ arm_func_start MOD13_02239814
+MOD13_02239814: ; 0x02239814
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r1, #0
+ ldr lr, [r0, #8]
+ blt _02239844
+ add r1, lr, r1, lsl #3
+ ldrh r0, [r1, #4]
+ add sp, sp, #4
+ bic r0, r0, #0xc00
+ orr r0, r0, r2, lsl #10
+ strh r0, [r1, #4]
+ ldmia sp!, {pc}
+_02239844:
+ ldrb r1, [r0, #0xc]
+ mov ip, #0
+ cmp r1, #0
+ addle sp, sp, #4
+ ldmleia sp!, {pc}
+ mov r3, r2, lsl #0xa
+_0223985C:
+ add r2, lr, ip, lsl #3
+ ldrh r1, [r2, #4]
+ add ip, ip, #1
+ bic r1, r1, #0xc00
+ orr r1, r1, r3
+ strh r1, [r2, #4]
+ ldrb r1, [r0, #0xc]
+ cmp ip, r1
+ blt _0223985C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_02239888
+MOD13_02239888: ; 0x02239888
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #0x10
+ cmp r1, #0
+ ldr ip, [r0, #8]
+ blt _022398C8
+ ldr r5, [ip, r1, lsl #3]
+ ldr r4, _02239988 ; =0xFE00FF00
+ ldr r0, _0223998C ; =0x000001FF
+ and r4, r5, r4
+ and r3, r3, #0xff
+ and r2, r2, r0
+ orr r0, r4, r3
+ orr r0, r0, r2, lsl #16
+ str r0, [ip, r1, lsl #3]
+ add sp, sp, #0x10
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_022398C8:
+ ldr r1, [ip]
+ ldr lr, _02239990 ; =0x01FF0000
+ ldr r4, _0223998C ; =0x000001FF
+ and r1, r1, lr
+ mov r1, r1, lsr #0x10
+ str r1, [sp]
+ ldr r1, [ip]
+ ldr r5, _02239988 ; =0xFE00FF00
+ and r1, r1, #0xff
+ str r1, [sp, #4]
+ ldr r6, [ip]
+ and r1, r3, #0xff
+ and r6, r6, r5
+ and r7, r2, r4
+ orr r1, r6, r1
+ orr r1, r1, r7, lsl #16
+ str r1, [ip]
+ ldrb r1, [r0, #0xc]
+ ldr r7, [sp]
+ ldr r6, [sp, #4]
+ cmp r1, #1
+ sub r1, r3, r6
+ addle sp, sp, #0x10
+ sub r2, r2, r7
+ mov r3, #1
+ ldmleia sp!, {r4, r5, r6, r7, r8, pc}
+_02239930:
+ ldr r6, [ip, r3, lsl #3]
+ and r7, r6, lr
+ mov r6, r7, lsr #0x10
+ str r6, [sp, #8]
+ ldr r6, [ip, r3, lsl #3]
+ add r8, r2, r7, lsr #16
+ and r6, r6, #0xff
+ str r6, [sp, #0xc]
+ ldr r7, [ip, r3, lsl #3]
+ add r6, r6, r1
+ and r7, r7, r5
+ and r6, r6, #0xff
+ and r8, r8, r4
+ orr r6, r7, r6
+ orr r6, r6, r8, lsl #16
+ str r6, [ip, r3, lsl #3]
+ ldrb r6, [r0, #0xc]
+ add r3, r3, #1
+ cmp r3, r6
+ blt _02239930
+ add sp, sp, #0x10
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02239988: .word 0xFE00FF00
+_0223998C: .word 0x000001FF
+_02239990: .word 0x01FF0000
+
+ arm_func_start MOD13_02239994
+MOD13_02239994: ; 0x02239994
+ stmdb sp!, {r4, lr}
+ cmp r1, #0
+ ldr ip, [r0, #8]
+ blt _022399CC
+ ldr r0, [ip, r1, lsl #3]
+ add lr, ip, r1, lsl #3
+ bic r0, r0, #0xc00
+ orr r0, r0, r2, lsl #10
+ str r0, [ip, r1, lsl #3]
+ ldrh r0, [lr, #4]
+ bic r0, r0, #0xf000
+ orr r0, r0, r3, lsl #12
+ strh r0, [lr, #4]
+ ldmia sp!, {r4, pc}
+_022399CC:
+ ldrb lr, [r0, #0xc]
+ mov r1, #0
+ cmp lr, #0
+ ldmleia sp!, {r4, pc}
+ mov r4, r2, lsl #0xa
+ mov lr, r3, lsl #0xc
+_022399E4:
+ ldr r2, [ip, r1, lsl #3]
+ add r3, ip, r1, lsl #3
+ bic r2, r2, #0xc00
+ orr r2, r2, r4
+ str r2, [ip, r1, lsl #3]
+ ldrh r2, [r3, #4]
+ add r1, r1, #1
+ bic r2, r2, #0xf000
+ orr r2, r2, lr
+ strh r2, [r3, #4]
+ ldrb r2, [r0, #0xc]
+ cmp r1, r2
+ blt _022399E4
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_02239A1C
+MOD13_02239A1C: ; 0x02239A1C
+ stmdb sp!, {r4, lr}
+ cmp r1, #0
+ ldr ip, [r0, #8]
+ blt _02239A70
+ cmp r2, #0x100
+ beq _02239A54
+ cmp r2, #0x300
+ beq _02239A54
+ ldr r3, [ip, r1, lsl #3]
+ ldr r0, _02239AD0 ; =0xC1FFFCFF
+ and r0, r3, r0
+ orr r0, r0, r2
+ str r0, [ip, r1, lsl #3]
+ ldmia sp!, {r4, pc}
+_02239A54:
+ ldr lr, [ip, r1, lsl #3]
+ ldr r0, _02239AD0 ; =0xC1FFFCFF
+ and r0, lr, r0
+ orr r0, r0, r2
+ orr r0, r0, r3, lsl #25
+ str r0, [ip, r1, lsl #3]
+ ldmia sp!, {r4, pc}
+_02239A70:
+ ldrb lr, [r0, #0xc]
+ mov r1, #0
+ cmp lr, #0
+ ldmleia sp!, {r4, pc}
+ mov r4, r3, lsl #0x19
+ ldr r3, _02239AD0 ; =0xC1FFFCFF
+_02239A88:
+ cmp r2, #0x100
+ beq _02239AA8
+ cmp r2, #0x300
+ ldrne lr, [ip, r1, lsl #3]
+ andne lr, lr, r3
+ orrne lr, lr, r2
+ strne lr, [ip, r1, lsl #3]
+ bne _02239ABC
+_02239AA8:
+ ldr lr, [ip, r1, lsl #3]
+ and lr, lr, r3
+ orr lr, lr, r2
+ orr lr, r4, lr
+ str lr, [ip, r1, lsl #3]
+_02239ABC:
+ ldrb lr, [r0, #0xc]
+ add r1, r1, #1
+ cmp r1, lr
+ blt _02239A88
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02239AD0: .word 0xC1FFFCFF
+
+ arm_func_start MOD13_02239AD4
+MOD13_02239AD4: ; 0x02239AD4
+ ldrb r0, [r0, #0xc]
+ bx lr
+
+ arm_func_start MOD13_02239ADC
+MOD13_02239ADC: ; 0x02239ADC
+ ldr r0, [r0, #8]
+ add r0, r0, r1, lsl #3
+ bx lr
+
+ arm_func_start MOD13_02239AE8
+MOD13_02239AE8: ; 0x02239AE8
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ ldrb r0, [r5, #0xc]
+ mov r4, #0
+ mov r2, r4
+ cmp r0, #0
+ ldr r3, [r5, #8]
+ ble _02239B34
+ ldr r0, _02239B6C ; =0xC1FFFCFF
+_02239B10:
+ ldr r1, [r3]
+ add r2, r2, #1
+ and r1, r1, r0
+ orr r1, r1, #0x200
+ str r1, [r3]
+ ldrb r1, [r5, #0xc]
+ add r3, r3, #8
+ cmp r2, r1
+ blt _02239B10
+_02239B34:
+ mov r0, r5
+ bl MOD13_0223B8C4
+ ldr r0, _02239B70 ; =0x02243194
+ ldr r1, [r0]
+ add r0, r1, #0x228
+ cmp r5, r0
+ movhs r4, #1
+ mov r0, #0x228
+ mla r0, r4, r0, r1
+ ldr r0, [r0, #0x224]
+ mov r1, r5
+ bl MOD13_02239FD0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02239B6C: .word 0xC1FFFCFF
+_02239B70: .word 0x02243194
+
+ arm_func_start MOD13_02239B74
+MOD13_02239B74: ; 0x02239B74
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ mov sb, r0
+ mov r0, #0x228
+ mul r7, sb, r0
+ ldr r0, _02239CE4 ; =0x02243194
+ mov r5, r1
+ ldr r0, [r0]
+ mov r6, r2
+ add r0, r0, r7
+ ldr r0, [r0, #0x224]
+ bl MOD13_02239F78
+ mov r4, r0
+ mov r0, #1
+ bl OS_DisableIrqMask
+ mov r8, r0
+ cmp r6, #0
+ beq _02239C44
+ ldr r1, _02239CE4 ; =0x02243194
+ mov r0, #0x228
+ ldr r2, [r1]
+ mla r0, sb, r0, r2
+ add r6, r0, #0x200
+ add r0, r0, #0x210
+ cmp r6, r0
+ beq _02239C24
+ mov r1, r5, lsl #3
+ add r0, r2, r7
+ add r2, r0, #0x210
+_02239BE8:
+ ldrb sb, [r6, #0xc]
+ ldr r0, [r6, #4]
+ ldr ip, [r6, #8]
+ ldr r3, [r0, #8]
+ add ip, ip, sb, lsl #3
+ add sb, ip, r1
+ cmp sb, r3
+ bhi _02239C18
+ mov r1, r4
+ str ip, [r4, #8]
+ bl MOD13_0223B888
+ b _02239C24
+_02239C18:
+ mov r6, r0
+ cmp r0, r2
+ bne _02239BE8
+_02239C24:
+ ldr r0, _02239CE4 ; =0x02243194
+ ldr r0, [r0]
+ add r0, r0, r7
+ add r0, r0, #0x210
+ cmp r6, r0
+ bne _02239CCC
+ bl OS_Terminate
+ b _02239CCC
+_02239C44:
+ ldr r1, _02239CE4 ; =0x02243194
+ mov r0, #0x228
+ ldr r1, [r1]
+ mla r0, sb, r0, r1
+ add r6, r0, #0x210
+ add r0, r0, #0x200
+ cmp r6, r0
+ beq _02239CB0
+ mov r0, r5, lsl #3
+ add r1, r1, r7
+ add r1, r1, #0x200
+_02239C70:
+ ldr ip, [r6]
+ ldr sb, [r6, #8]
+ ldrb r2, [ip, #0xc]
+ ldr r3, [ip, #8]
+ sub sb, sb, r0
+ add r2, r3, r2, lsl #3
+ cmp sb, r2
+ blo _02239CA4
+ mov r0, r6
+ mov r1, r4
+ str sb, [r4, #8]
+ bl MOD13_0223B888
+ b _02239CB0
+_02239CA4:
+ mov r6, ip
+ cmp ip, r1
+ bne _02239C70
+_02239CB0:
+ ldr r0, _02239CE4 ; =0x02243194
+ ldr r0, [r0]
+ add r0, r0, r7
+ add r0, r0, #0x200
+ cmp r6, r0
+ bne _02239CCC
+ bl OS_Terminate
+_02239CCC:
+ mov r0, r8
+ bl OS_EnableIrqMask
+ mov r0, r4
+ strb r5, [r4, #0xc]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ .align 2, 0
+_02239CE4: .word 0x02243194
+
+ arm_func_start MOD13_02239CE8
+MOD13_02239CE8: ; 0x02239CE8
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, #0
+ mov r5, r6
+ ldr r4, _02239D34 ; =0x02243194
+_02239CF8:
+ ldr r0, [r4]
+ add r0, r0, r5
+ ldr r0, [r0, #0x220]
+ bl MOD13_0223B904
+ ldr r0, [r4]
+ add r0, r0, r5
+ ldr r0, [r0, #0x224]
+ bl MOD13_0223A030
+ add r6, r6, #1
+ cmp r6, #2
+ add r5, r5, #0x228
+ blt _02239CF8
+ ldr r0, _02239D34 ; =0x02243194
+ bl MOD13_0223AF90
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02239D34: .word 0x02243194
+
+ arm_func_start MOD13_02239D38
+MOD13_02239D38: ; 0x02239D38
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ mov r0, #0x450
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr sl, _02239E08 ; =0x02243194
+ mov sb, #0
+ mov r8, sb
+ str r0, [sl]
+ mov r7, #0x20
+ mov r6, #0x10
+ mov r5, #0x40
+ mov r4, #0x7f
+_02239D68:
+ ldr r1, [sl]
+ mov r0, r7
+ mov r2, r6
+ add r1, r1, r8
+ bl MOD13_0223A054
+ ldr r1, [sl]
+ add r1, r1, r8
+ str r0, [r1, #0x224]
+ bl MOD13_0223B928
+ ldr r2, [sl]
+ mov r1, r5
+ add r2, r2, r8
+ str r0, [r2, #0x220]
+ mov r0, sb
+ bl MOD13_0223B95C
+ ldr r2, [sl]
+ mov r1, r4
+ add r2, r2, r8
+ str r0, [r2, #0x208]
+ mov r0, sb
+ bl MOD13_0223B95C
+ add r1, r0, #8
+ ldr r0, [sl]
+ add r0, r0, r8
+ str r1, [r0, #0x218]
+ ldr r0, [sl]
+ add r1, r0, r8
+ ldr r0, [r1, #0x220]
+ add r1, r1, #0x200
+ bl MOD13_0223B868
+ ldr r0, [sl]
+ add r1, r0, r8
+ ldr r0, [r1, #0x220]
+ add r1, r1, #0x210
+ bl MOD13_0223B878
+ add r8, r8, #0x228
+ add sb, sb, #1
+ cmp sb, #2
+ blt _02239D68
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_02239E08: .word 0x02243194
+
+ arm_func_start MOD13_02239E0C
+MOD13_02239E0C: ; 0x02239E0C
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r3, _02239E50 ; =0x02243198
+ mov r6, r0
+ mov r5, r1
+ ldr r3, [r3, r6, lsl #2]
+ mov r1, r5, lsl #3
+ ldrh r1, [r3, r1]
+ bl MOD13_02239B74
+ mov r1, #0
+ mov r4, r0
+ bl MOD13_02239ADC
+ mov r2, r0
+ mov r0, r6
+ mov r1, r5
+ bl MOD13_02239E8C
+ mov r0, r4
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02239E50: .word 0x02243198
+
+ arm_func_start MOD13_02239E54
+MOD13_02239E54: ; 0x02239E54
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #8
+ mov r5, r1
+ add r1, sp, #0
+ mov r6, r0
+ bl MOD13_0223B9C0
+ mov r4, r0
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_02239E8C
+ mov r0, r4
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, pc}
+
+ arm_func_start MOD13_02239E8C
+MOD13_02239E8C: ; 0x02239E8C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ sub sp, sp, #8
+ ldr r3, _02239F1C ; =0x02243198
+ mov r5, r2
+ ldr r6, [r3, r0, lsl #2]
+ mov r2, r1, lsl #3
+ add r0, r6, r1, lsl #3
+ ldr r3, [r0, #4]
+ ldrh r4, [r6, r2]
+ add r1, sp, #0
+ mov r0, #0
+ mov r2, #8
+ add sl, r6, r3
+ bl MIi_CpuClear32
+ cmp r4, #0
+ mov sb, #0
+ addle sp, sp, #8
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ add r8, sp, #0
+ mov r7, #6
+ mov r6, #8
+_02239EE0:
+ mov r0, sl
+ mov r1, r8
+ mov r2, r7
+ bl MIi_CpuCopy16
+ mov r0, r8
+ mov r1, r5
+ mov r2, r6
+ bl MIi_CpuCopy32
+ add sb, sb, #1
+ cmp sb, r4
+ add sl, sl, #6
+ add r5, r5, #8
+ blt _02239EE0
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_02239F1C: .word 0x02243198
+
+ arm_func_start MOD13_02239F20
+MOD13_02239F20: ; 0x02239F20
+ stmdb sp!, {r4, lr}
+ ldr r1, _02239F44 ; =0x02243198
+ mov r4, r0
+ ldr r0, [r1, r4, lsl #2]
+ bl MOD13_0223939C
+ ldr r0, _02239F44 ; =0x02243198
+ mov r1, #0
+ str r1, [r0, r4, lsl #2]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02239F44: .word 0x02243198
+
+ arm_func_start MOD13_02239F48
+MOD13_02239F48: ; 0x02239F48
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ mov r4, r0
+ mov r0, r1
+ add r1, sp, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _02239F74 ; =0x02243198
+ str r0, [r1, r4, lsl #2]
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02239F74: .word 0x02243198
+
+ arm_func_start MOD13_02239F78
+MOD13_02239F78: ; 0x02239F78
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, r0
+ mov r0, #1
+ mov r5, #0
+ bl OS_DisableIrqMask
+ ldrb r2, [r6, #3]
+ ldrb r1, [r6, #2]
+ mov r4, r0
+ cmp r1, r2
+ beq _02239FC0
+ ldrh r1, [r6]
+ add r0, r2, r1
+ sub r0, r0, #1
+ bl FX_ModS32
+ strb r0, [r6, #3]
+ ldrb r0, [r6, #3]
+ add r0, r6, r0, lsl #2
+ ldr r5, [r0, #4]
+_02239FC0:
+ mov r0, r4
+ bl OS_EnableIrqMask
+ mov r0, r5
+ ldmia sp!, {r4, r5, r6, pc}
+
+ arm_func_start MOD13_02239FD0
+MOD13_02239FD0: ; 0x02239FD0
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ mov r0, #1
+ mov r4, r1
+ bl OS_DisableIrqMask
+ ldrb r2, [r5, #3]
+ mov r7, r0
+ ldrh r1, [r5]
+ add r0, r2, #1
+ bl FX_ModS32
+ ldrb r1, [r5, #2]
+ mov r6, r0
+ cmp r6, r1
+ bne _0223A010
+ bl OS_Terminate
+_0223A010:
+ ldrb r1, [r5, #3]
+ mov r0, r7
+ add r1, r5, r1, lsl #2
+ str r4, [r1, #4]
+ strb r6, [r5, #3]
+ bl OS_EnableIrqMask
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+
+ arm_func_start MOD13_0223A030
+MOD13_0223A030: ; 0x0223A030
+ stmdb sp!, {r0, r1, r2, r3}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ add r0, sp, #8
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ add sp, sp, #0x10
+ bx lr
+
+ arm_func_start MOD13_0223A054
+MOD13_0223A054: ; 0x0223A054
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl MOD13_0223A094
+ cmp r6, #0
+ mov r2, #0
+ ble _0223A08C
+_0223A074:
+ add r1, r0, r2, lsl #2
+ add r2, r2, #1
+ str r5, [r1, #4]
+ cmp r2, r6
+ add r5, r5, r4
+ blt _0223A074
+_0223A08C:
+ strb r6, [r0, #3]
+ ldmia sp!, {r4, r5, r6, pc}
+
+ arm_func_start MOD13_0223A094
+MOD13_0223A094: ; 0x0223A094
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ add r0, r4, #1
+ mov r0, r0, lsl #2
+ add r0, r0, #8
+ mov r1, #4
+ bl MOD13_0223B004
+ add r1, r4, #1
+ strh r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #2]
+ strb r1, [r0, #3]
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_0223A0C8
+MOD13_0223A0C8: ; 0x0223A0C8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrsh r2, [r1, #4]
+ add r2, r2, #1
+ strh r2, [r1, #4]
+ ldrsh r3, [r1, #4]
+ ldrh r2, [r1, #6]
+ cmp r3, r2
+ addlt sp, sp, #4
+ ldmltia sp!, {pc}
+ mov r2, #0
+ strb r2, [r1, #9]
+ mov r1, r0
+ mov r0, #1
+ bl MOD13_0223C110
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223A10C
+MOD13_0223A10C: ; 0x0223A10C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r1, _0223A168 ; =0x022431A0
+ mov r5, r0
+ ldr r4, [r1]
+ ldrb r0, [r4, #9]
+ cmp r0, #0
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {r4, r5, pc}
+ ldr r1, _0223A16C ; =MOD13_0223A0C8
+ mov r2, r4
+ mov r0, #1
+ mov r3, #0xc8
+ bl MOD13_0223C1C4
+ str r0, [r4]
+ mov r0, #0
+ strh r0, [r4, #4]
+ strh r5, [r4, #6]
+ mov r0, #1
+ strb r0, [r4, #9]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223A168: .word 0x022431A0
+_0223A16C: .word MOD13_0223A0C8
+
+ arm_func_start MOD13_0223A170
+MOD13_0223A170: ; 0x0223A170
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r3, _0223A294 ; =0x0223F748
+ ldr r2, _0223A298 ; =0x0223F744
+ ldrb r8, [r3]
+ ldrb r7, [r3, #1]
+ ldrb r6, [r3, #2]
+ ldrb lr, [r3, #3]
+ ldrb ip, [r2]
+ ldrb r5, [r2, #1]
+ ldrb r3, [r2, #2]
+ ldrb r2, [r2, #3]
+ strb r5, [sp, #5]
+ mov r4, r1
+ strb r8, [sp]
+ strb r7, [sp, #1]
+ strb r6, [sp, #2]
+ strb lr, [sp, #3]
+ strb ip, [sp, #4]
+ strb r3, [sp, #6]
+ strb r2, [sp, #7]
+ ldrsh r1, [r4, #4]
+ mov r5, r0
+ add r0, r1, #1
+ strh r0, [r4, #4]
+ ldrsh r0, [r4, #4]
+ ldrh r1, [r4, #6]
+ mov r0, r0, lsl #4
+ bl FX_DivS32
+ ldrb r3, [r4, #8]
+ add r2, sp, #0
+ mov r1, r0
+ ldrb r2, [r2, r3]
+ ands r0, r2, #1
+ rsbne r1, r1, #0x10
+ ands r0, r2, #0x10
+ ldr r0, _0223A29C ; =0x022431A0
+ rsbne r1, r1, #0
+ ldr r0, [r0]
+ cmp r4, r0
+ bne _0223A220
+ ldr r0, _0223A2A0 ; =0x04001050
+ bl G2x_ChangeBlendBrightness_
+ b _0223A228
+_0223A220:
+ ldr r0, _0223A2A4 ; =0x04000050
+ bl G2x_ChangeBlendBrightness_
+_0223A228:
+ ldrsh r1, [r4, #4]
+ ldrh r0, [r4, #6]
+ cmp r1, r0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, r5, r6, r7, r8, pc}
+ ldr r0, _0223A29C ; =0x022431A0
+ ldr r0, [r0]
+ cmp r4, r0
+ bne _0223A264
+ ldrb r2, [r4, #8]
+ add r1, sp, #4
+ ldr r0, _0223A2A0 ; =0x04001050
+ ldrsb r1, [r1, r2]
+ bl G2x_ChangeBlendBrightness_
+ b _0223A278
+_0223A264:
+ ldrb r2, [r4, #8]
+ add r1, sp, #4
+ ldr r0, _0223A2A4 ; =0x04000050
+ ldrsb r1, [r1, r2]
+ bl G2x_ChangeBlendBrightness_
+_0223A278:
+ mov r2, #0
+ mov r1, r5
+ mov r0, #1
+ strb r2, [r4, #9]
+ bl MOD13_0223C110
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0223A294: .word 0x0223F748
+_0223A298: .word 0x0223F744
+_0223A29C: .word 0x022431A0
+_0223A2A0: .word 0x04001050
+_0223A2A4: .word 0x04000050
+
+ arm_func_start MOD13_0223A2A8
+MOD13_0223A2A8: ; 0x0223A2A8
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #8
+ ldr r4, _0223A374 ; =0x0223F74C
+ mov r5, r0
+ ldrb r0, [r4, #3]
+ ldrb r6, [r4]
+ ldrb lr, [r4, #1]
+ strb r0, [sp, #3]
+ cmp r1, #1
+ ldreq r0, _0223A378 ; =0x022431A0
+ ldrb ip, [r4, #2]
+ strb r6, [sp]
+ ldreq r6, [r0]
+ ldrne r0, _0223A378 ; =0x022431A0
+ strb lr, [sp, #1]
+ ldrne r0, [r0]
+ strb ip, [sp, #2]
+ addne r6, r0, #0xc
+ ldrb r0, [r6, #9]
+ mov r4, r3
+ cmp r0, #0
+ addne sp, sp, #8
+ movne r0, #0
+ ldmneia sp!, {r4, r5, r6, pc}
+ cmp r1, #1
+ bne _0223A328
+ add r0, sp, #0
+ mov r1, r2
+ ldrsb r2, [r0, r5]
+ ldr r0, _0223A37C ; =0x04001050
+ bl G2x_SetBlendBrightness_
+ b _0223A33C
+_0223A328:
+ add r0, sp, #0
+ mov r1, r2
+ ldrsb r2, [r0, r5]
+ ldr r0, _0223A380 ; =0x04000050
+ bl G2x_SetBlendBrightness_
+_0223A33C:
+ ldr r1, _0223A384 ; =MOD13_0223A170
+ mov r2, r6
+ mov r0, #1
+ mov r3, #0xc8
+ bl MOD13_0223C1C4
+ str r0, [r6]
+ mov r0, #0
+ strh r0, [r6, #4]
+ strb r5, [r6, #8]
+ strh r4, [r6, #6]
+ mov r0, #1
+ strb r0, [r6, #9]
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0223A374: .word 0x0223F74C
+_0223A378: .word 0x022431A0
+_0223A37C: .word 0x04001050
+_0223A380: .word 0x04000050
+_0223A384: .word MOD13_0223A170
+
+ arm_func_start MOD13_0223A388
+MOD13_0223A388: ; 0x0223A388
+ cmp r0, #1
+ ldreq r0, _0223A3A8 ; =0x022431A0
+ ldreq r0, [r0]
+ ldrne r0, _0223A3A8 ; =0x022431A0
+ ldrne r0, [r0]
+ addne r0, r0, #0xc
+ ldrb r0, [r0, #9]
+ bx lr
+ .align 2, 0
+_0223A3A8: .word 0x022431A0
+
+ arm_func_start MOD13_0223A3AC
+MOD13_0223A3AC: ; 0x0223A3AC
+ ldr ip, _0223A3B8 ; =MOD13_0223AF90
+ ldr r0, _0223A3BC ; =0x022431A0
+ bx ip
+ .align 2, 0
+_0223A3B8: .word MOD13_0223AF90
+_0223A3BC: .word 0x022431A0
+
+ arm_func_start MOD13_0223A3C0
+MOD13_0223A3C0: ; 0x0223A3C0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0x18
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r2, _0223A404 ; =0x022431A0
+ mov r1, #0x3f
+ str r0, [r2]
+ ldr r0, _0223A408 ; =0x04000050
+ mov r2, #0x10
+ bl G2x_SetBlendBrightness_
+ ldr r0, _0223A40C ; =0x04001050
+ mov r1, #0x3f
+ mov r2, #0x10
+ bl G2x_SetBlendBrightness_
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223A404: .word 0x022431A0
+_0223A408: .word 0x04000050
+_0223A40C: .word 0x04001050
+
+ arm_func_start MOD13_0223A410
+MOD13_0223A410: ; 0x0223A410
+ ldr r2, _0223A438 ; =0x022431A4
+ ldr r1, _0223A43C ; =0x00000718
+ ldr r2, [r2]
+ add r1, r2, r1
+ cmp r0, r1
+ moveq r0, #1
+ streqb r0, [r2, #0x794]
+ movne r0, #1
+ strneb r0, [r2, #0x795]
+ bx lr
+ .align 2, 0
+_0223A438: .word 0x022431A4
+_0223A43C: .word 0x00000718
+
+ arm_func_start MOD13_0223A440
+MOD13_0223A440: ; 0x0223A440
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #0x10
+ mov r6, r3
+ mov r4, r0
+ mov r8, r1
+ mov r0, r6
+ mov r1, #0
+ mov r7, r2
+ bl MOD13_02239ADC
+ mov r2, #0
+ mov r5, r0
+ mov r0, r6
+ mvn r1, #0
+ mov r3, r2
+ bl MOD13_02239A1C
+ mov r0, r6
+ mvn r1, #0
+ mov r2, #0
+ mov r3, #0xf
+ bl MOD13_02239994
+ mov r0, r6
+ mvn r1, #0
+ ldr r2, [sp, #0x28]
+ bl MOD13_02239814
+ str r7, [sp]
+ mov r0, r5
+ mov r3, r8
+ mov r1, #0
+ str r1, [sp, #4]
+ ldrh r2, [r4, #0x34]
+ mov r1, #2
+ str r2, [sp, #8]
+ str r1, [sp, #0xc]
+ ldrb r1, [r4, #0x36]
+ ldrb r2, [r4, #0x37]
+ bl FUN_020B5E50
+ add sp, sp, #0x10
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+
+ arm_func_start MOD13_0223A4D8
+MOD13_0223A4D8: ; 0x0223A4D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, [r0, #0x18]
+ blx r2
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223A4F0
+MOD13_0223A4F0: ; 0x0223A4F0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x14
+ ldr lr, [sp, #0x18]
+ ldr ip, [sp, #0x1c]
+ str lr, [sp]
+ ldr lr, [sp, #0x20]
+ str ip, [sp, #4]
+ ldr ip, [sp, #0x24]
+ str lr, [sp, #8]
+ add r0, r0, #0x20
+ str ip, [sp, #0xc]
+ bl FUN_020B7168
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223A528
+MOD13_0223A528: ; 0x0223A528
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ ldr r7, [sp, #0x34]
+ mov sb, r1
+ ldrh r1, [r7]
+ ldr r8, [sp, #0x30]
+ ldr r6, [sp, #0x38]
+ mov sl, r0
+ mov fp, r2
+ str r3, [sp, #8]
+ cmp r1, #0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ mov r0, #0xc
+ mul r4, r6, r0
+_0223A564:
+ ldr r0, _0223A5E8 ; =0x022431A4
+ ldr r0, [r0]
+ add r5, r0, r4
+ mov r0, r5
+ bl FUN_020B5CE4
+ mov r1, r0
+ ldr r0, _0223A5EC ; =0x0000FFFF
+ cmp r1, r0
+ ldreq r0, [r5]
+ ldreqh r1, [r0, #2]
+ mov r0, r5
+ bl FUN_020B5C88
+ ldrh r1, [r5, #8]
+ ldrh r2, [r7]
+ ldr r3, [sp, #8]
+ cmp r1, #0
+ ldrnesb r1, [r0]
+ ldrneb r0, [r0, #1]
+ addne r0, r1, r0
+ ldreqsb r0, [r0, #2]
+ sub r1, r8, r0
+ str r2, [sp]
+ mov r0, sl
+ mov r2, fp
+ add r1, sb, r1, asr #1
+ str r6, [sp, #4]
+ bl MOD13_0223A5F0
+ ldrh r1, [r7, #2]!
+ add sb, sb, r8
+ cmp r1, #0
+ bne _0223A564
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_0223A5E8: .word 0x022431A4
+_0223A5EC: .word 0x0000FFFF
+
+ arm_func_start MOD13_0223A5F0
+MOD13_0223A5F0: ; 0x0223A5F0
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldrh ip, [sp, #0x10]
+ str r3, [sp]
+ ldr r3, _0223A630 ; =0x022431A4
+ str ip, [sp, #4]
+ ldr lr, [r3]
+ ldr ip, [sp, #0x14]
+ mov r3, #0xc
+ mov r4, r1
+ mla r1, ip, r3, lr
+ mov r3, r2
+ mov r2, r4
+ bl FUN_020B63CC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0223A630: .word 0x022431A4
+
+ arm_func_start MOD13_0223A634
+MOD13_0223A634: ; 0x0223A634
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr lr, [sp, #0x10]
+ ldr ip, [sp, #0x14]
+ str lr, [sp]
+ add r0, r0, #0x20
+ str ip, [sp, #4]
+ bl FUN_020B7218
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223A65C
+MOD13_0223A65C: ; 0x0223A65C
+ ldr r2, _0223A67C ; =0x022431A4
+ ldr r1, _0223A680 ; =0x00000718
+ ldr r3, [r2]
+ mov r2, #0x38
+ add r1, r3, r1
+ mla r0, r2, r0, r1
+ ldr ip, _0223A684 ; =MOD13_0223A688
+ bx ip
+ .align 2, 0
+_0223A67C: .word 0x022431A4
+_0223A680: .word 0x00000718
+_0223A684: .word MOD13_0223A688
+
+ arm_func_start MOD13_0223A688
+MOD13_0223A688: ; 0x0223A688
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldr r1, [r4, #0x34]
+ mov r0, #1
+ bl MOD13_0223C104
+ ldr r1, _0223A70C ; =0x022431A4
+ ldr r0, _0223A710 ; =0x00000718
+ ldr r1, [r1]
+ add r0, r1, r0
+ cmp r4, r0
+ bne _0223A6DC
+ bl G2_GetBG0CharPtr
+ ldr r2, _0223A714 ; =0x0223F754
+ mov r1, r0
+ ldrh r3, [r2]
+ ldrh r2, [r2, #2]
+ mov r0, #0
+ mul r2, r3, r2
+ mov r2, r2, lsl #5
+ bl MIi_CpuClear16
+ b _0223A700
+_0223A6DC:
+ bl G2_GetBG0CharPtr
+ ldr r2, _0223A714 ; =0x0223F754
+ mov r1, r0
+ ldrh r3, [r2, #4]
+ ldrh r2, [r2, #6]
+ mov r0, #0
+ mul r2, r3, r2
+ mov r2, r2, lsl #5
+ bl MIi_CpuClear16
+_0223A700:
+ add r0, r4, #0x30
+ bl MOD13_0223AF90
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0223A70C: .word 0x022431A4
+_0223A710: .word 0x00000718
+_0223A714: .word 0x0223F754
+
+ arm_func_start MOD13_0223A718
+MOD13_0223A718: ; 0x0223A718
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r4, r1
+ ldrb r0, [r4]
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r1, _0223A7E0 ; =0x022431A4
+ ldr r0, _0223A7E4 ; =0x00000794
+ ldr r2, [r1]
+ add r0, r2, r0
+ cmp r4, r0
+ bne _0223A790
+ ldr r1, _0223A7E8 ; =0x0223F754
+ ldr r0, [r2, #0x748]
+ ldrh r2, [r1]
+ ldrh r1, [r1, #2]
+ mul r1, r2, r1
+ mov r5, r1, lsl #5
+ mov r1, r5
+ bl DC_FlushRange
+ ldr r1, _0223A7E0 ; =0x022431A4
+ ldr r0, _0223A7EC ; =0x0223F750
+ ldr r2, [r1]
+ ldrh r1, [r0]
+ ldr r0, [r2, #0x748]
+ mov r2, r5
+ mov r1, r1, lsl #5
+ bl GX_LoadBG0Char
+ b _0223A7D0
+_0223A790:
+ ldr r1, _0223A7E8 ; =0x0223F754
+ ldr r0, [r2, #0x780]
+ ldrh r2, [r1, #4]
+ ldrh r1, [r1, #6]
+ mul r1, r2, r1
+ mov r5, r1, lsl #5
+ mov r1, r5
+ bl DC_FlushRange
+ ldr r1, _0223A7E0 ; =0x022431A4
+ ldr r0, _0223A7EC ; =0x0223F750
+ ldr r2, [r1]
+ ldrh r1, [r0, #2]
+ ldr r0, [r2, #0x780]
+ mov r2, r5
+ mov r1, r1, lsl #5
+ bl GXS_LoadBG0Char
+_0223A7D0:
+ mov r0, #0
+ strb r0, [r4]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223A7E0: .word 0x022431A4
+_0223A7E4: .word 0x00000794
+_0223A7E8: .word 0x0223F754
+_0223A7EC: .word 0x0223F750
+
+ arm_func_start MOD13_0223A7F0
+MOD13_0223A7F0: ; 0x0223A7F0
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #0x10
+ mov r8, r0
+ ldr r0, _0223A954 ; =0x022431A4
+ ldr r3, _0223A958 ; =0x0223F756
+ mov r4, r8, lsl #2
+ ldr r2, _0223A95C ; =0x0223F754
+ ldrh r5, [r3, r4]
+ ldrh r4, [r2, r4]
+ ldr r3, [r0]
+ ldr r0, _0223A960 ; =0x00000718
+ mul r2, r4, r5
+ mov r7, r1
+ add r1, r3, r0
+ mov r0, #0x38
+ mla r6, r8, r0, r1
+ mov r0, r2, lsl #5
+ mov r1, #0x20
+ bl MOD13_0223B004
+ str r0, [r6, #0x30]
+ cmp r8, #1
+ bne _0223A86C
+ ldr r1, _0223A964 ; =0x04001008
+ ldrh r0, [r1]
+ bic r0, r0, #0x40
+ strh r0, [r1]
+ ldrh r0, [r1]
+ and r0, r0, #0x43
+ orr r0, r0, #0xc00
+ strh r0, [r1]
+ b _0223A88C
+_0223A86C:
+ ldr r1, _0223A968 ; =0x04000008
+ ldrh r0, [r1]
+ bic r0, r0, #0x40
+ strh r0, [r1]
+ ldrh r0, [r1]
+ and r0, r0, #0x43
+ orr r0, r0, #0xc00
+ strh r0, [r1]
+_0223A88C:
+ mov r0, #4
+ str r0, [sp]
+ ldr r1, [r6, #0x30]
+ mov r0, r6
+ mov r2, r4
+ mov r3, r5
+ bl FUN_020B6388
+ ldr r1, _0223A954 ; =0x022431A4
+ mov r0, #0xc
+ ldr r2, [r1]
+ mov r1, #1
+ mla r0, r7, r0, r2
+ str r6, [r6, #0x20]
+ str r0, [r6, #0x24]
+ str r1, [r6, #0x28]
+ str r1, [r6, #0x2c]
+ cmp r8, #1
+ bne _0223A8DC
+ bl G2S_GetBG0ScrPtr
+ b _0223A8E0
+_0223A8DC:
+ bl G2_GetBG0ScrPtr
+_0223A8E0:
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #0x20
+ ldr r1, _0223A96C ; =0x0223F750
+ str r2, [sp, #4]
+ mov r2, r8, lsl #1
+ ldrh r7, [r1, r2]
+ mov r1, r4
+ mov r2, r5
+ str r7, [sp, #8]
+ mov r4, #0xf
+ str r4, [sp, #0xc]
+ bl FUN_020B6240
+ mov r0, r6
+ mov r1, #0
+ bl MOD13_0223A4D8
+ ldr r1, _0223A954 ; =0x022431A4
+ ldr r0, _0223A970 ; =0x00000794
+ ldr r2, [r1]
+ ldr r1, _0223A974 ; =MOD13_0223A718
+ add r0, r2, r0
+ add r2, r0, r8
+ mov r0, #1
+ mov r3, #0xc8
+ bl MOD13_0223C1C4
+ str r0, [r6, #0x34]
+ mov r0, r6
+ add sp, sp, #0x10
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0223A954: .word 0x022431A4
+_0223A958: .word 0x0223F756
+_0223A95C: .word 0x0223F754
+_0223A960: .word 0x00000718
+_0223A964: .word 0x04001008
+_0223A968: .word 0x04000008
+_0223A96C: .word 0x0223F750
+_0223A970: .word 0x00000794
+_0223A974: .word MOD13_0223A718
+
+ arm_func_start MOD13_0223A978
+MOD13_0223A978: ; 0x0223A978
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldr r0, [r4, #0x30]
+ bl MOD13_0223BB20
+ ldr r0, _0223A9A0 ; =0x022431A4
+ mov r1, r4
+ ldr r0, [r0]
+ ldr r0, [r0, #0x788]
+ bl MOD13_02239FD0
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0223A9A0: .word 0x022431A4
+
+ arm_func_start MOD13_0223A9A4
+MOD13_0223A9A4: ; 0x0223A9A4
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r4, _0223AA7C ; =0x022431A4
+ mov r7, r0
+ ldr r0, [r4]
+ mov r6, r1
+ ldr r0, [r0, #0x788]
+ mov r5, r2
+ mov r8, r3
+ bl MOD13_02239F78
+ mov r4, r0
+ strb r6, [r4, #0x36]
+ mul r1, r6, r5
+ mov r2, r8
+ strb r5, [r4, #0x37]
+ mov r0, r7
+ add r3, sp, #4
+ bl MOD13_0223BB68
+ str r0, [r4, #0x30]
+ ldr r1, [sp, #4]
+ mov r0, r6
+ strh r1, [r4, #0x34]
+ mov r1, r5
+ bl FUN_020B6180
+ ldr r1, [sp, #0x20]
+ cmp r7, #1
+ str r0, [r1]
+ moveq ip, #0x6600000
+ ldr r7, [sp, #4]
+ mov r1, #4
+ movne ip, #0x6400000
+ str r1, [sp]
+ mov r0, r4
+ mov r2, r6
+ mov r3, r5
+ add r1, ip, r7, lsl #7
+ bl FUN_020B62F8
+ ldr r2, [r4, #0x18]
+ mov r0, r4
+ mov r1, #0
+ blx r2
+ ldr r0, _0223AA7C ; =0x022431A4
+ ldr r1, [sp, #0x24]
+ ldr r2, [r0]
+ mov r0, #0xc
+ mla r0, r1, r0, r2
+ str r4, [r4, #0x20]
+ str r0, [r4, #0x24]
+ mov r1, #1
+ str r1, [r4, #0x28]
+ mov r0, r4
+ str r1, [r4, #0x2c]
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0223AA7C: .word 0x022431A4
+
+ arm_func_start MOD13_0223AA80
+MOD13_0223AA80: ; 0x0223AA80
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r4, _0223AACC ; =0x022431A4
+ mov r5, #0
+_0223AA90:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x78c]
+ bl MOD13_0223939C
+ add r5, r5, #1
+ cmp r5, #2
+ blt _0223AA90
+ ldr r0, _0223AACC ; =0x022431A4
+ ldr r0, [r0]
+ ldr r0, [r0, #0x788]
+ bl MOD13_0223A030
+ ldr r0, _0223AACC ; =0x022431A4
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223AACC: .word 0x022431A4
+
+ arm_func_start MOD13_0223AAD0
+MOD13_0223AAD0: ; 0x0223AAD0
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ ldr r0, _0223AB68 ; =0x00000798
+ mov r1, #4
+ bl MOD13_0223B004
+ mov r4, r0
+ ldr r3, _0223AB6C ; =0x022431A4
+ add r1, r4, #0x18
+ mov r0, #0x20
+ mov r2, #0x38
+ str r4, [r3]
+ bl MOD13_0223A054
+ ldr sb, _0223AB6C ; =0x022431A4
+ mov r8, #0
+ ldr r1, [sb]
+ mov r7, r8
+ str r0, [r1, #0x788]
+ ldr r6, _0223AB70 ; =0x02240A00
+ mov r5, r8
+ mov r4, #4
+_0223AB20:
+ ldr r0, [r6, r8, lsl #2]
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_022393D8
+ ldr r1, [sb]
+ add r1, r1, r8, lsl #2
+ str r0, [r1, #0x78c]
+ ldr r2, [sb]
+ add r0, r2, r8, lsl #2
+ ldr r1, [r0, #0x78c]
+ add r0, r2, r7
+ bl FUN_020B5D3C
+ add r8, r8, #1
+ cmp r8, #2
+ add r7, r7, #0xc
+ blt _0223AB20
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ .align 2, 0
+_0223AB68: .word 0x00000798
+_0223AB6C: .word 0x022431A4
+_0223AB70: .word 0x02240A00
+
+ arm_func_start MOD13_0223AB74
+MOD13_0223AB74: ; 0x0223AB74
+ ldrh r3, [r0]
+ strh r3, [r2]
+ ldrh r3, [r0, #2]
+ strh r3, [r2, #2]
+ ldrh ip, [r0]
+ ldrh r3, [r1]
+ add r3, ip, r3
+ strh r3, [r2, #4]
+ ldrh r3, [r0, #2]
+ ldrh r0, [r1, #2]
+ add r0, r3, r0
+ strh r0, [r2, #6]
+ bx lr
+
+ arm_func_start MOD13_0223ABA8
+MOD13_0223ABA8: ; 0x0223ABA8
+ ldr ip, [sp]
+ strh r0, [ip]
+ strh r1, [ip, #2]
+ strh r2, [ip, #4]
+ strh r3, [ip, #6]
+ bx lr
+
+ arm_func_start MOD13_0223ABC0
+MOD13_0223ABC0: ; 0x0223ABC0
+ strh r0, [r2]
+ strh r1, [r2, #2]
+ bx lr
+
+ arm_func_start MOD13_0223ABCC
+MOD13_0223ABCC: ; 0x0223ABCC
+ cmp r1, #3
+ addls pc, pc, r1, lsl #2
+ bx lr
+_0223ABD8: ; jump table
+ b _0223ABE8 ; case 0
+ b _0223AC38 ; case 1
+ b _0223AC88 ; case 2
+ b _0223ACD8 ; case 3
+_0223ABE8:
+ cmp r0, #1
+ bne _0223AC14
+ ldr r0, _0223AD28 ; =0x04001048
+ cmp r3, #0
+ ldrh r0, [r0]
+ bic r0, r0, #0x3f
+ orr r1, r0, r2
+ ldr r0, _0223AD28 ; =0x04001048
+ orrne r1, r1, #0x20
+ strh r1, [r0]
+ bx lr
+_0223AC14:
+ ldr r0, _0223AD2C ; =0x04000048
+ cmp r3, #0
+ ldrh r0, [r0]
+ bic r0, r0, #0x3f
+ orr r1, r0, r2
+ ldr r0, _0223AD2C ; =0x04000048
+ orrne r1, r1, #0x20
+ strh r1, [r0]
+ bx lr
+_0223AC38:
+ cmp r0, #1
+ bne _0223AC64
+ ldr r0, _0223AD28 ; =0x04001048
+ cmp r3, #0
+ ldrh r0, [r0]
+ bic r0, r0, #0x3f00
+ orr r1, r0, r2, lsl #8
+ ldr r0, _0223AD28 ; =0x04001048
+ orrne r1, r1, #0x2000
+ strh r1, [r0]
+ bx lr
+_0223AC64:
+ ldr r0, _0223AD2C ; =0x04000048
+ cmp r3, #0
+ ldrh r0, [r0]
+ bic r0, r0, #0x3f00
+ orr r1, r0, r2, lsl #8
+ ldr r0, _0223AD2C ; =0x04000048
+ orrne r1, r1, #0x2000
+ strh r1, [r0]
+ bx lr
+_0223AC88:
+ cmp r0, #1
+ bne _0223ACB4
+ ldr r0, _0223AD30 ; =0x0400104A
+ cmp r3, #0
+ ldrh r0, [r0]
+ bic r0, r0, #0x3f00
+ orr r1, r0, r2, lsl #8
+ ldr r0, _0223AD30 ; =0x0400104A
+ orrne r1, r1, #0x2000
+ strh r1, [r0]
+ bx lr
+_0223ACB4:
+ ldr r0, _0223AD34 ; =0x0400004A
+ cmp r3, #0
+ ldrh r0, [r0]
+ bic r0, r0, #0x3f00
+ orr r1, r0, r2, lsl #8
+ ldr r0, _0223AD34 ; =0x0400004A
+ orrne r1, r1, #0x2000
+ strh r1, [r0]
+ bx lr
+_0223ACD8:
+ cmp r0, #1
+ bne _0223AD04
+ ldr r0, _0223AD30 ; =0x0400104A
+ cmp r3, #0
+ ldrh r0, [r0]
+ bic r0, r0, #0x3f
+ orr r1, r0, r2
+ ldr r0, _0223AD30 ; =0x0400104A
+ orrne r1, r1, #0x20
+ strh r1, [r0]
+ bx lr
+_0223AD04:
+ ldr r0, _0223AD34 ; =0x0400004A
+ cmp r3, #0
+ ldrh r0, [r0]
+ bic r0, r0, #0x3f
+ orr r1, r0, r2
+ ldr r0, _0223AD34 ; =0x0400004A
+ orrne r1, r1, #0x20
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0223AD28: .word 0x04001048
+_0223AD2C: .word 0x04000048
+_0223AD30: .word 0x0400104A
+_0223AD34: .word 0x0400004A
+
+ arm_func_start MOD13_0223AD38
+MOD13_0223AD38: ; 0x0223AD38
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r0, #1
+ bne _0223ADE0
+ cmp r1, #0
+ bne _0223AD98
+ ldrh r0, [r2]
+ ldrh r1, [r2, #4]
+ ldrh r3, [r2, #2]
+ ldrh lr, [r2, #6]
+ mov r2, r0, lsl #8
+ mov r0, r3, lsl #8
+ and r2, r2, #0xff00
+ and r1, r1, #0xff
+ orr ip, r2, r1
+ ldr r3, _0223AE78 ; =0x04001040
+ and r2, r0, #0xff00
+ and r1, lr, #0xff
+ ldr r0, _0223AE7C ; =0x04001044
+ strh ip, [r3]
+ orr r1, r2, r1
+ strh r1, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0223AD98:
+ ldrh r0, [r2]
+ ldrh r1, [r2, #4]
+ ldrh r3, [r2, #2]
+ ldrh lr, [r2, #6]
+ mov r2, r0, lsl #8
+ mov r0, r3, lsl #8
+ and r2, r2, #0xff00
+ and r1, r1, #0xff
+ orr ip, r2, r1
+ ldr r3, _0223AE80 ; =0x04001042
+ and r2, r0, #0xff00
+ and r1, lr, #0xff
+ ldr r0, _0223AE84 ; =0x04001046
+ strh ip, [r3]
+ orr r1, r2, r1
+ strh r1, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0223ADE0:
+ cmp r1, #0
+ bne _0223AE30
+ ldrh r0, [r2]
+ ldrh r1, [r2, #4]
+ ldrh r3, [r2, #2]
+ ldrh lr, [r2, #6]
+ mov r2, r0, lsl #8
+ mov r0, r3, lsl #8
+ and r2, r2, #0xff00
+ and r1, r1, #0xff
+ orr ip, r2, r1
+ ldr r3, _0223AE88 ; =0x04000040
+ and r2, r0, #0xff00
+ and r1, lr, #0xff
+ ldr r0, _0223AE8C ; =0x04000044
+ strh ip, [r3]
+ orr r1, r2, r1
+ strh r1, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0223AE30:
+ ldrh r0, [r2]
+ ldrh r3, [r2, #2]
+ ldrh r1, [r2, #4]
+ ldrh lr, [r2, #6]
+ mov r2, r0, lsl #8
+ mov r0, r3, lsl #8
+ and r2, r2, #0xff00
+ and r1, r1, #0xff
+ ldr r3, _0223AE90 ; =0x04000042
+ orr ip, r2, r1
+ and r2, r0, #0xff00
+ and r1, lr, #0xff
+ ldr r0, _0223AE94 ; =0x04000046
+ strh ip, [r3]
+ orr r1, r2, r1
+ strh r1, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223AE78: .word 0x04001040
+_0223AE7C: .word 0x04001044
+_0223AE80: .word 0x04001042
+_0223AE84: .word 0x04001046
+_0223AE88: .word 0x04000040
+_0223AE8C: .word 0x04000044
+_0223AE90: .word 0x04000042
+_0223AE94: .word 0x04000046
+
+ arm_func_start MOD13_0223AE98
+MOD13_0223AE98: ; 0x0223AE98
+ cmp r0, #1
+ bne _0223AEC8
+ ldr r3, _0223AEF0 ; =0x04001000
+ mvn r0, r1
+ ldr r2, [r3]
+ ldr r1, [r3]
+ and r2, r2, #0x1f00
+ bic r1, r1, #0x1f00
+ and r0, r0, r2, lsr #8
+ orr r0, r1, r0, lsl #8
+ str r0, [r3]
+ bx lr
+_0223AEC8:
+ mov r3, #0x4000000
+ ldr r0, [r3]
+ ldr r2, [r3]
+ and ip, r0, #0x1f00
+ mvn r0, r1
+ bic r1, r2, #0x1f00
+ and r0, r0, ip, lsr #8
+ orr r0, r1, r0, lsl #8
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_0223AEF0: .word 0x04001000
+
+ arm_func_start MOD13_0223AEF4
+MOD13_0223AEF4: ; 0x0223AEF4
+ cmp r0, #1
+ bne _0223AF20
+ ldr r3, _0223AF44 ; =0x04001000
+ ldr r2, [r3]
+ ldr r0, [r3]
+ and ip, r2, #0x1f00
+ bic r2, r0, #0x1f00
+ orr r0, r1, ip, lsr #8
+ orr r0, r2, r0, lsl #8
+ str r0, [r3]
+ bx lr
+_0223AF20:
+ mov r3, #0x4000000
+ ldr r2, [r3]
+ ldr r0, [r3]
+ and ip, r2, #0x1f00
+ bic r2, r0, #0x1f00
+ orr r0, r1, ip, lsr #8
+ orr r0, r2, r0, lsl #8
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_0223AF44: .word 0x04001000
+
+ arm_func_start MOD13_0223AF48
+MOD13_0223AF48: ; 0x0223AF48
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ mov r0, #1
+ bl OS_DisableIrqMask
+ cmp r5, #0
+ mov r4, r0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r0, _0223AF8C ; =0x022431A8
+ mov r1, r5
+ ldr r0, [r0]
+ bl FUN_020ADDF0
+ mov r0, r4
+ bl OS_EnableIrqMask
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223AF8C: .word 0x022431A8
+
+ arm_func_start MOD13_0223AF90
+MOD13_0223AF90: ; 0x0223AF90
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ mov r0, #1
+ bl OS_DisableIrqMask
+ ldr r1, [r5]
+ mov r4, r0
+ cmp r1, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r0, _0223AFDC ; =0x022431A8
+ ldr r0, [r0]
+ bl FUN_020ADDF0
+ mov r0, r4
+ bl OS_EnableIrqMask
+ mov r0, #0
+ str r0, [r5]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223AFDC: .word 0x022431A8
+
+ arm_func_start MOD13_0223AFE0
+MOD13_0223AFE0: ; 0x0223AFE0
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl MOD13_0223B004
+ mov r2, r4
+ mov r1, #0
+ mov r4, r0
+ bl MI_CpuFill8
+ mov r0, r4
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_0223B004
+MOD13_0223B004: ; 0x0223B004
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, r0
+ mov r0, #1
+ mov r5, r1
+ bl OS_DisableIrqMask
+ ldr r1, _0223B04C ; =0x022431A8
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, r6
+ mov r2, r5
+ bl tempName_NNS_FndAllocFromExpHeapEx
+ movs r5, r0
+ bne _0223B03C
+ bl OS_Terminate
+_0223B03C:
+ mov r0, r4
+ bl OS_EnableIrqMask
+ mov r0, r5
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0223B04C: .word 0x022431A8
+
+ arm_func_start MOD13_0223B050
+MOD13_0223B050: ; 0x0223B050
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0223B078 ; =0x022431A8
+ ldr r0, [r0]
+ bl thunk_FUN_020adc8c
+ ldr r0, _0223B078 ; =0x022431A8
+ mov r1, #0
+ str r1, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223B078: .word 0x022431A8
+
+ arm_func_start MOD13_0223B07C
+MOD13_0223B07C: ; 0x0223B07C
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ mov r1, #0
+ mov r2, #0x40000
+ bl MI_CpuFill8
+ mov r0, r4
+ mov r1, #0x40000
+ mov r2, #0
+ bl tempName_NNS_FndCreateExpHeapEx
+ ldr r1, _0223B0B8 ; =0x022431A8
+ cmp r0, #0
+ str r0, [r1]
+ ldmneia sp!, {r4, pc}
+ bl OS_Terminate
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0223B0B8: .word 0x022431A8
+
+ arm_func_start MOD13_0223B0BC
+MOD13_0223B0BC: ; 0x0223B0BC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0223B144 ; =0x022431AC
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0223B10C
+ ldr r0, _0223B148 ; =0x027FFFA8
+ ldrh r0, [r0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #1
+ bl PM_SetLCDPower
+ cmp r0, #0
+ ldrne r0, _0223B144 ; =0x022431AC
+ movne r1, #0
+ strneb r1, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0223B10C:
+ ldr r0, _0223B148 ; =0x027FFFA8
+ ldrh r0, [r0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl PM_SetLCDPower
+ cmp r0, #0
+ ldrne r0, _0223B144 ; =0x022431AC
+ movne r1, #1
+ strneb r1, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223B144: .word 0x022431AC
+_0223B148: .word 0x027FFFA8
+
+ arm_func_start MOD13_0223B14C
+MOD13_0223B14C: ; 0x0223B14C
+ ldr r1, _0223B190 ; =0x022431B4
+ ldr r3, [r1]
+ ldrb r1, [r3, #0x38]
+ mov r1, r1, lsl #0x1f
+ movs r1, r1, lsr #0x1f
+ ldrneh r2, [r3, #0x28]
+ ldrneh r1, [r3, #0x2a]
+ strneh r2, [r0]
+ strneh r1, [r0, #2]
+ movne r0, #1
+ bxne lr
+ ldrh r2, [r3, #0x2c]
+ ldrh r1, [r3, #0x2e]
+ strh r2, [r0]
+ strh r1, [r0, #2]
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_0223B190: .word 0x022431B4
+
+ arm_func_start MOD13_0223B194
+MOD13_0223B194: ; 0x0223B194
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldrh r1, [r0]
+ strh r1, [sp]
+ ldrh r1, [r0, #2]
+ strh r1, [sp, #2]
+ ldrh r2, [r0]
+ ldrh r1, [r0, #4]
+ add r1, r2, r1
+ strh r1, [sp, #4]
+ ldrh r2, [r0, #2]
+ ldrh r1, [r0, #6]
+ add r0, sp, #0
+ add r1, r2, r1
+ strh r1, [sp, #6]
+ bl MOD13_0223B2B4
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223B1DC
+MOD13_0223B1DC: ; 0x0223B1DC
+ ldr r1, _0223B244 ; =0x022431B4
+ ldr r3, [r1]
+ ldrb r1, [r3, #0x38]
+ mov r1, r1, lsl #0x1c
+ movs r1, r1, lsr #0x1f
+ moveq r0, #0
+ bxeq lr
+ ldrh r2, [r3, #0x28]
+ ldrh r1, [r0]
+ cmp r1, r2
+ movhi r0, #0
+ bxhi lr
+ ldrh r1, [r0, #4]
+ cmp r1, r2
+ movlo r0, #0
+ bxlo lr
+ ldrh r2, [r3, #0x2a]
+ ldrh r1, [r0, #2]
+ cmp r1, r2
+ movhi r0, #0
+ bxhi lr
+ ldrh r0, [r0, #6]
+ cmp r0, r2
+ movhs r0, #1
+ movlo r0, #0
+ bx lr
+ .align 2, 0
+_0223B244: .word 0x022431B4
+
+ arm_func_start MOD13_0223B248
+MOD13_0223B248: ; 0x0223B248
+ ldr r1, _0223B2B0 ; =0x022431B4
+ ldr r3, [r1]
+ ldrb r1, [r3, #0x38]
+ mov r1, r1, lsl #0x1d
+ movs r1, r1, lsr #0x1f
+ moveq r0, #0
+ bxeq lr
+ ldrh r2, [r3, #0x28]
+ ldrh r1, [r0]
+ cmp r1, r2
+ movhi r0, #0
+ bxhi lr
+ ldrh r1, [r0, #4]
+ cmp r1, r2
+ movlo r0, #0
+ bxlo lr
+ ldrh r2, [r3, #0x2a]
+ ldrh r1, [r0, #2]
+ cmp r1, r2
+ movhi r0, #0
+ bxhi lr
+ ldrh r0, [r0, #6]
+ cmp r0, r2
+ movhs r0, #1
+ movlo r0, #0
+ bx lr
+ .align 2, 0
+_0223B2B0: .word 0x022431B4
+
+ arm_func_start MOD13_0223B2B4
+MOD13_0223B2B4: ; 0x0223B2B4
+ ldr r1, _0223B31C ; =0x022431B4
+ ldr r3, [r1]
+ ldrb r1, [r3, #0x38]
+ mov r1, r1, lsl #0x1e
+ movs r1, r1, lsr #0x1f
+ moveq r0, #0
+ bxeq lr
+ ldrh r2, [r3, #0x28]
+ ldrh r1, [r0]
+ cmp r1, r2
+ movhi r0, #0
+ bxhi lr
+ ldrh r1, [r0, #4]
+ cmp r1, r2
+ movlo r0, #0
+ bxlo lr
+ ldrh r2, [r3, #0x2a]
+ ldrh r1, [r0, #2]
+ cmp r1, r2
+ movhi r0, #0
+ bxhi lr
+ ldrh r0, [r0, #6]
+ cmp r0, r2
+ movhs r0, #1
+ movlo r0, #0
+ bx lr
+ .align 2, 0
+_0223B31C: .word 0x022431B4
+
+ arm_func_start MOD13_0223B320
+MOD13_0223B320: ; 0x0223B320
+ ldr r1, _0223B388 ; =0x022431B4
+ ldr r3, [r1]
+ ldrb r1, [r3, #0x38]
+ mov r1, r1, lsl #0x1f
+ movs r1, r1, lsr #0x1f
+ moveq r0, #0
+ bxeq lr
+ ldrh r2, [r3, #0x28]
+ ldrh r1, [r0]
+ cmp r1, r2
+ movhi r0, #0
+ bxhi lr
+ ldrh r1, [r0, #4]
+ cmp r1, r2
+ movlo r0, #0
+ bxlo lr
+ ldrh r2, [r3, #0x2a]
+ ldrh r1, [r0, #2]
+ cmp r1, r2
+ movhi r0, #0
+ bxhi lr
+ ldrh r0, [r0, #6]
+ cmp r0, r2
+ movhs r0, #1
+ movlo r0, #0
+ bx lr
+ .align 2, 0
+_0223B388: .word 0x022431B4
+
+ arm_func_start MOD13_0223B38C
+MOD13_0223B38C: ; 0x0223B38C
+ ldr r1, _0223B3AC ; =0x022431B4
+ ldr r1, [r1]
+ ldrh r1, [r1, #0x36]
+ and r1, r0, r1
+ cmp r0, r1
+ moveq r0, #1
+ movne r0, #0
+ bx lr
+ .align 2, 0
+_0223B3AC: .word 0x022431B4
+
+ arm_func_start MOD13_0223B3B0
+MOD13_0223B3B0: ; 0x0223B3B0
+ ldr r1, _0223B3D0 ; =0x022431B4
+ ldr r1, [r1]
+ ldrh r1, [r1, #0x34]
+ and r1, r0, r1
+ cmp r0, r1
+ moveq r0, #1
+ movne r0, #0
+ bx lr
+ .align 2, 0
+_0223B3D0: .word 0x022431B4
+
+ arm_func_start MOD13_0223B3D4
+MOD13_0223B3D4: ; 0x0223B3D4
+ ldr r1, _0223B3F4 ; =0x022431B4
+ ldr r1, [r1]
+ ldrh r1, [r1, #0x32]
+ and r1, r0, r1
+ cmp r0, r1
+ moveq r0, #1
+ movne r0, #0
+ bx lr
+ .align 2, 0
+_0223B3F4: .word 0x022431B4
+
+ arm_func_start MOD13_0223B3F8
+MOD13_0223B3F8: ; 0x0223B3F8
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r0, _0223B598 ; =0x022431B4
+ mov r4, #0
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x38]
+ mov r0, r0, lsl #0x1f
+ movs r0, r0, lsr #0x1f
+ movne r6, #1
+ moveq r6, #0
+ bl TP_GetLatestIndexInAuto
+ ldr r7, _0223B598 ; =0x022431B4
+ mov r5, r4
+ ldr r3, [r7]
+ mov r8, #5
+ ldrh r2, [r3, #0x28]
+ ldrh r1, [r3, #0x2a]
+ strh r2, [r3, #0x2c]
+ strh r1, [r3, #0x2e]
+_0223B444:
+ ldr r1, [r7]
+ add r1, r1, r0, lsl #3
+ ldrh r2, [r1, #4]
+ cmp r2, #1
+ bne _0223B48C
+ ldrh r2, [r1, #6]
+ cmp r2, #0
+ bne _0223B48C
+ add r0, sp, #0
+ mov r4, #1
+ bl TP_GetCalibratedPoint
+ ldr r1, _0223B598 ; =0x022431B4
+ ldrh r0, [sp]
+ ldr r2, [r1]
+ ldrh r1, [sp, #2]
+ add r2, r2, #0x28
+ bl MOD13_0223ABC0
+ b _0223B4A4
+_0223B48C:
+ mov r1, r8
+ add r5, r5, #1
+ add r0, r0, #4
+ bl FX_ModS32
+ cmp r5, #4
+ blt _0223B444
+_0223B4A4:
+ ldr r1, _0223B598 ; =0x022431B4
+ eor r7, r4, r6
+ ldr r5, [r1]
+ and r0, r4, r7
+ ldrb r3, [r5, #0x38]
+ and r2, r0, #0xff
+ and r0, r6, r7
+ bic r3, r3, #2
+ and r2, r2, #1
+ orr r2, r3, r2, lsl #1
+ strb r2, [r5, #0x38]
+ ldr r5, [r1]
+ and r0, r0, #0xff
+ ldrb r3, [r5, #0x38]
+ and r2, r0, #1
+ cmp r4, #0
+ bic r3, r3, #8
+ orr r2, r3, r2, lsl #3
+ strb r2, [r5, #0x38]
+ ldr r3, [r1]
+ and r0, r4, #1
+ ldrb r2, [r3, #0x38]
+ addeq sp, sp, #8
+ bic r2, r2, #1
+ orr r0, r2, r0
+ strb r0, [r3, #0x38]
+ ldr r3, [r1]
+ moveq r1, #0
+ ldrb r2, [r3, #0x38]
+ mov r0, r2, lsl #0x1e
+ mov r0, r0, lsr #0x1f
+ bic r2, r2, #4
+ and r0, r0, #1
+ orr r0, r2, r0, lsl #2
+ strb r0, [r3, #0x38]
+ ldreq r0, _0223B59C ; =0x022431B0
+ streqb r1, [r0]
+ ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
+ ldr r0, _0223B59C ; =0x022431B0
+ ldrb r2, [r0]
+ add r2, r2, #1
+ strb r2, [r0]
+ ldrb r2, [r0]
+ cmp r2, #0x28
+ ldreq r1, [r1]
+ addeq sp, sp, #8
+ ldreqb r0, [r1, #0x38]
+ orreq r0, r0, #4
+ streqb r0, [r1, #0x38]
+ ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
+ cmp r2, #0x2f
+ addne sp, sp, #8
+ ldmneia sp!, {r4, r5, r6, r7, r8, pc}
+ ldr r3, [r1]
+ mov r1, #0x28
+ ldrb r2, [r3, #0x38]
+ orr r2, r2, #4
+ strb r2, [r3, #0x38]
+ strb r1, [r0]
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0223B598: .word 0x022431B4
+_0223B59C: .word 0x022431B0
+
+ arm_func_start MOD13_0223B5A0
+MOD13_0223B5A0: ; 0x0223B5A0
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ ldr r1, _0223B694 ; =0x04000130
+ ldr r0, _0223B698 ; =0x027FFFA8
+ ldrh r2, [r1]
+ ldrh r1, [r0]
+ ldr r4, _0223B69C ; =0x022431B4
+ ldr r0, _0223B6A0 ; =0x00002FFF
+ ldr r5, [r4]
+ orr r1, r2, r1
+ eor r1, r1, r0
+ and r0, r1, r0
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r5, #0x30]
+ mov r3, r0, lsr #0x10
+ ldr ip, _0223B6A4 ; =0x022431B8
+ eor r1, r1, r0, lsr #16
+ and r1, r1, r0, lsr #16
+ strh r1, [r5, #0x32]
+ ldrh r2, [r5, #0x30]
+ ldr r1, [r4]
+ mov lr, #0
+ eor r0, r2, r0, lsr #16
+ and r0, r2, r0
+ strh r0, [r1, #0x36]
+ ldr r0, [r4]
+ strh r3, [r0, #0x30]
+ ldr r1, [r4]
+ ldrh r0, [r1, #0x32]
+ strh r0, [r1, #0x34]
+ mov r0, lr
+ mov r5, #0x28
+ mov r2, #1
+_0223B624:
+ mov r1, r2, lsl lr
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ ands r6, r3, r1
+ streqb r0, [ip]
+ beq _0223B67C
+ ldrb r6, [ip]
+ add r6, r6, #1
+ strb r6, [ip]
+ ldrb r6, [ip]
+ cmp r6, #0x28
+ ldreq r7, [r4]
+ ldreqh r6, [r7, #0x34]
+ orreq r1, r6, r1
+ streqh r1, [r7, #0x34]
+ beq _0223B67C
+ cmp r6, #0x2f
+ ldreq r7, [r4]
+ ldreqh r6, [r7, #0x34]
+ orreq r1, r6, r1
+ streqh r1, [r7, #0x34]
+ streqb r5, [ip]
+_0223B67C:
+ add lr, lr, #1
+ cmp lr, #0xe
+ add ip, ip, #1
+ blt _0223B624
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223B694: .word 0x04000130
+_0223B698: .word 0x027FFFA8
+_0223B69C: .word 0x022431B4
+_0223B6A0: .word 0x00002FFF
+_0223B6A4: .word 0x022431B8
+
+ arm_func_start MOD13_0223B6A8
+MOD13_0223B6A8: ; 0x0223B6A8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0223B5A0
+ bl MOD13_0223B3F8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223B6C0
+MOD13_0223B6C0: ; 0x0223B6C0
+ stmdb sp!, {r4, lr}
+ mov r4, #4
+_0223B6C8:
+ bl TP_RequestAutoSamplingStopAsync
+ mov r0, r4
+ bl TP_WaitBusy
+ mov r0, r4
+ bl TP_CheckError
+ cmp r0, #0
+ bne _0223B6C8
+ ldr r0, _0223B6F0 ; =0x022431B4
+ bl MOD13_0223AF90
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0223B6F0: .word 0x022431B4
+
+ arm_func_start MOD13_0223B6F4
+MOD13_0223B6F4: ; 0x0223B6F4
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ mov r0, #0x3a
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r1, _0223B76C ; =0x022431B4
+ str r0, [r1]
+ add r0, sp, #0
+ bl TP_GetUserInfo
+ cmp r0, #0
+ bne _0223B724
+ bl OS_Terminate
+_0223B724:
+ add r0, sp, #0
+ bl TP_SetCalibrateParam
+ ldr r1, _0223B76C ; =0x022431B4
+ mov r0, #0
+ ldr r2, [r1]
+ mov r1, #4
+ mov r3, #5
+ bl TP_RequestAutoSamplingStartAsync
+ mov r0, #2
+ bl TP_WaitBusy
+ mov r0, #2
+ bl TP_CheckError
+ cmp r0, #0
+ beq _0223B760
+ bl OS_Terminate
+_0223B760:
+ bl MOD13_0223B6A8
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223B76C: .word 0x022431B4
+
+ arm_func_start MOD13_0223B770
+MOD13_0223B770: ; 0x0223B770
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223C1E0
+ ldr r0, _0223B79C ; =0x027E0000
+ add r0, r0, #0x3000
+ ldr r1, [r0, #0xff8]
+ orr r1, r1, #1
+ str r1, [r0, #0xff8]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223B79C: .word 0x027E0000
+
+ arm_func_start MOD13_0223B7A0
+MOD13_0223B7A0: ; 0x0223B7A0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _0223B7DC ; =0x04000208
+ mov r1, #0
+ ldrh r0, [r2]
+ ldr r0, _0223B7E0 ; =0x022431CC
+ strh r1, [r2]
+ ldr r0, [r0]
+ bl OS_SetIrqMask
+ ldr r1, _0223B7E4 ; =0x022431C8
+ mov r0, #1
+ ldr r1, [r1]
+ bl OS_SetIrqFunction
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223B7DC: .word 0x04000208
+_0223B7E0: .word 0x022431CC
+_0223B7E4: .word 0x022431C8
+
+ arm_func_start MOD13_0223B7E8
+MOD13_0223B7E8: ; 0x0223B7E8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0223B850 ; =0x04000210
+ ldr r1, _0223B854 ; =0x022431CC
+ ldr r2, [r0]
+ ldr r0, _0223B858 ; =0x00040018
+ str r2, [r1]
+ bl OS_SetIrqMask
+ mov r0, #1
+ bl OS_EnableIrqMask
+ mov r0, #1
+ bl OS_GetIrqFunction
+ ldr r2, _0223B85C ; =0x022431C8
+ ldr r1, _0223B860 ; =MOD13_0223B770
+ str r0, [r2]
+ mov r0, #1
+ bl OS_SetIrqFunction
+ mov r0, #1
+ bl OS_ResetRequestIrqMask
+ ldr r2, _0223B864 ; =0x04000208
+ mov r0, #1
+ ldrh r1, [r2]
+ strh r0, [r2]
+ bl OS_EnableInterrupts
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223B850: .word 0x04000210
+_0223B854: .word 0x022431CC
+_0223B858: .word 0x00040018
+_0223B85C: .word 0x022431C8
+_0223B860: .word MOD13_0223B770
+_0223B864: .word 0x04000208
+
+ arm_func_start MOD13_0223B868
+MOD13_0223B868: ; 0x0223B868
+ ldr ip, _0223B874 ; =MOD13_0223B888
+ ldr r0, [r0, #4]
+ bx ip
+ .align 2, 0
+_0223B874: .word MOD13_0223B888
+
+ arm_func_start MOD13_0223B878
+MOD13_0223B878: ; 0x0223B878
+ ldr ip, _0223B884 ; =MOD13_0223B888
+ add r0, r0, #8
+ bx ip
+ .align 2, 0
+_0223B884: .word MOD13_0223B888
+
+ arm_func_start MOD13_0223B888
+MOD13_0223B888: ; 0x0223B888
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ mov r0, #1
+ mov r4, r1
+ bl OS_DisableIrqMask
+ ldr r1, [r5]
+ str r4, [r1, #4]
+ ldr r1, [r5]
+ str r1, [r4]
+ str r5, [r4, #4]
+ str r4, [r5]
+ bl OS_EnableIrqMask
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+
+ arm_func_start MOD13_0223B8C4
+MOD13_0223B8C4: ; 0x0223B8C4
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ mov r0, #1
+ bl OS_DisableIrqMask
+ ldr r3, [r4, #4]
+ ldr r2, [r4]
+ mov r1, #0
+ str r3, [r2, #4]
+ ldr r3, [r4]
+ ldr r2, [r4, #4]
+ str r3, [r2]
+ str r1, [r4, #4]
+ ldr r1, [r4, #4]
+ str r1, [r4]
+ bl OS_EnableIrqMask
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_0223B904
+MOD13_0223B904: ; 0x0223B904
+ stmdb sp!, {r0, r1, r2, r3}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ add r0, sp, #8
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ add sp, sp, #0x10
+ bx lr
+
+ arm_func_start MOD13_0223B928
+MOD13_0223B928: ; 0x0223B928
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0x10
+ mov r1, #4
+ bl MOD13_0223B004
+ mov r2, #0
+ str r2, [r0]
+ add r1, r0, #8
+ str r1, [r0, #4]
+ str r0, [r0, #8]
+ str r2, [r0, #0xc]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223B95C
+MOD13_0223B95C: ; 0x0223B95C
+ ldr r2, _0223B970 ; =0x022431D0
+ ldr r2, [r2]
+ add r0, r2, r0, lsl #10
+ add r0, r0, r1, lsl #3
+ bx lr
+ .align 2, 0
+_0223B970: .word 0x022431D0
+
+ arm_func_start MOD13_0223B974
+MOD13_0223B974: ; 0x0223B974
+ mov r1, r0
+ ldr r3, [r1]
+ ldr r0, _0223B9B4 ; =0xC1FFFCFF
+ ldr r2, _0223B9B8 ; =0x022431D0
+ and r0, r3, r0
+ orr r0, r0, #0x200
+ str r0, [r1]
+ ldr r2, [r2]
+ mov r3, #0
+ add r0, r2, #0x400
+ cmp r1, r0
+ movhs r3, #1
+ add r0, r2, r3, lsl #2
+ ldr ip, _0223B9BC ; =MOD13_02239FD0
+ ldr r0, [r0, #0x800]
+ bx ip
+ .align 2, 0
+_0223B9B4: .word 0xC1FFFCFF
+_0223B9B8: .word 0x022431D0
+_0223B9BC: .word MOD13_02239FD0
+
+ arm_func_start MOD13_0223B9C0
+MOD13_0223B9C0: ; 0x0223B9C0
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r2, _0223BA00 ; =0x022431D0
+ mov r5, r1
+ ldr r1, [r2]
+ add r0, r1, r0, lsl #2
+ ldr r0, [r0, #0x800]
+ bl MOD13_02239F78
+ mov r4, r0
+ mov r0, r5
+ mov r1, r4
+ mov r2, #8
+ bl MIi_CpuCopy32
+ mov r0, r4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223BA00: .word 0x022431D0
+
+ arm_func_start MOD13_0223BA04
+MOD13_0223BA04: ; 0x0223BA04
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _0223BA30 ; =0x022431D0
+ mov r0, #1
+ ldr r1, [r1]
+ ldr r1, [r1, #0x808]
+ bl MOD13_0223C104
+ ldr r0, _0223BA30 ; =0x022431D0
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223BA30: .word 0x022431D0
+
+ arm_func_start MOD13_0223BA34
+MOD13_0223BA34: ; 0x0223BA34
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0223BA80 ; =0x022431D0
+ mov r1, #0x800
+ ldr r0, [r0]
+ bl DC_FlushRange
+ ldr r0, _0223BA80 ; =0x022431D0
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #0x400
+ bl GX_LoadOAM
+ ldr r0, _0223BA80 ; =0x022431D0
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #0x400
+ add r0, r0, #0x400
+ bl GXS_LoadOAM
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223BA80: .word 0x022431D0
+
+ arm_func_start MOD13_0223BA84
+MOD13_0223BA84: ; 0x0223BA84
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr r0, _0223BB14 ; =0x0000080C
+ mov r1, #4
+ bl MOD13_0223B004
+ mov r1, r0
+ ldr r3, _0223BB18 ; =0x022431D0
+ mov r0, #0x200
+ mov r2, #0x800
+ str r1, [r3]
+ bl MIi_CpuClearFast
+ mov r6, #0
+ mov r5, r6
+ ldr r7, _0223BB18 ; =0x022431D0
+ mov r4, #0x40
+ mov r8, #8
+_0223BAC0:
+ ldr r1, [r7]
+ mov r0, r4
+ mov r2, r8
+ add r1, r1, r5
+ bl MOD13_0223A054
+ ldr r1, [r7]
+ add r5, r5, #0x400
+ add r1, r1, r6, lsl #2
+ add r6, r6, #1
+ str r0, [r1, #0x800]
+ cmp r6, #2
+ blt _0223BAC0
+ ldr r1, _0223BB1C ; =MOD13_0223BA34
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0xc8
+ bl MOD13_0223C1C4
+ ldr r1, _0223BB18 ; =0x022431D0
+ ldr r1, [r1]
+ str r0, [r1, #0x808]
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0223BB14: .word 0x0000080C
+_0223BB18: .word 0x022431D0
+_0223BB1C: .word MOD13_0223BA34
+
+ arm_func_start MOD13_0223BB20
+MOD13_0223BB20: ; 0x0223BB20
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ mov r4, #0
+ bl MOD13_0223B8C4
+ ldr r0, _0223BB64 ; =0x022431D4
+ ldr r1, [r0]
+ add r0, r1, #0x1a0
+ cmp r5, r0
+ movhs r4, #1
+ mov r0, #0x1a0
+ mla r0, r4, r0, r1
+ ldr r0, [r0, #0x19c]
+ mov r1, r5
+ bl MOD13_02239FD0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223BB64: .word 0x022431D4
+
+ arm_func_start MOD13_0223BB68
+MOD13_0223BB68: ; 0x0223BB68
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ mov r6, r0
+ mov r0, #0x1a0
+ mul r7, r6, r0
+ ldr r0, _0223BCE0 ; =0x022431D4
+ mov r4, r1
+ ldr r0, [r0]
+ mov sl, r2
+ add r0, r0, r7
+ ldr r0, [r0, #0x19c]
+ mov r5, r3
+ bl MOD13_02239F78
+ add r1, r4, #3
+ bic r1, r1, #3
+ mov r4, r0
+ mov r8, r1, asr #2
+ mov r0, #1
+ strh r8, [r4, #0xa]
+ bl OS_DisableIrqMask
+ mov sb, r0
+ cmp sl, #0
+ beq _0223BC44
+ ldr r1, _0223BCE0 ; =0x022431D4
+ mov r0, #0x1a0
+ ldr r1, [r1]
+ mla r0, r6, r0, r1
+ add r6, r0, #0x180
+ add r0, r0, #0x18c
+ cmp r6, r0
+ beq _0223BC24
+ add r0, r1, r7
+ add r1, r0, #0x18c
+_0223BBE8:
+ ldr r0, [r6, #4]
+ ldrh sl, [r6, #8]
+ ldrh r3, [r6, #0xa]
+ ldrh r2, [r0, #8]
+ add sl, sl, r3
+ add r3, sl, r8
+ cmp r3, r2
+ bgt _0223BC18
+ mov r1, r4
+ strh sl, [r4, #8]
+ bl MOD13_0223B888
+ b _0223BC24
+_0223BC18:
+ mov r6, r0
+ cmp r0, r1
+ bne _0223BBE8
+_0223BC24:
+ ldr r0, _0223BCE0 ; =0x022431D4
+ ldr r0, [r0]
+ add r0, r0, r7
+ add r0, r0, #0x18c
+ cmp r6, r0
+ bne _0223BCC8
+ bl OS_Terminate
+ b _0223BCC8
+_0223BC44:
+ ldr r1, _0223BCE0 ; =0x022431D4
+ mov r0, #0x1a0
+ ldr r1, [r1]
+ mla r0, r6, r0, r1
+ add r6, r0, #0x18c
+ add r0, r0, #0x180
+ cmp r6, r0
+ beq _0223BCAC
+ add r0, r1, r7
+ add r0, r0, #0x180
+_0223BC6C:
+ ldr sl, [r6]
+ ldrh r3, [r6, #8]
+ ldrh r2, [sl, #8]
+ ldrh r1, [sl, #0xa]
+ sub r3, r3, r8
+ add r1, r2, r1
+ cmp r3, r1
+ blt _0223BCA0
+ mov r0, r6
+ mov r1, r4
+ strh r3, [r4, #8]
+ bl MOD13_0223B888
+ b _0223BCAC
+_0223BCA0:
+ mov r6, sl
+ cmp sl, r0
+ bne _0223BC6C
+_0223BCAC:
+ ldr r0, _0223BCE0 ; =0x022431D4
+ ldr r0, [r0]
+ add r0, r0, r7
+ add r0, r0, #0x180
+ cmp r6, r0
+ bne _0223BCC8
+ bl OS_Terminate
+_0223BCC8:
+ ldrh r1, [r4, #8]
+ mov r0, sb
+ str r1, [r5]
+ bl OS_EnableIrqMask
+ mov r0, r4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_0223BCE0: .word 0x022431D4
+
+ arm_func_start MOD13_0223BCE4
+MOD13_0223BCE4: ; 0x0223BCE4
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ mov r0, #0x340
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r4, _0223BDA0 ; =0x022431D4
+ mov sl, #0
+ mov sb, sl
+ str r0, [r4]
+ mov r8, #0x20
+ mov r7, #0xc
+ mov r6, #0x300
+ mov r5, #0x400
+_0223BD14:
+ ldr r1, [r4]
+ mov r0, r8
+ mov r2, r7
+ add r1, r1, sb
+ bl MOD13_0223A054
+ ldr r1, [r4]
+ add r1, r1, sb
+ str r0, [r1, #0x19c]
+ bl MOD13_0223B928
+ ldr r1, [r4]
+ add r1, r1, sb
+ str r0, [r1, #0x198]
+ ldr r0, [r4]
+ add r0, r0, sb
+ add r0, r0, #0x100
+ strh r6, [r0, #0x88]
+ ldr r0, [r4]
+ add r0, r0, sb
+ add r0, r0, #0x100
+ strh r5, [r0, #0x94]
+ ldr r0, [r4]
+ add r1, r0, sb
+ ldr r0, [r1, #0x198]
+ add r1, r1, #0x180
+ bl MOD13_0223B868
+ ldr r0, [r4]
+ add r1, r0, sb
+ ldr r0, [r1, #0x198]
+ add r1, r1, #0x18c
+ bl MOD13_0223B878
+ add sl, sl, #1
+ cmp sl, #2
+ add sb, sb, #0x1a0
+ blt _0223BD14
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_0223BDA0: .word 0x022431D4
+
+ arm_func_start MOD13_0223BDA4
+MOD13_0223BDA4: ; 0x0223BDA4
+ cmp r1, #0
+ mov r3, #0
+ ble _0223BDC8
+_0223BDB0:
+ ldrb r2, [r0, r3]
+ cmp r2, #0
+ beq _0223BDC8
+ add r3, r3, #1
+ cmp r3, r1
+ blt _0223BDB0
+_0223BDC8:
+ mov r0, r3
+ bx lr
+
+ arm_func_start MOD13_0223BDD0
+MOD13_0223BDD0: ; 0x0223BDD0
+ ldr ip, _0223BDDC ; =0x020D4CAC
+ mov r0, #1
+ bx ip
+ .align 2, 0
+_0223BDDC: .word 0x020D4CAC
+
+ arm_func_start MOD13_0223BDE0
+MOD13_0223BDE0: ; 0x0223BDE0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ add r0, sp, #0
+ bl PM_GetLEDPattern
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, [sp]
+ cmp r0, #0xf
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0xf
+ bl PMi_SendLEDPatternCommand
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223BE1C
+MOD13_0223BE1C: ; 0x0223BE1C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0223BE98 ; =0x000001F3
+ bl GX_SetBankForLCDC
+ mov r0, #0
+ mov r1, #0x6800000
+ mov r2, #0x40000
+ bl MIi_CpuClearFast
+ ldr r1, _0223BE9C ; =0x06880000
+ mov r0, #0
+ mov r2, #0x24000
+ bl MIi_CpuClearFast
+ bl GX_DisableBankForLCDC
+ mov r0, #0x200
+ mov r1, #0x7000000
+ mov r2, #0x400
+ bl MIi_CpuClearFast
+ mov r0, #0
+ mov r1, #0x5000000
+ mov r2, #0x400
+ bl MIi_CpuClearFast
+ mov r0, #0x200
+ ldr r1, _0223BEA0 ; =0x07000400
+ mov r2, #0x400
+ bl MIi_CpuClearFast
+ mov r0, #0
+ ldr r1, _0223BEA4 ; =0x05000400
+ mov r2, #0x400
+ bl MIi_CpuClearFast
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223BE98: .word 0x000001F3
+_0223BE9C: .word 0x06880000
+_0223BEA0: .word 0x07000400
+_0223BEA4: .word 0x05000400
+
+ arm_func_start MOD13_0223BEA8
+MOD13_0223BEA8: ; 0x0223BEA8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl disableBankForX_
+ bl GX_DisableBankForOBJExtPltt_2
+ bl GX_DisableBankForSubBGExtPltt
+ bl GX_DisableBankForSubOBJExtPltt_2
+ bl MOD13_0223BE1C
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0]
+ bl GX_SetBankForBG
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #4]
+ bl GX_SetBankForOBJ
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #8]
+ bl GX_SetBankForBGExtPltt
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0xc]
+ bl GX_SetBankForOBJExtPltt
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0x10]
+ bl GX_SetBankForTex
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0x14]
+ bl GX_SetBankForTexPltt
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0x18]
+ bl GX_SetBankForClearImage
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0x1c]
+ bl GX_SetBankForSubBG
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0x20]
+ bl GX_SetBankForSubOBJ
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0x24]
+ bl GX_SetBankForSubBGExtPltt
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0x28]
+ bl GX_SetBankForSubOBJExtPltt
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0x30]
+ bl GX_SetBankForLCDC
+ mov r2, #0
+ ldr r1, _0223BFBC ; =0x04000050
+ ldr r0, _0223BFC0 ; =0x04001050
+ strh r2, [r1]
+ strh r2, [r0]
+ ldr r1, _0223BFC4 ; =0x04000010
+ ldr r0, _0223BFC8 ; =0x04000014
+ str r2, [r1]
+ str r2, [r0]
+ ldr r1, _0223BFCC ; =0x04000018
+ ldr r0, _0223BFD0 ; =0x0400001C
+ str r2, [r1]
+ str r2, [r0]
+ ldr r1, _0223BFD4 ; =0x04001010
+ ldr r0, _0223BFD8 ; =0x04001014
+ str r2, [r1]
+ str r2, [r0]
+ ldr r1, _0223BFDC ; =0x04001018
+ ldr r0, _0223BFE0 ; =0x0400101C
+ str r2, [r1]
+ str r2, [r0]
+ mov r0, #1
+ bl PM_SetLCDPower
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223BFB8: .word 0x022431D8
+_0223BFBC: .word 0x04000050
+_0223BFC0: .word 0x04001050
+_0223BFC4: .word 0x04000010
+_0223BFC8: .word 0x04000014
+_0223BFCC: .word 0x04000018
+_0223BFD0: .word 0x0400001C
+_0223BFD4: .word 0x04001010
+_0223BFD8: .word 0x04001014
+_0223BFDC: .word 0x04001018
+_0223BFE0: .word 0x0400101C
+
+ arm_func_start MOD13_0223BFE4
+MOD13_0223BFE4: ; 0x0223BFE4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl disableBankForX_
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1]
+ bl GX_DisableBankForOBJExtPltt_2
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #4]
+ bl GX_DisableBankForBGExtPltt
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #8]
+ bl GX_DisableBankForOBJExtPltt
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0xc]
+ bl GX_DisableBankForTexPltt_2
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x10]
+ bl GX_DisableBankForTexPltt
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x14]
+ bl GX_DisableBankForClearImage
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x18]
+ bl GX_DisableBankForSubBGExtPltt
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x1c]
+ bl GX_DisableBankForSubOBJExtPltt_2
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x20]
+ bl FUN_020C5E04
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x24]
+ bl GX_DisableBankForSubOBJExtPltt
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x28]
+ bl GX_DisableBankForARM7
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x2c]
+ bl GX_DisableBankForLCDC
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x30]
+ ldr r0, [r1, #0x2c]
+ bl GX_SetBankForARM7
+ bl MOD13_0223BE1C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223C09C: .word 0x022431D8
+
+ arm_func_start MOD13_0223C0A0
+MOD13_0223C0A0: ; 0x0223C0A0
+ ldr r2, _0223C0B4 ; =0x0224320C
+ ldr r2, [r2]
+ add r0, r2, r0, lsl #6
+ strb r1, [r0, #0x38]
+ bx lr
+ .align 2, 0
+_0223C0B4: .word 0x0224320C
+
+ arm_func_start MOD13_0223C0B8
+MOD13_0223C0B8: ; 0x0223C0B8
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r4, r1
+ ldrb r1, [r4, #0x11]
+ mov r5, r0
+ cmp r1, #0
+ beq _0223C0DC
+ add r0, r4, #0xc
+ bl MOD13_0223AF90
+_0223C0DC:
+ mov r0, r4
+ bl MOD13_0223B8C4
+ ldr r0, _0223C100 ; =0x0224320C
+ mov r1, r4
+ ldr r0, [r0]
+ ldr r0, [r0, r5, lsl #6]
+ bl MOD13_02239FD0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223C100: .word 0x0224320C
+
+ arm_func_start MOD13_0223C104
+MOD13_0223C104: ; 0x0223C104
+ ldr ip, _0223C10C ; =MOD13_0223C0B8
+ bx ip
+ .align 2, 0
+_0223C10C: .word MOD13_0223C0B8
+
+ arm_func_start MOD13_0223C110
+MOD13_0223C110: ; 0x0223C110
+ ldr r2, _0223C128 ; =0x0224320C
+ ldr ip, _0223C12C ; =MOD13_02239FD0
+ ldr r2, [r2]
+ add r0, r2, r0, lsl #6
+ ldr r0, [r0, #4]
+ bx ip
+ .align 2, 0
+_0223C128: .word 0x0224320C
+_0223C12C: .word MOD13_02239FD0
+
+ arm_func_start MOD13_0223C130
+MOD13_0223C130: ; 0x0223C130
+ str r1, [r0, #8]
+ bx lr
+
+ arm_func_start MOD13_0223C138
+MOD13_0223C138: ; 0x0223C138
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr r4, _0223C1C0 ; =0x0224320C
+ mov r7, r0
+ ldr r0, [r4]
+ mov r8, r1
+ ldr r0, [r0, r7, lsl #6]
+ mov r4, r2
+ mov r6, r3
+ bl MOD13_02239F78
+ mov r5, r0
+ str r8, [r5, #8]
+ str r4, [r5, #0xc]
+ ldrb r1, [sp, #0x18]
+ strb r6, [r5, #0x10]
+ mov r0, #1
+ strb r1, [r5, #0x11]
+ bl OS_DisableIrqMask
+ ldr r1, _0223C1C0 ; =0x0224320C
+ mov r4, r0
+ ldr r0, [r1]
+ add r0, r0, r7, lsl #6
+ ldr r0, [r0, #0x10]
+_0223C190:
+ ldrb r1, [r0, #0x10]
+ cmp r6, r1
+ bhs _0223C1A8
+ mov r1, r5
+ bl MOD13_0223B888
+ b _0223C1B0
+_0223C1A8:
+ ldr r0, [r0, #4]
+ b _0223C190
+_0223C1B0:
+ mov r0, r4
+ bl OS_EnableIrqMask
+ mov r0, r5
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0223C1C0: .word 0x0224320C
+
+ arm_func_start MOD13_0223C1C4
+MOD13_0223C1C4: ; 0x0223C1C4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov ip, #0
+ str ip, [sp]
+ bl MOD13_0223C138
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223C1E0
+MOD13_0223C1E0: ; 0x0223C1E0
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ ldr r7, _0223C2A4 ; =0x0224320C
+ mov r6, r0
+ ldr r0, [r7]
+ mov r4, r6, lsl #6
+ add r2, r0, r6, lsl #6
+ ldrb r1, [r2, #0x38]
+ cmp r1, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ ldr r5, [r2, #0x10]
+ add r1, r2, #0x20
+ cmp r5, r1
+ beq _0223C244
+_0223C21C:
+ ldr r1, [r5, #0xc]
+ ldr r2, [r5, #8]
+ mov r0, r5
+ blx r2
+ ldr r0, [r7]
+ ldr r5, [r5, #4]
+ add r1, r0, r4
+ add r1, r1, #0x20
+ cmp r5, r1
+ bne _0223C21C
+_0223C244:
+ add r1, r0, r6, lsl #6
+ ldr r1, [r1, #0x34]
+ mov r4, r6, lsl #6
+ cmp r1, #0
+ mov r5, #0
+ addle sp, sp, #4
+ ldmleia sp!, {r4, r5, r6, r7, pc}
+ ldr r7, _0223C2A4 ; =0x0224320C
+_0223C264:
+ add r0, r4, r0
+ ldr r0, [r0, #4]
+ bl MOD13_02239F78
+ movs r1, r0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ mov r0, r6
+ bl MOD13_0223C0B8
+ ldr r0, [r7]
+ add r5, r5, #1
+ add r1, r4, r0
+ ldr r1, [r1, #0x34]
+ cmp r5, r1
+ blt _0223C264
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223C2A4: .word 0x0224320C
+
+ arm_func_start MOD13_0223C2A8
+MOD13_0223C2A8: ; 0x0223C2A8
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r4, _0223C2F0 ; =0x0224320C
+ mov r5, #0
+_0223C2B8:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #6
+ ldr r0, [r0, #8]
+ bl MOD13_0223B904
+ ldr r0, [r4]
+ ldr r0, [r0, r5, lsl #6]
+ bl MOD13_0223A030
+ add r5, r5, #1
+ cmp r5, #2
+ blt _0223C2B8
+ ldr r0, _0223C2F0 ; =0x0224320C
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223C2F0: .word 0x0224320C
+
+ arm_func_start MOD13_0223C2F4
+MOD13_0223C2F4: ; 0x0223C2F4
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #4
+ mov r0, #0x80
+ mov r1, #4
+ bl MOD13_0223B004
+ ldr r4, _0223C418 ; =0x0224320C
+ mov sl, #0
+ ldr sb, _0223C41C ; =0x0223F764
+ mov r8, sl
+ str r0, [r4]
+ str sl, [sp]
+ mov r7, #4
+ mov fp, #0x14
+ mov r6, #0xff
+ mov r5, #1
+_0223C330:
+ ldr r0, [r4]
+ ldrb r2, [sb]
+ add r1, r0, sl, lsl #6
+ mov r0, #0x14
+ str r2, [r1, #0x34]
+ ldrb r2, [sb]
+ mov r1, r7
+ mul r0, r2, r0
+ bl MOD13_0223B004
+ ldr r1, [r4]
+ mov r2, fp
+ add r1, r1, sl, lsl #6
+ str r0, [r1, #0x3c]
+ ldr r1, [r4]
+ ldrb r0, [sb]
+ add r1, r1, sl, lsl #6
+ ldr r1, [r1, #0x3c]
+ bl MOD13_0223A054
+ ldr r1, [r4]
+ str r0, [r1, sl, lsl #6]
+ ldrb r0, [sb]
+ bl MOD13_0223A094
+ ldr r1, [r4]
+ add r1, r1, sl, lsl #6
+ str r0, [r1, #4]
+ bl MOD13_0223B928
+ ldr r1, [r4]
+ add r1, r1, sl, lsl #6
+ str r0, [r1, #8]
+ ldr r0, [r4]
+ add r1, r0, sl, lsl #6
+ ldr r0, [sp]
+ strb r0, [r1, #0x1c]
+ ldr r0, [r4]
+ add r0, r0, sl, lsl #6
+ strb r6, [r0, #0x30]
+ ldr r1, [r4]
+ add r0, r1, sl, lsl #6
+ add r1, r1, r8
+ ldr r0, [r0, #8]
+ add r1, r1, #0xc
+ bl MOD13_0223B868
+ ldr r1, [r4]
+ add r0, r1, sl, lsl #6
+ add r1, r1, r8
+ ldr r0, [r0, #8]
+ add r1, r1, #0x20
+ bl MOD13_0223B878
+ ldr r0, [r4]
+ add sb, sb, #1
+ add r0, r0, sl, lsl #6
+ add sl, sl, #1
+ strb r5, [r0, #0x38]
+ add r8, r8, #0x40
+ cmp sl, #2
+ blt _0223C330
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_0223C418: .word 0x0224320C
+_0223C41C: .word 0x0223F764
+
+ .section .data
+ ; 0x0223C420
+ .incbin "baserom.nds", 0x2237C0, 0x4620
+
+ .section .bss
+ ; 0x02240A40
+ .space 0x27E0
diff --git a/arm9/modules/13/asm/module_13_init.s b/arm9/modules/13/asm/module_13_init.s
new file mode 100644
index 00000000..03402138
--- /dev/null
+++ b/arm9/modules/13/asm/module_13_init.s
@@ -0,0 +1,33 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD13_02211E60
+MOD13_02211E60: ; 0x02211E60
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl FUN_0202E49C
+ bl OS_InitTick
+ bl OS_InitAlarm
+ bl OS_DisableInterrupts
+ mov r1, #1
+ add r5, r0, #0
+ add r0, r4, #0
+ lsl r1, r1, #0x12
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD13_02223494
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl OS_RestoreInterrupts
+ ldr r1, _02211EA0 ; =0x04000208
+ ldrh r0, [r1]
+ mov r0, #1
+ strh r0, [r1]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02211EA0: .word 0x04000208
diff --git a/arm9/modules/13/asm/module_13_thumb.s b/arm9/modules/13/asm/module_13_thumb.s
new file mode 100644
index 00000000..b180ff6b
--- /dev/null
+++ b/arm9/modules/13/asm/module_13_thumb.s
@@ -0,0 +1,14779 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD13_022172DC
+MOD13_022172DC: ; 0x022172DC
+ str r0, [r1]
+ mov r0, #1
+ strh r0, [r1, #4]
+ bx lr
+
+ thumb_func_start MOD13_022172E4
+MOD13_022172E4: ; 0x022172E4
+ mov r1, #0
+ str r1, [r0]
+ strh r1, [r0, #4]
+ strh r1, [r0, #6]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD13_022172F0
+MOD13_022172F0: ; 0x022172F0
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r0, _02217358 ; =0x02240B3C
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02217334
+ mov r4, #0
+ add r0, sp, #0
+ add r1, r4, #0
+ mov r2, #0xc
+ bl MOD13_022174C0
+ add r0, sp, #0
+ bl RTC_GetTime
+ cmp r0, #0
+ bne _02217322
+ ldr r0, [sp]
+ lsl r0, r0, #0xa
+ add r1, r4, r0
+ ldr r0, [sp, #4]
+ lsl r0, r0, #3
+ add r1, r1, r0
+ ldr r0, [sp, #8]
+ add r4, r1, r0
+_02217322:
+ ldr r0, _0221735C ; =0x02240B54
+ str r4, [r0]
+ ldr r1, _02217360 ; =0x5D588B65
+ str r1, [r0, #4]
+ ldr r1, _02217364 ; =0x00269EC3
+ str r1, [r0, #8]
+ mov r1, #1
+ ldr r0, _02217358 ; =0x02240B3C
+ str r1, [r0]
+_02217334:
+ ldr r0, _0221735C ; =0x02240B54
+ ldr r3, [r0, #8]
+ ldr r2, [r0, #4]
+ ldr r1, [r0]
+ mul r2, r1
+ add r1, r3, r2
+ str r1, [r0]
+ lsr r1, r1, #0x10
+ ldr r0, _02217368 ; =0x00007FFF
+ mul r1, r0
+ lsr r0, r1, #0x10
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add sp, #0x10
+ pop {r4}
+ pop {r3}
+ bx r3
+ nop
+_02217358: .word 0x02240B3C
+_0221735C: .word 0x02240B54
+_02217360: .word 0x5D588B65
+_02217364: .word 0x00269EC3
+_02217368: .word 0x00007FFF
+
+ thumb_func_start MOD13_0221736C
+MOD13_0221736C: ; 0x0221736C
+ mov r2, #0
+ ldrsb r1, [r0, r2]
+ cmp r1, #0
+ beq _0221737C
+_02217374:
+ add r2, r2, #1
+ ldrsb r1, [r0, r2]
+ cmp r1, #0
+ bne _02217374
+_0221737C:
+ add r0, r2, #0
+ bx lr
+
+ thumb_func_start MOD13_02217380
+MOD13_02217380: ; 0x02217380
+ asr r2, r0, #8
+ mov r1, #0xff
+ and r2, r1
+ lsl r1, r0, #8
+ ldr r0, _02217394 ; =0x0000FF00
+ and r1, r0
+ orr r2, r1
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+ .align 2, 0
+_02217394: .word 0x0000FF00
+
+ thumb_func_start MOD13_02217398
+MOD13_02217398: ; 0x02217398
+ push {r4}
+ sub sp, #4
+ lsl r1, r0, #0x18
+ ldr r2, _022173C4 ; =0xFF000000
+ and r1, r2
+ lsl r4, r0, #8
+ ldr r2, _022173C8 ; =0x00FF0000
+ and r4, r2
+ lsr r3, r0, #0x18
+ mov r2, #0xff
+ and r3, r2
+ lsr r2, r0, #8
+ ldr r0, _022173CC ; =0x0000FF00
+ and r2, r0
+ orr r3, r2
+ orr r4, r3
+ orr r1, r4
+ add r0, r1, #0
+ add sp, #4
+ pop {r4}
+ bx lr
+ nop
+_022173C4: .word 0xFF000000
+_022173C8: .word 0x00FF0000
+_022173CC: .word 0x0000FF00
+
+ thumb_func_start MOD13_022173D0
+MOD13_022173D0: ; 0x022173D0
+ asr r2, r0, #8
+ mov r1, #0xff
+ and r2, r1
+ lsl r1, r0, #8
+ ldr r0, _022173E4 ; =0x0000FF00
+ and r1, r0
+ orr r2, r1
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+ .align 2, 0
+_022173E4: .word 0x0000FF00
+
+ thumb_func_start MOD13_022173E8
+MOD13_022173E8: ; 0x022173E8
+ push {r4}
+ sub sp, #4
+ lsl r1, r0, #0x18
+ ldr r2, _02217414 ; =0xFF000000
+ and r1, r2
+ lsl r4, r0, #8
+ ldr r2, _02217418 ; =0x00FF0000
+ and r4, r2
+ lsr r3, r0, #0x18
+ mov r2, #0xff
+ and r3, r2
+ lsr r2, r0, #8
+ ldr r0, _0221741C ; =0x0000FF00
+ and r2, r0
+ orr r3, r2
+ orr r4, r3
+ orr r1, r4
+ add r0, r1, #0
+ add sp, #4
+ pop {r4}
+ bx lr
+ nop
+_02217414: .word 0xFF000000
+_02217418: .word 0x00FF0000
+_0221741C: .word 0x0000FF00
+
+ thumb_func_start MOD13_02217420
+MOD13_02217420: ; 0x02217420
+ ldr r3, _02217424 ; =0x0209A7B8
+ bx r3
+ .align 2, 0
+_02217424: .word 0x0209A7B8
+
+ thumb_func_start MOD13_02217428
+MOD13_02217428: ; 0x02217428
+ strb r2, [r1]
+ ldr r3, _02217430 ; =0x0209A9A4
+ bx r3
+ nop
+_02217430: .word 0x0209A9A4
+
+ thumb_func_start MOD13_02217434
+MOD13_02217434: ; 0x02217434
+ ldr r3, _02217438 ; =0x0209A9D0
+ bx r3
+ .align 2, 0
+_02217438: .word 0x0209A9D0
+
+ thumb_func_start MOD13_0221743C
+MOD13_0221743C: ; 0x0221743C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD13_02217440
+MOD13_02217440: ; 0x02217440
+ push {r4, r5, lr}
+ sub sp, #4
+ ldr r5, [sp, #0x14]
+ ldr r4, [sp, #0x10]
+ strb r5, [r4]
+ str r4, [sp]
+ bl FUN_0209A7D0
+ add sp, #4
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+
+ thumb_func_start MOD13_02217458
+MOD13_02217458: ; 0x02217458
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ ldr r5, [sp, #0x18]
+ mov r4, #0
+ ldr r2, [r1]
+ ldr r0, [r1, #4]
+ str r2, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r5]
+ ldr r1, _022174A0 ; =0x01FF6210
+ mul r0, r1
+ mov r1, #0x40
+ bl _s32_div_f
+ asr r1, r0, #0x1f
+ add r6, r4, r0
+ adc r4, r1
+ ldr r0, [r5, #4]
+ ldr r1, _022174A0 ; =0x01FF6210
+ mul r0, r1
+ mov r1, #0x40
+ bl _s32_div_f
+ asr r1, r0, #0x1f
+ add r2, r6, r0
+ adc r4, r1
+ add r0, sp, #0
+ mov r1, #1
+ add r3, r4, #0
+ bl FUN_0209A0AC
+ add sp, #8
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+ nop
+_022174A0: .word 0x01FF6210
+
+ thumb_func_start MOD13_022174A4
+MOD13_022174A4: ; 0x022174A4
+ push {r4, r5, lr}
+ sub sp, #4
+ ldr r4, [sp, #0x14]
+ ldr r5, [r4]
+ ldr r4, [sp, #0x10]
+ strb r5, [r4]
+ str r4, [sp]
+ bl FUN_0209A880
+ add sp, #4
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_022174C0
+MOD13_022174C0: ; 0x022174C0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ ldr r3, _022174C8 ; =0x020CE34C
+ bx r3
+ .align 2, 0
+_022174C8: .word 0x020CE34C
+
+ thumb_func_start MOD13_022174CC
+MOD13_022174CC: ; 0x022174CC
+ add r3, r0, #0
+ add r0, r1, #0
+ add r1, r3, #0
+ ldr r3, _022174D8 ; =0x020CE3E0
+ bx r3
+ nop
+_022174D8: .word 0x020CE3E0
+
+ thumb_func_start MOD13_022174DC
+MOD13_022174DC: ; 0x022174DC
+ push {r4}
+ sub sp, #4
+ mov r4, #0
+ b _022174E8
+_022174E4:
+ add r0, r0, #1
+ add r1, r1, #1
+_022174E8:
+ add r3, r2, #0
+ sub r2, r2, #1
+ cmp r3, #0
+ ble _022174FA
+ ldrb r4, [r0]
+ ldrb r3, [r1]
+ sub r4, r4, r3
+ cmp r4, #0
+ beq _022174E4
+_022174FA:
+ add r0, r4, #0
+ add sp, #4
+ pop {r4}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD13_02217504
+MOD13_02217504: ; 0x02217504
+ push {lr}
+ sub sp, #4
+ bl THUNK_FUN_02099BC8
+ cmp r0, #0
+ bge _0221751A
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221751A:
+ bl MOD13_02219C60
+ cmp r0, #0
+ beq _02217526
+ mov r0, #1
+ b _02217528
+_02217526:
+ mov r0, #0
+_02217528:
+ neg r0, r0
+ add sp, #4
+ pop {r3}
+ bx r3
+
+ thumb_func_start MOD13_02217530
+MOD13_02217530: ; 0x02217530
+ push {r4, r5, lr}
+ sub sp, #4
+ add r5, r1, #0
+ add r4, r2, #0
+ bl MOD13_022173E8
+ ldr r1, _0221758C ; =0x0223F7C8
+ str r0, [r1, #0x10]
+ add r0, r5, #0
+ bl MOD13_022173E8
+ ldr r1, _0221758C ; =0x0223F7C8
+ str r0, [r1, #0x14]
+ add r0, r4, #0
+ bl MOD13_022173E8
+ ldr r1, _0221758C ; =0x0223F7C8
+ str r0, [r1, #0x18]
+ add r0, r1, #0
+ bl FUN_0209A2C0
+ cmp r0, #0
+ bge _0221756A
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+_0221756A:
+ ldr r5, _02217590 ; =0x021C8F04
+ ldr r0, [r5]
+ cmp r0, #0
+ bne _02217580
+ mov r4, #0x64
+_02217574:
+ add r0, r4, #0
+ bl OS_Sleep
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _02217574
+_02217580:
+ mov r0, #0
+ add sp, #4
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+ nop
+_0221758C: .word 0x0223F7C8
+_02217590: .word 0x021C8F04
+
+ thumb_func_start MOD13_02217594
+MOD13_02217594: ; 0x02217594
+ push {lr}
+ sub sp, #4
+ add r0, r1, #0
+ ldr r1, _022175A8 ; =0x0224190C
+ ldr r1, [r1]
+ blx r1
+ add sp, #4
+ pop {r3}
+ bx r3
+ nop
+_022175A8: .word 0x0224190C
+
+ thumb_func_start MOD13_022175AC
+MOD13_022175AC: ; 0x022175AC
+ push {lr}
+ sub sp, #4
+ cmp r1, #0
+ ble _022175C2
+ add r0, r1, #0
+ ldr r1, _022175CC ; =0x02241900
+ ldr r1, [r1]
+ blx r1
+ add sp, #4
+ pop {r3}
+ bx r3
+_022175C2:
+ mov r0, #0
+ add sp, #4
+ pop {r3}
+ bx r3
+ nop
+_022175CC: .word 0x02241900
+
+ thumb_func_start MOD13_022175D0
+MOD13_022175D0: ; 0x022175D0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ add r0, r6, #0
+ mov r1, #2
+ bl _s32_div_f
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, r7
+ add r2, r7, #0
+ bl MOD13_022174CC
+ add r0, r4, r7
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD13_022174CC
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD13_022174CC
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_0221760C
+MOD13_0221760C: ; 0x0221760C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, r2, #0
+ mov r1, #2
+ bl _s32_div_f
+ mov r6, #0
+ cmp r0, #0
+ ble _02217630
+_02217620:
+ add r3, r0, r6
+ ldrb r2, [r4, r3]
+ ldrsb r1, [r5, r6]
+ eor r2, r1
+ strb r2, [r4, r3]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _02217620
+_02217630:
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_02217638
+MOD13_02217638: ; 0x02217638
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r6, r0, #0
+ add r5, r1, #0
+ str r3, [sp]
+ ldr r4, [sp, #0x18]
+ add r0, r2, #0
+ mov r1, #2
+ bl _s32_div_f
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl _s32_div_f
+ add r2, r1, #0
+ mov r1, #0
+ cmp r7, #0
+ ble _0221767A
+ add r6, r1, #0
+_02217660:
+ strb r1, [r5, r1]
+ ldrsb r0, [r5, r1]
+ ldr r3, [sp]
+ ldrsb r3, [r3, r2]
+ add r2, r2, #1
+ eor r0, r3
+ strb r0, [r5, r1]
+ cmp r2, r4
+ blt _02217674
+ add r2, r6, #0
+_02217674:
+ add r1, r1, #1
+ cmp r1, r7
+ blt _02217660
+_0221767A:
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_02217684
+MOD13_02217684: ; 0x02217684
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0
+ add r5, r1, #0
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r5, #0
+ mov r1, #2
+ bl _s32_div_f
+ bl MOD13_022198B4
+ add r6, r0, #0
+ cmp r6, #0
+ bne _022176AE
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022176AE:
+ add r0, r5, #0
+ bl MOD13_022198B4
+ str r0, [sp, #0xc]
+ cmp r0, #0
+ bne _022176CC
+ add r0, r6, #0
+ bl MOD13_022198A0
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022176CC:
+ mov r4, #0
+_022176CE:
+ ldr r0, [sp, #8]
+ str r0, [sp]
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r5, #0
+ ldr r3, [sp, #4]
+ bl MOD13_02217638
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl MOD13_0221760C
+ add r0, r7, #0
+ add r1, r5, #0
+ ldr r2, [sp, #0xc]
+ bl MOD13_022175D0
+ add r4, r4, #1
+ cmp r4, #2
+ blt _022176CE
+ add r0, r6, #0
+ bl MOD13_022198A0
+ ldr r0, [sp, #0xc]
+ bl MOD13_022198A0
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_02217710
+MOD13_02217710: ; 0x02217710
+ push {r4, r5, r6, r7}
+ mov r6, #0
+ add r4, r6, #0
+ ldr r2, _02217744 ; =0xEDB88320
+ mov r3, #1
+_0221771A:
+ add r7, r6, #0
+ add r5, r4, #0
+_0221771E:
+ add r0, r7, #0
+ and r0, r3
+ cmp r0, #0
+ beq _0221772C
+ lsr r7, r7, #1
+ eor r7, r2
+ b _0221772E
+_0221772C:
+ lsr r7, r7, #1
+_0221772E:
+ add r5, r5, #1
+ cmp r5, #8
+ blt _0221771E
+ stmia r1!, {r7}
+ add r6, r6, #1
+ ldr r0, _02217748 ; =0x00000100
+ cmp r6, r0
+ blt _0221771A
+ pop {r4, r5, r6, r7}
+ bx lr
+ nop
+_02217744: .word 0xEDB88320
+_02217748: .word 0x00000100
+
+ thumb_func_start MOD13_0221774C
+MOD13_0221774C: ; 0x0221774C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r7, r1, #0
+ add r4, r2, #0
+ ldr r6, [sp, #0x18]
+ cmp r3, #0
+ bne _02217764
+ add r0, r3, #0
+ add r1, r6, #0
+ bl MOD13_02217710
+_02217764:
+ mov r1, #0
+ cmp r4, #0
+ ble _02217782
+ mov r2, #0xff
+_0221776C:
+ lsr r0, r5, #8
+ ldrb r3, [r7, r1]
+ eor r5, r3
+ and r5, r2
+ lsl r3, r5, #2
+ ldr r3, [r6, r3]
+ add r5, r0, #0
+ eor r5, r3
+ add r1, r1, #1
+ cmp r1, r4
+ blt _0221776C
+_02217782:
+ add r0, r5, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+
+ thumb_func_start MOD13_0221778C
+MOD13_0221778C: ; 0x0221778C
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ add r2, r1, #0
+ ldr r0, _022177B4 ; =0x02240E60
+ str r0, [sp]
+ mov r3, #0
+ mvn r0, r3
+ add r1, r4, #0
+ bl MOD13_0221774C
+ mov r1, #0
+ mvn r1, r1
+ eor r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add sp, #8
+ pop {r4}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_022177B4: .word 0x02240E60
+
+ thumb_func_start MOD13_022177B8
+MOD13_022177B8: ; 0x022177B8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r5, r0, #0
+ ldr r4, [r5, #8]
+ ldr r0, [r5, #0xc]
+ str r0, [sp]
+ ldr r0, [r5]
+ add r0, r0, #1
+ ldr r1, [sp]
+ bl _u32_div_f
+ lsl r0, r1, #0x18
+ lsr r6, r0, #0x18
+ ldrb r7, [r4, r6]
+ ldr r0, [r5, #4]
+ add r0, r7, r0
+ ldr r1, [sp]
+ bl _u32_div_f
+ lsl r0, r1, #0x18
+ lsr r1, r0, #0x18
+ ldrb r0, [r4, r1]
+ str r6, [r5]
+ str r1, [r5, #4]
+ strb r7, [r4, r1]
+ strb r0, [r4, r6]
+ add r0, r7, r0
+ ldr r1, [r5, #0xc]
+ bl _u32_div_f
+ ldrb r0, [r4, r1]
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_02217800
+MOD13_02217800: ; 0x02217800
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ str r0, [sp]
+ add r5, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ mov r4, #0
+ cmp r7, #0
+ bls _02217828
+_02217812:
+ ldr r0, [sp]
+ bl MOD13_022177B8
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldrb r0, [r6, r4]
+ eor r1, r0
+ strb r1, [r5, r4]
+ add r4, r4, #1
+ cmp r4, r7
+ blo _02217812
+_02217828:
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+
+ thumb_func_start MOD13_02217830
+MOD13_02217830: ; 0x02217830
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r5, [r0, #8]
+ mov r0, #0
+ ldr r1, [sp]
+ str r0, [r1, #4]
+ ldr r2, [r1, #4]
+ str r2, [r1]
+ lsl r2, r3, #0
+ str r2, [r1, #0xc]
+ lsl r1, r3, #0
+ cmp r1, #0
+ bls _0221785C
+_02217852:
+ strb r0, [r5, r0]
+ add r0, r0, #1
+ ldr r1, [sp, #0xc]
+ cmp r0, r1
+ blo _02217852
+_0221785C:
+ mov r1, #0
+ add r6, r1, #0
+ add r4, r1, #0
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bls _02217894
+ str r1, [sp, #0x10]
+_0221786A:
+ ldrb r7, [r5, r4]
+ ldr r0, [sp, #4]
+ ldrb r0, [r0, r6]
+ add r0, r1, r0
+ add r0, r7, r0
+ ldr r1, [sp]
+ ldr r1, [r1, #0xc]
+ bl _u32_div_f
+ ldrb r0, [r5, r1]
+ strb r7, [r5, r1]
+ strb r0, [r5, r4]
+ add r6, r6, #1
+ ldr r0, [sp, #8]
+ cmp r6, r0
+ blo _0221788C
+ ldr r6, [sp, #0x10]
+_0221788C:
+ add r4, r4, #1
+ ldr r0, [sp, #0xc]
+ cmp r4, r0
+ blo _0221786A
+_02217894:
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+
+ thumb_func_start MOD13_0221789C
+MOD13_0221789C: ; 0x0221789C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ add r0, r4, #0
+ bl MOD13_022198B4
+ str r0, [sp, #8]
+ cmp r0, #0
+ bne _022178C6
+ mov r0, #2
+ bl MOD13_02218BF4
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022178C6:
+ ldr r0, _02217928 ; =0x02240B7C
+ ldr r1, [sp, #0x28]
+ mov r2, #2
+ bl MOD13_022174CC
+ ldr r0, _0221792C ; =0x02240B7E
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x30]
+ bl MOD13_022174CC
+ add r0, sp, #0
+ ldr r1, _02217928 ; =0x02240B7C
+ ldr r2, [sp, #0x30]
+ add r2, r2, #2
+ add r3, r4, #0
+ bl MOD13_02217830
+ add r0, sp, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ add r3, r4, #0
+ bl MOD13_02217800
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD13_0221778C
+ cmp r0, r6
+ beq _02217918
+ mov r0, #0x12
+ bl MOD13_02218BF4
+ ldr r0, [sp, #8]
+ bl MOD13_022198A0
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02217918:
+ ldr r0, [sp, #8]
+ bl MOD13_022198A0
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_02217928: .word 0x02240B7C
+_0221792C: .word 0x02240B7E
+
+ thumb_func_start MOD13_02217930
+MOD13_02217930: ; 0x02217930
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ add r7, r1, #0
+ add r5, r2, #0
+ add r4, r3, #0
+ add r1, r5, #0
+ bl MOD13_0221778C
+ strb r0, [r4]
+ add r0, r5, #0
+ bl MOD13_022198B4
+ str r0, [sp, #0xc]
+ cmp r0, #0
+ bne _0221795C
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221795C:
+ bl MOD13_022172F0
+ add r1, sp, #0
+ strh r0, [r1]
+ ldr r0, [sp, #0x28]
+ add r1, sp, #0
+ mov r2, #2
+ bl MOD13_022174CC
+ ldr r0, _022179AC ; =0x02240B7C
+ ldr r1, [sp, #0x28]
+ mov r2, #2
+ bl MOD13_022174CC
+ ldr r0, _022179B0 ; =0x02240B7E
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x30]
+ bl MOD13_022174CC
+ add r0, sp, #4
+ ldr r1, _022179AC ; =0x02240B7C
+ ldr r2, [sp, #0x30]
+ add r2, r2, #2
+ add r3, r5, #0
+ bl MOD13_02217830
+ add r0, sp, #4
+ add r1, r7, #0
+ add r2, r6, #0
+ add r3, r5, #0
+ bl MOD13_02217800
+ ldr r0, [sp, #0xc]
+ bl MOD13_022198A0
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_022179AC: .word 0x02240B7C
+_022179B0: .word 0x02240B7E
+
+ thumb_func_start MOD13_022179B4
+MOD13_022179B4: ; 0x022179B4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ add r0, sp, #8
+ mov r1, #0
+ mov r2, #8
+ bl MOD13_022174C0
+ mov r1, #2
+ add r0, sp, #8
+ strb r1, [r0, #1]
+ ldr r0, _02217A14 ; =0x00005790
+ bl MOD13_022173D0
+ add r1, sp, #8
+ strh r0, [r1, #2]
+ ldr r0, _02217A18 ; =0x02240B60
+ ldr r0, [r0, #0x10]
+ bl MOD13_022173E8
+ str r0, [sp, #0xc]
+ cmp r4, #0xff
+ beq _022179F2
+ ldr r1, _02217A18 ; =0x02240B60
+ mov r0, #0x18
+ ldrsb r0, [r1, r0]
+ cmp r0, #0
+ bne _022179F8
+_022179F2:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0xc]
+_022179F8:
+ add r0, sp, #8
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD13_02217440
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_02217A14: .word 0x00005790
+_02217A18: .word 0x02240B60
+
+ thumb_func_start MOD13_02217A1C
+MOD13_02217A1C: ; 0x02217A1C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ mov r0, #1
+ bl MOD13_022173D0
+ strh r0, [r5]
+ mov r0, #0
+ strh r0, [r5, #2]
+ strh r0, [r5, #4]
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl MOD13_022173D0
+ strh r0, [r5, #6]
+ mov r0, #0
+ strh r0, [r5, #8]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ bl MOD13_022173D0
+ strh r0, [r5, #0xa]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ bl MOD13_022173D0
+ strh r0, [r5, #0xc]
+ add r1, sp, #8
+ mov r0, #0x10
+ ldrsb r0, [r1, r0]
+ strb r0, [r5, #0xe]
+ mov r0, #0x14
+ ldrsb r0, [r1, r0]
+ strb r0, [r5, #0xf]
+ add r5, #0x10
+ add r0, r5, #0
+ ldr r1, [sp, #0x20]
+ mov r2, #8
+ bl MOD13_022174CC
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_02217A7C
+MOD13_02217A7C: ; 0x02217A7C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r4, r3, #0
+ cmp r0, #1
+ bne _02217AC0
+ mov r1, #1
+ ldr r0, [sp, #0x18]
+ strh r1, [r0]
+ add r0, r5, #2
+ str r0, [sp]
+ ldr r0, _02217AD4 ; =0x02240B4C
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ add r0, r2, #0
+ add r1, r5, #4
+ mov r2, #0
+ ldrsh r2, [r4, r2]
+ ldr r3, [sp, #0x1c]
+ bl MOD13_02217930
+ ldrh r0, [r4]
+ bl MOD13_022173D0
+ strh r0, [r5]
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, r0, #4
+ strh r0, [r4]
+ add sp, #0xc
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+_02217AC0:
+ add r0, r5, #0
+ add r1, r2, #0
+ mov r2, #0
+ ldrsh r2, [r4, r2]
+ bl MOD13_022174CC
+ add sp, #0xc
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_02217AD4: .word 0x02240B4C
+
+ thumb_func_start MOD13_02217AD8
+MOD13_02217AD8: ; 0x02217AD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r5, r0, #0
+ mov r6, #0
+ ldr r1, _02217B60 ; =0x02240B60
+ mov r0, #0x19
+ ldrsb r0, [r1, r0]
+ strb r0, [r5]
+ mov r0, #1
+ strb r0, [r5, #1]
+ ldr r0, [r1, #4]
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ add r0, r5, #6
+ ldr r1, [r1]
+ add r2, r4, #0
+ bl MOD13_022174CC
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl MOD13_022173D0
+ strh r0, [r5, #2]
+ add r0, r4, #6
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, r0, #1
+ mov r1, #2
+ bl _s32_div_f
+ lsl r0, r0, #0x11
+ asr r7, r0, #0x10
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ bl MOD13_022173D0
+ strh r0, [r5, #4]
+ add r0, r6, r7
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ add r4, r5, r7
+ mov r0, #0x60
+ strb r0, [r5, r7]
+ mov r0, #0
+ strb r0, [r4, #1]
+ bl MOD13_022173D0
+ strh r0, [r4, #4]
+ mov r0, #0xe
+ bl MOD13_022173E8
+ str r0, [sp]
+ add r0, r4, #6
+ add r1, sp, #0
+ mov r2, #4
+ bl MOD13_022174CC
+ mov r0, #4
+ bl MOD13_022173D0
+ strh r0, [r4, #2]
+ add r6, #0xa
+ lsl r0, r6, #0x10
+ asr r0, r0, #0x10
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_02217B60: .word 0x02240B60
+
+ thumb_func_start MOD13_02217B64
+MOD13_02217B64: ; 0x02217B64
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ add r6, r2, #0
+ ldr r0, _02217BC4 ; =0x02240B48
+ ldr r4, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ ldr r2, _02217BC8 ; =0x000005DC
+ bl MOD13_022174C0
+ add r0, sp, #0xc
+ add r5, #0x10
+ add r1, r5, #0
+ mov r2, #8
+ bl MOD13_022174CC
+ ldr r0, _02217BCC ; =0x0223F820
+ bl MOD13_0221736C
+ add r3, r0, #0
+ add r0, sp, #0xc
+ mov r1, #8
+ ldr r2, _02217BCC ; =0x0223F820
+ bl MOD13_02217684
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x11
+ str r0, [sp, #4]
+ add r0, sp, #0xc
+ str r0, [sp, #8]
+ add r0, r4, #0
+ ldr r1, _02217BD0 ; =0x00003000
+ add r3, r2, #0
+ bl MOD13_02217A1C
+ add r0, r4, #0
+ mov r1, #0x18
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD13_022179B4
+ mov r0, #0
+ add sp, #0x18
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_02217BC4: .word 0x02240B48
+_02217BC8: .word 0x000005DC
+_02217BCC: .word 0x0223F820
+_02217BD0: .word 0x00003000
+
+ thumb_func_start MOD13_02217BD4
+MOD13_02217BD4: ; 0x02217BD4
+ push {r4, r5, r6, lr}
+ sub sp, #0x28
+ add r5, r1, #0
+ add r6, r2, #0
+ mov r1, #0
+ add r0, sp, #0xc
+ strb r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ ldr r0, _02217CB0 ; =0x02240B48
+ ldr r4, [r0]
+ add r0, sp, #0x1c
+ mov r2, #8
+ bl MOD13_022174C0
+ add r0, r4, #0
+ mov r1, #0
+ ldr r2, _02217CB4 ; =0x000005DC
+ bl MOD13_022174C0
+ mov r1, #2
+ add r0, sp, #0xc
+ strb r1, [r0, #0x10]
+ mov r1, #0
+ strb r1, [r0, #0x11]
+ mov r0, #4
+ bl MOD13_022173D0
+ add r1, sp, #0xc
+ strh r0, [r1, #0x12]
+ ldr r0, _02217CB8 ; =0x02240B60
+ ldr r0, [r0, #8]
+ str r0, [sp, #0x20]
+ bl MOD13_022173E8
+ str r0, [sp, #0x20]
+ mov r1, #8
+ add r0, sp, #0xc
+ strh r1, [r0, #2]
+ add r0, sp, #0x10
+ str r0, [sp]
+ add r0, sp, #0xc
+ str r0, [sp, #4]
+ ldr r0, _02217CBC ; =0x02240B34
+ ldr r0, [r0]
+ add r1, r4, #0
+ add r1, #0x18
+ add r2, sp, #0x1c
+ add r3, sp, #0xc
+ add r3, #2
+ bl MOD13_02217A7C
+ add r0, sp, #0x10
+ add r0, #2
+ add r5, #8
+ add r1, r5, #0
+ mov r2, #8
+ bl MOD13_022174CC
+ add r0, sp, #0x10
+ add r0, #2
+ mov r1, #8
+ ldr r2, _02217CC0 ; =0x0223F820
+ mov r3, #6
+ bl MOD13_02217684
+ cmp r0, #0
+ beq _02217C6E
+ mov r0, #2
+ bl MOD13_02218BF4
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0x28
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+_02217C6E:
+ add r3, sp, #0xc
+ mov r0, #0
+ ldrsb r0, [r3, r0]
+ str r0, [sp]
+ mov r0, #0x11
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ add r0, #2
+ str r0, [sp, #8]
+ add r0, r4, #0
+ ldr r1, _02217CC4 ; =0x00002000
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ mov r5, #4
+ ldrsh r3, [r3, r5]
+ bl MOD13_02217A1C
+ add r2, sp, #0xc
+ mov r1, #2
+ ldrsh r0, [r2, r1]
+ add r0, #0x18
+ strh r0, [r2, #2]
+ add r0, r4, #0
+ ldrsh r1, [r2, r1]
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD13_022179B4
+ mov r0, #0
+ add sp, #0x28
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_02217CB0: .word 0x02240B48
+_02217CB4: .word 0x000005DC
+_02217CB8: .word 0x02240B60
+_02217CBC: .word 0x02240B34
+_02217CC0: .word 0x0223F820
+_02217CC4: .word 0x00002000
+
+ thumb_func_start MOD13_02217CC8
+MOD13_02217CC8: ; 0x02217CC8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r7, r1, #0
+ str r2, [sp, #0xc]
+ mov r1, #0
+ add r0, sp, #0x10
+ strb r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ ldr r0, _02217E08 ; =0x02240B48
+ ldr r5, [r0]
+ add r0, r5, #0
+ ldr r2, _02217E0C ; =0x000005DC
+ bl MOD13_022174C0
+ ldr r0, _02217E10 ; =0x00000210
+ bl MOD13_022198B4
+ add r4, r0, #0
+ cmp r4, #0
+ bne _02217D04
+ mov r0, #2
+ bl MOD13_02218BF4
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0x24
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02217D04:
+ mov r1, #0
+ ldr r2, _02217E10 ; =0x00000210
+ bl MOD13_022174C0
+ add r6, r5, #0
+ add r6, #0x18
+ ldr r0, _02217E14 ; =0x02240B4C
+ add r1, r7, #0
+ mov r2, #8
+ bl MOD13_022174CC
+ add r0, sp, #0x14
+ add r0, #2
+ ldr r1, _02217E14 ; =0x02240B4C
+ mov r2, #8
+ bl MOD13_022174CC
+ add r0, r4, #4
+ bl MOD13_02217AD8
+ add r1, sp, #0x10
+ strh r0, [r1, #2]
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ cmp r0, #0
+ bge _02217D54
+ mov r0, #3
+ bl MOD13_02218BF4
+ cmp r4, #0
+ beq _02217D48
+ add r0, r4, #0
+ bl MOD13_022198A0
+_02217D48:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0x24
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02217D54:
+ mov r0, #0
+ strb r0, [r4]
+ ldrh r0, [r1, #2]
+ bl MOD13_022173D0
+ strh r0, [r4, #2]
+ add r1, sp, #0x10
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ add r0, r0, #4
+ strh r0, [r1, #2]
+ add r0, sp, #0x14
+ str r0, [sp]
+ add r0, sp, #0x10
+ str r0, [sp, #4]
+ mov r0, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ add r3, sp, #0x10
+ add r3, #2
+ bl MOD13_02217A7C
+ add r1, sp, #0x10
+ mov r0, #4
+ ldrsh r2, [r1, r0]
+ mov r0, #0x10
+ orr r2, r0
+ strh r2, [r1, #4]
+ add r0, sp, #0x14
+ add r0, #2
+ mov r1, #8
+ ldr r2, _02217E18 ; =0x0223F820
+ mov r3, #6
+ bl MOD13_02217684
+ cmp r0, #0
+ beq _02217DBA
+ mov r0, #2
+ bl MOD13_02218BF4
+ cmp r4, #0
+ beq _02217DAE
+ add r0, r4, #0
+ bl MOD13_022198A0
+_02217DAE:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0x24
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02217DBA:
+ add r3, sp, #0x10
+ mov r0, #0
+ ldrsb r0, [r3, r0]
+ str r0, [sp]
+ mov r0, #0x11
+ str r0, [sp, #4]
+ add r0, sp, #0x14
+ add r0, #2
+ str r0, [sp, #8]
+ add r0, r5, #0
+ ldr r1, _02217E1C ; =0x00001000
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ mov r6, #4
+ ldrsh r3, [r3, r6]
+ bl MOD13_02217A1C
+ add r2, sp, #0x10
+ mov r1, #2
+ ldrsh r0, [r2, r1]
+ add r0, #0x18
+ strh r0, [r2, #2]
+ add r0, r5, #0
+ ldrsh r1, [r2, r1]
+ mov r2, #0xff
+ ldr r3, [sp, #0xc]
+ bl MOD13_022179B4
+ cmp r4, #0
+ beq _02217DFC
+ add r0, r4, #0
+ bl MOD13_022198A0
+_02217DFC:
+ mov r0, #0
+ add sp, #0x24
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_02217E08: .word 0x02240B48
+_02217E0C: .word 0x000005DC
+_02217E10: .word 0x00000210
+_02217E14: .word 0x02240B4C
+_02217E18: .word 0x0223F820
+_02217E1C: .word 0x00001000
+
+ thumb_func_start MOD13_02217E20
+MOD13_02217E20: ; 0x02217E20
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ cmp r0, #0
+ beq _02217E36
+ cmp r0, #1
+ beq _02217E4C
+ cmp r0, #2
+ beq _02217E62
+ b _02217E78
+_02217E36:
+ mov r0, #2
+ bl MOD13_02218870
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD13_02217CC8
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+_02217E4C:
+ mov r0, #3
+ bl MOD13_02218870
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD13_02217BD4
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+_02217E62:
+ mov r0, #5
+ bl MOD13_02218870
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD13_02217B64
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+_02217E78:
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_02217E84
+MOD13_02217E84: ; 0x02217E84
+ mov r2, #0
+ mov r1, #0x10
+ and r0, r1
+ cmp r0, #0
+ beq _02217E90
+ mov r2, #1
+_02217E90:
+ add r0, r2, #0
+ bx lr
+
+ thumb_func_start MOD13_02217E94
+MOD13_02217E94: ; 0x02217E94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r0, [sp]
+ add r4, r1, #0
+ add r6, r2, #0
+ str r3, [sp, #4]
+ mov r5, #0
+ cmp r6, #0
+ bgt _02217EB2
+ mov r0, #1
+ mvn r0, r0
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02217EB2:
+ ldr r1, _02217FA0 ; =0x0223F7B8
+ add r7, r1, r0
+_02217EB6:
+ add r2, r4, #0
+ ldrb r1, [r4]
+ ldrb r0, [r7]
+ cmp r1, r0
+ beq _02217EDC
+ ldrh r0, [r4, #2]
+ bl MOD13_02217380
+ add r0, r0, #4
+ add r4, r4, r0
+ sub r6, r6, r0
+ cmp r6, #0
+ bgt _02217EB6
+ mov r0, #3
+ mvn r0, r0
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02217EDC:
+ add r4, r4, #4
+ ldrh r0, [r2, #2]
+ bl MOD13_02217380
+ add r7, r0, #0
+ ldr r0, _02217FA4 ; =0x00000350
+ ldr r1, [sp]
+ mul r1, r0
+ ldr r0, [sp, #4]
+ add r6, r0, r1
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp]
+ add r1, r1, #3
+ lsl r1, r1, #7
+ add r0, r0, r1
+ str r0, [sp, #8]
+ mov r0, #2
+ mvn r0, r0
+ str r0, [sp, #0xc]
+_02217F02:
+ ldrb r0, [r4]
+ cmp r0, #0xa
+ bhi _02217F76
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #8]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, pc
+ bx r0
+_02217F16: ; jump table
+ .short _02217F76 - _02217F16 + 1 ; case 0
+ .short _02217F76 - _02217F16 + 1 ; case 1
+ .short _02217F76 - _02217F16 + 1 ; case 2
+ .short _02217F2C - _02217F16 + 1 ; case 3
+ .short _02217F3C - _02217F16 + 1 ; case 4
+ .short _02217F4C - _02217F16 + 1 ; case 5
+ .short _02217F5C - _02217F16 + 1 ; case 6
+ .short _02217F76 - _02217F16 + 1 ; case 7
+ .short _02217F76 - _02217F16 + 1 ; case 8
+ .short _02217F76 - _02217F16 + 1 ; case 9
+ .short _02217F6C - _02217F16 + 1 ; case 10
+_02217F2C:
+ add r0, r4, #0
+ add r1, r6, #0
+ add r1, #8
+ bl MOD13_022180CC
+ mov r1, #1
+ orr r5, r1
+ b _02217F78
+_02217F3C:
+ add r0, r4, #0
+ ldr r1, _02217FA8 ; =0x00000138
+ add r1, r6, r1
+ bl MOD13_022180CC
+ mov r1, #2
+ orr r5, r1
+ b _02217F78
+_02217F4C:
+ add r0, r4, #0
+ ldr r1, _02217FAC ; =0x00000268
+ add r1, r6, r1
+ bl MOD13_02217FFC
+ mov r1, #4
+ orr r5, r1
+ b _02217F78
+_02217F5C:
+ add r0, r4, #0
+ ldr r1, _02217FB0 ; =0x000002D8
+ add r1, r6, r1
+ bl MOD13_02217FFC
+ mov r1, #8
+ orr r5, r1
+ b _02217F78
+_02217F6C:
+ add r0, r4, #0
+ ldr r1, [sp, #8]
+ bl MOD13_02217FB8
+ b _02217F78
+_02217F76:
+ ldr r0, [sp, #0xc]
+_02217F78:
+ cmp r0, #0
+ bne _02217F96
+ ldrh r0, [r4, #2]
+ bl MOD13_02217380
+ add r0, r0, #4
+ add r4, r4, r0
+ sub r7, r7, r0
+ cmp r7, #0
+ bgt _02217F02
+ ldr r0, _02217FB4 ; =0x02240B60
+ ldr r1, [r0, #0xc]
+ orr r1, r5
+ str r1, [r0, #0xc]
+ mov r0, #0
+_02217F96:
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_02217FA0: .word 0x0223F7B8
+_02217FA4: .word 0x00000350
+_02217FA8: .word 0x00000138
+_02217FAC: .word 0x00000268
+_02217FB0: .word 0x000002D8
+_02217FB4: .word 0x02240B60
+
+ thumb_func_start MOD13_02217FB8
+MOD13_02217FB8: ; 0x02217FB8
+ push {r4, r5, lr}
+ sub sp, #4
+ add r5, r1, #0
+ add r4, r0, #6
+ ldrh r0, [r4, #2]
+ bl MOD13_02217380
+ add r2, r0, #0
+ cmp r2, #0
+ bgt _02217FD8
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+_02217FD8:
+ ldrb r0, [r4]
+ cmp r0, #0x70
+ beq _02217FEA
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+_02217FEA:
+ add r0, r5, #0
+ add r1, r4, #6
+ bl MOD13_022174CC
+ mov r0, #0
+ add sp, #4
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+
+ thumb_func_start MOD13_02217FFC
+MOD13_02217FFC: ; 0x02217FFC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r7, r0, #0
+ add r6, r1, #0
+ add r5, r7, #6
+_02218006:
+ ldrh r0, [r5, #2]
+ bl MOD13_02217380
+ add r4, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0x35
+ bgt _0221801E
+ cmp r0, #0x35
+ bge _0221803E
+ cmp r0, #0x30
+ beq _0221802E
+ b _0221804E
+_0221801E:
+ cmp r0, #0x40
+ bgt _02218028
+ cmp r0, #0x40
+ beq _0221802E
+ b _0221804E
+_02218028:
+ cmp r0, #0x45
+ beq _0221803E
+ b _0221804E
+_0221802E:
+ cmp r4, #0x40
+ bls _0221804E
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221803E:
+ cmp r4, #0x21
+ bls _0221804E
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221804E:
+ cmp r0, #0x35
+ bgt _0221805C
+ cmp r0, #0x35
+ bge _0221807C
+ cmp r0, #0x30
+ beq _0221806C
+ b _022180A4
+_0221805C:
+ cmp r0, #0x40
+ bgt _02218066
+ cmp r0, #0x40
+ beq _0221806C
+ b _022180A4
+_02218066:
+ cmp r0, #0x45
+ beq _0221807C
+ b _022180A4
+_0221806C:
+ add r0, r6, #0
+ add r0, #0x30
+ add r1, r5, #6
+ add r2, r4, #0
+ bl MOD13_022174CC
+ str r4, [r6, #4]
+ b _022180B0
+_0221807C:
+ cmp r4, #0
+ beq _02218096
+ sub r0, r4, #1
+ add r0, r5, r0
+ ldrb r0, [r0, #6]
+ cmp r0, #0
+ beq _02218096
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218096:
+ add r0, r6, #0
+ add r0, #8
+ add r1, r5, #6
+ add r2, r4, #0
+ bl MOD13_022174CC
+ b _022180B0
+_022180A4:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022180B0:
+ ldrh r0, [r5, #4]
+ cmp r0, #0
+ beq _022180C0
+ bl MOD13_02217380
+ add r1, r7, #6
+ add r5, r1, r0
+ b _02218006
+_022180C0:
+ mov r0, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_022180CC
+MOD13_022180CC: ; 0x022180CC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r7, r0, #0
+ add r6, r1, #0
+ add r5, r7, #6
+_022180D6:
+ ldrh r0, [r5, #2]
+ bl MOD13_02217380
+ add r4, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0x21
+ bgt _02218114
+ cmp r0, #0x21
+ bge _02218138
+ cmp r0, #0x15
+ bgt _0221810E
+ add r1, r0, #0
+ sub r1, #0x10
+ cmp r1, #0
+ blt _02218158
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #8]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r1, pc
+ bx r1
+_02218102: ; jump table
+ .short _02218128 - _02218102 + 1 ; case 0
+ .short _02218128 - _02218102 + 1 ; case 1
+ .short _02218128 - _02218102 + 1 ; case 2
+ .short _02218128 - _02218102 + 1 ; case 3
+ .short _02218158 - _02218102 + 1 ; case 4
+ .short _02218148 - _02218102 + 1 ; case 5
+_0221810E:
+ cmp r0, #0x20
+ beq _02218138
+ b _02218158
+_02218114:
+ cmp r0, #0x23
+ bgt _02218122
+ cmp r0, #0x23
+ bge _02218138
+ cmp r0, #0x22
+ beq _02218138
+ b _02218158
+_02218122:
+ cmp r0, #0x25
+ beq _02218148
+ b _02218158
+_02218128:
+ cmp r4, #5
+ bls _02218158
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218138:
+ cmp r4, #0xd
+ bls _02218158
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218148:
+ cmp r4, #0x21
+ bls _02218158
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218158:
+ cmp r0, #0x21
+ bgt _0221818C
+ cmp r0, #0x21
+ bge _022181B0
+ cmp r0, #0x15
+ bgt _02218186
+ add r1, r0, #0
+ sub r1, #0x10
+ cmp r1, #0
+ blt _02218208
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #8]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r1, pc
+ bx r1
+_0221817A: ; jump table
+ .short _022181A0 - _0221817A + 1 ; case 0
+ .short _022181B0 - _0221817A + 1 ; case 1
+ .short _022181C0 - _0221817A + 1 ; case 2
+ .short _022181D0 - _0221817A + 1 ; case 3
+ .short _02218208 - _0221817A + 1 ; case 4
+ .short _022181E0 - _0221817A + 1 ; case 5
+_02218186:
+ cmp r0, #0x20
+ beq _022181A0
+ b _02218208
+_0221818C:
+ cmp r0, #0x23
+ bgt _0221819A
+ cmp r0, #0x23
+ bge _022181D0
+ cmp r0, #0x22
+ beq _022181C0
+ b _02218208
+_0221819A:
+ cmp r0, #0x25
+ beq _022181E0
+ b _02218208
+_022181A0:
+ add r0, r6, #0
+ add r0, #0x30
+ add r1, r5, #6
+ add r2, r4, #0
+ bl MOD13_022174CC
+ str r4, [r6, #4]
+ b _02218214
+_022181B0:
+ add r0, r6, #0
+ add r0, #0x70
+ add r1, r5, #6
+ add r2, r4, #0
+ bl MOD13_022174CC
+ str r4, [r6, #4]
+ b _02218214
+_022181C0:
+ add r0, r6, #0
+ add r0, #0xb0
+ add r1, r5, #6
+ add r2, r4, #0
+ bl MOD13_022174CC
+ str r4, [r6, #4]
+ b _02218214
+_022181D0:
+ add r0, r6, #0
+ add r0, #0xf0
+ add r1, r5, #6
+ add r2, r4, #0
+ bl MOD13_022174CC
+ str r4, [r6, #4]
+ b _02218214
+_022181E0:
+ cmp r4, #0
+ beq _022181FA
+ sub r0, r4, #1
+ add r0, r5, r0
+ ldrb r0, [r0, #6]
+ cmp r0, #0
+ beq _022181FA
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022181FA:
+ add r0, r6, #0
+ add r0, #8
+ add r1, r5, #6
+ add r2, r4, #0
+ bl MOD13_022174CC
+ b _02218214
+_02218208:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218214:
+ ldrh r0, [r5, #4]
+ cmp r0, #0
+ beq _02218224
+ bl MOD13_02217380
+ add r1, r7, #6
+ add r5, r1, r0
+ b _022180D6
+_02218224:
+ mov r0, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_02218230
+MOD13_02218230: ; 0x02218230
+ push {r4, r5}
+ mov r5, #0
+ sub r2, r1, #1
+ add r3, r0, r2
+ add r4, r5, #0
+ cmp r1, #0
+ ble _0221824C
+_0221823E:
+ lsl r2, r5, #8
+ ldrb r0, [r3]
+ sub r3, r3, #1
+ add r5, r2, r0
+ add r4, r4, #1
+ cmp r4, r1
+ blt _0221823E
+_0221824C:
+ add r0, r5, #0
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD13_02218254
+MOD13_02218254: ; 0x02218254
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r6, r0, #0
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #0
+ ldr r2, _02218320 ; =0x00000104
+ bl MOD13_022174C0
+ add r4, r6, #0
+ ldr r7, _02218324 ; =0x02240B60
+_0221826A:
+ ldrh r0, [r4, #2]
+ bl MOD13_02217380
+ add r2, r0, #0
+ cmp r2, #0
+ bgt _02218282
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218282:
+ ldrb r0, [r4]
+ cmp r0, #6
+ bhi _022182FC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #8]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, pc
+ bx r0
+_02218296: ; jump table
+ .short _022182A4 - _02218296 + 1 ; case 0
+ .short _022182AE - _02218296 + 1 ; case 1
+ .short _022182BA - _02218296 + 1 ; case 2
+ .short _022182C6 - _02218296 + 1 ; case 3
+ .short _022182C6 - _02218296 + 1 ; case 4
+ .short _022182DC - _02218296 + 1 ; case 5
+ .short _022182EC - _02218296 + 1 ; case 6
+_022182A4:
+ add r0, r5, #0
+ add r1, r4, #6
+ bl MOD13_022174CC
+ b _02218308
+_022182AE:
+ add r0, r5, #0
+ add r0, #0x80
+ add r1, r4, #6
+ bl MOD13_022174CC
+ b _02218308
+_022182BA:
+ ldr r0, _02218328 ; =0x00000100
+ add r0, r5, r0
+ add r1, r4, #6
+ bl MOD13_022174CC
+ b _02218308
+_022182C6:
+ ldrb r0, [r4, #6]
+ bl MOD13_02217380
+ cmp r0, #0
+ bgt _02218308
+ mov r0, #1
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022182DC:
+ add r0, r4, #6
+ add r1, r2, #0
+ bl MOD13_02218230
+ bl MOD13_02217398
+ str r0, [r7, #0x10]
+ b _02218308
+_022182EC:
+ add r0, r4, #6
+ add r1, r2, #0
+ bl MOD13_02218230
+ bl MOD13_02217398
+ str r0, [r7, #0x14]
+ b _02218308
+_022182FC:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218308:
+ ldrh r0, [r4, #4]
+ cmp r0, #0
+ beq _02218316
+ bl MOD13_02217380
+ add r4, r6, r0
+ b _0221826A
+_02218316:
+ mov r0, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_02218320: .word 0x00000104
+_02218324: .word 0x02240B60
+_02218328: .word 0x00000100
+
+ thumb_func_start MOD13_0221832C
+MOD13_0221832C: ; 0x0221832C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r4, #0
+ ldr r0, _0221837C ; =0x0223F820
+ bl MOD13_0221736C
+ add r3, r0, #0
+ add r0, r5, #0
+ mov r1, #8
+ ldr r2, _0221837C ; =0x0223F820
+ bl MOD13_02217684
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #6
+ bl MOD13_022174DC
+ cmp r0, #0
+ beq _0221835A
+ lsl r0, r4, #0
+ mvn r4, r0
+ b _02218372
+_0221835A:
+ ldrh r0, [r6, #6]
+ bl MOD13_02217380
+ add r6, r0, #0
+ ldrh r0, [r5, #6]
+ bl MOD13_02217380
+ add r1, r6, #1
+ cmp r1, r0
+ beq _02218372
+ mov r0, #1
+ mvn r4, r0
+_02218372:
+ add r0, r4, #0
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+ nop
+_0221837C: .word 0x0223F820
+
+ thumb_func_start MOD13_02218380
+MOD13_02218380: ; 0x02218380
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r4, #0
+ add r6, r4, #0
+ ldr r3, _022183C0 ; =0x02240B4C
+_0221838A:
+ ldrb r2, [r3]
+ cmp r2, #0
+ beq _02218394
+ mov r5, #1
+ b _0221839C
+_02218394:
+ add r3, r3, #1
+ add r6, r6, #1
+ cmp r6, #6
+ blt _0221838A
+_0221839C:
+ cmp r5, #0
+ beq _022183B0
+ ldr r0, _022183C0 ; =0x02240B4C
+ mov r2, #6
+ bl MOD13_022174DC
+ cmp r0, #0
+ beq _022183B8
+ mov r4, #1
+ b _022183B8
+_022183B0:
+ ldr r1, _022183C4 ; =0x00001000
+ cmp r0, r1
+ beq _022183B8
+ mov r4, #2
+_022183B8:
+ add r0, r4, #0
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_022183C0: .word 0x02240B4C
+_022183C4: .word 0x00001000
+
+ thumb_func_start MOD13_022183C8
+MOD13_022183C8: ; 0x022183C8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x18
+ add r0, sp, #0xc
+ add r1, r5, #0
+ add r1, #0x10
+ mov r2, #8
+ bl MOD13_022174CC
+ ldr r0, _022184CC ; =0x0223F820
+ bl MOD13_0221736C
+ add r3, r0, #0
+ add r0, sp, #0xc
+ mov r1, #8
+ ldr r2, _022184CC ; =0x0223F820
+ bl MOD13_02217684
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0221840A
+ mov r0, #2
+ bl MOD13_02218BF4
+ mov r0, #0x63
+ mvn r0, r0
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221840A:
+ ldrh r0, [r5, #6]
+ bl MOD13_02217380
+ add r1, sp, #0xc
+ bl MOD13_02218380
+ cmp r0, #0
+ bne _022184C4
+ ldrh r0, [r5, #6]
+ bl MOD13_02217380
+ ldr r1, _022184D0 ; =0x00001000
+ cmp r0, r1
+ bne _02218430
+ ldr r0, _022184D4 ; =0x02240B4C
+ add r1, sp, #0xc
+ mov r2, #8
+ bl MOD13_022174CC
+_02218430:
+ ldrh r0, [r5, #0xc]
+ bl MOD13_02217380
+ mov r1, #0xf
+ and r0, r1
+ cmp r0, #0
+ bne _02218448
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218448:
+ ldrh r0, [r4]
+ bl MOD13_02217380
+ add r6, r0, #0
+ bl MOD13_022198B4
+ add r7, r0, #0
+ cmp r7, #0
+ bne _0221846A
+ mov r0, #2
+ bl MOD13_02218BF4
+ mov r0, #0x64
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221846A:
+ add r0, r4, #2
+ str r0, [sp]
+ ldr r0, _022184D4 ; =0x02240B4C
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ add r0, r4, #4
+ add r1, r7, #0
+ add r2, r6, #0
+ ldrb r3, [r5, #0xe]
+ bl MOD13_0221789C
+ cmp r0, #0
+ bge _022184A8
+ add r0, r7, #0
+ bl MOD13_022198A0
+ bl MOD13_02218BE8
+ cmp r0, #2
+ bne _0221849E
+ mov r0, #0x64
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221849E:
+ mov r0, #0xc8
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022184A8:
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ bl MOD13_022174CC
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ bl MOD13_022173D0
+ strh r0, [r5, #0xa]
+ add r0, r7, #0
+ bl MOD13_022198A0
+ mov r0, #0
+_022184C4:
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_022184CC: .word 0x0223F820
+_022184D0: .word 0x00001000
+_022184D4: .word 0x02240B4C
+
+ thumb_func_start MOD13_022184D8
+MOD13_022184D8: ; 0x022184D8
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r2, #0
+ cmp r6, #2
+ beq _022184EE
+ ldr r1, [r5]
+ add r1, r1, #1
+ str r1, [r5]
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+_022184EE:
+ add r4, r1, #0
+ add r4, #0x24
+ add r3, #0x10
+ add r0, r3, #0
+ add r1, #0xc
+ add r1, #0x10
+ bl MOD13_0221832C
+ cmp r0, #0
+ bge _02218510
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ add r0, r6, #0
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+_02218510:
+ ldrb r0, [r4]
+ cmp r0, #7
+ beq _02218524
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ add r0, r6, #0
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+_02218524:
+ ldrh r0, [r4, #2]
+ bl MOD13_02217380
+ cmp r0, #0
+ bne _0221853C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ add r0, r6, #0
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+_0221853C:
+ ldr r0, [r4, #4]
+ bl MOD13_02217398
+ cmp r0, #0
+ bne _0221854E
+ mov r0, #0x64
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+_0221854E:
+ ldr r0, [r4, #4]
+ bl MOD13_02217398
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ bne _0221856C
+ mov r0, #0x14
+ bl MOD13_02218BF4
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+_0221856C:
+ ldr r0, [r4, #4]
+ bl MOD13_02217398
+ mov r1, #2
+ mvn r1, r1
+ cmp r0, r1
+ bne _0221858A
+ mov r0, #0x15
+ bl MOD13_02218BF4
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+_0221858A:
+ mov r0, #0x18
+ bl MOD13_02218BF4
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_0221859C
+MOD13_0221859C: ; 0x0221859C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r6, r0, #0
+ add r5, r2, #0
+ cmp r6, #1
+ beq _022185B6
+ ldr r1, [r5]
+ add r1, r1, #1
+ str r1, [r5]
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022185B6:
+ add r7, r1, #0
+ add r7, #0xc
+ add r4, r1, #0
+ add r4, #0x24
+ add r3, #8
+ add r0, r3, #0
+ add r1, r7, #0
+ add r1, #0x10
+ bl MOD13_0221832C
+ cmp r0, #0
+ bge _022185DE
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ add r0, r6, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022185DE:
+ ldrh r0, [r4, #2]
+ bl MOD13_02217380
+ cmp r0, #0
+ bne _022185F8
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ add r0, r6, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022185F8:
+ ldrb r0, [r4]
+ cmp r0, #7
+ bne _0221863C
+ ldr r0, [r4, #4]
+ bl MOD13_02217398
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ bne _02218614
+ mov r0, #0x14
+ bl MOD13_02218BF4
+ b _02218630
+_02218614:
+ ldr r0, [r4, #4]
+ bl MOD13_02217398
+ mov r1, #2
+ mvn r1, r1
+ cmp r0, r1
+ bne _0221862A
+ mov r0, #0x15
+ bl MOD13_02218BF4
+ b _02218630
+_0221862A:
+ mov r0, #0x18
+ bl MOD13_02218BF4
+_02218630:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221863C:
+ ldr r0, _02218694 ; =0x02241260
+ mov r1, #0
+ ldr r2, _02218698 ; =0x000006A0
+ bl MOD13_022174C0
+ ldrh r0, [r7, #0xa]
+ bl MOD13_02217380
+ add r2, r0, #0
+ ldr r0, _0221869C ; =0x02240BE0
+ str r0, [sp]
+ mov r0, #0
+ add r1, r4, #0
+ ldr r3, _02218694 ; =0x02241260
+ bl MOD13_02217E94
+ cmp r0, #0
+ bge _02218670
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ add r0, r6, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218670:
+ ldr r0, _022186A0 ; =0x02240B60
+ ldr r1, [r0, #0xc]
+ ldr r0, [r0, #8]
+ and r1, r0
+ cmp r1, #0
+ bne _02218686
+ add r0, r6, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218686:
+ mov r0, #0
+ str r0, [r5]
+ mov r0, #2
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_02218694: .word 0x02241260
+_02218698: .word 0x000006A0
+_0221869C: .word 0x02240BE0
+_022186A0: .word 0x02240B60
+
+ thumb_func_start MOD13_022186A4
+MOD13_022186A4: ; 0x022186A4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r6, r0, #0
+ add r5, r2, #0
+ cmp r6, #0
+ beq _022186BE
+ ldr r1, [r5]
+ add r1, r1, #1
+ str r1, [r5]
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022186BE:
+ add r7, r1, #0
+ add r7, #0xc
+ add r4, r1, #0
+ add r4, #0x24
+ add r0, r3, #0
+ add r1, r7, #0
+ add r1, #0x10
+ bl MOD13_0221832C
+ cmp r0, #0
+ bge _022186E4
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ add r0, r6, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022186E4:
+ ldrh r0, [r4, #2]
+ bl MOD13_02217380
+ cmp r0, #0
+ bne _022186FE
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ add r0, r6, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022186FE:
+ ldrb r0, [r4]
+ cmp r0, #7
+ bne _02218744
+ add r5, r4, #4
+ ldr r0, [r4, #4]
+ bl MOD13_02217398
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ bne _0221871C
+ mov r0, #0x14
+ bl MOD13_02218BF4
+ b _02218738
+_0221871C:
+ ldr r0, [r5]
+ bl MOD13_02217398
+ mov r1, #2
+ mvn r1, r1
+ cmp r0, r1
+ bne _02218732
+ mov r0, #0x15
+ bl MOD13_02218BF4
+ b _02218738
+_02218732:
+ mov r0, #0x18
+ bl MOD13_02218BF4
+_02218738:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218744:
+ cmp r0, #1
+ beq _02218758
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ add r0, r6, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218758:
+ add r0, r4, #4
+ ldr r1, _022187AC ; =0x02240BE0
+ bl MOD13_02218254
+ cmp r0, #0
+ bge _0221878E
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ bne _0221877E
+ mov r0, #0x16
+ bl MOD13_02218BF4
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221877E:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ add r0, r6, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221878E:
+ ldrh r0, [r7, #0xc]
+ bl MOD13_02217380
+ bl MOD13_02217E84
+ ldr r1, _022187B0 ; =0x02240B34
+ str r0, [r1]
+ mov r0, #0
+ str r0, [r5]
+ mov r0, #1
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_022187AC: .word 0x02240BE0
+_022187B0: .word 0x02240B34
+
+ thumb_func_start MOD13_022187B4
+MOD13_022187B4: ; 0x022187B4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ str r3, [sp]
+ add r7, r6, #0
+ add r7, #0xc
+ ldrh r0, [r6, #0xc]
+ bl MOD13_02217380
+ cmp r0, #1
+ bhs _022187DE
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ add r0, r5, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022187DE:
+ ldrb r0, [r7, #0xf]
+ cmp r0, #0x11
+ beq _022187F4
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ add r0, r5, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022187F4:
+ add r0, r6, #0
+ add r0, #0xc
+ bl MOD13_022183C8
+ cmp r0, #0
+ ble _02218810
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ add r0, r5, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218810:
+ ldrh r0, [r7, #6]
+ bl MOD13_02217380
+ ldr r1, _02218864 ; =0x00001010
+ cmp r0, r1
+ beq _0221882A
+ ldr r1, _02218868 ; =0x00002010
+ cmp r0, r1
+ beq _0221883A
+ ldr r1, _0221886C ; =0x00003010
+ cmp r0, r1
+ beq _0221884A
+ b _02218858
+_0221882A:
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ ldr r3, [sp]
+ bl MOD13_022186A4
+ add r5, r0, #0
+ b _02218858
+_0221883A:
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ ldr r3, [sp]
+ bl MOD13_0221859C
+ add r5, r0, #0
+ b _02218858
+_0221884A:
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ ldr r3, [sp]
+ bl MOD13_022184D8
+ add r5, r0, #0
+_02218858:
+ add r0, r5, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_02218864: .word 0x00001010
+_02218868: .word 0x00002010
+_0221886C: .word 0x00003010
+
+ thumb_func_start MOD13_02218870
+MOD13_02218870: ; 0x02218870
+ push {lr}
+ sub sp, #4
+ mov r3, #0
+ mvn r1, r3
+ cmp r0, r1
+ bne _02218888
+ ldr r1, _022188A4 ; =0x0223F7C4
+ str r0, [r1]
+ add r0, r3, #0
+ add sp, #4
+ pop {r3}
+ bx r3
+_02218888:
+ ldr r1, _022188A4 ; =0x0223F7C4
+ ldr r2, [r1]
+ cmp r2, r0
+ beq _0221889C
+ str r0, [r1]
+ bl MOD13_022198C8
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221889C:
+ add r0, r3, #0
+ add sp, #4
+ pop {r3}
+ bx r3
+ .align 2, 0
+_022188A4: .word 0x0223F7C4
+
+ thumb_func_start MOD13_022188A8
+MOD13_022188A8: ; 0x022188A8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r6, r0, #0
+ add r5, r1, #0
+ add r7, r2, #0
+ mov r4, #0
+ cmp r6, #0
+ ble _022188D8
+_022188B8:
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #6
+ bl MOD13_022174CC
+ bl MOD13_022172F0
+ strh r0, [r5, #6]
+ ldrh r0, [r5, #6]
+ bl MOD13_022173D0
+ strh r0, [r5, #6]
+ add r5, #8
+ add r4, r4, #1
+ cmp r4, r6
+ blt _022188B8
+_022188D8:
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+
+ thumb_func_start MOD13_022188E0
+MOD13_022188E0: ; 0x022188E0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02218924 ; =0x0223F828
+ bl MOD13_0221736C
+ str r0, [r4]
+ add r0, r4, #4
+ ldr r1, _02218924 ; =0x0223F828
+ ldr r2, [r4]
+ bl MOD13_022174CC
+ mov r0, #1
+ str r0, [r4, #0x24]
+ ldr r0, _02218928 ; =0x0223F820
+ bl MOD13_0221736C
+ str r0, [r4, #0x28]
+ ldr r2, [r4, #0x28]
+ cmp r2, #0xd
+ bls _02218912
+ mov r0, #0
+ mvn r0, r0
+ pop {r4}
+ pop {r3}
+ bx r3
+_02218912:
+ add r4, #0x2c
+ add r0, r4, #0
+ ldr r1, _02218928 ; =0x0223F820
+ bl MOD13_022174CC
+ mov r0, #0
+ pop {r4}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_02218924: .word 0x0223F828
+_02218928: .word 0x0223F820
+
+ thumb_func_start MOD13_0221892C
+MOD13_0221892C: ; 0x0221892C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r4, #0
+ str r4, [sp, #4]
+ ldr r0, [r5]
+ str r0, [sp]
+ cmp r0, #0
+ bne _02218948
+ mov r0, #5
+ add sp, #0xc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218948:
+ cmp r0, #0x40
+ bls _02218950
+ mov r0, #0x40
+ str r0, [sp]
+_02218950:
+ mov r7, #0
+ ldr r0, [sp]
+ cmp r0, #0
+ ble _02218994
+ add r6, r5, #0
+ add r6, #8
+_0221895C:
+ ldr r1, [r5, #0x54]
+ mov r0, #1
+ and r1, r0
+ cmp r1, #0
+ beq _02218988
+ ldr r0, _022189B0 ; =0x0223F828
+ bl MOD13_0221736C
+ ldr r1, [r5, #4]
+ cmp r1, r0
+ bne _02218988
+ ldr r0, _022189B0 ; =0x0223F828
+ bl MOD13_0221736C
+ add r2, r0, #0
+ add r0, r6, #0
+ ldr r1, _022189B0 ; =0x0223F828
+ bl MOD13_022174DC
+ cmp r0, #0
+ bne _02218988
+ add r4, r4, #1
+_02218988:
+ add r5, #0x54
+ add r6, #0x54
+ add r7, r7, #1
+ ldr r0, [sp]
+ cmp r7, r0
+ blt _0221895C
+_02218994:
+ cmp r4, #1
+ ble _0221899C
+ mov r0, #4
+ str r0, [sp, #4]
+_0221899C:
+ cmp r4, #0
+ bne _022189A4
+ mov r0, #5
+ str r0, [sp, #4]
+_022189A4:
+ ldr r0, [sp, #4]
+ add sp, #0xc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_022189B0: .word 0x0223F828
+
+ thumb_func_start MOD13_022189B4
+MOD13_022189B4: ; 0x022189B4
+ mov r3, #0
+ cmp r1, #0
+ ble _022189D2
+_022189BA:
+ ldrb r2, [r0]
+ add r0, r0, #1
+ cmp r2, #0x20
+ blo _022189C6
+ cmp r2, #0x7f
+ bls _022189CC
+_022189C6:
+ mov r0, #0
+ mvn r0, r0
+ bx lr
+_022189CC:
+ add r3, r3, #1
+ cmp r3, r1
+ blt _022189BA
+_022189D2:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD13_022189D8
+MOD13_022189D8: ; 0x022189D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ ldr r0, _02218BC4 ; =0x00000117
+ add r5, r7, r0
+ ldr r4, _02218BC8 ; =0x02241268
+ ldr r6, _02218BCC ; =0x02241398
+ ldr r0, _02218BD0 ; =0x022414C8
+ str r0, [sp]
+ ldr r0, _02218BD4 ; =0x02241538
+ str r0, [sp, #4]
+ cmp r5, #0
+ bne _022189FE
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022189FE:
+ ldr r0, _02218BD8 ; =0x02240B60
+ ldr r1, [r0, #8]
+ ldr r0, [r0, #0xc]
+ and r1, r0
+ strh r1, [r7]
+ add r0, r5, #0
+ mov r1, #0
+ ldr r2, _02218BDC ; =0x00000154
+ bl MOD13_022174C0
+ ldrh r1, [r7]
+ mov r0, #1
+ and r1, r0
+ cmp r1, #0
+ beq _02218A7E
+ add r0, r5, #0
+ add r1, r4, #0
+ add r1, #0x30
+ ldr r2, [r4, #4]
+ bl MOD13_022174CC
+ add r0, r5, #6
+ add r1, r4, #0
+ add r1, #0x70
+ ldr r2, [r4, #4]
+ bl MOD13_022174CC
+ add r0, r5, #0
+ add r0, #0xc
+ add r1, r4, #0
+ add r1, #0xb0
+ ldr r2, [r4, #4]
+ bl MOD13_022174CC
+ add r0, r5, #0
+ add r0, #0x12
+ add r1, r4, #0
+ add r1, #0xf0
+ ldr r2, [r4, #4]
+ bl MOD13_022174CC
+ add r0, r4, #0
+ add r0, #8
+ bl MOD13_0221736C
+ add r1, r0, #0
+ add r0, r4, #0
+ add r0, #8
+ bl MOD13_022189B4
+ cmp r0, #0
+ beq _02218A68
+ b _02218BAE
+_02218A68:
+ add r0, r4, #0
+ add r0, #8
+ bl MOD13_0221736C
+ add r2, r0, #0
+ add r0, r5, #0
+ add r0, #0x18
+ add r4, #8
+ add r1, r4, #0
+ bl MOD13_022174CC
+_02218A7E:
+ ldrh r1, [r7]
+ mov r0, #2
+ and r1, r0
+ cmp r1, #0
+ beq _02218AEC
+ add r0, r5, #0
+ add r0, #0x39
+ add r1, r6, #0
+ add r1, #0x30
+ ldr r2, [r6, #4]
+ bl MOD13_022174CC
+ add r0, r5, #0
+ add r0, #0x47
+ add r1, r6, #0
+ add r1, #0x70
+ ldr r2, [r6, #4]
+ bl MOD13_022174CC
+ add r0, r5, #0
+ add r0, #0x55
+ add r1, r6, #0
+ add r1, #0xb0
+ ldr r2, [r6, #4]
+ bl MOD13_022174CC
+ add r0, r5, #0
+ add r0, #0x63
+ add r1, r6, #0
+ add r1, #0xf0
+ ldr r2, [r6, #4]
+ bl MOD13_022174CC
+ add r0, r6, #0
+ add r0, #8
+ bl MOD13_0221736C
+ add r1, r0, #0
+ add r0, r6, #0
+ add r0, #8
+ bl MOD13_022189B4
+ cmp r0, #0
+ bne _02218BAE
+ add r0, r6, #0
+ add r0, #8
+ bl MOD13_0221736C
+ add r2, r0, #0
+ add r0, r5, #0
+ add r0, #0x71
+ add r6, #8
+ add r1, r6, #0
+ bl MOD13_022174CC
+_02218AEC:
+ ldrh r1, [r7]
+ mov r0, #4
+ and r1, r0
+ cmp r1, #0
+ beq _02218B46
+ ldr r0, [sp]
+ add r0, #0x30
+ ldr r1, [sp]
+ ldr r1, [r1, #4]
+ sub r1, r1, #1
+ bl MOD13_022189B4
+ cmp r0, #0
+ bne _02218BAE
+ add r0, r5, #0
+ add r0, #0x92
+ ldr r1, [sp]
+ add r1, #0x30
+ ldr r2, [sp]
+ ldr r2, [r2, #4]
+ bl MOD13_022174CC
+ ldr r0, [sp]
+ add r0, #8
+ bl MOD13_0221736C
+ add r1, r0, #0
+ ldr r0, [sp]
+ add r0, #8
+ bl MOD13_022189B4
+ cmp r0, #0
+ bne _02218BAE
+ ldr r0, [sp]
+ add r0, #8
+ bl MOD13_0221736C
+ add r2, r0, #0
+ add r0, r5, #0
+ add r0, #0xd2
+ ldr r1, [sp]
+ add r1, #8
+ str r1, [sp]
+ bl MOD13_022174CC
+_02218B46:
+ ldrh r1, [r7]
+ mov r0, #8
+ and r1, r0
+ cmp r1, #0
+ beq _02218BA0
+ ldr r0, [sp, #4]
+ add r0, #0x30
+ ldr r1, [sp, #4]
+ ldr r1, [r1, #4]
+ sub r1, r1, #1
+ bl MOD13_022189B4
+ cmp r0, #0
+ bne _02218BAE
+ add r0, r5, #0
+ add r0, #0xf3
+ ldr r1, [sp, #4]
+ add r1, #0x30
+ ldr r2, [sp, #4]
+ ldr r2, [r2, #4]
+ bl MOD13_022174CC
+ ldr r0, [sp, #4]
+ add r0, #8
+ bl MOD13_0221736C
+ add r1, r0, #0
+ ldr r0, [sp, #4]
+ add r0, #8
+ bl MOD13_022189B4
+ cmp r0, #0
+ bne _02218BAE
+ ldr r0, [sp, #4]
+ add r0, #8
+ bl MOD13_0221736C
+ add r2, r0, #0
+ ldr r0, _02218BE0 ; =0x00000133
+ add r0, r5, r0
+ ldr r1, [sp, #4]
+ add r1, #8
+ str r1, [sp, #4]
+ bl MOD13_022174CC
+_02218BA0:
+ mov r0, #0
+ ldr r1, _02218BE4 ; =0x00000116
+ strb r0, [r7, r1]
+ add sp, #0xc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218BAE:
+ add r0, r5, #0
+ mov r1, #0
+ ldr r2, _02218BDC ; =0x00000154
+ bl MOD13_022174C0
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_02218BC4: .word 0x00000117
+_02218BC8: .word 0x02241268
+_02218BCC: .word 0x02241398
+_02218BD0: .word 0x022414C8
+_02218BD4: .word 0x02241538
+_02218BD8: .word 0x02240B60
+_02218BDC: .word 0x00000154
+_02218BE0: .word 0x00000133
+_02218BE4: .word 0x00000116
+
+ thumb_func_start MOD13_02218BE8
+MOD13_02218BE8: ; 0x02218BE8
+ ldr r0, _02218BF0 ; =0x02240B44
+ ldr r0, [r0]
+ bx lr
+ nop
+_02218BF0: .word 0x02240B44
+
+ thumb_func_start MOD13_02218BF4
+MOD13_02218BF4: ; 0x02218BF4
+ ldr r1, _02218BFC ; =0x02240B44
+ str r0, [r1]
+ bx lr
+ nop
+_02218BFC: .word 0x02240B44
+
+ thumb_func_start MOD13_02218C00
+MOD13_02218C00: ; 0x02218C00
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02218C44 ; =0x02240B4C
+ mov r1, #0
+ mov r2, #8
+ bl MOD13_022174C0
+ mov r1, #1
+ ldr r0, _02218C48 ; =0x02240B44
+ str r1, [r0]
+ ldr r0, _02218C4C ; =0x02240B60
+ mov r1, #0
+ mov r2, #0x1c
+ bl MOD13_022174C0
+ add r0, r4, #6
+ ldr r1, _02218C4C ; =0x02240B60
+ str r0, [r1]
+ ldrh r0, [r4, #4]
+ str r0, [r1, #4]
+ ldrh r2, [r4]
+ mov r0, #0xf
+ and r2, r0
+ str r2, [r1, #8]
+ ldrb r0, [r4, #2]
+ strb r0, [r1, #0x19]
+ mov r2, #0
+ str r2, [r1, #0xc]
+ ldr r0, _02218C50 ; =0xC0A80B01
+ str r0, [r1, #0x10]
+ strb r2, [r1, #0x18]
+ pop {r4}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_02218C44: .word 0x02240B4C
+_02218C48: .word 0x02240B44
+_02218C4C: .word 0x02240B60
+_02218C50: .word 0xC0A80B01
+
+ thumb_func_start MOD13_02218C54
+MOD13_02218C54: ; 0x02218C54
+ push {lr}
+ sub sp, #4
+ ldr r0, _02218C84 ; =0x02240B40
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02218C6A
+ bl MOD13_022198A0
+ mov r1, #0
+ ldr r0, _02218C84 ; =0x02240B40
+ str r1, [r0]
+_02218C6A:
+ ldr r0, _02218C88 ; =0x02240B38
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02218C7C
+ bl MOD13_022198A0
+ mov r1, #0
+ ldr r0, _02218C88 ; =0x02240B38
+ str r1, [r0]
+_02218C7C:
+ add sp, #4
+ pop {r3}
+ bx r3
+ nop
+_02218C84: .word 0x02240B40
+_02218C88: .word 0x02240B38
+
+ thumb_func_start MOD13_02218C8C
+MOD13_02218C8C: ; 0x02218C8C
+ add r3, r0, #0
+ and r3, r1
+ mvn r2, r1
+ bic r0, r1
+ add r1, r0, #1
+ add r0, r3, #0
+ orr r0, r1
+ add r1, r3, #0
+ orr r1, r2
+ cmp r0, r1
+ blo _02218CA8
+ mov r1, #1
+ add r0, r3, #0
+ orr r0, r1
+_02218CA8:
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD13_02218CAC
+MOD13_02218CAC: ; 0x02218CAC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xcc
+ str r0, [sp, #8]
+ ldr r1, _02219044 ; =0x0223F7C0
+ ldrh r2, [r1]
+ add r0, sp, #0x30
+ strh r2, [r0]
+ ldrh r1, [r1, #2]
+ strh r1, [r0, #2]
+ add r1, sp, #0x34
+ mov r0, #0
+ str r0, [sp, #0x14]
+ strh r0, [r1]
+ strh r0, [r1, #2]
+ mov r0, #1
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #0x3c]
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x64
+ ldr r1, [sp, #0x14]
+ mov r2, #0x18
+ bl MOD13_022174C0
+ ldr r1, _02219048 ; =0x00000106
+ ldr r0, [sp, #8]
+ ldrsh r0, [r0, r1]
+ add r1, sp, #0x30
+ strh r0, [r1]
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ mvn r0, r0
+ cmp r2, r0
+ bne _02218CF4
+ mov r0, #0xa
+ strh r0, [r1]
+_02218CF4:
+ ldr r1, _0221904C ; =0x0000010A
+ ldr r0, [sp, #8]
+ ldrsh r0, [r0, r1]
+ add r1, sp, #0x30
+ strh r0, [r1, #4]
+ mov r0, #4
+ ldrsh r2, [r1, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r2, r0
+ bne _02218D0E
+ mov r0, #0xa
+ strh r0, [r1, #4]
+_02218D0E:
+ ldr r1, _02219050 ; =0x00000108
+ ldr r0, [sp, #8]
+ ldrsh r0, [r0, r1]
+ add r1, sp, #0x30
+ strh r0, [r1, #2]
+ mov r0, #2
+ ldrsh r2, [r1, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r2, r0
+ bne _02218D28
+ mov r0, #0x64
+ strh r0, [r1, #2]
+_02218D28:
+ ldr r1, _02219054 ; =0x0000010C
+ ldr r0, [sp, #8]
+ ldrsh r0, [r0, r1]
+ add r1, sp, #0x30
+ strh r0, [r1, #6]
+ mov r0, #6
+ ldrsh r2, [r1, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r2, r0
+ bne _02218D42
+ mov r0, #0x64
+ strh r0, [r1, #6]
+_02218D42:
+ ldr r1, _02219058 ; =0x0000010E
+ ldr r0, [sp, #8]
+ ldrsh r0, [r0, r1]
+ str r0, [sp, #0x10]
+ mov r0, #0
+ mvn r1, r0
+ ldr r0, [sp, #0x10]
+ cmp r0, r1
+ bne _02218D58
+ ldr r0, _0221905C ; =0x000007D0
+ str r0, [sp, #0x10]
+_02218D58:
+ ldr r0, [sp, #8]
+ bl MOD13_02218C00
+ ldr r0, _02219060 ; =0x02240B60
+ ldr r1, [r0, #8]
+ mov r0, #1
+ and r1, r0
+ cmp r1, #1
+ beq _02218D88
+ mov r0, #0x13
+ bl MOD13_02218BF4
+ mov r2, #0xf
+ ldr r1, _02219064 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218D88:
+ mov r4, #0
+ add r0, r4, #0
+ bl MOD13_02218870
+ mov r1, #2
+ add r0, sp, #0x30
+ ldrsh r7, [r0, r1]
+ lsl r6, r4, #0
+ ldr r5, _02219068 ; =0x02240B38
+_02218D9A:
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _02218DA6
+ bl MOD13_022198A0
+ str r6, [r5]
+_02218DA6:
+ add r0, r5, #0
+ bl MOD13_02219AD0
+ mvn r1, r6
+ cmp r0, r1
+ bne _02218DCA
+ mov r2, #0xf
+ ldr r1, _02219064 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218DCA:
+ ldr r0, [r5]
+ bl MOD13_0221892C
+ cmp r0, #4
+ bne _02218DEC
+ mov r2, #2
+ ldr r1, _02219064 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218DEC:
+ cmp r0, #0
+ beq _02218E1E
+ add r0, sp, #0x30
+ ldrsh r0, [r0, r6]
+ cmp r4, r0
+ blt _02218E10
+ mov r2, #1
+ ldr r1, _02219064 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218E10:
+ add r0, r7, #0
+ bl MOD13_022198E4
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _02218D9A
+_02218E1E:
+ mov r0, #1
+ bl MOD13_02218870
+ add r0, sp, #0x7c
+ mov r1, #0
+ mov r2, #0x3c
+ bl MOD13_022174C0
+ add r0, sp, #0x7c
+ bl MOD13_022188E0
+ cmp r0, #0
+ beq _02218E50
+ mov r2, #0xf
+ ldr r1, _02219064 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218E50:
+ mov r0, #0x58
+ bl MOD13_022198B4
+ ldr r1, _0221906C ; =0x02240B40
+ str r0, [r1]
+ cmp r0, #0
+ bne _02218E76
+ mov r2, #0xf
+ ldr r1, _02219064 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218E76:
+ mov r1, #0
+ mov r2, #0x58
+ bl MOD13_022174C0
+ mov r4, #0
+ add r0, sp, #0x30
+ ldrsh r0, [r0, r4]
+ cmp r0, #0
+ ble _02218EDA
+ add r6, r4, #0
+ add r5, r4, #0
+_02218E8C:
+ add r0, sp, #0x7c
+ ldr r1, _0221906C ; =0x02240B40
+ ldr r1, [r1]
+ bl MOD13_022198EC
+ mvn r1, r5
+ cmp r0, r1
+ bne _02218EB4
+ mov r2, #0xf
+ ldr r1, _02219064 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218EB4:
+ cmp r0, #0
+ bne _02218EC6
+ cmp r0, #0
+ bne _02218EDA
+ ldr r0, _0221906C ; =0x02240B40
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, #1
+ beq _02218EDA
+_02218EC6:
+ add r0, r7, #0
+ bl MOD13_022198E4
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ add r0, sp, #0x30
+ ldrsh r0, [r0, r6]
+ cmp r4, r0
+ blt _02218E8C
+_02218EDA:
+ add r1, sp, #0x30
+ mov r0, #0
+ ldrsh r0, [r1, r0]
+ cmp r4, r0
+ bne _02218EFC
+ mov r2, #0xf
+ ldr r1, _02219064 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218EFC:
+ ldr r0, _02219070 ; =0xC0A80B65
+ mov r1, #0xff
+ mvn r1, r1
+ add r2, r0, #0
+ bl MOD13_02217530
+ cmp r0, #0
+ beq _02218F2A
+ mov r0, #0xc
+ bl MOD13_02218BF4
+ mov r2, #0xf
+ ldr r1, _02219064 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218F2A:
+ bl MOD13_02218C54
+ mov r0, #3
+ add r1, sp, #0x64
+ ldr r3, _02219074 ; =0x00000110
+ ldr r2, [sp, #8]
+ add r2, r2, r3
+ bl MOD13_022188A8
+ mov r0, #2
+ add r1, r0, #0
+ mov r2, #0
+ bl MOD13_02217434
+ ldr r1, _02219078 ; =0x0223F7BC
+ str r0, [r1]
+ cmp r0, #0
+ bge _02218F66
+ mov r2, #0xf
+ ldr r1, _02219064 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218F66:
+ mov r1, #4
+ str r1, [sp]
+ ldr r1, _0221907C ; =0x0000FFFF
+ mov r2, #1
+ add r3, sp, #0x38
+ bl MOD13_0221743C
+ cmp r0, #0
+ bge _02218F96
+ mov r0, #0xb
+ bl MOD13_02218BF4
+ mov r2, #0xf
+ ldr r1, _02219064 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218F96:
+ add r0, sp, #0x5c
+ mov r1, #0
+ mov r2, #8
+ bl MOD13_022174C0
+ mov r1, #2
+ add r0, sp, #0x5c
+ strb r1, [r0, #1]
+ ldr r0, _02219070 ; =0xC0A80B65
+ bl MOD13_022173E8
+ str r0, [sp, #0x60]
+ ldr r0, _02219080 ; =0x00005790
+ bl MOD13_022173D0
+ add r1, sp, #0x30
+ strh r0, [r1, #0x2e]
+ ldr r0, _02219078 ; =0x0223F7BC
+ ldr r0, [r0]
+ add r1, sp, #0x5c
+ mov r2, #8
+ bl MOD13_02217428
+ cmp r0, #0
+ bge _02218FE0
+ mov r2, #0xf
+ ldr r1, _02219064 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02218FE0:
+ mov r5, #0
+ ldr r6, _02219068 ; =0x02240B38
+ mvn r0, r5
+ str r0, [sp, #0x28]
+_02218FE8:
+ ldr r0, _02219084 ; =0x02240B48
+ ldr r0, [r0]
+ str r0, [sp, #0x20]
+ add r0, sp, #0xb8
+ add r1, r5, #0
+ mov r2, #0x14
+ bl MOD13_022174C0
+ ldr r0, _02219070 ; =0xC0A80B65
+ str r0, [sp, #0xc8]
+ ldr r0, _02219088 ; =0xC0A80B01
+ str r0, [sp, #0xb8]
+ ldr r0, [sp, #0x10]
+ ldr r1, _0221908C ; =0x000003E8
+ bl _s32_div_f
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x10]
+ ldr r1, _0221908C ; =0x000003E8
+ bl _s32_div_f
+ str r1, [sp, #0xc]
+ ldr r0, _0221908C ; =0x000003E8
+ mul r1, r0
+ str r1, [sp, #0xc]
+_0221901A:
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ beq _02219022
+ b _0221930A
+_02219022:
+ ldr r1, _02219060 ; =0x02240B60
+ mov r0, #0x18
+ ldrsb r0, [r1, r0]
+ cmp r0, #1
+ bne _0221902E
+ b _0221930A
+_0221902E:
+ ldr r0, _02219078 ; =0x0223F7BC
+ ldr r0, [r0]
+ mvn r1, r5
+ cmp r0, r1
+ beq _0221903C
+ bl MOD13_02217420
+_0221903C:
+ ldr r1, [sp, #0x28]
+ ldr r0, _02219078 ; =0x0223F7BC
+ b _02219090
+ nop
+_02219044: .word 0x0223F7C0
+_02219048: .word 0x00000106
+_0221904C: .word 0x0000010A
+_02219050: .word 0x00000108
+_02219054: .word 0x0000010C
+_02219058: .word 0x0000010E
+_0221905C: .word 0x000007D0
+_02219060: .word 0x02240B60
+_02219064: .word 0x00000116
+_02219068: .word 0x02240B38
+_0221906C: .word 0x02240B40
+_02219070: .word 0xC0A80B65
+_02219074: .word 0x00000110
+_02219078: .word 0x0223F7BC
+_0221907C: .word 0x0000FFFF
+_02219080: .word 0x00005790
+_02219084: .word 0x02240B48
+_02219088: .word 0xC0A80B01
+_0221908C: .word 0x000003E8
+_02219090:
+ str r1, [r0]
+ bl MOD13_02217504
+ cmp r0, #0
+ beq _022190B2
+ mov r2, #0xf
+ ldr r1, _02219414 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022190B2:
+ mov r0, #0x58
+ bl MOD13_022198B4
+ str r0, [r6]
+ cmp r0, #0
+ bne _022190D6
+ mov r2, #0xf
+ ldr r1, _02219414 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022190D6:
+ ldr r0, [r6]
+ cmp r0, #0
+ beq _022190E2
+ bl MOD13_022198A0
+ str r5, [r6]
+_022190E2:
+ add r0, r6, #0
+ bl MOD13_02219AD0
+ str r0, [sp, #0x2c]
+ mvn r1, r5
+ cmp r0, r1
+ bne _02219108
+ mov r2, #0xf
+ ldr r1, _02219414 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219108:
+ ldr r0, [r6]
+ bl MOD13_0221892C
+ cmp r0, #4
+ bne _0221912A
+ mov r2, #2
+ ldr r1, _02219414 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221912A:
+ cmp r0, #0
+ beq _0221915C
+ add r0, sp, #0x30
+ ldrsh r0, [r0, r5]
+ cmp r4, r0
+ blt _0221914E
+ mov r2, #1
+ ldr r1, _02219414 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221914E:
+ add r0, r7, #0
+ bl MOD13_022198E4
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _022190D6
+_0221915C:
+ mvn r1, r5
+ ldr r0, [sp, #0x2c]
+ cmp r0, r1
+ bne _0221917C
+ mov r2, #0xf
+ ldr r1, _02219414 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221917C:
+ mov r0, #0x58
+ bl MOD13_022198B4
+ ldr r1, _02219418 ; =0x02240B40
+ str r0, [r1]
+ cmp r0, #0
+ bne _022191A2
+ mov r2, #0xf
+ ldr r1, _02219414 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022191A2:
+ add r1, r5, #0
+ mov r2, #0x58
+ bl MOD13_022174C0
+ add r4, r5, #0
+ add r0, sp, #0x30
+ ldrsh r0, [r0, r5]
+ cmp r0, #0
+ ble _02219202
+_022191B4:
+ add r0, sp, #0x7c
+ ldr r1, _02219418 ; =0x02240B40
+ ldr r1, [r1]
+ bl MOD13_022198EC
+ mvn r1, r5
+ cmp r0, r1
+ bne _022191DC
+ mov r2, #0xf
+ ldr r1, _02219414 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022191DC:
+ cmp r0, #0
+ bne _022191EE
+ cmp r0, #0
+ bne _02219202
+ ldr r0, _02219418 ; =0x02240B40
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, #1
+ beq _02219202
+_022191EE:
+ add r0, r7, #0
+ bl MOD13_022198E4
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ add r0, sp, #0x30
+ ldrsh r0, [r0, r5]
+ cmp r4, r0
+ blt _022191B4
+_02219202:
+ add r0, sp, #0x30
+ ldrsh r0, [r0, r5]
+ cmp r4, r0
+ bne _02219222
+ mov r2, #0xf
+ ldr r1, _02219414 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219222:
+ ldr r0, _0221941C ; =0x02240B60
+ ldr r0, [r0, #0x10]
+ ldr r1, _0221941C ; =0x02240B60
+ ldr r1, [r1, #0x14]
+ bl MOD13_02218C8C
+ str r0, [sp, #0x1c]
+ ldr r1, _0221941C ; =0x02240B60
+ ldr r1, [r1, #0x14]
+ lsl r2, r0, #0
+ bl MOD13_02217530
+ cmp r0, #0
+ beq _0221925C
+ mov r0, #0xc
+ bl MOD13_02218BF4
+ mov r2, #0xf
+ ldr r1, _02219414 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221925C:
+ mov r1, #1
+ ldr r0, _0221941C ; =0x02240B60
+ strb r1, [r0, #0x18]
+ bl MOD13_02218C54
+ mov r0, #2
+ lsl r1, r0, #0
+ add r2, r5, #0
+ bl MOD13_02217434
+ ldr r1, _02219420 ; =0x0223F7BC
+ str r0, [r1]
+ cmp r0, #0
+ bge _02219290
+ mov r2, #0xf
+ ldr r1, _02219414 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219290:
+ mov r1, #4
+ str r1, [sp]
+ ldr r1, _02219424 ; =0x0000FFFF
+ mov r2, #1
+ add r3, sp, #0x38
+ bl MOD13_0221743C
+ cmp r0, #0
+ bge _022192C0
+ mov r0, #0xb
+ bl MOD13_02218BF4
+ mov r2, #0xf
+ ldr r1, _02219414 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022192C0:
+ add r0, sp, #0x5c
+ add r1, r5, #0
+ mov r2, #8
+ bl MOD13_022174C0
+ mov r1, #2
+ add r0, sp, #0x5c
+ strb r1, [r0, #1]
+ ldr r0, [sp, #0x1c]
+ bl MOD13_022173E8
+ str r0, [sp, #0x60]
+ ldr r0, _02219428 ; =0x00005790
+ bl MOD13_022173D0
+ add r1, sp, #0x30
+ strh r0, [r1, #0x2e]
+ ldr r0, _02219420 ; =0x0223F7BC
+ ldr r0, [r0]
+ add r1, sp, #0x5c
+ mov r2, #8
+ bl MOD13_02217428
+ cmp r0, #0
+ bge _0221930A
+ mov r2, #0xf
+ ldr r1, _02219414 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221930A:
+ ldr r0, [sp, #0x14]
+ add r1, sp, #0xb8
+ add r2, sp, #0x64
+ ldr r3, _02219420 ; =0x0223F7BC
+ ldr r3, [r3]
+ bl MOD13_02217E20
+ mvn r1, r5
+ cmp r0, r1
+ bne _02219340
+ ldr r1, _0221942C ; =0x00001000
+ ldr r0, [sp, #0x14]
+ add r0, r0, r1
+ bl MOD13_02218BF4
+ mov r2, #0xf
+ ldr r1, _02219414 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219340:
+ ldr r0, [sp, #0x20]
+ add r1, r5, #0
+ ldr r2, _02219430 ; =0x000005F8
+ bl MOD13_022174C0
+ add r0, sp, #0x4c
+ bl MOD13_022172E4
+ ldr r0, _02219420 ; =0x0223F7BC
+ ldr r0, [r0]
+ add r1, sp, #0x4c
+ bl MOD13_022172DC
+ ldr r0, [sp, #0x24]
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0xc]
+ str r0, [sp, #0x58]
+ add r0, sp, #0x54
+ str r0, [sp]
+ ldr r0, _02219420 ; =0x0223F7BC
+ ldr r0, [r0]
+ add r0, r0, #1
+ add r1, sp, #0x4c
+ add r2, r5, #0
+ add r3, r5, #0
+ bl MOD13_02217458
+ cmp r0, #0
+ bgt _022193BA
+ ldr r0, [sp, #0x3c]
+ add r2, r0, #1
+ str r2, [sp, #0x3c]
+ add r1, sp, #0x30
+ mov r0, #4
+ ldrsh r0, [r1, r0]
+ cmp r2, r0
+ ble _022193B0
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ bne _02219398
+ mov r0, #0xf
+ bl MOD13_02218BF4
+ b _022193AA
+_02219398:
+ cmp r0, #1
+ bne _022193A4
+ mov r0, #0x10
+ bl MOD13_02218BF4
+ b _022193AA
+_022193A4:
+ mov r0, #0x11
+ bl MOD13_02218BF4
+_022193AA:
+ mov r0, #0
+ mvn r4, r0
+ b _022196C6
+_022193B0:
+ mov r0, #6
+ ldrsh r0, [r1, r0]
+ bl MOD13_022198E4
+ b _0221901A
+_022193BA:
+ mov r0, #8
+ str r0, [sp, #0x48]
+ add r0, sp, #0x40
+ str r0, [sp]
+ add r0, sp, #0x48
+ str r0, [sp, #4]
+ ldr r0, _02219420 ; =0x0223F7BC
+ ldr r0, [r0]
+ ldr r1, [sp, #0x20]
+ add r1, #0xc
+ ldr r2, _02219434 ; =0x000005DC
+ add r3, r5, #0
+ bl MOD13_022174A4
+ add r2, r0, #0
+ ldr r0, _02219420 ; =0x0223F7BC
+ ldr r1, [r0]
+ ldr r0, [sp, #0x20]
+ str r1, [r0]
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ bl MOD13_02217380
+ ldr r1, [sp, #0x20]
+ str r0, [r1, #4]
+ ldr r0, _02219420 ; =0x0223F7BC
+ ldr r0, [r0]
+ str r0, [sp]
+ ldr r0, [sp, #0x14]
+ add r2, sp, #0x3c
+ add r3, sp, #0x64
+ bl MOD13_022187B4
+ str r0, [sp, #0x18]
+ cmp r0, #0x64
+ bne _02219406
+ mov r4, #0
+ b _022196C6
+_02219406:
+ mvn r1, r5
+ cmp r0, r1
+ bne _02219438
+ mov r0, #0
+ mvn r4, r0
+ b _022196C6
+ nop
+_02219414: .word 0x00000116
+_02219418: .word 0x02240B40
+_0221941C: .word 0x02240B60
+_02219420: .word 0x0223F7BC
+_02219424: .word 0x0000FFFF
+_02219428: .word 0x00005790
+_0221942C: .word 0x00001000
+_02219430: .word 0x000005F8
+_02219434: .word 0x000005DC
+_02219438:
+ ldr r1, [sp, #0x14]
+ cmp r1, r0
+ bne _02219440
+ b _02219688
+_02219440:
+ cmp r0, #2
+ beq _02219446
+ b _02219682
+_02219446:
+ ldr r0, _02219780 ; =0x0223F7BC
+ ldr r0, [r0]
+ mvn r1, r5
+ cmp r0, r1
+ beq _02219454
+ bl MOD13_02217420
+_02219454:
+ ldr r1, [sp, #0x28]
+ ldr r0, _02219780 ; =0x0223F7BC
+ str r1, [r0]
+ bl MOD13_02217504
+ cmp r0, #0
+ beq _0221947A
+ mov r2, #0xf
+ ldr r1, _02219784 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221947A:
+ add r4, r5, #0
+ mov r0, #4
+ bl MOD13_02218870
+_02219482:
+ ldr r0, [r6]
+ cmp r0, #0
+ beq _0221948E
+ bl MOD13_022198A0
+ str r5, [r6]
+_0221948E:
+ add r0, r6, #0
+ bl MOD13_02219AD0
+ mvn r1, r5
+ cmp r0, r1
+ bne _022194B2
+ mov r2, #0xf
+ ldr r1, _02219784 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022194B2:
+ ldr r0, [r6]
+ bl MOD13_0221892C
+ cmp r0, #4
+ bne _022194D4
+ mov r2, #2
+ ldr r1, _02219784 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022194D4:
+ cmp r0, #0
+ beq _02219506
+ add r0, sp, #0x30
+ ldrsh r0, [r0, r5]
+ cmp r4, r0
+ blt _022194F8
+ mov r2, #1
+ ldr r1, _02219784 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022194F8:
+ add r0, r7, #0
+ bl MOD13_022198E4
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _02219482
+_02219506:
+ mov r0, #0x58
+ bl MOD13_022198B4
+ ldr r1, _02219788 ; =0x02240B40
+ str r0, [r1]
+ cmp r0, #0
+ bne _0221952C
+ mov r2, #0xf
+ ldr r1, _02219784 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221952C:
+ add r1, r5, #0
+ mov r2, #0x58
+ bl MOD13_022174C0
+ add r4, r5, #0
+ add r0, sp, #0x30
+ ldrsh r0, [r0, r5]
+ cmp r0, #0
+ ble _0221958C
+_0221953E:
+ add r0, sp, #0x7c
+ ldr r1, _02219788 ; =0x02240B40
+ ldr r1, [r1]
+ bl MOD13_022198EC
+ mvn r1, r5
+ cmp r0, r1
+ bne _02219566
+ mov r2, #0xf
+ ldr r1, _02219784 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219566:
+ cmp r0, #0
+ bne _02219578
+ cmp r0, #0
+ bne _0221958C
+ ldr r0, _02219788 ; =0x02240B40
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, #1
+ beq _0221958C
+_02219578:
+ add r0, r7, #0
+ bl MOD13_022198E4
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ add r0, sp, #0x30
+ ldrsh r0, [r0, r5]
+ cmp r4, r0
+ blt _0221953E
+_0221958C:
+ add r0, sp, #0x30
+ ldrsh r0, [r0, r5]
+ cmp r4, r0
+ bne _022195AC
+ mov r2, #0xf
+ ldr r1, _02219784 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022195AC:
+ ldr r0, [sp, #0x1c]
+ ldr r1, _0221978C ; =0x02240B60
+ ldr r1, [r1, #0x14]
+ lsl r2, r0, #0
+ bl MOD13_02217530
+ cmp r0, #0
+ beq _022195DA
+ mov r0, #0xc
+ bl MOD13_02218BF4
+ mov r2, #0xf
+ ldr r1, _02219784 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022195DA:
+ bl MOD13_02218C54
+ mov r0, #2
+ lsl r1, r0, #0
+ add r2, r5, #0
+ bl MOD13_02217434
+ ldr r1, _02219780 ; =0x0223F7BC
+ str r0, [r1]
+ cmp r0, #0
+ bge _02219608
+ mov r2, #0xf
+ ldr r1, _02219784 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219608:
+ mov r1, #4
+ str r1, [sp]
+ ldr r1, _02219790 ; =0x0000FFFF
+ mov r2, #1
+ add r3, sp, #0x38
+ bl MOD13_0221743C
+ cmp r0, #0
+ bge _02219638
+ mov r0, #0xb
+ bl MOD13_02218BF4
+ mov r2, #0xf
+ ldr r1, _02219784 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219638:
+ add r0, sp, #0x5c
+ add r1, r5, #0
+ mov r2, #8
+ bl MOD13_022174C0
+ mov r1, #2
+ add r0, sp, #0x5c
+ strb r1, [r0, #1]
+ ldr r0, [sp, #0x1c]
+ bl MOD13_022173E8
+ str r0, [sp, #0x60]
+ ldr r0, _02219794 ; =0x00005790
+ bl MOD13_022173D0
+ add r1, sp, #0x30
+ strh r0, [r1, #0x2e]
+ ldr r0, _02219780 ; =0x0223F7BC
+ ldr r0, [r0]
+ add r1, sp, #0x5c
+ mov r2, #8
+ bl MOD13_02217428
+ cmp r0, #0
+ bge _02219682
+ mov r2, #0xf
+ ldr r1, _02219784 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219682:
+ ldr r0, [sp, #0x18]
+ str r0, [sp, #0x14]
+ b _02218FE8
+_02219688:
+ str r0, [sp, #0x14]
+ ldr r2, [sp, #0x3c]
+ add r1, sp, #0x30
+ mov r0, #4
+ ldrsh r0, [r1, r0]
+ cmp r2, r0
+ ble _022196BC
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ bne _022196A4
+ mov r0, #0xf
+ bl MOD13_02218BF4
+ b _022196B6
+_022196A4:
+ cmp r0, #1
+ bne _022196B0
+ mov r0, #0x10
+ bl MOD13_02218BF4
+ b _022196B6
+_022196B0:
+ mov r0, #0x11
+ bl MOD13_02218BF4
+_022196B6:
+ mov r0, #0
+ mvn r4, r0
+ b _022196C6
+_022196BC:
+ mov r0, #6
+ ldrsh r0, [r1, r0]
+ bl MOD13_022198E4
+ b _02218FE8
+_022196C6:
+ ldr r0, _02219780 ; =0x0223F7BC
+ ldr r0, [r0]
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _022196D6
+ bl MOD13_02217420
+_022196D6:
+ mov r0, #0
+ mvn r1, r0
+ ldr r0, _02219780 ; =0x0223F7BC
+ str r1, [r0]
+ bl MOD13_02217504
+ cmp r0, #0
+ beq _022196FE
+ mov r2, #0xf
+ ldr r1, _02219784 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_022196FE:
+ cmp r4, #0
+ beq _02219754
+ bl MOD13_02218BE8
+ sub r0, #0xf
+ cmp r0, #6
+ bhi _0221973C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #8]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, pc
+ bx r0
+_0221971A: ; jump table
+ .short _02219728 - _0221971A + 1 ; case 0
+ .short _0221972C - _0221971A + 1 ; case 1
+ .short _02219730 - _0221971A + 1 ; case 2
+ .short _0221973C - _0221971A + 1 ; case 3
+ .short _0221973C - _0221971A + 1 ; case 4
+ .short _02219734 - _0221971A + 1 ; case 5
+ .short _02219738 - _0221971A + 1 ; case 6
+_02219728:
+ mov r2, #3
+ b _0221973E
+_0221972C:
+ mov r2, #4
+ b _0221973E
+_02219730:
+ mov r2, #5
+ b _0221973E
+_02219734:
+ mov r2, #7
+ b _0221973E
+_02219738:
+ mov r2, #8
+ b _0221973E
+_0221973C:
+ mov r2, #0xf
+_0221973E:
+ ldr r1, _02219784 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219754:
+ ldr r0, [sp, #8]
+ bl MOD13_022189D8
+ cmp r0, #0
+ beq _02219776
+ mov r2, #6
+ ldr r1, _02219784 ; =0x00000116
+ ldr r0, [sp, #8]
+ strb r2, [r0, r1]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219776:
+ mov r0, #0
+ add sp, #0xcc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_02219780: .word 0x0223F7BC
+_02219784: .word 0x00000116
+_02219788: .word 0x02240B40
+_0221978C: .word 0x02240B60
+_02219790: .word 0x0000FFFF
+_02219794: .word 0x00005790
+
+ thumb_func_start MOD13_02219798
+MOD13_02219798: ; 0x02219798
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02219870 ; =0x00000106
+ ldrsh r1, [r4, r0]
+ cmp r1, #0
+ beq _022197E6
+ mov r0, #0
+ mvn r2, r0
+ cmp r1, r2
+ blt _022197E6
+ ldr r1, _02219874 ; =0x00000108
+ ldrsh r1, [r4, r1]
+ cmp r1, r2
+ blt _022197E6
+ ldr r1, _02219878 ; =0x0000010A
+ ldrsh r1, [r4, r1]
+ cmp r1, #0
+ beq _022197E6
+ cmp r1, r2
+ blt _022197E6
+ ldr r1, _0221987C ; =0x0000010C
+ ldrsh r1, [r4, r1]
+ cmp r1, r2
+ blt _022197E6
+ ldr r1, _02219880 ; =0x0000010E
+ ldrsh r1, [r4, r1]
+ cmp r1, r2
+ blt _022197E6
+ ldrh r2, [r4, #4]
+ cmp r2, #0
+ beq _022197E6
+ ldr r1, _02219884 ; =0x00000100
+ cmp r2, r1
+ bhi _022197E6
+ sub r1, r2, #1
+ add r1, r4, r1
+ ldrb r1, [r1, #6]
+ cmp r1, #0
+ beq _022197EA
+_022197E6:
+ mov r0, #0
+ mvn r0, r0
+_022197EA:
+ ldr r1, _02219888 ; =0x02241900
+ ldr r1, [r1]
+ cmp r1, #0
+ beq _022197FA
+ ldr r1, _0221988C ; =0x0224190C
+ ldr r1, [r1]
+ cmp r1, #0
+ bne _022197FE
+_022197FA:
+ mov r0, #0
+ mvn r0, r0
+_022197FE:
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0221981A
+ mov r1, #0xf
+ ldr r0, _02219890 ; =0x00000116
+ strb r1, [r4, r0]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ pop {r4}
+ pop {r3}
+ bx r3
+_0221981A:
+ ldr r0, _02219894 ; =0x000005F8
+ bl MOD13_022198B4
+ ldr r1, _02219898 ; =0x02240B48
+ str r0, [r1]
+ cmp r0, #0
+ bne _0221983C
+ mov r1, #0xf
+ ldr r0, _02219890 ; =0x00000116
+ strb r1, [r4, r0]
+ bl MOD13_02218C54
+ mov r0, #0
+ mvn r0, r0
+ pop {r4}
+ pop {r3}
+ bx r3
+_0221983C:
+ mov r0, #0
+ mvn r0, r0
+ bl MOD13_02218870
+ add r0, r4, #0
+ bl MOD13_02218CAC
+ add r4, r0, #0
+ ldr r0, _02219898 ; =0x02240B48
+ ldr r0, [r0]
+ bl MOD13_022198A0
+ bl MOD13_02218C54
+ ldr r0, _0221989C ; =0x0223F7BC
+ ldr r0, [r0]
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02219868
+ bl MOD13_02217420
+_02219868:
+ add r0, r4, #0
+ pop {r4}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_02219870: .word 0x00000106
+_02219874: .word 0x00000108
+_02219878: .word 0x0000010A
+_0221987C: .word 0x0000010C
+_02219880: .word 0x0000010E
+_02219884: .word 0x00000100
+_02219888: .word 0x02241900
+_0221988C: .word 0x0224190C
+_02219890: .word 0x00000116
+_02219894: .word 0x000005F8
+_02219898: .word 0x02240B48
+_0221989C: .word 0x0223F7BC
+
+ thumb_func_start MOD13_022198A0
+MOD13_022198A0: ; 0x022198A0
+ push {lr}
+ sub sp, #4
+ ldr r1, _022198B0 ; =0x0224190C
+ ldr r1, [r1]
+ blx r1
+ add sp, #4
+ pop {r3}
+ bx r3
+ .align 2, 0
+_022198B0: .word 0x0224190C
+
+ thumb_func_start MOD13_022198B4
+MOD13_022198B4: ; 0x022198B4
+ push {lr}
+ sub sp, #4
+ ldr r1, _022198C4 ; =0x02241900
+ ldr r1, [r1]
+ blx r1
+ add sp, #4
+ pop {r3}
+ bx r3
+ .align 2, 0
+_022198C4: .word 0x02241900
+
+ thumb_func_start MOD13_022198C8
+MOD13_022198C8: ; 0x022198C8
+ push {lr}
+ sub sp, #4
+ ldr r1, _022198E0 ; =0x02241904
+ ldr r1, [r1]
+ cmp r1, #0
+ beq _022198D6
+ blx r1
+_022198D6:
+ mov r0, #0
+ add sp, #4
+ pop {r3}
+ bx r3
+ nop
+_022198E0: .word 0x02241904
+
+ thumb_func_start MOD13_022198E4
+MOD13_022198E4: ; 0x022198E4
+ ldr r3, _022198E8 ; =0x020CAFC0
+ bx r3
+ .align 2, 0
+_022198E8: .word 0x020CAFC0
+
+ thumb_func_start MOD13_022198EC
+MOD13_022198EC: ; 0x022198EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r4, #1
+ mov r0, #0
+ str r0, [sp, #0x14]
+ mvn r0, r0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x24]
+ cmp r0, #0
+ bne _0221990A
+ ldr r6, _02219AA8 ; =0x00080000
+ b _02219910
+_0221990A:
+ cmp r0, #1
+ bne _02219910
+ ldr r6, _02219AAC ; =0x000C0000
+_02219910:
+ ldr r0, _02219AB0 ; =0x02241940
+ mov r1, #0
+ mov r2, #0x60
+ bl MI_CpuFill8
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x28]
+ cmp r0, #5
+ bne _0221992A
+ mov r1, #1
+ ldr r0, _02219AB0 ; =0x02241940
+ strb r1, [r0]
+ b _0221994E
+_0221992A:
+ cmp r0, #0xd
+ bne _02219936
+ mov r1, #2
+ ldr r0, _02219AB0 ; =0x02241940
+ strb r1, [r0]
+ b _0221994E
+_02219936:
+ cmp r0, #0x10
+ bne _02219942
+ mov r1, #3
+ ldr r0, _02219AB0 ; =0x02241940
+ strb r1, [r0]
+ b _0221994E
+_02219942:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0x4c
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221994E:
+ mov r1, #0
+ ldr r0, _02219AB0 ; =0x02241940
+ strb r1, [r0, #1]
+ ldr r0, [sp, #4]
+ add r0, #0x2c
+ ldr r1, _02219AB4 ; =0x02241942
+ ldr r2, [sp, #4]
+ ldr r2, [r2, #0x28]
+ bl MI_CpuCopy8
+ bl FUN_020A84D8
+ mov r0, #0
+ ldr r1, [sp, #4]
+ add r1, r1, #4
+ ldr r2, [sp, #4]
+ ldr r2, [r2]
+ ldr r3, _02219AB8 ; =0x0030BFFE
+ bl MOD13_0221A1E8
+ cmp r0, #0
+ bne _0221997C
+ b _02219A8A
+_0221997C:
+ mov r0, #0
+ str r0, [sp, #0x10]
+ add r0, sp, #0x1c
+ bl OS_CreateAlarm
+ mov r0, #0x12
+ str r0, [sp]
+ add r0, sp, #0x1c
+ ldr r1, _02219ABC ; =0x003FEC42
+ mov r2, #0
+ ldr r3, _02219AC0 ; =MOD13_02219E48
+ bl OS_SetAlarm
+ ldr r0, _02219AC4 ; =0x00030000
+ orr r6, r0
+ ldr r7, _02219AC8 ; =0x022419A0
+ mov r5, #0
+_0221999E:
+ ldr r0, _02219ACC ; =0x02241920
+ add r1, sp, #0x18
+ mov r2, #1
+ bl OS_ReceiveMessage
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x13
+ bhi _02219A6A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #8]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, pc
+ bx r0
+_022199BC: ; jump table
+ .short _02219A6A - _022199BC + 1 ; case 0
+ .short _02219A6A - _022199BC + 1 ; case 1
+ .short _02219A6A - _022199BC + 1 ; case 2
+ .short _02219A6A - _022199BC + 1 ; case 3
+ .short _02219A6C - _022199BC + 1 ; case 4
+ .short _022199EE - _022199BC + 1 ; case 5
+ .short _02219A6A - _022199BC + 1 ; case 6
+ .short _02219A6A - _022199BC + 1 ; case 7
+ .short _02219A6C - _022199BC + 1 ; case 8
+ .short _02219A6A - _022199BC + 1 ; case 9
+ .short _02219A2A - _022199BC + 1 ; case 10
+ .short _02219A6A - _022199BC + 1 ; case 11
+ .short _02219A44 - _022199BC + 1 ; case 12
+ .short _02219A4A - _022199BC + 1 ; case 13
+ .short _02219A6A - _022199BC + 1 ; case 14
+ .short _02219A6A - _022199BC + 1 ; case 15
+ .short _02219A6A - _022199BC + 1 ; case 16
+ .short _02219A6A - _022199BC + 1 ; case 17
+ .short _022199E4 - _022199BC + 1 ; case 18
+ .short _02219A6C - _022199BC + 1 ; case 19
+_022199E4:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ bne _02219A6C
+ add r4, r5, #0
+ b _02219A6C
+_022199EE:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ bne _02219A6C
+ add r0, sp, #0x1c
+ bl OS_CancelAlarm
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD13_0221A2FC
+ cmp r0, #1
+ beq _02219A0A
+ add r4, r5, #0
+ b _02219A6C
+_02219A0A:
+ ldr r0, [sp, #4]
+ add r1, r7, #0
+ bl MOD13_02219E80
+ add r0, r7, #0
+ ldr r1, _02219AB0 ; =0x02241940
+ add r2, r6, #0
+ bl MOD13_0221A04C
+ cmp r0, #0
+ bne _02219A24
+ add r4, r5, #0
+ b _02219A6C
+_02219A24:
+ mov r0, #1
+ str r0, [sp, #0x14]
+ b _02219A6C
+_02219A2A:
+ ldr r0, [sp, #4]
+ add r1, r7, #0
+ bl MOD13_02219E80
+ add r0, r7, #0
+ ldr r1, _02219AB0 ; =0x02241940
+ add r2, r6, #0
+ bl MOD13_0221A04C
+ cmp r0, #0
+ bne _02219A6C
+ add r4, r5, #0
+ b _02219A6C
+_02219A44:
+ str r5, [sp, #0xc]
+ add r4, r5, #0
+ b _02219A6C
+_02219A4A:
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, #3
+ bge _02219A66
+ add r0, r7, #0
+ ldr r1, _02219AB0 ; =0x02241940
+ add r2, r6, #0
+ bl MOD13_0221A04C
+ cmp r0, #0
+ bne _02219A6C
+ add r4, r5, #0
+ b _02219A6C
+_02219A66:
+ add r4, r5, #0
+ b _02219A6C
+_02219A6A:
+ add r4, r5, #0
+_02219A6C:
+ cmp r4, #0
+ bne _0221999E
+ add r0, sp, #0x1c
+ bl OS_CancelAlarm
+ ldr r5, _02219ACC ; =0x02241920
+ add r4, sp, #0x18
+ mov r6, #0
+_02219A7C:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl OS_ReceiveMessage
+ cmp r0, #1
+ beq _02219A7C
+_02219A8A:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _02219A94
+ mov r2, #1
+ b _02219A96
+_02219A94:
+ mov r2, #0
+_02219A96:
+ ldr r0, [sp, #8]
+ ldr r1, _02219AC8 ; =0x022419A0
+ bl MOD13_02219E70
+ ldr r0, [sp, #0xc]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_02219AA8: .word 0x00080000
+_02219AAC: .word 0x000C0000
+_02219AB0: .word 0x02241940
+_02219AB4: .word 0x02241942
+_02219AB8: .word 0x0030BFFE
+_02219ABC: .word 0x003FEC42
+_02219AC0: .word MOD13_02219E48
+_02219AC4: .word 0x00030000
+_02219AC8: .word 0x022419A0
+_02219ACC: .word 0x02241920
+
+ thumb_func_start MOD13_02219AD0
+MOD13_02219AD0: ; 0x02219AD0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ str r0, [sp, #4]
+ mov r6, #0
+ mvn r0, r6
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ add r7, r6, #0
+ add r5, r6, #0
+ ldr r0, _02219C44 ; =0x02241900
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _02219AF4
+ ldr r0, _02219C48 ; =0x0224190C
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02219B00
+_02219AF4:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #0x44
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219B00:
+ ldr r0, _02219C4C ; =0x00003000
+ blx r1
+ add r4, r0, #0
+ cmp r4, #0
+ bne _02219B16
+ lsl r0, r6, #0
+ mvn r0, r0
+ add sp, #0x44
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219B16:
+ str r4, [sp, #0x10]
+ lsl r0, r6, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ ldr r3, _02219C50 ; =0x0030BFFE
+ bl MOD13_0221A1E8
+ cmp r0, #0
+ bne _02219B2A
+ b _02219C30
+_02219B2A:
+ add r0, sp, #0x18
+ bl OS_CreateAlarm
+ mov r0, #0x13
+ str r0, [sp]
+ add r0, sp, #0x18
+ ldr r1, _02219C54 ; =0x003FEC42
+ lsl r2, r6, #0
+ ldr r3, _02219C58 ; =MOD13_02219E48
+ bl OS_SetAlarm
+_02219B40:
+ ldr r0, _02219C5C ; =0x02241920
+ add r1, sp, #0x14
+ mov r2, #1
+ bl OS_ReceiveMessage
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x13
+ bhi _02219C16
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #8]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, pc
+ bx r0
+_02219B5E: ; jump table
+ .short _02219C16 - _02219B5E + 1 ; case 0
+ .short _02219C16 - _02219B5E + 1 ; case 1
+ .short _02219C16 - _02219B5E + 1 ; case 2
+ .short _02219C16 - _02219B5E + 1 ; case 3
+ .short _02219BCC - _02219B5E + 1 ; case 4
+ .short _02219BA4 - _02219B5E + 1 ; case 5
+ .short _02219C16 - _02219B5E + 1 ; case 6
+ .short _02219C16 - _02219B5E + 1 ; case 7
+ .short _02219BCC - _02219B5E + 1 ; case 8
+ .short _02219C16 - _02219B5E + 1 ; case 9
+ .short _02219BC6 - _02219B5E + 1 ; case 10
+ .short _02219C16 - _02219B5E + 1 ; case 11
+ .short _02219C16 - _02219B5E + 1 ; case 12
+ .short _02219C16 - _02219B5E + 1 ; case 13
+ .short _02219C16 - _02219B5E + 1 ; case 14
+ .short _02219C16 - _02219B5E + 1 ; case 15
+ .short _02219C16 - _02219B5E + 1 ; case 16
+ .short _02219C16 - _02219B5E + 1 ; case 17
+ .short _02219BCC - _02219B5E + 1 ; case 18
+ .short _02219B86 - _02219B5E + 1 ; case 19
+_02219B86:
+ cmp r6, #0
+ bne _02219BCC
+ cmp r5, #0
+ beq _02219B98
+ add r0, r4, #0
+ mov r1, #0x40
+ bl MOD13_0221A2FC
+ add r7, r0, #0
+_02219B98:
+ bl MOD13_0221A1A4
+ cmp r0, #0
+ beq _02219C16
+ mov r6, #1
+ b _02219BCC
+_02219BA4:
+ cmp r6, #0
+ bne _02219BCC
+ cmp r5, #8
+ bge _02219BB0
+ add r5, r5, #1
+ b _02219BCC
+_02219BB0:
+ add r0, r4, #0
+ mov r1, #0x40
+ bl MOD13_0221A2FC
+ add r7, r0, #0
+ bl MOD13_0221A1A4
+ cmp r0, #0
+ beq _02219C16
+ mov r6, #1
+ b _02219BCC
+_02219BC6:
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #8]
+_02219BCC:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _02219B40
+ cmp r7, #0
+ beq _02219BEA
+ sub r0, r7, #1
+ mov r1, #0x54
+ mul r0, r1
+ add r0, #0x58
+ ldr r1, _02219C44 ; =0x02241900
+ ldr r1, [r1]
+ blx r1
+ cmp r0, #0
+ bne _02219BF6
+ b _02219C16
+_02219BEA:
+ mov r0, #0x58
+ ldr r1, _02219C44 ; =0x02241900
+ ldr r1, [r1]
+ blx r1
+ cmp r0, #0
+ beq _02219C16
+_02219BF6:
+ ldr r1, [sp, #4]
+ str r0, [r1]
+ str r7, [r0]
+ mov r6, #0
+ cmp r7, #0
+ ble _02219C16
+ add r5, r0, #4
+_02219C04:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD13_02219EB4
+ add r4, #0xc0
+ add r5, #0x54
+ add r6, r6, #1
+ cmp r6, r7
+ blt _02219C04
+_02219C16:
+ add r0, sp, #0x18
+ bl OS_CancelAlarm
+ ldr r5, _02219C5C ; =0x02241920
+ add r4, sp, #0x14
+ mov r6, #0
+_02219C22:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl OS_ReceiveMessage
+ cmp r0, #1
+ beq _02219C22
+_02219C30:
+ ldr r0, [sp, #0x10]
+ ldr r1, _02219C48 ; =0x0224190C
+ ldr r1, [r1]
+ blx r1
+ ldr r0, [sp, #8]
+ add sp, #0x44
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_02219C44: .word 0x02241900
+_02219C48: .word 0x0224190C
+_02219C4C: .word 0x00003000
+_02219C50: .word 0x0030BFFE
+_02219C54: .word 0x003FEC42
+_02219C58: .word MOD13_02219E48
+_02219C5C: .word 0x02241920
+
+ thumb_func_start MOD13_02219C60
+MOD13_02219C60: ; 0x02219C60
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ mov r0, #0
+ mvn r4, r0
+ bl MOD13_0221A164
+ cmp r0, #0
+ beq _02219C8C
+ mov r5, #0
+ ldr r6, _02219C98 ; =0x02241920
+ add r7, sp, #0
+_02219C76:
+ add r0, r6, #0
+ add r1, r7, #0
+ mov r2, #1
+ bl OS_ReceiveMessage
+ ldr r0, [sp]
+ cmp r0, #0xe
+ bne _02219C88
+ add r4, r5, #0
+_02219C88:
+ cmp r5, #0
+ bne _02219C76
+_02219C8C:
+ add r0, r4, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_02219C98: .word 0x02241920
+
+ thumb_func_start MOD13_02219C9C
+MOD13_02219C9C: ; 0x02219C9C
+ push {r4, r5, lr}
+ sub sp, #4
+ mov r4, #1
+ mov r0, #0
+ mvn r5, r0
+ ldr r0, _02219D48 ; =0x0224190C
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02219CB8
+ add r0, r5, #0
+ add sp, #4
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+_02219CB8:
+ bl MOD13_0221A0FC
+ cmp r0, #0
+ bne _02219CCC
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+_02219CCC:
+ ldr r0, _02219D4C ; =0x02241920
+ add r1, sp, #0
+ mov r2, #1
+ bl OS_ReceiveMessage
+ ldr r0, [sp]
+ cmp r0, #0x14
+ bhi _02219D24
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #8]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, pc
+ bx r0
+_02219CEA: ; jump table
+ .short _02219D24 - _02219CEA + 1 ; case 0
+ .short _02219D24 - _02219CEA + 1 ; case 1
+ .short _02219D24 - _02219CEA + 1 ; case 2
+ .short _02219D24 - _02219CEA + 1 ; case 3
+ .short _02219D26 - _02219CEA + 1 ; case 4
+ .short _02219D26 - _02219CEA + 1 ; case 5
+ .short _02219D24 - _02219CEA + 1 ; case 6
+ .short _02219D24 - _02219CEA + 1 ; case 7
+ .short _02219D24 - _02219CEA + 1 ; case 8
+ .short _02219D24 - _02219CEA + 1 ; case 9
+ .short _02219D24 - _02219CEA + 1 ; case 10
+ .short _02219D24 - _02219CEA + 1 ; case 11
+ .short _02219D24 - _02219CEA + 1 ; case 12
+ .short _02219D24 - _02219CEA + 1 ; case 13
+ .short _02219D24 - _02219CEA + 1 ; case 14
+ .short _02219D24 - _02219CEA + 1 ; case 15
+ .short _02219D24 - _02219CEA + 1 ; case 16
+ .short _02219D24 - _02219CEA + 1 ; case 17
+ .short _02219D24 - _02219CEA + 1 ; case 18
+ .short _02219D24 - _02219CEA + 1 ; case 19
+ .short _02219D14 - _02219CEA + 1 ; case 20
+_02219D14:
+ mov r4, #0
+ add r5, r4, #0
+ ldr r0, _02219D50 ; =0x02241908
+ ldr r0, [r0]
+ ldr r1, _02219D48 ; =0x0224190C
+ ldr r1, [r1]
+ blx r1
+ b _02219D26
+_02219D24:
+ mov r4, #0
+_02219D26:
+ cmp r4, #0
+ bne _02219CCC
+ bl OS_DisableInterrupts
+ mov r2, #0
+ ldr r1, _02219D54 ; =0x02241900
+ str r2, [r1]
+ ldr r1, _02219D48 ; =0x0224190C
+ str r2, [r1]
+ bl OS_RestoreInterrupts
+ add r0, r5, #0
+ add sp, #4
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+ nop
+_02219D48: .word 0x0224190C
+_02219D4C: .word 0x02241920
+_02219D50: .word 0x02241908
+_02219D54: .word 0x02241900
+
+ thumb_func_start MOD13_02219D58
+MOD13_02219D58: ; 0x02219D58
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #1
+ ldr r0, _02219E2C ; =0x02241920
+ ldr r1, _02219E30 ; =0x02241910
+ mov r2, #4
+ bl OS_InitMessageQueue
+ cmp r5, #0
+ beq _02219D74
+ cmp r6, #0
+ bne _02219D80
+_02219D74:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219D80:
+ bl OS_DisableInterrupts
+ ldr r1, _02219E34 ; =0x02241900
+ str r5, [r1]
+ ldr r1, _02219E38 ; =0x0224190C
+ str r6, [r1]
+ bl OS_RestoreInterrupts
+ ldr r0, _02219E3C ; =0x00005890
+ ldr r1, _02219E34 ; =0x02241900
+ ldr r1, [r1]
+ blx r1
+ add r1, r0, #0
+ ldr r0, _02219E40 ; =0x02241908
+ str r1, [r0]
+ cmp r1, #0
+ bne _02219DAE
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219DAE:
+ ldr r0, _02219E44 ; =MOD13_02219E5C
+ ldr r2, _02219E3C ; =0x00005890
+ bl MOD13_02219F54
+ cmp r0, #0
+ bne _02219DBC
+ mov r4, #0
+_02219DBC:
+ cmp r4, #0
+ beq _02219E14
+ ldr r5, _02219E2C ; =0x02241920
+ add r6, sp, #0
+ mov r7, #1
+_02219DC6:
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl OS_ReceiveMessage
+ ldr r0, [sp]
+ cmp r0, #0xf
+ bhi _02219E0E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #8]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, pc
+ bx r0
+_02219DE4: ; jump table
+ .short _02219E0E - _02219DE4 + 1 ; case 0
+ .short _02219E0E - _02219DE4 + 1 ; case 1
+ .short _02219E0E - _02219DE4 + 1 ; case 2
+ .short _02219E0E - _02219DE4 + 1 ; case 3
+ .short _02219E10 - _02219DE4 + 1 ; case 4
+ .short _02219E10 - _02219DE4 + 1 ; case 5
+ .short _02219E04 - _02219DE4 + 1 ; case 6
+ .short _02219E0E - _02219DE4 + 1 ; case 7
+ .short _02219E0E - _02219DE4 + 1 ; case 8
+ .short _02219E0E - _02219DE4 + 1 ; case 9
+ .short _02219E0E - _02219DE4 + 1 ; case 10
+ .short _02219E0E - _02219DE4 + 1 ; case 11
+ .short _02219E0E - _02219DE4 + 1 ; case 12
+ .short _02219E0E - _02219DE4 + 1 ; case 13
+ .short _02219E0E - _02219DE4 + 1 ; case 14
+ .short _02219E0E - _02219DE4 + 1 ; case 15
+_02219E04:
+ mov r0, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219E0E:
+ mov r4, #0
+_02219E10:
+ cmp r4, #0
+ bne _02219DC6
+_02219E14:
+ ldr r0, _02219E40 ; =0x02241908
+ ldr r0, [r0]
+ ldr r1, _02219E38 ; =0x0224190C
+ ldr r1, [r1]
+ blx r1
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_02219E2C: .word 0x02241920
+_02219E30: .word 0x02241910
+_02219E34: .word 0x02241900
+_02219E38: .word 0x0224190C
+_02219E3C: .word 0x00005890
+_02219E40: .word 0x02241908
+_02219E44: .word MOD13_02219E5C
+
+ thumb_func_start MOD13_02219E48
+MOD13_02219E48: ; 0x02219E48
+ add r1, r0, #0
+ ldr r0, _02219E54 ; =0x02241920
+ mov r2, #0
+ ldr r3, _02219E58 ; =0x020CBDC4
+ bx r3
+ nop
+_02219E54: .word 0x02241920
+_02219E58: .word 0x020CBDC4
+
+ thumb_func_start MOD13_02219E5C
+MOD13_02219E5C: ; 0x02219E5C
+ add r1, r0, #0
+ ldr r0, _02219E68 ; =0x02241920
+ mov r2, #0
+ ldr r3, _02219E6C ; =0x020CBDC4
+ bx r3
+ nop
+_02219E68: .word 0x02241920
+_02219E6C: .word 0x020CBDC4
+
+ thumb_func_start MOD13_02219E70
+MOD13_02219E70: ; 0x02219E70
+ add r3, r0, #0
+ str r2, [r3]
+ add r0, r1, #0
+ add r1, r3, #4
+ ldr r3, _02219E7C ; =MOD13_02219EB4
+ bx r3
+ .align 2, 0
+_02219E7C: .word MOD13_02219EB4
+
+ thumb_func_start MOD13_02219E80
+MOD13_02219E80: ; 0x02219E80
+ push {r4, r5, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ add r0, sp, #0
+ strh r1, [r0]
+ ldrh r0, [r0]
+ add r1, r4, #0
+ add r1, #0xc
+ mov r2, #0x20
+ bl MIi_CpuClear16
+ ldr r0, [r5]
+ strh r0, [r4, #0xa]
+ add r0, r5, #4
+ add r1, r4, #0
+ add r1, #0xc
+ ldrh r2, [r4, #0xa]
+ bl MI_CpuCopy8
+ add sp, #4
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_02219EB4
+MOD13_02219EB4: ; 0x02219EB4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r4, r1, #0
+ ldrh r0, [r5, #0xa]
+ str r0, [r4]
+ add r0, r5, #0
+ add r0, #0xc
+ add r1, r4, #4
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ ldrh r0, [r5, #0x36]
+ str r0, [r4, #0x24]
+ add r0, r5, #4
+ add r1, r4, #0
+ add r1, #0x30
+ mov r2, #6
+ bl MIi_CpuCopy16
+ mov r2, #0
+ add r3, r2, #0
+ ldr r1, _02219F50 ; =0x0223F834
+_02219EE2:
+ ldrh r6, [r5, #0x30]
+ ldrh r0, [r1]
+ and r6, r0
+ cmp r6, #0
+ beq _02219F10
+ add r0, r4, r2
+ ldrb r7, [r1, #2]
+ add r6, r0, #0
+ add r6, #0x3c
+ strb r7, [r6]
+ ldrh r7, [r5, #0x2e]
+ ldrh r6, [r1]
+ and r7, r6
+ cmp r7, #0
+ beq _02219F0E
+ add r6, r0, #0
+ add r6, #0x3c
+ ldrb r7, [r6]
+ mov r6, #0x80
+ orr r7, r6
+ add r0, #0x3c
+ strb r7, [r0]
+_02219F0E:
+ add r2, r2, #1
+_02219F10:
+ add r1, r1, #4
+ add r3, r3, #1
+ cmp r3, #0xc
+ blt _02219EE2
+ str r2, [r4, #0x38]
+ ldrh r0, [r5, #0x32]
+ str r0, [r4, #0x4c]
+ ldrh r1, [r5, #0x2c]
+ mov r0, #3
+ and r1, r0
+ cmp r1, #1
+ bne _02219F34
+ mov r0, #1
+ str r0, [r4, #0x50]
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219F34:
+ cmp r1, #2
+ bne _02219F44
+ mov r0, #2
+ str r0, [r4, #0x50]
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219F44:
+ mov r0, #0
+ str r0, [r4, #0x50]
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_02219F50: .word 0x0223F834
+
+ thumb_func_start MOD13_02219F54
+MOD13_02219F54: ; 0x02219F54
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r6, r0, #0
+ add r5, r1, #0
+ add r7, r2, #0
+ bl OS_DisableInterrupts
+ add r4, r0, #0
+ ldr r0, _0221A028 ; =0x02241A84
+ str r5, [r0]
+ add r2, r5, #0
+ add r2, #0x53
+ mov r0, #3
+ bic r2, r0
+ ldr r0, _0221A02C ; =0x02241A68
+ str r2, [r0]
+ add r1, r2, #0
+ add r1, #0x2f
+ mov r3, #0x1f
+ bic r1, r3
+ ldr r3, _0221A030 ; =0x02241A60
+ str r1, [r3]
+ ldr r3, _0221A034 ; =0x0000231F
+ add r1, r1, r3
+ mov r3, #0x1f
+ bic r1, r3
+ ldr r3, _0221A038 ; =0x02241A80
+ str r1, [r3]
+ add r1, #0xdf
+ mov r3, #0x1f
+ bic r1, r3
+ str r1, [r2, #4]
+ ldr r1, [r0]
+ add r3, r5, r7
+ ldr r2, [r1, #4]
+ sub r2, r3, r2
+ str r2, [r1, #8]
+ mov r2, #0
+ ldr r1, [r0]
+ str r2, [r1, #0xc]
+ ldr r1, [r0]
+ mov r0, #3
+ str r0, [r1]
+ ldr r0, _0221A03C ; =0x02241A7C
+ str r6, [r0]
+ ldr r0, _0221A040 ; =0x02241A78
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02219FDA
+ ldr r0, _0221A030 ; =0x02241A60
+ ldr r0, [r0]
+ ldr r1, _0221A044 ; =0x00002300
+ bl FUN_020A7E80
+ cmp r0, #0
+ beq _02219FD4
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_02219FD4:
+ mov r1, #1
+ ldr r0, _0221A040 ; =0x02241A78
+ str r1, [r0]
+_02219FDA:
+ ldr r0, _0221A040 ; =0x02241A78
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _0221A016
+ ldr r0, _0221A02C ; =0x02241A68
+ ldr r0, [r0]
+ ldr r1, _0221A048 ; =MOD13_0221A3CC
+ bl FUN_020A7BD4
+ cmp r0, #3
+ beq _0221A000
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221A000:
+ mov r1, #4
+ ldr r0, _0221A040 ; =0x02241A78
+ str r1, [r0]
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221A016:
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_0221A028: .word 0x02241A84
+_0221A02C: .word 0x02241A68
+_0221A030: .word 0x02241A60
+_0221A034: .word 0x0000231F
+_0221A038: .word 0x02241A80
+_0221A03C: .word 0x02241A7C
+_0221A040: .word 0x02241A78
+_0221A044: .word 0x00002300
+_0221A048: .word MOD13_0221A3CC
+
+ thumb_func_start MOD13_0221A04C
+MOD13_0221A04C: ; 0x0221A04C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r7, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl OS_DisableInterrupts
+ add r4, r0, #0
+ ldr r0, _0221A0EC ; =0x02241A6C
+ str r6, [r0]
+ cmp r5, #0
+ beq _0221A072
+ add r0, r5, #0
+ ldr r1, _0221A0F0 ; =0x02241A84
+ ldr r1, [r1]
+ mov r2, #0x50
+ bl MI_CpuCopy8
+ b _0221A07E
+_0221A072:
+ ldr r0, _0221A0F0 ; =0x02241A84
+ ldr r0, [r0]
+ mov r1, #0
+ mov r2, #0x50
+ bl MI_CpuFill8
+_0221A07E:
+ add r0, r7, #0
+ ldr r1, _0221A0F4 ; =0x02241A80
+ ldr r1, [r1]
+ mov r2, #0xc0
+ bl MIi_CpuCopy32
+ bl MOD13_0221A348
+ cmp r0, #1
+ bne _0221A0A8
+ mov r1, #8
+ ldr r0, _0221A0F8 ; =0x02241A78
+ str r1, [r0]
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221A0A8:
+ ldr r0, _0221A0F8 ; =0x02241A78
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _0221A0DA
+ ldr r0, _0221A0F4 ; =0x02241A80
+ ldr r0, [r0]
+ ldr r1, _0221A0F0 ; =0x02241A84
+ ldr r1, [r1]
+ ldr r2, _0221A0EC ; =0x02241A6C
+ ldr r2, [r2]
+ bl FUN_020A75C0
+ cmp r0, #3
+ bne _0221A0DA
+ mov r1, #8
+ ldr r0, _0221A0F8 ; =0x02241A78
+ str r1, [r0]
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221A0DA:
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_0221A0EC: .word 0x02241A6C
+_0221A0F0: .word 0x02241A84
+_0221A0F4: .word 0x02241A80
+_0221A0F8: .word 0x02241A78
+
+ thumb_func_start MOD13_0221A0FC
+MOD13_0221A0FC: ; 0x0221A0FC
+ push {r4, lr}
+ bl OS_DisableInterrupts
+ add r4, r0, #0
+ ldr r0, _0221A160 ; =0x02241A78
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _0221A136
+ bl FUN_020A7AC8
+ cmp r0, #3
+ beq _0221A122
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ pop {r4}
+ pop {r3}
+ bx r3
+_0221A122:
+ mov r1, #2
+ ldr r0, _0221A160 ; =0x02241A78
+ str r1, [r0]
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ pop {r4}
+ pop {r3}
+ bx r3
+_0221A136:
+ bl MOD13_0221A348
+ cmp r0, #1
+ bne _0221A152
+ mov r1, #2
+ ldr r0, _0221A160 ; =0x02241A78
+ str r1, [r0]
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ pop {r4}
+ pop {r3}
+ bx r3
+_0221A152:
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ pop {r4}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221A160: .word 0x02241A78
+
+ thumb_func_start MOD13_0221A164
+MOD13_0221A164: ; 0x0221A164
+ push {r4, lr}
+ bl OS_DisableInterrupts
+ add r4, r0, #0
+ ldr r0, _0221A1A0 ; =0x02241A78
+ ldr r0, [r0]
+ cmp r0, #7
+ bne _0221A190
+ bl FUN_020A7488
+ cmp r0, #3
+ bne _0221A190
+ mov r1, #4
+ ldr r0, _0221A1A0 ; =0x02241A78
+ str r1, [r0]
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ pop {r4}
+ pop {r3}
+ bx r3
+_0221A190:
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ pop {r4}
+ pop {r3}
+ bx r3
+ nop
+_0221A1A0: .word 0x02241A78
+
+ thumb_func_start MOD13_0221A1A4
+MOD13_0221A1A4: ; 0x0221A1A4
+ push {r4, lr}
+ bl OS_DisableInterrupts
+ add r4, r0, #0
+ ldr r0, _0221A1E4 ; =0x02241A78
+ ldr r0, [r0]
+ cmp r0, #5
+ bne _0221A1D6
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ bl FUN_020A7A90
+ cmp r0, #3
+ bne _0221A1D6
+ mov r1, #4
+ ldr r0, _0221A1E4 ; =0x02241A78
+ str r1, [r0]
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ pop {r4}
+ pop {r3}
+ bx r3
+_0221A1D6:
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ pop {r4}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221A1E4: .word 0x02241A78
+
+ thumb_func_start MOD13_0221A1E8
+MOD13_0221A1E8: ; 0x0221A1E8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ str r3, [sp]
+ bl OS_DisableInterrupts
+ add r7, r0, #0
+ ldr r1, _0221A2DC ; =0x02241A64
+ ldr r0, [sp]
+ str r0, [r1]
+ cmp r5, #0
+ beq _0221A21E
+ mov r2, #0
+ ldr r1, _0221A2E0 ; =0x02241A88
+_0221A208:
+ ldrb r0, [r5]
+ add r5, r5, #1
+ strb r0, [r1]
+ add r1, r1, #1
+ add r2, r2, #1
+ cmp r2, #6
+ blt _0221A208
+ ldr r1, _0221A2E0 ; =0x02241A88
+ ldr r0, _0221A2E4 ; =0x02241A70
+ str r1, [r0]
+ b _0221A22E
+_0221A21E:
+ ldr r0, _0221A2E0 ; =0x02241A88
+ mov r1, #0xff
+ mov r2, #6
+ bl MI_CpuFill8
+ ldr r1, _0221A2E8 ; =0x020FF590
+ ldr r0, _0221A2E4 ; =0x02241A70
+ str r1, [r0]
+_0221A22E:
+ cmp r4, #0
+ beq _0221A26C
+ cmp r6, #0
+ ble _0221A26C
+ cmp r6, #0x20
+ bgt _0221A26C
+ mov r1, #0
+ cmp r6, #0
+ ble _0221A250
+ ldr r2, _0221A2EC ; =0x02241A90
+_0221A242:
+ ldrb r0, [r4]
+ add r4, r4, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ add r1, r1, #1
+ cmp r1, r6
+ blt _0221A242
+_0221A250:
+ cmp r1, #0x20
+ bge _0221A264
+ ldr r0, _0221A2EC ; =0x02241A90
+ add r2, r0, r1
+ mov r0, #0
+_0221A25A:
+ strb r0, [r2]
+ add r2, r2, #1
+ add r1, r1, #1
+ cmp r1, #0x20
+ blt _0221A25A
+_0221A264:
+ ldr r1, _0221A2EC ; =0x02241A90
+ ldr r0, _0221A2F0 ; =0x02241A74
+ str r1, [r0]
+ b _0221A27C
+_0221A26C:
+ ldr r0, _0221A2EC ; =0x02241A90
+ mov r1, #0xff
+ mov r2, #0x20
+ bl MI_CpuFill8
+ ldr r1, _0221A2F4 ; =0x020FF598
+ ldr r0, _0221A2F0 ; =0x02241A74
+ str r1, [r0]
+_0221A27C:
+ ldr r0, _0221A2F8 ; =0x02241A78
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _0221A2AE
+ ldr r0, _0221A2E4 ; =0x02241A70
+ ldr r0, [r0]
+ ldr r1, _0221A2F0 ; =0x02241A74
+ ldr r1, [r1]
+ ldr r2, _0221A2DC ; =0x02241A64
+ ldr r2, [r2]
+ bl FUN_020A7A90
+ cmp r0, #3
+ bne _0221A2CC
+ mov r1, #6
+ ldr r0, _0221A2F8 ; =0x02241A78
+ str r1, [r0]
+ add r0, r7, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221A2AE:
+ bl MOD13_0221A348
+ cmp r0, #1
+ bne _0221A2CC
+ mov r1, #6
+ ldr r0, _0221A2F8 ; =0x02241A78
+ str r1, [r0]
+ add r0, r7, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221A2CC:
+ add r0, r7, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221A2DC: .word 0x02241A64
+_0221A2E0: .word 0x02241A88
+_0221A2E4: .word 0x02241A70
+_0221A2E8: .word 0x020FF590
+_0221A2EC: .word 0x02241A90
+_0221A2F0: .word 0x02241A74
+_0221A2F4: .word 0x020FF598
+_0221A2F8: .word 0x02241A78
+
+ thumb_func_start MOD13_0221A2FC
+MOD13_0221A2FC: ; 0x0221A2FC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r7, r1, #0
+ mov r0, #1
+ bl FUN_020A83D0
+ bl FUN_020A846C
+ add r6, r0, #0
+ cmp r6, #0
+ ble _0221A336
+ mov r4, #0
+ cmp r6, #0
+ ble _0221A336
+_0221A31A:
+ cmp r4, r7
+ bge _0221A336
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_020A8358
+ add r1, r5, #0
+ mov r2, #0xc0
+ bl MIi_CpuCopy32
+ add r4, r4, #1
+ add r5, #0xc0
+ cmp r4, r6
+ blt _0221A31A
+_0221A336:
+ mov r0, #0
+ bl FUN_020A83D0
+ add r0, r6, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_0221A348
+MOD13_0221A348: ; 0x0221A348
+ push {lr}
+ sub sp, #4
+ ldr r0, _0221A3C0 ; =0x02241A78
+ ldr r0, [r0]
+ cmp r0, #8
+ bhi _0221A3B0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #8]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, pc
+ bx r0
+_0221A362: ; jump table
+ .short _0221A3B0 - _0221A362 + 1 ; case 0
+ .short _0221A39A - _0221A362 + 1 ; case 1
+ .short _0221A3B0 - _0221A362 + 1 ; case 2
+ .short _0221A3B0 - _0221A362 + 1 ; case 3
+ .short _0221A3B0 - _0221A362 + 1 ; case 4
+ .short _0221A374 - _0221A362 + 1 ; case 5
+ .short _0221A3B0 - _0221A362 + 1 ; case 6
+ .short _0221A38A - _0221A362 + 1 ; case 7
+ .short _0221A3B0 - _0221A362 + 1 ; case 8
+_0221A374:
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ bl FUN_020A7A90
+ cmp r0, #3
+ beq _0221A3B8
+ mov r0, #0
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A38A:
+ bl FUN_020A7488
+ cmp r0, #3
+ beq _0221A3B8
+ mov r0, #0
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A39A:
+ ldr r0, _0221A3C4 ; =0x02241A68
+ ldr r0, [r0]
+ ldr r1, _0221A3C8 ; =MOD13_0221A3CC
+ bl FUN_020A7BD4
+ cmp r0, #3
+ beq _0221A3B8
+ mov r0, #0
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A3B0:
+ mov r0, #0
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A3B8:
+ mov r0, #1
+ add sp, #4
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221A3C0: .word 0x02241A78
+_0221A3C4: .word 0x02241A68
+_0221A3C8: .word MOD13_0221A3CC
+
+ thumb_func_start MOD13_0221A3CC
+MOD13_0221A3CC: ; 0x0221A3CC
+ push {lr}
+ sub sp, #4
+ cmp r0, #0
+ bne _0221A3D6
+ b _0221A750
+_0221A3D6:
+ mov r1, #0
+ ldrsh r2, [r0, r1]
+ cmp r2, #7
+ bls _0221A3E0
+ b _0221A742
+_0221A3E0:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #8]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add r2, pc
+ bx r2
+_0221A3EE: ; jump table
+ .short _0221A742 - _0221A3EE + 1 ; case 0
+ .short _0221A3FE - _0221A3EE + 1 ; case 1
+ .short _0221A6E4 - _0221A3EE + 1 ; case 2
+ .short _0221A4AE - _0221A3EE + 1 ; case 3
+ .short _0221A536 - _0221A3EE + 1 ; case 4
+ .short _0221A4F2 - _0221A3EE + 1 ; case 5
+ .short _0221A610 - _0221A3EE + 1 ; case 6
+ .short _0221A728 - _0221A3EE + 1 ; case 7
+_0221A3FE:
+ mov r2, #2
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ bne _0221A494
+ ldr r0, _0221A758 ; =0x02241A78
+ ldr r2, [r0]
+ cmp r2, #4
+ bne _0221A426
+ mov r2, #3
+ str r2, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221A41C
+ b _0221A750
+_0221A41C:
+ mov r0, #6
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A426:
+ cmp r2, #6
+ bne _0221A45C
+ ldr r0, _0221A760 ; =0x02241A70
+ ldr r0, [r0]
+ ldr r1, _0221A764 ; =0x02241A74
+ ldr r1, [r1]
+ ldr r2, _0221A768 ; =0x02241A64
+ ldr r2, [r2]
+ bl FUN_020A7A90
+ cmp r0, #3
+ bne _0221A440
+ b _0221A750
+_0221A440:
+ mov r1, #3
+ ldr r0, _0221A758 ; =0x02241A78
+ str r1, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221A450
+ b _0221A750
+_0221A450:
+ mov r0, #2
+ mov r1, #0
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A45C:
+ cmp r2, #8
+ beq _0221A462
+ b _0221A750
+_0221A462:
+ ldr r0, _0221A76C ; =0x02241A80
+ ldr r0, [r0]
+ ldr r1, _0221A770 ; =0x02241A84
+ ldr r1, [r1]
+ ldr r2, _0221A774 ; =0x02241A6C
+ ldr r2, [r2]
+ bl FUN_020A75C0
+ cmp r0, #3
+ bne _0221A478
+ b _0221A750
+_0221A478:
+ mov r1, #3
+ ldr r0, _0221A758 ; =0x02241A78
+ str r1, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221A488
+ b _0221A750
+_0221A488:
+ mov r0, #2
+ mov r1, #0
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A494:
+ mov r3, #1
+ ldr r0, _0221A758 ; =0x02241A78
+ str r3, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r3, [r0]
+ cmp r3, #0
+ bne _0221A4A4
+ b _0221A750
+_0221A4A4:
+ add r0, r2, #0
+ blx r3
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A4AE:
+ mov r2, #2
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ bne _0221A4D8
+ ldr r0, _0221A758 ; =0x02241A78
+ ldr r2, [r0]
+ cmp r2, #6
+ beq _0221A4C0
+ b _0221A750
+_0221A4C0:
+ mov r2, #5
+ str r2, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221A4CE
+ b _0221A750
+_0221A4CE:
+ mov r0, #8
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A4D8:
+ mov r2, #3
+ ldr r0, _0221A758 ; =0x02241A78
+ str r2, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221A4E8
+ b _0221A750
+_0221A4E8:
+ mov r0, #9
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A4F2:
+ mov r2, #2
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ bne _0221A51C
+ ldr r0, _0221A758 ; =0x02241A78
+ ldr r2, [r0]
+ cmp r2, #8
+ beq _0221A504
+ b _0221A750
+_0221A504:
+ mov r2, #7
+ str r2, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221A512
+ b _0221A750
+_0221A512:
+ mov r0, #0xc
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A51C:
+ mov r2, #3
+ ldr r0, _0221A758 ; =0x02241A78
+ str r2, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221A52C
+ b _0221A750
+_0221A52C:
+ mov r0, #0xd
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A536:
+ mov r2, #2
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ bne _0221A5F6
+ ldr r0, _0221A758 ; =0x02241A78
+ ldr r2, [r0]
+ cmp r2, #4
+ bne _0221A55E
+ mov r2, #3
+ str r2, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221A554
+ b _0221A750
+_0221A554:
+ mov r0, #0xa
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A55E:
+ cmp r2, #6
+ bne _0221A594
+ ldr r0, _0221A760 ; =0x02241A70
+ ldr r0, [r0]
+ ldr r1, _0221A764 ; =0x02241A74
+ ldr r1, [r1]
+ ldr r2, _0221A768 ; =0x02241A64
+ ldr r2, [r2]
+ bl FUN_020A7A90
+ cmp r0, #3
+ bne _0221A578
+ b _0221A750
+_0221A578:
+ mov r1, #3
+ ldr r0, _0221A758 ; =0x02241A78
+ str r1, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221A588
+ b _0221A750
+_0221A588:
+ mov r0, #2
+ mov r1, #0
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A594:
+ cmp r2, #2
+ bne _0221A5BE
+ bl FUN_020A7AC8
+ cmp r0, #3
+ bne _0221A5A2
+ b _0221A750
+_0221A5A2:
+ mov r1, #3
+ ldr r0, _0221A758 ; =0x02241A78
+ str r1, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221A5B2
+ b _0221A750
+_0221A5B2:
+ mov r0, #2
+ mov r1, #0
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A5BE:
+ cmp r2, #8
+ beq _0221A5C4
+ b _0221A750
+_0221A5C4:
+ ldr r0, _0221A76C ; =0x02241A80
+ ldr r0, [r0]
+ ldr r1, _0221A770 ; =0x02241A84
+ ldr r1, [r1]
+ ldr r2, _0221A774 ; =0x02241A6C
+ ldr r2, [r2]
+ bl FUN_020A75C0
+ cmp r0, #3
+ bne _0221A5DA
+ b _0221A750
+_0221A5DA:
+ mov r1, #3
+ ldr r0, _0221A758 ; =0x02241A78
+ str r1, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221A5EA
+ b _0221A750
+_0221A5EA:
+ mov r0, #2
+ mov r1, #0
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A5F6:
+ mov r2, #3
+ ldr r0, _0221A758 ; =0x02241A78
+ str r2, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221A606
+ b _0221A750
+_0221A606:
+ mov r0, #0xb
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A610:
+ mov r2, #2
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ bne _0221A6CC
+ ldr r0, _0221A758 ; =0x02241A78
+ ldr r2, [r0]
+ cmp r2, #4
+ bne _0221A638
+ mov r2, #3
+ str r2, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221A62E
+ b _0221A750
+_0221A62E:
+ mov r0, #0xe
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A638:
+ cmp r2, #6
+ bne _0221A66A
+ ldr r0, _0221A760 ; =0x02241A70
+ ldr r0, [r0]
+ ldr r1, _0221A764 ; =0x02241A74
+ ldr r1, [r1]
+ ldr r2, _0221A768 ; =0x02241A64
+ ldr r2, [r2]
+ bl FUN_020A7A90
+ cmp r0, #3
+ beq _0221A750
+ mov r1, #3
+ ldr r0, _0221A758 ; =0x02241A78
+ str r1, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _0221A750
+ mov r0, #2
+ mov r1, #0
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A66A:
+ cmp r2, #2
+ bne _0221A690
+ bl FUN_020A7AC8
+ cmp r0, #3
+ beq _0221A750
+ mov r1, #3
+ ldr r0, _0221A758 ; =0x02241A78
+ str r1, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _0221A750
+ mov r0, #2
+ mov r1, #0
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A690:
+ cmp r2, #8
+ bne _0221A6C2
+ ldr r0, _0221A76C ; =0x02241A80
+ ldr r0, [r0]
+ ldr r1, _0221A770 ; =0x02241A84
+ ldr r1, [r1]
+ ldr r2, _0221A774 ; =0x02241A6C
+ ldr r2, [r2]
+ bl FUN_020A75C0
+ cmp r0, #3
+ beq _0221A750
+ mov r1, #3
+ ldr r0, _0221A758 ; =0x02241A78
+ str r1, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _0221A750
+ mov r0, #2
+ mov r1, #0
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A6C2:
+ mov r1, #3
+ str r1, [r0]
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A6CC:
+ mov r2, #3
+ ldr r0, _0221A758 ; =0x02241A78
+ str r2, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _0221A750
+ mov r0, #0xf
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A6E4:
+ mov r2, #2
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ bne _0221A710
+ ldr r0, _0221A758 ; =0x02241A78
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _0221A750
+ bl FUN_020A7E0C
+ mov r1, #0
+ ldr r0, _0221A758 ; =0x02241A78
+ str r1, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _0221A750
+ mov r0, #0x14
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A710:
+ mov r3, #3
+ ldr r0, _0221A758 ; =0x02241A78
+ str r3, [r0]
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _0221A750
+ add r0, r2, #0
+ blx r3
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A728:
+ ldr r0, _0221A758 ; =0x02241A78
+ ldr r0, [r0]
+ cmp r0, #5
+ bne _0221A750
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _0221A750
+ mov r0, #5
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221A742:
+ ldr r0, _0221A75C ; =0x02241A7C
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _0221A750
+ mov r0, #1
+ mov r1, #0
+ blx r2
+_0221A750:
+ add sp, #4
+ pop {r3}
+ bx r3
+ nop
+_0221A758: .word 0x02241A78
+_0221A75C: .word 0x02241A7C
+_0221A760: .word 0x02241A70
+_0221A764: .word 0x02241A74
+_0221A768: .word 0x02241A64
+_0221A76C: .word 0x02241A80
+_0221A770: .word 0x02241A84
+_0221A774: .word 0x02241A6C
+
+ thumb_func_start MOD13_0221A778
+MOD13_0221A778: ; 0x0221A778
+ push {lr}
+ sub sp, #0xc
+ add r0, sp, #0
+ bl MOD13_0221A7AC
+ add r0, sp, #0
+ ldr r1, _0221A790 ; =0x02241B2C
+ ldr r1, [r1]
+ blx r1
+ add sp, #0xc
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221A790: .word 0x02241B2C
+
+ thumb_func_start MOD13_0221A794
+MOD13_0221A794: ; 0x0221A794
+ push {lr}
+ sub sp, #4
+ ldr r1, _0221A7A8 ; =0x02241CA8
+ mov r2, #0xe8
+ bl memcpy
+ mov r0, #1
+ add sp, #4
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221A7A8: .word 0x02241CA8
+
+ thumb_func_start MOD13_0221A7AC
+MOD13_0221A7AC: ; 0x0221A7AC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0221A7E0 ; =0x02241AE8
+ ldr r0, [r0]
+ str r0, [r4]
+ ldr r0, _0221A7E4 ; =0x0223F870
+ ldr r1, [r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r1, r0
+ bne _0221A7C6
+ str r0, [r4, #4]
+ b _0221A7D2
+_0221A7C6:
+ bl MOD13_0221AA90
+ ldr r1, _0221A7E4 ; =0x0223F870
+ ldr r1, [r1]
+ sub r0, r1, r0
+ str r0, [r4, #4]
+_0221A7D2:
+ ldr r0, _0221A7E8 ; =0x02241B28
+ ldr r0, [r0]
+ str r0, [r4, #8]
+ mov r0, #1
+ pop {r4}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221A7E0: .word 0x02241AE8
+_0221A7E4: .word 0x0223F870
+_0221A7E8: .word 0x02241B28
+
+ thumb_func_start MOD13_0221A7EC
+MOD13_0221A7EC: ; 0x0221A7EC
+ push {r4, r5, r6, lr}
+ ldr r0, _0221A884 ; =0x02241B14
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0221A862
+ ldr r4, _0221A888 ; =0x02241AE8
+ ldr r6, [r4]
+ mov r1, #1
+ ldr r0, _0221A88C ; =0x02241AC0
+ str r1, [r0]
+ mov r5, #0x64
+ b _0221A80A
+_0221A804:
+ add r0, r5, #0
+ bl OS_Sleep
+_0221A80A:
+ ldr r0, [r4]
+ cmp r0, #1
+ blt _0221A814
+ cmp r0, #5
+ ble _0221A804
+_0221A814:
+ ldr r0, _0221A890 ; =0x000001F4
+ bl OS_Sleep
+ ldr r0, _0221A894 ; =0x02241BE8
+ bl OS_IsThreadTerminated
+ cmp r0, #0
+ bne _0221A83C
+ ldr r4, _0221A894 ; =0x02241BE8
+_0221A826:
+ add r0, r4, #0
+ bl OS_WakeupThreadDirect
+ add r0, r4, #0
+ bl OS_JoinThread
+ add r0, r4, #0
+ bl OS_IsThreadTerminated
+ cmp r0, #0
+ beq _0221A826
+_0221A83C:
+ ldr r0, _0221A898 ; =0x02241AE0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0221A850
+ ldr r1, _0221A89C ; =0x02241ABC
+ ldr r1, [r1]
+ blx r1
+ mov r1, #0
+ ldr r0, _0221A898 ; =0x02241AE0
+ str r1, [r0]
+_0221A850:
+ mov r1, #0
+ ldr r0, _0221A884 ; =0x02241B14
+ str r1, [r0]
+ ldr r0, _0221A888 ; =0x02241AE8
+ ldr r0, [r0]
+ cmp r6, r0
+ beq _0221A862
+ bl MOD13_0221A778
+_0221A862:
+ ldr r0, _0221A8A0 ; =0x02241B24
+ ldr r0, [r0]
+ cmp r0, #0
+ ble _0221A87A
+ bl MOD13_0221DAF4
+ mov r2, #0
+ ldr r1, _0221A8A0 ; =0x02241B24
+ str r2, [r1]
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+_0221A87A:
+ mov r0, #9
+ mvn r0, r0
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221A884: .word 0x02241B14
+_0221A888: .word 0x02241AE8
+_0221A88C: .word 0x02241AC0
+_0221A890: .word 0x000001F4
+_0221A894: .word 0x02241BE8
+_0221A898: .word 0x02241AE0
+_0221A89C: .word 0x02241ABC
+_0221A8A0: .word 0x02241B24
+
+ thumb_func_start MOD13_0221A8A4
+MOD13_0221A8A4: ; 0x0221A8A4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, _0221A998 ; =0x02241AE8
+ ldr r0, [r0]
+ cmp r0, #1
+ blt _0221A8C2
+ cmp r0, #5
+ bgt _0221A8C2
+ mov r0, #9
+ mvn r0, r0
+ add sp, #0xc
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+_0221A8C2:
+ ldr r0, _0221A99C ; =0x0223F874
+ str r1, [r0]
+ mov r5, #7
+ ldr r0, _0221A998 ; =0x02241AE8
+ str r5, [r0]
+ ldr r0, _0221A9A0 ; =0x02241B2C
+ str r2, [r0]
+ ldr r0, _0221A9A4 ; =0x02241AB4
+ str r3, [r0]
+ ldr r2, [sp, #0x18]
+ ldr r0, _0221A9A8 ; =0x02241ABC
+ str r2, [r0]
+ ldr r2, [sp, #0x1c]
+ ldr r0, _0221A9AC ; =0x0223F86C
+ str r2, [r0]
+ add r0, r1, #0
+ bl MOD13_0221DB54
+ mov r2, #1
+ ldr r1, _0221A9B0 ; =0x02241B24
+ str r2, [r1]
+ cmp r0, #0
+ bge _0221A8FC
+ ldr r1, _0221A9B4 ; =0x02241B28
+ str r0, [r1]
+ add sp, #0xc
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+_0221A8FC:
+ ldr r0, _0221A9AC ; =0x0223F86C
+ ldr r0, [r0]
+ ldr r1, _0221A9A4 ; =0x02241AB4
+ ldr r1, [r1]
+ blx r1
+ ldr r1, _0221A9B8 ; =0x02241AE0
+ str r0, [r1]
+ cmp r0, #0
+ bne _0221A91E
+ mov r0, #0
+ mvn r0, r0
+ ldr r1, _0221A9B4 ; =0x02241B28
+ str r0, [r1]
+ add sp, #0xc
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+_0221A91E:
+ bl OS_IsThreadAvailable
+ cmp r0, #1
+ beq _0221A936
+ mov r0, #8
+ mvn r0, r0
+ ldr r1, _0221A9B4 ; =0x02241B28
+ str r0, [r1]
+ add sp, #0xc
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+_0221A936:
+ ldr r0, _0221A9AC ; =0x0223F86C
+ ldr r3, [r0]
+ str r3, [sp]
+ str r4, [sp, #4]
+ ldr r0, _0221A9BC ; =0x02241BE8
+ ldr r1, _0221A9C0 ; =MOD13_0221C618
+ mov r2, #0
+ ldr r4, _0221A9B8 ; =0x02241AE0
+ ldr r5, [r4]
+ mov r4, #7
+ bic r3, r4
+ add r3, r5, r3
+ bl OS_CreateThread
+ mov r1, #1
+ ldr r0, _0221A998 ; =0x02241AE8
+ str r1, [r0]
+ bl MOD13_0221AA90
+ ldr r1, _0221A9C4 ; =0x0000EA60
+ add r1, r0, r1
+ ldr r0, _0221A9C8 ; =0x0223F870
+ str r1, [r0]
+ mov r0, #0
+ ldr r1, _0221A9CC ; =0x02241AC0
+ str r0, [r1]
+ ldr r5, _0221A9D0 ; =0x02241CA8
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+_0221A972:
+ stmia r5!, {r0, r1, r2, r3}
+ stmia r5!, {r0, r1, r2, r3}
+ sub r4, r4, #1
+ cmp r4, #0
+ bne _0221A972
+ stmia r5!, {r0, r1}
+ bl MOD13_0221A778
+ ldr r0, _0221A9BC ; =0x02241BE8
+ bl OS_WakeupThreadDirect
+ mov r0, #1
+ ldr r1, _0221A9D4 ; =0x02241B14
+ str r0, [r1]
+ add sp, #0xc
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+ nop
+_0221A998: .word 0x02241AE8
+_0221A99C: .word 0x0223F874
+_0221A9A0: .word 0x02241B2C
+_0221A9A4: .word 0x02241AB4
+_0221A9A8: .word 0x02241ABC
+_0221A9AC: .word 0x0223F86C
+_0221A9B0: .word 0x02241B24
+_0221A9B4: .word 0x02241B28
+_0221A9B8: .word 0x02241AE0
+_0221A9BC: .word 0x02241BE8
+_0221A9C0: .word MOD13_0221C618
+_0221A9C4: .word 0x0000EA60
+_0221A9C8: .word 0x0223F870
+_0221A9CC: .word 0x02241AC0
+_0221A9D0: .word 0x02241CA8
+_0221A9D4: .word 0x02241B14
+
+ thumb_func_start MOD13_0221A9D8
+MOD13_0221A9D8: ; 0x0221A9D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ str r0, [sp]
+ add r6, r1, #0
+ lsl r5, r0, #0
+ mov r4, #0
+ add r7, r4, #0
+_0221A9E6:
+ add r0, r5, #0
+ ldrsb r1, [r6, r7]
+ add r6, r6, #1
+ bl MOD13_0221AA14
+ add r1, r5, r0
+ add r5, r1, #0
+ cmp r4, #5
+ bge _0221A9FE
+ add r5, r1, #1
+ mov r0, #0x3a
+ strb r0, [r1]
+_0221A9FE:
+ add r4, r4, #1
+ cmp r4, #6
+ blt _0221A9E6
+ mov r0, #0
+ strb r0, [r5]
+ ldr r0, [sp]
+ sub r0, r5, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+
+ thumb_func_start MOD13_0221AA14
+MOD13_0221AA14: ; 0x0221AA14
+ push {r4, r5}
+ add r2, r0, #0
+ lsl r1, r1, #0x18
+ lsr r4, r1, #0x18
+ mov r1, #0xf0
+ add r3, r4, #0
+ and r3, r1
+ asr r3, r3, #4
+ mov r5, #0
+ mov r1, #0xf
+ and r4, r1
+_0221AA2A:
+ cmp r3, #9
+ bgt _0221AA36
+ add r3, #0x30
+ strb r3, [r2]
+ add r2, r2, #1
+ b _0221AA3C
+_0221AA36:
+ add r3, #0x37
+ strb r3, [r2]
+ add r2, r2, #1
+_0221AA3C:
+ add r3, r4, #0
+ add r5, r5, #1
+ cmp r5, #2
+ blt _0221AA2A
+ mov r1, #0
+ strb r1, [r2]
+ sub r0, r2, r0
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD13_0221AA50
+MOD13_0221AA50: ; 0x0221AA50
+ push {lr}
+ sub sp, #4
+ ldr r1, _0221AA60 ; =0x02241ABC
+ ldr r1, [r1]
+ blx r1
+ add sp, #4
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221AA60: .word 0x02241ABC
+
+ thumb_func_start MOD13_0221AA64
+MOD13_0221AA64: ; 0x0221AA64
+ push {r4, r5, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mul r4, r1
+ add r0, r4, #0
+ ldr r1, _0221AA8C ; =0x02241AB4
+ ldr r1, [r1]
+ blx r1
+ add r5, r0, #0
+ cmp r5, #0
+ beq _0221AA82
+ mov r1, #0
+ add r2, r4, #0
+ bl Call_FillMemWithValue
+_0221AA82:
+ add r0, r5, #0
+ add sp, #4
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221AA8C: .word 0x02241AB4
+
+ thumb_func_start MOD13_0221AA90
+MOD13_0221AA90: ; 0x0221AA90
+ push {lr}
+ sub sp, #4
+ bl OS_GetTick
+ lsr r2, r0, #0x1a
+ lsl r1, r1, #6
+ orr r1, r2
+ lsl r0, r0, #6
+ ldr r2, _0221AAB0 ; =0x000082EA
+ mov r3, #0
+ bl _ll_udiv
+ add sp, #4
+ pop {r3}
+ bx r3
+ nop
+_0221AAB0: .word 0x000082EA
+
+ thumb_func_start MOD13_0221AAB4
+MOD13_0221AAB4: ; 0x0221AAB4
+ push {r4, r5, r6, lr}
+ sub sp, #0x58
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r0, sp, #0
+ bl MOD13_0221B4AC
+ add r0, sp, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD13_0221B42C
+ add r0, r5, #0
+ add r1, sp, #0
+ bl MOD13_0221B3D0
+ add sp, #0x58
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_0221AAE0
+MOD13_0221AAE0: ; 0x0221AAE0
+ mov r3, #0
+ cmp r2, #0
+ bls _0221AAF4
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+_0221AAEA:
+ strb r1, [r0]
+ add r0, r0, #1
+ add r3, r3, #1
+ cmp r3, r2
+ blo _0221AAEA
+_0221AAF4:
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD13_0221AAF8
+MOD13_0221AAF8: ; 0x0221AAF8
+ push {r4}
+ sub sp, #4
+ mov r4, #0
+ cmp r2, #0
+ bls _0221AB0C
+_0221AB02:
+ ldrb r3, [r1, r4]
+ strb r3, [r0, r4]
+ add r4, r4, #1
+ cmp r4, r2
+ blo _0221AB02
+_0221AB0C:
+ add sp, #4
+ pop {r4}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD13_0221AB14
+MOD13_0221AB14: ; 0x0221AB14
+ push {r4, r5, r6, r7}
+ mov r6, #0
+ cmp r2, #0
+ bls _0221AB3E
+_0221AB1C:
+ add r3, r6, #3
+ ldrb r3, [r1, r3]
+ lsl r5, r3, #0x18
+ add r3, r6, #2
+ ldrb r3, [r1, r3]
+ lsl r4, r3, #0x10
+ ldrb r3, [r1, r6]
+ add r7, r6, #1
+ ldrb r7, [r1, r7]
+ lsl r7, r7, #8
+ orr r3, r7
+ orr r4, r3
+ orr r5, r4
+ stmia r0!, {r5}
+ add r6, r6, #4
+ cmp r6, r2
+ blo _0221AB1C
+_0221AB3E:
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD13_0221AB44
+MOD13_0221AB44: ; 0x0221AB44
+ push {r4, r5}
+ mov r3, #0
+ cmp r2, #0
+ bls _0221AB70
+_0221AB4C:
+ ldr r4, [r1]
+ strb r4, [r0, r3]
+ ldr r4, [r1]
+ lsr r5, r4, #8
+ add r4, r3, #1
+ strb r5, [r0, r4]
+ ldr r4, [r1]
+ lsr r5, r4, #0x10
+ add r4, r3, #2
+ strb r5, [r0, r4]
+ ldr r4, [r1]
+ lsr r5, r4, #0x18
+ add r4, r3, #3
+ strb r5, [r0, r4]
+ add r1, r1, #4
+ add r3, r3, #4
+ cmp r3, r2
+ blo _0221AB4C
+_0221AB70:
+ pop {r4, r5}
+ bx lr
+
+ thumb_func_start MOD13_0221AB74
+MOD13_0221AB74: ; 0x0221AB74
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x84
+ add r5, r0, #0
+ ldr r0, [r5]
+ str r0, [sp]
+ ldr r4, [r5, #4]
+ ldr r6, [r5, #8]
+ ldr r7, [r5, #0xc]
+ add r0, sp, #0x40
+ mov r2, #0x40
+ bl MOD13_0221AB14
+ ldr r0, [sp, #0x40]
+ str r0, [sp, #4]
+ add r1, r4, #0
+ and r1, r6
+ mvn r0, r4
+ and r0, r7
+ orr r1, r0
+ ldr r0, [sp, #4]
+ add r1, r0, r1
+ ldr r0, _0221AF8C ; =0x28955B88
+ sub r1, r1, r0
+ ldr r0, [sp]
+ add r0, r0, r1
+ lsl r1, r0, #7
+ lsr r0, r0, #0x19
+ orr r1, r0
+ add r0, r1, r4
+ ldr r1, [sp, #0x44]
+ str r1, [sp, #8]
+ add r1, r0, #0
+ and r1, r4
+ mvn r2, r0
+ and r2, r6
+ orr r1, r2
+ ldr r2, [sp, #8]
+ add r2, r2, r1
+ ldr r1, _0221AF90 ; =0x173848AA
+ sub r1, r2, r1
+ add r1, r7, r1
+ lsl r2, r1, #0xc
+ lsr r1, r1, #0x14
+ orr r2, r1
+ add r3, r2, r0
+ ldr r1, [sp, #0x48]
+ str r1, [sp, #0xc]
+ add r1, r3, #0
+ and r1, r0
+ mvn r2, r3
+ and r2, r4
+ orr r1, r2
+ ldr r2, [sp, #0xc]
+ add r2, r2, r1
+ ldr r1, _0221AF94 ; =0x242070DB
+ add r1, r2, r1
+ add r1, r6, r1
+ lsl r2, r1, #0x11
+ lsr r1, r1, #0xf
+ orr r2, r1
+ add r2, r2, r3
+ ldr r1, [sp, #0x4c]
+ str r1, [sp, #0x10]
+ add r1, r2, #0
+ and r1, r3
+ mvn r6, r2
+ and r6, r0
+ orr r1, r6
+ ldr r6, [sp, #0x10]
+ add r6, r6, r1
+ ldr r1, _0221AF98 ; =0x3E423112
+ sub r1, r6, r1
+ add r1, r4, r1
+ lsl r4, r1, #0x16
+ lsr r1, r1, #0xa
+ orr r4, r1
+ add r1, r4, r2
+ ldr r4, [sp, #0x50]
+ str r4, [sp, #0x14]
+ add r4, r1, #0
+ and r4, r2
+ mvn r6, r1
+ and r6, r3
+ orr r4, r6
+ ldr r6, [sp, #0x14]
+ add r6, r6, r4
+ ldr r4, _0221AF9C ; =0x0A83F051
+ sub r4, r6, r4
+ add r0, r0, r4
+ lsl r4, r0, #7
+ lsr r0, r0, #0x19
+ orr r4, r0
+ add r4, r4, r1
+ ldr r0, [sp, #0x54]
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ and r0, r1
+ mvn r6, r4
+ and r6, r2
+ orr r0, r6
+ ldr r6, [sp, #0x18]
+ add r6, r6, r0
+ ldr r0, _0221AFA0 ; =0x4787C62A
+ add r0, r6, r0
+ add r0, r3, r0
+ lsl r3, r0, #0xc
+ lsr r0, r0, #0x14
+ orr r3, r0
+ add r3, r3, r4
+ ldr r0, [sp, #0x58]
+ str r0, [sp, #0x1c]
+ add r0, r3, #0
+ and r0, r4
+ mvn r6, r3
+ and r6, r1
+ orr r0, r6
+ ldr r6, [sp, #0x1c]
+ add r6, r6, r0
+ ldr r0, _0221AFA4 ; =0x57CFB9ED
+ sub r0, r6, r0
+ add r0, r2, r0
+ lsl r2, r0, #0x11
+ lsr r0, r0, #0xf
+ orr r2, r0
+ add r0, r2, r3
+ ldr r2, [sp, #0x5c]
+ str r2, [sp, #0x20]
+ add r2, r0, #0
+ and r2, r3
+ mvn r6, r0
+ and r6, r4
+ orr r2, r6
+ ldr r6, [sp, #0x20]
+ add r6, r6, r2
+ ldr r2, _0221AFA8 ; =0x02B96AFF
+ sub r2, r6, r2
+ add r1, r1, r2
+ lsl r2, r1, #0x16
+ lsr r1, r1, #0xa
+ orr r2, r1
+ add r6, r2, r0
+ ldr r1, [sp, #0x60]
+ str r1, [sp, #0x24]
+ add r1, r6, #0
+ and r1, r0
+ mvn r2, r6
+ and r2, r3
+ orr r1, r2
+ ldr r2, [sp, #0x24]
+ add r2, r2, r1
+ ldr r1, _0221AFAC ; =0x698098D8
+ add r1, r2, r1
+ add r1, r4, r1
+ lsl r2, r1, #7
+ lsr r1, r1, #0x19
+ orr r2, r1
+ add r2, r2, r6
+ ldr r1, [sp, #0x64]
+ str r1, [sp, #0x28]
+ add r1, r2, #0
+ and r1, r6
+ mvn r4, r2
+ and r4, r0
+ orr r1, r4
+ ldr r4, [sp, #0x28]
+ add r4, r4, r1
+ ldr r1, _0221AFB0 ; =0x74BB0851
+ sub r1, r4, r1
+ add r1, r3, r1
+ lsl r3, r1, #0xc
+ lsr r1, r1, #0x14
+ orr r3, r1
+ add r1, r3, r2
+ ldr r3, [sp, #0x68]
+ str r3, [sp, #0x2c]
+ add r3, r1, #0
+ and r3, r2
+ mvn r4, r1
+ and r4, r6
+ orr r3, r4
+ ldr r4, [sp, #0x2c]
+ add r4, r4, r3
+ ldr r3, _0221AFB4 ; =0x0000A44F
+ sub r3, r4, r3
+ add r0, r0, r3
+ lsl r3, r0, #0x11
+ lsr r0, r0, #0xf
+ orr r3, r0
+ add r4, r3, r1
+ ldr r0, [sp, #0x6c]
+ str r0, [sp, #0x30]
+ add r0, r4, #0
+ and r0, r1
+ mvn r3, r4
+ and r3, r2
+ orr r0, r3
+ ldr r3, [sp, #0x30]
+ add r3, r3, r0
+ ldr r0, _0221AFB8 ; =0x76A32842
+ sub r0, r3, r0
+ add r0, r6, r0
+ lsl r3, r0, #0x16
+ lsr r0, r0, #0xa
+ orr r3, r0
+ add r3, r3, r4
+ ldr r0, [sp, #0x70]
+ str r0, [sp, #0x34]
+ add r0, r3, #0
+ and r0, r4
+ mvn r6, r3
+ and r6, r1
+ orr r0, r6
+ ldr r6, [sp, #0x34]
+ add r6, r6, r0
+ ldr r0, _0221AFBC ; =0x6B901122
+ add r0, r6, r0
+ add r0, r2, r0
+ lsl r2, r0, #7
+ lsr r0, r0, #0x19
+ orr r2, r0
+ add r0, r2, r3
+ ldr r2, [sp, #0x74]
+ str r2, [sp, #0x38]
+ add r2, r0, #0
+ and r2, r3
+ mvn r6, r0
+ and r6, r4
+ orr r2, r6
+ ldr r6, [sp, #0x38]
+ add r6, r6, r2
+ ldr r2, _0221AFC0 ; =0x02678E6D
+ sub r2, r6, r2
+ add r1, r1, r2
+ lsl r2, r1, #0xc
+ lsr r1, r1, #0x14
+ orr r2, r1
+ add r6, r2, r0
+ mvn r2, r6
+ ldr r7, [sp, #0x78]
+ add r1, r6, #0
+ and r1, r0
+ and r2, r3
+ orr r1, r2
+ add r2, r7, r1
+ ldr r1, _0221AFC4 ; =0x5986BC72
+ sub r1, r2, r1
+ add r1, r4, r1
+ lsl r2, r1, #0x11
+ lsr r1, r1, #0xf
+ orr r2, r1
+ add r2, r2, r6
+ mvn r4, r2
+ ldr r1, [sp, #0x7c]
+ str r1, [sp, #0x3c]
+ add r1, r2, #0
+ and r1, r6
+ and r4, r0
+ orr r1, r4
+ ldr r4, [sp, #0x3c]
+ add r4, r4, r1
+ ldr r1, _0221AFC8 ; =0x49B40821
+ add r1, r4, r1
+ add r1, r3, r1
+ lsl r3, r1, #0x16
+ lsr r1, r1, #0xa
+ orr r3, r1
+ add r1, r3, r2
+ add r3, r1, #0
+ and r3, r6
+ add r4, r2, #0
+ bic r4, r6
+ orr r3, r4
+ ldr r4, [sp, #8]
+ add r4, r4, r3
+ ldr r3, _0221AFCC ; =0x09E1DA9E
+ sub r3, r4, r3
+ add r0, r0, r3
+ lsl r3, r0, #5
+ lsr r0, r0, #0x1b
+ orr r3, r0
+ add r4, r3, r1
+ add r0, r4, #0
+ and r0, r2
+ add r3, r1, #0
+ bic r3, r2
+ orr r0, r3
+ ldr r3, [sp, #0x1c]
+ add r3, r3, r0
+ ldr r0, _0221AFD0 ; =0x3FBF4CC0
+ sub r0, r3, r0
+ add r0, r6, r0
+ lsl r3, r0, #9
+ lsr r0, r0, #0x17
+ orr r3, r0
+ add r3, r3, r4
+ add r0, r3, #0
+ and r0, r1
+ add r6, r4, #0
+ bic r6, r1
+ orr r0, r6
+ ldr r6, [sp, #0x30]
+ add r6, r6, r0
+ ldr r0, _0221AFD4 ; =0x265E5A51
+ add r0, r6, r0
+ add r0, r2, r0
+ lsl r2, r0, #0xe
+ lsr r0, r0, #0x12
+ orr r2, r0
+ add r0, r2, r3
+ add r2, r0, #0
+ and r2, r4
+ add r6, r3, #0
+ bic r6, r4
+ orr r2, r6
+ ldr r6, [sp, #4]
+ add r6, r6, r2
+ ldr r2, _0221AFD8 ; =0x16493856
+ sub r2, r6, r2
+ add r1, r1, r2
+ lsl r2, r1, #0x14
+ lsr r1, r1, #0xc
+ orr r2, r1
+ add r6, r2, r0
+ add r1, r6, #0
+ and r1, r3
+ add r2, r0, #0
+ bic r2, r3
+ orr r1, r2
+ ldr r2, [sp, #0x18]
+ add r2, r2, r1
+ ldr r1, _0221AFDC ; =0x29D0EFA3
+ sub r1, r2, r1
+ add r1, r4, r1
+ lsl r2, r1, #5
+ lsr r1, r1, #0x1b
+ orr r2, r1
+ add r2, r2, r6
+ add r1, r2, #0
+ and r1, r0
+ add r4, r6, #0
+ bic r4, r0
+ orr r1, r4
+ ldr r4, [sp, #0x2c]
+ add r4, r4, r1
+ ldr r1, _0221AFE0 ; =0x02441453
+ add r1, r4, r1
+ add r1, r3, r1
+ lsl r3, r1, #9
+ lsr r1, r1, #0x17
+ orr r3, r1
+ add r1, r3, r2
+ add r3, r1, #0
+ and r3, r6
+ add r4, r2, #0
+ bic r4, r6
+ orr r3, r4
+ ldr r4, [sp, #0x3c]
+ add r4, r4, r3
+ ldr r3, _0221AFE4 ; =0x275E197F
+ sub r3, r4, r3
+ add r0, r0, r3
+ lsl r3, r0, #0xe
+ lsr r0, r0, #0x12
+ orr r3, r0
+ add r4, r3, r1
+ add r0, r4, #0
+ and r0, r2
+ add r3, r1, #0
+ bic r3, r2
+ orr r0, r3
+ ldr r3, [sp, #0x14]
+ add r3, r3, r0
+ ldr r0, _0221AFE8 ; =0x182C0438
+ sub r0, r3, r0
+ add r0, r6, r0
+ lsl r3, r0, #0x14
+ lsr r0, r0, #0xc
+ orr r3, r0
+ add r3, r3, r4
+ add r0, r3, #0
+ and r0, r1
+ add r6, r4, #0
+ bic r6, r1
+ orr r0, r6
+ ldr r6, [sp, #0x28]
+ add r6, r6, r0
+ ldr r0, _0221AFEC ; =0x21E1CDE6
+ add r0, r6, r0
+ add r0, r2, r0
+ lsl r2, r0, #5
+ lsr r0, r0, #0x1b
+ orr r2, r0
+ add r0, r2, r3
+ add r6, r0, #0
+ and r6, r4
+ add r2, r3, #0
+ bic r2, r4
+ orr r6, r2
+ add r6, r7, r6
+ ldr r2, _0221AFF0 ; =0x3CC8F82A
+ sub r2, r6, r2
+ add r1, r1, r2
+ lsl r2, r1, #9
+ lsr r1, r1, #0x17
+ orr r2, r1
+ add r6, r2, r0
+ add r1, r6, #0
+ and r1, r3
+ add r2, r0, #0
+ bic r2, r3
+ orr r1, r2
+ ldr r2, [sp, #0x10]
+ add r2, r2, r1
+ ldr r1, _0221AFF4 ; =0x0B2AF279
+ sub r1, r2, r1
+ add r1, r4, r1
+ lsl r2, r1, #0xe
+ lsr r1, r1, #0x12
+ orr r2, r1
+ add r2, r2, r6
+ add r1, r2, #0
+ and r1, r0
+ add r4, r6, #0
+ bic r4, r0
+ orr r1, r4
+ ldr r4, [sp, #0x24]
+ add r4, r4, r1
+ ldr r1, _0221AFF8 ; =0x455A14ED
+ add r1, r4, r1
+ add r1, r3, r1
+ lsl r3, r1, #0x14
+ lsr r1, r1, #0xc
+ orr r3, r1
+ add r1, r3, r2
+ add r3, r1, #0
+ and r3, r6
+ add r4, r2, #0
+ bic r4, r6
+ orr r3, r4
+ ldr r4, [sp, #0x38]
+ add r4, r4, r3
+ ldr r3, _0221AFFC ; =0x561C16FB
+ sub r3, r4, r3
+ add r0, r0, r3
+ lsl r3, r0, #5
+ lsr r0, r0, #0x1b
+ orr r3, r0
+ add r4, r3, r1
+ add r0, r4, #0
+ and r0, r2
+ add r3, r1, #0
+ bic r3, r2
+ orr r0, r3
+ ldr r3, [sp, #0xc]
+ add r3, r3, r0
+ ldr r0, _0221B000 ; =0x03105C08
+ sub r0, r3, r0
+ add r0, r6, r0
+ lsl r3, r0, #9
+ lsr r0, r0, #0x17
+ orr r3, r0
+ add r3, r3, r4
+ add r0, r3, #0
+ and r0, r1
+ add r6, r4, #0
+ bic r6, r1
+ orr r0, r6
+ ldr r6, [sp, #0x20]
+ add r6, r6, r0
+ ldr r0, _0221B004 ; =0x676F02D9
+ add r0, r6, r0
+ add r0, r2, r0
+ lsl r2, r0, #0xe
+ lsr r0, r0, #0x12
+ orr r2, r0
+ add r0, r2, r3
+ add r2, r0, #0
+ and r2, r4
+ add r6, r3, #0
+ bic r6, r4
+ orr r2, r6
+ ldr r6, [sp, #0x34]
+ add r6, r6, r2
+ ldr r2, _0221B008 ; =0x72D5B376
+ sub r2, r6, r2
+ add r1, r1, r2
+ lsl r2, r1, #0x14
+ lsr r1, r1, #0xc
+ orr r2, r1
+ add r6, r2, r0
+ add r2, r6, #0
+ eor r2, r0
+ add r1, r3, #0
+ eor r1, r2
+ ldr r2, [sp, #0x18]
+ add r2, r2, r1
+ ldr r1, _0221B00C ; =0x0005C6BE
+ sub r1, r2, r1
+ add r1, r4, r1
+ lsl r2, r1, #4
+ lsr r1, r1, #0x1c
+ orr r2, r1
+ add r2, r2, r6
+ add r4, r2, #0
+ eor r4, r6
+ add r1, r0, #0
+ eor r1, r4
+ ldr r4, [sp, #0x24]
+ add r4, r4, r1
+ ldr r1, _0221B010 ; =0x788E097F
+ sub r1, r4, r1
+ add r1, r3, r1
+ lsl r3, r1, #0xb
+ lsr r1, r1, #0x15
+ orr r3, r1
+ add r1, r3, r2
+ add r4, r1, #0
+ eor r4, r2
+ add r3, r6, #0
+ eor r3, r4
+ ldr r4, [sp, #0x30]
+ add r4, r4, r3
+ ldr r3, _0221B014 ; =0x6D9D6122
+ b _0221B018
+ .align 2, 0
+_0221AF8C: .word 0x28955B88
+_0221AF90: .word 0x173848AA
+_0221AF94: .word 0x242070DB
+_0221AF98: .word 0x3E423112
+_0221AF9C: .word 0x0A83F051
+_0221AFA0: .word 0x4787C62A
+_0221AFA4: .word 0x57CFB9ED
+_0221AFA8: .word 0x02B96AFF
+_0221AFAC: .word 0x698098D8
+_0221AFB0: .word 0x74BB0851
+_0221AFB4: .word 0x0000A44F
+_0221AFB8: .word 0x76A32842
+_0221AFBC: .word 0x6B901122
+_0221AFC0: .word 0x02678E6D
+_0221AFC4: .word 0x5986BC72
+_0221AFC8: .word 0x49B40821
+_0221AFCC: .word 0x09E1DA9E
+_0221AFD0: .word 0x3FBF4CC0
+_0221AFD4: .word 0x265E5A51
+_0221AFD8: .word 0x16493856
+_0221AFDC: .word 0x29D0EFA3
+_0221AFE0: .word 0x02441453
+_0221AFE4: .word 0x275E197F
+_0221AFE8: .word 0x182C0438
+_0221AFEC: .word 0x21E1CDE6
+_0221AFF0: .word 0x3CC8F82A
+_0221AFF4: .word 0x0B2AF279
+_0221AFF8: .word 0x455A14ED
+_0221AFFC: .word 0x561C16FB
+_0221B000: .word 0x03105C08
+_0221B004: .word 0x676F02D9
+_0221B008: .word 0x72D5B376
+_0221B00C: .word 0x0005C6BE
+_0221B010: .word 0x788E097F
+_0221B014: .word 0x6D9D6122
+_0221B018:
+ add r3, r4, r3
+ add r0, r0, r3
+ lsl r3, r0, #0x10
+ lsr r0, r0, #0x10
+ orr r3, r0
+ add r4, r3, r1
+ add r0, r4, #0
+ eor r0, r1
+ add r3, r2, #0
+ eor r3, r0
+ add r3, r7, r3
+ ldr r0, _0221B35C ; =0x021AC7F4
+ sub r0, r3, r0
+ add r0, r6, r0
+ lsl r3, r0, #0x17
+ lsr r0, r0, #9
+ orr r3, r0
+ add r3, r3, r4
+ add r6, r3, #0
+ eor r6, r4
+ add r0, r1, #0
+ eor r0, r6
+ ldr r6, [sp, #8]
+ add r6, r6, r0
+ ldr r0, _0221B360 ; =0x5B4115BC
+ sub r0, r6, r0
+ add r0, r2, r0
+ lsl r2, r0, #4
+ lsr r0, r0, #0x1c
+ orr r2, r0
+ add r0, r2, r3
+ add r6, r0, #0
+ eor r6, r3
+ add r2, r4, #0
+ eor r2, r6
+ ldr r6, [sp, #0x14]
+ add r6, r6, r2
+ ldr r2, _0221B364 ; =0x4BDECFA9
+ add r2, r6, r2
+ add r1, r1, r2
+ lsl r2, r1, #0xb
+ lsr r1, r1, #0x15
+ orr r2, r1
+ add r6, r2, r0
+ add r2, r6, #0
+ eor r2, r0
+ add r1, r3, #0
+ eor r1, r2
+ ldr r2, [sp, #0x20]
+ add r2, r2, r1
+ ldr r1, _0221B368 ; =0x0944B4A0
+ sub r1, r2, r1
+ add r1, r4, r1
+ lsl r2, r1, #0x10
+ lsr r1, r1, #0x10
+ orr r2, r1
+ add r2, r2, r6
+ add r4, r2, #0
+ eor r4, r6
+ add r1, r0, #0
+ eor r1, r4
+ ldr r4, [sp, #0x2c]
+ add r4, r4, r1
+ ldr r1, _0221B36C ; =0x41404390
+ sub r1, r4, r1
+ add r1, r3, r1
+ lsl r3, r1, #0x17
+ lsr r1, r1, #9
+ orr r3, r1
+ add r1, r3, r2
+ add r4, r1, #0
+ eor r4, r2
+ add r3, r6, #0
+ eor r3, r4
+ ldr r4, [sp, #0x38]
+ add r4, r4, r3
+ ldr r3, _0221B370 ; =0x289B7EC6
+ add r3, r4, r3
+ add r0, r0, r3
+ lsl r3, r0, #4
+ lsr r0, r0, #0x1c
+ orr r3, r0
+ add r4, r3, r1
+ add r3, r4, #0
+ eor r3, r1
+ add r0, r2, #0
+ eor r0, r3
+ ldr r3, [sp, #4]
+ add r3, r3, r0
+ ldr r0, _0221B374 ; =0x155ED806
+ sub r0, r3, r0
+ add r0, r6, r0
+ lsl r3, r0, #0xb
+ lsr r0, r0, #0x15
+ orr r3, r0
+ add r3, r3, r4
+ add r6, r3, #0
+ eor r6, r4
+ add r0, r1, #0
+ eor r0, r6
+ ldr r6, [sp, #0x10]
+ add r6, r6, r0
+ ldr r0, _0221B378 ; =0x2B10CF7B
+ sub r0, r6, r0
+ add r0, r2, r0
+ lsl r2, r0, #0x10
+ lsr r0, r0, #0x10
+ orr r2, r0
+ add r0, r2, r3
+ add r6, r0, #0
+ eor r6, r3
+ add r2, r4, #0
+ eor r2, r6
+ ldr r6, [sp, #0x1c]
+ add r6, r6, r2
+ ldr r2, _0221B37C ; =0x04881D05
+ add r2, r6, r2
+ add r1, r1, r2
+ lsl r2, r1, #0x17
+ lsr r1, r1, #9
+ orr r2, r1
+ add r6, r2, r0
+ add r2, r6, #0
+ eor r2, r0
+ add r1, r3, #0
+ eor r1, r2
+ ldr r2, [sp, #0x28]
+ add r2, r2, r1
+ ldr r1, _0221B380 ; =0x262B2FC7
+ sub r1, r2, r1
+ add r1, r4, r1
+ lsl r2, r1, #4
+ lsr r1, r1, #0x1c
+ orr r2, r1
+ add r2, r2, r6
+ add r4, r2, #0
+ eor r4, r6
+ add r1, r0, #0
+ eor r1, r4
+ ldr r4, [sp, #0x34]
+ add r4, r4, r1
+ ldr r1, _0221B384 ; =0x1924661B
+ sub r1, r4, r1
+ add r1, r3, r1
+ lsl r3, r1, #0xb
+ lsr r1, r1, #0x15
+ orr r3, r1
+ add r1, r3, r2
+ add r4, r1, #0
+ eor r4, r2
+ add r3, r6, #0
+ eor r3, r4
+ ldr r4, [sp, #0x3c]
+ add r4, r4, r3
+ ldr r3, _0221B388 ; =0x1FA27CF8
+ add r3, r4, r3
+ add r0, r0, r3
+ lsl r3, r0, #0x10
+ lsr r0, r0, #0x10
+ orr r3, r0
+ add r4, r3, r1
+ add r3, r4, #0
+ eor r3, r1
+ add r0, r2, #0
+ eor r0, r3
+ ldr r3, [sp, #0xc]
+ add r3, r3, r0
+ ldr r0, _0221B38C ; =0x3B53A99B
+ sub r0, r3, r0
+ add r0, r6, r0
+ lsl r3, r0, #0x17
+ lsr r0, r0, #9
+ orr r3, r0
+ add r3, r3, r4
+ mvn r6, r1
+ add r0, r3, #0
+ orr r0, r6
+ add r6, r4, #0
+ eor r6, r0
+ ldr r0, [sp, #4]
+ add r6, r0, r6
+ ldr r0, _0221B390 ; =0x0BD6DDBC
+ sub r0, r6, r0
+ add r0, r2, r0
+ lsl r2, r0, #6
+ lsr r0, r0, #0x1a
+ orr r2, r0
+ add r0, r2, r3
+ mvn r6, r4
+ add r2, r0, #0
+ orr r2, r6
+ add r6, r3, #0
+ eor r6, r2
+ ldr r2, [sp, #0x20]
+ add r6, r2, r6
+ ldr r2, _0221B394 ; =0x432AFF97
+ add r2, r6, r2
+ add r1, r1, r2
+ lsl r2, r1, #0xa
+ lsr r1, r1, #0x16
+ orr r2, r1
+ add r1, r2, r0
+ mvn r2, r3
+ add r6, r1, #0
+ orr r6, r2
+ add r2, r0, #0
+ eor r2, r6
+ add r6, r7, r2
+ ldr r2, _0221B398 ; =0x546BDC59
+ sub r2, r6, r2
+ add r2, r4, r2
+ lsl r4, r2, #0xf
+ lsr r2, r2, #0x11
+ orr r4, r2
+ add r2, r4, r1
+ mvn r6, r0
+ add r4, r2, #0
+ orr r4, r6
+ add r6, r1, #0
+ eor r6, r4
+ ldr r4, [sp, #0x18]
+ add r6, r4, r6
+ ldr r4, _0221B39C ; =0x036C5FC7
+ sub r4, r6, r4
+ add r3, r3, r4
+ lsl r4, r3, #0x15
+ lsr r3, r3, #0xb
+ orr r4, r3
+ add r4, r4, r2
+ mvn r6, r1
+ add r3, r4, #0
+ orr r3, r6
+ add r6, r2, #0
+ eor r6, r3
+ ldr r3, [sp, #0x34]
+ add r6, r3, r6
+ ldr r3, _0221B3A0 ; =0x655B59C3
+ add r3, r6, r3
+ add r0, r0, r3
+ lsl r3, r0, #6
+ lsr r0, r0, #0x1a
+ orr r3, r0
+ add r3, r3, r4
+ mvn r6, r2
+ add r0, r3, #0
+ orr r0, r6
+ add r6, r4, #0
+ eor r6, r0
+ ldr r0, [sp, #0x10]
+ add r6, r0, r6
+ ldr r0, _0221B3A4 ; =0x70F3336E
+ sub r0, r6, r0
+ add r0, r1, r0
+ lsl r1, r0, #0xa
+ lsr r0, r0, #0x16
+ orr r1, r0
+ add r0, r1, r3
+ mvn r6, r4
+ add r1, r0, #0
+ orr r1, r6
+ add r6, r3, #0
+ eor r6, r1
+ ldr r1, [sp, #0x2c]
+ add r6, r1, r6
+ ldr r1, _0221B3A8 ; =0x00100B83
+ sub r1, r6, r1
+ add r1, r2, r1
+ lsl r2, r1, #0xf
+ lsr r1, r1, #0x11
+ orr r2, r1
+ add r6, r2, r0
+ mvn r2, r3
+ add r1, r6, #0
+ orr r1, r2
+ add r2, r0, #0
+ eor r2, r1
+ ldr r1, [sp, #8]
+ add r2, r1, r2
+ ldr r1, _0221B3AC ; =0x7A7BA22F
+ sub r1, r2, r1
+ add r1, r4, r1
+ lsl r2, r1, #0x15
+ lsr r1, r1, #0xb
+ orr r2, r1
+ add r2, r2, r6
+ mvn r4, r0
+ add r1, r2, #0
+ orr r1, r4
+ add r4, r6, #0
+ eor r4, r1
+ ldr r1, [sp, #0x24]
+ add r4, r1, r4
+ ldr r1, _0221B3B0 ; =0x6FA87E4F
+ add r1, r4, r1
+ add r1, r3, r1
+ lsl r3, r1, #6
+ lsr r1, r1, #0x1a
+ orr r3, r1
+ add r1, r3, r2
+ mvn r4, r6
+ add r3, r1, #0
+ orr r3, r4
+ add r4, r2, #0
+ eor r4, r3
+ ldr r3, [sp, #0x3c]
+ add r4, r3, r4
+ ldr r3, _0221B3B4 ; =0x01D31920
+ sub r3, r4, r3
+ add r0, r0, r3
+ lsl r3, r0, #0xa
+ lsr r0, r0, #0x16
+ orr r3, r0
+ add r4, r3, r1
+ mvn r3, r2
+ add r0, r4, #0
+ orr r0, r3
+ add r3, r1, #0
+ eor r3, r0
+ ldr r0, [sp, #0x1c]
+ add r3, r0, r3
+ ldr r0, _0221B3B8 ; =0x5CFEBCEC
+ sub r0, r3, r0
+ add r0, r6, r0
+ lsl r3, r0, #0xf
+ lsr r0, r0, #0x11
+ orr r3, r0
+ add r3, r3, r4
+ mvn r6, r1
+ add r0, r3, #0
+ orr r0, r6
+ add r6, r4, #0
+ eor r6, r0
+ ldr r0, [sp, #0x38]
+ add r6, r0, r6
+ ldr r0, _0221B3BC ; =0x4E0811A1
+ add r0, r6, r0
+ add r0, r2, r0
+ lsl r2, r0, #0x15
+ lsr r0, r0, #0xb
+ orr r2, r0
+ add r0, r2, r3
+ mvn r6, r4
+ add r2, r0, #0
+ orr r2, r6
+ add r6, r3, #0
+ eor r6, r2
+ ldr r2, [sp, #0x14]
+ add r6, r2, r6
+ ldr r2, _0221B3C0 ; =0x08AC817E
+ sub r2, r6, r2
+ add r1, r1, r2
+ lsl r2, r1, #6
+ lsr r1, r1, #0x1a
+ orr r2, r1
+ add r6, r2, r0
+ mvn r2, r3
+ add r1, r6, #0
+ orr r1, r2
+ add r2, r0, #0
+ eor r2, r1
+ ldr r1, [sp, #0x30]
+ add r2, r1, r2
+ ldr r1, _0221B3C4 ; =0x42C50DCB
+ sub r1, r2, r1
+ add r1, r4, r1
+ lsl r2, r1, #0xa
+ lsr r1, r1, #0x16
+ orr r2, r1
+ add r2, r2, r6
+ mvn r4, r0
+ add r1, r2, #0
+ orr r1, r4
+ add r4, r6, #0
+ eor r4, r1
+ ldr r1, [sp, #0xc]
+ add r4, r1, r4
+ ldr r1, _0221B3C8 ; =0x2AD7D2BB
+ add r1, r4, r1
+ add r1, r3, r1
+ lsl r3, r1, #0xf
+ lsr r1, r1, #0x11
+ orr r3, r1
+ add r1, r3, r2
+ mvn r4, r6
+ add r3, r1, #0
+ orr r3, r4
+ add r4, r2, #0
+ eor r4, r3
+ ldr r3, [sp, #0x28]
+ add r4, r3, r4
+ ldr r3, _0221B3CC ; =0x14792C6F
+ sub r3, r4, r3
+ add r0, r0, r3
+ lsl r3, r0, #0x15
+ lsr r0, r0, #0xb
+ orr r3, r0
+ add r0, r3, r1
+ ldr r3, [r5]
+ add r3, r3, r6
+ str r3, [r5]
+ ldr r3, [r5, #4]
+ add r0, r3, r0
+ str r0, [r5, #4]
+ ldr r0, [r5, #8]
+ add r0, r0, r1
+ str r0, [r5, #8]
+ ldr r0, [r5, #0xc]
+ add r0, r0, r2
+ str r0, [r5, #0xc]
+ add r0, sp, #0x40
+ mov r1, #0
+ mov r2, #0x40
+ bl MOD13_0221AAE0
+ add sp, #0x84
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221B35C: .word 0x021AC7F4
+_0221B360: .word 0x5B4115BC
+_0221B364: .word 0x4BDECFA9
+_0221B368: .word 0x0944B4A0
+_0221B36C: .word 0x41404390
+_0221B370: .word 0x289B7EC6
+_0221B374: .word 0x155ED806
+_0221B378: .word 0x2B10CF7B
+_0221B37C: .word 0x04881D05
+_0221B380: .word 0x262B2FC7
+_0221B384: .word 0x1924661B
+_0221B388: .word 0x1FA27CF8
+_0221B38C: .word 0x3B53A99B
+_0221B390: .word 0x0BD6DDBC
+_0221B394: .word 0x432AFF97
+_0221B398: .word 0x546BDC59
+_0221B39C: .word 0x036C5FC7
+_0221B3A0: .word 0x655B59C3
+_0221B3A4: .word 0x70F3336E
+_0221B3A8: .word 0x00100B83
+_0221B3AC: .word 0x7A7BA22F
+_0221B3B0: .word 0x6FA87E4F
+_0221B3B4: .word 0x01D31920
+_0221B3B8: .word 0x5CFEBCEC
+_0221B3BC: .word 0x4E0811A1
+_0221B3C0: .word 0x08AC817E
+_0221B3C4: .word 0x42C50DCB
+_0221B3C8: .word 0x2AD7D2BB
+_0221B3CC: .word 0x14792C6F
+
+ thumb_func_start MOD13_0221B3D0
+MOD13_0221B3D0: ; 0x0221B3D0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, sp, #0
+ add r1, #0x10
+ mov r2, #8
+ bl MOD13_0221AB44
+ ldr r0, [r4, #0x10]
+ lsr r1, r0, #3
+ mov r0, #0x3f
+ and r1, r0
+ cmp r1, #0x38
+ bhs _0221B3F4
+ mov r0, #0x38
+ sub r2, r0, r1
+ b _0221B3F8
+_0221B3F4:
+ mov r0, #0x78
+ sub r2, r0, r1
+_0221B3F8:
+ add r0, r4, #0
+ ldr r1, _0221B428 ; =0x0223F894
+ bl MOD13_0221B42C
+ add r0, r4, #0
+ add r1, sp, #0
+ mov r2, #8
+ bl MOD13_0221B42C
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x10
+ bl MOD13_0221AB44
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x58
+ bl MOD13_0221AAE0
+ add sp, #0xc
+ pop {r4, r5}
+ pop {r3}
+ bx r3
+ nop
+_0221B428: .word 0x0223F894
+
+ thumb_func_start MOD13_0221B42C
+MOD13_0221B42C: ; 0x0221B42C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r7, r1, #0
+ add r6, r2, #0
+ ldr r3, [r5, #0x10]
+ lsr r0, r3, #3
+ mov r1, #0x3f
+ and r0, r1
+ lsl r2, r6, #3
+ add r1, r3, r2
+ str r1, [r5, #0x10]
+ ldr r1, [r5, #0x10]
+ cmp r1, r2
+ bhs _0221B450
+ ldr r1, [r5, #0x14]
+ add r1, r1, #1
+ str r1, [r5, #0x14]
+_0221B450:
+ ldr r2, [r5, #0x14]
+ lsr r1, r6, #0x1d
+ add r1, r2, r1
+ str r1, [r5, #0x14]
+ mov r1, #0x40
+ sub r4, r1, r0
+ cmp r6, r4
+ blo _0221B496
+ add r1, r5, #0
+ add r1, #0x18
+ add r0, r1, r0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD13_0221AAF8
+ add r0, r5, #0
+ add r1, r5, #0
+ add r1, #0x18
+ bl MOD13_0221AB74
+ add r0, r4, #0
+ add r0, #0x3f
+ cmp r0, r6
+ bhs _0221B492
+_0221B480:
+ add r0, r5, #0
+ add r1, r7, r4
+ bl MOD13_0221AB74
+ add r4, #0x40
+ add r0, r4, #0
+ add r0, #0x3f
+ cmp r0, r6
+ blo _0221B480
+_0221B492:
+ mov r0, #0
+ b _0221B498
+_0221B496:
+ mov r4, #0
+_0221B498:
+ add r5, #0x18
+ add r0, r5, r0
+ add r1, r7, r4
+ sub r2, r6, r4
+ bl MOD13_0221AAF8
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+
+ thumb_func_start MOD13_0221B4AC
+MOD13_0221B4AC: ; 0x0221B4AC
+ mov r1, #0
+ str r1, [r0, #0x14]
+ ldr r1, [r0, #0x14]
+ str r1, [r0, #0x10]
+ ldr r1, _0221B4C8 ; =0x67452301
+ str r1, [r0]
+ ldr r1, _0221B4CC ; =0xEFCDAB89
+ str r1, [r0, #4]
+ ldr r1, _0221B4D0 ; =0x98BADCFE
+ str r1, [r0, #8]
+ ldr r1, _0221B4D4 ; =0x10325476
+ str r1, [r0, #0xc]
+ bx lr
+ nop
+_0221B4C8: .word 0x67452301
+_0221B4CC: .word 0xEFCDAB89
+_0221B4D0: .word 0x98BADCFE
+_0221B4D4: .word 0x10325476
+
+ thumb_func_start MOD13_0221B4D8
+MOD13_0221B4D8: ; 0x0221B4D8
+ push {r4, r5, r6, r7}
+ sub sp, #0x60
+ add r4, r1, #0
+ add r1, r2, #0
+ str r3, [sp]
+ ldr r2, [r0]
+ str r2, [sp, #4]
+ ldrb r5, [r1, #3]
+ ldrb r2, [r1, #2]
+ lsl r3, r2, #8
+ ldrb r2, [r1]
+ lsl r2, r2, #0x18
+ ldrb r6, [r1, #1]
+ lsl r6, r6, #0x10
+ eor r2, r6
+ eor r3, r2
+ eor r5, r3
+ ldr r2, [sp, #4]
+ eor r2, r5
+ str r2, [sp, #4]
+ ldr r2, [r0, #4]
+ str r2, [sp, #8]
+ ldrb r5, [r1, #7]
+ ldrb r2, [r1, #6]
+ lsl r3, r2, #8
+ ldrb r2, [r1, #4]
+ lsl r2, r2, #0x18
+ ldrb r6, [r1, #5]
+ lsl r6, r6, #0x10
+ eor r2, r6
+ eor r3, r2
+ eor r5, r3
+ ldr r2, [sp, #8]
+ eor r2, r5
+ str r2, [sp, #8]
+ ldr r2, [r0, #8]
+ str r2, [sp, #0x2c]
+ ldrb r5, [r1, #0xb]
+ ldrb r2, [r1, #0xa]
+ lsl r3, r2, #8
+ ldrb r2, [r1, #8]
+ lsl r2, r2, #0x18
+ ldrb r6, [r1, #9]
+ lsl r6, r6, #0x10
+ eor r2, r6
+ eor r3, r2
+ eor r5, r3
+ ldr r2, [sp, #0x2c]
+ eor r2, r5
+ str r2, [sp, #0x2c]
+ ldr r6, [r0, #0xc]
+ ldrb r5, [r1, #0xf]
+ ldrb r2, [r1, #0xe]
+ lsl r3, r2, #8
+ ldrb r2, [r1, #0xc]
+ lsl r2, r2, #0x18
+ ldrb r1, [r1, #0xd]
+ lsl r1, r1, #0x10
+ eor r2, r1
+ eor r3, r2
+ eor r5, r3
+ eor r6, r5
+ asr r1, r4, #1
+ str r1, [sp, #0xc]
+ mov r2, #0xff
+_0221B55A:
+ ldr r1, [r0, #0x10]
+ str r1, [sp, #0x10]
+ ldr r1, [sp, #8]
+ and r1, r2
+ lsl r3, r1, #2
+ ldr r1, _0221B8E0 ; =0x0223C86C
+ ldr r5, [r1, r3]
+ ldr r1, [sp, #0x2c]
+ lsr r1, r1, #8
+ and r1, r2
+ lsl r3, r1, #2
+ ldr r1, _0221B8E4 ; =0x0223C46C
+ ldr r4, [r1, r3]
+ ldr r1, [sp, #4]
+ lsr r1, r1, #0x18
+ lsl r3, r1, #2
+ ldr r1, _0221B8E8 ; =0x0223E46C
+ ldr r7, [r1, r3]
+ lsr r1, r6, #0x10
+ and r1, r2
+ lsl r3, r1, #2
+ ldr r1, _0221B8EC ; =0x0223E86C
+ ldr r1, [r1, r3]
+ eor r7, r1
+ eor r4, r7
+ eor r5, r4
+ ldr r1, [sp, #0x10]
+ eor r1, r5
+ str r1, [sp, #0x10]
+ ldr r1, [r0, #0x14]
+ str r1, [sp, #0x14]
+ ldr r1, [sp, #0x2c]
+ and r1, r2
+ lsl r3, r1, #2
+ ldr r1, _0221B8E0 ; =0x0223C86C
+ ldr r5, [r1, r3]
+ lsr r1, r6, #8
+ and r1, r2
+ lsl r3, r1, #2
+ ldr r1, _0221B8E4 ; =0x0223C46C
+ ldr r4, [r1, r3]
+ ldr r1, [sp, #8]
+ lsr r1, r1, #0x18
+ lsl r3, r1, #2
+ ldr r1, _0221B8E8 ; =0x0223E46C
+ ldr r7, [r1, r3]
+ ldr r1, [sp, #4]
+ lsr r1, r1, #0x10
+ and r1, r2
+ lsl r3, r1, #2
+ ldr r1, _0221B8EC ; =0x0223E86C
+ ldr r1, [r1, r3]
+ eor r7, r1
+ eor r4, r7
+ eor r5, r4
+ ldr r1, [sp, #0x14]
+ eor r1, r5
+ str r1, [sp, #0x14]
+ ldr r5, [r0, #0x18]
+ add r1, r6, #0
+ and r1, r2
+ lsl r3, r1, #2
+ ldr r1, _0221B8E0 ; =0x0223C86C
+ ldr r4, [r1, r3]
+ ldr r1, [sp, #4]
+ lsr r1, r1, #8
+ and r1, r2
+ lsl r3, r1, #2
+ ldr r1, _0221B8E4 ; =0x0223C46C
+ ldr r1, [r1, r3]
+ str r1, [sp, #0x18]
+ ldr r1, [sp, #0x2c]
+ lsr r1, r1, #0x18
+ lsl r3, r1, #2
+ ldr r1, _0221B8E8 ; =0x0223E46C
+ ldr r7, [r1, r3]
+ ldr r1, [sp, #8]
+ lsr r1, r1, #0x10
+ and r1, r2
+ lsl r3, r1, #2
+ ldr r1, _0221B8EC ; =0x0223E86C
+ ldr r1, [r1, r3]
+ eor r7, r1
+ ldr r1, [sp, #0x18]
+ eor r1, r7
+ str r1, [sp, #0x18]
+ eor r4, r1
+ eor r5, r4
+ ldr r1, [r0, #0x1c]
+ ldr r3, [sp, #4]
+ and r3, r2
+ str r3, [sp, #4]
+ lsl r4, r3, #2
+ ldr r3, _0221B8E0 ; =0x0223C86C
+ ldr r3, [r3, r4]
+ str r3, [sp, #0x30]
+ ldr r3, [sp, #8]
+ lsr r3, r3, #8
+ and r3, r2
+ lsl r4, r3, #2
+ ldr r3, _0221B8E4 ; =0x0223C46C
+ ldr r7, [r3, r4]
+ lsr r3, r6, #0x18
+ lsl r4, r3, #2
+ ldr r3, _0221B8E8 ; =0x0223E46C
+ ldr r6, [r3, r4]
+ ldr r3, [sp, #0x2c]
+ lsr r3, r3, #0x10
+ and r3, r2
+ lsl r4, r3, #2
+ ldr r3, _0221B8EC ; =0x0223E86C
+ ldr r3, [r3, r4]
+ eor r6, r3
+ eor r7, r6
+ ldr r3, [sp, #0x30]
+ eor r3, r7
+ str r3, [sp, #0x30]
+ eor r1, r3
+ add r0, #0x20
+ ldr r3, [sp, #0xc]
+ sub r3, r3, #1
+ str r3, [sp, #0xc]
+ cmp r3, #0
+ beq _0221B746
+ ldr r3, [r0]
+ str r3, [sp, #4]
+ ldr r3, [sp, #0x14]
+ and r3, r2
+ lsl r4, r3, #2
+ ldr r3, _0221B8E0 ; =0x0223C86C
+ ldr r6, [r3, r4]
+ lsr r3, r5, #8
+ and r3, r2
+ lsl r4, r3, #2
+ ldr r3, _0221B8E4 ; =0x0223C46C
+ ldr r3, [r3, r4]
+ str r3, [sp, #0x34]
+ ldr r3, [sp, #0x10]
+ lsr r3, r3, #0x18
+ lsl r4, r3, #2
+ ldr r3, _0221B8E8 ; =0x0223E46C
+ ldr r7, [r3, r4]
+ lsr r3, r1, #0x10
+ and r3, r2
+ lsl r4, r3, #2
+ ldr r3, _0221B8EC ; =0x0223E86C
+ ldr r3, [r3, r4]
+ eor r7, r3
+ ldr r3, [sp, #0x34]
+ eor r3, r7
+ str r3, [sp, #0x34]
+ eor r6, r3
+ ldr r3, [sp, #4]
+ eor r3, r6
+ str r3, [sp, #4]
+ ldr r3, [r0, #4]
+ str r3, [sp, #8]
+ add r3, r5, #0
+ and r3, r2
+ lsl r4, r3, #2
+ ldr r3, _0221B8E0 ; =0x0223C86C
+ ldr r6, [r3, r4]
+ lsr r3, r1, #8
+ and r3, r2
+ lsl r4, r3, #2
+ ldr r3, _0221B8E4 ; =0x0223C46C
+ ldr r3, [r3, r4]
+ str r3, [sp, #0x38]
+ ldr r3, [sp, #0x14]
+ lsr r3, r3, #0x18
+ lsl r4, r3, #2
+ ldr r3, _0221B8E8 ; =0x0223E46C
+ ldr r7, [r3, r4]
+ ldr r3, [sp, #0x10]
+ lsr r3, r3, #0x10
+ and r3, r2
+ lsl r4, r3, #2
+ ldr r3, _0221B8EC ; =0x0223E86C
+ ldr r3, [r3, r4]
+ eor r7, r3
+ ldr r3, [sp, #0x38]
+ eor r3, r7
+ str r3, [sp, #0x38]
+ eor r6, r3
+ ldr r3, [sp, #8]
+ eor r3, r6
+ str r3, [sp, #8]
+ ldr r3, [r0, #8]
+ str r3, [sp, #0x2c]
+ add r3, r1, #0
+ and r3, r2
+ lsl r4, r3, #2
+ ldr r3, _0221B8E0 ; =0x0223C86C
+ ldr r6, [r3, r4]
+ ldr r3, [sp, #0x10]
+ lsr r3, r3, #8
+ and r3, r2
+ lsl r4, r3, #2
+ ldr r3, _0221B8E4 ; =0x0223C46C
+ ldr r3, [r3, r4]
+ str r3, [sp, #0x1c]
+ lsr r3, r5, #0x18
+ lsl r4, r3, #2
+ ldr r3, _0221B8E8 ; =0x0223E46C
+ ldr r7, [r3, r4]
+ ldr r3, [sp, #0x14]
+ lsr r3, r3, #0x10
+ and r3, r2
+ lsl r4, r3, #2
+ ldr r3, _0221B8EC ; =0x0223E86C
+ ldr r3, [r3, r4]
+ eor r7, r3
+ ldr r3, [sp, #0x1c]
+ eor r3, r7
+ str r3, [sp, #0x1c]
+ eor r6, r3
+ ldr r3, [sp, #0x2c]
+ eor r3, r6
+ str r3, [sp, #0x2c]
+ ldr r6, [r0, #0xc]
+ ldr r3, [sp, #0x10]
+ and r3, r2
+ str r3, [sp, #0x10]
+ lsl r4, r3, #2
+ ldr r3, _0221B8E0 ; =0x0223C86C
+ ldr r7, [r3, r4]
+ ldr r3, [sp, #0x14]
+ lsr r3, r3, #8
+ and r3, r2
+ lsl r4, r3, #2
+ ldr r3, _0221B8E4 ; =0x0223C46C
+ ldr r3, [r3, r4]
+ lsr r1, r1, #0x18
+ lsl r4, r1, #2
+ ldr r1, _0221B8E8 ; =0x0223E46C
+ ldr r1, [r1, r4]
+ lsr r4, r5, #0x10
+ and r4, r2
+ lsl r5, r4, #2
+ ldr r4, _0221B8EC ; =0x0223E86C
+ ldr r4, [r4, r5]
+ eor r1, r4
+ eor r3, r1
+ eor r7, r3
+ eor r6, r7
+ b _0221B55A
+_0221B746:
+ ldr r3, [r0]
+ ldr r4, [sp, #0x14]
+ mov r2, #0xff
+ and r4, r2
+ lsl r4, r4, #2
+ ldr r2, _0221B8F0 ; =0x0223CC6C
+ ldr r6, [r2, r4]
+ str r6, [sp, #0x20]
+ mov r4, #0xff
+ and r6, r4
+ str r6, [sp, #0x20]
+ lsr r6, r5, #8
+ and r6, r4
+ lsl r4, r6, #2
+ ldr r7, [r2, r4]
+ ldr r4, _0221B8F4 ; =0x0000FF00
+ and r7, r4
+ ldr r4, [sp, #0x10]
+ lsr r4, r4, #0x18
+ lsl r4, r4, #2
+ ldr r4, [r2, r4]
+ str r4, [sp, #0x54]
+ ldr r6, _0221B8F8 ; =0xFF000000
+ and r4, r6
+ str r4, [sp, #0x54]
+ lsr r4, r1, #0x10
+ str r4, [sp, #0x40]
+ mov r6, #0xff
+ and r4, r6
+ str r4, [sp, #0x40]
+ lsl r4, r4, #2
+ ldr r4, [r2, r4]
+ str r4, [sp, #0x3c]
+ ldr r4, _0221B8FC ; =0x00FF0000
+ ldr r6, [sp, #0x3c]
+ and r6, r4
+ str r6, [sp, #0x3c]
+ ldr r4, [sp, #0x54]
+ eor r4, r6
+ str r4, [sp, #0x54]
+ eor r7, r4
+ ldr r4, [sp, #0x20]
+ eor r4, r7
+ str r4, [sp, #0x20]
+ eor r3, r4
+ lsr r6, r3, #0x18
+ ldr r4, [sp]
+ strb r6, [r4]
+ lsr r6, r3, #0x10
+ strb r6, [r4, #1]
+ lsr r6, r3, #8
+ strb r6, [r4, #2]
+ strb r3, [r4, #3]
+ ldr r3, [r0, #4]
+ add r6, r5, #0
+ mov r4, #0xff
+ and r6, r4
+ lsl r4, r6, #2
+ ldr r6, [r2, r4]
+ str r6, [sp, #0x24]
+ mov r4, #0xff
+ and r6, r4
+ str r6, [sp, #0x24]
+ lsr r6, r1, #8
+ and r6, r4
+ lsl r4, r6, #2
+ ldr r7, [r2, r4]
+ ldr r4, _0221B8F4 ; =0x0000FF00
+ and r7, r4
+ ldr r4, [sp, #0x14]
+ lsr r4, r4, #0x18
+ lsl r4, r4, #2
+ ldr r4, [r2, r4]
+ str r4, [sp, #0x58]
+ ldr r6, _0221B8F8 ; =0xFF000000
+ and r4, r6
+ str r4, [sp, #0x58]
+ ldr r4, [sp, #0x10]
+ lsr r4, r4, #0x10
+ str r4, [sp, #0x48]
+ mov r6, #0xff
+ and r4, r6
+ str r4, [sp, #0x48]
+ lsl r4, r4, #2
+ ldr r4, [r2, r4]
+ str r4, [sp, #0x44]
+ ldr r4, _0221B8FC ; =0x00FF0000
+ ldr r6, [sp, #0x44]
+ and r6, r4
+ str r6, [sp, #0x44]
+ ldr r4, [sp, #0x58]
+ eor r4, r6
+ str r4, [sp, #0x58]
+ eor r7, r4
+ ldr r4, [sp, #0x24]
+ eor r4, r7
+ str r4, [sp, #0x24]
+ eor r3, r4
+ lsr r6, r3, #0x18
+ ldr r4, [sp]
+ strb r6, [r4, #4]
+ lsr r6, r3, #0x10
+ strb r6, [r4, #5]
+ lsr r6, r3, #8
+ strb r6, [r4, #6]
+ strb r3, [r4, #7]
+ ldr r3, [r0, #8]
+ add r6, r1, #0
+ mov r4, #0xff
+ and r6, r4
+ lsl r4, r6, #2
+ ldr r6, [r2, r4]
+ str r6, [sp, #0x28]
+ mov r4, #0xff
+ and r6, r4
+ str r6, [sp, #0x28]
+ ldr r4, [sp, #0x10]
+ lsr r6, r4, #8
+ mov r4, #0xff
+ and r6, r4
+ lsl r4, r6, #2
+ ldr r7, [r2, r4]
+ ldr r4, _0221B8F4 ; =0x0000FF00
+ and r7, r4
+ lsr r4, r5, #0x18
+ lsl r4, r4, #2
+ ldr r4, [r2, r4]
+ str r4, [sp, #0x5c]
+ ldr r6, _0221B8F8 ; =0xFF000000
+ and r4, r6
+ str r4, [sp, #0x5c]
+ ldr r4, [sp, #0x14]
+ lsr r4, r4, #0x10
+ str r4, [sp, #0x50]
+ mov r6, #0xff
+ and r4, r6
+ str r4, [sp, #0x50]
+ lsl r4, r4, #2
+ ldr r4, [r2, r4]
+ str r4, [sp, #0x4c]
+ ldr r4, _0221B8FC ; =0x00FF0000
+ ldr r6, [sp, #0x4c]
+ and r6, r4
+ str r6, [sp, #0x4c]
+ ldr r4, [sp, #0x5c]
+ eor r4, r6
+ str r4, [sp, #0x5c]
+ eor r7, r4
+ ldr r4, [sp, #0x28]
+ eor r4, r7
+ str r4, [sp, #0x28]
+ eor r3, r4
+ lsr r6, r3, #0x18
+ ldr r4, [sp]
+ strb r6, [r4, #8]
+ lsr r6, r3, #0x10
+ strb r6, [r4, #9]
+ lsr r6, r3, #8
+ strb r6, [r4, #0xa]
+ strb r3, [r4, #0xb]
+ ldr r6, [r0, #0xc]
+ ldr r3, [sp, #0x10]
+ mov r0, #0xff
+ and r3, r0
+ str r3, [sp, #0x10]
+ lsl r0, r3, #2
+ ldr r4, [r2, r0]
+ mov r0, #0xff
+ and r4, r0
+ ldr r0, [sp, #0x14]
+ lsr r3, r0, #8
+ mov r0, #0xff
+ and r3, r0
+ lsl r0, r3, #2
+ ldr r3, [r2, r0]
+ ldr r0, _0221B8F4 ; =0x0000FF00
+ and r3, r0
+ lsr r0, r1, #0x18
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ ldr r1, _0221B8F8 ; =0xFF000000
+ and r0, r1
+ lsr r5, r5, #0x10
+ mov r1, #0xff
+ and r5, r1
+ lsl r1, r5, #2
+ ldr r2, [r2, r1]
+ ldr r1, _0221B8FC ; =0x00FF0000
+ and r2, r1
+ eor r0, r2
+ eor r3, r0
+ eor r4, r3
+ eor r6, r4
+ lsr r1, r6, #0x18
+ ldr r0, [sp]
+ strb r1, [r0, #0xc]
+ lsr r1, r6, #0x10
+ strb r1, [r0, #0xd]
+ lsr r1, r6, #8
+ strb r1, [r0, #0xe]
+ strb r6, [r0, #0xf]
+ add sp, #0x60
+ pop {r4, r5, r6, r7}
+ bx lr
+ nop
+_0221B8E0: .word 0x0223C86C
+_0221B8E4: .word 0x0223C46C
+_0221B8E8: .word 0x0223E46C
+_0221B8EC: .word 0x0223E86C
+_0221B8F0: .word 0x0223CC6C
+_0221B8F4: .word 0x0000FF00
+_0221B8F8: .word 0xFF000000
+_0221B8FC: .word 0x00FF0000
+
+ thumb_func_start MOD13_0221B900
+MOD13_0221B900: ; 0x0221B900
+ push {r4, r5, r6, r7}
+ sub sp, #0x60
+ add r4, r1, #0
+ add r1, r2, #0
+ str r3, [sp]
+ ldr r2, [r0]
+ str r2, [sp, #4]
+ ldrb r5, [r1, #3]
+ ldrb r2, [r1, #2]
+ lsl r3, r2, #8
+ ldrb r2, [r1]
+ lsl r2, r2, #0x18
+ ldrb r6, [r1, #1]
+ lsl r6, r6, #0x10
+ eor r2, r6
+ eor r3, r2
+ eor r5, r3
+ ldr r2, [sp, #4]
+ eor r2, r5
+ str r2, [sp, #4]
+ ldr r2, [r0, #4]
+ str r2, [sp, #8]
+ ldrb r5, [r1, #7]
+ ldrb r2, [r1, #6]
+ lsl r3, r2, #8
+ ldrb r2, [r1, #4]
+ lsl r2, r2, #0x18
+ ldrb r6, [r1, #5]
+ lsl r6, r6, #0x10
+ eor r2, r6
+ eor r3, r2
+ eor r5, r3
+ ldr r2, [sp, #8]
+ eor r2, r5
+ str r2, [sp, #8]
+ ldr r2, [r0, #8]
+ str r2, [sp, #0x2c]
+ ldrb r5, [r1, #0xb]
+ ldrb r2, [r1, #0xa]
+ lsl r3, r2, #8
+ ldrb r2, [r1, #8]
+ lsl r2, r2, #0x18
+ ldrb r6, [r1, #9]
+ lsl r6, r6, #0x10
+ eor r2, r6
+ eor r3, r2
+ eor r5, r3
+ ldr r2, [sp, #0x2c]
+ eor r2, r5
+ str r2, [sp, #0x2c]
+ ldr r6, [r0, #0xc]
+ ldrb r5, [r1, #0xf]
+ ldrb r2, [r1, #0xe]
+ lsl r3, r2, #8
+ ldrb r2, [r1, #0xc]
+ lsl r2, r2, #0x18
+ ldrb r1, [r1, #0xd]
+ lsl r1, r1, #0x10
+ eor r2, r1
+ eor r3, r2
+ eor r5, r3
+ eor r6, r5
+ asr r1, r4, #1
+ str r1, [sp, #0xc]
+ mov r2, #0xff
+_0221B982:
+ ldr r1, [r0, #0x10]
+ str r1, [sp, #0x10]
+ add r1, r6, #0
+ and r1, r2
+ lsl r3, r1, #2
+ ldr r1, _0221BD00 ; =0x0223DC6C
+ ldr r5, [r1, r3]
+ ldr r1, [sp, #0x2c]
+ lsr r1, r1, #8
+ and r1, r2
+ lsl r3, r1, #2
+ ldr r1, _0221BD04 ; =0x0223D86C
+ ldr r4, [r1, r3]
+ ldr r1, [sp, #4]
+ lsr r1, r1, #0x18
+ lsl r3, r1, #2
+ ldr r1, _0221BD08 ; =0x0223D06C
+ ldr r7, [r1, r3]
+ ldr r1, [sp, #8]
+ lsr r1, r1, #0x10
+ and r1, r2
+ lsl r3, r1, #2
+ ldr r1, _0221BD0C ; =0x0223D46C
+ ldr r1, [r1, r3]
+ eor r7, r1
+ eor r4, r7
+ eor r5, r4
+ ldr r1, [sp, #0x10]
+ eor r1, r5
+ str r1, [sp, #0x10]
+ ldr r1, [r0, #0x14]
+ str r1, [sp, #0x14]
+ ldr r1, [sp, #4]
+ and r1, r2
+ lsl r3, r1, #2
+ ldr r1, _0221BD00 ; =0x0223DC6C
+ ldr r5, [r1, r3]
+ lsr r1, r6, #8
+ and r1, r2
+ lsl r3, r1, #2
+ ldr r1, _0221BD04 ; =0x0223D86C
+ ldr r4, [r1, r3]
+ ldr r1, [sp, #8]
+ lsr r1, r1, #0x18
+ lsl r3, r1, #2
+ ldr r1, _0221BD08 ; =0x0223D06C
+ ldr r7, [r1, r3]
+ ldr r1, [sp, #0x2c]
+ lsr r1, r1, #0x10
+ and r1, r2
+ lsl r3, r1, #2
+ ldr r1, _0221BD0C ; =0x0223D46C
+ ldr r1, [r1, r3]
+ eor r7, r1
+ eor r4, r7
+ eor r5, r4
+ ldr r1, [sp, #0x14]
+ eor r1, r5
+ str r1, [sp, #0x14]
+ ldr r3, [r0, #0x18]
+ ldr r1, [sp, #8]
+ and r1, r2
+ lsl r4, r1, #2
+ ldr r1, _0221BD00 ; =0x0223DC6C
+ ldr r1, [r1, r4]
+ ldr r4, [sp, #4]
+ lsr r4, r4, #8
+ and r4, r2
+ lsl r5, r4, #2
+ ldr r4, _0221BD04 ; =0x0223D86C
+ ldr r7, [r4, r5]
+ ldr r4, [sp, #0x2c]
+ lsr r4, r4, #0x18
+ lsl r5, r4, #2
+ ldr r4, _0221BD08 ; =0x0223D06C
+ ldr r4, [r4, r5]
+ str r4, [sp, #0x18]
+ lsr r4, r6, #0x10
+ and r4, r2
+ lsl r5, r4, #2
+ ldr r4, _0221BD0C ; =0x0223D46C
+ ldr r5, [r4, r5]
+ ldr r4, [sp, #0x18]
+ eor r4, r5
+ str r4, [sp, #0x18]
+ eor r7, r4
+ eor r1, r7
+ eor r3, r1
+ ldr r1, [r0, #0x1c]
+ ldr r4, [sp, #0x2c]
+ and r4, r2
+ str r4, [sp, #0x2c]
+ lsl r5, r4, #2
+ ldr r4, _0221BD00 ; =0x0223DC6C
+ ldr r4, [r4, r5]
+ str r4, [sp, #0x30]
+ ldr r4, [sp, #8]
+ lsr r4, r4, #8
+ and r4, r2
+ lsl r5, r4, #2
+ ldr r4, _0221BD04 ; =0x0223D86C
+ ldr r7, [r4, r5]
+ lsr r4, r6, #0x18
+ lsl r5, r4, #2
+ ldr r4, _0221BD08 ; =0x0223D06C
+ ldr r6, [r4, r5]
+ ldr r4, [sp, #4]
+ lsr r4, r4, #0x10
+ and r4, r2
+ lsl r5, r4, #2
+ ldr r4, _0221BD0C ; =0x0223D46C
+ ldr r4, [r4, r5]
+ eor r6, r4
+ eor r7, r6
+ ldr r4, [sp, #0x30]
+ eor r4, r7
+ str r4, [sp, #0x30]
+ eor r1, r4
+ add r0, #0x20
+ ldr r4, [sp, #0xc]
+ sub r4, r4, #1
+ str r4, [sp, #0xc]
+ cmp r4, #0
+ beq _0221BB6A
+ ldr r4, [r0]
+ str r4, [sp, #4]
+ add r4, r1, #0
+ and r4, r2
+ lsl r5, r4, #2
+ ldr r4, _0221BD00 ; =0x0223DC6C
+ ldr r6, [r4, r5]
+ lsr r4, r3, #8
+ and r4, r2
+ lsl r5, r4, #2
+ ldr r4, _0221BD04 ; =0x0223D86C
+ ldr r4, [r4, r5]
+ str r4, [sp, #0x34]
+ ldr r4, [sp, #0x10]
+ lsr r4, r4, #0x18
+ lsl r5, r4, #2
+ ldr r4, _0221BD08 ; =0x0223D06C
+ ldr r7, [r4, r5]
+ ldr r4, [sp, #0x14]
+ lsr r4, r4, #0x10
+ and r4, r2
+ lsl r5, r4, #2
+ ldr r4, _0221BD0C ; =0x0223D46C
+ ldr r4, [r4, r5]
+ eor r7, r4
+ ldr r4, [sp, #0x34]
+ eor r4, r7
+ str r4, [sp, #0x34]
+ eor r6, r4
+ ldr r4, [sp, #4]
+ eor r4, r6
+ str r4, [sp, #4]
+ ldr r4, [r0, #4]
+ str r4, [sp, #8]
+ ldr r4, [sp, #0x10]
+ and r4, r2
+ lsl r5, r4, #2
+ ldr r4, _0221BD00 ; =0x0223DC6C
+ ldr r6, [r4, r5]
+ lsr r4, r1, #8
+ and r4, r2
+ lsl r5, r4, #2
+ ldr r4, _0221BD04 ; =0x0223D86C
+ ldr r4, [r4, r5]
+ str r4, [sp, #0x38]
+ ldr r4, [sp, #0x14]
+ lsr r4, r4, #0x18
+ lsl r5, r4, #2
+ ldr r4, _0221BD08 ; =0x0223D06C
+ ldr r7, [r4, r5]
+ lsr r4, r3, #0x10
+ and r4, r2
+ lsl r5, r4, #2
+ ldr r4, _0221BD0C ; =0x0223D46C
+ ldr r4, [r4, r5]
+ eor r7, r4
+ ldr r4, [sp, #0x38]
+ eor r4, r7
+ str r4, [sp, #0x38]
+ eor r6, r4
+ ldr r4, [sp, #8]
+ eor r4, r6
+ str r4, [sp, #8]
+ ldr r4, [r0, #8]
+ str r4, [sp, #0x2c]
+ ldr r4, [sp, #0x14]
+ and r4, r2
+ lsl r5, r4, #2
+ ldr r4, _0221BD00 ; =0x0223DC6C
+ ldr r4, [r4, r5]
+ ldr r5, [sp, #0x10]
+ lsr r5, r5, #8
+ and r5, r2
+ lsl r6, r5, #2
+ ldr r5, _0221BD04 ; =0x0223D86C
+ ldr r7, [r5, r6]
+ lsr r5, r3, #0x18
+ lsl r6, r5, #2
+ ldr r5, _0221BD08 ; =0x0223D06C
+ ldr r5, [r5, r6]
+ str r5, [sp, #0x1c]
+ lsr r5, r1, #0x10
+ and r5, r2
+ lsl r6, r5, #2
+ ldr r5, _0221BD0C ; =0x0223D46C
+ ldr r6, [r5, r6]
+ ldr r5, [sp, #0x1c]
+ eor r5, r6
+ str r5, [sp, #0x1c]
+ eor r7, r5
+ eor r4, r7
+ ldr r5, [sp, #0x2c]
+ eor r5, r4
+ str r5, [sp, #0x2c]
+ ldr r6, [r0, #0xc]
+ and r3, r2
+ lsl r4, r3, #2
+ ldr r3, _0221BD00 ; =0x0223DC6C
+ ldr r3, [r3, r4]
+ ldr r4, [sp, #0x14]
+ lsr r4, r4, #8
+ and r4, r2
+ lsl r5, r4, #2
+ ldr r4, _0221BD04 ; =0x0223D86C
+ ldr r7, [r4, r5]
+ lsr r1, r1, #0x18
+ lsl r4, r1, #2
+ ldr r1, _0221BD08 ; =0x0223D06C
+ ldr r5, [r1, r4]
+ ldr r1, [sp, #0x10]
+ lsr r1, r1, #0x10
+ and r1, r2
+ lsl r4, r1, #2
+ ldr r1, _0221BD0C ; =0x0223D46C
+ ldr r1, [r1, r4]
+ eor r5, r1
+ eor r7, r5
+ eor r3, r7
+ eor r6, r3
+ b _0221B982
+_0221BB6A:
+ ldr r4, [r0]
+ add r5, r1, #0
+ mov r2, #0xff
+ and r5, r2
+ lsl r5, r5, #2
+ ldr r2, _0221BD10 ; =0x0223E06C
+ ldr r6, [r2, r5]
+ str r6, [sp, #0x20]
+ mov r5, #0xff
+ and r6, r5
+ str r6, [sp, #0x20]
+ lsr r6, r3, #8
+ and r6, r5
+ lsl r5, r6, #2
+ ldr r7, [r2, r5]
+ ldr r5, _0221BD14 ; =0x0000FF00
+ and r7, r5
+ ldr r5, [sp, #0x10]
+ lsr r5, r5, #0x18
+ lsl r5, r5, #2
+ ldr r5, [r2, r5]
+ str r5, [sp, #0x54]
+ ldr r6, _0221BD18 ; =0xFF000000
+ and r5, r6
+ str r5, [sp, #0x54]
+ ldr r5, [sp, #0x14]
+ lsr r5, r5, #0x10
+ str r5, [sp, #0x40]
+ mov r6, #0xff
+ and r5, r6
+ str r5, [sp, #0x40]
+ lsl r5, r5, #2
+ ldr r5, [r2, r5]
+ str r5, [sp, #0x3c]
+ ldr r5, _0221BD1C ; =0x00FF0000
+ ldr r6, [sp, #0x3c]
+ and r6, r5
+ str r6, [sp, #0x3c]
+ ldr r5, [sp, #0x54]
+ eor r5, r6
+ str r5, [sp, #0x54]
+ eor r7, r5
+ ldr r5, [sp, #0x20]
+ eor r5, r7
+ str r5, [sp, #0x20]
+ eor r4, r5
+ lsr r6, r4, #0x18
+ ldr r5, [sp]
+ strb r6, [r5]
+ lsr r6, r4, #0x10
+ strb r6, [r5, #1]
+ lsr r6, r4, #8
+ strb r6, [r5, #2]
+ strb r4, [r5, #3]
+ ldr r4, [r0, #4]
+ ldr r6, [sp, #0x10]
+ mov r5, #0xff
+ and r6, r5
+ lsl r5, r6, #2
+ ldr r6, [r2, r5]
+ str r6, [sp, #0x24]
+ mov r5, #0xff
+ and r6, r5
+ str r6, [sp, #0x24]
+ lsr r6, r1, #8
+ and r6, r5
+ lsl r5, r6, #2
+ ldr r7, [r2, r5]
+ ldr r5, _0221BD14 ; =0x0000FF00
+ and r7, r5
+ ldr r5, [sp, #0x14]
+ lsr r5, r5, #0x18
+ lsl r5, r5, #2
+ ldr r5, [r2, r5]
+ str r5, [sp, #0x58]
+ ldr r6, _0221BD18 ; =0xFF000000
+ and r5, r6
+ str r5, [sp, #0x58]
+ lsr r5, r3, #0x10
+ str r5, [sp, #0x48]
+ mov r6, #0xff
+ and r5, r6
+ str r5, [sp, #0x48]
+ lsl r5, r5, #2
+ ldr r5, [r2, r5]
+ str r5, [sp, #0x44]
+ ldr r5, _0221BD1C ; =0x00FF0000
+ ldr r6, [sp, #0x44]
+ and r6, r5
+ str r6, [sp, #0x44]
+ ldr r5, [sp, #0x58]
+ eor r5, r6
+ str r5, [sp, #0x58]
+ eor r7, r5
+ ldr r5, [sp, #0x24]
+ eor r5, r7
+ str r5, [sp, #0x24]
+ eor r4, r5
+ lsr r6, r4, #0x18
+ ldr r5, [sp]
+ strb r6, [r5, #4]
+ lsr r6, r4, #0x10
+ strb r6, [r5, #5]
+ lsr r6, r4, #8
+ strb r6, [r5, #6]
+ strb r4, [r5, #7]
+ ldr r4, [r0, #8]
+ ldr r6, [sp, #0x14]
+ mov r5, #0xff
+ and r6, r5
+ lsl r5, r6, #2
+ ldr r6, [r2, r5]
+ str r6, [sp, #0x28]
+ mov r5, #0xff
+ and r6, r5
+ str r6, [sp, #0x28]
+ ldr r5, [sp, #0x10]
+ lsr r6, r5, #8
+ mov r5, #0xff
+ and r6, r5
+ lsl r5, r6, #2
+ ldr r7, [r2, r5]
+ ldr r5, _0221BD14 ; =0x0000FF00
+ and r7, r5
+ lsr r5, r3, #0x18
+ lsl r5, r5, #2
+ ldr r5, [r2, r5]
+ str r5, [sp, #0x5c]
+ ldr r6, _0221BD18 ; =0xFF000000
+ and r5, r6
+ str r5, [sp, #0x5c]
+ lsr r5, r1, #0x10
+ str r5, [sp, #0x50]
+ mov r6, #0xff
+ and r5, r6
+ str r5, [sp, #0x50]
+ lsl r5, r5, #2
+ ldr r5, [r2, r5]
+ str r5, [sp, #0x4c]
+ ldr r5, _0221BD1C ; =0x00FF0000
+ ldr r6, [sp, #0x4c]
+ and r6, r5
+ str r6, [sp, #0x4c]
+ ldr r5, [sp, #0x5c]
+ eor r5, r6
+ str r5, [sp, #0x5c]
+ eor r7, r5
+ ldr r5, [sp, #0x28]
+ eor r5, r7
+ str r5, [sp, #0x28]
+ eor r4, r5
+ lsr r6, r4, #0x18
+ ldr r5, [sp]
+ strb r6, [r5, #8]
+ lsr r6, r4, #0x10
+ strb r6, [r5, #9]
+ lsr r6, r4, #8
+ strb r6, [r5, #0xa]
+ strb r4, [r5, #0xb]
+ ldr r5, [r0, #0xc]
+ mov r0, #0xff
+ and r3, r0
+ lsl r0, r3, #2
+ ldr r4, [r2, r0]
+ mov r0, #0xff
+ and r4, r0
+ ldr r0, [sp, #0x14]
+ lsr r3, r0, #8
+ mov r0, #0xff
+ and r3, r0
+ lsl r0, r3, #2
+ ldr r3, [r2, r0]
+ ldr r0, _0221BD14 ; =0x0000FF00
+ and r3, r0
+ lsr r0, r1, #0x18
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ ldr r1, _0221BD18 ; =0xFF000000
+ and r0, r1
+ ldr r1, [sp, #0x10]
+ lsr r6, r1, #0x10
+ mov r1, #0xff
+ and r6, r1
+ lsl r1, r6, #2
+ ldr r2, [r2, r1]
+ ldr r1, _0221BD1C ; =0x00FF0000
+ and r2, r1
+ eor r0, r2
+ eor r3, r0
+ eor r4, r3
+ eor r5, r4
+ lsr r1, r5, #0x18
+ ldr r0, [sp]
+ strb r1, [r0, #0xc]
+ lsr r1, r5, #0x10
+ strb r1, [r0, #0xd]
+ lsr r1, r5, #8
+ strb r1, [r0, #0xe]
+ strb r5, [r0, #0xf]
+ add sp, #0x60
+ pop {r4, r5, r6, r7}
+ bx lr
+ nop
+_0221BD00: .word 0x0223DC6C
+_0221BD04: .word 0x0223D86C
+_0221BD08: .word 0x0223D06C
+_0221BD0C: .word 0x0223D46C
+_0221BD10: .word 0x0223E06C
+_0221BD14: .word 0x0000FF00
+_0221BD18: .word 0xFF000000
+_0221BD1C: .word 0x00FF0000
+
+ thumb_func_start MOD13_0221BD20
+MOD13_0221BD20: ; 0x0221BD20
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD13_0221BEE4
+ str r0, [sp]
+ mov r6, #0
+ lsl r5, r0, #2
+ cmp r5, #0
+ ble _0221BD84
+ str r4, [sp, #4]
+ lsl r0, r5, #2
+ add r3, r4, r0
+_0221BD3A:
+ ldr r0, [sp, #4]
+ ldr r2, [r0]
+ ldr r1, [r3]
+ str r1, [r0]
+ str r2, [r3]
+ add r0, r6, #1
+ lsl r2, r0, #2
+ ldr r1, [r4, r2]
+ add r0, r5, #1
+ lsl r7, r0, #2
+ ldr r0, [r4, r7]
+ str r0, [r4, r2]
+ str r1, [r4, r7]
+ add r0, r6, #2
+ lsl r2, r0, #2
+ ldr r1, [r4, r2]
+ add r0, r5, #2
+ lsl r7, r0, #2
+ ldr r0, [r4, r7]
+ str r0, [r4, r2]
+ str r1, [r4, r7]
+ add r0, r6, #3
+ lsl r2, r0, #2
+ ldr r1, [r4, r2]
+ add r0, r5, #3
+ lsl r7, r0, #2
+ ldr r0, [r4, r7]
+ str r0, [r4, r2]
+ str r1, [r4, r7]
+ ldr r0, [sp, #4]
+ add r0, #0x10
+ str r0, [sp, #4]
+ add r6, r6, #4
+ sub r3, #0x10
+ sub r5, r5, #4
+ cmp r6, r5
+ blt _0221BD3A
+_0221BD84:
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [sp]
+ cmp r0, #1
+ bgt _0221BD90
+ b _0221BEC4
+_0221BD90:
+ ldr r2, _0221BED0 ; =0x0223E06C
+ mov r0, #0xff
+_0221BD94:
+ add r4, #0x10
+ ldr r5, [r4]
+ add r1, r5, #0
+ and r1, r0
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ and r1, r0
+ lsl r3, r1, #2
+ ldr r1, _0221BED4 ; =0x0223C86C
+ ldr r3, [r1, r3]
+ lsr r1, r5, #8
+ and r1, r0
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ and r1, r0
+ lsl r6, r1, #2
+ ldr r1, _0221BED8 ; =0x0223C46C
+ ldr r7, [r1, r6]
+ lsr r1, r5, #0x18
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ and r1, r0
+ lsl r6, r1, #2
+ ldr r1, _0221BEDC ; =0x0223E46C
+ ldr r1, [r1, r6]
+ lsr r5, r5, #0x10
+ and r5, r0
+ lsl r5, r5, #2
+ ldr r5, [r2, r5]
+ and r5, r0
+ lsl r6, r5, #2
+ ldr r5, _0221BEE0 ; =0x0223E86C
+ ldr r5, [r5, r6]
+ eor r1, r5
+ eor r7, r1
+ eor r3, r7
+ str r3, [r4]
+ ldr r5, [r4, #4]
+ add r1, r5, #0
+ and r1, r0
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ and r1, r0
+ lsl r3, r1, #2
+ ldr r1, _0221BED4 ; =0x0223C86C
+ ldr r3, [r1, r3]
+ lsr r1, r5, #8
+ and r1, r0
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ and r1, r0
+ lsl r6, r1, #2
+ ldr r1, _0221BED8 ; =0x0223C46C
+ ldr r7, [r1, r6]
+ lsr r1, r5, #0x18
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ and r1, r0
+ lsl r6, r1, #2
+ ldr r1, _0221BEDC ; =0x0223E46C
+ ldr r1, [r1, r6]
+ lsr r5, r5, #0x10
+ and r5, r0
+ lsl r5, r5, #2
+ ldr r5, [r2, r5]
+ and r5, r0
+ lsl r6, r5, #2
+ ldr r5, _0221BEE0 ; =0x0223E86C
+ ldr r5, [r5, r6]
+ eor r1, r5
+ eor r7, r1
+ eor r3, r7
+ str r3, [r4, #4]
+ ldr r5, [r4, #8]
+ add r1, r5, #0
+ and r1, r0
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ and r1, r0
+ lsl r3, r1, #2
+ ldr r1, _0221BED4 ; =0x0223C86C
+ ldr r3, [r1, r3]
+ lsr r1, r5, #8
+ and r1, r0
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ and r1, r0
+ lsl r6, r1, #2
+ ldr r1, _0221BED8 ; =0x0223C46C
+ ldr r7, [r1, r6]
+ lsr r1, r5, #0x18
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ and r1, r0
+ lsl r6, r1, #2
+ ldr r1, _0221BEDC ; =0x0223E46C
+ ldr r1, [r1, r6]
+ lsr r5, r5, #0x10
+ and r5, r0
+ lsl r5, r5, #2
+ ldr r5, [r2, r5]
+ and r5, r0
+ lsl r6, r5, #2
+ ldr r5, _0221BEE0 ; =0x0223E86C
+ ldr r5, [r5, r6]
+ eor r1, r5
+ eor r7, r1
+ eor r3, r7
+ str r3, [r4, #8]
+ ldr r5, [r4, #0xc]
+ add r1, r5, #0
+ and r1, r0
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ and r1, r0
+ lsl r3, r1, #2
+ ldr r1, _0221BED4 ; =0x0223C86C
+ ldr r3, [r1, r3]
+ lsr r1, r5, #8
+ and r1, r0
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ and r1, r0
+ lsl r6, r1, #2
+ ldr r1, _0221BED8 ; =0x0223C46C
+ ldr r7, [r1, r6]
+ lsr r1, r5, #0x18
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ and r1, r0
+ lsl r6, r1, #2
+ ldr r1, _0221BEDC ; =0x0223E46C
+ ldr r1, [r1, r6]
+ lsr r5, r5, #0x10
+ and r5, r0
+ lsl r5, r5, #2
+ ldr r5, [r2, r5]
+ and r5, r0
+ lsl r6, r5, #2
+ ldr r5, _0221BEE0 ; =0x0223E86C
+ ldr r5, [r5, r6]
+ eor r1, r5
+ eor r7, r1
+ eor r3, r7
+ str r3, [r4, #0xc]
+ ldr r1, [sp, #8]
+ add r3, r1, #1
+ str r3, [sp, #8]
+ ldr r1, [sp]
+ cmp r3, r1
+ bge _0221BEC4
+ b _0221BD94
+_0221BEC4:
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_0221BED0: .word 0x0223E06C
+_0221BED4: .word 0x0223C86C
+_0221BED8: .word 0x0223C46C
+_0221BEDC: .word 0x0223E46C
+_0221BEE0: .word 0x0223E86C
+
+ thumb_func_start MOD13_0221BEE4
+MOD13_0221BEE4: ; 0x0221BEE4
+ push {r4, r5, r6, r7}
+ sub sp, #0x20
+ add r3, r1, #0
+ add r1, r2, #0
+ mov r2, #0
+ str r2, [sp]
+ ldrb r5, [r3, #3]
+ ldrb r2, [r3, #2]
+ lsl r4, r2, #8
+ ldrb r2, [r3]
+ lsl r2, r2, #0x18
+ ldrb r6, [r3, #1]
+ lsl r6, r6, #0x10
+ eor r2, r6
+ eor r4, r2
+ eor r5, r4
+ str r5, [r0]
+ ldrb r5, [r3, #7]
+ ldrb r2, [r3, #6]
+ lsl r4, r2, #8
+ ldrb r2, [r3, #4]
+ lsl r2, r2, #0x18
+ ldrb r6, [r3, #5]
+ lsl r6, r6, #0x10
+ eor r2, r6
+ eor r4, r2
+ eor r5, r4
+ str r5, [r0, #4]
+ ldrb r5, [r3, #0xb]
+ ldrb r2, [r3, #0xa]
+ lsl r4, r2, #8
+ ldrb r2, [r3, #8]
+ lsl r2, r2, #0x18
+ ldrb r6, [r3, #9]
+ lsl r6, r6, #0x10
+ eor r2, r6
+ eor r4, r2
+ eor r5, r4
+ str r5, [r0, #8]
+ ldrb r5, [r3, #0xf]
+ ldrb r2, [r3, #0xe]
+ lsl r4, r2, #8
+ ldrb r2, [r3, #0xc]
+ lsl r2, r2, #0x18
+ ldrb r6, [r3, #0xd]
+ lsl r6, r6, #0x10
+ eor r2, r6
+ eor r4, r2
+ eor r5, r4
+ str r5, [r0, #0xc]
+ cmp r1, #0x80
+ bne _0221BFD0
+ ldr r6, _0221C1B4 ; =0x0223C444
+_0221BF4E:
+ ldr r5, [r0, #0xc]
+ ldr r1, [r6]
+ str r1, [sp, #0xc]
+ lsr r1, r5, #0x18
+ lsl r2, r1, #2
+ ldr r1, _0221C1B8 ; =0x0223E06C
+ ldr r4, [r1, r2]
+ mov r1, #0xff
+ and r4, r1
+ add r2, r5, #0
+ and r2, r1
+ lsl r2, r2, #2
+ ldr r1, _0221C1B8 ; =0x0223E06C
+ ldr r7, [r1, r2]
+ ldr r1, _0221C1BC ; =0x0000FF00
+ and r7, r1
+ ldr r3, [r0]
+ lsr r2, r5, #0x10
+ mov r1, #0xff
+ and r2, r1
+ lsl r2, r2, #2
+ ldr r1, _0221C1B8 ; =0x0223E06C
+ ldr r2, [r1, r2]
+ ldr r1, _0221C1C0 ; =0xFF000000
+ and r2, r1
+ eor r3, r2
+ lsr r2, r5, #8
+ mov r1, #0xff
+ and r2, r1
+ lsl r2, r2, #2
+ ldr r1, _0221C1B8 ; =0x0223E06C
+ ldr r2, [r1, r2]
+ ldr r1, _0221C1C4 ; =0x00FF0000
+ and r2, r1
+ eor r3, r2
+ eor r7, r3
+ eor r4, r7
+ ldr r1, [sp, #0xc]
+ eor r1, r4
+ str r1, [sp, #0xc]
+ str r1, [r0, #0x10]
+ ldr r2, [r0, #4]
+ ldr r1, [r0, #0x10]
+ eor r2, r1
+ str r2, [r0, #0x14]
+ ldr r2, [r0, #8]
+ ldr r1, [r0, #0x14]
+ eor r2, r1
+ str r2, [r0, #0x18]
+ ldr r2, [r0, #0xc]
+ ldr r1, [r0, #0x18]
+ eor r2, r1
+ str r2, [r0, #0x1c]
+ add r6, r6, #4
+ ldr r1, [sp]
+ add r1, r1, #1
+ str r1, [sp]
+ cmp r1, #0xa
+ blt _0221BFCC
+ mov r0, #0xa
+ add sp, #0x20
+ pop {r4, r5, r6, r7}
+ bx lr
+_0221BFCC:
+ add r0, #0x10
+ b _0221BF4E
+_0221BFD0:
+ ldrb r5, [r3, #0x13]
+ ldrb r2, [r3, #0x12]
+ lsl r4, r2, #8
+ ldrb r2, [r3, #0x10]
+ lsl r2, r2, #0x18
+ ldrb r6, [r3, #0x11]
+ lsl r6, r6, #0x10
+ eor r2, r6
+ eor r4, r2
+ eor r5, r4
+ str r5, [r0, #0x10]
+ ldrb r5, [r3, #0x17]
+ ldrb r2, [r3, #0x16]
+ lsl r4, r2, #8
+ ldrb r2, [r3, #0x14]
+ lsl r2, r2, #0x18
+ ldrb r6, [r3, #0x15]
+ lsl r6, r6, #0x10
+ eor r2, r6
+ eor r4, r2
+ eor r5, r4
+ str r5, [r0, #0x14]
+ cmp r1, #0xc0
+ bne _0221C094
+ ldr r6, _0221C1B4 ; =0x0223C444
+_0221C002:
+ ldr r5, [r0, #0x14]
+ ldr r1, [r6]
+ str r1, [sp, #0x10]
+ lsr r1, r5, #0x18
+ lsl r2, r1, #2
+ ldr r1, _0221C1B8 ; =0x0223E06C
+ ldr r4, [r1, r2]
+ mov r1, #0xff
+ and r4, r1
+ add r2, r5, #0
+ and r2, r1
+ lsl r2, r2, #2
+ ldr r1, _0221C1B8 ; =0x0223E06C
+ ldr r7, [r1, r2]
+ ldr r1, _0221C1BC ; =0x0000FF00
+ and r7, r1
+ ldr r3, [r0]
+ lsr r2, r5, #0x10
+ mov r1, #0xff
+ and r2, r1
+ lsl r2, r2, #2
+ ldr r1, _0221C1B8 ; =0x0223E06C
+ ldr r2, [r1, r2]
+ ldr r1, _0221C1C0 ; =0xFF000000
+ and r2, r1
+ eor r3, r2
+ lsr r2, r5, #8
+ mov r1, #0xff
+ and r2, r1
+ lsl r2, r2, #2
+ ldr r1, _0221C1B8 ; =0x0223E06C
+ ldr r2, [r1, r2]
+ ldr r1, _0221C1C4 ; =0x00FF0000
+ and r2, r1
+ eor r3, r2
+ eor r7, r3
+ eor r4, r7
+ ldr r1, [sp, #0x10]
+ eor r1, r4
+ str r1, [sp, #0x10]
+ str r1, [r0, #0x18]
+ ldr r2, [r0, #4]
+ ldr r1, [r0, #0x18]
+ eor r2, r1
+ str r2, [r0, #0x1c]
+ ldr r2, [r0, #8]
+ ldr r1, [r0, #0x1c]
+ eor r2, r1
+ str r2, [r0, #0x20]
+ ldr r2, [r0, #0xc]
+ ldr r1, [r0, #0x20]
+ eor r2, r1
+ str r2, [r0, #0x24]
+ add r6, r6, #4
+ ldr r1, [sp]
+ add r1, r1, #1
+ str r1, [sp]
+ cmp r1, #8
+ blt _0221C080
+ mov r0, #0xc
+ add sp, #0x20
+ pop {r4, r5, r6, r7}
+ bx lr
+_0221C080:
+ ldr r2, [r0, #0x10]
+ ldr r1, [r0, #0x24]
+ eor r2, r1
+ str r2, [r0, #0x28]
+ ldr r2, [r0, #0x14]
+ ldr r1, [r0, #0x28]
+ eor r2, r1
+ str r2, [r0, #0x2c]
+ add r0, #0x18
+ b _0221C002
+_0221C094:
+ ldrb r5, [r3, #0x1b]
+ ldrb r2, [r3, #0x1a]
+ lsl r4, r2, #8
+ ldrb r2, [r3, #0x18]
+ lsl r2, r2, #0x18
+ ldrb r6, [r3, #0x19]
+ lsl r6, r6, #0x10
+ eor r2, r6
+ eor r4, r2
+ eor r5, r4
+ str r5, [r0, #0x18]
+ ldrb r5, [r3, #0x1f]
+ ldrb r2, [r3, #0x1e]
+ lsl r4, r2, #8
+ ldrb r2, [r3, #0x1c]
+ lsl r2, r2, #0x18
+ ldrb r3, [r3, #0x1d]
+ lsl r3, r3, #0x10
+ eor r2, r3
+ eor r4, r2
+ eor r5, r4
+ str r5, [r0, #0x1c]
+ ldr r2, _0221C1C8 ; =0x00000100
+ cmp r1, r2
+ bne _0221C1AC
+ ldr r1, _0221C1B4 ; =0x0223C444
+ str r1, [sp, #4]
+ ldr r7, _0221C1B8 ; =0x0223E06C
+_0221C0CC:
+ ldr r6, [r0, #0x1c]
+ ldr r1, [sp, #4]
+ ldr r1, [r1]
+ str r1, [sp, #8]
+ lsr r1, r6, #0x18
+ lsl r1, r1, #2
+ ldr r5, [r7, r1]
+ mov r1, #0xff
+ and r5, r1
+ add r2, r6, #0
+ and r2, r1
+ lsl r1, r2, #2
+ ldr r4, [r7, r1]
+ ldr r1, _0221C1BC ; =0x0000FF00
+ and r4, r1
+ ldr r3, [r0]
+ lsr r2, r6, #0x10
+ mov r1, #0xff
+ and r2, r1
+ lsl r1, r2, #2
+ ldr r1, [r7, r1]
+ str r1, [sp, #0x14]
+ ldr r2, _0221C1C0 ; =0xFF000000
+ and r1, r2
+ str r1, [sp, #0x14]
+ eor r3, r1
+ lsr r2, r6, #8
+ mov r1, #0xff
+ and r2, r1
+ lsl r1, r2, #2
+ ldr r2, [r7, r1]
+ ldr r1, _0221C1C4 ; =0x00FF0000
+ and r2, r1
+ eor r3, r2
+ eor r4, r3
+ eor r5, r4
+ ldr r1, [sp, #8]
+ eor r1, r5
+ str r1, [sp, #8]
+ str r1, [r0, #0x20]
+ ldr r2, [r0, #4]
+ ldr r1, [r0, #0x20]
+ eor r2, r1
+ str r2, [r0, #0x24]
+ ldr r2, [r0, #8]
+ ldr r1, [r0, #0x24]
+ eor r2, r1
+ str r2, [r0, #0x28]
+ ldr r2, [r0, #0xc]
+ ldr r1, [r0, #0x28]
+ eor r2, r1
+ str r2, [r0, #0x2c]
+ ldr r1, [sp, #4]
+ add r1, r1, #4
+ str r1, [sp, #4]
+ ldr r1, [sp]
+ add r1, r1, #1
+ str r1, [sp]
+ cmp r1, #7
+ blt _0221C14C
+ mov r0, #0xe
+ add sp, #0x20
+ pop {r4, r5, r6, r7}
+ bx lr
+_0221C14C:
+ ldr r6, [r0, #0x2c]
+ add r2, r6, #0
+ mov r1, #0xff
+ and r2, r1
+ lsl r1, r2, #2
+ ldr r5, [r7, r1]
+ mov r1, #0xff
+ and r5, r1
+ lsr r2, r6, #8
+ and r2, r1
+ lsl r1, r2, #2
+ ldr r4, [r7, r1]
+ ldr r1, _0221C1BC ; =0x0000FF00
+ and r4, r1
+ ldr r3, [r0, #0x10]
+ lsr r1, r6, #0x18
+ lsl r1, r1, #2
+ ldr r1, [r7, r1]
+ str r1, [sp, #0x18]
+ ldr r2, _0221C1C0 ; =0xFF000000
+ and r1, r2
+ str r1, [sp, #0x18]
+ eor r3, r1
+ lsr r2, r6, #0x10
+ mov r1, #0xff
+ and r2, r1
+ lsl r1, r2, #2
+ ldr r2, [r7, r1]
+ ldr r1, _0221C1C4 ; =0x00FF0000
+ and r2, r1
+ eor r3, r2
+ eor r4, r3
+ eor r5, r4
+ str r5, [r0, #0x30]
+ ldr r2, [r0, #0x14]
+ ldr r1, [r0, #0x30]
+ eor r2, r1
+ str r2, [r0, #0x34]
+ ldr r2, [r0, #0x18]
+ ldr r1, [r0, #0x34]
+ eor r2, r1
+ str r2, [r0, #0x38]
+ ldr r2, [r0, #0x1c]
+ ldr r1, [r0, #0x38]
+ eor r2, r1
+ str r2, [r0, #0x3c]
+ add r0, #0x20
+ b _0221C0CC
+_0221C1AC:
+ ldr r0, [sp]
+ add sp, #0x20
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_0221C1B4: .word 0x0223C444
+_0221C1B8: .word 0x0223E06C
+_0221C1BC: .word 0x0000FF00
+_0221C1C0: .word 0xFF000000
+_0221C1C4: .word 0x00FF0000
+_0221C1C8: .word 0x00000100
+
+ thumb_func_start MOD13_0221C1CC
+MOD13_0221C1CC: ; 0x0221C1CC
+ push {r4}
+ sub sp, #4
+ ldrb r4, [r0]
+ ldrb r3, [r1]
+ eor r4, r3
+ strb r4, [r2]
+ ldrb r4, [r0, #1]
+ ldrb r3, [r1, #1]
+ eor r4, r3
+ strb r4, [r2, #1]
+ ldrb r4, [r0, #2]
+ ldrb r3, [r1, #2]
+ eor r4, r3
+ strb r4, [r2, #2]
+ ldrb r4, [r0, #3]
+ ldrb r3, [r1, #3]
+ eor r4, r3
+ strb r4, [r2, #3]
+ ldrb r4, [r0, #4]
+ ldrb r3, [r1, #4]
+ eor r4, r3
+ strb r4, [r2, #4]
+ ldrb r4, [r0, #5]
+ ldrb r3, [r1, #5]
+ eor r4, r3
+ strb r4, [r2, #5]
+ ldrb r4, [r0, #6]
+ ldrb r3, [r1, #6]
+ eor r4, r3
+ strb r4, [r2, #6]
+ ldrb r3, [r0, #7]
+ ldrb r0, [r1, #7]
+ eor r3, r0
+ strb r3, [r2, #7]
+ add sp, #4
+ pop {r4}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD13_0221C218
+MOD13_0221C218: ; 0x0221C218
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1b4
+ str r0, [sp]
+ add r5, r1, #0
+ add r4, r2, #0
+ mov r0, #1
+ str r0, [sp, #0x1c]
+ ldr r0, _0221C3FC ; =0xA6A6A6A6
+ str r0, [sp, #0x58]
+ str r0, [sp, #0x5c]
+ mov r0, #7
+ add r1, r4, #0
+ and r1, r0
+ cmp r1, #0
+ bne _0221C240
+ ldr r2, [sp, #0x1c8]
+ add r1, r2, #0
+ and r1, r0
+ cmp r1, #0
+ beq _0221C24A
+_0221C240:
+ mov r0, #0
+ add sp, #0x1b4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221C24A:
+ sub r0, r4, #1
+ lsr r0, r0, #3
+ str r0, [sp, #0x14]
+ cmp r0, #2
+ bge _0221C25E
+ mov r0, #0
+ add sp, #0x1b4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221C25E:
+ add r0, sp, #0x70
+ add r1, r3, #0
+ lsl r2, r2, #3
+ bl MOD13_0221BD20
+ str r0, [sp, #0x18]
+ add r3, sp, #0x60
+ add r2, r5, #0
+ mov r1, #8
+_0221C270:
+ ldrb r0, [r2]
+ add r2, r2, #1
+ strb r0, [r3]
+ add r3, r3, #1
+ sub r1, r1, #1
+ cmp r1, #0
+ bne _0221C270
+ ldr r0, [sp]
+ add r5, #8
+ add r1, r5, #0
+ sub r2, r4, #1
+ bl memcpy
+ mov r0, #5
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x24]
+_0221C294:
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #0xc]
+ cmp r0, #0
+ bgt _0221C29E
+ b _0221C3D4
+_0221C29E:
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x10]
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ str r0, [sp, #0x28]
+ str r1, [sp, #8]
+_0221C2AC:
+ ldr r0, [sp, #0xc]
+ asr r1, r0, #0x1f
+ lsl r2, r0, #0
+ ldr r0, [sp, #0x28]
+ add r6, r2, r0
+ ldr r0, [sp, #8]
+ adc r1, r0
+ add r2, r1, #0
+ ldr r0, _0221C400 ; =0xFF000000
+ and r2, r0
+ lsr r0, r2, #0x18
+ str r0, [sp, #0x30]
+ add r2, r1, #0
+ ldr r0, _0221C404 ; =0x00FF0000
+ and r2, r0
+ lsr r0, r2, #8
+ str r0, [sp, #0x48]
+ add r2, r1, #0
+ ldr r0, _0221C408 ; =0x0000FF00
+ and r2, r0
+ add r3, r6, #0
+ mov r0, #0
+ and r3, r0
+ lsl r0, r2, #8
+ lsr r5, r3, #0x18
+ orr r5, r0
+ lsr r0, r2, #0x18
+ str r0, [sp, #0x34]
+ add r0, r1, #0
+ mov r2, #0xff
+ and r0, r2
+ add r3, r6, #0
+ mov r2, #0
+ and r3, r2
+ lsl r2, r0, #0x18
+ lsr r4, r3, #8
+ orr r4, r2
+ lsr r0, r0, #8
+ str r0, [sp, #0x38]
+ add r3, r1, #0
+ mov r0, #0
+ and r3, r0
+ add r0, r6, #0
+ ldr r2, _0221C400 ; =0xFF000000
+ and r0, r2
+ lsr r2, r0, #0x18
+ lsl r3, r3, #8
+ orr r3, r2
+ lsl r0, r0, #8
+ str r0, [sp, #0x4c]
+ mov r0, #0
+ and r1, r0
+ add r0, r6, #0
+ ldr r2, _0221C404 ; =0x00FF0000
+ and r0, r2
+ lsr r2, r0, #8
+ str r2, [sp, #0x44]
+ lsl r2, r1, #0x18
+ ldr r1, [sp, #0x44]
+ orr r2, r1
+ lsl r7, r0, #0x18
+ add r1, r6, #0
+ str r1, [sp, #0x40]
+ mov r0, #0xff
+ and r1, r0
+ str r1, [sp, #0x40]
+ lsl r0, r1, #0x18
+ str r0, [sp, #0x3c]
+ ldr r0, _0221C408 ; =0x0000FF00
+ and r6, r0
+ lsl r1, r6, #8
+ ldr r0, [sp, #0x3c]
+ orr r0, r1
+ str r0, [sp, #0x3c]
+ mov r0, #0
+ lsl r1, r0, #0
+ orr r0, r1
+ ldr r1, [sp, #0x3c]
+ orr r2, r1
+ orr r7, r0
+ orr r3, r2
+ ldr r0, [sp, #0x4c]
+ orr r0, r7
+ str r0, [sp, #0x4c]
+ ldr r0, [sp, #0x38]
+ orr r0, r3
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x4c]
+ orr r4, r0
+ ldr r1, [sp, #0x34]
+ ldr r0, [sp, #0x38]
+ orr r1, r0
+ str r1, [sp, #0x34]
+ orr r5, r4
+ mov r1, #0
+ ldr r0, [sp, #0x34]
+ orr r1, r0
+ ldr r0, [sp, #0x48]
+ orr r0, r5
+ str r0, [sp, #0x48]
+ mov r2, #0
+ orr r2, r1
+ ldr r1, [sp, #0x30]
+ orr r1, r0
+ str r1, [sp, #0x30]
+ str r1, [sp, #0x50]
+ str r2, [sp, #0x54]
+ add r0, sp, #0x60
+ add r1, sp, #0x50
+ lsl r2, r0, #0
+ bl MOD13_0221C1CC
+ ldr r0, [sp, #0xc]
+ sub r0, r0, #1
+ lsl r1, r0, #3
+ ldr r0, [sp]
+ add r4, r0, r1
+ add r3, r4, #0
+ add r2, sp, #0x68
+ mov r1, #8
+_0221C39C:
+ ldrb r0, [r3]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ cmp r1, #0
+ bne _0221C39C
+ add r0, sp, #0x70
+ ldr r1, [sp, #0x18]
+ add r2, sp, #0x60
+ lsl r3, r2, #0
+ bl MOD13_0221B4D8
+ add r2, sp, #0x68
+ mov r1, #8
+_0221C3BA:
+ ldrb r0, [r2]
+ add r2, r2, #1
+ strb r0, [r4]
+ add r4, r4, #1
+ sub r1, r1, #1
+ cmp r1, #0
+ bne _0221C3BA
+ ldr r0, [sp, #0xc]
+ sub r0, r0, #1
+ str r0, [sp, #0xc]
+ cmp r0, #0
+ ble _0221C3D4
+ b _0221C2AC
+_0221C3D4:
+ ldr r0, [sp, #0x10]
+ sub r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, #0
+ blt _0221C3E0
+ b _0221C294
+_0221C3E0:
+ add r0, sp, #0x58
+ add r1, sp, #0x60
+ mov r2, #8
+ bl memcmp
+ cmp r0, #0
+ beq _0221C3F2
+ mov r0, #0
+ str r0, [sp, #0x1c]
+_0221C3F2:
+ ldr r0, [sp, #0x1c]
+ add sp, #0x1b4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221C3FC: .word 0xA6A6A6A6
+_0221C400: .word 0xFF000000
+_0221C404: .word 0x00FF0000
+_0221C408: .word 0x0000FF00
+
+ thumb_func_start MOD13_0221C40C
+MOD13_0221C40C: ; 0x0221C40C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1d4
+ str r0, [sp]
+ add r5, r1, #0
+ add r4, r2, #0
+ ldr r0, _0221C608 ; =0xA6A6A6A6
+ str r0, [sp, #0x78]
+ str r0, [sp, #0x7c]
+ mov r0, #7
+ add r1, r4, #0
+ and r1, r0
+ cmp r1, #0
+ bne _0221C430
+ ldr r2, [sp, #0x1e8]
+ add r1, r2, #0
+ and r1, r0
+ cmp r1, #0
+ beq _0221C43A
+_0221C430:
+ mov r0, #0
+ add sp, #0x1d4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221C43A:
+ lsr r0, r4, #3
+ str r0, [sp, #0x14]
+ cmp r0, #2
+ bge _0221C44C
+ mov r0, #0
+ add sp, #0x1d4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221C44C:
+ add r0, sp, #0x90
+ add r1, r3, #0
+ lsl r2, r2, #3
+ bl MOD13_0221BEE4
+ str r0, [sp, #0x18]
+ ldr r0, [sp]
+ add r0, #8
+ add r1, r5, #0
+ add r2, r4, #0
+ bl memcpy
+ add r3, sp, #0x80
+ add r2, sp, #0x78
+ mov r1, #8
+_0221C46A:
+ ldrb r0, [r2]
+ add r2, r2, #1
+ strb r0, [r3]
+ add r3, r3, #1
+ sub r1, r1, #1
+ cmp r1, #0
+ bne _0221C46A
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x38]
+ str r0, [sp, #0x64]
+ str r0, [sp, #0x60]
+ str r0, [sp, #0x5c]
+ str r0, [sp, #0x58]
+ str r0, [sp, #0x48]
+ str r0, [sp, #0x50]
+_0221C494:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ bge _0221C4A0
+ b _0221C5DA
+_0221C4A0:
+ ldr r1, [sp, #0x20]
+ ldr r2, [sp, #0x10]
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ str r0, [sp, #0x24]
+ str r1, [sp, #8]
+_0221C4AE:
+ ldr r0, [sp, #0xc]
+ lsl r1, r0, #3
+ ldr r0, [sp]
+ add r3, r0, r1
+ str r3, [sp, #0x2c]
+ add r2, sp, #0x88
+ mov r1, #8
+_0221C4BC:
+ ldrb r0, [r3]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ cmp r1, #0
+ bne _0221C4BC
+ add r0, sp, #0x90
+ ldr r1, [sp, #0x18]
+ add r2, sp, #0x80
+ lsl r3, r2, #0
+ bl MOD13_0221B900
+ ldr r0, [sp, #0xc]
+ asr r1, r0, #0x1f
+ lsl r2, r0, #0
+ ldr r0, [sp, #0x24]
+ add r6, r2, r0
+ ldr r0, [sp, #8]
+ adc r1, r0
+ add r2, r1, #0
+ ldr r0, _0221C60C ; =0xFF000000
+ and r2, r0
+ lsr r0, r2, #0x18
+ str r0, [sp, #0x30]
+ add r2, r1, #0
+ ldr r0, _0221C610 ; =0x00FF0000
+ and r2, r0
+ lsr r0, r2, #8
+ str r0, [sp, #0x68]
+ add r2, r1, #0
+ ldr r0, _0221C614 ; =0x0000FF00
+ and r2, r0
+ add r3, r6, #0
+ ldr r0, [sp, #0x64]
+ and r3, r0
+ lsl r0, r2, #8
+ lsr r5, r3, #0x18
+ orr r5, r0
+ lsr r0, r2, #0x18
+ str r0, [sp, #0x3c]
+ add r0, r1, #0
+ mov r2, #0xff
+ and r0, r2
+ add r3, r6, #0
+ ldr r2, [sp, #0x60]
+ and r3, r2
+ lsl r2, r0, #0x18
+ lsr r4, r3, #8
+ orr r4, r2
+ lsr r0, r0, #8
+ str r0, [sp, #0x40]
+ add r3, r1, #0
+ ldr r0, [sp, #0x5c]
+ and r3, r0
+ add r0, r6, #0
+ ldr r2, _0221C60C ; =0xFF000000
+ and r0, r2
+ lsr r2, r0, #0x18
+ lsl r3, r3, #8
+ orr r3, r2
+ lsl r0, r0, #8
+ str r0, [sp, #0x6c]
+ ldr r0, [sp, #0x58]
+ and r1, r0
+ add r0, r6, #0
+ ldr r2, _0221C610 ; =0x00FF0000
+ and r0, r2
+ lsr r2, r0, #8
+ str r2, [sp, #0x54]
+ lsl r2, r1, #0x18
+ ldr r1, [sp, #0x54]
+ orr r2, r1
+ lsl r7, r0, #0x18
+ add r1, r6, #0
+ str r1, [sp, #0x4c]
+ mov r0, #0xff
+ and r1, r0
+ str r1, [sp, #0x4c]
+ lsl r0, r1, #0x18
+ str r0, [sp, #0x44]
+ ldr r0, _0221C614 ; =0x0000FF00
+ and r6, r0
+ lsl r1, r6, #8
+ ldr r0, [sp, #0x44]
+ orr r0, r1
+ str r0, [sp, #0x44]
+ ldr r0, [sp, #0x48]
+ ldr r1, [sp, #0x50]
+ orr r0, r1
+ ldr r1, [sp, #0x44]
+ orr r2, r1
+ orr r7, r0
+ orr r3, r2
+ ldr r0, [sp, #0x6c]
+ orr r0, r7
+ str r0, [sp, #0x6c]
+ ldr r0, [sp, #0x40]
+ orr r0, r3
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x6c]
+ orr r4, r0
+ ldr r1, [sp, #0x3c]
+ ldr r0, [sp, #0x40]
+ orr r1, r0
+ str r1, [sp, #0x3c]
+ orr r5, r4
+ ldr r1, [sp, #0x38]
+ ldr r0, [sp, #0x3c]
+ orr r1, r0
+ ldr r0, [sp, #0x68]
+ orr r0, r5
+ str r0, [sp, #0x68]
+ ldr r2, [sp, #0x34]
+ orr r2, r1
+ ldr r1, [sp, #0x30]
+ orr r1, r0
+ str r1, [sp, #0x30]
+ str r1, [sp, #0x70]
+ str r2, [sp, #0x74]
+ add r0, sp, #0x80
+ add r1, sp, #0x70
+ lsl r2, r0, #0
+ bl MOD13_0221C1CC
+ add r3, sp, #0x88
+ mov r2, #8
+_0221C5BA:
+ ldrb r1, [r3]
+ add r3, r3, #1
+ ldr r0, [sp, #0x2c]
+ strb r1, [r0]
+ add r0, r0, #1
+ str r0, [sp, #0x2c]
+ sub r2, r2, #1
+ cmp r2, #0
+ bne _0221C5BA
+ ldr r0, [sp, #0xc]
+ add r1, r0, #1
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bgt _0221C5DA
+ b _0221C4AE
+_0221C5DA:
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, #6
+ bge _0221C5E6
+ b _0221C494
+_0221C5E6:
+ add r3, sp, #0x80
+ mov r2, #8
+_0221C5EA:
+ ldrb r1, [r3]
+ add r3, r3, #1
+ ldr r0, [sp]
+ strb r1, [r0]
+ add r0, r0, #1
+ str r0, [sp]
+ sub r2, r2, #1
+ cmp r2, #0
+ bne _0221C5EA
+ mov r0, #1
+ add sp, #0x1d4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_0221C608: .word 0xA6A6A6A6
+_0221C60C: .word 0xFF000000
+_0221C610: .word 0x00FF0000
+_0221C614: .word 0x0000FF00
+
+ thumb_func_start MOD13_0221C618
+MOD13_0221C618: ; 0x0221C618
+ push {r4, lr}
+ bl MOD13_0221C658
+ add r4, r0, #0
+ ldr r0, _0221C64C ; =0x02241B28
+ str r4, [r0]
+ bl MOD13_0221D938
+ cmp r4, #1
+ bne _0221C634
+ mov r1, #6
+ ldr r0, _0221C650 ; =0x02241AE8
+ str r1, [r0]
+ b _0221C63A
+_0221C634:
+ mov r1, #7
+ ldr r0, _0221C650 ; =0x02241AE8
+ str r1, [r0]
+_0221C63A:
+ mov r0, #0
+ mvn r1, r0
+ ldr r0, _0221C654 ; =0x0223F870
+ str r1, [r0]
+ bl MOD13_0221A778
+ pop {r4}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221C64C: .word 0x02241B28
+_0221C650: .word 0x02241AE8
+_0221C654: .word 0x0223F870
+
+ thumb_func_start MOD13_0221C658
+MOD13_0221C658: ; 0x0221C658
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x64
+ mov r4, #0
+ mov r0, #4
+ mvn r0, r0
+ str r0, [sp, #4]
+ str r4, [sp, #0x40]
+ str r4, [sp, #8]
+ str r4, [sp, #0xc]
+ ldr r6, _0221C9E0 ; =0x02241ACC
+ mov r0, #1
+ str r0, [r6]
+ str r4, [sp, #0x10]
+ str r4, [sp, #0x18]
+ str r4, [sp, #0x2c]
+ str r4, [sp, #0x34]
+ mvn r0, r0
+ str r0, [sp, #0x14]
+ str r4, [sp, #0x38]
+ str r4, [sp, #0x24]
+ mvn r0, r4
+ str r0, [sp, #0x28]
+ mov r0, #3
+ mvn r0, r0
+ str r0, [sp, #0x20]
+ mov r0, #2
+ mvn r0, r0
+ str r0, [sp, #0x1c]
+ str r4, [sp, #0x3c]
+ b _0221CA3C
+_0221C694:
+ ldr r0, _0221C9E4 ; =0x000001F4
+ bl OS_Sleep
+ ldr r0, [r6]
+ cmp r0, #0xa
+ bls _0221C6A2
+ b _0221CA3C
+_0221C6A2:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #8]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, pc
+ bx r0
+_0221C6B0: ; jump table
+ .short _0221CA3C - _0221C6B0 + 1 ; case 0
+ .short _0221C6C6 - _0221C6B0 + 1 ; case 1
+ .short _0221C6E6 - _0221C6B0 + 1 ; case 2
+ .short _0221C6FC - _0221C6B0 + 1 ; case 3
+ .short _0221C74C - _0221C6B0 + 1 ; case 4
+ .short _0221C7B6 - _0221C6B0 + 1 ; case 5
+ .short _0221C7D8 - _0221C6B0 + 1 ; case 6
+ .short _0221C880 - _0221C6B0 + 1 ; case 7
+ .short _0221C8DE - _0221C6B0 + 1 ; case 8
+ .short _0221C960 - _0221C6B0 + 1 ; case 9
+ .short _0221C9BA - _0221C6B0 + 1 ; case 10
+_0221C6C6:
+ bl MOD13_0221D478
+ str r0, [sp, #4]
+ cmp r0, #1
+ beq _0221C6D6
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _0221CA3C
+_0221C6D6:
+ mov r1, #3
+ ldr r0, _0221C9E8 ; =0x02241AE8
+ str r1, [r0]
+ bl MOD13_0221A778
+ mov r0, #2
+ str r0, [r6]
+ b _0221CA3C
+_0221C6E6:
+ bl MOD13_0221D9A0
+ str r0, [sp, #4]
+ cmp r0, #1
+ beq _0221C6F6
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _0221CA3C
+_0221C6F6:
+ mov r0, #3
+ str r0, [r6]
+ b _0221CA3C
+_0221C6FC:
+ mov r0, #2
+ lsl r1, r0, #0
+ ldr r2, [sp, #0x10]
+ bl FUN_0209A9D0
+ add r4, r0, #0
+ cmp r4, #0
+ bge _0221C716
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _0221CA3C
+_0221C716:
+ ldr r2, [sp, #0x18]
+ add r1, sp, #0x44
+ str r2, [r1]
+ str r2, [r1, #4]
+ mov r2, #8
+ add r1, sp, #0x44
+ strb r2, [r1]
+ mov r2, #2
+ strb r2, [r1, #1]
+ ldr r2, _0221C9EC ; =0x000001E6
+ strh r2, [r1, #2]
+ ldr r1, [sp, #0x18]
+ str r1, [sp, #0x48]
+ add r1, sp, #0x44
+ bl FUN_0209A9A4
+ str r0, [sp, #4]
+ cmp r0, #0
+ bge _0221C746
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _0221CA3C
+_0221C746:
+ mov r0, #4
+ str r0, [r6]
+ b _0221CA3C
+_0221C74C:
+ bl MOD13_0221AA90
+ ldr r1, _0221C9F0 ; =0x0223F870
+ ldr r1, [r1]
+ cmp r0, r1
+ blo _0221C768
+ add r0, r4, #0
+ bl thunk_FUN_0209996c
+ ldr r0, [sp, #0x1c]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _0221CA3C
+_0221C768:
+ mov r1, #8
+ add r0, sp, #0x44
+ strb r1, [r0, #8]
+ ldr r0, _0221C9F4 ; =0x02241B5C
+ add r1, sp, #0x4c
+ bl MOD13_0221CEA4
+ add r0, sp, #0x4c
+ str r0, [sp]
+ add r0, r4, #0
+ ldr r1, _0221C9F8 ; =0x022427E4
+ ldr r2, _0221C9FC ; =0x00000800
+ mov r3, #4
+ bl FUN_0209A880
+ cmp r0, #0
+ bgt _0221C78C
+ b _0221CA3C
+_0221C78C:
+ ldr r0, _0221C9F8 ; =0x022427E4
+ ldr r1, _0221CA00 ; =0x02241B00
+ bl MOD13_0221D0D4
+ cmp r0, #0
+ bne _0221C79A
+ b _0221CA3C
+_0221C79A:
+ bl MOD13_0221AA90
+ ldr r1, _0221CA04 ; =0x00007530
+ add r1, r0, r1
+ ldr r0, _0221C9F0 ; =0x0223F870
+ str r1, [r0]
+ mov r0, #5
+ str r0, [r6]
+ mov r1, #4
+ ldr r0, _0221C9E8 ; =0x02241AE8
+ str r1, [r0]
+ bl MOD13_0221A778
+ b _0221CA3C
+_0221C7B6:
+ ldr r0, _0221C9F8 ; =0x022427E4
+ bl MOD13_0221CFD0
+ add r3, r0, #0
+ ldr r0, _0221CA08 ; =0x02241AC4
+ str r3, [r0]
+ add r0, r4, #0
+ add r1, sp, #0x4c
+ ldr r2, _0221C9F8 ; =0x022427E4
+ bl MOD13_0221D408
+ bl MOD13_0221AA90
+ str r0, [sp, #0x40]
+ mov r0, #6
+ str r0, [r6]
+ b _0221CA3C
+_0221C7D8:
+ bl MOD13_0221AA90
+ ldr r1, _0221C9F0 ; =0x0223F870
+ ldr r1, [r1]
+ cmp r0, r1
+ blo _0221C7F4
+ add r0, r4, #0
+ bl thunk_FUN_0209996c
+ ldr r0, [sp, #0x20]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _0221CA3C
+_0221C7F4:
+ add r0, sp, #0x4c
+ str r0, [sp]
+ add r0, r4, #0
+ ldr r1, _0221C9F8 ; =0x022427E4
+ ldr r2, _0221C9FC ; =0x00000800
+ mov r3, #4
+ bl FUN_0209A880
+ cmp r0, #0
+ ble _0221C86A
+ ldr r0, _0221C9F8 ; =0x022427E4
+ mov r1, #3
+ ldr r2, _0221CA0C ; =0x02241FE4
+ ldr r3, _0221C9F4 ; =0x02241B5C
+ bl MOD13_0221D074
+ cmp r0, #0
+ beq _0221C86A
+ ldr r0, _0221CA0C ; =0x02241FE4
+ add r1, sp, #0x54
+ add r2, sp, #0x58
+ bl MOD13_0221D30C
+ add r5, r0, #0
+ ldr r1, [sp, #0x54]
+ ldr r0, _0221CA10 ; =0x00000101
+ cmp r1, r0
+ beq _0221C82E
+ b _0221CA3C
+_0221C82E:
+ bl MOD13_0221AA90
+ str r0, [sp, #0x5c]
+ ldr r2, _0221CA14 ; =0x02241B84
+ mov r1, #8
+_0221C838:
+ ldrb r0, [r5]
+ add r5, r5, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ cmp r1, #0
+ bne _0221C838
+ ldr r0, _0221CA18 ; =0x02241B8C
+ add r1, sp, #0x5c
+ mov r2, #4
+ bl MOD13_0221AAB4
+ ldr r0, [sp, #0x24]
+ str r0, [sp, #8]
+ mov r0, #7
+ str r0, [r6]
+ mov r1, #5
+ ldr r0, _0221C9E8 ; =0x02241AE8
+ str r1, [r0]
+ ldr r1, [sp, #0x28]
+ ldr r0, _0221C9F0 ; =0x0223F870
+ str r1, [r0]
+ bl MOD13_0221A778
+ b _0221CA3C
+_0221C86A:
+ bl MOD13_0221AA90
+ ldr r2, _0221CA1C ; =0x000003E8
+ ldr r1, [sp, #0x40]
+ add r1, r1, r2
+ cmp r0, r1
+ bhs _0221C87A
+ b _0221CA3C
+_0221C87A:
+ mov r0, #5
+ str r0, [r6]
+ b _0221CA3C
+_0221C880:
+ ldr r0, _0221CA0C ; =0x02241FE4
+ ldr r1, _0221CA20 ; =0x00000102
+ ldr r2, _0221CA18 ; =0x02241B8C
+ mov r3, #8
+ bl MOD13_0221D1B4
+ ldr r1, _0221CA24 ; =0x02241AE4
+ str r0, [r1]
+ ldr r0, _0221C9F4 ; =0x02241B5C
+ str r0, [sp]
+ ldr r0, _0221C9F8 ; =0x022427E4
+ mov r1, #4
+ ldr r2, _0221CA0C ; =0x02241FE4
+ ldr r3, _0221CA24 ; =0x02241AE4
+ ldr r3, [r3]
+ bl MOD13_0221D248
+ add r3, r0, #0
+ ldr r0, _0221CA08 ; =0x02241AC4
+ str r3, [r0]
+ add r0, r4, #0
+ add r1, sp, #0x4c
+ ldr r2, _0221C9F8 ; =0x022427E4
+ bl MOD13_0221D408
+ bl MOD13_0221AA90
+ str r0, [sp, #0x40]
+ ldr r7, _0221CA28 ; =0x02241D90
+ ldr r0, [sp, #0x2c]
+ lsl r1, r0, #0
+ lsl r2, r0, #0
+ lsl r3, r0, #0
+ mov r5, #0x12
+ str r5, [sp, #0x30]
+_0221C8C6:
+ stmia r7!, {r0, r1, r2, r3}
+ stmia r7!, {r0, r1, r2, r3}
+ ldr r5, [sp, #0x30]
+ sub r5, r5, #1
+ str r5, [sp, #0x30]
+ cmp r5, #0
+ bne _0221C8C6
+ stmia r7!, {r0, r1, r2, r3}
+ str r0, [r7]
+ mov r0, #8
+ str r0, [r6]
+ b _0221CA3C
+_0221C8DE:
+ add r0, sp, #0x4c
+ str r0, [sp]
+ add r0, r4, #0
+ ldr r1, _0221C9F8 ; =0x022427E4
+ ldr r2, _0221C9FC ; =0x00000800
+ mov r3, #4
+ bl FUN_0209A880
+ cmp r0, #0
+ ble _0221C932
+ ldr r0, _0221C9F8 ; =0x022427E4
+ mov r1, #5
+ ldr r2, _0221CA0C ; =0x02241FE4
+ ldr r3, _0221CA14 ; =0x02241B84
+ bl MOD13_0221D074
+ ldr r1, _0221CA24 ; =0x02241AE4
+ str r0, [r1]
+ cmp r0, #0
+ beq _0221C932
+ ldr r0, _0221CA0C ; =0x02241FE4
+ bl MOD13_0221CCD8
+ cmp r0, #0
+ beq _0221C932
+ ldr r1, _0221CA2C ; =0x02241E90
+ ldr r0, [sp, #0x3c]
+ ldrsb r0, [r1, r0]
+ cmp r0, #0
+ beq _0221C922
+ mov r1, #1
+ ldr r0, _0221CA30 ; =0x02241AB0
+ strb r1, [r0]
+ b _0221C928
+_0221C922:
+ ldr r1, [sp, #0x34]
+ ldr r0, _0221CA30 ; =0x02241AB0
+ strb r1, [r0]
+_0221C928:
+ ldr r0, [sp, #0x38]
+ str r0, [sp, #8]
+ mov r0, #9
+ str r0, [r6]
+ b _0221CA3C
+_0221C932:
+ bl MOD13_0221AA90
+ ldr r2, _0221CA1C ; =0x000003E8
+ ldr r1, [sp, #0x40]
+ add r1, r1, r2
+ cmp r0, r1
+ blo _0221CA3C
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #0xa
+ blt _0221C95A
+ add r0, r4, #0
+ bl thunk_FUN_0209996c
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _0221CA3C
+_0221C95A:
+ mov r0, #7
+ str r0, [r6]
+ b _0221CA3C
+_0221C960:
+ ldr r0, _0221CA0C ; =0x02241FE4
+ ldr r1, _0221CA34 ; =0x00000301
+ ldr r2, _0221CA30 ; =0x02241AB0
+ mov r3, #1
+ bl MOD13_0221D1B4
+ ldr r1, _0221CA24 ; =0x02241AE4
+ str r0, [r1]
+ ldr r0, _0221CA14 ; =0x02241B84
+ str r0, [sp]
+ ldr r0, _0221C9F8 ; =0x022427E4
+ mov r1, #6
+ ldr r2, _0221CA0C ; =0x02241FE4
+ ldr r3, _0221CA24 ; =0x02241AE4
+ ldr r3, [r3]
+ bl MOD13_0221D248
+ ldr r1, _0221CA08 ; =0x02241AC4
+ str r0, [r1]
+ bl MOD13_0221DD40
+ cmp r0, #7
+ beq _0221C9A0
+ bl MOD13_0221AA90
+ ldr r1, _0221CA1C ; =0x000003E8
+ add r0, r0, r1
+ str r0, [sp, #0x40]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ str r0, [r6]
+ b _0221CA3C
+_0221C9A0:
+ add r0, r4, #0
+ add r1, sp, #0x4c
+ ldr r2, _0221C9F8 ; =0x022427E4
+ ldr r3, _0221CA08 ; =0x02241AC4
+ ldr r3, [r3]
+ bl MOD13_0221D408
+ bl MOD13_0221AA90
+ str r0, [sp, #0x40]
+ mov r0, #0xa
+ str r0, [r6]
+ b _0221CA3C
+_0221C9BA:
+ bl MOD13_0221AA90
+ ldr r2, _0221CA1C ; =0x000003E8
+ ldr r1, [sp, #0x40]
+ add r1, r1, r2
+ cmp r0, r1
+ blo _0221CA3C
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #0xa
+ blt _0221CA38
+ mov r0, #1
+ str r0, [sp, #0xc]
+ bl MOD13_0221CA74
+ str r0, [sp, #4]
+ b _0221CA3C
+ nop
+_0221C9E0: .word 0x02241ACC
+_0221C9E4: .word 0x000001F4
+_0221C9E8: .word 0x02241AE8
+_0221C9EC: .word 0x000001E6
+_0221C9F0: .word 0x0223F870
+_0221C9F4: .word 0x02241B5C
+_0221C9F8: .word 0x022427E4
+_0221C9FC: .word 0x00000800
+_0221CA00: .word 0x02241B00
+_0221CA04: .word 0x00007530
+_0221CA08: .word 0x02241AC4
+_0221CA0C: .word 0x02241FE4
+_0221CA10: .word 0x00000101
+_0221CA14: .word 0x02241B84
+_0221CA18: .word 0x02241B8C
+_0221CA1C: .word 0x000003E8
+_0221CA20: .word 0x00000102
+_0221CA24: .word 0x02241AE4
+_0221CA28: .word 0x02241D90
+_0221CA2C: .word 0x02241E90
+_0221CA30: .word 0x02241AB0
+_0221CA34: .word 0x00000301
+_0221CA38:
+ mov r0, #9
+ str r0, [r6]
+_0221CA3C:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _0221CA4C
+ ldr r0, _0221CA70 ; =0x02241AC0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0221CA4C
+ b _0221C694
+_0221CA4C:
+ cmp r4, #0
+ beq _0221CA56
+ add r0, r4, #0
+ bl thunk_FUN_0209996c
+_0221CA56:
+ ldr r0, _0221CA70 ; =0x02241AC0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0221CA64
+ mov r0, #7
+ mvn r0, r0
+ str r0, [sp, #4]
+_0221CA64:
+ ldr r0, [sp, #4]
+ add sp, #0x64
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_0221CA70: .word 0x02241AC0
+
+ thumb_func_start MOD13_0221CA74
+MOD13_0221CA74: ; 0x0221CA74
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0221CBF0 ; =0x02241CA8
+ ldr r1, _0221CBF4 ; =0x02241E90
+ bl strcpy
+ ldr r1, _0221CBF4 ; =0x02241E90
+ ldr r0, [r1, #0x2c]
+ cmp r0, #3
+ bls _0221CA8E
+ b _0221CBE0
+_0221CA8E:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #8]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, pc
+ bx r0
+_0221CA9C: ; jump table
+ .short _0221CAA4 - _0221CA9C + 1 ; case 0
+ .short _0221CAAC - _0221CA9C + 1 ; case 1
+ .short _0221CBB0 - _0221CA9C + 1 ; case 2
+ .short _0221CBC8 - _0221CA9C + 1 ; case 3
+_0221CAA4:
+ mov r1, #0
+ ldr r0, _0221CBF0 ; =0x02241CA8
+ str r1, [r0, #0x20]
+ b _0221CBE6
+_0221CAAC:
+ ldr r0, [r1, #0x30]
+ cmp r0, #0
+ bne _0221CABA
+ mov r0, #6
+ mvn r0, r0
+ str r0, [sp]
+ b _0221CBE6
+_0221CABA:
+ ldr r6, _0221CBF0 ; =0x02241CA8
+ str r0, [r6, #0x24]
+ mov r0, #0
+ str r0, [sp, #4]
+ add r5, sp, #0x10
+ ldr r7, _0221CBF8 ; =0x02241EF4
+ ldr r4, _0221CBFC ; =0x02241CD0
+ mov r0, #6
+ mvn r0, r0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #4]
+ str r0, [sp, #8]
+_0221CAD2:
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0x20
+ bl memcpy
+ ldr r1, [sp, #8]
+ add r0, sp, #0x30
+ strb r1, [r0]
+ add r0, r5, #0
+ bl strlen
+ cmp r0, #0x10
+ bhi _0221CB0E
+ cmp r0, #0xa
+ blo _0221CAFE
+ cmp r0, #0xa
+ beq _0221CB38
+ cmp r0, #0xd
+ beq _0221CB48
+ cmp r0, #0x10
+ beq _0221CB72
+ b _0221CB9C
+_0221CAFE:
+ cmp r0, #0
+ bhi _0221CB08
+ cmp r0, #0
+ beq _0221CBA0
+ b _0221CB9C
+_0221CB08:
+ cmp r0, #5
+ beq _0221CB1E
+ b _0221CB9C
+_0221CB0E:
+ cmp r0, #0x1a
+ bhi _0221CB18
+ cmp r0, #0x1a
+ beq _0221CB62
+ b _0221CB9C
+_0221CB18:
+ cmp r0, #0x20
+ beq _0221CB8C
+ b _0221CB9C
+_0221CB1E:
+ mov r0, #1
+ str r0, [r6, #0x20]
+ ldrb r0, [r5]
+ strb r0, [r4]
+ ldrb r0, [r5, #1]
+ strb r0, [r4, #1]
+ ldrb r0, [r5, #2]
+ strb r0, [r4, #2]
+ ldrb r0, [r5, #3]
+ strb r0, [r4, #3]
+ ldrb r0, [r5, #4]
+ strb r0, [r4, #4]
+ b _0221CBA0
+_0221CB38:
+ mov r0, #1
+ str r0, [r6, #0x20]
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0xa
+ bl MOD13_0221CC08
+ b _0221CBA0
+_0221CB48:
+ mov r0, #2
+ str r0, [r6, #0x20]
+ add r3, r5, #0
+ add r2, r4, #0
+ mov r1, #0xd
+_0221CB52:
+ ldrb r0, [r3]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ cmp r1, #0
+ bne _0221CB52
+ b _0221CBA0
+_0221CB62:
+ mov r0, #2
+ str r0, [r6, #0x20]
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0x1a
+ bl MOD13_0221CC08
+ b _0221CBA0
+_0221CB72:
+ mov r0, #3
+ str r0, [r6, #0x20]
+ add r3, r5, #0
+ add r2, r4, #0
+ mov r1, #0x10
+_0221CB7C:
+ ldrb r0, [r3]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ cmp r1, #0
+ bne _0221CB7C
+ b _0221CBA0
+_0221CB8C:
+ mov r0, #3
+ str r0, [r6, #0x20]
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0x20
+ bl MOD13_0221CC08
+ b _0221CBA0
+_0221CB9C:
+ ldr r0, [sp, #0xc]
+ str r0, [sp]
+_0221CBA0:
+ add r7, #0x28
+ add r4, #0x20
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #4
+ blt _0221CAD2
+ b _0221CBE6
+_0221CBB0:
+ mov r1, #4
+ ldr r0, _0221CBF0 ; =0x02241CA8
+ str r1, [r0, #0x20]
+ ldr r4, _0221CC00 ; =0x02241D50
+ ldr r3, _0221CC04 ; =0x02241F8C
+ mov r2, #8
+_0221CBBC:
+ ldmia r3!, {r0, r1}
+ stmia r4!, {r0, r1}
+ sub r2, r2, #1
+ cmp r2, #0
+ bne _0221CBBC
+ b _0221CBE6
+_0221CBC8:
+ mov r1, #5
+ ldr r0, _0221CBF0 ; =0x02241CA8
+ str r1, [r0, #0x20]
+ ldr r4, _0221CC00 ; =0x02241D50
+ ldr r3, _0221CC04 ; =0x02241F8C
+ mov r2, #8
+_0221CBD4:
+ ldmia r3!, {r0, r1}
+ stmia r4!, {r0, r1}
+ sub r2, r2, #1
+ cmp r2, #0
+ bne _0221CBD4
+ b _0221CBE6
+_0221CBE0:
+ mov r0, #6
+ mvn r0, r0
+ str r0, [sp]
+_0221CBE6:
+ ldr r0, [sp]
+ add sp, #0x34
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221CBF0: .word 0x02241CA8
+_0221CBF4: .word 0x02241E90
+_0221CBF8: .word 0x02241EF4
+_0221CBFC: .word 0x02241CD0
+_0221CC00: .word 0x02241D50
+_0221CC04: .word 0x02241F8C
+
+ thumb_func_start MOD13_0221CC08
+MOD13_0221CC08: ; 0x0221CC08
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ add r7, r1, #0
+ str r2, [sp]
+ mov r4, #0
+ add r5, r4, #0
+ lsl r0, r2, #0
+ cmp r0, #0
+ ble _0221CCCE
+ str r4, [sp, #4]
+_0221CC1E:
+ ldrsb r0, [r7, r5]
+ cmp r0, #0x63
+ bgt _0221CC7A
+ cmp r0, #0x63
+ bge _0221CC94
+ cmp r0, #0x61
+ bgt _0221CC74
+ cmp r0, #0x61
+ bge _0221CC94
+ add r1, r0, #0
+ sub r1, #0x30
+ cmp r1, #0x16
+ bhi _0221CCA0
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #8]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r1, pc
+ bx r1
+_0221CC46: ; jump table
+ .short _0221CC8E - _0221CC46 + 1 ; case 0
+ .short _0221CC8E - _0221CC46 + 1 ; case 1
+ .short _0221CC8E - _0221CC46 + 1 ; case 2
+ .short _0221CC8E - _0221CC46 + 1 ; case 3
+ .short _0221CC8E - _0221CC46 + 1 ; case 4
+ .short _0221CC8E - _0221CC46 + 1 ; case 5
+ .short _0221CC8E - _0221CC46 + 1 ; case 6
+ .short _0221CC8E - _0221CC46 + 1 ; case 7
+ .short _0221CC8E - _0221CC46 + 1 ; case 8
+ .short _0221CC8E - _0221CC46 + 1 ; case 9
+ .short _0221CCA0 - _0221CC46 + 1 ; case 10
+ .short _0221CCA0 - _0221CC46 + 1 ; case 11
+ .short _0221CCA0 - _0221CC46 + 1 ; case 12
+ .short _0221CCA0 - _0221CC46 + 1 ; case 13
+ .short _0221CCA0 - _0221CC46 + 1 ; case 14
+ .short _0221CCA0 - _0221CC46 + 1 ; case 15
+ .short _0221CCA0 - _0221CC46 + 1 ; case 16
+ .short _0221CC9A - _0221CC46 + 1 ; case 17
+ .short _0221CC9A - _0221CC46 + 1 ; case 18
+ .short _0221CC9A - _0221CC46 + 1 ; case 19
+ .short _0221CC9A - _0221CC46 + 1 ; case 20
+ .short _0221CC9A - _0221CC46 + 1 ; case 21
+ .short _0221CC9A - _0221CC46 + 1 ; case 22
+_0221CC74:
+ cmp r0, #0x62
+ beq _0221CC94
+ b _0221CCA0
+_0221CC7A:
+ cmp r0, #0x65
+ bgt _0221CC88
+ cmp r0, #0x65
+ bge _0221CC94
+ cmp r0, #0x64
+ beq _0221CC94
+ b _0221CCA0
+_0221CC88:
+ cmp r0, #0x66
+ beq _0221CC94
+ b _0221CCA0
+_0221CC8E:
+ sub r0, #0x30
+ add r4, r4, r0
+ b _0221CCAA
+_0221CC94:
+ sub r0, #0x57
+ add r4, r4, r0
+ b _0221CCAA
+_0221CC9A:
+ sub r0, #0x37
+ add r4, r4, r0
+ b _0221CCAA
+_0221CCA0:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221CCAA:
+ add r0, r5, #0
+ mov r1, #2
+ bl _s32_div_f
+ cmp r1, #0
+ bne _0221CCBA
+ lsl r4, r4, #4
+ b _0221CCC6
+_0221CCBA:
+ add r0, r5, #0
+ mov r1, #2
+ bl _s32_div_f
+ strb r4, [r6, r0]
+ ldr r4, [sp, #4]
+_0221CCC6:
+ add r5, r5, #1
+ ldr r0, [sp]
+ cmp r5, r0
+ blt _0221CC1E
+_0221CCCE:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+
+ thumb_func_start MOD13_0221CCD8
+MOD13_0221CCD8: ; 0x0221CCD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r1, r0, #0
+ add r1, #8
+ str r1, [sp, #8]
+ mov r2, #0
+ str r2, [sp, #4]
+ ldrh r2, [r0]
+ asr r3, r2, #8
+ mov r0, #0xff
+ and r3, r0
+ lsl r2, r2, #8
+ ldr r0, _0221CE80 ; =0x0000FF00
+ and r2, r0
+ orr r3, r2
+ lsl r0, r3, #0x10
+ lsr r0, r0, #0x10
+ add r0, r1, r0
+ str r0, [sp]
+ add r0, sp, #8
+ ldr r1, [sp]
+ add r2, sp, #0xc
+ add r3, sp, #0x10
+ bl MOD13_0221D344
+ add r5, r0, #0
+ cmp r5, #0
+ bne _0221CD12
+ b _0221CE76
+_0221CD12:
+ mov r7, #0
+_0221CD14:
+ ldr r0, [sp, #0xc]
+ ldr r1, _0221CE84 ; =0x00000201
+ sub r1, r0, r1
+ cmp r1, #9
+ bls _0221CD20
+ b _0221CE62
+_0221CD20:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #8]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r1, pc
+ bx r1
+_0221CD2E: ; jump table
+ .short _0221CD42 - _0221CD2E + 1 ; case 0
+ .short _0221CD60 - _0221CD2E + 1 ; case 1
+ .short _0221CD7A - _0221CD2E + 1 ; case 2
+ .short _0221CDA0 - _0221CD2E + 1 ; case 3
+ .short _0221CDC6 - _0221CD2E + 1 ; case 4
+ .short _0221CDE0 - _0221CD2E + 1 ; case 5
+ .short _0221CDE0 - _0221CD2E + 1 ; case 6
+ .short _0221CDE0 - _0221CD2E + 1 ; case 7
+ .short _0221CDE0 - _0221CD2E + 1 ; case 8
+ .short _0221CE40 - _0221CD2E + 1 ; case 9
+_0221CD42:
+ ldr r2, _0221CE88 ; =0x02241E90
+ add r0, r7, #0
+ add r1, r7, #0
+ stmia r2!, {r0, r1}
+ stmia r2!, {r0, r1}
+ stmia r2!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, _0221CE88 ; =0x02241E90
+ add r1, r5, #0
+ ldr r2, [sp, #0x10]
+ bl memcpy
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0221CE62
+_0221CD60:
+ ldrh r1, [r5]
+ asr r2, r1, #8
+ mov r0, #0xff
+ and r2, r0
+ lsl r1, r1, #8
+ ldr r0, _0221CE80 ; =0x0000FF00
+ and r1, r0
+ orr r2, r1
+ lsl r0, r2, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, _0221CE88 ; =0x02241E90
+ str r1, [r0, #0x2c]
+ b _0221CE62
+_0221CD7A:
+ ldrh r1, [r5]
+ asr r2, r1, #8
+ mov r0, #0xff
+ and r2, r0
+ lsl r1, r1, #8
+ ldr r0, _0221CE80 ; =0x0000FF00
+ and r1, r0
+ orr r2, r1
+ lsl r0, r2, #0x10
+ lsr r1, r0, #0x10
+ add r3, r7, #0
+ ldr r2, _0221CE8C ; =0x02241D90
+_0221CD92:
+ ldr r0, _0221CE90 ; =0x0000015C
+ str r1, [r2, r0]
+ add r2, #0x28
+ add r3, r3, #1
+ cmp r3, #4
+ blt _0221CD92
+ b _0221CE62
+_0221CDA0:
+ ldrh r1, [r5]
+ asr r2, r1, #8
+ mov r0, #0xff
+ and r2, r0
+ lsl r1, r1, #8
+ ldr r0, _0221CE80 ; =0x0000FF00
+ and r1, r0
+ orr r2, r1
+ lsl r0, r2, #0x10
+ lsr r2, r0, #0x10
+ add r1, r7, #0
+ ldr r3, _0221CE8C ; =0x02241D90
+_0221CDB8:
+ ldr r0, _0221CE94 ; =0x00000160
+ str r2, [r3, r0]
+ add r3, #0x28
+ add r1, r1, #1
+ cmp r1, #4
+ blt _0221CDB8
+ b _0221CE62
+_0221CDC6:
+ ldrh r1, [r5]
+ asr r2, r1, #8
+ mov r0, #0xff
+ and r2, r0
+ lsl r1, r1, #8
+ ldr r0, _0221CE80 ; =0x0000FF00
+ and r1, r0
+ orr r2, r1
+ lsl r0, r2, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, _0221CE88 ; =0x02241E90
+ str r1, [r0, #0x30]
+ b _0221CE62
+_0221CDE0:
+ ldr r1, _0221CE98 ; =0x00000206
+ sub r1, r0, r1
+ mov r0, #0x28
+ mul r1, r0
+ ldr r0, _0221CE9C ; =0x02241EF4
+ add r0, r0, r1
+ add r1, r7, #0
+ mov r2, #0x20
+ bl Call_FillMemWithValue
+ ldr r0, _0221CE88 ; =0x02241E90
+ ldr r0, [r0, #0x5c]
+ cmp r0, #1
+ bne _0221CE28
+ ldr r1, [sp, #0xc]
+ ldr r0, _0221CE98 ; =0x00000206
+ sub r1, r1, r0
+ mov r0, #0x28
+ mul r1, r0
+ ldr r0, _0221CE9C ; =0x02241EF4
+ add r4, r0, r1
+ add r6, r7, #0
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ ble _0221CE62
+_0221CE12:
+ add r0, r4, #0
+ ldrsb r1, [r5, r7]
+ add r5, r5, #1
+ bl MOD13_0221AA14
+ add r4, r4, r0
+ add r6, r6, #1
+ ldr r0, [sp, #0x10]
+ cmp r6, r0
+ blt _0221CE12
+ b _0221CE62
+_0221CE28:
+ ldr r1, [sp, #0xc]
+ ldr r0, _0221CE98 ; =0x00000206
+ sub r1, r1, r0
+ mov r0, #0x28
+ mul r1, r0
+ ldr r0, _0221CE9C ; =0x02241EF4
+ add r0, r0, r1
+ add r1, r5, #0
+ ldr r2, [sp, #0x10]
+ bl memcpy
+ b _0221CE62
+_0221CE40:
+ ldr r2, _0221CEA0 ; =0x02241F8C
+ add r0, r7, #0
+ add r1, r7, #0
+ stmia r2!, {r0, r1}
+ stmia r2!, {r0, r1}
+ stmia r2!, {r0, r1}
+ stmia r2!, {r0, r1}
+ stmia r2!, {r0, r1}
+ stmia r2!, {r0, r1}
+ stmia r2!, {r0, r1}
+ stmia r2!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, _0221CEA0 ; =0x02241F8C
+ add r1, r5, #0
+ ldr r2, [sp, #0x10]
+ bl memcpy
+_0221CE62:
+ add r0, sp, #8
+ ldr r1, [sp]
+ add r2, sp, #0xc
+ add r3, sp, #0x10
+ bl MOD13_0221D344
+ add r5, r0, #0
+ cmp r5, #0
+ beq _0221CE76
+ b _0221CD14
+_0221CE76:
+ ldr r0, [sp, #4]
+ add sp, #0x14
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221CE80: .word 0x0000FF00
+_0221CE84: .word 0x00000201
+_0221CE88: .word 0x02241E90
+_0221CE8C: .word 0x02241D90
+_0221CE90: .word 0x0000015C
+_0221CE94: .word 0x00000160
+_0221CE98: .word 0x00000206
+_0221CE9C: .word 0x02241EF4
+_0221CEA0: .word 0x02241F8C
+
+ thumb_func_start MOD13_0221CEA4
+MOD13_0221CEA4: ; 0x0221CEA4
+ push {r4, lr}
+ sub sp, #0x50
+ add r4, r0, #0
+ add r2, r4, #0
+ add r2, #0xc
+ ldr r1, _0221CFB0 ; =0x0223F92C
+ ldrb r0, [r1]
+ strb r0, [r4, #0xc]
+ ldrb r0, [r1, #1]
+ strb r0, [r2, #1]
+ ldrb r0, [r1, #2]
+ strb r0, [r2, #2]
+ ldrb r0, [r1, #3]
+ strb r0, [r2, #3]
+ add r1, sp, #0
+ ldr r0, _0221CFB4 ; =0x02241B3C
+ ldrb r2, [r0]
+ strb r2, [r1]
+ ldrb r2, [r0, #1]
+ strb r2, [r1, #1]
+ ldrb r2, [r0, #2]
+ strb r2, [r1, #2]
+ ldrb r2, [r0, #3]
+ strb r2, [r1, #3]
+ ldrb r2, [r0, #4]
+ strb r2, [r1, #4]
+ ldrb r0, [r0, #5]
+ strb r0, [r1, #5]
+ add r1, sp, #0
+ ldrb r2, [r1]
+ mov r0, #0xfd
+ and r2, r0
+ strb r2, [r1]
+ add r0, sp, #4
+ add r0, #2
+ bl MOD13_0221CFC0
+ ldr r0, _0221CFB8 ; =0x02241B34
+ add r1, sp, #4
+ add r1, #2
+ ldrb r2, [r1]
+ strb r2, [r0]
+ ldrb r2, [r1, #1]
+ strb r2, [r0, #1]
+ ldrb r2, [r1, #2]
+ strb r2, [r0, #2]
+ ldrb r2, [r1, #3]
+ strb r2, [r0, #3]
+ ldrb r2, [r1, #4]
+ strb r2, [r0, #4]
+ ldrb r2, [r1, #5]
+ strb r2, [r0, #5]
+ add r0, sp, #0
+ mov r2, #6
+ bl memcmp
+ cmp r0, #0
+ bgt _0221CF52
+ add r1, sp, #4
+ add r1, #2
+ ldrb r0, [r1]
+ strb r0, [r4]
+ ldrb r0, [r1, #1]
+ strb r0, [r4, #1]
+ ldrb r0, [r1, #2]
+ strb r0, [r4, #2]
+ ldrb r0, [r1, #3]
+ strb r0, [r4, #3]
+ ldrb r0, [r1, #4]
+ strb r0, [r4, #4]
+ ldrb r0, [r1, #5]
+ strb r0, [r4, #5]
+ add r1, r4, #6
+ add r0, sp, #0
+ ldrb r2, [r0]
+ strb r2, [r4, #6]
+ ldrb r2, [r0, #1]
+ strb r2, [r1, #1]
+ ldrb r2, [r0, #2]
+ strb r2, [r1, #2]
+ ldrb r2, [r0, #3]
+ strb r2, [r1, #3]
+ ldrb r2, [r0, #4]
+ strb r2, [r1, #4]
+ ldrb r0, [r0, #5]
+ strb r0, [r1, #5]
+ b _0221CF8A
+_0221CF52:
+ add r1, sp, #0
+ ldrb r0, [r1]
+ strb r0, [r4]
+ ldrb r0, [r1, #1]
+ strb r0, [r4, #1]
+ ldrb r0, [r1, #2]
+ strb r0, [r4, #2]
+ ldrb r0, [r1, #3]
+ strb r0, [r4, #3]
+ ldrb r0, [r1, #4]
+ strb r0, [r4, #4]
+ ldrb r0, [r1, #5]
+ strb r0, [r4, #5]
+ add r1, r4, #6
+ add r0, sp, #4
+ add r0, #2
+ ldrb r2, [r0]
+ strb r2, [r4, #6]
+ ldrb r2, [r0, #1]
+ strb r2, [r1, #1]
+ ldrb r2, [r0, #2]
+ strb r2, [r1, #2]
+ ldrb r2, [r0, #3]
+ strb r2, [r1, #3]
+ ldrb r2, [r0, #4]
+ strb r2, [r1, #4]
+ ldrb r0, [r0, #5]
+ strb r0, [r1, #5]
+_0221CF8A:
+ ldr r0, _0221CFBC ; =0x0223F868
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0221CFA4
+ add r0, sp, #0xc
+ add r1, sp, #4
+ add r1, #2
+ bl MOD13_0221A9D8
+ add r0, sp, #0x2c
+ add r1, sp, #0
+ bl MOD13_0221A9D8
+_0221CFA4:
+ mov r0, #1
+ add sp, #0x50
+ pop {r4}
+ pop {r3}
+ bx r3
+ nop
+_0221CFB0: .word 0x0223F92C
+_0221CFB4: .word 0x02241B3C
+_0221CFB8: .word 0x02241B34
+_0221CFBC: .word 0x0223F868
+
+ thumb_func_start MOD13_0221CFC0
+MOD13_0221CFC0: ; 0x0221CFC0
+ push {lr}
+ sub sp, #4
+ bl OS_GetMacAddress
+ mov r0, #1
+ add sp, #4
+ pop {r3}
+ bx r3
+
+ thumb_func_start MOD13_0221CFD0
+MOD13_0221CFD0: ; 0x0221CFD0
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r1, _0221D05C ; =0x00000100
+ add r0, sp, #4
+ strh r1, [r0]
+ ldr r3, _0221D060 ; =0x0223F880
+ add r2, sp, #4
+ add r2, #2
+ mov r1, #7
+_0221CFE4:
+ ldrb r0, [r3]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ cmp r1, #0
+ bne _0221CFE4
+ ldr r0, _0221D064 ; =0x0223F864
+ ldr r0, [r0]
+ mov r1, #1
+ add r2, sp, #4
+ mov r3, #2
+ bl MOD13_0221D1E0
+ mov r1, #2
+ add r2, sp, #4
+ add r3, r1, #0
+ bl MOD13_0221D1E0
+ ldr r1, _0221D068 ; =0x02241B00
+ ldr r1, [r1]
+ cmp r1, #0
+ beq _0221D01C
+ mov r1, #5
+ add r2, sp, #4
+ mov r3, #2
+ bl MOD13_0221D1E0
+_0221D01C:
+ mov r1, #3
+ add r2, sp, #4
+ add r2, #2
+ mov r3, #7
+ bl MOD13_0221D1E0
+ add r3, r0, #0
+ ldr r1, _0221D068 ; =0x02241B00
+ ldr r1, [r1]
+ cmp r1, #0
+ beq _0221D03E
+ mov r1, #4
+ ldr r2, _0221D06C ; =0x02241B34
+ mov r3, #6
+ bl MOD13_0221D1E0
+ add r3, r0, #0
+_0221D03E:
+ mov r0, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #2
+ ldr r2, _0221D070 ; =0x02241FE4
+ ldr r4, _0221D064 ; =0x0223F864
+ ldr r4, [r4]
+ sub r3, r3, r4
+ add r3, #8
+ bl MOD13_0221D248
+ add sp, #0x10
+ pop {r4}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221D05C: .word 0x00000100
+_0221D060: .word 0x0223F880
+_0221D064: .word 0x0223F864
+_0221D068: .word 0x02241B00
+_0221D06C: .word 0x02241B34
+_0221D070: .word 0x02241FE4
+
+ thumb_func_start MOD13_0221D074
+MOD13_0221D074: ; 0x0221D074
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r6, r2, #0
+ add r4, r3, #0
+ add r1, sp, #4
+ add r2, sp, #8
+ bl MOD13_0221D398
+ add r1, r0, #0
+ cmp r1, #0
+ bne _0221D096
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+_0221D096:
+ ldr r0, [sp, #4]
+ cmp r0, r5
+ beq _0221D0A6
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+_0221D0A6:
+ cmp r4, #0
+ beq _0221D0C0
+ mov r0, #0x10
+ str r0, [sp]
+ add r0, r6, #0
+ ldr r2, [sp, #8]
+ add r3, r4, #0
+ bl MOD13_0221C218
+ ldr r0, [sp, #8]
+ sub r0, #8
+ str r0, [sp, #8]
+ b _0221D0C8
+_0221D0C0:
+ add r0, r6, #0
+ ldr r2, [sp, #8]
+ bl memcpy
+_0221D0C8:
+ ldr r0, [sp, #8]
+ add sp, #0x10
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_0221D0D4
+MOD13_0221D0D4: ; 0x0221D0D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r1, [sp]
+ add r1, sp, #0xc
+ add r2, sp, #0x10
+ bl MOD13_0221D398
+ str r0, [sp, #0x1c]
+ mov r7, #0
+ str r7, [sp, #4]
+ str r7, [sp, #8]
+ cmp r0, #0
+ bne _0221D0F8
+ add r0, r7, #0
+ add sp, #0x24
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221D0F8:
+ ldr r1, [sp, #0xc]
+ cmp r1, #1
+ beq _0221D108
+ add r0, r7, #0
+ add sp, #0x24
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221D108:
+ ldr r1, [sp, #0x10]
+ add r6, r0, r1
+ add r0, #8
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x1c
+ add r1, r6, #0
+ add r2, sp, #0x14
+ add r3, sp, #0x18
+ bl MOD13_0221D344
+ cmp r0, #0
+ beq _0221D17C
+ mov r4, #0xff
+ ldr r5, _0221D1B0 ; =0x0000FF00
+_0221D124:
+ ldr r1, [sp, #0x14]
+ cmp r1, #1
+ beq _0221D134
+ cmp r1, #2
+ beq _0221D146
+ cmp r1, #5
+ beq _0221D15A
+ b _0221D16C
+_0221D134:
+ ldrh r0, [r0]
+ asr r1, r0, #8
+ and r1, r4
+ lsl r0, r0, #8
+ and r0, r5
+ orr r1, r0
+ lsl r0, r1, #0x10
+ lsr r7, r0, #0x10
+ b _0221D16C
+_0221D146:
+ ldrh r0, [r0]
+ asr r1, r0, #8
+ and r1, r4
+ lsl r0, r0, #8
+ and r0, r5
+ orr r1, r0
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ b _0221D16C
+_0221D15A:
+ ldrh r0, [r0]
+ asr r1, r0, #8
+ and r1, r4
+ lsl r0, r0, #8
+ and r0, r5
+ orr r1, r0
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+_0221D16C:
+ add r0, sp, #0x1c
+ add r1, r6, #0
+ add r2, sp, #0x14
+ add r3, sp, #0x18
+ bl MOD13_0221D344
+ cmp r0, #0
+ bne _0221D124
+_0221D17C:
+ cmp r7, #1
+ bne _0221D186
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ beq _0221D190
+_0221D186:
+ mov r0, #0
+ add sp, #0x24
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221D190:
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ blt _0221D19E
+ mov r1, #1
+ ldr r0, [sp]
+ str r1, [r0]
+ b _0221D1A4
+_0221D19E:
+ mov r1, #0
+ ldr r0, [sp]
+ str r1, [r0]
+_0221D1A4:
+ mov r0, #1
+ add sp, #0x24
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_0221D1B0: .word 0x0000FF00
+
+ thumb_func_start MOD13_0221D1B4
+MOD13_0221D1B4: ; 0x0221D1B4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ strb r0, [r4, #2]
+ strb r0, [r4, #3]
+ strb r0, [r4, #4]
+ strb r0, [r4, #5]
+ strb r0, [r4, #6]
+ strb r0, [r4, #7]
+ add r0, r4, #0
+ add r0, #8
+ bl MOD13_0221D1E0
+ sub r0, r0, r4
+ add r1, r0, #0
+ sub r1, #8
+ strh r1, [r4]
+ pop {r4}
+ pop {r3}
+ bx r3
+
+ thumb_func_start MOD13_0221D1E0
+MOD13_0221D1E0: ; 0x0221D1E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r7, r2, #0
+ add r4, r3, #0
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ strb r0, [r5, #3]
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ asr r2, r0, #8
+ mov r3, #0xff
+ and r2, r3
+ lsl r1, r0, #8
+ ldr r0, _0221D244 ; =0x0000FF00
+ and r1, r0
+ orr r2, r1
+ strh r2, [r5]
+ add r2, r4, #0
+ add r2, #0xb
+ mov r1, #7
+ bic r2, r1
+ sub r6, r2, #4
+ lsl r1, r4, #0x10
+ lsr r2, r1, #0x10
+ asr r1, r2, #8
+ and r1, r3
+ lsl r2, r2, #8
+ and r2, r0
+ orr r1, r2
+ strh r1, [r5, #2]
+ add r5, r5, #4
+ add r0, r5, #0
+ mov r1, #0
+ add r2, r6, #0
+ bl Call_FillMemWithValue
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl memcpy
+ add r0, r5, r6
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_0221D244: .word 0x0000FF00
+
+ thumb_func_start MOD13_0221D248
+MOD13_0221D248: ; 0x0221D248
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ str r1, [sp, #4]
+ add r1, r2, #0
+ add r7, r3, #0
+ add r5, r6, #0
+ mov r4, #0
+ strb r4, [r1]
+ strb r4, [r1, #1]
+ strb r4, [r1, #2]
+ strb r4, [r1, #3]
+ strb r4, [r1, #4]
+ strb r4, [r1, #5]
+ strb r4, [r1, #6]
+ strb r4, [r1, #7]
+ add r0, r7, #0
+ sub r0, #8
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ asr r2, r3, #8
+ mov r0, #0xff
+ and r2, r0
+ lsl r3, r3, #8
+ ldr r0, _0221D308 ; =0x0000FF00
+ and r3, r0
+ orr r2, r3
+ strh r2, [r1]
+ ldr r3, [sp, #0x20]
+ cmp r3, #0
+ beq _0221D296
+ mov r0, #0x10
+ str r0, [sp]
+ add r0, r6, #6
+ add r2, r7, #0
+ bl MOD13_0221C40C
+ add r7, #8
+ b _0221D29E
+_0221D296:
+ add r0, r6, #6
+ add r2, r7, #0
+ bl memcpy
+_0221D29E:
+ mov r0, #0
+ strb r0, [r6]
+ strb r0, [r6, #1]
+ strb r0, [r6, #2]
+ strb r0, [r6, #3]
+ strb r0, [r6, #4]
+ strb r0, [r6, #5]
+ ldr r0, [sp, #4]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r3, r0, #8
+ mov r1, #0xff
+ and r3, r1
+ lsl r0, r0, #8
+ ldr r2, _0221D308 ; =0x0000FF00
+ and r0, r2
+ orr r3, r0
+ strh r3, [r6]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ asr r3, r0, #8
+ and r3, r1
+ lsl r0, r0, #8
+ and r0, r2
+ orr r3, r0
+ strh r3, [r6, #2]
+ add r0, r5, #6
+ add r5, r0, r7
+ add r1, r6, #0
+ cmp r6, r5
+ bhs _0221D2E6
+_0221D2DC:
+ ldrb r0, [r1]
+ add r4, r4, r0
+ add r1, r1, #1
+ cmp r1, r5
+ blo _0221D2DC
+_0221D2E6:
+ lsl r0, r4, #0x10
+ lsr r1, r0, #0x10
+ asr r2, r1, #8
+ mov r0, #0xff
+ and r2, r0
+ lsl r1, r1, #8
+ ldr r0, _0221D308 ; =0x0000FF00
+ and r1, r0
+ orr r2, r1
+ strh r2, [r5]
+ add r0, r5, #2
+ sub r0, r0, r6
+ add sp, #0xc
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_0221D308: .word 0x0000FF00
+
+ thumb_func_start MOD13_0221D30C
+MOD13_0221D30C: ; 0x0221D30C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r3, r2, #0
+ add r2, r0, #0
+ add r2, #8
+ str r2, [sp]
+ ldrh r6, [r0]
+ add r0, sp, #0
+ asr r1, r6, #8
+ mov r5, #0xff
+ and r1, r5
+ lsl r6, r6, #8
+ ldr r5, _0221D340 ; =0x0000FF00
+ and r6, r5
+ orr r1, r6
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r1, r2, r1
+ add r2, r4, #0
+ bl MOD13_0221D344
+ add sp, #8
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221D340: .word 0x0000FF00
+
+ thumb_func_start MOD13_0221D344
+MOD13_0221D344: ; 0x0221D344
+ push {r4, r5, r6, r7}
+ add r5, r0, #0
+ add r4, r2, #0
+ add r2, r3, #0
+ ldr r0, [r5]
+ cmp r0, r1
+ blo _0221D358
+ mov r0, #0
+ pop {r4, r5, r6, r7}
+ bx lr
+_0221D358:
+ ldrh r1, [r0]
+ asr r7, r1, #8
+ mov r3, #0xff
+ and r7, r3
+ lsl r1, r1, #8
+ ldr r6, _0221D394 ; =0x0000FF00
+ and r1, r6
+ orr r7, r1
+ lsl r1, r7, #0x10
+ lsr r1, r1, #0x10
+ str r1, [r4]
+ ldrh r1, [r0, #2]
+ asr r4, r1, #8
+ and r4, r3
+ lsl r1, r1, #8
+ and r1, r6
+ orr r4, r1
+ lsl r1, r4, #0x10
+ lsr r1, r1, #0x10
+ str r1, [r2]
+ add r0, r0, #4
+ ldr r2, [r2]
+ add r2, #0xb
+ mov r1, #7
+ bic r2, r1
+ sub r1, r2, #4
+ add r1, r0, r1
+ str r1, [r5]
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_0221D394: .word 0x0000FF00
+
+ thumb_func_start MOD13_0221D398
+MOD13_0221D398: ; 0x0221D398
+ push {r4, r5, r6, r7}
+ mov r3, #0
+ ldrh r4, [r0]
+ asr r7, r4, #8
+ mov r5, #0xff
+ and r7, r5
+ lsl r4, r4, #8
+ ldr r6, _0221D404 ; =0x0000FF00
+ and r4, r6
+ orr r7, r4
+ lsl r4, r7, #0x10
+ lsr r4, r4, #0x10
+ str r4, [r1]
+ ldrh r1, [r0, #2]
+ asr r4, r1, #8
+ and r4, r5
+ lsl r1, r1, #8
+ and r1, r6
+ orr r4, r1
+ lsl r1, r4, #0x10
+ lsr r1, r1, #0x10
+ str r1, [r2]
+ add r4, r0, #6
+ ldr r1, [r2]
+ add r4, r4, r1
+ add r2, r0, #0
+ cmp r0, r4
+ bhs _0221D3DA
+_0221D3D0:
+ ldrb r1, [r2]
+ add r3, r3, r1
+ add r2, r2, #1
+ cmp r2, r4
+ blo _0221D3D0
+_0221D3DA:
+ ldrh r2, [r4]
+ lsl r1, r3, #0x10
+ lsr r4, r1, #0x10
+ asr r3, r2, #8
+ mov r1, #0xff
+ and r3, r1
+ lsl r2, r2, #8
+ ldr r1, _0221D404 ; =0x0000FF00
+ and r2, r1
+ orr r3, r2
+ lsl r1, r3, #0x10
+ lsr r1, r1, #0x10
+ cmp r4, r1
+ beq _0221D3FC
+ mov r0, #0
+ pop {r4, r5, r6, r7}
+ bx lr
+_0221D3FC:
+ add r0, r0, #6
+ pop {r4, r5, r6, r7}
+ bx lr
+ nop
+_0221D404: .word 0x0000FF00
+
+ thumb_func_start MOD13_0221D408
+MOD13_0221D408: ; 0x0221D408
+ add r1, r2, #0
+ add r2, r3, #0
+ ldr r3, _0221D410 ; =MOD13_0221D414
+ bx r3
+ .align 2, 0
+_0221D410: .word MOD13_0221D414
+
+ thumb_func_start MOD13_0221D414
+MOD13_0221D414: ; 0x0221D414
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ mov r0, #8
+ add r1, sp, #4
+ strb r0, [r1]
+ mov r0, #2
+ strb r0, [r1, #1]
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #8]
+ ldr r0, _0221D454 ; =0x000001E6
+ strh r0, [r1, #2]
+ bl FUN_02099C78
+ add r1, sp, #0xc
+ bl FUN_0209A174
+ str r4, [sp]
+ add r0, r5, #0
+ add r1, sp, #4
+ add r2, sp, #0xc
+ add r3, r6, #0
+ bl MOD13_0221D458
+ add sp, #0x10
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+ nop
+_0221D454: .word 0x000001E6
+
+ thumb_func_start MOD13_0221D458
+MOD13_0221D458: ; 0x0221D458
+ push {lr}
+ sub sp, #4
+ str r1, [sp]
+ add r1, r3, #0
+ ldr r2, [sp, #8]
+ mov r3, #0
+ bl FUN_0209A7D0
+ cmp r0, #0
+ bge _0221D470
+ mov r0, #3
+ mvn r0, r0
+_0221D470:
+ add sp, #4
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_0221D478
+MOD13_0221D478: ; 0x0221D478
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x9c
+ mov r0, #0
+ str r0, [sp, #0x18]
+ mvn r4, r0
+ str r0, [sp, #0x48]
+ ldr r0, _0221D738 ; =0x02241B20
+ ldr r0, [r0]
+ str r0, [sp, #0x10]
+ mov r1, #0x30
+ mul r0, r1
+ str r0, [sp, #0x10]
+ add r0, #0x34
+ str r0, [sp, #0x10]
+ mov r0, #1
+ ldr r1, [sp, #0x10]
+ bl MOD13_0221AA64
+ str r0, [sp, #0x14]
+ cmp r0, #0
+ bne _0221D4A4
+ b _0221D718
+_0221D4A4:
+ mov r0, #1
+ ldr r1, [sp, #0x10]
+ bl MOD13_0221AA64
+ str r0, [sp, #0x18]
+ cmp r0, #0
+ bne _0221D4B4
+ b _0221D718
+_0221D4B4:
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x3c]
+ str r0, [sp, #0x38]
+ add r6, sp, #0x6c
+ str r0, [sp, #0x34]
+ lsl r7, r0, #0
+ str r0, [sp, #0x28]
+ str r0, [sp, #0x2c]
+ str r0, [sp, #0x30]
+ str r0, [sp, #0x40]
+ b _0221D6E0
+_0221D4CE:
+ bl MOD13_0221AA90
+ ldr r1, _0221D73C ; =0x0223F870
+ ldr r1, [r1]
+ cmp r0, r1
+ blo _0221D4DC
+ b _0221D6F0
+_0221D4DC:
+ ldr r0, [sp, #0x28]
+ lsl r1, r0, #0
+ lsl r2, r0, #0
+ ldr r3, _0221D740 ; =0x0030BFFE
+ bl MOD13_0221DF9C
+ cmp r0, #0
+ bne _0221D4F2
+ mov r0, #1
+ mvn r4, r0
+ b _0221D718
+_0221D4F2:
+ add r0, r6, #0
+ bl OS_CreateAlarm
+ mov r0, #0x13
+ str r0, [sp]
+ add r0, r6, #0
+ ldr r1, _0221D744 ; =0x000FFB10
+ ldr r2, [sp, #0x2c]
+ ldr r3, _0221D748 ; =MOD13_0221DC1C
+ bl OS_SetAlarm
+ mov r5, #1
+ ldr r4, [sp, #0x30]
+_0221D50C:
+ mov r0, #0xa
+ bl OS_Sleep
+ bl MOD13_0221AA90
+ ldr r1, _0221D73C ; =0x0223F870
+ ldr r1, [r1]
+ cmp r0, r1
+ bhs _0221D5A8
+ ldr r0, _0221D74C ; =0x02241AC0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0221D5A8
+ bl MOD13_0221DC64
+ cmp r0, #0
+ beq _0221D5A4
+_0221D52E:
+ cmp r0, #0x13
+ bhi _0221D59A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #8]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, pc
+ bx r0
+_0221D540: ; jump table
+ .short _0221D59A - _0221D540 + 1 ; case 0
+ .short _0221D59A - _0221D540 + 1 ; case 1
+ .short _0221D59A - _0221D540 + 1 ; case 2
+ .short _0221D59A - _0221D540 + 1 ; case 3
+ .short _0221D59C - _0221D540 + 1 ; case 4
+ .short _0221D56C - _0221D540 + 1 ; case 5
+ .short _0221D59A - _0221D540 + 1 ; case 6
+ .short _0221D59A - _0221D540 + 1 ; case 7
+ .short _0221D59C - _0221D540 + 1 ; case 8
+ .short _0221D59A - _0221D540 + 1 ; case 9
+ .short _0221D596 - _0221D540 + 1 ; case 10
+ .short _0221D59A - _0221D540 + 1 ; case 11
+ .short _0221D59A - _0221D540 + 1 ; case 12
+ .short _0221D59A - _0221D540 + 1 ; case 13
+ .short _0221D59A - _0221D540 + 1 ; case 14
+ .short _0221D59A - _0221D540 + 1 ; case 15
+ .short _0221D59A - _0221D540 + 1 ; case 16
+ .short _0221D59A - _0221D540 + 1 ; case 17
+ .short _0221D59C - _0221D540 + 1 ; case 18
+ .short _0221D568 - _0221D540 + 1 ; case 19
+_0221D568:
+ add r5, r7, #0
+ b _0221D59C
+_0221D56C:
+ ldr r0, _0221D750 ; =0x02241B0C
+ ldr r0, [r0]
+ ldr r1, _0221D738 ; =0x02241B20
+ ldr r1, [r1]
+ bl MOD13_0221E0A8
+ cmp r0, r4
+ ble _0221D59C
+ add r4, r0, #0
+ add r0, r6, #0
+ bl OS_CancelAlarm
+ mov r0, #0x13
+ str r0, [sp]
+ add r0, r6, #0
+ ldr r1, _0221D744 ; =0x000FFB10
+ ldr r2, [sp, #0x34]
+ ldr r3, _0221D748 ; =MOD13_0221DC1C
+ bl OS_SetAlarm
+ b _0221D59C
+_0221D596:
+ ldr r5, [sp, #0x38]
+ b _0221D59C
+_0221D59A:
+ ldr r5, [sp, #0x3c]
+_0221D59C:
+ bl MOD13_0221DC64
+ cmp r0, #0
+ bne _0221D52E
+_0221D5A4:
+ cmp r5, #0
+ bne _0221D50C
+_0221D5A8:
+ add r0, r6, #0
+ bl OS_CancelAlarm
+_0221D5AE:
+ bl MOD13_0221DC64
+ cmp r0, #0
+ bne _0221D5AE
+ ldr r0, _0221D74C ; =0x02241AC0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0221D5C0
+ b _0221D6F0
+_0221D5C0:
+ ldr r0, [sp, #0x40]
+ str r0, [sp, #0xc]
+ ldr r0, _0221D738 ; =0x02241B20
+ ldr r0, [r0]
+ cmp r4, r0
+ blt _0221D5D2
+ mov r0, #5
+ mvn r4, r0
+ b _0221D718
+_0221D5D2:
+ ldr r0, [sp, #0x40]
+ str r0, [sp, #8]
+ ldr r0, _0221D750 ; =0x02241B0C
+ ldr r0, [r0]
+ str r0, [sp, #0x1c]
+ cmp r4, #0
+ ble _0221D66A
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #0x20]
+ add r0, #8
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #0x24]
+ lsl r5, r0, #0
+ add r5, #0x2c
+_0221D5F0:
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x1c]
+ add r1, #0xc
+ mov r2, #0x20
+ bl memcpy
+ ldr r0, [sp, #0x1c]
+ ldrh r1, [r0, #0xa]
+ ldr r0, [sp, #0x24]
+ str r1, [r0, #4]
+ ldr r0, [sp, #0x1c]
+ ldrh r1, [r0, #0xa]
+ ldr r0, [sp, #0x24]
+ add r1, r0, r1
+ ldr r0, [sp, #0x44]
+ strb r0, [r1, #8]
+ ldr r0, [sp, #0x1c]
+ ldrh r1, [r0, #0x2c]
+ mov r0, #0x10
+ and r1, r0
+ cmp r1, #0
+ beq _0221D620
+ mov r1, #1
+ b _0221D622
+_0221D620:
+ ldr r1, [sp, #0x44]
+_0221D622:
+ ldr r0, [sp, #0x24]
+ strh r1, [r0, #0x32]
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #4
+ ldr r1, [sp, #0x1c]
+ ldrb r1, [r1, #4]
+ strb r1, [r5]
+ ldrb r1, [r0, #1]
+ strb r1, [r5, #1]
+ ldrb r1, [r0, #2]
+ strb r1, [r5, #2]
+ ldrb r1, [r0, #3]
+ strb r1, [r5, #3]
+ ldrb r1, [r0, #4]
+ strb r1, [r5, #4]
+ ldrb r0, [r0, #5]
+ strb r0, [r5, #5]
+ ldr r0, [sp, #0x20]
+ add r0, #0x30
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x24]
+ add r0, #0x30
+ str r0, [sp, #0x24]
+ add r5, #0x30
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x1c]
+ add r0, #0xc0
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #8]
+ cmp r0, r4
+ blt _0221D5F0
+_0221D66A:
+ ldr r0, [sp, #0x14]
+ str r4, [r0]
+ ldr r0, _0221D754 ; =0x02241AE8
+ ldr r0, [r0]
+ cmp r0, #1
+ beq _0221D6C6
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ add r2, sp, #0x48
+ bl MOD13_0221D764
+ cmp r0, #0
+ beq _0221D6C6
+ ldr r3, [sp, #0x48]
+ ldr r0, [sp, #0x14]
+ add r2, r0, #4
+ mov r0, #0x30
+ add r1, r3, #0
+ mul r1, r0
+ add r4, r2, r1
+ ldr r0, _0221D758 ; =0x02241AC8
+ str r3, [r0]
+ ldr r0, _0221D75C ; =0x02241BC4
+ add r1, r4, #4
+ bl strcpy
+ ldr r1, _0221D760 ; =0x02241B3C
+ add r0, r4, #0
+ add r0, #0x28
+ add r4, #0x28
+ ldrb r2, [r4]
+ strb r2, [r1]
+ ldrb r2, [r0, #1]
+ strb r2, [r1, #1]
+ ldrb r2, [r0, #2]
+ strb r2, [r1, #2]
+ ldrb r2, [r0, #3]
+ strb r2, [r1, #3]
+ ldrb r2, [r0, #4]
+ strb r2, [r1, #4]
+ ldrb r0, [r0, #5]
+ strb r0, [r1, #5]
+ add r0, sp, #0x4c
+ bl MOD13_0221A9D8
+ b _0221D6F0
+_0221D6C6:
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ bl memcpy
+ mov r1, #2
+ ldr r0, _0221D754 ; =0x02241AE8
+ str r1, [r0]
+ bl MOD13_0221A778
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+_0221D6E0:
+ ldr r0, [sp, #4]
+ cmp r0, #0x1e
+ bge _0221D6F0
+ ldr r0, _0221D74C ; =0x02241AC0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0221D6F0
+ b _0221D4CE
+_0221D6F0:
+ ldr r0, [sp, #4]
+ cmp r0, #0x1e
+ bge _0221D702
+ bl MOD13_0221AA90
+ ldr r1, _0221D73C ; =0x0223F870
+ ldr r1, [r1]
+ cmp r0, r1
+ bls _0221D708
+_0221D702:
+ mov r0, #2
+ mvn r4, r0
+ b _0221D718
+_0221D708:
+ ldr r0, _0221D74C ; =0x02241AC0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0221D716
+ mov r0, #7
+ mvn r4, r0
+ b _0221D718
+_0221D716:
+ mov r4, #1
+_0221D718:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _0221D722
+ bl MOD13_0221AA50
+_0221D722:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ beq _0221D72C
+ bl MOD13_0221AA50
+_0221D72C:
+ add r0, r4, #0
+ add sp, #0x9c
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_0221D738: .word 0x02241B20
+_0221D73C: .word 0x0223F870
+_0221D740: .word 0x0030BFFE
+_0221D744: .word 0x000FFB10
+_0221D748: .word MOD13_0221DC1C
+_0221D74C: .word 0x02241AC0
+_0221D750: .word 0x02241B0C
+_0221D754: .word 0x02241AE8
+_0221D758: .word 0x02241AC8
+_0221D75C: .word 0x02241BC4
+_0221D760: .word 0x02241B3C
+
+ thumb_func_start MOD13_0221D764
+MOD13_0221D764: ; 0x0221D764
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x74
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ add r5, r0, #4
+ lsl r0, r1, #0
+ add r4, r0, #4
+ ldr r0, [sp, #0xc]
+ str r0, [sp, #0x20]
+ ldr r0, [sp]
+ ldr r0, [r0]
+ cmp r0, #0
+ bls _0221D832
+ ldr r0, [sp, #0xc]
+ str r0, [sp, #0x28]
+ str r0, [sp, #0x24]
+_0221D78E:
+ add r2, sp, #0x30
+ mov r1, #0x22
+_0221D792:
+ ldr r0, [sp, #0x24]
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ cmp r1, #0
+ bne _0221D792
+ add r0, sp, #0x30
+ add r1, r5, #4
+ mov r2, #0x20
+ bl memcpy
+ ldr r2, [r5]
+ ldr r1, [sp, #0x28]
+ add r0, sp, #0x30
+ strb r1, [r0, r2]
+ lsl r7, r1, #0
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ str r0, [sp, #0x1c]
+ cmp r0, #0
+ bls _0221D816
+ ldr r6, [r5]
+_0221D7BE:
+ cmp r6, #0
+ beq _0221D816
+ cmp r6, #0x20
+ bhi _0221D816
+ cmp r6, #1
+ bne _0221D7D4
+ ldrb r0, [r5, #4]
+ cmp r0, #0
+ beq _0221D816
+ cmp r0, #0x20
+ beq _0221D816
+_0221D7D4:
+ add r0, sp, #0x30
+ bl strlen
+ add r2, r0, #0
+ add r0, sp, #0x30
+ add r1, r4, #4
+ bl memcmp
+ cmp r0, #0
+ bne _0221D80C
+ add r0, r5, #0
+ add r0, #0x28
+ add r1, r4, #0
+ add r1, #0x28
+ mov r2, #4
+ bl memcmp
+ cmp r0, #0
+ bne _0221D80C
+ ldrh r1, [r5, #0x2e]
+ ldrh r0, [r4, #0x2e]
+ cmp r1, r0
+ beq _0221D80C
+ cmp r1, #0
+ bne _0221D80C
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _0221D816
+_0221D80C:
+ add r4, #0x30
+ add r7, r7, #1
+ ldr r0, [sp, #0x1c]
+ cmp r7, r0
+ blo _0221D7BE
+_0221D816:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _0221D832
+ add r5, #0x30
+ ldr r0, [sp, #4]
+ add r4, r0, #4
+ ldr r0, [sp, #0x20]
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ ldr r0, [sp]
+ ldr r1, [r0]
+ ldr r0, [sp, #0x20]
+ cmp r0, r1
+ blo _0221D78E
+_0221D832:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _0221D91A
+ add r2, sp, #0x50
+ add r2, #2
+ mov r1, #0x22
+ mov r0, #0
+_0221D840:
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ cmp r1, #0
+ bne _0221D840
+ mov r0, #0
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ ldr r0, [sp]
+ add r5, r0, #4
+ ldr r0, [sp, #4]
+ add r4, r0, #4
+ ldr r6, [sp, #0x14]
+ ldr r0, [r0]
+ cmp r0, #0
+ bls _0221D8A0
+ add r7, sp, #0x50
+ add r7, #2
+_0221D864:
+ add r0, r7, #0
+ add r1, r4, #4
+ mov r2, #0x20
+ bl memcpy
+ ldr r1, [r4]
+ ldr r0, [sp, #0x14]
+ strb r0, [r7, r1]
+ ldr r0, _0221D934 ; =0x0223F878
+ bl strlen
+ add r2, r0, #0
+ add r0, r7, #0
+ ldr r1, _0221D934 ; =0x0223F878
+ bl memcmp
+ cmp r0, #0
+ bne _0221D894
+ ldrh r0, [r4, #0x2e]
+ cmp r0, #0
+ bne _0221D894
+ mov r0, #1
+ str r0, [sp, #0x18]
+ b _0221D8A0
+_0221D894:
+ add r4, #0x30
+ add r6, r6, #1
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ cmp r6, r0
+ blo _0221D864
+_0221D8A0:
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [sp]
+ ldr r0, [r0]
+ cmp r0, #0
+ bls _0221D90A
+ ldr r7, _0221D934 ; =0x0223F878
+ add r4, sp, #0x50
+ add r4, #2
+ ldr r0, [sp, #0x20]
+ str r0, [sp, #0x2c]
+_0221D8B6:
+ add r0, r4, #0
+ add r1, r5, #4
+ mov r2, #0x20
+ bl memcpy
+ ldr r1, [r5]
+ ldr r0, [sp, #0x2c]
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ bl strlen
+ add r6, r0, #0
+ add r0, r7, #0
+ bl strlen
+ cmp r6, r0
+ bne _0221D8F8
+ add r0, r7, #0
+ bl strlen
+ add r2, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl memcmp
+ cmp r0, #0
+ bne _0221D8F8
+ ldrh r0, [r5, #0x2e]
+ cmp r0, #0
+ bne _0221D8F8
+ mov r0, #1
+ str r0, [sp, #0x14]
+ b _0221D90A
+_0221D8F8:
+ add r5, #0x30
+ ldr r0, [sp, #0x20]
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ ldr r0, [sp]
+ ldr r1, [r0]
+ ldr r0, [sp, #0x20]
+ cmp r0, r1
+ blo _0221D8B6
+_0221D90A:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _0221D91A
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ bne _0221D91A
+ mov r0, #1
+ str r0, [sp, #0xc]
+_0221D91A:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ beq _0221D92A
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #8]
+ str r1, [r0]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0221D92A:
+ ldr r0, [sp, #0x10]
+ add sp, #0x74
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221D934: .word 0x0223F878
+
+ thumb_func_start MOD13_0221D938
+MOD13_0221D938: ; 0x0221D938
+ push {r4, r5, r6, lr}
+ mov r5, #1
+ ldr r0, _0221D998 ; =0x02241AD0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0221D982
+ bl MOD13_0221DF5C
+ cmp r0, #0
+ beq _0221D97C
+ mov r4, #0
+ mov r6, #0xa
+_0221D950:
+ add r0, r6, #0
+ bl OS_Sleep
+ bl MOD13_0221DC64
+ cmp r0, #0
+ beq _0221D978
+_0221D95E:
+ cmp r0, #4
+ beq _0221D970
+ cmp r0, #5
+ beq _0221D970
+ cmp r0, #0xe
+ bne _0221D96E
+ add r5, r4, #0
+ b _0221D970
+_0221D96E:
+ add r5, r4, #0
+_0221D970:
+ bl MOD13_0221DC64
+ cmp r0, #0
+ bne _0221D95E
+_0221D978:
+ cmp r5, #0
+ bne _0221D950
+_0221D97C:
+ mov r1, #0
+ ldr r0, _0221D998 ; =0x02241AD0
+ str r1, [r0]
+_0221D982:
+ ldr r0, _0221D99C ; =0x02241AD4
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _0221D992
+ mov r1, #0
+ str r1, [r0]
+ bl THUNK_FUN_02099BC8
+_0221D992:
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221D998: .word 0x02241AD0
+_0221D99C: .word 0x02241AD4
+
+ thumb_func_start MOD13_0221D9A0
+MOD13_0221D9A0: ; 0x0221D9A0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ mov r5, #1
+ mvn r6, r5
+ ldr r0, _0221DACC ; =0x02241B0C
+ ldr r2, [r0]
+ ldr r0, _0221DAD0 ; =0x02241AC8
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r1, r0
+ add r7, r2, r1
+ cmp r7, #0
+ bne _0221D9C4
+ mov r0, #0
+ add sp, #0x34
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221D9C4:
+ add r0, r7, #0
+ mov r1, #0
+ ldr r2, _0221DAD4 ; =0x00030000
+ bl MOD13_0221DE44
+ cmp r0, #0
+ bne _0221D9DE
+ lsl r0, r5, #0
+ mvn r0, r0
+ add sp, #0x34
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221D9DE:
+ add r0, sp, #8
+ bl OS_CreateAlarm
+ mov r0, #0x12
+ str r0, [sp]
+ add r0, sp, #8
+ ldr r1, _0221DAD8 ; =0x003FEC42
+ mov r2, #0
+ ldr r3, _0221DADC ; =MOD13_0221DC1C
+ bl OS_SetAlarm
+ mov r4, #0
+ mov r0, #7
+ mvn r0, r0
+ str r0, [sp, #4]
+_0221D9FC:
+ bl MOD13_0221AA90
+ ldr r1, _0221DAE0 ; =0x0223F870
+ ldr r1, [r1]
+ cmp r0, r1
+ blo _0221DA0E
+ mov r0, #2
+ mvn r6, r0
+ b _0221DA94
+_0221DA0E:
+ ldr r0, _0221DAE4 ; =0x02241AC0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0221DA1C
+ mov r0, #7
+ mvn r6, r0
+ b _0221DA94
+_0221DA1C:
+ mov r0, #0xa
+ bl OS_Sleep
+ bl MOD13_0221DC64
+ cmp r0, #0
+ beq _0221DA90
+_0221DA2A:
+ cmp r0, #0xc
+ bgt _0221DA44
+ cmp r0, #0xc
+ bge _0221DA5A
+ cmp r0, #5
+ bgt _0221DA86
+ cmp r0, #4
+ blt _0221DA86
+ cmp r0, #4
+ beq _0221DA88
+ cmp r0, #5
+ beq _0221DA88
+ b _0221DA86
+_0221DA44:
+ cmp r0, #0x13
+ bgt _0221DA86
+ cmp r0, #0xd
+ blt _0221DA86
+ cmp r0, #0xd
+ beq _0221DA60
+ cmp r0, #0x12
+ beq _0221DA88
+ cmp r0, #0x13
+ beq _0221DA88
+ b _0221DA86
+_0221DA5A:
+ add r5, r4, #0
+ mov r6, #1
+ b _0221DA88
+_0221DA60:
+ ldr r0, _0221DAE4 ; =0x02241AC0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0221DA6E
+ add r5, r4, #0
+ ldr r6, [sp, #4]
+ b _0221DA88
+_0221DA6E:
+ add r0, r7, #0
+ add r1, r4, #0
+ ldr r2, _0221DAD4 ; =0x00030000
+ bl MOD13_0221DE44
+ cmp r0, #0
+ bne _0221DA88
+ add r0, r6, #0
+ add sp, #0x34
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221DA86:
+ add r5, r4, #0
+_0221DA88:
+ bl MOD13_0221DC64
+ cmp r0, #0
+ bne _0221DA2A
+_0221DA90:
+ cmp r5, #0
+ bne _0221D9FC
+_0221DA94:
+ add r0, sp, #8
+ bl OS_CancelAlarm
+_0221DA9A:
+ bl MOD13_0221DC64
+ cmp r0, #0
+ bne _0221DA9A
+ cmp r6, #0
+ ble _0221DAC2
+ mov r1, #1
+ ldr r0, _0221DAE8 ; =0x02241AD0
+ str r1, [r0]
+ ldr r0, _0221DAEC ; =0x0223F8D4
+ bl FUN_0209A2C0
+ cmp r0, #0
+ bge _0221DABC
+ mov r0, #1
+ mvn r6, r0
+ b _0221DAC2
+_0221DABC:
+ mov r1, #1
+ ldr r0, _0221DAF0 ; =0x02241AD4
+ str r1, [r0]
+_0221DAC2:
+ add r0, r6, #0
+ add sp, #0x34
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221DACC: .word 0x02241B0C
+_0221DAD0: .word 0x02241AC8
+_0221DAD4: .word 0x00030000
+_0221DAD8: .word 0x003FEC42
+_0221DADC: .word MOD13_0221DC1C
+_0221DAE0: .word 0x0223F870
+_0221DAE4: .word 0x02241AC0
+_0221DAE8: .word 0x02241AD0
+_0221DAEC: .word 0x0223F8D4
+_0221DAF0: .word 0x02241AD4
+
+ thumb_func_start MOD13_0221DAF4
+MOD13_0221DAF4: ; 0x0221DAF4
+ push {r4, r5, r6, lr}
+ mov r5, #1
+ bl MOD13_0221DEF4
+ cmp r0, #0
+ beq _0221DB30
+ mov r4, #0
+ mov r6, #0xa
+_0221DB04:
+ add r0, r6, #0
+ bl OS_Sleep
+ bl MOD13_0221DC64
+ cmp r0, #0
+ beq _0221DB2C
+_0221DB12:
+ cmp r0, #4
+ beq _0221DB24
+ cmp r0, #5
+ beq _0221DB24
+ cmp r0, #0x14
+ bne _0221DB22
+ add r5, r4, #0
+ b _0221DB24
+_0221DB22:
+ add r5, r4, #0
+_0221DB24:
+ bl MOD13_0221DC64
+ cmp r0, #0
+ bne _0221DB12
+_0221DB2C:
+ cmp r5, #0
+ bne _0221DB04
+_0221DB30:
+ ldr r0, _0221DB4C ; =0x02241B04
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0221DB44
+ ldr r1, _0221DB50 ; =0x02241ABC
+ ldr r1, [r1]
+ blx r1
+ mov r1, #0
+ ldr r0, _0221DB4C ; =0x02241B04
+ str r1, [r0]
+_0221DB44:
+ mov r0, #1
+ pop {r4, r5, r6}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221DB4C: .word 0x02241B04
+_0221DB50: .word 0x02241ABC
+
+ thumb_func_start MOD13_0221DB54
+MOD13_0221DB54: ; 0x0221DB54
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r6, r0, #0
+ mov r5, #1
+ ldr r0, _0221DBFC ; =0x02241B20
+ str r6, [r0]
+ bl MOD13_0221DCA4
+ mov r0, #0xd0
+ add r7, r6, #0
+ mul r7, r0
+ ldr r0, _0221DC00 ; =0x000024D0
+ add r1, r7, r0
+ mov r0, #0xc0
+ mul r6, r0
+ add r0, r1, r6
+ ldr r1, _0221DC04 ; =0x02241AB4
+ ldr r1, [r1]
+ blx r1
+ ldr r1, _0221DC08 ; =0x02241B04
+ str r0, [r1]
+ cmp r0, #0
+ bne _0221DB8E
+ mov r0, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221DB8E:
+ mov r3, #0x1f
+ add r1, r0, r3
+ bic r1, r3
+ ldr r0, _0221DC0C ; =0x02241AF0
+ str r1, [r0]
+ ldr r0, _0221DC10 ; =0x00002490
+ add r2, r7, r0
+ add r0, r1, r2
+ add r6, r0, r3
+ bic r6, r3
+ ldr r0, _0221DC14 ; =0x02241B0C
+ str r6, [r0]
+ ldr r0, _0221DC18 ; =MOD13_0221DC28
+ bl MOD13_0221DD4C
+ cmp r0, #0
+ bne _0221DBBC
+ lsl r0, r5, #0
+ mvn r0, r0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221DBBC:
+ mov r0, #0xa
+ bl OS_Sleep
+ bl MOD13_0221DC64
+ cmp r0, #0
+ beq _0221DBEE
+ mov r7, #0
+ mov r1, #1
+ mvn r6, r1
+_0221DBD0:
+ cmp r0, #4
+ beq _0221DBE6
+ cmp r0, #5
+ beq _0221DBE6
+ cmp r0, #6
+ bne _0221DBE2
+ add r5, r7, #0
+ mov r4, #1
+ b _0221DBE6
+_0221DBE2:
+ add r5, r7, #0
+ add r4, r6, #0
+_0221DBE6:
+ bl MOD13_0221DC64
+ cmp r0, #0
+ bne _0221DBD0
+_0221DBEE:
+ cmp r5, #0
+ bne _0221DBBC
+ add r0, r4, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221DBFC: .word 0x02241B20
+_0221DC00: .word 0x000024D0
+_0221DC04: .word 0x02241AB4
+_0221DC08: .word 0x02241B04
+_0221DC0C: .word 0x02241AF0
+_0221DC10: .word 0x00002490
+_0221DC14: .word 0x02241B0C
+_0221DC18: .word MOD13_0221DC28
+
+ thumb_func_start MOD13_0221DC1C
+MOD13_0221DC1C: ; 0x0221DC1C
+ mov r1, #0
+ ldr r3, _0221DC24 ; =MOD13_0221DC28
+ bx r3
+ nop
+_0221DC24: .word MOD13_0221DC28
+
+ thumb_func_start MOD13_0221DC28
+MOD13_0221DC28: ; 0x0221DC28
+ push {r4}
+ sub sp, #4
+ ldr r1, _0221DC58 ; =0x02241B1C
+ ldr r2, [r1]
+ ldr r1, _0221DC5C ; =0x02241B18
+ ldr r3, [r1]
+ add r4, r3, #1
+ cmp r4, r2
+ beq _0221DC50
+ add r2, r2, #3
+ cmp r3, r2
+ beq _0221DC50
+ lsl r3, r3, #2
+ ldr r2, _0221DC60 ; =0x02241B4C
+ str r0, [r2, r3]
+ str r4, [r1]
+ cmp r4, #4
+ blt _0221DC50
+ mov r0, #0
+ str r0, [r1]
+_0221DC50:
+ add sp, #4
+ pop {r4}
+ bx lr
+ nop
+_0221DC58: .word 0x02241B1C
+_0221DC5C: .word 0x02241B18
+_0221DC60: .word 0x02241B4C
+
+ thumb_func_start MOD13_0221DC64
+MOD13_0221DC64: ; 0x0221DC64
+ push {r4, lr}
+ bl OS_DisableInterrupts
+ ldr r3, _0221DC98 ; =0x02241B1C
+ ldr r1, [r3]
+ ldr r2, _0221DC9C ; =0x02241B18
+ ldr r2, [r2]
+ cmp r2, r1
+ bne _0221DC7A
+ mov r4, #0
+ b _0221DC8C
+_0221DC7A:
+ lsl r4, r1, #2
+ ldr r2, _0221DCA0 ; =0x02241B4C
+ ldr r4, [r2, r4]
+ add r1, r1, #1
+ str r1, [r3]
+ cmp r1, #4
+ blt _0221DC8C
+ mov r1, #0
+ str r1, [r3]
+_0221DC8C:
+ bl OS_RestoreInterrupts
+ add r0, r4, #0
+ pop {r4}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221DC98: .word 0x02241B1C
+_0221DC9C: .word 0x02241B18
+_0221DCA0: .word 0x02241B4C
+
+ thumb_func_start MOD13_0221DCA4
+MOD13_0221DCA4: ; 0x0221DCA4
+ push {lr}
+ sub sp, #4
+ bl OS_DisableInterrupts
+ mov r3, #0
+ ldr r1, _0221DCCC ; =0x02241B18
+ str r3, [r1]
+ ldr r1, _0221DCD0 ; =0x02241B1C
+ str r3, [r1]
+ ldr r2, _0221DCD4 ; =0x02241B4C
+ add r1, r3, #0
+_0221DCBA:
+ stmia r2!, {r1}
+ add r3, r3, #1
+ cmp r3, #4
+ blt _0221DCBA
+ bl OS_RestoreInterrupts
+ add sp, #4
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221DCCC: .word 0x02241B18
+_0221DCD0: .word 0x02241B1C
+_0221DCD4: .word 0x02241B4C
+
+ thumb_func_start MOD13_0221DCD8
+MOD13_0221DCD8: ; 0x0221DCD8
+ push {r4, lr}
+ add r4, r1, #0
+ cmp r4, #0
+ beq _0221DCF8
+ cmp r2, #0
+ ble _0221DCF8
+ ldr r0, _0221DD00 ; =0x02241B6C
+ bl OS_LockMutex
+ add r0, r4, #0
+ ldr r1, _0221DD04 ; =0x02241ABC
+ ldr r1, [r1]
+ blx r1
+ ldr r0, _0221DD00 ; =0x02241B6C
+ bl OS_UnlockMutex
+_0221DCF8:
+ pop {r4}
+ pop {r3}
+ bx r3
+ nop
+_0221DD00: .word 0x02241B6C
+_0221DD04: .word 0x02241ABC
+
+ thumb_func_start MOD13_0221DD08
+MOD13_0221DD08: ; 0x0221DD08
+ push {r4, lr}
+ add r4, r1, #0
+ cmp r4, #0
+ ble _0221DD2E
+ ldr r0, _0221DD38 ; =0x02241B6C
+ bl OS_LockMutex
+ add r0, r4, #0
+ ldr r1, _0221DD3C ; =0x02241AB4
+ ldr r1, [r1]
+ blx r1
+ add r4, r0, #0
+ ldr r0, _0221DD38 ; =0x02241B6C
+ bl OS_UnlockMutex
+ add r0, r4, #0
+ pop {r4}
+ pop {r3}
+ bx r3
+_0221DD2E:
+ mov r0, #0
+ pop {r4}
+ pop {r3}
+ bx r3
+ nop
+_0221DD38: .word 0x02241B6C
+_0221DD3C: .word 0x02241AB4
+
+ thumb_func_start MOD13_0221DD40
+MOD13_0221DD40: ; 0x0221DD40
+ ldr r0, _0221DD48 ; =0x02241ADC
+ ldr r0, [r0]
+ bx lr
+ nop
+_0221DD48: .word 0x02241ADC
+
+ thumb_func_start MOD13_0221DD4C
+MOD13_0221DD4C: ; 0x0221DD4C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r6, r0, #0
+ add r5, r1, #0
+ add r7, r2, #0
+ bl OS_DisableInterrupts
+ add r4, r0, #0
+ ldr r0, _0221DE20 ; =0x02241AD8
+ str r5, [r0]
+ add r2, r5, #0
+ add r2, #0x63
+ mov r0, #3
+ bic r2, r0
+ ldr r0, _0221DE24 ; =0x02241AB8
+ str r2, [r0]
+ add r1, r2, #0
+ add r1, #0x2f
+ mov r3, #0x1f
+ bic r1, r3
+ ldr r3, _0221DE28 ; =0x02241AEC
+ str r1, [r3]
+ ldr r3, _0221DE2C ; =0x0000231F
+ add r1, r1, r3
+ mov r3, #0x1f
+ bic r1, r3
+ ldr r3, _0221DE30 ; =0x02241AFC
+ str r1, [r3]
+ add r1, #0xdf
+ mov r3, #0x1f
+ bic r1, r3
+ str r1, [r2, #4]
+ ldr r1, [r0]
+ add r3, r5, r7
+ ldr r2, [r1, #4]
+ sub r2, r3, r2
+ str r2, [r1, #8]
+ mov r2, #0
+ ldr r1, [r0]
+ str r2, [r1, #0xc]
+ ldr r1, [r0]
+ mov r0, #3
+ str r0, [r1]
+ ldr r0, _0221DE34 ; =0x02241B30
+ str r6, [r0]
+ ldr r0, _0221DE38 ; =0x02241ADC
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0221DDD2
+ ldr r0, _0221DE28 ; =0x02241AEC
+ ldr r0, [r0]
+ ldr r1, _0221DE3C ; =0x00002300
+ bl FUN_020A7E80
+ cmp r0, #0
+ beq _0221DDCC
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221DDCC:
+ mov r1, #1
+ ldr r0, _0221DE38 ; =0x02241ADC
+ str r1, [r0]
+_0221DDD2:
+ ldr r0, _0221DE38 ; =0x02241ADC
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _0221DE0E
+ ldr r0, _0221DE24 ; =0x02241AB8
+ ldr r0, [r0]
+ ldr r1, _0221DE40 ; =MOD13_0221E178
+ bl FUN_020A7BD4
+ cmp r0, #3
+ beq _0221DDF8
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221DDF8:
+ mov r1, #4
+ ldr r0, _0221DE38 ; =0x02241ADC
+ str r1, [r0]
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221DE0E:
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_0221DE20: .word 0x02241AD8
+_0221DE24: .word 0x02241AB8
+_0221DE28: .word 0x02241AEC
+_0221DE2C: .word 0x0000231F
+_0221DE30: .word 0x02241AFC
+_0221DE34: .word 0x02241B30
+_0221DE38: .word 0x02241ADC
+_0221DE3C: .word 0x00002300
+_0221DE40: .word MOD13_0221E178
+
+ thumb_func_start MOD13_0221DE44
+MOD13_0221DE44: ; 0x0221DE44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r7, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl OS_DisableInterrupts
+ add r4, r0, #0
+ ldr r0, _0221DEE4 ; =0x02241B08
+ str r6, [r0]
+ cmp r5, #0
+ beq _0221DE6A
+ add r0, r5, #0
+ ldr r1, _0221DEE8 ; =0x02241AD8
+ ldr r1, [r1]
+ mov r2, #0x60
+ bl MI_CpuCopy8
+ b _0221DE76
+_0221DE6A:
+ ldr r0, _0221DEE8 ; =0x02241AD8
+ ldr r0, [r0]
+ mov r1, #0
+ mov r2, #0x60
+ bl MI_CpuFill8
+_0221DE76:
+ add r0, r7, #0
+ ldr r1, _0221DEEC ; =0x02241AFC
+ ldr r1, [r1]
+ mov r2, #0xc0
+ bl MIi_CpuCopy32
+ bl MOD13_0221E0F4
+ cmp r0, #1
+ bne _0221DEA0
+ mov r1, #8
+ ldr r0, _0221DEF0 ; =0x02241ADC
+ str r1, [r0]
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221DEA0:
+ ldr r0, _0221DEF0 ; =0x02241ADC
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _0221DED2
+ ldr r0, _0221DEEC ; =0x02241AFC
+ ldr r0, [r0]
+ ldr r1, _0221DEE8 ; =0x02241AD8
+ ldr r1, [r1]
+ ldr r2, _0221DEE4 ; =0x02241B08
+ ldr r2, [r2]
+ bl FUN_020A75C0
+ cmp r0, #3
+ bne _0221DED2
+ mov r1, #8
+ ldr r0, _0221DEF0 ; =0x02241ADC
+ str r1, [r0]
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221DED2:
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ nop
+_0221DEE4: .word 0x02241B08
+_0221DEE8: .word 0x02241AD8
+_0221DEEC: .word 0x02241AFC
+_0221DEF0: .word 0x02241ADC
+
+ thumb_func_start MOD13_0221DEF4
+MOD13_0221DEF4: ; 0x0221DEF4
+ push {r4, lr}
+ bl OS_DisableInterrupts
+ add r4, r0, #0
+ ldr r0, _0221DF58 ; =0x02241ADC
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _0221DF2E
+ bl FUN_020A7AC8
+ cmp r0, #3
+ beq _0221DF1A
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ pop {r4}
+ pop {r3}
+ bx r3
+_0221DF1A:
+ mov r1, #2
+ ldr r0, _0221DF58 ; =0x02241ADC
+ str r1, [r0]
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ pop {r4}
+ pop {r3}
+ bx r3
+_0221DF2E:
+ bl MOD13_0221E0F4
+ cmp r0, #1
+ bne _0221DF4A
+ mov r1, #2
+ ldr r0, _0221DF58 ; =0x02241ADC
+ str r1, [r0]
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ pop {r4}
+ pop {r3}
+ bx r3
+_0221DF4A:
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ pop {r4}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221DF58: .word 0x02241ADC
+
+ thumb_func_start MOD13_0221DF5C
+MOD13_0221DF5C: ; 0x0221DF5C
+ push {r4, lr}
+ bl OS_DisableInterrupts
+ add r4, r0, #0
+ ldr r0, _0221DF98 ; =0x02241ADC
+ ldr r0, [r0]
+ cmp r0, #7
+ bne _0221DF88
+ bl FUN_020A7488
+ cmp r0, #3
+ bne _0221DF88
+ mov r1, #4
+ ldr r0, _0221DF98 ; =0x02241ADC
+ str r1, [r0]
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ pop {r4}
+ pop {r3}
+ bx r3
+_0221DF88:
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ pop {r4}
+ pop {r3}
+ bx r3
+ nop
+_0221DF98: .word 0x02241ADC
+
+ thumb_func_start MOD13_0221DF9C
+MOD13_0221DF9C: ; 0x0221DF9C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ str r3, [sp]
+ bl OS_DisableInterrupts
+ add r7, r0, #0
+ ldr r1, _0221E088 ; =0x02241B10
+ ldr r0, [sp]
+ str r0, [r1]
+ ldr r0, _0221E08C ; =0x02241B44
+ ldr r1, _0221E090 ; =0x02241AF4
+ str r0, [r1]
+ cmp r5, #0
+ beq _0221DFD0
+ mov r2, #0
+_0221DFC0:
+ ldrb r1, [r5]
+ add r5, r5, #1
+ strb r1, [r0]
+ add r0, r0, #1
+ add r2, r2, #1
+ cmp r2, #6
+ blt _0221DFC0
+ b _0221DFDE
+_0221DFD0:
+ mov r1, #0xff
+ mov r2, #6
+ bl MI_CpuFill8
+ ldr r1, _0221E094 ; =0x020FF590
+ ldr r0, _0221E090 ; =0x02241AF4
+ str r1, [r0]
+_0221DFDE:
+ ldr r2, _0221E098 ; =0x02241BA4
+ ldr r0, _0221E09C ; =0x02241AF8
+ str r2, [r0]
+ cmp r4, #0
+ beq _0221E01A
+ cmp r6, #0
+ ble _0221E01A
+ cmp r6, #0x20
+ bge _0221E01A
+ mov r1, #0
+ cmp r6, #0
+ ble _0221E004
+_0221DFF6:
+ ldrb r0, [r4]
+ add r4, r4, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ add r1, r1, #1
+ cmp r1, r6
+ blt _0221DFF6
+_0221E004:
+ cmp r1, #0x20
+ bge _0221E02A
+ ldr r0, _0221E098 ; =0x02241BA4
+ add r2, r0, r1
+ mov r0, #0
+_0221E00E:
+ strb r0, [r2]
+ add r2, r2, #1
+ add r1, r1, #1
+ cmp r1, #0x20
+ blt _0221E00E
+ b _0221E02A
+_0221E01A:
+ ldr r0, _0221E098 ; =0x02241BA4
+ mov r1, #0xff
+ mov r2, #0x20
+ bl MI_CpuFill8
+ ldr r1, _0221E0A0 ; =0x020FF598
+ ldr r0, _0221E09C ; =0x02241AF8
+ str r1, [r0]
+_0221E02A:
+ ldr r0, _0221E0A4 ; =0x02241ADC
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _0221E05A
+ ldr r0, _0221E08C ; =0x02241B44
+ ldr r1, _0221E09C ; =0x02241AF8
+ ldr r1, [r1]
+ ldr r2, _0221E088 ; =0x02241B10
+ ldr r2, [r2]
+ bl FUN_020A7A90
+ cmp r0, #3
+ bne _0221E078
+ mov r1, #6
+ ldr r0, _0221E0A4 ; =0x02241ADC
+ str r1, [r0]
+ add r0, r7, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221E05A:
+ bl MOD13_0221E0F4
+ cmp r0, #1
+ bne _0221E078
+ mov r1, #6
+ ldr r0, _0221E0A4 ; =0x02241ADC
+ str r1, [r0]
+ add r0, r7, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+_0221E078:
+ add r0, r7, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221E088: .word 0x02241B10
+_0221E08C: .word 0x02241B44
+_0221E090: .word 0x02241AF4
+_0221E094: .word 0x020FF590
+_0221E098: .word 0x02241BA4
+_0221E09C: .word 0x02241AF8
+_0221E0A0: .word 0x020FF598
+_0221E0A4: .word 0x02241ADC
+
+ thumb_func_start MOD13_0221E0A8
+MOD13_0221E0A8: ; 0x0221E0A8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r7, r1, #0
+ mov r0, #1
+ bl FUN_020A83D0
+ bl FUN_020A846C
+ add r6, r0, #0
+ cmp r6, #0
+ ble _0221E0E2
+ mov r4, #0
+ cmp r6, #0
+ ble _0221E0E2
+_0221E0C6:
+ cmp r4, r7
+ bge _0221E0E2
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_020A8358
+ add r1, r5, #0
+ mov r2, #0xc0
+ bl MIi_CpuCopy32
+ add r4, r4, #1
+ add r5, #0xc0
+ cmp r4, r6
+ blt _0221E0C6
+_0221E0E2:
+ mov r0, #0
+ bl FUN_020A83D0
+ add r0, r6, #0
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r3}
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD13_0221E0F4
+MOD13_0221E0F4: ; 0x0221E0F4
+ push {lr}
+ sub sp, #4
+ ldr r0, _0221E16C ; =0x02241ADC
+ ldr r0, [r0]
+ cmp r0, #8
+ bhi _0221E15C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #8]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, pc
+ bx r0
+_0221E10E: ; jump table
+ .short _0221E15C - _0221E10E + 1 ; case 0
+ .short _0221E146 - _0221E10E + 1 ; case 1
+ .short _0221E15C - _0221E10E + 1 ; case 2
+ .short _0221E15C - _0221E10E + 1 ; case 3
+ .short _0221E15C - _0221E10E + 1 ; case 4
+ .short _0221E120 - _0221E10E + 1 ; case 5
+ .short _0221E15C - _0221E10E + 1 ; case 6
+ .short _0221E136 - _0221E10E + 1 ; case 7
+ .short _0221E15C - _0221E10E + 1 ; case 8
+_0221E120:
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ bl FUN_020A7A90
+ cmp r0, #3
+ beq _0221E164
+ mov r0, #0
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E136:
+ bl FUN_020A7488
+ cmp r0, #3
+ beq _0221E164
+ mov r0, #0
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E146:
+ ldr r0, _0221E170 ; =0x02241AB8
+ ldr r0, [r0]
+ ldr r1, _0221E174 ; =MOD13_0221E178
+ bl FUN_020A7BD4
+ cmp r0, #3
+ beq _0221E164
+ mov r0, #0
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E15C:
+ mov r0, #0
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E164:
+ mov r0, #1
+ add sp, #4
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221E16C: .word 0x02241ADC
+_0221E170: .word 0x02241AB8
+_0221E174: .word MOD13_0221E178
+
+ thumb_func_start MOD13_0221E178
+MOD13_0221E178: ; 0x0221E178
+ push {lr}
+ sub sp, #4
+ cmp r0, #0
+ bne _0221E182
+ b _0221E556
+_0221E182:
+ mov r1, #0
+ ldrsh r2, [r0, r1]
+ cmp r2, #9
+ bls _0221E18C
+ b _0221E548
+_0221E18C:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #8]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add r2, pc
+ bx r2
+_0221E19A: ; jump table
+ .short _0221E548 - _0221E19A + 1 ; case 0
+ .short _0221E1AE - _0221E19A + 1 ; case 1
+ .short _0221E4A0 - _0221E19A + 1 ; case 2
+ .short _0221E25E - _0221E19A + 1 ; case 3
+ .short _0221E2E6 - _0221E19A + 1 ; case 4
+ .short _0221E2A2 - _0221E19A + 1 ; case 5
+ .short _0221E3C0 - _0221E19A + 1 ; case 6
+ .short _0221E4E4 - _0221E19A + 1 ; case 7
+ .short _0221E4FE - _0221E19A + 1 ; case 8
+ .short _0221E510 - _0221E19A + 1 ; case 9
+_0221E1AE:
+ mov r2, #2
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ bne _0221E244
+ ldr r0, _0221E518 ; =0x02241ADC
+ ldr r2, [r0]
+ cmp r2, #4
+ bne _0221E1D6
+ mov r2, #3
+ str r2, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221E1CC
+ b _0221E556
+_0221E1CC:
+ mov r0, #6
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E1D6:
+ cmp r2, #6
+ bne _0221E20C
+ ldr r0, _0221E520 ; =0x02241AF4
+ ldr r0, [r0]
+ ldr r1, _0221E524 ; =0x02241AF8
+ ldr r1, [r1]
+ ldr r2, _0221E528 ; =0x02241B10
+ ldr r2, [r2]
+ bl FUN_020A7A90
+ cmp r0, #3
+ bne _0221E1F0
+ b _0221E556
+_0221E1F0:
+ mov r1, #3
+ ldr r0, _0221E518 ; =0x02241ADC
+ str r1, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221E200
+ b _0221E556
+_0221E200:
+ mov r0, #2
+ mov r1, #0
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E20C:
+ cmp r2, #8
+ beq _0221E212
+ b _0221E556
+_0221E212:
+ ldr r0, _0221E52C ; =0x02241AFC
+ ldr r0, [r0]
+ ldr r1, _0221E530 ; =0x02241AD8
+ ldr r1, [r1]
+ ldr r2, _0221E534 ; =0x02241B08
+ ldr r2, [r2]
+ bl FUN_020A75C0
+ cmp r0, #3
+ bne _0221E228
+ b _0221E556
+_0221E228:
+ mov r1, #3
+ ldr r0, _0221E518 ; =0x02241ADC
+ str r1, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221E238
+ b _0221E556
+_0221E238:
+ mov r0, #2
+ mov r1, #0
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E244:
+ mov r3, #1
+ ldr r0, _0221E518 ; =0x02241ADC
+ str r3, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r3, [r0]
+ cmp r3, #0
+ bne _0221E254
+ b _0221E556
+_0221E254:
+ add r0, r2, #0
+ blx r3
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E25E:
+ mov r2, #2
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ bne _0221E288
+ ldr r0, _0221E518 ; =0x02241ADC
+ ldr r2, [r0]
+ cmp r2, #6
+ beq _0221E270
+ b _0221E556
+_0221E270:
+ mov r2, #5
+ str r2, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221E27E
+ b _0221E556
+_0221E27E:
+ mov r0, #8
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E288:
+ mov r2, #3
+ ldr r0, _0221E518 ; =0x02241ADC
+ str r2, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221E298
+ b _0221E556
+_0221E298:
+ mov r0, #9
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E2A2:
+ mov r2, #2
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ bne _0221E2CC
+ ldr r0, _0221E518 ; =0x02241ADC
+ ldr r2, [r0]
+ cmp r2, #8
+ beq _0221E2B4
+ b _0221E556
+_0221E2B4:
+ mov r2, #7
+ str r2, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221E2C2
+ b _0221E556
+_0221E2C2:
+ mov r0, #0xc
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E2CC:
+ mov r2, #3
+ ldr r0, _0221E518 ; =0x02241ADC
+ str r2, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221E2DC
+ b _0221E556
+_0221E2DC:
+ mov r0, #0xd
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E2E6:
+ mov r2, #2
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ bne _0221E3A6
+ ldr r0, _0221E518 ; =0x02241ADC
+ ldr r2, [r0]
+ cmp r2, #4
+ bne _0221E30E
+ mov r2, #3
+ str r2, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221E304
+ b _0221E556
+_0221E304:
+ mov r0, #0xa
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E30E:
+ cmp r2, #6
+ bne _0221E344
+ ldr r0, _0221E520 ; =0x02241AF4
+ ldr r0, [r0]
+ ldr r1, _0221E524 ; =0x02241AF8
+ ldr r1, [r1]
+ ldr r2, _0221E528 ; =0x02241B10
+ ldr r2, [r2]
+ bl FUN_020A7A90
+ cmp r0, #3
+ bne _0221E328
+ b _0221E556
+_0221E328:
+ mov r1, #3
+ ldr r0, _0221E518 ; =0x02241ADC
+ str r1, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221E338
+ b _0221E556
+_0221E338:
+ mov r0, #2
+ mov r1, #0
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E344:
+ cmp r2, #2
+ bne _0221E36E
+ bl FUN_020A7AC8
+ cmp r0, #3
+ bne _0221E352
+ b _0221E556
+_0221E352:
+ mov r1, #3
+ ldr r0, _0221E518 ; =0x02241ADC
+ str r1, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221E362
+ b _0221E556
+_0221E362:
+ mov r0, #2
+ mov r1, #0
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E36E:
+ cmp r2, #8
+ beq _0221E374
+ b _0221E556
+_0221E374:
+ ldr r0, _0221E52C ; =0x02241AFC
+ ldr r0, [r0]
+ ldr r1, _0221E530 ; =0x02241AD8
+ ldr r1, [r1]
+ ldr r2, _0221E534 ; =0x02241B08
+ ldr r2, [r2]
+ bl FUN_020A75C0
+ cmp r0, #3
+ bne _0221E38A
+ b _0221E556
+_0221E38A:
+ mov r1, #3
+ ldr r0, _0221E518 ; =0x02241ADC
+ str r1, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221E39A
+ b _0221E556
+_0221E39A:
+ mov r0, #2
+ mov r1, #0
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E3A6:
+ mov r2, #3
+ ldr r0, _0221E518 ; =0x02241ADC
+ str r2, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221E3B6
+ b _0221E556
+_0221E3B6:
+ mov r0, #0xb
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E3C0:
+ mov r2, #2
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ bne _0221E488
+ ldr r0, _0221E518 ; =0x02241ADC
+ ldr r2, [r0]
+ cmp r2, #4
+ bne _0221E3E8
+ mov r2, #3
+ str r2, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221E3DE
+ b _0221E556
+_0221E3DE:
+ mov r0, #0xe
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E3E8:
+ cmp r2, #6
+ bne _0221E41E
+ ldr r0, _0221E520 ; =0x02241AF4
+ ldr r0, [r0]
+ ldr r1, _0221E524 ; =0x02241AF8
+ ldr r1, [r1]
+ ldr r2, _0221E528 ; =0x02241B10
+ ldr r2, [r2]
+ bl FUN_020A7A90
+ cmp r0, #3
+ bne _0221E402
+ b _0221E556
+_0221E402:
+ mov r1, #3
+ ldr r0, _0221E518 ; =0x02241ADC
+ str r1, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221E412
+ b _0221E556
+_0221E412:
+ mov r0, #2
+ mov r1, #0
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E41E:
+ cmp r2, #2
+ bne _0221E448
+ bl FUN_020A7AC8
+ cmp r0, #3
+ bne _0221E42C
+ b _0221E556
+_0221E42C:
+ mov r1, #3
+ ldr r0, _0221E518 ; =0x02241ADC
+ str r1, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ bne _0221E43C
+ b _0221E556
+_0221E43C:
+ mov r0, #2
+ mov r1, #0
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E448:
+ cmp r2, #8
+ bne _0221E47A
+ ldr r0, _0221E52C ; =0x02241AFC
+ ldr r0, [r0]
+ ldr r1, _0221E530 ; =0x02241AD8
+ ldr r1, [r1]
+ ldr r2, _0221E534 ; =0x02241B08
+ ldr r2, [r2]
+ bl FUN_020A75C0
+ cmp r0, #3
+ beq _0221E556
+ mov r1, #3
+ ldr r0, _0221E518 ; =0x02241ADC
+ str r1, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _0221E556
+ mov r0, #2
+ mov r1, #0
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E47A:
+ cmp r2, #7
+ bne _0221E556
+ mov r1, #3
+ str r1, [r0]
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E488:
+ mov r2, #3
+ ldr r0, _0221E518 ; =0x02241ADC
+ str r2, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _0221E556
+ mov r0, #0xf
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E4A0:
+ mov r2, #2
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ bne _0221E4CC
+ ldr r0, _0221E518 ; =0x02241ADC
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _0221E556
+ bl FUN_020A7E0C
+ mov r1, #0
+ ldr r0, _0221E518 ; =0x02241ADC
+ str r1, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _0221E556
+ mov r0, #0x14
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E4CC:
+ mov r3, #3
+ ldr r0, _0221E518 ; =0x02241ADC
+ str r3, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _0221E556
+ add r0, r2, #0
+ blx r3
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E4E4:
+ ldr r0, _0221E518 ; =0x02241ADC
+ ldr r0, [r0]
+ cmp r0, #5
+ bne _0221E556
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _0221E556
+ mov r0, #5
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E4FE:
+ ldr r0, _0221E51C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _0221E556
+ mov r0, #4
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E510:
+ ldr r0, _0221E518 ; =0x02241ADC
+ str r1, [r0]
+ ldr r0, _0221E51C ; =0x02241B30
+ b _0221E538
+ .align 2, 0
+_0221E518: .word 0x02241ADC
+_0221E51C: .word 0x02241B30
+_0221E520: .word 0x02241AF4
+_0221E524: .word 0x02241AF8
+_0221E528: .word 0x02241B10
+_0221E52C: .word 0x02241AFC
+_0221E530: .word 0x02241AD8
+_0221E534: .word 0x02241B08
+_0221E538:
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _0221E556
+ mov r0, #3
+ blx r2
+ add sp, #4
+ pop {r3}
+ bx r3
+_0221E548:
+ ldr r0, _0221E55C ; =0x02241B30
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _0221E556
+ mov r0, #1
+ mov r1, #0
+ blx r2
+_0221E556:
+ add sp, #4
+ pop {r3}
+ bx r3
+ .align 2, 0
+_0221E55C: .word 0x02241B30
diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s
new file mode 100644
index 00000000..42e1c73b
--- /dev/null
+++ b/arm9/modules/14/asm/module_14.s
@@ -0,0 +1,30403 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD14_021D74E0
+MOD14_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ mov r2, #1
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #9
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ mov r2, #0xf
+ mov r0, #3
+ mov r1, #0xa
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ mov r1, #0x87
+ add r0, r5, #0
+ lsl r1, r1, #2
+ mov r2, #9
+ bl FUN_02006268
+ add r4, r0, #0
+ beq _021D7544
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD14_021DB220
+ mov r0, #0x45
+ lsl r0, r0, #2
+ add r0, r4, r0
+ add r1, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DC76C
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD14_021D762C
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r1, _021D7548 ; =MOD14_021D7680
+ add r0, r4, #0
+ bl MOD14_021D7610
+_021D7544:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7548: .word MOD14_021D7680
+
+ thumb_func_start MOD14_021D754C
+MOD14_021D754C: ; 0x021D754C
+ push {r4, lr}
+ bl FUN_02006278
+ mov r1, #0x6b
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ cmp r2, #0
+ beq _021D7568
+ add r1, #8
+ add r1, r4, r1
+ blx r2
+ mov r0, #0
+ pop {r4, pc}
+_021D7568:
+ sub r0, r1, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D75AA
+ ldr r0, _021D75B4 ; =0x021C48B8
+ ldr r2, [r0, #0x48]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ tst r0, r2
+ beq _021D759E
+ sub r1, #0x98
+ ldr r0, [r4, r1]
+ bl MOD14_021DCBC0
+ cmp r0, #1
+ bne _021D759E
+ add r0, r4, #0
+ bl MOD14_021DC394
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x2b
+ bl MOD14_021DCB2C
+ mov r0, #0
+ pop {r4, pc}
+_021D759E:
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ blx r1
+ pop {r4, pc}
+_021D75AA:
+ bl ErrorHandling
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_021D75B4: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D75B8
+MOD14_021D75B8: ; 0x021D75B8
+ push {r4, lr}
+ bl FUN_02006278
+ mov r1, #0x49
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, #0x95
+ bl FUN_0206BAE4
+ cmp r0, #0
+ bne _021D75DE
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02029EF8
+ bl FUN_02029F08
+_021D75DE:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCA38
+ add r0, r4, #0
+ bl MOD14_021DB398
+ mov r0, #9
+ bl FUN_020168D0
+ mov r0, #0xa
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021D7600
+MOD14_021D7600: ; 0x021D7600
+ mov r2, #0x6a
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ mov r1, #0
+ add r2, #8
+ str r1, [r0, r2]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021D7610
+MOD14_021D7610: ; 0x021D7610
+ mov r2, #0x6b
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ mov r1, #0
+ add r2, #8
+ str r1, [r0, r2]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021D7620
+MOD14_021D7620: ; 0x021D7620
+ mov r1, #0x6b
+ mov r2, #0
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021D762C
+MOD14_021D762C: ; 0x021D762C
+ push {r3, lr}
+ bl MOD14_021DC3CC
+ cmp r0, #4
+ bhi _021D764C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7642: ; jump table
+ .short _021D764C - _021D7642 - 2 ; case 0
+ .short _021D7650 - _021D7642 - 2 ; case 1
+ .short _021D7654 - _021D7642 - 2 ; case 2
+ .short _021D765C - _021D7642 - 2 ; case 3
+ .short _021D7658 - _021D7642 - 2 ; case 4
+_021D764C:
+ ldr r0, _021D7660 ; =MOD14_021D7750
+ pop {r3, pc}
+_021D7650:
+ ldr r0, _021D7664 ; =MOD14_021D79D0
+ pop {r3, pc}
+_021D7654:
+ ldr r0, _021D7668 ; =MOD14_021D7D20
+ pop {r3, pc}
+_021D7658:
+ ldr r0, _021D766C ; =MOD14_021D7F0C
+ pop {r3, pc}
+_021D765C:
+ ldr r0, _021D7670 ; =MOD14_021D8118
+ pop {r3, pc}
+ .align 2, 0
+_021D7660: .word MOD14_021D7750
+_021D7664: .word MOD14_021D79D0
+_021D7668: .word MOD14_021D7D20
+_021D766C: .word MOD14_021D7F0C
+_021D7670: .word MOD14_021D8118
+
+ thumb_func_start MOD14_021D7674
+MOD14_021D7674: ; 0x021D7674
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r2, #1
+ str r2, [r0, #8]
+ bx lr
+
+ thumb_func_start MOD14_021D7680
+MOD14_021D7680: ; 0x021D7680
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D7696
+ cmp r0, #1
+ beq _021D76AA
+ cmp r0, #2
+ beq _021D76CE
+ pop {r3, r4, r5, pc}
+_021D7696:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D76AA:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D76E4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D76CE:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D76E4
+ add r0, r5, #0
+ bl MOD14_021D7620
+_021D76E4:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021D76E8
+MOD14_021D76E8: ; 0x021D76E8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D76FE
+ cmp r0, #1
+ beq _021D7712
+ cmp r0, #2
+ beq _021D7736
+ pop {r3, r4, r5, pc}
+_021D76FE:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D7712:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D774C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #2
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D7736:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #2
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D774C
+ add r0, r5, #0
+ bl MOD14_021D7620
+_021D774C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021D7750
+MOD14_021D7750: ; 0x021D7750
+ push {r4, lr}
+ mov r1, #0x1b
+ add r4, r0, #0
+ lsl r1, r1, #4
+ ldr r2, [r4, r1]
+ cmp r2, #0
+ beq _021D776C
+ cmp r2, #1
+ bne _021D7764
+ b _021D793E
+_021D7764:
+ cmp r2, #2
+ bne _021D776A
+ b _021D795C
+_021D776A:
+ b _021D7970
+_021D776C:
+ ldr r1, _021D7974 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #1
+ tst r1, r2
+ beq _021D779C
+ bl MOD14_021DC408
+ cmp r0, #0
+ beq _021D779C
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021D7792
+ ldr r1, _021D7978 ; =MOD14_021D8804
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7970
+_021D7792:
+ ldr r1, _021D797C ; =MOD14_021D8A68
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7970
+_021D779C:
+ ldr r0, _021D7974 ; =0x021C48B8
+ mov r2, #2
+ ldr r1, [r0, #0x48]
+ tst r1, r2
+ beq _021D77B0
+ ldr r1, _021D7980 ; =MOD14_021D86BC
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7970
+_021D77B0:
+ ldr r0, [r0, #0x44]
+ lsl r1, r2, #8
+ tst r1, r0
+ beq _021D77C8
+ add r0, r4, #0
+ bl MOD14_021DC2A4
+ ldr r1, _021D7984 ; =MOD14_021DABE8
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7970
+_021D77C8:
+ add r2, #0xfe
+ add r1, r0, #0
+ tst r1, r2
+ beq _021D77E0
+ add r0, r4, #0
+ bl MOD14_021DC278
+ ldr r1, _021D7984 ; =MOD14_021DABE8
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7970
+_021D77E0:
+ add r1, r4, #0
+ bl MOD14_021DB5B4
+ cmp r0, #0
+ beq _021D7818
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D780C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+_021D780C:
+ mov r0, #0x1b
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _021D7970
+_021D7818:
+ add r0, r4, #0
+ bl MOD14_021DB9C8
+ cmp r0, #0
+ beq _021D783A
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021D7862
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D783C
+ cmp r0, #1
+ beq _021D7846
+_021D783A:
+ b _021D792E
+_021D783C:
+ ldr r1, _021D7988 ; =MOD14_021DAC80
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D792E
+_021D7846:
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021D785A
+ ldr r1, _021D798C ; =MOD14_021DAF78
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D792E
+_021D785A:
+ ldr r0, _021D7990 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D792E
+_021D7862:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D7876
+ cmp r0, #1
+ beq _021D78C4
+ cmp r0, #2
+ beq _021D7912
+ b _021D792E
+_021D7876:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #0
+ bne _021D78BC
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D78BC
+ ldr r0, _021D7994 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #1
+ b _021D7930
+_021D78BC:
+ ldr r0, _021D7990 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D792E
+_021D78C4:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #1
+ bne _021D790A
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D790A
+ ldr r0, _021D7994 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #1
+ b _021D7930
+_021D790A:
+ ldr r0, _021D7990 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D792E
+_021D7912:
+ ldr r0, _021D7994 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC180
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x32
+ bl MOD14_021DCB2C
+ mov r0, #1
+ b _021D7930
+_021D792E:
+ mov r0, #0
+_021D7930:
+ cmp r0, #0
+ beq _021D7970
+ mov r0, #0x1b
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7970
+_021D793E:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D7970
+ add r0, r4, #0
+ bl MOD14_021D762C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD14_021D7600
+ b _021D7970
+_021D795C:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D7970
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_021D7970:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D7974: .word 0x021C48B8
+_021D7978: .word MOD14_021D8804
+_021D797C: .word MOD14_021D8A68
+_021D7980: .word MOD14_021D86BC
+_021D7984: .word MOD14_021DABE8
+_021D7988: .word MOD14_021DAC80
+_021D798C: .word MOD14_021DAF78
+_021D7990: .word 0x000005F3
+_021D7994: .word 0x000005DD
+
+ thumb_func_start MOD14_021D7998
+MOD14_021D7998: ; 0x021D7998
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD14_021DC430
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ cmp r0, #0
+ beq _021D79B6
+ mov r0, #0x1e
+ str r0, [r4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D79B6:
+ add r0, r5, #0
+ mov r1, #0xa1
+ mov r2, #0
+ bl MOD14_021DC58C
+ cmp r0, #0
+ beq _021D79CC
+ mov r0, #0x1d
+ str r0, [r4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D79CC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021D79D0
+MOD14_021D79D0: ; 0x021D79D0
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r1, #0x1b
+ add r4, r0, #0
+ lsl r1, r1, #4
+ ldr r2, [r4, r1]
+ cmp r2, #6
+ bhi _021D7A20
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021D79EC: ; jump table
+ .short _021D79FA - _021D79EC - 2 ; case 0
+ .short _021D7BD4 - _021D79EC - 2 ; case 1
+ .short _021D7BEE - _021D79EC - 2 ; case 2
+ .short _021D7C58 - _021D79EC - 2 ; case 3
+ .short _021D7C98 - _021D79EC - 2 ; case 4
+ .short _021D7CB6 - _021D79EC - 2 ; case 5
+ .short _021D7CE4 - _021D79EC - 2 ; case 6
+_021D79FA:
+ ldr r1, _021D7D00 ; =0x021C48B8
+ mov r2, #1
+ ldr r1, [r1, #0x48]
+ tst r2, r1
+ beq _021D7A40
+ bl MOD14_021DC3E8
+ cmp r0, #6
+ bne _021D7A16
+ mov r0, #0x1b
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7A16:
+ add r0, r4, #0
+ bl MOD14_021DC408
+ cmp r0, #0
+ bne _021D7A22
+_021D7A20:
+ b _021D7CF8
+_021D7A22:
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021D7A36
+ ldr r1, _021D7D04 ; =MOD14_021D8804
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7CF8
+_021D7A36:
+ ldr r1, _021D7D08 ; =MOD14_021D8A68
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7CF8
+_021D7A40:
+ mov r2, #2
+ tst r2, r1
+ bne _021D7A6A
+ mov r2, #0x10
+ tst r1, r2
+ beq _021D7A56
+ bl MOD14_021DC3E8
+ mov r1, #1
+ tst r0, r1
+ bne _021D7A6A
+_021D7A56:
+ ldr r0, _021D7D00 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x10
+ tst r0, r1
+ beq _021D7A74
+ add r0, r4, #0
+ bl MOD14_021DC3E8
+ cmp r0, #6
+ bne _021D7A74
+_021D7A6A:
+ mov r0, #0x1b
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7A74:
+ ldr r0, _021D7D00 ; =0x021C48B8
+ add r1, r4, #0
+ ldr r0, [r0, #0x44]
+ bl MOD14_021DB5B4
+ cmp r0, #0
+ beq _021D7AAE
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D7AA4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+_021D7AA4:
+ mov r0, #0x1b
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7AAE:
+ add r0, r4, #0
+ bl MOD14_021DB9C8
+ cmp r0, #0
+ beq _021D7AD0
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021D7AF8
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D7AD2
+ cmp r0, #1
+ beq _021D7ADC
+_021D7AD0:
+ b _021D7BC4
+_021D7AD2:
+ ldr r1, _021D7D0C ; =MOD14_021DAC80
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7BC4
+_021D7ADC:
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021D7AF0
+ ldr r1, _021D7D10 ; =MOD14_021DAF78
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7BC4
+_021D7AF0:
+ ldr r0, _021D7D14 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D7BC4
+_021D7AF8:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D7B0C
+ cmp r0, #1
+ beq _021D7B5A
+ cmp r0, #2
+ beq _021D7BA8
+ b _021D7BC4
+_021D7B0C:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #0
+ bne _021D7B52
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D7B52
+ ldr r0, _021D7D18 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #1
+ b _021D7BC6
+_021D7B52:
+ ldr r0, _021D7D14 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D7BC4
+_021D7B5A:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #1
+ bne _021D7BA0
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D7BA0
+ ldr r0, _021D7D18 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #1
+ b _021D7BC6
+_021D7BA0:
+ ldr r0, _021D7D14 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D7BC4
+_021D7BA8:
+ ldr r0, _021D7D18 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC180
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x32
+ bl MOD14_021DCB2C
+ mov r0, #1
+ b _021D7BC6
+_021D7BC4:
+ mov r0, #0
+_021D7BC6:
+ cmp r0, #0
+ beq _021D7BE2
+ mov r0, #0x1b
+ mov r1, #6
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7BD4:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl MOD14_021DCB98
+ cmp r0, #0
+ bne _021D7BE4
+_021D7BE2:
+ b _021D7CF8
+_021D7BE4:
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7BEE:
+ bl MOD14_021DC3C4
+ cmp r0, #0
+ bne _021D7C08
+ ldr r1, _021D7D1C ; =MOD14_021D86BC
+ add r0, r4, #0
+ bl MOD14_021D7610
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7C08:
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ beq _021D7C42
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD14_021D7998
+ cmp r0, #0
+ beq _021D7C42
+ ldr r0, _021D7D14 ; =0x000005F3
+ bl FUN_020054C8
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #0x1b
+ mov r1, #5
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7C42:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x24
+ bl MOD14_021DCB2C
+ mov r0, #0x1b
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7C58:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #0x24
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D7CF8
+ add r0, r4, #0
+ bl MOD14_021DB910
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D7C8E
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+_021D7C8E:
+ mov r0, #0x1b
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7C98:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D7CF8
+ add r0, r4, #0
+ bl MOD14_021D762C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD14_021D7600
+ b _021D7CF8
+_021D7CB6:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D7CF8
+ ldr r0, _021D7D00 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D7CF8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7CF8
+_021D7CE4:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D7CF8
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_021D7CF8:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D7D00: .word 0x021C48B8
+_021D7D04: .word MOD14_021D8804
+_021D7D08: .word MOD14_021D8A68
+_021D7D0C: .word MOD14_021DAC80
+_021D7D10: .word MOD14_021DAF78
+_021D7D14: .word 0x000005F3
+_021D7D18: .word 0x000005DD
+_021D7D1C: .word MOD14_021D86BC
+
+ thumb_func_start MOD14_021D7D20
+MOD14_021D7D20: ; 0x021D7D20
+ push {r3, r4, r5, lr}
+ mov r3, #0x1b
+ add r4, r0, #0
+ lsl r3, r3, #4
+ ldr r1, [r4, r3]
+ cmp r1, #0
+ beq _021D7D36
+ cmp r1, #1
+ bne _021D7D34
+ b _021D7ECC
+_021D7D34:
+ b _021D7EE8
+_021D7D36:
+ ldr r5, _021D7EEC ; =0x021C48B8
+ add r2, r3, #0
+ ldr r1, [r5, #0x44]
+ add r2, #0x70
+ tst r2, r1
+ beq _021D7D50
+ bl MOD14_021DC2A4
+ ldr r1, _021D7EF0 ; =MOD14_021DABE8
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7EE8
+_021D7D50:
+ sub r3, #0xa0
+ add r2, r1, #0
+ tst r2, r3
+ beq _021D7D66
+ bl MOD14_021DC278
+ ldr r1, _021D7EF0 ; =MOD14_021DABE8
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7EE8
+_021D7D66:
+ ldr r3, [r5, #0x48]
+ mov r2, #1
+ tst r2, r3
+ beq _021D7D76
+ ldr r1, _021D7EF4 ; =MOD14_021D8D70
+ bl MOD14_021D7610
+ b _021D7EE8
+_021D7D76:
+ mov r2, #2
+ tst r2, r3
+ beq _021D7D84
+ ldr r1, _021D7EF8 ; =MOD14_021D86BC
+ bl MOD14_021D7610
+ b _021D7EE8
+_021D7D84:
+ add r0, r1, #0
+ add r1, r4, #0
+ bl MOD14_021DB5B4
+ cmp r0, #0
+ beq _021D7DBC
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D7DB2
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+_021D7DB2:
+ mov r0, #0x1b
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D7EE8
+_021D7DBC:
+ add r0, r4, #0
+ bl MOD14_021DB9C8
+ cmp r0, #0
+ beq _021D7DDE
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021D7E06
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D7DE0
+ cmp r0, #1
+ beq _021D7DEA
+_021D7DDE:
+ b _021D7EE8
+_021D7DE0:
+ ldr r1, _021D7EFC ; =MOD14_021DAC80
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7EE8
+_021D7DEA:
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021D7DFE
+ ldr r1, _021D7F00 ; =MOD14_021DAF78
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D7EE8
+_021D7DFE:
+ ldr r0, _021D7F04 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D7EE8
+_021D7E06:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D7E1A
+ cmp r0, #1
+ beq _021D7E66
+ cmp r0, #2
+ beq _021D7EB2
+ b _021D7EE8
+_021D7E1A:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #0
+ bne _021D7E5E
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D7E5E
+ ldr r0, _021D7F08 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ b _021D7EE8
+_021D7E5E:
+ ldr r0, _021D7F04 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D7EE8
+_021D7E66:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #1
+ bne _021D7EAA
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D7EAA
+ ldr r0, _021D7F08 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ b _021D7EE8
+_021D7EAA:
+ ldr r0, _021D7F04 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D7EE8
+_021D7EB2:
+ ldr r0, _021D7F08 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC180
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x32
+ bl MOD14_021DCB2C
+ b _021D7EE8
+_021D7ECC:
+ sub r3, #0x9c
+ ldr r0, [r4, r3]
+ mov r1, #5
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D7EE8
+ add r0, r4, #0
+ bl MOD14_021D762C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD14_021D7600
+_021D7EE8:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7EEC: .word 0x021C48B8
+_021D7EF0: .word MOD14_021DABE8
+_021D7EF4: .word MOD14_021D8D70
+_021D7EF8: .word MOD14_021D86BC
+_021D7EFC: .word MOD14_021DAC80
+_021D7F00: .word MOD14_021DAF78
+_021D7F04: .word 0x000005F3
+_021D7F08: .word 0x000005DD
+
+ thumb_func_start MOD14_021D7F0C
+MOD14_021D7F0C: ; 0x021D7F0C
+ push {r3, r4, r5, lr}
+ mov r1, #0x1b
+ add r4, r0, #0
+ lsl r1, r1, #4
+ ldr r2, [r4, r1]
+ cmp r2, #0
+ beq _021D7F28
+ cmp r2, #1
+ bne _021D7F20
+ b _021D80BE
+_021D7F20:
+ cmp r2, #2
+ bne _021D7F26
+ b _021D80D6
+_021D7F26:
+ b _021D80F2
+_021D7F28:
+ ldr r3, _021D80F8 ; =0x021C48B8
+ mov r1, #1
+ ldr r5, [r3, #0x48]
+ tst r1, r5
+ beq _021D7F3A
+ ldr r1, _021D80FC ; =MOD14_021D854C
+ bl MOD14_021D7610
+ b _021D80F2
+_021D7F3A:
+ mov r2, #2
+ add r1, r5, #0
+ tst r1, r2
+ beq _021D7F4A
+ ldr r1, _021D8100 ; =MOD14_021D86BC
+ bl MOD14_021D7610
+ b _021D80F2
+_021D7F4A:
+ ldr r3, [r3, #0x44]
+ lsl r1, r2, #8
+ tst r1, r3
+ beq _021D7F60
+ bl MOD14_021DC2A4
+ ldr r1, _021D8104 ; =MOD14_021DABE8
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D80F2
+_021D7F60:
+ add r2, #0xfe
+ add r1, r3, #0
+ tst r1, r2
+ beq _021D7F76
+ bl MOD14_021DC278
+ ldr r1, _021D8104 ; =MOD14_021DABE8
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D80F2
+_021D7F76:
+ add r0, r3, #0
+ add r1, r4, #0
+ bl MOD14_021DB5B4
+ cmp r0, #0
+ beq _021D7FAE
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D7FA4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+_021D7FA4:
+ mov r0, #0x1b
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D80F2
+_021D7FAE:
+ add r0, r4, #0
+ bl MOD14_021DB9C8
+ cmp r0, #0
+ beq _021D7FD0
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021D7FF8
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D7FD2
+ cmp r0, #1
+ beq _021D7FDC
+_021D7FD0:
+ b _021D80F2
+_021D7FD2:
+ ldr r1, _021D8108 ; =MOD14_021DAC80
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D80F2
+_021D7FDC:
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021D7FF0
+ ldr r1, _021D810C ; =MOD14_021DAF78
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D80F2
+_021D7FF0:
+ ldr r0, _021D8110 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D80F2
+_021D7FF8:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D800C
+ cmp r0, #1
+ beq _021D8058
+ cmp r0, #2
+ beq _021D80A4
+ b _021D80F2
+_021D800C:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #0
+ bne _021D8050
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D8050
+ ldr r0, _021D8114 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ b _021D80F2
+_021D8050:
+ ldr r0, _021D8110 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D80F2
+_021D8058:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #1
+ bne _021D809C
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D809C
+ ldr r0, _021D8114 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ b _021D80F2
+_021D809C:
+ ldr r0, _021D8110 ; =0x000005F3
+ bl FUN_020054C8
+ b _021D80F2
+_021D80A4:
+ ldr r0, _021D8114 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC180
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x32
+ bl MOD14_021DCB2C
+ b _021D80F2
+_021D80BE:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #4
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D80F2
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D80F2
+_021D80D6:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D80F2
+ add r0, r4, #0
+ bl MOD14_021D762C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD14_021D7600
+_021D80F2:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D80F8: .word 0x021C48B8
+_021D80FC: .word MOD14_021D854C
+_021D8100: .word MOD14_021D86BC
+_021D8104: .word MOD14_021DABE8
+_021D8108: .word MOD14_021DAC80
+_021D810C: .word MOD14_021DAF78
+_021D8110: .word 0x000005F3
+_021D8114: .word 0x000005DD
+
+ thumb_func_start MOD14_021D8118
+MOD14_021D8118: ; 0x021D8118
+ push {r3, r4, r5, lr}
+ mov r1, #0x1b
+ add r4, r0, #0
+ lsl r1, r1, #4
+ ldr r2, [r4, r1]
+ cmp r2, #5
+ bhi _021D8220
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021D8132: ; jump table
+ .short _021D813E - _021D8132 - 2 ; case 0
+ .short _021D830E - _021D8132 - 2 ; case 1
+ .short _021D8332 - _021D8132 - 2 ; case 2
+ .short _021D8372 - _021D8132 - 2 ; case 3
+ .short _021D838A - _021D8132 - 2 ; case 4
+ .short _021D83A8 - _021D8132 - 2 ; case 5
+_021D813E:
+ ldr r3, _021D83C8 ; =0x021C48B8
+ mov r1, #1
+ ldr r5, [r3, #0x48]
+ tst r1, r5
+ beq _021D818A
+ bl MOD14_021DC3C4
+ cmp r0, #1
+ beq _021D8166
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x22
+ bl MOD14_021DCB2C
+ mov r0, #0x1b
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D83C4
+_021D8166:
+ ldr r0, _021D83CC ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x12
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #0x1b
+ mov r1, #5
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D83C4
+_021D818A:
+ mov r2, #2
+ add r1, r5, #0
+ tst r1, r2
+ beq _021D819A
+ ldr r1, _021D83D0 ; =MOD14_021D86BC
+ bl MOD14_021D7610
+ b _021D83C4
+_021D819A:
+ ldr r3, [r3, #0x44]
+ lsl r1, r2, #8
+ tst r1, r3
+ beq _021D81B0
+ bl MOD14_021DC2A4
+ ldr r1, _021D83D4 ; =MOD14_021DABE8
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D83C4
+_021D81B0:
+ add r2, #0xfe
+ add r1, r3, #0
+ tst r1, r2
+ beq _021D81C6
+ bl MOD14_021DC278
+ ldr r1, _021D83D4 ; =MOD14_021DABE8
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D83C4
+_021D81C6:
+ add r0, r3, #0
+ add r1, r4, #0
+ bl MOD14_021DB5B4
+ cmp r0, #0
+ beq _021D81FE
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D81F4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+_021D81F4:
+ mov r0, #0x1b
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D83C4
+_021D81FE:
+ add r0, r4, #0
+ bl MOD14_021DB9C8
+ cmp r0, #0
+ beq _021D8220
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021D8248
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D8222
+ cmp r0, #1
+ beq _021D822C
+_021D8220:
+ b _021D83C4
+_021D8222:
+ ldr r1, _021D83D8 ; =MOD14_021DAC80
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D83C4
+_021D822C:
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021D8240
+ ldr r1, _021D83DC ; =MOD14_021DAF78
+ add r0, r4, #0
+ bl MOD14_021D7610
+ b _021D83C4
+_021D8240:
+ ldr r0, _021D83CC ; =0x000005F3
+ bl FUN_020054C8
+ b _021D83C4
+_021D8248:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D825C
+ cmp r0, #1
+ beq _021D82A8
+ cmp r0, #2
+ beq _021D82F4
+ b _021D83C4
+_021D825C:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #0
+ bne _021D82A0
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D82A0
+ ldr r0, _021D83E0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ b _021D83C4
+_021D82A0:
+ ldr r0, _021D83CC ; =0x000005F3
+ bl FUN_020054C8
+ b _021D83C4
+_021D82A8:
+ add r0, r4, #0
+ bl MOD14_021DC558
+ cmp r0, #1
+ bne _021D82EC
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #1
+ bne _021D82EC
+ ldr r0, _021D83E0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ b _021D83C4
+_021D82EC:
+ ldr r0, _021D83CC ; =0x000005F3
+ bl FUN_020054C8
+ b _021D83C4
+_021D82F4:
+ ldr r0, _021D83E0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021DC180
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x32
+ bl MOD14_021DCB2C
+ b _021D83C4
+_021D830E:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #0x22
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D83C4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x23
+ bl MOD14_021DCB2C
+ mov r0, #0x1b
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D83C4
+_021D8332:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #0x23
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D83C4
+ add r0, r4, #0
+ bl MOD14_021DB8D0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D8368
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+_021D8368:
+ mov r0, #0x1b
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D83C4
+_021D8372:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #4
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D83C4
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D83C4
+_021D838A:
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D83C4
+ add r0, r4, #0
+ bl MOD14_021D762C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD14_021D7600
+ b _021D83C4
+_021D83A8:
+ ldr r0, _021D83C8 ; =0x021C48B8
+ ldr r2, [r0, #0x48]
+ mov r0, #3
+ tst r0, r2
+ beq _021D83C4
+ sub r1, #0x9c
+ ldr r0, [r4, r1]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x1b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_021D83C4:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D83C8: .word 0x021C48B8
+_021D83CC: .word 0x000005F3
+_021D83D0: .word MOD14_021D86BC
+_021D83D4: .word MOD14_021DABE8
+_021D83D8: .word MOD14_021DAC80
+_021D83DC: .word MOD14_021DAF78
+_021D83E0: .word 0x000005DD
+
+ thumb_func_start MOD14_021D83E4
+MOD14_021D83E4: ; 0x021D83E4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ bne _021D8428
+ mov r0, #0x4b
+ ldr r1, [r4, #0x14]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldrb r0, [r4, #0x1f]
+ cmp r0, #0
+ beq _021D8402
+ mov r0, #0
+ b _021D8404
+_021D8402:
+ mov r0, #2
+_021D8404:
+ ldr r1, _021D8500 ; =0x0000013D
+ mov r2, #1
+ strb r0, [r4, r1]
+ add r0, r1, #2
+ strb r2, [r4, r0]
+ mov r2, #0
+ add r0, r1, #3
+ strb r2, [r4, r0]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ add r0, r1, #7
+ strh r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x67
+ ldr r0, [r4, r0]
+ sub r1, #0xd
+ str r0, [r4, r1]
+ b _021D84AA
+_021D8428:
+ add r0, r4, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021D8476
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0206B330
+ add r1, r0, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r2, #0
+ bl FUN_0206B5E4
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ mov r2, #2
+ add r0, #0x11
+ strb r2, [r4, r0]
+ mov r0, #0x1e
+ add r1, #0x13
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD14_021DC3E0
+ mov r1, #5
+ lsl r1, r1, #6
+ strb r0, [r4, r1]
+ mov r2, #0
+ sub r0, r1, #2
+ strb r2, [r4, r0]
+ add r0, r1, #4
+ strh r2, [r4, r0]
+ b _021D84AA
+_021D8476:
+ mov r1, #0x49
+ lsl r1, r1, #2
+ add r0, r1, #0
+ ldr r2, [r4, r1]
+ add r0, #8
+ str r2, [r4, r0]
+ add r0, r1, #0
+ mov r2, #1
+ add r0, #0x19
+ strb r2, [r4, r0]
+ ldr r0, [r4, r1]
+ bl FUN_0206B9AC
+ ldr r1, _021D8504 ; =0x0000013F
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD14_021DC3E8
+ mov r1, #5
+ lsl r1, r1, #6
+ strb r0, [r4, r1]
+ mov r2, #0
+ sub r0, r1, #2
+ strb r2, [r4, r0]
+ add r0, r1, #4
+ strh r2, [r4, r0]
+_021D84AA:
+ mov r0, #0x55
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r0, #0x38
+ ldr r0, [r4, r0]
+ bl FUN_0206BB28
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x2c
+ ldr r0, [r4, r1]
+ bl FUN_02079C70
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x3c
+ ldr r0, [r4, r1]
+ bl FUN_0202A918
+ mov r1, #0x53
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x20
+ add r0, r4, r1
+ ldr r1, _021D8508 ; =0x021E626C
+ bl FUN_0207B000
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_020238F4
+ add r1, r0, #0
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_0207C2A4
+ pop {r4, pc}
+ nop
+_021D8500: .word 0x0000013D
+_021D8504: .word 0x0000013F
+_021D8508: .word 0x021E626C
+
+ thumb_func_start MOD14_021D850C
+MOD14_021D850C: ; 0x021D850C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x1b
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _021D8520
+ cmp r1, #1
+ beq _021D8536
+ b _021D8546
+_021D8520:
+ sub r0, #0x9c
+ ldr r0, [r4, r0]
+ mov r1, #0x33
+ bl MOD14_021DCB2C
+ mov r0, #0x1b
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _021D8546
+_021D8536:
+ sub r0, #0x9c
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D8546
+ mov r0, #1
+ pop {r4, pc}
+_021D8546:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021D854C
+MOD14_021D854C: ; 0x021D854C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #6
+ bls _021D855A
+ b _021D86A6
+_021D855A:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D8566: ; jump table
+ .short _021D8574 - _021D8566 - 2 ; case 0
+ .short _021D85CC - _021D8566 - 2 ; case 1
+ .short _021D8604 - _021D8566 - 2 ; case 2
+ .short _021D86A6 - _021D8566 - 2 ; case 3
+ .short _021D8660 - _021D8566 - 2 ; case 4
+ .short _021D8674 - _021D8566 - 2 ; case 5
+ .short _021D8690 - _021D8566 - 2 ; case 6
+_021D8574:
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ bne _021D8590
+ add r0, r4, #0
+ bl MOD14_021DC538
+ cmp r0, #0
+ beq _021D8590
+ ldr r1, _021D86A8 ; =MOD14_021DA7C4
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8590:
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ beq _021D85BA
+ ldr r0, _021D86AC ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x11
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D85BA:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x22
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D85CC:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x22
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D86A6
+ ldr r0, _021D86B0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0xb
+ bl MOD14_021DBA44
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD14_021E5D98
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8604:
+ bl MOD14_021E6160
+ cmp r0, #0x36
+ bgt _021D8624
+ bge _021D8650
+ mov r2, #0
+ mvn r2, r2
+ cmp r0, r2
+ bgt _021D86A6
+ sub r1, r2, #1
+ cmp r0, r1
+ blt _021D86A6
+ beq _021D862A
+ cmp r0, r2
+ beq _021D8638
+ pop {r3, r4, r5, pc}
+_021D8624:
+ cmp r0, #0x37
+ beq _021D8638
+ pop {r3, r4, r5, pc}
+_021D862A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D8638:
+ ldr r0, _021D86B0 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8650:
+ ldr r1, _021D86B4 ; =MOD14_021D850C
+ add r0, r4, #0
+ bl MOD14_021D7600
+ add r0, r4, #0
+ bl MOD14_021D7620
+ pop {r3, r4, r5, pc}
+_021D8660:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D86A6
+ mov r0, #5
+ str r0, [r5]
+_021D8674:
+ ldr r0, _021D86B8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D86A6
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8690:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D86A6
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D86A6:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D86A8: .word MOD14_021DA7C4
+_021D86AC: .word 0x000005F3
+_021D86B0: .word 0x000005DD
+_021D86B4: .word MOD14_021D850C
+_021D86B8: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D86BC
+MOD14_021D86BC: ; 0x021D86BC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #5
+ bls _021D86CA
+ b _021D87EC
+_021D86CA:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D86D6: ; jump table
+ .short _021D86E2 - _021D86D6 - 2 ; case 0
+ .short _021D87EC - _021D86D6 - 2 ; case 1
+ .short _021D87A6 - _021D86D6 - 2 ; case 2
+ .short _021D87BA - _021D86D6 - 2 ; case 3
+ .short _021D87D6 - _021D86D6 - 2 ; case 4
+ .short _021D8750 - _021D86D6 - 2 ; case 5
+_021D86E2:
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ beq _021D870A
+ ldr r0, _021D87F0 ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x11
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D870A:
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ bne _021D8728
+ add r0, r4, #0
+ bl MOD14_021DC538
+ cmp r0, #0
+ beq _021D8728
+ ldr r1, _021D87F4 ; =MOD14_021DA7C4
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8728:
+ ldr r0, _021D87F8 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0xc
+ bl MOD14_021DBA44
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021E5D98
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8750:
+ bl MOD14_021E6160
+ cmp r0, #0x36
+ bgt _021D8770
+ bge _021D8794
+ mov r2, #0
+ mvn r2, r2
+ cmp r0, r2
+ bgt _021D87EC
+ sub r1, r2, #1
+ cmp r0, r1
+ blt _021D87EC
+ beq _021D8776
+ cmp r0, r2
+ beq _021D8784
+ pop {r3, r4, r5, pc}
+_021D8770:
+ cmp r0, #0x37
+ beq _021D8784
+ pop {r3, r4, r5, pc}
+_021D8776:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D8784:
+ ldr r1, _021D87FC ; =MOD14_021D850C
+ add r0, r4, #0
+ bl MOD14_021D7600
+ add r0, r4, #0
+ bl MOD14_021D7620
+ pop {r3, r4, r5, pc}
+_021D8794:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D87A6:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D87EC
+ mov r0, #3
+ str r0, [r5]
+_021D87BA:
+ ldr r0, _021D8800 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D87EC
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D87D6:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D87EC
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D87EC:
+ pop {r3, r4, r5, pc}
+ nop
+_021D87F0: .word 0x000005F3
+_021D87F4: .word MOD14_021DA7C4
+_021D87F8: .word 0x000005DD
+_021D87FC: .word MOD14_021D850C
+_021D8800: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D8804
+MOD14_021D8804: ; 0x021D8804
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #5
+ bhi _021D88F6
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D881C: ; jump table
+ .short _021D8828 - _021D881C - 2 ; case 0
+ .short _021D887C - _021D881C - 2 ; case 1
+ .short _021D8890 - _021D881C - 2 ; case 2
+ .short _021D88EA - _021D881C - 2 ; case 3
+ .short _021D8A08 - _021D881C - 2 ; case 4
+ .short _021D8A20 - _021D881C - 2 ; case 5
+_021D8828:
+ bl MOD14_021DC458
+ add r2, r0, #0
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021DBA44
+ add r0, r4, #0
+ bl MOD14_021E5DC4
+ add r0, r4, #0
+ bl MOD14_021DC49C
+ cmp r0, #0
+ beq _021D8864
+ add r0, r4, #0
+ bl MOD14_021E6220
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8864:
+ ldr r0, _021D8A38 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D887C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D88F6
+ mov r0, #2
+ str r0, [r5]
+_021D8890:
+ add r0, r4, #0
+ bl MOD14_021E6160
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0
+ ldr r2, [r4, r1]
+ mvn r0, r0
+ cmp r2, r0
+ bgt _021D88BA
+ sub r3, r0, #2
+ cmp r2, r3
+ blt _021D88E4
+ beq _021D88F6
+ sub r3, r0, #1
+ cmp r2, r3
+ beq _021D88C0
+ cmp r2, r0
+ beq _021D88CC
+ b _021D88E4
+_021D88BA:
+ cmp r2, #0x2b
+ beq _021D88CC
+ b _021D88E4
+_021D88C0:
+ sub r1, #0xa4
+ ldr r0, [r4, r1]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D88CC:
+ ldr r0, _021D8A38 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D88E4:
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D88EA:
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ sub r2, #0x22
+ cmp r2, #0x13
+ bls _021D88F8
+_021D88F6:
+ b _021D8A34
+_021D88F8:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021D8904: ; jump table
+ .short _021D892C - _021D8904 - 2 ; case 0
+ .short _021D895E - _021D8904 - 2 ; case 1
+ .short _021D8972 - _021D8904 - 2 ; case 2
+ .short _021D89A6 - _021D8904 - 2 ; case 3
+ .short _021D8986 - _021D8904 - 2 ; case 4
+ .short _021D898E - _021D8904 - 2 ; case 5
+ .short _021D89AE - _021D8904 - 2 ; case 6
+ .short _021D8996 - _021D8904 - 2 ; case 7
+ .short _021D899E - _021D8904 - 2 ; case 8
+ .short _021D8A34 - _021D8904 - 2 ; case 9
+ .short _021D8A34 - _021D8904 - 2 ; case 10
+ .short _021D8A34 - _021D8904 - 2 ; case 11
+ .short _021D8A34 - _021D8904 - 2 ; case 12
+ .short _021D8A34 - _021D8904 - 2 ; case 13
+ .short _021D8A34 - _021D8904 - 2 ; case 14
+ .short _021D8A34 - _021D8904 - 2 ; case 15
+ .short _021D8A34 - _021D8904 - 2 ; case 16
+ .short _021D8A34 - _021D8904 - 2 ; case 17
+ .short _021D89CA - _021D8904 - 2 ; case 18
+ .short _021D89CA - _021D8904 - 2 ; case 19
+_021D892C:
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021D8948
+ add r0, r4, #0
+ bl MOD14_021DC49C
+ cmp r0, #1
+ bne _021D8948
+ ldr r1, _021D8A3C ; =MOD14_021D9230
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8948:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ ldr r1, _021D8A40 ; =MOD14_021D94BC
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D895E:
+ sub r1, #0xa4
+ ldr r0, [r4, r1]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ ldr r1, _021D8A44 ; =MOD14_021D95B4
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8972:
+ sub r1, #0xa4
+ ldr r0, [r4, r1]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ ldr r1, _021D8A48 ; =MOD14_021D96B0
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8986:
+ ldr r1, _021D8A4C ; =MOD14_021D9770
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D898E:
+ ldr r1, _021D8A50 ; =MOD14_021D9934
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8996:
+ ldr r1, _021D8A54 ; =MOD14_021D9138
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D899E:
+ ldr r1, _021D8A58 ; =MOD14_021D9C98
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D89A6:
+ ldr r1, _021D8A5C ; =MOD14_021DA2C8
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D89AE:
+ bl MOD14_021DC430
+ cmp r0, #0
+ bne _021D89C0
+ ldr r1, _021D8A60 ; =MOD14_021DA3E4
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D89C0:
+ ldr r1, _021D8A64 ; =MOD14_021DA5F0
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D89CA:
+ bl MOD14_021DC170
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DBE88
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x30
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ ldr r0, _021D8A38 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8A08:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D8A34
+ add r0, r4, #0
+ bl MOD14_021D7620
+ pop {r3, r4, r5, pc}
+_021D8A20:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D8A34
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D8A34:
+ pop {r3, r4, r5, pc}
+ nop
+_021D8A38: .word 0x000005DD
+_021D8A3C: .word MOD14_021D9230
+_021D8A40: .word MOD14_021D94BC
+_021D8A44: .word MOD14_021D95B4
+_021D8A48: .word MOD14_021D96B0
+_021D8A4C: .word MOD14_021D9770
+_021D8A50: .word MOD14_021D9934
+_021D8A54: .word MOD14_021D9138
+_021D8A58: .word MOD14_021D9C98
+_021D8A5C: .word MOD14_021DA2C8
+_021D8A60: .word MOD14_021DA3E4
+_021D8A64: .word MOD14_021DA5F0
+
+ thumb_func_start MOD14_021D8A68
+MOD14_021D8A68: ; 0x021D8A68
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #7
+ bls _021D8A76
+ b _021D8D54
+_021D8A76:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D8A82: ; jump table
+ .short _021D8A92 - _021D8A82 - 2 ; case 0
+ .short _021D8B3C - _021D8A82 - 2 ; case 1
+ .short _021D8B50 - _021D8A82 - 2 ; case 2
+ .short _021D8BB0 - _021D8A82 - 2 ; case 3
+ .short _021D8CE0 - _021D8A82 - 2 ; case 4
+ .short _021D8CF8 - _021D8A82 - 2 ; case 5
+ .short _021D8D24 - _021D8A82 - 2 ; case 6
+ .short _021D8D3A - _021D8A82 - 2 ; case 7
+_021D8A92:
+ bl MOD14_021DC538
+ add r2, r0, #0
+ beq _021D8AB0
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200AE38
+ add r0, r4, #0
+ mov r1, #0x19
+ bl MOD14_021DBA44
+ b _021D8AD8
+_021D8AB0:
+ add r0, r4, #0
+ bl MOD14_021DC430
+ add r2, r0, #0
+ beq _021D8AD0
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200AE38
+ add r0, r4, #0
+ mov r1, #0x19
+ bl MOD14_021DBA44
+ b _021D8AD8
+_021D8AD0:
+ add r0, r4, #0
+ mov r1, #0x1c
+ bl MOD14_021DBA44
+_021D8AD8:
+ add r0, r4, #0
+ bl MOD14_021E5F04
+ add r0, r4, #0
+ bl MOD14_021DC584
+ cmp r0, #0
+ beq _021D8B08
+ ldr r0, _021D8D58 ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x22
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #7
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8B08:
+ add r0, r4, #0
+ bl MOD14_021DC49C
+ cmp r0, #0
+ beq _021D8B24
+ add r0, r4, #0
+ bl MOD14_021E6220
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8B24:
+ ldr r0, _021D8D5C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8B3C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D8BBC
+ mov r0, #2
+ str r0, [r5]
+_021D8B50:
+ add r0, r4, #0
+ bl MOD14_021E6160
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0
+ ldr r2, [r4, r1]
+ mvn r0, r0
+ cmp r2, r0
+ bgt _021D8B7A
+ sub r3, r0, #2
+ cmp r2, r3
+ blt _021D8BA4
+ beq _021D8BBC
+ sub r3, r0, #1
+ cmp r2, r3
+ beq _021D8B80
+ cmp r2, r0
+ beq _021D8B8C
+ b _021D8BA4
+_021D8B7A:
+ cmp r2, #0x33
+ beq _021D8B8C
+ b _021D8BA4
+_021D8B80:
+ sub r1, #0xa4
+ ldr r0, [r4, r1]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D8B8C:
+ ldr r0, _021D8D5C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8BA4:
+ ldr r0, _021D8D5C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8BB0:
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ sub r1, #0x2e
+ cmp r1, #4
+ bls _021D8BBE
+_021D8BBC:
+ b _021D8D54
+_021D8BBE:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D8BCA: ; jump table
+ .short _021D8BD4 - _021D8BCA - 2 ; case 0
+ .short _021D8C12 - _021D8BCA - 2 ; case 1
+ .short _021D8C74 - _021D8BCA - 2 ; case 2
+ .short _021D8C7C - _021D8BCA - 2 ; case 3
+ .short _021D8CD8 - _021D8BCA - 2 ; case 4
+_021D8BD4:
+ bl MOD14_021DC538
+ cmp r0, #0
+ beq _021D8C08
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DC31C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x14
+ bl MOD14_021DCB2C
+ ldr r0, _021D8D5C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8C08:
+ ldr r1, _021D8D60 ; =MOD14_021DA3E4
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8C12:
+ bl MOD14_021DC430
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ cmp r0, #0
+ beq _021D8C42
+ ldr r0, _021D8D58 ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #7
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8C42:
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DC2E4
+ add r0, r4, #0
+ bl MOD14_021D7674
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x13
+ bl MOD14_021DCB2C
+ ldr r0, _021D8D5C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8C74:
+ ldr r1, _021D8D64 ; =MOD14_021DA9D0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8C7C:
+ bl MOD14_021DC430
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ cmp r0, #0
+ beq _021D8CAC
+ ldr r0, _021D8D58 ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #7
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8CAC:
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DC334
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x15
+ bl MOD14_021DCB2C
+ ldr r0, _021D8D5C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8CD8:
+ ldr r1, _021D8D68 ; =MOD14_021DA7C4
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8CE0:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D8D54
+ add r0, r4, #0
+ bl MOD14_021D7620
+ pop {r3, r4, r5, pc}
+_021D8CF8:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D8D54
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x16
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8D24:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D8D54
+ add r0, r4, #0
+ bl MOD14_021D7620
+ pop {r3, r4, r5, pc}
+_021D8D3A:
+ ldr r0, _021D8D6C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D8D54
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+_021D8D54:
+ pop {r3, r4, r5, pc}
+ nop
+_021D8D58: .word 0x000005F3
+_021D8D5C: .word 0x000005DD
+_021D8D60: .word MOD14_021DA3E4
+_021D8D64: .word MOD14_021DA9D0
+_021D8D68: .word MOD14_021DA7C4
+_021D8D6C: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D8D70
+MOD14_021D8D70: ; 0x021D8D70
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #7
+ bls _021D8D7E
+ b _021D8EB0
+_021D8D7E:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D8D8A: ; jump table
+ .short _021D8D9A - _021D8D8A - 2 ; case 0
+ .short _021D8DDE - _021D8D8A - 2 ; case 1
+ .short _021D8DF2 - _021D8D8A - 2 ; case 2
+ .short _021D8E42 - _021D8D8A - 2 ; case 3
+ .short _021D8E82 - _021D8D8A - 2 ; case 4
+ .short _021D8EB0 - _021D8D8A - 2 ; case 5
+ .short _021D8EB0 - _021D8D8A - 2 ; case 6
+ .short _021D8E9A - _021D8D8A - 2 ; case 7
+_021D8D9A:
+ mov r1, #7
+ bl MOD14_021DBA44
+ add r0, r4, #0
+ bl MOD14_021E5F84
+ add r0, r4, #0
+ bl MOD14_021DC49C
+ cmp r0, #0
+ ldr r0, _021D8EB4 ; =0x000005DD
+ beq _021D8DC8
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD14_021E6220
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8DC8:
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8DDE:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D8EB0
+ mov r0, #2
+ str r0, [r5]
+_021D8DF2:
+ add r0, r4, #0
+ bl MOD14_021E6160
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ add r0, r0, #3
+ cmp r0, #6
+ bhi _021D8E3C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8E12: ; jump table
+ .short _021D8EB0 - _021D8E12 - 2 ; case 0
+ .short _021D8E20 - _021D8E12 - 2 ; case 1
+ .short _021D8E2C - _021D8E12 - 2 ; case 2
+ .short _021D8E3C - _021D8E12 - 2 ; case 3
+ .short _021D8E3C - _021D8E12 - 2 ; case 4
+ .short _021D8E3C - _021D8E12 - 2 ; case 5
+ .short _021D8E2C - _021D8E12 - 2 ; case 6
+_021D8E20:
+ sub r1, #0xa4
+ ldr r0, [r4, r1]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D8E2C:
+ sub r1, #0xa4
+ ldr r0, [r4, r1]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8E3C:
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8E42:
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ cmp r2, #0
+ beq _021D8E56
+ cmp r2, #1
+ beq _021D8E6A
+ cmp r2, #2
+ beq _021D8E7A
+ pop {r3, r4, r5, pc}
+_021D8E56:
+ sub r1, #0xa4
+ ldr r0, [r4, r1]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ ldr r1, _021D8EB8 ; =MOD14_021D8EC4
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8E6A:
+ sub r1, #0xa4
+ ldr r0, [r4, r1]
+ mov r1, #0x1b
+ bl MOD14_021DCB2C
+ mov r0, #7
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8E7A:
+ ldr r1, _021D8EBC ; =MOD14_021DA1D4
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D8E82:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D8EB0
+ add r0, r4, #0
+ bl MOD14_021D7620
+ pop {r3, r4, r5, pc}
+_021D8E9A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D8EB0
+ ldr r1, _021D8EC0 ; =MOD14_021D8F6C
+ add r0, r4, #0
+ bl MOD14_021D7610
+_021D8EB0:
+ pop {r3, r4, r5, pc}
+ nop
+_021D8EB4: .word 0x000005DD
+_021D8EB8: .word MOD14_021D8EC4
+_021D8EBC: .word MOD14_021DA1D4
+_021D8EC0: .word MOD14_021D8F6C
+
+ thumb_func_start MOD14_021D8EC4
+MOD14_021D8EC4: ; 0x021D8EC4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _021D8EDA
+ cmp r1, #1
+ beq _021D8EEE
+ cmp r1, #2
+ beq _021D8F52
+ pop {r4, r5, r6, pc}
+_021D8EDA:
+ bl MOD14_021DC424
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #8
+ bl MOD14_021DAA7C
+ mov r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021D8EEE:
+ bl MOD14_021DAAA8
+ cmp r0, #0
+ beq _021D8F66
+ ldr r0, _021D8F68 ; =0x000001C1
+ ldrsb r6, [r5, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ beq _021D8F0C
+ add r0, r5, #0
+ bl MOD14_021DC424
+ cmp r6, r0
+ bne _021D8F12
+_021D8F0C:
+ mov r0, #2
+ str r0, [r4]
+ b _021D8F38
+_021D8F12:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD14_021DC2C4
+ mov r1, #0x12
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ add r1, #0xa1
+ ldrsb r1, [r5, r1]
+ bl FUN_0206B428
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #4
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r4]
+_021D8F38:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x20
+ bl MOD14_021DCB2C
+ pop {r4, r5, r6, pc}
+_021D8F52:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D8F66
+ add r0, r5, #0
+ bl MOD14_021D7620
+_021D8F66:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8F68: .word 0x000001C1
+
+ thumb_func_start MOD14_021D8F6C
+MOD14_021D8F6C: ; 0x021D8F6C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #8
+ bhi _021D8FD8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8F84: ; jump table
+ .short _021D8F96 - _021D8F84 - 2 ; case 0
+ .short _021D8FA2 - _021D8F84 - 2 ; case 1
+ .short _021D8FC8 - _021D8F84 - 2 ; case 2
+ .short _021D8FDE - _021D8F84 - 2 ; case 3
+ .short _021D9062 - _021D8F84 - 2 ; case 4
+ .short _021D9076 - _021D8F84 - 2 ; case 5
+ .short _021D90FC - _021D8F84 - 2 ; case 6
+ .short _021D910E - _021D8F84 - 2 ; case 7
+ .short _021D9122 - _021D8F84 - 2 ; case 8
+_021D8F96:
+ mov r0, #0x6e
+ mov r1, #4
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [r5]
+_021D8FA2:
+ add r0, r4, #0
+ mov r1, #9
+ bl MOD14_021DBA44
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD14_021E5FC8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D8FC8:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB98
+ cmp r0, #0
+ bne _021D8FDA
+_021D8FD8:
+ b _021D9136
+_021D8FDA:
+ mov r0, #3
+ str r0, [r5]
+_021D8FDE:
+ add r0, r4, #0
+ bl MOD14_021E6160
+ add r0, r0, #3
+ cmp r0, #0xc
+ bhi _021D901E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8FF6: ; jump table
+ .short _021D9136 - _021D8FF6 - 2 ; case 0
+ .short _021D9010 - _021D8FF6 - 2 ; case 1
+ .short _021D901E - _021D8FF6 - 2 ; case 2
+ .short _021D901E - _021D8FF6 - 2 ; case 3
+ .short _021D901E - _021D8FF6 - 2 ; case 4
+ .short _021D901E - _021D8FF6 - 2 ; case 5
+ .short _021D901E - _021D8FF6 - 2 ; case 6
+ .short _021D9030 - _021D8FF6 - 2 ; case 7
+ .short _021D9030 - _021D8FF6 - 2 ; case 8
+ .short _021D9030 - _021D8FF6 - 2 ; case 9
+ .short _021D9030 - _021D8FF6 - 2 ; case 10
+ .short _021D9030 - _021D8FF6 - 2 ; case 11
+ .short _021D9030 - _021D8FF6 - 2 ; case 12
+_021D9010:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D901E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #8
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9030:
+ add r0, r4, #0
+ bl MOD14_021E6210
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD14_021DBA44
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD14_021E6038
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9062:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9136
+ mov r0, #5
+ str r0, [r5]
+_021D9076:
+ add r0, r4, #0
+ bl MOD14_021E6160
+ add r0, r0, #3
+ cmp r0, #6
+ bhi _021D90B0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D908E: ; jump table
+ .short _021D9136 - _021D908E - 2 ; case 0
+ .short _021D909C - _021D908E - 2 ; case 1
+ .short _021D90AA - _021D908E - 2 ; case 2
+ .short _021D90B0 - _021D908E - 2 ; case 3
+ .short _021D90B0 - _021D908E - 2 ; case 4
+ .short _021D90B0 - _021D908E - 2 ; case 5
+ .short _021D90AA - _021D908E - 2 ; case 6
+_021D909C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D90AA:
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D90B0:
+ add r0, r4, #0
+ bl MOD14_021E6210
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r2, [r4, r1]
+ cmp r2, #0xa
+ blt _021D90F2
+ cmp r2, #0x21
+ bgt _021D90F2
+ sub r1, #0x98
+ ldr r0, [r4, r1]
+ mov r1, #0
+ mvn r1, r1
+ sub r2, #0xa
+ bl FUN_0206B458
+ mov r1, #0x12
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD14_021DB59C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D90F2:
+ bl ErrorHandling
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D90FC:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x21
+ bl MOD14_021DCB2C
+ mov r0, #8
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D910E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9136
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9122:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9136
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D9136:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021D9138
+MOD14_021D9138: ; 0x021D9138
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _021D914E
+ cmp r1, #1
+ beq _021D916C
+ cmp r1, #2
+ beq _021D921A
+ pop {r3, r4, r5, pc}
+_021D914E:
+ bl MOD14_021E60B4
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D916C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D922E
+ add r0, r5, #0
+ bl MOD14_021E6160
+ mov r2, #2
+ add r1, r0, #0
+ mvn r2, r2
+ cmp r1, r2
+ bhi _021D919C
+ bhs _021D922E
+ cmp r1, #0x2d
+ bhi _021D91FC
+ cmp r1, #0x2c
+ blo _021D91FC
+ beq _021D91CC
+ cmp r1, #0x2d
+ beq _021D91BA
+ b _021D91FC
+_021D919C:
+ add r0, r2, #1
+ cmp r1, r0
+ blo _021D91FC
+ beq _021D91AC
+ add r0, r2, #2
+ cmp r1, r0
+ beq _021D91BA
+ b _021D91FC
+_021D91AC:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D91BA:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D91CC:
+ add r0, r5, #0
+ bl MOD14_021DC1AC
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #7
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x27
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D91FC:
+ cmp r1, #0x38
+ blo _021D922E
+ cmp r1, #0x3d
+ bhi _021D922E
+ add r0, r5, #0
+ sub r1, #0x38
+ bl MOD14_021E6118
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1d
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D921A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D922E
+ add r0, r5, #0
+ bl MOD14_021D7620
+_021D922E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021D9230
+MOD14_021D9230: ; 0x021D9230
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #4
+ bls _021D923E
+ b _021D9454
+_021D923E:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D924A: ; jump table
+ .short _021D9254 - _021D924A - 2 ; case 0
+ .short _021D9284 - _021D924A - 2 ; case 1
+ .short _021D9326 - _021D924A - 2 ; case 2
+ .short _021D942C - _021D924A - 2 ; case 3
+ .short _021D9440 - _021D924A - 2 ; case 4
+_021D9254:
+ ldr r1, _021D9458 ; =0x021C48B8
+ ldr r2, [r1, #0x44]
+ mov r1, #1
+ tst r1, r2
+ beq _021D927C
+ add r1, r4, #0
+ bl MOD14_021DBBD0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x2c
+ bl MOD14_021DCB2C
+ ldr r0, _021D945C ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D927C:
+ ldr r1, _021D9460 ; =MOD14_021D94BC
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D9284:
+ ldr r1, _021D9458 ; =0x021C48B8
+ ldr r2, [r1, #0x44]
+ mov r1, #1
+ tst r1, r2
+ beq _021D92E8
+ add r0, r2, #0
+ add r1, r4, #0
+ bl MOD14_021DB790
+ cmp r0, #1
+ beq _021D92B6
+ cmp r0, #2
+ bne _021D9342
+ ldr r1, _021D9458 ; =0x021C48B8
+ mov r0, #0xf0
+ ldr r2, [r1, #0x44]
+ ldr r1, [r1, #0x48]
+ and r2, r0
+ and r0, r1
+ cmp r2, r0
+ bne _021D9342
+ ldr r0, _021D9464 ; =0x000005F3
+ bl FUN_020054C8
+ pop {r3, r4, r5, pc}
+_021D92B6:
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DBBEC
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x2e
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D92E8:
+ bl MOD14_021DC4DC
+ cmp r0, #0
+ beq _021D9306
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x2d
+ bl MOD14_021DCB2C
+ ldr r1, _021D9460 ; =MOD14_021D94BC
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, pc}
+_021D9306:
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DBAE0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x2f
+ bl MOD14_021DCB2C
+ ldr r0, _021D9468 ; =0x000005EB
+ bl FUN_020054C8
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9326:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9342
+ ldr r0, _021D9458 ; =0x021C48B8
+ add r1, r4, #0
+ ldr r0, [r0, #0x44]
+ bl MOD14_021DB790
+ cmp r0, #4
+ bls _021D9344
+_021D9342:
+ b _021D9454
+_021D9344:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D9350: ; jump table
+ .short _021D93E2 - _021D9350 - 2 ; case 0
+ .short _021D9372 - _021D9350 - 2 ; case 1
+ .short _021D935A - _021D9350 - 2 ; case 2
+ .short _021D9396 - _021D9350 - 2 ; case 3
+ .short _021D93BC - _021D9350 - 2 ; case 4
+_021D935A:
+ ldr r1, _021D9458 ; =0x021C48B8
+ mov r0, #0xf0
+ ldr r2, [r1, #0x44]
+ ldr r1, [r1, #0x48]
+ and r2, r0
+ and r0, r1
+ cmp r2, r0
+ bne _021D9454
+ ldr r0, _021D9464 ; =0x000005F3
+ bl FUN_020054C8
+ pop {r3, r4, r5, pc}
+_021D9372:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ mov r1, #6
+ tst r0, r1
+ bne _021D9454
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D9396:
+ add r0, r4, #0
+ bl MOD14_021DC2A4
+ add r0, r4, #0
+ bl MOD14_021DC424
+ add r1, r0, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0206B428
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D93BC:
+ add r0, r4, #0
+ bl MOD14_021DC278
+ add r0, r4, #0
+ bl MOD14_021DC424
+ add r1, r0, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0206B428
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D93E2:
+ ldr r0, _021D9458 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _021D941E
+ add r0, r4, #0
+ bl MOD14_021D9470
+ cmp r0, #0
+ beq _021D9416
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DBCA0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xa
+ bl MOD14_021DCB2C
+ ldr r0, _021D946C ; =0x000005EA
+ bl FUN_020054C8
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9416:
+ ldr r0, _021D9464 ; =0x000005F3
+ bl FUN_020054C8
+ pop {r3, r4, r5, pc}
+_021D941E:
+ mov r0, #2
+ tst r0, r1
+ beq _021D9454
+ ldr r0, _021D9464 ; =0x000005F3
+ bl FUN_020054C8
+ pop {r3, r4, r5, pc}
+_021D942C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9454
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9440:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9454
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D9454:
+ pop {r3, r4, r5, pc}
+ nop
+_021D9458: .word 0x021C48B8
+_021D945C: .word 0x000005DC
+_021D9460: .word MOD14_021D94BC
+_021D9464: .word 0x000005F3
+_021D9468: .word 0x000005EB
+_021D946C: .word 0x000005EA
+
+ thumb_func_start MOD14_021D9470
+MOD14_021D9470: ; 0x021D9470
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r5, #0x14
+ str r0, [sp]
+ bl MOD14_021DC4F8
+ add r7, r0, #0
+ ldrb r0, [r5, #8]
+ mov r4, #0
+ ldrb r6, [r5, #9]
+ cmp r0, #0
+ ble _021D94B6
+_021D9488:
+ add r3, r5, r4
+ mov r2, #0xc
+ ldrsb r2, [r3, r2]
+ ldr r0, [sp]
+ mov r1, #0
+ sub r2, r2, r6
+ ldr r0, [r0]
+ mvn r1, r1
+ add r2, r7, r2
+ bl FUN_0206B5E4
+ mov r1, #0xab
+ mov r2, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021D94AE
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D94AE:
+ ldrb r0, [r5, #8]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _021D9488
+_021D94B6:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021D94BC
+MOD14_021D94BC: ; 0x021D94BC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #3
+ bhi _021D95A4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D94D4: ; jump table
+ .short _021D94DC - _021D94D4 - 2 ; case 0
+ .short _021D954E - _021D94D4 - 2 ; case 1
+ .short _021D9574 - _021D94D4 - 2 ; case 2
+ .short _021D9590 - _021D94D4 - 2 ; case 3
+_021D94DC:
+ bl MOD14_021DC3CC
+ cmp r0, #1
+ bne _021D952E
+ add r0, r4, #0
+ bl MOD14_021D9B84
+ cmp r0, #0
+ bne _021D950E
+ ldr r0, _021D95A8 ; =0x000005EB
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DBA5C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #9
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D950E:
+ ldr r0, _021D95AC ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D952E:
+ ldr r0, _021D95A8 ; =0x000005EB
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DBA5C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #9
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D954E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D95A4
+ add r0, r4, #0
+ bl MOD14_021DB934
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x25
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9574:
+ ldr r0, _021D95B0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D95A4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9590:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D95A4
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D95A4:
+ pop {r3, r4, r5, pc}
+ nop
+_021D95A8: .word 0x000005EB
+_021D95AC: .word 0x000005F3
+_021D95B0: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D95B4
+MOD14_021D95B4: ; 0x021D95B4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _021D95CA
+ cmp r1, #1
+ beq _021D9616
+ cmp r1, #2
+ beq _021D9648
+ pop {r4, r5, r6, pc}
+_021D95CA:
+ add r1, r5, #0
+ bl MOD14_021DBC00
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0xa
+ bl MOD14_021DCB2C
+ ldr r0, _021D9664 ; =0x000005EA
+ bl FUN_020054C8
+ add r0, r5, #0
+ bl MOD14_021DC3CC
+ cmp r0, #1
+ bne _021D9610
+ add r0, r5, #0
+ bl MOD14_021DC3E8
+ add r6, r0, #0
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ sub r0, r0, #1
+ cmp r6, r0
+ beq _021D9610
+ mov r0, #1
+ str r0, [r4]
+ add r0, r5, #0
+ bl MOD14_021DB934
+ pop {r4, r5, r6, pc}
+_021D9610:
+ mov r0, #2
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021D9616:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9662
+ add r0, r5, #0
+ bl MOD14_021DB934
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x26
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021D9648:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9662
+ add r0, r5, #0
+ bl MOD14_021D7674
+ add r0, r5, #0
+ bl MOD14_021D7620
+_021D9662:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D9664: .word 0x000005EA
+
+ thumb_func_start MOD14_021D9668
+MOD14_021D9668: ; 0x021D9668
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD14_021D9B84
+ cmp r0, #0
+ beq _021D96AC
+ add r0, r5, #0
+ mov r1, #0xac
+ mov r2, #0
+ bl MOD14_021DC58C
+ cmp r0, #0
+ beq _021D968C
+ mov r0, #6
+ str r0, [r4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D968C:
+ add r0, r5, #0
+ bl MOD14_021DC3F8
+ cmp r0, #0
+ beq _021D96AC
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl MOD14_021DC58C
+ cmp r0, #0
+ bne _021D96AC
+ mov r0, #6
+ str r0, [r4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D96AC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021D96B0
+MOD14_021D96B0: ; 0x021D96B0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _021D96C6
+ cmp r1, #1
+ beq _021D971C
+ cmp r1, #2
+ beq _021D9748
+ pop {r3, r4, r5, pc}
+_021D96C6:
+ add r1, sp, #0
+ bl MOD14_021D9668
+ cmp r0, #0
+ beq _021D96F0
+ ldr r0, _021D9764 ; =0x000005F3
+ bl FUN_020054C8
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D96F0:
+ add r0, r5, #0
+ add r1, r5, #0
+ bl MOD14_021DBD34
+ ldr r0, _021D9768 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0xb
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D971C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9762
+ ldr r0, _021D976C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9762
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021D9748:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9762
+ add r0, r5, #0
+ bl MOD14_021D7674
+ add r0, r5, #0
+ bl MOD14_021D7620
+_021D9762:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D9764: .word 0x000005F3
+_021D9768: .word 0x000005DC
+_021D976C: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D9770
+MOD14_021D9770: ; 0x021D9770
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #8
+ bls _021D977E
+ b _021D9928
+_021D977E:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D978A: ; jump table
+ .short _021D979C - _021D978A - 2 ; case 0
+ .short _021D9818 - _021D978A - 2 ; case 1
+ .short _021D983A - _021D978A - 2 ; case 2
+ .short _021D9862 - _021D978A - 2 ; case 3
+ .short _021D9892 - _021D978A - 2 ; case 4
+ .short _021D98B4 - _021D978A - 2 ; case 5
+ .short _021D9928 - _021D978A - 2 ; case 6
+ .short _021D98E8 - _021D978A - 2 ; case 7
+ .short _021D9914 - _021D978A - 2 ; case 8
+_021D979C:
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0206B9AC
+ cmp r0, #6
+ beq _021D97F2
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ bne _021D97D2
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x23
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D97D2:
+ ldr r0, _021D992C ; =0x000005EB
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DBA5C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #9
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D97F2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1b
+ bl MOD14_021DCB2C
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #7
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9818:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #9
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9928
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x23
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D983A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x23
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9928
+ add r0, r4, #0
+ bl MOD14_021DB8D0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9862:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9928
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD14_021DBC00
+ add r0, r4, #0
+ bl MOD14_021D7674
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xa
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9892:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xa
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9928
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x24
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D98B4:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x24
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9928
+ add r0, r4, #0
+ bl MOD14_021DB910
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #8
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D98E8:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9928
+ ldr r0, _021D9930 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9928
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #8
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9914:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9928
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D9928:
+ pop {r3, r4, r5, pc}
+ nop
+_021D992C: .word 0x000005EB
+_021D9930: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D9934
+MOD14_021D9934: ; 0x021D9934
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #6
+ bhi _021D99F8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D994C: ; jump table
+ .short _021D995A - _021D994C - 2 ; case 0
+ .short _021D99F0 - _021D994C - 2 ; case 1
+ .short _021D9AB2 - _021D994C - 2 ; case 2
+ .short _021D9AD8 - _021D994C - 2 ; case 3
+ .short _021D9B04 - _021D994C - 2 ; case 4
+ .short _021D9B32 - _021D994C - 2 ; case 5
+ .short _021D9B60 - _021D994C - 2 ; case 6
+_021D995A:
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D9998
+ add r0, r4, #0
+ bl MOD14_021D9B84
+ cmp r0, #1
+ bne _021D9998
+ ldr r0, _021D9B78 ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1b
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9998:
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD14_021D7998
+ cmp r0, #0
+ beq _021D99D0
+ ldr r0, _021D9B78 ; =0x000005F3
+ bl FUN_020054C8
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1b
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D99D0:
+ mov r1, #0x11
+ lsl r1, r1, #4
+ ldrh r1, [r4, r1]
+ add r0, r4, #0
+ mov r2, #0x13
+ bl MOD14_021DAA7C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D99F0:
+ bl MOD14_021DAAA8
+ cmp r0, #0
+ bne _021D99FA
+_021D99F8:
+ b _021D9B74
+_021D99FA:
+ ldr r0, _021D9B7C ; =0x000001C1
+ mov r1, #0
+ ldrsb r2, [r4, r0]
+ mvn r1, r1
+ cmp r2, r1
+ bne _021D9A22
+ sub r0, #0xad
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x20
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9A22:
+ sub r0, #0xb1
+ strh r2, [r4, r0]
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ ldr r1, _021D9B7C ; =0x000001C1
+ bne _021D9A62
+ ldrsb r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD14_021DBDD8
+ cmp r0, #0
+ beq _021D9A92
+ add r0, r4, #0
+ bl MOD14_021D7674
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x20
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9A62:
+ ldrsb r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD14_021DBE00
+ cmp r0, #0
+ beq _021D9A92
+ add r0, r4, #0
+ bl MOD14_021D7674
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x20
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9A92:
+ ldr r0, _021D9B78 ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0xd
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9AB2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9B74
+ ldr r0, _021D9B80 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9B74
+ add r0, r4, #0
+ bl MOD14_021DAA98
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9AD8:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9B74
+ ldr r0, _021D9B80 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9B74
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9B04:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x20
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9B74
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xc
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9B32:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x20
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9B74
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xd
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9B60:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9B74
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D9B74:
+ pop {r3, r4, r5, pc}
+ nop
+_021D9B78: .word 0x000005F3
+_021D9B7C: .word 0x000001C1
+_021D9B80: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D9B84
+MOD14_021D9B84: ; 0x021D9B84
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r1, #0x49
+ lsl r1, r1, #2
+ str r0, [sp]
+ ldr r0, [r0, r1]
+ bl FUN_0206B9AC
+ mov r6, #0
+ add r5, r6, #0
+ str r0, [sp, #4]
+ cmp r0, #0
+ ble _021D9BEC
+_021D9B9E:
+ mov r0, #0x49
+ ldr r1, [sp]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ add r4, r0, #0
+ bl FUN_020669D4
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #0xac
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _021D9BD2
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _021D9BD2
+ add r5, r5, #1
+_021D9BD2:
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_02066A20
+ cmp r5, #2
+ blt _021D9BE4
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9BE4:
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _021D9B9E
+_021D9BEC:
+ ldr r0, [sp]
+ mov r1, #0xac
+ mov r2, #0
+ bl MOD14_021DC5D0
+ cmp r0, #0
+ beq _021D9C00
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9C00:
+ ldr r0, [sp]
+ mov r1, #0xa2
+ mov r2, #0
+ bl MOD14_021DC5D0
+ cmp r0, #0
+ beq _021D9C14
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9C14:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021D9C1C
+MOD14_021D9C1C: ; 0x021D9C1C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0xac
+ mov r2, #0
+ add r5, r0, #0
+ bl MOD14_021DC58C
+ cmp r0, #0
+ beq _021D9C36
+ mov r0, #0x1f
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D9C36:
+ add r0, r5, #0
+ bl MOD14_021DC430
+ add r0, r5, #0
+ bl MOD14_021DC430
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ cmp r0, #0
+ beq _021D9C56
+ mov r0, #0x1e
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D9C56:
+ add r0, r5, #0
+ mov r1, #0xa1
+ mov r2, #0
+ bl MOD14_021DC58C
+ cmp r0, #0
+ beq _021D9C6C
+ mov r0, #0x1d
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D9C6C:
+ add r0, r5, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021D9C92
+ add r0, r5, #0
+ bl MOD14_021DC3CC
+ cmp r0, #1
+ bne _021D9C92
+ add r0, r5, #0
+ bl MOD14_021D9B84
+ cmp r0, #0
+ beq _021D9C92
+ mov r0, #6
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D9C92:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021D9C98
+MOD14_021D9C98: ; 0x021D9C98
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #9
+ bhi _021D9D44
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D9CB0: ; jump table
+ .short _021D9CC4 - _021D9CB0 - 2 ; case 0
+ .short _021D9D1C - _021D9CB0 - 2 ; case 1
+ .short _021D9D86 - _021D9CB0 - 2 ; case 2
+ .short _021D9E0A - _021D9CB0 - 2 ; case 3
+ .short _021D9E96 - _021D9CB0 - 2 ; case 4
+ .short _021D9E62 - _021D9CB0 - 2 ; case 5
+ .short _021D9EC8 - _021D9CB0 - 2 ; case 6
+ .short _021D9EF2 - _021D9CB0 - 2 ; case 7
+ .short _021D9F36 - _021D9CB0 - 2 ; case 8
+ .short _021D9F62 - _021D9CB0 - 2 ; case 9
+_021D9CC4:
+ add r1, sp, #0
+ bl MOD14_021D9C1C
+ cmp r0, #0
+ beq _021D9CF0
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD14_021DBA44
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD14_021E5D98
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9CF0:
+ ldr r0, _021D9F78 ; =0x000005F3
+ bl FUN_020054C8
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1b
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #8
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9D1C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9D44
+ add r0, r4, #0
+ bl MOD14_021E6160
+ cmp r0, #0x36
+ bgt _021D9D4E
+ bge _021D9D74
+ mov r2, #0
+ mvn r2, r2
+ cmp r0, r2
+ bgt _021D9D44
+ sub r1, r2, #1
+ cmp r0, r1
+ bge _021D9D46
+_021D9D44:
+ b _021D9F76
+_021D9D46:
+ beq _021D9D54
+ cmp r0, r2
+ beq _021D9D62
+ pop {r3, r4, r5, pc}
+_021D9D4E:
+ cmp r0, #0x37
+ beq _021D9D62
+ pop {r3, r4, r5, pc}
+_021D9D54:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D9D62:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #9
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9D74:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9D86:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9E70
+ add r0, r4, #0
+ bl MOD14_021DC458
+ add r2, r0, #0
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r0, r4, #0
+ bl MOD14_021D9F80
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ bne _021D9DD0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xe
+ bl MOD14_021DCB2C
+ mov r0, #0x6e
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _021D9E04
+_021D9DD0:
+ add r0, r4, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021D9DF0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xf
+ bl MOD14_021DCB2C
+ mov r0, #0x6e
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _021D9E04
+_021D9DF0:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x10
+ bl MOD14_021DCB2C
+ mov r0, #0x6e
+ mov r1, #2
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_021D9E04:
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9E0A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9E70
+ add r0, r4, #0
+ bl MOD14_021DA1C0
+ cmp r0, #0
+ beq _021D9E48
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ bne _021D9E34
+ add r0, r4, #0
+ bl MOD14_021DBE34
+ b _021D9E3A
+_021D9E34:
+ add r0, r4, #0
+ bl MOD14_021DBE4C
+_021D9E3A:
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD14_021DBA44
+ mov r0, #5
+ str r0, [r5]
+ b _021D9E54
+_021D9E48:
+ add r0, r4, #0
+ mov r1, #0x20
+ bl MOD14_021DBA44
+ mov r0, #4
+ str r0, [r5]
+_021D9E54:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021D9E62:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ bne _021D9E72
+_021D9E70:
+ b _021D9F76
+_021D9E72:
+ ldr r0, _021D9F7C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9F76
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9E96:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9F76
+ ldr r0, _021D9F7C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9F76
+ add r0, r4, #0
+ mov r1, #0x21
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9EC8:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9F76
+ ldr r0, _021D9F7C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9F76
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #7
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9EF2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9F76
+ add r0, r4, #0
+ bl MOD14_021DA1C0
+ cmp r0, #0
+ beq _021D9F24
+ mov r0, #0x6e
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #2
+ bne _021D9F1E
+ sub r0, #0xa4
+ ldr r0, [r4, r0]
+ mov r1, #0x25
+ bl MOD14_021DCB2C
+_021D9F1E:
+ add r0, r4, #0
+ bl MOD14_021D7674
+_021D9F24:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #9
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9F36:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021D9F76
+ ldr r0, _021D9F7C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9F76
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #9
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021D9F62:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021D9F76
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021D9F76:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D9F78: .word 0x000005F3
+_021D9F7C: .word 0x021C48B8
+
+ thumb_func_start MOD14_021D9F80
+MOD14_021D9F80: ; 0x021D9F80
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r1, #0x57
+ lsl r1, r1, #2
+ str r0, [sp]
+ add r7, r0, r1
+ ldr r0, [r0, #0x4c]
+ mov r4, #0
+ ldr r5, _021DA010 ; =0x021E6224
+ str r0, [r7, #0x10]
+ str r4, [sp, #4]
+_021D9F96:
+ ldrh r1, [r5]
+ ldr r0, [r7, #0x10]
+ add r6, r7, r4
+ bl MOD14_021DA168
+ strb r0, [r6, #4]
+ ldrb r0, [r6, #4]
+ cmp r0, #0
+ beq _021D9FAE
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+_021D9FAE:
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #3
+ blo _021D9F96
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _021D9FC6
+ mov r0, #1
+ strb r0, [r7]
+ add sp, #8
+ strb r0, [r7, #1]
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9FC6:
+ mov r0, #0
+ strb r0, [r7]
+ strb r0, [r7, #1]
+ strb r0, [r7, #2]
+ strb r0, [r7, #3]
+ mov r1, #0x12
+ ldr r0, [sp]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ add r1, r1, #4
+ str r0, [r7, #0x14]
+ ldr r0, [sp]
+ ldr r0, [r0, r1]
+ str r0, [r7, #0x18]
+ ldr r0, [sp]
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ beq _021D9FF0
+ mov r0, #1
+ b _021D9FF2
+_021D9FF0:
+ mov r0, #0
+_021D9FF2:
+ mov r1, #0
+ str r0, [r7, #0x1c]
+ add r0, r7, #0
+ add r2, r1, #0
+_021D9FFA:
+ add r1, r1, #1
+ strh r2, [r0, #8]
+ add r0, r0, #2
+ cmp r1, #3
+ blo _021D9FFA
+ ldr r0, _021DA014 ; =MOD14_021DA018
+ add r1, r7, #0
+ bl FUN_0200CA44
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DA010: .word 0x021E6224
+_021DA014: .word MOD14_021DA018
+
+ thumb_func_start MOD14_021DA018
+MOD14_021DA018: ; 0x021DA018
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ ldrb r0, [r1, #2]
+ str r1, [sp, #4]
+ cmp r0, #0x12
+ bhs _021DA0AE
+ add r0, r1, #0
+ ldrb r0, [r0, #3]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x14]
+ add r0, #0xf
+ str r0, [sp, #0x14]
+ cmp r0, #0x1e
+ ble _021DA03A
+ mov r0, #0x1e
+ str r0, [sp, #0x14]
+_021DA03A:
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bge _021DA08C
+_021DA042:
+ ldr r1, [sp, #4]
+ ldr r0, [sp, #4]
+ ldrb r1, [r1, #2]
+ ldr r0, [r0, #0x14]
+ ldr r2, [sp, #0xc]
+ bl FUN_0206B5E4
+ mov r1, #0xab
+ mov r2, #0
+ add r7, r0, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021DA080
+ ldr r4, _021DA164 ; =0x021E6224
+ ldr r5, [sp, #4]
+ mov r6, #0
+_021DA064:
+ ldrh r1, [r4]
+ add r0, r7, #0
+ bl MOD14_021DA168
+ cmp r0, #0
+ beq _021DA076
+ ldrh r0, [r5, #8]
+ add r0, r0, #1
+ strh r0, [r5, #8]
+_021DA076:
+ add r6, r6, #1
+ add r4, r4, #2
+ add r5, r5, #2
+ cmp r6, #3
+ blo _021DA064
+_021DA080:
+ ldr r0, [sp, #0xc]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ str r1, [sp, #0xc]
+ cmp r1, r0
+ blt _021DA042
+_021DA08C:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x1e
+ bne _021DA0A4
+ ldr r0, [sp, #4]
+ mov r1, #0
+ strb r1, [r0, #3]
+ ldrb r0, [r0, #2]
+ add r1, r0, #1
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ strb r1, [r0, #2]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA0A4:
+ add r1, r0, #0
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ strb r1, [r0, #3]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA0AE:
+ add r0, r1, #0
+ ldr r0, [r0, #0x18]
+ bl FUN_0206B9AC
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ ble _021DA0FC
+_021DA0C2:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ ldr r0, [r0, #0x18]
+ bl FUN_0206B9B0
+ ldr r4, _021DA164 ; =0x021E6224
+ ldr r5, [sp, #4]
+ add r7, r0, #0
+ mov r6, #0
+_021DA0D4:
+ ldrh r1, [r4]
+ add r0, r7, #0
+ bl MOD14_021DA168
+ cmp r0, #0
+ beq _021DA0E6
+ ldrh r0, [r5, #8]
+ add r0, r0, #1
+ strh r0, [r5, #8]
+_021DA0E6:
+ add r6, r6, #1
+ add r4, r4, #2
+ add r5, r5, #2
+ cmp r6, #3
+ blo _021DA0D4
+ ldr r0, [sp, #8]
+ add r1, r0, #1
+ ldr r0, [sp, #0x10]
+ str r1, [sp, #8]
+ cmp r1, r0
+ blt _021DA0C2
+_021DA0FC:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _021DA128
+ ldr r4, _021DA164 ; =0x021E6224
+ ldr r5, [sp, #4]
+ mov r6, #0
+_021DA10A:
+ ldr r0, [sp, #4]
+ ldrh r1, [r4]
+ ldr r0, [r0, #0x10]
+ bl MOD14_021DA168
+ cmp r0, #0
+ beq _021DA11E
+ ldrh r0, [r5, #8]
+ add r0, r0, #1
+ strh r0, [r5, #8]
+_021DA11E:
+ add r6, r6, #1
+ add r4, r4, #2
+ add r5, r5, #2
+ cmp r6, #3
+ blo _021DA10A
+_021DA128:
+ ldr r0, [sp, #4]
+ mov r1, #1
+ strb r1, [r0, #1]
+ mov r2, #0
+ add r1, r0, #0
+_021DA132:
+ ldrh r0, [r1, #8]
+ cmp r0, #1
+ bne _021DA14A
+ ldr r0, [sp, #4]
+ add r0, r0, r2
+ ldrb r0, [r0, #4]
+ cmp r0, #1
+ bne _021DA14A
+ ldr r0, [sp, #4]
+ mov r1, #0
+ strb r1, [r0, #1]
+ b _021DA152
+_021DA14A:
+ add r2, r2, #1
+ add r1, r1, #2
+ cmp r2, #3
+ blo _021DA132
+_021DA152:
+ ldr r0, [sp, #4]
+ mov r1, #1
+ strb r1, [r0]
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DA164: .word 0x021E6224
+
+ thumb_func_start MOD14_021DA168
+MOD14_021DA168: ; 0x021DA168
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r1, #0
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [sp, #4]
+ bl FUN_02066A6C
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0xac
+ mov r2, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ bne _021DA1A8
+ mov r4, #0
+ add r7, r4, #0
+_021DA18C:
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x36
+ add r2, r7, #0
+ bl FUN_020672BC
+ cmp r6, r0
+ bne _021DA1A2
+ mov r0, #1
+ str r0, [sp, #4]
+ b _021DA1A8
+_021DA1A2:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _021DA18C
+_021DA1A8:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl FUN_02066A94
+ ldr r0, [sp, #4]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DA1B8
+MOD14_021DA1B8: ; 0x021DA1B8
+ mov r1, #0x57
+ lsl r1, r1, #2
+ ldrb r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD14_021DA1C0
+MOD14_021DA1C0: ; 0x021DA1C0
+ mov r1, #0x57
+ lsl r1, r1, #2
+ add r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq _021DA1D0
+ ldrb r0, [r1, #1]
+ bx lr
+_021DA1D0:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD14_021DA1D4
+MOD14_021DA1D4: ; 0x021DA1D4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021DA1EA
+ cmp r0, #1
+ beq _021DA1FE
+ cmp r0, #2
+ beq _021DA256
+ pop {r3, r4, r5, pc}
+_021DA1EA:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl MOD14_021DCB2C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA1FE:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA2BC
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCA38
+ mov r0, #0xa
+ bl FUN_020168D0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0206B330
+ mov r2, #0x12
+ lsl r2, r2, #4
+ add r1, r0, #0
+ ldr r0, [r4, r2]
+ add r2, #8
+ ldr r2, [r4, r2]
+ ldr r2, [r2, #0x18]
+ bl FUN_0206B484
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ ldr r0, _021DA2C0 ; =0x020FA5FC
+ ldr r1, [r4, r1]
+ mov r2, #9
+ bl FUN_02006234
+ mov r1, #0x21
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA256:
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02006290
+ cmp r0, #0
+ beq _021DA2BC
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0206B330
+ add r5, r0, #0
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02006260
+ mov r2, #0xf
+ mov r0, #3
+ mov r1, #0xa
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ mov r2, #0x12
+ lsl r2, r2, #4
+ ldr r0, [r4, r2]
+ add r2, #8
+ ldr r2, [r4, r2]
+ add r1, r5, #0
+ ldr r2, [r2, #0x18]
+ bl FUN_0206B4B4
+ mov r0, #0x12
+ lsl r0, r0, #4
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ add r1, #0x40
+ bl MOD14_021DB580
+ mov r0, #0x45
+ lsl r0, r0, #2
+ add r0, r4, r0
+ add r1, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DC76C
+ ldr r1, _021DA2C4 ; =MOD14_021D76E8
+ add r0, r4, #0
+ bl MOD14_021D7610
+_021DA2BC:
+ pop {r3, r4, r5, pc}
+ nop
+_021DA2C0: .word 0x020FA5FC
+_021DA2C4: .word MOD14_021D76E8
+
+ thumb_func_start MOD14_021DA2C8
+MOD14_021DA2C8: ; 0x021DA2C8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021DA2DE
+ cmp r0, #1
+ beq _021DA2F2
+ cmp r0, #2
+ beq _021DA334
+ pop {r3, r4, r5, pc}
+_021DA2DE:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #3
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DA2F2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #3
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA390
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl MOD14_021DCA38
+ mov r0, #0xa
+ bl FUN_020168D0
+ add r0, r5, #0
+ bl MOD14_021D83E4
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ ldr r0, _021DA394 ; =0x020FA6E8
+ add r1, r5, r1
+ mov r2, #9
+ bl FUN_02006234
+ mov r1, #0x21
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DA334:
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02006290
+ cmp r0, #0
+ beq _021DA390
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_0206B330
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02006260
+ mov r2, #0xf
+ mov r0, #3
+ mov r1, #0xa
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ add r0, r5, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021DA374
+ add r0, r5, #0
+ add r1, r5, #0
+ bl MOD14_021DA39C
+_021DA374:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ add r2, r5, #0
+ bl MOD14_021DC76C
+ ldr r1, _021DA398 ; =MOD14_021D76E8
+ add r0, r5, #0
+ bl MOD14_021D7610
+ add r0, r5, #0
+ bl MOD14_021D7674
+_021DA390:
+ pop {r3, r4, r5, pc}
+ nop
+_021DA394: .word 0x020FA6E8
+_021DA398: .word MOD14_021D76E8
+
+ thumb_func_start MOD14_021DA39C
+MOD14_021DA39C: ; 0x021DA39C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r4, #8
+ ldrb r0, [r4, #4]
+ add r5, r1, #0
+ cmp r0, #0
+ beq _021DA3B0
+ cmp r0, #1
+ beq _021DA3D2
+ pop {r3, r4, r5, pc}
+_021DA3B0:
+ mov r0, #5
+ lsl r0, r0, #6
+ ldrb r0, [r5, r0]
+ mov r1, #6
+ strb r0, [r4, #7]
+ mov r0, #7
+ ldrsb r0, [r4, r0]
+ bl _s32_div_f
+ strb r1, [r4, #5]
+ mov r0, #7
+ ldrsb r0, [r4, r0]
+ mov r1, #6
+ bl _s32_div_f
+ strb r0, [r4, #6]
+ b _021DA3DA
+_021DA3D2:
+ mov r0, #5
+ lsl r0, r0, #6
+ ldrb r0, [r5, r0]
+ strb r0, [r4, #8]
+_021DA3DA:
+ add r0, r5, #0
+ bl MOD14_021DB934
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DA3E4
+MOD14_021DA3E4: ; 0x021DA3E4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #6
+ bhi _021DA496
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DA3FC: ; jump table
+ .short _021DA40A - _021DA3FC - 2 ; case 0
+ .short _021DA41E - _021DA3FC - 2 ; case 1
+ .short _021DA488 - _021DA3FC - 2 ; case 2
+ .short _021DA522 - _021DA3FC - 2 ; case 3
+ .short _021DA546 - _021DA3FC - 2 ; case 4
+ .short _021DA58E - _021DA3FC - 2 ; case 5
+ .short _021DA5C2 - _021DA3FC - 2 ; case 6
+_021DA40A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl MOD14_021DCB2C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_021DA41E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA496
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCA38
+ mov r0, #0xa
+ bl FUN_020168D0
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0206F158
+ ldr r1, _021DA5D8 ; =0x021E6264
+ mov r2, #9
+ bl FUN_0206EFEC
+ mov r1, #0x85
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ sub r1, #0xf8
+ ldr r1, [r4, r1]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0206E314
+ ldr r0, _021DA5DC ; =0x0000004B
+ mov r1, #2
+ bl HandleLoadOverlay
+ mov r1, #0x85
+ lsl r1, r1, #2
+ ldr r0, _021DA5E0 ; =0x021EC68C
+ ldr r1, [r4, r1]
+ mov r2, #9
+ bl FUN_02006234
+ mov r1, #0x21
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_021DA488:
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02006290
+ cmp r0, #0
+ bne _021DA498
+_021DA496:
+ b _021DA5D6
+_021DA498:
+ mov r0, #0x85
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0206E37C
+ ldr r1, _021DA5E4 ; =0x021E6A00
+ str r0, [r1, #8]
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02006260
+ mov r0, #0x85
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, _021DA5DC ; =0x0000004B
+ bl UnloadOverlayByID
+ ldr r0, _021DA5E4 ; =0x021E6A00
+ ldr r6, [r0, #8]
+ cmp r6, #0
+ beq _021DA4F4
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0206F158
+ lsl r1, r6, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #1
+ mov r3, #9
+ bl FUN_0206EDD4
+ ldr r1, _021DA5E4 ; =0x021E6A00
+ add r0, r4, #0
+ ldr r1, [r1, #8]
+ add r2, r4, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl MOD14_021DC1E8
+ add r0, r4, #0
+ bl MOD14_021D7674
+_021DA4F4:
+ mov r2, #0xf
+ mov r0, #3
+ mov r1, #0xa
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ add r0, r4, r0
+ add r1, r4, #0
+ add r2, r4, #0
+ bl MOD14_021DC76C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl MOD14_021DCB2C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_021DA522:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA5D6
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl MOD14_021DCB2C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_021DA546:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA5D6
+ ldr r0, _021DA5E4 ; =0x021E6A00
+ ldr r2, [r0, #8]
+ cmp r2, #0
+ bne _021DA566
+ add r0, r4, #0
+ bl MOD14_021D7620
+ pop {r4, r5, r6, pc}
+_021DA566:
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200AE38
+ add r0, r4, #0
+ mov r1, #0x10
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_021DA58E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA5D6
+ ldr r0, _021DA5E8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021DA5D6
+ ldr r0, _021DA5EC ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_021DA5C2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DA5D6
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021DA5D6:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DA5D8: .word 0x021E6264
+_021DA5DC: .word 0x0000004B
+_021DA5E0: .word 0x021EC68C
+_021DA5E4: .word 0x021E6A00
+_021DA5E8: .word 0x021C48B8
+_021DA5EC: .word 0x000005DD
+
+ thumb_func_start MOD14_021DA5F0
+MOD14_021DA5F0: ; 0x021DA5F0
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #5
+ bhi _021DA6A2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DA608: ; jump table
+ .short _021DA614 - _021DA608 - 2 ; case 0
+ .short _021DA67A - _021DA608 - 2 ; case 1
+ .short _021DA6E4 - _021DA608 - 2 ; case 2
+ .short _021DA744 - _021DA608 - 2 ; case 3
+ .short _021DA76C - _021DA608 - 2 ; case 4
+ .short _021DA79E - _021DA608 - 2 ; case 5
+_021DA614:
+ bl MOD14_021DC430
+ ldr r1, _021DA7B4 ; =0x021E6A00
+ str r0, [r1, #4]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ cmp r0, #0
+ beq _021DA648
+ ldr r0, _021DA7B8 ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA648:
+ mov r0, #0x67
+ ldr r2, _021DA7B4 ; =0x021E6A00
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r2, [r2, #4]
+ mov r1, #0
+ bl FUN_0200AE38
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021E5D98
+ add r0, r4, #0
+ mov r1, #0x17
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA67A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DA6A2
+ add r0, r4, #0
+ bl MOD14_021E6160
+ cmp r0, #0x36
+ bgt _021DA6AC
+ bge _021DA6D2
+ mov r2, #0
+ mvn r2, r2
+ cmp r0, r2
+ bgt _021DA6A2
+ sub r1, r2, #1
+ cmp r0, r1
+ bge _021DA6A4
+_021DA6A2:
+ b _021DA7B2
+_021DA6A4:
+ beq _021DA6B2
+ cmp r0, r2
+ beq _021DA6C0
+ pop {r3, r4, r5, pc}
+_021DA6AC:
+ cmp r0, #0x37
+ beq _021DA6C0
+ pop {r3, r4, r5, pc}
+_021DA6B2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021DA6C0:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA6D2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1b
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA6E4:
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0206F158
+ ldr r1, _021DA7B4 ; =0x021E6A00
+ mov r2, #1
+ ldr r1, [r1, #4]
+ mov r3, #9
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0206ED38
+ cmp r0, #0
+ beq _021DA72A
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD14_021DC1E8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x16
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA72A:
+ add r0, r4, #0
+ mov r1, #0xe
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA744:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DA7B2
+ add r0, r4, #0
+ mov r1, #0xf
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA76C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA7B2
+ ldr r0, _021DA7BC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021DA7B2
+ ldr r0, _021DA7C0 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA79E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DA7B2
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021DA7B2:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DA7B4: .word 0x021E6A00
+_021DA7B8: .word 0x000005F3
+_021DA7BC: .word 0x021C48B8
+_021DA7C0: .word 0x000005DD
+
+ thumb_func_start MOD14_021DA7C4
+MOD14_021DA7C4: ; 0x021DA7C4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #6
+ bhi _021DA878
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DA7DC: ; jump table
+ .short _021DA7EA - _021DA7DC - 2 ; case 0
+ .short _021DA850 - _021DA7DC - 2 ; case 1
+ .short _021DA8BA - _021DA7DC - 2 ; case 2
+ .short _021DA922 - _021DA7DC - 2 ; case 3
+ .short _021DA950 - _021DA7DC - 2 ; case 4
+ .short _021DA978 - _021DA7DC - 2 ; case 5
+ .short _021DA9AA - _021DA7DC - 2 ; case 6
+_021DA7EA:
+ bl MOD14_021DC544
+ ldr r1, _021DA9C0 ; =0x021E6A00
+ str r0, [r1]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ cmp r0, #0
+ beq _021DA81E
+ ldr r0, _021DA9C4 ; =0x000005F3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA81E:
+ mov r0, #0x67
+ ldr r2, _021DA9C0 ; =0x021E6A00
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r2, [r2]
+ mov r1, #0
+ bl FUN_0200AE38
+ add r0, r4, #0
+ mov r1, #0x1a
+ bl MOD14_021DBA44
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021E5D98
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA850:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DA878
+ add r0, r4, #0
+ bl MOD14_021E6160
+ cmp r0, #0x36
+ bgt _021DA882
+ bge _021DA8A8
+ mov r2, #0
+ mvn r2, r2
+ cmp r0, r2
+ bgt _021DA878
+ sub r1, r2, #1
+ cmp r0, r1
+ bge _021DA87A
+_021DA878:
+ b _021DA9BE
+_021DA87A:
+ beq _021DA888
+ cmp r0, r2
+ beq _021DA896
+ pop {r3, r4, r5, pc}
+_021DA882:
+ cmp r0, #0x37
+ beq _021DA896
+ pop {r3, r4, r5, pc}
+_021DA888:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1c
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021DA896:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA8A8:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA8BA:
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0206F158
+ ldr r1, _021DA9C0 ; =0x021E6A00
+ mov r2, #1
+ ldr r1, [r1]
+ mov r3, #9
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0206ED38
+ cmp r0, #0
+ beq _021DA908
+ add r0, r4, #0
+ bl MOD14_021DC538
+ cmp r0, #0
+ beq _021DA8EC
+ add r0, r4, #0
+ bl MOD14_021DC310
+ mov r0, #4
+ b _021DA8F8
+_021DA8EC:
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD14_021DC1E8
+ mov r0, #3
+_021DA8F8:
+ str r0, [r5]
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x17
+ bl MOD14_021DCB2C
+ pop {r3, r4, r5, pc}
+_021DA908:
+ add r0, r4, #0
+ mov r1, #0xe
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA922:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x17
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA9BE
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x16
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA950:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DA9BE
+ add r0, r4, #0
+ mov r1, #0x1b
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA978:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DA9BE
+ ldr r0, _021DA9C8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021DA9BE
+ ldr r0, _021DA9CC ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ mov r0, #6
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DA9AA:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DA9BE
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021DA9BE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DA9C0: .word 0x021E6A00
+_021DA9C4: .word 0x000005F3
+_021DA9C8: .word 0x021C48B8
+_021DA9CC: .word 0x000005DD
+
+ thumb_func_start MOD14_021DA9D0
+MOD14_021DA9D0: ; 0x021DA9D0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #4
+ bhi _021DAA74
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DA9E8: ; jump table
+ .short _021DA9F2 - _021DA9E8 - 2 ; case 0
+ .short _021DAA06 - _021DA9E8 - 2 ; case 1
+ .short _021DAA2A - _021DA9E8 - 2 ; case 2
+ .short _021DAA42 - _021DA9E8 - 2 ; case 3
+ .short _021DAA5E - _021DA9E8 - 2 ; case 4
+_021DA9F2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DAA06:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1a
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DAA74
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x11
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DAA2A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x11
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DAA74
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DAA42:
+ ldr r0, _021DAA78 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0xf3
+ tst r1, r0
+ beq _021DAA74
+ add r0, #0x21
+ ldr r0, [r5, r0]
+ mov r1, #0x12
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DAA5E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x12
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DAA74
+ add r0, r5, #0
+ bl MOD14_021D7620
+_021DAA74:
+ pop {r3, r4, r5, pc}
+ nop
+_021DAA78: .word 0x021C48B8
+
+ thumb_func_start MOD14_021DAA7C
+MOD14_021DAA7C: ; 0x021DAA7C
+ push {r4, r5}
+ mov r3, #0x6f
+ lsl r3, r3, #2
+ mov r5, #0
+ str r5, [r0, r3]
+ add r4, r3, #5
+ strb r1, [r0, r4]
+ add r1, r3, #6
+ strh r2, [r0, r1]
+ add r1, r3, #4
+ strb r5, [r0, r1]
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DAA98
+MOD14_021DAA98: ; 0x021DAA98
+ mov r1, #0x6f
+ mov r2, #0
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ mov r2, #1
+ add r1, r1, #4
+ strb r2, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD14_021DAAA8
+MOD14_021DAAA8: ; 0x021DAAA8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ add r4, r5, r0
+ ldr r1, [r4]
+ cmp r1, #3
+ bls _021DAABA
+ b _021DABDC
+_021DAABA:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DAAC6: ; jump table
+ .short _021DAACE - _021DAAC6 - 2 ; case 0
+ .short _021DAB04 - _021DAAC6 - 2 ; case 1
+ .short _021DAB2C - _021DAAC6 - 2 ; case 2
+ .short _021DAB3E - _021DAAC6 - 2 ; case 3
+_021DAACE:
+ ldrb r0, [r4, #4]
+ cmp r0, #1
+ bne _021DAADA
+ mov r0, #1
+ str r0, [r4]
+ b _021DABDC
+_021DAADA:
+ mov r0, #5
+ ldrsb r1, [r4, r0]
+ sub r0, r0, #6
+ cmp r1, r0
+ bne _021DAAE8
+ mov r0, #0
+ strb r0, [r4, #5]
+_021DAAE8:
+ mov r1, #5
+ ldrsb r1, [r4, r1]
+ add r0, r5, #0
+ bl MOD14_021DC2DC
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1e
+ bl MOD14_021DCB2C
+ mov r0, #1
+ str r0, [r4]
+ b _021DABDC
+_021DAB04:
+ sub r0, #0xa8
+ ldr r0, [r5, r0]
+ mov r1, #0x1e
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DABDC
+ ldrh r1, [r4, #6]
+ add r0, r5, #0
+ bl MOD14_021DBA44
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB2C
+ mov r0, #2
+ str r0, [r4]
+ b _021DABDC
+_021DAB2C:
+ sub r0, #0xa8
+ ldr r0, [r5, r0]
+ mov r1, #0x18
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DABDC
+ mov r0, #3
+ str r0, [r4]
+_021DAB3E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1f
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DABDC
+ ldr r0, _021DABE0 ; =0x021C48B8
+ mov r1, #0x22
+ ldr r0, [r0, #0x48]
+ lsl r1, r1, #4
+ add r2, r0, #0
+ tst r2, r1
+ beq _021DAB86
+ mov r0, #5
+ ldrsb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, #5]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bge _021DAB6E
+ mov r0, #0x11
+ strb r0, [r4, #5]
+_021DAB6E:
+ mov r1, #5
+ ldrsb r1, [r4, r1]
+ add r0, r5, #0
+ bl MOD14_021DC2DC
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1f
+ bl MOD14_021DCB2C
+ b _021DABDC
+_021DAB86:
+ lsr r1, r1, #1
+ tst r1, r0
+ beq _021DABB6
+ mov r0, #5
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #5]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x12
+ blt _021DAB9E
+ mov r0, #0
+ strb r0, [r4, #5]
+_021DAB9E:
+ mov r1, #5
+ ldrsb r1, [r4, r1]
+ add r0, r5, #0
+ bl MOD14_021DC2DC
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x1f
+ bl MOD14_021DCB2C
+ b _021DABDC
+_021DABB6:
+ mov r1, #1
+ tst r1, r0
+ beq _021DABC6
+ ldr r0, _021DABE4 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DABC6:
+ mov r1, #2
+ tst r0, r1
+ beq _021DABDC
+ ldr r0, _021DABE4 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0
+ mvn r0, r0
+ strb r0, [r4, #5]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DABDC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DABE0: .word 0x021C48B8
+_021DABE4: .word 0x000005DD
+
+ thumb_func_start MOD14_021DABE8
+MOD14_021DABE8: ; 0x021DABE8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _021DABFE
+ cmp r1, #1
+ beq _021DAC28
+ cmp r1, #2
+ beq _021DAC68
+ pop {r3, r4, r5, pc}
+_021DABFE:
+ bl MOD14_021DC424
+ add r1, r0, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_0206B428
+ add r0, r5, #0
+ bl MOD14_021DB934
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #4
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DAC28:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #4
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DAC7E
+ add r0, r5, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DAC60
+ add r0, r5, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021DAC60
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DAC60:
+ add r0, r5, #0
+ bl MOD14_021D7620
+ pop {r3, r4, r5, pc}
+_021DAC68:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DAC7E
+ add r0, r5, #0
+ bl MOD14_021D7620
+_021DAC7E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DAC80
+MOD14_021DAC80: ; 0x021DAC80
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #5
+ bhi _021DAD02
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DAC98: ; jump table
+ .short _021DACA4 - _021DAC98 - 2 ; case 0
+ .short _021DACF2 - _021DAC98 - 2 ; case 1
+ .short _021DAEA2 - _021DAC98 - 2 ; case 2
+ .short _021DAEF8 - _021DAC98 - 2 ; case 3
+ .short _021DAF34 - _021DAC98 - 2 ; case 4
+ .short _021DAF4A - _021DAC98 - 2 ; case 5
+_021DACA4:
+ ldr r0, _021DAF60 ; =0x000005E4
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD14_021DC350
+ add r0, r4, #0
+ bl MOD14_021DC424
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD14_021DC358
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ bl MOD14_021DCB2C
+ mov r0, #0x58
+ str r0, [sp]
+ mov r0, #0x72
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #0xc0
+ mov r3, #0x38
+ bl MOD14_021DC5F8
+ mov r0, #0x81
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r1, #1
+ add r0, r0, #4
+ str r1, [r4, r0]
+ str r1, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DACF2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ bl MOD14_021DCB98
+ cmp r0, #0
+ bne _021DAD04
+_021DAD02:
+ b _021DAF5E
+_021DAD04:
+ add r0, r4, #0
+ bl MOD14_021DB9C8
+ cmp r0, #0
+ beq _021DAD34
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _021DAD34
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021DAD2C
+ ldr r1, _021DAF64 ; =MOD14_021DAF78
+ add r0, r4, #0
+ bl MOD14_021D7610
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAD2C:
+ ldr r0, _021DAF68 ; =0x000005F3
+ bl FUN_020054C8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAD34:
+ ldr r0, _021DAF6C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0xf3
+ tst r0, r1
+ beq _021DAD6C
+ ldr r0, _021DAF70 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021DC350
+ add r0, r4, #0
+ bl MOD14_021DC424
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD14_021DC358
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ bl MOD14_021DCB2C
+ mov r0, #5
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAD6C:
+ mov r1, #0x81
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ beq _021DADE4
+ add r0, r1, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021DADE4
+ sub r0, r1, #4
+ ldr r0, [r4, r0]
+ add r2, r0, #1
+ sub r0, r1, #4
+ str r2, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0x14
+ bls _021DADE4
+ add r0, r4, #0
+ bl MOD14_021DC474
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD14_021DC2C4
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ add r1, r6, #0
+ bl FUN_0206B428
+ add r0, r4, #0
+ bl MOD14_021DB934
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021DADC6
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #8
+ bl MOD14_021DCB2C
+_021DADC6:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl MOD14_021DCB2C
+ mov r0, #0x81
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #3
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DADE4:
+ mov r0, #0x72
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD14_021DC664
+ cmp r0, #1
+ beq _021DADFC
+ cmp r0, #2
+ beq _021DAE1C
+ cmp r0, #3
+ beq _021DAE76
+ pop {r3, r4, r5, r6, r7, pc}
+_021DADFC:
+ add r0, r4, #0
+ bl MOD14_021DC474
+ mov r1, #0x7f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #8
+ str r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x10
+ str r2, [r4, r0]
+ add r1, #0xc
+ str r2, [r4, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAE1C:
+ mov r0, #0x72
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD14_021DC708
+ add r6, r0, #0
+ mov r0, #0x83
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r6, r0
+ bne _021DAE34
+ b _021DAF5E
+_021DAE34:
+ sub r7, r6, r0
+ add r0, r4, #0
+ bl MOD14_021DC474
+ add r1, r7, r0
+ bpl _021DAE44
+ add r1, #0x12
+ b _021DAE4A
+_021DAE44:
+ cmp r1, #0x12
+ blt _021DAE4A
+ sub r1, #0x12
+_021DAE4A:
+ mov r0, #0x83
+ lsl r0, r0, #2
+ str r6, [r4, r0]
+ add r0, r4, #0
+ bl MOD14_021DC358
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD14_021DC368
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x29
+ bl MOD14_021DCB2C
+ ldr r0, _021DAF74 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #2
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAE76:
+ add r0, r4, #0
+ bl MOD14_021DC424
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD14_021DC474
+ cmp r5, r0
+ beq _021DAE8C
+ mov r1, #1
+ b _021DAE8E
+_021DAE8C:
+ mov r1, #0
+_021DAE8E:
+ mov r0, #0x81
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r1, r0, #4
+ mov r2, #0
+ str r2, [r4, r1]
+ mov r1, #1
+ add r0, r0, #4
+ str r1, [r4, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAEA2:
+ mov r0, #0x82
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ bne _021DAEE2
+ sub r0, #0x40
+ add r0, r4, r0
+ bl MOD14_021DC664
+ cmp r0, #3
+ bne _021DAEE2
+ add r0, r4, #0
+ bl MOD14_021DC424
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD14_021DC474
+ cmp r6, r0
+ beq _021DAECE
+ mov r1, #1
+ b _021DAED0
+_021DAECE:
+ mov r1, #0
+_021DAED0:
+ mov r0, #0x81
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r1, r0, #4
+ mov r2, #0
+ str r2, [r4, r1]
+ mov r1, #1
+ add r0, r0, #4
+ str r1, [r4, r0]
+_021DAEE2:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x29
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DAF5E
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAEF8:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DAF5E
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021DAF2E
+ add r0, r4, #0
+ bl MOD14_021DC3F0
+ cmp r0, #0
+ beq _021DAF2E
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB2C
+ mov r0, #4
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAF2E:
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAF34:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DAF5E
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAF4A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DAF5E
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021DAF5E:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DAF60: .word 0x000005E4
+_021DAF64: .word MOD14_021DAF78
+_021DAF68: .word 0x000005F3
+_021DAF6C: .word 0x021C48B8
+_021DAF70: .word 0x000005DD
+_021DAF74: .word 0x000005DC
+
+ thumb_func_start MOD14_021DAF78
+MOD14_021DAF78: ; 0x021DAF78
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r1, #0
+ add r4, r0, #0
+ ldr r0, [r6]
+ cmp r0, #3
+ bhi _021DAFFC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DAF92: ; jump table
+ .short _021DAF9A - _021DAF92 - 2 ; case 0
+ .short _021DAFEC - _021DAF92 - 2 ; case 1
+ .short _021DB144 - _021DAF92 - 2 ; case 2
+ .short _021DB19C - _021DAF92 - 2 ; case 3
+_021DAF9A:
+ ldr r0, _021DB1B4 ; =0x000005E4
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD14_021DC350
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021DC360
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021DC358
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ bl MOD14_021DCB2C
+ mov r0, #0x58
+ str r0, [sp]
+ mov r0, #0x72
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0xff
+ mov r2, #0xc0
+ mov r3, #0x38
+ bl MOD14_021DC5F8
+ mov r0, #0x81
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r1, #1
+ add r0, r0, #4
+ str r1, [r4, r0]
+ add sp, #8
+ str r1, [r6]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAFEC:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ bl MOD14_021DCB98
+ cmp r0, #0
+ bne _021DAFFE
+_021DAFFC:
+ b _021DB1B0
+_021DAFFE:
+ add r0, r4, #0
+ bl MOD14_021DB9C8
+ cmp r0, #0
+ beq _021DB01E
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _021DB01E
+ ldr r1, _021DB1B8 ; =MOD14_021DAC80
+ add r0, r4, #0
+ bl MOD14_021D7610
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB01E:
+ ldr r0, _021DB1BC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0xf3
+ tst r0, r1
+ beq _021DB046
+ ldr r0, _021DB1C0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021DC350
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ bl MOD14_021DCB2C
+ mov r0, #3
+ str r0, [r6]
+_021DB046:
+ add r0, r4, #0
+ bl MOD14_021DB1C8
+ cmp r0, #0
+ beq _021DB072
+ ldr r0, _021DB1C0 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x2a
+ bl MOD14_021DCB2C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x27
+ bl MOD14_021DCB2C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB072:
+ mov r0, #0x72
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD14_021DC664
+ cmp r0, #1
+ beq _021DB08C
+ cmp r0, #2
+ beq _021DB0AE
+ cmp r0, #3
+ beq _021DB116
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB08C:
+ add r0, r4, #0
+ bl MOD14_021DC474
+ mov r1, #0x7f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #8
+ str r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x10
+ str r2, [r4, r0]
+ add r1, #0xc
+ add sp, #8
+ str r2, [r4, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB0AE:
+ mov r0, #0x72
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD14_021DC708
+ add r7, r0, #0
+ mov r0, #0x83
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r7, r0
+ beq _021DB1B0
+ sub r0, r7, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021DC474
+ ldr r1, [sp, #4]
+ add r5, r1, r0
+ bpl _021DB0D8
+ add r5, #8
+ b _021DB0DE
+_021DB0D8:
+ cmp r5, #8
+ blt _021DB0DE
+ sub r5, #8
+_021DB0DE:
+ mov r0, #0x83
+ lsl r0, r0, #2
+ str r7, [r4, r0]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD14_021DC358
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD14_021DC360
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021DC368
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x29
+ bl MOD14_021DCB2C
+ ldr r0, _021DB1C4 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #2
+ add sp, #8
+ str r0, [r6]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB116:
+ add r0, r4, #0
+ bl MOD14_021DC424
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD14_021DC474
+ cmp r5, r0
+ beq _021DB12C
+ mov r1, #1
+ b _021DB12E
+_021DB12C:
+ mov r1, #0
+_021DB12E:
+ mov r0, #0x81
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r1, r0, #4
+ mov r2, #0
+ str r2, [r4, r1]
+ mov r1, #1
+ add r0, r0, #4
+ add sp, #8
+ str r1, [r4, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB144:
+ mov r0, #0x82
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ bne _021DB184
+ sub r0, #0x40
+ add r0, r4, r0
+ bl MOD14_021DC664
+ cmp r0, #3
+ bne _021DB184
+ add r0, r4, #0
+ bl MOD14_021DC424
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD14_021DC474
+ cmp r5, r0
+ beq _021DB170
+ mov r1, #1
+ b _021DB172
+_021DB170:
+ mov r1, #0
+_021DB172:
+ mov r0, #0x81
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r1, r0, #4
+ mov r2, #0
+ str r2, [r4, r1]
+ mov r1, #1
+ add r0, r0, #4
+ str r1, [r4, r0]
+_021DB184:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x29
+ bl MOD14_021DCB98
+ cmp r0, #0
+ beq _021DB1B0
+ mov r0, #1
+ add sp, #8
+ str r0, [r6]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB19C:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD14_021DCBC0
+ cmp r0, #0
+ beq _021DB1B0
+ add r0, r4, #0
+ bl MOD14_021D7620
+_021DB1B0:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DB1B4: .word 0x000005E4
+_021DB1B8: .word MOD14_021DAC80
+_021DB1BC: .word 0x021C48B8
+_021DB1C0: .word 0x000005DD
+_021DB1C4: .word 0x000005DC
+
+ thumb_func_start MOD14_021DB1C8
+MOD14_021DB1C8: ; 0x021DB1C8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x62
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r0, #8
+ ldr r0, [r4, r0]
+ bl FUN_02022144
+ mov r0, #0x62
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #8
+ beq _021DB1EA
+ mov r0, #1
+ pop {r4, pc}
+_021DB1EA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB1F0
+MOD14_021DB1F0: ; 0x021DB1F0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x62
+ add r4, r2, #0
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #8
+ bne _021DB21E
+ cmp r1, #0
+ bne _021DB21E
+ add r0, r4, #0
+ bl MOD14_021DC47C
+ add r1, r0, r5
+ cmp r1, #8
+ blo _021DB212
+ sub r1, #8
+_021DB212:
+ add r0, r4, #0
+ bl MOD14_021DC370
+ mov r0, #0x62
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+_021DB21E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DB220
+MOD14_021DB220: ; 0x021DB220
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl FUN_02022510
+ mov r1, #0x12
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ ldr r2, [r4]
+ sub r0, r1, #4
+ str r2, [r5, r0]
+ ldr r0, [r4]
+ bl FUN_0206BB1C
+ mov r1, #0x49
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, [r4]
+ bl LoadPlayerDataAddress
+ mov r1, #0x69
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ sub r1, #0x8c
+ str r4, [r5, r1]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xf
+ mov r3, #9
+ str r0, [r4, #8]
+ bl FUN_0200A86C
+ mov r2, #0x63
+ lsl r2, r2, #2
+ str r0, [r5, r2]
+ mov r0, #1
+ mov r1, #0x1a
+ sub r2, #0x22
+ mov r3, #9
+ bl FUN_0200A86C
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xbe
+ mov r3, #9
+ bl FUN_0200A86C
+ mov r2, #0x65
+ lsl r2, r2, #2
+ str r0, [r5, r2]
+ mov r0, #0
+ mov r1, #0x1a
+ add r2, #0x94
+ mov r3, #9
+ bl FUN_0200A86C
+ mov r1, #0x66
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #9
+ bl FUN_0200AA80
+ mov r1, #0x67
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ bl FUN_020669BC
+ add r1, r0, #0
+ mov r0, #9
+ bl FUN_02016998
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ sub r0, r1, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _021DB2C8
+ bl ErrorHandling
+_021DB2C8:
+ mov r0, #0x69
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #2
+ str r0, [sp]
+ mov r0, #9
+ mov r2, #0
+ mov r3, #8
+ bl FUN_02077A84
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ beq _021DB2FA
+ mov r0, #9
+ str r0, [sp]
+ ldr r0, _021DB384 ; =0x021E622A
+ ldr r2, _021DB388 ; =MOD14_021DB9F4
+ mov r1, #3
+ add r3, r5, #0
+ bl FUN_020220C4
+ b _021DB30A
+_021DB2FA:
+ mov r0, #9
+ str r0, [sp]
+ ldr r0, _021DB38C ; =0x021E6236
+ ldr r2, _021DB388 ; =MOD14_021DB9F4
+ mov r1, #4
+ add r3, r5, #0
+ bl FUN_020220C4
+_021DB30A:
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #9
+ str r0, [sp]
+ ldr r0, _021DB390 ; =0x021E6246
+ ldr r2, _021DB394 ; =MOD14_021DB1F0
+ mov r1, #7
+ add r3, r5, #0
+ bl FUN_020220C4
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ add r0, r1, #0
+ sub r0, #0x60
+ ldr r0, [r5, r0]
+ mov r2, #0
+ str r0, [r5]
+ add r0, r1, #0
+ sub r0, #0x5c
+ ldr r0, [r5, r0]
+ str r0, [r5, #4]
+ add r0, r1, #0
+ sub r0, #0x70
+ strh r2, [r5, r0]
+ sub r1, #0x6e
+ strh r2, [r5, r1]
+ add r0, r5, #0
+ ldr r1, [r4, #4]
+ add r0, #0x48
+ bl MOD14_021DB424
+ add r0, r5, #0
+ add r0, #0x4c
+ bl MOD14_021DB4C8
+ mov r0, #0x12
+ lsl r0, r0, #4
+ add r1, r5, #0
+ ldr r0, [r5, r0]
+ add r1, #0x40
+ bl MOD14_021DB49C
+ add r0, r5, #0
+ add r0, #0xa4
+ bl MOD14_021DB524
+ add r0, r5, #0
+ bl MOD14_021DB430
+ add r0, r5, #0
+ add r0, #0x14
+ bl MOD14_021DB470
+ add r5, #0x9c
+ add r0, r5, #0
+ bl MOD14_021DB574
+ pop {r3, r4, r5, pc}
+ nop
+_021DB384: .word 0x021E622A
+_021DB388: .word MOD14_021DB9F4
+_021DB38C: .word 0x021E6236
+_021DB390: .word 0x021E6246
+_021DB394: .word MOD14_021DB1F0
+
+ thumb_func_start MOD14_021DB398
+MOD14_021DB398: ; 0x021DB398
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl FUN_0202212C
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0202212C
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021DB3BE
+ bl FUN_02016A18
+_021DB3BE:
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02077AC4
+ add r0, r4, #0
+ add r0, #0x4c
+ bl MOD14_021DB500
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD14_021DB490
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD14_021DB4BC
+ add r0, r4, #0
+ add r0, #0xa4
+ bl MOD14_021DB558
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB424
+MOD14_021DB424: ; 0x021DB424
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ strh r1, [r0, #2]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB430
+MOD14_021DB430: ; 0x021DB430
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r1, #0
+ add r4, r5, #0
+ add r2, r1, #0
+ add r4, #8
+ bl MOD14_021DBA4C
+ mov r2, #0
+ add r0, r5, #0
+ strb r2, [r4, #8]
+ mov r1, #1
+ strb r1, [r4, #9]
+ add r0, #0x48
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021DB458
+ cmp r0, #4
+ beq _021DB45C
+ b _021DB462
+_021DB458:
+ strb r1, [r4, #4]
+ b _021DB464
+_021DB45C:
+ mov r0, #2
+ strb r0, [r4, #4]
+ b _021DB464
+_021DB462:
+ strb r2, [r4, #4]
+_021DB464:
+ mov r0, #1
+ strb r0, [r4, #0xb]
+ add r0, r5, #0
+ bl MOD14_021DB934
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DB470
+MOD14_021DB470: ; 0x021DB470
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_020690C8
+ add r2, r0, #0
+ mov r1, #0x1e
+ mov r0, #9
+ mul r1, r2
+ bl FUN_02016998
+ str r0, [r4]
+ mov r0, #0
+ strb r0, [r4, #8]
+ strb r0, [r4, #0xb]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB490
+MOD14_021DB490: ; 0x021DB490
+ ldr r3, _021DB498 ; =0x02016A19
+ ldr r0, [r0]
+ bx r3
+ nop
+_021DB498: .word 0x02016A19
+
+ thumb_func_start MOD14_021DB49C
+MOD14_021DB49C: ; 0x021DB49C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ bl FUN_0206B330
+ strb r0, [r4]
+ mov r0, #0x14
+ mov r1, #9
+ bl FUN_020219F4
+ str r0, [r4, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021DB580
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DB4BC
+MOD14_021DB4BC: ; 0x021DB4BC
+ ldr r3, _021DB4C4 ; =0x02021A21
+ ldr r0, [r0, #4]
+ bx r3
+ nop
+_021DB4C4: .word 0x02021A21
+
+ thumb_func_start MOD14_021DB4C8
+MOD14_021DB4C8: ; 0x021DB4C8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xc
+ mov r1, #9
+ bl FUN_020219F4
+ str r0, [r4, #0x14]
+ mov r0, #0xc
+ mov r1, #9
+ bl FUN_020219F4
+ str r0, [r4, #0x18]
+ mov r0, #0x12
+ mov r1, #9
+ bl FUN_020219F4
+ str r0, [r4, #0x1c]
+ mov r0, #0xc
+ mov r1, #9
+ bl FUN_020219F4
+ str r0, [r4, #0x20]
+ mov r0, #0x10
+ mov r1, #9
+ bl FUN_020219F4
+ str r0, [r4, #0x24]
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021DB500
+MOD14_021DB500: ; 0x021DB500
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x18]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x1c]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x20]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x24]
+ bl FUN_02021A20
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021DB524
+MOD14_021DB524: ; 0x021DB524
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r4, #0
+ strb r4, [r6]
+ strb r4, [r6, #1]
+ str r4, [r6, #4]
+ add r5, r6, #0
+ add r7, r4, #0
+_021DB534:
+ add r0, r6, r4
+ strb r7, [r0, #2]
+ mov r0, #0xc
+ mov r1, #9
+ bl FUN_020219F4
+ str r0, [r5, #0x30]
+ mov r0, #0xc
+ mov r1, #9
+ bl FUN_020219F4
+ str r0, [r5, #0x34]
+ add r4, r4, #1
+ add r5, #0x30
+ cmp r4, #2
+ blt _021DB534
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB558
+MOD14_021DB558: ; 0x021DB558
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021DB55E:
+ ldr r0, [r5, #0x30]
+ bl FUN_02021A20
+ ldr r0, [r5, #0x34]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, #0x30
+ cmp r4, #2
+ blt _021DB55E
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DB574
+MOD14_021DB574: ; 0x021DB574
+ mov r1, #0
+ strb r1, [r0]
+ strb r1, [r0, #2]
+ strb r1, [r0, #1]
+ strh r1, [r0, #4]
+ bx lr
+
+ thumb_func_start MOD14_021DB580
+MOD14_021DB580: ; 0x021DB580
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ bl FUN_0206B43C
+ strb r0, [r4, #1]
+ ldrb r1, [r4]
+ ldr r2, [r4, #4]
+ add r0, r5, #0
+ bl FUN_0206B484
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB59C
+MOD14_021DB59C: ; 0x021DB59C
+ push {r4, lr}
+ add r2, r0, #0
+ add r4, r2, #0
+ add r2, #0x40
+ add r0, r1, #0
+ ldrb r1, [r2]
+ add r4, #0x40
+ bl FUN_0206B43C
+ strb r0, [r4, #1]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB5B4
+MOD14_021DB5B4: ; 0x021DB5B4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r4, #0
+ tst r2, r1
+ beq _021DB5D0
+ add r0, r5, #0
+ sub r1, #0x21
+ add r2, r4, #0
+ bl MOD14_021DB61C
+ add r4, r0, #0
+ b _021DB60C
+_021DB5D0:
+ mov r1, #0x10
+ tst r1, r0
+ beq _021DB5E4
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ bl MOD14_021DB61C
+ add r4, r0, #0
+ b _021DB60C
+_021DB5E4:
+ mov r2, #0x40
+ add r1, r0, #0
+ tst r1, r2
+ beq _021DB5FA
+ add r0, r5, #0
+ add r1, r4, #0
+ sub r2, #0x41
+ bl MOD14_021DB61C
+ add r4, r0, #0
+ b _021DB60C
+_021DB5FA:
+ mov r1, #0x80
+ tst r0, r1
+ beq _021DB60C
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD14_021DB61C
+ add r4, r0, #0
+_021DB60C:
+ cmp r4, #1
+ bne _021DB616
+ add r0, r5, #0
+ bl MOD14_021DB934
+_021DB616:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB61C
+MOD14_021DB61C: ; 0x021DB61C
+ push {r4, lr}
+ add r3, r0, #0
+ add r3, #8
+ ldrb r4, [r3, #4]
+ cmp r4, #4
+ bhi _021DB66A
+ add r4, r4, r4
+ add r4, pc
+ ldrh r4, [r4, #6]
+ lsl r4, r4, #0x10
+ asr r4, r4, #0x10
+ add pc, r4
+_021DB634: ; jump table
+ .short _021DB63E - _021DB634 - 2 ; case 0
+ .short _021DB720 - _021DB634 - 2 ; case 1
+ .short _021DB69E - _021DB634 - 2 ; case 2
+ .short _021DB6F4 - _021DB634 - 2 ; case 3
+ .short _021DB6C8 - _021DB634 - 2 ; case 4
+_021DB63E:
+ cmp r1, #0
+ beq _021DB666
+ mov r2, #5
+ ldrsb r4, [r3, r2]
+ add r1, r4, r1
+ strb r1, [r3, #5]
+ ldrsb r1, [r3, r2]
+ cmp r1, #0
+ bge _021DB654
+ add r1, r2, #0
+ b _021DB65A
+_021DB654:
+ cmp r1, #6
+ blt _021DB65A
+ mov r1, #0
+_021DB65A:
+ mov r2, #6
+ ldrsb r2, [r3, r2]
+ bl MOD14_021DBA4C
+ mov r0, #1
+ pop {r4, pc}
+_021DB666:
+ cmp r2, #0
+ bne _021DB66C
+_021DB66A:
+ b _021DB78A
+_021DB66C:
+ mov r1, #6
+ ldrsb r1, [r3, r1]
+ add r2, r1, r2
+ bpl _021DB67C
+ mov r1, #2
+ mov r2, #0
+ strb r1, [r3, #4]
+ b _021DB692
+_021DB67C:
+ cmp r2, #4
+ ble _021DB692
+ mov r1, #5
+ ldrsb r1, [r3, r1]
+ mov r2, #4
+ cmp r1, #5
+ bne _021DB68E
+ add r1, r2, #0
+ b _021DB690
+_021DB68E:
+ mov r1, #3
+_021DB690:
+ strb r1, [r3, #4]
+_021DB692:
+ mov r1, #5
+ ldrsb r1, [r3, r1]
+ bl MOD14_021DBA4C
+ mov r0, #1
+ pop {r4, pc}
+_021DB69E:
+ cmp r2, #0
+ ble _021DB6B2
+ mov r2, #0
+ strb r2, [r3, #4]
+ mov r1, #5
+ ldrsb r1, [r3, r1]
+ bl MOD14_021DBA4C
+ mov r0, #1
+ pop {r4, pc}
+_021DB6B2:
+ bge _021DB78A
+ mov r0, #5
+ ldrsb r0, [r3, r0]
+ cmp r0, #5
+ bne _021DB6C0
+ mov r0, #4
+ b _021DB6C2
+_021DB6C0:
+ mov r0, #3
+_021DB6C2:
+ strb r0, [r3, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021DB6C8:
+ cmp r2, #0
+ bge _021DB6DE
+ mov r1, #0
+ strb r1, [r3, #4]
+ mov r1, #5
+ ldrsb r1, [r3, r1]
+ mov r2, #4
+ bl MOD14_021DBA4C
+ mov r0, #1
+ pop {r4, pc}
+_021DB6DE:
+ ble _021DB6E8
+ mov r0, #2
+ strb r0, [r3, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021DB6E8:
+ cmp r1, #0
+ beq _021DB78A
+ mov r0, #3
+ strb r0, [r3, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021DB6F4:
+ cmp r2, #0
+ bge _021DB70A
+ mov r1, #0
+ strb r1, [r3, #4]
+ mov r1, #5
+ ldrsb r1, [r3, r1]
+ mov r2, #4
+ bl MOD14_021DBA4C
+ mov r0, #1
+ pop {r4, pc}
+_021DB70A:
+ ble _021DB714
+ mov r0, #2
+ strb r0, [r3, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021DB714:
+ cmp r1, #0
+ beq _021DB78A
+ mov r0, #4
+ strb r0, [r3, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021DB720:
+ mov r4, #8
+ ldrsb r0, [r3, r4]
+ cmp r2, #0
+ bge _021DB742
+ cmp r0, #6
+ bne _021DB732
+ mov r1, #5
+ strb r1, [r3, #8]
+ b _021DB77E
+_021DB732:
+ sub r1, r0, #2
+ strb r1, [r3, #8]
+ ldrsb r1, [r3, r4]
+ cmp r1, #0
+ bge _021DB77E
+ mov r1, #6
+ strb r1, [r3, #8]
+ b _021DB77E
+_021DB742:
+ ble _021DB75E
+ cmp r0, #6
+ bne _021DB74E
+ mov r1, #0
+ strb r1, [r3, #8]
+ b _021DB77E
+_021DB74E:
+ add r1, r0, #2
+ strb r1, [r3, #8]
+ ldrsb r1, [r3, r4]
+ cmp r1, #6
+ blt _021DB77E
+ mov r1, #6
+ strb r1, [r3, #8]
+ b _021DB77E
+_021DB75E:
+ cmp r1, #0
+ bge _021DB76E
+ mov r1, #1
+ tst r1, r0
+ beq _021DB77E
+ sub r1, r0, #1
+ strb r1, [r3, #8]
+ b _021DB77E
+_021DB76E:
+ ble _021DB77E
+ cmp r0, #6
+ beq _021DB77E
+ mov r1, #1
+ tst r1, r0
+ bne _021DB77E
+ add r1, r0, #1
+ strb r1, [r3, #8]
+_021DB77E:
+ mov r1, #8
+ ldrsb r1, [r3, r1]
+ cmp r0, r1
+ beq _021DB78A
+ mov r0, #1
+ pop {r4, pc}
+_021DB78A:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB790
+MOD14_021DB790: ; 0x021DB790
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r4, #0
+ tst r2, r1
+ beq _021DB7AC
+ add r0, r5, #0
+ sub r1, #0x21
+ add r2, r4, #0
+ bl MOD14_021DB80C
+ add r4, r0, #0
+ b _021DB7FE
+_021DB7AC:
+ mov r1, #0x10
+ tst r1, r0
+ beq _021DB7C0
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ bl MOD14_021DB80C
+ add r4, r0, #0
+ b _021DB7FE
+_021DB7C0:
+ mov r2, #0x40
+ add r1, r0, #0
+ tst r1, r2
+ beq _021DB7D6
+ add r0, r5, #0
+ add r1, r4, #0
+ sub r2, #0x41
+ bl MOD14_021DB80C
+ add r4, r0, #0
+ b _021DB7FE
+_021DB7D6:
+ mov r2, #0x80
+ add r1, r0, #0
+ tst r1, r2
+ beq _021DB7EC
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD14_021DB80C
+ add r4, r0, #0
+ b _021DB7FE
+_021DB7EC:
+ lsl r1, r2, #2
+ tst r1, r0
+ beq _021DB7F6
+ mov r4, #3
+ b _021DB7FE
+_021DB7F6:
+ add r2, #0x80
+ tst r0, r2
+ beq _021DB7FE
+ mov r4, #4
+_021DB7FE:
+ cmp r4, #1
+ bne _021DB808
+ add r0, r5, #0
+ bl MOD14_021DB934
+_021DB808:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DB80C
+MOD14_021DB80C: ; 0x021DB80C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r4, r7, #0
+ add r4, #8
+ ldrb r3, [r4, #4]
+ add r6, r7, #0
+ add r6, #0x14
+ cmp r3, #0
+ bne _021DB8C6
+ cmp r1, #0
+ beq _021DB874
+ mov r2, #5
+ ldrsb r2, [r4, r2]
+ add r5, r2, r1
+ bl MOD14_021DC3F4
+ mov r1, #0xc
+ tst r0, r1
+ beq _021DB858
+ ldrb r0, [r6, #4]
+ ldrb r3, [r6, #6]
+ add r2, r5, #0
+ add r1, r5, #0
+ cmp r3, r0
+ bls _021DB844
+ sub r0, r3, r0
+ sub r1, r5, r0
+ b _021DB848
+_021DB844:
+ sub r0, r0, r3
+ add r2, r5, r0
+_021DB848:
+ cmp r1, #0
+ bge _021DB850
+ mov r0, #3
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB850:
+ cmp r2, #6
+ blt _021DB864
+ mov r0, #4
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB858:
+ cmp r5, #0
+ blt _021DB860
+ cmp r5, #6
+ blt _021DB864
+_021DB860:
+ mov r0, #2
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB864:
+ mov r2, #6
+ ldrsb r2, [r4, r2]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD14_021DBA4C
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB874:
+ cmp r2, #0
+ beq _021DB8C6
+ mov r1, #6
+ ldrsb r1, [r4, r1]
+ add r5, r1, r2
+ bl MOD14_021DC3F4
+ mov r1, #0xc
+ tst r0, r1
+ beq _021DB8AA
+ ldrb r0, [r6, #5]
+ ldrb r3, [r6, #7]
+ add r2, r5, #0
+ add r1, r5, #0
+ cmp r3, r0
+ bls _021DB89A
+ sub r0, r3, r0
+ sub r1, r5, r0
+ b _021DB89E
+_021DB89A:
+ sub r0, r0, r3
+ add r2, r5, r0
+_021DB89E:
+ cmp r1, #0
+ blt _021DB8A6
+ cmp r2, #5
+ blt _021DB8B6
+_021DB8A6:
+ mov r0, #2
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB8AA:
+ cmp r5, #0
+ blt _021DB8B2
+ cmp r5, #5
+ blt _021DB8B6
+_021DB8B2:
+ mov r0, #2
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB8B6:
+ mov r1, #5
+ ldrsb r1, [r4, r1]
+ add r0, r7, #0
+ add r2, r5, #0
+ bl MOD14_021DBA4C
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB8C6:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB8D0
+MOD14_021DB8D0: ; 0x021DB8D0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #8
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ bne _021DB8FA
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ strb r0, [r4, #8]
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ cmp r0, #6
+ blt _021DB8FE
+ mov r0, #5
+ strb r0, [r4, #8]
+ b _021DB8FE
+_021DB8FA:
+ mov r0, #0
+ strb r0, [r4, #8]
+_021DB8FE:
+ ldrb r0, [r4, #4]
+ strb r0, [r4, #9]
+ mov r0, #1
+ strb r0, [r4, #4]
+ add r0, r5, #0
+ bl MOD14_021DB934
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB910
+MOD14_021DB910: ; 0x021DB910
+ push {r4, lr}
+ add r4, r0, #0
+ add r3, r4, #0
+ add r3, #8
+ mov r1, #0
+ strb r1, [r3, #4]
+ mov r2, #9
+ ldrsb r2, [r3, r2]
+ cmp r2, #0
+ beq _021DB92A
+ add r2, r1, #0
+ bl MOD14_021DBA4C
+_021DB92A:
+ add r0, r4, #0
+ bl MOD14_021DB934
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB934
+MOD14_021DB934: ; 0x021DB934
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #8
+ mov r1, #0
+ strb r1, [r4, #0xa]
+ ldrb r0, [r4, #4]
+ cmp r0, #4
+ bhi _021DB994
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DB952: ; jump table
+ .short _021DB95C - _021DB952 - 2 ; case 0
+ .short _021DB96C - _021DB952 - 2 ; case 1
+ .short _021DB994 - _021DB952 - 2 ; case 2
+ .short _021DB994 - _021DB952 - 2 ; case 3
+ .short _021DB994 - _021DB952 - 2 ; case 4
+_021DB95C:
+ mov r2, #7
+ ldrsb r2, [r4, r2]
+ ldr r0, [r5]
+ sub r1, r1, #1
+ bl FUN_0206B5E4
+ str r0, [r4]
+ b _021DB998
+_021DB96C:
+ mov r0, #8
+ ldrsb r6, [r4, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ cmp r6, r0
+ bge _021DB98E
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ str r0, [r4]
+ b _021DB998
+_021DB98E:
+ mov r0, #0
+ str r0, [r4]
+ b _021DB998
+_021DB994:
+ mov r0, #0
+ str r0, [r4]
+_021DB998:
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021DB9C4
+ mov r1, #0xab
+ mov r2, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021DB9C4
+ mov r0, #1
+ strb r0, [r4, #0xa]
+ add r0, r5, #0
+ bl MOD14_021DC3F4
+ mov r1, #6
+ tst r0, r1
+ bne _021DB9C4
+ ldr r1, [r4]
+ add r0, r5, #0
+ add r2, r5, #0
+ bl MOD14_021DBE88
+_021DB9C4:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DB9C8
+MOD14_021DB9C8: ; 0x021DB9C8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x61
+ ldr r1, _021DB9F0 ; =0x0000FFFF
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r0, #8
+ ldr r0, [r4, r0]
+ bl FUN_02022144
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ ldr r0, _021DB9F0 ; =0x0000FFFF
+ cmp r1, r0
+ beq _021DB9EC
+ mov r0, #1
+ pop {r4, pc}
+_021DB9EC:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021DB9F0: .word 0x0000FFFF
+
+ thumb_func_start MOD14_021DB9F4
+MOD14_021DB9F4: ; 0x021DB9F4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r4, r2, #0
+ cmp r5, #0
+ bne _021DBA0E
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r2, [r4, r0]
+ ldr r1, _021DBA40 ; =0x0000FFFF
+ cmp r2, r1
+ bne _021DBA0E
+ str r6, [r4, r0]
+_021DBA0E:
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ bne _021DBA3C
+ cmp r6, #2
+ bne _021DBA3C
+ cmp r5, #0
+ beq _021DBA2A
+ cmp r5, #1
+ beq _021DBA34
+ cmp r5, #3
+ beq _021DBA34
+ pop {r4, r5, r6, pc}
+_021DBA2A:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD14_021DC1A0
+ pop {r4, r5, r6, pc}
+_021DBA34:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021DC1A0
+_021DBA3C:
+ pop {r4, r5, r6, pc}
+ nop
+_021DBA40: .word 0x0000FFFF
+
+ thumb_func_start MOD14_021DBA44
+MOD14_021DBA44: ; 0x021DBA44
+ mov r2, #0x43
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ bx lr
+
+ thumb_func_start MOD14_021DBA4C
+MOD14_021DBA4C: ; 0x021DBA4C
+ add r0, #8
+ mov r3, #6
+ strb r1, [r0, #5]
+ mul r3, r2
+ strb r2, [r0, #6]
+ add r1, r1, r3
+ strb r1, [r0, #7]
+ bx lr
+
+ thumb_func_start MOD14_021DBA5C
+MOD14_021DBA5C: ; 0x021DBA5C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r7, r0, #0
+ add r4, r6, #0
+ add r5, r6, #0
+ add r0, r6, #0
+ add r4, #0x14
+ add r5, #8
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DBA98
+ bl FUN_020690C8
+ add r2, r0, #0
+ ldr r0, [r5]
+ ldr r1, [r4]
+ bl MIi_CpuCopy32
+ mov r0, #0x12
+ mov r2, #7
+ lsl r0, r0, #4
+ mov r1, #0
+ ldrsb r2, [r5, r2]
+ ldr r0, [r7, r0]
+ mvn r1, r1
+ bl FUN_0206B2FC
+ mov r0, #0
+ b _021DBAB6
+_021DBA98:
+ bl FUN_020690C4
+ add r2, r0, #0
+ ldr r0, [r5]
+ ldr r1, [r4]
+ bl MIi_CpuCopy32
+ mov r0, #0x49
+ mov r1, #8
+ lsl r0, r0, #2
+ ldrsb r1, [r5, r1]
+ ldr r0, [r7, r0]
+ bl FUN_0206B938
+ mov r0, #1
+_021DBAB6:
+ strb r0, [r4, #0xb]
+ ldr r1, [r4]
+ add r0, r6, #0
+ bl MOD14_021DC1A8
+ mov r0, #5
+ ldrsb r0, [r5, r0]
+ strb r0, [r4, #6]
+ ldrb r0, [r4, #6]
+ strb r0, [r4, #4]
+ mov r0, #6
+ ldrsb r0, [r5, r0]
+ strb r0, [r4, #7]
+ ldrb r0, [r4, #7]
+ strb r0, [r4, #5]
+ mov r0, #2
+ strb r0, [r6, #0x13]
+ mov r0, #0
+ strb r0, [r6, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DBAE0
+MOD14_021DBAE0: ; 0x021DBAE0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r6, r1, #0
+ add r7, r0, #0
+ add r6, #0x14
+ mov r0, #1
+ strb r0, [r6, #0xa]
+ add r0, r1, #0
+ str r1, [sp, #4]
+ bl MOD14_021DC3E0
+ str r0, [sp, #0x14]
+ bl FUN_020690C8
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #4]
+ add r1, sp, #0x30
+ ldr r5, [r0, #0x14]
+ add r0, sp, #0x24
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r2, sp, #0x2c
+ add r3, sp, #0x28
+ bl MOD14_021DC4A4
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0x24]
+ str r0, [sp, #0x18]
+ cmp r0, r1
+ bhi _021DBBA6
+ mov r1, #6
+ mul r1, r0
+ str r1, [sp, #8]
+_021DBB26:
+ ldr r1, [sp, #0x30]
+ ldr r0, [sp, #8]
+ str r1, [sp, #0x1c]
+ add r4, r1, r0
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x1c]
+ cmp r0, r1
+ bhi _021DBB94
+_021DBB36:
+ mov r0, #0x12
+ lsl r0, r0, #4
+ mov r1, #0
+ ldr r0, [r7, r0]
+ mvn r1, r1
+ add r2, r4, #0
+ bl FUN_0206B5E4
+ mov r1, #0xab
+ mov r2, #0
+ str r0, [sp, #0x20]
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021DBB86
+ ldr r0, [sp, #0x20]
+ ldr r2, [sp, #0x10]
+ add r1, r5, #0
+ bl MIi_CpuCopy32
+ mov r0, #0x12
+ lsl r0, r0, #4
+ mov r1, #0
+ ldr r0, [r7, r0]
+ mvn r1, r1
+ add r2, r4, #0
+ bl FUN_0206B2FC
+ ldr r0, [sp, #0x10]
+ add r5, r5, r0
+ ldr r0, [sp, #0xc]
+ add r1, r6, r0
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ strb r4, [r1, #0xc]
+ cmp r4, r0
+ bne _021DBB86
+ mov r0, #0
+ strb r0, [r6, #0xa]
+_021DBB86:
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x2c]
+ add r0, r0, #1
+ add r4, r4, #1
+ str r0, [sp, #0x1c]
+ cmp r0, r1
+ bls _021DBB36
+_021DBB94:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0x24]
+ add r0, r0, #6
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, r1
+ bls _021DBB26
+_021DBBA6:
+ ldr r0, [sp, #0xc]
+ strb r0, [r6, #8]
+ ldr r1, [sp, #0x28]
+ mov r0, #6
+ ldr r2, [sp, #0x30]
+ mul r0, r1
+ add r0, r2, r0
+ strb r0, [r6, #9]
+ ldr r0, [sp, #4]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0
+ beq _021DBBC2
+ mov r1, #4
+ b _021DBBC4
+_021DBBC2:
+ mov r1, #8
+_021DBBC4:
+ ldr r0, [sp, #4]
+ strb r1, [r0, #0x13]
+ mov r1, #0
+ strb r1, [r0, #0x12]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021DBBD0
+MOD14_021DBBD0: ; 0x021DBBD0
+ add r2, r1, #0
+ add r1, #8
+ mov r0, #5
+ ldrsb r0, [r1, r0]
+ add r2, #0x14
+ strb r0, [r2, #6]
+ ldrb r0, [r2, #6]
+ strb r0, [r2, #4]
+ mov r0, #6
+ ldrsb r0, [r1, r0]
+ strb r0, [r2, #7]
+ ldrb r0, [r2, #7]
+ strb r0, [r2, #5]
+ bx lr
+
+ thumb_func_start MOD14_021DBBEC
+MOD14_021DBBEC: ; 0x021DBBEC
+ add r2, r1, #0
+ add r1, #8
+ mov r0, #5
+ ldrsb r0, [r1, r0]
+ add r2, #0x14
+ strb r0, [r2, #6]
+ mov r0, #6
+ ldrsb r0, [r1, r0]
+ strb r0, [r2, #7]
+ bx lr
+
+ thumb_func_start MOD14_021DBC00
+MOD14_021DBC00: ; 0x021DBC00
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r5, r0, #0
+ add r4, r7, #0
+ add r6, r7, #0
+ add r0, r7, #0
+ add r4, #0x14
+ add r6, #8
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DBC42
+ mov r0, #0x12
+ mov r2, #7
+ lsl r0, r0, #4
+ mov r1, #0
+ ldrsb r2, [r6, r2]
+ ldr r0, [r5, r0]
+ ldr r3, [r4]
+ mvn r1, r1
+ bl FUN_0206B2B0
+ mov r0, #0x12
+ mov r2, #7
+ lsl r0, r0, #4
+ mov r1, #0
+ ldrsb r2, [r6, r2]
+ ldr r0, [r5, r0]
+ mvn r1, r1
+ bl FUN_0206B5E4
+ add r1, r0, #0
+ b _021DBC8A
+_021DBC42:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0
+ beq _021DBC56
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r4]
+ bl FUN_0206B900
+ b _021DBC70
+_021DBC56:
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ ldr r0, [r4]
+ ldr r1, [r5, r1]
+ bl FUN_02069A64
+ mov r1, #0x49
+ lsl r1, r1, #2
+ ldr r0, [r5, r1]
+ add r1, #0x7c
+ ldr r1, [r5, r1]
+ bl FUN_0206B900
+_021DBC70:
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ add r1, r0, #0
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ sub r1, r1, #1
+ bl FUN_0206B9B0
+ add r1, r0, #0
+_021DBC8A:
+ add r0, r7, #0
+ bl MOD14_021DC1A8
+ add r0, r5, #0
+ bl MOD14_021DB934
+ mov r0, #1
+ strb r0, [r7, #0x13]
+ strb r0, [r7, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DBCA0
+MOD14_021DBCA0: ; 0x021DBCA0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ add r7, r0, #0
+ add r6, #0x14
+ add r0, r1, #0
+ str r1, [sp]
+ bl MOD14_021DC4F8
+ str r0, [sp, #8]
+ ldrb r0, [r6, #9]
+ str r0, [sp, #0xc]
+ bl FUN_020690C8
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ mov r5, #0
+ ldr r4, [r0, #0x14]
+ ldrb r0, [r6, #8]
+ cmp r0, #0
+ ble _021DBCF4
+_021DBCCA:
+ add r3, r6, r5
+ mov r2, #0xc
+ ldrsb r3, [r3, r2]
+ ldr r2, [sp, #0xc]
+ mov r0, #0x12
+ lsl r0, r0, #4
+ sub r3, r3, r2
+ ldr r2, [sp, #8]
+ mov r1, #0
+ add r2, r2, r3
+ ldr r0, [r7, r0]
+ mvn r1, r1
+ add r3, r4, #0
+ bl FUN_0206B2B0
+ ldr r0, [sp, #4]
+ add r5, r5, #1
+ add r4, r4, r0
+ ldrb r0, [r6, #8]
+ cmp r5, r0
+ blt _021DBCCA
+_021DBCF4:
+ ldr r0, [sp]
+ bl MOD14_021DC3E0
+ add r2, r0, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ mov r1, #0
+ ldr r0, [r7, r0]
+ mvn r1, r1
+ bl FUN_0206B5E4
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD14_021DC1A8
+ add r0, r7, #0
+ bl MOD14_021DB934
+ mov r1, #0
+ ldr r0, [sp]
+ strb r1, [r6, #8]
+ ldrb r0, [r0, #0x13]
+ cmp r0, #4
+ bne _021DBD26
+ mov r1, #1
+_021DBD26:
+ ldr r0, [sp]
+ strb r1, [r0, #0x12]
+ mov r1, #1
+ strb r1, [r0, #0x13]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DBD34
+MOD14_021DBD34: ; 0x021DBD34
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ str r1, [sp]
+ add r5, r0, #0
+ add r4, #0x14
+ bl FUN_020690C4
+ add r6, r0, #0
+ ldr r0, [sp]
+ add r2, r6, #0
+ ldr r7, [r0, #0x14]
+ str r0, [sp, #4]
+ add r0, #8
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r1, r7, r6
+ bl MIi_CpuCopy32
+ ldr r0, [sp]
+ ldr r1, [sp]
+ ldr r0, [r0, #8]
+ ldr r1, [r1, #0x14]
+ add r2, r6, #0
+ bl MIi_CpuCopy32
+ ldr r0, [sp]
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DBD8E
+ ldr r2, [sp, #4]
+ mov r0, #0x12
+ mov r3, #7
+ lsl r0, r0, #4
+ ldrsb r2, [r2, r3]
+ mov r1, #0
+ ldr r0, [r5, r0]
+ mvn r1, r1
+ add r3, r7, r6
+ bl FUN_0206B2B0
+ mov r0, #0
+ strb r0, [r4, #0xb]
+ b _021DBDC8
+_021DBD8E:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0
+ bne _021DBDA2
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ ldr r1, [r5, r1]
+ add r0, r7, r6
+ bl FUN_02069A64
+ b _021DBDB0
+_021DBDA2:
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ ldr r1, [r5, r1]
+ add r0, r7, r6
+ add r2, r6, #0
+ bl MIi_CpuCopy32
+_021DBDB0:
+ mov r3, #0x49
+ lsl r3, r3, #2
+ ldr r0, [r5, r3]
+ ldr r1, [sp, #4]
+ mov r2, #8
+ ldrsb r1, [r1, r2]
+ add r3, #0x7c
+ ldr r2, [r5, r3]
+ bl FUN_0206B9DC
+ mov r0, #1
+ strb r0, [r4, #0xb]
+_021DBDC8:
+ ldr r0, [sp]
+ ldr r1, [r4]
+ add r2, r5, #0
+ bl MOD14_021DBE88
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DBDD8
+MOD14_021DBDD8: ; 0x021DBDD8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ ldr r2, [r4, #0x14]
+ bl FUN_0206B244
+ cmp r0, #0
+ beq _021DBDFA
+ mov r0, #1
+ strb r0, [r4, #0x13]
+ add r0, r4, #0
+ bl MOD14_021DB934
+ mov r0, #1
+ pop {r4, pc}
+_021DBDFA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DBE00
+MOD14_021DBE00: ; 0x021DBE00
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ add r4, r5, #0
+ ldr r0, [r5, r0]
+ ldr r2, [r5, #8]
+ add r4, #8
+ bl FUN_0206B244
+ cmp r0, #0
+ beq _021DBE30
+ mov r0, #0x49
+ mov r1, #8
+ lsl r0, r0, #2
+ ldrsb r1, [r4, r1]
+ ldr r0, [r5, r0]
+ bl FUN_0206B938
+ add r0, r5, #0
+ bl MOD14_021DB934
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DBE30:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DBE34
+MOD14_021DBE34: ; 0x021DBE34
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ bl FUN_020669A0
+ mov r0, #1
+ strb r0, [r4, #0x13]
+ add r0, r4, #0
+ bl MOD14_021DB934
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DBE4C
+MOD14_021DBE4C: ; 0x021DBE4C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #8
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DBE70
+ mov r0, #0x12
+ mov r2, #7
+ lsl r0, r0, #4
+ mov r1, #0
+ ldrsb r2, [r4, r2]
+ ldr r0, [r5, r0]
+ mvn r1, r1
+ bl FUN_0206B2FC
+ b _021DBE7E
+_021DBE70:
+ mov r0, #0x49
+ mov r1, #8
+ lsl r0, r0, #2
+ ldrsb r1, [r4, r1]
+ ldr r0, [r5, r0]
+ bl FUN_0206B938
+_021DBE7E:
+ add r0, r5, #0
+ bl MOD14_021DB934
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DBE88
+MOD14_021DBE88: ; 0x021DBE88
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD14_021DBEAC
+ add r0, r5, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ bne _021DBEA8
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD14_021DBFF4
+_021DBEA8:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DBEAC
+MOD14_021DBEAC: ; 0x021DBEAC
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ add r4, r7, #0
+ add r0, r5, #0
+ add r6, r2, #0
+ add r4, #0x4c
+ bl FUN_02066A6C
+ str r0, [sp]
+ str r5, [r7, #0x4c]
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ strh r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020672BC
+ strh r0, [r4, #6]
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_0206BB28
+ ldrh r1, [r4, #4]
+ bl FUN_0206BB48
+ strh r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #0xac
+ mov r2, #0
+ bl FUN_020672BC
+ strb r0, [r4, #0xf]
+ ldrh r0, [r4, #4]
+ mov r1, #9
+ bl FUN_0206851C
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #8
+ mov r2, #0
+ bl FUN_020672BC
+ add r2, r0, #0
+ ldrh r1, [r4, #4]
+ add r0, r7, #0
+ bl FUN_02068824
+ strb r0, [r4, #0xa]
+ add r0, r5, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl FUN_020672BC
+ strb r0, [r4, #0xb]
+ add r0, r5, #0
+ mov r1, #0xb0
+ mov r2, #0
+ bl FUN_020672BC
+ strb r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #0xb1
+ mov r2, #0
+ bl FUN_020672BC
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ bne _021DBF68
+ add r0, r5, #0
+ mov r1, #0xaf
+ mov r2, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021DBF68
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ bl FUN_020672BC
+ add r2, r0, #0
+ ldrh r1, [r4, #4]
+ add r0, r7, #0
+ bl FUN_02068A44
+ strb r0, [r4, #0xe]
+ b _021DBF6C
+_021DBF68:
+ mov r0, #0xff
+ strb r0, [r4, #0xe]
+_021DBF6C:
+ ldr r2, [r4, #0x14]
+ add r0, r5, #0
+ mov r1, #0x76
+ bl FUN_020672BC
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ bne _021DBF8C
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldrh r1, [r4, #4]
+ ldr r0, [r6, r0]
+ ldr r2, [r4, #0x18]
+ bl FUN_0200A8E0
+ b _021DBF9A
+_021DBF8C:
+ ldr r0, [r4, #0x18]
+ ldr r1, [r4, #0x14]
+ bl FUN_02021A74
+ ldr r0, [r4, #0x14]
+ bl FUN_02021A4C
+_021DBF9A:
+ ldrh r1, [r4, #6]
+ cmp r1, #0
+ beq _021DBFAA
+ ldr r0, [r4, #0x1c]
+ mov r2, #9
+ bl FUN_0206E768
+ b _021DBFB8
+_021DBFAA:
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ ldr r2, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200A8E0
+_021DBFB8:
+ add r0, r5, #0
+ bl FUN_0206885C
+ add r1, r0, #0
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ ldr r2, [r4, #0x20]
+ bl FUN_0200A8E0
+ add r0, r5, #0
+ mov r1, #0xa
+ mov r2, #0
+ bl FUN_020672BC
+ add r1, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ ldr r2, [r4, #0x24]
+ bl FUN_0200A8E0
+ add r0, r7, #0
+ bl FUN_02068640
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl FUN_02066A94
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021DBFF4
+MOD14_021DBFF4: ; 0x021DBFF4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r0, #0xa4
+ add r5, r2, #0
+ ldrb r2, [r0]
+ str r1, [sp]
+ mov r0, #0x30
+ add r6, r7, #0
+ add r1, r7, #0
+ mul r0, r2
+ add r1, #0xac
+ ldr r2, [sp]
+ add r6, #0x4c
+ add r4, r1, r0
+ str r2, [r1, r0]
+ ldrh r0, [r6, #4]
+ strh r0, [r4, #4]
+ ldrb r0, [r6, #0xf]
+ strb r0, [r4, #6]
+ ldrb r0, [r6, #0xa]
+ strh r0, [r4, #8]
+ ldrb r0, [r4, #6]
+ cmp r0, #0
+ ldr r0, [r4, #0x28]
+ beq _021DC02E
+ ldr r1, [r6, #0x18]
+ bl FUN_02021A74
+ b _021DC034
+_021DC02E:
+ ldr r1, [r6, #0x14]
+ bl FUN_02021A74
+_021DC034:
+ ldr r0, [r4, #0x2c]
+ ldr r1, [r6, #0x20]
+ bl FUN_02021A74
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ ldr r0, [sp]
+ ldr r1, [r5, r1]
+ bl FUN_02069A64
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_020669D4
+ add r6, r0, #0
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0xa3
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0xa]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0xa4
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0xc]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0xa5
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0xe]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0xa7
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x10]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0xa8
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x12]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0xa6
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x14]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x13
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x16]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x14
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x18]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x15
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x1a]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x16
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x1c]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x17
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x1e]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x20]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x37
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x22]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x38
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x24]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x39
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x26]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020671BC
+ strb r0, [r4, #7]
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_02066A20
+ add r0, r7, #0
+ add r0, #0xa4
+ ldrb r0, [r0]
+ mov r1, #1
+ add r0, r7, r0
+ add r0, #0xa6
+ strb r1, [r0]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021DC170
+MOD14_021DC170: ; 0x021DC170
+ add r1, r0, #0
+ add r1, #0xa4
+ ldrb r2, [r1]
+ mov r1, #1
+ add r0, #0xa4
+ eor r1, r2
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD14_021DC180
+MOD14_021DC180: ; 0x021DC180
+ add r1, r0, #0
+ add r1, #0xa5
+ ldrb r1, [r1]
+ add r2, r1, #1
+ add r1, r0, #0
+ add r1, #0xa5
+ strb r2, [r1]
+ add r1, r0, #0
+ add r1, #0xa5
+ ldrb r1, [r1]
+ cmp r1, #3
+ blo _021DC19E
+ mov r1, #0
+ add r0, #0xa5
+ strb r1, [r0]
+_021DC19E:
+ bx lr
+
+ thumb_func_start MOD14_021DC1A0
+MOD14_021DC1A0: ; 0x021DC1A0
+ add r0, #0xa8
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC1A8
+MOD14_021DC1A8: ; 0x021DC1A8
+ str r1, [r0, #0x4c]
+ bx lr
+
+ thumb_func_start MOD14_021DC1AC
+MOD14_021DC1AC: ; 0x021DC1AC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ add r0, #0x96
+ ldrb r1, [r0]
+ add r2, r4, #0
+ add r0, sp, #0
+ add r2, #0x4c
+ strb r1, [r0]
+ strb r1, [r2, #0xb]
+ ldr r0, [r4, #0x4c]
+ mov r1, #0xb
+ add r2, sp, #0
+ bl FUN_02067960
+ add r0, r4, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DC1E2
+ add r0, r4, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021DC1E2
+ bl FUN_02022830
+_021DC1E2:
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC1E8
+MOD14_021DC1E8: ; 0x021DC1E8
+ push {r0, r1, r2, r3}
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r0, sp, #0x18
+ add r4, r5, #0
+ ldrh r1, [r0, #4]
+ add r4, #0x4c
+ add r6, r2, #0
+ strh r1, [r4, #6]
+ cmp r1, #0
+ beq _021DC20A
+ ldr r0, [r4, #0x1c]
+ mov r2, #9
+ bl FUN_0206E768
+ b _021DC218
+_021DC20A:
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ ldr r2, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200A8E0
+_021DC218:
+ add r0, r5, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DC24A
+ add r0, r5, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021DC24A
+ add r0, r5, #0
+ bl MOD14_021DC3E0
+ add r2, r0, #0
+ add r0, sp, #0x1c
+ str r0, [sp]
+ mov r0, #0x12
+ lsl r0, r0, #4
+ mov r1, #0
+ ldr r0, [r6, r0]
+ mvn r1, r1
+ mov r3, #6
+ bl FUN_0206B598
+ b _021DC254
+_021DC24A:
+ ldr r0, [r4]
+ mov r1, #6
+ add r2, sp, #0x1c
+ bl FUN_02067960
+_021DC254:
+ ldr r0, [r4]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ ldr r1, _021DC274 ; =0x000001ED
+ cmp r0, r1
+ bne _021DC26A
+ ldr r0, [r4]
+ bl FUN_02069ECC
+_021DC26A:
+ add sp, #4
+ pop {r3, r4, r5, r6}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+_021DC274: .word 0x000001ED
+
+ thumb_func_start MOD14_021DC278
+MOD14_021DC278: ; 0x021DC278
+ add r2, r0, #0
+ add r2, #0x40
+ ldrb r2, [r2]
+ add r1, r0, #0
+ add r1, #0x40
+ add r3, r2, #1
+ add r2, r0, #0
+ add r2, #0x40
+ strb r3, [r2]
+ add r2, r0, #0
+ add r2, #0x40
+ ldrb r2, [r2]
+ cmp r2, #0x12
+ blo _021DC298
+ mov r2, #0
+ strb r2, [r1]
+_021DC298:
+ ldr r3, _021DC2A0 ; =MOD14_021DB580
+ ldr r0, [r0]
+ bx r3
+ nop
+_021DC2A0: .word MOD14_021DB580
+
+ thumb_func_start MOD14_021DC2A4
+MOD14_021DC2A4: ; 0x021DC2A4
+ add r2, r0, #0
+ add r2, #0x40
+ ldrb r2, [r2]
+ add r1, r0, #0
+ add r1, #0x40
+ cmp r2, #0
+ beq _021DC2B6
+ sub r2, r2, #1
+ b _021DC2B8
+_021DC2B6:
+ mov r2, #0x11
+_021DC2B8:
+ ldr r3, _021DC2C0 ; =MOD14_021DB580
+ strb r2, [r1]
+ ldr r0, [r0]
+ bx r3
+ .align 2, 0
+_021DC2C0: .word MOD14_021DB580
+
+ thumb_func_start MOD14_021DC2C4
+MOD14_021DC2C4: ; 0x021DC2C4
+ add r3, r0, #0
+ add r2, r0, #0
+ add r2, #0x40
+ strb r1, [r2]
+ add r3, #0x40
+ add r1, r3, #0
+ ldr r3, _021DC2D8 ; =MOD14_021DB580
+ ldr r0, [r0]
+ bx r3
+ nop
+_021DC2D8: .word MOD14_021DB580
+
+ thumb_func_start MOD14_021DC2DC
+MOD14_021DC2DC: ; 0x021DC2DC
+ add r0, #0x98
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC2E4
+MOD14_021DC2E4: ; 0x021DC2E4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r2, r5, #0
+ add r2, #0x4c
+ add r4, r1, #0
+ ldrh r1, [r2, #6]
+ ldr r0, _021DC30C ; =0x00000112
+ strh r1, [r5, r0]
+ add r0, #0x7a
+ ldr r0, [r4, r0]
+ ldr r2, [r2, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200A8E0
+ add r0, r5, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD14_021DC1E8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DC30C: .word 0x00000112
+
+ thumb_func_start MOD14_021DC310
+MOD14_021DC310: ; 0x021DC310
+ ldr r1, _021DC318 ; =0x00000112
+ mov r2, #0
+ strh r2, [r0, r1]
+ bx lr
+ .align 2, 0
+_021DC318: .word 0x00000112
+
+ thumb_func_start MOD14_021DC31C
+MOD14_021DC31C: ; 0x021DC31C
+ push {r4, lr}
+ ldr r3, _021DC330 ; =0x00000112
+ add r2, r1, #0
+ ldrh r1, [r0, r3]
+ mov r4, #0
+ strh r4, [r0, r3]
+ bl MOD14_021DC1E8
+ pop {r4, pc}
+ nop
+_021DC330: .word 0x00000112
+
+ thumb_func_start MOD14_021DC334
+MOD14_021DC334: ; 0x021DC334
+ push {r4, lr}
+ add r3, r0, #0
+ add r3, #0x52
+ ldr r4, _021DC34C ; =0x00000112
+ add r2, r1, #0
+ ldrh r1, [r0, r4]
+ ldrh r3, [r3]
+ strh r3, [r0, r4]
+ bl MOD14_021DC1E8
+ pop {r4, pc}
+ nop
+_021DC34C: .word 0x00000112
+
+ thumb_func_start MOD14_021DC350
+MOD14_021DC350: ; 0x021DC350
+ add r0, #0x9c
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC358
+MOD14_021DC358: ; 0x021DC358
+ add r0, #0x9e
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC360
+MOD14_021DC360: ; 0x021DC360
+ add r0, #0x9d
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC368
+MOD14_021DC368: ; 0x021DC368
+ add r0, #0xa0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC370
+MOD14_021DC370: ; 0x021DC370
+ cmp r1, #0
+ bne _021DC37C
+ mov r1, #0
+ add r0, #0x4a
+ strh r1, [r0]
+ bx lr
+_021DC37C:
+ add r2, r0, #0
+ add r2, #0x4a
+ ldrh r3, [r2]
+ mov r2, #1
+ sub r1, r1, #1
+ lsl r2, r1
+ add r1, r3, #0
+ eor r1, r2
+ add r0, #0x4a
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC394
+MOD14_021DC394: ; 0x021DC394
+ add r1, r0, #0
+ add r1, #0x49
+ ldrb r2, [r1]
+ mov r1, #1
+ add r0, #0x49
+ eor r1, r2
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD14_021DC3A4
+MOD14_021DC3A4: ; 0x021DC3A4
+ mov r1, #0x63
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD14_021DC3AC
+MOD14_021DC3AC: ; 0x021DC3AC
+ mov r1, #0x67
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD14_021DC3B4
+MOD14_021DC3B4: ; 0x021DC3B4
+ mov r1, #0x69
+ lsl r1, r1, #2
+ ldr r3, _021DC3C0 ; =0x02025085
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_021DC3C0: .word 0x02025085
+
+ thumb_func_start MOD14_021DC3C4
+MOD14_021DC3C4: ; 0x021DC3C4
+ add r0, #0x48
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC3CC
+MOD14_021DC3CC: ; 0x021DC3CC
+ ldrb r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start MOD14_021DC3D0
+MOD14_021DC3D0: ; 0x021DC3D0
+ mov r1, #0xd
+ ldrsb r0, [r0, r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC3D8
+MOD14_021DC3D8: ; 0x021DC3D8
+ mov r1, #0xe
+ ldrsb r0, [r0, r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC3E0
+MOD14_021DC3E0: ; 0x021DC3E0
+ mov r1, #0xf
+ ldrsb r0, [r0, r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC3E8
+MOD14_021DC3E8: ; 0x021DC3E8
+ mov r1, #0x10
+ ldrsb r0, [r0, r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC3F0
+MOD14_021DC3F0: ; 0x021DC3F0
+ ldrb r0, [r0, #0x12]
+ bx lr
+
+ thumb_func_start MOD14_021DC3F4
+MOD14_021DC3F4: ; 0x021DC3F4
+ ldrb r0, [r0, #0x13]
+ bx lr
+
+ thumb_func_start MOD14_021DC3F8
+MOD14_021DC3F8: ; 0x021DC3F8
+ ldrb r1, [r0, #0x13]
+ cmp r1, #0
+ beq _021DC402
+ ldrb r0, [r0, #0x1f]
+ bx lr
+_021DC402:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC408
+MOD14_021DC408: ; 0x021DC408
+ ldrb r1, [r0, #0x13]
+ cmp r1, #2
+ beq _021DC412
+ cmp r1, #4
+ bne _021DC416
+_021DC412:
+ mov r0, #1
+ bx lr
+_021DC416:
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0
+ beq _021DC420
+ mov r0, #1
+ bx lr
+_021DC420:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD14_021DC424
+MOD14_021DC424: ; 0x021DC424
+ add r0, #0x40
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC42C
+MOD14_021DC42C: ; 0x021DC42C
+ add r0, #0x4c
+ bx lr
+
+ thumb_func_start MOD14_021DC430
+MOD14_021DC430: ; 0x021DC430
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD14_021DC408
+ cmp r0, #0
+ beq _021DC442
+ add r4, #0x52
+ ldrh r0, [r4]
+ pop {r4, pc}
+_021DC442:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC448
+MOD14_021DC448: ; 0x021DC448
+ add r0, #0x40
+ bx lr
+
+ thumb_func_start MOD14_021DC44C
+MOD14_021DC44C: ; 0x021DC44C
+ ldr r0, [r0]
+ bx lr
+
+ thumb_func_start MOD14_021DC450
+MOD14_021DC450: ; 0x021DC450
+ mov r1, #0x43
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD14_021DC458
+MOD14_021DC458: ; 0x021DC458
+ ldr r0, [r0, #0x4c]
+ bx lr
+
+ thumb_func_start MOD14_021DC45C
+MOD14_021DC45C: ; 0x021DC45C
+ add r0, #0x57
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC464
+MOD14_021DC464: ; 0x021DC464
+ add r0, #0x98
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC46C
+MOD14_021DC46C: ; 0x021DC46C
+ mov r1, #0xa0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC474
+MOD14_021DC474: ; 0x021DC474
+ add r0, #0x9e
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC47C
+MOD14_021DC47C: ; 0x021DC47C
+ add r0, #0x9d
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC484
+MOD14_021DC484: ; 0x021DC484
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ beq _021DC496
+ add r4, #0x4a
+ ldrh r0, [r4]
+ pop {r4, pc}
+_021DC496:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC49C
+MOD14_021DC49C: ; 0x021DC49C
+ add r0, #0x49
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC4A4
+MOD14_021DC4A4: ; 0x021DC4A4
+ push {r3, r4, r5, r6}
+ add r0, #0x14
+ ldrb r6, [r0, #6]
+ ldrb r5, [r0, #4]
+ ldr r4, [sp, #0x10]
+ cmp r5, r6
+ bhi _021DC4B8
+ str r5, [r1]
+ ldrb r1, [r0, #6]
+ b _021DC4BC
+_021DC4B8:
+ str r6, [r1]
+ ldrb r1, [r0, #4]
+_021DC4BC:
+ str r1, [r2]
+ ldrb r2, [r0, #7]
+ ldrb r1, [r0, #5]
+ cmp r1, r2
+ bhi _021DC4D0
+ str r1, [r3]
+ ldrb r0, [r0, #7]
+ str r0, [r4]
+ pop {r3, r4, r5, r6}
+ bx lr
+_021DC4D0:
+ str r2, [r3]
+ ldrb r0, [r0, #5]
+ str r0, [r4]
+ pop {r3, r4, r5, r6}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC4DC
+MOD14_021DC4DC: ; 0x021DC4DC
+ add r0, #0x14
+ ldrb r2, [r0, #4]
+ ldrb r1, [r0, #6]
+ cmp r2, r1
+ bne _021DC4F2
+ ldrb r1, [r0, #5]
+ ldrb r0, [r0, #7]
+ cmp r1, r0
+ bne _021DC4F2
+ mov r0, #1
+ bx lr
+_021DC4F2:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC4F8
+MOD14_021DC4F8: ; 0x021DC4F8
+ push {r3, r4}
+ add r1, r0, #0
+ add r1, #0x14
+ mov r2, #0xd
+ mov r3, #0xe
+ ldrsb r2, [r0, r2]
+ ldrsb r0, [r0, r3]
+ ldrb r4, [r1, #4]
+ ldrb r3, [r1, #6]
+ cmp r3, r4
+ bls _021DC512
+ sub r3, r3, r4
+ sub r2, r2, r3
+_021DC512:
+ ldrb r3, [r1, #5]
+ ldrb r1, [r1, #7]
+ cmp r1, r3
+ bls _021DC51E
+ sub r1, r1, r3
+ sub r0, r0, r1
+_021DC51E:
+ mov r1, #6
+ mul r1, r0
+ add r0, r2, r1
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD14_021DC528
+MOD14_021DC528: ; 0x021DC528
+ add r0, #0x14
+ add r2, r0, r1
+ mov r1, #0xc
+ ldrsb r1, [r2, r1]
+ ldrb r0, [r0, #9]
+ sub r0, r1, r0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC538
+MOD14_021DC538: ; 0x021DC538
+ ldr r1, _021DC540 ; =0x00000112
+ ldrh r0, [r0, r1]
+ bx lr
+ nop
+_021DC540: .word 0x00000112
+
+ thumb_func_start MOD14_021DC544
+MOD14_021DC544: ; 0x021DC544
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD14_021DC538
+ cmp r0, #0
+ bne _021DC556
+ add r0, r4, #0
+ bl MOD14_021DC430
+_021DC556:
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021DC558
+MOD14_021DC558: ; 0x021DC558
+ add r0, #0xa4
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC560
+MOD14_021DC560: ; 0x021DC560
+ add r0, #0xa5
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC568
+MOD14_021DC568: ; 0x021DC568
+ mov r2, #0x30
+ add r0, #0xac
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC574
+MOD14_021DC574: ; 0x021DC574
+ add r0, r0, r1
+ add r0, #0xa6
+ ldrb r0, [r0]
+ bx lr
+
+ thumb_func_start MOD14_021DC57C
+MOD14_021DC57C: ; 0x021DC57C
+ add r0, #0xa8
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC584
+MOD14_021DC584: ; 0x021DC584
+ add r0, #0x5b
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DC58C
+MOD14_021DC58C: ; 0x021DC58C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ bne _021DC5B2
+ add r0, r5, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DC5C4
+ ldr r0, [r5, #0x4c]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_020672BC
+ pop {r4, r5, r6, pc}
+_021DC5B2:
+ ldrb r0, [r5, #0x1f]
+ cmp r0, #0
+ bne _021DC5C4
+ ldr r0, [r5, #0x4c]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_020672BC
+ pop {r4, r5, r6, pc}
+_021DC5C4:
+ ldr r0, [r5, #0x4c]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_020671BC
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021DC5D0
+MOD14_021DC5D0: ; 0x021DC5D0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021DC5EC
+ ldr r0, [r5, #0x4c]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_020672BC
+ pop {r4, r5, r6, pc}
+_021DC5EC:
+ ldr r0, [r5, #8]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_020671BC
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021DC5F8
+MOD14_021DC5F8: ; 0x021DC5F8
+ push {r3, r4, r5, r6}
+ ldr r4, _021DC660 ; =MOD14_021DC6C0
+ add r6, r0, #0
+ str r4, [r0, #0x30]
+ mov r4, #0
+ str r4, [r0, #0x1c]
+ str r1, [r0, #0xc]
+ str r2, [r0, #0x10]
+ str r1, [r0, #0x14]
+ str r2, [r0, #0x18]
+ str r1, [r0, #4]
+ add r4, r0, #0
+ str r2, [r0, #8]
+ lsl r2, r2, #0x18
+ mov r5, #0xfe
+ add r4, #0x28
+ strb r5, [r4]
+ lsl r4, r1, #0x18
+ lsr r4, r4, #0x18
+ add r6, #0x29
+ strb r4, [r6]
+ add r6, r0, #0
+ lsr r2, r2, #0x18
+ add r6, #0x2a
+ strb r2, [r6]
+ add r6, r0, #0
+ add r6, #0x2b
+ strb r3, [r6]
+ add r3, r0, #0
+ add r3, #0x2c
+ strb r5, [r3]
+ add r3, r0, #0
+ add r3, #0x2d
+ strb r4, [r3]
+ add r3, r0, #0
+ add r3, #0x2e
+ strb r2, [r3]
+ add r2, r0, #0
+ add r2, #0x2f
+ ldr r3, [sp, #0x10]
+ cmp r1, #0x80
+ strb r3, [r2]
+ bge _021DC656
+ mov r1, #1
+ str r1, [r0, #0x24]
+ pop {r3, r4, r5, r6}
+ bx lr
+_021DC656:
+ sub r5, #0xff
+ str r5, [r0, #0x24]
+ pop {r3, r4, r5, r6}
+ bx lr
+ nop
+_021DC660: .word MOD14_021DC6C0
+
+ thumb_func_start MOD14_021DC664
+MOD14_021DC664: ; 0x021DC664
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, #0x2c
+ bl FUN_02020A40
+ cmp r0, #1
+ bne _021DC6A4
+ add r0, r5, #0
+ add r0, #0x28
+ bl FUN_02020A40
+ cmp r0, #0
+ bne _021DC6A4
+ ldr r0, [r5, #0x1c]
+ mov r4, #1
+ cmp r0, #0
+ bne _021DC68C
+ add r6, r4, #0
+ b _021DC68E
+_021DC68C:
+ mov r6, #0
+_021DC68E:
+ add r0, sp, #4
+ add r1, sp, #0
+ bl FUN_02020AB0
+ cmp r0, #0
+ beq _021DC6A8
+ ldr r0, [sp, #4]
+ str r0, [r5, #0x14]
+ ldr r0, [sp]
+ str r0, [r5, #0x18]
+ b _021DC6A8
+_021DC6A4:
+ mov r4, #0
+ add r6, r4, #0
+_021DC6A8:
+ str r4, [r5, #0x1c]
+ ldr r3, [r5, #0x30]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ blx r3
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021DC6B8
+MOD14_021DC6B8: ; 0x021DC6B8
+ mov r2, #0
+ str r2, [r0]
+ str r1, [r0, #0x30]
+ bx lr
+
+ thumb_func_start MOD14_021DC6C0
+MOD14_021DC6C0: ; 0x021DC6C0
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r1, #0
+ beq _021DC6E8
+ cmp r2, #0
+ beq _021DC6E8
+ ldr r1, [r4, #0x14]
+ str r1, [r4, #4]
+ ldr r2, [r4, #0x18]
+ str r2, [r4, #8]
+ ldr r1, [r4, #4]
+ bl MOD14_021DC720
+ strh r0, [r4, #0x20]
+ ldr r1, _021DC6EC ; =MOD14_021DC6F0
+ add r0, r4, #0
+ bl MOD14_021DC6B8
+ mov r0, #1
+ pop {r4, pc}
+_021DC6E8:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021DC6EC: .word MOD14_021DC6F0
+
+ thumb_func_start MOD14_021DC6F0
+MOD14_021DC6F0: ; 0x021DC6F0
+ push {r3, lr}
+ cmp r1, #0
+ bne _021DC700
+ ldr r1, _021DC704 ; =MOD14_021DC6C0
+ bl MOD14_021DC6B8
+ mov r0, #3
+ pop {r3, pc}
+_021DC700:
+ mov r0, #2
+ pop {r3, pc}
+ .align 2, 0
+_021DC704: .word MOD14_021DC6C0
+
+ thumb_func_start MOD14_021DC708
+MOD14_021DC708: ; 0x021DC708
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x14]
+ ldr r2, [r4, #0x18]
+ bl MOD14_021DC720
+ add r2, r0, #0
+ ldrh r1, [r4, #0x20]
+ add r0, r4, #0
+ bl MOD14_021DC738
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021DC720
+MOD14_021DC720: ; 0x021DC720
+ add r3, r0, #0
+ ldr r0, [r3, #0x10]
+ sub r0, r2, r0
+ ldr r2, [r3, #0xc]
+ ldr r3, _021DC734 ; =0x020C5668
+ sub r1, r1, r2
+ lsl r0, r0, #0xc
+ lsl r1, r1, #0xc
+ bx r3
+ nop
+_021DC734: .word 0x020C5668
+
+ thumb_func_start MOD14_021DC738
+MOD14_021DC738: ; 0x021DC738
+ push {r4, r5}
+ sub r2, r2, r1
+ bpl _021DC746
+ mov r4, #0
+ mvn r4, r4
+ mul r2, r4
+ b _021DC748
+_021DC746:
+ mov r4, #1
+_021DC748:
+ ldr r5, _021DC768 ; =0x021E6278
+ mov r3, #0
+_021DC74C:
+ ldrh r1, [r5]
+ cmp r2, r1
+ blt _021DC75A
+ add r3, r3, #1
+ add r5, r5, #2
+ cmp r3, #2
+ blo _021DC74C
+_021DC75A:
+ ldr r1, [r0, #0x24]
+ add r0, r3, #0
+ mul r0, r4
+ mul r0, r1
+ pop {r4, r5}
+ bx lr
+ nop
+_021DC768: .word 0x021E6278
+
+ thumb_func_start MOD14_021DC76C
+MOD14_021DC76C: ; 0x021DC76C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ add r7, r0, #0
+ ldr r1, _021DC9C8 ; =0x0000B3B4
+ mov r0, #0xa
+ add r6, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021DC79A
+ mov r0, #0x16
+ lsl r0, r0, #4
+ str r5, [r4, r0]
+ mov r0, #0xa
+ bl FUN_02016B94
+ mov r1, #0x57
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _021DC79C
+_021DC79A:
+ b _021DC9C2
+_021DC79C:
+ mov r0, #0
+ add r1, r0, #0
+ mov r5, #1
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r1, #1
+ lsl r1, r1, #0x1a
+ ldr r0, [r1]
+ ldr r3, _021DC9CC ; =0xFFFFE0FF
+ and r0, r3
+ str r0, [r1]
+ ldr r0, _021DC9D0 ; =0x04001000
+ ldr r2, [r0]
+ and r2, r3
+ str r2, [r0]
+ ldr r3, [r1]
+ ldr r2, _021DC9D4 ; =0xFFCFFFEF
+ and r3, r2
+ ldr r2, _021DC9D8 ; =0x00100010
+ orr r2, r3
+ str r2, [r1]
+ ldr r2, [r0]
+ ldr r1, _021DC9D4 ; =0xFFCFFFEF
+ and r2, r1
+ mov r1, #0x10
+ orr r1, r2
+ str r1, [r0]
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r2, #0x80
+ str r2, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r1, #0xa
+ str r1, [sp, #0x10]
+ add r1, r2, #0
+ add r2, r0, #0
+ bl FUN_02009EAC
+ add r1, r4, #0
+ mov r0, #0x80
+ add r1, #0x1c
+ mov r2, #0xa
+ bl FUN_02008C9C
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ mov r2, #6
+ add r0, #0x1c
+ mov r1, #0
+ lsl r2, r2, #0x12
+ bl FUN_02008D24
+ mov r0, #0x51
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_020B19DC
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0x51
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r0, [sp, #4]
+ mov r0, #0x12
+ mov r1, #0x1a
+ add r2, r5, #0
+ mov r3, #0
+ bl FUN_02006A8C
+ mov r0, #0
+ mov r1, #0xa
+ bl FUN_02002C84
+ mov r0, #0xa
+ bl FUN_02006D98
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r1, #0
+ add r2, r4, #0
+ add r0, r1, #0
+_021DC854:
+ add r1, r1, #1
+ str r0, [r2, #8]
+ add r2, r2, #4
+ cmp r1, #4
+ blo _021DC854
+ bl MOD14_021DDEE8
+ mov r2, #0x59
+ lsl r2, r2, #2
+ str r4, [r7]
+ add r0, r4, r2
+ sub r2, r2, #4
+ ldr r2, [r4, r2]
+ ldr r3, [r4, #0x18]
+ add r1, r4, #0
+ bl MOD14_021E078C
+ and r5, r0
+ ldr r0, [r4, #0x18]
+ mov r3, #0x16
+ str r0, [sp]
+ lsl r3, r3, #4
+ mov r0, #0x43
+ ldr r2, [r4, r3]
+ sub r3, r3, #4
+ lsl r0, r0, #4
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021DDF70
+ mov r2, #0x16
+ and r5, r0
+ ldr r0, _021DC9DC ; =0x00005DC0
+ lsl r2, r2, #4
+ ldr r2, [r4, r2]
+ ldr r3, [r4, #0x18]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021DF07C
+ mov r2, #0x16
+ and r5, r0
+ ldr r0, _021DC9E0 ; =0x00006558
+ lsl r2, r2, #4
+ ldr r2, [r4, r2]
+ ldr r3, [r4, #0x18]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021E0C7C
+ and r5, r0
+ add r0, r6, #0
+ bl MOD14_021DC3A4
+ ldr r1, [r4, #0x18]
+ mov r3, #0x16
+ str r1, [sp]
+ str r0, [sp, #4]
+ lsl r3, r3, #4
+ ldr r0, _021DC9E4 ; =0x000065A0
+ ldr r2, [r4, r3]
+ sub r3, r3, #4
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021E0D90
+ and r5, r0
+ add r0, r6, #0
+ bl MOD14_021DC3A4
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD14_021DC3AC
+ str r0, [sp, #0x14]
+ add r0, r6, #0
+ bl MOD14_021DC3B4
+ ldr r1, [r4, #0x18]
+ mov r3, #0x16
+ str r1, [sp]
+ ldr r1, [sp, #0x14]
+ str r7, [sp, #4]
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ lsl r3, r3, #4
+ ldr r0, _021DC9E8 ; =0x000065F4
+ ldr r2, [r4, r3]
+ sub r3, r3, #4
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021E1750
+ and r5, r0
+ ldr r0, [r4, #0x18]
+ mov r3, #0x16
+ str r0, [sp]
+ lsl r3, r3, #4
+ ldr r0, _021DC9EC ; =0x0000662C
+ ldr r2, [r4, r3]
+ sub r3, r3, #4
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021E1D38
+ and r5, r0
+ ldr r0, [r4, #0x18]
+ mov r3, #0x16
+ str r0, [sp]
+ lsl r3, r3, #4
+ ldr r0, _021DC9F0 ; =0x0000B22C
+ ldr r2, [r4, r3]
+ sub r3, r3, #4
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021E2A38
+ and r5, r0
+ ldr r0, [r4, #0x18]
+ mov r3, #0x16
+ str r0, [sp]
+ lsl r3, r3, #4
+ ldr r0, _021DC9F4 ; =0x0000B3A4
+ ldr r2, [r4, r3]
+ sub r3, r3, #4
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021E33C8
+ and r5, r0
+ ldr r0, [r4, #0x18]
+ mov r3, #0x16
+ str r0, [sp]
+ lsl r3, r3, #4
+ ldr r0, _021DC9F8 ; =0x0000B3A8
+ ldr r2, [r4, r3]
+ sub r3, r3, #4
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021E4828
+ and r5, r0
+ add r0, r6, #0
+ bl MOD14_021DC3A4
+ ldr r1, [r4, #0x18]
+ mov r3, #0x16
+ str r1, [sp]
+ str r0, [sp, #4]
+ lsl r3, r3, #4
+ ldr r0, _021DC9FC ; =0x0000B3AC
+ ldr r2, [r4, r3]
+ sub r3, r3, #4
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r4, #0
+ bl MOD14_021E5044
+ and r5, r0
+ ldr r0, _021DCA00 ; =0x0000B3B0
+ add r1, r4, #0
+ str r6, [r4, r0]
+ ldr r0, _021DCA04 ; =MOD14_021DCA0C
+ mov r2, #2
+ bl FUN_0200CA44
+ str r0, [r4]
+ ldr r0, _021DCA08 ; =MOD14_021DCBFC
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD14_021DDD40
+ str r0, [r4, #4]
+ add sp, #0x18
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021DC9C2:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DC9C8: .word 0x0000B3B4
+_021DC9CC: .word 0xFFFFE0FF
+_021DC9D0: .word 0x04001000
+_021DC9D4: .word 0xFFCFFFEF
+_021DC9D8: .word 0x00100010
+_021DC9DC: .word 0x00005DC0
+_021DC9E0: .word 0x00006558
+_021DC9E4: .word 0x000065A0
+_021DC9E8: .word 0x000065F4
+_021DC9EC: .word 0x0000662C
+_021DC9F0: .word 0x0000B22C
+_021DC9F4: .word 0x0000B3A4
+_021DC9F8: .word 0x0000B3A8
+_021DC9FC: .word 0x0000B3AC
+_021DCA00: .word 0x0000B3B0
+_021DCA04: .word MOD14_021DCA0C
+_021DCA08: .word MOD14_021DCBFC
+
+ thumb_func_start MOD14_021DCA0C
+MOD14_021DCA0C: ; 0x021DCA0C
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD14_021DDEF4
+ bl G3X_ResetMtxStack
+ bl G3X_ResetMtxStack_2
+ bl FUN_020B02C8
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02006ED4
+ ldr r0, _021DCA34 ; =0x04000540
+ mov r1, #0
+ str r1, [r0]
+ pop {r4, pc}
+ nop
+_021DCA34: .word 0x04000540
+
+ thumb_func_start MOD14_021DCA38
+MOD14_021DCA38: ; 0x021DCA38
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ ldr r0, [r4]
+ bl FUN_0200CAB4
+ ldr r0, [r4, #4]
+ bl FUN_0200CAB4
+ ldr r0, _021DCB08 ; =0x0000B3AC
+ ldr r0, [r4, r0]
+ bl MOD14_021E50EC
+ ldr r0, _021DCB0C ; =0x0000B3A8
+ ldr r0, [r4, r0]
+ bl MOD14_021E4880
+ ldr r0, _021DCB10 ; =0x0000B3A4
+ ldr r0, [r4, r0]
+ bl MOD14_021E34C0
+ ldr r0, _021DCB14 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E2AC8
+ ldr r0, _021DCB18 ; =0x0000662C
+ add r0, r4, r0
+ bl MOD14_021E1F20
+ ldr r0, _021DCB1C ; =0x000065F4
+ add r0, r4, r0
+ bl MOD14_021E17C4
+ ldr r0, _021DCB20 ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E0E44
+ ldr r0, _021DCB24 ; =0x00006558
+ add r0, r4, r0
+ bl MOD14_021E0D3C
+ ldr r0, _021DCB28 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021DF3A8
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD14_021DDFEC
+ mov r0, #0x59
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD14_021E089C
+ ldr r0, [r4, #0x18]
+ bl FUN_0201FD58
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl FUN_020178A0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl FUN_020178A0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020178A0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl FUN_020178A0
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_020072E8
+ mov r0, #0
+ bl FUN_02002CC0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ bl FUN_02009FA0
+ pop {r4, pc}
+ .align 2, 0
+_021DCB08: .word 0x0000B3AC
+_021DCB0C: .word 0x0000B3A8
+_021DCB10: .word 0x0000B3A4
+_021DCB14: .word 0x0000B22C
+_021DCB18: .word 0x0000662C
+_021DCB1C: .word 0x000065F4
+_021DCB20: .word 0x000065A0
+_021DCB24: .word 0x00006558
+_021DCB28: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DCB2C
+MOD14_021DCB2C: ; 0x021DCB2C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ cmp r6, #0x34
+ bhs _021DCB88
+ mov r4, #0
+ add r1, r5, #0
+_021DCB3A:
+ ldr r0, [r1, #8]
+ cmp r0, #0
+ bne _021DCB7E
+ ldr r0, _021DCB90 ; =0x021E63D0
+ lsl r7, r6, #3
+ ldr r0, [r0, r7]
+ str r0, [sp]
+ ldr r1, [sp]
+ mov r0, #0xa
+ add r1, #0x14
+ bl FUN_02016998
+ add r1, r0, #0
+ beq _021DCB78
+ str r6, [r1]
+ strh r4, [r1, #4]
+ mov r0, #0
+ strh r0, [r1, #6]
+ ldr r0, [sp]
+ str r5, [r1, #0xc]
+ add r0, r1, r0
+ str r0, [r1, #0x10]
+ ldr r0, _021DCB94 ; =0x021E63CC
+ mov r2, #1
+ ldr r0, [r0, r7]
+ bl FUN_0200CA44
+ lsl r1, r4, #2
+ add r1, r5, r1
+ str r0, [r1, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DCB78:
+ bl ErrorHandling
+ pop {r3, r4, r5, r6, r7, pc}
+_021DCB7E:
+ add r4, r4, #1
+ add r1, r1, #4
+ cmp r4, #4
+ blo _021DCB3A
+ pop {r3, r4, r5, r6, r7, pc}
+_021DCB88:
+ bl ErrorHandling
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DCB90: .word 0x021E63D0
+_021DCB94: .word 0x021E63CC
+
+ thumb_func_start MOD14_021DCB98
+MOD14_021DCB98: ; 0x021DCB98
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+_021DCBA0:
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _021DCBB4
+ bl FUN_0201B6C8
+ ldr r0, [r0]
+ cmp r0, r6
+ bne _021DCBB4
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_021DCBB4:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021DCBA0
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021DCBC0
+MOD14_021DCBC0: ; 0x021DCBC0
+ mov r2, #0
+_021DCBC2:
+ ldr r1, [r0, #8]
+ cmp r1, #0
+ beq _021DCBCC
+ mov r0, #0
+ bx lr
+_021DCBCC:
+ add r2, r2, #1
+ add r0, r0, #4
+ cmp r2, #4
+ blt _021DCBC2
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD14_021DCBD8
+MOD14_021DCBD8: ; 0x021DCBD8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrh r0, [r5, #4]
+ ldr r4, [r5, #0xc]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #8]
+ bl FUN_0200CAB4
+ ldrh r0, [r5, #4]
+ mov r1, #0
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r1, [r0, #8]
+ add r0, r5, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DCBFC
+MOD14_021DCBFC: ; 0x021DCBFC
+ push {r4, lr}
+ ldr r0, _021DCC20 ; =0x000065A0
+ add r4, r1, #0
+ add r0, r4, r0
+ bl MOD14_021E0EE4
+ ldr r0, [r4, #0x18]
+ bl FUN_0201FDEC
+ bl FUN_02009F80
+ ldr r3, _021DCC24 ; =0x027E0000
+ ldr r1, _021DCC28 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .align 2, 0
+_021DCC20: .word 0x000065A0
+_021DCC24: .word 0x027E0000
+_021DCC28: .word 0x00003FF8
+
+ thumb_func_start MOD14_021DCC2C
+MOD14_021DCC2C: ; 0x021DCC2C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r0, #0x16
+ ldr r4, [r5, #0xc]
+ lsl r0, r0, #4
+ ldr r6, [r4, r0]
+ ldrh r0, [r5, #6]
+ cmp r0, #0
+ beq _021DCC44
+ cmp r0, #1
+ beq _021DCC7E
+ pop {r4, r5, r6, pc}
+_021DCC44:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD14_021DDA38
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD14_021DDB50
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD14_021DDCF0
+ add r0, r6, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021DCC76
+ ldr r0, _021DCC9C ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E0EF4
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r4, r5, r6, pc}
+_021DCC76:
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r4, r5, r6, pc}
+_021DCC7E:
+ ldr r0, _021DCC9C ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E0F28
+ cmp r0, #0
+ beq _021DCC98
+ ldr r0, _021DCC9C ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E13F0
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DCC98:
+ pop {r4, r5, r6, pc}
+ nop
+_021DCC9C: .word 0x000065A0
+
+ thumb_func_start MOD14_021DCCA0
+MOD14_021DCCA0: ; 0x021DCCA0
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ cmp r0, #0
+ beq _021DCCB4
+ cmp r0, #1
+ beq _021DCCEA
+ add sp, #0xc
+ pop {r3, r4, pc}
+_021DCCB4:
+ ldr r0, _021DCCFC ; =0x0000060D
+ bl FUN_020054C8
+ mov r0, #0xa
+ str r0, [sp]
+ ldr r0, _021DCD00 ; =0x04000050
+ mov r1, #0
+ mov r2, #0x3f
+ mov r3, #6
+ bl G2x_SetBlendAlpha_
+ mov r0, #8
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldrh r0, [r4, #6]
+ add sp, #0xc
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r3, r4, pc}
+_021DCCEA:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021DCCF8
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DCCF8:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_021DCCFC: .word 0x0000060D
+_021DCD00: .word 0x04000050
+
+ thumb_func_start MOD14_021DCD04
+MOD14_021DCD04: ; 0x021DCD04
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ cmp r0, #0
+ beq _021DCD18
+ cmp r0, #1
+ beq _021DCD48
+ add sp, #0xc
+ pop {r3, r4, pc}
+_021DCD18:
+ mov r0, #0xa
+ str r0, [sp]
+ ldr r0, _021DCD5C ; =0x04000050
+ mov r1, #0
+ mov r2, #0x3f
+ mov r3, #6
+ bl G2x_SetBlendAlpha_
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldrh r0, [r4, #6]
+ add sp, #0xc
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r3, r4, pc}
+_021DCD48:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021DCD56
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DCD56:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_021DCD5C: .word 0x04000050
+
+ thumb_func_start MOD14_021DCD60
+MOD14_021DCD60: ; 0x021DCD60
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ cmp r0, #0
+ beq _021DCD74
+ cmp r0, #1
+ beq _021DCD96
+ add sp, #0xc
+ pop {r3, r4, pc}
+_021DCD74:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldrh r0, [r4, #6]
+ add sp, #0xc
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r3, r4, pc}
+_021DCD96:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021DCDA4
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DCDA4:
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD14_021DCDA8
+MOD14_021DCDA8: ; 0x021DCDA8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ mov r0, #0x16
+ ldr r5, [r4, #0xc]
+ lsl r0, r0, #4
+ ldr r6, [r5, r0]
+ ldrh r0, [r4, #6]
+ cmp r0, #4
+ bhi _021DCE5E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DCDC6: ; jump table
+ .short _021DCDD0 - _021DCDC6 - 2 ; case 0
+ .short _021DCDDE - _021DCDC6 - 2 ; case 1
+ .short _021DCDF0 - _021DCDC6 - 2 ; case 2
+ .short _021DCE30 - _021DCDC6 - 2 ; case 3
+ .short _021DCE4C - _021DCDC6 - 2 ; case 4
+_021DCDD0:
+ ldr r0, _021DCE60 ; =0x0000B3A8
+ ldr r0, [r5, r0]
+ bl MOD14_021E4DF8
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+_021DCDDE:
+ ldr r0, _021DCE60 ; =0x0000B3A8
+ ldr r0, [r5, r0]
+ bl MOD14_021E4E24
+ cmp r0, #0
+ beq _021DCE5E
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+_021DCDF0:
+ mov r0, #0x43
+ add r1, r6, #0
+ lsl r0, r0, #4
+ add r1, #0x40
+ ldrb r0, [r5, r0]
+ ldrb r1, [r1]
+ bl MOD14_021DDD1C
+ add r7, r0, #0
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r1, r6, #0
+ add r0, r5, r0
+ add r1, #0x40
+ add r2, r7, #0
+ mov r3, #1
+ bl MOD14_021DE0C4
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r6, #0x40
+ add r0, r5, r0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD14_021DE2E8
+ ldr r0, _021DCE64 ; =0x000005DC
+ bl FUN_020054C8
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+_021DCE30:
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl MOD14_021DE394
+ cmp r0, #0
+ beq _021DCE5E
+ ldr r0, _021DCE60 ; =0x0000B3A8
+ ldr r0, [r5, r0]
+ bl MOD14_021E4BE0
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+_021DCE4C:
+ ldr r0, _021DCE60 ; =0x0000B3A8
+ ldr r0, [r5, r0]
+ bl MOD14_021E4C40
+ cmp r0, #0
+ beq _021DCE5E
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DCE5E:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DCE60: .word 0x0000B3A8
+_021DCE64: .word 0x000005DC
+
+ thumb_func_start MOD14_021DCE68
+MOD14_021DCE68: ; 0x021DCE68
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r0, [r5, #6]
+ ldr r4, [r5, #0xc]
+ cmp r0, #0
+ beq _021DCE7A
+ cmp r0, #1
+ beq _021DCE98
+ pop {r3, r4, r5, pc}
+_021DCE7A:
+ ldr r0, _021DCEB8 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _021DCEBC ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021DF484
+ ldr r0, _021DCEC0 ; =0x0000B3A8
+ ldr r0, [r4, r0]
+ bl MOD14_021E4BE0
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DCE98:
+ ldr r0, _021DCEBC ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021DF59C
+ cmp r0, #0
+ beq _021DCEB6
+ ldr r0, _021DCEC0 ; =0x0000B3A8
+ ldr r0, [r4, r0]
+ bl MOD14_021E4C40
+ cmp r0, #0
+ beq _021DCEB6
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DCEB6:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DCEB8: .word 0x000005DC
+_021DCEBC: .word 0x00005DC0
+_021DCEC0: .word 0x0000B3A8
+
+ thumb_func_start MOD14_021DCEC4
+MOD14_021DCEC4: ; 0x021DCEC4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r0, #0x16
+ ldr r4, [r5, #0xc]
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ ldrh r0, [r5, #6]
+ beq _021DCF08
+ cmp r0, #0
+ beq _021DCEE4
+ cmp r0, #1
+ beq _021DCEF4
+ pop {r3, r4, r5, pc}
+_021DCEE4:
+ ldr r0, _021DCF38 ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E1450
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DCEF4:
+ ldr r0, _021DCF38 ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E1674
+ cmp r0, #0
+ beq _021DCF34
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r3, r4, r5, pc}
+_021DCF08:
+ cmp r0, #0
+ beq _021DCF12
+ cmp r0, #1
+ beq _021DCF22
+ pop {r3, r4, r5, pc}
+_021DCF12:
+ ldr r0, _021DCF3C ; =0x0000B3AC
+ ldr r0, [r4, r0]
+ bl MOD14_021E526C
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DCF22:
+ ldr r0, _021DCF3C ; =0x0000B3AC
+ ldr r0, [r4, r0]
+ bl MOD14_021E52BC
+ cmp r0, #0
+ beq _021DCF34
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DCF34:
+ pop {r3, r4, r5, pc}
+ nop
+_021DCF38: .word 0x000065A0
+_021DCF3C: .word 0x0000B3AC
+
+ thumb_func_start MOD14_021DCF40
+MOD14_021DCF40: ; 0x021DCF40
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r0, #0x16
+ ldr r4, [r5, #0xc]
+ lsl r0, r0, #4
+ ldr r6, [r4, r0]
+ add r0, r6, #0
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ bne _021DCF60
+ ldr r0, _021DCF94 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021DFF8C
+ b _021DCF84
+_021DCF60:
+ add r0, r6, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ beq _021DCF70
+ cmp r0, #1
+ beq _021DCF7C
+ b _021DCF84
+_021DCF70:
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD14_021DEF4C
+ b _021DCF84
+_021DCF7C:
+ ldr r0, _021DCF98 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E3054
+_021DCF84:
+ ldr r0, _021DCF9C ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E1678
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DCF94: .word 0x00005DC0
+_021DCF98: .word 0x0000B22C
+_021DCF9C: .word 0x000065A0
+
+ thumb_func_start MOD14_021DCFA0
+MOD14_021DCFA0: ; 0x021DCFA0
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0xc]
+ ldr r0, _021DCFB8 ; =0x000065A0
+ add r0, r1, r0
+ bl MOD14_021E14D0
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+ nop
+_021DCFB8: .word 0x000065A0
+
+ thumb_func_start MOD14_021DCFBC
+MOD14_021DCFBC: ; 0x021DCFBC
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DCFCE
+ cmp r0, #1
+ beq _021DCFDE
+ pop {r4, pc}
+_021DCFCE:
+ ldr r0, _021DCFF4 ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DF758
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DCFDE:
+ ldr r0, _021DCFF4 ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DF7A0
+ cmp r0, #0
+ beq _021DCFF0
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DCFF0:
+ pop {r4, pc}
+ nop
+_021DCFF4: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DCFF8
+MOD14_021DCFF8: ; 0x021DCFF8
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD00A
+ cmp r0, #1
+ beq _021DD01A
+ pop {r4, pc}
+_021DD00A:
+ ldr r0, _021DD030 ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DF890
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD01A:
+ ldr r0, _021DD030 ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DF8C4
+ cmp r0, #0
+ beq _021DD02C
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD02C:
+ pop {r4, pc}
+ nop
+_021DD030: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD034
+MOD14_021DD034: ; 0x021DD034
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD046
+ cmp r0, #1
+ beq _021DD056
+ pop {r4, pc}
+_021DD046:
+ ldr r0, _021DD06C ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DF9DC
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD056:
+ ldr r0, _021DD06C ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DFA58
+ cmp r0, #0
+ beq _021DD068
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD068:
+ pop {r4, pc}
+ nop
+_021DD06C: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD070
+MOD14_021DD070: ; 0x021DD070
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD082
+ cmp r0, #1
+ beq _021DD092
+ pop {r4, pc}
+_021DD082:
+ ldr r0, _021DD09C ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DFE28
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD092:
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+ nop
+_021DD09C: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD0A0
+MOD14_021DD0A0: ; 0x021DD0A0
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD0B6
+ cmp r0, #1
+ beq _021DD0C6
+ cmp r0, #2
+ beq _021DD0D6
+ pop {r4, pc}
+_021DD0B6:
+ ldr r0, _021DD0EC ; =0x0000B22C
+ add r0, r1, r0
+ bl MOD14_021E2F08
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD0C6:
+ ldr r0, _021DD0EC ; =0x0000B22C
+ add r0, r1, r0
+ bl MOD14_021E2C7C
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD0D6:
+ ldr r0, _021DD0EC ; =0x0000B22C
+ add r0, r1, r0
+ bl MOD14_021E2DA4
+ cmp r0, #0
+ beq _021DD0E8
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD0E8:
+ pop {r4, pc}
+ nop
+_021DD0EC: .word 0x0000B22C
+
+ thumb_func_start MOD14_021DD0F0
+MOD14_021DD0F0: ; 0x021DD0F0
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD102
+ cmp r0, #1
+ beq _021DD112
+ pop {r4, pc}
+_021DD102:
+ ldr r0, _021DD128 ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DFE60
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD112:
+ ldr r0, _021DD128 ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DFE84
+ cmp r0, #0
+ beq _021DD124
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD124:
+ pop {r4, pc}
+ nop
+_021DD128: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD12C
+MOD14_021DD12C: ; 0x021DD12C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r1, [r5, #6]
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r4, [r5, #0xc]
+ cmp r1, #0
+ ldr r0, [r4, r0]
+ beq _021DD144
+ cmp r1, #1
+ beq _021DD15C
+ pop {r3, r4, r5, pc}
+_021DD144:
+ bl MOD14_021DC3E0
+ add r1, r0, #0
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD14_021DEDD0
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD15C:
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD14_021DEE08
+ cmp r0, #0
+ beq _021DD170
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD170:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DD174
+MOD14_021DD174: ; 0x021DD174
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r1, [r5, #6]
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r4, [r5, #0xc]
+ cmp r1, #0
+ ldr r0, [r4, r0]
+ beq _021DD18C
+ cmp r1, #1
+ beq _021DD1A2
+ pop {r3, r4, r5, pc}
+_021DD18C:
+ bl MOD14_021DC3E8
+ add r1, r0, #0
+ ldr r0, _021DD1B8 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E2F44
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD1A2:
+ ldr r0, _021DD1B8 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E2F68
+ cmp r0, #0
+ beq _021DD1B4
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD1B4:
+ pop {r3, r4, r5, pc}
+ nop
+_021DD1B8: .word 0x0000B22C
+
+ thumb_func_start MOD14_021DD1BC
+MOD14_021DD1BC: ; 0x021DD1BC
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD1CE
+ cmp r0, #1
+ beq _021DD1DE
+ pop {r4, pc}
+_021DD1CE:
+ ldr r0, _021DD1F4 ; =0x0000662C
+ add r0, r1, r0
+ bl MOD14_021E26E4
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD1DE:
+ ldr r0, _021DD1F4 ; =0x0000662C
+ add r0, r1, r0
+ bl MOD14_021E27AC
+ cmp r0, #0
+ beq _021DD1F0
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD1F0:
+ pop {r4, pc}
+ nop
+_021DD1F4: .word 0x0000662C
+
+ thumb_func_start MOD14_021DD1F8
+MOD14_021DD1F8: ; 0x021DD1F8
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD20A
+ cmp r0, #1
+ beq _021DD21A
+ pop {r4, pc}
+_021DD20A:
+ ldr r0, _021DD230 ; =0x0000662C
+ add r0, r1, r0
+ bl MOD14_021E283C
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD21A:
+ ldr r0, _021DD230 ; =0x0000662C
+ add r0, r1, r0
+ bl MOD14_021E2884
+ cmp r0, #0
+ beq _021DD22C
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD22C:
+ pop {r4, pc}
+ nop
+_021DD230: .word 0x0000662C
+
+ thumb_func_start MOD14_021DD234
+MOD14_021DD234: ; 0x021DD234
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r0, [r5, #6]
+ ldr r4, [r5, #0xc]
+ cmp r0, #0
+ beq _021DD246
+ cmp r0, #1
+ beq _021DD256
+ pop {r3, r4, r5, pc}
+_021DD246:
+ ldr r0, _021DD274 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E0050
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD256:
+ ldr r0, _021DD274 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E0080
+ cmp r0, #0
+ beq _021DD270
+ ldr r0, _021DD278 ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E1704
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD270:
+ pop {r3, r4, r5, pc}
+ nop
+_021DD274: .word 0x00005DC0
+_021DD278: .word 0x000065A0
+
+ thumb_func_start MOD14_021DD27C
+MOD14_021DD27C: ; 0x021DD27C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r0, [r5, #6]
+ ldr r4, [r5, #0xc]
+ cmp r0, #0
+ beq _021DD28E
+ cmp r0, #1
+ beq _021DD29E
+ pop {r3, r4, r5, pc}
+_021DD28E:
+ ldr r0, _021DD2BC ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E00F0
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD29E:
+ ldr r0, _021DD2BC ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E0120
+ cmp r0, #0
+ beq _021DD2B8
+ ldr r0, _021DD2C0 ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E1704
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD2B8:
+ pop {r3, r4, r5, pc}
+ nop
+_021DD2BC: .word 0x00005DC0
+_021DD2C0: .word 0x000065A0
+
+ thumb_func_start MOD14_021DD2C4
+MOD14_021DD2C4: ; 0x021DD2C4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r0, [r5, #6]
+ ldr r4, [r5, #0xc]
+ cmp r0, #0
+ beq _021DD2D6
+ cmp r0, #1
+ beq _021DD2E6
+ pop {r3, r4, r5, pc}
+_021DD2D6:
+ ldr r0, _021DD304 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E0190
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD2E6:
+ ldr r0, _021DD304 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E01BC
+ cmp r0, #0
+ beq _021DD300
+ ldr r0, _021DD308 ; =0x000065A0
+ add r0, r4, r0
+ bl MOD14_021E1704
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD300:
+ pop {r3, r4, r5, pc}
+ nop
+_021DD304: .word 0x00005DC0
+_021DD308: .word 0x000065A0
+
+ thumb_func_start MOD14_021DD30C
+MOD14_021DD30C: ; 0x021DD30C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r0, #0x16
+ ldr r4, [r7, #0xc]
+ lsl r0, r0, #4
+ ldr r5, [r4, r0]
+ add r0, r5, #0
+ bl MOD14_021DC430
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ bne _021DD336
+ ldr r0, _021DD374 ; =0x00005DC0
+ add r1, r6, #0
+ add r0, r4, r0
+ bl MOD14_021DFFD8
+ b _021DD36C
+_021DD336:
+ add r0, r5, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ beq _021DD358
+ cmp r0, #1
+ bne _021DD36C
+ add r0, r5, #0
+ bl MOD14_021DC3E8
+ add r1, r0, #0
+ ldr r0, _021DD378 ; =0x0000B22C
+ add r2, r6, #0
+ add r0, r4, r0
+ bl MOD14_021E3024
+ b _021DD36C
+_021DD358:
+ add r0, r5, #0
+ bl MOD14_021DC3E0
+ add r1, r0, #0
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r4, r0
+ add r2, r6, #0
+ bl MOD14_021DEEF8
+_021DD36C:
+ add r0, r7, #0
+ bl MOD14_021DCBD8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DD374: .word 0x00005DC0
+_021DD378: .word 0x0000B22C
+
+ thumb_func_start MOD14_021DD37C
+MOD14_021DD37C: ; 0x021DD37C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r0, [r5, #6]
+ ldr r4, [r5, #0xc]
+ cmp r0, #0
+ beq _021DD38E
+ cmp r0, #1
+ beq _021DD3A6
+ pop {r3, r4, r5, pc}
+_021DD38E:
+ ldr r0, _021DD3C4 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E022C
+ ldr r0, _021DD3C8 ; =0x0000B3A8
+ ldr r0, [r4, r0]
+ bl MOD14_021E4F58
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD3A6:
+ ldr r0, _021DD3C8 ; =0x0000B3A8
+ ldr r0, [r4, r0]
+ bl MOD14_021E4FA0
+ cmp r0, #0
+ beq _021DD3C0
+ ldr r0, _021DD3C4 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E0244
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD3C0:
+ pop {r3, r4, r5, pc}
+ nop
+_021DD3C4: .word 0x00005DC0
+_021DD3C8: .word 0x0000B3A8
+
+ thumb_func_start MOD14_021DD3CC
+MOD14_021DD3CC: ; 0x021DD3CC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r0, #0x16
+ ldr r4, [r5, #0xc]
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC450
+ add r1, r0, #0
+ ldr r0, _021DD3F0 ; =0x000065F4
+ add r0, r4, r0
+ bl MOD14_021E189C
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r3, r4, r5, pc}
+ nop
+_021DD3F0: .word 0x000065F4
+
+ thumb_func_start MOD14_021DD3F4
+MOD14_021DD3F4: ; 0x021DD3F4
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r0, #0x16
+ ldr r4, [r6, #0xc]
+ lsl r0, r0, #4
+ ldr r5, [r4, r0]
+ add r0, r5, #0
+ bl MOD14_021DC450
+ add r1, r0, #0
+ ldr r0, _021DD424 ; =0x000065F4
+ add r0, r4, r0
+ bl MOD14_021E189C
+ ldr r0, _021DD424 ; =0x000065F4
+ add r5, #0x74
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD14_021E19D0
+ add r0, r6, #0
+ bl MOD14_021DCBD8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DD424: .word 0x000065F4
+
+ thumb_func_start MOD14_021DD428
+MOD14_021DD428: ; 0x021DD428
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0xc]
+ ldr r0, _021DD440 ; =0x000065F4
+ add r0, r1, r0
+ bl MOD14_021E1B44
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+ nop
+_021DD440: .word 0x000065F4
+
+ thumb_func_start MOD14_021DD444
+MOD14_021DD444: ; 0x021DD444
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0xc]
+ ldr r0, _021DD45C ; =0x000065F4
+ add r0, r1, r0
+ bl MOD14_021E1B78
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+ nop
+_021DD45C: .word 0x000065F4
+
+ thumb_func_start MOD14_021DD460
+MOD14_021DD460: ; 0x021DD460
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r0, #0x16
+ ldr r4, [r6, #0xc]
+ lsl r0, r0, #4
+ ldr r5, [r4, r0]
+ ldr r0, _021DD488 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _021DD48C ; =0x000065F4
+ add r5, #0x74
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD14_021E1B9C
+ add r0, r6, #0
+ bl MOD14_021DCBD8
+ pop {r4, r5, r6, pc}
+ nop
+_021DD488: .word 0x000005DC
+_021DD48C: .word 0x000065F4
+
+ thumb_func_start MOD14_021DD490
+MOD14_021DD490: ; 0x021DD490
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r0, #0x16
+ ldr r4, [r6, #0xc]
+ lsl r0, r0, #4
+ ldr r5, [r4, r0]
+ ldr r0, _021DD4B8 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, _021DD4BC ; =0x000065F4
+ add r5, #0x74
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD14_021E1BE4
+ add r0, r6, #0
+ bl MOD14_021DCBD8
+ pop {r4, r5, r6, pc}
+ nop
+_021DD4B8: .word 0x000005DD
+_021DD4BC: .word 0x000065F4
+
+ thumb_func_start MOD14_021DD4C0
+MOD14_021DD4C0: ; 0x021DD4C0
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD4D2
+ cmp r0, #1
+ beq _021DD4E2
+ pop {r4, pc}
+_021DD4D2:
+ ldr r0, _021DD4F8 ; =0x0000662C
+ add r0, r1, r0
+ bl MOD14_021E1F98
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD4E2:
+ ldr r0, _021DD4F8 ; =0x0000662C
+ add r0, r1, r0
+ bl MOD14_021E1FB8
+ cmp r0, #0
+ beq _021DD4F4
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD4F4:
+ pop {r4, pc}
+ nop
+_021DD4F8: .word 0x0000662C
+
+ thumb_func_start MOD14_021DD4FC
+MOD14_021DD4FC: ; 0x021DD4FC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r0, [r5, #6]
+ ldr r4, [r5, #0xc]
+ cmp r0, #0
+ beq _021DD50E
+ cmp r0, #1
+ beq _021DD524
+ pop {r3, r4, r5, pc}
+_021DD50E:
+ ldr r0, _021DD52C ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, _021DD530 ; =0x0000662C
+ add r0, r4, r0
+ bl MOD14_021E1FC0
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD524:
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD52C: .word 0x000005DD
+_021DD530: .word 0x0000662C
+
+ thumb_func_start MOD14_021DD534
+MOD14_021DD534: ; 0x021DD534
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD546
+ cmp r0, #1
+ beq _021DD556
+ pop {r4, pc}
+_021DD546:
+ ldr r0, _021DD56C ; =0x0000662C
+ add r0, r1, r0
+ bl MOD14_021E1FE4
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD556:
+ ldr r0, _021DD56C ; =0x0000662C
+ add r0, r1, r0
+ bl MOD14_021E1FF0
+ cmp r0, #0
+ beq _021DD568
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD568:
+ pop {r4, pc}
+ nop
+_021DD56C: .word 0x0000662C
+
+ thumb_func_start MOD14_021DD570
+MOD14_021DD570: ; 0x021DD570
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD582
+ cmp r0, #1
+ beq _021DD594
+ pop {r4, pc}
+_021DD582:
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl MOD14_021DE8C8
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD594:
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl MOD14_021DE8E8
+ cmp r0, #0
+ beq _021DD5A8
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD5A8:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DD5AC
+MOD14_021DD5AC: ; 0x021DD5AC
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ mov r0, #0x16
+ ldr r5, [r4, #0xc]
+ lsl r0, r0, #4
+ ldr r6, [r5, r0]
+ ldrh r0, [r4, #6]
+ cmp r0, #3
+ bhi _021DD65E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DD5CA: ; jump table
+ .short _021DD5D2 - _021DD5CA - 2 ; case 0
+ .short _021DD5E8 - _021DD5CA - 2 ; case 1
+ .short _021DD626 - _021DD5CA - 2 ; case 2
+ .short _021DD64C - _021DD5CA - 2 ; case 3
+_021DD5D2:
+ ldr r0, _021DD660 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, _021DD664 ; =0x00005DC0
+ add r0, r5, r0
+ bl MOD14_021DFBB8
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, r5, r6, pc}
+_021DD5E8:
+ ldr r0, _021DD664 ; =0x00005DC0
+ add r0, r5, r0
+ bl MOD14_021DFC2C
+ cmp r0, #0
+ beq _021DD65E
+ add r0, r6, #0
+ bl MOD14_021DC3CC
+ cmp r0, #3
+ beq _021DD604
+ cmp r0, #4
+ beq _021DD610
+ b _021DD61A
+_021DD604:
+ ldr r0, _021DD668 ; =0x00006558
+ mov r1, #1
+ add r0, r5, r0
+ bl MOD14_021E0D60
+ b _021DD61A
+_021DD610:
+ ldr r0, _021DD668 ; =0x00006558
+ mov r1, #2
+ add r0, r5, r0
+ bl MOD14_021E0D60
+_021DD61A:
+ mov r0, #0
+ strh r0, [r4, #8]
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, r5, r6, pc}
+_021DD626:
+ ldrh r0, [r4, #8]
+ add r0, r0, #1
+ strh r0, [r4, #8]
+ ldrh r0, [r4, #8]
+ cmp r0, #6
+ blo _021DD65E
+ ldr r0, _021DD664 ; =0x00005DC0
+ add r0, r5, r0
+ bl MOD14_021DFD24
+ ldr r0, _021DD668 ; =0x00006558
+ mov r1, #0
+ add r0, r5, r0
+ bl MOD14_021E0D60
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, r5, r6, pc}
+_021DD64C:
+ ldr r0, _021DD664 ; =0x00005DC0
+ add r0, r5, r0
+ bl MOD14_021DFD80
+ cmp r0, #0
+ beq _021DD65E
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD65E:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DD660: .word 0x000005DD
+_021DD664: .word 0x00005DC0
+_021DD668: .word 0x00006558
+
+ thumb_func_start MOD14_021DD66C
+MOD14_021DD66C: ; 0x021DD66C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r0, [r5, #6]
+ ldr r4, [r5, #0xc]
+ cmp r0, #0
+ beq _021DD67E
+ cmp r0, #1
+ beq _021DD69C
+ pop {r3, r4, r5, pc}
+_021DD67E:
+ ldr r0, _021DD6B0 ; =0x00000633
+ bl FUN_020054C8
+ ldr r0, _021DD6B4 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021DFF1C
+ ldr r0, _021DD6B8 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E2B10
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD69C:
+ ldr r0, _021DD6B8 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E2B40
+ cmp r0, #0
+ beq _021DD6AE
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD6AE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD6B0: .word 0x00000633
+_021DD6B4: .word 0x00005DC0
+_021DD6B8: .word 0x0000B22C
+
+ thumb_func_start MOD14_021DD6BC
+MOD14_021DD6BC: ; 0x021DD6BC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r5, [r4, #0xc]
+ cmp r0, #3
+ bhi _021DD72C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DD6D4: ; jump table
+ .short _021DD6DC - _021DD6D4 - 2 ; case 0
+ .short _021DD6EA - _021DD6D4 - 2 ; case 1
+ .short _021DD6FC - _021DD6D4 - 2 ; case 2
+ .short _021DD712 - _021DD6D4 - 2 ; case 3
+_021DD6DC:
+ ldr r0, _021DD730 ; =0x0000B3A8
+ ldr r0, [r5, r0]
+ bl MOD14_021E4DF8
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+_021DD6EA:
+ ldr r0, _021DD730 ; =0x0000B3A8
+ ldr r0, [r5, r0]
+ bl MOD14_021E4E24
+ cmp r0, #0
+ beq _021DD72C
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+_021DD6FC:
+ ldr r0, _021DD734 ; =0x00000634
+ bl FUN_020054C8
+ ldr r0, _021DD738 ; =0x0000B22C
+ add r0, r5, r0
+ bl MOD14_021E2BB0
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r3, r4, r5, pc}
+_021DD712:
+ ldr r0, _021DD738 ; =0x0000B22C
+ add r0, r5, r0
+ bl MOD14_021E2BD0
+ cmp r0, #0
+ beq _021DD72C
+ ldr r0, _021DD73C ; =0x00005DC0
+ add r0, r5, r0
+ bl MOD14_021DFF54
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD72C:
+ pop {r3, r4, r5, pc}
+ nop
+_021DD730: .word 0x0000B3A8
+_021DD734: .word 0x00000634
+_021DD738: .word 0x0000B22C
+_021DD73C: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD740
+MOD14_021DD740: ; 0x021DD740
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD752
+ cmp r0, #1
+ beq _021DD762
+ pop {r4, pc}
+_021DD752:
+ ldr r0, _021DD778 ; =0x0000B22C
+ add r0, r1, r0
+ bl MOD14_021E2C7C
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD762:
+ ldr r0, _021DD778 ; =0x0000B22C
+ add r0, r1, r0
+ bl MOD14_021E2DA4
+ cmp r0, #0
+ beq _021DD774
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD774:
+ pop {r4, pc}
+ nop
+_021DD778: .word 0x0000B22C
+
+ thumb_func_start MOD14_021DD77C
+MOD14_021DD77C: ; 0x021DD77C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrh r1, [r5, #6]
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r4, [r5, #0xc]
+ cmp r1, #0
+ ldr r0, [r4, r0]
+ beq _021DD794
+ cmp r1, #1
+ beq _021DD7B4
+ pop {r3, r4, r5, pc}
+_021DD794:
+ bl MOD14_021DC3CC
+ cmp r0, #1
+ bne _021DD7AC
+ ldr r0, _021DD7C8 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E2DB4
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r3, r4, r5, pc}
+_021DD7AC:
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r3, r4, r5, pc}
+_021DD7B4:
+ ldr r0, _021DD7C8 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E2E50
+ cmp r0, #0
+ beq _021DD7C6
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD7C6:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD7C8: .word 0x0000B22C
+
+ thumb_func_start MOD14_021DD7CC
+MOD14_021DD7CC: ; 0x021DD7CC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r0, #0x43
+ ldr r4, [r5, #0xc]
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD14_021DEEA8
+ ldr r0, _021DD7F4 ; =0x0000B22C
+ add r0, r4, r0
+ bl MOD14_021E2FE8
+ ldr r0, _021DD7F8 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021DFFB4
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD7F4: .word 0x0000B22C
+_021DD7F8: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD7FC
+MOD14_021DD7FC: ; 0x021DD7FC
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r0, #0x16
+ ldr r4, [r5, #0xc]
+ lsl r0, r0, #4
+ ldr r6, [r4, r0]
+ ldrh r0, [r5, #6]
+ cmp r0, #0
+ beq _021DD818
+ cmp r0, #1
+ beq _021DD828
+ cmp r0, #2
+ beq _021DD854
+ pop {r4, r5, r6, pc}
+_021DD818:
+ ldr r0, _021DD868 ; =0x0000B3A4
+ ldr r0, [r4, r0]
+ bl MOD14_021E37B8
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r4, r5, r6, pc}
+_021DD828:
+ ldr r0, _021DD868 ; =0x0000B3A4
+ ldr r0, [r4, r0]
+ bl MOD14_021E389C
+ cmp r0, #0
+ beq _021DD866
+ add r6, #0x9c
+ ldrb r0, [r6]
+ cmp r0, #0
+ bne _021DD844
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r4, r5, r6, pc}
+_021DD844:
+ ldr r0, _021DD868 ; =0x0000B3A4
+ ldr r0, [r4, r0]
+ bl MOD14_021E3B54
+ ldrh r0, [r5, #6]
+ add r0, r0, #1
+ strh r0, [r5, #6]
+ pop {r4, r5, r6, pc}
+_021DD854:
+ ldr r0, _021DD868 ; =0x0000B3A4
+ ldr r0, [r4, r0]
+ bl MOD14_021E3B80
+ cmp r0, #0
+ beq _021DD866
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+_021DD866:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DD868: .word 0x0000B3A4
+
+ thumb_func_start MOD14_021DD86C
+MOD14_021DD86C: ; 0x021DD86C
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD87E
+ cmp r0, #1
+ beq _021DD88E
+ pop {r4, pc}
+_021DD87E:
+ ldr r0, _021DD8A4 ; =0x0000B3A4
+ ldr r0, [r1, r0]
+ bl MOD14_021E3BA8
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD88E:
+ ldr r0, _021DD8A4 ; =0x0000B3A4
+ ldr r0, [r1, r0]
+ bl MOD14_021E3C60
+ cmp r0, #0
+ beq _021DD8A0
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD8A0:
+ pop {r4, pc}
+ nop
+_021DD8A4: .word 0x0000B3A4
+
+ thumb_func_start MOD14_021DD8A8
+MOD14_021DD8A8: ; 0x021DD8A8
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0xc]
+ ldr r0, _021DD8C0 ; =0x0000B3A4
+ ldr r0, [r1, r0]
+ bl MOD14_021E4734
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+ nop
+_021DD8C0: .word 0x0000B3A4
+
+ thumb_func_start MOD14_021DD8C4
+MOD14_021DD8C4: ; 0x021DD8C4
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0xc]
+ ldr r0, _021DD8DC ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021E0008
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+ nop
+_021DD8DC: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD8E0
+MOD14_021DD8E0: ; 0x021DD8E0
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r4, [r5, #0xc]
+ ldr r0, _021DD900 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021E002C
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD14_021DEF94
+ add r0, r5, #0
+ bl MOD14_021DCBD8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD900: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD904
+MOD14_021DD904: ; 0x021DD904
+ push {r4, lr}
+ add r4, r1, #0
+ mov r0, #0x43
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl MOD14_021DF03C
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021DD91C
+MOD14_021DD91C: ; 0x021DD91C
+ push {r4, lr}
+ add r4, r1, #0
+ mov r0, #0x43
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl MOD14_021DEF94
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021DD934
+MOD14_021DD934: ; 0x021DD934
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD946
+ cmp r0, #1
+ beq _021DD956
+ pop {r4, pc}
+_021DD946:
+ ldr r0, _021DD96C ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DF758
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD956:
+ ldr r0, _021DD96C ; =0x00005DC0
+ add r0, r1, r0
+ bl MOD14_021DF7A0
+ cmp r0, #0
+ beq _021DD968
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD968:
+ pop {r4, pc}
+ nop
+_021DD96C: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DD970
+MOD14_021DD970: ; 0x021DD970
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0xc]
+ ldr r0, _021DD988 ; =0x0000B3AC
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl MOD14_021E5214
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+ .align 2, 0
+_021DD988: .word 0x0000B3AC
+
+ thumb_func_start MOD14_021DD98C
+MOD14_021DD98C: ; 0x021DD98C
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0xc]
+ ldr r0, _021DD9A4 ; =0x0000B3AC
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl MOD14_021E5214
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+ pop {r4, pc}
+ .align 2, 0
+_021DD9A4: .word 0x0000B3AC
+
+ thumb_func_start MOD14_021DD9A8
+MOD14_021DD9A8: ; 0x021DD9A8
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ ldr r1, [r4, #0xc]
+ cmp r0, #0
+ beq _021DD9BA
+ cmp r0, #1
+ beq _021DD9CA
+ pop {r4, pc}
+_021DD9BA:
+ ldr r0, _021DD9E0 ; =0x0000B3AC
+ ldr r0, [r1, r0]
+ bl MOD14_021E52C0
+ ldrh r0, [r4, #6]
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r4, pc}
+_021DD9CA:
+ ldr r0, _021DD9E0 ; =0x0000B3AC
+ ldr r0, [r1, r0]
+ bl MOD14_021E52E0
+ cmp r0, #0
+ beq _021DD9DC
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DD9DC:
+ pop {r4, pc}
+ nop
+_021DD9E0: .word 0x0000B3AC
+
+ thumb_func_start MOD14_021DD9E4
+MOD14_021DD9E4: ; 0x021DD9E4
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldrh r0, [r4, #6]
+ cmp r0, #0
+ beq _021DD9F8
+ cmp r0, #1
+ beq _021DDA20
+ add sp, #0xc
+ pop {r3, r4, pc}
+_021DD9F8:
+ ldr r0, _021DDA34 ; =0x0000060E
+ bl FUN_020054C8
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldrh r0, [r4, #6]
+ add sp, #0xc
+ add r0, r0, #1
+ strh r0, [r4, #6]
+ pop {r3, r4, pc}
+_021DDA20:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021DDA2E
+ add r0, r4, #0
+ bl MOD14_021DCBD8
+_021DDA2E:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_021DDA34: .word 0x0000060E
+
+ thumb_func_start MOD14_021DDA38
+MOD14_021DDA38: ; 0x021DDA38
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021DDB20 ; =0x021E63A4
+ add r4, r1, #0
+ bl FUN_0201E66C
+ ldr r2, _021DDB24 ; =0x04000304
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2]
+ mov r0, #1
+ mov r1, #0
+ add r2, r0, #0
+ bl GX_SetGraphicsMode
+ ldr r0, _021DDB28 ; =0x021E627C
+ bl FUN_02016BBC
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB2C ; =0x021E6350
+ mov r1, #1
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB30 ; =0x021E6334
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB34 ; =0x021E62FC
+ mov r1, #3
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021DDADA
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB38 ; =0x021E6318
+ mov r1, #4
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB3C ; =0x021E62E0
+ mov r1, #5
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB40 ; =0x021E62C4
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB44 ; =0x021E62A8
+ mov r1, #7
+ mov r3, #0
+ bl FUN_02016C18
+ b _021DDB1A
+_021DDADA:
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB38 ; =0x021E6318
+ mov r1, #4
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB48 ; =0x021E6388
+ mov r1, #5
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB4C ; =0x021E628C
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, _021DDB44 ; =0x021E62A8
+ mov r1, #7
+ mov r3, #0
+ bl FUN_02016C18
+_021DDB1A:
+ bl MOD14_021DDC78
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DDB20: .word 0x021E63A4
+_021DDB24: .word 0x04000304
+_021DDB28: .word 0x021E627C
+_021DDB2C: .word 0x021E6350
+_021DDB30: .word 0x021E6334
+_021DDB34: .word 0x021E62FC
+_021DDB38: .word 0x021E6318
+_021DDB3C: .word 0x021E62E0
+_021DDB40: .word 0x021E62C4
+_021DDB44: .word 0x021E62A8
+_021DDB48: .word 0x021E6388
+_021DDB4C: .word 0x021E628C
+
+ thumb_func_start MOD14_021DDB50
+MOD14_021DDB50: ; 0x021DDB50
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r3, #1
+ mov r2, #0x57
+ add r4, r1, #0
+ str r3, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ mov r0, #0x12
+ mov r1, #4
+ bl FUN_0200687C
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02017CD0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r1, #1
+ mov r2, #0x57
+ str r1, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ mov r0, #0x12
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0xe0
+ str r0, [sp]
+ mov r0, #0xa
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x12
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_02006930
+ add r0, r4, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021DDBF2
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xa
+ mov r2, #0x57
+ str r0, [sp, #0xc]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ mov r0, #0x12
+ mov r3, #2
+ bl FUN_020068C8
+_021DDBF2:
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl MOD14_021DE014
+ mov r0, #0x43
+ lsl r0, r0, #4
+ add r1, r4, #0
+ add r0, r5, r0
+ add r1, #0x40
+ mov r2, #0
+ mov r3, #1
+ bl MOD14_021DE0C4
+ ldr r0, _021DDC60 ; =0x000065A0
+ add r0, r5, r0
+ bl MOD14_021E0F40
+ ldr r0, _021DDC64 ; =0x000065F4
+ add r0, r5, r0
+ bl MOD14_021E1818
+ ldr r0, _021DDC68 ; =0x0000662C
+ add r0, r5, r0
+ bl MOD14_021E1EEC
+ ldr r0, _021DDC6C ; =0x0000B3A4
+ ldr r0, [r5, r0]
+ bl MOD14_021E355C
+ ldr r0, _021DDC70 ; =0x0000B3AC
+ ldr r0, [r5, r0]
+ bl MOD14_021E5128
+ add r0, r4, #0
+ bl MOD14_021DC3CC
+ cmp r0, #1
+ bne _021DDC48
+ ldr r0, _021DDC74 ; =0x0000B22C
+ add r0, r5, r0
+ bl MOD14_021E2AE8
+_021DDC48:
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ bl GX_DispOn
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DDC60: .word 0x000065A0
+_021DDC64: .word 0x000065F4
+_021DDC68: .word 0x0000662C
+_021DDC6C: .word 0x0000B3A4
+_021DDC70: .word 0x0000B3AC
+_021DDC74: .word 0x0000B22C
+
+ thumb_func_start MOD14_021DDC78
+MOD14_021DDC78: ; 0x021DDC78
+ push {r3, lr}
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r0, _021DDCDC ; =0x04000008
+ mov r1, #3
+ ldrh r2, [r0]
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ strh r1, [r0]
+ add r0, #0x58
+ ldrh r1, [r0]
+ ldr r2, _021DDCE0 ; =0xFFFFCFFD
+ and r1, r2
+ strh r1, [r0]
+ ldrh r3, [r0]
+ add r1, r2, #2
+ and r3, r1
+ mov r1, #0x10
+ orr r1, r3
+ strh r1, [r0]
+ ldrh r3, [r0]
+ ldr r1, _021DDCE4 ; =0x0000CFFB
+ and r1, r3
+ strh r1, [r0]
+ add r1, r2, #2
+ ldrh r3, [r0]
+ lsr r2, r2, #0x11
+ and r3, r1
+ mov r1, #8
+ orr r1, r3
+ strh r1, [r0]
+ mov r0, #0
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _021DDCE8 ; =0x04000540
+ mov r0, #2
+ str r0, [r1]
+ ldr r0, _021DDCEC ; =0xBFFF0000
+ str r0, [r1, #0x40]
+ pop {r3, pc}
+ .align 2, 0
+_021DDCDC: .word 0x04000008
+_021DDCE0: .word 0xFFFFCFFD
+_021DDCE4: .word 0x0000CFFB
+_021DDCE8: .word 0x04000540
+_021DDCEC: .word 0xBFFF0000
+
+ thumb_func_start MOD14_021DDCF0
+MOD14_021DDCF0: ; 0x021DDCF0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021DDD10 ; =0x00005DC0
+ add r0, r4, r0
+ bl MOD14_021DF144
+ ldr r0, _021DDD14 ; =0x00006558
+ add r0, r4, r0
+ bl MOD14_021E0CCC
+ ldr r0, _021DDD18 ; =0x0000B3A8
+ ldr r0, [r4, r0]
+ bl MOD14_021E49C4
+ pop {r4, pc}
+ nop
+_021DDD10: .word 0x00005DC0
+_021DDD14: .word 0x00006558
+_021DDD18: .word 0x0000B3A8
+
+ thumb_func_start MOD14_021DDD1C
+MOD14_021DDD1C: ; 0x021DDD1C
+ cmp r1, r0
+ bls _021DDD2A
+ mov r2, #0x12
+ sub r3, r1, r0
+ sub r1, r2, r1
+ add r0, r0, r1
+ b _021DDD32
+_021DDD2A:
+ mov r2, #0x12
+ sub r2, r2, r0
+ add r3, r1, r2
+ sub r0, r0, r1
+_021DDD32:
+ cmp r3, r0
+ blt _021DDD3C
+ mov r0, #0
+ mvn r0, r0
+ bx lr
+_021DDD3C:
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD14_021DDD40
+MOD14_021DDD40: ; 0x021DDD40
+ ldr r3, _021DDD44 ; =0x0200CA61
+ bx r3
+ .align 2, 0
+_021DDD44: .word 0x0200CA61
+
+ thumb_func_start MOD14_021DDD48
+MOD14_021DDD48: ; 0x021DDD48
+ mov r1, #0x51
+ lsl r1, r1, #2
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start MOD14_021DDD50
+MOD14_021DDD50: ; 0x021DDD50
+ mov r1, #0x59
+ lsl r1, r1, #2
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start MOD14_021DDD58
+MOD14_021DDD58: ; 0x021DDD58
+ mov r1, #0x43
+ lsl r1, r1, #4
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start MOD14_021DDD60
+MOD14_021DDD60: ; 0x021DDD60
+ ldr r1, _021DDD68 ; =0x0000B22C
+ add r0, r0, r1
+ bx lr
+ nop
+_021DDD68: .word 0x0000B22C
+
+ thumb_func_start MOD14_021DDD6C
+MOD14_021DDD6C: ; 0x021DDD6C
+ ldr r1, _021DDD74 ; =0x00005DC0
+ add r0, r0, r1
+ bx lr
+ nop
+_021DDD74: .word 0x00005DC0
+
+ thumb_func_start MOD14_021DDD78
+MOD14_021DDD78: ; 0x021DDD78
+ ldr r1, _021DDD80 ; =0x0000B3A8
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_021DDD80: .word 0x0000B3A8
+
+ thumb_func_start MOD14_021DDD84
+MOD14_021DDD84: ; 0x021DDD84
+ ldr r1, _021DDD8C ; =0x0000662C
+ add r0, r0, r1
+ bx lr
+ nop
+_021DDD8C: .word 0x0000662C
+
+ thumb_func_start MOD14_021DDD90
+MOD14_021DDD90: ; 0x021DDD90
+ mov r1, #0x56
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD14_021DDD98
+MOD14_021DDD98: ; 0x021DDD98
+ push {r3, lr}
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021DDDAC
+ mov r0, #0
+ pop {r3, pc}
+_021DDDAC:
+ mov r0, #0x2b
+ mvn r0, r0
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DDDB4
+MOD14_021DDDB4: ; 0x021DDDB4
+ str r1, [r0]
+ str r2, [r0, #8]
+ ldr r1, [sp]
+ str r3, [r0, #0xc]
+ str r1, [r0, #0x10]
+ add r1, r0, #0
+ ldr r2, [sp, #4]
+ add r1, #0x20
+ strb r2, [r1]
+ mov r1, #0
+ str r1, [r0, #4]
+ str r1, [r0, #0x14]
+ str r1, [r0, #0x18]
+ str r1, [r0, #0x1c]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DDDD4
+MOD14_021DDDD4: ; 0x021DDDD4
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ str r0, [sp]
+ lsl r0, r2, #0xc
+ str r0, [sp, #8]
+ lsl r0, r3, #0xc
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x30]
+ str r1, [sp, #4]
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x34]
+ str r0, [sp, #0x18]
+ mov r0, #0xa
+ str r0, [sp, #0x1c]
+ bl OS_DisableInterrupts
+ add r4, r0, #0
+ add r0, sp, #0
+ bl FUN_0201FF84
+ add r5, r0, #0
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ cmp r5, #0
+ beq _021DDE1E
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_020200BC
+ mov r1, #1
+ add r0, r5, #0
+ lsl r1, r1, #0xc
+ bl FUN_020200D8
+_021DDE1E:
+ add r0, r5, #0
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021DDE24
+MOD14_021DDE24: ; 0x021DDE24
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl OS_DisableInterrupts
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_02020310
+ add r0, r6, #0
+ bl OS_RestoreInterrupts
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021DDE40
+MOD14_021DDE40: ; 0x021DDE40
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r1, #0
+ lsl r1, r3, #0x1b
+ lsr r1, r1, #0x13
+ mov ip, r1
+ asr r1, r3, #5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x13
+ mov lr, r1
+ asr r1, r3, #0xa
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x13
+ str r1, [sp, #4]
+ add r7, r0, #0
+ str r2, [sp]
+ add r1, r2, #0
+ sub r2, r2, #1
+ ldr r0, [sp, #0x20]
+ str r2, [sp]
+ cmp r1, #0
+ beq _021DDED6
+_021DDE6C:
+ ldrh r1, [r7]
+ add r7, r7, #2
+ lsl r2, r1, #0x1b
+ lsr r4, r2, #0x13
+ asr r2, r1, #5
+ asr r1, r1, #0xa
+ lsl r2, r2, #0x1b
+ lsl r1, r1, #0x1b
+ lsr r3, r2, #0x13
+ lsr r2, r1, #0x13
+ mov r1, ip
+ sub r5, r1, r4
+ asr r1, r5, #3
+ lsr r1, r1, #0x1c
+ add r1, r5, r1
+ asr r1, r1, #4
+ mul r1, r0
+ add r5, r4, r1
+ mov r1, lr
+ sub r1, r1, r3
+ asr r4, r1, #3
+ lsr r4, r4, #0x1c
+ add r4, r1, r4
+ asr r1, r4, #4
+ mul r1, r0
+ add r3, r3, r1
+ ldr r1, [sp, #4]
+ sub r1, r1, r2
+ asr r4, r1, #3
+ lsr r4, r4, #0x1c
+ add r4, r1, r4
+ asr r1, r4, #4
+ mul r1, r0
+ add r4, r2, r1
+ asr r2, r5, #8
+ mov r1, #0x1f
+ and r1, r2
+ asr r2, r3, #8
+ asr r3, r4, #8
+ lsl r3, r3, #0x1b
+ lsl r2, r2, #0x1b
+ lsr r3, r3, #0x11
+ lsr r2, r2, #0x16
+ orr r2, r3
+ orr r1, r2
+ strh r1, [r6]
+ ldr r1, [sp]
+ add r6, r6, #2
+ add r2, r1, #0
+ sub r2, r2, #1
+ str r2, [sp]
+ cmp r1, #0
+ bne _021DDE6C
+_021DDED6:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DDEDC
+MOD14_021DDEDC: ; 0x021DDEDC
+ ldr r1, _021DDEE4 ; =0x0000B3B0
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_021DDEE4: .word 0x0000B3B0
+
+ thumb_func_start MOD14_021DDEE8
+MOD14_021DDEE8: ; 0x021DDEE8
+ ldr r0, _021DDEF0 ; =0x021E6A0C
+ mov r1, #0
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_021DDEF0: .word 0x021E6A0C
+
+ thumb_func_start MOD14_021DDEF4
+MOD14_021DDEF4: ; 0x021DDEF4
+ push {r4, r5, r6, lr}
+ ldr r6, _021DDF28 ; =0x021E6A0C
+ ldr r0, [r6]
+ cmp r0, #0
+ beq _021DDF26
+ mov r4, #0
+ cmp r0, #0
+ bls _021DDF20
+ ldr r5, _021DDF2C ; =0x021E6A10
+_021DDF06:
+ ldr r0, [r5, #8]
+ bl FUN_02016A18
+ ldr r1, [r5]
+ cmp r1, #0
+ beq _021DDF16
+ ldr r0, [r5, #4]
+ blx r1
+_021DDF16:
+ ldr r0, [r6]
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, r0
+ blo _021DDF06
+_021DDF20:
+ ldr r0, _021DDF28 ; =0x021E6A0C
+ mov r1, #0
+ str r1, [r0]
+_021DDF26:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DDF28: .word 0x021E6A0C
+_021DDF2C: .word 0x021E6A10
+
+ thumb_func_start MOD14_021DDF30
+MOD14_021DDF30: ; 0x021DDF30
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _021DDF60 ; =0x021E6A0C
+ add r4, r1, #0
+ ldr r0, [r0]
+ add r6, r2, #0
+ cmp r0, #0x20
+ blo _021DDF44
+ bl ErrorHandling
+_021DDF44:
+ ldr r2, _021DDF60 ; =0x021E6A0C
+ mov r1, #0xc
+ ldr r0, [r2]
+ ldr r3, _021DDF64 ; =0x021E6A18
+ mul r1, r0
+ str r5, [r3, r1]
+ ldr r3, _021DDF68 ; =0x021E6A10
+ add r0, r0, #1
+ str r4, [r3, r1]
+ ldr r3, _021DDF6C ; =0x021E6A14
+ str r0, [r2]
+ str r6, [r3, r1]
+ pop {r4, r5, r6, pc}
+ nop
+_021DDF60: .word 0x021E6A0C
+_021DDF64: .word 0x021E6A18
+_021DDF68: .word 0x021E6A10
+_021DDF6C: .word 0x021E6A14
+
+ thumb_func_start MOD14_021DDF70
+MOD14_021DDF70: ; 0x021DDF70
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r2, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ add r0, #0x40
+ ldrb r0, [r0]
+ add r4, r1, #0
+ add r7, r3, #0
+ strb r0, [r5]
+ mov r0, #0xb
+ strb r0, [r5, #1]
+ mov r0, #0
+ strb r0, [r5, #2]
+ add r0, r4, #0
+ bl MOD14_021DDD98
+ ldr r1, _021DDFE0 ; =0x0000585C
+ str r0, [r5, r1]
+ ldr r2, [r5, r1]
+ add r0, r1, #0
+ add r2, #0x48
+ sub r0, #8
+ str r2, [r5, r0]
+ mov r0, #0x11
+ ldr r2, [r5, r1]
+ lsl r0, r0, #4
+ add r2, r2, r0
+ sub r0, r1, #4
+ str r2, [r5, r0]
+ add r0, r4, #0
+ bl MOD14_021DDD50
+ ldr r1, _021DDFE4 ; =0x00005980
+ mov r2, #0x1e
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ add r1, r5, #0
+ add r1, #0xa8
+ bl MOD14_021E08E4
+ ldr r0, _021DDFE4 ; =0x00005980
+ mov r1, #0x1b
+ lsl r1, r1, #6
+ ldr r0, [r5, r0]
+ add r1, r5, r1
+ mov r2, #0x1e
+ bl MOD14_021E08E4
+ ldr r1, _021DDFE8 ; =0x00005984
+ str r7, [r5, r1]
+ add r0, r1, #4
+ str r6, [r5, r0]
+ add r1, #8
+ str r4, [r5, r1]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DDFE0: .word 0x0000585C
+_021DDFE4: .word 0x00005980
+_021DDFE8: .word 0x00005984
+
+ thumb_func_start MOD14_021DDFEC
+MOD14_021DDFEC: ; 0x021DDFEC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021DE010 ; =0x00005980
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ add r1, #0xa8
+ mov r2, #0x1e
+ bl MOD14_021E0908
+ ldr r0, _021DE010 ; =0x00005980
+ mov r1, #0x1b
+ lsl r1, r1, #6
+ ldr r0, [r4, r0]
+ add r1, r4, r1
+ mov r2, #0x1e
+ bl MOD14_021E0908
+ pop {r4, pc}
+ .align 2, 0
+_021DE010: .word 0x00005980
+
+ thumb_func_start MOD14_021DE014
+MOD14_021DE014: ; 0x021DE014
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, _021DE060 ; =0x00005984
+ mov r1, #3
+ ldr r0, [r4, r0]
+ bl FUN_02017B48
+ ldr r1, _021DE064 ; =0x0000585C
+ str r0, [r4, #0xc]
+ ldr r1, [r4, r1]
+ mov r2, #0
+ sub r1, r0, r1
+ add r3, r1, #0
+ ldr r0, _021DE068 ; =0x000001FF
+ mov r1, #3
+ and r3, r0
+ ldr r0, _021DE060 ; =0x00005984
+ str r3, [r4, #0xc]
+ ldr r0, [r4, r0]
+ bl FUN_020179E0
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x40
+ str r0, [sp, #4]
+ mov r0, #0x20
+ str r0, [sp, #8]
+ mov r0, #9
+ str r0, [sp, #0xc]
+ ldr r0, _021DE060 ; =0x00005984
+ mov r1, #3
+ ldr r0, [r4, r0]
+ mov r2, #0x18
+ bl FUN_02018540
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021DE060: .word 0x00005984
+_021DE064: .word 0x0000585C
+_021DE068: .word 0x000001FF
+
+ thumb_func_start MOD14_021DE06C
+MOD14_021DE06C: ; 0x021DE06C
+ push {r4, r5, r6, r7}
+ ldr r5, [sp, #0x10]
+ cmp r1, #0
+ beq _021DE0A2
+ ldrb r6, [r0, #2]
+ mov r4, #1
+ add r7, r6, #0
+ mov r6, #0x69
+ eor r7, r4
+ lsl r6, r6, #2
+ mul r6, r7
+ str r6, [r2]
+ mov r2, #0x17
+ mul r2, r1
+ ldrb r6, [r0, #1]
+ mov r1, #0x3f
+ add r2, r6, r2
+ and r1, r2
+ str r1, [r3]
+ ldrb r0, [r0, #2]
+ eor r0, r4
+ lsl r1, r0, #1
+ ldr r0, _021DE0C0 ; =0x021E656C
+ ldrh r0, [r0, r1]
+ str r0, [r5]
+ pop {r4, r5, r6, r7}
+ bx lr
+_021DE0A2:
+ ldrb r4, [r0, #2]
+ mov r1, #0x69
+ lsl r1, r1, #2
+ mul r1, r4
+ str r1, [r2]
+ ldrb r1, [r0, #1]
+ str r1, [r3]
+ ldrb r0, [r0, #2]
+ lsl r1, r0, #1
+ ldr r0, _021DE0C0 ; =0x021E656C
+ ldrh r0, [r0, r1]
+ str r0, [r5]
+ pop {r4, r5, r6, r7}
+ bx lr
+ nop
+_021DE0C0: .word 0x021E656C
+
+ thumb_func_start MOD14_021DE0C4
+MOD14_021DE0C4: ; 0x021DE0C4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r6, r2, #0
+ add r1, sp, #8
+ add r7, r3, #0
+ str r1, [sp]
+ add r1, r6, #0
+ add r2, sp, #0x10
+ add r3, sp, #0xc
+ add r5, r0, #0
+ bl MOD14_021DE06C
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r7, #0
+ bl MOD14_021DE138
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021DE1D0
+ ldr r0, [sp, #8]
+ add r1, r4, #0
+ str r0, [sp]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD14_021DE278
+ cmp r7, #0
+ beq _021DE12C
+ cmp r6, #0
+ bne _021DE12C
+ ldrb r3, [r5, #2]
+ mov r0, #0xb8
+ mul r0, r6
+ str r0, [sp]
+ ldr r0, _021DE130 ; =0x00000618
+ add r1, r5, #0
+ add r1, #0xa8
+ mul r0, r3
+ add r0, r1, r0
+ str r0, [sp, #4]
+ ldr r1, _021DE134 ; =0x00005980
+ ldrb r2, [r4]
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ bl MOD14_021DEB34
+_021DE12C:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE130: .word 0x00000618
+_021DE134: .word 0x00005980
+
+ thumb_func_start MOD14_021DE138
+MOD14_021DE138: ; 0x021DE138
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r2, #0
+ ldrb r2, [r1, #1]
+ add r7, r0, #0
+ add r5, r3, #0
+ lsl r1, r2, #1
+ add r2, r2, r1
+ ldr r1, _021DE1C4 ; =0x021E65AE
+ mov r0, #0x12
+ ldrb r1, [r1, r2]
+ add r2, sp, #8
+ mov r3, #0xa
+ bl FUN_02006C08
+ str r0, [sp, #4]
+ cmp r0, #0
+ beq _021DE1C0
+ cmp r5, #0
+ beq _021DE176
+ ldr r0, [sp, #8]
+ mov r1, #0x20
+ ldr r0, [r0, #0xc]
+ bl DC_FlushRange
+ ldr r0, [sp, #8]
+ lsl r1, r4, #5
+ ldr r0, [r0, #0xc]
+ mov r2, #0x20
+ bl GX_LoadBGPltt
+_021DE176:
+ ldr r0, _021DE1C8 ; =0x00005860
+ mov r6, #0
+ add r4, r6, #0
+ add r5, r7, r0
+_021DE17E:
+ str r4, [sp]
+ ldr r0, [sp, #8]
+ ldr r3, _021DE1CC ; =0x00007FFF
+ ldr r0, [r0, #0xc]
+ add r1, r5, #0
+ mov r2, #0x10
+ bl MOD14_021DDE40
+ add r6, r6, #1
+ add r4, r4, #2
+ add r5, #0x20
+ cmp r6, #8
+ blt _021DE17E
+ mov r2, #0x10
+ str r2, [sp]
+ ldr r1, _021DE1C8 ; =0x00005860
+ ldr r0, [sp, #8]
+ add r3, r7, r1
+ lsl r1, r6, #5
+ add r1, r3, r1
+ ldr r0, [r0, #0xc]
+ ldr r3, _021DE1CC ; =0x00007FFF
+ bl MOD14_021DDE40
+ ldr r0, _021DE1C8 ; =0x00005860
+ mov r1, #0x12
+ add r0, r7, r0
+ lsl r1, r1, #4
+ bl DC_FlushRange
+ ldr r0, [sp, #4]
+ bl FUN_02016A18
+_021DE1C0:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE1C4: .word 0x021E65AE
+_021DE1C8: .word 0x00005860
+_021DE1CC: .word 0x00007FFF
+
+ thumb_func_start MOD14_021DE1D0
+MOD14_021DE1D0: ; 0x021DE1D0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r2, #0
+ mov r2, #1
+ add r5, r1, #0
+ str r2, [sp]
+ ldrb r3, [r5, #1]
+ add r6, r0, #0
+ mov r0, #0x12
+ lsl r1, r3, #1
+ add r3, r3, r1
+ ldr r1, _021DE26C ; =0x021E65AD
+ ldrb r1, [r1, r3]
+ mov r3, #0xa
+ bl FUN_02006C98
+ str r0, [sp, #0x10]
+ cmp r0, #0
+ beq _021DE268
+ add r1, sp, #0x14
+ bl FUN_020B0030
+ cmp r0, #0
+ beq _021DE262
+ mov r0, #0xa
+ mov r1, #1
+ bl FUN_02018FF4
+ add r4, r0, #0
+ beq _021DE250
+ ldr r0, _021DE270 ; =0x00005984
+ ldr r0, [r6, r0]
+ str r0, [r4]
+ mov r0, #0x15
+ strb r0, [r4, #7]
+ mov r0, #4
+ strb r0, [r4, #8]
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0, #0x14]
+ str r0, [r4, #0xc]
+ mov r0, #0
+ ldr r1, [r5, #4]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021DE274 ; =0x00020100
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #4]
+ lsr r5, r3, #1
+ mov r3, #0x54
+ add r0, r4, #0
+ sub r3, r3, r5
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02016A18
+_021DE250:
+ ldr r3, [sp, #0x14]
+ ldr r0, _021DE270 ; =0x00005984
+ str r7, [sp]
+ ldr r2, [r3, #0x14]
+ ldr r0, [r6, r0]
+ ldr r3, [r3, #0x10]
+ mov r1, #3
+ bl FUN_02017E14
+_021DE262:
+ ldr r0, [sp, #0x10]
+ bl FUN_02016A18
+_021DE268:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE26C: .word 0x021E65AD
+_021DE270: .word 0x00005984
+_021DE274: .word 0x00020100
+
+ thumb_func_start MOD14_021DE278
+MOD14_021DE278: ; 0x021DE278
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r2, #0
+ mov r2, #1
+ str r2, [sp]
+ add r6, r3, #0
+ ldrb r3, [r1, #1]
+ add r5, r0, #0
+ mov r0, #0x12
+ lsl r1, r3, #1
+ add r3, r3, r1
+ ldr r1, _021DE2E0 ; =0x021E65AC
+ ldrb r1, [r1, r3]
+ mov r3, #0xa
+ bl FUN_02006C98
+ str r0, [sp, #4]
+ cmp r0, #0
+ beq _021DE2DC
+ add r1, sp, #8
+ bl FUN_020B0180
+ ldr r0, _021DE2E4 ; =0x00005984
+ mov r1, #3
+ ldr r0, [r5, r0]
+ bl FUN_0201886C
+ add r7, r0, #0
+ beq _021DE2C2
+ ldr r1, [sp, #0x20]
+ add r2, r4, #0
+ str r1, [sp]
+ ldr r1, [sp, #8]
+ add r3, r6, #0
+ add r1, #0xc
+ bl MOD14_021DECD4
+_021DE2C2:
+ ldr r0, [sp, #4]
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021DE2E4 ; =0x00005984
+ mov r3, #1
+ ldr r0, [r5, r0]
+ mov r1, #3
+ add r2, r7, #0
+ lsl r3, r3, #0xc
+ bl FUN_02017CE8
+_021DE2DC:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE2E0: .word 0x021E65AC
+_021DE2E4: .word 0x00005984
+
+ thumb_func_start MOD14_021DE2E8
+MOD14_021DE2E8: ; 0x021DE2E8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _021DE384 ; =0x00005984
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #3
+ add r6, r2, #0
+ bl FUN_02017B48
+ lsl r0, r0, #0x17
+ lsr r1, r0, #0xb
+ mov r0, #0xb8
+ add r7, r6, #0
+ mul r7, r0
+ lsl r0, r7, #0xc
+ str r1, [r5, #8]
+ add r1, r1, r0
+ str r1, [r5, #0x14]
+ ldr r0, [r5, #8]
+ sub r0, r1, r0
+ mov r1, #0x1e
+ bl _s32_div_f
+ str r0, [r5, #0x10]
+ ldr r0, [r5, #0x14]
+ asr r1, r0, #0xc
+ ldr r0, _021DE388 ; =0x000001FF
+ and r0, r1
+ str r0, [r5, #0x14]
+ mov r0, #0x1e
+ str r0, [r5, #4]
+ ldrb r0, [r5, #2]
+ strb r0, [r5, #3]
+ mov r0, #0x17
+ ldrb r1, [r5, #1]
+ mul r0, r6
+ add r0, r1, r0
+ strb r0, [r5, #1]
+ ldrb r1, [r5, #1]
+ mov r0, #0x3f
+ and r0, r1
+ strb r0, [r5, #1]
+ ldrb r1, [r5, #2]
+ mov r0, #1
+ eor r0, r1
+ strb r0, [r5, #2]
+ ldrb r1, [r4]
+ add r0, r5, #0
+ bl MOD14_021DE6B4
+ ldr r1, [r5, #0x10]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD14_021DE48C
+ ldrb r0, [r4]
+ mov r1, #1
+ mov r2, #0
+ str r0, [r5, #0x30]
+ ldrb r0, [r5, #2]
+ str r0, [r5, #0x34]
+ add r0, r5, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0x9c
+ str r2, [r0]
+ ldr r0, _021DE38C ; =MOD14_021DE39C
+ add r1, r5, #0
+ bl FUN_0200CA44
+ ldr r0, _021DE390 ; =MOD14_021DE3E4
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD14_021DDD40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DE384: .word 0x00005984
+_021DE388: .word 0x000001FF
+_021DE38C: .word MOD14_021DE39C
+_021DE390: .word MOD14_021DE3E4
+
+ thumb_func_start MOD14_021DE394
+MOD14_021DE394: ; 0x021DE394
+ add r0, #0x9c
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021DE39C
+MOD14_021DE39C: ; 0x021DE39C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _021DE3C2
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _021DE3DC
+ ldr r1, [r4, #0x10]
+ add r0, r4, #0
+ bl MOD14_021DE514
+ mov r0, #0
+ add r4, #0x98
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_021DE3C2:
+ ldr r0, [r4, #0x14]
+ str r0, [r4, #0xc]
+ ldr r0, _021DE3E0 ; =0x00005988
+ ldr r0, [r4, r0]
+ bl MOD14_021DC424
+ strb r0, [r4]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #1
+ add r4, #0x9c
+ str r0, [r4]
+_021DE3DC:
+ pop {r3, r4, r5, pc}
+ nop
+_021DE3E0: .word 0x00005988
+
+ thumb_func_start MOD14_021DE3E4
+MOD14_021DE3E4: ; 0x021DE3E4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldrb r3, [r5, #3]
+ add r6, r0, #0
+ mov r0, #1
+ add r4, r3, #0
+ eor r4, r0
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ beq _021DE45C
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r2, [r0]
+ cmp r2, #2
+ bhs _021DE47E
+ ldr r6, _021DE480 ; =0x00000618
+ add r1, #0xa8
+ mul r6, r3
+ add r0, r5, #0
+ add r1, r1, r6
+ bl MOD14_021DEBCC
+ ldr r1, _021DE480 ; =0x00000618
+ add r2, r5, #0
+ add r2, #0xa8
+ mul r1, r4
+ add r1, r2, r1
+ add r2, r5, #0
+ add r2, #0x98
+ ldr r2, [r2]
+ add r0, r5, #0
+ bl MOD14_021DEC24
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ mov r2, #0
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x98
+ str r1, [r0]
+ ldr r0, [r5, #8]
+ asr r1, r0, #0xc
+ ldr r0, _021DE484 ; =0x000001FF
+ and r0, r1
+ str r0, [r5, #0xc]
+ ldr r1, [r5, #8]
+ ldr r0, [r5, #0x10]
+ add r0, r1, r0
+ str r0, [r5, #8]
+ ldr r0, _021DE488 ; =0x00005984
+ ldr r3, [r5, #0xc]
+ ldr r0, [r5, r0]
+ mov r1, #3
+ bl FUN_020179E0
+ ldr r0, [r5, #4]
+ sub r0, r0, #1
+ str r0, [r5, #4]
+ pop {r4, r5, r6, pc}
+_021DE45C:
+ ldr r0, _021DE488 ; =0x00005984
+ ldr r3, [r5, #0x14]
+ ldr r0, [r5, r0]
+ mov r1, #3
+ mov r2, #0
+ bl FUN_020179E0
+ ldr r1, _021DE480 ; =0x00000618
+ add r0, r5, #0
+ add r5, #0xa8
+ mul r1, r4
+ add r1, r5, r1
+ bl MOD14_021DEC7C
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_021DE47E:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DE480: .word 0x00000618
+_021DE484: .word 0x000001FF
+_021DE488: .word 0x00005984
+
+ thumb_func_start MOD14_021DE48C
+MOD14_021DE48C: ; 0x021DE48C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r7, #0
+ str r0, [sp, #8]
+ add r0, #0xa8
+ str r1, [sp]
+ str r2, [sp, #4]
+ add r6, r7, #0
+ add r4, r5, #0
+ str r0, [sp, #8]
+_021DE4A2:
+ ldr r0, _021DE504 ; =0x0000585C
+ ldr r0, [r5, r0]
+ add r0, #0x70
+ add r0, r0, r6
+ lsl r1, r0, #0xc
+ ldr r0, [sp]
+ str r1, [r4, #0x68]
+ sub r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ ldr r0, _021DE504 ; =0x0000585C
+ ldr r0, [r5, r0]
+ add r0, #0x70
+ add r1, r0, r6
+ ldr r0, [sp, #4]
+ add r0, r0, r1
+ lsl r1, r0, #0xc
+ ldr r0, [sp]
+ str r1, [r4, #0x38]
+ sub r0, r1, r0
+ str r0, [r4, #0x50]
+ asr r2, r0, #0xc
+ ldr r0, _021DE508 ; =0x00005854
+ ldr r0, [r5, r0]
+ cmp r2, r0
+ ble _021DE4F6
+ ldr r0, _021DE50C ; =0x00005858
+ ldr r0, [r5, r0]
+ cmp r2, r0
+ bge _021DE4F6
+ ldrb r3, [r5, #3]
+ mov r1, #1
+ add r0, r5, #0
+ eor r1, r3
+ ldr r3, _021DE510 ; =0x00000618
+ mul r3, r1
+ ldr r1, [sp, #8]
+ add r1, r1, r3
+ add r3, r7, #0
+ bl MOD14_021DE5B4
+_021DE4F6:
+ add r7, r7, #1
+ add r6, #0x18
+ add r4, r4, #4
+ cmp r7, #6
+ blt _021DE4A2
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE504: .word 0x0000585C
+_021DE508: .word 0x00005854
+_021DE50C: .word 0x00005858
+_021DE510: .word 0x00000618
+
+ thumb_func_start MOD14_021DE514
+MOD14_021DE514: ; 0x021DE514
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r6, r1, #0
+ ldrb r1, [r5, #3]
+ str r0, [sp]
+ add r0, #0xa8
+ str r0, [sp]
+ ldr r0, _021DE5A8 ; =0x00000618
+ add r2, r1, #0
+ mul r2, r0
+ str r2, [sp, #4]
+ mov r2, #1
+ eor r1, r2
+ mul r0, r1
+ mov r7, #0
+ add r4, r5, #0
+ str r0, [sp, #8]
+_021DE538:
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r1, _021DE5AC ; =0x00005854
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ asr r0, r0, #0xc
+ cmp r0, r1
+ ble _021DE550
+ ldr r1, _021DE5B0 ; =0x00005858
+ ldr r1, [r5, r1]
+ cmp r0, r1
+ blt _021DE55E
+_021DE550:
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ add r1, r2, r1
+ add r2, r7, #0
+ bl MOD14_021DE68C
+_021DE55E:
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ sub r0, r0, r6
+ str r0, [r4, #0x68]
+ sub r1, r0, r6
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ ldr r0, [r4, #0x50]
+ sub r0, r0, r6
+ str r0, [r4, #0x38]
+ sub r0, r0, r6
+ str r0, [r4, #0x50]
+ asr r2, r0, #0xc
+ ldr r0, _021DE5AC ; =0x00005854
+ ldr r0, [r5, r0]
+ cmp r2, r0
+ ble _021DE59A
+ ldr r0, _021DE5B0 ; =0x00005858
+ ldr r0, [r5, r0]
+ cmp r2, r0
+ bge _021DE59A
+ ldr r3, [sp]
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ add r1, r3, r1
+ add r3, r7, #0
+ bl MOD14_021DE5B4
+_021DE59A:
+ add r7, r7, #1
+ add r4, r4, #4
+ cmp r7, #6
+ blt _021DE538
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DE5A8: .word 0x00000618
+_021DE5AC: .word 0x00005854
+_021DE5B0: .word 0x00005858
+
+ thumb_func_start MOD14_021DE5B4
+MOD14_021DE5B4: ; 0x021DE5B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r1, #0
+ ldr r1, _021DE678 ; =0x00005988
+ str r0, [sp, #0x1c]
+ ldr r0, [r0, r1]
+ str r2, [sp, #0x20]
+ add r4, r3, #0
+ bl MOD14_021DC44C
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x1c]
+ mov r7, #0x28
+ ldr r1, [r0, #0x34]
+ mov r0, #0x1e
+ add r2, r1, #0
+ lsl r0, r0, #4
+ mul r2, r0
+ add r2, #0x58
+ lsl r0, r4, #4
+ add r0, r2, r0
+ str r0, [sp, #0x28]
+ mov r0, #0x34
+ mul r0, r4
+ add r5, r5, r0
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ ldr r1, _021DE67C ; =0x00000CD8
+ ldr r0, [sp, #0x1c]
+ add r1, r0, r1
+ lsl r0, r7, #4
+ mul r0, r4
+ add r0, r1, r0
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x1c]
+ lsl r1, r4, #1
+ add r6, r0, r1
+_021DE5FE:
+ ldr r0, [r5]
+ cmp r0, #0
+ bne _021DE64E
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x30]
+ ldr r1, [r1, #0x30]
+ add r2, r4, #0
+ bl FUN_0206B5E4
+ mov r1, #0xab
+ mov r2, #0
+ str r0, [sp, #0x34]
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021DE64E
+ add r0, r4, #0
+ bl MOD14_021DEB24
+ ldr r1, [sp, #0x24]
+ ldr r2, _021DE680 ; =0x00005814
+ str r1, [sp]
+ ldr r1, [sp, #0x20]
+ ldr r3, _021DE684 ; =0x000057D8
+ str r1, [sp, #4]
+ str r7, [sp, #8]
+ mov r1, #2
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #0x14]
+ str r5, [sp, #0x18]
+ ldr r0, _021DE688 ; =0x00005980
+ ldrh r2, [r6, r2]
+ ldr r0, [r1, r0]
+ ldrh r3, [r6, r3]
+ ldr r1, [sp, #0x34]
+ bl MOD14_021E0A60
+_021DE64E:
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0x24]
+ add r0, #0x60
+ str r0, [sp, #0x28]
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ add r5, r5, r0
+ mov r0, #0xf
+ lsl r0, r0, #8
+ add r0, r1, r0
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x2c]
+ add r6, #0xc
+ add r0, r0, #1
+ add r4, r4, #6
+ add r7, #0x18
+ str r0, [sp, #0x2c]
+ cmp r0, #5
+ blt _021DE5FE
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE678: .word 0x00005988
+_021DE67C: .word 0x00000CD8
+_021DE680: .word 0x00005814
+_021DE684: .word 0x000057D8
+_021DE688: .word 0x00005980
+
+ thumb_func_start MOD14_021DE68C
+MOD14_021DE68C: ; 0x021DE68C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r0, #0x34
+ mov r4, #0
+ mov r7, #0x4e
+ add r5, r1, #0
+ mul r0, r2
+ add r5, r5, r0
+ add r6, r4, #0
+ lsl r7, r7, #2
+_021DE69E:
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021DE6AA
+ bl FUN_0201FFC8
+ str r6, [r5]
+_021DE6AA:
+ add r4, r4, #1
+ add r5, r5, r7
+ cmp r4, #5
+ blt _021DE69E
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021DE6B4
+MOD14_021DE6B4: ; 0x021DE6B4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r1, [sp, #4]
+ ldr r1, _021DE71C ; =0x00005988
+ str r0, [sp]
+ ldr r0, [r0, r1]
+ bl MOD14_021DC44C
+ ldr r4, [sp]
+ str r0, [sp, #8]
+ ldr r1, _021DE720 ; =0x00000CD8
+ add r0, r4, #0
+ mov r6, #0
+ add r5, r0, r1
+_021DE6D0:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #4]
+ add r2, r6, #0
+ bl FUN_0206B5E4
+ mov r1, #5
+ mov r2, #0
+ add r7, r0, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021DE70A
+ ldr r1, _021DE724 ; =0x00005814
+ strh r0, [r4, r1]
+ add r0, r7, #0
+ bl FUN_0206B688
+ ldr r1, _021DE728 ; =0x000057D8
+ mov r3, #0xa
+ strh r0, [r4, r1]
+ ldr r2, _021DE728 ; =0x000057D8
+ ldr r1, [sp]
+ ldr r0, _021DE72C ; =0x00005980
+ ldrh r2, [r4, r2]
+ ldr r0, [r1, r0]
+ add r1, r5, #0
+ lsl r3, r3, #6
+ bl MOD14_021E0BAC
+_021DE70A:
+ mov r0, #0xa
+ lsl r0, r0, #6
+ add r6, r6, #1
+ add r4, r4, #2
+ add r5, r5, r0
+ cmp r6, #0x1e
+ blo _021DE6D0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE71C: .word 0x00005988
+_021DE720: .word 0x00000CD8
+_021DE724: .word 0x00005814
+_021DE728: .word 0x000057D8
+_021DE72C: .word 0x00005980
+
+ thumb_func_start MOD14_021DE730
+MOD14_021DE730: ; 0x021DE730
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r1, #0
+ add r0, #0xa3
+ strb r1, [r0]
+ mov r0, #0xa
+ mov r1, #0x10
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021DE782
+ str r5, [r4]
+ strh r6, [r4, #4]
+ ldr r0, [sp]
+ strh r7, [r4, #6]
+ str r0, [r4, #0xc]
+ mov r0, #2
+ strh r0, [r4, #0xa]
+ cmp r7, r6
+ ble _021DE762
+ mov r0, #1
+ b _021DE764
+_021DE762:
+ sub r0, r0, #3
+_021DE764:
+ strh r0, [r4, #8]
+ ldr r0, _021DE784 ; =MOD14_021DE788
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021DE77C
+ mov r0, #1
+ add r5, #0xa3
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DE77C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_021DE782:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE784: .word MOD14_021DE788
+
+ thumb_func_start MOD14_021DE788
+MOD14_021DE788: ; 0x021DE788
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0xa
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ beq _021DE79C
+ sub r0, r0, #1
+ strh r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_021DE79C:
+ mov r2, #4
+ mov r1, #6
+ ldrsh r0, [r4, r2]
+ ldrsh r1, [r4, r1]
+ cmp r0, r1
+ beq _021DE7CA
+ mov r1, #8
+ ldrsh r1, [r4, r1]
+ add r0, r0, r1
+ strh r0, [r4, #4]
+ ldr r1, [r4]
+ ldr r0, _021DE7DC ; =0x00005860
+ add r1, r1, r0
+ ldrsh r0, [r4, r2]
+ mov r2, #0x20
+ lsl r0, r0, #5
+ add r0, r1, r0
+ ldr r1, [r4, #0xc]
+ bl GX_LoadBGPltt
+ mov r0, #2
+ strh r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_021DE7CA:
+ ldr r1, _021DE7E0 ; =MOD14_021DE7E4
+ ldr r2, [r4]
+ add r0, r4, #0
+ bl MOD14_021DDF30
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DE7DC: .word 0x00005860
+_021DE7E0: .word MOD14_021DE7E4
+
+ thumb_func_start MOD14_021DE7E4
+MOD14_021DE7E4: ; 0x021DE7E4
+ mov r1, #0
+ add r0, #0xa3
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD14_021DE7EC
+MOD14_021DE7EC: ; 0x021DE7EC
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r3, _021DE878 ; =0x021E6B90
+ add r4, r1, #0
+ ldr r1, [r3, #0xc]
+ cmp r1, #0
+ beq _021DE806
+ cmp r1, #1
+ beq _021DE83C
+ cmp r1, #2
+ beq _021DE868
+ add sp, #4
+ pop {r3, r4, pc}
+_021DE806:
+ ldr r0, _021DE87C ; =0x021E6B94
+ ldr r2, _021DE880 ; =0x021E6B98
+ str r0, [sp]
+ ldr r3, _021DE884 ; =0x021E6B90
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021DE06C
+ ldr r0, _021DE888 ; =0x00005988
+ ldr r0, [r4, r0]
+ bl MOD14_021DC448
+ ldr r2, _021DE878 ; =0x021E6B90
+ add r1, r0, #0
+ ldr r0, _021DE88C ; =0x021E69E0
+ ldr r2, [r2, #4]
+ str r1, [r0]
+ add r0, r4, #0
+ mov r3, #0
+ bl MOD14_021DE138
+ ldr r0, _021DE878 ; =0x021E6B90
+ add sp, #4
+ ldr r1, [r0, #0xc]
+ add r1, r1, #1
+ str r1, [r0, #0xc]
+ pop {r3, r4, pc}
+_021DE83C:
+ ldr r0, [r3, #4]
+ ldr r1, _021DE88C ; =0x021E69E0
+ str r0, [sp]
+ ldr r2, [r3]
+ ldr r1, [r1]
+ ldr r3, [r3, #8]
+ add r0, r4, #0
+ bl MOD14_021DE278
+ ldr r1, _021DE88C ; =0x021E69E0
+ ldr r2, _021DE878 ; =0x021E6B90
+ ldr r1, [r1]
+ ldr r2, [r2, #8]
+ add r0, r4, #0
+ bl MOD14_021DE1D0
+ ldr r0, _021DE878 ; =0x021E6B90
+ add sp, #4
+ ldr r1, [r0, #0xc]
+ add r1, r1, #1
+ str r1, [r0, #0xc]
+ pop {r3, r4, pc}
+_021DE868:
+ mov r1, #0
+ add r4, #0xa3
+ strb r1, [r4]
+ str r1, [r3, #0xc]
+ bl FUN_0200CAB4
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021DE878: .word 0x021E6B90
+_021DE87C: .word 0x021E6B94
+_021DE880: .word 0x021E6B98
+_021DE884: .word 0x021E6B90
+_021DE888: .word 0x00005988
+_021DE88C: .word 0x021E69E0
+
+ thumb_func_start MOD14_021DE890
+MOD14_021DE890: ; 0x021DE890
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021DE8C0 ; =MOD14_021DE7EC
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA98
+ cmp r0, #0
+ beq _021DE8A6
+ mov r1, #1
+ b _021DE8A8
+_021DE8A6:
+ mov r1, #0
+_021DE8A8:
+ add r0, r4, #0
+ add r0, #0xa3
+ add r4, #0xa3
+ strb r1, [r0]
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _021DE8BC
+ ldr r0, _021DE8C4 ; =0x021E6B90
+ mov r1, #0
+ str r1, [r0, #0xc]
+_021DE8BC:
+ pop {r4, pc}
+ nop
+_021DE8C0: .word MOD14_021DE7EC
+_021DE8C4: .word 0x021E6B90
+
+ thumb_func_start MOD14_021DE8C8
+MOD14_021DE8C8: ; 0x021DE8C8
+ push {r4, lr}
+ add r2, r0, #0
+ mov r1, #0
+ add r2, #0xa2
+ strb r1, [r2]
+ ldrb r3, [r0, #2]
+ mov r2, #8
+ lsl r4, r3, #1
+ ldr r3, _021DE8E4 ; =0x021E656C
+ ldrh r3, [r3, r4]
+ lsl r3, r3, #5
+ bl MOD14_021DE730
+ pop {r4, pc}
+ .align 2, 0
+_021DE8E4: .word 0x021E656C
+
+ thumb_func_start MOD14_021DE8E8
+MOD14_021DE8E8: ; 0x021DE8E8
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r1, #0xa2
+ ldrb r1, [r1]
+ cmp r1, #4
+ bhi _021DE976
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DE902: ; jump table
+ .short _021DE90C - _021DE902 - 2 ; case 0
+ .short _021DE922 - _021DE902 - 2 ; case 1
+ .short _021DE934 - _021DE902 - 2 ; case 2
+ .short _021DE94A - _021DE902 - 2 ; case 3
+ .short _021DE96A - _021DE902 - 2 ; case 4
+_021DE90C:
+ add r0, #0xa3
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _021DE976
+ add r0, r4, #0
+ add r0, #0xa2
+ ldrb r0, [r0]
+ add r4, #0xa2
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021DE976
+_021DE922:
+ bl MOD14_021DE890
+ add r0, r4, #0
+ add r0, #0xa2
+ ldrb r0, [r0]
+ add r4, #0xa2
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021DE976
+_021DE934:
+ add r0, #0xa3
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _021DE976
+ add r0, r4, #0
+ add r0, #0xa2
+ ldrb r0, [r0]
+ add r4, #0xa2
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021DE976
+_021DE94A:
+ ldrb r3, [r4, #2]
+ mov r1, #8
+ mov r2, #0
+ lsl r5, r3, #1
+ ldr r3, _021DE97C ; =0x021E656C
+ ldrh r3, [r3, r5]
+ lsl r3, r3, #5
+ bl MOD14_021DE730
+ add r0, r4, #0
+ add r0, #0xa2
+ ldrb r0, [r0]
+ add r4, #0xa2
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021DE976
+_021DE96A:
+ add r4, #0xa3
+ ldrb r0, [r4]
+ cmp r0, #0
+ bne _021DE976
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DE976:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021DE97C: .word 0x021E656C
+
+ thumb_func_start MOD14_021DE980
+MOD14_021DE980: ; 0x021DE980
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r2, #0
+ add r4, r1, #0
+ mov r0, #0x34
+ mul r4, r0
+ add r0, r5, #0
+ ldrb r2, [r5, #2]
+ ldr r1, _021DE9CC ; =0x00000618
+ add r0, #0xa8
+ mul r1, r2
+ add r0, r0, r1
+ add r6, r3, #0
+ add r0, r0, r4
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD14_021E0930
+ ldr r0, _021DE9D0 ; =0x00005980
+ add r1, r6, #0
+ ldr r0, [r5, r0]
+ add r2, r7, #0
+ bl MOD14_021E0BBC
+ ldr r0, _021DE9D0 ; =0x00005980
+ add r3, r5, #0
+ ldrb r2, [r5, #2]
+ ldr r1, _021DE9CC ; =0x00000618
+ add r3, #0xa8
+ mul r1, r2
+ add r1, r3, r1
+ ldr r0, [r5, r0]
+ add r1, r1, r4
+ mov r2, #1
+ bl MOD14_021E08E4
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DE9CC: .word 0x00000618
+_021DE9D0: .word 0x00005980
+
+ thumb_func_start MOD14_021DE9D4
+MOD14_021DE9D4: ; 0x021DE9D4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldrb r0, [r6, #2]
+ add r7, r1, #0
+ add r3, r6, #0
+ str r0, [sp]
+ ldr r1, _021DEA30 ; =0x00000618
+ ldr r0, [sp]
+ add r3, #0xa8
+ mul r1, r0
+ mov r0, #0x34
+ add r4, r7, #0
+ mul r4, r0
+ add r5, r3, r1
+ add r0, r2, #0
+ add r1, r5, r4
+ mov r2, #1
+ bl MOD14_021E0930
+ ldr r0, _021DEA34 ; =0x00005980
+ add r1, r5, r4
+ ldr r0, [r6, r0]
+ mov r2, #0
+ bl MOD14_021E0C5C
+ mov r2, #0x1e
+ ldr r0, _021DEA34 ; =0x00005980
+ ldr r3, [sp]
+ lsl r2, r2, #4
+ mul r2, r3
+ ldr r0, [r6, r0]
+ add r2, #0x58
+ lsl r3, r7, #4
+ add r1, r5, r4
+ add r2, r2, r3
+ bl MOD14_021E0BBC
+ add r0, r7, #0
+ bl MOD14_021DEB24
+ add r1, r0, #0
+ ldr r0, [r5, r4]
+ bl MOD14_021DDE24
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DEA30: .word 0x00000618
+_021DEA34: .word 0x00005980
+
+ thumb_func_start MOD14_021DEA38
+MOD14_021DEA38: ; 0x021DEA38
+ ldrb r2, [r0, #2]
+ add r3, r0, #0
+ ldr r0, _021DEA4C ; =0x00000618
+ add r3, #0xa8
+ mul r0, r2
+ add r2, r3, r0
+ mov r0, #0x34
+ mul r0, r1
+ add r0, r2, r0
+ bx lr
+ .align 2, 0
+_021DEA4C: .word 0x00000618
+
+ thumb_func_start MOD14_021DEA50
+MOD14_021DEA50: ; 0x021DEA50
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r5, r0, #0
+ ldr r0, _021DEB14 ; =0x00005988
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_0206B330
+ mov r4, #0
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ str r0, [sp, #0x28]
+ add r0, #0xa8
+ add r7, r4, #0
+ str r4, [sp, #0x2c]
+ str r0, [sp, #0x28]
+_021DEA70:
+ ldr r0, _021DEB14 ; =0x00005988
+ ldr r1, [sp, #0x1c]
+ ldr r0, [r5, r0]
+ add r2, r4, #0
+ ldr r0, [r0]
+ bl FUN_0206B5E4
+ mov r1, #0xab
+ mov r2, #0
+ str r0, [sp, #0x20]
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021DEB02
+ ldrb r1, [r5, #2]
+ ldr r0, _021DEB18 ; =0x00000618
+ mul r0, r1
+ str r0, [sp, #0x18]
+ add r0, r5, r0
+ add r0, r7, r0
+ str r1, [sp, #0x14]
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021DEB02
+ add r0, r4, #0
+ bl MOD14_021DEB24
+ str r0, [sp, #0x24]
+ add r0, r4, #0
+ mov r1, #6
+ bl _s32_div_f
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #6
+ bl _s32_div_f
+ mov ip, r0
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, [sp, #0x24]
+ ldr r3, [sp, #0x10]
+ str r0, [sp, #4]
+ ldr r1, [sp, #0x14]
+ mov r0, #0x1e
+ add r2, r1, #0
+ lsl r0, r0, #4
+ mul r2, r0
+ ldr r0, [sp, #0x2c]
+ add r2, #0x58
+ add r0, r2, r0
+ str r0, [sp, #8]
+ ldr r1, [sp, #0x28]
+ ldr r0, [sp, #0x18]
+ ldr r2, _021DEB1C ; =0x0000585C
+ add r0, r1, r0
+ add r0, r0, r7
+ str r0, [sp, #0xc]
+ ldr r6, [r5, r2]
+ mov r2, #0x18
+ ldr r0, _021DEB20 ; =0x00005980
+ mul r2, r3
+ add r6, #0x70
+ add r2, r6, r2
+ mov r6, ip
+ mov r3, #0x18
+ mul r3, r6
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0x20]
+ add r3, #0x28
+ bl MOD14_021E0940
+_021DEB02:
+ ldr r0, [sp, #0x2c]
+ add r4, r4, #1
+ add r0, #0x10
+ add r7, #0x34
+ str r0, [sp, #0x2c]
+ cmp r4, #0x1e
+ blt _021DEA70
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DEB14: .word 0x00005988
+_021DEB18: .word 0x00000618
+_021DEB1C: .word 0x0000585C
+_021DEB20: .word 0x00005980
+
+ thumb_func_start MOD14_021DEB24
+MOD14_021DEB24: ; 0x021DEB24
+ lsl r1, r0, #1
+ ldr r0, _021DEB30 ; =0x021E6570
+ ldrh r0, [r0, r1]
+ add r0, #0xb
+ bx lr
+ nop
+_021DEB30: .word 0x021E6570
+
+ thumb_func_start MOD14_021DEB34
+MOD14_021DEB34: ; 0x021DEB34
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ str r0, [sp, #0x10]
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ add r6, r3, #0
+ mul r6, r0
+ mov r0, #0x28
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x48]
+ mov r4, #0
+ ldr r7, [sp, #0x4c]
+ str r1, [sp, #0x14]
+ str r2, [sp, #0x18]
+ add r6, #0x58
+ str r4, [sp, #0x24]
+ str r0, [sp, #0x20]
+_021DEB56:
+ mov r0, #0
+ str r0, [sp, #0x28]
+ add r5, r0, #0
+_021DEB5C:
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r0, [r0, #0x40]
+ add r2, r4, #0
+ ldr r0, [r0]
+ bl FUN_0206B5E4
+ mov r1, #5
+ mov r2, #0
+ str r0, [sp, #0x2c]
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _021DEBA0
+ add r0, r4, #0
+ bl MOD14_021DEB24
+ mov r1, #2
+ str r1, [sp]
+ str r0, [sp, #4]
+ str r6, [sp, #8]
+ ldr r3, [sp, #0x10]
+ ldr r2, _021DEBC8 ; =0x0000585C
+ str r7, [sp, #0xc]
+ ldr r2, [r3, r2]
+ ldr r0, [sp, #0x14]
+ add r2, #0x70
+ add r3, r2, r5
+ ldr r2, [sp, #0x20]
+ ldr r1, [sp, #0x2c]
+ add r2, r2, r3
+ ldr r3, [sp, #0x1c]
+ bl MOD14_021E0940
+_021DEBA0:
+ ldr r0, [sp, #0x28]
+ add r7, #0x34
+ add r0, r0, #1
+ add r4, r4, #1
+ add r6, #0x10
+ add r5, #0x18
+ str r0, [sp, #0x28]
+ cmp r0, #6
+ blo _021DEB5C
+ ldr r0, [sp, #0x1c]
+ add r0, #0x18
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x24]
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #5
+ blo _021DEB56
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DEBC8: .word 0x0000585C
+
+ thumb_func_start MOD14_021DEBCC
+MOD14_021DEBCC: ; 0x021DEBCC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x18
+ mul r0, r2
+ add r5, r1, #0
+ str r0, [sp, #8]
+_021DEBDE:
+ ldr r1, [sp]
+ ldr r0, [sp, #8]
+ mov r7, #0
+ add r4, r1, r0
+_021DEBE6:
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021DEC0A
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0xc
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x68]
+ str r0, [sp, #0xc]
+ ldr r0, [r5]
+ bl FUN_02020044
+_021DEC0A:
+ add r7, r7, #1
+ add r5, #0x34
+ add r4, r4, #4
+ cmp r7, #6
+ blt _021DEBE6
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #5
+ blt _021DEBDE
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DEC24
+MOD14_021DEC24: ; 0x021DEC24
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x18
+ mul r0, r2
+ add r5, r1, #0
+ str r0, [sp, #8]
+_021DEC36:
+ ldr r1, [sp]
+ ldr r0, [sp, #8]
+ mov r7, #0
+ add r4, r1, r0
+_021DEC3E:
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021DEC62
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0xc
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x38]
+ str r0, [sp, #0xc]
+ ldr r0, [r5]
+ bl FUN_02020044
+_021DEC62:
+ add r7, r7, #1
+ add r5, #0x34
+ add r4, r4, #4
+ cmp r7, #6
+ blt _021DEC3E
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #5
+ blt _021DEC36
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DEC7C
+MOD14_021DEC7C: ; 0x021DEC7C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #0x10]
+ mov r0, #0x28
+ add r5, r1, #0
+ str r0, [sp]
+_021DEC8E:
+ ldr r0, [sp]
+ mov r6, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ add r4, r6, #0
+_021DEC98:
+ ldr r0, _021DECD0 ; =0x0000585C
+ ldr r0, [r7, r0]
+ add r0, #0x70
+ add r0, r0, r4
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021DECB0
+ add r1, sp, #8
+ bl FUN_02020044
+_021DECB0:
+ add r6, r6, #1
+ add r5, #0x34
+ add r4, #0x18
+ cmp r6, #6
+ blt _021DEC98
+ ldr r0, [sp]
+ add r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #5
+ blt _021DEC8E
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DECD0: .word 0x0000585C
+
+ thumb_func_start MOD14_021DECD4
+MOD14_021DECD4: ; 0x021DECD4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ add r0, r2, #0
+ add r7, r3, #0
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ cmp r0, #0x20
+ blo _021DECF0
+ mov r1, #2
+ ldr r0, [sp]
+ lsl r1, r1, #0xa
+ add r0, r0, r1
+ str r0, [sp]
+_021DECF0:
+ mov r0, #0
+ mov ip, r0
+ ldr r0, [sp, #0x28]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ orr r0, r7
+ mov lr, r0
+_021DECFE:
+ ldr r0, [sp, #8]
+ mov r2, #0
+ lsl r0, r0, #0x1b
+ lsr r1, r0, #0x1a
+ ldr r0, [sp]
+ add r4, r2, #0
+ add r3, r0, r1
+ mov r0, ip
+ lsl r1, r0, #1
+ ldr r0, [sp, #4]
+ add r6, r0, r1
+_021DED14:
+ lsl r0, r4, #1
+ ldrh r1, [r6, r0]
+ mov r0, #3
+ lsl r0, r0, #0xa
+ add r5, r1, #0
+ and r5, r0
+ ldr r0, _021DEDCC ; =0x000003FF
+ add r2, r2, #1
+ and r0, r1
+ add r0, r0, r7
+ add r1, r5, #0
+ orr r1, r0
+ ldr r0, [sp, #0xc]
+ add r4, #0x15
+ orr r0, r1
+ strh r0, [r3]
+ add r3, #0x40
+ cmp r2, #0x14
+ blo _021DED14
+ mov r1, lr
+ lsl r1, r1, #0x10
+ mov r0, #0
+ lsr r1, r1, #0x10
+_021DED42:
+ add r0, r0, #1
+ strh r1, [r3]
+ add r3, #0x40
+ cmp r0, #4
+ blo _021DED42
+ ldr r0, [sp, #8]
+ add r1, r0, #1
+ mov r0, #0x3f
+ and r0, r1
+ str r0, [sp, #8]
+ bne _021DED62
+ mov r1, #2
+ ldr r0, [sp]
+ lsl r1, r1, #0xa
+ sub r0, r0, r1
+ str r0, [sp]
+_021DED62:
+ ldr r0, [sp, #8]
+ cmp r0, #0x20
+ bne _021DED72
+ mov r1, #2
+ ldr r0, [sp]
+ lsl r1, r1, #0xa
+ add r0, r0, r1
+ str r0, [sp]
+_021DED72:
+ mov r0, ip
+ add r0, r0, #1
+ mov ip, r0
+ cmp r0, #0x15
+ blo _021DECFE
+ mov r1, lr
+ mov r3, #2
+ mov r0, #0
+ lsl r1, r1, #0x10
+ lsl r3, r3, #0xa
+ lsr r5, r1, #0x10
+ add r7, r0, #0
+ mov r4, #0x3f
+ add r2, r3, #0
+_021DED8E:
+ ldr r1, [sp, #8]
+ lsl r1, r1, #0x1b
+ lsr r6, r1, #0x1a
+ ldr r1, [sp]
+ add r1, r1, r6
+ add r6, r7, #0
+_021DED9A:
+ add r6, r6, #1
+ strh r5, [r1]
+ add r1, #0x40
+ cmp r6, #0x18
+ blo _021DED9A
+ ldr r1, [sp, #8]
+ add r1, r1, #1
+ and r1, r4
+ str r1, [sp, #8]
+ bne _021DEDB4
+ ldr r1, [sp]
+ sub r1, r1, r3
+ str r1, [sp]
+_021DEDB4:
+ ldr r1, [sp, #8]
+ cmp r1, #0x20
+ bne _021DEDC0
+ ldr r1, [sp]
+ add r1, r1, r2
+ str r1, [sp]
+_021DEDC0:
+ add r0, r0, #1
+ cmp r0, #2
+ blo _021DED8E
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DEDCC: .word 0x000003FF
+
+ thumb_func_start MOD14_021DEDD0
+MOD14_021DEDD0: ; 0x021DEDD0
+ push {r4, lr}
+ add r2, r0, #0
+ add r0, #0xa0
+ strh r1, [r0]
+ add r0, r2, #0
+ mov r3, #0
+ add r0, #0xa4
+ strb r3, [r0]
+ ldr r0, _021DEE00 ; =0x00005980
+ add r4, r2, #0
+ ldrb r3, [r2, #2]
+ ldr r0, [r2, r0]
+ ldr r2, _021DEE04 ; =0x00000618
+ add r4, #0xa8
+ mul r2, r3
+ add r3, r4, r2
+ mov r2, #0x34
+ mul r2, r1
+ add r1, r3, r2
+ mov r2, #1
+ bl MOD14_021E0C20
+ pop {r4, pc}
+ nop
+_021DEE00: .word 0x00005980
+_021DEE04: .word 0x00000618
+
+ thumb_func_start MOD14_021DEE08
+MOD14_021DEE08: ; 0x021DEE08
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldrb r1, [r5, #2]
+ ldr r0, _021DEE9C ; =0x00000618
+ add r2, r5, #0
+ add r2, #0xa8
+ mul r0, r1
+ add r4, r2, r0
+ add r0, r5, #0
+ add r0, #0xa0
+ ldrh r1, [r0]
+ mov r0, #0x34
+ add r6, r1, #0
+ mul r6, r0
+ add r0, r5, #0
+ add r0, #0xa4
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021DEE34
+ cmp r0, #1
+ beq _021DEE86
+ b _021DEE98
+_021DEE34:
+ ldr r0, _021DEEA0 ; =0x00005980
+ add r1, r4, r6
+ ldr r0, [r5, r0]
+ bl MOD14_021E0C48
+ cmp r0, #0
+ beq _021DEE98
+ ldr r0, _021DEEA4 ; =0x0000598C
+ ldr r0, [r5, r0]
+ bl MOD14_021DDEDC
+ add r7, r0, #0
+ bl MOD14_021DA1B8
+ cmp r0, #0
+ beq _021DEE98
+ add r0, r7, #0
+ bl MOD14_021DA1C0
+ cmp r0, #0
+ ldr r0, _021DEEA0 ; =0x00005980
+ beq _021DEE6E
+ ldr r0, [r5, r0]
+ add r1, r4, r6
+ mov r2, #1
+ bl MOD14_021E0908
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DEE6E:
+ ldr r0, [r5, r0]
+ add r1, r4, r6
+ mov r2, #2
+ bl MOD14_021E0C20
+ add r0, r5, #0
+ add r0, #0xa4
+ ldrb r0, [r0]
+ add r5, #0xa4
+ add r0, r0, #1
+ strb r0, [r5]
+ b _021DEE98
+_021DEE86:
+ ldr r0, _021DEEA0 ; =0x00005980
+ add r1, r4, r6
+ ldr r0, [r5, r0]
+ bl MOD14_021E0C48
+ cmp r0, #0
+ beq _021DEE98
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DEE98:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DEE9C: .word 0x00000618
+_021DEEA0: .word 0x00005980
+_021DEEA4: .word 0x0000598C
+
+ thumb_func_start MOD14_021DEEA8
+MOD14_021DEEA8: ; 0x021DEEA8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _021DEEEC ; =0x00005988
+ ldr r0, [r5, r0]
+ bl MOD14_021DC484
+ mov r6, #0
+ add r7, r5, #0
+ str r0, [sp]
+ add r4, r6, #0
+ add r7, #0xa8
+_021DEEBE:
+ ldrb r2, [r5, #2]
+ ldr r0, _021DEEF0 ; =0x00000618
+ add r1, r2, #0
+ mul r1, r0
+ add r0, r5, r1
+ add r0, r4, r0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021DEEE0
+ ldr r0, _021DEEF4 ; =0x00005980
+ add r1, r7, r1
+ ldr r0, [r5, r0]
+ ldr r2, [sp]
+ add r1, r1, r4
+ bl MOD14_021E0B54
+_021DEEE0:
+ add r6, r6, #1
+ add r4, #0x34
+ cmp r6, #0x1e
+ blt _021DEEBE
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DEEEC: .word 0x00005988
+_021DEEF0: .word 0x00000618
+_021DEEF4: .word 0x00005980
+
+ thumb_func_start MOD14_021DEEF8
+MOD14_021DEEF8: ; 0x021DEEF8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0x34
+ mul r4, r0
+ add r3, r5, #0
+ ldrb r1, [r5, #2]
+ ldr r0, _021DEF40 ; =0x00000618
+ add r3, #0xa8
+ mul r0, r1
+ add r1, r3, r0
+ ldr r0, [r1, r4]
+ cmp r0, #0
+ beq _021DEF3E
+ ldr r0, _021DEF44 ; =0x00005980
+ add r1, r1, r4
+ ldr r0, [r5, r0]
+ bl MOD14_021E0BA8
+ ldr r0, _021DEF48 ; =0x00005988
+ ldr r0, [r5, r0]
+ bl MOD14_021DC484
+ add r2, r0, #0
+ ldr r0, _021DEF44 ; =0x00005980
+ add r1, r5, #0
+ ldr r0, [r5, r0]
+ ldrb r5, [r5, #2]
+ ldr r3, _021DEF40 ; =0x00000618
+ add r1, #0xa8
+ mul r3, r5
+ add r1, r1, r3
+ add r1, r1, r4
+ bl MOD14_021E0B54
+_021DEF3E:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DEF40: .word 0x00000618
+_021DEF44: .word 0x00005980
+_021DEF48: .word 0x00005988
+
+ thumb_func_start MOD14_021DEF4C
+MOD14_021DEF4C: ; 0x021DEF4C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021DEF88 ; =0x00005988
+ ldr r0, [r5, r0]
+ bl MOD14_021DC3E0
+ add r4, r0, #0
+ ldr r0, _021DEF88 ; =0x00005988
+ ldr r0, [r5, r0]
+ bl MOD14_021DC45C
+ add r2, r0, #0
+ add r3, r5, #0
+ ldrb r1, [r5, #2]
+ ldr r0, _021DEF8C ; =0x00000618
+ add r3, #0xa8
+ mul r0, r1
+ add r3, r3, r0
+ mov r0, #0x34
+ add r1, r4, #0
+ mul r1, r0
+ ldr r0, [r3, r1]
+ cmp r0, #0
+ beq _021DEF86
+ ldr r0, _021DEF90 ; =0x00005980
+ add r1, r3, r1
+ ldr r0, [r5, r0]
+ bl MOD14_021E0BA4
+_021DEF86:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DEF88: .word 0x00005988
+_021DEF8C: .word 0x00000618
+_021DEF90: .word 0x00005980
+
+ thumb_func_start MOD14_021DEF94
+MOD14_021DEF94: ; 0x021DEF94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ add r0, sp, #0xc
+ str r0, [sp]
+ ldr r0, _021DF030 ; =0x00005988
+ add r1, sp, #0x18
+ ldr r0, [r4, r0]
+ add r2, sp, #0x14
+ add r3, sp, #0x10
+ bl MOD14_021DC4A4
+ mov r5, #0
+ str r5, [sp, #4]
+_021DEFB0:
+ add r0, r4, #0
+ str r0, [sp, #8]
+ add r0, #0xa8
+ mov r7, #0
+ str r0, [sp, #8]
+_021DEFBA:
+ ldrb r2, [r4, #2]
+ ldr r0, _021DF034 ; =0x00000618
+ add r1, r2, #0
+ mul r1, r0
+ add r0, r4, r1
+ add r0, r5, r0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021DF018
+ ldr r6, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ sub r3, r7, r6
+ sub r2, r2, r6
+ ldr r0, [sp, #0x10]
+ cmp r3, r2
+ bhi _021DEFE0
+ mov r6, #1
+ b _021DEFE2
+_021DEFE0:
+ mov r6, #0
+_021DEFE2:
+ ldr r2, [sp, #4]
+ sub r3, r2, r0
+ ldr r2, [sp, #0xc]
+ sub r0, r2, r0
+ cmp r3, r0
+ bhi _021DEFF2
+ mov r0, #1
+ b _021DEFF4
+_021DEFF2:
+ mov r0, #0
+_021DEFF4:
+ tst r0, r6
+ ldr r0, _021DF038 ; =0x00005980
+ beq _021DF00A
+ ldr r2, [sp, #8]
+ ldr r0, [r4, r0]
+ add r1, r2, r1
+ add r1, r1, r5
+ mov r2, #1
+ bl MOD14_021E0C5C
+ b _021DF018
+_021DF00A:
+ ldr r2, [sp, #8]
+ ldr r0, [r4, r0]
+ add r1, r2, r1
+ add r1, r1, r5
+ mov r2, #0
+ bl MOD14_021E0C5C
+_021DF018:
+ add r7, r7, #1
+ add r5, #0x34
+ cmp r7, #6
+ blo _021DEFBA
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #5
+ blo _021DEFB0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DF030: .word 0x00005988
+_021DF034: .word 0x00000618
+_021DF038: .word 0x00005980
+
+ thumb_func_start MOD14_021DF03C
+MOD14_021DF03C: ; 0x021DF03C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r6, #0
+ add r7, r5, #0
+ add r4, r6, #0
+ add r7, #0xa8
+_021DF048:
+ ldrb r2, [r5, #2]
+ ldr r0, _021DF074 ; =0x00000618
+ add r1, r2, #0
+ mul r1, r0
+ add r0, r5, r1
+ add r0, r4, r0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021DF06A
+ ldr r0, _021DF078 ; =0x00005980
+ add r1, r7, r1
+ ldr r0, [r5, r0]
+ add r1, r1, r4
+ mov r2, #0
+ bl MOD14_021E0C5C
+_021DF06A:
+ add r6, r6, #1
+ add r4, #0x34
+ cmp r6, #0x1e
+ blt _021DF048
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DF074: .word 0x00000618
+_021DF078: .word 0x00005980
+
+ thumb_func_start MOD14_021DF07C
+MOD14_021DF07C: ; 0x021DF07C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ ldr r0, _021DF128 ; =0x00000794
+ add r6, r1, #0
+ str r6, [r5, r0]
+ add r4, r2, #0
+ sub r0, r0, #4
+ str r4, [r5, r0]
+ add r0, r6, #0
+ str r3, [r5]
+ bl MOD14_021DDD58
+ ldr r1, _021DF12C ; =0x00000758
+ str r0, [r5, r1]
+ add r0, r6, #0
+ bl MOD14_021DDD60
+ ldr r1, _021DF130 ; =0x0000075C
+ str r0, [r5, r1]
+ add r0, r6, #0
+ bl MOD14_021DDD50
+ str r0, [r5, #0x48]
+ add r0, r4, #0
+ bl MOD14_021DC3CC
+ ldr r1, _021DF134 ; =0x00000785
+ strb r0, [r5, r1]
+ add r0, r4, #0
+ bl MOD14_021DC3D0
+ ldr r1, _021DF138 ; =0x00000789
+ strb r0, [r5, r1]
+ add r0, r4, #0
+ bl MOD14_021DC3D8
+ ldr r1, _021DF13C ; =0x0000078A
+ strb r0, [r5, r1]
+ add r0, r4, #0
+ bl MOD14_021DC3E8
+ ldr r1, _021DF140 ; =0x0000078B
+ add r3, r5, #0
+ strb r0, [r5, r1]
+ mov r2, #0
+ str r2, [r5, #4]
+ str r2, [r5, #8]
+ str r2, [r5, #0xc]
+ add r0, r1, #0
+ str r2, [r5, #0x10]
+ sub r0, #0x37
+ str r2, [r5, r0]
+ add r0, r1, #3
+ mov r2, #1
+ strb r2, [r5, r0]
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0xd
+ add r3, #0x1c
+ bl FUN_02006C30
+ str r0, [r5, #0x14]
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0xe
+ mov r2, #1
+ add r3, #0x20
+ bl FUN_02006C5C
+ str r0, [r5, #0x18]
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _021DF11C
+ ldr r0, [r5, #0x18]
+ cmp r0, #0
+ bne _021DF122
+_021DF11C:
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_021DF122:
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DF128: .word 0x00000794
+_021DF12C: .word 0x00000758
+_021DF130: .word 0x0000075C
+_021DF134: .word 0x00000785
+_021DF138: .word 0x00000789
+_021DF13C: .word 0x0000078A
+_021DF140: .word 0x0000078B
+
+ thumb_func_start MOD14_021DF144
+MOD14_021DF144: ; 0x021DF144
+ push {r4, r5, r6, lr}
+ sub sp, #0x38
+ add r4, r0, #0
+ add r0, #0x24
+ bl FUN_020B1A24
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0x24
+ str r0, [sp, #0x10]
+ mov r0, #0x12
+ mov r1, #0xc
+ bl FUN_02006AE4
+ ldr r0, _021DF310 ; =0x00000785
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ bne _021DF178
+ mov r5, #1
+ b _021DF17A
+_021DF178:
+ mov r5, #2
+_021DF17A:
+ ldr r0, _021DF314 ; =0x00000794
+ ldr r0, [r4, r0]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ ldr r0, [r4, #0x20]
+ add r1, r4, #0
+ str r0, [sp]
+ str r5, [sp, #4]
+ ldr r3, [r4, #0x1c]
+ add r0, sp, #0x14
+ add r1, #0x24
+ bl MOD14_021DDDB4
+ ldr r2, _021DF318 ; =0x00000764
+ add r3, r4, #0
+ add r1, r2, #4
+ add r0, r4, r2
+ add r2, #0x21
+ add r1, r4, r1
+ add r2, r4, r2
+ bl MOD14_021E0264
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r3, _021DF318 ; =0x00000764
+ ldr r0, [r4]
+ ldr r2, [r4, r3]
+ add r3, r3, #4
+ ldr r3, [r4, r3]
+ add r1, sp, #0x14
+ bl MOD14_021DDDD4
+ str r0, [r4, #4]
+ mov r0, #0x2a
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r3, _021DF318 ; =0x00000764
+ ldr r0, [r4]
+ ldr r2, [r4, r3]
+ add r3, r3, #4
+ ldr r3, [r4, r3]
+ add r1, sp, #0x14
+ add r3, #0x18
+ bl MOD14_021DDDD4
+ str r0, [r4, #8]
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3CC
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3C4
+ add r6, r0, #0
+ cmp r6, #4
+ beq _021DF1FC
+ mov r2, #0x6c
+ mov r5, #0xec
+ b _021DF200
+_021DF1FC:
+ mov r2, #0x40
+ mov r5, #0xc0
+_021DF200:
+ mov r1, #2
+ add r0, sp, #0x34
+ strb r1, [r0]
+ mov r0, #0x2b
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, sp, #0x14
+ mov r3, #0x14
+ bl MOD14_021DDDD4
+ str r0, [r4, #0xc]
+ mov r0, #0x2b
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, sp, #0x14
+ add r2, r5, #0
+ mov r3, #0x14
+ bl MOD14_021DDDD4
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ mov r1, #5
+ bl FUN_02020130
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl FUN_02020238
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3CC
+ add r5, r0, #0
+ cmp r5, #2
+ ldr r0, [r4, #0xc]
+ beq _021DF262
+ mov r1, #6
+ bl FUN_02020130
+ ldr r0, [r4, #0x10]
+ mov r1, #7
+ bl FUN_02020130
+ b _021DF270
+_021DF262:
+ mov r1, #8
+ bl FUN_02020130
+ ldr r0, [r4, #0x10]
+ mov r1, #9
+ bl FUN_02020130
+_021DF270:
+ cmp r5, #0
+ beq _021DF27C
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_020200A0
+_021DF27C:
+ cmp r6, #3
+ beq _021DF2C0
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3F4
+ cmp r0, #1
+ ldr r0, [r4, #4]
+ bne _021DF2A6
+ mov r1, #0
+ bl FUN_02020130
+ add r1, r4, #0
+ ldr r0, [r4, #0x48]
+ add r1, #0x4c
+ mov r2, #0x1e
+ bl MOD14_021E08E4
+ mov r1, #0
+ b _021DF2B4
+_021DF2A6:
+ mov r1, #2
+ bl FUN_02020130
+ add r0, r4, #0
+ bl MOD14_021DF324
+ mov r1, #1
+_021DF2B4:
+ ldr r0, _021DF31C ; =0x0000078C
+ strb r1, [r4, r0]
+ ldr r0, _021DF320 ; =0x0000078D
+ mov r1, #0
+ strb r1, [r4, r0]
+ b _021DF2F8
+_021DF2C0:
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC538
+ cmp r0, #0
+ ldr r0, [r4, #4]
+ bne _021DF2DA
+ mov r1, #0
+ bl FUN_02020130
+ mov r1, #0
+ b _021DF2E2
+_021DF2DA:
+ mov r1, #2
+ bl FUN_02020130
+ mov r1, #1
+_021DF2E2:
+ ldr r0, _021DF320 ; =0x0000078D
+ mov r2, #0x1e
+ strb r1, [r4, r0]
+ add r1, r4, #0
+ ldr r0, [r4, #0x48]
+ add r1, #0x4c
+ bl MOD14_021E08E4
+ ldr r0, _021DF31C ; =0x0000078C
+ mov r1, #0
+ strb r1, [r4, r0]
+_021DF2F8:
+ ldr r0, _021DF314 ; =0x00000794
+ ldr r0, [r4, r0]
+ bl MOD14_021DDD78
+ mov r1, #0x76
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD14_021E0008
+ add sp, #0x38
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DF310: .word 0x00000785
+_021DF314: .word 0x00000794
+_021DF318: .word 0x00000764
+_021DF31C: .word 0x0000078C
+_021DF320: .word 0x0000078D
+
+ thumb_func_start MOD14_021DF324
+MOD14_021DF324: ; 0x021DF324
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x10
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r1, r5, #0
+ str r0, [r2]
+ ldr r0, [r5, #0x48]
+ add r1, #0x4c
+ mov r2, #1
+ bl MOD14_021E08E4
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC458
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ bl FUN_02020240
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _021DF398 ; =0x000004D8
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r3, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ asr r3, r3, #0xc
+ ldr r0, [r5, #0x48]
+ asr r2, r2, #0xc
+ add r3, r3, #4
+ bl MOD14_021E0940
+ ldr r1, _021DF39C ; =0x00000664
+ mov r0, #0
+ str r0, [r5, r1]
+ add r0, r1, #4
+ ldr r2, _021DF3A0 ; =0xFFFFC000
+ add r1, #0xf0
+ str r2, [r5, r0]
+ mov r2, #1
+ ldr r0, _021DF3A4 ; =0x0000078C
+ str r2, [r5, r1]
+ strb r2, [r5, r0]
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ nop
+_021DF398: .word 0x000004D8
+_021DF39C: .word 0x00000664
+_021DF3A0: .word 0xFFFFC000
+_021DF3A4: .word 0x0000078C
+
+ thumb_func_start MOD14_021DF3A8
+MOD14_021DF3A8: ; 0x021DF3A8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021DF3BA
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, #0x14]
+_021DF3BA:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _021DF3C8
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, #0x18]
+_021DF3C8:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _021DF3D6
+ bl FUN_0201FFC8
+ mov r0, #0
+ str r0, [r4, #4]
+_021DF3D6:
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _021DF3E4
+ bl FUN_0201FFC8
+ mov r0, #0
+ str r0, [r4, #8]
+_021DF3E4:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021DF3F2
+ bl FUN_0201FFC8
+ mov r0, #0
+ str r0, [r4, #0xc]
+_021DF3F2:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _021DF400
+ bl FUN_0201FFC8
+ mov r0, #0
+ str r0, [r4, #0x10]
+_021DF400:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DF404
+MOD14_021DF404: ; 0x021DF404
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r5, r1, #0
+ str r0, [r2]
+ str r0, [r5]
+ ldr r0, _021DF47C ; =0x00000785
+ ldrb r1, [r4, r0]
+ cmp r1, #4
+ bhi _021DF478
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DF424: ; jump table
+ .short _021DF42E - _021DF424 - 2 ; case 0
+ .short _021DF478 - _021DF424 - 2 ; case 1
+ .short _021DF458 - _021DF424 - 2 ; case 2
+ .short _021DF46C - _021DF424 - 2 ; case 3
+ .short _021DF46C - _021DF424 - 2 ; case 4
+_021DF42E:
+ add r1, r0, #1
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _021DF478
+ add r0, #0xb
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3D0
+ ldr r1, _021DF480 ; =0x00000789
+ ldrsb r1, [r4, r1]
+ cmp r1, #0
+ bne _021DF44A
+ cmp r0, #5
+ beq _021DF452
+_021DF44A:
+ cmp r1, #5
+ bne _021DF478
+ cmp r0, #0
+ bne _021DF478
+_021DF452:
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DF458:
+ add r0, r0, #1
+ ldrb r0, [r4, r0]
+ add r0, #0xfd
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bhi _021DF478
+ mov r0, #1
+ str r0, [r2]
+ pop {r3, r4, r5, pc}
+_021DF46C:
+ add r0, r0, #1
+ ldrb r0, [r4, r0]
+ cmp r0, #2
+ bne _021DF478
+ mov r0, #1
+ str r0, [r2]
+_021DF478:
+ pop {r3, r4, r5, pc}
+ nop
+_021DF47C: .word 0x00000785
+_021DF480: .word 0x00000789
+
+ thumb_func_start MOD14_021DF484
+MOD14_021DF484: ; 0x021DF484
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r2, _021DF584 ; =0x0000076C
+ add r5, r0, #0
+ add r1, r2, #4
+ add r0, r5, r2
+ add r2, #0x1a
+ add r1, r5, r1
+ add r2, r5, r2
+ add r3, r5, #0
+ bl MOD14_021E0264
+ add r0, r5, #0
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD14_021DF404
+ ldr r0, _021DF588 ; =0x00000786
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _021DF4B6
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_020200A0
+_021DF4B6:
+ ldr r1, _021DF58C ; =0x00000764
+ ldr r0, [r5, r1]
+ lsl r2, r0, #0xc
+ add r0, r1, #0
+ add r0, #0x10
+ str r2, [r5, r0]
+ add r0, r1, #4
+ ldr r0, [r5, r0]
+ lsl r2, r0, #0xc
+ add r0, r1, #0
+ add r0, #0x14
+ str r2, [r5, r0]
+ add r0, r1, #0
+ add r0, #8
+ ldr r6, [r5, r0]
+ add r0, r1, #0
+ add r0, #0xc
+ ldr r2, [r5, r0]
+ ldr r7, [sp, #4]
+ lsl r4, r6, #0xc
+ lsl r0, r2, #0xc
+ cmp r7, #0
+ bne _021DF4EC
+ add r1, #0x10
+ ldr r1, [r5, r1]
+ sub r1, r4, r1
+ b _021DF514
+_021DF4EC:
+ add r3, r1, #0
+ add r3, #0x10
+ ldr r3, [r5, r3]
+ cmp r4, r3
+ ble _021DF506
+ mov r3, #0x11
+ ldr r1, [r5, r1]
+ lsl r3, r3, #4
+ sub r3, r3, r6
+ sub r1, #0x46
+ add r1, r3, r1
+ neg r1, r1
+ b _021DF512
+_021DF506:
+ ldr r3, [r5, r1]
+ mov r1, #0x11
+ lsl r1, r1, #4
+ sub r1, r1, r3
+ sub r6, #0x46
+ add r1, r1, r6
+_021DF512:
+ lsl r1, r1, #0xc
+_021DF514:
+ ldr r3, [sp]
+ cmp r3, #0
+ bne _021DF522
+ ldr r2, _021DF590 ; =0x00000778
+ ldr r2, [r5, r2]
+ sub r4, r0, r2
+ b _021DF548
+_021DF522:
+ ldr r4, _021DF590 ; =0x00000778
+ ldr r6, [r5, r4]
+ cmp r0, r6
+ ble _021DF53A
+ mov r0, #0xd0
+ sub r4, #0x10
+ sub r2, r0, r2
+ ldr r0, [r5, r4]
+ add r0, #0x18
+ add r0, r2, r0
+ neg r4, r0
+ b _021DF546
+_021DF53A:
+ sub r4, #0x10
+ ldr r4, [r5, r4]
+ mov r0, #0xd0
+ sub r0, r0, r4
+ add r2, #0x18
+ add r4, r0, r2
+_021DF546:
+ lsl r4, r4, #0xc
+_021DF548:
+ cmp r7, #0
+ bne _021DF550
+ cmp r3, #0
+ beq _021DF554
+_021DF550:
+ mov r6, #0xc
+ b _021DF556
+_021DF554:
+ mov r6, #6
+_021DF556:
+ add r0, r1, #0
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r1, _021DF594 ; =0x0000077C
+ str r0, [r5, r1]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl _s32_div_f
+ mov r1, #0x1e
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ add r0, r1, #7
+ strb r6, [r5, r0]
+ ldr r0, _021DF598 ; =MOD14_021DF5B0
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD14_021DDD40
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DF584: .word 0x0000076C
+_021DF588: .word 0x00000786
+_021DF58C: .word 0x00000764
+_021DF590: .word 0x00000778
+_021DF594: .word 0x0000077C
+_021DF598: .word MOD14_021DF5B0
+
+ thumb_func_start MOD14_021DF59C
+MOD14_021DF59C: ; 0x021DF59C
+ ldr r1, _021DF5AC ; =0x00000787
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021DF5A8
+ mov r0, #1
+ bx lr
+_021DF5A8:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021DF5AC: .word 0x00000787
+
+ thumb_func_start MOD14_021DF5B0
+MOD14_021DF5B0: ; 0x021DF5B0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ ldr r0, _021DF72C ; =0x00000787
+ str r1, [sp, #8]
+ ldrb r2, [r4, r0]
+ cmp r2, #0
+ beq _021DF68A
+ add r1, r0, #0
+ sub r1, #0x13
+ ldr r2, [r4, r1]
+ add r1, r0, #0
+ sub r1, #0xb
+ ldr r1, [r4, r1]
+ add r2, r2, r1
+ add r1, r0, #0
+ sub r1, #0x13
+ str r2, [r4, r1]
+ add r1, r0, #0
+ sub r1, #0xb
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ ble _021DF5F8
+ add r1, r0, #0
+ sub r1, #0x13
+ ldr r2, [r4, r1]
+ mov r1, #0x11
+ lsl r1, r1, #0x10
+ cmp r2, r1
+ ble _021DF5F8
+ ldr r1, _021DF730 ; =0x00156000
+ sub r0, #0x13
+ sub r1, r1, r2
+ str r1, [r4, r0]
+_021DF5F8:
+ ldr r1, _021DF734 ; =0x0000077C
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bge _021DF61A
+ add r0, r1, #0
+ sub r0, #8
+ ldr r2, [r4, r0]
+ mov r0, #0x46
+ lsl r0, r0, #0xc
+ cmp r2, r0
+ bge _021DF61A
+ sub r2, r0, r2
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ sub r0, r0, r2
+ sub r1, #8
+ str r0, [r4, r1]
+_021DF61A:
+ ldr r1, _021DF738 ; =0x00000778
+ add r0, r1, #0
+ add r0, #8
+ ldr r2, [r4, r1]
+ ldr r0, [r4, r0]
+ add r0, r2, r0
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ ble _021DF644
+ mov r0, #0xd
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0x10
+ cmp r2, r0
+ ble _021DF644
+ mov r0, #0x2e
+ lsl r0, r0, #0xe
+ sub r0, r0, r2
+ str r0, [r4, r1]
+_021DF644:
+ mov r1, #0x1e
+ lsl r1, r1, #6
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bge _021DF666
+ add r0, r1, #0
+ sub r0, #8
+ ldr r2, [r4, r0]
+ ldr r0, _021DF73C ; =0xFFFE8000
+ cmp r2, r0
+ bge _021DF666
+ sub r2, r0, r2
+ mov r0, #0xd
+ lsl r0, r0, #0x10
+ sub r0, r0, r2
+ sub r1, #8
+ str r0, [r4, r1]
+_021DF666:
+ ldr r0, _021DF740 ; =0x00000774
+ ldr r1, [r4, r0]
+ add r0, r0, #4
+ str r1, [sp]
+ ldr r0, [r4, r0]
+ add r1, sp, #0
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, _021DF72C ; =0x00000787
+ add sp, #0xc
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r4, r5, pc}
+_021DF68A:
+ add r2, r0, #0
+ sub r2, #0x1b
+ ldr r2, [r4, r2]
+ sub r0, #0x17
+ lsl r2, r2, #0xc
+ str r2, [sp]
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD14_021E0320
+ ldr r0, _021DF744 ; =0x0000076C
+ add r1, r0, #0
+ ldr r2, [r4, r0]
+ sub r1, #8
+ str r2, [r4, r1]
+ add r1, r0, #4
+ ldr r2, [r4, r1]
+ sub r1, r0, #4
+ str r2, [r4, r1]
+ add r1, r0, #0
+ add r1, #0x1a
+ ldrb r2, [r4, r1]
+ add r1, r0, #0
+ add r1, #0x19
+ strb r2, [r4, r1]
+ add r0, #0x24
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3D0
+ ldr r1, _021DF748 ; =0x00000789
+ strb r0, [r4, r1]
+ add r0, r1, #7
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3D8
+ ldr r1, _021DF74C ; =0x0000078A
+ strb r0, [r4, r1]
+ add r0, r1, #6
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3E8
+ ldr r1, _021DF750 ; =0x0000078B
+ strb r0, [r4, r1]
+ sub r0, r1, #5
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _021DF6F8
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020200A0
+_021DF6F8:
+ ldr r0, _021DF754 ; =0x00000786
+ ldrb r0, [r4, r0]
+ cmp r0, #2
+ ldr r0, [r4, #0xc]
+ beq _021DF712
+ mov r1, #6
+ bl FUN_02020130
+ ldr r0, [r4, #0x10]
+ mov r1, #7
+ bl FUN_02020130
+ b _021DF720
+_021DF712:
+ mov r1, #8
+ bl FUN_02020130
+ ldr r0, [r4, #0x10]
+ mov r1, #9
+ bl FUN_02020130
+_021DF720:
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021DF72C: .word 0x00000787
+_021DF730: .word 0x00156000
+_021DF734: .word 0x0000077C
+_021DF738: .word 0x00000778
+_021DF73C: .word 0xFFFE8000
+_021DF740: .word 0x00000774
+_021DF744: .word 0x0000076C
+_021DF748: .word 0x00000789
+_021DF74C: .word 0x0000078A
+_021DF750: .word 0x0000078B
+_021DF754: .word 0x00000786
+
+ thumb_func_start MOD14_021DF758
+MOD14_021DF758: ; 0x021DF758
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02020130
+ mov r1, #2
+ mov r0, #0x1e
+ lsl r1, r1, #0xc
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ add r1, r0, #0
+ sub r1, #0x18
+ ldr r2, [r4, r1]
+ add r1, r0, #0
+ add r2, #0xc
+ sub r1, #0x10
+ str r2, [r4, r1]
+ add r1, r0, #7
+ mov r2, #6
+ strb r2, [r4, r1]
+ mov r1, #0
+ add r0, r0, #4
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD14_021E03CC
+ ldr r0, _021DF79C ; =MOD14_021DF7B4
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD14_021DDD40
+ pop {r4, pc}
+ nop
+_021DF79C: .word MOD14_021DF7B4
+
+ thumb_func_start MOD14_021DF7A0
+MOD14_021DF7A0: ; 0x021DF7A0
+ ldr r1, _021DF7B0 ; =0x00000784
+ ldrb r0, [r0, r1]
+ cmp r0, #0xff
+ bne _021DF7AC
+ mov r0, #1
+ bx lr
+_021DF7AC:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021DF7B0: .word 0x00000784
+
+ thumb_func_start MOD14_021DF7B4
+MOD14_021DF7B4: ; 0x021DF7B4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ ldr r1, _021DF888 ; =0x00000784
+ str r0, [r3]
+ ldrb r0, [r4, r1]
+ cmp r0, #0
+ beq _021DF7E0
+ cmp r0, #1
+ beq _021DF83C
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_021DF7E0:
+ add r0, r1, #0
+ mov r3, #0
+ add r0, #0xa
+ strb r3, [r4, r0]
+ add r0, r1, #3
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _021DF80E
+ sub r0, r1, #4
+ ldr r3, [sp, #4]
+ ldr r0, [r4, r0]
+ add r1, r2, #0
+ add r0, r3, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, _021DF88C ; =0x00000787
+ add sp, #0xc
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, r6, pc}
+_021DF80E:
+ sub r1, #0x14
+ ldr r0, [r4, r1]
+ add r1, r2, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02020130
+ add r0, r4, #0
+ bl MOD14_021E0554
+ ldr r0, _021DF88C ; =0x00000787
+ mov r1, #6
+ strb r1, [r4, r0]
+ sub r1, r0, #3
+ ldrb r1, [r4, r1]
+ sub r0, r0, #3
+ add r1, r1, #1
+ strb r1, [r4, r0]
+_021DF83C:
+ ldr r0, _021DF88C ; =0x00000787
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021DF862
+ sub r0, r0, #7
+ ldr r1, [sp, #4]
+ ldr r0, [r4, r0]
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD14_021E0320
+ ldr r0, _021DF88C ; =0x00000787
+ add sp, #0xc
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, r6, pc}
+_021DF862:
+ sub r0, #0x1f
+ ldr r0, [r4, r0]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, _021DF888 ; =0x00000784
+ mov r1, #0xff
+ strb r1, [r4, r0]
+ mov r1, #1
+ add r0, #0xa
+ strb r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DF888: .word 0x00000784
+_021DF88C: .word 0x00000787
+
+ thumb_func_start MOD14_021DF890
+MOD14_021DF890: ; 0x021DF890
+ add r1, r0, #0
+ mov r2, #2
+ mov r0, #0x1e
+ lsl r2, r2, #0xc
+ lsl r0, r0, #6
+ str r2, [r1, r0]
+ add r2, r0, #0
+ sub r2, #0x18
+ ldr r3, [r1, r2]
+ add r2, r0, #0
+ add r3, #0xc
+ sub r2, #0x10
+ str r3, [r1, r2]
+ add r2, r0, #7
+ mov r3, #6
+ strb r3, [r1, r2]
+ ldr r3, _021DF8BC ; =MOD14_021DDD40
+ mov r2, #0
+ add r0, r0, #4
+ strb r2, [r1, r0]
+ ldr r0, _021DF8C0 ; =MOD14_021DF8F8
+ bx r3
+ .align 2, 0
+_021DF8BC: .word MOD14_021DDD40
+_021DF8C0: .word MOD14_021DF8F8
+
+ thumb_func_start MOD14_021DF8C4
+MOD14_021DF8C4: ; 0x021DF8C4
+ push {r4, lr}
+ ldr r1, _021DF8F0 ; =0x00000784
+ add r4, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0xff
+ bne _021DF8EC
+ bl MOD14_021E0588
+ ldr r2, _021DF8F4 ; =0x00000754
+ add r1, r4, #0
+ ldr r0, [r4, #0x48]
+ ldr r2, [r4, r2]
+ add r1, #0x4c
+ bl MOD14_021E08E4
+ ldr r0, _021DF8F4 ; =0x00000754
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_021DF8EC:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021DF8F0: .word 0x00000784
+_021DF8F4: .word 0x00000754
+
+ thumb_func_start MOD14_021DF8F8
+MOD14_021DF8F8: ; 0x021DF8F8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ ldr r1, _021DF9D4 ; =0x00000784
+ str r0, [r3]
+ ldrb r0, [r4, r1]
+ cmp r0, #0
+ beq _021DF924
+ cmp r0, #1
+ beq _021DF980
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_021DF924:
+ add r0, r1, #0
+ mov r3, #0
+ add r0, #0xa
+ strb r3, [r4, r0]
+ add r0, r1, #3
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _021DF952
+ sub r0, r1, #4
+ ldr r3, [sp, #4]
+ ldr r0, [r4, r0]
+ add r1, r2, #0
+ add r0, r3, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, _021DF9D8 ; =0x00000787
+ add sp, #0xc
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, r6, pc}
+_021DF952:
+ sub r1, #0x14
+ ldr r0, [r4, r1]
+ add r1, r2, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02020130
+ add r0, r4, #0
+ bl MOD14_021E0714
+ ldr r0, _021DF9D8 ; =0x00000787
+ mov r1, #6
+ strb r1, [r4, r0]
+ sub r1, r0, #3
+ ldrb r1, [r4, r1]
+ sub r0, r0, #3
+ add r1, r1, #1
+ strb r1, [r4, r0]
+_021DF980:
+ ldr r0, _021DF9D8 ; =0x00000787
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021DF9A6
+ sub r0, r0, #7
+ ldr r1, [sp, #4]
+ ldr r0, [r4, r0]
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD14_021E0320
+ ldr r0, _021DF9D8 ; =0x00000787
+ add sp, #0xc
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, r6, pc}
+_021DF9A6:
+ sub r0, #0x1f
+ ldr r0, [r4, r0]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_02020130
+ ldr r0, _021DF9D4 ; =0x00000784
+ mov r1, #0xff
+ strb r1, [r4, r0]
+ mov r1, #1
+ add r0, #0xa
+ strb r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DF9D4: .word 0x00000784
+_021DF9D8: .word 0x00000787
+
+ thumb_func_start MOD14_021DF9DC
+MOD14_021DF9DC: ; 0x021DF9DC
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, _021DFA50 ; =0x00000788
+ mov r1, #0
+ strb r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD14_021E0740
+ add r4, r0, #0
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x10
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r4, #0
+ bl FUN_0202032C
+ str r0, [sp]
+ ldr r1, [r5, #0x4c]
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ mov r3, #1
+ bl MOD14_021DFA7C
+ ldr r0, [r5, #0x4c]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r5, #0x4c]
+ bl FUN_0202032C
+ str r0, [sp]
+ mov r3, #0
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ mvn r3, r3
+ bl MOD14_021DFA7C
+ ldr r0, _021DFA54 ; =0x00000784
+ mov r1, #0
+ strb r1, [r5, r0]
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ nop
+_021DFA50: .word 0x00000788
+_021DFA54: .word 0x00000784
+
+ thumb_func_start MOD14_021DFA58
+MOD14_021DFA58: ; 0x021DFA58
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD14_021DFB08
+ cmp r0, #0
+ beq _021DFA76
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02020130
+ add r0, r4, #0
+ bl MOD14_021E062C
+ mov r0, #1
+ pop {r4, pc}
+_021DFA76:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DFA7C
+MOD14_021DFA7C: ; 0x021DFA7C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0xa
+ mov r1, #0x2c
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021DFAFC
+ add r0, r6, #0
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #0xc
+ str r0, [r2]
+ str r6, [r4]
+ strh r1, [r4, #4]
+ mov r0, #6
+ strh r0, [r4, #6]
+ ldr r0, [sp, #0x28]
+ str r0, [r4, #8]
+ ldr r0, [sp, #8]
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #4]
+ str r0, [r4, #0x14]
+ str r7, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, [sp]
+ add r2, r0, #0
+ mul r2, r1
+ str r2, [r4, #0x24]
+ ldr r2, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ sub r0, r2, r0
+ bl _s32_div_f
+ str r0, [r4, #0x1c]
+ mov r0, #0xf
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x20]
+ ldr r0, _021DFB00 ; =MOD14_021DFB28
+ add r1, r4, #0
+ mov r2, #0
+ str r5, [r4, #0x28]
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021DFAF6
+ ldr r0, _021DFB04 ; =0x00000788
+ mov r1, #1
+ add sp, #0x10
+ strb r1, [r5, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DFAF6:
+ add r0, r4, #0
+ bl FUN_02016A18
+_021DFAFC:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DFB00: .word MOD14_021DFB28
+_021DFB04: .word 0x00000788
+
+ thumb_func_start MOD14_021DFB08
+MOD14_021DFB08: ; 0x021DFB08
+ ldr r1, _021DFB18 ; =0x00000788
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021DFB14
+ mov r0, #1
+ bx lr
+_021DFB14:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021DFB18: .word 0x00000788
+
+ thumb_func_start MOD14_021DFB1C
+MOD14_021DFB1C: ; 0x021DFB1C
+ ldr r1, _021DFB24 ; =0x00000788
+ mov r2, #0
+ strb r2, [r0, r1]
+ bx lr
+ .align 2, 0
+_021DFB24: .word 0x00000788
+
+ thumb_func_start MOD14_021DFB28
+MOD14_021DFB28: ; 0x021DFB28
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ ldrh r0, [r4, #4]
+ cmp r0, #0
+ beq _021DFB90
+ sub r0, r0, #1
+ strh r0, [r4, #4]
+ ldrh r1, [r4, #4]
+ ldrh r0, [r4, #6]
+ cmp r1, r0
+ bne _021DFB5E
+ ldr r0, [r4]
+ ldr r1, [r4, #8]
+ bl MOD14_021DDE24
+_021DFB5E:
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x1c]
+ add r0, r1, r0
+ str r0, [r4, #0xc]
+ str r0, [sp, #4]
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4, #0x20]
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B93C
+ ldr r1, [r4, #0x24]
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, [r4, #0x14]
+ add r1, sp, #0
+ add r0, r0, r2
+ str r0, [sp]
+ ldr r0, [r4]
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_021DFB90:
+ ldr r0, [r4, #0x14]
+ add r1, r2, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x10]
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ bl FUN_02020044
+ ldr r1, _021DFBB4 ; =MOD14_021DFB1C
+ ldr r2, [r4, #0x28]
+ add r0, r4, #0
+ bl MOD14_021DDF30
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DFBB4: .word MOD14_021DFB1C
+
+ thumb_func_start MOD14_021DFBB8
+MOD14_021DFBB8: ; 0x021DFBB8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, _021DFC1C ; =0x0000078C
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ bne _021DFBD6
+ add r0, r0, #1
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _021DFBD6
+ ldr r0, [r4, #4]
+ mov r1, #3
+ bl FUN_02020130
+_021DFBD6:
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r5, r0, #0
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r3]
+ mov r0, #2
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0xc
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD14_021E0320
+ ldr r0, _021DFC20 ; =0x00000784
+ mov r2, #0
+ strb r2, [r4, r0]
+ add r0, r0, #3
+ strb r2, [r4, r0]
+ ldr r0, _021DFC24 ; =MOD14_021DFC40
+ add r1, r4, #0
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021DFC18
+ ldr r0, _021DFC28 ; =0x00000788
+ mov r1, #1
+ strb r1, [r4, r0]
+_021DFC18:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021DFC1C: .word 0x0000078C
+_021DFC20: .word 0x00000784
+_021DFC24: .word MOD14_021DFC40
+_021DFC28: .word 0x00000788
+
+ thumb_func_start MOD14_021DFC2C
+MOD14_021DFC2C: ; 0x021DFC2C
+ ldr r1, _021DFC3C ; =0x00000788
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021DFC38
+ mov r0, #1
+ bx lr
+_021DFC38:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021DFC3C: .word 0x00000788
+
+ thumb_func_start MOD14_021DFC40
+MOD14_021DFC40: ; 0x021DFC40
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ ldr r1, _021DFD18 ; =0x00000784
+ add r5, r0, #0
+ ldrb r0, [r4, r1]
+ cmp r0, #0
+ beq _021DFC58
+ cmp r0, #1
+ beq _021DFCBE
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+_021DFC58:
+ add r0, r1, #3
+ ldrb r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #3
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r0]
+ cmp r0, #4
+ blo _021DFD14
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [sp, #0x10]
+ mov r2, #3
+ asr r0, r0, #0xc
+ add r1, r0, #6
+ mov r0, #0x77
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ add r1, r0, #0
+ lsl r2, r2, #0xc
+ add r1, #0x10
+ str r2, [r4, r1]
+ add r1, r0, #0
+ mov r2, #2
+ add r1, #0x17
+ strb r2, [r4, r1]
+ add r1, r0, #0
+ add r1, #0x1c
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _021DFCB2
+ add r0, #0x1d
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _021DFCB2
+ ldr r0, [r4, #4]
+ mov r1, #4
+ bl FUN_02020130
+_021DFCB2:
+ ldr r0, _021DFD18 ; =0x00000784
+ add sp, #0x18
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_021DFCBE:
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ ldr r0, _021DFD1C ; =0x00000787
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021DFCF8
+ sub r0, r0, #7
+ ldr r1, [sp, #4]
+ ldr r0, [r4, r0]
+ add r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD14_021E0320
+ ldr r0, _021DFD1C ; =0x00000787
+ add sp, #0x18
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_021DFCF8:
+ sub r0, #0x17
+ ldr r0, [r4, r0]
+ add r1, r2, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, _021DFD20 ; =0x00000788
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021DFD14:
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DFD18: .word 0x00000784
+_021DFD1C: .word 0x00000787
+_021DFD20: .word 0x00000788
+
+ thumb_func_start MOD14_021DFD24
+MOD14_021DFD24: ; 0x021DFD24
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #0x77
+ str r0, [r2]
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ asr r0, r0, #0xc
+ sub r0, r0, #4
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r2, _021DFD74 ; =0xFFFFF000
+ add r0, #0x10
+ str r2, [r4, r0]
+ add r0, r1, #0
+ mov r2, #4
+ add r0, #0x17
+ strb r2, [r4, r0]
+ mov r2, #0
+ add r1, #0x14
+ strb r2, [r4, r1]
+ ldr r0, _021DFD78 ; =MOD14_021DFDBC
+ add r1, r4, #0
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021DFD70
+ ldr r0, _021DFD7C ; =0x00000788
+ mov r1, #1
+ strb r1, [r4, r0]
+_021DFD70:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_021DFD74: .word 0xFFFFF000
+_021DFD78: .word MOD14_021DFDBC
+_021DFD7C: .word 0x00000788
+
+ thumb_func_start MOD14_021DFD80
+MOD14_021DFD80: ; 0x021DFD80
+ push {r4, lr}
+ ldr r1, _021DFDB8 ; =0x00000788
+ add r4, r0, #0
+ ldrb r0, [r4, r1]
+ cmp r0, #0
+ bne _021DFDB2
+ add r0, r1, #4
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _021DFDAE
+ add r0, r1, #5
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _021DFDAE
+ ldr r0, [r4, #4]
+ bl FUN_020201DC
+ cmp r0, #0
+ beq _021DFDAE
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_02020130
+_021DFDAE:
+ mov r0, #1
+ pop {r4, pc}
+_021DFDB2:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021DFDB8: .word 0x00000788
+
+ thumb_func_start MOD14_021DFDBC
+MOD14_021DFDBC: ; 0x021DFDBC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ ldr r0, _021DFE20 ; =0x00000787
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021DFDFE
+ sub r0, r0, #7
+ ldr r1, [sp, #4]
+ ldr r0, [r4, r0]
+ add r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD14_021E0320
+ ldr r0, _021DFE20 ; =0x00000787
+ add sp, #0xc
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, r6, pc}
+_021DFDFE:
+ sub r0, #0x17
+ ldr r0, [r4, r0]
+ add r1, r2, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD14_021E0320
+ ldr r0, _021DFE24 ; =0x00000788
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021DFE20: .word 0x00000787
+_021DFE24: .word 0x00000788
+
+ thumb_func_start MOD14_021DFE28
+MOD14_021DFE28: ; 0x021DFE28
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC424
+ mov r1, #0x79
+ lsl r1, r1, #4
+ mov r2, #0x11
+ ldr r3, [r4, r1]
+ lsl r2, r2, #4
+ ldrh r2, [r3, r2]
+ cmp r2, r0
+ bne _021DFE4E
+ sub r1, #0x38
+ ldr r0, [r4, r1]
+ bl MOD14_021DEA50
+_021DFE4E:
+ add r0, r4, #0
+ bl MOD14_021E0720
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_02020130
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DFE60
+MOD14_021DFE60: ; 0x021DFE60
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02020130
+ add r1, r4, #0
+ ldr r0, [r4, #0x48]
+ add r1, #0x4c
+ mov r2, #1
+ bl MOD14_021E0C20
+ ldr r0, _021DFE80 ; =0x00000784
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_021DFE80: .word 0x00000784
+
+ thumb_func_start MOD14_021DFE84
+MOD14_021DFE84: ; 0x021DFE84
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021DFF14 ; =0x00000794
+ ldr r0, [r5, r0]
+ bl MOD14_021DDEDC
+ ldr r1, _021DFF18 ; =0x00000784
+ add r4, r0, #0
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ beq _021DFEA4
+ cmp r1, #1
+ beq _021DFEBC
+ cmp r1, #2
+ beq _021DFEF6
+ b _021DFF10
+_021DFEA4:
+ add r1, r5, #0
+ ldr r0, [r5, #0x48]
+ add r1, #0x4c
+ bl MOD14_021E0C48
+ cmp r0, #0
+ beq _021DFF10
+ ldr r0, _021DFF18 ; =0x00000784
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ b _021DFF10
+_021DFEBC:
+ bl MOD14_021DA1B8
+ cmp r0, #0
+ beq _021DFF10
+ add r0, r4, #0
+ bl MOD14_021DA1C0
+ cmp r0, #0
+ beq _021DFEE0
+ ldr r0, [r5, #4]
+ mov r1, #0
+ bl FUN_02020130
+ add r0, r5, #0
+ bl MOD14_021E0720
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DFEE0:
+ add r1, r5, #0
+ ldr r0, [r5, #0x48]
+ add r1, #0x4c
+ mov r2, #2
+ bl MOD14_021E0C20
+ ldr r0, _021DFF18 ; =0x00000784
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ b _021DFF10
+_021DFEF6:
+ add r1, r5, #0
+ ldr r0, [r5, #0x48]
+ add r1, #0x4c
+ bl MOD14_021E0C48
+ cmp r0, #0
+ beq _021DFF10
+ ldr r0, [r5, #4]
+ mov r1, #2
+ bl FUN_02020130
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DFF10:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DFF14: .word 0x00000794
+_021DFF18: .word 0x00000784
+
+ thumb_func_start MOD14_021DFF1C
+MOD14_021DFF1C: ; 0x021DFF1C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02020238
+ ldr r0, _021DFF4C ; =0x0000078C
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _021DFF38
+ ldr r0, [r4, #0x4c]
+ mov r1, #1
+ bl FUN_02020238
+_021DFF38:
+ ldr r0, _021DFF50 ; =0x0000078D
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021DFF4A
+ sub r0, #0x2d
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl MOD14_021E501C
+_021DFF4A:
+ pop {r4, pc}
+ .align 2, 0
+_021DFF4C: .word 0x0000078C
+_021DFF50: .word 0x0000078D
+
+ thumb_func_start MOD14_021DFF54
+MOD14_021DFF54: ; 0x021DFF54
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02020238
+ ldr r0, _021DFF84 ; =0x0000078C
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _021DFF70
+ ldr r0, [r4, #0x4c]
+ mov r1, #2
+ bl FUN_02020238
+_021DFF70:
+ ldr r0, _021DFF88 ; =0x0000078D
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021DFF82
+ sub r0, #0x2d
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl MOD14_021E501C
+_021DFF82:
+ pop {r4, pc}
+ .align 2, 0
+_021DFF84: .word 0x0000078C
+_021DFF88: .word 0x0000078D
+
+ thumb_func_start MOD14_021DFF8C
+MOD14_021DFF8C: ; 0x021DFF8C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021DFFB0 ; =0x0000078C
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021DFFAC
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC45C
+ add r2, r0, #0
+ ldr r0, [r4, #0x48]
+ add r4, #0x4c
+ add r1, r4, #0
+ bl MOD14_021E0BA4
+_021DFFAC:
+ pop {r4, pc}
+ nop
+_021DFFB0: .word 0x0000078C
+
+ thumb_func_start MOD14_021DFFB4
+MOD14_021DFFB4: ; 0x021DFFB4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC484
+ add r2, r0, #0
+ ldr r0, [r4, #0x4c]
+ cmp r0, #0
+ beq _021DFFD4
+ ldr r0, [r4, #0x48]
+ add r4, #0x4c
+ add r1, r4, #0
+ bl MOD14_021E0B54
+_021DFFD4:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021DFFD8
+MOD14_021DFFD8: ; 0x021DFFD8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x4c]
+ add r2, r1, #0
+ cmp r0, #0
+ beq _021E0004
+ add r1, r4, #0
+ ldr r0, [r4, #0x48]
+ add r1, #0x4c
+ bl MOD14_021E0BA8
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC484
+ add r2, r0, #0
+ ldr r0, [r4, #0x48]
+ add r4, #0x4c
+ add r1, r4, #0
+ bl MOD14_021E0B54
+_021E0004:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E0008
+MOD14_021E0008: ; 0x021E0008
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC49C
+ cmp r0, #0
+ ldr r0, [r4, #4]
+ beq _021E0024
+ mov r1, #1
+ bl FUN_02020248
+ pop {r4, pc}
+_021E0024:
+ mov r1, #0
+ bl FUN_02020248
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E002C
+MOD14_021E002C: ; 0x021E002C
+ ldr r3, _021E0034 ; =0x02020131
+ ldr r0, [r0, #4]
+ mov r1, #1
+ bx r3
+ .align 2, 0
+_021E0034: .word 0x02020131
+
+ thumb_func_start MOD14_021E0038
+MOD14_021E0038: ; 0x021E0038
+ push {r4, lr}
+ ldr r0, [r0, #4]
+ add r4, r1, #0
+ bl FUN_0202011C
+ add r2, r0, #0
+ ldmia r2!, {r0, r1}
+ stmia r4!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E0050
+MOD14_021E0050: ; 0x021E0050
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E0074 ; =0x00000784
+ mov r2, #0
+ strb r2, [r4, r0]
+ ldr r0, _021E0078 ; =MOD14_021E0094
+ add r1, r4, #0
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _021E0070
+ ldr r0, _021E007C ; =0x0000078D
+ mov r1, #1
+ strb r1, [r4, r0]
+ sub r0, r0, #5
+ strb r1, [r4, r0]
+_021E0070:
+ pop {r4, pc}
+ nop
+_021E0074: .word 0x00000784
+_021E0078: .word MOD14_021E0094
+_021E007C: .word 0x0000078D
+
+ thumb_func_start MOD14_021E0080
+MOD14_021E0080: ; 0x021E0080
+ ldr r1, _021E0090 ; =0x00000788
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021E008C
+ mov r0, #1
+ bx lr
+_021E008C:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021E0090: .word 0x00000788
+
+ thumb_func_start MOD14_021E0094
+MOD14_021E0094: ; 0x021E0094
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021E00E8 ; =0x00000784
+ add r4, r1, #0
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021E00A8
+ cmp r1, #1
+ beq _021E00C4
+ pop {r3, r4, r5, pc}
+_021E00A8:
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02020130
+ mov r0, #0x76
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021E4D94
+ ldr r0, _021E00E8 ; =0x00000784
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021E00C4:
+ sub r0, #0x24
+ ldr r0, [r4, r0]
+ bl MOD14_021E4DE8
+ cmp r0, #0
+ beq _021E00E4
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02020130
+ ldr r0, _021E00EC ; =0x00000788
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021E00E4:
+ pop {r3, r4, r5, pc}
+ nop
+_021E00E8: .word 0x00000784
+_021E00EC: .word 0x00000788
+
+ thumb_func_start MOD14_021E00F0
+MOD14_021E00F0: ; 0x021E00F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E0114 ; =0x00000784
+ mov r2, #0
+ strb r2, [r4, r0]
+ ldr r0, _021E0118 ; =MOD14_021E0134
+ add r1, r4, #0
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _021E0112
+ ldr r0, _021E011C ; =0x0000078D
+ mov r1, #0
+ strb r1, [r4, r0]
+ mov r1, #1
+ sub r0, r0, #5
+ strb r1, [r4, r0]
+_021E0112:
+ pop {r4, pc}
+ .align 2, 0
+_021E0114: .word 0x00000784
+_021E0118: .word MOD14_021E0134
+_021E011C: .word 0x0000078D
+
+ thumb_func_start MOD14_021E0120
+MOD14_021E0120: ; 0x021E0120
+ ldr r1, _021E0130 ; =0x00000788
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021E012C
+ mov r0, #1
+ bx lr
+_021E012C:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021E0130: .word 0x00000788
+
+ thumb_func_start MOD14_021E0134
+MOD14_021E0134: ; 0x021E0134
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021E0188 ; =0x00000784
+ add r4, r1, #0
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021E0148
+ cmp r1, #1
+ beq _021E0164
+ pop {r3, r4, r5, pc}
+_021E0148:
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02020130
+ mov r0, #0x76
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021E4E58
+ ldr r0, _021E0188 ; =0x00000784
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021E0164:
+ sub r0, #0x24
+ ldr r0, [r4, r0]
+ bl MOD14_021E4EA4
+ cmp r0, #0
+ beq _021E0184
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_02020130
+ ldr r0, _021E018C ; =0x00000788
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021E0184:
+ pop {r3, r4, r5, pc}
+ nop
+_021E0188: .word 0x00000784
+_021E018C: .word 0x00000788
+
+ thumb_func_start MOD14_021E0190
+MOD14_021E0190: ; 0x021E0190
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E01B0 ; =0x00000784
+ mov r2, #0
+ strb r2, [r4, r0]
+ ldr r0, _021E01B4 ; =MOD14_021E01D0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _021E01AC
+ ldr r0, _021E01B8 ; =0x00000788
+ mov r1, #1
+ strb r1, [r4, r0]
+_021E01AC:
+ pop {r4, pc}
+ nop
+_021E01B0: .word 0x00000784
+_021E01B4: .word MOD14_021E01D0
+_021E01B8: .word 0x00000788
+
+ thumb_func_start MOD14_021E01BC
+MOD14_021E01BC: ; 0x021E01BC
+ ldr r1, _021E01CC ; =0x00000788
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021E01C8
+ mov r0, #1
+ bx lr
+_021E01C8:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021E01CC: .word 0x00000788
+
+ thumb_func_start MOD14_021E01D0
+MOD14_021E01D0: ; 0x021E01D0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021E0224 ; =0x00000784
+ add r4, r1, #0
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021E01E4
+ cmp r1, #1
+ beq _021E0200
+ pop {r3, r4, r5, pc}
+_021E01E4:
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02020130
+ mov r0, #0x76
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021E4EB4
+ ldr r0, _021E0224 ; =0x00000784
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021E0200:
+ sub r0, #0x24
+ ldr r0, [r4, r0]
+ bl MOD14_021E4F48
+ cmp r0, #0
+ beq _021E0220
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02020130
+ ldr r0, _021E0228 ; =0x00000788
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021E0220:
+ pop {r3, r4, r5, pc}
+ nop
+_021E0224: .word 0x00000784
+_021E0228: .word 0x00000788
+
+ thumb_func_start MOD14_021E022C
+MOD14_021E022C: ; 0x021E022C
+ push {r3, lr}
+ ldr r1, _021E0240 ; =0x0000078D
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ beq _021E023E
+ ldr r0, [r0, #4]
+ mov r1, #1
+ bl FUN_02020130
+_021E023E:
+ pop {r3, pc}
+ .align 2, 0
+_021E0240: .word 0x0000078D
+
+ thumb_func_start MOD14_021E0244
+MOD14_021E0244: ; 0x021E0244
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E0260 ; =0x0000078D
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _021E025E
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_02020130
+ ldr r0, _021E0260 ; =0x0000078D
+ mov r1, #0
+ strb r1, [r4, r0]
+_021E025E:
+ pop {r4, pc}
+ .align 2, 0
+_021E0260: .word 0x0000078D
+
+ thumb_func_start MOD14_021E0264
+MOD14_021E0264: ; 0x021E0264
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x79
+ add r5, r3, #0
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r7, r2, #0
+ add r4, r1, #0
+ str r0, [sp]
+ bl MOD14_021DC3CC
+ strb r0, [r7]
+ ldrb r0, [r7]
+ cmp r0, #4
+ bhi _021E0318
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021E028E: ; jump table
+ .short _021E0298 - _021E028E - 2 ; case 0
+ .short _021E02C2 - _021E028E - 2 ; case 1
+ .short _021E02E4 - _021E028E - 2 ; case 2
+ .short _021E02F6 - _021E028E - 2 ; case 3
+ .short _021E0308 - _021E028E - 2 ; case 4
+_021E0298:
+ ldr r0, _021E031C ; =0x00000794
+ ldr r0, [r5, r0]
+ bl MOD14_021DDD98
+ add r5, r0, #0
+ ldr r0, [sp]
+ bl MOD14_021DC3D0
+ mov r1, #0x18
+ add r5, #0x70
+ mul r1, r0
+ add r0, r5, r1
+ str r0, [r6]
+ ldr r0, [sp]
+ bl MOD14_021DC3D8
+ mov r1, #0x18
+ mul r1, r0
+ add r1, #0x18
+ str r1, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E02C2:
+ ldr r0, [sp]
+ bl MOD14_021DC3E8
+ add r7, r0, #0
+ ldr r0, _021E031C ; =0x00000794
+ ldr r0, [r5, r0]
+ bl MOD14_021DDD60
+ add r1, r7, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD14_021E3170
+ ldr r0, [r4]
+ sub r0, #0x10
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E02E4:
+ ldr r0, _021E031C ; =0x00000794
+ ldr r0, [r5, r0]
+ bl MOD14_021DDD98
+ add r0, #0xa8
+ str r0, [r6]
+ mov r0, #8
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E02F6:
+ ldr r0, _021E031C ; =0x00000794
+ ldr r0, [r5, r0]
+ bl MOD14_021DDD98
+ add r0, #0x9f
+ str r0, [r6]
+ mov r0, #0xa0
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E0308:
+ ldr r0, _021E031C ; =0x00000794
+ ldr r0, [r5, r0]
+ bl MOD14_021DDD98
+ add r0, #0xeb
+ str r0, [r6]
+ mov r0, #0xa0
+ str r0, [r4]
+_021E0318:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E031C: .word 0x00000794
+
+ thumb_func_start MOD14_021E0320
+MOD14_021E0320: ; 0x021E0320
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r7, r0, #0
+ ldr r0, [r7, #4]
+ add r6, r1, #0
+ bl FUN_02020044
+ ldr r1, _021E03B4 ; =0x0000078C
+ ldrb r0, [r7, r1]
+ cmp r0, #0
+ beq _021E0378
+ mov r0, #0
+ sub r1, #0x38
+ str r0, [sp]
+ str r0, [sp, #0x18]
+ ldr r0, [r7, r1]
+ cmp r0, #0
+ bls _021E0378
+ add r4, r7, #0
+ add r5, r7, #0
+_021E0348:
+ ldr r0, _021E03B8 ; =0x00000664
+ ldr r1, [r6]
+ ldr r0, [r4, r0]
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r0, _021E03BC ; =0x00000668
+ ldr r1, [r6, #4]
+ ldr r0, [r4, r0]
+ sub r0, r1, r0
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #0x4c]
+ add r1, sp, #0x10
+ bl FUN_02020044
+ ldr r0, [sp]
+ add r4, #8
+ add r0, r0, #1
+ str r0, [sp]
+ ldr r0, _021E03C0 ; =0x00000754
+ add r5, #0x34
+ ldr r1, [r7, r0]
+ ldr r0, [sp]
+ cmp r0, r1
+ blo _021E0348
+_021E0378:
+ ldr r0, _021E03C4 ; =0x0000078D
+ ldrb r1, [r7, r0]
+ cmp r1, #0
+ beq _021E038A
+ sub r0, #0x2d
+ ldr r0, [r7, r0]
+ add r1, r6, #0
+ bl MOD14_021E4FDC
+_021E038A:
+ ldr r0, _021E03C8 ; =0x0000078E
+ ldrb r0, [r7, r0]
+ cmp r0, #0
+ beq _021E03B0
+ ldmia r6!, {r0, r1}
+ add r3, sp, #4
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ mov r0, #6
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #8]
+ ldr r0, [r7, #8]
+ add r1, r2, #0
+ bl FUN_02020044
+_021E03B0:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E03B4: .word 0x0000078C
+_021E03B8: .word 0x00000664
+_021E03BC: .word 0x00000668
+_021E03C0: .word 0x00000754
+_021E03C4: .word 0x0000078D
+_021E03C8: .word 0x0000078E
+
+ thumb_func_start MOD14_021E03CC
+MOD14_021E03CC: ; 0x021E03CC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ mov r1, #0x79
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r0, r1]
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ beq _021E03E2
+ b _021E0504
+_021E03E2:
+ mov r1, #0x79
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bl MOD14_021DC4DC
+ cmp r0, #0
+ beq _021E042A
+ mov r1, #0x79
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bl MOD14_021DC3E0
+ add r1, r0, #0
+ ldr r3, [sp, #4]
+ ldr r2, _021E053C ; =0x00000758
+ ldr r0, [sp, #4]
+ add r3, #0x4c
+ ldr r0, [r0, r2]
+ ldr r2, _021E0540 ; =0x000004D8
+ bl MOD14_021DE980
+ ldr r0, [sp, #4]
+ ldr r2, _021E0544 ; =0x00000754
+ mov r1, #1
+ str r1, [r0, r2]
+ add r1, r2, #0
+ mov r3, #0
+ sub r1, #0xf0
+ str r3, [r0, r1]
+ ldr r1, _021E0548 ; =0xFFFFC000
+ sub r2, #0xec
+ str r1, [r0, r2]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+_021E042A:
+ add r0, sp, #0x24
+ str r0, [sp]
+ mov r1, #0x79
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ add r1, sp, #0x30
+ add r2, sp, #0x2c
+ add r3, sp, #0x28
+ bl MOD14_021DC4A4
+ mov r1, #0x79
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bl MOD14_021DC3D0
+ str r0, [sp, #0x18]
+ mov r1, #0x79
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bl MOD14_021DC3D8
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0x24]
+ str r0, [sp, #0x1c]
+ cmp r0, r1
+ bhi _021E04F8
+ ldr r0, [sp, #4]
+ ldr r6, [sp, #4]
+ str r0, [sp, #0x10]
+ add r0, #0x4c
+ str r0, [sp, #0x10]
+ mov r7, #0x5f
+ ldr r0, [sp, #0x1c]
+ mov r1, #6
+ mul r1, r0
+ lsl r7, r7, #4
+ str r1, [sp, #0xc]
+ add r5, r6, #0
+_021E0482:
+ ldr r4, [sp, #0x30]
+ ldr r0, [sp, #0x2c]
+ cmp r4, r0
+ bhi _021E04E6
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x14]
+ sub r1, r1, r0
+ mov r0, #0x18
+ add r2, r1, #0
+ mul r2, r0
+ sub r0, #0x1c
+ sub r0, r0, r2
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+_021E049E:
+ ldr r1, [sp, #4]
+ ldr r0, _021E053C ; =0x00000758
+ ldr r3, [sp, #0x10]
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0xc]
+ add r2, r7, #0
+ add r1, r4, r1
+ bl MOD14_021DE980
+ ldr r0, [r6, #0x4c]
+ cmp r0, #0
+ beq _021E04DE
+ ldr r0, [sp, #0x18]
+ add r7, #0x10
+ sub r1, r4, r0
+ mov r0, #6
+ add r2, r1, #0
+ lsl r0, r0, #0xe
+ mul r2, r0
+ ldr r0, _021E054C ; =0x00000664
+ ldr r1, [sp, #8]
+ str r2, [r5, r0]
+ add r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp, #0x10]
+ add r6, #0x34
+ add r0, #0x34
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x20]
+ add r5, #8
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+_021E04DE:
+ ldr r0, [sp, #0x2c]
+ add r4, r4, #1
+ cmp r4, r0
+ bls _021E049E
+_021E04E6:
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x24]
+ add r0, r0, #6
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, r1
+ bls _021E0482
+_021E04F8:
+ ldr r2, _021E0544 ; =0x00000754
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #4]
+ add sp, #0x34
+ str r1, [r0, r2]
+ pop {r4, r5, r6, r7, pc}
+_021E0504:
+ mov r1, #0x79
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bl MOD14_021DC3E8
+ add r1, r0, #0
+ ldr r3, [sp, #4]
+ ldr r2, _021E0550 ; =0x0000075C
+ ldr r0, [sp, #4]
+ add r3, #0x4c
+ ldr r0, [r0, r2]
+ ldr r2, _021E0540 ; =0x000004D8
+ bl MOD14_021E3084
+ ldr r2, _021E0544 ; =0x00000754
+ ldr r0, [sp, #4]
+ mov r1, #1
+ str r1, [r0, r2]
+ add r1, r2, #0
+ mov r3, #0
+ sub r1, #0xf0
+ str r3, [r0, r1]
+ ldr r1, _021E0548 ; =0xFFFFC000
+ sub r2, #0xec
+ str r1, [r0, r2]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E053C: .word 0x00000758
+_021E0540: .word 0x000004D8
+_021E0544: .word 0x00000754
+_021E0548: .word 0xFFFFC000
+_021E054C: .word 0x00000664
+_021E0550: .word 0x0000075C
+
+ thumb_func_start MOD14_021E0554
+MOD14_021E0554: ; 0x021E0554
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, _021E0580 ; =0x00000754
+ mov r4, #0
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ bls _021E0578
+ ldr r7, _021E0580 ; =0x00000754
+ add r5, r6, #0
+_021E0566:
+ ldr r0, [r5, #0x4c]
+ mov r1, #2
+ bl MOD14_021DDE24
+ ldr r0, [r6, r7]
+ add r4, r4, #1
+ add r5, #0x34
+ cmp r4, r0
+ blo _021E0566
+_021E0578:
+ ldr r0, _021E0584 ; =0x0000078C
+ mov r1, #1
+ strb r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E0580: .word 0x00000754
+_021E0584: .word 0x0000078C
+
+ thumb_func_start MOD14_021E0588
+MOD14_021E0588: ; 0x021E0588
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021E0604
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC4DC
+ cmp r0, #0
+ beq _021E05C2
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC3E0
+ add r1, r0, #0
+ ldr r0, _021E0620 ; =0x00000758
+ ldr r0, [r5, r0]
+ add r5, #0x4c
+ add r2, r5, #0
+ bl MOD14_021DE9D4
+ pop {r3, r4, r5, r6, r7, pc}
+_021E05C2:
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC4F8
+ add r7, r0, #0
+ ldr r0, _021E0624 ; =0x00000754
+ mov r4, #0
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bls _021E061C
+ add r6, r5, #0
+ add r6, #0x4c
+_021E05DC:
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl MOD14_021DC528
+ add r1, r0, #0
+ ldr r0, _021E0620 ; =0x00000758
+ add r1, r7, r1
+ ldr r0, [r5, r0]
+ add r2, r6, #0
+ bl MOD14_021DE9D4
+ ldr r0, _021E0624 ; =0x00000754
+ add r4, r4, #1
+ ldr r0, [r5, r0]
+ add r6, #0x34
+ cmp r4, r0
+ blo _021E05DC
+ pop {r3, r4, r5, r6, r7, pc}
+_021E0604:
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC3E8
+ add r1, r0, #0
+ ldr r0, _021E0628 ; =0x0000075C
+ ldr r0, [r5, r0]
+ add r5, #0x4c
+ add r2, r5, #0
+ bl MOD14_021E30C0
+_021E061C:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E0620: .word 0x00000758
+_021E0624: .word 0x00000754
+_021E0628: .word 0x0000075C
+
+ thumb_func_start MOD14_021E062C
+MOD14_021E062C: ; 0x021E062C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021E06A2
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC3E0
+ add r4, r0, #0
+ ldr r0, _021E0708 ; =0x00000758
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ bl MOD14_021DEA38
+ add r6, r0, #0
+ add r1, r5, #0
+ mov r2, #0x5f
+ ldr r0, [r5, #0x48]
+ add r1, #0x4c
+ lsl r2, r2, #4
+ bl MOD14_021E0BBC
+ mov r2, #6
+ ldr r0, [r5, #0x48]
+ add r1, r6, #0
+ lsl r2, r2, #8
+ bl MOD14_021E0BBC
+ bl OS_WaitVBlankIntr
+ ldr r0, _021E0708 ; =0x00000758
+ add r3, r5, #0
+ ldr r0, [r5, r0]
+ ldr r2, _021E070C ; =0x000004D8
+ add r1, r4, #0
+ add r3, #0x80
+ bl MOD14_021DE980
+ ldr r0, _021E0708 ; =0x00000758
+ add r2, r5, #0
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ add r2, #0x4c
+ bl MOD14_021DE9D4
+ add r0, r5, #0
+ add r5, #0x4c
+ add r0, #0x80
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD14_021E0930
+ pop {r4, r5, r6, pc}
+_021E06A2:
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD14_021DC3E8
+ add r4, r0, #0
+ ldr r0, _021E0710 ; =0x0000075C
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ bl MOD14_021E3158
+ add r6, r0, #0
+ add r1, r5, #0
+ mov r2, #0x5f
+ ldr r0, [r5, #0x48]
+ add r1, #0x4c
+ lsl r2, r2, #4
+ bl MOD14_021E0BBC
+ mov r2, #6
+ ldr r0, [r5, #0x48]
+ add r1, r6, #0
+ lsl r2, r2, #8
+ bl MOD14_021E0BBC
+ bl OS_WaitVBlankIntr
+ ldr r0, _021E0710 ; =0x0000075C
+ add r3, r5, #0
+ ldr r0, [r5, r0]
+ ldr r2, _021E070C ; =0x000004D8
+ add r1, r4, #0
+ add r3, #0x80
+ bl MOD14_021E3084
+ ldr r0, _021E0710 ; =0x0000075C
+ add r2, r5, #0
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ add r2, #0x4c
+ bl MOD14_021E3114
+ add r0, r5, #0
+ add r5, #0x4c
+ add r0, #0x80
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD14_021E0930
+ pop {r4, r5, r6, pc}
+ nop
+_021E0708: .word 0x00000758
+_021E070C: .word 0x000004D8
+_021E0710: .word 0x0000075C
+
+ thumb_func_start MOD14_021E0714
+MOD14_021E0714: ; 0x021E0714
+ ldr r1, _021E071C ; =0x0000078C
+ mov r2, #0
+ strb r2, [r0, r1]
+ bx lr
+ .align 2, 0
+_021E071C: .word 0x0000078C
+
+ thumb_func_start MOD14_021E0720
+MOD14_021E0720: ; 0x021E0720
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ ldr r0, [r4, #0x48]
+ add r1, #0x4c
+ mov r2, #1
+ bl MOD14_021E0908
+ ldr r0, _021E073C ; =0x0000078C
+ mov r1, #0
+ strb r1, [r4, r0]
+ sub r0, #0x38
+ str r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_021E073C: .word 0x0000078C
+
+ thumb_func_start MOD14_021E0740
+MOD14_021E0740: ; 0x021E0740
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021E076A
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3E0
+ add r1, r0, #0
+ ldr r0, _021E0784 ; =0x00000758
+ ldr r0, [r4, r0]
+ bl MOD14_021DEA38
+ ldr r0, [r0]
+ pop {r4, pc}
+_021E076A:
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD14_021DC3E8
+ add r1, r0, #0
+ ldr r0, _021E0788 ; =0x0000075C
+ ldr r0, [r4, r0]
+ bl MOD14_021E3158
+ ldr r0, [r0]
+ pop {r4, pc}
+ nop
+_021E0784: .word 0x00000758
+_021E0788: .word 0x0000075C
+
+ thumb_func_start MOD14_021E078C
+MOD14_021E078C: ; 0x021E078C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0
+ add r0, sp, #0x18
+ add r4, r1, #0
+ add r6, r2, #0
+ str r3, [sp, #8]
+ bl FUN_020B19DC
+ bl FUN_0206B888
+ add r1, r0, #0
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, sp, #0x18
+ str r0, [sp, #4]
+ mov r0, #0x13
+ mov r2, #1
+ mov r3, #0x40
+ bl FUN_02006A8C
+ bl FUN_0206B888
+ add r1, r0, #0
+ mov r0, #0x13
+ add r2, sp, #0x14
+ mov r3, #0xa
+ bl FUN_02006C08
+ str r0, [sp, #0xc]
+ cmp r0, #0
+ beq _021E0818
+ add r0, sp, #0x18
+ bl FUN_020B19DC
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0x10
+ bl FUN_020B00F0
+ ldr r2, [sp, #0x14]
+ add r7, r0, #0
+ ldr r0, [r2, #0xc]
+ mov r1, #8
+ str r1, [sp]
+ ldr r2, [r2, #8]
+ ldr r3, _021E0898 ; =0x0000057F
+ add r1, r0, #0
+ lsr r2, r2, #1
+ bl MOD14_021DDE40
+ cmp r7, #0
+ beq _021E0806
+ add r0, sp, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x10]
+ mov r2, #0xc0
+ mov r3, #1
+ bl FUN_020B10E8
+ b _021E0812
+_021E0806:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc0
+ mov r2, #1
+ add r3, sp, #0x18
+ bl FUN_020B1240
+_021E0812:
+ ldr r0, [sp, #0xc]
+ bl FUN_02016A18
+_021E0818:
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x15
+ mov r2, #1
+ add r3, #0x10
+ bl FUN_02006C30
+ str r0, [r5, #8]
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x16
+ mov r2, #1
+ add r3, r5, #4
+ bl FUN_02006C5C
+ str r0, [r5]
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x17
+ mov r2, #1
+ add r3, #0x1c
+ bl FUN_02006C30
+ str r0, [r5, #0x14]
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x18
+ mov r2, #1
+ add r3, #0x20
+ bl FUN_02006C5C
+ str r0, [r5, #0x18]
+ mov r0, #0x13
+ mov r1, #0xa
+ bl FUN_02006670
+ str r0, [r5, #0x48]
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _021E0882
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021E0882
+ ldr r0, [r5, #0x48]
+ cmp r0, #0
+ bne _021E0888
+_021E0882:
+ add sp, #0x2c
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_021E0888:
+ ldr r0, [sp, #8]
+ str r0, [r5, #0x24]
+ str r6, [r5, #0x40]
+ str r4, [r5, #0x44]
+ mov r0, #1
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021E0898: .word 0x0000057F
+
+ thumb_func_start MOD14_021E089C
+MOD14_021E089C: ; 0x021E089C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _021E08AE
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, #8]
+_021E08AE:
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021E08BC
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4]
+_021E08BC:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021E08CA
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, #0x14]
+_021E08CA:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _021E08D8
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, #0x18]
+_021E08D8:
+ ldr r0, [r4, #0x48]
+ cmp r0, #0
+ beq _021E08E2
+ bl FUN_020066F4
+_021E08E2:
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E08E4
+MOD14_021E08E4: ; 0x021E08E4
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ add r0, r4, #0
+ add r5, r1, #0
+ sub r4, r4, #1
+ cmp r0, #0
+ beq _021E0906
+ mov r6, #0
+_021E08F4:
+ add r0, r5, #4
+ str r6, [r5]
+ bl FUN_020B1A24
+ add r0, r4, #0
+ add r5, #0x34
+ sub r4, r4, #1
+ cmp r0, #0
+ bne _021E08F4
+_021E0906:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E0908
+MOD14_021E0908: ; 0x021E0908
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ add r0, r4, #0
+ add r5, r1, #0
+ sub r4, r4, #1
+ cmp r0, #0
+ beq _021E092E
+ mov r6, #0
+_021E0918:
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021E0924
+ bl FUN_0201FFC8
+ str r6, [r5]
+_021E0924:
+ add r0, r4, #0
+ add r5, #0x34
+ sub r4, r4, #1
+ cmp r0, #0
+ bne _021E0918
+_021E092E:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E0930
+MOD14_021E0930: ; 0x021E0930
+ mov r3, #0x34
+ mul r3, r2
+ add r2, r3, #0
+ ldr r3, _021E093C ; =0x020CE210
+ bx r3
+ nop
+_021E093C: .word 0x020CE210
+
+ thumb_func_start MOD14_021E0940
+MOD14_021E0940: ; 0x021E0940
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r6, r1, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ str r2, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r4, [sp, #0x64]
+ bl FUN_02066A6C
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x44]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ ldr r0, [r5, #4]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x58]
+ str r0, [sp, #4]
+ ldr r3, [r5, #0x10]
+ add r0, sp, #0x20
+ bl MOD14_021DDDB4
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x18]
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020672BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x14]
+ add r0, r6, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020672BC
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ add r0, r6, #0
+ bl FUN_0206B688
+ str r0, [r4, #0x28]
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ add r1, r7, #0
+ bl FUN_0206B7BC
+ strh r0, [r4, #0x2c]
+ add r0, r6, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020672BC
+ strh r0, [r4, #0x30]
+ add r0, r6, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl FUN_020672BC
+ strh r0, [r4, #0x2e]
+ add r0, r4, #4
+ bl FUN_020B1A24
+ add r0, r5, #0
+ add r0, #0x4c
+ str r0, [sp]
+ mov r3, #0xa
+ ldr r0, [r5, #0x48]
+ ldr r1, [r4, #0x28]
+ mov r2, #0
+ lsl r3, r3, #6
+ bl FUN_02006814
+ add r0, r5, #0
+ add r0, #0x4c
+ add r1, sp, #0x1c
+ bl FUN_020B0088
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021E0A5C ; =0x00300010
+ add r3, r4, #4
+ and r1, r0
+ ldr r0, [sp, #0x1c]
+ str r1, [r0, #8]
+ lsr r1, r2, #0x11
+ ldr r0, [sp, #0x1c]
+ mov r2, #1
+ str r1, [r0, #0x10]
+ ldr r1, [sp, #0x60]
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #5
+ bl FUN_020B1768
+ add r0, r4, #4
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x5c]
+ ldr r2, [sp, #8]
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x24]
+ ldr r3, [sp, #0xc]
+ add r1, sp, #0x20
+ bl MOD14_021DDDD4
+ str r0, [r4]
+ cmp r0, #0
+ bne _021E0A36
+ bl ErrorHandling
+_021E0A36:
+ ldrh r1, [r4, #0x2c]
+ ldr r0, [r4]
+ add r1, r1, #2
+ bl FUN_02020248
+ ldr r0, [r5, #0x40]
+ bl MOD14_021DC484
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E0B54
+ ldr r1, [sp, #0x10]
+ add r0, r6, #0
+ bl FUN_02066A94
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E0A5C: .word 0x00300010
+
+ thumb_func_start MOD14_021E0A60
+MOD14_021E0A60: ; 0x021E0A60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r6, r1, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ str r2, [sp, #8]
+ add r7, r3, #0
+ ldr r4, [sp, #0x70]
+ bl FUN_02066A6C
+ str r0, [sp, #0x14]
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020672BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020672BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x44]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ ldr r0, [r5, #4]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x64]
+ str r0, [sp, #4]
+ ldr r3, [r5, #0x10]
+ add r0, sp, #0x1c
+ bl MOD14_021DDDB4
+ str r7, [r4, #0x28]
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ bl FUN_0206B7BC
+ strh r0, [r4, #0x2c]
+ add r0, r6, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020672BC
+ strh r0, [r4, #0x30]
+ add r0, r6, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl FUN_020672BC
+ strh r0, [r4, #0x2e]
+ add r0, r4, #4
+ bl FUN_020B1A24
+ ldr r0, [sp, #0x58]
+ add r1, sp, #0x18
+ bl FUN_020B0088
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021E0B50 ; =0x00300010
+ add r3, r4, #4
+ and r1, r0
+ ldr r0, [sp, #0x18]
+ str r1, [r0, #8]
+ lsr r1, r2, #0x11
+ ldr r0, [sp, #0x18]
+ mov r2, #1
+ str r1, [r0, #0x10]
+ ldr r1, [sp, #0x6c]
+ ldr r0, [sp, #0x18]
+ lsl r1, r1, #5
+ bl FUN_020B1768
+ add r0, r4, #4
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x68]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x24]
+ ldr r3, [sp, #0x60]
+ add r1, sp, #0x1c
+ bl MOD14_021DDDD4
+ str r0, [r4]
+ cmp r0, #0
+ bne _021E0B28
+ bl ErrorHandling
+_021E0B28:
+ ldrh r1, [r4, #0x2c]
+ ldr r0, [r4]
+ add r1, r1, #2
+ bl FUN_02020248
+ ldr r0, [r5, #0x40]
+ bl MOD14_021DC484
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E0B54
+ ldr r1, [sp, #0x14]
+ add r0, r6, #0
+ bl FUN_02066A94
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E0B50: .word 0x00300010
+
+ thumb_func_start MOD14_021E0B54
+MOD14_021E0B54: ; 0x021E0B54
+ push {r4, r5, r6, lr}
+ cmp r2, #0
+ beq _021E0B9A
+ mov r3, #1
+ add r0, r2, #0
+ tst r0, r3
+ beq _021E0B72
+ ldrh r0, [r1, #0x30]
+ cmp r0, #0
+ bne _021E0B72
+ ldr r0, [r1]
+ add r1, r3, #0
+ bl FUN_02020398
+ pop {r4, r5, r6, pc}
+_021E0B72:
+ mov r3, #0
+ mov r4, #1
+ mov r0, #2
+_021E0B78:
+ add r5, r0, #0
+ lsl r5, r3
+ tst r5, r2
+ beq _021E0B94
+ add r5, r4, #0
+ ldrh r6, [r1, #0x2e]
+ lsl r5, r3
+ tst r5, r6
+ bne _021E0B94
+ ldr r0, [r1]
+ add r1, r4, #0
+ bl FUN_02020398
+ pop {r4, r5, r6, pc}
+_021E0B94:
+ add r3, r3, #1
+ cmp r3, #6
+ blt _021E0B78
+_021E0B9A:
+ ldr r0, [r1]
+ mov r1, #0
+ bl FUN_02020398
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E0BA4
+MOD14_021E0BA4: ; 0x021E0BA4
+ strh r2, [r1, #0x2e]
+ bx lr
+
+ thumb_func_start MOD14_021E0BA8
+MOD14_021E0BA8: ; 0x021E0BA8
+ strh r2, [r1, #0x30]
+ bx lr
+
+ thumb_func_start MOD14_021E0BAC
+MOD14_021E0BAC: ; 0x021E0BAC
+ push {r3, lr}
+ str r1, [sp]
+ ldr r0, [r0, #0x48]
+ add r1, r2, #0
+ mov r2, #0
+ bl FUN_02006814
+ pop {r3, pc}
+
+ thumb_func_start MOD14_021E0BBC
+MOD14_021E0BBC: ; 0x021E0BBC
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ add r6, r2, #0
+ cmp r0, #0
+ beq _021E0C18
+ add r0, r4, #4
+ bl FUN_020B1A24
+ add r0, r5, #0
+ add r0, #0x4c
+ str r0, [sp]
+ mov r3, #0xa
+ ldr r0, [r5, #0x48]
+ ldr r1, [r4, #0x28]
+ mov r2, #0
+ lsl r3, r3, #6
+ bl FUN_02006814
+ add r5, #0x4c
+ add r0, r5, #0
+ add r1, sp, #4
+ bl FUN_020B0088
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021E0C1C ; =0x00300010
+ add r3, r4, #4
+ and r1, r0
+ ldr r0, [sp, #4]
+ str r1, [r0, #8]
+ lsr r1, r2, #0x11
+ ldr r0, [sp, #4]
+ mov r2, #1
+ str r1, [r0, #0x10]
+ ldr r0, [sp, #4]
+ lsl r1, r6, #5
+ bl FUN_020B1768
+ ldr r0, [r4]
+ add r1, r4, #4
+ bl FUN_02020334
+_021E0C18:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021E0C1C: .word 0x00300010
+
+ thumb_func_start MOD14_021E0C20
+MOD14_021E0C20: ; 0x021E0C20
+ push {r3, r4, r5, lr}
+ add r4, r2, #0
+ add r5, r1, #0
+ sub r0, r4, #1
+ cmp r0, #1
+ ldr r0, [r5]
+ bhi _021E0C36
+ mov r1, #1
+ bl FUN_020200EC
+ b _021E0C3C
+_021E0C36:
+ mov r1, #0
+ bl FUN_020200EC
+_021E0C3C:
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl FUN_02020130
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E0C48
+MOD14_021E0C48: ; 0x021E0C48
+ push {r3, lr}
+ ldr r0, [r1]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _021E0C58
+ mov r0, #1
+ pop {r3, pc}
+_021E0C58:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD14_021E0C5C
+MOD14_021E0C5C: ; 0x021E0C5C
+ cmp r2, #0
+ beq _021E0C64
+ mov r2, #6
+ b _021E0C66
+_021E0C64:
+ mov r2, #2
+_021E0C66:
+ ldr r0, [r1]
+ ldrh r1, [r1, #0x2c]
+ ldr r3, _021E0C70 ; =0x02020249
+ add r1, r1, r2
+ bx r3
+ .align 2, 0
+_021E0C70: .word 0x02020249
+
+ thumb_func_start MOD14_021E0C74
+MOD14_021E0C74: ; 0x021E0C74
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start MOD14_021E0C78
+MOD14_021E0C78: ; 0x021E0C78
+ ldr r0, [r0, #4]
+ bx lr
+
+ thumb_func_start MOD14_021E0C7C
+MOD14_021E0C7C: ; 0x021E0C7C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ str r1, [r4, #0x44]
+ str r3, [r4, #0x3c]
+ str r2, [r4, #0x40]
+ str r3, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ mov r1, #0xa
+ add r3, r4, #0
+ str r1, [sp]
+ mov r0, #0x12
+ mov r2, #1
+ add r3, #0x10
+ bl FUN_02006C30
+ str r0, [r4, #8]
+ mov r0, #0xa
+ add r3, r4, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0xb
+ mov r2, #1
+ add r3, #0x14
+ bl FUN_02006C5C
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _021E0CC0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ bne _021E0CC6
+_021E0CC0:
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, pc}
+_021E0CC6:
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD14_021E0CCC
+MOD14_021E0CCC: ; 0x021E0CCC
+ push {r4, lr}
+ sub sp, #0x38
+ add r4, r0, #0
+ add r0, #0x18
+ bl FUN_020B1A24
+ mov r3, #0
+ mov r0, #0x9d
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ lsl r0, r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0x18
+ str r0, [sp, #0x10]
+ mov r0, #0x12
+ mov r1, #9
+ bl FUN_02006AE4
+ ldr r0, [r4, #0x44]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ ldr r0, [r4, #0x14]
+ add r1, r4, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r3, [r4, #0x10]
+ add r0, sp, #0x14
+ add r1, #0x18
+ bl MOD14_021DDDB4
+ ldr r0, [r4, #0x44]
+ bl MOD14_021DDD98
+ add r2, r0, #0
+ mov r0, #0x2c
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, sp, #0x14
+ add r2, #0xb7
+ mov r3, #0xb0
+ bl MOD14_021DDDD4
+ mov r1, #1
+ str r0, [r4, #4]
+ bl FUN_02020248
+ add sp, #0x38
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E0D3C
+MOD14_021E0D3C: ; 0x021E0D3C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _021E0D4E
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, #8]
+_021E0D4E:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021E0D5C
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, #0xc]
+_021E0D5C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E0D60
+MOD14_021E0D60: ; 0x021E0D60
+ push {r3, lr}
+ cmp r1, #0
+ beq _021E0D70
+ cmp r1, #1
+ beq _021E0D7A
+ cmp r1, #2
+ beq _021E0D84
+ pop {r3, pc}
+_021E0D70:
+ ldr r0, [r0, #4]
+ mov r1, #0
+ bl FUN_02020130
+ pop {r3, pc}
+_021E0D7A:
+ ldr r0, [r0, #4]
+ mov r1, #1
+ bl FUN_02020130
+ pop {r3, pc}
+_021E0D84:
+ ldr r0, [r0, #4]
+ mov r1, #2
+ bl FUN_02020130
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E0D90
+MOD14_021E0D90: ; 0x021E0D90
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r2, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ add r4, r1, #0
+ add r7, r3, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ bne _021E0DAC
+ mov r0, #0
+ str r0, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E0DAC:
+ str r4, [r5, #0x14]
+ str r7, [r5, #8]
+ ldr r0, [sp, #0x18]
+ str r6, [r5, #0x10]
+ str r0, [r5, #0xc]
+ mov r0, #0
+ str r0, [r5, #4]
+ str r0, [r5, #0x4c]
+ str r0, [r5, #0x24]
+ add r0, r4, #0
+ bl MOD14_021DDD90
+ str r0, [r5, #0x20]
+ mov r0, #9
+ mov r1, #6
+ mov r2, #0xf
+ mov r3, #0xa
+ bl FUN_0200B870
+ str r0, [r5, #0x18]
+ mov r0, #1
+ mov r1, #2
+ mov r2, #0xf
+ mov r3, #0xa
+ bl FUN_0200B870
+ str r0, [r5, #0x1c]
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x10
+ mov r2, #1
+ add r3, #0x2c
+ bl FUN_02006C30
+ str r0, [r5, #0x28]
+ mov r0, #0
+ str r0, [r5, #0x30]
+ ldr r0, [sp, #0x1c]
+ mov r1, #0x15
+ bl FUN_0200A914
+ str r0, [r5, #0x44]
+ ldr r0, [sp, #0x1c]
+ mov r1, #0x16
+ bl FUN_0200A914
+ str r0, [r5, #0x48]
+ bl FUN_0206E12C
+ add r4, r0, #0
+ bl FUN_0206E10C
+ add r1, r0, #0
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #1
+ add r3, #0x38
+ bl FUN_02006C30
+ mov r1, #0
+ str r0, [r5, #0x34]
+ add r2, r5, #0
+ add r0, r1, #0
+_021E0E32:
+ add r1, r1, #1
+ str r0, [r2, #0x3c]
+ add r2, r2, #4
+ cmp r1, #2
+ blt _021E0E32
+ mov r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E0E44
+MOD14_021E0E44: ; 0x021E0E44
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021E0EE2
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ beq _021E0E72
+ mov r6, #0
+ add r4, r6, #0
+_021E0E58:
+ ldr r0, [r5, #4]
+ add r0, r0, r4
+ bl FUN_02019178
+ add r6, r6, #1
+ add r4, #0x10
+ cmp r6, #4
+ blt _021E0E58
+ ldr r0, [r5, #4]
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r5, #4]
+_021E0E72:
+ ldr r0, [r5, #0x18]
+ cmp r0, #0
+ beq _021E0E7C
+ bl FUN_0200B990
+_021E0E7C:
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _021E0E86
+ bl FUN_0200B990
+_021E0E86:
+ ldr r0, [r5, #0x44]
+ cmp r0, #0
+ beq _021E0E90
+ bl FUN_02021A20
+_021E0E90:
+ ldr r0, [r5, #0x48]
+ cmp r0, #0
+ beq _021E0E9A
+ bl FUN_02021A20
+_021E0E9A:
+ ldr r0, [r5, #0x24]
+ cmp r0, #0
+ beq _021E0EA8
+ bl FUN_02007534
+ mov r0, #0
+ str r0, [r5, #0x24]
+_021E0EA8:
+ ldr r0, [r5, #0x28]
+ cmp r0, #0
+ beq _021E0EB2
+ bl FUN_02016A18
+_021E0EB2:
+ ldr r0, [r5, #0x30]
+ cmp r0, #0
+ beq _021E0EBC
+ bl FUN_0201FFC8
+_021E0EBC:
+ ldr r0, [r5, #0x34]
+ cmp r0, #0
+ beq _021E0EC6
+ bl FUN_02016A18
+_021E0EC6:
+ mov r6, #0
+ add r4, r5, #0
+_021E0ECA:
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0
+ beq _021E0ED4
+ bl FUN_0201FFC8
+_021E0ED4:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #2
+ blt _021E0ECA
+ add r0, r5, #0
+ bl MOD14_021E10F4
+_021E0EE2:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E0EE4
+MOD14_021E0EE4: ; 0x021E0EE4
+ push {r3, lr}
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _021E0EF2
+ ldr r0, [r0, #0x20]
+ bl FUN_020081C4
+_021E0EF2:
+ pop {r3, pc}
+
+ thumb_func_start MOD14_021E0EF4
+MOD14_021E0EF4: ; 0x021E0EF4
+ push {r4, lr}
+ sub sp, #0x20
+ mov r2, #0
+ str r2, [sp]
+ add r4, r0, #0
+ str r2, [sp, #4]
+ add r0, sp, #0x10
+ mov r1, #1
+ add r3, r2, #0
+ str r2, [sp, #8]
+ bl FUN_02068C00
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x20]
+ add r1, sp, #0x10
+ mov r2, #0x2c
+ mov r3, #0x54
+ bl FUN_020073A0
+ str r0, [r4, #0x24]
+ add sp, #0x20
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E0F28
+MOD14_021E0F28: ; 0x021E0F28
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _021E0F3C
+ bl FUN_02007534
+ mov r0, #0
+ str r0, [r4, #0x24]
+ pop {r4, pc}
+_021E0F3C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E0F40
+MOD14_021E0F40: ; 0x021E0F40
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021E0FA0
+ mov r0, #0xa
+ mov r1, #4
+ bl FUN_02018FF4
+ str r0, [r5, #4]
+ cmp r0, #0
+ beq _021E0F94
+ mov r7, #0
+ ldr r6, _021E0FA4 ; =0x021E65F4
+ add r4, r7, #0
+_021E0F5E:
+ ldr r1, [r5, #4]
+ ldr r0, [r5, #8]
+ add r1, r1, r4
+ add r2, r6, #0
+ bl FUN_02019150
+ cmp r7, #3
+ ldr r0, [r5, #4]
+ beq _021E0F78
+ add r0, r0, r4
+ bl FUN_02019270
+ b _021E0F82
+_021E0F78:
+ add r0, r0, r4
+ mov r1, #0xc
+ mov r2, #2
+ bl FUN_0201928C
+_021E0F82:
+ add r7, r7, #1
+ add r6, #8
+ add r4, #0x10
+ cmp r7, #4
+ blt _021E0F5E
+ ldr r0, [r5, #8]
+ mov r1, #2
+ bl FUN_02017CD0
+_021E0F94:
+ add r0, r5, #0
+ bl MOD14_021E0FA8
+ add r0, r5, #0
+ bl MOD14_021E10B0
+_021E0FA0:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E0FA4: .word 0x021E65F4
+
+ thumb_func_start MOD14_021E0FA8
+MOD14_021E0FA8: ; 0x021E0FA8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x68
+ add r5, r0, #0
+ bl FUN_0206E12C
+ str r0, [sp, #0x1c]
+ mov r0, #2
+ bl FUN_0206E0F0
+ str r0, [sp, #0x18]
+ bl FUN_0206E108
+ add r1, r0, #0
+ mov r0, #0x60
+ str r0, [sp]
+ mov r3, #0xa
+ str r3, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ mov r2, #1
+ lsl r3, r3, #5
+ bl FUN_02006930
+ mov r0, #0
+ mov r6, #0x5e
+ str r0, [sp, #0x14]
+ lsl r6, r6, #4
+ mov r7, #0x18
+ add r4, r5, #0
+_021E0FE0:
+ add r0, sp, #0x44
+ bl FUN_020B1A24
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ lsl r0, r6, #5
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ add r0, sp, #0x44
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_02006B38
+ ldr r0, [r5, #0x14]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r3, [r5, #0x38]
+ add r0, sp, #0x20
+ add r1, sp, #0x44
+ bl MOD14_021DDDB4
+ mov r0, #0x2e
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0xc]
+ add r1, sp, #0x20
+ add r2, r7, #0
+ mov r3, #0xb0
+ bl MOD14_021DDDD4
+ str r0, [r4, #0x3c]
+ cmp r0, #0
+ bne _021E103E
+ bl ErrorHandling
+_021E103E:
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [sp, #0x14]
+ add r6, #8
+ add r0, r0, #1
+ add r7, #0x24
+ add r4, r4, #4
+ str r0, [sp, #0x14]
+ cmp r0, #2
+ blo _021E0FE0
+ add r0, sp, #0x44
+ bl FUN_020B1A24
+ mov r3, #0
+ mov r0, #0xb9
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ lsl r0, r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ add r0, sp, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #0x12
+ mov r1, #0xf
+ bl FUN_02006AE4
+ ldr r0, [r5, #0x14]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r3, [r5, #0x2c]
+ add r0, sp, #0x20
+ add r1, sp, #0x44
+ bl MOD14_021DDDB4
+ mov r0, #0x2f
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0xc]
+ add r1, sp, #0x20
+ mov r2, #0x38
+ mov r3, #0xb0
+ bl MOD14_021DDDD4
+ str r0, [r5, #0x30]
+ add sp, #0x68
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E10B0
+MOD14_021E10B0: ; 0x021E10B0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x4c]
+ cmp r0, #0
+ bne _021E10EE
+ mov r0, #0xa
+ mov r1, #0xc
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021E10EA
+ ldr r0, [r5, #0x10]
+ bl MOD14_021DC42C
+ ldrb r0, [r0, #0xf]
+ cmp r0, #0
+ beq _021E10D6
+ mov r0, #4
+ b _021E10D8
+_021E10D6:
+ mov r0, #0
+_021E10D8:
+ strh r0, [r4]
+ ldr r0, _021E10F0 ; =MOD14_021E115C
+ str r5, [r4, #8]
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ str r0, [r5, #0x4c]
+ pop {r3, r4, r5, pc}
+_021E10EA:
+ bl ErrorHandling
+_021E10EE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E10F0: .word MOD14_021E115C
+
+ thumb_func_start MOD14_021E10F4
+MOD14_021E10F4: ; 0x021E10F4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x4c]
+ cmp r0, #0
+ beq _021E1110
+ bl FUN_0201B6C8
+ bl FUN_02016A18
+ ldr r0, [r4, #0x4c]
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x4c]
+_021E1110:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1114
+MOD14_021E1114: ; 0x021E1114
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x4c]
+ bl FUN_0201B6C8
+ add r4, r0, #0
+ beq _021E113C
+ ldr r0, [r5, #0x10]
+ bl MOD14_021DC42C
+ ldrb r0, [r0, #0xf]
+ cmp r0, #0
+ beq _021E1132
+ mov r0, #4
+ b _021E1134
+_021E1132:
+ mov r0, #0
+_021E1134:
+ strh r0, [r4]
+ add r0, r5, #0
+ bl MOD14_021E1268
+_021E113C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1140
+MOD14_021E1140: ; 0x021E1140
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x4c]
+ bl FUN_0201B6C8
+ cmp r0, #0
+ beq _021E1158
+ mov r1, #4
+ strh r1, [r0]
+ add r0, r4, #0
+ bl MOD14_021E1268
+_021E1158:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E115C
+MOD14_021E115C: ; 0x021E115C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrh r0, [r4]
+ ldr r5, [r4, #8]
+ cmp r0, #4
+ bhi _021E1220
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021E1174: ; jump table
+ .short _021E117E - _021E1174 - 2 ; case 0
+ .short _021E1190 - _021E1174 - 2 ; case 1
+ .short _021E11B0 - _021E1174 - 2 ; case 2
+ .short _021E11CE - _021E1174 - 2 ; case 3
+ .short _021E1220 - _021E1174 - 2 ; case 4
+_021E117E:
+ ldr r0, [r5, #0x10]
+ bl MOD14_021DC408
+ cmp r0, #0
+ beq _021E1220
+ mov r0, #0
+ strh r0, [r4, #2]
+ mov r0, #1
+ strh r0, [r4]
+_021E1190:
+ ldr r0, [r5, #4]
+ ldrh r2, [r4, #2]
+ add r0, #0x30
+ add r1, r5, #0
+ mov r3, #0
+ bl MOD14_021E12B8
+ ldr r0, [r5, #4]
+ add r0, #0x30
+ bl FUN_02019548
+ mov r0, #0
+ strh r0, [r4, #4]
+ mov r0, #2
+ strh r0, [r4]
+ pop {r3, r4, r5, pc}
+_021E11B0:
+ ldrh r0, [r4, #4]
+ add r0, r0, #1
+ strh r0, [r4, #4]
+ ldrh r0, [r4, #4]
+ cmp r0, #0x50
+ bls _021E1220
+ add r0, r4, #0
+ bl MOD14_021E1284
+ mov r0, #0
+ strh r0, [r4, #4]
+ strh r0, [r4, #6]
+ mov r0, #3
+ strh r0, [r4]
+ pop {r3, r4, r5, pc}
+_021E11CE:
+ ldrh r0, [r4, #6]
+ mov r1, #1
+ lsl r1, r1, #0xe
+ add r0, r0, #4
+ strh r0, [r4, #6]
+ add r0, r5, #0
+ bl MOD14_021E1224
+ ldr r0, [r5, #4]
+ mov r1, #0
+ add r0, #0x30
+ mov r2, #4
+ add r3, r1, #0
+ bl FUN_0201A8C8
+ ldr r0, [r5, #4]
+ add r0, #0x30
+ bl FUN_02019548
+ ldrh r0, [r4, #6]
+ cmp r0, #0x10
+ blo _021E1220
+ ldrh r0, [r4, #2]
+ cmp r0, #1
+ bne _021E1206
+ add r0, r5, #0
+ bl MOD14_021E1268
+_021E1206:
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ ldrh r0, [r4, #2]
+ cmp r0, #4
+ blo _021E1216
+ mov r0, #0
+ strh r0, [r4, #2]
+_021E1216:
+ mov r0, #0
+ strh r0, [r4, #6]
+ strh r0, [r4, #4]
+ mov r0, #2
+ strh r0, [r4]
+_021E1220:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1224
+MOD14_021E1224: ; 0x021E1224
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r7, r1, #0
+ mov r4, #0
+_021E122E:
+ ldr r0, [r5, #0x3c]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [sp, #4]
+ sub r0, r0, r7
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x3c]
+ bl FUN_02020044
+ cmp r4, #0
+ bne _021E125A
+ ldr r0, [r5, #0x3c]
+ bl FUN_02020128
+_021E125A:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #2
+ blt _021E122E
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1268
+MOD14_021E1268: ; 0x021E1268
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_021E1270:
+ ldr r0, [r5, #0x3c]
+ add r1, r6, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #2
+ blt _021E1270
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1284
+MOD14_021E1284: ; 0x021E1284
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ mov r1, #0
+ ldr r4, [r0, #4]
+ add r4, #0x30
+ add r0, r4, #0
+ bl FUN_02019620
+ ldrh r2, [r5, #2]
+ ldr r1, [r5, #8]
+ add r0, r4, #0
+ mov r3, #0
+ bl MOD14_021E12B8
+ ldrh r0, [r5, #2]
+ add r2, r0, #1
+ cmp r2, #4
+ blo _021E12AC
+ mov r2, #0
+_021E12AC:
+ ldr r1, [r5, #8]
+ add r0, r4, #0
+ mov r3, #1
+ bl MOD14_021E12B8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E12B8
+MOD14_021E12B8: ; 0x021E12B8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ lsl r5, r3, #4
+ cmp r2, #3
+ bls _021E12C6
+ b _021E13E6
+_021E12C6:
+ add r1, r2, r2
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021E12D2: ; jump table
+ .short _021E12DA - _021E12D2 - 2 ; case 0
+ .short _021E12EC - _021E12D2 - 2 ; case 1
+ .short _021E12E0 - _021E12D2 - 2 ; case 2
+ .short _021E12E6 - _021E12D2 - 2 ; case 3
+_021E12DA:
+ ldr r1, [r4, #0x10]
+ ldr r2, [r1, #0x68]
+ b _021E13D2
+_021E12E0:
+ ldr r1, [r4, #0x10]
+ ldr r2, [r1, #0x6c]
+ b _021E13D2
+_021E12E6:
+ ldr r1, [r4, #0x10]
+ ldr r2, [r1, #0x70]
+ b _021E13D2
+_021E12EC:
+ bl FUN_0206E12C
+ ldr r0, [r4, #0x10]
+ add r0, #0x58
+ ldrb r0, [r0]
+ bl FUN_0206E0F0
+ bl FUN_0206E12C
+ add r6, r0, #0
+ ldr r0, [r4, #0x10]
+ add r0, #0x58
+ ldrb r0, [r0]
+ bl FUN_0206E0F0
+ mov r2, #0
+ add r1, r0, #0
+ mov r3, #0x2f
+ str r2, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsl r3, r3, #0xa
+ bl FUN_02006A34
+ ldr r0, [r4, #0x3c]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0x10
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ add r5, #0xb0
+ str r0, [r3]
+ lsl r0, r5, #0xc
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x3c]
+ add r1, r2, #0
+ bl FUN_02020044
+ ldr r0, [r4, #0x10]
+ add r0, #0x58
+ ldrb r0, [r0]
+ bl FUN_0206E114
+ add r1, r0, #0
+ ldr r0, [r4, #0x3c]
+ add r1, #0xa
+ bl FUN_02020248
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, [r4, #0x10]
+ add r0, r1, #0
+ add r0, #0x59
+ add r1, #0x58
+ ldrb r5, [r0]
+ ldrb r0, [r1]
+ cmp r0, r5
+ beq _021E13C6
+ bl FUN_0206E12C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_0206E0F0
+ mov r2, #0
+ add r1, r0, #0
+ mov r3, #0xbd
+ str r2, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsl r3, r3, #8
+ bl FUN_02006A34
+ mov r0, #9
+ ldr r1, [sp, #0x10]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0x10
+ bl FUN_02020044
+ ldr r0, [r4, #0x10]
+ add r0, #0x59
+ ldrb r0, [r0]
+ bl FUN_0206E114
+ add r1, r0, #0
+ ldr r0, [r4, #0x40]
+ add r1, #0xa
+ bl FUN_02020248
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_020200A0
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+_021E13C6:
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+_021E13D2:
+ str r5, [sp]
+ mov r1, #0xff
+ str r1, [sp, #4]
+ ldr r1, _021E13EC ; =0x00090600
+ str r1, [sp, #8]
+ mov r1, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+_021E13E6:
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021E13EC: .word 0x00090600
+
+ thumb_func_start MOD14_021E13F0
+MOD14_021E13F0: ; 0x021E13F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021E144E
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ add r0, #0x10
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ add r0, #0x20
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x30
+ bl FUN_02019620
+ ldr r0, [r4, #0x10]
+ bl MOD14_021DC408
+ cmp r0, #0
+ beq _021E1430
+ add r0, r4, #0
+ bl MOD14_021E153C
+_021E1430:
+ ldr r0, [r4, #4]
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x10
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x20
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x30
+ bl FUN_02019548
+_021E144E:
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E1450
+MOD14_021E1450: ; 0x021E1450
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021E14CC
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ add r0, #0x10
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ add r0, #0x20
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x30
+ bl FUN_02019620
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _021E148E
+ bl FUN_02007534
+ mov r0, #0
+ str r0, [r4, #0x24]
+_021E148E:
+ ldr r0, [r4, #0x10]
+ bl MOD14_021DC408
+ cmp r0, #0
+ beq _021E14A0
+ add r0, r4, #0
+ bl MOD14_021E153C
+ b _021E14A8
+_021E14A0:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021E16A0
+_021E14A8:
+ ldr r0, [r4, #4]
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x10
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x20
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x30
+ bl FUN_02019548
+ add r0, r4, #0
+ bl MOD14_021E1114
+_021E14CC:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E14D0
+MOD14_021E14D0: ; 0x021E14D0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021E153A
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ add r0, #0x10
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ add r0, #0x20
+ bl FUN_02019620
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x30
+ bl FUN_02019620
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _021E150E
+ bl FUN_02007534
+ mov r0, #0
+ str r0, [r4, #0x24]
+_021E150E:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021E16A0
+ ldr r0, [r4, #4]
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x10
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x20
+ bl FUN_02019548
+ ldr r0, [r4, #4]
+ add r0, #0x30
+ bl FUN_02019548
+ add r0, r4, #0
+ bl MOD14_021E1140
+_021E153A:
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E153C
+MOD14_021E153C: ; 0x021E153C
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ ldr r0, [r5, #0x10]
+ bl MOD14_021DC42C
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E1660 ; =0x0009060F
+ mov r3, #2
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #4]
+ ldr r2, [r4, #0x18]
+ bl FUN_0201BDE0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E1664 ; =0x0001020F
+ mov r3, #2
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #4]
+ ldr r2, [r4, #0x14]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E1664 ; =0x0001020F
+ mov r3, #2
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #4]
+ ldr r2, [r4, #0x14]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0
+ beq _021E15A2
+ cmp r0, #1
+ beq _021E15BE
+ b _021E15D8
+_021E15A2:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E1668 ; =0x0007080F
+ mov r3, #0x46
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #4]
+ ldr r2, [r5, #0x44]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ b _021E15D8
+_021E15BE:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E166C ; =0x0003040F
+ mov r3, #0x46
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #4]
+ ldr r2, [r5, #0x48]
+ add r0, #0x20
+ bl FUN_0201BDE0
+_021E15D8:
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ bne _021E1632
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E1670 ; =0x00090600
+ add r3, r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #4]
+ ldr r2, [r4, #0x1c]
+ add r0, #0x30
+ bl FUN_0201BDE0
+ ldrh r2, [r4, #8]
+ cmp r2, #0
+ beq _021E1616
+ mov r1, #2
+ str r1, [sp]
+ ldr r0, [r5, #4]
+ mov r3, #3
+ add r0, #0x10
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x18]
+ bl FUN_0200BA78
+_021E1616:
+ mov r1, #1
+ str r1, [sp]
+ ldr r0, [r5, #4]
+ mov r3, #3
+ add r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldrb r2, [r4, #0xa]
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200BA78
+_021E1632:
+ ldr r1, [r4]
+ add r0, sp, #0x10
+ mov r2, #2
+ bl FUN_02068B70
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x20]
+ add r1, sp, #0x10
+ mov r2, #0x2c
+ mov r3, #0x54
+ bl FUN_020073A0
+ str r0, [r5, #0x24]
+ ldrb r1, [r4, #0xb]
+ add r0, r5, #0
+ bl MOD14_021E16A0
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E1660: .word 0x0009060F
+_021E1664: .word 0x0001020F
+_021E1668: .word 0x0007080F
+_021E166C: .word 0x0003040F
+_021E1670: .word 0x00090600
+
+ thumb_func_start MOD14_021E1674
+MOD14_021E1674: ; 0x021E1674
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD14_021E1678
+MOD14_021E1678: ; 0x021E1678
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021E169C
+ ldr r0, [r4, #0x10]
+ bl MOD14_021DC408
+ cmp r0, #0
+ beq _021E169C
+ ldr r0, [r4, #0x10]
+ bl MOD14_021DC42C
+ add r1, r0, #0
+ ldrb r1, [r1, #0xb]
+ add r0, r4, #0
+ bl MOD14_021E16A0
+_021E169C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E16A0
+MOD14_021E16A0: ; 0x021E16A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp, #4]
+ add r4, r1, #0
+ ldr r0, [r0, #8]
+ mov r1, #2
+ bl FUN_0201886C
+ mov ip, r0
+ add r2, r0, #0
+ mov r0, #1
+ ldr r6, _021E1700 ; =0x000004C8
+ mov r1, #0
+ lsl r7, r0, #0xd
+_021E16BC:
+ add r3, r0, #0
+ lsl r3, r1
+ tst r3, r4
+ beq _021E16CE
+ add r3, r1, #0
+ add r3, #0x98
+ orr r3, r7
+ strh r3, [r2, r6]
+ b _021E16DC
+_021E16CE:
+ add r5, r1, #0
+ mov r3, #2
+ add r5, #0x84
+ lsl r3, r3, #0xc
+ orr r5, r3
+ ldr r3, _021E1700 ; =0x000004C8
+ strh r5, [r2, r3]
+_021E16DC:
+ add r1, r1, #1
+ add r2, r2, #2
+ cmp r1, #6
+ blt _021E16BC
+ mov r2, #0x99
+ lsl r2, r2, #2
+ ldr r0, [sp, #4]
+ str r2, [sp]
+ lsl r3, r2, #1
+ mov r2, ip
+ add r2, r2, r3
+ ldr r0, [r0, #8]
+ mov r1, #2
+ mov r3, #0xc
+ bl FUN_02017CE8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E1700: .word 0x000004C8
+
+ thumb_func_start MOD14_021E1704
+MOD14_021E1704: ; 0x021E1704
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021E1748
+ ldr r0, [r5, #0x10]
+ bl MOD14_021DC42C
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ mov r1, #0
+ add r0, #0x30
+ bl FUN_02019620
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ bne _021E1742
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E174C ; =0x00090600
+ add r3, r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #4]
+ ldr r2, [r4, #0x1c]
+ add r0, #0x30
+ bl FUN_0201BDE0
+_021E1742:
+ add r0, r5, #0
+ bl MOD14_021E1114
+_021E1748:
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E174C: .word 0x00090600
+
+ thumb_func_start MOD14_021E1750
+MOD14_021E1750: ; 0x021E1750
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ str r1, [r4, #0xc]
+ str r3, [r4]
+ str r2, [r4, #8]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x1a
+ str r0, [r4, #0x2c]
+ ldr r0, [sp, #0x1c]
+ mov r2, #0xe
+ str r0, [r4, #0x20]
+ ldr r0, [sp, #0x14]
+ mov r3, #0xa
+ str r0, [r4, #0x10]
+ mov r0, #0
+ bl FUN_0200A86C
+ str r0, [r4, #0x14]
+ mov r0, #0x40
+ mov r1, #0xa
+ bl FUN_020219F4
+ str r0, [r4, #0x30]
+ mov r0, #0x40
+ mov r1, #0xa
+ bl FUN_020219F4
+ str r0, [r4, #0x34]
+ mov r0, #0
+ strh r0, [r4, #0x1c]
+ strh r0, [r4, #0x1e]
+ str r0, [r4, #0x18]
+ mov r0, #0xa
+ add r3, r4, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x19
+ mov r2, #1
+ add r3, #0x28
+ bl FUN_02006BB0
+ str r0, [r4, #0x24]
+ cmp r0, #0
+ beq _021E17B6
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _021E17B6
+ ldr r0, [r4, #0x34]
+ cmp r0, #0
+ bne _021E17BC
+_021E17B6:
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, pc}
+_021E17BC:
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E17C4
+MOD14_021E17C4: ; 0x021E17C4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ cmp r0, #0
+ beq _021E1814
+ mov r6, #0
+ add r4, r6, #0
+_021E17D2:
+ ldr r0, [r5, #0x18]
+ add r0, r0, r4
+ bl FUN_02019178
+ add r6, r6, #1
+ add r4, #0x10
+ cmp r6, #2
+ blt _021E17D2
+ ldr r0, [r5, #0x24]
+ cmp r0, #0
+ beq _021E17EC
+ bl FUN_02016A18
+_021E17EC:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _021E17F6
+ bl FUN_0200A8B8
+_021E17F6:
+ ldr r0, [r5, #0x30]
+ cmp r0, #0
+ beq _021E1800
+ bl FUN_02021A20
+_021E1800:
+ ldr r0, [r5, #0x34]
+ cmp r0, #0
+ beq _021E180A
+ bl FUN_02021A20
+_021E180A:
+ ldr r0, [r5, #0x18]
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r5, #0x18]
+_021E1814:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1818
+MOD14_021E1818: ; 0x021E1818
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0
+ mov r0, #0xa
+ mov r1, #2
+ bl FUN_02018FF4
+ str r0, [r6, #0x18]
+ cmp r0, #0
+ beq _021E1848
+ mov r7, #0
+ ldr r4, _021E1894 ; =0x021E6614
+ add r5, r7, #0
+_021E1832:
+ ldr r1, [r6, #0x18]
+ ldr r0, [r6]
+ add r1, r1, r5
+ add r2, r4, #0
+ bl FUN_02019150
+ add r7, r7, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r7, #2
+ blt _021E1832
+_021E1848:
+ mov r0, #2
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r6]
+ mov r0, #0x26
+ mov r3, #1
+ bl FUN_0200687C
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0x26
+ mov r1, #0x18
+ mov r2, #0
+ mov r3, #0xe0
+ bl FUN_02006930
+ ldr r0, [r6, #0x20]
+ ldr r2, _021E1898 ; =0x00000209
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ ldr r0, [r6]
+ mov r1, #1
+ mov r3, #8
+ bl FUN_0200CD68
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E1894: .word 0x021E6614
+_021E1898: .word 0x00000209
+
+ thumb_func_start MOD14_021E189C
+MOD14_021E189C: ; 0x021E189C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r4, r1, #0
+ bl FUN_02019270
+ ldr r3, [r5, #0x18]
+ ldrb r0, [r3, #7]
+ str r0, [sp]
+ ldrb r0, [r3, #8]
+ str r0, [sp, #4]
+ ldrb r1, [r3, #4]
+ ldrb r2, [r3, #5]
+ ldrb r3, [r3, #6]
+ ldr r0, [r5]
+ bl MOD14_021E1908
+ ldr r0, [r5, #0x18]
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, [r5, #0x10]
+ ldr r2, [r5, #0x30]
+ add r1, r4, #0
+ bl FUN_0200A8E0
+ ldr r0, [r5, #0x2c]
+ ldr r1, [r5, #0x34]
+ ldr r2, [r5, #0x30]
+ bl FUN_0200B7B8
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r5, #0x18]
+ ldr r2, [r5, #0x34]
+ mov r1, #1
+ bl FUN_0201BD84
+ ldr r0, [r5, #0x18]
+ bl FUN_02019548
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_02017CD0
+ mov r0, #1
+ strh r0, [r5, #0x1c]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1908
+MOD14_021E1908: ; 0x021E1908
+ push {r3, r4, r5, r6, r7, lr}
+ lsl r1, r1, #0x18
+ add r7, r3, #0
+ lsr r1, r1, #0x18
+ add r6, r2, #0
+ ldr r4, [sp, #0x18]
+ ldr r5, [sp, #0x1c]
+ bl FUN_0201886C
+ sub r1, r7, #1
+ sub r2, r6, #2
+ lsl r1, r1, #5
+ add r1, r2, r1
+ lsl r3, r1, #1
+ ldr r2, _021E19AC ; =0x00008209
+ add r1, r0, r3
+ strh r2, [r0, r3]
+ add r0, r2, #1
+ mov r2, #0
+ strh r0, [r1, #2]
+ cmp r4, #0
+ bls _021E1942
+ ldr r0, _021E19B0 ; =0x0000820B
+ add r3, r1, #0
+_021E1938:
+ add r2, r2, #1
+ strh r0, [r3, #4]
+ add r3, r3, #2
+ cmp r2, r4
+ blo _021E1938
+_021E1942:
+ lsl r0, r4, #1
+ add r2, r1, r0
+ ldr r3, _021E19B4 ; =0x0000820C
+ mov ip, r0
+ strh r3, [r2, #4]
+ add r0, r3, #1
+ strh r0, [r2, #6]
+ add r0, r3, #2
+ strh r0, [r2, #8]
+ add r1, #0x40
+ mov r3, #0
+ cmp r5, #0
+ bls _021E197E
+ mov r0, ip
+ add r2, r0, r1
+ ldr r0, _021E19B8 ; =0x0000820F
+ add r7, r0, #1
+_021E1964:
+ strh r0, [r1]
+ strh r7, [r1, #2]
+ ldr r6, _021E19BC ; =0x00008212
+ add r3, r3, #1
+ strh r6, [r2, #4]
+ add r6, r6, #1
+ strh r6, [r2, #6]
+ ldr r6, _021E19C0 ; =0x00008214
+ add r1, #0x40
+ strh r6, [r2, #8]
+ add r2, #0x40
+ cmp r3, r5
+ blo _021E1964
+_021E197E:
+ ldr r0, _021E19C4 ; =0x00008215
+ mov r3, #0
+ strh r0, [r1]
+ add r0, r0, #1
+ strh r0, [r1, #2]
+ cmp r4, #0
+ bls _021E199A
+ ldr r0, _021E19C8 ; =0x00008217
+ add r2, r1, #0
+_021E1990:
+ add r3, r3, #1
+ strh r0, [r2, #4]
+ add r2, r2, #2
+ cmp r3, r4
+ blo _021E1990
+_021E199A:
+ mov r0, ip
+ ldr r2, _021E19CC ; =0x00008218
+ add r1, r1, r0
+ strh r2, [r1, #4]
+ add r0, r2, #1
+ strh r0, [r1, #6]
+ add r0, r2, #2
+ strh r0, [r1, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E19AC: .word 0x00008209
+_021E19B0: .word 0x0000820B
+_021E19B4: .word 0x0000820C
+_021E19B8: .word 0x0000820F
+_021E19BC: .word 0x00008212
+_021E19C0: .word 0x00008214
+_021E19C4: .word 0x00008215
+_021E19C8: .word 0x00008217
+_021E19CC: .word 0x00008218
+
+ thumb_func_start MOD14_021E19D0
+MOD14_021E19D0: ; 0x021E19D0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldrh r0, [r5, #0x1e]
+ str r1, [sp, #0x10]
+ cmp r0, #0
+ beq _021E19E8
+ ldr r1, [r5, #0x18]
+ ldr r0, [r5]
+ add r1, #0x10
+ bl MOD14_021E1CA0
+_021E19E8:
+ ldr r0, [r5, #0x18]
+ mov r1, #0xf
+ str r0, [sp, #0x14]
+ add r0, #0x10
+ str r0, [sp, #0x14]
+ bl FUN_02019620
+ ldr r0, [sp, #0x10]
+ mov r6, #0
+ add r0, #0x21
+ ldrb r1, [r0]
+ mov r0, #8
+ sub r0, r0, r1
+ lsl r7, r0, #4
+ cmp r1, #0
+ bls _021E1A5C
+ ldr r4, [sp, #0x10]
+_021E1A0A:
+ ldr r3, [r4]
+ cmp r3, #0x38
+ blt _021E1A26
+ cmp r3, #0x3d
+ bgt _021E1A26
+ ldr r2, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ add r2, #0x22
+ ldrb r2, [r2]
+ add r0, r5, #0
+ sub r3, #0x38
+ bl MOD14_021E1A8C
+ b _021E1A4C
+_021E1A26:
+ add r3, #0x18
+ ldr r0, [r5, #0x14]
+ ldr r2, [r5, #0x30]
+ add r1, r3, #0
+ bl FUN_0200A8E0
+ str r7, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E1A88 ; =0x000B0C0F
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ ldr r2, [r5, #0x30]
+ mov r3, #0xa
+ bl FUN_0201BDE0
+_021E1A4C:
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r0, #0x21
+ ldrb r0, [r0]
+ add r7, #0x10
+ add r4, r4, #4
+ cmp r6, r0
+ blo _021E1A0A
+_021E1A5C:
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD14_021E1B9C
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ add r1, #0x21
+ str r1, [sp, #0x10]
+ ldrb r1, [r1]
+ bl MOD14_021E1AD8
+ ldr r0, [sp, #0x14]
+ bl FUN_02019548
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_02017CD0
+ mov r0, #1
+ strh r0, [r5, #0x1e]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E1A88: .word 0x000B0C0F
+
+ thumb_func_start MOD14_021E1A8C
+MOD14_021E1A8C: ; 0x021E1A8C
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ mov r0, #1
+ lsl r0, r3
+ tst r0, r2
+ beq _021E1A9E
+ mov r4, #0
+ b _021E1AA0
+_021E1A9E:
+ mov r4, #8
+_021E1AA0:
+ mov r0, #0x30
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ mov r0, #0x2c
+ str r0, [sp, #8]
+ lsl r0, r3, #4
+ add r0, r0, #4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0xc]
+ mov r0, #8
+ str r0, [sp, #0x10]
+ lsl r2, r3, #0x13
+ str r0, [sp, #0x14]
+ mov r0, #0xff
+ str r0, [sp, #0x18]
+ add r0, r1, #0
+ ldr r1, [r5, #0x28]
+ lsl r3, r4, #0x10
+ ldr r1, [r1, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02019684
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1AD8
+MOD14_021E1AD8: ; 0x021E1AD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #8]
+ add r5, r1, #0
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0201886C
+ mov r2, #8
+ sub r2, r2, r5
+ mov ip, r2
+ add r0, #0xe6
+ lsl r2, r2, #7
+ add r2, r0, r2
+ ldr r1, _021E1B40 ; =0x00000251
+ mov r3, #0x18
+ mov r0, ip
+ mul r3, r0
+ add r4, r1, r3
+ mov r6, #0
+ lsl r7, r5, #1
+ beq _021E1B24
+ mov r0, #1
+ lsl r0, r0, #0xe
+_021E1B08:
+ mov r3, #0
+ add r5, r2, #0
+_021E1B0C:
+ add r1, r4, #0
+ orr r1, r0
+ strh r1, [r5]
+ add r3, r3, #1
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r3, #0xc
+ blo _021E1B0C
+ add r6, r6, #1
+ add r2, #0x40
+ cmp r6, r7
+ blo _021E1B08
+_021E1B24:
+ mov r0, #0xc
+ str r0, [sp]
+ mov r3, ip
+ lsl r3, r3, #1
+ ldr r0, [sp, #8]
+ str r7, [sp, #4]
+ ldr r0, [r0]
+ mov r1, #1
+ mov r2, #0x13
+ add r3, r3, #3
+ bl MOD14_021E1C10
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E1B40: .word 0x00000251
+
+ thumb_func_start MOD14_021E1B44
+MOD14_021E1B44: ; 0x021E1B44
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _021E1B5A
+ ldr r0, [r4]
+ ldr r1, [r4, #0x18]
+ bl MOD14_021E1CEC
+ mov r0, #0
+ strh r0, [r4, #0x1c]
+_021E1B5A:
+ ldrh r0, [r4, #0x1e]
+ cmp r0, #0
+ beq _021E1B6E
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4]
+ add r1, #0x10
+ bl MOD14_021E1CA0
+ mov r0, #0
+ strh r0, [r4, #0x1e]
+_021E1B6E:
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_02017CD0
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E1B78
+MOD14_021E1B78: ; 0x021E1B78
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #0x1e]
+ cmp r0, #0
+ beq _021E1B90
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4]
+ add r1, #0x10
+ bl MOD14_021E1CA0
+ mov r0, #0
+ strh r0, [r4, #0x1e]
+_021E1B90:
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_02017CD0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1B9C
+MOD14_021E1B9C: ; 0x021E1B9C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r1, #0
+ ldr r4, [r0, #0x18]
+ add r0, r6, #0
+ add r0, #0x21
+ ldrb r1, [r0]
+ mov r0, #8
+ add r4, #0x10
+ sub r0, r0, r1
+ lsl r5, r0, #4
+ mov r0, #0xa
+ str r0, [sp]
+ lsl r0, r1, #0x14
+ lsr r0, r0, #0x10
+ lsl r3, r5, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0xf
+ mov r2, #0
+ lsr r3, r3, #0x10
+ bl FUN_020196F4
+ add r6, #0x20
+ ldrb r2, [r6]
+ add r0, r4, #0
+ mov r1, #0
+ lsl r2, r2, #4
+ add r2, r5, r2
+ bl FUN_02002218
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E1BE4
+MOD14_021E1BE4: ; 0x021E1BE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r4, [r6, #0x18]
+ add r7, r1, #0
+ add r4, #0x10
+ mov r5, #0
+_021E1BF0:
+ add r2, r7, #0
+ add r2, #0x22
+ ldrb r2, [r2]
+ add r0, r6, #0
+ add r1, r4, #0
+ add r3, r5, #0
+ bl MOD14_021E1A8C
+ add r5, r5, #1
+ cmp r5, #6
+ blt _021E1BF0
+ add r0, r4, #0
+ bl FUN_02019548
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E1C10
+MOD14_021E1C10: ; 0x021E1C10
+ push {r3, r4, r5, r6, r7, lr}
+ lsl r1, r1, #0x18
+ add r7, r3, #0
+ lsr r1, r1, #0x18
+ add r6, r2, #0
+ ldr r5, [sp, #0x18]
+ ldr r4, [sp, #0x1c]
+ bl FUN_0201886C
+ sub r1, r7, #1
+ sub r2, r6, #1
+ lsl r1, r1, #5
+ add r1, r2, r1
+ mov r2, #0x72
+ lsl r3, r1, #1
+ lsl r2, r2, #8
+ strh r2, [r0, r3]
+ add r1, r0, r3
+ mov r2, #0
+ cmp r5, #0
+ bls _021E1C48
+ ldr r0, _021E1C8C ; =0x00007201
+ add r3, r1, #0
+_021E1C3E:
+ add r2, r2, #1
+ strh r0, [r3, #2]
+ add r3, r3, #2
+ cmp r2, r5
+ blo _021E1C3E
+_021E1C48:
+ lsl r0, r5, #1
+ add r2, r1, r0
+ ldr r3, _021E1C90 ; =0x00007202
+ add r1, #0x40
+ mov r7, #0
+ strh r3, [r2, #2]
+ cmp r4, #0
+ bls _021E1C6C
+ ldr r2, _021E1C94 ; =0x00007205
+ add r6, r0, r1
+ add r3, r3, #1
+_021E1C5E:
+ strh r3, [r1]
+ strh r2, [r6, #2]
+ add r7, r7, #1
+ add r6, #0x40
+ add r1, #0x40
+ cmp r7, r4
+ blo _021E1C5E
+_021E1C6C:
+ ldr r2, _021E1C98 ; =0x00007206
+ mov r4, #0
+ strh r2, [r1]
+ cmp r5, #0
+ bls _021E1C84
+ add r3, r1, #0
+ add r2, r2, #1
+_021E1C7A:
+ add r4, r4, #1
+ strh r2, [r3, #2]
+ add r3, r3, #2
+ cmp r4, r5
+ blo _021E1C7A
+_021E1C84:
+ ldr r2, _021E1C9C ; =0x00007208
+ add r0, r1, r0
+ strh r2, [r0, #2]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E1C8C: .word 0x00007201
+_021E1C90: .word 0x00007202
+_021E1C94: .word 0x00007205
+_021E1C98: .word 0x00007206
+_021E1C9C: .word 0x00007208
+
+ thumb_func_start MOD14_021E1CA0
+MOD14_021E1CA0: ; 0x021E1CA0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #4]
+ bl FUN_0201886C
+ ldrb r1, [r4, #5]
+ mov r5, #0
+ sub r2, r1, #1
+ ldrb r1, [r4, #6]
+ sub r1, r1, #1
+ lsl r1, r1, #5
+ add r1, r2, r1
+ lsl r1, r1, #1
+ add r2, r0, r1
+ ldrb r0, [r4, #8]
+ add r0, r0, #2
+ beq _021E1CEA
+ add r0, r5, #0
+ add r1, r5, #0
+_021E1CC6:
+ ldrb r6, [r4, #7]
+ add r3, r1, #0
+ add r6, r6, #2
+ beq _021E1CDE
+ add r6, r2, #0
+_021E1CD0:
+ strh r0, [r6]
+ ldrb r7, [r4, #7]
+ add r3, r3, #1
+ add r6, r6, #2
+ add r7, r7, #2
+ cmp r3, r7
+ blo _021E1CD0
+_021E1CDE:
+ ldrb r3, [r4, #8]
+ add r5, r5, #1
+ add r2, #0x40
+ add r3, r3, #2
+ cmp r5, r3
+ blo _021E1CC6
+_021E1CEA:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E1CEC
+MOD14_021E1CEC: ; 0x021E1CEC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #4]
+ bl FUN_0201886C
+ ldrb r1, [r4, #5]
+ mov r5, #0
+ sub r2, r1, #2
+ ldrb r1, [r4, #6]
+ sub r1, r1, #1
+ lsl r1, r1, #5
+ add r1, r2, r1
+ lsl r1, r1, #1
+ add r2, r0, r1
+ ldrb r0, [r4, #8]
+ add r0, r0, #2
+ beq _021E1D36
+ add r0, r5, #0
+ add r1, r5, #0
+_021E1D12:
+ ldrb r6, [r4, #7]
+ add r3, r1, #0
+ add r6, r6, #5
+ beq _021E1D2A
+ add r6, r2, #0
+_021E1D1C:
+ strh r0, [r6]
+ ldrb r7, [r4, #7]
+ add r3, r3, #1
+ add r6, r6, #2
+ add r7, r7, #5
+ cmp r3, r7
+ blo _021E1D1C
+_021E1D2A:
+ ldrb r3, [r4, #8]
+ add r5, r5, #1
+ add r2, #0x40
+ add r3, r3, #2
+ cmp r5, r3
+ blo _021E1D12
+_021E1D36:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E1D38
+MOD14_021E1D38: ; 0x021E1D38
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ str r1, [r5]
+ str r3, [r5, #4]
+ str r2, [r5, #0xc]
+ ldr r0, [sp, #0x30]
+ mov r4, #1
+ str r0, [r5, #8]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r2, r3, #0
+ str r4, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ mov r0, #0x12
+ mov r1, #4
+ add r3, r4, #0
+ bl FUN_0200687C
+ mov r0, #0x12
+ mov r1, #0x1b
+ add r2, sp, #0x14
+ mov r3, #0xa
+ bl FUN_02006C08
+ add r4, r0, #0
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ ldr r0, [r0, #0xc]
+ add r1, #0xe4
+ mov r2, #0x40
+ bl MIi_CpuCopy16
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #0x12
+ mov r1, #0x14
+ add r2, sp, #0x14
+ mov r3, #0xa
+ bl FUN_02006C08
+ add r4, r0, #0
+ ldr r0, [sp, #0x14]
+ mov r1, #0x49
+ lsl r1, r1, #2
+ ldr r0, [r0, #0xc]
+ add r1, r5, r1
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #0x2a
+ mov r4, #1
+ str r0, [sp, #0x10]
+ add r0, #0xe4
+ lsl r1, r1, #4
+ lsl r4, r4, #0x10
+ mov r7, #7
+ str r0, [sp, #0x10]
+ add r6, r0, r1
+_021E1DBC:
+ asr r0, r4, #0xc
+ str r0, [sp]
+ ldr r0, [sp, #0x10]
+ ldr r3, _021E1ED8 ; =0x00007FFF
+ add r1, r6, #0
+ mov r2, #0x30
+ bl MOD14_021DDE40
+ ldr r0, _021E1EDC ; =0x00002492
+ sub r7, r7, #1
+ sub r4, r4, r0
+ sub r6, #0x60
+ cmp r7, #1
+ bge _021E1DBC
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0xe4
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ mov r0, #0xe1
+ lsl r0, r0, #2
+ mov r1, #0x1a
+ add r0, r5, r0
+ lsl r1, r1, #4
+ mov r2, #0x60
+ bl GX_LoadOBJPltt
+ add r0, r5, #0
+ mov r1, #0x1a
+ add r0, #0xe4
+ lsl r1, r1, #4
+ mov r2, #0x60
+ bl GXS_LoadOBJPltt
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x11
+ mov r2, #1
+ add r3, #0x18
+ bl FUN_02006BB0
+ str r0, [r5, #0x14]
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0x12
+ add r3, r5, #0
+ add r1, r0, #0
+ mov r2, #1
+ add r3, #0x20
+ bl FUN_02006C30
+ str r0, [r5, #0x1c]
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #2
+ mov r2, #1
+ add r3, #0x38
+ bl FUN_02006BDC
+ str r0, [r5, #0x34]
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #3
+ mov r2, #1
+ add r3, #0x30
+ bl FUN_02006BDC
+ str r0, [r5, #0x2c]
+ mov r0, #2
+ mov r1, #0xd
+ mov r2, #4
+ mov r3, #0xa
+ bl FUN_0200B870
+ str r0, [r5, #0x44]
+ mov r0, #0x7d
+ lsl r0, r0, #2
+ mov r1, #0xa
+ bl FUN_020219F4
+ ldr r1, _021E1EE0 ; =0x00004BFC
+ ldr r2, _021E1EE4 ; =0x00000157
+ str r0, [r5, r1]
+ mov r0, #0
+ str r0, [r5, #0x10]
+ ldr r0, [r5, #0x18]
+ mov r1, #0x20
+ ldr r0, [r0, #0x14]
+ mov r3, #0xa
+ str r0, [r5, #0x3c]
+ add r0, r5, #0
+ add r0, #0x40
+ strh r1, [r0]
+ add r0, r5, #0
+ add r0, #0x42
+ strh r1, [r0]
+ mov r0, #1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ ldr r1, _021E1EE8 ; =0x00004BF8
+ add r2, r5, #0
+ str r0, [r5, r1]
+ mov r1, #0
+ add r0, r1, #0
+_021E1E9C:
+ add r1, r1, #1
+ str r0, [r2, #0x48]
+ add r2, r2, #4
+ cmp r1, #0x12
+ blt _021E1E9C
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _021E1ECC
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _021E1ECC
+ ldr r0, [r5, #0x2c]
+ cmp r0, #0
+ beq _021E1ECC
+ ldr r0, [r5, #0x34]
+ cmp r0, #0
+ beq _021E1ECC
+ ldr r0, [r5, #0x44]
+ cmp r0, #0
+ beq _021E1ECC
+ ldr r0, _021E1EE0 ; =0x00004BFC
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _021E1ED2
+_021E1ECC:
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021E1ED2:
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E1ED8: .word 0x00007FFF
+_021E1EDC: .word 0x00002492
+_021E1EE0: .word 0x00004BFC
+_021E1EE4: .word 0x00000157
+_021E1EE8: .word 0x00004BF8
+
+ thumb_func_start MOD14_021E1EEC
+MOD14_021E1EEC: ; 0x021E1EEC
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r0, #0xa
+ mov r1, #3
+ bl FUN_02018FF4
+ str r0, [r7, #0x10]
+ cmp r0, #0
+ beq _021E1F1A
+ mov r6, #0
+ ldr r4, _021E1F1C ; =0x021E662C
+ add r5, r6, #0
+_021E1F04:
+ ldr r1, [r7, #0x10]
+ ldr r0, [r7, #4]
+ add r1, r1, r5
+ add r2, r4, #0
+ bl FUN_02019150
+ add r6, r6, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r6, #3
+ blo _021E1F04
+_021E1F1A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E1F1C: .word 0x021E662C
+
+ thumb_func_start MOD14_021E1F20
+MOD14_021E1F20: ; 0x021E1F20
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _021E1F90 ; =0x00004BF8
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021E1F30
+ bl FUN_0200A8B8
+_021E1F30:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _021E1F3A
+ bl FUN_02016A18
+_021E1F3A:
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _021E1F44
+ bl FUN_02016A18
+_021E1F44:
+ ldr r0, [r5, #0x2c]
+ cmp r0, #0
+ beq _021E1F4E
+ bl FUN_02016A18
+_021E1F4E:
+ ldr r0, [r5, #0x34]
+ cmp r0, #0
+ beq _021E1F58
+ bl FUN_02016A18
+_021E1F58:
+ ldr r0, [r5, #0x44]
+ cmp r0, #0
+ beq _021E1F62
+ bl FUN_0200B990
+_021E1F62:
+ ldr r0, _021E1F94 ; =0x00004BFC
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021E1F6E
+ bl FUN_02021A20
+_021E1F6E:
+ ldr r0, [r5, #0x10]
+ cmp r0, #0
+ beq _021E1F8E
+ mov r6, #0
+ add r4, r6, #0
+_021E1F78:
+ ldr r0, [r5, #0x10]
+ add r0, r0, r4
+ bl FUN_02019178
+ add r6, r6, #1
+ add r4, #0x10
+ cmp r6, #3
+ blt _021E1F78
+ ldr r0, [r5, #0x10]
+ bl FUN_02016A18
+_021E1F8E:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021E1F90: .word 0x00004BF8
+_021E1F94: .word 0x00004BFC
+
+ thumb_func_start MOD14_021E1F98
+MOD14_021E1F98: ; 0x021E1F98
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD14_021DC464
+ add r1, r4, #0
+ add r1, #0xe0
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD14_021E223C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021E247C
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E1FB8
+MOD14_021E1FB8: ; 0x021E1FB8
+ ldr r3, _021E1FBC ; =MOD14_021E24D8
+ bx r3
+ .align 2, 0
+_021E1FBC: .word MOD14_021E24D8
+
+ thumb_func_start MOD14_021E1FC0
+MOD14_021E1FC0: ; 0x021E1FC0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD14_021DC464
+ add r1, r4, #0
+ add r1, #0xe0
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD14_021E2360
+ add r0, r4, #0
+ bl MOD14_021E2394
+ add r0, r4, #0
+ bl MOD14_021E240C
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E1FE4
+MOD14_021E1FE4: ; 0x021E1FE4
+ ldr r3, _021E1FEC ; =MOD14_021E247C
+ mov r1, #1
+ bx r3
+ nop
+_021E1FEC: .word MOD14_021E247C
+
+ thumb_func_start MOD14_021E1FF0
+MOD14_021E1FF0: ; 0x021E1FF0
+ ldr r3, _021E1FF4 ; =MOD14_021E24D8
+ bx r3
+ .align 2, 0
+_021E1FF4: .word MOD14_021E24D8
+
+ thumb_func_start MOD14_021E1FF8
+MOD14_021E1FF8: ; 0x021E1FF8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ str r0, [sp, #8]
+ ldr r0, [r0, #0xc]
+ str r1, [sp, #0xc]
+ str r2, [sp, #0x10]
+ str r3, [sp, #0x14]
+ bl MOD14_021DC44C
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #0x28]
+ bl FUN_0206B43C
+ add r0, #0xd0
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0xc
+ str r0, [sp]
+ ldr r0, [sp, #8]
+ str r1, [sp, #4]
+ add r0, #0x3c
+ mov r1, #9
+ mov r2, #0xa
+ mov r3, #0xe
+ bl FUN_02018F4C
+ mov r4, #0
+ mov r0, #0xc
+ str r4, [sp, #0x20]
+ str r0, [sp, #0x18]
+_021E2034:
+ mov r0, #0
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #8]
+ mov r6, #0xa
+ str r0, [sp, #0x2c]
+ add r0, #0x3c
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x18]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x30]
+_021E204A:
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0xc]
+ add r2, r4, #0
+ bl FUN_0206B5E4
+ add r4, r4, #1
+ add r5, r0, #0
+ bl FUN_02066A6C
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ add r7, r0, #0
+ beq _021E20C8
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ bne _021E209A
+ add r0, r5, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020672BC
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ add r0, r7, #0
+ mov r2, #0x1b
+ bl FUN_02068654
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ b _021E20AA
+_021E209A:
+ ldr r0, _021E2174 ; =0x000001EA
+ cmp r7, r0
+ beq _021E20A4
+ mov r0, #8
+ b _021E20A6
+_021E20A4:
+ mov r0, #1
+_021E20A6:
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+_021E20AA:
+ ldr r0, _021E2178 ; =0x021E6644
+ ldr r2, [sp, #0x30]
+ ldrb r0, [r0, r1]
+ mov r3, #2
+ add r0, #0xe0
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #2
+ str r0, [sp]
+ str r1, [sp, #4]
+ lsl r1, r6, #0x10
+ ldr r0, [sp, #0x2c]
+ lsr r1, r1, #0x10
+ bl FUN_02018F4C
+_021E20C8:
+ ldr r1, [sp, #0x1c]
+ add r0, r5, #0
+ bl FUN_02066A94
+ ldr r0, [sp, #0x24]
+ add r6, r6, #2
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #6
+ blo _021E204A
+ ldr r0, [sp, #0x18]
+ add r0, r0, #2
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x20]
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ cmp r0, #5
+ blo _021E2034
+ ldr r0, [sp, #0x48]
+ cmp r0, #0
+ beq _021E2132
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ beq _021E20FE
+ cmp r0, #2
+ beq _021E2110
+ b _021E211E
+_021E20FE:
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r1, [r0]
+ ldr r0, _021E217C ; =0x00300010
+ and r1, r0
+ ldr r0, [sp, #8]
+ ldr r0, [r0, #0x18]
+ str r1, [r0, #8]
+ b _021E211E
+_021E2110:
+ ldr r0, _021E2180 ; =0x04001000
+ ldr r1, [r0]
+ ldr r0, _021E217C ; =0x00300010
+ and r1, r0
+ ldr r0, [sp, #8]
+ ldr r0, [r0, #0x18]
+ str r1, [r0, #8]
+_021E211E:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0x10]
+ ldr r0, [r0, #0x18]
+ ldr r2, [sp, #0x14]
+ ldr r3, [sp, #0x48]
+ lsl r1, r1, #5
+ bl FUN_020B1768
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+_021E2132:
+ ldr r0, [sp, #8]
+ ldr r1, [r0, #0x18]
+ ldr r0, [r1, #0x14]
+ ldr r1, [r1, #0x10]
+ bl DC_FlushRange
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ beq _021E214C
+ cmp r0, #2
+ beq _021E2160
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+_021E214C:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0x10]
+ ldr r2, [r0, #0x18]
+ lsl r1, r1, #5
+ ldr r0, [r2, #0x14]
+ ldr r2, [r2, #0x10]
+ bl GX_LoadOBJ
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+_021E2160:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0x10]
+ ldr r2, [r0, #0x18]
+ lsl r1, r1, #5
+ ldr r0, [r2, #0x14]
+ ldr r2, [r2, #0x10]
+ bl GXS_LoadOBJ
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E2174: .word 0x000001EA
+_021E2178: .word 0x021E6644
+_021E217C: .word 0x00300010
+_021E2180: .word 0x04001000
+
+ thumb_func_start MOD14_021E2184
+MOD14_021E2184: ; 0x021E2184
+ ldr r0, [r0, #0x20]
+ bx lr
+
+ thumb_func_start MOD14_021E2188
+MOD14_021E2188: ; 0x021E2188
+ add r0, #0xe0
+ ldr r0, [r0]
+ sub r0, r0, #3
+ bpl _021E2192
+ add r0, #0x12
+_021E2192:
+ bx lr
+
+ thumb_func_start MOD14_021E2194
+MOD14_021E2194: ; 0x021E2194
+ push {r3, r4}
+ mov r4, #0
+ ldr r1, _021E21AC ; =0x00004BE4
+ add r3, r4, #0
+_021E219C:
+ add r2, r0, r4
+ add r4, r4, #1
+ strb r3, [r2, r1]
+ cmp r4, #0x12
+ blt _021E219C
+ pop {r3, r4}
+ bx lr
+ nop
+_021E21AC: .word 0x00004BE4
+
+ thumb_func_start MOD14_021E21B0
+MOD14_021E21B0: ; 0x021E21B0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ mov r2, #0xf9
+ add r4, r1, #0
+ lsl r2, r2, #2
+ add r3, r5, r2
+ lsl r1, r4, #0xa
+ ldr r0, [r0, #0x14]
+ add r1, r3, r1
+ add r2, #0x1c
+ bl MIi_CpuCopy32
+ mov r1, #0xf9
+ lsl r1, r1, #2
+ add r0, r5, r1
+ add r1, #0x1c
+ bl DC_FlushRange
+ ldr r0, _021E21E0 ; =0x00004BE4
+ mov r2, #1
+ add r1, r5, r4
+ strb r2, [r1, r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E21E0: .word 0x00004BE4
+
+ thumb_func_start MOD14_021E21E4
+MOD14_021E21E4: ; 0x021E21E4
+ push {r4, r5, r6, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ mov r0, #0x63
+ lsl r1, r1, #5
+ lsl r0, r0, #4
+ add r6, r1, r0
+ add r4, r2, #0
+ ldr r0, _021E2238 ; =0x00004BE4
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _021E2214
+ mov r2, #0xf9
+ lsl r2, r2, #2
+ add r1, r5, r2
+ lsl r0, r4, #0xa
+ add r0, r1, r0
+ lsl r1, r6, #5
+ add r2, #0x1c
+ bl GX_LoadOBJ
+ add sp, #0x28
+ pop {r4, r5, r6, pc}
+_021E2214:
+ add r0, sp, #4
+ bl FUN_020B1A24
+ add r0, sp, #4
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ mov r3, #1
+ bl MOD14_021E1FF8
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E21B0
+ add sp, #0x28
+ pop {r4, r5, r6, pc}
+ nop
+_021E2238: .word 0x00004BE4
+
+ thumb_func_start MOD14_021E223C
+MOD14_021E223C: ; 0x021E223C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x64
+ add r6, r0, #0
+ bl MOD14_021E2194
+ ldr r0, [r6]
+ bl MOD14_021DDD50
+ add r4, r0, #0
+ ldr r0, [r6]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r3, [r6, #0x20]
+ add r0, sp, #0x40
+ bl MOD14_021DDDB4
+ add r0, r6, #0
+ bl MOD14_021E2188
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x63
+ lsl r0, r0, #4
+ str r0, [sp, #8]
+ add r4, r6, #0
+ mov r5, #0x20
+_021E227C:
+ add r0, sp, #0x1c
+ bl FUN_020B1A24
+ add r0, sp, #0x1c
+ str r0, [sp]
+ ldr r2, [sp, #8]
+ add r0, r6, #0
+ add r1, r7, #0
+ mov r3, #1
+ bl MOD14_021E1FF8
+ add r0, sp, #0x1c
+ str r0, [sp, #0x40]
+ mov r0, #0xb
+ str r0, [sp]
+ mov r0, #1
+ mov r2, #2
+ str r0, [sp, #4]
+ lsl r2, r2, #8
+ ldr r0, [r6, #8]
+ add r1, sp, #0x40
+ lsr r3, r2, #1
+ bl MOD14_021DDDD4
+ str r0, [r4, #0x48]
+ cmp r0, #0
+ bne _021E22B6
+ bl ErrorHandling
+_021E22B6:
+ ldr r0, [r4, #0x48]
+ mov r1, #0
+ bl FUN_020200A0
+ cmp r5, #0
+ ble _021E22D4
+ lsl r0, r5, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021E22E2
+_021E22D4:
+ lsl r0, r5, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021E22E2:
+ bl _ffix
+ str r0, [sp, #0x10]
+ mov r0, #0x16
+ lsl r0, r0, #0xe
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x48]
+ add r1, sp, #0x10
+ bl FUN_02020044
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD14_021E21B0
+ add r7, r7, #1
+ cmp r7, #0x12
+ blt _021E230A
+ mov r7, #0
+_021E230A:
+ ldr r0, [sp, #8]
+ add r4, r4, #4
+ add r0, #0x20
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ add r5, #0x20
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ cmp r0, #7
+ blt _021E227C
+ mov r4, #0
+ add r5, r6, #0
+_021E2322:
+ ldr r0, [r6, #0xc]
+ bl MOD14_021DC44C
+ add r1, r4, #0
+ bl FUN_0206B4E4
+ add r1, r5, #0
+ add r1, #0x94
+ add r4, r4, #1
+ add r5, r5, #4
+ str r0, [r1]
+ cmp r4, #0x12
+ blt _021E2322
+ add sp, #0x64
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E2340
+MOD14_021E2340: ; 0x021E2340
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_021E2348:
+ ldr r0, [r5, #0x48]
+ cmp r0, #0
+ beq _021E2354
+ bl FUN_0201FFC8
+ str r6, [r5, #0x48]
+_021E2354:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #7
+ blt _021E2348
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2360
+MOD14_021E2360: ; 0x021E2360
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ bl MOD14_021E2188
+ add r4, r0, #0
+ mov r6, #0
+ add r5, r7, #0
+_021E236E:
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD14_021E21E4
+ ldr r0, [r5, #0x48]
+ mov r1, #1
+ bl FUN_020200A0
+ add r4, r4, #1
+ cmp r4, #0x12
+ blt _021E2388
+ mov r4, #0
+_021E2388:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #7
+ blt _021E236E
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2394
+MOD14_021E2394: ; 0x021E2394
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD14_021DC44C
+ add r1, r5, #0
+ ldr r2, _021E23F0 ; =0x00004BFC
+ add r1, #0xe0
+ ldr r1, [r1]
+ ldr r2, [r5, r2]
+ ldr r4, [r5, #0x10]
+ bl FUN_0206B484
+ ldr r1, _021E23F0 ; =0x00004BFC
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #7
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E23F4 ; =0x00020807
+ ldr r2, _021E23F0 ; =0x00004BFC
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, r2]
+ lsr r5, r6, #1
+ mov r3, #0x30
+ add r0, r4, #0
+ sub r3, r3, r5
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_021E23F0: .word 0x00004BFC
+_021E23F4: .word 0x00020807
+
+ thumb_func_start MOD14_021E23F8
+MOD14_021E23F8: ; 0x021E23F8
+ push {r4, lr}
+ ldr r4, [r0, #0x10]
+ mov r1, #7
+ add r0, r4, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ bl FUN_02019548
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E240C
+MOD14_021E240C: ; 0x021E240C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0
+ ldr r0, [r7, #0x10]
+ mov r1, #4
+ str r0, [sp, #0xc]
+ add r0, #0x10
+ str r0, [sp, #0xc]
+ bl FUN_02019620
+ add r0, r7, #0
+ bl MOD14_021E2188
+ mov r6, #0
+ add r4, r0, #0
+ add r5, r6, #0
+_021E242C:
+ ldr r0, [sp, #0xc]
+ lsl r1, r4, #2
+ str r0, [sp]
+ add r1, r7, r1
+ str r5, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r1, #0x94
+ mov r2, #2
+ ldr r0, [r7, #0x44]
+ ldr r1, [r1]
+ add r3, r2, #0
+ bl FUN_0200B9EC
+ add r4, r4, #1
+ cmp r4, #0x12
+ blt _021E2450
+ mov r4, #0
+_021E2450:
+ add r6, r6, #1
+ add r5, #0x20
+ cmp r6, #7
+ blt _021E242C
+ ldr r0, [sp, #0xc]
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2464
+MOD14_021E2464: ; 0x021E2464
+ push {r4, lr}
+ ldr r4, [r0, #0x10]
+ mov r1, #4
+ add r4, #0x10
+ add r0, r4, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ bl FUN_02019548
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E247C
+MOD14_021E247C: ; 0x021E247C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0xa
+ mov r1, #0xc
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021E24B6
+ ldr r0, _021E24B8 ; =0x021E6624
+ lsl r1, r6, #2
+ ldr r0, [r0, r1]
+ str r5, [r4]
+ mov r2, #0
+ strb r2, [r4, #4]
+ add r1, r4, #0
+ strb r2, [r4, #5]
+ bl FUN_0200CA44
+ add r1, r5, #0
+ add r1, #0xdc
+ add r5, #0xdc
+ str r0, [r1]
+ ldr r0, [r5]
+ cmp r0, #0
+ bne _021E24B6
+ add r0, r4, #0
+ bl FUN_02016A18
+_021E24B6:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021E24B8: .word 0x021E6624
+
+ thumb_func_start MOD14_021E24BC
+MOD14_021E24BC: ; 0x021E24BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r1]
+ mov r2, #0
+ add r0, #0xdc
+ str r2, [r0]
+ add r0, r1, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E24D8
+MOD14_021E24D8: ; 0x021E24D8
+ add r0, #0xdc
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021E24E4
+ mov r0, #1
+ bx lr
+_021E24E4:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD14_021E24E8
+MOD14_021E24E8: ; 0x021E24E8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ ldrb r2, [r4, #4]
+ ldr r5, [r4]
+ cmp r2, #3
+ bls _021E24F8
+ b _021E260E
+_021E24F8:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021E2504: ; jump table
+ .short _021E250C - _021E2504 - 2 ; case 0
+ .short _021E2592 - _021E2504 - 2 ; case 1
+ .short _021E25B8 - _021E2504 - 2 ; case 2
+ .short _021E260A - _021E2504 - 2 ; case 3
+_021E250C:
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ ldrb r0, [r4, #5]
+ lsl r1, r0, #1
+ cmp r1, #0xa
+ bge _021E2562
+ mov r1, #0xa
+ sub r1, r1, r0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ mov r1, #0x20
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, [r5, #0x30]
+ ldr r0, [r5, #4]
+ mov r1, #1
+ add r2, #0xc
+ mov r3, #0
+ bl FUN_02018148
+ ldrb r6, [r4, #5]
+ mov r0, #0x20
+ mov r3, #0xa
+ str r0, [sp]
+ str r6, [sp, #4]
+ ldr r1, [r5, #0x30]
+ mov r2, #0
+ add r1, #0xc
+ str r1, [sp, #8]
+ sub r1, r3, r6
+ lsl r1, r1, #0x18
+ str r2, [sp, #0xc]
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r3, [sp, #0x18]
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_02018170
+ b _021E2582
+_021E2562:
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ ldr r2, [r5, #0x30]
+ ldr r0, [r5, #4]
+ mov r1, #1
+ add r2, #0xc
+ mov r3, #0
+ bl FUN_02018148
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+_021E2582:
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_02017CD0
+ mov r0, #7
+ add sp, #0x1c
+ strb r0, [r4, #5]
+ pop {r3, r4, r5, r6, pc}
+_021E2592:
+ ldrb r0, [r4, #5]
+ add r3, r5, #0
+ mov r2, #0x60
+ add r1, r0, #0
+ add r3, #0xe4
+ mul r1, r2
+ add r0, r3, r1
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ bl GX_LoadOBJPltt
+ add r0, r5, #0
+ bl MOD14_021E2360
+ ldrb r0, [r4, #4]
+ add sp, #0x1c
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ pop {r3, r4, r5, r6, pc}
+_021E25B8:
+ ldrb r0, [r4, #5]
+ cmp r0, #0
+ beq _021E25C2
+ sub r0, r0, #1
+ strb r0, [r4, #5]
+_021E25C2:
+ ldrb r0, [r4, #5]
+ add r3, r5, #0
+ mov r2, #0x60
+ add r1, r0, #0
+ add r3, #0xe4
+ mul r1, r2
+ add r0, r3, r1
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ bl GX_LoadOBJPltt
+ ldrb r0, [r4, #5]
+ cmp r0, #0
+ bne _021E260E
+ ldr r0, [r5, #0x10]
+ bl FUN_02019270
+ ldr r0, [r5, #0x10]
+ add r0, #0x10
+ bl FUN_02019270
+ add r0, r5, #0
+ bl MOD14_021E2394
+ add r0, r5, #0
+ bl MOD14_021E240C
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_02017CD0
+ ldrb r0, [r4, #4]
+ add sp, #0x1c
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ pop {r3, r4, r5, r6, pc}
+_021E260A:
+ bl MOD14_021E24BC
+_021E260E:
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2614
+MOD14_021E2614: ; 0x021E2614
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r1, #0
+ ldrb r2, [r5, #4]
+ ldr r4, [r5]
+ cmp r2, #0
+ beq _021E262E
+ cmp r2, #1
+ beq _021E264A
+ cmp r2, #2
+ beq _021E26DC
+ add sp, #0x1c
+ pop {r4, r5, pc}
+_021E262E:
+ add r0, r4, #0
+ bl MOD14_021E2340
+ add r0, r4, #0
+ bl MOD14_021E23F8
+ add r0, r4, #0
+ bl MOD14_021E2464
+ ldrb r0, [r5, #4]
+ add sp, #0x1c
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ pop {r4, r5, pc}
+_021E264A:
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ mov r2, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02018540
+ ldrb r0, [r5, #5]
+ add r0, r0, #1
+ strb r0, [r5, #5]
+ ldrb r0, [r5, #5]
+ lsl r1, r0, #1
+ cmp r1, #0xa
+ bge _021E26CA
+ add r1, r0, #5
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ mov r1, #0x20
+ str r1, [sp, #4]
+ mov r1, #5
+ sub r0, r1, r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r2, [r4, #0x30]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r2, #0xc
+ mov r3, #0
+ bl FUN_02018148
+ ldrb r1, [r5, #5]
+ mov r2, #5
+ mov r0, #0x20
+ sub r2, r2, r1
+ lsl r2, r2, #0x18
+ mov r3, #0xa
+ sub r1, r3, r1
+ lsl r1, r1, #0x18
+ str r0, [sp]
+ lsr r2, r2, #0x18
+ str r2, [sp, #4]
+ ldr r2, [r4, #0x30]
+ lsr r1, r1, #0x18
+ add r2, #0xc
+ str r2, [sp, #8]
+ mov r2, #0
+ str r2, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r3, [sp, #0x18]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02018170
+ b _021E26D0
+_021E26CA:
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+_021E26D0:
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02017CD0
+ add sp, #0x1c
+ pop {r4, r5, pc}
+_021E26DC:
+ bl MOD14_021E24BC
+ add sp, #0x1c
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD14_021E26E4
+MOD14_021E26E4: ; 0x021E26E4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0xa
+ mov r1, #0x18
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021E2798
+ ldr r0, [r5, #0xc]
+ bl MOD14_021DC544
+ add r6, r0, #0
+ ldr r0, [r5, #4]
+ mov r1, #1
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #7
+ str r0, [sp, #8]
+ ldr r2, [r5, #0x38]
+ ldr r0, [r5, #4]
+ mov r1, #1
+ add r2, #0xc
+ mov r3, #0
+ bl FUN_02018148
+ ldr r0, [r5, #0x10]
+ mov r1, #4
+ add r0, #0x20
+ bl FUN_02019620
+ ldr r2, _021E279C ; =0x00004BF8
+ add r1, r6, #0
+ ldr r0, [r5, r2]
+ add r2, r2, #4
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E27A0 ; =0x00020104
+ ldr r2, _021E27A4 ; =0x00004BFC
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #0x10]
+ ldr r2, [r5, r2]
+ add r0, #0x20
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [r5, #0x10]
+ add r0, #0x20
+ bl FUN_020191D0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD14_021E2940
+ mov r1, #0
+ strh r1, [r4, #0x16]
+ str r5, [r4]
+ ldr r0, [r5, #4]
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ mov r1, #0xe
+ lsl r1, r1, #0xe
+ str r1, [r4, #0xc]
+ ldr r0, [r4, #8]
+ sub r0, r1, r0
+ mov r1, #6
+ bl _s32_div_f
+ str r0, [r4, #0x10]
+ mov r0, #6
+ strh r0, [r4, #0x14]
+ ldr r0, _021E27A8 ; =MOD14_021E27C4
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD14_021DDD40
+ add r5, #0xdc
+ str r0, [r5]
+_021E2798:
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021E279C: .word 0x00004BF8
+_021E27A0: .word 0x00020104
+_021E27A4: .word 0x00004BFC
+_021E27A8: .word MOD14_021E27C4
+
+ thumb_func_start MOD14_021E27AC
+MOD14_021E27AC: ; 0x021E27AC
+ add r0, #0xdc
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021E27B8
+ mov r0, #1
+ bx lr
+_021E27B8:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD14_021E27BC
+MOD14_021E27BC: ; 0x021E27BC
+ mov r1, #0
+ add r0, #0xdc
+ str r1, [r0]
+ bx lr
+
+ thumb_func_start MOD14_021E27C4
+MOD14_021E27C4: ; 0x021E27C4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0
+ beq _021E27D6
+ cmp r0, #1
+ beq _021E27DC
+ pop {r3, r4, r5, pc}
+_021E27D6:
+ add r0, r0, #1
+ strh r0, [r4, #0x16]
+ pop {r3, r4, r5, pc}
+_021E27DC:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021E280A
+ sub r0, r0, #1
+ strh r0, [r4, #0x14]
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x10]
+ mov r2, #3
+ add r3, r1, r0
+ str r3, [r4, #8]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ mov r1, #0xe
+ ldr r2, [r4, #8]
+ lsl r1, r1, #0x10
+ ldr r0, [r4]
+ sub r1, r1, r2
+ bl MOD14_021E2A00
+ pop {r3, r4, r5, pc}
+_021E280A:
+ ldr r3, [r4, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ mov r2, #3
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ mov r1, #0xe
+ ldr r2, [r4, #0xc]
+ lsl r1, r1, #0x10
+ ldr r0, [r4]
+ sub r1, r1, r2
+ bl MOD14_021E2A00
+ ldr r1, _021E2838 ; =MOD14_021E27BC
+ ldr r2, [r4]
+ add r0, r4, #0
+ bl MOD14_021DDF30
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E2838: .word MOD14_021E27BC
+
+ thumb_func_start MOD14_021E283C
+MOD14_021E283C: ; 0x021E283C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0xa
+ mov r1, #0x18
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021E287C
+ mov r1, #0
+ strh r1, [r4, #0x16]
+ str r5, [r4]
+ ldr r0, [r5, #4]
+ str r0, [r4, #4]
+ mov r0, #0xe
+ lsl r0, r0, #0xe
+ str r0, [r4, #8]
+ str r1, [r4, #0xc]
+ ldr r0, [r4, #8]
+ sub r0, r1, r0
+ mov r1, #6
+ bl _s32_div_f
+ str r0, [r4, #0x10]
+ mov r0, #6
+ strh r0, [r4, #0x14]
+ ldr r0, _021E2880 ; =MOD14_021E28B4
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD14_021DDD40
+ add r5, #0xdc
+ str r0, [r5]
+_021E287C:
+ pop {r3, r4, r5, pc}
+ nop
+_021E2880: .word MOD14_021E28B4
+
+ thumb_func_start MOD14_021E2884
+MOD14_021E2884: ; 0x021E2884
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021E28A6
+ ldr r0, [r4, #4]
+ mov r1, #1
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ bl MOD14_021E2A28
+ mov r0, #1
+ pop {r4, pc}
+_021E28A6:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E28AC
+MOD14_021E28AC: ; 0x021E28AC
+ mov r1, #0
+ add r0, #0xdc
+ str r1, [r0]
+ bx lr
+
+ thumb_func_start MOD14_021E28B4
+MOD14_021E28B4: ; 0x021E28B4
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021E28EC
+ sub r0, r0, #1
+ strh r0, [r4, #0x14]
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x10]
+ mov r2, #3
+ add r3, r1, r0
+ str r3, [r4, #8]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ mov r1, #0xe
+ ldr r2, [r4, #8]
+ lsl r1, r1, #0x10
+ ldr r0, [r4]
+ sub r1, r1, r2
+ bl MOD14_021E2A00
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_021E28EC:
+ ldr r3, [r4, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ mov r2, #3
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ mov r1, #0xe
+ ldr r2, [r4, #0xc]
+ lsl r1, r1, #0x10
+ ldr r0, [r4]
+ sub r1, r1, r2
+ bl MOD14_021E2A00
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02018540
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02017CD0
+ ldr r1, _021E293C ; =MOD14_021E28AC
+ ldr r2, [r4]
+ add r0, r4, #0
+ bl MOD14_021DDF30
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E293C: .word MOD14_021E28AC
+
+ thumb_func_start MOD14_021E2940
+MOD14_021E2940: ; 0x021E2940
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x54
+ add r5, r0, #0
+ add r4, r1, #0
+ beq _021E29F6
+ ldr r0, [r5]
+ bl MOD14_021DDD50
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ ldr r0, [r6, #0x20]
+ add r1, sp, #0xc
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r3, [r6, #0x1c]
+ add r0, sp, #0x30
+ bl MOD14_021DDDB4
+ add r0, sp, #0xc
+ bl FUN_020B1A24
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #1
+ bl FUN_0206E640
+ add r1, r0, #0
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0x10
+ mov r2, #0
+ add r3, sp, #8
+ bl FUN_02006BB0
+ add r6, r0, #0
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r1, [r0]
+ ldr r0, _021E29FC ; =0x00300010
+ mov r2, #1
+ and r1, r0
+ ldr r0, [sp, #8]
+ add r3, sp, #0xc
+ str r1, [r0, #8]
+ mov r1, #0xbe
+ ldr r0, [sp, #8]
+ lsl r1, r1, #8
+ bl FUN_020B1768
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #2
+ bl FUN_0206E640
+ add r1, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0x10
+ mov r2, #1
+ mov r3, #0xc0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #8]
+ add r1, sp, #0x30
+ mov r2, #0x12
+ mov r3, #0xe0
+ bl MOD14_021DDDD4
+ add r1, r5, #0
+ add r1, #0x90
+ add r5, #0x90
+ str r0, [r1]
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021E29F0
+ mov r1, #6
+ bl FUN_02020248
+_021E29F0:
+ add r0, r6, #0
+ bl FUN_02016A18
+_021E29F6:
+ add sp, #0x54
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021E29FC: .word 0x00300010
+
+ thumb_func_start MOD14_021E2A00
+MOD14_021E2A00: ; 0x021E2A00
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r2, #0x90
+ ldr r2, [r2]
+ cmp r2, #0
+ beq _021E2A24
+ mov r2, #0x12
+ lsl r2, r2, #0xc
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ str r2, [sp]
+ add r0, #0x90
+ ldr r0, [r0]
+ add r1, sp, #0
+ bl FUN_02020044
+_021E2A24:
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start MOD14_021E2A28
+MOD14_021E2A28: ; 0x021E2A28
+ push {r3, lr}
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E2A36
+ bl FUN_0201FFC8
+_021E2A36:
+ pop {r3, pc}
+
+ thumb_func_start MOD14_021E2A38
+MOD14_021E2A38: ; 0x021E2A38
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ str r4, [r5]
+ ldr r0, [sp, #0x18]
+ str r6, [r5, #0xc]
+ str r0, [r5, #8]
+ str r3, [r5, #4]
+ add r0, r4, #0
+ bl MOD14_021DDD50
+ str r0, [r5, #0x38]
+ add r0, r4, #0
+ bl MOD14_021DDD58
+ str r0, [r5, #0x10]
+ add r0, r6, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021E2A6E
+ mov r0, #0xe
+ str r0, [r5, #0x30]
+ mov r0, #0
+ b _021E2A74
+_021E2A6E:
+ mov r0, #9
+ str r0, [r5, #0x30]
+ sub r0, #0x31
+_021E2A74:
+ str r0, [r5, #0x34]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x2b
+ strb r1, [r0]
+ str r1, [r5, #0x2c]
+ add r1, r5, #0
+ ldr r0, [r5, #0x38]
+ add r1, #0x3c
+ mov r2, #6
+ bl MOD14_021E08E4
+ mov r1, #9
+ mov r0, #0xa
+ lsl r1, r1, #6
+ bl FUN_02016998
+ str r0, [r5, #0x1c]
+ mov r0, #0xa
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #6
+ mov r2, #1
+ add r3, #0x18
+ bl FUN_02006BDC
+ str r0, [r5, #0x14]
+ cmp r0, #0
+ beq _021E2AB6
+ ldr r1, [r5, #0x1c]
+ cmp r1, #0
+ bne _021E2ABC
+_021E2AB6:
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_021E2ABC:
+ add r0, r5, #0
+ bl MOD14_021E31F4
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E2AC8
+MOD14_021E2AC8: ; 0x021E2AC8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021E2AD6
+ bl FUN_02016A18
+_021E2AD6:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _021E2AE0
+ bl FUN_02016A18
+_021E2AE0:
+ add r0, r4, #0
+ bl MOD14_021E3390
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E2AE8
+MOD14_021E2AE8: ; 0x021E2AE8
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ mov r2, #0
+ add r1, #0x2b
+ strb r2, [r1]
+ add r1, r4, #0
+ add r1, #0x2b
+ ldrb r1, [r1]
+ bl MOD14_021E31A4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD14_021E32F8
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02017CD0
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E2B10
+MOD14_021E2B10: ; 0x021E2B10
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ bl MOD14_021E32F8
+ add r0, r4, #0
+ mov r1, #0x1a
+ add r0, #0x2b
+ strb r1, [r0]
+ ldr r0, _021E2B3C ; =MOD14_021E2B50
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021E2B34
+ mov r0, #1
+ b _021E2B36
+_021E2B34:
+ mov r0, #0
+_021E2B36:
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+ nop
+_021E2B3C: .word MOD14_021E2B50
+
+ thumb_func_start MOD14_021E2B40
+MOD14_021E2B40: ; 0x021E2B40
+ ldr r0, [r0, #0x2c]
+ cmp r0, #0
+ bne _021E2B4A
+ mov r0, #1
+ bx lr
+_021E2B4A:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2B50
+MOD14_021E2B50: ; 0x021E2B50
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #2
+ bls _021E2B6C
+ add r0, r5, #0
+ add r0, #0x2b
+ ldrb r0, [r0]
+ ldr r4, _021E2BAC ; =0xFFFF0000
+ sub r1, r0, #2
+ b _021E2B72
+_021E2B6C:
+ lsl r0, r0, #0xf
+ neg r4, r0
+ mov r1, #0
+_021E2B72:
+ add r0, r5, #0
+ add r0, #0x2b
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x2b
+ ldrb r1, [r1]
+ add r0, r5, #0
+ bl MOD14_021E31A4
+ ldr r0, [r5, #4]
+ mov r1, #2
+ bl FUN_02017CD0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E3290
+ add r0, r5, #0
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _021E2BA8
+ mov r0, #0
+ str r0, [r5, #0x2c]
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_021E2BA8:
+ pop {r4, r5, r6, pc}
+ nop
+_021E2BAC: .word 0xFFFF0000
+
+ thumb_func_start MOD14_021E2BB0
+MOD14_021E2BB0: ; 0x021E2BB0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E2BCC ; =MOD14_021E2BE4
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021E2BC6
+ mov r0, #1
+ b _021E2BC8
+_021E2BC6:
+ mov r0, #0
+_021E2BC8:
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+ .align 2, 0
+_021E2BCC: .word MOD14_021E2BE4
+
+ thumb_func_start MOD14_021E2BD0
+MOD14_021E2BD0: ; 0x021E2BD0
+ push {r3, lr}
+ ldr r1, [r0, #0x2c]
+ cmp r1, #0
+ bne _021E2BE0
+ bl MOD14_021E3390
+ mov r0, #1
+ pop {r3, pc}
+_021E2BE0:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD14_021E2BE4
+MOD14_021E2BE4: ; 0x021E2BE4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #0x18
+ bhs _021E2C04
+ add r0, r5, #0
+ add r0, #0x2b
+ ldrb r0, [r0]
+ mov r4, #1
+ lsl r4, r4, #0x10
+ add r1, r0, #2
+ b _021E2C0A
+_021E2C04:
+ mov r1, #0x1a
+ sub r0, r1, r0
+ lsl r4, r0, #0xf
+_021E2C0A:
+ add r0, r5, #0
+ add r0, #0x2b
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0x2b
+ ldrb r1, [r0]
+ cmp r1, #2
+ bls _021E2C46
+ asr r0, r4, #0xc
+ lsr r0, r0, #3
+ sub r1, r1, #2
+ sub r1, r1, r0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ mov r1, #0xf
+ lsl r0, r0, #0x18
+ str r1, [sp, #4]
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r3, [r5, #0x30]
+ ldr r0, [r5, #4]
+ lsl r3, r3, #0x18
+ mov r1, #2
+ mov r2, #0
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+_021E2C46:
+ add r1, r5, #0
+ add r1, #0x2b
+ ldrb r1, [r1]
+ add r0, r5, #0
+ bl MOD14_021E31A4
+ ldr r0, [r5, #4]
+ mov r1, #2
+ bl FUN_02017CD0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E3290
+ add r0, r5, #0
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #0x1a
+ bne _021E2C76
+ mov r0, #0
+ str r0, [r5, #0x2c]
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_021E2C76:
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2C7C
+MOD14_021E2C7C: ; 0x021E2C7C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0
+ ldr r0, [r6, #0xc]
+ ldr r0, [r0, #4]
+ bl FUN_0206B9AC
+ add r1, r6, #0
+ add r1, #0x28
+ ldrb r4, [r1]
+ cmp r4, r0
+ bge _021E2D20
+ sub r0, r0, r4
+ str r0, [sp, #8]
+ cmp r4, #5
+ bge _021E2CF8
+ mov r0, #0x34
+ add r1, r4, #0
+ mul r1, r0
+ add r0, r6, #0
+ str r0, [sp, #0xc]
+ add r0, #0x3c
+ str r0, [sp, #0xc]
+ add r5, r0, r1
+ add r7, r6, r1
+ ldr r0, _021E2D28 ; =0x00000418
+ lsl r1, r4, #5
+ add r0, r1, r0
+ str r0, [sp, #4]
+_021E2CB6:
+ add r1, r4, #1
+ mov r0, #0x34
+ mul r0, r1
+ ldr r1, [sp, #0xc]
+ str r0, [sp]
+ add r0, r1, r0
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD14_021E0930
+ ldr r2, [sp, #0xc]
+ ldr r1, [sp]
+ ldr r0, [r6, #0x38]
+ add r1, r2, r1
+ mov r2, #1
+ bl MOD14_021E08E4
+ ldr r0, [r7, #0x3c]
+ cmp r0, #0
+ beq _021E2CE8
+ ldr r0, [r6, #0x38]
+ ldr r2, [sp, #4]
+ add r1, r5, #0
+ bl MOD14_021E0BBC
+_021E2CE8:
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ add r0, #0x20
+ add r5, #0x34
+ add r7, #0x34
+ str r0, [sp, #4]
+ cmp r4, #5
+ blt _021E2CB6
+_021E2CF8:
+ add r1, r6, #0
+ ldr r0, [sp, #8]
+ add r1, #0x29
+ strb r0, [r1]
+ add r0, r6, #0
+ mov r2, #0
+ add r0, #0x2a
+ strb r2, [r0]
+ ldr r0, _021E2D2C ; =MOD14_021E2D30
+ add r1, r6, #0
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021E2D18
+ mov r0, #1
+ b _021E2D1A
+_021E2D18:
+ mov r0, #0
+_021E2D1A:
+ add sp, #0x10
+ str r0, [r6, #0x2c]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E2D20:
+ mov r0, #0
+ str r0, [r6, #0x2c]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E2D28: .word 0x00000418
+_021E2D2C: .word MOD14_021E2D30
+
+ thumb_func_start MOD14_021E2D30
+MOD14_021E2D30: ; 0x021E2D30
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r1, [sp, #4]
+ ldr r2, [sp, #4]
+ str r0, [sp]
+ add r1, #0x28
+ ldr r0, [sp, #4]
+ add r2, #0x2a
+ add r0, #0x29
+ ldrb r7, [r0]
+ ldr r0, [sp, #4]
+ ldrb r1, [r1]
+ ldrb r3, [r2]
+ ldr r0, [r0, #0x1c]
+ lsl r2, r1, #3
+ add r3, r3, r2
+ mov r2, #0xc
+ mul r2, r3
+ add r4, r0, r2
+ mov r6, #0
+ cmp r7, #0
+ ble _021E2D7C
+ mov r0, #0x34
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, [sp, #4]
+ add r5, r0, r2
+_021E2D66:
+ ldr r0, [r5, #0x3c]
+ cmp r0, #0
+ beq _021E2D72
+ add r1, r4, #0
+ bl FUN_02020044
+_021E2D72:
+ add r6, r6, #1
+ add r5, #0x34
+ add r4, #0x60
+ cmp r6, r7
+ blt _021E2D66
+_021E2D7C:
+ ldr r0, [sp, #4]
+ add r0, #0x2a
+ ldrb r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #4]
+ add r0, #0x2a
+ strb r1, [r0]
+ ldr r0, [sp, #4]
+ add r0, #0x2a
+ ldrb r0, [r0]
+ cmp r0, #8
+ blo _021E2DA0
+ ldr r0, [sp, #4]
+ mov r1, #0
+ str r1, [r0, #0x2c]
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_021E2DA0:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E2DA4
+MOD14_021E2DA4: ; 0x021E2DA4
+ ldr r0, [r0, #0x2c]
+ cmp r0, #0
+ bne _021E2DAE
+ mov r0, #1
+ bx lr
+_021E2DAE:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2DB4
+MOD14_021E2DB4: ; 0x021E2DB4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ ldr r0, [r0, #4]
+ bl FUN_0206B9AC
+ sub r4, r0, #1
+ add r0, r5, #0
+ add r0, #0x28
+ ldrb r0, [r0]
+ cmp r0, r4
+ bls _021E2E3A
+ mov r0, #0x34
+ mul r0, r4
+ add r0, r5, r0
+ ldr r0, [r0, #0x3c]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r1, _021E2E44 ; =0x021E6650
+ str r0, [r2]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ ldr r2, [r5, #0x34]
+ add r1, r2, r1
+ lsl r2, r1, #0xc
+ ldr r1, [sp]
+ sub r2, r2, r1
+ asr r1, r2, #2
+ lsr r1, r1, #0x1d
+ add r1, r2, r1
+ asr r1, r1, #3
+ str r1, [r5, #0x20]
+ ldr r1, _021E2E48 ; =0x021E6652
+ mov r2, #0
+ ldrh r0, [r1, r0]
+ lsl r1, r0, #0xc
+ ldr r0, [sp, #4]
+ sub r1, r1, r0
+ asr r0, r1, #2
+ lsr r0, r0, #0x1d
+ add r0, r1, r0
+ asr r0, r0, #3
+ str r0, [r5, #0x24]
+ add r0, r5, #0
+ add r0, #0x2a
+ strb r2, [r0]
+ add r0, r5, #0
+ add r0, #0x28
+ strb r4, [r0]
+ ldr r0, _021E2E4C ; =MOD14_021E2E60
+ add r1, r5, #0
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021E2E32
+ mov r0, #1
+ b _021E2E34
+_021E2E32:
+ mov r0, #0
+_021E2E34:
+ add sp, #0xc
+ str r0, [r5, #0x2c]
+ pop {r4, r5, pc}
+_021E2E3A:
+ mov r0, #0
+ str r0, [r5, #0x2c]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021E2E44: .word 0x021E6650
+_021E2E48: .word 0x021E6652
+_021E2E4C: .word MOD14_021E2E60
+
+ thumb_func_start MOD14_021E2E50
+MOD14_021E2E50: ; 0x021E2E50
+ ldr r0, [r0, #0x2c]
+ cmp r0, #0
+ bne _021E2E5A
+ mov r0, #1
+ bx lr
+_021E2E5A:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2E60
+MOD14_021E2E60: ; 0x021E2E60
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0x28
+ ldrb r1, [r0]
+ mov r0, #0x34
+ mul r0, r1
+ add r0, r5, r0
+ ldr r0, [r0, #0x3c]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r5, #0
+ add r0, #0x2a
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x2a
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0x2a
+ ldrb r0, [r0]
+ cmp r0, #8
+ blo _021E2EC6
+ add r1, r5, #0
+ add r1, #0x28
+ ldrb r1, [r1]
+ ldr r0, [r5, #0x34]
+ mov r4, #1
+ lsl r2, r1, #2
+ ldr r1, _021E2F00 ; =0x021E6650
+ ldrh r1, [r1, r2]
+ add r0, r0, r1
+ lsl r0, r0, #0xc
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x28
+ ldrb r0, [r0]
+ lsl r1, r0, #2
+ ldr r0, _021E2F04 ; =0x021E6652
+ ldrh r0, [r0, r1]
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ b _021E2ED8
+_021E2EC6:
+ ldr r1, [sp]
+ ldr r0, [r5, #0x20]
+ mov r4, #0
+ add r0, r1, r0
+ str r0, [sp]
+ ldr r1, [sp, #4]
+ ldr r0, [r5, #0x24]
+ add r0, r1, r0
+ str r0, [sp, #4]
+_021E2ED8:
+ add r0, r5, #0
+ add r0, #0x28
+ ldrb r1, [r0]
+ mov r0, #0x34
+ mul r0, r1
+ add r0, r5, r0
+ ldr r0, [r0, #0x3c]
+ add r1, sp, #0
+ bl FUN_02020044
+ cmp r4, #0
+ beq _021E2EFA
+ mov r0, #0
+ str r0, [r5, #0x2c]
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_021E2EFA:
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021E2F00: .word 0x021E6650
+_021E2F04: .word 0x021E6652
+
+ thumb_func_start MOD14_021E2F08
+MOD14_021E2F08: ; 0x021E2F08
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD14_021DC424
+ mov r1, #0x11
+ ldr r2, [r5, #0xc]
+ lsl r1, r1, #4
+ ldrh r1, [r2, r1]
+ cmp r1, r0
+ bne _021E2F24
+ ldr r0, [r5, #0x10]
+ bl MOD14_021DEA50
+_021E2F24:
+ ldr r0, [r5, #0xc]
+ bl MOD14_021DC3E8
+ add r4, r0, #0
+ add r2, r5, #0
+ mov r1, #0x34
+ ldr r0, [r5, #0x38]
+ add r2, #0x3c
+ mul r1, r4
+ add r1, r2, r1
+ mov r2, #1
+ bl MOD14_021E0908
+ add r5, #0x28
+ strb r4, [r5]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E2F44
+MOD14_021E2F44: ; 0x021E2F44
+ add r2, r0, #0
+ mov r0, #0x5d
+ mov r3, #0
+ lsl r0, r0, #2
+ strb r3, [r2, r0]
+ add r0, r2, #0
+ add r0, #0x28
+ mov r3, #0x34
+ strb r1, [r0]
+ ldr r0, [r2, #0x38]
+ add r2, #0x3c
+ mul r3, r1
+ add r1, r2, r3
+ ldr r3, _021E2F64 ; =MOD14_021E0C20
+ mov r2, #1
+ bx r3
+ .align 2, 0
+_021E2F64: .word MOD14_021E0C20
+
+ thumb_func_start MOD14_021E2F68
+MOD14_021E2F68: ; 0x021E2F68
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r0, #0x28
+ ldrb r1, [r0]
+ add r4, r5, #0
+ mov r0, #0x34
+ add r6, r1, #0
+ mul r6, r0
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ add r4, #0x3c
+ cmp r0, #0
+ beq _021E2F8A
+ cmp r0, #1
+ beq _021E2FD2
+ b _021E2FE2
+_021E2F8A:
+ ldr r0, [r5, #0x38]
+ add r1, r4, r6
+ bl MOD14_021E0C48
+ cmp r0, #0
+ beq _021E2FE2
+ ldr r0, [r5]
+ bl MOD14_021DDEDC
+ add r7, r0, #0
+ bl MOD14_021DA1B8
+ cmp r0, #0
+ beq _021E2FE2
+ add r0, r7, #0
+ bl MOD14_021DA1C0
+ cmp r0, #0
+ ldr r0, [r5, #0x38]
+ beq _021E2FBE
+ add r1, r4, r6
+ mov r2, #1
+ bl MOD14_021E0908
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E2FBE:
+ add r1, r4, r6
+ mov r2, #2
+ bl MOD14_021E0C20
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ b _021E2FE2
+_021E2FD2:
+ ldr r0, [r5, #0x38]
+ add r1, r4, r6
+ bl MOD14_021E0C48
+ cmp r0, #0
+ beq _021E2FE2
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E2FE2:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E2FE8
+MOD14_021E2FE8: ; 0x021E2FE8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, [r7, #0xc]
+ bl MOD14_021DC3CC
+ cmp r0, #1
+ bne _021E3020
+ ldr r0, [r7, #0xc]
+ bl MOD14_021DC484
+ add r5, r7, #0
+ str r0, [sp]
+ mov r6, #0
+ add r4, r7, #0
+ add r5, #0x3c
+_021E3006:
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0
+ beq _021E3016
+ ldr r0, [r7, #0x38]
+ ldr r2, [sp]
+ add r1, r5, #0
+ bl MOD14_021E0B54
+_021E3016:
+ add r6, r6, #1
+ add r4, #0x34
+ add r5, #0x34
+ cmp r6, #6
+ blt _021E3006
+_021E3020:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3024
+MOD14_021E3024: ; 0x021E3024
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r5, #0
+ mov r0, #0x34
+ add r4, r1, #0
+ mul r4, r0
+ add r6, #0x3c
+ ldr r0, [r6, r4]
+ cmp r0, #0
+ beq _021E3050
+ ldr r0, [r5, #0x38]
+ add r1, r6, r4
+ bl MOD14_021E0BA8
+ ldr r0, [r5, #0xc]
+ bl MOD14_021DC484
+ add r2, r0, #0
+ ldr r0, [r5, #0x38]
+ add r1, r6, r4
+ bl MOD14_021E0B54
+_021E3050:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3054
+MOD14_021E3054: ; 0x021E3054
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD14_021DC3E8
+ add r4, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD14_021DC45C
+ add r2, r0, #0
+ add r1, r5, #0
+ mov r0, #0x34
+ add r3, r4, #0
+ add r1, #0x3c
+ mul r3, r0
+ ldr r0, [r1, r3]
+ cmp r0, #0
+ beq _021E3080
+ ldr r0, [r5, #0x38]
+ add r1, r1, r3
+ bl MOD14_021E0BA4
+_021E3080:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3084
+MOD14_021E3084: ; 0x021E3084
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ mov r0, #0x34
+ add r4, r6, #0
+ mul r4, r0
+ add r0, r5, #0
+ add r7, r3, #0
+ add r0, #0x3c
+ str r2, [sp]
+ add r0, r0, r4
+ add r1, r7, #0
+ mov r2, #1
+ bl MOD14_021E0930
+ ldr r0, [r5, #0x38]
+ ldr r2, [sp]
+ add r1, r7, #0
+ bl MOD14_021E0BBC
+ add r1, r5, #0
+ add r1, #0x3c
+ ldr r0, [r5, #0x38]
+ add r1, r1, r4
+ mov r2, #1
+ bl MOD14_021E08E4
+ add r5, #0x28
+ strb r6, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E30C0
+MOD14_021E30C0: ; 0x021E30C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ str r1, [sp]
+ ldr r0, [r0, #4]
+ str r2, [sp, #4]
+ bl FUN_0206B9AC
+ sub r6, r0, #1
+ add r4, r5, #0
+ mov r0, #0x34
+ add r7, r6, #0
+ mul r7, r0
+ add r4, #0x3c
+ ldr r0, [sp, #4]
+ add r1, r4, r7
+ mov r2, #1
+ bl MOD14_021E0930
+ ldr r2, _021E3110 ; =0x00000418
+ lsl r3, r6, #5
+ ldr r0, [r5, #0x38]
+ add r1, r4, r7
+ add r2, r3, r2
+ bl MOD14_021E0BBC
+ ldr r0, [r4, r7]
+ mov r1, #1
+ bl FUN_02020238
+ ldr r0, [r4, r7]
+ add r1, r6, #4
+ bl MOD14_021DDE24
+ ldr r0, [sp]
+ add r5, #0x28
+ strb r0, [r5]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E3110: .word 0x00000418
+
+ thumb_func_start MOD14_021E3114
+MOD14_021E3114: ; 0x021E3114
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r1, #0
+ add r5, r7, #0
+ mov r0, #0x34
+ add r4, r6, #0
+ mul r4, r0
+ add r5, #0x3c
+ add r0, r2, #0
+ add r1, r5, r4
+ mov r2, #1
+ bl MOD14_021E0930
+ ldr r2, _021E3154 ; =0x00000418
+ lsl r3, r6, #5
+ ldr r0, [r7, #0x38]
+ add r1, r5, r4
+ add r2, r3, r2
+ bl MOD14_021E0BBC
+ ldr r0, [r5, r4]
+ mov r1, #1
+ bl FUN_02020238
+ ldr r0, [r5, r4]
+ add r1, r6, #4
+ bl MOD14_021DDE24
+ add r7, #0x28
+ strb r6, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E3154: .word 0x00000418
+
+ thumb_func_start MOD14_021E3158
+MOD14_021E3158: ; 0x021E3158
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #6
+ blo _021E3166
+ bl ErrorHandling
+_021E3166:
+ mov r0, #0x34
+ add r5, #0x3c
+ mul r0, r4
+ add r0, r5, r0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E3170
+MOD14_021E3170: ; 0x021E3170
+ push {r3, r4}
+ cmp r1, #6
+ bne _021E3184
+ ldr r0, [r0, #0x34]
+ add r0, #0xc0
+ str r0, [r2]
+ mov r0, #0xb8
+ str r0, [r3]
+ pop {r3, r4}
+ bx lr
+_021E3184:
+ ldr r4, [r0, #0x34]
+ ldr r0, _021E319C ; =0x021E6650
+ lsl r1, r1, #2
+ ldrh r0, [r0, r1]
+ add r0, r4, r0
+ str r0, [r2]
+ ldr r0, _021E31A0 ; =0x021E6652
+ ldrh r0, [r0, r1]
+ str r0, [r3]
+ pop {r3, r4}
+ bx lr
+ nop
+_021E319C: .word 0x021E6650
+_021E31A0: .word 0x021E6652
+
+ thumb_func_start MOD14_021E31A4
+MOD14_021E31A4: ; 0x021E31A4
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r3, r0, #0
+ cmp r1, #2
+ bhi _021E31BE
+ mov r0, #2
+ sub r1, r0, r1
+ add r2, r1, #0
+ mov r0, #0x1e
+ mul r2, r0
+ mov r1, #0x18
+ mov r0, #0
+ b _021E31CC
+_021E31BE:
+ cmp r1, #0x1a
+ bhs _021E31F0
+ mov r0, #0x1a
+ sub r1, r0, r1
+ mov r0, #0x18
+ mov r2, #0
+ sub r0, r0, r1
+_021E31CC:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r4, [r3, #0x18]
+ ldr r0, [r3, #4]
+ ldr r3, [r3, #0x30]
+ add r4, #0xc
+ lsl r3, r3, #0x18
+ mov r1, #2
+ add r2, r4, r2
+ lsr r3, r3, #0x18
+ bl FUN_02018148
+_021E31F0:
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD14_021E31F4
+MOD14_021E31F4: ; 0x021E31F4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ str r1, [sp, #4]
+ mov r0, #0
+ ldr r1, _021E328C ; =0x021E6650
+ mov ip, r0
+_021E3202:
+ ldrh r3, [r1]
+ ldrh r2, [r1, #4]
+ mov r0, #0
+ ldrh r4, [r1, #2]
+ sub r2, r3, r2
+ lsl r3, r2, #0xc
+ asr r2, r3, #2
+ lsr r2, r2, #0x1d
+ add r2, r3, r2
+ ldrh r3, [r1, #6]
+ asr r2, r2, #3
+ mov lr, r2
+ sub r3, r4, r3
+ lsl r4, r3, #0xc
+ asr r3, r4, #2
+ lsr r3, r3, #0x1d
+ add r3, r4, r3
+ ldr r2, [sp, #4]
+ add r6, r0, #0
+ asr r7, r3, #3
+ add r5, r0, #0
+_021E322C:
+ ldr r3, [sp]
+ add r5, r5, r7
+ ldr r4, [r3, #0x34]
+ ldrh r3, [r1, #4]
+ add r0, r0, #1
+ add r3, r4, r3
+ lsl r4, r3, #0xc
+ mov r3, lr
+ add r6, r6, r3
+ add r3, r4, r6
+ str r3, [r2]
+ ldrh r3, [r1, #6]
+ lsl r3, r3, #0xc
+ add r3, r3, r5
+ str r3, [r2, #4]
+ mov r3, #0
+ str r3, [r2, #8]
+ add r2, #0xc
+ cmp r0, #7
+ blo _021E322C
+ ldr r3, [sp]
+ mov r2, #0xc
+ ldr r4, [r3, #0x34]
+ ldrh r3, [r1]
+ mul r2, r0
+ ldr r0, [sp, #4]
+ add r3, r4, r3
+ lsl r4, r3, #0xc
+ ldr r3, [sp, #4]
+ add r0, r0, r2
+ str r4, [r3, r2]
+ ldrh r2, [r1, #2]
+ add r1, r1, #4
+ lsl r2, r2, #0xc
+ str r2, [r0, #4]
+ mov r2, #0
+ str r2, [r0, #8]
+ add r0, r3, #0
+ add r0, #0x60
+ str r0, [sp, #4]
+ mov r0, ip
+ add r0, r0, #1
+ mov ip, r0
+ cmp r0, #5
+ blo _021E3202
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E328C: .word 0x021E6650
+
+ thumb_func_start MOD14_021E3290
+MOD14_021E3290: ; 0x021E3290
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r7, #0
+_021E329A:
+ ldr r0, [r5, #0x3c]
+ cmp r0, #0
+ beq _021E32F2
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [sp, #4]
+ add r0, r0, r4
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x3c]
+ bl FUN_02020044
+ cmp r4, #0
+ bge _021E32D8
+ mov r0, #0xd
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0x10
+ cmp r1, r0
+ bge _021E32EA
+ ldr r0, [r5, #0x3c]
+ mov r1, #1
+ bl FUN_020200A0
+ b _021E32EA
+_021E32D8:
+ mov r0, #0xd
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0x10
+ cmp r1, r0
+ blt _021E32EA
+ ldr r0, [r5, #0x3c]
+ mov r1, #0
+ bl FUN_020200A0
+_021E32EA:
+ add r7, r7, #1
+ add r5, #0x34
+ cmp r7, #6
+ blt _021E329A
+_021E32F2:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E32F8
+MOD14_021E32F8: ; 0x021E32F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp, #0x24]
+ str r1, [sp, #0x10]
+ cmp r1, #0
+ beq _021E330A
+ mov r0, #0
+ str r0, [sp, #0x14]
+ b _021E330E
+_021E330A:
+ mov r0, #0xd0
+ str r0, [sp, #0x14]
+_021E330E:
+ ldr r0, [sp, #0x24]
+ ldr r0, [r0, #0xc]
+ ldr r0, [r0, #4]
+ bl FUN_0206B9AC
+ mov r4, #0
+ str r0, [sp, #0x20]
+ cmp r0, #0
+ ble _021E3384
+ ldr r0, [sp, #0x24]
+ ldr r7, _021E3388 ; =0x00000418
+ str r0, [sp, #0x1c]
+ add r0, #0x3c
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x24]
+ ldr r5, _021E338C ; =0x021E6650
+ str r0, [sp, #0x18]
+_021E3330:
+ ldr r0, [sp, #0x24]
+ add r1, r4, #0
+ ldr r0, [r0, #0xc]
+ ldr r0, [r0, #4]
+ bl FUN_0206B9B0
+ add r1, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ add r0, r4, #4
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ str r7, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #0x24]
+ ldr r0, [sp, #0x24]
+ ldr r3, [r2, #0x34]
+ ldrh r2, [r5]
+ ldrh r6, [r5, #2]
+ ldr r0, [r0, #0x38]
+ add r2, r3, r2
+ ldr r3, [sp, #0x14]
+ add r3, r3, r6
+ bl MOD14_021E0940
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x10]
+ ldr r0, [r0, #0x3c]
+ bl FUN_020200A0
+ ldr r0, [sp, #0x1c]
+ add r4, r4, #1
+ add r0, #0x34
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r7, #0x20
+ add r0, #0x34
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x20]
+ add r5, r5, #4
+ cmp r4, r0
+ blt _021E3330
+_021E3384:
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E3388: .word 0x00000418
+_021E338C: .word 0x021E6650
+
+ thumb_func_start MOD14_021E3390
+MOD14_021E3390: ; 0x021E3390
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, [r7, #0xc]
+ ldr r0, [r0, #4]
+ bl FUN_0206B9AC
+ mov r6, #0
+ str r0, [sp]
+ cmp r0, #0
+ ble _021E33C6
+ add r5, r7, #0
+ add r4, r7, #0
+ add r5, #0x3c
+_021E33AA:
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0
+ beq _021E33BA
+ ldr r0, [r7, #0x38]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD14_021E0908
+_021E33BA:
+ ldr r0, [sp]
+ add r6, r6, #1
+ add r4, #0x34
+ add r5, #0x34
+ cmp r6, r0
+ blt _021E33AA
+_021E33C6:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E33C8
+MOD14_021E33C8: ; 0x021E33C8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r2, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ add r7, r1, #0
+ str r3, [sp]
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ bne _021E33E4
+ mov r0, #0
+ str r0, [r6]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E33E4:
+ mov r0, #0xa
+ mov r1, #0xf4
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021E3460
+ ldr r0, [sp]
+ mov r1, #0xa
+ str r0, [r4, #8]
+ str r7, [r4]
+ ldr r0, [sp, #0x18]
+ str r5, [r4, #4]
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ mov r0, #0x20
+ bl FUN_020219F4
+ add r1, r4, #0
+ add r1, #0x84
+ str r0, [r1]
+ add r5, #0x9c
+ ldrb r0, [r5]
+ mov r1, #0
+ add r2, r1, #0
+ str r0, [r4, #0x10]
+ add r0, r4, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa0
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa8
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xb0
+ str r1, [r0]
+ str r1, [r4, #0x2c]
+ str r1, [r4, #0x30]
+ add r0, r4, #0
+_021E3436:
+ add r1, r1, #1
+ str r2, [r0, #0x34]
+ add r0, r0, #4
+ cmp r1, #8
+ blt _021E3436
+ add r0, r4, #0
+ mov r1, #0
+_021E3444:
+ add r2, r2, #1
+ str r1, [r0, #0x54]
+ add r0, r0, #4
+ cmp r2, #0xa
+ blt _021E3444
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ bl MOD14_021E3464
+ str r4, [r6]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E3460:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E3464
+MOD14_021E3464: ; 0x021E3464
+ push {r4, r5, r6, r7}
+ add r1, r0, #0
+ mov r2, #0
+ add r1, #0xd4
+ strb r2, [r1]
+ add r1, r0, #0
+ mov r4, #0x5a
+ mov r3, #0x10
+ add r1, #0xe4
+ strb r3, [r1]
+ ldr r1, _021E34BC ; =0x020EDF50
+ mov r3, #1
+ lsl r4, r4, #8
+ mov r6, #0x10
+_021E3480:
+ add r2, r2, r4
+ asr r5, r2, #0xc
+ lsl r5, r5, #2
+ ldr r5, [r1, r5]
+ lsl r5, r5, #4
+ asr r7, r5, #0xc
+ add r5, r0, r3
+ add r5, #0xd4
+ strb r7, [r5]
+ add r5, r0, r3
+ add r5, #0xd4
+ ldrb r5, [r5]
+ sub r7, r6, r5
+ add r5, r0, r3
+ add r5, #0xe4
+ add r3, r3, #1
+ strb r7, [r5]
+ cmp r3, #0xf
+ blt _021E3480
+ add r1, r0, r3
+ add r0, r0, r3
+ mov r2, #0x10
+ add r1, #0xd4
+ strb r2, [r1]
+ mov r1, #0
+ add r0, #0xe4
+ strb r1, [r0]
+ pop {r4, r5, r6, r7}
+ bx lr
+ nop
+_021E34BC: .word 0x020EDF50
+
+ thumb_func_start MOD14_021E34C0
+MOD14_021E34C0: ; 0x021E34C0
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ beq _021E3558
+ add r0, #0x88
+ bl FUN_02019178
+ add r0, r6, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E34DA
+ bl FUN_02016A18
+_021E34DA:
+ add r0, r6, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E34E8
+ bl FUN_02016A18
+_021E34E8:
+ add r0, r6, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E34F6
+ bl FUN_02016A18
+_021E34F6:
+ add r0, r6, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E3504
+ bl FUN_02016A18
+_021E3504:
+ ldr r0, [r6, #0x2c]
+ cmp r0, #0
+ beq _021E350E
+ bl FUN_0201FFC8
+_021E350E:
+ ldr r0, [r6, #0x30]
+ cmp r0, #0
+ beq _021E3518
+ bl FUN_0201FFC8
+_021E3518:
+ add r0, r6, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E3526
+ bl FUN_02021A20
+_021E3526:
+ mov r4, #0
+ add r5, r6, #0
+_021E352A:
+ ldr r0, [r5, #0x34]
+ cmp r0, #0
+ beq _021E3534
+ bl FUN_0201FFC8
+_021E3534:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #8
+ blt _021E352A
+ mov r5, #0
+ add r4, r6, #0
+_021E3540:
+ ldr r0, [r4, #0x54]
+ cmp r0, #0
+ beq _021E354A
+ bl FUN_0201FFC8
+_021E354A:
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #0xa
+ blt _021E3540
+ add r0, r6, #0
+ bl FUN_02016A18
+_021E3558:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E355C
+MOD14_021E355C: ; 0x021E355C
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ beq _021E365C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #8]
+ mov r0, #0x12
+ mov r1, #0x67
+ 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, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #8]
+ mov r0, #0x12
+ mov r1, #0x64
+ mov r3, #7
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #8]
+ mov r0, #0x12
+ mov r1, #0x65
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #8]
+ mov r0, #0x12
+ mov r1, #0x66
+ mov r3, #5
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r4, #8]
+ mov r1, #4
+ mov r3, #1
+ bl FUN_02017F48
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #8]
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_02018540
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl FUN_02017CD0
+ ldr r3, [r4, #0x10]
+ ldr r0, [r4, #8]
+ lsl r5, r3, #2
+ ldr r3, _021E3660 ; =0x021E6674
+ mov r1, #5
+ ldr r3, [r3, r5]
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0
+ add r1, r4, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #2
+ str r0, [sp, #0xc]
+ str r3, [sp, #0x10]
+ ldr r0, [r4, #8]
+ add r1, #0x88
+ mov r2, #4
+ bl FUN_02019064
+ add r0, r4, #0
+ add r0, #0x88
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x88
+ bl FUN_020191D0
+ add r0, r4, #0
+ bl MOD14_021E4764
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0x12
+ mov r1, #0x68
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ add r0, r4, #0
+ bl MOD14_021E3664
+_021E365C:
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_021E3660: .word 0x021E6674
+
+ thumb_func_start MOD14_021E3664
+MOD14_021E3664: ; 0x021E3664
+ push {r3, r4, lr}
+ sub sp, #0x5c
+ add r4, r0, #0
+ bl MOD14_021E36FC
+ add r0, sp, #0x14
+ bl FUN_020B1A24
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ add r0, sp, #0x14
+ str r0, [sp, #0x10]
+ mov r0, #0x12
+ mov r1, #0x72
+ mov r2, #1
+ bl FUN_02006AE4
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ add r3, r4, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ add r3, #0x9c
+ add r2, r4, #0
+ ldr r3, [r3]
+ add r0, sp, #0x38
+ add r1, sp, #0x14
+ add r2, #0x18
+ bl MOD14_021DDDB4
+ mov r0, #0x31
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r3, #0x8e
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x38
+ mov r2, #0
+ lsl r3, r3, #2
+ bl MOD14_021DDDD4
+ str r0, [r4, #0x2c]
+ mov r0, #0x31
+ mov r3, #0x8e
+ str r0, [sp]
+ mov r2, #2
+ str r2, [sp, #4]
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x38
+ add r2, #0xfe
+ lsl r3, r3, #2
+ bl MOD14_021DDDD4
+ str r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_02020100
+ ldr r0, [r4, #4]
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ bne _021E36F6
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_02020130
+_021E36F6:
+ add sp, #0x5c
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E36FC
+MOD14_021E36FC: ; 0x021E36FC
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r0, #0xa
+ add r3, r4, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x73
+ mov r2, #1
+ add r3, #0x9c
+ bl FUN_02006C30
+ add r1, r4, #0
+ add r1, #0x98
+ str r0, [r1]
+ mov r0, #0xa
+ add r3, r4, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x74
+ mov r2, #1
+ add r3, #0xa4
+ bl FUN_02006C5C
+ add r1, r4, #0
+ add r1, #0xa0
+ str r0, [r1]
+ mov r0, #0xa
+ add r3, r4, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x76
+ mov r2, #1
+ add r3, #0xac
+ bl FUN_02006C30
+ add r1, r4, #0
+ add r1, #0xa8
+ str r0, [r1]
+ mov r0, #0xa
+ add r3, r4, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x77
+ mov r2, #1
+ add r3, #0xb4
+ bl FUN_02006C5C
+ add r1, r4, #0
+ add r1, #0xb0
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x18
+ bl FUN_020B19DC
+ mov r0, #0xa
+ str r0, [sp]
+ add r4, #0x18
+ mov r0, #0x12
+ mov r1, #0x78
+ mov r2, #2
+ mov r3, #0
+ str r4, [sp, #4]
+ bl FUN_02006A8C
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3784
+MOD14_021E3784: ; 0x021E3784
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ mov r2, #0
+ bl MOD14_021DDD40
+ str r0, [r4, #0x14]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3798
+MOD14_021E3798: ; 0x021E3798
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x14]
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E37A8
+MOD14_021E37A8: ; 0x021E37A8
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _021E37B2
+ mov r0, #1
+ bx lr
+_021E37B2:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E37B8
+MOD14_021E37B8: ; 0x021E37B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ beq _021E388A
+ ldr r1, [r5, #4]
+ add r1, #0x9c
+ ldrb r6, [r1]
+ ldr r1, [r5, #0x10]
+ cmp r1, r6
+ beq _021E388A
+ add r1, r5, #0
+ add r4, r5, #0
+ add r1, #0xb8
+ str r5, [r1]
+ add r4, #0xb8
+ mov r1, #0
+ str r1, [r4, #8]
+ str r1, [r4, #4]
+ cmp r6, #0
+ beq _021E37E8
+ cmp r6, #1
+ beq _021E3800
+ cmp r6, #2
+ beq _021E3822
+ b _021E384A
+_021E37E8:
+ mov r1, #8
+ strh r1, [r4, #0xc]
+ ldr r7, _021E388C ; =MOD14_021E3AB0
+ bl MOD14_021E3DD8
+ add r0, r5, #0
+ bl MOD14_021E3EBC
+ add r0, r5, #0
+ bl MOD14_021E4764
+ b _021E3852
+_021E3800:
+ mov r0, #8
+ strh r0, [r4, #0xc]
+ ldr r0, [r5, #0x10]
+ cmp r0, #0
+ bne _021E380E
+ ldr r7, _021E3890 ; =MOD14_021E38AC
+ b _021E3816
+_021E380E:
+ ldrh r0, [r4, #0xc]
+ ldr r7, _021E3894 ; =MOD14_021E3984
+ add r0, #8
+ strh r0, [r4, #0xc]
+_021E3816:
+ add r0, r5, #0
+ bl MOD14_021E3EBC
+ ldr r0, [r5, #0x2c]
+ str r0, [r4, #8]
+ b _021E3852
+_021E3822:
+ mov r0, #8
+ strh r0, [r4, #0xc]
+ ldr r0, [r5, #0x10]
+ cmp r0, #0
+ bne _021E3830
+ ldr r7, _021E3890 ; =MOD14_021E38AC
+ b _021E3838
+_021E3830:
+ ldrh r0, [r4, #0xc]
+ ldr r7, _021E3894 ; =MOD14_021E3984
+ add r0, #8
+ strh r0, [r4, #0xc]
+_021E3838:
+ ldr r0, [r5, #0x30]
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD14_021E3DD8
+ add r0, r5, #0
+ bl MOD14_021E4764
+ b _021E3852
+_021E384A:
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+_021E3852:
+ str r6, [r5, #0x10]
+ ldr r0, [r5, #8]
+ mov r1, #5
+ bl FUN_02017B48
+ lsl r0, r0, #0xc
+ ldr r1, _021E3898 ; =0x021E6674
+ lsl r2, r6, #2
+ str r0, [r4, #0x10]
+ ldr r6, [r1, r2]
+ ldrh r1, [r4, #0xc]
+ sub r0, r6, r0
+ bl _s32_div_f
+ str r0, [r4, #0x14]
+ asr r0, r6, #0xc
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _021E3880
+ mov r1, #1
+ bl FUN_02020130
+_021E3880:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD14_021E3784
+_021E388A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E388C: .word MOD14_021E3AB0
+_021E3890: .word MOD14_021E38AC
+_021E3894: .word MOD14_021E3984
+_021E3898: .word 0x021E6674
+
+ thumb_func_start MOD14_021E389C
+MOD14_021E389C: ; 0x021E389C
+ push {r3, lr}
+ cmp r0, #0
+ beq _021E38A8
+ bl MOD14_021E37A8
+ pop {r3, pc}
+_021E38A8:
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD14_021E38AC
+MOD14_021E38AC: ; 0x021E38AC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #4]
+ ldr r5, [r4]
+ cmp r0, #3
+ bhi _021E3974
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021E38C4: ; jump table
+ .short _021E38CC - _021E38C4 - 2 ; case 0
+ .short _021E38DE - _021E38C4 - 2 ; case 1
+ .short _021E3924 - _021E38C4 - 2 ; case 2
+ .short _021E3942 - _021E38C4 - 2 ; case 3
+_021E38CC:
+ ldr r0, [r4, #8]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _021E3974
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E38DE:
+ ldrh r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021E3900
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x14]
+ mov r2, #0
+ add r3, r1, r0
+ str r3, [r4, #0x10]
+ ldr r0, [r5, #8]
+ mov r1, #5
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ ldrh r0, [r4, #0xc]
+ sub r0, r0, #1
+ strh r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_021E3900:
+ ldr r0, [r5, #8]
+ ldr r3, [r4, #0x18]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020179E0
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _021E3978 ; =0x04001050
+ mov r1, #4
+ mov r2, #8
+ mov r3, #0
+ bl G2x_SetBlendAlpha_
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E3924:
+ ldr r3, [r5, #0x10]
+ ldr r0, [r5, #8]
+ lsl r5, r3, #2
+ ldr r3, _021E397C ; =0x021E6668
+ mov r1, #6
+ ldr r3, [r3, r5]
+ mov r2, #0
+ bl FUN_020179E0
+ mov r0, #0
+ strh r0, [r4, #0xe]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E3942:
+ mov r1, #0xe
+ ldrsh r3, [r4, r1]
+ add r0, r5, r3
+ add r0, #0xd4
+ ldrb r2, [r0]
+ add r0, r5, r3
+ add r0, #0xe4
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ orr r2, r0
+ ldr r0, _021E3980 ; =0x04001052
+ strh r2, [r0]
+ ldrsh r0, [r4, r1]
+ add r0, r0, #1
+ strh r0, [r4, #0xe]
+ ldrsh r0, [r4, r1]
+ cmp r0, #0x10
+ blt _021E3974
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02020130
+ add r0, r5, #0
+ bl MOD14_021E3798
+_021E3974:
+ pop {r3, r4, r5, pc}
+ nop
+_021E3978: .word 0x04001050
+_021E397C: .word 0x021E6668
+_021E3980: .word 0x04001052
+
+ thumb_func_start MOD14_021E3984
+MOD14_021E3984: ; 0x021E3984
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #4]
+ ldr r5, [r4]
+ cmp r0, #4
+ bls _021E3992
+ b _021E3AA2
+_021E3992:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021E399E: ; jump table
+ .short _021E39A8 - _021E399E - 2 ; case 0
+ .short _021E39CE - _021E399E - 2 ; case 1
+ .short _021E3A0C - _021E399E - 2 ; case 2
+ .short _021E3A52 - _021E399E - 2 ; case 3
+ .short _021E3A70 - _021E399E - 2 ; case 4
+_021E39A8:
+ ldr r0, [r4, #8]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _021E3AA2
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021E3AA4 ; =0x04001050
+ mov r1, #4
+ mov r2, #8
+ mov r3, #0x10
+ bl G2x_SetBlendAlpha_
+ mov r0, #0xf
+ strh r0, [r4, #0xe]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E39CE:
+ mov r1, #0xe
+ ldrsh r0, [r4, r1]
+ sub r0, r0, #1
+ strh r0, [r4, #0xe]
+ ldrsh r3, [r4, r1]
+ add r0, r5, r3
+ add r0, #0xd4
+ ldrb r2, [r0]
+ add r0, r5, r3
+ add r0, #0xe4
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ orr r2, r0
+ ldr r0, _021E3AA8 ; =0x04001052
+ strh r2, [r0]
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ bne _021E3AA2
+ ldr r3, [r5, #0x10]
+ ldr r0, [r5, #8]
+ lsl r5, r3, #2
+ ldr r3, _021E3AAC ; =0x021E6668
+ mov r1, #6
+ ldr r3, [r3, r5]
+ mov r2, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E3A0C:
+ ldrh r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021E3A2E
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x14]
+ mov r2, #0
+ add r3, r1, r0
+ str r3, [r4, #0x10]
+ ldr r0, [r5, #8]
+ mov r1, #5
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ ldrh r0, [r4, #0xc]
+ sub r0, r0, #1
+ strh r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_021E3A2E:
+ ldr r0, [r5, #8]
+ ldr r3, [r4, #0x18]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020179E0
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _021E3AA4 ; =0x04001050
+ mov r1, #4
+ mov r2, #8
+ mov r3, #0
+ bl G2x_SetBlendAlpha_
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E3A52:
+ ldr r3, [r5, #0x10]
+ ldr r0, [r5, #8]
+ lsl r5, r3, #2
+ ldr r3, _021E3AAC ; =0x021E6668
+ mov r1, #6
+ ldr r3, [r3, r5]
+ mov r2, #0
+ bl FUN_020179E0
+ mov r0, #0
+ strh r0, [r4, #0xe]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E3A70:
+ mov r1, #0xe
+ ldrsh r3, [r4, r1]
+ add r0, r5, r3
+ add r0, #0xd4
+ ldrb r2, [r0]
+ add r0, r5, r3
+ add r0, #0xe4
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ orr r2, r0
+ ldr r0, _021E3AA8 ; =0x04001052
+ strh r2, [r0]
+ ldrsh r0, [r4, r1]
+ add r0, r0, #1
+ strh r0, [r4, #0xe]
+ ldrsh r0, [r4, r1]
+ cmp r0, #0x10
+ blt _021E3AA2
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02020130
+ add r0, r5, #0
+ bl MOD14_021E3798
+_021E3AA2:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E3AA4: .word 0x04001050
+_021E3AA8: .word 0x04001052
+_021E3AAC: .word 0x021E6668
+
+ thumb_func_start MOD14_021E3AB0
+MOD14_021E3AB0: ; 0x021E3AB0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #4]
+ ldr r0, [r4]
+ cmp r1, #3
+ bhi _021E3B4C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021E3AC8: ; jump table
+ .short _021E3AD0 - _021E3AC8 - 2 ; case 0
+ .short _021E3ADA - _021E3AC8 - 2 ; case 1
+ .short _021E3B12 - _021E3AC8 - 2 ; case 2
+ .short _021E3B48 - _021E3AC8 - 2 ; case 3
+_021E3AD0:
+ mov r1, #0xf
+ strh r1, [r4, #0xe]
+ ldr r1, [r4, #4]
+ add r1, r1, #1
+ str r1, [r4, #4]
+_021E3ADA:
+ mov r2, #0xe
+ ldrsh r1, [r4, r2]
+ sub r1, r1, #1
+ strh r1, [r4, #0xe]
+ ldrsh r5, [r4, r2]
+ add r1, r0, r5
+ add r1, #0xd4
+ ldrb r3, [r1]
+ add r1, r0, r5
+ add r1, #0xe4
+ ldrb r1, [r1]
+ lsl r1, r1, #8
+ orr r3, r1
+ ldr r1, _021E3B50 ; =0x04001052
+ strh r3, [r1]
+ ldrsh r1, [r4, r2]
+ cmp r1, #0
+ bne _021E3B4C
+ mov r2, #0
+ ldr r0, [r0, #8]
+ mov r1, #6
+ add r3, r2, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E3B12:
+ ldrh r1, [r4, #0xc]
+ cmp r1, #0
+ beq _021E3B34
+ ldr r2, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ add r3, r2, r1
+ str r3, [r4, #0x10]
+ ldr r0, [r0, #8]
+ mov r1, #5
+ mov r2, #0
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ ldrh r0, [r4, #0xc]
+ sub r0, r0, #1
+ strh r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_021E3B34:
+ ldr r0, [r0, #8]
+ ldr r3, [r4, #0x18]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021E3B48:
+ bl MOD14_021E3798
+_021E3B4C:
+ pop {r3, r4, r5, pc}
+ nop
+_021E3B50: .word 0x04001052
+
+ thumb_func_start MOD14_021E3B54
+MOD14_021E3B54: ; 0x021E3B54
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021E3B7C
+ ldr r1, [r4, #0x10]
+ cmp r1, #1
+ beq _021E3B66
+ cmp r1, #2
+ beq _021E3B72
+ pop {r4, pc}
+_021E3B66:
+ bl MOD14_021E3C94
+ add r0, r4, #0
+ bl MOD14_021E41C0
+ pop {r4, pc}
+_021E3B72:
+ bl MOD14_021E3E1C
+ add r0, r4, #0
+ bl MOD14_021E44E0
+_021E3B7C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3B80
+MOD14_021E3B80: ; 0x021E3B80
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021E3BA2
+ bl MOD14_021E37A8
+ cmp r0, #0
+ beq _021E3B9E
+ ldr r0, [r4, #0x10]
+ cmp r0, #1
+ bne _021E3B9A
+ add r0, r4, #0
+ bl MOD14_021E4790
+_021E3B9A:
+ mov r0, #1
+ pop {r4, pc}
+_021E3B9E:
+ mov r0, #0
+ pop {r4, pc}
+_021E3BA2:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3BA8
+MOD14_021E3BA8: ; 0x021E3BA8
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021E3BD0
+ ldr r1, [r4, #0x10]
+ cmp r1, #1
+ beq _021E3BBA
+ cmp r1, #2
+ beq _021E3BCC
+ pop {r4, pc}
+_021E3BBA:
+ bl MOD14_021E4764
+ add r0, r4, #0
+ bl MOD14_021E3D38
+ add r0, r4, #0
+ bl MOD14_021E43E8
+ pop {r4, pc}
+_021E3BCC:
+ bl MOD14_021E46E4
+_021E3BD0:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3BD4
+MOD14_021E3BD4: ; 0x021E3BD4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD14_021DC46C
+ cmp r0, #0
+ ble _021E3C04
+ add r2, r4, #0
+ add r2, #0x80
+ ldr r2, [r2]
+ add r1, r4, #0
+ sub r2, r2, r0
+ add r0, r4, #0
+ add r0, #0x80
+ add r4, #0x80
+ str r2, [r0]
+ ldr r0, [r4]
+ add r1, #0x80
+ cmp r0, #0
+ bge _021E3C24
+ ldr r0, [r1]
+ add r0, #0xa
+ str r0, [r1]
+ pop {r4, pc}
+_021E3C04:
+ add r2, r4, #0
+ add r2, #0x80
+ ldr r2, [r2]
+ add r1, r4, #0
+ sub r2, r2, r0
+ add r0, r4, #0
+ add r0, #0x80
+ add r4, #0x80
+ str r2, [r0]
+ ldr r0, [r4]
+ add r1, #0x80
+ cmp r0, #0xa
+ blt _021E3C24
+ ldr r0, [r1]
+ sub r0, #0xa
+ str r0, [r1]
+_021E3C24:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3C28
+MOD14_021E3C28: ; 0x021E3C28
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD14_021DC46C
+ add r2, r4, #0
+ add r2, #0x80
+ ldr r2, [r2]
+ add r1, r4, #0
+ add r2, r2, r0
+ add r0, r4, #0
+ add r0, #0x80
+ add r4, #0x80
+ str r2, [r0]
+ ldr r0, [r4]
+ add r1, #0x80
+ cmp r0, #0
+ bge _021E3C54
+ ldr r0, [r1]
+ add r0, #8
+ str r0, [r1]
+ pop {r4, pc}
+_021E3C54:
+ cmp r0, #8
+ blt _021E3C5E
+ ldr r0, [r1]
+ sub r0, #8
+ str r0, [r1]
+_021E3C5E:
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E3C60
+MOD14_021E3C60: ; 0x021E3C60
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021E3C90
+ bl MOD14_021E37A8
+ cmp r0, #0
+ beq _021E3C8C
+ ldr r0, [r4, #0x10]
+ cmp r0, #1
+ bne _021E3C82
+ add r0, r4, #0
+ bl MOD14_021E4790
+ add r0, r4, #0
+ bl MOD14_021E3BD4
+ b _021E3C88
+_021E3C82:
+ add r0, r4, #0
+ bl MOD14_021E3C28
+_021E3C88:
+ mov r0, #1
+ pop {r4, pc}
+_021E3C8C:
+ mov r0, #0
+ pop {r4, pc}
+_021E3C90:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E3C94
+MOD14_021E3C94: ; 0x021E3C94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ str r0, [sp, #8]
+ ldr r0, [r0]
+ bl MOD14_021DDD84
+ add r7, r0, #0
+ ldr r0, [sp, #8]
+ ldr r0, [r0, #4]
+ bl MOD14_021DC474
+ add r4, r0, #3
+ cmp r4, #0x12
+ blt _021E3CB2
+ sub r4, #0x12
+_021E3CB2:
+ ldr r5, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ str r0, [sp, #0x10]
+ add r0, #0x18
+ mov r6, #0xc0
+ str r0, [sp, #0x10]
+_021E3CC2:
+ add r0, sp, #0x14
+ bl FUN_020B1A24
+ add r0, sp, #0x14
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ mov r3, #2
+ bl MOD14_021E1FF8
+ add r0, r7, #0
+ bl MOD14_021E2184
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x10]
+ add r0, sp, #0x38
+ add r1, sp, #0x14
+ bl MOD14_021DDDB4
+ mov r0, #0x30
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ mov r3, #0x17
+ ldr r0, [r0, #0xc]
+ add r1, sp, #0x38
+ mov r2, #0x10
+ lsl r3, r3, #4
+ bl MOD14_021DDDD4
+ str r0, [r5, #0x54]
+ cmp r0, #0
+ bne _021E3D14
+ bl ErrorHandling
+_021E3D14:
+ sub r4, r4, #1
+ bpl _021E3D1A
+ mov r4, #0x11
+_021E3D1A:
+ ldr r0, [sp, #0xc]
+ add r6, #0x20
+ add r0, r0, #1
+ add r5, r5, #4
+ str r0, [sp, #0xc]
+ cmp r0, #0xa
+ blt _021E3CC2
+ ldr r0, [sp, #8]
+ mov r1, #0
+ add r0, #0x80
+ str r0, [sp, #8]
+ str r1, [r0]
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3D38
+MOD14_021E3D38: ; 0x021E3D38
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD14_021DDD84
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #4]
+ bl MOD14_021DC474
+ ldr r1, [sp, #4]
+ ldr r2, [r1, #4]
+ mov r1, #0xa0
+ ldrsh r7, [r2, r1]
+ cmp r7, #0
+ ble _021E3D74
+ sub r0, r0, r7
+ add r5, r0, #4
+ cmp r5, #0x12
+ blt _021E3D64
+ sub r5, #0x12
+_021E3D64:
+ ldr r0, [sp, #4]
+ mov r6, #1
+ add r0, #0x80
+ ldr r0, [r0]
+ sub r4, r0, #1
+ bpl _021E3D90
+ add r4, #0xa
+ b _021E3D90
+_021E3D74:
+ sub r0, r0, r7
+ sub r5, r0, #3
+ bpl _021E3D7C
+ add r5, #0x12
+_021E3D7C:
+ ldr r0, [sp, #4]
+ mov r6, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ mvn r6, r6
+ add r4, r0, #6
+ cmp r4, #0xa
+ blt _021E3D8E
+ sub r4, #0xa
+_021E3D8E:
+ neg r7, r7
+_021E3D90:
+ ldr r0, [sp, #4]
+ str r7, [r0, #0x7c]
+ mov r0, #0
+ str r0, [sp, #8]
+ cmp r7, #0
+ ble _021E3DD4
+_021E3D9C:
+ mov r0, #0
+ str r0, [sp]
+ lsl r2, r4, #5
+ ldr r0, [sp, #0xc]
+ add r1, r5, #0
+ add r2, #0xc0
+ mov r3, #2
+ bl MOD14_021E1FF8
+ add r5, r5, r6
+ bpl _021E3DB6
+ mov r5, #0x11
+ b _021E3DBC
+_021E3DB6:
+ cmp r5, #0x12
+ blt _021E3DBC
+ mov r5, #0
+_021E3DBC:
+ sub r4, r4, r6
+ bpl _021E3DC4
+ mov r4, #9
+ b _021E3DCA
+_021E3DC4:
+ cmp r4, #0xa
+ blt _021E3DCA
+ mov r4, #0
+_021E3DCA:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, r7
+ blt _021E3D9C
+_021E3DD4:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E3DD8
+MOD14_021E3DD8: ; 0x021E3DD8
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_021E3DE0:
+ ldr r0, [r5, #0x54]
+ cmp r0, #0
+ beq _021E3DEC
+ bl FUN_0201FFC8
+ str r6, [r5, #0x54]
+_021E3DEC:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xa
+ blt _021E3DE0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3DF8
+MOD14_021E3DF8: ; 0x021E3DF8
+ cmp r0, #0
+ bne _021E3E08
+ cmp r1, #0
+ bne _021E3E04
+ mov r0, #1
+ bx lr
+_021E3E04:
+ mov r0, #0
+ bx lr
+_021E3E08:
+ mov r3, #1
+ sub r2, r0, #1
+ lsl r3, r2
+ tst r1, r3
+ beq _021E3E18
+ lsl r0, r0, #1
+ add r0, r0, #1
+ bx lr
+_021E3E18:
+ lsl r0, r0, #1
+ bx lr
+
+ thumb_func_start MOD14_021E3E1C
+MOD14_021E3E1C: ; 0x021E3E1C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x60
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD14_021DC484
+ str r0, [sp, #0x14]
+ add r0, sp, #0x18
+ bl FUN_020B1A24
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #6
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ add r0, sp, #0x18
+ str r0, [sp, #0x10]
+ mov r0, #0x12
+ mov r1, #0x75
+ mov r2, #1
+ bl FUN_02006AE4
+ add r7, r5, #0
+ mov r6, #0
+ add r4, r5, #0
+ add r7, #0x18
+_021E3E58:
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ add r3, r5, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r3, #0xac
+ ldr r3, [r3]
+ add r0, sp, #0x3c
+ add r1, sp, #0x18
+ add r2, r7, #0
+ bl MOD14_021DDDB4
+ mov r0, #0x30
+ str r0, [sp]
+ mov r0, #2
+ mov r2, #0xf0
+ str r0, [sp, #4]
+ add r3, r2, #0
+ ldr r0, [r5, #0xc]
+ add r1, sp, #0x3c
+ add r3, #0x80
+ bl MOD14_021DDDD4
+ str r0, [r4, #0x34]
+ cmp r0, #0
+ bne _021E3E94
+ bl ErrorHandling
+_021E3E94:
+ ldr r1, [sp, #0x14]
+ add r0, r6, #0
+ bl MOD14_021E3DF8
+ add r1, r0, #0
+ ldr r0, [r4, #0x34]
+ bl FUN_02020130
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #8
+ blt _021E3E58
+ ldr r0, [r5, #4]
+ bl MOD14_021DC47C
+ add r5, #0x80
+ str r0, [r5]
+ add sp, #0x60
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3EBC
+MOD14_021E3EBC: ; 0x021E3EBC
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_021E3EC4:
+ ldr r0, [r5, #0x34]
+ cmp r0, #0
+ beq _021E3ED0
+ bl FUN_0201FFC8
+ str r6, [r5, #0x34]
+_021E3ED0:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #8
+ blt _021E3EC4
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E3EDC
+MOD14_021E3EDC: ; 0x021E3EDC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0
+ beq _021E3EF2
+ sub r0, r0, #1
+ add sp, #0xc
+ strh r0, [r4, #0x16]
+ pop {r4, r5, pc}
+_021E3EF2:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021E3F28
+ sub r0, r0, #1
+ strh r0, [r4, #0x14]
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x10]
+ add r0, r1, r0
+ str r0, [r4, #8]
+ asr r0, r0, #0xc
+ lsl r1, r0, #2
+ ldr r0, _021E3F58 ; =0x021E66A8
+ ldrsh r0, [r0, r1]
+ lsl r0, r0, #0xc
+ str r0, [sp]
+ ldr r0, _021E3F5C ; =0x021E66AA
+ ldrsh r0, [r0, r1]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r4, r5, pc}
+_021E3F28:
+ ldr r0, [r4, #0xc]
+ asr r0, r0, #0xc
+ lsl r1, r0, #2
+ ldr r0, _021E3F58 ; =0x021E66A8
+ ldrsh r0, [r0, r1]
+ lsl r0, r0, #0xc
+ str r0, [sp]
+ ldr r0, _021E3F5C ; =0x021E66AA
+ ldrsh r0, [r0, r1]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_02020044
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E4010
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021E3F58: .word 0x021E66A8
+_021E3F5C: .word 0x021E66AA
+
+ thumb_func_start MOD14_021E3F60
+MOD14_021E3F60: ; 0x021E3F60
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0
+ beq _021E3F76
+ sub r0, r0, #1
+ add sp, #0xc
+ strh r0, [r4, #0x16]
+ pop {r4, r5, pc}
+_021E3F76:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021E3FB2
+ sub r0, r0, #1
+ strh r0, [r4, #0x14]
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x10]
+ add r0, r1, r0
+ str r0, [r4, #8]
+ asr r0, r0, #0xc
+ ldr r1, _021E4008 ; =0x021E66A8
+ lsl r0, r0, #2
+ ldrsh r2, [r1, r0]
+ mov r1, #1
+ lsl r1, r1, #8
+ sub r1, r1, r2
+ lsl r1, r1, #0xc
+ str r1, [sp]
+ ldr r1, _021E400C ; =0x021E66AA
+ ldrsh r0, [r1, r0]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r4, r5, pc}
+_021E3FB2:
+ ldr r0, [r4, #0xc]
+ ldr r1, _021E4008 ; =0x021E66A8
+ asr r0, r0, #0xc
+ lsl r0, r0, #2
+ ldrsh r2, [r1, r0]
+ mov r1, #1
+ lsl r1, r1, #8
+ sub r1, r1, r2
+ lsl r1, r1, #0xc
+ str r1, [sp]
+ ldr r1, _021E400C ; =0x021E66AA
+ ldrsh r0, [r1, r0]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_02020044
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _021E3FFC
+ ldrh r0, [r4, #0x28]
+ add sp, #0xc
+ strh r0, [r4, #0x14]
+ ldr r0, [r4, #0x1c]
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x24]
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x20]
+ str r0, [r4, #0xc]
+ ldrh r0, [r4, #0x2a]
+ strh r0, [r4, #0x16]
+ mov r0, #0
+ str r0, [r4, #0x18]
+ pop {r4, r5, pc}
+_021E3FFC:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E4010
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021E4008: .word 0x021E66A8
+_021E400C: .word 0x021E66AA
+
+ thumb_func_start MOD14_021E4010
+MOD14_021E4010: ; 0x021E4010
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r4, [r1]
+ ldr r0, _021E4034 ; =0x000001CB
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _021E4022
+ bl ErrorHandling
+_021E4022:
+ ldr r0, _021E4034 ; =0x000001CB
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ nop
+_021E4034: .word 0x000001CB
+
+ thumb_func_start MOD14_021E4038
+MOD14_021E4038: ; 0x021E4038
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r6, r0, #0
+ add r5, r2, #0
+ str r3, [sp]
+ ldr r4, [sp, #0x20]
+ cmp r7, #0
+ bne _021E404C
+ bl ErrorHandling
+_021E404C:
+ cmp r4, #0
+ beq _021E4052
+ sub r4, r4, #1
+_021E4052:
+ str r6, [r5]
+ ldr r0, [sp, #0x1c]
+ str r7, [r5, #4]
+ strh r0, [r5, #0x14]
+ ldr r0, [sp, #0x24]
+ strh r4, [r5, #0x16]
+ cmp r0, #0
+ beq _021E4066
+ ldr r4, _021E40A4 ; =MOD14_021E3F60
+ b _021E4068
+_021E4066:
+ ldr r4, _021E40A8 ; =MOD14_021E3EDC
+_021E4068:
+ ldr r0, [sp]
+ ldr r1, _021E40AC ; =0x021E6680
+ lsl r0, r0, #1
+ ldrh r0, [r1, r0]
+ lsl r0, r0, #0xc
+ str r0, [r5, #8]
+ ldr r0, [sp, #0x18]
+ lsl r0, r0, #1
+ ldrh r0, [r1, r0]
+ lsl r1, r0, #0xc
+ str r1, [r5, #0xc]
+ ldr r0, [r5, #8]
+ sub r0, r1, r0
+ ldr r1, [sp, #0x1c]
+ bl _s32_div_f
+ str r0, [r5, #0x10]
+ mov r2, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ str r2, [r5, #0x18]
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021E40A2
+ ldr r0, _021E40B0 ; =0x000001CB
+ ldrb r1, [r6, r0]
+ add r1, r1, #1
+ strb r1, [r6, r0]
+_021E40A2:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E40A4: .word MOD14_021E3F60
+_021E40A8: .word MOD14_021E3EDC
+_021E40AC: .word 0x021E6680
+_021E40B0: .word 0x000001CB
+
+ thumb_func_start MOD14_021E40B4
+MOD14_021E40B4: ; 0x021E40B4
+ push {r4, lr}
+ add r4, r1, #0
+ mov r0, #1
+ str r0, [r4, #0x18]
+ strh r2, [r4, #0x2a]
+ cmp r2, #0
+ beq _021E40C8
+ ldrh r0, [r4, #0x2a]
+ sub r0, r0, #1
+ strh r0, [r4, #0x2a]
+_021E40C8:
+ ldr r0, [sp, #8]
+ sub r2, r0, r3
+ bpl _021E40D4
+ mov r0, #0
+ mvn r0, r0
+ mul r2, r0
+_021E40D4:
+ add r1, r2, #0
+ mov r0, #6
+ mul r1, r0
+ ldr r2, _021E40FC ; =0x021E6680
+ lsl r0, r3, #1
+ ldrh r0, [r2, r0]
+ strh r1, [r4, #0x28]
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x1c]
+ ldr r0, [sp, #8]
+ lsl r0, r0, #1
+ ldrh r0, [r2, r0]
+ lsl r2, r0, #0xc
+ str r2, [r4, #0x20]
+ ldr r0, [r4, #0x1c]
+ sub r0, r2, r0
+ bl _s32_div_f
+ str r0, [r4, #0x24]
+ pop {r4, pc}
+ .align 2, 0
+_021E40FC: .word 0x021E6680
+
+ thumb_func_start MOD14_021E4100
+MOD14_021E4100: ; 0x021E4100
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ mov r0, #0x73
+ add r4, r1, #0
+ lsl r0, r0, #2
+ ldrb r3, [r4, r0]
+ ldr r2, [r4]
+ cmp r3, #0
+ beq _021E411E
+ cmp r3, #1
+ beq _021E4180
+ cmp r3, #2
+ beq _021E4198
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+_021E411E:
+ sub r1, r0, #2
+ ldrb r1, [r4, r1]
+ mov r6, #0x2c
+ add r3, r1, #1
+ sub r1, r0, #2
+ strb r3, [r4, r1]
+ sub r0, r0, #2
+ ldrb r3, [r4, r0]
+ mov r1, #6
+ mov r0, #7
+ sub r5, r1, r3
+ sub r0, r0, r3
+ str r0, [sp]
+ add r0, r5, #1
+ mul r1, r0
+ str r1, [sp, #4]
+ mov r3, #0
+ str r3, [sp, #8]
+ lsl r1, r5, #2
+ add r1, r2, r1
+ str r3, [sp, #0xc]
+ add r2, r4, #0
+ ldr r1, [r1, #0x54]
+ add r2, #8
+ mul r6, r5
+ add r0, r4, #0
+ add r2, r2, r6
+ bl MOD14_021E4038
+ ldr r0, _021E41B0 ; =0x000001CD
+ mov r1, #4
+ strb r1, [r4, r0]
+ sub r1, r0, #3
+ ldrb r1, [r4, r1]
+ cmp r1, #6
+ blo _021E4170
+ mov r1, #2
+ sub r0, r0, #1
+ add sp, #0x10
+ strb r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_021E4170:
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021E41AC
+ mov r1, #1
+ sub r0, r0, #1
+ add sp, #0x10
+ strb r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_021E4180:
+ add r1, r0, #1
+ ldrb r1, [r4, r1]
+ sub r2, r1, #2
+ add r1, r0, #1
+ strb r2, [r4, r1]
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _021E41AC
+ mov r1, #0
+ add sp, #0x10
+ strb r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_021E4198:
+ sub r1, r0, #1
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _021E41AC
+ add r1, r3, #1
+ strb r1, [r4, r0]
+ ldr r1, _021E41B4 ; =MOD14_021E41B8
+ add r0, r4, #0
+ bl MOD14_021DDF30
+_021E41AC:
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021E41B0: .word 0x000001CD
+_021E41B4: .word MOD14_021E41B8
+
+ thumb_func_start MOD14_021E41B8
+MOD14_021E41B8: ; 0x021E41B8
+ ldr r3, _021E41BC ; =MOD14_021E3798
+ bx r3
+ .align 2, 0
+_021E41BC: .word MOD14_021E3798
+
+ thumb_func_start MOD14_021E41C0
+MOD14_021E41C0: ; 0x021E41C0
+ push {r3, r4, r5, lr}
+ mov r1, #0x1d
+ add r4, r0, #0
+ mov r0, #0xa
+ lsl r1, r1, #4
+ bl FUN_02016998
+ add r5, r0, #0
+ beq _021E4208
+ mov r1, #0x73
+ mov r0, #0
+ lsl r1, r1, #2
+ str r4, [r5]
+ strb r0, [r5, r1]
+ sub r2, r1, #2
+ strb r0, [r5, r2]
+ sub r1, r1, #1
+ strb r0, [r5, r1]
+ mov r1, #7
+ add r3, r0, #0
+ lsl r1, r1, #6
+_021E41EA:
+ add r2, r5, r0
+ add r0, r0, #1
+ strb r3, [r2, r1]
+ cmp r0, #8
+ blt _021E41EA
+ ldr r1, _021E420C ; =MOD14_021E4100
+ add r0, r4, #0
+ add r2, r5, #0
+ bl MOD14_021E3784
+ cmp r0, #0
+ bne _021E4208
+ add r0, r5, #0
+ bl FUN_02016A18
+_021E4208:
+ pop {r3, r4, r5, pc}
+ nop
+_021E420C: .word MOD14_021E4100
+
+ thumb_func_start MOD14_021E4210
+MOD14_021E4210: ; 0x021E4210
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ mov r2, #0x73
+ lsl r2, r2, #2
+ add r0, r1, #0
+ ldrb r3, [r0, r2]
+ str r1, [sp, #0x10]
+ ldr r7, [r1]
+ cmp r3, #0
+ beq _021E422E
+ cmp r3, #1
+ bne _021E422A
+ b _021E43C6
+_021E422A:
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+_021E422E:
+ ldr r1, [r7, #4]
+ mov r0, #0xa0
+ ldrsh r0, [r1, r0]
+ cmp r0, #0
+ ble _021E4252
+ add r0, r7, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ add r4, r0, #5
+ cmp r4, #0xa
+ blt _021E4246
+ sub r4, #0xa
+_021E4246:
+ mov r5, #0
+ mov r0, #7
+ mvn r5, r5
+ mov r6, #6
+ str r0, [sp, #0x24]
+ b _021E4260
+_021E4252:
+ add r0, r7, #0
+ add r0, #0x80
+ ldr r4, [r0]
+ mov r5, #1
+ mov r0, #0
+ add r6, r5, #0
+ str r0, [sp, #0x24]
+_021E4260:
+ ldr r1, [r7, #0x7c]
+ mov r0, #0
+ str r0, [sp, #0x34]
+ cmp r1, #0
+ ble _021E42C2
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #0x38]
+ add r0, #8
+ str r0, [sp, #0x38]
+_021E4274:
+ ldr r0, [sp, #0x24]
+ add r3, r4, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x28]
+ add r0, r0, #6
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ add r1, r0, #0
+ ldr r2, [r1, #4]
+ lsl r1, r4, #2
+ ldr r1, [r2, r1]
+ mov r2, #0x2c
+ mul r3, r2
+ ldr r2, [sp, #0x38]
+ add r2, r2, r3
+ add r3, r6, #0
+ bl MOD14_021E4038
+ add r4, r4, r5
+ add r6, r6, r5
+ cmp r4, #0xa
+ blt _021E42AA
+ mov r4, #0
+ b _021E42B0
+_021E42AA:
+ cmp r4, #0
+ bge _021E42B0
+ mov r4, #9
+_021E42B0:
+ ldr r0, [sp, #0x28]
+ ldr r1, [r7, #0x7c]
+ add r0, r0, #6
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x34]
+ add r0, r0, #1
+ str r0, [sp, #0x34]
+ cmp r0, r1
+ blt _021E4274
+_021E42C2:
+ mov r0, #6
+ sub r0, r0, r1
+ str r0, [sp, #0x30]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x30]
+ cmp r0, #0
+ ble _021E4328
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #0x3c]
+ add r0, #8
+ str r0, [sp, #0x3c]
+_021E42DA:
+ ldr r0, [r7, #0x7c]
+ add r1, r5, #0
+ mul r1, r0
+ sub r1, r6, r1
+ str r1, [sp]
+ mov r1, #6
+ mul r1, r0
+ str r1, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ add r3, r4, #0
+ add r1, r0, #0
+ ldr r2, [r1, #4]
+ lsl r1, r4, #2
+ ldr r1, [r2, r1]
+ mov r2, #0x2c
+ mul r3, r2
+ ldr r2, [sp, #0x3c]
+ add r2, r2, r3
+ add r3, r6, #0
+ bl MOD14_021E4038
+ add r4, r4, r5
+ add r6, r6, r5
+ cmp r4, #0xa
+ blt _021E4316
+ mov r4, #0
+ b _021E431C
+_021E4316:
+ cmp r4, #0
+ bge _021E431C
+ mov r4, #9
+_021E431C:
+ ldr r0, [sp, #0x14]
+ add r1, r0, #1
+ ldr r0, [sp, #0x30]
+ str r1, [sp, #0x14]
+ cmp r1, r0
+ blt _021E42DA
+_021E4328:
+ ldr r1, [r7, #4]
+ mov r0, #0xa0
+ ldrsh r0, [r1, r0]
+ cmp r0, #0
+ ble _021E433E
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ ldr r0, [r7, #0x7c]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x18]
+ b _021E434C
+_021E433E:
+ mov r0, #7
+ str r0, [sp, #0x1c]
+ ldr r0, [r7, #0x7c]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ sub r0, r1, r0
+ str r0, [sp, #0x18]
+_021E434C:
+ ldr r0, [sp, #0x20]
+ mov r6, #0
+ cmp r0, #0
+ ble _021E43B4
+ ldr r0, [sp, #0x10]
+ str r6, [sp, #0x2c]
+ str r0, [sp, #0x40]
+ add r0, #8
+ str r0, [sp, #0x40]
+_021E435E:
+ ldr r0, [sp, #0x18]
+ add r3, r4, #0
+ str r0, [sp]
+ ldr r0, [r7, #0x7c]
+ sub r1, r0, r6
+ mov r0, #6
+ mul r0, r1
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x2c]
+ add r0, r0, #6
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ add r1, r0, #0
+ ldr r2, [r1, #4]
+ lsl r1, r4, #2
+ ldr r1, [r2, r1]
+ mov r2, #0x2c
+ mul r3, r2
+ ldr r2, [sp, #0x40]
+ add r2, r2, r3
+ ldr r3, [sp, #0x1c]
+ bl MOD14_021E4038
+ ldr r0, [sp, #0x18]
+ add r4, r4, r5
+ add r0, r0, r5
+ str r0, [sp, #0x18]
+ cmp r4, #0xa
+ blt _021E43A0
+ sub r4, #0xa
+ b _021E43A6
+_021E43A0:
+ cmp r4, #0
+ bge _021E43A6
+ add r4, #0xa
+_021E43A6:
+ ldr r0, [sp, #0x2c]
+ add r6, r6, #1
+ add r0, r0, #6
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x20]
+ cmp r6, r0
+ blt _021E435E
+_021E43B4:
+ mov r1, #0x73
+ ldr r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldrb r0, [r0, r1]
+ add r2, r0, #1
+ ldr r0, [sp, #0x10]
+ add sp, #0x44
+ strb r2, [r0, r1]
+ pop {r4, r5, r6, r7, pc}
+_021E43C6:
+ ldr r0, [sp, #0x10]
+ sub r1, r2, #1
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021E43DE
+ ldr r0, [sp, #0x10]
+ add r1, r3, #1
+ strb r1, [r0, r2]
+ ldr r1, _021E43E4 ; =MOD14_021E41B8
+ add r2, r7, #0
+ bl MOD14_021DDF30
+_021E43DE:
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021E43E4: .word MOD14_021E41B8
+
+ thumb_func_start MOD14_021E43E8
+MOD14_021E43E8: ; 0x021E43E8
+ push {r3, r4, r5, lr}
+ mov r1, #0x1d
+ add r4, r0, #0
+ mov r0, #0xa
+ lsl r1, r1, #4
+ bl FUN_02016998
+ add r5, r0, #0
+ beq _021E4436
+ add r0, r4, #0
+ mov r1, #0x73
+ lsl r1, r1, #2
+ str r4, [r5]
+ add r0, #0x54
+ str r0, [r5, #4]
+ mov r0, #0
+ strb r0, [r5, r1]
+ sub r2, r1, #2
+ strb r0, [r5, r2]
+ sub r1, r1, #1
+ strb r0, [r5, r1]
+ mov r1, #7
+ add r3, r0, #0
+ lsl r1, r1, #6
+_021E4418:
+ add r2, r5, r0
+ add r0, r0, #1
+ strb r3, [r2, r1]
+ cmp r0, #0xa
+ blt _021E4418
+ ldr r1, _021E4438 ; =MOD14_021E4210
+ add r0, r4, #0
+ add r2, r5, #0
+ bl MOD14_021E3784
+ cmp r0, #0
+ bne _021E4436
+ add r0, r5, #0
+ bl FUN_02016A18
+_021E4436:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E4438: .word MOD14_021E4210
+
+ thumb_func_start MOD14_021E443C
+MOD14_021E443C: ; 0x021E443C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ ldr r0, [r1]
+ mov r2, #0x73
+ str r0, [sp, #0x18]
+ lsl r2, r2, #2
+ add r0, r1, #0
+ ldrb r3, [r0, r2]
+ str r1, [sp, #0x10]
+ cmp r3, #0
+ beq _021E445A
+ cmp r3, #1
+ beq _021E44BE
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+_021E445A:
+ ldr r0, [sp, #0x18]
+ mov r5, #0
+ add r0, #0x80
+ ldr r4, [r0]
+ add r0, r1, #0
+ str r0, [sp, #0x1c]
+ add r0, #8
+ mov r7, #6
+ str r5, [sp, #0x14]
+ mov r6, #0x24
+ str r0, [sp, #0x1c]
+_021E4470:
+ str r7, [sp]
+ str r6, [sp, #4]
+ ldr r1, [sp, #0x18]
+ lsl r2, r4, #2
+ add r1, r1, r2
+ str r5, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r2, #0x2c
+ add r3, r4, #0
+ mul r3, r2
+ ldr r2, [sp, #0x1c]
+ ldr r0, [sp, #0x10]
+ add r2, r2, r3
+ ldr r1, [r1, #0x34]
+ mov r3, #0
+ bl MOD14_021E4038
+ add r4, r4, #1
+ sub r6, r6, #6
+ sub r7, r7, #1
+ cmp r4, #8
+ blt _021E44A0
+ mov r4, #0
+_021E44A0:
+ ldr r0, [sp, #0x14]
+ add r5, r5, #6
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, #6
+ blt _021E4470
+ mov r1, #0x73
+ ldr r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldrb r0, [r0, r1]
+ add r2, r0, #1
+ ldr r0, [sp, #0x10]
+ add sp, #0x20
+ strb r2, [r0, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E44BE:
+ ldr r0, [sp, #0x10]
+ sub r1, r2, #1
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021E44D6
+ ldr r0, [sp, #0x10]
+ add r1, r3, #1
+ strb r1, [r0, r2]
+ ldr r1, _021E44DC ; =MOD14_021E41B8
+ ldr r2, [sp, #0x18]
+ bl MOD14_021DDF30
+_021E44D6:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E44DC: .word MOD14_021E41B8
+
+ thumb_func_start MOD14_021E44E0
+MOD14_021E44E0: ; 0x021E44E0
+ push {r3, r4, r5, lr}
+ mov r1, #0x1d
+ add r4, r0, #0
+ mov r0, #0xa
+ lsl r1, r1, #4
+ bl FUN_02016998
+ add r5, r0, #0
+ beq _021E4528
+ mov r1, #0x73
+ mov r0, #0
+ lsl r1, r1, #2
+ str r4, [r5]
+ strb r0, [r5, r1]
+ sub r2, r1, #2
+ strb r0, [r5, r2]
+ sub r1, r1, #1
+ strb r0, [r5, r1]
+ mov r1, #7
+ add r3, r0, #0
+ lsl r1, r1, #6
+_021E450A:
+ add r2, r5, r0
+ add r0, r0, #1
+ strb r3, [r2, r1]
+ cmp r0, #8
+ blt _021E450A
+ ldr r1, _021E452C ; =MOD14_021E443C
+ add r0, r4, #0
+ add r2, r5, #0
+ bl MOD14_021E3784
+ cmp r0, #0
+ bne _021E4528
+ add r0, r5, #0
+ bl FUN_02016A18
+_021E4528:
+ pop {r3, r4, r5, pc}
+ nop
+_021E452C: .word MOD14_021E443C
+
+ thumb_func_start MOD14_021E4530
+MOD14_021E4530: ; 0x021E4530
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ ldr r0, [r1]
+ mov r2, #0x73
+ str r0, [sp, #0x34]
+ lsl r2, r2, #2
+ add r0, r1, #0
+ ldrb r3, [r0, r2]
+ str r1, [sp, #0x10]
+ cmp r3, #0
+ beq _021E4550
+ cmp r3, #1
+ bne _021E454C
+ b _021E46C2
+_021E454C:
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+_021E4550:
+ ldr r0, [sp, #0x34]
+ ldr r0, [r0, #4]
+ bl MOD14_021DC46C
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x34]
+ add r0, #0x80
+ ldr r4, [r0]
+ ldr r0, [sp, #0x30]
+ cmp r0, #0
+ bge _021E4580
+ add r4, r4, #5
+ cmp r4, #8
+ blt _021E456E
+ sub r4, #8
+_021E456E:
+ ldr r0, [sp, #0x30]
+ mov r5, #0
+ neg r0, r0
+ str r0, [sp, #0x28]
+ mov r0, #0
+ mvn r5, r5
+ mov r6, #1
+ str r0, [sp, #0x18]
+ b _021E458A
+_021E4580:
+ str r0, [sp, #0x28]
+ mov r0, #7
+ mov r5, #1
+ mov r6, #6
+ str r0, [sp, #0x18]
+_021E458A:
+ ldr r0, [sp, #0x28]
+ mov r7, #0
+ add r0, r0, #6
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ ble _021E45EC
+ ldr r0, [sp, #0x10]
+ str r7, [sp, #0x1c]
+ str r0, [sp, #0x38]
+ add r0, #8
+ str r0, [sp, #0x38]
+_021E45A2:
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ ldr r0, [sp, #0x1c]
+ lsl r2, r4, #2
+ add r0, r0, #6
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ add r1, r1, r2
+ str r0, [sp, #0xc]
+ mov r2, #0x2c
+ add r3, r4, #0
+ mul r3, r2
+ ldr r2, [sp, #0x38]
+ ldr r0, [sp, #0x10]
+ add r2, r2, r3
+ ldr r1, [r1, #0x34]
+ add r3, r6, #0
+ bl MOD14_021E4038
+ sub r6, r6, r5
+ add r4, r4, r5
+ bpl _021E45D8
+ add r4, #8
+ b _021E45DE
+_021E45D8:
+ cmp r4, #8
+ blt _021E45DE
+ sub r4, #8
+_021E45DE:
+ ldr r0, [sp, #0x1c]
+ add r7, r7, #1
+ add r0, r0, #6
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x28]
+ cmp r7, r0
+ blt _021E45A2
+_021E45EC:
+ mov r0, #0
+ str r0, [sp, #0x24]
+ cmp r7, #8
+ bge _021E4658
+ ldr r0, [sp, #0x28]
+ mov r1, #6
+ mul r1, r0
+ ldr r0, [sp, #0x10]
+ str r1, [sp, #0x20]
+ str r0, [sp, #0x3c]
+ add r0, #8
+ str r0, [sp, #0x3c]
+_021E4604:
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x34]
+ sub r0, r0, r5
+ str r0, [sp, #0x18]
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ lsl r2, r4, #2
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x24]
+ add r1, r1, r2
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r2, #0x2c
+ add r3, r4, #0
+ mul r3, r2
+ ldr r2, [sp, #0x3c]
+ ldr r0, [sp, #0x10]
+ add r2, r2, r3
+ ldr r1, [r1, #0x34]
+ add r3, r6, #0
+ bl MOD14_021E4038
+ cmp r6, #0
+ beq _021E463E
+ cmp r6, #7
+ beq _021E463E
+ sub r6, r6, r5
+ b _021E4644
+_021E463E:
+ ldr r0, [sp, #0x24]
+ add r0, r0, #6
+ str r0, [sp, #0x24]
+_021E4644:
+ add r4, r4, r5
+ bpl _021E464C
+ add r4, #8
+ b _021E4652
+_021E464C:
+ cmp r4, #8
+ blt _021E4652
+ sub r4, #8
+_021E4652:
+ add r7, r7, #1
+ cmp r7, #8
+ blt _021E4604
+_021E4658:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0
+ bge _021E466C
+ mov r0, #7
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x28]
+ sub r1, r0, #2
+ ldr r0, [sp, #0x14]
+ sub r6, r0, r1
+ b _021E4674
+_021E466C:
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x28]
+ sub r6, r0, #2
+_021E4674:
+ ldr r0, [sp, #0x2c]
+ cmp r7, r0
+ bge _021E46B0
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #0x40]
+ add r0, #8
+ str r0, [sp, #0x40]
+_021E4682:
+ mov r1, #0x2c
+ add r2, r4, #0
+ mul r2, r1
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #0x10]
+ add r1, r1, r2
+ ldr r3, [sp, #0x14]
+ mov r2, #6
+ str r6, [sp]
+ bl MOD14_021E40B4
+ sub r6, r6, r5
+ add r4, r4, r5
+ bpl _021E46A2
+ add r4, #8
+ b _021E46A8
+_021E46A2:
+ cmp r4, #8
+ blt _021E46A8
+ sub r4, #8
+_021E46A8:
+ ldr r0, [sp, #0x2c]
+ add r7, r7, #1
+ cmp r7, r0
+ blt _021E4682
+_021E46B0:
+ mov r1, #0x73
+ ldr r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldrb r0, [r0, r1]
+ add r2, r0, #1
+ ldr r0, [sp, #0x10]
+ add sp, #0x44
+ strb r2, [r0, r1]
+ pop {r4, r5, r6, r7, pc}
+_021E46C2:
+ ldr r0, [sp, #0x10]
+ sub r1, r2, #1
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021E46DA
+ ldr r0, [sp, #0x10]
+ add r1, r3, #1
+ strb r1, [r0, r2]
+ ldr r1, _021E46E0 ; =MOD14_021E41B8
+ ldr r2, [sp, #0x34]
+ bl MOD14_021DDF30
+_021E46DA:
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021E46E0: .word MOD14_021E41B8
+
+ thumb_func_start MOD14_021E46E4
+MOD14_021E46E4: ; 0x021E46E4
+ push {r3, r4, r5, lr}
+ mov r1, #0x1d
+ add r4, r0, #0
+ mov r0, #0xa
+ lsl r1, r1, #4
+ bl FUN_02016998
+ add r5, r0, #0
+ beq _021E472C
+ mov r1, #0x73
+ mov r0, #0
+ lsl r1, r1, #2
+ str r4, [r5]
+ strb r0, [r5, r1]
+ sub r2, r1, #2
+ strb r0, [r5, r2]
+ sub r1, r1, #1
+ strb r0, [r5, r1]
+ mov r1, #7
+ add r3, r0, #0
+ lsl r1, r1, #6
+_021E470E:
+ add r2, r5, r0
+ add r0, r0, #1
+ strb r3, [r2, r1]
+ cmp r0, #8
+ blt _021E470E
+ ldr r1, _021E4730 ; =MOD14_021E4530
+ add r0, r4, #0
+ add r2, r5, #0
+ bl MOD14_021E3784
+ cmp r0, #0
+ bne _021E472C
+ add r0, r5, #0
+ bl FUN_02016A18
+_021E472C:
+ pop {r3, r4, r5, pc}
+ nop
+_021E4730: .word MOD14_021E4530
+
+ thumb_func_start MOD14_021E4734
+MOD14_021E4734: ; 0x021E4734
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ beq _021E4762
+ ldr r0, [r5, #0x34]
+ cmp r0, #0
+ beq _021E4762
+ ldr r0, [r5, #4]
+ bl MOD14_021DC484
+ add r6, r0, #0
+ mov r4, #0
+_021E474A:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD14_021E3DF8
+ add r1, r0, #0
+ ldr r0, [r5, #0x34]
+ bl FUN_02020130
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #8
+ blt _021E474A
+_021E4762:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E4764
+MOD14_021E4764: ; 0x021E4764
+ ldr r3, _021E476C ; =0x0201797D
+ mov r0, #4
+ mov r1, #0
+ bx r3
+ .align 2, 0
+_021E476C: .word 0x0201797D
+
+ thumb_func_start MOD14_021E4770
+MOD14_021E4770: ; 0x021E4770
+ push {r3, lr}
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, _021E478C ; =0x04001050
+ mov r1, #1
+ mov r2, #0x3f
+ mov r3, #0xe
+ bl G2x_SetBlendAlpha_
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201797C
+ pop {r3, pc}
+ .align 2, 0
+_021E478C: .word 0x04001050
+
+ thumb_func_start MOD14_021E4790
+MOD14_021E4790: ; 0x021E4790
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ bl MOD14_021DC474
+ add r4, r0, #3
+ cmp r4, #0x12
+ blt _021E47A4
+ sub r4, #0x12
+_021E47A4:
+ mov r0, #0
+ add r7, r6, #0
+ ldr r5, _021E4820 ; =0x021E6690
+ str r0, [sp, #0x10]
+ add r7, #0x88
+_021E47AE:
+ ldr r0, [r6, #4]
+ add r2, r6, #0
+ add r2, #0x84
+ ldr r0, [r0]
+ ldr r2, [r2]
+ add r1, r4, #0
+ bl FUN_0206B484
+ mov r0, #0x68
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldrh r2, [r5]
+ ldrh r3, [r5, #2]
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_020196F4
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ mov r1, #0
+ add r2, r6, #0
+ add r0, r0, #2
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E4824 ; =0x00010200
+ add r3, r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldrsh r3, [r5, r3]
+ add r2, #0x84
+ ldr r2, [r2]
+ add r0, r7, #0
+ add r3, r3, #4
+ bl FUN_0201BDE0
+ sub r4, r4, #1
+ bpl _021E4800
+ mov r4, #0x11
+_021E4800:
+ ldr r0, [sp, #0x10]
+ add r5, r5, #4
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, #6
+ blo _021E47AE
+ add r0, r6, #0
+ add r0, #0x88
+ bl FUN_02019548
+ add r0, r6, #0
+ bl MOD14_021E4770
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021E4820: .word 0x021E6690
+_021E4824: .word 0x00010200
+
+ thumb_func_start MOD14_021E4828
+MOD14_021E4828: ; 0x021E4828
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ mov r0, #0xa
+ mov r1, #0x3c
+ add r6, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021E487C
+ str r5, [r4, #4]
+ ldr r0, [sp]
+ str r6, [r4, #8]
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #0x18]
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl MOD14_021DDD50
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD14_021DDD6C
+ str r0, [r4, #0x18]
+ mov r0, #0
+ str r0, [r4, #0x34]
+ add r0, r6, #0
+ bl MOD14_021DC3C4
+ cmp r0, #3
+ bne _021E486C
+ mov r0, #1
+ b _021E486E
+_021E486C:
+ mov r0, #0
+_021E486E:
+ str r0, [r4]
+ add r0, r4, #0
+ bl MOD14_021E4890
+ str r4, [r7]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E487C:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E4880
+MOD14_021E4880: ; 0x021E4880
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD14_021E495C
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E4890
+MOD14_021E4890: ; 0x021E4890
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ add r6, r0, #0
+ ldr r0, [r6]
+ cmp r0, #0
+ beq _021E4940
+ ldr r4, [r6, #0x14]
+ ldr r0, [r6, #4]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ ldr r0, [r4, #0x20]
+ add r1, sp, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r3, [r4, #0x1c]
+ add r0, sp, #0x34
+ bl MOD14_021DDDB4
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0206E640
+ add r1, r0, #0
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0x10
+ mov r2, #0
+ add r3, sp, #0xc
+ bl FUN_02006BB0
+ str r0, [sp, #8]
+ cmp r0, #0
+ beq _021E4950
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r1, [r0]
+ ldr r0, _021E4954 ; =0x00300010
+ ldr r4, _021E4958 ; =0x021E68E8
+ and r1, r0
+ ldr r0, [sp, #0xc]
+ mov r7, #0
+ str r1, [r0, #8]
+ add r5, r6, #0
+_021E48EA:
+ add r0, sp, #0x10
+ bl FUN_020B1A24
+ ldr r0, [sp, #0xc]
+ ldr r1, [r4]
+ mov r2, #1
+ add r3, sp, #0x10
+ bl FUN_020B1768
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r2, #0
+ ldr r0, [r6, #0x10]
+ add r1, sp, #0x34
+ add r3, r2, #0
+ bl MOD14_021DDDD4
+ str r0, [r5, #0x1c]
+ ldr r1, [r4, #4]
+ bl FUN_02020248
+ ldr r0, [r5, #0x1c]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r5, #0x1c]
+ mov r1, #1
+ bl FUN_020200EC
+ mov r0, #0
+ str r0, [r5, #0x28]
+ add r7, r7, #1
+ add r4, #8
+ add r5, r5, #4
+ cmp r7, #3
+ blt _021E48EA
+ ldr r0, [sp, #8]
+ bl FUN_02016A18
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+_021E4940:
+ mov r1, #0
+ add r0, r1, #0
+_021E4944:
+ str r0, [r6, #0x1c]
+ str r0, [r6, #0x28]
+ add r1, r1, #1
+ add r6, r6, #4
+ cmp r1, #3
+ blt _021E4944
+_021E4950:
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E4954: .word 0x00300010
+_021E4958: .word 0x021E68E8
+
+ thumb_func_start MOD14_021E495C
+MOD14_021E495C: ; 0x021E495C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021E4962:
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _021E496C
+ bl FUN_0201FFC8
+_021E496C:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _021E4962
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4978
+MOD14_021E4978: ; 0x021E4978
+ push {r3, r4}
+ mov r3, #0
+ add r4, r0, #0
+_021E497E:
+ ldr r2, [r4, #0x28]
+ cmp r2, #0
+ bne _021E4990
+ lsl r2, r3, #2
+ add r0, r0, r2
+ str r1, [r0, #0x28]
+ add r0, r3, #0
+ pop {r3, r4}
+ bx lr
+_021E4990:
+ add r3, r3, #1
+ add r4, r4, #4
+ cmp r3, #3
+ blt _021E497E
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD14_021E49A0
+MOD14_021E49A0: ; 0x021E49A0
+ mov r3, #0
+_021E49A2:
+ ldr r2, [r0, #0x28]
+ cmp r1, r2
+ bne _021E49AC
+ add r0, r3, #0
+ bx lr
+_021E49AC:
+ add r3, r3, #1
+ add r0, r0, #4
+ cmp r3, #3
+ blt _021E49A2
+ mov r0, #0
+ mvn r0, r0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E49BC
+MOD14_021E49BC: ; 0x021E49BC
+ lsl r1, r1, #2
+ add r0, r0, r1
+ str r2, [r0, #0x28]
+ bx lr
+
+ thumb_func_start MOD14_021E49C4
+MOD14_021E49C4: ; 0x021E49C4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _021E49D8
+ bl MOD14_021E49DC
+ add r0, r4, #0
+ bl MOD14_021E4A14
+_021E49D8:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E49DC
+MOD14_021E49DC: ; 0x021E49DC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC430
+ add r4, r0, #0
+ beq _021E4A12
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD14_021E4978
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD14_021E4B58
+ add r5, #0x1c
+ lsl r4, r6, #2
+ ldr r0, [r5, r4]
+ mov r1, #6
+ bl FUN_02020130
+ ldr r0, [r5, r4]
+ mov r1, #1
+ bl FUN_020200A0
+_021E4A12:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E4A14
+MOD14_021E4A14: ; 0x021E4A14
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC538
+ add r7, r0, #0
+ beq _021E4AC8
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD14_021E4978
+ add r6, r0, #0
+ ldr r0, [r5, #0x18]
+ add r1, sp, #0x10
+ bl MOD14_021E0038
+ mov r0, #2
+ ldr r1, [sp, #0x14]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #8]
+ bl MOD14_021DC3CC
+ cmp r0, #1
+ bne _021E4A50
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _021E4A54
+_021E4A50:
+ mov r0, #2
+ str r0, [sp, #0xc]
+_021E4A54:
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #1
+ lsl r4, r6, #3
+ bl FUN_0206E640
+ mov r2, #0
+ ldr r3, _021E4ACC ; =0x021E68E8
+ str r2, [sp]
+ add r1, r0, #0
+ str r2, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ ldr r3, [r3, r4]
+ mov r0, #0x10
+ bl FUN_02006A34
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #2
+ bl FUN_0206E640
+ ldr r3, _021E4AD0 ; =0x021E68EC
+ add r1, r0, #0
+ mov r0, #0x20
+ ldr r3, [r3, r4]
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0x10
+ mov r2, #1
+ lsl r3, r3, #5
+ bl FUN_02006930
+ ldr r1, [sp, #0xc]
+ add r5, #0x1c
+ lsl r4, r6, #2
+ lsl r1, r1, #0x18
+ ldr r0, [r5, r4]
+ lsr r1, r1, #0x18
+ bl FUN_02020238
+ ldr r0, [r5, r4]
+ mov r1, #2
+ bl MOD14_021DDE24
+ ldr r0, [r5, r4]
+ add r1, sp, #0x10
+ bl FUN_02020044
+ ldr r0, [r5, r4]
+ mov r1, #0
+ bl FUN_02020130
+ ldr r0, [r5, r4]
+ mov r1, #1
+ bl FUN_020200A0
+_021E4AC8:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E4ACC: .word 0x021E68E8
+_021E4AD0: .word 0x021E68EC
+
+ thumb_func_start MOD14_021E4AD4
+MOD14_021E4AD4: ; 0x021E4AD4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r5, #8]
+ add r7, r2, #0
+ bl MOD14_021DC3CC
+ cmp r0, #1
+ ldr r0, [r5, #4]
+ bne _021E4B1E
+ bl MOD14_021DDD60
+ add r6, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC3E8
+ add r1, r0, #0
+ add r0, r6, #0
+ add r2, sp, #4
+ add r3, sp, #0
+ bl MOD14_021E3170
+ ldr r0, [sp, #4]
+ add r0, #0xa
+ lsl r0, r0, #0xc
+ str r0, [r4]
+ ldr r0, [sp]
+ add sp, #8
+ add r0, #8
+ lsl r0, r0, #0xc
+ str r0, [r4, #4]
+ mov r0, #1
+ str r0, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E4B1E:
+ bl MOD14_021DDD98
+ add r6, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC3D0
+ mov r1, #0x18
+ add r6, #0x70
+ mul r1, r0
+ add r0, r6, r1
+ add r0, #0xa
+ str r0, [r4]
+ ldr r0, [r5, #8]
+ bl MOD14_021DC3D8
+ mov r1, #0x18
+ mul r1, r0
+ add r1, #0x30
+ str r1, [r4, #4]
+ ldr r0, [r4]
+ lsl r0, r0, #0xc
+ str r0, [r4]
+ ldr r0, [r4, #4]
+ lsl r0, r0, #0xc
+ str r0, [r4, #4]
+ mov r0, #2
+ str r0, [r7]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E4B58
+MOD14_021E4B58: ; 0x021E4B58
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ add r5, r0, #0
+ add r7, r2, #0
+ cmp r4, #0
+ blt _021E4BD2
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ bl MOD14_021E4AD4
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #1
+ lsl r6, r4, #3
+ bl FUN_0206E640
+ mov r2, #0
+ ldr r3, _021E4BD8 ; =0x021E68E8
+ str r2, [sp]
+ add r1, r0, #0
+ str r2, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ ldr r3, [r3, r6]
+ mov r0, #0x10
+ bl FUN_02006A34
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #2
+ bl FUN_0206E640
+ ldr r3, _021E4BDC ; =0x021E68EC
+ add r1, r0, #0
+ mov r0, #0x20
+ ldr r3, [r3, r6]
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0x10
+ mov r2, #1
+ lsl r3, r3, #5
+ bl FUN_02006930
+ ldr r1, [sp, #0xc]
+ add r5, #0x1c
+ lsl r4, r4, #2
+ lsl r1, r1, #0x18
+ ldr r0, [r5, r4]
+ lsr r1, r1, #0x18
+ bl FUN_02020238
+ ldr r0, [r5, r4]
+ mov r1, #3
+ bl MOD14_021DDE24
+ ldr r0, [r5, r4]
+ add r1, sp, #0x10
+ bl FUN_02020044
+_021E4BD2:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021E4BD8: .word 0x021E68E8
+_021E4BDC: .word 0x021E68EC
+
+ thumb_func_start MOD14_021E4BE0
+MOD14_021E4BE0: ; 0x021E4BE0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r1, [r5]
+ cmp r1, #0
+ beq _021E4C3E
+ mov r1, #1
+ bl MOD14_021E49A0
+ add r4, r0, #0
+ bmi _021E4C0A
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #2
+ bl MOD14_021E49BC
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ mov r1, #2
+ bl FUN_02020130
+_021E4C0A:
+ ldr r0, [r5, #8]
+ bl MOD14_021DC430
+ add r6, r0, #0
+ beq _021E4C3E
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD14_021E4978
+ add r4, r0, #0
+ bmi _021E4C3E
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD14_021E4B58
+ add r5, #0x1c
+ lsl r4, r4, #2
+ ldr r0, [r5, r4]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, [r5, r4]
+ mov r1, #1
+ bl FUN_020200A0
+_021E4C3E:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E4C40
+MOD14_021E4C40: ; 0x021E4C40
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r1, [r5]
+ cmp r1, #0
+ bne _021E4C4E
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E4C4E:
+ mov r1, #1
+ bl MOD14_021E49A0
+ cmp r0, #0
+ blt _021E4C6A
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ bl FUN_02020388
+ cmp r0, #0
+ beq _021E4C6A
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021E4C6A:
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD14_021E49A0
+ add r4, r0, #0
+ bmi _021E4C92
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ bl FUN_02020388
+ cmp r0, #0
+ beq _021E4C88
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021E4C88:
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD14_021E49BC
+_021E4C92:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4C98
+MOD14_021E4C98: ; 0x021E4C98
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ mov r0, #0xa
+ mov r1, #0x34
+ add r6, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021E4D1A
+ lsl r0, r7, #2
+ str r5, [r4]
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ str r0, [r4, #4]
+ bl FUN_0202011C
+ add r3, r0, #0
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ add r2, #8
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r2, r4, #0
+ ldmia r6!, {r0, r1}
+ add r2, #0x14
+ stmia r2!, {r0, r1}
+ ldr r0, [r6]
+ ldr r6, [sp, #0x18]
+ str r0, [r2]
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #8]
+ sub r0, r1, r0
+ add r1, r6, #0
+ bl _s32_div_f
+ str r0, [r4, #0x20]
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4, #0xc]
+ sub r0, r1, r0
+ add r1, r6, #0
+ bl _s32_div_f
+ str r0, [r4, #0x24]
+ ldr r0, [sp, #0x18]
+ mov r2, #0
+ str r0, [r4, #0x2c]
+ ldr r0, [sp]
+ add r1, r4, #0
+ str r0, [r4, #0x28]
+ ldr r0, _021E4D1C ; =MOD14_021E4D20
+ str r2, [r4, #0x30]
+ bl MOD14_021DDD40
+ cmp r0, #0
+ beq _021E4D14
+ ldr r0, [r5, #0x34]
+ add r0, r0, #1
+ str r0, [r5, #0x34]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E4D14:
+ add r0, r4, #0
+ bl FUN_02016A18
+_021E4D1A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E4D1C: .word MOD14_021E4D20
+
+ thumb_func_start MOD14_021E4D20
+MOD14_021E4D20: ; 0x021E4D20
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _021E4D32
+ cmp r0, #1
+ beq _021E4D68
+ pop {r3, r4, r5, pc}
+_021E4D32:
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0
+ beq _021E4D58
+ ldr r2, [r4, #8]
+ ldr r0, [r4, #0x20]
+ add r1, #8
+ add r0, r2, r0
+ str r0, [r4, #8]
+ ldr r2, [r4, #0xc]
+ ldr r0, [r4, #0x24]
+ add r0, r2, r0
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #4]
+ bl FUN_02020044
+ ldr r0, [r4, #0x2c]
+ sub r0, r0, #1
+ str r0, [r4, #0x2c]
+ pop {r3, r4, r5, pc}
+_021E4D58:
+ ldr r0, [r4, #4]
+ add r1, #0x14
+ bl FUN_02020044
+ ldr r0, [r4, #0x30]
+ add r0, r0, #1
+ str r0, [r4, #0x30]
+ pop {r3, r4, r5, pc}
+_021E4D68:
+ ldr r0, [r4, #4]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _021E4D92
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #0x28]
+ bl MOD14_021DDE24
+ ldr r1, [r4]
+ ldr r0, [r1, #0x34]
+ sub r0, r0, #1
+ str r0, [r1, #0x34]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD14_021DDF30
+_021E4D92:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E4D94
+MOD14_021E4D94: ; 0x021E4D94
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r1, [r5]
+ cmp r1, #0
+ beq _021E4DE2
+ mov r1, #1
+ bl MOD14_021E49A0
+ add r4, r0, #0
+ bmi _021E4DE2
+ ldr r0, [r5, #0x18]
+ add r1, sp, #4
+ bl MOD14_021E0038
+ mov r0, #2
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #3
+ bl MOD14_021E49BC
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ mov r1, #3
+ bl FUN_02020130
+ mov r0, #0xc
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #4
+ mov r3, #2
+ bl MOD14_021E4C98
+_021E4DE2:
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4DE8
+MOD14_021E4DE8: ; 0x021E4DE8
+ ldr r0, [r0, #0x34]
+ cmp r0, #0
+ bne _021E4DF2
+ mov r0, #1
+ bx lr
+_021E4DF2:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4DF8
+MOD14_021E4DF8: ; 0x021E4DF8
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _021E4E22
+ mov r1, #1
+ bl MOD14_021E49A0
+ add r5, r0, #0
+ bmi _021E4E22
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #2
+ bl MOD14_021E49BC
+ lsl r0, r5, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x1c]
+ mov r1, #2
+ bl FUN_02020130
+_021E4E22:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E4E24
+MOD14_021E4E24: ; 0x021E4E24
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r1, [r5]
+ cmp r1, #0
+ beq _021E4E54
+ mov r1, #2
+ bl MOD14_021E49A0
+ add r4, r0, #0
+ bmi _021E4E54
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ bl FUN_02020388
+ cmp r0, #0
+ beq _021E4E4A
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021E4E4A:
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD14_021E49BC
+_021E4E54:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E4E58
+MOD14_021E4E58: ; 0x021E4E58
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r1, [r5]
+ cmp r1, #0
+ beq _021E4E9E
+ mov r1, #3
+ bl MOD14_021E49A0
+ add r4, r0, #0
+ bmi _021E4E9E
+ add r0, r5, #0
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD14_021E4AD4
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD14_021E49BC
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ mov r1, #4
+ bl FUN_02020130
+ mov r0, #0xc
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #8
+ mov r3, #3
+ bl MOD14_021E4C98
+_021E4E9E:
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4EA4
+MOD14_021E4EA4: ; 0x021E4EA4
+ ldr r0, [r0, #0x34]
+ cmp r0, #0
+ bne _021E4EAE
+ mov r0, #1
+ bx lr
+_021E4EAE:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4EB4
+MOD14_021E4EB4: ; 0x021E4EB4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r1, [r5]
+ cmp r1, #0
+ beq _021E4F42
+ mov r1, #3
+ bl MOD14_021E49A0
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD14_021E49A0
+ add r6, r0, #0
+ cmp r4, #0
+ blt _021E4F42
+ cmp r6, #0
+ blt _021E4F42
+ add r0, r5, #0
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD14_021E4AD4
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD14_021E49BC
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ mov r1, #4
+ bl FUN_02020130
+ mov r0, #0xc
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #8
+ mov r3, #3
+ bl MOD14_021E4C98
+ ldr r0, [r5, #0x18]
+ add r1, sp, #8
+ bl MOD14_021E0038
+ mov r0, #2
+ ldr r1, [sp, #0xc]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD14_021E49BC
+ lsl r0, r6, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ mov r1, #3
+ bl FUN_02020130
+ mov r0, #0xc
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, sp, #8
+ mov r3, #2
+ bl MOD14_021E4C98
+_021E4F42:
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4F48
+MOD14_021E4F48: ; 0x021E4F48
+ ldr r0, [r0, #0x34]
+ cmp r0, #0
+ bne _021E4F52
+ mov r0, #1
+ bx lr
+_021E4F52:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4F58
+MOD14_021E4F58: ; 0x021E4F58
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _021E4F9E
+ mov r1, #3
+ bl MOD14_021E49A0
+ add r5, r0, #0
+ bmi _021E4F7C
+ lsl r0, r5, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x1c]
+ mov r1, #5
+ bl FUN_02020130
+ str r5, [r4, #0x38]
+ pop {r3, r4, r5, pc}
+_021E4F7C:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD14_021E49A0
+ add r5, r0, #0
+ bmi _021E4F98
+ lsl r0, r5, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x1c]
+ mov r1, #2
+ bl FUN_02020130
+ str r5, [r4, #0x38]
+ pop {r3, r4, r5, pc}
+_021E4F98:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r4, #0x38]
+_021E4F9E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E4FA0
+MOD14_021E4FA0: ; 0x021E4FA0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021E4FD6
+ mov r0, #0
+ ldr r1, [r4, #0x38]
+ mvn r0, r0
+ cmp r1, r0
+ beq _021E4FD6
+ lsl r0, r1, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x1c]
+ bl FUN_02020388
+ cmp r0, #0
+ beq _021E4FC6
+ mov r0, #0
+ pop {r4, pc}
+_021E4FC6:
+ ldr r1, [r4, #0x38]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD14_021E49BC
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r4, #0x38]
+_021E4FD6:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E4FDC
+MOD14_021E4FDC: ; 0x021E4FDC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r5]
+ cmp r1, #0
+ beq _021E5016
+ mov r1, #3
+ bl MOD14_021E49A0
+ add r6, r0, #0
+ bmi _021E5016
+ ldmia r4!, {r0, r1}
+ add r3, sp, #0
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ str r0, [r3]
+ mov r0, #2
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #4]
+ lsl r0, r6, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x1c]
+ add r1, r2, #0
+ bl FUN_02020044
+_021E5016:
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E501C
+MOD14_021E501C: ; 0x021E501C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r5]
+ cmp r1, #0
+ beq _021E5040
+ mov r1, #3
+ bl MOD14_021E49A0
+ cmp r0, #0
+ blt _021E5040
+ lsl r0, r0, #2
+ add r0, r5, r0
+ lsl r1, r4, #0x18
+ ldr r0, [r0, #0x1c]
+ lsr r1, r1, #0x18
+ bl FUN_02020238
+_021E5040:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E5044
+MOD14_021E5044: ; 0x021E5044
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r2, #0
+ add r5, r0, #0
+ add r0, r7, #0
+ add r6, r1, #0
+ str r3, [sp, #4]
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021E5064
+ mov r0, #0
+ str r0, [r5]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E5064:
+ mov r1, #0xe1
+ mov r0, #0xa
+ lsl r1, r1, #2
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021E50E6
+ str r6, [r4, #4]
+ ldr r0, [sp, #4]
+ str r7, [r4, #8]
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #0x20]
+ str r0, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD14_021DDD50
+ mov r3, #0xda
+ str r0, [r4, #0x14]
+ mov r0, #0xa
+ lsl r3, r3, #2
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #7
+ mov r2, #1
+ add r3, r4, r3
+ bl FUN_02006BDC
+ mov r3, #0x37
+ lsl r3, r3, #4
+ str r0, [r4, r3]
+ mov r0, #0xa
+ sub r3, r3, #4
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #8
+ mov r2, #1
+ add r3, r4, r3
+ bl FUN_02006BDC
+ mov r1, #0xdd
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [sp, #0x24]
+ mov r2, #0x93
+ str r0, [r4, #0x6c]
+ mov r0, #1
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #0xa
+ bl FUN_0200A86C
+ str r0, [r4, #0x70]
+ mov r0, #0x20
+ mov r1, #0xa
+ bl FUN_020219F4
+ str r0, [r4, #0x74]
+ mov r0, #0xe
+ mov r1, #0
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ add sp, #8
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E50E6:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E50EC
+MOD14_021E50EC: ; 0x021E50EC
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021E5124
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0xdd
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x70]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ bl MOD14_021E5C04
+ add r0, r4, #0
+ bl MOD14_021E5474
+ ldr r0, [r4, #0x74]
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02016A18
+_021E5124:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E5128
+MOD14_021E5128: ; 0x021E5128
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ beq _021E5210
+ bl MOD14_021E5334
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x12
+ mov r1, #0x6c
+ 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, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x12
+ mov r1, #0x69
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x12
+ mov r1, #0x6a
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x12
+ mov r1, #0x6b
+ mov r3, #7
+ bl FUN_020068C8
+ mov r0, #0x80
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0x12
+ mov r1, #0x6d
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ bl FUN_0206B888
+ mov r3, #0x80
+ add r1, r0, #0
+ str r3, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0x13
+ mov r2, #5
+ bl FUN_02006930
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0xa
+ bl FUN_02017F18
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0xc]
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_02018540
+ add r0, r4, #0
+ bl MOD14_021E539C
+ add r0, r4, #0
+ bl MOD14_021E5400
+ ldr r0, [r4, #8]
+ bl MOD14_021DC560
+ mov r1, #0xde
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, #0xc]
+ mov r1, #4
+ bl FUN_02017CD0
+ add r0, r4, #0
+ bl MOD14_021E5A08
+_021E5210:
+ add sp, #0x10
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E5214
+MOD14_021E5214: ; 0x021E5214
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ cmp r5, #0
+ beq _021E5268
+ ldr r0, [r5, #8]
+ bl MOD14_021DC558
+ add r4, r0, #0
+ cmp r6, #0
+ beq _021E5248
+ mov r0, #1
+ eor r0, r4
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x28]
+ mov r1, #2
+ bl FUN_02020130
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x28]
+ mov r1, #0
+ bl FUN_02020130
+ b _021E5262
+_021E5248:
+ mov r1, #1
+ eor r0, r1
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x28]
+ bl FUN_02020130
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x28]
+ mov r1, #0
+ bl FUN_02020130
+_021E5262:
+ add r0, r5, #0
+ bl MOD14_021E5334
+_021E5268:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E526C
+MOD14_021E526C: ; 0x021E526C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD14_021E5C68
+ cmp r5, #0
+ beq _021E52B8
+ ldr r0, [r5, #8]
+ bl MOD14_021DC558
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E5CFC
+ ldr r0, [r5, #8]
+ bl MOD14_021DC560
+ cmp r0, #0
+ beq _021E529C
+ cmp r0, #1
+ beq _021E52A6
+ cmp r0, #2
+ beq _021E52B0
+ pop {r3, r4, r5, pc}
+_021E529C:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E57E4
+ pop {r3, r4, r5, pc}
+_021E52A6:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E55B0
+ pop {r3, r4, r5, pc}
+_021E52B0:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD14_021E5908
+_021E52B8:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E52BC
+MOD14_021E52BC: ; 0x021E52BC
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD14_021E52C0
+MOD14_021E52C0: ; 0x021E52C0
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021E52DE
+ mov r1, #0xdf
+ mov r2, #0
+ lsl r1, r1, #2
+ str r2, [r4, r1]
+ sub r1, r1, #4
+ ldr r1, [r4, r1]
+ bl MOD14_021E5504
+ ldr r0, [r4, #0xc]
+ mov r1, #4
+ bl FUN_02017CD0
+_021E52DE:
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E52E0
+MOD14_021E52E0: ; 0x021E52E0
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021E5330
+ mov r1, #0xdf
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ beq _021E52FA
+ cmp r1, #1
+ beq _021E530A
+ cmp r1, #2
+ beq _021E5328
+ b _021E532C
+_021E52FA:
+ bl MOD14_021E539C
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _021E532C
+_021E530A:
+ bl MOD14_021E5718
+ add r0, r4, #0
+ bl MOD14_021E549C
+ ldr r0, [r4, #0xc]
+ mov r1, #4
+ bl FUN_02017CD0
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _021E532C
+_021E5328:
+ mov r0, #1
+ pop {r4, pc}
+_021E532C:
+ mov r0, #0
+ pop {r4, pc}
+_021E5330:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD14_021E5334
+MOD14_021E5334: ; 0x021E5334
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC558
+ cmp r0, #0
+ bne _021E5348
+ mov r0, #0xda
+ b _021E534A
+_021E5348:
+ mov r0, #0xdb
+_021E534A:
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #0x20
+ add r0, r4, #0
+ mov r2, #0
+ str r1, [sp, #4]
+ add r0, #0xc
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ str r1, [sp, #0x14]
+ str r1, [sp, #0x18]
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_02018170
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ add r4, #0xc
+ str r4, [sp, #8]
+ mov r2, #0x1a
+ str r2, [sp, #0xc]
+ mov r3, #0
+ str r3, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ bl FUN_02018170
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ bl FUN_02017CD0
+ add sp, #0x1c
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD14_021E539C
+MOD14_021E539C: ; 0x021E539C
+ push {r3, lr}
+ ldr r0, [r0, #8]
+ bl MOD14_021DC560
+ cmp r0, #0
+ beq _021E53B2
+ cmp r0, #1
+ beq _021E53CC
+ cmp r0, #2
+ beq _021E53E6
+ pop {r3, pc}
+_021E53B2:
+ mov r0, #5
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #6
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #7
+ mov r1, #0
+ bl FUN_0201797C
+ pop {r3, pc}
+_021E53CC:
+ mov r0, #6
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #7
+ mov r1, #0
+ bl FUN_0201797C
+ pop {r3, pc}
+_021E53E6:
+ mov r0, #7
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #6
+ mov r1, #0
+ bl FUN_0201797C
+ pop {r3, pc}
+
+ thumb_func_start MOD14_021E5400
+MOD14_021E5400: ; 0x021E5400
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r1, #0
+ add r2, r7, #0
+ add r5, r1, #0
+_021E540A:
+ add r0, r2, #0
+ add r0, #0x84
+ add r1, r1, #1
+ add r2, #0x10
+ str r5, [r0]
+ cmp r1, #7
+ blt _021E540A
+ add r4, r7, #0
+ ldr r6, _021E5470 ; =0x021E6940
+ add r4, #0x78
+_021E541E:
+ ldr r0, [r7, #0xc]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_02019150
+ add r0, r4, #0
+ bl FUN_02019270
+ add r5, r5, #1
+ add r6, #8
+ add r4, #0x10
+ cmp r5, #3
+ blo _021E541E
+ add r0, r7, #0
+ bl MOD14_021E5718
+ add r0, r7, #0
+ add r0, #0x78
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r7, #0
+ add r0, #0x88
+ mov r1, #0
+ bl FUN_02019620
+ add r4, r7, #0
+ mov r5, #0
+ add r4, #0x78
+_021E5458:
+ add r0, r4, #0
+ bl FUN_02019548
+ add r5, r5, #1
+ add r4, #0x10
+ cmp r5, #3
+ blo _021E5458
+ add r0, r7, #0
+ bl MOD14_021E549C
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E5470: .word 0x021E6940
+
+ thumb_func_start MOD14_021E5474
+MOD14_021E5474: ; 0x021E5474
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ mov r6, #0
+ add r4, #0x78
+_021E547E:
+ add r0, r5, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E548E
+ add r0, r4, #0
+ bl FUN_02019178
+_021E548E:
+ add r6, r6, #1
+ add r5, #0x10
+ add r4, #0x10
+ cmp r6, #7
+ blt _021E547E
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E549C
+MOD14_021E549C: ; 0x021E549C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC560
+ add r4, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC560
+ cmp r0, #0
+ beq _021E54BC
+ cmp r0, #1
+ beq _021E54D4
+ cmp r0, #2
+ beq _021E54E6
+ b _021E54FC
+_021E54BC:
+ add r0, r5, #0
+ bl MOD14_021E5540
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD14_021E57E4
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD14_021E57E4
+ b _021E54FC
+_021E54D4:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD14_021E55B0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD14_021E55B0
+ b _021E54FC
+_021E54E6:
+ add r0, r5, #0
+ bl MOD14_021E56A8
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD14_021E5908
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD14_021E5908
+_021E54FC:
+ mov r0, #0xde
+ lsl r0, r0, #2
+ str r4, [r5, r0]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E5504
+MOD14_021E5504: ; 0x021E5504
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r1, #0
+ beq _021E5516
+ cmp r1, #1
+ beq _021E5522
+ cmp r1, #2
+ beq _021E5532
+ pop {r4, pc}
+_021E5516:
+ bl MOD14_021E5578
+ add r0, r4, #0
+ bl MOD14_021E57CC
+ pop {r4, pc}
+_021E5522:
+ mov r1, #0
+ bl MOD14_021E5688
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD14_021E5688
+ pop {r4, pc}
+_021E5532:
+ bl MOD14_021E56E0
+ add r0, r4, #0
+ bl MOD14_021E57CC
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E5540
+MOD14_021E5540: ; 0x021E5540
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r7, _021E5574 ; =0x021E6930
+ str r0, [sp]
+ mov r6, #0
+ add r5, #0x78
+_021E554C:
+ add r0, r6, #3
+ lsl r4, r0, #4
+ ldr r0, [sp]
+ add r1, r5, r4
+ ldr r0, [r0, #0xc]
+ add r2, r7, #0
+ bl FUN_02019150
+ add r0, r5, r4
+ bl FUN_02019270
+ add r0, r5, r4
+ mov r1, #0
+ bl FUN_02019620
+ add r6, r6, #1
+ add r7, #8
+ cmp r6, #2
+ blo _021E554C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E5574: .word 0x021E6930
+
+ thumb_func_start MOD14_021E5578
+MOD14_021E5578: ; 0x021E5578
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r0, #0x78
+ add r5, r0, #0
+ mov r6, #3
+ add r4, #0x30
+ add r5, #0x30
+ mov r7, #0
+_021E5588:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E55A4
+ add r0, r5, #0
+ bl FUN_020192B8
+ add r0, r5, #0
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x84
+ str r7, [r0]
+_021E55A4:
+ add r6, r6, #1
+ add r4, #0x10
+ add r5, #0x10
+ cmp r6, #4
+ ble _021E5588
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E55B0
+MOD14_021E55B0: ; 0x021E55B0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0
+ ldr r0, [r7, #8]
+ str r1, [sp]
+ bl MOD14_021DC568
+ add r4, r0, #0
+ ldr r0, [r7, #8]
+ bl MOD14_021DC3F0
+ add r6, r0, #0
+ ldr r0, [r7, #8]
+ bl MOD14_021DC558
+ ldr r1, [sp]
+ cmp r1, r0
+ bne _021E55D8
+ mov r5, #1
+ b _021E55DA
+_021E55D8:
+ mov r5, #0
+_021E55DA:
+ ldr r0, [r7, #8]
+ ldr r1, [sp]
+ bl MOD14_021DC574
+ cmp r6, #1
+ bne _021E55EA
+ cmp r5, #1
+ beq _021E55F2
+_021E55EA:
+ cmp r5, #0
+ bne _021E5676
+ cmp r0, #1
+ bne _021E5676
+_021E55F2:
+ ldrb r0, [r4, #6]
+ cmp r0, #0
+ bne _021E5676
+ ldr r1, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #0x10]
+ mov r0, #0x14
+ add r2, r1, #0
+ mul r2, r0
+ add r5, r7, r2
+ mov r2, #1
+ eor r1, r2
+ mul r0, r1
+ ldr r6, _021E5684 ; =0x021E6958
+ add r4, #0x16
+ add r7, r7, r0
+_021E5614:
+ ldr r3, [r6]
+ ldr r0, [r6, #8]
+ ldrh r2, [r4]
+ sub r1, r0, r3
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r0, r0, #8
+ mul r0, r2
+ add r0, r3, r0
+ str r0, [sp, #8]
+ ldr r3, [r6, #4]
+ ldr r0, [r6, #0xc]
+ ldrh r2, [r4]
+ sub r1, r0, r3
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r0, r0, #8
+ mul r0, r2
+ add r0, r3, r0
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x34]
+ add r1, sp, #8
+ bl FUN_02020044
+ ldr r0, [r5, #0x34]
+ mov r1, #0
+ bl MOD14_021DDE24
+ ldr r0, [r7, #0x34]
+ mov r1, #1
+ bl MOD14_021DDE24
+ ldr r0, [r5, #0x34]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [sp, #4]
+ add r4, r4, #2
+ add r0, r0, #1
+ add r6, #0x10
+ add r5, r5, #4
+ add r7, r7, #4
+ str r0, [sp, #4]
+ cmp r0, #5
+ blt _021E5614
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+_021E5676:
+ ldr r1, [sp]
+ add r0, r7, #0
+ bl MOD14_021E5688
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021E5684: .word 0x021E6958
+
+ thumb_func_start MOD14_021E5688
+MOD14_021E5688: ; 0x021E5688
+ push {r4, r5, r6, lr}
+ mov r2, #0x14
+ mov r4, #0
+ mul r2, r1
+ add r5, r0, r2
+ add r6, r4, #0
+_021E5694:
+ ldr r0, [r5, #0x34]
+ add r1, r6, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _021E5694
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E56A8
+MOD14_021E56A8: ; 0x021E56A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r7, _021E56DC ; =0x021E6920
+ str r0, [sp]
+ mov r6, #0
+ add r5, #0x78
+_021E56B4:
+ add r0, r6, #5
+ lsl r4, r0, #4
+ ldr r0, [sp]
+ add r1, r5, r4
+ ldr r0, [r0, #0xc]
+ add r2, r7, #0
+ bl FUN_02019150
+ add r0, r5, r4
+ bl FUN_02019270
+ add r0, r5, r4
+ mov r1, #0
+ bl FUN_02019620
+ add r6, r6, #1
+ add r7, #8
+ cmp r6, #2
+ blo _021E56B4
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E56DC: .word 0x021E6920
+
+ thumb_func_start MOD14_021E56E0
+MOD14_021E56E0: ; 0x021E56E0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r0, #0x78
+ add r5, r0, #0
+ mov r6, #5
+ add r4, #0x50
+ add r5, #0x50
+ mov r7, #0
+_021E56F0:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021E570C
+ add r0, r5, #0
+ bl FUN_020192B8
+ add r0, r5, #0
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x84
+ str r7, [r0]
+_021E570C:
+ add r6, r6, #1
+ add r4, #0x10
+ add r5, #0x10
+ cmp r6, #6
+ ble _021E56F0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E5718
+MOD14_021E5718: ; 0x021E5718
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r7, r5, #0
+ add r7, #0x98
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r5, #8]
+ bl MOD14_021DC560
+ cmp r0, #0
+ beq _021E573A
+ cmp r0, #2
+ beq _021E5786
+ b _021E57B8
+_021E573A:
+ mov r0, #0
+ ldr r6, _021E57C4 ; =0x021E6910
+ str r0, [sp, #0x10]
+ add r4, r0, #0
+_021E5742:
+ ldrh r1, [r6]
+ ldr r0, [r5, #0x6c]
+ ldr r2, [r5, #0x74]
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r5, #0x74]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r7, #7]
+ lsl r1, r1, #3
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ str r4, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E57C8 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x74]
+ add r0, r7, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ add r6, r6, #2
+ add r0, r0, #1
+ add r4, #0x10
+ str r0, [sp, #0x10]
+ cmp r0, #8
+ blo _021E5742
+ b _021E57B8
+_021E5786:
+ ldr r0, [r5, #0x6c]
+ ldr r2, [r5, #0x74]
+ mov r1, #0x2b
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r5, #0x74]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r7, #7]
+ lsl r1, r1, #3
+ sub r0, r1, r0
+ mov r1, #0
+ lsr r3, r0, #1
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E57C8 ; =0x000F0E00
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x74]
+ add r0, r7, #0
+ bl FUN_0201BDE0
+_021E57B8:
+ add r0, r7, #0
+ bl FUN_02019548
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021E57C4: .word 0x021E6910
+_021E57C8: .word 0x000F0E00
+
+ thumb_func_start MOD14_021E57CC
+MOD14_021E57CC: ; 0x021E57CC
+ push {r4, lr}
+ add r4, r0, #0
+ add r4, #0x98
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ bl FUN_02019548
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E57E4
+MOD14_021E57E4: ; 0x021E57E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ add r0, r1, #0
+ add r2, r5, #0
+ add r0, r0, #3
+ add r2, #0x78
+ lsl r0, r0, #4
+ add r4, r2, r0
+ ldr r0, [r5, #8]
+ str r1, [sp, #0x10]
+ bl MOD14_021DC568
+ add r6, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC3F0
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #8]
+ bl MOD14_021DC558
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ bne _021E5818
+ mov r7, #1
+ b _021E581A
+_021E5818:
+ mov r7, #0
+_021E581A:
+ ldr r0, [r5, #8]
+ ldr r1, [sp, #0x10]
+ bl MOD14_021DC574
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [sp, #0x18]
+ cmp r0, #1
+ bne _021E5836
+ cmp r7, #1
+ beq _021E5840
+_021E5836:
+ cmp r7, #0
+ bne _021E58FA
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ bne _021E58FA
+_021E5840:
+ ldrb r0, [r6, #6]
+ cmp r0, #0
+ bne _021E58BA
+ mov r0, #0
+ ldr r1, [r6, #0x2c]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r4, #7]
+ lsl r1, r1, #3
+ sub r0, r1, r0
+ mov r1, #0
+ lsr r3, r0, #1
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E5904 ; =0x000F0E00
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r6, #0x2c]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+ mov r7, #0
+ add r6, #8
+_021E5872:
+ mov r0, #1
+ str r0, [sp]
+ ldrh r1, [r6]
+ ldr r0, [r5, #0x74]
+ mov r2, #3
+ mov r3, #0
+ bl FUN_02021B04
+ mov r0, #0
+ ldr r1, [r5, #0x74]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r4, #7]
+ lsl r1, r1, #3
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ add r0, r7, #1
+ lsl r0, r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E5904 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x74]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+ add r7, r7, #1
+ add r6, r6, #2
+ cmp r7, #7
+ blt _021E5872
+ b _021E58FA
+_021E58BA:
+ ldr r0, [r5, #0x6c]
+ ldr r2, [r5, #0x74]
+ mov r1, #0x2c
+ bl FUN_0200A8E0
+ mov r7, #0
+ add r6, r7, #0
+_021E58C8:
+ mov r0, #0
+ ldr r1, [r5, #0x74]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r4, #7]
+ lsl r1, r1, #3
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ str r6, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E5904 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x74]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+ add r7, r7, #1
+ add r6, #0x10
+ cmp r7, #8
+ blt _021E58C8
+_021E58FA:
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E5904: .word 0x000F0E00
+
+ thumb_func_start MOD14_021E5908
+MOD14_021E5908: ; 0x021E5908
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ add r0, r1, #0
+ add r2, r5, #0
+ add r0, r0, #5
+ add r2, #0x78
+ lsl r0, r0, #4
+ add r4, r2, r0
+ ldr r0, [r5, #8]
+ str r1, [sp, #0x10]
+ bl MOD14_021DC568
+ add r6, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC3F0
+ str r0, [sp, #0x1c]
+ ldr r0, [r5, #8]
+ bl MOD14_021DC558
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ bne _021E593C
+ mov r7, #1
+ b _021E593E
+_021E593C:
+ mov r7, #0
+_021E593E:
+ ldr r0, [r5, #8]
+ ldr r1, [sp, #0x10]
+ bl MOD14_021DC574
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [sp, #0x1c]
+ cmp r0, #1
+ bne _021E595A
+ cmp r7, #1
+ beq _021E5964
+_021E595A:
+ cmp r7, #0
+ bne _021E59F8
+ ldr r0, [sp, #0x18]
+ cmp r0, #1
+ bne _021E59F8
+_021E5964:
+ ldrb r0, [r6, #6]
+ cmp r0, #0
+ bne _021E59B8
+ mov r0, #0
+ str r0, [sp, #0x14]
+ mov r7, #4
+_021E5970:
+ ldrh r1, [r6, #0x20]
+ cmp r1, #0
+ beq _021E59A8
+ ldr r0, [r5, #0x70]
+ ldr r2, [r5, #0x74]
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r5, #0x74]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r4, #7]
+ lsl r1, r1, #3
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ str r7, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E5A04 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x74]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+_021E59A8:
+ ldr r0, [sp, #0x14]
+ add r6, r6, #2
+ add r0, r0, #1
+ add r7, #0x18
+ str r0, [sp, #0x14]
+ cmp r0, #4
+ blt _021E5970
+ b _021E59F8
+_021E59B8:
+ ldr r0, [r5, #0x6c]
+ ldr r2, [r5, #0x74]
+ mov r1, #0x2c
+ bl FUN_0200A8E0
+ mov r7, #0
+ mov r6, #4
+_021E59C6:
+ mov r0, #0
+ ldr r1, [r5, #0x74]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r4, #7]
+ lsl r1, r1, #3
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ str r6, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E5A04 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x74]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+ add r7, r7, #1
+ add r6, #0x18
+ cmp r7, #4
+ blt _021E59C6
+_021E59F8:
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E5A04: .word 0x000F0E00
+
+ thumb_func_start MOD14_021E5A08
+MOD14_021E5A08: ; 0x021E5A08
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x6c
+ add r7, r0, #0
+ mov r0, #0xa
+ add r3, r7, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x6f
+ mov r2, #1
+ add r3, #0x60
+ bl FUN_02006C30
+ str r0, [r7, #0x5c]
+ mov r0, #0xa
+ add r3, r7, #0
+ str r0, [sp]
+ mov r0, #0x12
+ mov r1, #0x70
+ mov r2, #1
+ add r3, #0x68
+ bl FUN_02006C5C
+ str r0, [r7, #0x64]
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0x12
+ mov r1, #0x71
+ mov r2, #5
+ mov r3, #0
+ bl FUN_02006930
+ add r0, sp, #0x48
+ bl FUN_020B1A24
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ add r0, sp, #0x48
+ str r0, [sp, #0x10]
+ mov r0, #0x12
+ mov r1, #0x6e
+ mov r2, #1
+ bl FUN_02006AE4
+ str r0, [sp, #0x20]
+ ldr r0, [r7, #4]
+ bl MOD14_021DDD48
+ add r2, r0, #0
+ ldr r0, [r7, #0x68]
+ add r1, sp, #0x48
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r3, [r7, #0x60]
+ add r0, sp, #0x24
+ bl MOD14_021DDDB4
+ ldr r0, _021E5B5C ; =0x021E6900
+ mov r4, #0
+ str r0, [sp, #0x1c]
+ str r7, [sp, #0x18]
+ str r7, [sp, #0x14]
+_021E5A92:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x1c]
+ mov r3, #0
+ ldrsh r2, [r2, r3]
+ ldr r3, [sp, #0x1c]
+ mov r5, #2
+ ldrsh r3, [r3, r5]
+ ldr r0, [r7, #0x10]
+ add r1, sp, #0x24
+ bl MOD14_021DDDD4
+ ldr r1, [sp, #0x18]
+ str r0, [r1, #0x28]
+ add r1, r4, #0
+ bl FUN_02020248
+ ldr r0, [sp, #0x18]
+ mov r1, #0
+ ldr r0, [r0, #0x28]
+ bl FUN_02020130
+ ldr r5, [sp, #0x14]
+ mov r6, #0
+_021E5AC6:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r2, #0
+ ldr r0, [r7, #0x10]
+ add r1, sp, #0x24
+ add r3, r2, #0
+ bl MOD14_021DDDD4
+ str r0, [r5, #0x34]
+ add r1, r4, #5
+ bl FUN_02020130
+ ldr r0, [r5, #0x34]
+ add r1, r4, #0
+ bl FUN_02020248
+ ldr r0, [r5, #0x34]
+ mov r1, #0
+ bl FUN_020200A0
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #5
+ blo _021E5AC6
+ ldr r0, [sp, #0x1c]
+ add r4, r4, #1
+ add r0, r0, #4
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #4
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r0, #0x14
+ str r0, [sp, #0x14]
+ cmp r4, #2
+ blo _021E5A92
+ ldr r0, [r7, #0x2c]
+ mov r1, #1
+ bl FUN_02020100
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r3, #0x23
+ ldr r0, [r7, #0x10]
+ add r1, sp, #0x24
+ mov r2, #0x80
+ lsl r3, r3, #4
+ bl MOD14_021DDDD4
+ str r0, [r7, #0x30]
+ mov r1, #3
+ bl FUN_02020130
+ ldr r0, [r7, #0x30]
+ mov r1, #2
+ bl FUN_02020248
+ ldr r0, _021E5B60 ; =MOD14_021E5D64
+ add r1, r7, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ mov r1, #0xe
+ lsl r1, r1, #6
+ str r0, [r7, r1]
+ ldr r1, [sp, #0x20]
+ add r0, r7, #0
+ bl MOD14_021E5B64
+ add sp, #0x6c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E5B5C: .word 0x021E6900
+_021E5B60: .word MOD14_021E5D64
+
+ thumb_func_start MOD14_021E5B64
+MOD14_021E5B64: ; 0x021E5B64
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ str r0, [sp, #8]
+ ldr r0, [r0, #4]
+ str r1, [sp, #0xc]
+ bl MOD14_021DDD48
+ add r5, r0, #0
+ ldr r0, [sp, #8]
+ ldr r0, [r0, #0x14]
+ bl MOD14_021E0C74
+ add r4, r0, #0
+ ldr r0, [sp, #8]
+ ldr r0, [r0, #0x14]
+ bl MOD14_021E0C78
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ add r1, sp, #0x34
+ add r2, r5, #0
+ add r3, r4, #0
+ bl MOD14_021DDDB4
+ mov r7, #0
+ ldr r4, [sp, #8]
+ ldr r5, _021E5BF8 ; =0x021E6908
+ add r6, r7, #0
+_021E5BA0:
+ ldr r0, [sp, #0xc]
+ add r0, r0, r6
+ str r0, [r4, #0x18]
+ add r0, sp, #0x34
+ bl FUN_020B1A24
+ ldr r2, [r4, #0x18]
+ add r0, sp, #0x34
+ mov r1, #2
+ bl FUN_020B1A1C
+ ldr r0, _021E5BFC ; =0x04001000
+ mov r2, #0
+ ldr r1, [r0]
+ ldr r0, _021E5C00 ; =0x00300010
+ mov r3, #2
+ and r0, r1
+ str r0, [sp, #0x54]
+ mov r0, #1
+ sub r0, r0, r7
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ ldr r0, [r0, #0x10]
+ add r1, sp, #0x10
+ bl MOD14_021DDDD4
+ mov r1, #0
+ str r0, [r4, #0x20]
+ bl FUN_020200A0
+ mov r0, #2
+ lsl r0, r0, #8
+ add r7, r7, #1
+ add r6, r6, r0
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r7, #2
+ blt _021E5BA0
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E5BF8: .word 0x021E6908
+_021E5BFC: .word 0x04001000
+_021E5C00: .word 0x00300010
+
+ thumb_func_start MOD14_021E5C04
+MOD14_021E5C04: ; 0x021E5C04
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r1, #0xe
+ lsl r1, r1, #6
+ str r0, [sp]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _021E5C18
+ bl FUN_0200CAB4
+_021E5C18:
+ ldr r6, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ add r7, r6, #0
+_021E5C20:
+ ldr r0, [r6, #0x20]
+ bl FUN_0201FFC8
+ ldr r0, [r6, #0x28]
+ bl FUN_0201FFC8
+ mov r4, #0
+ add r5, r7, #0
+_021E5C30:
+ ldr r0, [r5, #0x34]
+ bl FUN_0201FFC8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _021E5C30
+ ldr r0, [sp, #4]
+ add r6, r6, #4
+ add r0, r0, #1
+ add r7, #0x14
+ str r0, [sp, #4]
+ cmp r0, #2
+ blt _021E5C20
+ ldr r0, [sp]
+ ldr r0, [r0, #0x30]
+ bl FUN_0201FFC8
+ ldr r0, [sp]
+ ldr r0, [r0, #0x5c]
+ bl FUN_02016A18
+ ldr r0, [sp]
+ ldr r0, [r0, #0x64]
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E5C68
+MOD14_021E5C68: ; 0x021E5C68
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC558
+ add r4, r0, #0
+ ldr r0, [r5, #8]
+ add r1, r4, #0
+ bl MOD14_021DC568
+ lsl r7, r4, #2
+ add r6, r0, #0
+ add r0, r5, r7
+ ldr r4, [r0, #0x20]
+ ldr r0, [r6]
+ str r0, [sp]
+ ldr r0, [r5, #8]
+ bl MOD14_021DC3F0
+ cmp r0, #0
+ beq _021E5CF0
+ ldrh r0, [r6, #4]
+ ldrb r1, [r6, #7]
+ ldrb r2, [r6, #6]
+ bl FUN_0206B7BC
+ add r6, r0, #0
+ ldr r0, [sp]
+ bl FUN_0206B688
+ add r2, r0, #0
+ add r1, r5, #0
+ mov r3, #0xa
+ ldr r0, [r5, #0x14]
+ add r1, #0xe8
+ lsl r3, r3, #6
+ bl MOD14_021E0BAC
+ add r0, r5, #0
+ add r0, #0xe8
+ add r1, sp, #4
+ bl FUN_020B0088
+ ldr r0, [sp, #4]
+ mov r1, #2
+ ldr r0, [r0, #0x14]
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ ldr r0, [sp, #4]
+ add r1, r5, r7
+ mov r2, #2
+ ldr r0, [r0, #0x14]
+ ldr r1, [r1, #0x18]
+ lsl r2, r2, #8
+ bl GXS_LoadOBJ
+ add r0, r4, #0
+ add r1, r6, #4
+ bl FUN_02020248
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020200A0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021E5CF0:
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD14_021E5CFC
+MOD14_021E5CFC: ; 0x021E5CFC
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC558
+ add r6, r0, #0
+ add r1, r5, #0
+ add r1, #0x78
+ lsl r0, r6, #4
+ add r4, r1, r0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r5, #8]
+ bl MOD14_021DC3F0
+ cmp r0, #0
+ beq _021E5D56
+ ldr r0, [r5, #8]
+ add r1, r6, #0
+ bl MOD14_021DC568
+ add r5, r0, #0
+ mov r0, #0
+ ldr r1, [r5, #0x28]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r4, #7]
+ lsl r1, r1, #3
+ sub r0, r1, r0
+ mov r1, #0
+ lsr r3, r0, #1
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021E5D60 ; =0x000F0E00
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x28]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+_021E5D56:
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021E5D60: .word 0x000F0E00
+
+ thumb_func_start MOD14_021E5D64
+MOD14_021E5D64: ; 0x021E5D64
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r0, [r5, #8]
+ bl MOD14_021DC57C
+ add r4, r0, #0
+ ldr r0, [r5, #0x30]
+ bl FUN_020201DC
+ cmp r0, #3
+ bne _021E5D88
+ cmp r4, #0
+ beq _021E5D94
+ ldr r0, [r5, #0x30]
+ mov r1, #4
+ bl FUN_02020130
+ pop {r3, r4, r5, pc}
+_021E5D88:
+ cmp r4, #0
+ bne _021E5D94
+ ldr r0, [r5, #0x30]
+ mov r1, #3
+ bl FUN_02020130
+_021E5D94:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E5D98
+MOD14_021E5D98: ; 0x021E5D98
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r4, #0x74
+ add r0, r4, #0
+ add r5, r1, #0
+ bl MOD14_021E612C
+ add r0, r4, #0
+ mov r1, #0x36
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x37
+ bl MOD14_021E613C
+ add r0, r4, #0
+ add r0, #0x20
+ strb r5, [r0]
+ mov r0, #0
+ add r4, #0x23
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E5DC4
+MOD14_021E5DC4: ; 0x021E5DC4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x74
+ add r0, r4, #0
+ bl MOD14_021E612C
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x23
+ strb r1, [r0]
+ add r0, r5, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ bhi _021E5DFA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021E5DF0: ; jump table
+ .short _021E5E70 - _021E5DF0 - 2 ; case 0
+ .short _021E5E9A - _021E5DF0 - 2 ; case 1
+ .short _021E5DFA - _021E5DF0 - 2 ; case 2
+ .short _021E5DFA - _021E5DF0 - 2 ; case 3
+ .short _021E5EC4 - _021E5DF0 - 2 ; case 4
+_021E5DFA:
+ add r0, r5, #0
+ bl MOD14_021DC3F4
+ cmp r0, #2
+ bne _021E5E1C
+ add r0, r5, #0
+ bl MOD14_021DC3F0
+ cmp r0, #0
+ beq _021E5E12
+ mov r1, #0x24
+ b _021E5E14
+_021E5E12:
+ mov r1, #0x23
+_021E5E14:
+ add r0, r4, #0
+ bl MOD14_021E613C
+ b _021E5E24
+_021E5E1C:
+ add r0, r4, #0
+ mov r1, #0x22
+ bl MOD14_021E613C
+_021E5E24:
+ add r0, r4, #0
+ mov r1, #0x25
+ bl MOD14_021E613C
+ add r0, r5, #0
+ bl MOD14_021DC42C
+ ldrb r0, [r0, #0xf]
+ cmp r0, #0
+ bne _021E5E40
+ add r0, r4, #0
+ mov r1, #0x28
+ bl MOD14_021E613C
+_021E5E40:
+ add r0, r5, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021E5E4E
+ mov r1, #0x26
+ b _021E5E50
+_021E5E4E:
+ mov r1, #0x27
+_021E5E50:
+ add r0, r4, #0
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x29
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2a
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2b
+ bl MOD14_021E613C
+ pop {r3, r4, r5, pc}
+_021E5E70:
+ add r0, r4, #0
+ mov r1, #0x27
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x25
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x29
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2a
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2b
+ bl MOD14_021E613C
+ pop {r3, r4, r5, pc}
+_021E5E9A:
+ add r0, r4, #0
+ mov r1, #0x26
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x25
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x29
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2a
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2b
+ bl MOD14_021E613C
+ pop {r3, r4, r5, pc}
+_021E5EC4:
+ add r0, r5, #0
+ bl MOD14_021DC558
+ cmp r0, #0
+ bne _021E5ED2
+ mov r1, #0x34
+ b _021E5ED4
+_021E5ED2:
+ mov r1, #0x35
+_021E5ED4:
+ add r0, r4, #0
+ bl MOD14_021E613C
+ add r0, r5, #0
+ bl MOD14_021DC3CC
+ cmp r0, #0
+ bne _021E5EE8
+ mov r1, #0x26
+ b _021E5EEA
+_021E5EE8:
+ mov r1, #0x27
+_021E5EEA:
+ add r0, r4, #0
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x29
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2b
+ bl MOD14_021E613C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E5F04
+MOD14_021E5F04: ; 0x021E5F04
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r5, r4, #0
+ add r5, #0x74
+ bl MOD14_021DC538
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD14_021DC430
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD14_021E612C
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0x23
+ strb r1, [r0]
+ cmp r6, #0
+ beq _021E5F54
+ cmp r4, #0
+ beq _021E5F3A
+ add r0, r5, #0
+ mov r1, #0x31
+ bl MOD14_021E613C
+ b _021E5F42
+_021E5F3A:
+ add r0, r5, #0
+ mov r1, #0x2e
+ bl MOD14_021E613C
+_021E5F42:
+ add r0, r5, #0
+ mov r1, #0x32
+ bl MOD14_021E613C
+ add r0, r5, #0
+ mov r1, #0x30
+ bl MOD14_021E613C
+ b _021E5F7A
+_021E5F54:
+ cmp r4, #0
+ beq _021E5F72
+ add r0, r5, #0
+ mov r1, #0x2f
+ bl MOD14_021E613C
+ add r0, r5, #0
+ mov r1, #0x32
+ bl MOD14_021E613C
+ add r0, r5, #0
+ mov r1, #0x30
+ bl MOD14_021E613C
+ b _021E5F7A
+_021E5F72:
+ add r0, r5, #0
+ mov r1, #0x2e
+ bl MOD14_021E613C
+_021E5F7A:
+ add r0, r5, #0
+ mov r1, #0x33
+ bl MOD14_021E613C
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E5F84
+MOD14_021E5F84: ; 0x021E5F84
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x74
+ bl MOD14_021DC44C
+ add r0, r4, #0
+ bl MOD14_021E612C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD14_021E613C
+ add r0, r5, #0
+ bl MOD14_021DC3C4
+ cmp r0, #4
+ beq _021E5FB8
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD14_021E613C
+_021E5FB8:
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD14_021E613C
+ mov r0, #2
+ add r4, #0x23
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD14_021E5FC8
+MOD14_021E5FC8: ; 0x021E5FC8
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r4, #0x74
+ add r5, r1, #0
+ bl MOD14_021DC44C
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD14_021E612C
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD14_021E613C
+ add r0, r6, #0
+ bl FUN_0206B668
+ add r6, r0, #0
+ beq _021E600E
+ add r0, r4, #0
+ mov r1, #8
+ bl MOD14_021E613C
+_021E600E:
+ cmp r6, #4
+ bls _021E601A
+ add r0, r4, #0
+ mov r1, #9
+ bl MOD14_021E613C
+_021E601A:
+ add r0, r4, #0
+ mov r1, #3
+ add r0, #0x23
+ strb r1, [r0]
+ cmp r5, #4
+ blt _021E6032
+ cmp r5, #9
+ bgt _021E6032
+ sub r0, r5, #4
+ add r4, #0x20
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_021E6032:
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD14_021E6038
+MOD14_021E6038: ; 0x021E6038
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r6, #0x74
+ add r5, r1, #0
+ bl MOD14_021DC44C
+ str r0, [sp]
+ add r0, r6, #0
+ bl MOD14_021E612C
+ cmp r5, #4
+ blt _021E6070
+ cmp r5, #7
+ bgt _021E6070
+ sub r0, r5, #4
+ ldr r1, _021E60B0 ; =0x021E69A8
+ lsl r0, r0, #3
+ mov r5, #0
+ add r4, r1, r0
+_021E605E:
+ ldrh r1, [r4]
+ add r0, r6, #0
+ bl MOD14_021E613C
+ add r5, r5, #1
+ add r4, r4, #2
+ cmp r5, #4
+ blt _021E605E
+ b _021E60A6
+_021E6070:
+ mov r4, #0
+ add r7, r4, #0
+ cmp r5, #9
+ bne _021E607A
+ mov r4, #4
+_021E607A:
+ mov r5, #0
+_021E607C:
+ ldr r0, [sp]
+ add r1, r5, #0
+ bl FUN_0206B644
+ cmp r0, #0
+ beq _021E60A0
+ cmp r4, #0
+ beq _021E6090
+ sub r4, r4, #1
+ b _021E60A0
+_021E6090:
+ add r1, r5, #0
+ add r0, r6, #0
+ add r1, #0x1a
+ bl MOD14_021E613C
+ add r7, r7, #1
+ cmp r7, #4
+ bge _021E60A6
+_021E60A0:
+ add r5, r5, #1
+ cmp r5, #8
+ blt _021E607C
+_021E60A6:
+ mov r0, #3
+ add r6, #0x23
+ strb r0, [r6]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E60B0: .word 0x021E69A8
+
+ thumb_func_start MOD14_021E60B4
+MOD14_021E60B4: ; 0x021E60B4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x74
+ add r0, r4, #0
+ bl MOD14_021E612C
+ add r0, r4, #0
+ mov r1, #4
+ add r0, #0x23
+ strb r1, [r0]
+ add r5, #0x57
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x22
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #0x38
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x39
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x3a
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x3b
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x3c
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x3d
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2c
+ bl MOD14_021E613C
+ add r0, r4, #0
+ mov r1, #0x2d
+ bl MOD14_021E613C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD14_021E6118
+MOD14_021E6118: ; 0x021E6118
+ add r2, r0, #0
+ add r2, #0x96
+ ldrb r3, [r2]
+ mov r2, #1
+ lsl r2, r1
+ add r1, r3, #0
+ eor r1, r2
+ add r0, #0x96
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD14_021E612C
+MOD14_021E612C: ; 0x021E612C
+ add r1, r0, #0
+ mov r2, #0
+ add r1, #0x21
+ strb r2, [r1]
+ add r0, #0x20
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E613C
+MOD14_021E613C: ; 0x021E613C
+ push {r3, r4}
+ add r2, r0, #0
+ add r2, #0x21
+ ldrb r4, [r2]
+ cmp r4, #8
+ bhs _021E615A
+ add r2, r0, #0
+ add r2, #0x21
+ ldrb r2, [r2]
+ add r3, r2, #1
+ add r2, r0, #0
+ add r2, #0x21
+ strb r3, [r2]
+ lsl r2, r4, #2
+ str r1, [r0, r2]
+_021E615A:
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E6160
+MOD14_021E6160: ; 0x021E6160
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, _021E6208 ; =0x021C48B8
+ add r4, #0x74
+ ldr r1, [r0, #0x48]
+ mov r0, #0x40
+ add r2, r1, #0
+ tst r2, r0
+ beq _021E61A0
+ add r2, r4, #0
+ add r2, #0x20
+ ldrb r2, [r2]
+ cmp r2, #0
+ beq _021E618C
+ add r1, r4, #0
+ add r1, #0x20
+ ldrb r1, [r1]
+ add r4, #0x20
+ sub r0, #0x42
+ sub r1, r1, #1
+ strb r1, [r4]
+ pop {r3, r4, r5, pc}
+_021E618C:
+ add r2, r4, #0
+ add r2, #0x21
+ ldrb r2, [r2]
+ cmp r2, #3
+ blo _021E61A0
+ sub r1, r2, #1
+ add r4, #0x20
+ strb r1, [r4]
+ sub r0, #0x42
+ pop {r3, r4, r5, pc}
+_021E61A0:
+ mov r0, #0x80
+ add r2, r1, #0
+ tst r2, r0
+ beq _021E61D8
+ add r2, r4, #0
+ add r2, #0x21
+ ldrb r5, [r2]
+ add r2, r4, #0
+ add r2, #0x20
+ ldrb r3, [r2]
+ sub r2, r5, #1
+ cmp r3, r2
+ bge _021E61CA
+ add r1, r4, #0
+ add r1, #0x20
+ ldrb r1, [r1]
+ add r4, #0x20
+ sub r0, #0x82
+ add r1, r1, #1
+ strb r1, [r4]
+ pop {r3, r4, r5, pc}
+_021E61CA:
+ cmp r5, #3
+ blo _021E61D8
+ mov r0, #0
+ add r4, #0x20
+ strb r0, [r4]
+ sub r0, r0, #2
+ pop {r3, r4, r5, pc}
+_021E61D8:
+ mov r0, #2
+ tst r0, r1
+ beq _021E61EA
+ ldr r0, _021E620C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4, r5, pc}
+_021E61EA:
+ mov r0, #1
+ tst r1, r0
+ beq _021E6202
+ ldr r0, _021E620C ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021E6202:
+ sub r0, r0, #4
+ pop {r3, r4, r5, pc}
+ nop
+_021E6208: .word 0x021C48B8
+_021E620C: .word 0x000005DD
+
+ thumb_func_start MOD14_021E6210
+MOD14_021E6210: ; 0x021E6210
+ add r0, #0x74
+ add r1, r0, #0
+ add r1, #0x20
+ ldrb r1, [r1]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD14_021E6220
+MOD14_021E6220: ; 0x021E6220
+ ldr r0, [r0, #0x74]
+ bx lr
+
+ .section .data
+ ; 0x021E6224
+ .incbin "baserom.nds", 0x236b44, 0x7dc
+
+ .section .bss
+ ; 0x021E69FC
+ .space 0x1A0