summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rw-r--r--arm9/arm9.lcf188
-rw-r--r--arm9/arm9.lsf25
-rw-r--r--arm9/asm/unk_02000E0C.s4
-rw-r--r--arm9/asm/unk_020023C0.s72
-rw-r--r--arm9/asm/unk_02006864.s2068
-rw-r--r--arm9/asm/unk_02046030.s30
-rw-r--r--arm9/global.inc134
-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/undefined_syms.txt100
-rw-r--r--global.inc4
13 files changed, 49927 insertions, 1574 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ef9276a4..d7525783 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,4 +8,4 @@ enable_language(ASM)
file(GLOB_RECURSE SOURCES RELATIVE ${CMAKE_SOURCE_DIR} "*.c")
add_executable(PokeDiamond ${SOURCES})
-target_include_directories(PokeDiamond PRIVATE include)
+target_include_directories(PokeDiamond PRIVATE include include-mw arm9/lib/include)
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index 3a4e620a..b9a69071 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -22,7 +22,7 @@ MEMORY {
MODULE_09 (RWX) : ORIGIN=0x02211E60, LENGTH=0
MODULE_10 (RWX) : ORIGIN=0x021D74E0, LENGTH=0
MODULE_11 (RWX) : ORIGIN=0x0222D5C0, LENGTH=0
- MODULE_12 (RWX) : ORIGIN=0, LENGTH=0
+ MODULE_12 (RWX) : ORIGIN=0x0222D5C0, LENGTH=0
MODULE_13 (RWX) : ORIGIN=0, LENGTH=0
MODULE_14 (RWX) : ORIGIN=0, LENGTH=0
MODULE_15 (RWX) : ORIGIN=0, LENGTH=0
@@ -253,92 +253,92 @@ SECTIONS {
.overlay : AT (0x107800) {
OVERLAY_TABLE(SDK_MODULE_00, 0)
- OVERLAY_TABLE(SDK_MODULE_01, 1)
- OVERLAY_TABLE(SDK_MODULE_02, 2)
- OVERLAY_TABLE(SDK_MODULE_03, 3)
- OVERLAY_TABLE(SDK_MODULE_04, 4)
- OVERLAY_TABLE(SDK_MODULE_05, 5)
- OVERLAY_TABLE(SDK_MODULE_06, 6)
- OVERLAY_TABLE(SDK_MODULE_07, 7)
- OVERLAY_TABLE(SDK_MODULE_08, 8)
- OVERLAY_TABLE(SDK_MODULE_09, 9)
- OVERLAY_TABLE(SDK_MODULE_10, 10)
- OVERLAY_TABLE(SDK_MODULE_11, 11)
- OVERLAY_TABLE(SDK_MODULE_12, 12)
- OVERLAY_TABLE(SDK_MODULE_13, 13)
- OVERLAY_TABLE(SDK_MODULE_14, 14)
- OVERLAY_TABLE(SDK_MODULE_15, 15)
- OVERLAY_TABLE(SDK_MODULE_16, 16)
- OVERLAY_TABLE(SDK_MODULE_17, 17)
- OVERLAY_TABLE(SDK_MODULE_18, 18)
- OVERLAY_TABLE(SDK_MODULE_19, 19)
- OVERLAY_TABLE(SDK_MODULE_20, 20)
- OVERLAY_TABLE(SDK_MODULE_21, 21)
- OVERLAY_TABLE(SDK_MODULE_22, 22)
- OVERLAY_TABLE(SDK_MODULE_23, 23)
- OVERLAY_TABLE(SDK_MODULE_24, 24)
- OVERLAY_TABLE(SDK_MODULE_25, 25)
- OVERLAY_TABLE(SDK_MODULE_26, 26)
- OVERLAY_TABLE(SDK_MODULE_27, 27)
- OVERLAY_TABLE(SDK_MODULE_28, 28)
- OVERLAY_TABLE(SDK_MODULE_29, 29)
- OVERLAY_TABLE(SDK_MODULE_30, 30)
- OVERLAY_TABLE(SDK_MODULE_31, 31)
- OVERLAY_TABLE(SDK_MODULE_32, 32)
- OVERLAY_TABLE(SDK_MODULE_33, 33)
- OVERLAY_TABLE(SDK_MODULE_34, 34)
- OVERLAY_TABLE(SDK_MODULE_35, 35)
- OVERLAY_TABLE(SDK_MODULE_36, 36)
- OVERLAY_TABLE(SDK_MODULE_37, 37)
- OVERLAY_TABLE(SDK_MODULE_38, 38)
- OVERLAY_TABLE(SDK_MODULE_39, 39)
- OVERLAY_TABLE(SDK_MODULE_40, 40)
- OVERLAY_TABLE(SDK_MODULE_41, 41)
- OVERLAY_TABLE(SDK_MODULE_42, 42)
- OVERLAY_TABLE(SDK_MODULE_43, 43)
- OVERLAY_TABLE(SDK_MODULE_44, 44)
- OVERLAY_TABLE(SDK_MODULE_45, 45)
- OVERLAY_TABLE(SDK_MODULE_46, 46)
- OVERLAY_TABLE(SDK_MODULE_47, 47)
- OVERLAY_TABLE(SDK_MODULE_48, 48)
- OVERLAY_TABLE(SDK_MODULE_49, 49)
- OVERLAY_TABLE(SDK_MODULE_50, 50)
- OVERLAY_TABLE(SDK_MODULE_51, 51)
- OVERLAY_TABLE(SDK_MODULE_52, 52)
- OVERLAY_TABLE(SDK_MODULE_53, 53)
- OVERLAY_TABLE(SDK_MODULE_54, 54)
- OVERLAY_TABLE(SDK_MODULE_55, 55)
- OVERLAY_TABLE(SDK_MODULE_56, 56)
- OVERLAY_TABLE(SDK_MODULE_57, 57)
- OVERLAY_TABLE(SDK_MODULE_58, 58)
- OVERLAY_TABLE(SDK_MODULE_59, 59)
- OVERLAY_TABLE(SDK_MODULE_60, 60)
- OVERLAY_TABLE(SDK_MODULE_61, 61)
- OVERLAY_TABLE(SDK_MODULE_62, 62)
- OVERLAY_TABLE(SDK_MODULE_63, 63)
- OVERLAY_TABLE(SDK_MODULE_64, 64)
- OVERLAY_TABLE(SDK_MODULE_65, 65)
- OVERLAY_TABLE(SDK_MODULE_66, 66)
- OVERLAY_TABLE(SDK_MODULE_67, 67)
- OVERLAY_TABLE(SDK_MODULE_68, 68)
- OVERLAY_TABLE(SDK_MODULE_69, 69)
- OVERLAY_TABLE(SDK_MODULE_70, 70)
- OVERLAY_TABLE(SDK_MODULE_71, 71)
- OVERLAY_TABLE(SDK_MODULE_72, 72)
- OVERLAY_TABLE(SDK_MODULE_73, 73)
- OVERLAY_TABLE(SDK_MODULE_74, 74)
- OVERLAY_TABLE(SDK_MODULE_75, 75)
- OVERLAY_TABLE(SDK_MODULE_76, 76)
- OVERLAY_TABLE(SDK_MODULE_77, 77)
- OVERLAY_TABLE(SDK_MODULE_78, 78)
- OVERLAY_TABLE(SDK_MODULE_79, 79)
- OVERLAY_TABLE(SDK_MODULE_80, 80)
- OVERLAY_TABLE(SDK_MODULE_81, 81)
- OVERLAY_TABLE(SDK_MODULE_82, 82)
- OVERLAY_TABLE(SDK_MODULE_83, 83)
- OVERLAY_TABLE(SDK_MODULE_84, 84)
- OVERLAY_TABLE(SDK_MODULE_85, 85)
- OVERLAY_TABLE(SDK_MODULE_86, 86)
+ OVERLAY_TABLE(SDK_MODULE_01, 1)
+ OVERLAY_TABLE(SDK_MODULE_02, 2)
+ OVERLAY_TABLE(SDK_MODULE_03, 3)
+ OVERLAY_TABLE(SDK_MODULE_04, 4)
+ OVERLAY_TABLE(SDK_MODULE_05, 5)
+ OVERLAY_TABLE(SDK_MODULE_06, 6)
+ OVERLAY_TABLE(SDK_MODULE_07, 7)
+ OVERLAY_TABLE(SDK_MODULE_08, 8)
+ OVERLAY_TABLE(SDK_MODULE_09, 9)
+ OVERLAY_TABLE(SDK_MODULE_10, 10)
+ OVERLAY_TABLE(SDK_MODULE_11, 11)
+ OVERLAY_TABLE(SDK_MODULE_12, 12)
+ OVERLAY_TABLE(SDK_MODULE_13, 13)
+ OVERLAY_TABLE(SDK_MODULE_14, 14)
+ OVERLAY_TABLE(SDK_MODULE_15, 15)
+ OVERLAY_TABLE(SDK_MODULE_16, 16)
+ OVERLAY_TABLE(SDK_MODULE_17, 17)
+ OVERLAY_TABLE(SDK_MODULE_18, 18)
+ OVERLAY_TABLE(SDK_MODULE_19, 19)
+ OVERLAY_TABLE(SDK_MODULE_20, 20)
+ OVERLAY_TABLE(SDK_MODULE_21, 21)
+ OVERLAY_TABLE(SDK_MODULE_22, 22)
+ OVERLAY_TABLE(SDK_MODULE_23, 23)
+ OVERLAY_TABLE(SDK_MODULE_24, 24)
+ OVERLAY_TABLE(SDK_MODULE_25, 25)
+ OVERLAY_TABLE(SDK_MODULE_26, 26)
+ OVERLAY_TABLE(SDK_MODULE_27, 27)
+ OVERLAY_TABLE(SDK_MODULE_28, 28)
+ OVERLAY_TABLE(SDK_MODULE_29, 29)
+ OVERLAY_TABLE(SDK_MODULE_30, 30)
+ OVERLAY_TABLE(SDK_MODULE_31, 31)
+ OVERLAY_TABLE(SDK_MODULE_32, 32)
+ OVERLAY_TABLE(SDK_MODULE_33, 33)
+ OVERLAY_TABLE(SDK_MODULE_34, 34)
+ OVERLAY_TABLE(SDK_MODULE_35, 35)
+ OVERLAY_TABLE(SDK_MODULE_36, 36)
+ OVERLAY_TABLE(SDK_MODULE_37, 37)
+ OVERLAY_TABLE(SDK_MODULE_38, 38)
+ OVERLAY_TABLE(SDK_MODULE_39, 39)
+ OVERLAY_TABLE(SDK_MODULE_40, 40)
+ OVERLAY_TABLE(SDK_MODULE_41, 41)
+ OVERLAY_TABLE(SDK_MODULE_42, 42)
+ OVERLAY_TABLE(SDK_MODULE_43, 43)
+ OVERLAY_TABLE(SDK_MODULE_44, 44)
+ OVERLAY_TABLE(SDK_MODULE_45, 45)
+ OVERLAY_TABLE(SDK_MODULE_46, 46)
+ OVERLAY_TABLE(SDK_MODULE_47, 47)
+ OVERLAY_TABLE(SDK_MODULE_48, 48)
+ OVERLAY_TABLE(SDK_MODULE_49, 49)
+ OVERLAY_TABLE(SDK_MODULE_50, 50)
+ OVERLAY_TABLE(SDK_MODULE_51, 51)
+ OVERLAY_TABLE(SDK_MODULE_52, 52)
+ OVERLAY_TABLE(SDK_MODULE_53, 53)
+ OVERLAY_TABLE(SDK_MODULE_54, 54)
+ OVERLAY_TABLE(SDK_MODULE_55, 55)
+ OVERLAY_TABLE(SDK_MODULE_56, 56)
+ OVERLAY_TABLE(SDK_MODULE_57, 57)
+ OVERLAY_TABLE(SDK_MODULE_58, 58)
+ OVERLAY_TABLE(SDK_MODULE_59, 59)
+ OVERLAY_TABLE(SDK_MODULE_60, 60)
+ OVERLAY_TABLE(SDK_MODULE_61, 61)
+ OVERLAY_TABLE(SDK_MODULE_62, 62)
+ OVERLAY_TABLE(SDK_MODULE_63, 63)
+ OVERLAY_TABLE(SDK_MODULE_64, 64)
+ OVERLAY_TABLE(SDK_MODULE_65, 65)
+ OVERLAY_TABLE(SDK_MODULE_66, 66)
+ OVERLAY_TABLE(SDK_MODULE_67, 67)
+ OVERLAY_TABLE(SDK_MODULE_68, 68)
+ OVERLAY_TABLE(SDK_MODULE_69, 69)
+ OVERLAY_TABLE(SDK_MODULE_70, 70)
+ OVERLAY_TABLE(SDK_MODULE_71, 71)
+ OVERLAY_TABLE(SDK_MODULE_72, 72)
+ OVERLAY_TABLE(SDK_MODULE_73, 73)
+ OVERLAY_TABLE(SDK_MODULE_74, 74)
+ OVERLAY_TABLE(SDK_MODULE_75, 75)
+ OVERLAY_TABLE(SDK_MODULE_76, 76)
+ OVERLAY_TABLE(SDK_MODULE_77, 77)
+ OVERLAY_TABLE(SDK_MODULE_78, 78)
+ OVERLAY_TABLE(SDK_MODULE_79, 79)
+ OVERLAY_TABLE(SDK_MODULE_80, 80)
+ OVERLAY_TABLE(SDK_MODULE_81, 81)
+ OVERLAY_TABLE(SDK_MODULE_82, 82)
+ OVERLAY_TABLE(SDK_MODULE_83, 83)
+ OVERLAY_TABLE(SDK_MODULE_84, 84)
+ OVERLAY_TABLE(SDK_MODULE_85, 85)
+ OVERLAY_TABLE(SDK_MODULE_86, 86)
} > .overlay
.MODULE.00 : AT (0x108400)
@@ -497,7 +497,19 @@ SECTIONS {
module_11.o (.bss)
} >> MODULE_11
- OVERLAY_FILE(12, 0x1DBE00, FILE_1DFE00.o)
+ .MODULE.12 : AT (0x1DBE00)
+ {
+ module_12.o (.text)
+ module_12.o (.sdata)
+ module_12.o (.data)
+ } > MODULE_12
+
+ .MODULE.12.bss :
+ {
+ module_12.o (.sbss)
+ module_12.o (.bss)
+ } >> MODULE_12
+
OVERLAY_FILE(13, 0x1F5200, FILE_1F9200.o)
OVERLAY_FILE(14, 0x223E00, FILE_227E00.o)
OVERLAY_FILE(15, 0x233400, FILE_237400.o)
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index 3df64d7d..69a380fc 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -58,62 +58,63 @@ Autoload EXT
Overlay overlay_00
{
Address 0x021D74E0
- Object FILE_10C400.o
+ Object module_00_dummy.o
}
Overlay overlay_01
{
Address 0x021D74E0
- Object FILE_10C600.o
+ Object module_01.o
}
Overlay overlay_02
{
Address 0x021D7520
- Object FILE_10C800.o
+ Object module_02_dummy.o
}
Overlay overlay_03
{
Address 0x01FF8700
- Object FILE_10CA00.o
+ Object module_03_dummy.o
}
Overlay overlay_04
{
Address 0x021D74E0
- Object FILE_10CC00.o
+ Object thumb_04.o
+ Object arm_04.o
}
Overlay overlay_05
{
Address 0x021D74E0
- Object FILE_145400.o
+ Object module_05.o
}
Overlay overlay_06
{
Address 0x022396A0
- Object FILE_16B600.o
+ Object module_06.o
}
Overlay overlay_07
{
Address 0x02211E60
- Object FILE_184400.o
+ Object module_07.o
}
Overlay overlay_08
{
Address 0x02211E60
- Object FILE_187800.o
+ Object module_08.o
}
Overlay overlay_09
{
Address 0x02211E60
- Object FILE_1A3000.o
+ Object module_09.o
}
Overlay overlay_10
{
Address 0x021D74E0
- Object FILE_1AD200.o
+ Object module_10_dummy.o
}
Overlay overlay_11
{
Address 0x0222D5C0
- Object FILE_1AD400.o
+ Object module_11.o
}
Overlay overlay_12
{
diff --git a/arm9/asm/unk_02000E0C.s b/arm9/asm/unk_02000E0C.s
index 50b0dace..9c67c9fd 100644
--- a/arm9/asm/unk_02000E0C.s
+++ b/arm9/asm/unk_02000E0C.s
@@ -19,7 +19,7 @@ FUN_02000E0C: ; 0x02000E0C
cmp r0, r1
beq _02000E2C
mov r1, #0x0
- bl FUN_02005FDC
+ bl HandleLoadOverlay
_02000E2C:
ldr r0, _02000E74 ; =0x02106FA0
mov r2, #0x0
@@ -51,7 +51,7 @@ _02000E4A:
sub r1, r1, #0x1
cmp r0, r1
beq _02000E70
- bl FUN_02005F60
+ bl UnloadOverlayByID
_02000E70:
pop {r3, pc}
nop
diff --git a/arm9/asm/unk_020023C0.s b/arm9/asm/unk_020023C0.s
index 2024d9d7..ef8f06bf 100644
--- a/arm9/asm/unk_020023C0.s
+++ b/arm9/asm/unk_020023C0.s
@@ -7793,8 +7793,10 @@ _02005F36:
bx lr
.balign 4
- thumb_func_start FUN_02005F3C
-FUN_02005F3C: ; 0x02005F3C
+ ; Code that handles overlays?
+
+ thumb_func_start FreeOverlayAllocation
+FreeOverlayAllocation: ; 0x02005F3C
push {r4, lr}
add r4, r0, #0x0
ldr r0, [r4, #0x4]
@@ -7813,12 +7815,12 @@ _02005F5A:
str r0, [r4, #0x4]
pop {r4, pc}
- thumb_func_start FUN_02005F60
-FUN_02005F60: ; 0x02005F60
+ thumb_func_start UnloadOverlayByID
+UnloadOverlayByID: ; 0x02005F60
push {r4, lr}
add r4, r0, #0x0
- bl FUN_02005F90
- bl FUN_0200610C
+ bl GetOverlayLoadDestination
+ bl GetLoadedOverlaysInRegion
mov r2, #0x0
add r3, r0, #0x0
_02005F70:
@@ -7830,7 +7832,7 @@ _02005F70:
bne _02005F86
lsl r1, r2, #0x3
add r0, r0, r1
- bl FUN_02005F3C
+ bl FreeOverlayAllocation
pop {r4, pc}
_02005F86:
add r2, r2, #0x1
@@ -7839,8 +7841,8 @@ _02005F86:
blt _02005F70
pop {r4, pc}
- thumb_func_start FUN_02005F90
-FUN_02005F90: ; 0x02005F90
+ thumb_func_start GetOverlayLoadDestination
+GetOverlayLoadDestination: ; 0x02005F90
push {lr}
sub sp, #0x2c
add r2, r0, #0x0
@@ -7881,24 +7883,24 @@ _02005FD2:
.balign 4
_02005FD8: .word 0x027E0000
- thumb_func_start FUN_02005FDC
-FUN_02005FDC: ; 0x02005FDC
+ thumb_func_start HandleLoadOverlay
+HandleLoadOverlay: ; 0x02005FDC
push {r3-r7, lr}
add r4, r1, #0x0
mov r1, #0x0
mvn r1, r1
add r5, r0, #0x0
str r1, [sp, #0x0]
- bl FUN_02006090
+ bl CanOverlayBeLoaded
cmp r0, #0x0
bne _02005FF4
mov r0, #0x0
pop {r3-r7, pc}
_02005FF4:
add r0, r5, #0x0
- bl FUN_02005F90
+ bl GetOverlayLoadDestination
add r7, r0, #0x0
- bl FUN_0200610C
+ bl GetLoadedOverlaysInRegion
add r3, r0, #0x0
mov r6, #0x0
add r1, r3, #0x0
@@ -7942,19 +7944,19 @@ _0200603C:
_0200604A:
mov r0, #0x0
add r1, r5, #0x0
- bl FUN_02006168
+ bl LoadOverlayNormal
add r4, r0, #0x0
b _02006076
_02006056:
mov r0, #0x0
add r1, r5, #0x0
- bl FUN_02006170
+ bl LoadOverlayNoInit
add r4, r0, #0x0
b _02006076
_02006062:
mov r0, #0x0
add r1, r5, #0x0
- bl FUN_020061A8
+ bl LoadOverlayNoInitAsync
add r4, r0, #0x0
b _02006076
_0200606E:
@@ -7976,14 +7978,14 @@ _0200608C:
mov r0, #0x1
pop {r3-r7, pc}
- thumb_func_start FUN_02006090
-FUN_02006090: ; 0x02006090
+ thumb_func_start CanOverlayBeLoaded
+CanOverlayBeLoaded: ; 0x02006090
push {r3-r7, lr}
sub sp, #0x10
add r1, sp, #0xc
add r2, sp, #0x8
add r4, r0, #0x0
- bl FUN_02006130
+ bl GetOverlayRamBounds
cmp r0, #0x0
bne _020060A8
add sp, #0x10
@@ -7991,8 +7993,8 @@ FUN_02006090: ; 0x02006090
pop {r3-r7, pc}
_020060A8:
add r0, r4, #0x0
- bl FUN_02005F90
- bl FUN_0200610C
+ bl GetOverlayLoadDestination
+ bl GetLoadedOverlaysInRegion
add r5, r0, #0x0
mov r4, #0x0
add r6, sp, #0x4
@@ -8004,7 +8006,7 @@ _020060BA:
ldr r0, [r5, #0x0]
add r1, r6, #0x0
add r2, r7, #0x0
- bl FUN_02006130
+ bl GetOverlayRamBounds
cmp r0, #0x1
bne _020060FC
ldr r1, [sp, #0x4]
@@ -8042,8 +8044,8 @@ _020060FC:
pop {r3-r7, pc}
.balign 4
- thumb_func_start FUN_0200610C
-FUN_0200610C: ; 0x0200610C
+ thumb_func_start GetLoadedOverlaysInRegion
+GetLoadedOverlaysInRegion: ; 0x0200610C
cmp r0, #0x0
beq _02006118
cmp r0, #0x1
@@ -8064,8 +8066,8 @@ _02006124: .word 0x021C45B0
_02006128: .word 0x021C45F0
_0200612C: .word 0x021C4630
- thumb_func_start FUN_02006130
-FUN_02006130: ; 0x02006130
+ thumb_func_start GetOverlayRamBounds
+GetOverlayRamBounds: ; 0x02006130
push {r4-r5, lr}
sub sp, #0x2c
add r3, r0, #0x0
@@ -8094,15 +8096,15 @@ _02006152:
pop {r4-r5, pc}
.balign 4
- thumb_func_start FUN_02006168
-FUN_02006168: ; 0x02006168
+ thumb_func_start LoadOverlayNormal
+LoadOverlayNormal: ; 0x02006168
ldr r3, _0200616C ; =FS_LoadOverlay
bx r3
.balign 4
_0200616C: .word FS_LoadOverlay
- thumb_func_start FUN_02006170
-FUN_02006170: ; 0x02006170
+ thumb_func_start LoadOverlayNoInit
+LoadOverlayNoInit: ; 0x02006170
push {lr}
sub sp, #0x2c
add r3, r0, #0x0
@@ -8131,8 +8133,8 @@ _0200619A:
pop {pc}
.balign 4
- thumb_func_start FUN_020061A8
-FUN_020061A8: ; 0x020061A8
+ thumb_func_start LoadOverlayNoInitAsync
+LoadOverlayNoInitAsync: ; 0x020061A8
push {lr}
sub sp, #0x74
add r3, r0, #0x0
@@ -8289,7 +8291,7 @@ _020062AE:
cmp r0, r1
beq _020062BE
mov r1, #0x2
- bl FUN_02005FDC
+ bl HandleLoadOverlay
_020062BE:
mov r0, #0x1
str r0, [r4, #0x10]
@@ -8330,7 +8332,7 @@ _020062F0:
mvn r1, r1
cmp r0, r1
beq _0200630A
- bl FUN_02005F60
+ bl UnloadOverlayByID
_0200630A:
mov r0, #0x1
pop {r4, pc}
diff --git a/arm9/asm/unk_02006864.s b/arm9/asm/unk_02006864.s
index fbfb90df..ae663521 100644
--- a/arm9/asm/unk_02006864.s
+++ b/arm9/asm/unk_02006864.s
@@ -35,7 +35,7 @@ FUN_0200687C: ; 0x0200687C
add r7, r0, #0x0
beq _020068C2
add r1, sp, #0x4
- blx FUN_020B0030
+ bl FUN_020B0030
cmp r0, #0x0
beq _020068BC
cmp r4, #0x0
@@ -75,7 +75,7 @@ FUN_020068C8: ; 0x020068C8
add r7, r0, #0x0
beq _0200692C
add r1, sp, #0x4
- blx FUN_020B0180
+ bl FUN_020B0180
cmp r0, #0x0
beq _02006926
cmp r4, #0x0
@@ -144,7 +144,7 @@ FUN_02006948: ; 0x02006948
cmp r0, #0x0
beq _02006A2A
add r1, sp, #0x8
- blx FUN_020B0138
+ bl FUN_020B0138
cmp r0, #0x0
beq _02006A24
ldr r0, [sp, #0x8]
@@ -160,7 +160,7 @@ _02006982:
ldr r0, [sp, #0x8]
add r1, r5, #0x0
ldr r0, [r0, #0xc]
- blx DC_FlushRange
+ bl DC_FlushRange
cmp r4, #0x7
bhi _02006A14
add r0, r4, r4
@@ -179,7 +179,7 @@ _0200699C: ; jump table (using 16-bit offset)
.short _020069C6 - _0200699C - 2; case 6
.short _020069FA - _0200699C - 2; case 7
_020069AC:
- blx GX_BeginLoadBGExtPltt
+ bl GX_BeginLoadBGExtPltt
ldr r0, [sp, #0x8]
ldr r3, _02006A30 ; =0x020ECBB0
lsl r4, r4, #0x2
@@ -188,10 +188,10 @@ _020069AC:
add r1, r6, #0x0
add r2, r5, #0x0
blx r3
- blx GX_EndLoadBGExtPltt
+ bl GX_EndLoadBGExtPltt
b _02006A24
_020069C6:
- blx GXS_BeginLoadBGExtPltt
+ bl GXS_BeginLoadBGExtPltt
ldr r0, [sp, #0x8]
ldr r3, _02006A30 ; =0x020ECBB0
lsl r4, r4, #0x2
@@ -200,10 +200,10 @@ _020069C6:
add r1, r6, #0x0
add r2, r5, #0x0
blx r3
- blx GXS_EndLoadBGExtPltt
+ bl GXS_EndLoadBGExtPltt
b _02006A24
_020069E0:
- blx GX_BeginLoadOBJExtPltt
+ bl GX_BeginLoadOBJExtPltt
ldr r0, [sp, #0x8]
ldr r3, _02006A30 ; =0x020ECBB0
lsl r4, r4, #0x2
@@ -212,10 +212,10 @@ _020069E0:
add r1, r6, #0x0
add r2, r5, #0x0
blx r3
- blx GX_EndLoadOBJExtPltt
+ bl GX_EndLoadOBJExtPltt
b _02006A24
_020069FA:
- blx GXS_BeginLoadOBJExtPltt
+ bl GXS_BeginLoadOBJExtPltt
ldr r0, [sp, #0x8]
ldr r3, _02006A30 ; =0x020ECBB0
lsl r4, r4, #0x2
@@ -224,7 +224,7 @@ _020069FA:
add r1, r6, #0x0
add r2, r5, #0x0
blx r3
- blx GXS_EndLoadOBJExtPltt
+ bl GXS_EndLoadOBJExtPltt
b _02006A24
_02006A14:
ldr r0, [sp, #0x8]
@@ -259,7 +259,7 @@ FUN_02006A34: ; 0x02006A34
add r7, r0, #0x0
beq _02006A80
add r1, sp, #0x4
- blx FUN_020B0088
+ bl FUN_020B0088
cmp r0, #0x0
beq _02006A7A
cmp r4, #0x0
@@ -270,7 +270,7 @@ _02006A60:
ldr r0, [sp, #0x4]
add r1, r4, #0x0
ldr r0, [r0, #0x14]
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r0, [sp, #0x4]
ldr r3, _02006A88 ; =0x020ECBA0
lsl r5, r5, #0x2
@@ -303,11 +303,11 @@ FUN_02006A8C: ; 0x02006A8C
add r6, r0, #0x0
beq _02006AE0
add r1, sp, #0x4
- blx FUN_020B00F0
+ bl FUN_020B00F0
add r7, r0, #0x0
add r0, r6, #0x0
add r1, sp, #0x8
- blx FUN_020B0138
+ bl FUN_020B0138
cmp r0, #0x0
beq _02006ADA
cmp r7, #0x0
@@ -318,14 +318,14 @@ FUN_02006A8C: ; 0x02006A8C
ldr r0, [sp, #0x8]
ldr r1, [sp, #0x4]
add r3, r5, #0x0
- blx FUN_020B10E8
+ bl FUN_020B10E8
b _02006ADA
_02006ACE:
ldr r0, [sp, #0x8]
ldr r3, [sp, #0x24]
add r1, r4, #0x0
add r2, r5, #0x0
- blx FUN_020B1240
+ bl FUN_020B1240
_02006ADA:
add r0, r6, #0x0
bl FUN_02016A18
@@ -346,7 +346,7 @@ FUN_02006AE4: ; 0x02006AE4
ldr r4, _02006B30 ; =0x00000000
beq _02006B28
add r1, sp, #0x4
- blx FUN_020B0088
+ bl FUN_020B0088
cmp r0, #0x0
beq _02006B22
ldr r1, [sp, #0x18]
@@ -388,7 +388,7 @@ FUN_02006B38: ; 0x02006B38
add r4, r0, #0x0
beq _02006B9E
add r1, sp, #0x4
- blx FUN_020B0088
+ bl FUN_020B0088
cmp r0, #0x0
beq _02006B98
ldr r1, [sp, #0x18]
@@ -450,7 +450,7 @@ FUN_02006BB0: ; 0x02006BB0
add r5, r0, #0x0
beq _02006BD6
add r1, r4, #0x0
- blx FUN_020B0030
+ bl FUN_020B0030
cmp r0, #0x0
bne _02006BD6
add r0, r5, #0x0
@@ -473,7 +473,7 @@ FUN_02006BDC: ; 0x02006BDC
add r5, r0, #0x0
beq _02006C02
add r1, r4, #0x0
- blx FUN_020B0180
+ bl FUN_020B0180
cmp r0, #0x0
bne _02006C02
add r0, r5, #0x0
@@ -495,7 +495,7 @@ FUN_02006C08: ; 0x02006C08
add r4, r0, #0x0
beq _02006C2C
add r1, r5, #0x0
- blx FUN_020B0138
+ bl FUN_020B0138
cmp r0, #0x0
bne _02006C2C
add r0, r4, #0x0
@@ -517,7 +517,7 @@ FUN_02006C30: ; 0x02006C30
add r5, r0, #0x0
beq _02006C56
add r1, r4, #0x0
- blx FUN_020AFEB8
+ bl FUN_020AFEB8
cmp r0, #0x0
bne _02006C56
add r0, r5, #0x0
@@ -540,7 +540,7 @@ FUN_02006C5C: ; 0x02006C5C
add r5, r0, #0x0
beq _02006C82
add r1, r4, #0x0
- blx thunk_FUN_020afda0_2
+ bl thunk_FUN_020afda0_2
cmp r0, #0x0
bne _02006C82
add r0, r5, #0x0
@@ -617,7 +617,7 @@ _02006CFC:
beq _02006D10
add r0, r4, #0x0
add r1, r5, #0x0
- blx MI_UncompressLZ8
+ bl MI_UncompressLZ8
add r0, r4, #0x0
bl FUN_02016A18
_02006D10:
@@ -683,7 +683,7 @@ _02006D7C:
beq _02006D90
add r0, r4, #0x0
add r1, r5, #0x0
- blx MI_UncompressLZ8
+ bl MI_UncompressLZ8
add r0, r4, #0x0
bl FUN_02016A18
_02006D90:
@@ -736,7 +736,7 @@ FUN_02006D98: ; 0x02006D98
ldr r1, [r4, r1]
mov r0, #0x0
mov r2, #0x4
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r5, #0x0
mov r1, #0xc0
bl FUN_02016998
@@ -746,7 +746,7 @@ FUN_02006D98: ; 0x02006D98
ldr r1, [r4, r1]
mov r0, #0x0
mov r2, #0x4
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r6, #0x0
add r5, r4, #0x0
add r7, r6, #0x0
@@ -754,12 +754,12 @@ _02006E12:
add r0, r7, #0x0
add r1, r5, #0x0
mov r2, #0x98
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r6, r6, #0x1
add r5, #0x98
cmp r6, #0x4
blt _02006E12
- blx FUN_020B02C8
+ bl FUN_020B02C8
ldr r2, _02006EC8 ; =0x000002E3
mov r0, #0x0
strb r0, [r4, r2]
@@ -770,7 +770,7 @@ _02006E12:
bl LoadFromNarc_2
add r1, sp, #0xc
str r0, [sp, #0x4]
- blx FUN_020B0088
+ bl FUN_020B0088
ldr r0, [sp, #0xc]
mov r1, #0xaf
ldr r0, [r0, #0x4]
@@ -795,7 +795,7 @@ _02006E12:
ldrb r1, [r1, #0x0]
ldr r0, [r4, r0]
lsl r2, r2, #0xe
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
mov r7, #0xab
ldr r6, _02006ECC ; =0x00005050
@@ -850,7 +850,7 @@ FUN_02006ED4: ; 0x02006ED4
bl FUN_020082A8
add r0, r5, #0x0
bl FUN_020086F4
- blx FUN_020BB394
+ bl FUN_020BB394
mov r6, #0x9f
mov r0, #0x0
ldr r4, _02007250 ; =0x04000444
@@ -910,7 +910,7 @@ _02006F48:
add r1, #0x24
blx r2
_02006F56:
- blx FUN_020BB394
+ bl FUN_020BB394
ldr r0, _02007258 ; =0x000002E3
ldrb r0, [r5, r0]
cmp r0, #0x1
@@ -969,7 +969,7 @@ _02006F7E:
ldrsh r0, [r0, r1]
mov r1, #0x2
ldrsh r1, [r2, r1]
- blx G3_RotX
+ bl G3_RotX
ldrh r0, [r4, #0x3a]
asr r0, r0, #0x4
lsl r1, r0, #0x2
@@ -978,7 +978,7 @@ _02006F7E:
ldrsh r0, [r0, r1]
mov r1, #0x2
ldrsh r1, [r2, r1]
- blx G3_RotY
+ bl G3_RotY
ldrh r0, [r4, #0x3c]
asr r0, r0, #0x4
lsl r1, r0, #0x2
@@ -987,7 +987,7 @@ _02006F7E:
ldrsh r0, [r0, r1]
mov r1, #0x2
ldrsh r1, [r2, r1]
- blx G3_RotZ
+ bl G3_RotZ
ldr r0, [r4, #0x28]
lsl r0, r0, #0xc
neg r1, r0
@@ -1120,7 +1120,7 @@ _02006F7E:
add r2, r3, r2
asr r1, r1, #0x10
mov r3, r12
- blx FUN_020B0250
+ bl FUN_020B0250
b _02007174
_02007104:
mov r0, #0x34
@@ -1177,7 +1177,7 @@ _02007104:
lsl r1, r1, #0x10
asr r1, r1, #0x10
add r2, r6, r2
- blx FUN_020B0250
+ bl FUN_020B0250
_02007174:
add r0, r4, #0x0
add r0, #0x6c
@@ -1340,7 +1340,7 @@ _0200727C:
lsl r1, r1, #0x10
ldr r2, _020072E0 ; =0xFFFFFC18
asr r1, r1, #0x10
- blx FUN_020B0250
+ bl FUN_020B0250
_020072BC:
ldr r0, [sp, #0x14]
add r4, #0x98
@@ -1529,7 +1529,7 @@ _02007408:
mov r0, #0x0
add r1, r5, #0x0
mov r2, #0x98
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r1, [r4, r6]
mov r0, #0x1
bic r1, r0
@@ -1658,7 +1658,7 @@ _02007408:
add r1, r4, r6
add r1, #0x84
mov r2, #0x14
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
_02007518:
add r0, r4, r6
add sp, #0xc
@@ -3499,7 +3499,7 @@ FUN_020081C4: ; 0x020081C4
strb r1, [r4, r0]
sub r0, #0x81
add r0, r4, r0
- blx FUN_020B1A24
+ bl FUN_020B1A24
mov r3, #0xae
lsl r3, r3, #0x2
mov r1, #0x20
@@ -3525,7 +3525,7 @@ FUN_020081C4: ; 0x020081C4
ldr r1, [r4, r1]
mov r2, #0x0
add r3, r4, r3
- blx FUN_020B1528
+ bl FUN_020B1528
_02008212:
ldr r0, _02008258 ; =0x000002E2
ldrb r1, [r4, r0]
@@ -3535,7 +3535,7 @@ _02008212:
strb r1, [r4, r0]
sub r0, #0x5e
add r0, r4, r0
- blx FUN_020B19DC
+ bl FUN_020B19DC
mov r3, #0xaa
lsl r3, r3, #0x2
add r0, r3, #0x0
@@ -3556,7 +3556,7 @@ _02008212:
add r0, r4, r0
mov r2, #0x0
add r3, r4, r3
- blx FUN_020B1240
+ bl FUN_020B1240
_02008252:
pop {r4, pc}
.balign 4
@@ -3652,7 +3652,7 @@ _020082CC:
bl LoadFromNarc_2
add r1, sp, #0x58
str r0, [sp, #0x4c]
- blx FUN_020B0088
+ bl FUN_020B0088
ldr r0, [sp, #0x58]
mov r1, #0xaf
ldr r0, [r0, #0x4]
@@ -3767,7 +3767,7 @@ _020083C4:
ldr r1, [sp, #0xc]
ldr r0, [sp, #0x14]
lsl r1, r1, #0x1
- blx _u32_div_f
+ bl _u32_div_f
cmp r1, #0x0
beq _020083F4
mov r0, #0xab
@@ -3786,7 +3786,7 @@ _020083C4:
_020083F4:
ldr r1, [sp, #0xc]
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r1, #0x0
beq _02008416
mov r0, #0xab
@@ -3890,7 +3890,7 @@ _020084B4:
ldr r1, [sp, #0x8]
ldr r0, [sp, #0x14]
lsl r1, r1, #0x1
- blx _u32_div_f
+ bl _u32_div_f
cmp r1, #0x0
beq _020084E4
mov r0, #0xab
@@ -3909,7 +3909,7 @@ _020084B4:
_020084E4:
ldr r1, [sp, #0x8]
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r1, #0x0
beq _02008504
mov r0, #0xab
@@ -4086,7 +4086,7 @@ _0200862C:
ldr r1, [sp, #0x4]
ldr r0, [sp, #0x0]
lsl r1, r1, #0x1
- blx _u32_div_f
+ bl _u32_div_f
cmp r1, #0x0
beq _02008654
mov r0, #0xab
@@ -4101,7 +4101,7 @@ _0200862C:
_02008654:
ldr r1, [sp, #0x4]
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r1, #0x0
beq _02008672
mov r0, #0xab
@@ -4215,7 +4215,7 @@ _02008706:
bl LoadFromNarc_2
add r1, sp, #0x18
str r0, [sp, #0x10]
- blx FUN_020B0138
+ bl FUN_020B0138
ldr r0, [sp, #0x18]
mov r7, #0x0
ldr r1, [r0, #0x0]
@@ -4261,7 +4261,7 @@ _0200874A:
bl LoadFromNarc_2
add r1, sp, #0x18
str r0, [sp, #0x4]
- blx FUN_020B0138
+ bl FUN_020B0138
ldr r0, [sp, #0x18]
mov r7, #0xad
ldr r0, [r0, #0xc]
@@ -5035,10 +5035,10 @@ FUN_02008D44: ; 0x02008D44
beq _02008D98
b _02008DC4
_02008D5A:
- blx GX_GetBankForOBJ
+ bl GX_GetBankForOBJ
cmp r0, #0x40
beq _02008D6A
- blx GX_GetBankForOBJ
+ bl GX_GetBankForOBJ
cmp r0, #0x20
bne _02008D7A
_02008D6A:
@@ -5065,10 +5065,10 @@ _02008D8A:
bl FUN_0201D194
pop {r4, pc}
_02008D98:
- blx GX_GetBankForOBJ
+ bl GX_GetBankForOBJ
cmp r0, #0x30
beq _02008DA8
- blx GX_GetBankForOBJ
+ bl GX_GetBankForOBJ
cmp r0, #0x50
bne _02008DB6
_02008DA8:
@@ -5127,7 +5127,7 @@ FUN_02008DEC: ; 0x02008DEC
mov r1, #0x0
add r2, r7, #0x0
str r0, [r4, #0x4]
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
str r5, [r4, #0x8]
mov r0, #0x0
str r0, [r4, #0xc]
@@ -6286,7 +6286,7 @@ _0200969C:
mov r2, #0x18
add r1, r5, #0x4
mul r2, r3
- blx memcpy
+ bl memcpy
_020096B0:
pop {r4-r6, pc}
.balign 4
@@ -6558,7 +6558,7 @@ FUN_0200986C: ; 0x0200986C
add r4, r0, #0x0
add r0, r6, #0x0
add r1, r4, #0x0
- blx FUN_020B0088
+ bl FUN_020B0088
str r5, [r4, #0x4]
add r0, r4, #0x0
pop {r4-r6, pc}
@@ -6576,7 +6576,7 @@ FUN_0200988C: ; 0x0200988C
add r4, r0, #0x0
add r0, r7, #0x0
add r1, r4, #0x0
- blx FUN_020B0138
+ bl FUN_020B0138
str r5, [r4, #0x4]
str r6, [r4, #0x8]
add r0, r4, #0x0
@@ -6593,7 +6593,7 @@ FUN_020098B0: ; 0x020098B0
add r4, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
- blx FUN_020AFEB8
+ bl FUN_020AFEB8
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -6608,7 +6608,7 @@ FUN_020098CC: ; 0x020098CC
add r4, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
- blx thunk_FUN_020afda0_2
+ bl thunk_FUN_020afda0_2
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -6623,7 +6623,7 @@ FUN_020098E8: ; 0x020098E8
add r4, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
- blx FUN_020AFFD8
+ bl FUN_020AFFD8
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -6638,7 +6638,7 @@ FUN_02009904: ; 0x02009904
add r4, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
- blx thunk_FUN_020afda0
+ bl thunk_FUN_020afda0
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -6799,7 +6799,7 @@ _02009A34:
beq _02009A48
add r0, r4, #0x0
add r1, r5, #0x0
- blx MI_UncompressLZ8
+ bl MI_UncompressLZ8
add r0, r4, #0x0
bl FUN_02016A18
_02009A48:
@@ -7367,7 +7367,7 @@ FUN_02009E88: ; 0x02009E88
mov r1, #0x0
bl FUN_02009E54
add r1, r4, #0x0
- blx FUN_020B19C4
+ bl FUN_020B19C4
mov r1, #0x0
mvn r1, r1
cmp r0, r1
@@ -7458,7 +7458,7 @@ _02009F1C:
lsl r2, r4, #0x10
lsr r1, r1, #0x10
lsr r2, r2, #0x10
- blx FUN_020B0E34
+ bl FUN_020B0E34
cmp r0, #0x0
bne _02009F48
bl ErrorHandling
@@ -7481,7 +7481,7 @@ _02009F48:
lsr r1, r1, #0x10
lsr r2, r2, #0x10
lsr r3, r3, #0x10
- blx FUN_020B0E34
+ bl FUN_020B0E34
cmp r0, #0x0
bne _02009F78
bl ErrorHandling
@@ -7498,11 +7498,11 @@ FUN_02009F80: ; 0x02009F80
ldr r0, [r0, #0x0]
cmp r0, #0x0
beq _02009F98
- blx FUN_020B0870
+ bl FUN_020B0870
ldr r0, _02009F9C ; =0x021C4670
ldr r0, [r0, #0x0]
add r0, #0x1c
- blx FUN_020B0870
+ bl FUN_020B0870
_02009F98:
pop {r3, pc}
nop
@@ -7627,7 +7627,7 @@ FUN_0200A074: ; 0x0200A074
add r2, r1, #0x0
ldr r0, [r0, #0x0]
add r1, r3, #0x0
- blx FUN_020B0C7C
+ bl FUN_020B0C7C
add r4, r0, #0x0
bne _0200A08C
bl ErrorHandling
@@ -7646,7 +7646,7 @@ FUN_0200A094: ; 0x0200A094
ldr r0, [r0, #0x0]
add r1, r3, #0x0
add r0, #0x1c
- blx FUN_020B0C7C
+ bl FUN_020B0C7C
add r4, r0, #0x0
bne _0200A0AE
bl ErrorHandling
@@ -7662,7 +7662,7 @@ FUN_0200A0B8: ; 0x0200A0B8
add r1, r0, #0x0
ldr r0, _0200A0D4 ; =0x021C4670
ldr r0, [r0, #0x0]
- blx FUN_020B0BB0
+ bl FUN_020B0BB0
add r4, r0, #0x0
ldr r0, _0200A0D8 ; =0x0000FFFE
cmp r4, r0
@@ -7682,7 +7682,7 @@ FUN_0200A0DC: ; 0x0200A0DC
ldr r0, _0200A0FC ; =0x021C4670
ldr r0, [r0, #0x0]
add r0, #0x1c
- blx FUN_020B0BB0
+ bl FUN_020B0BB0
add r4, r0, #0x0
ldr r0, _0200A100 ; =0x0000FFFE
cmp r4, r0
@@ -7757,7 +7757,7 @@ _0200A166:
ldrsh r2, [r5, r2]
ldr r0, _0200A198 ; =0x04000050
ldr r1, [r5, #0x0]
- blx G2x_SetBlendBrightness_
+ bl G2x_SetBlendBrightness_
b _0200A18E
_0200A17C:
mov r0, #0x2
@@ -7767,7 +7767,7 @@ _0200A17C:
ldrsh r2, [r5, r2]
ldr r0, _0200A19C ; =0x04001050
ldr r1, [r5, #0x0]
- blx G2x_SetBlendBrightness_
+ bl G2x_SetBlendBrightness_
_0200A18E:
cmp r4, #0x1
bne _0200A196
@@ -7823,12 +7823,12 @@ _0200A1EA:
mov r0, #0x12
ldrsh r0, [r5, r0]
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
strh r0, [r5, #0x14]
mov r0, #0x12
ldrsh r0, [r5, r0]
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
strh r1, [r5, #0x16]
mov r0, #0x0
strh r0, [r5, #0x18]
@@ -7850,7 +7850,7 @@ FUN_0200A208: ; 0x0200A208
beq _0200A23A
ldr r0, _0200A264 ; =0x04000050
add r1, r4, #0x0
- blx G2x_SetBlendBrightness_
+ bl G2x_SetBlendBrightness_
str r4, [sp, #0x0]
mov r0, #0x1
str r0, [sp, #0x4]
@@ -7867,7 +7867,7 @@ _0200A23A:
ldr r0, _0200A26C ; =0x04001050
add r1, r4, #0x0
add r2, r6, #0x0
- blx G2x_SetBlendBrightness_
+ bl G2x_SetBlendBrightness_
str r4, [sp, #0x0]
mov r0, #0x2
str r0, [sp, #0x4]
@@ -7896,7 +7896,7 @@ FUN_0200A274: ; 0x0200A274
beq _0200A28A
ldr r0, _0200A2A4 ; =0x04000050
add r2, r5, #0x0
- blx G2x_SetBlendBrightness_
+ bl G2x_SetBlendBrightness_
_0200A28A:
mov r0, #0x2
tst r0, r4
@@ -7904,7 +7904,7 @@ _0200A28A:
ldr r0, _0200A2A8 ; =0x04001050
add r1, r6, #0x0
add r2, r5, #0x0
- blx G2x_SetBlendBrightness_
+ bl G2x_SetBlendBrightness_
_0200A29A:
add r0, r4, #0x0
bl FUN_0200A2D8
@@ -7919,11 +7919,11 @@ FUN_0200A2AC: ; 0x0200A2AC
ldr r0, _0200A2CC ; =0x021C4694
mov r1, #0x0
mov r2, #0x20
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _0200A2D0 ; =0x021C4674
mov r1, #0x0
mov r2, #0x20
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _0200A2D4 ; =0x021C4674
mov r1, #0x0
str r1, [r0, #0x3c]
@@ -7944,7 +7944,7 @@ FUN_0200A2D8: ; 0x0200A2D8
ldr r0, _0200A30C ; =0x021C4694
mov r1, #0x0
mov r2, #0x20
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _0200A310 ; =0x021C4674
mov r1, #0x0
str r1, [r0, #0x3c]
@@ -7955,7 +7955,7 @@ _0200A2F2:
ldr r0, _0200A314 ; =0x021C4674
mov r1, #0x0
mov r2, #0x20
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _0200A310 ; =0x021C4674
mov r1, #0x0
str r1, [r0, #0x1c]
@@ -8245,7 +8245,7 @@ FUN_0200A4D4: ; 0x0200A4D4
ldr r2, [sp, #0x4]
add r0, r5, r0
add r1, r7, #0x0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
ldr r1, _0200A57C ; =0x00091BD3
add r2, r4, #0x1
mul r1, r2
@@ -8332,7 +8332,7 @@ FUN_0200A584: ; 0x0200A584
ldr r2, [sp, #0x4]
add r0, r5, r0
add r1, r7, #0x0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
ldr r1, _0200A640 ; =0x00091BD3
add r2, r4, #0x1
mul r1, r2
@@ -11083,13 +11083,13 @@ _0200BAD8:
add r0, r1, r0
add r1, r6, r5
mov r2, #0x20
- blx MIi_CpuCopy32
+ bl MIi_CpuCopy32
b _0200BB00
_0200BAF6:
ldr r1, [sp, #0x0]
add r0, r6, r5
mov r2, #0x20
- blx MI_CpuFill8
+ bl MI_CpuFill8
_0200BB00:
add r4, r4, #0x2
ldrh r1, [r4, #0x8]
@@ -11189,7 +11189,7 @@ _0200BB8A:
ldr r1, [r5, #0x0]
add r0, r7, #0x0
bl FUN_0201E00C
- blx FUN_020B0FC0
+ bl FUN_020B0FC0
ldr r0, [r5, #0x8]
cmp r0, #0x1
bne _0200BBD6
@@ -11577,20 +11577,20 @@ FUN_0200BE74: ; 0x0200BE74
cmp r3, #0x0
ble _0200BEA0
lsl r0, r3, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _0200BEAE
_0200BEA0:
lsl r0, r3, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_0200BEAE:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x8]
add r1, sp, #0x28
mov r0, #0x10
@@ -11598,20 +11598,20 @@ _0200BEAE:
cmp r0, #0x0
ble _0200BED0
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _0200BEDE
_0200BED0:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_0200BEDE:
- blx _ffix
+ bl _ffix
str r0, [sp, #0xc]
add r1, sp, #0x28
mov r0, #0x14
@@ -11619,20 +11619,20 @@ _0200BEDE:
cmp r0, #0x0
ble _0200BF00
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _0200BF0E
_0200BF00:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_0200BF0E:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x10]
ldr r0, [sp, #0x4c]
cmp r0, #0x2
@@ -12069,60 +12069,60 @@ _0200C206:
cmp r0, #0x0
ble _0200C260
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _0200C26E
_0200C260:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_0200C26E:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x4c]
mov r0, #0x2
ldrsh r0, [r5, r0]
cmp r0, #0x0
ble _0200C28E
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _0200C29C
_0200C28E:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_0200C29C:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x50]
mov r0, #0x4
ldrsh r0, [r5, r0]
cmp r0, #0x0
ble _0200C2BC
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _0200C2CA
_0200C2BC:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_0200C2CA:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x54]
ldr r0, [r5, #0x10]
cmp r0, #0x2
@@ -12965,13 +12965,13 @@ FUN_0200C84C: ; 0x0200C84C
add r4, r0, #0x0
ldr r0, _0200C880 ; =0x45800000
add r1, r6, #0x0
- blx _fmul
- blx _ffix
+ bl _fmul
+ bl _ffix
str r0, [r4, #0x0]
ldr r0, _0200C880 ; =0x45800000
add r1, r7, #0x0
- blx _fmul
- blx _ffix
+ bl _fmul
+ bl _ffix
str r0, [r4, #0x4]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -14203,27 +14203,27 @@ _0200D1E0:
add r0, r5, r6
add r1, r4, r1
mov r2, #0x20
- blx memcpy
+ bl memcpy
add r0, r6, #0x0
ldr r1, [sp, #0x38]
add r0, #0x20
add r0, r5, r0
add r1, r4, r1
mov r2, #0x20
- blx memcpy
+ bl memcpy
add r0, r6, #0x0
ldr r1, [sp, #0x34]
add r0, #0x40
add r0, r5, r0
add r1, r4, r1
mov r2, #0x20
- blx memcpy
+ bl memcpy
ldr r1, [sp, #0x38]
add r6, #0x60
add r0, r5, r6
add r1, r4, r1
mov r2, #0x20
- blx memcpy
+ bl memcpy
add r0, r7, #0x1
lsl r0, r0, #0x18
lsr r7, r0, #0x18
@@ -14292,7 +14292,7 @@ FUN_0200D274: ; 0x0200D274
ldr r1, [r1, #0x14]
lsl r2, r2, #0x6
add r4, r0, #0x0
- blx memcpy
+ bl memcpy
mov r0, #0x9
mov r3, #0x0
lsl r0, r0, #0x6
@@ -14359,7 +14359,7 @@ FUN_0200D300: ; 0x0200D300
bl LoadFromNarc_2
add r1, sp, #0x18
str r0, [sp, #0x14]
- blx FUN_020B0138
+ bl FUN_020B0138
add r2, sp, #0x20
ldr r1, [sp, #0x18]
ldrb r2, [r2, #0x10]
@@ -15015,7 +15015,7 @@ FUN_0200D858: ; 0x0200D858
add r0, r4, r0
add r1, r5, r1
mov r2, #0x80
- blx memcpy
+ bl memcpy
ldr r0, [sp, #0x28]
mov r1, #0x80
bl FUN_02016998
@@ -15026,7 +15026,7 @@ FUN_0200D858: ; 0x0200D858
str r1, [sp, #0x2c]
add r1, r5, r1
add r6, r0, #0x0
- blx memcpy
+ bl memcpy
ldr r0, [sp, #0x24]
mov r2, #0x20
add r0, #0xb
@@ -15034,18 +15034,18 @@ FUN_0200D858: ; 0x0200D858
add r0, r6, #0x0
add r0, #0x20
add r1, r5, r7
- blx memcpy
+ bl memcpy
ldr r1, [sp, #0x2c]
add r0, r6, #0x0
add r0, #0x40
add r1, r5, r1
mov r2, #0x20
- blx memcpy
+ bl memcpy
add r0, r6, #0x0
add r0, #0x60
add r1, r5, r7
mov r2, #0x20
- blx memcpy
+ bl memcpy
mov r5, #0x0
add r7, r4, #0x4
_0200D8DA:
@@ -15053,7 +15053,7 @@ _0200D8DA:
add r0, r7, r0
add r1, r6, #0x0
mov r2, #0x80
- blx memcpy
+ bl memcpy
add r0, r5, #0x1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
@@ -15849,17 +15849,17 @@ FUN_0200DEF4: ; 0x0200DEF4
bl FUN_02009C5C
mov r1, #0x1
str r0, [sp, #0x4]
- blx FUN_020B1A14
+ bl FUN_020B1A14
mov r1, #0x19
add r7, r0, #0x0
add r0, r4, #0x0
lsl r1, r1, #0x8
- blx DC_FlushRange
+ bl DC_FlushRange
mov r2, #0x19
add r0, r4, #0x0
add r1, r7, #0x0
lsl r2, r2, #0x8
- blx GX_LoadOBJ
+ bl GX_LoadOBJ
add r0, r4, #0x0
bl FUN_02016A18
ldr r2, _0200DFC8 ; =0x00000162
@@ -15876,15 +15876,15 @@ FUN_0200DEF4: ; 0x0200DEF4
ldr r1, [sp, #0x4]
bl FUN_02009E54
mov r1, #0x1
- blx FUN_020B19C4
+ bl FUN_020B19C4
add r5, r0, #0x0
add r0, r4, #0x0
mov r1, #0x20
- blx DC_FlushRange
+ bl DC_FlushRange
add r0, r4, #0x0
add r1, r5, #0x0
mov r2, #0x20
- blx GX_LoadOBJPltt
+ bl GX_LoadOBJPltt
add r0, r4, #0x0
bl FUN_02016A18
add sp, #0x28
@@ -16385,12 +16385,12 @@ FUN_0200E3BC: ; 0x0200E3BC
bne _0200E3D2
mov r1, #0x0
mov r2, #0x2
- blx GX_LoadBGPltt
+ bl GX_LoadBGPltt
b _0200E3DA
_0200E3D2:
mov r1, #0x0
mov r2, #0x2
- blx GXS_LoadBGPltt
+ bl GXS_LoadBGPltt
_0200E3DA:
ldr r0, _0200E41C ; =0x021C4740
mov r1, #0x1
@@ -16430,11 +16430,11 @@ FUN_0200E420: ; 0x0200E420
add r0, sp, #0x8
mov r1, #0x0
mov r2, #0x2
- blx GX_LoadBGPltt
+ bl GX_LoadBGPltt
add r0, sp, #0x8
mov r1, #0x0
mov r2, #0x2
- blx GXS_LoadBGPltt
+ bl GXS_LoadBGPltt
pop {r3}
pop {r3}
add sp, #0x10
@@ -16446,11 +16446,11 @@ FUN_0200E440: ; 0x0200E440
cmp r0, #0x0
bne _0200E44E
ldr r0, _0200E458 ; =0x0400006C
- blx GXx_SetMasterBrightness_
+ bl GXx_SetMasterBrightness_
pop {r3, pc}
_0200E44E:
ldr r0, _0200E45C ; =0x0400106C
- blx GXx_SetMasterBrightness_
+ bl GXx_SetMasterBrightness_
pop {r3, pc}
nop
_0200E458: .word 0x0400006C
@@ -16994,12 +16994,12 @@ _0200E812:
add r0, #0x14
mov r1, #0x0
mov r2, #0x30
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
add r0, #0x44
mov r1, #0x0
mov r2, #0x30
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r2, r4, #0x0
add r2, #0x74
mov r1, #0x18
@@ -17013,7 +17013,7 @@ _0200E83A:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0xc0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
pop {r4, pc}
thumb_func_start FUN_0200E850
@@ -18111,7 +18111,7 @@ FUN_0200F0D0: ; 0x0200F0D0
lsl r2, r4, #0xc
asr r1, r0, #0x1f
asr r3, r2, #0x1f
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -18145,7 +18145,7 @@ _0200F116:
ldr r1, [sp, #0x4]
asr r3, r4, #0x1f
add r2, r4, #0x0
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
lsl r2, r2, #0xa
add r0, r0, r2
@@ -18178,7 +18178,7 @@ FUN_0200F14C: ; 0x0200F14C
add r0, r4, r0
asr r0, r0, #0x1
lsl r0, r0, #0xc
- blx FX_Div
+ bl FX_Div
pop {r4, pc}
thumb_func_start FUN_0200F164
@@ -18829,7 +18829,7 @@ _0200F60C:
bl FUN_0200F5D8
add r1, r0, r6
add r2, r7, #0x0
- blx memcpy
+ bl memcpy
ldr r0, [r5, #0x4]
add r4, r4, #0x1
cmp r4, r0
@@ -18952,7 +18952,7 @@ FUN_0200F6FC: ; 0x0200F6FC
lsl r2, r2, #0x2
add r5, r0, #0x0
add r7, r3, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
cmp r4, #0x1
bne _0200F726
mov r0, #0x6
@@ -19028,7 +19028,7 @@ _0200F78E:
add r0, #0xc0
add r1, r5, #0x0
add r2, r7, #0x0
- blx memcpy
+ bl memcpy
add r4, r4, #0x1
add r5, r5, r6
cmp r4, #0x2
@@ -20289,14 +20289,14 @@ _020100FA:
asr r1, r0, #0x1f
add r2, r0, #0x0
add r3, r1, #0x0
- blx _ll_mul
+ bl _ll_mul
str r0, [sp, #0x8]
ldr r0, [sp, #0x4]
add r6, r1, #0x0
add r1, r7, #0x0
add r2, r0, #0x0
add r3, r7, #0x0
- blx _ll_mul
+ bl _ll_mul
add r2, r0, #0x0
add r3, r1, #0x0
mov r0, #0x2
@@ -20316,7 +20316,7 @@ _020100FA:
lsr r2, r2, #0xc
orr r2, r1
sub r0, r0, r2
- blx FX_Sqrt
+ bl FX_Sqrt
asr r2, r0, #0xc
ldr r0, [sp, #0x0]
sub r0, r0, r2
@@ -20752,7 +20752,7 @@ FUN_0201047C: ; 0x0201047C
str r3, [sp, #0x1c]
ldr r6, [sp, #0x38]
ldr r7, [sp, #0x3c]
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x20]
ldrb r1, [r4, #0x8]
ldr r3, [sp, #0x44]
@@ -20896,7 +20896,7 @@ FUN_020105A0: ; 0x020105A0
asr r3, r2, #0x1f
ldrsh r0, [r0, r1]
asr r1, r0, #0x1f
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -20908,7 +20908,7 @@ FUN_020105A0: ; 0x020105A0
asr r7, r1, #0xc
lsl r0, r7, #0x1
mov r1, #0x15
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, #0x1
lsl r0, r0, #0x1
mov r1, #0xb4
@@ -20916,7 +20916,7 @@ FUN_020105A0: ; 0x020105A0
ldr r0, _02010684 ; =0x0000FFFF
add r1, #0xb4
mul r0, r2
- blx _s32_div_f
+ bl _s32_div_f
lsr r1, r0, #0x1f
add r1, r0, r1
asr r4, r1, #0x1
@@ -21261,7 +21261,7 @@ FUN_02010894: ; 0x02010894
lsl r2, r2, #0x8
add r0, r0, r2
mov r1, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r6, #0x10]
sub r4, r0, #0x1
bmi _020108C6
@@ -21363,7 +21363,7 @@ FUN_02010948: ; 0x02010948
str r0, [r5, #0x14]
mov r1, #0x0
mov r2, #0x38
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r5, #0x10]
add r1, r4, #0x0
str r0, [sp, #0x0]
@@ -21605,7 +21605,7 @@ FUN_02010B40: ; 0x02010B40
str r0, [sp, #0x0]
ldr r0, [r0, #0xc]
ldr r1, _02010C60 ; =0x00003FFF
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x4]
@@ -21758,7 +21758,7 @@ FUN_02010C64: ; 0x02010C64
add r0, r3, #0x0
mul r0, r1
add r1, r2, #0x0
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, [r4, #0x4]
add r0, r0, r1
str r0, [r4, #0x0]
@@ -21776,7 +21776,7 @@ FUN_02010C7C: ; 0x02010C7C
str r0, [r5, #0x14]
mov r1, #0x0
mov r2, #0x38
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r5, #0x10]
add r1, r4, #0x0
str r0, [sp, #0x0]
@@ -22101,7 +22101,7 @@ FUN_02010F14: ; 0x02010F14
add r0, r3, #0x0
mul r0, r1
add r1, r2, #0x0
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, [r4, #0x4]
add r0, r0, r1
str r0, [r4, #0x0]
@@ -22121,7 +22121,7 @@ FUN_02010F2C: ; 0x02010F2C
str r0, [r5, #0x14]
mov r1, #0x0
lsl r2, r2, #0x2
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r5, #0x10]
add r1, r4, #0x0
str r0, [sp, #0x0]
@@ -22213,23 +22213,23 @@ FUN_02010FD0: ; 0x02010FD0
add r0, r5, #0x0
mov r1, #0x1
mov r2, #0xc0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r5, #0x0
add r0, #0xc0
mov r1, #0x1
mov r2, #0xc0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
b _02011020
_0201100A:
add r0, r5, #0x0
mov r1, #0x0
mov r2, #0xc0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r5, #0x0
add r0, #0xc0
mov r1, #0x0
mov r2, #0xc0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
_02011020:
mov r1, #0xc3
lsl r1, r1, #0x2
@@ -22407,7 +22407,7 @@ FUN_0201115C: ; 0x0201115C
add r1, r3, #0x0
sub r0, r4, r6
mul r0, r2
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, r6
cmp r6, r4
bhi _0201117C
@@ -22460,7 +22460,7 @@ FUN_020111AC: ; 0x020111AC
mov r1, #0x0
lsl r2, r2, #0x2
str r0, [r5, #0x14]
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r1, r4, #0x0
add r1, #0x23
ldrb r1, [r1, #0x0]
@@ -22567,7 +22567,7 @@ FUN_0201127C: ; 0x0201127C
add r7, r3, #0x0
asr r1, r0, #0x1f
asr r3, r2, #0x1f
- blx _ll_mul
+ bl _ll_mul
add r2, r0, #0x0
mov r0, #0x2
mov r3, #0x0
@@ -22699,7 +22699,7 @@ FUN_0201137C: ; 0x0201137C
add r7, r3, #0x0
asr r1, r0, #0x1f
asr r3, r2, #0x1f
- blx _ll_mul
+ bl _ll_mul
add r2, r0, #0x0
mov r0, #0x2
mov r3, #0x0
@@ -23257,7 +23257,7 @@ _020117A4:
str r1, [r0, #0x64]
ldr r0, [r0, #0x60]
mov r1, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [sp, #0x8]
add sp, #0xc
pop {r4-r7, pc}
@@ -23780,7 +23780,7 @@ _02011B60:
ldr r1, [r6, #0xc]
add r1, r1, r2
ldr r2, [sp, #0x8]
- blx memcpy
+ bl memcpy
ldr r0, [sp, #0x0]
add r4, r4, #0x1
add r5, r5, r7
@@ -24051,7 +24051,7 @@ _02011D52:
beq _02011D92
_02011D68:
add r0, r5, #0x0
- blx FUN_020B1A24
+ bl FUN_020B1A24
str r7, [sp, #0x0]
ldr r0, [sp, #0x30]
str r6, [sp, #0x4]
@@ -24113,7 +24113,7 @@ _02011DC6:
bl FUN_02011B20
add r0, r7, #0x0
add r1, r4, #0x0
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r0, [sp, #0x30]
cmp r0, #0x1
bne _02011E08
@@ -24121,7 +24121,7 @@ _02011DC6:
add r0, r7, #0x0
add r1, r6, #0x0
add r2, r4, #0x0
- blx GX_LoadOBJ
+ bl GX_LoadOBJ
mov r0, #0x1
str r6, [r5, #0x4]
lsl r0, r0, #0x1a
@@ -24132,7 +24132,7 @@ _02011E08:
add r0, r7, #0x0
add r1, r6, #0x0
add r2, r4, #0x0
- blx GXS_LoadOBJ
+ bl GXS_LoadOBJ
ldr r0, _02011E4C ; =0x04001000
str r6, [r5, #0x8]
ldr r1, [r0, #0x0]
@@ -24423,7 +24423,7 @@ _02012018:
ldr r1, [sp, #0x0]
add r1, r1, r2
add r2, r6, #0x0
- blx memcpy
+ bl memcpy
ldr r1, [r5, #0x0]
ldr r0, [sp, #0x24]
add r7, r7, #0x1
@@ -24449,7 +24449,7 @@ FUN_02012044: ; 0x02012044
_02012054:
add r0, r4, #0x0
add r1, r5, #0x0
- blx FUN_020B0088
+ bl FUN_020B0088
add r6, r0, #0x0
cmp r5, #0x0
bne _02012066
@@ -24676,7 +24676,7 @@ FUN_020121E8: ; 0x020121E8
_02012204:
ldr r0, [sp, #0x20]
add r1, sp, #0x2c
- blx FUN_020B0088
+ bl FUN_020B0088
cmp r0, #0x0
bne _02012214
bl ErrorHandling
@@ -24842,7 +24842,7 @@ _0201233C:
add r0, r0, r1
ldr r1, [sp, #0x18]
add r1, r1, r4
- blx memcpy
+ bl memcpy
ldr r0, [r5, #0x0]
add r6, r6, #0x1
add r0, #0x20
@@ -25016,7 +25016,7 @@ FUN_02012470: ; 0x02012470
bl LoadFromNarc_2
add r1, sp, #0x0
add r5, r0, #0x0
- blx FUN_020B0138
+ bl FUN_020B0138
cmp r0, #0x1
beq _0201249C
bl ErrorHandling
@@ -25025,7 +25025,7 @@ _0201249C:
add r1, r4, #0x0
ldr r0, [r0, #0xc]
mov r2, #0x20
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r0, r5, #0x0
bl FUN_02016A18
add r0, r4, #0x0
@@ -25156,7 +25156,7 @@ _02012598: .word 0x020ED3C8
thumb_func_start FUN_0201259C
FUN_0201259C: ; 0x0201259C
push {r3, lr}
- blx RTC_Init
+ bl RTC_Init
ldr r3, _020125CC ; =0x021C4808
mov r0, #0x0
add r2, r3, #0x0
@@ -25246,7 +25246,7 @@ FUN_02012634: ; 0x02012634
add r0, #0x2c
add r1, #0x3c
add r3, r4, #0x0
- blx RTC_GetDateTimeAsync
+ bl RTC_GetDateTimeAsync
str r0, [r4, #0xc]
cmp r0, #0x0
beq _02012656
@@ -25377,14 +25377,14 @@ FUN_02012710: ; 0x02012710
bne _02012742
add r0, r6, #0x0
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0x0
bne _02012750
_02012742:
mov r1, #0x19
add r0, r6, #0x0
lsl r1, r1, #0x4
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0x0
bne _02012752
_02012750:
@@ -25401,9 +25401,9 @@ _02012752:
str r0, [sp, #0x4]
str r0, [sp, #0x8]
add r0, r2, #0x0
- blx RTC_ConvertDateToDay
+ bl RTC_ConvertDateToDay
add r0, r5, #0x0
- blx RTC_ConvertDateToDay
+ bl RTC_ConvertDateToDay
add r0, r4, #0x0
add sp, #0x10
pop {r4-r6, pc}
@@ -25477,7 +25477,7 @@ FUN_020127C0: ; 0x020127C0
ldr r1, [sp, #0x4]
str r0, [r2, #0x0]
ldr r0, [sp, #0x0]
- blx RTC_ConvertDateTimeToSecond
+ bl RTC_ConvertDateTimeToSecond
add r2, r1, #0x0
add r3, r0, #0x0
mov r1, #0x0
@@ -25755,9 +25755,9 @@ _020129C6:
FUN_020129C8: ; 0x020129C8
push {r3, lr}
mov r0, #0x0
- blx MI_StopDma
+ bl MI_StopDma
mov r0, #0x0
- blx MI_WaitDma
+ bl MI_WaitDma
pop {r3, pc}
thumb_func_start FUN_020129D8
@@ -25772,14 +25772,14 @@ FUN_020129D8: ; 0x020129D8
add r1, r6, #0x0
add r2, r5, #0x0
add r3, r4, #0x0
- blx MI_HBlankDmaCopy32
+ bl MI_HBlankDmaCopy32
pop {r4-r6, pc}
_020129F2:
mov r0, #0x0
add r1, r6, #0x0
add r2, r5, #0x0
add r3, r4, #0x0
- blx MI_HBlankDmaCopy16
+ bl MI_HBlankDmaCopy16
pop {r4-r6, pc}
thumb_func_start FUN_02012A00
@@ -25791,7 +25791,7 @@ FUN_02012A00: ; 0x02012A00
ldr r2, _02012A2C ; =0x0000079C
mov r1, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r2, #0x3
lsl r2, r2, #0x8
add r0, r5, #0x0
@@ -25860,13 +25860,13 @@ _02012A4E:
add r1, r5, #0x0
ldr r0, [r5, r0]
lsl r2, r2, #0x8
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
ldr r0, _02012AC0 ; =0x00000794
mov r2, #0x3
lsl r2, r2, #0x8
ldr r0, [r5, r0]
add r1, r5, r2
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
pop {r3-r7, pc}
.balign 4
_02012AB0: .word 0x00000604
@@ -25897,7 +25897,7 @@ _02012ACE:
mov r2, #0x3
ldr r1, [r4, r1]
lsl r2, r2, #0x8
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
_02012AF4:
pop {r4, pc}
nop
@@ -25950,7 +25950,7 @@ FUN_02012B30: ; 0x02012B30
mov r2, #0x3
ldr r0, [r4, r0]
lsl r2, r2, #0x8
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
_02012B5E:
pop {r4, pc}
.balign 4
@@ -25996,7 +25996,7 @@ _02012BA0:
ldrsh r0, [r0, r1]
ldr r3, [sp, #0x8]
asr r1, r0, #0x1f
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
lsl r2, r2, #0xa
add r0, r0, r2
@@ -26034,7 +26034,7 @@ FUN_02012BE4: ; 0x02012BE4
ldr r0, _02012C80 ; =0x00000798
mov r1, #0x64
ldrsh r0, [r6, r0]
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x18
lsr r3, r0, #0x18
ldr r0, _02012C84 ; =0x0000078C
@@ -26066,7 +26066,7 @@ _02012C12:
stmia r5!, {r0}
add r0, r3, #0x1
mov r1, #0xc0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x18
lsr r3, r0, #0x18
ldr r0, _02012C8C ; =0x0000078D
@@ -26089,7 +26089,7 @@ _02012C4C:
blt _02012C70
mov r0, #0x0
ldrsh r0, [r4, r0]
- blx _s32_div_f
+ bl _s32_div_f
strh r1, [r4, #0x0]
pop {r3-r7, pc}
_02012C70:
@@ -26128,7 +26128,7 @@ _02012CA2:
mov r1, #0x3
lsl r1, r1, #0x8
add r5, r0, #0x0
- blx DC_FlushRange
+ bl DC_FlushRange
mov r1, #0x79
lsl r1, r1, #0x4
ldr r1, [r4, r1]
@@ -26187,7 +26187,7 @@ _02012D14:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0xdc
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r2, r4, #0x0
ldr r0, [sp, #0x8]
str r7, [r4, #0x18]
@@ -26215,7 +26215,7 @@ _02012D14:
str r0, [r2, #0x0]
ldr r2, [sp, #0xc]
add r0, r6, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [sp, #0xc]
str r6, [r4, #0xc]
str r6, [r4, #0x10]
@@ -26263,7 +26263,7 @@ _02012DA8:
ldr r0, [r0, r5]
mov r2, #0xc8
mov r3, #0x5
- blx FUN_0208B4A0
+ bl FUN_0208B4A0
str r0, [r4, #0x0]
ldr r1, _02012DD8 ; =0x020ED4E4
add r0, r4, #0x0
@@ -26291,7 +26291,7 @@ FUN_02012DE4: ; 0x02012DE4
beq _02012E02
add r0, r5, #0x0
add r0, #0x58
- blx FUN_020AE8CC
+ bl FUN_020AE8CC
b _02012E22
_02012E02:
mov r0, #0x2
@@ -26304,7 +26304,7 @@ _02012E0E:
ldr r0, [r4, #0x58]
cmp r0, #0x0
beq _02012E1A
- blx FUN_020AF894
+ bl FUN_020AF894
str r7, [r4, #0x58]
_02012E1A:
add r6, r6, #0x1
@@ -26320,7 +26320,7 @@ _02012E22:
beq _02012E38
add r0, r5, #0x0
add r0, #0x98
- blx FUN_020AEC7C
+ bl FUN_020AEC7C
b _02012E60
_02012E38:
mov r0, #0x8
@@ -26335,7 +26335,7 @@ _02012E44:
ldr r0, [r0, #0x0]
cmp r0, #0x0
beq _02012E58
- blx FUN_020AFA80
+ bl FUN_020AFA80
add r0, r4, #0x0
add r0, #0x98
str r7, [r0, #0x0]
@@ -26852,7 +26852,7 @@ _020131B2:
beq _020131C8
add r0, r5, #0x0
add r0, #0x58
- blx FUN_020AE918
+ bl FUN_020AE918
b _020131DE
_020131C8:
mov r0, #0x2
@@ -26873,7 +26873,7 @@ _020131DE:
beq _020131EE
add r0, r5, #0x0
add r0, #0x98
- blx FUN_020AEC98
+ bl FUN_020AEC98
b _02013208
_020131EE:
mov r0, #0x8
@@ -26912,26 +26912,26 @@ FUN_02013228: ; 0x02013228
add r4, r0, #0x0
ldr r0, [r4, #0x0]
ldr r1, [r4, #0x4]
- blx FUN_0208B128
+ bl FUN_0208B128
ldr r0, _02013264 ; =0x021C4850
str r4, [r0, #0x0]
ldr r1, [r4, #0x18]
ldr r0, [r4, #0x0]
cmp r1, #0x0
bne _02013246
- blx FUN_0208AF94
+ bl FUN_0208AF94
b _0201324A
_02013246:
- blx FUN_0208B05C
+ bl FUN_0208B05C
_0201324A:
ldr r1, [r4, #0x1c]
ldr r0, [r4, #0x0]
cmp r1, #0x0
bne _02013258
- blx FUN_0208AF80
+ bl FUN_0208AF80
b _0201325C
_02013258:
- blx FUN_0208AFA8
+ bl FUN_0208AFA8
_0201325C:
ldr r0, _02013264 ; =0x021C4850
mov r1, #0x0
@@ -27038,16 +27038,16 @@ FUN_02013300: ; 0x02013300
bl FUN_0201EB8C
bl FUN_0201EBA4
_0201331C:
- blx FUN_020B849C
+ bl FUN_020B849C
ldr r0, [r4, #0x0]
ldr r1, _02013338 ; =0x021CED64
- blx FUN_0208AD80
+ bl FUN_0208AD80
ldr r0, [r4, #0x20]
cmp r0, #0x0
beq _02013332
bl FUN_0201EB98
_02013332:
- blx FUN_020B849C
+ bl FUN_020B849C
pop {r4, pc}
.balign 4
_02013338: .word 0x021CED64
@@ -27130,7 +27130,7 @@ FUN_020133AC: ; 0x020133AC
ldr r0, _020133C4 ; =0x021C4850
str r3, [r0, #0x4]
ldr r0, [r4, #0x0]
- blx FUN_0208ACEC
+ bl FUN_0208ACEC
ldr r1, _020133C4 ; =0x021C4850
mov r2, #0x0
str r2, [r1, #0x4]
@@ -28294,7 +28294,7 @@ _02013B8A:
beq _02013BC4
bl FUN_0201B9EC
add r1, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
ldr r4, [r5, #0x4]
mov r0, #0x0
mov r2, #0x1
@@ -28859,7 +28859,7 @@ FUN_02013F30: ; 0x02013F30
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x40
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
mov r1, #0x1f
add r0, #0x3e
@@ -29086,7 +29086,7 @@ FUN_020140A4: ; 0x020140A4
add r3, r2, #0x0
lsr r1, r1, #0xd
mov r2, #0x0
- blx FUN_020B1528
+ bl FUN_020B1528
pop {r3, pc}
thumb_func_start FUN_020140B4
@@ -29103,7 +29103,7 @@ FUN_020140B4: ; 0x020140B4
str r2, [r5, #0x8]
lsr r1, r1, #0xd
mov r2, #0x0
- blx FUN_020B1240
+ bl FUN_020B1240
str r4, [r5, #0x8]
pop {r3-r5, pc}
.balign 4
@@ -29220,7 +29220,7 @@ _02014172:
lsl r2, r2, #0x1
ldrsh r0, [r1, r0]
ldrsh r1, [r1, r2]
- blx G3_RotZ
+ bl G3_RotZ
ldr r2, [r5, #0x10]
ldr r0, [r5, #0xc]
ldr r1, _02014210 ; =0x0400046C
@@ -29252,7 +29252,7 @@ _02014172:
str r4, [sp, #0x10]
ldrsh r3, [r5, r3]
add r1, r0, #0x0
- blx FUN_020B0250
+ bl FUN_020B0250
ldr r0, _02014214 ; =0x04000448
mov r1, #0x1
str r1, [r0, #0x0]
@@ -29339,14 +29339,14 @@ _0201424C:
ldr r0, [r5, #0x4]
mov r1, #0x0
add r0, r0, #0x4
- blx FUN_020B1A14
+ bl FUN_020B1A14
add r1, r0, #0x0
add r0, r7, #0x0
bl FUN_02013F14
ldr r0, [r5, #0x8]
mov r1, #0x0
add r0, r0, #0x4
- blx FUN_020B19C4
+ bl FUN_020B19C4
add r1, r0, #0x0
add r0, r7, #0x0
bl FUN_02013F18
@@ -29421,14 +29421,14 @@ _0201434A:
add r1, r4, #0x0
add r1, #0xc
mov r2, #0x20
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
ldr r1, [sp, #0x0]
ldr r0, [sp, #0x8]
mov r2, #0x20
add r0, r1, r0
add r1, r4, #0x0
add r1, #0x2c
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
ldr r0, [sp, #0x4]
mov r1, #0x1
str r0, [r4, #0x0]
@@ -29681,7 +29681,7 @@ FUN_02014518: ; 0x02014518
mov r1, #0x0
mov r2, #0x78
add r6, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r2, _02014560 ; =0x0000019E
mov r0, #0x0
mov r1, #0x1a
@@ -29929,7 +29929,7 @@ FUN_020146F0: ; 0x020146F0
add r5, r0, #0x0
mov r1, #0x0
mov r2, #0x9c
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r5, #0x0
add r0, #0x9b
ldrb r1, [r0, #0x0]
@@ -30306,7 +30306,7 @@ _020149B4:
add r0, r6, #0x0
mov r1, #0x0
mov r2, #0x38
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add sp, #0x10
pop {r4-r6, pc}
@@ -30463,7 +30463,7 @@ FUN_02014AD4: ; 0x02014AD4
add r5, r0, #0x0
ldr r0, [r1, #0x14]
ldr r1, [r1, #0x10]
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r3, [r4, #0x4]
ldr r0, [r4, #0x10]
str r0, [sp, #0x0]
@@ -30491,7 +30491,7 @@ FUN_02014B10: ; 0x02014B10
ldr r0, [r4, #0x0]
ldr r1, [r4, #0x10]
ldr r0, [r0, #0xc]
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r0, [r4, #0x8]
cmp r0, #0x0
bne _02014B34
@@ -30499,7 +30499,7 @@ FUN_02014B10: ; 0x02014B10
ldr r1, [r4, #0xc]
ldr r0, [r0, #0xc]
ldr r2, [r4, #0x10]
- blx GX_LoadBGPltt
+ bl GX_LoadBGPltt
b _02014B44
_02014B34:
cmp r0, #0x4
@@ -30508,7 +30508,7 @@ _02014B34:
ldr r1, [r4, #0xc]
ldr r0, [r0, #0xc]
ldr r2, [r4, #0x10]
- blx GXS_LoadBGPltt
+ bl GXS_LoadBGPltt
_02014B44:
add r0, r5, #0x0
bl FUN_0200CAB4
@@ -30628,7 +30628,7 @@ FUN_02014BF4: ; 0x02014BF4
mov r1, #0x0
add r2, r6, #0x0
str r0, [r4, #0x0]
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
pop {r3-r7, pc}
@@ -30692,7 +30692,7 @@ _02014C8C:
add r0, r0, r4
mov r1, #0x0
lsl r2, r2, #0x4
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r5, #0x0]
mov r1, #0x1
add r0, r0, r4
@@ -31062,7 +31062,7 @@ _02014F3E:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x54
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x1
str r0, [r4, #0x0]
mov r0, #0xc
@@ -31526,7 +31526,7 @@ FUN_020152B0: ; 0x020152B0
bl FUN_02015050
ldr r0, [sp, #0x8]
ldr r1, [sp, #0x4]
- blx _s32_div_f
+ bl _s32_div_f
add r1, sp, #0x0
ldrb r1, [r1, #0x0]
lsl r1, r1, #0x2
@@ -31547,7 +31547,7 @@ FUN_020152D8: ; 0x020152D8
bl FUN_02015050
ldr r0, [sp, #0x8]
ldr r1, [sp, #0x4]
- blx _s32_div_f
+ bl _s32_div_f
add r0, sp, #0x0
ldrb r0, [r0, #0x0]
lsl r0, r0, #0x2
@@ -32645,7 +32645,7 @@ FUN_02015AEC: ; 0x02015AEC
add r0, r0, #0x1
mul r0, r1
ldr r1, [r4, #0x18]
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, [r4, #0x14]
add r0, r1, r0
lsl r0, r0, #0x10
@@ -32781,7 +32781,7 @@ FUN_02015BE8: ; 0x02015BE8
ldr r0, [r4, #0x8]
mul r0, r1
ldr r1, [r4, #0xc]
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, [r4, #0x24]
str r0, [r1, #0x0]
add r0, r4, #0x0
@@ -33178,7 +33178,7 @@ FUN_02015EA0: ; 0x02015EA0
orr r0, r2
str r0, [r3, r1]
mov r0, #0x3
- blx MI_WaitDma
+ bl MI_WaitDma
ldr r0, _02015ED0 ; =0x021C48B8
ldr r0, [r0, #0x1c]
bl FUN_0201B5CC
@@ -33212,12 +33212,12 @@ _02015EF0: .word MI_WaitDma
FUN_02015EF4: ; 0x02015EF4
push {r3, lr}
mov r0, #0x1
- blx OS_DisableIrqMask
+ bl OS_DisableIrqMask
ldr r1, _02015F0C ; =FUN_02015ED4
mov r0, #0x1
- blx OS_SetIrqFunction
+ bl OS_SetIrqFunction
mov r0, #0x1
- blx OS_EnableIrqMask
+ bl OS_EnableIrqMask
pop {r3, pc}
.balign 4
_02015F0C: .word FUN_02015ED4
@@ -33299,19 +33299,19 @@ FUN_02015F80: ; 0x02015F80
bne _02015F9E
ldr r0, [r2, #0x8]
mov r0, #0x2
- blx OS_DisableIrqMask
+ bl OS_DisableIrqMask
mov r0, #0x0
- blx GX_HBlankIntr
+ bl GX_HBlankIntr
b _02015FB4
_02015F9E:
ldr r0, [r2, #0x8]
ldr r1, _02015FC4 ; =FUN_02015F6C
mov r0, #0x2
- blx OS_SetIrqFunction
+ bl OS_SetIrqFunction
mov r0, #0x2
- blx OS_EnableIrqMask
+ bl OS_EnableIrqMask
mov r0, #0x1
- blx GX_HBlankIntr
+ bl GX_HBlankIntr
_02015FB4:
ldr r1, _02015FC0 ; =0x04000208
ldrh r0, [r1, #0x0]
@@ -33327,11 +33327,11 @@ FUN_02015FC8: ; 0x02015FC8
push {r3, lr}
sub sp, #0x30
add r0, sp, #0x10
- blx OS_GetLowEntropyData
+ bl OS_GetLowEntropyData
add r0, sp, #0x0
add r1, sp, #0x10
mov r2, #0x20
- blx MATH_CalcMD5
+ bl MATH_CalcMD5
mov r3, #0x0
add r1, r3, #0x0
add r2, sp, #0x0
@@ -33366,8 +33366,8 @@ _02016010: .word 0x020EDB10
thumb_func_start InitSystemForTheGame
InitSystemForTheGame: ; 0x02016014
push {r3-r5, lr}
- blx OS_Init
- blx FX_Init
+ bl OS_Init
+ bl FX_Init
ldr r2, _02016124 ; =0x04000304
ldr r0, _02016128 ; =0xFFFFFDF1
ldrh r1, [r2, #0x0]
@@ -33375,15 +33375,15 @@ InitSystemForTheGame: ; 0x02016014
ldr r0, _0201612C ; =0x0000020E
orr r0, r1
strh r0, [r2, #0x0]
- blx GX_Init
- blx OS_InitTick
+ bl GX_Init
+ bl OS_InitTick
bl FUN_02015FC8
mov r0, #0xa0
bl FUN_0201B578
add r1, r0, #0x0
mov r0, #0x0
mov r2, #0x4
- blx OS_AllocFromArenaLo
+ bl OS_AllocFromArenaLo
add r1, r0, #0x0
mov r0, #0xa0
bl FUN_0201B580
@@ -33394,7 +33394,7 @@ InitSystemForTheGame: ; 0x02016014
add r1, r0, #0x0
mov r0, #0x0
mov r2, #0x4
- blx OS_AllocFromArenaLo
+ bl OS_AllocFromArenaLo
add r1, r0, #0x0
mov r0, #0x10
bl FUN_0201B580
@@ -33405,7 +33405,7 @@ InitSystemForTheGame: ; 0x02016014
add r1, r0, #0x0
mov r0, #0x0
mov r2, #0x4
- blx OS_AllocFromArenaLo
+ bl OS_AllocFromArenaLo
add r1, r0, #0x0
mov r0, #0x20
bl FUN_0201B580
@@ -33416,13 +33416,13 @@ InitSystemForTheGame: ; 0x02016014
add r1, r0, #0x0
mov r0, #0x0
mov r2, #0x4
- blx OS_AllocFromArenaLo
+ bl OS_AllocFromArenaLo
add r1, r0, #0x0
mov r0, #0x4
bl FUN_0201B580
ldr r1, _02016130 ; =0x021C48B8
str r0, [r1, #0x24]
- blx GX_DispOff
+ bl GX_DispOff
ldr r2, _02016134 ; =0x04001000
ldr r0, _02016138 ; =0xFFFEFFFF
ldr r1, [r2, #0x0]
@@ -33435,35 +33435,35 @@ InitSystemForTheGame: ; 0x02016014
strh r0, [r2, #0x0]
ldr r1, _0201613C ; =FUN_02015EA0
mov r0, #0x1
- blx OS_SetIrqFunction
+ bl OS_SetIrqFunction
mov r0, #0x1
- blx OS_EnableIrqMask
+ bl OS_EnableIrqMask
mov r0, #0x1
lsl r0, r0, #0x12
- blx OS_EnableIrqMask
+ bl OS_EnableIrqMask
ldr r1, _02016140 ; =0x04000208
ldrh r0, [r1, #0x0]
mov r0, #0x1
strh r0, [r1, #0x0]
- blx GX_VBlankIntr
+ bl GX_VBlankIntr
mov r0, #0x1
- blx FS_Init
+ bl FS_Init
bl FUN_02022450
mov r0, #0x0
add r1, r0, #0x0
- blx FS_TryLoadTable
+ bl FS_TryLoadTable
add r4, r0, #0x0
mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x4
- blx OS_AllocFromArenaLo
+ bl OS_AllocFromArenaLo
add r5, r0, #0x0
bne _02016108
bl ErrorHandling
_02016108:
add r0, r5, #0x0
add r1, r4, #0x0
- blx FS_TryLoadTable
+ bl FS_TryLoadTable
ldr r0, _02016130 ; =0x021C48B8
mov r1, #0x0
str r1, [r0, #0x0]
@@ -33489,36 +33489,36 @@ _02016144: .word 0x021C4918
InitGraphicMemory: ; 0x02016148
push {r3, lr}
ldr r0, _02016198 ; =0x000001FF
- blx GX_SetBankForLCDC
+ bl GX_SetBankForLCDC
mov r1, #0x1a
mov r2, #0x29
mov r0, #0x0
lsl r1, r1, #0x16
lsl r2, r2, #0xe
- blx MIi_CpuClearFast
- blx GX_DisableBankForLCDC
+ bl MIi_CpuClearFast
+ bl GX_DisableBankForLCDC
mov r1, #0x7
mov r2, #0x1
mov r0, #0xc0
lsl r1, r1, #0x18
lsl r2, r2, #0xa
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r2, #0x1
ldr r1, _0201619C ; =0x07000400
mov r0, #0xc0
lsl r2, r2, #0xa
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r1, #0x5
mov r2, #0x1
mov r0, #0x0
lsl r1, r1, #0x18
lsl r2, r2, #0xa
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r2, #0x1
ldr r1, _020161A0 ; =0x05000400
mov r0, #0x0
lsl r2, r2, #0xa
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
pop {r3, pc}
.balign 4
_02016198: .word 0x000001FF
@@ -33532,10 +33532,10 @@ FUN_020161A4: ; 0x020161A4
add r6, r0, #0x0
add r4, r1, #0x0
add r0, sp, #0x0
- blx FS_InitFile
+ bl FS_InitFile
add r0, sp, #0x0
add r1, r4, #0x0
- blx FS_OpenFile
+ bl FS_OpenFile
cmp r0, #0x0
beq _020161F0
ldr r1, [sp, #0x28]
@@ -33549,7 +33549,7 @@ FUN_020161A4: ; 0x020161A4
add r0, sp, #0x0
add r1, r4, #0x0
add r2, r5, #0x0
- blx FS_ReadFile
+ bl FS_ReadFile
cmp r5, r0
beq _020161E8
add r0, r6, #0x0
@@ -33558,7 +33558,7 @@ FUN_020161A4: ; 0x020161A4
mov r4, #0x0
_020161E8:
add r0, sp, #0x0
- blx FS_CloseFile
+ bl FS_CloseFile
b _020161F2
_020161F0:
mov r4, #0x0
@@ -33574,10 +33574,10 @@ FUN_020161F8: ; 0x020161F8
add r5, r0, #0x0
add r0, sp, #0x0
add r4, r1, #0x0
- blx FS_InitFile
+ bl FS_InitFile
add r0, sp, #0x0
add r1, r5, #0x0
- blx FS_OpenFile
+ bl FS_OpenFile
cmp r0, #0x0
beq _0201622A
ldr r1, [sp, #0x28]
@@ -33587,10 +33587,10 @@ FUN_020161F8: ; 0x020161F8
cmp r1, #0x0
beq _02016224
add r0, sp, #0x0
- blx FS_ReadFile
+ bl FS_ReadFile
_02016224:
add r0, sp, #0x0
- blx FS_CloseFile
+ bl FS_CloseFile
_0201622A:
add sp, #0x48
pop {r3-r5, pc}
@@ -33601,7 +33601,7 @@ FUN_02016230: ; 0x02016230
push {r3-r7, lr}
sub sp, #0x8
str r0, [sp, #0x0]
- blx strlen
+ bl strlen
lsl r0, r0, #0x10
lsr r3, r0, #0x10
lsr r2, r3, #0x1f
@@ -33749,12 +33749,12 @@ FUN_02016324: ; 0x02016324
add r0, sp, #0x0
bne _02016340
add r1, r2, #0x1
- blx strcpy
+ bl strcpy
mov r5, #0x1
b _02016346
_02016340:
add r1, r2, #0x0
- blx strcpy
+ bl strcpy
_02016346:
add r0, sp, #0x0
bl FUN_02016230
@@ -33770,10 +33770,10 @@ _02016346:
b _020163B2
_02016362:
add r0, sp, #0x20
- blx FS_InitFile
+ bl FS_InitFile
add r0, sp, #0x20
add r1, sp, #0x0
- blx FS_OpenFile
+ bl FS_OpenFile
cmp r0, #0x0
beq _020163B0
ldr r1, [sp, #0x48]
@@ -33787,7 +33787,7 @@ _02016362:
add r0, sp, #0x20
add r1, r4, #0x0
add r2, r6, #0x0
- blx FS_ReadFile
+ bl FS_ReadFile
cmp r6, r0
beq _0201639C
add r0, r4, #0x0
@@ -33795,7 +33795,7 @@ _02016362:
mov r4, #0x0
_0201639C:
add r0, sp, #0x20
- blx FS_CloseFile
+ bl FS_CloseFile
cmp r5, #0x0
bne _020163B2
add r0, r4, #0x0
@@ -33836,13 +33836,13 @@ FUN_020163BC: ; 0x020163BC
strh r2, [r0, #0x22]
ldr r0, _02016424 ; =0x021C4918
strb r2, [r0, #0x4]
- blx TP_Init
+ bl TP_Init
add r0, sp, #0x0
- blx TP_GetUserInfo
+ bl TP_GetUserInfo
cmp r0, #0x1
add r0, sp, #0x0
bne _02016402
- blx TP_SetCalibrateParam
+ bl TP_SetCalibrateParam
add sp, #0x8
pop {r3, pc}
_02016402:
@@ -33855,7 +33855,7 @@ _02016402:
ldr r1, _02016434 ; =0x00001208
strh r1, [r0, #0x6]
add r0, sp, #0x0
- blx TP_SetCalibrateParam
+ bl TP_SetCalibrateParam
add sp, #0x8
pop {r3, pc}
.balign 4
@@ -33965,19 +33965,19 @@ _020164C8:
bne _020164F4
add r4, sp, #0x8
_020164E4:
- blx TP_RequestSamplingAsync
+ bl TP_RequestSamplingAsync
add r0, r4, #0x0
- blx TP_WaitRawResult
+ bl TP_WaitRawResult
cmp r0, #0x0
bne _020164E4
b _020164FA
_020164F4:
add r0, sp, #0x8
- blx TP_GetLatestRawPointInAuto
+ bl TP_GetLatestRawPointInAuto
_020164FA:
add r0, sp, #0x0
add r1, sp, #0x8
- blx TP_GetCalibratedPoint
+ bl TP_GetCalibratedPoint
add r1, sp, #0x0
ldrh r3, [r1, #0x6]
cmp r3, #0x0
@@ -34260,7 +34260,7 @@ _020166F4:
mov r0, #0x0
add r1, r3, #0x0
mov r2, #0x4
- blx OS_AllocFromArenaLo
+ bl OS_AllocFromArenaLo
_020166FE:
ldr r1, [sp, #0x4]
lsl r7, r6, #0x1
@@ -34272,7 +34272,7 @@ _020166FE:
mov r0, #0x0
add r1, r6, r1
mov r2, #0x4
- blx OS_AllocFromArenaLo
+ bl OS_AllocFromArenaLo
ldr r1, _020167F0 ; =0x021C4D28
str r0, [r1, #0x0]
ldr r1, [sp, #0x4]
@@ -34313,19 +34313,19 @@ _0201675C:
ldr r1, [r5, #0x0]
mov r0, #0x0
mov r2, #0x4
- blx OS_AllocFromArenaLo
+ bl OS_AllocFromArenaLo
b _02016772
_02016768:
ldr r1, [r5, #0x0]
mov r0, #0x2
mov r2, #0x4
- blx OS_AllocFromArenaHi
+ bl OS_AllocFromArenaHi
_02016772:
cmp r0, #0x0
beq _0201678E
ldr r1, [r5, #0x0]
mov r2, #0x0
- blx tempName_NNS_FndCreateExpHeapEx
+ bl tempName_NNS_FndCreateExpHeapEx
ldr r1, _020167F0 ; =0x021C4D28
ldr r2, [r1, #0x0]
ldr r1, [sp, #0x0]
@@ -34443,7 +34443,7 @@ FUN_02016834: ; 0x02016834
add r5, r1, #0x0
str r2, [sp, #0x0]
add r7, r3, #0x0
- blx OS_GetProcMode
+ bl OS_GetProcMode
cmp r0, #0x12
bne _0201684C
bl ErrorHandling
@@ -34463,7 +34463,7 @@ _0201684C:
ldr r1, [sp, #0x0]
add r0, r6, #0x0
add r2, r7, #0x0
- blx tempName_NNS_FndAllocFromExpHeapEx
+ bl tempName_NNS_FndAllocFromExpHeapEx
str r0, [sp, #0x4]
cmp r0, #0x0
beq _020168B6
@@ -34474,7 +34474,7 @@ _0201684C:
ldr r1, [sp, #0x0]
mov r2, #0x0
lsl r4, r7, #0x2
- blx tempName_NNS_FndCreateExpHeapEx
+ bl tempName_NNS_FndCreateExpHeapEx
ldr r1, _020168CC ; =0x021C4D28
ldr r2, [r1, #0x0]
str r0, [r2, r4]
@@ -34517,7 +34517,7 @@ _020168CC: .word 0x021C4D28
FUN_020168D0: ; 0x020168D0
push {r4, lr}
add r4, r0, #0x0
- blx OS_GetProcMode
+ bl OS_GetProcMode
cmp r0, #0x12
bne _020168E0
bl ErrorHandling
@@ -34530,7 +34530,7 @@ _020168E0:
ldr r0, [r1, r0]
cmp r0, #0x0
beq _0201693E
- blx thunk_FUN_020adc8c
+ bl thunk_FUN_020adc8c
ldr r1, _02016940 ; =0x021C4D28
ldr r0, [r1, #0x10]
ldrb r0, [r0, r4]
@@ -34543,7 +34543,7 @@ _020168E0:
beq _02016912
cmp r1, #0x0
beq _02016912
- blx FUN_020ADDF0
+ bl FUN_020ADDF0
b _02016916
_02016912:
bl ErrorHandling
@@ -34584,16 +34584,16 @@ FUN_02016944: ; 0x02016944
bne _02016956
bl ErrorHandling
_02016956:
- blx OS_DisableInterrupts
+ bl OS_DisableInterrupts
add r4, #0x10
str r0, [sp, #0x0]
add r0, r5, #0x0
add r1, r4, #0x0
add r2, r7, #0x0
- blx tempName_NNS_FndAllocFromExpHeapEx
+ bl tempName_NNS_FndAllocFromExpHeapEx
add r4, r0, #0x0
ldr r0, [sp, #0x0]
- blx OS_RestoreInterrupts
+ bl OS_RestoreInterrupts
cmp r4, #0x0
beq _02016984
ldr r1, [r4, #0xc]
@@ -34732,14 +34732,14 @@ _02016A5E:
ldrh r0, [r1, r5]
sub r0, r0, #0x1
strh r0, [r1, r5]
- blx OS_DisableInterrupts
+ bl OS_DisableInterrupts
sub r6, #0x10
add r4, r0, #0x0
add r0, r7, #0x0
add r1, r6, #0x0
- blx FUN_020ADDF0
+ bl FUN_020ADDF0
add r0, r4, #0x0
- blx OS_RestoreInterrupts
+ bl OS_RestoreInterrupts
pop {r3-r7, pc}
_02016A80:
bl ErrorHandling
@@ -34752,7 +34752,7 @@ FUN_02016A8C: ; 0x02016A8C
push {r4-r6, lr}
add r5, r0, #0x0
add r4, r1, #0x0
- blx OS_GetProcMode
+ bl OS_GetProcMode
cmp r0, #0x12
bne _02016A9E
bl ErrorHandling
@@ -34781,7 +34781,7 @@ _02016AC8:
sub r4, #0x10
add r0, r6, #0x0
add r1, r4, #0x0
- blx FUN_020ADDF0
+ bl FUN_020ADDF0
ldr r0, _02016AF4 ; =0x021C4D28
lsl r4, r5, #0x1
ldr r0, [r0, #0xc]
@@ -34814,7 +34814,7 @@ FUN_02016AF8: ; 0x02016AF8
ldrb r0, [r1, r0]
lsl r0, r0, #0x2
ldr r0, [r2, r0]
- blx FUN_020ADDC8
+ bl FUN_020ADDC8
pop {r3, pc}
_02016B12:
bl ErrorHandling
@@ -34835,7 +34835,7 @@ FUN_02016B20: ; 0x02016B20
ldrb r1, [r4, r1]
lsl r1, r1, #0x2
ldr r1, [r3, r1]
- blx FUN_020AE82C
+ bl FUN_020AE82C
pop {r4, pc}
_02016B3A:
bl ErrorHandling
@@ -34848,14 +34848,14 @@ FUN_02016B44: ; 0x02016B44
push {r3-r5, lr}
add r5, r0, #0x0
add r4, r1, #0x0
- blx OS_GetProcMode
+ bl OS_GetProcMode
cmp r0, #0x12
bne _02016B56
bl ErrorHandling
_02016B56:
add r0, r5, #0x0
sub r0, #0x10
- blx FUN_020ADDC0
+ bl FUN_020ADDC0
add r4, #0x10
cmp r0, r4
blo _02016B84
@@ -34872,7 +34872,7 @@ _02016B56:
lsl r0, r0, #0x2
ldr r0, [r1, r0]
add r1, r5, #0x0
- blx FUN_020ADE2C
+ bl FUN_020ADE2C
pop {r3-r5, pc}
_02016B84:
bl ErrorHandling
@@ -34896,7 +34896,7 @@ FUN_02016B94: ; 0x02016B94
mov r1, #0x0
lsl r2, r2, #0x2
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
str r5, [r4, #0x0]
mov r0, #0x0
strh r0, [r4, #0x4]
@@ -34916,9 +34916,9 @@ FUN_02016BBC: ; 0x02016BBC
ldr r0, [r4, #0x0]
ldr r1, [r4, #0x4]
ldr r2, [r4, #0xc]
- blx GX_SetGraphicsMode
+ bl GX_SetGraphicsMode
ldr r0, [r4, #0x8]
- blx GXS_SetGraphicsMode
+ bl GXS_SetGraphicsMode
mov r2, #0x1
lsl r2, r2, #0x1a
ldr r1, [r2, #0x0]
@@ -34944,12 +34944,12 @@ FUN_02016BF4: ; 0x02016BF4
ldr r0, [r2, #0x0]
ldr r1, [r2, #0x4]
ldr r2, [r2, #0xc]
- blx GX_SetGraphicsMode
+ bl GX_SetGraphicsMode
bl FUN_0201E6D8
pop {r3, pc}
_02016C0C:
ldr r0, [r2, #0x8]
- blx GXS_SetGraphicsMode
+ bl GXS_SetGraphicsMode
bl FUN_0201E740
pop {r3, pc}
@@ -35546,7 +35546,7 @@ _0201705A:
ldr r1, [r6, r5]
ldr r2, [r4, #0x8]
mov r0, #0x0
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
ldr r0, [sp, #0x0]
ldr r2, [r4, #0x8]
add r1, r0, r5
@@ -37134,7 +37134,7 @@ _02017BFC:
ldr r0, [r4, #0x18]
str r0, [sp, #0x4]
ldr r0, _02017C5C ; =0x04000020
- blx G2x_SetBGyAffine_
+ bl G2x_SetBGyAffine_
add sp, #0x8
pop {r3-r5, pc}
_02017C14:
@@ -37146,7 +37146,7 @@ _02017C14:
ldr r0, [r4, #0x18]
str r0, [sp, #0x4]
ldr r0, _02017C60 ; =0x04000030
- blx G2x_SetBGyAffine_
+ bl G2x_SetBGyAffine_
add sp, #0x8
pop {r3-r5, pc}
_02017C2C:
@@ -37158,7 +37158,7 @@ _02017C2C:
ldr r0, [r4, #0x18]
str r0, [sp, #0x4]
ldr r0, _02017C64 ; =0x04001020
- blx G2x_SetBGyAffine_
+ bl G2x_SetBGyAffine_
add sp, #0x8
pop {r3-r5, pc}
_02017C44:
@@ -37170,7 +37170,7 @@ _02017C44:
ldr r0, [r4, #0x18]
str r0, [sp, #0x4]
ldr r0, _02017C68 ; =0x04001030
- blx G2x_SetBGyAffine_
+ bl G2x_SetBGyAffine_
_02017C58:
add sp, #0x8
pop {r3-r5, pc}
@@ -37208,7 +37208,7 @@ FUN_02017C98: ; 0x02017C98
push {r3-r5, lr}
cmp r2, #0x0
bne _02017CA4
- blx MI_UncompressLZ8
+ bl MI_UncompressLZ8
pop {r3-r5, pc}
_02017CA4:
mov r4, #0x3
@@ -37227,10 +37227,10 @@ _02017CA4:
ror r5, r3
add r3, r4, r5
bne _02017CCA
- blx MIi_CpuCopy32
+ bl MIi_CpuCopy32
pop {r3-r5, pc}
_02017CCA:
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
pop {r3-r5, pc}
thumb_func_start FUN_02017CD0
@@ -37318,7 +37318,7 @@ FUN_02017D68: ; 0x02017D68
add r0, r4, #0x0
add r1, r6, #0x0
add r5, r2, #0x0
- blx DC_FlushRange
+ bl DC_FlushRange
cmp r7, #0x7
bhi _02017DF8
add r0, r7, r7
@@ -37340,49 +37340,49 @@ _02017D9A:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- blx GX_LoadBG0Scr
+ bl GX_LoadBG0Scr
pop {r3-r7, pc}
_02017DA6:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- blx GX_LoadBG1Scr
+ bl GX_LoadBG1Scr
pop {r3-r7, pc}
_02017DB2:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- blx GX_LoadBG2Scr
+ bl GX_LoadBG2Scr
pop {r3-r7, pc}
_02017DBE:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- blx GX_LoadBG3Scr
+ bl GX_LoadBG3Scr
pop {r3-r7, pc}
_02017DCA:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- blx GXS_LoadBG0Scr
+ bl GXS_LoadBG0Scr
pop {r3-r7, pc}
_02017DD6:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- blx GXS_LoadBG1Scr
+ bl GXS_LoadBG1Scr
pop {r3-r7, pc}
_02017DE2:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- blx GXS_LoadBG2Scr
+ bl GXS_LoadBG2Scr
pop {r3-r7, pc}
_02017DEE:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- blx GXS_LoadBG3Scr
+ bl GXS_LoadBG3Scr
_02017DF8:
pop {r3-r7, pc}
.balign 4
@@ -37467,7 +37467,7 @@ FUN_02017E84: ; 0x02017E84
add r0, r4, #0x0
add r1, r6, #0x0
add r5, r2, #0x0
- blx DC_FlushRange
+ bl DC_FlushRange
cmp r7, #0x7
bhi _02017F14
add r0, r7, r7
@@ -37489,49 +37489,49 @@ _02017EB6:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- blx GX_LoadBG0Char
+ bl GX_LoadBG0Char
pop {r3-r7, pc}
_02017EC2:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- blx GX_LoadBG1Char
+ bl GX_LoadBG1Char
pop {r3-r7, pc}
_02017ECE:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- blx GX_LoadBG2Char
+ bl GX_LoadBG2Char
pop {r3-r7, pc}
_02017EDA:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- blx GX_LoadBG3Char
+ bl GX_LoadBG3Char
pop {r3-r7, pc}
_02017EE6:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- blx GXS_LoadBG0Char
+ bl GXS_LoadBG0Char
pop {r3-r7, pc}
_02017EF2:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- blx GXS_LoadBG1Char
+ bl GXS_LoadBG1Char
pop {r3-r7, pc}
_02017EFE:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- blx GXS_LoadBG2Char
+ bl GXS_LoadBG2Char
pop {r3-r7, pc}
_02017F0A:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- blx GXS_LoadBG3Char
+ bl GXS_LoadBG3Char
_02017F14:
pop {r3-r7, pc}
.balign 4
@@ -37548,7 +37548,7 @@ FUN_02017F18: ; 0x02017F18
add r4, r0, #0x0
mov r1, #0x0
add r2, r5, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r6, #0x0
add r1, r4, #0x0
add r2, r7, #0x0
@@ -37600,7 +37600,7 @@ _02017F8C:
ldr r1, [sp, #0x4]
ldr r2, [sp, #0x0]
add r0, r5, #0x0
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
lsl r0, r7, #0x18
ldrb r2, [r4, r6]
ldr r3, [sp, #0x20]
@@ -37623,19 +37623,19 @@ FUN_02017FB4: ; 0x02017FB4
add r0, r5, #0x0
add r1, r4, #0x0
add r7, r3, #0x0
- blx DC_FlushRange
+ bl DC_FlushRange
cmp r6, #0x4
bhs _02017FD6
add r0, r5, #0x0
add r1, r7, #0x0
add r2, r4, #0x0
- blx GX_LoadBGPltt
+ bl GX_LoadBGPltt
pop {r3-r7, pc}
_02017FD6:
add r0, r5, #0x0
add r1, r7, #0x0
add r2, r4, #0x0
- blx GXS_LoadBGPltt
+ bl GXS_LoadBGPltt
pop {r3-r7, pc}
.balign 4
@@ -38668,7 +38668,7 @@ FUN_02018744: ; 0x02018744
beq _02018766
ldr r2, [r2, #0xc]
mov r0, #0x0
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
add r0, r5, #0x0
add r1, r4, #0x0
bl FUN_02017CD0
@@ -38688,7 +38688,7 @@ FUN_02018768: ; 0x02018768
beq _0201878A
add r0, r2, #0x0
ldr r2, [r3, #0xc]
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
add r0, r5, #0x0
add r1, r4, #0x0
bl FUN_02017CD0
@@ -38708,7 +38708,7 @@ FUN_0201878C: ; 0x0201878C
beq _020187AE
add r0, r2, #0x0
ldr r2, [r3, #0xc]
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
add r0, r5, #0x0
add r1, r4, #0x0
bl FUN_0201AC68
@@ -38736,28 +38736,28 @@ _020187C2: ; jump table (using 16-bit offset)
.short _020187F6 - _020187C2 - 2; case 6
.short _020187FC - _020187C2 - 2; case 7
_020187D2:
- blx G2_GetBG0CharPtr
+ bl G2_GetBG0CharPtr
pop {r3, pc}
_020187D8:
- blx G2_GetBG1CharPtr
+ bl G2_GetBG1CharPtr
pop {r3, pc}
_020187DE:
- blx G2_GetBG2CharPtr
+ bl G2_GetBG2CharPtr
pop {r3, pc}
_020187E4:
- blx G2_GetBG3CharPtr
+ bl G2_GetBG3CharPtr
pop {r3, pc}
_020187EA:
- blx G2S_GetBG0CharPtr
+ bl G2S_GetBG0CharPtr
pop {r3, pc}
_020187F0:
- blx G2S_GetBG1CharPtr
+ bl G2S_GetBG1CharPtr
pop {r3, pc}
_020187F6:
- blx G2S_GetBG2CharPtr
+ bl G2S_GetBG2CharPtr
pop {r3, pc}
_020187FC:
- blx G2S_GetBG3CharPtr
+ bl G2S_GetBG3CharPtr
pop {r3, pc}
_02018802:
mov r0, #0x0
@@ -40023,7 +40023,7 @@ FUN_020190EC: ; 0x020190EC
lsl r1, r1, #0x18
ldr r2, [sp, #0x4]
lsr r1, r1, #0x18
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
cmp r7, #0x0
beq _02019148
str r5, [r4, #0x0]
@@ -40754,7 +40754,7 @@ _0201963C:
ldrb r4, [r4, #0x7]
mul r2, r4
mul r2, r3
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
pop {r3-r5, pc}
thumb_func_start FUN_02019658
@@ -43637,7 +43637,7 @@ FUN_0201AB28: ; 0x0201AB28
bl FUN_020161A4
add r1, sp, #0x0
str r0, [r4, #0x0]
- blx FUN_020B0030
+ bl FUN_020B0030
ldr r0, [sp, #0x0]
add sp, #0x4
pop {r3-r4, pc}
@@ -43652,7 +43652,7 @@ FUN_0201AB44: ; 0x0201AB44
bl FUN_020161A4
add r1, sp, #0x0
str r0, [r4, #0x0]
- blx FUN_020B0138
+ bl FUN_020B0138
ldr r0, [sp, #0x0]
add sp, #0x4
pop {r3-r4, pc}
@@ -43889,7 +43889,7 @@ _0201ACEA:
ldr r2, [r2, #0x0]
ldr r3, [r3, #0x0]
add r1, sp, #0x38
- blx G2x_SetBGyAffine_
+ bl G2x_SetBGyAffine_
_0201AD1E:
ldrh r1, [r4, #0x4]
mov r0, #0x8
@@ -43945,7 +43945,7 @@ _0201AD4E:
ldr r2, [r2, #0x0]
ldr r3, [r3, #0x0]
add r1, sp, #0x28
- blx G2x_SetBGyAffine_
+ bl G2x_SetBGyAffine_
_0201AD8E:
ldrh r1, [r4, #0x4]
mov r0, #0x10
@@ -44035,7 +44035,7 @@ _0201AE04:
ldr r2, [r4, r2]
ldr r3, [r4, r3]
add r1, sp, #0x18
- blx G2x_SetBGyAffine_
+ bl G2x_SetBGyAffine_
_0201AE3E:
ldrh r0, [r4, #0x4]
mov r3, #0x80
@@ -44090,7 +44090,7 @@ _0201AE72:
ldr r2, [r4, r2]
ldr r3, [r4, r3]
add r1, sp, #0x8
- blx G2x_SetBGyAffine_
+ bl G2x_SetBGyAffine_
_0201AEAC:
add sp, #0x48
pop {r4, pc}
@@ -44364,7 +44364,7 @@ _0201B096:
ldr r1, [sp, #0x18]
add r1, r1, r2
mov r2, #0x40
- blx memcpy
+ bl memcpy
ldrh r1, [r4, r6]
add r0, r7, #0x0
asr r2, r1, #0xa
@@ -44454,7 +44454,7 @@ _0201B142:
add r0, r7, #0x0
add r1, r4, #0x0
mov r2, #0x40
- blx memcpy
+ bl memcpy
_0201B166:
ldr r0, [sp, #0x0]
mov r1, #0x2
@@ -44484,7 +44484,7 @@ _0201B17E:
add r0, r7, #0x0
add r1, r4, #0x0
mov r2, #0x40
- blx memcpy
+ bl memcpy
_0201B19E:
add r0, r4, #0x0
bl FUN_02016A18
@@ -44499,7 +44499,7 @@ FUN_0201B1A8: ; 0x0201B1A8
add r4, r2, #0x0
bl FUN_020161A4
str r0, [r5, #0x0]
- blx FUN_020BC0FC
+ bl FUN_020BC0FC
cmp r0, #0x0
beq _0201B1D2
bl FUN_0201B254
@@ -44507,12 +44507,12 @@ FUN_0201B1A8: ; 0x0201B1A8
bne _0201B1D2
ldr r0, [r5, #0x0]
ldr r1, [r0, #0x8]
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r0, [r5, #0x0]
- blx FUN_020BB59C
+ bl FUN_020BB59C
_0201B1D2:
ldr r0, [r5, #0x0]
- blx FUN_020BC13C
+ bl FUN_020BC13C
ldrh r1, [r0, #0xe]
add r1, r0, r1
ldr r1, [r1, #0xc]
@@ -44526,7 +44526,7 @@ FUN_0201B1E4: ; 0x0201B1E4
add r5, r1, #0x0
add r4, r0, #0x0
ldr r0, [r5, #0x0]
- blx FUN_020BC0FC
+ bl FUN_020BC0FC
cmp r0, #0x0
beq _0201B20A
bl FUN_0201B254
@@ -44534,12 +44534,12 @@ FUN_0201B1E4: ; 0x0201B1E4
bne _0201B20A
ldr r0, [r5, #0x0]
ldr r1, [r0, #0x8]
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r0, [r5, #0x0]
- blx FUN_020BB59C
+ bl FUN_020BB59C
_0201B20A:
ldr r0, [r5, #0x0]
- blx FUN_020BC13C
+ bl FUN_020BC13C
ldrh r1, [r0, #0xe]
add r1, r0, r1
ldr r1, [r1, #0xc]
@@ -44557,7 +44557,7 @@ FUN_0201B21C: ; 0x0201B21C
bl FUN_0201B1A8
ldr r1, [r4, #0x0]
add r0, r5, #0x0
- blx FUN_020B80B4
+ bl FUN_020B80B4
pop {r3-r5, pc}
thumb_func_start FUN_0201B234
@@ -44574,7 +44574,7 @@ FUN_0201B234: ; 0x0201B234
_0201B24A:
ldr r1, [r4, #0x0]
add r0, r5, #0x0
- blx FUN_020B80B4
+ bl FUN_020B80B4
pop {r3-r5, pc}
thumb_func_start FUN_0201B254
@@ -44601,20 +44601,20 @@ FUN_0201B26C: ; 0x0201B26C
add r0, r1, #0x0
add r4, r2, #0x0
add r6, r3, #0x0
- blx FUN_020B8474
+ bl FUN_020B8474
ldr r1, _0201B2A0 ; =0x021CEDD4
add r0, r4, #0x0
- blx MI_Copy36B
+ bl MI_Copy36B
ldr r1, _0201B2A4 ; =0x021CED98
mov r0, #0xa4
ldr r2, [r1, #0x7c]
bic r2, r0
add r0, r6, #0x0
str r2, [r1, #0x7c]
- blx FUN_020B844C
- blx FUN_020B849C
+ bl FUN_020B844C
+ bl FUN_020B849C
add r0, r5, #0x0
- blx FUN_020BAC98
+ bl FUN_020BAC98
pop {r4-r6, pc}
nop
_0201B2A0: .word 0x021CEDD4
@@ -44627,24 +44627,24 @@ FUN_0201B2A8: ; 0x0201B2A8
add r0, r1, #0x0
add r4, r2, #0x0
add r6, r3, #0x0
- blx FUN_020B8474
+ bl FUN_020B8474
ldr r1, _0201B2E4 ; =0x021CEDD4
add r0, r4, #0x0
- blx MI_Copy36B
+ bl MI_Copy36B
ldr r1, _0201B2E8 ; =0x021CED98
mov r0, #0xa4
ldr r2, [r1, #0x7c]
bic r2, r0
str r2, [r1, #0x7c]
add r0, r6, #0x0
- blx FUN_020B844C
- blx FUN_020B849C
+ bl FUN_020B844C
+ bl FUN_020B849C
mov r1, #0x0
ldr r0, [r5, #0x4]
add r2, r1, #0x0
mov r3, #0x1
- blx FUN_020BAFB8
- blx FUN_020BB394
+ bl FUN_020BAFB8
+ bl FUN_020BB394
pop {r4-r6, pc}
.balign 4
_0201B2E4: .word 0x021CEDD4
@@ -44712,13 +44712,13 @@ FUN_0201B314: ; 0x0201B314
add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
- blx G3X_SetFog
+ bl G3X_SetFog
mov r0, #0x0
ldr r2, _0201B38C ; =0x00007FFF
add r1, r0, #0x0
mov r3, #0x3f
str r0, [sp, #0x0]
- blx G3X_SetClearColor
+ bl G3X_SetClearColor
ldr r1, _0201B390 ; =0xBFFF0000
ldr r0, _0201B394 ; =0x04000580
str r1, [r0, #0x0]
@@ -44745,11 +44745,11 @@ _0201B3A4: .word FUN_020223BC
FUN_0201B3A8: ; 0x0201B3A8
push {r4, lr}
add r4, r1, #0x0
- blx FUN_020BC13C
+ bl FUN_020BC13C
cmp r4, #0x0
beq _0201B3BE
add r1, r4, #0x0
- blx FUN_020B7790
+ bl FUN_020B7790
mov r0, #0x1
pop {r4, pc}
_0201B3BE:
@@ -44775,13 +44775,13 @@ _0201B3D2:
str r1, [sp, #0x0]
cmp r5, #0x0
beq _0201B4D0
- blx FUN_020B7E1C
+ bl FUN_020B7E1C
add r6, r0, #0x0
add r0, r5, #0x0
- blx FUN_020B7E10
+ bl FUN_020B7E10
add r4, r0, #0x0
add r0, r5, #0x0
- blx FUN_020B7CE4
+ bl FUN_020B7CE4
str r0, [sp, #0xc]
cmp r6, #0x0
beq _0201B412
@@ -44882,19 +44882,19 @@ _0201B4A6:
add r0, r5, #0x0
add r1, r7, #0x0
add r2, r6, #0x0
- blx FUN_020B7DFC
+ bl FUN_020B7DFC
add r0, r5, #0x0
add r1, r4, #0x0
- blx FUN_020B7CDC
+ bl FUN_020B7CDC
ldr r1, [r5, #0x4]
add r0, r5, #0x0
- blx DC_FlushRange
+ bl DC_FlushRange
add r0, r5, #0x0
mov r1, #0x1
- blx FUN_020B7D28
+ bl FUN_020B7D28
add r0, r5, #0x0
mov r1, #0x1
- blx FUN_020B7C78
+ bl FUN_020B7C78
_0201B4D0:
mov r0, #0x1
add sp, #0x10
@@ -45237,22 +45237,22 @@ FUN_0201B6D0: ; 0x0201B6D0
ldrsh r3, [r4, r3]
bl FUN_0201B808
add r0, sp, #0x1c
- blx FUN_020B8474
+ bl FUN_020B8474
ldr r1, _0201B764 ; =0x021CEDD4
add r0, r5, #0x0
- blx MI_Copy36B
+ bl MI_Copy36B
ldr r1, _0201B768 ; =0x021CED98
mov r0, #0xa4
ldr r2, [r1, #0x7c]
bic r2, r0
add r0, r7, #0x0
str r2, [r1, #0x7c]
- blx FUN_020B844C
- blx FUN_020B849C
+ bl FUN_020B844C
+ bl FUN_020B849C
mov r1, #0x0
mov r0, #0x11
add r2, r1, #0x0
- blx FUN_020BB1C0
+ bl FUN_020BB1C0
ldr r0, [r4, #0x24]
add r1, sp, #0x10
str r0, [sp, #0x10]
@@ -45260,7 +45260,7 @@ FUN_0201B6D0: ; 0x0201B6D0
str r0, [sp, #0x18]
mov r0, #0x1b
mov r2, #0x3
- blx FUN_020BB1C0
+ bl FUN_020BB1C0
add r0, sp, #0x28
bl FUN_0201B82C
add r4, r0, #0x0
@@ -45268,7 +45268,7 @@ FUN_0201B6D0: ; 0x0201B6D0
mov r0, #0x12
add r1, sp, #0xc
str r2, [sp, #0xc]
- blx FUN_020BB1C0
+ bl FUN_020BB1C0
add r0, r4, #0x0
add sp, #0x34
pop {r4-r7, pc}
@@ -45296,12 +45296,12 @@ FUN_0201B76C: ; 0x0201B76C
add r2, r0, #0x0
bl FUN_0201B808
add r0, r5, #0x0
- blx FUN_020B8474
- blx FUN_020B849C
+ bl FUN_020B8474
+ bl FUN_020B849C
mov r1, #0x0
mov r0, #0x11
add r2, r1, #0x0
- blx FUN_020BB1C0
+ bl FUN_020BB1C0
ldr r0, [r4, #0x10]
lsl r2, r0, #0xc
ldr r0, [r4, #0xc]
@@ -45314,7 +45314,7 @@ FUN_0201B76C: ; 0x0201B76C
mov r0, #0x1b
add r1, sp, #0x10
mov r2, #0x3
- blx FUN_020BB1C0
+ bl FUN_020BB1C0
add r0, sp, #0x1c
bl FUN_0201B82C
add r4, r0, #0x0
@@ -45322,7 +45322,7 @@ FUN_0201B76C: ; 0x0201B76C
mov r0, #0x12
add r1, sp, #0xc
str r2, [sp, #0xc]
- blx FUN_020BB1C0
+ bl FUN_020BB1C0
add r0, r4, #0x0
add sp, #0x28
pop {r3-r5, pc}
@@ -45382,26 +45382,26 @@ FUN_0201B82C: ; 0x0201B82C
mov r0, #0x29
add r1, sp, #0x4
str r2, [sp, #0x8]
- blx FUN_020BB1C0
+ bl FUN_020BB1C0
mov r0, #0x0
str r0, [sp, #0x0]
mov r0, #0x40
add r1, sp, #0x0
mov r2, #0x1
- blx FUN_020BB1C0
+ bl FUN_020BB1C0
mov r1, #0x0
mov r0, #0x41
add r2, r1, #0x0
- blx FUN_020BB1C0
+ bl FUN_020BB1C0
mov r0, #0x70
add r1, r4, #0x0
mov r2, #0x3
- blx FUN_020BB1C0
- blx FUN_020BB394
+ bl FUN_020BB1C0
+ bl FUN_020BB394
add r4, sp, #0x8
_0201B86A:
add r0, r4, #0x0
- blx G3X_GetBoxTestResult
+ bl G3X_GetBoxTestResult
cmp r0, #0x0
bne _0201B86A
ldr r0, [sp, #0x8]
@@ -45561,7 +45561,7 @@ FUN_0201B970: ; 0x0201B970
push {r3, lr}
mov r1, #0x5a
lsl r1, r1, #0x2
- blx _s32_div_f
+ bl _s32_div_f
ldr r0, _0201B984 ; =0x020EDF50
lsl r1, r1, #0x2
ldr r0, [r0, r1]
@@ -45574,7 +45574,7 @@ FUN_0201B988: ; 0x0201B988
push {r3, lr}
mov r1, #0x5a
lsl r1, r1, #0x2
- blx _s32_div_f
+ bl _s32_div_f
add r1, #0x5a
ldr r0, _0201B99C ; =0x020EDF50
lsl r1, r1, #0x2
@@ -45588,7 +45588,7 @@ FUN_0201B9A0: ; 0x0201B9A0
push {r3, lr}
mov r1, #0x5a
lsl r1, r1, #0x2
- blx _s32_div_f
+ bl _s32_div_f
ldr r0, _0201B9B4 ; =0x020EDC7E
lsl r1, r1, #0x1
ldrh r0, [r0, r1]
@@ -45603,7 +45603,7 @@ FUN_0201B9B8: ; 0x0201B9B8
mov r1, #0x5a
lsr r0, r0, #0x10
lsl r1, r1, #0x2
- blx _s32_div_f
+ bl _s32_div_f
ldr r0, _0201B9D0 ; =0x020EDF50
lsl r1, r1, #0x2
ldr r0, [r0, r1]
@@ -45845,7 +45845,7 @@ _0201BB8E:
mul r0, r1
mov r1, #0x5a
lsl r1, r1, #0x2
- blx _u32_div_f
+ bl _u32_div_f
lsl r0, r0, #0x10
lsr r1, r0, #0x10
_0201BBA2:
@@ -45863,7 +45863,7 @@ _0201BBA2:
add r1, r5, #0x0
add r2, r4, #0x0
add r3, r6, #0x0
- blx MTX_ScaleApply22
+ bl MTX_ScaleApply22
pop {r4-r6, pc}
nop
_0201BBC8: .word 0x0000FFFF
@@ -45891,14 +45891,14 @@ FUN_0201BBD0: ; 0x0201BBD0
str r5, [sp, #0x2c]
str r4, [sp, #0x30]
str r6, [sp, #0x24]
- blx _ll_mul
+ bl _ll_mul
str r0, [sp, #0x4]
add r2, r4, #0x0
ldr r0, [sp, #0x20]
add r7, r1, #0x0
asr r1, r0, #0x1f
asr r3, r2, #0x1f
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
ldr r3, [sp, #0x4]
lsl r2, r2, #0xa
@@ -45928,7 +45928,7 @@ FUN_0201BBD0: ; 0x0201BBD0
str r0, [sp, #0x34]
add r0, sp, #0x2c
add r1, sp, #0x14
- blx VEC_Normalize
+ bl VEC_Normalize
mov r1, #0x0
ldr r0, [sp, #0x0]
str r1, [sp, #0x34]
@@ -45940,10 +45940,10 @@ FUN_0201BBD0: ; 0x0201BBD0
str r5, [sp, #0x2c]
str r4, [sp, #0x30]
str r6, [sp, #0x24]
- blx VEC_Subtract
+ bl VEC_Subtract
add r0, sp, #0x14
add r1, sp, #0x8
- blx VEC_DotProduct
+ bl VEC_DotProduct
asr r0, r0, #0xc
bpl _0201BC72
neg r0, r0
@@ -45967,7 +45967,7 @@ FUN_0201BC84: ; 0x0201BC84
ldr r2, _0201BCB4 ; =0x0000323D
asr r1, r0, #0x1f
mov r3, #0x0
- blx _ll_mul
+ bl _ll_mul
add r5, r0, #0x0
ldr r0, _0201BCB8 ; =0x0000FFFF
mov r2, #0x2
@@ -45980,7 +45980,7 @@ FUN_0201BC84: ; 0x0201BC84
lsr r2, r2, #0xc
orr r2, r1
asr r1, r2, #0xc
- blx _s32_div_f
+ bl _s32_div_f
pop {r3-r5, pc}
nop
_0201BCB4: .word 0x0000323D
@@ -46678,7 +46678,7 @@ FUN_0201C1B0: ; 0x0201C1B0
ldr r0, [r0, #0x14]
add r1, r5, #0x0
lsl r2, r2, #0x8
- blx MIi_CpuCopy32
+ bl MIi_CpuCopy32
add r0, r4, #0x0
bl FUN_02016A18
add r0, r5, #0x0
@@ -46772,7 +46772,7 @@ _0201C272:
ldr r1, [r1, #0x0]
ldr r0, [r1, #0x8]
ldr r1, [r1, #0x0]
- blx FUN_020AEF1C
+ bl FUN_020AEF1C
pop {r3-r5, pc}
nop
_0201C298: .word 0x021C5934
@@ -46831,7 +46831,7 @@ _0201C2FA:
add r1, r4, #0x0
add r2, r6, #0x0
add r3, r7, #0x0
- blx FUN_020AEE40
+ bl FUN_020AEE40
pop {r3-r7, pc}
.balign 4
_0201C308: .word 0x021C5934
@@ -46843,7 +46843,7 @@ FUN_0201C30C: ; 0x0201C30C
ldr r0, [r0, #0x0]
cmp r0, #0x0
beq _0201C322
- blx FUN_020AEEB8
+ bl FUN_020AEEB8
ldr r0, _0201C324 ; =0x021C5934
mov r1, #0x0
ldr r0, [r0, #0x0]
@@ -46864,7 +46864,7 @@ FUN_0201C328: ; 0x0201C328
ldr r2, _0201C344 ; =FUN_0201C358
add r1, r4, #0x0
add r5, r0, #0x0
- blx FUN_020B4568
+ bl FUN_020B4568
add r0, r5, #0x0
pop {r3-r5, pc}
.balign 4
@@ -47208,7 +47208,7 @@ FUN_0201C578: ; 0x0201C578
add r0, r4, #0x0
add r0, #0x3c
add r1, sp, #0x0
- blx FUN_020BC2A0
+ bl FUN_020BC2A0
add r1, r0, #0x0
bne _0201C598
add sp, #0x10
@@ -47270,7 +47270,7 @@ _0201C5DE:
lsl r2, r2, #0x4
lsl r0, r0, #0x4
mul r0, r2
- blx _u32_div_f
+ bl _u32_div_f
pop {r3, pc}
.balign 4
@@ -47284,7 +47284,7 @@ FUN_0201C5FC: ; 0x0201C5FC
add r0, r4, #0x0
add r0, #0x3c
add r1, sp, #0x0
- blx FUN_020BC2A0
+ bl FUN_020BC2A0
add r1, r0, #0x0
add r0, r4, #0x0
bl FUN_0201C5A4
@@ -47550,10 +47550,10 @@ FUN_0201C7B0: ; 0x0201C7B0
sub sp, #0x30
add r4, r1, #0x0
add r1, sp, #0x24
- blx VEC_Normalize
+ bl VEC_Normalize
add r0, r4, #0x0
add r1, sp, #0x18
- blx VEC_Normalize
+ bl VEC_Normalize
ldr r0, [sp, #0x24]
ldr r4, [sp, #0x18]
str r0, [sp, #0x0]
@@ -47570,14 +47570,14 @@ FUN_0201C7B0: ; 0x0201C7B0
ldr r3, [sp, #0xc]
add r1, r7, #0x0
str r0, [sp, #0x10]
- blx _ll_mul
+ bl _ll_mul
str r0, [sp, #0x14]
add r5, r1, #0x0
ldr r0, [sp, #0x0]
ldr r1, [sp, #0x4]
add r2, r4, #0x0
add r3, r6, #0x0
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
ldr r3, [sp, #0x14]
lsl r2, r2, #0xa
@@ -47600,14 +47600,14 @@ FUN_0201C7B0: ; 0x0201C7B0
add r1, r7, #0x0
add r2, r4, #0x0
add r3, r6, #0x0
- blx _ll_mul
+ bl _ll_mul
add r6, r0, #0x0
add r4, r1, #0x0
ldr r0, [sp, #0x0]
ldr r1, [sp, #0x4]
ldr r2, [sp, #0x8]
ldr r3, [sp, #0xc]
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -47636,7 +47636,7 @@ _0201C862:
pop {r3-r7, pc}
_0201C86A:
add r1, r5, #0x0
- blx FX_Atan2
+ bl FX_Atan2
add sp, #0x30
pop {r3-r7, pc}
.balign 4
@@ -47685,7 +47685,7 @@ FUN_0201C878: ; 0x0201C878
ldr r0, [sp, #0x8]
ldr r1, [sp, #0x1c]
asr r3, r2, #0x1f
- blx _ll_mul
+ bl _ll_mul
add r7, r0, #0x0
add r6, r1, #0x0
ldr r3, [sp, #0x68]
@@ -47694,14 +47694,14 @@ FUN_0201C878: ; 0x0201C878
sub r2, r3, r2
ldr r1, [sp, #0x34]
asr r3, r2, #0x1f
- blx _ll_mul
+ bl _ll_mul
add r5, r1, #0x0
str r0, [sp, #0x3c]
ldr r1, [sp, #0x38]
ldr r2, [sp, #0x20]
ldr r3, [sp, #0x24]
add r0, r4, #0x0
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
str r0, [sp, #0x4c]
add r0, r1, #0x0
@@ -47737,7 +47737,7 @@ FUN_0201C878: ; 0x0201C878
sub r2, r3, r2
ldr r1, [sp, #0x34]
asr r3, r2, #0x1f
- blx _ll_mul
+ bl _ll_mul
add r7, r0, #0x0
add r6, r1, #0x0
ldr r3, [sp, #0x68]
@@ -47746,14 +47746,14 @@ FUN_0201C878: ; 0x0201C878
sub r2, r3, r2
ldr r1, [sp, #0x28]
asr r3, r2, #0x1f
- blx _ll_mul
+ bl _ll_mul
str r0, [sp, #0x40]
add r5, r1, #0x0
ldr r1, [sp, #0x38]
ldr r2, [sp, #0x14]
ldr r3, [sp, #0x18]
add r0, r4, #0x0
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
str r0, [sp, #0x50]
add r0, r1, #0x0
@@ -47789,7 +47789,7 @@ FUN_0201C878: ; 0x0201C878
sub r2, r3, r2
ldr r1, [sp, #0x28]
asr r3, r2, #0x1f
- blx _ll_mul
+ bl _ll_mul
add r7, r0, #0x0
add r6, r1, #0x0
ldr r3, [sp, #0x68]
@@ -47798,14 +47798,14 @@ FUN_0201C878: ; 0x0201C878
sub r2, r3, r2
ldr r1, [sp, #0x1c]
asr r3, r2, #0x1f
- blx _ll_mul
+ bl _ll_mul
add r5, r1, #0x0
str r0, [sp, #0x44]
ldr r1, [sp, #0x38]
ldr r2, [sp, #0x2c]
ldr r3, [sp, #0x30]
add r0, r4, #0x0
- blx _ll_mul
+ bl _ll_mul
mov r3, #0x2
mov r2, #0x0
lsl r3, r3, #0xa
@@ -47835,21 +47835,21 @@ FUN_0201C878: ; 0x0201C878
ldr r1, [sp, #0x34]
ldr r2, [sp, #0x2c]
ldr r3, [sp, #0x30]
- blx _ll_mul
+ bl _ll_mul
add r7, r0, #0x0
add r5, r1, #0x0
ldr r0, [sp, #0xc]
ldr r1, [sp, #0x28]
ldr r2, [sp, #0x20]
ldr r3, [sp, #0x24]
- blx _ll_mul
+ bl _ll_mul
str r0, [sp, #0x48]
add r4, r1, #0x0
ldr r0, [sp, #0x8]
ldr r1, [sp, #0x1c]
ldr r2, [sp, #0x14]
ldr r3, [sp, #0x18]
- blx _ll_mul
+ bl _ll_mul
mov r12, r0
mov r0, #0x2
add r2, r1, #0x0
@@ -47951,7 +47951,7 @@ FUN_0201CAA8: ; 0x0201CAA8
add r0, r5, #0x0
add r1, sp, #0x0
add r2, r5, #0x0
- blx MTX_Concat33
+ bl MTX_Concat33
ldr r0, [r4, #0x8]
ldr r3, _0201CB1C ; =0x020FFA38
lsl r0, r0, #0x10
@@ -47968,7 +47968,7 @@ FUN_0201CAA8: ; 0x0201CAA8
add r0, r5, #0x0
add r1, sp, #0x0
add r2, r5, #0x0
- blx MTX_Concat33
+ bl MTX_Concat33
add sp, #0x24
pop {r4-r5, pc}
nop
@@ -48000,7 +48000,7 @@ FUN_0201CB20: ; 0x0201CB20
add r0, r7, #0x0
add r1, sp, #0x0
add r2, r7, #0x0
- blx MTX_Concat33
+ bl MTX_Concat33
lsl r1, r4, #0x2
ldr r3, _0201CB78 ; =0x020EDF50
add r4, #0x5a
@@ -48012,7 +48012,7 @@ FUN_0201CB20: ; 0x0201CB20
add r0, r7, #0x0
add r1, sp, #0x0
add r2, r7, #0x0
- blx MTX_Concat33
+ bl MTX_Concat33
add sp, #0x24
pop {r4-r7, pc}
.balign 4
@@ -48033,12 +48033,12 @@ FUN_0201CB7C: ; 0x0201CB7C
ldrsh r1, [r1, r2]
add r5, r3, #0x0
ldr r4, [sp, #0x18]
- blx FX_Div
+ bl FX_Div
add r2, r0, #0x0
asr r1, r6, #0x1f
add r0, r6, #0x0
asr r3, r2, #0x1f
- blx _ll_mul
+ bl _ll_mul
mov r6, #0x2
mov r2, #0x0
lsl r6, r6, #0xa
@@ -48061,7 +48061,7 @@ FUN_0201CB7C: ; 0x0201CB7C
asr r3, r7, #0x1f
add r2, r7, #0x0
str r0, [r4, #0x0]
- blx _ll_mul
+ bl _ll_mul
mov r3, #0x0
add r2, r6, #0x0
add r2, r0, r2
@@ -48085,7 +48085,7 @@ FUN_0201CBEC: ; 0x0201CBEC
mul r0, r2
add r0, r1, r0
lsl r0, r0, #0xc
- blx FX_Sqrt
+ bl FX_Sqrt
asr r0, r0, #0xc
pop {r3, pc}
.balign 4
@@ -48207,11 +48207,11 @@ _0201CCD0:
mov r4, #0x4
add r6, r4, #0x0
_0201CCD4:
- blx TP_RequestAutoSamplingStopAsync
+ bl TP_RequestAutoSamplingStopAsync
add r0, r4, #0x0
- blx TP_WaitBusy
+ bl TP_WaitBusy
add r0, r6, #0x0
- blx TP_CheckError
+ bl TP_CheckError
cmp r0, #0x0
beq _0201CCEA
add r5, r5, #0x1
@@ -48276,7 +48276,7 @@ _0201CD4E:
ldrh r0, [r0, #0x18]
cmp r0, #0x0
beq _0201CD88
- blx TP_GetLatestIndexInAuto
+ bl TP_GetLatestIndexInAuto
add r5, r0, #0x0
ldr r0, _0201CD90 ; =0x021C5944
mov r1, #0x9
@@ -48320,7 +48320,7 @@ FUN_0201CD94: ; 0x0201CD94
_0201CDA6:
add r0, sp, #0x4
add r1, r5, #0x0
- blx TP_GetCalibratedPoint
+ bl TP_GetCalibratedPoint
ldrh r0, [r6, #0x0]
add r7, r7, #0x1
add r5, #0x8
@@ -48403,11 +48403,11 @@ _0201CE38:
add r1, r4, #0x0
add r2, r7, #0x0
mov r3, #0x9
- blx TP_RequestAutoSamplingStartAsync
+ bl TP_RequestAutoSamplingStartAsync
mov r0, #0x2
- blx TP_WaitBusy
+ bl TP_WaitBusy
mov r0, #0x2
- blx TP_CheckError
+ bl TP_CheckError
cmp r0, #0x0
beq _0201CE56
add r5, r5, #0x1
@@ -48536,7 +48536,7 @@ _0201CF0C:
ldr r2, [sp, #0x0]
cmp r2, #0x1
bne _0201CF36
- blx _u32_div_f
+ bl _u32_div_f
str r1, [r5, #0x54]
b _0201CF3E
_0201CF36:
@@ -48603,7 +48603,7 @@ _0201CF7C:
blo _0201CFB8
cmp r7, #0x4
bne _0201CFB2
- blx _u32_div_f
+ bl _u32_div_f
str r1, [r5, #0x54]
b _0201CFB8
_0201CFB2:
@@ -48721,7 +48721,7 @@ FUN_0201D060: ; 0x0201D060
mov r2, #0x3c
str r1, [r0, #0x0]
mov r0, #0x0
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
ldr r1, _0201D120 ; =0x021C5994
ldr r2, [r5, #0x0]
ldr r0, [r1, #0x0]
@@ -49954,7 +49954,7 @@ FUN_0201D9B0: ; 0x0201D9B0
push {r4, lr}
add r4, r0, #0x0
add r0, #0x10
- blx FUN_020B1A24
+ bl FUN_020B1A24
ldr r1, [r4, #0x4]
cmp r1, #0x3
beq _0201D9C8
@@ -50002,13 +50002,13 @@ _0201DA04:
add r5, #0x10
add r2, r4, #0x0
add r3, r5, #0x0
- blx FUN_020B1528
+ bl FUN_020B1528
b _0201DA20
_0201DA16:
add r5, #0x10
add r2, r4, #0x0
add r3, r5, #0x0
- blx FUN_020B1768
+ bl FUN_020B1768
_0201DA20:
cmp r4, #0x1
bne _0201DA2C
@@ -50028,7 +50028,7 @@ FUN_0201DA38: ; 0x0201DA38
push {r4, lr}
add r4, r0, #0x0
add r0, #0x10
- blx FUN_020B1A24
+ bl FUN_020B1A24
ldr r1, [r4, #0x4]
cmp r1, #0x3
beq _0201DA50
@@ -50071,7 +50071,7 @@ _0201DA88:
add r5, #0x10
add r2, r4, #0x0
add r3, r5, #0x0
- blx FUN_020B1340
+ bl FUN_020B1340
cmp r4, #0x1
bne _0201DAA0
mov r0, #0x1
@@ -50123,7 +50123,7 @@ _0201DAE4: .word 0x021C5994
thumb_func_start FUN_0201DAE8
FUN_0201DAE8: ; 0x0201DAE8
push {r3, lr}
- blx GX_GetBankForOBJ
+ bl GX_GetBankForOBJ
cmp r0, #0x30
bgt _0201DB18
bge _0201DB60
@@ -50224,7 +50224,7 @@ _0201DB90:
ldr r0, [r0, #0x0]
str r1, [r0, #0x14]
_0201DB98:
- blx GX_GetBankForSubOBJ
+ bl GX_GetBankForSubOBJ
cmp r0, #0x0
beq _0201DBAE
cmp r0, #0x8
@@ -50427,7 +50427,7 @@ FUN_0201DD00: ; 0x0201DD00
add r0, r4, #0x0
mov r1, #0x0
lsr r2, r2, #0x3
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
_0201DD16:
pop {r4, pc}
@@ -50609,7 +50609,7 @@ FUN_0201DE4C: ; 0x0201DE4C
beq _0201DE8A
add r0, r4, #0x0
add r0, #0x10
- blx FUN_020B1A14
+ bl FUN_020B1A14
ldr r1, _0201DECC ; =0x021C5994
ldr r2, [r1, #0x0]
ldr r1, [r2, #0x1c]
@@ -50635,7 +50635,7 @@ _0201DE8A:
beq _0201DEC4
add r0, r4, #0x0
add r0, #0x10
- blx FUN_020B1A14
+ bl FUN_020B1A14
ldr r1, _0201DECC ; =0x021C5994
ldr r2, [r1, #0x0]
ldr r1, [r2, #0x20]
@@ -50707,7 +50707,7 @@ FUN_0201DF10: ; 0x0201DF10
add r5, r0, #0x0
add r4, r1, #0x0
add r6, r2, #0x0
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0x0
beq _0201DF28
sub r5, r5, r1
@@ -50867,7 +50867,7 @@ FUN_0201E00C: ; 0x0201E00C
mov r2, #0x28
str r1, [r0, #0x0]
mov r0, #0x0
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
ldr r0, _0201E064 ; =0x021C5998
mov r1, #0x30
ldr r0, [r0, #0x0]
@@ -51219,9 +51219,9 @@ _0201E2A4:
_0201E2A6:
cmp r4, #0x0
beq _0201E2B6
- blx FUN_020B19C4
+ bl FUN_020B19C4
add r1, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
pop {r4, pc}
_0201E2B6:
mov r0, #0x0
@@ -51269,13 +51269,13 @@ FUN_0201E2F8: ; 0x0201E2F8
mov r1, #0x0
mov r2, #0x30
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x0
mvn r0, r0
str r0, [r4, #0xc]
add r4, #0x10
add r0, r4, #0x0
- blx FUN_020B19DC
+ bl FUN_020B19DC
pop {r4, pc}
thumb_func_start FUN_0201E314
@@ -51463,7 +51463,7 @@ _0201E460: .word 0x021C5998
thumb_func_start FUN_0201E464
FUN_0201E464: ; 0x0201E464
push {r3, lr}
- blx GX_GetBankForOBJExtPltt
+ bl GX_GetBankForOBJExtPltt
cmp r0, #0x20
beq _0201E472
cmp r0, #0x40
@@ -51481,7 +51481,7 @@ _0201E47E:
ldr r0, [r0, #0x0]
str r1, [r0, #0x1c]
_0201E486:
- blx GX_GetBankForSubOBJExtPltt
+ bl GX_GetBankForSubOBJExtPltt
mov r1, #0x1
lsl r1, r1, #0x8
cmp r0, r1
@@ -51516,7 +51516,7 @@ FUN_0201E4BC: ; 0x0201E4BC
push {r4, lr}
add r4, r0, #0x0
add r0, #0x10
- blx FUN_020B19DC
+ bl FUN_020B19DC
ldr r0, [r4, #0x4]
mov r2, #0x1
tst r0, r2
@@ -51525,7 +51525,7 @@ FUN_0201E4BC: ; 0x0201E4BC
ldr r0, [r4, #0x0]
ldr r1, [r4, #0x24]
add r3, #0x10
- blx FUN_020B1240
+ bl FUN_020B1240
_0201E4DA:
ldr r0, [r4, #0x4]
mov r2, #0x2
@@ -51535,7 +51535,7 @@ _0201E4DA:
ldr r1, [r4, #0x28]
add r4, #0x10
add r3, r4, #0x0
- blx FUN_020B1240
+ bl FUN_020B1240
_0201E4EE:
pop {r4, pc}
@@ -51767,36 +51767,36 @@ _0201E666:
FUN_0201E66C: ; 0x0201E66C
push {r4, lr}
add r4, r0, #0x0
- blx GX_ResetBankForBG
- blx GX_ResetBankForBGExtPltt
- blx GX_ResetBankForSubBG
- blx FUN_020C6034
- blx GX_ResetBankForOBJ
- blx GX_ResetBankForOBJExtPltt
- blx FUN_020C605C
- blx GX_ResetBankForSubOBJ
- blx GX_ResetBankForTex
- blx GX_ResetBankForTexPltt
+ bl GX_ResetBankForBG
+ bl GX_ResetBankForBGExtPltt
+ bl GX_ResetBankForSubBG
+ bl FUN_020C6034
+ bl GX_ResetBankForOBJ
+ bl GX_ResetBankForOBJExtPltt
+ bl FUN_020C605C
+ bl GX_ResetBankForSubOBJ
+ bl GX_ResetBankForTex
+ bl GX_ResetBankForTexPltt
ldr r0, [r4, #0x0]
- blx GX_SetBankForBG
+ bl GX_SetBankForBG
ldr r0, [r4, #0x4]
- blx GX_SetBankForBGExtPltt
+ bl GX_SetBankForBGExtPltt
ldr r0, [r4, #0x8]
- blx GX_SetBankForSubBG
+ bl GX_SetBankForSubBG
ldr r0, [r4, #0xc]
- blx GX_SetBankForSubBGExtPltt
+ bl GX_SetBankForSubBGExtPltt
ldr r0, [r4, #0x10]
- blx GX_SetBankForOBJ
+ bl GX_SetBankForOBJ
ldr r0, [r4, #0x14]
- blx GX_SetBankForOBJExtPltt
+ bl GX_SetBankForOBJExtPltt
ldr r0, [r4, #0x18]
- blx GX_SetBankForSubOBJ
+ bl GX_SetBankForSubOBJ
ldr r0, [r4, #0x1c]
- blx GX_SetBankForSubOBJExtPltt
+ bl GX_SetBankForSubOBJExtPltt
ldr r0, [r4, #0x20]
- blx GX_SetBankForTex
+ bl GX_SetBankForTex
ldr r0, [r4, #0x24]
- blx GX_SetBankForTexPltt
+ bl GX_SetBankForTexPltt
pop {r4, pc}
.balign 4
@@ -51906,7 +51906,7 @@ _0201E784: .word 0xFFFFE0FF
thumb_func_start FUN_0201E788
FUN_0201E788: ; 0x0201E788
push {r3, lr}
- blx GX_DispOn
+ bl GX_DispOn
ldr r2, _0201E79C ; =0x04001000
mov r0, #0x1
ldr r1, [r2, #0x0]
@@ -51961,7 +51961,7 @@ FUN_0201E7D8: ; 0x0201E7D8
asr r3, r2, #0x1f
ldrsh r0, [r0, r1]
asr r1, r0, #0x1f
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -51978,7 +51978,7 @@ FUN_0201E7D8: ; 0x0201E7D8
orr r0, r1
asr r1, r0, #0x1f
asr r3, r2, #0x1f
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -51998,7 +51998,7 @@ FUN_0201E7D8: ; 0x0201E7D8
asr r3, r2, #0x1f
ldrsh r0, [r0, r1]
asr r1, r0, #0x1f
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
lsl r2, r2, #0xa
mov r3, #0x0
@@ -52016,7 +52016,7 @@ FUN_0201E7D8: ; 0x0201E7D8
ldrsh r2, [r2, r3]
asr r1, r0, #0x1f
asr r3, r2, #0x1f
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -52036,7 +52036,7 @@ FUN_0201E7D8: ; 0x0201E7D8
ldrsh r0, [r0, r1]
asr r3, r2, #0x1f
asr r1, r0, #0x1f
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -52051,7 +52051,7 @@ FUN_0201E7D8: ; 0x0201E7D8
add r5, #0x20
add r1, r5, #0x0
add r2, r0, #0x0
- blx VEC_Add
+ bl VEC_Add
pop {r3-r5, pc}
nop
_0201E8B4: .word 0x020FFA38
@@ -52069,7 +52069,7 @@ FUN_0201E8B8: ; 0x0201E8B8
asr r3, r2, #0x1f
ldrsh r0, [r0, r1]
asr r1, r0, #0x1f
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -52086,7 +52086,7 @@ FUN_0201E8B8: ; 0x0201E8B8
orr r0, r1
asr r1, r0, #0x1f
asr r3, r2, #0x1f
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -52107,7 +52107,7 @@ FUN_0201E8B8: ; 0x0201E8B8
asr r3, r2, #0x1f
ldrsh r0, [r0, r1]
asr r1, r0, #0x1f
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
lsl r2, r2, #0xa
mov r3, #0x0
@@ -52125,7 +52125,7 @@ FUN_0201E8B8: ; 0x0201E8B8
ldrsh r2, [r2, r3]
asr r1, r0, #0x1f
asr r3, r2, #0x1f
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -52146,7 +52146,7 @@ FUN_0201E8B8: ; 0x0201E8B8
ldrsh r0, [r0, r1]
asr r3, r2, #0x1f
asr r1, r0, #0x1f
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -52162,7 +52162,7 @@ FUN_0201E8B8: ; 0x0201E8B8
add r5, #0x14
add r1, r5, #0x0
add r2, r0, #0x0
- blx VEC_Add
+ bl VEC_Add
pop {r3-r5, pc}
.balign 4
_0201E998: .word 0x020FFA38
@@ -52279,7 +52279,7 @@ _0201EA5C:
ldr r0, [r7, #0x4]
ldr r1, [r1, #0x0]
add r0, r0, #0x1
- blx _s32_div_f
+ bl _s32_div_f
str r1, [r7, #0x4]
ldr r1, [sp, #0x0]
ldr r0, [r5, #0x64]
@@ -52298,7 +52298,7 @@ _0201EA5C:
ldr r0, [r0, #0x0]
ldr r1, [r1, #0x0]
add r0, r0, #0x1
- blx _s32_div_f
+ bl _s32_div_f
ldr r0, [sp, #0x0]
str r1, [r0, #0x0]
ldr r0, [r5, #0x64]
@@ -52477,7 +52477,7 @@ FUN_0201EBA4: ; 0x0201EBA4
beq _0201EBEE
add r1, #0x48
add r2, sp, #0x10
- blx VEC_Subtract
+ bl VEC_Subtract
ldr r0, _0201EC40 ; =0x021C59A4
add r1, sp, #0x10
ldr r0, [r0, #0x0]
@@ -52531,7 +52531,7 @@ _0201EBEE:
str r0, [sp, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- blx G3i_LookAt_
+ bl G3i_LookAt_
ldr r1, _0201EC54 ; =0x021CED98
mov r0, #0xe8
ldr r2, [r1, #0x7c]
@@ -52719,9 +52719,9 @@ FUN_0201ED5C: ; 0x0201ED5C
str r0, [r2, #0x0]
add r0, r6, #0x0
add r2, sp, #0x30
- blx VEC_Subtract
+ bl VEC_Subtract
add r0, sp, #0x30
- blx VEC_Mag
+ bl VEC_Mag
str r0, [r4, #0x38]
mov r6, #0x0
add r0, sp, #0x24
@@ -52813,7 +52813,7 @@ FUN_0201EE2C: ; 0x0201EE2C
ldr r1, [r5, #0x4]
ldr r2, [r5, #0x8]
ldr r3, [r5, #0xc]
- blx G3i_PerspectiveW_
+ bl G3i_PerspectiveW_
ldr r1, _0201EEE8 ; =0x021CED98
mov r0, #0x50
ldr r2, [r1, #0x7c]
@@ -52830,11 +52830,11 @@ _0201EE6C:
ldr r4, [r5, #0x38]
ldr r0, [r5, #0x0]
ldr r1, [r5, #0x4]
- blx FX_Div
+ bl FX_Div
asr r1, r0, #0x1f
asr r3, r4, #0x1f
add r2, r4, #0x0
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -52847,7 +52847,7 @@ _0201EE6C:
asr r1, r4, #0x1f
add r0, r4, #0x0
asr r3, r2, #0x1f
- blx _ll_mul
+ bl _ll_mul
mov r6, #0x2
mov r2, #0x0
lsl r6, r6, #0xa
@@ -52868,7 +52868,7 @@ _0201EE6C:
neg r2, r3
str r0, [sp, #0x10]
add r0, r4, #0x0
- blx G3i_OrthoW_
+ bl G3i_OrthoW_
ldr r1, _0201EEE8 ; =0x021CED98
mov r0, #0x50
ldr r2, [r1, #0x7c]
@@ -52962,12 +52962,12 @@ FUN_0201EF70: ; 0x0201EF70
add r0, #0x14
add r1, r5, #0x0
add r2, r0, #0x0
- blx VEC_Add
+ bl VEC_Add
add r4, #0x20
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r4, #0x0
- blx VEC_Add
+ bl VEC_Add
pop {r3-r5, pc}
thumb_func_start FUN_0201EF90
@@ -53489,7 +53489,7 @@ FUN_0201F318: ; 0x0201F318
bl ErrorHandling
_0201F324:
add r0, sp, #0x0
- blx MTX_Identity33_
+ bl MTX_Identity33_
add r0, r5, #0x0
add r0, #0xbc
ldr r4, [r0, #0x0]
@@ -53648,13 +53648,13 @@ FUN_0201F454: ; 0x0201F454
add r4, r1, #0x0
add r6, r2, #0x0
add r7, r3, #0x0
- blx FUN_020B7E1C
+ bl FUN_020B7E1C
str r0, [sp, #0x8]
add r0, r5, #0x0
- blx FUN_020B7E10
+ bl FUN_020B7E10
str r0, [sp, #0x4]
add r0, r5, #0x0
- blx FUN_020B7CE4
+ bl FUN_020B7CE4
str r0, [sp, #0x0]
ldr r0, [sp, #0x8]
cmp r0, #0x0
@@ -53722,9 +53722,9 @@ FUN_0201F4EC: ; 0x0201F4EC
push {r3-r5, lr}
add r5, r0, #0x0
add r4, r3, #0x0
- blx FUN_020B7CF0
+ bl FUN_020B7CF0
add r0, r5, #0x0
- blx FUN_020B7C58
+ bl FUN_020B7C58
str r0, [r4, #0x0]
pop {r3-r5, pc}
@@ -53735,14 +53735,14 @@ FUN_0201F500: ; 0x0201F500
ldr r1, [r2, #0x0]
ldr r2, [r3, #0x0]
add r5, r0, #0x0
- blx FUN_020B7DFC
+ bl FUN_020B7DFC
ldr r1, [sp, #0x10]
add r0, r5, #0x0
ldr r1, [r1, #0x0]
- blx FUN_020B7CDC
+ bl FUN_020B7CDC
add r0, r4, #0x0
add r1, r5, #0x0
- blx FUN_020B7790
+ bl FUN_020B7790
pop {r3-r5, pc}
.balign 4
@@ -53792,22 +53792,22 @@ _0201F568:
mov r0, #0x0
pop {r3-r7, pc}
_0201F56E:
- blx FUN_020B7E1C
+ bl FUN_020B7E1C
str r0, [sp, #0x0]
add r0, r4, #0x0
- blx FUN_020B7E10
+ bl FUN_020B7E10
str r0, [sp, #0x4]
add r0, r4, #0x0
- blx FUN_020B7CE4
+ bl FUN_020B7CE4
add r4, r0, #0x0
add r0, r5, #0x0
- blx FUN_020B7E1C
+ bl FUN_020B7E1C
add r6, r0, #0x0
add r0, r5, #0x0
- blx FUN_020B7E10
+ bl FUN_020B7E10
add r7, r0, #0x0
add r0, r5, #0x0
- blx FUN_020B7CE4
+ bl FUN_020B7CE4
ldr r1, [sp, #0x0]
cmp r1, r6
bne _0201F5AA
@@ -53859,7 +53859,7 @@ FUN_0201F5D4: ; 0x0201F5D4
add r0, r5, #0x0
ldr r1, [r5, #0x7c]
add r0, #0x24
- blx FUN_020B80B4
+ bl FUN_020B80B4
add r0, r5, #0x0
add r0, #0xa8
ldrb r0, [r0, #0x0]
@@ -53961,7 +53961,7 @@ FUN_0201F69C: ; 0x0201F69C
add r0, r5, #0x0
ldr r1, [r5, #0x7c]
add r0, #0x24
- blx FUN_020B80B4
+ bl FUN_020B80B4
add r0, r4, #0x0
bl FUN_0201FBCC
add r5, #0x84
@@ -54681,7 +54681,7 @@ FUN_0201FB9C: ; 0x0201FB9C
add r5, r2, #0x0
bl FUN_0201FC90
add r7, r0, #0x0
- blx FUN_020BC13C
+ bl FUN_020BC13C
add r4, r0, #0x0
ldrh r0, [r4, #0xe]
add r0, r4, r0
@@ -54691,7 +54691,7 @@ FUN_0201FB9C: ; 0x0201FB9C
cmp r5, #0x0
beq _0201FBC6
add r0, r7, #0x0
- blx FUN_020BC0FC
+ bl FUN_020BC0FC
str r0, [r5, #0x0]
_0201FBC6:
add r0, r4, #0x0
@@ -54803,7 +54803,7 @@ FUN_0201FC70: ; 0x0201FC70
sub sp, #0xc
add r4, r0, #0x0
ldr r0, [r4, #0x78]
- blx FUN_020B772C
+ bl FUN_020B772C
add r4, #0x80
ldr r0, [r4, #0x0]
add r1, sp, #0x4
@@ -54907,7 +54907,7 @@ _0201FD0C:
ldr r0, [r4, r1]
add r1, r1, #0x4
add r1, r4, r1
- blx thunk_FUN_020afda0_2
+ bl thunk_FUN_020afda0_2
mov r0, #0x12
mov r1, #0x1
lsl r0, r0, #0x4
@@ -55078,13 +55078,13 @@ FUN_0201FE6C: ; 0x0201FE6C
mov r1, #0x0
lsl r2, r2, #0x2
str r1, [r4, #0x3c]
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
add r0, #0xb4
- blx FUN_020B1A24
+ bl FUN_020B1A24
add r0, r4, #0x0
add r0, #0xd8
- blx FUN_020B19DC
+ bl FUN_020B19DC
mov r0, #0x0
str r0, [r4, #0x30]
pop {r4, pc}
@@ -55151,7 +55151,7 @@ _0201FEA6:
add r1, r4, #0x0
add r1, #0x26
ldrb r1, [r1, #0x0]
- blx FUN_020B502C
+ bl FUN_020B502C
add r0, r4, #0x0
add r0, #0x27
ldrb r2, [r0, #0x0]
@@ -55163,7 +55163,7 @@ _0201FEA6:
mov r3, #0x2
and r1, r2
and r2, r3
- blx FUN_020B4F38
+ bl FUN_020B4F38
add r0, r4, #0x0
mov r2, #0x1
add r0, #0x34
@@ -55272,13 +55272,13 @@ _0201FFE4:
ldr r1, [r1, #0x0]
add r0, #0xb4
add r4, #0x40
- blx FUN_020B1A14
+ bl FUN_020B1A14
mov r1, #0x0
mvn r1, r1
cmp r0, r1
beq _0202000E
ldr r0, [r4, #0x5c]
- blx FUN_020B4358
+ bl FUN_020B4358
_0202000E:
add r0, r5, #0x0
add r0, #0xec
@@ -55488,11 +55488,11 @@ _0202014A:
lsl r1, r1, #0x10
ldr r0, [r4, #0x4]
lsr r1, r1, #0x10
- blx FUN_020AFC04
+ bl FUN_020AFC04
add r1, r0, #0x0
add r0, r4, #0x0
add r0, #0x8
- blx FUN_020B1EE4
+ bl FUN_020B1EE4
mov r0, #0x1
str r0, [r4, #0x10]
pop {r4, pc}
@@ -55501,11 +55501,11 @@ _02020168:
add r4, #0x40
ldr r0, [r4, #0x6c]
add r1, r3, #0x0
- blx FUN_020AFC04
+ bl FUN_020AFC04
add r1, r0, #0x0
add r0, r4, #0x0
add r0, #0x8
- blx FUN_020B242C
+ bl FUN_020B242C
mov r0, #0x1
str r0, [r4, #0x10]
pop {r4, pc}
@@ -55538,7 +55538,7 @@ _020201A8:
add r5, #0x40
add r0, r5, #0x0
add r0, #0x8
- blx FUN_020B0448
+ bl FUN_020B0448
mov r0, #0x1
str r0, [r5, #0x10]
add r0, r4, #0x0
@@ -55550,7 +55550,7 @@ _020201C2:
add r5, #0x40
add r0, r5, #0x0
add r0, #0x8
- blx FUN_020B0448
+ bl FUN_020B0448
mov r0, #0x1
str r0, [r5, #0x10]
add r0, r4, #0x0
@@ -55578,12 +55578,12 @@ FUN_020201E4: ; 0x020201E4
_020201F4:
add r0, #0x40
add r0, #0x8
- blx FUN_020B1EC4
+ bl FUN_020B1EC4
pop {r3, pc}
_020201FE:
add r0, #0x40
add r0, #0x8
- blx FUN_020B224C
+ bl FUN_020B224C
pop {r3, pc}
thumb_func_start FUN_02020208
@@ -55599,12 +55599,12 @@ FUN_02020208: ; 0x02020208
_02020218:
add r0, #0x40
add r0, #0x8
- blx FUN_020B1EA4
+ bl FUN_020B1EA4
pop {r3, pc}
_02020222:
add r0, #0x40
add r0, #0x8
- blx FUN_020B2194
+ bl FUN_020B2194
pop {r3, pc}
thumb_func_start FUN_0202022C
@@ -55878,16 +55878,16 @@ FUN_020203CC: ; 0x020203CC
lsl r0, r0, #0x6
add r1, r4, #0x0
lsl r2, r2, #0xa
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
mov r1, #0x1
add r0, r4, #0x0
lsl r1, r1, #0xa
- blx DC_FlushRange
+ bl DC_FlushRange
mov r2, #0x1
add r0, r4, #0x0
mov r1, #0x0
lsl r2, r2, #0xa
- blx GX_LoadOAM
+ bl GX_LoadOAM
add r0, r4, #0x0
bl FUN_02016A18
pop {r4, pc}
@@ -55904,12 +55904,12 @@ FUN_02020404: ; 0x02020404
lsl r0, r0, #0x6
add r1, r4, #0x0
lsl r2, r2, #0xa
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
mov r2, #0x1
add r0, r4, #0x0
mov r1, #0x0
lsl r2, r2, #0xa
- blx GXS_LoadOAM
+ bl GXS_LoadOAM
add r0, r4, #0x0
bl FUN_02016A18
pop {r4, pc}
@@ -56048,12 +56048,12 @@ FUN_0202050C: ; 0x0202050C
add r4, #0x40
ldr r0, [r4, #0x4]
mov r1, #0x0
- blx FUN_020AFC04
+ bl FUN_020AFC04
add r4, #0x8
add r1, r0, #0x0
ldr r2, [r5, #0x40]
add r0, r4, #0x0
- blx FUN_020B1F80
+ bl FUN_020B1F80
pop {r3-r5, pc}
.balign 4
@@ -56065,22 +56065,22 @@ FUN_0202052C: ; 0x0202052C
add r4, r6, #0x0
add r4, #0x40
add r5, r0, #0x0
- blx FUN_020B43A4
+ bl FUN_020B43A4
str r0, [r4, #0x5c]
ldr r0, [r4, #0x4]
mov r1, #0x0
ldr r5, [r5, #0x4]
- blx FUN_020AFC04
+ bl FUN_020AFC04
str r0, [sp, #0x18]
add r0, r6, #0x0
add r0, #0xb4
mov r1, #0x1
- blx FUN_020B1A14
+ bl FUN_020B1A14
add r7, r0, #0x0
add r0, r6, #0x0
add r0, #0xb4
mov r1, #0x2
- blx FUN_020B1A14
+ bl FUN_020B1A14
mov r1, #0x0
mvn r1, r1
str r1, [sp, #0x0]
@@ -56097,7 +56097,7 @@ FUN_0202052C: ; 0x0202052C
ldr r2, [r6, #0x40]
ldr r3, [r4, #0x5c]
add r0, #0x8
- blx FUN_020B1EFC
+ bl FUN_020B1EFC
add sp, #0x1c
pop {r4-r7, pc}
@@ -56111,10 +56111,10 @@ FUN_02020588: ; 0x02020588
ldr r0, [r4, #0x6c]
add r7, r1, #0x0
mov r1, #0x0
- blx FUN_020AFC04
+ bl FUN_020AFC04
str r0, [sp, #0xc]
ldr r0, [r4, #0x68]
- blx FUN_020B23D8
+ bl FUN_020B23D8
add r6, r0, #0x0
mov r1, #0x28
add r0, r7, #0x0
@@ -56137,11 +56137,11 @@ FUN_02020588: ; 0x02020588
ldr r1, [r4, #0x70]
ldr r2, [r4, #0x74]
add r0, #0x8
- blx FUN_020B20C8
+ bl FUN_020B20C8
add r4, #0x8
ldr r1, [sp, #0xc]
add r0, r4, #0x0
- blx FUN_020B242C
+ bl FUN_020B242C
add sp, #0x10
pop {r3-r7, pc}
.balign 4
@@ -56166,9 +56166,9 @@ _02020600:
_02020602:
cmp r4, #0x0
beq _02020612
- blx FUN_020B19C4
+ bl FUN_020B19C4
add r1, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
pop {r4, pc}
_02020612:
mov r0, #0x0
@@ -56194,19 +56194,19 @@ FUN_02020618: ; 0x02020618
ldr r0, [r5, r0]
add r1, #0xb4
add r2, #0xd8
- blx thunk_FUN_020b5040
+ bl thunk_FUN_020b5040
mov r0, #0x45
lsl r0, r0, #0x2
ldr r0, [r5, r0]
- blx FUN_020B326C
- blx FUN_020B2B58
+ bl FUN_020B326C
+ bl FUN_020B2B58
add r1, r4, #0x0
mov r0, #0x45
add r1, #0x26
lsl r0, r0, #0x2
ldrb r1, [r1, #0x0]
ldr r0, [r5, r0]
- blx FUN_020B502C
+ bl FUN_020B502C
add r0, r4, #0x0
add r0, #0x26
ldrb r0, [r0, #0x0]
@@ -56222,7 +56222,7 @@ FUN_02020618: ; 0x02020618
mov r3, #0x2
and r1, r2
and r2, r3
- blx FUN_020B4F38
+ bl FUN_020B4F38
b _0202068E
_02020680:
mov r0, #0x45
@@ -56230,12 +56230,12 @@ _02020680:
mov r1, #0x0
ldr r0, [r5, r0]
add r2, r1, #0x0
- blx FUN_020B4F38
+ bl FUN_020B4F38
_0202068E:
ldr r0, [sp, #0x0]
ldr r1, [sp, #0x4]
ldr r2, [sp, #0x8]
- blx FUN_020B2A08
+ bl FUN_020B2A08
add r0, r4, #0x0
add r0, #0x26
ldrb r0, [r0, #0x0]
@@ -56244,11 +56244,11 @@ _0202068E:
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x10]
ldr r2, [r4, #0x14]
- blx FUN_020B2A08
+ bl FUN_020B2A08
ldr r0, [r4, #0x18]
ldr r1, [r4, #0x1c]
ldr r2, [r4, #0x20]
- blx FUN_020B28B4
+ bl FUN_020B28B4
ldrh r0, [r4, #0x24]
ldr r2, _02020770 ; =0x020FFA38
asr r0, r0, #0x4
@@ -56258,14 +56258,14 @@ _0202068E:
lsl r1, r1, #0x1
ldrsh r0, [r2, r0]
ldrsh r1, [r2, r1]
- blx FUN_020B2794
+ bl FUN_020B2794
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x10]
ldr r2, [r4, #0x14]
neg r0, r0
neg r1, r1
neg r2, r2
- blx FUN_020B2A08
+ bl FUN_020B2A08
_020206DC:
add r0, r4, #0x0
add r0, #0x28
@@ -56328,16 +56328,16 @@ _0202074E:
add r4, #0x40
add r4, #0x8
add r0, r4, #0x0
- blx FUN_020B317C
+ bl FUN_020B317C
b _02020764
_0202075A:
add r4, #0x40
add r4, #0x8
add r0, r4, #0x0
- blx FUN_020B2D9C
+ bl FUN_020B2D9C
_02020764:
- blx FUN_020B2B08
- blx FUN_020B31F0
+ bl FUN_020B2B08
+ bl FUN_020B31F0
add sp, #0xc
pop {r3-r6, pc}
.balign 4
@@ -56895,9 +56895,9 @@ FUN_02020AFC: ; 0x02020AFC
strh r0, [r1, #0x0]
ldr r1, _02020B2C ; =FUN_02020B30
mov r0, #0x40
- blx OS_SetIrqFunction
+ bl OS_SetIrqFunction
mov r0, #0x40
- blx OS_EnableIrqMask
+ bl OS_EnableIrqMask
pop {r3, pc}
.balign 4
_02020B24: .word 0x021C59B0
@@ -56946,7 +56946,7 @@ _02020B7C: .word FUN_02020B30
FUN_02020B80: ; 0x02020B80
push {r4-r5, lr}
sub sp, #0xc
- blx OS_DisableInterrupts
+ bl OS_DisableInterrupts
ldr r1, _02020BE4 ; =0x0400010C
add r3, sp, #0x0
ldrh r1, [r1, #0x0]
@@ -56978,7 +56978,7 @@ FUN_02020B80: ; 0x02020B80
str r2, [sp, #0x4]
str r3, [sp, #0x8]
_02020BC4:
- blx OS_RestoreInterrupts
+ bl OS_RestoreInterrupts
ldr r2, [sp, #0x4]
ldr r1, [sp, #0x8]
lsr r0, r2, #0x10
@@ -57015,7 +57015,7 @@ FUN_02020BFC: ; 0x02020BFC
ldr r2, _02020C10 ; =0x000082EA
lsl r0, r0, #0x6
mov r3, #0x0
- blx _ll_udiv
+ bl _ll_udiv
pop {r3, pc}
.balign 4
_02020C10: .word 0x000082EA
@@ -57029,7 +57029,7 @@ FUN_02020C14: ; 0x02020C14
ldr r2, _02020C28 ; =0x01FF6210
lsl r0, r0, #0x6
mov r3, #0x0
- blx _ll_udiv
+ bl _ll_udiv
pop {r3, pc}
.balign 4
_02020C28: .word 0x01FF6210
@@ -57040,7 +57040,7 @@ ErrorHandling: ; 0x02020C2C
bl FUN_02031810
cmp r0, #0x0
beq _02020C42
- blx OS_GetProcMode
+ bl OS_GetProcMode
cmp r0, #0x12
beq _02020C42
bl FUN_0208A9B8
@@ -57881,7 +57881,7 @@ FUN_02021220: ; 0x02021220
push {r3, lr}
ldr r0, [r0, #0x0]
bl FUN_02020E0C
- blx FUN_020BC0FC
+ bl FUN_020BC0FC
pop {r3, pc}
.balign 4
@@ -57897,7 +57897,7 @@ FUN_02021230: ; 0x02021230
_02021240:
ldr r0, [r0, #0x10]
_02021242:
- blx FUN_020BC0FC
+ bl FUN_020BC0FC
pop {r3, pc}
thumb_func_start FUN_02021248
@@ -57908,13 +57908,13 @@ FUN_02021248: ; 0x02021248
str r1, [sp, #0x0]
str r2, [sp, #0x4]
str r3, [sp, #0x8]
- blx FUN_020B7E1C
+ bl FUN_020B7E1C
add r7, r0, #0x0
add r0, r5, #0x0
- blx FUN_020B7E10
+ bl FUN_020B7E10
add r6, r0, #0x0
add r0, r5, #0x0
- blx FUN_020B7CE4
+ bl FUN_020B7CE4
add r4, r0, #0x0
cmp r7, #0x0
beq _0202127E
@@ -57969,13 +57969,13 @@ FUN_020212B8: ; 0x020212B8
bl FUN_020212E4
ldr r1, [r4, #0x4]
add r0, r4, #0x0
- blx DC_FlushRange
+ bl DC_FlushRange
add r0, r4, #0x0
mov r1, #0x1
- blx FUN_020B7D28
+ bl FUN_020B7D28
add r0, r4, #0x0
mov r1, #0x1
- blx FUN_020B7C78
+ bl FUN_020B7C78
pop {r4, pc}
.balign 4
@@ -57984,10 +57984,10 @@ FUN_020212E4: ; 0x020212E4
push {r3-r5, lr}
add r5, r0, #0x0
add r4, r3, #0x0
- blx FUN_020B7DFC
+ bl FUN_020B7DFC
add r0, r5, #0x0
add r1, r4, #0x0
- blx FUN_020B7CDC
+ bl FUN_020B7CDC
pop {r3-r5, pc}
thumb_func_start FUN_020212F8
@@ -57997,9 +57997,9 @@ FUN_020212F8: ; 0x020212F8
add r4, r0, #0x0
add r1, sp, #0x4
add r2, sp, #0x0
- blx FUN_020B7CF0
+ bl FUN_020B7CF0
add r0, r4, #0x0
- blx FUN_020B7C58
+ bl FUN_020B7C58
add sp, #0x8
pop {r4, pc}
@@ -58016,7 +58016,7 @@ FUN_02021310: ; 0x02021310
add r1, r6, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- blx memcpy
+ bl memcpy
add r0, r4, #0x0
pop {r4-r6, pc}
.balign 4
@@ -58025,7 +58025,7 @@ FUN_02021310: ; 0x02021310
FUN_02021334: ; 0x02021334
push {r3-r5, lr}
add r5, r0, #0x0
- blx FUN_020BC0FC
+ bl FUN_020BC0FC
add r4, r0, #0x0
bne _02021344
bl ErrorHandling
@@ -58040,7 +58040,7 @@ FUN_0202134C: ; 0x0202134C
push {r3-r5, lr}
add r5, r0, #0x0
add r4, r1, #0x0
- blx FUN_020B33A0
+ bl FUN_020B33A0
add r5, #0x80
str r4, [r5, #0x0]
pop {r3-r5, pc}
@@ -58052,7 +58052,7 @@ FUN_0202135C: ; 0x0202135C
add r4, r1, #0x0
add r6, r2, #0x0
add r7, r3, #0x0
- blx FUN_020B3334
+ bl FUN_020B3334
add r2, r5, #0x0
ldmia r4!, {r0-r1}
stmia r2!, {r0-r1}
@@ -58068,7 +58068,7 @@ FUN_0202135C: ; 0x0202135C
cmp r0, #0x0
beq _0202138C
add r1, r5, #0x0
- blx FUN_020B3390
+ bl FUN_020B3390
_0202138C:
pop {r3-r7, pc}
.balign 4
@@ -58150,14 +58150,14 @@ _02021400:
ldr r2, [sp, #0x28]
ldr r3, [sp, #0x2c]
add r0, r4, #0x0
- blx _ll_mul
+ bl _ll_mul
add r7, r1, #0x0
str r0, [sp, #0x30]
ldr r1, [sp, #0x24]
ldr r2, [sp, #0x1c]
ldr r3, [sp, #0x20]
add r0, r4, #0x0
- blx _ll_mul
+ bl _ll_mul
add r2, r0, #0x0
add r3, r1, #0x0
mov r0, #0x2
@@ -58187,14 +58187,14 @@ _02021400:
str r0, [sp, #0x34]
ldr r0, [sp, #0x10]
ldr r1, [sp, #0x34]
- blx _ll_mul
+ bl _ll_mul
str r0, [sp, #0x38]
add r4, r1, #0x0
ldr r0, [sp, #0x10]
ldr r1, [sp, #0x34]
ldr r2, [sp, #0x1c]
ldr r3, [sp, #0x20]
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
ldr r3, [sp, #0x38]
lsl r2, r2, #0xa
@@ -58230,14 +58230,14 @@ _02021400:
ldr r0, [sp, #0xc]
ldr r2, [sp, #0x48]
ldr r3, [sp, #0x4c]
- blx _ll_mul
+ bl _ll_mul
str r0, [sp, #0x50]
add r5, r1, #0x0
ldr r0, [sp, #0xc]
ldr r1, [sp, #0x44]
ldr r2, [sp, #0x3c]
ldr r3, [sp, #0x40]
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
ldr r3, [sp, #0x50]
lsl r2, r2, #0xa
@@ -58265,14 +58265,14 @@ _02021400:
ldr r1, [sp, #0x54]
ldr r2, [sp, #0x48]
ldr r3, [sp, #0x4c]
- blx _ll_mul
+ bl _ll_mul
str r0, [sp, #0x58]
str r1, [sp, #0x4]
ldr r0, [sp, #0x8]
ldr r1, [sp, #0x54]
ldr r2, [sp, #0x3c]
ldr r3, [sp, #0x40]
- blx _ll_mul
+ bl _ll_mul
mov r12, r0
add r2, r1, #0x0
mov r0, #0x2
@@ -59038,7 +59038,7 @@ _02021AA2:
add r0, #0x8
add r1, #0x8
lsl r2, r2, #0x1
- blx memcpy
+ bl memcpy
ldrh r0, [r4, #0x2]
strh r0, [r5, #0x2]
pop {r3-r5, pc}
@@ -59150,7 +59150,7 @@ _02021B74:
_02021B80:
add r0, r6, #0x0
add r1, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
lsl r0, r0, #0x10
lsr r1, r0, #0x10
add r0, r4, #0x0
@@ -59220,7 +59220,7 @@ _02021BEC:
_02021BFA:
add r0, r4, #0x0
mov r1, #0xa
- blx _u32_div_f
+ bl _u32_div_f
add r4, r0, #0x0
bne _02021B80
_02021C06:
@@ -59301,7 +59301,7 @@ _02021C98:
add r1, r2, #0x0
add r2, r7, #0x0
add r3, r5, #0x0
- blx _ll_mul
+ bl _ll_mul
add r2, r1, #0x0
ldr r1, [sp, #0x8]
add r0, r1, r0
@@ -59313,7 +59313,7 @@ _02021C98:
add r1, r5, #0x0
mov r2, #0xa
mov r3, #0x0
- blx _ll_mul
+ bl _ll_mul
add r7, r0, #0x0
ldr r0, [sp, #0x4]
add r5, r1, #0x0
@@ -59589,7 +59589,7 @@ _02021EA8:
add r0, #0x8
add r1, r7, #0x0
add r2, r6, #0x0
- blx memcpy
+ bl memcpy
mov r2, #0x0
cmp r4, #0x0
bls _02021ED4
@@ -59643,7 +59643,7 @@ _02021F0C:
add r0, r6, #0x0
add r1, r5, #0x0
lsl r2, r2, #0x1
- blx memcpy
+ bl memcpy
pop {r4-r6, pc}
_02021F22:
bl ErrorHandling
@@ -59710,7 +59710,7 @@ _02021F7A:
add r2, r2, #0x1
add r1, #0x8
lsl r2, r2, #0x1
- blx memcpy
+ bl memcpy
ldrh r1, [r5, #0x2]
ldrh r0, [r4, #0x2]
add r0, r1, r0
@@ -60242,15 +60242,15 @@ FUN_02022318: ; 0x02022318
bl FUN_02016998
add r4, r0, #0x0
str r6, [r4, #0x0]
- blx FUN_020BB7F4
- blx G3X_InitMtxStack
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
mov r1, #0x2
ldr r0, _020223B8 ; =0x04000540
cmp r7, #0x0
str r1, [r0, #0x0]
bne _02022364
lsl r0, r5, #0x7
- blx FUN_020AFA28
+ bl FUN_020AFA28
add r6, r0, #0x0
ldr r0, [r4, #0x0]
add r1, r6, #0x0
@@ -60262,20 +60262,20 @@ FUN_02022318: ; 0x02022318
lsl r0, r5, #0x11
mov r1, #0x0
add r3, r6, #0x0
- blx FUN_020AF9C4
+ bl FUN_020AF9C4
b _0202236E
_02022364:
lsl r0, r5, #0x10
lsr r0, r0, #0x10
mov r1, #0x1
- blx FUN_020AEB70
+ bl FUN_020AEB70
_0202236E:
ldr r0, [sp, #0x4]
cmp r0, #0x0
bne _02022398
ldr r0, [sp, #0x20]
lsl r0, r0, #0x8
- blx FUN_020AFBFC
+ bl FUN_020AFBFC
add r5, r0, #0x0
ldr r0, [r4, #0x0]
add r1, r5, #0x0
@@ -60286,14 +60286,14 @@ _0202236E:
lsl r0, r0, #0xd
add r2, r5, #0x0
mov r3, #0x1
- blx FUN_020AFBA8
+ bl FUN_020AFBA8
b _020223A4
_02022398:
ldr r0, [sp, #0x20]
mov r1, #0x1
lsl r0, r0, #0x1d
lsr r0, r0, #0x10
- blx FUN_020AEB70
+ bl FUN_020AEB70
_020223A4:
ldr r0, [sp, #0x24]
cmp r0, #0x0
@@ -60359,13 +60359,13 @@ FUN_020223D4: ; 0x020223D4
add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
- blx G3X_SetFog
+ bl G3X_SetFog
mov r0, #0x0
ldr r2, _02022444 ; =0x00007FFF
add r1, r0, #0x0
mov r3, #0x3f
str r0, [sp, #0x0]
- blx G3X_SetClearColor
+ bl G3X_SetClearColor
ldr r1, _02022448 ; =0xBFFF0000
ldr r0, _0202244C ; =0x04000580
str r1, [r0, #0x0]
@@ -60381,34 +60381,34 @@ _0202244C: .word 0x04000580
thumb_func_start FUN_02022450
FUN_02022450: ; 0x02022450
push {r3, lr}
- blx FS_IsAvailable
+ bl FS_IsAvailable
cmp r0, #0x0
bne _02022460
- blx OS_Terminate
+ bl OS_Terminate
pop {r3, pc}
_02022460:
ldr r0, _020224BC ; =0x027FF00C
ldr r0, [r0, #0x0]
cmp r0, #0x0
bne _0202248A
- blx CARD_Init
+ bl CARD_Init
mov r2, #0x16
ldr r0, _020224C0 ; =0x027FFE00
ldr r1, _020224C4 ; =0x027FF000
lsl r2, r2, #0x4
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r2, #0x16
ldr r0, _020224C0 ; =0x027FFE00
ldr r1, _020224C8 ; =0x027FFA80
lsl r2, r2, #0x4
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r1, _020224CC ; =0x4A414441
ldr r0, _020224BC ; =0x027FF00C
str r1, [r0, #0x0]
_0202248A:
ldr r0, _020224D0 ; =0x020EE6D4
mov r1, #0x3
- blx FS_FindArchive
+ bl FS_FindArchive
ldr r1, _020224C4 ; =0x027FF000
ldr r2, [r1, #0x48]
str r2, [r0, #0x2c]
@@ -60427,7 +60427,7 @@ _0202248A:
cmp r1, r0
beq _020224B8
_020224B4:
- blx OS_Terminate
+ bl OS_Terminate
_020224B8:
pop {r3, pc}
nop
@@ -60445,17 +60445,17 @@ FUN_020224D8: ; 0x020224D8
sub sp, #0x48
add r4, r0, #0x0
add r0, sp, #0x0
- blx FS_InitFile
+ bl FS_InitFile
add r0, sp, #0x0
add r1, r4, #0x0
- blx FS_OpenFile
+ bl FS_OpenFile
cmp r0, #0x0
beq _020224FC
ldr r1, [sp, #0x24]
ldr r0, _02022500 ; =0x027FFC2C
str r1, [r0, #0x0]
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
_020224FC:
add sp, #0x48
pop {r4, pc}
@@ -60521,7 +60521,7 @@ FUN_0202254C: ; 0x0202254C
ldr r2, _020225E0 ; =0x000204A8
mov r0, #0x0
add r1, r4, #0x0
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r0, _020225E4 ; =0x021C59C8
str r4, [r0, #0x0]
bl FUN_02023570
@@ -60534,7 +60534,7 @@ FUN_0202254C: ; 0x0202254C
add r0, r4, #0x0
ldr r1, _020225E8 ; =0x00001021
add r0, #0x14
- blx MATHi_CRC16InitTable
+ bl MATHi_CRC16InitTable
ldr r0, _020225EC ; =0x00020224
add r0, r4, r0
bl FUN_020230E4
@@ -60547,7 +60547,7 @@ FUN_0202254C: ; 0x0202254C
mov r0, #0x0
add r1, r4, r1
mov r2, #0x8
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
bl FUN_02022AD8
str r0, [r4, #0x10]
@@ -60686,7 +60686,7 @@ _0202267A:
mvn r0, r0
add r1, r6, #0x0
lsl r2, r2, #0xc
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r4, #0x0
mov r7, #0x1
add r5, r4, #0x0
@@ -61984,18 +61984,18 @@ _02023006:
add r0, r0, #0x4
cmp r3, #0x2
blt _02023006
- blx CARD_TryWaitBackupAsync
+ bl CARD_TryWaitBackupAsync
cmp r0, #0x0
bne _02023034
- blx CARD_CancelBackupAsync
+ bl CARD_CancelBackupAsync
ldr r0, [r4, #0x10]
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- blx CARD_UnlockBackup
+ bl CARD_UnlockBackup
ldr r0, [r4, #0x10]
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- blx OS_ReleaseLockID
+ bl OS_ReleaseLockID
_02023034:
mov r0, #0x1
bl FUN_02016454
@@ -62042,7 +62042,7 @@ FUN_02023074: ; 0x02023074
add r0, sp, #0x0
mov r1, #0xff
mov r2, #0x14
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
add r1, r5, #0x0
bl FUN_020228A4
@@ -62243,7 +62243,7 @@ FUN_020231F4: ; 0x020231F4
add r1, r6, #0x0
lsl r2, r2, #0x10
ldr r4, _02023240 ; =0x020EE700
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r0, _02023244 ; =0x020EE6DC
mov r7, #0x0
ldr r0, [r0, #0x0]
@@ -62257,7 +62257,7 @@ _02023216:
ldr r1, [sp, #0x4]
mov r0, #0x0
add r1, r6, r1
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r0, [sp, #0x4]
ldr r1, [r4, #0xc]
add r0, r6, r0
@@ -62290,7 +62290,7 @@ FUN_02023248: ; 0x02023248
add r3, #0xe
strh r2, [r4, #0xc]
add r2, r3, #0x0
- blx MATH_CalcCRC16CCITT
+ bl MATH_CalcCRC16CCITT
strh r0, [r4, #0xe]
pop {r3-r5, pc}
nop
@@ -62323,7 +62323,7 @@ _02023298:
add r3, #0xe
add r0, #0x14
add r2, r3, #0x0
- blx MATH_CalcCRC16CCITT
+ bl MATH_CalcCRC16CCITT
ldrh r1, [r4, #0xe]
cmp r1, r0
bne _020232AC
@@ -62670,7 +62670,7 @@ _0202356C: .word 0x000204A0
thumb_func_start FUN_02023570
FUN_02023570: ; 0x02023570
push {r3-r5, lr}
- blx OS_GetLockID
+ bl OS_GetLockID
add r4, r0, #0x0
mov r0, #0x2
mvn r0, r0
@@ -62680,16 +62680,16 @@ FUN_02023570: ; 0x02023570
_02023584:
lsl r0, r4, #0x10
lsr r0, r0, #0x10
- blx CARD_LockBackup
+ bl CARD_LockBackup
ldr r0, _020235C8 ; =0x00001302
- blx CARD_IdentifyBackup
+ bl CARD_IdentifyBackup
cmp r0, #0x0
beq _0202359A
ldr r5, _020235C8 ; =0x00001302
b _020235AA
_0202359A:
ldr r0, _020235CC ; =0x00001202
- blx CARD_IdentifyBackup
+ bl CARD_IdentifyBackup
cmp r0, #0x0
beq _020235A8
ldr r5, _020235CC ; =0x00001202
@@ -62699,10 +62699,10 @@ _020235A8:
_020235AA:
lsl r0, r4, #0x10
lsr r0, r0, #0x10
- blx CARD_UnlockBackup
+ bl CARD_UnlockBackup
lsl r0, r4, #0x10
lsr r0, r0, #0x10
- blx OS_ReleaseLockID
+ bl OS_ReleaseLockID
cmp r5, #0x0
beq _020235C2
mov r0, #0x1
@@ -62737,7 +62737,7 @@ FUN_020235EC: ; 0x020235EC
add r5, r0, #0x0
add r6, r1, #0x0
add r7, r2, #0x0
- blx OS_GetLockID
+ bl OS_GetLockID
add r4, r0, #0x0
mov r0, #0x2
mvn r0, r0
@@ -62747,7 +62747,7 @@ FUN_020235EC: ; 0x020235EC
_02023608:
lsl r0, r4, #0x10
lsr r0, r0, #0x10
- blx CARD_LockBackup
+ bl CARD_LockBackup
mov r3, #0x0
str r3, [sp, #0x0]
mov r1, #0x1
@@ -62759,15 +62759,15 @@ _02023608:
add r1, r6, #0x0
add r2, r7, #0x0
str r3, [sp, #0x10]
- blx CARDi_RequestStreamCommand
- blx CARD_WaitBackupAsync
+ bl CARDi_RequestStreamCommand
+ bl CARD_WaitBackupAsync
add r5, r0, #0x0
lsl r0, r4, #0x10
lsr r0, r0, #0x10
- blx CARD_UnlockBackup
+ bl CARD_UnlockBackup
lsl r0, r4, #0x10
lsr r0, r0, #0x10
- blx OS_ReleaseLockID
+ bl OS_ReleaseLockID
cmp r5, #0x0
bne _02023652
ldr r0, _02023658 ; =0x021C59C8
@@ -62798,7 +62798,7 @@ FUN_02023668: ; 0x02023668
add r5, r0, #0x0
add r6, r1, #0x0
add r7, r2, #0x0
- blx OS_GetLockID
+ bl OS_GetLockID
add r4, r0, #0x0
mov r0, #0x2
mvn r0, r0
@@ -62808,7 +62808,7 @@ FUN_02023668: ; 0x02023668
_02023684:
lsl r0, r4, #0x10
lsr r0, r0, #0x10
- blx CARD_LockBackup
+ bl CARD_LockBackup
mov r0, #0x0
str r0, [sp, #0x0]
str r0, [sp, #0x4]
@@ -62820,7 +62820,7 @@ _02023684:
mov r2, #0x4
add r3, r0, #0x0
str r0, [sp, #0x10]
- blx CARDi_RequestStreamCommand
+ bl CARDi_RequestStreamCommand
cmp r0, #0x0
bne _020236B2
add r0, r4, #0x0
@@ -62843,7 +62843,7 @@ _020236B2:
add r0, r6, #0x0
add r1, r5, #0x0
add r2, r7, #0x0
- blx CARDi_RequestStreamCommand
+ bl CARDi_RequestStreamCommand
add r0, r4, #0x0
add sp, #0x18
pop {r3-r7, pc}
@@ -62862,11 +62862,11 @@ FUN_020236E4: ; 0x020236E4
bne _02023738
lsl r0, r5, #0x10
lsr r0, r0, #0x10
- blx CARD_UnlockBackup
+ bl CARD_UnlockBackup
lsl r0, r5, #0x10
lsr r0, r0, #0x10
- blx OS_ReleaseLockID
- blx CARD_GetResultCode
+ bl OS_ReleaseLockID
+ bl CARD_GetResultCode
cmp r0, #0x0
beq _02023714
cmp r0, #0x4
@@ -62907,10 +62907,10 @@ FUN_02023740: ; 0x02023740
lsl r0, r5, #0x10
lsr r0, r0, #0x10
add r4, r1, #0x0
- blx CARD_UnlockBackup
+ bl CARD_UnlockBackup
lsl r0, r5, #0x10
lsr r0, r0, #0x10
- blx OS_ReleaseLockID
+ bl OS_ReleaseLockID
ldr r0, _02023768 ; =0x021C59C8
ldr r0, [r0, #0x0]
bl FUN_02016A18
@@ -62933,7 +62933,7 @@ FUN_02023770: ; 0x02023770
mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x5c
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r4, #0x10
add r0, r4, #0x0
bl FUN_02023840
@@ -62960,14 +62960,14 @@ FUN_020237A0: ; 0x020237A0
push {r4, lr}
sub sp, #0x50
add r4, r0, #0x0
- blx OS_GetOwnerRtcOffset
+ bl OS_GetOwnerRtcOffset
str r0, [r4, #0x0]
add r0, r4, #0x0
add r0, #0x8
str r1, [r4, #0x4]
- blx OS_GetMacAddress
+ bl OS_GetMacAddress
add r0, sp, #0x0
- blx OS_GetOwnerInfo
+ bl OS_GetOwnerInfo
add r0, sp, #0x0
ldrb r1, [r0, #0x2]
strb r1, [r4, #0xe]
@@ -62983,7 +62983,7 @@ FUN_020237CC: ; 0x020237CC
sub sp, #0x8
add r4, r0, #0x0
add r0, sp, #0x0
- blx OS_GetMacAddress
+ bl OS_GetMacAddress
mov r2, #0x0
add r3, sp, #0x0
_020237DC:
@@ -63009,7 +63009,7 @@ _020237EC:
FUN_020237FC: ; 0x020237FC
push {r4, lr}
add r4, r0, #0x0
- blx OS_GetOwnerRtcOffset
+ bl OS_GetOwnerRtcOffset
ldr r3, [r4, #0x0]
ldr r2, [r4, #0x4]
eor r0, r3
@@ -63072,12 +63072,12 @@ FUN_02023840: ; 0x02023840
add r1, #0x14
bl FUN_0201265C
add r0, r4, #0x4
- blx RTC_ConvertDateToDay
+ bl RTC_ConvertDateToDay
add r1, r4, #0x0
str r0, [r4, #0x20]
add r0, r4, #0x4
add r1, #0x14
- blx RTC_ConvertDateTimeToSecond
+ bl RTC_ConvertDateTimeToSecond
str r0, [r4, #0x24]
str r1, [r4, #0x28]
mov r0, #0x0
@@ -63132,7 +63132,7 @@ FUN_020238A4: ; 0x020238A4
add r1, #0x14
bl FUN_0201265C
add r0, r4, #0x4
- blx RTC_ConvertDateToDay
+ bl RTC_ConvertDateToDay
str r0, [r4, #0x20]
pop {r4, pc}
.balign 4
@@ -63149,7 +63149,7 @@ FUN_020238C8: ; 0x020238C8
mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x2c
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
bl FUN_02024F50
add r0, r4, #0x4
@@ -63224,7 +63224,7 @@ FUN_02023948: ; 0x02023948
mov r1, #0x0
mov r2, #0x20
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x2
strb r0, [r4, #0x19]
pop {r4, pc}
@@ -63738,7 +63738,7 @@ FUN_02023C48: ; 0x02023C48
add r4, r0, #0x0
mov r1, #0x0
lsl r2, r2, #0x4
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
bl FUN_020669A0
add r0, r4, #0x0
@@ -64792,7 +64792,7 @@ FUN_02024378: ; 0x02024378
mov r1, #0x0
lsl r2, r2, #0x2
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, _020243C0 ; =0xBEEFCAFE
mov r1, #0x0
str r0, [r4, #0x0]
@@ -64802,7 +64802,7 @@ FUN_02024378: ; 0x02024378
sub r0, #0x2d
add r0, r4, r0
mov r1, #0xff
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r1, #0xff
add r0, r1, #0x0
add r0, #0x9
@@ -66285,7 +66285,7 @@ FUN_02024E6C: ; 0x02024E6C
ldr r2, _02024EA4 ; =0x0000074C
mov r0, #0x0
add r1, r4, #0x0
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
bl FUN_020250A4
mov r0, #0x7
@@ -66296,12 +66296,12 @@ FUN_02024E6C: ; 0x02024E6C
ldr r0, _02024EAC ; =0x0000FFFF
add r1, r4, r1
mov r2, #0x8
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
ldr r1, _02024EB0 ; =0x00000734
ldr r0, _02024EAC ; =0x0000FFFF
add r1, r4, r1
mov r2, #0xb
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
pop {r4, pc}
.balign 4
_02024EA4: .word 0x0000074C
@@ -66410,7 +66410,7 @@ FUN_02024F50: ; 0x02024F50
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x2
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldrh r1, [r4, #0x0]
mov r0, #0xf
bic r1, r0
@@ -66625,7 +66625,7 @@ FUN_020250A4: ; 0x020250A4
mov r1, #0x0
lsl r2, r2, #0x8
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r1, #0x0
add r0, r1, #0x0
_020250B6:
@@ -67062,12 +67062,12 @@ FUN_02025374: ; 0x02025374
mov r1, #0x3c
str r0, [sp, #0x0]
add r0, r7, r0
- blx _s32_div_f
+ bl _s32_div_f
add r4, r0, #0x0
ldr r0, [sp, #0x0]
mov r1, #0x3c
add r0, r7, r0
- blx _s32_div_f
+ bl _s32_div_f
strh r1, [r5, #0x4]
cmp r4, #0x0
beq _020253DE
@@ -67085,7 +67085,7 @@ _020253BA:
sub r0, r6, #0x1
add r0, r1, r0
add r1, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
sub r4, r4, r0
mov r0, #0x0
strb r0, [r5, #0xa]
@@ -67248,7 +67248,7 @@ _020254D6:
add r0, r5, #0x0
add r1, r7, #0x0
mov r2, #0x88
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
strh r6, [r5, #0x0]
add r4, r4, #0x1
add r5, #0x88
@@ -67414,7 +67414,7 @@ _020255F8:
ldr r0, [sp, #0x0]
ldr r1, [sp, #0x10]
lsl r2, r2, #0x6
- blx memcpy
+ bl memcpy
ldr r0, [sp, #0x10]
bl FUN_02016A18
add sp, #0x2c
@@ -67936,7 +67936,7 @@ FUN_02025964: ; 0x02025964
mov r1, #0x0
mov r2, #0x3c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
pop {r4, pc}
.balign 4
@@ -67972,7 +67972,7 @@ FUN_0202597C: ; 0x0202597C
ldr r2, _020259DC ; =0x000009B4
add r0, r4, #0x0
add r1, r7, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
add r0, #0x94
mov r1, #0x9b
@@ -68380,7 +68380,7 @@ _02025C72:
lsl r1, r1, #0x4
add r1, r2, r1
mov r2, #0x10
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r6, #0x0
bl FUN_020239BC
ldr r1, [sp, #0x0]
@@ -68620,7 +68620,7 @@ FUN_02025E20: ; 0x02025E20
add r0, r5, r0
add r1, sp, #0xc
mov r2, #0xc8
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r2, [sp, #0x8]
add r1, sp, #0xc
add r0, r4, #0x0
@@ -68897,7 +68897,7 @@ FUN_02025FFC: ; 0x02025FFC
add r1, sp, #0x8
mov r2, #0x28
mov r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r2, [sp, #0x4]
add r1, sp, #0x8
add r0, r4, #0x0
@@ -69039,12 +69039,12 @@ FUN_020260EC: ; 0x020260EC
add r1, sp, #0x34
mov r2, #0x28
mov r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _02026168 ; =0x00000978
add r1, sp, #0xc
add r0, r7, r0
mov r2, #0x28
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r3, [sp, #0x0]
add r1, sp, #0x34
add r3, r1, r3
@@ -69182,7 +69182,7 @@ FUN_020261EC: ; 0x020261EC
add r1, sp, #0x8
mov r2, #0x28
mov r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r2, [sp, #0x4]
add r1, sp, #0x8
add r0, r4, #0x0
@@ -69304,7 +69304,7 @@ FUN_020262BC: ; 0x020262BC
add r1, sp, #0x8
mov r2, #0x28
mov r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r2, [sp, #0x4]
add r1, sp, #0x8
add r0, r4, #0x0
@@ -69460,7 +69460,7 @@ _020263D6:
add r0, r4, r0
add r0, r2, r0
mov r2, #0x3
- blx MI_CpuFill8
+ bl MI_CpuFill8
pop {r3-r5, pc}
.balign 4
_020263F0: .word 0x0000010F
@@ -69737,7 +69737,7 @@ _020265C6:
add r0, r4, r0
add r0, r1, r0
mov r1, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
pop {r3-r5, pc}
nop
_020265DC: .word 0x0000020F
@@ -69910,12 +69910,12 @@ FUN_020266E0: ; 0x020266E0
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x2d
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
add r0, #0x2d
mov r1, #0x0
mov r2, #0x20
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
mov r1, #0x0
add r0, #0x8c
@@ -71169,7 +71169,7 @@ _02026F6A:
add r0, r5, #0x0
mov r1, #0x0
mov r2, #0x74
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
str r6, [r5, #0x0]
add r4, r4, #0x1
add r5, #0x74
@@ -71183,7 +71183,7 @@ _02026F86:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x98
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r1, _02026FC8 ; =0x00001234
ldr r0, _02026FCC ; =0x000004FC
add r6, r6, #0x1
@@ -71196,7 +71196,7 @@ _02026F86:
mov r1, #0x0
add r0, r7, r0
mov r2, #0x40
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r5, _02026FD4 ; =0x0000081C
mov r4, #0x0
mov r6, #0x12
@@ -71241,7 +71241,7 @@ FUN_02026FE8: ; 0x02026FE8
mov r1, #0x0
mov r2, #0x98
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, _02027004 ; =0x00001234
str r0, [r4, #0x0]
add r0, r4, #0x0
@@ -71708,7 +71708,7 @@ _02027330:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x74
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, _02027340 ; =0x00001234
str r0, [r4, #0x0]
pop {r4, pc}
@@ -71938,7 +71938,7 @@ _020274DA:
add r0, r5, #0x0
add r1, r4, #0x0
mov r2, #0x74
- blx memcpy
+ bl memcpy
pop {r3-r5, pc}
nop
_020274E8: .word 0x00001234
@@ -72316,7 +72316,7 @@ _02027760:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x98
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, _02027770 ; =0x00001234
str r0, [r4, #0x0]
pop {r4, pc}
@@ -72540,7 +72540,7 @@ _020278FE:
add r0, r5, #0x0
add r1, r4, #0x0
mov r2, #0x98
- blx memcpy
+ bl memcpy
pop {r3-r5, pc}
nop
_0202790C: .word 0x00001234
@@ -73145,11 +73145,11 @@ FUN_02027D0C: ; 0x02027D0C
bne _02027D6A
ldr r1, _02027D78 ; =0xEDB88320
add r0, sp, #0x4
- blx MATHi_CRC32InitTableRev
+ bl MATHi_CRC32InitTableRev
add r0, sp, #0x4
add r1, r4, #0x0
mov r2, #0x74
- blx MATH_CalcCRC32
+ bl MATH_CalcCRC32
add r6, r0, #0x0
mov r5, #0x0
_02027D3C:
@@ -73159,11 +73159,11 @@ _02027D3C:
add r4, r0, #0x0
ldr r1, _02027D78 ; =0xEDB88320
add r0, sp, #0x4
- blx MATHi_CRC32InitTableRev
+ bl MATHi_CRC32InitTableRev
add r0, sp, #0x4
add r1, r4, #0x0
mov r2, #0x74
- blx MATH_CalcCRC32
+ bl MATH_CalcCRC32
cmp r0, r6
bne _02027D62
mov r0, #0x0
@@ -73398,7 +73398,7 @@ FUN_02027ED0: ; 0x02027ED0
_02027EDC:
bl FUN_0201B9EC
add r1, r7, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x18
lsr r0, r0, #0x18
add r1, r5, r0
@@ -73548,7 +73548,7 @@ FUN_02027FDC: ; 0x02027FDC
add r4, r0, #0x0
ldrb r0, [r4, #0x0]
mov r1, #0x5
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #0x5
@@ -73863,7 +73863,7 @@ FUN_020281E8: ; 0x020281E8
mov r0, #0x0
add r1, r7, #0x0
lsl r2, r2, #0x6
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r0, #0x1d
lsl r0, r0, #0x4
add r1, r0, #0x0
@@ -74192,7 +74192,7 @@ _0202843A:
add r5, #0x40
mul r0, r4
add r0, r5, r0
- blx FUN_0209700C
+ bl FUN_0209700C
pop {r3-r5, pc}
thumb_func_start FUN_02028448
@@ -74255,7 +74255,7 @@ _020284A2:
mov r2, #0x30
add r0, r0, r1
add r1, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0xc
add r1, r7, #0x0
mul r1, r0
@@ -74263,7 +74263,7 @@ _020284A2:
mov r2, #0xc
add r0, r0, r1
add r1, r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r5, r5, #0x1
add r6, #0x30
add r4, #0xc
@@ -74279,7 +74279,7 @@ _020284D2:
add r1, r2, r1
mov r0, #0x0
mov r2, #0x30
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r2, [sp, #0x0]
mov r1, #0x5d
add r2, #0x40
@@ -74287,7 +74287,7 @@ _020284D2:
add r1, r2, r1
mov r0, #0x0
mov r2, #0xc
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r2, #0x7a
lsl r2, r2, #0x4
add r1, r2, #0x0
@@ -74322,7 +74322,7 @@ FUN_02028518: ; 0x02028518
str r1, [sp, #0x0]
add r0, r4, r5
add r1, r4, r3
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, [sp, #0x4]
add r6, r7, #0x0
mov r3, #0xc
@@ -74336,16 +74336,16 @@ FUN_02028518: ; 0x02028518
mul r2, r3
add r1, r6, r2
add r2, r3, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x0
add r1, r4, r5
mov r2, #0x30
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r1, [sp, #0x8]
mov r0, #0x0
add r1, r6, r1
mov r2, #0xc
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r0, #0x1d
ldr r1, _02028588 ; =0x0000FFFF
add r2, r7, r5
@@ -74531,7 +74531,7 @@ _020286BC:
mov r0, #0x0
add r1, r6, r4
mov r2, #0x30
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r0, #0x1d
ldr r1, _020286E8 ; =0x0000FFFF
add r2, r5, r4
@@ -74592,7 +74592,7 @@ FUN_02028724: ; 0x02028724
mov r0, #0x0
add r1, r4, #0x0
lsl r2, r2, #0x2
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r0, _0202874C ; =0x0000FFFF
mov r1, #0x0
add r2, r4, #0x0
@@ -75445,12 +75445,12 @@ _02028CC0:
add r0, #0x1c
add r1, #0x46
mov r2, #0x2a
- blx memcpy
+ bl memcpy
add r4, #0x46
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x2a
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r4, pc}
.balign 4
@@ -76175,7 +76175,7 @@ FUN_0202918C: ; 0x0202918C
ldr r0, [sp, #0x0]
bl FUN_02029EC0
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x18
lsr r0, r0, #0x18
beq _020291DA
@@ -76244,7 +76244,7 @@ FUN_0202920C: ; 0x0202920C
ldr r0, [sp, #0x0]
bl FUN_02029EC0
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #0x1
@@ -76317,7 +76317,7 @@ FUN_020292BC: ; 0x020292BC
mov r1, #0x0
mov r2, #0x3a
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r4, pc}
.balign 4
@@ -76866,7 +76866,7 @@ _020296B4:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x3a
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldrb r0, [r6, #0x1c]
cmp r0, #0x10
bhi _02029722
@@ -77396,7 +77396,7 @@ FUN_02029A8C: ; 0x02029A8C
add r4, r0, #0x0
mov r1, #0x0
lsl r2, r2, #0x4
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
bl FUN_02029ACC
add r5, r0, #0x0
@@ -77682,7 +77682,7 @@ FUN_02029C60: ; 0x02029C60
add r2, r0, #0x0
add r0, r4, #0x0
mov r1, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
pop {r4, pc}
thumb_func_start FUN_02029C74
@@ -78013,21 +78013,21 @@ _02029E6C:
bls _02029EAE
add r0, r7, #0x0
mov r1, #0x3c
- blx _u32_div_f
+ bl _u32_div_f
add r4, r4, r0
add r0, r7, #0x0
mov r1, #0x3c
- blx _u32_div_f
+ bl _u32_div_f
add r7, r1, #0x0
cmp r4, #0x3b
bls _02029EAE
add r0, r4, #0x0
mov r1, #0x3c
- blx _u32_div_f
+ bl _u32_div_f
add r6, r6, r0
add r0, r4, #0x0
mov r1, #0x3c
- blx _u32_div_f
+ bl _u32_div_f
ldr r0, _02029EB8 ; =0x000003E7
add r4, r1, #0x0
cmp r6, r0
@@ -78069,7 +78069,7 @@ FUN_02029ECC: ; 0x02029ECC
mov r0, #0x0
add r1, r4, #0x0
lsl r2, r2, #0x2
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r0, #0x0
str r0, [r4, #0x0]
pop {r4, pc}
@@ -78527,7 +78527,7 @@ FUN_0202A1F0: ; 0x0202A1F0
mov r1, #0x0
lsl r2, r2, #0x2
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x1
strb r0, [r4, #0x3]
pop {r4, pc}
@@ -78607,14 +78607,14 @@ _0202A280:
add r1, r2, #0x0
add r0, #0x8
mov r2, #0x4
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x0
pop {r3, pc}
_0202A28E:
add r1, r2, #0x0
add r0, #0x2c
mov r2, #0x10
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x0
pop {r3, pc}
_0202A29C:
@@ -78626,7 +78626,7 @@ _0202A2A4:
add r1, r2, #0x0
add r0, #0xc
mov r2, #0x1c
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x0
pop {r3, pc}
_0202A2B2:
@@ -78697,14 +78697,14 @@ _0202A318:
add r0, r2, #0x0
add r1, r3, #0x0
mov r2, #0x4
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r4, pc}
_0202A326:
add r3, #0x2c
add r0, r2, #0x0
add r1, r3, #0x0
mov r2, #0x10
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r4, pc}
_0202A334:
ldrb r4, [r3, #0x0]
@@ -78721,7 +78721,7 @@ _0202A346:
add r0, r2, #0x0
add r1, r3, #0x0
mov r2, #0x1c
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r4, pc}
_0202A354:
ldr r0, [r2, #0x0]
@@ -78917,14 +78917,14 @@ FUN_0202A474: ; 0x0202A474
add r0, r2, #0x0
add r1, r3, #0x0
mov r2, #0xa8
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r3, pc}
_0202A48A:
add r3, #0x18
add r0, r2, #0x0
add r1, r3, #0x0
mov r2, #0xa8
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r3, pc}
thumb_func_start FUN_0202A498
@@ -78935,13 +78935,13 @@ FUN_0202A498: ; 0x0202A498
add r1, r2, #0x0
add r0, #0xc0
mov r2, #0xa8
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r3, pc}
_0202A4AA:
add r1, r2, #0x0
add r0, #0x18
mov r2, #0xa8
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r3, pc}
.balign 4
@@ -78990,7 +78990,7 @@ _0202A502:
add r0, #0x1e
sub r0, r0, r1
mov r1, #0x1e
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r1, r0, #0x10
_0202A510:
@@ -79014,7 +79014,7 @@ FUN_0202A524: ; 0x0202A524
ldrh r0, [r0, #0x16]
mov r1, #0xfa
lsl r1, r1, #0x2
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3, pc}
@@ -79211,11 +79211,11 @@ FUN_0202A670: ; 0x0202A670
add r0, r4, #0x4
mov r1, #0x0
mov r2, #0xfa
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x4
- blx MI_CpuFill8
+ bl MI_CpuFill8
pop {r4, pc}
.balign 4
@@ -79347,7 +79347,7 @@ FUN_0202A754: ; 0x0202A754
ldr r2, _0202A77C ; =0x0000063C
add r1, r5, r1
add r6, r3, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _0202A780 ; =0x00000101
strb r4, [r5, r0]
sub r0, r0, #0x1
@@ -79420,30 +79420,30 @@ _0202A7EE:
add r0, #0xa8
add r1, #0x8
mov r2, #0x10
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
_0202A7FC:
add r0, r5, r4
add r1, r6, #0x0
add r0, #0xca
add r1, #0x18
mov r2, #0x8
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r5, r4
add r1, r6, #0x0
add r0, #0xd2
add r1, #0x20
mov r2, #0x8
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r5, r4
add r6, #0x28
add r0, #0xda
add r1, r6, #0x0
mov r2, #0x8
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r5, r4
add r1, r7, #0x0
mov r2, #0xa8
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r3-r7, pc}
nop
_0202A834: .word 0x00002710
@@ -79460,7 +79460,7 @@ FUN_0202A838: ; 0x0202A838
add r1, r5, r1
lsl r2, r2, #0x2
add r6, r3, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _0202A860 ; =0x00000103
strb r4, [r5, r0]
sub r0, r0, #0x1
@@ -79499,7 +79499,7 @@ FUN_0202A878: ; 0x0202A878
add r0, r5, r0
add r1, r4, #0x0
lsl r2, r2, #0x2
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r4, #0x0
pop {r3-r5, pc}
@@ -79601,7 +79601,7 @@ FUN_0202A92C: ; 0x0202A92C
add r4, r0, #0x0
mov r1, #0x0
lsl r2, r2, #0x2
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
bl FUN_0201BA60
str r0, [r4, #0x0]
bl FUN_0201BA60
@@ -80197,7 +80197,7 @@ _0202ACB4:
ldr r0, [sp, #0x0]
add r1, r1, r6
sub r2, #0x28
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
lsl r0, r4, #0x2
add r1, r5, r0
mov r0, #0x1
@@ -80267,7 +80267,7 @@ _0202AD3C:
mul r1, r2
add r0, r6, #0x0
add r1, r3, r1
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
lsl r0, r4, #0x2
add r1, r5, r0
mov r0, #0x12
@@ -80763,7 +80763,7 @@ _0202B07E:
ldr r1, [sp, #0x14]
mov r0, #0x0
lsl r2, r2, #0x2
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
ldr r0, [sp, #0x10]
mov r7, #0x0
cmp r0, #0x0
@@ -81145,18 +81145,18 @@ FUN_0202B390: ; 0x0202B390
mov r0, #0x0
add r1, #0xc
mov r2, #0xc0
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r1, r4, #0x0
mov r0, #0x0
add r1, #0xcc
mov r2, #0xc0
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r1, #0x63
lsl r1, r1, #0x2
mov r0, #0x0
add r1, r4, r1
mov r2, #0xc0
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
bl FUN_0202B3F8
pop {r4, pc}
@@ -81175,7 +81175,7 @@ FUN_0202B3C4: ; 0x0202B3C4
_0202B3D4:
add r0, r2, #0x0
mov r1, #0xf
- blx _s32_div_f
+ bl _s32_div_f
mov r0, #0xf
sub r1, r0, r1
str r1, [r4, #0x4]
@@ -81307,7 +81307,7 @@ FUN_0202B470: ; 0x0202B470
add r0, r6, #0x0
add r1, r5, #0x0
mov r2, #0x28
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
add sp, #0x10
pop {r4-r6, pc}
@@ -81686,7 +81686,7 @@ FUN_0202B710: ; 0x0202B710
add r0, sp, #0x8
mov r1, #0x0
mov r2, #0x4
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
str r0, [sp, #0x0]
add r0, sp, #0x8
@@ -81939,7 +81939,7 @@ FUN_0202B8B8: ; 0x0202B8B8
mov r1, #0x0
lsl r2, r2, #0x4
add r6, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r7, #0x0
_0202B8C8:
mov r4, #0x0
@@ -82044,7 +82044,7 @@ _0202B968:
mov r1, #0x1d
bl FUN_0202A150
add r1, r7, #0x0
- blx _u32_div_f
+ bl _u32_div_f
add r7, r0, #0x0
_0202B984:
str r7, [r5, #0x0]
@@ -82074,7 +82074,7 @@ _0202B9A0:
ldr r2, [r0, #0x28]
mov r0, #0x64
mul r0, r2
- blx _u32_div_f
+ bl _u32_div_f
add r1, r0, #0x0
_0202B9C4:
str r1, [r5, #0x0]
@@ -82115,7 +82115,7 @@ FUN_0202B9EC: ; 0x0202B9EC
mov r1, #0x0
lsl r2, r2, #0x2
str r0, [sp, #0x4]
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
bl FUN_0202881C
mov r1, #0x1
@@ -82232,7 +82232,7 @@ FUN_0202BAD4: ; 0x0202BAD4
mov r1, #0x0
mov r2, #0xe0
add r4, r3, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, sp, #0x10
ldrb r0, [r0, #0x10]
cmp r0, #0x0
@@ -82244,7 +82244,7 @@ FUN_0202BAD4: ; 0x0202BAD4
add r0, r5, r0
add r1, #0x50
str r0, [sp, #0x8]
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r1, sp, #0x10
ldrb r3, [r1, #0x18]
mov r0, #0x0
@@ -82305,7 +82305,7 @@ _0202BB64:
add r1, r6, #0x0
add r1, #0x50
str r0, [sp, #0x8]
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, sp, #0x10
ldrb r2, [r0, #0x18]
mov r3, #0x0
@@ -82588,7 +82588,7 @@ FUN_0202BD6C: ; 0x0202BD6C
mov r1, #0x0
mov r2, #0x4c
add r7, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
bl FUN_0202881C
mov r1, #0x1
@@ -82646,7 +82646,7 @@ FUN_0202BDF0: ; 0x0202BDF0
mov r1, #0x0
mov r2, #0x4c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [sp, #0x0]
mov r1, #0x90
mul r1, r0
@@ -82715,7 +82715,7 @@ _0202BE7E:
add r0, r6, #0x0
mov r1, #0x0
mov r2, #0x4c
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r6, #0x0
bl FUN_02016A18
pop {r4-r6, pc}
@@ -82734,7 +82734,7 @@ FUN_0202BEA0: ; 0x0202BEA0
ldr r2, _0202BED8 ; =0x00000688
mov r0, #0x0
add r1, r5, #0x0
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r4, #0x0
mov r6, #0xab
add r7, r4, #0x0
@@ -82764,7 +82764,7 @@ FUN_0202BEDC: ; 0x0202BEDC
ldr r2, _0202BF14 ; =0x00000588
mov r0, #0x0
add r1, r5, #0x0
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r4, #0x0
mov r6, #0xab
add r7, r4, #0x0
@@ -82873,14 +82873,14 @@ FUN_0202BF90: ; 0x0202BF90
str r0, [r3, r2]
add r0, r2, #0x4
str r1, [r3, r0]
- blx OS_GetOwnerRtcOffset
+ bl OS_GetOwnerRtcOffset
ldr r2, _0202BFD4 ; =0x00000678
str r0, [r5, r2]
add r0, r2, #0x4
add r2, #0x8
str r1, [r5, r0]
add r0, r5, r2
- blx OS_GetMacAddress
+ bl OS_GetMacAddress
pop {r4-r6, pc}
nop
_0202BFCC: .word 0x00000588
@@ -82971,7 +82971,7 @@ FUN_0202C060: ; 0x0202C060
sub sp, #0x8
add r4, r0, #0x0
add r0, sp, #0x0
- blx OS_GetMacAddress
+ bl OS_GetMacAddress
mov r0, #0x1a
mov r3, #0x0
add r5, sp, #0x0
@@ -82999,7 +82999,7 @@ _0202C084:
FUN_0202C094: ; 0x0202C094
push {r4, lr}
add r4, r0, #0x0
- blx OS_GetOwnerRtcOffset
+ bl OS_GetOwnerRtcOffset
ldr r2, _0202C0B4 ; =0x00000678
ldr r3, [r4, r2]
add r2, r2, #0x4
@@ -83178,7 +83178,7 @@ FUN_0202C1C8: ; 0x0202C1C8
ldr r1, _0202C1F0 ; =0x021C59D8
ldr r0, _0202C1F4 ; =FUN_0202C1F8
ldr r1, [r1, #0x4]
- blx WM_SetParentParameter
+ bl WM_SetParentParameter
cmp r0, #0x2
beq _0202C1EC
bl FUN_0202C1AC
@@ -83225,22 +83225,22 @@ FUN_0202C21C: ; 0x0202C21C
mov r0, #0x1
pop {r4, pc}
_0202C230:
- blx WMi_GetStatusAddress
+ bl WMi_GetStatusAddress
add r4, r0, #0x0
mov r0, #0x66
lsl r0, r0, #0x2
add r0, r4, r0
mov r1, #0x4
- blx DC_InvalidateRange
+ bl DC_InvalidateRange
mov r0, #0x66
mov r1, #0x0
lsl r0, r0, #0x2
str r1, [r4, r0]
add r0, r4, r0
mov r1, #0x4
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r0, _0202C280 ; =FUN_0202C288
- blx WM_StartParent
+ bl WM_StartParent
cmp r0, #0x2
beq _0202C264
bl FUN_0202C1AC
@@ -83334,13 +83334,13 @@ _0202C2DA:
ldr r0, _0202C38C ; =0x02105D54
add r1, #0x15
mov r2, #0x3
- blx memcmp
+ bl memcmp
cmp r0, #0x0
beq _0202C330
_0202C318:
ldrh r1, [r5, #0x10]
mov r0, #0x0
- blx WM_Disconnect
+ bl WM_Disconnect
cmp r0, #0x2
beq _0202C378
bl FUN_0202C1AC
@@ -83429,7 +83429,7 @@ _0202C3AC:
ldr r0, _0202C400 ; =FUN_0202C404
lsr r2, r2, #0x10
add r3, r4, r3
- blx WM_StartMP
+ bl WM_StartMP
cmp r0, #0x2
beq _0202C3E8
bl FUN_0202C1AC
@@ -83502,7 +83502,7 @@ FUN_0202C460: ; 0x0202C460
mov r0, #0x3
bl FUN_0202C198
ldr r0, _0202C480 ; =FUN_0202C484
- blx WM_EndMP
+ bl WM_EndMP
cmp r0, #0x2
beq _0202C47A
bl FUN_0202C1AC
@@ -83535,7 +83535,7 @@ _0202C4A2:
FUN_0202C4A4: ; 0x0202C4A4
push {r3, lr}
ldr r0, _0202C4BC ; =FUN_0202C4C0
- blx WM_EndParent
+ bl WM_EndParent
cmp r0, #0x2
beq _0202C4B8
bl FUN_0202C1AC
@@ -83691,7 +83691,7 @@ _0202C5D4: .word 0x021C59D8
thumb_func_start FUN_0202C5D8
FUN_0202C5D8: ; 0x0202C5D8
push {r3-r7, lr}
- blx WM_GetAllowedChannel
+ bl WM_GetAllowedChannel
add r5, r0, #0x0
mov r0, #0x2
lsl r0, r0, #0xe
@@ -83751,7 +83751,7 @@ _0202C64C:
sub r0, #0x28
strh r2, [r3, r0]
_0202C650:
- blx WM_GetDispersionScanPeriod
+ bl WM_GetDispersionScanPeriod
ldr r2, _0202C684 ; =0x021C59D8
ldr r1, _0202C690 ; =0x000012E6
ldr r3, [r2, #0x4]
@@ -83766,7 +83766,7 @@ _0202C650:
sub r1, r1, #0x6
ldr r0, _0202C694 ; =FUN_0202C698
add r1, r2, r1
- blx WM_StartScan
+ bl WM_StartScan
cmp r0, #0x2
beq _0202C680
bl FUN_0202C1AC
@@ -83820,7 +83820,7 @@ _0202C6D0:
sub r0, #0xf0
add r0, r2, r0
mov r1, #0xc0
- blx DC_InvalidateRange
+ bl DC_InvalidateRange
ldr r0, _0202C760 ; =0x021C59D8
ldr r1, [r0, #0x4]
ldr r0, _0202C768 ; =0x00001320
@@ -83910,7 +83910,7 @@ _0202C790: .word 0x00001310
FUN_0202C794: ; 0x0202C794
push {r3, lr}
ldr r0, _0202C7AC ; =FUN_0202C7B0
- blx WM_EndScan
+ bl WM_EndScan
cmp r0, #0x2
beq _0202C7A8
bl FUN_0202C1AC
@@ -83971,7 +83971,7 @@ _0202C800:
ldr r0, _0202C84C ; =0x02105D54
add r1, #0x1
mov r2, #0x3
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
bl FUN_02033534
add r1, sp, #0x4
strb r0, [r1, #0x0]
@@ -83984,7 +83984,7 @@ _0202C800:
mov r3, #0x1
add r1, r2, r1
add r2, sp, #0x4
- blx WM_StartConnectEx
+ bl WM_StartConnectEx
cmp r0, #0x2
beq _0202C83E
bl FUN_0202C1AC
@@ -84109,7 +84109,7 @@ FUN_0202C908: ; 0x0202C908
ldr r0, _0202C954 ; =FUN_0202C958
lsr r2, r2, #0x10
add r3, r4, r3
- blx WM_StartMP
+ bl WM_StartMP
cmp r0, #0x2
beq _0202C942
bl FUN_0202C1AC
@@ -84185,7 +84185,7 @@ FUN_0202C9BC: ; 0x0202C9BC
mov r0, #0x3
bl FUN_0202C198
ldr r0, _0202C9DC ; =FUN_0202C9E0
- blx WM_EndMP
+ bl WM_EndMP
cmp r0, #0x2
beq _0202C9D6
bl FUN_0202C1AC
@@ -84223,7 +84223,7 @@ FUN_0202CA04: ; 0x0202CA04
bl FUN_0202C198
ldr r0, _0202CA28 ; =FUN_0202CA2C
mov r1, #0x0
- blx WM_Disconnect
+ bl WM_Disconnect
cmp r0, #0x2
beq _0202CA24
bl FUN_0202C1AC
@@ -84256,7 +84256,7 @@ FUN_0202CA44: ; 0x0202CA44
mov r0, #0x3
bl FUN_0202C198
ldr r0, _0202CA64 ; =FUN_0202CA68
- blx WM_Reset
+ bl WM_Reset
cmp r0, #0x2
beq _0202CA5E
bl FUN_0202C1AC
@@ -84300,7 +84300,7 @@ FUN_0202CA88: ; 0x0202CA88
add r0, r1, r0
ldr r1, [r1, r2]
add r7, r3, #0x0
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r0, _0202CAD8 ; =0x0000FFFF
add r1, r7, #0x0
str r0, [sp, #0x0]
@@ -84312,7 +84312,7 @@ FUN_0202CA88: ; 0x0202CA88
ldr r0, _0202CADC ; =FUN_0202CAE0
add r2, r5, #0x0
add r3, r6, #0x0
- blx WM_SetMPDataToPortEx
+ bl WM_SetMPDataToPortEx
cmp r0, #0x2
bne _0202CACA
add sp, #0xc
@@ -84405,7 +84405,7 @@ FUN_0202CB50: ; 0x0202CB50
_0202CB60:
mov r0, #0x0
add r1, r0, #0x0
- blx FUN_02090CC8
+ bl FUN_02090CC8
mov r0, #0x0
bl FUN_0202C198
pop {r3, pc}
@@ -84497,7 +84497,7 @@ FUN_0202CBFC: ; 0x0202CBFC
push {r3-r5, lr}
sub sp, #0x8
add r0, sp, #0x0
- blx OS_GetMacAddress
+ bl OS_GetMacAddress
ldr r0, _0202CC84 ; =0x027FFC3C
ldr r3, [r0, #0x0]
add r0, sp, #0x0
@@ -84566,7 +84566,7 @@ _0202CC94: .word 0x00003039
FUN_0202CC98: ; 0x0202CC98
push {r4, lr}
add r4, r0, #0x0
- blx WM_GetAllowedChannel
+ bl WM_GetAllowedChannel
mov r1, #0x2
lsl r1, r1, #0xe
cmp r0, r1
@@ -84693,7 +84693,7 @@ FUN_0202CD90: ; 0x0202CD90
str r1, [sp, #0x0]
mov r1, #0x3
mov r2, #0x11
- blx WM_MeasureChannel
+ bl WM_MeasureChannel
pop {r3, pc}
.balign 4
@@ -84900,7 +84900,7 @@ FUN_0202CF0C: ; 0x0202CF0C
ldr r0, [r0, #0x4]
mov r2, #0x2
add r0, #0x40
- blx WM_Initialize
+ bl WM_Initialize
cmp r0, #0x2
beq _0202CF34
bl FUN_0202C1AC
@@ -84929,7 +84929,7 @@ FUN_0202CF40: ; 0x0202CF40
pop {r3, pc}
_0202CF5A:
ldr r0, _0202CF80 ; =FUN_0202CEF4
- blx WM_SetIndCallback
+ bl WM_SetIndCallback
cmp r0, #0x0
beq _0202CF76
bl FUN_0202C1AC
@@ -85073,14 +85073,14 @@ _0202D066:
ldr r1, _0202D09C ; =0x00001220
add r1, r2, r1
mov r2, #0xc0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _0202D094 ; =0x021C59D8
ldr r1, [r0, #0x4]
ldr r0, _0202D09C ; =0x00001220
add r0, r1, r0
mov r1, #0xc0
- blx DC_FlushRange
- blx DC_WaitWriteBufferEmpty
+ bl DC_FlushRange
+ bl DC_WaitWriteBufferEmpty
bl FUN_0202C7E8
pop {r4-r6, pc}
_0202D08E:
@@ -85102,7 +85102,7 @@ FUN_0202D0A0: ; 0x0202D0A0
ldr r1, _0202D0CC ; =FUN_0202CB08
lsr r0, r0, #0x10
mov r2, #0x0
- blx WM_SetPortCallback
+ bl WM_SetPortCallback
cmp r0, #0x0
beq _0202D0C2
mov r0, #0x9
@@ -85210,7 +85210,7 @@ FUN_0202D178: ; 0x0202D178
mov r0, #0x3
bl FUN_0202C198
ldr r0, _0202D198 ; =FUN_0202CB50
- blx WM_End
+ bl WM_End
cmp r0, #0x2
beq _0202D194
mov r0, #0x9
@@ -85344,7 +85344,7 @@ FUN_0202D240: ; 0x0202D240
add r1, r6, #0x0
lsr r2, r2, #0x10
add r3, r4, #0x0
- blx WM_SetGameInfo
+ bl WM_SetGameInfo
_0202D26E:
add sp, #0x8
pop {r4-r6, pc}
@@ -85383,7 +85383,7 @@ FUN_0202D298: ; 0x0202D298
cmp r0, #0x4
bne _0202D2BE
ldr r0, _0202D2CC ; =FUN_0202D27C
- blx WM_SetEntry
+ bl WM_SetEntry
cmp r0, #0x2
bne _0202D2BE
mov r0, #0x1
@@ -85670,7 +85670,7 @@ FUN_0202D4A8: ; 0x0202D4A8
add r0, r1, #0x0
mov r1, #0xa
ldrsh r1, [r2, r1]
- blx _s32_div_f
+ bl _s32_div_f
add r0, r1, #0x0
pop {r3, pc}
.balign 4
@@ -85922,7 +85922,7 @@ _0202D660:
ldr r0, [r5, #0x0]
ldr r1, [r4, #0x0]
add r2, r3, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
_0202D66A:
ldrh r0, [r5, #0xc]
ldr r1, [r4, #0x0]
@@ -86096,7 +86096,7 @@ _0202D7A4:
add r0, r6, #0x0
mov r1, #0x0
mov r2, #0x10
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r4, #0x4]
ldr r7, [sp, #0x0]
cmp r0, #0x0
@@ -86130,7 +86130,7 @@ FUN_0202D7D8: ; 0x0202D7D8
mov r1, #0x0
mov r2, #0x20
add r5, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
lsl r7, r4, #0x4
mov r0, #0xf
add r1, r7, #0x0
@@ -86138,7 +86138,7 @@ FUN_0202D7D8: ; 0x0202D7D8
mov r1, #0x0
add r2, r7, #0x0
str r0, [r5, #0x18]
- blx MI_CpuFill8
+ bl MI_CpuFill8
str r4, [r5, #0x1c]
str r6, [r5, #0x14]
pop {r3-r7, pc}
@@ -86152,7 +86152,7 @@ FUN_0202D804: ; 0x0202D804
ldr r0, [r4, #0x18]
mov r1, #0x0
lsl r2, r2, #0x4
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
str r0, [r4, #0x0]
str r0, [r4, #0x4]
@@ -86623,7 +86623,7 @@ FUN_0202DB14: ; 0x0202DB14
str r0, [r1, #0x0]
mov r1, #0x0
lsl r2, r2, #0x2
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r6, #0x0
ldr r7, _0202DBA0 ; =0x021C59E4
add r4, r6, #0x0
@@ -86746,7 +86746,7 @@ FUN_0202DBE0: ; 0x0202DBE0
ldr r0, [r0, #0x0]
add r0, #0x64
add r0, r0, r5
- blx OS_GetMacAddress
+ bl OS_GetMacAddress
add r0, r7, #0x0
mov r1, #0x1
mov r2, #0x0
@@ -86756,7 +86756,7 @@ FUN_0202DBE0: ; 0x0202DBE0
ldr r1, [r1, #0x0]
add r1, #0x54
add r1, r1, r5
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r6, #0x0
bl FUN_02029B38
ldr r1, _0202DCD8 ; =0x021C59E4
@@ -86791,14 +86791,14 @@ FUN_0202DBE0: ; 0x0202DBE0
ldr r1, [r1, #0x0]
add r1, #0x48
add r1, r1, r5
- blx FUN_02096CCC
+ bl FUN_02096CCC
ldr r0, _0202DCD8 ; =0x021C59E4
mov r1, #0x0
ldr r0, [r0, #0x0]
mov r2, #0x20
add r0, #0x8
add r0, r0, r5
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _0202DCD8 ; =0x021C59E4
ldr r1, [r0, #0x0]
ldr r0, [r1, #0x0]
@@ -86874,7 +86874,7 @@ FUN_0202DD08: ; 0x0202DD08
add r3, r1, #0x0
mul r3, r2
add r1, r5, r3
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r4, #0x62
ldr r2, _0202DD78 ; =0x021C59E4
ldrb r3, [r4, #0x0]
@@ -86924,7 +86924,7 @@ FUN_0202DD80: ; 0x0202DD80
add r1, #0x8
add r1, r1, r4
add r2, r3, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _0202DDE0 ; =0x021C59E4
add r1, r5, #0x0
ldr r0, [r0, #0x0]
@@ -87002,7 +87002,7 @@ _0202DE0A:
ldr r0, [r1, r0]
add r6, #0x28
add r1, r6, r5
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r1, _0202DE70 ; =0x021C59E4
mov r0, #0x4
ldr r1, [r1, #0x0]
@@ -87639,7 +87639,7 @@ FUN_0202E29C: ; 0x0202E29C
str r0, [r1, #0x8]
mov r1, #0x0
lsl r2, r2, #0x4
- blx MI_CpuFill8
+ bl MI_CpuFill8
bl FUN_0202CEEC
add r1, r0, #0x0
mov r0, #0xf
@@ -87655,7 +87655,7 @@ FUN_0202E29C: ; 0x0202E29C
ldr r0, _0202E338 ; =0x00000CA4
ldr r0, [r1, r0]
mov r1, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
bl FUN_02023AC4
add r1, r0, #0x0
mov r0, #0xf
@@ -87671,7 +87671,7 @@ FUN_0202E29C: ; 0x0202E29C
ldr r0, _0202E33C ; =0x00000CBC
ldr r0, [r1, r0]
mov r1, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r2, _0202E334 ; =0x021C59E8
mov r1, #0x33
ldr r3, _0202E340 ; =0x00000333
@@ -87807,7 +87807,7 @@ _0202E3D2:
mul r1, r2
add r0, r7, #0x0
add r1, r3, r1
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r3-r7, pc}
_0202E412:
add r6, r6, #0x1
@@ -87844,7 +87844,7 @@ _0202E434:
mul r3, r2
add r0, r7, #0x0
add r1, r4, r3
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _0202E464 ; =0x021C59E8
mov r2, #0x1
ldr r1, [r0, #0x8]
@@ -87862,7 +87862,7 @@ FUN_0202E470: ; 0x0202E470
push {r3, lr}
cmp r1, #0x0
beq _0202E47A
- blx OS_Terminate
+ bl OS_Terminate
_0202E47A:
ldr r0, _0202E484 ; =0x021C59E8
mov r1, #0x2
@@ -87894,10 +87894,10 @@ FUN_0202E49C: ; 0x0202E49C
ldr r1, _0202E4C4 ; =FUN_0202E470
mov r0, #0x8
mov r2, #0x0
- blx FUN_02090DB8
+ bl FUN_02090DB8
cmp r0, #0x1
beq _0202E4BC
- blx OS_Terminate
+ bl OS_Terminate
_0202E4BC:
pop {r3, pc}
nop
@@ -87992,7 +87992,7 @@ _0202E544:
ldr r0, [r0, #0x8]
lsl r2, r2, #0xa
add r0, #0x54
- blx MI_CpuFill8
+ bl MI_CpuFill8
pop {r3-r5, pc}
nop
_0202E564: .word 0x021C59E8
@@ -88709,7 +88709,7 @@ _0202EACE:
add r2, r0, #0x0
add r0, r4, #0x0
add r1, #0x10
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
bl FUN_02023AC4
add r2, r0, #0x0
ldr r0, _0202EB6C ; =0x021C59E8
@@ -88718,7 +88718,7 @@ _0202EACE:
ldr r0, [r1, r0]
add r1, r5, #0x0
add r1, #0x30
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r4, #0x0
bl FUN_020239BC
str r0, [r5, #0x0]
@@ -88733,7 +88733,7 @@ _0202EACE:
add r0, r1, r0
add r1, r5, #0x0
add r1, #0x8
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
bl FUN_0202D358
add r5, #0x54
strb r0, [r5, #0x0]
@@ -88755,14 +88755,14 @@ _0202EB24:
ldr r0, [r0, #0x8]
add r1, r5, #0x0
mov r2, #0x54
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
_0202EB4E:
ldr r0, _0202EB6C ; =0x021C59E8
ldr r1, [r0, #0x8]
ldr r0, _0202EB70 ; =0x00000CC4
add r0, r1, r0
mov r1, #0x5c
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r0, _0202EB6C ; =0x021C59E8
ldr r1, [r0, #0x8]
ldr r0, _0202EB70 ; =0x00000CC4
@@ -88794,7 +88794,7 @@ FUN_0202EB7C: ; 0x0202EB7C
ldr r0, _0202EBCC ; =0x00000CC4
add r0, r1, r0
mov r1, #0x5c
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r0, _0202EBC8 ; =0x021C59E8
ldr r1, [r0, #0x8]
ldr r0, _0202EBCC ; =0x00000CC4
@@ -89240,7 +89240,7 @@ _0202EEE4: .word 0x0000FFFF
FUN_0202EEE8: ; 0x0202EEE8
push {r3-r5, lr}
add r5, r0, #0x0
- blx WM_GetDispersionBeaconPeriod
+ bl WM_GetDispersionBeaconPeriod
add r4, r0, #0x0
cmp r5, #0x1a
blo _0202EEFA
@@ -89369,7 +89369,7 @@ _0202EFC2:
add r1, r4, #0x0
mul r1, r2
add r1, r3, r1
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
_0202EFD8:
pop {r3-r5, pc}
nop
@@ -89484,7 +89484,7 @@ FUN_0202F094: ; 0x0202F094
ldr r1, _0202F0B4 ; =0x00000CBC
add r0, r4, #0x0
ldr r1, [r3, r1]
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r4, pc}
nop
_0202F0B0: .word 0x021C59E8
@@ -89545,7 +89545,7 @@ FUN_0202F10C: ; 0x0202F10C
ldr r1, _0202F120 ; =0x021C59E8
mov r2, #0x54
ldr r1, [r1, #0x8]
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
bl FUN_0202F0B8
pop {r3, pc}
nop
@@ -89606,7 +89606,7 @@ _0202F178:
ldr r2, _0202F2C0 ; =0x0000068C
str r0, [r1, #0x4]
add r1, r4, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r2, _0202F2BC ; =0x021C59F4
ldr r1, _0202F2C4 ; =0x00000658
ldr r0, [r2, #0x4]
@@ -89795,7 +89795,7 @@ FUN_0202F2F0: ; 0x0202F2F0
ldr r3, [r3, r2]
add r2, r3, #0x0
mul r2, r6
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r4, #0x0
cmp r6, #0x0
ble _0202F360
@@ -89828,7 +89828,7 @@ _0202F360:
ldr r3, [r3, r2]
add r2, r3, #0x0
mul r2, r6
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r5, #0x0
cmp r6, #0x0
ble _0202F3A2
@@ -89860,7 +89860,7 @@ _0202F3A2:
add r0, r1, r0
mov r1, #0x0
lsl r2, r2, #0x6
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _0202F54C ; =0x021C59F4
mov r1, #0xb5
ldr r2, [r0, #0x4]
@@ -89894,7 +89894,7 @@ _0202F3DA:
mov r1, #0x0
add r0, #0x4c
lsl r2, r2, #0x2
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _0202F54C ; =0x021C59F4
mov r2, #0x42
ldr r1, [r0, #0x4]
@@ -89930,7 +89930,7 @@ _0202F420:
ldr r0, [r3, r0]
mov r1, #0x0
lsl r2, r2, #0x1
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _0202F54C ; =0x021C59F4
mov r1, #0x47
ldr r3, [r0, #0x4]
@@ -90109,7 +90109,7 @@ FUN_0202F5A4: ; 0x0202F5A4
ldr r3, [r3, r2]
add r2, r3, #0x0
mul r2, r6
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r4, #0x0
cmp r6, #0x0
ble _0202F606
@@ -90142,7 +90142,7 @@ _0202F606:
ldr r3, [r3, r2]
add r2, r3, #0x0
mul r2, r6
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r5, #0x0
cmp r6, #0x0
ble _0202F648
@@ -90174,7 +90174,7 @@ _0202F648:
add r0, r1, r0
mov r1, #0x0
lsl r2, r2, #0x6
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _0202F7D4 ; =0x021C59F4
mov r1, #0xb5
ldr r2, [r0, #0x4]
@@ -90208,7 +90208,7 @@ _0202F680:
mov r1, #0x0
add r0, #0x4c
lsl r2, r2, #0x2
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _0202F7D4 ; =0x021C59F4
mov r2, #0x42
ldr r1, [r0, #0x4]
@@ -90244,7 +90244,7 @@ _0202F6C6:
ldr r0, [r3, r0]
mov r1, #0x0
lsl r2, r2, #0x1
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _0202F7D4 ; =0x021C59F4
mov r1, #0x47
ldr r3, [r0, #0x4]
@@ -92269,7 +92269,7 @@ _020306F2:
ldr r1, [r6, #0xc]
ldr r2, [r5, r2]
ldr r3, [r6, #0x4]
- blx _ll_mul
+ bl _ll_mul
add r3, r0, #0x0
add r2, r1, #0x0
ldr r0, [r6, #0x10]
@@ -92316,7 +92316,7 @@ _02030746:
ldr r1, [r6, #0xc]
ldr r2, [r6, #0x0]
ldr r3, [r6, #0x4]
- blx _ll_mul
+ bl _ll_mul
ldr r3, [r6, #0x10]
ldr r2, [r6, #0x14]
add r0, r3, r0
@@ -93084,7 +93084,7 @@ _02030D22:
ldr r0, [sp, #0x8]
add r1, r2, r1
ldr r2, [sp, #0xc]
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
_02030D42:
ldr r1, [r5, #0x0]
ldr r0, [sp, #0xc]
@@ -94087,7 +94087,7 @@ FUN_02031480: ; 0x02031480
ldr r2, _020314CC ; =0x00000253
str r0, [r1, #0x0]
mov r1, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
_0203149C:
ldr r1, _020314C8 ; =0x021C59FC
mov r3, #0x0
@@ -94363,7 +94363,7 @@ _02031672:
add r1, r7, #0x0
add r0, r0, r5
mov r2, #0x2
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r4, r4, #0x1
add r5, r5, #0x2
cmp r4, #0x8
@@ -94405,7 +94405,7 @@ FUN_020316AC: ; 0x020316AC
add r3, #0x18
add r0, r1, #0x0
add r1, r3, r4
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r1, _020316DC ; =0x021C59FC
mov r0, #0x14
ldr r1, [r1, #0x0]
@@ -94459,7 +94459,7 @@ FUN_02031704: ; 0x02031704
add r4, #0x18
mul r3, r2
add r1, r4, r3
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r3-r5, pc}
nop
_0203172C: .word 0x021C59FC
@@ -94486,7 +94486,7 @@ FUN_02031734: ; 0x02031734
mov r2, #0x50
str r0, [r1, #0x0]
mov r1, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _020317BC ; =0x021C5A00
mov r2, #0x32
ldr r1, [r0, #0x0]
@@ -95249,7 +95249,7 @@ _02031D04:
bl FUN_0202EDF8
cmp r0, #0x0
beq _02031D18
- blx WM_GetLinkLevel
+ bl WM_GetLinkLevel
mov r1, #0x3
sub r0, r1, r0
bl FUN_02033EEC
@@ -95320,7 +95320,7 @@ _02031D42:
ldr r1, [r4, #0xc]
ldr r2, [r5, #0xc]
ldr r3, [r4, #0x4]
- blx _ll_mul
+ bl _ll_mul
ldr r2, [r4, #0x10]
ldr r3, [r4, #0x14]
add r0, r2, r0
@@ -95331,7 +95331,7 @@ _02031D42:
mov r1, #0x0
mov r2, #0x14
mov r3, #0x0
- blx _ll_mul
+ bl _ll_mul
mov r0, #0x0
add r5, #0x43
strb r0, [r5, #0x0]
@@ -95404,7 +95404,7 @@ _02031E32:
ldr r1, [r4, #0xc]
ldr r2, [r5, #0xc]
ldr r3, [r4, #0x4]
- blx _ll_mul
+ bl _ll_mul
ldr r2, [r4, #0x10]
ldr r3, [r4, #0x14]
add r0, r2, r0
@@ -95452,7 +95452,7 @@ FUN_02031E8C: ; 0x02031E8C
ldr r1, [r5, #0xc]
ldr r2, [r4, #0xc]
ldr r3, [r5, #0x4]
- blx _ll_mul
+ bl _ll_mul
ldr r2, [r5, #0x10]
ldr r3, [r5, #0x14]
add r0, r2, r0
@@ -95680,7 +95680,7 @@ FUN_02032058: ; 0x02032058
ldr r1, [r4, #0xc]
ldr r2, [r5, #0xc]
ldr r3, [r4, #0x4]
- blx _ll_mul
+ bl _ll_mul
ldr r2, [r4, #0x10]
ldr r3, [r4, #0x14]
add r0, r2, r0
@@ -95691,7 +95691,7 @@ FUN_02032058: ; 0x02032058
mov r1, #0x0
mov r2, #0x14
mov r3, #0x0
- blx _ll_mul
+ bl _ll_mul
mov r0, #0x0
add r5, #0x43
strb r0, [r5, #0x0]
@@ -96289,7 +96289,7 @@ FUN_02032510: ; 0x02032510
ldr r1, [r5, #0xc]
ldr r2, [r4, #0xc]
ldr r3, [r5, #0x4]
- blx _ll_mul
+ bl _ll_mul
ldr r2, [r5, #0x10]
ldr r3, [r5, #0x14]
add r0, r2, r0
@@ -96376,7 +96376,7 @@ FUN_020325D0: ; 0x020325D0
ldr r1, [r5, #0xc]
ldr r2, [r4, #0xc]
ldr r3, [r5, #0x4]
- blx _ll_mul
+ bl _ll_mul
ldr r2, [r5, #0x10]
ldr r3, [r5, #0x14]
add r0, r2, r0
@@ -98019,7 +98019,7 @@ FUN_02033288: ; 0x02033288
mov r2, #0x50
str r0, [r1, #0x0]
mov r1, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _020332D8 ; =0x021C5A00
mov r2, #0x18
ldr r1, [r0, #0x0]
@@ -98085,7 +98085,7 @@ FUN_02033310: ; 0x02033310
mov r2, #0x50
str r0, [r1, #0x0]
mov r1, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _02033360 ; =0x021C5A00
mov r2, #0x19
ldr r1, [r0, #0x0]
@@ -98265,7 +98265,7 @@ _02033482:
mov r1, #0x0
ldr r0, [r0, #0x0]
add r2, r4, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _020334D4 ; =0x021C5A00
mov r1, #0x0
ldr r2, [r0, #0x0]
@@ -98730,7 +98730,7 @@ FUN_020337E8: ; 0x020337E8
add r0, #0x1f
mov r1, #0x1f
bic r0, r1
- blx FUN_02096B14
+ bl FUN_02096B14
add r5, r0, #0x0
add r0, r4, #0x0
bl FUN_02016A18
@@ -98743,14 +98743,14 @@ FUN_0203380C: ; 0x0203380C
push {r4, lr}
bl FUN_02028228
add r4, r0, #0x0
- blx FUN_02096FB0
+ bl FUN_02096FB0
cmp r0, #0x0
bne _0203382A
ldr r1, _0203382C ; =0x4144414A
add r0, r4, #0x0
- blx thunk_FUN_02097190
+ bl thunk_FUN_02097190
add r0, r4, #0x0
- blx thunk_FUN_02096e4c
+ bl thunk_FUN_02096e4c
_0203382A:
pop {r4, pc}
.balign 4
@@ -98763,10 +98763,10 @@ FUN_02033830: ; 0x02033830
bl FUN_02028228
add r4, r0, #0x0
add r1, sp, #0x0
- blx FUN_02096CCC
+ bl FUN_02096CCC
add r0, r4, #0x0
add r1, sp, #0x0
- blx FUN_02096DA0
+ bl FUN_02096DA0
add sp, #0xc
pop {r3-r4, pc}
@@ -98776,11 +98776,11 @@ FUN_0203384C: ; 0x0203384C
bl FUN_020286EC
bl FUN_02028228
add r4, r0, #0x0
- blx FUN_02096F80
+ bl FUN_02096F80
cmp r0, #0x0
beq _0203386E
add r0, r4, #0x0
- blx FUN_02096F18
+ bl FUN_02096F18
cmp r0, #0x0
beq _0203386E
mov r0, #0x1
@@ -98810,7 +98810,7 @@ FUN_02033874: ; 0x02033874
mvn r1, r1
str r1, [r0, #0x0]
add r0, r5, #0x0
- blx FUN_0209700C
+ bl FUN_0209700C
cmp r0, #0x0
bne _020338AE
add sp, #0x8
@@ -98821,7 +98821,7 @@ _020338AE:
_020338B0:
add r0, r5, #0x0
add r1, r4, #0x0
- blx FUN_02096B78
+ bl FUN_02096B78
cmp r0, #0x0
beq _020338C6
ldr r0, [sp, #0x0]
@@ -98832,16 +98832,16 @@ _020338B0:
_020338C6:
add r0, r6, #0x0
add r1, r5, #0x0
- blx FUN_02096DA0
+ bl FUN_02096DA0
cmp r0, #0x0
ble _020338F4
add r0, r6, #0x0
add r1, r5, #0x0
- blx FUN_02096DA0
+ bl FUN_02096DA0
str r0, [sp, #0x4]
add r0, r6, #0x0
add r1, r4, #0x0
- blx FUN_02096DA0
+ bl FUN_02096DA0
ldr r1, [sp, #0x4]
cmp r1, r0
bne _020338F4
@@ -98856,7 +98856,7 @@ _020338F4:
cmp r0, #0x0
bge _0203390A
add r0, r4, #0x0
- blx FUN_0209700C
+ bl FUN_0209700C
cmp r0, #0x0
bne _0203390A
ldr r0, [sp, #0x0]
@@ -98889,7 +98889,7 @@ FUN_02033918: ; 0x02033918
ldr r1, [sp, #0x0]
ldr r2, [sp, #0x4]
add r0, r7, #0x0
- blx FUN_020973B4
+ bl FUN_020973B4
cmp r0, #0x0
bne _02033950
add sp, #0x18
@@ -98899,10 +98899,10 @@ _02033950:
ldr r1, [sp, #0x0]
ldr r2, [sp, #0x4]
add r0, sp, #0xc
- blx FUN_02096D2C
+ bl FUN_02096D2C
add r0, r7, #0x0
add r1, sp, #0xc
- blx FUN_02096DA0
+ bl FUN_02096DA0
cmp r0, #0x0
bgt _0203396C
add sp, #0x18
@@ -98916,11 +98916,11 @@ _0203396C:
_02033974:
add r0, r7, #0x0
add r1, sp, #0xc
- blx FUN_02096DA0
+ bl FUN_02096DA0
str r0, [sp, #0x8]
add r0, r7, #0x0
add r1, r5, #0x0
- blx FUN_02096DA0
+ bl FUN_02096DA0
ldr r1, [sp, #0x8]
cmp r1, r0
bne _02033994
@@ -98933,7 +98933,7 @@ _02033994:
cmp r0, #0x0
bge _020339A6
add r0, r5, #0x0
- blx FUN_0209700C
+ bl FUN_0209700C
cmp r0, #0x0
bne _020339A6
str r4, [r6, #0x0]
@@ -99014,7 +99014,7 @@ _02033A1C:
add r0, r7, #0x0
add r1, r1, r3
mov r2, #0xc
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r5, #0x0
bl FUN_0202E1BC
b _02033A5C
@@ -99058,7 +99058,7 @@ FUN_02033A70: ; 0x02033A70
bl FUN_0202DFD8
ldr r1, [sp, #0x8]
mov r2, #0xc
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
_02033AA6:
ldr r0, [sp, #0x28]
cmp r0, #0x0
@@ -99234,7 +99234,7 @@ _02033C06:
ldr r0, _02033CB4 ; =0x00300010
add r7, r1, #0x0
and r7, r0
- blx GX_GetBankForOBJ
+ bl GX_GetBankForOBJ
b _02033C2C
_02033C1E:
ldr r0, _02033CB8 ; =0x04001000
@@ -99242,7 +99242,7 @@ _02033C1E:
ldr r0, _02033CB4 ; =0x00300010
add r7, r1, #0x0
and r7, r0
- blx GX_GetBankForSubOBJ
+ bl GX_GetBankForSubOBJ
_02033C2C:
cmp r7, #0x10
beq _02033C38
@@ -99413,24 +99413,24 @@ FUN_02033D3C: ; 0x02033D3C
mov r1, #0x96
ldr r0, [sp, #0x4]
lsl r1, r1, #0x2
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r0, [sp, #0x4]
add r1, sp, #0x0
- blx FUN_020B0138
+ bl FUN_020B0138
cmp r5, #0x1
bne _02033D80
ldr r0, [sp, #0x0]
add r1, r4, #0x0
ldr r0, [r0, #0xc]
mov r2, #0x20
- blx GX_LoadOBJPltt
+ bl GX_LoadOBJPltt
b _02033D8C
_02033D80:
ldr r0, [sp, #0x0]
add r1, r4, #0x0
ldr r0, [r0, #0xc]
mov r2, #0x20
- blx GXS_LoadOBJPltt
+ bl GXS_LoadOBJPltt
_02033D8C:
ldr r0, [sp, #0x4]
bl FUN_02016A18
@@ -99466,10 +99466,10 @@ _02033DC8:
mov r1, #0x96
ldr r0, [sp, #0x4]
lsl r1, r1, #0x2
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r0, [sp, #0x4]
add r1, sp, #0x0
- blx FUN_020B0088
+ bl FUN_020B0088
cmp r5, #0x1
bne _02033DF0
mov r0, #0x1
@@ -99478,7 +99478,7 @@ _02033DC8:
ldr r0, _02033E64 ; =0x00300010
add r4, r1, #0x0
and r4, r0
- blx GX_GetBankForOBJ
+ bl GX_GetBankForOBJ
b _02033E00
_02033DF0:
mov r0, #0x1
@@ -99487,7 +99487,7 @@ _02033DF0:
ldr r0, _02033E64 ; =0x00300010
add r4, r1, #0x0
and r4, r0
- blx GX_GetBankForOBJ
+ bl GX_GetBankForOBJ
_02033E00:
cmp r4, #0x10
beq _02033E0C
@@ -99529,14 +99529,14 @@ _02033E34:
mov r2, #0x2
ldr r0, [r0, #0x14]
lsl r2, r2, #0x8
- blx GX_LoadOBJ
+ bl GX_LoadOBJ
b _02033E52
_02033E46:
ldr r0, [sp, #0x0]
mov r2, #0x2
ldr r0, [r0, #0x14]
lsl r2, r2, #0x8
- blx GXS_LoadOBJ
+ bl GXS_LoadOBJ
_02033E52:
ldr r0, [sp, #0x4]
bl FUN_02016A18
@@ -99728,12 +99728,12 @@ _02033FA4:
mov r1, #0x0
bl FUN_0200E3A0
mov r0, #0x1
- blx OS_DisableIrqMask
+ bl OS_DisableIrqMask
ldr r1, _02034154 ; =FUN_02033F50
mov r0, #0x1
- blx OS_SetIrqFunction
+ bl OS_SetIrqFunction
mov r0, #0x1
- blx OS_EnableIrqMask
+ bl OS_EnableIrqMask
mov r0, #0x0
add r1, r0, #0x0
bl FUN_02015F10
@@ -100068,7 +100068,7 @@ _020342E4:
bne _02034308
mov r0, #0x1
add r1, r0, #0x0
- blx OS_WaitIrq
+ bl OS_WaitIrq
b _020342E4
_02034308:
add r0, sp, #0x14
@@ -100180,7 +100180,7 @@ _0203440A:
add r0, r5, #0x0
add r1, r4, r1
add r2, r7, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, [sp, #0x8]
add r5, r5, r7
cmp r0, #0x0
@@ -100191,7 +100191,7 @@ _0203440A:
add r1, r4, #0x2
mul r2, r3
lsl r2, r2, #0x1
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldrb r1, [r4, #0x1]
ldrb r0, [r4, #0x0]
mul r0, r1
@@ -100207,7 +100207,7 @@ _0203443A:
mul r2, r3
lsr r0, r0, #0x10
lsl r2, r2, #0x1
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
_0203444E:
ldr r0, [sp, #0x4]
cmp r0, #0x0
@@ -100218,7 +100218,7 @@ _0203444E:
add r0, r5, #0x0
add r1, r4, r1
mul r2, r3
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldrb r1, [r4, #0x1]
ldrb r0, [r4, #0x0]
mul r0, r1
@@ -100231,7 +100231,7 @@ _0203446C:
mul r2, r3
add r1, r4, r1
lsl r2, r2, #0x1
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r6, #0x0
bl FUN_02016A18
add sp, #0xc
@@ -100425,7 +100425,7 @@ FUN_020345A8: ; 0x020345A8
ldr r2, _020345D8 ; =0x00000708
add r0, r0, r1
add r1, r5, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r4, #0x0
bl FUN_02016A18
add r0, r5, #0x0
@@ -101482,7 +101482,7 @@ FUN_02034CB4: ; 0x02034CB4
mov r1, #0x0
lsl r2, r2, #0x2
add r5, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
bl FUN_020347D8
cmp r0, #0x0
@@ -101518,7 +101518,7 @@ FUN_02034CEC: ; 0x02034CEC
mov r0, #0x0
add r1, r5, r1
lsl r2, r2, #0x8
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r0, #0xa
add r1, r4, #0x0
bl LoadFromNARC_7
@@ -101614,7 +101614,7 @@ FUN_02034D98: ; 0x02034D98
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0xa0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
add r0, #0x6c
bl FUN_0204ADE0
@@ -102016,14 +102016,14 @@ _02035010:
bne _0203502A
add r0, r6, #0x0
mov r1, #0x64
- blx _u32_div_f
+ bl _u32_div_f
cmp r1, #0x0
bne _02035038
_0203502A:
mov r1, #0x19
add r0, r6, #0x0
lsl r1, r1, #0x4
- blx _u32_div_f
+ bl _u32_div_f
cmp r1, #0x0
bne _0203503C
_02035038:
@@ -103505,7 +103505,7 @@ FUN_02035C18: ; 0x02035C18
add r6, r2, #0x0
bl FUN_020201DC
mov r1, #0x3
- blx _u32_div_f
+ bl _u32_div_f
add r2, r0, #0x0
lsl r1, r2, #0x1
add r1, r2, r1
@@ -103551,7 +103551,7 @@ FUN_02035C78: ; 0x02035C78
add r4, r0, #0x0
bl FUN_020201DC
mov r1, #0x3
- blx _u32_div_f
+ bl _u32_div_f
cmp r1, #0x1
bne _02035C9E
add r0, r4, #0x0
@@ -103792,7 +103792,7 @@ FUN_02035E50: ; 0x02035E50
ldr r1, [r4, r1]
mov r2, #0x40
add r6, r0, #0x0
- blx memcpy
+ bl memcpy
mov r0, #0x7e
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -104326,7 +104326,7 @@ FUN_020362E4: ; 0x020362E4
add r2, r0, #0x0
ldr r0, [sp, #0x8]
ldr r1, [r4, r1]
- blx memcpy
+ bl memcpy
mov r0, #0x7e
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -104390,7 +104390,7 @@ _0203638A:
mov r1, #0x0
mov r2, #0x40
add r5, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
str r0, [r5, #0x0]
@@ -104490,7 +104490,7 @@ _02036474:
mov r1, #0x0
mov r2, #0x40
add r5, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [sp, #0x4]
str r0, [r5, #0x0]
ldr r0, [r6, #0xc]
@@ -104964,7 +104964,7 @@ FUN_0203684C: ; 0x0203684C
ldr r1, [r4, r1]
mov r2, #0x30
add r7, r0, #0x0
- blx memcpy
+ bl memcpy
mov r0, #0x7e
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -104982,7 +104982,7 @@ FUN_0203684C: ; 0x0203684C
str r1, [sp, #0x0]
mov r1, #0x0
add r5, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
str r0, [r5, #0x0]
@@ -105511,7 +105511,7 @@ FUN_02036CEC: ; 0x02036CEC
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -106335,7 +106335,7 @@ _02037360:
_0203736C:
ldr r0, _0203738C ; =0x00000005
mov r1, #0x2
- bl FUN_02005FDC
+ bl HandleLoadOverlay
mov r1, #0x0
str r1, [r4, #0x64]
ldr r0, [r4, #0x0]
@@ -106446,7 +106446,7 @@ FUN_02037400: ; 0x02037400
mov r1, #0x0
mov r2, #0xb8
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0xb
mov r1, #0x10
bl FUN_02016998
@@ -106576,7 +106576,7 @@ _02037546:
cmp r0, #0x0
bne _0203756E
ldr r0, _02037590 ; =0x00000005
- bl FUN_02005F60
+ bl UnloadOverlayByID
b _0203756E
_02037562:
ldr r1, [r0, #0x4]
@@ -107138,7 +107138,7 @@ FUN_0203797C: ; 0x0203797C
mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x40
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -107520,7 +107520,7 @@ FUN_02037C7C: ; 0x02037C7C
mov r1, #0x0
mov r2, #0x30
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
bl LoadPlayerDataAddress
str r0, [r4, #0x4]
@@ -107569,7 +107569,7 @@ FUN_02037CF0: ; 0x02037CF0
mov r1, #0x0
mov r2, #0x30
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -107970,7 +107970,7 @@ FUN_0203800C: ; 0x0203800C
mov r1, #0x0
mov r2, #0x20
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r5, #0x0
bl FUN_0206BB1C
add r1, r7, #0x0
@@ -109131,7 +109131,7 @@ _02038956:
bl FUN_020127C0
mov r2, #0x3c
mov r3, #0x0
- blx _ll_sdiv
+ bl _ll_sdiv
add r3, r0, #0x0
ldr r1, [sp, #0x8]
ldr r2, [r5, #0x0]
@@ -109223,7 +109223,7 @@ FUN_02038A3C: ; 0x02038A3C
ldr r0, _02038AAC ; =0x020F2BE8
add r1, sp, #0x8
mov r2, #0xc
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r4, #0x0
mov r7, #0xc
add r6, sp, #0x8
@@ -109236,7 +109236,7 @@ _02038A68:
_02038A72:
bl FUN_0201B9EC
add r1, r7, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x18
lsr r2, r0, #0x18
ldrb r1, [r6, r4]
diff --git a/arm9/asm/unk_02046030.s b/arm9/asm/unk_02046030.s
index b70ef94e..872e976a 100644
--- a/arm9/asm/unk_02046030.s
+++ b/arm9/asm/unk_02046030.s
@@ -7227,7 +7227,7 @@ _02049A14:
str r0, [r5, #0x6c]
ldr r0, _02049AC8 ; =0x00000012
mov r1, #0x2
- bl FUN_02005FDC
+ bl HandleLoadOverlay
add r0, r5, #0x0
bl FUN_0204FC5C
ldr r0, [r4, #0x14]
@@ -7387,7 +7387,7 @@ _02049B76:
mov r0, #0x0
str r0, [r5, #0x6c]
ldr r0, _02049BE4 ; =0x00000012
- bl FUN_02005F60
+ bl UnloadOverlayByID
ldr r0, [r4, #0x14]
mov r2, #0x1
str r0, [sp, #0x0]
@@ -132323,7 +132323,7 @@ FUN_02085C08: ; 0x02085C08
mov r0, #0x35
bl FUN_020168D0
ldr r0, _02085D68 ; =0x00000008
- bl FUN_02005F60
+ bl UnloadOverlayByID
mov r0, #0x1
pop {r3-r5, pc}
nop
@@ -137757,40 +137757,40 @@ FUN_02088854: ; 0x02088854
thumb_func_start FUN_02088858
FUN_02088858: ; 0x02088858
- ldr r3, _02088860 ; =FUN_02005FDC
+ ldr r3, _02088860 ; =HandleLoadOverlay
ldr r0, _02088864 ; =0x00000004
mov r1, #0x2
bx r3
.balign 4
-_02088860: .word FUN_02005FDC
+_02088860: .word HandleLoadOverlay
_02088864: .word 0x00000004
thumb_func_start FUN_02088868
FUN_02088868: ; 0x02088868
- ldr r3, _02088870 ; =FUN_02005F60
+ ldr r3, _02088870 ; =UnloadOverlayByID
ldr r0, _02088874 ; =0x00000004
bx r3
nop
-_02088870: .word FUN_02005F60
+_02088870: .word UnloadOverlayByID
_02088874: .word 0x00000004
thumb_func_start FUN_02088878
FUN_02088878: ; 0x02088878
- ldr r3, _02088880 ; =FUN_02005FDC
+ ldr r3, _02088880 ; =HandleLoadOverlay
ldr r0, _02088884 ; =0x0000000D
mov r1, #0x2
bx r3
.balign 4
-_02088880: .word FUN_02005FDC
+_02088880: .word HandleLoadOverlay
_02088884: .word 0x0000000D
thumb_func_start FUN_02088888
FUN_02088888: ; 0x02088888
- ldr r3, _02088890 ; =FUN_02005F60
+ ldr r3, _02088890 ; =UnloadOverlayByID
ldr r0, _02088894 ; =0x0000000D
bx r3
nop
-_02088890: .word FUN_02005F60
+_02088890: .word UnloadOverlayByID
_02088894: .word 0x0000000D
thumb_func_start FUN_02088898
@@ -137810,21 +137810,21 @@ FUN_02088898: ; 0x02088898
thumb_func_start FUN_020888BC
FUN_020888BC: ; 0x020888BC
- ldr r3, _020888C4 ; =FUN_02005FDC
+ ldr r3, _020888C4 ; =HandleLoadOverlay
ldr r0, _020888C8 ; =0x0000004F
mov r1, #0x2
bx r3
.balign 4
-_020888C4: .word FUN_02005FDC
+_020888C4: .word HandleLoadOverlay
_020888C8: .word 0x0000004F
thumb_func_start FUN_020888CC
FUN_020888CC: ; 0x020888CC
- ldr r3, _020888D4 ; =FUN_02005F60
+ ldr r3, _020888D4 ; =UnloadOverlayByID
ldr r0, _020888D8 ; =0x0000004F
bx r3
nop
-_020888D4: .word FUN_02005F60
+_020888D4: .word UnloadOverlayByID
_020888D8: .word 0x0000004F
thumb_func_start FUN_020888DC
diff --git a/arm9/global.inc b/arm9/global.inc
index 17fd4c67..7947390a 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -141,8 +141,8 @@
.extern FUN_02005E80
.extern FUN_02005E90
.extern FUN_02005F14
-.extern FUN_02005F60
-.extern FUN_02005FDC
+.extern UnloadOverlayByID
+.extern HandleLoadOverlay
.extern FUN_020061E8
.extern FUN_0200621C
.extern FUN_02006234
@@ -4900,3 +4900,133 @@
.extern MOD08_0222A494
.extern MOD08_0222A568
.extern MOD08_0222A6A4
+.extern FUN_02003084
+.extern FUN_0200317C
+.extern FUN_02003A30
+.extern FUN_02004D34
+.extern FUN_02004F64
+.extern FUN_0200C7F0
+.extern FUN_02011A90
+.extern FUN_02011AF0
+.extern FUN_02013450
+.extern FUN_0201B954
+.extern FUN_0201B9B8
+.extern FUN_02027A14
+.extern FUN_02027BDC
+.extern FUN_020799F4
+.extern FUN_02082878
+.extern FUN_02082880
+.extern FUN_020828BC
+.extern FUN_02082E64
+.extern FUN_02083130
+.extern FUN_02083170
+.extern FUN_02083228
+.extern FUN_020832A4
+.extern FUN_020832DC
+.extern FUN_020832EC
+.extern FUN_02083308
+.extern FUN_0208336C
+.extern FUN_020833D4
+.extern FUN_02083404
+.extern FUN_021DD4F4
+.extern FUN_021DD518
+.extern FUN_021DD540
+.extern FUN_021DD58C
+.extern FUN_021DD594
+.extern FUN_021DD59C
+.extern FUN_021DD604
+.extern FUN_021DD60C
+.extern FUN_021DD620
+.extern FUN_021DD678
+.extern FUN_021DD6B8
+.extern FUN_021DD6CC
+.extern FUN_02211FF0
+.extern MOD08_02228574
+.extern MOD08_0222A6C8
+.extern SDK_MODULE_00_ID
+.extern SDK_MODULE_01_ID
+.extern SDK_MODULE_02_ID
+.extern SDK_MODULE_03_ID
+.extern SDK_MODULE_04_ID
+.extern SDK_MODULE_05_ID
+.extern SDK_MODULE_06_ID
+.extern SDK_MODULE_07_ID
+.extern SDK_MODULE_08_ID
+.extern SDK_MODULE_09_ID
+.extern SDK_MODULE_10_ID
+.extern SDK_MODULE_11_ID
+.extern SDK_MODULE_12_ID
+.extern SDK_MODULE_13_ID
+.extern SDK_MODULE_14_ID
+.extern SDK_MODULE_15_ID
+.extern SDK_MODULE_16_ID
+.extern SDK_MODULE_17_ID
+.extern SDK_MODULE_18_ID
+.extern SDK_MODULE_19_ID
+.extern SDK_MODULE_20_ID
+.extern SDK_MODULE_21_ID
+.extern SDK_MODULE_22_ID
+.extern SDK_MODULE_23_ID
+.extern SDK_MODULE_24_ID
+.extern SDK_MODULE_25_ID
+.extern SDK_MODULE_26_ID
+.extern SDK_MODULE_27_ID
+.extern SDK_MODULE_28_ID
+.extern SDK_MODULE_29_ID
+.extern SDK_MODULE_30_ID
+.extern SDK_MODULE_31_ID
+.extern SDK_MODULE_32_ID
+.extern SDK_MODULE_33_ID
+.extern SDK_MODULE_34_ID
+.extern SDK_MODULE_35_ID
+.extern SDK_MODULE_36_ID
+.extern SDK_MODULE_37_ID
+.extern SDK_MODULE_38_ID
+.extern SDK_MODULE_39_ID
+.extern SDK_MODULE_40_ID
+.extern SDK_MODULE_41_ID
+.extern SDK_MODULE_42_ID
+.extern SDK_MODULE_43_ID
+.extern SDK_MODULE_44_ID
+.extern SDK_MODULE_45_ID
+.extern SDK_MODULE_46_ID
+.extern SDK_MODULE_47_ID
+.extern SDK_MODULE_48_ID
+.extern SDK_MODULE_49_ID
+.extern SDK_MODULE_50_ID
+.extern SDK_MODULE_51_ID
+.extern SDK_MODULE_52_ID
+.extern SDK_MODULE_53_ID
+.extern SDK_MODULE_54_ID
+.extern SDK_MODULE_55_ID
+.extern SDK_MODULE_56_ID
+.extern SDK_MODULE_57_ID
+.extern SDK_MODULE_58_ID
+.extern SDK_MODULE_59_ID
+.extern SDK_MODULE_60_ID
+.extern SDK_MODULE_61_ID
+.extern SDK_MODULE_62_ID
+.extern SDK_MODULE_63_ID
+.extern SDK_MODULE_64_ID
+.extern SDK_MODULE_65_ID
+.extern SDK_MODULE_66_ID
+.extern SDK_MODULE_67_ID
+.extern SDK_MODULE_68_ID
+.extern SDK_MODULE_69_ID
+.extern SDK_MODULE_70_ID
+.extern SDK_MODULE_71_ID
+.extern SDK_MODULE_72_ID
+.extern SDK_MODULE_73_ID
+.extern SDK_MODULE_74_ID
+.extern SDK_MODULE_75_ID
+.extern SDK_MODULE_76_ID
+.extern SDK_MODULE_77_ID
+.extern SDK_MODULE_78_ID
+.extern SDK_MODULE_79_ID
+.extern SDK_MODULE_80_ID
+.extern SDK_MODULE_81_ID
+.extern SDK_MODULE_82_ID
+.extern SDK_MODULE_83_ID
+.extern SDK_MODULE_84_ID
+.extern SDK_MODULE_85_ID
+.extern SDK_MODULE_86_ID
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/undefined_syms.txt b/arm9/undefined_syms.txt
index 9b6d2115..72e1c07e 100644
--- a/arm9/undefined_syms.txt
+++ b/arm9/undefined_syms.txt
@@ -678,6 +678,19 @@ FUN_0221594C = 0x0221594C;
FUN_02215988 = 0x02215988;
FUN_02215A44 = 0x02215A44;
FUN_022186F0 = 0x022186F0;
+FUN_021DD4F4 = 0x021DD4F4;
+FUN_021DD518 = 0x021DD518;
+FUN_021DD540 = 0x021DD540;
+FUN_021DD58C = 0x021DD58C;
+FUN_021DD594 = 0x021DD594;
+FUN_021DD59C = 0x021DD59C;
+FUN_021DD604 = 0x021DD604;
+FUN_021DD60C = 0x021DD60C;
+FUN_021DD620 = 0x021DD620;
+FUN_021DD678 = 0x021DD678;
+FUN_021DD6B8 = 0x021DD6B8;
+FUN_021DD6CC = 0x021DD6CC;
+FUN_02211FF0 = 0x02211FF0;
// ???
SDK_MAIN_ARENA_LO = 0x0225FFA0;
@@ -702,436 +715,523 @@ SDK_AUTOLOAD_LIST_END = 0x02107724;
// Overlay
+SDK_MODULE_00_ID = 0;
SDK_MODULE_00_START = 0x021D74E0;
SDK_MODULE_00_SIZE = 0x00000020;
SDK_MODULE_00_BSSSIZE = 0x00000000;
SDK_MODULE_00_STATIC_INIT_START = 0x021D74E0;
SDK_MODULE_00_STATIC_INIT_END = 0x021D74E4;
+SDK_MODULE_01_ID = 1;
SDK_MODULE_01_START = 0x021D74E0;
SDK_MODULE_01_SIZE = 0x00000020;
SDK_MODULE_01_BSSSIZE = 0x00000020;
SDK_MODULE_01_STATIC_INIT_START = 0x021D74F0;
SDK_MODULE_01_STATIC_INIT_END = 0x021D74F8;
+SDK_MODULE_02_ID = 2;
SDK_MODULE_02_START = 0x021D7520;
SDK_MODULE_02_SIZE = 0x00000020;
SDK_MODULE_02_BSSSIZE = 0x00000000;
SDK_MODULE_02_STATIC_INIT_START = 0x021D7520;
SDK_MODULE_02_STATIC_INIT_END = 0x021D7524;
+SDK_MODULE_03_ID = 3;
SDK_MODULE_03_START = 0x01FF8700;
SDK_MODULE_03_SIZE = 0x00000020;
SDK_MODULE_03_BSSSIZE = 0x00000000;
SDK_MODULE_03_STATIC_INIT_START = 0x01FF8700;
SDK_MODULE_03_STATIC_INIT_END = 0x01FF8704;
+SDK_MODULE_04_ID = 4;
SDK_MODULE_04_START = 0x021D74E0;
SDK_MODULE_04_SIZE = 0x000386E0;
SDK_MODULE_04_BSSSIZE = 0x000022A0;
SDK_MODULE_04_STATIC_INIT_START = 0x0220BE94;
SDK_MODULE_04_STATIC_INIT_END = 0x0220BE98;
+SDK_MODULE_05_ID = 5;
SDK_MODULE_05_START = 0x021D74E0;
SDK_MODULE_05_SIZE = 0x000261A0;
SDK_MODULE_05_BSSSIZE = 0x0003C020;
SDK_MODULE_05_STATIC_INIT_START = 0x021FD1C8;
SDK_MODULE_05_STATIC_INIT_END = 0x021FD1CC;
+SDK_MODULE_06_ID = 6;
SDK_MODULE_06_START = 0x022396A0;
SDK_MODULE_06_SIZE = 0x00018D80;
SDK_MODULE_06_BSSSIZE = 0x00000020;
SDK_MODULE_06_STATIC_INIT_START = 0x02252228;
SDK_MODULE_06_STATIC_INIT_END = 0x0225222C;
+SDK_MODULE_07_ID = 7;
SDK_MODULE_07_START = 0x02211E60;
SDK_MODULE_07_SIZE = 0x000032E0;
SDK_MODULE_07_BSSSIZE = 0x00000000;
SDK_MODULE_07_STATIC_INIT_START = 0x02215134;
SDK_MODULE_07_STATIC_INIT_END = 0x02215138;
+SDK_MODULE_08_ID = 8;
SDK_MODULE_08_START = 0x02211E60;
SDK_MODULE_08_SIZE = 0x0001B760;
SDK_MODULE_08_BSSSIZE = 0x00000000;
SDK_MODULE_08_STATIC_INIT_START = 0x0222D598;
SDK_MODULE_08_STATIC_INIT_END = 0x0222D59C;
+SDK_MODULE_09_ID = 9;
SDK_MODULE_09_START = 0x02211E60;
SDK_MODULE_09_SIZE = 0x0000A1A0;
SDK_MODULE_09_BSSSIZE = 0x00000000;
SDK_MODULE_09_STATIC_INIT_START = 0x0221BFE8;
SDK_MODULE_09_STATIC_INIT_END = 0x0221BFEC;
+SDK_MODULE_10_ID = 10;
SDK_MODULE_10_START = 0x021D74E0;
SDK_MODULE_10_SIZE = 0x00000020;
SDK_MODULE_10_BSSSIZE = 0x00000000;
SDK_MODULE_10_STATIC_INIT_START = 0x021D74E0;
SDK_MODULE_10_STATIC_INIT_END = 0x021D74E4;
+SDK_MODULE_11_ID = 11;
SDK_MODULE_11_START = 0x0222D5C0;
SDK_MODULE_11_SIZE = 0x000329E0;
SDK_MODULE_11_BSSSIZE = 0x00000000;
SDK_MODULE_11_STATIC_INIT_START = 0x0225FF18;
SDK_MODULE_11_STATIC_INIT_END = 0x0225FF20;
+SDK_MODULE_12_ID = 12;
SDK_MODULE_12_START = 0x0222D5C0;
SDK_MODULE_12_SIZE = 0x00019260;
SDK_MODULE_12_BSSSIZE = 0x00000000;
SDK_MODULE_12_STATIC_INIT_START = 0x02246810;
SDK_MODULE_12_STATIC_INIT_END = 0x02246818;
+SDK_MODULE_13_ID = 13;
SDK_MODULE_13_START = 0x02211E60;
SDK_MODULE_13_SIZE = 0x0002EBE0;
SDK_MODULE_13_BSSSIZE = 0x000027E0;
SDK_MODULE_13_STATIC_INIT_START = 0x0223F768;
SDK_MODULE_13_STATIC_INIT_END = 0x0223F76C;
+SDK_MODULE_14_ID = 14;
SDK_MODULE_14_START = 0x021D74E0;
SDK_MODULE_14_SIZE = 0x0000F520;
SDK_MODULE_14_BSSSIZE = 0x000001A0;
SDK_MODULE_14_STATIC_INIT_START = 0x021E69C8;
SDK_MODULE_14_STATIC_INIT_END = 0x021E69CC;
+SDK_MODULE_15_ID = 15;
SDK_MODULE_15_START = 0x021D74E0;
SDK_MODULE_15_SIZE = 0x00004680;
SDK_MODULE_15_BSSSIZE = 0x00000000;
SDK_MODULE_15_STATIC_INIT_START = 0x021DBB5C;
SDK_MODULE_15_STATIC_INIT_END = 0x021DBB60;
+SDK_MODULE_16_ID = 16;
SDK_MODULE_16_START = 0x021D74E0;
SDK_MODULE_16_SIZE = 0x00028500;
SDK_MODULE_16_BSSSIZE = 0x00000000;
SDK_MODULE_16_STATIC_INIT_START = 0x021FF9C4;
SDK_MODULE_16_STATIC_INIT_END = 0x021FF9C8;
+SDK_MODULE_17_ID = 17;
SDK_MODULE_17_START = 0x021D74E0;
SDK_MODULE_17_SIZE = 0x00006E80;
SDK_MODULE_17_BSSSIZE = 0x00000000;
SDK_MODULE_17_STATIC_INIT_START = 0x021DE354;
SDK_MODULE_17_STATIC_INIT_END = 0x021DE358;
+SDK_MODULE_18_ID = 18;
SDK_MODULE_18_START = 0x022396A0;
SDK_MODULE_18_SIZE = 0x00017CE0;
SDK_MODULE_18_BSSSIZE = 0x00000080;
SDK_MODULE_18_STATIC_INIT_START = 0x02250858;
SDK_MODULE_18_STATIC_INIT_END = 0x0225085C;
+SDK_MODULE_19_ID = 19;
SDK_MODULE_19_START = 0x02252440;
SDK_MODULE_19_SIZE = 0x00000100;
SDK_MODULE_19_BSSSIZE = 0x00000000;
SDK_MODULE_19_STATIC_INIT_START = 0x02252524;
SDK_MODULE_19_STATIC_INIT_END = 0x02252528;
+SDK_MODULE_20_ID = 20;
SDK_MODULE_20_START = 0x02252440;
SDK_MODULE_20_SIZE = 0x00002400;
SDK_MODULE_20_BSSSIZE = 0x00000000;
SDK_MODULE_20_STATIC_INIT_START = 0x02254838;
SDK_MODULE_20_STATIC_INIT_END = 0x0225483C;
+SDK_MODULE_21_ID = 21;
SDK_MODULE_21_START = 0x02254840;
SDK_MODULE_21_SIZE = 0x000005C0;
SDK_MODULE_21_BSSSIZE = 0x00000000;
SDK_MODULE_21_STATIC_INIT_START = 0x02254DE8;
SDK_MODULE_21_STATIC_INIT_END = 0x02254DF0;
+SDK_MODULE_22_ID = 22;
SDK_MODULE_22_START = 0x02254840;
SDK_MODULE_22_SIZE = 0x00000F00;
SDK_MODULE_22_BSSSIZE = 0x00000000;
SDK_MODULE_22_STATIC_INIT_START = 0x02255730;
SDK_MODULE_22_STATIC_INIT_END = 0x02255738;
+SDK_MODULE_23_ID = 23;
SDK_MODULE_23_START = 0x02254840;
SDK_MODULE_23_SIZE = 0x00001900;
SDK_MODULE_23_BSSSIZE = 0x00000000;
SDK_MODULE_23_STATIC_INIT_START = 0x02256128;
SDK_MODULE_23_STATIC_INIT_END = 0x02256130;
+SDK_MODULE_24_ID = 24;
SDK_MODULE_24_START = 0x02254840;
SDK_MODULE_24_SIZE = 0x000009A0;
SDK_MODULE_24_BSSSIZE = 0x00000000;
SDK_MODULE_24_STATIC_INIT_START = 0x022551C0;
SDK_MODULE_24_STATIC_INIT_END = 0x022551C8;
+SDK_MODULE_25_ID = 25;
SDK_MODULE_25_START = 0x02254840;
SDK_MODULE_25_SIZE = 0x00000560;
SDK_MODULE_25_BSSSIZE = 0x00000000;
SDK_MODULE_25_STATIC_INIT_START = 0x02254D80;
SDK_MODULE_25_STATIC_INIT_END = 0x02254D88;
+SDK_MODULE_26_ID = 26;
SDK_MODULE_26_START = 0x02254840;
SDK_MODULE_26_SIZE = 0x00000800;
SDK_MODULE_26_BSSSIZE = 0x00000000;
SDK_MODULE_26_STATIC_INIT_START = 0x02255020;
SDK_MODULE_26_STATIC_INIT_END = 0x02255028;
+SDK_MODULE_27_ID = 27;
SDK_MODULE_27_START = 0x02254840;
SDK_MODULE_27_SIZE = 0x00000BA0;
SDK_MODULE_27_BSSSIZE = 0x00000000;
SDK_MODULE_27_STATIC_INIT_START = 0x022553C4;
SDK_MODULE_27_STATIC_INIT_END = 0x022553CC;
+SDK_MODULE_28_ID = 28;
SDK_MODULE_28_START = 0x02254840;
SDK_MODULE_28_SIZE = 0x00001780;
SDK_MODULE_28_BSSSIZE = 0x00000000;
SDK_MODULE_28_STATIC_INIT_START = 0x02255F18;
SDK_MODULE_28_STATIC_INIT_END = 0x02255F20;
+SDK_MODULE_29_ID = 29;
SDK_MODULE_29_START = 0x02254840;
SDK_MODULE_29_SIZE = 0x00000900;
SDK_MODULE_29_BSSSIZE = 0x00000000;
SDK_MODULE_29_STATIC_INIT_START = 0x0225512C;
SDK_MODULE_29_STATIC_INIT_END = 0x02255134;
+SDK_MODULE_30_ID = 30;
SDK_MODULE_30_START = 0x02254840;
SDK_MODULE_30_SIZE = 0x00000600;
SDK_MODULE_30_BSSSIZE = 0x00000000;
SDK_MODULE_30_STATIC_INIT_START = 0x02254E28;
SDK_MODULE_30_STATIC_INIT_END = 0x02254E30;
+SDK_MODULE_31_ID = 31;
SDK_MODULE_31_START = 0x02254840;
SDK_MODULE_31_SIZE = 0x00000600;
SDK_MODULE_31_BSSSIZE = 0x00000000;
SDK_MODULE_31_STATIC_INIT_START = 0x02254E20;
SDK_MODULE_31_STATIC_INIT_END = 0x02254E28;
+SDK_MODULE_32_ID = 32;
SDK_MODULE_32_START = 0x02254840;
SDK_MODULE_32_SIZE = 0x000004A0;
SDK_MODULE_32_BSSSIZE = 0x00000000;
SDK_MODULE_32_STATIC_INIT_START = 0x02254CC4;
SDK_MODULE_32_STATIC_INIT_END = 0x02254CCC;
+SDK_MODULE_33_ID = 33;
SDK_MODULE_33_START = 0x02254840;
SDK_MODULE_33_SIZE = 0x00000320;
SDK_MODULE_33_BSSSIZE = 0x00000000;
SDK_MODULE_33_STATIC_INIT_START = 0x02254B40;
SDK_MODULE_33_STATIC_INIT_END = 0x02254B48;
+SDK_MODULE_34_ID = 34;
SDK_MODULE_34_START = 0x02254840;
SDK_MODULE_34_SIZE = 0x000004C0;
SDK_MODULE_34_BSSSIZE = 0x00000000;
SDK_MODULE_34_STATIC_INIT_START = 0x02254CF8;
SDK_MODULE_34_STATIC_INIT_END = 0x02254D00;
+SDK_MODULE_35_ID = 35;
SDK_MODULE_35_START = 0x02254840;
SDK_MODULE_35_SIZE = 0x000009A0;
SDK_MODULE_35_BSSSIZE = 0x00000000;
SDK_MODULE_35_STATIC_INIT_START = 0x022551C0;
SDK_MODULE_35_STATIC_INIT_END = 0x022551C8;
+SDK_MODULE_36_ID = 36;
SDK_MODULE_36_START = 0x02254840;
SDK_MODULE_36_SIZE = 0x00000CC0;
SDK_MODULE_36_BSSSIZE = 0x00000000;
SDK_MODULE_36_STATIC_INIT_START = 0x022554F8;
SDK_MODULE_36_STATIC_INIT_END = 0x02255500;
+SDK_MODULE_37_ID = 37;
SDK_MODULE_37_START = 0x02254840;
SDK_MODULE_37_SIZE = 0x00000560;
SDK_MODULE_37_BSSSIZE = 0x00000020;
SDK_MODULE_37_STATIC_INIT_START = 0x02254D90;
SDK_MODULE_37_STATIC_INIT_END = 0x02254D98;
+SDK_MODULE_38_ID = 38;
SDK_MODULE_38_START = 0x02254840;
SDK_MODULE_38_SIZE = 0x00000B40;
SDK_MODULE_38_BSSSIZE = 0x00000000;
SDK_MODULE_38_STATIC_INIT_START = 0x02255360;
SDK_MODULE_38_STATIC_INIT_END = 0x02255368;
+SDK_MODULE_39_ID = 39;
SDK_MODULE_39_START = 0x02254840;
SDK_MODULE_39_SIZE = 0x00000CC0;
SDK_MODULE_39_BSSSIZE = 0x00000000;
SDK_MODULE_39_STATIC_INIT_START = 0x022554E4;
SDK_MODULE_39_STATIC_INIT_END = 0x022554EC;
+SDK_MODULE_40_ID = 40;
SDK_MODULE_40_START = 0x02254840;
SDK_MODULE_40_SIZE = 0x00000C60;
SDK_MODULE_40_BSSSIZE = 0x00000000;
SDK_MODULE_40_STATIC_INIT_START = 0x02255480;
SDK_MODULE_40_STATIC_INIT_END = 0x02255488;
+SDK_MODULE_41_ID = 41;
SDK_MODULE_41_START = 0x02254840;
SDK_MODULE_41_SIZE = 0x00001140;
SDK_MODULE_41_BSSSIZE = 0x00000000;
SDK_MODULE_41_STATIC_INIT_START = 0x02255974;
SDK_MODULE_41_STATIC_INIT_END = 0x0225597C;
+SDK_MODULE_42_ID = 42;
SDK_MODULE_42_START = 0x02254840;
SDK_MODULE_42_SIZE = 0x00000900;
SDK_MODULE_42_BSSSIZE = 0x00000000;
SDK_MODULE_42_STATIC_INIT_START = 0x0225511C;
SDK_MODULE_42_STATIC_INIT_END = 0x02255124;
+SDK_MODULE_43_ID = 43;
SDK_MODULE_43_START = 0x02254840;
SDK_MODULE_43_SIZE = 0x000009C0;
SDK_MODULE_43_BSSSIZE = 0x00000000;
SDK_MODULE_43_STATIC_INIT_START = 0x022551EC;
SDK_MODULE_43_STATIC_INIT_END = 0x022551F4;
+SDK_MODULE_44_ID = 44;
SDK_MODULE_44_START = 0x02254840;
SDK_MODULE_44_SIZE = 0x000004A0;
SDK_MODULE_44_BSSSIZE = 0x00000000;
SDK_MODULE_44_STATIC_INIT_START = 0x02254CBC;
SDK_MODULE_44_STATIC_INIT_END = 0x02254CC4;
+SDK_MODULE_45_ID = 45;
SDK_MODULE_45_START = 0x02254840;
SDK_MODULE_45_SIZE = 0x00000940;
SDK_MODULE_45_BSSSIZE = 0x00000000;
SDK_MODULE_45_STATIC_INIT_START = 0x02255170;
SDK_MODULE_45_STATIC_INIT_END = 0x02255178;
+SDK_MODULE_46_ID = 46;
SDK_MODULE_46_START = 0x02254840;
SDK_MODULE_46_SIZE = 0x00000320;
SDK_MODULE_46_BSSSIZE = 0x00000000;
SDK_MODULE_46_STATIC_INIT_START = 0x02254B40;
SDK_MODULE_46_STATIC_INIT_END = 0x02254B48;
+SDK_MODULE_47_ID = 47;
SDK_MODULE_47_START = 0x02254840;
SDK_MODULE_47_SIZE = 0x00000CA0;
SDK_MODULE_47_BSSSIZE = 0x00000000;
SDK_MODULE_47_STATIC_INIT_START = 0x022554BC;
SDK_MODULE_47_STATIC_INIT_END = 0x022554C4;
+SDK_MODULE_48_ID = 48;
SDK_MODULE_48_START = 0x02254840;
SDK_MODULE_48_SIZE = 0x000008A0;
SDK_MODULE_48_BSSSIZE = 0x00000000;
SDK_MODULE_48_STATIC_INIT_START = 0x022550D0;
SDK_MODULE_48_STATIC_INIT_END = 0x022550D8;
+SDK_MODULE_49_ID = 49;
SDK_MODULE_49_START = 0x02254840;
SDK_MODULE_49_SIZE = 0x00000600;
SDK_MODULE_49_BSSSIZE = 0x00000000;
SDK_MODULE_49_STATIC_INIT_START = 0x02254E20;
SDK_MODULE_49_STATIC_INIT_END = 0x02254E28;
+SDK_MODULE_50_ID = 50;
SDK_MODULE_50_START = 0x02254840;
SDK_MODULE_50_SIZE = 0x00000320;
SDK_MODULE_50_BSSSIZE = 0x00000000;
SDK_MODULE_50_STATIC_INIT_START = 0x02254B50;
SDK_MODULE_50_STATIC_INIT_END = 0x02254B58;
+SDK_MODULE_51_ID = 51;
SDK_MODULE_51_START = 0x02254840;
SDK_MODULE_51_SIZE = 0x00000FC0;
SDK_MODULE_51_BSSSIZE = 0x00000020;
SDK_MODULE_51_STATIC_INIT_START = 0x022557E0;
SDK_MODULE_51_STATIC_INIT_END = 0x022557E4;
+SDK_MODULE_52_ID = 52;
SDK_MODULE_52_START = 0x021D74E0;
SDK_MODULE_52_SIZE = 0x00000400;
SDK_MODULE_52_BSSSIZE = 0x00000000;
SDK_MODULE_52_STATIC_INIT_START = 0x021D78D0;
SDK_MODULE_52_STATIC_INIT_END = 0x021D78D4;
+SDK_MODULE_53_ID = 53;
SDK_MODULE_53_START = 0x021D74E0;
SDK_MODULE_53_SIZE = 0x00002480;
SDK_MODULE_53_BSSSIZE = 0x00000000;
SDK_MODULE_53_STATIC_INIT_START = 0x021D9888;
SDK_MODULE_53_STATIC_INIT_END = 0x021D988C;
+SDK_MODULE_54_ID = 54;
SDK_MODULE_54_START = 0x021D74E0;
SDK_MODULE_54_SIZE = 0x00002380;
SDK_MODULE_54_BSSSIZE = 0x00000000;
SDK_MODULE_54_STATIC_INIT_START = 0x021D97D4;
SDK_MODULE_54_STATIC_INIT_END = 0x021D97D8;
+SDK_MODULE_55_ID = 55;
SDK_MODULE_55_START = 0x021D74E0;
SDK_MODULE_55_SIZE = 0x00003040;
SDK_MODULE_55_BSSSIZE = 0x00000000;
SDK_MODULE_55_STATIC_INIT_START = 0x021DA480;
SDK_MODULE_55_STATIC_INIT_END = 0x021DA484;
+SDK_MODULE_56_ID = 56;
SDK_MODULE_56_START = 0x02211E60;
SDK_MODULE_56_SIZE = 0x000047A0;
SDK_MODULE_56_BSSSIZE = 0x00000000;
SDK_MODULE_56_STATIC_INIT_START = 0x0221647C;
SDK_MODULE_56_STATIC_INIT_END = 0x02216480;
+SDK_MODULE_57_ID = 57;
SDK_MODULE_57_START = 0x021D74E0;
SDK_MODULE_57_SIZE = 0x00002540;
SDK_MODULE_57_BSSSIZE = 0x00000000;
SDK_MODULE_57_STATIC_INIT_START = 0x021D9A10;
SDK_MODULE_57_STATIC_INIT_END = 0x021D9A14;
+SDK_MODULE_58_ID = 58;
SDK_MODULE_58_START = 0x021D9A20;
SDK_MODULE_58_SIZE = 0x000015A0;
SDK_MODULE_58_BSSSIZE = 0x00000000;
SDK_MODULE_58_STATIC_INIT_START = 0x021DAF94;
SDK_MODULE_58_STATIC_INIT_END = 0x021DAF98;
+SDK_MODULE_59_ID = 59;
SDK_MODULE_59_START = 0x021D74E0;
SDK_MODULE_59_SIZE = 0x00002C20;
SDK_MODULE_59_BSSSIZE = 0x00000000;
SDK_MODULE_59_STATIC_INIT_START = 0x021DA0FC;
SDK_MODULE_59_STATIC_INIT_END = 0x021DA100;
+SDK_MODULE_60_ID = 60;
SDK_MODULE_60_START = 0x021D74E0;
SDK_MODULE_60_SIZE = 0x00000D00;
SDK_MODULE_60_BSSSIZE = 0x00000000;
SDK_MODULE_60_STATIC_INIT_START = 0x021D81D8;
SDK_MODULE_60_STATIC_INIT_END = 0x021D81DC;
+SDK_MODULE_61_ID = 61;
SDK_MODULE_61_START = 0x021D74E0;
SDK_MODULE_61_SIZE = 0x00001080;
SDK_MODULE_61_BSSSIZE = 0x00000000;
SDK_MODULE_61_STATIC_INIT_START = 0x021D8554;
SDK_MODULE_61_STATIC_INIT_END = 0x021D8558;
+SDK_MODULE_62_ID = 62;
SDK_MODULE_62_START = 0x0222D5C0;
SDK_MODULE_62_SIZE = 0x00003DE0;
SDK_MODULE_62_BSSSIZE = 0x00000000;
SDK_MODULE_62_STATIC_INIT_START = 0x02231380;
SDK_MODULE_62_STATIC_INIT_END = 0x02231388;
+SDK_MODULE_63_ID = 63;
SDK_MODULE_63_START = 0x021D74E0;
SDK_MODULE_63_SIZE = 0x00004AC0;
SDK_MODULE_63_BSSSIZE = 0x00000020;
SDK_MODULE_63_STATIC_INIT_START = 0x021DBF20;
SDK_MODULE_63_STATIC_INIT_END = 0x021DBF24;
+SDK_MODULE_64_ID = 64;
SDK_MODULE_64_START = 0x021D74E0;
SDK_MODULE_64_SIZE = 0x00001C40;
SDK_MODULE_64_BSSSIZE = 0x00000000;
SDK_MODULE_64_STATIC_INIT_START = 0x021D9110;
SDK_MODULE_64_STATIC_INIT_END = 0x021D9114;
+SDK_MODULE_65_ID = 65;
SDK_MODULE_65_START = 0x021D74E0;
SDK_MODULE_65_SIZE = 0x00003000;
SDK_MODULE_65_BSSSIZE = 0x00000000;
SDK_MODULE_65_STATIC_INIT_START = 0x021DA428;
SDK_MODULE_65_STATIC_INIT_END = 0x021DA42C;
+SDK_MODULE_66_ID = 66;
SDK_MODULE_66_START = 0x021D74E0;
SDK_MODULE_66_SIZE = 0x00002660;
SDK_MODULE_66_BSSSIZE = 0x00000000;
SDK_MODULE_66_STATIC_INIT_START = 0x021D9A9C;
SDK_MODULE_66_STATIC_INIT_END = 0x021D9AA0;
+SDK_MODULE_67_ID = 67;
SDK_MODULE_67_START = 0x021D74E0;
SDK_MODULE_67_SIZE = 0x00002440;
SDK_MODULE_67_BSSSIZE = 0x00000000;
SDK_MODULE_67_STATIC_INIT_START = 0x021D9918;
SDK_MODULE_67_STATIC_INIT_END = 0x021D991C;
+SDK_MODULE_68_ID = 68;
SDK_MODULE_68_START = 0x021D74E0;
SDK_MODULE_68_SIZE = 0x00001600;
SDK_MODULE_68_BSSSIZE = 0x00000000;
SDK_MODULE_68_STATIC_INIT_START = 0x021D8AD4;
SDK_MODULE_68_STATIC_INIT_END = 0x021D8AD8;
+SDK_MODULE_69_ID = 69;
SDK_MODULE_69_START = 0x0222D5C0;
SDK_MODULE_69_SIZE = 0x000023A0;
SDK_MODULE_69_BSSSIZE = 0x00000020;
SDK_MODULE_69_STATIC_INIT_START = 0x0222F93C;
SDK_MODULE_69_STATIC_INIT_END = 0x0222F940;
+SDK_MODULE_70_ID = 70;
SDK_MODULE_70_START = 0x021D74E0;
SDK_MODULE_70_SIZE = 0x00000E20;
SDK_MODULE_70_BSSSIZE = 0x00000000;
SDK_MODULE_70_STATIC_INIT_START = 0x021D82DC;
SDK_MODULE_70_STATIC_INIT_END = 0x021D82E0;
+SDK_MODULE_71_ID = 71;
SDK_MODULE_71_START = 0x0222D5C0;
SDK_MODULE_71_SIZE = 0x00003EC0;
SDK_MODULE_71_BSSSIZE = 0x00000000;
SDK_MODULE_71_STATIC_INIT_START = 0x0223147C;
SDK_MODULE_71_STATIC_INIT_END = 0x02231480;
+SDK_MODULE_72_ID = 72;
SDK_MODULE_72_START = 0x021D74E0;
SDK_MODULE_72_SIZE = 0x00000020;
SDK_MODULE_72_BSSSIZE = 0x00000000;
SDK_MODULE_72_STATIC_INIT_START = 0x021D74E0;
SDK_MODULE_72_STATIC_INIT_END = 0x021D74E4;
+SDK_MODULE_73_ID = 73;
SDK_MODULE_73_START = 0x021D74E0;
SDK_MODULE_73_SIZE = 0x00004AE0;
SDK_MODULE_73_BSSSIZE = 0x00000000;
SDK_MODULE_73_STATIC_INIT_START = 0x021DBF70;
SDK_MODULE_73_STATIC_INIT_END = 0x021DBF74;
+SDK_MODULE_74_ID = 74;
SDK_MODULE_74_START = 0x021D74E0;
SDK_MODULE_74_SIZE = 0x00001220;
SDK_MODULE_74_BSSSIZE = 0x00000000;
SDK_MODULE_74_STATIC_INIT_START = 0x021D8664;
SDK_MODULE_74_STATIC_INIT_END = 0x021D8668;
+SDK_MODULE_75_ID = 75;
SDK_MODULE_75_START = 0x021E6BA0;
SDK_MODULE_75_SIZE = 0x00005DE0;
SDK_MODULE_75_BSSSIZE = 0x00000000;
SDK_MODULE_75_STATIC_INIT_START = 0x021EC97C;
SDK_MODULE_75_STATIC_INIT_END = 0x021EC980;
+SDK_MODULE_76_ID = 76;
SDK_MODULE_76_START = 0x021D74E0;
SDK_MODULE_76_SIZE = 0x00001E20;
SDK_MODULE_76_BSSSIZE = 0x00000000;
SDK_MODULE_76_STATIC_INIT_START = 0x021D92E0;
SDK_MODULE_76_STATIC_INIT_END = 0x021D92E4;
+SDK_MODULE_77_ID = 77;
SDK_MODULE_77_START = 0x021D74E0;
SDK_MODULE_77_SIZE = 0x00001BE0;
SDK_MODULE_77_BSSSIZE = 0x00000000;
SDK_MODULE_77_STATIC_INIT_START = 0x021D90AC;
SDK_MODULE_77_STATIC_INIT_END = 0x021D90B0;
+SDK_MODULE_78_ID = 78;
SDK_MODULE_78_START = 0x021D74E0;
SDK_MODULE_78_SIZE = 0x00000460;
SDK_MODULE_78_BSSSIZE = 0x00000000;
SDK_MODULE_78_STATIC_INIT_START = 0x021D78F8;
SDK_MODULE_78_STATIC_INIT_END = 0x021D78FC;
+SDK_MODULE_79_ID = 79;
SDK_MODULE_79_START = 0x02211E60;
SDK_MODULE_79_SIZE = 0x000052C0;
SDK_MODULE_79_BSSSIZE = 0x00000040;
SDK_MODULE_79_STATIC_INIT_START = 0x02216748;
SDK_MODULE_79_STATIC_INIT_END = 0x0221674C;
+SDK_MODULE_80_ID = 80;
SDK_MODULE_80_START = 0x0222D5C0;
SDK_MODULE_80_SIZE = 0x0000A720;
SDK_MODULE_80_BSSSIZE = 0x00000160;
SDK_MODULE_80_STATIC_INIT_START = 0x02237670;
SDK_MODULE_80_STATIC_INIT_END = 0x02237674;
+SDK_MODULE_81_ID = 81;
SDK_MODULE_81_START = 0x02237E40;
SDK_MODULE_81_SIZE = 0x00005580;
SDK_MODULE_81_BSSSIZE = 0x000000A0;
SDK_MODULE_81_STATIC_INIT_START = 0x0223D39C;
SDK_MODULE_81_STATIC_INIT_END = 0x0223D3A0;
+SDK_MODULE_82_ID = 82;
SDK_MODULE_82_START = 0x0222D5C0;
SDK_MODULE_82_SIZE = 0x00002540;
SDK_MODULE_82_BSSSIZE = 0x00000120;
SDK_MODULE_82_STATIC_INIT_START = 0x0222F8CC;
SDK_MODULE_82_STATIC_INIT_END = 0x0222F8D0;
+SDK_MODULE_83_ID = 83;
SDK_MODULE_83_START = 0x0222D5C0;
SDK_MODULE_83_SIZE = 0x0000E2A0;
SDK_MODULE_83_BSSSIZE = 0x00001980;
SDK_MODULE_83_STATIC_INIT_START = 0x0223A77C;
SDK_MODULE_83_STATIC_INIT_END = 0x0223A780;
+SDK_MODULE_84_ID = 84;
SDK_MODULE_84_START = 0x021D74E0;
SDK_MODULE_84_SIZE = 0x00003920;
SDK_MODULE_84_BSSSIZE = 0x00000000;
SDK_MODULE_84_STATIC_INIT_START = 0x021DADE4;
SDK_MODULE_84_STATIC_INIT_END = 0x021DADE8;
+SDK_MODULE_85_ID = 85;
SDK_MODULE_85_START = 0x021D74E0;
SDK_MODULE_85_SIZE = 0x00009100;
SDK_MODULE_85_BSSSIZE = 0x00000000;
SDK_MODULE_85_STATIC_INIT_START = 0x021E05A0;
SDK_MODULE_85_STATIC_INIT_END = 0x021E05A4;
+SDK_MODULE_86_ID = 86;
SDK_MODULE_86_START = 0x021D74E0;
SDK_MODULE_86_SIZE = 0x00000820;
SDK_MODULE_86_BSSSIZE = 0x00000000;
diff --git a/global.inc b/global.inc
index 6d2d19f9..76daa539 100644
--- a/global.inc
+++ b/global.inc
@@ -144,8 +144,8 @@
.extern FUN_02005E80
.extern FUN_02005E90
.extern FUN_02005F14
-.extern FUN_02005F60
-.extern FUN_02005FDC
+.extern UnloadOverlayByID
+.extern HandleLoadOverlay
.extern FUN_020061E8
.extern FUN_0200621C
.extern FUN_02006234