summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRevo <projectrevotpp@hotmail.com>2020-05-02 21:06:59 -0400
committerGitHub <noreply@github.com>2020-05-02 21:06:59 -0400
commitb990e094b7f12d135f25b17ff81b92f954ac7397 (patch)
tree9236de475af519f13e91cd6db299058523723204
parentbcb2fdcaff094ef3bdb951cdb87eff0739510ade (diff)
parent11d4940663e812244f7f7e6b337c1d39fc6e8258 (diff)
Merge pull request #56 from PikalaxALT/pikalax_work
Disasm remaining code in modules 05,06; disasm 07,08
-rw-r--r--.gitignore4
-rw-r--r--arm9/arm9.lcf129
-rw-r--r--arm9/global.inc596
-rw-r--r--arm9/modules/00/asm/module_00_dummy.s2
-rw-r--r--arm9/modules/02/asm/module_02_dummy.s2
-rw-r--r--arm9/modules/03/asm/module_03_dummy.s4
-rw-r--r--arm9/modules/05/asm/module_05.s1084
-rw-r--r--arm9/modules/06/asm/module_06.s44287
-rw-r--r--arm9/modules/07/asm/module_07.s5275
-rw-r--r--arm9/modules/08/asm/module_08.s49981
-rw-r--r--arm9/modules/09/asm/module_09.s17663
-rw-r--r--arm9/modules/10/asm/module_10_dummy.s5
-rw-r--r--arm9/modules/11/asm/module_11.s98637
-rw-r--r--arm9/undefined_syms.txt140
14 files changed, 217736 insertions, 73 deletions
diff --git a/.gitignore b/.gitignore
index 16413467..9db5da34 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,4 +33,6 @@ arm*/baserom.*
*.lcf.template
# Working files
-arm9/modules/module_*.{s,sbin,cfg}
+arm9/modules/module_*.s
+arm9/modules/module_*.sbin
+arm9/modules/module_*.cfg
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index e3956eec..3a4e620a 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -10,18 +10,18 @@ MEMORY {
.ewram (RWX) : ORIGIN=0x023E0000, LENGTH=0
.dtcm (RW) : ORIGIN=0x027E0000, LENGTH=0
.overlay (RX) : ORIGIN=0, LENGTH=0
- MODULE_00 (RWX) : ORIGIN=0, LENGTH=0
+ MODULE_00 (RWX) : ORIGIN=0x021D74E0, LENGTH=0
MODULE_01 (RWX) : ORIGIN=0x021D74E0, LENGTH=0
- MODULE_02 (RWX) : ORIGIN=0, LENGTH=0
- MODULE_03 (RWX) : ORIGIN=0, LENGTH=0
+ MODULE_02 (RWX) : ORIGIN=0x021D7520, LENGTH=0
+ MODULE_03 (RWX) : ORIGIN=0x01FF8700, LENGTH=0
MODULE_04 (RWX) : ORIGIN=0x021D74E0, LENGTH=0
MODULE_05 (RWX) : ORIGIN=0x021D74E0, LENGTH=0
MODULE_06 (RWX) : ORIGIN=0x022396A0, LENGTH=0
- MODULE_07 (RWX) : ORIGIN=0, LENGTH=0
- MODULE_08 (RWX) : ORIGIN=0, LENGTH=0
- MODULE_09 (RWX) : ORIGIN=0, LENGTH=0
- MODULE_10 (RWX) : ORIGIN=0, LENGTH=0
- MODULE_11 (RWX) : ORIGIN=0, LENGTH=0
+ MODULE_07 (RWX) : ORIGIN=0x02211E60, LENGTH=0
+ MODULE_08 (RWX) : ORIGIN=0x02211E60, LENGTH=0
+ 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_13 (RWX) : ORIGIN=0, LENGTH=0
MODULE_14 (RWX) : ORIGIN=0, LENGTH=0
@@ -341,7 +341,17 @@ SECTIONS {
OVERLAY_TABLE(SDK_MODULE_86, 86)
} > .overlay
- OVERLAY_FILE(00, 0x108400, FILE_10C400.o)
+ .MODULE.00 : AT (0x108400)
+ {
+ module_00_dummy.o (.text)
+ module_00_dummy.o (.sdata)
+ module_00_dummy.o (.data)
+ } > MODULE_00
+ .MODULE.00.bss :
+ {
+ module_00_dummy.o (.sbss)
+ module_00_dummy.o (.bss)
+ } >> MODULE_00
.MODULE.01 : AT (0x108600)
{
@@ -355,13 +365,38 @@ SECTIONS {
module_01.o (.bss)
} >> MODULE_01
- OVERLAY_FILE(02, 0x108800, FILE_10C800.o)
- OVERLAY_FILE(03, 0x108A00, FILE_10CA00.o)
+ .MODULE.02 : AT (0x108800)
+ {
+ module_02_dummy.o (.text)
+ module_02_dummy.o (.sdata)
+ module_02_dummy.o (.data)
+ } > MODULE_02
+ .MODULE.02.bss :
+ {
+ module_02_dummy.o (.sbss)
+ module_02_dummy.o (.bss)
+ } >> MODULE_02
+
+ .MODULE.03 : AT (0x108A00)
+ {
+ module_03_dummy.o (.text)
+ module_03_dummy.o (.sdata)
+ module_03_dummy.o (.data)
+ } > MODULE_03
+ .MODULE.03.bss :
+ {
+ module_03_dummy.o (.sbss)
+ module_03_dummy.o (.bss)
+ } >> MODULE_03
.MODULE.04 : AT (0x108C00)
{
thumb_04.o (.text)
arm_04.o (.text)
+ thumb_04.o (.sdata)
+ arm_04.o (.sdata)
+ thumb_04.o (.rodata)
+ arm_04.o (.rodata)
thumb_04.o (.data)
arm_04.o (.data)
} > MODULE_04
@@ -376,6 +411,7 @@ SECTIONS {
.MODULE.05 : AT (0x141400)
{
module_05.o (.text)
+ module_05.o (.sdata)
module_05.o (.data)
} > MODULE_05
.MODULE.05.bss :
@@ -387,6 +423,7 @@ SECTIONS {
.MODULE.06 : AT (0x167600)
{
module_06.o (.text)
+ module_06.o (.sdata)
module_06.o (.data)
} > MODULE_06
.MODULE.06.bss :
@@ -395,11 +432,71 @@ SECTIONS {
module_06.o (.bss)
} >> MODULE_06
- OVERLAY_FILE(07, 0x180400, FILE_184400.o)
- OVERLAY_FILE(08, 0x183800, FILE_187800.o)
- OVERLAY_FILE(09, 0x19F000, FILE_1A3000.o)
- OVERLAY_FILE(10, 0x1A9200, FILE_1AD200.o)
- OVERLAY_FILE(11, 0x1A9400, FILE_1AD400.o)
+ .MODULE.07 : AT (0x180400)
+ {
+ module_07.o (.text)
+ module_07.o (.sdata)
+ module_07.o (.data)
+ } > MODULE_07
+
+ .MODULE.07.bss :
+ {
+ module_07.o (.sbss)
+ module_07.o (.bss)
+ } >> MODULE_07
+
+ .MODULE.08 : AT (0x183800)
+ {
+ module_08.o (.text)
+ module_08.o (.sdata)
+ module_08.o (.data)
+ } > MODULE_08
+
+ .MODULE.08.bss :
+ {
+ module_08.o (.sbss)
+ module_08.o (.bss)
+ } >> MODULE_08
+
+ .MODULE.09 : AT (0x19F000)
+ {
+ module_09.o (.text)
+ module_09.o (.sdata)
+ module_09.o (.data)
+ } > MODULE_09
+
+ .MODULE.09.bss :
+ {
+ module_09.o (.sbss)
+ module_09.o (.bss)
+ } >> MODULE_09
+
+ .MODULE.10 : AT (0x1A9200)
+ {
+ module_10_dummy.o (.text)
+ module_10_dummy.o (.sdata)
+ module_10_dummy.o (.data)
+ } > MODULE_10
+
+ .MODULE.10.bss :
+ {
+ module_10_dummy.o (.sbss)
+ module_10_dummy.o (.bss)
+ } >> MODULE_10
+
+ .MODULE.11 : AT (0x1A9400)
+ {
+ module_11.o (.text)
+ module_11.o (.sdata)
+ module_11.o (.data)
+ } > MODULE_11
+
+ .MODULE.11.bss :
+ {
+ module_11.o (.sbss)
+ module_11.o (.bss)
+ } >> MODULE_11
+
OVERLAY_FILE(12, 0x1DBE00, FILE_1DFE00.o)
OVERLAY_FILE(13, 0x1F5200, FILE_1F9200.o)
OVERLAY_FILE(14, 0x223E00, FILE_227E00.o)
diff --git a/arm9/global.inc b/arm9/global.inc
index 9b0de82d..17fd4c67 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -4304,3 +4304,599 @@
.extern MTX_RotY43_
.extern thunk_FUN_020ae84c
.extern VEC_MultAdd
+.extern FUN_0200C334
+.extern FUN_0200C5C0
+.extern FUN_0200CA40
+.extern FUN_02011744
+.extern FUN_020117BC
+.extern FUN_020117E8
+.extern FUN_02011870
+.extern FUN_020118C4
+.extern FUN_020119D0
+.extern FUN_02011A60
+.extern FUN_020190EC
+.extern FUN_0202930C
+.extern FUN_0202934C
+.extern FUN_0202938C
+.extern FUN_020293EC
+.extern FUN_020294B4
+.extern FUN_020313CC
+.extern FUN_0206AE00
+.extern FUN_0206B6D4
+.extern FUN_0206B888
+.extern FUN_0206B890
+.extern FUN_0206B89C
+.extern FUN_020724D4
+.extern FUN_02079A0C
+.extern FUN_02079A54
+.extern FUN_02079A70
+.extern FUN_0207C2D4
+.extern FUN_02047964
+.extern FUN_02055648
+.extern FUN_02058544
+.extern FUN_02061208
+.extern FUN_0223BD14
+.extern FUN_02001328
+.extern FUN_020021EC
+.extern FUN_020090FC
+.extern FUN_020091E0
+.extern FUN_02009298
+.extern FUN_020094F0
+.extern FUN_02009BE8
+.extern FUN_02009C5C
+.extern FUN_02009E54
+.extern FUN_0201244C
+.extern FUN_02012470
+.extern FUN_02012560
+.extern FUN_02012794
+.extern FUN_02013C28
+.extern FUN_02013C6C
+.extern FUN_02016B90
+.extern FUN_0201B988
+.extern FUN_0201B9A0
+.extern FUN_0201E720
+.extern FUN_0201E7CC
+.extern FUN_0201EB78
+.extern FUN_0201F7F0
+.extern FUN_0201FDB4
+.extern FUN_02020054
+.extern FUN_02020120
+.extern FUN_02021ACC
+.extern FUN_02023948
+.extern FUN_02023BA4
+.extern FUN_02023BE8
+.extern FUN_02023C04
+.extern FUN_02029054
+.extern FUN_02029060
+.extern FUN_0202906C
+.extern FUN_02029078
+.extern FUN_02029084
+.extern FUN_02029578
+.extern FUN_0202A1E4
+.extern FUN_0202A36C
+.extern FUN_0202A3A0
+.extern FUN_0202A40C
+.extern FUN_0202A444
+.extern FUN_0202A474
+.extern FUN_0202A4B8
+.extern FUN_0202A744
+.extern FUN_0202A798
+.extern FUN_0202AA90
+.extern FUN_0202AAB8
+.extern FUN_0202AB4C
+.extern FUN_0202AB54
+.extern FUN_0202AB80
+.extern FUN_0202AB8C
+.extern FUN_0202ABA0
+.extern FUN_0202B40C
+.extern FUN_0202B410
+.extern FUN_0202B414
+.extern FUN_0202B440
+.extern FUN_0202B458
+.extern FUN_0202B534
+.extern FUN_0202B538
+.extern FUN_0202B53C
+.extern FUN_0202B540
+.extern FUN_0202B544
+.extern FUN_0202B5C8
+.extern FUN_0202B5CC
+.extern FUN_0202B678
+.extern FUN_0202B7C8
+.extern FUN_0202B7F4
+.extern FUN_0202B820
+.extern FUN_0202C12C
+.extern FUN_0202DEA4
+.extern FUN_0202DEE0
+.extern FUN_0202DF08
+.extern FUN_0202DF28
+.extern FUN_0202E08C
+.extern FUN_0202E810
+.extern FUN_0202E844
+.extern FUN_0202E878
+.extern FUN_0202E88C
+.extern FUN_0202E9AC
+.extern FUN_0202EE84
+.extern FUN_020314E8
+.extern FUN_0203162C
+.extern FUN_02031640
+.extern FUN_02031668
+.extern FUN_02031A24
+.extern FUN_020345FC
+.extern FUN_020349AC
+.extern FUN_020349B8
+.extern FUN_02034CB4
+.extern FUN_02034CE0
+.extern FUN_0203781C
+.extern FUN_020469B8
+.extern FUN_020476CC
+.extern FUN_020477EC
+.extern FUN_020479FC
+.extern FUN_02047A78
+.extern FUN_02047BB0
+.extern FUN_020480AC
+.extern FUN_020480E4
+.extern FUN_02049494
+.extern FUN_0204A9F0
+.extern FUN_0204AA5C
+.extern FUN_0204AAD4
+.extern FUN_0204B2CC
+.extern FUN_0204B2E4
+.extern FUN_0204CAE0
+.extern FUN_0204FEB0
+.extern FUN_0204FEF0
+.extern FUN_0204FF30
+.extern FUN_0204FF4C
+.extern FUN_0205464C
+.extern FUN_02054798
+.extern FUN_02054890
+.extern FUN_0205489C
+.extern FUN_020548A8
+.extern FUN_02054AFC
+.extern FUN_02055350
+.extern FUN_02055540
+.extern FUN_0205557C
+.extern FUN_020572B8
+.extern FUN_020582F8
+.extern FUN_0205845C
+.extern FUN_020584C8
+.extern FUN_02058750
+.extern FUN_020587F4
+.extern FUN_02058890
+.extern FUN_020589CC
+.extern FUN_02058A00
+.extern FUN_02058B14
+.extern FUN_02058B1C
+.extern FUN_02058B24
+.extern FUN_02058B3C
+.extern FUN_02058B80
+.extern FUN_0205DD80
+.extern FUN_0205DFE8
+.extern FUN_0205E080
+.extern FUN_0205E098
+.extern FUN_0205E480
+.extern FUN_0205EB14
+.extern FUN_0205F154
+.extern FUN_0205F164
+.extern FUN_0205F1A4
+.extern FUN_0205F6E8
+.extern FUN_0205FC50
+.extern FUN_02060064
+.extern FUN_020600A0
+.extern FUN_020600DC
+.extern FUN_020603B0
+.extern FUN_0206043C
+.extern FUN_02060D1C
+.extern FUN_02060D48
+.extern FUN_02060FBC
+.extern FUN_02061904
+.extern FUN_020646DC
+.extern FUN_02066D90
+.extern FUN_02066DD4
+.extern FUN_02066EA4
+.extern FUN_02068758
+.extern FUN_02068A80
+.extern FUN_02068AD8
+.extern FUN_0206A094
+.extern FUN_0206A92C
+.extern FUN_0206A964
+.extern FUN_0206A984
+.extern FUN_0206ABC4
+.extern FUN_0206B8CC
+.extern FUN_0206B9DC
+.extern FUN_0206BB5C
+.extern FUN_0206BB74
+.extern FUN_0206BE48
+.extern FUN_0206E640
+.extern FUN_0206E790
+.extern FUN_02079AAC
+.extern FUN_02085FD0
+.extern FUN_0208603C
+.extern FUN_02086060
+.extern FUN_02089368
+.extern FUN_02089394
+.extern FUN_020BC02C
+.extern FUN_021D80E4
+.extern FUN_021D9320
+.extern FUN_021D94B4
+.extern FUN_021D9510
+.extern FUN_021DA03C
+.extern FUN_021DA080
+.extern FUN_021DA0DC
+.extern FUN_021DA0E0
+.extern FUN_021DA0E8
+.extern FUN_021DA118
+.extern FUN_021DA138
+.extern FUN_021DA1A0
+.extern FUN_021DA1A4
+.extern FUN_021DA1A8
+.extern FUN_021DA20C
+.extern FUN_021DA4BC
+.extern FUN_021DB44C
+.extern FUN_021DB4B0
+.extern FUN_021DB52C
+.extern FUN_021DB53C
+.extern FUN_021DBA40
+.extern FUN_021DBA78
+.extern FUN_021DBAA0
+.extern FUN_021E4BE8
+.extern FUN_021E4C00
+.extern FUN_021E4C08
+.extern FUN_021E4C20
+.extern FUN_021E4C24
+.extern FUN_021E4C6C
+.extern FUN_021E4DC4
+.extern FUN_021E4E90
+.extern FUN_021E4EE4
+.extern FUN_021E4EFC
+.extern FUN_021E506C
+.extern FUN_021E5078
+.extern FUN_021E5094
+.extern FUN_021E50A0
+.extern FUN_021E50AC
+.extern FUN_021E50C8
+.extern FUN_021E50D4
+.extern FUN_021E5114
+.extern FUN_021E5198
+.extern FUN_021E51EC
+.extern FUN_021E5224
+.extern FUN_021E5260
+.extern FUN_021E5294
+.extern FUN_021E7C80
+.extern FUN_021E7E9C
+.extern FUN_021E7EC0
+.extern FUN_021E7ECC
+.extern FUN_021E7EEC
+.extern FUN_021E8698
+.extern FUN_021F0514
+.extern FUN_021F1C1C
+.extern FUN_021F1C30
+.extern FUN_021F1E64
+.extern FUN_021F220C
+.extern FUN_021F51D0
+.extern FUN_021F522C
+.extern FUN_021F5268
+.extern FUN_021F52C8
+.extern FUN_021F531C
+.extern FUN_021F5348
+.extern FUN_021F5358
+.extern FUN_021F5384
+.extern FUN_021F53BC
+.extern FUN_021F53F8
+.extern FUN_021F5400
+.extern FUN_021F5424
+.extern FUN_021F5430
+.extern FUN_021F54CC
+.extern FUN_021F54D0
+.extern FUN_021F54D8
+.extern FUN_021F61F4
+.extern FUN_021F6234
+.extern FUN_021F6240
+.extern FUN_021F6254
+.extern FUN_020031B8
+.extern FUN_02003204
+.extern FUN_020039E8
+.extern FUN_02003A64
+.extern FUN_02003B40
+.extern FUN_020054A8
+.extern FUN_02005530
+.extern FUN_0200554C
+.extern FUN_02005614
+.extern FUN_02007E40
+.extern FUN_020080E0
+.extern FUN_0200813C
+.extern FUN_020081C0
+.extern FUN_02008268
+.extern FUN_0200C59C
+.extern FUN_0200C5B4
+.extern FUN_0200C5E0
+.extern FUN_0200C5F4
+.extern FUN_0200C608
+.extern FUN_0200C630
+.extern FUN_0200C658
+.extern FUN_0200C680
+.extern FUN_0200C68C
+.extern FUN_0200C6A4
+.extern FUN_0200C6B0
+.extern FUN_0200C6C4
+.extern FUN_0200C7FC
+.extern FUN_0200C898
+.extern FUN_0200C8BC
+.extern FUN_0200C8D0
+.extern FUN_0200C8DC
+.extern FUN_0200C8F8
+.extern FUN_0200C90C
+.extern FUN_020129C8
+.extern FUN_020129D8
+.extern FUN_02013348
+.extern FUN_020133DC
+.extern FUN_020133EC
+.extern FUN_020133FC
+.extern FUN_0201341C
+.extern FUN_02013428
+.extern FUN_02013448
+.extern FUN_02013514
+.extern FUN_02013530
+.extern FUN_02013548
+.extern FUN_0201357C
+.extern FUN_02013594
+.extern FUN_020135B0
+.extern FUN_020135C4
+.extern FUN_020135E0
+.extern FUN_020135F4
+.extern FUN_02013610
+.extern FUN_02013628
+.extern FUN_0201365C
+.extern FUN_02013674
+.extern FUN_020170F4
+.extern FUN_020187B0
+.extern FUN_0201B6CC
+.extern FUN_02029CE4
+.extern FUN_02029CE8
+.extern FUN_02068E88
+.extern FUN_02069FB0
+.extern FUN_02085FF4
+.extern FUN_02086018
+.extern FUN_02230078
+.extern FUN_02230080
+.extern FUN_022300CC
+.extern FUN_022312D0
+.extern FUN_02231504
+.extern FUN_02231534
+.extern FUN_02231678
+.extern FUN_02233560
+.extern FX_Modf
+.extern FUN_02002F40
+.extern FUN_0200B144
+.extern FUN_0200C5CC
+.extern FUN_0200CD60
+.extern FUN_02016BF4
+.extern FUN_0201878C
+.extern FUN_0201C62C
+.extern FUN_02020AA4
+.extern FUN_0206AB18
+.extern FUN_0206AB30
+.extern FUN_0206B334
+.extern FUN_0206E0F0
+.extern FUN_0206E114
+.extern FUN_0206E12C
+.extern FUN_0206E130
+.extern FUN_0206E198
+.extern FUN_0206E1D4
+.extern FUN_0206E278
+.extern FUN_0206E290
+.extern FUN_0206E2A8
+.extern FUN_0206E2AC
+.extern FUN_0206E708
+.extern FUN_0206E70C
+.extern FUN_0206E710
+.extern FUN_0206E7DC
+.extern FUN_0206F0D8
+.extern FUN_0206F1A0
+.extern FUN_0206F1AC
+.extern FUN_0206F1B0
+.extern FUN_0206F1B4
+.extern FUN_0206F1B8
+.extern FUN_0206F1E4
+.extern FUN_0206F1EC
+.extern FUN_020724C4
+.extern FUN_020724C8
+.extern FUN_020724CC
+.extern FUN_020724D0
+.extern FUN_0207C2C4
+.extern FUN_0207C2C8
+.extern FUN_0207C2CC
+.extern FUN_0207C2D0
+.extern FUN_02083114
+.extern FUN_0208315C
+.extern FUN_0222FF68
+.extern FUN_0222FF74
+.extern FUN_0222FF78
+.extern FUN_0222FF88
+.extern FUN_02230014
+.extern FUN_02230188
+.extern FUN_02230214
+.extern FUN_02230218
+.extern FUN_02230260
+.extern FUN_02230290
+.extern FUN_022302BC
+.extern FUN_02230370
+.extern FUN_02230E44
+.extern FUN_02230E54
+.extern FUN_02231238
+.extern FUN_0224C474
+.extern FUN_0225D3EC
+.extern FUN_0225D45C
+.extern FUN_0225D484
+.extern FUN_0225D508
+.extern FUN_0225D5DC
+.extern FUN_0225D648
+.extern FUN_0225D6A4
+.extern FUN_0225D714
+.extern FUN_0225D73C
+.extern FUN_0225D7B8
+.extern FUN_0225D800
+.extern FUN_0225D80C
+.extern FUN_0225D820
+.extern FUN_0225D824
+.extern FUN_02002BD4
+.extern FUN_02002BE4
+.extern FUN_02002BF4
+.extern FUN_02002C04
+.extern FUN_02003914
+.extern FUN_02005EE0
+.extern FUN_02006BDC
+.extern FUN_020073E8
+.extern FUN_02007540
+.extern FUN_02007F34
+.extern FUN_020081B4
+.extern FUN_02008284
+.extern FUN_02008290
+.extern FUN_02008D44
+.extern FUN_02008DDC
+.extern FUN_0200AA14
+.extern FUN_0200B0D4
+.extern FUN_0200BAAC
+.extern FUN_0200BC38
+.extern FUN_0200C344
+.extern FUN_0200C650
+.extern FUN_0200C720
+.extern FUN_0200C750
+.extern FUN_0200C978
+.extern FUN_02011898
+.extern FUN_020119A4
+.extern FUN_02011AC0
+.extern FUN_02012EAC
+.extern FUN_0201C328
+.extern FUN_0201C350
+.extern FUN_0201D568
+.extern FUN_0201D5E8
+.extern FUN_0201D658
+.extern FUN_0201D674
+.extern FUN_020202DC
+.extern FUN_0202502C
+.extern FUN_02033590
+.extern FUN_02033778
+.extern FUN_02061028
+.extern FUN_02066F04
+.extern FUN_02068018
+.extern FUN_0206851C
+.extern FUN_02068538
+.extern FUN_02068640
+.extern FUN_02068654
+.extern FUN_02068698
+.extern FUN_02068734
+.extern FUN_02068FE0
+.extern FUN_02069010
+.extern FUN_02069038
+.extern FUN_020697CC
+.extern FUN_02069AEC
+.extern FUN_02069BE4
+.extern FUN_02069C4C
+.extern FUN_02069CF4
+.extern FUN_02069DC8
+.extern FUN_02069F24
+.extern FUN_0206A014
+.extern FUN_0206A94C
+.extern FUN_0206AA30
+.extern FUN_0206AB04
+.extern FUN_0206AB58
+.extern FUN_0206ACD4
+.extern FUN_0206ADE0
+.extern FUN_0206ADF0
+.extern FUN_0206B244
+.extern FUN_0206B330
+.extern FUN_0206B428
+.extern FUN_0206B87C
+.extern FUN_0206B894
+.extern FUN_0206B8A0
+.extern FUN_0206B8AC
+.extern FUN_0206BAD0
+.extern FUN_0206BB34
+.extern FUN_0206BF90
+.extern FUN_0206BFF0
+.extern FUN_0206C0C8
+.extern FUN_0206C1A0
+.extern FUN_0206C1FC
+.extern FUN_0206C224
+.extern FUN_0206C268
+.extern FUN_0206C294
+.extern FUN_0206C2D4
+.extern FUN_0206C2F8
+.extern FUN_0206C33C
+.extern FUN_0206C364
+.extern FUN_0206C398
+.extern FUN_0206C3F4
+.extern FUN_0206C438
+.extern FUN_0206C46C
+.extern FUN_0206C4C4
+.extern FUN_0206C4F0
+.extern FUN_0206E21C
+.extern FUN_0206E224
+.extern FUN_0206E22C
+.extern FUN_0206E240
+.extern FUN_0206E270
+.extern FUN_0206E2E0
+.extern FUN_0206E2E8
+.extern FUN_0206EAEC
+.extern FUN_0206EB50
+.extern FUN_0206EB78
+.extern FUN_0206EB88
+.extern FUN_0206EBB4
+.extern FUN_0206F1C0
+.extern FUN_020799E8
+.extern FUN_02079A24
+.extern FUN_02087B78
+.extern FUN_021EEF0C
+.extern FUN_021EEF68
+.extern FUN_021EEF84
+.extern FUN_021EEF98
+.extern FUN_021EEF9C
+.extern FUN_021EFBF4
+.extern FUN_021EFD8C
+.extern FUN_021F45A4
+.extern FUN_021F4698
+.extern FUN_021F4A30
+.extern FUN_02211E7C
+.extern FUN_02211F5C
+.extern FUN_02212024
+.extern FUN_02212048
+.extern FUN_02212384
+.extern FUN_022123A0
+.extern FUN_022123B0
+.extern FUN_022156C0
+.extern FUN_0221590C
+.extern FUN_02215918
+.extern FUN_0221594C
+.extern FUN_02215988
+.extern FUN_02215A44
+.extern FUN_022186F0
+.extern FX_ModS32
+.extern MOD08_02228218
+.extern MOD08_02228524
+.extern MOD08_02228570
+.extern MOD08_022285A4
+.extern MOD08_022285B4
+.extern MOD08_02228618
+.extern MOD08_02228AB8
+.extern MOD08_02228AC0
+.extern MOD08_02229918
+.extern MOD08_022299E8
+.extern MOD08_02229A00
+.extern MOD08_02229A2C
+.extern MOD08_02229A5C
+.extern MOD08_02229A80
+.extern MOD08_02229FE4
+.extern MOD08_02229FF0
+.extern MOD08_0222A008
+.extern MOD08_0222A00C
+.extern MOD08_0222A018
+.extern MOD08_0222A024
+.extern MOD08_0222A0D4
+.extern MOD08_0222A110
+.extern MOD08_0222A14C
+.extern MOD08_0222A170
+.extern MOD08_0222A1DC
+.extern MOD08_0222A204
+.extern MOD08_0222A494
+.extern MOD08_0222A568
+.extern MOD08_0222A6A4
diff --git a/arm9/modules/00/asm/module_00_dummy.s b/arm9/modules/00/asm/module_00_dummy.s
new file mode 100644
index 00000000..e8a42167
--- /dev/null
+++ b/arm9/modules/00/asm/module_00_dummy.s
@@ -0,0 +1,2 @@
+ .section .data
+ .space 32
diff --git a/arm9/modules/02/asm/module_02_dummy.s b/arm9/modules/02/asm/module_02_dummy.s
new file mode 100644
index 00000000..e8a42167
--- /dev/null
+++ b/arm9/modules/02/asm/module_02_dummy.s
@@ -0,0 +1,2 @@
+ .section .data
+ .space 32
diff --git a/arm9/modules/03/asm/module_03_dummy.s b/arm9/modules/03/asm/module_03_dummy.s
new file mode 100644
index 00000000..70f9f9c2
--- /dev/null
+++ b/arm9/modules/03/asm/module_03_dummy.s
@@ -0,0 +1,4 @@
+ .section .data
+ .space 32
+ .section .bss
+ .space 32
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index cc439346..c5cb3088 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -62868,9 +62868,1089 @@ _021F5C40:
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD05_021F5C44
+MOD05_021F5C44: ; 0x021F5C44
+ push {r3, r4, r5, lr}
+ add r0, r1, #0
+ mov r1, #0x18
+ add r5, r2, #0
+ bl FUN_020169D8
+ add r4, r0, #0
+ add r2, r4, #0
+ mov r1, #0x18
+ mov r0, #0
+_021F5C58:
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _021F5C58
+ add r0, r5, #0
+ str r5, [r4, #0xc]
+ bl MOD05_021F61B0
+ str r0, [r4, #4]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F5C70
+MOD05_021F5C70: ; 0x021F5C70
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ bl FUN_02046528
+ add r4, r0, #0
+ add r0, r6, #0
+ bl FUN_0204652C
+ add r5, r0, #0
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021F5C8E
+ cmp r0, #1
+ beq _021F5CBA
+ b _021F5D28
+_021F5C8E:
+ ldr r0, [r4, #0x34]
+ bl FUN_02058780
+ mov r0, #0
+ str r0, [r5, #0x10]
+ add r2, r5, #0
+ ldr r1, [r5, #0xc]
+ add r0, r4, #0
+ add r2, #0x10
+ bl FUN_0223BD14
+ str r0, [r5, #8]
+ ldr r1, [r5, #0xc]
+ ldr r2, [r5, #8]
+ add r0, r4, #0
+ bl MOD05_021F5D2C
+ str r0, [r5, #0x14]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021F5D28
+_021F5CBA:
+ ldr r0, [r5, #0x14]
+ bl MOD05_021F5D50
+ cmp r0, #1
+ bne _021F5D28
+ ldr r0, [r5, #0x14]
+ bl MOD05_021F5D5C
+ add r7, r0, #0
+ ldr r0, [r5, #0x14]
+ bl MOD05_021F5D68
+ cmp r7, #1
+ ldr r0, [r5, #0x10]
+ bne _021F5D10
+ ldr r0, [r0, #8]
+ mov r1, #0
+ bl FUN_0206B9B0
+ ldr r2, [r5, #4]
+ add r3, r0, #0
+ lsl r2, r2, #0x10
+ add r0, r4, #0
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl FUN_02061208
+ ldr r0, [r4, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0xa
+ bl FUN_0202A0E8
+ ldr r2, [r5, #0x10]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_02046A20
+ add r0, r5, #0
+ bl FUN_02016A18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021F5D10:
+ cmp r0, #0
+ beq _021F5D18
+ bl FUN_02047964
+_021F5D18:
+ ldr r0, [r4, #0x34]
+ bl FUN_020587B0
+ add r0, r5, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021F5D28:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD05_021F5D2C
+MOD05_021F5D2C: ; 0x021F5D2C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x4c
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD05_021F6074
+ add r1, r0, #0
+ str r5, [r1, #0x20]
+ str r4, [r1, #0x1c]
+ ldr r0, _021F5D4C ; =MOD05_021F5D7C
+ mov r2, #0x80
+ str r6, [r1]
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021F5D4C: .word MOD05_021F5D7C
+
+ thumb_func_start MOD05_021F5D50
+MOD05_021F5D50: ; 0x021F5D50
+ push {r3, lr}
+ bl FUN_0201B6C8
+ ldr r0, [r0, #4]
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F5D5C
+MOD05_021F5D5C: ; 0x021F5D5C
+ push {r3, lr}
+ bl FUN_0201B6C8
+ ldr r0, [r0, #8]
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F5D68
+MOD05_021F5D68: ; 0x021F5D68
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201B6C8
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021F5D7C
+MOD05_021F5D7C: ; 0x021F5D7C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r0, [r5, #0x20]
+ ldr r6, [r0, #0x38]
+ add r0, r6, #0
+ bl FUN_020553A0
+ ldr r7, _021F5DA4 ; =0x021FC9B8
+ add r4, r0, #0
+_021F5D8E:
+ ldr r3, [r5, #0xc]
+ add r0, r5, #0
+ lsl r3, r3, #2
+ ldr r3, [r7, r3]
+ add r1, r6, #0
+ add r2, r4, #0
+ blx r3
+ cmp r0, #0
+ bne _021F5D8E
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021F5DA4: .word 0x021FC9B8
+
+ thumb_func_start MOD05_021F5DA8
+MOD05_021F5DA8: ; 0x021F5DA8
+ push {r3, r4, r5, lr}
+ add r4, r2, #0
+ add r5, r0, #0
+ bl MOD05_021F60C4
+ add r0, r4, #0
+ bl FUN_02058914
+ mov r0, #1
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F5DC0
+MOD05_021F5DC0: ; 0x021F5DC0
+ push {r4, r5, r6, lr}
+ add r6, r2, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ add r4, r1, #0
+ bl FUN_0205AD98
+ cmp r0, #1
+ bne _021F5DF2
+ add r0, r6, #0
+ bl FUN_0205AE50
+ add r0, r4, #0
+ mov r1, #0x20
+ bl MOD05_021E5FD8
+ add r0, r4, #0
+ bl MOD05_021E5FE0
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_02058544
+ mov r0, #2
+ str r0, [r5, #0xc]
+_021F5DF2:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F5DF8
+MOD05_021F5DF8: ; 0x021F5DF8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ cmp r0, #0xa
+ bne _021F5E0E
+ mov r0, #0x65
+ lsl r0, r0, #4
+ bl FUN_020054C8
+_021F5E0E:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0x22
+ bge _021F5E18
+ mov r0, #0
+ pop {r4, pc}
+_021F5E18:
+ ldr r0, [r4]
+ cmp r0, #1
+ bne _021F5E22
+ mov r0, #3
+ b _021F5E24
+_021F5E22:
+ mov r0, #0xc
+_021F5E24:
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x10]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F5E30
+MOD05_021F5E30: ; 0x021F5E30
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201B9EC
+ lsr r1, r0, #0x1f
+ lsl r0, r0, #0x1e
+ sub r0, r0, r1
+ mov r2, #0x1e
+ ror r0, r2
+ add r0, r1, r0
+ add r0, r0, #1
+ add r1, r0, #0
+ mul r1, r2
+ str r1, [r4, #0x14]
+ ldr r0, [r4, #0x1c]
+ lsl r1, r0, #2
+ ldr r0, _021F5E60 ; =0x021FC9AC
+ ldr r0, [r0, r1]
+ str r0, [r4, #0x18]
+ mov r0, #4
+ str r0, [r4, #0xc]
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_021F5E60: .word 0x021FC9AC
+
+ thumb_func_start MOD05_021F5E64
+MOD05_021F5E64: ; 0x021F5E64
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x14]
+ add r4, r2, #0
+ sub r0, r0, #1
+ str r0, [r5, #0x14]
+ bl MOD05_021F6098
+ cmp r0, #1
+ bne _021F5E80
+ mov r0, #0xa
+ str r0, [r5, #0xc]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021F5E80:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ ble _021F5E8A
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021F5E8A:
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02058544
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD05_021E7AC0
+ str r0, [r5, #0x24]
+ mov r0, #5
+ str r0, [r5, #0xc]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F5EA8
+MOD05_021F5EA8: ; 0x021F5EA8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ sub r0, r0, #1
+ str r0, [r4, #0x18]
+ bl MOD05_021F6098
+ cmp r0, #1
+ bne _021F5EC2
+ mov r0, #6
+ str r0, [r4, #0xc]
+ mov r0, #1
+ pop {r4, pc}
+_021F5EC2:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ ble _021F5ECC
+ mov r0, #0
+ pop {r4, pc}
+_021F5ECC:
+ mov r0, #0xb
+ str r0, [r4, #0xc]
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021F5ED4
+MOD05_021F5ED4: ; 0x021F5ED4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x24]
+ add r4, r2, #0
+ bl FUN_02064520
+ mov r0, #0
+ str r0, [r5, #0x24]
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02058544
+ mov r0, #0
+ str r0, [r5, #0x10]
+ mov r1, #7
+ str r1, [r5, #0xc]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F5EF8
+MOD05_021F5EF8: ; 0x021F5EF8
+ push {r3, lr}
+ ldr r1, [r0, #0x10]
+ add r1, r1, #1
+ str r1, [r0, #0x10]
+ cmp r1, #0xf
+ ble _021F5F12
+ mov r1, #0
+ str r1, [r0, #0x10]
+ mov r1, #8
+ str r1, [r0, #0xc]
+ mov r1, #0x39
+ bl MOD05_021F6140
+_021F5F12:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F5F18
+MOD05_021F5F18: ; 0x021F5F18
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD05_021F617C
+ cmp r0, #0
+ bne _021F5F28
+ mov r0, #0
+ pop {r4, pc}
+_021F5F28:
+ mov r0, #9
+ str r0, [r4, #0xc]
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021F5F30
+MOD05_021F5F30: ; 0x021F5F30
+ mov r2, #1
+ str r2, [r0, #8]
+ mov r1, #0xf
+ str r1, [r0, #0xc]
+ add r0, r2, #0
+ bx lr
+
+ thumb_func_start MOD05_021F5F3C
+MOD05_021F5F3C: ; 0x021F5F3C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r2, #0
+ mov r1, #0
+ bl FUN_02058544
+ add r0, r4, #0
+ mov r1, #0x38
+ bl MOD05_021F6140
+ mov r0, #0x10
+ str r0, [r4, #0x10]
+ mov r0, #0xe
+ str r0, [r4, #0xc]
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021F5F5C
+MOD05_021F5F5C: ; 0x021F5F5C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r2, #0
+ mov r1, #0
+ bl FUN_02058544
+ add r0, r4, #0
+ mov r1, #0x37
+ bl MOD05_021F6140
+ mov r0, #0x10
+ str r0, [r4, #0x10]
+ mov r0, #0xe
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x20]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x49
+ bl FUN_0202A0E8
+ ldr r0, [r4, #0x1c]
+ bl MOD05_021F61B0
+ add r2, r0, #0
+ mov r1, #0
+ ldr r0, [r4, #0x20]
+ add r3, r1, #0
+ bl FUN_02061208
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021F5F9C
+MOD05_021F5F9C: ; 0x021F5F9C
+ mov r1, #0x78
+ str r1, [r0, #0x10]
+ mov r1, #0xd
+ str r1, [r0, #0xc]
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD05_021F5FA8
+MOD05_021F5FA8: ; 0x021F5FA8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x10]
+ add r4, r2, #0
+ sub r0, r0, #1
+ str r0, [r5, #0x10]
+ bl MOD05_021F6098
+ cmp r0, #1
+ bne _021F5FC4
+ mov r0, #0xa
+ str r0, [r5, #0xc]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021F5FC4:
+ ldr r0, [r5, #0x10]
+ cmp r0, #0
+ beq _021F5FCE
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021F5FCE:
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02058544
+ add r0, r5, #0
+ mov r1, #0x36
+ bl MOD05_021F6140
+ mov r0, #0x10
+ str r0, [r5, #0x10]
+ mov r0, #0xe
+ str r0, [r5, #0xc]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F5FEC
+MOD05_021F5FEC: ; 0x021F5FEC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x10]
+ add r1, r1, #1
+ str r1, [r4, #0x10]
+ cmp r1, #0x10
+ bge _021F5FFE
+ mov r0, #0
+ pop {r4, pc}
+_021F5FFE:
+ mov r1, #0x10
+ str r1, [r4, #0x10]
+ bl MOD05_021F617C
+ cmp r0, #0
+ bne _021F600E
+ mov r0, #0
+ pop {r4, pc}
+_021F600E:
+ mov r0, #0xf
+ str r0, [r4, #0xc]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F6018
+MOD05_021F6018: ; 0x021F6018
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x24]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _021F602C
+ bl FUN_02064520
+ mov r0, #0
+ str r0, [r5, #0x24]
+_021F602C:
+ add r0, r5, #0
+ bl MOD05_021F60FC
+ add r0, r4, #0
+ bl FUN_020553C4
+ bl FUN_02055648
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD05_021E5FD8
+ add r0, r4, #0
+ bl MOD05_021E5FE0
+ mov r0, #0
+ str r0, [r5, #0x10]
+ mov r0, #0x10
+ str r0, [r5, #0xc]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F6058
+MOD05_021F6058: ; 0x021F6058
+ ldr r1, [r0, #0x10]
+ add r1, r1, #1
+ str r1, [r0, #0x10]
+ cmp r1, #2
+ ble _021F6066
+ mov r1, #0x11
+ str r1, [r0, #0xc]
+_021F6066:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD05_021F606C
+MOD05_021F606C: ; 0x021F606C
+ mov r1, #1
+ str r1, [r0, #4]
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD05_021F6074
+MOD05_021F6074: ; 0x021F6074
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #4
+ add r1, r5, #0
+ bl FUN_020169D8
+ add r4, r0, #0
+ bne _021F6088
+ bl ErrorHandling
+_021F6088:
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r5, #0
+ bl Call_FillMemWithValue
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F6098
+MOD05_021F6098: ; 0x021F6098
+ ldr r0, _021F60A8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r1, r0
+ bne _021F60A4
+ mov r0, #0
+_021F60A4:
+ bx lr
+ nop
+_021F60A8: .word 0x021C48B8
+
+ thumb_func_start MOD05_021F60AC
+MOD05_021F60AC: ; 0x021F60AC
+ ldr r0, _021F60C0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021F60BA
+ mov r0, #1
+ bx lr
+_021F60BA:
+ mov r0, #0
+ bx lr
+ nop
+_021F60C0: .word 0x021C48B8
+
+ thumb_func_start MOD05_021F60C4
+MOD05_021F60C4: ; 0x021F60C4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ mov r1, #0x1a
+ mov r2, #0xc7
+ mov r3, #4
+ bl FUN_0200A86C
+ str r0, [r4, #0x48]
+ mov r0, #1
+ lsl r0, r0, #0xa
+ mov r1, #4
+ bl FUN_020219F4
+ str r0, [r4, #0x2c]
+ mov r0, #1
+ lsl r0, r0, #0xa
+ mov r1, #4
+ bl FUN_020219F4
+ str r0, [r4, #0x30]
+ mov r0, #8
+ mov r1, #0x40
+ mov r2, #4
+ bl FUN_0200AA90
+ str r0, [r4, #0x34]
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021F60FC
+MOD05_021F60FC: ; 0x021F60FC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x2c]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x30]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x48]
+ bl FUN_0200A8B8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F611C
+MOD05_021F611C: ; 0x021F611C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r4, [r5, #0x20]
+ add r1, r5, #0
+ ldr r0, [r4, #8]
+ add r1, #0x38
+ mov r2, #3
+ bl FUN_020545B8
+ ldr r0, [r4, #0xc]
+ bl LoadPlayerDataAddress
+ add r5, #0x38
+ add r1, r0, #0
+ add r0, r5, #0
+ bl FUN_02054608
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD05_021F6140
+MOD05_021F6140: ; 0x021F6140
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ bl MOD05_021F611C
+ ldr r0, [r5, #0x48]
+ ldr r2, [r5, #0x30]
+ add r1, r6, #0
+ ldr r4, [r5, #0x20]
+ bl FUN_0200A8E0
+ ldr r0, [r5, #0x34]
+ ldr r1, [r5, #0x2c]
+ ldr r2, [r5, #0x30]
+ bl FUN_0200B7B8
+ ldr r0, [r4, #0xc]
+ bl LoadPlayerDataAddress
+ add r2, r0, #0
+ add r0, r5, #0
+ ldr r1, [r5, #0x2c]
+ add r0, #0x38
+ mov r3, #1
+ bl FUN_02054658
+ add r5, #0x28
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F617C
+MOD05_021F617C: ; 0x021F617C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x28
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #1
+ bne _021F61AA
+ bl MOD05_021F60AC
+ cmp r0, #1
+ bne _021F61AA
+ add r0, r4, #0
+ add r0, #0x38
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r4, #0x38
+ add r0, r4, #0
+ bl FUN_02019178
+ mov r0, #1
+ pop {r4, pc}
+_021F61AA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F61B0
+MOD05_021F61B0: ; 0x021F61B0
+ push {r3, lr}
+ cmp r0, #0
+ beq _021F61C2
+ cmp r0, #1
+ beq _021F61C6
+ cmp r0, #2
+ beq _021F61CA
+ bl ErrorHandling
+_021F61C2:
+ ldr r0, _021F61D0 ; =0x000001BD
+ pop {r3, pc}
+_021F61C6:
+ ldr r0, _021F61D4 ; =0x000001BE
+ pop {r3, pc}
+_021F61CA:
+ ldr r0, _021F61D8 ; =0x000001BF
+ pop {r3, pc}
+ nop
+_021F61D0: .word 0x000001BD
+_021F61D4: .word 0x000001BE
+_021F61D8: .word 0x000001BF
+
+ thumb_func_start MOD05_021F61DC
+MOD05_021F61DC: ; 0x021F61DC
+ lsl r1, r0, #2
+ ldr r0, _021F61E4 ; =0x021FCA00
+ ldrh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_021F61E4: .word 0x021FCA00
+
+ thumb_func_start MOD05_021F61E8
+MOD05_021F61E8: ; 0x021F61E8
+ lsl r1, r0, #2
+ ldr r0, _021F61F0 ; =0x021FCA02
+ ldrh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_021F61F0: .word 0x021FCA02
+
+ thumb_func_start MOD05_021F61F4
+MOD05_021F61F4: ; 0x021F61F4
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #0x34
+ bl FUN_020169D8
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x34
+ bl Call_FillMemWithValue
+ str r6, [r4]
+ mov r0, #0
+ str r0, [r4, #0xc]
+ str r5, [r4, #0x2c]
+ ldr r0, [r5, #0x20]
+ str r0, [r4, #0x30]
+ bl FUN_0201F010
+ str r0, [r4, #0x10]
+ str r0, [r4, #0x20]
+ ldr r0, _021F622C ; =MOD05_021F6270
+ ldr r2, _021F6230 ; =0x0000FFFF
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021F622C: .word MOD05_021F6270
+_021F6230: .word 0x0000FFFF
+
+ thumb_func_start MOD05_021F6234
+MOD05_021F6234: ; 0x021F6234
+ push {r3, lr}
+ bl FUN_0201B6C8
+ ldr r0, [r0, #8]
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F6240
+MOD05_021F6240: ; 0x021F6240
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201B6C8
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021F6254
+MOD05_021F6254: ; 0x021F6254
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_0201B6C8
+ mov r1, #0
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ str r5, [r0, #0xc]
+ str r4, [r0, #0x14]
+ str r6, [r0, #0x1c]
+ str r1, [r0, #0x24]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD05_021F6270
+MOD05_021F6270: ; 0x021F6270
+ push {r3, lr}
+ add r0, r1, #0
+ ldr r1, [r1, #0xc]
+ lsl r2, r1, #2
+ ldr r1, _021F6280 ; =0x021FD1B8
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ .align 2, 0
+_021F6280: .word 0x021FD1B8
+
+ thumb_func_start MOD05_021F6284
+MOD05_021F6284: ; 0x021F6284
+ mov r1, #1
+ str r1, [r0, #8]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD05_021F628C
+MOD05_021F628C: ; 0x021F628C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ beq _021F629C
+ cmp r1, #1
+ beq _021F62A6
+ pop {r4, pc}
+_021F629C:
+ bl MOD05_021F630C
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021F62A6:
+ add r0, r4, #0
+ bl MOD05_021F633C
+ cmp r0, #1
+ bne _021F62BA
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ str r0, [r4, #8]
+_021F62BA:
+ add r0, r4, #0
+ bl MOD05_021F62FC
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F62C4
+MOD05_021F62C4: ; 0x021F62C4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ beq _021F62D4
+ cmp r1, #1
+ beq _021F62DE
+ pop {r4, pc}
+_021F62D4:
+ bl MOD05_021F6324
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021F62DE:
+ add r0, r4, #0
+ bl MOD05_021F633C
+ cmp r0, #1
+ bne _021F62F2
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ str r0, [r4, #8]
+_021F62F2:
+ add r0, r4, #0
+ bl MOD05_021F62FC
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD05_021F62FC
+MOD05_021F62FC: ; 0x021F62FC
+ ldr r3, _021F6308 ; =0x0201EFE1
+ add r1, r0, #0
+ ldr r0, [r1, #0x20]
+ ldr r1, [r1, #0x30]
+ bx r3
+ nop
+_021F6308: .word 0x0201EFE1
+
+ thumb_func_start MOD05_021F630C
+MOD05_021F630C: ; 0x021F630C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ ldr r1, [r4, #0x1c]
+ bl _s32_div_f
+ str r0, [r4, #0x28]
+ ldr r1, [r4, #0x20]
+ ldr r0, [r4, #0x14]
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021F6324
+MOD05_021F6324: ; 0x021F6324
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x20]
+ sub r0, r1, r0
+ ldr r1, [r4, #0x1c]
+ bl _s32_div_f
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x10]
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021F633C
+MOD05_021F633C: ; 0x021F633C
+ ldr r2, [r0, #0x20]
+ ldr r1, [r0, #0x28]
+ add r1, r2, r1
+ str r1, [r0, #0x20]
+ ldr r1, [r0, #0x24]
+ add r2, r1, #1
+ str r2, [r0, #0x24]
+ ldr r1, [r0, #0x1c]
+ cmp r2, r1
+ blo _021F635A
+ str r1, [r0, #0x24]
+ ldr r1, [r0, #0x18]
+ str r1, [r0, #0x20]
+ mov r0, #1
+ bx lr
+_021F635A:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD05_021F6360
+MOD05_021F6360: ; 0x021F6360
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ bl FUN_02046528
+ str r0, [sp]
+ add r0, r7, #0
+ bl FUN_0204652C
+ add r6, r0, #0
+ add r0, r7, #0
+ bl FUN_02046530
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r5, [r6, #4]
+ cmp r0, #5
+ bhi _021F6424
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021F638E: ; jump table
+ .short _021F639A - _021F638E - 2 ; case 0
+ .short _021F63AC - _021F638E - 2 ; case 1
+ .short _021F63CC - _021F638E - 2 ; case 2
+ .short _021F63EA - _021F638E - 2 ; case 3
+ .short _021F6402 - _021F638E - 2 ; case 4
+ .short _021F6414 - _021F638E - 2 ; case 5
+_021F639A:
+ mov r0, #0xb
+ mov r1, #8
+ bl FUN_020169D8
+ str r0, [r6, #4]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021F6424
+_021F63AC:
+ bl MOD05_021F57EC
+ add r6, r0, #0
+ mov r0, #0xb
+ add r1, r6, #0
+ bl FUN_020169D8
+ str r0, [r5, #4]
+ mov r1, #0
+ add r2, r6, #0
+ bl Call_FillMemWithValue
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021F6424
+_021F63CC:
+ ldr r0, [sp]
+ ldr r0, [r0, #0x38]
+ bl FUN_020553E8
+ add r3, r0, #0
+ ldr r0, [sp]
+ ldr r2, [r6]
+ mov r1, #0
+ bl FUN_0224666C
+ str r0, [r5]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021F6424
+_021F63EA:
+ ldr r0, [r5]
+ bl FUN_022466A0
+ cmp r0, #0
+ beq _021F6424
+ ldr r0, [r5]
+ bl FUN_022466AC
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021F6424
+_021F6402:
+ ldr r1, _021F6428 ; =MOD05_021F57F0
+ ldr r2, [r5, #4]
+ add r0, r7, #0
+ bl FUN_0204640C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021F6424
+_021F6414:
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021F6424:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021F6428: .word MOD05_021F57F0
+
.section .data
- ; 0x021F5C44
- .incbin "baserom.nds", 0x163B64, 0x7A3C
+ ; 0x021F642C
+ .incbin "baserom.nds", 0x16434c, 0x7254
.section .bss
; 0x021FD680
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index cccb02ee..ac7d6b48 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -11,7 +11,7 @@ MOD06_022396A0: ; 0x022396A0
add r4, r2, #0
add r6, r3, #0
str r1, [r5]
- bl FUN_0223972C
+ bl MOD06_0223972C
mov r0, #0
str r0, [r5, #0x38]
str r4, [r5, #0x30]
@@ -19,8 +19,8 @@ MOD06_022396A0: ; 0x022396A0
pop {r4, r5, r6, pc}
.align 2, 0
- thumb_func_start FUN_022396BC
-FUN_022396BC: ; 0x022396BC
+ thumb_func_start MOD06_022396BC
+MOD06_022396BC: ; 0x022396BC
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #0x38]
@@ -40,7 +40,7 @@ _022396D2: ; jump table
.short _02239708 - _022396D2 - 2 ; case 4
.short _02239712 - _022396D2 - 2 ; case 5
_022396DE:
- bl FUN_022397F4
+ bl MOD06_022397F4
ldr r0, [r4, #0x38]
add r0, r0, #1
str r0, [r4, #0x38]
@@ -48,28 +48,28 @@ _022396DE:
_022396EA:
ldr r0, [r4, #0x30]
ldr r1, [r4, #0x34]
- bl FUN_0223987C
+ bl MOD06_0223987C
str r0, [r4, #0x2c]
ldr r0, [r4, #0x38]
add r0, r0, #1
str r0, [r4, #0x38]
pop {r4, pc}
_022396FC:
- bl FUN_022398A8
+ bl MOD06_022398A8
ldr r0, [r4, #0x38]
add r0, r0, #1
str r0, [r4, #0x38]
pop {r4, pc}
_02239708:
- bl FUN_02239808
+ bl MOD06_02239808
ldr r0, [r4, #0x38]
add r0, r0, #1
str r0, [r4, #0x38]
_02239712:
pop {r4, pc}
- thumb_func_start FUN_02239714
-FUN_02239714: ; 0x02239714
+ thumb_func_start MOD06_02239714
+MOD06_02239714: ; 0x02239714
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x38]
@@ -81,13 +81,13 @@ _02239722:
str r0, [r4, #0x38]
pop {r4, pc}
- thumb_func_start FUN_02239728
-FUN_02239728: ; 0x02239728
+ thumb_func_start MOD06_02239728
+MOD06_02239728: ; 0x02239728
ldr r0, [r0, #0x38]
bx lr
- thumb_func_start FUN_0223972C
-FUN_0223972C: ; 0x0223972C
+ thumb_func_start MOD06_0223972C
+MOD06_0223972C: ; 0x0223972C
push {r4, lr}
add r4, r0, #0
bl GX_GetBankForBGExtPltt_2
@@ -113,8 +113,8 @@ FUN_0223972C: ; 0x0223972C
pop {r4, pc}
.align 2, 0
- thumb_func_start FUN_02239770
-FUN_02239770: ; 0x02239770
+ thumb_func_start MOD06_02239770
+MOD06_02239770: ; 0x02239770
push {r4, lr}
sub sp, #0x28
ldr r4, _0223978C ; =0x0224F1F4
@@ -132,8 +132,8 @@ _0223977A:
.align 2, 0
_0223978C: .word 0x0224F1F4
- thumb_func_start FUN_02239790
-FUN_02239790: ; 0x02239790
+ thumb_func_start MOD06_02239790
+MOD06_02239790: ; 0x02239790
push {r4, r5, lr}
sub sp, #0x2c
ldr r5, _022397EC ; =0x0224F180
@@ -178,49 +178,49 @@ FUN_02239790: ; 0x02239790
_022397EC: .word 0x0224F180
_022397F0: .word 0x0224F1D8
- thumb_func_start FUN_022397F4
-FUN_022397F4: ; 0x022397F4
- ldr r3, _02239800 ; =FUN_0200CA98
+ thumb_func_start MOD06_022397F4
+MOD06_022397F4: ; 0x022397F4
+ ldr r3, _02239800 ; =0x0200CA99
mov r2, #1
add r1, r0, #0
- ldr r0, _02239804 ; =FUN_0223981C
+ ldr r0, _02239804 ; =MOD06_0223981C
lsl r2, r2, #0xa
bx r3
.align 2, 0
-_02239800: .word FUN_0200CA98
-_02239804: .word FUN_0223981C
+_02239800: .word 0x0200CA99
+_02239804: .word MOD06_0223981C
- thumb_func_start FUN_02239808
-FUN_02239808: ; 0x02239808
- ldr r3, _02239814 ; =FUN_0200CA98
+ thumb_func_start MOD06_02239808
+MOD06_02239808: ; 0x02239808
+ ldr r3, _02239814 ; =0x0200CA99
mov r2, #1
add r1, r0, #0
- ldr r0, _02239818 ; =FUN_02239840
+ ldr r0, _02239818 ; =MOD06_02239840
lsl r2, r2, #0xa
bx r3
.align 2, 0
-_02239814: .word FUN_0200CA98
-_02239818: .word FUN_02239840
+_02239814: .word 0x0200CA99
+_02239818: .word MOD06_02239840
- thumb_func_start FUN_0223981C
-FUN_0223981C: ; 0x0223981C
+ thumb_func_start MOD06_0223981C
+MOD06_0223981C: ; 0x0223981C
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
- bl FUN_02239770
+ bl MOD06_02239770
ldr r0, [r4]
ldr r0, [r0, #8]
- bl FUN_02239864
+ bl MOD06_02239864
ldr r0, [r4]
ldr r0, [r0, #8]
- bl FUN_02239790
+ bl MOD06_02239790
add r0, r5, #0
bl FUN_0200CAB4
pop {r3, r4, r5, pc}
.align 2, 0
- thumb_func_start FUN_02239840
-FUN_02239840: ; 0x02239840
+ thumb_func_start MOD06_02239840
+MOD06_02239840: ; 0x02239840
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
@@ -228,23 +228,23 @@ FUN_02239840: ; 0x02239840
bl FUN_0201E66C
ldr r0, [r4]
ldr r0, [r0, #8]
- bl FUN_02239864
+ bl MOD06_02239864
ldr r0, [r4]
ldr r0, [r0, #8]
- bl FUN_0223986C
+ bl MOD06_0223986C
add r0, r5, #0
bl FUN_0200CAB4
pop {r3, r4, r5, pc}
- thumb_func_start FUN_02239864
-FUN_02239864: ; 0x02239864
- ldr r3, _02239868 ; =FUN_021D7A28
+ thumb_func_start MOD06_02239864
+MOD06_02239864: ; 0x02239864
+ ldr r3, _02239868 ; =0x021D7A29
bx r3
.align 2, 0
-_02239868: .word FUN_021D7A28 + 1 ; TODO: disassemble the module that defines this
+_02239868: .word 0x021D7A29
- thumb_func_start FUN_0223986C
-FUN_0223986C: ; 0x0223986C
+ thumb_func_start MOD06_0223986C
+MOD06_0223986C: ; 0x0223986C
push {r3, lr}
bl FUN_021D7A20
mov r0, #1
@@ -252,8 +252,8 @@ FUN_0223986C: ; 0x0223986C
bl FUN_0201E6E4
pop {r3, pc}
- thumb_func_start FUN_0223987C
-FUN_0223987C: ; 0x0223987C
+ thumb_func_start MOD06_0223987C
+MOD06_0223987C: ; 0x0223987C
push {r3, r4, r5, r6, lr}
sub sp, #0x2c
ldr r6, _022398A4 ; =0x0224F21C
@@ -277,21 +277,44200 @@ _0223988A:
.align 2, 0
_022398A4: .word 0x0224F21C
- thumb_func_start FUN_022398A8
-FUN_022398A8: ; 0x022398A8
- ldr r3, _022398B4 ; =FUN_0200CA98
+ thumb_func_start MOD06_022398A8
+MOD06_022398A8: ; 0x022398A8
+ ldr r3, _022398B4 ; =0x0200CA99
mov r2, #1
add r1, r0, #0
- ldr r0, _022398B8 ; =0x022398BD
+ ldr r0, _022398B8 ; =MOD06_022398BC
lsl r2, r2, #0xa
bx r3
.align 2, 0
-_022398B4: .word FUN_0200CA98
-_022398B8: .word 0x022398BD
+_022398B4: .word 0x0200CA99
+_022398B8: .word MOD06_022398BC
+
+ thumb_func_start MOD06_022398BC
+MOD06_022398BC: ; 0x022398BC
+ push {r4, lr}
+ add r1, #0x2c
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ mov r2, #0
+ add r3, r1, #0
+ bl FUN_021E8698
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022398D8
+MOD06_022398D8: ; 0x022398D8
+ push {r4, lr}
+ ldr r0, [r0, #0x34]
+ add r4, r2, #0
+ bl FUN_02058060
+ cmp r4, #1
+ bne _022398F0
+ mov r1, #1
+ lsl r1, r1, #0x14
+ bl FUN_02058410
+ pop {r4, pc}
+_022398F0:
+ mov r1, #1
+ lsl r1, r1, #0x14
+ bl FUN_02058418
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022398FC
+MOD06_022398FC: ; 0x022398FC
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02046528
+ add r0, r4, #0
+ bl FUN_0204652C
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _02239918
+ cmp r0, #1
+ beq _02239930
+ b _02239940
+_02239918:
+ ldr r0, [r4]
+ bl MOD06_0223A4E0
+ ldr r0, [r4]
+ bl MOD06_0223A5B0
+ cmp r0, #1
+ bne _02239940
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02239940
+_02239930:
+ ldr r0, [r4]
+ bl MOD06_0223A44C
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r4, pc}
+_02239940:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02239944
+MOD06_02239944: ; 0x02239944
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r0, #0
+ bl FUN_02046528
+ add r4, r0, #0
+ mov r0, #4
+ mov r1, #0x10
+ bl FUN_02016998
+ add r5, r0, #0
+ add r2, r5, #0
+ mov r1, #0x10
+ mov r0, #0
+_02239960:
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _02239960
+ mov r0, #4
+ bl MOD06_0223A428
+ str r0, [r5]
+ mov r1, #0x10
+ str r1, [sp]
+ ldr r0, [r4, #0x20]
+ lsl r1, r1, #9
+ str r0, [sp, #4]
+ ldr r0, [r5]
+ mov r2, #0
+ mov r3, #1
+ bl MOD06_0223A460
+ ldr r1, _02239994 ; =MOD06_022398FC
+ add r0, r6, #0
+ add r2, r5, #0
+ bl FUN_0204640C
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_02239994: .word MOD06_022398FC
+
+ thumb_func_start MOD06_02239998
+MOD06_02239998: ; 0x02239998
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD06_0223A63C
+ add r4, r0, #0
+ ldr r0, [r5]
+ bl MOD06_0223A638
+ ldr r1, [r5, #8]
+ cmp r1, r0
+ beq _022399C4
+ mov r1, #2
+ str r0, [r5, #8]
+ add r0, r4, #0
+ lsl r1, r1, #0xe
+ bl FX_Div
+ sub r1, r4, r0
+ ldr r0, [r5]
+ bl MOD06_0223A640
+_022399C4:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022399C8
+MOD06_022399C8: ; 0x022399C8
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02046528
+ add r0, r4, #0
+ bl FUN_0204652C
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #7
+ bhi _02239AA4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022399EA: ; jump table
+ .short _022399FA - _022399EA - 2 ; case 0
+ .short _02239A0A - _022399EA - 2 ; case 1
+ .short _02239A1E - _022399EA - 2 ; case 2
+ .short _02239A36 - _022399EA - 2 ; case 3
+ .short _02239A60 - _022399EA - 2 ; case 4
+ .short _02239A72 - _022399EA - 2 ; case 5
+ .short _02239A84 - _022399EA - 2 ; case 6
+ .short _02239A94 - _022399EA - 2 ; case 7
+_022399FA:
+ mov r0, #0
+ mov r1, #1
+ bl FUN_020053CC
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02239AA4
+_02239A0A:
+ bl FUN_02005404
+ cmp r0, #0
+ bne _02239AA4
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x10
+ str r0, [r4, #4]
+ b _02239AA4
+_02239A1E:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ cmp r0, #0
+ bgt _02239AA4
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, _02239AA8 ; =0x0000065C
+ bl FUN_020054C8
+ b _02239AA4
+_02239A36:
+ ldr r0, [r4]
+ bl MOD06_0223A4E0
+ add r0, r4, #0
+ bl MOD06_02239998
+ ldr r0, [r4]
+ bl MOD06_0223A5B0
+ cmp r0, #1
+ bne _02239AA4
+ ldr r0, _02239AA8 ; =0x0000065C
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x10
+ str r0, [r4, #4]
+ b _02239AA4
+_02239A60:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ cmp r0, #0
+ bgt _02239AA4
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02239AA4
+_02239A72:
+ mov r0, #0x7f
+ mov r1, #0x10
+ mov r2, #0
+ bl FUN_0200538C
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02239AA4
+_02239A84:
+ bl FUN_02005404
+ cmp r0, #0
+ bne _02239AA4
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02239AA4
+_02239A94:
+ ldr r0, [r4]
+ bl MOD06_0223A44C
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r4, pc}
+_02239AA4:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02239AA8: .word 0x0000065C
+
+ thumb_func_start MOD06_02239AAC
+MOD06_02239AAC: ; 0x02239AAC
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r0, #0
+ bl FUN_02046528
+ add r4, r0, #0
+ mov r0, #4
+ mov r1, #0x10
+ bl FUN_02016998
+ add r5, r0, #0
+ add r2, r5, #0
+ mov r1, #0x10
+ mov r0, #0
+_02239AC8:
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _02239AC8
+ mov r0, #4
+ bl MOD06_0223A428
+ str r0, [r5]
+ mov r0, #0x18
+ str r0, [sp]
+ ldr r0, [r4, #0x20]
+ mov r1, #1
+ str r0, [sp, #4]
+ ldr r0, [r5]
+ lsl r1, r1, #0xe
+ mov r2, #0
+ mov r3, #1
+ bl MOD06_0223A460
+ ldr r0, [r5]
+ bl MOD06_0223A638
+ str r0, [r5, #8]
+ ldr r1, _02239B04 ; =MOD06_022399C8
+ add r0, r6, #0
+ add r2, r5, #0
+ bl FUN_0204640C
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02239B04: .word MOD06_022399C8
+
+ thumb_func_start MOD06_02239B08
+MOD06_02239B08: ; 0x02239B08
+ push {r3, r4, r5, lr}
+ add r4, r2, #0
+ add r5, r1, #0
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x74
+ bl Call_FillMemWithValue
+ mov r0, #4
+ add r1, r5, #0
+ bl MOD06_0223AC78
+ str r0, [r4, #0x44]
+ mov r0, #4
+ bl MOD06_0223A428
+ str r0, [r4, #0x48]
+ mov r0, #4
+ bl MOD06_0223A644
+ str r0, [r4, #0x4c]
+ mov r0, #0
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_02239B38
+MOD06_02239B38: ; 0x02239B38
+ push {r4, lr}
+ add r4, r2, #0
+ ldr r0, [r4, #0x44]
+ bl MOD06_0223ACC0
+ ldr r0, [r4, #0x50]
+ bl MOD06_0223B8C0
+ ldr r0, [r4, #0x48]
+ bl MOD06_0223A44C
+ ldr r0, [r4, #0x4c]
+ bl MOD06_0223A660
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02239B58
+MOD06_02239B58: ; 0x02239B58
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ ldr r0, [r4]
+ add r5, r1, #0
+ cmp r0, #0xb
+ bhi _02239BB0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02239B70: ; jump table
+ .short _02239B88 - _02239B70 - 2 ; case 0
+ .short _02239B9C - _02239B70 - 2 ; case 1
+ .short _02239BBA - _02239B70 - 2 ; case 2
+ .short _02239BCE - _02239B70 - 2 ; case 3
+ .short _02239BEC - _02239B70 - 2 ; case 4
+ .short _02239C16 - _02239B70 - 2 ; case 5
+ .short _02239C46 - _02239B70 - 2 ; case 6
+ .short _02239C56 - _02239B70 - 2 ; case 7
+ .short _02239C72 - _02239B70 - 2 ; case 8
+ .short _02239C86 - _02239B70 - 2 ; case 9
+ .short _02239CA0 - _02239B70 - 2 ; case 10
+ .short _02239CBA - _02239B70 - 2 ; case 11
+_02239B88:
+ add r0, r4, #0
+ mov r2, #8
+ add r0, #8
+ add r3, r2, #0
+ bl MOD06_022396A0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02239CBA
+_02239B9C:
+ add r0, r4, #0
+ add r0, #8
+ bl MOD06_022396BC
+ add r0, r4, #0
+ add r0, #8
+ bl MOD06_02239728
+ cmp r0, #2
+ beq _02239BB2
+_02239BB0:
+ b _02239CBA
+_02239BB2:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02239CBA
+_02239BBA:
+ ldr r0, [r4, #0x44]
+ mov r1, #5
+ bl MOD06_0223ACD8
+ mov r0, #0xf0
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02239CBA
+_02239BCE:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ bpl _02239CBA
+ add r0, r4, #0
+ ldr r1, [r4, #0x48]
+ ldr r2, [r4, #0x4c]
+ ldr r3, [r5, #0x20]
+ add r0, #0x54
+ bl MOD06_02239D18
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02239CBA
+_02239BEC:
+ add r0, r4, #0
+ add r0, #0x54
+ bl MOD06_02239D2C
+ add r5, r0, #0
+ ldr r0, [r4, #0x44]
+ bl MOD06_0223AD10
+ cmp r5, #1
+ bne _02239CBA
+ cmp r0, #1
+ bne _02239CBA
+ add r0, r4, #0
+ ldr r1, [r4, #0x4c]
+ add r0, #0x68
+ bl MOD06_02239E60
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02239CBA
+_02239C16:
+ add r0, r4, #0
+ add r0, #0x68
+ bl MOD06_02239E6C
+ add r6, r0, #0
+ ldr r0, [r4, #0x68]
+ cmp r0, #3
+ bne _02239C3A
+ ldr r0, [r4, #0x70]
+ bl MOD06_0223A748
+ cmp r0, #0xd
+ bne _02239C3A
+ mov r0, #4
+ add r1, r5, #0
+ bl MOD06_0223B828
+ str r0, [r4, #0x50]
+_02239C3A:
+ cmp r6, #1
+ bne _02239CBA
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02239CBA
+_02239C46:
+ add r0, r4, #0
+ add r0, #8
+ bl MOD06_02239714
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02239CBA
+_02239C56:
+ add r0, r4, #0
+ add r0, #8
+ bl MOD06_022396BC
+ add r0, r4, #0
+ add r0, #8
+ bl MOD06_02239728
+ cmp r0, #5
+ bne _02239CBA
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02239CBA
+_02239C72:
+ ldr r0, [r4, #0x50]
+ mov r1, #5
+ bl MOD06_0223B8EC
+ mov r0, #0x48
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02239CBA
+_02239C86:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ cmp r0, #0
+ bgt _02239CA0
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #1
+ bl MOD06_022398D8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02239CA0:
+ ldr r0, [r4, #0x50]
+ bl MOD06_0223B924
+ cmp r0, #1
+ bne _02239CBA
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl MOD06_022398D8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02239CBA:
+ ldr r0, [r4, #0x44]
+ bl MOD06_0223AD24
+ ldr r0, [r4, #0x48]
+ bl MOD06_0223A4E0
+ ldr r0, [r4, #0x4c]
+ bl MOD06_0223A6DC
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02239CD0
+MOD06_02239CD0: ; 0x02239CD0
+ push {r4, lr}
+ add r4, r2, #0
+ ldr r0, [r4, #0x44]
+ bl MOD06_0223AD9C
+ ldr r0, [r4, #0x50]
+ cmp r0, #0
+ beq _02239CE4
+ bl MOD06_0223B93C
+_02239CE4:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02239CE8
+MOD06_02239CE8: ; 0x02239CE8
+ ldr r0, [r0, #4]
+ ldr r3, _02239CF4 ; =0x021D8025
+ ldr r0, [r0, #4]
+ ldr r1, _02239CF8 ; =0x0224F1C0
+ bx r3
+ nop
+_02239CF4: .word 0x021D8025
+_02239CF8: .word 0x0224F1C0
+
+ thumb_func_start MOD06_02239CFC
+MOD06_02239CFC: ; 0x02239CFC
+ ldr r3, _02239D00 ; =0x021D80A5
+ bx r3
+ .align 2, 0
+_02239D00: .word 0x021D80A5
+
+ thumb_func_start MOD06_02239D04
+MOD06_02239D04: ; 0x02239D04
+ push {r3, lr}
+ bl FUN_021D80E4
+ ldr r0, [r0]
+ cmp r0, #0xb
+ bne _02239D14
+ mov r0, #1
+ pop {r3, pc}
+_02239D14:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD06_02239D18
+MOD06_02239D18: ; 0x02239D18
+ push {r3, r4}
+ mov r4, #0
+ str r4, [r0]
+ str r4, [r0, #4]
+ str r1, [r0, #8]
+ str r2, [r0, #0xc]
+ str r3, [r0, #0x10]
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_02239D2C
+MOD06_02239D2C: ; 0x02239D2C
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #7
+ bls _02239D3A
+ b _02239E58
+_02239D3A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02239D46: ; jump table
+ .short _02239D56 - _02239D46 - 2 ; case 0
+ .short _02239D62 - _02239D46 - 2 ; case 1
+ .short _02239D82 - _02239D46 - 2 ; case 2
+ .short _02239DB6 - _02239D46 - 2 ; case 3
+ .short _02239DD6 - _02239D46 - 2 ; case 4
+ .short _02239E00 - _02239D46 - 2 ; case 5
+ .short _02239E20 - _02239D46 - 2 ; case 6
+ .short _02239E52 - _02239D46 - 2 ; case 7
+_02239D56:
+ mov r0, #0
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02239E58
+_02239D62:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ bpl _02239E58
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ mov r2, #4
+ mov r3, #0x10
+ bl MOD06_0223A67C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0x50
+ str r0, [r4, #4]
+ b _02239E58
+_02239D82:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ bpl _02239E58
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ mov r2, #4
+ mov r3, #0x18
+ bl MOD06_0223A67C
+ mov r1, #8
+ str r1, [sp]
+ ldr r0, [r4, #0x10]
+ lsl r1, r1, #0xa
+ str r0, [sp, #4]
+ ldr r0, [r4, #8]
+ mov r2, #0
+ mov r3, #1
+ bl MOD06_0223A460
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0x20
+ str r0, [r4, #4]
+ b _02239E58
+_02239DB6:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ bpl _02239E58
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ mov r2, #4
+ mov r3, #0x1b
+ bl MOD06_0223A67C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0x3c
+ str r0, [r4, #4]
+ b _02239E58
+_02239DD6:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ bpl _02239E58
+ mov r0, #0xa
+ str r0, [sp]
+ ldr r0, [r4, #0x10]
+ mov r1, #3
+ str r0, [sp, #4]
+ ldr r0, [r4, #8]
+ lsl r1, r1, #0xc
+ mov r2, #0
+ mov r3, #1
+ bl MOD06_0223A460
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0x3c
+ str r0, [r4, #4]
+ b _02239E58
+_02239E00:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ bpl _02239E58
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ mov r2, #8
+ mov r3, #0x20
+ bl MOD06_0223A67C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0x28
+ str r0, [r4, #4]
+ b _02239E58
+_02239E20:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ bpl _02239E58
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ mov r2, #4
+ mov r3, #0x10
+ bl MOD06_0223A67C
+ mov r0, #0xc
+ str r0, [sp]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ str r0, [sp, #4]
+ ldr r0, [r4, #8]
+ lsl r1, r1, #0xe
+ mov r2, #0
+ mov r3, #1
+ bl MOD06_0223A460
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02239E58
+_02239E52:
+ add sp, #8
+ mov r0, #1
+ pop {r4, pc}
+_02239E58:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02239E60
+MOD06_02239E60: ; 0x02239E60
+ mov r2, #0
+ str r2, [r0]
+ mov r2, #0x20
+ str r2, [r0, #4]
+ str r1, [r0, #8]
+ bx lr
+
+ thumb_func_start MOD06_02239E6C
+MOD06_02239E6C: ; 0x02239E6C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #4
+ bhi _02239F00
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02239E82: ; jump table
+ .short _02239E8C - _02239E82 - 2 ; case 0
+ .short _02239E9C - _02239E82 - 2 ; case 1
+ .short _02239EB4 - _02239E82 - 2 ; case 2
+ .short _02239ED4 - _02239E82 - 2 ; case 3
+ .short _02239EF4 - _02239E82 - 2 ; case 4
+_02239E8C:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ bpl _02239F00
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02239F00
+_02239E9C:
+ ldr r0, [r4, #8]
+ mov r1, #0xd
+ mov r2, #4
+ mov r3, #8
+ bl MOD06_0223A67C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0x10
+ str r0, [r4, #4]
+ b _02239F00
+_02239EB4:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ bpl _02239F00
+ ldr r0, [r4, #8]
+ mov r1, #0xd
+ mov r2, #4
+ mov r3, #8
+ bl MOD06_0223A67C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0x10
+ str r0, [r4, #4]
+ b _02239F00
+_02239ED4:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ bpl _02239F00
+ ldr r0, [r4, #8]
+ mov r1, #0xd
+ mov r2, #4
+ mov r3, #0x20
+ bl MOD06_0223A67C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0x28
+ str r0, [r4, #4]
+ b _02239F00
+_02239EF4:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ bpl _02239F00
+ mov r0, #1
+ pop {r4, pc}
+_02239F00:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02239F04
+MOD06_02239F04: ; 0x02239F04
+ push {r4, r5, r6, lr}
+ ldr r0, [r1, #0x34]
+ mov r1, #5
+ add r4, r2, #0
+ bl FUN_02058060
+ add r5, r0, #0
+ bne _02239F18
+ bl ErrorHandling
+_02239F18:
+ add r0, r5, #0
+ bl FUN_02058B2C
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r5, #0
+ bl FUN_02058B4C
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ mov r0, #4
+ bl MOD06_0223B2F8
+ add r1, r6, #0
+ mov r2, #0
+ add r3, r5, #0
+ str r0, [r4]
+ bl MOD06_0223B30C
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_02239F40
+MOD06_02239F40: ; 0x02239F40
+ ldr r3, _02239F48 ; =MOD06_0223B304
+ ldr r0, [r2]
+ bx r3
+ nop
+_02239F48: .word MOD06_0223B304
+
+ thumb_func_start MOD06_02239F4C
+MOD06_02239F4C: ; 0x02239F4C
+ ldr r3, _02239F54 ; =MOD06_0223B338
+ ldr r0, [r2]
+ bx r3
+ nop
+_02239F54: .word MOD06_0223B338
+
+ thumb_func_start MOD06_02239F58
+MOD06_02239F58: ; 0x02239F58
+ ldr r3, _02239F60 ; =MOD06_0223B340
+ ldr r0, [r2]
+ bx r3
+ nop
+_02239F60: .word MOD06_0223B340
+
+ thumb_func_start MOD06_02239F64
+MOD06_02239F64: ; 0x02239F64
+ ldr r0, [r0, #4]
+ ldr r3, _02239F70 ; =0x021D8025
+ ldr r0, [r0, #4]
+ ldr r1, _02239F74 ; =0x0224F190
+ bx r3
+ nop
+_02239F70: .word 0x021D8025
+_02239F74: .word 0x0224F190
+
+ thumb_func_start MOD06_02239F78
+MOD06_02239F78: ; 0x02239F78
+ ldr r3, _02239F7C ; =0x021D80A5
+ bx r3
+ .align 2, 0
+_02239F7C: .word 0x021D80A5
+
+ thumb_func_start MOD06_02239F80
+MOD06_02239F80: ; 0x02239F80
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ ldr r0, _0223A008 ; =0x00001701
+ ldr r1, [r5, #0x20]
+ add r4, r2, #0
+ bl FUN_0201EEF0
+ ldr r0, _0223A00C ; =0x000C8A55
+ ldr r1, [r5, #0x20]
+ bl FUN_0201EFE0
+ ldr r0, _0223A010 ; =0x002280EF
+ str r0, [sp, #8]
+ ldr r0, _0223A014 ; =0x000CA424
+ str r0, [sp, #0xc]
+ ldr r0, _0223A018 ; =0x00268C50
+ str r0, [sp, #0x10]
+ ldr r1, [r5, #0x20]
+ add r0, sp, #8
+ bl FUN_0201F04C
+ ldr r1, _0223A01C ; =0x000022A2
+ add r0, sp, #0
+ strh r1, [r0]
+ mov r1, #0x3e
+ lsl r1, r1, #0xa
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ ldr r1, [r5, #0x20]
+ add r0, sp, #0
+ bl FUN_0201EF90
+ mov r0, #2
+ mov r1, #0x7d
+ ldr r2, [r5, #0x20]
+ lsl r0, r0, #0xc
+ lsl r1, r1, #0x10
+ bl FUN_0201EC94
+ mov r0, #4
+ bl MOD06_0223B574
+ str r0, [r4, #4]
+ mov r0, #4
+ bl MOD06_0223B648
+ str r0, [r4, #8]
+ ldr r1, [r5, #0x20]
+ add r0, sp, #8
+ bl FUN_0201F02C
+ ldr r0, [r4, #4]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ bl MOD06_0223B598
+ ldr r0, [r4, #8]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ bl MOD06_0223B66C
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_0223A008: .word 0x00001701
+_0223A00C: .word 0x000C8A55
+_0223A010: .word 0x002280EF
+_0223A014: .word 0x000CA424
+_0223A018: .word 0x00268C50
+_0223A01C: .word 0x000022A2
+
+ thumb_func_start MOD06_0223A020
+MOD06_0223A020: ; 0x0223A020
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ ldr r0, _0223A0B8 ; =0x00000F81
+ ldr r1, [r5, #0x20]
+ add r4, r2, #0
+ bl FUN_0201EEF0
+ ldr r0, _0223A0BC ; =0x0017E532
+ ldr r1, [r5, #0x20]
+ bl FUN_0201EFE0
+ ldr r0, _0223A0C0 ; =0x00F99D58
+ str r0, [sp, #8]
+ ldr r0, _0223A0C4 ; =0x000C5502
+ str r0, [sp, #0xc]
+ ldr r0, _0223A0C8 ; =0x028CF549
+ str r0, [sp, #0x10]
+ ldr r1, [r5, #0x20]
+ add r0, sp, #8
+ bl FUN_0201F04C
+ ldr r1, _0223A0CC ; =0x00000642
+ add r0, sp, #0
+ strh r1, [r0]
+ ldr r1, _0223A0D0 ; =0x0000EDA0
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ ldr r1, [r5, #0x20]
+ add r0, sp, #0
+ bl FUN_0201EF90
+ mov r0, #0x16
+ mov r1, #0x7d
+ ldr r2, [r5, #0x20]
+ lsl r0, r0, #0xe
+ lsl r1, r1, #0x10
+ bl FUN_0201EC94
+ add r0, r5, #0
+ add r0, #0x48
+ bl FUN_021DB4B0
+ ldr r0, [r5, #0x40]
+ mov r1, #2
+ bl FUN_021DB44C
+ str r0, [r5, #0x48]
+ mov r0, #4
+ bl MOD06_0223B574
+ str r0, [r4, #4]
+ mov r0, #4
+ bl MOD06_0223B648
+ str r0, [r4, #8]
+ ldr r1, [r5, #0x20]
+ add r0, sp, #8
+ bl FUN_0201F02C
+ ldr r0, [r4, #4]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ bl MOD06_0223B5D0
+ ldr r0, [r4, #8]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ bl MOD06_0223B6A4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_0223A0B8: .word 0x00000F81
+_0223A0BC: .word 0x0017E532
+_0223A0C0: .word 0x00F99D58
+_0223A0C4: .word 0x000C5502
+_0223A0C8: .word 0x028CF549
+_0223A0CC: .word 0x00000642
+_0223A0D0: .word 0x0000EDA0
+
+ thumb_func_start MOD06_0223A0D4
+MOD06_0223A0D4: ; 0x0223A0D4
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ ldr r0, _0223A16C ; =0x000004C1
+ ldr r1, [r5, #0x20]
+ add r4, r2, #0
+ bl FUN_0201EEF0
+ ldr r0, _0223A170 ; =0x0026BEC1
+ ldr r1, [r5, #0x20]
+ bl FUN_0201EFE0
+ ldr r0, _0223A174 ; =0x01DF5DFD
+ str r0, [sp, #8]
+ ldr r0, _0223A178 ; =0x00073A0C
+ str r0, [sp, #0xc]
+ ldr r0, _0223A17C ; =0x02B9F4A2
+ str r0, [sp, #0x10]
+ ldr r1, [r5, #0x20]
+ add r0, sp, #8
+ bl FUN_0201F04C
+ ldr r1, _0223A180 ; =0x000004C2
+ add r0, sp, #0
+ strh r1, [r0]
+ mov r1, #0x29
+ lsl r1, r1, #6
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ ldr r1, [r5, #0x20]
+ add r0, sp, #0
+ bl FUN_0201EF90
+ mov r0, #0xb
+ ldr r1, _0223A184 ; =0x005C8000
+ ldr r2, [r5, #0x20]
+ lsl r0, r0, #0x10
+ bl FUN_0201EC94
+ add r0, r5, #0
+ add r0, #0x48
+ bl FUN_021DB4B0
+ ldr r0, [r5, #0x40]
+ mov r1, #2
+ bl FUN_021DB44C
+ str r0, [r5, #0x48]
+ mov r0, #4
+ bl MOD06_0223B574
+ str r0, [r4, #4]
+ mov r0, #4
+ bl MOD06_0223B648
+ str r0, [r4, #8]
+ ldr r1, [r5, #0x20]
+ add r0, sp, #8
+ bl FUN_0201F02C
+ ldr r0, [r4, #4]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ bl MOD06_0223B60C
+ ldr r0, [r4, #8]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ bl MOD06_0223B6E0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_0223A16C: .word 0x000004C1
+_0223A170: .word 0x0026BEC1
+_0223A174: .word 0x01DF5DFD
+_0223A178: .word 0x00073A0C
+_0223A17C: .word 0x02B9F4A2
+_0223A180: .word 0x000004C2
+_0223A184: .word 0x005C8000
+
+ thumb_func_start MOD06_0223A188
+MOD06_0223A188: ; 0x0223A188
+ push {r4, lr}
+ add r4, r2, #0
+ ldr r0, [r4, #4]
+ bl MOD06_0223B580
+ ldr r0, [r4, #8]
+ bl MOD06_0223B654
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223A19C
+MOD06_0223A19C: ; 0x0223A19C
+ push {r4, lr}
+ add r4, r2, #0
+ ldr r0, [r4, #4]
+ bl MOD06_0223B588
+ ldr r0, [r4, #8]
+ bl MOD06_0223B65C
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223A1B0
+MOD06_0223A1B0: ; 0x0223A1B0
+ push {r4, lr}
+ add r4, r2, #0
+ ldr r0, [r4, #4]
+ bl MOD06_0223B590
+ ldr r0, [r4, #8]
+ bl MOD06_0223B664
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223A1C4
+MOD06_0223A1C4: ; 0x0223A1C4
+ lsl r2, r1, #2
+ ldr r1, _0223A1D8 ; =0x0224F174
+ ldr r3, _0223A1DC ; =0x021D8025
+ ldr r2, [r1, r2]
+ ldr r1, _0223A1E0 ; =0x02252240
+ str r2, [r1, #8]
+ ldr r0, [r0, #4]
+ ldr r1, _0223A1E4 ; =0x02252240
+ ldr r0, [r0, #4]
+ bx r3
+ .align 2, 0
+_0223A1D8: .word 0x0224F174
+_0223A1DC: .word 0x021D8025
+_0223A1E0: .word 0x02252240
+_0223A1E4: .word 0x02252240
+
+ thumb_func_start MOD06_0223A1E8
+MOD06_0223A1E8: ; 0x0223A1E8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ add r0, r5, #0
+ bl MOD06_0223A75C
+ str r0, [r4, #8]
+ mov r0, #4
+ add r1, r5, #0
+ bl MOD06_0223B71C
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223A208
+MOD06_0223A208: ; 0x0223A208
+ push {r4, lr}
+ add r4, r2, #0
+ ldr r0, [r4, #8]
+ bl MOD06_0223A790
+ ldr r0, [r4, #0xc]
+ bl MOD06_0223B73C
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223A21C
+MOD06_0223A21C: ; 0x0223A21C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r2, #0
+ ldr r0, [r4]
+ cmp r0, #6
+ bhi _0223A2CC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223A234: ; jump table
+ .short _0223A242 - _0223A234 - 2 ; case 0
+ .short _0223A26A - _0223A234 - 2 ; case 1
+ .short _0223A2CC - _0223A234 - 2 ; case 2
+ .short _0223A288 - _0223A234 - 2 ; case 3
+ .short _0223A29A - _0223A234 - 2 ; case 4
+ .short _0223A2B0 - _0223A234 - 2 ; case 5
+ .short _0223A2CC - _0223A234 - 2 ; case 6
+_0223A242:
+ ldr r1, [r1, #0x20]
+ add r0, sp, #0
+ bl FUN_0201F02C
+ mov r2, #2
+ ldr r3, [sp, #4]
+ lsl r2, r2, #0xc
+ add r2, r3, r2
+ ldr r0, [r4, #8]
+ ldr r1, [sp]
+ ldr r3, [sp, #8]
+ bl MOD06_0223A7AC
+ ldr r0, [r4, #0xc]
+ bl MOD06_0223B744
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223A2CC
+_0223A26A:
+ ldr r0, [r4, #8]
+ bl MOD06_0223A820
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD06_0223B810
+ cmp r5, #2
+ bne _0223A2CC
+ cmp r0, #2
+ bne _0223A2CC
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223A2CC
+_0223A288:
+ ldr r0, [r4, #8]
+ bl MOD06_0223A7DC
+ mov r0, #0x40
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223A2CC
+_0223A29A:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ bne _0223A2CC
+ ldr r0, [r4, #0xc]
+ bl MOD06_0223B814
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223A2CC
+_0223A2B0:
+ ldr r0, [r4, #8]
+ bl MOD06_0223A820
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD06_0223B810
+ cmp r5, #5
+ bne _0223A2CC
+ cmp r0, #4
+ bne _0223A2CC
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_0223A2CC:
+ ldr r0, [r4, #8]
+ bl MOD06_0223A868
+ ldr r0, [r4, #0xc]
+ bl MOD06_0223B768
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD06_0223A2DC
+MOD06_0223A2DC: ; 0x0223A2DC
+ ldr r3, _0223A2E4 ; =MOD06_0223A828
+ ldr r0, [r2, #8]
+ bx r3
+ nop
+_0223A2E4: .word MOD06_0223A828
+
+ thumb_func_start MOD06_0223A2E8
+MOD06_0223A2E8: ; 0x0223A2E8
+ ldr r0, [r0, #4]
+ ldr r3, _0223A2F4 ; =0x021D8025
+ ldr r0, [r0, #4]
+ ldr r1, _0223A2F8 ; =0x0224F1A8
+ bx r3
+ nop
+_0223A2F4: .word 0x021D8025
+_0223A2F8: .word 0x0224F1A8
+
+ thumb_func_start MOD06_0223A2FC
+MOD06_0223A2FC: ; 0x0223A2FC
+ ldr r3, _0223A300 ; =0x021D80A5
+ bx r3
+ .align 2, 0
+_0223A300: .word 0x021D80A5
+
+ thumb_func_start MOD06_0223A304
+MOD06_0223A304: ; 0x0223A304
+ push {r3, lr}
+ bl FUN_021D80E4
+ mov r1, #3
+ str r1, [r0]
+ pop {r3, pc}
+
+ thumb_func_start MOD06_0223A310
+MOD06_0223A310: ; 0x0223A310
+ push {r3, lr}
+ bl FUN_021D80E4
+ ldr r0, [r0]
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223A31C
+MOD06_0223A31C: ; 0x0223A31C
+ str r1, [r0]
+ str r1, [r0, #4]
+ sub r1, r2, r1
+ str r1, [r0, #8]
+ str r3, [r0, #0xc]
+ bx lr
+
+ thumb_func_start MOD06_0223A328
+MOD06_0223A328: ; 0x0223A328
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r3, [r5, #0xc]
+ cmp r1, r3
+ blt _0223A338
+ add r1, r3, #0
+ mov r4, #1
+ b _0223A33A
+_0223A338:
+ mov r4, #0
+_0223A33A:
+ ldr r2, [r5, #8]
+ add r0, r2, #0
+ mul r0, r1
+ add r1, r3, #0
+ bl _s32_div_f
+ ldr r1, [r5, #4]
+ add r0, r0, r1
+ str r0, [r5]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0223A350
+MOD06_0223A350: ; 0x0223A350
+ str r1, [r0]
+ str r1, [r0, #4]
+ sub r1, r2, r1
+ str r1, [r0, #8]
+ str r3, [r0, #0xc]
+ bx lr
+
+ thumb_func_start MOD06_0223A35C
+MOD06_0223A35C: ; 0x0223A35C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r4, [r5, #0xc]
+ add r2, r1, #0
+ cmp r2, r4
+ blt _0223A36E
+ add r2, r4, #0
+ mov r6, #1
+ b _0223A370
+_0223A36E:
+ mov r6, #0
+_0223A370:
+ ldr r0, [r5, #8]
+ lsl r2, r2, #0xc
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ lsl r1, r4, #0xc
+ bl FX_Div
+ ldr r1, [r5, #4]
+ add r0, r0, r1
+ str r0, [r5]
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_0223A39C
+MOD06_0223A39C: ; 0x0223A39C
+ push {r3, lr}
+ bl FUN_021F5268
+ pop {r3, pc}
+
+ thumb_func_start MOD06_0223A3A4
+MOD06_0223A3A4: ; 0x0223A3A4
+ ldr r3, _0223A3A8 ; =0x021F52C9
+ bx r3
+ .align 2, 0
+_0223A3A8: .word 0x021F52C9
+
+ thumb_func_start MOD06_0223A3AC
+MOD06_0223A3AC: ; 0x0223A3AC
+ push {r4, lr}
+ sub sp, #8
+ ldr r4, [sp, #0x10]
+ str r4, [sp]
+ ldr r4, [sp, #0x14]
+ str r4, [sp, #4]
+ bl FUN_021F531C
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223A3C0
+MOD06_0223A3C0: ; 0x0223A3C0
+ ldr r3, _0223A3C4 ; =0x021F5359
+ bx r3
+ .align 2, 0
+_0223A3C4: .word 0x021F5359
+
+ thumb_func_start MOD06_0223A3C8
+MOD06_0223A3C8: ; 0x0223A3C8
+ ldr r3, _0223A3D0 ; =0x021F5385
+ mov r1, #1
+ lsl r1, r1, #0xc
+ bx r3
+ .align 2, 0
+_0223A3D0: .word 0x021F5385
+
+ thumb_func_start MOD06_0223A3D4
+MOD06_0223A3D4: ; 0x0223A3D4
+ ldr r3, _0223A3D8 ; =0x021F5385
+ bx r3
+ .align 2, 0
+_0223A3D8: .word 0x021F5385
+
+ thumb_func_start MOD06_0223A3DC
+MOD06_0223A3DC: ; 0x0223A3DC
+ ldr r3, _0223A3E4 ; =0x021F53BD
+ mov r1, #1
+ lsl r1, r1, #0xc
+ bx r3
+ .align 2, 0
+_0223A3E4: .word 0x021F53BD
+
+ thumb_func_start MOD06_0223A3E8
+MOD06_0223A3E8: ; 0x0223A3E8
+ ldr r3, _0223A3EC ; =0x021F53F9
+ bx r3
+ .align 2, 0
+_0223A3EC: .word 0x021F53F9
+
+ thumb_func_start MOD06_0223A3F0
+MOD06_0223A3F0: ; 0x0223A3F0
+ ldr r3, _0223A3F4 ; =0x021F5401
+ bx r3
+ .align 2, 0
+_0223A3F4: .word 0x021F5401
+
+ thumb_func_start MOD06_0223A3F8
+MOD06_0223A3F8: ; 0x0223A3F8
+ ldr r3, _0223A3FC ; =0x021F5425
+ bx r3
+ .align 2, 0
+_0223A3FC: .word 0x021F5425
+
+ thumb_func_start MOD06_0223A400
+MOD06_0223A400: ; 0x0223A400
+ ldr r3, _0223A404 ; =0x021F5431
+ bx r3
+ .align 2, 0
+_0223A404: .word 0x021F5431
+
+ thumb_func_start MOD06_0223A408
+MOD06_0223A408: ; 0x0223A408
+ ldr r3, _0223A40C ; =0x021F54CD
+ bx r3
+ .align 2, 0
+_0223A40C: .word 0x021F54CD
+
+ thumb_func_start MOD06_0223A410
+MOD06_0223A410: ; 0x0223A410
+ push {r3, lr}
+ bl FUN_021F54D0
+ pop {r3, pc}
+
+ thumb_func_start MOD06_0223A418
+MOD06_0223A418: ; 0x0223A418
+ push {r3, lr}
+ bl FUN_021F54D8
+ pop {r3, pc}
+
+ thumb_func_start MOD06_0223A420
+MOD06_0223A420: ; 0x0223A420
+ ldr r3, _0223A424 ; =0x021F54E1
+ bx r3
+ .align 2, 0
+_0223A424: .word 0x021F54E1
+
+ thumb_func_start MOD06_0223A428
+MOD06_0223A428: ; 0x0223A428
+ push {r3, r4, r5, lr}
+ mov r1, #0x4c
+ add r5, r0, #0
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x4c
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ add r0, r5, #0
+ bl FUN_0201EB64
+ str r0, [r4]
+ mov r0, #5
+ str r0, [r4, #0x40]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0223A44C
+MOD06_0223A44C: ; 0x0223A44C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_0201EB70
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223A460
+MOD06_0223A460: ; 0x0223A460
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r7, r1, #0
+ str r2, [sp]
+ add r4, r3, #0
+ bl MOD06_0223A5C0
+ ldr r0, [sp, #0x2c]
+ ldr r1, [r5]
+ bl FUN_0201EB78
+ ldr r1, [sp, #0x2c]
+ add r0, sp, #4
+ bl FUN_0201F02C
+ add r3, sp, #4
+ add r2, r5, #0
+ add r2, #0x28
+ ldmia r3!, {r0, r1}
+ add r6, r2, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r3, r6, #0
+ str r0, [r2]
+ add r2, r5, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x34
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r1, [r5]
+ add r0, r6, #0
+ bl FUN_0201EC68
+ ldr r0, [r5]
+ bl FUN_0201EB8C
+ ldr r0, [sp, #0x2c]
+ mov r1, #0
+ str r0, [r5, #4]
+ add r0, r5, #0
+ add r0, #8
+ add r2, r7, #0
+ add r3, r4, #0
+ bl MOD06_0223A350
+ add r0, r5, #0
+ ldr r2, [sp]
+ add r0, #0x18
+ mov r1, #0
+ add r3, r4, #0
+ bl MOD06_0223A350
+ ldr r0, [sp, #0x28]
+ str r0, [r5, #0x48]
+ ldr r0, _0223A4DC ; =0x000006D5
+ bl FUN_020054C8
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223A4DC: .word 0x000006D5
+
+ thumb_func_start MOD06_0223A4E0
+MOD06_0223A4E0: ; 0x0223A4E0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x40]
+ cmp r1, #5
+ bhi _0223A5AC
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223A4F6: ; jump table
+ .short _0223A502 - _0223A4F6 - 2 ; case 0
+ .short _0223A524 - _0223A4F6 - 2 ; case 1
+ .short _0223A546 - _0223A4F6 - 2 ; case 2
+ .short _0223A56C - _0223A4F6 - 2 ; case 3
+ .short _0223A5A0 - _0223A4F6 - 2 ; case 4
+ .short _0223A5AC - _0223A4F6 - 2 ; case 5
+_0223A502:
+ ldr r1, [r4, #0x44]
+ add r1, r1, #1
+ str r1, [r4, #0x44]
+ bl MOD06_0223A60C
+ add r5, r0, #0
+ ldr r1, [r4, #8]
+ ldr r2, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD06_0223A628
+ cmp r5, #1
+ bne _0223A5AC
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ pop {r3, r4, r5, pc}
+_0223A524:
+ ldr r1, [r4, #0x44]
+ sub r1, r1, #1
+ str r1, [r4, #0x44]
+ bl MOD06_0223A60C
+ ldr r1, [r4, #8]
+ ldr r2, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD06_0223A628
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ bne _0223A5AC
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ pop {r3, r4, r5, pc}
+_0223A546:
+ ldr r1, [r4, #0x44]
+ add r1, r1, #1
+ str r1, [r4, #0x44]
+ bl MOD06_0223A60C
+ ldr r1, [r4, #8]
+ ldr r2, [r4, #0x18]
+ add r5, r0, #0
+ add r0, r4, #0
+ neg r1, r1
+ neg r2, r2
+ bl MOD06_0223A628
+ cmp r5, #1
+ bne _0223A5AC
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ pop {r3, r4, r5, pc}
+_0223A56C:
+ ldr r1, [r4, #0x44]
+ sub r1, r1, #1
+ str r1, [r4, #0x44]
+ bl MOD06_0223A60C
+ ldr r1, [r4, #8]
+ ldr r2, [r4, #0x18]
+ add r0, r4, #0
+ neg r1, r1
+ neg r2, r2
+ bl MOD06_0223A628
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ bne _0223A5AC
+ ldr r0, [r4, #0x48]
+ sub r0, r0, #1
+ str r0, [r4, #0x48]
+ beq _0223A598
+ mov r0, #0
+ str r0, [r4, #0x40]
+ pop {r3, r4, r5, pc}
+_0223A598:
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ pop {r3, r4, r5, pc}
+_0223A5A0:
+ ldr r0, [r4, #4]
+ bl FUN_0201EB8C
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+_0223A5AC:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223A5B0
+MOD06_0223A5B0: ; 0x0223A5B0
+ ldr r0, [r0, #0x40]
+ cmp r0, #5
+ bne _0223A5BA
+ mov r0, #1
+ bx lr
+_0223A5BA:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_0223A5C0
+MOD06_0223A5C0: ; 0x0223A5C0
+ add r3, r0, #0
+ add r3, #8
+ mov r2, #0x10
+ mov r1, #0
+_0223A5C8:
+ strb r1, [r3]
+ add r3, r3, #1
+ sub r2, r2, #1
+ bne _0223A5C8
+ add r3, r0, #0
+ add r3, #0x18
+ mov r2, #0x10
+ mov r1, #0
+_0223A5D8:
+ strb r1, [r3]
+ add r3, r3, #1
+ sub r2, r2, #1
+ bne _0223A5D8
+ add r1, r0, #0
+ add r3, r0, #0
+ mov r2, #0
+ add r1, #0x28
+ add r3, #0x28
+ strb r2, [r1]
+ strb r2, [r3, #1]
+ strb r2, [r3, #2]
+ strb r2, [r3, #3]
+ strb r2, [r3, #4]
+ strb r2, [r3, #5]
+ strb r2, [r3, #6]
+ strb r2, [r3, #7]
+ strb r2, [r3, #8]
+ strb r2, [r3, #9]
+ strb r2, [r3, #0xa]
+ strb r2, [r3, #0xb]
+ str r2, [r0, #0x40]
+ str r2, [r0, #0x44]
+ str r2, [r0, #0x48]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_0223A60C
+MOD06_0223A60C: ; 0x0223A60C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #0x44]
+ add r0, #8
+ bl MOD06_0223A35C
+ add r4, r0, #0
+ add r0, r5, #0
+ ldr r1, [r5, #0x44]
+ add r0, #0x18
+ bl MOD06_0223A35C
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0223A628
+MOD06_0223A628: ; 0x0223A628
+ ldr r3, [r0, #0x34]
+ add r1, r3, r1
+ str r1, [r0, #0x28]
+ ldr r1, [r0, #0x38]
+ add r1, r1, r2
+ str r1, [r0, #0x2c]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_0223A638
+MOD06_0223A638: ; 0x0223A638
+ ldr r0, [r0, #0x48]
+ bx lr
+
+ thumb_func_start MOD06_0223A63C
+MOD06_0223A63C: ; 0x0223A63C
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start MOD06_0223A640
+MOD06_0223A640: ; 0x0223A640
+ str r1, [r0, #0x10]
+ bx lr
+
+ thumb_func_start MOD06_0223A644
+MOD06_0223A644: ; 0x0223A644
+ push {r4, lr}
+ mov r1, #0x24
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x24
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #3
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223A660
+MOD06_0223A660: ; 0x0223A660
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ beq _0223A672
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x20]
+_0223A672:
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223A67C
+MOD06_0223A67C: ; 0x0223A67C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x1c]
+ add r4, r1, #0
+ add r7, r2, #0
+ add r6, r3, #0
+ cmp r0, #3
+ beq _0223A69A
+ ldr r0, [r5, #0x20]
+ cmp r0, #0
+ beq _0223A69A
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r5, #0x20]
+_0223A69A:
+ add r0, r5, #0
+ mov r1, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD06_0223A31C
+ mov r0, #0
+ str r0, [r5, #0x10]
+ str r0, [r5, #0x1c]
+ str r6, [r5, #0x18]
+ str r4, [r5, #0x14]
+ ldr r0, _0223A6D0 ; =0x0400006C
+ ldr r1, [r5]
+ bl GXx_SetMasterBrightness_
+ mov r2, #1
+ ldr r0, _0223A6D4 ; =MOD06_0223A74C
+ add r1, r5, #0
+ lsl r2, r2, #0xa
+ bl FUN_0200CA98
+ str r0, [r5, #0x20]
+ ldr r0, _0223A6D8 ; =0x000006D4
+ bl FUN_020054C8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223A6D0: .word 0x0400006C
+_0223A6D4: .word MOD06_0223A74C
+_0223A6D8: .word 0x000006D4
+
+ thumb_func_start MOD06_0223A6DC
+MOD06_0223A6DC: ; 0x0223A6DC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x1c]
+ cmp r1, #3
+ bhi _0223A746
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223A6F2: ; jump table
+ .short _0223A6FA - _0223A6F2 - 2 ; case 0
+ .short _0223A720 - _0223A6F2 - 2 ; case 1
+ .short _0223A736 - _0223A6F2 - 2 ; case 2
+ .short _0223A746 - _0223A6F2 - 2 ; case 3
+_0223A6FA:
+ ldr r1, [r4, #0x10]
+ add r1, r1, #1
+ str r1, [r4, #0x10]
+ bl MOD06_0223A328
+ cmp r0, #1
+ bne _0223A746
+ ldr r1, [r4, #0x14]
+ ldr r3, [r4, #0x18]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD06_0223A31C
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x1c]
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+ pop {r4, pc}
+_0223A720:
+ ldr r1, [r4, #0x10]
+ add r1, r1, #1
+ str r1, [r4, #0x10]
+ bl MOD06_0223A328
+ cmp r0, #1
+ bne _0223A746
+ ldr r0, [r4, #0x1c]
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+ pop {r4, pc}
+_0223A736:
+ ldr r0, [r4, #0x20]
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #0x1c]
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+_0223A746:
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223A748
+MOD06_0223A748: ; 0x0223A748
+ ldr r0, [r0]
+ bx lr
+
+ thumb_func_start MOD06_0223A74C
+MOD06_0223A74C: ; 0x0223A74C
+ ldr r3, _0223A754 ; =0x020C5978
+ ldr r0, _0223A758 ; =0x0400006C
+ ldr r1, [r1]
+ bx r3
+ .align 2, 0
+_0223A754: .word 0x020C5978
+_0223A758: .word 0x0400006C
+
+ thumb_func_start MOD06_0223A75C
+MOD06_0223A75C: ; 0x0223A75C
+ push {r3, r4, r5, lr}
+ mov r1, #5
+ add r5, r0, #0
+ mov r0, #4
+ lsl r1, r1, #6
+ bl FUN_02016998
+ mov r2, #5
+ mov r1, #0
+ lsl r2, r2, #6
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x4b
+ str r5, [r4]
+ mov r1, #5
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r0, #0x10
+ add r0, r4, r0
+ mov r1, #4
+ mov r2, #0x20
+ bl FUN_02016B20
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0223A790
+MOD06_0223A790: ; 0x0223A790
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #5
+ beq _0223A7A2
+ bl ErrorHandling
+_0223A7A2:
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223A7AC
+MOD06_0223A7AC: ; 0x0223A7AC
+ push {r3, r4, r5, lr}
+ mov r5, #0x4b
+ add r4, r0, #0
+ mov r0, #0
+ lsl r5, r5, #2
+ str r0, [r4, r5]
+ add r0, r5, #0
+ add r0, #8
+ str r1, [r4, r0]
+ add r0, r5, #0
+ add r0, #0xc
+ str r2, [r4, r0]
+ mov r2, #1
+ add r5, #0x10
+ ldr r0, _0223A7D8 ; =MOD06_0223A8A8
+ add r1, r4, #0
+ lsl r2, r2, #0xa
+ str r3, [r4, r5]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ nop
+_0223A7D8: .word MOD06_0223A8A8
+
+ thumb_func_start MOD06_0223A7DC
+MOD06_0223A7DC: ; 0x0223A7DC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #2
+ beq _0223A7EE
+ bl ErrorHandling
+_0223A7EE:
+ mov r0, #0x4b
+ mov r1, #3
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r4, #0x40
+ add r0, r4, #0
+ bl MOD06_0223AC70
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223A800
+MOD06_0223A800: ; 0x0223A800
+ add r1, r0, #0
+ mov r0, #0x13
+ mov r2, #0
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ ldr r3, _0223A818 ; =0x0200CA45
+ mov r2, #4
+ sub r0, r0, #4
+ str r2, [r1, r0]
+ ldr r0, _0223A81C ; =MOD06_0223A944
+ lsl r2, r2, #8
+ bx r3
+ .align 2, 0
+_0223A818: .word 0x0200CA45
+_0223A81C: .word MOD06_0223A944
+
+ thumb_func_start MOD06_0223A820
+MOD06_0223A820: ; 0x0223A820
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD06_0223A828
+MOD06_0223A828: ; 0x0223A828
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0223A860
+ sub r0, r0, #4
+ cmp r0, #1
+ bls _0223A860
+ ldr r0, _0223A864 ; =0x04000454
+ mov r1, #0
+ str r1, [r0]
+ mov r0, #0x11
+ add r2, r1, #0
+ bl FUN_020BB1C0
+ add r4, #0x40
+ add r0, r4, #0
+ bl MOD06_0223A400
+ mov r2, #1
+ mov r0, #0x12
+ add r1, sp, #0
+ str r2, [sp]
+ bl FUN_020BB1C0
+_0223A860:
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0223A864: .word 0x04000454
+
+ thumb_func_start MOD06_0223A868
+MOD06_0223A868: ; 0x0223A868
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0223A8A6
+ sub r0, r0, #4
+ cmp r0, #1
+ bls _0223A8A6
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD06_0223AAB0
+ mov r2, #0x4b
+ lsl r2, r2, #2
+ ldr r1, [r4, r2]
+ cmp r1, #1
+ bne _0223A89C
+ add r1, r2, #0
+ sub r1, #0x16
+ ldrh r1, [r4, r1]
+ cmp r1, #1
+ bne _0223A89C
+ mov r1, #2
+ str r1, [r4, r2]
+_0223A89C:
+ cmp r0, #1
+ bne _0223A8A6
+ add r0, r4, #0
+ bl MOD06_0223A800
+_0223A8A6:
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223A8A8
+MOD06_0223A8A8: ; 0x0223A8A8
+ push {r4, lr}
+ sub sp, #8
+ mov r3, #0x13
+ add r4, r1, #0
+ lsl r3, r3, #4
+ ldr r1, [r4, r3]
+ cmp r1, #3
+ bhi _0223A940
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223A8C4: ; jump table
+ .short _0223A8CC - _0223A8C4 - 2 ; case 0
+ .short _0223A8E6 - _0223A8C4 - 2 ; case 1
+ .short _0223A904 - _0223A8C4 - 2 ; case 2
+ .short _0223A936 - _0223A8C4 - 2 ; case 3
+_0223A8CC:
+ mov r2, #8
+ ldr r1, [r4]
+ add r0, r4, #4
+ add r3, r2, #0
+ bl MOD06_022396A0
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ add sp, #8
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r4, pc}
+_0223A8E6:
+ add r0, r4, #4
+ bl MOD06_022396BC
+ add r0, r4, #4
+ bl MOD06_02239728
+ cmp r0, #2
+ bne _0223A940
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ add sp, #8
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r4, pc}
+_0223A904:
+ add r0, r3, #0
+ add r0, #8
+ ldr r0, [r4, r0]
+ add r1, r3, #0
+ str r0, [sp]
+ add r0, r3, #0
+ add r0, #0xc
+ ldr r0, [r4, r0]
+ add r3, r3, #4
+ str r0, [sp, #4]
+ add r0, r4, #0
+ sub r1, #0x14
+ ldr r3, [r4, r3]
+ add r0, #0x40
+ add r1, r4, r1
+ mov r2, #4
+ bl MOD06_0223A9B8
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ add sp, #8
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r4, pc}
+_0223A936:
+ mov r2, #1
+ sub r1, r3, #4
+ str r2, [r4, r1]
+ bl FUN_0200CAB4
+_0223A940:
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223A944
+MOD06_0223A944: ; 0x0223A944
+ push {r4, lr}
+ add r4, r1, #0
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r2, [r4, r1]
+ cmp r2, #3
+ bhi _0223A9B6
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223A95E: ; jump table
+ .short _0223A966 - _0223A95E - 2 ; case 0
+ .short _0223A97E - _0223A95E - 2 ; case 1
+ .short _0223A990 - _0223A95E - 2 ; case 2
+ .short _0223A9AC - _0223A95E - 2 ; case 3
+_0223A966:
+ add r0, r4, #0
+ sub r1, #0x14
+ add r0, #0x40
+ add r1, r4, r1
+ bl MOD06_0223AA78
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r4, pc}
+_0223A97E:
+ add r0, r4, #4
+ bl MOD06_02239714
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r4, pc}
+_0223A990:
+ add r0, r4, #4
+ bl MOD06_022396BC
+ add r0, r4, #4
+ bl MOD06_02239728
+ cmp r0, #5
+ bne _0223A9B6
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r4, pc}
+_0223A9AC:
+ mov r2, #5
+ sub r1, r1, #4
+ str r2, [r4, r1]
+ bl FUN_0200CAB4
+_0223A9B6:
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223A9B8
+MOD06_0223A9B8: ; 0x0223A9B8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ mov r0, #4
+ str r1, [sp, #8]
+ add r7, r2, #0
+ str r3, [sp, #0xc]
+ bl MOD06_0223A644
+ add r1, r6, #0
+ add r1, #0xb0
+ str r0, [r1]
+ add r0, r6, #0
+ add r0, #0x78
+ mov r1, #0x62
+ mov r2, #0xc
+ add r3, r7, #0
+ bl MOD06_0223A39C
+ add r0, r6, #0
+ add r5, r6, #0
+ str r0, [sp, #0x10]
+ add r0, #0x78
+ mov r4, #0
+ add r5, #0x88
+ str r0, [sp, #0x10]
+_0223A9EC:
+ ldr r0, [sp, #8]
+ str r7, [sp]
+ add r3, r4, #0
+ str r0, [sp, #4]
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ mov r2, #0x62
+ add r3, #0xd
+ bl MOD06_0223A3AC
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, #2
+ blt _0223A9EC
+ add r1, r6, #0
+ add r0, r6, #0
+ add r1, #0x78
+ bl MOD06_0223A3F0
+ add r4, r6, #0
+ mov r5, #0
+ add r4, #0x88
+_0223AA18:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD06_0223A3F8
+ add r5, r5, #1
+ add r4, #0x14
+ cmp r5, #2
+ blt _0223AA18
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x2c]
+ add r0, r6, #0
+ bl MOD06_0223A410
+ add r0, r6, #0
+ mov r2, #1
+ add r0, #0xb4
+ mov r1, #0
+ lsl r2, r2, #0xc
+ mov r3, #0x80
+ bl MOD06_0223A350
+ add r0, r6, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r6, #0
+ add r0, #0xb4
+ ldr r1, [r0]
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD06_0223A418
+ mov r2, #2
+ add r0, r6, #0
+ lsl r2, r2, #0xc
+ add r0, #0xd0
+ str r2, [r0]
+ add r0, r6, #0
+ mov r1, #0
+ add r0, #0xd6
+ strh r1, [r0]
+ lsr r0, r2, #1
+ add r6, #0xd8
+ str r0, [r6]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223AA78
+MOD06_0223AA78: ; 0x0223AA78
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r0, #0x78
+ add r6, r1, #0
+ bl MOD06_0223A3A4
+ add r5, r7, #0
+ mov r4, #0
+ add r5, #0x88
+_0223AA8A:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD06_0223A3C0
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, #2
+ blt _0223AA8A
+ add r0, r7, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl MOD06_0223A660
+ add r0, r7, #0
+ mov r1, #0
+ mov r2, #0xdc
+ bl Call_FillMemWithValue
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223AAB0
+MOD06_0223AAB0: ; 0x0223AAB0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, #0xb4
+ bl MOD06_0223A35C
+ add r7, r0, #0
+ add r0, r4, #0
+ add r2, r4, #0
+ add r0, #0xb4
+ ldr r5, [r0]
+ add r2, #0xd8
+ ldr r2, [r2]
+ asr r1, r5, #0x1f
+ add r0, r5, #0
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r6, #2
+ add r2, r0, #0
+ mov r3, #0
+ lsl r6, r6, #0xa
+ add r0, r4, #0
+ add r2, r2, r6
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r1
+ add r1, r2, #0
+ lsl r2, r6, #1
+ add r3, r5, #0
+ bl MOD06_0223A418
+ add r5, r4, #0
+ mov r6, #0
+ add r5, #0x88
+_0223AAFC:
+ add r1, r4, #0
+ add r1, #0xd0
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD06_0223A3D4
+ add r6, r6, #1
+ add r5, #0x14
+ cmp r6, #2
+ blt _0223AAFC
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl MOD06_0223A6DC
+ add r0, r4, #0
+ add r0, #0xd6
+ ldrh r0, [r0]
+ cmp r0, #5
+ bls _0223AB26
+ b _0223AC5E
+_0223AB26:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223AB32: ; jump table
+ .short _0223AB3E - _0223AB32 - 2 ; case 0
+ .short _0223AC5E - _0223AB32 - 2 ; case 1
+ .short _0223AB5E - _0223AB32 - 2 ; case 2
+ .short _0223AB96 - _0223AB32 - 2 ; case 3
+ .short _0223ABC4 - _0223AB32 - 2 ; case 4
+ .short _0223AC44 - _0223AB32 - 2 ; case 5
+_0223AB3E:
+ cmp r7, #1
+ beq _0223AB50
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r4, #0xc4
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223AC5E
+_0223AB50:
+ add r0, r4, #0
+ add r0, #0xd6
+ ldrh r0, [r0]
+ add r4, #0xd6
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0223AC5E
+_0223AB5E:
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r1, [r0]
+ add r0, r4, #0
+ sub r1, #0xcd
+ add r0, #0xd0
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r1, [r0]
+ ldr r0, _0223AC64 ; =0x00000666
+ cmp r1, r0
+ bgt _0223AC5E
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ mov r1, #0x10
+ mov r2, #0xc
+ mov r3, #0x1c
+ bl MOD06_0223A67C
+ add r0, r4, #0
+ add r0, #0xd6
+ ldrh r0, [r0]
+ add r4, #0xd6
+ add r0, r0, #1
+ strh r0, [r4]
+ b _0223AC5E
+_0223AB96:
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r1, [r0]
+ add r0, r4, #0
+ sub r1, #0xcd
+ add r0, #0xd0
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ cmp r0, #0
+ bgt _0223AC5E
+ add r0, r4, #0
+ add r0, #0xd6
+ ldrh r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xd6
+ strh r1, [r0]
+ mov r0, #8
+ add r4, #0xc8
+ str r0, [r4]
+ b _0223AC5E
+_0223ABC4:
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc8
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ cmp r0, #0
+ bgt _0223AC5E
+ add r0, r4, #0
+ add r0, #0xd6
+ ldrh r0, [r0]
+ add r2, r4, #0
+ add r2, #0xd8
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xd6
+ strh r1, [r0]
+ add r0, r4, #0
+ ldr r1, _0223AC68 ; =0xFFFD8000
+ add r0, #0xd0
+ str r1, [r0]
+ add r0, r4, #0
+ ldr r1, _0223AC6C ; =0xFFFFF000
+ add r0, #0xd8
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r5, [r0]
+ ldr r2, [r2]
+ asr r1, r5, #0x1f
+ add r0, r5, #0
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ add r6, r0, #0
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r0, r4, #0
+ add r6, r6, r2
+ adc r1, r3
+ lsl r2, r1, #0x14
+ lsr r1, r6, #0xc
+ orr r1, r2
+ add r2, r5, #0
+ add r3, r5, #0
+ bl MOD06_0223A418
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xb4
+ lsl r1, r1, #0xc
+ mov r2, #0
+ mov r3, #0x20
+ bl MOD06_0223A350
+ mov r0, #0
+ add r4, #0xc4
+ str r0, [r4]
+ b _0223AC5E
+_0223AC44:
+ cmp r7, #1
+ beq _0223AC56
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r4, #0xc4
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223AC5E
+_0223AC56:
+ cmp r0, #5
+ bne _0223AC5E
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223AC5E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223AC64: .word 0x00000666
+_0223AC68: .word 0xFFFD8000
+_0223AC6C: .word 0xFFFFF000
+
+ thumb_func_start MOD06_0223AC70
+MOD06_0223AC70: ; 0x0223AC70
+ mov r1, #2
+ add r0, #0xd6
+ strh r1, [r0]
+ bx lr
+
+ thumb_func_start MOD06_0223AC78
+MOD06_0223AC78: ; 0x0223AC78
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r1, #5
+ lsl r1, r1, #6
+ add r5, r0, #0
+ bl FUN_02016998
+ mov r2, #5
+ add r4, r0, #0
+ mov r1, #0
+ lsl r2, r2, #6
+ bl Call_FillMemWithValue
+ str r6, [r4, #4]
+ mov r0, #0
+ str r0, [r4]
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ sub r0, #0x10
+ add r0, r4, r0
+ add r1, r5, #0
+ mov r2, #0x20
+ bl FUN_02016B20
+ mov r2, #0x4f
+ lsl r2, r2, #2
+ add r0, r4, #0
+ ldr r1, [r4, r2]
+ sub r2, #0x10
+ add r0, #0x34
+ add r2, r4, r2
+ bl MOD06_0223AF10
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_0223ACC0
+MOD06_0223ACC0: ; 0x0223ACC0
+ push {r4, lr}
+ mov r1, #0x4b
+ add r4, r0, #0
+ lsl r1, r1, #2
+ add r1, r4, r1
+ add r0, #0x34
+ bl MOD06_0223AFD0
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223ACD8
+MOD06_0223ACD8: ; 0x0223ACD8
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r2, r1, #0
+ ldr r1, [r4, #4]
+ add r0, #8
+ bl MOD06_0223ADB4
+ ldr r0, [r4, #8]
+ add r1, sp, #0
+ bl FUN_02058B5C
+ mov r0, #1
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0x10
+ sub r3, r1, r0
+ add r0, r4, #0
+ ldr r1, [sp]
+ ldr r2, [sp, #4]
+ add r0, #0x34
+ str r3, [sp, #8]
+ bl MOD06_0223AF7C
+ mov r0, #1
+ str r0, [r4]
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223AD10
+MOD06_0223AD10: ; 0x0223AD10
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0223AD1A
+ cmp r0, #5
+ bne _0223AD1E
+_0223AD1A:
+ mov r0, #1
+ bx lr
+_0223AD1E:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_0223AD24
+MOD06_0223AD24: ; 0x0223AD24
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ cmp r1, #5
+ bhi _0223AD9A
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223AD3A: ; jump table
+ .short _0223AD9A - _0223AD3A - 2 ; case 0
+ .short _0223AD46 - _0223AD3A - 2 ; case 1
+ .short _0223AD5A - _0223AD3A - 2 ; case 2
+ .short _0223AD7A - _0223AD3A - 2 ; case 3
+ .short _0223AD96 - _0223AD3A - 2 ; case 4
+ .short _0223AD9A - _0223AD3A - 2 ; case 5
+_0223AD46:
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD06_0223AFF4
+ cmp r0, #1
+ bne _0223AD9A
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_0223AD5A:
+ add r0, r4, #0
+ add r0, #8
+ bl MOD06_0223ADD4
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD06_0223B174
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD06_0223AFF4
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_0223AD7A:
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD06_0223AFF4
+ add r0, r4, #0
+ add r0, #8
+ bl MOD06_0223AE28
+ cmp r0, #0
+ beq _0223AD9A
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_0223AD96:
+ add r0, r1, #1
+ str r0, [r4]
+_0223AD9A:
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223AD9C
+MOD06_0223AD9C: ; 0x0223AD9C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0223AD10
+ cmp r0, #1
+ beq _0223ADB0
+ add r4, #0x34
+ add r0, r4, #0
+ bl MOD06_0223B194
+_0223ADB0:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223ADB4
+MOD06_0223ADB4: ; 0x0223ADB4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r1, #0x34]
+ add r1, r2, #0
+ bl FUN_02058060
+ str r0, [r4]
+ cmp r0, #0
+ bne _0223ADCA
+ bl ErrorHandling
+_0223ADCA:
+ mov r0, #0
+ str r0, [r4, #0x24]
+ str r0, [r4, #0x28]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223ADD4
+MOD06_0223ADD4: ; 0x0223ADD4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl MOD06_0223AEE8
+ add r4, r0, #0
+ mov r0, #1
+ str r0, [r5, #0x28]
+ ldr r0, [r5]
+ mov r1, #0
+ bl FUN_0205889C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD06_0223AEF8
+ mov r2, #6
+ add r0, r5, #4
+ mov r1, #0
+ lsl r2, r2, #0xa
+ mov r3, #6
+ bl MOD06_0223A350
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0x14
+ lsl r1, r1, #0x10
+ mov r2, #0
+ mov r3, #0x2c
+ bl MOD06_0223A350
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r5, #0x14]
+ str r1, [sp, #8]
+ str r0, [sp, #4]
+ ldr r0, [r5]
+ add r1, sp, #0
+ bl FUN_02058BB4
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD06_0223AE28
+MOD06_0223AE28: ; 0x0223AE28
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD06_0223AEE8
+ add r6, r0, #0
+ ldr r0, [r4, #0x28]
+ cmp r0, #4
+ bhi _0223AEE0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223AE46: ; jump table
+ .short _0223AEE0 - _0223AE46 - 2 ; case 0
+ .short _0223AE50 - _0223AE46 - 2 ; case 1
+ .short _0223AE86 - _0223AE46 - 2 ; case 2
+ .short _0223AEAC - _0223AE46 - 2 ; case 3
+ .short _0223AEDA - _0223AE46 - 2 ; case 4
+_0223AE50:
+ ldr r0, [r4, #0x24]
+ add r1, r0, #1
+ str r1, [r4, #0x24]
+ add r0, r4, #4
+ bl MOD06_0223A35C
+ add r5, r0, #0
+ ldr r1, [r4, #4]
+ add r0, r6, #0
+ bl MOD06_0223AEF8
+ cmp r5, #1
+ bne _0223AEE0
+ mov r1, #6
+ mov r2, #1
+ add r0, r4, #4
+ lsl r1, r1, #0xa
+ lsl r2, r2, #0xc
+ mov r3, #2
+ bl MOD06_0223A350
+ mov r0, #0
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x28]
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ b _0223AEE0
+_0223AE86:
+ ldr r0, [r4, #0x24]
+ add r1, r0, #1
+ str r1, [r4, #0x24]
+ add r0, r4, #4
+ bl MOD06_0223A35C
+ add r5, r0, #0
+ ldr r1, [r4, #4]
+ add r0, r6, #0
+ bl MOD06_0223AEF8
+ cmp r5, #1
+ bne _0223AEE0
+ mov r0, #0
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x28]
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ b _0223AEE0
+_0223AEAC:
+ ldr r0, [r4, #0x24]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x14
+ str r1, [r4, #0x24]
+ bl MOD06_0223A35C
+ mov r1, #0
+ str r1, [sp]
+ add r5, r0, #0
+ ldr r0, [r4, #0x14]
+ str r1, [sp, #8]
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, sp, #0
+ bl FUN_02058BB4
+ cmp r5, #1
+ bne _0223AEE0
+ ldr r0, [r4, #0x28]
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ b _0223AEE0
+_0223AEDA:
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_0223AEE0:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223AEE8
+MOD06_0223AEE8: ; 0x0223AEE8
+ push {r3, lr}
+ ldr r0, [r0]
+ bl FUN_021F1C1C
+ bl FUN_021F1C30
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223AEF8
+MOD06_0223AEF8: ; 0x0223AEF8
+ push {lr}
+ sub sp, #0xc
+ str r1, [sp]
+ mov r1, #1
+ lsl r1, r1, #0xc
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ add r1, sp, #0
+ bl FUN_0201F7F0
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start MOD06_0223AF10
+MOD06_0223AF10: ; 0x0223AF10
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ add r7, r0, #0
+ str r2, [sp, #8]
+ add r0, #0x78
+ mov r1, #0x62
+ mov r2, #7
+ add r3, r6, #0
+ bl MOD06_0223A39C
+ add r0, r7, #0
+ add r5, r7, #0
+ str r0, [sp, #0xc]
+ add r0, #0x78
+ mov r4, #0
+ add r5, #0x88
+ str r0, [sp, #0xc]
+_0223AF34:
+ ldr r0, [sp, #8]
+ str r6, [sp]
+ add r3, r4, #0
+ str r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ mov r2, #0x62
+ add r3, #8
+ bl MOD06_0223A3AC
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, #4
+ blt _0223AF34
+ add r1, r7, #0
+ add r0, r7, #0
+ add r1, #0x78
+ bl MOD06_0223A3F0
+ add r4, r7, #0
+ mov r5, #0
+ add r4, #0x88
+_0223AF60:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD06_0223A3F8
+ add r5, r5, #1
+ add r4, #0x14
+ cmp r5, #4
+ blt _0223AF60
+ add r0, r7, #0
+ mov r1, #0
+ bl MOD06_0223A408
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223AF7C
+MOD06_0223AF7C: ; 0x0223AF7C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ bl MOD06_0223A410
+ mov r1, #1
+ lsl r1, r1, #0xc
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD06_0223A418
+ mov r4, #0
+ add r5, r6, #0
+ add r5, #0x88
+ add r7, r4, #0
+_0223AF9A:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD06_0223A3E8
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, #4
+ blt _0223AF9A
+ add r0, r6, #0
+ mov r2, #0
+ add r0, #0xec
+ str r2, [r0]
+ add r0, r6, #0
+ add r0, #0xd8
+ str r2, [r0]
+ add r0, r6, #0
+ mov r1, #0x52
+ add r0, #0xf0
+ str r1, [r0]
+ add r0, r6, #0
+ add r0, #0xf4
+ str r2, [r0]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD06_0223A408
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223AFD0
+MOD06_0223AFD0: ; 0x0223AFD0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, #0x78
+ add r6, r1, #0
+ bl MOD06_0223A3A4
+ mov r4, #0
+ add r5, #0x88
+_0223AFE0:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD06_0223A3C0
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, #4
+ blt _0223AFE0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223AFF4
+MOD06_0223AFF4: ; 0x0223AFF4
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ cmp r0, #3
+ bhi _0223B084
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223B00C: ; jump table
+ .short _0223B014 - _0223B00C - 2 ; case 0
+ .short _0223B084 - _0223B00C - 2 ; case 1
+ .short _0223B03C - _0223B00C - 2 ; case 2
+ .short _0223B084 - _0223B00C - 2 ; case 3
+_0223B014:
+ add r5, r6, #0
+ mov r4, #0
+ add r5, #0x88
+_0223B01A:
+ add r0, r5, #0
+ bl MOD06_0223A3DC
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, #4
+ blt _0223B01A
+ cmp r0, #1
+ bne _0223B084
+ add r0, r6, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r6, #0
+ add r0, #0xd8
+ str r1, [r0]
+ b _0223B084
+_0223B03C:
+ add r0, r6, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r6, #0
+ add r0, #0xec
+ str r1, [r0]
+ add r1, r6, #0
+ add r1, #0xec
+ add r0, r6, #0
+ ldr r1, [r1]
+ add r0, #0xdc
+ bl MOD06_0223A35C
+ add r4, r0, #0
+ add r0, r6, #0
+ add r0, #0xdc
+ ldr r1, [r0]
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD06_0223A418
+ cmp r4, #1
+ bne _0223B084
+ add r0, r6, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r6, #0
+ add r0, #0xd8
+ str r1, [r0]
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD06_0223A408
+_0223B084:
+ add r0, r6, #0
+ bl MOD06_0223B090
+ add r6, #0xd8
+ ldr r0, [r6]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_0223B090
+MOD06_0223B090: ; 0x0223B090
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xf4
+ ldr r0, [r0]
+ cmp r0, #4
+ bhi _0223B162
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223B0A8: ; jump table
+ .short _0223B0B2 - _0223B0A8 - 2 ; case 0
+ .short _0223B0E0 - _0223B0A8 - 2 ; case 1
+ .short _0223B110 - _0223B0A8 - 2 ; case 2
+ .short _0223B13E - _0223B0A8 - 2 ; case 3
+ .short _0223B162 - _0223B0A8 - 2 ; case 4
+_0223B0B2:
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ cmp r0, #0
+ bge _0223B162
+ ldr r0, _0223B164 ; =0x000006D2
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x48
+ add r0, #0xf0
+ str r1, [r0]
+ mov r0, #1
+ add r4, #0xf4
+ str r0, [r4]
+ pop {r4, pc}
+_0223B0E0:
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ cmp r0, #0
+ bge _0223B162
+ ldr r0, _0223B168 ; =0x000006D3
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ add r0, #0xf0
+ str r1, [r0]
+ mov r0, #2
+ add r4, #0xf4
+ str r0, [r4]
+ pop {r4, pc}
+_0223B110:
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ cmp r0, #0
+ bge _0223B162
+ ldr r0, _0223B16C ; =0x000006D6
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x84
+ add r0, #0xf0
+ str r1, [r0]
+ mov r0, #3
+ add r4, #0xf4
+ str r0, [r4]
+ pop {r4, pc}
+_0223B13E:
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ cmp r0, #0
+ bge _0223B162
+ ldr r0, _0223B170 ; =0x000006D7
+ bl FUN_020054C8
+ mov r0, #4
+ add r4, #0xf4
+ str r0, [r4]
+_0223B162:
+ pop {r4, pc}
+ .align 2, 0
+_0223B164: .word 0x000006D2
+_0223B168: .word 0x000006D3
+_0223B16C: .word 0x000006D6
+_0223B170: .word 0x000006D7
+
+ thumb_func_start MOD06_0223B174
+MOD06_0223B174: ; 0x0223B174
+ push {r3, lr}
+ add r1, r0, #0
+ mov r3, #2
+ add r1, #0xd8
+ str r3, [r1]
+ add r1, r0, #0
+ mov r2, #0
+ add r1, #0xec
+ str r2, [r1]
+ lsl r1, r3, #0xb
+ add r0, #0xdc
+ mov r3, #0x10
+ bl MOD06_0223A350
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223B194
+MOD06_0223B194: ; 0x0223B194
+ ldr r3, _0223B198 ; =MOD06_0223A400
+ bx r3
+ .align 2, 0
+_0223B198: .word MOD06_0223A400
+
+ thumb_func_start MOD06_0223B19C
+MOD06_0223B19C: ; 0x0223B19C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r1, #0x1e
+ lsl r1, r1, #4
+ add r4, r0, #0
+ bl FUN_02016998
+ mov r2, #0x1e
+ add r6, r0, #0
+ mov r1, #0
+ lsl r2, r2, #4
+ bl Call_FillMemWithValue
+ add r0, r6, #0
+ mov r1, #0x62
+ add r2, r5, #0
+ add r3, r4, #0
+ bl MOD06_0223A39C
+ add r5, r6, #0
+ mov r4, #0
+ add r5, #0x10
+_0223B1C8:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD06_0223B348
+ add r4, r4, #1
+ add r5, #0x90
+ cmp r4, #3
+ blt _0223B1C8
+ mov r0, #7
+ mov r1, #0
+ lsl r0, r0, #6
+ str r1, [r6, r0]
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_0223B1E4
+MOD06_0223B1E4: ; 0x0223B1E4
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r6, #0
+ mov r4, #0
+ add r5, #0x10
+_0223B1EE:
+ add r0, r5, #0
+ bl MOD06_0223B36C
+ add r4, r4, #1
+ add r5, #0x90
+ cmp r4, #3
+ blt _0223B1EE
+ add r0, r6, #0
+ bl MOD06_0223A3A4
+ add r0, r6, #0
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223B20C
+MOD06_0223B20C: ; 0x0223B20C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ cmp r0, #0
+ beq _0223B224
+ bl ErrorHandling
+_0223B224:
+ mov r0, #0x71
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add r1, r0, #0
+ add r1, #8
+ str r4, [r5, r1]
+ add r1, r0, #0
+ add r1, #0xc
+ str r6, [r5, r1]
+ add r1, r0, #0
+ add r1, #0x10
+ str r7, [r5, r1]
+ add r2, sp, #8
+ add r1, r0, #0
+ ldrh r3, [r2, #0x14]
+ add r1, #0x14
+ strh r3, [r5, r1]
+ add r1, r0, #0
+ ldrh r3, [r2, #0x18]
+ add r1, #0x16
+ strh r3, [r5, r1]
+ add r1, r0, #0
+ ldrh r2, [r2, #0x1c]
+ add r1, #0x18
+ strh r2, [r5, r1]
+ add r1, r0, #4
+ ldr r2, [sp, #0x18]
+ sub r0, r0, #4
+ str r2, [r5, r1]
+ mov r1, #1
+ str r1, [r5, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223B268
+MOD06_0223B268: ; 0x0223B268
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ mov r2, #0x71
+ add r5, r0, #0
+ lsl r2, r2, #2
+ ldr r1, [r5, r2]
+ sub r1, r1, #1
+ str r1, [r5, r2]
+ ldr r1, [r5, r2]
+ cmp r1, #0
+ bge _0223B2CA
+ add r1, r2, #4
+ ldr r1, [r5, r1]
+ str r1, [r5, r2]
+ bl MOD06_0223B438
+ add r4, r0, #0
+ bne _0223B290
+ bl ErrorHandling
+_0223B290:
+ mov r1, #0x73
+ lsl r1, r1, #2
+ ldr r0, [r5, r1]
+ mov r2, #1
+ str r0, [sp]
+ add r0, r1, #4
+ ldr r0, [r5, r0]
+ lsl r2, r2, #0x10
+ str r0, [sp, #4]
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ mov r3, #0x60
+ str r0, [sp, #8]
+ add r0, r1, #0
+ add r0, #0xc
+ ldrh r0, [r5, r0]
+ str r0, [sp, #0xc]
+ add r0, r1, #0
+ add r0, #0xe
+ ldrh r0, [r5, r0]
+ add r1, #0x10
+ str r0, [sp, #0x10]
+ ldrh r0, [r5, r1]
+ mov r1, #0
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ bl MOD06_0223B378
+_0223B2CA:
+ mov r4, #0
+ add r5, #0x10
+_0223B2CE:
+ add r0, r5, #0
+ bl MOD06_0223B3EC
+ add r4, r4, #1
+ add r5, #0x90
+ cmp r4, #3
+ blt _0223B2CE
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0223B2E0
+MOD06_0223B2E0: ; 0x0223B2E0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ add r5, #0x10
+_0223B2E8:
+ add r0, r5, #0
+ bl MOD06_0223B42C
+ add r4, r4, #1
+ add r5, #0x90
+ cmp r4, #3
+ blt _0223B2E8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0223B2F8
+MOD06_0223B2F8: ; 0x0223B2F8
+ ldr r3, _0223B300 ; =MOD06_0223B19C
+ mov r1, #6
+ bx r3
+ nop
+_0223B300: .word MOD06_0223B19C
+
+ thumb_func_start MOD06_0223B304
+MOD06_0223B304: ; 0x0223B304
+ ldr r3, _0223B308 ; =MOD06_0223B1E4
+ bx r3
+ .align 2, 0
+_0223B308: .word MOD06_0223B1E4
+
+ thumb_func_start MOD06_0223B30C
+MOD06_0223B30C: ; 0x0223B30C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ mov r4, #0x40
+ str r4, [sp]
+ mov r5, #0
+ str r5, [sp, #4]
+ str r5, [sp, #8]
+ str r5, [sp, #0xc]
+ lsl r5, r1, #0x10
+ lsl r1, r4, #9
+ add r1, r5, r1
+ lsl r5, r2, #0x10
+ mov r2, #0xa
+ lsl r2, r2, #0x10
+ add r2, r5, r2
+ lsl r5, r3, #0x10
+ lsl r3, r4, #0xa
+ add r3, r5, r3
+ bl MOD06_0223B20C
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0223B338
+MOD06_0223B338: ; 0x0223B338
+ ldr r3, _0223B33C ; =MOD06_0223B268
+ bx r3
+ .align 2, 0
+_0223B33C: .word MOD06_0223B268
+
+ thumb_func_start MOD06_0223B340
+MOD06_0223B340: ; 0x0223B340
+ ldr r3, _0223B344 ; =MOD06_0223B2E0
+ bx r3
+ .align 2, 0
+_0223B344: .word MOD06_0223B2E0
+
+ thumb_func_start MOD06_0223B348
+MOD06_0223B348: ; 0x0223B348
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x90
+ bl Call_FillMemWithValue
+ add r0, r4, #4
+ add r1, r5, #0
+ bl MOD06_0223A3F0
+ add r0, r4, #4
+ mov r1, #0
+ bl MOD06_0223A408
+ mov r0, #0
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0223B36C
+MOD06_0223B36C: ; 0x0223B36C
+ ldr r3, _0223B374 ; =0x020DF4A4
+ mov r1, #0
+ mov r2, #0x90
+ bx r3
+ .align 2, 0
+_0223B374: .word 0x020DF4A4
+
+ thumb_func_start MOD06_0223B378
+MOD06_0223B378: ; 0x0223B378
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ cmp r0, #0
+ beq _0223B38C
+ bl ErrorHandling
+_0223B38C:
+ add r0, r5, #0
+ add r0, #0x7c
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, r7, #0
+ bl MOD06_0223A350
+ add r0, r5, #4
+ mov r1, #1
+ bl MOD06_0223A408
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ add r0, r5, #4
+ bl MOD06_0223A410
+ mov r2, #1
+ add r0, r5, #4
+ add r1, r4, #0
+ lsl r2, r2, #0xc
+ add r3, r4, #0
+ bl MOD06_0223A418
+ add r1, sp, #8
+ ldrh r1, [r1, #0x1c]
+ add r0, r5, #4
+ mov r2, #0
+ bl MOD06_0223A420
+ add r1, sp, #8
+ ldrh r1, [r1, #0x20]
+ add r0, r5, #4
+ mov r2, #1
+ bl MOD06_0223A420
+ add r1, sp, #8
+ ldrh r1, [r1, #0x24]
+ add r0, r5, #4
+ mov r2, #2
+ bl MOD06_0223A420
+ mov r0, #1
+ str r0, [r5]
+ mov r0, #0
+ add r5, #0x8c
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223B3EC
+MOD06_0223B3EC: ; 0x0223B3EC
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0223B42A
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x8c
+ str r1, [r0]
+ add r1, r4, #0
+ add r1, #0x8c
+ add r0, r4, #0
+ ldr r1, [r1]
+ add r0, #0x7c
+ bl MOD06_0223A35C
+ ldr r1, [r4, #0x7c]
+ mov r2, #1
+ add r5, r0, #0
+ add r0, r4, #4
+ lsl r2, r2, #0xc
+ add r3, r1, #0
+ bl MOD06_0223A418
+ cmp r5, #1
+ bne _0223B42A
+ mov r0, #0
+ str r0, [r4]
+_0223B42A:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0223B42C
+MOD06_0223B42C: ; 0x0223B42C
+ ldr r3, _0223B434 ; =MOD06_0223A400
+ add r0, r0, #4
+ bx r3
+ nop
+_0223B434: .word MOD06_0223A400
+
+ thumb_func_start MOD06_0223B438
+MOD06_0223B438: ; 0x0223B438
+ mov r2, #0
+ add r3, r0, #0
+_0223B43C:
+ ldr r1, [r3, #0x10]
+ cmp r1, #0
+ bne _0223B44C
+ mov r1, #0x90
+ add r0, #0x10
+ mul r1, r2
+ add r0, r0, r1
+ bx lr
+_0223B44C:
+ add r2, r2, #1
+ add r3, #0x90
+ cmp r2, #3
+ blt _0223B43C
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD06_0223B458
+MOD06_0223B458: ; 0x0223B458
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ mov r1, #0xd4
+ add r7, r0, #0
+ bl FUN_02016998
+ add r6, r0, #0
+ mov r1, #0
+ mov r2, #0xd4
+ bl Call_FillMemWithValue
+ add r0, r6, #0
+ add r0, #0xc4
+ add r1, r7, #0
+ mov r2, #0x20
+ bl FUN_02016B20
+ add r0, r6, #0
+ add r0, #0x78
+ mov r1, #0x62
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD06_0223A39C
+ add r0, r6, #0
+ str r0, [sp, #8]
+ add r0, #0xc4
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r5, r6, #0
+ str r0, [sp, #0xc]
+ add r0, #0x78
+ mov r4, #0
+ add r5, #0x88
+ str r0, [sp, #0xc]
+_0223B4A0:
+ ldr r0, [sp, #8]
+ str r7, [sp]
+ str r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ mov r2, #0x62
+ add r3, r4, #1
+ bl MOD06_0223A3AC
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, #3
+ blt _0223B4A0
+ add r1, r6, #0
+ add r0, r6, #0
+ add r1, #0x78
+ bl MOD06_0223A3F0
+ add r4, r6, #0
+ mov r5, #0
+ add r4, #0x88
+_0223B4CA:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD06_0223A3F8
+ add r5, r5, #1
+ add r4, #0x14
+ cmp r5, #3
+ blt _0223B4CA
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD06_0223A408
+ add r0, r6, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223B4E8
+MOD06_0223B4E8: ; 0x0223B4E8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r0, #0x78
+ bl MOD06_0223A3A4
+ add r5, r7, #0
+ add r6, r7, #0
+ mov r4, #0
+ add r5, #0x88
+ add r6, #0xc4
+_0223B4FC:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD06_0223A3C0
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, #3
+ blt _0223B4FC
+ add r0, r7, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223B514
+MOD06_0223B514: ; 0x0223B514
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0223A410
+ ldr r1, _0223B550 ; =0xFFFFFFF8
+ add r0, r4, #0
+ add r1, sp
+ ldrh r1, [r1, #0x10]
+ mov r2, #0
+ bl MOD06_0223A420
+ ldr r1, _0223B550 ; =0xFFFFFFF8
+ add r0, r4, #0
+ add r1, sp
+ ldrh r1, [r1, #0x18]
+ mov r2, #2
+ bl MOD06_0223A420
+ ldr r1, _0223B550 ; =0xFFFFFFF8
+ add r0, r4, #0
+ add r1, sp
+ ldrh r1, [r1, #0x14]
+ mov r2, #1
+ bl MOD06_0223A420
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD06_0223A408
+ pop {r4, pc}
+ .align 2, 0
+_0223B550: .word 0xFFFFFFF8
+
+ thumb_func_start MOD06_0223B554
+MOD06_0223B554: ; 0x0223B554
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ add r5, #0x88
+_0223B55C:
+ add r0, r5, #0
+ bl MOD06_0223A3C8
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, #3
+ blt _0223B55C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0223B56C
+MOD06_0223B56C: ; 0x0223B56C
+ ldr r3, _0223B570 ; =MOD06_0223A400
+ bx r3
+ .align 2, 0
+_0223B570: .word MOD06_0223A400
+
+ thumb_func_start MOD06_0223B574
+MOD06_0223B574: ; 0x0223B574
+ ldr r3, _0223B57C ; =MOD06_0223B458
+ mov r1, #0
+ bx r3
+ nop
+_0223B57C: .word MOD06_0223B458
+
+ thumb_func_start MOD06_0223B580
+MOD06_0223B580: ; 0x0223B580
+ ldr r3, _0223B584 ; =MOD06_0223B4E8
+ bx r3
+ .align 2, 0
+_0223B584: .word MOD06_0223B4E8
+
+ thumb_func_start MOD06_0223B588
+MOD06_0223B588: ; 0x0223B588
+ ldr r3, _0223B58C ; =MOD06_0223B554
+ bx r3
+ .align 2, 0
+_0223B58C: .word MOD06_0223B554
+
+ thumb_func_start MOD06_0223B590
+MOD06_0223B590: ; 0x0223B590
+ ldr r3, _0223B594 ; =MOD06_0223B56C
+ bx r3
+ .align 2, 0
+_0223B594: .word MOD06_0223B56C
+
+ thumb_func_start MOD06_0223B598
+MOD06_0223B598: ; 0x0223B598
+ push {r3, r4, lr}
+ sub sp, #0xc
+ ldr r4, _0223B5BC ; =0x0000F49F
+ str r4, [sp]
+ ldr r4, _0223B5C0 ; =0x000080B5
+ str r4, [sp, #4]
+ sub r4, r4, #7
+ str r4, [sp, #8]
+ ldr r4, _0223B5C4 ; =0x00029BA8
+ add r1, r1, r4
+ ldr r4, _0223B5C8 ; =0x00037294
+ sub r2, r2, r4
+ ldr r4, _0223B5CC ; =0x000B6876
+ sub r3, r3, r4
+ bl MOD06_0223B514
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_0223B5BC: .word 0x0000F49F
+_0223B5C0: .word 0x000080B5
+_0223B5C4: .word 0x00029BA8
+_0223B5C8: .word 0x00037294
+_0223B5CC: .word 0x000B6876
+
+ thumb_func_start MOD06_0223B5D0
+MOD06_0223B5D0: ; 0x0223B5D0
+ push {r3, r4, lr}
+ sub sp, #0xc
+ ldr r4, _0223B5F4 ; =0x0000E5B1
+ str r4, [sp]
+ ldr r4, _0223B5F8 ; =0x0000C163
+ str r4, [sp, #4]
+ ldr r4, _0223B5FC ; =0x00007FF8
+ str r4, [sp, #8]
+ ldr r4, _0223B600 ; =0x00116A4F
+ add r1, r1, r4
+ ldr r4, _0223B604 ; =0x0004F16B
+ add r2, r2, r4
+ ldr r4, _0223B608 ; =0x00092118
+ sub r3, r3, r4
+ bl MOD06_0223B514
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_0223B5F4: .word 0x0000E5B1
+_0223B5F8: .word 0x0000C163
+_0223B5FC: .word 0x00007FF8
+_0223B600: .word 0x00116A4F
+_0223B604: .word 0x0004F16B
+_0223B608: .word 0x00092118
+
+ thumb_func_start MOD06_0223B60C
+MOD06_0223B60C: ; 0x0223B60C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ ldr r4, _0223B634 ; =0x0000E71D
+ str r4, [sp]
+ ldr r4, _0223B638 ; =0x00005335
+ str r4, [sp, #4]
+ ldr r4, _0223B63C ; =0x00007992
+ str r4, [sp, #8]
+ mov r4, #0xc6
+ lsl r4, r4, #0xc
+ sub r1, r1, r4
+ ldr r4, _0223B640 ; =0x00056FFF
+ add r2, r2, r4
+ ldr r4, _0223B644 ; =0x00210008
+ sub r3, r3, r4
+ bl MOD06_0223B514
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0223B634: .word 0x0000E71D
+_0223B638: .word 0x00005335
+_0223B63C: .word 0x00007992
+_0223B640: .word 0x00056FFF
+_0223B644: .word 0x00210008
+
+ thumb_func_start MOD06_0223B648
+MOD06_0223B648: ; 0x0223B648
+ ldr r3, _0223B650 ; =MOD06_0223B19C
+ mov r1, #6
+ bx r3
+ nop
+_0223B650: .word MOD06_0223B19C
+
+ thumb_func_start MOD06_0223B654
+MOD06_0223B654: ; 0x0223B654
+ ldr r3, _0223B658 ; =MOD06_0223B1E4
+ bx r3
+ .align 2, 0
+_0223B658: .word MOD06_0223B1E4
+
+ thumb_func_start MOD06_0223B65C
+MOD06_0223B65C: ; 0x0223B65C
+ ldr r3, _0223B660 ; =MOD06_0223B268
+ bx r3
+ .align 2, 0
+_0223B660: .word MOD06_0223B268
+
+ thumb_func_start MOD06_0223B664
+MOD06_0223B664: ; 0x0223B664
+ ldr r3, _0223B668 ; =MOD06_0223B2E0
+ bx r3
+ .align 2, 0
+_0223B668: .word MOD06_0223B2E0
+
+ thumb_func_start MOD06_0223B66C
+MOD06_0223B66C: ; 0x0223B66C
+ push {r4, lr}
+ sub sp, #0x10
+ mov r4, #0x40
+ str r4, [sp]
+ ldr r4, _0223B69C ; =0x0000F49F
+ str r4, [sp, #4]
+ ldr r4, _0223B6A0 ; =0x000080B5
+ str r4, [sp, #8]
+ sub r4, r4, #7
+ str r4, [sp, #0xc]
+ mov r4, #0x11
+ lsl r4, r4, #0xc
+ add r1, r1, r4
+ mov r4, #0x6f
+ lsl r4, r4, #0xc
+ sub r2, r2, r4
+ mov r4, #0xcb
+ lsl r4, r4, #0xc
+ sub r3, r3, r4
+ bl MOD06_0223B20C
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_0223B69C: .word 0x0000F49F
+_0223B6A0: .word 0x000080B5
+
+ thumb_func_start MOD06_0223B6A4
+MOD06_0223B6A4: ; 0x0223B6A4
+ push {r4, lr}
+ sub sp, #0x10
+ mov r4, #0x40
+ str r4, [sp]
+ ldr r4, _0223B6D0 ; =0x0000E5B1
+ str r4, [sp, #4]
+ ldr r4, _0223B6D4 ; =0x0000C163
+ str r4, [sp, #8]
+ ldr r4, _0223B6D8 ; =0x00007FF8
+ str r4, [sp, #0xc]
+ ldr r4, _0223B6DC ; =0x00252000
+ add r1, r1, r4
+ mov r4, #0x43
+ lsl r4, r4, #0xc
+ add r2, r2, r4
+ mov r4, #0xe
+ lsl r4, r4, #0xe
+ sub r3, r3, r4
+ bl MOD06_0223B20C
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_0223B6D0: .word 0x0000E5B1
+_0223B6D4: .word 0x0000C163
+_0223B6D8: .word 0x00007FF8
+_0223B6DC: .word 0x00252000
+
+ thumb_func_start MOD06_0223B6E0
+MOD06_0223B6E0: ; 0x0223B6E0
+ push {r4, lr}
+ sub sp, #0x10
+ mov r4, #0x40
+ str r4, [sp]
+ ldr r4, _0223B710 ; =0x0000E71D
+ str r4, [sp, #4]
+ ldr r4, _0223B714 ; =0x00005335
+ str r4, [sp, #8]
+ ldr r4, _0223B718 ; =0x00007992
+ str r4, [sp, #0xc]
+ mov r4, #0x53
+ lsl r4, r4, #0xe
+ sub r1, r1, r4
+ mov r4, #0xd
+ lsl r4, r4, #0xc
+ sub r2, r2, r4
+ mov r4, #0x71
+ lsl r4, r4, #0xe
+ sub r3, r3, r4
+ bl MOD06_0223B20C
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_0223B710: .word 0x0000E71D
+_0223B714: .word 0x00005335
+_0223B718: .word 0x00007992
+
+ thumb_func_start MOD06_0223B71C
+MOD06_0223B71C: ; 0x0223B71C
+ push {r4, lr}
+ add r4, r1, #0
+ mov r1, #0x18
+ bl FUN_02016998
+ add r3, r0, #0
+ mov r2, #0x18
+ mov r1, #0
+_0223B72C:
+ strb r1, [r3]
+ add r3, r3, #1
+ sub r2, r2, #1
+ bne _0223B72C
+ str r4, [r0]
+ mov r1, #0
+ str r1, [r0, #0x14]
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223B73C
+MOD06_0223B73C: ; 0x0223B73C
+ ldr r3, _0223B740 ; =0x02016A19
+ bx r3
+ .align 2, 0
+_0223B740: .word 0x02016A19
+
+ thumb_func_start MOD06_0223B744
+MOD06_0223B744: ; 0x0223B744
+ ldr r1, _0223B760 ; =0x0224F248
+ mov r2, #1
+ str r1, [r0, #4]
+ mov r1, #3
+ str r1, [r0, #8]
+ mov r1, #0
+ str r1, [r0, #0xc]
+ str r1, [r0, #0x10]
+ str r2, [r0, #0x14]
+ ldr r0, [r0]
+ ldr r3, _0223B764 ; =0x021DB52D
+ ldr r0, [r0, #0x48]
+ bx r3
+ nop
+_0223B760: .word 0x0224F248
+_0223B764: .word 0x021DB52D
+
+ thumb_func_start MOD06_0223B768
+MOD06_0223B768: ; 0x0223B768
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ cmp r0, #4
+ bhi _0223B80C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223B77E: ; jump table
+ .short _0223B80C - _0223B77E - 2 ; case 0
+ .short _0223B788 - _0223B77E - 2 ; case 1
+ .short _0223B80C - _0223B77E - 2 ; case 2
+ .short _0223B7C0 - _0223B77E - 2 ; case 3
+ .short _0223B80C - _0223B77E - 2 ; case 4
+_0223B788:
+ ldr r0, [r4, #0xc]
+ add r5, r0, #1
+ str r5, [r4, #0xc]
+ ldr r3, [r4, #0x10]
+ ldr r2, [r4, #4]
+ mov r0, #0x30
+ add r1, r3, #0
+ mul r1, r0
+ ldr r1, [r2, r1]
+ cmp r1, r5
+ bhi _0223B80C
+ ldr r1, [r4, #8]
+ add r2, r3, #1
+ cmp r2, r1
+ blo _0223B7AE
+ ldr r0, [r4, #0x14]
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+ pop {r3, r4, r5, pc}
+_0223B7AE:
+ str r2, [r4, #0x10]
+ ldr r1, [r4, #4]
+ mul r0, r2
+ add r0, r1, r0
+ ldr r1, [r4]
+ ldr r1, [r1, #0x40]
+ bl FUN_021DB53C
+ pop {r3, r4, r5, pc}
+_0223B7C0:
+ ldr r0, [r4, #0xc]
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _0223B7F6
+ ldr r3, [r4, #4]
+ mov r1, #0x30
+ add r2, r0, #0
+ mul r2, r1
+ add r2, r3, r2
+ sub r2, #0x30
+ ldr r3, [r2]
+ ldr r2, [r4, #0xc]
+ cmp r3, r2
+ bls _0223B80C
+ sub r3, r0, #1
+ str r3, [r4, #0x10]
+ add r0, r3, #0
+ mul r0, r1
+ ldr r1, [r4]
+ ldr r2, [r4, #4]
+ ldr r1, [r1, #0x40]
+ add r0, r2, r0
+ bl FUN_021DB53C
+ pop {r3, r4, r5, pc}
+_0223B7F6:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ bne _0223B80C
+ ldr r0, [r4]
+ mov r1, #1
+ ldr r0, [r0, #0x48]
+ bl FUN_021DB52C
+ ldr r0, [r4, #0x14]
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+_0223B80C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223B810
+MOD06_0223B810: ; 0x0223B810
+ ldr r0, [r0, #0x14]
+ bx lr
+
+ thumb_func_start MOD06_0223B814
+MOD06_0223B814: ; 0x0223B814
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ cmp r0, #2
+ beq _0223B822
+ bl ErrorHandling
+_0223B822:
+ mov r0, #3
+ str r0, [r4, #0x14]
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223B828
+MOD06_0223B828: ; 0x0223B828
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ mov r1, #0xec
+ add r7, r0, #0
+ bl FUN_02016998
+ add r6, r0, #0
+ mov r1, #0
+ mov r2, #0xec
+ bl Call_FillMemWithValue
+ add r0, r6, #0
+ add r0, #0xd8
+ str r4, [r0]
+ add r0, r6, #0
+ add r0, #0xdc
+ add r1, r7, #0
+ mov r2, #0x20
+ bl FUN_02016B20
+ add r0, r6, #0
+ add r0, #0x78
+ mov r1, #0x62
+ mov r2, #0xf
+ add r3, r7, #0
+ bl MOD06_0223A39C
+ add r0, r6, #0
+ str r0, [sp, #8]
+ add r0, #0xdc
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r5, r6, #0
+ str r0, [sp, #0xc]
+ add r0, #0x78
+ mov r4, #0
+ add r5, #0x88
+ str r0, [sp, #0xc]
+_0223B876:
+ ldr r0, [sp, #8]
+ str r7, [sp]
+ add r3, r4, #0
+ str r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ mov r2, #0x62
+ add r3, #0x10
+ bl MOD06_0223A3AC
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, #4
+ blt _0223B876
+ add r1, r6, #0
+ add r0, r6, #0
+ add r1, #0x78
+ bl MOD06_0223A3F0
+ add r4, r6, #0
+ mov r5, #0
+ add r4, #0x88
+_0223B8A2:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD06_0223A3F8
+ add r5, r5, #1
+ add r4, #0x14
+ cmp r5, #4
+ blt _0223B8A2
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD06_0223A408
+ add r0, r6, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223B8C0
+MOD06_0223B8C0: ; 0x0223B8C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r0, #0x78
+ bl MOD06_0223A3A4
+ add r5, r7, #0
+ add r6, r7, #0
+ mov r4, #0
+ add r5, #0x88
+ add r6, #0xdc
+_0223B8D4:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD06_0223A3C0
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, #4
+ blt _0223B8D4
+ add r0, r7, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223B8EC
+MOD06_0223B8EC: ; 0x0223B8EC
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ ldr r0, [r0, #0x34]
+ bl FUN_02058060
+ add r1, sp, #0
+ bl FUN_02058B5C
+ ldr r1, [sp]
+ ldr r2, [sp, #4]
+ ldr r3, [sp, #8]
+ add r0, r4, #0
+ bl MOD06_0223A410
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD06_0223A408
+ ldr r0, _0223B920 ; =0x000006D8
+ bl FUN_020054C8
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_0223B920: .word 0x000006D8
+
+ thumb_func_start MOD06_0223B924
+MOD06_0223B924: ; 0x0223B924
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ add r5, #0x88
+_0223B92C:
+ add r0, r5, #0
+ bl MOD06_0223A3DC
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, #4
+ blt _0223B92C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0223B93C
+MOD06_0223B93C: ; 0x0223B93C
+ ldr r3, _0223B940 ; =MOD06_0223A400
+ bx r3
+ .align 2, 0
+_0223B940: .word MOD06_0223A400
+
+ thumb_func_start MOD06_0223B944
+MOD06_0223B944: ; 0x0223B944
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl FUN_02012794
+ sub r1, r0, #1
+ cmp r1, #1
+ bhi _0223B960
+ ldr r0, [r5, #0x6c]
+ str r0, [r4]
+ ldr r0, [r5, #0x70]
+ str r0, [r6]
+ pop {r4, r5, r6, pc}
+_0223B960:
+ sub r0, r0, #3
+ cmp r0, #1
+ bhi _0223B96E
+ ldr r0, [r5, #0x74]
+ str r0, [r4]
+ ldr r0, [r5, #0x78]
+ str r0, [r6]
+_0223B96E:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_0223B970
+MOD06_0223B970: ; 0x0223B970
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl FUN_0202A9B0
+ str r0, [sp]
+ bl FUN_0202AA14
+ cmp r0, #0
+ beq _0223B9A6
+ ldr r0, [sp]
+ mov r1, #2
+ bl FUN_0202A990
+ bl MOD06_022458FC
+ ldr r1, [r5, #0x1c]
+ ldr r1, [r1]
+ cmp r1, r0
+ bne _0223B9A6
+ ldr r0, [r4, #0x64]
+ str r0, [r6]
+ ldr r0, [r4, #0x68]
+ str r0, [r7]
+_0223B9A6:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223B9A8
+MOD06_0223B9A8: ; 0x0223B9A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x1c]
+ add r4, r1, #0
+ ldr r0, [r0]
+ add r6, r2, #0
+ add r7, r3, #0
+ bl FUN_020349B8
+ cmp r0, #0
+ beq _0223B9FC
+ add r1, sp, #0
+ ldr r0, [r5, #0xc]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0202AB8C
+ cmp r4, #0
+ beq _0223B9FC
+ mov r0, #0x6a
+ mov r1, #8
+ mov r2, #4
+ bl FUN_02006528
+ add r1, sp, #0
+ ldrh r2, [r1, #2]
+ ldr r1, _0223BA00 ; =0x0000FFFF
+ cmp r2, r1
+ beq _0223B9E8
+ lsl r1, r2, #2
+ ldr r1, [r0, r1]
+ str r1, [r6]
+_0223B9E8:
+ add r1, sp, #0
+ ldrh r2, [r1]
+ ldr r1, _0223BA00 ; =0x0000FFFF
+ cmp r2, r1
+ beq _0223B9F8
+ lsl r1, r2, #2
+ ldr r1, [r0, r1]
+ str r1, [r7]
+_0223B9F8:
+ bl FUN_02016A18
+_0223B9FC:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223BA00: .word 0x0000FFFF
+
+ thumb_func_start MOD06_0223BA04
+MOD06_0223BA04: ; 0x0223BA04
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xb4
+ add r5, r0, #0
+ ldr r0, [r5, #0x38]
+ bl FUN_02055320
+ add r6, r0, #0
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ str r0, [sp, #0x14]
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl FUN_0204A6E0
+ str r0, [sp, #0x1c]
+ add r2, sp, #0x24
+ ldr r1, [sp, #0x1c]
+ add r0, r5, #0
+ add r2, #1
+ bl MOD06_0223C51C
+ add r1, sp, #0x24
+ strb r0, [r1]
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne _0223BA42
+ add sp, #0xb4
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223BA42:
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_02034CE0
+ add r4, r0, #0
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_0206B9B0
+ str r0, [sp, #0x20]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, sp, #0x30
+ bl MOD06_0223D2DC
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A9B0
+ bl FUN_0202AB54
+ cmp r0, #0
+ bne _0223BA8C
+ add r0, r7, #0
+ bl FUN_0204A1D8
+ mov r1, #1
+ str r1, [sp, #0x34]
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, sp, #0x24
+ strb r0, [r1, #0x18]
+_0223BA8C:
+ ldr r0, [r5, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DEC
+ add r3, r0, #0
+ ldr r0, [sp, #0x20]
+ add r1, sp, #0x24
+ str r0, [sp]
+ ldrb r1, [r1]
+ mov r0, #0
+ add r2, sp, #0x30
+ bl MOD06_0223CF14
+ add r1, sp, #0x24
+ strb r0, [r1]
+ add r0, r5, #0
+ add r1, sp, #0x24
+ bl MOD06_0223C764
+ ldr r0, [sp, #0x20]
+ add r1, sp, #0x24
+ bl MOD06_0223C738
+ add r1, sp, #0x24
+ ldrb r1, [r1]
+ ldr r2, [sp, #0x1c]
+ add r0, r5, #0
+ bl MOD06_0223C470
+ cmp r0, #0
+ beq _0223BAD2
+ mov r0, #1
+ str r0, [sp, #0x10]
+ b _0223BAD6
+_0223BAD2:
+ mov r0, #0
+ str r0, [sp, #0x10]
+_0223BAD6:
+ add r1, sp, #0x44
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ str r0, [r1, #0xc]
+ str r1, [sp]
+ add r0, sp, #0x48
+ str r0, [sp, #4]
+ add r0, sp, #0x4c
+ add r3, r5, #0
+ str r0, [sp, #8]
+ add r3, #0x90
+ ldr r1, [sp, #0x14]
+ ldr r3, [r3]
+ add r0, r6, #0
+ add r2, r5, #0
+ bl FUN_0205DFE8
+ cmp r0, #0
+ bne _0223BB06
+ mov r0, #0
+ str r0, [sp, #0x50]
+ b _0223BB0C
+_0223BB06:
+ mov r0, #1
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x50]
+_0223BB0C:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ bne _0223BB18
+ add sp, #0xb4
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223BB18:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED3C
+ cmp r0, #0
+ beq _0223BB2C
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _0223BB30
+_0223BB2C:
+ mov r0, #0
+ str r0, [sp, #0xc]
+_0223BB30:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _0223BB98
+ ldr r0, [sp, #0x50]
+ cmp r0, #0
+ bne _0223BB98
+ add r0, r5, #0
+ add r1, sp, #0x28
+ bl MOD06_0223D0E8
+ cmp r0, #0
+ beq _0223BB98
+ ldr r0, [sp, #0x28]
+ mov r1, #6
+ bl FUN_0202AAB8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, sp, #0x30
+ bl MOD06_0223D030
+ cmp r0, #0
+ bne _0223BB92
+ mov r0, #0xb
+ add r1, r0, #0
+ add r1, #0xf5
+ bl FUN_020476CC
+ str r0, [sp, #0x2c]
+ add r1, r5, #0
+ bl FUN_02047BB0
+ ldr r0, [sp, #0x30]
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x2c]
+ bl MOD06_0223D044
+ add r0, r5, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl FUN_0205DD40
+ ldr r1, [sp, #0x2c]
+ add r0, r5, #0
+ bl FUN_020469B8
+ add sp, #0xb4
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0223BB92:
+ add sp, #0xb4
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223BB98:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _0223BBB6
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ str r0, [sp, #0x18]
+ ldr r1, [sp, #0x18]
+ add r0, r5, #0
+ add r2, sp, #0x2c
+ bl MOD06_0223CFD0
+ b _0223BBC0
+_0223BBB6:
+ mov r0, #0xb
+ mov r1, #0x4a
+ bl FUN_020476CC
+ str r0, [sp, #0x2c]
+_0223BBC0:
+ ldr r0, [sp, #0x2c]
+ add r1, r5, #0
+ bl FUN_02047BB0
+ add r0, sp, #0x24
+ ldrb r0, [r0, #1]
+ cmp r0, #0
+ bne _0223BC84
+ mov r7, #4
+ mov r0, #0
+ add r1, r4, #0
+ add r2, sp, #0x54
+ add r3, r7, #0
+_0223BBDA:
+ ldr r6, [r1, #8]
+ add r0, r0, #1
+ str r6, [r2]
+ ldrsb r6, [r1, r7]
+ strh r6, [r2, #4]
+ ldrsb r6, [r1, r3]
+ add r1, #8
+ strh r6, [r2, #6]
+ add r2, #8
+ cmp r0, #0xc
+ blt _0223BBDA
+ add r0, r5, #0
+ bl FUN_020377AC
+ bl FUN_02024DA0
+ bl FUN_02024CA4
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, sp, #0x64
+ add r2, sp, #0x6c
+ bl MOD06_0223B944
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0x54
+ add r3, sp, #0x5c
+ bl MOD06_0223B970
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, sp, #0x84
+ add r3, sp, #0x8c
+ bl MOD06_0223B9A8
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, sp, #0x94
+ add r3, sp, #0x9c
+ bl MOD06_0224CDB8
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _0223BC5A
+ ldr r1, [sp, #0x18]
+ add r0, r5, #0
+ add r2, r6, #0
+ add r3, sp, #0x54
+ bl MOD06_0223CFFC
+ add r0, sp, #0x54
+ str r0, [sp]
+ add r0, sp, #0x30
+ str r0, [sp, #4]
+ add r0, sp, #0x44
+ str r0, [sp, #8]
+ ldr r1, [sp, #0x20]
+ ldr r2, [sp, #0x2c]
+ add r0, r5, #0
+ add r3, r4, #0
+ bl MOD06_0223C31C
+ b _0223BCCC
+_0223BC5A:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F368
+ ldr r1, [sp, #0x2c]
+ mov r2, #0xb
+ str r0, [r1, #0x20]
+ ldr r0, [sp, #0x2c]
+ ldr r1, [r5, #0xc]
+ bl FUN_0206ABC4
+ add r0, sp, #0x30
+ str r0, [sp]
+ ldr r1, [sp, #0x20]
+ ldr r2, [sp, #0x2c]
+ add r0, r5, #0
+ add r3, sp, #0x54
+ bl MOD06_0223C3F4
+ b _0223BCCC
+_0223BC84:
+ cmp r0, #1
+ bne _0223BCBC
+ mov r0, #0
+ add r1, sp, #0x54
+ mov r3, #0xd0
+ mov r6, #0xd1
+_0223BC90:
+ add r2, r4, #0
+ add r2, #0xd4
+ ldr r2, [r2]
+ add r0, r0, #1
+ str r2, [r1]
+ ldrsb r2, [r4, r3]
+ strh r2, [r1, #4]
+ ldrsb r2, [r4, r6]
+ add r4, #8
+ strh r2, [r1, #6]
+ add r1, #8
+ cmp r0, #5
+ blt _0223BC90
+ add r0, sp, #0x30
+ str r0, [sp]
+ ldr r1, [sp, #0x20]
+ ldr r2, [sp, #0x2c]
+ add r0, r5, #0
+ add r3, sp, #0x54
+ bl MOD06_0223C438
+ b _0223BCCC
+_0223BCBC:
+ bl ErrorHandling
+ ldr r0, [sp, #0x2c]
+ bl FUN_02047964
+ add sp, #0xb4
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223BCCC:
+ cmp r0, #0
+ beq _0223BCDA
+ ldr r1, [sp, #0x2c]
+ add r0, r5, #0
+ bl FUN_020469B8
+ b _0223BCDE
+_0223BCDA:
+ mov r0, #0
+ str r0, [sp, #0x10]
+_0223BCDE:
+ mov r0, #4
+ bl FUN_02016B90
+ cmp r0, #0
+ bne _0223BCEC
+ bl ErrorHandling
+_0223BCEC:
+ mov r0, #0xb
+ bl FUN_02016B90
+ cmp r0, #0
+ bne _0223BCFA
+ bl ErrorHandling
+_0223BCFA:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ bne _0223BD06
+ ldr r0, [sp, #0x2c]
+ bl FUN_02047964
+_0223BD06:
+ mov r0, #0
+ add r5, #0x74
+ strh r0, [r5]
+ ldr r0, [sp, #0x10]
+ add sp, #0xb4
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223BD14
+MOD06_0223BD14: ; 0x0223BD14
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x94
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r2, [sp, #0x10]
+ bl MOD06_0223CE0C
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ bne _0223BD2E
+ add sp, #0x94
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223BD2E:
+ ldr r0, [sp, #8]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ mov r1, #0
+ bl FUN_0206B9B0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0x14]
+ mov r2, #0
+ add r3, sp, #0x20
+ bl MOD06_0223D2DC
+ ldr r0, [sp, #8]
+ ldr r0, [r0, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DEC
+ add r3, r0, #0
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ str r0, [sp]
+ mov r0, #1
+ add r2, sp, #0x20
+ bl MOD06_0223CF14
+ add r6, r0, #0
+ bl FUN_0201B9EC
+ mov r1, #0x29
+ lsl r1, r1, #4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x64
+ blo _0223BD80
+ bl ErrorHandling
+_0223BD80:
+ cmp r5, r6
+ blt _0223BD8A
+ add sp, #0x94
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223BD8A:
+ ldr r0, [sp, #8]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ add r1, r0, #0
+ ldr r0, [sp, #8]
+ ldr r2, [sp, #0x10]
+ bl MOD06_0223CFD0
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ bl FUN_02047BB0
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0]
+ bl FUN_020480AC
+ ldr r0, [sp, #8]
+ ldr r0, [r0, #0x1c]
+ ldr r0, [r0]
+ bl FUN_020349AC
+ cmp r0, #0
+ beq _0223BDFC
+ ldr r0, [sp, #8]
+ bl MOD06_0224CC60
+ cmp r0, #0
+ beq _0223BDFC
+ add r0, sp, #0x18
+ add r0, #1
+ add r1, sp, #0x18
+ bl MOD06_0224CD94
+ add r0, sp, #0x1c
+ bl MOD06_0224CDA0
+ add r0, sp, #0x18
+ ldrb r3, [r0, #1]
+ ldrb r4, [r0]
+ ldr r2, [sp, #0x1c]
+ mov r1, #0
+ add r0, sp, #0x34
+_0223BDE6:
+ lsl r5, r1, #3
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ add r6, r0, r5
+ str r2, [r0, r5]
+ strh r3, [r6, #4]
+ lsr r1, r1, #0x18
+ strh r4, [r6, #6]
+ cmp r1, #5
+ blo _0223BDE6
+ b _0223BE4A
+_0223BDFC:
+ ldr r0, [sp, #8]
+ bl FUN_02034CE0
+ ldr r1, [sp, #0xc]
+ cmp r1, #0
+ beq _0223BE12
+ cmp r1, #1
+ beq _0223BE1A
+ cmp r1, #2
+ beq _0223BE22
+ b _0223BE28
+_0223BE12:
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ add r4, r0, r1
+ b _0223BE28
+_0223BE1A:
+ mov r1, #0x55
+ lsl r1, r1, #2
+ add r4, r0, r1
+ b _0223BE28
+_0223BE22:
+ mov r1, #6
+ lsl r1, r1, #6
+ add r4, r0, r1
+_0223BE28:
+ mov r6, #0
+ add r1, sp, #0x34
+ mov r7, #1
+_0223BE2E:
+ lsl r5, r6, #3
+ add r3, r4, r5
+ ldr r0, [r3, #4]
+ add r2, r1, r5
+ str r0, [r1, r5]
+ ldrsb r0, [r4, r5]
+ strh r0, [r2, #4]
+ ldrsb r0, [r3, r7]
+ strh r0, [r2, #6]
+ add r0, r6, #1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #5
+ blo _0223BE2E
+_0223BE4A:
+ add r0, sp, #0x20
+ str r0, [sp]
+ ldr r0, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0x14]
+ ldr r2, [r2]
+ add r3, sp, #0x34
+ bl MOD06_0223C454
+ cmp r0, #0
+ bne _0223BE6A
+ add sp, #0x94
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223BE6A:
+ mov r0, #1
+ add sp, #0x94
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223BE70
+MOD06_0223BE70: ; 0x0223BE70
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xac
+ add r5, r0, #0
+ ldr r0, [r5, #0x38]
+ str r1, [sp, #0xc]
+ bl FUN_02055320
+ add r4, r0, #0
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0204A6E0
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, sp, #0x1c
+ bl MOD06_0223C51C
+ cmp r0, #0
+ bne _0223BEA4
+ add sp, #0xac
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223BEA4:
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_02034CE0
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_0206B9B0
+ str r0, [sp, #0x18]
+ ldr r1, [sp, #0x18]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, sp, #0x28
+ bl MOD06_0223D2DC
+ mov r0, #1
+ mov r1, #0
+ str r0, [sp, #0x30]
+ add r0, sp, #0x3c
+ str r1, [r0]
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ str r1, [sp, #0x2c]
+ str r1, [r0, #0xc]
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED3C
+ cmp r0, #0
+ beq _0223BEF0
+ mov r0, #1
+ str r0, [sp, #0x10]
+ b _0223BEF4
+_0223BEF0:
+ mov r0, #0
+ str r0, [sp, #0x10]
+_0223BEF4:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ bne _0223BF3C
+ add r0, r5, #0
+ add r1, sp, #0x20
+ bl MOD06_0223D0E8
+ cmp r0, #0
+ beq _0223BF3C
+ mov r0, #0xb
+ add r1, r0, #0
+ add r1, #0xf5
+ bl FUN_020476CC
+ str r0, [sp, #0x24]
+ add r1, r5, #0
+ bl FUN_02047BB0
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0x20]
+ ldr r2, [sp, #0x24]
+ bl MOD06_0223D044
+ add r0, r5, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl FUN_0205DD40
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x24]
+ add r0, r5, #0
+ bl FUN_02046A20
+ add sp, #0xac
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0223BF3C:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ bne _0223BF5A
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ add r2, sp, #0x24
+ bl MOD06_0223CFD0
+ b _0223BF64
+_0223BF5A:
+ mov r0, #0xb
+ mov r1, #0x4a
+ bl FUN_020476CC
+ str r0, [sp, #0x24]
+_0223BF64:
+ ldr r0, [sp, #0x24]
+ add r1, r5, #0
+ bl FUN_02047BB0
+ add r0, sp, #0x1c
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0223C028
+ mov r7, #4
+ mov r0, #0
+ add r1, r4, #0
+ add r2, sp, #0x4c
+ add r3, r7, #0
+_0223BF7E:
+ ldr r6, [r1, #8]
+ add r0, r0, #1
+ str r6, [r2]
+ ldrsb r6, [r1, r7]
+ strh r6, [r2, #4]
+ ldrsb r6, [r1, r3]
+ add r1, #8
+ strh r6, [r2, #6]
+ add r2, #8
+ cmp r0, #0xc
+ blt _0223BF7E
+ add r0, r5, #0
+ bl FUN_020377AC
+ bl FUN_02024DA0
+ bl FUN_02024CA4
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, sp, #0x5c
+ add r2, sp, #0x64
+ bl MOD06_0223B944
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0x4c
+ add r3, sp, #0x54
+ bl MOD06_0223B970
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, sp, #0x7c
+ add r3, sp, #0x84
+ bl MOD06_0223B9A8
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, sp, #0x8c
+ add r3, sp, #0x94
+ bl MOD06_0224CDB8
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ bne _0223BFFE
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ add r2, r6, #0
+ add r3, sp, #0x4c
+ bl MOD06_0223CFFC
+ add r0, sp, #0x4c
+ str r0, [sp]
+ add r0, sp, #0x28
+ str r0, [sp, #4]
+ add r0, sp, #0x3c
+ str r0, [sp, #8]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x24]
+ add r0, r5, #0
+ add r3, r4, #0
+ bl MOD06_0223C31C
+ b _0223C06A
+_0223BFFE:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F368
+ ldr r1, [sp, #0x24]
+ mov r2, #0xb
+ str r0, [r1, #0x20]
+ ldr r0, [sp, #0x24]
+ ldr r1, [r5, #0xc]
+ bl FUN_0206ABC4
+ add r0, sp, #0x28
+ str r0, [sp]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x24]
+ add r0, r5, #0
+ add r3, sp, #0x4c
+ bl MOD06_0223C3F4
+ b _0223C06A
+_0223C028:
+ cmp r0, #1
+ bne _0223C060
+ mov r0, #0
+ add r1, sp, #0x4c
+ mov r3, #0xd0
+ mov r6, #0xd1
+_0223C034:
+ add r2, r4, #0
+ add r2, #0xd4
+ ldr r2, [r2]
+ add r0, r0, #1
+ str r2, [r1]
+ ldrsb r2, [r4, r3]
+ strh r2, [r1, #4]
+ ldrsb r2, [r4, r6]
+ add r4, #8
+ strh r2, [r1, #6]
+ add r1, #8
+ cmp r0, #5
+ blt _0223C034
+ add r0, sp, #0x28
+ str r0, [sp]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x24]
+ add r0, r5, #0
+ add r3, sp, #0x4c
+ bl MOD06_0223C438
+ b _0223C06A
+_0223C060:
+ bl ErrorHandling
+ add sp, #0xac
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223C06A:
+ cmp r0, #0
+ beq _0223C07A
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x24]
+ add r0, r5, #0
+ bl FUN_02046A20
+ b _0223C07E
+_0223C07A:
+ bl ErrorHandling
+_0223C07E:
+ mov r0, #0
+ add r5, #0x74
+ strh r0, [r5]
+ mov r0, #1
+ add sp, #0xac
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223C08C
+MOD06_0223C08C: ; 0x0223C08C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xac
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0
+ str r0, [r4]
+ ldr r0, [r5, #0x38]
+ bl FUN_02055320
+ add r6, r0, #0
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl FUN_0204A6E0
+ add r7, r0, #0
+ add r2, sp, #0x20
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, #1
+ bl MOD06_0223C51C
+ add r1, sp, #0x20
+ strb r0, [r1]
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne _0223C0CE
+ add sp, #0xac
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223C0CE:
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_02034CE0
+ str r0, [sp, #0x14]
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_0206B9B0
+ str r0, [sp, #0x1c]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ add r3, sp, #0x28
+ bl MOD06_0223D2DC
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A9B0
+ bl FUN_0202AB54
+ cmp r0, #0
+ bne _0223C118
+ add r0, r6, #0
+ bl FUN_0204A1D8
+ mov r1, #1
+ str r1, [sp, #0x2c]
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, sp, #0x20
+ strb r0, [r1, #0x14]
+_0223C118:
+ ldr r0, [r5, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DEC
+ add r3, r0, #0
+ ldr r0, [sp, #0x1c]
+ add r1, sp, #0x20
+ str r0, [sp]
+ ldrb r1, [r1]
+ mov r0, #0
+ add r2, sp, #0x28
+ bl MOD06_0223CF14
+ add r1, sp, #0x20
+ strb r0, [r1]
+ add r0, r5, #0
+ add r1, sp, #0x20
+ bl MOD06_0223C764
+ ldr r0, [sp, #0x1c]
+ add r1, sp, #0x20
+ bl MOD06_0223C738
+ add r1, sp, #0x20
+ ldrb r1, [r1]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD06_0223C470
+ cmp r0, #0
+ beq _0223C15E
+ mov r0, #1
+ str r0, [sp, #0x10]
+ b _0223C162
+_0223C15E:
+ mov r0, #0
+ str r0, [sp, #0x10]
+_0223C162:
+ add r1, sp, #0x3c
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ str r0, [r1, #0xc]
+ str r0, [sp, #0x48]
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED3C
+ cmp r0, #0
+ beq _0223C184
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _0223C188
+_0223C184:
+ mov r0, #0
+ str r0, [sp, #0xc]
+_0223C188:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _0223C1E0
+ add r0, r5, #0
+ add r1, sp, #0x24
+ bl MOD06_0223D0E8
+ cmp r0, #0
+ beq _0223C1E0
+ ldr r0, [sp, #0x24]
+ mov r1, #6
+ bl FUN_0202AAB8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, sp, #0x28
+ bl MOD06_0223D030
+ cmp r0, #0
+ bne _0223C1DA
+ mov r0, #0xb
+ add r1, r0, #0
+ add r1, #0xf5
+ bl FUN_020476CC
+ str r0, [r4]
+ add r1, r5, #0
+ bl FUN_02047BB0
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0x24]
+ ldr r2, [r4]
+ bl MOD06_0223D044
+ add r5, #0x90
+ ldr r0, [r5]
+ bl FUN_0205DD40
+ add sp, #0xac
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0223C1DA:
+ add sp, #0xac
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223C1E0:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _0223C1FE
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ str r0, [sp, #0x18]
+ ldr r1, [sp, #0x18]
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD06_0223CFD0
+ b _0223C208
+_0223C1FE:
+ mov r0, #0xb
+ mov r1, #0x4a
+ bl FUN_020476CC
+ str r0, [r4]
+_0223C208:
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl FUN_02047BB0
+ add r0, sp, #0x20
+ ldrb r0, [r0, #1]
+ cmp r0, #0
+ bne _0223C2CC
+ mov r7, #4
+ ldr r1, [sp, #0x14]
+ mov r0, #0
+ add r2, sp, #0x4c
+ add r3, r7, #0
+_0223C222:
+ ldr r6, [r1, #8]
+ add r0, r0, #1
+ str r6, [r2]
+ ldrsb r6, [r1, r7]
+ strh r6, [r2, #4]
+ ldrsb r6, [r1, r3]
+ add r1, #8
+ strh r6, [r2, #6]
+ add r2, #8
+ cmp r0, #0xc
+ blt _0223C222
+ add r0, r5, #0
+ bl FUN_020377AC
+ bl FUN_02024DA0
+ bl FUN_02024CA4
+ add r6, r0, #0
+ ldr r0, [sp, #0x14]
+ add r1, sp, #0x5c
+ add r2, sp, #0x64
+ bl MOD06_0223B944
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ add r2, sp, #0x4c
+ add r3, sp, #0x54
+ bl MOD06_0223B970
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, sp, #0x7c
+ add r3, sp, #0x84
+ bl MOD06_0223B9A8
+ ldr r0, [sp, #0x14]
+ add r1, r6, #0
+ add r2, sp, #0x8c
+ add r3, sp, #0x94
+ bl MOD06_0224CDB8
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _0223C2A2
+ ldr r1, [sp, #0x18]
+ add r0, r5, #0
+ add r2, r6, #0
+ add r3, sp, #0x4c
+ bl MOD06_0223CFFC
+ add r0, sp, #0x4c
+ str r0, [sp]
+ add r0, sp, #0x28
+ str r0, [sp, #4]
+ add r0, sp, #0x3c
+ str r0, [sp, #8]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [r4]
+ ldr r3, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD06_0223C31C
+ b _0223C2DC
+_0223C2A2:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F368
+ ldr r1, [r4]
+ mov r2, #0xb
+ str r0, [r1, #0x20]
+ ldr r0, [r4]
+ ldr r1, [r5, #0xc]
+ bl FUN_0206ABC4
+ add r0, sp, #0x28
+ str r0, [sp]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [r4]
+ add r0, r5, #0
+ add r3, sp, #0x4c
+ bl MOD06_0223C3F4
+ b _0223C2DC
+_0223C2CC:
+ bl ErrorHandling
+ ldr r0, [r4]
+ bl FUN_02047964
+ add sp, #0xac
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223C2DC:
+ cmp r0, #0
+ bne _0223C2E4
+ mov r0, #0
+ str r0, [sp, #0x10]
+_0223C2E4:
+ mov r0, #4
+ bl FUN_02016B90
+ cmp r0, #0
+ bne _0223C2F2
+ bl ErrorHandling
+_0223C2F2:
+ mov r0, #0xb
+ bl FUN_02016B90
+ cmp r0, #0
+ bne _0223C300
+ bl ErrorHandling
+_0223C300:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ bne _0223C30E
+ ldr r0, [r4]
+ bl FUN_02047964
+ b _0223C314
+_0223C30E:
+ mov r0, #0
+ add r5, #0x74
+ strh r0, [r5]
+_0223C314:
+ ldr r0, [sp, #0x10]
+ add sp, #0xac
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223C31C
+MOD06_0223C31C: ; 0x0223C31C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ ldr r6, [sp, #0x38]
+ add r5, r0, #0
+ ldr r0, [r6, #0xc]
+ add r7, r2, #0
+ str r1, [sp, #0x10]
+ ldr r4, [sp, #0x30]
+ cmp r0, #0
+ beq _0223C3CA
+ ldr r0, [r6]
+ cmp r0, #1
+ bne _0223C350
+ ldr r0, [r3, #0x7c]
+ str r0, [r4, #0x20]
+ add r0, r3, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ str r0, [r4, #0x28]
+ add r0, r3, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ add r3, #0x88
+ str r0, [r4, #0x50]
+ ldr r0, [r3]
+ str r0, [r4, #0x58]
+_0223C350:
+ add r0, r5, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ add r1, sp, #0x18
+ add r2, sp, #0x14
+ bl FUN_0205E098
+ ldr r0, [r6, #4]
+ cmp r0, #1
+ bne _0223C38C
+ add r0, r5, #0
+ bl FUN_020377AC
+ bl FUN_020238F4
+ bl FUN_020239BC
+ str r0, [sp]
+ ldr r0, [sp, #0x34]
+ mov r2, #1
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #8]
+ str r7, [sp, #0xc]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x14]
+ ldr r3, [r6, #8]
+ bl MOD06_0223CBD4
+ b _0223C3A6
+_0223C38C:
+ mov r0, #1
+ str r0, [sp]
+ str r7, [sp, #4]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x10]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x34]
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r3, r4, #0
+ bl MOD06_0223CC24
+_0223C3A6:
+ add r4, r0, #0
+ cmp r4, #0
+ beq _0223C3EC
+ ldr r0, [r5, #0x38]
+ bl FUN_02055320
+ add r6, r0, #0
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ add r2, r0, #0
+ add r0, r5, #0
+ add r5, #0x90
+ ldr r3, [r5]
+ add r1, r6, #0
+ bl FUN_0205DD80
+ b _0223C3EC
+_0223C3CA:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r1, #0
+ ldr r2, [sp, #0x34]
+ mov r1, #0xff
+ add r3, r4, #0
+ str r7, [sp, #8]
+ bl MOD06_0223CA6C
+ add r4, r0, #0
+ beq _0223C3EC
+ add r5, #0x90
+ ldr r0, [r5]
+ bl FUN_0205DD40
+_0223C3EC:
+ add r0, r4, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223C3F4
+MOD06_0223C3F4: ; 0x0223C3F4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ mov r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r1, #0xff
+ add r6, r3, #0
+ str r4, [sp, #8]
+ bl MOD06_0223CA6C
+ cmp r0, #0
+ bne _0223C41C
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_0223C41C:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r1, #0xff
+ add r3, r6, #0
+ str r4, [sp, #8]
+ bl MOD06_0223CA6C
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223C438
+MOD06_0223C438: ; 0x0223C438
+ push {lr}
+ sub sp, #0xc
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ add r0, r1, #0
+ ldr r2, [sp, #0x10]
+ mov r1, #0xff
+ bl MOD06_0223CA6C
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223C454
+MOD06_0223C454: ; 0x0223C454
+ push {lr}
+ sub sp, #0xc
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ add r0, r1, #0
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ bl MOD06_0223CA6C
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start MOD06_0223C470
+MOD06_0223C470: ; 0x0223C470
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ lsl r1, r7, #8
+ add r5, r0, #0
+ add r6, r2, #0
+ bl MOD06_0223C55C
+ cmp r0, #0
+ bne _0223C4B0
+ add r0, r5, #0
+ add r0, #0x74
+ ldrh r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x74
+ strh r1, [r0]
+ bl FUN_0201B9EC
+ mov r1, #0x29
+ lsl r1, r1, #4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x64
+ blo _0223C4A8
+ bl ErrorHandling
+_0223C4A8:
+ cmp r4, #5
+ blo _0223C4B0
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C4B0:
+ add r0, r6, #0
+ mov r4, #0x28
+ bl FUN_02054798
+ cmp r0, #0
+ beq _0223C4C4
+ add r4, #0x1e
+ lsl r0, r4, #0x18
+ lsr r4, r0, #0x18
+ b _0223C4D4
+_0223C4C4:
+ ldr r0, [r5, #0x38]
+ bl FUN_020553C4
+ cmp r0, #1
+ bne _0223C4D4
+ add r4, #0x1e
+ lsl r0, r4, #0x18
+ lsr r4, r0, #0x18
+_0223C4D4:
+ add r0, r5, #0
+ bl FUN_0204B33C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD06_02249230
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x64
+ bls _0223C4EC
+ mov r4, #0x64
+_0223C4EC:
+ bl FUN_0201B9EC
+ mov r1, #0x29
+ lsl r1, r1, #4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ cmp r6, #0x64
+ blo _0223C504
+ bl ErrorHandling
+_0223C504:
+ cmp r6, r4
+ bge _0223C518
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD06_0223C584
+ cmp r0, #0
+ beq _0223C518
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C518:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223C51C
+MOD06_0223C51C: ; 0x0223C51C
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ add r4, r2, #0
+ bl FUN_02054AFC
+ cmp r0, #0
+ beq _0223C558
+ add r0, r6, #0
+ bl FUN_0205481C
+ cmp r0, #0
+ beq _0223C548
+ mov r0, #1
+ strb r0, [r4]
+ add r0, r5, #0
+ bl MOD06_0223CE00
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r4, r5, r6, pc}
+_0223C548:
+ mov r0, #0
+ strb r0, [r4]
+ add r0, r5, #0
+ bl MOD06_0223CDF4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r4, r5, r6, pc}
+_0223C558:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_0223C55C
+MOD06_0223C55C: ; 0x0223C55C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #0xa
+ bl _u32_div_f
+ lsr r1, r0, #8
+ cmp r1, #8
+ bls _0223C570
+ mov r1, #8
+_0223C570:
+ mov r0, #8
+ add r4, #0x74
+ sub r1, r0, r1
+ ldrh r0, [r4]
+ cmp r0, r1
+ blo _0223C580
+ mov r0, #1
+ pop {r4, pc}
+_0223C580:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223C584
+MOD06_0223C584: ; 0x0223C584
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ bl FUN_0201B9EC
+ mov r1, #0x29
+ lsl r1, r1, #4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x64
+ blo _0223C5A0
+ bl ErrorHandling
+_0223C5A0:
+ cmp r5, r4
+ blo _0223C5A8
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0223C5A8:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0223C5AC
+MOD06_0223C5AC: ; 0x0223C5AC
+ push {r4, lr}
+ bl FUN_0201B9EC
+ mov r1, #0x29
+ lsl r1, r1, #4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x64
+ blo _0223C5C6
+ bl ErrorHandling
+_0223C5C6:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x14
+ bhs _0223C5D2
+ mov r0, #0
+ pop {r4, pc}
+_0223C5D2:
+ blo _0223C5DC
+ cmp r0, #0x28
+ bhs _0223C5DC
+ mov r0, #1
+ pop {r4, pc}
+_0223C5DC:
+ cmp r0, #0x28
+ blo _0223C5E8
+ cmp r0, #0x32
+ bhs _0223C5E8
+ mov r0, #2
+ pop {r4, pc}
+_0223C5E8:
+ cmp r0, #0x32
+ blo _0223C5F4
+ cmp r0, #0x3c
+ bhs _0223C5F4
+ mov r0, #3
+ pop {r4, pc}
+_0223C5F4:
+ cmp r0, #0x3c
+ blo _0223C600
+ cmp r0, #0x46
+ bhs _0223C600
+ mov r0, #4
+ pop {r4, pc}
+_0223C600:
+ cmp r0, #0x46
+ blo _0223C60C
+ cmp r0, #0x50
+ bhs _0223C60C
+ mov r0, #5
+ pop {r4, pc}
+_0223C60C:
+ cmp r0, #0x50
+ blo _0223C618
+ cmp r0, #0x55
+ bhs _0223C618
+ mov r0, #6
+ pop {r4, pc}
+_0223C618:
+ cmp r0, #0x55
+ blo _0223C624
+ cmp r0, #0x5a
+ bhs _0223C624
+ mov r0, #7
+ pop {r4, pc}
+_0223C624:
+ cmp r0, #0x5a
+ blo _0223C630
+ cmp r0, #0x5e
+ bhs _0223C630
+ mov r0, #8
+ pop {r4, pc}
+_0223C630:
+ cmp r0, #0x5e
+ blo _0223C63C
+ cmp r0, #0x62
+ bhs _0223C63C
+ mov r0, #9
+ pop {r4, pc}
+_0223C63C:
+ cmp r0, #0x62
+ bne _0223C644
+ mov r0, #0xa
+ pop {r4, pc}
+_0223C644:
+ mov r0, #0xb
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223C648
+MOD06_0223C648: ; 0x0223C648
+ push {r4, lr}
+ bl FUN_0201B9EC
+ mov r1, #0x29
+ lsl r1, r1, #4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x64
+ blo _0223C662
+ bl ErrorHandling
+_0223C662:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x3c
+ bhs _0223C66E
+ mov r0, #0
+ pop {r4, pc}
+_0223C66E:
+ blo _0223C678
+ cmp r0, #0x5a
+ bhs _0223C678
+ mov r0, #1
+ pop {r4, pc}
+_0223C678:
+ cmp r0, #0x5a
+ blo _0223C684
+ cmp r0, #0x5f
+ bhs _0223C684
+ mov r0, #2
+ pop {r4, pc}
+_0223C684:
+ cmp r0, #0x5f
+ blo _0223C690
+ cmp r0, #0x63
+ bhs _0223C690
+ mov r0, #3
+ pop {r4, pc}
+_0223C690:
+ mov r0, #4
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223C694
+MOD06_0223C694: ; 0x0223C694
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r4, #0
+ bl FUN_0201B9EC
+ mov r1, #0x29
+ lsl r1, r1, #4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ cmp r6, #0x64
+ blo _0223C6B2
+ bl ErrorHandling
+_0223C6B2:
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ cmp r5, #0
+ beq _0223C6C4
+ cmp r5, #1
+ beq _0223C6E8
+ cmp r5, #2
+ beq _0223C70C
+ b _0223C730
+_0223C6C4:
+ cmp r0, #0x3c
+ bhs _0223C6CC
+ mov r4, #0
+ b _0223C734
+_0223C6CC:
+ cmp r0, #0x5a
+ bhs _0223C6D4
+ mov r4, #1
+ b _0223C734
+_0223C6D4:
+ cmp r0, #0x5f
+ bhs _0223C6DC
+ mov r4, #2
+ b _0223C734
+_0223C6DC:
+ cmp r0, #0x63
+ bhs _0223C6E4
+ mov r4, #3
+ b _0223C734
+_0223C6E4:
+ mov r4, #4
+ b _0223C734
+_0223C6E8:
+ cmp r0, #0x28
+ bhs _0223C6F0
+ mov r4, #0
+ b _0223C734
+_0223C6F0:
+ cmp r0, #0x50
+ bhs _0223C6F8
+ mov r4, #1
+ b _0223C734
+_0223C6F8:
+ cmp r0, #0x5f
+ bhs _0223C700
+ mov r4, #2
+ b _0223C734
+_0223C700:
+ cmp r0, #0x63
+ bhs _0223C708
+ mov r4, #3
+ b _0223C734
+_0223C708:
+ mov r4, #4
+ b _0223C734
+_0223C70C:
+ cmp r0, #0x28
+ bhs _0223C714
+ mov r4, #0
+ b _0223C734
+_0223C714:
+ cmp r0, #0x50
+ bhs _0223C71C
+ mov r4, #1
+ b _0223C734
+_0223C71C:
+ cmp r0, #0x5f
+ bhs _0223C724
+ mov r4, #2
+ b _0223C734
+_0223C724:
+ cmp r0, #0x63
+ bhs _0223C72C
+ mov r4, #3
+ b _0223C734
+_0223C72C:
+ mov r4, #4
+ b _0223C734
+_0223C730:
+ bl ErrorHandling
+_0223C734:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_0223C738
+MOD06_0223C738: ; 0x0223C738
+ push {r4, lr}
+ add r4, r1, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ cmp r1, #0xe0
+ beq _0223C754
+ mov r0, #5
+ lsl r0, r0, #6
+ cmp r1, r0
+ bne _0223C760
+_0223C754:
+ ldrb r0, [r4]
+ mov r1, #3
+ lsl r0, r0, #1
+ bl _s32_div_f
+ strb r0, [r4]
+_0223C760:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223C764
+MOD06_0223C764: ; 0x0223C764
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0
+ bl FUN_0202A9B0
+ bl FUN_0202AB80
+ cmp r0, #1
+ bne _0223C77E
+ ldrb r0, [r4]
+ asr r0, r0, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_0223C77E:
+ cmp r0, #2
+ bne _0223C78A
+ ldrb r1, [r4]
+ lsr r0, r1, #1
+ add r0, r1, r0
+ strb r0, [r4]
+_0223C78A:
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223C78C
+MOD06_0223C78C: ; 0x0223C78C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldrb r0, [r1, #0xd]
+ cmp r0, #0
+ bne _0223C7C6
+ ldrb r0, [r1, #0xe]
+ cmp r0, #0x1c
+ bne _0223C7C6
+ bl FUN_0201B9EC
+ lsl r0, r0, #1
+ lsr r5, r0, #0x10
+ cmp r5, #2
+ blo _0223C7AC
+ bl ErrorHandling
+_0223C7AC:
+ cmp r5, #0
+ bne _0223C7C6
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl FUN_020671BC
+ mov r1, #0x19
+ bl _u32_div_f
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, r4, r5, pc}
+_0223C7C6:
+ bl FUN_0201B9EC
+ ldr r1, _0223C7E4 ; =0x00000A3E
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x19
+ blo _0223C7DC
+ bl ErrorHandling
+_0223C7DC:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_0223C7E4: .word 0x00000A3E
+
+ thumb_func_start MOD06_0223C7E8
+MOD06_0223C7E8: ; 0x0223C7E8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ ldrh r2, [r0, #6]
+ ldrh r1, [r0, #4]
+ cmp r1, r2
+ blo _0223C7FC
+ lsl r0, r2, #0x18
+ lsr r5, r0, #0x18
+ lsl r0, r1, #0x18
+ b _0223C802
+_0223C7FC:
+ lsl r0, r1, #0x18
+ lsr r5, r0, #0x18
+ lsl r0, r2, #0x18
+_0223C802:
+ lsr r4, r0, #0x18
+ bl FUN_0201B9EC
+ sub r1, r4, r5
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl _s32_div_f
+ lsl r0, r1, #0x18
+ lsr r6, r0, #0x18
+ ldrb r0, [r7, #0xd]
+ cmp r0, #0
+ bne _0223C84C
+ ldrb r0, [r7, #0xe]
+ cmp r0, #0x37
+ beq _0223C82C
+ cmp r0, #0x48
+ beq _0223C82C
+ cmp r0, #0x2e
+ bne _0223C84C
+_0223C82C:
+ bl FUN_0201B9EC
+ lsl r0, r0, #1
+ lsr r7, r0, #0x10
+ cmp r7, #2
+ blo _0223C83C
+ bl ErrorHandling
+_0223C83C:
+ cmp r7, #0
+ bne _0223C848
+ add r0, r5, r6
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C848:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C84C:
+ add r0, r5, r6
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223C854
+MOD06_0223C854: ; 0x0223C854
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp, #0x10]
+ ldr r6, [sp, #0x40]
+ str r1, [sp, #0x14]
+ mov r0, #0xb
+ str r2, [sp, #0x18]
+ add r5, r3, #0
+ bl FUN_020669C0
+ str r0, [sp, #0x1c]
+ bl FUN_02066978
+ ldrb r0, [r6, #0xd]
+ mov r7, #0
+ cmp r0, #0
+ bne _0223C8E0
+ ldrb r0, [r6, #0xe]
+ cmp r0, #0x38
+ bne _0223C8BE
+ ldr r0, [sp, #0x10]
+ mov r1, #0x12
+ bl FUN_02068678
+ cmp r0, #0
+ beq _0223C8E0
+ cmp r0, #0xfe
+ beq _0223C8E0
+ cmp r0, #0xff
+ beq _0223C8E0
+ bl FUN_0201B9EC
+ ldr r1, _0223C964 ; =0x00005556
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #3
+ blo _0223C8A6
+ bl ErrorHandling
+_0223C8A6:
+ cmp r4, #0
+ beq _0223C8E0
+ ldr r0, [sp, #0x44]
+ mov r1, #0x6f
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x24]
+ mov r7, #1
+ b _0223C8E0
+_0223C8BE:
+ cmp r0, #0x1c
+ bne _0223C8E0
+ bl FUN_0201B9EC
+ lsl r0, r0, #1
+ lsr r4, r0, #0x10
+ cmp r4, #2
+ blo _0223C8D2
+ bl ErrorHandling
+_0223C8D2:
+ cmp r4, #0
+ bne _0223C8E0
+ ldr r0, [sp, #0x44]
+ bl FUN_02068854
+ str r0, [sp, #0x20]
+ mov r7, #1
+_0223C8E0:
+ add r0, r5, #0
+ bl FUN_02068AD8
+ add r4, r0, #0
+ cmp r7, #0
+ beq _0223C92E
+_0223C8EC:
+ ldrb r0, [r6, #0xe]
+ cmp r0, #0x38
+ bne _0223C914
+ ldr r0, [sp, #0x10]
+ add r1, r4, #0
+ bl FUN_02068A20
+ add r7, r0, #0
+ cmp r7, #2
+ bne _0223C904
+ bl ErrorHandling
+_0223C904:
+ ldr r0, [sp, #0x24]
+ cmp r7, r0
+ bne _0223C92E
+ add r0, r5, #0
+ bl FUN_02068AD8
+ add r4, r0, #0
+ b _0223C8EC
+_0223C914:
+ cmp r0, #0x1c
+ bne _0223C8EC
+ add r0, r4, #0
+ bl FUN_02068884
+ ldr r1, [sp, #0x20]
+ cmp r0, r1
+ beq _0223C92E
+ add r0, r5, #0
+ bl FUN_02068AD8
+ add r4, r0, #0
+ b _0223C8EC
+_0223C92E:
+ mov r0, #1
+ str r0, [sp]
+ str r4, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r6]
+ mov r3, #0x20
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ bl FUN_02066ACC
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ ldr r3, [sp, #0x48]
+ add r1, r6, #0
+ bl MOD06_0223D1BC
+ cmp r0, #0
+ bne _0223C95A
+ bl ErrorHandling
+_0223C95A:
+ ldr r0, [sp, #0x1c]
+ bl FUN_02016A18
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223C964: .word 0x00005556
+
+ thumb_func_start MOD06_0223C968
+MOD06_0223C968: ; 0x0223C968
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0
+ mov r0, #0xb
+ str r1, [sp, #0xc]
+ str r2, [sp, #0x10]
+ add r5, r3, #0
+ bl FUN_020669C0
+ add r4, r0, #0
+ bl FUN_02066978
+ add r0, r7, #0
+ mov r1, #0x12
+ mov r6, #1
+ bl FUN_02068678
+ cmp r0, #0
+ beq _0223C996
+ cmp r0, #0xfe
+ beq _0223C996
+ cmp r0, #0xff
+ bne _0223C998
+_0223C996:
+ mov r6, #0
+_0223C998:
+ cmp r6, #0
+ beq _0223CA28
+ ldrb r0, [r5, #0xd]
+ cmp r0, #0
+ bne _0223CA28
+ ldrb r0, [r5, #0xe]
+ cmp r0, #0x38
+ bne _0223CA28
+ bl FUN_0201B9EC
+ ldr r1, _0223CA68 ; =0x00005556
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ cmp r6, #3
+ blo _0223C9BE
+ bl ErrorHandling
+_0223C9BE:
+ cmp r6, #0
+ beq _0223CA28
+ ldr r0, [sp, #0x28]
+ mov r1, #0x6f
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #1
+ bne _0223C9D8
+ mov r6, #0
+ b _0223C9E4
+_0223C9D8:
+ cmp r6, #0
+ bne _0223C9E0
+ mov r6, #1
+ b _0223C9E4
+_0223C9E0:
+ bl ErrorHandling
+_0223C9E4:
+ ldr r0, [sp, #0x28]
+ add r1, r5, #0
+ bl MOD06_0223C78C
+ str r6, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0
+ add r1, r7, #0
+ mov r3, #0x20
+ bl FUN_02066DD4
+ add r0, r4, #0
+ mov r1, #7
+ add r2, r5, #0
+ bl FUN_02067830
+ ldr r0, [sp, #0x10]
+ ldr r3, [sp, #0x2c]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD06_0223D1BC
+ cmp r0, #0
+ bne _0223CA1E
+ bl ErrorHandling
+_0223CA1E:
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+_0223CA28:
+ ldr r0, [sp, #0x28]
+ add r1, r5, #0
+ bl MOD06_0223C78C
+ str r0, [sp]
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0
+ add r1, r7, #0
+ mov r3, #0x20
+ bl FUN_02066D90
+ add r0, r4, #0
+ mov r1, #7
+ add r2, r5, #0
+ bl FUN_02067830
+ ldr r0, [sp, #0x10]
+ ldr r3, [sp, #0x2c]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD06_0223D1BC
+ cmp r0, #0
+ bne _0223CA5C
+ bl ErrorHandling
+_0223CA5C:
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223CA68: .word 0x00005556
+
+ thumb_func_start MOD06_0223CA6C
+MOD06_0223CA6C: ; 0x0223CA6C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #0xc]
+ mov r7, #0
+ add r1, sp, #0x10
+ strb r7, [r1]
+ add r1, sp, #0x18
+ ldrb r1, [r1, #0x10]
+ add r6, r0, #0
+ add r5, r2, #0
+ add r4, r3, #0
+ cmp r1, #0
+ beq _0223CA90
+ cmp r1, #1
+ beq _0223CAEC
+ cmp r1, #2
+ beq _0223CB38
+ b _0223CB86
+_0223CA90:
+ mov r1, #8
+ str r1, [sp]
+ mov r1, #0x2a
+ str r1, [sp, #4]
+ add r1, sp, #0x10
+ str r1, [sp, #8]
+ add r1, r5, #0
+ add r2, r4, #0
+ mov r3, #0xc
+ bl MOD06_0223CED4
+ cmp r0, #0
+ bne _0223CACE
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ mov r3, #0xc
+ bl MOD06_0223CED4
+ cmp r0, #0
+ bne _0223CACE
+ bl MOD06_0223C5AC
+ add r1, sp, #0x10
+ strb r0, [r1]
+_0223CACE:
+ add r2, sp, #0x10
+ ldrb r2, [r2]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD06_0223D27C
+ add r1, sp, #0x10
+ strb r0, [r1]
+ ldrb r0, [r1]
+ lsl r0, r0, #3
+ add r0, r4, r0
+ ldrh r0, [r0, #4]
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ b _0223CB8A
+_0223CAEC:
+ mov r1, #8
+ str r1, [sp]
+ mov r1, #0x2a
+ str r1, [sp, #4]
+ add r1, sp, #0x10
+ str r1, [sp, #8]
+ add r1, r5, #0
+ add r2, r4, #0
+ mov r3, #5
+ bl MOD06_0223CED4
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ mov r3, #5
+ bl MOD06_0223CED4
+ cmp r0, #0
+ bne _0223CB26
+ bl MOD06_0223C648
+ add r1, sp, #0x10
+ strb r0, [r1]
+_0223CB26:
+ add r0, sp, #0x10
+ ldrb r0, [r0]
+ add r1, r5, #0
+ lsl r0, r0, #3
+ add r0, r4, r0
+ bl MOD06_0223C7E8
+ add r7, r0, #0
+ b _0223CB8A
+_0223CB38:
+ mov r1, #8
+ str r1, [sp]
+ mov r1, #0x2a
+ str r1, [sp, #4]
+ add r1, sp, #0x10
+ str r1, [sp, #8]
+ add r1, r5, #0
+ add r2, r4, #0
+ mov r3, #5
+ bl MOD06_0223CED4
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ mov r3, #5
+ bl MOD06_0223CED4
+ cmp r0, #0
+ bne _0223CB74
+ ldr r0, [sp, #0xc]
+ bl MOD06_0223C694
+ add r1, sp, #0x10
+ strb r0, [r1]
+_0223CB74:
+ add r0, sp, #0x10
+ ldrb r0, [r0]
+ add r1, r5, #0
+ lsl r0, r0, #3
+ add r0, r4, r0
+ bl MOD06_0223C7E8
+ add r7, r0, #0
+ b _0223CB8A
+_0223CB86:
+ bl ErrorHandling
+_0223CB8A:
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD06_0223CF78
+ cmp r0, #0
+ beq _0223CB9E
+ add sp, #0x14
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223CB9E:
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD06_0223D030
+ cmp r0, #1
+ bne _0223CBB0
+ add sp, #0x14
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223CBB0:
+ ldr r0, [sp, #0x30]
+ str r6, [sp]
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ ldrb r0, [r0]
+ ldr r2, [sp, #0x2c]
+ add r1, r7, #0
+ lsl r0, r0, #3
+ ldr r0, [r4, r0]
+ add r3, r5, #0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl MOD06_0223C968
+ mov r0, #1
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223CBD4
+MOD06_0223CBD4: ; 0x0223CBD4
+ 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
+ cmp r5, #0
+ bne _0223CBE8
+ bl ErrorHandling
+_0223CBE8:
+ lsl r0, r4, #0x18
+ lsr r1, r0, #0x18
+ cmp r7, #0
+ beq _0223CC0A
+ ldr r0, [sp, #0x24]
+ ldr r3, [sp, #0x20]
+ str r0, [sp]
+ ldr r0, [sp, #0x28]
+ add r2, r6, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #8]
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl MOD06_0223C854
+ b _0223CC1E
+_0223CC0A:
+ ldr r0, [sp, #0x28]
+ ldr r3, [sp, #0x24]
+ str r0, [sp]
+ ldr r0, [sp, #0x2c]
+ add r2, r6, #0
+ str r0, [sp, #4]
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl MOD06_0223C968
+_0223CC1E:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223CC24
+MOD06_0223CC24: ; 0x0223CC24
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ add r6, r1, #0
+ mov r1, #0
+ add r0, sp, #0x10
+ strb r1, [r0]
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0x2a
+ add r5, r3, #0
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ add r1, r2, #0
+ add r0, r6, #0
+ add r2, r5, #0
+ mov r3, #0xc
+ bl MOD06_0223CED4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bne _0223CC7A
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ str r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ add r0, r6, #0
+ add r2, r5, #0
+ mov r3, #0xc
+ bl MOD06_0223CED4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bne _0223CC7A
+ bl MOD06_0223C5AC
+ add r1, sp, #0x10
+ strb r0, [r1]
+_0223CC7A:
+ add r0, sp, #0x10
+ ldrb r0, [r0]
+ lsl r0, r0, #3
+ add r1, r5, r0
+ ldrh r1, [r1, #4]
+ ldr r5, [r5, r0]
+ ldr r0, [sp, #0x30]
+ lsl r1, r1, #0x18
+ lsr r7, r1, #0x18
+ cmp r0, #0
+ bne _0223CCA6
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ add r1, r5, #0
+ add r2, r7, #0
+ bl FUN_0205E080
+ add r0, r4, #0
+ bl FUN_0205E480
+ b _0223CCC2
+_0223CCA6:
+ cmp r5, r0
+ bne _0223CCBA
+ add r5, r0, #0
+ ldr r0, [sp, #0x34]
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ add r0, r4, #0
+ bl FUN_0205E480
+ b _0223CCC2
+_0223CCBA:
+ add r4, #0x90
+ ldr r0, [r4]
+ bl FUN_0205DD40
+_0223CCC2:
+ ldr r0, [sp, #0x2c]
+ str r6, [sp]
+ str r0, [sp, #4]
+ lsl r0, r5, #0x10
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0xc]
+ lsr r0, r0, #0x10
+ add r1, r7, #0
+ bl MOD06_0223C968
+ mov r0, #1
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223CCDC
+MOD06_0223CCDC: ; 0x0223CCDC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_021F51D0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ mov r1, #0
+ bl FUN_0206B9B0
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ mov r2, #0
+ add r3, sp, #0x10
+ bl MOD06_0223D2DC
+ bl FUN_0201B9EC
+ ldr r1, _0223CD78 ; =0x00001746
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ cmp r6, #0xb
+ blo _0223CD1A
+ bl ErrorHandling
+_0223CD1A:
+ add r0, r6, #5
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ add r0, sp, #0x10
+ ldrb r1, [r0, #0xd]
+ cmp r1, #0
+ bne _0223CD4C
+ ldrb r0, [r0, #0xe]
+ cmp r0, #0x37
+ beq _0223CD36
+ cmp r0, #0x48
+ beq _0223CD36
+ cmp r0, #0x2e
+ bne _0223CD4C
+_0223CD36:
+ bl FUN_0201B9EC
+ lsl r0, r0, #1
+ lsr r6, r0, #0x10
+ cmp r6, #2
+ blo _0223CD46
+ bl ErrorHandling
+_0223CD46:
+ cmp r6, #0
+ beq _0223CD4C
+ mov r7, #0xf
+_0223CD4C:
+ add r0, r5, #0
+ bl FUN_021F522C
+ mov r1, #0x63
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ mov r0, #2
+ orr r0, r2
+ str r0, [r4, r1]
+ ldr r0, [sp, #0xc]
+ add r1, r7, #0
+ str r0, [sp]
+ ldr r0, [sp, #8]
+ mov r2, #1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add r3, sp, #0x10
+ str r4, [sp, #4]
+ bl MOD06_0223C968
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223CD78: .word 0x00001746
+
+ thumb_func_start MOD06_0223CD7C
+MOD06_0223CD7C: ; 0x0223CD7C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ str r2, [sp, #8]
+ ldr r0, [r5, #0xc]
+ add r7, r1, #0
+ add r6, r3, #0
+ bl FUN_0206BB1C
+ mov r1, #0
+ bl FUN_0206B9B0
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ add r3, sp, #0xc
+ bl MOD06_0223D2DC
+ str r4, [sp]
+ str r6, [sp, #4]
+ ldr r1, [sp, #8]
+ add r0, r7, #0
+ mov r2, #1
+ add r3, sp, #0xc
+ bl MOD06_0223C968
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223CDB8
+MOD06_0223CDB8: ; 0x0223CDB8
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r4, #0
+ bl FUN_02054AFC
+ cmp r0, #0
+ beq _0223CDE6
+ add r0, r6, #0
+ bl FUN_0205481C
+ cmp r0, #0
+ beq _0223CDDE
+ add r0, r5, #0
+ bl MOD06_0223CE00
+ add r4, r0, #0
+ b _0223CDE6
+_0223CDDE:
+ add r0, r5, #0
+ bl MOD06_0223CDF4
+ add r4, r0, #0
+_0223CDE6:
+ cmp r4, #0
+ beq _0223CDEE
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0223CDEE:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223CDF4
+MOD06_0223CDF4: ; 0x0223CDF4
+ push {r3, lr}
+ bl FUN_02034CE0
+ ldr r0, [r0]
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223CE00
+MOD06_0223CE00: ; 0x0223CE00
+ push {r3, lr}
+ bl FUN_02034CE0
+ add r0, #0xcc
+ ldr r0, [r0]
+ pop {r3, pc}
+
+ thumb_func_start MOD06_0223CE0C
+MOD06_0223CE0C: ; 0x0223CE0C
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_02034CE0
+ cmp r4, #0
+ beq _0223CE22
+ cmp r4, #1
+ beq _0223CE2A
+ cmp r4, #2
+ beq _0223CE32
+ b _0223CE3A
+_0223CE22:
+ mov r1, #0x49
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ pop {r4, pc}
+_0223CE2A:
+ mov r1, #0x15
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ pop {r4, pc}
+_0223CE32:
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ pop {r4, pc}
+_0223CE3A:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223CE44
+MOD06_0223CE44: ; 0x0223CE44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r0, #0
+ mov r0, #0
+ str r1, [sp]
+ add r7, r2, #0
+ str r3, [sp, #4]
+ add r4, r0, #0
+ add r1, sp, #0x10
+_0223CE56:
+ strb r4, [r1, r0]
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0xc
+ blo _0223CE56
+ ldr r0, [sp]
+ add r5, r4, #0
+ cmp r0, #0
+ bls _0223CEAC
+_0223CE6A:
+ lsl r0, r5, #3
+ str r0, [sp, #0xc]
+ ldr r0, [r6, r0]
+ mov r1, #6
+ bl FUN_02068678
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ mov r1, #7
+ ldr r0, [r6, r0]
+ bl FUN_02068678
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, [sp, #8]
+ cmp r0, r7
+ beq _0223CE94
+ cmp r1, r7
+ bne _0223CEA0
+_0223CE94:
+ add r1, r4, #1
+ lsl r1, r1, #0x18
+ add r0, r4, #0
+ lsr r4, r1, #0x18
+ add r1, sp, #0x10
+ strb r5, [r1, r0]
+_0223CEA0:
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r0, [sp]
+ cmp r5, r0
+ blo _0223CE6A
+_0223CEAC:
+ cmp r4, #0
+ beq _0223CEB6
+ ldr r0, [sp]
+ cmp r4, r0
+ bne _0223CEBC
+_0223CEB6:
+ add sp, #0x1c
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223CEBC:
+ bl FUN_0201B9EC
+ add r1, r4, #0
+ bl _s32_div_f
+ add r0, sp, #0x10
+ ldrb r1, [r0, r1]
+ ldr r0, [sp, #4]
+ strb r1, [r0]
+ mov r0, #1
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223CED4
+MOD06_0223CED4: ; 0x0223CED4
+ push {r4, r5, r6, lr}
+ ldrb r0, [r1, #0xd]
+ add r5, r2, #0
+ add r6, r3, #0
+ cmp r0, #0
+ bne _0223CF0E
+ add r0, sp, #0
+ ldrb r1, [r1, #0xe]
+ ldrb r0, [r0, #0x14]
+ cmp r1, r0
+ bne _0223CF0E
+ bl FUN_0201B9EC
+ lsl r0, r0, #1
+ lsr r4, r0, #0x10
+ cmp r4, #2
+ blo _0223CEFA
+ bl ErrorHandling
+_0223CEFA:
+ cmp r4, #0
+ bne _0223CF0E
+ add r2, sp, #0
+ ldrb r2, [r2, #0x10]
+ ldr r3, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD06_0223CE44
+ pop {r4, r5, r6, pc}
+_0223CF0E:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223CF14
+MOD06_0223CF14: ; 0x0223CF14
+ push {r3, r4}
+ ldrb r4, [r2, #0xd]
+ cmp r4, #0
+ bne _0223CF70
+ cmp r0, #0
+ ldrb r0, [r2, #0xe]
+ beq _0223CF26
+ cmp r0, #0x3c
+ b _0223CF6A
+_0223CF26:
+ cmp r0, #0x47
+ beq _0223CF32
+ cmp r0, #0x63
+ beq _0223CF32
+ cmp r0, #0x23
+ bne _0223CF36
+_0223CF32:
+ lsl r1, r1, #1
+ b _0223CF6A
+_0223CF36:
+ cmp r0, #8
+ bne _0223CF46
+ cmp r3, #0xa
+ bne _0223CF6A
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r1, r0, #1
+ b _0223CF6A
+_0223CF46:
+ cmp r0, #0x51
+ bne _0223CF58
+ sub r0, r3, #5
+ cmp r0, #2
+ bhi _0223CF6A
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r1, r0, #1
+ b _0223CF6A
+_0223CF58:
+ cmp r0, #0x49
+ beq _0223CF64
+ cmp r0, #0x5f
+ beq _0223CF64
+ cmp r0, #1
+ bne _0223CF6A
+_0223CF64:
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r1, r0, #1
+_0223CF6A:
+ cmp r1, #0x64
+ ble _0223CF70
+ mov r1, #0x64
+_0223CF70:
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD06_0223CF78
+MOD06_0223CF78: ; 0x0223CF78
+ push {r4, lr}
+ add r4, r2, #0
+ ldr r2, [r0, #8]
+ cmp r2, #0
+ beq _0223CF86
+ mov r0, #0
+ pop {r4, pc}
+_0223CF86:
+ ldrb r2, [r0, #0xd]
+ cmp r2, #0
+ bne _0223CFCA
+ ldrb r0, [r0, #0xe]
+ cmp r0, #0x33
+ beq _0223CF96
+ cmp r0, #0x16
+ bne _0223CFCA
+_0223CF96:
+ add r0, r1, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #5
+ bhi _0223CFAC
+ mov r0, #0
+ pop {r4, pc}
+_0223CFAC:
+ sub r0, r0, #5
+ cmp r4, r0
+ bgt _0223CFCA
+ bl FUN_0201B9EC
+ lsl r0, r0, #1
+ lsr r4, r0, #0x10
+ cmp r4, #2
+ blo _0223CFC2
+ bl ErrorHandling
+_0223CFC2:
+ cmp r4, #0
+ bne _0223CFCA
+ mov r0, #1
+ pop {r4, pc}
+_0223CFCA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223CFD0
+MOD06_0223CFD0: ; 0x0223CFD0
+ push {r4, lr}
+ add r4, r2, #0
+ cmp r1, #0
+ bne _0223CFE4
+ mov r0, #0xb
+ mov r1, #0
+ bl FUN_020476CC
+ str r0, [r4]
+ pop {r4, pc}
+_0223CFE4:
+ ldr r0, [r0, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034E24
+ add r1, r0, #0
+ ldrh r1, [r1]
+ mov r0, #0xb
+ bl FUN_020477EC
+ str r0, [r4]
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223CFFC
+MOD06_0223CFFC: ; 0x0223CFFC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r6, r2, #0
+ add r4, r3, #0
+ cmp r1, #0
+ beq _0223D02A
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A9B0
+ mov r1, #1
+ bl FUN_0202A990
+ add r1, r4, #0
+ add r1, #0x38
+ str r1, [sp]
+ ldr r2, [r5, #0x1c]
+ add r4, #0x30
+ ldr r2, [r2]
+ add r1, r6, #0
+ add r3, r4, #0
+ bl MOD06_02245658
+_0223D02A:
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223D030
+MOD06_0223D030: ; 0x0223D030
+ ldr r2, [r1, #4]
+ cmp r2, #0
+ beq _0223D040
+ ldrb r1, [r1, #0xc]
+ cmp r1, r0
+ bls _0223D040
+ mov r0, #1
+ bx lr
+_0223D040:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD06_0223D044
+MOD06_0223D044: ; 0x0223D044
+ push {r0, r1, r2, r3}
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ mov r0, #4
+ add r6, r2, #0
+ bl FUN_020669C0
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #4
+ bl FUN_0202AAB8
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #6
+ bl FUN_0202AAB8
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0202AAB8
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r1, #3
+ bl FUN_0202AAB8
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #7
+ bl FUN_0202AAB8
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ mov r1, #5
+ bl FUN_0202AAB8
+ add r1, sp, #0x10
+ strh r0, [r1]
+ ldr r1, [sp, #4]
+ ldr r0, [sp, #0xc]
+ lsl r1, r1, #0x10
+ str r0, [sp]
+ ldr r3, [sp, #8]
+ add r0, r4, #0
+ lsr r1, r1, #0x10
+ add r2, r7, #0
+ bl FUN_02066EA4
+ add r0, r4, #0
+ mov r1, #7
+ add r2, sp, #0x30
+ bl FUN_02067830
+ add r0, r4, #0
+ mov r1, #0x9f
+ add r2, sp, #0x14
+ bl FUN_02067830
+ add r0, r4, #0
+ mov r1, #0xa2
+ add r2, sp, #0x10
+ bl FUN_02067830
+ ldr r0, [r6, #8]
+ add r1, r4, #0
+ bl FUN_0206B900
+ cmp r0, #0
+ bne _0223D0D8
+ bl ErrorHandling
+_0223D0D8:
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+
+ thumb_func_start MOD06_0223D0E8
+MOD06_0223D0E8: ; 0x0223D0E8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r0, [sp]
+ ldr r0, [r0, #0xc]
+ str r1, [sp, #4]
+ mov r5, #0
+ bl FUN_0202A9B0
+ add r6, r0, #0
+ add r4, r5, #0
+_0223D0FC:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0202AA40
+ bl FUN_0206043C
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0202AA74
+ cmp r0, #0
+ beq _0223D134
+ ldr r0, [sp]
+ ldr r0, [r0, #0x1c]
+ ldr r0, [r0]
+ cmp r7, r0
+ bne _0223D134
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0202AAA0
+ lsl r2, r5, #2
+ add r1, sp, #8
+ str r0, [r1, r2]
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+_0223D134:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #3
+ blo _0223D0FC
+ cmp r5, #0
+ bne _0223D148
+ add sp, #0x14
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223D148:
+ bl FUN_0201B9EC
+ lsl r0, r0, #1
+ lsr r4, r0, #0x10
+ cmp r4, #2
+ blo _0223D158
+ bl ErrorHandling
+_0223D158:
+ cmp r4, #0
+ bne _0223D162
+ add sp, #0x14
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0223D162:
+ cmp r5, #1
+ bls _0223D1AA
+ cmp r5, #0
+ bne _0223D16E
+ bl ErrorHandling
+_0223D16E:
+ cmp r5, #1
+ bhi _0223D176
+ mov r4, #0
+ b _0223D19E
+_0223D176:
+ bl FUN_0201B9EC
+ add r4, r0, #0
+ ldr r0, _0223D1B8 ; =0x0000FFFF
+ add r1, r5, #0
+ bl _s32_div_f
+ add r1, r0, #0
+ add r1, r1, #1
+ lsl r1, r1, #0x10
+ add r0, r4, #0
+ lsr r1, r1, #0x10
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, r5
+ blo _0223D19E
+ bl ErrorHandling
+_0223D19E:
+ lsl r1, r4, #2
+ add r0, sp, #8
+ ldr r1, [r0, r1]
+ ldr r0, [sp, #4]
+ str r1, [r0]
+ b _0223D1B0
+_0223D1AA:
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #4]
+ str r1, [r0]
+_0223D1B0:
+ mov r0, #1
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223D1B8: .word 0x0000FFFF
+
+ thumb_func_start MOD06_0223D1BC
+MOD06_0223D1BC: ; 0x0223D1BC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ str r0, [sp]
+ ldrb r0, [r5, #0xd]
+ add r6, r2, #0
+ add r7, r3, #0
+ cmp r0, #0
+ bne _0223D1D8
+ ldrb r0, [r5, #0xe]
+ cmp r0, #0xe
+ bne _0223D1D8
+ mov r2, #1
+ b _0223D1DA
+_0223D1D8:
+ mov r2, #0
+_0223D1DA:
+ ldr r1, [r7]
+ add r0, r6, #0
+ bl FUN_0206A094
+ mov r4, #0
+ add r0, r6, #0
+ mov r1, #5
+ add r2, r4, #0
+ bl FUN_020671BC
+ ldr r1, _0223D270 ; =0x000001A6
+ cmp r0, r1
+ bne _0223D208
+ ldrb r0, [r5, #0xf]
+ mov r4, #1
+ cmp r0, #0
+ add r0, sp, #8
+ bne _0223D204
+ mov r1, #0
+ strb r1, [r0]
+ b _0223D24E
+_0223D204:
+ strb r4, [r0]
+ b _0223D24E
+_0223D208:
+ add r1, r1, #1
+ cmp r0, r1
+ bne _0223D222
+ ldrb r0, [r5, #0x10]
+ mov r4, #1
+ cmp r0, #0
+ add r0, sp, #8
+ bne _0223D21E
+ mov r1, #0
+ strb r1, [r0]
+ b _0223D24E
+_0223D21E:
+ strb r4, [r0]
+ b _0223D24E
+_0223D222:
+ cmp r0, #0xc9
+ bne _0223D24E
+ ldrb r0, [r5, #0x11]
+ mov r4, #1
+ lsl r1, r0, #3
+ ldr r0, _0223D274 ; =0x0224F308
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ bl FUN_0201B9EC
+ ldr r1, [sp, #4]
+ bl _s32_div_f
+ ldrb r0, [r5, #0x11]
+ lsl r2, r0, #3
+ ldr r0, _0223D278 ; =0x0224F30C
+ ldr r0, [r0, r2]
+ ldrb r1, [r0, r1]
+ add r0, sp, #8
+ strb r1, [r0]
+_0223D24E:
+ cmp r4, #0
+ beq _0223D25C
+ add r0, r6, #0
+ mov r1, #0x70
+ add r2, sp, #8
+ bl FUN_02067830
+_0223D25C:
+ ldr r0, [sp]
+ add r1, r6, #0
+ lsl r0, r0, #2
+ add r0, r7, r0
+ ldr r0, [r0, #4]
+ bl FUN_0206B900
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223D270: .word 0x000001A6
+_0223D274: .word 0x0224F308
+_0223D278: .word 0x0224F30C
+
+ thumb_func_start MOD06_0223D27C
+MOD06_0223D27C: ; 0x0223D27C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldrb r0, [r1, #0xd]
+ add r4, r2, #0
+ cmp r0, #0
+ bne _0223D2D8
+ ldrb r0, [r1, #0xe]
+ cmp r0, #0x48
+ beq _0223D296
+ cmp r0, #0x37
+ beq _0223D296
+ cmp r0, #0x2e
+ bne _0223D2D8
+_0223D296:
+ bl FUN_0201B9EC
+ lsl r0, r0, #1
+ lsr r6, r0, #0x10
+ cmp r6, #2
+ blo _0223D2A6
+ bl ErrorHandling
+_0223D2A6:
+ cmp r6, #0
+ bne _0223D2AE
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223D2AE:
+ mov r1, #0
+_0223D2B0:
+ lsl r2, r1, #3
+ lsl r7, r4, #3
+ add r6, r5, r2
+ ldr r3, [r5, r2]
+ ldr r2, [r5, r7]
+ add r0, r5, r7
+ cmp r3, r2
+ bne _0223D2CA
+ ldrh r2, [r6, #4]
+ ldrh r0, [r0, #4]
+ cmp r2, r0
+ bls _0223D2CA
+ add r4, r1, #0
+_0223D2CA:
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, #0xc
+ blo _0223D2B0
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223D2D8:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223D2DC
+MOD06_0223D2DC: ; 0x0223D2DC
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r6, r0, #0
+ add r5, r2, #0
+ add r0, r7, #0
+ mov r1, #0x4c
+ mov r2, #0
+ add r4, r3, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0223D302
+ mov r2, #0
+ add r0, r7, #0
+ mov r1, #0xa
+ strb r2, [r4, #0xd]
+ bl FUN_020671BC
+ b _0223D308
+_0223D302:
+ mov r0, #1
+ strb r0, [r4, #0xd]
+ mov r0, #0x7b
+_0223D308:
+ strb r0, [r4, #0xe]
+ mov r0, #0
+ strb r0, [r4, #0xc]
+ str r0, [r4, #4]
+ str r0, [r4, #8]
+ cmp r5, #0
+ beq _0223D344
+ add r1, r5, #0
+ add r1, #0x8c
+ ldr r1, [r1]
+ strb r1, [r4, #0xf]
+ add r1, r5, #0
+ add r1, #0x90
+ ldr r1, [r1]
+ strb r1, [r4, #0x10]
+ add r1, r5, #0
+ add r1, #0xa0
+ ldr r1, [r1]
+ cmp r1, #0
+ beq _0223D342
+ cmp r1, #8
+ ble _0223D338
+ bl ErrorHandling
+_0223D338:
+ add r5, #0xa0
+ ldr r0, [r5]
+ sub r0, r0, #1
+ strb r0, [r4, #0x11]
+ b _0223D344
+_0223D342:
+ strb r0, [r4, #0x11]
+_0223D344:
+ ldr r0, [r6, #0xc]
+ bl FUN_020238F4
+ bl FUN_020239BC
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223D354
+MOD06_0223D354: ; 0x0223D354
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ mov r1, #1
+ add r5, r0, #0
+ ldr r2, _0223D3B0 ; =0x0000FFFF
+ mov r0, #0
+ lsl r1, r1, #8
+_0223D362:
+ lsl r3, r0, #1
+ ldrh r3, [r4, r3]
+ cmp r3, r2
+ beq _0223D374
+ add r0, r0, #1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, r1
+ blo _0223D362
+_0223D374:
+ mov r1, #0x8b
+ lsl r1, r1, #2
+ strb r0, [r5, r1]
+ ldrb r1, [r5, r1]
+ mov r0, #0xb
+ lsl r1, r1, #1
+ bl FUN_02016998
+ mov r1, #0x8a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r1, r1, #4
+ ldrb r1, [r5, r1]
+ mov r0, #0
+ cmp r1, #0
+ ble _0223D3AE
+ mov r1, #0x8a
+ lsl r1, r1, #2
+ add r2, r1, #4
+_0223D39A:
+ lsl r7, r0, #1
+ ldrh r6, [r4, r7]
+ ldr r3, [r5, r1]
+ add r0, r0, #1
+ strh r6, [r3, r7]
+ lsl r0, r0, #0x10
+ ldrb r3, [r5, r2]
+ lsr r0, r0, #0x10
+ cmp r0, r3
+ blt _0223D39A
+_0223D3AE:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223D3B0: .word 0x0000FFFF
+
+ thumb_func_start MOD06_0223D3B4
+MOD06_0223D3B4: ; 0x0223D3B4
+ push {r4, lr}
+ mov r1, #0x93
+ mov r0, #0xb
+ lsl r1, r1, #2
+ bl FUN_02016998
+ mov r2, #0x93
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ add r0, r4, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223D3D0
+MOD06_0223D3D0: ; 0x0223D3D0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ str r2, [sp]
+ add r6, r3, #0
+ bl MOD06_0223D3B4
+ add r4, r0, #0
+ ldr r0, [r5, #8]
+ mov r1, #0xb
+ str r0, [r4]
+ mov r0, #0x60
+ bl FUN_020219F4
+ mov r1, #0x23
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ mov r1, #0x83
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ mov r1, #0x85
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x87
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ mov r1, #0x22
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r2, [sp, #0x18]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ add r0, r5, #0
+ bl MOD06_0223D490
+ ldr r1, _0223D488 ; =0x0000023E
+ strb r0, [r4, r1]
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r2, [r0]
+ add r0, r1, #0
+ sub r0, #0x26
+ str r2, [r4, r0]
+ add r0, r1, #3
+ strb r6, [r4, r0]
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _0223D456
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ mov r1, #0x21
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ b _0223D472
+_0223D456:
+ cmp r0, #1
+ ldr r0, [r5, #0xc]
+ bne _0223D468
+ bl FUN_02026CC4
+ mov r1, #0x21
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ b _0223D472
+_0223D468:
+ bl FUN_02029C80
+ mov r1, #0x21
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+_0223D472:
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD06_0223D354
+ ldr r1, _0223D48C ; =MOD06_0223D4AC
+ add r0, r7, #0
+ add r2, r4, #0
+ bl FUN_0204640C
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223D488: .word 0x0000023E
+_0223D48C: .word MOD06_0223D4AC
+
+ thumb_func_start MOD06_0223D490
+MOD06_0223D490: ; 0x0223D490
+ push {r3, lr}
+ ldr r0, [r0, #0x38]
+ bl FUN_020552F8
+ cmp r0, #0
+ beq _0223D4A4
+ cmp r0, #1
+ beq _0223D4A4
+ cmp r0, #3
+ bne _0223D4A8
+_0223D4A4:
+ mov r0, #0xa
+ pop {r3, pc}
+_0223D4A8:
+ mov r0, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD06_0223D4AC
+MOD06_0223D4AC: ; 0x0223D4AC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl FUN_02046528
+ add r5, r0, #0
+ add r0, r6, #0
+ bl FUN_0204652C
+ ldr r1, _0223D604 ; =0x0000022F
+ add r4, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0x14
+ bls _0223D4C8
+ b _0223D5D0
+_0223D4C8:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223D4D4: ; jump table
+ .short _0223D4FE - _0223D4D4 - 2 ; case 0
+ .short _0223D50A - _0223D4D4 - 2 ; case 1
+ .short _0223D514 - _0223D4D4 - 2 ; case 2
+ .short _0223D524 - _0223D4D4 - 2 ; case 3
+ .short _0223D52E - _0223D4D4 - 2 ; case 4
+ .short _0223D538 - _0223D4D4 - 2 ; case 5
+ .short _0223D542 - _0223D4D4 - 2 ; case 6
+ .short _0223D54C - _0223D4D4 - 2 ; case 7
+ .short _0223D556 - _0223D4D4 - 2 ; case 8
+ .short _0223D560 - _0223D4D4 - 2 ; case 9
+ .short _0223D56A - _0223D4D4 - 2 ; case 10
+ .short _0223D574 - _0223D4D4 - 2 ; case 11
+ .short _0223D57E - _0223D4D4 - 2 ; case 12
+ .short _0223D58C - _0223D4D4 - 2 ; case 13
+ .short _0223D596 - _0223D4D4 - 2 ; case 14
+ .short _0223D5A0 - _0223D4D4 - 2 ; case 15
+ .short _0223D5D0 - _0223D4D4 - 2 ; case 16
+ .short _0223D5D0 - _0223D4D4 - 2 ; case 17
+ .short _0223D5A8 - _0223D4D4 - 2 ; case 18
+ .short _0223D5B6 - _0223D4D4 - 2 ; case 19
+ .short _0223D5C6 - _0223D4D4 - 2 ; case 20
+_0223D4FE:
+ bl MOD06_0223D608
+ ldr r0, _0223D604 ; =0x0000022F
+ mov r1, #1
+ strb r1, [r4, r0]
+ b _0223D5D0
+_0223D50A:
+ bl MOD06_0223D788
+ ldr r1, _0223D604 ; =0x0000022F
+ strb r0, [r4, r1]
+ b _0223D5D0
+_0223D514:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_0223D918
+ ldr r0, _0223D604 ; =0x0000022F
+ mov r1, #3
+ strb r1, [r4, r0]
+ b _0223D5D0
+_0223D524:
+ bl MOD06_0223DB64
+ ldr r1, _0223D604 ; =0x0000022F
+ strb r0, [r4, r1]
+ b _0223D5D0
+_0223D52E:
+ bl MOD06_0223DFB4
+ ldr r1, _0223D604 ; =0x0000022F
+ strb r0, [r4, r1]
+ b _0223D5D0
+_0223D538:
+ bl MOD06_0223E198
+ ldr r1, _0223D604 ; =0x0000022F
+ strb r0, [r4, r1]
+ b _0223D5D0
+_0223D542:
+ bl MOD06_0223E29C
+ ldr r1, _0223D604 ; =0x0000022F
+ strb r0, [r4, r1]
+ b _0223D5D0
+_0223D54C:
+ bl MOD06_0223E5E4
+ ldr r1, _0223D604 ; =0x0000022F
+ strb r0, [r4, r1]
+ b _0223D5D0
+_0223D556:
+ bl MOD06_0223E61C
+ ldr r1, _0223D604 ; =0x0000022F
+ strb r0, [r4, r1]
+ b _0223D5D0
+_0223D560:
+ bl MOD06_0223E79C
+ ldr r1, _0223D604 ; =0x0000022F
+ strb r0, [r4, r1]
+ b _0223D5D0
+_0223D56A:
+ bl MOD06_0223E858
+ ldr r1, _0223D604 ; =0x0000022F
+ strb r0, [r4, r1]
+ b _0223D5D0
+_0223D574:
+ bl MOD06_0223E950
+ ldr r1, _0223D604 ; =0x0000022F
+ strb r0, [r4, r1]
+ b _0223D5D0
+_0223D57E:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_0223EA38
+ ldr r1, _0223D604 ; =0x0000022F
+ strb r0, [r4, r1]
+ b _0223D5D0
+_0223D58C:
+ bl MOD06_0223EB04
+ ldr r1, _0223D604 ; =0x0000022F
+ strb r0, [r4, r1]
+ b _0223D5D0
+_0223D596:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_0223ECD8
+ b _0223D5D0
+_0223D5A0:
+ add r0, r6, #0
+ bl MOD06_0223ECF0
+ b _0223D5D0
+_0223D5A8:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_0223ED54
+ ldr r1, _0223D604 ; =0x0000022F
+ strb r0, [r4, r1]
+ b _0223D5D0
+_0223D5B6:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_0223EB2C
+ ldr r0, _0223D604 ; =0x0000022F
+ mov r1, #0x14
+ strb r1, [r4, r0]
+ b _0223D5D0
+_0223D5C6:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_0223D7EC
+ pop {r4, r5, r6, pc}
+_0223D5D0:
+ ldr r0, _0223D604 ; =0x0000022F
+ ldrb r1, [r4, r0]
+ cmp r1, #4
+ blo _0223D5FE
+ cmp r1, #0xb
+ bhi _0223D5FE
+ sub r0, #0x37
+ mov r1, #1
+ ldr r0, [r4, r0]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ mov r1, #1
+ ldr r0, [r4, r0]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ add r4, #0x94
+ ldr r0, [r4]
+ bl FUN_0201FDEC
+_0223D5FE:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0223D604: .word 0x0000022F
+
+ thumb_func_start MOD06_0223D608
+MOD06_0223D608: ; 0x0223D608
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0223D618
+ add r0, r4, #0
+ bl MOD06_0223D63C
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223D618
+MOD06_0223D618: ; 0x0223D618
+ push {r4, lr}
+ mov r2, #0x7a
+ add r4, r0, #0
+ mov r0, #0
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #0xb
+ bl FUN_0200A86C
+ add r1, r4, #0
+ add r1, #0x88
+ str r0, [r1]
+ mov r0, #0xb
+ bl FUN_0200AA80
+ add r4, #0x8c
+ str r0, [r4]
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223D63C
+MOD06_0223D63C: ; 0x0223D63C
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ ldr r0, _0223D77C ; =0x00000241
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ bne _0223D6B8
+ mov r4, #3
+ add r0, r4, #0
+ mov r1, #0xb
+ bl FUN_02012838
+ add r1, r5, #0
+ add r1, #0x84
+ str r0, [r1]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0x84
+ add r1, #0x88
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xf
+ mov r3, #2
+ bl FUN_02012880
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0x84
+ add r1, #0x88
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x10
+ mov r3, #0xe
+ bl FUN_02012880
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0x84
+ add r1, #0x88
+ mov r2, #0x11
+ add r3, r2, #0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ sub r3, #0x13
+ bl FUN_02012880
+ mov r3, #1
+ str r3, [sp]
+ mov r1, #0xd
+ str r1, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, _0223D780 ; =0x000002DF
+ add r1, r5, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r5]
+ add r1, #8
+ add r2, r4, #0
+ bl FUN_02019064
+ b _0223D710
+_0223D6B8:
+ mov r4, #2
+ add r0, r4, #0
+ mov r1, #0xb
+ bl FUN_02012838
+ add r1, r5, #0
+ add r1, #0x84
+ str r0, [r1]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0x84
+ add r1, #0x88
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xf
+ add r3, r4, #0
+ bl FUN_02012880
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0x84
+ add r1, #0x88
+ mov r2, #0x11
+ add r3, r2, #0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ sub r3, #0x13
+ bl FUN_02012880
+ mov r3, #1
+ str r3, [sp]
+ mov r1, #0xd
+ str r1, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, _0223D780 ; =0x000002DF
+ add r1, r5, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r5]
+ add r1, #8
+ mov r2, #3
+ bl FUN_02019064
+_0223D710:
+ add r0, r5, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ add r2, sp, #0x14
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r0, #8
+ str r0, [sp, #0x18]
+ mov r0, #0
+ strb r0, [r2, #8]
+ mov r1, #1
+ strb r1, [r2, #9]
+ strb r4, [r2, #0xa]
+ ldrb r3, [r2, #0xb]
+ mov r1, #0xf
+ bic r3, r1
+ strb r3, [r2, #0xb]
+ ldrb r3, [r2, #0xb]
+ mov r1, #0x30
+ bic r3, r1
+ strb r3, [r2, #0xb]
+ ldrb r3, [r2, #0xb]
+ mov r1, #0xc0
+ bic r3, r1
+ strb r3, [r2, #0xb]
+ str r0, [sp]
+ mov r3, #0xb
+ str r3, [sp, #4]
+ ldr r0, [r5]
+ ldr r2, _0223D784 ; =0x000003D9
+ mov r1, #3
+ bl FUN_0200CB00
+ add r0, r5, #0
+ ldr r2, _0223D784 ; =0x000003D9
+ add r0, #8
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ mov r0, #0xb
+ str r0, [sp]
+ mov r0, #2
+ mov r2, #0
+ str r0, [sp, #4]
+ add r0, sp, #0x14
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02001C14
+ add r5, #0x80
+ str r0, [r5]
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223D77C: .word 0x00000241
+_0223D780: .word 0x000002DF
+_0223D784: .word 0x000003D9
+
+ thumb_func_start MOD06_0223D788
+MOD06_0223D788: ; 0x0223D788
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ bl FUN_02001C78
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0223D7A4
+ add r1, r1, #1
+ cmp r0, r1
+ beq _0223D7B4
+ b _0223D7AE
+_0223D7A4:
+ add r0, r4, #0
+ bl MOD06_0223D7B8
+ mov r0, #0x13
+ pop {r4, pc}
+_0223D7AE:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r4, pc}
+_0223D7B4:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223D7B8
+MOD06_0223D7B8: ; 0x0223D7B8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #8
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #8
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ bl FUN_02012870
+ add r4, #8
+ add r0, r4, #0
+ bl FUN_02019178
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223D7EC
+MOD06_0223D7EC: ; 0x0223D7EC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x8f
+ add r4, r1, #0
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ bne _0223D804
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0223D804:
+ ldr r0, _0223D90C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0223D908
+ add r0, r4, #0
+ add r0, #0x18
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ add r0, #0x18
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ bl FUN_0200AB18
+ mov r0, #0x23
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _0223D910 ; =0x00000241
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _0223D8F4
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0]
+ bl FUN_02034824
+ cmp r0, #0x65
+ beq _0223D8F4
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0]
+ cmp r0, #0x51
+ beq _0223D8F4
+ ldr r1, _0223D914 ; =0x000001BE
+ cmp r0, r1
+ beq _0223D8F4
+ add r0, r1, #0
+ add r0, #0x81
+ ldrb r2, [r4, r0]
+ cmp r2, #0
+ beq _0223D888
+ add r1, #0x82
+ ldrb r0, [r4, r1]
+ cmp r0, #0
+ beq _0223D888
+ mov r0, #0xb
+ bl FUN_02029084
+ add r1, r0, #0
+ mov r0, #0x86
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r2, #1
+ bl FUN_02028AD4
+ b _0223D8F4
+_0223D888:
+ cmp r2, #1
+ bls _0223D8A2
+ mov r0, #0xb
+ bl FUN_02029060
+ add r1, r0, #0
+ mov r0, #0x86
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r2, #1
+ bl FUN_02028AD4
+ b _0223D8F4
+_0223D8A2:
+ mov r0, #9
+ lsl r0, r0, #6
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ bls _0223D8C2
+ mov r0, #0xb
+ bl FUN_02029078
+ add r1, r0, #0
+ mov r0, #0x86
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r2, #1
+ bl FUN_02028AD4
+ b _0223D8F4
+_0223D8C2:
+ cmp r2, #0
+ beq _0223D8DC
+ mov r0, #0xb
+ bl FUN_02029054
+ add r1, r0, #0
+ mov r0, #0x86
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r2, #1
+ bl FUN_02028AD4
+ b _0223D8F4
+_0223D8DC:
+ cmp r0, #0
+ beq _0223D8F4
+ mov r0, #0xb
+ bl FUN_0202906C
+ add r1, r0, #0
+ mov r0, #0x86
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r2, #1
+ bl FUN_02028AD4
+_0223D8F4:
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0223D908:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223D90C: .word 0x021C48B8
+_0223D910: .word 0x00000241
+_0223D914: .word 0x000001BE
+
+ thumb_func_start MOD06_0223D918
+MOD06_0223D918: ; 0x0223D918
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #6
+ mov r2, #0
+ str r0, [sp, #8]
+ add r4, r1, #0
+ str r2, [sp, #0xc]
+ ldr r0, [r4]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02018540
+ add r0, r4, #0
+ bl MOD06_0223D7B8
+ add r0, r4, #0
+ bl MOD06_0223D978
+ mov r0, #0xb
+ bl FUN_0201EB64
+ add r1, r4, #0
+ add r1, #0x90
+ str r0, [r1]
+ add r1, r4, #0
+ add r1, #0x90
+ ldr r0, [r5, #0x20]
+ ldr r1, [r1]
+ bl FUN_0201EB78
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl FUN_0201EB8C
+ ldr r0, _0223D974 ; =0x0000023D
+ mov r1, #0
+ strb r1, [r4, r0]
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_0223D974: .word 0x0000023D
+
+ thumb_func_start MOD06_0223D978
+MOD06_0223D978: ; 0x0223D978
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ ldr r7, _0223D9B4 ; =0x0224F3AC
+ mov r6, #0
+ add r4, #8
+_0223D984:
+ ldr r0, _0223D9B8 ; =0x00000241
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _0223D99C
+ cmp r6, #1
+ bne _0223D99C
+ ldr r0, [r5]
+ ldr r2, _0223D9BC ; =0x0224F350
+ add r1, r4, #0
+ bl FUN_02019150
+ b _0223D9A6
+_0223D99C:
+ ldr r0, [r5]
+ add r1, r4, #0
+ add r2, r7, #0
+ bl FUN_02019150
+_0223D9A6:
+ add r6, r6, #1
+ add r4, #0x10
+ add r7, #8
+ cmp r6, #6
+ blo _0223D984
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223D9B4: .word 0x0224F3AC
+_0223D9B8: .word 0x00000241
+_0223D9BC: .word 0x0224F350
+
+ thumb_func_start MOD06_0223D9C0
+MOD06_0223D9C0: ; 0x0223D9C0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0x28
+ mov r1, #1
+ bl FUN_0200CCF8
+ mov r4, #0
+ add r5, #8
+_0223D9D0:
+ add r0, r5, #0
+ bl FUN_02019570
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #6
+ blo _0223D9D0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223D9E8
+MOD06_0223D9E8: ; 0x0223D9E8
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r4, r0, #0
+ str r1, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x3e
+ mov r3, #1
+ bl FUN_0200687C
+ ldr r0, _0223DA88 ; =0x00000241
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _0223DA26
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x3e
+ mov r1, #2
+ mov r3, #1
+ bl FUN_020068C8
+ b _0223DA3E
+_0223DA26:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x3e
+ mov r1, #3
+ mov r3, #1
+ bl FUN_020068C8
+_0223DA3E:
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0xb
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #0xb
+ str r3, [sp, #4]
+ ldr r0, [r4]
+ mov r1, #3
+ mov r2, #0x1f
+ bl FUN_0200CB00
+ mov r0, #0x85
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ mov r1, #3
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200CD68
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_0223DA88: .word 0x00000241
+
+ thumb_func_start MOD06_0223DA8C
+MOD06_0223DA8C: ; 0x0223DA8C
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201E7CC
+ mov r1, #0x8e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_02018884
+ mov r1, #0x8d
+ lsl r1, r1, #2
+ strb r0, [r4, r1]
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_02018884
+ ldr r1, _0223DB10 ; =0x00000235
+ strb r0, [r4, r1]
+ ldr r0, [r4]
+ mov r1, #2
+ bl FUN_02018884
+ ldr r1, _0223DB14 ; =0x00000236
+ strb r0, [r4, r1]
+ ldr r0, [r4]
+ mov r1, #3
+ bl FUN_02018884
+ ldr r1, _0223DB18 ; =0x00000237
+ strb r0, [r4, r1]
+ mov r0, #0
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #1
+ mov r1, #2
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #3
+ mov r1, #0
+ bl FUN_020178BC
+ mov r0, #0
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #3
+ mov r1, #1
+ bl FUN_0201E6E4
+ pop {r4, pc}
+ nop
+_0223DB10: .word 0x00000235
+_0223DB14: .word 0x00000236
+_0223DB18: .word 0x00000237
+
+ thumb_func_start MOD06_0223DB1C
+MOD06_0223DB1C: ; 0x0223DB1C
+ push {r4, lr}
+ mov r1, #0x8d
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ mov r0, #0
+ bl FUN_020178BC
+ ldr r1, _0223DB58 ; =0x00000235
+ mov r0, #1
+ ldrb r1, [r4, r1]
+ bl FUN_020178BC
+ ldr r1, _0223DB5C ; =0x00000236
+ mov r0, #2
+ ldrb r1, [r4, r1]
+ bl FUN_020178BC
+ ldr r1, _0223DB60 ; =0x00000237
+ mov r0, #3
+ ldrb r1, [r4, r1]
+ bl FUN_020178BC
+ mov r0, #0x8e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0201E720
+ pop {r4, pc}
+ nop
+_0223DB58: .word 0x00000235
+_0223DB5C: .word 0x00000236
+_0223DB60: .word 0x00000237
+
+ thumb_func_start MOD06_0223DB64
+MOD06_0223DB64: ; 0x0223DB64
+ push {r4, r5, lr}
+ sub sp, #0xc
+ ldr r1, _0223DBC8 ; =0x0000023D
+ add r4, r0, #0
+ add r2, r1, #1
+ ldrb r3, [r4, r1]
+ ldrb r2, [r4, r2]
+ cmp r3, r2
+ beq _0223DB9E
+ ldr r5, _0223DBCC ; =0x0224F358
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r4, #0
+ str r0, [r3]
+ add r1, #0x90
+ ldr r1, [r1]
+ add r0, r2, #0
+ bl FUN_0201EF70
+ ldr r0, _0223DBC8 ; =0x0000023D
+ add sp, #0xc
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #3
+ pop {r4, r5, pc}
+_0223DB9E:
+ mov r2, #0
+ strb r2, [r4, r1]
+ bl MOD06_0223EB90
+ add r0, r4, #0
+ bl MOD06_0223D9E8
+ add r0, r4, #0
+ bl MOD06_0223DA8C
+ add r0, r4, #0
+ bl MOD06_0223DBF4
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD06_0223DED0
+ mov r0, #4
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0223DBC8: .word 0x0000023D
+_0223DBCC: .word 0x0224F358
+
+ thumb_func_start MOD06_0223DBD0
+MOD06_0223DBD0: ; 0x0223DBD0
+ push {r3, lr}
+ ldr r2, _0223DBF0 ; =0x00000241
+ ldrb r0, [r0, r2]
+ cmp r0, #1
+ bne _0223DBDE
+ add r0, r1, #0
+ pop {r3, pc}
+_0223DBDE:
+ cmp r0, #2
+ bne _0223DBEC
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FD0
+ add r1, r0, #0
+_0223DBEC:
+ add r0, r1, #0
+ pop {r3, pc}
+ .align 2, 0
+_0223DBF0: .word 0x00000241
+
+ thumb_func_start MOD06_0223DBF4
+MOD06_0223DBF4: ; 0x0223DBF4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ ldr r2, _0223DCE8 ; =0x00000241
+ add r5, r0, #0
+ ldrb r0, [r5, r2]
+ cmp r0, #0
+ bne _0223DC12
+ mov r0, #0
+ mov r1, #0x1a
+ sub r2, #0xe9
+ mov r3, #0xb
+ bl FUN_0200A86C
+ str r0, [sp]
+ b _0223DC34
+_0223DC12:
+ cmp r0, #1
+ bne _0223DC26
+ mov r0, #0
+ mov r1, #0x1a
+ sub r2, #0xa
+ mov r3, #0xb
+ bl FUN_0200A86C
+ str r0, [sp]
+ b _0223DC34
+_0223DC26:
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xa
+ mov r3, #0xb
+ bl FUN_0200A86C
+ str r0, [sp]
+_0223DC34:
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ mov r1, #0xb
+ add r0, r0, #1
+ bl FUN_02012838
+ str r0, [r5, #0x7c]
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ mov r6, #0
+ cmp r0, #0
+ bls _0223DC8E
+ add r4, r6, #0
+_0223DC52:
+ mov r1, #0x8a
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ ldrh r1, [r1, r4]
+ bl MOD06_0223DBD0
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl FUN_0200A914
+ add r7, r0, #0
+ mov r2, #0x8a
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ ldr r0, [r5, #0x7c]
+ ldrh r2, [r2, r4]
+ add r1, r7, #0
+ bl FUN_020128A0
+ add r0, r7, #0
+ bl FUN_02021A20
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ add r6, r6, #1
+ add r4, r4, #2
+ cmp r6, r0
+ blo _0223DC52
+_0223DC8E:
+ add r1, r5, #0
+ add r1, #0x88
+ mov r2, #8
+ add r3, r2, #0
+ ldr r0, [r5, #0x7c]
+ ldr r1, [r1]
+ sub r3, #0xa
+ bl FUN_02012880
+ ldr r0, [sp]
+ bl FUN_0200A8B8
+ ldr r4, _0223DCEC ; =0x0224F38C
+ add r3, sp, #4
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5, #0x7c]
+ mov r3, #0xb
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #8
+ str r0, [sp, #0x10]
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ add r1, r0, #1
+ add r0, sp, #4
+ strh r1, [r0, #0x10]
+ mov r1, #0
+ add r0, r2, #0
+ add r2, r1, #0
+ str r5, [sp, #0x20]
+ bl FUN_020010A8
+ str r0, [r5, #0x78]
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223DCE8: .word 0x00000241
+_0223DCEC: .word 0x0224F38C
+
+ thumb_func_start MOD06_0223DCF0
+MOD06_0223DCF0: ; 0x0223DCF0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ mov r1, #0x13
+ str r0, [sp, #0x10]
+ add r6, r2, #0
+ bl FUN_02001470
+ add r4, r0, #0
+ cmp r6, #1
+ beq _0223DD0C
+ ldr r0, _0223DE28 ; =0x00000638
+ bl FUN_020054C8
+_0223DD0C:
+ add r0, r4, #0
+ add r0, #0x18
+ mov r1, #0
+ bl FUN_02019620
+ mov r1, #1
+ mvn r1, r1
+ cmp r5, r1
+ beq _0223DDB2
+ ldr r2, _0223DE2C ; =0x00000241
+ ldrb r0, [r4, r2]
+ cmp r0, #0
+ bne _0223DD3C
+ mov r0, #0x82
+ mov r1, #0xb
+ bl FUN_020219F4
+ lsl r1, r5, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0xb
+ add r6, r0, #0
+ bl FUN_0206E790
+ b _0223DD86
+_0223DD3C:
+ cmp r0, #1
+ bne _0223DD60
+ mov r0, #0
+ mov r1, #0x1a
+ sub r2, #0xa
+ mov r3, #0xb
+ bl FUN_0200A86C
+ add r1, r5, #0
+ add r7, r0, #0
+ add r1, #0x8a
+ bl FUN_0200A914
+ add r6, r0, #0
+ add r0, r7, #0
+ bl FUN_0200A8B8
+ b _0223DD86
+_0223DD60:
+ mov r0, #0
+ mov r1, #0x1a
+ sub r2, #0x5a
+ mov r3, #0xb
+ bl FUN_0200A86C
+ add r7, r0, #0
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02086060
+ add r1, r0, #0
+ add r0, r7, #0
+ bl FUN_0200A914
+ add r6, r0, #0
+ add r0, r7, #0
+ bl FUN_0200A8B8
+_0223DD86:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0223DE30 ; =0x000F0E00
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x18
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ lsl r1, r5, #0x10
+ add r0, r4, #0
+ lsr r1, r1, #0x10
+ bl MOD06_0223EC3C
+ b _0223DDBA
+_0223DDB2:
+ add r0, r4, #0
+ lsr r1, r1, #0x10
+ bl MOD06_0223EC3C
+_0223DDBA:
+ add r0, r4, #0
+ add r0, #0x18
+ bl FUN_02019220
+ add r1, sp, #0x14
+ ldr r0, [sp, #0x10]
+ add r1, #2
+ add r2, sp, #0x14
+ bl FUN_02001448
+ add r0, sp, #0x14
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _0223DDE4
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _0223DDF0
+_0223DDE4:
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_0223DDF0:
+ ldr r0, [sp, #0x10]
+ mov r1, #2
+ bl FUN_02001470
+ cmp r0, #7
+ bls _0223DE16
+ add r1, sp, #0x14
+ ldrh r1, [r1, #2]
+ add r1, r1, #7
+ cmp r0, r1
+ bls _0223DE16
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0223DE16:
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223DE28: .word 0x00000638
+_0223DE2C: .word 0x00000241
+_0223DE30: .word 0x000F0E00
+
+ thumb_func_start MOD06_0223DE34
+MOD06_0223DE34: ; 0x0223DE34
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ mov r1, #0x13
+ add r7, r2, #0
+ bl FUN_02001470
+ mov r1, #1
+ mvn r1, r1
+ add r5, r0, #0
+ cmp r4, r1
+ beq _0223DEC6
+ lsl r1, r4, #0x10
+ lsr r1, r1, #0x10
+ bl MOD06_0223EA08
+ str r0, [sp, #0x10]
+ mov r0, #0xc
+ mov r1, #0xb
+ bl FUN_020219F4
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #9
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ ldr r2, [sp, #0x10]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r4, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ str r7, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0223DECC ; =0x00010200
+ add r5, #8
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r5, #0x90
+ mov r1, #0
+ add r2, r4, #0
+ sub r3, r5, r3
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02021A20
+_0223DEC6:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223DECC: .word 0x00010200
+
+ thumb_func_start MOD06_0223DED0
+MOD06_0223DED0: ; 0x0223DED0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ cmp r1, #0
+ bne _0223DF1C
+ add r0, #0x28
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0
+ add r0, #0x28
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0x12
+ bl FUN_0200A914
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x28
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r4, #0
+ bl FUN_02021A20
+ b _0223DF30
+_0223DF1C:
+ mov r0, #0x50
+ str r0, [sp]
+ add r0, r5, #0
+ mov r3, #0x10
+ add r0, #0x28
+ mov r1, #0xf
+ mov r2, #0
+ str r3, [sp, #4]
+ bl FUN_020196F4
+_0223DF30:
+ mov r0, #0x10
+ mov r1, #0xb
+ bl FUN_020219F4
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0x13
+ bl FUN_0200A914
+ add r7, r0, #0
+ mov r0, #0x83
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02023A10
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ mov r1, #0
+ mov r3, #6
+ bl FUN_0200AD38
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ add r1, r4, #0
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r4, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r6, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r3, #0x50
+ mov r1, #0
+ add r0, #0x28
+ add r2, r4, #0
+ sub r3, r3, r6
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r5, #0x28
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223DFB4
+MOD06_0223DFB4: ; 0x0223DFB4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r2, sp, #0
+ ldr r0, [r5, #0x78]
+ mov r1, #0
+ add r2, #2
+ bl FUN_02001448
+ ldr r0, [r5, #0x78]
+ bl FUN_02001204
+ add r4, r0, #0
+ ldr r0, [r5, #0x78]
+ mov r1, #0
+ add r2, sp, #0
+ bl FUN_02001448
+ add r0, sp, #0
+ ldrh r2, [r0]
+ ldrh r0, [r0, #2]
+ cmp r0, r2
+ beq _0223DFF4
+ mov r0, #2
+ lsl r2, r2, #4
+ lsl r0, r0, #8
+ add r2, #0x18
+ lsl r2, r2, #0x10
+ ldr r0, [r5, r0]
+ mov r1, #0xb0
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+_0223DFF4:
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _0223E006
+ add r0, r0, #1
+ cmp r4, r0
+ bne _0223E004
+ b _0223E182
+_0223E004:
+ b _0223E034
+_0223E006:
+ mov r1, #0
+ ldr r0, [r5, #0x78]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, [r5, #0x7c]
+ bl FUN_02012870
+ add r0, r5, #0
+ bl MOD06_0223D9C0
+ add r0, r5, #0
+ bl MOD06_0223DB1C
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_02018744
+ ldr r0, _0223E188 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xc
+ pop {r3, r4, r5, pc}
+_0223E034:
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02020128
+ mov r1, #0x82
+ lsl r1, r1, #2
+ strh r0, [r5, r1]
+ sub r1, #0xc
+ ldr r0, [r5, r1]
+ bl FUN_02020128
+ ldr r1, _0223E18C ; =0x0000020A
+ strh r0, [r5, r1]
+ sub r1, #0x12
+ ldr r0, [r5, r1]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD06_0223ECC8
+ add r0, r5, #0
+ add r0, #0x58
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0
+ add r0, #0x18
+ bl FUN_02019570
+ add r0, r5, #0
+ add r0, #0x58
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ ldr r1, _0223E190 ; =0x00000242
+ mov r2, #1
+ strh r4, [r5, r1]
+ add r0, r1, #2
+ strh r2, [r5, r0]
+ ldrh r1, [r5, r1]
+ add r0, r5, #0
+ bl MOD06_0223EA08
+ mov r1, #0x92
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ sub r1, #0x3c
+ ldr r0, [r5, r1]
+ bl FUN_02023A10
+ mov r2, #0x92
+ lsl r2, r2, #2
+ ldr r1, [r5, r2]
+ cmp r0, r1
+ bhs _0223E0FC
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0x23
+ add r0, #0x8c
+ lsl r1, r1, #4
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r2, #0x23
+ lsl r2, r2, #4
+ ldr r1, [r5, r2]
+ sub r2, #0x1c
+ add r0, r5, #0
+ ldr r2, [r5, r2]
+ add r0, #0x58
+ mov r3, #1
+ bl FUN_02054658
+ mov r1, #0x8f
+ lsl r1, r1, #2
+ strb r0, [r5, r1]
+ mov r0, #0xa
+ pop {r3, r4, r5, pc}
+_0223E0FC:
+ sub r2, r2, #7
+ ldrb r2, [r5, r2]
+ cmp r2, #1
+ bne _0223E112
+ ldr r0, _0223E188 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ bl MOD06_0223E384
+ pop {r3, r4, r5, pc}
+_0223E112:
+ bl _u32_div_f
+ ldr r1, _0223E194 ; =0x00000246
+ strh r0, [r5, r1]
+ ldrh r0, [r5, r1]
+ cmp r0, #0x63
+ bls _0223E124
+ mov r0, #0x63
+ strh r0, [r5, r1]
+_0223E124:
+ ldr r1, _0223E190 ; =0x00000242
+ add r0, r5, #0
+ ldrh r1, [r5, r1]
+ mov r2, #0
+ bl MOD06_0223E9BC
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #4
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0x23
+ add r0, #0x8c
+ lsl r1, r1, #4
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r2, #0x23
+ lsl r2, r2, #4
+ ldr r1, [r5, r2]
+ sub r2, #0x1c
+ add r0, r5, #0
+ ldr r2, [r5, r2]
+ add r0, #0x58
+ mov r3, #1
+ bl FUN_02054658
+ mov r1, #0x8f
+ lsl r1, r1, #2
+ strb r0, [r5, r1]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD06_0223EBF8
+ ldr r0, _0223E188 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #5
+ pop {r3, r4, r5, pc}
+_0223E182:
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+ nop
+_0223E188: .word 0x000005DC
+_0223E18C: .word 0x0000020A
+_0223E190: .word 0x00000242
+_0223E194: .word 0x00000246
+
+ thumb_func_start MOD06_0223E198
+MOD06_0223E198: ; 0x0223E198
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x8f
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ bne _0223E1AE
+ mov r0, #5
+ pop {r4, pc}
+_0223E1AE:
+ add r0, r4, #0
+ bl MOD06_0223E1D8
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD06_0223E4E8
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #6
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223E1D8
+MOD06_0223E1D8: ; 0x0223E1D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ ldr r1, _0223E298 ; =0x00000241
+ add r5, r0, #0
+ ldrb r0, [r5, r1]
+ cmp r0, #0
+ bne _0223E1FA
+ add r0, r1, #0
+ add r1, r1, #1
+ sub r0, #0x31
+ ldrh r1, [r5, r1]
+ ldr r0, [r5, r0]
+ mov r2, #0xb
+ bl FUN_0206EEF8
+ add r4, r0, #0
+ b _0223E214
+_0223E1FA:
+ cmp r0, #2
+ bne _0223E212
+ add r0, r1, #0
+ add r1, r1, #1
+ sub r0, #0x31
+ ldrh r1, [r5, r1]
+ ldr r0, [r5, r0]
+ bl FUN_02029E2C
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0223E214
+_0223E212:
+ mov r4, #0
+_0223E214:
+ add r0, r5, #0
+ add r0, #0x48
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0
+ add r0, #0x48
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ mov r0, #0x18
+ mov r1, #0xb
+ bl FUN_020219F4
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0x14
+ bl FUN_0200A914
+ add r7, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ mov r1, #0
+ add r2, r4, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x48
+ add r2, r6, #0
+ add r3, r1, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r5, #0x48
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223E298: .word 0x00000241
+
+ thumb_func_start MOD06_0223E29C
+MOD06_0223E29C: ; 0x0223E29C
+ push {r4, lr}
+ mov r1, #0x91
+ add r4, r0, #0
+ lsl r1, r1, #2
+ add r0, r4, r1
+ add r1, r1, #2
+ ldrh r1, [r4, r1]
+ bl FUN_02079AAC
+ cmp r0, #0
+ beq _0223E2C4
+ ldr r0, _0223E378 ; =0x00000638
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD06_0223E4E8
+ mov r0, #6
+ pop {r4, pc}
+_0223E2C4:
+ ldr r0, _0223E37C ; =0x021C48B8
+ mov r1, #1
+ ldr r2, [r0, #0x48]
+ add r0, r2, #0
+ tst r0, r1
+ beq _0223E314
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0x38
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0x58
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, _0223E380 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD06_0223E384
+ pop {r4, pc}
+_0223E314:
+ mov r0, #2
+ tst r0, r2
+ beq _0223E374
+ add r0, r4, #0
+ add r0, #0x48
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0x38
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0x58
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD06_0223EBF8
+ mov r1, #0x7e
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, #0x10
+ ldrh r1, [r4, r1]
+ bl FUN_020200A0
+ mov r1, #0x7f
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, #0xe
+ ldrh r1, [r4, r1]
+ bl FUN_020200A0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD06_0223ECC8
+ add r4, #0x18
+ add r0, r4, #0
+ bl FUN_02019220
+ ldr r0, _0223E380 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #4
+ pop {r4, pc}
+_0223E374:
+ mov r0, #6
+ pop {r4, pc}
+ .align 2, 0
+_0223E378: .word 0x00000638
+_0223E37C: .word 0x021C48B8
+_0223E380: .word 0x000005DC
+
+ thumb_func_start MOD06_0223E384
+MOD06_0223E384: ; 0x0223E384
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ ldr r2, _0223E4E0 ; =0x00000241
+ add r4, r0, #0
+ ldrb r0, [r4, r2]
+ cmp r0, #0
+ bne _0223E3A8
+ add r0, r2, #0
+ add r1, r2, #1
+ add r2, r2, #3
+ sub r0, #0x31
+ ldrh r1, [r4, r1]
+ ldrh r2, [r4, r2]
+ ldr r0, [r4, r0]
+ mov r3, #0xb
+ bl FUN_0206ED24
+ b _0223E3D2
+_0223E3A8:
+ cmp r0, #1
+ bne _0223E3C0
+ sub r2, #0x31
+ ldr r0, [r4, r2]
+ bl FUN_02025DB0
+ cmp r0, #0xc8
+ bne _0223E3BC
+ mov r0, #0
+ b _0223E3D2
+_0223E3BC:
+ mov r0, #1
+ b _0223E3D2
+_0223E3C0:
+ add r0, r2, #0
+ add r1, r2, #1
+ add r2, r2, #3
+ sub r0, #0x31
+ ldrh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, r0]
+ bl FUN_02029DD4
+_0223E3D2:
+ cmp r0, #0
+ bne _0223E450
+ mov r0, #0x91
+ mov r1, #0
+ lsl r0, r0, #2
+ strh r1, [r4, r0]
+ sub r0, r0, #3
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _0223E3F6
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #7
+ bl FUN_0200A914
+ add r5, r0, #0
+ b _0223E418
+_0223E3F6:
+ cmp r0, #1
+ bne _0223E40A
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0xc
+ bl FUN_0200A914
+ add r5, r0, #0
+ b _0223E418
+_0223E40A:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0xe
+ bl FUN_0200A914
+ add r5, r0, #0
+_0223E418:
+ add r0, r4, #0
+ mov r1, #0x23
+ add r0, #0x8c
+ lsl r1, r1, #4
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, r5, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ bl FUN_02021A20
+ mov r2, #0x23
+ lsl r2, r2, #4
+ ldr r1, [r4, r2]
+ sub r2, #0x1c
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ add r0, #0x58
+ mov r3, #1
+ bl FUN_02054658
+ mov r1, #0x8f
+ lsl r1, r1, #2
+ strb r0, [r4, r1]
+ add sp, #8
+ mov r0, #0xa
+ pop {r3, r4, r5, pc}
+_0223E450:
+ ldr r1, _0223E4E4 ; =0x00000242
+ add r0, r4, #0
+ ldrh r1, [r4, r1]
+ mov r2, #0
+ bl MOD06_0223E9BC
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ mov r2, #0x91
+ add r0, r4, #0
+ str r1, [sp, #4]
+ lsl r2, r2, #2
+ add r0, #0x8c
+ ldrsh r2, [r4, r2]
+ ldr r0, [r0]
+ mov r3, #2
+ bl FUN_0200AD38
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ mov r2, #0x92
+ str r0, [sp, #4]
+ lsl r2, r2, #2
+ ldr r3, [r4, r2]
+ sub r2, r2, #4
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ add r0, #0x8c
+ ldr r0, [r0]
+ mul r2, r3
+ mov r1, #2
+ mov r3, #6
+ bl FUN_0200AD38
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #5
+ bl FUN_0200A914
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #0x23
+ add r0, #0x8c
+ lsl r1, r1, #4
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, r5, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ bl FUN_02021A20
+ mov r2, #0x23
+ lsl r2, r2, #4
+ ldr r1, [r4, r2]
+ sub r2, #0x1c
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ add r0, #0x58
+ mov r3, #1
+ bl FUN_02054658
+ mov r1, #0x8f
+ lsl r1, r1, #2
+ strb r0, [r4, r1]
+ mov r0, #7
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_0223E4E0: .word 0x00000241
+_0223E4E4: .word 0x00000242
+
+ thumb_func_start MOD06_0223E4E8
+MOD06_0223E4E8: ; 0x0223E4E8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, #0x38
+ mov r1, #0xf
+ bl FUN_02019620
+ cmp r4, #0
+ bne _0223E50A
+ add r0, r5, #0
+ add r0, #0x38
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CCA4
+_0223E50A:
+ mov r0, #0x18
+ mov r1, #0xb
+ bl FUN_020219F4
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0x15
+ bl FUN_0200A914
+ mov r3, #2
+ add r6, r0, #0
+ mov r2, #0x91
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ lsl r2, r2, #2
+ add r0, #0x8c
+ ldrsh r2, [r5, r2]
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200AD38
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ add r0, r5, #0
+ add r0, #0x38
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0x16
+ bl FUN_0200A914
+ add r7, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r2, #0x92
+ str r0, [sp, #4]
+ lsl r2, r2, #2
+ ldr r3, [r5, r2]
+ sub r2, r2, #4
+ add r0, r5, #0
+ ldrsh r2, [r5, r2]
+ add r0, #0x8c
+ ldr r0, [r0]
+ mul r2, r3
+ mov r1, #0
+ mov r3, #6
+ bl FUN_0200AD38
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ add r1, r4, #0
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r4, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r6, r0, #0
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r3, #0x60
+ mov r1, #0
+ add r0, #0x38
+ add r2, r4, #0
+ sub r3, r3, r6
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r5, #0x38
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223E5E4
+MOD06_0223E5E4: ; 0x0223E5E4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0x8f
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ bne _0223E5FE
+ add sp, #4
+ mov r0, #7
+ pop {r3, r4, pc}
+_0223E5FE:
+ mov r3, #0xb
+ str r3, [sp]
+ ldr r0, [r4]
+ ldr r1, _0223E618 ; =0x0224F348
+ mov r2, #0x1f
+ bl FUN_02002198
+ add r4, #0x80
+ str r0, [r4]
+ mov r0, #8
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0223E618: .word 0x0224F348
+
+ thumb_func_start MOD06_0223E61C
+MOD06_0223E61C: ; 0x0223E61C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ mov r1, #0xb
+ bl FUN_020021AC
+ cmp r0, #0
+ beq _0223E63A
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ bne _0223E638
+ b _0223E74A
+_0223E638:
+ b _0223E78C
+_0223E63A:
+ ldr r1, _0223E790 ; =0x00000241
+ ldrb r0, [r5, r1]
+ cmp r0, #0
+ bne _0223E698
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #6
+ bl FUN_0200A914
+ mov r2, #0x91
+ lsl r2, r2, #2
+ add r4, r0, #0
+ ldrsh r0, [r5, r2]
+ cmp r0, #1
+ bne _0223E66C
+ add r0, r5, #0
+ sub r2, r2, #2
+ add r0, #0x8c
+ ldrh r2, [r5, r2]
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200AE38
+ b _0223E67C
+_0223E66C:
+ add r0, r5, #0
+ sub r2, r2, #2
+ add r0, #0x8c
+ ldrh r2, [r5, r2]
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200AEA8
+_0223E67C:
+ ldr r0, _0223E794 ; =0x00000242
+ mov r1, #5
+ ldrh r0, [r5, r0]
+ mov r2, #0xb
+ bl FUN_0206E7B8
+ add r2, r0, #0
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200AEE0
+ b _0223E704
+_0223E698:
+ cmp r0, #1
+ bne _0223E6B8
+ add r1, r1, #1
+ ldrh r1, [r5, r1]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD06_0223E9BC
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0xb
+ bl FUN_0200A914
+ add r4, r0, #0
+ b _0223E704
+_0223E6B8:
+ add r0, r1, #3
+ ldrsh r0, [r5, r0]
+ cmp r0, #1
+ bne _0223E6DC
+ add r0, r1, #1
+ ldrh r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FD0
+ add r2, r0, #0
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200B534
+ b _0223E6F6
+_0223E6DC:
+ add r0, r1, #1
+ ldrh r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FD0
+ add r2, r0, #0
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200B568
+_0223E6F6:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0xd
+ bl FUN_0200A914
+ add r4, r0, #0
+_0223E704:
+ add r0, r5, #0
+ mov r1, #0x23
+ add r0, #0x8c
+ lsl r1, r1, #4
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ add r0, #0x58
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r2, #0x23
+ lsl r2, r2, #4
+ ldr r1, [r5, r2]
+ sub r2, #0x1c
+ add r0, r5, #0
+ ldr r2, [r5, r2]
+ add r0, #0x58
+ mov r3, #1
+ bl FUN_02054658
+ mov r1, #0x8f
+ lsl r1, r1, #2
+ strb r0, [r5, r1]
+ ldr r0, _0223E798 ; =0x00000644
+ bl FUN_020054C8
+ mov r0, #9
+ pop {r3, r4, r5, pc}
+_0223E74A:
+ add r0, r5, #0
+ add r0, #0x58
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD06_0223EBF8
+ mov r1, #0x7e
+ lsl r1, r1, #2
+ ldr r0, [r5, r1]
+ add r1, #0x10
+ ldrh r1, [r5, r1]
+ bl FUN_020200A0
+ mov r1, #0x7f
+ lsl r1, r1, #2
+ ldr r0, [r5, r1]
+ add r1, #0xe
+ ldrh r1, [r5, r1]
+ bl FUN_020200A0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD06_0223ECC8
+ add r5, #0x18
+ add r0, r5, #0
+ bl FUN_02019220
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+_0223E78C:
+ mov r0, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223E790: .word 0x00000241
+_0223E794: .word 0x00000242
+_0223E798: .word 0x00000644
+
+ thumb_func_start MOD06_0223E79C
+MOD06_0223E79C: ; 0x0223E79C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ mov r0, #0x8f
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ bne _0223E7B2
+ mov r0, #9
+ pop {r3, r4, r5, pc}
+_0223E7B2:
+ ldr r2, _0223E854 ; =0x00000241
+ ldrb r0, [r4, r2]
+ cmp r0, #0
+ bne _0223E7D0
+ add r0, r2, #0
+ add r1, r2, #1
+ add r2, r2, #3
+ sub r0, #0x31
+ ldrh r1, [r4, r1]
+ ldrh r2, [r4, r2]
+ ldr r0, [r4, r0]
+ mov r3, #0xb
+ bl FUN_0206ED38
+ b _0223E7F6
+_0223E7D0:
+ cmp r0, #1
+ bne _0223E7E4
+ add r0, r2, #0
+ add r1, r2, #1
+ sub r0, #0x31
+ ldrh r1, [r4, r1]
+ ldr r0, [r4, r0]
+ bl FUN_02025D6C
+ b _0223E7F6
+_0223E7E4:
+ add r0, r2, #0
+ add r1, r2, #1
+ add r2, r2, #3
+ sub r0, #0x31
+ ldrh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, r0]
+ bl FUN_02029D44
+_0223E7F6:
+ mov r2, #0x83
+ lsl r2, r2, #2
+ add r1, r2, #0
+ ldr r0, [r4, r2]
+ add r1, #0x3c
+ add r2, #0x38
+ ldr r3, [r4, r1]
+ ldrsh r1, [r4, r2]
+ mul r1, r3
+ bl FUN_02023A54
+ mov r3, #0x87
+ lsl r3, r3, #2
+ add r2, r3, #0
+ ldr r0, [r4, r3]
+ add r2, #0x2c
+ add r3, #0x28
+ ldr r5, [r4, r2]
+ ldrsh r2, [r4, r3]
+ mov r1, #0x23
+ mul r2, r5
+ bl FUN_0202A11C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD06_0223DED0
+ mov r1, #0x91
+ lsl r1, r1, #2
+ ldrsh r0, [r4, r1]
+ cmp r0, #1
+ ble _0223E83E
+ mov r2, #2
+ sub r0, r1, #5
+ strb r2, [r4, r0]
+ b _0223E850
+_0223E83E:
+ sub r0, r1, #5
+ ldrb r0, [r4, r0]
+ cmp r0, #0xff
+ beq _0223E850
+ sub r0, r1, #5
+ ldrb r0, [r4, r0]
+ add r2, r0, #1
+ sub r0, r1, #5
+ strb r2, [r4, r0]
+_0223E850:
+ mov r0, #0xa
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223E854: .word 0x00000241
+
+ thumb_func_start MOD06_0223E858
+MOD06_0223E858: ; 0x0223E858
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x8f
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ bne _0223E86E
+ mov r0, #0xa
+ pop {r3, r4, r5, pc}
+_0223E86E:
+ ldr r0, _0223E948 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0223E944
+ mov r0, #0x89
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ cmp r1, #1
+ bne _0223E88A
+ sub r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_0205F6E8
+_0223E88A:
+ ldr r1, _0223E94C ; =0x00000241
+ ldrb r0, [r5, r1]
+ cmp r0, #0
+ bne _0223E902
+ add r0, r1, #1
+ ldrh r0, [r5, r0]
+ cmp r0, #4
+ bne _0223E902
+ add r0, r1, #3
+ ldrsh r0, [r5, r0]
+ cmp r0, #0xa
+ blt _0223E902
+ sub r1, #0x31
+ ldr r0, [r5, r1]
+ mov r1, #0xc
+ mov r2, #1
+ mov r3, #0xb
+ bl FUN_0206ED38
+ cmp r0, #1
+ bne _0223E902
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0xa
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0x23
+ add r0, #0x8c
+ lsl r1, r1, #4
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ add r0, #0x58
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r2, #0x23
+ lsl r2, r2, #4
+ ldr r1, [r5, r2]
+ sub r2, #0x1c
+ add r0, r5, #0
+ ldr r2, [r5, r2]
+ add r0, #0x58
+ mov r3, #1
+ bl FUN_02054658
+ mov r1, #0x8f
+ lsl r1, r1, #2
+ strb r0, [r5, r1]
+ mov r0, #0xb
+ pop {r3, r4, r5, pc}
+_0223E902:
+ add r0, r5, #0
+ add r0, #0x58
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD06_0223EBF8
+ mov r1, #0x7e
+ lsl r1, r1, #2
+ ldr r0, [r5, r1]
+ add r1, #0x10
+ ldrh r1, [r5, r1]
+ bl FUN_020200A0
+ mov r1, #0x7f
+ lsl r1, r1, #2
+ ldr r0, [r5, r1]
+ add r1, #0xe
+ ldrh r1, [r5, r1]
+ bl FUN_020200A0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD06_0223ECC8
+ add r5, #0x18
+ add r0, r5, #0
+ bl FUN_02019220
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+_0223E944:
+ mov r0, #0xa
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223E948: .word 0x021C48B8
+_0223E94C: .word 0x00000241
+
+ thumb_func_start MOD06_0223E950
+MOD06_0223E950: ; 0x0223E950
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x8f
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ bne _0223E966
+ mov r0, #0xb
+ pop {r4, pc}
+_0223E966:
+ ldr r0, _0223E9B8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0223E9B2
+ add r0, r4, #0
+ add r0, #0x58
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD06_0223EBF8
+ mov r1, #0x7e
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, #0x10
+ ldrh r1, [r4, r1]
+ bl FUN_020200A0
+ mov r1, #0x7f
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, #0xe
+ ldrh r1, [r4, r1]
+ bl FUN_020200A0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD06_0223ECC8
+ add r4, #0x18
+ add r0, r4, #0
+ bl FUN_02019220
+ mov r0, #4
+ pop {r4, pc}
+_0223E9B2:
+ mov r0, #0xb
+ pop {r4, pc}
+ nop
+_0223E9B8: .word 0x021C48B8
+
+ thumb_func_start MOD06_0223E9BC
+MOD06_0223E9BC: ; 0x0223E9BC
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, _0223EA04 ; =0x00000241
+ add r3, r1, #0
+ ldrb r0, [r4, r0]
+ add r5, r2, #0
+ cmp r0, #0
+ bne _0223E9DA
+ add r4, #0x8c
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, r3, #0
+ bl FUN_0200AE38
+ pop {r3, r4, r5, pc}
+_0223E9DA:
+ cmp r0, #1
+ bne _0223E9EC
+ add r4, #0x8c
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, r3, #0
+ bl FUN_0200B350
+ pop {r3, r4, r5, pc}
+_0223E9EC:
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FD0
+ add r4, #0x8c
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl FUN_0200B534
+ pop {r3, r4, r5, pc}
+ nop
+_0223EA04: .word 0x00000241
+
+ thumb_func_start MOD06_0223EA08
+MOD06_0223EA08: ; 0x0223EA08
+ push {r3, lr}
+ ldr r2, _0223EA34 ; =0x00000241
+ ldrb r0, [r0, r2]
+ cmp r0, #0
+ bne _0223EA1E
+ add r0, r1, #0
+ mov r1, #0
+ mov r2, #0xb
+ bl FUN_0206E7B8
+ pop {r3, pc}
+_0223EA1E:
+ cmp r0, #1
+ bne _0223EA2A
+ add r0, r1, #0
+ bl FUN_0204CAE0
+ pop {r3, pc}
+_0223EA2A:
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0208603C
+ pop {r3, pc}
+ .align 2, 0
+_0223EA34: .word 0x00000241
+
+ thumb_func_start MOD06_0223EA38
+MOD06_0223EA38: ; 0x0223EA38
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, _0223EAFC ; =0x0000023D
+ add r5, r1, #0
+ add r1, r0, #1
+ ldrb r2, [r5, r0]
+ ldrb r1, [r5, r1]
+ cmp r2, r1
+ beq _0223EA74
+ ldr r4, _0223EB00 ; =0x0224F364
+ add r3, sp, #0
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ add r1, r5, #0
+ str r0, [r3]
+ add r1, #0x90
+ ldr r1, [r1]
+ add r0, r2, #0
+ bl FUN_0201EF70
+ ldr r0, _0223EAFC ; =0x0000023D
+ add sp, #0xc
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ mov r0, #0xc
+ pop {r4, r5, pc}
+_0223EA74:
+ mov r1, #0
+ strb r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ ldr r1, [r4, #0x20]
+ bl FUN_0201EB78
+ add r0, r5, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl FUN_0201EB70
+ ldr r0, [r4, #0x20]
+ bl FUN_0201EB8C
+ add r0, r5, #0
+ bl MOD06_0223EBD4
+ add r1, r5, #0
+ ldr r0, [r4, #8]
+ add r1, #0x18
+ mov r2, #3
+ bl FUN_020545B8
+ mov r1, #0x85
+ lsl r1, r1, #2
+ add r0, r5, #0
+ ldr r1, [r5, r1]
+ add r0, #0x18
+ bl FUN_02054608
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #2
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0x23
+ add r0, #0x8c
+ lsl r1, r1, #4
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r2, #0x23
+ lsl r2, r2, #4
+ ldr r1, [r5, r2]
+ sub r2, #0x1c
+ add r0, r5, #0
+ ldr r2, [r5, r2]
+ add r0, #0x18
+ mov r3, #1
+ bl FUN_02054658
+ mov r1, #0x8f
+ lsl r1, r1, #2
+ strb r0, [r5, r1]
+ mov r0, #0xd
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0223EAFC: .word 0x0000023D
+_0223EB00: .word 0x0224F364
+
+ thumb_func_start MOD06_0223EB04
+MOD06_0223EB04: ; 0x0223EB04
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x8f
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ bne _0223EB1A
+ mov r0, #0xd
+ pop {r4, pc}
+_0223EB1A:
+ add r0, r4, #0
+ add r0, #0x18
+ bl FUN_02019178
+ add r0, r4, #0
+ bl MOD06_0223D63C
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223EB2C
+MOD06_0223EB2C: ; 0x0223EB2C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200A914
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #0x23
+ add r0, #0x8c
+ lsl r1, r1, #4
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r1, r4, #0
+ ldr r0, [r5, #8]
+ add r1, #0x18
+ mov r2, #3
+ bl FUN_020545B8
+ mov r1, #0x85
+ lsl r1, r1, #2
+ add r0, r4, #0
+ ldr r1, [r4, r1]
+ add r0, #0x18
+ bl FUN_02054608
+ mov r2, #0x23
+ lsl r2, r2, #4
+ ldr r1, [r4, r2]
+ sub r2, #0x1c
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ add r0, #0x18
+ mov r3, #1
+ bl FUN_02054658
+ mov r1, #0x8f
+ lsl r1, r1, #2
+ strb r0, [r4, r1]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223EB90
+MOD06_0223EB90: ; 0x0223EB90
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r1, _0223EBCC ; =0x0224F370
+ add r5, r0, #0
+ add r0, #0x94
+ mov r2, #4
+ mov r3, #0xb
+ bl FUN_021D9320
+ add r7, r5, #0
+ ldr r4, _0223EBD0 ; =0x0224F3DC
+ mov r6, #0
+ add r7, #0x94
+_0223EBA8:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl FUN_021D9510
+ mov r1, #0x7e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r6, r6, #1
+ add r4, #0x28
+ add r5, r5, #4
+ cmp r6, #4
+ blo _0223EBA8
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223EBCC: .word 0x0224F370
+_0223EBD0: .word 0x0224F3DC
+
+ thumb_func_start MOD06_0223EBD4
+MOD06_0223EBD4: ; 0x0223EBD4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r6, #0x7e
+ mov r4, #0
+ add r5, r7, #0
+ lsl r6, r6, #2
+_0223EBE0:
+ ldr r0, [r5, r6]
+ bl FUN_0201FFC8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blo _0223EBE0
+ add r7, #0x94
+ add r0, r7, #0
+ bl FUN_021D94B4
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223EBF8
+MOD06_0223EBF8: ; 0x0223EBF8
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r1, #0
+ bne _0223EC1E
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xb1
+ mov r2, #8
+ bl FUN_0200C6E4
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xb1
+ mov r2, #0x84
+ bl FUN_0200C6E4
+ pop {r4, pc}
+_0223EC1E:
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xa2
+ mov r2, #0x6c
+ bl FUN_0200C6E4
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xa2
+ mov r2, #0x84
+ bl FUN_0200C6E4
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0223EC3C
+MOD06_0223EC3C: ; 0x0223EC3C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, _0223ECC4 ; =0x00000241
+ add r6, r1, #0
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _0223EC5A
+ sub r0, #0x3d
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_0223EC5A:
+ sub r0, #0x7d
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl FUN_020094F0
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_0206E640
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r5, #0
+ mov r2, #0x10
+ bl FUN_020090FC
+ add r0, r5, #0
+ bl FUN_02009BE8
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020094F0
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #2
+ bl FUN_0206E640
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r5, #0
+ mov r2, #0x10
+ bl FUN_02009168
+ add r0, r5, #0
+ bl FUN_02009DE0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0223ECC4: .word 0x00000241
+
+ thumb_func_start MOD06_0223ECC8
+MOD06_0223ECC8: ; 0x0223ECC8
+ mov r2, #2
+ lsl r2, r2, #8
+ ldr r3, _0223ECD4 ; =0x0200C665
+ ldr r0, [r0, r2]
+ bx r3
+ nop
+_0223ECD4: .word 0x0200C665
+
+ thumb_func_start MOD06_0223ECD8
+MOD06_0223ECD8: ; 0x0223ECD8
+ push {r4, lr}
+ mov r0, #0
+ add r4, r1, #0
+ bl FUN_021D7CA4
+ ldr r0, _0223ECEC ; =0x0000022F
+ mov r1, #0xf
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ nop
+_0223ECEC: .word 0x0000022F
+
+ thumb_func_start MOD06_0223ECF0
+MOD06_0223ECF0: ; 0x0223ECF0
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0223ED46
+ add r0, r6, #0
+ bl FUN_02046528
+ add r5, r0, #0
+ add r0, r6, #0
+ bl FUN_0204652C
+ add r4, r0, #0
+ bl MOD06_0223D7B8
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ ldr r1, _0223ED48 ; =0x0224F47C
+ mov r2, #0xb
+ bl FUN_0206EFEC
+ add r3, r5, #0
+ str r0, [r4, #4]
+ add r3, #0x94
+ ldr r1, [r5, #0xc]
+ ldr r3, [r3]
+ mov r2, #2
+ bl FUN_0206E314
+ ldr r1, [r4, #4]
+ add r0, r5, #0
+ bl FUN_0203781C
+ ldr r1, _0223ED4C ; =0x0208A259
+ add r0, r6, #0
+ add r2, r4, #0
+ bl FUN_020463EC
+ ldr r0, _0223ED50 ; =0x0000022F
+ mov r1, #0x10
+ strb r1, [r4, r0]
+_0223ED46:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0223ED48: .word 0x0224F47C
+_0223ED4C: .word 0x0208A259
+_0223ED50: .word 0x0000022F
+
+ thumb_func_start MOD06_0223ED54
+MOD06_0223ED54: ; 0x0223ED54
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _0223ED66
+ mov r0, #0x12
+ pop {r3, r4, r5, pc}
+_0223ED66:
+ add r1, r5, #0
+ ldr r0, [r4, #8]
+ add r1, #0x18
+ mov r2, #3
+ bl FUN_020545B8
+ mov r1, #0x85
+ lsl r1, r1, #2
+ add r0, r5, #0
+ ldr r1, [r5, r1]
+ add r0, #0x18
+ bl FUN_02054608
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #2
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0x23
+ add r0, #0x8c
+ lsl r1, r1, #4
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r2, #0x23
+ lsl r2, r2, #4
+ ldr r1, [r5, r2]
+ sub r2, #0x1c
+ add r0, r5, #0
+ ldr r2, [r5, r2]
+ add r0, #0x18
+ mov r3, #1
+ bl FUN_02054658
+ mov r1, #0x8f
+ lsl r1, r1, #2
+ strb r0, [r5, r1]
+ mov r0, #0xd
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0223EDC4
+MOD06_0223EDC4: ; 0x0223EDC4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _0223EE70 ; =0x02252420
+ add r4, r1, #0
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ bne _0223EDE6
+ ldr r0, _0223EE70 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_0201BD7C
+_0223EDE6:
+ cmp r4, #0
+ beq _0223EE08
+ ldr r0, _0223EE70 ; =0x02252420
+ add r1, r5, #0
+ ldr r2, [r0]
+ ldr r0, [r2, #0x74]
+ ldr r2, [r2, #0x10]
+ bl FUN_0200A8E0
+ ldr r0, _0223EE70 ; =0x02252420
+ ldr r2, [r0]
+ ldr r0, [r2, #0x58]
+ ldr r1, [r2, #0x14]
+ ldr r2, [r2, #0x10]
+ bl FUN_0200B7B8
+ b _0223EE16
+_0223EE08:
+ ldr r0, _0223EE70 ; =0x02252420
+ add r1, r5, #0
+ ldr r2, [r0]
+ ldr r0, [r2, #0x74]
+ ldr r2, [r2, #0x14]
+ bl FUN_0200A8E0
+_0223EE16:
+ ldr r0, _0223EE70 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x40
+ bl FUN_02019048
+ cmp r0, #0
+ bne _0223EE34
+ ldr r0, _0223EE70 ; =0x02252420
+ mov r2, #3
+ ldr r1, [r0]
+ ldr r0, [r1, #0x68]
+ add r1, #0x40
+ ldr r0, [r0, #8]
+ bl FUN_020545B8
+_0223EE34:
+ ldr r0, _0223EE70 ; =0x02252420
+ ldr r0, [r0]
+ ldr r0, [r0, #0x68]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ add r1, r0, #0
+ ldr r0, _0223EE70 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x40
+ bl FUN_02054608
+ ldr r0, _0223EE70 ; =0x02252420
+ ldr r4, [r0]
+ ldr r0, [r4, #0x68]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ add r2, r0, #0
+ add r0, r4, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x40
+ mov r3, #1
+ bl FUN_02054658
+ ldr r1, _0223EE70 ; =0x02252420
+ ldr r1, [r1]
+ add r1, #0x94
+ strb r0, [r1]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223EE70: .word 0x02252420
+
+ thumb_func_start MOD06_0223EE74
+MOD06_0223EE74: ; 0x0223EE74
+ push {r0, r1, r2, r3}
+ push {r3, r4, lr}
+ sub sp, #0x34
+ ldr r0, _0223EF10 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x20
+ bl FUN_02019048
+ cmp r0, #0
+ bne _0223EEB8
+ ldr r0, _0223EF10 ; =0x02252420
+ add r3, sp, #0x60
+ ldr r1, [r0]
+ add r0, sp, #0x64
+ ldrb r0, [r0]
+ ldrb r3, [r3]
+ mov r2, #3
+ str r0, [sp]
+ add r0, sp, #0x68
+ ldrb r0, [r0]
+ str r0, [sp, #4]
+ add r0, sp, #0x6c
+ ldrb r0, [r0]
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ add r0, sp, #0x40
+ ldrh r0, [r0, #0x30]
+ str r0, [sp, #0x10]
+ ldr r0, [r1, #0x68]
+ add r1, #0x20
+ ldr r0, [r0, #8]
+ bl FUN_02019064
+_0223EEB8:
+ ldr r0, _0223EF10 ; =0x02252420
+ ldr r2, _0223EF14 ; =0x000003D9
+ ldr r0, [r0]
+ mov r1, #1
+ add r0, #0x20
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add r4, sp, #0x40
+ add r3, sp, #0x14
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, _0223EF10 ; =0x02252420
+ mov r3, #4
+ ldr r1, [r0]
+ ldr r0, [r1, #0x64]
+ add r1, #0x20
+ str r1, [sp, #0x20]
+ str r0, [sp, #0x14]
+ mov r1, #0
+ add r0, r2, #0
+ add r2, r1, #0
+ bl FUN_020010A8
+ ldr r1, _0223EF10 ; =0x02252420
+ ldr r2, [r1]
+ str r0, [r2, #0x5c]
+ ldr r0, [r1]
+ add r0, #0x20
+ bl FUN_020191D0
+ add sp, #0x34
+ pop {r3, r4}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ nop
+_0223EF10: .word 0x02252420
+_0223EF14: .word 0x000003D9
+
+ thumb_func_start MOD06_0223EF18
+MOD06_0223EF18: ; 0x0223EF18
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ ldr r0, _0223EFF4 ; =0x02252420
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0223EF28
+ bl ErrorHandling
+_0223EF28:
+ mov r0, #4
+ mov r1, #0x9c
+ bl FUN_02016998
+ ldr r1, _0223EFF4 ; =0x02252420
+ mov r2, #0x9c
+ str r0, [r1]
+ mov r1, #0
+ bl MI_CpuFill8
+ ldr r0, _0223EFF4 ; =0x02252420
+ mov r2, #0
+ ldr r1, [r0]
+ mov r3, #4
+ add r1, #0x88
+ str r2, [r1]
+ ldr r1, [r0]
+ str r4, [r1, #0x68]
+ ldr r0, [r0]
+ mov r1, #0x1a
+ add r0, #0x97
+ strb r2, [r0]
+ ldr r2, _0223EFF8 ; =0x0000013A
+ mov r0, #1
+ bl FUN_0200A86C
+ ldr r1, _0223EFF4 ; =0x02252420
+ ldr r2, [r1]
+ str r0, [r2, #0x74]
+ ldr r0, [r1]
+ ldr r0, [r0, #0x68]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ ldr r1, _0223EFF4 ; =0x02252420
+ ldr r1, [r1]
+ str r0, [r1, #0x78]
+ mov r0, #4
+ bl FUN_02023928
+ ldr r1, _0223EFF4 ; =0x02252420
+ ldr r2, [r1]
+ str r0, [r2, #0x7c]
+ ldr r0, [r1]
+ add r0, #0x20
+ bl FUN_0201901C
+ ldr r0, _0223EFF4 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x30
+ bl FUN_0201901C
+ ldr r0, _0223EFF4 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x40
+ bl FUN_0201901C
+ mov r0, #4
+ bl FUN_0200AA80
+ ldr r1, _0223EFF4 ; =0x02252420
+ ldr r1, [r1]
+ str r0, [r1, #0x50]
+ mov r0, #4
+ bl FUN_0200AA80
+ ldr r1, _0223EFF4 ; =0x02252420
+ ldr r1, [r1]
+ str r0, [r1, #0x54]
+ mov r0, #4
+ bl FUN_0200AA80
+ ldr r1, _0223EFF4 ; =0x02252420
+ ldr r2, [r1]
+ str r0, [r2, #0x58]
+ ldr r0, [r1]
+ mov r2, #0
+ add r0, #0x98
+ strb r2, [r0]
+ add r5, r2, #0
+_0223EFCA:
+ ldr r0, [r1]
+ add r0, r0, r2
+ add r0, #0x80
+ add r2, r2, #1
+ strb r5, [r0]
+ cmp r2, #8
+ blt _0223EFCA
+ ldr r6, _0223EFF4 ; =0x02252420
+ add r4, r5, #0
+ mov r7, #0x8c
+_0223EFDE:
+ add r0, r7, #0
+ mov r1, #4
+ bl FUN_020219F4
+ ldr r1, [r6]
+ add r5, r5, #1
+ str r0, [r1, r4]
+ add r4, r4, #4
+ cmp r5, #8
+ blt _0223EFDE
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223EFF4: .word 0x02252420
+_0223EFF8: .word 0x0000013A
+
+ thumb_func_start MOD06_0223EFFC
+MOD06_0223EFFC: ; 0x0223EFFC
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ ldr r6, _0223F08C ; =0x02252420
+ add r5, r4, #0
+_0223F004:
+ ldr r0, [r6]
+ ldr r0, [r0, r5]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #8
+ blt _0223F004
+ ldr r0, _0223F08C ; =0x02252420
+ ldr r0, [r0]
+ ldr r0, [r0, #0x7c]
+ bl FUN_02016A18
+ ldr r0, _0223F08C ; =0x02252420
+ ldr r0, [r0]
+ ldr r0, [r0, #0x50]
+ cmp r0, #0
+ beq _0223F034
+ bl FUN_0200AB18
+ ldr r0, _0223F08C ; =0x02252420
+ mov r1, #0
+ ldr r0, [r0]
+ str r1, [r0, #0x50]
+_0223F034:
+ ldr r0, _0223F08C ; =0x02252420
+ ldr r0, [r0]
+ ldr r0, [r0, #0x54]
+ cmp r0, #0
+ beq _0223F04A
+ bl FUN_0200AB18
+ ldr r0, _0223F08C ; =0x02252420
+ mov r1, #0
+ ldr r0, [r0]
+ str r1, [r0, #0x54]
+_0223F04A:
+ ldr r0, _0223F08C ; =0x02252420
+ ldr r0, [r0]
+ ldr r0, [r0, #0x58]
+ cmp r0, #0
+ beq _0223F060
+ bl FUN_0200AB18
+ ldr r0, _0223F08C ; =0x02252420
+ mov r1, #0
+ ldr r0, [r0]
+ str r1, [r0, #0x58]
+_0223F060:
+ ldr r0, _0223F08C ; =0x02252420
+ ldr r0, [r0]
+ ldr r0, [r0, #0x74]
+ bl FUN_0200A8B8
+ ldr r0, _0223F08C ; =0x02252420
+ ldr r0, [r0]
+ ldr r1, [r0, #0x4c]
+ cmp r1, #0
+ beq _0223F07A
+ add r0, #0x40
+ bl FUN_02019178
+_0223F07A:
+ ldr r0, _0223F08C ; =0x02252420
+ ldr r0, [r0]
+ bl FUN_02016A18
+ ldr r0, _0223F08C ; =0x02252420
+ mov r1, #0
+ str r1, [r0]
+ pop {r4, r5, r6, pc}
+ nop
+_0223F08C: .word 0x02252420
+
+ thumb_func_start MOD06_0223F090
+MOD06_0223F090: ; 0x0223F090
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_02240778
+ add r2, r0, #0
+ ldr r0, [r4, #0x68]
+ add r4, #0x91
+ ldrb r1, [r4]
+ bl FUN_0204FEF0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223F0A8
+MOD06_0223F0A8: ; 0x0223F0A8
+ push {r3, lr}
+ ldr r0, _0223F0C0 ; =0x02252420
+ mov r1, #1
+ ldr r0, [r0]
+ add r0, #0x98
+ strb r1, [r0]
+ cmp r2, #0
+ bne _0223F0BE
+ ldr r0, _0223F0C4 ; =0x000005DC
+ bl FUN_020054C8
+_0223F0BE:
+ pop {r3, pc}
+ .align 2, 0
+_0223F0C0: .word 0x02252420
+_0223F0C4: .word 0x000005DC
+
+ thumb_func_start MOD06_0223F0C8
+MOD06_0223F0C8: ; 0x0223F0C8
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #3
+ add r5, r0, #0
+ mov r4, #0
+ bl FUN_02001470
+ cmp r0, #0
+ bls _0223F0F6
+ add r6, r4, #0
+ mov r7, #3
+_0223F0DC:
+ lsl r2, r4, #0x18
+ add r0, r5, #0
+ add r1, r6, #0
+ lsr r2, r2, #0x18
+ bl MOD06_0223F0F8
+ add r0, r5, #0
+ add r1, r7, #0
+ add r4, r4, #1
+ bl FUN_02001470
+ cmp r4, r0
+ blo _0223F0DC
+_0223F0F6:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0223F0F8
+MOD06_0223F0F8: ; 0x0223F0F8
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r2, #0
+ bl FUN_0202E810
+ add r4, r0, #0
+ mov r2, #0
+ add r0, sp, #0xc
+ strh r2, [r0]
+ ldr r0, _0223F26C ; =0x02252420
+ ldr r0, [r0]
+ ldr r0, [r0, #0x5c]
+ cmp r0, #0
+ beq _0223F11A
+ add r1, sp, #0xc
+ bl FUN_02001448
+_0223F11A:
+ add r0, sp, #0xc
+ ldrh r1, [r0]
+ add r1, r1, r5
+ strh r1, [r0]
+ ldr r0, _0223F26C ; =0x02252420
+ lsl r5, r5, #4
+ ldr r0, [r0]
+ add r0, #0x20
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r0, #8
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _0223F26C ; =0x02252420
+ lsl r3, r5, #0x10
+ ldr r0, [r0]
+ mov r1, #0xf
+ add r0, #0x20
+ mov r2, #8
+ lsr r3, r3, #0x10
+ bl FUN_020196F4
+ add r0, sp, #0xc
+ ldrh r2, [r0]
+ cmp r2, r4
+ bge _0223F21C
+ ldr r1, _0223F26C ; =0x02252420
+ add r0, r2, #0
+ ldr r1, [r1]
+ ldr r1, [r1, #0x7c]
+ bl FUN_0202E9AC
+ mov r3, #2
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _0223F26C ; =0x02252420
+ add r2, sp, #0xc
+ ldr r0, [r0]
+ ldrh r2, [r2]
+ ldr r0, [r0, #0x50]
+ mov r1, #0
+ add r2, r2, #1
+ bl FUN_0200AD38
+ ldr r0, _0223F26C ; =0x02252420
+ mov r1, #1
+ ldr r2, [r0]
+ ldr r0, [r2, #0x50]
+ ldr r2, [r2, #0x7c]
+ bl FUN_0200ABC0
+ ldr r0, _0223F26C ; =0x02252420
+ mov r1, #0x31
+ ldr r2, [r0]
+ ldr r0, [r2, #0x74]
+ ldr r2, [r2, #4]
+ bl FUN_0200A8E0
+ ldr r0, _0223F26C ; =0x02252420
+ ldr r2, [r0]
+ ldr r0, [r2, #0x50]
+ ldmia r2!, {r1, r2}
+ bl FUN_0200B7B8
+ ldr r0, _0223F26C ; =0x02252420
+ mov r1, #0
+ ldr r2, [r0]
+ mov r0, #0xff
+ str r5, [sp]
+ str r0, [sp, #4]
+ add r0, r2, #0
+ str r1, [sp, #8]
+ ldr r2, [r2]
+ add r0, #0x20
+ mov r3, #8
+ bl FUN_0201BD84
+ ldr r0, _0223F26C ; =0x02252420
+ ldr r0, [r0]
+ ldr r0, [r0, #0x7c]
+ bl FUN_020239BC
+ add r2, r0, #0
+ mov r1, #2
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _0223F26C ; =0x02252420
+ lsr r2, r2, #0x10
+ ldr r0, [r0]
+ mov r3, #5
+ ldr r0, [r0, #0x50]
+ bl FUN_0200AD38
+ ldr r0, _0223F26C ; =0x02252420
+ mov r1, #0x33
+ ldr r2, [r0]
+ ldr r0, [r2, #0x74]
+ ldr r2, [r2, #0xc]
+ bl FUN_0200A8E0
+ ldr r0, _0223F26C ; =0x02252420
+ ldr r2, [r0]
+ ldr r0, [r2, #0x50]
+ ldr r1, [r2, #8]
+ ldr r2, [r2, #0xc]
+ bl FUN_0200B7B8
+ ldr r0, _0223F26C ; =0x02252420
+ mov r1, #0
+ ldr r2, [r0]
+ mov r0, #0xff
+ str r5, [sp]
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ add r0, r2, #0
+ ldr r2, [r2, #8]
+ add r0, #0x20
+ mov r3, #0x58
+ bl FUN_0201BD84
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_0223F21C:
+ mov r3, #2
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _0223F26C ; =0x02252420
+ mov r1, #0
+ ldr r0, [r0]
+ add r2, r2, #1
+ ldr r0, [r0, #0x50]
+ bl FUN_0200AD38
+ ldr r0, _0223F26C ; =0x02252420
+ mov r1, #0x32
+ ldr r2, [r0]
+ ldr r0, [r2, #0x74]
+ ldr r2, [r2, #4]
+ bl FUN_0200A8E0
+ ldr r0, _0223F26C ; =0x02252420
+ ldr r2, [r0]
+ ldr r0, [r2, #0x50]
+ ldmia r2!, {r1, r2}
+ bl FUN_0200B7B8
+ ldr r0, _0223F26C ; =0x02252420
+ mov r1, #0
+ ldr r2, [r0]
+ mov r0, #0xff
+ str r5, [sp]
+ str r0, [sp, #4]
+ add r0, r2, #0
+ str r1, [sp, #8]
+ ldr r2, [r2]
+ add r0, #0x20
+ mov r3, #8
+ bl FUN_0201BD84
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_0223F26C: .word 0x02252420
+
+ thumb_func_start MOD06_0223F270
+MOD06_0223F270: ; 0x0223F270
+ push {r4, lr}
+ sub sp, #0x58
+ add r4, r0, #0
+ ldr r0, _0223F330 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x30
+ bl FUN_02019048
+ cmp r0, #0
+ bne _0223F2AA
+ ldr r0, _0223F330 ; =0x02252420
+ mov r2, #3
+ ldr r1, [r0]
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0xc9
+ str r0, [sp, #0x10]
+ ldr r0, [r1, #0x68]
+ add r1, #0x30
+ ldr r0, [r0, #8]
+ mov r3, #0x17
+ bl FUN_02019064
+_0223F2AA:
+ ldr r0, _0223F330 ; =0x02252420
+ ldr r2, _0223F334 ; =0x000003D9
+ ldr r0, [r0]
+ mov r1, #1
+ add r0, #0x30
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ ldr r0, _0223F330 ; =0x02252420
+ mov r1, #0xf
+ ldr r0, [r0]
+ add r0, #0x30
+ bl FUN_02019620
+ ldr r0, _0223F330 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x30
+ bl FUN_020191D0
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x97
+ strb r1, [r0]
+ ldr r0, _0223F338 ; =MOD06_0223FAA4
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ ldr r0, _0223F330 ; =0x02252420
+ ldr r0, [r0]
+ bl MOD06_0223F344
+ ldr r4, _0223F33C ; =0x0224F5E0
+ add r3, sp, #0x14
+ mov r2, #8
+_0223F2F0:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0223F2F0
+ ldr r0, [r4]
+ str r0, [r3]
+ ldr r0, _0223F330 ; =0x02252420
+ ldr r1, [r0]
+ add r0, r1, #0
+ add r0, #0x91
+ ldrb r0, [r0]
+ cmp r0, #8
+ bne _0223F318
+ add r1, #0x92
+ ldrb r0, [r1]
+ mov r1, #0
+ add r0, #0x59
+ bl MOD06_0223EDC4
+ b _0223F324
+_0223F318:
+ lsl r1, r0, #2
+ add r0, sp, #0x14
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl MOD06_0223EDC4
+_0223F324:
+ ldr r0, _0223F340 ; =MOD06_0223F3B8
+ bl MOD06_0223F8BC
+ add sp, #0x58
+ pop {r4, pc}
+ nop
+_0223F330: .word 0x02252420
+_0223F334: .word 0x000003D9
+_0223F338: .word MOD06_0223FAA4
+_0223F33C: .word 0x0224F5E0
+_0223F340: .word MOD06_0223F3B8
+
+ thumb_func_start MOD06_0223F344
+MOD06_0223F344: ; 0x0223F344
+ push {lr}
+ sub sp, #0xc
+ ldr r0, _0223F3B4 ; =0x02252420
+ mov r1, #0
+ ldr r2, [r0]
+ ldr r0, [r2, #0x54]
+ ldr r2, [r2, #0x78]
+ bl FUN_0200ABC0
+ ldr r0, _0223F3B4 ; =0x02252420
+ ldr r0, [r0]
+ ldr r0, [r0, #0x78]
+ bl FUN_020239BC
+ add r2, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r1, #1
+ lsl r2, r2, #0x10
+ ldr r0, _0223F3B4 ; =0x02252420
+ str r1, [sp, #4]
+ ldr r0, [r0]
+ lsr r2, r2, #0x10
+ ldr r0, [r0, #0x54]
+ mov r3, #5
+ bl FUN_0200AD38
+ ldr r0, _0223F3B4 ; =0x02252420
+ mov r1, #0x30
+ ldr r2, [r0]
+ ldr r0, [r2, #0x74]
+ ldr r2, [r2, #0x18]
+ bl FUN_0200A8E0
+ ldr r0, _0223F3B4 ; =0x02252420
+ ldr r2, [r0]
+ ldr r0, [r2, #0x54]
+ ldr r1, [r2, #0x1c]
+ ldr r2, [r2, #0x18]
+ bl FUN_0200B7B8
+ ldr r0, _0223F3B4 ; =0x02252420
+ mov r3, #2
+ ldr r2, [r0]
+ mov r1, #0
+ str r3, [sp]
+ str r1, [sp, #4]
+ add r0, r2, #0
+ str r1, [sp, #8]
+ ldr r2, [r2, #0x1c]
+ add r0, #0x30
+ bl FUN_0201BD84
+ add sp, #0xc
+ pop {pc}
+ nop
+_0223F3B4: .word 0x02252420
+
+ thumb_func_start MOD06_0223F3B8
+MOD06_0223F3B8: ; 0x0223F3B8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ ldr r0, _0223F454 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _0223F450
+ mov r0, #0x10
+ mov r1, #4
+ bl FUN_02012838
+ ldr r4, _0223F454 ; =0x02252420
+ mov r5, #0
+ ldr r1, [r4]
+ mov r6, #2
+ str r0, [r1, #0x64]
+ mov r7, #1
+_0223F3E0:
+ str r6, [sp]
+ str r7, [sp, #4]
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0, #0x50]
+ add r2, r5, #1
+ add r3, r6, #0
+ bl FUN_0200AD38
+ ldr r2, [r4]
+ mov r1, #0x32
+ ldr r0, [r2, #0x74]
+ ldr r2, [r2, #4]
+ bl FUN_0200A8E0
+ ldr r2, [r4]
+ ldr r0, [r2, #0x50]
+ ldmia r2!, {r1, r2}
+ bl FUN_0200B7B8
+ ldr r1, [r4]
+ mov r2, #0
+ ldr r0, [r1, #0x64]
+ ldr r1, [r1]
+ bl FUN_020128A0
+ add r5, r5, #1
+ cmp r5, #0x10
+ blt _0223F3E0
+ mov r1, #1
+ str r1, [sp, #0x10]
+ mov r0, #2
+ str r0, [sp, #0x14]
+ mov r0, #0x14
+ str r0, [sp, #0x18]
+ mov r0, #0xa
+ mov r4, sp
+ str r0, [sp, #0x1c]
+ sub r4, #0x10
+ ldr r3, _0223F458 ; =0x0224F4B0
+ str r1, [sp, #0x20]
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r4!, {r0, r1, r2, r3}
+ bl MOD06_0223EE74
+ ldr r0, _0223F45C ; =MOD06_0223F460
+ bl MOD06_0223F8BC
+_0223F450:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223F454: .word 0x02252420
+_0223F458: .word 0x0224F4B0
+_0223F45C: .word MOD06_0223F460
+
+ thumb_func_start MOD06_0223F460
+MOD06_0223F460: ; 0x0223F460
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD06_0223F344
+ bl FUN_020311F0
+ cmp r0, #0
+ beq _0223F48C
+ ldr r0, _0223F518 ; =0x02252420
+ mov r1, #3
+ ldr r0, [r0]
+ add r0, #0x88
+ str r1, [r0]
+ bl MOD06_0223F8B4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02240364
+ pop {r3, r4, r5, pc}
+_0223F48C:
+ bl FUN_0202E878
+ cmp r0, #0
+ beq _0223F49A
+ mov r0, #0
+ mvn r0, r0
+ b _0223F4A4
+_0223F49A:
+ ldr r0, _0223F518 ; =0x02252420
+ ldr r0, [r0]
+ ldr r0, [r0, #0x5c]
+ bl FUN_02001204
+_0223F4A4:
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0223F4BA
+ add r1, r1, #1
+ cmp r0, r1
+ bne _0223F4D8
+ add r0, r4, #0
+ bl MOD06_0223F524
+ pop {r3, r4, r5, pc}
+_0223F4BA:
+ ldr r0, _0223F51C ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _0223F518 ; =0x02252420
+ mov r1, #1
+ ldr r0, [r0]
+ add r0, #0x88
+ str r1, [r0]
+ bl MOD06_0223F8B4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02240364
+ pop {r3, r4, r5, pc}
+_0223F4D8:
+ ldr r0, _0223F51C ; =0x000005DC
+ bl FUN_020054C8
+ add r1, r4, #0
+ ldr r0, [r4, #0x5c]
+ add r1, #0x8e
+ bl FUN_0200143C
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r5, [r0]
+ bl FUN_0202E810
+ cmp r0, r5
+ ble _0223F514
+ add r0, r5, #0
+ bl FUN_0202E844
+ add r1, r4, #0
+ add r1, #0x8e
+ add r4, #0x8e
+ strh r0, [r1]
+ ldrh r0, [r4]
+ bl FUN_0204FF30
+ bl FUN_02031668
+ ldr r0, _0223F520 ; =MOD06_0223F584
+ bl MOD06_0223F8BC
+_0223F514:
+ pop {r3, r4, r5, pc}
+ nop
+_0223F518: .word 0x02252420
+_0223F51C: .word 0x000005DC
+_0223F520: .word MOD06_0223F584
+
+ thumb_func_start MOD06_0223F524
+MOD06_0223F524: ; 0x0223F524
+ push {r3, lr}
+ sub sp, #8
+ bl FUN_0202E878
+ cmp r0, #0
+ bne _0223F53C
+ ldr r0, _0223F580 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x98
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0223F57A
+_0223F53C:
+ ldr r0, _0223F580 ; =0x02252420
+ mov r1, #0
+ ldr r0, [r0]
+ add r0, #0x98
+ strb r1, [r0]
+ bl FUN_0202E88C
+ mov r0, #0xc
+ str r0, [sp]
+ mov r0, #0x50
+ str r0, [sp, #4]
+ ldr r0, _0223F580 ; =0x02252420
+ mov r1, #0xf
+ ldr r0, [r0]
+ mov r2, #8
+ add r0, #0x20
+ mov r3, #0
+ bl FUN_020196F4
+ ldr r0, _0223F580 ; =0x02252420
+ mov r1, #0
+ ldr r0, [r0]
+ add r2, r1, #0
+ ldr r0, [r0, #0x5c]
+ bl MOD06_0223F0C8
+ ldr r0, _0223F580 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x20
+ bl FUN_020191D0
+_0223F57A:
+ add sp, #8
+ pop {r3, pc}
+ nop
+_0223F580: .word 0x02252420
+
+ thumb_func_start MOD06_0223F584
+MOD06_0223F584: ; 0x0223F584
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, _0223F5C8 ; =0x02252420
+ add r0, r4, #0
+ add r0, #0x8e
+ ldr r1, [r1]
+ ldrh r0, [r0]
+ ldr r1, [r1, #0x7c]
+ bl FUN_0202E9AC
+ ldr r2, _0223F5C8 ; =0x02252420
+ ldr r0, [r4, #0x58]
+ ldr r2, [r2]
+ mov r1, #1
+ ldr r2, [r2, #0x7c]
+ bl FUN_0200ABC0
+ bl MOD06_02240750
+ cmp r0, #2
+ bgt _0223F5B8
+ mov r0, #1
+ add r1, r0, #0
+ bl MOD06_0223EDC4
+ b _0223F5C0
+_0223F5B8:
+ mov r0, #2
+ mov r1, #1
+ bl MOD06_0223EDC4
+_0223F5C0:
+ ldr r0, _0223F5CC ; =MOD06_0223F6D8
+ bl MOD06_0223F8BC
+ pop {r4, pc}
+ .align 2, 0
+_0223F5C8: .word 0x02252420
+_0223F5CC: .word MOD06_0223F6D8
+
+ thumb_func_start MOD06_0223F5D0
+MOD06_0223F5D0: ; 0x0223F5D0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_020311F0
+ cmp r0, #0
+ beq _0223F5F6
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02240364
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD06_0223EDC4
+ add r0, r4, #0
+ bl MOD06_022406D4
+ b _0223F6CA
+_0223F5F6:
+ mov r0, #0
+ mov r1, #3
+ bl FUN_02031640
+ add r6, r0, #0
+ bl FUN_02031190
+ cmp r6, r0
+ bne _0223F61C
+ bl FUN_02031668
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02240364
+ add r0, r4, #0
+ bl MOD06_02240668
+ b _0223F6CA
+_0223F61C:
+ mov r0, #0
+ mov r1, #5
+ bl FUN_02031640
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0223F640
+ bl FUN_02031668
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02240364
+ add r0, r4, #0
+ bl MOD06_02240668
+ b _0223F6CA
+_0223F640:
+ mov r0, #0
+ mov r1, #4
+ bl FUN_02031640
+ add r6, r0, #0
+ bl FUN_02031190
+ cmp r6, r0
+ bne _0223F662
+ mov r0, #0x53
+ mov r1, #0
+ bl MOD06_0223EDC4
+ ldr r0, _0223F6D0 ; =MOD06_0223FEF0
+ bl MOD06_0223F8BC
+ b _0223F6CA
+_0223F662:
+ mov r0, #0
+ mov r1, #2
+ bl FUN_02031640
+ add r6, r0, #0
+ bl FUN_02031190
+ cmp r6, r0
+ bne _0223F6AE
+ bl FUN_02031668
+ bl FUN_0202DF28
+ add r1, r4, #0
+ add r1, #0x90
+ strb r0, [r1]
+ ldr r0, _0223F6D4 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ bne _0223F69E
+ ldr r0, _0223F6D4 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_0201BD7C
+_0223F69E:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02240364
+ add r0, r4, #0
+ bl MOD06_02240418
+ b _0223F6CA
+_0223F6AE:
+ bl MOD06_02240860
+ cmp r0, #0
+ beq _0223F6C6
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02240364
+ add r0, r4, #0
+ bl MOD06_02240668
+ b _0223F6CA
+_0223F6C6:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0223F6CA:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ nop
+_0223F6D0: .word MOD06_0223FEF0
+_0223F6D4: .word 0x02252420
+
+ thumb_func_start MOD06_0223F6D8
+MOD06_0223F6D8: ; 0x0223F6D8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _0223F714 ; =0x02252420
+ add r4, r1, #0
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _0223F712
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_0223F5D0
+ cmp r0, #0
+ bne _0223F712
+ ldr r0, _0223F718 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ beq _0223F712
+ mov r0, #3
+ mov r1, #0
+ bl MOD06_0223EDC4
+ ldr r0, _0223F71C ; =MOD06_0223F720
+ bl MOD06_0223F8BC
+_0223F712:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223F714: .word 0x02252420
+_0223F718: .word 0x021C48B8
+_0223F71C: .word MOD06_0223F720
+
+ thumb_func_start MOD06_0223F720
+MOD06_0223F720: ; 0x0223F720
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ bl MOD06_0223F5D0
+ cmp r0, #0
+ bne _0223F75C
+ ldr r0, _0223F760 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _0223F75C
+ mov r0, #4
+ str r0, [sp]
+ ldr r0, _0223F760 ; =0x02252420
+ ldr r1, _0223F764 ; =0x0224F488
+ ldr r0, [r0]
+ ldr r2, _0223F768 ; =0x000003D9
+ ldr r0, [r0, #0x68]
+ mov r3, #0xb
+ ldr r0, [r0, #8]
+ bl FUN_02002198
+ str r0, [r4, #0x60]
+ ldr r0, _0223F76C ; =MOD06_0223F770
+ bl MOD06_0223F8BC
+_0223F75C:
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0223F760: .word 0x02252420
+_0223F764: .word 0x0224F488
+_0223F768: .word 0x000003D9
+_0223F76C: .word MOD06_0223F770
+
+ thumb_func_start MOD06_0223F770
+MOD06_0223F770: ; 0x0223F770
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD06_0223F5D0
+ cmp r0, #0
+ ldr r0, [r4, #0x60]
+ beq _0223F78C
+ mov r1, #4
+ bl FUN_020021EC
+ mov r0, #0
+ str r0, [r4, #0x60]
+ pop {r3, r4, r5, pc}
+_0223F78C:
+ mov r1, #4
+ bl FUN_020021AC
+ cmp r0, #0
+ bne _0223F7AE
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02240364
+ mov r0, #6
+ mov r1, #0
+ bl MOD06_0223EDC4
+ add r0, r4, #0
+ bl MOD06_022406D4
+ pop {r3, r4, r5, pc}
+_0223F7AE:
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0223F7BC
+ ldr r0, _0223F7C0 ; =MOD06_0223F584
+ bl MOD06_0223F8BC
+_0223F7BC:
+ pop {r3, r4, r5, pc}
+ nop
+_0223F7C0: .word MOD06_0223F584
+
+ thumb_func_start MOD06_0223F7C4
+MOD06_0223F7C4: ; 0x0223F7C4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r2, #0
+ mov r2, #0
+ add r0, sp, #0xc
+ strh r2, [r0]
+ ldr r0, _0223F898 ; =0x02252420
+ ldr r0, [r0]
+ ldr r0, [r0, #0x5c]
+ cmp r0, #0
+ beq _0223F7E0
+ add r1, sp, #0xc
+ bl FUN_02001448
+_0223F7E0:
+ add r0, sp, #0xc
+ ldrh r1, [r0]
+ add r1, r1, r4
+ strh r1, [r0]
+ ldrh r0, [r0]
+ bl FUN_0202DFA4
+ cmp r0, #0
+ beq _0223F892
+ add r0, sp, #0xc
+ ldrh r0, [r0]
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, _0223F898 ; =0x02252420
+ mov r1, #0
+ ldr r0, [r0]
+ ldr r0, [r0, #0x50]
+ bl FUN_0200ABC0
+ ldr r0, _0223F898 ; =0x02252420
+ mov r1, #0x34
+ ldr r2, [r0]
+ ldr r0, [r2, #0x74]
+ ldr r2, [r2, #4]
+ bl FUN_0200A8E0
+ ldr r0, _0223F898 ; =0x02252420
+ ldr r2, [r0]
+ ldr r0, [r2, #0x50]
+ ldmia r2!, {r1, r2}
+ bl FUN_0200B7B8
+ ldr r0, _0223F898 ; =0x02252420
+ lsl r4, r4, #4
+ ldr r2, [r0]
+ mov r1, #0
+ str r4, [sp]
+ str r1, [sp, #4]
+ add r0, r2, #0
+ str r1, [sp, #8]
+ ldr r2, [r2]
+ add r0, #0x20
+ mov r3, #8
+ bl FUN_0201BD84
+ add r0, sp, #0xc
+ ldrh r0, [r0]
+ bl FUN_0202DFA4
+ bl FUN_020239C0
+ mov r1, #2
+ add r2, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _0223F898 ; =0x02252420
+ mov r3, #5
+ ldr r0, [r0]
+ ldr r0, [r0, #0x50]
+ bl FUN_0200AD38
+ ldr r0, _0223F898 ; =0x02252420
+ mov r1, #0x33
+ ldr r2, [r0]
+ ldr r0, [r2, #0x74]
+ ldr r2, [r2, #0xc]
+ bl FUN_0200A8E0
+ ldr r0, _0223F898 ; =0x02252420
+ ldr r2, [r0]
+ ldr r0, [r2, #0x50]
+ ldr r1, [r2, #8]
+ ldr r2, [r2, #0xc]
+ bl FUN_0200B7B8
+ ldr r0, _0223F898 ; =0x02252420
+ mov r1, #0
+ ldr r2, [r0]
+ mov r3, #0x48
+ str r4, [sp]
+ str r1, [sp, #4]
+ add r0, r2, #0
+ str r1, [sp, #8]
+ ldr r2, [r2, #8]
+ add r0, #0x20
+ bl FUN_0201BD84
+_0223F892:
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_0223F898: .word 0x02252420
+
+ thumb_func_start MOD06_0223F89C
+MOD06_0223F89C: ; 0x0223F89C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_02240778
+ add r2, r0, #0
+ ldr r0, [r4, #0x68]
+ add r4, #0x91
+ ldrb r1, [r4]
+ bl FUN_0204FEB0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0223F8B4
+MOD06_0223F8B4: ; 0x0223F8B4
+ ldr r3, _0223F8B8 ; =0x02050025
+ bx r3
+ .align 2, 0
+_0223F8B8: .word 0x02050025
+
+ thumb_func_start MOD06_0223F8BC
+MOD06_0223F8BC: ; 0x0223F8BC
+ ldr r1, _0223F8C4 ; =0x02252420
+ ldr r1, [r1]
+ str r0, [r1, #0x6c]
+ bx lr
+ .align 2, 0
+_0223F8C4: .word 0x02252420
+
+ thumb_func_start MOD06_0223F8C8
+MOD06_0223F8C8: ; 0x0223F8C8
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldr r0, _0223F94C ; =MOD06_0223FAA4
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ bl MOD06_0223F95C
+ ldr r0, _0223F950 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x30
+ bl FUN_02019048
+ cmp r0, #0
+ bne _0223F910
+ ldr r0, _0223F950 ; =0x02252420
+ mov r2, #3
+ ldr r1, [r0]
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0xcd
+ str r0, [sp, #0x10]
+ ldr r0, [r1, #0x68]
+ add r1, #0x30
+ ldr r0, [r0, #8]
+ mov r3, #0x16
+ bl FUN_02019064
+_0223F910:
+ ldr r0, _0223F950 ; =0x02252420
+ ldr r2, _0223F954 ; =0x000003D9
+ ldr r0, [r0]
+ mov r1, #1
+ add r0, #0x30
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ ldr r0, _0223F950 ; =0x02252420
+ mov r1, #0xf
+ ldr r0, [r0]
+ add r0, #0x30
+ bl FUN_02019620
+ ldr r0, _0223F950 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x30
+ bl FUN_020191D0
+ mov r0, #1
+ add r4, #0x97
+ strb r0, [r4]
+ mov r0, #0
+ bl FUN_0202DEE0
+ ldr r0, _0223F958 ; =MOD06_0223FAB8
+ bl MOD06_0223F8BC
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+_0223F94C: .word MOD06_0223FAA4
+_0223F950: .word 0x02252420
+_0223F954: .word 0x000003D9
+_0223F958: .word MOD06_0223FAB8
+
+ thumb_func_start MOD06_0223F95C
+MOD06_0223F95C: ; 0x0223F95C
+ push {r3, r4, lr}
+ sub sp, #0x44
+ ldr r4, _0223F9D0 ; =0x0224F514
+ add r3, sp, #0
+ mov r2, #8
+_0223F966:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0223F966
+ ldr r0, [r4]
+ str r0, [r3]
+ ldr r0, _0223F9D4 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x91
+ ldrb r0, [r0]
+ cmp r0, #0x11
+ blo _0223F982
+ bl ErrorHandling
+_0223F982:
+ ldr r0, _0223F9D4 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x91
+ ldrb r0, [r0]
+ cmp r0, #8
+ bne _0223F9BE
+ bl FUN_0202DF28
+ cmp r0, #1
+ ble _0223F9AA
+ ldr r0, _0223F9D4 ; =0x02252420
+ mov r1, #0
+ ldr r0, [r0]
+ add r0, #0x92
+ ldrb r0, [r0]
+ add r0, #0x5e
+ bl MOD06_0223EDC4
+ add sp, #0x44
+ pop {r3, r4, pc}
+_0223F9AA:
+ ldr r0, _0223F9D4 ; =0x02252420
+ mov r1, #0
+ ldr r0, [r0]
+ add r0, #0x92
+ ldrb r0, [r0]
+ add r0, #0x54
+ bl MOD06_0223EDC4
+ add sp, #0x44
+ pop {r3, r4, pc}
+_0223F9BE:
+ lsl r1, r0, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl MOD06_0223EDC4
+ add sp, #0x44
+ pop {r3, r4, pc}
+ nop
+_0223F9D0: .word 0x0224F514
+_0223F9D4: .word 0x02252420
+
+ thumb_func_start MOD06_0223F9D8
+MOD06_0223F9D8: ; 0x0223F9D8
+ push {r3, r4, lr}
+ sub sp, #0xc
+ bl FUN_0202DF28
+ add r4, r0, #0
+ bl MOD06_02240750
+ cmp r4, r0
+ blt _0223F9F4
+ bl FUN_0202DF28
+ add r2, r0, #0
+ mov r4, #0x36
+ b _0223FA02
+_0223F9F4:
+ bl MOD06_02240750
+ add r4, r0, #0
+ bl FUN_0202DF28
+ sub r2, r4, r0
+ mov r4, #0x35
+_0223FA02:
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _0223FA5C ; =0x02252420
+ mov r1, #0
+ ldr r0, [r0]
+ mov r3, #2
+ ldr r0, [r0, #0x54]
+ bl FUN_0200AD38
+ ldr r0, _0223FA5C ; =0x02252420
+ mov r1, #0xf
+ ldr r0, [r0]
+ add r0, #0x30
+ bl FUN_02019620
+ ldr r0, _0223FA5C ; =0x02252420
+ add r1, r4, #0
+ ldr r2, [r0]
+ ldr r0, [r2, #0x74]
+ ldr r2, [r2, #0x1c]
+ bl FUN_0200A8E0
+ ldr r0, _0223FA5C ; =0x02252420
+ ldr r2, [r0]
+ ldr r0, [r2, #0x54]
+ ldr r1, [r2, #0x18]
+ ldr r2, [r2, #0x1c]
+ bl FUN_0200B7B8
+ ldr r0, _0223FA5C ; =0x02252420
+ mov r3, #2
+ ldr r2, [r0]
+ mov r1, #0
+ str r3, [sp]
+ str r1, [sp, #4]
+ add r0, r2, #0
+ str r1, [sp, #8]
+ ldr r2, [r2, #0x18]
+ add r0, #0x30
+ bl FUN_0201BD84
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_0223FA5C: .word 0x02252420
+
+ thumb_func_start MOD06_0223FA60
+MOD06_0223FA60: ; 0x0223FA60
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x44
+ ldr r6, _0223FAA0 ; =0x0224F4D0
+ add r2, r0, #0
+ add r4, r1, #0
+ add r5, sp, #0
+ mov r3, #8
+_0223FA6E:
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ sub r3, r3, #1
+ bne _0223FA6E
+ ldr r0, [r6]
+ str r0, [r5]
+ add r0, r2, #0
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ beq _0223FA8C
+ ldr r0, [r4, #0x58]
+ mov r1, #1
+ bl FUN_0200ABC0
+_0223FA8C:
+ add r4, #0x91
+ ldrb r0, [r4]
+ lsl r1, r0, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ mov r1, #1
+ bl MOD06_0223EDC4
+ add sp, #0x44
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0223FAA0: .word 0x0224F4D0
+
+ thumb_func_start MOD06_0223FAA4
+MOD06_0223FAA4: ; 0x0223FAA4
+ push {r3, lr}
+ ldr r2, _0223FAB4 ; =0x02252420
+ ldr r2, [r2]
+ ldr r2, [r2, #0x6c]
+ cmp r2, #0
+ beq _0223FAB2
+ blx r2
+_0223FAB2:
+ pop {r3, pc}
+ .align 2, 0
+_0223FAB4: .word 0x02252420
+
+ thumb_func_start MOD06_0223FAB8
+MOD06_0223FAB8: ; 0x0223FAB8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r0, r1, #0
+ bl MOD06_0223F9D8
+ ldr r0, _0223FB50 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _0223FB4C
+ mov r0, #5
+ mov r1, #4
+ bl FUN_02012838
+ ldr r4, _0223FB50 ; =0x02252420
+ mov r5, #0
+ ldr r1, [r4]
+ mov r6, #0x37
+ str r0, [r1, #0x64]
+ add r7, r5, #0
+_0223FAE6:
+ ldr r1, [r4]
+ add r2, r6, #0
+ ldr r0, [r1, #0x64]
+ ldr r1, [r1, #0x74]
+ add r3, r7, #0
+ bl FUN_02012880
+ add r5, r5, #1
+ cmp r5, #5
+ blt _0223FAE6
+ ldr r1, _0223FB50 ; =0x02252420
+ mov r2, #1
+ ldr r0, [r1]
+ mov r3, #0
+ add r0, #0x98
+ strb r2, [r0]
+ add r2, r3, #0
+_0223FB08:
+ ldr r0, [r1]
+ add r0, r0, r3
+ add r0, #0x80
+ add r3, r3, #1
+ strb r2, [r0]
+ cmp r3, #8
+ blt _0223FB08
+ mov r1, #1
+ str r1, [sp, #0x10]
+ mov r0, #2
+ str r0, [sp, #0x14]
+ mov r0, #0x11
+ str r0, [sp, #0x18]
+ mov r0, #0xc
+ mov r4, sp
+ str r0, [sp, #0x1c]
+ sub r4, #0x10
+ ldr r3, _0223FB54 ; =0x0224F490
+ str r1, [sp, #0x20]
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r4!, {r0, r1, r2, r3}
+ bl MOD06_0223EE74
+ ldr r0, _0223FB58 ; =MOD06_0223FB5C
+ bl MOD06_0223F8BC
+_0223FB4C:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223FB50: .word 0x02252420
+_0223FB54: .word 0x0224F490
+_0223FB58: .word MOD06_0223FB5C
+
+ thumb_func_start MOD06_0223FB5C
+MOD06_0223FB5C: ; 0x0223FB5C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ str r0, [sp]
+ add r0, r1, #0
+ str r1, [sp, #4]
+ bl MOD06_0223F9D8
+ mov r7, #1
+ ldr r4, _0223FCF0 ; =0x02252420
+ mov r5, #0
+ add r6, r7, #0
+_0223FB72:
+ add r0, r5, #0
+ bl FUN_0202DEA4
+ cmp r0, #0
+ beq _0223FB90
+ cmp r5, #0
+ beq _0223FB90
+ ldr r0, [r4]
+ add r0, r0, r5
+ add r0, #0x80
+ strb r6, [r0]
+ ldr r0, [r4]
+ add r0, #0x98
+ strb r6, [r0]
+ b _0223FBDA
+_0223FB90:
+ add r0, r5, #0
+ bl FUN_0202DFA4
+ cmp r0, #0
+ beq _0223FBB4
+ ldr r1, [r4]
+ add r0, r1, r5
+ add r0, #0x80
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0223FBB4
+ add r0, r1, r5
+ add r0, #0x80
+ strb r7, [r0]
+ ldr r0, [r4]
+ add r0, #0x98
+ strb r7, [r0]
+ b _0223FBDA
+_0223FBB4:
+ add r0, r5, #0
+ bl FUN_0202DFA4
+ cmp r0, #0
+ bne _0223FBDA
+ ldr r1, [r4]
+ add r0, r1, r5
+ add r0, #0x80
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0223FBDA
+ add r1, r1, r5
+ add r1, #0x80
+ mov r0, #0
+ strb r0, [r1]
+ ldr r1, [r4]
+ mov r0, #1
+ add r1, #0x98
+ strb r0, [r1]
+_0223FBDA:
+ add r5, r5, #1
+ cmp r5, #8
+ blt _0223FB72
+ ldr r1, _0223FCF0 ; =0x02252420
+ ldr r2, [r1]
+ add r0, r2, #0
+ add r0, #0x98
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0223FC32
+ mov r0, #0
+ add r2, #0x98
+ strb r0, [r2]
+ ldr r0, [r1]
+ ldr r0, [r0, #0x5c]
+ bl FUN_02001328
+ ldr r0, _0223FCF0 ; =0x02252420
+ mov r1, #3
+ ldr r0, [r0]
+ mov r5, #0
+ ldr r0, [r0, #0x5c]
+ bl FUN_02001470
+ cmp r0, #0
+ bls _0223FC32
+ ldr r4, _0223FCF0 ; =0x02252420
+ add r6, r5, #0
+ mov r7, #3
+_0223FC14:
+ ldr r0, [r4]
+ lsl r2, r5, #0x18
+ ldr r0, [r0, #0x5c]
+ add r1, r6, #0
+ lsr r2, r2, #0x18
+ bl MOD06_0223F7C4
+ ldr r0, [r4]
+ add r1, r7, #0
+ ldr r0, [r0, #0x5c]
+ add r5, r5, #1
+ bl FUN_02001470
+ cmp r5, r0
+ blo _0223FC14
+_0223FC32:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x5c]
+ bl FUN_02001204
+ add r4, r0, #0
+ bl FUN_0202DF08
+ cmp r0, #0xff
+ beq _0223FC6A
+ bl FUN_0202DF08
+ ldr r1, [sp, #4]
+ add r1, #0x95
+ strb r0, [r1]
+ ldr r0, _0223FCF4 ; =0x0000060D
+ bl FUN_020054C8
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, #0x95
+ ldrb r0, [r0]
+ bl MOD06_0223FA60
+ ldr r0, _0223FCF8 ; =MOD06_02240310
+ bl MOD06_0223F8BC
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_0223FC6A:
+ bl FUN_020311F0
+ cmp r0, #0
+ beq _0223FC8C
+ bl MOD06_0223F8B4
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ bl MOD06_02240364
+ ldr r0, _0223FCF0 ; =0x02252420
+ mov r1, #3
+ ldr r0, [r0]
+ add sp, #0x4c
+ add r0, #0x88
+ str r1, [r0]
+ pop {r4, r5, r6, r7, pc}
+_0223FC8C:
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _0223FC9C
+ add r0, r0, #1
+ cmp r4, r0
+ beq _0223FCEA
+ b _0223FCA6
+_0223FC9C:
+ ldr r0, _0223FCFC ; =MOD06_0224019C
+ bl MOD06_0223F8BC
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_0223FCA6:
+ bl MOD06_02240750
+ add r4, r0, #0
+ bl FUN_0202DF28
+ cmp r4, r0
+ bgt _0223FCEA
+ ldr r4, _0223FD00 ; =0x0224F59C
+ add r3, sp, #8
+ mov r2, #8
+_0223FCBA:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0223FCBA
+ ldr r0, [r4]
+ str r0, [r3]
+ bl FUN_0202DF28
+ ldr r1, [sp, #4]
+ add r1, #0x90
+ strb r0, [r1]
+ ldr r0, [sp, #4]
+ add r0, #0x91
+ str r0, [sp, #4]
+ ldrb r0, [r0]
+ lsl r1, r0, #2
+ add r0, sp, #8
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl MOD06_0223EDC4
+ ldr r0, _0223FD04 ; =MOD06_0223FFD4
+ bl MOD06_0223F8BC
+_0223FCEA:
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223FCF0: .word 0x02252420
+_0223FCF4: .word 0x0000060D
+_0223FCF8: .word MOD06_02240310
+_0223FCFC: .word MOD06_0224019C
+_0223FD00: .word 0x0224F59C
+_0223FD04: .word MOD06_0223FFD4
+
+ thumb_func_start MOD06_0223FD08
+MOD06_0223FD08: ; 0x0223FD08
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD06_0223F9D8
+ ldr r0, [r4, #0x5c]
+ bl FUN_02001204
+ ldr r0, [r4, #0x60]
+ mov r1, #4
+ bl FUN_020021AC
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x95
+ ldrb r0, [r0]
+ bl FUN_02030E7C
+ cmp r0, #0
+ bne _0223FDA6
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ bne _0223FD42
+ ldr r0, [r4, #0x60]
+ mov r1, #4
+ bl FUN_020021EC
+_0223FD42:
+ add r0, r4, #0
+ add r0, #0x91
+ ldrb r0, [r0]
+ cmp r0, #8
+ bne _0223FD8E
+ mov r5, #1
+ bl MOD06_02240764
+ cmp r0, #1
+ ble _0223FD7E
+ mov r4, #5
+_0223FD58:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0
+ beq _0223FD74
+ add r0, r5, #0
+ bl FUN_0202DE78
+ lsl r1, r5, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ bl FUN_0203162C
+_0223FD74:
+ add r5, r5, #1
+ bl MOD06_02240764
+ cmp r5, r0
+ blt _0223FD58
+_0223FD7E:
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD06_0223EDC4
+ ldr r0, _0223FEE0 ; =MOD06_0223FF30
+ bl MOD06_0223F8BC
+ pop {r4, r5, r6, pc}
+_0223FD8E:
+ add r4, #0x95
+ ldrb r0, [r4]
+ bl FUN_0202DE78
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD06_0223EDC4
+ ldr r0, _0223FEE0 ; =MOD06_0223FF30
+ bl MOD06_0223F8BC
+ pop {r4, r5, r6, pc}
+_0223FDA6:
+ bl FUN_020311F0
+ cmp r0, #0
+ bne _0223FDB6
+ bl MOD06_02240860
+ cmp r0, #0
+ beq _0223FDDE
+_0223FDB6:
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ bne _0223FDC6
+ ldr r0, [r4, #0x60]
+ mov r1, #4
+ bl FUN_020021EC
+_0223FDC6:
+ add r4, #0x95
+ ldrb r0, [r4]
+ bl FUN_0202DE78
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD06_0223EDC4
+ ldr r0, _0223FEE0 ; =MOD06_0223FF30
+ bl MOD06_0223F8BC
+ pop {r4, r5, r6, pc}
+_0223FDDE:
+ cmp r5, #0
+ bne _0223FE6E
+ add r0, r4, #0
+ add r0, #0x91
+ ldrb r0, [r0]
+ add r0, #0xff
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bhi _0223FE14
+ bl FUN_0202E08C
+ cmp r0, #0
+ bne _0223FE14
+ mov r0, #0x53
+ mov r1, #0
+ bl MOD06_0223EDC4
+ ldr r0, _0223FEE4 ; =MOD06_0223FEF0
+ bl MOD06_0223F8BC
+ add r4, #0x95
+ ldrb r1, [r4]
+ mov r0, #4
+ bl FUN_0203162C
+ pop {r4, r5, r6, pc}
+_0223FE14:
+ add r0, r4, #0
+ add r0, #0x95
+ ldrb r0, [r0]
+ bl FUN_0202DEE0
+ add r1, r4, #0
+ add r1, #0x95
+ ldrb r1, [r1]
+ mov r0, #2
+ bl FUN_0203162C
+ bl MOD06_02240764
+ add r5, r0, #0
+ bl FUN_0202DF28
+ cmp r5, r0
+ bne _0223FE62
+ bl FUN_0202DF28
+ add r1, r4, #0
+ add r1, #0x90
+ strb r0, [r1]
+ bl MOD06_02240764
+ cmp r0, #2
+ ble _0223FE52
+ ldr r0, _0223FEE8 ; =MOD06_0223FF94
+ bl MOD06_0223F8BC
+ pop {r4, r5, r6, pc}
+_0223FE52:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD06_02240364
+ add r0, r4, #0
+ bl MOD06_022403E0
+ pop {r4, r5, r6, pc}
+_0223FE62:
+ bl MOD06_0223F95C
+ ldr r0, _0223FEEC ; =MOD06_0223FF6C
+ bl MOD06_0223F8BC
+ pop {r4, r5, r6, pc}
+_0223FE6E:
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ beq _0223FEDC
+ add r0, r4, #0
+ add r0, #0x91
+ ldrb r0, [r0]
+ cmp r0, #8
+ bne _0223FEBE
+ mov r5, #1
+ bl MOD06_02240764
+ cmp r0, #1
+ ble _0223FEB2
+ mov r4, #5
+_0223FE8C:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0
+ beq _0223FEA8
+ add r0, r5, #0
+ bl FUN_0202DE78
+ lsl r1, r5, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ bl FUN_0203162C
+_0223FEA8:
+ add r5, r5, #1
+ bl MOD06_02240764
+ cmp r5, r0
+ blt _0223FE8C
+_0223FEB2:
+ bl MOD06_0223F95C
+ ldr r0, _0223FEEC ; =MOD06_0223FF6C
+ bl MOD06_0223F8BC
+ pop {r4, r5, r6, pc}
+_0223FEBE:
+ add r0, r4, #0
+ add r0, #0x95
+ ldrb r0, [r0]
+ bl FUN_0202DE78
+ add r4, #0x95
+ ldrb r1, [r4]
+ mov r0, #3
+ bl FUN_0203162C
+ bl MOD06_0223F95C
+ ldr r0, _0223FEEC ; =MOD06_0223FF6C
+ bl MOD06_0223F8BC
+_0223FEDC:
+ pop {r4, r5, r6, pc}
+ nop
+_0223FEE0: .word MOD06_0223FF30
+_0223FEE4: .word MOD06_0223FEF0
+_0223FEE8: .word MOD06_0223FF94
+_0223FEEC: .word MOD06_0223FF6C
+
+ thumb_func_start MOD06_0223FEF0
+MOD06_0223FEF0: ; 0x0223FEF0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _0223FF28 ; =0x02252420
+ add r4, r1, #0
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _0223FF26
+ ldr r0, _0223FF2C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0223FF26
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02240364
+ bl MOD06_0223F8B4
+ ldr r0, _0223FF28 ; =0x02252420
+ mov r1, #4
+ ldr r0, [r0]
+ add r0, #0x88
+ str r1, [r0]
+_0223FF26:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223FF28: .word 0x02252420
+_0223FF2C: .word 0x021C48B8
+
+ thumb_func_start MOD06_0223FF30
+MOD06_0223FF30: ; 0x0223FF30
+ push {r3, lr}
+ add r0, r1, #0
+ bl MOD06_0223F9D8
+ ldr r0, _0223FF60 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _0223FF5C
+ ldr r0, _0223FF64 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0223FF5C
+ bl MOD06_0223F95C
+ ldr r0, _0223FF68 ; =MOD06_0223FF6C
+ bl MOD06_0223F8BC
+_0223FF5C:
+ pop {r3, pc}
+ nop
+_0223FF60: .word 0x02252420
+_0223FF64: .word 0x021C48B8
+_0223FF68: .word MOD06_0223FF6C
+
+ thumb_func_start MOD06_0223FF6C
+MOD06_0223FF6C: ; 0x0223FF6C
+ push {r3, lr}
+ add r0, r1, #0
+ bl MOD06_0223F9D8
+ ldr r0, _0223FF8C ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _0223FF8A
+ ldr r0, _0223FF90 ; =MOD06_0223FB5C
+ bl MOD06_0223F8BC
+_0223FF8A:
+ pop {r3, pc}
+ .align 2, 0
+_0223FF8C: .word 0x02252420
+_0223FF90: .word MOD06_0223FB5C
+
+ thumb_func_start MOD06_0223FF94
+MOD06_0223FF94: ; 0x0223FF94
+ push {r4, r5, lr}
+ sub sp, #0x44
+ ldr r5, _0223FFCC ; =0x0224F624
+ add r4, r1, #0
+ add r3, sp, #0
+ mov r2, #8
+_0223FFA0:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0223FFA0
+ ldr r0, [r5]
+ str r0, [r3]
+ add r0, r4, #0
+ bl MOD06_0223F9D8
+ add r4, #0x91
+ ldrb r0, [r4]
+ lsl r1, r0, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl MOD06_0223EDC4
+ ldr r0, _0223FFD0 ; =MOD06_0223FFD4
+ bl MOD06_0223F8BC
+ add sp, #0x44
+ pop {r4, r5, pc}
+ .align 2, 0
+_0223FFCC: .word 0x0224F624
+_0223FFD0: .word MOD06_0223FFD4
+
+ thumb_func_start MOD06_0223FFD4
+MOD06_0223FFD4: ; 0x0223FFD4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD06_0223F9D8
+ mov r0, #0
+ bl FUN_02031A24
+ ldr r0, [r4, #0x5c]
+ bl FUN_02001204
+ ldr r0, _02240020 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _0224001A
+ mov r0, #4
+ str r0, [sp]
+ ldr r0, _02240020 ; =0x02252420
+ ldr r1, _02240024 ; =0x0224F488
+ ldr r0, [r0]
+ ldr r2, _02240028 ; =0x000003D9
+ ldr r0, [r0, #0x68]
+ mov r3, #0xb
+ ldr r0, [r0, #8]
+ bl FUN_02002198
+ str r0, [r4, #0x60]
+ ldr r0, _0224002C ; =MOD06_02240030
+ bl MOD06_0223F8BC
+_0224001A:
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_02240020: .word 0x02252420
+_02240024: .word 0x0224F488
+_02240028: .word 0x000003D9
+_0224002C: .word MOD06_02240030
+
+ thumb_func_start MOD06_02240030
+MOD06_02240030: ; 0x02240030
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD06_0223F9D8
+ ldr r0, [r5, #0x5c]
+ bl FUN_02001204
+ ldr r0, [r5, #0x60]
+ mov r1, #4
+ bl FUN_020021AC
+ add r4, r0, #0
+ bl FUN_020311F0
+ cmp r0, #0
+ bne _02240062
+ bl FUN_02030F20
+ add r1, r5, #0
+ add r1, #0x90
+ ldrb r1, [r1]
+ cmp r1, r0
+ beq _0224007E
+_02240062:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02240072
+ ldr r0, [r5, #0x60]
+ mov r1, #4
+ bl FUN_020021EC
+_02240072:
+ mov r0, #0
+ str r0, [r5, #0x60]
+ ldr r0, _022400E8 ; =MOD06_022400F4
+ bl MOD06_0223F8BC
+ pop {r4, r5, r6, pc}
+_0224007E:
+ cmp r4, #0
+ bne _022400C0
+ add r5, #0x91
+ ldrb r0, [r5]
+ cmp r0, #8
+ bne _022400B2
+ mov r4, #1
+ bl FUN_02030F20
+ cmp r0, #1
+ ble _022400B2
+_02240094:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0
+ bne _022400A8
+ ldr r0, _022400E8 ; =MOD06_022400F4
+ bl MOD06_0223F8BC
+ pop {r4, r5, r6, pc}
+_022400A8:
+ add r4, r4, #1
+ bl FUN_02030F20
+ cmp r4, r0
+ blt _02240094
+_022400B2:
+ mov r0, #0xa
+ bl FUN_02031588
+ ldr r0, _022400EC ; =MOD06_022402B8
+ bl MOD06_0223F8BC
+ pop {r4, r5, r6, pc}
+_022400C0:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ beq _022400E4
+ mov r0, #1
+ bl FUN_02031A24
+ bl MOD06_0223F8B4
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD06_02240364
+ ldr r0, _022400F0 ; =0x02252420
+ mov r1, #1
+ ldr r0, [r0]
+ add r0, #0x88
+ str r1, [r0]
+_022400E4:
+ pop {r4, r5, r6, pc}
+ nop
+_022400E8: .word MOD06_022400F4
+_022400EC: .word MOD06_022402B8
+_022400F0: .word 0x02252420
+
+ thumb_func_start MOD06_022400F4
+MOD06_022400F4: ; 0x022400F4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x44
+ ldr r6, _02240158 ; =0x0224F558
+ add r2, r0, #0
+ add r4, r1, #0
+ add r5, sp, #0
+ mov r3, #8
+_02240102:
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ sub r3, r3, #1
+ bne _02240102
+ ldr r0, [r6]
+ add r1, r4, #0
+ str r0, [r5]
+ add r0, r2, #0
+ bl MOD06_02240364
+ ldr r0, _0224015C ; =0x02252420
+ ldr r1, [r0]
+ add r0, r1, #0
+ add r0, #0x91
+ ldrb r0, [r0]
+ cmp r0, #8
+ bne _02240132
+ add r1, #0x92
+ ldrb r0, [r1]
+ mov r1, #0
+ add r0, #0x68
+ bl MOD06_0223EDC4
+ b _02240144
+_02240132:
+ add r0, r4, #0
+ add r0, #0x91
+ ldrb r0, [r0]
+ lsl r1, r0, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl MOD06_0223EDC4
+_02240144:
+ bl FUN_02050024
+ ldr r0, _02240160 ; =MOD06_02240164
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x44
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02240158: .word 0x0224F558
+_0224015C: .word 0x02252420
+_02240160: .word MOD06_02240164
+
+ thumb_func_start MOD06_02240164
+MOD06_02240164: ; 0x02240164
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02240194 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _02240192
+ ldr r0, _02240198 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _02240192
+ ldr r0, _02240194 ; =0x02252420
+ mov r1, #1
+ ldr r0, [r0]
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_02240192:
+ pop {r4, pc}
+ .align 2, 0
+_02240194: .word 0x02252420
+_02240198: .word 0x021C48B8
+
+ thumb_func_start MOD06_0224019C
+MOD06_0224019C: ; 0x0224019C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x44
+ ldr r6, _022401F8 ; =0x0224F668
+ add r5, r0, #0
+ add r4, r1, #0
+ add r3, sp, #0
+ mov r2, #8
+_022401AA:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022401AA
+ ldr r0, [r6]
+ str r0, [r3]
+ add r0, r4, #0
+ bl MOD06_0223F9D8
+ bl FUN_0202DF28
+ cmp r0, #1
+ ble _022401DE
+ add r4, #0x91
+ ldrb r0, [r4]
+ lsl r1, r0, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl MOD06_0223EDC4
+ ldr r0, _022401FC ; =MOD06_02240204
+ bl MOD06_0223F8BC
+ add sp, #0x44
+ pop {r3, r4, r5, r6, pc}
+_022401DE:
+ bl MOD06_0223F8B4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02240364
+ ldr r0, _02240200 ; =0x02252420
+ mov r1, #1
+ ldr r0, [r0]
+ add r0, #0x88
+ str r1, [r0]
+ add sp, #0x44
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_022401F8: .word 0x0224F668
+_022401FC: .word MOD06_02240204
+_02240200: .word 0x02252420
+
+ thumb_func_start MOD06_02240204
+MOD06_02240204: ; 0x02240204
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD06_0223F9D8
+ ldr r0, [r4, #0x5c]
+ bl FUN_02001204
+ ldr r0, _02240248 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _02240244
+ mov r0, #4
+ str r0, [sp]
+ ldr r0, _02240248 ; =0x02252420
+ ldr r1, _0224024C ; =0x0224F488
+ ldr r0, [r0]
+ ldr r2, _02240250 ; =0x000003D9
+ ldr r0, [r0, #0x68]
+ mov r3, #0xb
+ ldr r0, [r0, #8]
+ bl FUN_02002198
+ str r0, [r4, #0x60]
+ ldr r0, _02240254 ; =MOD06_02240258
+ bl MOD06_0223F8BC
+_02240244:
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02240248: .word 0x02252420
+_0224024C: .word 0x0224F488
+_02240250: .word 0x000003D9
+_02240254: .word MOD06_02240258
+
+ thumb_func_start MOD06_02240258
+MOD06_02240258: ; 0x02240258
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD06_0223F9D8
+ ldr r0, [r5, #0x5c]
+ bl FUN_02001204
+ ldr r0, [r5, #0x60]
+ mov r1, #4
+ bl FUN_020021AC
+ add r4, r0, #0
+ bl FUN_020311F0
+ cmp r0, #0
+ beq _02240280
+ mov r4, #1
+ mvn r4, r4
+_02240280:
+ cmp r4, #0
+ bne _0224029C
+ bl MOD06_0223F8B4
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD06_02240364
+ ldr r0, _022402B0 ; =0x02252420
+ mov r1, #1
+ ldr r0, [r0]
+ add r0, #0x88
+ str r1, [r0]
+ pop {r4, r5, r6, pc}
+_0224029C:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ beq _022402AE
+ bl MOD06_0223F95C
+ ldr r0, _022402B4 ; =MOD06_0223FF6C
+ bl MOD06_0223F8BC
+_022402AE:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022402B0: .word 0x02252420
+_022402B4: .word MOD06_0223FF6C
+
+ thumb_func_start MOD06_022402B8
+MOD06_022402B8: ; 0x022402B8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_020311F0
+ cmp r0, #0
+ bne _022402D4
+ bl FUN_02030F20
+ add r1, r4, #0
+ add r1, #0x90
+ ldrb r1, [r1]
+ cmp r1, r0
+ beq _022402DC
+_022402D4:
+ ldr r0, _0224030C ; =MOD06_022400F4
+ bl MOD06_0223F8BC
+ pop {r3, r4, r5, pc}
+_022402DC:
+ add r0, r4, #0
+ bl MOD06_0223F9D8
+ ldr r0, [r4, #0x5c]
+ bl FUN_02001204
+ mov r0, #0xa
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _02240308
+ bl FUN_020314E8
+ cmp r0, #0
+ beq _02240308
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02240364
+ add r0, r4, #0
+ bl MOD06_02240724
+_02240308:
+ pop {r3, r4, r5, pc}
+ nop
+_0224030C: .word MOD06_022400F4
+
+ thumb_func_start MOD06_02240310
+MOD06_02240310: ; 0x02240310
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD06_0223F9D8
+ ldr r0, [r4, #0x5c]
+ bl FUN_02001204
+ ldr r0, _02240354 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _02240350
+ mov r0, #4
+ str r0, [sp]
+ ldr r0, _02240354 ; =0x02252420
+ ldr r1, _02240358 ; =0x0224F488
+ ldr r0, [r0]
+ ldr r2, _0224035C ; =0x000003D9
+ ldr r0, [r0, #0x68]
+ mov r3, #0xb
+ ldr r0, [r0, #8]
+ bl FUN_02002198
+ str r0, [r4, #0x60]
+ ldr r0, _02240360 ; =MOD06_0223FD08
+ bl MOD06_0223F8BC
+_02240350:
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02240354: .word 0x02252420
+_02240358: .word 0x0224F488
+_0224035C: .word 0x000003D9
+_02240360: .word MOD06_0223FD08
+
+ thumb_func_start MOD06_02240364
+MOD06_02240364: ; 0x02240364
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _022403DC ; =0x02252420
+ add r4, r1, #0
+ ldr r0, [r0]
+ mov r1, #0xf
+ add r0, #0x40
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x20
+ mov r1, #0
+ bl FUN_0200CCF8
+ ldr r0, [r4, #0x64]
+ bl FUN_02012870
+ mov r1, #0
+ ldr r0, [r4, #0x5c]
+ add r2, r1, #0
+ bl FUN_02001300
+ add r0, r4, #0
+ add r0, #0x20
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0x20
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x97
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022403D0
+ ldr r0, _022403DC ; =0x02252420
+ mov r1, #0
+ ldr r0, [r0]
+ add r0, #0x30
+ bl FUN_0200CCF8
+ ldr r0, _022403DC ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x30
+ bl FUN_02019570
+ ldr r0, _022403DC ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x30
+ bl FUN_02019178
+ mov r0, #0
+ add r4, #0x97
+ strb r0, [r4]
+_022403D0:
+ cmp r5, #0
+ beq _022403DA
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_022403DA:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022403DC: .word 0x02252420
+
+ thumb_func_start MOD06_022403E0
+MOD06_022403E0: ; 0x022403E0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, [r4, #0x58]
+ mov r1, #1
+ bl FUN_0200ABC0
+ mov r0, #0x2b
+ mov r1, #1
+ bl MOD06_0223EDC4
+ ldr r0, _02240410 ; =MOD06_0223FAA4
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ ldr r0, _02240414 ; =MOD06_02240474
+ bl MOD06_0223F8BC
+ pop {r4, pc}
+ nop
+_02240410: .word MOD06_0223FAA4
+_02240414: .word MOD06_02240474
+
+ thumb_func_start MOD06_02240418
+MOD06_02240418: ; 0x02240418
+ push {r4, lr}
+ ldr r1, _02240468 ; =0x02252420
+ add r4, r0, #0
+ add r0, #0x8e
+ ldr r1, [r1]
+ ldrh r0, [r0]
+ ldr r1, [r1, #0x7c]
+ bl FUN_0202E9AC
+ ldr r2, _02240468 ; =0x02252420
+ ldr r0, [r4, #0x58]
+ ldr r2, [r2]
+ mov r1, #1
+ ldr r2, [r2, #0x7c]
+ bl FUN_0200ABC0
+ mov r0, #4
+ mov r1, #1
+ bl MOD06_0223EDC4
+ bl FUN_02030F20
+ add r1, r4, #0
+ add r1, #0x90
+ strb r0, [r1]
+ ldr r0, _0224046C ; =MOD06_0223FAA4
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ ldr r0, _02240470 ; =MOD06_02240474
+ bl MOD06_0223F8BC
+ ldr r0, _02240468 ; =0x02252420
+ mov r1, #0x5a
+ ldr r0, [r0]
+ add r0, #0x96
+ strb r1, [r0]
+ pop {r4, pc}
+ nop
+_02240468: .word 0x02252420
+_0224046C: .word MOD06_0223FAA4
+_02240470: .word MOD06_02240474
+
+ thumb_func_start MOD06_02240474
+MOD06_02240474: ; 0x02240474
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_02031190
+ cmp r0, #0
+ bne _02240494
+ bl FUN_02030F20
+ add r4, #0x90
+ ldrb r1, [r4]
+ cmp r1, r0
+ beq _02240494
+ ldr r0, _022404CC ; =MOD06_02240600
+ bl MOD06_0223F8BC
+ pop {r4, pc}
+_02240494:
+ bl MOD06_02240860
+ cmp r0, #0
+ bne _022404A4
+ bl FUN_020311F0
+ cmp r0, #0
+ beq _022404AC
+_022404A4:
+ ldr r0, _022404CC ; =MOD06_02240600
+ bl MOD06_0223F8BC
+ pop {r4, pc}
+_022404AC:
+ ldr r0, _022404D0 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _022404C8
+ mov r0, #0xa
+ bl FUN_02031588
+ ldr r0, _022404D4 ; =MOD06_022404D8
+ bl MOD06_0223F8BC
+_022404C8:
+ pop {r4, pc}
+ nop
+_022404CC: .word MOD06_02240600
+_022404D0: .word 0x02252420
+_022404D4: .word MOD06_022404D8
+
+ thumb_func_start MOD06_022404D8
+MOD06_022404D8: ; 0x022404D8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x44
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02031190
+ cmp r0, #0
+ bne _022404FE
+ bl FUN_02030F20
+ add r1, r4, #0
+ add r1, #0x90
+ ldrb r1, [r1]
+ cmp r1, r0
+ beq _022404FE
+ ldr r0, _022405F4 ; =MOD06_02240600
+ bl MOD06_0223F8BC
+ b _0224058E
+_022404FE:
+ bl MOD06_02240860
+ cmp r0, #0
+ bne _0224050E
+ bl FUN_020311F0
+ cmp r0, #0
+ beq _02240518
+_0224050E:
+ ldr r0, _022405F4 ; =MOD06_02240600
+ bl MOD06_0223F8BC
+ add sp, #0x44
+ pop {r3, r4, r5, r6, pc}
+_02240518:
+ mov r0, #0
+ bl FUN_02030E7C
+ cmp r0, #0
+ bne _0224052C
+ ldr r0, _022405F4 ; =MOD06_02240600
+ bl MOD06_0223F8BC
+ add sp, #0x44
+ pop {r3, r4, r5, r6, pc}
+_0224052C:
+ mov r0, #0
+ mov r1, #5
+ bl FUN_02031640
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02240546
+ ldr r0, _022405F4 ; =MOD06_02240600
+ bl MOD06_0223F8BC
+ add sp, #0x44
+ pop {r3, r4, r5, r6, pc}
+_02240546:
+ mov r0, #0xa
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0224058E
+ bl FUN_020314E8
+ cmp r0, #0
+ beq _0224058E
+ ldr r0, _022405F8 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ bne _02240574
+ ldr r0, _022405F8 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_0201BD7C
+_02240574:
+ bl FUN_02030F20
+ add r1, r4, #0
+ add r1, #0x90
+ strb r0, [r1]
+ add r0, r4, #0
+ bl MOD06_02240724
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #0x44
+ pop {r3, r4, r5, r6, pc}
+_0224058E:
+ ldr r2, _022405F8 ; =0x02252420
+ ldr r0, [r2]
+ add r1, r0, #0
+ add r1, #0x96
+ ldrb r1, [r1]
+ cmp r1, #0
+ beq _022405F0
+ add r1, r0, #0
+ add r1, #0x96
+ ldrb r1, [r1]
+ add r0, #0x96
+ sub r1, r1, #1
+ strb r1, [r0]
+ ldr r2, [r2]
+ add r0, r2, #0
+ add r0, #0x96
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022405F0
+ ldr r6, _022405FC ; =0x0224F6AC
+ add r5, sp, #0
+ mov r3, #8
+_022405BA:
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ sub r3, r3, #1
+ bne _022405BA
+ ldr r0, [r6]
+ str r0, [r5]
+ add r0, r2, #0
+ add r0, #0x91
+ ldrb r0, [r0]
+ cmp r0, #8
+ bne _022405E0
+ add r2, #0x92
+ ldrb r0, [r2]
+ mov r1, #0
+ add r0, #0x63
+ bl MOD06_0223EDC4
+ add sp, #0x44
+ pop {r3, r4, r5, r6, pc}
+_022405E0:
+ add r4, #0x91
+ ldrb r0, [r4]
+ lsl r1, r0, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl MOD06_0223EDC4
+_022405F0:
+ add sp, #0x44
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_022405F4: .word MOD06_02240600
+_022405F8: .word 0x02252420
+_022405FC: .word 0x0224F6AC
+
+ thumb_func_start MOD06_02240600
+MOD06_02240600: ; 0x02240600
+ push {r3, lr}
+ ldr r0, _02240624 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _02240620
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD06_0223EDC4
+ ldr r0, _02240628 ; =MOD06_0224062C
+ bl MOD06_0223F8BC
+_02240620:
+ pop {r3, pc}
+ nop
+_02240624: .word 0x02252420
+_02240628: .word MOD06_0224062C
+
+ thumb_func_start MOD06_0224062C
+MOD06_0224062C: ; 0x0224062C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02240660 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _0224065E
+ ldr r0, _02240664 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0224065E
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ bl MOD06_0223F8B4
+ ldr r0, _02240660 ; =0x02252420
+ mov r1, #1
+ ldr r0, [r0]
+ add r0, #0x88
+ str r1, [r0]
+_0224065E:
+ pop {r4, pc}
+ .align 2, 0
+_02240660: .word 0x02252420
+_02240664: .word 0x021C48B8
+
+ thumb_func_start MOD06_02240668
+MOD06_02240668: ; 0x02240668
+ push {r4, lr}
+ ldr r1, _022406A0 ; =0x02252420
+ add r4, r0, #0
+ add r0, #0x8e
+ ldr r1, [r1]
+ ldrh r0, [r0]
+ ldr r1, [r1, #0x7c]
+ bl FUN_0202E9AC
+ ldr r2, _022406A0 ; =0x02252420
+ ldr r0, [r4, #0x58]
+ ldr r2, [r2]
+ mov r1, #1
+ ldr r2, [r2, #0x7c]
+ bl FUN_0200ABC0
+ mov r0, #5
+ mov r1, #1
+ bl MOD06_0223EDC4
+ bl FUN_0204FF4C
+ ldr r0, _022406A4 ; =MOD06_022406A8
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r4, pc}
+ .align 2, 0
+_022406A0: .word 0x02252420
+_022406A4: .word MOD06_022406A8
+
+ thumb_func_start MOD06_022406A8
+MOD06_022406A8: ; 0x022406A8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _022406D0 ; =0x02252420
+ add r4, r1, #0
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _022406CE
+ bl FUN_0204FF4C
+ add r0, r4, #0
+ bl MOD06_0223F270
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_022406CE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022406D0: .word 0x02252420
+
+ thumb_func_start MOD06_022406D4
+MOD06_022406D4: ; 0x022406D4
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0204FF4C
+ ldr r0, _022406E8 ; =MOD06_022406EC
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r4, pc}
+ .align 2, 0
+_022406E8: .word MOD06_022406EC
+
+ thumb_func_start MOD06_022406EC
+MOD06_022406EC: ; 0x022406EC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _0224071C ; =0x02252420
+ add r4, r1, #0
+ ldr r0, [r0]
+ add r0, #0x94
+ ldrb r0, [r0]
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _02240718
+ ldr r0, _02240720 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _02240718
+ add r0, r4, #0
+ bl MOD06_0223F270
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02240718:
+ pop {r3, r4, r5, pc}
+ nop
+_0224071C: .word 0x02252420
+_02240720: .word 0x021C48B8
+
+ thumb_func_start MOD06_02240724
+MOD06_02240724: ; 0x02240724
+ push {r3, lr}
+ mov r0, #0
+ bl FUN_02031A24
+ ldr r0, _0224074C ; =0x02252420
+ mov r1, #2
+ ldr r0, [r0]
+ add r0, #0x88
+ str r1, [r0]
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020334E8
+ bl FUN_0202DBE0
+ mov r0, #1
+ bl FUN_0202EE84
+ pop {r3, pc}
+ nop
+_0224074C: .word 0x02252420
+
+ thumb_func_start MOD06_02240750
+MOD06_02240750: ; 0x02240750
+ ldr r0, _0224075C ; =0x02252420
+ ldr r3, _02240760 ; =0x02031259
+ ldr r0, [r0]
+ add r0, #0x91
+ ldrb r0, [r0]
+ bx r3
+ .align 2, 0
+_0224075C: .word 0x02252420
+_02240760: .word 0x02031259
+
+ thumb_func_start MOD06_02240764
+MOD06_02240764: ; 0x02240764
+ ldr r0, _02240770 ; =0x02252420
+ ldr r3, _02240774 ; =0x02031249
+ ldr r0, [r0]
+ add r0, #0x91
+ ldrb r0, [r0]
+ bx r3
+ .align 2, 0
+_02240770: .word 0x02252420
+_02240774: .word 0x02031249
+
+ thumb_func_start MOD06_02240778
+MOD06_02240778: ; 0x02240778
+ ldr r0, _0224078C ; =0x02252420
+ ldr r2, [r0]
+ add r0, r2, #0
+ add r0, #0x92
+ add r2, #0x93
+ ldrb r1, [r0]
+ ldrb r0, [r2]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bx lr
+ .align 2, 0
+_0224078C: .word 0x02252420
+
+ thumb_func_start MOD06_02240790
+MOD06_02240790: ; 0x02240790
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD06_0223EF18
+ ldr r0, _022407C8 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x91
+ strb r4, [r0]
+ sub r0, r4, #3
+ cmp r0, #1
+ bhi _022407B2
+ mov r0, #0
+ add r5, #0xac
+ str r0, [r5]
+_022407B2:
+ ldr r0, _022407C8 ; =0x02252420
+ ldr r1, [r0]
+ add r1, #0x92
+ strb r6, [r1]
+ ldr r1, [r0]
+ add r1, #0x93
+ strb r7, [r1]
+ ldr r0, [r0]
+ bl MOD06_0223F090
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022407C8: .word 0x02252420
+
+ thumb_func_start MOD06_022407CC
+MOD06_022407CC: ; 0x022407CC
+ ldr r0, _022407D4 ; =0x02252420
+ ldr r3, _022407D8 ; =MOD06_0223F270
+ ldr r0, [r0]
+ bx r3
+ .align 2, 0
+_022407D4: .word 0x02252420
+_022407D8: .word MOD06_0223F270
+
+ thumb_func_start MOD06_022407DC
+MOD06_022407DC: ; 0x022407DC
+ push {r4, lr}
+ ldr r0, _022407F4 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x88
+ ldr r4, [r0]
+ cmp r4, #0
+ beq _022407EE
+ bl MOD06_0223EFFC
+_022407EE:
+ add r0, r4, #0
+ pop {r4, pc}
+ nop
+_022407F4: .word 0x02252420
+
+ thumb_func_start MOD06_022407F8
+MOD06_022407F8: ; 0x022407F8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD06_0223EF18
+ ldr r0, _02240830 ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x91
+ strb r4, [r0]
+ sub r0, r4, #3
+ cmp r0, #1
+ bhi _0224081A
+ mov r0, #0
+ add r5, #0xac
+ str r0, [r5]
+_0224081A:
+ ldr r0, _02240830 ; =0x02252420
+ ldr r1, [r0]
+ add r1, #0x92
+ strb r6, [r1]
+ ldr r1, [r0]
+ add r1, #0x93
+ strb r7, [r1]
+ ldr r0, [r0]
+ bl MOD06_0223F89C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02240830: .word 0x02252420
+
+ thumb_func_start MOD06_02240834
+MOD06_02240834: ; 0x02240834
+ ldr r0, _0224083C ; =0x02252420
+ ldr r3, _02240840 ; =MOD06_0223F8C8
+ ldr r0, [r0]
+ bx r3
+ .align 2, 0
+_0224083C: .word 0x02252420
+_02240840: .word MOD06_0223F8C8
+
+ thumb_func_start MOD06_02240844
+MOD06_02240844: ; 0x02240844
+ push {r4, lr}
+ ldr r0, _0224085C ; =0x02252420
+ ldr r0, [r0]
+ add r0, #0x88
+ ldr r4, [r0]
+ cmp r4, #0
+ beq _02240856
+ bl MOD06_0223EFFC
+_02240856:
+ add r0, r4, #0
+ pop {r4, pc}
+ nop
+_0224085C: .word 0x02252420
+
+ thumb_func_start MOD06_02240860
+MOD06_02240860: ; 0x02240860
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD06_02240864
+MOD06_02240864: ; 0x02240864
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0x54
+ add r4, r1, #0
+ bl FUN_02019048
+ cmp r0, #0
+ bne _0224089E
+ add r0, r5, #0
+ add r0, #0x54
+ bl FUN_0201901C
+ ldr r0, [r5, #0x10]
+ add r1, r5, #0
+ ldr r0, [r0, #8]
+ add r1, #0x54
+ mov r2, #3
+ bl FUN_020545B8
+ ldr r0, [r5, #0x10]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ add r1, r0, #0
+ add r0, r5, #0
+ add r0, #0x54
+ bl FUN_02054608
+ b _022408A6
+_0224089E:
+ add r0, r5, #0
+ add r0, #0x54
+ bl FUN_0205464C
+_022408A6:
+ ldr r0, [r5, #0x68]
+ ldr r2, [r5, #0x14]
+ add r1, r4, #0
+ bl FUN_0200A8E0
+ ldr r0, [r5, #0x64]
+ ldr r1, [r5, #0x18]
+ ldr r2, [r5, #0x14]
+ bl FUN_0200B7B8
+ ldr r0, [r5, #0x10]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ add r2, r0, #0
+ add r0, r5, #0
+ ldr r1, [r5, #0x18]
+ add r0, #0x54
+ mov r3, #1
+ bl FUN_02054658
+ str r0, [r5, #0x74]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_022408D4
+MOD06_022408D4: ; 0x022408D4
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r1, #0
+ beq _022408EC
+ add r0, #0x54
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ add r0, #0x54
+ bl FUN_02019570
+_022408EC:
+ add r4, #0x54
+ add r0, r4, #0
+ bl FUN_02019178
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022408F8
+MOD06_022408F8: ; 0x022408F8
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r0, #0xc]
+ mov r3, #4
+ bl FUN_02023C04
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r1, #0
+ ldr r0, [r4, #0x64]
+ ldr r2, [r4, #0x1c]
+ add r3, r1, #0
+ bl FUN_0200ABB4
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02240924
+MOD06_02240924: ; 0x02240924
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ ldr r0, [r5, #0x10]
+ add r4, r5, #0
+ ldr r0, [r0, #0xc]
+ mov r1, #0
+ add r4, #0x34
+ bl FUN_02023BA4
+ mov r6, #5
+ cmp r0, #0
+ beq _02240940
+ add r6, r6, #1
+_02240940:
+ add r0, r4, #0
+ bl FUN_02019048
+ cmp r0, #0
+ bne _022409D2
+ add r0, r6, #2
+ mov r1, #4
+ bl FUN_02012838
+ str r0, [r5, #8]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r6, #2
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ str r3, [sp, #0x10]
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ ldr r0, [r0, #8]
+ mov r2, #3
+ bl FUN_02019064
+ add r0, r5, #0
+ ldr r2, _02240A20 ; =0x000003D9
+ add r0, #0x34
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ ldr r0, [r5, #8]
+ ldr r1, [r5, #0x68]
+ mov r2, #0x7b
+ mov r3, #0xc
+ bl FUN_02012880
+ mov r4, #0
+ cmp r6, #0
+ ble _022409C4
+ mov r7, #0x71
+_02240998:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_022408F8
+ ldr r0, [r5, #0x68]
+ ldr r2, [r5, #0x1c]
+ add r1, r7, #0
+ bl FUN_0200A8E0
+ ldr r0, [r5, #0x64]
+ ldr r1, [r5, #0x20]
+ ldr r2, [r5, #0x1c]
+ bl FUN_0200B7B8
+ ldr r0, [r5, #8]
+ ldr r1, [r5, #0x20]
+ add r2, r4, #0
+ bl FUN_020128A0
+ add r4, r4, #1
+ cmp r4, r6
+ blt _02240998
+_022409C4:
+ mov r2, #0x72
+ add r3, r2, #0
+ ldr r0, [r5, #8]
+ ldr r1, [r5, #0x68]
+ sub r3, #0x74
+ bl FUN_02012880
+_022409D2:
+ ldr r4, _02240A24 ; =0x0224F704
+ add r3, sp, #0x14
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r6, #2
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ add r0, sp, #0x14
+ strh r1, [r0, #0x10]
+ strh r1, [r0, #0x12]
+ ldr r0, [r5, #8]
+ mov r1, #0
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r0, #0x34
+ str r0, [sp, #0x20]
+ add r0, r2, #0
+ add r2, r5, #0
+ str r5, [sp, #0x30]
+ add r2, #0x78
+ ldrh r2, [r2]
+ mov r3, #4
+ bl FUN_020010A8
+ str r0, [r5]
+ add r5, #0x34
+ add r0, r5, #0
+ bl FUN_020191D0
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02240A20: .word 0x000003D9
+_02240A24: .word 0x0224F704
+
+ thumb_func_start MOD06_02240A28
+MOD06_02240A28: ; 0x02240A28
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02240A62
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_02001300
+ add r0, r4, #0
+ add r0, #0x34
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r1, r4, #0
+ add r1, #0x38
+ ldrb r1, [r1]
+ ldr r0, [r4, #0x34]
+ bl FUN_0201AC68
+ add r0, r4, #0
+ add r0, #0x34
+ bl FUN_02019178
+ ldr r0, [r4, #8]
+ bl FUN_02012870
+ mov r0, #0
+ str r0, [r4]
+_02240A62:
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02240A64
+MOD06_02240A64: ; 0x02240A64
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl FUN_02001204
+ add r4, r0, #0
+ add r2, r5, #0
+ ldr r0, [r5]
+ mov r1, #0
+ add r2, #0x78
+ bl FUN_02001448
+ add r0, r5, #0
+ add r0, #0x80
+ ldrh r6, [r0]
+ add r1, r5, #0
+ ldr r0, [r5]
+ add r1, #0x80
+ bl FUN_0200143C
+ add r0, r5, #0
+ add r0, #0x80
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _02240A9C
+ ldr r0, _02240B00 ; =0x000005DC
+ bl FUN_020054C8
+_02240A9C:
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _02240ACC
+ add r0, r0, #1
+ cmp r4, r0
+ beq _02240AB0
+ cmp r4, #0xc
+ beq _02240AB4
+ b _02240AE6
+_02240AB0:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_02240AB4:
+ ldr r0, _02240B00 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, [r5, #0x10]
+ mov r1, #0
+ add r0, #0xac
+ str r1, [r0]
+ add r0, r5, #0
+ bl MOD06_02240A28
+ mov r0, #2
+ pop {r4, r5, r6, pc}
+_02240ACC:
+ ldr r0, _02240B00 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, [r5, #0x10]
+ mov r1, #0
+ add r0, #0xac
+ str r1, [r0]
+ add r0, r5, #0
+ bl MOD06_02240A28
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_02240AE6:
+ ldr r0, _02240B00 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ ldr r0, [r0, #0xc]
+ bl FUN_02023BE8
+ ldr r1, [r5, #0x10]
+ add r1, #0xac
+ str r0, [r1]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02240B00: .word 0x000005DC
+
+ thumb_func_start MOD06_02240B04
+MOD06_02240B04: ; 0x02240B04
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #4
+ ldr r4, _02240BA8 ; =0x022522E4
+ bl FUN_02012838
+ str r0, [r5, #0xc]
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _02240BAC ; =0x000002F7
+ add r1, r5, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x10]
+ add r1, #0x44
+ ldr r0, [r0, #8]
+ mov r2, #3
+ mov r3, #0x16
+ bl FUN_02019064
+ add r0, r5, #0
+ ldr r2, _02240BB0 ; =0x000003D9
+ add r0, #0x44
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ mov r6, #0
+_02240B4A:
+ ldr r0, [r5, #0xc]
+ ldr r1, [r5, #0x68]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, #3
+ blt _02240B4A
+ ldr r4, _02240BB4 ; =0x0224F704
+ add r3, sp, #0x14
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ mov r1, #3
+ add r0, sp, #0x14
+ strh r1, [r0, #0x10]
+ strh r1, [r0, #0x12]
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r0, #0x44
+ str r0, [sp, #0x20]
+ add r0, r2, #0
+ add r2, r5, #0
+ str r5, [sp, #0x30]
+ add r2, #0x7a
+ ldrh r2, [r2]
+ mov r3, #4
+ bl FUN_020010A8
+ str r0, [r5, #4]
+ add r5, #0x44
+ add r0, r5, #0
+ bl FUN_020191D0
+ add sp, #0x34
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02240BA8: .word 0x022522E4
+_02240BAC: .word 0x000002F7
+_02240BB0: .word 0x000003D9
+_02240BB4: .word 0x0224F704
+
+ thumb_func_start MOD06_02240BB8
+MOD06_02240BB8: ; 0x02240BB8
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ bl FUN_02001204
+ add r4, r0, #0
+ add r2, r5, #0
+ ldr r0, [r5, #4]
+ mov r1, #0
+ add r2, #0x7a
+ bl FUN_02001448
+ add r0, r5, #0
+ add r0, #0x82
+ ldrh r6, [r0]
+ add r1, r5, #0
+ ldr r0, [r5, #4]
+ add r1, #0x82
+ bl FUN_0200143C
+ add r0, r5, #0
+ add r0, #0x82
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _02240BF0
+ ldr r0, _02240C54 ; =0x000005DC
+ bl FUN_020054C8
+_02240BF0:
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _02240C02
+ add r0, r0, #1
+ cmp r4, r0
+ bne _02240C0E
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_02240C02:
+ ldr r0, _02240C54 ; =0x000005DC
+ bl FUN_020054C8
+ mov r4, #0
+ mvn r4, r4
+ b _02240C1A
+_02240C0E:
+ ldr r0, _02240C54 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ bl MOD06_02240A28
+_02240C1A:
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ beq _02240C50
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_02001300
+ add r0, r5, #0
+ add r0, #0x44
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r1, r5, #0
+ add r1, #0x48
+ ldrb r1, [r1]
+ ldr r0, [r5, #0x44]
+ bl FUN_0201AC68
+ add r0, r5, #0
+ add r0, #0x44
+ bl FUN_02019178
+ ldr r0, [r5, #0xc]
+ bl FUN_02012870
+ mov r0, #0
+ str r0, [r5, #4]
+_02240C50:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02240C54: .word 0x000005DC
+
+ thumb_func_start MOD06_02240C58
+MOD06_02240C58: ; 0x02240C58
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ ldr r2, _02240EFC ; =0x0000013A
+ str r0, [sp, #0x14]
+ ldr r5, [r0, #0x64]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #4
+ bl FUN_0200A86C
+ str r0, [sp, #0x30]
+ mov r0, #0xb4
+ mov r1, #4
+ bl FUN_020219F4
+ str r0, [sp, #0x2c]
+ mov r0, #0xb4
+ mov r1, #4
+ bl FUN_020219F4
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x14]
+ mov r2, #3
+ str r0, [sp, #0x24]
+ add r0, #0x24
+ str r0, [sp, #0x24]
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #0x13
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x24]
+ ldr r0, [r0, #0x10]
+ mov r3, #4
+ ldr r0, [r0, #8]
+ bl FUN_02019064
+ ldr r0, [sp, #0x24]
+ ldr r2, _02240F00 ; =0x000003D9
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ ldr r0, [sp, #0x24]
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, [sp, #0x14]
+ add r1, r0, #0
+ add r1, #0x78
+ ldrh r1, [r1]
+ sub r1, r1, #1
+ bl MOD06_022408F8
+ ldr r0, [sp, #0x30]
+ ldr r2, [sp, #0x2c]
+ mov r1, #0x51
+ bl FUN_0200A8E0
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x2c]
+ add r0, r5, #0
+ bl FUN_0200B7B8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x24]
+ ldr r2, [sp, #0x28]
+ mov r3, #0x39
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ mov r6, #0
+ mov r4, #0x10
+ mov r7, #0xff
+_02240CFE:
+ add r1, r6, #0
+ ldr r0, [sp, #0x30]
+ ldr r2, [sp, #0x2c]
+ add r1, #0x3d
+ bl FUN_0200A8E0
+ str r4, [sp]
+ str r7, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x24]
+ ldr r2, [sp, #0x2c]
+ mov r1, #0
+ mov r3, #2
+ bl FUN_0201BD84
+ add r6, r6, #1
+ add r4, #0xf
+ cmp r6, #9
+ blt _02240CFE
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r0, _02240F04 ; =0x022522D8
+ ldr r7, _02240F08 ; =0x022522CC
+ str r0, [sp, #0x20]
+ mov r0, #0x10
+ str r0, [sp, #0x1c]
+_02240D34:
+ ldr r0, [sp, #0x14]
+ ldrb r1, [r7]
+ ldr r0, [r0, #0x10]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_02023B0C
+ add r2, r0, #0
+ ldr r0, [sp, #0x20]
+ ldrb r4, [r0]
+ ldrb r0, [r7]
+ cmp r0, #0xb
+ bls _02240D50
+ b _02240E8C
+_02240D50:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02240D5C: ; jump table
+ .short _02240E8C - _02240D5C - 2 ; case 0
+ .short _02240D74 - _02240D5C - 2 ; case 1
+ .short _02240D86 - _02240D5C - 2 ; case 2
+ .short _02240D9A - _02240D5C - 2 ; case 3
+ .short _02240E86 - _02240D5C - 2 ; case 4
+ .short _02240DB6 - _02240D5C - 2 ; case 5
+ .short _02240E8C - _02240D5C - 2 ; case 6
+ .short _02240E34 - _02240D5C - 2 ; case 7
+ .short _02240E8C - _02240D5C - 2 ; case 8
+ .short _02240E86 - _02240D5C - 2 ; case 9
+ .short _02240E86 - _02240D5C - 2 ; case 10
+ .short _02240E86 - _02240D5C - 2 ; case 11
+_02240D74:
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #0
+ mov r3, #1
+ bl FUN_0200AD38
+ b _02240E8C
+_02240D86:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ b _02240E8C
+_02240D9A:
+ cmp r2, #0
+ bne _02240DA2
+ mov r4, #0x52
+ b _02240E8C
+_02240DA2:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ b _02240E8C
+_02240DB6:
+ cmp r2, #0
+ ldr r0, _02240F0C ; =0x00002710
+ blt _02240DD0
+ mul r0, r2
+ mov r1, #0xfe
+ bl _s32_div_f
+ add r0, r0, #5
+ mov r1, #0xa
+ bl _s32_div_f
+ add r6, r0, #0
+ b _02240DE4
+_02240DD0:
+ neg r1, r2
+ mul r0, r1
+ mov r1, #0xfe
+ bl _s32_div_f
+ add r0, r0, #5
+ mov r1, #0xa
+ bl _s32_div_f
+ neg r6, r0
+_02240DE4:
+ add r0, r6, #0
+ mov r1, #0xc
+ bl _s32_div_f
+ bl abs
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #0
+ mov r3, #2
+ bl FUN_0200AD38
+ add r0, r6, #0
+ mov r1, #0xc
+ bl _s32_div_f
+ add r0, r1, #0
+ bl abs
+ add r2, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #1
+ mov r3, #2
+ bl FUN_0200AD38
+ cmp r6, #0
+ bne _02240E2E
+ mov r4, #0x52
+ b _02240E8C
+_02240E2E:
+ ble _02240E8C
+ add r4, r4, #1
+ b _02240E8C
+_02240E34:
+ cmp r2, #0
+ ldr r0, _02240F10 ; =0x00035D2E
+ blt _02240E4C
+ add r1, r2, #0
+ mul r1, r0
+ ldr r0, _02240F14 ; =0x0000C350
+ add r0, r1, r0
+ ldr r1, _02240F18 ; =0x000186A0
+ bl _s32_div_f
+ add r6, r0, #0
+ b _02240E5E
+_02240E4C:
+ neg r1, r2
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _02240F14 ; =0x0000C350
+ ldr r1, _02240F18 ; =0x000186A0
+ add r0, r2, r0
+ bl _s32_div_f
+ neg r6, r0
+_02240E5E:
+ add r0, r6, #0
+ bl abs
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ cmp r6, #0
+ bne _02240E80
+ mov r4, #0x52
+ b _02240E8C
+_02240E80:
+ ble _02240E8C
+ add r4, r4, #1
+ b _02240E8C
+_02240E86:
+ cmp r2, #0
+ bne _02240E8C
+ add r4, r4, #1
+_02240E8C:
+ ldr r0, [sp, #0x30]
+ ldr r2, [sp, #0x2c]
+ add r1, r4, #0
+ bl FUN_0200A8E0
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x2c]
+ add r0, r5, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ ldr r1, [sp, #0x28]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r4, r0, #0
+ ldr r0, [sp, #0x1c]
+ mov r3, #0xbf
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x24]
+ ldr r2, [sp, #0x28]
+ mov r1, #0
+ sub r3, r3, r4
+ bl FUN_0201BD84
+ ldr r0, [sp, #0x20]
+ add r7, r7, #1
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r0, #0xf
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #9
+ bge _02240EE0
+ b _02240D34
+_02240EE0:
+ ldr r0, [sp, #0x2c]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x28]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x30]
+ bl FUN_0200A8B8
+ ldr r0, [sp, #0x24]
+ bl FUN_020191D0
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02240EFC: .word 0x0000013A
+_02240F00: .word 0x000003D9
+_02240F04: .word 0x022522D8
+_02240F08: .word 0x022522CC
+_02240F0C: .word 0x00002710
+_02240F10: .word 0x00035D2E
+_02240F14: .word 0x0000C350
+_02240F18: .word 0x000186A0
+
+ thumb_func_start MOD06_02240F1C
+MOD06_02240F1C: ; 0x02240F1C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x24
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r1, r4, #0
+ add r1, #0x28
+ ldrb r1, [r1]
+ ldr r0, [r4, #0x24]
+ bl FUN_0201AC68
+ add r4, #0x24
+ add r0, r4, #0
+ bl FUN_02019178
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02240F40
+MOD06_02240F40: ; 0x02240F40
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ ldr r2, [r4, #0x6c]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0206BE48
+ cmp r0, #0
+ beq _02240F6A
+ cmp r0, #1
+ beq _02240FAA
+ cmp r0, #4
+ beq _02240F70
+ b _02240FAA
+_02240F6A:
+ add sp, #8
+ mov r0, #1
+ pop {r4, pc}
+_02240F70:
+ ldr r0, _02240FE8 ; =0x000005F3
+ bl FUN_020054C8
+ add r1, r4, #0
+ add r1, #0x78
+ ldrh r1, [r1]
+ add r0, r4, #0
+ sub r1, r1, #1
+ bl MOD06_022408F8
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_02023B0C
+ mov r1, #1
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r2, r0, #0
+ ldr r0, [r4, #0x64]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ add r0, r4, #0
+ mov r1, #0x6b
+ bl MOD06_02240864
+ b _02240FE2
+_02240FAA:
+ ldr r0, _02240FE8 ; =0x000005F3
+ bl FUN_020054C8
+ add r1, r4, #0
+ add r1, #0x78
+ ldrh r1, [r1]
+ add r0, r4, #0
+ sub r1, r1, #1
+ bl MOD06_022408F8
+ ldr r0, [r4, #0x10]
+ mov r1, #3
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_02023B0C
+ mov r1, #1
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r2, r0, #0
+ ldr r0, [r4, #0x64]
+ mov r3, #3
+ bl FUN_0200AD38
+ add r0, r4, #0
+ mov r1, #0x79
+ bl MOD06_02240864
+_02240FE2:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_02240FE8: .word 0x000005F3
+
+ thumb_func_start MOD06_02240FEC
+MOD06_02240FEC: ; 0x02240FEC
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02046528
+ add r0, r4, #0
+ bl FUN_0204652C
+ add r4, r0, #0
+ ldr r1, [r4, #0x7c]
+ cmp r1, #0xb
+ bls _02241004
+ b _0224117A
+_02241004:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02241010: ; jump table
+ .short _02241028 - _02241010 - 2 ; case 0
+ .short _02241036 - _02241010 - 2 ; case 1
+ .short _02241054 - _02241010 - 2 ; case 2
+ .short _02241086 - _02241010 - 2 ; case 3
+ .short _02241092 - _02241010 - 2 ; case 4
+ .short _022410B8 - _02241010 - 2 ; case 5
+ .short _022410D2 - _02241010 - 2 ; case 6
+ .short _022410F0 - _02241010 - 2 ; case 7
+ .short _02241104 - _02241010 - 2 ; case 8
+ .short _02241126 - _02241010 - 2 ; case 9
+ .short _0224117E - _02241010 - 2 ; case 10
+ .short _0224113A - _02241010 - 2 ; case 11
+_02241028:
+ mov r1, #0x6a
+ bl MOD06_02240864
+ ldr r0, [r4, #0x7c]
+ add r0, r0, #1
+ str r0, [r4, #0x7c]
+ b _0224117E
+_02241036:
+ ldr r0, [r4, #0x74]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020546C8
+ cmp r0, #0
+ bne _02241046
+ b _0224117E
+_02241046:
+ add r0, r4, #0
+ bl MOD06_02240924
+ ldr r0, [r4, #0x7c]
+ add r0, r0, #1
+ str r0, [r4, #0x7c]
+ b _0224117E
+_02241054:
+ bl MOD06_02240A64
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0224106C
+ ldr r0, [r4, #0x70]
+ mov r1, #2
+ strh r1, [r0]
+ mov r0, #0xb
+ str r0, [r4, #0x7c]
+ b _0224117E
+_0224106C:
+ cmp r0, #2
+ bne _0224107C
+ ldr r0, [r4, #0x70]
+ mov r1, #3
+ strh r1, [r0]
+ mov r0, #0xb
+ str r0, [r4, #0x7c]
+ b _0224117E
+_0224107C:
+ cmp r0, #1
+ bne _0224117E
+ mov r0, #3
+ str r0, [r4, #0x7c]
+ b _0224117E
+_02241086:
+ bl MOD06_02240B04
+ ldr r0, [r4, #0x7c]
+ add r0, r0, #1
+ str r0, [r4, #0x7c]
+ b _0224117E
+_02241092:
+ bl MOD06_02240BB8
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _022410A4
+ mov r0, #2
+ str r0, [r4, #0x7c]
+ b _0224117E
+_022410A4:
+ cmp r0, #1
+ bne _022410AE
+ mov r0, #5
+ str r0, [r4, #0x7c]
+ b _0224117E
+_022410AE:
+ cmp r0, #2
+ bne _0224117E
+ mov r0, #7
+ str r0, [r4, #0x7c]
+ b _0224117E
+_022410B8:
+ bl MOD06_02240F40
+ cmp r0, #0
+ beq _022410CC
+ ldr r0, [r4, #0x70]
+ mov r1, #1
+ strh r1, [r0]
+ mov r0, #0xb
+ str r0, [r4, #0x7c]
+ b _0224117E
+_022410CC:
+ mov r0, #6
+ str r0, [r4, #0x7c]
+ b _0224117E
+_022410D2:
+ ldr r0, [r4, #0x74]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _0224117E
+ ldr r0, _02241184 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0224117E
+ mov r0, #0
+ str r0, [r4, #0x7c]
+ b _0224117E
+_022410F0:
+ mov r1, #1
+ bl MOD06_022408D4
+ add r0, r4, #0
+ bl MOD06_02240C58
+ ldr r0, [r4, #0x7c]
+ add r0, r0, #1
+ str r0, [r4, #0x7c]
+ b _0224117E
+_02241104:
+ ldr r1, _02241184 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #3
+ tst r1, r2
+ beq _0224117E
+ bl MOD06_02240F1C
+ add r0, r4, #0
+ mov r1, #0x6a
+ bl MOD06_02240864
+ add r0, r4, #0
+ bl MOD06_02240924
+ mov r0, #9
+ str r0, [r4, #0x7c]
+ b _0224117E
+_02241126:
+ ldr r0, [r4, #0x74]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020546C8
+ cmp r0, #0
+ beq _0224117E
+ mov r0, #3
+ str r0, [r4, #0x7c]
+ b _0224117E
+_0224113A:
+ bl MOD06_02240A28
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD06_022408D4
+ ldr r0, [r4, #0x64]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x68]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x14]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x18]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x1c]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x20]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x6c]
+ bl FUN_0206BB74
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r4, pc}
+_0224117A:
+ mov r0, #1
+ pop {r4, pc}
+_0224117E:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02241184: .word 0x021C48B8
+
+ thumb_func_start MOD06_02241188
+MOD06_02241188: ; 0x02241188
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0xb
+ mov r1, #0x84
+ bl FUN_020169D8
+ mov r1, #0
+ mov r2, #0x84
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r0, #0
+ str r0, [r4, #0x7c]
+ str r5, [r4, #0x10]
+ add r5, #0xac
+ str r0, [r5]
+ mov r0, #4
+ bl FUN_0200AA80
+ str r0, [r4, #0x64]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xcf
+ mov r3, #4
+ bl FUN_0200A86C
+ str r0, [r4, #0x68]
+ mov r0, #0xb4
+ mov r1, #4
+ bl FUN_020219F4
+ str r0, [r4, #0x14]
+ mov r0, #0xb4
+ mov r1, #4
+ bl FUN_020219F4
+ str r0, [r4, #0x18]
+ mov r0, #0xb4
+ mov r1, #4
+ bl FUN_020219F4
+ str r0, [r4, #0x1c]
+ mov r0, #0xb4
+ mov r1, #4
+ bl FUN_020219F4
+ str r0, [r4, #0x20]
+ mov r0, #0xb
+ bl FUN_0206BB5C
+ str r0, [r4, #0x6c]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022411F4
+MOD06_022411F4: ; 0x022411F4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02046528
+ bl MOD06_02241188
+ add r2, r0, #0
+ ldr r1, _02241210 ; =MOD06_02240FEC
+ add r0, r5, #0
+ str r4, [r2, #0x70]
+ bl FUN_0204640C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02241210: .word MOD06_02240FEC
+
+ thumb_func_start MOD06_02241214
+MOD06_02241214: ; 0x02241214
+ asr r1, r0
+ mov r0, #1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+
+ thumb_func_start MOD06_02241220
+MOD06_02241220: ; 0x02241220
+ mov r2, #1
+ ldr r3, [r1]
+ lsl r2, r0
+ add r0, r3, #0
+ eor r0, r2
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_02241230
+MOD06_02241230: ; 0x02241230
+ push {r4, r5, lr}
+ sub sp, #0x2c
+ ldr r3, _022412E4 ; =0x0224F7B0
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x10
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r4, #0x38]
+ bl FUN_02055320
+ add r5, r0, #0
+ ldr r0, [r4, #0x38]
+ bl FUN_0205532C
+ add r1, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, sp, #0x1c
+ mov r2, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r3, r2, #0
+ bl FUN_0204A840
+ mov r0, #0
+ str r0, [sp]
+ add r0, sp, #0xc
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, sp, #0x10
+ mov r2, #3
+ add r3, sp, #0x1c
+ bl FUN_0204A94C
+ cmp r0, #0
+ beq _022412E0
+ add r0, r4, #0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ mov r1, #1
+ bl FUN_020254A0
+ add r5, r0, #0
+ mov r0, #0xb
+ mov r1, #4
+ bl FUN_020169D8
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [r2]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0xef
+ bne _022412B4
+ ldr r0, [r4, #0x10]
+ ldr r1, _022412E8 ; =MOD06_0224158C
+ bl FUN_0204640C
+ mov r0, #2
+ add sp, #0x2c
+ strb r0, [r5]
+ pop {r4, r5, pc}
+_022412B4:
+ cmp r0, #0xf0
+ bne _022412C8
+ ldr r0, [r4, #0x10]
+ ldr r1, _022412EC ; =MOD06_02241428
+ bl FUN_0204640C
+ mov r0, #1
+ add sp, #0x2c
+ strb r0, [r5]
+ pop {r4, r5, pc}
+_022412C8:
+ cmp r0, #0xf1
+ bne _022412DC
+ ldr r0, [r4, #0x10]
+ ldr r1, _022412F0 ; =MOD06_02241348
+ bl FUN_0204640C
+ mov r0, #0
+ add sp, #0x2c
+ strb r0, [r5]
+ pop {r4, r5, pc}
+_022412DC:
+ bl ErrorHandling
+_022412E0:
+ add sp, #0x2c
+ pop {r4, r5, pc}
+ .align 2, 0
+_022412E4: .word 0x0224F7B0
+_022412E8: .word MOD06_0224158C
+_022412EC: .word MOD06_02241428
+_022412F0: .word MOD06_02241348
+
+ thumb_func_start MOD06_022412F4
+MOD06_022412F4: ; 0x022412F4
+ push {r4, r5, r6, lr}
+ add r5, r3, #0
+ ldr r4, [sp, #0x10]
+ bl FUN_0204A6E0
+ add r6, r0, #0
+ bl FUN_02054890
+ cmp r0, #0
+ beq _02241312
+ cmp r5, #0
+ beq _02241342
+ mov r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02241312:
+ add r0, r6, #0
+ bl FUN_0205489C
+ cmp r0, #0
+ beq _0224132A
+ mov r0, #2
+ lsl r0, r0, #0x10
+ cmp r5, r0
+ beq _02241342
+ mov r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224132A:
+ add r0, r6, #0
+ bl FUN_020548A8
+ cmp r0, #0
+ beq _02241342
+ mov r0, #1
+ lsl r0, r0, #0x12
+ cmp r5, r0
+ beq _02241342
+ mov r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02241342:
+ mov r0, #0
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_02241348
+MOD06_02241348: ; 0x02241348
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ bl FUN_02046528
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0204652C
+ add r5, r0, #0
+ ldr r1, [r5]
+ cmp r1, #3
+ bhi _0224141E
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224136E: ; jump table
+ .short _02241376 - _0224136E - 2 ; case 0
+ .short _02241386 - _0224136E - 2 ; case 1
+ .short _022413F8 - _0224136E - 2 ; case 2
+ .short _02241414 - _0224136E - 2 ; case 3
+_02241376:
+ ldr r1, [r4, #0x4c]
+ mov r0, #0
+ bl MOD06_022417C8
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224141E
+_02241386:
+ ldr r1, [r4, #0x4c]
+ mov r0, #1
+ bl FUN_021DA03C
+ add r6, r0, #0
+ ldr r1, [r4, #0x4c]
+ mov r0, #2
+ bl FUN_021DA03C
+ add r7, r0, #0
+ ldr r1, [r4, #0x4c]
+ mov r0, #3
+ bl FUN_021DA03C
+ str r0, [sp]
+ add r0, r6, #0
+ bl FUN_021DA20C
+ cmp r0, #0
+ beq _0224141E
+ add r0, r7, #0
+ bl FUN_021DA20C
+ cmp r0, #0
+ beq _0224141E
+ ldr r0, [sp]
+ bl FUN_021DA20C
+ cmp r0, #0
+ beq _0224141E
+ add r4, #0xa0
+ ldr r0, [r4]
+ mov r1, #0xf2
+ bl FUN_021E7ED8
+ add r4, r0, #0
+ add r0, sp, #4
+ add r1, r4, #0
+ bl FUN_021E7EA0
+ mov r0, #1
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xc
+ sub r0, r1, r0
+ str r0, [sp, #8]
+ cmp r0, #0
+ bgt _022413EE
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+_022413EE:
+ add r0, r4, #0
+ add r1, sp, #4
+ bl FUN_021E7EB0
+ b _0224141E
+_022413F8:
+ add r4, #0x9c
+ mov r0, #0
+ ldr r2, [r4]
+ add r1, r0, #0
+ bl FUN_021F4594
+ ldr r0, _02241424 ; =0x0000065A
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224141E
+_02241414:
+ bl FUN_02016A18
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0224141E:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02241424: .word 0x0000065A
+
+ thumb_func_start MOD06_02241428
+MOD06_02241428: ; 0x02241428
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ bl FUN_02046528
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0204652C
+ add r5, r0, #0
+ ldr r1, [r5]
+ cmp r1, #5
+ bls _02241444
+ b _02241580
+_02241444:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02241450: ; jump table
+ .short _0224145C - _02241450 - 2 ; case 0
+ .short _0224146C - _02241450 - 2 ; case 1
+ .short _022414EC - _02241450 - 2 ; case 2
+ .short _02241522 - _02241450 - 2 ; case 3
+ .short _02241558 - _02241450 - 2 ; case 4
+ .short _02241576 - _02241450 - 2 ; case 5
+_0224145C:
+ ldr r1, [r4, #0x4c]
+ mov r0, #1
+ bl MOD06_022417C8
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02241580
+_0224146C:
+ ldr r1, [r4, #0x4c]
+ mov r0, #1
+ bl FUN_021DA03C
+ add r6, r0, #0
+ ldr r1, [r4, #0x4c]
+ mov r0, #2
+ bl FUN_021DA03C
+ add r7, r0, #0
+ ldr r1, [r4, #0x4c]
+ mov r0, #3
+ bl FUN_021DA03C
+ str r0, [sp]
+ add r0, r6, #0
+ bl FUN_021DA20C
+ cmp r0, #0
+ beq _02241580
+ add r0, r7, #0
+ bl FUN_021DA20C
+ cmp r0, #0
+ beq _02241580
+ ldr r0, [sp]
+ bl FUN_021DA20C
+ cmp r0, #0
+ beq _02241580
+ add r4, #0xa0
+ ldr r0, [r4]
+ mov r1, #0xf2
+ bl FUN_021E7ED8
+ add r1, r0, #0
+ add r0, sp, #0x1c
+ bl FUN_021E7EA0
+ ldr r1, [sp, #0x20]
+ cmp r1, #0
+ bne _022414C6
+ mov r0, #2
+ str r0, [r5]
+ b _02241580
+_022414C6:
+ mov r0, #2
+ lsl r0, r0, #0x10
+ cmp r1, r0
+ bne _022414DA
+ add r0, r5, #0
+ bl FUN_02016A18
+ add sp, #0x28
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022414DA:
+ lsl r0, r0, #1
+ cmp r1, r0
+ bne _022414E6
+ mov r0, #3
+ str r0, [r5]
+ b _02241580
+_022414E6:
+ bl ErrorHandling
+ b _02241580
+_022414EC:
+ add r4, #0xa0
+ ldr r0, [r4]
+ mov r1, #0xf2
+ bl FUN_021E7ED8
+ add r4, r0, #0
+ add r0, sp, #0x10
+ add r1, r4, #0
+ bl FUN_021E7EA0
+ mov r0, #1
+ ldr r1, [sp, #0x14]
+ lsl r0, r0, #0xc
+ add r2, r1, r0
+ lsl r1, r0, #5
+ str r2, [sp, #0x14]
+ cmp r2, r1
+ blt _02241518
+ lsl r0, r0, #5
+ str r0, [sp, #0x14]
+ mov r0, #4
+ str r0, [r5]
+_02241518:
+ add r0, r4, #0
+ add r1, sp, #0x10
+ bl FUN_021E7EB0
+ b _02241580
+_02241522:
+ add r4, #0xa0
+ ldr r0, [r4]
+ mov r1, #0xf2
+ bl FUN_021E7ED8
+ add r4, r0, #0
+ add r0, sp, #4
+ add r1, r4, #0
+ bl FUN_021E7EA0
+ mov r0, #1
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xc
+ sub r2, r1, r0
+ lsl r1, r0, #5
+ str r2, [sp, #8]
+ cmp r2, r1
+ bgt _0224154E
+ lsl r0, r0, #5
+ str r0, [sp, #8]
+ mov r0, #4
+ str r0, [r5]
+_0224154E:
+ add r0, r4, #0
+ add r1, sp, #4
+ bl FUN_021E7EB0
+ b _02241580
+_02241558:
+ add r4, #0x9c
+ mov r1, #2
+ ldr r2, [r4]
+ mov r0, #0
+ lsl r1, r1, #0x10
+ bl FUN_021F4594
+ ldr r0, _02241588 ; =0x0000065A
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02241580
+_02241576:
+ bl FUN_02016A18
+ add sp, #0x28
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02241580:
+ mov r0, #0
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02241588: .word 0x0000065A
+
+ thumb_func_start MOD06_0224158C
+MOD06_0224158C: ; 0x0224158C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ bl FUN_02046528
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0204652C
+ add r5, r0, #0
+ ldr r1, [r5]
+ cmp r1, #3
+ bhi _02241666
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022415B2: ; jump table
+ .short _022415BA - _022415B2 - 2 ; case 0
+ .short _022415CA - _022415B2 - 2 ; case 1
+ .short _0224163E - _022415B2 - 2 ; case 2
+ .short _0224165C - _022415B2 - 2 ; case 3
+_022415BA:
+ ldr r1, [r4, #0x4c]
+ mov r0, #2
+ bl MOD06_022417C8
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02241666
+_022415CA:
+ ldr r1, [r4, #0x4c]
+ mov r0, #1
+ bl FUN_021DA03C
+ add r6, r0, #0
+ ldr r1, [r4, #0x4c]
+ mov r0, #2
+ bl FUN_021DA03C
+ add r7, r0, #0
+ ldr r1, [r4, #0x4c]
+ mov r0, #3
+ bl FUN_021DA03C
+ str r0, [sp]
+ add r0, r6, #0
+ bl FUN_021DA20C
+ cmp r0, #0
+ beq _02241666
+ add r0, r7, #0
+ bl FUN_021DA20C
+ cmp r0, #0
+ beq _02241666
+ ldr r0, [sp]
+ bl FUN_021DA20C
+ cmp r0, #0
+ beq _02241666
+ add r4, #0xa0
+ ldr r0, [r4]
+ mov r1, #0xf2
+ bl FUN_021E7ED8
+ add r4, r0, #0
+ add r0, sp, #4
+ add r1, r4, #0
+ bl FUN_021E7EA0
+ mov r0, #1
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xc
+ add r2, r1, r0
+ lsl r1, r0, #6
+ str r2, [sp, #8]
+ cmp r2, r1
+ blt _02241634
+ lsl r0, r0, #6
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+_02241634:
+ add r0, r4, #0
+ add r1, sp, #4
+ bl FUN_021E7EB0
+ b _02241666
+_0224163E:
+ add r4, #0x9c
+ mov r1, #1
+ ldr r2, [r4]
+ mov r0, #0
+ lsl r1, r1, #0x12
+ bl FUN_021F4594
+ ldr r0, _0224166C ; =0x0000065A
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02241666
+_0224165C:
+ bl FUN_02016A18
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02241666:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224166C: .word 0x0000065A
+
+ thumb_func_start MOD06_02241670
+MOD06_02241670: ; 0x02241670
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r4, r0, #0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ mov r1, #1
+ bl FUN_020254A0
+ add r2, sp, #0x20
+ ldr r6, _022417C4 ; =0x0224F780
+ add r5, r0, #0
+ ldmia r6!, {r0, r1}
+ add r3, r2, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r2]
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x4c]
+ mov r2, #0xf2
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ ldr r1, [r4, #0x2c]
+ bl FUN_021E7FBC
+ mov r0, #0x26
+ str r0, [sp]
+ mov r0, #0
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r1, #0x9c
+ ldr r1, [r1]
+ mov r2, #2
+ str r1, [sp, #8]
+ mov r1, #1
+ mov r3, #0x19
+ bl FUN_021F44D8
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _022416D4
+ cmp r0, #1
+ beq _022416DE
+ cmp r0, #2
+ beq _022416EA
+ b _022416F6
+_022416D4:
+ mov r5, #0
+ mov r6, #1
+ add r7, r6, #0
+ str r5, [sp, #0xc]
+ b _02241702
+_022416DE:
+ mov r5, #2
+ mov r6, #1
+ lsl r5, r5, #0x10
+ mov r7, #0
+ str r6, [sp, #0xc]
+ b _02241702
+_022416EA:
+ mov r5, #1
+ mov r7, #1
+ lsl r5, r5, #0x12
+ mov r6, #0
+ str r7, [sp, #0xc]
+ b _02241702
+_022416F6:
+ bl ErrorHandling
+ mov r5, #0
+ mov r6, #1
+ add r7, r6, #0
+ str r5, [sp, #0xc]
+_02241702:
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ mov r1, #0xf2
+ bl FUN_021E7ED8
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x10]
+ add r0, sp, #0x14
+ bl FUN_021E7EA0
+ ldr r0, [sp, #0x10]
+ add r1, sp, #0x14
+ str r5, [sp, #0x18]
+ bl FUN_021E7EB0
+ add r2, r4, #0
+ add r2, #0x9c
+ ldr r2, [r2]
+ mov r0, #0
+ add r1, r5, #0
+ bl FUN_021F4594
+ ldr r2, [r4, #0x4c]
+ mov r0, #0xef
+ mov r1, #0
+ bl FUN_021DA080
+ add r5, r0, #0
+ mov r1, #1
+ bl FUN_021DA1A8
+ add r0, r5, #0
+ add r1, r6, #0
+ bl FUN_021DA1A0
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_021DA1A4
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_021DA0DC
+ add r0, r5, #0
+ bl FUN_021DA138
+ ldr r2, [r4, #0x4c]
+ mov r0, #0xf0
+ mov r1, #0
+ bl FUN_021DA080
+ add r5, r0, #0
+ mov r1, #2
+ bl FUN_021DA1A8
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_021DA1A0
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_021DA1A4
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_021DA0DC
+ add r0, r5, #0
+ bl FUN_021DA138
+ ldr r2, [r4, #0x4c]
+ mov r0, #0xf1
+ mov r1, #0
+ bl FUN_021DA080
+ mov r1, #3
+ add r4, r0, #0
+ bl FUN_021DA1A8
+ ldr r1, [sp, #0xc]
+ add r0, r4, #0
+ bl FUN_021DA1A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_021DA1A4
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_021DA0DC
+ add r0, r4, #0
+ bl FUN_021DA138
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022417C4: .word 0x0224F780
+
+ thumb_func_start MOD06_022417C8
+MOD06_022417C8: ; 0x022417C8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ cmp r0, #2
+ bne _022417D8
+ mov r6, #1
+ mov r4, #2
+ mov r5, #3
+ b _022417F4
+_022417D8:
+ cmp r0, #1
+ bne _022417E4
+ mov r6, #2
+ mov r4, #1
+ mov r5, #3
+ b _022417F4
+_022417E4:
+ cmp r0, #0
+ bne _022417F0
+ mov r6, #3
+ mov r4, #1
+ mov r5, #2
+ b _022417F4
+_022417F0:
+ bl ErrorHandling
+_022417F4:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_021DA03C
+ add r6, r0, #0
+ mov r1, #0
+ bl FUN_021DA1A0
+ add r0, r6, #0
+ bl FUN_021DA118
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_021DA0DC
+ add r0, r6, #0
+ bl FUN_021DA0E0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_021DA03C
+ add r4, r0, #0
+ mov r1, #1
+ bl FUN_021DA1A0
+ add r0, r4, #0
+ bl FUN_021DA118
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_021DA0DC
+ add r0, r4, #0
+ bl FUN_021DA0E0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_021DA03C
+ add r4, r0, #0
+ mov r1, #1
+ bl FUN_021DA1A0
+ add r0, r4, #0
+ bl FUN_021DA118
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_021DA0DC
+ add r0, r4, #0
+ bl FUN_021DA0E0
+ ldr r0, _02241868 ; =0x0000065A
+ bl FUN_020054C8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02241868: .word 0x0000065A
+
+ thumb_func_start MOD06_0224186C
+MOD06_0224186C: ; 0x0224186C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ mov r1, #2
+ bl FUN_020254A0
+ add r2, sp, #0x18
+ ldr r6, _0224190C ; =0x0224F7A4
+ add r4, r0, #0
+ ldmia r6!, {r0, r1}
+ add r3, r2, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r2]
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r5, #0x4c]
+ ldr r2, _02241910 ; =0x00000102
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ bl FUN_021E7FBC
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r1, #0x9c
+ ldr r1, [r1]
+ mov r2, #0xd
+ str r1, [sp, #8]
+ mov r1, #8
+ mov r3, #3
+ bl FUN_021F44D8
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _022418CC
+ cmp r0, #1
+ beq _022418D0
+ b _022418D6
+_022418CC:
+ mov r4, #0
+ b _022418DC
+_022418D0:
+ mov r4, #0xa
+ lsl r4, r4, #0x10
+ b _022418DC
+_022418D6:
+ bl ErrorHandling
+ mov r4, #0
+_022418DC:
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ ldr r1, _02241910 ; =0x00000102
+ bl FUN_021E7ED8
+ add r6, r0, #0
+ add r0, sp, #0xc
+ add r1, r6, #0
+ bl FUN_021E7EA0
+ add r0, r6, #0
+ add r1, sp, #0xc
+ str r4, [sp, #0x10]
+ bl FUN_021E7EB0
+ add r5, #0x9c
+ ldr r2, [r5]
+ mov r0, #0
+ add r1, r4, #0
+ bl FUN_021F4594
+ add sp, #0x24
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0224190C: .word 0x0224F7A4
+_02241910: .word 0x00000102
+
+ thumb_func_start MOD06_02241914
+MOD06_02241914: ; 0x02241914
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0xb
+ mov r1, #4
+ bl FUN_020169D8
+ add r6, r0, #0
+ mov r0, #0
+ str r0, [r6]
+ add r0, r5, #0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ mov r1, #2
+ bl FUN_020254A0
+ add r4, r0, #0
+ ldr r0, [r5, #0x38]
+ add r1, sp, #0
+ bl FUN_02055350
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ ldr r0, [r5, #0x10]
+ bne _0224195A
+ ldr r1, _0224196C ; =MOD06_02241974
+ add r2, r6, #0
+ bl FUN_0204640C
+ mov r0, #1
+ add sp, #0xc
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224195A:
+ ldr r1, _02241970 ; =MOD06_02241A44
+ add r2, r6, #0
+ bl FUN_0204640C
+ mov r0, #0
+ strb r0, [r4]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0224196C: .word MOD06_02241974
+_02241970: .word MOD06_02241A44
+
+ thumb_func_start MOD06_02241974
+MOD06_02241974: ; 0x02241974
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_02046528
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_0204652C
+ add r4, r0, #0
+ ldr r1, [r4]
+ cmp r1, #3
+ bhi _02241A32
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224199A: ; jump table
+ .short _022419A2 - _0224199A - 2 ; case 0
+ .short _022419B8 - _0224199A - 2 ; case 1
+ .short _02241A02 - _0224199A - 2 ; case 2
+ .short _02241A28 - _0224199A - 2 ; case 3
+_022419A2:
+ ldr r0, [r5, #0x38]
+ mov r1, #0
+ bl FUN_02055560
+ ldr r0, _02241A38 ; =0x00000611
+ bl FUN_020054C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02241A32
+_022419B8:
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ ldr r1, _02241A3C ; =0x00000102
+ bl FUN_021E7ED8
+ add r6, r0, #0
+ add r0, sp, #0
+ add r1, r6, #0
+ bl FUN_021E7EA0
+ mov r0, #1
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0xc
+ add r1, r1, r0
+ mov r0, #0xa
+ lsl r0, r0, #0x10
+ str r1, [sp, #4]
+ cmp r1, r0
+ blt _022419F0
+ str r0, [sp, #4]
+ ldr r0, _02241A38 ; =0x00000611
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_022419F0:
+ ldr r0, [r5, #0x38]
+ ldr r1, [sp, #4]
+ bl FUN_02055540
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_021E7EB0
+ b _02241A32
+_02241A02:
+ add r2, r5, #0
+ add r2, #0x9c
+ mov r1, #0xa
+ ldr r2, [r2]
+ mov r0, #0
+ lsl r1, r1, #0x10
+ bl FUN_021F4594
+ ldr r0, [r5, #0x38]
+ mov r1, #1
+ bl FUN_0205557C
+ ldr r0, _02241A40 ; =0x0000061A
+ bl FUN_020054C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02241A32
+_02241A28:
+ bl FUN_02016A18
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_02241A32:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02241A38: .word 0x00000611
+_02241A3C: .word 0x00000102
+_02241A40: .word 0x0000061A
+
+ thumb_func_start MOD06_02241A44
+MOD06_02241A44: ; 0x02241A44
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_02046528
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_0204652C
+ add r4, r0, #0
+ ldr r1, [r4]
+ cmp r1, #3
+ bhi _02241AFC
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02241A6A: ; jump table
+ .short _02241A72 - _02241A6A - 2 ; case 0
+ .short _02241A88 - _02241A6A - 2 ; case 1
+ .short _02241ACE - _02241A6A - 2 ; case 2
+ .short _02241AF2 - _02241A6A - 2 ; case 3
+_02241A72:
+ ldr r0, [r5, #0x38]
+ mov r1, #0
+ bl FUN_02055560
+ ldr r0, _02241B04 ; =0x00000611
+ bl FUN_020054C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02241AFC
+_02241A88:
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ ldr r1, _02241B08 ; =0x00000102
+ bl FUN_021E7ED8
+ add r6, r0, #0
+ add r0, sp, #0
+ add r1, r6, #0
+ bl FUN_021E7EA0
+ mov r0, #1
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0xc
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ cmp r0, #0
+ bgt _02241ABC
+ mov r1, #0
+ ldr r0, _02241B04 ; =0x00000611
+ str r1, [sp, #4]
+ bl FUN_020054F0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02241ABC:
+ ldr r0, [r5, #0x38]
+ ldr r1, [sp, #4]
+ bl FUN_02055540
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_021E7EB0
+ b _02241AFC
+_02241ACE:
+ add r2, r5, #0
+ add r2, #0x9c
+ mov r0, #0
+ ldr r2, [r2]
+ add r1, r0, #0
+ bl FUN_021F4594
+ ldr r0, [r5, #0x38]
+ mov r1, #1
+ bl FUN_0205557C
+ ldr r0, _02241B0C ; =0x0000061A
+ bl FUN_020054C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02241AFC
+_02241AF2:
+ bl FUN_02016A18
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_02241AFC:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02241B04: .word 0x00000611
+_02241B08: .word 0x00000102
+_02241B0C: .word 0x0000061A
+
+ thumb_func_start MOD06_02241B10
+MOD06_02241B10: ; 0x02241B10
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ add r6, r2, #0
+ mov r4, #0
+_02241B1A:
+ add r1, r5, r4
+ ldrb r0, [r1, #0x10]
+ cmp r6, r0
+ bne _02241B36
+ ldr r0, [r5]
+ add r1, #0x28
+ add r0, #0xa0
+ ldrb r1, [r1]
+ ldr r0, [r0]
+ bl FUN_021E7ED0
+ add r1, r7, #0
+ bl FUN_021E7EC0
+_02241B36:
+ add r4, r4, #1
+ cmp r4, #0x18
+ blt _02241B1A
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02241B40
+MOD06_02241B40: ; 0x02241B40
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4]
+ add r1, sp, #0
+ ldr r0, [r0, #0x38]
+ bl FUN_02055350
+ ldr r1, [sp, #4]
+ asr r0, r1, #0xf
+ lsr r0, r0, #0x10
+ add r0, r1, r0
+ asr r0, r0, #0x10
+ lsl r0, r0, #0x18
+ ldr r1, [sp]
+ lsr r2, r0, #0x18
+ asr r0, r1, #0xf
+ lsr r0, r0, #0x10
+ add r0, r1, r0
+ asr r0, r0, #0x10
+ lsl r0, r0, #0x18
+ ldr r1, [sp, #8]
+ lsr r3, r0, #0x18
+ asr r0, r1, #0xf
+ lsr r0, r0, #0x10
+ add r0, r1, r0
+ asr r0, r0, #0x10
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ mov r0, #0
+_02241B7C:
+ lsl r1, r0, #1
+ add r1, r0, r1
+ add r6, r4, r1
+ add r6, #0x41
+ ldrb r6, [r6]
+ cmp r2, r6
+ bne _02241B9E
+ add r6, r4, r1
+ add r6, #0x40
+ ldrb r6, [r6]
+ cmp r3, r6
+ bne _02241B9E
+ add r1, r4, r1
+ add r1, #0x42
+ ldrb r1, [r1]
+ cmp r5, r1
+ beq _02241BAA
+_02241B9E:
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x18
+ blo _02241B7C
+ mov r0, #0x18
+_02241BAA:
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02241BB0
+MOD06_02241BB0: ; 0x02241BB0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ mov r1, #3
+ bl FUN_020254A0
+ str r0, [sp, #4]
+ mov r0, #0xb
+ mov r1, #4
+ bl FUN_020169D8
+ mov r1, #0
+ str r1, [r0]
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xe8
+ strb r4, [r0]
+ lsl r0, r4, #2
+ ldr r1, [sp, #4]
+ add r0, r5, r0
+ add r0, #0x88
+ ldr r7, [r0]
+ ldr r1, [r1]
+ add r0, r4, #0
+ bl MOD06_02241214
+ add r6, r0, #0
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD06_02241220
+ ldr r0, _02241D64 ; =0x00000127
+ cmp r7, r0
+ bne _02241C64
+ cmp r6, #0
+ beq _02241C1E
+ add r0, r5, #0
+ mov r1, #5
+ add r0, #0xf0
+ str r1, [r0]
+ ldr r2, _02241D68 ; =0x0224FA84
+ lsl r1, r4, #4
+ ldrb r0, [r2, r1]
+ add r3, r2, r1
+ lsl r6, r0, #0x10
+ mov r0, #2
+ lsl r0, r0, #0xe
+ add r6, r6, r0
+ b _02241C34
+_02241C1E:
+ add r0, r5, #0
+ ldr r2, _02241D6C ; =0x0224FA87
+ lsl r1, r4, #4
+ mov r6, #4
+ add r0, #0xf0
+ str r6, [r0]
+ ldrb r0, [r2, r1]
+ lsl r6, r6, #0xd
+ add r3, r2, r1
+ lsl r0, r0, #0x10
+ add r6, r0, r6
+_02241C34:
+ add r0, r5, #0
+ add r0, #0xec
+ str r6, [r0]
+ lsl r0, r4, #1
+ add r0, r4, r0
+ ldrb r2, [r2, r1]
+ add r1, r5, r0
+ add r1, #0x40
+ strb r2, [r1]
+ add r1, r5, r0
+ add r0, r5, r0
+ ldrb r2, [r3, #1]
+ add r1, #0x41
+ add r0, #0x42
+ strb r2, [r1]
+ ldrb r1, [r3, #2]
+ ldr r2, [sp]
+ strb r1, [r0]
+ ldr r0, [r5]
+ ldr r1, _02241D70 ; =MOD06_02241F7C
+ bl FUN_020463CC
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02241C64:
+ sub r0, r0, #1
+ cmp r7, r0
+ bne _02241CDA
+ cmp r6, #0
+ beq _02241C90
+ add r1, r5, #0
+ mov r0, #2
+ add r1, #0xf0
+ str r0, [r1]
+ ldr r1, _02241D74 ; =0x0224FA86
+ lsl r2, r4, #4
+ ldrb r1, [r1, r2]
+ lsl r0, r0, #0xe
+ ldr r3, _02241D68 ; =0x0224FA84
+ lsl r1, r1, #0x10
+ add r1, r1, r0
+ add r0, r5, #0
+ add r0, #0xec
+ str r1, [r0]
+ lsl r0, r4, #1
+ add r1, r4, r0
+ b _02241CB2
+_02241C90:
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0xf0
+ str r1, [r0]
+ ldr r0, _02241D78 ; =0x0224FA89
+ lsl r2, r4, #4
+ ldrb r0, [r0, r2]
+ ldr r3, _02241D6C ; =0x0224FA87
+ lsl r1, r0, #0x10
+ mov r0, #2
+ lsl r0, r0, #0xe
+ add r1, r1, r0
+ add r0, r5, #0
+ add r0, #0xec
+ str r1, [r0]
+ lsl r0, r4, #1
+ add r1, r4, r0
+_02241CB2:
+ add r0, r3, r2
+ ldrb r3, [r3, r2]
+ add r2, r5, r1
+ add r2, #0x40
+ strb r3, [r2]
+ add r2, r5, r1
+ ldrb r3, [r0, #1]
+ add r2, #0x41
+ strb r3, [r2]
+ ldrb r2, [r0, #2]
+ add r0, r5, r1
+ add r0, #0x42
+ strb r2, [r0]
+ ldr r0, [r5]
+ ldr r1, _02241D7C ; =MOD06_022420CC
+ ldr r2, [sp]
+ bl FUN_020463CC
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02241CDA:
+ cmp r6, #0
+ beq _02241D1E
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0xf0
+ str r1, [r0]
+ ldr r0, _02241D80 ; =0x0224FA85
+ lsl r2, r4, #4
+ ldrb r0, [r0, r2]
+ ldr r3, _02241D68 ; =0x0224FA84
+ lsl r1, r0, #0x10
+ add r0, r5, #0
+ add r0, #0xec
+ str r1, [r0]
+ lsl r0, r4, #1
+ add r1, r4, r0
+ ldrb r6, [r3, r2]
+ add r0, r3, r2
+ add r3, r5, r1
+ add r3, #0x40
+ strb r6, [r3]
+ add r3, r5, r1
+ ldrb r6, [r0, #1]
+ add r3, #0x41
+ strb r6, [r3]
+ ldrb r3, [r0, #2]
+ add r0, r5, r1
+ add r0, #0x42
+ strb r3, [r0]
+ ldr r0, _02241D84 ; =0x0224FA8A
+ ldrb r1, [r0, r2]
+ add r0, r5, r4
+ strb r1, [r0, #0x10]
+ b _02241D54
+_02241D1E:
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xf0
+ str r1, [r0]
+ ldr r0, _02241D88 ; =0x0224FA88
+ lsl r2, r4, #4
+ ldrb r0, [r0, r2]
+ ldr r3, _02241D6C ; =0x0224FA87
+ lsl r1, r0, #0x10
+ add r0, r5, #0
+ add r0, #0xec
+ str r1, [r0]
+ lsl r0, r4, #1
+ add r1, r4, r0
+ add r0, r3, r2
+ ldrb r3, [r3, r2]
+ add r2, r5, r1
+ add r2, #0x40
+ strb r3, [r2]
+ add r2, r5, r1
+ ldrb r3, [r0, #1]
+ add r2, #0x41
+ strb r3, [r2]
+ ldrb r2, [r0, #2]
+ add r0, r5, r1
+ add r0, #0x42
+ strb r2, [r0]
+_02241D54:
+ ldr r0, [r5]
+ ldr r1, _02241D8C ; =MOD06_02241E58
+ ldr r2, [sp]
+ bl FUN_020463CC
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02241D64: .word 0x00000127
+_02241D68: .word 0x0224FA84
+_02241D6C: .word 0x0224FA87
+_02241D70: .word MOD06_02241F7C
+_02241D74: .word 0x0224FA86
+_02241D78: .word 0x0224FA89
+_02241D7C: .word MOD06_022420CC
+_02241D80: .word 0x0224FA85
+_02241D84: .word 0x0224FA8A
+_02241D88: .word 0x0224FA88
+_02241D8C: .word MOD06_02241E58
+
+ thumb_func_start MOD06_02241D90
+MOD06_02241D90: ; 0x02241D90
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ ldr r1, [r5, #4]
+ add r0, #0xa0
+ lsl r1, r1, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ bl FUN_021E7ED0
+ str r0, [sp]
+ ldr r0, [r5]
+ ldr r1, [r5, #8]
+ add r0, #0xa0
+ lsl r1, r1, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ bl FUN_021E7ED0
+ add r7, r0, #0
+ ldr r0, [r5]
+ ldr r1, [r5, #0xc]
+ add r0, #0xa0
+ lsl r1, r1, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ bl FUN_021E7ED0
+ add r6, r0, #0
+ mov r0, #1
+ lsl r0, r0, #0x10
+ cmp r4, r0
+ blt _02241DE8
+ ldr r0, [sp]
+ mov r1, #0
+ bl FUN_021E7EC0
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD06_02241B10
+ b _02241DFA
+_02241DE8:
+ ldr r0, [sp]
+ mov r1, #1
+ bl FUN_021E7EC0
+ mov r1, #1
+ add r0, r5, #0
+ add r2, r1, #0
+ bl MOD06_02241B10
+_02241DFA:
+ mov r0, #0xb
+ lsl r0, r0, #0x10
+ cmp r4, r0
+ blt _02241E16
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_021E7EC0
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #2
+ bl MOD06_02241B10
+ b _02241E28
+_02241E16:
+ add r0, r7, #0
+ mov r1, #1
+ bl FUN_021E7EC0
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #2
+ bl MOD06_02241B10
+_02241E28:
+ mov r0, #0x15
+ lsl r0, r0, #0x10
+ cmp r4, r0
+ blt _02241E44
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_021E7EC0
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #3
+ bl MOD06_02241B10
+ pop {r3, r4, r5, r6, r7, pc}
+_02241E44:
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_021E7EC0
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #3
+ bl MOD06_02241B10
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_02241E58
+MOD06_02241E58: ; 0x02241E58
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_02046528
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_0204652C
+ ldr r1, [r6, #4]
+ add r4, r0, #0
+ ldr r5, [r1, #0x24]
+ ldr r1, [r4]
+ cmp r1, #3
+ bhi _02241F68
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02241E82: ; jump table
+ .short _02241E8A - _02241E82 - 2 ; case 0
+ .short _02241EA0 - _02241E82 - 2 ; case 1
+ .short _02241F48 - _02241E82 - 2 ; case 2
+ .short _02241F5E - _02241E82 - 2 ; case 3
+_02241E8A:
+ ldr r0, [r6, #0x38]
+ mov r1, #0
+ bl FUN_02055560
+ ldr r0, _02241F70 ; =0x00000611
+ bl FUN_020054C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02241F68
+_02241EA0:
+ add r1, r5, #0
+ add r1, #0xe8
+ ldrb r1, [r1]
+ add r0, r6, #0
+ add r0, #0xa0
+ add r1, r5, r1
+ add r1, #0x28
+ ldrb r1, [r1]
+ ldr r0, [r0]
+ bl FUN_021E7ED0
+ add r7, r0, #0
+ add r0, sp, #0
+ add r1, r7, #0
+ bl FUN_021E7EA0
+ add r0, r5, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02241F00
+ mov r0, #2
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0xe
+ add r1, r1, r0
+ add r0, r5, #0
+ str r1, [sp, #4]
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r1, r0
+ blt _02241F2E
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xe8
+ ldrb r0, [r0]
+ ldr r1, _02241F74 ; =0x0224FA8B
+ lsl r2, r0, #4
+ ldrb r1, [r1, r2]
+ add r0, r5, r0
+ strb r1, [r0, #0x10]
+ ldr r0, _02241F70 ; =0x00000611
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02241F2E
+_02241F00:
+ cmp r0, #1
+ bne _02241F2A
+ mov r0, #2
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0xe
+ sub r1, r1, r0
+ add r0, r5, #0
+ str r1, [sp, #4]
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r1, r0
+ bgt _02241F2E
+ str r0, [sp, #4]
+ ldr r0, _02241F70 ; =0x00000611
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02241F2E
+_02241F2A:
+ bl ErrorHandling
+_02241F2E:
+ ldr r0, [r6, #0x38]
+ ldr r1, [sp, #4]
+ bl FUN_02055540
+ add r0, r7, #0
+ add r1, sp, #0
+ bl FUN_021E7EB0
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD06_02241D90
+ b _02241F68
+_02241F48:
+ ldr r0, [r6, #0x38]
+ mov r1, #1
+ bl FUN_0205557C
+ ldr r0, _02241F78 ; =0x0000061A
+ bl FUN_020054C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02241F68
+_02241F5E:
+ bl FUN_02016A18
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02241F68:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02241F70: .word 0x00000611
+_02241F74: .word 0x0224FA8B
+_02241F78: .word 0x0000061A
+
+ thumb_func_start MOD06_02241F7C
+MOD06_02241F7C: ; 0x02241F7C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ bl FUN_02046528
+ add r7, r0, #0
+ add r0, r4, #0
+ bl FUN_0204652C
+ add r4, r0, #0
+ ldr r0, [r7, #4]
+ ldr r5, [r0, #0x24]
+ ldr r0, [r7, #0x38]
+ bl FUN_020553A0
+ ldr r1, [r4]
+ add r6, r0, #0
+ cmp r1, #4
+ bls _02241FA4
+ b _022420BC
+_02241FA4:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02241FB0: ; jump table
+ .short _02241FBA - _02241FB0 - 2 ; case 0
+ .short _02241FD8 - _02241FB0 - 2 ; case 1
+ .short _0224207C - _02241FB0 - 2 ; case 2
+ .short _02242092 - _02241FB0 - 2 ; case 3
+ .short _022420B0 - _02241FB0 - 2 ; case 4
+_02241FBA:
+ bl FUN_0205AD98
+ cmp r0, #1
+ bne _022420BC
+ add r0, r6, #0
+ mov r1, #0x49
+ bl FUN_0205ADDC
+ ldr r0, _022420C4 ; =0x00000611
+ bl FUN_020054C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _022420BC
+_02241FD8:
+ add r1, r5, #0
+ add r1, #0xe8
+ ldrb r1, [r1]
+ add r0, r7, #0
+ add r0, #0xa0
+ add r1, r5, r1
+ add r1, #0x28
+ ldrb r1, [r1]
+ ldr r0, [r0]
+ bl FUN_021E7ED0
+ str r0, [sp]
+ ldr r1, [sp]
+ add r0, sp, #0x10
+ bl FUN_021E7EA0
+ ldr r0, [r7, #0x38]
+ add r1, sp, #4
+ bl FUN_02055350
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ str r0, [sp, #0x10]
+ add r1, #0xf0
+ ldr r1, [r1]
+ cmp r1, #4
+ bne _0224203C
+ add r5, #0xec
+ ldr r1, [r5]
+ cmp r0, r1
+ blt _02242028
+ ldr r0, _022420C4 ; =0x00000611
+ str r1, [sp, #0x10]
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02242072
+_02242028:
+ add r0, r6, #0
+ bl FUN_0205AD98
+ cmp r0, #1
+ bne _02242072
+ add r0, r6, #0
+ mov r1, #0x17
+ bl FUN_0205ADDC
+ b _02242072
+_0224203C:
+ cmp r1, #5
+ bne _0224206E
+ add r5, #0xec
+ ldr r1, [r5]
+ cmp r0, r1
+ bgt _0224205A
+ ldr r0, _022420C4 ; =0x00000611
+ str r1, [sp, #0x10]
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02242072
+_0224205A:
+ add r0, r6, #0
+ bl FUN_0205AD98
+ cmp r0, #1
+ bne _02242072
+ add r0, r6, #0
+ mov r1, #0x16
+ bl FUN_0205ADDC
+ b _02242072
+_0224206E:
+ bl ErrorHandling
+_02242072:
+ ldr r0, [sp]
+ add r1, sp, #0x10
+ bl FUN_021E7EB0
+ b _022420BC
+_0224207C:
+ bl FUN_0205AD98
+ cmp r0, #1
+ bne _02242092
+ add r0, r6, #0
+ mov r1, #0x4a
+ bl FUN_0205ADDC
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02242092:
+ add r0, r6, #0
+ bl FUN_0205AE28
+ cmp r0, #1
+ bne _022420BC
+ add r0, r6, #0
+ bl FUN_0205AE50
+ ldr r0, _022420C8 ; =0x0000061A
+ bl FUN_020054C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _022420BC
+_022420B0:
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x1c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_022420BC:
+ mov r0, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022420C4: .word 0x00000611
+_022420C8: .word 0x0000061A
+
+ thumb_func_start MOD06_022420CC
+MOD06_022420CC: ; 0x022420CC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ bl FUN_02046528
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_0204652C
+ add r4, r0, #0
+ ldr r0, [r6, #4]
+ ldr r5, [r0, #0x24]
+ ldr r0, [r6, #0x38]
+ bl FUN_020553A0
+ ldr r1, [r4]
+ add r7, r0, #0
+ cmp r1, #4
+ bhi _02242110
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022420FE: ; jump table
+ .short _02242108 - _022420FE - 2 ; case 0
+ .short _02242128 - _022420FE - 2 ; case 1
+ .short _022421CC - _022420FE - 2 ; case 2
+ .short _022421E4 - _022420FE - 2 ; case 3
+ .short _02242208 - _022420FE - 2 ; case 4
+_02242108:
+ bl FUN_0205AD98
+ cmp r0, #1
+ beq _02242112
+_02242110:
+ b _02242214
+_02242112:
+ add r0, r7, #0
+ mov r1, #0x49
+ bl FUN_0205ADDC
+ ldr r0, _0224221C ; =0x00000611
+ bl FUN_020054C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02242214
+_02242128:
+ add r1, r5, #0
+ add r1, #0xe8
+ ldrb r1, [r1]
+ add r0, r6, #0
+ add r0, #0xa0
+ add r1, r5, r1
+ add r1, #0x28
+ ldrb r1, [r1]
+ ldr r0, [r0]
+ bl FUN_021E7ED0
+ str r0, [sp]
+ ldr r1, [sp]
+ add r0, sp, #0x10
+ bl FUN_021E7EA0
+ ldr r0, [r6, #0x38]
+ add r1, sp, #4
+ bl FUN_02055350
+ ldr r0, [sp, #0xc]
+ add r1, r5, #0
+ str r0, [sp, #0x18]
+ add r1, #0xf0
+ ldr r1, [r1]
+ cmp r1, #3
+ bne _0224218C
+ add r5, #0xec
+ ldr r1, [r5]
+ cmp r0, r1
+ blt _02242178
+ ldr r0, _0224221C ; =0x00000611
+ str r1, [sp, #0x18]
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _022421C2
+_02242178:
+ add r0, r7, #0
+ bl FUN_0205AD98
+ cmp r0, #1
+ bne _022421C2
+ add r0, r7, #0
+ mov r1, #0x15
+ bl FUN_0205ADDC
+ b _022421C2
+_0224218C:
+ cmp r1, #2
+ bne _022421BE
+ add r5, #0xec
+ ldr r1, [r5]
+ cmp r0, r1
+ bgt _022421AA
+ ldr r0, _0224221C ; =0x00000611
+ str r1, [sp, #0x18]
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _022421C2
+_022421AA:
+ add r0, r7, #0
+ bl FUN_0205AD98
+ cmp r0, #1
+ bne _022421C2
+ add r0, r7, #0
+ mov r1, #0x14
+ bl FUN_0205ADDC
+ b _022421C2
+_022421BE:
+ bl ErrorHandling
+_022421C2:
+ ldr r0, [sp]
+ add r1, sp, #0x10
+ bl FUN_021E7EB0
+ b _02242214
+_022421CC:
+ bl FUN_0205AD98
+ cmp r0, #1
+ bne _02242214
+ add r0, r7, #0
+ mov r1, #0x4a
+ bl FUN_0205ADDC
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02242214
+_022421E4:
+ ldr r0, [r6, #0x38]
+ bl FUN_020553A0
+ add r5, r0, #0
+ bl FUN_0205AE28
+ cmp r0, #1
+ bne _02242214
+ add r0, r5, #0
+ bl FUN_0205AE50
+ ldr r0, _02242220 ; =0x0000061A
+ bl FUN_020054C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02242214
+_02242208:
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x1c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02242214:
+ mov r0, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224221C: .word 0x00000611
+_02242220: .word 0x0000061A
+
+ thumb_func_start MOD06_02242224
+MOD06_02242224: ; 0x02242224
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ add r6, r0, #0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ mov r1, #3
+ bl FUN_020254A0
+ str r0, [sp, #0x10]
+ mov r0, #4
+ mov r1, #0xf4
+ bl FUN_02016998
+ ldr r1, [r6, #4]
+ add r2, sp, #0x50
+ str r0, [r1, #0x24]
+ ldr r0, [r6, #4]
+ ldr r4, _022423EC ; =0x0224F78C
+ ldr r0, [r0, #0x24]
+ add r3, r2, #0
+ str r0, [sp, #0x14]
+ str r6, [r0]
+ ldmia r4!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4]
+ str r0, [r2]
+ mov r0, #0xa
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x54]
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r6, #0x4c]
+ mov r2, #0x4b
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ ldr r1, [r6, #0x2c]
+ lsl r2, r2, #2
+ bl FUN_021E7FBC
+ ldr r1, [sp, #0x14]
+ ldr r2, _022423F0 ; =0x0000012D
+ str r0, [r1, #4]
+ mov r0, #5
+ lsl r0, r0, #0x12
+ str r0, [sp, #0x54]
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r6, #0x4c]
+ add r3, sp, #0x50
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ ldr r1, [r6, #0x2c]
+ bl FUN_021E7FBC
+ ldr r1, [sp, #0x14]
+ ldr r2, _022423F4 ; =0x0000012E
+ str r0, [r1, #8]
+ mov r0, #0x1e
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x54]
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r6, #0x4c]
+ add r3, sp, #0x50
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ ldr r1, [r6, #0x2c]
+ bl FUN_021E7FBC
+ ldr r1, [sp, #0x14]
+ ldr r4, _022423F8 ; =0x0224FA80
+ str r0, [r1, #0xc]
+ add r0, r1, #0
+ mov r7, #0
+ add r5, r1, #0
+ str r0, [sp, #0xc]
+_022422CC:
+ ldr r1, [sp, #0x10]
+ lsl r0, r7, #0x18
+ ldr r1, [r1]
+ lsr r0, r0, #0x18
+ bl MOD06_02241214
+ cmp r0, #0
+ beq _02242310
+ ldrb r0, [r4, #7]
+ ldrb r1, [r4, #7]
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x44]
+ ldrb r0, [r4, #8]
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x48]
+ ldrb r0, [r4, #9]
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x4c]
+ add r0, r5, #0
+ add r0, #0x40
+ strb r1, [r0]
+ add r0, r5, #0
+ ldrb r1, [r4, #8]
+ add r0, #0x41
+ strb r1, [r0]
+ add r0, r5, #0
+ ldrb r1, [r4, #9]
+ add r0, #0x42
+ strb r1, [r0]
+ ldr r0, [sp, #0x14]
+ ldrb r1, [r4, #0xb]
+ add r0, r0, r7
+ str r0, [sp, #8]
+ b _02242342
+_02242310:
+ ldrb r0, [r4, #4]
+ ldrb r1, [r4, #4]
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x44]
+ ldrb r0, [r4, #5]
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x48]
+ ldrb r0, [r4, #6]
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x4c]
+ add r0, r5, #0
+ add r0, #0x40
+ strb r1, [r0]
+ add r0, r5, #0
+ ldrb r1, [r4, #5]
+ add r0, #0x41
+ strb r1, [r0]
+ add r0, r5, #0
+ ldrb r1, [r4, #6]
+ add r0, #0x42
+ strb r1, [r0]
+ ldr r0, [sp, #0x14]
+ ldrb r1, [r4, #0xa]
+ add r0, r0, r7
+ str r0, [sp, #8]
+_02242342:
+ strb r1, [r0, #0x10]
+ mov r0, #2
+ ldr r1, [sp, #0x44]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x44]
+ mov r0, #2
+ ldr r1, [sp, #0x4c]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x4c]
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r6, #0x4c]
+ add r3, sp, #0x44
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ ldr r1, [r6, #0x2c]
+ ldr r2, [r4]
+ bl FUN_021E7FBC
+ ldr r1, [sp, #8]
+ add r7, r7, #1
+ add r1, #0x28
+ strb r0, [r1]
+ ldr r0, [sp, #0xc]
+ str r1, [sp, #8]
+ ldr r1, [r4]
+ add r0, #0x88
+ str r1, [r0]
+ ldr r0, [sp, #0xc]
+ add r4, #0x10
+ add r0, r0, #4
+ add r5, r5, #3
+ str r0, [sp, #0xc]
+ cmp r7, #0x18
+ blt _022422CC
+ ldr r0, [r6, #0x38]
+ add r1, sp, #0x38
+ bl FUN_02055350
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x3c]
+ bl MOD06_02241D90
+ mov r0, #0x19
+ ldr r1, _022423FC ; =0x006A4000
+ ldr r2, [r6, #0x20]
+ lsl r0, r0, #0xe
+ bl FUN_0201EC94
+ mov r1, #6
+ str r1, [sp]
+ ldr r0, _02242400 ; =0x000076A0
+ sub r1, r1, #7
+ str r0, [sp, #4]
+ ldr r0, [r6, #0x44]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_021DBA40
+ mov r1, #0
+ mov r2, #0
+ ldr r0, [r6, #0x44]
+ mvn r1, r1
+ add r3, r2, #0
+ bl FUN_021DBA78
+ mov r0, #0
+ add r1, r0, #0
+ add r2, sp, #0x18
+_022423D4:
+ add r0, r0, #1
+ strb r1, [r2]
+ add r1, r1, #2
+ add r2, r2, #1
+ cmp r0, #0x20
+ blt _022423D4
+ ldr r0, [r6, #0x44]
+ add r1, sp, #0x18
+ bl FUN_021DBAA0
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022423EC: .word 0x0224F78C
+_022423F0: .word 0x0000012D
+_022423F4: .word 0x0000012E
+_022423F8: .word 0x0224FA80
+_022423FC: .word 0x006A4000
+_02242400: .word 0x000076A0
+
+ thumb_func_start MOD06_02242404
+MOD06_02242404: ; 0x02242404
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ bl FUN_020254B4
+ cmp r0, #3
+ beq _0224241C
+ mov r0, #0
+ pop {r4, pc}
+_0224241C:
+ ldr r0, [r4, #4]
+ ldr r4, [r0, #0x24]
+ cmp r4, #0
+ bne _02242428
+ mov r0, #0
+ pop {r4, pc}
+_02242428:
+ add r0, r4, #0
+ bl MOD06_02241B40
+ add r1, r0, #0
+ cmp r1, #0x18
+ beq _0224243E
+ add r0, r4, #0
+ bl MOD06_02241BB0
+ mov r0, #1
+ pop {r4, pc}
+_0224243E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02242444
+MOD06_02242444: ; 0x02242444
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x24]
+ bl FUN_02016A18
+ ldr r0, [r4, #4]
+ mov r1, #0
+ str r1, [r0, #0x24]
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02242458
+MOD06_02242458: ; 0x02242458
+ push {r4, r5, r6, lr}
+ asr r0, r3, #0xf
+ lsr r0, r0, #0x10
+ add r0, r3, r0
+ add r4, r1, #0
+ asr r0, r0, #0x10
+ mov r1, #0xa
+ add r6, r2, #0
+ bl _s32_div_f
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #3
+ bls _02242478
+ bl ErrorHandling
+_02242478:
+ ldr r1, _02242498 ; =0x0224FC00
+ lsl r0, r5, #0xa
+ add r5, r1, r0
+ lsl r0, r6, #5
+ add r4, r4, r0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ cmp r4, r0
+ blt _0224248E
+ bl ErrorHandling
+_0224248E:
+ ldrb r1, [r5, r4]
+ ldr r0, [sp, #0x10]
+ str r1, [r0]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02242498: .word 0x0224FC00
+
+ thumb_func_start MOD06_0224249C
+MOD06_0224249C: ; 0x0224249C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #4]
+ str r0, [sp]
+ ldr r0, [r0]
+ add r1, sp, #8
+ ldr r0, [r0, #0x38]
+ bl FUN_02055350
+ ldr r1, [sp, #8]
+ ldr r7, _02242524 ; =0x0224F8B8
+ asr r0, r1, #0xf
+ lsr r0, r0, #0x10
+ add r0, r1, r0
+ asr r0, r0, #0x10
+ lsl r0, r0, #0x18
+ ldr r1, [sp, #0x10]
+ lsr r3, r0, #0x18
+ asr r0, r1, #0xf
+ lsr r0, r0, #0x10
+ add r0, r1, r0
+ asr r0, r0, #0x10
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ mov r0, #0
+_022424CE:
+ ldr r1, _02242528 ; =0x0224F834
+ lsl r2, r0, #2
+ ldr r5, _02242528 ; =0x0224F834
+ add r1, r1, r2
+ ldrb r2, [r5, r2]
+ cmp r3, r2
+ bne _02242512
+ ldrb r2, [r1, #1]
+ cmp r4, r2
+ bne _02242512
+ ldrb r5, [r1, #3]
+ ldrb r1, [r1, #2]
+ cmp r1, #0
+ beq _022424F4
+ lsl r1, r5, #3
+ add r1, r7, r1
+ ldrb r2, [r1, #6]
+ mov r1, #2
+ b _022424FC
+_022424F4:
+ lsl r1, r5, #3
+ add r1, r7, r1
+ ldrb r2, [r1, #5]
+ mov r1, #3
+_022424FC:
+ ldr r6, [sp]
+ add r6, r6, r5
+ ldrb r6, [r6, #0x10]
+ cmp r2, r6
+ bne _02242512
+ ldr r2, [sp, #4]
+ cmp r1, r2
+ bne _02242512
+ add sp, #0x14
+ add r0, r5, #0
+ pop {r4, r5, r6, r7, pc}
+_02242512:
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0xf
+ blo _022424CE
+ mov r0, #0xf
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02242524: .word 0x0224F8B8
+_02242528: .word 0x0224F834
+
+ thumb_func_start MOD06_0224252C
+MOD06_0224252C: ; 0x0224252C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ mov r1, #4
+ bl FUN_020254A0
+ add r6, r0, #0
+ mov r0, #0xb
+ mov r1, #4
+ bl FUN_020169D8
+ mov r1, #0
+ str r1, [r0]
+ strb r4, [r5, #0x1c]
+ str r0, [sp]
+ ldr r1, [r6]
+ add r0, r4, #0
+ bl MOD06_02241214
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD06_02241220
+ cmp r7, #0
+ beq _02242588
+ mov r0, #5
+ str r0, [r5, #0x24]
+ ldr r0, _022425B8 ; =0x0224F8BD
+ lsl r1, r4, #3
+ ldrb r0, [r0, r1]
+ mov r2, #2
+ lsl r2, r2, #0x10
+ lsl r3, r0, #0x10
+ add r2, r3, r2
+ str r2, [r5, #0x20]
+ add r2, r5, r4
+ strb r0, [r2, #0x10]
+ ldr r0, _022425BC ; =0x0224F918
+ add r1, r0, r1
+ b _022425A4
+_02242588:
+ ldr r0, _022425C0 ; =0x0224F8BE
+ lsl r1, r4, #3
+ ldrb r0, [r0, r1]
+ mov r2, #4
+ str r2, [r5, #0x24]
+ lsl r3, r0, #0x10
+ lsl r2, r2, #0xf
+ add r2, r3, r2
+ str r2, [r5, #0x20]
+ add r2, r5, r4
+ strb r0, [r2, #0x10]
+ ldr r0, _022425BC ; =0x0224F918
+ add r0, r0, r1
+ add r1, r0, #4
+_022425A4:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ str r1, [r0, #0x28]
+ ldr r0, [r5]
+ ldr r1, _022425C4 ; =MOD06_02242744
+ ldr r2, [sp]
+ bl FUN_020463CC
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022425B8: .word 0x0224F8BD
+_022425BC: .word 0x0224F918
+_022425C0: .word 0x0224F8BE
+_022425C4: .word MOD06_02242744
+
+ thumb_func_start MOD06_022425C8
+MOD06_022425C8: ; 0x022425C8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #8]
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ mov r1, #4
+ bl FUN_020254A0
+ str r0, [sp, #0x10]
+ mov r0, #4
+ mov r1, #0x58
+ bl FUN_02016998
+ ldr r1, [sp, #8]
+ ldr r5, _0224268C ; =0x0224F8B8
+ ldr r1, [r1, #4]
+ ldr r7, _02242690 ; =0x0224F918
+ str r0, [r1, #0x24]
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #8]
+ ldr r0, [r0, #4]
+ mov r4, #0
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #0x14]
+ str r1, [r0]
+ add r6, r0, #0
+_02242600:
+ ldr r1, [sp, #0x10]
+ lsl r0, r4, #0x18
+ ldr r1, [r1]
+ lsr r0, r0, #0x18
+ bl MOD06_02241214
+ cmp r0, #0
+ beq _0224262E
+ ldrb r0, [r5, #6]
+ lsl r1, r0, #0x10
+ str r1, [sp, #0x18]
+ ldr r1, _02242694 ; =0xFFFF0000
+ str r1, [sp, #0x1c]
+ ldrb r1, [r5, #4]
+ lsl r1, r1, #0x10
+ str r1, [sp, #0x20]
+ ldr r1, [sp, #0x14]
+ add r1, r1, r4
+ strb r0, [r1, #0x10]
+ add r0, r7, #4
+ str r1, [sp, #0xc]
+ str r0, [r6, #0x28]
+ b _02242648
+_0224262E:
+ ldrb r0, [r5, #5]
+ lsl r1, r0, #0x10
+ str r1, [sp, #0x18]
+ ldr r1, _02242694 ; =0xFFFF0000
+ str r1, [sp, #0x1c]
+ ldrb r1, [r5, #4]
+ lsl r1, r1, #0x10
+ str r1, [sp, #0x20]
+ ldr r1, [sp, #0x14]
+ add r1, r1, r4
+ strb r0, [r1, #0x10]
+ str r1, [sp, #0xc]
+ str r7, [r6, #0x28]
+_02242648:
+ mov r0, #2
+ ldr r1, [sp, #0x18]
+ lsl r0, r0, #0x10
+ add r0, r1, r0
+ str r0, [sp, #0x18]
+ mov r0, #2
+ ldr r1, [sp, #0x20]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x20]
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #8]
+ ldr r0, [r0, #0x4c]
+ add r3, sp, #0x18
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ ldr r1, [r1, #0x2c]
+ add r0, #0xa0
+ ldr r0, [r0]
+ ldr r2, [r5]
+ bl FUN_021E7FBC
+ ldr r1, [sp, #0xc]
+ add r4, r4, #1
+ strb r0, [r1, #4]
+ add r5, #8
+ add r7, #8
+ add r6, r6, #4
+ cmp r4, #0xc
+ blt _02242600
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224268C: .word 0x0224F8B8
+_02242690: .word 0x0224F918
+_02242694: .word 0xFFFF0000
+
+ thumb_func_start MOD06_02242698
+MOD06_02242698: ; 0x02242698
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x24]
+ bl FUN_02016A18
+ ldr r0, [r4, #4]
+ mov r1, #0
+ str r1, [r0, #0x24]
+ pop {r4, pc}
+
+ thumb_func_start MOD06_022426AC
+MOD06_022426AC: ; 0x022426AC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ bl FUN_020254B4
+ cmp r0, #4
+ beq _022426C4
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_022426C4:
+ ldr r0, [r5, #4]
+ ldr r4, [r0, #0x24]
+ cmp r4, #0
+ bne _022426D0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_022426D0:
+ ldr r0, [r5, #0x38]
+ bl FUN_020552F8
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ add r0, r4, #0
+ bl MOD06_0224249C
+ add r1, r0, #0
+ cmp r1, #0xf
+ beq _022426F0
+ add r0, r4, #0
+ bl MOD06_0224252C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022426F0:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_022426F4
+MOD06_022426F4: ; 0x022426F4
+ push {r4, r5, r6, r7}
+ ldr r0, [r0, #4]
+ ldr r6, _02242740 ; =0x0224F8B8
+ ldr r4, [r0, #0x24]
+ mov ip, r2
+ mov r7, #0
+_02242700:
+ ldrb r2, [r6, #4]
+ mov r0, ip
+ cmp r0, r2
+ bne _02242730
+ ldr r5, [r4, #0x28]
+ mov r3, #0
+_0224270C:
+ ldrb r2, [r5, #1]
+ cmp r2, #0
+ beq _02242730
+ ldrb r0, [r5]
+ cmp r0, r1
+ bgt _02242728
+ add r0, r0, r2
+ cmp r1, r0
+ bge _02242728
+ ldr r1, [sp, #0x10]
+ mov r0, #1
+ str r0, [r1]
+ pop {r4, r5, r6, r7}
+ bx lr
+_02242728:
+ add r3, r3, #1
+ add r5, r5, #2
+ cmp r3, #2
+ blt _0224270C
+_02242730:
+ add r7, r7, #1
+ add r6, #8
+ add r4, r4, #4
+ cmp r7, #0xc
+ blt _02242700
+ mov r0, #0
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_02242740: .word 0x0224F8B8
+
+ thumb_func_start MOD06_02242744
+MOD06_02242744: ; 0x02242744
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_02046528
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_0204652C
+ add r4, r0, #0
+ ldr r0, [r6, #4]
+ ldr r5, [r0, #0x24]
+ ldr r0, [r6, #0x38]
+ bl FUN_020553A0
+ add r7, r0, #0
+ ldr r0, [r4]
+ cmp r0, #3
+ bhi _0224283A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02242776: ; jump table
+ .short _0224277E - _02242776 - 2 ; case 0
+ .short _022427A4 - _02242776 - 2 ; case 1
+ .short _02242808 - _02242776 - 2 ; case 2
+ .short _0224282E - _02242776 - 2 ; case 3
+_0224277E:
+ ldr r0, _02242840 ; =0x00000616
+ bl FUN_020054C8
+ ldr r0, [r5, #0x24]
+ cmp r0, #4
+ bne _02242794
+ add r0, r7, #0
+ mov r1, #0xf
+ bl FUN_0205ADDC
+ b _0224279C
+_02242794:
+ add r0, r7, #0
+ mov r1, #0xe
+ bl FUN_0205ADDC
+_0224279C:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0224283A
+_022427A4:
+ ldrb r1, [r5, #0x1c]
+ add r6, #0xa0
+ ldr r0, [r6]
+ add r1, r5, r1
+ ldrb r1, [r1, #4]
+ bl FUN_021E7ED0
+ add r6, r0, #0
+ add r0, sp, #0
+ add r1, r6, #0
+ bl FUN_021E7EA0
+ ldr r0, [r5, #0x24]
+ cmp r0, #4
+ bne _022427DC
+ mov r0, #2
+ ldr r1, [sp]
+ lsl r0, r0, #0xc
+ add r1, r1, r0
+ str r1, [sp]
+ ldr r0, [r5, #0x20]
+ cmp r1, r0
+ blt _022427FE
+ str r0, [sp]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _022427FE
+_022427DC:
+ cmp r0, #5
+ bne _022427FA
+ mov r0, #2
+ ldr r1, [sp]
+ lsl r0, r0, #0xc
+ sub r1, r1, r0
+ str r1, [sp]
+ ldr r0, [r5, #0x20]
+ cmp r1, r0
+ bgt _022427FE
+ str r0, [sp]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _022427FE
+_022427FA:
+ bl ErrorHandling
+_022427FE:
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_021E7EB0
+ b _0224283A
+_02242808:
+ ldr r0, [r6, #0x38]
+ bl FUN_020553A0
+ add r5, r0, #0
+ bl FUN_0205AE28
+ cmp r0, #1
+ bne _0224283A
+ add r0, r5, #0
+ bl FUN_0205AE50
+ ldr r0, _02242840 ; =0x00000616
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0224283A
+_0224282E:
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0224283A:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02242840: .word 0x00000616
+
+ thumb_func_start MOD06_02242844
+MOD06_02242844: ; 0x02242844
+ push {r3, lr}
+ cmp r0, #0
+ beq _02242854
+ cmp r0, #1
+ beq _02242858
+ cmp r0, #2
+ beq _0224285C
+ b _02242860
+_02242854:
+ mov r0, #3
+ pop {r3, pc}
+_02242858:
+ mov r0, #6
+ pop {r3, pc}
+_0224285C:
+ mov r0, #0xd
+ pop {r3, pc}
+_02242860:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD06_02242868
+MOD06_02242868: ; 0x02242868
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldrb r0, [r5, #7]
+ add r6, r1, #0
+ mov r7, #0
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _0224287E
+ cmp r0, #1
+ beq _02242882
+ b _02242886
+_0224287E:
+ add r7, r2, #4
+ b _0224288A
+_02242882:
+ add r7, r2, #0
+ b _0224288A
+_02242886:
+ bl ErrorHandling
+_0224288A:
+ ldrb r0, [r5, #7]
+ mov r4, #0
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ cmp r0, #3
+ bls _0224289A
+ bl ErrorHandling
+_0224289A:
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0xe
+ add r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r6, #3
+ bls _022428B0
+ bl ErrorHandling
+_022428B0:
+ lsl r0, r6, #0x1e
+ asr r1, r0, #0x10
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bne _022428C4
+ add r0, r4, r1
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _022428D4
+_022428C4:
+ cmp r0, #1
+ bne _022428D0
+ sub r0, r4, r1
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _022428D4
+_022428D0:
+ bl ErrorHandling
+_022428D4:
+ str r4, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_022428D8
+MOD06_022428D8: ; 0x022428D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ mov r1, #5
+ bl FUN_020254A0
+ str r0, [sp, #0xc]
+ mov r0, #4
+ mov r1, #0x1c
+ bl FUN_02016998
+ ldr r1, [r5, #4]
+ str r0, [r1, #0x24]
+ ldr r0, [r5, #4]
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ ldr r1, [r0, #4]
+ ldr r0, [sp, #0x10]
+ strb r1, [r0, #0x11]
+ ldr r0, [sp, #0xc]
+ ldr r1, [r0]
+ ldr r0, [sp, #0x10]
+ strb r1, [r0, #0x13]
+ ldr r0, [sp, #0xc]
+ ldr r0, [r0, #4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl MOD06_02242844
+ mov r6, #0
+ str r0, [sp, #8]
+ cmp r0, #0
+ ble _022429A6
+ add r7, r6, #0
+_02242926:
+ ldr r0, [sp, #0xc]
+ ldr r0, [r0, #4]
+ lsl r1, r0, #2
+ ldr r0, _022429AC ; =0x0224F798
+ ldr r0, [r0, r1]
+ add r4, r0, r7
+ ldrb r0, [r4, #4]
+ lsl r2, r0, #0x10
+ str r2, [sp, #0x20]
+ ldrb r0, [r4, #5]
+ lsl r1, r0, #0x10
+ str r1, [sp, #0x24]
+ ldrb r0, [r4, #6]
+ lsl r3, r0, #0x10
+ mov r0, #2
+ lsl r0, r0, #0xe
+ add r0, r2, r0
+ str r0, [sp, #0x20]
+ mov r0, #2
+ lsl r0, r0, #0xe
+ str r3, [sp, #0x28]
+ add r0, r3, r0
+ str r0, [sp, #0x28]
+ ldrb r0, [r4, #7]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02242966
+ mov r0, #2
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x24]
+_02242966:
+ mov r0, #0
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ ldr r1, [r1]
+ add r0, r4, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r2, sp, #0x14
+ bl MOD06_02242868
+ add r0, sp, #0x14
+ str r0, [sp]
+ ldr r0, [r5, #0x4c]
+ add r3, sp, #0x20
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ ldr r2, [r4]
+ bl FUN_021E7FBC
+ ldr r1, [sp, #0x10]
+ add r7, #8
+ add r1, r1, r6
+ strb r0, [r1, #4]
+ ldr r0, [sp, #8]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _02242926
+_022429A6:
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022429AC: .word 0x0224F798
+
+ thumb_func_start MOD06_022429B0
+MOD06_022429B0: ; 0x022429B0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x24]
+ bl FUN_02016A18
+ ldr r0, [r4, #4]
+ mov r1, #0
+ str r1, [r0, #0x24]
+ pop {r4, pc}
+
+ thumb_func_start MOD06_022429C4
+MOD06_022429C4: ; 0x022429C4
+ push {r4, r5, r6, r7}
+ ldr r0, [r0, #4]
+ add r3, r1, #0
+ add r1, r2, #0
+ ldr r2, [r0, #0x24]
+ mov r4, #0x14
+ ldrb r0, [r2, #0x11]
+ ldrb r2, [r2, #0x13]
+ add r5, r0, #0
+ mul r5, r4
+ ldr r4, _02242A2C ; =0x022522FC
+ lsl r2, r2, #2
+ ldr r6, [r4, r5]
+ ldr r4, _02242A30 ; =0x02252300
+ add r4, r4, r5
+ ldr r2, [r2, r4]
+ mov r5, #0
+ mov ip, r2
+ lsl r2, r0, #2
+ ldr r0, _02242A34 ; =0x0224F774
+ cmp r6, #0
+ ldr r7, [r0, r2]
+ ble _02242A26
+_022429F2:
+ mov r0, ip
+ ldrb r0, [r0, r5]
+ lsl r0, r0, #2
+ ldrb r2, [r7, r0]
+ add r4, r7, r0
+ cmp r2, r3
+ bgt _02242A20
+ ldrb r0, [r4, #2]
+ add r0, r2, r0
+ cmp r3, r0
+ bge _02242A20
+ ldrb r0, [r4, #1]
+ cmp r0, r1
+ bgt _02242A20
+ ldrb r2, [r4, #3]
+ add r0, r0, r2
+ cmp r1, r0
+ bge _02242A20
+ ldr r1, [sp, #0x10]
+ mov r0, #1
+ str r0, [r1]
+ pop {r4, r5, r6, r7}
+ bx lr
+_02242A20:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _022429F2
+_02242A26:
+ mov r0, #0
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_02242A2C: .word 0x022522FC
+_02242A30: .word 0x02252300
+_02242A34: .word 0x0224F774
+
+ thumb_func_start MOD06_02242A38
+MOD06_02242A38: ; 0x02242A38
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ mov r1, #5
+ bl FUN_020254A0
+ add r6, r0, #0
+ ldr r0, [r7, #4]
+ mov r1, #4
+ ldr r4, [r0, #0x24]
+ mov r0, #0xb
+ bl FUN_020169D8
+ mov r1, #0
+ str r1, [r0]
+ strh r5, [r4, #0x14]
+ strh r1, [r4, #0x16]
+ str r0, [sp]
+ ldr r0, [r6, #4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl MOD06_02242844
+ strb r0, [r4, #0x12]
+ ldr r0, [r6]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ cmp r5, #0
+ bne _02242A94
+ mov r1, #1
+ lsl r1, r1, #0xe
+ add r0, r0, #1
+ strh r1, [r4, #0x18]
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ b _02242ACE
+_02242A94:
+ cmp r5, #1
+ bne _02242AAA
+ mov r1, #1
+ sub r0, r0, #1
+ lsl r1, r1, #0xe
+ lsl r0, r0, #0x18
+ strh r1, [r4, #0x18]
+ asr r0, r0, #0x18
+ bpl _02242ACE
+ mov r0, #3
+ b _02242ACE
+_02242AAA:
+ cmp r5, #2
+ bne _02242AC8
+ mov r1, #2
+ lsl r1, r1, #0xe
+ add r0, r0, #2
+ strh r1, [r4, #0x18]
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ b _02242ACE
+_02242AC8:
+ bl ErrorHandling
+ pop {r3, r4, r5, r6, r7, pc}
+_02242ACE:
+ str r0, [r6]
+ strb r0, [r4, #0x13]
+ ldr r0, _02242AE4 ; =0x0000063F
+ bl FUN_020054C8
+ ldr r0, [r7, #0x10]
+ ldr r1, _02242AE8 ; =MOD06_02242AEC
+ ldr r2, [sp]
+ bl FUN_0204640C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02242AE4: .word 0x0000063F
+_02242AE8: .word MOD06_02242AEC
+
+ thumb_func_start MOD06_02242AEC
+MOD06_02242AEC: ; 0x02242AEC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ bl FUN_02046528
+ str r0, [sp, #8]
+ add r0, r4, #0
+ bl FUN_0204652C
+ ldr r1, [sp, #8]
+ str r0, [sp, #4]
+ ldr r1, [r1, #4]
+ ldr r4, [r1, #0x24]
+ add r1, r0, #0
+ ldr r1, [r1]
+ cmp r1, #0
+ beq _02242B14
+ cmp r1, #1
+ beq _02242BCC
+ b _02242BD6
+_02242B14:
+ ldrh r2, [r4, #0x18]
+ mov r0, #1
+ ldrh r1, [r4, #0x16]
+ lsl r0, r0, #0xa
+ str r0, [sp]
+ add r0, r1, r0
+ cmp r0, r2
+ ble _02242B2C
+ sub r0, r0, r2
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+_02242B2C:
+ ldrh r1, [r4, #0x16]
+ ldr r0, [sp]
+ add r0, r1, r0
+ strh r0, [r4, #0x16]
+ ldrh r0, [r4, #0x14]
+ cmp r0, #1
+ bne _02242B44
+ ldr r0, [sp]
+ neg r0, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+_02242B44:
+ ldrb r0, [r4, #0x12]
+ mov r5, #0
+ cmp r0, #0
+ bls _02242BB8
+ ldr r0, [sp]
+ neg r0, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0xc]
+_02242B56:
+ ldr r0, [sp, #8]
+ add r1, r4, r5
+ add r0, #0xa0
+ ldrb r1, [r1, #4]
+ ldr r0, [r0]
+ bl FUN_021E7ED0
+ bl FUN_021E7E9C
+ ldrb r1, [r4, #0x11]
+ lsl r2, r1, #2
+ ldr r1, _02242BDC ; =0x0224F798
+ ldr r2, [r1, r2]
+ lsl r1, r5, #3
+ add r1, r2, r1
+ ldrb r2, [r1, #7]
+ lsl r2, r2, #0x1d
+ lsr r2, r2, #0x1f
+ cmp r2, #1
+ bne _02242B82
+ ldr r7, [sp, #0xc]
+ b _02242B84
+_02242B82:
+ ldr r7, [sp]
+_02242B84:
+ ldrb r1, [r1, #7]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1f
+ beq _02242B92
+ cmp r1, #1
+ beq _02242B96
+ b _02242B9A
+_02242B92:
+ add r6, r0, #4
+ b _02242B9E
+_02242B96:
+ add r6, r0, #0
+ b _02242B9E
+_02242B9A:
+ bl ErrorHandling
+_02242B9E:
+ ldr r0, [r6]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add r0, r0, r7
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [r6]
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldrb r0, [r4, #0x12]
+ cmp r5, r0
+ blo _02242B56
+_02242BB8:
+ ldrh r1, [r4, #0x16]
+ ldrh r0, [r4, #0x18]
+ cmp r1, r0
+ blo _02242BD6
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #4]
+ str r1, [r0]
+ b _02242BD6
+_02242BCC:
+ bl FUN_02016A18
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02242BD6:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02242BDC: .word 0x0224F798
+
+ thumb_func_start MOD06_02242BE0
+MOD06_02242BE0: ; 0x02242BE0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r2, [sp]
+ add r5, r0, #0
+ add r6, r1, #0
+ str r3, [sp, #4]
+ bl FUN_02046528
+ add r7, r0, #0
+ ldr r0, _02242C70 ; =0x0000067C
+ bl FUN_020054C8
+ mov r1, #0x11
+ mov r0, #4
+ lsl r1, r1, #4
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _02242C0E
+ bl ErrorHandling
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02242C0E:
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #4
+ bl Call_FillMemWithValue
+ add r2, sp, #0x10
+ ldrb r2, [r2, #0x10]
+ ldr r3, [sp, #0x24]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD06_02242C78
+ ldr r0, [r4]
+ add r1, r4, #0
+ ldr r0, [r0, #8]
+ add r1, #0x14
+ mov r2, #3
+ bl FUN_020545B8
+ ldr r0, [r4]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ add r1, r0, #0
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02054608
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #0
+ bl MOD06_02243080
+ add r0, r4, #0
+ bl MOD06_022430E0
+ ldr r2, [sp]
+ ldr r3, [sp, #4]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD06_02242CDC
+ ldr r1, _02242C74 ; =MOD06_02242EC0
+ add r0, r5, #0
+ add r2, r4, #0
+ bl FUN_0204640C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02242C70: .word 0x0000067C
+_02242C74: .word MOD06_02242EC0
+
+ thumb_func_start MOD06_02242C78
+MOD06_02242C78: ; 0x02242C78
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r2, #0
+ add r4, r0, #0
+ add r5, r1, #0
+ ldr r2, _02242CD8 ; =0x00000141
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #4
+ bl FUN_0200A86C
+ str r0, [r5, #0x54]
+ mov r0, #4
+ bl FUN_0200AA80
+ str r0, [r5, #0x58]
+ add r0, r5, #0
+ str r4, [r5]
+ add r0, #0x5d
+ strb r6, [r0]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x5e
+ strb r1, [r0]
+ add r2, r5, #0
+ add r4, r1, #0
+_02242CAA:
+ add r0, r2, #0
+ add r0, #0x90
+ str r4, [r0]
+ add r0, r2, #0
+ add r0, #0x94
+ add r1, r1, #1
+ add r2, #8
+ str r4, [r0]
+ cmp r1, #0x10
+ blt _02242CAA
+ mov r6, #0x40
+ mov r7, #4
+_02242CC2:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_020219F4
+ str r0, [r5, #0x24]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xc
+ blt _02242CC2
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02242CD8: .word 0x00000141
+
+ thumb_func_start MOD06_02242CDC
+MOD06_02242CDC: ; 0x02242CDC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ str r2, [sp]
+ mov r0, #0x14
+ str r0, [sp, #4]
+ mov r0, #0xe
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r6, r1, #0
+ add r5, r3, #0
+ ldr r0, [r0, #8]
+ add r1, r4, #4
+ mov r2, #3
+ add r3, r6, #0
+ bl FUN_02019064
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ ldr r2, _02242D44 ; =0x000003D9
+ ldr r0, [r0, #8]
+ mov r1, #3
+ mov r3, #0xb
+ bl FUN_0200CB00
+ ldr r2, _02242D44 ; =0x000003D9
+ add r0, r4, #4
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add r0, r4, #0
+ bl MOD06_02242DA8
+ add r0, r4, #0
+ add r0, #0x68
+ mov r1, #0
+ add r2, r5, #0
+ mov r3, #4
+ bl FUN_020010A8
+ add r4, #0x88
+ str r0, [r4]
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02242D44: .word 0x000003D9
+
+ thumb_func_start MOD06_02242D48
+MOD06_02242D48: ; 0x02242D48
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ add r2, r5, #0
+ add r2, #0x5e
+ ldrb r2, [r2]
+ ldr r0, [r5, #0x54]
+ lsl r2, r2, #2
+ add r2, r5, r2
+ ldr r2, [r2, #0x24]
+ bl FUN_0200A8E0
+ add r0, r5, #0
+ add r0, #0x5e
+ ldrb r2, [r0]
+ lsl r0, r2, #2
+ add r0, r5, r0
+ ldr r1, [r0, #0x24]
+ lsl r0, r2, #3
+ add r0, r5, r0
+ add r0, #0x90
+ str r1, [r0]
+ cmp r4, #0xfa
+ bne _02242D8C
+ add r0, r5, #0
+ add r0, #0x5e
+ ldrb r0, [r0]
+ mov r1, #2
+ mvn r1, r1
+ lsl r0, r0, #3
+ add r0, r5, r0
+ add r0, #0x94
+ str r1, [r0]
+ b _02242D9A
+_02242D8C:
+ add r0, r5, #0
+ add r0, #0x5e
+ ldrb r0, [r0]
+ lsl r0, r0, #3
+ add r0, r5, r0
+ add r0, #0x94
+ str r4, [r0]
+_02242D9A:
+ add r0, r5, #0
+ add r0, #0x5e
+ ldrb r0, [r0]
+ add r5, #0x5e
+ add r0, r0, #1
+ strb r0, [r5]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_02242DA8
+MOD06_02242DA8: ; 0x02242DA8
+ push {r3, r4}
+ add r1, r0, #0
+ add r1, #0x90
+ str r1, [r0, #0x68]
+ mov r1, #0
+ ldr r2, _02242E8C ; =MOD06_02242E9C
+ str r1, [r0, #0x6c]
+ str r2, [r0, #0x70]
+ add r2, r0, #4
+ str r2, [r0, #0x74]
+ add r2, r0, #0
+ add r2, #0x5e
+ ldrb r3, [r2]
+ add r2, r0, #0
+ add r2, #0x78
+ strh r3, [r2]
+ add r2, r0, #0
+ mov r3, #6
+ add r2, #0x7a
+ strh r3, [r2]
+ add r2, r0, #0
+ mov r3, #1
+ add r2, #0x7c
+ strb r3, [r2]
+ add r2, r0, #0
+ mov r3, #0xc
+ add r2, #0x7d
+ strb r3, [r2]
+ add r2, r0, #0
+ add r2, #0x7e
+ strb r1, [r2]
+ add r1, r0, #0
+ add r1, #0x7f
+ ldrb r3, [r1]
+ mov r1, #0xf
+ mov r2, #8
+ bic r3, r1
+ orr r3, r2
+ add r2, r0, #0
+ add r2, #0x7f
+ strb r3, [r2]
+ add r2, r0, #0
+ add r2, #0x7f
+ ldrb r4, [r2]
+ mov r2, #0xf0
+ mov r3, #0x10
+ bic r4, r2
+ orr r4, r3
+ add r3, r0, #0
+ add r3, #0x7f
+ strb r4, [r3]
+ add r3, r0, #0
+ add r3, #0x80
+ ldrb r3, [r3]
+ bic r3, r1
+ mov r1, #0xf
+ orr r3, r1
+ add r1, r0, #0
+ add r1, #0x80
+ strb r3, [r1]
+ add r1, r0, #0
+ add r1, #0x80
+ ldrb r3, [r1]
+ mov r1, #0x20
+ bic r3, r2
+ add r2, r3, #0
+ orr r2, r1
+ add r1, r0, #0
+ add r1, #0x80
+ strb r2, [r1]
+ add r1, r0, #0
+ add r1, #0x82
+ ldrh r2, [r1]
+ mov r1, #7
+ bic r2, r1
+ add r1, r0, #0
+ add r1, #0x82
+ strh r2, [r1]
+ add r1, r0, #0
+ add r1, #0x82
+ ldrh r2, [r1]
+ mov r1, #0x78
+ bic r2, r1
+ add r1, r0, #0
+ add r1, #0x82
+ strh r2, [r1]
+ add r1, r0, #0
+ add r1, #0x82
+ ldrh r2, [r1]
+ ldr r1, _02242E90 ; =0xFFFFFE7F
+ and r2, r1
+ mov r1, #0x80
+ orr r2, r1
+ add r1, r0, #0
+ add r1, #0x82
+ strh r2, [r1]
+ add r1, r0, #0
+ add r1, #0x82
+ ldrh r2, [r1]
+ ldr r1, _02242E94 ; =0xFFFF81FF
+ and r2, r1
+ add r1, r0, #0
+ add r1, #0x82
+ strh r2, [r1]
+ add r1, r0, #0
+ add r1, #0x82
+ ldrh r2, [r1]
+ ldr r1, _02242E98 ; =0xFFFF7FFF
+ add r0, #0x82
+ and r1, r2
+ strh r1, [r0]
+ pop {r3, r4}
+ bx lr
+ nop
+_02242E8C: .word MOD06_02242E9C
+_02242E90: .word 0xFFFFFE7F
+_02242E94: .word 0xFFFF81FF
+_02242E98: .word 0xFFFF7FFF
+
+ thumb_func_start MOD06_02242E9C
+MOD06_02242E9C: ; 0x02242E9C
+ push {r3, lr}
+ mov r2, #2
+ mvn r2, r2
+ cmp r1, r2
+ bne _02242EB2
+ mov r1, #3
+ mov r2, #0xf
+ mov r3, #4
+ bl FUN_020013E8
+ pop {r3, pc}
+_02242EB2:
+ mov r1, #1
+ mov r2, #0xf
+ mov r3, #2
+ bl FUN_020013E8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02242EC0
+MOD06_02242EC0: ; 0x02242EC0
+ push {r4, lr}
+ bl FUN_0204652C
+ add r4, r0, #0
+ add r1, r4, #0
+ add r1, #0x5c
+ ldrb r1, [r1]
+ cmp r1, #4
+ bhi _02242F0E
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02242EDE: ; jump table
+ .short _02242EE8 - _02242EDE - 2 ; case 0
+ .short _02242EEE - _02242EDE - 2 ; case 1
+ .short _02242EF4 - _02242EDE - 2 ; case 2
+ .short _02242EFA - _02242EDE - 2 ; case 3
+ .short _02242F00 - _02242EDE - 2 ; case 4
+_02242EE8:
+ bl MOD06_02242F1C
+ b _02242F0E
+_02242EEE:
+ bl MOD06_02242F54
+ b _02242F0E
+_02242EF4:
+ bl MOD06_02242FEC
+ b _02242F0E
+_02242EFA:
+ bl MOD06_02243018
+ b _02242F0E
+_02242F00:
+ bl MOD06_02243024
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r4, pc}
+_02242F0E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02242F14
+MOD06_02242F14: ; 0x02242F14
+ add r0, #0x5c
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_02242F1C
+MOD06_02242F1C: ; 0x02242F1C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_02001204
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _02242F38
+ add r1, r1, #1
+ cmp r0, r1
+ beq _02242F50
+ b _02242F42
+_02242F38:
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD06_02242F14
+ pop {r4, pc}
+_02242F42:
+ add r1, r4, #0
+ add r1, #0x60
+ strh r0, [r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD06_02242F14
+_02242F50:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02242F54
+MOD06_02242F54: ; 0x02242F54
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, _02242FE0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #4
+ tst r0, r1
+ beq _02242F6E
+ mov r0, #1
+ add r4, #0x5f
+ add sp, #4
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_02242F6E:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_02001204
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _02242F88
+ add r1, r1, #1
+ cmp r0, r1
+ beq _02242FDC
+ b _02242FA6
+_02242F88:
+ add r0, r4, #0
+ add r0, #0x5f
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02242F9A
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x5f
+ strb r1, [r0]
+_02242F9A:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD06_02242F14
+ add sp, #4
+ pop {r3, r4, pc}
+_02242FA6:
+ add r1, r4, #0
+ add r1, #0x5f
+ ldrb r1, [r1]
+ cmp r1, #1
+ bne _02242FDC
+ add r1, r4, #0
+ add r1, #0x60
+ strh r0, [r1]
+ mov r0, #4
+ str r0, [sp]
+ ldr r0, [r4]
+ ldr r1, _02242FE4 ; =0x02250C40
+ ldr r0, [r0, #8]
+ ldr r2, _02242FE8 ; =0x000003D9
+ mov r3, #0xb
+ bl FUN_02002198
+ str r0, [r4, #0x64]
+ add r0, r4, #0
+ mov r1, #0x24
+ mov r2, #0
+ bl MOD06_02243080
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD06_02242F14
+_02242FDC:
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02242FE0: .word 0x021C48B8
+_02242FE4: .word 0x02250C40
+_02242FE8: .word 0x000003D9
+
+ thumb_func_start MOD06_02242FEC
+MOD06_02242FEC: ; 0x02242FEC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x64]
+ mov r1, #4
+ bl FUN_020021AC
+ cmp r0, #0
+ bne _02243006
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD06_02242F14
+ pop {r4, pc}
+_02243006:
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ bne _02243016
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD06_02242F14
+_02243016:
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02243018
+MOD06_02243018: ; 0x02243018
+ ldr r3, _02243020 ; =MOD06_02242F14
+ mov r1, #1
+ bx r3
+ nop
+_02243020: .word MOD06_02242F14
+
+ thumb_func_start MOD06_02243024
+MOD06_02243024: ; 0x02243024
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, _0224307C ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r6, #0
+ add r0, #0x14
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r6, #0
+ add r0, #0x14
+ bl FUN_02019178
+ add r0, r6, #0
+ add r0, #0x88
+ mov r1, #0
+ ldr r0, [r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, [r6, #0x74]
+ mov r1, #0
+ bl FUN_0200CCF8
+ add r0, r6, #4
+ bl FUN_02019178
+ mov r4, #0
+ add r5, r6, #0
+_02243060:
+ ldr r0, [r5, #0x24]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xc
+ blt _02243060
+ ldr r0, [r6, #0x58]
+ bl FUN_0200AB18
+ ldr r0, [r6, #0x54]
+ bl FUN_0200A8B8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224307C: .word 0x000005DC
+
+ thumb_func_start MOD06_02243080
+MOD06_02243080: ; 0x02243080
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ str r1, [sp, #0xc]
+ mov r0, #0x40
+ mov r1, #4
+ add r7, r2, #0
+ bl FUN_020219F4
+ add r4, r0, #0
+ mov r0, #0x40
+ mov r1, #4
+ bl FUN_020219F4
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0x14
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, [r5, #0x54]
+ ldr r1, [sp, #0xc]
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ ldr r0, [r5, #0x58]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ mov r3, #0
+ str r3, [sp]
+ add r5, #0x14
+ str r7, [sp, #4]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r6, #0
+ str r3, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_022430E0
+MOD06_022430E0: ; 0x022430E0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #6
+ mov r2, #0
+ bl MOD06_02242D48
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #1
+ bl MOD06_02242D48
+ add r0, r4, #0
+ mov r1, #9
+ mov r2, #2
+ bl MOD06_02242D48
+ add r0, r4, #0
+ mov r1, #9
+ mov r2, #3
+ bl MOD06_02242D48
+ add r0, r4, #0
+ mov r1, #9
+ mov r2, #4
+ bl MOD06_02242D48
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #5
+ bl MOD06_02242D48
+ add r0, r4, #0
+ mov r1, #0xb
+ mov r2, #6
+ bl MOD06_02242D48
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224312C
+MOD06_0224312C: ; 0x0224312C
+ cmp r0, #5
+ bhi _02243154
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224313C: ; jump table
+ .short _02243148 - _0224313C - 2 ; case 0
+ .short _0224314C - _0224313C - 2 ; case 1
+ .short _02243150 - _0224313C - 2 ; case 2
+ .short _02243150 - _0224313C - 2 ; case 3
+ .short _02243148 - _0224313C - 2 ; case 4
+ .short _02243148 - _0224313C - 2 ; case 5
+_02243148:
+ mov r0, #3
+ bx lr
+_0224314C:
+ mov r0, #4
+ bx lr
+_02243150:
+ mov r0, #2
+ bx lr
+_02243154:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD06_02243158
+MOD06_02243158: ; 0x02243158
+ push {r4, r5}
+ mov r5, #0
+ cmp r3, #0
+ ble _0224317E
+_02243160:
+ ldrh r4, [r0]
+ cmp r1, r4
+ bne _02243176
+ cmp r2, #0
+ beq _02243176
+ ldrh r4, [r0, #2]
+ cmp r2, r4
+ bne _02243176
+ mov r0, #1
+ pop {r4, r5}
+ bx lr
+_02243176:
+ add r5, r5, #1
+ add r0, r0, #4
+ cmp r5, r3
+ blt _02243160
+_0224317E:
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+
+ thumb_func_start MOD06_02243184
+MOD06_02243184: ; 0x02243184
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ mov lr, r0
+ sub r0, r5, #1
+ mov r7, #0
+ mov ip, r0
+ cmp r0, #0
+ ble _022431D0
+ mov r3, lr
+_02243196:
+ add r2, r7, #1
+ cmp r2, r5
+ bge _022431C6
+ ldrh r6, [r3]
+ lsl r1, r2, #2
+ mov r0, lr
+ add r4, r0, r1
+_022431A4:
+ ldrh r0, [r4]
+ cmp r6, r0
+ bne _022431AE
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022431AE:
+ ldrh r1, [r3, #2]
+ cmp r1, #0
+ beq _022431BE
+ ldrh r0, [r4, #2]
+ cmp r1, r0
+ bne _022431BE
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022431BE:
+ add r2, r2, #1
+ add r4, r4, #4
+ cmp r2, r5
+ blt _022431A4
+_022431C6:
+ add r7, r7, #1
+ mov r0, ip
+ add r3, r3, #4
+ cmp r7, r0
+ blt _02243196
+_022431D0:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_022431D4
+MOD06_022431D4: ; 0x022431D4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ str r0, [sp]
+ add r7, r1, #0
+ add r6, r2, #0
+ add r0, sp, #0x20
+ mov r1, #0
+ mov r2, #0x10
+ str r3, [sp, #4]
+ bl MI_CpuFill8
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ ble _022432DC
+ ldr r0, [sp]
+ str r0, [sp, #0x10]
+_022431F8:
+ ldr r0, [sp, #0x10]
+ ldrh r1, [r0]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r0, [sp, #0x10]
+ ldrh r1, [r0, #2]
+ add r0, sp, #0x20
+ strh r1, [r0, #2]
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, r6
+ bge _022432CA
+ lsl r1, r0, #2
+ ldr r0, [sp]
+ add r0, r0, r1
+ str r0, [sp, #0xc]
+_0224321A:
+ ldr r0, [sp, #0xc]
+ cmp r7, #2
+ ldrh r1, [r0]
+ add r0, sp, #0x20
+ strh r1, [r0, #4]
+ ldr r0, [sp, #0xc]
+ ldrh r1, [r0, #2]
+ add r0, sp, #0x20
+ strh r1, [r0, #6]
+ bne _02243240
+ add r0, sp, #0x20
+ add r1, r7, #0
+ bl MOD06_02243184
+ cmp r0, #0
+ beq _022432BA
+ add sp, #0x30
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02243240:
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, r6
+ bge _022432BA
+ lsl r1, r0, #2
+ ldr r0, [sp]
+ add r0, r0, r1
+ str r0, [sp, #8]
+_02243252:
+ ldr r0, [sp, #8]
+ cmp r7, #3
+ ldrh r1, [r0]
+ add r0, sp, #0x20
+ strh r1, [r0, #8]
+ ldr r0, [sp, #8]
+ ldrh r1, [r0, #2]
+ add r0, sp, #0x20
+ strh r1, [r0, #0xa]
+ bne _02243278
+ add r0, sp, #0x20
+ add r1, r7, #0
+ bl MOD06_02243184
+ cmp r0, #0
+ beq _022432AA
+ add sp, #0x30
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02243278:
+ ldr r0, [sp, #0x14]
+ add r4, r0, #1
+ cmp r4, r6
+ bge _022432AA
+ ldr r0, [sp]
+ lsl r1, r4, #2
+ add r5, r0, r1
+_02243286:
+ ldrh r1, [r5]
+ add r0, sp, #0x20
+ strh r1, [r0, #0xc]
+ ldrh r1, [r5, #2]
+ strh r1, [r0, #0xe]
+ add r0, sp, #0x20
+ add r1, r7, #0
+ bl MOD06_02243184
+ cmp r0, #0
+ beq _022432A2
+ add sp, #0x30
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022432A2:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r6
+ blt _02243286
+_022432AA:
+ ldr r0, [sp, #8]
+ add r0, r0, #4
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, r6
+ blt _02243252
+_022432BA:
+ ldr r0, [sp, #0xc]
+ add r0, r0, #4
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, r6
+ blt _0224321A
+_022432CA:
+ ldr r0, [sp, #0x10]
+ add r0, r0, #4
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x1c]
+ add r1, r0, #1
+ ldr r0, [sp, #4]
+ str r1, [sp, #0x1c]
+ cmp r1, r0
+ blt _022431F8
+_022432DC:
+ mov r0, #0
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022432E4
+MOD06_022432E4: ; 0x022432E4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp]
+ add r0, r1, #0
+ bl FUN_0206BB1C
+ str r0, [sp, #4]
+ bl FUN_0206B9AC
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ str r1, [sp, #8]
+ ldr r0, [sp]
+ cmp r1, r0
+ bge _02243308
+ add sp, #0x28
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02243308:
+ ldr r0, [sp, #8]
+ mov r7, #0
+ add r4, r7, #0
+ cmp r0, #0
+ bls _0224337A
+_02243312:
+ ldr r0, [sp, #4]
+ add r1, r7, #0
+ bl FUN_0206B9B0
+ mov r1, #5
+ mov r2, #0
+ str r0, [sp, #0xc]
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [sp, #0xc]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ ldr r0, [sp, #0xc]
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0224336E
+ add r0, r5, #0
+ bl FUN_0206A964
+ cmp r0, #1
+ beq _0224336E
+ add r0, sp, #0x10
+ add r1, r5, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD06_02243158
+ cmp r0, #1
+ beq _0224336E
+ lsl r1, r4, #2
+ add r0, sp, #0x10
+ add r2, r0, r1
+ strh r5, [r0, r1]
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ strh r6, [r2, #2]
+ lsr r4, r0, #0x18
+_0224336E:
+ add r0, r7, #1
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ ldr r0, [sp, #8]
+ cmp r7, r0
+ blo _02243312
+_0224337A:
+ ldr r0, [sp]
+ cmp r4, r0
+ bge _02243386
+ add sp, #0x28
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02243386:
+ ldr r1, [sp]
+ add r0, sp, #0x10
+ add r3, r1, #0
+ sub r3, r4, r3
+ add r2, r4, #0
+ add r3, r3, #1
+ bl MOD06_022431D4
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224339C
+MOD06_0224339C: ; 0x0224339C
+ ldr r3, _022433A4 ; =0x020CD3B4
+ mov r0, #0
+ bx r3
+ nop
+_022433A4: .word 0x020CD3B4
+
+ thumb_func_start MOD06_022433A8
+MOD06_022433A8: ; 0x022433A8
+ ldr r3, _022433AC ; =0x0202A1E5
+ bx r3
+ .align 2, 0
+_022433AC: .word 0x0202A1E5
+
+ thumb_func_start MOD06_022433B0
+MOD06_022433B0: ; 0x022433B0
+ ldr r3, _022433B4 ; =0x0202A399
+ bx r3
+ .align 2, 0
+_022433B4: .word 0x0202A399
+
+ thumb_func_start MOD06_022433B8
+MOD06_022433B8: ; 0x022433B8
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DD0
+ add r4, r0, #0
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ add r6, r0, #0
+ ldr r0, [r5, #0x38]
+ bl FUN_02055320
+ ldr r1, [r5, #0x1c]
+ ldr r1, [r1]
+ str r1, [r4]
+ mov r1, #0
+ mvn r1, r1
+ str r1, [r4, #4]
+ str r0, [r4, #8]
+ str r6, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F154
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022433F8
+MOD06_022433F8: ; 0x022433F8
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F164
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02243408
+MOD06_02243408: ; 0x02243408
+ push {r4, lr}
+ add r4, r1, #0
+ cmp r4, #5
+ bne _02243414
+ mov r0, #0
+ pop {r4, pc}
+_02243414:
+ bl FUN_02029FC8
+ lsl r1, r4, #1
+ add r1, #0x36
+ bl FUN_0202A150
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02243428
+MOD06_02243428: ; 0x02243428
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0202A8D8
+ cmp r4, #0
+ bne _0224343E
+ mov r1, #5
+ mov r2, #2
+ bl FUN_0202A578
+ pop {r4, pc}
+_0224343E:
+ mov r1, #5
+ mov r2, #1
+ bl FUN_0202A578
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02243448
+MOD06_02243448: ; 0x02243448
+ push {r3, lr}
+ bl FUN_0202A8D8
+ mov r1, #5
+ mov r2, #0
+ bl FUN_0202A578
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r3, pc}
+
+ thumb_func_start MOD06_0224345C
+MOD06_0224345C: ; 0x0224345C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ bl FUN_0202A8CC
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0202A8D8
+ mov r1, #0
+ add r6, r0, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl FUN_0202A240
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #5
+ bne _02243484
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02243484:
+ add r1, r4, #0
+ add r1, #8
+ lsl r1, r1, #0x10
+ add r0, r6, #0
+ lsr r1, r1, #0x10
+ mov r2, #2
+ bl FUN_0202A578
+ add r0, r6, #0
+ add r1, r4, #0
+ mov r2, #2
+ bl FUN_0202A538
+ cmp r4, #4
+ beq _022434A8
+ add r0, r5, #0
+ bl FUN_020600A0
+_022434A8:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_022434AC
+MOD06_022434AC: ; 0x022434AC
+ push {r3, lr}
+ bl FUN_0202A8E4
+ bl FUN_0202A744
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r3, pc}
+
+ thumb_func_start MOD06_022434BC
+MOD06_022434BC: ; 0x022434BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _022434CA
+ bl ErrorHandling
+_022434CA:
+ mov r0, #0
+ str r0, [r4]
+ pop {r4, pc}
+
+ thumb_func_start MOD06_022434D0
+MOD06_022434D0: ; 0x022434D0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r2, #0
+ mov r2, #1
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #3
+ mov r1, #0x3b
+ lsl r2, r2, #0xe
+ bl FUN_02016828
+ ldr r1, _02243684 ; =0x000008CC
+ mov r0, #0x3b
+ bl FUN_02016998
+ ldr r2, _02243684 ; =0x000008CC
+ mov r1, #0
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r0, #0x3b
+ str r0, [r4, #4]
+ add r0, r6, #0
+ bl FUN_0202A8CC
+ str r0, [r4, #0x70]
+ add r0, r6, #0
+ bl FUN_0202A8D8
+ str r0, [r4, #0x74]
+ ldr r0, _02243688 ; =0x12345678
+ mov r1, #0
+ str r0, [r4]
+ ldr r0, [r4, #0x70]
+ bl FUN_0202A3A0
+ cmp r5, #0
+ bne _0224356C
+ strb r7, [r4, #0xf]
+ ldrb r0, [r4, #0xf]
+ bl MOD06_0224312C
+ strb r0, [r4, #0xe]
+ mov r0, #1
+ strb r0, [r4, #0xc]
+ mov r2, #0
+ strb r2, [r4, #0xd]
+ mov r1, #0xff
+_02243530:
+ add r0, r4, r2
+ add r0, #0x2a
+ strb r1, [r0]
+ add r0, r2, #1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ cmp r2, #4
+ blo _02243530
+ ldr r1, _0224368C ; =0x0000FFFF
+ mov r2, #0
+_02243544:
+ lsl r0, r2, #1
+ add r0, r4, r0
+ strh r1, [r0, #0x3e]
+ add r0, r2, #1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ cmp r2, #0xe
+ blo _02243544
+ ldr r0, [r4, #0x70]
+ bl FUN_0202A1E4
+ ldrb r1, [r4, #0xf]
+ add r0, sp, #8
+ add r2, sp, #8
+ strb r1, [r0]
+ ldr r0, [r4, #0x70]
+ mov r1, #0
+ bl FUN_0202A2C4
+ b _0224362A
+_0224356C:
+ mov r1, #0
+ ldr r0, [r4, #0x70]
+ add r2, r1, #0
+ bl FUN_0202A240
+ strb r0, [r4, #0xf]
+ ldr r0, [r4, #0x70]
+ mov r1, #1
+ mov r2, #0
+ bl FUN_0202A240
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4, #0xc]
+ sub r0, r0, #1
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xf]
+ bl MOD06_0224312C
+ strb r0, [r4, #0xe]
+ add r2, r4, #0
+ ldr r0, [r4, #0x70]
+ mov r1, #5
+ add r2, #0x2a
+ bl FUN_0202A240
+ add r2, r4, #0
+ ldr r0, [r4, #0x70]
+ mov r1, #8
+ add r2, #0x3e
+ bl FUN_0202A240
+ ldr r0, [r4, #0x70]
+ mov r1, #0xa
+ mov r2, #0
+ bl FUN_0202A240
+ str r0, [r4, #8]
+ ldrb r0, [r4, #0xf]
+ cmp r0, #2
+ bne _0224362A
+ ldr r0, [r4, #0x70]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_0202A240
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1d
+ ldrb r1, [r4, #0x10]
+ mov r2, #0xe0
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r0, r1
+ strb r0, [r4, #0x10]
+ ldrb r3, [r4, #0x10]
+ ldr r2, _02243690 ; =0x000007E8
+ ldr r0, [r4, #0x70]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x1d
+ add r2, r4, r2
+ lsl r3, r3, #4
+ mov r1, #6
+ add r2, r2, r3
+ bl FUN_0202A240
+ ldrb r0, [r4, #0x10]
+ mov r1, #7
+ mov r2, #0
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x1d
+ ldr r0, [r4, #0x70]
+ bl FUN_0202A240
+ add r3, r0, #0
+ ldr r0, _02243690 ; =0x000007E8
+ mov r1, #0xa6
+ lsl r1, r1, #2
+ add r0, r4, r0
+ lsl r2, r5, #4
+ add r0, r0, r2
+ add r2, r5, r2
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ lsl r2, r2, #4
+ add r1, r1, r2
+ mov r2, #0x4b
+ lsl r2, r2, #2
+ add r2, r5, r2
+ lsl r2, r2, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsr r2, r2, #0x10
+ bl MOD06_02244A80
+_0224362A:
+ add r0, r6, #0
+ bl FUN_020238F4
+ bl FUN_020239CC
+ strb r0, [r4, #0x11]
+ ldrb r0, [r4, #0xf]
+ cmp r0, #5
+ beq _0224367E
+ add r0, r6, #0
+ bl FUN_02029FC8
+ ldrb r1, [r4, #0xf]
+ add r5, r0, #0
+ ldr r0, [r4, #0x74]
+ add r1, #8
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0
+ bl FUN_0202A578
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ beq _02243668
+ ldrb r1, [r4, #0xf]
+ add r0, r5, #0
+ lsl r1, r1, #1
+ add r1, #0x36
+ bl FUN_0202A150
+ strh r0, [r4, #0x1a]
+_02243668:
+ add r0, r5, #0
+ mov r1, #0x1d
+ bl FUN_0202A150
+ str r0, [r4, #0x20]
+ ldrb r1, [r4, #0xf]
+ ldr r0, [r4, #0x74]
+ mov r2, #0
+ bl FUN_0202A538
+ strh r0, [r4, #0x1c]
+_0224367E:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02243684: .word 0x000008CC
+_02243688: .word 0x12345678
+_0224368C: .word 0x0000FFFF
+_02243690: .word 0x000007E8
+
+ thumb_func_start MOD06_02243694
+MOD06_02243694: ; 0x02243694
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ beq _022436BE
+ ldr r1, [r4]
+ ldr r0, _022436C0 ; =0x12345678
+ cmp r1, r0
+ beq _022436A6
+ bl ErrorHandling
+_022436A6:
+ ldr r2, _022436C4 ; =0x000008CC
+ ldr r5, [r4, #4]
+ add r0, r4, #0
+ mov r1, #0
+ bl MI_CpuFill8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_020168D0
+_022436BE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022436C0: .word 0x12345678
+_022436C4: .word 0x000008CC
+
+ thumb_func_start MOD06_022436C8
+MOD06_022436C8: ; 0x022436C8
+ push {r3, lr}
+ sub sp, #0x10
+ ldrb r0, [r0, #0xe]
+ mov r3, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x64
+ str r0, [sp, #8]
+ add r0, r1, #0
+ add r1, r2, #0
+ mov r2, #0x11
+ str r3, [sp, #0xc]
+ bl FUN_0205FC50
+ add sp, #0x10
+ pop {r3, pc}
+
+ thumb_func_start MOD06_022436E8
+MOD06_022436E8: ; 0x022436E8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r1]
+ str r1, [sp]
+ str r0, [sp, #4]
+ add r0, #0x23
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02243706
+ ldr r0, [sp, #4]
+ add r0, #0x22
+ ldrb r0, [r0]
+ cmp r0, #7
+ bne _02243716
+_02243706:
+ ldr r0, [sp, #4]
+ bl FUN_02016A18
+ ldr r1, [sp]
+ mov r0, #0
+ str r0, [r1]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_02243716:
+ add r0, r2, #0
+ bl FUN_0206BB1C
+ str r0, [sp, #8]
+ ldrb r0, [r5, #0xe]
+ mov r4, #0
+ cmp r0, #0
+ ble _0224376A
+_02243726:
+ ldr r0, [sp, #4]
+ add r0, r0, r4
+ add r0, #0x2c
+ ldrb r0, [r0]
+ sub r1, r0, #1
+ add r0, r5, r4
+ add r0, #0x2a
+ strb r1, [r0]
+ add r1, r5, r4
+ add r1, #0x2a
+ ldrb r1, [r1]
+ ldr r0, [sp, #8]
+ bl FUN_0206B9B0
+ lsl r1, r4, #1
+ add r6, r5, r1
+ add r7, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r6, #0x2e]
+ add r0, r7, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r6, #0x36]
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldrb r0, [r5, #0xe]
+ cmp r4, r0
+ blt _02243726
+_0224376A:
+ ldr r0, [sp]
+ ldr r0, [r0]
+ bl FUN_02016A18
+ ldr r0, [sp]
+ mov r1, #0
+ str r1, [r0]
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02243780
+MOD06_02243780: ; 0x02243780
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r0, [sp]
+ add r0, r1, #0
+ bl FUN_0206BB1C
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ mov r5, #0
+ ldrb r0, [r0, #0xe]
+ cmp r0, #0
+ ble _02243808
+ add r7, sp, #0xc
+ add r4, sp, #0x14
+_0224379C:
+ ldr r1, [sp]
+ ldr r0, [sp, #4]
+ add r1, r1, r5
+ add r1, #0x2a
+ ldrb r1, [r1]
+ bl FUN_0206B9B0
+ str r0, [sp, #8]
+ lsl r6, r5, #1
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, r6]
+ ldr r0, [sp, #8]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r7, r6]
+ cmp r5, #0
+ beq _022437FA
+ mov r0, #0
+ cmp r5, #0
+ bls _022437FA
+ ldrh r1, [r4, r6]
+ ldrh r2, [r7, r6]
+_022437D2:
+ lsl r6, r0, #1
+ ldrh r3, [r4, r6]
+ cmp r1, r3
+ bne _022437E0
+ add sp, #0x1c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_022437E0:
+ cmp r2, #0
+ beq _022437F0
+ ldrh r3, [r7, r6]
+ cmp r2, r3
+ bne _022437F0
+ add sp, #0x1c
+ mov r0, #2
+ pop {r4, r5, r6, r7, pc}
+_022437F0:
+ add r0, r0, #1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, r5
+ blo _022437D2
+_022437FA:
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [sp]
+ ldrb r0, [r0, #0xe]
+ cmp r5, r0
+ blt _0224379C
+_02243808:
+ mov r0, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02243810
+MOD06_02243810: ; 0x02243810
+ push {r3, r4}
+ mov r4, #0
+ cmp r2, #0
+ bls _02243830
+_02243818:
+ lsl r3, r4, #1
+ ldrh r3, [r0, r3]
+ cmp r1, r3
+ bne _02243826
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_02243826:
+ add r3, r4, #1
+ lsl r3, r3, #0x10
+ lsr r4, r3, #0x10
+ cmp r4, r2
+ blo _02243818
+_02243830:
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_02243838
+MOD06_02243838: ; 0x02243838
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldrb r1, [r5, #0xf]
+ add r0, r1, #0
+ add r0, #0xfe
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bhi _0224389E
+ cmp r1, #3
+ bne _02243858
+ ldrh r1, [r5, #0x14]
+ ldrh r0, [r5, #0x1c]
+ cmp r1, r0
+ bhi _0224385A
+_02243858:
+ ldrh r1, [r5, #0x1c]
+_0224385A:
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ add r0, r5, #0
+ str r0, [sp, #4]
+ add r0, #0x3e
+ mov r4, #0
+ add r6, r5, #0
+ str r0, [sp, #4]
+_0224386C:
+ lsr r2, r4, #0x1f
+ add r2, r4, r2
+ lsl r2, r2, #0x17
+ ldrb r3, [r5, #0xf]
+ ldr r1, [sp]
+ add r0, r5, #0
+ lsr r2, r2, #0x18
+ bl MOD06_0224478C
+ add r7, r0, #0
+ lsl r2, r4, #0x10
+ ldr r0, [sp, #4]
+ add r1, r7, #0
+ lsr r2, r2, #0x10
+ bl MOD06_02243810
+ cmp r0, #0
+ bne _0224386C
+ add r4, r4, #1
+ strh r7, [r6, #0x3e]
+ add r6, r6, #2
+ cmp r4, #0xe
+ blt _0224386C
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0224389E:
+ add r0, r5, #0
+ str r0, [sp, #8]
+ add r0, #0x3e
+ mov r4, #0
+ add r6, r5, #0
+ str r0, [sp, #8]
+_022438AA:
+ ldrh r1, [r5, #0x1c]
+ lsl r2, r4, #0x18
+ ldrb r3, [r5, #0xf]
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl MOD06_0224478C
+ add r7, r0, #0
+ lsl r2, r4, #0x10
+ ldr r0, [sp, #8]
+ add r1, r7, #0
+ lsr r2, r2, #0x10
+ bl MOD06_02243810
+ cmp r0, #0
+ bne _022438AA
+ add r4, r4, #1
+ strh r7, [r6, #0x3e]
+ add r6, r6, #2
+ cmp r4, #7
+ blt _022438AA
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_022438DC
+MOD06_022438DC: ; 0x022438DC
+ ldrb r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start MOD06_022438E0
+MOD06_022438E0: ; 0x022438E0
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ ldr r0, [r4, #8]
+ bl FUN_02060064
+ str r0, [r4, #8]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4, #0xc]
+ pop {r4, pc}
+
+ thumb_func_start MOD06_022438FC
+MOD06_022438FC: ; 0x022438FC
+ ldrb r2, [r0, #0x10]
+ lsl r1, r2, #0x1f
+ lsr r1, r1, #0x1f
+ beq _02243908
+ mov r0, #1
+ bx lr
+_02243908:
+ ldrb r1, [r0, #0xc]
+ cmp r1, #7
+ bls _0224391C
+ mov r1, #1
+ bic r2, r1
+ mov r1, #1
+ orr r2, r1
+ strb r2, [r0, #0x10]
+ add r0, r1, #0
+ bx lr
+_0224391C:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD06_02243920
+MOD06_02243920: ; 0x02243920
+ ldrb r1, [r0, #0xd]
+ ldrh r0, [r0, #0x1a]
+ add r1, r0, r1
+ ldr r0, _02243934 ; =0x0000FFFF
+ cmp r1, r0
+ bhi _02243930
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+_02243930:
+ bx lr
+ nop
+_02243934: .word 0x0000FFFF
+
+ thumb_func_start MOD06_02243938
+MOD06_02243938: ; 0x02243938
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldrb r0, [r5, #0xf]
+ add r4, r1, #0
+ add r6, r2, #0
+ cmp r0, #0
+ beq _0224394A
+ cmp r0, #1
+ bne _02243980
+_0224394A:
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ ldrb r1, [r5, #0xf]
+ cmp r1, #0
+ bne _0224396C
+ add r5, #0x2a
+ ldrb r1, [r5]
+ bl FUN_0206B9B0
+ add r2, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r3, #1
+ bl FUN_02061904
+ pop {r4, r5, r6, pc}
+_0224396C:
+ add r5, #0x2a
+ ldrb r1, [r5]
+ bl FUN_0206B9B0
+ add r2, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r3, #0
+ bl FUN_02061904
+_02243980:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02243984
+MOD06_02243984: ; 0x02243984
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r2, #0
+ ldrb r2, [r5, #0xf]
+ add r6, r1, #0
+ add r4, r3, #0
+ cmp r2, #0
+ beq _0224399E
+ cmp r2, #1
+ beq _022439A4
+ cmp r2, #4
+ beq _022439B8
+ pop {r3, r4, r5, r6, r7, pc}
+_0224399E:
+ mov r2, #0
+ bl MOD06_02244190
+_022439A4:
+ cmp r4, #7
+ blo _022439F6
+ add r0, r6, #0
+ bl FUN_02022504
+ add r1, r7, #0
+ add r2, r4, #0
+ bl FUN_02060FBC
+ pop {r3, r4, r5, r6, r7, pc}
+_022439B8:
+ mov r2, #1
+ bl MOD06_02244190
+ ldrh r1, [r5, #0x28]
+ ldrh r2, [r5, #0x24]
+ ldrh r3, [r5, #0x26]
+ lsl r1, r1, #0x18
+ ldr r0, [r5, #0x70]
+ lsr r1, r1, #0x18
+ bl FUN_0202A36C
+ ldrb r1, [r5, #0xf]
+ add r0, sp, #0
+ add r2, sp, #0
+ strb r1, [r0]
+ ldr r0, [r5, #0x70]
+ mov r1, #0
+ bl FUN_0202A2C4
+ ldrb r1, [r5, #0xc]
+ add r0, sp, #0
+ add r2, sp, #0
+ strb r1, [r0]
+ ldr r0, [r5, #0x70]
+ mov r1, #1
+ bl FUN_0202A2C4
+ ldr r0, [r5, #0x74]
+ ldr r1, [r5, #0x70]
+ bl FUN_0202A4B8
+_022439F6:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_022439F8
+MOD06_022439F8: ; 0x022439F8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r1, #0xc]
+ str r1, [sp]
+ str r0, [sp, #8]
+ bl FUN_02029FC8
+ ldrb r1, [r5, #0xf]
+ str r0, [sp, #4]
+ cmp r1, #5
+ beq _02243AD0
+ lsl r6, r1, #1
+ add r6, #0x35
+ add r1, r6, #0
+ bl FUN_0202A150
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+ ldrh r3, [r5, #0x1a]
+ ldrb r2, [r5, #0xd]
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ add r2, r3, r2
+ bl FUN_0202A0A8
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #1
+ bls _02243A52
+ cmp r7, r4
+ blo _02243A48
+ cmp r7, r4
+ bne _02243A52
+ add r0, r4, #0
+ mov r1, #7
+ bl _s32_div_f
+ cmp r1, #0
+ bne _02243A52
+_02243A48:
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD06_02243938
+_02243A52:
+ ldrb r1, [r5, #0xf]
+ ldr r0, [r5, #0x74]
+ mov r2, #0
+ add r1, #8
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0202A578
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ beq _02243A74
+ ldrb r2, [r5, #0xd]
+ ldr r0, [sp, #4]
+ add r1, r6, #1
+ bl FUN_0202A11C
+ b _02243A7E
+_02243A74:
+ ldrb r2, [r5, #0xd]
+ ldr r0, [sp, #4]
+ add r1, r6, #1
+ bl FUN_0202A07C
+_02243A7E:
+ ldrb r1, [r5, #0xf]
+ add r4, r0, #0
+ ldr r0, [r5, #0x74]
+ add r1, #8
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #2
+ bl FUN_0202A578
+ ldrb r2, [r5, #0xd]
+ ldr r0, [sp, #4]
+ mov r1, #0x1d
+ bl FUN_0202A11C
+ ldrb r1, [r5, #0xf]
+ ldr r0, [r5, #0x74]
+ mov r2, #2
+ bl FUN_0202A538
+ ldr r0, [sp, #8]
+ bl FUN_02029FC8
+ mov r1, #0xf
+ mov r2, #1
+ bl FUN_0202A11C
+ add r0, r5, #0
+ bl MOD06_0224403C
+ ldr r0, _02243AD4 ; =0x0000270F
+ add r4, r4, #1
+ cmp r4, r0
+ bls _02243AC2
+ add r4, r0, #0
+_02243AC2:
+ lsl r3, r4, #0x10
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0
+ lsr r3, r3, #0x10
+ bl MOD06_02243984
+_02243AD0:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02243AD4: .word 0x0000270F
+
+ thumb_func_start MOD06_02243AD8
+MOD06_02243AD8: ; 0x02243AD8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r1, #0
+ add r5, r0, #0
+ ldr r0, [r7, #0xc]
+ str r0, [sp, #4]
+ ldrb r0, [r5, #0xf]
+ cmp r0, #5
+ beq _02243BA2
+ ldr r0, [sp, #4]
+ bl FUN_02029FC8
+ ldrb r1, [r5, #0xf]
+ add r6, r0, #0
+ ldr r0, [r5, #0x74]
+ lsl r4, r1, #1
+ add r1, #8
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0
+ add r4, #0x35
+ bl FUN_0202A578
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ beq _02243B1A
+ add r0, r6, #0
+ add r1, r4, #1
+ mov r2, #7
+ bl FUN_0202A11C
+ str r0, [sp]
+ b _02243B26
+_02243B1A:
+ add r0, r6, #0
+ add r1, r4, #1
+ mov r2, #7
+ bl FUN_0202A07C
+ str r0, [sp]
+_02243B26:
+ ldrb r1, [r5, #0xf]
+ ldr r0, [r5, #0x74]
+ mov r2, #1
+ add r1, #8
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0202A578
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0202A150
+ ldr r2, [sp]
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0202A0A8
+ add r0, r6, #0
+ mov r1, #0x1d
+ mov r2, #7
+ bl FUN_0202A11C
+ ldrb r1, [r5, #0xf]
+ ldr r0, [r5, #0x74]
+ mov r2, #3
+ bl FUN_0202A538
+ add r0, r6, #0
+ mov r1, #0xf
+ mov r2, #1
+ bl FUN_0202A11C
+ add r0, r6, #0
+ mov r1, #0xe
+ bl FUN_0202A170
+ add r0, r5, #0
+ bl MOD06_0224403C
+ ldr r3, [sp]
+ ldr r1, [sp, #4]
+ lsl r3, r3, #0x10
+ add r0, r5, #0
+ mov r2, #1
+ lsr r3, r3, #0x10
+ bl MOD06_02243984
+ ldrb r0, [r5, #0xf]
+ add r0, #0xfd
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bhi _02243BA2
+ ldr r0, [r5, #4]
+ bl FUN_02029578
+ add r7, #0x98
+ add r1, r0, #0
+ ldr r0, [r7]
+ mov r2, #4
+ bl FUN_02028AD4
+_02243BA2:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02243BA8
+MOD06_02243BA8: ; 0x02243BA8
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldrb r1, [r4, #0xf]
+ add r0, sp, #0
+ add r2, sp, #0
+ strb r1, [r0]
+ ldr r0, [r4, #0x70]
+ mov r1, #0
+ bl FUN_0202A2C4
+ ldrb r1, [r4, #0xc]
+ add r0, sp, #0
+ add r2, sp, #0
+ strb r1, [r0]
+ ldr r0, [r4, #0x70]
+ mov r1, #1
+ bl FUN_0202A2C4
+ add r2, r4, #0
+ ldr r0, [r4, #0x70]
+ mov r1, #5
+ add r2, #0x2a
+ bl FUN_0202A2C4
+ ldrh r1, [r4, #0x28]
+ ldrh r2, [r4, #0x24]
+ ldrh r3, [r4, #0x26]
+ lsl r1, r1, #0x18
+ ldr r0, [r4, #0x70]
+ lsr r1, r1, #0x18
+ bl FUN_0202A36C
+ add r2, r4, #0
+ ldr r0, [r4, #0x70]
+ mov r1, #8
+ add r2, #0x3e
+ bl FUN_0202A2C4
+ add r2, r4, #0
+ ldr r0, [r4, #0x70]
+ mov r1, #0xa
+ add r2, #8
+ bl FUN_0202A2C4
+ ldr r0, [r4, #0x70]
+ mov r1, #1
+ bl FUN_0202A3A0
+ ldrb r0, [r4, #0xf]
+ cmp r0, #2
+ bne _02243C4E
+ ldrb r0, [r4, #0x10]
+ add r2, sp, #0
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x1d
+ add r0, sp, #0
+ strb r1, [r0]
+ ldr r0, [r4, #0x70]
+ mov r1, #9
+ bl FUN_0202A2C4
+ ldrb r3, [r4, #0x10]
+ ldr r2, _02243C54 ; =0x000007E8
+ ldr r0, [r4, #0x70]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x1d
+ add r2, r4, r2
+ lsl r3, r3, #4
+ mov r1, #6
+ add r2, r2, r3
+ bl FUN_0202A2C4
+ ldr r2, _02243C58 ; =0x00000838
+ ldr r0, [r4, #0x70]
+ add r3, r4, r2
+ ldrb r2, [r4, #0x10]
+ mov r1, #7
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1d
+ add r2, r3, r2
+ bl FUN_0202A2C4
+_02243C4E:
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_02243C54: .word 0x000007E8
+_02243C58: .word 0x00000838
+
+ thumb_func_start MOD06_02243C5C
+MOD06_02243C5C: ; 0x02243C5C
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldrb r2, [r4, #0xf]
+ cmp r2, #5
+ bhi _02243D16
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02243C74: ; jump table
+ .short _02243D16 - _02243C74 - 2 ; case 0
+ .short _02243D16 - _02243C74 - 2 ; case 1
+ .short _02243C96 - _02243C74 - 2 ; case 2
+ .short _02243C96 - _02243C74 - 2 ; case 3
+ .short _02243C80 - _02243C74 - 2 ; case 4
+ .short _02243C80 - _02243C74 - 2 ; case 5
+_02243C80:
+ ldrb r2, [r4, #0xc]
+ add r0, r1, #0
+ add r1, r4, #0
+ sub r2, r2, #1
+ lsl r2, r2, #0x18
+ add r1, #0x78
+ lsr r2, r2, #0x18
+ bl MOD06_0224434C
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+_02243C96:
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ ldr r1, [r4, #4]
+ str r1, [sp, #0xc]
+ ldrb r2, [r4, #0xc]
+ add r1, r4, #0
+ ldrb r3, [r4, #0xe]
+ sub r2, r2, #1
+ lsl r2, r2, #2
+ add r2, r4, r2
+ ldrh r2, [r2, #0x3e]
+ add r1, #0x78
+ bl MOD06_02244A34
+ ldrb r3, [r4, #0xe]
+ mov r0, #0
+ cmp r3, #0
+ ble _02243CE8
+ add r1, r4, #0
+ add r1, #0xa8
+ add r2, sp, #0x14
+ add r5, r4, #0
+ add r6, sp, #0x10
+_02243CC8:
+ ldrh r3, [r1]
+ add r0, r0, #1
+ add r1, #0x38
+ lsl r3, r3, #0x15
+ lsr r3, r3, #0x15
+ strh r3, [r2]
+ add r3, r5, #0
+ add r3, #0xaa
+ ldrh r3, [r3]
+ add r2, r2, #2
+ add r5, #0x38
+ strh r3, [r6]
+ ldrb r3, [r4, #0xe]
+ add r6, r6, #2
+ cmp r0, r3
+ blt _02243CC8
+_02243CE8:
+ add r0, sp, #0x14
+ str r0, [sp]
+ add r0, sp, #0x10
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ mov r1, #0x62
+ str r0, [sp, #0xc]
+ ldrb r2, [r4, #0xc]
+ lsl r1, r1, #2
+ add r0, r4, #0
+ sub r2, r2, #1
+ lsl r2, r2, #1
+ add r2, r2, #1
+ lsl r2, r2, #1
+ add r2, r4, r2
+ ldrh r2, [r2, #0x3e]
+ add r1, r4, r1
+ bl MOD06_02244A34
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+_02243D16:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ add r1, r4, #0
+ str r0, [sp, #0xc]
+ ldrb r2, [r4, #0xc]
+ ldrb r3, [r4, #0xe]
+ add r0, r4, #0
+ sub r2, r2, #1
+ lsl r2, r2, #1
+ add r2, r4, r2
+ ldrh r2, [r2, #0x3e]
+ add r1, #0x78
+ bl MOD06_02244A34
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_02243D3C
+MOD06_02243D3C: ; 0x02243D3C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r0, _02243D98 ; =0x000007E8
+ mov r4, #0
+ add r6, r5, r0
+ mov r0, #0xa6
+ lsl r0, r0, #2
+ add r7, r5, r0
+ add r0, r5, #0
+ str r0, [sp, #0x10]
+ add r0, #0x2e
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ str r0, [sp, #0x14]
+ add r0, #0x36
+ str r0, [sp, #0x14]
+_02243D5E:
+ ldr r0, [sp, #0x10]
+ mov r2, #0x4b
+ str r0, [sp]
+ ldr r0, [sp, #0x14]
+ lsl r2, r2, #2
+ str r0, [sp, #4]
+ str r6, [sp, #8]
+ ldr r0, [r5, #4]
+ add r2, r4, r2
+ str r0, [sp, #0xc]
+ lsl r2, r2, #0x10
+ ldrb r3, [r5, #0xe]
+ add r0, r5, #0
+ add r1, r7, #0
+ lsr r2, r2, #0x10
+ bl MOD06_02244A34
+ add r2, r5, r4
+ ldr r1, _02243D9C ; =0x00000838
+ add r4, r4, #1
+ strb r0, [r2, r1]
+ mov r0, #0x11
+ lsl r0, r0, #4
+ add r6, #0x10
+ add r7, r7, r0
+ cmp r4, #5
+ blt _02243D5E
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02243D98: .word 0x000007E8
+_02243D9C: .word 0x00000838
+
+ thumb_func_start MOD06_02243DA0
+MOD06_02243DA0: ; 0x02243DA0
+ lsl r2, r1, #4
+ add r1, r1, r2
+ lsl r1, r1, #4
+ add r0, r0, r1
+ add r0, #0x7c
+ ldrh r0, [r0]
+ ldr r3, _02243DB4 ; =MOD06_022442C4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx r3
+ .align 2, 0
+_02243DB4: .word MOD06_022442C4
+
+ thumb_func_start MOD06_02243DB8
+MOD06_02243DB8: ; 0x02243DB8
+ ldr r3, _02243DBC ; =0x02046949
+ bx r3
+ .align 2, 0
+_02243DBC: .word 0x02046949
+
+ thumb_func_start MOD06_02243DC0
+MOD06_02243DC0: ; 0x02243DC0
+ ldrb r0, [r0, #0xf]
+ bx lr
+
+ thumb_func_start MOD06_02243DC4
+MOD06_02243DC4: ; 0x02243DC4
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1e
+ ldrb r3, [r0, #0x10]
+ mov r2, #6
+ lsr r1, r1, #0x1d
+ bic r3, r2
+ orr r1, r3
+ strb r1, [r0, #0x10]
+ bx lr
+
+ thumb_func_start MOD06_02243DD8
+MOD06_02243DD8: ; 0x02243DD8
+ ldrb r0, [r0, #0x10]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1e
+ bx lr
+
+ thumb_func_start MOD06_02243DE0
+MOD06_02243DE0: ; 0x02243DE0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #0xf]
+ cmp r1, #5
+ bne _02243DEE
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02243DEE:
+ cmp r1, #4
+ ldr r0, [r4, #0x74]
+ bne _02243E00
+ mov r1, #0
+ bl FUN_0202A444
+ ldr r1, _02243E2C ; =0x02250C5C
+ ldrb r5, [r1, r0]
+ b _02243E1E
+_02243E00:
+ mov r2, #0
+ bl FUN_0202A538
+ ldrb r1, [r4, #0x10]
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1e
+ beq _02243E12
+ mov r5, #0x14
+ b _02243E1E
+_02243E12:
+ cmp r0, #7
+ blo _02243E1A
+ mov r5, #7
+ b _02243E1E
+_02243E1A:
+ ldr r1, _02243E30 ; =0x02250C48
+ ldrb r5, [r1, r0]
+_02243E1E:
+ ldr r0, [r4, #0x74]
+ add r1, r5, #0
+ mov r2, #5
+ bl FUN_0202A3B4
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02243E2C: .word 0x02250C5C
+_02243E30: .word 0x02250C48
+
+ thumb_func_start MOD06_02243E34
+MOD06_02243E34: ; 0x02243E34
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ ldrb r1, [r4, #0xf]
+ bl MOD06_02243408
+ cmp r0, #0x32
+ bhs _02243E48
+ mov r0, #0
+ pop {r4, pc}
+_02243E48:
+ cmp r0, #0x64
+ ldr r0, [r4, #0x74]
+ blo _02243E5E
+ mov r1, #1
+ mov r2, #0
+ bl FUN_0202A578
+ cmp r0, #0
+ beq _02243E6E
+ mov r0, #0
+ pop {r4, pc}
+_02243E5E:
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_0202A578
+ cmp r0, #0
+ beq _02243E6E
+ mov r0, #0
+ pop {r4, pc}
+_02243E6E:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02243E74
+MOD06_02243E74: ; 0x02243E74
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r0, r1, #0
+ add r5, r2, #0
+ bl FUN_0202A8D8
+ add r4, r0, #0
+ cmp r5, #0
+ beq _02243E90
+ cmp r5, #1
+ beq _02243E98
+ cmp r5, #2
+ beq _02243ECC
+ b _02243F10
+_02243E90:
+ mov r1, #0
+ bl FUN_0202A444
+ pop {r4, r5, r6, pc}
+_02243E98:
+ mov r1, #4
+ mov r2, #2
+ bl FUN_0202A578
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0202A444
+ add r5, r0, #0
+ cmp r5, #0xa
+ bne _02243EB2
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_02243EB2:
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_0202A444
+ add r0, r5, #1
+ cmp r0, #5
+ blt _02243EC8
+ ldrb r1, [r6, #0x10]
+ mov r0, #0x10
+ orr r0, r1
+ strb r0, [r6, #0x10]
+_02243EC8:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02243ECC:
+ mov r1, #3
+ bl FUN_0202A40C
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0202A444
+ cmp r0, #1
+ bne _02243EE4
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_02243EE4:
+ sub r1, r0, #1
+ ldr r0, _02243F14 ; =0x02250C50
+ ldrb r0, [r0, r1]
+ cmp r5, r0
+ blo _02243F0C
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_0202A444
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_0202A40C
+ add r0, r4, #0
+ mov r1, #4
+ mov r2, #2
+ bl FUN_0202A578
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02243F0C:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_02243F10:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02243F14: .word 0x02250C50
+
+ thumb_func_start MOD06_02243F18
+MOD06_02243F18: ; 0x02243F18
+ push {r3, lr}
+ add r2, r0, #0
+ ldrb r0, [r2, #0xf]
+ cmp r0, #0
+ beq _02243F26
+ mov r0, #0
+ pop {r3, pc}
+_02243F26:
+ ldrb r0, [r2, #0x10]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1e
+ cmp r0, #1
+ beq _02243F36
+ cmp r0, #2
+ beq _02243F40
+ b _02243F4A
+_02243F36:
+ add r0, r1, #0
+ mov r1, #0x1a
+ bl MOD06_02243FDC
+ pop {r3, pc}
+_02243F40:
+ add r0, r1, #0
+ mov r1, #0x1b
+ bl MOD06_02243FDC
+ pop {r3, pc}
+_02243F4A:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02243F50
+MOD06_02243F50: ; 0x02243F50
+ push {r4, lr}
+ add r2, r0, #0
+ ldrb r0, [r2, #0xf]
+ cmp r0, #5
+ bne _02243F5E
+ mov r0, #0
+ pop {r4, pc}
+_02243F5E:
+ ldrb r4, [r2, #0x10]
+ lsl r4, r4, #0x1b
+ lsr r4, r4, #0x1f
+ bne _02243F6A
+ mov r0, #0
+ pop {r4, pc}
+_02243F6A:
+ cmp r0, #4
+ bhi _02243F92
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02243F7A: ; jump table
+ .short _02243F92 - _02243F7A - 2 ; case 0
+ .short _02243F84 - _02243F7A - 2 ; case 1
+ .short _02243F88 - _02243F7A - 2 ; case 2
+ .short _02243F8C - _02243F7A - 2 ; case 3
+ .short _02243F90 - _02243F7A - 2 ; case 4
+_02243F84:
+ mov r3, #0x1c
+ b _02243F92
+_02243F88:
+ mov r3, #0x1d
+ b _02243F92
+_02243F8C:
+ mov r3, #0x1e
+ b _02243F92
+_02243F90:
+ mov r3, #0x1f
+_02243F92:
+ add r0, r1, #0
+ add r1, r3, #0
+ bl MOD06_02243FDC
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02243F9C
+MOD06_02243F9C: ; 0x02243F9C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ ldrb r1, [r5, #0xf]
+ ldr r0, [r5, #0x74]
+ mov r2, #0
+ add r1, #8
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0202A578
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bne _02243FC0
+ add r0, r4, #0
+ bl FUN_020600A0
+ b _02243FC6
+_02243FC0:
+ add r0, r4, #0
+ bl FUN_020600DC
+_02243FC6:
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r1, _02243FD8 ; =0x0000FFFF
+ bl _u32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_02243FD8: .word 0x0000FFFF
+
+ thumb_func_start MOD06_02243FDC
+MOD06_02243FDC: ; 0x02243FDC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ add r5, r2, #0
+ mov r2, #1
+ add r1, sp, #8
+ strb r2, [r1]
+ bl FUN_0206BB1C
+ str r0, [sp]
+ mov r7, #0
+ ldrb r0, [r5, #0xe]
+ add r4, r7, #0
+ cmp r0, #0
+ ble _0224402C
+_02243FFA:
+ add r1, r5, r4
+ add r1, #0x2a
+ ldrb r1, [r1]
+ ldr r0, [sp]
+ bl FUN_0206B9B0
+ add r1, r6, #0
+ mov r2, #0
+ str r0, [sp, #4]
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _02244024
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ add r2, sp, #8
+ bl FUN_02067830
+ add r0, r7, #1
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+_02244024:
+ ldrb r0, [r5, #0xe]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _02243FFA
+_0224402C:
+ cmp r7, #0
+ bne _02244036
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02244036:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0224403C
+MOD06_0224403C: ; 0x0224403C
+ ldrb r1, [r0, #0xf]
+ cmp r1, #5
+ beq _0224404A
+ cmp r1, #0
+ beq _0224404A
+ cmp r1, #4
+ bne _0224404E
+_0224404A:
+ mov r0, #0
+ bx lr
+_0224404E:
+ ldrh r2, [r0, #0x1a]
+ ldrb r1, [r0, #0xd]
+ add r1, r2, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ cmp r1, #0x32
+ bhs _02244060
+ mov r0, #0
+ bx lr
+_02244060:
+ ldrb r2, [r0, #0x10]
+ mov r1, #0x10
+ orr r1, r2
+ strb r1, [r0, #0x10]
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD06_0224406C
+MOD06_0224406C: ; 0x0224406C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, [sp]
+ lsl r0, r0, #0x10
+ ldrh r1, [r1]
+ ldr r2, _02244188 ; =0xFFFFF800
+ lsr r3, r0, #0x10
+ lsr r0, r2, #0x15
+ and r1, r2
+ and r0, r3
+ orr r1, r0
+ ldr r0, [sp]
+ mov r2, #0
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x70
+ bl FUN_020671BC
+ ldr r1, [sp]
+ lsl r0, r0, #0x10
+ ldrh r2, [r1]
+ ldr r1, _0224418C ; =0xFFFF07FF
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1b
+ and r1, r2
+ lsr r0, r0, #0x10
+ orr r1, r0
+ ldr r0, [sp]
+ mov r2, #0
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #6
+ bl FUN_020671BC
+ ldr r1, [sp]
+ mov r4, #0
+ strh r0, [r1, #2]
+ add r0, r1, #0
+ str r0, [sp, #4]
+ add r0, #0x1e
+ add r6, r1, #0
+ add r7, r4, #0
+ str r0, [sp, #4]
+_022440D0:
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x36
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, r4, #0
+ strh r0, [r6, #4]
+ add r0, r5, #0
+ add r1, #0x3e
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, [sp, #4]
+ lsl r0, r7
+ ldrb r1, [r1]
+ add r4, r4, #1
+ add r6, r6, #2
+ orr r1, r0
+ ldr r0, [sp, #4]
+ add r7, r7, #2
+ strb r1, [r0]
+ cmp r4, #4
+ blt _022440D0
+ add r0, r5, #0
+ mov r1, #0xc
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, [sp]
+ mov r2, #0
+ strb r0, [r1, #0x1f]
+ add r0, r5, #0
+ mov r1, #7
+ bl FUN_020671BC
+ ldr r1, [sp]
+ str r0, [r1, #0xc]
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ bl FUN_020671BC
+ ldr r1, [sp]
+ mov r2, #0
+ str r0, [r1, #0x10]
+ add r0, r5, #0
+ mov r1, #0xae
+ bl FUN_020671BC
+ ldr r1, [sp]
+ mov r4, #0
+ str r0, [r1, #0x14]
+ add r6, r4, #0
+_0224413C:
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0xd
+ add r2, r6, #0
+ bl FUN_020671BC
+ ldr r1, [sp]
+ add r1, r1, r4
+ add r4, r4, #1
+ strb r0, [r1, #0x18]
+ cmp r4, #6
+ blt _0224413C
+ add r0, r5, #0
+ mov r1, #0xa
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, [sp]
+ mov r2, #0
+ add r1, #0x20
+ strb r0, [r1]
+ add r0, r5, #0
+ mov r1, #9
+ bl FUN_020671BC
+ ldr r1, [sp]
+ ldr r2, [sp]
+ add r1, #0x21
+ strb r0, [r1]
+ add r2, #0x22
+ add r0, r5, #0
+ mov r1, #0x74
+ str r2, [sp]
+ bl FUN_020671BC
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02244188: .word 0xFFFFF800
+_0224418C: .word 0xFFFF07FF
+
+ thumb_func_start MOD06_02244190
+MOD06_02244190: ; 0x02244190
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ add r4, r1, #0
+ mov r1, #0xa8
+ str r2, [sp]
+ bl FUN_020169D8
+ mov r1, #0
+ mov r2, #0xa8
+ str r0, [sp, #4]
+ bl MI_CpuFill8
+ add r0, r4, #0
+ bl FUN_0206BB1C
+ ldr r5, [sp, #4]
+ add r7, r0, #0
+ mov r4, #0
+_022441B8:
+ add r1, r6, r4
+ add r1, #0x2a
+ ldrb r1, [r1]
+ add r0, r7, #0
+ bl FUN_0206B9B0
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD06_0224406C
+ add r4, r4, #1
+ add r5, #0x38
+ cmp r4, #3
+ blt _022441B8
+ ldr r0, [r6, #0x74]
+ ldr r1, [sp]
+ ldr r2, [sp, #4]
+ bl FUN_0202A474
+ ldr r0, [sp, #4]
+ mov r1, #0
+ mov r2, #0xa8
+ bl MI_CpuFill8
+ ldr r0, [sp, #4]
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022441F4
+MOD06_022441F4: ; 0x022441F4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl FUN_02060064
+ ldr r1, _0224420C ; =0x0000FFFF
+ str r0, [r4, #8]
+ bl _u32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_0224420C: .word 0x0000FFFF
+
+ thumb_func_start MOD06_02244210
+MOD06_02244210: ; 0x02244210
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r4, r0, #0
+ add r7, r1, #0
+ str r2, [sp, #8]
+ mov r0, #0xe
+ mov r1, #4
+ str r3, [sp, #0xc]
+ ldr r5, [sp, #0x38]
+ bl FUN_020219F4
+ add r6, r0, #0
+ mov r0, #2
+ mov r1, #4
+ bl FUN_020219F4
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ bl FUN_02024DA0
+ str r0, [sp, #0x18]
+ ldr r2, _022442C0 ; =0x0000016A
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #4
+ bl FUN_0200A86C
+ str r0, [sp, #0x10]
+ mov r0, #0x13
+ mov r1, #0xe
+ mov r2, #4
+ bl FUN_0200AA90
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #1
+ add r2, r7, #0
+ str r0, [sp, #0x14]
+ str r3, [sp, #4]
+ bl FUN_0200AD38
+ mov r4, #0
+_02244264:
+ add r0, r4, #0
+ bl FUN_0206A984
+ add r7, r0, #0
+ ldr r0, [sp, #0x18]
+ add r1, r7, #0
+ bl FUN_020245F0
+ cmp r0, #0
+ beq _0224429E
+ ldr r0, [sp, #0x10]
+ add r1, r7, #0
+ add r2, r6, #0
+ bl FUN_0200A8E0
+ ldr r0, [sp, #0xc]
+ add r2, r6, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldrb r1, [r5]
+ ldr r0, [sp, #0x14]
+ ldr r3, [sp, #8]
+ add r1, r1, #1
+ bl FUN_0200ABB4
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+_0224429E:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x12
+ blo _02244264
+ ldr r0, [sp, #0x10]
+ bl FUN_0200A8B8
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x14]
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022442C0: .word 0x0000016A
+
+ thumb_func_start MOD06_022442C4
+MOD06_022442C4: ; 0x022442C4
+ ldr r3, _022442E4 ; =0x02250CDA
+ mov r2, #0
+_022442C8:
+ ldrh r1, [r3]
+ cmp r0, r1
+ bne _022442D6
+ ldr r0, _022442E8 ; =0x02250CDC
+ lsl r1, r2, #2
+ ldrh r0, [r0, r1]
+ bx lr
+_022442D6:
+ add r2, r2, #1
+ add r3, r3, #4
+ cmp r2, #0x3f
+ blo _022442C8
+ mov r0, #3
+ bx lr
+ nop
+_022442E4: .word 0x02250CDA
+_022442E8: .word 0x02250CDC
+
+ thumb_func_start MOD06_022442EC
+MOD06_022442EC: ; 0x022442EC
+ push {r3, r4, r5, r6, r7, lr}
+ mov r2, #0x11
+ add r4, r1, #0
+ mov r1, #0
+ lsl r2, r2, #4
+ add r5, r0, #0
+ bl MI_CpuFill8
+ mov r0, #6
+ mul r0, r4
+ ldr r1, _02244340 ; =0x02250CB0
+ str r0, [sp]
+ add r6, r1, r0
+ ldr r1, _02244344 ; =0x02250DD8
+ mov r2, #0x30
+ add r0, r4, #0
+ mul r0, r2
+ add r0, r1, r0
+ add r1, r5, #0
+ ldr r7, _02244348 ; =0x02250F28
+ bl MI_CpuCopy8
+ ldr r1, _02244340 ; =0x02250CB0
+ ldr r0, [sp]
+ mov r4, #0
+ ldrh r0, [r1, r0]
+ strh r0, [r5, #6]
+ add r5, #0x30
+_02244324:
+ add r0, r6, r4
+ ldrb r1, [r0, #2]
+ mov r0, #0x38
+ mov r2, #0x38
+ mul r0, r1
+ add r0, r7, r0
+ add r1, r5, #0
+ bl MI_CpuCopy8
+ add r4, r4, #1
+ add r5, #0x38
+ cmp r4, #4
+ blt _02244324
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02244340: .word 0x02250CB0
+_02244344: .word 0x02250DD8
+_02244348: .word 0x02250F28
+
+ thumb_func_start MOD06_0224434C
+MOD06_0224434C: ; 0x0224434C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ mov r2, #0x11
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ lsl r2, r2, #4
+ bl MI_CpuFill8
+ add r0, r6, #0
+ bl FUN_0202A8E4
+ add r6, r0, #0
+ bl FUN_0202A744
+ cmp r0, #0
+ bne _0224437A
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_022442EC
+ pop {r4, r5, r6, pc}
+_0224437A:
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl FUN_0202A798
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02244388
+MOD06_02244388: ; 0x02244388
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_02066978
+ ldr r0, [r6, #0x10]
+ ldr r3, _02244520 ; =0x3FFFFFFF
+ str r0, [sp]
+ ldrh r1, [r6]
+ ldr r4, [r6, #0x14]
+ add r0, r5, #0
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x15
+ mov r2, #0x32
+ and r3, r4
+ bl FUN_02066EA4
+ ldrh r0, [r6]
+ add r2, sp, #8
+ add r2, #1
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x1b
+ add r0, sp, #8
+ strb r1, [r0, #1]
+ add r0, r5, #0
+ mov r1, #0x70
+ bl FUN_02067830
+ add r0, r5, #0
+ mov r1, #6
+ add r2, r6, #2
+ bl FUN_02067830
+ mov r4, #0
+ str r6, [sp, #4]
+ add r7, r4, #0
+_022443D4:
+ ldr r0, [sp, #4]
+ add r2, sp, #8
+ ldrh r1, [r0, #4]
+ add r0, sp, #8
+ add r2, #2
+ strh r1, [r0, #2]
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x36
+ bl FUN_02067830
+ ldrb r0, [r6, #0x1e]
+ add r2, sp, #8
+ add r2, #1
+ add r1, r0, #0
+ asr r1, r7
+ mov r0, #3
+ and r1, r0
+ add r0, sp, #8
+ strb r1, [r0, #1]
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x3e
+ bl FUN_02067830
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x42
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, sp, #8
+ strb r0, [r1]
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x3a
+ add r2, sp, #8
+ bl FUN_02067830
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ add r0, r0, #2
+ add r7, r7, #2
+ str r0, [sp, #4]
+ cmp r4, #4
+ blt _022443D4
+ ldr r0, [r6, #0xc]
+ mov r1, #7
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r2, sp, #0xc
+ bl FUN_02067830
+ add r2, sp, #8
+ ldrb r1, [r6, #0x18]
+ add r0, sp, #8
+ add r2, #1
+ strb r1, [r0, #1]
+ add r0, r5, #0
+ mov r1, #0xd
+ bl FUN_02067830
+ add r2, sp, #8
+ ldrb r1, [r6, #0x19]
+ add r0, sp, #8
+ add r2, #1
+ strb r1, [r0, #1]
+ add r0, r5, #0
+ mov r1, #0xe
+ bl FUN_02067830
+ add r2, sp, #8
+ ldrb r1, [r6, #0x1a]
+ add r0, sp, #8
+ add r2, #1
+ strb r1, [r0, #1]
+ add r0, r5, #0
+ mov r1, #0xf
+ bl FUN_02067830
+ add r2, sp, #8
+ ldrb r1, [r6, #0x1b]
+ add r0, sp, #8
+ add r2, #1
+ strb r1, [r0, #1]
+ add r0, r5, #0
+ mov r1, #0x10
+ bl FUN_02067830
+ add r2, sp, #8
+ ldrb r1, [r6, #0x1c]
+ add r0, sp, #8
+ add r2, #1
+ strb r1, [r0, #1]
+ add r0, r5, #0
+ mov r1, #0x11
+ bl FUN_02067830
+ add r2, sp, #8
+ ldrb r1, [r6, #0x1d]
+ add r0, sp, #8
+ add r2, #1
+ strb r1, [r0, #1]
+ add r0, r5, #0
+ mov r1, #0x12
+ bl FUN_02067830
+ add r2, r6, #0
+ add r0, r5, #0
+ mov r1, #0xa
+ add r2, #0x20
+ bl FUN_02067830
+ add r2, r6, #0
+ add r0, r5, #0
+ mov r1, #9
+ add r2, #0x21
+ bl FUN_02067830
+ ldr r0, [r6, #0x14]
+ lsl r0, r0, #1
+ lsr r0, r0, #0x1f
+ beq _022444FC
+ ldr r2, _02244524 ; =0x0000016A
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #4
+ bl FUN_0200A86C
+ ldrh r1, [r6]
+ add r4, r0, #0
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x15
+ bl FUN_0200A914
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #0x76
+ add r2, r7, #0
+ bl FUN_02067830
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_0200A8B8
+ b _02244508
+_022444FC:
+ add r2, r6, #0
+ add r0, r5, #0
+ mov r1, #0x74
+ add r2, #0x22
+ bl FUN_02067830
+_02244508:
+ add r6, #0x1f
+ add r0, r5, #0
+ mov r1, #0xc
+ add r2, r6, #0
+ bl FUN_02067830
+ add r0, r5, #0
+ bl FUN_02066ED8
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02244520: .word 0x3FFFFFFF
+_02244524: .word 0x0000016A
+
+ thumb_func_start MOD06_02244528
+MOD06_02244528: ; 0x02244528
+ cmp r0, #4
+ bhi _02244552
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02244538: ; jump table
+ .short _02244542 - _02244538 - 2 ; case 0
+ .short _02244546 - _02244538 - 2 ; case 1
+ .short _0224454A - _02244538 - 2 ; case 2
+ .short _0224454E - _02244538 - 2 ; case 3
+ .short _02244542 - _02244538 - 2 ; case 4
+_02244542:
+ mov r0, #0x81
+ bx lr
+_02244546:
+ mov r0, #0x83
+ bx lr
+_0224454A:
+ mov r0, #0xcb
+ bx lr
+_0224454E:
+ mov r0, #0x8f
+ bx lr
+_02244552:
+ mov r0, #0x81
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_02244558
+MOD06_02244558: ; 0x02244558
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldrb r0, [r5, #0xf]
+ add r4, r1, #0
+ bl MOD06_02244528
+ add r1, r0, #0
+ ldr r0, [r5, #4]
+ bl FUN_020476CC
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl FUN_02047A78
+ mov r0, #0x15
+ mov r1, #6
+ lsl r0, r0, #4
+ str r1, [r7, r0]
+ mov r1, #9
+ add r0, r0, #4
+ str r1, [r7, r0]
+ ldr r0, [r5, #4]
+ bl FUN_020669C0
+ add r4, r0, #0
+ ldrb r1, [r5, #0xe]
+ ldr r0, [r7, #4]
+ bl FUN_0206B8CC
+ ldrb r0, [r5, #0xe]
+ mov r6, #0
+ cmp r0, #0
+ ble _022445FA
+_022445A6:
+ add r1, r5, r6
+ add r1, #0x2a
+ ldrb r1, [r1]
+ ldr r0, [sp, #4]
+ bl FUN_0206B9B0
+ add r1, r4, #0
+ bl FUN_02069B88
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0x32
+ bls _022445E8
+ add r0, r4, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ mov r1, #0x32
+ bl FUN_02068758
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #8
+ add r2, sp, #8
+ bl FUN_02067830
+ add r0, r4, #0
+ bl FUN_02066ED8
+_022445E8:
+ add r0, r7, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_020479FC
+ ldrb r0, [r5, #0xe]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _022445A6
+_022445FA:
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_020480E4
+ ldr r0, [r5, #4]
+ add r1, r5, #0
+ str r0, [sp]
+ ldrb r2, [r5, #0xe]
+ add r0, r7, #0
+ add r1, #0x78
+ mov r3, #1
+ bl MOD06_02244D04
+ ldrb r0, [r5, #0xf]
+ cmp r0, #2
+ beq _02244624
+ cmp r0, #3
+ beq _02244646
+ b _0224465A
+_02244624:
+ ldr r0, [r5, #4]
+ mov r1, #0xa6
+ str r0, [sp]
+ ldrb r2, [r5, #0x10]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ lsl r2, r2, #0x18
+ lsr r3, r2, #0x1d
+ lsl r2, r3, #4
+ add r2, r3, r2
+ lsl r2, r2, #4
+ add r1, r1, r2
+ ldrb r2, [r5, #0xe]
+ add r0, r7, #0
+ mov r3, #2
+ bl MOD06_02244D04
+_02244646:
+ ldr r0, [r5, #4]
+ mov r1, #0x62
+ str r0, [sp]
+ ldrb r2, [r5, #0xe]
+ lsl r1, r1, #2
+ add r0, r7, #0
+ add r1, r5, r1
+ mov r3, #3
+ bl MOD06_02244D04
+_0224465A:
+ add r0, r7, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_02244660
+MOD06_02244660: ; 0x02244660
+ push {r3, r4}
+ add r0, #0xa8
+ ldr r3, [r0]
+ ldrh r0, [r1]
+ mov r2, #0
+ strb r0, [r3, #0x12]
+ ldrh r0, [r1, #2]
+ strh r0, [r3, #0x16]
+ ldrh r0, [r1, #4]
+ strh r0, [r3, #0x18]
+ ldrh r0, [r1, #6]
+ mov r1, #0xe0
+ strh r0, [r3, #0x14]
+ ldrb r0, [r3, #0x10]
+ bic r0, r1
+ ldrb r1, [r3, #0x12]
+ add r1, r1, #5
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x18
+ orr r0, r1
+ strb r0, [r3, #0x10]
+ ldrh r4, [r3, #0x16]
+ ldrh r1, [r3, #0x2e]
+ cmp r1, r4
+ beq _0224469C
+ ldrh r0, [r3, #0x18]
+ cmp r1, r0
+ bne _022446A2
+_0224469C:
+ add r0, r2, #1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+_022446A2:
+ ldrh r1, [r3, #0x30]
+ cmp r1, r4
+ beq _022446AE
+ ldrh r0, [r3, #0x18]
+ cmp r1, r0
+ bne _022446B4
+_022446AE:
+ add r0, r2, #2
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+_022446B4:
+ add r0, r2, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_022446BC
+MOD06_022446BC: ; 0x022446BC
+ push {r3, r4, r5, lr}
+ add r0, #0xa8
+ add r5, r1, #0
+ ldr r4, [r0]
+ bl FUN_02031190
+ cmp r0, #0
+ bne _022446D0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_022446D0:
+ add r4, #0x3e
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1c
+ bl MI_CpuCopy8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_022446E0
+MOD06_022446E0: ; 0x022446E0
+ add r0, #0xa8
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x10]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ bne _022446F2
+ ldrh r0, [r1]
+ cmp r0, #0
+ beq _022446F6
+_022446F2:
+ mov r0, #1
+ bx lr
+_022446F6:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_022446FC
+MOD06_022446FC: ; 0x022446FC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_020238F4
+ bl FUN_020239CC
+ ldr r1, _02244750 ; =0x0000083E
+ strh r0, [r6, r1]
+ add r0, r4, #0
+ bl FUN_0206BB1C
+ add r7, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_0224471C:
+ add r1, r6, r4
+ add r1, #0x2a
+ ldrb r1, [r1]
+ add r0, r7, #0
+ bl FUN_0206B9B0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ mov r1, #0x21
+ lsl r1, r1, #6
+ strh r0, [r5, r1]
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #2
+ blt _0224471C
+ ldr r0, [r6, #0x74]
+ mov r1, #3
+ mov r2, #0
+ bl FUN_0202A538
+ ldr r1, _02244754 ; =0x00000844
+ strh r0, [r6, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02244750: .word 0x0000083E
+_02244754: .word 0x00000844
+
+ thumb_func_start MOD06_02244758
+MOD06_02244758: ; 0x02244758
+ ldr r1, _02244768 ; =0x0000083E
+ add r2, r0, #0
+ add r1, r2, r1
+ ldr r3, _0224476C ; =0x020CE3E0
+ add r0, #0x3e
+ mov r2, #0x1c
+ bx r3
+ nop
+_02244768: .word 0x0000083E
+_0224476C: .word 0x020CE3E0
+
+ thumb_func_start MOD06_02244770
+MOD06_02244770: ; 0x02244770
+ ldrb r3, [r0, #0x10]
+ mov r2, #8
+ bic r3, r2
+ lsl r2, r1, #0x18
+ lsr r2, r2, #0x18
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1c
+ orr r2, r3
+ strb r2, [r0, #0x10]
+ ldr r2, _02244788 ; =0x0000083E
+ strh r1, [r0, r2]
+ bx lr
+ .align 2, 0
+_02244788: .word 0x0000083E
+
+ thumb_func_start MOD06_0224478C
+MOD06_0224478C: ; 0x0224478C
+ push {r3, r4, r5, lr}
+ cmp r3, #0
+ bne _022447AA
+ cmp r1, #2
+ bne _0224479E
+ cmp r2, #6
+ bne _0224479E
+ ldr r0, _02244808 ; =0x00000131
+ pop {r3, r4, r5, pc}
+_0224479E:
+ cmp r1, #6
+ bne _022447AA
+ cmp r2, #6
+ bne _022447AA
+ ldr r0, _0224480C ; =0x00000132
+ pop {r3, r4, r5, pc}
+_022447AA:
+ cmp r1, #7
+ bhs _022447F6
+ cmp r2, #6
+ bne _022447D4
+ lsl r5, r1, #2
+ ldr r1, _02244810 ; =0x02250C90
+ ldrh r4, [r1, r5]
+ bl MOD06_022441F4
+ ldr r1, _02244814 ; =0x02250C92
+ ldrh r1, [r1, r5]
+ sub r1, r1, r4
+ add r1, r1, #1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl _s32_div_f
+ add r0, r4, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r3, r4, r5, pc}
+_022447D4:
+ lsl r4, r1, #2
+ ldr r1, _02244818 ; =0x02250C70
+ ldrh r5, [r1, r4]
+ bl MOD06_022441F4
+ ldr r1, _0224481C ; =0x02250C72
+ ldrh r1, [r1, r4]
+ sub r1, r1, r5
+ add r1, r1, #1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl _s32_div_f
+ add r0, r5, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r3, r4, r5, pc}
+_022447F6:
+ bl MOD06_022441F4
+ mov r1, #0x64
+ bl _s32_div_f
+ add r1, #0xc8
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02244808: .word 0x00000131
+_0224480C: .word 0x00000132
+_02244810: .word 0x02250C90
+_02244814: .word 0x02250C92
+_02244818: .word 0x02250C70
+_0224481C: .word 0x02250C72
+
+ thumb_func_start MOD06_02244820
+MOD06_02244820: ; 0x02244820
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r2, #0
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #1
+ mov r1, #0x1a
+ mov r2, #0x10
+ add r3, r6, #0
+ bl FUN_0200A86C
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD06_02244CE8
+ add r6, r0, #0
+ ldr r0, _02244874 ; =0x0000FFFF
+ str r4, [r5]
+ strh r0, [r5, #0x18]
+ lsl r0, r4, #1
+ add r0, r4, r0
+ strh r0, [r5, #0x1a]
+ ldrh r0, [r6]
+ add r1, r4, #0
+ strh r0, [r5, #4]
+ add r0, r7, #0
+ bl FUN_0200A914
+ add r5, #8
+ add r4, r0, #0
+ add r1, r5, #0
+ mov r2, #8
+ bl FUN_02021EF0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_0200A8B8
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02244874: .word 0x0000FFFF
+
+ thumb_func_start MOD06_02244878
+MOD06_02244878: ; 0x02244878
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ add r4, r0, #0
+ add r6, r2, #0
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #0x38
+ str r3, [sp]
+ bl MI_CpuFill8
+ add r0, sp, #8
+ add r1, r6, #0
+ bl MOD06_02244CF8
+ ldrh r0, [r5]
+ ldr r3, _02244A10 ; =0xFFFFF800
+ add r2, r0, #0
+ add r0, sp, #8
+ and r2, r3
+ ldrh r1, [r0]
+ lsr r3, r3, #0x15
+ and r1, r3
+ orr r1, r2
+ strh r1, [r5]
+ ldr r1, [sp, #0x3c]
+ cmp r1, #0
+ beq _022448BC
+ add r0, sp, #0x20
+ ldrb r0, [r0, #0x18]
+ lsl r1, r0, #1
+ ldr r0, _02244A14 ; =0x02250C68
+ ldrh r0, [r0, r1]
+ b _022448BE
+_022448BC:
+ ldrh r0, [r0, #0xc]
+_022448BE:
+ strh r0, [r5, #2]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0
+ add r1, sp, #8
+ add r2, r5, #0
+ add r6, r0, #0
+_022448CC:
+ ldrh r3, [r1, #2]
+ strh r3, [r2, #4]
+ ldrh r3, [r1, #2]
+ cmp r3, #0xda
+ bne _022448D8
+ str r6, [sp, #4]
+_022448D8:
+ add r0, r0, #1
+ add r1, r1, #2
+ add r2, r2, #2
+ cmp r0, #4
+ blt _022448CC
+ ldr r0, [sp]
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #0x30]
+ cmp r0, #0
+ bne _0224491E
+_022448EC:
+ add r0, r4, #0
+ bl MOD06_022441F4
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD06_022441F4
+ lsl r0, r0, #0x10
+ add r7, r6, #0
+ orr r7, r0
+ add r0, r7, #0
+ bl FUN_02068884
+ add r1, sp, #8
+ ldrb r1, [r1, #0xb]
+ cmp r1, r0
+ beq _0224491A
+ ldr r0, [sp]
+ add r1, r7, #0
+ bl FUN_02068AAC
+ cmp r0, #1
+ beq _022448EC
+_0224491A:
+ str r7, [r5, #0x10]
+ b _02244920
+_0224491E:
+ str r0, [r5, #0x10]
+_02244920:
+ add r0, sp, #0x20
+ ldrb r1, [r0, #0x14]
+ ldr r2, [r5, #0x14]
+ mov r0, #0x1f
+ bic r2, r0
+ mov r0, #0x1f
+ and r0, r1
+ orr r2, r0
+ ldr r0, _02244A18 ; =0xFFFFFC1F
+ mov r6, #0
+ and r2, r0
+ lsl r0, r1, #0x1b
+ lsr r1, r0, #0x16
+ orr r2, r1
+ ldr r1, _02244A1C ; =0xFFFF83FF
+ add r4, r6, #0
+ and r2, r1
+ lsr r1, r0, #0x11
+ orr r2, r1
+ ldr r1, _02244A20 ; =0xFFF07FFF
+ and r2, r1
+ lsr r1, r0, #0xc
+ orr r2, r1
+ ldr r1, _02244A24 ; =0xFE0FFFFF
+ and r2, r1
+ lsr r1, r0, #7
+ orr r2, r1
+ ldr r1, _02244A28 ; =0xC1FFFFFF
+ lsr r0, r0, #2
+ and r1, r2
+ orr r0, r1
+ str r0, [r5, #0x14]
+_02244960:
+ add r0, r4, #0
+ bl FUN_0206A92C
+ add r1, sp, #8
+ ldrb r1, [r1, #0xa]
+ tst r0, r1
+ beq _02244970
+ add r6, r6, #1
+_02244970:
+ add r4, r4, #1
+ cmp r4, #6
+ blt _02244960
+ ldr r0, _02244A2C ; =0x000001FE
+ add r1, r6, #0
+ bl _s32_div_f
+ cmp r0, #0xff
+ ble _02244984
+ mov r0, #0xff
+_02244984:
+ lsl r0, r0, #0x18
+ mov r4, #0
+ lsr r6, r0, #0x18
+_0224498A:
+ add r0, r4, #0
+ bl FUN_0206A92C
+ add r1, sp, #8
+ ldrb r1, [r1, #0xa]
+ tst r0, r1
+ beq _0224499C
+ add r0, r5, r4
+ strb r6, [r0, #0x18]
+_0224499C:
+ add r4, r4, #1
+ cmp r4, #6
+ blt _0224498A
+ mov r0, #0
+ strb r0, [r5, #0x1e]
+ ldr r0, _02244A30 ; =0x020ECAC4
+ mov r1, #0x19
+ ldrb r0, [r0]
+ strb r0, [r5, #0x1f]
+ ldrh r0, [r5]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x15
+ bl FUN_02068678
+ cmp r0, #0
+ beq _022449E0
+ ldr r2, [r5, #0x10]
+ mov r1, #1
+ tst r1, r2
+ beq _022449CC
+ add r1, r5, #0
+ add r1, #0x20
+ strb r0, [r1]
+ b _022449F2
+_022449CC:
+ ldrh r0, [r5]
+ mov r1, #0x18
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x15
+ bl FUN_02068678
+ add r1, r5, #0
+ add r1, #0x20
+ strb r0, [r1]
+ b _022449F2
+_022449E0:
+ ldrh r0, [r5]
+ mov r1, #0x18
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x15
+ bl FUN_02068678
+ add r1, r5, #0
+ add r1, #0x20
+ strb r0, [r1]
+_022449F2:
+ add r1, r5, #0
+ ldr r0, [sp, #4]
+ add r1, #0x21
+ strb r0, [r1]
+ ldrh r0, [r5]
+ add r5, #0x22
+ ldr r1, [sp, #0x40]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x15
+ add r2, r5, #0
+ bl FUN_0200A99C
+ add r0, r7, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02244A10: .word 0xFFFFF800
+_02244A14: .word 0x02250C68
+_02244A18: .word 0xFFFFFC1F
+_02244A1C: .word 0xFFFF83FF
+_02244A20: .word 0xFFF07FFF
+_02244A24: .word 0xFE0FFFFF
+_02244A28: .word 0xC1FFFFFF
+_02244A2C: .word 0x000001FE
+_02244A30: .word 0x020ECAC4
+
+ thumb_func_start MOD06_02244A34
+MOD06_02244A34: ; 0x02244A34
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r2, #0
+ add r5, r1, #0
+ str r0, [sp, #0x14]
+ ldr r2, [sp, #0x3c]
+ add r6, r3, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02244820
+ add r7, r0, #0
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #0x30]
+ add r5, #0x30
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x34]
+ add r1, r7, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x38]
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x3c]
+ add r3, r5, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ bl MOD06_02244AEC
+ add r4, r0, #0
+ add r0, r7, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02244A80
+MOD06_02244A80: ; 0x02244A80
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x38]
+ add r5, r1, #0
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x3c]
+ add r4, r2, #0
+ str r0, [sp, #0x3c]
+ ldr r2, [sp, #0x3c]
+ add r0, r5, #0
+ add r1, r4, #0
+ str r3, [sp, #0x18]
+ bl MOD06_02244820
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ bl MOD06_02244CAC
+ ldr r6, [sp, #0x38]
+ str r0, [sp, #0x20]
+ mov r7, #0
+ add r4, r6, #0
+ add r5, #0x30
+_02244AB0:
+ ldr r0, [r6, #8]
+ ldr r3, [sp, #0x38]
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ add r1, r5, #0
+ str r0, [sp, #4]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x18]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x3c]
+ str r0, [sp, #0x10]
+ ldrh r2, [r4, #4]
+ ldr r0, [sp, #0x14]
+ ldr r3, [r3]
+ bl MOD06_02244878
+ add r7, r7, #1
+ add r6, r6, #4
+ add r4, r4, #2
+ add r5, #0x38
+ cmp r7, #2
+ blt _02244AB0
+ ldr r0, [sp, #0x1c]
+ bl FUN_02016A18
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02244AEC
+MOD06_02244AEC: ; 0x02244AEC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x7c
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x94]
+ str r2, [sp, #0x1c]
+ str r0, [sp, #0x94]
+ ldr r0, [sp, #0x98]
+ str r1, [sp, #0x18]
+ str r0, [sp, #0x98]
+ ldr r0, [sp, #0x9c]
+ str r3, [sp, #0x20]
+ str r0, [sp, #0x9c]
+ ldr r0, [sp, #0xa0]
+ str r0, [sp, #0xa0]
+ mov r0, #0
+ str r0, [sp, #0x28]
+ add r0, sp, #0x80
+ ldrb r0, [r0, #0x10]
+ cmp r0, #4
+ bls _02244B18
+ bl ErrorHandling
+_02244B18:
+ add r0, sp, #0x80
+ ldrb r6, [r0, #0x10]
+ mov r4, #0
+ str r4, [sp, #0x2c]
+ cmp r6, #0
+ beq _02244C0A
+ add r0, sp, #0x6c
+ str r0, [sp, #0x24]
+_02244B28:
+ ldr r0, [sp, #0x14]
+ bl MOD06_022441F4
+ ldr r1, [sp, #0x18]
+ ldrh r1, [r1, #2]
+ bl _s32_div_f
+ lsl r0, r1, #0x18
+ lsr r1, r0, #0x17
+ ldr r0, [sp, #0x18]
+ add r0, r0, r1
+ ldrh r0, [r0, #4]
+ str r0, [sp, #0x30]
+ ldr r1, [sp, #0x30]
+ add r0, sp, #0x3c
+ bl MOD06_02244CF8
+ mov r7, #0
+ cmp r4, #0
+ ble _02244B6C
+ add r5, sp, #0x6c
+_02244B52:
+ ldr r1, [r5]
+ add r0, sp, #0x4c
+ bl MOD06_02244CF8
+ add r0, sp, #0x3c
+ ldrh r1, [r0, #0x10]
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _02244B6C
+ add r7, r7, #1
+ add r5, r5, #4
+ cmp r7, r4
+ blt _02244B52
+_02244B6C:
+ cmp r7, r4
+ bne _02244C06
+ ldr r0, [sp, #0x94]
+ cmp r0, #0
+ beq _02244B94
+ mov r3, #0
+ cmp r6, #0
+ ble _02244B90
+ add r1, r0, #0
+ add r0, sp, #0x3c
+ ldrh r2, [r0]
+_02244B82:
+ ldrh r0, [r1]
+ cmp r2, r0
+ beq _02244B90
+ add r3, r3, #1
+ add r1, r1, #2
+ cmp r3, r6
+ blt _02244B82
+_02244B90:
+ cmp r3, r6
+ bne _02244C06
+_02244B94:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x32
+ bge _02244BFC
+ mov r7, #0
+ cmp r4, #0
+ ble _02244BC0
+ add r5, sp, #0x6c
+_02244BA2:
+ ldr r1, [r5]
+ add r0, sp, #0x4c
+ bl MOD06_02244CF8
+ add r0, sp, #0x3c
+ ldrh r1, [r0, #0x1c]
+ cmp r1, #0
+ beq _02244BB8
+ ldrh r0, [r0, #0xc]
+ cmp r1, r0
+ beq _02244BC0
+_02244BB8:
+ add r7, r7, #1
+ add r5, r5, #4
+ cmp r7, r4
+ blt _02244BA2
+_02244BC0:
+ cmp r7, r4
+ beq _02244BCC
+ ldr r0, [sp, #0x2c]
+ add r0, r0, #1
+ str r0, [sp, #0x2c]
+ b _02244C06
+_02244BCC:
+ ldr r0, [sp, #0x98]
+ cmp r0, #0
+ beq _02244BFC
+ mov r3, #0
+ cmp r6, #0
+ ble _02244BF0
+ add r1, r0, #0
+ add r0, sp, #0x3c
+ ldrh r2, [r0, #0xc]
+_02244BDE:
+ ldrh r0, [r1]
+ cmp r2, r0
+ bne _02244BE8
+ cmp r0, #0
+ bne _02244BF0
+_02244BE8:
+ add r3, r3, #1
+ add r1, r1, #2
+ cmp r3, r6
+ blt _02244BDE
+_02244BF0:
+ cmp r3, r6
+ beq _02244BFC
+ ldr r0, [sp, #0x2c]
+ add r0, r0, #1
+ str r0, [sp, #0x2c]
+ b _02244C06
+_02244BFC:
+ ldr r1, [sp, #0x30]
+ ldr r0, [sp, #0x24]
+ add r4, r4, #1
+ stmia r0!, {r1}
+ str r0, [sp, #0x24]
+_02244C06:
+ cmp r4, r6
+ bne _02244B28
+_02244C0A:
+ ldr r0, [sp, #0x1c]
+ bl MOD06_02244CAC
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x14]
+ bl MOD06_022441F4
+ add r5, r0, #0
+ ldr r0, [sp, #0x14]
+ bl MOD06_022441F4
+ lsl r0, r0, #0x10
+ orr r0, r5
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x32
+ blt _02244C30
+ mov r0, #1
+ str r0, [sp, #0x28]
+_02244C30:
+ mov r5, #0
+ cmp r4, #0
+ ble _02244C70
+ add r7, sp, #0x6c
+ add r6, sp, #0x5c
+_02244C3A:
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x20]
+ str r0, [sp, #4]
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x28]
+ ldr r3, [sp, #0x34]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0xa0]
+ str r0, [sp, #0x10]
+ ldr r2, [r7]
+ ldr r0, [sp, #0x14]
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl MOD06_02244878
+ stmia r6!, {r0}
+ ldr r0, [sp, #0x20]
+ add r5, r5, #1
+ add r0, #0x38
+ add r7, r7, #4
+ str r0, [sp, #0x20]
+ cmp r5, r4
+ blt _02244C3A
+_02244C70:
+ ldr r0, [sp, #0x9c]
+ cmp r0, #0
+ bne _02244C7C
+ ldr r0, [sp, #0x28]
+ add sp, #0x7c
+ pop {r4, r5, r6, r7, pc}
+_02244C7C:
+ ldr r1, [sp, #0x34]
+ ldr r2, [sp, #0x9c]
+ str r1, [r0]
+ mov r3, #0
+ add r0, sp, #0x6c
+ add r1, sp, #0x5c
+_02244C88:
+ ldr r5, [r0]
+ ldr r4, [sp, #0x9c]
+ add r3, r3, #1
+ strh r5, [r4, #4]
+ ldr r4, [r1]
+ add r0, r0, #4
+ str r4, [r2, #8]
+ ldr r4, [sp, #0x9c]
+ add r1, r1, #4
+ add r4, r4, #2
+ add r2, r2, #4
+ str r4, [sp, #0x9c]
+ cmp r3, #2
+ blt _02244C88
+ ldr r0, [sp, #0x28]
+ add sp, #0x7c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02244CAC
+MOD06_02244CAC: ; 0x02244CAC
+ cmp r0, #0x64
+ bhs _02244CB4
+ mov r0, #3
+ bx lr
+_02244CB4:
+ cmp r0, #0x78
+ bhs _02244CBC
+ mov r0, #6
+ bx lr
+_02244CBC:
+ cmp r0, #0x8c
+ bhs _02244CC4
+ mov r0, #9
+ bx lr
+_02244CC4:
+ cmp r0, #0xa0
+ bhs _02244CCC
+ mov r0, #0xc
+ bx lr
+_02244CCC:
+ cmp r0, #0xb4
+ bhs _02244CD4
+ mov r0, #0xf
+ bx lr
+_02244CD4:
+ cmp r0, #0xc8
+ bhs _02244CDC
+ mov r0, #0x12
+ bx lr
+_02244CDC:
+ cmp r0, #0xdc
+ bhs _02244CE4
+ mov r0, #0x15
+ bx lr
+_02244CE4:
+ mov r0, #0x1f
+ bx lr
+
+ thumb_func_start MOD06_02244CE8
+MOD06_02244CE8: ; 0x02244CE8
+ add r3, r0, #0
+ add r2, r1, #0
+ add r1, r3, #0
+ ldr r3, _02244CF4 ; =0x0200650D
+ mov r0, #0x86
+ bx r3
+ .align 2, 0
+_02244CF4: .word 0x0200650D
+
+ thumb_func_start MOD06_02244CF8
+MOD06_02244CF8: ; 0x02244CF8
+ ldr r3, _02244D00 ; =0x020064F1
+ add r2, r1, #0
+ mov r1, #0x87
+ bx r3
+ .align 2, 0
+_02244D00: .word 0x020064F1
+
+ thumb_func_start MOD06_02244D04
+MOD06_02244D04: ; 0x02244D04
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r7, r0, #0
+ lsl r0, r3, #2
+ str r0, [sp, #4]
+ ldr r1, [r5]
+ add r0, r7, r0
+ str r1, [r0, #0x18]
+ mov r0, #0x34
+ add r4, r3, #0
+ mul r4, r0
+ add r0, r7, r4
+ ldrh r1, [r5, #4]
+ add r0, #0x29
+ str r2, [sp]
+ strb r1, [r0]
+ add r0, r7, #0
+ add r0, #0x3c
+ add r1, r5, #0
+ add r0, r0, r4
+ add r1, #8
+ bl StringCopy
+ add r0, r7, r4
+ ldrh r1, [r5, #0x20]
+ add r0, #0x4c
+ strh r1, [r0]
+ add r0, r7, r4
+ ldrh r1, [r5, #0x22]
+ add r0, #0x4e
+ strh r1, [r0]
+ add r0, r7, r4
+ ldrh r1, [r5, #0x24]
+ add r0, #0x50
+ strh r1, [r0]
+ add r0, r7, r4
+ ldrh r1, [r5, #0x26]
+ add r0, #0x52
+ strh r1, [r0]
+ add r0, r7, r4
+ ldrh r1, [r5, #0x28]
+ add r0, #0x54
+ strh r1, [r0]
+ add r0, r7, r4
+ ldrh r1, [r5, #0x2a]
+ add r0, #0x56
+ strh r1, [r0]
+ add r0, r7, r4
+ ldrh r1, [r5, #0x2c]
+ add r0, #0x58
+ strh r1, [r0]
+ add r0, r7, r4
+ ldrh r1, [r5, #0x2e]
+ add r0, #0x5a
+ strh r1, [r0]
+ ldr r0, [sp, #0x20]
+ bl FUN_020669C0
+ add r4, r0, #0
+ ldr r0, [sp]
+ mov r6, #0
+ cmp r0, #0
+ ble _02244DA4
+ ldr r0, [sp, #4]
+ add r5, #0x30
+ add r7, r7, r0
+_02244D8A:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02244388
+ ldr r0, [r7, #4]
+ add r1, r4, #0
+ bl FUN_0206B900
+ ldr r0, [sp]
+ add r6, r6, #1
+ add r5, #0x38
+ cmp r6, r0
+ blt _02244D8A
+_02244DA4:
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02244DB0
+MOD06_02244DB0: ; 0x02244DB0
+ ldr r3, _02244DB8 ; =0x020169D9
+ mov r1, #0x17
+ lsl r1, r1, #4
+ bx r3
+ .align 2, 0
+_02244DB8: .word 0x020169D9
+
+ thumb_func_start MOD06_02244DBC
+MOD06_02244DBC: ; 0x02244DBC
+ ldr r3, _02244DC0 ; =0x02016A19
+ bx r3
+ .align 2, 0
+_02244DC0: .word 0x02016A19
+
+ thumb_func_start MOD06_02244DC4
+MOD06_02244DC4: ; 0x02244DC4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0
+ mov r0, #0x5a
+ add r4, r1, #0
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r7, r0]
+ add r0, r4, #0
+ mov r1, #0x12
+ bl FUN_02068678
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _02244DEC
+ cmp r0, #0xfe
+ beq _02244DF0
+ cmp r0, #0xff
+ beq _02244DF4
+ b _02244DF8
+_02244DEC:
+ mov r2, #0
+ b _02244E10
+_02244DF0:
+ mov r2, #1
+ b _02244E10
+_02244DF4:
+ mov r2, #2
+ b _02244E10
+_02244DF8:
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ beq _02244E0E
+ mov r2, #0
+ b _02244E10
+_02244E0E:
+ mov r2, #1
+_02244E10:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r7, #0
+ lsl r1, r4, #0x10
+ lsl r2, r2, #0x18
+ add r0, #0x28
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x18
+ mov r3, #2
+ bl FUN_02068C00
+ add r1, r7, #0
+ mov r0, #1
+ add r1, #0x3c
+ mov r2, #4
+ bl FUN_02008C9C
+ str r0, [r7, #0x38]
+ mov r0, #0x61
+ mov r1, #4
+ bl FUN_02006670
+ ldr r4, _02244EF4 ; =0x022512E0
+ str r0, [sp, #0x10]
+ mov r6, #0
+ add r5, r7, #0
+_02244E48:
+ ldrb r0, [r4]
+ add r1, r6, #0
+ mov r2, #4
+ bl FUN_02008DEC
+ add r6, r6, #1
+ add r4, r4, #1
+ stmia r5!, {r0}
+ cmp r6, #4
+ blt _02244E48
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ ldr r0, [r7]
+ ldr r1, [sp, #0x10]
+ mov r2, #5
+ bl FUN_020091E0
+ str r0, [r7, #0x10]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #4
+ str r0, [sp, #0xc]
+ ldr r0, [r7, #4]
+ ldr r1, [sp, #0x10]
+ mov r2, #3
+ mov r3, #0
+ bl FUN_02009298
+ str r0, [r7, #0x14]
+ mov r0, #2
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ ldr r0, [r7, #8]
+ ldr r1, [sp, #0x10]
+ mov r2, #6
+ mov r3, #0
+ bl FUN_02009358
+ str r0, [r7, #0x18]
+ mov r0, #3
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ ldr r0, [r7, #0xc]
+ ldr r1, [sp, #0x10]
+ mov r2, #0xc
+ mov r3, #0
+ bl FUN_02009358
+ str r0, [r7, #0x1c]
+ ldrh r0, [r7, #0x28]
+ ldrh r1, [r7, #0x2a]
+ mov r2, #4
+ bl FUN_0201244C
+ str r0, [r7, #0x20]
+ ldrh r0, [r7, #0x28]
+ ldrh r1, [r7, #0x2c]
+ mov r2, #4
+ bl FUN_02012470
+ str r0, [r7, #0x24]
+ ldr r0, [r7]
+ ldr r1, [r7, #4]
+ ldr r2, [r7, #0x20]
+ ldr r3, [r7, #0x24]
+ bl MOD06_02244F84
+ ldr r0, [sp, #0x10]
+ bl FUN_020066F4
+ add r0, r7, #0
+ bl MOD06_02244FFC
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02244EF4: .word 0x022512E0
+
+ thumb_func_start MOD06_02244EF8
+MOD06_02244EF8: ; 0x02244EF8
+ add r1, r0, #0
+ mov r0, #0x5a
+ mov r2, #1
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ ldr r3, _02244F10 ; =0x0200CA45
+ mov r2, #0
+ add r0, r0, #4
+ str r2, [r1, r0]
+ ldr r0, _02244F14 ; =MOD06_02244F64
+ bx r3
+ nop
+_02244F10: .word 0x0200CA45
+_02244F14: .word MOD06_02244F64
+
+ thumb_func_start MOD06_02244F18
+MOD06_02244F18: ; 0x02244F18
+ mov r1, #0x5a
+ mov r2, #0
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_02244F24
+MOD06_02244F24: ; 0x02244F24
+ mov r1, #0x5b
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD06_02244F2C
+MOD06_02244F2C: ; 0x02244F2C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x10]
+ bl FUN_02009C0C
+ ldr r0, [r5, #0x14]
+ bl FUN_02009E04
+ mov r4, #0
+_02244F3E:
+ lsl r0, r4, #2
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _02244F3E
+ ldr r0, [r5, #0x38]
+ bl FUN_0201FD58
+ ldr r0, [r5, #0x20]
+ bl FUN_02016A18
+ ldr r0, [r5, #0x24]
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_02244F64
+MOD06_02244F64: ; 0x02244F64
+ push {r3, lr}
+ mov r2, #0x5a
+ lsl r2, r2, #2
+ ldr r3, [r1, r2]
+ cmp r3, #0
+ beq _02244F78
+ ldr r0, [r1, #0x38]
+ bl FUN_0201FDEC
+ pop {r3, pc}
+_02244F78:
+ mov r3, #1
+ add r2, r2, #4
+ str r3, [r1, r2]
+ bl FUN_0200CAB4
+ pop {r3, pc}
+
+ thumb_func_start MOD06_02244F84
+MOD06_02244F84: ; 0x02244F84
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_020094F0
+ add r5, r0, #0
+ add r0, r7, #0
+ mov r1, #1
+ bl FUN_020094F0
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_02009B04
+ add r0, r7, #0
+ bl FUN_02009D68
+ add r0, r5, #0
+ bl FUN_02009C5C
+ add r5, r0, #0
+ add r0, r7, #0
+ add r1, r5, #0
+ bl FUN_02009E54
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_020B1A14
+ str r0, [sp]
+ add r0, r7, #0
+ mov r1, #1
+ bl FUN_020B19C4
+ mov r1, #0x32
+ add r5, r0, #0
+ add r0, r4, #0
+ lsl r1, r1, #6
+ bl DC_FlushRange
+ mov r2, #0x32
+ ldr r1, [sp]
+ add r0, r4, #0
+ lsl r2, r2, #6
+ bl GX_LoadOBJ
+ add r0, r6, #0
+ mov r1, #0x20
+ bl DC_FlushRange
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #0x20
+ bl GX_LoadOBJPltt
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02244FFC
+MOD06_02244FFC: ; 0x02244FFC
+ push {r4, lr}
+ sub sp, #0x80
+ add r4, r0, #0
+ mov r0, #3
+ str r0, [sp]
+ sub r0, r0, #4
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ ldr r0, [r4]
+ mov r2, #1
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #4]
+ mov r3, #2
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #8]
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #0xc]
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ str r1, [sp, #0x28]
+ add r0, sp, #0x5c
+ bl FUN_02008AA4
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x5c
+ str r0, [sp, #0x30]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r1, [sp, #0x34]
+ str r1, [sp, #0x38]
+ str r1, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, sp, #0x2c
+ strh r1, [r0, #0x20]
+ mov r0, #1
+ str r0, [sp, #0x54]
+ mov r0, #4
+ str r0, [sp, #0x58]
+ lsl r0, r0, #0x11
+ str r0, [sp, #0x34]
+ mov r0, #6
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ str r1, [sp, #0x50]
+ bl FUN_0201FE94
+ mov r1, #0x59
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r0, #0x59
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02020130
+ add sp, #0x80
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02245088
+MOD06_02245088: ; 0x02245088
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ bl FUN_02034CE0
+ add r4, r0, #0
+ mov r0, #0
+ add r1, sp, #4
+_02245098:
+ lsl r2, r0, #3
+ add r2, r4, r2
+ ldr r3, [r2, #8]
+ lsl r2, r0, #2
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r3, [r1, r2]
+ cmp r0, #0xc
+ blo _02245098
+ add r0, r5, #0
+ bl FUN_020377AC
+ bl FUN_02024DA0
+ bl FUN_02024CA4
+ add r6, r0, #0
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A9B0
+ mov r1, #1
+ bl FUN_0202A990
+ add r1, sp, #0x20
+ str r1, [sp]
+ ldr r2, [r5, #0x1c]
+ add r1, r6, #0
+ ldr r2, [r2]
+ add r3, sp, #0x1c
+ bl MOD06_02245658
+ add r0, r4, #0
+ add r1, sp, #0xc
+ add r2, sp, #0x10
+ bl MOD06_0223B944
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, sp, #0x24
+ add r3, sp, #0x28
+ bl MOD06_0224CDB8
+ bl FUN_0201B9EC
+ ldr r1, _02245110 ; =0x00001556
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0xc
+ blo _02245104
+ bl ErrorHandling
+_02245104:
+ lsl r1, r4, #2
+ add r0, sp, #4
+ ldr r0, [r0, r1]
+ add sp, #0x34
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02245110: .word 0x00001556
+
+ thumb_func_start MOD06_02245114
+MOD06_02245114: ; 0x02245114
+ push {r3, r4, r5, r6, r7, lr}
+ str r1, [sp]
+ mov r1, #0x34
+ bl FUN_020169D8
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r1, #0xb
+ str r0, [r5, #0x2c]
+ mov r0, #0x6a
+ mov r2, #4
+ bl FUN_02006528
+ add r7, r0, #0
+ mov r4, #0
+_02245132:
+ bl FUN_0201B9EC
+ ldr r1, _0224518C ; =0x0000071D
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ cmp r6, #0x24
+ blo _02245148
+ bl ErrorHandling
+_02245148:
+ lsl r0, r6, #0x18
+ lsr r2, r0, #0x16
+ add r1, r7, r2
+ ldrh r2, [r7, r2]
+ lsl r3, r4, #2
+ add r0, r5, r3
+ strh r2, [r5, r3]
+ ldrh r1, [r1, #2]
+ strh r1, [r0, #2]
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #5
+ blo _02245132
+ ldr r0, [sp]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055320
+ strh r0, [r5, #0x14]
+ ldr r0, [sp]
+ ldr r0, [r0, #0x38]
+ bl FUN_0205532C
+ strh r0, [r5, #0x16]
+ ldr r0, [sp]
+ ldr r0, [r0, #0x1c]
+ ldr r0, [r0]
+ str r0, [r5, #0x30]
+ add r0, r7, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224518C: .word 0x0000071D
+
+ thumb_func_start MOD06_02245190
+MOD06_02245190: ; 0x02245190
+ ldr r3, _02245194 ; =0x02016A19
+ bx r3
+ .align 2, 0
+_02245194: .word 0x02016A19
+
+ thumb_func_start MOD06_02245198
+MOD06_02245198: ; 0x02245198
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ cmp r5, #0
+ bne _022451BA
+ lsl r2, r5, #2
+ ldrh r1, [r4, r2]
+ add r2, r4, r2
+ ldrh r2, [r2, #2]
+ lsl r1, r1, #0xb
+ mov r0, #0xf0
+ lsl r2, r2, #0xb
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_020345FC
+ b _022451D6
+_022451BA:
+ cmp r5, #5
+ bne _022451C2
+ ldr r0, [r4, #0x30]
+ b _022451D6
+_022451C2:
+ lsl r2, r5, #2
+ ldrh r1, [r4, r2]
+ add r2, r4, r2
+ ldr r0, [r4, #0x2c]
+ ldrh r2, [r2, #2]
+ ldr r0, [r0, #0x28]
+ lsr r1, r1, #5
+ lsr r2, r2, #5
+ bl FUN_0203451C
+_022451D6:
+ lsl r3, r5, #2
+ add r1, r4, r3
+ ldrh r2, [r1, #2]
+ ldrh r1, [r4, r3]
+ str r0, [r4, #0x18]
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r4, #0x1c]
+ str r1, [r4, #0x20]
+ str r2, [r4, #0x24]
+ mov r0, #0
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_022451F0
+MOD06_022451F0: ; 0x022451F0
+ add r0, #0x18
+ bx lr
+
+ thumb_func_start MOD06_022451F4
+MOD06_022451F4: ; 0x022451F4
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ mov r1, #6
+ bl FUN_020254A0
+ mov r1, #0x42
+ lsl r1, r1, #0x10
+ str r1, [sp, #8]
+ mov r1, #1
+ lsl r1, r1, #0x10
+ str r1, [sp, #0xc]
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _02245224
+ cmp r0, #1
+ beq _0224522C
+ cmp r0, #2
+ beq _02245234
+ b _0224523A
+_02245224:
+ mov r0, #0xa
+ lsl r0, r0, #0x12
+ str r0, [sp, #0x10]
+ b _0224523A
+_0224522C:
+ mov r0, #0x52
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x10]
+ b _0224523A
+_02245234:
+ mov r0, #0x1b
+ lsl r0, r0, #0x12
+ str r0, [sp, #0x10]
+_0224523A:
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x4c]
+ ldr r2, _02245258 ; =0x000001DB
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ ldr r1, [r4, #0x2c]
+ add r3, sp, #8
+ bl FUN_021E7FBC
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_02245258: .word 0x000001DB
+
+ thumb_func_start MOD06_0224525C
+MOD06_0224525C: ; 0x0224525C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r1, #0
+ str r2, [sp]
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ mov r1, #6
+ bl FUN_020254A0
+ add r4, r0, #0
+ mov r0, #4
+ mov r1, #0x14
+ bl FUN_020169D8
+ add r5, r0, #0
+ add r2, r5, #0
+ mov r1, #0x14
+ mov r0, #0
+_02245284:
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _02245284
+ mov r0, #0
+ strb r0, [r5, #5]
+ ldrh r1, [r4]
+ cmp r1, #0
+ beq _022452A0
+ cmp r1, #1
+ beq _022452C6
+ cmp r1, #2
+ beq _022452EE
+ b _02245312
+_022452A0:
+ mov r1, #1
+ strb r1, [r5, #4]
+ cmp r6, #1
+ bne _022452B6
+ mov r0, #0x52
+ lsl r0, r0, #0x10
+ str r0, [r5, #0xc]
+ strh r1, [r4]
+ mov r0, #0x4a
+ str r0, [r5, #0x10]
+ b _02245316
+_022452B6:
+ mov r0, #0x1b
+ lsl r0, r0, #0x12
+ str r0, [r5, #0xc]
+ mov r0, #2
+ strh r0, [r4]
+ mov r0, #0x64
+ str r0, [r5, #0x10]
+ b _02245316
+_022452C6:
+ cmp r6, #0
+ bne _022452DA
+ mov r1, #0xa
+ strb r0, [r5, #4]
+ lsl r1, r1, #0x12
+ str r1, [r5, #0xc]
+ strh r0, [r4]
+ mov r0, #0x2e
+ str r0, [r5, #0x10]
+ b _02245316
+_022452DA:
+ mov r0, #1
+ strb r0, [r5, #4]
+ mov r0, #0x1b
+ lsl r0, r0, #0x12
+ str r0, [r5, #0xc]
+ mov r0, #2
+ strh r0, [r4]
+ mov r0, #0x64
+ str r0, [r5, #0x10]
+ b _02245316
+_022452EE:
+ strb r0, [r5, #4]
+ cmp r6, #0
+ bne _02245302
+ mov r1, #0xa
+ lsl r1, r1, #0x12
+ str r1, [r5, #0xc]
+ strh r0, [r4]
+ mov r0, #0x2e
+ str r0, [r5, #0x10]
+ b _02245316
+_02245302:
+ mov r0, #0x52
+ lsl r0, r0, #0x10
+ str r0, [r5, #0xc]
+ mov r0, #1
+ strh r0, [r4]
+ mov r0, #0x58
+ str r0, [r5, #0x10]
+ b _02245316
+_02245312:
+ bl ErrorHandling
+_02245316:
+ ldr r0, [sp]
+ str r0, [r5, #8]
+ ldr r0, [sp]
+ cmp r0, #3
+ bne _02245324
+ ldr r0, _02245334 ; =MOD06_02245478
+ b _02245326
+_02245324:
+ ldr r0, _02245338 ; =MOD06_02245544
+_02245326:
+ str r0, [r5]
+ ldr r0, [r7, #0x10]
+ ldr r1, _0224533C ; =MOD06_02245360
+ add r2, r5, #0
+ bl FUN_0204640C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02245334: .word MOD06_02245478
+_02245338: .word MOD06_02245544
+_0224533C: .word MOD06_02245360
+
+ thumb_func_start MOD06_02245340
+MOD06_02245340: ; 0x02245340
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ mov r1, #6
+ bl FUN_020254A0
+ ldrh r0, [r0]
+ cmp r0, r4
+ bne _0224535C
+ mov r0, #5
+ pop {r4, pc}
+_0224535C:
+ mov r0, #6
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02245360
+MOD06_02245360: ; 0x02245360
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r4, r0, #0
+ bl FUN_02046528
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_0204652C
+ add r4, r0, #0
+ ldrb r1, [r4, #5]
+ cmp r1, #5
+ bhi _02245468
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02245386: ; jump table
+ .short _02245392 - _02245386 - 2 ; case 0
+ .short _022453F0 - _02245386 - 2 ; case 1
+ .short _02245402 - _02245386 - 2 ; case 2
+ .short _02245414 - _02245386 - 2 ; case 3
+ .short _0224544C - _02245386 - 2 ; case 4
+ .short _0224545E - _02245386 - 2 ; case 5
+_02245392:
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ ldr r1, _02245470 ; =0x000001DB
+ bl FUN_021E7ED8
+ bl FUN_021E7EC8
+ add r7, r0, #0
+ ldr r0, _02245470 ; =0x000001DB
+ ldr r1, [r5, #0x2c]
+ bl FUN_021F4BD0
+ ldr r0, [r0]
+ bl FUN_020BC13C
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r6, r0, r1
+ ldr r0, [r5, #0x2c]
+ bl FUN_021F4C88
+ str r7, [sp]
+ str r6, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r3, #0xff
+ str r3, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #0x4c]
+ ldr r1, [r5, #0x50]
+ mov r2, #0x10
+ add r3, #0xdc
+ bl FUN_021DA464
+ ldr r0, [r5, #0x50]
+ mov r1, #0x10
+ mov r2, #0
+ bl FUN_021DA4EC
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ b _02245468
+_022453F0:
+ ldr r0, [r4, #8]
+ cmp r0, #4
+ bne _022453FC
+ ldr r0, _02245474 ; =0x000006DB
+ bl FUN_020054C8
+_022453FC:
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02245402:
+ ldr r0, _02245474 ; =0x000006DB
+ bl FUN_02005508
+ cmp r0, #0
+ bne _02245468
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ b _02245468
+_02245414:
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ ldr r1, _02245470 ; =0x000001DB
+ bl FUN_021E7ED8
+ add r6, r0, #0
+ add r0, sp, #0x18
+ add r1, r6, #0
+ bl FUN_021E7EA0
+ add r0, r5, #0
+ add r2, r4, #0
+ ldr r5, [r4]
+ add r1, r4, #0
+ add r2, #0xc
+ add r3, sp, #0x18
+ blx r5
+ cmp r0, #0
+ beq _02245442
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02245442:
+ add r0, r6, #0
+ add r1, sp, #0x18
+ bl FUN_021E7EB0
+ b _02245468
+_0224544C:
+ ldr r0, [r5, #0x4c]
+ ldr r1, [r5, #0x50]
+ mov r2, #0x10
+ bl FUN_021DA54C
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ b _02245468
+_0224545E:
+ bl FUN_02016A18
+ add sp, #0x24
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02245468:
+ mov r0, #0
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02245470: .word 0x000001DB
+_02245474: .word 0x000006DB
+
+ thumb_func_start MOD06_02245478
+MOD06_02245478: ; 0x02245478
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldrb r0, [r5, #4]
+ add r4, r3, #0
+ add r6, r2, #0
+ cmp r0, #0
+ ldr r0, [r4, #8]
+ bne _022454D8
+ ldrb r1, [r5, #6]
+ lsl r2, r1, #2
+ ldr r1, _02245538 ; =0x02251324
+ ldr r1, [r1, r2]
+ sub r0, r0, r1
+ str r0, [r4, #8]
+ ldrb r0, [r5, #6]
+ cmp r0, #6
+ bhs _02245526
+ mov r0, #2
+ ldr r1, [r4, #8]
+ lsl r0, r0, #0xe
+ sub r1, r1, r0
+ asr r0, r1, #0xf
+ lsr r0, r0, #0x10
+ add r0, r1, r0
+ asr r1, r0, #0x10
+ ldr r0, [r5, #0x10]
+ cmp r1, r0
+ bgt _02245526
+ ldrb r0, [r5, #7]
+ add r0, r0, #1
+ strb r0, [r5, #7]
+ ldrb r2, [r5, #6]
+ ldr r0, _0224553C ; =0x022512E4
+ ldrb r1, [r5, #7]
+ ldrb r0, [r0, r2]
+ cmp r1, r0
+ blo _02245526
+ cmp r2, #0
+ bne _022454CC
+ ldr r0, _02245540 ; =0x000006DA
+ bl FUN_020054C8
+_022454CC:
+ ldrb r0, [r5, #6]
+ add r0, r0, #1
+ strb r0, [r5, #6]
+ mov r0, #0
+ strb r0, [r5, #7]
+ b _02245526
+_022454D8:
+ ldrb r1, [r5, #6]
+ lsl r2, r1, #2
+ ldr r1, _02245538 ; =0x02251324
+ ldr r1, [r1, r2]
+ add r0, r0, r1
+ str r0, [r4, #8]
+ ldrb r0, [r5, #6]
+ cmp r0, #6
+ bhs _02245526
+ mov r0, #2
+ ldr r1, [r4, #8]
+ lsl r0, r0, #0xe
+ sub r1, r1, r0
+ asr r0, r1, #0xf
+ lsr r0, r0, #0x10
+ add r0, r1, r0
+ asr r1, r0, #0x10
+ ldr r0, [r5, #0x10]
+ cmp r1, r0
+ blt _02245526
+ ldrb r0, [r5, #7]
+ add r0, r0, #1
+ strb r0, [r5, #7]
+ ldrb r2, [r5, #6]
+ ldr r0, _0224553C ; =0x022512E4
+ ldrb r1, [r5, #7]
+ ldrb r0, [r0, r2]
+ cmp r1, r0
+ blo _02245526
+ cmp r2, #0
+ bne _0224551C
+ ldr r0, _02245540 ; =0x000006DA
+ bl FUN_020054C8
+_0224551C:
+ ldrb r0, [r5, #6]
+ add r0, r0, #1
+ strb r0, [r5, #6]
+ mov r0, #0
+ strb r0, [r5, #7]
+_02245526:
+ ldr r1, [r4, #8]
+ ldr r0, [r6]
+ cmp r1, r0
+ bne _02245532
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02245532:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02245538: .word 0x02251324
+_0224553C: .word 0x022512E4
+_02245540: .word 0x000006DA
+
+ thumb_func_start MOD06_02245544
+MOD06_02245544: ; 0x02245544
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x38]
+ add r4, r1, #0
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_020553A0
+ add r6, r0, #0
+ ldr r0, [r5, #0x38]
+ add r1, sp, #4
+ bl FUN_02055350
+ mov r0, #2
+ ldr r1, [sp, #0xc]
+ lsl r0, r0, #0xe
+ add r1, r1, r0
+ ldr r0, [sp]
+ str r1, [r0, #8]
+ ldr r0, [r7]
+ cmp r1, r0
+ bne _02245578
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02245578:
+ ldrb r0, [r4, #4]
+ cmp r0, #0
+ bne _022455E0
+ add r0, r6, #0
+ bl FUN_0205AD98
+ cmp r0, #1
+ bne _02245640
+ ldrb r1, [r4, #6]
+ add r0, r6, #0
+ lsl r2, r1, #2
+ ldr r1, _02245648 ; =0x02251308
+ ldr r1, [r1, r2]
+ bl FUN_0205ADDC
+ ldrb r0, [r4, #6]
+ cmp r0, #6
+ bhs _022455BC
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ ldr r1, [r4, #0x10]
+ cmp r0, r1
+ ble _022455BC
+ ldrb r0, [r4, #6]
+ cmp r0, #0
+ bne _022455B4
+ ldr r0, _0224564C ; =0x000006D9
+ bl FUN_020054C8
+_022455B4:
+ ldrb r0, [r4, #6]
+ add r0, r0, #1
+ strb r0, [r4, #6]
+ b _02245640
+_022455BC:
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ ldr r1, [r4, #0x10]
+ cmp r0, r1
+ bgt _02245640
+ ldrb r0, [r4, #6]
+ cmp r0, #0
+ beq _02245640
+ cmp r0, #6
+ bne _022455D8
+ ldr r0, _02245650 ; =0x000006DA
+ bl FUN_020054C8
+_022455D8:
+ ldrb r0, [r4, #6]
+ sub r0, r0, #1
+ strb r0, [r4, #6]
+ b _02245640
+_022455E0:
+ add r0, r6, #0
+ bl FUN_0205AD98
+ cmp r0, #1
+ bne _02245640
+ ldrb r1, [r4, #6]
+ add r0, r6, #0
+ lsl r2, r1, #2
+ ldr r1, _02245654 ; =0x022512EC
+ ldr r1, [r1, r2]
+ bl FUN_0205ADDC
+ ldrb r0, [r4, #6]
+ cmp r0, #6
+ bhs _0224561E
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ ldr r1, [r4, #0x10]
+ cmp r0, r1
+ bge _0224561E
+ ldrb r0, [r4, #6]
+ cmp r0, #0
+ bne _02245616
+ ldr r0, _0224564C ; =0x000006D9
+ bl FUN_020054C8
+_02245616:
+ ldrb r0, [r4, #6]
+ add r0, r0, #1
+ strb r0, [r4, #6]
+ b _02245640
+_0224561E:
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ ldr r1, [r4, #0x10]
+ cmp r0, r1
+ blt _02245640
+ ldrb r0, [r4, #6]
+ cmp r0, #0
+ beq _02245640
+ cmp r0, #6
+ bne _0224563A
+ ldr r0, _02245650 ; =0x000006DA
+ bl FUN_020054C8
+_0224563A:
+ ldrb r0, [r4, #6]
+ sub r0, r0, #1
+ strb r0, [r4, #6]
+_02245640:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02245648: .word 0x02251308
+_0224564C: .word 0x000006D9
+_02245650: .word 0x000006DA
+_02245654: .word 0x022512EC
+
+ thumb_func_start MOD06_02245658
+MOD06_02245658: ; 0x02245658
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r0, r2, #0
+ add r4, r1, #0
+ add r6, r3, #0
+ bl MOD06_022456A4
+ add r7, r0, #0
+ cmp r4, #0
+ beq _02245670
+ mov r1, #9
+ b _02245672
+_02245670:
+ mov r1, #0xa
+_02245672:
+ mov r0, #0x6a
+ mov r2, #4
+ bl FUN_02006528
+ lsl r1, r7, #2
+ add r1, r7, r1
+ add r3, r5, #0
+ asr r3, r1
+ mov r2, #0x1f
+ add r1, r3, #0
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r2, r1, #0x16
+ ldr r1, [r0, r2]
+ str r1, [r6]
+ ldr r2, [r0, r2]
+ ldr r1, [sp, #0x18]
+ str r2, [r1]
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022456A4
+MOD06_022456A4: ; 0x022456A4
+ push {r4, lr}
+ mov r1, #0x7e
+ lsl r1, r1, #2
+ sub r0, r0, r1
+ mov r4, #0
+ cmp r0, #5
+ bhi _022456E0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022456BE: ; jump table
+ .short _022456CA - _022456BE - 2 ; case 0
+ .short _022456CC - _022456BE - 2 ; case 1
+ .short _022456D0 - _022456BE - 2 ; case 2
+ .short _022456D4 - _022456BE - 2 ; case 3
+ .short _022456D8 - _022456BE - 2 ; case 4
+ .short _022456DC - _022456BE - 2 ; case 5
+_022456CA:
+ b _022456E4
+_022456CC:
+ mov r4, #1
+ b _022456E4
+_022456D0:
+ mov r4, #2
+ b _022456E4
+_022456D4:
+ mov r4, #3
+ b _022456E4
+_022456D8:
+ mov r4, #4
+ b _022456E4
+_022456DC:
+ mov r4, #5
+ b _022456E4
+_022456E0:
+ bl ErrorHandling
+_022456E4:
+ add r0, r4, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD06_022456E8
+MOD06_022456E8: ; 0x022456E8
+ push {r3, lr}
+ cmp r1, #9
+ bhi _0224579C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022456FA: ; jump table
+ .short _0224570E - _022456FA - 2 ; case 0
+ .short _02245718 - _022456FA - 2 ; case 1
+ .short _02245734 - _022456FA - 2 ; case 2
+ .short _0224573E - _022456FA - 2 ; case 3
+ .short _02245748 - _022456FA - 2 ; case 4
+ .short _02245752 - _022456FA - 2 ; case 5
+ .short _0224575C - _022456FA - 2 ; case 6
+ .short _02245778 - _022456FA - 2 ; case 7
+ .short _02245784 - _022456FA - 2 ; case 8
+ .short _02245790 - _022456FA - 2 ; case 9
+_0224570E:
+ bl MOD06_02239CE8
+ ldr r1, _022457A4 ; =0x02252424
+ str r0, [r1]
+ b _022457A0
+_02245718:
+ ldr r0, _022457A4 ; =0x02252424
+ ldr r0, [r0]
+ bl MOD06_02239D04
+ cmp r0, #0
+ beq _02245730
+ ldr r0, _022457A4 ; =0x02252424
+ ldr r0, [r0]
+ bl MOD06_02239CFC
+ mov r0, #1
+ pop {r3, pc}
+_02245730:
+ mov r0, #0
+ pop {r3, pc}
+_02245734:
+ bl MOD06_02239F64
+ ldr r1, _022457A4 ; =0x02252424
+ str r0, [r1]
+ b _022457A0
+_0224573E:
+ ldr r0, _022457A4 ; =0x02252424
+ ldr r0, [r0]
+ bl MOD06_02239F78
+ b _022457A0
+_02245748:
+ bl MOD06_0223A2E8
+ ldr r1, _022457A4 ; =0x02252424
+ str r0, [r1]
+ b _022457A0
+_02245752:
+ ldr r0, _022457A4 ; =0x02252424
+ ldr r0, [r0]
+ bl MOD06_0223A304
+ b _022457A0
+_0224575C:
+ ldr r0, _022457A4 ; =0x02252424
+ ldr r0, [r0]
+ bl MOD06_0223A310
+ cmp r0, #6
+ bne _02245774
+ ldr r0, _022457A4 ; =0x02252424
+ ldr r0, [r0]
+ bl MOD06_0223A2FC
+ mov r0, #1
+ pop {r3, pc}
+_02245774:
+ mov r0, #0
+ pop {r3, pc}
+_02245778:
+ mov r1, #0
+ bl MOD06_0223A1C4
+ ldr r1, _022457A4 ; =0x02252424
+ str r0, [r1]
+ b _022457A0
+_02245784:
+ mov r1, #1
+ bl MOD06_0223A1C4
+ ldr r1, _022457A4 ; =0x02252424
+ str r0, [r1]
+ b _022457A0
+_02245790:
+ mov r1, #2
+ bl MOD06_0223A1C4
+ ldr r1, _022457A4 ; =0x02252424
+ str r0, [r1]
+ b _022457A0
+_0224579C:
+ bl ErrorHandling
+_022457A0:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_022457A4: .word 0x02252424
+
+ thumb_func_start MOD06_022457A8
+MOD06_022457A8: ; 0x022457A8
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_0202A9B0
+ bl FUN_0202A9AC
+ mov r2, #0
+ ldrh r0, [r0, #2]
+ add r1, r2, #0
+_022457BA:
+ cmp r0, #0
+ beq _022457C0
+ add r2, r2, #1
+_022457C0:
+ add r1, r1, #1
+ cmp r1, #3
+ blt _022457BA
+ add r0, r2, #0
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022457CC
+MOD06_022457CC: ; 0x022457CC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #3
+ blo _022457DC
+ bl ErrorHandling
+_022457DC:
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A9B0
+ bl FUN_0202A9AC
+ add r1, sp, #0
+ bl MOD06_02245884
+ lsl r1, r4, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ ldrh r0, [r0]
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD06_022457F8
+MOD06_022457F8: ; 0x022457F8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #3
+ blo _02245808
+ bl ErrorHandling
+_02245808:
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A9B0
+ bl FUN_0202A9AC
+ add r1, sp, #0
+ bl MOD06_02245884
+ lsl r1, r4, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ ldrh r0, [r0, #2]
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD06_02245824
+MOD06_02245824: ; 0x02245824
+ ldr r3, _02245828 ; =0x0205E49D
+ bx r3
+ .align 2, 0
+_02245828: .word 0x0205E49D
+
+ thumb_func_start MOD06_0224582C
+MOD06_0224582C: ; 0x0224582C
+ push {r3, lr}
+ sub sp, #8
+ add r0, #0x90
+ ldr r0, [r0]
+ add r1, sp, #4
+ add r2, sp, #0
+ bl FUN_0205E098
+ ldr r0, [sp, #4]
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02245844
+MOD06_02245844: ; 0x02245844
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r1, sp, #0
+ add r4, r0, #0
+ bl MOD06_02245884
+ mov r2, #0
+ add r3, sp, #0
+ add r5, sp, #0xc
+_02245856:
+ ldr r1, [r3]
+ add r2, r2, #1
+ ldrh r0, [r1]
+ add r3, r3, #4
+ strh r0, [r5]
+ ldrh r0, [r1, #2]
+ strh r0, [r5, #2]
+ add r5, r5, #4
+ cmp r2, #3
+ blt _02245856
+ mov r2, #0
+ add r1, sp, #0xc
+_0224586E:
+ ldrh r0, [r1]
+ add r2, r2, #1
+ strh r0, [r4]
+ ldrh r0, [r1, #2]
+ add r1, r1, #4
+ strh r0, [r4, #2]
+ add r4, r4, #4
+ cmp r2, #3
+ blt _0224586E
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_02245884
+MOD06_02245884: ; 0x02245884
+ push {r3, r4}
+ ldrh r4, [r0, #6]
+ ldrh r3, [r0, #2]
+ cmp r3, r4
+ ldrh r2, [r0, #0xa]
+ bhs _022458C6
+ cmp r4, r2
+ bhs _022458A4
+ add r2, r0, #0
+ add r2, #8
+ str r2, [r1]
+ add r2, r0, #4
+ str r2, [r1, #4]
+ str r0, [r1, #8]
+ pop {r3, r4}
+ bx lr
+_022458A4:
+ cmp r3, r2
+ bhs _022458B8
+ add r2, r0, #4
+ str r2, [r1]
+ add r2, r0, #0
+ add r2, #8
+ str r2, [r1, #4]
+ str r0, [r1, #8]
+ pop {r3, r4}
+ bx lr
+_022458B8:
+ add r2, r0, #4
+ str r2, [r1]
+ str r0, [r1, #4]
+ add r0, #8
+ str r0, [r1, #8]
+ pop {r3, r4}
+ bx lr
+_022458C6:
+ cmp r3, r2
+ bhs _022458DA
+ add r2, r0, #0
+ add r2, #8
+ str r2, [r1]
+ str r0, [r1, #4]
+ add r0, r0, #4
+ str r0, [r1, #8]
+ pop {r3, r4}
+ bx lr
+_022458DA:
+ cmp r4, r2
+ str r0, [r1]
+ bhs _022458EE
+ add r2, r0, #0
+ add r2, #8
+ str r2, [r1, #4]
+ add r0, r0, #4
+ str r0, [r1, #8]
+ pop {r3, r4}
+ bx lr
+_022458EE:
+ add r2, r0, #4
+ str r2, [r1, #4]
+ add r0, #8
+ str r0, [r1, #8]
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_022458FC
+MOD06_022458FC: ; 0x022458FC
+ push {r3, lr}
+ mov r1, #0x1c
+ bl _u32_div_f
+ ldr r0, _0224590C ; =0x02251340
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ .align 2, 0
+_0224590C: .word 0x02251340
+
+ thumb_func_start MOD06_02245910
+MOD06_02245910: ; 0x02245910
+ push {r4, r5, r6, lr}
+ sub sp, #0x1a8
+ add r5, r1, #0
+ mov r1, #0x1c
+ add r4, r2, #0
+ bl _u32_div_f
+ ldr r0, _02245938 ; =0x02251340
+ lsl r1, r1, #2
+ ldr r6, [r0, r1]
+ add r0, sp, #0
+ add r1, r6, #0
+ bl FUN_02034CB4
+ ldr r0, [sp, #0x64]
+ strh r0, [r4]
+ strh r6, [r5]
+ add sp, #0x1a8
+ pop {r4, r5, r6, pc}
+ nop
+_02245938: .word 0x02251340
+
+ thumb_func_start MOD06_0224593C
+MOD06_0224593C: ; 0x0224593C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r2, #0
+ ldr r0, [sp, #0x1c]
+ add r7, r3, #0
+ strb r6, [r5]
+ ldr r4, [sp, #0x18]
+ strb r7, [r5, #1]
+ strb r4, [r5, #2]
+ str r0, [sp, #0x1c]
+ strb r0, [r5, #3]
+ ldr r0, [sp, #0x20]
+ mov r2, #4
+ strb r0, [r5, #4]
+ ldr r0, [sp, #0x24]
+ strb r0, [r5, #5]
+ ldr r0, [sp, #0x28]
+ strb r0, [r5, #6]
+ ldr r0, [sp, #0x2c]
+ strb r0, [r5, #7]
+ add r0, r1, #0
+ add r1, r5, #0
+ add r1, #0xc
+ bl FUN_02008C9C
+ str r0, [r5, #8]
+ add r0, r5, #0
+ mov r2, #2
+ add r0, #0xc
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ add r0, r6, #0
+ mov r1, #0
+ mov r2, #4
+ bl FUN_02008DEC
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r7, #0
+ mov r1, #1
+ mov r2, #4
+ bl FUN_02008DEC
+ mov r1, #0x4e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r4, #0
+ mov r1, #2
+ mov r2, #4
+ bl FUN_02008DEC
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, [sp, #0x1c]
+ mov r1, #3
+ mov r2, #4
+ bl FUN_02008DEC
+ mov r1, #5
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r0, #4
+ lsl r1, r6, #3
+ bl MOD06_02248634
+ mov r1, #0x51
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #4
+ lsl r1, r7, #3
+ bl MOD06_02248634
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #4
+ lsl r1, r4, #3
+ bl MOD06_02248634
+ mov r1, #0x53
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r1, [sp, #0x1c]
+ mov r0, #4
+ lsl r1, r1, #3
+ bl MOD06_02248634
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r1, #0
+ cmp r6, #0
+ ble _02245A18
+ ble _02245A18
+ ldr r0, [sp, #0x20]
+ add r2, r1, #0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+_02245A08:
+ mov r3, #0x51
+ lsl r3, r3, #2
+ ldr r3, [r5, r3]
+ add r1, r1, #1
+ strh r0, [r3, r2]
+ add r2, #8
+ cmp r1, r6
+ blt _02245A08
+_02245A18:
+ mov r3, #0
+ cmp r7, #0
+ ble _02245A38
+ ble _02245A38
+ ldr r0, [sp, #0x24]
+ mov r6, #0x52
+ lsl r0, r0, #0x10
+ add r2, r3, #0
+ asr r1, r0, #0x10
+ lsl r6, r6, #2
+_02245A2C:
+ ldr r0, [r5, r6]
+ add r3, r3, #1
+ strh r1, [r0, r2]
+ add r2, #8
+ cmp r3, r7
+ blt _02245A2C
+_02245A38:
+ mov r1, #0
+ cmp r4, #0
+ ble _02245A58
+ ble _02245A58
+ ldr r2, [sp, #0x28]
+ add r0, r1, #0
+ lsl r2, r2, #0x10
+ asr r6, r2, #0x10
+ mov r2, #0x53
+ lsl r2, r2, #2
+_02245A4C:
+ ldr r3, [r5, r2]
+ add r1, r1, #1
+ strh r6, [r3, r0]
+ add r0, #8
+ cmp r1, r4
+ blt _02245A4C
+_02245A58:
+ ldr r0, [sp, #0x1c]
+ mov r1, #0
+ cmp r0, #0
+ ble _02245A7C
+ ble _02245A7C
+ ldr r2, [sp, #0x2c]
+ mov r3, #0x15
+ lsl r2, r2, #0x10
+ add r0, r1, #0
+ asr r4, r2, #0x10
+ lsl r3, r3, #4
+_02245A6E:
+ ldr r2, [r5, r3]
+ add r1, r1, #1
+ strh r4, [r2, r0]
+ ldr r2, [sp, #0x1c]
+ add r0, #8
+ cmp r1, r2
+ blt _02245A6E
+_02245A7C:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02245A80
+MOD06_02245A80: ; 0x02245A80
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldrb r0, [r5]
+ mov r6, #0
+ cmp r0, #0
+ ble _02245AB0
+ add r4, r6, #0
+ mov r7, #4
+_02245A90:
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ ldrsb r2, [r5, r7]
+ add r0, r1, r4
+ ldrsh r1, [r1, r4]
+ cmp r2, r1
+ beq _02245AA6
+ ldr r0, [r0, #4]
+ bl FUN_02009C0C
+_02245AA6:
+ ldrb r0, [r5]
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, r0
+ blt _02245A90
+_02245AB0:
+ ldrb r0, [r5, #1]
+ mov r6, #0
+ cmp r0, #0
+ ble _02245ADC
+ add r4, r6, #0
+ mov r7, #5
+_02245ABC:
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ ldrsb r2, [r5, r7]
+ add r0, r1, r4
+ ldrsh r1, [r1, r4]
+ cmp r2, r1
+ beq _02245AD2
+ ldr r0, [r0, #4]
+ bl FUN_02009E04
+_02245AD2:
+ ldrb r0, [r5, #1]
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, r0
+ blt _02245ABC
+_02245ADC:
+ ldrb r0, [r5, #2]
+ mov r6, #0
+ cmp r0, #0
+ ble _02245B08
+ add r4, r6, #0
+ mov r7, #6
+_02245AE8:
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ ldrsb r2, [r5, r7]
+ add r0, r1, r4
+ ldrsh r1, [r1, r4]
+ cmp r2, r1
+ beq _02245AFE
+ ldr r0, [r0, #4]
+ bl FUN_02009474
+_02245AFE:
+ ldrb r0, [r5, #2]
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, r0
+ blt _02245AE8
+_02245B08:
+ ldrb r0, [r5, #3]
+ mov r6, #0
+ cmp r0, #0
+ ble _02245B34
+ add r4, r6, #0
+ mov r7, #7
+_02245B14:
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r1, [r5, r0]
+ ldrsb r2, [r5, r7]
+ add r0, r1, r4
+ ldrsh r1, [r1, r4]
+ cmp r2, r1
+ beq _02245B2A
+ ldr r0, [r0, #4]
+ bl FUN_02009474
+_02245B2A:
+ ldrb r0, [r5, #3]
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, r0
+ blt _02245B14
+_02245B34:
+ mov r0, #0x4d
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ ldr r0, [r5, #8]
+ bl FUN_0201FDB4
+ ldr r0, [r5, #8]
+ bl FUN_0201FD58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02245B94
+MOD06_02245B94: ; 0x02245B94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ ldrb r5, [r6]
+ str r2, [sp, #0x10]
+ str r1, [sp, #0xc]
+ add r7, r3, #0
+ mov r2, #0
+ cmp r5, #0
+ ble _02245BFA
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r3, [r6, r0]
+ mov r0, #4
+ ldrsb r4, [r6, r0]
+ mov ip, r3
+ add r0, r2, #0
+_02245BB6:
+ ldrsh r1, [r3, r0]
+ cmp r4, r1
+ bne _02245BF2
+ lsl r4, r2, #3
+ mov r0, ip
+ strh r7, [r0, r4]
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r1, [r6, r0]
+ mov r3, #0
+ add r1, r1, r4
+ strh r3, [r1, #2]
+ str r7, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp, #8]
+ sub r0, #0x10
+ ldr r0, [r6, r0]
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ bl FUN_020091E0
+ mov r1, #0x51
+ lsl r1, r1, #2
+ ldr r1, [r6, r1]
+ add sp, #0x14
+ add r1, r1, r4
+ str r0, [r1, #4]
+ pop {r4, r5, r6, r7, pc}
+_02245BF2:
+ add r2, r2, #1
+ add r3, #8
+ cmp r2, r5
+ blt _02245BB6
+_02245BFA:
+ bl ErrorHandling
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02245C04
+MOD06_02245C04: ; 0x02245C04
+ push {r4, r5, r6, lr}
+ ldrb r3, [r0]
+ mov r2, #0
+ cmp r3, #0
+ ble _02245C32
+ mov r4, #0x51
+ lsl r4, r4, #2
+ ldr r0, [r0, r4]
+ add r4, r2, #0
+ add r6, r0, #0
+_02245C18:
+ ldrsh r5, [r6, r4]
+ cmp r1, r5
+ bne _02245C2A
+ lsl r1, r2, #3
+ add r0, r0, r1
+ ldr r0, [r0, #4]
+ bl FUN_02009B04
+ pop {r4, r5, r6, pc}
+_02245C2A:
+ add r2, r2, #1
+ add r6, #8
+ cmp r2, r3
+ blt _02245C18
+_02245C32:
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_02245C38
+MOD06_02245C38: ; 0x02245C38
+ push {r4, r5, r6, lr}
+ ldrb r3, [r0]
+ mov r2, #0
+ cmp r3, #0
+ ble _02245C66
+ mov r4, #0x51
+ lsl r4, r4, #2
+ ldr r0, [r0, r4]
+ add r4, r2, #0
+ add r6, r0, #0
+_02245C4C:
+ ldrsh r5, [r6, r4]
+ cmp r1, r5
+ bne _02245C5E
+ lsl r1, r2, #3
+ add r0, r0, r1
+ ldr r0, [r0, #4]
+ bl FUN_02009474
+ pop {r4, r5, r6, pc}
+_02245C5E:
+ add r2, r2, #1
+ add r6, #8
+ cmp r2, r3
+ blt _02245C4C
+_02245C66:
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_02245C6C
+MOD06_02245C6C: ; 0x02245C6C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r6, r0, #0
+ ldrb r5, [r6]
+ str r2, [sp, #0x14]
+ str r1, [sp, #0x10]
+ add r7, r3, #0
+ mov r2, #0
+ cmp r5, #0
+ ble _02245CD4
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r3, [r6, r0]
+ mov r0, #5
+ ldrsb r4, [r6, r0]
+ mov ip, r3
+ add r0, r2, #0
+_02245C8E:
+ ldrsh r1, [r3, r0]
+ cmp r4, r1
+ bne _02245CCC
+ lsl r4, r2, #3
+ mov r0, ip
+ strh r7, [r0, r4]
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r1, [r6, r0]
+ mov r3, #0
+ add r1, r1, r4
+ strh r3, [r1, #2]
+ str r7, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #4
+ str r1, [sp, #0xc]
+ sub r0, #0x10
+ ldr r0, [r6, r0]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ bl FUN_02009298
+ mov r1, #0x52
+ lsl r1, r1, #2
+ ldr r1, [r6, r1]
+ add sp, #0x18
+ add r1, r1, r4
+ str r0, [r1, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02245CCC:
+ add r2, r2, #1
+ add r3, #8
+ cmp r2, r5
+ blt _02245C8E
+_02245CD4:
+ bl ErrorHandling
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_02245CDC
+MOD06_02245CDC: ; 0x02245CDC
+ push {r4, r5, r6, lr}
+ ldrb r3, [r0, #1]
+ mov r2, #0
+ cmp r3, #0
+ ble _02245D0A
+ mov r4, #0x52
+ lsl r4, r4, #2
+ ldr r0, [r0, r4]
+ add r4, r2, #0
+ add r6, r0, #0
+_02245CF0:
+ ldrsh r5, [r6, r4]
+ cmp r1, r5
+ bne _02245D02
+ lsl r1, r2, #3
+ add r0, r0, r1
+ ldr r0, [r0, #4]
+ bl FUN_02009D68
+ pop {r4, r5, r6, pc}
+_02245D02:
+ add r2, r2, #1
+ add r6, #8
+ cmp r2, r3
+ blt _02245CF0
+_02245D0A:
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_02245D10
+MOD06_02245D10: ; 0x02245D10
+ push {r4, r5, r6, lr}
+ ldrb r3, [r0, #1]
+ mov r2, #0
+ cmp r3, #0
+ ble _02245D3E
+ mov r4, #0x52
+ lsl r4, r4, #2
+ ldr r0, [r0, r4]
+ add r4, r2, #0
+ add r6, r0, #0
+_02245D24:
+ ldrsh r5, [r6, r4]
+ cmp r1, r5
+ bne _02245D36
+ lsl r1, r2, #3
+ add r0, r0, r1
+ ldr r0, [r0, #4]
+ bl FUN_02009474
+ pop {r4, r5, r6, pc}
+_02245D36:
+ add r2, r2, #1
+ add r6, #8
+ cmp r2, r3
+ blt _02245D24
+_02245D3E:
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_02245D44
+MOD06_02245D44: ; 0x02245D44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ ldrb r5, [r6]
+ str r2, [sp, #0x10]
+ str r1, [sp, #0xc]
+ add r7, r3, #0
+ mov r2, #0
+ cmp r5, #0
+ ble _02245DAA
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r3, [r6, r0]
+ mov r0, #6
+ ldrsb r4, [r6, r0]
+ mov ip, r3
+ add r0, r2, #0
+_02245D66:
+ ldrsh r1, [r3, r0]
+ cmp r4, r1
+ bne _02245DA2
+ lsl r4, r2, #3
+ mov r0, ip
+ strh r7, [r0, r4]
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r1, [r6, r0]
+ mov r3, #0
+ add r1, r1, r4
+ strh r3, [r1, #2]
+ str r7, [sp]
+ mov r1, #2
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp, #8]
+ sub r0, #0x10
+ ldr r0, [r6, r0]
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ bl FUN_02009358
+ mov r1, #0x53
+ lsl r1, r1, #2
+ ldr r1, [r6, r1]
+ add sp, #0x14
+ add r1, r1, r4
+ str r0, [r1, #4]
+ pop {r4, r5, r6, r7, pc}
+_02245DA2:
+ add r2, r2, #1
+ add r3, #8
+ cmp r2, r5
+ blt _02245D66
+_02245DAA:
+ bl ErrorHandling
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02245DB4
+MOD06_02245DB4: ; 0x02245DB4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ ldrb r5, [r6]
+ str r2, [sp, #0x10]
+ str r1, [sp, #0xc]
+ add r7, r3, #0
+ mov r2, #0
+ cmp r5, #0
+ ble _02245E1A
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r3, [r6, r0]
+ mov r0, #7
+ ldrsb r4, [r6, r0]
+ mov ip, r3
+ add r0, r2, #0
+_02245DD6:
+ ldrsh r1, [r3, r0]
+ cmp r4, r1
+ bne _02245E12
+ lsl r4, r2, #3
+ mov r0, ip
+ strh r7, [r0, r4]
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r1, [r6, r0]
+ mov r3, #0
+ add r1, r1, r4
+ strh r3, [r1, #2]
+ str r7, [sp]
+ mov r1, #3
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp, #8]
+ sub r0, #0x10
+ ldr r0, [r6, r0]
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ bl FUN_02009358
+ mov r1, #0x15
+ lsl r1, r1, #4
+ ldr r1, [r6, r1]
+ add sp, #0x14
+ add r1, r1, r4
+ str r0, [r1, #4]
+ pop {r4, r5, r6, r7, pc}
+_02245E12:
+ add r2, r2, #1
+ add r3, #8
+ cmp r2, r5
+ blt _02245DD6
+_02245E1A:
+ bl ErrorHandling
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02245E24
+MOD06_02245E24: ; 0x02245E24
+ push {r4, r5, r6, lr}
+ sub sp, #0x70
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, r2, #0
+ mov r0, #7
+ add r2, r3, #0
+ ldrsb r3, [r5, r0]
+ ldr r6, [sp, #0x84]
+ cmp r6, r3
+ bne _02245E3E
+ sub r0, #8
+ str r0, [sp, #0x84]
+_02245E3E:
+ ldr r0, [sp, #0x84]
+ mov r3, #0
+ str r0, [sp]
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x88]
+ str r3, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #0x4d
+ lsl r0, r0, #2
+ ldr r6, [r5, r0]
+ str r6, [sp, #0x14]
+ add r6, r0, #4
+ ldr r6, [r5, r6]
+ str r6, [sp, #0x18]
+ add r6, r0, #0
+ add r6, #8
+ ldr r6, [r5, r6]
+ add r0, #0xc
+ str r6, [sp, #0x1c]
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x20]
+ str r3, [sp, #0x24]
+ str r3, [sp, #0x28]
+ ldr r3, [sp, #0x80]
+ add r0, sp, #0x4c
+ bl FUN_02008AA4
+ ldr r0, [r5, #8]
+ add r2, sp, #0x34
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x4c
+ str r0, [sp, #0x30]
+ ldmia r4!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4]
+ str r0, [r2]
+ ldr r0, [sp, #0x8c]
+ str r0, [sp, #0x40]
+ mov r0, #1
+ str r0, [sp, #0x44]
+ mov r0, #4
+ str r0, [sp, #0x48]
+ add r0, sp, #0x2c
+ bl FUN_0201FF84
+ add r4, r0, #0
+ bne _02245EA6
+ bl ErrorHandling
+_02245EA6:
+ add r0, r4, #0
+ add sp, #0x70
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_02245EAC
+MOD06_02245EAC: ; 0x02245EAC
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0202011C
+ add r2, r0, #0
+ ldmia r2!, {r0, r1}
+ stmia r4!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r4]
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02245EC0
+MOD06_02245EC0: ; 0x02245EC0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x34
+ add r4, r0, #0
+ mov r2, #0
+ add r0, sp, #0x1c
+ str r2, [r0]
+ str r2, [r0, #4]
+ add r3, sp, #0x28
+ str r2, [r3]
+ str r2, [r3, #4]
+ ldr r6, _02245F28 ; =0x02251454
+ str r2, [r0, #8]
+ ldmia r6!, {r0, r1}
+ add r5, sp, #0x10
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ str r2, [r3, #8]
+ str r0, [r5]
+ add r1, r3, #0
+ str r2, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ mov r0, #0x84
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD06_02245E24
+ add r4, r0, #0
+ mov r1, #2
+ bl FUN_020200EC
+ add r0, r4, #0
+ add r1, sp, #0x1c
+ bl FUN_02020054
+ add r0, r4, #0
+ add r1, sp, #0x10
+ bl FUN_02020064
+ mov r0, #0
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_02020088
+ add r0, r4, #0
+ add sp, #0x34
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02245F28: .word 0x02251454
+
+ thumb_func_start MOD06_02245F2C
+MOD06_02245F2C: ; 0x02245F2C
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ mov r3, #0
+ add r2, sp, #0x10
+ str r3, [r2]
+ str r3, [r2, #4]
+ str r3, [r2, #8]
+ cmp r1, #1
+ bne _02245F40
+ mov r3, #1
+_02245F40:
+ mov r2, #2
+ str r2, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ mov r1, #0x83
+ str r1, [sp, #0xc]
+ add r1, sp, #0x10
+ bl MOD06_02245E24
+ add r4, r0, #0
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r4, #0
+ mov r1, #6
+ bl FUN_02020130
+ add r0, r4, #0
+ add sp, #0x1c
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD06_02245F6C
+MOD06_02245F6C: ; 0x02245F6C
+ push {r4, r5, lr}
+ sub sp, #0x24
+ add r5, sp, #0x18
+ mov r4, #0
+ str r4, [r5]
+ str r4, [r5, #4]
+ str r0, [sp, #0xc]
+ str r2, [sp, #0x14]
+ str r3, [sp, #0x10]
+ str r4, [r5, #8]
+ str r1, [sp, #8]
+ add r0, sp, #8
+ str r0, [sp]
+ mov r0, #0x82
+ str r0, [sp, #4]
+ add r0, r1, #0
+ ldr r1, _02245F9C ; =0x02251524
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_020644E4
+ add sp, #0x24
+ pop {r4, r5, pc}
+ nop
+_02245F9C: .word 0x02251524
+
+ thumb_func_start MOD06_02245FA0
+MOD06_02245FA0: ; 0x02245FA0
+ push {r3, lr}
+ bl FUN_02064738
+ ldrb r0, [r0, #2]
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02245FAC
+MOD06_02245FAC: ; 0x02245FAC
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r2, r4, #0
+ add r3, r0, #0
+ add r2, #0x58
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4, #0x64]
+ bl MOD06_02245EC0
+ str r0, [r4, #0x68]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02245FD0
+MOD06_02245FD0: ; 0x02245FD0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02064738
+ add r4, r0, #0
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0
+ beq _02245FE4
+ bl FUN_02064520
+_02245FE4:
+ ldr r0, [r4, #0x70]
+ cmp r0, #0
+ beq _02245FEE
+ bl FUN_021F6240
+_02245FEE:
+ add r0, r5, #0
+ bl FUN_02064520
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02245FF8
+MOD06_02245FF8: ; 0x02245FF8
+ ldr r3, _02246000 ; =0x0201FFC9
+ ldr r0, [r1, #0x68]
+ bx r3
+ nop
+_02246000: .word 0x0201FFC9
+
+ thumb_func_start MOD06_02246004
+MOD06_02246004: ; 0x02246004
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrb r0, [r5]
+ lsl r1, r0, #2
+ ldr r0, _02246020 ; =0x022513D8
+ ldr r4, [r0, r1]
+_02246010:
+ ldrb r1, [r5, #1]
+ add r0, r5, #0
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ blx r1
+ cmp r0, #1
+ beq _02246010
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02246020: .word 0x022513D8
+
+ thumb_func_start MOD06_02246024
+MOD06_02246024: ; 0x02246024
+ push {r3, lr}
+ mov r1, #0
+ strb r1, [r0, #2]
+ ldr r0, [r0, #0x68]
+ bl FUN_020200A0
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD06_02246034
+MOD06_02246034: ; 0x02246034
+ push {r4, r5, r6, lr}
+ sub sp, #0x30
+ ldr r4, _02246188 ; =0x02251418
+ add r2, r0, #0
+ ldmia r4!, {r0, r1}
+ add r3, sp, #0x24
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ ldr r4, _0224618C ; =0x0225146C
+ str r0, [r3]
+ ldmia r4!, {r0, r1}
+ add r3, sp, #0x18
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ str r0, [r3]
+ add r0, r2, #0
+ bl FUN_02064738
+ add r4, r0, #0
+ mov r3, #1
+ add r5, r4, #0
+ strb r3, [r4]
+ mov r2, #0
+ strb r2, [r4, #2]
+ strb r2, [r4, #1]
+ str r2, [r4, #4]
+ add r6, sp, #0x24
+ ldmia r6!, {r0, r1}
+ add r5, #8
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r5]
+ str r2, [r4, #0x14]
+ str r2, [r4, #0x18]
+ str r2, [r4, #0x1c]
+ ldr r0, _02246190 ; =0x0015E000
+ add r2, r4, #0
+ add r5, sp, #0x18
+ str r0, [r4, #0x38]
+ ldmia r5!, {r0, r1}
+ add r2, #0x2c
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r2]
+ lsl r0, r3, #0xa
+ str r0, [r4, #0x50]
+ mov r0, #0x2d
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x40]
+ mov r0, #3
+ lsl r0, r0, #0x12
+ str r0, [r4, #0x48]
+ lsl r0, r3, #0x11
+ str r0, [r4, #0x4c]
+ mov r0, #0x2d
+ bl FUN_0201B988
+ ldr r2, [r4, #0x48]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ mul r0, r1
+ str r0, [r4, #0x14]
+ ldr r1, [r4, #0x40]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B970
+ ldr r2, [r4, #0x48]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ mul r0, r1
+ str r0, [r4, #0x18]
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x14]
+ add r0, r1, r0
+ str r0, [sp, #0x24]
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x18]
+ add r0, r1, r0
+ str r0, [sp, #0x28]
+ ldr r0, [r4, #0x68]
+ add r1, sp, #0x24
+ bl FUN_02020044
+ ldr r0, [r4, #0x68]
+ add r1, sp, #0x18
+ bl FUN_02020064
+ ldr r1, [r4, #0x38]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ ldr r0, [r4, #0x68]
+ bl FUN_02020088
+ ldr r0, [r4, #0x68]
+ mov r1, #0x84
+ bl FUN_02020310
+ ldr r0, [r4, #0x68]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [r4, #0x58]
+ ldr r1, [r4, #0x60]
+ bl MOD06_0224823C
+ str r0, [r4, #0x6c]
+ ldr r0, [r4, #0x5c]
+ mov r1, #4
+ bl FUN_021F61F4
+ ldr r2, _02246194 ; =0xFFF88000
+ mov r1, #1
+ mov r3, #0xc
+ str r0, [r4, #0x70]
+ bl FUN_021F6254
+ add r1, sp, #0xc
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ ldr r3, _02246198 ; =0x02251490
+ str r0, [r1, #8]
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #2
+ str r0, [r2]
+ ldr r4, [r4, #0x60]
+ add r0, r4, #0
+ bl FUN_020200EC
+ add r0, r4, #0
+ add r1, sp, #0xc
+ bl FUN_02020054
+ add r0, r4, #0
+ add r1, sp, #0
+ bl FUN_02020064
+ mov r0, #0
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_02020088
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02020130
+ bl MOD06_02246610
+ add sp, #0x30
+ pop {r4, r5, r6, pc}
+ nop
+_02246188: .word 0x02251418
+_0224618C: .word 0x0225146C
+_02246190: .word 0x0015E000
+_02246194: .word 0xFFF88000
+_02246198: .word 0x02251490
+
+ thumb_func_start MOD06_0224619C
+MOD06_0224619C: ; 0x0224619C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r1, [r5, #0x48]
+ ldr r0, [r5, #0x4c]
+ ldr r6, [r5, #0x68]
+ ldr r4, [r5, #0x60]
+ sub r0, r1, r0
+ str r0, [r5, #0x48]
+ bpl _022461B4
+ mov r0, #0
+ str r0, [r5, #0x48]
+_022461B4:
+ mov r0, #2
+ ldr r1, [r5, #0x4c]
+ lsl r0, r0, #0xa
+ cmp r1, r0
+ ble _022461C6
+ mov r0, #7
+ lsl r0, r0, #0xa
+ sub r0, r1, r0
+ str r0, [r5, #0x4c]
+_022461C6:
+ mov r0, #1
+ ldr r1, [r5, #0x4c]
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bge _022461D2
+ str r0, [r5, #0x4c]
+_022461D2:
+ mov r0, #0x2d
+ bl FUN_0201B988
+ ldr r2, [r5, #0x48]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ mul r0, r1
+ str r0, [r5, #0x14]
+ ldr r1, [r5, #0x40]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B970
+ ldr r2, [r5, #0x48]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ mul r0, r1
+ str r0, [r5, #0x18]
+ ldr r1, [r5, #0x40]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ cmp r0, #0x5a
+ bge _0224621A
+ mov r0, #1
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [r5, #0x40]
+_0224621A:
+ ldr r1, [r5, #0x2c]
+ ldr r0, [r5, #0x50]
+ sub r1, r1, r0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r1, [r5, #0x2c]
+ cmp r1, r0
+ bge _0224622C
+ str r0, [r5, #0x2c]
+_0224622C:
+ ldr r1, [r5, #0x30]
+ ldr r0, [r5, #0x50]
+ sub r1, r1, r0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r1, [r5, #0x30]
+ cmp r1, r0
+ bge _0224623E
+ str r0, [r5, #0x30]
+_0224623E:
+ add r1, r5, #0
+ add r0, r6, #0
+ add r1, #0x2c
+ bl FUN_02020064
+ add r1, r5, #0
+ add r0, r4, #0
+ add r1, #0x2c
+ bl FUN_02020064
+ ldr r1, [r5, #8]
+ ldr r0, [r5, #0x14]
+ add r0, r1, r0
+ str r0, [sp]
+ ldr r1, [r5, #0xc]
+ ldr r0, [r5, #0x18]
+ add r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_02020044
+ mov r0, #0x12
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0xc
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, sp, #0
+ bl FUN_02020044
+ ldr r0, [r5, #0x48]
+ cmp r0, #0
+ bne _0224628E
+ mov r0, #0
+ str r0, [r5, #4]
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+ b _02246294
+_0224628E:
+ ldr r0, [r5, #4]
+ add r0, r0, #1
+ str r0, [r5, #4]
+_02246294:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224629C
+MOD06_0224629C: ; 0x0224629C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x6c]
+ bl MOD06_022482B8
+ ldr r0, [r4, #0x70]
+ mov r1, #2
+ mov r2, #0
+ mov r3, #0xc
+ bl FUN_021F6254
+ mov r0, #1
+ lsl r0, r0, #0xa
+ str r0, [r4, #0x50]
+ lsl r0, r0, #9
+ str r0, [r4, #0x40]
+ mov r0, #0
+ str r0, [r4, #0x48]
+ mov r0, #6
+ lsl r0, r0, #0xa
+ str r0, [r4, #0x4c]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD06_022462D0
+MOD06_022462D0: ; 0x022462D0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r1, [r5, #0x48]
+ ldr r0, [r5, #0x4c]
+ ldr r4, [r5, #0x68]
+ add r0, r1, r0
+ str r0, [r5, #0x48]
+ mov r0, #1
+ ldr r1, [r5, #0x4c]
+ lsl r0, r0, #0xc
+ add r2, r1, r0
+ lsl r1, r0, #4
+ str r2, [r5, #0x4c]
+ cmp r2, r1
+ ble _022462F4
+ lsl r0, r0, #4
+ str r0, [r5, #0x4c]
+_022462F4:
+ ldr r1, [r5, #0x40]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B988
+ ldr r2, [r5, #0x48]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ mul r0, r1
+ str r0, [r5, #0x14]
+ mov r0, #0x80
+ bl FUN_0201B970
+ ldr r2, [r5, #0x48]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ mul r0, r1
+ str r0, [r5, #0x18]
+ mov r0, #0xa
+ ldr r1, [r5, #0x40]
+ lsl r0, r0, #0x10
+ cmp r1, r0
+ bge _02246338
+ mov r0, #1
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [r5, #0x40]
+_02246338:
+ mov r0, #2
+ ldr r1, [r5, #0x38]
+ lsl r0, r0, #0xc
+ add r1, r1, r0
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ str r1, [r5, #0x38]
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_02020088
+ ldr r1, [r5, #0x2c]
+ ldr r0, [r5, #0x50]
+ add r1, r1, r0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r1, [r5, #0x2c]
+ cmp r1, r0
+ ble _0224636A
+ str r0, [r5, #0x2c]
+_0224636A:
+ ldr r1, [r5, #0x30]
+ ldr r0, [r5, #0x50]
+ add r1, r1, r0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r1, [r5, #0x30]
+ cmp r1, r0
+ ble _0224637C
+ str r0, [r5, #0x30]
+_0224637C:
+ add r1, r5, #0
+ add r0, r4, #0
+ add r1, #0x2c
+ bl FUN_02020064
+ ldr r1, [r5, #8]
+ ldr r0, [r5, #0x14]
+ add r0, r1, r0
+ str r0, [sp]
+ ldr r1, [r5, #0xc]
+ ldr r0, [r5, #0x18]
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, sp, #0
+ bl FUN_02020044
+ ldr r1, [sp, #4]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r1, r0, #0xc
+ mov r0, #0xf
+ mvn r0, r0
+ cmp r1, r0
+ bgt _022463B6
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+_022463B6:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD06_022463BC
+MOD06_022463BC: ; 0x022463BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x68]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4, #0x60]
+ mov r1, #1
+ bl FUN_02020130
+ mov r0, #0
+ str r0, [r4, #4]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022463E0
+MOD06_022463E0: ; 0x022463E0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ cmp r0, #0x14
+ bge _022463F6
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022463F6:
+ ldr r3, _02246498 ; =0x0225143C
+ add r2, sp, #0xc
+ ldmia r3!, {r0, r1}
+ add r6, r2, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r3, _0224649C ; =0x02251448
+ str r0, [r2]
+ add r2, sp, #0
+ ldmia r3!, {r0, r1}
+ add r5, r2, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r7, #0
+ str r0, [r2]
+ add r2, r4, #0
+ str r7, [r4, #4]
+ add r3, r6, #0
+ ldmia r3!, {r0, r1}
+ add r2, #8
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ str r7, [r4, #0x14]
+ str r7, [r4, #0x18]
+ str r7, [r4, #0x1c]
+ str r7, [r4, #0x38]
+ add r2, r4, #0
+ ldmia r5!, {r0, r1}
+ add r2, #0x2c
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r2]
+ lsl r1, r1, #8
+ ldr r0, _022464A0 ; =0x0013B000
+ str r1, [r4, #0x50]
+ str r0, [r4, #0x40]
+ lsl r0, r1, #0xa
+ str r0, [r4, #0x48]
+ lsl r0, r1, #4
+ str r0, [r4, #0x4c]
+ ldr r0, [r4, #0x68]
+ add r1, r6, #0
+ bl FUN_02020044
+ ldr r0, [r4, #0x68]
+ add r1, sp, #0
+ bl FUN_02020064
+ ldr r1, [r4, #0x38]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ ldr r0, [r4, #0x68]
+ bl FUN_02020088
+ ldr r0, [r4, #0x68]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [r4, #0x60]
+ mov r1, #6
+ bl FUN_02020130
+ ldr r0, [r4, #0x60]
+ mov r1, #1
+ bl FUN_020200BC
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02246498: .word 0x0225143C
+_0224649C: .word 0x02251448
+_022464A0: .word 0x0013B000
+
+ thumb_func_start MOD06_022464A4
+MOD06_022464A4: ; 0x022464A4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r1, [r5, #0x48]
+ ldr r0, [r5, #0x4c]
+ ldr r4, [r5, #0x68]
+ sub r0, r1, r0
+ str r0, [r5, #0x48]
+ mov r0, #1
+ ldr r1, [r5, #0x4c]
+ lsl r0, r0, #0x10
+ cmp r1, r0
+ bge _022464C4
+ lsr r0, r0, #3
+ add r0, r1, r0
+ str r0, [r5, #0x4c]
+_022464C4:
+ ldr r0, [r5, #0x48]
+ cmp r0, #0
+ bge _022464CE
+ mov r0, #0
+ str r0, [r5, #0x48]
+_022464CE:
+ ldr r0, _022465AC ; =0x0000013B
+ bl FUN_0201B988
+ ldr r2, [r5, #0x48]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ mul r0, r1
+ str r0, [r5, #0x14]
+ ldr r1, [r5, #0x40]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B970
+ ldr r2, [r5, #0x48]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ mul r0, r1
+ str r0, [r5, #0x18]
+ ldr r1, [r5, #0x40]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ cmp r0, #0xb4
+ bge _02246516
+ mov r0, #1
+ lsl r0, r0, #0xe
+ sub r0, r1, r0
+ str r0, [r5, #0x40]
+_02246516:
+ ldr r1, [r5, #0x2c]
+ ldr r0, [r5, #0x50]
+ sub r1, r1, r0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ str r1, [r5, #0x2c]
+ cmp r1, r0
+ bge _02246528
+ str r0, [r5, #0x2c]
+_02246528:
+ ldr r1, [r5, #0x30]
+ ldr r0, [r5, #0x50]
+ sub r1, r1, r0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ str r1, [r5, #0x30]
+ cmp r1, r0
+ bge _0224653A
+ str r0, [r5, #0x30]
+_0224653A:
+ add r1, r5, #0
+ add r0, r4, #0
+ add r1, #0x2c
+ bl FUN_02020064
+ mov r0, #6
+ ldr r1, [r5, #0x38]
+ lsl r0, r0, #0xc
+ add r1, r1, r0
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ str r1, [r5, #0x38]
+ cmp r0, #0x3c
+ ble _02246560
+ mov r0, #0xf
+ lsl r0, r0, #0xe
+ str r0, [r5, #0x38]
+_02246560:
+ ldr r1, [r5, #0x38]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_02020088
+ ldr r1, [r5, #8]
+ ldr r0, [r5, #0x14]
+ add r0, r1, r0
+ str r0, [sp]
+ ldr r1, [r5, #0xc]
+ ldr r0, [r5, #0x18]
+ add r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, sp, #0
+ bl FUN_02020044
+ ldr r0, [r5, #0x48]
+ cmp r0, #0
+ bgt _022465A4
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020200A0
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+_022465A4:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_022465AC: .word 0x0000013B
+
+ thumb_func_start MOD06_022465B0
+MOD06_022465B0: ; 0x022465B0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ cmp r0, #8
+ bne _022465CE
+ ldr r0, [r4, #0x60]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ bl MOD06_02246658
+_022465CE:
+ ldr r0, [r4, #4]
+ cmp r0, #0xa
+ bne _022465DC
+ ldr r0, [r4, #0x60]
+ mov r1, #0
+ bl FUN_020200A0
+_022465DC:
+ ldr r0, [r4, #4]
+ cmp r0, #0xf
+ ble _022465FA
+ ldr r0, [r4, #0x70]
+ bl FUN_021F6234
+ cmp r0, #1
+ bne _022465FA
+ mov r0, #0
+ str r0, [r4, #4]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ mov r0, #2
+ strb r0, [r4, #2]
+_022465FA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02246600
+MOD06_02246600: ; 0x02246600
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD06_02246604
+MOD06_02246604: ; 0x02246604
+ ldr r3, _0224660C ; =0x02006671
+ mov r0, #0x61
+ mov r1, #4
+ bx r3
+ .align 2, 0
+_0224660C: .word 0x02006671
+
+ thumb_func_start MOD06_02246610
+MOD06_02246610: ; 0x02246610
+ push {lr}
+ sub sp, #0xc
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ ldr r3, _02246630 ; =0x00007FFF
+ mov r0, #0
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02246630: .word 0x00007FFF
+
+ thumb_func_start MOD06_02246634
+MOD06_02246634: ; 0x02246634
+ push {lr}
+ sub sp, #0xc
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0
+ ldr r3, _02246654 ; =0x00007FFF
+ add r1, r0, #0
+ add r2, r0, #0
+ bl FUN_0200E1D0
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+_02246654: .word 0x00007FFF
+
+ thumb_func_start MOD06_02246658
+MOD06_02246658: ; 0x02246658
+ push {r4, lr}
+ ldr r0, [r0, #0x38]
+ add r4, r1, #0
+ bl FUN_020553A0
+ add r1, r4, #0
+ bl FUN_0205889C
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224666C
+MOD06_0224666C: ; 0x0224666C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl MOD06_022466C0
+ add r1, r0, #0
+ str r4, [r1, #0x5c]
+ str r6, [r1, #0xc]
+ str r5, [r1, #0x20]
+ cmp r5, #0
+ bne _0224668E
+ ldr r0, _02246698 ; =MOD06_022466E8
+ mov r2, #0x85
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+_0224668E:
+ ldr r0, _0224669C ; =MOD06_02246AA8
+ mov r2, #0x85
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02246698: .word MOD06_022466E8
+_0224669C: .word MOD06_02246AA8
+
+ thumb_func_start MOD06_022466A0
+MOD06_022466A0: ; 0x022466A0
+ push {r3, lr}
+ bl FUN_0201B6C8
+ ldr r0, [r0, #4]
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022466AC
+MOD06_022466AC: ; 0x022466AC
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201B6C8
+ bl MOD06_022466E0
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+
+ thumb_func_start MOD06_022466C0
+MOD06_022466C0: ; 0x022466C0
+ push {r3, r4, r5, lr}
+ mov r1, #0x87
+ add r5, r0, #0
+ mov r0, #4
+ lsl r1, r1, #2
+ bl FUN_020169D8
+ mov r2, #0x87
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ str r5, [r4, #0x60]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_022466E0
+MOD06_022466E0: ; 0x022466E0
+ ldr r3, _022466E4 ; =0x02016A19
+ bx r3
+ .align 2, 0
+_022466E4: .word 0x02016A19
+
+ thumb_func_start MOD06_022466E8
+MOD06_022466E8: ; 0x022466E8
+ push {r3, r4, r5, lr}
+ ldr r4, _02246718 ; =0x022515A0
+ add r5, r1, #0
+_022466EE:
+ ldr r1, [r5]
+ add r0, r5, #0
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ blx r1
+ cmp r0, #1
+ beq _022466EE
+ ldr r0, [r5, #0x10]
+ cmp r0, #1
+ bne _02246716
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02246710
+ bl FUN_02064584
+_02246710:
+ add r0, r5, #0
+ bl MOD06_02247300
+_02246716:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02246718: .word 0x022515A0
+
+ thumb_func_start MOD06_0224671C
+MOD06_0224671C: ; 0x0224671C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_02246F0C
+ add r0, r4, #0
+ bl MOD06_02246D3C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02246734
+MOD06_02246734: ; 0x02246734
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ mov r0, #0x82
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0224674A
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0224674A:
+ ldr r5, _0224679C ; =0x022513E8
+ add r3, sp, #0xc
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ ldr r5, _022467A0 ; =0x022514A8
+ str r0, [r3]
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ add r0, r4, #0
+ bl MOD06_022473EC
+ mov r1, #0x79
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD06_0224798C
+ mov r1, #0x7a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD06_022479AC
+ add r0, r4, #0
+ bl MOD06_02246D8C
+ mov r0, #1
+ str r0, [r4, #0x10]
+ ldr r1, [r4]
+ add r1, r1, #1
+ str r1, [r4]
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224679C: .word 0x022513E8
+_022467A0: .word 0x022514A8
+
+ thumb_func_start MOD06_022467A4
+MOD06_022467A4: ; 0x022467A4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_022486CC
+ mov r0, #0
+ ldr r1, _022467D8 ; =0xFFFC0000
+ str r0, [r4, #0x2c]
+ str r1, [r4, #0x54]
+ mov r1, #0xfe
+ lsl r1, r1, #0xc
+ str r1, [r4, #0x44]
+ mov r1, #0xff
+ lsl r1, r1, #0xc
+ str r1, [r4, #0x48]
+ mov r1, #0x5f
+ lsl r1, r1, #0xc
+ str r1, [r4, #0x4c]
+ mov r1, #0x61
+ lsl r1, r1, #0xc
+ str r1, [r4, #0x50]
+ mov r1, #1
+ str r1, [r4, #0x2c]
+ ldr r1, [r4]
+ add r1, r1, #1
+ str r1, [r4]
+ pop {r4, pc}
+ .align 2, 0
+_022467D8: .word 0xFFFC0000
+
+ thumb_func_start MOD06_022467DC
+MOD06_022467DC: ; 0x022467DC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r2, #0
+ str r2, [r4, #0x2c]
+ ldr r1, [r4, #0x44]
+ ldr r0, [r4, #0x54]
+ add r0, r1, r0
+ str r0, [r4, #0x44]
+ cmp r0, #0
+ bgt _02246800
+ mov r0, #2
+ str r2, [r4, #0x44]
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x54]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02246800:
+ ldr r0, [r4, #0x50]
+ str r0, [sp]
+ ldr r1, [r4, #0x44]
+ ldr r2, [r4, #0x4c]
+ ldr r3, [r4, #0x48]
+ add r0, r4, #0
+ bl MOD06_02247670
+ mov r0, #1
+ str r0, [r4, #0x2c]
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224681C
+MOD06_0224681C: ; 0x0224681C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ ldr r1, [r4, #0x4c]
+ ldr r0, [r4, #0x54]
+ sub r0, r1, r0
+ str r0, [r4, #0x4c]
+ ldr r1, [r4, #0x50]
+ ldr r0, [r4, #0x54]
+ add r0, r1, r0
+ str r0, [r4, #0x50]
+ mov r0, #2
+ ldr r1, [r4, #0x54]
+ lsl r0, r0, #0xc
+ add r2, r1, r0
+ lsl r1, r0, #4
+ str r2, [r4, #0x54]
+ cmp r2, r1
+ ble _0224684A
+ lsl r0, r0, #4
+ str r0, [r4, #0x54]
+_0224684A:
+ mov r0, #0xe
+ ldr r1, [r4, #0x4c]
+ lsl r0, r0, #0xe
+ cmp r1, r0
+ bge _02246856
+ str r0, [r4, #0x4c]
+_02246856:
+ mov r0, #0x22
+ ldr r1, [r4, #0x50]
+ lsl r0, r0, #0xe
+ cmp r1, r0
+ ble _02246862
+ str r0, [r4, #0x50]
+_02246862:
+ ldr r0, [r4, #0x50]
+ str r0, [sp]
+ ldr r1, [r4, #0x44]
+ ldr r2, [r4, #0x4c]
+ ldr r3, [r4, #0x48]
+ add r0, r4, #0
+ bl MOD06_02247670
+ mov r0, #1
+ str r0, [r4, #0x2c]
+ mov r0, #0xe
+ ldr r1, [r4, #0x4c]
+ lsl r0, r0, #0xe
+ cmp r1, r0
+ bne _0224689A
+ mov r0, #0x22
+ ldr r1, [r4, #0x50]
+ lsl r0, r0, #0xe
+ cmp r1, r0
+ bne _0224689A
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD06_02247424
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_0224689A:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD06_022468A0
+MOD06_022468A0: ; 0x022468A0
+ ldr r1, [r0, #8]
+ add r1, r1, #1
+ str r1, [r0, #8]
+ cmp r1, #0xf
+ blt _022468B8
+ mov r1, #0
+ str r1, [r0, #8]
+ ldr r1, _022468BC ; =0xFFFC0000
+ str r1, [r0, #0x58]
+ ldr r1, [r0]
+ add r1, r1, #1
+ str r1, [r0]
+_022468B8:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_022468BC: .word 0xFFFC0000
+
+ thumb_func_start MOD06_022468C0
+MOD06_022468C0: ; 0x022468C0
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r1, [sp]
+ ldr r0, [r4, #0x58]
+ add r1, r1, r0
+ mov r0, #0xa
+ lsl r0, r0, #0x10
+ str r1, [sp]
+ cmp r1, r0
+ bgt _022468F8
+ mov r0, #3
+ lsl r0, r0, #0x12
+ str r0, [sp]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_022468F8:
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, sp, #0
+ bl FUN_02020044
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224690C
+MOD06_0224690C: ; 0x0224690C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r1, [r4, #0x58]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r1, r0, #1
+ ldr r0, _02246970 ; =0xFFFFE000
+ str r1, [r4, #0x58]
+ cmp r1, r0
+ ble _0224693C
+ str r0, [r4, #0x58]
+ ldr r0, [r4]
+ mov r1, #5
+ add r0, r0, #1
+ str r0, [r4]
+ ldr r0, [r4, #0x5c]
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02005578
+_0224693C:
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0202011C
+ add r5, r0, #0
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r3]
+ ldr r1, [sp]
+ ldr r0, [r4, #0x58]
+ add r0, r1, r0
+ str r0, [sp]
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r2, #0
+ bl FUN_02020044
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_02246970: .word 0xFFFFE000
+
+ thumb_func_start MOD06_02246974
+MOD06_02246974: ; 0x02246974
+ ldr r1, [r0, #8]
+ add r1, r1, #1
+ str r1, [r0, #8]
+ cmp r1, #8
+ blt _0224698C
+ mov r1, #0
+ str r1, [r0, #8]
+ ldr r1, _02246990 ; =0xFFFFF000
+ str r1, [r0, #0x58]
+ ldr r1, [r0]
+ add r1, r1, #1
+ str r1, [r0]
+_0224698C:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_02246990: .word 0xFFFFF000
+
+ thumb_func_start MOD06_02246994
+MOD06_02246994: ; 0x02246994
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #0x58]
+ lsl r1, r0, #1
+ ldr r0, _022469F0 ; =0xFFFC0000
+ str r1, [r4, #0x58]
+ cmp r1, r0
+ bge _022469A8
+ str r0, [r4, #0x58]
+_022469A8:
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0202011C
+ add r5, r0, #0
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r3]
+ ldr r1, [sp]
+ ldr r0, [r4, #0x58]
+ add r0, r1, r0
+ str r0, [sp]
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r2, #0
+ bl FUN_02020044
+ ldr r1, [sp]
+ ldr r0, _022469F4 ; =0xFFFD8000
+ cmp r1, r0
+ bgt _022469E8
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x54]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_022469E8:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_022469F0: .word 0xFFFC0000
+_022469F4: .word 0xFFFD8000
+
+ thumb_func_start MOD06_022469F8
+MOD06_022469F8: ; 0x022469F8
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ ldr r1, [r4, #0x4c]
+ ldr r0, [r4, #0x54]
+ add r0, r1, r0
+ str r0, [r4, #0x4c]
+ ldr r1, [r4, #0x50]
+ ldr r0, [r4, #0x54]
+ sub r0, r1, r0
+ str r0, [r4, #0x50]
+ mov r0, #1
+ ldr r1, [r4, #0x54]
+ lsl r0, r0, #0xe
+ add r2, r1, r0
+ lsl r1, r0, #3
+ str r2, [r4, #0x54]
+ cmp r2, r1
+ ble _02246A26
+ lsl r0, r0, #3
+ str r0, [r4, #0x54]
+_02246A26:
+ mov r0, #0x16
+ ldr r1, [r4, #0x4c]
+ lsl r0, r0, #0xe
+ cmp r1, r0
+ blt _02246A32
+ str r0, [r4, #0x4c]
+_02246A32:
+ mov r0, #0x1a
+ ldr r1, [r4, #0x50]
+ lsl r0, r0, #0xe
+ cmp r1, r0
+ bgt _02246A3E
+ str r0, [r4, #0x50]
+_02246A3E:
+ ldr r0, [r4, #0x50]
+ str r0, [sp]
+ ldr r1, [r4, #0x44]
+ ldr r2, [r4, #0x4c]
+ ldr r3, [r4, #0x48]
+ add r0, r4, #0
+ bl MOD06_02247670
+ mov r0, #1
+ str r0, [r4, #0x2c]
+ mov r0, #0x16
+ ldr r1, [r4, #0x4c]
+ lsl r0, r0, #0xe
+ cmp r1, r0
+ bne _02246A72
+ mov r0, #0x1a
+ ldr r1, [r4, #0x50]
+ lsl r0, r0, #0xe
+ cmp r1, r0
+ bne _02246A72
+ add r0, r4, #0
+ bl MOD06_02248708
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02246A72:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD06_02246A78
+MOD06_02246A78: ; 0x02246A78
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_02246FB8
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r1, [r4]
+ add r1, r1, #1
+ str r1, [r4]
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02246A8C
+MOD06_02246A8C: ; 0x02246A8C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_022476A4
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02246AA0
+MOD06_02246AA0: ; 0x02246AA0
+ mov r1, #1
+ str r1, [r0, #4]
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD06_02246AA8
+MOD06_02246AA8: ; 0x02246AA8
+ push {r3, r4, r5, lr}
+ ldr r4, _02246AD8 ; =0x022515D8
+ add r5, r1, #0
+_02246AAE:
+ ldr r1, [r5]
+ add r0, r5, #0
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ blx r1
+ cmp r0, #1
+ beq _02246AAE
+ ldr r0, [r5, #0x10]
+ cmp r0, #1
+ bne _02246AD6
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02246AD0
+ bl FUN_02064584
+_02246AD0:
+ add r0, r5, #0
+ bl MOD06_02247300
+_02246AD6:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02246AD8: .word 0x022515D8
+
+ thumb_func_start MOD06_02246ADC
+MOD06_02246ADC: ; 0x02246ADC
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ mov r0, #0x82
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02246AF2
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02246AF2:
+ ldr r5, _02246B44 ; =0x0225149C
+ add r3, sp, #0xc
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ ldr r5, _02246B48 ; =0x022513F4
+ str r0, [r3]
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ add r0, r4, #0
+ bl MOD06_022473EC
+ mov r1, #0x79
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD06_0224798C
+ mov r1, #0x7a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD06_022479AC
+ add r0, r4, #0
+ bl MOD06_02246D8C
+ mov r0, #1
+ str r0, [r4, #0x10]
+ ldr r1, [r4]
+ add r1, r1, #1
+ str r1, [r4]
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02246B44: .word 0x0225149C
+_02246B48: .word 0x022513F4
+
+ thumb_func_start MOD06_02246B4C
+MOD06_02246B4C: ; 0x02246B4C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_022478A8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02246B60
+MOD06_02246B60: ; 0x02246B60
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_022474A4
+ add r0, r4, #0
+ bl MOD06_02246D64
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02246B78
+MOD06_02246B78: ; 0x02246B78
+ push {r4, lr}
+ mov r1, #0x82
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ bne _02246B8A
+ mov r0, #0
+ pop {r4, pc}
+_02246B8A:
+ bl MOD06_02246D8C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02246B98
+MOD06_02246B98: ; 0x02246B98
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_02247B2C
+ add r0, r4, #0
+ bl MOD06_02247C0C
+ add r0, r4, #0
+ bl MOD06_02247664
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD06_02248654
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02246BC0
+MOD06_02246BC0: ; 0x02246BC0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_02247B60
+ cmp r0, #2
+ beq _02246BD0
+ mov r0, #0
+ pop {r4, pc}
+_02246BD0:
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02246BE8
+MOD06_02246BE8: ; 0x02246BE8
+ push {r3, lr}
+ ldr r1, [r0, #8]
+ add r1, r1, #1
+ str r1, [r0, #8]
+ cmp r1, #0x14
+ blt _02246C02
+ mov r1, #0
+ str r1, [r0, #8]
+ ldr r1, [r0]
+ add r1, r1, #1
+ str r1, [r0]
+ bl MOD06_02247DC4
+_02246C02:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02246C08
+MOD06_02246C08: ; 0x02246C08
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_02247B60
+ cmp r0, #3
+ beq _02246C18
+ mov r0, #0
+ pop {r4, pc}
+_02246C18:
+ ldr r0, _02246C34 ; =0x00000649
+ bl FUN_020054C8
+ mov r0, #2
+ lsl r0, r0, #0xa
+ str r0, [r4, #0x54]
+ mov r0, #2
+ str r0, [r4, #0x14]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_02246C34: .word 0x00000649
+
+ thumb_func_start MOD06_02246C38
+MOD06_02246C38: ; 0x02246C38
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ ldr r1, [r4, #0x4c]
+ ldr r0, [r4, #0x54]
+ add r0, r1, r0
+ str r0, [r4, #0x4c]
+ ldr r1, [r4, #0x50]
+ ldr r0, [r4, #0x54]
+ sub r0, r1, r0
+ str r0, [r4, #0x50]
+ mov r0, #2
+ ldr r1, [r4, #0x54]
+ lsl r0, r0, #0xa
+ add r2, r1, r0
+ lsl r1, r0, #5
+ str r2, [r4, #0x54]
+ cmp r2, r1
+ ble _02246C66
+ lsl r0, r0, #5
+ str r0, [r4, #0x54]
+_02246C66:
+ mov r0, #0x5f
+ ldr r1, [r4, #0x4c]
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ blt _02246C72
+ str r0, [r4, #0x4c]
+_02246C72:
+ mov r0, #0x61
+ ldr r1, [r4, #0x50]
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bgt _02246C7E
+ str r0, [r4, #0x50]
+_02246C7E:
+ ldr r0, [r4, #0x50]
+ str r0, [sp]
+ ldr r1, [r4, #0x44]
+ ldr r2, [r4, #0x4c]
+ ldr r3, [r4, #0x48]
+ add r0, r4, #0
+ bl MOD06_02247670
+ mov r0, #1
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ bne _02246CAA
+ add r0, r4, #0
+ bl MOD06_02247B60
+ cmp r0, #4
+ bne _02246CAA
+ mov r0, #1
+ str r0, [r4, #0x18]
+ bl MOD06_02246634
+_02246CAA:
+ mov r0, #0x5f
+ ldr r1, [r4, #0x4c]
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bne _02246CD6
+ mov r0, #0x61
+ ldr r1, [r4, #0x50]
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bne _02246CD6
+ ldr r0, [r4, #0x60]
+ ldr r0, [r0, #8]
+ bl MOD06_02247610
+ mov r0, #1
+ str r0, [r4, #0x14]
+ add r0, r4, #0
+ bl MOD06_02247648
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02246CD6:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD06_02246CDC
+MOD06_02246CDC: ; 0x02246CDC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x18]
+ cmp r1, #0
+ bne _02246CF6
+ bl MOD06_02247B60
+ cmp r0, #4
+ bne _02246CF6
+ mov r0, #1
+ str r0, [r4, #0x18]
+ bl MOD06_02246634
+_02246CF6:
+ add r0, r4, #0
+ bl MOD06_02247B60
+ cmp r0, #2
+ beq _02246D04
+ mov r0, #0
+ pop {r4, pc}
+_02246D04:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ bne _02246D12
+ mov r0, #1
+ str r0, [r4, #0x18]
+ bl MOD06_02246634
+_02246D12:
+ add r0, r4, #0
+ bl MOD06_02247B70
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02246D24
+MOD06_02246D24: ; 0x02246D24
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _02246D36
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02246D36:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02246D3C
+MOD06_02246D3C: ; 0x02246D3C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x81
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02246D60 ; =MOD06_02246DA8
+ add r1, r4, #0
+ mov r2, #0x80
+ bl FUN_0200CA60
+ mov r1, #0x85
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ pop {r4, pc}
+ nop
+_02246D60: .word MOD06_02246DA8
+
+ thumb_func_start MOD06_02246D64
+MOD06_02246D64: ; 0x02246D64
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x81
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02246D88 ; =MOD06_02246EA4
+ add r1, r4, #0
+ mov r2, #0x80
+ bl FUN_0200CA60
+ mov r1, #0x85
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ pop {r4, pc}
+ nop
+_02246D88: .word MOD06_02246EA4
+
+ thumb_func_start MOD06_02246D8C
+MOD06_02246D8C: ; 0x02246D8C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x85
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02246DA6
+ bl FUN_0200CAB4
+ mov r0, #0x85
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_02246DA6:
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02246DA8
+MOD06_02246DA8: ; 0x02246DA8
+ push {r3, r4, r5, r6, r7, lr}
+ mov r0, #0x81
+ add r6, r1, #0
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ bne _02246E1E
+ mov r7, #0x6b
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_02246DBE:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _02246DC8
+ bl FUN_02009B04
+_02246DC8:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02246DBE
+ mov r7, #0x6f
+ mov r5, #0
+ add r4, r6, #0
+ lsl r7, r7, #2
+_02246DD8:
+ ldr r0, [r4, r7]
+ cmp r0, #0
+ beq _02246DE2
+ bl FUN_02009D68
+_02246DE2:
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #3
+ blt _02246DD8
+ mov r0, #0x83
+ lsl r0, r0, #2
+ ldr r1, [r6, r0]
+ cmp r1, #0
+ beq _02246DFA
+ add r0, r6, #0
+ bl MOD06_02247808
+_02246DFA:
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r1, [r6, r0]
+ cmp r1, #0
+ beq _02246E0A
+ add r0, r6, #0
+ bl MOD06_02247860
+_02246E0A:
+ mov r0, #0x81
+ lsl r0, r0, #2
+ ldr r1, [r6, r0]
+ mov r2, #0x80
+ add r1, r1, #1
+ str r1, [r6, r0]
+ ldr r0, _02246E20 ; =MOD06_02246E24
+ add r1, r6, #0
+ bl FUN_0200CA98
+_02246E1E:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02246E20: .word MOD06_02246E24
+
+ thumb_func_start MOD06_02246E24
+MOD06_02246E24: ; 0x02246E24
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ mov r0, #0x81
+ add r6, r1, #0
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ cmp r0, #1
+ bne _02246EA2
+ mov r7, #0x6b
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_02246E3C:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _02246E46
+ bl FUN_02009474
+_02246E46:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02246E3C
+ mov r7, #0x6f
+ mov r5, #0
+ add r4, r6, #0
+ lsl r7, r7, #2
+_02246E56:
+ ldr r0, [r4, r7]
+ cmp r0, #0
+ beq _02246E60
+ bl FUN_02009474
+_02246E60:
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #3
+ blt _02246E56
+ mov r0, #0x83
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _02246E7E
+ bl FUN_02016A18
+ mov r0, #0x83
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r6, r0]
+_02246E7E:
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _02246E94
+ bl FUN_02016A18
+ mov r0, #0x21
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+_02246E94:
+ mov r0, #0x82
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r6, r0]
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_02246EA2:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_02246EA4
+MOD06_02246EA4: ; 0x02246EA4
+ push {r4, lr}
+ mov r0, #0x67
+ add r4, r1, #0
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020094F0
+ mov r1, #0x81
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ bne _02246ED6
+ bl FUN_02009B04
+ ldr r0, _02246ED8 ; =MOD06_02246EDC
+ add r1, r4, #0
+ mov r2, #0x80
+ bl FUN_0200CA98
+ mov r0, #0x81
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+_02246ED6:
+ pop {r4, pc}
+ .align 2, 0
+_02246ED8: .word MOD06_02246EDC
+
+ thumb_func_start MOD06_02246EDC
+MOD06_02246EDC: ; 0x02246EDC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x67
+ add r4, r1, #0
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020094F0
+ mov r1, #0x81
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ cmp r1, #1
+ bne _02246F0A
+ bl FUN_02009474
+ mov r0, #0x82
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02246F0A:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_02246F0C
+MOD06_02246F0C: ; 0x02246F0C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD06_0224700C
+ mov r2, #3
+ mov r3, #1
+ add r4, r0, #0
+ lsl r2, r2, #0x12
+ add r0, r5, #0
+ mov r1, #0
+ lsl r3, r3, #0xc
+ str r2, [sp]
+ bl MOD06_02247670
+ add r0, r5, #0
+ bl MOD06_0224761C
+ ldr r0, [r5, #0x60]
+ mov r1, #0
+ ldr r0, [r0, #8]
+ bl FUN_02018884
+ strh r0, [r5, #0x24]
+ ldr r0, [r5, #0x60]
+ mov r1, #3
+ ldr r0, [r0, #8]
+ bl FUN_02018884
+ strh r0, [r5, #0x26]
+ ldr r2, _02246FB4 ; =0x0400000A
+ mov r1, #3
+ ldrh r3, [r2]
+ mov r0, #1
+ bic r3, r1
+ orr r0, r3
+ strh r0, [r2]
+ ldrh r0, [r2, #4]
+ bic r0, r1
+ strh r0, [r2, #4]
+ mov r0, #8
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r2, r5, #0
+ add r0, r4, #0
+ mov r1, #2
+ add r2, #0x6c
+ bl MOD06_02247544
+ ldr r0, [r5, #0x60]
+ add r3, r5, #0
+ ldr r0, [r0, #8]
+ add r1, r4, #0
+ mov r2, #0
+ add r3, #0x68
+ bl MOD06_0224756C
+ ldr r0, [r5, #0x60]
+ add r3, r5, #0
+ ldr r0, [r0, #8]
+ add r1, r4, #0
+ mov r2, #1
+ add r3, #0x64
+ bl MOD06_022475A4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02247018
+ add r0, r4, #0
+ bl FUN_020066F4
+ mov r0, #4
+ mov r1, #0x20
+ bl FUN_020643C0
+ mov r1, #0x1e
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E6E4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02246FB4: .word 0x0400000A
+
+ thumb_func_start MOD06_02246FB8
+MOD06_02246FB8: ; 0x02246FB8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #8
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_020643F0
+ ldr r0, [r4, #0x60]
+ ldr r0, [r0, #8]
+ bl MOD06_02247610
+ add r0, r4, #0
+ bl MOD06_0224725C
+ ldr r2, _02247008 ; =0x04000008
+ ldrh r1, [r4, #0x24]
+ ldrh r3, [r2]
+ mov r0, #3
+ bic r3, r0
+ orr r1, r3
+ strh r1, [r2]
+ ldrh r1, [r2, #6]
+ bic r1, r0
+ ldrh r0, [r4, #0x26]
+ orr r0, r1
+ strh r0, [r2, #6]
+ mov r0, #0
+ mov r1, #1
+ bl FUN_02054590
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E6E4
+ pop {r4, pc}
+ nop
+_02247008: .word 0x04000008
+
+ thumb_func_start MOD06_0224700C
+MOD06_0224700C: ; 0x0224700C
+ ldr r3, _02247014 ; =0x02006671
+ mov r0, #0x61
+ mov r1, #4
+ bx r3
+ .align 2, 0
+_02247014: .word 0x02006671
+
+ thumb_func_start MOD06_02247018
+MOD06_02247018: ; 0x02247018
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ mov r1, #0x7d
+ add r5, r0, #0
+ lsl r1, r1, #2
+ add r1, r5, r1
+ bl MOD06_0224777C
+ add r1, r5, #0
+ mov r0, #0x20
+ add r1, #0x74
+ mov r2, #4
+ bl FUN_02008C9C
+ str r0, [r5, #0x70]
+ add r0, r5, #0
+ mov r2, #2
+ add r0, #0x74
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ mov r0, #4
+ mov r1, #0
+ add r2, r0, #0
+ bl FUN_02008DEC
+ mov r1, #0x67
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #3
+ mov r1, #1
+ mov r2, #4
+ bl FUN_02008DEC
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #4
+ mov r1, #2
+ add r2, r0, #0
+ bl FUN_02008DEC
+ mov r1, #0x69
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #2
+ mov r1, #3
+ mov r2, #4
+ bl FUN_02008DEC
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #4
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ add r1, r4, #0
+ mov r2, #0xa
+ mov r3, #0
+ bl FUN_020091E0
+ mov r1, #0x6b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bne _022470C6
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #4
+ sub r1, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ add r1, r4, #0
+ mov r2, #0xd
+ mov r3, #0
+ bl FUN_020091E0
+ b _022470E0
+_022470C6:
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #4
+ sub r1, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ add r1, r4, #0
+ mov r2, #0x10
+ mov r3, #0
+ bl FUN_020091E0
+_022470E0:
+ mov r1, #0x1b
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_022477E4
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r6, #0
+ str r6, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #4
+ sub r1, #0x14
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ add r1, r4, #0
+ mov r2, #3
+ add r3, r6, #0
+ bl FUN_02009298
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, [r5, #0xc]
+ add r6, r6, #1
+ cmp r0, #0
+ beq _02247142
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r2, #4
+ str r2, [sp, #0xc]
+ sub r1, #0x1c
+ ldr r0, [r5, r1]
+ add r1, r4, #0
+ mov r3, #0
+ bl FUN_02009298
+ lsl r1, r6, #2
+ add r2, r5, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ add r6, r6, #1
+_02247142:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_0224783C
+ lsl r1, r6, #2
+ add r2, r5, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #4
+ sub r1, #0x18
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ add r1, r4, #0
+ mov r2, #0xb
+ mov r3, #0
+ bl FUN_02009358
+ mov r1, #0x72
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bne _02247194
+ mov r0, #2
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #4
+ sub r1, #0x24
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ add r1, r4, #0
+ mov r2, #0xe
+ mov r3, #0
+ bl FUN_02009358
+ b _022471AC
+_02247194:
+ mov r0, #2
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #4
+ sub r1, #0x24
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ add r1, r4, #0
+ mov r2, #0x11
+ mov r3, #0
+ bl FUN_02009358
+_022471AC:
+ mov r1, #0x73
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0x69
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ mov r2, #6
+ mov r3, #0
+ bl FUN_02009358
+ mov r1, #0x1d
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #4
+ sub r1, #0x28
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ add r1, r4, #0
+ mov r2, #0xc
+ bl FUN_02009358
+ mov r1, #0x76
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bne _02247214
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #4
+ sub r1, #0x30
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ add r1, r4, #0
+ mov r2, #0xf
+ mov r3, #0
+ bl FUN_02009358
+ b _0224722E
+_02247214:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #4
+ sub r1, #0x30
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ add r1, r4, #0
+ mov r2, #0x12
+ mov r3, #0
+ bl FUN_02009358
+_0224722E:
+ mov r1, #0x77
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r1, #0x7d
+ lsl r1, r1, #2
+ ldr r0, [r5, #0x5c]
+ add r1, r5, r1
+ mov r2, #4
+ bl MOD06_0224778C
+ mov r1, #0x83
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ sub r1, #0x18
+ add r0, r5, r1
+ mov r1, #4
+ bl MOD06_022477D4
+ mov r1, #0x21
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_0224725C
+MOD06_0224725C: ; 0x0224725C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r7, #0x6b
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_02247268:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _02247272
+ bl FUN_02009C0C
+_02247272:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02247268
+ mov r7, #0x6f
+ mov r5, #0
+ add r4, r6, #0
+ lsl r7, r7, #2
+_02247282:
+ ldr r0, [r4, r7]
+ cmp r0, #0
+ beq _0224728C
+ bl FUN_02009E04
+_0224728C:
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #3
+ blt _02247282
+ mov r7, #0x72
+ mov r5, #0
+ add r4, r6, #0
+ lsl r7, r7, #2
+_0224729C:
+ ldr r0, [r4, r7]
+ cmp r0, #0
+ beq _022472A6
+ bl FUN_02009474
+_022472A6:
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #4
+ blt _0224729C
+ mov r7, #0x76
+ mov r5, #0
+ add r4, r6, #0
+ lsl r7, r7, #2
+_022472B6:
+ ldr r0, [r4, r7]
+ cmp r0, #0
+ beq _022472C0
+ bl FUN_02009474
+_022472C0:
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #2
+ blt _022472B6
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02008E2C
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02008E2C
+ mov r0, #0x69
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02008E2C
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02008E2C
+ ldr r0, [r6, #0x70]
+ bl FUN_0201FDB4
+ ldr r0, [r6, #0x70]
+ bl FUN_0201FD58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02247300
+MOD06_02247300: ; 0x02247300
+ push {r3, lr}
+ ldr r0, [r0, #0x70]
+ cmp r0, #0
+ beq _0224730C
+ bl FUN_0201FDEC
+_0224730C:
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02247310
+MOD06_02247310: ; 0x02247310
+ push {r4, r5, r6, lr}
+ sub sp, #0x70
+ add r5, r0, #0
+ ldr r0, [sp, #0x84]
+ add r4, r1, #0
+ add r1, r2, #0
+ add r2, r3, #0
+ cmp r0, #4
+ bne _02247358
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r6, #0x67
+ ldr r3, [sp, #0x88]
+ str r0, [sp, #0xc]
+ lsl r6, r6, #2
+ str r3, [sp, #0x10]
+ ldr r3, [r5, r6]
+ str r3, [sp, #0x14]
+ add r3, r6, #4
+ ldr r3, [r5, r3]
+ add r6, #8
+ str r3, [sp, #0x18]
+ ldr r3, [r5, r6]
+ str r3, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ ldr r3, [sp, #0x80]
+ add r0, sp, #0x4c
+ bl FUN_02008AA4
+ b _02247392
+_02247358:
+ str r0, [sp]
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0
+ ldr r0, [sp, #0x88]
+ str r3, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r6, [r5, r0]
+ str r6, [sp, #0x14]
+ add r6, r0, #4
+ ldr r6, [r5, r6]
+ str r6, [sp, #0x18]
+ add r6, r0, #0
+ add r6, #8
+ ldr r6, [r5, r6]
+ add r0, #0xc
+ str r6, [sp, #0x1c]
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x20]
+ str r3, [sp, #0x24]
+ str r3, [sp, #0x28]
+ ldr r3, [sp, #0x80]
+ add r0, sp, #0x4c
+ bl FUN_02008AA4
+_02247392:
+ ldr r0, [r5, #0x70]
+ add r2, sp, #0x34
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x4c
+ str r0, [sp, #0x30]
+ ldmia r4!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4]
+ str r0, [r2]
+ ldr r0, [sp, #0x8c]
+ str r0, [sp, #0x40]
+ mov r0, #1
+ str r0, [sp, #0x44]
+ mov r0, #4
+ str r0, [sp, #0x48]
+ add r0, sp, #0x2c
+ bl FUN_0201FF84
+ add r4, r0, #0
+ bne _022473BE
+ bl ErrorHandling
+_022473BE:
+ add r0, r4, #0
+ add sp, #0x70
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_022473C4
+MOD06_022473C4: ; 0x022473C4
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ mov r5, #1
+ add r4, r3, #0
+ str r5, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ str r2, [sp, #0xc]
+ add r2, r5, #0
+ bl MOD06_02247310
+ add r1, r4, #0
+ add r5, r0, #0
+ bl FUN_02020130
+ add r0, r5, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022473EC
+MOD06_022473EC: ; 0x022473EC
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r2, [r0, #0xc]
+ mov r3, #0
+ cmp r2, #1
+ bne _022473FA
+ mov r3, #1
+_022473FA:
+ mov r2, #2
+ str r2, [sp]
+ mov r4, #1
+ str r4, [sp, #4]
+ mov r4, #0
+ str r4, [sp, #8]
+ mov r4, #0x83
+ str r4, [sp, #0xc]
+ bl MOD06_02247310
+ add r4, r0, #0
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r4, #0
+ mov r1, #6
+ bl FUN_02020130
+ add r0, r4, #0
+ add sp, #0x10
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02247424
+MOD06_02247424: ; 0x02247424
+ push {r4, lr}
+ mov r1, #1
+ add r4, r0, #0
+ bl FUN_020200BC
+ mov r1, #1
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ bl FUN_020200D8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224743C
+MOD06_0224743C: ; 0x0224743C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r4, r0, #0
+ add r0, sp, #0x1c
+ mov r7, #0
+ str r7, [r0]
+ str r7, [r0, #4]
+ add r6, r2, #0
+ ldr r5, _022474A0 ; =0x02251430
+ add r3, r1, #0
+ str r7, [r0, #8]
+ ldmia r5!, {r0, r1}
+ add r2, sp, #0x10
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r3, #0
+ str r0, [r2]
+ str r7, [sp]
+ sub r0, r7, #1
+ str r0, [sp, #4]
+ str r7, [sp, #8]
+ add r0, r4, #0
+ add r2, r7, #0
+ add r3, r7, #0
+ str r6, [sp, #0xc]
+ bl MOD06_02247310
+ add r4, r0, #0
+ mov r1, #2
+ bl FUN_020200EC
+ add r0, r4, #0
+ add r1, sp, #0x1c
+ bl FUN_02020054
+ add r0, r4, #0
+ add r1, sp, #0x10
+ bl FUN_02020064
+ add r0, r7, #0
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_02020088
+ add r0, r4, #0
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022474A0: .word 0x02251430
+
+ thumb_func_start MOD06_022474A4
+MOD06_022474A4: ; 0x022474A4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD06_0224700C
+ add r6, r0, #0
+ mov r0, #0x6b
+ mov r5, #0
+ add r2, r4, #0
+ lsl r0, r0, #2
+_022474B8:
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _022474E4
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r6, #0
+ mov r2, #7
+ bl FUN_020091E0
+ lsl r1, r5, #2
+ add r2, r4, r1
+ mov r1, #0x6b
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ b _022474EC
+_022474E4:
+ add r5, r5, #1
+ add r2, r2, #4
+ cmp r5, #4
+ blt _022474B8
+_022474EC:
+ cmp r5, #4
+ blt _022474F4
+ bl ErrorHandling
+_022474F4:
+ mov r0, #0x72
+ mov r5, #0
+ add r2, r4, #0
+ lsl r0, r0, #2
+_022474FC:
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _02247528
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0x69
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r6, #0
+ mov r2, #8
+ bl FUN_02009358
+ lsl r1, r5, #2
+ add r2, r4, r1
+ mov r1, #0x72
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ b _02247530
+_02247528:
+ add r5, r5, #1
+ add r2, r2, #4
+ cmp r5, #4
+ blt _022474FC
+_02247530:
+ cmp r5, #4
+ blt _02247538
+ bl ErrorHandling
+_02247538:
+ add r0, r6, #0
+ bl FUN_020066F4
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02247544
+MOD06_02247544: ; 0x02247544
+ push {r3, r4, r5, lr}
+ add r5, r2, #0
+ mov r2, #4
+ bl FUN_02006704
+ add r1, r5, #0
+ add r4, r0, #0
+ bl FUN_020B0138
+ ldr r1, [r5]
+ mov r0, #3
+ ldr r1, [r1, #0xc]
+ mov r2, #0x20
+ lsl r3, r0, #7
+ bl FUN_02017FB4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224756C
+MOD06_0224756C: ; 0x0224756C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ add r4, r3, #0
+ mov r2, #4
+ bl FUN_02006704
+ add r1, r4, #0
+ add r6, r0, #0
+ bl FUN_020B0088
+ ldr r3, [r4]
+ mov r0, #0
+ str r0, [sp]
+ ldr r2, [r3, #0x14]
+ ldr r3, [r3, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl FUN_02017E14
+ add r0, r6, #0
+ bl FUN_02016A18
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022475A4
+MOD06_022475A4: ; 0x022475A4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r2, #0
+ add r6, r1, #0
+ mov r2, #0
+ add r4, r3, #0
+ mov r1, #3
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_020179E0
+ mov r1, #3
+ add r0, r5, #0
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r6, #0
+ add r1, r7, #0
+ mov r2, #4
+ bl FUN_02006704
+ add r1, r4, #0
+ add r6, r0, #0
+ bl FUN_020B0180
+ ldr r3, [r4]
+ add r0, r5, #0
+ add r2, r3, #0
+ ldr r3, [r3, #8]
+ mov r1, #3
+ add r2, #0xc
+ bl FUN_02017DFC
+ mov r0, #0x20
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0xc
+ mov r2, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020186B4
+ add r0, r5, #0
+ mov r1, #3
+ bl FUN_02017CD0
+ add r0, r6, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_02247610
+MOD06_02247610: ; 0x02247610
+ ldr r3, _02247618 ; =0x02018745
+ mov r1, #3
+ bx r3
+ nop
+_02247618: .word 0x02018745
+
+ thumb_func_start MOD06_0224761C
+MOD06_0224761C: ; 0x0224761C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224767C
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ bl MOD06_02247648
+ add r0, r4, #0
+ bl MOD06_02247650
+ add r0, r4, #0
+ bl MOD06_02247640
+ mov r0, #1
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02247640
+MOD06_02247640: ; 0x02247640
+ mov r1, #1
+ str r1, [r0, #0x30]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_02247648
+MOD06_02247648: ; 0x02247648
+ mov r1, #0
+ str r1, [r0, #0x30]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_02247650
+MOD06_02247650: ; 0x02247650
+ mov r1, #0x18
+ str r1, [r0, #0x34]
+ mov r1, #0
+ str r1, [r0, #0x38]
+ mov r1, #0x17
+ str r1, [r0, #0x3c]
+ mov r1, #1
+ str r1, [r0, #0x40]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_02247664
+MOD06_02247664: ; 0x02247664
+ mov r1, #0x17
+ str r1, [r0, #0x3c]
+ mov r1, #1
+ str r1, [r0, #0x40]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_02247670
+MOD06_02247670: ; 0x02247670
+ str r1, [r0, #0x44]
+ str r3, [r0, #0x48]
+ ldr r1, [sp]
+ str r2, [r0, #0x4c]
+ str r1, [r0, #0x50]
+ bx lr
+
+ thumb_func_start MOD06_0224767C
+MOD06_0224767C: ; 0x0224767C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x86
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0224768E
+ bl ErrorHandling
+_0224768E:
+ ldr r0, _022476A0 ; =MOD06_022476D4
+ add r1, r4, #0
+ mov r2, #0x81
+ bl FUN_0200CA60
+ mov r1, #0x86
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+_022476A0: .word MOD06_022476D4
+
+ thumb_func_start MOD06_022476A4
+MOD06_022476A4: ; 0x022476A4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x86
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _022476B6
+ bl ErrorHandling
+_022476B6:
+ mov r0, #0x86
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200CAB4
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _022476D0 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ pop {r4, pc}
+ nop
+_022476D0: .word 0xFFFF1FFF
+
+ thumb_func_start MOD06_022476D4
+MOD06_022476D4: ; 0x022476D4
+ push {r3, r4, r5, r6}
+ ldr r0, [r1, #0x2c]
+ cmp r0, #0
+ beq _0224776A
+ mov r3, #1
+ lsl r3, r3, #0x1a
+ ldr r2, [r3]
+ ldr r0, _02247770 ; =0xFFFF1FFF
+ and r2, r0
+ ldr r0, [r1, #0x30]
+ lsl r0, r0, #0xd
+ orr r0, r2
+ str r0, [r3]
+ add r3, #0x48
+ ldrh r2, [r3]
+ mov r0, #0x3f
+ bic r2, r0
+ ldr r0, [r1, #0x34]
+ orr r2, r0
+ ldr r0, [r1, #0x38]
+ cmp r0, #0
+ beq _02247704
+ mov r0, #0x20
+ orr r2, r0
+_02247704:
+ ldr r0, _02247774 ; =0x04000048
+ strh r2, [r0]
+ ldrh r2, [r0, #2]
+ mov r0, #0x3f
+ bic r2, r0
+ ldr r0, [r1, #0x3c]
+ orr r2, r0
+ ldr r0, [r1, #0x40]
+ cmp r0, #0
+ beq _0224771C
+ mov r0, #0x20
+ orr r2, r0
+_0224771C:
+ ldr r5, _02247778 ; =0x0400004A
+ strh r2, [r5]
+ ldr r2, [r1, #0x50]
+ ldr r6, [r1, #0x48]
+ asr r0, r2, #0xb
+ lsr r0, r0, #0x14
+ add r0, r2, r0
+ ldr r2, [r1, #0x4c]
+ asr r4, r0, #0xc
+ asr r0, r2, #0xb
+ lsr r0, r0, #0x14
+ add r0, r2, r0
+ ldr r2, [r1, #0x44]
+ asr r3, r0, #0xc
+ asr r0, r2, #0xb
+ lsr r0, r0, #0x14
+ asr r1, r6, #0xb
+ add r0, r2, r0
+ lsr r1, r1, #0x14
+ asr r0, r0, #0xc
+ add r1, r6, r1
+ lsl r2, r0, #8
+ mov r0, #0xff
+ asr r1, r1, #0xc
+ lsl r0, r0, #8
+ lsl r1, r1, #0x18
+ and r2, r0
+ lsr r1, r1, #0x18
+ orr r2, r1
+ add r1, r5, #0
+ sub r1, #0xa
+ strh r2, [r1]
+ lsl r1, r3, #8
+ and r1, r0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ orr r1, r0
+ sub r0, r5, #6
+ strh r1, [r0]
+_0224776A:
+ pop {r3, r4, r5, r6}
+ bx lr
+ nop
+_02247770: .word 0xFFFF1FFF
+_02247774: .word 0x04000048
+_02247778: .word 0x0400004A
+
+ thumb_func_start MOD06_0224777C
+MOD06_0224777C: ; 0x0224777C
+ ldr r3, _02247788 ; =0x02068B69
+ add r2, r0, #0
+ add r0, r1, #0
+ ldr r1, [r2, #0x5c]
+ mov r2, #2
+ bx r3
+ .align 2, 0
+_02247788: .word 0x02068B69
+
+ thumb_func_start MOD06_0224778C
+MOD06_0224778C: ; 0x0224778C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ mov r1, #0x32
+ add r6, r0, #0
+ mov r0, #4
+ lsl r1, r1, #6
+ add r7, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _022477A8
+ bl ErrorHandling
+_022477A8:
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ bl FUN_020671BC
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ ldrh r0, [r5, #6]
+ add r2, r7, #0
+ add r3, r4, #0
+ str r0, [sp, #0xc]
+ ldrh r0, [r5]
+ ldrh r1, [r5, #2]
+ bl FUN_02012560
+ add r0, r4, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022477D4
+MOD06_022477D4: ; 0x022477D4
+ add r3, r0, #0
+ add r2, r1, #0
+ ldrh r0, [r3]
+ ldrh r1, [r3, #4]
+ ldr r3, _022477E0 ; =0x02012471
+ bx r3
+ .align 2, 0
+_022477E0: .word 0x02012471
+
+ thumb_func_start MOD06_022477E4
+MOD06_022477E4: ; 0x022477E4
+ push {lr}
+ sub sp, #0xc
+ mov r2, #3
+ str r2, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ mov r2, #4
+ str r2, [sp, #8]
+ mov r2, #0x67
+ lsl r2, r2, #2
+ ldr r0, [r0, r2]
+ mov r2, #5
+ mov r3, #0
+ bl FUN_020091E0
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02247808
+MOD06_02247808: ; 0x02247808
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0x67
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #3
+ bl FUN_020094F0
+ bl FUN_02009C5C
+ mov r1, #1
+ bl FUN_020B1A14
+ mov r1, #0x32
+ add r5, r0, #0
+ add r0, r4, #0
+ lsl r1, r1, #6
+ bl DC_FlushRange
+ mov r2, #0x32
+ add r0, r4, #0
+ add r1, r5, #0
+ lsl r2, r2, #6
+ bl GX_LoadOBJ
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224783C
+MOD06_0224783C: ; 0x0224783C
+ push {r3, lr}
+ sub sp, #0x10
+ mov r2, #2
+ str r2, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ str r2, [sp, #8]
+ mov r2, #4
+ str r2, [sp, #0xc]
+ mov r2, #0x1a
+ lsl r2, r2, #4
+ ldr r0, [r0, r2]
+ mov r2, #3
+ mov r3, #0
+ bl FUN_02009298
+ add sp, #0x10
+ pop {r3, pc}
+
+ thumb_func_start MOD06_02247860
+MOD06_02247860: ; 0x02247860
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x67
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #3
+ bl FUN_020094F0
+ bl FUN_02009C5C
+ add r6, r0, #0
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #2
+ bl FUN_020094F0
+ add r1, r6, #0
+ bl FUN_02009E54
+ mov r1, #1
+ bl FUN_020B19C4
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #0x20
+ bl DC_FlushRange
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0x20
+ bl GX_LoadOBJPltt
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022478A8
+MOD06_022478A8: ; 0x022478A8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #3
+ bl FUN_020094F0
+ add r4, r0, #0
+ bl FUN_02009C0C
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_02009490
+ mov r1, #0x6b
+ mov r0, #0
+ add r3, r5, #0
+ lsl r1, r1, #2
+_022478D2:
+ ldr r2, [r3, r1]
+ cmp r2, r4
+ bne _022478E6
+ lsl r1, r0, #2
+ add r2, r5, r1
+ mov r1, #0x6b
+ mov r3, #0
+ lsl r1, r1, #2
+ str r3, [r2, r1]
+ b _022478EE
+_022478E6:
+ add r0, r0, #1
+ add r3, r3, #4
+ cmp r0, #4
+ blt _022478D2
+_022478EE:
+ cmp r0, #4
+ blt _022478F6
+ bl ErrorHandling
+_022478F6:
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #2
+ bl FUN_020094F0
+ add r4, r0, #0
+ bl FUN_02009E04
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_02009490
+ mov r1, #0x6f
+ mov r0, #0
+ add r3, r5, #0
+ lsl r1, r1, #2
+_0224791C:
+ ldr r2, [r3, r1]
+ cmp r2, r4
+ bne _02247930
+ lsl r1, r0, #2
+ add r2, r5, r1
+ mov r1, #0x6f
+ mov r3, #0
+ lsl r1, r1, #2
+ str r3, [r2, r1]
+ b _02247938
+_02247930:
+ add r0, r0, #1
+ add r3, r3, #4
+ cmp r0, #3
+ blt _0224791C
+_02247938:
+ cmp r0, #3
+ blt _02247940
+ bl ErrorHandling
+_02247940:
+ mov r0, #0x69
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #3
+ bl FUN_020094F0
+ add r4, r0, #0
+ bl FUN_02009474
+ mov r0, #0x69
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_02009490
+ mov r1, #0x72
+ mov r0, #0
+ add r3, r5, #0
+ lsl r1, r1, #2
+_02247966:
+ ldr r2, [r3, r1]
+ cmp r2, r4
+ bne _0224797A
+ lsl r1, r0, #2
+ add r2, r5, r1
+ mov r1, #0x72
+ mov r3, #0
+ lsl r1, r1, #2
+ str r3, [r2, r1]
+ b _02247982
+_0224797A:
+ add r0, r0, #1
+ add r3, r3, #4
+ cmp r0, #4
+ blt _02247966
+_02247982:
+ cmp r0, #4
+ blt _0224798A
+ bl ErrorHandling
+_0224798A:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224798C
+MOD06_0224798C: ; 0x0224798C
+ push {r3, lr}
+ sub sp, #0x10
+ mov r2, #3
+ str r2, [sp]
+ sub r3, r2, #4
+ str r3, [sp, #4]
+ mov r3, #0
+ str r3, [sp, #8]
+ mov r3, #0x81
+ str r3, [sp, #0xc]
+ mov r3, #2
+ bl MOD06_02247310
+ add sp, #0x10
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022479AC
+MOD06_022479AC: ; 0x022479AC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ mov r0, #2
+ ldr r4, _02247A14 ; =0x02251634
+ add r6, r1, #0
+ str r0, [r5, #0x14]
+ mov r7, #0
+_022479BC:
+ ldr r0, [r4]
+ add r1, sp, #0x1c
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #4]
+ add r2, sp, #0x10
+ str r0, [sp, #0x20]
+ mov r0, #0
+ str r0, [sp, #0x24]
+ ldr r0, [r4, #8]
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0xc]
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x10]
+ ldr r3, [sp, #8]
+ str r0, [sp]
+ str r0, [sp, #0xc]
+ str r6, [sp, #4]
+ add r0, r5, #0
+ bl MOD06_02247A18
+ mov r0, #1
+ ldr r1, [sp, #0x1c]
+ lsl r0, r0, #0x14
+ add r0, r1, r0
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0xc]
+ ldr r3, [sp, #8]
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, sp, #0x1c
+ add r2, sp, #0x10
+ str r6, [sp, #4]
+ bl MOD06_02247A18
+ add r7, r7, #1
+ add r4, #0x14
+ cmp r7, #0xd
+ blt _022479BC
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02247A14: .word 0x02251634
+
+ thumb_func_start MOD06_02247A18
+MOD06_02247A18: ; 0x02247A18
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ ldr r0, [sp, #0x34]
+ str r3, [sp, #8]
+ str r5, [sp, #0x10]
+ add r4, r1, #0
+ str r0, [sp, #0xc]
+ ldmia r2!, {r0, r1}
+ add r3, sp, #0x14
+ stmia r3!, {r0, r1}
+ ldr r0, [r2]
+ ldr r1, _02247A50 ; =0x022514E8
+ str r0, [r3]
+ add r0, sp, #8
+ str r0, [sp]
+ mov r0, #0x84
+ str r0, [sp, #4]
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r3, [sp, #0x30]
+ add r2, r4, #0
+ bl FUN_020644E4
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ nop
+_02247A50: .word 0x022514E8
+
+ thumb_func_start MOD06_02247A54
+MOD06_02247A54: ; 0x02247A54
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ bl FUN_0206475C
+ add r2, r4, #0
+ add r3, r0, #0
+ add r2, #0xc
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r5, #0
+ bl FUN_02064754
+ str r0, [r4, #4]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x14]
+ ldr r2, [r4, #0xc]
+ ldr r3, [r4, #4]
+ add r1, sp, #0
+ bl MOD06_022473C4
+ mov r1, #0
+ str r0, [r4, #8]
+ bl FUN_020200A0
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD06_02247A9C
+MOD06_02247A9C: ; 0x02247A9C
+ ldr r3, _02247AA4 ; =0x0201FFC9
+ ldr r0, [r1, #8]
+ bx r3
+ nop
+_02247AA4: .word 0x0201FFC9
+
+ thumb_func_start MOD06_02247AA8
+MOD06_02247AA8: ; 0x02247AA8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r1, sp, #0
+ add r5, r0, #0
+ bl FUN_0206477C
+ ldr r1, [sp]
+ ldr r0, [r4, #0x18]
+ add r0, r1, r0
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0xb
+ str r0, [sp]
+ sub r1, r1, r2
+ mov r0, #0xb
+ ror r1, r0
+ add r0, r2, r1
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ ldr r0, [r4, #8]
+ add r1, sp, #0
+ bl FUN_02020044
+ ldr r0, [r4, #0x10]
+ cmp r0, #1
+ bne _02247B22
+ ldr r3, [r4, #0x14]
+ ldr r0, [r3, #0x14]
+ cmp r0, #2
+ bne _02247B16
+ ldr r2, [r3, #0x4c]
+ ldr r0, [r3, #0x50]
+ mov r3, #2
+ ldr r6, [sp, #4]
+ lsl r3, r3, #0xc
+ sub r5, r6, r3
+ mov r1, #0
+ cmp r5, r2
+ blt _02247B0C
+ cmp r5, r0
+ bgt _02247B0C
+ add r3, r6, r3
+ cmp r3, r2
+ blt _02247B0C
+ cmp r3, r0
+ bgt _02247B0C
+ mov r1, #1
+_02247B0C:
+ ldr r0, [r4, #8]
+ bl FUN_020200A0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_02247B16:
+ cmp r0, #1
+ bne _02247B22
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_020200A0
+_02247B22:
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02247B28
+MOD06_02247B28: ; 0x02247B28
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_02247B2C
+MOD06_02247B2C: ; 0x02247B2C
+ push {r4, lr}
+ sub sp, #0x18
+ add r2, sp, #0xc
+ mov r3, #0
+ add r4, r0, #0
+ str r3, [r2]
+ str r3, [r2, #4]
+ str r3, [r2, #8]
+ str r4, [sp, #8]
+ add r0, sp, #8
+ str r0, [sp]
+ mov r0, #0x82
+ str r0, [sp, #4]
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ ldr r1, _02247B5C ; =0x02251510
+ bl FUN_020644E4
+ mov r1, #0x7b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+_02247B5C: .word 0x02251510
+
+ thumb_func_start MOD06_02247B60
+MOD06_02247B60: ; 0x02247B60
+ push {r3, lr}
+ mov r1, #0x7b
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bl FUN_02064738
+ ldrb r0, [r0, #2]
+ pop {r3, pc}
+
+ thumb_func_start MOD06_02247B70
+MOD06_02247B70: ; 0x02247B70
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ mov r0, #0x7b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02064738
+ add r5, r0, #0
+ ldr r0, [r5, #0x60]
+ cmp r0, #0
+ beq _02247B8A
+ bl FUN_02064520
+_02247B8A:
+ ldr r0, [r5, #0x64]
+ cmp r0, #0
+ beq _02247B94
+ bl FUN_021F6240
+_02247B94:
+ mov r0, #0x7b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02064520
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_02247BA0
+MOD06_02247BA0: ; 0x02247BA0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ ldr r0, [r0]
+ add r1, sp, #0
+ str r0, [r4, #0x5c]
+ add r0, r5, #0
+ bl FUN_0206477C
+ mov r2, #0
+ ldr r0, [r4, #0x5c]
+ add r1, sp, #0
+ add r3, r2, #0
+ bl MOD06_0224743C
+ str r0, [r4, #0x58]
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD06_02247BCC
+MOD06_02247BCC: ; 0x02247BCC
+ ldr r3, _02247BD4 ; =0x0201FFC9
+ ldr r0, [r1, #0x58]
+ bx r3
+ nop
+_02247BD4: .word 0x0201FFC9
+
+ thumb_func_start MOD06_02247BD8
+MOD06_02247BD8: ; 0x02247BD8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrb r0, [r5]
+ lsl r1, r0, #2
+ ldr r0, _02247BF4 ; =0x02251460
+ ldr r4, [r0, r1]
+_02247BE4:
+ ldrb r1, [r5, #1]
+ add r0, r5, #0
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ blx r1
+ cmp r0, #1
+ beq _02247BE4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02247BF4: .word 0x02251460
+
+ thumb_func_start MOD06_02247BF8
+MOD06_02247BF8: ; 0x02247BF8
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_02247BFC
+MOD06_02247BFC: ; 0x02247BFC
+ push {r3, lr}
+ mov r1, #0
+ strb r1, [r0, #2]
+ ldr r0, [r0, #0x58]
+ bl FUN_020200A0
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD06_02247C0C
+MOD06_02247C0C: ; 0x02247C0C
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ ldr r4, _02247CAC ; =0x02251478
+ add r2, r0, #0
+ ldmia r4!, {r0, r1}
+ add r3, sp, #0xc
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ ldr r4, _02247CB0 ; =0x02251424
+ str r0, [r3]
+ ldmia r4!, {r0, r1}
+ add r3, sp, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ str r0, [r3]
+ mov r0, #0x7b
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ bl FUN_02064738
+ add r4, r0, #0
+ mov r3, #1
+ add r5, r4, #0
+ strb r3, [r4]
+ mov r2, #0
+ strb r2, [r4, #1]
+ strb r2, [r4, #2]
+ add r6, sp, #0xc
+ ldmia r6!, {r0, r1}
+ add r5, #8
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ add r6, sp, #0
+ str r0, [r5]
+ str r2, [r4, #0x14]
+ str r2, [r4, #0x18]
+ mov r0, #0xf
+ add r5, r4, #0
+ str r2, [r4, #0x1c]
+ lsl r0, r0, #0xe
+ str r0, [r4, #0x38]
+ ldmia r6!, {r0, r1}
+ add r5, #0x2c
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ add r1, sp, #0xc
+ str r0, [r5]
+ lsl r0, r3, #9
+ str r0, [r4, #0x50]
+ mov r0, #0x2d
+ lsl r0, r0, #0xe
+ str r0, [r4, #0x40]
+ str r2, [r4, #0x48]
+ lsl r0, r3, #0xd
+ str r0, [r4, #0x4c]
+ ldr r0, [r4, #0x58]
+ bl FUN_02020044
+ ldr r0, [r4, #0x58]
+ add r1, sp, #0
+ bl FUN_02020064
+ ldr r1, [r4, #0x38]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ ldr r0, [r4, #0x58]
+ bl FUN_02020088
+ ldr r0, [r4, #0x58]
+ mov r1, #1
+ bl FUN_020200A0
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02247CAC: .word 0x02251478
+_02247CB0: .word 0x02251424
+
+ thumb_func_start MOD06_02247CB4
+MOD06_02247CB4: ; 0x02247CB4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r1, [r5, #0x48]
+ ldr r0, [r5, #0x4c]
+ ldr r4, [r5, #0x58]
+ add r0, r1, r0
+ str r0, [r5, #0x48]
+ mov r0, #1
+ ldr r1, [r5, #0x4c]
+ lsl r0, r0, #0x10
+ cmp r1, r0
+ bge _02247CD4
+ lsr r0, r0, #2
+ add r0, r1, r0
+ str r0, [r5, #0x4c]
+_02247CD4:
+ ldr r0, _02247DB4 ; =0x0000013B
+ bl FUN_0201B988
+ ldr r2, [r5, #0x48]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ mul r0, r1
+ str r0, [r5, #0x14]
+ ldr r1, [r5, #0x40]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B970
+ ldr r2, [r5, #0x48]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ mul r0, r1
+ str r0, [r5, #0x18]
+ ldr r1, [r5, #0x40]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r2, r0, #0xc
+ ldr r0, _02247DB8 ; =0x0000010E
+ cmp r2, r0
+ bge _02247D1E
+ mov r0, #1
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [r5, #0x40]
+_02247D1E:
+ ldr r1, [r5, #0x2c]
+ ldr r0, [r5, #0x50]
+ add r1, r1, r0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r1, [r5, #0x2c]
+ cmp r1, r0
+ ble _02247D30
+ str r0, [r5, #0x2c]
+_02247D30:
+ ldr r1, [r5, #0x30]
+ ldr r0, [r5, #0x50]
+ add r1, r1, r0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r1, [r5, #0x30]
+ cmp r1, r0
+ ble _02247D42
+ str r0, [r5, #0x30]
+_02247D42:
+ add r1, r5, #0
+ add r0, r4, #0
+ add r1, #0x2c
+ bl FUN_02020064
+ mov r0, #6
+ ldr r1, [r5, #0x38]
+ lsl r0, r0, #0xc
+ sub r1, r1, r0
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ str r1, [r5, #0x38]
+ asr r0, r0, #0xc
+ bpl _02247D64
+ mov r0, #0
+ str r0, [r5, #0x38]
+_02247D64:
+ ldr r1, [r5, #0x38]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_02020088
+ ldr r1, [r5, #8]
+ ldr r0, [r5, #0x14]
+ add r0, r1, r0
+ str r0, [sp]
+ ldr r1, [r5, #0xc]
+ ldr r0, [r5, #0x18]
+ add r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, sp, #0
+ bl FUN_02020044
+ ldr r1, [sp, #4]
+ ldr r0, _02247DBC ; =0xFFFC0000
+ cmp r1, r0
+ bge _02247DAE
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #2
+ strb r0, [r5, #2]
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+_02247DAE:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02247DB4: .word 0x0000013B
+_02247DB8: .word 0x0000010E
+_02247DBC: .word 0xFFFC0000
+
+ thumb_func_start MOD06_02247DC0
+MOD06_02247DC0: ; 0x02247DC0
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD06_02247DC4
+MOD06_02247DC4: ; 0x02247DC4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ ldr r3, _02247F1C ; =0x0225140C
+ add r5, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x24
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r3, _02247F20 ; =0x02251400
+ str r0, [r2]
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x18
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ mov r0, #0x7b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02064738
+ add r4, r0, #0
+ mov r0, #2
+ add r2, r4, #0
+ strb r0, [r4]
+ mov r6, #0
+ strb r6, [r4, #1]
+ mov r7, #1
+ strb r7, [r4, #2]
+ str r6, [r4, #4]
+ add r3, sp, #0x24
+ ldmia r3!, {r0, r1}
+ add r2, #8
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r3, sp, #0x18
+ str r0, [r2]
+ str r6, [r4, #0x14]
+ str r6, [r4, #0x18]
+ str r6, [r4, #0x1c]
+ ldr r6, _02247F24 ; =0x0013B000
+ add r2, r4, #0
+ str r6, [r4, #0x38]
+ ldmia r3!, {r0, r1}
+ add r2, #0x2c
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r7, #0
+ add r0, #0xff
+ str r0, [r4, #0x50]
+ mov r0, #0xe1
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x40]
+ mov r0, #3
+ lsl r0, r0, #0x12
+ str r0, [r4, #0x48]
+ lsl r0, r7, #0x11
+ str r0, [r4, #0x4c]
+ lsr r0, r6, #0xc
+ bl FUN_0201B988
+ ldr r2, [r4, #0x48]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ mul r0, r1
+ str r0, [r4, #0x14]
+ ldr r1, [r4, #0x40]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B970
+ ldr r2, [r4, #0x48]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ mul r0, r1
+ str r0, [r4, #0x18]
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x14]
+ add r0, r1, r0
+ str r0, [sp, #0x24]
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x18]
+ add r0, r1, r0
+ str r0, [sp, #0x28]
+ ldr r0, [r4, #0x58]
+ add r1, sp, #0x24
+ bl FUN_02020044
+ ldr r0, [r4, #0x58]
+ add r1, sp, #0x18
+ bl FUN_02020064
+ ldr r1, [r4, #0x38]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ ldr r0, [r4, #0x58]
+ bl FUN_02020088
+ ldr r0, [r4, #0x58]
+ add r1, r7, #0
+ bl FUN_020200A0
+ mov r1, #0x1e
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl MOD06_0224823C
+ str r0, [r4, #0x60]
+ add r0, r7, #0
+ str r0, [r5, #0x1c]
+ ldr r0, [r5, #0x60]
+ mov r1, #4
+ bl FUN_021F61F4
+ ldr r2, _02247F28 ; =0xFFF88000
+ add r1, r7, #0
+ mov r3, #0xc
+ str r0, [r4, #0x64]
+ bl FUN_021F6254
+ add r1, sp, #0xc
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ ldr r3, _02247F2C ; =0x02251484
+ str r0, [r1, #8]
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ mov r0, #0x79
+ ldr r1, [r4, #0x5c]
+ lsl r0, r0, #2
+ ldr r4, [r1, r0]
+ mov r1, #2
+ add r0, r4, #0
+ bl FUN_020200EC
+ add r0, r4, #0
+ add r1, sp, #0xc
+ bl FUN_02020054
+ add r0, r4, #0
+ add r1, sp, #0
+ bl FUN_02020064
+ mov r0, #0
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_02020088
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02247F1C: .word 0x0225140C
+_02247F20: .word 0x02251400
+_02247F24: .word 0x0013B000
+_02247F28: .word 0xFFF88000
+_02247F2C: .word 0x02251484
+
+ thumb_func_start MOD06_02247F30
+MOD06_02247F30: ; 0x02247F30
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r1, [r5, #0x48]
+ ldr r0, [r5, #0x4c]
+ ldr r4, [r5, #0x58]
+ sub r0, r1, r0
+ str r0, [r5, #0x48]
+ bpl _02247F46
+ mov r0, #0
+ str r0, [r5, #0x48]
+_02247F46:
+ mov r0, #2
+ ldr r1, [r5, #0x4c]
+ lsl r0, r0, #0xa
+ cmp r1, r0
+ ble _02247F58
+ mov r0, #6
+ lsl r0, r0, #0xa
+ sub r0, r1, r0
+ str r0, [r5, #0x4c]
+_02247F58:
+ mov r0, #1
+ ldr r1, [r5, #0x4c]
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bge _02247F64
+ str r0, [r5, #0x4c]
+_02247F64:
+ ldr r0, _02248098 ; =0x0000013B
+ bl FUN_0201B988
+ ldr r2, [r5, #0x48]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ mul r0, r1
+ str r0, [r5, #0x14]
+ ldr r1, [r5, #0x40]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B970
+ ldr r2, [r5, #0x48]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ mul r0, r1
+ str r0, [r5, #0x18]
+ ldr r1, [r5, #0x40]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r2, r0, #0xc
+ ldr r0, _0224809C ; =0x0000010E
+ cmp r2, r0
+ bge _02247FAE
+ mov r0, #1
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [r5, #0x40]
+_02247FAE:
+ ldr r1, [r5, #0x2c]
+ ldr r0, [r5, #0x50]
+ add r1, r1, r0
+ mov r0, #6
+ lsl r0, r0, #0xa
+ str r1, [r5, #0x2c]
+ cmp r1, r0
+ ble _02247FC0
+ str r0, [r5, #0x2c]
+_02247FC0:
+ ldr r1, [r5, #0x30]
+ ldr r0, [r5, #0x50]
+ add r1, r1, r0
+ mov r0, #6
+ lsl r0, r0, #0xa
+ str r1, [r5, #0x30]
+ cmp r1, r0
+ ble _02247FD2
+ str r0, [r5, #0x30]
+_02247FD2:
+ add r1, r5, #0
+ add r0, r4, #0
+ add r1, #0x2c
+ bl FUN_02020064
+ mov r0, #2
+ ldr r1, [r5, #0x38]
+ lsl r0, r0, #0xe
+ add r1, r1, r0
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ str r1, [r5, #0x38]
+ asr r1, r0, #0xc
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ cmp r1, r0
+ ble _02247FFA
+ lsl r0, r0, #0xc
+ str r0, [r5, #0x38]
+_02247FFA:
+ ldr r1, [r5, #0x38]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_02020088
+ ldr r1, [r5, #8]
+ ldr r0, [r5, #0x14]
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+ ldr r1, [r5, #0xc]
+ ldr r0, [r5, #0x18]
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r5, #0x48]
+ cmp r0, #0
+ bne _0224803C
+ mov r0, #0
+ str r0, [r5, #4]
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+ b _02248042
+_0224803C:
+ ldr r0, [r5, #4]
+ add r0, r0, #1
+ str r0, [r5, #4]
+_02248042:
+ ldr r0, [r5, #4]
+ cmp r0, #0xc
+ bne _0224804E
+ ldr r0, [r5, #0x60]
+ bl MOD06_02248270
+_0224804E:
+ mov r0, #0x79
+ ldr r1, [r5, #0x5c]
+ lsl r0, r0, #2
+ ldr r4, [r1, r0]
+ add r0, r4, #0
+ bl FUN_02020120
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r1, [sp]
+ mov r0, #5
+ add r1, #0x80
+ lsl r0, r0, #0xa
+ str r1, [sp]
+ cmp r1, r0
+ ble _02248078
+ str r0, [sp]
+_02248078:
+ ldr r1, [sp, #4]
+ mov r0, #5
+ add r1, #0x80
+ lsl r0, r0, #0xa
+ str r1, [sp, #4]
+ cmp r1, r0
+ ble _02248088
+ str r0, [sp, #4]
+_02248088:
+ add r0, r4, #0
+ add r1, sp, #0
+ bl FUN_02020064
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_02248098: .word 0x0000013B
+_0224809C: .word 0x0000010E
+
+ thumb_func_start MOD06_022480A0
+MOD06_022480A0: ; 0x022480A0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x79
+ ldr r1, [r5, #0x5c]
+ lsl r0, r0, #2
+ ldr r4, [r1, r0]
+ mov r1, #3
+ add r0, r4, #0
+ bl FUN_02020130
+ add r0, r4, #0
+ bl FUN_0202011C
+ ldr r4, [r0, #4]
+ ldr r0, [r5, #0x58]
+ bl FUN_0202011C
+ ldr r0, [r0, #4]
+ sub r0, r4, r0
+ str r0, [r5, #0x54]
+ ldr r0, [r5, #0x60]
+ bl MOD06_02248264
+ ldr r0, [r5, #0x64]
+ mov r1, #2
+ mov r2, #0
+ mov r3, #0xc
+ bl FUN_021F6254
+ mov r1, #1
+ lsl r1, r1, #8
+ str r1, [r5, #0x50]
+ lsl r0, r1, #0xb
+ str r0, [r5, #0x40]
+ mov r0, #0
+ str r0, [r5, #0x48]
+ lsl r0, r1, #3
+ str r0, [r5, #0x4c]
+ mov r0, #3
+ strb r0, [r5, #2]
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022480FC
+MOD06_022480FC: ; 0x022480FC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r1, [r5, #0x48]
+ ldr r0, [r5, #0x4c]
+ ldr r4, [r5, #0x58]
+ add r0, r1, r0
+ str r0, [r5, #0x48]
+ mov r0, #1
+ ldr r1, [r5, #0x4c]
+ lsl r0, r0, #0xc
+ add r2, r1, r0
+ lsl r1, r0, #4
+ str r2, [r5, #0x4c]
+ cmp r2, r1
+ ble _02248120
+ lsl r0, r0, #4
+ str r0, [r5, #0x4c]
+_02248120:
+ ldr r1, [r5, #0x40]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ lsl r0, r0, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B988
+ ldr r2, [r5, #0x48]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ mul r0, r1
+ str r0, [r5, #0x14]
+ mov r0, #0x80
+ bl FUN_0201B970
+ ldr r2, [r5, #0x48]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ mul r0, r1
+ str r0, [r5, #0x18]
+ mov r0, #0x87
+ ldr r1, [r5, #0x40]
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bge _02248164
+ mov r0, #1
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [r5, #0x40]
+_02248164:
+ ldr r1, [r5, #0x2c]
+ ldr r0, [r5, #0x50]
+ add r1, r1, r0
+ mov r0, #2
+ lsl r0, r0, #0xc
+ str r1, [r5, #0x2c]
+ cmp r1, r0
+ ble _02248176
+ str r0, [r5, #0x2c]
+_02248176:
+ ldr r1, [r5, #0x30]
+ ldr r0, [r5, #0x50]
+ add r1, r1, r0
+ mov r0, #2
+ lsl r0, r0, #0xc
+ str r1, [r5, #0x30]
+ cmp r1, r0
+ ble _02248188
+ str r0, [r5, #0x30]
+_02248188:
+ add r1, r5, #0
+ add r0, r4, #0
+ add r1, #0x2c
+ bl FUN_02020064
+ ldr r1, [r5, #8]
+ ldr r0, [r5, #0x14]
+ add r0, r1, r0
+ str r0, [sp, #0x18]
+ ldr r1, [r5, #0xc]
+ ldr r0, [r5, #0x18]
+ add r0, r1, r0
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ add r1, sp, #0x18
+ bl FUN_02020044
+ mov r0, #0x79
+ ldr r1, [r5, #0x5c]
+ lsl r0, r0, #2
+ ldr r4, [r1, r0]
+ add r0, r4, #0
+ bl FUN_02020120
+ add r2, sp, #0xc
+ add r3, sp, #0x18
+ add r6, r0, #0
+ ldmia r3!, {r0, r1}
+ add r7, r2, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldmia r6!, {r0, r1}
+ add r2, sp, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r2]
+ mov r0, #1
+ ldr r1, [r5, #0x54]
+ lsl r0, r0, #0xc
+ sub r1, r1, r0
+ str r1, [r5, #0x54]
+ ldr r0, [sp, #0x10]
+ add r0, r0, r1
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_02020044
+ mov r0, #1
+ ldr r1, [sp]
+ lsl r0, r0, #8
+ add r2, r1, r0
+ lsl r1, r0, #5
+ str r2, [sp]
+ cmp r2, r1
+ ble _022481FE
+ lsl r0, r0, #5
+ str r0, [sp]
+_022481FE:
+ mov r0, #1
+ ldr r1, [sp, #4]
+ lsl r0, r0, #8
+ add r2, r1, r0
+ lsl r1, r0, #5
+ str r2, [sp, #4]
+ cmp r2, r1
+ ble _02248212
+ lsl r0, r0, #5
+ str r0, [sp, #4]
+_02248212:
+ add r0, r4, #0
+ add r1, sp, #0
+ bl FUN_02020064
+ ldr r1, [sp, #0x1c]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ cmp r0, #0xf0
+ blt _02248232
+ mov r0, #2
+ strb r0, [r5, #2]
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+_02248232:
+ mov r0, #0
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_02248238
+MOD06_02248238: ; 0x02248238
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD06_0224823C
+MOD06_0224823C: ; 0x0224823C
+ push {lr}
+ sub sp, #0x1c
+ add r2, sp, #0x10
+ mov r3, #0
+ str r3, [r2]
+ str r3, [r2, #4]
+ str r1, [sp, #0xc]
+ str r3, [r2, #8]
+ add r1, sp, #8
+ str r1, [sp]
+ mov r1, #0x81
+ str r1, [sp, #4]
+ ldr r1, _02248260 ; =0x022514D4
+ bl FUN_020644E4
+ add sp, #0x1c
+ pop {pc}
+ nop
+_02248260: .word 0x022514D4
+
+ thumb_func_start MOD06_02248264
+MOD06_02248264: ; 0x02248264
+ push {r3, lr}
+ bl FUN_02064738
+ mov r1, #0
+ str r1, [r0]
+ pop {r3, pc}
+
+ thumb_func_start MOD06_02248270
+MOD06_02248270: ; 0x02248270
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl FUN_02064738
+ add r4, r0, #0
+ mov r0, #1
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ str r0, [r4, #0xc]
+ str r0, [r4, #8]
+ str r0, [r4, #0x10]
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x20]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r2, #0
+ str r0, [r3]
+ add r0, r5, #0
+ bl FUN_0206476C
+ ldr r0, [r4, #0x20]
+ mov r1, #5
+ bl FUN_02020130
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022482B8
+MOD06_022482B8: ; 0x022482B8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl FUN_02064738
+ add r4, r0, #0
+ mov r0, #2
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ str r0, [r4, #0xc]
+ str r0, [r4, #8]
+ str r0, [r4, #0x10]
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x20]
+ add r1, sp, #0
+ bl MOD06_02245EAC
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ ldr r0, [r4, #0x20]
+ mov r1, #4
+ bl FUN_02020130
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022482F4
+MOD06_022482F4: ; 0x022482F4
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ ldr r1, [r0]
+ str r1, [r4, #0x1c]
+ ldr r0, [r0, #4]
+ str r0, [r4, #0x20]
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02248308
+MOD06_02248308: ; 0x02248308
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _0224834C
+ ldr r1, [r4, #0xc]
+ lsl r2, r1, #2
+ ldr r1, _02248350 ; =0x02251570
+ ldr r1, [r1, r2]
+ str r1, [r4, #0x14]
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r1, [sp, #4]
+ ldr r0, [r4, #0x14]
+ add r0, r1, r0
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x20]
+ add r1, sp, #0
+ bl FUN_02020044
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #0xc
+ blt _0224834C
+ mov r0, #0
+ str r0, [r4, #0xc]
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_0224834C:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_02248350: .word 0x02251570
+
+ thumb_func_start MOD06_02248354
+MOD06_02248354: ; 0x02248354
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _02248398
+ ldr r1, [r4, #0xc]
+ lsl r2, r1, #2
+ ldr r1, _0224839C ; =0x022514C4
+ ldr r1, [r1, r2]
+ str r1, [r4, #0x14]
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r1, [sp, #4]
+ ldr r0, [r4, #0x14]
+ add r0, r1, r0
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x20]
+ add r1, sp, #0
+ bl FUN_02020044
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #4
+ blt _02248398
+ mov r0, #0
+ str r0, [r4, #0xc]
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_02248398:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_0224839C: .word 0x022514C4
+
+ thumb_func_start MOD06_022483A0
+MOD06_022483A0: ; 0x022483A0
+ push {r3, lr}
+ ldr r2, [r1]
+ cmp r2, #1
+ beq _022483AE
+ cmp r2, #2
+ beq _022483B4
+ pop {r3, pc}
+_022483AE:
+ bl MOD06_02248308
+ pop {r3, pc}
+_022483B4:
+ bl MOD06_02248354
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022483BC
+MOD06_022483BC: ; 0x022483BC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0x5f
+ add r5, r0, #0
+ mov r0, #4
+ lsl r1, r1, #2
+ bl MOD06_02248634
+ add r1, r0, #0
+ str r4, [r1, #0xc]
+ ldr r0, _022483DC ; =MOD06_02248400
+ mov r2, #0x85
+ str r5, [r1, #0x14]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022483DC: .word MOD06_02248400
+
+ thumb_func_start MOD06_022483E0
+MOD06_022483E0: ; 0x022483E0
+ push {r3, lr}
+ bl FUN_0201B6C8
+ ldr r0, [r0, #4]
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022483EC
+MOD06_022483EC: ; 0x022483EC
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201B6C8
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02248400
+MOD06_02248400: ; 0x02248400
+ push {r3, r4, r5, lr}
+ ldr r4, _02248434 ; =0x02251538
+ add r5, r1, #0
+_02248406:
+ ldr r1, [r5]
+ add r0, r5, #0
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ blx r1
+ cmp r0, #1
+ beq _02248406
+ ldr r0, [r5, #0x10]
+ cmp r0, #0
+ beq _02248432
+ mov r0, #0x17
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02248428
+ bl FUN_02064584
+_02248428:
+ ldr r0, [r5, #0x20]
+ cmp r0, #0
+ beq _02248432
+ bl FUN_0201FDEC
+_02248432:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02248434: .word 0x02251538
+
+ thumb_func_start MOD06_02248438
+MOD06_02248438: ; 0x02248438
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl MOD06_02246658
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02248450
+MOD06_02248450: ; 0x02248450
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #4
+ mov r1, #0x20
+ bl FUN_020643C0
+ mov r1, #0x17
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r2, #2
+ str r2, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r1, #4
+ str r1, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ str r1, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0x18
+ mov r1, #0x20
+ add r3, r2, #0
+ str r2, [sp, #0x14]
+ bl MOD06_0224593C
+ bl MOD06_02246604
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0x18
+ add r1, r4, #0
+ mov r2, #7
+ mov r3, #0
+ bl MOD06_02245B94
+ add r0, r5, #0
+ add r0, #0x18
+ add r1, r4, #0
+ mov r2, #3
+ mov r3, #0
+ bl MOD06_02245C6C
+ add r0, r5, #0
+ add r0, #0x18
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD06_02245D44
+ add r0, r5, #0
+ add r0, #0x18
+ mov r1, #0
+ bl MOD06_02245C04
+ add r0, r5, #0
+ add r0, #0x18
+ mov r1, #0
+ bl MOD06_02245CDC
+ add r0, r5, #0
+ add r0, #0x18
+ mov r1, #0
+ bl MOD06_02245C38
+ add r0, r5, #0
+ add r0, #0x18
+ mov r1, #0
+ bl MOD06_02245D10
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bne _02248522
+ add r0, r5, #0
+ add r0, #0x18
+ add r1, r4, #0
+ mov r2, #0xd
+ mov r3, #2
+ bl MOD06_02245B94
+ add r0, r5, #0
+ add r0, #0x18
+ add r1, r4, #0
+ mov r2, #0xe
+ mov r3, #2
+ bl MOD06_02245D44
+ add r0, r5, #0
+ add r0, #0x18
+ add r1, r4, #0
+ mov r2, #0xf
+ mov r3, #1
+ bl MOD06_02245DB4
+ add r0, r5, #0
+ add r0, #0x18
+ mov r1, #2
+ bl MOD06_02245C04
+ add r0, r5, #0
+ add r0, #0x18
+ mov r1, #2
+ bl MOD06_02245C38
+ b _02248582
+_02248522:
+ add r0, r5, #0
+ add r0, #0x18
+ add r1, r4, #0
+ mov r2, #0x10
+ mov r3, #2
+ bl MOD06_02245B94
+ add r0, r5, #0
+ add r0, #0x18
+ add r1, r4, #0
+ mov r2, #4
+ mov r3, #1
+ bl MOD06_02245C6C
+ add r0, r5, #0
+ add r0, #0x18
+ add r1, r4, #0
+ mov r2, #0x11
+ mov r3, #2
+ bl MOD06_02245D44
+ add r0, r5, #0
+ add r0, #0x18
+ add r1, r4, #0
+ mov r2, #0x12
+ mov r3, #1
+ bl MOD06_02245DB4
+ add r0, r5, #0
+ add r0, #0x18
+ mov r1, #2
+ bl MOD06_02245C04
+ add r0, r5, #0
+ add r0, #0x18
+ mov r1, #1
+ bl MOD06_02245CDC
+ add r0, r5, #0
+ add r0, #0x18
+ mov r1, #2
+ bl MOD06_02245C38
+ add r0, r5, #0
+ add r0, #0x18
+ mov r1, #1
+ bl MOD06_02245D10
+_02248582:
+ add r0, r4, #0
+ bl FUN_020066F4
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_02248594
+MOD06_02248594: ; 0x02248594
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x18
+ bl MOD06_02245F2C
+ mov r1, #0x5b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r3, #0x17
+ lsl r3, r3, #4
+ ldr r1, [r4, r3]
+ sub r3, r3, #4
+ add r2, r4, #0
+ ldr r0, [r4, #0x14]
+ ldr r3, [r4, r3]
+ add r2, #0x18
+ bl MOD06_02245F6C
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ bl MOD06_02246034
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD06_022485DC
+MOD06_022485DC: ; 0x022485DC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD06_02245FA0
+ cmp r0, #2
+ beq _022485F2
+ mov r0, #0
+ pop {r4, pc}
+_022485F2:
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD06_02245FD0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02248608
+MOD06_02248608: ; 0x02248608
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x17
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_020643F0
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD06_02245A80
+ mov r0, #0
+ str r0, [r4, #0x10]
+ mov r1, #1
+ str r1, [r4, #4]
+ ldr r1, [r4]
+ add r1, r1, #1
+ str r1, [r4]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02248630
+MOD06_02248630: ; 0x02248630
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD06_02248634
+MOD06_02248634: ; 0x02248634
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_020169D8
+ add r4, r0, #0
+ bne _02248644
+ bl ErrorHandling
+_02248644:
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r5, #0
+ bl Call_FillMemWithValue
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02248654
+MOD06_02248654: ; 0x02248654
+ push {r3, r4, r5, lr}
+ ldr r0, [r0, #0x60]
+ add r4, r1, #0
+ ldr r0, [r0, #0x38]
+ bl FUN_020553A0
+ add r5, r0, #0
+ bl FUN_02058914
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0205889C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_02248670
+MOD06_02248670: ; 0x02248670
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ ldr r1, [r0]
+ ldr r0, [r0, #4]
+ str r1, [r4]
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02248684
+MOD06_02248684: ; 0x02248684
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r0, [r4]
+ bl FUN_0202011C
+ ldr r1, [r4, #4]
+ ldr r0, [r0, #4]
+ ldr r5, [r1, #0x4c]
+ ldr r3, [r1, #0x50]
+ ldr r1, [r1, #0x1c]
+ cmp r1, #0
+ bne _022486C0
+ mov r1, #2
+ lsl r1, r1, #0xe
+ sub r2, r0, r1
+ cmp r2, r5
+ blt _022486B6
+ add r0, r0, r1
+ cmp r0, r3
+ bgt _022486B6
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_020200A0
+ pop {r3, r4, r5, pc}
+_022486B6:
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_020200A0
+ pop {r3, r4, r5, pc}
+_022486C0:
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_020200A0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022486CC
+MOD06_022486CC: ; 0x022486CC
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r2, sp, #0x10
+ mov r3, #0
+ str r3, [r2]
+ add r4, r0, #0
+ str r3, [r2, #4]
+ mov r0, #0x79
+ str r3, [r2, #8]
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ sub r0, r0, #4
+ str r1, [sp, #8]
+ str r4, [sp, #0xc]
+ add r1, sp, #8
+ str r1, [sp]
+ mov r1, #0x86
+ str r1, [sp, #4]
+ ldr r0, [r4, r0]
+ ldr r1, _02248704 ; =0x022514FC
+ bl FUN_020644E4
+ mov r1, #0x1f
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ nop
+_02248704: .word 0x022514FC
+
+ thumb_func_start MOD06_02248708
+MOD06_02248708: ; 0x02248708
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x1f
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02248722
+ bl FUN_02064520
+ mov r0, #0x1f
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_02248722:
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02248724
+MOD06_02248724: ; 0x02248724
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r1, #8]
+ str r1, [sp]
+ mov r1, #0
+ bl FUN_0206B9B0
+ add r6, r0, #0
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A9B0
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD06_02248810
+ str r0, [sp, #4]
+ cmp r0, #0
+ beq _022487AC
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r6, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r0, [sp]
+ ldr r0, [r0, #0x14]
+ cmp r0, #1
+ bne _0224877E
+ cmp r4, #0
+ beq _02248782
+_0224877E:
+ cmp r0, #4
+ bne _0224878A
+_02248782:
+ add r0, sp, #4
+ bl FUN_0202AA90
+ b _0224879E
+_0224878A:
+ ldr r0, [sp, #4]
+ mov r1, #5
+ add r2, r4, #0
+ bl FUN_0202AAFC
+ ldr r0, [sp, #4]
+ mov r1, #7
+ add r2, r6, #0
+ bl FUN_0202AAFC
+_0224879E:
+ ldr r1, [r5, #0x1c]
+ add r0, r7, #0
+ ldr r1, [r1]
+ bl MOD06_022487D8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_022487AC:
+ bl FUN_0201B9EC
+ mov r1, #0x29
+ lsl r1, r1, #4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x64
+ blo _022487C4
+ bl ErrorHandling
+_022487C4:
+ cmp r4, #0x1e
+ bhs _022487D2
+ ldr r1, [r5, #0x1c]
+ add r0, r7, #0
+ ldr r1, [r1]
+ bl MOD06_022487D8
+_022487D2:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022487D8
+MOD06_022487D8: ; 0x022487D8
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+_022487E0:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0202AA74
+ cmp r0, #0
+ beq _02248804
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0202AA40
+ bl FUN_0206043C
+ cmp r6, r0
+ bne _02248804
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_020603B0
+_02248804:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #3
+ blo _022487E0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_02248810
+MOD06_02248810: ; 0x02248810
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+_02248818:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0202AA74
+ cmp r0, #0
+ beq _0224883C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0202AAA0
+ mov r1, #4
+ add r7, r0, #0
+ bl FUN_0202AAB8
+ cmp r6, r0
+ bne _0224883C
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224883C:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #3
+ blo _02248818
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224884C
+MOD06_0224884C: ; 0x0224884C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x104
+ add r6, r1, #0
+ add r5, r0, #0
+ cmp r6, #4
+ blo _0224885C
+ bl ErrorHandling
+_0224885C:
+ add r0, r5, #0
+ mov r1, #0x14
+ bl FUN_02016998
+ add r4, r0, #0
+ add r2, r4, #0
+ mov r1, #0x14
+ mov r0, #0
+_0224886C:
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _0224886C
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x73
+ add r1, r6, #0
+ add r3, r5, #0
+ bl FUN_02006C98
+ str r0, [r4]
+ str r5, [r4, #0x10]
+ str r6, [r4, #0xc]
+ add r0, r5, #0
+ bl FUN_020669C0
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl FUN_02023928
+ str r0, [r4, #8]
+ bl FUN_02023948
+ add r0, r5, #0
+ add r1, r6, #4
+ bl MOD06_022489AC
+ add r5, r0, #0
+ add r1, sp, #4
+ mov r2, #0x80
+ bl FUN_02021EF0
+ add r0, r5, #0
+ bl FUN_02021A20
+ ldr r0, [r4, #8]
+ add r1, sp, #4
+ bl FUN_0202395C
+ ldr r1, [r4]
+ ldr r0, [r4, #8]
+ ldr r1, [r1, #0x40]
+ bl FUN_020239C8
+ add r0, r4, #0
+ add sp, #0x104
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD06_022488CC
+MOD06_022488CC: ; 0x022488CC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02016A18
+ ldr r0, [r4, #4]
+ bl FUN_02016A18
+ ldr r0, [r4, #8]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022488EC
+MOD06_022488EC: ; 0x022488EC
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_022488F4
+MOD06_022488F4: ; 0x022488F4
+ ldr r0, [r0]
+ ldr r0, [r0, #0x4c]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_022488FC
+MOD06_022488FC: ; 0x022488FC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0
+ add r6, r2, #0
+ bl FUN_0206BB1C
+ ldr r2, [r4, #4]
+ add r1, r6, #0
+ bl FUN_0206B9DC
+ ldr r0, [r5, #0xc]
+ ldr r1, [r4, #4]
+ bl FUN_0202C144
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_0224891C
+MOD06_0224891C: ; 0x0224891C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ ldr r0, [r6, #0xc]
+ add r7, r2, #0
+ add r5, r1, #0
+ add r4, r3, #0
+ bl FUN_0206BB1C
+ add r1, r7, #0
+ bl FUN_0206B9B0
+ mov r1, #0xa0
+ mov r2, #0
+ add r7, r0, #0
+ bl FUN_020671BC
+ add r2, r0, #0
+ ldr r0, [r5, #0x10]
+ str r0, [sp]
+ ldr r0, [r6, #0x1c]
+ ldr r0, [r0]
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ ldr r1, [r5]
+ ldr r3, [r5, #0xc]
+ bl MOD06_022489D4
+ ldr r1, [sp, #0x20]
+ add r0, r7, #0
+ bl FUN_02069B88
+ ldr r0, [r5, #4]
+ ldr r1, [sp, #0x24]
+ bl FUN_02069B88
+ ldr r0, [sp, #0x20]
+ bl FUN_020690E4
+ str r0, [r4]
+ ldr r0, [sp, #0x24]
+ bl FUN_020690E4
+ str r0, [r4, #4]
+ ldr r0, [r5, #8]
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [r4, #0x10]
+ ldr r0, [r6, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x14]
+ add r0, r6, #0
+ bl FUN_0204B2A4
+ cmp r0, #1
+ bhi _02248996
+ mov r0, #0
+ add sp, #8
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02248996:
+ cmp r0, #2
+ bne _022489A2
+ mov r0, #1
+ add sp, #8
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_022489A2:
+ mov r0, #2
+ str r0, [r4, #0xc]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022489AC
+MOD06_022489AC: ; 0x022489AC
+ push {r3, r4, r5, lr}
+ ldr r2, _022489D0 ; =0x00000146
+ add r3, r0, #0
+ add r4, r1, #0
+ mov r0, #0
+ mov r1, #0x1a
+ 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}
+ .align 2, 0
+_022489D0: .word 0x00000146
+
+ thumb_func_start MOD06_022489D4
+MOD06_022489D4: ; 0x022489D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r3, #0
+ mov r3, #1
+ add r4, r1, #0
+ str r3, [sp]
+ ldr r1, [r4, #0x38]
+ add r5, r0, #0
+ str r1, [sp, #4]
+ str r3, [sp, #8]
+ ldr r1, [r4, #0x20]
+ mov r3, #0x20
+ str r1, [sp, #0xc]
+ ldr r1, [r4]
+ bl FUN_02066ACC
+ ldr r0, [sp, #0x28]
+ add r1, r6, #0
+ bl MOD06_022489AC
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #0x76
+ add r2, r7, #0
+ bl FUN_02067830
+ add r0, r7, #0
+ bl FUN_02021A20
+ mov r1, #1
+ add r0, sp, #0x10
+ strb r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x4d
+ add r2, sp, #0x10
+ bl FUN_02067830
+ add r0, r5, #0
+ mov r1, #0x46
+ add r2, r4, #4
+ bl FUN_02067830
+ add r2, r4, #0
+ add r0, r5, #0
+ mov r1, #0x47
+ add r2, #8
+ bl FUN_02067830
+ add r2, r4, #0
+ add r0, r5, #0
+ mov r1, #0x48
+ add r2, #0xc
+ bl FUN_02067830
+ add r2, r4, #0
+ add r0, r5, #0
+ mov r1, #0x49
+ add r2, #0x10
+ bl FUN_02067830
+ add r2, r4, #0
+ add r0, r5, #0
+ mov r1, #0x4a
+ add r2, #0x14
+ bl FUN_02067830
+ add r2, r4, #0
+ add r0, r5, #0
+ mov r1, #0x4b
+ add r2, #0x18
+ bl FUN_02067830
+ add r2, r4, #0
+ add r0, r5, #0
+ mov r1, #0x13
+ add r2, #0x24
+ bl FUN_02067830
+ add r2, r4, #0
+ add r0, r5, #0
+ mov r1, #0x14
+ add r2, #0x28
+ bl FUN_02067830
+ add r2, r4, #0
+ add r0, r5, #0
+ mov r1, #0x15
+ add r2, #0x2c
+ bl FUN_02067830
+ add r2, r4, #0
+ add r0, r5, #0
+ mov r1, #0x16
+ add r2, #0x30
+ bl FUN_02067830
+ add r2, r4, #0
+ add r0, r5, #0
+ mov r1, #0x17
+ add r2, #0x34
+ bl FUN_02067830
+ add r2, r4, #0
+ add r0, r5, #0
+ mov r1, #6
+ add r2, #0x3c
+ bl FUN_02067830
+ ldr r0, [sp, #0x28]
+ add r1, r6, #4
+ bl MOD06_022489AC
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #0x90
+ add r2, r6, #0
+ bl FUN_02067830
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r2, r4, #0
+ add r0, r5, #0
+ mov r1, #0x9c
+ add r2, #0x40
+ bl FUN_02067830
+ add r4, #0x48
+ add r0, r5, #0
+ mov r1, #0xc
+ add r2, r4, #0
+ bl FUN_02067830
+ ldr r0, [sp, #0x2c]
+ bl FUN_02034824
+ add r3, r0, #0
+ ldr r0, [sp, #0x28]
+ mov r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r2, #1
+ bl FUN_0208089C
+ add r0, r5, #0
+ bl FUN_02066ED8
+ add r0, r5, #0
+ bl FUN_02068A80
+ cmp r0, #0
+ beq _02248B08
+ bl ErrorHandling
+_02248B08:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_02248B0C
+MOD06_02248B0C: ; 0x02248B0C
+ ldr r3, _02248B14 ; =0x020CE34C
+ mov r1, #0
+ mov r2, #0x18
+ bx r3
+ .align 2, 0
+_02248B14: .word 0x020CE34C
+
+ thumb_func_start MOD06_02248B18
+MOD06_02248B18: ; 0x02248B18
+ strb r1, [r0, #3]
+ bx lr
+
+ thumb_func_start MOD06_02248B1C
+MOD06_02248B1C: ; 0x02248B1C
+ strb r1, [r0, #2]
+ bx lr
+
+ thumb_func_start MOD06_02248B20
+MOD06_02248B20: ; 0x02248B20
+ strb r1, [r0, #1]
+ bx lr
+
+ thumb_func_start MOD06_02248B24
+MOD06_02248B24: ; 0x02248B24
+ ldr r3, _02248B2C ; =0x02002269
+ add r0, r0, #4
+ mov r2, #8
+ bx r3
+ .align 2, 0
+_02248B2C: .word 0x02002269
+
+ thumb_func_start MOD06_02248B30
+MOD06_02248B30: ; 0x02248B30
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_0202B5C8
+ strb r0, [r5]
+ str r4, [r5, #0x14]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02248B44
+MOD06_02248B44: ; 0x02248B44
+ push {r3, lr}
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _02248B50
+ bl FUN_0202B5CC
+_02248B50:
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02248B54
+MOD06_02248B54: ; 0x02248B54
+ ldrb r0, [r0, #3]
+ bx lr
+
+ thumb_func_start MOD06_02248B58
+MOD06_02248B58: ; 0x02248B58
+ ldrb r0, [r0, #2]
+ bx lr
+
+ thumb_func_start MOD06_02248B5C
+MOD06_02248B5C: ; 0x02248B5C
+ add r0, r0, #4
+ bx lr
+
+ thumb_func_start MOD06_02248B60
+MOD06_02248B60: ; 0x02248B60
+ ldr r3, _02248B68 ; =0x0202B5D9
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_02248B68: .word 0x0202B5D9
+
+ thumb_func_start MOD06_02248B6C
+MOD06_02248B6C: ; 0x02248B6C
+ ldrb r0, [r0]
+ bx lr
+
+ thumb_func_start MOD06_02248B70
+MOD06_02248B70: ; 0x02248B70
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r0, #4
+ mov r1, #0x18
+ bl FUN_02016998
+ add r4, r0, #0
+ bl MOD06_02248B0C
+ add r0, r5, #0
+ bl FUN_0202B534
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD06_02248B24
+ add r0, r5, #0
+ bl FUN_0202B538
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD06_02248B1C
+ add r0, r5, #0
+ bl FUN_0202B53C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD06_02248B20
+ add r0, r5, #0
+ bl FUN_0202B540
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD06_02248B30
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02248BC0
+MOD06_02248BC0: ; 0x02248BC0
+ push {r4, r5, r6, lr}
+ ldr r0, [r0, #0xc]
+ add r6, r1, #0
+ bl FUN_020238F4
+ add r5, r0, #0
+ mov r0, #4
+ mov r1, #0x18
+ bl FUN_02016998
+ add r4, r0, #0
+ bl MOD06_02248B0C
+ add r0, r5, #0
+ bl FUN_0202398C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD06_02248B24
+ add r0, r5, #0
+ bl FUN_020239CC
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD06_02248B18
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD06_02248B1C
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD06_02248B20
+ add r0, r6, #0
+ bl FUN_0202B544
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD06_02248B30
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_02248C18
+MOD06_02248C18: ; 0x02248C18
+ push {r4, r5, r6, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0
+ bl FUN_020238F4
+ add r6, r0, #0
+ mov r0, #4
+ mov r1, #0x18
+ bl FUN_02016998
+ add r4, r0, #0
+ bl MOD06_02248B0C
+ add r0, r6, #0
+ strb r5, [r4]
+ bl FUN_0202398C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD06_02248B24
+ add r0, r6, #0
+ bl FUN_020239CC
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD06_02248B18
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD06_02248B1C
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD06_02248B20
+ mov r0, #0
+ str r0, [r4, #0x14]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_02248C68
+MOD06_02248C68: ; 0x02248C68
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0
+ add r6, r2, #0
+ bl FUN_02022504
+ add r7, r0, #0
+ cmp r4, #4
+ bne _02248C86
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD06_02248C18
+ pop {r3, r4, r5, r6, r7, pc}
+_02248C86:
+ add r0, r6, #0
+ bl FUN_0202B820
+ cmp r0, #0
+ bne _02248CA4
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0202B7F4
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD06_02248B70
+ pop {r3, r4, r5, r6, r7, pc}
+_02248CA4:
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0202B7C8
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD06_02248BC0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_02248CB8
+MOD06_02248CB8: ; 0x02248CB8
+ ldr r3, _02248CBC ; =0x02016A19
+ bx r3
+ .align 2, 0
+_02248CBC: .word 0x02016A19
+
+ thumb_func_start MOD06_02248CC0
+MOD06_02248CC0: ; 0x02248CC0
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02022504
+ mov r1, #1
+ bl FUN_0202B40C
+ pop {r3, pc}
+
+ thumb_func_start MOD06_02248CD0
+MOD06_02248CD0: ; 0x02248CD0
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02022504
+ add r4, r0, #0
+ bl FUN_0202B410
+ cmp r0, #1
+ bne _02248CE6
+ mov r0, #0
+ pop {r4, pc}
+_02248CE6:
+ add r0, r4, #0
+ bl FUN_0202B458
+ cmp r0, #0
+ bne _02248CF4
+ mov r0, #2
+ pop {r4, pc}
+_02248CF4:
+ cmp r0, #4
+ bne _02248CFC
+ mov r0, #1
+ pop {r4, pc}
+_02248CFC:
+ mov r0, #3
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02248D00
+MOD06_02248D00: ; 0x02248D00
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_0204B2CC
+ add r0, r0, #6
+ mov r1, #7
+ bl _s32_div_f
+ add r0, r4, #0
+ add r5, r1, #0
+ bl FUN_0204B2D8
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_0204B2E4
+ mov r1, #0xf
+ bl _s32_div_f
+ add r6, #0x13
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #0x18
+ bl _s32_div_f
+ add r6, r1, #0
+ lsl r6, r6, #2
+ mov r3, #7
+ add r4, r4, r6
+ str r3, [sp]
+ add r0, sp, #4
+ mov r1, #0x7e
+ mov r2, #0
+ mul r3, r4
+ bl FUN_02006548
+ add r0, sp, #4
+ ldrb r4, [r0, r5]
+ cmp r4, #0
+ beq _02248D56
+ cmp r4, #9
+ blo _02248D5A
+_02248D56:
+ bl ErrorHandling
+_02248D5A:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD06_02248D60
+MOD06_02248D60: ; 0x02248D60
+ push {r4, lr}
+ sub sp, #8
+ add r3, r0, #0
+ sub r4, r3, #1
+ lsl r3, r4, #3
+ mov r2, #1
+ add r0, sp, #4
+ mov r1, #0x7e
+ add r3, r4, r3
+ str r2, [sp]
+ bl FUN_02006548
+ add r0, sp, #4
+ ldrb r0, [r0]
+ cmp r0, #5
+ blo _02248D84
+ bl ErrorHandling
+_02248D84:
+ add r0, sp, #4
+ ldrb r0, [r0]
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02248D8C
+MOD06_02248D8C: ; 0x02248D8C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r3, r0, #0
+ sub r4, r3, #1
+ lsl r3, r4, #3
+ mov r0, #8
+ add r3, r4, r3
+ str r0, [sp]
+ add r0, r1, #0
+ mov r1, #0x7e
+ mov r2, #1
+ add r3, r3, #1
+ bl FUN_02006548
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD06_02248DAC
+MOD06_02248DAC: ; 0x02248DAC
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD06_02248DB0
+MOD06_02248DB0: ; 0x02248DB0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r1, #0
+ str r0, [sp]
+ ldr r0, [r7, #0xc]
+ str r2, [sp, #4]
+ bl FUN_02022504
+ ldr r0, [sp]
+ add r1, sp, #8
+ bl MOD06_02248D8C
+ ldr r0, [sp, #4]
+ mov r1, #0
+ mov r2, #8
+ bl MI_CpuFill8
+ mov r6, #0
+ add r4, r6, #0
+ add r5, sp, #8
+_02248DD8:
+ ldrb r2, [r5]
+ cmp r2, #0
+ beq _02248DFA
+ ldr r1, [sp]
+ add r0, r7, #0
+ bl MOD06_02248DAC
+ cmp r0, #1
+ bne _02248DF2
+ ldrb r1, [r5]
+ ldr r0, [sp, #4]
+ strb r1, [r0, r4]
+ add r4, r4, #1
+_02248DF2:
+ add r6, r6, #1
+ add r5, r5, #1
+ cmp r6, #8
+ blt _02248DD8
+_02248DFA:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02248E00
+MOD06_02248E00: ; 0x02248E00
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #8
+ bl MI_CpuFill8
+ mov r1, #0
+ add r4, r1, #0
+ add r2, sp, #0
+_02248E16:
+ ldrb r0, [r5, r1]
+ cmp r0, #0
+ beq _02248E22
+ strb r0, [r2]
+ add r2, r2, #1
+ add r4, r4, #1
+_02248E22:
+ add r1, r1, #1
+ cmp r1, #8
+ blt _02248E16
+ cmp r4, #0
+ bne _02248E32
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02248E32:
+ cmp r4, #1
+ bne _02248E3E
+ add r0, sp, #0
+ add sp, #8
+ ldrb r0, [r0]
+ pop {r3, r4, r5, pc}
+_02248E3E:
+ bl FUN_0201BA60
+ add r1, r4, #0
+ bl _u32_div_f
+ add r0, sp, #0
+ ldrb r0, [r0, r1]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_02248E50
+MOD06_02248E50: ; 0x02248E50
+ push {r4, lr}
+ sub sp, #8
+ add r4, r2, #0
+ cmp r1, #4
+ beq _02248E6A
+ ldr r4, [sp, #0x10]
+ str r4, [sp]
+ ldr r4, [sp, #0x14]
+ str r4, [sp, #4]
+ bl FUN_0202B678
+ add sp, #8
+ pop {r4, pc}
+_02248E6A:
+ ldr r1, [sp, #0x10]
+ cmp r1, #0
+ beq _02248E76
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_02248E76:
+ cmp r3, #0
+ bne _02248E80
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_02248E80:
+ add r1, r4, #0
+ bl FUN_0202B440
+ cmp r0, #0
+ bne _02248E94
+ ldr r0, [sp, #0x14]
+ add sp, #8
+ strb r4, [r0]
+ mov r0, #1
+ pop {r4, pc}
+_02248E94:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02248E9C
+MOD06_02248E9C: ; 0x02248E9C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp, #8]
+ ldr r6, [sp, #0x40]
+ ldr r0, [r1, #0xc]
+ str r2, [sp, #0xc]
+ str r3, [sp, #0x10]
+ ldr r5, [sp, #0x44]
+ bl FUN_02022504
+ str r0, [sp, #0x14]
+ ldrb r0, [r6]
+ mov r4, #0
+ cmp r0, #0
+ beq _02248EFC
+ add r7, sp, #0x18
+_02248EBC:
+ add r0, r7, #0
+ mov r1, #0
+ mov r2, #0x10
+ bl MI_CpuFill8
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #8]
+ str r0, [sp]
+ str r7, [sp, #4]
+ ldrb r2, [r6]
+ ldr r0, [sp, #0x14]
+ ldr r3, [sp, #0xc]
+ bl MOD06_02248E50
+ cmp r0, #0
+ beq _02248EF4
+ mov r0, #0
+ add r1, r7, #0
+ b _02248EEA
+_02248EE2:
+ strb r2, [r5, r4]
+ add r4, r4, #1
+ add r1, r1, #1
+ add r0, r0, #1
+_02248EEA:
+ ldrb r2, [r1]
+ cmp r2, #0
+ beq _02248EF4
+ cmp r0, #0x10
+ blt _02248EE2
+_02248EF4:
+ add r6, r6, #1
+ ldrb r0, [r6]
+ cmp r0, #0
+ bne _02248EBC
+_02248EFC:
+ add r0, r4, #0
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02248F04
+MOD06_02248F04: ; 0x02248F04
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ add r5, r2, #0
+ mov r4, #0
+ b _02248F36
+_02248F10:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD06_02248C68
+ str r0, [sp]
+ ldr r2, [sp]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl FUN_02060D48
+ cmp r0, #0
+ bne _02248F2C
+ mov r0, #0
+ strb r0, [r5]
+_02248F2C:
+ ldr r0, [sp]
+ bl MOD06_02248CB8
+ add r5, r5, #1
+ add r4, r4, #1
+_02248F36:
+ ldrb r2, [r5]
+ cmp r2, #0
+ beq _02248F40
+ cmp r4, #0x10
+ blt _02248F10
+_02248F40:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02248F44
+MOD06_02248F44: ; 0x02248F44
+ push {r4, r5, r6, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0
+ bl FUN_02022504
+ ldrb r1, [r5]
+ add r4, r0, #0
+ cmp r1, #0
+ beq _02248F6C
+ mov r6, #0
+_02248F58:
+ add r0, r4, #0
+ bl FUN_0202B440
+ cmp r0, #0
+ beq _02248F64
+ strb r6, [r5]
+_02248F64:
+ add r5, r5, #1
+ ldrb r1, [r5]
+ cmp r1, #0
+ bne _02248F58
+_02248F6C:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02248F70
+MOD06_02248F70: ; 0x02248F70
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD06_02248D00
+ str r0, [sp, #8]
+ bl MOD06_02248D60
+ add r4, r0, #0
+ add r0, sp, #0xc
+ mov r1, #0
+ mov r2, #8
+ bl MI_CpuFill8
+ add r0, sp, #0x14
+ mov r1, #0
+ mov r2, #0x10
+ bl MI_CpuFill8
+ ldr r0, [sp, #8]
+ add r1, r5, #0
+ add r2, sp, #0xc
+ bl MOD06_02248DB0
+ add r0, sp, #0xc
+ str r0, [sp]
+ add r0, sp, #0x14
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r6, #0
+ add r3, r7, #0
+ bl MOD06_02248E9C
+ cmp r0, #0
+ bne _02248FC2
+ add sp, #0x24
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02248FC2:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0x14
+ bl MOD06_02248F04
+ add r0, r5, #0
+ add r1, sp, #0x14
+ bl MOD06_02248F44
+ add r0, r5, #0
+ add r1, sp, #0x14
+ bl MOD06_02248E00
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_02248FE0
+MOD06_02248FE0: ; 0x02248FE0
+ push {r4, lr}
+ mov r1, #0
+ add r2, r1, #0
+ add r4, r0, #0
+ bl MOD06_02248F70
+ cmp r0, #0
+ bne _02249016
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD06_02248F70
+ cmp r0, #0
+ bne _02249016
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD06_02248F70
+ cmp r0, #0
+ bne _02249016
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD06_02248F70
+_02249016:
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02249018
+MOD06_02249018: ; 0x02249018
+ push {r4, lr}
+ bl MOD06_02248D00
+ add r4, r0, #0
+ cmp r4, #8
+ bls _02249028
+ bl ErrorHandling
+_02249028:
+ ldr r2, _02249034 ; =0x02251738
+ sub r1, r4, #1
+ mov r0, #7
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+ .align 2, 0
+_02249034: .word 0x02251738
+
+ thumb_func_start MOD06_02249038
+MOD06_02249038: ; 0x02249038
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ add r5, r1, #0
+ bl FUN_02022504
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD06_02249018
+ add r4, r0, #0
+ cmp r5, #3
+ bhi _02249066
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224905E: ; jump table
+ .short _0224906A - _0224905E - 2 ; case 0
+ .short _02249084 - _0224905E - 2 ; case 1
+ .short _02249096 - _0224905E - 2 ; case 2
+ .short _0224909A - _0224905E - 2 ; case 3
+_02249066:
+ bl ErrorHandling
+_0224906A:
+ bl FUN_02012794
+ cmp r0, #0
+ beq _02249078
+ cmp r0, #1
+ beq _0224907C
+ b _02249080
+_02249078:
+ ldrb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224907C:
+ ldrb r0, [r4, #1]
+ pop {r4, r5, r6, pc}
+_02249080:
+ ldrb r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02249084:
+ add r0, r6, #0
+ bl FUN_0202B458
+ cmp r0, #0
+ bne _02249092
+ ldrb r0, [r4, #3]
+ pop {r4, r5, r6, pc}
+_02249092:
+ ldrb r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_02249096:
+ ldrb r0, [r4, #5]
+ pop {r4, r5, r6, pc}
+_0224909A:
+ ldrb r0, [r4, #6]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022490A0
+MOD06_022490A0: ; 0x022490A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r0, #0
+ str r1, [sp, #4]
+ add r5, r2, #0
+ add r6, r3, #0
+ bl MOD06_02248D00
+ bl MOD06_02248D60
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_02022504
+ add r1, r5, #0
+ bl FUN_0202B414
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl MOD06_02248C68
+ add r5, r0, #0
+ bl MOD06_02248B44
+ ldr r2, [sp, #4]
+ add r0, r7, #0
+ add r1, r4, #0
+ add r3, r5, #0
+ str r6, [sp]
+ bl FUN_02060D1C
+ ldr r1, [sp, #0x20]
+ strh r0, [r1]
+ add r0, r5, #0
+ bl MOD06_02248CB8
+ mov r0, #1
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_022490F0
+MOD06_022490F0: ; 0x022490F0
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD06_022490F4
+MOD06_022490F4: ; 0x022490F4
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ mov r1, #2
+ mov r2, #7
+ bl FUN_0205F2E4
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02249108
+MOD06_02249108: ; 0x02249108
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ mov r1, #2
+ add r2, r1, #0
+ bl FUN_0205F2E4
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224911C
+MOD06_0224911C: ; 0x0224911C
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ mov r1, #2
+ mov r2, #9
+ bl FUN_0205F2E4
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02249130
+MOD06_02249130: ; 0x02249130
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ mov r1, #2
+ mov r2, #0xa
+ bl FUN_0205F2E4
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02249144
+MOD06_02249144: ; 0x02249144
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ mov r1, #2
+ mov r2, #0xb
+ bl FUN_0205F2E4
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02249158
+MOD06_02249158: ; 0x02249158
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ mov r1, #2
+ mov r2, #0x11
+ bl FUN_0205F2E4
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224916C
+MOD06_0224916C: ; 0x0224916C
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ bl FUN_020239F4
+ cmp r0, #5
+ blt _02249180
+ mov r0, #1
+ pop {r3, pc}
+_02249180:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD06_02249184
+MOD06_02249184: ; 0x02249184
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ bl FUN_02024504
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02249194
+MOD06_02249194: ; 0x02249194
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ bl FUN_02024D64
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022491A4
+MOD06_022491A4: ; 0x022491A4
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED0C
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022491B4
+MOD06_022491B4: ; 0x022491B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ ldr r4, _022491F4 ; =0x02251770
+ str r0, [sp]
+ add r7, r1, #0
+ mov r6, #0
+ add r5, sp, #4
+_022491C2:
+ ldr r0, [sp]
+ ldr r1, [r4]
+ blx r1
+ add r6, r6, #1
+ add r4, r4, #4
+ stmia r5!, {r0}
+ cmp r6, #0xb
+ blo _022491C2
+ mov r4, #0
+ ldr r3, _022491F8 ; =0x02252338
+ add r0, r4, #0
+ add r2, sp, #4
+_022491DA:
+ ldrb r1, [r3]
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _022491E8
+ strb r4, [r7, r0]
+ add r0, r0, #1
+_022491E8:
+ add r4, r4, #1
+ add r3, r3, #1
+ cmp r4, #0x1d
+ blo _022491DA
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022491F4: .word 0x02251770
+_022491F8: .word 0x02252338
+
+ thumb_func_start MOD06_022491FC
+MOD06_022491FC: ; 0x022491FC
+ push {r4, lr}
+ sub sp, #0x20
+ add r4, r0, #0
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #0x20
+ bl MI_CpuFill8
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD06_022491B4
+ add r4, r0, #0
+ bne _0224921E
+ add sp, #0x20
+ mov r0, #0
+ pop {r4, pc}
+_0224921E:
+ bl FUN_0201BA60
+ add r1, r4, #0
+ bl _u32_div_f
+ add r0, sp, #0
+ ldrb r0, [r0, r1]
+ add sp, #0x20
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02249230
+MOD06_02249230: ; 0x02249230
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ cmp r1, #0
+ bne _022492A4
+ cmp r4, #0
+ bne _02249244
+ add sp, #0x10
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02249244:
+ add r0, sp, #0
+ bl FUN_020126B4
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _02249254
+ bl ErrorHandling
+_02249254:
+ ldr r0, [sp, #4]
+ cmp r0, #0xc
+ bls _0224925E
+ bl ErrorHandling
+_0224925E:
+ ldr r0, [sp, #4]
+ ldr r3, _022492A8 ; =0x0225181C
+ sub r0, r0, #1
+ lsl r0, r0, #3
+ ldr r6, [r3, r0]
+ add r2, r3, r0
+ mov r1, #0
+ cmp r6, #0
+ ble _022492A2
+ ldr r3, [r2, #4]
+ ldr r5, [sp, #8]
+_02249274:
+ lsl r0, r1, #1
+ ldrh r7, [r3, r0]
+ asr r7, r7, #8
+ lsl r7, r7, #0x18
+ lsr r7, r7, #0x18
+ cmp r5, r7
+ bne _02249298
+ ldr r1, [r2, #4]
+ ldrh r0, [r1, r0]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x16
+ ldr r0, _022492AC ; =0x02251808
+ ldr r0, [r0, r1]
+ add r0, r4, r0
+ bpl _022492A4
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02249298:
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, r6
+ blt _02249274
+_022492A2:
+ add r0, r4, #0
+_022492A4:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022492A8: .word 0x0225181C
+_022492AC: .word 0x02251808
+
+ thumb_func_start MOD06_022492B0
+MOD06_022492B0: ; 0x022492B0
+ push {r3, r4, r5, lr}
+ mov r1, #0x4f
+ mov r2, #0
+ lsl r1, r1, #2
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4, #0x20]
+ bl MOD06_02249460
+ add r0, r4, #0
+ bl MOD06_022492EC
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022492D4
+MOD06_022492D4: ; 0x022492D4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_02249310
+ add r0, r4, #0
+ bl MOD06_022494C0
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022492EC
+MOD06_022492EC: ; 0x022492EC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ bl FUN_021E4C20
+ ldr r0, [r0, #0x34]
+ bl FUN_0205839C
+ sub r2, r0, #1
+ ldr r0, _0224930C ; =MOD06_02249388
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x24]
+ pop {r4, pc}
+ nop
+_0224930C: .word MOD06_02249388
+
+ thumb_func_start MOD06_02249310
+MOD06_02249310: ; 0x02249310
+ ldr r3, _02249318 ; =0x0200CAB5
+ ldr r0, [r0, #0x24]
+ bx r3
+ nop
+_02249318: .word 0x0200CAB5
+
+ thumb_func_start MOD06_0224931C
+MOD06_0224931C: ; 0x0224931C
+ add r2, r0, #0
+ add r2, #0x14
+ add r3, r1, #0
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r3]
+ bx lr
+
+ thumb_func_start MOD06_0224932C
+MOD06_0224932C: ; 0x0224932C
+ asr r1, r0, #0xb
+ lsr r1, r1, #0x14
+ add r1, r0, r1
+ asr r0, r1, #0xc
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_02249338
+MOD06_02249338: ; 0x02249338
+ ldr r1, [r0, #4]
+ lsl r2, r1, #2
+ ldr r1, _0224935C ; =0x0225189C
+ ldr r1, [r1, r2]
+ str r1, [r0, #0x10]
+ ldr r2, [r0, #4]
+ mov r1, #0xc
+ add r3, r2, #0
+ mul r3, r1
+ ldr r1, _02249360 ; =0x0225190C
+ add r2, r0, #0
+ add r3, r1, r3
+ ldmia r3!, {r0, r1}
+ add r2, #0x14
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_0224935C: .word 0x0225189C
+_02249360: .word 0x0225190C
+
+ thumb_func_start MOD06_02249364
+MOD06_02249364: ; 0x02249364
+ ldr r3, [r0]
+ cmp r3, r1
+ bge _02249376
+ add r2, r3, r2
+ str r2, [r0]
+ cmp r2, r1
+ ble _02249384
+ str r1, [r0]
+ bx lr
+_02249376:
+ cmp r3, r1
+ ble _02249384
+ sub r2, r3, r2
+ str r2, [r0]
+ cmp r2, r1
+ bge _02249384
+ str r1, [r0]
+_02249384:
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_02249388
+MOD06_02249388: ; 0x02249388
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ bl FUN_02012794
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #0
+ beq _022493A6
+ cmp r1, #1
+ beq _022493C8
+ cmp r1, #2
+ beq _022493D2
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+_022493A6:
+ str r4, [r5, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02249338
+ ldr r0, [r5, #0x10]
+ bl MOD06_0224932C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD06_022494E4
+ ldr r0, [r5]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_022493C8:
+ ldr r0, [r5, #4]
+ cmp r0, r4
+ beq _02249454
+ add r0, r1, #1
+ str r0, [r5]
+_022493D2:
+ ldr r0, _02249458 ; =0x0225189C
+ lsl r1, r4, #2
+ ldr r0, [r0, r1]
+ add r1, r4, #0
+ str r0, [sp]
+ mov r0, #0xc
+ mul r1, r0
+ ldr r0, _0224945C ; =0x0225190C
+ add r2, sp, #4
+ add r3, r0, r1
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r5, #0
+ ldr r1, [sp, #4]
+ add r0, #0x14
+ mov r2, #0x10
+ bl MOD06_02249364
+ ldr r7, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x18
+ add r1, r7, #0
+ mov r2, #0x10
+ bl MOD06_02249364
+ ldr r6, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0x1c
+ add r1, r6, #0
+ mov r2, #0x10
+ bl MOD06_02249364
+ add r0, r5, #0
+ mov r2, #2
+ ldr r1, [sp]
+ add r0, #0x10
+ lsl r2, r2, #8
+ bl MOD06_02249364
+ ldr r0, [r5, #0x10]
+ bl MOD06_0224932C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD06_022494E4
+ ldr r1, [sp, #4]
+ ldr r0, [r5, #0x14]
+ cmp r1, r0
+ bne _02249454
+ ldr r0, [r5, #0x18]
+ cmp r7, r0
+ bne _02249454
+ ldr r0, [r5, #0x1c]
+ cmp r6, r0
+ bne _02249454
+ ldr r1, [r5, #0x10]
+ ldr r0, [sp]
+ cmp r0, r1
+ bne _02249454
+ str r4, [r5, #4]
+ mov r0, #1
+ str r0, [r5]
+_02249454:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02249458: .word 0x0225189C
+_0224945C: .word 0x0225190C
+
+ thumb_func_start MOD06_02249460
+MOD06_02249460: ; 0x02249460
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r0, #0x49
+ lsl r0, r0, #2
+ add r1, r4, r0
+ add r0, #0xc
+ str r1, [sp]
+ add r0, r4, r0
+ str r0, [sp, #4]
+ add r3, r4, #0
+ ldr r0, [r4, #0x20]
+ mov r1, #0x11
+ mov r2, #0
+ add r3, #0x28
+ bl FUN_021E51EC
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ add r1, r4, r0
+ add r0, #0xc
+ str r1, [sp]
+ add r0, r4, r0
+ str r0, [sp, #4]
+ add r3, r4, #0
+ ldr r0, [r4, #0x20]
+ mov r1, #0x12
+ mov r2, #0
+ add r3, #0x7c
+ bl FUN_021E51EC
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ add r1, r4, r0
+ add r0, #0xc
+ str r1, [sp]
+ add r0, r4, r0
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x20]
+ add r4, #0xd0
+ mov r1, #0x13
+ mov r2, #0
+ add r3, r4, #0
+ bl FUN_021E51EC
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022494C0
+MOD06_022494C0: ; 0x022494C0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_021E4C00
+ mov r0, #0x4d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_021E4C00
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_022494E4
+MOD06_022494E4: ; 0x022494E4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x49
+ lsl r0, r0, #2
+ mov r2, #0x1f
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #1
+ lsl r2, r2, #0x10
+ bl FUN_020BC02C
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_020BBA34
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_02249508
+MOD06_02249508: ; 0x02249508
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ bl FUN_021E4C24
+ add r4, r0, #0
+ mov r1, #0
+ str r4, [sp, #0x14]
+ bl FUN_021E4C08
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, sp, #8
+ str r5, [sp, #0x1c]
+ bl FUN_02058B5C
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0205829C
+ add r1, sp, #0x14
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r1, _02249548 ; =0x02251888
+ add r0, r4, #0
+ add r2, sp, #8
+ mov r3, #0
+ bl FUN_021E4DC4
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ nop
+_02249548: .word 0x02251888
+
+ thumb_func_start MOD06_0224954C
+MOD06_0224954C: ; 0x0224954C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r3, r0, #0
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x14
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r5, #0
+ bl FUN_02064754
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x1c]
+ bl FUN_02058458
+ str r0, [r4]
+ ldr r0, [r4, #0x1c]
+ bl FUN_02058448
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x1c]
+ bl FUN_020589CC
+ cmp r0, #1
+ ldr r0, [r4, #0x1c]
+ bne _0224958E
+ bl FUN_02058750
+ b _02249592
+_0224958E:
+ bl FUN_02058450
+_02249592:
+ str r0, [r4, #8]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_02249598
+MOD06_02249598: ; 0x02249598
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_0224959C
+MOD06_0224959C: ; 0x0224959C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldr r6, [r4, #0x1c]
+ ldr r1, [r4]
+ add r5, r0, #0
+ ldr r2, [r4, #4]
+ ldr r3, [r4, #8]
+ add r0, r6, #0
+ bl FUN_020582F8
+ cmp r0, #0
+ bne _022495C0
+ add r0, r5, #0
+ bl FUN_021E4DE4
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_022495C0:
+ add r0, r6, #0
+ mov r1, #8
+ bl FUN_020587F4
+ cmp r0, #0
+ beq _022495D6
+ add r0, r5, #0
+ bl FUN_021E4DE4
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_022495D6:
+ mov r0, #0
+ str r0, [r4, #0xc]
+ ldr r1, _02249604 ; =0x00100200
+ add r0, r6, #0
+ bl FUN_0205842C
+ cmp r0, #1
+ bne _022495EE
+ mov r0, #1
+ add sp, #0xc
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, pc}
+_022495EE:
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_02058B5C
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02249604: .word 0x00100200
+
+ thumb_func_start MOD06_02249608
+MOD06_02249608: ; 0x02249608
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x3c
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #1
+ beq _02249660
+ ldr r6, _02249664 ; =0x022518C4
+ add r3, sp, #0
+ mov r2, #4
+_0224961C:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0224961C
+ ldr r0, [r6]
+ add r1, sp, #0x24
+ str r0, [r3]
+ ldr r0, [r4, #0x18]
+ bl MOD06_0224931C
+ add r0, r5, #0
+ add r1, sp, #0x30
+ bl FUN_0206477C
+ mov r0, #2
+ ldr r1, [sp, #0x30]
+ lsl r0, r0, #0xa
+ sub r1, r1, r0
+ str r1, [sp, #0x30]
+ lsl r1, r0, #3
+ ldr r2, [sp, #0x34]
+ lsl r0, r0, #1
+ sub r1, r2, r1
+ str r1, [sp, #0x34]
+ ldr r1, [sp, #0x38]
+ add r2, sp, #0
+ add r0, r1, r0
+ str r0, [sp, #0x38]
+ ldr r0, [r4, #0x18]
+ add r1, sp, #0x30
+ add r0, #0x28
+ add r3, sp, #0x24
+ bl FUN_0201B26C
+_02249660:
+ add sp, #0x3c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02249664: .word 0x022518C4
+
+ thumb_func_start MOD06_02249668
+MOD06_02249668: ; 0x02249668
+ push {r4, r5, r6, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_021E4C24
+ add r6, r0, #0
+ mov r1, #0
+ str r6, [sp, #0x14]
+ bl FUN_021E4C08
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, sp, #8
+ str r5, [sp, #0x1c]
+ bl FUN_02058B5C
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0205829C
+ add r1, sp, #0x14
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r1, _022496A8 ; =0x022518B0
+ add r0, r6, #0
+ add r2, sp, #8
+ add r3, r4, #0
+ bl FUN_021E4DC4
+ add sp, #0x20
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022496A8: .word 0x022518B0
+
+ thumb_func_start MOD06_022496AC
+MOD06_022496AC: ; 0x022496AC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldr r6, [r4, #0x1c]
+ ldr r1, [r4]
+ add r5, r0, #0
+ ldr r2, [r4, #4]
+ ldr r3, [r4, #8]
+ add r0, r6, #0
+ bl FUN_020582F8
+ cmp r0, #0
+ bne _022496D0
+ add r0, r5, #0
+ bl FUN_021E4DE4
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_022496D0:
+ mov r0, #0
+ str r0, [r4, #0xc]
+ ldr r1, _022496FC ; =0x00100200
+ add r0, r6, #0
+ bl FUN_0205842C
+ cmp r0, #1
+ bne _022496E8
+ mov r0, #1
+ add sp, #0xc
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, pc}
+_022496E8:
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_02058B5C
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_022496FC: .word 0x00100200
+
+ thumb_func_start MOD06_02249700
+MOD06_02249700: ; 0x02249700
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x3c
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #1
+ beq _02249792
+ ldr r5, _02249798 ; =0x0225187C
+ add r3, sp, #0x24
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ ldr r6, _0224979C ; =0x022518E8
+ str r0, [r3]
+ add r5, sp, #0
+ mov r3, #4
+_02249720:
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ sub r3, r3, #1
+ bne _02249720
+ ldr r0, [r6]
+ add r1, sp, #0x30
+ str r0, [r5]
+ add r0, r2, #0
+ bl FUN_0206477C
+ mov r0, #2
+ ldr r1, [sp, #0x30]
+ lsl r0, r0, #0xa
+ sub r1, r1, r0
+ str r1, [sp, #0x30]
+ lsl r1, r0, #3
+ ldr r2, [sp, #0x34]
+ lsl r0, r0, #1
+ sub r1, r2, r1
+ str r1, [sp, #0x34]
+ ldr r1, [sp, #0x38]
+ add r0, r1, r0
+ str r0, [sp, #0x38]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _02249760
+ cmp r0, #1
+ beq _02249772
+ cmp r0, #2
+ beq _02249784
+ add sp, #0x3c
+ pop {r3, r4, r5, r6, pc}
+_02249760:
+ ldr r0, [r4, #0x18]
+ add r1, sp, #0x30
+ add r0, #0x28
+ add r2, sp, #0
+ add r3, sp, #0x24
+ bl FUN_0201B26C
+ add sp, #0x3c
+ pop {r3, r4, r5, r6, pc}
+_02249772:
+ ldr r0, [r4, #0x18]
+ add r1, sp, #0x30
+ add r0, #0x7c
+ add r2, sp, #0
+ add r3, sp, #0x24
+ bl FUN_0201B26C
+ add sp, #0x3c
+ pop {r3, r4, r5, r6, pc}
+_02249784:
+ ldr r0, [r4, #0x18]
+ add r1, sp, #0x30
+ add r0, #0xd0
+ add r2, sp, #0
+ add r3, sp, #0x24
+ bl FUN_0201B26C
+_02249792:
+ add sp, #0x3c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02249798: .word 0x0225187C
+_0224979C: .word 0x022518E8
+
+ thumb_func_start MOD06_022497A0
+MOD06_022497A0: ; 0x022497A0
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r1, #4
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_022497CC
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_022497BC
+MOD06_022497BC: ; 0x022497BC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_022497DC
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_022497CC
+MOD06_022497CC: ; 0x022497CC
+ ldr r3, _022497D8 ; =0x021E5079
+ ldr r0, [r0]
+ mov r1, #2
+ mov r2, #0x14
+ bx r3
+ nop
+_022497D8: .word 0x021E5079
+
+ thumb_func_start MOD06_022497DC
+MOD06_022497DC: ; 0x022497DC
+ ldr r3, _022497E4 ; =0x021E50A1
+ ldr r0, [r0]
+ mov r1, #2
+ bx r3
+ .align 2, 0
+_022497E4: .word 0x021E50A1
+
+ thumb_func_start MOD06_022497E8
+MOD06_022497E8: ; 0x022497E8
+ push {r4, r5, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02058738
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl FUN_021E4C24
+ mov r1, #1
+ str r0, [sp, #0xc]
+ bl FUN_021E4C08
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r1, sp, #0x18
+ str r5, [sp, #0x14]
+ bl FUN_02058B5C
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0205829C
+ add r1, sp, #8
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ ldr r1, _02249830 ; =0x02251958
+ add r2, sp, #0x18
+ add r3, r4, #0
+ bl FUN_021E4DC4
+ add sp, #0x24
+ pop {r4, r5, pc}
+ nop
+_02249830: .word 0x02251958
+
+ thumb_func_start MOD06_02249834
+MOD06_02249834: ; 0x02249834
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ bl FUN_0206475C
+ add r2, r4, #0
+ add r3, r0, #0
+ add r2, #0x14
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r5, #0
+ bl FUN_02064754
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x20]
+ bl FUN_02058448
+ str r0, [r4]
+ ldr r0, [r4, #0x20]
+ bl FUN_02058450
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x20]
+ bl FUN_02058458
+ str r0, [r4, #8]
+ bl FUN_0205C334
+ cmp r0, #1
+ bne _0224987E
+ ldr r0, [r4, #0x20]
+ bl FUN_0205C340
+ str r0, [r4, #8]
+_0224987E:
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ str r0, [r4, #0x30]
+ mov r0, #0x40
+ str r0, [r4, #0x34]
+ ldr r1, [r4, #0x20]
+ add r0, r4, #0
+ add r2, sp, #0
+ bl MOD06_02249A00
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02249A68
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD06_022498AC
+MOD06_022498AC: ; 0x022498AC
+ push {r3, lr}
+ ldr r0, [r1, #0xc]
+ cmp r0, #1
+ bne _022498BA
+ ldr r0, [r1, #0x24]
+ bl FUN_0201F744
+_022498BA:
+ pop {r3, pc}
+
+ thumb_func_start MOD06_022498BC
+MOD06_022498BC: ; 0x022498BC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldr r6, [r4, #0x20]
+ add r5, r0, #0
+ add r0, r6, #0
+ bl FUN_02058458
+ add r7, r0, #0
+ bl FUN_0205C334
+ cmp r0, #1
+ bne _022498DE
+ ldr r0, [r4, #0x20]
+ bl FUN_0205C340
+ add r7, r0, #0
+_022498DE:
+ ldr r0, [r4, #8]
+ cmp r0, r7
+ bne _022498FC
+ ldr r1, [r4]
+ ldr r2, [r4, #4]
+ add r0, r6, #0
+ bl FUN_020582A8
+ cmp r0, #0
+ beq _022498FC
+ add r0, r6, #0
+ bl FUN_02058A9C
+ cmp r0, #0
+ bne _02249906
+_022498FC:
+ add r0, r5, #0
+ bl FUN_021E4DE4
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_02249906:
+ ldr r1, [r4, #0x28]
+ ldr r0, [r4, #0x34]
+ add r1, r1, r0
+ mov r0, #0x12
+ lsl r0, r0, #8
+ str r1, [r4, #0x28]
+ cmp r1, r0
+ blt _02249920
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x34]
+ neg r0, r0
+ str r0, [r4, #0x34]
+ b _02249930
+_02249920:
+ mov r0, #0xe
+ lsl r0, r0, #8
+ cmp r1, r0
+ bgt _02249930
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x34]
+ neg r0, r0
+ str r0, [r4, #0x34]
+_02249930:
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, sp, #0
+ bl MOD06_02249A00
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ bne _02249950
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02249A68
+_02249950:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_02249954
+MOD06_02249954: ; 0x02249954
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r4, [r5, #0x20]
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_02058458
+ add r7, r0, #0
+ bl FUN_0205C334
+ cmp r0, #1
+ bne _02249976
+ ldr r0, [r5, #0x20]
+ bl FUN_0205C340
+ add r7, r0, #0
+_02249976:
+ ldr r0, [r5, #8]
+ cmp r0, r7
+ bne _02249994
+ ldr r1, [r5]
+ ldr r2, [r5, #4]
+ add r0, r4, #0
+ bl FUN_020582A8
+ cmp r0, #0
+ beq _02249994
+ add r0, r4, #0
+ bl FUN_02058A9C
+ cmp r0, #0
+ bne _0224999E
+_02249994:
+ add r0, r6, #0
+ bl FUN_021E4DE4
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0224999E:
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ beq _022499FA
+ add r0, r4, #0
+ bl FUN_02058890
+ cmp r0, #1
+ ldr r0, [r5, #0x24]
+ bne _022499B8
+ mov r1, #0
+ bl FUN_0201F80C
+ b _022499BE
+_022499B8:
+ mov r1, #1
+ bl FUN_0201F80C
+_022499BE:
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, [r5, #0x24]
+ add r1, sp, #0
+ bl FUN_0201F7C8
+ add r1, r5, #0
+ ldr r0, [r5, #0x24]
+ add r1, #0x28
+ bl FUN_0201F7F0
+ ldr r0, [r5, #0x20]
+ bl FUN_021F0514
+ add r4, r0, #0
+ bl FUN_0201F844
+ add r1, r0, #0
+ ldr r0, [r5, #0x24]
+ bl FUN_0201F830
+ add r0, r4, #0
+ bl FUN_0201F880
+ add r1, r0, #0
+ ldr r0, [r5, #0x24]
+ bl FUN_0201F86C
+_022499FA:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02249A00
+MOD06_02249A00: ; 0x02249A00
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, _02249A64 ; =0x02251948
+ str r1, [sp]
+ ldr r1, [r0, #8]
+ ldr r0, [r0, #0xc]
+ add r4, r2, #0
+ str r0, [sp, #8]
+ str r1, [sp, #4]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl FUN_02058B84
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ neg r6, r0
+ ldr r0, [sp]
+ ldr r7, [r4]
+ bl FUN_02058B5C
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ bl FUN_02059E9C
+ ldr r1, [r4]
+ add r1, r1, r7
+ str r1, [r4]
+ mov r1, #7
+ lsl r1, r1, #0xc
+ ldr r2, [r4, #8]
+ sub r1, r6, r1
+ add r1, r2, r1
+ str r1, [r4, #8]
+ cmp r0, #0
+ bne _02249A50
+ mov r0, #0
+ add sp, #0xc
+ str r0, [r4, #4]
+ pop {r4, r5, r6, r7, pc}
+_02249A50:
+ ldr r0, [r5, #0x10]
+ ldr r2, [r4, #4]
+ lsl r1, r0, #2
+ add r0, sp, #4
+ ldr r0, [r0, r1]
+ sub r0, r2, r0
+ str r0, [r4, #4]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02249A64: .word 0x02251948
+
+ thumb_func_start MOD06_02249A68
+MOD06_02249A68: ; 0x02249A68
+ push {r4, r5, lr}
+ sub sp, #0x34
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x20]
+ bl FUN_02058578
+ ldr r1, [r4, #8]
+ add r2, sp, #0
+ bl FUN_021F220C
+ cmp r0, #0
+ beq _02249AAE
+ ldr r0, [r4, #0x20]
+ bl FUN_021F2E28
+ cmp r0, #1
+ beq _02249AAE
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ bl FUN_021E5094
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, sp, #0x28
+ bl FUN_0206477C
+ ldr r0, [r4, #0x18]
+ add r1, sp, #0
+ add r2, sp, #0x28
+ bl FUN_021E4E90
+ str r0, [r4, #0x24]
+ mov r0, #1
+ str r0, [r4, #0xc]
+_02249AAE:
+ add sp, #0x34
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02249AB4
+MOD06_02249AB4: ; 0x02249AB4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x34
+ add r4, r1, #0
+ add r6, r4, #0
+ add r5, r0, #0
+ add r6, #0x10
+ add r3, sp, #0
+ mov r2, #5
+_02249AC4:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02249AC4
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl FUN_021E5094
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, sp, #0x28
+ bl FUN_0206477C
+ ldr r0, [r4, #8]
+ add r1, sp, #0
+ add r2, sp, #0x28
+ bl FUN_021E4E90
+ str r0, [r4, #0x3c]
+ ldr r5, [r4, #0x38]
+ add r0, r5, #0
+ bl FUN_0201F844
+ add r1, r0, #0
+ ldr r0, [r4, #0x3c]
+ bl FUN_0201F830
+ add r0, r5, #0
+ bl FUN_0201F8C0
+ add r1, r0, #0
+ ldr r0, [r4, #0x3c]
+ bl FUN_0201F890
+ add r0, r5, #0
+ bl FUN_0201F880
+ add r1, r0, #0
+ ldr r0, [r4, #0x3c]
+ bl FUN_0201F86C
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0201F854
+ ldr r0, [r4, #0x3c]
+ bl FUN_0201F8F0
+ add sp, #0x34
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD06_02249B28
+MOD06_02249B28: ; 0x02249B28
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, _02249B78 ; =0x02251948
+ add r4, r1, #0
+ ldr r1, [r0]
+ ldr r0, [r0, #4]
+ add r3, r5, #0
+ add r3, #0x50
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldmia r3!, {r0, r1}
+ add r2, r4, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r1, r4, #0
+ str r0, [r2]
+ ldr r0, [r5, #4]
+ bl FUN_02059E9C
+ mov r1, #7
+ ldr r2, [r4, #8]
+ lsl r1, r1, #0xc
+ sub r1, r2, r1
+ str r1, [r4, #8]
+ cmp r0, #0
+ bne _02249B66
+ mov r0, #0
+ add sp, #8
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02249B66:
+ ldr r0, [r5]
+ ldr r2, [r4, #4]
+ lsl r1, r0, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ sub r0, r2, r0
+ str r0, [r4, #4]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02249B78: .word 0x02251948
+
+ thumb_func_start MOD06_02249B7C
+MOD06_02249B7C: ; 0x02249B7C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl FUN_021E4C20
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ str r5, [sp, #0xc]
+ bl FUN_021E4C08
+ str r0, [sp, #0x10]
+ add r3, sp, #0x14
+ mov r2, #5
+_02249B9E:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02249B9E
+ str r6, [sp, #0x3c]
+ add r0, sp, #8
+ str r0, [sp]
+ ldr r0, [sp, #0x5c]
+ ldr r1, _02249BC0 ; =0x0225196C
+ str r0, [sp, #4]
+ ldr r3, [sp, #0x58]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl FUN_021E4DC4
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02249BC0: .word 0x0225196C
+
+ thumb_func_start MOD06_02249BC4
+MOD06_02249BC4: ; 0x02249BC4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r6, r0, #0
+ add r3, r4, #4
+ mov r2, #7
+_02249BD6:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02249BD6
+ add r0, r5, #0
+ bl FUN_02064754
+ str r0, [r4]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x40]
+ str r0, [r4, #0x44]
+ str r0, [r4, #0x48]
+ mov r0, #0x40
+ add r1, r4, #0
+ str r0, [r4, #0x4c]
+ add r0, r5, #0
+ add r1, #0x50
+ bl FUN_0206477C
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD06_02249B28
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02249AB4
+ add r0, r5, #0
+ bl FUN_020646DC
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02249C24
+MOD06_02249C24: ; 0x02249C24
+ ldr r3, _02249C2C ; =0x0201F745
+ ldr r0, [r1, #0x3c]
+ bx r3
+ nop
+_02249C2C: .word 0x0201F745
+
+ thumb_func_start MOD06_02249C30
+MOD06_02249C30: ; 0x02249C30
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r2, [r1, #0x40]
+ ldr r0, [r1, #0x4c]
+ add r2, r2, r0
+ mov r0, #0x12
+ lsl r0, r0, #8
+ str r2, [r1, #0x40]
+ cmp r2, r0
+ blt _02249C50
+ str r0, [r1, #0x40]
+ ldr r0, [r1, #0x4c]
+ neg r0, r0
+ str r0, [r1, #0x4c]
+ b _02249C60
+_02249C50:
+ mov r0, #0xe
+ lsl r0, r0, #8
+ cmp r2, r0
+ bgt _02249C60
+ str r0, [r1, #0x40]
+ ldr r0, [r1, #0x4c]
+ neg r0, r0
+ str r0, [r1, #0x4c]
+_02249C60:
+ add r0, r1, #0
+ add r1, sp, #0
+ bl MOD06_02249B28
+ add r0, r4, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD06_02249C74
+MOD06_02249C74: ; 0x02249C74
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x3c]
+ add r1, sp, #0
+ bl FUN_0201F7C8
+ ldr r0, [r4, #0x3c]
+ add r4, #0x40
+ add r1, r4, #0
+ bl FUN_0201F7F0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02249C98
+MOD06_02249C98: ; 0x02249C98
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ ldr r1, _02249CB4 ; =0x00000734
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_02249CC8
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02249CB4: .word 0x00000734
+
+ thumb_func_start MOD06_02249CB8
+MOD06_02249CB8: ; 0x02249CB8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_02249D60
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_02249CC8
+MOD06_02249CC8: ; 0x02249CC8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ ldr r0, _02249D54 ; =0x022519EC
+ ldr r4, _02249D58 ; =0x022519C4
+ str r0, [sp, #0x18]
+ ldr r0, _02249D5C ; =0x000006E4
+ add r1, r5, r0
+ str r1, [sp, #0x14]
+ add r1, r0, #0
+ sub r1, #0x50
+ add r1, r5, r1
+ str r1, [sp, #0x10]
+ add r1, r5, #4
+ str r1, [sp, #0xc]
+ add r1, r0, #0
+ sub r0, #0x28
+ add r6, r5, r0
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r1, #0x28
+ add r0, r5, r0
+ add r7, r5, r1
+ str r0, [sp, #8]
+_02249CFC:
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x18]
+ str r0, [sp]
+ ldr r0, [sp, #0x14]
+ ldr r3, [sp, #0xc]
+ str r0, [sp, #4]
+ ldr r0, [r5]
+ ldr r1, [r1]
+ mov r2, #0
+ bl FUN_021E51EC
+ str r6, [sp]
+ str r7, [sp, #4]
+ ldr r0, [r5]
+ ldr r1, [r4]
+ ldr r3, [sp, #8]
+ mov r2, #0
+ bl FUN_021E51EC
+ ldr r0, [sp, #0x18]
+ add r7, r7, #4
+ add r0, r0, #4
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r6, r6, #4
+ add r0, r0, #4
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r4, r4, #4
+ add r0, r0, #4
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ add r0, #0x54
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ add r0, #0x54
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, #0xa
+ blt _02249CFC
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02249D54: .word 0x022519EC
+_02249D58: .word 0x022519C4
+_02249D5C: .word 0x000006E4
+
+ thumb_func_start MOD06_02249D60
+MOD06_02249D60: ; 0x02249D60
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r7, _02249D84 ; =0x000006E4
+ add r5, r0, #0
+ add r6, r7, #0
+ mov r4, #0
+ add r6, #0x28
+_02249D6C:
+ ldr r0, [r5, r7]
+ bl FUN_021E4C00
+ ldr r0, [r5, r6]
+ bl FUN_021E4C00
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xa
+ blt _02249D6C
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02249D84: .word 0x000006E4
+
+ thumb_func_start MOD06_02249D88
+MOD06_02249D88: ; 0x02249D88
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r1, r3, #0
+ mov r4, #0
+ cmp r0, #3
+ bhi _02249DEC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02249DA2: ; jump table
+ .short _02249DAA - _02249DA2 - 2 ; case 0
+ .short _02249DB4 - _02249DA2 - 2 ; case 1
+ .short _02249DC8 - _02249DA2 - 2 ; case 2
+ .short _02249DD6 - _02249DA2 - 2 ; case 3
+_02249DAA:
+ mov r0, #0x54
+ add r1, r5, #4
+ mul r0, r2
+ add r4, r1, r0
+ b _02249DEC
+_02249DB4:
+ lsl r3, r1, #4
+ ldr r1, _02249DF8 ; =0x02251A14
+ lsl r2, r2, #2
+ add r1, r1, r3
+ ldr r2, [r2, r1]
+ mov r1, #0x54
+ add r0, r5, #4
+ mul r1, r2
+ add r4, r0, r1
+ b _02249DEC
+_02249DC8:
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x54
+ mul r0, r2
+ add r4, r1, r0
+ b _02249DEC
+_02249DD6:
+ lsl r3, r1, #4
+ ldr r1, _02249DF8 ; =0x02251A14
+ lsl r2, r2, #2
+ add r1, r1, r3
+ mov r0, #0xd3
+ ldr r2, [r2, r1]
+ lsl r0, r0, #2
+ mov r1, #0x54
+ add r0, r5, r0
+ mul r1, r2
+ add r4, r0, r1
+_02249DEC:
+ cmp r4, #0
+ bne _02249DF4
+ bl ErrorHandling
+_02249DF4:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02249DF8: .word 0x02251A14
+
+ thumb_func_start MOD06_02249DFC
+MOD06_02249DFC: ; 0x02249DFC
+ push {r4, lr}
+ mov r4, #0
+ cmp r1, #3
+ bhi _02249E52
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02249E10: ; jump table
+ .short _02249E18 - _02249E10 - 2 ; case 0
+ .short _02249E22 - _02249E10 - 2 ; case 1
+ .short _02249E36 - _02249E10 - 2 ; case 2
+ .short _02249E40 - _02249E10 - 2 ; case 3
+_02249E18:
+ lsl r1, r2, #2
+ add r1, r0, r1
+ ldr r0, _02249E60 ; =0x00000694
+ ldr r4, [r1, r0]
+ b _02249E52
+_02249E22:
+ ldr r1, _02249E64 ; =0x02251A14
+ lsl r3, r3, #4
+ lsl r2, r2, #2
+ add r1, r1, r3
+ ldr r1, [r2, r1]
+ lsl r1, r1, #2
+ add r1, r0, r1
+ ldr r0, _02249E60 ; =0x00000694
+ ldr r4, [r1, r0]
+ b _02249E52
+_02249E36:
+ lsl r1, r2, #2
+ add r1, r0, r1
+ ldr r0, _02249E68 ; =0x000006BC
+ ldr r4, [r1, r0]
+ b _02249E52
+_02249E40:
+ ldr r1, _02249E64 ; =0x02251A14
+ lsl r3, r3, #4
+ lsl r2, r2, #2
+ add r1, r1, r3
+ ldr r1, [r2, r1]
+ lsl r1, r1, #2
+ add r1, r0, r1
+ ldr r0, _02249E68 ; =0x000006BC
+ ldr r4, [r1, r0]
+_02249E52:
+ cmp r4, #0
+ bne _02249E5A
+ bl ErrorHandling
+_02249E5A:
+ add r0, r4, #0
+ pop {r4, pc}
+ nop
+_02249E60: .word 0x00000694
+_02249E64: .word 0x02251A14
+_02249E68: .word 0x000006BC
+
+ thumb_func_start MOD06_02249E6C
+MOD06_02249E6C: ; 0x02249E6C
+ ldr r3, _02249E74 ; =MOD06_02249E9C
+ mov r1, #0
+ bx r3
+ nop
+_02249E74: .word MOD06_02249E9C
+
+ thumb_func_start MOD06_02249E78
+MOD06_02249E78: ; 0x02249E78
+ ldr r3, _02249E80 ; =MOD06_02249E9C
+ mov r1, #1
+ bx r3
+ nop
+_02249E80: .word MOD06_02249E9C
+
+ thumb_func_start MOD06_02249E84
+MOD06_02249E84: ; 0x02249E84
+ ldr r3, _02249E8C ; =MOD06_02249E9C
+ mov r1, #2
+ bx r3
+ nop
+_02249E8C: .word MOD06_02249E9C
+
+ thumb_func_start MOD06_02249E90
+MOD06_02249E90: ; 0x02249E90
+ ldr r3, _02249E98 ; =MOD06_02249E9C
+ mov r1, #3
+ bx r3
+ nop
+_02249E98: .word MOD06_02249E9C
+
+ thumb_func_start MOD06_02249E9C
+MOD06_02249E9C: ; 0x02249E9C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02058B14
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ bl FUN_02058B24
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ bl FUN_02058B80
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_020584C4
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ bl FUN_020584C8
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0205829C
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_021E4C24
+ mov r1, #0xb
+ str r0, [sp, #8]
+ bl FUN_021E4C08
+ ldr r2, [sp, #0x14]
+ ldr r3, [sp, #0x18]
+ add r1, r4, #0
+ add r5, r0, #0
+ bl MOD06_02249D88
+ str r0, [sp, #0x20]
+ ldr r2, [sp, #0x14]
+ ldr r3, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD06_02249DFC
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ add r2, sp, #0x28
+ str r4, [sp, #0x1c]
+ bl FUN_02059E60
+ str r6, [sp, #0x2c]
+ cmp r4, #3
+ bhi _02249F6A
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02249F1C: ; jump table
+ .short _02249F24 - _02249F1C - 2 ; case 0
+ .short _02249F24 - _02249F1C - 2 ; case 1
+ .short _02249F46 - _02249F1C - 2 ; case 2
+ .short _02249F46 - _02249F1C - 2 ; case 3
+_02249F24:
+ mov r0, #2
+ lsl r0, r0, #0xe
+ sub r1, r6, r0
+ str r1, [sp, #0x2c]
+ sub r1, r4, #2
+ cmp r1, #1
+ bhi _02249F3C
+ ldr r1, [sp, #0x30]
+ lsr r0, r0, #2
+ sub r0, r1, r0
+ str r0, [sp, #0x30]
+ b _02249F6A
+_02249F3C:
+ ldr r1, [sp, #0x30]
+ lsr r0, r0, #3
+ add r0, r1, r0
+ str r0, [sp, #0x30]
+ b _02249F6A
+_02249F46:
+ mov r0, #0xa
+ lsl r0, r0, #0xc
+ sub r0, r6, r0
+ str r0, [sp, #0x2c]
+ sub r0, r4, #2
+ cmp r0, #1
+ bhi _02249F60
+ mov r0, #2
+ ldr r1, [sp, #0x30]
+ lsl r0, r0, #0xc
+ sub r0, r1, r0
+ str r0, [sp, #0x30]
+ b _02249F6A
+_02249F60:
+ mov r0, #2
+ ldr r1, [sp, #0x30]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #0x30]
+_02249F6A:
+ add r0, sp, #0x1c
+ str r0, [sp]
+ ldr r0, [sp, #8]
+ ldr r1, _02249F80 ; =0x0225198C
+ add r2, sp, #0x28
+ mov r3, #0
+ str r7, [sp, #4]
+ bl FUN_021E4DC4
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02249F80: .word 0x0225198C
+
+ thumb_func_start MOD06_02249F84
+MOD06_02249F84: ; 0x02249F84
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02064754
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0206475C
+ ldr r1, [r0, #4]
+ str r1, [r4, #0x14]
+ ldr r1, [r0, #8]
+ str r1, [r4, #0x18]
+ mov r1, #0x1f
+ str r1, [r4, #0xc]
+ ldr r0, [r0]
+ str r0, [r4, #0x10]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02249FAC
+MOD06_02249FAC: ; 0x02249FAC
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_02249FB0
+MOD06_02249FB0: ; 0x02249FB0
+ push {r3, lr}
+ ldr r2, [r1]
+ cmp r2, #0
+ beq _02249FBE
+ cmp r2, #1
+ beq _02249FD0
+ pop {r3, pc}
+_02249FBE:
+ ldr r0, [r1, #4]
+ add r0, r0, #1
+ str r0, [r1, #4]
+ cmp r0, #0x10
+ blt _02249FDC
+ ldr r0, [r1]
+ add r0, r0, #1
+ str r0, [r1]
+ pop {r3, pc}
+_02249FD0:
+ ldr r2, [r1, #0xc]
+ sub r2, r2, #2
+ str r2, [r1, #0xc]
+ bpl _02249FDC
+ bl FUN_021E4DE4
+_02249FDC:
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_02249FE0
+MOD06_02249FE0: ; 0x02249FE0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x3c
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #1
+ beq _0224A034
+ ldr r5, _0224A038 ; =0x02251980
+ add r3, sp, #0x24
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ ldr r6, _0224A03C ; =0x022519A0
+ str r0, [r3]
+ add r5, sp, #0
+ mov r3, #4
+_0224A000:
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ sub r3, r3, #1
+ bne _0224A000
+ ldr r0, [r6]
+ add r1, sp, #0x30
+ str r0, [r5]
+ add r0, r2, #0
+ bl FUN_0206477C
+ mov r2, #0x1f
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ lsl r2, r2, #0x10
+ bl FUN_020BC02C
+ ldr r0, [r4, #0x18]
+ ldr r1, [r4, #0xc]
+ bl FUN_020BBA34
+ ldr r0, [r4, #0x14]
+ add r1, sp, #0x30
+ add r2, sp, #0
+ add r3, sp, #0x24
+ bl FUN_0201B26C
+_0224A034:
+ add sp, #0x3c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0224A038: .word 0x02251980
+_0224A03C: .word 0x022519A0
+
+ thumb_func_start MOD06_0224A040
+MOD06_0224A040: ; 0x0224A040
+ push {r3, r4, r5, lr}
+ mov r1, #0x8b
+ mov r2, #0
+ lsl r1, r1, #2
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_0224A06C
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224A05C
+MOD06_0224A05C: ; 0x0224A05C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224A0B4
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224A06C
+MOD06_0224A06C: ; 0x0224A06C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r1, #0x85
+ ldr r0, [sp, #8]
+ lsl r1, r1, #2
+ add r6, r0, r1
+ sub r1, #0x18
+ ldr r5, _0224A0B0 ; =0x02251A74
+ add r4, r0, r1
+ add r7, r0, #4
+_0224A086:
+ str r4, [sp]
+ str r6, [sp, #4]
+ ldr r0, [sp, #8]
+ ldr r1, [r5]
+ ldr r0, [r0]
+ mov r2, #0
+ add r3, r7, #0
+ bl FUN_021E51EC
+ ldr r0, [sp, #0xc]
+ add r6, r6, #4
+ add r0, r0, #1
+ add r4, r4, #4
+ add r7, #0x54
+ add r5, r5, #4
+ str r0, [sp, #0xc]
+ cmp r0, #6
+ blt _0224A086
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224A0B0: .word 0x02251A74
+
+ thumb_func_start MOD06_0224A0B4
+MOD06_0224A0B4: ; 0x0224A0B4
+ push {r4, r5, r6, lr}
+ mov r6, #0x85
+ add r5, r0, #0
+ mov r4, #0
+ lsl r6, r6, #2
+_0224A0BE:
+ ldr r0, [r5, r6]
+ bl FUN_021E4C00
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _0224A0BE
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224A0D0
+MOD06_0224A0D0: ; 0x0224A0D0
+ push {r3, r4}
+ add r3, r0, #0
+ mov r0, #0x54
+ mul r0, r2
+ add r0, r1, r0
+ add r4, r0, #4
+ mov r2, #0xa
+_0224A0DE:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0224A0DE
+ ldr r0, [r4]
+ str r0, [r3]
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_0224A0F0
+MOD06_0224A0F0: ; 0x0224A0F0
+ push {r3, lr}
+ sub r0, #0x5b
+ cmp r0, #5
+ bhi _0224A128
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224A104: ; jump table
+ .short _0224A110 - _0224A104 - 2 ; case 0
+ .short _0224A114 - _0224A104 - 2 ; case 1
+ .short _0224A118 - _0224A104 - 2 ; case 2
+ .short _0224A11C - _0224A104 - 2 ; case 3
+ .short _0224A120 - _0224A104 - 2 ; case 4
+ .short _0224A124 - _0224A104 - 2 ; case 5
+_0224A110:
+ mov r0, #0
+ pop {r3, pc}
+_0224A114:
+ mov r0, #1
+ pop {r3, pc}
+_0224A118:
+ mov r0, #2
+ pop {r3, pc}
+_0224A11C:
+ mov r0, #3
+ pop {r3, pc}
+_0224A120:
+ mov r0, #4
+ pop {r3, pc}
+_0224A124:
+ mov r0, #5
+ pop {r3, pc}
+_0224A128:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD06_0224A130
+MOD06_0224A130: ; 0x0224A130
+ push {r4, r5, r6, lr}
+ sub sp, #0xc8
+ add r5, r0, #0
+ bl FUN_021E4C24
+ mov r1, #0xc
+ add r4, r0, #0
+ bl FUN_021E4C08
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_02058458
+ bl MOD06_0224A0F0
+ add r2, r0, #0
+ add r0, sp, #0x14
+ add r1, r6, #0
+ str r2, [sp, #0x68]
+ bl MOD06_0224A0D0
+ add r6, sp, #0x14
+ add r3, sp, #0x70
+ mov r2, #0xa
+_0224A160:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0224A160
+ ldr r0, [r6]
+ add r1, sp, #8
+ str r0, [r3]
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r5, #0
+ mov r1, #2
+ str r4, [sp, #0x6c]
+ str r5, [sp, #0xc4]
+ bl FUN_0205829C
+ add r1, sp, #0x68
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r1, _0224A198 ; =0x02251A60
+ add r0, r4, #0
+ add r2, sp, #8
+ mov r3, #0
+ bl FUN_021E4DC4
+ add sp, #0xc8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224A198: .word 0x02251A60
+
+ thumb_func_start MOD06_0224A19C
+MOD06_0224A19C: ; 0x0224A19C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r3, r4, #0
+ add r5, r0, #0
+ add r3, #0xc
+ mov r2, #0xc
+_0224A1AC:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0224A1AC
+ ldr r0, [r4, #0x68]
+ bl FUN_02058448
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x68]
+ bl FUN_020589CC
+ cmp r0, #1
+ ldr r0, [r4, #0x68]
+ bne _0224A1CE
+ bl FUN_02058750
+ b _0224A1D2
+_0224A1CE:
+ bl FUN_02058450
+_0224A1D2:
+ str r0, [r4, #8]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224A1D8
+MOD06_0224A1D8: ; 0x0224A1D8
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_0224A1DC
+MOD06_0224A1DC: ; 0x0224A1DC
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r2, r1, #0
+ ldr r5, [r2, #0x68]
+ ldr r1, [r2, #4]
+ add r4, r0, #0
+ ldr r2, [r2, #8]
+ add r0, r5, #0
+ bl FUN_020582A8
+ cmp r0, #0
+ bne _0224A1FE
+ add r0, r4, #0
+ bl FUN_021E4DE4
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+_0224A1FE:
+ add r0, r5, #0
+ add r1, sp, #0xc
+ bl FUN_02058B5C
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02058B84
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp]
+ ldr r2, [sp, #0x14]
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ mov r0, #2
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xc
+ sub r0, r1, r0
+ add r0, r2, r0
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ add r1, sp, #0xc
+ bl FUN_0206476C
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224A238
+MOD06_0224A238: ; 0x0224A238
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x3c
+ ldr r5, _0224A278 ; =0x02251A54
+ add r2, r0, #0
+ add r4, r1, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0x24
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ ldr r6, _0224A27C ; =0x02251A8C
+ str r0, [r3]
+ add r5, sp, #0
+ mov r3, #4
+_0224A252:
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ sub r3, r3, #1
+ bne _0224A252
+ ldr r0, [r6]
+ add r1, sp, #0x30
+ str r0, [r5]
+ add r0, r2, #0
+ bl FUN_0206477C
+ add r4, #0x14
+ add r0, r4, #0
+ add r1, sp, #0x30
+ add r2, sp, #0
+ add r3, sp, #0x24
+ bl FUN_0201B26C
+ add sp, #0x3c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0224A278: .word 0x02251A54
+_0224A27C: .word 0x02251A8C
+
+ thumb_func_start MOD06_0224A280
+MOD06_0224A280: ; 0x0224A280
+ push {r3, r4, r5, lr}
+ mov r1, #0x46
+ mov r2, #0
+ lsl r1, r1, #2
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_0224A2AC
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224A29C
+MOD06_0224A29C: ; 0x0224A29C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224A2F4
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224A2AC
+MOD06_0224A2AC: ; 0x0224A2AC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r1, #0x43
+ ldr r0, [sp, #8]
+ lsl r1, r1, #2
+ add r6, r0, r1
+ sub r1, #0xc
+ ldr r5, _0224A2F0 ; =0x02251ABC
+ add r4, r0, r1
+ add r7, r0, #4
+_0224A2C6:
+ str r4, [sp]
+ str r6, [sp, #4]
+ ldr r0, [sp, #8]
+ ldr r1, [r5]
+ ldr r0, [r0]
+ mov r2, #0
+ add r3, r7, #0
+ bl FUN_021E51EC
+ ldr r0, [sp, #0xc]
+ add r6, r6, #4
+ add r0, r0, #1
+ add r4, r4, #4
+ add r7, #0x54
+ add r5, r5, #4
+ str r0, [sp, #0xc]
+ cmp r0, #3
+ blt _0224A2C6
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224A2F0: .word 0x02251ABC
+
+ thumb_func_start MOD06_0224A2F4
+MOD06_0224A2F4: ; 0x0224A2F4
+ push {r4, r5, r6, lr}
+ mov r6, #0x43
+ add r5, r0, #0
+ mov r4, #0
+ lsl r6, r6, #2
+_0224A2FE:
+ ldr r0, [r5, r6]
+ bl FUN_021E4C00
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _0224A2FE
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224A310
+MOD06_0224A310: ; 0x0224A310
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ bl FUN_021E4C24
+ add r4, r0, #0
+ mov r1, #0xd
+ str r4, [sp, #0x14]
+ bl FUN_021E4C08
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, sp, #8
+ str r5, [sp, #0x1c]
+ bl FUN_02058B5C
+ add r0, r5, #0
+ bl FUN_02058744
+ add r1, r0, #1
+ add r0, sp, #0x14
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r1, _0224A350 ; =0x02251ADC
+ add r0, r4, #0
+ add r2, sp, #8
+ mov r3, #0
+ bl FUN_021E4DC4
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ nop
+_0224A350: .word 0x02251ADC
+
+ thumb_func_start MOD06_0224A354
+MOD06_0224A354: ; 0x0224A354
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r3, r0, #0
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x10
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r4, #0x18]
+ bl FUN_02058448
+ str r0, [r4]
+ ldr r0, [r4, #0x18]
+ bl FUN_02058450
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224A380
+MOD06_0224A380: ; 0x0224A380
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_0224A384
+MOD06_0224A384: ; 0x0224A384
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r4, [r5, #0x18]
+ ldr r1, [r5]
+ add r6, r0, #0
+ ldr r2, [r5, #4]
+ add r0, r4, #0
+ bl FUN_020582A8
+ cmp r0, #0
+ bne _0224A3A6
+ add r0, r6, #0
+ bl FUN_021E4DE4
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_0224A3A6:
+ mov r0, #0
+ mov r1, #2
+ str r0, [r5, #8]
+ add r0, r4, #0
+ lsl r1, r1, #8
+ bl FUN_0205842C
+ cmp r0, #1
+ beq _0224A3C8
+ add r0, r4, #0
+ bl FUN_02058738
+ add r1, r4, #0
+ bl FUN_0204B5FC
+ cmp r0, #0
+ bne _0224A3D0
+_0224A3C8:
+ mov r0, #1
+ add sp, #0xc
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, pc}
+_0224A3D0:
+ add r0, r4, #0
+ bl FUN_02058738
+ add r1, r4, #0
+ bl FUN_0204B684
+ str r0, [r5, #0xc]
+ add r0, r4, #0
+ add r1, sp, #0
+ bl FUN_02058B5C
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224A3F4
+MOD06_0224A3F4: ; 0x0224A3F4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x3c
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #1
+ beq _0224A43E
+ ldr r5, _0224A444 ; =0x02251AB0
+ add r3, sp, #0x24
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ ldr r6, _0224A448 ; =0x02251B1C
+ str r0, [r3]
+ add r5, sp, #0
+ mov r3, #4
+_0224A414:
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ sub r3, r3, #1
+ bne _0224A414
+ ldr r0, [r6]
+ add r1, sp, #0x30
+ str r0, [r5]
+ add r0, r2, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x14]
+ ldr r1, [r4, #0xc]
+ add r2, r0, #4
+ mov r0, #0x54
+ mul r0, r1
+ add r0, r2, r0
+ add r1, sp, #0x30
+ add r2, sp, #0
+ add r3, sp, #0x24
+ bl FUN_0201B26C
+_0224A43E:
+ add sp, #0x3c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0224A444: .word 0x02251AB0
+_0224A448: .word 0x02251B1C
+
+ thumb_func_start MOD06_0224A44C
+MOD06_0224A44C: ; 0x0224A44C
+ push {r4, lr}
+ mov r2, #0
+ mov r1, #0xc
+ add r3, r2, #0
+ add r4, r0, #0
+ bl FUN_021E4BE8
+ str r4, [r0, #8]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224A460
+MOD06_0224A460: ; 0x0224A460
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224A4D8
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224A470
+MOD06_0224A470: ; 0x0224A470
+ ldr r1, [r0]
+ add r1, r1, #1
+ str r1, [r0]
+ bx lr
+
+ thumb_func_start MOD06_0224A478
+MOD06_0224A478: ; 0x0224A478
+ push {r3, lr}
+ ldr r1, [r0]
+ sub r1, r1, #1
+ str r1, [r0]
+ bpl _0224A486
+ bl ErrorHandling
+_0224A486:
+ pop {r3, pc}
+
+ thumb_func_start MOD06_0224A488
+MOD06_0224A488: ; 0x0224A488
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _0224A4D0
+ mov r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ mov r1, #0xb
+ mov r2, #0x6d
+ bl FUN_021E5078
+ ldr r0, [r4, #8]
+ mov r1, #0xb
+ mov r2, #0x80
+ bl FUN_021E50AC
+ ldr r0, [r4, #8]
+ mov r1, #0xc
+ mov r2, #0xe
+ mov r3, #1
+ bl FUN_021E50D4
+ mov r0, #0xc
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0224A4D4 ; =0x02251B04
+ mov r2, #0xb
+ str r0, [sp, #8]
+ ldr r0, [r4, #8]
+ mov r1, #0xd
+ add r3, r2, #0
+ bl FUN_021E4EFC
+_0224A4D0:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_0224A4D4: .word 0x02251B04
+
+ thumb_func_start MOD06_0224A4D8
+MOD06_0224A4D8: ; 0x0224A4D8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #1
+ bne _0224A506
+ mov r0, #0
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ mov r1, #0xb
+ bl FUN_021E50A0
+ ldr r0, [r4, #8]
+ mov r1, #0xb
+ bl FUN_021E50C8
+ ldr r0, [r4, #8]
+ mov r1, #0xc
+ bl FUN_021E5114
+ ldr r0, [r4, #8]
+ mov r1, #0xd
+ bl FUN_021E506C
+_0224A506:
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224A508
+MOD06_0224A508: ; 0x0224A508
+ push {r3, lr}
+ ldr r1, [r0]
+ cmp r1, #0
+ bne _0224A514
+ bl MOD06_0224A488
+_0224A514:
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224A518
+MOD06_0224A518: ; 0x0224A518
+ push {r3, lr}
+ ldr r1, [r0]
+ cmp r1, #0
+ bne _0224A524
+ bl MOD06_0224A4D8
+_0224A524:
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224A528
+MOD06_0224A528: ; 0x0224A528
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ bl FUN_021E4C24
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, sp, #0x14
+ bl FUN_021F1E64
+ mov r0, #2
+ ldr r1, [sp, #0x1c]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ mov r1, #0x1e
+ str r4, [sp, #8]
+ bl FUN_021E4C08
+ str r0, [sp, #0xc]
+ add r0, sp, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r1, _0224A56C ; =0x02251AC8
+ add r0, r4, #0
+ add r2, sp, #0x14
+ mov r3, #0
+ bl FUN_021E4DC4
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ nop
+_0224A56C: .word 0x02251AC8
+
+ thumb_func_start MOD06_0224A570
+MOD06_0224A570: ; 0x0224A570
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r3, r0, #0
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r4, #0x10]
+ bl MOD06_0224A508
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ add r2, sp, #0
+ bl FUN_021E4EE4
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x10]
+ bl MOD06_0224A470
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD06_0224A5B0
+MOD06_0224A5B0: ; 0x0224A5B0
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0x18]
+ bl FUN_0201F744
+ ldr r0, [r4, #0x10]
+ bl MOD06_0224A478
+ ldr r0, [r4, #0x10]
+ bl MOD06_0224A518
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224A5C8
+MOD06_0224A5C8: ; 0x0224A5C8
+ push {r4, r5, lr}
+ sub sp, #0x14
+ ldr r5, _0224A620 ; =0x02251AF0
+ add r2, r0, #0
+ add r4, r1, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r3]
+ ldr r0, [r4, #8]
+ cmp r0, #1
+ bne _0224A604
+ mov r1, #0
+ str r1, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ cmp r0, #5
+ blt _0224A5FE
+ add r0, r2, #0
+ bl FUN_021E4DE4
+ add sp, #0x14
+ pop {r4, r5, pc}
+_0224A5FE:
+ ldr r0, [r4, #0x18]
+ bl FUN_0201F86C
+_0224A604:
+ ldr r1, [r4, #4]
+ ldr r0, [r4, #0x18]
+ lsl r2, r1, #2
+ add r1, sp, #0
+ ldr r1, [r1, r2]
+ bl FUN_0201F854
+ cmp r0, #1
+ bne _0224A61A
+ mov r0, #1
+ str r0, [r4, #8]
+_0224A61A:
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_0224A620: .word 0x02251AF0
+
+ thumb_func_start MOD06_0224A624
+MOD06_0224A624: ; 0x0224A624
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x18]
+ add r1, sp, #0
+ bl FUN_0201F7C8
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD06_0224A63C
+MOD06_0224A63C: ; 0x0224A63C
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r1, #0x38
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_0224A668
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224A658
+MOD06_0224A658: ; 0x0224A658
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224A6A0
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224A668
+MOD06_0224A668: ; 0x0224A668
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x28
+ bl FUN_021E5294
+ ldr r0, [r4]
+ add r1, r4, #4
+ mov r2, #0x4e
+ mov r3, #0
+ bl FUN_021E5224
+ mov r0, #0x74
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r2, r4, #4
+ add r4, #0x28
+ add r1, #0x14
+ add r3, r4, #0
+ bl FUN_021E5260
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224A6A0
+MOD06_0224A6A0: ; 0x0224A6A0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r4, #4
+ bl FUN_021F52C8
+ add r0, r4, #0
+ add r4, #0x28
+ add r0, #0x14
+ add r1, r4, #0
+ bl FUN_021F5358
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224A6B8
+MOD06_0224A6B8: ; 0x0224A6B8
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ bl FUN_021E4C24
+ mov r1, #0xe
+ add r4, r0, #0
+ bl FUN_021E4C08
+ str r0, [sp, #0x18]
+ add r1, sp, #8
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r5, #0
+ mov r1, #2
+ str r4, [sp, #0x14]
+ str r5, [sp, #0x1c]
+ bl FUN_0205829C
+ add r1, sp, #0x14
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r1, _0224A6F8 ; =0x02251B58
+ add r0, r4, #0
+ add r2, sp, #8
+ mov r3, #0
+ bl FUN_021E4DC4
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224A6F8: .word 0x02251B58
+
+ thumb_func_start MOD06_0224A6FC
+MOD06_0224A6FC: ; 0x0224A6FC
+ push {r3, lr}
+ bl FUN_02064738
+ mov r1, #1
+ str r1, [r0, #0xc]
+ ldr r0, [r0, #0x1c]
+ mov r1, #0
+ str r1, [r0, #0x14]
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224A710
+MOD06_0224A710: ; 0x0224A710
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r6, r0, #0
+ add r5, r1, #0
+ bl FUN_0206475C
+ add r3, r0, #0
+ add r2, r5, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x10
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #0x90
+ str r0, [r2]
+ ldr r0, [r5, #0x10]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r4, [r5, #0x1c]
+ ldr r0, [r5, #0x10]
+ add r1, r4, #4
+ bl FUN_021E5294
+ ldr r2, [r5, #0x14]
+ add r0, r4, #4
+ ldr r1, [r2, #0x18]
+ ldr r2, [r2, #0xc]
+ bl FUN_020BB8D0
+ str r0, [r4]
+ ldr r3, [r5, #0x14]
+ ldr r1, [r3, #0x18]
+ ldr r2, [r3, #0xc]
+ ldr r3, [r3, #0x10]
+ bl FUN_020B8110
+ ldr r1, [r5, #0x14]
+ add r0, r4, #0
+ add r0, #0x18
+ add r1, r1, #4
+ bl FUN_021F5400
+ add r0, r4, #0
+ ldr r1, [r4]
+ add r0, #0x18
+ bl FUN_020B7EFC
+ ldr r0, [r5, #0x18]
+ bl FUN_02058448
+ str r0, [r5, #4]
+ ldr r0, [r5, #0x18]
+ bl FUN_02058450
+ str r0, [r5, #8]
+ ldr r5, [r5, #0x18]
+ add r1, sp, #0xc
+ add r0, r5, #0
+ bl FUN_02058B5C
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02058B84
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp]
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+ add r0, r6, #0
+ add r1, sp, #0xc
+ bl FUN_0206476C
+ add r4, #0x18
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ add r0, r4, #0
+ bl FUN_021F54D0
+ mov r0, #1
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_0224A7C8
+MOD06_0224A7C8: ; 0x0224A7C8
+ push {r4, lr}
+ ldr r4, [r1, #0x1c]
+ ldr r1, [r4]
+ add r0, r4, #4
+ bl thunk_FUN_020ae84c
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224A7DC
+MOD06_0224A7DC: ; 0x0224A7DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ ldr r1, [r5, #0xc]
+ add r7, r0, #0
+ ldr r4, [r5, #0x1c]
+ ldr r6, [r5, #0x18]
+ cmp r1, #0
+ bne _0224A806
+ ldr r1, [r5, #4]
+ ldr r2, [r5, #8]
+ add r0, r6, #0
+ bl FUN_020582A8
+ cmp r0, #0
+ bne _0224A828
+ add r0, r7, #0
+ bl FUN_021E4DE4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0224A806:
+ ldr r1, [r4]
+ ldr r2, [r4, #0x14]
+ ldr r1, [r1, #8]
+ ldrh r1, [r1, #4]
+ lsl r3, r1, #0xc
+ mov r1, #1
+ lsl r1, r1, #0xc
+ add r1, r2, r1
+ str r1, [r4, #0x14]
+ cmp r1, r3
+ ble _0224A824
+ bl FUN_021E4DE4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0224A824:
+ ldr r0, [r4]
+ str r1, [r0]
+_0224A828:
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bne _0224A86C
+ add r0, r6, #0
+ add r1, sp, #0xc
+ bl FUN_02058B5C
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_02058B84
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp]
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r1, sp, #0xc
+ bl FUN_0206476C
+ add r4, #0x18
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ add r0, r4, #0
+ bl FUN_021F54D0
+_0224A86C:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0224A870
+MOD06_0224A870: ; 0x0224A870
+ ldr r0, [r1, #0x1c]
+ ldr r3, _0224A878 ; =0x021F5431
+ add r0, #0x18
+ bx r3
+ .align 2, 0
+_0224A878: .word 0x021F5431
+
+ thumb_func_start MOD06_0224A87C
+MOD06_0224A87C: ; 0x0224A87C
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r1, #0x60
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_0224A8A8
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224A898
+MOD06_0224A898: ; 0x0224A898
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224A8C8
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224A8A8
+MOD06_0224A8A8: ; 0x0224A8A8
+ push {r3, lr}
+ sub sp, #8
+ add r3, r0, #0
+ add r0, #0x58
+ str r0, [sp]
+ add r0, r3, #0
+ add r0, #0x5c
+ str r0, [sp, #4]
+ ldr r0, [r3]
+ mov r1, #0x4f
+ mov r2, #0
+ add r3, r3, #4
+ bl FUN_021E51EC
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD06_0224A8C8
+MOD06_0224A8C8: ; 0x0224A8C8
+ ldr r3, _0224A8D0 ; =0x021E4C01
+ ldr r0, [r0, #0x5c]
+ bx r3
+ nop
+_0224A8D0: .word 0x021E4C01
+
+ thumb_func_start MOD06_0224A8D4
+MOD06_0224A8D4: ; 0x0224A8D4
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ bl FUN_021E4C24
+ mov r1, #0xf
+ add r4, r0, #0
+ bl FUN_021E4C08
+ str r0, [sp, #0x18]
+ add r1, sp, #8
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r5, #0
+ mov r1, #2
+ str r4, [sp, #0x14]
+ str r5, [sp, #0x1c]
+ bl FUN_0205829C
+ add r1, sp, #0x14
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r1, _0224A914 ; =0x02251B6C
+ add r0, r4, #0
+ add r2, sp, #8
+ mov r3, #0
+ bl FUN_021E4DC4
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224A914: .word 0x02251B6C
+
+ thumb_func_start MOD06_0224A918
+MOD06_0224A918: ; 0x0224A918
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r3, r0, #0
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r4, #0x14]
+ bl FUN_02058448
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x14]
+ bl FUN_02058450
+ str r0, [r4, #8]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224A944
+MOD06_0224A944: ; 0x0224A944
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_0224A948
+MOD06_0224A948: ; 0x0224A948
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r2, r1, #0
+ ldr r5, [r2, #0x14]
+ ldr r1, [r2, #4]
+ add r4, r0, #0
+ ldr r2, [r2, #8]
+ add r0, r5, #0
+ bl FUN_020582A8
+ cmp r0, #0
+ bne _0224A96A
+ add r0, r4, #0
+ bl FUN_021E4DE4
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+_0224A96A:
+ add r0, r5, #0
+ add r1, sp, #0xc
+ bl FUN_02058B5C
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02058B84
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp]
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ add r1, sp, #0xc
+ bl FUN_0206476C
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224A9A0
+MOD06_0224A9A0: ; 0x0224A9A0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x3c
+ ldr r5, _0224A9E0 ; =0x02251B40
+ add r2, r0, #0
+ add r4, r1, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0x24
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ ldr r6, _0224A9E4 ; =0x02251BB8
+ str r0, [r3]
+ add r5, sp, #0
+ mov r3, #4
+_0224A9BA:
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ sub r3, r3, #1
+ bne _0224A9BA
+ ldr r0, [r6]
+ add r1, sp, #0x30
+ str r0, [r5]
+ add r0, r2, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x10]
+ add r1, sp, #0x30
+ add r0, r0, #4
+ add r2, sp, #0
+ add r3, sp, #0x24
+ bl FUN_0201B26C
+ add sp, #0x3c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0224A9E0: .word 0x02251B40
+_0224A9E4: .word 0x02251BB8
+
+ thumb_func_start MOD06_0224A9E8
+MOD06_0224A9E8: ; 0x0224A9E8
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r1, #0x60
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_0224AA14
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224AA04
+MOD06_0224AA04: ; 0x0224AA04
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224AA34
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224AA14
+MOD06_0224AA14: ; 0x0224AA14
+ push {r3, lr}
+ sub sp, #8
+ add r3, r0, #0
+ add r0, #0x58
+ str r0, [sp]
+ add r0, r3, #0
+ add r0, #0x5c
+ str r0, [sp, #4]
+ ldr r0, [r3]
+ mov r1, #0x6e
+ mov r2, #0
+ add r3, r3, #4
+ bl FUN_021E51EC
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD06_0224AA34
+MOD06_0224AA34: ; 0x0224AA34
+ ldr r3, _0224AA3C ; =0x021E4C01
+ ldr r0, [r0, #0x5c]
+ bx r3
+ nop
+_0224AA3C: .word 0x021E4C01
+
+ thumb_func_start MOD06_0224AA40
+MOD06_0224AA40: ; 0x0224AA40
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ bl FUN_021E4C24
+ mov r1, #0x1f
+ add r4, r0, #0
+ bl FUN_021E4C08
+ str r0, [sp, #0x18]
+ add r1, sp, #8
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r5, #0
+ mov r1, #2
+ str r4, [sp, #0x14]
+ str r5, [sp, #0x1c]
+ bl FUN_0205829C
+ add r1, sp, #0x14
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r1, _0224AA80 ; =0x02251B80
+ add r0, r4, #0
+ add r2, sp, #8
+ mov r3, #0
+ bl FUN_021E4DC4
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224AA80: .word 0x02251B80
+
+ thumb_func_start MOD06_0224AA84
+MOD06_0224AA84: ; 0x0224AA84
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r3, r0, #0
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r4, #0x14]
+ bl FUN_02058448
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x14]
+ bl FUN_02058450
+ str r0, [r4, #8]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224AAB0
+MOD06_0224AAB0: ; 0x0224AAB0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_0224AAB4
+MOD06_0224AAB4: ; 0x0224AAB4
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r2, r1, #0
+ ldr r5, [r2, #0x14]
+ ldr r1, [r2, #4]
+ add r4, r0, #0
+ ldr r2, [r2, #8]
+ add r0, r5, #0
+ bl FUN_020582A8
+ cmp r0, #0
+ bne _0224AAD6
+ add r0, r4, #0
+ bl FUN_021E4DE4
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+_0224AAD6:
+ add r0, r5, #0
+ add r1, sp, #0xc
+ bl FUN_02058B5C
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02058B84
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp]
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ add r1, sp, #0xc
+ bl FUN_0206476C
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224AB0C
+MOD06_0224AB0C: ; 0x0224AB0C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x3c
+ ldr r5, _0224AB4C ; =0x02251B4C
+ add r2, r0, #0
+ add r4, r1, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0x24
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ ldr r6, _0224AB50 ; =0x02251B94
+ str r0, [r3]
+ add r5, sp, #0
+ mov r3, #4
+_0224AB26:
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ sub r3, r3, #1
+ bne _0224AB26
+ ldr r0, [r6]
+ add r1, sp, #0x30
+ str r0, [r5]
+ add r0, r2, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x10]
+ add r1, sp, #0x30
+ add r0, r0, #4
+ add r2, sp, #0
+ add r3, sp, #0x24
+ bl FUN_0201B26C
+ add sp, #0x3c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0224AB4C: .word 0x02251B4C
+_0224AB50: .word 0x02251B94
+
+ thumb_func_start MOD06_0224AB54
+MOD06_0224AB54: ; 0x0224AB54
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r1, #0x60
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_0224AB80
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224AB70
+MOD06_0224AB70: ; 0x0224AB70
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224ABA0
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224AB80
+MOD06_0224AB80: ; 0x0224AB80
+ push {r3, lr}
+ sub sp, #8
+ add r3, r0, #0
+ add r0, #0x58
+ str r0, [sp]
+ add r0, r3, #0
+ add r0, #0x5c
+ str r0, [sp, #4]
+ ldr r0, [r3]
+ mov r1, #0x51
+ mov r2, #0
+ add r3, r3, #4
+ bl FUN_021E51EC
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD06_0224ABA0
+MOD06_0224ABA0: ; 0x0224ABA0
+ ldr r3, _0224ABA8 ; =0x021E4C01
+ ldr r0, [r0, #0x5c]
+ bx r3
+ nop
+_0224ABA8: .word 0x021E4C01
+
+ thumb_func_start MOD06_0224ABAC
+MOD06_0224ABAC: ; 0x0224ABAC
+ push {r4, r5, r6, lr}
+ sub sp, #0x30
+ add r4, r1, #0
+ add r6, r2, #0
+ add r2, sp, #0x14
+ mov r1, #0
+ str r1, [r2]
+ str r1, [r2, #4]
+ add r5, r0, #0
+ str r1, [r2, #8]
+ str r3, [sp, #0x20]
+ bl FUN_021E4C24
+ mov r1, #0x11
+ str r0, [sp, #0x24]
+ bl FUN_021E4C08
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x40]
+ str r5, [sp, #0x2c]
+ cmp r0, #0
+ bne _0224ABF6
+ add r0, r5, #0
+ bl FUN_02058738
+ mov r1, #2
+ lsl r2, r4, #0x10
+ lsl r1, r1, #0xe
+ add r2, r2, r1
+ str r2, [sp, #0x14]
+ lsl r2, r6, #0x10
+ add r1, r2, r1
+ str r1, [sp, #0x1c]
+ add r1, sp, #0x14
+ bl FUN_02059E9C
+ b _0224AC12
+_0224ABF6:
+ ldr r3, _0224AC30 ; =0x02251BDC
+ add r2, sp, #8
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r1, sp, #0x14
+ str r0, [r2]
+ add r0, r5, #0
+ bl FUN_02058B5C
+ add r0, r5, #0
+ add r1, sp, #8
+ bl FUN_02058BB4
+_0224AC12:
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0205829C
+ add r1, sp, #0x20
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x24]
+ ldr r1, _0224AC34 ; =0x02251BF4
+ ldr r3, [sp, #0x40]
+ add r2, sp, #0x14
+ bl FUN_021E4DC4
+ add sp, #0x30
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224AC30: .word 0x02251BDC
+_0224AC34: .word 0x02251BF4
+
+ thumb_func_start MOD06_0224AC38
+MOD06_0224AC38: ; 0x0224AC38
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ bl FUN_0206475C
+ add r7, r0, #0
+ add r2, r5, #0
+ add r3, r7, #0
+ ldr r4, [r7, #0xc]
+ add r2, #0x24
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r4, #0
+ bl FUN_02058448
+ str r0, [r5, #0xc]
+ add r0, r4, #0
+ bl FUN_02058450
+ str r0, [r5, #0x10]
+ ldr r0, [r7]
+ str r0, [r5, #8]
+ add r0, r6, #0
+ bl FUN_02064754
+ str r0, [r5, #0x18]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [r5, #0x1c]
+ lsr r0, r0, #2
+ str r0, [r5, #0x20]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224AC80
+MOD06_0224AC80: ; 0x0224AC80
+ push {lr}
+ sub sp, #0xc
+ ldr r0, [r1, #0x30]
+ add r1, sp, #0
+ mov r2, #0
+ str r2, [r1]
+ str r2, [r1, #4]
+ str r2, [r1, #8]
+ bl FUN_02058BB4
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start MOD06_0224AC98
+MOD06_0224AC98: ; 0x0224AC98
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ ldr r4, [r5, #0x30]
+ ldr r1, [r5, #0xc]
+ add r6, r0, #0
+ ldr r2, [r5, #0x10]
+ add r0, r4, #0
+ bl FUN_020582A8
+ cmp r0, #0
+ bne _0224ACBA
+ add r0, r6, #0
+ bl FUN_021E4DE4
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+_0224ACBA:
+ mov r0, #0
+ str r0, [r5]
+ add r0, r4, #0
+ bl FUN_020584C4
+ mov r1, #0
+ mvn r1, r1
+ str r0, [r5, #4]
+ cmp r0, r1
+ bne _0224ACD6
+ mov r0, #1
+ add sp, #0x18
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_0224ACD6:
+ ldr r1, [r5, #0x18]
+ cmp r1, #0
+ beq _0224AD40
+ str r0, [r5, #8]
+ ldr r1, [r5, #0x1c]
+ ldr r0, [r5, #0x20]
+ add r2, r1, r0
+ mov r1, #1
+ lsl r1, r1, #0xe
+ str r2, [r5, #0x1c]
+ cmp r2, r1
+ blt _0224ACF8
+ str r1, [r5, #0x1c]
+ ldr r0, [r5, #0x20]
+ neg r0, r0
+ str r0, [r5, #0x20]
+ b _0224AD06
+_0224ACF8:
+ lsr r0, r1, #2
+ cmp r2, r0
+ bgt _0224AD06
+ str r0, [r5, #0x1c]
+ ldr r0, [r5, #0x20]
+ neg r0, r0
+ str r0, [r5, #0x20]
+_0224AD06:
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #7
+ ldr r1, [r5, #0x1c]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ mov r0, #1
+ lsl r0, r0, #0xe
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ add r1, sp, #0xc
+ bl FUN_02058BB4
+ add r0, r4, #0
+ add r1, sp, #0
+ bl FUN_02058B5C
+ mov r0, #1
+ ldr r1, [r5, #0x1c]
+ lsl r0, r0, #0xc
+ sub r0, r1, r0
+ ldr r2, [sp, #4]
+ add r1, sp, #0
+ add r0, r2, r0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ bl FUN_0206476C
+_0224AD40:
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_0224AD44
+MOD06_0224AD44: ; 0x0224AD44
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x3c
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ cmp r0, #1
+ beq _0224ADE6
+ mov r0, #0
+ ldr r1, [r4, #8]
+ mvn r0, r0
+ cmp r1, r0
+ beq _0224ADE6
+ ldr r0, [r4, #0x14]
+ ldr r3, _0224ADEC ; =0x02251BE8
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x24
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _0224ADF0 ; =0x02251C08
+ str r0, [r2]
+ add r3, sp, #0
+ mov r2, #4
+_0224AD74:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0224AD74
+ ldr r0, [r5]
+ str r0, [r3]
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bhi _0224ADD0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224AD92: ; jump table
+ .short _0224AD9A - _0224AD92 - 2 ; case 0
+ .short _0224ADA8 - _0224AD92 - 2 ; case 1
+ .short _0224ADB6 - _0224AD92 - 2 ; case 2
+ .short _0224ADC4 - _0224AD92 - 2 ; case 3
+_0224AD9A:
+ mov r1, #0
+ add r0, sp, #0
+ mov r2, #0xb4
+ add r3, r1, #0
+ bl FUN_0201CB20
+ b _0224ADD0
+_0224ADA8:
+ mov r1, #0
+ add r0, sp, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0201CB20
+ b _0224ADD0
+_0224ADB6:
+ mov r1, #0
+ ldr r2, _0224ADF4 ; =0x0000010E
+ add r0, sp, #0
+ add r3, r1, #0
+ bl FUN_0201CB20
+ b _0224ADD0
+_0224ADC4:
+ mov r1, #0
+ add r0, sp, #0
+ mov r2, #0x5a
+ add r3, r1, #0
+ bl FUN_0201CB20
+_0224ADD0:
+ add r0, r6, #0
+ add r1, sp, #0x30
+ bl FUN_0206477C
+ ldr r0, [r4, #0x2c]
+ add r1, sp, #0x30
+ add r0, r0, #4
+ add r2, sp, #0
+ add r3, sp, #0x24
+ bl FUN_0201B26C
+_0224ADE6:
+ add sp, #0x3c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0224ADEC: .word 0x02251BE8
+_0224ADF0: .word 0x02251C08
+_0224ADF4: .word 0x0000010E
+
+ thumb_func_start MOD06_0224ADF8
+MOD06_0224ADF8: ; 0x0224ADF8
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_02064738
+ mov r1, #1
+ str r4, [r0, #0x18]
+ lsl r1, r1, #0xc
+ str r1, [r0, #0x1c]
+ lsr r1, r1, #2
+ str r1, [r0, #0x20]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224AE10
+MOD06_0224AE10: ; 0x0224AE10
+ push {r4, lr}
+ mov r2, #0
+ mov r1, #0x70
+ add r3, r2, #0
+ add r4, r0, #0
+ bl FUN_021E4BE8
+ str r4, [r0, #0x10]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224AE24
+MOD06_0224AE24: ; 0x0224AE24
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224AE78
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224AE34
+MOD06_0224AE34: ; 0x0224AE34
+ ldr r1, [r0]
+ add r1, r1, #1
+ str r1, [r0]
+ bx lr
+
+ thumb_func_start MOD06_0224AE3C
+MOD06_0224AE3C: ; 0x0224AE3C
+ push {r3, lr}
+ ldr r1, [r0]
+ sub r1, r1, #1
+ str r1, [r0]
+ bpl _0224AE4A
+ bl ErrorHandling
+_0224AE4A:
+ pop {r3, pc}
+
+ thumb_func_start MOD06_0224AE4C
+MOD06_0224AE4C: ; 0x0224AE4C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _0224AE72
+ ldr r0, [r4, #0x10]
+ mov r1, #0x52
+ mov r2, #1
+ bl FUN_021E4C6C
+ str r0, [r4, #0x6c]
+ ldr r0, _0224AE74 ; =MOD06_0224AEC0
+ add r1, r4, #0
+ mov r2, #0x80
+ bl FUN_0200CA60
+ str r0, [r4, #0xc]
+ mov r0, #1
+ str r0, [r4, #4]
+_0224AE72:
+ pop {r4, pc}
+ .align 2, 0
+_0224AE74: .word MOD06_0224AEC0
+
+ thumb_func_start MOD06_0224AE78
+MOD06_0224AE78: ; 0x0224AE78
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0224AE8C
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0xc]
+ str r0, [r4, #8]
+_0224AE8C:
+ ldr r0, [r4, #4]
+ cmp r0, #1
+ bne _0224AE9C
+ mov r0, #0
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x6c]
+ bl FUN_021E4C00
+_0224AE9C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224AEA0
+MOD06_0224AEA0: ; 0x0224AEA0
+ push {r3, lr}
+ ldr r1, [r0]
+ cmp r1, #0
+ bne _0224AEAC
+ bl MOD06_0224AE4C
+_0224AEAC:
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224AEB0
+MOD06_0224AEB0: ; 0x0224AEB0
+ push {r3, lr}
+ ldr r1, [r0]
+ cmp r1, #0
+ bne _0224AEBC
+ bl MOD06_0224AE78
+_0224AEBC:
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224AEC0
+MOD06_0224AEC0: ; 0x0224AEC0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r2, r4, #0
+ add r3, r4, #0
+ ldr r0, [r4, #0x10]
+ add r1, #0x14
+ add r2, #0x68
+ add r3, #0x6c
+ bl FUN_021E5198
+ mov r0, #0
+ str r0, [r4, #0xc]
+ mov r0, #1
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224AEE8
+MOD06_0224AEE8: ; 0x0224AEE8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r6, r1, #0
+ add r7, r2, #0
+ add r2, sp, #0xc
+ mov r1, #0
+ str r1, [r2]
+ str r1, [r2, #4]
+ str r3, [sp, #8]
+ add r5, r0, #0
+ str r1, [r2, #8]
+ bl FUN_021E4C24
+ add r4, r0, #0
+ ldr r0, [sp, #8]
+ str r4, [sp, #0x1c]
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ bl FUN_02058738
+ str r0, [sp, #0x20]
+ add r0, r4, #0
+ mov r1, #0x12
+ bl FUN_021E4C08
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x40]
+ str r5, [sp, #0x28]
+ cmp r0, #0
+ bne _0224AF3E
+ mov r0, #2
+ lsl r1, r6, #0x10
+ lsl r0, r0, #0xe
+ add r1, r1, r0
+ str r1, [sp, #0xc]
+ lsl r1, r7, #0x10
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ add r1, sp, #0xc
+ bl FUN_02059E9C
+ b _0224AF46
+_0224AF3E:
+ add r0, r5, #0
+ add r1, sp, #0xc
+ bl FUN_02058B5C
+_0224AF46:
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0205829C
+ add r1, sp, #0x18
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r1, _0224AF64 ; =0x02251C38
+ ldr r3, [sp, #0x40]
+ add r0, r4, #0
+ add r2, sp, #0xc
+ bl FUN_021E4DC4
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224AF64: .word 0x02251C38
+
+ thumb_func_start MOD06_0224AF68
+MOD06_0224AF68: ; 0x0224AF68
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_02064738
+ str r4, [r0, #0xc]
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224AF74
+MOD06_0224AF74: ; 0x0224AF74
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r2, r0, #0
+ add r6, r2, #0
+ add r3, r4, #0
+ ldmia r6!, {r0, r1}
+ add r3, #0x10
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ ldr r0, [r2]
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl FUN_02064754
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x1c]
+ bl MOD06_0224AEA0
+ ldr r0, [r4, #0x1c]
+ bl MOD06_0224AE34
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224AFB0
+MOD06_0224AFB0: ; 0x0224AFB0
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0x1c]
+ bl MOD06_0224AE3C
+ ldr r0, [r4, #0x1c]
+ bl MOD06_0224AEB0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224AFC4
+MOD06_0224AFC4: ; 0x0224AFC4
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r0, [r1, #0xc]
+ ldr r4, [r1, #0x20]
+ cmp r0, #0
+ beq _0224AFF2
+ add r1, sp, #0xc
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r4, #0
+ bl FUN_02058BB4
+ add r0, r4, #0
+ add r1, sp, #0
+ bl FUN_02058B5C
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+_0224AFF2:
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224AFF8
+MOD06_0224AFF8: ; 0x0224AFF8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x3c
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ cmp r0, #1
+ beq _0224B098
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _0224B098
+ ldr r0, [r4, #8]
+ ldr r3, _0224B09C ; =0x02251C2C
+ add r0, r0, #1
+ str r0, [r4, #8]
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x24
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _0224B0A0 ; =0x02251C4C
+ str r0, [r2]
+ add r3, sp, #0
+ mov r2, #4
+_0224B026:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0224B026
+ ldr r0, [r5]
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ cmp r0, #3
+ bhi _0224B082
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224B044: ; jump table
+ .short _0224B04C - _0224B044 - 2 ; case 0
+ .short _0224B05A - _0224B044 - 2 ; case 1
+ .short _0224B068 - _0224B044 - 2 ; case 2
+ .short _0224B076 - _0224B044 - 2 ; case 3
+_0224B04C:
+ mov r1, #0
+ add r0, sp, #0
+ mov r2, #0xb4
+ add r3, r1, #0
+ bl FUN_0201CB20
+ b _0224B082
+_0224B05A:
+ mov r1, #0
+ add r0, sp, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0201CB20
+ b _0224B082
+_0224B068:
+ mov r1, #0
+ ldr r2, _0224B0A4 ; =0x0000010E
+ add r0, sp, #0
+ add r3, r1, #0
+ bl FUN_0201CB20
+ b _0224B082
+_0224B076:
+ mov r1, #0
+ add r0, sp, #0
+ mov r2, #0x5a
+ add r3, r1, #0
+ bl FUN_0201CB20
+_0224B082:
+ add r0, r6, #0
+ add r1, sp, #0x30
+ bl FUN_0206477C
+ ldr r0, [r4, #0x1c]
+ add r1, sp, #0x30
+ add r0, #0x14
+ add r2, sp, #0
+ add r3, sp, #0x24
+ bl FUN_0201B26C
+_0224B098:
+ add sp, #0x3c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0224B09C: .word 0x02251C2C
+_0224B0A0: .word 0x02251C4C
+_0224B0A4: .word 0x0000010E
+
+ thumb_func_start MOD06_0224B0A8
+MOD06_0224B0A8: ; 0x0224B0A8
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r1, #0x38
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_0224B0D4
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224B0C4
+MOD06_0224B0C4: ; 0x0224B0C4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224B10C
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224B0D4
+MOD06_0224B0D4: ; 0x0224B0D4
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x28
+ bl FUN_021E5294
+ ldr r0, [r4]
+ add r1, r4, #4
+ mov r2, #0xf
+ mov r3, #0
+ bl FUN_021E5224
+ mov r0, #0x6f
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r2, r4, #4
+ add r4, #0x28
+ add r1, #0x14
+ add r3, r4, #0
+ bl FUN_021E5260
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224B10C
+MOD06_0224B10C: ; 0x0224B10C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r4, #4
+ bl FUN_021F52C8
+ add r0, r4, #0
+ add r4, #0x28
+ add r0, #0x14
+ add r1, r4, #0
+ bl FUN_021F5358
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224B124
+MOD06_0224B124: ; 0x0224B124
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ bl FUN_021E4C24
+ mov r1, #0x13
+ str r0, [sp, #8]
+ bl FUN_021E4C08
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, sp, #0x10
+ bl FUN_02059E60
+ mov r0, #1
+ ldr r2, [sp, #0x18]
+ lsl r1, r4, #3
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ add r0, r2, r0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ bl FUN_02058B1C
+ lsl r1, r0, #0xf
+ mov r0, #2
+ lsl r0, r0, #0xe
+ sub r0, r1, r0
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0205829C
+ add r1, sp, #8
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ ldr r1, _0224B184 ; =0x02251C70
+ add r2, sp, #0x10
+ mov r3, #0
+ bl FUN_021E4DC4
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224B184: .word 0x02251C70
+
+ thumb_func_start MOD06_0224B188
+MOD06_0224B188: ; 0x0224B188
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ add r5, r1, #0
+ bl FUN_0206475C
+ ldr r1, [r0]
+ ldr r0, [r0, #4]
+ mov r2, #1
+ str r1, [r5, #4]
+ str r0, [r5, #8]
+ ldr r0, [r0]
+ mov r1, #0x90
+ mov r3, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r4, [r5]
+ ldr r0, [r5, #4]
+ add r1, r4, #4
+ bl FUN_021E5294
+ ldr r2, [r5, #8]
+ add r0, r4, #4
+ ldr r1, [r2, #0x18]
+ ldr r2, [r2, #0xc]
+ bl FUN_020BB8D0
+ str r0, [r4]
+ ldr r3, [r5, #8]
+ ldr r1, [r3, #0x18]
+ ldr r2, [r3, #0xc]
+ ldr r3, [r3, #0x10]
+ bl FUN_020B8110
+ ldr r1, [r5, #8]
+ add r0, r4, #0
+ add r0, #0x18
+ add r1, r1, #4
+ bl FUN_021F5400
+ add r0, r4, #0
+ ldr r1, [r4]
+ add r0, #0x18
+ bl FUN_020B7EFC
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ add r4, #0x18
+ ldr r1, [sp]
+ ldr r2, [sp, #4]
+ ldr r3, [sp, #8]
+ add r0, r4, #0
+ bl FUN_021F54D0
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD06_0224B200
+MOD06_0224B200: ; 0x0224B200
+ push {r4, lr}
+ ldr r4, [r1]
+ ldr r1, [r4]
+ add r0, r4, #4
+ bl thunk_FUN_020ae84c
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224B214
+MOD06_0224B214: ; 0x0224B214
+ push {r4, lr}
+ ldr r1, [r1]
+ ldr r2, [r1]
+ ldr r3, [r1, #0x14]
+ ldr r2, [r2, #8]
+ ldrh r2, [r2, #4]
+ lsl r4, r2, #0xc
+ mov r2, #1
+ lsl r2, r2, #0xc
+ add r2, r3, r2
+ str r2, [r1, #0x14]
+ cmp r2, r4
+ ble _0224B234
+ bl FUN_021E4DE4
+ pop {r4, pc}
+_0224B234:
+ ldr r0, [r1]
+ str r2, [r0]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224B23C
+MOD06_0224B23C: ; 0x0224B23C
+ ldr r0, [r1]
+ ldr r3, _0224B244 ; =0x021F5431
+ add r0, #0x18
+ bx r3
+ .align 2, 0
+_0224B244: .word 0x021F5431
+
+ thumb_func_start MOD06_0224B248
+MOD06_0224B248: ; 0x0224B248
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r1, #0x38
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_0224B274
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224B264
+MOD06_0224B264: ; 0x0224B264
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224B2AC
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224B274
+MOD06_0224B274: ; 0x0224B274
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x28
+ bl FUN_021E5294
+ ldr r0, [r4]
+ add r1, r4, #4
+ mov r2, #0x10
+ mov r3, #0
+ bl FUN_021E5224
+ mov r0, #0x70
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r2, r4, #4
+ add r4, #0x28
+ add r1, #0x14
+ add r3, r4, #0
+ bl FUN_021E5260
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224B2AC
+MOD06_0224B2AC: ; 0x0224B2AC
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r4, #4
+ bl FUN_021F52C8
+ add r0, r4, #0
+ add r4, #0x28
+ add r0, #0x14
+ add r1, r4, #0
+ bl FUN_021F5358
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224B2C4
+MOD06_0224B2C4: ; 0x0224B2C4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ bl FUN_021E4C24
+ mov r1, #0x14
+ str r0, [sp, #8]
+ bl FUN_021E4C08
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, sp, #0x10
+ bl FUN_02059E60
+ ldr r1, [sp, #0x18]
+ lsl r0, r4, #3
+ add r0, r1, r0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ bl FUN_02058B1C
+ lsl r1, r0, #0xf
+ mov r0, #2
+ lsl r0, r0, #0xe
+ sub r0, r1, r0
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0205829C
+ add r1, sp, #8
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ ldr r1, _0224B320 ; =0x02251C84
+ add r2, sp, #0x10
+ mov r3, #0
+ bl FUN_021E4DC4
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224B320: .word 0x02251C84
+
+ thumb_func_start MOD06_0224B324
+MOD06_0224B324: ; 0x0224B324
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ add r5, r1, #0
+ bl FUN_0206475C
+ ldr r1, [r0]
+ ldr r0, [r0, #4]
+ mov r2, #1
+ str r1, [r5, #4]
+ str r0, [r5, #8]
+ ldr r0, [r0]
+ mov r1, #0x90
+ mov r3, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r4, [r5]
+ ldr r0, [r5, #4]
+ add r1, r4, #4
+ bl FUN_021E5294
+ ldr r2, [r5, #8]
+ add r0, r4, #4
+ ldr r1, [r2, #0x18]
+ ldr r2, [r2, #0xc]
+ bl FUN_020BB8D0
+ str r0, [r4]
+ ldr r3, [r5, #8]
+ ldr r1, [r3, #0x18]
+ ldr r2, [r3, #0xc]
+ ldr r3, [r3, #0x10]
+ bl FUN_020B8110
+ ldr r1, [r5, #8]
+ add r0, r4, #0
+ add r0, #0x18
+ add r1, r1, #4
+ bl FUN_021F5400
+ add r0, r4, #0
+ ldr r1, [r4]
+ add r0, #0x18
+ bl FUN_020B7EFC
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ add r4, #0x18
+ ldr r1, [sp]
+ ldr r2, [sp, #4]
+ ldr r3, [sp, #8]
+ add r0, r4, #0
+ bl FUN_021F54D0
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD06_0224B39C
+MOD06_0224B39C: ; 0x0224B39C
+ push {r4, lr}
+ ldr r4, [r1]
+ ldr r1, [r4]
+ add r0, r4, #4
+ bl thunk_FUN_020ae84c
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224B3B0
+MOD06_0224B3B0: ; 0x0224B3B0
+ push {r4, lr}
+ ldr r1, [r1]
+ ldr r2, [r1]
+ ldr r3, [r1, #0x14]
+ ldr r2, [r2, #8]
+ ldrh r2, [r2, #4]
+ lsl r4, r2, #0xc
+ mov r2, #1
+ lsl r2, r2, #0xc
+ add r2, r3, r2
+ str r2, [r1, #0x14]
+ cmp r2, r4
+ ble _0224B3D0
+ bl FUN_021E4DE4
+ pop {r4, pc}
+_0224B3D0:
+ ldr r0, [r1]
+ str r2, [r0]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224B3D8
+MOD06_0224B3D8: ; 0x0224B3D8
+ ldr r0, [r1]
+ ldr r3, _0224B3E0 ; =0x021F5431
+ add r0, #0x18
+ bx r3
+ .align 2, 0
+_0224B3E0: .word 0x021F5431
+
+ thumb_func_start MOD06_0224B3E4
+MOD06_0224B3E4: ; 0x0224B3E4
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r1, #4
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_0224B410
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224B400
+MOD06_0224B400: ; 0x0224B400
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224B4F0
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224B410
+MOD06_0224B410: ; 0x0224B410
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x53
+ bl FUN_021E5078
+ ldr r0, [r4]
+ mov r1, #5
+ mov r2, #0x54
+ bl FUN_021E5078
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x75
+ bl FUN_021E50AC
+ ldr r0, [r4]
+ mov r1, #3
+ mov r2, #0x76
+ bl FUN_021E50AC
+ ldr r0, [r4]
+ mov r1, #4
+ mov r2, #0x77
+ bl FUN_021E50AC
+ ldr r0, [r4]
+ mov r1, #5
+ mov r2, #0x78
+ bl FUN_021E50AC
+ mov r1, #0
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #1
+ bl FUN_021E50D4
+ mov r2, #1
+ ldr r0, [r4]
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_021E50D4
+ ldr r0, [r4]
+ mov r1, #5
+ mov r2, #2
+ mov r3, #1
+ bl FUN_021E50D4
+ ldr r0, [r4]
+ mov r1, #6
+ mov r2, #3
+ mov r3, #1
+ bl FUN_021E50D4
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, _0224B4E0 ; =0x02251CEC
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_021E4EFC
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0224B4E4 ; =0x02251D04
+ mov r1, #5
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #3
+ bl FUN_021E4EFC
+ mov r2, #5
+ str r2, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0224B4E8 ; =0x02251CD4
+ mov r1, #6
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r3, #4
+ bl FUN_021E4EFC
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0224B4EC ; =0x02251D1C
+ mov r2, #5
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #7
+ add r3, r2, #0
+ bl FUN_021E4EFC
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_0224B4E0: .word 0x02251CEC
+_0224B4E4: .word 0x02251D04
+_0224B4E8: .word 0x02251CD4
+_0224B4EC: .word 0x02251D1C
+
+ thumb_func_start MOD06_0224B4F0
+MOD06_0224B4F0: ; 0x0224B4F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_021E50A0
+ ldr r0, [r4]
+ mov r1, #5
+ bl FUN_021E50A0
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_021E50C8
+ ldr r0, [r4]
+ mov r1, #3
+ bl FUN_021E50C8
+ ldr r0, [r4]
+ mov r1, #4
+ bl FUN_021E50C8
+ ldr r0, [r4]
+ mov r1, #5
+ bl FUN_021E50C8
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_021E5114
+ ldr r0, [r4]
+ mov r1, #4
+ bl FUN_021E5114
+ ldr r0, [r4]
+ mov r1, #5
+ bl FUN_021E5114
+ ldr r0, [r4]
+ mov r1, #6
+ bl FUN_021E5114
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_021E506C
+ ldr r0, [r4]
+ mov r1, #5
+ bl FUN_021E506C
+ ldr r0, [r4]
+ mov r1, #6
+ bl FUN_021E506C
+ ldr r0, [r4]
+ mov r1, #7
+ bl FUN_021E506C
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224B568
+MOD06_0224B568: ; 0x0224B568
+ push {r4, r5, r6, lr}
+ sub sp, #0x30
+ add r5, r0, #0
+ add r6, r1, #0
+ bl FUN_021E4C24
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_02058B2C
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl FUN_02058B3C
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ bl FUN_02058B4C
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ str r4, [sp, #0x18]
+ bl FUN_021E4C20
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ mov r1, #0x15
+ bl FUN_021E4C08
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ add r1, sp, #0x24
+ str r5, [sp, #0x20]
+ bl FUN_02058B5C
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0205829C
+ add r1, sp, #8
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r1, _0224B5CC ; =0x02251C98
+ add r0, r4, #0
+ add r2, sp, #0x24
+ add r3, r6, #0
+ bl FUN_021E4DC4
+ add sp, #0x30
+ pop {r4, r5, r6, pc}
+ nop
+_0224B5CC: .word 0x02251C98
+
+ thumb_func_start MOD06_0224B5D0
+MOD06_0224B5D0: ; 0x0224B5D0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r3, r0, #0
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x18
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r4, #0x30]
+ bl FUN_0205845C
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x30]
+ bl FUN_02058448
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x30]
+ bl FUN_02058450
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x18]
+ lsl r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x30]
+ bl FUN_02058B80
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x24]
+ add r1, sp, #0
+ bl FUN_02059E9C
+ str r0, [r4, #0x14]
+ mov r0, #2
+ ldr r1, [sp]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp]
+ mov r0, #0x12
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ add r2, sp, #0
+ bl FUN_021E4EE4
+ str r0, [r4, #0x34]
+ add r0, r5, #0
+ bl FUN_02064754
+ cmp r0, #0
+ bne _0224B65E
+ mov r0, #1
+ str r0, [r4]
+_0224B65E:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD06_0224B664
+MOD06_0224B664: ; 0x0224B664
+ ldr r3, _0224B66C ; =0x0201F745
+ ldr r0, [r1, #0x34]
+ bx r3
+ nop
+_0224B66C: .word 0x0201F745
+
+ thumb_func_start MOD06_0224B670
+MOD06_0224B670: ; 0x0224B670
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ ldr r6, [r4, #0x30]
+ ldr r1, [r4, #4]
+ add r5, r0, #0
+ ldr r2, [r4, #8]
+ ldr r3, [r4, #0xc]
+ add r0, r6, #0
+ bl FUN_020582F8
+ cmp r0, #0
+ bne _0224B694
+ add r0, r5, #0
+ bl FUN_021E4DE4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0224B694:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _0224B6CC
+ add r0, r5, #0
+ add r1, sp, #0xc
+ bl FUN_0206477C
+ ldr r0, [r4, #0x18]
+ add r1, sp, #0
+ lsl r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x24]
+ bl FUN_02059E9C
+ str r0, [r4, #0x14]
+ cmp r0, #1
+ bne _0224B6CC
+ ldr r0, [sp, #4]
+ add r1, sp, #0xc
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ bl FUN_0206476C
+_0224B6CC:
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0224B6DE
+ cmp r0, #1
+ beq _0224B702
+ cmp r0, #2
+ beq _0224B710
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0224B6DE:
+ mov r1, #1
+ ldr r0, [r4, #0x34]
+ lsl r1, r1, #0xc
+ bl FUN_0201F854
+ ldr r0, [r4, #0x34]
+ bl FUN_0201F8C0
+ asr r1, r0, #0xb
+ lsr r1, r1, #0x14
+ add r1, r0, r1
+ asr r0, r1, #0xc
+ cmp r0, #0xc
+ blt _0224B74A
+ mov r0, #1
+ add sp, #0x18
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224B702:
+ mov r1, #3
+ ldr r0, [r4, #0x34]
+ lsl r1, r1, #0xe
+ bl FUN_0201F86C
+ mov r0, #2
+ str r0, [r4]
+_0224B710:
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #8]
+ ldr r3, [r4, #0xc]
+ add r0, r6, #0
+ bl FUN_020582F8
+ cmp r0, #0
+ bne _0224B72A
+ add r0, r5, #0
+ bl FUN_021E4DE4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0224B72A:
+ add r0, r6, #0
+ bl FUN_02058B2C
+ add r7, r0, #0
+ add r0, r6, #0
+ bl FUN_02058B4C
+ ldr r1, [r4, #0x18]
+ cmp r1, r7
+ bne _0224B744
+ ldr r1, [r4, #0x20]
+ cmp r1, r0
+ beq _0224B74A
+_0224B744:
+ add r0, r5, #0
+ bl FUN_021E4DE4
+_0224B74A:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224B750
+MOD06_0224B750: ; 0x0224B750
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x30]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #8]
+ ldr r3, [r4, #0xc]
+ bl FUN_020582F8
+ cmp r0, #0
+ bne _0224B772
+ add r0, r5, #0
+ bl FUN_021E4DE4
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0224B772:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x34]
+ add r1, sp, #0
+ bl FUN_0201F7C8
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224B788
+MOD06_0224B788: ; 0x0224B788
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r3, r0, #0
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ add r2, #8
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r1, sp, #0
+ str r0, [r2]
+ add r0, r5, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ add r2, sp, #0
+ bl FUN_021E4EE4
+ str r0, [r4, #0x1c]
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD06_0224B7C0
+MOD06_0224B7C0: ; 0x0224B7C0
+ ldr r3, _0224B7C8 ; =0x0201F745
+ ldr r0, [r1, #0x1c]
+ bx r3
+ nop
+_0224B7C8: .word 0x0201F745
+
+ thumb_func_start MOD06_0224B7CC
+MOD06_0224B7CC: ; 0x0224B7CC
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0224B7DA
+ cmp r0, #1
+ pop {r4, pc}
+_0224B7DA:
+ mov r1, #1
+ ldr r0, [r4, #0x1c]
+ lsl r1, r1, #0xc
+ bl FUN_0201F854
+ ldr r0, [r4, #0x1c]
+ bl FUN_0201F8C0
+ asr r1, r0, #0xb
+ lsr r1, r1, #0x14
+ add r1, r0, r1
+ asr r0, r1, #0xc
+ cmp r0, #0xc
+ blt _0224B7FC
+ mov r0, #1
+ str r0, [r4, #4]
+ str r0, [r4]
+_0224B7FC:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224B800
+MOD06_0224B800: ; 0x0224B800
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x1c]
+ add r1, sp, #0
+ bl FUN_0201F7C8
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD06_0224B818
+MOD06_0224B818: ; 0x0224B818
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ ldr r6, [r0, #0x3c]
+ add r5, r1, #0
+ add r4, r2, #0
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ mov r1, #0x15
+ add r7, r3, #0
+ str r5, [sp, #8]
+ str r4, [sp, #0xc]
+ str r6, [sp, #0x14]
+ bl FUN_021E4C08
+ str r0, [sp, #0x18]
+ mov r0, #2
+ lsl r1, r5, #0x10
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x1c]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ mov r0, #9
+ lsl r1, r4, #0x10
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #0x24]
+ add r0, sp, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r1, _0224B868 ; =0x02251CC0
+ add r0, r6, #0
+ add r2, sp, #0x1c
+ add r3, r7, #0
+ bl FUN_021E4DC4
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224B868: .word 0x02251CC0
+
+ thumb_func_start MOD06_0224B86C
+MOD06_0224B86C: ; 0x0224B86C
+ push {r3, lr}
+ bl FUN_02064738
+ ldr r0, [r0, #4]
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224B878
+MOD06_0224B878: ; 0x0224B878
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r3, r0, #0
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x10
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r5, #0
+ bl FUN_02064754
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x10]
+ lsl r1, r0, #0x10
+ mov r0, #2
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp]
+ ldr r0, [r4, #0x14]
+ lsl r1, r0, #0x10
+ mov r0, #9
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x18]
+ add r1, sp, #0
+ bl FUN_02059E9C
+ mov r0, #1
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0224B8E2
+ cmp r0, #1
+ beq _0224B8E6
+ cmp r0, #2
+ b _0224B8EA
+_0224B8E2:
+ mov r1, #5
+ b _0224B8EC
+_0224B8E6:
+ mov r1, #6
+ b _0224B8EC
+_0224B8EA:
+ mov r1, #7
+_0224B8EC:
+ ldr r0, [r4, #0x1c]
+ add r2, sp, #0
+ bl FUN_021E4EE4
+ str r0, [r4, #0x24]
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD06_0224B8FC
+MOD06_0224B8FC: ; 0x0224B8FC
+ ldr r3, _0224B904 ; =0x0201F745
+ ldr r0, [r1, #0x24]
+ bx r3
+ nop
+_0224B904: .word 0x0201F745
+
+ thumb_func_start MOD06_0224B908
+MOD06_0224B908: ; 0x0224B908
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0224B916
+ cmp r0, #1
+ pop {r4, pc}
+_0224B916:
+ mov r1, #1
+ ldr r0, [r4, #0x24]
+ lsl r1, r1, #0xc
+ bl FUN_0201F854
+ cmp r0, #1
+ bne _0224B92E
+ mov r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_0224B92E:
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224B930
+MOD06_0224B930: ; 0x0224B930
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x24]
+ add r1, sp, #0
+ bl FUN_0201F7C8
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD06_0224B948
+MOD06_0224B948: ; 0x0224B948
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r1, #4
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_0224B974
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224B964
+MOD06_0224B964: ; 0x0224B964
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224B9B8
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224B974
+MOD06_0224B974: ; 0x0224B974
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #3
+ mov r2, #0x56
+ bl FUN_021E5078
+ ldr r0, [r4]
+ mov r1, #2
+ mov r2, #0x79
+ bl FUN_021E50AC
+ ldr r0, [r4]
+ mov r1, #2
+ mov r2, #5
+ mov r3, #1
+ bl FUN_021E50D4
+ mov r3, #2
+ mov r1, #3
+ str r3, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0224B9B4 ; =0x02251D48
+ add r2, r1, #0
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ bl FUN_021E4EFC
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_0224B9B4: .word 0x02251D48
+
+ thumb_func_start MOD06_0224B9B8
+MOD06_0224B9B8: ; 0x0224B9B8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #3
+ bl FUN_021E50A0
+ ldr r0, [r4]
+ mov r1, #2
+ bl FUN_021E50C8
+ ldr r0, [r4]
+ mov r1, #2
+ bl FUN_021E5114
+ ldr r0, [r4]
+ mov r1, #3
+ bl FUN_021E506C
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224B9E0
+MOD06_0224B9E0: ; 0x0224B9E0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r6, r1, #0
+ bl FUN_021E4C24
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_02058738
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ mov r1, #0x17
+ str r4, [sp, #0x18]
+ bl FUN_021E4C08
+ str r0, [sp, #0x1c]
+ add r1, sp, #8
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r5, #0
+ mov r1, #2
+ str r5, [sp, #0x20]
+ bl FUN_0205829C
+ add r1, sp, #0x14
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r1, _0224BA2C ; =0x02251D34
+ add r0, r4, #0
+ add r2, sp, #8
+ add r3, r6, #0
+ bl FUN_021E4DC4
+ add sp, #0x24
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0224BA2C: .word 0x02251D34
+
+ thumb_func_start MOD06_0224BA30
+MOD06_0224BA30: ; 0x0224BA30
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, sp, #0
+ mov r1, #0
+ str r1, [r2]
+ str r1, [r2, #4]
+ add r5, r0, #0
+ str r1, [r2, #8]
+ bl FUN_0206475C
+ add r2, r4, #0
+ add r3, r0, #0
+ add r2, #0x14
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4, #0x20]
+ bl FUN_0205845C
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x20]
+ bl FUN_02058448
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x20]
+ bl FUN_02058450
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ ldr r0, [r4, #0x18]
+ mov r1, #3
+ add r2, sp, #0
+ bl FUN_021E4EE4
+ str r0, [r4, #0x24]
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224BA88
+MOD06_0224BA88: ; 0x0224BA88
+ ldr r3, _0224BA90 ; =0x0201F745
+ ldr r0, [r1, #0x24]
+ bx r3
+ nop
+_0224BA90: .word 0x0201F745
+
+ thumb_func_start MOD06_0224BA94
+MOD06_0224BA94: ; 0x0224BA94
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r7, [r4, #0x20]
+ ldr r1, [r4, #4]
+ add r5, r0, #0
+ ldr r2, [r4, #8]
+ ldr r3, [r4, #0xc]
+ add r0, r7, #0
+ bl FUN_020582F8
+ cmp r0, #0
+ bne _0224BAB4
+ add r0, r5, #0
+ bl FUN_021E4DE4
+ pop {r3, r4, r5, r6, r7, pc}
+_0224BAB4:
+ add r0, r5, #0
+ bl FUN_02064754
+ add r6, r0, #0
+ cmp r6, #1
+ bne _0224BAD2
+ add r0, r7, #0
+ bl FUN_02058A00
+ cmp r0, #0
+ bne _0224BAD2
+ add r0, r5, #0
+ bl FUN_021E4DE4
+ pop {r3, r4, r5, r6, r7, pc}
+_0224BAD2:
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _0224BB08
+ mov r1, #1
+ ldr r0, [r4, #0x24]
+ lsl r1, r1, #0xc
+ bl FUN_0201F854
+ ldr r0, [r4, #0x24]
+ bl FUN_0201F8C0
+ asr r1, r0, #0xb
+ lsr r1, r1, #0x14
+ add r1, r0, r1
+ asr r0, r1, #0xc
+ cmp r0, #0xc
+ blt _0224BB08
+ cmp r6, #0
+ bne _0224BB00
+ add r0, r5, #0
+ bl FUN_021E4DE4
+ pop {r3, r4, r5, r6, r7, pc}
+_0224BB00:
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_0201F86C
+_0224BB08:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224BB0C
+MOD06_0224BB0C: ; 0x0224BB0C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldr r6, [r4, #0x20]
+ ldr r1, [r4, #4]
+ add r5, r0, #0
+ ldr r2, [r4, #8]
+ ldr r3, [r4, #0xc]
+ add r0, r6, #0
+ bl FUN_020582F8
+ cmp r0, #0
+ bne _0224BB30
+ add r0, r5, #0
+ bl FUN_021E4DE4
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_0224BB30:
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_02058B5C
+ mov r0, #2
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x24]
+ add r1, sp, #0
+ bl FUN_0201F7C8
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224BB50
+MOD06_0224BB50: ; 0x0224BB50
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r1, #4
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_0224BB7C
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224BB6C
+MOD06_0224BB6C: ; 0x0224BB6C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224BBC4
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224BB7C
+MOD06_0224BB7C: ; 0x0224BB7C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #6
+ mov r2, #0x58
+ bl FUN_021E5078
+ ldr r0, [r4]
+ mov r1, #6
+ mov r2, #0x7a
+ bl FUN_021E50AC
+ mov r1, #7
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #1
+ bl FUN_021E50D4
+ mov r0, #7
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0224BBC0 ; =0x02251D74
+ mov r2, #6
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_021E4EFC
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0224BBC0: .word 0x02251D74
+
+ thumb_func_start MOD06_0224BBC4
+MOD06_0224BBC4: ; 0x0224BBC4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #6
+ bl FUN_021E50A0
+ ldr r0, [r4]
+ mov r1, #6
+ bl FUN_021E50C8
+ ldr r0, [r4]
+ mov r1, #7
+ bl FUN_021E5114
+ ldr r0, [r4]
+ mov r1, #8
+ bl FUN_021E506C
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224BBEC
+MOD06_0224BBEC: ; 0x0224BBEC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ bl FUN_021E4C24
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_02058738
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ mov r1, #0x19
+ str r4, [sp, #0x18]
+ bl FUN_021E4C08
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ add r1, sp, #8
+ str r5, [sp, #0x20]
+ bl FUN_02058B5C
+ add r0, r5, #0
+ bl FUN_02058B2C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_02058B4C
+ add r1, r0, #0
+ add r0, r6, #0
+ add r2, sp, #8
+ bl FUN_02059E60
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0205829C
+ add r1, sp, #0x14
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r1, _0224BC4C ; =0x02251D60
+ add r0, r4, #0
+ add r2, sp, #8
+ mov r3, #0
+ bl FUN_021E4DC4
+ add sp, #0x24
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0224BC4C: .word 0x02251D60
+
+ thumb_func_start MOD06_0224BC50
+MOD06_0224BC50: ; 0x0224BC50
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ bl FUN_0206475C
+ add r2, r4, #0
+ add r3, r0, #0
+ add r2, #0x10
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4, #0x1c]
+ bl FUN_02058448
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x1c]
+ bl FUN_02058450
+ str r0, [r4, #8]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x14]
+ mov r1, #8
+ add r2, sp, #0
+ bl FUN_021E4EE4
+ str r0, [r4, #0x20]
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD06_0224BC94
+MOD06_0224BC94: ; 0x0224BC94
+ ldr r3, _0224BC9C ; =0x0201F745
+ ldr r0, [r1, #0x20]
+ bx r3
+ nop
+_0224BC9C: .word 0x0201F745
+
+ thumb_func_start MOD06_0224BCA0
+MOD06_0224BCA0: ; 0x0224BCA0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _0224BCCE
+ mov r1, #1
+ ldr r0, [r4, #0x20]
+ lsl r1, r1, #0xc
+ bl FUN_0201F854
+ ldr r0, [r4, #0x20]
+ bl FUN_0201F8C0
+ asr r1, r0, #0xb
+ lsr r1, r1, #0x14
+ add r1, r0, r1
+ asr r0, r1, #0xc
+ cmp r0, #9
+ blt _0224BCCE
+ add r0, r5, #0
+ bl FUN_021E4DE4
+_0224BCCE:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224BCD0
+MOD06_0224BCD0: ; 0x0224BCD0
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ mov r0, #2
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x20]
+ add r1, sp, #0
+ bl FUN_0201F7C8
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224BCF4
+MOD06_0224BCF4: ; 0x0224BCF4
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r1, #4
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_0224BD20
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224BD10
+MOD06_0224BD10: ; 0x0224BD10
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224BD68
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224BD20
+MOD06_0224BD20: ; 0x0224BD20
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #7
+ mov r2, #0x59
+ bl FUN_021E5078
+ ldr r0, [r4]
+ mov r1, #7
+ mov r2, #0x7b
+ bl FUN_021E50AC
+ mov r1, #8
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #1
+ bl FUN_021E50D4
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0224BD64 ; =0x02251DA0
+ mov r2, #7
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #9
+ add r3, r2, #0
+ bl FUN_021E4EFC
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0224BD64: .word 0x02251DA0
+
+ thumb_func_start MOD06_0224BD68
+MOD06_0224BD68: ; 0x0224BD68
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #7
+ bl FUN_021E50A0
+ ldr r0, [r4]
+ mov r1, #7
+ bl FUN_021E50C8
+ ldr r0, [r4]
+ mov r1, #8
+ bl FUN_021E5114
+ ldr r0, [r4]
+ mov r1, #9
+ bl FUN_021E506C
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224BD90
+MOD06_0224BD90: ; 0x0224BD90
+ push {r4, r5, r6, lr}
+ sub sp, #0x30
+ add r5, r0, #0
+ add r6, r1, #0
+ bl FUN_021E4C24
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_02058B2C
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl FUN_02058B3C
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ bl FUN_02058B4C
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ str r4, [sp, #0x18]
+ bl FUN_021E4C20
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ mov r1, #0x1a
+ bl FUN_021E4C08
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ add r1, sp, #0x24
+ str r5, [sp, #0x20]
+ bl FUN_02058B5C
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0205829C
+ add r1, sp, #8
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r1, _0224BDF4 ; =0x02251D8C
+ add r0, r4, #0
+ add r2, sp, #0x24
+ add r3, r6, #0
+ bl FUN_021E4DC4
+ add sp, #0x30
+ pop {r4, r5, r6, pc}
+ nop
+_0224BDF4: .word 0x02251D8C
+
+ thumb_func_start MOD06_0224BDF8
+MOD06_0224BDF8: ; 0x0224BDF8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r3, r0, #0
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x18
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r4, #0x30]
+ bl FUN_0205845C
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x30]
+ bl FUN_02058448
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x30]
+ bl FUN_02058450
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x18]
+ lsl r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x30]
+ bl FUN_02058B80
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x24]
+ add r1, sp, #0
+ bl FUN_02059E9C
+ str r0, [r4, #0x14]
+ mov r0, #2
+ ldr r1, [sp]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp]
+ mov r0, #0x12
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ ldr r0, [r4, #0x28]
+ mov r1, #9
+ add r2, sp, #0
+ bl FUN_021E4EE4
+ str r0, [r4, #0x34]
+ add r0, r5, #0
+ bl FUN_02064754
+ cmp r0, #0
+ bne _0224BE86
+ mov r0, #1
+ str r0, [r4]
+_0224BE86:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD06_0224BE8C
+MOD06_0224BE8C: ; 0x0224BE8C
+ ldr r3, _0224BE94 ; =0x0201F745
+ ldr r0, [r1, #0x34]
+ bx r3
+ nop
+_0224BE94: .word 0x0201F745
+
+ thumb_func_start MOD06_0224BE98
+MOD06_0224BE98: ; 0x0224BE98
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ ldr r6, [r4, #0x30]
+ ldr r1, [r4, #4]
+ add r5, r0, #0
+ ldr r2, [r4, #8]
+ ldr r3, [r4, #0xc]
+ add r0, r6, #0
+ bl FUN_020582F8
+ cmp r0, #0
+ bne _0224BEBC
+ add r0, r5, #0
+ bl FUN_021E4DE4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0224BEBC:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _0224BEF4
+ add r0, r5, #0
+ add r1, sp, #0xc
+ bl FUN_0206477C
+ ldr r0, [r4, #0x18]
+ add r1, sp, #0
+ lsl r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x24]
+ bl FUN_02059E9C
+ str r0, [r4, #0x14]
+ cmp r0, #1
+ bne _0224BEF4
+ ldr r0, [sp, #4]
+ add r1, sp, #0xc
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ bl FUN_0206476C
+_0224BEF4:
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0224BF06
+ cmp r0, #1
+ beq _0224BF2A
+ cmp r0, #2
+ beq _0224BF40
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0224BF06:
+ mov r1, #1
+ ldr r0, [r4, #0x34]
+ lsl r1, r1, #0xc
+ bl FUN_0201F854
+ ldr r0, [r4, #0x34]
+ bl FUN_0201F8C0
+ asr r1, r0, #0xb
+ lsr r1, r1, #0x14
+ add r1, r0, r1
+ asr r0, r1, #0xc
+ cmp r0, #0xc
+ blt _0224BF60
+ mov r0, #1
+ add sp, #0x18
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224BF2A:
+ mov r1, #3
+ ldr r0, [r4, #0x34]
+ lsl r1, r1, #0xe
+ bl FUN_0201F86C
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl FUN_0201F854
+ mov r0, #2
+ str r0, [r4]
+_0224BF40:
+ add r0, r6, #0
+ bl FUN_02058B2C
+ add r7, r0, #0
+ add r0, r6, #0
+ bl FUN_02058B4C
+ ldr r1, [r4, #0x18]
+ cmp r1, r7
+ bne _0224BF5A
+ ldr r1, [r4, #0x20]
+ cmp r1, r0
+ beq _0224BF60
+_0224BF5A:
+ add r0, r5, #0
+ bl FUN_021E4DE4
+_0224BF60:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0224BF64
+MOD06_0224BF64: ; 0x0224BF64
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x30]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #8]
+ ldr r3, [r4, #0xc]
+ bl FUN_020582F8
+ cmp r0, #0
+ bne _0224BF86
+ add r0, r5, #0
+ bl FUN_021E4DE4
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0224BF86:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x34]
+ add r1, sp, #0
+ bl FUN_0201F7C8
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224BF9C
+MOD06_0224BF9C: ; 0x0224BF9C
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r1, #4
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_0224BFC8
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224BFB8
+MOD06_0224BFB8: ; 0x0224BFB8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224C010
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224BFC8
+MOD06_0224BFC8: ; 0x0224BFC8
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #8
+ mov r2, #0x5a
+ bl FUN_021E5078
+ ldr r0, [r4]
+ mov r1, #8
+ mov r2, #0x7c
+ bl FUN_021E50AC
+ mov r1, #9
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #1
+ bl FUN_021E50D4
+ mov r0, #9
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0224C00C ; =0x02251DCC
+ mov r2, #8
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #0xa
+ add r3, r2, #0
+ bl FUN_021E4EFC
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0224C00C: .word 0x02251DCC
+
+ thumb_func_start MOD06_0224C010
+MOD06_0224C010: ; 0x0224C010
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #8
+ bl FUN_021E50A0
+ ldr r0, [r4]
+ mov r1, #8
+ bl FUN_021E50C8
+ ldr r0, [r4]
+ mov r1, #9
+ bl FUN_021E5114
+ ldr r0, [r4]
+ mov r1, #0xa
+ bl FUN_021E506C
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224C038
+MOD06_0224C038: ; 0x0224C038
+ push {r4, r5, r6, lr}
+ sub sp, #0x30
+ add r5, r0, #0
+ add r6, r1, #0
+ bl FUN_021E4C24
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_02058B2C
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl FUN_02058B3C
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ bl FUN_02058B4C
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ str r4, [sp, #0x18]
+ bl FUN_021E4C20
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ mov r1, #0x1b
+ bl FUN_021E4C08
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ add r1, sp, #0x24
+ str r5, [sp, #0x20]
+ bl FUN_02058B5C
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0205829C
+ add r1, sp, #8
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r1, _0224C09C ; =0x02251DB8
+ add r0, r4, #0
+ add r2, sp, #0x24
+ add r3, r6, #0
+ bl FUN_021E4DC4
+ add sp, #0x30
+ pop {r4, r5, r6, pc}
+ nop
+_0224C09C: .word 0x02251DB8
+
+ thumb_func_start MOD06_0224C0A0
+MOD06_0224C0A0: ; 0x0224C0A0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r3, r0, #0
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x18
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r4, #0x30]
+ bl FUN_0205845C
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x30]
+ bl FUN_02058448
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x30]
+ bl FUN_02058450
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x18]
+ lsl r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x30]
+ bl FUN_02058B80
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x24]
+ add r1, sp, #0
+ bl FUN_02059E9C
+ str r0, [r4, #0x14]
+ mov r0, #0x1e
+ ldr r1, [sp]
+ lsl r0, r0, #0xa
+ add r0, r1, r0
+ str r0, [sp]
+ mov r0, #2
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0xe
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ mov r0, #0xd
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ ldr r0, [r4, #0x28]
+ mov r1, #0xa
+ add r2, sp, #0
+ bl FUN_021E4EE4
+ str r0, [r4, #0x34]
+ add r0, r5, #0
+ bl FUN_02064754
+ cmp r0, #0
+ bne _0224C138
+ mov r0, #1
+ str r0, [r4]
+_0224C138:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224C140
+MOD06_0224C140: ; 0x0224C140
+ ldr r3, _0224C148 ; =0x0201F745
+ ldr r0, [r1, #0x34]
+ bx r3
+ nop
+_0224C148: .word 0x0201F745
+
+ thumb_func_start MOD06_0224C14C
+MOD06_0224C14C: ; 0x0224C14C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ ldr r6, [r4, #0x30]
+ ldr r1, [r4, #4]
+ add r5, r0, #0
+ ldr r2, [r4, #8]
+ ldr r3, [r4, #0xc]
+ add r0, r6, #0
+ bl FUN_020582F8
+ cmp r0, #0
+ bne _0224C170
+ add r0, r5, #0
+ bl FUN_021E4DE4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0224C170:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _0224C1A8
+ add r0, r5, #0
+ add r1, sp, #0xc
+ bl FUN_0206477C
+ ldr r0, [r4, #0x18]
+ add r1, sp, #0
+ lsl r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x24]
+ bl FUN_02059E9C
+ str r0, [r4, #0x14]
+ cmp r0, #1
+ bne _0224C1A8
+ ldr r0, [sp, #4]
+ add r1, sp, #0xc
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ bl FUN_0206476C
+_0224C1A8:
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0224C1BA
+ cmp r0, #1
+ beq _0224C1DE
+ cmp r0, #2
+ beq _0224C1F4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0224C1BA:
+ mov r1, #1
+ ldr r0, [r4, #0x34]
+ lsl r1, r1, #0xc
+ bl FUN_0201F854
+ ldr r0, [r4, #0x34]
+ bl FUN_0201F8C0
+ asr r1, r0, #0xb
+ lsr r1, r1, #0x14
+ add r1, r0, r1
+ asr r0, r1, #0xc
+ cmp r0, #2
+ blt _0224C214
+ mov r0, #1
+ add sp, #0x18
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224C1DE:
+ mov r1, #2
+ ldr r0, [r4, #0x34]
+ lsl r1, r1, #0xc
+ bl FUN_0201F86C
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl FUN_0201F854
+ mov r0, #2
+ str r0, [r4]
+_0224C1F4:
+ add r0, r6, #0
+ bl FUN_02058B2C
+ add r7, r0, #0
+ add r0, r6, #0
+ bl FUN_02058B4C
+ ldr r1, [r4, #0x18]
+ cmp r1, r7
+ bne _0224C20E
+ ldr r1, [r4, #0x20]
+ cmp r1, r0
+ beq _0224C214
+_0224C20E:
+ add r0, r5, #0
+ bl FUN_021E4DE4
+_0224C214:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0224C218
+MOD06_0224C218: ; 0x0224C218
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x30]
+ ldr r1, [r4, #8]
+ ldr r2, [r4, #0xc]
+ bl FUN_020582A8
+ cmp r0, #0
+ bne _0224C238
+ add r0, r5, #0
+ bl FUN_021E4DE4
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0224C238:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x34]
+ add r1, sp, #0
+ bl FUN_0201F7C8
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD06_0224C24C
+MOD06_0224C24C: ; 0x0224C24C
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0202A9B0
+ bl FUN_0202AB4C
+ ldrb r1, [r0]
+ cmp r1, #0
+ beq _0224C278
+ sub r1, r1, #1
+ strb r1, [r0]
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0224C278
+ mov r1, #0x7f
+ add r0, r4, #0
+ lsl r1, r1, #4
+ mov r2, #0
+ bl FUN_02038C78
+ mov r0, #1
+ pop {r4, pc}
+_0224C278:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224C27C
+MOD06_0224C27C: ; 0x0224C27C
+ push {r4, r5, r6, lr}
+ sub sp, #0x20
+ add r6, r1, #0
+ mov r1, #0x7b
+ add r2, sp, #4
+ add r3, sp, #0
+ add r5, r0, #0
+ bl FUN_0204A9F0
+ cmp r0, #0
+ beq _0224C2E8
+ mov r0, #4
+ mov r1, #0x18
+ bl FUN_020169D8
+ add r4, r0, #0
+ strb r6, [r4, #0xc]
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ strb r0, [r4, #0xe]
+ strb r0, [r4, #0xf]
+ ldr r0, [r5, #0x28]
+ bl FUN_020344FC
+ add r1, r0, #0
+ ldr r0, [sp]
+ add r2, sp, #0x14
+ bl FUN_0204AAD4
+ ldr r1, [sp, #4]
+ add r0, sp, #8
+ bl FUN_021E7EA0
+ add r3, sp, #8
+ ldmia r3!, {r0, r1}
+ add r2, r4, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r1, [r4]
+ ldr r0, [sp, #0x14]
+ add r2, r4, #0
+ add r0, r1, r0
+ str r0, [r4]
+ ldr r1, [r4, #8]
+ ldr r0, [sp, #0x1c]
+ add r0, r1, r0
+ str r0, [r4, #8]
+ ldr r0, [r5, #0x10]
+ ldr r1, _0224C2F0 ; =MOD06_0224C2F4
+ bl FUN_0204640C
+ add sp, #0x20
+ pop {r4, r5, r6, pc}
+_0224C2E8:
+ bl ErrorHandling
+ add sp, #0x20
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224C2F0: .word MOD06_0224C2F4
+
+ thumb_func_start MOD06_0224C2F4
+MOD06_0224C2F4: ; 0x0224C2F4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r4, r0, #0
+ bl FUN_02046528
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_0204652C
+ add r4, r0, #0
+ ldrb r1, [r4, #0xf]
+ cmp r1, #5
+ bls _0224C310
+ b _0224C500
+_0224C310:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224C31C: ; jump table
+ .short _0224C328 - _0224C31C - 2 ; case 0
+ .short _0224C3C2 - _0224C31C - 2 ; case 1
+ .short _0224C44A - _0224C31C - 2 ; case 2
+ .short _0224C476 - _0224C31C - 2 ; case 3
+ .short _0224C498 - _0224C31C - 2 ; case 4
+ .short _0224C4F6 - _0224C31C - 2 ; case 5
+_0224C328:
+ ldr r0, _0224C508 ; =0x00000205
+ ldr r1, [r5, #0x2c]
+ bl FUN_021F4BD0
+ add r6, r0, #0
+ ldr r1, [r5, #0x2c]
+ mov r0, #0x7c
+ bl FUN_021F4BD0
+ str r0, [sp, #0x18]
+ ldr r0, [r6]
+ bl FUN_020BC13C
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r7, r0, r1
+ ldr r0, [sp, #0x18]
+ ldr r0, [r0]
+ bl FUN_020BC13C
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r6, r0, r1
+ ldr r0, [r5, #0x2c]
+ bl FUN_021F4C88
+ mov r1, #0
+ str r1, [sp]
+ str r7, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ ldr r0, [r5, #0x4c]
+ ldr r1, [r5, #0x50]
+ ldr r3, _0224C508 ; =0x00000205
+ mov r2, #0x10
+ bl FUN_021DA464
+ add r0, r5, #0
+ mov r1, #0x7c
+ add r2, sp, #0x1c
+ mov r3, #0
+ bl FUN_0204A9F0
+ cmp r0, #0
+ bne _0224C390
+ bl ErrorHandling
+_0224C390:
+ ldr r0, [sp, #0x1c]
+ bl FUN_021E7EC8
+ add r7, r0, #0
+ ldr r0, [r5, #0x2c]
+ bl FUN_021F4C88
+ str r7, [sp]
+ str r6, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #0x4c]
+ ldr r1, [r5, #0x50]
+ mov r2, #0x20
+ mov r3, #0x7c
+ bl FUN_021DA464
+ ldrb r0, [r4, #0xf]
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ b _0224C500
+_0224C3C2:
+ add r1, sp, #0x20
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ ldrb r2, [r4, #0xd]
+ mov r1, #0xc
+ ldr r0, [r4]
+ add r3, r2, #0
+ ldr r2, _0224C50C ; =0x02252358
+ mul r3, r1
+ ldr r2, [r2, r3]
+ add r0, r0, r2
+ str r0, [sp, #0x2c]
+ ldrb r2, [r4, #0xd]
+ ldr r0, [r4, #4]
+ add r3, r2, #0
+ ldr r2, _0224C510 ; =0x0225235C
+ mul r3, r1
+ ldr r2, [r2, r3]
+ add r0, r0, r2
+ str r0, [sp, #0x30]
+ ldrb r2, [r4, #0xd]
+ ldr r0, [r4, #8]
+ add r3, r2, #0
+ mul r3, r1
+ ldr r1, _0224C514 ; =0x02252360
+ ldr r1, [r1, r3]
+ add r0, r0, r1
+ str r0, [sp, #0x34]
+ ldr r0, _0224C518 ; =0x000005FE
+ bl FUN_020054C8
+ add r0, sp, #0x20
+ str r0, [sp]
+ ldr r0, [r5, #0x4c]
+ ldr r2, _0224C508 ; =0x00000205
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ add r3, sp, #0x2c
+ bl FUN_021E7FBC
+ ldrb r1, [r4, #0xd]
+ add r1, r4, r1
+ strb r0, [r1, #0x10]
+ ldrb r1, [r4, #0xd]
+ add r0, r5, #0
+ add r0, #0xa0
+ add r1, r4, r1
+ ldrb r1, [r1, #0x10]
+ ldr r0, [r0]
+ bl FUN_021E7EEC
+ bl FUN_021E7EC8
+ add r3, r0, #0
+ ldrb r2, [r4, #0xd]
+ ldr r0, [r5, #0x50]
+ mov r1, #0x10
+ bl FUN_021DA4BC
+ ldrb r0, [r4, #0xf]
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ b _0224C500
+_0224C44A:
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0xf
+ bhs _0224C456
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ b _0224C500
+_0224C456:
+ mov r0, #0
+ strb r0, [r4, #0xe]
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ ldrb r1, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ cmp r1, r0
+ bhs _0224C46E
+ mov r0, #1
+ strb r0, [r4, #0xf]
+ b _0224C500
+_0224C46E:
+ ldrb r0, [r4, #0xf]
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ b _0224C500
+_0224C476:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x10
+ mov r2, #0
+ bl FUN_021DA4EC
+ ldr r0, [r5, #0x50]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_021DA4EC
+ ldr r0, _0224C51C ; =0x0000048E
+ bl FUN_02005C28
+ ldrb r0, [r4, #0xf]
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ b _0224C500
+_0224C498:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x10
+ bl FUN_021DA58C
+ cmp r0, #0
+ beq _0224C500
+ ldr r0, [r5, #0x50]
+ mov r1, #0x20
+ bl FUN_021DA58C
+ cmp r0, #0
+ beq _0224C500
+ bl FUN_02005CBC
+ cmp r0, #0
+ bne _0224C500
+ ldr r0, [r5, #0x4c]
+ ldr r1, [r5, #0x50]
+ mov r2, #0x20
+ bl FUN_021DA54C
+ ldr r0, [r5, #0x4c]
+ ldr r1, [r5, #0x50]
+ mov r2, #0x10
+ bl FUN_021DA54C
+ ldrb r0, [r4, #0xc]
+ mov r6, #0
+ cmp r0, #0
+ bls _0224C4EE
+_0224C4D4:
+ add r0, r4, r6
+ add r1, r5, #0
+ add r1, #0xa0
+ ldrb r0, [r0, #0x10]
+ ldr r1, [r1]
+ bl FUN_021E7C80
+ add r0, r6, #1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldrb r0, [r4, #0xc]
+ cmp r6, r0
+ blo _0224C4D4
+_0224C4EE:
+ ldrb r0, [r4, #0xf]
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ b _0224C500
+_0224C4F6:
+ bl FUN_02016A18
+ add sp, #0x38
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0224C500:
+ mov r0, #0
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224C508: .word 0x00000205
+_0224C50C: .word 0x02252358
+_0224C510: .word 0x0225235C
+_0224C514: .word 0x02252360
+_0224C518: .word 0x000005FE
+_0224C51C: .word 0x0000048E
+
+ thumb_func_start MOD06_0224C520
+MOD06_0224C520: ; 0x0224C520
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ mov r2, #0
+ ldr r1, _0224C558 ; =0x000001F2
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_0204A9F0
+ cmp r0, #0
+ beq _0224C552
+ mov r0, #4
+ add r1, r0, #0
+ bl FUN_020169D8
+ add r2, r0, #0
+ strb r6, [r2]
+ strb r4, [r2, #1]
+ mov r0, #0
+ strb r0, [r2, #2]
+ ldr r0, [r5, #0x10]
+ ldr r1, _0224C55C ; =MOD06_0224C560
+ bl FUN_0204640C
+ pop {r4, r5, r6, pc}
+_0224C552:
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224C558: .word 0x000001F2
+_0224C55C: .word MOD06_0224C560
+
+ thumb_func_start MOD06_0224C560
+MOD06_0224C560: ; 0x0224C560
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ bl FUN_02046528
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_0204652C
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #4
+ bhi _0224C664
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224C586: ; jump table
+ .short _0224C590 - _0224C586 - 2 ; case 0
+ .short _0224C5EE - _0224C586 - 2 ; case 1
+ .short _0224C61C - _0224C586 - 2 ; case 2
+ .short _0224C648 - _0224C586 - 2 ; case 3
+ .short _0224C65A - _0224C586 - 2 ; case 4
+_0224C590:
+ ldr r0, _0224C66C ; =0x000001F2
+ ldr r1, [r5, #0x2c]
+ bl FUN_021F4BD0
+ ldr r0, [r0]
+ bl FUN_020BC13C
+ ldrh r1, [r0, #0xe]
+ add r2, sp, #0x18
+ mov r3, #0
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r6, r0, r1
+ ldr r1, _0224C66C ; =0x000001F2
+ add r0, r5, #0
+ bl FUN_0204A9F0
+ cmp r0, #0
+ bne _0224C5BA
+ bl ErrorHandling
+_0224C5BA:
+ ldr r0, [sp, #0x18]
+ bl FUN_021E7EC8
+ add r7, r0, #0
+ ldr r0, [r5, #0x2c]
+ bl FUN_021F4C88
+ str r7, [sp]
+ str r6, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #2
+ str r0, [sp, #0xc]
+ ldrb r0, [r4]
+ ldr r3, _0224C66C ; =0x000001F2
+ mov r2, #1
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #0x4c]
+ ldr r1, [r5, #0x50]
+ bl FUN_021DA464
+ ldrb r0, [r4, #2]
+ add r0, r0, #1
+ strb r0, [r4, #2]
+ b _0224C664
+_0224C5EE:
+ ldrb r0, [r4, #1]
+ mov r1, #1
+ cmp r0, #0
+ beq _0224C5FC
+ cmp r0, #1
+ beq _0224C5FC
+ mov r1, #0
+_0224C5FC:
+ cmp r1, #0
+ bne _0224C604
+ bl ErrorHandling
+_0224C604:
+ ldrb r2, [r4, #1]
+ ldr r0, [r5, #0x50]
+ mov r1, #1
+ bl FUN_021DA4EC
+ ldr r0, _0224C670 ; =0x00000612
+ bl FUN_020054C8
+ ldrb r0, [r4, #2]
+ add r0, r0, #1
+ strb r0, [r4, #2]
+ b _0224C664
+_0224C61C:
+ ldr r0, [r5, #0x50]
+ mov r1, #1
+ bl FUN_021DA58C
+ cmp r0, #0
+ beq _0224C664
+ ldr r0, _0224C670 ; =0x00000612
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, _0224C674 ; =0x000005F1
+ bl FUN_020054C8
+ ldr r0, [r5, #0x4c]
+ ldr r1, [r5, #0x50]
+ mov r2, #1
+ bl FUN_021DA54C
+ ldrb r0, [r4, #2]
+ add r0, r0, #1
+ strb r0, [r4, #2]
+ b _0224C664
+_0224C648:
+ ldr r0, _0224C674 ; =0x000005F1
+ bl FUN_02005508
+ cmp r0, #0
+ bne _0224C664
+ ldrb r0, [r4, #2]
+ add r0, r0, #1
+ strb r0, [r4, #2]
+ b _0224C664
+_0224C65A:
+ bl FUN_02016A18
+ add sp, #0x1c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0224C664:
+ mov r0, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224C66C: .word 0x000001F2
+_0224C670: .word 0x00000612
+_0224C674: .word 0x000005F1
+
+ thumb_func_start MOD06_0224C678
+MOD06_0224C678: ; 0x0224C678
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ ldr r4, _0224C6E4 ; =0x02251DE4
+ add r3, sp, #0x20
+ add r5, r0, #0
+ add r7, r1, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, sp, #0x18
+ str r0, [sp]
+ add r1, r2, #0
+ add r0, r5, #0
+ mov r2, #4
+ add r3, sp, #0x1c
+ bl FUN_0204AA5C
+ cmp r0, #0
+ beq _0224C6DA
+ ldr r0, [r5, #0x2c]
+ bl FUN_021F4C88
+ add r4, r0, #0
+ ldr r0, [sp, #0x1c]
+ bl FUN_021E7EC8
+ add r6, r0, #0
+ ldr r0, [sp, #0x1c]
+ bl FUN_021E7ECC
+ str r6, [sp]
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ mov r0, #2
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #0x4c]
+ ldr r1, [r5, #0x50]
+ ldr r3, [sp, #0x18]
+ add r2, r7, #0
+ bl FUN_021DA464
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+_0224C6DA:
+ bl ErrorHandling
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224C6E4: .word 0x02251DE4
+
+ thumb_func_start MOD06_0224C6E8
+MOD06_0224C6E8: ; 0x0224C6E8
+ ldr r3, _0224C6F0 ; =0x021DA4ED
+ ldr r0, [r0, #0x50]
+ mov r2, #0
+ bx r3
+ .align 2, 0
+_0224C6F0: .word 0x021DA4ED
+
+ thumb_func_start MOD06_0224C6F4
+MOD06_0224C6F4: ; 0x0224C6F4
+ ldr r3, _0224C6FC ; =0x021DA4ED
+ ldr r0, [r0, #0x50]
+ mov r2, #1
+ bx r3
+ .align 2, 0
+_0224C6FC: .word 0x021DA4ED
+
+ thumb_func_start MOD06_0224C700
+MOD06_0224C700: ; 0x0224C700
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ mov r1, #0x24
+ bl MOD06_0224CB90
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [r4, #8]
+ str r5, [r4, #0x1c]
+ ldr r0, [r5, #0x38]
+ bl FUN_020553A0
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224C720
+MOD06_0224C720: ; 0x0224C720
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ bl FUN_02046528
+ add r7, r0, #0
+ add r0, r6, #0
+ bl FUN_0204652C
+ add r5, r0, #0
+_0224C732:
+ ldr r3, [r5]
+ add r0, r6, #0
+ lsl r4, r3, #2
+ ldr r3, _0224C758 ; =0x02251E04
+ add r1, r7, #0
+ ldr r3, [r3, r4]
+ add r2, r5, #0
+ blx r3
+ add r4, r0, #0
+ cmp r4, #2
+ bne _0224C74E
+ add r0, r5, #0
+ bl FUN_02016A18
+_0224C74E:
+ cmp r4, #1
+ beq _0224C732
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224C758: .word 0x02251E04
+
+ thumb_func_start MOD06_0224C75C
+MOD06_0224C75C: ; 0x0224C75C
+ push {r4, lr}
+ add r0, r1, #0
+ mov r1, #4
+ add r4, r2, #0
+ bl FUN_021F61F4
+ ldr r2, _0224C7B0 ; =0xFFF6A000
+ str r0, [r4, #0x14]
+ mov r1, #1
+ mov r3, #0xf
+ bl FUN_021F6254
+ ldr r0, [r4, #0x18]
+ ldr r1, _0224C7B4 ; =0x02251E40
+ bl FUN_0205AEA4
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0224C794
+ cmp r0, #1
+ beq _0224C79C
+ cmp r0, #2
+ beq _0224C7A4
+ b _0224C7AA
+_0224C794:
+ ldr r0, _0224C7B8 ; =0x00000603
+ bl FUN_020054C8
+ b _0224C7AA
+_0224C79C:
+ ldr r0, _0224C7B8 ; =0x00000603
+ bl FUN_020054C8
+ b _0224C7AA
+_0224C7A4:
+ ldr r0, _0224C7BC ; =0x0000064E
+ bl FUN_020054C8
+_0224C7AA:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0224C7B0: .word 0xFFF6A000
+_0224C7B4: .word 0x02251E40
+_0224C7B8: .word 0x00000603
+_0224C7BC: .word 0x0000064E
+
+ thumb_func_start MOD06_0224C7C0
+MOD06_0224C7C0: ; 0x0224C7C0
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r2, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AEF0
+ cmp r0, #0
+ bne _0224C7D6
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_0224C7D6:
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AEFC
+ ldr r0, [r4, #0x18]
+ ldr r1, _0224C83C ; =0x02251E14
+ bl FUN_0205AEA4
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ cmp r0, #8
+ bge _0224C7F6
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_0224C7F6:
+ ldr r0, [r4, #8]
+ cmp r0, #2
+ bne _0224C816
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ b _0224C82E
+_0224C816:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0
+ ldr r3, _0224C840 ; =0x00007FFF
+ add r1, r0, #0
+ add r2, r0, #0
+ bl FUN_0200E1D0
+_0224C82E:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0224C83C: .word 0x02251E14
+_0224C840: .word 0x00007FFF
+
+ thumb_func_start MOD06_0224C844
+MOD06_0224C844: ; 0x0224C844
+ push {r4, lr}
+ add r4, r2, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AEF0
+ cmp r0, #1
+ bne _0224C862
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AEFC
+ ldr r0, [r4, #0x18]
+ ldr r1, _0224C884 ; =0x02251E14
+ bl FUN_0205AEA4
+ str r0, [r4, #0xc]
+_0224C862:
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _0224C86E
+ mov r0, #0
+ pop {r4, pc}
+_0224C86E:
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AEFC
+ ldr r0, [r4, #0x14]
+ bl FUN_021F6240
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_0224C884: .word 0x02251E14
+
+ thumb_func_start MOD06_0224C888
+MOD06_0224C888: ; 0x0224C888
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r1, #0xc]
+ add r4, r2, #0
+ bl FUN_02034E30
+ ldr r1, [r4, #8]
+ cmp r1, #2
+ bne _0224C8B2
+ bl FUN_02034DFC
+ add r1, sp, #0
+ bl FUN_02034E90
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02049494
+ b _0224C8C0
+_0224C8B2:
+ bl FUN_02034DCC
+ add r1, r0, #0
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ bl FUN_02049494
+_0224C8C0:
+ mov r0, #2
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224C8C8
+MOD06_0224C8C8: ; 0x0224C8C8
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ mov r1, #0x24
+ add r6, r2, #0
+ bl MOD06_0224CB90
+ add r4, r0, #0
+ str r6, [r4, #8]
+ str r5, [r4, #0x1c]
+ ldr r0, [r5, #0x38]
+ bl FUN_020553A0
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_0224C8E8
+MOD06_0224C8E8: ; 0x0224C8E8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl FUN_02046528
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_0204652C
+ ldr r7, _0224C928 ; =0x02251DF4
+ add r4, r0, #0
+_0224C8FC:
+ ldr r3, [r4]
+ add r0, r5, #0
+ lsl r3, r3, #2
+ ldr r3, [r7, r3]
+ add r1, r6, #0
+ add r2, r4, #0
+ blx r3
+ cmp r0, #2
+ bne _0224C920
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD06_0224C92C
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0224C920:
+ cmp r0, #1
+ beq _0224C8FC
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224C928: .word 0x02251DF4
+
+ thumb_func_start MOD06_0224C92C
+MOD06_0224C92C: ; 0x0224C92C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r1, #8]
+ cmp r0, #2
+ bne _0224C952
+ ldr r1, [r4, #0x1c]
+ mov r0, #9
+ ldr r1, [r1]
+ mov r2, #4
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0202914C
+ add r4, #0x98
+ add r1, r0, #0
+ ldr r0, [r4]
+ mov r2, #1
+ bl FUN_02028AD4
+_0224C952:
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224C954
+MOD06_0224C954: ; 0x0224C954
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r2, #0
+ ldr r0, [r4, #8]
+ add r5, r1, #0
+ cmp r0, #2
+ bne _0224C97A
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ b _0224C990
+_0224C97A:
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ ldr r3, _0224C9BC ; =0x00007FFF
+ mov r0, #0
+ add r2, r1, #0
+ bl FUN_0200E1D0
+_0224C990:
+ add r0, r5, #0
+ mov r1, #4
+ bl FUN_021F61F4
+ mov r1, #1
+ ldr r2, _0224C9C0 ; =0xFFF6A000
+ str r0, [r4, #0x14]
+ add r3, r1, #0
+ bl FUN_021F6254
+ ldr r0, [r4, #0x18]
+ ldr r1, _0224C9C4 ; =0x02251E14
+ bl FUN_0205AEA4
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0224C9BC: .word 0x00007FFF
+_0224C9C0: .word 0xFFF6A000
+_0224C9C4: .word 0x02251E14
+
+ thumb_func_start MOD06_0224C9C8
+MOD06_0224C9C8: ; 0x0224C9C8
+ push {r4, lr}
+ add r4, r2, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AEF0
+ cmp r0, #1
+ bne _0224C9E6
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AEFC
+ ldr r0, [r4, #0x18]
+ ldr r1, _0224CA08 ; =0x02251E14
+ bl FUN_0205AEA4
+ str r0, [r4, #0xc]
+_0224C9E6:
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _0224C9F2
+ mov r0, #0
+ pop {r4, pc}
+_0224C9F2:
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ mov r2, #0
+ mov r3, #0x3c
+ bl FUN_021F6254
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_0224CA08: .word 0x02251E14
+
+ thumb_func_start MOD06_0224CA0C
+MOD06_0224CA0C: ; 0x0224CA0C
+ push {r4, lr}
+ add r4, r2, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AEF0
+ cmp r0, #0
+ bne _0224CA1E
+ mov r0, #0
+ pop {r4, pc}
+_0224CA1E:
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AEFC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ cmp r0, #4
+ ldr r0, [r4, #0x18]
+ bge _0224CA3C
+ ldr r1, _0224CA50 ; =0x02251E14
+ bl FUN_0205AEA4
+ str r0, [r4, #0xc]
+ mov r0, #0
+ pop {r4, pc}
+_0224CA3C:
+ ldr r1, _0224CA54 ; =0x02251EA4
+ bl FUN_0205AEA4
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0224CA50: .word 0x02251E14
+_0224CA54: .word 0x02251EA4
+
+ thumb_func_start MOD06_0224CA58
+MOD06_0224CA58: ; 0x0224CA58
+ push {r4, lr}
+ add r4, r2, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AEF0
+ cmp r0, #0
+ bne _0224CA6A
+ mov r0, #0
+ pop {r4, pc}
+_0224CA6A:
+ ldr r0, [r4, #0x14]
+ bl FUN_021F6234
+ cmp r0, #0
+ bne _0224CA78
+ mov r0, #0
+ pop {r4, pc}
+_0224CA78:
+ ldr r0, [r4, #0x14]
+ bl FUN_021F6240
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AEFC
+ mov r0, #2
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224CA88
+MOD06_0224CA88: ; 0x0224CA88
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r0, r2, #0
+ mov r1, #0x24
+ bl MOD06_0224CB90
+ add r4, r0, #0
+ mov r0, #1
+ str r0, [r4, #8]
+ str r5, [r4, #0x1c]
+ ldr r0, [r5, #0x38]
+ bl FUN_020553A0
+ str r0, [r4, #0x18]
+ str r6, [r4, #0x20]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_0224CAAC
+MOD06_0224CAAC: ; 0x0224CAAC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ bl FUN_02046528
+ add r7, r0, #0
+ add r0, r6, #0
+ bl FUN_0204652C
+ add r5, r0, #0
+_0224CABE:
+ ldr r3, [r5]
+ add r0, r6, #0
+ lsl r4, r3, #2
+ ldr r3, _0224CAE4 ; =0x02251E28
+ add r1, r7, #0
+ ldr r3, [r3, r4]
+ add r2, r5, #0
+ blx r3
+ add r4, r0, #0
+ cmp r4, #2
+ bne _0224CADA
+ add r0, r5, #0
+ bl FUN_02016A18
+_0224CADA:
+ cmp r4, #1
+ beq _0224CABE
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224CAE4: .word 0x02251E28
+
+ thumb_func_start MOD06_0224CAE8
+MOD06_0224CAE8: ; 0x0224CAE8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r0, [r5, #0x38]
+ add r4, r2, #0
+ bl FUN_020553E8
+ add r3, r0, #0
+ ldr r2, [r4, #0x20]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD06_0224666C
+ str r0, [r4, #0x10]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224CB0C
+MOD06_0224CB0C: ; 0x0224CB0C
+ push {r4, lr}
+ add r4, r2, #0
+ ldr r0, [r4, #0x10]
+ bl MOD06_022466A0
+ cmp r0, #0
+ bne _0224CB1E
+ mov r0, #0
+ pop {r4, pc}
+_0224CB1E:
+ ldr r0, [r4, #0x10]
+ bl MOD06_022466AC
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224CB30
+MOD06_0224CB30: ; 0x0224CB30
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r0, r2, #0
+ mov r1, #0x24
+ bl MOD06_0224CB90
+ add r4, r0, #0
+ mov r0, #2
+ str r0, [r4, #8]
+ str r5, [r4, #0x1c]
+ ldr r0, [r5, #0x38]
+ bl FUN_020553A0
+ str r0, [r4, #0x18]
+ str r6, [r4, #0x20]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD06_0224CB54
+MOD06_0224CB54: ; 0x0224CB54
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ bl FUN_02046528
+ add r7, r0, #0
+ add r0, r6, #0
+ bl FUN_0204652C
+ add r5, r0, #0
+_0224CB66:
+ ldr r3, [r5]
+ add r0, r6, #0
+ lsl r4, r3, #2
+ ldr r3, _0224CB8C ; =0x02251E28
+ add r1, r7, #0
+ ldr r3, [r3, r4]
+ add r2, r5, #0
+ blx r3
+ add r4, r0, #0
+ cmp r4, #2
+ bne _0224CB82
+ add r0, r5, #0
+ bl FUN_02016A18
+_0224CB82:
+ cmp r4, #1
+ beq _0224CB66
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224CB8C: .word 0x02251E28
+
+ thumb_func_start MOD06_0224CB90
+MOD06_0224CB90: ; 0x0224CB90
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_020169D8
+ add r4, r0, #0
+ bne _0224CBA0
+ bl ErrorHandling
+_0224CBA0:
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r5, #0
+ bl Call_FillMemWithValue
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224CBB0
+MOD06_0224CBB0: ; 0x0224CBB0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ mov r0, #0x6a
+ mov r1, #8
+ mov r2, #4
+ bl FUN_02006528
+ add r4, r0, #0
+ add r1, sp, #4
+ ldr r0, [sp]
+ add r1, #2
+ add r2, sp, #4
+ bl FUN_0202AB8C
+ add r0, sp, #4
+ ldrh r1, [r0, #2]
+ ldr r0, _0224CC20 ; =0x0000FFFF
+ cmp r1, r0
+ beq _0224CBDE
+ lsl r0, r1, #2
+ ldr r6, [r4, r0]
+ b _0224CBE0
+_0224CBDE:
+ mov r6, #0
+_0224CBE0:
+ add r0, sp, #4
+ ldrh r1, [r0]
+ ldr r0, _0224CC20 ; =0x0000FFFF
+ cmp r1, r0
+ beq _0224CBF0
+ lsl r0, r1, #2
+ ldr r7, [r4, r0]
+ b _0224CBF2
+_0224CBF0:
+ mov r7, #0
+_0224CBF2:
+ bl FUN_0201B9EC
+ lsl r0, r0, #4
+ lsr r5, r0, #0x10
+ cmp r5, #0x10
+ blo _0224CC02
+ bl ErrorHandling
+_0224CC02:
+ lsl r0, r5, #2
+ ldr r0, [r4, r0]
+ cmp r6, r0
+ beq _0224CBF2
+ cmp r7, r0
+ beq _0224CBF2
+ ldr r0, [sp]
+ add r1, r5, #0
+ bl FUN_0202ABA0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224CC20: .word 0x0000FFFF
+
+ thumb_func_start MOD06_0224CC24
+MOD06_0224CC24: ; 0x0224CC24
+ push {r3, r4, lr}
+ sub sp, #4
+ add r1, sp, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0202AB8C
+ add r0, sp, #0
+ ldrh r1, [r0, #2]
+ ldr r0, _0224CC5C ; =0x0000FFFF
+ cmp r1, r0
+ bne _0224CC40
+ bl ErrorHandling
+_0224CC40:
+ mov r0, #0x6a
+ mov r1, #8
+ mov r2, #4
+ bl FUN_02006528
+ add r1, sp, #0
+ ldrh r1, [r1, #2]
+ lsl r1, r1, #2
+ ldr r4, [r0, r1]
+ bl FUN_02016A18
+ add r0, r4, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0224CC5C: .word 0x0000FFFF
+
+ thumb_func_start MOD06_0224CC60
+MOD06_0224CC60: ; 0x0224CC60
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ add r5, r0, #0
+ bl FUN_0201B9EC
+ lsl r0, r0, #1
+ lsr r4, r0, #0x10
+ cmp r4, #2
+ blo _0224CC76
+ bl ErrorHandling
+_0224CC76:
+ cmp r4, #0
+ bne _0224CC80
+ add sp, #0x4c
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0224CC80:
+ ldr r0, [r5, #0xc]
+ bl FUN_0202881C
+ bl FUN_020287A4
+ add r4, r0, #0
+ ldr r0, [r5, #0x38]
+ add r1, sp, #0x18
+ add r2, sp, #0x14
+ bl FUN_020572B8
+ ldr r0, [r5, #0x28]
+ bl FUN_020344FC
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ lsr r0, r4, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x3c]
+ lsr r0, r4, #0x10
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x40]
+ lsr r0, r4, #8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x44]
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x48]
+ mov r0, #0x6a
+ mov r1, #1
+ mov r2, #4
+ bl FUN_02006528
+ str r0, [sp, #0xc]
+ mov r4, #0
+ ldr r0, [r0]
+ add r3, r4, #0
+ cmp r0, #0
+ ble _0224CCEA
+_0224CCD6:
+ ldr r1, [sp, #0xc]
+ lsl r2, r3, #2
+ add r1, r1, r2
+ ldr r1, [r1, #4]
+ add r4, r4, r1
+ add r1, r3, #1
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ cmp r3, r0
+ blt _0224CCD6
+_0224CCEA:
+ lsl r0, r0, #1
+ add r0, r0, #2
+ lsl r1, r0, #1
+ ldr r0, [sp, #0xc]
+ add r0, r0, r1
+ str r0, [sp, #8]
+ asr r0, r4, #1
+ lsr r0, r0, #0x1e
+ add r0, r4, r0
+ mov r1, #1
+ asr r0, r0, #2
+ lsl r1, r1, #8
+ str r0, [sp, #0x10]
+ cmp r0, r1
+ blt _0224CD0C
+ bl ErrorHandling
+_0224CD0C:
+ lsr r2, r4, #0x1f
+ lsl r1, r4, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0x18
+ mov r7, #0
+ lsr r6, r0, #0x18
+ add r5, r7, #0
+_0224CD20:
+ lsl r4, r5, #2
+ add r0, sp, #0x3c
+ ldr r0, [r0, r4]
+ ldr r1, [sp, #0x10]
+ bl _s32_div_f
+ ldr r0, [sp, #0x10]
+ add r2, r0, #0
+ mul r2, r5
+ add r0, r1, r2
+ add r1, r7, r0
+ add r0, sp, #0x2c
+ str r1, [r0, r4]
+ ldr r0, [r0, r4]
+ lsl r1, r0, #1
+ ldr r0, [sp, #8]
+ cmp r6, #0
+ ldrh r1, [r0, r1]
+ add r0, sp, #0x1c
+ str r1, [r0, r4]
+ beq _0224CD56
+ add r0, r7, #1
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ sub r0, r6, #1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+_0224CD56:
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #4
+ blo _0224CD20
+ ldr r0, [sp]
+ ldr r1, [sp, #0x14]
+ lsl r0, r0, #5
+ mul r0, r1
+ ldr r2, [sp, #0x18]
+ mov r3, #0
+ add r2, r2, r0
+ add r1, sp, #0x1c
+_0224CD70:
+ lsl r0, r3, #2
+ ldr r0, [r1, r0]
+ cmp r2, r0
+ bne _0224CD7E
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224CD88
+_0224CD7E:
+ add r0, r3, #1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ cmp r3, #4
+ blo _0224CD70
+_0224CD88:
+ ldr r0, [sp, #0xc]
+ bl FUN_02016A18
+ ldr r0, [sp, #4]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0224CD94
+MOD06_0224CD94: ; 0x0224CD94
+ mov r2, #0x14
+ strb r2, [r0]
+ mov r0, #0xa
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_0224CDA0
+MOD06_0224CDA0: ; 0x0224CDA0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x6a
+ mov r1, #0
+ mov r2, #4
+ bl FUN_02006528
+ ldr r1, [r0]
+ str r1, [r4]
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224CDB8
+MOD06_0224CDB8: ; 0x0224CDB8
+ cmp r1, #0
+ beq _0224CE2A
+ ldr r1, _0224CE2C ; =0x021C4918
+ ldrb r1, [r1, #6]
+ cmp r1, #5
+ bhi _0224CE2A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224CDD0: ; jump table
+ .short _0224CE2A - _0224CDD0 - 2 ; case 0
+ .short _0224CDDC - _0224CDD0 - 2 ; case 1
+ .short _0224CDEC - _0224CDD0 - 2 ; case 2
+ .short _0224CDFC - _0224CDD0 - 2 ; case 3
+ .short _0224CE0C - _0224CDD0 - 2 ; case 4
+ .short _0224CE1C - _0224CDD0 - 2 ; case 5
+_0224CDDC:
+ add r1, r0, #0
+ add r1, #0xac
+ ldr r1, [r1]
+ add r0, #0xb0
+ str r1, [r2]
+ ldr r0, [r0]
+ str r0, [r3]
+ bx lr
+_0224CDEC:
+ add r1, r0, #0
+ add r1, #0xa4
+ ldr r1, [r1]
+ add r0, #0xa8
+ str r1, [r2]
+ ldr r0, [r0]
+ str r0, [r3]
+ bx lr
+_0224CDFC:
+ add r1, r0, #0
+ add r1, #0xb4
+ ldr r1, [r1]
+ add r0, #0xb8
+ str r1, [r2]
+ ldr r0, [r0]
+ str r0, [r3]
+ bx lr
+_0224CE0C:
+ add r1, r0, #0
+ add r1, #0xbc
+ ldr r1, [r1]
+ add r0, #0xc0
+ str r1, [r2]
+ ldr r0, [r0]
+ str r0, [r3]
+ bx lr
+_0224CE1C:
+ add r1, r0, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, #0xc8
+ str r1, [r2]
+ ldr r0, [r0]
+ str r0, [r3]
+_0224CE2A:
+ bx lr
+ .align 2, 0
+_0224CE2C: .word 0x021C4918
+
+ thumb_func_start MOD06_0224CE30
+MOD06_0224CE30: ; 0x0224CE30
+ push {r3, r4, r5, lr}
+ mov r1, #0x5d
+ mov r2, #0
+ lsl r1, r1, #2
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_0224CE5C
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224CE4C
+MOD06_0224CE4C: ; 0x0224CE4C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224CEA4
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224CE5C
+MOD06_0224CE5C: ; 0x0224CE5C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r1, #0x59
+ ldr r0, [sp, #8]
+ lsl r1, r1, #2
+ add r6, r0, r1
+ sub r1, #0x10
+ ldr r5, _0224CEA0 ; =0x02251F18
+ add r4, r0, r1
+ add r7, r0, #4
+_0224CE76:
+ str r4, [sp]
+ str r6, [sp, #4]
+ ldr r0, [sp, #8]
+ ldr r1, [r5]
+ ldr r0, [r0]
+ mov r2, #0
+ add r3, r7, #0
+ bl FUN_021E51EC
+ ldr r0, [sp, #0xc]
+ add r6, r6, #4
+ add r0, r0, #1
+ add r4, r4, #4
+ add r7, #0x54
+ add r5, r5, #4
+ str r0, [sp, #0xc]
+ cmp r0, #4
+ blt _0224CE76
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224CEA0: .word 0x02251F18
+
+ thumb_func_start MOD06_0224CEA4
+MOD06_0224CEA4: ; 0x0224CEA4
+ push {r4, r5, r6, lr}
+ mov r6, #0x59
+ add r5, r0, #0
+ mov r4, #0
+ lsl r6, r6, #2
+_0224CEAE:
+ ldr r0, [r5, r6]
+ bl FUN_021E4C00
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0224CEAE
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224CEC0
+MOD06_0224CEC0: ; 0x0224CEC0
+ add r2, r0, #4
+ mov r0, #0x54
+ mul r0, r1
+ add r0, r2, r0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_0224CECC
+MOD06_0224CECC: ; 0x0224CECC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_021E4C24
+ add r6, r0, #0
+ bl FUN_021E4C20
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_02058B2C
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl FUN_02058B4C
+ add r1, r0, #0
+ ldr r0, [sp, #8]
+ add r2, sp, #0x20
+ bl FUN_02059E60
+ add r0, r7, #0
+ add r1, sp, #0x20
+ bl FUN_02059E9C
+ add r0, r6, #0
+ mov r1, #0x1c
+ str r4, [sp, #0xc]
+ str r6, [sp, #0x10]
+ bl FUN_021E4C08
+ add r1, r4, #0
+ str r0, [sp, #0x14]
+ str r5, [sp, #0x18]
+ bl MOD06_0224CEC0
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0205829C
+ add r1, sp, #0xc
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r1, _0224CF38 ; =0x02251F28
+ add r0, r6, #0
+ add r2, sp, #0x20
+ mov r3, #0
+ bl FUN_021E4DC4
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224CF38: .word 0x02251F28
+
+ thumb_func_start MOD06_0224CF3C
+MOD06_0224CF3C: ; 0x0224CF3C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_0206475C
+ add r3, r0, #0
+ ldr r4, [r3, #0xc]
+ add r2, r5, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x10
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r4, #0
+ bl FUN_02058448
+ str r0, [r5, #8]
+ add r0, r4, #0
+ bl FUN_02058450
+ str r0, [r5, #0xc]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224CF6C
+MOD06_0224CF6C: ; 0x0224CF6C
+ push {r4, lr}
+ add r2, r1, #0
+ ldr r4, [r2, #0x1c]
+ ldr r1, [r2, #8]
+ ldr r2, [r2, #0xc]
+ add r0, r4, #0
+ bl FUN_020582A8
+ cmp r0, #1
+ bne _0224CF88
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0205EB14
+_0224CF88:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224CF8C
+MOD06_0224CF8C: ; 0x0224CF8C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD06_0224CF90
+MOD06_0224CF90: ; 0x0224CF90
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x3c
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #1
+ beq _0224CFD0
+ ldr r5, _0224CFD4 ; =0x02251F0C
+ add r3, sp, #0x24
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ ldr r6, _0224CFD8 ; =0x02251F3C
+ str r0, [r3]
+ add r5, sp, #0
+ mov r3, #4
+_0224CFB0:
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ sub r3, r3, #1
+ bne _0224CFB0
+ ldr r0, [r6]
+ add r1, sp, #0x30
+ str r0, [r5]
+ add r0, r2, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x20]
+ add r1, sp, #0x30
+ add r2, sp, #0
+ add r3, sp, #0x24
+ bl FUN_0201B26C
+_0224CFD0:
+ add sp, #0x3c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0224CFD4: .word 0x02251F0C
+_0224CFD8: .word 0x02251F3C
+
+ thumb_func_start MOD06_0224CFDC
+MOD06_0224CFDC: ; 0x0224CFDC
+ push {r4, r5, r6, r7}
+ add r6, r2, #0
+ sub r2, r6, #1
+ add r3, r6, #0
+ lsl r2, r2, #0x18
+ lsr r6, r2, #0x18
+ cmp r3, #0
+ beq _0224D038
+ sub r5, r1, #1
+_0224CFEE:
+ ldrb r1, [r0]
+ mov r4, #0
+ asr r2, r1, #7
+ mov r1, #1
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ cmp r5, #0
+ ble _0224D020
+ mov r7, #1
+_0224D002:
+ ldrb r1, [r0, r4]
+ add r2, r0, r4
+ lsl r1, r1, #1
+ strb r1, [r0, r4]
+ ldrb r2, [r2, #1]
+ ldrb r1, [r0, r4]
+ asr r2, r2, #7
+ and r2, r7
+ orr r1, r2
+ strb r1, [r0, r4]
+ add r1, r4, #1
+ lsl r1, r1, #0x18
+ lsr r4, r1, #0x18
+ cmp r4, r5
+ blt _0224D002
+_0224D020:
+ ldrb r1, [r0, r4]
+ add r2, r6, #0
+ lsl r1, r1, #1
+ strb r1, [r0, r4]
+ ldrb r1, [r0, r4]
+ orr r1, r3
+ strb r1, [r0, r4]
+ sub r1, r6, #1
+ lsl r1, r1, #0x18
+ lsr r6, r1, #0x18
+ cmp r2, #0
+ bne _0224CFEE
+_0224D038:
+ pop {r4, r5, r6, r7}
+ bx lr
+
+ thumb_func_start MOD06_0224D03C
+MOD06_0224D03C: ; 0x0224D03C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ str r0, [sp]
+ add r6, r2, #0
+ add r7, r3, #0
+ bl FUN_02089368
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_02089394
+ add r1, sp, #4
+ strh r0, [r1, #4]
+ add r0, r6, #0
+ bl FUN_02089394
+ add r1, sp, #4
+ strh r0, [r1, #6]
+ add r0, r7, #0
+ bl FUN_02089394
+ add r1, sp, #4
+ strh r0, [r1, #8]
+ add r0, sp, #0x18
+ ldrh r0, [r0, #0x10]
+ bl FUN_02089394
+ add r1, sp, #4
+ mov r2, #0
+ strh r0, [r1, #0xa]
+ add r3, sp, #8
+ add r5, sp, #4
+ add r7, r2, #0
+_0224D080:
+ ldrsh r0, [r3, r7]
+ cmp r0, #0
+ bge _0224D08E
+ mov r0, #0
+ add sp, #0x10
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224D08E:
+ cmp r2, #0
+ ble _0224D0C2
+ mov r6, #1
+ mvn r6, r6
+ ldrsh r6, [r3, r6]
+ cmp r0, r6
+ blt _0224D0AE
+ sub r0, r0, r6
+ cmp r0, #0xff
+ ble _0224D0AA
+ mov r0, #0
+ add sp, #0x10
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224D0AA:
+ strb r0, [r5]
+ b _0224D0D4
+_0224D0AE:
+ sub r0, r6, r0
+ sub r0, r4, r0
+ cmp r0, #0xff
+ ble _0224D0BE
+ mov r0, #0
+ add sp, #0x10
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224D0BE:
+ strb r0, [r5]
+ b _0224D0D4
+_0224D0C2:
+ mov r0, #4
+ ldrsh r0, [r1, r0]
+ cmp r0, #0xff
+ ble _0224D0D2
+ mov r0, #0
+ add sp, #0x10
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224D0D2:
+ strb r0, [r1]
+_0224D0D4:
+ add r2, r2, #1
+ add r3, r3, #2
+ add r5, r5, #1
+ cmp r2, #4
+ blt _0224D080
+ add r0, sp, #4
+ mov r1, #4
+ mov r2, #7
+ bl MOD06_0224CFDC
+ mov r2, #0
+ add r1, sp, #4
+ add r4, sp, #4
+ mov r3, #0xf0
+_0224D0F0:
+ ldrb r5, [r4, #3]
+ ldrb r0, [r1]
+ add r2, r2, #1
+ asr r6, r5, #4
+ and r5, r3
+ orr r5, r6
+ eor r0, r5
+ strb r0, [r1]
+ add r1, r1, #1
+ cmp r2, #3
+ blt _0224D0F0
+ add r2, sp, #4
+ ldrb r3, [r2, #3]
+ mov r2, #0xf
+ add r0, sp, #4
+ and r2, r3
+ lsl r2, r2, #0x18
+ mov r1, #3
+ lsr r2, r2, #0x18
+ bl MOD06_0224CFDC
+ add r1, sp, #4
+ ldrb r0, [r1]
+ cmp r0, #8
+ blo _0224D12A
+ mov r0, #0
+ add sp, #0x10
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224D12A:
+ ldrb r2, [r1, #1]
+ eor r2, r0
+ strb r2, [r1, #1]
+ ldrb r2, [r1, #2]
+ eor r2, r0
+ strb r2, [r1, #2]
+ ldrb r2, [r1, #1]
+ ldrb r1, [r1, #2]
+ lsl r2, r2, #8
+ orr r2, r1
+ ldr r1, [sp]
+ cmp r1, r2
+ beq _0224D148
+ mov r0, #0
+ mvn r0, r0
+_0224D148:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0224D14C
+MOD06_0224D14C: ; 0x0224D14C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ str r3, [sp, #0xc]
+ add r4, r0, #0
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x48]
+ ldr r0, [sp, #4]
+ bl FUN_02013C28
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #8]
+ bl FUN_02013C28
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0xc]
+ bl FUN_02013C28
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x48]
+ bl FUN_02013C28
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x20]
+ add r0, r4, #0
+ bl FUN_020239C0
+ str r0, [sp, #0x1c]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0
+ bls _0224D23A
+_0224D1A6:
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ bls _0224D22A
+_0224D1B0:
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x24]
+ cmp r0, #0
+ bls _0224D21A
+_0224D1BA:
+ ldr r0, [sp, #0x20]
+ mov r5, #0
+ cmp r0, #0
+ bls _0224D20A
+_0224D1C2:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x18]
+ bl FUN_02013C6C
+ add r4, r0, #0
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0x14]
+ bl FUN_02013C6C
+ add r6, r0, #0
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ bl FUN_02013C6C
+ add r7, r0, #0
+ ldr r0, [sp, #0x48]
+ add r1, r5, #0
+ bl FUN_02013C6C
+ str r0, [sp]
+ ldr r0, [sp, #0x1c]
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, r7, #0
+ bl MOD06_0224D03C
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0224D23E
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r0, [sp, #0x20]
+ cmp r5, r0
+ blo _0224D1C2
+_0224D20A:
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, [sp, #0x24]
+ str r1, [sp, #0x10]
+ cmp r1, r0
+ blo _0224D1BA
+_0224D21A:
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, [sp, #0x28]
+ str r1, [sp, #0x14]
+ cmp r1, r0
+ blo _0224D1B0
+_0224D22A:
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, [sp, #0x2c]
+ str r1, [sp, #0x18]
+ cmp r1, r0
+ blo _0224D1A6
+_0224D23A:
+ mov r0, #0
+ mvn r0, r0
+_0224D23E:
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224D244
+MOD06_0224D244: ; 0x0224D244
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r1, #4
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD06_0224D270
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224D260
+MOD06_0224D260: ; 0x0224D260
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224D2B8
+ add r0, r4, #0
+ bl FUN_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224D270
+MOD06_0224D270: ; 0x0224D270
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #9
+ mov r2, #0x6b
+ bl FUN_021E5078
+ ldr r0, [r4]
+ mov r1, #9
+ mov r2, #0x7f
+ bl FUN_021E50AC
+ ldr r0, [r4]
+ mov r1, #0xa
+ mov r2, #0xc
+ mov r3, #1
+ bl FUN_021E50D4
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0224D2B4 ; =0x02251F74
+ mov r2, #9
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #0xb
+ add r3, r2, #0
+ bl FUN_021E4EFC
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0224D2B4: .word 0x02251F74
+
+ thumb_func_start MOD06_0224D2B8
+MOD06_0224D2B8: ; 0x0224D2B8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #9
+ bl FUN_021E50A0
+ ldr r0, [r4]
+ mov r1, #9
+ bl FUN_021E50C8
+ ldr r0, [r4]
+ mov r1, #0xa
+ bl FUN_021E5114
+ ldr r0, [r4]
+ mov r1, #0xb
+ bl FUN_021E506C
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224D2E0
+MOD06_0224D2E0: ; 0x0224D2E0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ bl FUN_021E4C24
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_02058738
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ mov r1, #0x1d
+ str r4, [sp, #0x18]
+ bl FUN_021E4C08
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ add r1, sp, #8
+ str r5, [sp, #0x20]
+ bl FUN_02058B5C
+ add r0, r5, #0
+ bl FUN_02058B2C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_02058B4C
+ add r1, r0, #0
+ add r0, r6, #0
+ add r2, sp, #8
+ bl FUN_02059E60
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0205829C
+ add r1, sp, #0x14
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r1, _0224D340 ; =0x02251F60
+ add r0, r4, #0
+ add r2, sp, #8
+ mov r3, #0
+ bl FUN_021E4DC4
+ add sp, #0x24
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0224D340: .word 0x02251F60
+
+ thumb_func_start MOD06_0224D344
+MOD06_0224D344: ; 0x0224D344
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ bl FUN_0206475C
+ add r2, r4, #0
+ add r3, r0, #0
+ add r2, #0x10
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4, #0x1c]
+ bl FUN_02058448
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x1c]
+ bl FUN_02058450
+ str r0, [r4, #8]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, [r4, #0x14]
+ mov r1, #0xb
+ add r2, sp, #0
+ bl FUN_021E4EE4
+ str r0, [r4, #0x20]
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD06_0224D388
+MOD06_0224D388: ; 0x0224D388
+ ldr r3, _0224D390 ; =0x0201F745
+ ldr r0, [r1, #0x20]
+ bx r3
+ nop
+_0224D390: .word 0x0201F745
+
+ thumb_func_start MOD06_0224D394
+MOD06_0224D394: ; 0x0224D394
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _0224D3C2
+ mov r1, #1
+ ldr r0, [r4, #0x20]
+ lsl r1, r1, #0xc
+ bl FUN_0201F854
+ ldr r0, [r4, #0x20]
+ bl FUN_0201F8C0
+ asr r1, r0, #0xb
+ lsr r1, r1, #0x14
+ add r1, r0, r1
+ asr r0, r1, #0xc
+ cmp r0, #7
+ blt _0224D3C2
+ add r0, r5, #0
+ bl FUN_021E4DE4
+_0224D3C2:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224D3C4
+MOD06_0224D3C4: ; 0x0224D3C4
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ mov r0, #2
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x20]
+ add r1, sp, #0
+ bl FUN_0201F7C8
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224D3E8
+MOD06_0224D3E8: ; 0x0224D3E8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0xb
+ mov r1, #8
+ bl FUN_020169D8
+ mov r1, #0
+ mov r2, #8
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r1, _0224D40C ; =MOD06_0224D410
+ add r0, r5, #0
+ add r2, r4, #0
+ bl FUN_0204640C
+ pop {r3, r4, r5, pc}
+ nop
+_0224D40C: .word MOD06_0224D410
+
+ thumb_func_start MOD06_0224D410
+MOD06_0224D410: ; 0x0224D410
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl FUN_02046528
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_0204652C
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ beq _0224D432
+ cmp r1, #1
+ beq _0224D442
+ cmp r1, #2
+ beq _0224D45A
+ b _0224D462
+_0224D432:
+ add r0, r5, #0
+ bl MOD06_0224D46C
+ str r0, [r4]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _0224D462
+_0224D442:
+ ldr r0, _0224D468 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0224D462
+ ldr r0, [r4]
+ bl MOD06_0224D6A4
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _0224D462
+_0224D45A:
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0224D462:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0224D468: .word 0x021C48B8
+
+ thumb_func_start MOD06_0224D46C
+MOD06_0224D46C: ; 0x0224D46C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r4, r0, #0
+ bl FUN_020377A8
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_020377AC
+ str r0, [sp, #0x1c]
+ mov r0, #0xb
+ mov r1, #0x18
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x18
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xc3
+ mov r3, #0xb
+ bl FUN_0200A86C
+ str r0, [r4, #0x10]
+ mov r0, #0xb
+ bl FUN_0200AA80
+ str r0, [r4, #0x14]
+ mov r2, #3
+ str r2, [sp]
+ mov r0, #0x1e
+ str r0, [sp, #4]
+ mov r0, #0x11
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ mov r0, #0xb
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r3, #1
+ bl FUN_02019064
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #0xb
+ add r0, r5, #0
+ mov r1, #3
+ mov r2, #1
+ str r3, [sp, #4]
+ bl FUN_0200CB00
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add r0, r4, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x64
+ mov r1, #0xb
+ bl FUN_020219F4
+ add r6, r0, #0
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200A914
+ add r5, r0, #0
+ ldr r0, [sp, #0x1c]
+ bl FUN_020238F4
+ add r2, r0, #0
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200ABC0
+ ldr r0, [r4, #0x14]
+ add r1, r6, #0
+ add r2, r5, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0x78
+ bl MOD06_0224D6D0
+ mov r1, #0
+ add r3, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r6, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r5, #0
+ bl FUN_02021A20
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200A914
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0x78
+ add r5, r0, #0
+ bl MOD06_0224D6D0
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r5, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r5, #0
+ bl FUN_02021A20
+ mov r0, #0
+ ldr r5, _0224D698 ; =0x02251FAC
+ str r0, [sp, #0x24]
+_0224D576:
+ ldr r0, [r4, #0x10]
+ ldr r1, [r5]
+ bl FUN_0200A914
+ mov r3, #4
+ mov r1, #0
+ ldrsh r3, [r5, r3]
+ add r2, r1, #0
+ add r7, r0, #0
+ bl MOD06_0224D6D0
+ add r3, r0, #0
+ mov r0, #6
+ ldrsh r0, [r5, r0]
+ mov r1, #0
+ add r2, r7, #0
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ bl FUN_0201BD84
+ add r0, r7, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x24]
+ add r5, #8
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #5
+ blt _0224D576
+ mov r0, #0
+ ldr r5, _0224D69C ; =0x02251F8C
+ str r0, [sp, #0x14]
+_0224D5BE:
+ ldr r0, [r4, #0x10]
+ ldr r1, [r5]
+ bl FUN_0200A914
+ mov r3, #4
+ ldrsh r3, [r5, r3]
+ mov r1, #0
+ mov r2, #2
+ add r7, r0, #0
+ bl MOD06_0224D6D0
+ add r3, r0, #0
+ mov r0, #6
+ ldrsh r0, [r5, r0]
+ mov r1, #0
+ add r2, r7, #0
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ bl FUN_0201BD84
+ add r0, r7, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x14]
+ add r5, #8
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, #4
+ blt _0224D5BE
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, _0224D6A0 ; =0x02251FD4
+ str r0, [sp, #0x18]
+_0224D608:
+ ldr r5, [sp, #0x18]
+ mov r7, #0
+_0224D60C:
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x20]
+ add r2, r7, #0
+ bl FUN_0202C12C
+ str r0, [sp, #0x28]
+ ldr r0, [r4, #0x10]
+ ldr r1, [r5]
+ bl FUN_0200A914
+ str r0, [sp, #0x2c]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x14]
+ ldr r2, [sp, #0x28]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r0, [r4, #0x14]
+ ldr r2, [sp, #0x2c]
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ mov r3, #4
+ ldrsh r3, [r5, r3]
+ add r0, r6, #0
+ mov r1, #0
+ mov r2, #2
+ bl MOD06_0224D6D0
+ add r3, r0, #0
+ mov r0, #6
+ ldrsh r0, [r5, r0]
+ mov r1, #0
+ add r2, r6, #0
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ bl FUN_0201BD84
+ ldr r0, [sp, #0x2c]
+ bl FUN_02021A20
+ add r7, r7, #1
+ add r5, #8
+ cmp r7, #4
+ blt _0224D60C
+ ldr r0, [sp, #0x18]
+ add r0, #0x20
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x20]
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ cmp r0, #5
+ blt _0224D608
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_020191D0
+ add r0, r4, #0
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224D698: .word 0x02251FAC
+_0224D69C: .word 0x02251F8C
+_0224D6A0: .word 0x02251FD4
+
+ thumb_func_start MOD06_0224D6A4
+MOD06_0224D6A4: ; 0x0224D6A4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ bl FUN_02019570
+ add r0, r4, #0
+ bl FUN_02019178
+ ldr r0, [r4, #0x10]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x14]
+ bl FUN_0200AB18
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224D6D0
+MOD06_0224D6D0: ; 0x0224D6D0
+ push {r4, r5, r6, lr}
+ add r5, r2, #0
+ add r6, r0, #0
+ add r4, r3, #0
+ cmp r5, #0
+ bne _0224D6E0
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_0224D6E0:
+ add r0, r1, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl FUN_02002E14
+ cmp r5, #1
+ beq _0224D6F4
+ cmp r5, #2
+ beq _0224D6FE
+ b _0224D702
+_0224D6F4:
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ sub r0, r4, r0
+ pop {r4, r5, r6, pc}
+_0224D6FE:
+ sub r0, r4, r0
+ pop {r4, r5, r6, pc}
+_0224D702:
+ bl ErrorHandling
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224D70C
+MOD06_0224D70C: ; 0x0224D70C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ mov r1, #0xc1
+ lsl r1, r1, #2
+ add r5, r0, #0
+ add r7, r2, #0
+ bl FUN_02016998
+ mov r2, #0xc1
+ add r4, r0, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl Call_FillMemWithValue
+ str r5, [r4, #0x18]
+ str r7, [r4, #0x14]
+ str r6, [r4, #8]
+ add r0, r6, #0
+ bl FUN_02027E24
+ bl FUN_0202708C
+ str r0, [r4, #0xc]
+ add r0, r6, #0
+ bl FUN_0206F158
+ str r0, [r4, #0x10]
+ mov r2, #0x81
+ ldr r3, [r4, #0x18]
+ mov r0, #0
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ bl FUN_0200A86C
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD06_0224DBA8
+ add r0, r4, #0
+ bl MOD06_0224DBCC
+ add r0, r4, #0
+ bl MOD06_0224DC3C
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0224D76C
+MOD06_0224D76C: ; 0x0224D76C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ bl MOD06_0224DC28
+ add r0, r4, #0
+ bl MOD06_0224DC50
+ mov r2, #0xc1
+ add r0, r4, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl Call_FillMemWithValue
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224D79C
+MOD06_0224D79C: ; 0x0224D79C
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0xc
+ bls _0224D7AA
+ b _0224DB9A
+_0224D7AA:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224D7B6: ; jump table
+ .short _0224D7D0 - _0224D7B6 - 2 ; case 0
+ .short _0224D80E - _0224D7B6 - 2 ; case 1
+ .short _0224D84E - _0224D7B6 - 2 ; case 2
+ .short _0224D8A6 - _0224D7B6 - 2 ; case 3
+ .short _0224D8DC - _0224D7B6 - 2 ; case 4
+ .short _0224D97E - _0224D7B6 - 2 ; case 5
+ .short _0224D992 - _0224D7B6 - 2 ; case 6
+ .short _0224DA82 - _0224D7B6 - 2 ; case 7
+ .short _0224DAD2 - _0224D7B6 - 2 ; case 8
+ .short _0224DAFE - _0224D7B6 - 2 ; case 9
+ .short _0224DB2A - _0224D7B6 - 2 ; case 10
+ .short _0224DB3E - _0224D7B6 - 2 ; case 11
+ .short _0224DB6C - _0224D7B6 - 2 ; case 12
+_0224D7D0:
+ mov r3, #0x55
+ lsl r3, r3, #2
+ add r0, r4, r3
+ sub r3, r3, #4
+ ldr r1, [r4, #0x14]
+ ldr r2, [r4, #0x18]
+ ldr r3, [r4, r3]
+ bl MOD06_0224DC5C
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl FUN_0200A914
+ add r5, r0, #0
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r2, [r4, #0x18]
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD06_0224DCD8
+ add r0, r5, #0
+ bl FUN_02021A20
+ mov r0, #0xb
+ str r0, [r4]
+ mov r0, #1
+ str r0, [r4, #4]
+ b _0224DB9A
+_0224D80E:
+ ldr r0, [r4, #0xc]
+ ldr r1, _0224DB5C ; =0x02252080
+ mov r2, #0x16
+ bl MOD06_0224E4B4
+ cmp r0, #0
+ beq _0224D848
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl FUN_0200A914
+ add r5, r0, #0
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r2, [r4, #0x18]
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD06_0224DCD8
+ add r0, r5, #0
+ bl FUN_02021A20
+ mov r0, #0xb
+ str r0, [r4]
+ mov r0, #0xc
+ str r0, [r4, #4]
+ b _0224DB9A
+_0224D848:
+ mov r0, #2
+ str r0, [r4]
+ b _0224DB9A
+_0224D84E:
+ mov r2, #0x5a
+ lsl r2, r2, #2
+ add r0, r4, r2
+ sub r2, #0x20
+ ldr r1, [r4, #0x14]
+ ldr r2, [r4, r2]
+ ldr r3, [r4, #0x18]
+ bl MOD06_0224DE60
+ ldr r0, [r4, #0x18]
+ mov r1, #0x5a
+ str r0, [sp]
+ ldr r0, [r4, #0x14]
+ lsl r1, r1, #2
+ str r0, [sp, #4]
+ mov r0, #0x2f
+ lsl r0, r0, #4
+ ldr r2, _0224DB5C ; =0x02252080
+ ldr r3, [r4, #0x10]
+ add r0, r4, r0
+ add r1, r4, r1
+ bl MOD06_0224E3FC
+ mov r1, #0x52
+ mov r0, #0x16
+ lsl r1, r1, #2
+ str r0, [sp]
+ ldr r0, [r4, r1]
+ add r1, #0x3c
+ str r0, [sp, #4]
+ mov r0, #0x2f
+ lsl r0, r0, #4
+ add r0, r4, r0
+ str r0, [sp, #8]
+ ldr r0, _0224DB60 ; =MOD06_0224E410
+ ldr r3, _0224DB5C ; =0x02252080
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x1c]
+ str r0, [sp, #0x10]
+ add r0, r4, r1
+ ldr r1, [r4, #0x14]
+ ldr r2, [r4, #0x18]
+ bl MOD06_0224DFA8
+_0224D8A6:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD06_0224E24C
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl FUN_0200A914
+ add r5, r0, #0
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r2, [r4, #0x18]
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD06_0224DCD8
+ add r0, r5, #0
+ bl FUN_02021A20
+ mov r0, #0xa
+ str r0, [r4]
+ mov r0, #4
+ str r0, [r4, #4]
+ b _0224DB9A
+_0224D8DC:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD06_0224E1E4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0224D942
+ sub r1, r1, #1
+ cmp r0, r1
+ beq _0224D942
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x12
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x14]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r0, #0x61
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD06_0224E274
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldrh r0, [r4, r0]
+ mov r1, #0x55
+ lsl r1, r1, #2
+ str r0, [sp]
+ add r0, r4, r1
+ sub r1, #0xc
+ ldr r1, [r4, r1]
+ ldr r2, [r4, #0x18]
+ ldr r3, _0224DB5C ; =0x02252080
+ bl MOD06_0224DD50
+ mov r0, #0xa
+ str r0, [r4]
+ mov r0, #5
+ str r0, [r4, #4]
+ ldr r0, _0224DB64 ; =0x000005DC
+ bl FUN_020054C8
+ b _0224DB9A
+_0224D942:
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0224D94C
+ b _0224DB9A
+_0224D94C:
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xb
+ bl FUN_0200A914
+ add r5, r0, #0
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r2, [r4, #0x18]
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD06_0224DCD8
+ add r0, r5, #0
+ bl FUN_02021A20
+ mov r0, #0xb
+ str r0, [r4]
+ mov r0, #0xc
+ str r0, [r4, #4]
+ ldr r0, _0224DB64 ; =0x000005DC
+ bl FUN_020054C8
+ b _0224DB9A
+_0224D97E:
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ ldr r1, [r4, #0x14]
+ ldr r2, [r4, #0x18]
+ add r0, r4, r0
+ bl MOD06_0224E470
+ mov r0, #6
+ str r0, [r4]
+ b _0224DB9A
+_0224D992:
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD06_0224E4A4
+ cmp r0, #0
+ bne _0224DA68
+ mov r2, #0x2b
+ lsl r2, r2, #4
+ ldrh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r1, _0224DB5C ; =0x02252080
+ ldr r3, [r4, #0x18]
+ bl MOD06_0224E4E4
+ cmp r0, #0
+ bne _0224D9EA
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #9
+ bl FUN_0200A914
+ add r5, r0, #0
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r2, [r4, #0x18]
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD06_0224DCD8
+ add r0, r5, #0
+ bl FUN_02021A20
+ mov r0, #0xb
+ str r0, [r4]
+ mov r0, #3
+ str r0, [r4, #4]
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD06_0224E498
+ b _0224DB9A
+_0224D9EA:
+ mov r2, #0x2b
+ lsl r2, r2, #4
+ ldrh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ ldr r1, _0224DB5C ; =0x02252080
+ bl MOD06_0224E510
+ cmp r0, #0
+ bne _0224DA32
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xa
+ bl FUN_0200A914
+ add r5, r0, #0
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r2, [r4, #0x18]
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD06_0224DCD8
+ add r0, r5, #0
+ bl FUN_02021A20
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD06_0224E498
+ mov r0, #0xb
+ str r0, [r4]
+ mov r0, #3
+ str r0, [r4, #4]
+ b _0224DB9A
+_0224DA32:
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #8
+ bl FUN_0200A914
+ add r5, r0, #0
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r2, [r4, #0x18]
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD06_0224DCD8
+ add r0, r5, #0
+ bl FUN_02021A20
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD06_0224E498
+ mov r0, #0xb
+ str r0, [r4]
+ mov r0, #7
+ str r0, [r4, #4]
+ b _0224DB9A
+_0224DA68:
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0224DA72
+ b _0224DB9A
+_0224DA72:
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD06_0224E498
+ mov r0, #3
+ str r0, [r4]
+ b _0224DB9A
+_0224DA82:
+ ldr r0, [r4, #0x18]
+ mov r3, #0x2b
+ str r0, [sp]
+ lsl r3, r3, #4
+ ldrh r3, [r4, r3]
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ ldr r2, _0224DB5C ; =0x02252080
+ bl MOD06_0224E520
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldrh r0, [r4, r0]
+ mov r1, #0x55
+ lsl r1, r1, #2
+ str r0, [sp]
+ add r0, r4, r1
+ sub r1, #0xc
+ ldr r1, [r4, r1]
+ ldr r2, [r4, #0x18]
+ ldr r3, _0224DB5C ; =0x02252080
+ bl MOD06_0224DDD8
+ ldr r0, [r4, #0xc]
+ ldr r1, _0224DB5C ; =0x02252080
+ mov r2, #0x16
+ bl MOD06_0224E4B4
+ cmp r0, #0
+ beq _0224DAC8
+ mov r0, #0xb
+ str r0, [r4]
+ mov r0, #8
+ str r0, [r4, #4]
+ b _0224DB9A
+_0224DAC8:
+ mov r0, #0xb
+ str r0, [r4]
+ mov r0, #3
+ str r0, [r4, #4]
+ b _0224DB9A
+_0224DAD2:
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xd
+ bl FUN_0200A914
+ add r5, r0, #0
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r2, [r4, #0x18]
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD06_0224DCD8
+ add r0, r5, #0
+ bl FUN_02021A20
+ mov r0, #0xb
+ str r0, [r4]
+ mov r0, #9
+ str r0, [r4, #4]
+ b _0224DB9A
+_0224DAFE:
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl FUN_0200A914
+ add r5, r0, #0
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r2, [r4, #0x18]
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD06_0224DCD8
+ add r0, r5, #0
+ bl FUN_02021A20
+ mov r0, #0xb
+ str r0, [r4]
+ mov r0, #0xc
+ str r0, [r4, #4]
+ b _0224DB9A
+_0224DB2A:
+ mov r0, #0x55
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD06_0224DD28
+ cmp r0, #0
+ beq _0224DB9A
+ ldr r0, [r4, #4]
+ str r0, [r4]
+ b _0224DB9A
+_0224DB3E:
+ mov r0, #0x55
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD06_0224DD28
+ cmp r0, #0
+ beq _0224DB9A
+ ldr r0, _0224DB68 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0224DB9A
+ ldr r0, [r4, #4]
+ str r0, [r4]
+ b _0224DB9A
+ .align 2, 0
+_0224DB5C: .word 0x02252080
+_0224DB60: .word MOD06_0224E410
+_0224DB64: .word 0x000005DC
+_0224DB68: .word 0x021C48B8
+_0224DB6C:
+ mov r0, #0x55
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD06_0224DCB4
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD06_0224DED8
+ mov r0, #0x61
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD06_0224E174
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD06_0224E498
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, pc}
+_0224DB9A:
+ ldr r0, [r4, #0x1c]
+ bl FUN_0201FDEC
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224DBA8
+MOD06_0224DBA8: ; 0x0224DBA8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ bl LoadPlayerDataAddress
+ add r4, r0, #0
+ bl FUN_02025084
+ mov r1, #0x53
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r4, #0
+ bl FUN_02024FF4
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224DBCC
+MOD06_0224DBCC: ; 0x0224DBCC
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [r4, #0x18]
+ mov r2, #1
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x14]
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #6
+ ldr r2, [r4, #0x18]
+ mov r0, #0
+ lsl r1, r1, #6
+ bl FUN_02002EEC
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x18]
+ mov r1, #3
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x14]
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r1, #0x1a
+ ldr r2, [r4, #0x18]
+ mov r0, #0
+ lsl r1, r1, #4
+ bl FUN_02002ED0
+ ldr r0, [r4, #0x14]
+ mov r1, #3
+ bl FUN_02018744
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224DC28
+MOD06_0224DC28: ; 0x0224DC28
+ push {r3, lr}
+ ldr r0, [r0, #0x14]
+ mov r1, #3
+ bl FUN_02018744
+ mov r0, #0
+ mov r1, #1
+ bl FUN_02054590
+ pop {r3, pc}
+
+ thumb_func_start MOD06_0224DC3C
+MOD06_0224DC3C: ; 0x0224DC3C
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ ldr r2, [r4, #0x18]
+ mov r0, #2
+ add r1, #0x20
+ bl FUN_02008C9C
+ str r0, [r4, #0x1c]
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224DC50
+MOD06_0224DC50: ; 0x0224DC50
+ ldr r3, _0224DC58 ; =0x0201FD59
+ ldr r0, [r0, #0x1c]
+ bx r3
+ nop
+_0224DC58: .word 0x0201FD59
+
+ thumb_func_start MOD06_0224DC5C
+MOD06_0224DC5C: ; 0x0224DC5C
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ cmp r0, #1
+ beq _0224DCAE
+ str r3, [r5, #8]
+ add r0, r2, #0
+ mov r1, #1
+ bl FUN_02018FF4
+ str r0, [r5, #4]
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ mov r0, #0x28
+ str r0, [sp, #0x10]
+ ldr r1, [r5, #4]
+ add r0, r4, #0
+ mov r2, #3
+ mov r3, #2
+ bl FUN_02019064
+ ldr r0, [r5, #4]
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, [r5, #4]
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r0, #1
+ str r0, [r5]
+_0224DCAE:
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224DCB4
+MOD06_0224DCB4: ; 0x0224DCB4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0224DCD6
+ ldr r0, [r4, #4]
+ bl FUN_02019570
+ ldr r0, [r4, #4]
+ bl FUN_02019178
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020191A4
+ mov r0, #0
+ str r0, [r4]
+_0224DCD6:
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224DCD8
+MOD06_0224DCD8: ; 0x0224DCD8
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x10]
+ add r4, r1, #0
+ add r6, r2, #0
+ cmp r0, #0
+ beq _0224DCEC
+ bl ErrorHandling
+_0224DCEC:
+ ldr r0, [r5, #4]
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_02021ACC
+ str r0, [r5, #0x10]
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, [r5, #8]
+ mov r1, #1
+ str r0, [sp, #4]
+ ldr r0, _0224DD24 ; =0x0001020F
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r0, [r5, #4]
+ ldr r2, [r5, #0x10]
+ bl FUN_0201BDE0
+ str r0, [r5, #0xc]
+ ldr r0, [r5, #4]
+ bl FUN_020191D0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_0224DD24: .word 0x0001020F
+
+ thumb_func_start MOD06_0224DD28
+MOD06_0224DD28: ; 0x0224DD28
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0224DD4C
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _0224DD48
+ bl FUN_02021A20
+ mov r0, #0
+ str r0, [r4, #0x10]
+_0224DD48:
+ mov r0, #1
+ pop {r4, pc}
+_0224DD4C:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224DD50
+MOD06_0224DD50: ; 0x0224DD50
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r2, #0
+ str r0, [sp, #8]
+ add r0, r7, #0
+ add r4, r1, #0
+ add r5, r3, #0
+ bl FUN_0200AA80
+ add r6, r0, #0
+ mov r0, #0xc8
+ add r1, r7, #0
+ bl FUN_020219F4
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #7
+ bl FUN_0200A914
+ ldr r1, [sp, #0x28]
+ str r0, [sp, #0x10]
+ add r4, r1, #0
+ mov r0, #0xc
+ mul r4, r0
+ add r2, r5, r4
+ ldr r2, [r2, #4]
+ add r0, r6, #0
+ mov r1, #0
+ add r2, #0x95
+ bl FUN_0200AEA8
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ add r2, r5, r4
+ ldr r2, [r2, #8]
+ add r0, r6, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r2, [r5, r4]
+ add r0, r6, #0
+ mov r1, #2
+ bl FUN_0200B660
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ add r0, r6, #0
+ bl FUN_0200B7B8
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ add r2, r7, #0
+ bl MOD06_0224DCD8
+ add r0, r6, #0
+ bl FUN_0200AB18
+ ldr r0, [sp, #0xc]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224DDD8
+MOD06_0224DDD8: ; 0x0224DDD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r2, #0
+ str r0, [sp, #8]
+ add r0, r7, #0
+ add r4, r1, #0
+ add r5, r3, #0
+ bl FUN_0200AA80
+ add r6, r0, #0
+ mov r0, #0xc8
+ add r1, r7, #0
+ bl FUN_020219F4
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #0xc
+ bl FUN_0200A914
+ ldr r1, [sp, #0x28]
+ str r0, [sp, #0x10]
+ add r4, r1, #0
+ mov r0, #0xc
+ mul r4, r0
+ add r2, r5, r4
+ ldr r2, [r2, #4]
+ add r0, r6, #0
+ mov r1, #0
+ add r2, #0x95
+ bl FUN_0200AEA8
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ add r2, r5, r4
+ ldr r2, [r2, #8]
+ add r0, r6, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r2, [r5, r4]
+ add r0, r6, #0
+ mov r1, #2
+ bl FUN_0200B660
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ add r0, r6, #0
+ bl FUN_0200B7B8
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ add r2, r7, #0
+ bl MOD06_0224DCD8
+ add r0, r6, #0
+ bl FUN_0200AB18
+ ldr r0, [sp, #0xc]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224DE60
+MOD06_0224DE60: ; 0x0224DE60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r6, r0, #0
+ ldr r0, [r6]
+ add r4, r1, #0
+ add r7, r2, #0
+ str r3, [sp, #0x14]
+ cmp r0, #1
+ beq _0224DED2
+ add r0, r3, #0
+ mov r1, #1
+ bl FUN_02018FF4
+ str r0, [r6, #4]
+ mov r0, #0xb
+ str r0, [sp]
+ mov r0, #0xe
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x94
+ str r0, [sp, #0x10]
+ ldr r1, [r6, #4]
+ add r0, r4, #0
+ mov r2, #3
+ mov r3, #1
+ bl FUN_02019064
+ ldr r0, [sp, #0x14]
+ bl FUN_0200AA80
+ str r0, [r6, #8]
+ mov r4, #0
+ add r5, r6, #0
+_0224DEA8:
+ add r1, r4, #0
+ add r0, r7, #0
+ add r1, #0x10
+ bl FUN_0200A914
+ str r0, [r5, #0x10]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _0224DEA8
+ ldr r1, [sp, #0x14]
+ mov r0, #0x20
+ bl FUN_020219F4
+ str r0, [r6, #0xc]
+ ldr r0, [r6, #4]
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #1
+ str r0, [r6]
+_0224DED2:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224DED8
+MOD06_0224DED8: ; 0x0224DED8
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ cmp r0, #0
+ beq _0224DF18
+ mov r4, #0
+ add r5, r6, #0
+_0224DEE6:
+ ldr r0, [r5, #0x10]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _0224DEE6
+ ldr r0, [r6, #0xc]
+ bl FUN_02021A20
+ ldr r0, [r6, #8]
+ bl FUN_0200AB18
+ ldr r0, [r6, #4]
+ bl FUN_02019570
+ ldr r0, [r6, #4]
+ bl FUN_02019178
+ ldr r0, [r6, #4]
+ mov r1, #1
+ bl FUN_020191A4
+ mov r0, #0
+ str r0, [r6]
+_0224DF18:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224DF1C
+MOD06_0224DF1C: ; 0x0224DF1C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r6, #0x95
+ add r4, r2, #0
+ mov r1, #0
+ add r2, r6, #0
+ add r7, r3, #0
+ bl FUN_0200AE38
+ mov r1, #1
+ str r1, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r5, #8]
+ add r2, r4, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r5, #8]
+ mov r1, #2
+ add r2, r7, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, [r5, #4]
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r7, #0
+ add r6, r5, #0
+ add r4, r7, #0
+_0224DF64:
+ ldr r0, [r5, #8]
+ ldr r1, [r5, #0xc]
+ ldr r2, [r6, #0x10]
+ bl FUN_0200B7B8
+ mov r1, #0
+ str r4, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0224DFA4 ; =0x0001020F
+ add r3, r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #4]
+ ldr r2, [r5, #0xc]
+ bl FUN_0201BDE0
+ add r7, r7, #1
+ add r6, r6, #4
+ add r4, #0x10
+ cmp r7, #3
+ blt _0224DF64
+ ldr r0, [r5, #4]
+ mov r1, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224DFA4: .word 0x0001020F
+
+ thumb_func_start MOD06_0224DFA8
+MOD06_0224DFA8: ; 0x0224DFA8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x64
+ add r5, r0, #0
+ ldr r0, [sp, #0x78]
+ add r4, r1, #0
+ str r0, [sp, #0x78]
+ ldr r0, [r5]
+ str r2, [sp, #0x14]
+ str r3, [sp, #0x18]
+ cmp r0, #1
+ bne _0224DFC0
+ b _0224E164
+_0224DFC0:
+ ldr r0, [sp, #0x78]
+ mov r1, #1
+ mov r2, #0x12
+ str r1, [r5]
+ add r0, r0, #1
+ lsl r2, r2, #4
+ str r0, [r5, r2]
+ add r0, r2, #0
+ ldr r3, [sp, #0x80]
+ add r0, #0x10
+ str r3, [r5, r0]
+ ldr r0, [sp, #0x84]
+ add r2, #0x14
+ str r0, [r5, r2]
+ ldr r0, [sp, #0x14]
+ bl FUN_02018FF4
+ str r0, [r5, #4]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0xe
+ str r0, [sp, #4]
+ mov r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0xe8
+ str r0, [sp, #0x10]
+ ldr r1, [r5, #4]
+ add r0, r4, #0
+ mov r2, #3
+ mov r3, #0x11
+ bl FUN_02019064
+ ldr r0, [sp, #0x14]
+ bl FUN_0200AA80
+ mov r1, #0x49
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r1, [sp, #0x14]
+ mov r0, #0x20
+ bl FUN_020219F4
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, [sp, #0x7c]
+ mov r1, #0x10
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x78]
+ mov r7, #0
+ cmp r0, #0
+ bls _0224E084
+ add r6, r5, #0
+ add r4, r5, #0
+_0224E034:
+ mov r0, #0x49
+ ldr r2, [sp, #0x18]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, [r2]
+ mov r1, #0
+ bl FUN_0200B660
+ mov r0, #0x49
+ mov r1, #0x4a
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ ldr r2, [sp, #0x1c]
+ bl FUN_0200B7B8
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0x14]
+ bl FUN_02021ACC
+ add r1, r6, #0
+ add r1, #0xc4
+ str r0, [r1]
+ add r0, r6, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r6, r6, #4
+ str r0, [r4, #0xc]
+ str r7, [r4, #0x10]
+ ldr r0, [sp, #0x18]
+ add r7, r7, #1
+ add r0, #0xc
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x78]
+ add r4, #8
+ cmp r7, r0
+ blo _0224E034
+_0224E084:
+ ldr r0, [sp, #0x78]
+ add r4, r5, #0
+ lsl r6, r0, #2
+ ldr r0, [sp, #0x7c]
+ add r4, #0xc4
+ mov r1, #0x13
+ bl FUN_0200A914
+ str r0, [r4, r6]
+ ldr r0, [sp, #0x78]
+ lsl r1, r0, #3
+ ldr r0, [r4, r6]
+ add r1, r5, r1
+ str r0, [r1, #0xc]
+ ldr r0, [sp, #0x78]
+ str r0, [r1, #0x10]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0200AB18
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ ldr r3, [sp, #0x14]
+ ldr r0, [r5, #4]
+ ldr r1, _0224E168 ; =0x022523A0
+ lsl r3, r3, #0x18
+ str r0, [r1, #0xc]
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ lsr r3, r3, #0x18
+ strh r0, [r1, #0x10]
+ add r0, r5, #0
+ add r0, #0xc
+ str r0, [r1]
+ mov r1, #0
+ ldr r0, _0224E16C ; =0x022523A0
+ add r2, r1, #0
+ bl FUN_020010A8
+ str r0, [r5, #8]
+ ldr r0, [r5, #4]
+ mov r1, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ mov r7, #0x4e
+ mov r4, #0
+ add r6, r5, #0
+ lsl r7, r7, #2
+_0224E0F8:
+ ldr r2, [sp, #0x14]
+ mov r0, #1
+ add r1, r4, #0
+ bl FUN_02008DEC
+ str r0, [r6, r7]
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r4, #4
+ blt _0224E0F8
+ ldr r2, [sp, #0x14]
+ add r0, sp, #0x40
+ add r1, r5, #0
+ bl MOD06_0224E294
+ ldr r0, [sp, #0x88]
+ mov r6, #0
+ str r0, [sp, #0x20]
+ add r0, sp, #0x40
+ str r0, [sp, #0x24]
+ mov r0, #1
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x14]
+ mov r7, #0x56
+ str r0, [sp, #0x3c]
+ mov r0, #3
+ lsl r0, r0, #0x12
+ ldr r4, _0224E170 ; =0x02252074
+ str r6, [sp, #0x34]
+ str r0, [sp, #0x28]
+ lsl r7, r7, #2
+_0224E136:
+ ldrb r0, [r4]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x20
+ bl FUN_0201FF84
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_02020130
+ ldr r0, [r5, r7]
+ mov r1, #1
+ bl FUN_020200BC
+ add r6, r6, #1
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r6, #2
+ blt _0224E136
+_0224E164:
+ add sp, #0x64
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E168: .word 0x022523A0
+_0224E16C: .word 0x022523A0
+_0224E170: .word 0x02252074
+
+ thumb_func_start MOD06_0224E174
+MOD06_0224E174: ; 0x0224E174
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ cmp r0, #0
+ beq _0224E1E2
+ mov r7, #0x56
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_0224E186:
+ ldr r0, [r5, r7]
+ bl FUN_0201FFC8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #2
+ blt _0224E186
+ add r0, r6, #0
+ bl MOD06_0224E36C
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ mov r5, #0
+ cmp r0, #0
+ ble _0224E1C0
+ mov r7, #0x12
+ add r4, r6, #0
+ lsl r7, r7, #4
+_0224E1AC:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_02021A20
+ ldr r0, [r6, r7]
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, r0
+ blt _0224E1AC
+_0224E1C0:
+ mov r1, #0
+ ldr r0, [r6, #8]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, [r6, #4]
+ bl FUN_02019570
+ ldr r0, [r6, #4]
+ bl FUN_02019178
+ ldr r0, [r6, #4]
+ mov r1, #1
+ bl FUN_020191A4
+ mov r0, #1
+ str r0, [r6]
+_0224E1E2:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0224E1E4
+MOD06_0224E1E4: ; 0x0224E1E4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ bl FUN_02001204
+ mov r1, #0
+ add r4, r0, #0
+ mvn r1, r1
+ cmp r4, r1
+ bne _0224E22A
+ ldr r0, [r5, #8]
+ add r1, sp, #0
+ bl FUN_0200143C
+ mov r2, #0x4b
+ add r0, sp, #0
+ lsl r2, r2, #2
+ ldrh r1, [r0]
+ ldrh r0, [r5, r2]
+ cmp r0, r1
+ beq _0224E242
+ strh r1, [r5, r2]
+ add r0, r2, #4
+ ldrh r1, [r5, r2]
+ add r2, #8
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ blx r2
+ ldr r0, _0224E248 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ bl MOD06_0224E39C
+ b _0224E242
+_0224E22A:
+ sub r0, r1, #1
+ cmp r4, r0
+ beq _0224E242
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldrh r2, [r5, r0]
+ sub r0, #0xc
+ ldr r0, [r5, r0]
+ sub r0, r0, #1
+ cmp r2, r0
+ bne _0224E242
+ sub r4, r1, #1
+_0224E242:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0224E248: .word 0x000005DC
+
+ thumb_func_start MOD06_0224E24C
+MOD06_0224E24C: ; 0x0224E24C
+ push {r4, lr}
+ mov r2, #0x13
+ lsl r2, r2, #4
+ add r4, r0, #0
+ sub r1, r2, #4
+ ldr r0, [r4, r2]
+ add r2, r2, #4
+ ldrh r1, [r4, r1]
+ ldr r2, [r4, r2]
+ blx r2
+ ldr r0, [r4, #4]
+ mov r1, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add r0, r4, #0
+ bl MOD06_0224E39C
+ pop {r4, pc}
+
+ thumb_func_start MOD06_0224E274
+MOD06_0224E274: ; 0x0224E274
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224E294
+MOD06_0224E294: ; 0x0224E294
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x2c
+ add r5, r1, #0
+ ldr r1, _0224E368 ; =0x00001388
+ add r6, r0, #0
+ add r4, r2, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ lsr r0, r1, #4
+ str r4, [sp, #8]
+ ldr r0, [r5, r0]
+ mov r1, #0x3e
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02008F34
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, _0224E368 ; =0x00001388
+ sub r1, #0xc
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r4, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x3e
+ mov r2, #0xa
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #0x53
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, _0224E368 ; =0x00001388
+ sub r1, #0xc
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x3e
+ mov r2, #5
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ ldr r0, _0224E368 ; =0x00001388
+ sub r1, #0xc
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x3e
+ mov r2, #6
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x55
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ sub r1, #0xc
+ ldr r0, [r5, r1]
+ bl FUN_02009B04
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009D68
+ ldr r1, _0224E368 ; =0x00001388
+ mov r0, #0
+ mov r3, #0x4f
+ str r1, [sp]
+ mvn r0, r0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ lsr r2, r1, #4
+ ldr r2, [r5, r2]
+ lsl r3, r3, #2
+ str r2, [sp, #0x14]
+ ldr r2, [r5, r3]
+ str r2, [sp, #0x18]
+ add r2, r3, #4
+ ldr r2, [r5, r2]
+ add r3, #8
+ str r2, [sp, #0x1c]
+ ldr r2, [r5, r3]
+ add r3, r1, #0
+ str r2, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, r6, #0
+ add r2, r1, #0
+ bl FUN_02008AA4
+ add sp, #0x2c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0224E368: .word 0x00001388
+
+ thumb_func_start MOD06_0224E36C
+MOD06_0224E36C: ; 0x0224E36C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009C0C
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009E04
+ mov r6, #0x4e
+ mov r4, #0
+ lsl r6, r6, #2
+_0224E38A:
+ ldr r0, [r5, r6]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0224E38A
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224E39C
+MOD06_0224E39C: ; 0x0224E39C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ add r1, sp, #0
+ mov r2, #0
+ bl FUN_02001448
+ add r0, sp, #0
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _0224E3C2
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _0224E3CE
+_0224E3C2:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_0224E3CE:
+ add r0, sp, #0
+ ldrh r2, [r0]
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ sub r1, r1, #7
+ cmp r2, r1
+ blt _0224E3EC
+ add r0, #0x3c
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #4
+ pop {r3, r4, pc}
+_0224E3EC:
+ add r0, #0x3c
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224E3FC
+MOD06_0224E3FC: ; 0x0224E3FC
+ push {r3, r4}
+ ldr r4, [sp, #0xc]
+ str r4, [r0, #4]
+ str r1, [r0, #8]
+ str r2, [r0, #0xc]
+ ldr r1, [sp, #8]
+ str r3, [r0, #0x10]
+ str r1, [r0]
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD06_0224E410
+MOD06_0224E410: ; 0x0224E410
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ cmp r1, #0x16
+ bhs _0224E448
+ add r4, r1, #0
+ mov r0, #0xc
+ mul r4, r0
+ ldr r1, [r5, #0xc]
+ ldr r0, [r5, #0x10]
+ add r1, r1, r4
+ ldr r1, [r1, #4]
+ ldr r2, [r5]
+ add r1, #0x95
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0206EEF8
+ ldr r1, [r5, #0xc]
+ add r3, r0, #0
+ add r2, r1, r4
+ ldr r1, [r2, #4]
+ ldr r0, [r5, #8]
+ ldr r2, [r2, #8]
+ bl MOD06_0224DF1C
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_0224E448:
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ mov r2, #0
+ ldr r0, [r5, #4]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02018540
+ ldr r0, [r5, #4]
+ mov r1, #3
+ bl FUN_02017CD0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224E470
+MOD06_0224E470: ; 0x0224E470
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r2, #0
+ cmp r0, #1
+ beq _0224E492
+ add r0, r1, #0
+ ldr r1, _0224E494 ; =0x02252078
+ mov r2, #0x1f
+ mov r3, #0xb
+ str r4, [sp]
+ bl FUN_02002198
+ str r0, [r5, #4]
+ str r4, [r5, #8]
+ mov r0, #1
+ str r0, [r5]
+_0224E492:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224E494: .word 0x02252078
+
+ thumb_func_start MOD06_0224E498
+MOD06_0224E498: ; 0x0224E498
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _0224E4A2
+ mov r1, #0
+ str r1, [r0]
+_0224E4A2:
+ bx lr
+
+ thumb_func_start MOD06_0224E4A4
+MOD06_0224E4A4: ; 0x0224E4A4
+ ldr r3, _0224E4B0 ; =0x020021AD
+ add r1, r0, #0
+ ldr r0, [r1, #4]
+ ldr r1, [r1, #8]
+ bx r3
+ nop
+_0224E4B0: .word 0x020021AD
+
+ thumb_func_start MOD06_0224E4B4
+MOD06_0224E4B4: ; 0x0224E4B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ ldr r4, _0224E4E0 ; =0x00000000
+ beq _0224E4DA
+_0224E4C0:
+ ldr r1, [r5]
+ add r0, r7, #0
+ mov r2, #1
+ bl FUN_020270D8
+ cmp r0, #1
+ bne _0224E4D2
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224E4D2:
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, r6
+ blo _0224E4C0
+_0224E4DA:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E4E0: .word 0x00000000
+
+ thumb_func_start MOD06_0224E4E4
+MOD06_0224E4E4: ; 0x0224E4E4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ mov r1, #0xc
+ mul r4, r1
+ add r1, r5, r4
+ ldr r1, [r1, #4]
+ add r2, r3, #0
+ add r1, #0x95
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0206EEF8
+ add r1, r5, r4
+ ldr r1, [r1, #8]
+ cmp r0, r1
+ blo _0224E50A
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0224E50A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224E510
+MOD06_0224E510: ; 0x0224E510
+ mov r3, #0xc
+ mul r3, r2
+ ldr r1, [r1, r3]
+ ldr r3, _0224E51C ; =0x020270D9
+ mov r2, #1
+ bx r3
+ .align 2, 0
+_0224E51C: .word 0x020270D9
+
+ thumb_func_start MOD06_0224E520
+MOD06_0224E520: ; 0x0224E520
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r1, #0xc
+ mul r1, r3
+ add r3, r2, r1
+ ldr r4, [r3, #4]
+ ldr r1, [r2, r1]
+ ldr r5, [r3, #8]
+ add r4, #0x95
+ mov r2, #1
+ bl FUN_020271A4
+ lsl r1, r4, #0x10
+ lsl r2, r5, #0x10
+ ldr r3, [sp, #0x10]
+ add r0, r6, #0
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_0206EDD4
+ cmp r0, #1
+ beq _0224E550
+ bl ErrorHandling
+_0224E550:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224E554
+MOD06_0224E554: ; 0x0224E554
+ push {r4, r5, r6, lr}
+ sub sp, #0x20
+ add r6, r1, #0
+ ldr r1, _0224E5C8 ; =0x000001FB
+ add r2, sp, #4
+ add r3, sp, #0
+ add r5, r0, #0
+ bl FUN_0204A9F0
+ cmp r0, #0
+ beq _0224E5C0
+ mov r0, #4
+ mov r1, #0x18
+ bl FUN_020169D8
+ add r4, r0, #0
+ strb r6, [r4, #0xc]
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ strb r0, [r4, #0xe]
+ strb r0, [r4, #0xf]
+ ldr r0, [r5, #0x28]
+ bl FUN_020344FC
+ add r1, r0, #0
+ ldr r0, [sp]
+ add r2, sp, #0x14
+ bl FUN_0204AAD4
+ ldr r1, [sp, #4]
+ add r0, sp, #8
+ bl FUN_021E7EA0
+ add r3, sp, #8
+ ldmia r3!, {r0, r1}
+ add r2, r4, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r1, [r4]
+ ldr r0, [sp, #0x14]
+ add r2, r4, #0
+ add r0, r1, r0
+ str r0, [r4]
+ ldr r1, [r4, #8]
+ ldr r0, [sp, #0x1c]
+ add r0, r1, r0
+ str r0, [r4, #8]
+ ldr r0, [r5, #0x10]
+ ldr r1, _0224E5CC ; =MOD06_0224E5D0
+ bl FUN_0204640C
+ add sp, #0x20
+ pop {r4, r5, r6, pc}
+_0224E5C0:
+ bl ErrorHandling
+ add sp, #0x20
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224E5C8: .word 0x000001FB
+_0224E5CC: .word MOD06_0224E5D0
+
+ thumb_func_start MOD06_0224E5D0
+MOD06_0224E5D0: ; 0x0224E5D0
+ push {r4, r5, r6, lr}
+ sub sp, #0x30
+ add r4, r0, #0
+ bl FUN_02046528
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_0204652C
+ add r4, r0, #0
+ ldrb r1, [r4, #0xf]
+ cmp r1, #5
+ bls _0224E5EC
+ b _0224E74C
+_0224E5EC:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224E5F8: ; jump table
+ .short _0224E604 - _0224E5F8 - 2 ; case 0
+ .short _0224E644 - _0224E5F8 - 2 ; case 1
+ .short _0224E6C4 - _0224E5F8 - 2 ; case 2
+ .short _0224E6F0 - _0224E5F8 - 2 ; case 3
+ .short _0224E702 - _0224E5F8 - 2 ; case 4
+ .short _0224E742 - _0224E5F8 - 2 ; case 5
+_0224E604:
+ ldr r0, _0224E754 ; =0x00000205
+ ldr r1, [r6, #0x2c]
+ bl FUN_021F4BD0
+ ldr r0, [r0]
+ bl FUN_020BC13C
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r5, r0, r1
+ ldr r0, [r6, #0x2c]
+ bl FUN_021F4C88
+ mov r1, #0
+ str r1, [sp]
+ str r5, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ ldr r0, [r6, #0x4c]
+ ldr r1, [r6, #0x50]
+ ldr r3, _0224E754 ; =0x00000205
+ mov r2, #0x10
+ bl FUN_021DA464
+ ldrb r0, [r4, #0xf]
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ b _0224E74C
+_0224E644:
+ add r0, sp, #0x18
+ mov r1, #0
+ str r1, [r0]
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ ldrb r5, [r4, #0xd]
+ mov r1, #0xc
+ ldr r3, [r4]
+ add r2, r5, #0
+ ldr r5, _0224E758 ; =0x022523C0
+ mul r2, r1
+ ldr r2, [r5, r2]
+ add r2, r3, r2
+ str r2, [sp, #0x24]
+ ldrb r5, [r4, #0xd]
+ ldr r3, [r4, #4]
+ add r2, r5, #0
+ ldr r5, _0224E75C ; =0x022523C4
+ mul r2, r1
+ ldr r2, [r5, r2]
+ add r2, r3, r2
+ str r2, [sp, #0x28]
+ ldrb r3, [r4, #0xd]
+ ldr r2, [r4, #8]
+ add r5, r3, #0
+ mul r5, r1
+ ldr r1, _0224E760 ; =0x022523C8
+ add r3, sp, #0x24
+ ldr r1, [r1, r5]
+ add r1, r2, r1
+ str r1, [sp, #0x2c]
+ str r0, [sp]
+ ldr r0, [r6, #0x4c]
+ ldr r2, _0224E754 ; =0x00000205
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ ldr r1, [r6, #0x2c]
+ bl FUN_021E7FBC
+ ldrb r1, [r4, #0xd]
+ add r1, r4, r1
+ strb r0, [r1, #0x10]
+ ldrb r1, [r4, #0xd]
+ add r0, r6, #0
+ add r0, #0xa0
+ add r1, r4, r1
+ ldrb r1, [r1, #0x10]
+ ldr r0, [r0]
+ bl FUN_021E7EEC
+ bl FUN_021E7EC8
+ add r3, r0, #0
+ ldrb r2, [r4, #0xd]
+ ldr r0, [r6, #0x50]
+ mov r1, #0x10
+ bl FUN_021DA4BC
+ ldrb r0, [r4, #0xf]
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ b _0224E74C
+_0224E6C4:
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0xf
+ bhs _0224E6D0
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ b _0224E74C
+_0224E6D0:
+ mov r0, #0
+ strb r0, [r4, #0xe]
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ ldrb r1, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ cmp r1, r0
+ bhs _0224E6E8
+ mov r0, #1
+ strb r0, [r4, #0xf]
+ b _0224E74C
+_0224E6E8:
+ ldrb r0, [r4, #0xf]
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ b _0224E74C
+_0224E6F0:
+ ldr r0, [r6, #0x50]
+ mov r1, #0x10
+ mov r2, #0
+ bl FUN_021DA4EC
+ ldrb r0, [r4, #0xf]
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ b _0224E74C
+_0224E702:
+ ldr r0, [r6, #0x50]
+ mov r1, #0x10
+ bl FUN_021DA58C
+ cmp r0, #0
+ beq _0224E74C
+ ldr r0, [r6, #0x4c]
+ ldr r1, [r6, #0x50]
+ mov r2, #0x10
+ bl FUN_021DA54C
+ ldrb r0, [r4, #0xc]
+ mov r5, #0
+ cmp r0, #0
+ bls _0224E73A
+_0224E720:
+ add r0, r4, r5
+ add r1, r6, #0
+ add r1, #0xa0
+ ldrb r0, [r0, #0x10]
+ ldr r1, [r1]
+ bl FUN_021E7C80
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldrb r0, [r4, #0xc]
+ cmp r5, r0
+ blo _0224E720
+_0224E73A:
+ ldrb r0, [r4, #0xf]
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ b _0224E74C
+_0224E742:
+ bl FUN_02016A18
+ add sp, #0x30
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0224E74C:
+ mov r0, #0
+ add sp, #0x30
+ pop {r4, r5, r6, pc}
+ nop
+_0224E754: .word 0x00000205
+_0224E758: .word 0x022523C0
+_0224E75C: .word 0x022523C4
+_0224E760: .word 0x022523C8
+
+ thumb_func_start MOD06_0224E764
+MOD06_0224E764: ; 0x0224E764
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F1A4
+ cmp r0, #0
+ bne _0224E794
+ mov r0, #0x1f
+ ldr r2, [r4, #0x4c]
+ lsl r0, r0, #4
+ mov r1, #1
+ bl FUN_021DA080
+ add r4, r0, #0
+ mov r1, #1
+ bl FUN_021DA1A4
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_021DA0DC
+ pop {r4, pc}
+_0224E794:
+ mov r0, #0x1f
+ ldr r2, [r4, #0x4c]
+ lsl r0, r0, #4
+ mov r1, #0
+ bl FUN_021DA080
+ mov r1, #1
+ bl FUN_021DA0DC
+ mov r0, #0x1f
+ ldr r2, [r4, #0x4c]
+ lsl r0, r0, #4
+ mov r1, #1
+ bl FUN_021DA080
+ add r4, r0, #0
+ bl FUN_021DA138
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_021DA0DC
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224E7C4
+MOD06_0224E7C4: ; 0x0224E7C4
+ ldr r3, _0224E7D0 ; =0x0204640D
+ ldr r0, [r0, #0x10]
+ ldr r1, _0224E7D4 ; =MOD06_0224E7D8
+ mov r2, #0
+ bx r3
+ nop
+_0224E7D0: .word 0x0204640D
+_0224E7D4: .word MOD06_0224E7D8
+
+ thumb_func_start MOD06_0224E7D8
+MOD06_0224E7D8: ; 0x0224E7D8
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl FUN_02046528
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_02046530
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0224E7FA
+ cmp r0, #1
+ beq _0224E820
+ cmp r0, #2
+ beq _0224E83A
+ b _0224E852
+_0224E7FA:
+ mov r0, #0x1f
+ ldr r2, [r5, #0x4c]
+ lsl r0, r0, #4
+ mov r1, #0
+ bl FUN_021DA080
+ add r5, r0, #0
+ bl FUN_021DA0E8
+ cmp r0, #0
+ beq _0224E852
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_021DA0DC
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0224E852
+_0224E820:
+ mov r0, #0x1f
+ ldr r2, [r5, #0x4c]
+ lsl r0, r0, #4
+ mov r1, #1
+ bl FUN_021DA080
+ mov r1, #0
+ bl FUN_021DA0DC
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0224E852
+_0224E83A:
+ mov r0, #0x1f
+ ldr r2, [r5, #0x4c]
+ lsl r0, r0, #4
+ mov r1, #1
+ bl FUN_021DA080
+ bl FUN_021DA20C
+ cmp r0, #0
+ beq _0224E852
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0224E852:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224E858
+MOD06_0224E858: ; 0x0224E858
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r2, #0
+ bl FUN_02058060
+ add r6, r0, #0
+ add r1, sp, #0
+ bl FUN_02058B5C
+ add r0, r6, #0
+ bl FUN_02058B2C
+ add r5, r0, #0
+ add r0, r6, #0
+ bl FUN_02058B4C
+ add r4, r0, #0
+ add r0, r6, #0
+ bl FUN_020584C4
+ cmp r0, #3
+ bhi _0224E8A8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224E890: ; jump table
+ .short _0224E898 - _0224E890 - 2 ; case 0
+ .short _0224E89C - _0224E890 - 2 ; case 1
+ .short _0224E8A0 - _0224E890 - 2 ; case 2
+ .short _0224E8A4 - _0224E890 - 2 ; case 3
+_0224E898:
+ sub r4, r4, #1
+ b _0224E8AC
+_0224E89C:
+ add r4, r4, #1
+ b _0224E8AC
+_0224E8A0:
+ sub r5, r5, #1
+ b _0224E8AC
+_0224E8A4:
+ add r5, r5, #1
+ b _0224E8AC
+_0224E8A8:
+ bl ErrorHandling
+_0224E8AC:
+ mov r3, #2
+ lsl r1, r5, #0x10
+ lsl r3, r3, #0xe
+ ldr r2, [sp, #4]
+ lsl r4, r4, #0x10
+ add r1, r1, r3
+ add r0, r7, #0
+ add r3, r4, r3
+ bl FUN_021F54D0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0224E8C4
+MOD06_0224E8C4: ; 0x0224E8C4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r1, #0
+ add r6, r0, #0
+ add r1, sp, #0
+ bl FUN_02055350
+ add r0, r6, #0
+ bl FUN_02055320
+ add r5, r0, #0
+ add r0, r6, #0
+ bl FUN_0205532C
+ add r4, r0, #0
+ add r0, r6, #0
+ bl FUN_020552F8
+ cmp r0, #3
+ bhi _0224E910
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224E8F8: ; jump table
+ .short _0224E900 - _0224E8F8 - 2 ; case 0
+ .short _0224E904 - _0224E8F8 - 2 ; case 1
+ .short _0224E908 - _0224E8F8 - 2 ; case 2
+ .short _0224E90C - _0224E8F8 - 2 ; case 3
+_0224E900:
+ sub r4, r4, #1
+ b _0224E914
+_0224E904:
+ add r4, r4, #1
+ b _0224E914
+_0224E908:
+ sub r5, r5, #1
+ b _0224E914
+_0224E90C:
+ add r5, r5, #1
+ b _0224E914
+_0224E910:
+ bl ErrorHandling
+_0224E914:
+ mov r3, #2
+ lsl r1, r5, #0x10
+ lsl r3, r3, #0xe
+ ldr r2, [sp, #4]
+ lsl r4, r4, #0x10
+ add r1, r1, r3
+ add r0, r7, #0
+ add r3, r4, r3
+ bl FUN_021F54D0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0224E92C
+MOD06_0224E92C: ; 0x0224E92C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r1, sp, #0
+ bl FUN_02055350
+ ldr r1, [sp]
+ ldr r2, [sp, #4]
+ ldr r3, [sp, #8]
+ add r0, r4, #0
+ bl FUN_021F54D0
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD06_0224E948
+MOD06_0224E948: ; 0x0224E948
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ str r2, [sp, #8]
+ add r6, r0, #0
+ mov r1, #0
+ mov r2, #0xdc
+ add r4, r3, #0
+ ldr r7, [sp, #0x28]
+ bl Call_FillMemWithValue
+ add r0, r6, #0
+ add r0, #0x78
+ mov r1, #0x8d
+ add r2, r5, #0
+ mov r3, #4
+ bl FUN_021F5268
+ add r1, r6, #0
+ add r0, r6, #0
+ add r1, #0x78
+ bl FUN_021F5400
+ add r0, r6, #0
+ add r0, #0xd8
+ str r4, [r0]
+ add r0, r6, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ mov r4, #0
+ cmp r0, #0
+ bls _0224E9BE
+ add r0, r6, #0
+ add r5, r6, #0
+ str r0, [sp, #0xc]
+ add r0, #0x78
+ add r5, #0x88
+ str r0, [sp, #0xc]
+_0224E994:
+ ldr r3, [sp, #8]
+ mov r0, #4
+ str r0, [sp]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ mov r2, #0x8d
+ add r3, r3, r4
+ str r7, [sp, #4]
+ bl FUN_021F531C
+ add r0, r6, #0
+ add r1, r5, #0
+ bl FUN_021F5424
+ add r0, r6, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, r0
+ blo _0224E994
+_0224E9BE:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224E9C4
+MOD06_0224E9C4: ; 0x0224E9C4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r0, #0x78
+ add r7, r1, #0
+ bl FUN_021F52C8
+ add r0, r6, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ mov r4, #0
+ cmp r0, #0
+ bls _0224E9F6
+ add r5, r6, #0
+ add r5, #0x88
+_0224E9E0:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_021F5358
+ add r0, r6, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, r0
+ blo _0224E9E0
+_0224E9F6:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0224E9F8
+MOD06_0224E9F8: ; 0x0224E9F8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ mov r6, #1
+ mov r4, #0
+ cmp r0, #0
+ bls _0224EA26
+ add r5, r7, #0
+ add r5, #0x88
+_0224EA0C:
+ mov r1, #1
+ add r0, r5, #0
+ lsl r1, r1, #0xc
+ bl FUN_021F53BC
+ and r6, r0
+ add r0, r7, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, r0
+ blo _0224EA0C
+_0224EA26:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224EA2C
+MOD06_0224EA2C: ; 0x0224EA2C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ mov r4, #0
+ cmp r0, #0
+ bls _0224EA58
+ add r5, r6, #0
+ mov r7, #1
+ add r5, #0x88
+ lsl r7, r7, #0xc
+_0224EA42:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_021F5384
+ add r0, r6, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, r0
+ blo _0224EA42
+_0224EA58:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224EA5C
+MOD06_0224EA5C: ; 0x0224EA5C
+ ldr r3, _0224EA60 ; =0x021F5431
+ bx r3
+ .align 2, 0
+_0224EA60: .word 0x021F5431
+
+ thumb_func_start MOD06_0224EA64
+MOD06_0224EA64: ; 0x0224EA64
+ push {r3, r4, r5, lr}
+ add r4, r2, #0
+ add r5, r1, #0
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0xf0
+ bl Call_FillMemWithValue
+ add r0, r4, #0
+ add r0, #0xdc
+ mov r1, #4
+ mov r2, #0x20
+ bl FUN_02016B20
+ add r0, r4, #0
+ add r0, #0xdc
+ mov r1, #3
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0
+ add r3, r1, #0
+ bl MOD06_0224E948
+ ldr r0, [r5, #0x38]
+ add r1, r4, #0
+ bl MOD06_0224E8C4
+ ldr r0, _0224EAA8 ; =0x0000064B
+ bl FUN_020054C8
+ mov r0, #0
+ add r4, #0xec
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224EAA8: .word 0x0000064B
+
+ thumb_func_start MOD06_0224EAAC
+MOD06_0224EAAC: ; 0x0224EAAC
+ ldr r3, _0224EAB8 ; =MOD06_0224E9C4
+ add r0, r2, #0
+ add r2, #0xdc
+ add r1, r2, #0
+ bx r3
+ nop
+_0224EAB8: .word MOD06_0224E9C4
+
+ thumb_func_start MOD06_0224EABC
+MOD06_0224EABC: ; 0x0224EABC
+ push {r4, lr}
+ add r4, r2, #0
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0224EACE
+ cmp r0, #1
+ pop {r4, pc}
+_0224EACE:
+ add r0, r4, #0
+ bl MOD06_0224E9F8
+ cmp r0, #1
+ bne _0224EAEC
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_021F54CC
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ add r4, #0xec
+ add r0, r0, #1
+ str r0, [r4]
+_0224EAEC:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224EAF0
+MOD06_0224EAF0: ; 0x0224EAF0
+ ldr r3, _0224EAF8 ; =MOD06_0224EA5C
+ add r0, r2, #0
+ bx r3
+ nop
+_0224EAF8: .word MOD06_0224EA5C
+
+ thumb_func_start MOD06_0224EAFC
+MOD06_0224EAFC: ; 0x0224EAFC
+ ldr r0, [r0, #4]
+ ldr r3, _0224EB08 ; =0x021D8025
+ ldr r0, [r0, #4]
+ ldr r1, _0224EB0C ; =0x022521D4
+ bx r3
+ nop
+_0224EB08: .word 0x021D8025
+_0224EB0C: .word 0x022521D4
+
+ thumb_func_start MOD06_0224EB10
+MOD06_0224EB10: ; 0x0224EB10
+ ldr r3, _0224EB14 ; =0x021D80A5
+ bx r3
+ .align 2, 0
+_0224EB14: .word 0x021D80A5
+
+ thumb_func_start MOD06_0224EB18
+MOD06_0224EB18: ; 0x0224EB18
+ push {r3, lr}
+ bl FUN_021D80E4
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _0224EB2A
+ mov r0, #1
+ pop {r3, pc}
+_0224EB2A:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224EB30
+MOD06_0224EB30: ; 0x0224EB30
+ push {r3, r4, r5, lr}
+ add r4, r2, #0
+ add r5, r1, #0
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0xf0
+ bl Call_FillMemWithValue
+ add r0, r4, #0
+ add r0, #0xdc
+ mov r1, #4
+ mov r2, #0x20
+ bl FUN_02016B20
+ add r0, r4, #0
+ add r0, #0xdc
+ mov r2, #4
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #8
+ add r3, r2, #0
+ bl MOD06_0224E948
+ ldr r0, [r5, #0x38]
+ add r1, r4, #0
+ bl MOD06_0224E8C4
+ ldr r0, _0224EB74 ; =0x0000064A
+ bl FUN_020054C8
+ mov r0, #0
+ add r4, #0xec
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224EB74: .word 0x0000064A
+
+ thumb_func_start MOD06_0224EB78
+MOD06_0224EB78: ; 0x0224EB78
+ push {r3, r4, r5, lr}
+ add r4, r2, #0
+ add r5, r1, #0
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0xf0
+ bl Call_FillMemWithValue
+ add r0, r4, #0
+ add r0, #0xdc
+ mov r1, #4
+ mov r2, #0x20
+ bl FUN_02016B20
+ add r0, r4, #0
+ add r0, #0xdc
+ mov r2, #4
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #8
+ add r3, r2, #0
+ bl MOD06_0224E948
+ ldr r0, [r5, #0x34]
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD06_0224E858
+ ldr r0, _0224EBC0 ; =0x0000064A
+ bl FUN_020054C8
+ mov r0, #0
+ add r4, #0xec
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+ nop
+_0224EBC0: .word 0x0000064A
+
+ thumb_func_start MOD06_0224EBC4
+MOD06_0224EBC4: ; 0x0224EBC4
+ ldr r3, _0224EBD0 ; =MOD06_0224E9C4
+ add r0, r2, #0
+ add r2, #0xdc
+ add r1, r2, #0
+ bx r3
+ nop
+_0224EBD0: .word MOD06_0224E9C4
+
+ thumb_func_start MOD06_0224EBD4
+MOD06_0224EBD4: ; 0x0224EBD4
+ push {r4, lr}
+ add r4, r2, #0
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0224EBE6
+ cmp r0, #1
+ pop {r4, pc}
+_0224EBE6:
+ add r0, r4, #0
+ bl MOD06_0224E9F8
+ cmp r0, #1
+ bne _0224EC04
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_021F54CC
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ add r4, #0xec
+ add r0, r0, #1
+ str r0, [r4]
+_0224EC04:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224EC08
+MOD06_0224EC08: ; 0x0224EC08
+ ldr r3, _0224EC10 ; =MOD06_0224EA5C
+ add r0, r2, #0
+ bx r3
+ nop
+_0224EC10: .word MOD06_0224EA5C
+
+ thumb_func_start MOD06_0224EC14
+MOD06_0224EC14: ; 0x0224EC14
+ ldr r0, [r0, #4]
+ ldr r3, _0224EC20 ; =0x021D8025
+ ldr r0, [r0, #4]
+ ldr r1, _0224EC24 ; =0x0225218C
+ bx r3
+ nop
+_0224EC20: .word 0x021D8025
+_0224EC24: .word 0x0225218C
+
+ thumb_func_start MOD06_0224EC28
+MOD06_0224EC28: ; 0x0224EC28
+ ldr r0, [r0, #4]
+ ldr r3, _0224EC34 ; =0x021D8025
+ ldr r0, [r0, #4]
+ ldr r1, _0224EC38 ; =0x022521A4
+ bx r3
+ nop
+_0224EC34: .word 0x021D8025
+_0224EC38: .word 0x022521A4
+
+ thumb_func_start MOD06_0224EC3C
+MOD06_0224EC3C: ; 0x0224EC3C
+ ldr r3, _0224EC40 ; =0x021D80A5
+ bx r3
+ .align 2, 0
+_0224EC40: .word 0x021D80A5
+
+ thumb_func_start MOD06_0224EC44
+MOD06_0224EC44: ; 0x0224EC44
+ push {r3, lr}
+ bl FUN_021D80E4
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _0224EC56
+ mov r0, #1
+ pop {r3, pc}
+_0224EC56:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224EC5C
+MOD06_0224EC5C: ; 0x0224EC5C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #4]
+ ldr r1, _0224ECEC ; =0x02252188
+ str r2, [sp, #8]
+ ldrb r2, [r1, #2]
+ add r0, sp, #0x10
+ strb r2, [r0, #2]
+ ldrb r2, [r1, #3]
+ strb r2, [r0, #3]
+ ldrb r2, [r1]
+ strb r2, [r0]
+ ldrb r1, [r1, #1]
+ mov r2, #0x73
+ lsl r2, r2, #2
+ strb r1, [r0, #1]
+ ldr r0, [sp, #8]
+ mov r1, #0
+ bl Call_FillMemWithValue
+ mov r1, #0x6e
+ ldr r0, [sp, #8]
+ lsl r1, r1, #2
+ add r0, r0, r1
+ mov r1, #4
+ mov r2, #0x20
+ bl FUN_02016B20
+ ldr r5, [sp, #8]
+ mov r1, #0x6e
+ add r4, sp, #0x10
+ lsl r1, r1, #2
+ add r0, r5, #0
+ add r0, r0, r1
+ mov r7, #0
+ add r6, sp, #0x10
+ add r4, #2
+ str r0, [sp, #0xc]
+_0224ECA8:
+ ldr r0, [sp, #0xc]
+ mov r3, #2
+ str r0, [sp]
+ ldrb r1, [r4]
+ ldrb r2, [r6]
+ add r0, r5, #0
+ bl MOD06_0224E948
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ ldr r0, [r0, #0x38]
+ bl MOD06_0224E92C
+ add r7, r7, #1
+ add r6, r6, #1
+ add r4, r4, #1
+ add r5, #0xdc
+ cmp r7, #2
+ blt _0224ECA8
+ ldr r0, [sp, #8]
+ mov r1, #0
+ add r0, #0xdc
+ bl FUN_021F54CC
+ ldr r0, _0224ECF0 ; =0x0000064D
+ bl FUN_020054C8
+ mov r1, #0x72
+ ldr r0, [sp, #8]
+ mov r2, #0
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224ECEC: .word 0x02252188
+_0224ECF0: .word 0x0000064D
+
+ thumb_func_start MOD06_0224ECF4
+MOD06_0224ECF4: ; 0x0224ECF4
+ push {r4, r5, r6, lr}
+ mov r0, #0x6e
+ add r5, r2, #0
+ lsl r0, r0, #2
+ mov r4, #0
+ add r6, r5, r0
+_0224ED00:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD06_0224E9C4
+ add r4, r4, #1
+ add r5, #0xdc
+ cmp r4, #2
+ blt _0224ED00
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224ED14
+MOD06_0224ED14: ; 0x0224ED14
+ push {r4, r5, r6, lr}
+ mov r0, #0x72
+ add r4, r2, #0
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r5, r1, #0
+ cmp r0, #0
+ beq _0224ED2A
+ cmp r0, #1
+ beq _0224ED66
+ pop {r4, r5, r6, pc}
+_0224ED2A:
+ add r0, r4, #0
+ bl MOD06_0224E9F8
+ add r6, r0, #0
+ ldr r0, [r5, #0x38]
+ add r1, r4, #0
+ bl MOD06_0224E92C
+ cmp r6, #1
+ bne _0224ED78
+ add r0, r4, #0
+ add r0, #0xdc
+ mov r1, #1
+ bl FUN_021F54CC
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_021F54CC
+ add r1, r4, #0
+ ldr r0, [r5, #0x38]
+ add r1, #0xdc
+ bl MOD06_0224E92C
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_0224ED66:
+ add r0, r4, #0
+ add r0, #0xdc
+ bl MOD06_0224EA2C
+ add r4, #0xdc
+ ldr r0, [r5, #0x38]
+ add r1, r4, #0
+ bl MOD06_0224E92C
+_0224ED78:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224ED7C
+MOD06_0224ED7C: ; 0x0224ED7C
+ push {r3, r4, r5, lr}
+ add r5, r2, #0
+ mov r4, #0
+_0224ED82:
+ add r0, r5, #0
+
+ thumb_func_start MOD06_0224ED84
+MOD06_0224ED84: ; 0x0224ED84
+ bl MOD06_0224EA5C
+ add r4, r4, #1
+ add r5, #0xdc
+ cmp r4, #2
+ blt _0224ED82
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224ED94
+MOD06_0224ED94: ; 0x0224ED94
+ ldr r0, [r0, #4]
+ ldr r3, _0224EDA0 ; =0x021D8025
+ ldr r0, [r0, #4]
+ ldr r1, _0224EDA4 ; =0x022521BC
+ bx r3
+ nop
+_0224EDA0: .word 0x021D8025
+_0224EDA4: .word 0x022521BC
+
+ thumb_func_start MOD06_0224EDA8
+MOD06_0224EDA8: ; 0x0224EDA8
+ ldr r3, _0224EDAC ; =0x021D80A5
+ bx r3
+ .align 2, 0
+_0224EDAC: .word 0x021D80A5
+
+ thumb_func_start MOD06_0224EDB0
+MOD06_0224EDB0: ; 0x0224EDB0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ add r6, r1, #0
+ add r4, r2, #0
+ add r5, r3, #0
+ cmp r0, #0
+ beq _0224EDC8
+ bl ErrorHandling
+_0224EDC8:
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_02055350
+ ldr r2, [sp, #4]
+ ldr r3, [sp, #8]
+ ldr r1, [sp]
+ add r0, r7, #0
+ add r2, r2, r4
+ add r3, r3, r5
+ bl FUN_021F54D0
+ add r0, r7, #0
+ mov r4, #0
+ add r5, r7, #0
+ mov r1, #1
+ add r0, #0xc8
+ str r1, [r0]
+ add r5, #0x78
+ add r6, r4, #0
+_0224EDF0:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl FUN_021F53F8
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, #4
+ blt _0224EDF0
+ add r0, r7, #0
+ mov r1, #1
+ bl FUN_021F54CC
+ ldr r0, _0224EE14 ; =0x00000627
+ bl FUN_020054C8
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224EE14: .word 0x00000627
+
+ thumb_func_start MOD06_0224EE18
+MOD06_0224EE18: ; 0x0224EE18
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r0, #0xc8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0224EE52
+ ldr r5, [sp]
+ mov r4, #1
+ mov r6, #0
+ add r5, #0x78
+ lsl r7, r4, #0xc
+_0224EE2E:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_021F53BC
+ add r6, r6, #1
+ and r4, r0
+ add r5, #0x14
+ cmp r6, #4
+ blt _0224EE2E
+ cmp r4, #1
+ bne _0224EE52
+ ldr r0, [sp]
+ mov r1, #0
+ add r0, #0xc8
+ str r1, [r0]
+ ldr r0, [sp]
+ bl FUN_021F54CC
+_0224EE52:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0224EE54
+MOD06_0224EE54: ; 0x0224EE54
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r1, [sp]
+ str r2, [sp, #4]
+ mov r1, #0
+ mov r2, #0xcc
+ add r7, r0, #0
+ add r5, r3, #0
+ bl Call_FillMemWithValue
+ ldr r1, [sp]
+ add r0, r7, #0
+ bl FUN_021F5400
+ add r4, r7, #0
+ mov r6, #0
+ add r4, #0x78
+_0224EE76:
+ ldr r1, [sp]
+ ldr r2, [r5]
+ ldr r3, [sp, #4]
+ add r0, r4, #0
+ bl FUN_021F5348
+ add r0, r7, #0
+ add r1, r4, #0
+ bl FUN_021F5424
+ add r6, r6, #1
+ add r5, r5, #4
+ add r4, #0x14
+ cmp r6, #4
+ blt _0224EE76
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_021F54CC
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0224EEA0
+MOD06_0224EEA0: ; 0x0224EEA0
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r7, #0
+ add r6, r1, #0
+ mov r4, #0
+ add r5, #0x78
+_0224EEAC:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl FUN_021F5358
+ add r4, r4, #1
+ add r5, #0x14
+ cmp r4, #4
+ blt _0224EEAC
+ add r0, r7, #0
+ mov r1, #0
+ mov r2, #0xcc
+ bl Call_FillMemWithValue
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD06_0224EEC8
+MOD06_0224EEC8: ; 0x0224EEC8
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0xce
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ add r1, sp, #0
+ ldr r0, [r0, #0x38]
+ bl FUN_02055350
+ mov r1, #0xcf
+ lsl r1, r1, #4
+ ldr r2, [sp]
+ ldr r0, [r4, r1]
+ sub r0, r2, r0
+ bne _0224EF10
+ add r0, r1, #4
+ ldr r2, [sp, #4]
+ ldr r0, [r4, r0]
+ cmp r2, r0
+ bge _0224EF10
+ add r0, r1, #0
+ add r0, #8
+ ldr r2, [sp, #8]
+ ldr r0, [r4, r0]
+ cmp r2, r0
+ ble _0224EF10
+ add r0, r1, #0
+ mov r2, #0
+ sub r0, #8
+ str r2, [r4, r0]
+ mov r2, #2
+ lsl r2, r2, #0x10
+ sub r0, r1, #4
+ str r2, [r4, r0]
+ b _0224EF1E
+_0224EF10:
+ mov r1, #2
+ ldr r0, _0224EF34 ; =0x00000CE8
+ lsl r1, r1, #0x10
+ str r1, [r4, r0]
+ lsr r1, r1, #1
+ add r0, r0, #4
+ str r1, [r4, r0]
+_0224EF1E:
+ mov r0, #0xcf
+ lsl r0, r0, #4
+ add r3, sp, #0
+ add r2, r4, r0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0224EF34: .word 0x00000CE8
+
+ thumb_func_start MOD06_0224EF38
+MOD06_0224EF38: ; 0x0224EF38
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD06_0224EEC8
+ mov r2, #0
+ add r1, r4, #0
+_0224EF44:
+ add r0, r1, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0224EF70
+ add r1, r4, #0
+ mov r0, #0xcc
+ mov r3, #0xce
+ add r1, #0x10
+ mul r0, r2
+ lsl r3, r3, #4
+ add r0, r1, r0
+ ldr r1, [r4, r3]
+ add r2, r3, #0
+ add r2, #8
+ add r3, #0xc
+ ldr r1, [r1, #0x38]
+ ldr r2, [r4, r2]
+ ldr r3, [r4, r3]
+ bl MOD06_0224EDB0
+ pop {r4, pc}
+_0224EF70:
+ add r2, r2, #1
+ add r1, #0xcc
+ cmp r2, #0x10
+ blt _0224EF44
+ bl ErrorHandling
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD06_0224EF80
+MOD06_0224EF80: ; 0x0224EF80
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ add r5, #0x10
+_0224EF88:
+ add r0, r5, #0
+ bl MOD06_0224EE18
+ add r4, r4, #1
+ add r5, #0xcc
+ cmp r4, #0x10
+ blt _0224EF88
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224EF98
+MOD06_0224EF98: ; 0x0224EF98
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r2, #0
+ mov r2, #0xd1
+ str r1, [sp, #4]
+ add r0, r5, #0
+ mov r1, #0
+ lsl r2, r2, #4
+ bl Call_FillMemWithValue
+ ldr r0, _0224F024 ; =0x00000CFC
+ mov r1, #4
+ add r0, r5, r0
+ mov r2, #0x20
+ bl FUN_02016B20
+ add r0, r5, #0
+ mov r1, #0x8d
+ mov r2, #8
+ mov r3, #4
+ bl FUN_021F5268
+ mov r7, #0xcd
+ mov r4, #0
+ add r6, r5, #0
+ lsl r7, r7, #4
+_0224EFCC:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x8d
+ add r1, r4, #4
+ mov r2, #0
+ mov r3, #4
+ bl FUN_02006C98
+ str r0, [r6, r7]
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r4, #4
+ blt _0224EFCC
+ add r4, r5, #0
+ mov r7, #0xcd
+ mov r6, #0
+ add r4, #0x10
+ lsl r7, r7, #4
+_0224EFF0:
+ ldr r2, _0224F024 ; =0x00000CFC
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r5, r2
+ add r3, r5, r7
+ bl MOD06_0224EE54
+ add r6, r6, #1
+ add r4, #0xcc
+ cmp r6, #0x10
+ blt _0224EFF0
+ mov r1, #0xce
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ add r1, #0x10
+ ldr r0, [r0, #0x38]
+ add r1, r5, r1
+ bl FUN_02055350
+ ldr r0, _0224F028 ; =0x00000D0C
+ mov r1, #0
+ str r1, [r5, r0]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224F024: .word 0x00000CFC
+_0224F028: .word 0x00000D0C
+
+ thumb_func_start MOD06_0224F02C
+MOD06_0224F02C: ; 0x0224F02C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r2, #0
+ add r4, r5, #0
+ ldr r7, _0224F064 ; =0x00000CFC
+ mov r6, #0
+ add r4, #0x10
+_0224F038:
+ add r0, r4, #0
+ add r1, r5, r7
+ bl MOD06_0224EEA0
+ add r6, r6, #1
+ add r4, #0xcc
+ cmp r6, #0x10
+ blt _0224F038
+ add r0, r5, #0
+ bl FUN_021F52C8
+ mov r6, #0xcd
+ mov r4, #0
+ lsl r6, r6, #4
+_0224F054:
+ ldr r0, [r5, r6]
+ bl FUN_02016A18
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0224F054
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224F064: .word 0x00000CFC
+
+ thumb_func_start MOD06_0224F068
+MOD06_0224F068: ; 0x0224F068
+ push {r4, lr}
+ ldr r1, _0224F0A0 ; =0x00000D0C
+ add r4, r2, #0
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _0224F09E
+ add r0, r1, #0
+ sub r0, #0x28
+ ldr r0, [r4, r0]
+ sub r2, r0, #1
+ add r0, r1, #0
+ sub r0, #0x28
+ str r2, [r4, r0]
+ add r0, r1, #0
+ sub r0, #0x28
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bge _0224F098
+ mov r0, #4
+ sub r1, #0x28
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD06_0224EF38
+_0224F098:
+ add r0, r4, #0
+ bl MOD06_0224EF80
+_0224F09E:
+ pop {r4, pc}
+ .align 2, 0
+_0224F0A0: .word 0x00000D0C
+
+ thumb_func_start MOD06_0224F0A4
+MOD06_0224F0A4: ; 0x0224F0A4
+ push {r3, r4, r5, lr}
+ add r5, r2, #0
+ mov r4, #0
+ add r5, #0x10
+_0224F0AC:
+ add r0, r5, #0
+ bl FUN_021F5430
+ add r4, r4, #1
+ add r5, #0xcc
+ cmp r4, #0x10
+ blt _0224F0AC
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD06_0224F0BC
+MOD06_0224F0BC: ; 0x0224F0BC
+ ldr r0, [r0, #4]
+ ldr r3, _0224F0C8 ; =0x021D8025
+ ldr r0, [r0, #4]
+ ldr r1, _0224F0CC ; =0x022521EC
+ bx r3
+ nop
+_0224F0C8: .word 0x021D8025
+_0224F0CC: .word 0x022521EC
+
+ thumb_func_start MOD06_0224F0D0
+MOD06_0224F0D0: ; 0x0224F0D0
+ ldr r3, _0224F0D4 ; =0x021D80A5
+ bx r3
+ .align 2, 0
+_0224F0D4: .word 0x021D80A5
+
+ thumb_func_start MOD06_0224F0D8
+MOD06_0224F0D8: ; 0x0224F0D8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0224F0EA
+ cmp r0, #1
+ beq _0224F102
+ pop {r3, r4, r5, pc}
+_0224F0EA:
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4]
+ lsl r2, r1, #2
+ ldr r1, _0224F124 ; =0x0225221C
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #1
+ bne _0224F120
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_0224F102:
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4]
+ lsl r2, r1, #2
+ ldr r1, _0224F128 ; =0x02252204
+ ldr r1, [r1, r2]
+ blx r1
+ ldr r0, [r4, #4]
+ mov r1, #1
+ strh r1, [r0]
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0224F120:
+ pop {r3, r4, r5, pc}
+ nop
+_0224F124: .word 0x0225221C
+_0224F128: .word 0x02252204
+
+ thumb_func_start MOD06_0224F12C
+MOD06_0224F12C: ; 0x0224F12C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ add r0, r3, #0
+ mov r1, #0x10
+ add r4, r2, #0
+ bl FUN_02016998
+ add r6, r0, #0
+ add r2, r6, #0
+ mov r1, #0x10
+ mov r0, #0
+_0224F144:
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _0224F144
+ ldr r1, _0224F16C ; =0x02252210
+ lsl r2, r4, #2
+ ldr r1, [r1, r2]
+ add r0, r7, #0
+ blx r1
+ str r0, [r6]
+ str r5, [r6, #4]
+ ldr r0, _0224F170 ; =MOD06_0224F0D8
+ str r4, [r6, #0xc]
+ mov r2, #0
+ add r1, r6, #0
+ strh r2, [r5]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224F16C: .word 0x02252210
+_0224F170: .word MOD06_0224F0D8
.section .data
- ; 0x022398BC
- .incbin "baserom.nds", 0x16b81c, 0x18b64
+ ; 0x0224F174
+ .incbin "baserom.nds", 0x1810D4, 0x32AC
.section .bss
; 0x02252420
diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s
new file mode 100644
index 00000000..39869410
--- /dev/null
+++ b/arm9/modules/07/asm/module_07.s
@@ -0,0 +1,5275 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD07_02211E60
+MOD07_02211E60: ; 0x02211E60
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _02211E88 ; =FUN_02211E94
+ ldr r1, _02211E8C ; =0x00000B84
+ ldr r3, [r5, #0x24]
+ mov r2, #0x64
+ bl FUN_020061E8
+ bl FUN_0201B6C8
+ ldr r2, _02211E8C ; =0x00000B84
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ ldr r0, _02211E90 ; =0x00000B7F
+ str r5, [r4]
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02211E88: .word FUN_02211E94
+_02211E8C: .word 0x00000B84
+_02211E90: .word 0x00000B7F
+
+ thumb_func_start FUN_02211E94
+FUN_02211E94: ; 0x02211E94
+ push {r4, r5, r6, lr}
+ ldr r2, _02211F0C ; =0x00000B7F
+ add r5, r1, #0
+ ldrb r2, [r5, r2]
+ cmp r2, #0
+ beq _02211EAA
+ cmp r2, #1
+ beq _02211EB6
+ cmp r2, #2
+ beq _02211ED8
+ b _02211EE0
+_02211EAA:
+ add r0, r5, #0
+ bl FUN_02211F34
+ ldr r1, _02211F0C ; =0x00000B7F
+ strb r0, [r5, r1]
+ b _02211EE0
+_02211EB6:
+ mov r4, #0x2e
+ lsl r4, r4, #6
+ add r6, r4, #0
+_02211EBC:
+ ldrb r1, [r5, r6]
+ ldr r2, [r5, #4]
+ add r0, r5, #0
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ blx r1
+ cmp r0, #0
+ beq _02211ED2
+ ldrb r1, [r5, r4]
+ add r1, r1, #1
+ strb r1, [r5, r4]
+_02211ED2:
+ cmp r0, #2
+ beq _02211EBC
+ b _02211EE0
+_02211ED8:
+ bl FUN_02212B64
+ cmp r0, #1
+ beq _02211F0A
+_02211EE0:
+ mov r0, #0x2e
+ lsl r0, r0, #6
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _02211EFA
+ add r0, r5, #0
+ bl FUN_02212D30
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0200BC1C
+_02211EFA:
+ ldr r0, [r5]
+ add r0, #0x28
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02211F0A
+ ldr r0, _02211F10 ; =0x04000540
+ mov r1, #1
+ str r1, [r0]
+_02211F0A:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02211F0C: .word 0x00000B7F
+_02211F10: .word 0x04000540
+
+ thumb_func_start FUN_02211F14
+FUN_02211F14: ; 0x02211F14
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _02211F30 ; =0x02214AD8
+ add r3, sp, #0
+ mov r2, #5
+_02211F1E:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02211F1E
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_02211F30: .word 0x02214AD8
+
+ thumb_func_start FUN_02211F34
+FUN_02211F34: ; 0x02211F34
+ push {r4, lr}
+ ldr r1, _02211FE0 ; =0x04000050
+ add r4, r0, #0
+ mov r0, #0
+ strh r0, [r1]
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _02211FE4 ; =0xFFFFE0FF
+ ldr r3, _02211FE8 ; =0x04001000
+ and r2, r1
+ str r2, [r0]
+ ldr r2, [r3]
+ add r0, #0x50
+ and r1, r2
+ str r1, [r3]
+ mov r1, #0
+ strh r1, [r0]
+ add r3, #0x50
+ strh r1, [r3]
+ bl FUN_02211F14
+ ldr r0, [r4]
+ ldr r0, [r0, #0x24]
+ bl FUN_02016B94
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ ldr r0, [r0, #0x24]
+ bl FUN_02002FD0
+ str r0, [r4, #8]
+ ldr r3, [r4]
+ mov r1, #0
+ ldr r3, [r3, #0x24]
+ mov r2, #0x60
+ bl FUN_02003008
+ ldr r0, _02211FEC ; =0x00000B82
+ mov r3, #0
+ strb r3, [r4, r0]
+ sub r1, r0, #1
+ mov r2, #8
+ strb r2, [r4, r1]
+ sub r0, r0, #2
+ strb r3, [r4, r0]
+ ldr r1, [r4]
+ add r0, r1, #0
+ add r0, #0x28
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02211FB8
+ cmp r0, #1
+ beq _02211FBE
+ cmp r0, #2
+ beq _02211FC4
+ b _02211FDA
+_02211FB8:
+ ldr r0, _02211FF0 ; =0x022149A0
+ str r0, [r4, #4]
+ b _02211FDA
+_02211FBE:
+ ldr r0, _02211FF4 ; =0x022149B4
+ str r0, [r4, #4]
+ b _02211FDA
+_02211FC4:
+ add r1, #0x2a
+ ldrb r0, [r1]
+ cmp r0, #3
+ bne _02211FD0
+ ldr r0, _02211FF8 ; =0x02214B00
+ b _02211FD2
+_02211FD0:
+ ldr r0, _02211FFC ; =0x02214B64
+_02211FD2:
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ bl FUN_02214720
+_02211FDA:
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_02211FE0: .word 0x04000050
+_02211FE4: .word 0xFFFFE0FF
+_02211FE8: .word 0x04001000
+_02211FEC: .word 0x00000B82
+_02211FF0: .word 0x022149A0
+_02211FF4: .word 0x022149B4
+_02211FF8: .word 0x02214B00
+_02211FFC: .word 0x02214B64
+
+ thumb_func_start FUN_02212000
+FUN_02212000: ; 0x02212000
+ push {r4, lr}
+ ldr r1, _02212074 ; =0x00000B82
+ add r4, r0, #0
+ ldrb r2, [r4, r1]
+ cmp r2, #0
+ beq _02212016
+ cmp r2, #1
+ beq _02212022
+ cmp r2, #2
+ beq _0221202E
+ b _02212068
+_02212016:
+ bl FUN_02213858
+ add r0, r4, #0
+ bl FUN_02213924
+ b _02212068
+_02212022:
+ bl FUN_02213D30
+ add r0, r4, #0
+ bl FUN_02213F28
+ b _02212068
+_0221202E:
+ mov r2, #0
+ strb r2, [r4, r1]
+ mov r2, #0x20
+ sub r1, r1, #1
+ strb r2, [r4, r1]
+ bl FUN_022139BC
+ add r0, r4, #0
+ bl FUN_0221424C
+ add r0, r4, #0
+ bl FUN_0221469C
+ add r0, r4, #0
+ bl FUN_02213AEC
+ bl FUN_02033E74
+ ldr r1, [r4]
+ mov r0, #0
+ ldr r1, [r1, #0x24]
+ bl FUN_02079A70
+ ldr r0, _02212078 ; =FUN_02212D68
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r0, #1
+ pop {r4, pc}
+_02212068:
+ ldr r0, _02212074 ; =0x00000B82
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02212074: .word 0x00000B82
+_02212078: .word FUN_02212D68
+
+ thumb_func_start FUN_0221207C
+FUN_0221207C: ; 0x0221207C
+ push {r4, lr}
+ ldr r1, _022120F4 ; =0x00000B82
+ add r4, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ beq _02212092
+ cmp r1, #1
+ beq _022120A2
+ cmp r1, #2
+ beq _022120B8
+ b _022120E6
+_02212092:
+ bl FUN_02212D98
+ add r0, r4, #0
+ bl FUN_02212E90
+ bl FUN_02212F2C
+ b _022120E6
+_022120A2:
+ bl FUN_022133B4
+ add r0, r4, #0
+ bl FUN_02212F44
+ bl FUN_02033E74
+ add r0, r4, #0
+ bl FUN_022136B4
+ b _022120E6
+_022120B8:
+ ldr r1, [r4]
+ mov r0, #0
+ ldr r1, [r1, #0x24]
+ bl FUN_02079A70
+ ldr r0, _022120F8 ; =FUN_02212D68
+ add r1, r4, #0
+ bl FUN_02015F10
+ ldr r1, _022120F4 ; =0x00000B82
+ mov r0, #0
+ strb r0, [r4, r1]
+ mov r2, #8
+ sub r0, r1, #6
+ strb r2, [r4, r0]
+ sub r0, r1, #5
+ mov r2, #4
+ strb r2, [r4, r0]
+ mov r0, #0x10
+ sub r1, #0xe
+ str r0, [r4, r1]
+ mov r0, #1
+ pop {r4, pc}
+_022120E6:
+ ldr r0, _022120F4 ; =0x00000B82
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_022120F4: .word 0x00000B82
+_022120F8: .word FUN_02212D68
+
+ thumb_func_start FUN_022120FC
+FUN_022120FC: ; 0x022120FC
+ push {r4, lr}
+ ldr r1, _0221216C ; =0x00000B82
+ add r4, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ beq _02212112
+ cmp r1, #1
+ beq _02212122
+ cmp r1, #2
+ beq _02212132
+ b _02212160
+_02212112:
+ bl FUN_02212D98
+ add r0, r4, #0
+ bl FUN_02212E90
+ bl FUN_02212F2C
+ b _02212160
+_02212122:
+ bl FUN_022133B4
+ add r0, r4, #0
+ bl FUN_02213484
+ bl FUN_02033E74
+ b _02212160
+_02212132:
+ ldr r1, [r4]
+ mov r0, #0
+ ldr r1, [r1, #0x24]
+ bl FUN_02079A70
+ ldr r0, _02212170 ; =FUN_02212D68
+ add r1, r4, #0
+ bl FUN_02015F10
+ ldr r1, _0221216C ; =0x00000B82
+ mov r0, #0
+ strb r0, [r4, r1]
+ mov r2, #4
+ sub r0, r1, #6
+ strb r2, [r4, r0]
+ sub r0, r1, #5
+ mov r2, #2
+ strb r2, [r4, r0]
+ mov r0, #0xc
+ sub r1, #0xe
+ str r0, [r4, r1]
+ mov r0, #1
+ pop {r4, pc}
+_02212160:
+ ldr r0, _0221216C ; =0x00000B82
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_0221216C: .word 0x00000B82
+_02212170: .word FUN_02212D68
+
+ thumb_func_start FUN_02212174
+FUN_02212174: ; 0x02212174
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _02212184
+ mov r0, #0
+ pop {r4, pc}
+_02212184:
+ ldr r1, _022121A8 ; =0x00000B81
+ add r0, r1, #1
+ ldrb r2, [r4, r1]
+ ldrb r0, [r4, r0]
+ cmp r2, r0
+ bne _0221219A
+ mov r2, #0
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_0221219A:
+ add r0, r1, #1
+ ldrb r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_022121A8: .word 0x00000B81
+
+ thumb_func_start FUN_022121AC
+FUN_022121AC: ; 0x022121AC
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl FUN_02017B48
+ cmp r0, #0x18
+ bgt _02212248
+ ldr r1, _02212370 ; =0x00000B82
+ mov r2, #0
+ add r0, r1, #0
+ strb r2, [r4, r1]
+ sub r0, #0xa
+ strh r2, [r4, r0]
+ sub r1, #8
+ strh r2, [r4, r1]
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ mov r3, #0x18
+ bl FUN_0201AEE4
+ mov r2, #0
+ add r3, r2, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ sub r3, #0x18
+ bl FUN_0201AEE4
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0221309C
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_0221309C
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_0221309C
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_0221309C
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02213354
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02213354
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_02213354
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02213354
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02212248:
+ ldr r3, _02212374 ; =0x00000B74
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, r3]
+ mov r1, #3
+ mov r2, #2
+ bl FUN_0201AEE4
+ ldr r3, _02212374 ; =0x00000B74
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, r3]
+ mov r1, #2
+ mov r2, #1
+ bl FUN_0201AEE4
+ ldr r3, _02212370 ; =0x00000B82
+ mov r1, #0
+ ldrb r0, [r4, r3]
+ add r2, r3, #0
+ sub r2, #0xe
+ add r0, r0, #1
+ strb r0, [r4, r3]
+ ldr r5, [r4, r2]
+ ldrb r2, [r4, r3]
+ add r3, r5, #0
+ add r0, r4, #0
+ mul r3, r2
+ mov r2, #1
+ lsl r2, r2, #8
+ sub r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add r3, r1, #0
+ bl FUN_0221309C
+ ldr r2, _02212374 ; =0x00000B74
+ mov r1, #1
+ ldr r3, [r4, r2]
+ add r2, #0xe
+ add r5, r3, #0
+ ldrb r2, [r4, r2]
+ add r0, r4, #0
+ mov r3, #0
+ mul r5, r2
+ add r2, r1, #0
+ add r2, #0xff
+ sub r2, r5, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0221309C
+ ldr r2, _02212374 ; =0x00000B74
+ mov r1, #2
+ ldr r3, [r4, r2]
+ add r2, #0xe
+ add r5, r3, #0
+ ldrb r2, [r4, r2]
+ add r0, r4, #0
+ mov r3, #0
+ mul r5, r2
+ add r2, r1, #0
+ add r2, #0xfe
+ sub r2, r2, r5
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0221309C
+ ldr r2, _02212374 ; =0x00000B74
+ mov r1, #3
+ ldr r3, [r4, r2]
+ add r2, #0xe
+ add r5, r3, #0
+ ldrb r2, [r4, r2]
+ add r0, r4, #0
+ mov r3, #0
+ mul r5, r2
+ add r2, r1, #0
+ add r2, #0xfd
+ sub r2, r2, r5
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0221309C
+ ldr r2, _02212374 ; =0x00000B74
+ mov r1, #0
+ ldr r3, [r4, r2]
+ add r2, #0xe
+ add r5, r3, #0
+ ldrb r2, [r4, r2]
+ add r0, r4, #0
+ add r3, r1, #0
+ mul r5, r2
+ mov r2, #1
+ lsl r2, r2, #8
+ sub r2, r5, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_02213354
+ ldr r2, _02212374 ; =0x00000B74
+ mov r1, #1
+ ldr r3, [r4, r2]
+ add r2, #0xe
+ add r5, r3, #0
+ ldrb r2, [r4, r2]
+ add r0, r4, #0
+ mov r3, #0
+ mul r5, r2
+ add r2, r1, #0
+ add r2, #0xff
+ sub r2, r5, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_02213354
+ ldr r2, _02212374 ; =0x00000B74
+ mov r1, #2
+ ldr r3, [r4, r2]
+ add r2, #0xe
+ add r5, r3, #0
+ ldrb r2, [r4, r2]
+ add r0, r4, #0
+ mov r3, #0
+ mul r5, r2
+ add r2, r1, #0
+ add r2, #0xfe
+ sub r2, r2, r5
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_02213354
+ ldr r2, _02212374 ; =0x00000B74
+ add r0, r4, #0
+ ldr r3, [r4, r2]
+ add r2, #0xe
+ ldrb r2, [r4, r2]
+ add r4, r3, #0
+ mov r1, #3
+ mul r4, r2
+ add r2, r1, #0
+ add r2, #0xfd
+ sub r2, r2, r4
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ mov r3, #0
+ bl FUN_02213354
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212370: .word 0x00000B82
+_02212374: .word 0x00000B74
+
+ thumb_func_start FUN_02212378
+FUN_02212378: ; 0x02212378
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ bl FUN_022137A4
+ cmp r0, #0
+ bne _02212394
+ ldr r0, _02212574 ; =0x00000B82
+ ldrb r1, [r5, r0]
+ cmp r1, #0x18
+ bls _02212394
+ mov r1, #0
+ strb r1, [r5, r0]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02212394:
+ ldr r0, _02212574 ; =0x00000B82
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ bne _022123B4
+ ldr r0, [r5]
+ add r0, #0x28
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _022123AE
+ ldr r0, _02212578 ; =0x00000715
+ bl FUN_020054C8
+ b _022123B4
+_022123AE:
+ ldr r0, _0221257C ; =0x00000852
+ bl FUN_020054C8
+_022123B4:
+ ldr r0, _02212574 ; =0x00000B82
+ ldrb r1, [r5, r0]
+ cmp r1, #0x18
+ bne _02212450
+ ldr r0, [r5, #0xc]
+ mov r1, #3
+ mov r2, #0
+ mov r3, #0x18
+ bl FUN_0201AEE4
+ mov r2, #0
+ add r3, r2, #0
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ sub r3, #0x18
+ bl FUN_0201AEE4
+ mov r1, #3
+ ldr r0, [r5, #0xc]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0201AEE4
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ mov r2, #3
+ mov r3, #0
+ bl FUN_0201AEE4
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0221309C
+ mov r2, #0
+ add r0, r5, #0
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_0221309C
+ mov r2, #0
+ add r0, r5, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_0221309C
+ mov r2, #0
+ add r0, r5, #0
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_0221309C
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02213354
+ mov r2, #0
+ add r0, r5, #0
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02213354
+ mov r2, #0
+ add r0, r5, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_02213354
+ mov r2, #0
+ add r0, r5, #0
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02213354
+ b _02212568
+_02212450:
+ blo _02212454
+ b _02212568
+_02212454:
+ sub r0, r0, #6
+ ldrsb r4, [r5, r0]
+ bl FUN_0201B9EC
+ add r1, r4, #0
+ bl _s32_div_f
+ lsr r0, r4, #0x1f
+ add r0, r4, r0
+ asr r0, r0, #1
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, _02212580 ; =0x00000B7D
+ ldrsb r4, [r5, r0]
+ bl FUN_0201B9EC
+ add r1, r4, #0
+ bl _s32_div_f
+ lsr r0, r4, #0x1f
+ add r0, r4, r0
+ asr r0, r0, #1
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r6, #0
+ bge _02212494
+ ldr r0, _02212584 ; =0x00000B78
+ ldrsh r0, [r5, r0]
+ cmp r0, #0
+ blt _022124A0
+_02212494:
+ cmp r6, #0
+ ble _022124AA
+ ldr r0, _02212584 ; =0x00000B78
+ ldrsh r0, [r5, r0]
+ cmp r0, #0
+ ble _022124AA
+_022124A0:
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r6
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+_022124AA:
+ cmp r4, #0
+ bge _022124B6
+ ldr r0, _02212588 ; =0x00000B7A
+ ldrsh r0, [r5, r0]
+ cmp r0, #0
+ blt _022124C2
+_022124B6:
+ cmp r4, #0
+ ble _022124CC
+ ldr r0, _02212588 ; =0x00000B7A
+ ldrsh r0, [r5, r0]
+ cmp r0, #0
+ ble _022124CC
+_022124C2:
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r4
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+_022124CC:
+ add r3, r6, #0
+ ldr r0, [r5, #0xc]
+ mov r1, #3
+ mov r2, #0
+ add r3, #0x18
+ bl FUN_0201AEE4
+ add r3, r6, #0
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ mov r2, #0
+ sub r3, #0x18
+ bl FUN_0201AEE4
+ mov r1, #3
+ ldr r0, [r5, #0xc]
+ add r2, r1, #0
+ add r3, r4, #0
+ bl FUN_0201AEE4
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ mov r2, #3
+ add r3, r4, #0
+ bl FUN_0201AEE4
+ add r0, r5, #0
+ mov r1, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl FUN_0221309C
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r6, #0
+ add r3, r4, #0
+ bl FUN_0221309C
+ add r0, r5, #0
+ mov r1, #2
+ add r2, r6, #0
+ add r3, r4, #0
+ bl FUN_0221309C
+ add r0, r5, #0
+ mov r1, #3
+ add r2, r6, #0
+ add r3, r4, #0
+ bl FUN_0221309C
+ add r0, r5, #0
+ mov r1, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl FUN_02213354
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r6, #0
+ add r3, r4, #0
+ bl FUN_02213354
+ add r0, r5, #0
+ mov r1, #2
+ add r2, r6, #0
+ add r3, r4, #0
+ bl FUN_02213354
+ add r0, r5, #0
+ mov r1, #3
+ add r2, r6, #0
+ add r3, r4, #0
+ bl FUN_02213354
+ ldr r0, _02212584 ; =0x00000B78
+ strh r6, [r5, r0]
+ add r0, r0, #2
+ strh r4, [r5, r0]
+_02212568:
+ ldr r0, _02212574 ; =0x00000B82
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02212574: .word 0x00000B82
+_02212578: .word 0x00000715
+_0221257C: .word 0x00000852
+_02212580: .word 0x00000B7D
+_02212584: .word 0x00000B78
+_02212588: .word 0x00000B7A
+
+ thumb_func_start FUN_0221258C
+FUN_0221258C: ; 0x0221258C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, _022126A4 ; =0x00000B82
+ ldrb r0, [r4, r0]
+ cmp r0, #8
+ bne _022125B4
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ ldr r3, _022126A8 ; =0x00007FFF
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ bl FUN_0200E1D0
+_022125B4:
+ ldr r0, _022126A4 ; =0x00000B82
+ ldrb r0, [r4, r0]
+ cmp r0, #8
+ blo _022125D0
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _022125D0
+ ldr r0, _022126AC ; =0x00000B7F
+ mov r1, #2
+ strb r1, [r4, r0]
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, pc}
+_022125D0:
+ ldr r0, _022126A4 ; =0x00000B82
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _022125DE
+ ldr r0, _022126B0 ; =0x00000719
+ bl FUN_020054C8
+_022125DE:
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ mov r2, #1
+ mov r3, #0x10
+ bl FUN_0201AEE4
+ mov r1, #2
+ ldr r0, [r4, #0xc]
+ add r2, r1, #0
+ mov r3, #0x10
+ bl FUN_0201AEE4
+ ldr r2, _022126A4 ; =0x00000B82
+ mov r1, #0
+ ldrb r0, [r4, r2]
+ add r3, r1, #0
+ add r0, r0, #1
+ strb r0, [r4, r2]
+ ldrb r2, [r4, r2]
+ add r0, r4, #0
+ lsl r2, r2, #4
+ neg r2, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0221309C
+ ldr r2, _022126A4 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #1
+ mov r3, #0
+ lsl r2, r2, #4
+ neg r2, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0221309C
+ ldr r2, _022126A4 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0
+ lsl r2, r2, #0x14
+ asr r2, r2, #0x10
+ bl FUN_0221309C
+ ldr r2, _022126A4 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #3
+ mov r3, #0
+ lsl r2, r2, #0x14
+ asr r2, r2, #0x10
+ bl FUN_0221309C
+ ldr r2, _022126A4 ; =0x00000B82
+ mov r1, #0
+ ldrb r2, [r4, r2]
+ add r0, r4, #0
+ add r3, r1, #0
+ lsl r2, r2, #4
+ neg r2, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_02213354
+ ldr r2, _022126A4 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #1
+ mov r3, #0
+ lsl r2, r2, #4
+ neg r2, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_02213354
+ ldr r2, _022126A4 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0
+ lsl r2, r2, #0x14
+ asr r2, r2, #0x10
+ bl FUN_02213354
+ ldr r2, _022126A4 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #3
+ mov r3, #0
+ lsl r2, r2, #0x14
+ asr r2, r2, #0x10
+ bl FUN_02213354
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_022126A4: .word 0x00000B82
+_022126A8: .word 0x00007FFF
+_022126AC: .word 0x00000B7F
+_022126B0: .word 0x00000719
+
+ thumb_func_start FUN_022126B4
+FUN_022126B4: ; 0x022126B4
+ ldr r1, _022126C0 ; =0x00000B81
+ mov r2, #0x10
+ strb r2, [r0, r1]
+ mov r0, #2
+ bx lr
+ nop
+_022126C0: .word 0x00000B81
+
+ thumb_func_start FUN_022126C4
+FUN_022126C4: ; 0x022126C4
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02212BD4
+ cmp r0, #1
+ ldr r0, [r4]
+ bne _022126E8
+ add r0, #0x2a
+ ldrb r0, [r0]
+ cmp r0, #1
+ ldr r0, _02212700 ; =0x00000B7E
+ bne _022126E2
+ mov r1, #0
+ strb r1, [r4, r0]
+ b _022126FC
+_022126E2:
+ mov r1, #1
+ strb r1, [r4, r0]
+ b _022126FC
+_022126E8:
+ add r0, #0x2a
+ ldrb r0, [r0]
+ cmp r0, #1
+ ldr r0, _02212700 ; =0x00000B7E
+ bne _022126F8
+ mov r1, #1
+ strb r1, [r4, r0]
+ b _022126FC
+_022126F8:
+ mov r1, #0
+ strb r1, [r4, r0]
+_022126FC:
+ mov r0, #2
+ pop {r4, pc}
+ .align 2, 0
+_02212700: .word 0x00000B7E
+
+ thumb_func_start FUN_02212704
+FUN_02212704: ; 0x02212704
+ push {r3, lr}
+ ldr r1, _0221271C ; =0x00000B7E
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ bne _02212714
+ bl FUN_02212720
+ pop {r3, pc}
+_02212714:
+ bl FUN_02212824
+ pop {r3, pc}
+ nop
+_0221271C: .word 0x00000B7E
+
+ thumb_func_start FUN_02212720
+FUN_02212720: ; 0x02212720
+ push {r3, r4, r5, lr}
+ ldr r3, _02212814 ; =0x00000B82
+ add r4, r0, #0
+ ldrb r3, [r4, r3]
+ mov r1, #2
+ ldr r0, [r4, #0xc]
+ lsl r5, r3, #1
+ ldr r3, _02212818 ; =0x02214960
+ add r2, r1, #0
+ ldrb r3, [r3, r5]
+ bl FUN_0201AEE4
+ ldr r3, _02212814 ; =0x00000B82
+ ldr r0, [r4, #0xc]
+ ldrb r3, [r4, r3]
+ mov r1, #3
+ mov r2, #2
+ lsl r5, r3, #1
+ ldr r3, _02212818 ; =0x02214960
+ ldrb r3, [r3, r5]
+ bl FUN_0201AEE4
+ ldr r2, _02212814 ; =0x00000B82
+ mov r1, #0
+ ldrb r2, [r4, r2]
+ add r0, r4, #0
+ lsl r3, r2, #1
+ ldr r2, _0221281C ; =0x02214961
+ ldrb r2, [r2, r3]
+ add r3, r1, #0
+ bl FUN_0221309C
+ ldr r2, _02212814 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #1
+ lsl r3, r2, #1
+ ldr r2, _0221281C ; =0x02214961
+ ldrb r2, [r2, r3]
+ mov r3, #0
+ bl FUN_0221309C
+ ldr r2, _02212814 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #2
+ lsl r3, r2, #1
+ ldr r2, _0221281C ; =0x02214961
+ ldrb r2, [r2, r3]
+ mov r3, #0
+ bl FUN_0221309C
+ ldr r2, _02212814 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #3
+ lsl r3, r2, #1
+ ldr r2, _0221281C ; =0x02214961
+ ldrb r2, [r2, r3]
+ mov r3, #0
+ bl FUN_0221309C
+ ldr r2, _02212814 ; =0x00000B82
+ mov r1, #0
+ ldrb r2, [r4, r2]
+ add r0, r4, #0
+ lsl r3, r2, #1
+ ldr r2, _0221281C ; =0x02214961
+ ldrb r2, [r2, r3]
+ add r3, r1, #0
+ bl FUN_02213354
+ ldr r2, _02212814 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #1
+ lsl r3, r2, #1
+ ldr r2, _0221281C ; =0x02214961
+ ldrb r2, [r2, r3]
+ mov r3, #0
+ bl FUN_02213354
+ ldr r2, _02212814 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #2
+ lsl r3, r2, #1
+ ldr r2, _0221281C ; =0x02214961
+ ldrb r2, [r2, r3]
+ mov r3, #0
+ bl FUN_02213354
+ ldr r2, _02212814 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #3
+ lsl r3, r2, #1
+ ldr r2, _0221281C ; =0x02214961
+ ldrb r2, [r2, r3]
+ mov r3, #0
+ bl FUN_02213354
+ ldr r0, _02212814 ; =0x00000B82
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _022127FA
+ ldr r0, _02212820 ; =0x00000853
+ bl FUN_020054C8
+_022127FA:
+ ldr r0, _02212814 ; =0x00000B82
+ ldrb r1, [r4, r0]
+ cmp r1, #5
+ bne _0221280A
+ mov r1, #0
+ strb r1, [r4, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0221280A:
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02212814: .word 0x00000B82
+_02212818: .word 0x02214960
+_0221281C: .word 0x02214961
+_02212820: .word 0x00000853
+
+ thumb_func_start FUN_02212824
+FUN_02212824: ; 0x02212824
+ push {r3, r4, r5, lr}
+ ldr r3, _02212948 ; =0x00000B82
+ add r4, r0, #0
+ ldrb r3, [r4, r3]
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ lsl r5, r3, #1
+ ldr r3, _0221294C ; =0x02214960
+ mov r2, #1
+ ldrb r3, [r3, r5]
+ bl FUN_0201AEE4
+ ldr r3, _02212948 ; =0x00000B82
+ ldr r0, [r4, #0xc]
+ ldrb r3, [r4, r3]
+ mov r1, #3
+ mov r2, #1
+ lsl r5, r3, #1
+ ldr r3, _0221294C ; =0x02214960
+ ldrb r3, [r3, r5]
+ bl FUN_0201AEE4
+ ldr r2, _02212948 ; =0x00000B82
+ mov r1, #0
+ ldrb r2, [r4, r2]
+ add r0, r4, #0
+ lsl r3, r2, #1
+ ldr r2, _02212950 ; =0x02214961
+ ldrb r2, [r2, r3]
+ add r3, r1, #0
+ neg r2, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0221309C
+ ldr r2, _02212948 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #1
+ lsl r3, r2, #1
+ ldr r2, _02212950 ; =0x02214961
+ ldrb r2, [r2, r3]
+ mov r3, #0
+ neg r2, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0221309C
+ ldr r2, _02212948 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #2
+ lsl r3, r2, #1
+ ldr r2, _02212950 ; =0x02214961
+ ldrb r2, [r2, r3]
+ mov r3, #0
+ neg r2, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0221309C
+ ldr r2, _02212948 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #3
+ lsl r3, r2, #1
+ ldr r2, _02212950 ; =0x02214961
+ ldrb r2, [r2, r3]
+ mov r3, #0
+ neg r2, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0221309C
+ ldr r2, _02212948 ; =0x00000B82
+ mov r1, #0
+ ldrb r2, [r4, r2]
+ add r0, r4, #0
+ lsl r3, r2, #1
+ ldr r2, _02212950 ; =0x02214961
+ ldrb r2, [r2, r3]
+ add r3, r1, #0
+ neg r2, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_02213354
+ ldr r2, _02212948 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #1
+ lsl r3, r2, #1
+ ldr r2, _02212950 ; =0x02214961
+ ldrb r2, [r2, r3]
+ mov r3, #0
+ neg r2, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_02213354
+ ldr r2, _02212948 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #2
+ lsl r3, r2, #1
+ ldr r2, _02212950 ; =0x02214961
+ ldrb r2, [r2, r3]
+ mov r3, #0
+ neg r2, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_02213354
+ ldr r2, _02212948 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r2, [r4, r2]
+ mov r1, #3
+ lsl r3, r2, #1
+ ldr r2, _02212950 ; =0x02214961
+ ldrb r2, [r2, r3]
+ mov r3, #0
+ neg r2, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_02213354
+ ldr r0, _02212948 ; =0x00000B82
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _0221292E
+ ldr r0, _02212954 ; =0x00000853
+ bl FUN_020054C8
+_0221292E:
+ ldr r0, _02212948 ; =0x00000B82
+ ldrb r1, [r4, r0]
+ cmp r1, #5
+ bne _0221293E
+ mov r1, #0
+ strb r1, [r4, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0221293E:
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02212948: .word 0x00000B82
+_0221294C: .word 0x02214960
+_02212950: .word 0x02214961
+_02212954: .word 0x00000853
+
+ thumb_func_start FUN_02212958
+FUN_02212958: ; 0x02212958
+ ldr r1, _02212964 ; =0x00000B81
+ mov r2, #0x10
+ strb r2, [r0, r1]
+ mov r0, #2
+ bx lr
+ nop
+_02212964: .word 0x00000B81
+
+ thumb_func_start FUN_02212968
+FUN_02212968: ; 0x02212968
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ ldr r0, _022129F0 ; =0x00000B82
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _022129AC
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ add r3, r0, #0
+ ldr r2, [r0]
+ ldr r1, _022129F4 ; =0xFFFF1FFF
+ add r3, #0x48
+ and r2, r1
+ lsr r1, r0, #0xd
+ orr r1, r2
+ str r1, [r0]
+ ldrh r5, [r3]
+ mov r2, #0x3f
+ mov r1, #0x1f
+ bic r5, r2
+ orr r5, r1
+ mov r1, #0x20
+ orr r1, r5
+ strh r1, [r3]
+ add r0, #0x4a
+ ldrh r3, [r0]
+ mov r1, #0x1d
+ bic r3, r2
+ orr r1, r3
+ strh r1, [r0]
+_022129AC:
+ ldr r3, _022129F0 ; =0x00000B82
+ ldrb r1, [r4, r3]
+ cmp r1, #0x10
+ bne _022129CC
+ mov r0, #0
+ mov r1, #0x20
+ strb r0, [r4, r3]
+ sub r0, r3, #1
+ strb r1, [r4, r0]
+ lsl r2, r1, #0x15
+ ldr r1, [r2]
+ ldr r0, _022129F4 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_022129CC:
+ mov r2, #0x5f
+ sub r2, r2, r1
+ add r1, #0x60
+ lsl r1, r1, #0x18
+ mov r6, #0xff
+ ldr r0, _022129F8 ; =0x04000040
+ lsl r5, r2, #8
+ lsl r2, r6, #8
+ and r2, r5
+ lsr r1, r1, #0x18
+ strh r6, [r0]
+ orr r1, r2
+ strh r1, [r0, #4]
+ ldrb r0, [r4, r3]
+ add r0, r0, #1
+ strb r0, [r4, r3]
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022129F0: .word 0x00000B82
+_022129F4: .word 0xFFFF1FFF
+_022129F8: .word 0x04000040
+
+ thumb_func_start FUN_022129FC
+FUN_022129FC: ; 0x022129FC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02212A34 ; =0x0000071A
+ bl FUN_020054C8
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C644
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C644
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C5C0
+ ldr r0, _02212A38 ; =0x00000B81
+ mov r1, #0x20
+ strb r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_02212A34: .word 0x0000071A
+_02212A38: .word 0x00000B81
+
+ thumb_func_start FUN_02212A3C
+FUN_02212A3C: ; 0x02212A3C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02212A5C ; =0x0000071A
+ bl FUN_020054C8
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, _02212A60 ; =0x00000B81
+ mov r1, #0x40
+ strb r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_02212A5C: .word 0x0000071A
+_02212A60: .word 0x00000B81
+
+ thumb_func_start FUN_02212A64
+FUN_02212A64: ; 0x02212A64
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_02212BD4
+ cmp r0, #1
+ ldr r0, [r4]
+ bne _02212AA8
+ add r0, #0x2a
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02212A92
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ mov r2, #2
+ bl FUN_02003210
+ b _02212ADA
+_02212A92:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ mov r1, #1
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl FUN_02003210
+ b _02212ADA
+_02212AA8:
+ add r0, #0x2a
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02212AC6
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ mov r1, #1
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl FUN_02003210
+ b _02212ADA
+_02212AC6:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ mov r2, #2
+ bl FUN_02003210
+_02212ADA:
+ ldr r0, _02212AEC ; =0x0000071B
+ bl FUN_020054C8
+ ldr r0, _02212AF0 ; =0x00000B81
+ mov r1, #0x40
+ strb r1, [r4, r0]
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_02212AEC: .word 0x0000071B
+_02212AF0: .word 0x00000B81
+
+ thumb_func_start FUN_02212AF4
+FUN_02212AF4: ; 0x02212AF4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02212B40 ; =0x00000B82
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _02212B06
+ ldr r0, _02212B44 ; =0x00000719
+ bl FUN_020054C8
+_02212B06:
+ ldr r1, _02212B40 ; =0x00000B82
+ ldrb r0, [r4, r1]
+ cmp r0, #0x10
+ bne _02212B1C
+ mov r0, #0
+ strb r0, [r4, r1]
+ mov r2, #0x40
+ sub r0, r1, #1
+ strb r2, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_02212B1C:
+ add r0, r0, #1
+ strb r0, [r4, r1]
+ ldrb r2, [r4, r1]
+ mov r1, #0x10
+ add r0, r4, #0
+ sub r1, r1, r2
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ bl FUN_022141CC
+ ldr r1, _02212B40 ; =0x00000B82
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ bl FUN_02213B20
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02212B40: .word 0x00000B82
+_02212B44: .word 0x00000719
+
+ thumb_func_start FUN_02212B48
+FUN_02212B48: ; 0x02212B48
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ mov r0, #1
+ ldr r1, [r1, #0x24]
+ bl FUN_02079A70
+ ldr r0, _02212B60 ; =0x00000B7F
+ mov r1, #2
+ strb r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_02212B60: .word 0x00000B7F
+
+ thumb_func_start FUN_02212B64
+FUN_02212B64: ; 0x02212B64
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _02212B76
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02212B76:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ ldr r0, [r4]
+ add r0, #0x28
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02212B9C
+ add r0, r4, #0
+ bl FUN_02212E64
+ add r0, r4, #0
+ bl FUN_022137DC
+ add r0, r4, #0
+ bl FUN_02213380
+ b _02212BA8
+_02212B9C:
+ add r0, r4, #0
+ bl FUN_022138F8
+ add r0, r4, #0
+ bl FUN_02214274
+_02212BA8:
+ add r0, r4, #0
+ bl FUN_02212CEC
+ bl FUN_0201C29C
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02003038
+ ldr r0, [r4, #8]
+ bl FUN_02002FEC
+ ldr r0, [r4]
+ mov r1, #1
+ add r0, #0x2b
+ strb r1, [r0]
+ add r0, r5, #0
+ bl FUN_0200621C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start FUN_02212BD4
+FUN_02212BD4: ; 0x02212BD4
+ push {r3, lr}
+ bl FUN_02031190
+ bl FUN_020313CC
+ cmp r0, #3
+ bhi _02212BFE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02212BEE: ; jump table
+ .short _02212BF6 - _02212BEE - 2 ; case 0
+ .short _02212BFA - _02212BEE - 2 ; case 1
+ .short _02212BF6 - _02212BEE - 2 ; case 2
+ .short _02212BFA - _02212BEE - 2 ; case 3
+_02212BF6:
+ mov r0, #1
+ pop {r3, pc}
+_02212BFA:
+ mov r0, #0
+ pop {r3, pc}
+_02212BFE:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start FUN_02212C04
+FUN_02212C04: ; 0x02212C04
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r0, #0
+ str r1, [sp]
+ ldr r1, [r5]
+ mov r0, #0x40
+ ldr r1, [r1, #0x24]
+ add r4, r2, #0
+ bl FUN_0201C24C
+ ldr r0, [r5]
+ ldr r0, [r0, #0x24]
+ bl FUN_0200BB14
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ bl FUN_0200BB34
+ mov r1, #0x65
+ lsl r1, r1, #2
+ add r2, sp, #0x18
+ ldr r3, _02212C9C ; =0x02214AB8
+ str r0, [r5, r1]
+ ldmia r3!, {r0, r1}
+ add r6, r2, #0
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r3, _02212CA0 ; =0x0221498C
+ add r2, sp, #4
+ ldmia r3!, {r0, r1}
+ add r7, r2, #0
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r1, r6, #0
+ str r0, [r2]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ str r4, [sp, #4]
+ sub r0, r0, #4
+ ldr r0, [r5, r0]
+ add r2, r7, #0
+ mov r3, #0x10
+ bl FUN_0200BB6C
+ mov r1, #0x19
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200BBF0
+ mov r1, #0x19
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ ldr r2, [sp]
+ bl FUN_0200BF60
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02212C9C: .word 0x02214AB8
+_02212CA0: .word 0x0221498C
+
+ thumb_func_start FUN_02212CA4
+FUN_02212CA4: ; 0x02212CA4
+ push {lr}
+ sub sp, #0x34
+ add r2, r0, #0
+ mov r0, #0
+ add r3, sp, #0
+ strh r0, [r3]
+ strh r0, [r3, #2]
+ strh r0, [r3, #4]
+ strh r0, [r3, #6]
+ ldr r3, [r1, #0x14]
+ str r3, [sp, #8]
+ ldr r3, [r1, #0x18]
+ str r3, [sp, #0xc]
+ mov r3, #1
+ str r3, [sp, #0x10]
+ ldr r3, [r1]
+ str r3, [sp, #0x14]
+ ldr r3, [r1, #4]
+ str r3, [sp, #0x18]
+ ldr r3, [r1, #8]
+ str r3, [sp, #0x1c]
+ ldr r3, [r1, #0xc]
+ str r3, [sp, #0x20]
+ ldr r1, [r1, #0x10]
+ str r1, [sp, #0x2c]
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #0x30]
+ ldr r0, [r2, r1]
+ add r1, r1, #4
+ ldr r1, [r2, r1]
+ add r2, sp, #0
+ bl FUN_0200C154
+ add sp, #0x34
+ pop {pc}
+
+ thumb_func_start FUN_02212CEC
+FUN_02212CEC: ; 0x02212CEC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ mov r4, #0
+ cmp r0, #0
+ bls _02212D16
+ mov r7, #0x21
+ add r5, r6, #0
+ lsl r7, r7, #4
+_02212D02:
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0200C3DC
+ ldr r0, [r6, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blo _02212D02
+_02212D16:
+ mov r1, #0x19
+ lsl r1, r1, #4
+ ldr r0, [r6, r1]
+ add r1, r1, #4
+ ldr r1, [r6, r1]
+ bl FUN_0200C398
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_0200BD04
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start FUN_02212D30
+FUN_02212D30: ; 0x02212D30
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r4, #0
+ cmp r0, #0
+ bls _02212D64
+ mov r7, #0x66
+ lsl r7, r7, #2
+ add r6, r7, #0
+ add r6, #0x78
+_02212D48:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, r7]
+ mov r1, #1
+ ldr r0, [r0]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, [r5, r6]
+ cmp r4, r0
+ blo _02212D48
+_02212D64:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start FUN_02212D68
+FUN_02212D68: ; 0x02212D68
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_0201AB60
+ ldr r0, [r4, #8]
+ bl FUN_0200372C
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ ldr r3, _02212D90 ; =0x027E0000
+ ldr r1, _02212D94 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ nop
+_02212D90: .word 0x027E0000
+_02212D94: .word 0x00003FF8
+
+ thumb_func_start FUN_02212D98
+FUN_02212D98: ; 0x02212D98
+ push {r4, r5, lr}
+ sub sp, #0x64
+ ldr r5, _02212E54 ; =0x0221496C
+ add r3, sp, #0x54
+ add r4, r0, #0
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r5, _02212E58 ; =0x02214A2C
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #3
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl FUN_02018744
+ mov r1, #3
+ add r3, r1, #0
+ ldr r0, [r4, #0xc]
+ mov r2, #0
+ add r3, #0xfd
+ bl FUN_0201AEE4
+ ldr r5, _02212E5C ; =0x02214A48
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl FUN_02018744
+ mov r3, #0xff
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ mov r2, #0
+ mvn r3, r3
+ bl FUN_0201AEE4
+ ldr r5, _02212E60 ; =0x02214A64
+ 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, #1
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02018744
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ add sp, #0x64
+ pop {r4, r5, pc}
+ nop
+_02212E54: .word 0x0221496C
+_02212E58: .word 0x02214A2C
+_02212E5C: .word 0x02214A48
+_02212E60: .word 0x02214A64
+
+ thumb_func_start FUN_02212E64
+FUN_02212E64: ; 0x02212E64
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x1f
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02212E90
+FUN_02212E90: ; 0x02212E90
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r4, r0, #0
+ str r1, [sp, #8]
+ ldr r0, [r4]
+ mov r3, #1
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x6c
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #4
+ ldr r0, [r0, #0x24]
+ mov r3, #1
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x6c
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #2
+ ldr r0, [r0, #0x24]
+ add r3, r1, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x6c
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #3
+ ldr r0, [r0, #0x24]
+ add r3, r1, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x6c
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r4]
+ mov r1, #1
+ ldr r0, [r0, #0x24]
+ add r3, r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x6c
+ bl FUN_02006930
+ mov r1, #0
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ mov r3, #0x60
+ bl FUN_02003108
+ ldr r1, _02212F28 ; =0x000018C6
+ mov r0, #1
+ bl FUN_02017FE4
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02212F28: .word 0x000018C6
+
+ thumb_func_start FUN_02212F2C
+FUN_02212F2C: ; 0x02212F2C
+ push {r3, lr}
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _02212F40 ; =0x04000050
+ mov r1, #3
+ mov r2, #0x1c
+ mov r3, #0x17
+ bl G2x_SetBlendAlpha_
+ pop {r3, pc}
+ .align 2, 0
+_02212F40: .word 0x04000050
+
+ thumb_func_start FUN_02212F44
+FUN_02212F44: ; 0x02212F44
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ ldr r4, _02213014 ; =0x022149E0
+ add r3, sp, #0
+ add r6, r0, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r1, r2, #0
+ add r0, r6, #0
+ mov r2, #0x15
+ bl FUN_02212C04
+ add r0, r6, #0
+ bl FUN_0221301C
+ ldr r4, _02213018 ; =0x02214C64
+ mov r7, #0
+ add r5, r6, #0
+_02212F72:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_02212CA4
+ mov r1, #0x66
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r7, r7, #1
+ add r4, #0x1c
+ add r5, r5, #4
+ cmp r7, #0xc
+ blo _02212F72
+ mov r1, #0
+ mov r2, #0xff
+ add r0, r6, #0
+ mvn r2, r2
+ add r3, r1, #0
+ bl FUN_0221309C
+ mov r2, #0xff
+ add r0, r6, #0
+ mov r1, #1
+ mvn r2, r2
+ mov r3, #0
+ bl FUN_0221309C
+ mov r1, #2
+ add r2, r1, #0
+ add r0, r6, #0
+ add r2, #0xfe
+ mov r3, #0
+ bl FUN_0221309C
+ mov r1, #3
+ add r2, r1, #0
+ add r0, r6, #0
+ add r2, #0xfd
+ mov r3, #0
+ bl FUN_0221309C
+ add r0, r6, #0
+ bl FUN_022131C0
+ mov r0, #0x21
+ mov r1, #0xc
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+ add r0, r6, #0
+ bl FUN_022132CC
+ mov r1, #0
+ mov r2, #0xff
+ add r0, r6, #0
+ mvn r2, r2
+ add r3, r1, #0
+ bl FUN_02213354
+ mov r2, #0xff
+ add r0, r6, #0
+ mov r1, #1
+ mvn r2, r2
+ mov r3, #0
+ bl FUN_02213354
+ mov r1, #2
+ add r2, r1, #0
+ add r0, r6, #0
+ add r2, #0xfe
+ mov r3, #0
+ bl FUN_02213354
+ mov r1, #3
+ add r2, r1, #0
+ add r0, r6, #0
+ add r2, #0xfd
+ mov r3, #0
+ bl FUN_02213354
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02213014: .word 0x022149E0
+_02213018: .word 0x02214C64
+
+ thumb_func_start FUN_0221301C
+FUN_0221301C: ; 0x0221301C
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02213098 ; =0x0000B807
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #8]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x1b
+ mov r3, #0x90
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, _02213098 ; =0x0000B807
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x6c
+ mov r3, #8
+ bl FUN_0200C06C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02213098 ; =0x0000B807
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x1b
+ mov r3, #0x8f
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02213098 ; =0x0000B807
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x1b
+ mov r3, #0x91
+ bl FUN_0200C13C
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02213098: .word 0x0000B807
+
+ thumb_func_start FUN_0221309C
+FUN_0221309C: ; 0x0221309C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ ldr r4, _022130F8 ; =0x02214950
+ str r2, [sp]
+ ldrb r5, [r4]
+ str r3, [sp, #4]
+ add r3, sp, #8
+ strb r5, [r3]
+ ldrb r5, [r4, #1]
+ add r2, sp, #8
+ mov r7, #0
+ strb r5, [r3, #1]
+ ldrb r5, [r4, #2]
+ ldrb r4, [r4, #3]
+ add r6, r0, r1
+ strb r5, [r3, #2]
+ strb r4, [r3, #3]
+ ldrb r2, [r2, r1]
+ add r4, r7, #0
+ lsl r2, r2, #2
+ add r5, r0, r2
+_022130C6:
+ ldr r1, _022130FC ; =0x00000B64
+ mov r0, #0x66
+ ldrb r1, [r6, r1]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r2, r1, r4
+ ldr r1, [sp]
+ add r1, r1, r2
+ ldr r2, _02213100 ; =0x00000B68
+ lsl r1, r1, #0x10
+ ldrb r3, [r6, r2]
+ ldr r2, [sp, #4]
+ asr r1, r1, #0x10
+ add r2, r2, r3
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r7, r7, #1
+ add r4, #0x13
+ add r5, r5, #4
+ cmp r7, #3
+ blo _022130C6
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022130F8: .word 0x02214950
+_022130FC: .word 0x00000B64
+_02213100: .word 0x00000B68
+
+ thumb_func_start FUN_02213104
+FUN_02213104: ; 0x02213104
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ add r0, r1, #0
+ str r1, [sp]
+ str r2, [sp, #4]
+ add r7, r3, #0
+ bl FUN_0206B9AC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r5, #0
+ ldr r0, [sp, #4]
+ add r4, r5, #0
+ cmp r0, #0
+ ble _022131BC
+ lsl r0, r7, #2
+ add r6, r6, r0
+_0221312A:
+ lsl r0, r4, #2
+ add r1, r6, r0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_0200C5C0
+ ldr r0, [sp, #8]
+ cmp r0, r4
+ bls _022131B0
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ mov r1, #5
+ mov r2, #0
+ add r7, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022131B0
+ add r0, r7, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _022131B0
+ add r0, r7, #0
+ bl FUN_0207C2D4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #6
+ bne _02213184
+ lsl r0, r5, #2
+ add r1, r6, r0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #3
+ bl FUN_0200C5C0
+ b _022131AA
+_02213184:
+ cmp r0, #7
+ beq _0221319A
+ lsl r0, r5, #2
+ add r1, r6, r0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #2
+ bl FUN_0200C5C0
+ b _022131AA
+_0221319A:
+ lsl r0, r5, #2
+ add r1, r6, r0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_0200C5C0
+_022131AA:
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+_022131B0:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r0, [sp, #4]
+ cmp r4, r0
+ blt _0221312A
+_022131BC:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start FUN_022131C0
+FUN_022131C0: ; 0x022131C0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r2, [r4]
+ add r1, r2, #0
+ add r1, #0x29
+ ldrb r1, [r1]
+ cmp r1, #0
+ ldr r1, [r2, #4]
+ bne _022131EA
+ mov r2, #6
+ mov r3, #0
+ bl FUN_02213104
+ ldr r1, [r4]
+ mov r2, #6
+ ldr r1, [r1, #8]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl FUN_02213104
+ pop {r4, pc}
+_022131EA:
+ mov r2, #3
+ mov r3, #0
+ bl FUN_02213104
+ ldr r1, [r4]
+ mov r2, #3
+ ldr r1, [r1, #0xc]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl FUN_02213104
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldr r1, [r1, #8]
+ mov r2, #3
+ mov r3, #6
+ bl FUN_02213104
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldr r1, [r1, #0x10]
+ mov r2, #3
+ mov r3, #9
+ bl FUN_02213104
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start FUN_02213220
+FUN_02213220: ; 0x02213220
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r4, r0, #0
+ mov r0, #0
+ add r5, r4, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r7, r2, #0
+ add r5, #0x10
+ add r6, r1, #0
+ ldr r0, [r4, #0xc]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #2
+ bl FUN_020190EC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r2, r7, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, _022132C0 ; =0x00000B44
+ ldr r0, [r4, r0]
+ str r0, [sp, #0x10]
+ mov r0, #0x65
+ str r5, [sp, #0x14]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200CA40
+ str r0, [sp, #0x18]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r1, _022132C4 ; =0x0000B807
+ bl FUN_0200C334
+ mov r1, #0x3e
+ lsl r2, r6, #4
+ lsl r1, r1, #4
+ sub r1, r1, r2
+ lsl r1, r1, #5
+ str r0, [sp, #0x1c]
+ mov r0, #0
+ str r1, [sp, #0x24]
+ mov r1, #2
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x28]
+ str r0, [sp, #0x2c]
+ str r0, [sp, #0x34]
+ mov r0, #1
+ str r1, [sp, #0x30]
+ str r0, [sp, #0x38]
+ ldr r0, [r4]
+ lsl r6, r6, #2
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #0x3c]
+ ldr r0, _022132C8 ; =0x00000B48
+ add r4, r4, r0
+ add r0, sp, #0x10
+ bl FUN_020117E8
+ str r0, [r4, r6]
+ ldr r0, [r4, r6]
+ mov r1, #0
+ bl FUN_02011A60
+ add r0, r5, #0
+ bl FUN_02019178
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022132C0: .word 0x00000B44
+_022132C4: .word 0x0000B807
+_022132C8: .word 0x00000B48
+
+ thumb_func_start FUN_022132CC
+FUN_022132CC: ; 0x022132CC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ mov r0, #8
+ ldr r1, [r1, #0x24]
+ bl FUN_02011744
+ ldr r1, _02213348 ; =0x00000B44
+ str r0, [r4, r1]
+ ldr r2, [r4]
+ add r0, r4, #0
+ ldr r2, [r2, #0x14]
+ mov r1, #0
+ bl FUN_02213220
+ ldr r2, [r4]
+ add r0, r4, #0
+ ldr r2, [r2, #0x18]
+ mov r1, #2
+ bl FUN_02213220
+ ldr r2, [r4]
+ add r0, r2, #0
+ add r0, #0x29
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _0221331A
+ ldr r2, [r2, #0x1c]
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02213220
+ ldr r2, [r4]
+ add r0, r4, #0
+ ldr r2, [r2, #0x20]
+ mov r1, #3
+ bl FUN_02213220
+ pop {r4, pc}
+_0221331A:
+ ldr r2, [r2, #0x14]
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02213220
+ ldr r2, [r4]
+ add r0, r4, #0
+ ldr r2, [r2, #0x18]
+ mov r1, #3
+ bl FUN_02213220
+ ldr r0, _0221334C ; =0x00000B4C
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_020119D0
+ ldr r0, _02213350 ; =0x00000B54
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_020119D0
+ pop {r4, pc}
+ nop
+_02213348: .word 0x00000B44
+_0221334C: .word 0x00000B4C
+_02213350: .word 0x00000B54
+
+ thumb_func_start FUN_02213354
+FUN_02213354: ; 0x02213354
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r1, r2, #0
+ add r2, r3, #0
+ add r4, r0, #0
+ lsl r0, r5, #2
+ add r0, r4, r0
+ ldr r3, _0221337C ; =0x00000B48
+ add r4, r4, r5
+ add r5, r3, #0
+ ldr r0, [r0, r3]
+ add r5, #0x24
+ add r3, #0x28
+ ldrb r5, [r4, r5]
+ ldrb r3, [r4, r3]
+ add r1, r1, r5
+ add r2, r2, r3
+ bl FUN_020118C4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221337C: .word 0x00000B48
+
+ thumb_func_start FUN_02213380
+FUN_02213380: ; 0x02213380
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, [r7]
+ add r0, #0x28
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022133AA
+ ldr r6, _022133AC ; =0x00000B48
+ mov r4, #0
+ add r5, r7, #0
+_02213394:
+ ldr r0, [r5, r6]
+ bl FUN_02011870
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blo _02213394
+ ldr r0, _022133B0 ; =0x00000B44
+ ldr r0, [r7, r0]
+ bl FUN_020117BC
+_022133AA:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022133AC: .word 0x00000B48
+_022133B0: .word 0x00000B44
+
+ thumb_func_start FUN_022133B4
+FUN_022133B4: ; 0x022133B4
+ push {r3, r4}
+ ldr r1, [r0]
+ add r1, #0x29
+ ldrb r1, [r1]
+ cmp r1, #1
+ ldr r1, _02213480 ; =0x00000B64
+ bne _02213432
+ mov r2, #0x18
+ strb r2, [r0, r1]
+ mov r3, #0x8c
+ add r2, r1, #4
+ strb r3, [r0, r2]
+ mov r3, #0x55
+ add r2, r1, #1
+ strb r3, [r0, r2]
+ mov r3, #0xa4
+ add r2, r1, #5
+ strb r3, [r0, r2]
+ mov r3, #0x84
+ add r2, r1, #2
+ strb r3, [r0, r2]
+ mov r3, #0x2c
+ add r2, r1, #6
+ strb r3, [r0, r2]
+ mov r3, #0xc1
+ add r2, r1, #3
+ strb r3, [r0, r2]
+ mov r3, #0x44
+ add r2, r1, #7
+ strb r3, [r0, r2]
+ add r2, r1, #0
+ mov r3, #0xf
+ add r2, #8
+ strb r3, [r0, r2]
+ add r2, r1, #0
+ mov r3, #0x72
+ add r2, #0xc
+ strb r3, [r0, r2]
+ add r2, r1, #0
+ mov r3, #0x4c
+ add r2, #9
+ strb r3, [r0, r2]
+ add r2, r1, #0
+ mov r3, #0x8a
+ add r2, #0xd
+ strb r3, [r0, r2]
+ add r2, r1, #0
+ mov r3, #0x7b
+ add r2, #0xa
+ strb r3, [r0, r2]
+ add r2, r1, #0
+ mov r3, #0x12
+ add r2, #0xe
+ strb r3, [r0, r2]
+ add r2, r1, #0
+ mov r3, #0xb8
+ add r2, #0xb
+ strb r3, [r0, r2]
+ mov r2, #0x2a
+ add r1, #0xf
+ strb r2, [r0, r1]
+ pop {r3, r4}
+ bx lr
+_02213432:
+ mov r2, #0x18
+ strb r2, [r0, r1]
+ mov r4, #0xa0
+ add r2, r1, #4
+ strb r4, [r0, r2]
+ mov r3, #0x51
+ add r2, r1, #1
+ strb r3, [r0, r2]
+ add r2, r1, #5
+ strb r4, [r0, r2]
+ mov r3, #0x88
+ add r2, r1, #2
+ strb r3, [r0, r2]
+ mov r4, #0x30
+ add r2, r1, #6
+ strb r4, [r0, r2]
+ mov r3, #0xc1
+ add r2, r1, #3
+ strb r3, [r0, r2]
+ add r2, r1, #7
+ strb r4, [r0, r2]
+ add r2, r1, #0
+ mov r3, #0xf
+ add r2, #8
+ strb r3, [r0, r2]
+ add r2, r1, #0
+ mov r3, #0x86
+ add r2, #0xc
+ strb r3, [r0, r2]
+ add r2, r1, #0
+ mov r3, #0x80
+ add r2, #0xa
+ strb r3, [r0, r2]
+ mov r2, #0x16
+ add r1, #0xe
+ strb r2, [r0, r1]
+ pop {r3, r4}
+ bx lr
+ nop
+_02213480: .word 0x00000B64
+
+ thumb_func_start FUN_02213484
+FUN_02213484: ; 0x02213484
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ ldr r4, _02213560 ; =0x022149C8
+ add r3, sp, #0
+ add r6, r0, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r1, r2, #0
+ add r0, r6, #0
+ mov r2, #0x17
+ bl FUN_02212C04
+ add r0, r6, #0
+ bl FUN_0221301C
+ add r0, r6, #0
+ bl FUN_02213568
+ ldr r4, _02213564 ; =0x02214C64
+ mov r7, #0
+ add r5, r6, #0
+_022134B8:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_02212CA4
+ mov r1, #0x66
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r7, r7, #1
+ add r4, #0x1c
+ add r5, r5, #4
+ cmp r7, #0xe
+ blo _022134B8
+ mov r1, #0
+ mov r2, #0xff
+ add r0, r6, #0
+ mvn r2, r2
+ add r3, r1, #0
+ bl FUN_0221309C
+ mov r2, #0xff
+ add r0, r6, #0
+ mov r1, #1
+ mvn r2, r2
+ mov r3, #0
+ bl FUN_0221309C
+ mov r1, #2
+ add r2, r1, #0
+ add r0, r6, #0
+ add r2, #0xfe
+ mov r3, #0
+ bl FUN_0221309C
+ mov r1, #3
+ add r2, r1, #0
+ add r0, r6, #0
+ add r2, #0xfd
+ mov r3, #0
+ bl FUN_0221309C
+ add r0, r6, #0
+ bl FUN_022131C0
+ add r0, r6, #0
+ bl FUN_022135C8
+ add r0, r6, #0
+ bl FUN_022132CC
+ mov r1, #0
+ mov r2, #0xff
+ add r0, r6, #0
+ mvn r2, r2
+ add r3, r1, #0
+ bl FUN_02213354
+ mov r2, #0xff
+ add r0, r6, #0
+ mov r1, #1
+ mvn r2, r2
+ mov r3, #0
+ bl FUN_02213354
+ mov r1, #2
+ add r2, r1, #0
+ add r0, r6, #0
+ add r2, #0xfe
+ mov r3, #0
+ bl FUN_02213354
+ mov r1, #3
+ add r2, r1, #0
+ add r0, r6, #0
+ add r2, #0xfd
+ mov r3, #0
+ bl FUN_02213354
+ mov r0, #0x21
+ mov r1, #0xe
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02213560: .word 0x022149C8
+_02213564: .word 0x02214C64
+
+ thumb_func_start FUN_02213568
+FUN_02213568: ; 0x02213568
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _022135C4 ; =0x0000B808
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #8]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x6c
+ mov r3, #5
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _022135C4 ; =0x0000B808
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x6c
+ mov r3, #6
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _022135C4 ; =0x0000B808
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x6c
+ mov r3, #7
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_022135C4: .word 0x0000B808
+
+ thumb_func_start FUN_022135C8
+FUN_022135C8: ; 0x022135C8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4]
+ add r0, #0x2a
+ ldrb r0, [r0]
+ cmp r0, #3
+ bne _0221360A
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x80
+ mov r2, #0x60
+ bl FUN_0200C714
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl FUN_0200C5C0
+ pop {r4, pc}
+_0221360A:
+ bl FUN_02212BD4
+ cmp r0, #1
+ ldr r0, [r4]
+ bne _02213658
+ add r0, #0x2a
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _0221363A
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x30
+ mov r2, #0x60
+ bl FUN_0200C714
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xd0
+ mov r2, #0x60
+ bl FUN_0200C714
+ b _0221369A
+_0221363A:
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xd0
+ mov r2, #0x60
+ bl FUN_0200C714
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x30
+ mov r2, #0x60
+ bl FUN_0200C714
+ b _0221369A
+_02213658:
+ add r0, #0x2a
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _0221367E
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xd0
+ mov r2, #0x60
+ bl FUN_0200C714
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x30
+ mov r2, #0x60
+ bl FUN_0200C714
+ b _0221369A
+_0221367E:
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x30
+ mov r2, #0x60
+ bl FUN_0200C714
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xd0
+ mov r2, #0x60
+ bl FUN_0200C714
+_0221369A:
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C5C0
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C5C0
+ pop {r4, pc}
+
+ thumb_func_start FUN_022136B4
+FUN_022136B4: ; 0x022136B4
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r0, #2
+ mov r1, #0
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r4]
+ mov r2, #4
+ ldr r0, [r0, #0x24]
+ add r3, r1, #0
+ bl FUN_02022318
+ ldr r1, _0221378C ; =0x00000B58
+ ldr r2, _02213790 ; =0x04000060
+ str r0, [r4, r1]
+ ldrh r1, [r2]
+ ldr r0, _02213794 ; =0xFFFFCFFF
+ and r1, r0
+ mov r0, #8
+ orr r0, r1
+ strh r0, [r2]
+ bl FUN_02012CC8
+ ldr r0, [r4]
+ mov r1, #0x12
+ ldr r0, [r0, #0x24]
+ lsl r1, r1, #0xa
+ bl FUN_02016998
+ mov r2, #0xb6
+ lsl r2, r2, #4
+ str r0, [r4, r2]
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r3, #0x12
+ ldr r0, [r0, #0x24]
+ ldr r1, _02213798 ; =FUN_02213834
+ str r0, [sp, #4]
+ ldr r0, _0221379C ; =FUN_02213810
+ ldr r2, [r4, r2]
+ lsl r3, r3, #0xa
+ bl FUN_02012CDC
+ ldr r1, _022137A0 ; =0x00000B5C
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ bl FUN_0201343C
+ add r2, r0, #0
+ mov r0, #1
+ mov r1, #0xe1
+ lsl r0, r0, #0xc
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+ ldr r2, [r4]
+ mov r0, #0x3d
+ ldr r2, [r2, #0x24]
+ mov r1, #2
+ bl FUN_0201318C
+ add r1, r0, #0
+ ldr r0, _022137A0 ; =0x00000B5C
+ mov r2, #0xa
+ ldr r0, [r4, r0]
+ mov r3, #1
+ bl FUN_02013194
+ mov r1, #0
+ ldr r0, _022137A0 ; =0x00000B5C
+ add r2, r1, #0
+ ldr r0, [r4, r0]
+ add r3, r1, #0
+ bl FUN_020133AC
+ ldr r0, _022137A0 ; =0x00000B5C
+ mov r2, #0
+ ldr r0, [r4, r0]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_020133AC
+ ldr r0, _022137A0 ; =0x00000B5C
+ mov r2, #0
+ ldr r0, [r4, r0]
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_020133AC
+ ldr r0, _022137A0 ; =0x00000B5C
+ mov r2, #0
+ ldr r0, [r4, r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020133AC
+ ldr r0, _022137A0 ; =0x00000B5C
+ mov r2, #0
+ ldr r0, [r4, r0]
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_020133AC
+ add sp, #8
+ pop {r4, pc}
+ nop
+_0221378C: .word 0x00000B58
+_02213790: .word 0x04000060
+_02213794: .word 0xFFFFCFFF
+_02213798: .word FUN_02213834
+_0221379C: .word FUN_02213810
+_022137A0: .word 0x00000B5C
+
+ thumb_func_start FUN_022137A4
+FUN_022137A4: ; 0x022137A4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ add r0, #0x28
+ ldrb r0, [r0]
+ cmp r0, #1
+ beq _022137B6
+ mov r0, #0
+ pop {r4, pc}
+_022137B6:
+ bl FUN_020222AC
+ ldr r0, _022137D8 ; =0x00000B5C
+ ldr r0, [r4, r0]
+ bl FUN_020133C8
+ cmp r0, #0
+ bne _022137CA
+ mov r0, #0
+ pop {r4, pc}
+_022137CA:
+ bl FUN_02013364
+ bl FUN_02013388
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_022137D8: .word 0x00000B5C
+
+ thumb_func_start FUN_022137DC
+FUN_022137DC: ; 0x022137DC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ add r0, #0x28
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02213804
+ ldr r0, _02213808 ; =0x00000B5C
+ ldr r0, [r4, r0]
+ bl FUN_02012DE4
+ mov r0, #0xb6
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, _0221380C ; =0x00000B58
+ ldr r0, [r4, r0]
+ bl FUN_020223BC
+_02213804:
+ pop {r4, pc}
+ nop
+_02213808: .word 0x00000B5C
+_0221380C: .word 0x00000B58
+
+ thumb_func_start FUN_02213810
+FUN_02213810: ; 0x02213810
+ push {r4, lr}
+ ldr r3, _02213830 ; =0x021064B8
+ mov r2, #0
+ ldr r3, [r3]
+ blx r3
+ add r4, r0, #0
+ bl FUN_0201327C
+ cmp r4, #0
+ bne _02213828
+ bl ErrorHandling
+_02213828:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0xd
+ pop {r4, pc}
+ nop
+_02213830: .word 0x021064B8
+
+ thumb_func_start FUN_02213834
+FUN_02213834: ; 0x02213834
+ push {r4, lr}
+ ldr r3, _02213854 ; =0x021064C0
+ mov r2, #1
+ ldr r3, [r3]
+ blx r3
+ add r4, r0, #0
+ bl FUN_020132BC
+ cmp r4, #0
+ bne _0221384C
+ bl ErrorHandling
+_0221384C:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0xd
+ pop {r4, pc}
+ nop
+_02213854: .word 0x021064C0
+
+ thumb_func_start FUN_02213858
+FUN_02213858: ; 0x02213858
+ push {r4, r5, lr}
+ sub sp, #0x64
+ ldr r5, _022138E8 ; =0x0221497C
+ add r3, sp, #0x54
+ add r4, r0, #0
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r5, _022138EC ; =0x02214A9C
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _022138F0 ; =0x02214A10
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl FUN_02018744
+ ldr r5, _022138F4 ; =0x02214A80
+ 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, #3
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ add sp, #0x64
+ pop {r4, r5, pc}
+ nop
+_022138E8: .word 0x0221497C
+_022138EC: .word 0x02214A9C
+_022138F0: .word 0x02214A10
+_022138F4: .word 0x02214A80
+
+ thumb_func_start FUN_022138F8
+FUN_022138F8: ; 0x022138F8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x1e
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02213924
+FUN_02213924: ; 0x02213924
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ mov r1, #0xf
+ ldr r0, [r0, #0x24]
+ mov r3, #3
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x14
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ mov r1, #0x11
+ ldr r0, [r0, #0x24]
+ mov r3, #3
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x14
+ bl FUN_020068C8
+ ldr r2, [r5]
+ mov r0, #0x14
+ ldr r2, [r2, #0x24]
+ mov r1, #0x10
+ bl LoadFromNarc_2
+ add r1, sp, #0x10
+ add r4, r0, #0
+ bl FUN_020B0138
+ ldr r2, [sp, #0x10]
+ mov r0, #3
+ ldr r1, [r2, #0xc]
+ ldr r2, [r2, #8]
+ mov r3, #0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_02017FB4
+ ldr r1, [sp, #0x10]
+ ldr r0, _022139B4 ; =0x000004E4
+ ldr r1, [r1, #0xc]
+ add r0, r5, r0
+ add r1, #0x60
+ mov r2, #0x60
+ bl memcpy
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r5]
+ mov r2, #0xa9
+ lsl r2, r2, #2
+ ldr r3, _022139B8 ; =0x00000424
+ add r1, r5, r2
+ add r2, #0xc0
+ ldr r0, [r0, #0x24]
+ add r2, r5, r2
+ add r3, r5, r3
+ bl FUN_020724D4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_022139B4: .word 0x000004E4
+_022139B8: .word 0x00000424
+
+ thumb_func_start FUN_022139BC
+FUN_022139BC: ; 0x022139BC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r6, _02213A90 ; =0x02214954
+ mov r4, #0
+ add r7, r5, #0
+_022139C8:
+ cmp r4, #0
+ beq _022139D0
+ cmp r4, #3
+ bne _022139D8
+_022139D0:
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ add r1, r5, r0
+ b _022139EE
+_022139D8:
+ mov r0, #0x86
+ lsl r0, r0, #2
+ ldrh r0, [r7, r0]
+ cmp r0, #0
+ bne _022139E8
+ ldr r0, _02213A94 ; =0x00000424
+ add r1, r5, r0
+ b _022139EE
+_022139E8:
+ mov r0, #0xd9
+ lsl r0, r0, #2
+ add r1, r5, r0
+_022139EE:
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #0x10
+ str r0, [sp, #0x14]
+ mov r0, #6
+ str r0, [sp, #0x18]
+ ldrb r2, [r6]
+ ldrb r3, [r6, #1]
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ bl FUN_02018170
+ mov r0, #0x86
+ lsl r0, r0, #2
+ ldrh r0, [r7, r0]
+ cmp r0, #0
+ beq _02213A7A
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ add r0, r4, #3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldrb r2, [r6]
+ ldrb r3, [r6, #1]
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ bl FUN_020186B4
+ cmp r4, #3
+ bhs _02213A46
+ ldr r0, [r5]
+ add r0, #0x29
+ ldrb r0, [r0]
+ cmp r0, #1
+ beq _02213A54
+_02213A46:
+ cmp r4, #3
+ blo _02213A68
+ ldr r0, [r5]
+ add r0, #0x29
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02213A68
+_02213A54:
+ ldr r1, _02213A98 ; =0x00000504
+ add r3, r4, #3
+ lsl r3, r3, #0x15
+ mov r0, #2
+ add r1, r5, r1
+ mov r2, #0x20
+ lsr r3, r3, #0x10
+ bl FUN_02017FB4
+ b _02213A7A
+_02213A68:
+ ldr r1, _02213A9C ; =0x000004E4
+ add r3, r4, #3
+ lsl r3, r3, #0x15
+ mov r0, #2
+ add r1, r5, r1
+ mov r2, #0x20
+ lsr r3, r3, #0x10
+ bl FUN_02017FB4
+_02213A7A:
+ add r4, r4, #1
+ add r7, #0x18
+ add r6, r6, #2
+ cmp r4, #6
+ blo _022139C8
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ bl FUN_0201AC68
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02213A90: .word 0x02214954
+_02213A94: .word 0x00000424
+_02213A98: .word 0x00000504
+_02213A9C: .word 0x000004E4
+
+ thumb_func_start FUN_02213AA0
+FUN_02213AA0: ; 0x02213AA0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ str r1, [sp]
+ add r1, r2, #0
+ bl FUN_0201886C
+ add r6, r0, #0
+ ldr r0, [r4]
+ add r0, #0x29
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02213ABE
+ mov r7, #0x10
+ b _02213AC0
+_02213ABE:
+ mov r7, #0
+_02213AC0:
+ mov r5, #0
+_02213AC2:
+ lsl r0, r5, #5
+ add r0, r7, r0
+ lsl r4, r0, #1
+ ldr r0, [sp]
+ lsl r1, r5, #5
+ add r0, r0, r1
+ add r1, r6, r4
+ mov r2, #0x20
+ bl memcpy
+ add r0, r6, r4
+ mov r1, #0
+ mov r2, #0x20
+ bl Call_FillMemWithValue
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x18
+ blo _02213AC2
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start FUN_02213AEC
+FUN_02213AEC: ; 0x02213AEC
+ push {r4, lr}
+ ldr r1, _02213B18 ; =0x00000544
+ add r4, r0, #0
+ add r1, r4, r1
+ mov r2, #1
+ bl FUN_02213AA0
+ ldr r1, _02213B1C ; =0x00000844
+ add r0, r4, #0
+ add r1, r4, r1
+ mov r2, #2
+ bl FUN_02213AA0
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0201AC68
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl FUN_0201AC68
+ pop {r4, pc}
+ .align 2, 0
+_02213B18: .word 0x00000544
+_02213B1C: .word 0x00000844
+
+ thumb_func_start FUN_02213B20
+FUN_02213B20: ; 0x02213B20
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ add r0, #0x29
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02213B80
+ mov r0, #0x20
+ sub r6, r0, r4
+ ldr r1, _02213BE4 ; =0x00000544
+ str r4, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ add r1, r5, r1
+ str r1, [sp, #8]
+ mov r3, #0
+ str r3, [sp, #0xc]
+ lsl r2, r6, #0x18
+ str r3, [sp, #0x10]
+ mov r1, #0x10
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #0xc]
+ mov r1, #1
+ lsr r2, r2, #0x18
+ bl FUN_02018170
+ ldr r0, _02213BE8 ; =0x00000844
+ lsl r2, r6, #0x18
+ str r4, [sp]
+ mov r1, #0x18
+ str r1, [sp, #4]
+ add r0, r5, r0
+ str r0, [sp, #8]
+ mov r3, #0
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ mov r0, #0x10
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x18]
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ lsr r2, r2, #0x18
+ bl FUN_02018170
+ b _02213BCE
+_02213B80:
+ ldr r2, _02213BE4 ; =0x00000544
+ mov r0, #0x10
+ str r4, [sp]
+ mov r1, #0x18
+ sub r6, r0, r4
+ str r1, [sp, #4]
+ add r2, r5, r2
+ str r2, [sp, #8]
+ lsl r2, r6, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #0xc]
+ mov r2, #0
+ str r2, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x18]
+ ldr r0, [r5, #0xc]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02018170
+ ldr r1, _02213BE8 ; =0x00000844
+ mov r2, #0
+ str r4, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ add r1, r5, r1
+ str r1, [sp, #8]
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0xc]
+ str r2, [sp, #0x10]
+ mov r1, #0x10
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_02018170
+_02213BCE:
+ ldr r0, [r5, #0xc]
+ mov r1, #1
+ bl FUN_0201AC68
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ bl FUN_0201AC68
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02213BE4: .word 0x00000544
+_02213BE8: .word 0x00000844
+
+ thumb_func_start FUN_02213BEC
+FUN_02213BEC: ; 0x02213BEC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r0, r1, #0
+ str r1, [sp]
+ add r5, r2, #0
+ bl FUN_0206B9AC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0x18
+ mul r0, r5
+ add r0, r4, r0
+ mov r6, #0
+ str r0, [sp, #4]
+_02213C0C:
+ ldr r0, [sp, #8]
+ cmp r0, r6
+ bhi _02213C2E
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ bl FUN_0206B6D4
+ mov r1, #0x18
+ add r2, r6, #0
+ mul r2, r1
+ ldr r1, [sp, #4]
+ add r2, r1, r2
+ mov r1, #0x85
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ b _02213D08
+_02213C2E:
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ mov r1, #0x18
+ add r2, r6, #0
+ mul r2, r1
+ ldr r1, [sp, #4]
+ add r4, r0, #0
+ add r7, r1, r2
+ bl FUN_0206B6C8
+ mov r1, #0x85
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ add r0, r4, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ mov r1, #0x86
+ lsl r1, r1, #2
+ strh r0, [r7, r1]
+ add r0, r1, #0
+ ldrh r0, [r7, r0]
+ cmp r0, #0
+ beq _02213D08
+ mov r0, #0x18
+ add r1, r6, #0
+ mul r1, r0
+ ldr r0, [sp, #4]
+ mov r2, #0
+ add r5, r0, r1
+ add r0, r4, #0
+ mov r1, #0x4c
+ bl FUN_020671BC
+ ldr r1, _02213D18 ; =0x00000223
+ mov r2, #0
+ strb r0, [r5, r1]
+ add r0, r4, #0
+ mov r1, #0xa2
+ bl FUN_020671BC
+ ldr r1, _02213D1C ; =0x0000021A
+ mov r2, #0
+ strh r0, [r5, r1]
+ add r0, r4, #0
+ mov r1, #0xa3
+ bl FUN_020671BC
+ mov r1, #0x87
+ lsl r1, r1, #2
+ strh r0, [r5, r1]
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ mov r1, #0x22
+ lsl r1, r1, #4
+ strb r0, [r5, r1]
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02213D20 ; =0x0000021E
+ mov r2, #0
+ strh r0, [r5, r1]
+ add r0, r4, #0
+ mov r1, #0xa1
+ bl FUN_020671BC
+ mov r1, #0x89
+ lsl r1, r1, #2
+ strb r0, [r5, r1]
+ add r0, r4, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02213D24 ; =0x00000225
+ mov r2, #0
+ strb r0, [r5, r1]
+ add r0, r4, #0
+ mov r1, #0xaf
+ bl FUN_020671BC
+ cmp r0, #1
+ bne _02213CE8
+ mov r1, #0
+ b _02213CEA
+_02213CE8:
+ mov r1, #1
+_02213CEA:
+ ldr r0, _02213D28 ; =0x00000222
+ strb r1, [r7, r0]
+ add r0, r4, #0
+ bl FUN_020689E0
+ ldr r1, _02213D2C ; =0x00000221
+ strb r0, [r5, r1]
+ add r0, r4, #0
+ bl FUN_0207C2D4
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_02213D08:
+ add r0, r6, #1
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ cmp r6, #3
+ bhs _02213D14
+ b _02213C0C
+_02213D14:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02213D18: .word 0x00000223
+_02213D1C: .word 0x0000021A
+_02213D20: .word 0x0000021E
+_02213D24: .word 0x00000225
+_02213D28: .word 0x00000222
+_02213D2C: .word 0x00000221
+
+ thumb_func_start FUN_02213D30
+FUN_02213D30: ; 0x02213D30
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x85
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #0x90
+ bl Call_FillMemWithValue
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldr r1, [r1, #4]
+ mov r2, #0
+ bl FUN_02213BEC
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldr r1, [r1, #0xc]
+ mov r2, #3
+ bl FUN_02213BEC
+ pop {r4, pc}
+
+ thumb_func_start FUN_02213D5C
+FUN_02213D5C: ; 0x02213D5C
+ push {r4, lr}
+ add r3, r0, #0
+ add r2, r1, #0
+ mov r0, #0x18
+ mul r2, r0
+ ldr r1, _02213DC0 ; =0x0000021A
+ add r4, r3, r2
+ ldrh r0, [r4, r1]
+ cmp r0, #0
+ bne _02213D74
+ mov r0, #0
+ pop {r4, pc}
+_02213D74:
+ add r1, #0xe
+ ldr r1, [r4, r1]
+ cmp r1, #7
+ beq _02213D84
+ cmp r1, #0
+ beq _02213D84
+ mov r0, #5
+ pop {r4, pc}
+_02213D84:
+ mov r1, #0x87
+ add r2, r3, r2
+ lsl r1, r1, #2
+ ldrh r1, [r2, r1]
+ mov r2, #0x30
+ bl FUN_02079A54
+ cmp r0, #4
+ bhi _02213DBC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213DA2: ; jump table
+ .short _02213DBC - _02213DA2 - 2 ; case 0
+ .short _02213DB8 - _02213DA2 - 2 ; case 1
+ .short _02213DB4 - _02213DA2 - 2 ; case 2
+ .short _02213DB0 - _02213DA2 - 2 ; case 3
+ .short _02213DAC - _02213DA2 - 2 ; case 4
+_02213DAC:
+ mov r0, #1
+ pop {r4, pc}
+_02213DB0:
+ mov r0, #2
+ pop {r4, pc}
+_02213DB4:
+ mov r0, #3
+ pop {r4, pc}
+_02213DB8:
+ mov r0, #4
+ pop {r4, pc}
+_02213DBC:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02213DC0: .word 0x0000021A
+
+ thumb_func_start FUN_02213DC4
+FUN_02213DC4: ; 0x02213DC4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp, #8]
+ str r1, [sp]
+ add r0, r1, #0
+ lsl r1, r0, #2
+ ldr r0, [sp]
+ ldr r2, _02213F1C ; =0x02214B28
+ add r7, r0, r1
+ lsl r0, r7, #2
+ add r4, r5, r0
+ ldr r0, [sp]
+ mov r1, #0xa
+ mul r1, r0
+ str r4, [sp, #4]
+ add r6, r2, r1
+_02213DE8:
+ mov r1, #0x1c
+ add r2, r7, #0
+ mul r2, r1
+ ldr r1, _02213F20 ; =0x02214DEC
+ add r0, r5, #0
+ add r1, r1, r2
+ bl FUN_02212CA4
+ mov r1, #0x66
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldrb r1, [r6]
+ ldrb r2, [r6, #1]
+ ldr r0, [r4, r0]
+ bl FUN_0200C714
+ ldr r0, [sp, #8]
+ add r7, r7, #1
+ add r0, r0, #1
+ add r4, r4, #4
+ add r6, r6, #2
+ str r0, [sp, #8]
+ cmp r0, #5
+ blo _02213DE8
+ ldr r0, [sp]
+ mov r3, #0x86
+ mov r1, #0x18
+ add r6, r0, #0
+ mul r6, r1
+ add r2, r5, r6
+ lsl r3, r3, #2
+ ldrh r0, [r2, r3]
+ cmp r0, #0
+ bne _02213E50
+ mov r5, #0
+ add r4, r3, #0
+ add r6, r5, #0
+ sub r4, #0x80
+_02213E36:
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ ldr r0, [r0, r4]
+ bl FUN_0200C644
+ ldr r0, [sp, #4]
+ add r5, r5, #1
+ add r0, r0, #4
+ str r0, [sp, #4]
+ cmp r5, #5
+ blo _02213E36
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_02213E50:
+ ldr r1, [sp]
+ mov r4, #0x14
+ mul r4, r1
+ add r1, r3, #0
+ sub r1, #0x80
+ add r7, r5, r1
+ add r1, r3, #0
+ add r1, #0xd
+ add r3, #0xb
+ ldrb r1, [r2, r1]
+ ldrb r2, [r2, r3]
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ ldr r0, [r7, r4]
+ bl FUN_0200C66C
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl FUN_02213D5C
+ add r1, r0, #0
+ ldr r0, [r7, r4]
+ bl FUN_0200C5C0
+ ldr r1, _02213F24 ; =0x0000021E
+ add r0, r5, r6
+ ldrh r0, [r0, r1]
+ cmp r0, #0
+ bne _02213E9A
+ add r0, r5, r4
+ sub r1, #0x82
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl FUN_0200C644
+ b _02213EC0
+_02213E9A:
+ bl FUN_0206EA98
+ cmp r0, #1
+ bne _02213EB2
+ mov r0, #0x67
+ add r1, r5, r4
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_0200C5C0
+ b _02213EC0
+_02213EB2:
+ mov r0, #0x67
+ add r1, r5, r4
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_0200C5C0
+_02213EC0:
+ mov r0, #0x89
+ add r1, r5, r6
+ lsl r0, r0, #2
+ ldrb r1, [r1, r0]
+ cmp r1, #0
+ bne _02213EDA
+ add r1, r5, r4
+ sub r0, #0x84
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ b _02213EE6
+_02213EDA:
+ add r1, r5, r4
+ sub r0, #0x84
+ ldr r0, [r1, r0]
+ mov r1, #2
+ bl FUN_0200C5C0
+_02213EE6:
+ mov r3, #0x8a
+ add r0, r5, r6
+ lsl r3, r3, #2
+ ldr r0, [r0, r3]
+ cmp r0, #7
+ bne _02213F02
+ add r0, r5, r4
+ sub r3, #0x84
+ ldr r0, [r0, r3]
+ mov r1, #0
+ bl FUN_0200C644
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_02213F02:
+ add r0, r3, #0
+ add r1, r5, r4
+ sub r0, #0x84
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #8]
+ mov r2, #0x18
+ mul r2, r1
+ add r1, r5, r2
+ ldr r1, [r1, r3]
+ bl FUN_0200C5C0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02213F1C: .word 0x02214B28
+_02213F20: .word 0x02214DEC
+_02213F24: .word 0x0000021E
+
+ thumb_func_start FUN_02213F28
+FUN_02213F28: ; 0x02213F28
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r5, _02213F88 ; =0x022149F8
+ add r3, sp, #0
+ add r4, r0, #0
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r1, r2, #0
+ add r0, r4, #0
+ mov r2, #0x1f
+ bl FUN_02212C04
+ add r0, r4, #0
+ bl FUN_02213F8C
+ add r0, r4, #0
+ bl FUN_02214034
+ add r0, r4, #0
+ bl FUN_022140BC
+ add r0, r4, #0
+ bl FUN_02214144
+ mov r5, #0
+_02213F64:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_02213DC4
+ add r5, r5, #1
+ cmp r5, #6
+ blo _02213F64
+ add r0, r4, #0
+ mov r1, #0x10
+ bl FUN_022141CC
+ mov r0, #0x21
+ mov r1, #0x1e
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_02213F88: .word 0x022149F8
+
+ thumb_func_start FUN_02213F8C
+FUN_02213F8C: ; 0x02213F8C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ bl FUN_0206B888
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, _0221402C ; =0x0000B808
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x13
+ bl FUN_0200C06C
+ bl FUN_0206B890
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02214030 ; =0x0000B809
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x13
+ bl FUN_0200C124
+ bl FUN_0206B89C
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02214030 ; =0x0000B809
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x13
+ bl FUN_0200C13C
+ mov r4, #0
+ add r6, r5, #0
+ add r7, r4, #0
+_02213FFA:
+ str r7, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02214030 ; =0x0000B809
+ mov r1, #0x65
+ add r0, r4, r0
+ str r0, [sp, #8]
+ mov r0, #0x19
+ mov r3, #0x85
+ lsl r0, r0, #4
+ lsl r1, r1, #2
+ lsl r3, r3, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ ldr r3, [r6, r3]
+ mov r2, #0x13
+ bl FUN_0200C00C
+ add r4, r4, #1
+ add r6, #0x18
+ cmp r4, #6
+ blo _02213FFA
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221402C: .word 0x0000B808
+_02214030: .word 0x0000B809
+
+ thumb_func_start FUN_02214034
+FUN_02214034: ; 0x02214034
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _022140B0 ; =0x0000B80F
+ mov r1, #0x19
+ mov r2, #0x14
+ lsl r1, r1, #4
+ str r0, [sp, #8]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ add r3, r2, #0
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, _022140B4 ; =0x0000B809
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x14
+ mov r3, #0x15
+ bl FUN_0200C06C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _022140B8 ; =0x0000B80A
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x14
+ mov r3, #0x13
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _022140B8 ; =0x0000B80A
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x14
+ mov r3, #0x12
+ bl FUN_0200C13C
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_022140B0: .word 0x0000B80F
+_022140B4: .word 0x0000B809
+_022140B8: .word 0x0000B80A
+
+ thumb_func_start FUN_022140BC
+FUN_022140BC: ; 0x022140BC
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02214138 ; =0x0000B810
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #8]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x27
+ mov r3, #0x40
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, _0221413C ; =0x0000B80A
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x27
+ mov r3, #0x41
+ bl FUN_0200C06C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02214140 ; =0x0000B80B
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x27
+ mov r3, #0x3f
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02214140 ; =0x0000B80B
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x27
+ mov r3, #0x3e
+ bl FUN_0200C13C
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02214138: .word 0x0000B810
+_0221413C: .word 0x0000B80A
+_02214140: .word 0x0000B80B
+
+ thumb_func_start FUN_02214144
+FUN_02214144: ; 0x02214144
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _022141C0 ; =0x0000B811
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #8]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x14
+ mov r3, #2
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, _022141C4 ; =0x0000B80B
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x14
+ mov r3, #8
+ bl FUN_0200C06C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _022141C8 ; =0x0000B80C
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x14
+ mov r3, #1
+ bl FUN_0200C124
+ mov r3, #0
+ mov r1, #0x19
+ ldr r0, _022141C8 ; =0x0000B80C
+ str r3, [sp]
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x14
+ bl FUN_0200C13C
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_022141C0: .word 0x0000B811
+_022141C4: .word 0x0000B80B
+_022141C8: .word 0x0000B80C
+
+ thumb_func_start FUN_022141CC
+FUN_022141CC: ; 0x022141CC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ ldr r0, [r0]
+ add r7, r1, #0
+ add r0, #0x29
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022141E6
+ mov r0, #3
+ str r0, [sp, #8]
+ lsl r0, r7, #0x13
+ b _022141F0
+_022141E6:
+ mov r0, #0
+ str r0, [sp, #8]
+ lsl r0, r7, #3
+ neg r0, r0
+ lsl r0, r0, #0x10
+_022141F0:
+ asr r7, r0, #0x10
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ mov r1, #0xa
+ ldr r2, _02214248 ; =0x02214B28
+ mul r1, r0
+ add r0, r2, r1
+ str r0, [sp, #4]
+_02214202:
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #0xc]
+ ldr r4, [sp, #4]
+ add r1, r1, r0
+ lsl r0, r1, #2
+ add r0, r1, r0
+ lsl r1, r0, #2
+ ldr r0, [sp]
+ mov r6, #0
+ add r5, r0, r1
+_02214216:
+ ldrb r1, [r4]
+ mov r0, #0x66
+ lsl r0, r0, #2
+ add r1, r7, r1
+ lsl r1, r1, #0x10
+ ldrb r2, [r4, #1]
+ ldr r0, [r5, r0]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ add r6, r6, #1
+ add r4, r4, #2
+ add r5, r5, #4
+ cmp r6, #5
+ blt _02214216
+ ldr r0, [sp, #4]
+ add r0, #0xa
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ cmp r0, #3
+ blt _02214202
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02214248: .word 0x02214B28
+
+ thumb_func_start FUN_0221424C
+FUN_0221424C: ; 0x0221424C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r7, #0
+ ldr r4, _02214270 ; =0x02214BA4
+ mov r6, #0
+ add r5, #0x10
+_02214258:
+ ldr r0, [r7, #0xc]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl FUN_02019150
+ add r6, r6, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r6, #0x18
+ blo _02214258
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02214270: .word 0x02214BA4
+
+ thumb_func_start FUN_02214274
+FUN_02214274: ; 0x02214274
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ add r5, #0x10
+_0221427C:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #0x18
+ blo _0221427C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start FUN_0221428C
+FUN_0221428C: ; 0x0221428C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ ldr r4, [sp, #0x3c]
+ add r5, r0, #0
+ add r7, r5, #0
+ lsl r0, r4, #6
+ add r7, #0x10
+ str r0, [sp, #0x1c]
+ str r1, [sp, #0x10]
+ str r3, [sp, #0x14]
+ ldr r6, [sp, #0x38]
+ cmp r4, #3
+ ldr r0, [r5]
+ bhs _022142B4
+ ldr r0, [r0, #4]
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ str r0, [sp, #0x18]
+ b _022142BE
+_022142B4:
+ ldr r0, [r0, #0xc]
+ sub r1, r4, #3
+ bl FUN_0206B9B0
+ str r0, [sp, #0x18]
+_022142BE:
+ add r1, r4, #0
+ ldr r0, [sp, #0x10]
+ add r1, #8
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [sp, #0x14]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x20]
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214370 ; =0x000F0E00
+ add r2, r6, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x1c]
+ add r3, r1, #0
+ add r0, r7, r0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ mov r0, #0x18
+ mul r0, r4
+ add r2, r5, r0
+ ldr r0, _02214374 ; =0x00000222
+ ldrb r1, [r2, r0]
+ cmp r1, #0
+ bne _0221436C
+ sub r0, r0, #1
+ ldrb r0, [r2, r0]
+ cmp r0, #0
+ bne _02214344
+ ldr r0, [sp, #0x10]
+ mov r1, #0x1b
+ add r2, r6, #0
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x1c]
+ add r2, r6, #0
+ add r0, r7, r0
+ mov r3, #0x40
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+_02214344:
+ cmp r0, #1
+ bne _0221436C
+ ldr r0, [sp, #0x10]
+ mov r1, #0x1c
+ add r2, r6, #0
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214378 ; =0x00050600
+ add r2, r6, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x1c]
+ mov r3, #0x40
+ add r0, r7, r0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+_0221436C:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02214370: .word 0x000F0E00
+_02214374: .word 0x00000222
+_02214378: .word 0x00050600
+
+ thumb_func_start FUN_0221437C
+FUN_0221437C: ; 0x0221437C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ ldr r0, [sp, #0x2c]
+ add r5, r6, #0
+ lsl r0, r0, #2
+ add r0, r0, #1
+ lsl r4, r0, #4
+ mov r0, #5
+ add r7, r1, #0
+ str r3, [sp, #0x10]
+ str r0, [sp]
+ add r5, #0x10
+ add r0, r2, #0
+ mov r1, #1
+ add r2, r5, r4
+ mov r3, #0
+ bl FUN_0200B9A8
+ ldr r1, [sp, #0x2c]
+ add r0, r7, #0
+ add r1, r1, #2
+ bl FUN_0200A914
+ mov r1, #0
+ add r7, r0, #0
+ ldr r3, [sp, #0x2c]
+ mov r2, #0x18
+ mul r2, r3
+ add r3, r6, r2
+ mov r2, #0x22
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ lsl r2, r2, #4
+ ldrb r2, [r3, r2]
+ ldr r0, [sp, #0x10]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x28]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ add r0, r7, #0
+ bl FUN_02021A20
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022143F8 ; =0x000F0E00
+ ldr r2, [sp, #0x28]
+ str r0, [sp, #8]
+ add r0, r5, r4
+ mov r3, #0x10
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022143F8: .word 0x000F0E00
+
+ thumb_func_start FUN_022143FC
+FUN_022143FC: ; 0x022143FC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ ldr r5, [sp, #0x44]
+ add r7, r0, #0
+ str r0, [sp, #0x10]
+ lsl r0, r5, #2
+ add r0, r0, #2
+ lsl r0, r0, #4
+ str r0, [sp, #0x28]
+ str r1, [sp, #0x14]
+ add r0, r1, #0
+ add r1, r5, #0
+ add r1, #0x14
+ str r3, [sp, #0x18]
+ ldr r4, [sp, #0x40]
+ add r7, #0x10
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ mov r0, #0x18
+ mul r0, r5
+ str r0, [sp, #0x1c]
+ mov r1, #0
+ ldr r3, [sp, #0x10]
+ ldr r2, [sp, #0x1c]
+ str r1, [sp]
+ mov r0, #1
+ add r3, r3, r2
+ str r0, [sp, #4]
+ ldr r2, _02214508 ; =0x0000021A
+ ldr r0, [sp, #0x18]
+ ldrh r2, [r3, r2]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x20]
+ add r1, r4, #0
+ bl FUN_0200B7B8
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ mov r0, #0
+ add r1, r4, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov ip, r0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0221450C ; =0x000F0E00
+ mov r6, ip
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x28]
+ mov r3, #0x1c
+ add r0, r7, r0
+ add r2, r4, #0
+ sub r3, r3, r6
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x14]
+ mov r1, #0x1a
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0221450C ; =0x000F0E00
+ add r2, r4, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x28]
+ mov r3, #0x1c
+ add r0, r7, r0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ mov r0, #0
+ add r1, r4, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ str r0, [sp, #0x24]
+ add r5, #0xe
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ bl FUN_0200A914
+ add r5, r0, #0
+ ldr r3, [sp, #0x10]
+ ldr r2, [sp, #0x1c]
+ mov r1, #0
+ add r3, r3, r2
+ mov r2, #0x87
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ lsl r2, r2, #2
+ ldrh r2, [r3, r2]
+ ldr r0, [sp, #0x18]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ add r2, r5, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ bl FUN_02021A20
+ mov r1, #0
+ ldr r3, [sp, #0x24]
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0221450C ; =0x000F0E00
+ add r3, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x28]
+ add r2, r4, #0
+ add r0, r7, r0
+ str r1, [sp, #0xc]
+ str r3, [sp, #0x24]
+ bl FUN_0201BDE0
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02214508: .word 0x0000021A
+_0221450C: .word 0x000F0E00
+
+ thumb_func_start FUN_02214510
+FUN_02214510: ; 0x02214510
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ lsl r0, r1, #2
+ add r2, r5, #0
+ add r0, r0, #3
+ add r2, #0x10
+ lsl r0, r0, #4
+ add r4, r2, r0
+ mov r0, #0x18
+ add r6, r1, #0
+ mul r6, r0
+ mov r0, #0x87
+ lsl r0, r0, #2
+ add r7, r5, r0
+ sub r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #8]
+ ldrh r0, [r0, r6]
+ ldrh r1, [r7, r6]
+ mov r2, #0x30
+ bl FUN_02079A54
+ cmp r0, #4
+ bhi _0221459E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221454E: ; jump table
+ .short _0221459E - _0221454E - 2 ; case 0
+ .short _02214588 - _0221454E - 2 ; case 1
+ .short _02214570 - _0221454E - 2 ; case 2
+ .short _02214558 - _0221454E - 2 ; case 3
+ .short _02214558 - _0221454E - 2 ; case 4
+_02214558:
+ ldrb r3, [r4, #9]
+ ldr r1, _022145F4 ; =0x000004F6
+ mov r0, #1
+ lsl r3, r3, #4
+ add r3, #9
+ lsl r3, r3, #0x11
+ add r1, r5, r1
+ mov r2, #4
+ lsr r3, r3, #0x10
+ bl FUN_02017FB4
+ b _0221459E
+_02214570:
+ ldrb r3, [r4, #9]
+ ldr r1, _022145F8 ; =0x00000516
+ mov r0, #1
+ lsl r3, r3, #4
+ add r3, #9
+ lsl r3, r3, #0x11
+ add r1, r5, r1
+ mov r2, #4
+ lsr r3, r3, #0x10
+ bl FUN_02017FB4
+ b _0221459E
+_02214588:
+ ldrb r3, [r4, #9]
+ ldr r1, _022145FC ; =0x00000536
+ mov r0, #1
+ lsl r3, r3, #4
+ add r3, #9
+ lsl r3, r3, #0x11
+ add r1, r5, r1
+ mov r2, #4
+ lsr r3, r3, #0x10
+ bl FUN_02017FB4
+_0221459E:
+ ldr r0, [sp, #8]
+ ldrh r1, [r7, r6]
+ ldrh r0, [r0, r6]
+ mov r2, #0x30
+ bl FUN_02079A0C
+ add r5, r0, #0
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #0
+ mov r3, #2
+ bl FUN_020196F4
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #9
+ mov r2, #0
+ mov r3, #3
+ bl FUN_020196F4
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #0
+ mov r3, #5
+ bl FUN_020196F4
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022145F4: .word 0x000004F6
+_022145F8: .word 0x00000516
+_022145FC: .word 0x00000536
+
+ thumb_func_start FUN_02214600
+FUN_02214600: ; 0x02214600
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0
+ ldr r6, [sp, #0x2c]
+ add r5, r7, #0
+ str r1, [sp, #8]
+ add r5, #0x10
+ lsl r4, r6, #6
+ add r0, r5, r4
+ mov r1, #0
+ str r2, [sp, #0xc]
+ str r3, [sp, #0x10]
+ bl FUN_02019620
+ add r0, r5, r4
+ add r0, #0x10
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, r4
+ add r0, #0x20
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, r4
+ add r0, #0x30
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #8]
+ str r0, [sp]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ add r0, r7, #0
+ str r6, [sp, #4]
+ bl FUN_0221428C
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #8]
+ str r0, [sp]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ add r0, r7, #0
+ str r6, [sp, #4]
+ bl FUN_0221437C
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #8]
+ str r0, [sp]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ add r0, r7, #0
+ str r6, [sp, #4]
+ bl FUN_022143FC
+ add r0, r7, #0
+ add r1, r6, #0
+ bl FUN_02214510
+ add r0, r5, r4
+ bl FUN_02019220
+ add r0, r5, r4
+ add r0, #0x10
+ bl FUN_02019220
+ add r0, r5, r4
+ add r0, #0x20
+ bl FUN_02019220
+ add r0, r5, r4
+ add r0, #0x30
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start FUN_0221469C
+FUN_0221469C: ; 0x0221469C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ ldr r3, [r6]
+ ldr r2, _0221471C ; =0x00000192
+ ldr r3, [r3, #0x24]
+ mov r0, #0
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ ldr r3, [r6]
+ str r0, [sp, #0x10]
+ ldr r3, [r3, #0x24]
+ mov r0, #0xf
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_0200B870
+ str r0, [sp, #0xc]
+ ldr r0, [r6]
+ ldr r0, [r0, #0x24]
+ bl FUN_0200AA80
+ ldr r1, [r6]
+ str r0, [sp, #8]
+ ldr r1, [r1, #0x24]
+ mov r0, #0x20
+ bl FUN_020219F4
+ add r7, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_022146DC:
+ mov r0, #0x86
+ lsl r0, r0, #2
+ ldrh r0, [r5, r0]
+ cmp r0, #0
+ beq _022146F6
+ ldr r1, [sp, #0x10]
+ str r7, [sp]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #8]
+ add r0, r6, #0
+ str r4, [sp, #4]
+ bl FUN_02214600
+_022146F6:
+ add r4, r4, #1
+ add r5, #0x18
+ cmp r4, #6
+ blo _022146DC
+ add r0, r7, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x10]
+ bl FUN_0200A8B8
+ ldr r0, [sp, #0xc]
+ bl FUN_0200B990
+ ldr r0, [sp, #8]
+ bl FUN_0200AB18
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0221471C: .word 0x00000192
+
+ thumb_func_start FUN_02214720
+FUN_02214720: ; 0x02214720
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _022147A4
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ add r0, r4, #0
+ add r0, #0x2a
+ ldrb r0, [r0]
+ ldr r1, [r4]
+ sub r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_02034998
+ cmp r0, #1
+ bne _0221479C
+ mov r0, #1
+ add r7, r5, #0
+ eor r7, r0
+ mov r0, #0x34
+ ldr r1, [r4]
+ mul r0, r7
+ add r0, r1, r0
+ add r0, #0x29
+ ldrb r0, [r0]
+ bl FUN_0206AE00
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x24]
+ mov r1, #0x10
+ bl FUN_02016998
+ add r5, r0, #0
+ add r0, r7, #0
+ bl FUN_020313CC
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ add r1, r5, #0
+ mov r2, #8
+ bl FUN_02021EF0
+ ldr r1, [sp, #0x10]
+ ldr r3, [r4, #0x24]
+ add r0, r5, #0
+ add r2, r6, #0
+ bl FUN_020294B4
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_02016A18
+ b _0221493A
+_0221479C:
+ bl FUN_02033534
+ cmp r0, #4
+ bls _022147A6
+_022147A4:
+ b _0221494A
+_022147A6:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022147B2: ; jump table
+ .short _02214936 - _022147B2 - 2 ; case 0
+ .short _022147BC - _022147B2 - 2 ; case 1
+ .short _02214808 - _022147B2 - 2 ; case 2
+ .short _02214854 - _022147B2 - 2 ; case 3
+ .short _022148A0 - _022147B2 - 2 ; case 4
+_022147BC:
+ mov r0, #1
+ add r7, r5, #0
+ eor r7, r0
+ mov r0, #0x34
+ ldr r1, [r4]
+ mul r0, r7
+ add r0, r1, r0
+ add r0, #0x29
+ ldrb r0, [r0]
+ bl FUN_0206AE00
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x24]
+ mov r1, #0x10
+ bl FUN_02016998
+ add r5, r0, #0
+ add r0, r7, #0
+ bl FUN_020313CC
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ add r1, r5, #0
+ mov r2, #8
+ bl FUN_02021EF0
+ ldr r1, [sp, #0x14]
+ ldr r3, [r4, #0x24]
+ add r0, r5, #0
+ add r2, r6, #0
+ bl FUN_0202930C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_02016A18
+ b _0221493A
+_02214808:
+ mov r0, #1
+ add r7, r5, #0
+ eor r7, r0
+ mov r0, #0x34
+ ldr r1, [r4]
+ mul r0, r7
+ add r0, r1, r0
+ add r0, #0x29
+ ldrb r0, [r0]
+ bl FUN_0206AE00
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x24]
+ mov r1, #0x10
+ bl FUN_02016998
+ add r5, r0, #0
+ add r0, r7, #0
+ bl FUN_020313CC
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ add r1, r5, #0
+ mov r2, #8
+ bl FUN_02021EF0
+ ldr r1, [sp, #0x18]
+ ldr r3, [r4, #0x24]
+ add r0, r5, #0
+ add r2, r6, #0
+ bl FUN_0202934C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_02016A18
+ b _0221493A
+_02214854:
+ mov r0, #1
+ add r7, r5, #0
+ eor r7, r0
+ mov r0, #0x34
+ ldr r1, [r4]
+ mul r0, r7
+ add r0, r1, r0
+ add r0, #0x29
+ ldrb r0, [r0]
+ bl FUN_0206AE00
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #0x24]
+ mov r1, #0x10
+ bl FUN_02016998
+ add r5, r0, #0
+ add r0, r7, #0
+ bl FUN_020313CC
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ add r1, r5, #0
+ mov r2, #8
+ bl FUN_02021EF0
+ ldr r1, [sp, #0x1c]
+ ldr r3, [r4, #0x24]
+ add r0, r5, #0
+ add r2, r6, #0
+ bl FUN_020293EC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_02016A18
+ b _0221493A
+_022148A0:
+ ldr r0, [r4, #0x24]
+ mov r1, #0x10
+ bl FUN_02016998
+ add r5, r0, #0
+ ldr r0, [r4, #0x24]
+ mov r1, #0x10
+ bl FUN_02016998
+ add r7, r0, #0
+ bl FUN_02212BD4
+ cmp r0, #1
+ ldr r0, [r4]
+ bne _022148EA
+ add r0, #0x5d
+ ldrb r0, [r0]
+ bl FUN_0206AE00
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ add r0, #0xc5
+ ldrb r0, [r0]
+ bl FUN_0206AE00
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0
+ mov r2, #8
+ bl FUN_02021EF0
+ ldr r0, [r4, #0x20]
+ add r1, r7, #0
+ mov r2, #8
+ bl FUN_02021EF0
+ b _02214914
+_022148EA:
+ add r0, #0x29
+ ldrb r0, [r0]
+ bl FUN_0206AE00
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ add r0, #0x91
+ ldrb r0, [r0]
+ bl FUN_0206AE00
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x14]
+ add r1, r5, #0
+ mov r2, #8
+ bl FUN_02021EF0
+ ldr r0, [r4, #0x1c]
+ add r1, r7, #0
+ mov r2, #8
+ bl FUN_02021EF0
+_02214914:
+ str r6, [sp]
+ ldr r0, [r4, #0x24]
+ add r1, r7, #0
+ str r0, [sp, #4]
+ ldr r2, [sp, #8]
+ ldr r3, [sp, #0xc]
+ add r0, r5, #0
+ bl FUN_0202938C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_02016A18
+ b _0221493A
+_02214936:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+_0221493A:
+ mov r0, #0x52
+ ldr r1, [r4]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ mov r2, #4
+ bl FUN_02028AD4
+_0221494A:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .balign 4, 0
+
+ .section .data
+ ; 0x02214950
+ .incbin "baserom.nds", 0x186EF0, 0x7F0
diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s
new file mode 100644
index 00000000..50ed884f
--- /dev/null
+++ b/arm9/modules/08/asm/module_08.s
@@ -0,0 +1,49981 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD08_02211E60
+MOD08_02211E60: ; 0x02211E60
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02211E70
+ lsl r1, r0, #2
+ ldr r0, _02211E74 ; =0x0222A9E4
+ ldr r0, [r0, r1]
+ bx lr
+_02211E70:
+ ldr r0, _02211E78 ; =0x0222A780
+ bx lr
+ .align 2, 0
+_02211E74: .word 0x0222A9E4
+_02211E78: .word 0x0222A780
+
+ thumb_func_start MOD08_02211E7C
+MOD08_02211E7C: ; 0x02211E7C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r4, r3, #0
+ bl MOD08_02211E60
+ ldr r3, [sp, #0x10]
+ add r1, r0, #0
+ mov r0, #0x20
+ lsl r3, r3, #0x14
+ str r0, [sp]
+ add r0, r5, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x10
+ bl FUN_02003054
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02211EA0
+MOD08_02211EA0: ; 0x02211EA0
+ add r1, r0, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ cmp r1, #0
+ bne _02211EB2
+ ldr r1, _02211EC0 ; =MOD08_02211EC4
+ add r0, #0xbc
+ str r1, [r0]
+ bx lr
+_02211EB2:
+ add r1, r0, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ add r0, #0x8d
+ sub r1, r1, #1
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_02211EC0: .word MOD08_02211EC4
+
+ thumb_func_start MOD08_02211EC4
+MOD08_02211EC4: ; 0x02211EC4
+ push {r4, lr}
+ add r4, r0, #0
+_02211EC8:
+ ldr r0, [r4, #0x18]
+ ldr r0, [r0]
+ bl MOD08_0221533C
+ add r1, r0, #0
+ add r0, r4, #0
+ blx r1
+ add r0, r4, #0
+ add r0, #0x8d
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02211EE6
+ ldr r0, [r4, #0x10]
+ cmp r0, #1
+ beq _02211EC8
+_02211EE6:
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02211EE8
+MOD08_02211EE8: ; 0x02211EE8
+ push {r3, r4, r5, lr}
+ add r5, r2, #0
+ add r4, r3, #0
+ cmp r0, #1
+ beq _02211EF8
+ cmp r0, #2
+ beq _02211F06
+ b _02211F14
+_02211EF8:
+ add r0, r1, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ add r1, #0x8e
+ add r0, r0, #1
+ strh r0, [r1]
+ b _02211F18
+_02211F06:
+ add r0, r1, #0
+ add r0, #0x90
+ ldrh r0, [r0]
+ add r1, #0x90
+ add r0, r0, #1
+ strh r0, [r1]
+ b _02211F18
+_02211F14:
+ bl ErrorHandling
+_02211F18:
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02211F24
+MOD08_02211F24: ; 0x02211F24
+ push {r4, lr}
+ add r4, r2, #0
+ cmp r0, #1
+ beq _02211F32
+ cmp r0, #2
+ beq _02211F40
+ b _02211F4E
+_02211F32:
+ add r0, r1, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ add r1, #0x8e
+ sub r0, r0, #1
+ strh r0, [r1]
+ b _02211F52
+_02211F40:
+ add r0, r1, #0
+ add r0, #0x90
+ ldrh r0, [r0]
+ add r1, #0x90
+ sub r0, r0, #1
+ strh r0, [r1]
+ b _02211F52
+_02211F4E:
+ bl ErrorHandling
+_02211F52:
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02211F5C
+MOD08_02211F5C: ; 0x02211F5C
+ push {r3, r4, r5, lr}
+ mov r1, #0x69
+ lsl r1, r1, #2
+ add r5, r0, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _02211F78
+ cmp r4, #0
+ bne _02211F74
+ bl ErrorHandling
+_02211F74:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02211F78:
+ mov r2, #0x69
+ mov r1, #0
+ lsl r2, r2, #2
+ bl Call_FillMemWithValue
+ mov r1, #0x47
+ str r5, [r4]
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ lsl r1, r1, #2
+ bl FUN_02016998
+ add r1, r4, #0
+ add r1, #0xc0
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02211FAC
+ bne _02211FA8
+ bl ErrorHandling
+_02211FA8:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02211FAC:
+ mov r2, #0x47
+ mov r1, #0
+ lsl r2, r2, #2
+ bl Call_FillMemWithValue
+ mov r1, #0
+ str r1, [r4, #0xc]
+ str r1, [r4, #0x18]
+ add r2, r4, #0
+ add r3, r1, #0
+_02211FC0:
+ add r0, r2, #0
+ add r0, #0xcc
+ add r1, r1, #1
+ add r2, r2, #4
+ str r3, [r0]
+ cmp r1, #4
+ blt _02211FC0
+ mov r0, #0x59
+ add r2, r4, #0
+ mov r1, #0
+ lsl r0, r0, #2
+_02211FD6:
+ add r3, r3, #1
+ str r1, [r2, r0]
+ add r2, r2, #4
+ cmp r3, #5
+ blt _02211FD6
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [r4, #0xc]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02211FF0
+MOD08_02211FF0: ; 0x02211FF0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ cmp r5, #0
+ bne _02211FFE
+ bl ErrorHandling
+_02211FFE:
+ str r4, [r5, #8]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212004
+MOD08_02212004: ; 0x02212004
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221200E
+ bl ErrorHandling
+_0221200E:
+ ldr r0, [r4, #8]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212014
+MOD08_02212014: ; 0x02212014
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221201E
+ bl ErrorHandling
+_0221201E:
+ ldr r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212024
+MOD08_02212024: ; 0x02212024
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD08_022123CC
+ cmp r0, #0
+ bne _02212034
+ mov r0, #0
+ pop {r4, pc}
+_02212034:
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02212048
+MOD08_02212048: ; 0x02212048
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r4, r0, #0
+ add r5, r1, #0
+ str r2, [sp]
+ str r3, [sp, #4]
+ bl MOD08_0221268C
+ add r0, r4, #0
+ bl MOD08_022123CC
+ cmp r0, #0
+ bne _02212068
+ add sp, #0x3c
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02212068:
+ mov r3, #0
+ mov r2, #1
+ add r1, r3, #0
+_0221206E:
+ add r0, r4, r3
+ add r0, #0x6c
+ strb r2, [r0]
+ add r0, r4, r3
+ add r0, #0x7c
+ add r3, r3, #1
+ strb r1, [r0]
+ cmp r3, #0x10
+ blt _0221206E
+ add r3, r4, #0
+ mov r0, #0
+_02212084:
+ add r2, r3, #0
+ add r2, #0x94
+ add r1, r1, #1
+ add r3, r3, #4
+ str r0, [r2]
+ cmp r1, #0xa
+ blt _02212084
+ add r3, r4, #0
+ mov r2, #0
+_02212096:
+ str r2, [r3, #0x30]
+ add r1, r3, #0
+ str r2, [r3, #0x28]
+ add r1, #0x2c
+ strb r2, [r1]
+ add r1, r3, #0
+ add r1, #0x2d
+ add r0, r0, #1
+ add r3, #0xc
+ strb r2, [r1]
+ cmp r0, #3
+ blt _02212096
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrb r1, [r5]
+ ldr r0, [r0]
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrb r1, [r5, #1]
+ ldr r0, [r0]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #2]
+ ldr r0, [r0]
+ strh r1, [r0, #2]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r5, #4]
+ ldr r0, [r0]
+ str r1, [r0, #4]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #8]
+ ldr r0, [r0]
+ strh r1, [r0, #8]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #0xc]
+ ldr r0, [r0]
+ strh r1, [r0, #0xa]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r5, #0x10]
+ ldr r0, [r0]
+ str r1, [r0, #0xc]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #0xa]
+ ldr r0, [r0]
+ strh r1, [r0, #0x10]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r5, #0x54]
+ ldr r0, [r0]
+ strh r1, [r0, #0x12]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #0x14]
+ ldr r0, [r0]
+ strh r1, [r0, #0x14]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #0x16]
+ ldr r0, [r0]
+ strh r1, [r0, #0x16]
+ ldrh r0, [r5, #0xe]
+ lsl r0, r0, #0x1e
+ lsr r2, r0, #0x1f
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ ldr r0, [sp, #4]
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ str r1, [r0]
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02212148
+ bl ErrorHandling
+_02212148:
+ ldr r0, [sp, #4]
+ mov r5, #0
+ ldr r1, [r0, #4]
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #4]
+ ldr r1, [r0, #8]
+ add r0, r4, #0
+ add r0, #0xc8
+ str r1, [r0]
+ ldr r0, [sp, #4]
+ add r3, r5, #0
+ ldr r1, [r0, #0x30]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r7, r5, #0
+ add r0, #0xd4
+ str r1, [r0]
+ add r0, r2, #0
+ mov ip, r0
+_02212176:
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldr r0, [r2, #0xc]
+ add r1, r1, r3
+ add r1, #0xb0
+ str r0, [r1]
+ ldr r0, [sp, #4]
+ add r1, r0, r5
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrb r6, [r1, #0x1c]
+ add r0, r0, r5
+ add r0, #0xc0
+ strb r6, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r6, [r2, #0x20]
+ add r0, r0, r3
+ add r0, #0xc4
+ str r6, [r0]
+ mov r0, ip
+ ldrh r6, [r0, #0x34]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r7
+ add r0, #0xd8
+ strh r6, [r0]
+ add r0, r1, #0
+ add r0, #0x3c
+ ldrb r6, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r7, r7, #2
+ add r0, r0, r5
+ add r0, #0xe0
+ strb r6, [r0]
+ add r0, r1, #0
+ add r0, #0x40
+ ldrb r6, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, #0x44
+ add r0, r0, r5
+ add r0, #0xe4
+ strb r6, [r0]
+ ldrb r0, [r1]
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r5
+ add r1, #0xe8
+ strb r0, [r1]
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldr r0, [r2, #0x48]
+ add r1, r1, r3
+ add r1, #0xec
+ str r0, [r1]
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldr r0, [r2, #0x58]
+ add r1, r1, r3
+ add r1, #0xfc
+ str r0, [r1]
+ mov r0, ip
+ add r0, r0, #2
+ add r5, r5, #1
+ add r2, r2, #4
+ add r3, r3, #4
+ mov ip, r0
+ cmp r5, #4
+ blt _02212176
+ ldr r5, [sp, #4]
+ mov r2, #0x61
+ lsl r2, r2, #2
+ add r5, #0x6c
+ add r3, r4, r2
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [sp, #4]
+ add r0, #0x84
+ ldr r3, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ add r0, r2, #0
+ sub r0, #0x78
+ str r3, [r1, r0]
+ ldr r0, [sp, #4]
+ add r0, #0x8c
+ ldr r3, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ add r0, r2, #0
+ sub r0, #0x70
+ str r3, [r1, r0]
+ ldr r0, [sp, #4]
+ add r0, #0x88
+ ldr r3, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ add r0, r2, #0
+ sub r0, #0x74
+ str r3, [r1, r0]
+ ldr r0, [sp]
+ sub r2, #0x62
+ cmp r0, r2
+ bne _02212296
+ ldr r5, _0221236C ; =0x0222AB18
+ add r3, sp, #8
+ mov r2, #6
+_02212270:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02212270
+ ldr r0, [r5]
+ str r0, [r3]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x12]
+ cmp r0, #0xc
+ blo _0221228E
+ mov r0, #0xa1
+ str r0, [sp]
+ b _02212296
+_0221228E:
+ lsl r1, r0, #2
+ add r0, sp, #8
+ ldr r0, [r0, r1]
+ str r0, [sp]
+_02212296:
+ ldr r0, [sp]
+ cmp r0, #0
+ beq _022122A2
+ ldr r1, _02212370 ; =0x000001D3
+ cmp r0, r1
+ ble _022122A6
+_022122A2:
+ mov r0, #1
+ str r0, [sp]
+_022122A6:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x68]
+ str r0, [r4, #4]
+ ldr r1, [sp]
+ ldr r2, [r4]
+ bl LoadFromNarc_2
+ str r0, [r4, #0x14]
+ cmp r0, #0
+ bne _022122C6
+ bne _022122C0
+ bl ErrorHandling
+_022122C0:
+ add sp, #0x3c
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_022122C6:
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_02018884
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_02018884
+ ldr r1, _02212374 ; =0x000001A1
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #2
+ bl FUN_02018884
+ ldr r1, _02212378 ; =0x000001A2
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_02018884
+ ldr r1, _0221237C ; =0x000001A3
+ mov r3, #0
+ strb r0, [r4, r1]
+ add r2, r4, #0
+ add r1, r3, #0
+_02212310:
+ add r0, r2, #0
+ add r0, #0xdc
+ add r3, r3, #1
+ add r2, r2, #4
+ str r1, [r0]
+ cmp r3, #0xa
+ blt _02212310
+ mov r2, #0x4f
+ lsl r2, r2, #2
+ add r3, r2, #0
+ add r5, r4, #0
+ mov r0, #0
+ add r3, #0x14
+_0221232A:
+ str r0, [r5, r2]
+ str r0, [r5, r3]
+ add r1, r1, #1
+ add r5, r5, #4
+ cmp r1, #5
+ blt _0221232A
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ add r1, r4, #0
+ ldr r2, _02212380 ; =MOD08_02211EC4
+ add r1, #0xbc
+ str r2, [r1]
+ add r1, r4, #0
+ add r1, #0x8d
+ strb r0, [r1]
+ add r0, r4, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _0221235C
+ mov r0, #0x67
+ mov r1, #7
+ lsl r0, r0, #2
+ b _02212362
+_0221235C:
+ mov r1, #0xff
+ add r0, r1, #0
+ add r0, #0x9d
+_02212362:
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [r4, #0x10]
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221236C: .word 0x0222AB18
+_02212370: .word 0x000001D3
+_02212374: .word 0x000001A1
+_02212378: .word 0x000001A2
+_0221237C: .word 0x000001A3
+_02212380: .word MOD08_02211EC4
+
+ thumb_func_start MOD08_02212384
+MOD08_02212384: ; 0x02212384
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD08_022123CC
+ cmp r0, #0
+ bne _02212394
+ mov r0, #0
+ pop {r4, pc}
+_02212394:
+ add r0, r4, #0
+ add r4, #0xbc
+ ldr r1, [r4]
+ blx r1
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022123A0
+MOD08_022123A0: ; 0x022123A0
+ ldr r0, [r0, #0x10]
+ cmp r0, #1
+ bne _022123AA
+ mov r0, #1
+ bx lr
+_022123AA:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022123B0
+MOD08_022123B0: ; 0x022123B0
+ push {r3, lr}
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _022123C2
+ bne _022123BE
+ bl ErrorHandling
+_022123BE:
+ mov r0, #0
+ pop {r3, pc}
+_022123C2:
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022123CC
+MOD08_022123CC: ; 0x022123CC
+ cmp r0, #0
+ bne _022123D4
+ mov r0, #0
+ bx lr
+_022123D4:
+ ldr r0, [r0, #0xc]
+ cmp r0, #1
+ bne _022123DE
+ mov r0, #1
+ bx lr
+_022123DE:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022123E4
+MOD08_022123E4: ; 0x022123E4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r6, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ str r3, [sp]
+ mov r0, #1
+ add r1, r6, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl MOD08_02211EE8
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02212400
+MOD08_02212400: ; 0x02212400
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _02212418 ; =0x0000044C
+ add r4, r1, #0
+ add r3, r2, #0
+ str r0, [sp]
+ mov r0, #1
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD08_02211EE8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212418: .word 0x0000044C
+
+ thumb_func_start MOD08_0221241C
+MOD08_0221241C: ; 0x0221241C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r6, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ str r3, [sp]
+ mov r0, #2
+ add r1, r6, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl MOD08_02211EE8
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02212438
+MOD08_02212438: ; 0x02212438
+ add r3, r0, #0
+ add r2, r1, #0
+ add r1, r3, #0
+ ldr r3, _02212444 ; =MOD08_02211F24
+ mov r0, #1
+ bx r3
+ .align 2, 0
+_02212444: .word MOD08_02211F24
+
+ thumb_func_start MOD08_02212448
+MOD08_02212448: ; 0x02212448
+ add r3, r0, #0
+ add r2, r1, #0
+ add r1, r3, #0
+ ldr r3, _02212454 ; =MOD08_02211F24
+ mov r0, #2
+ bx r3
+ .align 2, 0
+_02212454: .word MOD08_02211F24
+
+ thumb_func_start MOD08_02212458
+MOD08_02212458: ; 0x02212458
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x14]
+ bx lr
+
+ thumb_func_start MOD08_02212460
+MOD08_02212460: ; 0x02212460
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x16]
+ bx lr
+
+ thumb_func_start MOD08_02212468
+MOD08_02212468: ; 0x02212468
+ add r0, #0xc0
+ ldr r1, [r0]
+ ldr r0, [r1, #0x18]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #0x1c]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02212478
+MOD08_02212478: ; 0x02212478
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ ldr r0, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start MOD08_02212484
+MOD08_02212484: ; 0x02212484
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ ldr r0, [r0, #0x5c]
+ bx lr
+
+ thumb_func_start MOD08_02212490
+MOD08_02212490: ; 0x02212490
+ add r0, #0xc4
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02212498
+MOD08_02212498: ; 0x02212498
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #0xa
+ blt _022124A6
+ bl ErrorHandling
+_022124A6:
+ lsl r0, r5, #2
+ add r0, r4, r0
+ add r0, #0x94
+ ldr r0, [r0]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022124B0
+MOD08_022124B0: ; 0x022124B0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #0xa
+ blt _022124BE
+ bl ErrorHandling
+_022124BE:
+ cmp r5, #0
+ bne _022124C6
+ bl ErrorHandling
+_022124C6:
+ add r5, #0xdc
+ lsl r4, r4, #2
+ ldr r0, [r5, r4]
+ cmp r0, #0
+ bne _022124D4
+ bl ErrorHandling
+_022124D4:
+ ldr r0, [r5, r4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022124D8
+MOD08_022124D8: ; 0x022124D8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #5
+ blt _022124E6
+ bl ErrorHandling
+_022124E6:
+ cmp r5, #0
+ bne _022124EE
+ bl ErrorHandling
+_022124EE:
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ add r5, r5, r0
+ lsl r4, r4, #2
+ ldr r0, [r5, r4]
+ cmp r0, #0
+ bne _02212500
+ bl ErrorHandling
+_02212500:
+ ldr r0, [r5, r4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02212504
+MOD08_02212504: ; 0x02212504
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221250E
+ bl ErrorHandling
+_0221250E:
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212518
+MOD08_02212518: ; 0x02212518
+ add r0, #0xcc
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02212520
+MOD08_02212520: ; 0x02212520
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_0221252C
+MOD08_0221252C: ; 0x0221252C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ mov r1, #0x3c
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _02212544
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02212544:
+ mov r1, #0
+ mov r2, #0x3c
+ bl Call_FillMemWithValue
+ add r0, r5, #0
+ add r0, #0x90
+ ldrh r0, [r0]
+ add r5, #0x90
+ add r0, r0, #1
+ strh r0, [r5]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221255C
+MOD08_0221255C: ; 0x0221255C
+ ldr r3, _02212568 ; =0x0200CA45
+ str r0, [r1, #0x38]
+ ldr r0, _0221256C ; =MOD08_02212574
+ ldr r2, _02212570 ; =0x0000044C
+ bx r3
+ nop
+_02212568: .word 0x0200CA45
+_0221256C: .word MOD08_02212574
+_02212570: .word 0x0000044C
+
+ thumb_func_start MOD08_02212574
+MOD08_02212574: ; 0x02212574
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _022125B0 ; =0x0222AAC4
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ bne _022125AE
+ ldr r0, [r4, #0x38]
+ add r1, r0, #0
+ add r1, #0x90
+ ldrh r1, [r1]
+ cmp r1, #0
+ beq _022125A2
+ add r1, r0, #0
+ add r1, #0x90
+ ldrh r1, [r1]
+ add r0, #0x90
+ sub r1, r1, #1
+ strh r1, [r0]
+_022125A2:
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_022125AE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022125B0: .word 0x0222AAC4
+
+ thumb_func_start MOD08_022125B4
+MOD08_022125B4: ; 0x022125B4
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD08_022125B8
+MOD08_022125B8: ; 0x022125B8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r1, [r5, #4]
+ add r0, r1, #1
+ strb r0, [r5, #4]
+ ldrb r0, [r5, #3]
+ cmp r1, r0
+ bhs _022125CC
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022125CC:
+ mov r0, #0
+ strb r0, [r5, #4]
+ ldr r2, [r5, #0x14]
+ ldr r1, [r5, #0x10]
+ mov r4, #1
+ add r1, r2, r1
+ str r1, [r5, #0x14]
+ ldr r1, [r5, #0x10]
+ cmp r1, #0
+ bne _022125E4
+ add r4, r0, #0
+ b _022125FC
+_022125E4:
+ ldr r2, [r5, #0xc]
+ ldr r1, [r5, #8]
+ cmp r1, r2
+ ldr r1, [r5, #0x14]
+ bge _022125F6
+ cmp r1, r2
+ blt _022125FC
+ add r4, r0, #0
+ b _022125FC
+_022125F6:
+ cmp r1, r2
+ bgt _022125FC
+ add r4, r0, #0
+_022125FC:
+ ldr r0, [r5, #0x14]
+ bl FUN_0200554C
+ ldrh r0, [r5, #0x1a]
+ bl FUN_02005508
+ cmp r0, #0
+ bne _0221260E
+ mov r4, #0
+_0221260E:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212614
+MOD08_02212614: ; 0x02212614
+ ldr r3, _02212618 ; =MOD08_022125B8
+ bx r3
+ .align 2, 0
+_02212618: .word MOD08_022125B8
+
+ thumb_func_start MOD08_0221261C
+MOD08_0221261C: ; 0x0221261C
+ ldr r3, _02212620 ; =MOD08_022125B8
+ bx r3
+ .align 2, 0
+_02212620: .word MOD08_022125B8
+
+ thumb_func_start MOD08_02212624
+MOD08_02212624: ; 0x02212624
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r1, [r5, #4]
+ add r0, r1, #1
+ strb r0, [r5, #4]
+ ldrb r0, [r5, #3]
+ cmp r1, r0
+ bhs _02212638
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02212638:
+ mov r0, #0
+ strb r0, [r5, #4]
+ ldrb r0, [r5, #0x18]
+ mov r4, #1
+ sub r0, r0, #1
+ strb r0, [r5, #0x18]
+ ldrh r0, [r5, #0x1a]
+ bl FUN_020054C8
+ ldrh r0, [r5, #0x1a]
+ ldr r1, _02212660 ; =0x0000FFFF
+ ldr r2, [r5, #0x14]
+ bl FUN_02005530
+ ldrb r0, [r5, #0x18]
+ cmp r0, #0
+ bne _0221265C
+ mov r4, #0
+_0221265C:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212660: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02212664
+MOD08_02212664: ; 0x02212664
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r2, [r4, #3]
+ mov r0, #1
+ sub r1, r2, #1
+ strb r1, [r4, #3]
+ cmp r2, #0
+ bne _02212686
+ ldrh r0, [r4, #0x1a]
+ bl FUN_020054C8
+ ldrh r0, [r4, #0x1a]
+ ldr r1, _02212688 ; =0x0000FFFF
+ ldr r2, [r4, #0x14]
+ bl FUN_02005530
+ mov r0, #0
+_02212686:
+ pop {r4, pc}
+ .align 2, 0
+_02212688: .word 0x0000FFFF
+
+ thumb_func_start MOD08_0221268C
+MOD08_0221268C: ; 0x0221268C
+ push {r3, lr}
+ ldr r0, _022126A0 ; =0x04000050
+ mov r3, #8
+ mov r1, #0
+ mov r2, #0x3f
+ str r3, [sp]
+ bl G2x_SetBlendAlpha_
+ pop {r3, pc}
+ nop
+_022126A0: .word 0x04000050
+
+ thumb_func_start MOD08_022126A4
+MOD08_022126A4: ; 0x022126A4
+ push {r3, r4}
+ add r2, r0, #0
+ mov r1, #1
+ add r2, #0x8d
+ strb r1, [r2]
+ ldr r3, _022126D8 ; =0x021C48B8
+ lsl r2, r1, #9
+ ldr r4, [r3, #0x44]
+ tst r2, r4
+ beq _022126D4
+ add r2, r1, #0
+ add r2, #0xff
+ tst r2, r4
+ beq _022126D4
+ ldr r2, [r3, #0x48]
+ lsl r1, r1, #0xa
+ tst r1, r2
+ beq _022126D4
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ mov r1, #0
+ add r0, #0x8d
+ strb r1, [r0]
+_022126D4:
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_022126D8: .word 0x021C48B8
+
+ thumb_func_start MOD08_022126DC
+MOD08_022126DC: ; 0x022126DC
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r0, #0
+ add r1, #0x8d
+ strb r2, [r1]
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r1, _022126F8 ; =MOD08_02211EA0
+ add r0, #0xbc
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_022126F8: .word MOD08_02211EA0
+
+ thumb_func_start MOD08_022126FC
+MOD08_022126FC: ; 0x022126FC
+ add r1, r0, #0
+ add r1, #0x8e
+ ldrh r1, [r1]
+ cmp r1, #0
+ bne _02212714
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ mov r1, #0
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+_02212714:
+ mov r1, #1
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD08_0221271C
+MOD08_0221271C: ; 0x0221271C
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ cmp r3, #0xa
+ bhs _0221273A
+ lsl r1, r3, #2
+ add r0, r0, r1
+ add r0, #0x94
+ str r2, [r0]
+_0221273A:
+ bx lr
+
+ thumb_func_start MOD08_0221273C
+MOD08_0221273C: ; 0x0221273C
+ ldr r1, [r0, #0x18]
+ mov r3, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ add r2, r3, #0
+_02212746:
+ add r1, r0, #0
+ add r1, #0x94
+ add r3, r3, #1
+ add r0, r0, #4
+ str r2, [r1]
+ cmp r3, #0xa
+ blt _02212746
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02212758
+MOD08_02212758: ; 0x02212758
+ cmp r1, #5
+ bhi _022127A4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02212768: ; jump table
+ .short _02212774 - _02212768 - 2 ; case 0
+ .short _0221277C - _02212768 - 2 ; case 1
+ .short _02212784 - _02212768 - 2 ; case 2
+ .short _0221278C - _02212768 - 2 ; case 3
+ .short _02212794 - _02212768 - 2 ; case 4
+ .short _0221279C - _02212768 - 2 ; case 5
+_02212774:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bx lr
+_0221277C:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #8]
+ bx lr
+_02212784:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0xa]
+ bx lr
+_0221278C:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ bx lr
+_02212794:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x10]
+ bx lr
+_0221279C:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x12]
+ bx lr
+_022127A4:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD08_022127A8
+MOD08_022127A8: ; 0x022127A8
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ add r3, r0, #0
+ add r0, r1, #0
+ str r2, [sp]
+ add r6, r4, #0
+ add r5, r0, #0
+ mov ip, r4
+ add r7, r0, #0
+_022127BA:
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r6
+ add r1, #0xb0
+ ldr r1, [r1]
+ str r1, [r5, #8]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r6
+ add r1, #0xc4
+ ldr r1, [r1]
+ str r1, [r5, #0x18]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r2, [r1]
+ mov r1, ip
+ add r1, r2, r1
+ add r1, #0xd8
+ ldrh r1, [r1]
+ add r2, r0, r4
+ add r2, #0x30
+ strh r1, [r7, #0x28]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r7, r7, #2
+ add r1, r1, r4
+ add r1, #0xe0
+ ldrb r1, [r1]
+ strb r1, [r2]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r2, r0, r4
+ add r1, r1, r4
+ add r1, #0xe4
+ ldrb r1, [r1]
+ add r2, #0x34
+ strb r1, [r2]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r2, r0, r4
+ add r1, r1, r4
+ add r1, #0xe8
+ ldrb r1, [r1]
+ add r2, #0x38
+ strb r1, [r2]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r2, r0, r4
+ add r1, r1, r6
+ add r1, #0xec
+ ldr r1, [r1]
+ add r2, #0x4c
+ str r1, [r5, #0x3c]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r6, r6, #4
+ add r1, r1, r4
+ add r1, #0xc0
+ ldrb r1, [r1]
+ add r4, r4, #1
+ add r5, r5, #4
+ strb r1, [r2]
+ mov r1, ip
+ add r1, r1, #2
+ mov ip, r1
+ cmp r4, #4
+ blt _022127BA
+ ldr r1, [sp]
+ cmp r1, #3
+ bhi _022128B8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02212860: ; jump table
+ .short _02212868 - _02212860 - 2 ; case 0
+ .short _0221287C - _02212860 - 2 ; case 1
+ .short _02212890 - _02212860 - 2 ; case 2
+ .short _022128A4 - _02212860 - 2 ; case 3
+_02212868:
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r3, #0xc0
+ ldrh r1, [r1, #0x14]
+ str r1, [r0]
+ ldr r1, [r3]
+ ldrh r1, [r1, #0x16]
+ str r1, [r0, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0221287C:
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r3, #0xc0
+ ldrh r1, [r1, #0x14]
+ str r1, [r0]
+ ldr r1, [r3]
+ ldrh r1, [r1, #0x14]
+ str r1, [r0, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02212890:
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r3, #0xc0
+ ldrh r1, [r1, #0x14]
+ str r1, [r0]
+ ldr r1, [r3]
+ ldrh r1, [r1, #0x14]
+ str r1, [r0, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_022128A4:
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r3, #0xc0
+ ldrh r1, [r1, #0x14]
+ str r1, [r0]
+ ldr r1, [r3]
+ ldrh r1, [r1, #0x14]
+ str r1, [r0, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_022128B8:
+ bl ErrorHandling
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022128C0
+MOD08_022128C0: ; 0x022128C0
+ push {r3, r4, r5, lr}
+ sub sp, #0x50
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r4, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ add r1, sp, #0
+ add r2, r4, #0
+ bl MOD08_022127A8
+ cmp r4, #2
+ add r0, sp, #0
+ bne _022128EA
+ ldr r1, [r5]
+ bl MOD08_0222A568
+ add sp, #0x50
+ pop {r3, r4, r5, pc}
+_022128EA:
+ cmp r4, #3
+ bne _022128F8
+ ldr r1, [r5]
+ bl MOD08_0222A2A4
+ add sp, #0x50
+ pop {r3, r4, r5, pc}
+_022128F8:
+ ldr r1, [r5]
+ bl MOD08_0222A294
+ add sp, #0x50
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212904
+MOD08_02212904: ; 0x02212904
+ push {r4, lr}
+ sub sp, #0x50
+ add r4, r0, #0
+ ldr r1, [r4, #0x18]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ add r1, sp, #0
+ bl MOD08_022127A8
+ ldr r1, [r4]
+ add r0, sp, #0
+ bl MOD08_0222A494
+ add sp, #0x50
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02212928
+MOD08_02212928: ; 0x02212928
+ ldr r1, [r0, #0x18]
+ mov r2, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ add r3, r0, #0
+_02212932:
+ ldr r1, [r3, #0x30]
+ cmp r1, #1
+ beq _0221295E
+ mov r1, #0xc
+ mul r1, r2
+ mov r2, #1
+ add r1, r0, r1
+ str r2, [r1, #0x30]
+ add r2, r1, #0
+ mov r3, #0
+ add r2, #0x2c
+ strb r3, [r2]
+ ldr r2, [r0, #0x18]
+ ldr r3, [r2]
+ add r2, r1, #0
+ add r2, #0x2d
+ strb r3, [r2]
+ ldr r2, [r0, #0x18]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ str r2, [r1, #0x28]
+ bx lr
+_0221295E:
+ add r2, r2, #1
+ add r3, #0xc
+ cmp r2, #3
+ blt _02212932
+ bx lr
+
+ thumb_func_start MOD08_02212968
+MOD08_02212968: ; 0x02212968
+ push {r3, r4}
+ ldr r1, [r0, #0x18]
+ add r3, r0, #0
+ add r1, r1, #4
+ add r3, #0x18
+ str r1, [r0, #0x18]
+ mov r2, #2
+_02212976:
+ ldr r1, [r3, #0x30]
+ cmp r1, #0
+ beq _022129AA
+ add r4, r2, #0
+ mov r1, #0xc
+ add r2, r0, #0
+ mul r4, r1
+ add r2, #0x2c
+ ldrb r1, [r2, r4]
+ add r1, r1, #1
+ strb r1, [r2, r4]
+ ldrb r3, [r2, r4]
+ add r2, r0, r4
+ add r1, r2, #0
+ add r1, #0x2d
+ ldrb r1, [r1]
+ cmp r3, r1
+ bne _022129A2
+ mov r0, #0
+ str r0, [r2, #0x30]
+ pop {r3, r4}
+ bx lr
+_022129A2:
+ ldr r1, [r2, #0x28]
+ str r1, [r0, #0x18]
+ pop {r3, r4}
+ bx lr
+_022129AA:
+ sub r3, #0xc
+ sub r2, r2, #1
+ bpl _02212976
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD08_022129B4
+MOD08_022129B4: ; 0x022129B4
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r1, _02212BB0 ; =0x0000017E
+ add r5, r0, #0
+ ldrb r0, [r5, r1]
+ mov r6, #0
+ cmp r0, #1
+ bhs _022129D2
+ add r0, r5, #0
+ mov r2, #1
+ add r0, #0x8d
+ strb r2, [r0]
+ ldrb r0, [r5, r1]
+ add r0, r0, #1
+ strb r0, [r5, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_022129D2:
+ add r7, r6, #0
+ add r4, r6, #0
+_022129D6:
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _022129EA
+ bl FUN_020133C8
+ add r6, r6, r0
+_022129EA:
+ add r7, r7, #1
+ add r4, r4, #4
+ cmp r7, #0x10
+ blt _022129D6
+ cmp r6, #0
+ bne _02212A0A
+ add r0, r5, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _02212A0A
+ add r0, r5, #0
+ add r0, #0x90
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _02212A1A
+_02212A0A:
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0x8d
+ strb r1, [r0]
+ ldr r0, _02212BB4 ; =0x0000017D
+ mov r1, #0
+ strb r1, [r5, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_02212A1A:
+ bl FUN_02005514
+ cmp r0, #0
+ beq _02212A44
+ ldr r0, _02212BB4 ; =0x0000017D
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ ldrb r1, [r5, r0]
+ cmp r1, #0x5a
+ bls _02212A3C
+ mov r1, #0
+ strb r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x8d
+ strb r1, [r0]
+ b _02212A44
+_02212A3C:
+ mov r0, #1
+ add r5, #0x8d
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_02212A44:
+ ldr r0, _02212BB4 ; =0x0000017D
+ mov r1, #0
+ strb r1, [r5, r0]
+ add r0, r0, #1
+ strb r1, [r5, r0]
+ add r0, r5, #0
+ add r2, r1, #0
+_02212A52:
+ add r1, r1, #1
+ str r2, [r0, #0x1c]
+ add r0, r0, #4
+ cmp r1, #3
+ blt _02212A52
+ add r1, r5, #0
+ mov r4, #0
+_02212A60:
+ add r0, r1, #0
+ str r4, [r1, #0x28]
+ add r0, #0x2c
+ strb r4, [r0]
+ add r0, r1, #0
+ add r0, #0x2d
+ strb r4, [r0]
+ str r4, [r1, #0x30]
+ add r2, r2, #1
+ add r1, #0xc
+ cmp r2, #3
+ blt _02212A60
+ add r7, r5, #0
+ mov r6, #0
+_02212A7C:
+ add r0, r7, #0
+ add r0, #0xcc
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _02212A94
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200C398
+_02212A94:
+ add r0, r7, #0
+ add r0, #0xcc
+ add r4, r4, #1
+ add r7, r7, #4
+ str r6, [r0]
+ cmp r4, #4
+ blt _02212A7C
+_02212AA2:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02213454
+ add r6, r6, #1
+ cmp r6, #5
+ blt _02212AA2
+ mov r6, #0
+ add r4, r6, #0
+ add r7, r6, #0
+_02212AB6:
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _02212AD2
+ bl MOD08_02215B40
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r4
+ str r7, [r0, #0x1c]
+_02212AD2:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #0x10
+ blt _02212AB6
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ beq _02212AE8
+ mov r1, #0
+ str r1, [r5, r0]
+_02212AE8:
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #0
+ bne _02212B3C
+ bl FUN_02231678
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02215588
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r3, r0, #0
+ lsl r0, r4, #0x18
+ mov r1, #1
+ lsr r0, r0, #0x18
+ lsl r1, r1, #0xe
+ mov r2, #0
+ bl FUN_02017F18
+ add r0, r5, #0
+ bl MOD08_02212490
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02215588
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ b _02212B40
+_02212B3C:
+ bl FUN_02233560
+_02212B40:
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ ldrb r1, [r5, r1]
+ mov r0, #0
+ bl FUN_020178BC
+ ldr r1, _02212BB8 ; =0x000001A1
+ mov r0, #1
+ ldrb r1, [r5, r1]
+ bl FUN_020178BC
+ ldr r1, _02212BBC ; =0x000001A2
+ mov r0, #2
+ ldrb r1, [r5, r1]
+ bl FUN_020178BC
+ ldr r1, _02212BC0 ; =0x000001A3
+ mov r0, #3
+ ldrb r1, [r5, r1]
+ bl FUN_020178BC
+ add r0, r5, #0
+ add r0, #0xc4
+ mov r2, #0
+ ldr r0, [r0]
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #2
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r5, #0
+ add r0, #0xc4
+ mov r2, #0
+ ldr r0, [r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r5, #0
+ add r0, #0xc4
+ mov r1, #3
+ ldr r0, [r0]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ mov r0, #0
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02212BB0: .word 0x0000017E
+_02212BB4: .word 0x0000017D
+_02212BB8: .word 0x000001A1
+_02212BBC: .word 0x000001A2
+_02212BC0: .word 0x000001A3
+
+ thumb_func_start MOD08_02212BC4
+MOD08_02212BC4: ; 0x02212BC4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r4, [r0]
+ add r1, r0, #4
+ str r1, [r5, #0x18]
+ ldr r0, [r1]
+ str r0, [sp]
+ add r0, r1, #4
+ str r0, [r5, #0x18]
+ ldr r7, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ str r4, [r0, #0x18]
+ add r0, r5, r4
+ add r0, #0x7c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02212C22
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ add r1, sp, #4
+ bl FUN_020133EC
+ mov r0, #0
+ ldr r1, [sp, #8]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, sp, #4
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ bl FUN_020133FC
+_02212C22:
+ add r0, r5, #0
+ add r0, #0xc0
+ add r1, r5, r4
+ add r1, #0x6c
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldrb r1, [r1]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02013440
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, [sp]
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ add r2, r7, #0
+ add r3, r5, #0
+ bl MOD08_02215B2C
+ add r5, #0xc0
+ ldr r1, [r5]
+ str r0, [r1, #0x5c]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212C58
+MOD08_02212C58: ; 0x02212C58
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r4, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r7, [r0]
+ add r1, r0, #4
+ str r1, [r5, #0x18]
+ ldr r0, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ str r0, [sp, #4]
+ ldr r0, [r1]
+ str r0, [sp]
+ add r0, r1, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ str r4, [r0, #0x18]
+ add r0, r5, r4
+ add r0, #0x7c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02212CBE
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ add r1, sp, #8
+ bl FUN_020133EC
+ mov r0, #0
+ ldr r1, [sp, #0xc]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, sp, #8
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ bl FUN_020133FC
+_02212CBE:
+ add r0, r5, #0
+ add r0, #0xc0
+ add r1, r5, r4
+ add r1, #0x6c
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldrb r1, [r1]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02013440
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, [sp, #4]
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ ldr r2, [sp]
+ add r3, r5, #0
+ bl MOD08_02215B2C
+ add r5, #0xc0
+ ldr r2, [r5]
+ lsl r1, r7, #2
+ add r1, r2, r1
+ str r0, [r1, #0x5c]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212CF8
+MOD08_02212CF8: ; 0x02212CF8
+ push {r4, r5, r6, lr}
+ sub sp, #0x90
+ ldr r5, _02212D4C ; =0x0222AB4C
+ add r4, r0, #0
+ add r3, sp, #0
+ mov r2, #0x12
+_02212D04:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02212D04
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD08_02227468
+ mov r1, #0x18
+ add r3, r5, #0
+ mul r3, r1
+ add r2, sp, #0
+ lsl r1, r0, #2
+ add r0, r2, r3
+ ldr r4, [r1, r0]
+ cmp r4, #0xff
+ bne _02212D44
+ bl ErrorHandling
+_02212D44:
+ sub r0, r4, #1
+ add sp, #0x90
+ pop {r4, r5, r6, pc}
+ nop
+_02212D4C: .word 0x0222AB4C
+
+ thumb_func_start MOD08_02212D50
+MOD08_02212D50: ; 0x02212D50
+ push {r4, r5, r6, lr}
+ sub sp, #0x90
+ ldr r5, _02212DA4 ; =0x0222ABDC
+ add r4, r0, #0
+ add r3, sp, #0
+ mov r2, #0x12
+_02212D5C:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02212D5C
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD08_02227468
+ mov r1, #0x18
+ add r3, r5, #0
+ mul r3, r1
+ add r2, sp, #0
+ lsl r1, r0, #2
+ add r0, r2, r3
+ ldr r4, [r1, r0]
+ cmp r4, #0xff
+ bne _02212D9C
+ bl ErrorHandling
+_02212D9C:
+ add r0, r4, #0
+ add sp, #0x90
+ pop {r4, r5, r6, pc}
+ nop
+_02212DA4: .word 0x0222ABDC
+
+ thumb_func_start MOD08_02212DA8
+MOD08_02212DA8: ; 0x02212DA8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r0, #0x18
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r4, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ mov r1, #0
+ add r2, sp, #0x10
+_02212DC0:
+ ldr r3, [r5, #0x18]
+ add r1, r1, #1
+ ldr r3, [r3]
+ str r3, [r2]
+ ldr r3, [r0]
+ add r2, r2, #4
+ add r3, r3, #4
+ str r3, [r0]
+ cmp r1, #6
+ blt _02212DC0
+ ldr r1, [r5, #0x18]
+ ldr r1, [r1]
+ str r1, [sp]
+ ldr r1, [r0]
+ add r1, r1, #4
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ str r4, [r0, #0x18]
+ add r0, r5, r4
+ add r0, #0x7c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02212E1E
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ add r1, sp, #4
+ bl FUN_020133EC
+ mov r0, #0
+ ldr r1, [sp, #8]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, sp, #4
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ bl FUN_020133FC
+_02212E1E:
+ add r0, r5, #0
+ bl MOD08_02212CF8
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0xc0
+ add r1, r5, r4
+ add r1, #0x6c
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldrb r1, [r1]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02013440
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r2, r7, #2
+ add r0, r0, r6
+ add r1, sp, #0x10
+ ldr r1, [r1, r2]
+ ldr r0, [r0, #0x1c]
+ ldr r2, [sp]
+ add r3, r5, #0
+ bl MOD08_02215B2C
+ add r5, #0xc0
+ ldr r1, [r5]
+ str r0, [r1, #0x5c]
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212E60
+MOD08_02212E60: ; 0x02212E60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r0, #0x18
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r4, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ mov r1, #0
+ add r2, sp, #0x10
+_02212E78:
+ ldr r3, [r5, #0x18]
+ add r1, r1, #1
+ ldr r3, [r3]
+ str r3, [r2]
+ ldr r3, [r0]
+ add r2, r2, #4
+ add r3, r3, #4
+ str r3, [r0]
+ cmp r1, #4
+ blt _02212E78
+ ldr r1, [r5, #0x18]
+ ldr r1, [r1]
+ str r1, [sp]
+ ldr r1, [r0]
+ add r1, r1, #4
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ str r4, [r0, #0x18]
+ add r0, r5, r4
+ add r0, #0x7c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02212ED6
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ add r1, sp, #4
+ bl FUN_020133EC
+ mov r0, #0
+ ldr r1, [sp, #8]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, sp, #4
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ bl FUN_020133FC
+_02212ED6:
+ add r0, r5, #0
+ bl MOD08_02212D50
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0xc0
+ add r1, r5, r4
+ add r1, #0x6c
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldrb r1, [r1]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02013440
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r2, r7, #2
+ add r0, r0, r6
+ add r1, sp, #0x10
+ ldr r1, [r1, r2]
+ ldr r0, [r0, #0x1c]
+ ldr r2, [sp]
+ add r3, r5, #0
+ bl MOD08_02215B2C
+ add r5, #0xc0
+ ldr r1, [r5]
+ str r0, [r1, #0x5c]
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212F18
+MOD08_02212F18: ; 0x02212F18
+ push {r3, r4, r5, r6, r7, lr}
+ mov r6, #0
+ add r5, r0, #0
+ add r7, r6, #0
+ add r4, r6, #0
+_02212F22:
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _02212F36
+ bl FUN_020133C8
+ add r6, r6, r0
+_02212F36:
+ add r7, r7, #1
+ add r4, r4, #4
+ cmp r7, #0x10
+ blt _02212F22
+ cmp r6, #0
+ bne _02212F50
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ mov r0, #0
+ add r5, #0x8d
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_02212F50:
+ mov r0, #1
+ add r5, #0x8d
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02212F58
+MOD08_02212F58: ; 0x02212F58
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r4, r1, #2
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _02212F7C
+ bl ErrorHandling
+_02212F7C:
+ ldr r0, [r5, #0x18]
+ mov r2, #0
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r5]
+ bl MOD08_02215AA4
+ add r1, r5, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r4
+ str r0, [r1, #0x1c]
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0x8d
+ strb r1, [r0]
+ ldr r0, _02212FA8 ; =MOD08_02211EA0
+ add r5, #0xbc
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+ nop
+_02212FA8: .word MOD08_02211EA0
+
+ thumb_func_start MOD08_02212FAC
+MOD08_02212FAC: ; 0x02212FAC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r4, r1, #2
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _02212FD2
+ bl ErrorHandling
+_02212FD2:
+ ldr r0, [r5, #0x18]
+ mov r1, #0x64
+ ldr r2, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r5]
+ mov r3, #0
+ bl MOD08_02215ACC
+ add r1, r5, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r4
+ str r0, [r1, #0x1c]
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0x8d
+ strb r1, [r0]
+ ldr r0, _02213000 ; =MOD08_02211EA0
+ add r5, #0xbc
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+ nop
+_02213000: .word MOD08_02211EA0
+
+ thumb_func_start MOD08_02213004
+MOD08_02213004: ; 0x02213004
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r4, r1, #2
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ bl MOD08_02215B40
+ add r5, #0xc0
+ ldr r0, [r5]
+ mov r1, #0
+ add r0, r0, r4
+ str r1, [r0, #0x1c]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02213030
+MOD08_02213030: ; 0x02213030
+ ldr r1, [r0, #0x18]
+ mov r3, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ add r2, r0, #0
+_0221303A:
+ ldr r1, [r2, #0x1c]
+ cmp r1, #0
+ bne _02213056
+ ldr r1, [r0, #0x18]
+ add r2, r1, #4
+ lsl r1, r3, #2
+ add r1, r0, r1
+ str r2, [r1, #0x1c]
+ ldr r2, [r0, #0x18]
+ ldr r1, [r2]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ str r1, [r0, #0x18]
+ bx lr
+_02213056:
+ add r3, r3, #1
+ add r2, r2, #4
+ cmp r3, #3
+ blt _0221303A
+ bx lr
+
+ thumb_func_start MOD08_02213060
+MOD08_02213060: ; 0x02213060
+ ldr r1, [r0, #0x18]
+ add r3, r0, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ mov r2, #2
+ add r3, #8
+_0221306C:
+ ldr r1, [r3, #0x1c]
+ cmp r1, #0
+ beq _02213082
+ add r3, r0, #0
+ add r3, #0x1c
+ lsl r2, r2, #2
+ ldr r1, [r3, r2]
+ str r1, [r0, #0x18]
+ mov r0, #0
+ str r0, [r3, r2]
+ bx lr
+_02213082:
+ sub r3, r3, #4
+ sub r2, r2, #1
+ bpl _0221306C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_0221308C
+MOD08_0221308C: ; 0x0221308C
+ push {r3, r4}
+ ldr r2, [r0, #0x18]
+ add r1, r0, #0
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ ldr r4, [r2]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ ldr r3, [r2]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ lsl r2, r4, #2
+ add r2, r0, r2
+ add r2, #0x94
+ ldr r2, [r2]
+ add r1, #0x18
+ cmp r3, r2
+ bne _022130BA
+ ldr r1, [r0, #0x18]
+ ldr r1, [r1]
+ str r1, [r0, #0x18]
+ pop {r3, r4}
+ bx lr
+_022130BA:
+ ldr r0, [r1]
+ add r0, r0, #4
+ str r0, [r1]
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD08_022130C4
+MOD08_022130C4: ; 0x022130C4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl MOD08_02215350
+ cmp r0, #0
+ ldr r0, [r4, #0x18]
+ beq _022130E4
+ ldr r0, [r0]
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+_022130E4:
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022130EC
+MOD08_022130EC: ; 0x022130EC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r1, r0, #4
+ str r1, [r4, #0x18]
+ ldr r0, [r1]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ bl MOD08_02218C48
+ add r7, r0, #0
+ ldr r0, [r4, #0x18]
+ add r2, r4, #0
+ ldr r5, [r0]
+ add r0, r0, #4
+ add r2, #0x18
+ mov r3, #0
+ str r0, [r4, #0x18]
+ cmp r5, #0
+ bls _0221312E
+ add r6, r4, #0
+_02213116:
+ ldr r0, [r4, #0x18]
+ add r3, r3, #1
+ ldr r1, [r0]
+ add r0, r6, #0
+ add r0, #0x94
+ str r1, [r0]
+ ldr r0, [r2]
+ add r6, r6, #4
+ add r0, r0, #4
+ str r0, [r2]
+ cmp r3, r5
+ blo _02213116
+_0221312E:
+ cmp r3, #0xa
+ bge _02213146
+ lsl r0, r3, #2
+ add r2, r4, r0
+ mov r1, #0
+_02213138:
+ add r0, r2, #0
+ add r0, #0x94
+ add r3, r3, #1
+ add r2, r2, #4
+ str r1, [r0]
+ cmp r3, #0xa
+ blt _02213138
+_02213146:
+ add r0, r4, #0
+ blx r7
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0221314C
+MOD08_0221314C: ; 0x0221314C
+ ldr r2, [r0, #0x18]
+ add r1, r0, #0
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ add r2, r0, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r1, #0x18
+ ldrh r3, [r2, #0x10]
+ mov r2, #1
+ tst r2, r3
+ beq _0221316A
+ ldr r2, [r1]
+ add r2, r2, #4
+ str r2, [r1]
+_0221316A:
+ ldr r2, [r0, #0x18]
+ ldr r1, [r2]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ str r1, [r0, #0x18]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213178
+MOD08_02213178: ; 0x02213178
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x18]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ cmp r2, #0
+ bne _0221319A
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldrh r1, [r1, #0x14]
+ bl MOD08_02227470
+ b _022131A6
+_0221319A:
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldrh r1, [r1, #0x16]
+ bl MOD08_02227470
+_022131A6:
+ cmp r0, #4
+ bne _022131B0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+_022131B0:
+ ldr r1, [r4, #0x18]
+ ldr r0, [r1]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022131BC
+MOD08_022131BC: ; 0x022131BC
+ push {r4, r5}
+ sub sp, #0x10
+ ldr r5, _02213214 ; =0x0222AA3C
+ add r2, sp, #0
+ add r4, r0, #0
+ add r3, r2, #0
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r1, [r4, #0x18]
+ add r0, r4, #0
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r0, #0x18
+ ldr r1, [r1, #0xc]
+ cmp r1, #0
+ beq _02213202
+ ldr r2, [r0]
+ add r2, r2, #4
+ str r2, [r0]
+ mov r2, #0
+_022131EE:
+ ldr r5, [r3]
+ tst r5, r1
+ bne _02213202
+ ldr r5, [r0]
+ add r2, r2, #1
+ add r5, r5, #4
+ add r3, r3, #4
+ str r5, [r0]
+ cmp r2, #4
+ blo _022131EE
+_02213202:
+ ldr r1, [r4, #0x18]
+ ldr r0, [r1]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ add sp, #0x10
+ pop {r4, r5}
+ bx lr
+ nop
+_02213214: .word 0x0222AA3C
+
+ thumb_func_start MOD08_02213218
+MOD08_02213218: ; 0x02213218
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x18]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02213236
+ ldr r1, [r4, #0x18]
+ ldr r0, [r1]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+_02213236:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02213240
+MOD08_02213240: ; 0x02213240
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ add r1, r5, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldrh r1, [r1, #0x14]
+ bl MOD08_02227470
+ add r1, r5, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r4, r0, #0
+ ldrh r1, [r1, #0x16]
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r4, r0
+ bne _02213276
+ ldr r1, [r5, #0x18]
+ ldr r0, [r1]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r5, #0x18]
+ pop {r3, r4, r5, pc}
+_02213276:
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02213280
+MOD08_02213280: ; 0x02213280
+ ldr r2, [r0, #0x18]
+ add r1, r0, #0
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ ldr r3, [r2]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ add r2, r0, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r1, #0x18
+ ldrh r2, [r2, #0x10]
+ cmp r3, r2
+ bne _022132AA
+ ldr r0, [r0, #0x18]
+ ldr r2, [r1]
+ ldr r0, [r0]
+ lsl r0, r0, #2
+ add r0, r2, r0
+ str r0, [r1]
+ bx lr
+_022132AA:
+ ldr r0, [r1]
+ add r0, r0, #4
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022132B4
+MOD08_022132B4: ; 0x022132B4
+ ldr r1, [r0, #0x18]
+ add r2, r1, #4
+ str r2, [r0, #0x18]
+ ldr r1, [r2]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ str r1, [r0, #0x18]
+ bx lr
+
+ thumb_func_start MOD08_022132C4
+MOD08_022132C4: ; 0x022132C4
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ cmp r1, #7
+ bhi _022133A2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022132D8: ; jump table
+ .short _022132E8 - _022132D8 - 2 ; case 0
+ .short _022132F0 - _022132D8 - 2 ; case 1
+ .short _022132F8 - _022132D8 - 2 ; case 2
+ .short _02213306 - _022132D8 - 2 ; case 3
+ .short _02213314 - _022132D8 - 2 ; case 4
+ .short _0221333A - _022132D8 - 2 ; case 5
+ .short _02213360 - _022132D8 - 2 ; case 6
+ .short _02213382 - _022132D8 - 2 ; case 7
+_022132E8:
+ add r4, #0xc0
+ ldr r0, [r4]
+ ldrh r6, [r0, #0x14]
+ b _022133A2
+_022132F0:
+ add r4, #0xc0
+ ldr r0, [r4]
+ ldrh r6, [r0, #0x16]
+ b _022133A2
+_022132F8:
+ add r4, #0xc0
+ ldr r1, [r4]
+ ldrh r1, [r1, #0x14]
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _022133A2
+_02213306:
+ add r4, #0xc0
+ ldr r1, [r4]
+ ldrh r1, [r1, #0x16]
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _022133A2
+_02213314:
+ mov r6, #0xff
+ mov r5, #0
+_02213318:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #0
+ beq _02213328
+ cmp r0, #2
+ bne _0221332C
+_02213328:
+ add r6, r5, #0
+ b _02213332
+_0221332C:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02213318
+_02213332:
+ cmp r6, #0xff
+ bne _022133A2
+ mov r6, #0
+ b _022133A2
+_0221333A:
+ mov r6, #0xff
+ mov r5, #0
+_0221333E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #1
+ beq _0221334E
+ cmp r0, #3
+ bne _02213352
+_0221334E:
+ add r6, r5, #0
+ b _02213358
+_02213352:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0221333E
+_02213358:
+ cmp r6, #0xff
+ bne _022133A2
+ mov r6, #0
+ b _022133A2
+_02213360:
+ mov r6, #0xff
+ mov r5, #0
+_02213364:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #4
+ bne _02213374
+ add r6, r5, #0
+ b _0221337A
+_02213374:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02213364
+_0221337A:
+ cmp r6, #0xff
+ bne _022133A2
+ mov r6, #0
+ b _022133A2
+_02213382:
+ mov r6, #0xff
+ mov r5, #0
+_02213386:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #5
+ bne _02213396
+ add r6, r5, #0
+ b _0221339C
+_02213396:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02213386
+_0221339C:
+ cmp r6, #0xff
+ bne _022133A2
+ mov r6, #0
+_022133A2:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022133A8
+MOD08_022133A8: ; 0x022133A8
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ beq _022133C4
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ ldrb r1, [r5, #4]
+ ldrb r0, [r5, #5]
+ cmp r1, r0
+ bne _022133F2
+ mov r0, #0
+ strb r0, [r5, #4]
+_022133C4:
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ ldr r0, [r5, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl FUN_0200C714
+_022133F2:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_022133F4
+MOD08_022133F4: ; 0x022133F4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ beq _02213410
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ ldrb r1, [r5, #4]
+ ldrb r0, [r5, #5]
+ cmp r1, r0
+ bne _02213452
+ mov r0, #0
+ strb r0, [r5, #4]
+_02213410:
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ ldr r0, [r5, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ sub r6, #0x28
+ ldr r0, [r5]
+ mov r1, #2
+ mov r2, #0
+ neg r3, r6
+ bl FUN_020179E0
+ sub r4, #0x28
+ ldr r0, [r5]
+ mov r1, #2
+ mov r2, #3
+ neg r3, r4
+ bl FUN_020179E0
+_02213452:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02213454
+MOD08_02213454: ; 0x02213454
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ cmp r1, #4
+ bne _02213480
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0221349E
+ ldr r0, [r0, #0xc]
+ bl FUN_0200CAB4
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0x5e
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02213480:
+ mov r0, #0x59
+ lsl r0, r0, #2
+ lsl r5, r1, #2
+ add r4, r4, r0
+ ldr r0, [r4, r5]
+ cmp r0, #0
+ beq _0221349E
+ ldr r0, [r0, #0xc]
+ bl FUN_0200CAB4
+ ldr r0, [r4, r5]
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, r5]
+_0221349E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022134A0
+MOD08_022134A0: ; 0x022134A0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022134A4
+MOD08_022134A4: ; 0x022134A4
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022134A8
+MOD08_022134A8: ; 0x022134A8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r2, r1, #4
+ str r2, [r5, #0x18]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r5, #0x18]
+ ldr r4, [r2]
+ add r2, r2, #4
+ str r2, [r5, #0x18]
+ bl MOD08_022132C4
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsl r0, r6, #2
+ add r0, r1, r0
+ add r0, #0xb0
+ ldr r1, [r0]
+ ldr r0, [r1, #4]
+ str r0, [sp, #0x14]
+ ldr r0, [r1, #8]
+ str r0, [sp, #0x10]
+ ldr r0, [r1]
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022134FE
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154A8
+ bl MOD08_0222A6C8
+ cmp r0, #1
+ bne _022134FE
+ mov r7, #0xc9
+ b _02213500
+_022134FE:
+ mov r7, #0xc8
+_02213500:
+ mov r0, #2
+ bl FUN_020187B0
+ mov r2, #0x19
+ mov r1, #0
+ lsl r2, r2, #8
+ bl MI_CpuFill8
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc4
+ mov r3, #0x32
+ ldr r0, [r0]
+ ldr r2, [sp, #0x18]
+ mov r1, #2
+ lsl r3, r3, #6
+ bl FUN_02017E14
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x80
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ ldr r3, [r5]
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r2, r5, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #7
+ add r1, r7, #0
+ mov r3, #2
+ bl FUN_020068C8
+ cmp r4, #1
+ bne _022135AC
+ ldr r0, [r5]
+ mov r1, #0x10
+ bl FUN_02016998
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ ldr r0, [r5, r1]
+ add r1, r6, #0
+ str r2, [r0]
+ add r0, r5, #0
+ bl MOD08_022154D4
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ str r0, [r2, #8]
+ ldr r0, [r5, r1]
+ mov r2, #0
+ strb r2, [r0, #4]
+ ldr r0, [r5, r1]
+ strb r2, [r0, #5]
+ ldr r0, _02213628 ; =MOD08_022133F4
+ ldr r1, [r5, r1]
+ ldr r2, _0221362C ; =0x00001001
+ bl FUN_0200CA44
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ str r0, [r1, #0xc]
+_022135AC:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ add r0, r5, #0
+ add r0, #0xc4
+ sub r7, #0x28
+ ldr r0, [r0]
+ mov r1, #2
+ mov r2, #0
+ neg r3, r7
+ bl FUN_020179E0
+ add r0, r5, #0
+ add r0, #0xc4
+ sub r4, #0x28
+ ldr r0, [r0]
+ mov r1, #2
+ mov r2, #3
+ neg r3, r4
+ bl FUN_020179E0
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ mov r0, #2
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02213628: .word MOD08_022133F4
+_0221362C: .word 0x00001001
+
+ thumb_func_start MOD08_02213630
+MOD08_02213630: ; 0x02213630
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ mov r0, #2
+ bl FUN_020187B0
+ mov r2, #0x19
+ mov r1, #0
+ lsl r2, r2, #8
+ bl MI_CpuFill8
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD08_02213454
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02213658
+MOD08_02213658: ; 0x02213658
+ push {r4, lr}
+ sub sp, #0x18
+ ldr r3, _022136CC ; =0x0222AA7C
+ add r2, sp, #0
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ mov r1, #0x4e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r0, #0xac
+ ldr r0, [r0]
+ mov r2, #5
+ bl FUN_0200BBF0
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #0x4e
+ add r0, #0xac
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, sp, #0
+ bl FUN_0200BF60
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+_022136CC: .word 0x0222AA7C
+
+ thumb_func_start MOD08_022136D0
+MOD08_022136D0: ; 0x022136D0
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ ldr r1, _0221377C ; =0x00004E21
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r2, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r4, r2, r1
+ ldrh r3, [r0, #0x14]
+ lsr r2, r1, #2
+ add r0, #0xac
+ mul r2, r3
+ add r4, r4, r2
+ mov r2, #0
+ str r2, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ str r4, [sp, #8]
+ lsr r1, r1, #6
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ mov r2, #0x1b
+ mov r3, #0x28
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r3, #0x27
+ str r3, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ add r2, r5, #0
+ add r0, r5, #0
+ str r4, [sp, #0x14]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, #0xc8
+ add r2, #0xac
+ lsl r3, r3, #3
+ ldr r0, [r0]
+ ldr r2, [r2]
+ ldr r3, [r5, r3]
+ mov r1, #2
+ bl FUN_0200C0DC
+ mov r0, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x4e
+ str r4, [sp, #4]
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r1, r1, #2
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ mov r2, #0x1b
+ mov r3, #0x29
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x4e
+ str r4, [sp, #4]
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r1, r1, #2
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ mov r2, #0x1b
+ mov r3, #0x2a
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221377C: .word 0x00004E21
+
+ thumb_func_start MOD08_02213780
+MOD08_02213780: ; 0x02213780
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x70
+ add r4, r0, #0
+ ldr r1, [r4, #0x18]
+ ldr r6, _02213994 ; =0x00004E21
+ add r2, r1, #4
+ str r2, [r4, #0x18]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r4, #0x18]
+ mov ip, r1
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r4, #0x18]
+ str r1, [sp, #0x10]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r4, #0x18]
+ str r1, [sp, #0xc]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r4, #0x18]
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r1, r1, r6
+ ldrh r3, [r2, #0x14]
+ lsr r2, r6, #2
+ mul r2, r3
+ add r2, r1, r2
+ str r2, [sp, #0x58]
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ ldrh r3, [r2, #0x14]
+ lsr r2, r6, #2
+ mul r2, r3
+ add r2, r1, r2
+ str r2, [sp, #0x5c]
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ ldrh r3, [r2, #0x14]
+ lsr r2, r6, #2
+ mul r2, r3
+ add r2, r1, r2
+ str r2, [sp, #0x60]
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ lsr r3, r6, #2
+ ldrh r2, [r2, #0x14]
+ mul r3, r2
+ add r1, r1, r3
+ str r1, [sp, #0x64]
+ mov r1, #0
+ str r1, [sp, #0x68]
+ str r1, [sp, #0x6c]
+ mov r1, ip
+ bl MOD08_022132C4
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ ldr r0, [sp, #0x1c]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ add r0, #0xb0
+ ldr r1, [r0]
+ ldr r0, [r1, #4]
+ str r0, [sp, #0x18]
+ ldr r0, [r1, #8]
+ str r0, [sp, #0x14]
+ ldr r0, [r1]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ add r0, r4, #0
+ bl MOD08_022154D4
+ add r6, r0, #0
+ beq _02213848
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ add r0, r6, #0
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+_02213848:
+ add r0, sp, #0x24
+ strh r7, [r0]
+ strh r5, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ strh r1, [r0, #6]
+ mov r0, #0x64
+ str r0, [sp, #0x2c]
+ mov r0, #1
+ str r1, [sp, #0x30]
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x50]
+ str r1, [sp, #0x54]
+ add r2, sp, #0x58
+ add r3, sp, #0x24
+_02213866:
+ ldr r0, [r2]
+ add r1, r1, #1
+ str r0, [r3, #0x14]
+ add r2, r2, #4
+ add r3, r3, #4
+ cmp r1, #6
+ blt _02213866
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #0x4e
+ add r0, #0xac
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, sp, #0x24
+ bl FUN_0200C154
+ add r7, r0, #0
+ cmp r6, #0
+ bne _02213898
+ mov r1, #0
+ bl FUN_0200C644
+ b _022138AC
+_02213898:
+ add r0, r6, #0
+ mov r1, #6
+ bl FUN_0200782C
+ cmp r0, #1
+ bne _022138AC
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_0200C644
+_022138AC:
+ add r0, r4, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022138CE
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ bl MOD08_022154A8
+ bl MOD08_0222A6C8
+ cmp r0, #1
+ bne _022138CE
+ add r0, r7, #0
+ mov r1, #1
+ bl FUN_0200C8D0
+_022138CE:
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ bl MOD08_022154D4
+ cmp r0, #0
+ beq _022138F0
+ ldr r0, [r7]
+ bl FUN_02020350
+ add r1, r0, #0
+ mov r3, #0x32
+ ldr r1, [r1, #4]
+ ldr r2, [sp, #0x20]
+ mov r0, #0x13
+ lsl r3, r3, #6
+ bl FUN_0201C2C8
+_022138F0:
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ bl MOD08_022154D4
+ cmp r0, #0
+ beq _02213926
+ ldr r0, [r7]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ mov r1, #2
+ str r1, [sp]
+ mov r1, #0x20
+ lsl r0, r0, #0x14
+ str r1, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ ldr r3, [r4]
+ bl FUN_020030E8
+_02213926:
+ ldr r0, [sp, #0xc]
+ lsl r5, r0, #2
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ add r6, r4, r0
+ ldr r0, [r6, r5]
+ cmp r0, #0
+ beq _0221393A
+ bl ErrorHandling
+_0221393A:
+ mov r0, #0x15
+ str r7, [r6, r5]
+ mov r2, #1
+ add r1, r4, r5
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ bne _02213990
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ bl MOD08_022154D4
+ cmp r0, #0
+ beq _02213990
+ mov r0, #0x59
+ lsl r0, r0, #2
+ add r6, r4, r0
+ ldr r0, [r4]
+ mov r1, #0x10
+ bl FUN_02016998
+ str r0, [r6, r5]
+ ldr r0, [r6, r5]
+ ldr r1, [sp, #0x1c]
+ str r7, [r0]
+ add r0, r4, #0
+ bl MOD08_022154D4
+ ldr r1, [r6, r5]
+ ldr r2, _02213998 ; =0x00001001
+ str r0, [r1, #8]
+ ldr r0, [r6, r5]
+ mov r1, #0
+ strb r1, [r0, #4]
+ ldr r0, [r6, r5]
+ strb r1, [r0, #5]
+ ldr r0, _0221399C ; =MOD08_022133A8
+ ldr r1, [r6, r5]
+ bl FUN_0200CA44
+ ldr r1, [r6, r5]
+ str r0, [r1, #0xc]
+_02213990:
+ add sp, #0x70
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02213994: .word 0x00004E21
+_02213998: .word 0x00001001
+_0221399C: .word MOD08_022133A8
+
+ thumb_func_start MOD08_022139A0
+MOD08_022139A0: ; 0x022139A0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _022139C2
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200C398
+_022139C2:
+ mov r0, #0x4e
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022139CC
+MOD08_022139CC: ; 0x022139CC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ lsl r4, r1, #2
+ add r6, r5, r0
+ ldr r0, [r6, r4]
+ cmp r0, #0
+ beq _022139EE
+ bl FUN_0200C3DC
+_022139EE:
+ mov r0, #0x15
+ mov r2, #0
+ add r1, r5, r4
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ str r2, [r6, r4]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_022139FC
+MOD08_022139FC: ; 0x022139FC
+ push {r3, lr}
+ ldr r2, [r1, #0xc]
+ cmp r2, #0
+ bne _02213A0A
+ bl FUN_0200CAB4
+ pop {r3, pc}
+_02213A0A:
+ mov r0, #0x4e
+ ldr r2, [r1]
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02213A1C
+ ldr r0, [r1, #4]
+ bl FUN_0200BC1C
+_02213A1C:
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02213A20
+MOD08_02213A20: ; 0x02213A20
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r6, r5, #0
+ add r1, r0, #4
+ str r1, [r5, #0x18]
+ ldr r0, [r1]
+ add r6, #0x54
+ str r0, [sp]
+ add r0, r1, #4
+ str r0, [r5, #0x18]
+ ldr r2, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ lsl r4, r2, #4
+ str r0, [sp, #8]
+ add r0, #0x4c
+ lsl r1, r1, #2
+ str r0, [sp, #8]
+ str r5, [r0, r4]
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r3, [r5, r0]
+ add r2, r5, r4
+ str r3, [r2, #0x50]
+ add r1, r5, r1
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #0
+ str r0, [r6, r4]
+ mov r0, #1
+ str r0, [r2, #0x58]
+ ldr r0, [r6, r4]
+ bl FUN_0200C644
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ beq _02213A7C
+ b _02213BCA
+_02213A7C:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227468
+ str r0, [sp, #4]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227468
+ add r7, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD08_022132C4
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022154D4
+ cmp r0, #0
+ beq _02213AB8
+ mov r1, #6
+ bl FUN_0200782C
+ b _02213ABA
+_02213AB8:
+ mov r0, #0
+_02213ABA:
+ cmp r0, #1
+ ldr r0, [r6, r4]
+ bne _02213AC8
+ mov r1, #0
+ bl FUN_0200C644
+ b _02213ACE
+_02213AC8:
+ mov r1, #1
+ bl FUN_0200C644
+_02213ACE:
+ ldr r0, [sp]
+ cmp r0, #3
+ bhi _02213BBC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213AE0: ; jump table
+ .short _02213AE8 - _02213AE0 - 2 ; case 0
+ .short _02213B36 - _02213AE0 - 2 ; case 1
+ .short _02213B0E - _02213AE0 - 2 ; case 2
+ .short _02213B7A - _02213AE0 - 2 ; case 3
+_02213AE8:
+ ldr r0, [sp, #4]
+ sub r0, r0, #3
+ cmp r0, #1
+ bhi _02213AFA
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213AFA:
+ add r5, #0x54
+ ldr r0, [r5, r4]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r5, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B0E:
+ ldr r0, [sp, #4]
+ cmp r0, #5
+ beq _02213B18
+ cmp r0, #2
+ bne _02213B22
+_02213B18:
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B22:
+ add r5, #0x54
+ ldr r0, [r5, r4]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r5, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B36:
+ cmp r7, #5
+ bhi _02213BBC
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213B46: ; jump table
+ .short _02213BBC - _02213B46 - 2 ; case 0
+ .short _02213BBC - _02213B46 - 2 ; case 1
+ .short _02213B52 - _02213B46 - 2 ; case 2
+ .short _02213B5C - _02213B46 - 2 ; case 3
+ .short _02213B66 - _02213B46 - 2 ; case 4
+ .short _02213B70 - _02213B46 - 2 ; case 5
+_02213B52:
+ ldr r0, [r6, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B5C:
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B66:
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B70:
+ ldr r0, [r6, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B7A:
+ cmp r7, #5
+ bhi _02213BBC
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213B8A: ; jump table
+ .short _02213BBC - _02213B8A - 2 ; case 0
+ .short _02213BBC - _02213B8A - 2 ; case 1
+ .short _02213B96 - _02213B8A - 2 ; case 2
+ .short _02213BA0 - _02213B8A - 2 ; case 3
+ .short _02213BAA - _02213B8A - 2 ; case 4
+ .short _02213BB4 - _02213B8A - 2 ; case 5
+_02213B96:
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213BA0:
+ ldr r0, [r6, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213BAA:
+ ldr r0, [r6, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213BB4:
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+_02213BBC:
+ ldr r1, [sp, #8]
+ mov r2, #1
+ ldr r0, _02213BD0 ; =MOD08_022139FC
+ add r1, r1, r4
+ lsl r2, r2, #0xc
+ bl FUN_0200CA44
+_02213BCA:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02213BD0: .word MOD08_022139FC
+
+ thumb_func_start MOD08_02213BD4
+MOD08_02213BD4: ; 0x02213BD4
+ ldr r1, [r0, #0x18]
+ mov r2, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r1, r3, #4
+ add r0, r0, r1
+ str r2, [r0, #0x58]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213BEC
+MOD08_02213BEC: ; 0x02213BEC
+ ldr r1, [r0, #0x18]
+ ldr r3, _02213BFC ; =MOD08_02213454
+ add r2, r1, #4
+ str r2, [r0, #0x18]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ bx r3
+ .align 2, 0
+_02213BFC: .word MOD08_02213454
+
+ thumb_func_start MOD08_02213C00
+MOD08_02213C00: ; 0x02213C00
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ add r0, r0, r3
+ add r0, #0x6c
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213C1C
+MOD08_02213C1C: ; 0x02213C1C
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ add r0, r0, r3
+ add r0, #0x7c
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213C38
+MOD08_02213C38: ; 0x02213C38
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213C3C
+MOD08_02213C3C: ; 0x02213C3C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213C40
+MOD08_02213C40: ; 0x02213C40
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r5, r0, #0
+ ldrh r1, [r1, #0x14]
+ add r0, r4, #0
+ add r6, r2, #0
+ bl MOD08_02227470
+ add r7, r0, #0
+ add r0, r4, #0
+ add r4, #0xc0
+ ldr r1, [r4]
+ ldrh r1, [r1, #0x16]
+ bl MOD08_02227470
+ lsl r1, r6, #2
+ add r1, r5, r1
+ ldr r1, [r1, #0x1c]
+ cmp r1, #2
+ bne _02213C84
+ cmp r7, r0
+ bne _02213C7C
+ cmp r0, #3
+ beq _02213C78
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02213C78:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02213C7C:
+ cmp r0, #3
+ bne _02213C90
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02213C84:
+ cmp r1, #0
+ beq _02213C90
+ cmp r0, #3
+ bne _02213C90
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02213C90:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02213C94
+MOD08_02213C94: ; 0x02213C94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0
+ add r5, r1, #0
+ add r0, r3, #0
+ mov r1, #0
+ add r4, r2, #0
+ str r3, [sp, #0x10]
+ bl MOD08_022156AC
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r2, r5, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #7
+ add r3, r4, #0
+ bl FUN_0200687C
+ ldr r0, [sp, #0x10]
+ mov r1, #1
+ bl MOD08_022156AC
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x90
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ ldr r3, [r5]
+ mov r1, #7
+ bl FUN_020030E8
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ add r0, r5, #0
+ mov r6, #2
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02213D08
+ mov r6, #4
+ b _02213D18
+_02213D08:
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #7
+ bl MOD08_02213C40
+ cmp r0, #1
+ bne _02213D18
+ mov r6, #3
+_02213D18:
+ ldr r0, [sp, #0x10]
+ add r1, r6, #0
+ bl MOD08_022156AC
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r5, #0xc4
+ str r0, [sp, #0xc]
+ ldr r2, [r5]
+ mov r0, #7
+ add r3, r4, #0
+ bl FUN_020068C8
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02213D40
+MOD08_02213D40: ; 0x02213D40
+ lsl r0, r0, #0x10
+ and r0, r1
+ cmp r1, r0
+ bne _02213D4C
+ mov r0, #1
+ bx lr
+_02213D4C:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD08_02213D50
+MOD08_02213D50: ; 0x02213D50
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ ldr r3, _02213DA0 ; =0x0222AA2C
+ add r2, sp, #0
+ add r5, r0, #0
+ add r4, r2, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r7, _02213DA4 ; =0x0222AADC
+ mov r6, #0
+_02213D68:
+ ldr r0, [r5, #0x18]
+ ldr r1, [r4]
+ bl MOD08_02213D40
+ cmp r0, #0
+ beq _02213D92
+ ldr r0, [r4]
+ mov r1, #0
+ lsr r2, r0, #0x10
+ cmp r2, #2
+ blt _02213D8A
+_02213D7E:
+ lsr r0, r2, #0x1f
+ add r0, r2, r0
+ asr r2, r0, #1
+ add r1, r1, #1
+ cmp r2, #2
+ bge _02213D7E
+_02213D8A:
+ lsl r1, r1, #2
+ ldr r1, [r7, r1]
+ add r0, r5, #0
+ blx r1
+_02213D92:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blo _02213D68
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02213DA0: .word 0x0222AA2C
+_02213DA4: .word 0x0222AADC
+
+ thumb_func_start MOD08_02213DA8
+MOD08_02213DA8: ; 0x02213DA8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ mov r1, #0x4c
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _02213DC0
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02213DC0:
+ mov r1, #0
+ mov r2, #0x4c
+ bl Call_FillMemWithValue
+ mov r0, #0
+ str r0, [r4]
+ strb r0, [r4, #5]
+ str r5, [r4, #0x48]
+ strb r0, [r4, #9]
+ mov r0, #0x1f
+ strb r0, [r4, #0xa]
+ mov r0, #0x1d
+ strb r0, [r4, #0xb]
+ mov r0, #2
+ strb r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ cmp r0, #1
+ bne _02213DFA
+ mov r0, #0
+ strb r0, [r4, #9]
+ mov r0, #0x1f
+ strb r0, [r4, #0xa]
+ mov r0, #0xf
+ strb r0, [r4, #0xb]
+ mov r0, #7
+ strb r0, [r4, #0xc]
+_02213DFA:
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ cmp r0, #2
+ bne _02213E16
+ mov r0, #7
+ strb r0, [r4, #9]
+ mov r0, #0xf
+ strb r0, [r4, #0xa]
+ mov r0, #0x1d
+ strb r0, [r4, #0xb]
+ mov r0, #2
+ strb r0, [r4, #0xc]
+_02213E16:
+ mov r1, #0
+ add r2, r5, #0
+ add r3, r4, #0
+_02213E1C:
+ add r0, r2, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r1, r1, #1
+ str r0, [r3, #0x1c]
+ add r2, r2, #4
+ add r3, r3, #4
+ cmp r1, #0xa
+ blt _02213E1C
+ mov r0, #0x5f
+ mov r1, #1
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02213E3C
+MOD08_02213E3C: ; 0x02213E3C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ beq _02213E50
+ cmp r0, #1
+ beq _02213E8E
+ cmp r0, #2
+ beq _02213EE0
+ b _02213F2A
+_02213E50:
+ ldr r0, [r5, #0x48]
+ mov r1, #2
+ bl MOD08_0221477C
+ ldr r0, [r5, #0x48]
+ mov r1, #2
+ bl MOD08_02215600
+ add r4, r0, #0
+ ldr r0, [r5, #0x48]
+ mov r1, #1
+ bl MOD08_02215600
+ lsl r1, r4, #0x18
+ mov r0, #3
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ lsl r1, r4, #0x18
+ mov r0, #2
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ ldrb r0, [r5, #5]
+ add r0, r0, #1
+ strb r0, [r5, #5]
+ b _02213F2E
+_02213E8E:
+ ldr r0, [r5, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r2, #2
+ add r3, r1, #0
+ bl FUN_020170F4
+ ldr r0, [r5, #0x48]
+ bl MOD08_02212004
+ cmp r0, #1
+ beq _02213EB8
+ ldr r0, [r5, #0x48]
+ mov r2, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020170F4
+_02213EB8:
+ ldr r1, [r5, #0x48]
+ ldr r3, [r5, #0x10]
+ add r0, r5, #0
+ mov r2, #3
+ bl MOD08_02213C94
+ ldrb r0, [r5, #9]
+ mov r1, #4
+ mov r2, #8
+ str r0, [sp]
+ ldrb r3, [r5, #0xa]
+ ldr r0, _02213F34 ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ add r0, r5, #0
+ bl MOD08_02213D50
+ ldrb r0, [r5, #5]
+ add r0, r0, #1
+ strb r0, [r5, #5]
+_02213EE0:
+ ldrb r1, [r5, #9]
+ ldrb r0, [r5, #0xb]
+ mov r2, #0
+ cmp r1, r0
+ bhs _02213EF0
+ add r0, r1, #2
+ strb r0, [r5, #9]
+ b _02213EF2
+_02213EF0:
+ add r2, r2, #1
+_02213EF2:
+ ldrb r1, [r5, #0xa]
+ ldrb r0, [r5, #0xc]
+ cmp r1, r0
+ bls _02213F00
+ sub r0, r1, #2
+ strb r0, [r5, #0xa]
+ b _02213F02
+_02213F00:
+ add r2, r2, #1
+_02213F02:
+ cmp r2, #2
+ bne _02213F14
+ ldrb r0, [r5, #0xb]
+ strb r0, [r5, #9]
+ ldrb r0, [r5, #0xc]
+ strb r0, [r5, #0xa]
+ ldrb r0, [r5, #5]
+ add r0, r0, #1
+ strb r0, [r5, #5]
+_02213F14:
+ ldrb r0, [r5, #9]
+ ldrb r1, [r5, #0xa]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02213F38 ; =0x04000052
+ strh r1, [r0]
+ ldrb r0, [r5, #5]
+ cmp r0, #2
+ beq _02213F2E
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02213F2A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02213F2E:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_02213F34: .word 0x04000050
+_02213F38: .word 0x04000052
+
+ thumb_func_start MOD08_02213F3C
+MOD08_02213F3C: ; 0x02213F3C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldrb r0, [r4, #5]
+ cmp r0, #4
+ bls _02213F4A
+ b _0221411C
+_02213F4A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213F56: ; jump table
+ .short _02213F60 - _02213F56 - 2 ; case 0
+ .short _02213F6E - _02213F56 - 2 ; case 1
+ .short _02213FB0 - _02213F56 - 2 ; case 2
+ .short _02213FF6 - _02213F56 - 2 ; case 3
+ .short _022140F8 - _02213F56 - 2 ; case 4
+_02213F60:
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02213F6E:
+ ldr r0, [r4, #0x48]
+ mov r1, #2
+ bl MOD08_02215600
+ add r5, r0, #0
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ bl MOD08_02215600
+ lsl r1, r5, #0x18
+ mov r0, #3
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ lsl r1, r5, #0x18
+ mov r0, #2
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldrb r0, [r4, #0xa]
+ mov r1, #4
+ mov r2, #8
+ str r0, [sp]
+ ldrb r3, [r4, #9]
+ ldr r0, _02214128 ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ add r0, r4, #0
+ bl MOD08_02213D50
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02213FB0:
+ ldrb r1, [r4, #9]
+ ldrb r0, [r4, #0xb]
+ mov r2, #0
+ cmp r1, r0
+ bhs _02213FC0
+ add r0, r1, #2
+ strb r0, [r4, #9]
+ b _02213FC2
+_02213FC0:
+ add r2, r2, #1
+_02213FC2:
+ ldrb r1, [r4, #0xa]
+ ldrb r0, [r4, #0xc]
+ cmp r1, r0
+ bls _02213FD0
+ sub r0, r1, #2
+ strb r0, [r4, #0xa]
+ b _02213FD2
+_02213FD0:
+ add r2, r2, #1
+_02213FD2:
+ cmp r2, #2
+ bne _02213FE8
+ ldrb r0, [r4, #0xb]
+ add r0, r0, #2
+ strb r0, [r4, #9]
+ ldrb r0, [r4, #0xc]
+ sub r0, r0, #2
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02213FE8:
+ ldrb r0, [r4, #0xa]
+ ldrb r1, [r4, #9]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221412C ; =0x04000052
+ strh r1, [r0]
+ b _02214122
+_02213FF6:
+ add r0, r4, #0
+ add r0, #0x44
+ ldrh r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _0221400A
+ ldr r0, [r4, #0x48]
+ bl MOD08_02214524
+_0221400A:
+ add r0, r4, #0
+ add r0, #0x44
+ ldrh r0, [r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _0221401E
+ ldr r0, [r4, #0x48]
+ bl MOD08_02214524
+_0221401E:
+ ldr r0, [r4, #0x48]
+ mov r2, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r2, #2
+ mov r3, #4
+ bl FUN_020170F4
+ ldr r0, [r4, #0x48]
+ bl MOD08_02212004
+ cmp r0, #0
+ bne _02214078
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r2, #0
+ mov r3, #1
+ bl FUN_020170F4
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ bl MOD08_02215638
+ ldr r0, [r4, #0x48]
+ bl MOD08_02215660
+ b _022140CC
+_02214078:
+ ldr r2, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r2]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r2, r1]
+ add r1, r1, #4
+ ldr r1, [r2, r1]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r3, #3
+ bl FUN_0200687C
+ mov r2, #0x66
+ lsl r2, r2, #2
+ add r1, r2, #0
+ ldr r3, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r3, r2]
+ sub r1, #0x14
+ lsl r0, r0, #5
+ str r0, [sp, #4]
+ sub r0, r2, #4
+ ldr r0, [r3, r0]
+ sub r2, #0xc
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r3, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ ldr r1, [r3, r1]
+ ldr r2, [r3, r2]
+ ldr r3, [r3]
+ bl FUN_020030E8
+_022140CC:
+ ldr r2, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r2]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r2, r1]
+ add r1, #0xc
+ ldr r1, [r2, r1]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r3, #3
+ bl FUN_020068C8
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ b _02214122
+_022140F8:
+ ldr r0, [r4, #0x48]
+ bl MOD08_02212004
+ cmp r0, #0
+ bne _02214108
+ bl FUN_02231678
+ b _0221410C
+_02214108:
+ bl FUN_02233560
+_0221410C:
+ ldr r0, [r4, #0x48]
+ mov r1, #2
+ bl MOD08_02214850
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ b _02214122
+_0221411C:
+ add sp, #0x10
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02214122:
+ mov r0, #1
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214128: .word 0x04000050
+_0221412C: .word 0x04000052
+
+ thumb_func_start MOD08_02214130
+MOD08_02214130: ; 0x02214130
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldrb r0, [r4, #5]
+ cmp r0, #0
+ beq _02214142
+ cmp r0, #1
+ beq _022141BE
+ b _0221423A
+_02214142:
+ ldrb r0, [r4, #0xd]
+ ldr r2, [r4, #0x48]
+ cmp r0, #0
+ bne _02214180
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ mov r5, #0x67
+ add r0, r2, #0
+ str r3, [sp, #8]
+ lsl r5, r5, #2
+ ldr r2, [r2, r5]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x48]
+ add r2, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ add r2, #0x64
+ mov r3, #0x10
+ bl FUN_02003A64
+ b _022141B8
+_02214180:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _02214254 ; =0x0000FFFF
+ mov r5, #0x67
+ str r0, [sp, #8]
+ add r0, r2, #0
+ lsl r5, r5, #2
+ ldr r2, [r2, r5]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ ldr r0, _02214254 ; =0x0000FFFF
+ add r2, r5, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x48]
+ mov r1, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ add r2, #0x64
+ mov r3, #0x10
+ bl FUN_02003A64
+_022141B8:
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_022141BE:
+ ldr r0, [r4, #0x48]
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0221424E
+ ldr r0, [r4, #0x48]
+ mov r2, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020170F4
+ ldr r1, [r4, #0x48]
+ ldr r3, [r4, #0x10]
+ add r0, r4, #0
+ mov r2, #3
+ bl MOD08_02213C94
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0
+ bne _02214208
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ add r0, #0xc8
+ ldr r0, [r0]
+ lsl r2, r1, #9
+ bl FUN_02003210
+ b _02214222
+_02214208:
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ ldr r0, _02214254 ; =0x0000FFFF
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ add r0, #0xc8
+ ldr r0, [r0]
+ lsl r2, r1, #9
+ bl FUN_02003210
+_02214222:
+ add r0, r4, #0
+ bl MOD08_02213D50
+ mov r0, #0x5f
+ ldr r1, [r4, #0x48]
+ mov r2, #2
+ lsl r0, r0, #2
+ strb r2, [r1, r0]
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ b _0221424E
+_0221423A:
+ ldr r0, [r4, #0x48]
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0221424E
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, pc}
+_0221424E:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02214254: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214258
+MOD08_02214258: ; 0x02214258
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldrb r0, [r4, #5]
+ cmp r0, #3
+ bls _02214266
+ b _02214462
+_02214266:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02214272: ; jump table
+ .short _0221427A - _02214272 - 2 ; case 0
+ .short _02214286 - _02214272 - 2 ; case 1
+ .short _02214300 - _02214272 - 2 ; case 2
+ .short _022143F0 - _02214272 - 2 ; case 3
+_0221427A:
+ add r0, r4, #0
+ bl MOD08_02213D50
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02214286:
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0
+ bne _022142C2
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ add r0, #0xc8
+ ldr r0, [r0]
+ lsl r2, r1, #9
+ bl FUN_02003210
+ ldr r3, [r4, #0x48]
+ mov r1, #0
+ mov r2, #0x67
+ add r0, r3, #0
+ str r1, [sp]
+ lsl r2, r2, #2
+ ldr r2, [r3, r2]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ lsr r2, r2, #0x10
+ mov r3, #0x10
+ bl FUN_02003A64
+ b _022142FA
+_022142C2:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _0221448C ; =0x0000FFFF
+ mov r1, #1
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x48]
+ lsl r2, r1, #9
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_02003210
+ mov r2, #0x67
+ ldr r3, [r4, #0x48]
+ ldr r0, _0221448C ; =0x0000FFFF
+ lsl r2, r2, #2
+ str r0, [sp]
+ add r0, r3, #0
+ ldr r2, [r3, r2]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #0
+ lsr r2, r2, #0x10
+ mov r3, #0x10
+ bl FUN_02003A64
+_022142FA:
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02214300:
+ ldr r0, [r4, #0x48]
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _02214310
+ b _02214486
+_02214310:
+ add r0, r4, #0
+ add r0, #0x44
+ ldrh r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02214324
+ ldr r0, [r4, #0x48]
+ bl MOD08_02214524
+_02214324:
+ add r0, r4, #0
+ add r0, #0x44
+ ldrh r0, [r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02214338
+ ldr r0, [r4, #0x48]
+ bl MOD08_02214524
+_02214338:
+ mov r0, #3
+ mov r1, #0
+ bl FUN_0201797C
+ ldr r0, [r4, #0x48]
+ bl MOD08_02212004
+ cmp r0, #0
+ bne _0221436A
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r2, #0
+ mov r3, #1
+ bl FUN_020170F4
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ bl MOD08_02215638
+ ldr r0, [r4, #0x48]
+ bl MOD08_02215660
+ b _022143BE
+_0221436A:
+ ldr r2, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r2]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r2, r1]
+ add r1, r1, #4
+ ldr r1, [r2, r1]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r3, #3
+ bl FUN_0200687C
+ mov r2, #0x66
+ lsl r2, r2, #2
+ add r1, r2, #0
+ ldr r3, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r3, r2]
+ sub r1, #0x14
+ lsl r0, r0, #5
+ str r0, [sp, #4]
+ sub r0, r2, #4
+ ldr r0, [r3, r0]
+ sub r2, #0xc
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r3, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ ldr r1, [r3, r1]
+ ldr r2, [r3, r2]
+ ldr r3, [r3]
+ bl FUN_020030E8
+_022143BE:
+ ldr r2, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r2]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r2, r1]
+ add r1, #0xc
+ ldr r1, [r2, r1]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #3
+ mov r1, #1
+ bl FUN_0201797C
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_022143F0:
+ ldr r0, [r4, #0x48]
+ mov r2, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ ldrb r0, [r4, #0xd]
+ ldr r2, [r4, #0x48]
+ cmp r0, #0
+ bne _0221443A
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ mov r5, #0x67
+ add r0, r2, #0
+ str r3, [sp, #8]
+ lsl r5, r5, #2
+ ldr r2, [r2, r5]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ b _0221445C
+_0221443A:
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ mov r5, #0x67
+ ldr r0, _0221448C ; =0x0000FFFF
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r2, #0
+ lsl r5, r5, #2
+ ldr r2, [r2, r5]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+_0221445C:
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02214462:
+ ldr r0, [r4, #0x48]
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02214486
+ mov r0, #0x5f
+ ldr r1, [r4, #0x48]
+ mov r2, #2
+ lsl r0, r0, #2
+ strb r2, [r1, r0]
+ ldrb r0, [r4, #5]
+ add sp, #0x10
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02214486:
+ mov r0, #1
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221448C: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214490
+MOD08_02214490: ; 0x02214490
+ push {r3, lr}
+ add r0, r1, #0
+ bl MOD08_02213D50
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD08_0221449C
+MOD08_0221449C: ; 0x0221449C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD08_02213D50
+ add r0, r4, #0
+ add r0, #0x44
+ ldrh r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _022144BA
+ ldr r0, [r4, #0x48]
+ bl MOD08_02214524
+_022144BA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022144C0
+MOD08_022144C0: ; 0x022144C0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _022144DA
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+_022144DA:
+ mov r3, #4
+ mov r1, #8
+ ldrsh r2, [r4, r3]
+ ldrsh r0, [r4, r1]
+ add r0, r2, r0
+ strh r0, [r4, #4]
+ mov r0, #6
+ ldrsh r2, [r4, r0]
+ mov r0, #0xa
+ ldrsh r0, [r4, r0]
+ add r0, r2, r0
+ strh r0, [r4, #6]
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ beq _02214508
+ ldr r1, [r4, #0xc]
+ ldrsh r3, [r4, r3]
+ lsl r1, r1, #0x18
+ ldr r0, [r4]
+ lsr r1, r1, #0x18
+ mov r2, #0
+ bl FUN_020179E0
+_02214508:
+ mov r0, #0xa
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ beq _02214522
+ ldr r1, [r4, #0xc]
+ mov r3, #6
+ lsl r1, r1, #0x18
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4]
+ lsr r1, r1, #0x18
+ mov r2, #3
+ bl FUN_020179E0
+_02214522:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02214524
+MOD08_02214524: ; 0x02214524
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221452E
+ bl ErrorHandling
+_0221452E:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _0221453C
+ mov r0, #1
+ str r0, [r1, #0x18]
+_0221453C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02214540
+MOD08_02214540: ; 0x02214540
+ mov r1, #0x67
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD08_02214548
+MOD08_02214548: ; 0x02214548
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD08_0221454C
+MOD08_0221454C: ; 0x0221454C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x48]
+ mov r1, #0x20
+ ldr r0, [r0]
+ bl FUN_02016998
+ add r4, r0, #0
+ ldr r0, [r5, #0x48]
+ mov r2, #6
+ add r0, #0xc4
+ ldr r0, [r0]
+ str r0, [r4]
+ ldr r0, [r5, #0x48]
+ add r0, #0x9c
+ ldr r0, [r0]
+ strh r0, [r4, #4]
+ ldr r0, [r5, #0x48]
+ add r0, #0xa0
+ ldr r0, [r0]
+ strh r0, [r4, #6]
+ ldr r0, [r5, #0x48]
+ add r0, #0x94
+ ldr r0, [r0]
+ strh r0, [r4, #8]
+ ldr r0, [r5, #0x48]
+ add r0, #0x98
+ ldr r0, [r0]
+ strh r0, [r4, #0xa]
+ mov r0, #3
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x10]
+ ldr r1, [r5, #0x48]
+ add r0, r5, #0
+ bl MOD08_02213C40
+ cmp r0, #1
+ bne _022145C0
+ mov r0, #8
+ ldrsh r1, [r4, r0]
+ sub r0, #9
+ mul r0, r1
+ strh r0, [r4, #8]
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ sub r0, #0xb
+ mul r0, r1
+ strh r0, [r4, #0xa]
+ mov r0, #4
+ ldrsh r1, [r4, r0]
+ sub r0, r0, #5
+ mul r0, r1
+ strh r0, [r4, #4]
+ mov r0, #6
+ ldrsh r1, [r4, r0]
+ sub r0, r0, #7
+ mul r0, r1
+ strh r0, [r4, #6]
+_022145C0:
+ mov r0, #1
+ str r0, [r4, #0x14]
+ mov r1, #0
+ str r1, [r4, #0x18]
+ mov r1, #6
+ ldr r2, [r5, #0x48]
+ lsl r1, r1, #6
+ str r4, [r2, r1]
+ add r1, r5, #0
+ add r1, #0x44
+ ldrh r2, [r1]
+ mov r1, #1
+ add r5, #0x44
+ bic r2, r1
+ orr r0, r2
+ strh r0, [r5]
+ ldr r0, _022145F0 ; =MOD08_022144C0
+ ldr r2, _022145F4 ; =0x00001001
+ add r1, r4, #0
+ bl FUN_0200CA44
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022145F0: .word MOD08_022144C0
+_022145F4: .word 0x00001001
+
+ thumb_func_start MOD08_022145F8
+MOD08_022145F8: ; 0x022145F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r4, [r0, #0x48]
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r1, #0x20
+ bl FUN_02016998
+ add r6, r0, #0
+ ldr r0, [r4]
+ mov r1, #0xc4
+ bl FUN_02016998
+ str r0, [r6, #0x1c]
+ mov r0, #6
+ lsl r0, r0, #6
+ str r6, [r4, r0]
+ ldr r0, [sp]
+ mov r1, #2
+ add r0, #0x44
+ ldrh r0, [r0]
+ add r2, r0, #0
+ ldr r0, [sp]
+ orr r2, r1
+ add r0, #0x44
+ strh r2, [r0]
+ mov r0, #0
+ str r0, [r6, #0x18]
+ add r0, r4, #0
+ bl MOD08_022155C4
+ bl MOD08_022189A0
+ add r5, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD08_02218998
+ add r1, r0, #0
+ ldr r2, [r4]
+ add r0, r5, #0
+ bl MOD08_022187F4
+ mov r4, #0
+ ldr r1, [r6, #0x1c]
+ ldr r7, _022146C8 ; =0x0222AAF8
+ add r1, #0xc0
+ str r0, [r1]
+ str r4, [sp, #4]
+ add r5, r4, #0
+_0221465C:
+ ldr r0, [r6, #0x1c]
+ strh r4, [r0, r5]
+ ldr r0, [r6, #0x1c]
+ add r1, r0, r5
+ ldrsh r0, [r0, r5]
+ add r0, #8
+ strh r0, [r1, #2]
+ mov r0, #0
+ ldrsh r1, [r7, r0]
+ ldr r0, [r6, #0x1c]
+ add r0, r0, r5
+ strh r1, [r0, #4]
+ ldr r0, [r6, #0x1c]
+ add r1, r0, r5
+ mov r0, #0
+ strh r0, [r1, #6]
+ add r1, r0, #0
+ bl MOD08_02218998
+ ldr r1, [r6, #0x1c]
+ mov r2, #6
+ add r1, r1, r5
+ str r0, [r1, #8]
+ ldr r0, [sp]
+ add r1, r0, #0
+ ldr r1, [r1, #0x48]
+ bl MOD08_02213C40
+ cmp r0, #1
+ bne _022146A6
+ ldr r0, [r6, #0x1c]
+ mov r1, #4
+ add r0, r0, r5
+ ldrsh r2, [r0, r1]
+ sub r1, r1, #5
+ mul r1, r2
+ strh r1, [r0, #4]
+_022146A6:
+ ldr r0, [sp, #4]
+ add r4, #8
+ add r0, r0, #1
+ add r5, #0xc
+ add r7, r7, #2
+ str r0, [sp, #4]
+ cmp r0, #0x10
+ blt _0221465C
+ mov r2, #1
+ ldr r0, _022146CC ; =MOD08_022146E4
+ add r1, r6, #0
+ lsl r2, r2, #0xc
+ bl FUN_0200CA44
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022146C8: .word 0x0222AAF8
+_022146CC: .word MOD08_022146E4
+
+ thumb_func_start MOD08_022146D0
+MOD08_022146D0: ; 0x022146D0
+ add r1, r0, #0
+ add r1, #0x44
+ ldrh r2, [r1]
+ mov r1, #2
+ add r0, #0x44
+ orr r1, r2
+ strh r1, [r0]
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022146E4
+MOD08_022146E4: ; 0x022146E4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5, #0x18]
+ ldr r4, [r5, #0x1c]
+ cmp r0, #1
+ bne _02214712
+ add r4, #0xc0
+ ldr r0, [r4]
+ bl MOD08_02218870
+ ldr r0, [r5, #0x1c]
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02214712:
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl MOD08_02218894
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+_02214722:
+ mov r0, #6
+ ldrsh r1, [r4, r0]
+ mov r0, #4
+ ldrsh r0, [r4, r0]
+ add r0, r1, r0
+ strh r0, [r4, #6]
+ mov r0, #0
+ ldrsh r6, [r4, r0]
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ cmp r6, r0
+ bge _0221476A
+ ldr r0, [sp]
+ lsl r1, r6, #2
+ add r5, r0, r1
+ mov r7, #2
+_02214742:
+ ldr r1, [r4, #8]
+ mov r2, #6
+ lsl r0, r1, #0x10
+ asr r1, r1, #0x10
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ lsl r1, r1, #0x10
+ ldrsh r2, [r4, r2]
+ asr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ add r0, r0, r2
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl MOD08_02218998
+ stmia r5!, {r0}
+ ldrsh r0, [r4, r7]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _02214742
+_0221476A:
+ ldr r0, [sp, #4]
+ add r4, #0xc
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #0x10
+ blt _02214722
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221477C
+MOD08_0221477C: ; 0x0221477C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ mov r1, #2
+ add r5, r0, #0
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r4, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0
+ bl FUN_0201797C
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022147C0
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ mov r2, #2
+ mov r3, #4
+ bl FUN_020170F4
+ b _022147E4
+_022147C0:
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ mov r2, #0
+ mov r3, #1
+ bl FUN_020170F4
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ mov r2, #2
+ mov r3, #4
+ bl FUN_020170F4
+_022147E4:
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02214822
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ mov r1, #0x61
+ add r2, r5, #0
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ add r2, #0xc4
+ ldr r1, [r5, r1]
+ ldr r2, [r2]
+ add r3, r4, #0
+ bl FUN_0200687C
+ b _0221482A
+_02214822:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02215638
+_0221482A:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ add r1, #0xc
+ ldr r1, [r5, r1]
+ add r5, #0xc4
+ ldr r2, [r5]
+ add r3, r4, #0
+ bl FUN_020068C8
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02214850
+MOD08_02214850: ; 0x02214850
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #1
+ add r5, r0, #0
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r4, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02214888
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ mov r2, #2
+ mov r3, #3
+ bl FUN_020170F4
+ b _022148AC
+_02214888:
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ mov r2, #0
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl FUN_020170F4
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ mov r2, #2
+ mov r3, #3
+ bl FUN_020170F4
+_022148AC:
+ add r5, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r5]
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022148BC
+MOD08_022148BC: ; 0x022148BC
+ add r1, r0, #0
+ add r1, #0x44
+ ldrh r2, [r1]
+ mov r1, #1
+ add r0, #0x44
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ strh r1, [r0]
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022148D4
+MOD08_022148D4: ; 0x022148D4
+ push {r3, lr}
+ ldr r0, [r0, #0x48]
+ bl MOD08_02214524
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD08_022148E0
+MOD08_022148E0: ; 0x022148E0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x14]
+ add r5, r0, #0
+ lsl r3, r2, #2
+ ldr r2, _0221490C ; =0x0222AA64
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0
+ bne _0221490A
+ mov r0, #0x5f
+ ldr r1, [r4, #0x48]
+ mov r2, #0
+ lsl r0, r0, #2
+ strb r2, [r1, r0]
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0221490A:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221490C: .word 0x0222AA64
+
+ thumb_func_start MOD08_02214910
+MOD08_02214910: ; 0x02214910
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_02213DA8
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strb r0, [r4, #0xd]
+ ldr r0, [r5, #0x18]
+ ldr r2, _02214954 ; =0x0000044C
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x14]
+ ldr r0, _02214958 ; =0xFFFF0000
+ and r0, r1
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x18]
+ ldr r0, _0221495C ; =MOD08_022148E0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214954: .word 0x0000044C
+_02214958: .word 0xFFFF0000
+_0221495C: .word MOD08_022148E0
+
+ thumb_func_start MOD08_02214960
+MOD08_02214960: ; 0x02214960
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r2, r1, #4
+ str r2, [r0, #0x18]
+ ldr r1, [r2]
+ add r2, r2, #4
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ str r2, [r0, #0x18]
+ cmp r3, #3
+ bhi _022149B4
+ add r2, r3, r3
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02214986: ; jump table
+ .short _0221498E - _02214986 - 2 ; case 0
+ .short _02214998 - _02214986 - 2 ; case 1
+ .short _022149A2 - _02214986 - 2 ; case 2
+ .short _022149AC - _02214986 - 2 ; case 3
+_0221498E:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r0, r2]
+ strh r1, [r0, #8]
+ bx lr
+_02214998:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r0, r2]
+ strh r1, [r0, #0xa]
+ bx lr
+_022149A2:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r0, r2]
+ strh r1, [r0, #4]
+ bx lr
+_022149AC:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r0, r2]
+ strh r1, [r0, #4]
+_022149B4:
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022149B8
+MOD08_022149B8: ; 0x022149B8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_02213DA8
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strb r0, [r4, #0xd]
+ ldr r0, [r5, #0x18]
+ ldr r2, _02214A00 ; =0x0000044C
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x18]
+ add r1, r0, #4
+ str r1, [r5, #0x18]
+ ldr r0, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ lsl r1, r0, #0x10
+ lsr r1, r1, #0x10
+ add r1, r1, #3
+ str r1, [r4, #0x14]
+ ldr r1, _02214A04 ; =0xFFFF0000
+ and r0, r1
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x18]
+ ldr r0, _02214A08 ; =MOD08_022148E0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ nop
+_02214A00: .word 0x0000044C
+_02214A04: .word 0xFFFF0000
+_02214A08: .word MOD08_022148E0
+
+ thumb_func_start MOD08_02214A0C
+MOD08_02214A0C: ; 0x02214A0C
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ ldrb r1, [r0, r1]
+ cmp r1, #2
+ bne _02214A24
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ mov r1, #0
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+_02214A24:
+ mov r1, #1
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD08_02214A2C
+MOD08_02214A2C: ; 0x02214A2C
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ bne _02214A44
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ mov r1, #0
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+_02214A44:
+ mov r1, #1
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD08_02214A4C
+MOD08_02214A4C: ; 0x02214A4C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ mov r1, #0
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r4, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r4, #0
+ bl MOD08_022156AC
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r2, r5, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #7
+ mov r3, #3
+ bl FUN_0200687C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_022156AC
+ mov r2, #0
+ str r2, [sp]
+ add r1, r0, #0
+ ldr r0, [r5]
+ add r3, r2, #0
+ str r0, [sp, #4]
+ mov r0, #7
+ bl FUN_02006930
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_022156AC
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r5, #0xc4
+ str r0, [sp, #0xc]
+ ldr r2, [r5]
+ mov r0, #7
+ mov r3, #3
+ bl FUN_020068C8
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02214AC8
+MOD08_02214AC8: ; 0x02214AC8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl MOD08_02213DA8
+ add r4, r0, #0
+ ldr r0, [r5, #0x18]
+ add r1, r0, #4
+ str r1, [r5, #0x18]
+ ldr r0, [r1]
+ str r0, [sp]
+ add r0, r1, #4
+ str r0, [r5, #0x18]
+ ldr r7, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r6, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02214AFA
+ str r6, [r4, #0x10]
+ b _02214B12
+_02214AFA:
+ add r0, r5, #0
+ add r5, #0xc0
+ ldr r1, [r5]
+ ldrh r1, [r1, #0x16]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _02214B0E
+ str r7, [r4, #0x10]
+ b _02214B12
+_02214B0E:
+ ldr r0, [sp]
+ str r0, [r4, #0x10]
+_02214B12:
+ ldr r0, _02214B20 ; =MOD08_022148E0
+ ldr r2, _02214B24 ; =0x0000044C
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02214B20: .word MOD08_022148E0
+_02214B24: .word 0x0000044C
+
+ thumb_func_start MOD08_02214B28
+MOD08_02214B28: ; 0x02214B28
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214B2C
+MOD08_02214B2C: ; 0x02214B2C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214B30
+MOD08_02214B30: ; 0x02214B30
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214B34
+MOD08_02214B34: ; 0x02214B34
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214B38
+MOD08_02214B38: ; 0x02214B38
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214B3C
+MOD08_02214B3C: ; 0x02214B3C
+ ldr r1, [r0, #0x18]
+ ldr r3, _02214B50 ; =0x020054C9
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ bx r3
+ .align 2, 0
+_02214B50: .word 0x020054C9
+
+ thumb_func_start MOD08_02214B54
+MOD08_02214B54: ; 0x02214B54
+ ldr r1, [r0, #0x18]
+ ldr r3, _02214B6C ; =0x020054F1
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0
+ bx r3
+ nop
+_02214B6C: .word 0x020054F1
+
+ thumb_func_start MOD08_02214B70
+MOD08_02214B70: ; 0x02214B70
+ push {r3, r4, r5, lr}
+ ldr r1, [r0, #0x18]
+ add r2, r1, #4
+ str r2, [r0, #0x18]
+ ldr r1, [r2]
+ lsl r1, r1, #0x10
+ lsr r4, r1, #0x10
+ add r1, r2, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r1, r2, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_020054C8
+ ldr r1, _02214BA4 ; =0x0000FFFF
+ add r0, r4, #0
+ add r2, r5, #0
+ bl FUN_02005530
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214BA4: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214BA8
+MOD08_02214BA8: ; 0x02214BA8
+ push {r3, lr}
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r1, r2, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ bl FUN_0200554C
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02214BC4
+MOD08_02214BC4: ; 0x02214BC4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_0221252C
+ mov r1, #0
+ mov r2, #0x3c
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #1
+ strb r0, [r4]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strh r0, [r4, #0x1a]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ str r0, [r4, #8]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #3]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r4, #8]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r4, #0x10]
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ asr r0, r0, #0x18
+ asr r1, r1, #0x18
+ asr r2, r2, #0x18
+ bl MOD08_0221540C
+ str r0, [r4, #0x10]
+ ldrh r0, [r4, #0x1a]
+ bl FUN_020054C8
+ ldrh r0, [r4, #0x1a]
+ ldr r1, _02214C60 ; =0x0000FFFF
+ ldr r2, [r4, #8]
+ bl FUN_02005530
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0221255C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214C60: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214C64
+MOD08_02214C64: ; 0x02214C64
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_0221252C
+ mov r1, #0
+ mov r2, #0x3c
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #2
+ strb r0, [r4]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strh r0, [r4, #0x1a]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #8]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #3]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldrh r0, [r4, #0x1a]
+ bl FUN_020054C8
+ ldrh r0, [r4, #0x1a]
+ ldr r1, _02214CD8 ; =0x0000FFFF
+ ldr r2, [r4, #8]
+ bl FUN_02005530
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0221255C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214CD8: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214CDC
+MOD08_02214CDC: ; 0x02214CDC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_0221252C
+ mov r1, #0
+ mov r2, #0x3c
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #1
+ strb r0, [r4]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strh r0, [r4, #0x1a]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #8]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #3]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r4, #8]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #0x10]
+ ldrh r0, [r4, #0x1a]
+ bl FUN_020054C8
+ ldrh r0, [r4, #0x1a]
+ ldr r1, _02214D7C ; =0x0000FFFF
+ ldr r2, [r4, #8]
+ bl FUN_02005530
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0221255C
+ pop {r3, r4, r5, pc}
+ nop
+_02214D7C: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214D80
+MOD08_02214D80: ; 0x02214D80
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_0221252C
+ mov r1, #0
+ mov r2, #0x3c
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #4
+ strb r0, [r4]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strh r0, [r4, #0x1a]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0x14]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #3]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #0x18]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldrb r0, [r4, #3]
+ strb r0, [r4, #4]
+ ldr r1, [r4, #0x14]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0221255C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02214DE4
+MOD08_02214DE4: ; 0x02214DE4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_0221252C
+ mov r1, #0
+ mov r2, #0x3c
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #5
+ strb r0, [r4]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strh r0, [r4, #0x1a]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0x14]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #3]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r4, #0x14]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0221255C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02214E3C
+MOD08_02214E3C: ; 0x02214E3C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214E40
+MOD08_02214E40: ; 0x02214E40
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x90
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _02214E5C
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x8d
+ strb r1, [r0]
+ ldr r0, _02214E94 ; =0x0000017D
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_02214E5C:
+ bl FUN_02005514
+ cmp r0, #0
+ beq _02214E80
+ ldr r0, _02214E94 ; =0x0000017D
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ ldrb r1, [r4, r0]
+ cmp r1, #0x5a
+ bls _02214E78
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_02214E78:
+ mov r0, #1
+ add r4, #0x8d
+ strb r0, [r4]
+ pop {r4, pc}
+_02214E80:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x8d
+ strb r1, [r0]
+ ldr r0, _02214E94 ; =0x0000017D
+ strb r1, [r4, r0]
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+ .align 2, 0
+_02214E94: .word 0x0000017D
+
+ thumb_func_start MOD08_02214E98
+MOD08_02214E98: ; 0x02214E98
+ push {r3, lr}
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ lsl r3, r3, #0x10
+ ldr r0, _02214EC4 ; =0x04001050
+ mov r1, #1
+ mov r2, #2
+ lsr r3, r3, #0x10
+ bl G2x_SetBlendAlpha_
+ pop {r3, pc}
+ nop
+_02214EC4: .word 0x04001050
+
+ thumb_func_start MOD08_02214EC8
+MOD08_02214EC8: ; 0x02214EC8
+ ldr r3, _02214ECC ; =MOD08_0221268C
+ bx r3
+ .align 2, 0
+_02214ECC: .word MOD08_0221268C
+
+ thumb_func_start MOD08_02214ED0
+MOD08_02214ED0: ; 0x02214ED0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214ED4
+MOD08_02214ED4: ; 0x02214ED4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r6, r5, #0
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r7, [r0]
+ add r0, r0, #4
+ lsl r4, r1, #2
+ add r6, #0xcc
+ str r0, [r5, #0x18]
+ ldr r0, [r6, r4]
+ cmp r0, #0
+ beq _02214EFC
+ bl ErrorHandling
+_02214EFC:
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ str r0, [r6, r4]
+ ldr r0, [r6, r4]
+ cmp r0, #0
+ bne _02214F16
+ bl ErrorHandling
+_02214F16:
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, [r6, r4]
+ add r0, #0xac
+ ldr r0, [r0]
+ add r2, r7, #0
+ bl FUN_0200BBF0
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+ add r0, r5, #0
+ mov r1, #0
+ add r2, sp, #0
+ add r0, #0x18
+_02214F48:
+ ldr r3, [r5, #0x18]
+ add r1, r1, #1
+ ldr r3, [r3]
+ str r3, [r2]
+ ldr r3, [r0]
+ add r2, r2, #4
+ add r3, r3, #4
+ str r3, [r0]
+ cmp r1, #6
+ blt _02214F48
+ add r5, #0xc0
+ ldr r0, [r5]
+ ldr r1, [r6, r4]
+ add r0, #0xac
+ ldr r0, [r0]
+ add r2, sp, #0
+ bl FUN_0200BF60
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02214F70
+MOD08_02214F70: ; 0x02214F70
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ ldr r0, [r2, #0x18]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r3, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02214FB0 ; =0x00001388
+ lsl r1, r1, #2
+ add r0, r3, r0
+ str r0, [sp, #8]
+ add r0, r2, #0
+ add r1, r2, r1
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, #0xcc
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x15
+ bl FUN_0200C00C
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+_02214FB0: .word 0x00001388
+
+ thumb_func_start MOD08_02214FB4
+MOD08_02214FB4: ; 0x02214FB4
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ ldr r3, [r0]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ ldr r1, [r0]
+ add r2, r0, #4
+ str r2, [r4, #0x18]
+ ldr r0, [r2]
+ add r2, r2, #4
+ str r2, [r4, #0x18]
+ mov r2, #0x16
+ str r2, [sp]
+ str r1, [sp, #4]
+ mov r2, #0
+ str r2, [sp, #8]
+ mov r2, #1
+ str r2, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _0221500C ; =0x00001388
+ add r2, r4, #0
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+ add r2, #0xc0
+ ldr r2, [r2]
+ lsl r3, r3, #2
+ add r0, r4, #0
+ add r3, r4, r3
+ add r0, #0xc8
+ add r2, #0xac
+ add r3, #0xcc
+ ldr r0, [r0]
+ ldr r2, [r2]
+ ldr r3, [r3]
+ mov r1, #2
+ bl FUN_0200C0DC
+ add sp, #0x18
+ pop {r4, pc}
+ nop
+_0221500C: .word 0x00001388
+
+ thumb_func_start MOD08_02215010
+MOD08_02215010: ; 0x02215010
+ push {r3, lr}
+ sub sp, #8
+ add r2, r0, #0
+ ldr r0, [r2, #0x18]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r3, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02215050 ; =0x00001388
+ lsl r1, r1, #2
+ add r0, r3, r0
+ str r0, [sp, #4]
+ add r0, r2, #0
+ add r1, r2, r1
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, #0xcc
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x17
+ bl FUN_0200C124
+ add sp, #8
+ pop {r3, pc}
+ nop
+_02215050: .word 0x00001388
+
+ thumb_func_start MOD08_02215054
+MOD08_02215054: ; 0x02215054
+ push {r3, lr}
+ sub sp, #8
+ add r2, r0, #0
+ ldr r0, [r2, #0x18]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r3, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02215094 ; =0x00001388
+ lsl r1, r1, #2
+ add r0, r3, r0
+ str r0, [sp, #4]
+ add r0, r2, #0
+ add r1, r2, r1
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, #0xcc
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x18
+ bl FUN_0200C13C
+ add sp, #8
+ pop {r3, pc}
+ nop
+_02215094: .word 0x00001388
+
+ thumb_func_start MOD08_02215098
+MOD08_02215098: ; 0x02215098
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r4, r0, #0
+ ldr r1, [r4, #0x18]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ ldr r5, [r1]
+ add r2, r1, #4
+ str r2, [r4, #0x18]
+ ldr r1, [r2]
+ str r1, [sp]
+ add r1, r2, #4
+ str r1, [r4, #0x18]
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, sp, #0xc
+ strh r0, [r1]
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r2, sp, #0xc
+ strh r0, [r2, #2]
+ mov r1, #0
+ strh r1, [r2, #4]
+ strh r1, [r2, #6]
+ mov r0, #0x64
+ str r0, [sp, #0x14]
+ mov r0, #1
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x38]
+ add r0, r4, #0
+ ldr r3, _022151A0 ; =0x00001388
+ str r1, [sp, #0x18]
+ str r1, [sp, #0x3c]
+ add r2, sp, #0xc
+ add r0, #0x18
+_022150F0:
+ ldr r6, [r4, #0x18]
+ add r1, r1, #1
+ ldr r6, [r6]
+ add r6, r6, r3
+ str r6, [r2, #0x14]
+ ldr r6, [r0]
+ add r2, r2, #4
+ add r6, r6, #4
+ str r6, [r0]
+ cmp r1, #6
+ blt _022150F0
+ mov r0, #0x41
+ lsl r0, r0, #2
+ add r3, sp, #0xc
+ add r2, r4, r0
+ mov r6, #6
+_02215110:
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ sub r6, r6, #1
+ bne _02215110
+ ldr r0, [r3]
+ lsl r7, r5, #2
+ str r0, [r2]
+ add r0, r4, #0
+ str r0, [sp, #8]
+ add r0, #0xcc
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, [sp, #8]
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1, r7]
+ add r2, sp, #0xc
+ bl FUN_0200C154
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x18]
+ add r2, r4, #0
+ ldr r3, [r0]
+ add r0, r0, #4
+ add r2, #0x18
+ mov r6, #0
+ str r0, [r4, #0x18]
+ cmp r3, #0
+ ble _02215168
+ add r5, r4, #0
+_02215150:
+ ldr r0, [r4, #0x18]
+ add r6, r6, #1
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r0, #0x94
+ str r1, [r0]
+ ldr r0, [r2]
+ add r5, r5, #4
+ add r0, r0, #4
+ str r0, [r2]
+ cmp r6, r3
+ blt _02215150
+_02215168:
+ cmp r6, #0xa
+ bge _02215180
+ lsl r0, r6, #2
+ add r2, r4, r0
+ mov r1, #0
+_02215172:
+ add r0, r2, #0
+ add r0, #0x94
+ add r6, r6, #1
+ add r2, r2, #4
+ str r1, [r0]
+ cmp r6, #0xa
+ blt _02215172
+_02215180:
+ ldr r0, [sp]
+ bl MOD08_02218C5C
+ add r5, r0, #0
+ add r0, r4, #0
+ add r4, #0xc0
+ ldr r1, [r4]
+ ldr r2, [sp, #8]
+ add r1, #0xac
+ ldr r1, [r1]
+ ldr r2, [r2, r7]
+ ldr r3, [sp, #4]
+ blx r5
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022151A0: .word 0x00001388
+
+ thumb_func_start MOD08_022151A4
+MOD08_022151A4: ; 0x022151A4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r4, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r7, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, sp, #0
+ strh r0, [r1]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r2, sp, #0
+ strh r0, [r2, #2]
+ mov r1, #0
+ strh r1, [r2, #4]
+ strh r1, [r2, #6]
+ mov r0, #0x64
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x2c]
+ add r0, r5, #0
+ ldr r3, _02215254 ; =0x00001388
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x30]
+ add r2, sp, #0
+ add r0, #0x18
+_022151FA:
+ ldr r6, [r5, #0x18]
+ add r1, r1, #1
+ ldr r6, [r6]
+ add r6, r6, r3
+ str r6, [r2, #0x14]
+ ldr r6, [r0]
+ add r2, r2, #4
+ add r6, r6, #4
+ str r6, [r0]
+ cmp r1, #6
+ blt _022151FA
+ mov r0, #0x41
+ lsl r0, r0, #2
+ add r6, sp, #0
+ add r3, r5, r0
+ mov r2, #6
+_0221521A:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0221521A
+ ldr r0, [r6]
+ lsl r1, r4, #2
+ str r0, [r3]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, r5, r1
+ add r0, #0xac
+ add r1, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, sp, #0
+ bl FUN_0200C154
+ add r5, #0xdc
+ lsl r4, r7, #2
+ add r6, r0, #0
+ ldr r0, [r5, r4]
+ cmp r0, #0
+ beq _0221524E
+ bl ErrorHandling
+_0221524E:
+ str r6, [r5, r4]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02215254: .word 0x00001388
+
+ thumb_func_start MOD08_02215258
+MOD08_02215258: ; 0x02215258
+ push {r3, r4, r5, lr}
+ ldr r1, [r0, #0x18]
+ add r5, r0, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ add r5, #0xcc
+ lsl r4, r2, #2
+ str r1, [r0, #0x18]
+ ldr r1, [r5, r4]
+ cmp r1, #0
+ beq _0221527E
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200C398
+_0221527E:
+ mov r0, #0
+ str r0, [r5, r4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02215284
+MOD08_02215284: ; 0x02215284
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r2, r1, #4
+ str r2, [r0, #0x18]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ lsl r2, r3, #2
+ add r2, r0, r2
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ ldr r3, _022152A4 ; =0x0200C645
+ ldr r0, [r2, r0]
+ bx r3
+ .align 2, 0
+_022152A4: .word 0x0200C645
+
+ thumb_func_start MOD08_022152A8
+MOD08_022152A8: ; 0x022152A8
+ ldr r3, _022152AC ; =0x02020C2D
+ bx r3
+ .align 2, 0
+_022152AC: .word 0x02020C2D
+
+ thumb_func_start MOD08_022152B0
+MOD08_022152B0: ; 0x022152B0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r4, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r1, [r1]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ add r3, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r2, [r0]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r1, [sp]
+ ldr r1, [r2, r0]
+ sub r0, #0xc
+ str r1, [sp, #4]
+ ldr r1, [r5]
+ str r1, [sp, #8]
+ add r1, r4, #0
+ ldrh r4, [r2, #0x14]
+ ldr r0, [r2, r0]
+ lsl r4, r4, #1
+ add r2, r2, r4
+ add r2, #0xd8
+ ldrh r2, [r2]
+ bl FUN_02069FB0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221530C
+MOD08_0221530C: ; 0x0221530C
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02005670
+ cmp r0, #0
+ bne _02215330
+ ldr r0, [r4, #0x18]
+ add r1, r0, #4
+ str r1, [r4, #0x18]
+ ldr r0, [r1]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ mov r1, #0
+ add r4, #0x8d
+ strb r1, [r4]
+ bl FUN_02005614
+ pop {r4, pc}
+_02215330:
+ mov r0, #1
+ add r4, #0x8d
+ strb r0, [r4]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02215338
+MOD08_02215338: ; 0x02215338
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_0221533C
+MOD08_0221533C: ; 0x0221533C
+ cmp r0, #0x55
+ bls _02215344
+ mov r0, #0
+ bx lr
+_02215344:
+ lsl r1, r0, #2
+ ldr r0, _0221534C ; =0x0222AC6C
+ ldr r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_0221534C: .word 0x0222AC6C
+
+ thumb_func_start MOD08_02215350
+MOD08_02215350: ; 0x02215350
+ ldrb r0, [r0, #1]
+ bx lr
+
+ thumb_func_start MOD08_02215354
+MOD08_02215354: ; 0x02215354
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02212458
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227470
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _02215390
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ beq _022153F6
+_02215390:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _022153B0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _022153B0
+ mov r0, #0
+ mvn r0, r0
+ mul r4, r0
+ b _022153F6
+_022153B0:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _022153D4
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _022153D4
+ cmp r4, #0
+ ble _022153F6
+ mov r0, #0
+ mvn r0, r0
+ mul r4, r0
+ b _022153F6
+_022153D4:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _022153F6
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _022153F6
+ cmp r4, #0
+ bge _022153F6
+ mov r0, #0
+ mvn r0, r0
+ mul r4, r0
+_022153F6:
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02215406
+ mov r0, #0
+ mvn r0, r0
+ mul r4, r0
+_02215406:
+ lsl r0, r4, #0x18
+ asr r0, r0, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0221540C
+MOD08_0221540C: ; 0x0221540C
+ push {r3, lr}
+ cmp r0, r1
+ bge _0221541E
+ add r0, r2, #0
+ bl abs
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ pop {r3, pc}
+_0221541E:
+ cmp r0, r1
+ ble _02215430
+ add r0, r2, #0
+ bl abs
+ neg r0, r0
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ pop {r3, pc}
+_02215430:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02215434
+MOD08_02215434: ; 0x02215434
+ push {r3, r4, r5, lr}
+ ldr r4, [r0, #0x18]
+ add r3, r0, #0
+ add r4, r4, #4
+ str r4, [r0, #0x18]
+ ldr r5, [r4]
+ add r4, r4, #4
+ add r3, #0x18
+ str r4, [r0, #0x18]
+ cmp r5, r2
+ beq _02215456
+ cmp r5, r2
+ beq _02215452
+ bl ErrorHandling
+_02215452:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02215456:
+ mov r4, #0
+ cmp r2, #0
+ ble _02215470
+_0221545C:
+ ldr r5, [r0, #0x18]
+ add r4, r4, #1
+ ldr r5, [r5]
+ str r5, [r1]
+ ldr r5, [r3]
+ add r1, r1, #4
+ add r5, r5, #4
+ str r5, [r3]
+ cmp r4, r2
+ blt _0221545C
+_02215470:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02215474
+MOD08_02215474: ; 0x02215474
+ push {r3, r4}
+ add r4, r0, #0
+ mov r0, #0x41
+ lsl r0, r0, #2
+ add r3, r1, r0
+ mov r2, #6
+_02215480:
+ ldmia r3!, {r0, r1}
+ stmia r4!, {r0, r1}
+ sub r2, r2, #1
+ bne _02215480
+ ldr r0, [r3]
+ str r0, [r4]
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD08_02215490
+MOD08_02215490: ; 0x02215490
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r1
+ add r0, #0xc0
+ ldrb r0, [r0]
+ bx lr
+
+ thumb_func_start MOD08_0221549C
+MOD08_0221549C: ; 0x0221549C
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r1
+ add r0, #0xe0
+ ldrb r0, [r0]
+ bx lr
+
+ thumb_func_start MOD08_022154A8
+MOD08_022154A8: ; 0x022154A8
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #1
+ add r0, r2, r0
+ add r0, #0xd8
+ ldrh r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022154B8
+MOD08_022154B8: ; 0x022154B8
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r1
+ add r0, #0xe8
+ ldrb r0, [r0]
+ bx lr
+
+ thumb_func_start MOD08_022154C4
+MOD08_022154C4: ; 0x022154C4
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ add r0, #0xec
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022154D4
+MOD08_022154D4: ; 0x022154D4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r4, r1, #2
+ add r0, r0, r4
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _022154EC
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_022154EC:
+ bl FUN_02008268
+ cmp r0, #0
+ beq _02215500
+ add r5, #0xc0
+ ldr r0, [r5]
+ add r0, r0, r4
+ add r0, #0xc4
+ ldr r0, [r0]
+ pop {r3, r4, r5, pc}
+_02215500:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02215504
+MOD08_02215504: ; 0x02215504
+ add r0, #0xc8
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_0221550C
+MOD08_0221550C: ; 0x0221550C
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ bx lr
+
+ thumb_func_start MOD08_0221551C
+MOD08_0221551C: ; 0x0221551C
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bx lr
+
+ thumb_func_start MOD08_0221552C
+MOD08_0221552C: ; 0x0221552C
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start MOD08_0221553C
+MOD08_0221553C: ; 0x0221553C
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xd4
+ ldr r1, [r0]
+ mov r0, #2
+ tst r0, r1
+ beq _0221554E
+ mov r0, #1
+ bx lr
+_0221554E:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02215554
+MOD08_02215554: ; 0x02215554
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ add r0, #0xfc
+ ldr r1, [r0]
+ ldr r0, _02215570 ; =0x200400C0
+ tst r0, r1
+ beq _0221556A
+ mov r0, #1
+ bx lr
+_0221556A:
+ mov r0, #0
+ bx lr
+ nop
+_02215570: .word 0x200400C0
+
+ thumb_func_start MOD08_02215574
+MOD08_02215574: ; 0x02215574
+ push {r3, lr}
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02215582
+ mov r0, #2
+ pop {r3, pc}
+_02215582:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215588
+MOD08_02215588: ; 0x02215588
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _022155C0 ; =0x0222AAAC
+ add r2, sp, #0
+ add r5, r0, #0
+ add r4, r1, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022155B4
+ add r0, sp, #0xc
+ lsl r1, r4, #2
+ add sp, #0x18
+ ldr r0, [r0, r1]
+ pop {r3, r4, r5, pc}
+_022155B4:
+ lsl r1, r4, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_022155C0: .word 0x0222AAAC
+
+ thumb_func_start MOD08_022155C4
+MOD08_022155C4: ; 0x022155C4
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _022155FC ; =0x0222AA94
+ add r2, sp, #0
+ add r5, r0, #0
+ add r4, r1, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022155F0
+ add r0, sp, #0xc
+ lsl r1, r4, #2
+ add sp, #0x18
+ ldr r0, [r0, r1]
+ pop {r3, r4, r5, pc}
+_022155F0:
+ lsl r1, r4, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_022155FC: .word 0x0222AA94
+
+ thumb_func_start MOD08_02215600
+MOD08_02215600: ; 0x02215600
+ push {r3, lr}
+ cmp r1, #3
+ bhi _02215636
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02215612: ; jump table
+ .short _0221561A - _02215612 - 2 ; case 0
+ .short _02215622 - _02215612 - 2 ; case 1
+ .short _0221562A - _02215612 - 2 ; case 2
+ .short _02215632 - _02215612 - 2 ; case 3
+_0221561A:
+ bl MOD08_02212004
+ mov r0, #0
+ pop {r3, pc}
+_02215622:
+ bl MOD08_02212004
+ mov r0, #1
+ pop {r3, pc}
+_0221562A:
+ bl MOD08_02212004
+ mov r0, #3
+ pop {r3, pc}
+_02215632:
+ bl MOD08_02215574
+_02215636:
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02215638
+MOD08_02215638: ; 0x02215638
+ push {r3, lr}
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ add r0, r2, #0
+ add r2, #0xc0
+ ldr r3, [r2]
+ mov r2, #0x11
+ add r0, #0xc4
+ lsl r2, r2, #4
+ lsl r1, r1, #0x18
+ ldr r2, [r3, r2]
+ mov r3, #1
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ lsl r3, r3, #0x10
+ bl FUN_02017E14
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215660
+MOD08_02215660: ; 0x02215660
+ push {r3, lr}
+ mov r2, #2
+ add r1, r0, #0
+ lsl r2, r2, #8
+ str r2, [sp]
+ add r1, #0xc0
+ add r0, #0xc8
+ ldr r1, [r1]
+ sub r2, #0xec
+ ldr r1, [r1, r2]
+ mov r2, #0
+ ldr r0, [r0]
+ add r3, r2, #0
+ bl FUN_02003054
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02215680
+MOD08_02215680: ; 0x02215680
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_022132C4
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022156A8
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_022154A8
+ bl MOD08_0222A6C8
+ cmp r0, #1
+ bne _022156A8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022156A8:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022156AC
+MOD08_022156AC: ; 0x022156AC
+ mov r2, #0x14
+ mul r2, r0
+ ldr r0, _022156BC ; =0x0222ADC0
+ lsl r1, r1, #2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ bx lr
+ nop
+_022156BC: .word 0x0222ADC0
+
+ thumb_func_start MOD08_022156C0
+MOD08_022156C0: ; 0x022156C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x90
+ ldr r3, _02215900 ; =0x0222AA4C
+ add r6, r2, #0
+ add r2, sp, #0x78
+ add r7, r0, #0
+ add r5, r1, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r5, #0
+ mov r1, #0x58
+ bl FUN_02016998
+ add r4, r0, #0
+ str r5, [r4]
+ str r6, [r4, #4]
+ add r0, r7, #0
+ bl FUN_02230078
+ str r0, [r4, #8]
+ add r0, r7, #0
+ bl FUN_02230080
+ str r0, [r4, #0xc]
+ add r0, r7, #0
+ bl FUN_022300CC
+ str r0, [r4, #0x10]
+ mov r6, #0
+ add r5, r4, #0
+_02215704:
+ mov r0, #0
+ str r0, [r5, #0x24]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl FUN_022312D0
+ str r0, [r5, #0x34]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _02215704
+ add r1, r4, #0
+ add r0, r7, #0
+ add r1, #0x44
+ bl FUN_02231504
+ add r1, r4, #0
+ add r0, r7, #0
+ add r1, #0x48
+ bl FUN_02231534
+ mov r6, #0
+ add r7, r6, #0
+_02215732:
+ ldr r0, [r4, #4]
+ cmp r6, r0
+ beq _0221573C
+ cmp r0, #0xff
+ bne _0221579E
+_0221573C:
+ ldr r1, _02215904 ; =0x0000D903
+ str r7, [sp]
+ add r2, r6, r1
+ ldr r1, _02215908 ; =0x00001388
+ mov r3, #0x28
+ mul r1, r0
+ mov r0, #1
+ add r5, r2, r1
+ str r0, [sp, #4]
+ str r5, [sp, #8]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ mov r2, #0x1b
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x27
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r5, [sp, #0x14]
+ ldr r0, [r4, #0x10]
+ ldr r2, [r4, #8]
+ ldr r3, [r4, #0xc]
+ mov r1, #2
+ bl FUN_0200C0DC
+ mov r0, #0
+ str r0, [sp]
+ str r5, [sp, #4]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ mov r2, #0x1b
+ mov r3, #0x29
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ str r5, [sp, #4]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ mov r2, #0x1b
+ mov r3, #0x2a
+ bl FUN_0200C13C
+_0221579E:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _02215732
+ mov r0, #0
+ str r0, [sp, #0x24]
+ add r7, r4, #0
+_022157AA:
+ ldr r1, [r4, #4]
+ ldr r0, [sp, #0x24]
+ cmp r0, r1
+ beq _022157B8
+ cmp r1, #0xff
+ beq _022157B8
+ b _022158EC
+_022157B8:
+ ldr r2, _02215904 ; =0x0000D903
+ ldr r0, [sp, #0x24]
+ add r3, r1, #0
+ add r0, r0, r2
+ ldr r2, _02215908 ; =0x00001388
+ mul r3, r2
+ add r1, r0, r3
+ str r1, [r7, #0x14]
+ ldr r1, [r4, #4]
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r0, r3
+ str r1, [sp, #0x60]
+ ldr r1, [r4, #4]
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r0, r3
+ str r1, [sp, #0x64]
+ ldr r1, [r4, #4]
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r0, r3
+ str r1, [sp, #0x68]
+ ldr r1, [r4, #4]
+ mul r2, r1
+ mov r1, #0
+ add r0, r0, r2
+ str r0, [sp, #0x6c]
+ str r1, [sp, #0x70]
+ str r1, [sp, #0x74]
+ ldr r2, [r7, #0x34]
+ ldr r5, [r7, #0x48]
+ ldr r0, [r2, #4]
+ cmp r5, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r2, #8]
+ str r0, [sp, #0x1c]
+ ldr r0, [r2]
+ str r0, [sp, #0x18]
+ beq _022158EC
+ add r0, r5, #0
+ bl FUN_0200782C
+ str r0, [sp, #0x28]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ add r0, r5, #0
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r2, r6, r0
+ ldr r0, [sp, #0x28]
+ add r1, sp, #0x2c
+ strh r0, [r1]
+ strh r2, [r1, #2]
+ mov r0, #0
+ strh r0, [r1, #4]
+ strh r0, [r1, #6]
+ ldr r1, [sp, #0x24]
+ add r3, sp, #0x2c
+ add r1, r4, r1
+ add r1, #0x44
+ ldrb r1, [r1]
+ lsl r2, r1, #2
+ add r1, sp, #0x78
+ ldr r1, [r1, r2]
+ str r0, [sp, #0x38]
+ str r1, [sp, #0x34]
+ mov r1, #1
+ str r1, [sp, #0x3c]
+ str r1, [sp, #0x58]
+ str r0, [sp, #0x5c]
+ add r2, sp, #0x60
+_02215852:
+ ldr r1, [r2]
+ add r0, r0, #1
+ str r1, [r3, #0x14]
+ add r2, r2, #4
+ add r3, r3, #4
+ cmp r0, #6
+ blt _02215852
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ add r2, sp, #0x2c
+ bl FUN_0200C154
+ add r6, r0, #0
+ bl FUN_0200C5A8
+ str r6, [r7, #0x24]
+ cmp r5, #0
+ bne _02215880
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_0200C644
+ b _022158A8
+_02215880:
+ add r0, r5, #0
+ bl FUN_02008268
+ cmp r0, #0
+ bne _02215894
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_0200C644
+ b _022158A8
+_02215894:
+ add r0, r5, #0
+ mov r1, #6
+ bl FUN_0200782C
+ cmp r0, #1
+ bne _022158A8
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_0200C644
+_022158A8:
+ cmp r5, #0
+ beq _022158C2
+ ldr r0, [r6]
+ bl FUN_02020350
+ add r1, r0, #0
+ mov r3, #0x32
+ ldr r1, [r1, #4]
+ ldr r2, [sp, #0x18]
+ mov r0, #0x13
+ lsl r3, r3, #6
+ bl FUN_0201C2C8
+_022158C2:
+ cmp r5, #0
+ beq _022158EC
+ ldr r0, [r6]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ mov r1, #2
+ str r1, [sp]
+ mov r1, #0x20
+ lsl r0, r0, #0x14
+ str r1, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #0x20]
+ ldr r2, [sp, #0x1c]
+ ldr r3, [r4]
+ bl FUN_020030E8
+_022158EC:
+ ldr r0, [sp, #0x24]
+ add r7, r7, #4
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #4
+ bge _022158FA
+ b _022157AA
+_022158FA:
+ add r0, r4, #0
+ add sp, #0x90
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02215900: .word 0x0222AA4C
+_02215904: .word 0x0000D903
+_02215908: .word 0x00001388
+
+ thumb_func_start MOD08_0221590C
+MOD08_0221590C: ; 0x0221590C
+ ldr r3, _02215914 ; =MOD08_022156C0
+ mov r2, #0xff
+ bx r3
+ nop
+_02215914: .word MOD08_022156C0
+
+ thumb_func_start MOD08_02215918
+MOD08_02215918: ; 0x02215918
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r6, #0
+ add r4, r5, #0
+_02215920:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _0221593C
+ ldr r0, [r5, #0xc]
+ ldr r1, [r4, #0x14]
+ bl FUN_0200C358
+ ldr r0, [r5, #0xc]
+ ldr r1, [r4, #0x14]
+ bl FUN_0200C368
+ ldr r0, [r4, #0x24]
+ bl FUN_0200C3DC
+_0221593C:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _02215920
+ add r0, r5, #0
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221594C
+MOD08_0221594C: ; 0x0221594C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r4, #0
+ add r5, r6, #0
+_02215956:
+ cmp r4, r7
+ bne _02215976
+ ldr r0, [r5, #0x24]
+ cmp r0, #0
+ beq _02215976
+ ldr r0, [r6, #0xc]
+ ldr r1, [r5, #0x14]
+ bl FUN_0200C358
+ ldr r0, [r6, #0xc]
+ ldr r1, [r5, #0x14]
+ bl FUN_0200C368
+ ldr r0, [r5, #0x24]
+ bl FUN_0200C3DC
+_02215976:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02215956
+ add r0, r6, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215988
+MOD08_02215988: ; 0x02215988
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02215992
+ bl ErrorHandling
+_02215992:
+ ldr r0, [r4, #4]
+ add r0, r4, r0
+ add r0, #0x44
+ ldrb r0, [r0]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221599C
+MOD08_0221599C: ; 0x0221599C
+ push {r4, lr}
+ sub sp, #8
+ mov r1, #0x12
+ lsl r1, r1, #0xa
+ add r4, r0, #0
+ bl FUN_02016998
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r3, #0x12
+ ldr r0, _022159DC ; =MOD08_02215A68
+ ldr r1, _022159E0 ; =MOD08_02215A84
+ lsl r3, r3, #0xa
+ str r4, [sp, #4]
+ bl FUN_02012CDC
+ add r4, r0, #0
+ bl FUN_0201343C
+ add r2, r0, #0
+ beq _022159D4
+ mov r0, #1
+ mov r1, #0xe1
+ lsl r0, r0, #0xc
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+_022159D4:
+ add r0, r4, #0
+ add sp, #8
+ pop {r4, pc}
+ nop
+_022159DC: .word MOD08_02215A68
+_022159E0: .word MOD08_02215A84
+
+ thumb_func_start MOD08_022159E4
+MOD08_022159E4: ; 0x022159E4
+ push {r4, lr}
+ sub sp, #8
+ mov r1, #0x42
+ lsl r1, r1, #8
+ add r4, r0, #0
+ bl FUN_02016998
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r3, #0x42
+ ldr r0, _02215A24 ; =MOD08_02215A68
+ ldr r1, _02215A28 ; =MOD08_02215A84
+ lsl r3, r3, #8
+ str r4, [sp, #4]
+ bl FUN_02012CDC
+ add r4, r0, #0
+ bl FUN_0201343C
+ add r2, r0, #0
+ beq _02215A1C
+ mov r0, #1
+ mov r1, #0xe1
+ lsl r0, r0, #0xc
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+_02215A1C:
+ add r0, r4, #0
+ add sp, #8
+ pop {r4, pc}
+ nop
+_02215A24: .word MOD08_02215A68
+_02215A28: .word MOD08_02215A84
+
+ thumb_func_start MOD08_02215A2C
+MOD08_02215A2C: ; 0x02215A2C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_020133E8
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_02012DE4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02215A44
+MOD08_02215A44: ; 0x02215A44
+ push {r3, lr}
+ bl FUN_020222AC
+ bl FUN_02013348
+ cmp r0, #0
+ beq _02215A66
+ bl FUN_02013364
+ cmp r0, #0
+ ble _02215A62
+ bl FUN_020222AC
+ bl FUN_020B02C8
+_02215A62:
+ bl FUN_02013388
+_02215A66:
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02215A68
+MOD08_02215A68: ; 0x02215A68
+ push {r4, lr}
+ ldr r3, _02215A80 ; =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
+_02215A80: .word 0x021064B8
+
+ thumb_func_start MOD08_02215A84
+MOD08_02215A84: ; 0x02215A84
+ push {r4, lr}
+ ldr r3, _02215A9C ; =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
+_02215A9C: .word 0x021064C0
+
+ thumb_func_start MOD08_02215AA0
+MOD08_02215AA0: ; 0x02215AA0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02215AA4
+MOD08_02215AA4: ; 0x02215AA4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD08_0221599C
+ add r4, r0, #0
+ mov r0, #0x1d
+ add r1, r6, #0
+ add r2, r5, #0
+ bl FUN_0201318C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #0xa
+ add r3, r7, #0
+ bl FUN_02013194
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215ACC
+MOD08_02215ACC: ; 0x02215ACC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ str r3, [sp]
+ bl MOD08_0221599C
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl FUN_0201318C
+ add r1, r0, #0
+ ldr r3, [sp]
+ add r0, r4, #0
+ mov r2, #0xa
+ bl FUN_02013194
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215AF8
+MOD08_02215AF8: ; 0x02215AF8
+ ldr r3, _02215AFC ; =0x02006705
+ bx r3
+ .align 2, 0
+_02215AFC: .word 0x02006705
+
+ thumb_func_start MOD08_02215B00
+MOD08_02215B00: ; 0x02215B00
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r7, r2, #0
+ add r0, r5, #0
+ str r3, [sp]
+ bl MOD08_022159E4
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl MOD08_02215AF8
+ add r1, r0, #0
+ ldr r3, [sp]
+ add r0, r4, #0
+ mov r2, #0xa
+ bl FUN_02013194
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215B2C
+MOD08_02215B2C: ; 0x02215B2C
+ push {r4, lr}
+ lsl r4, r2, #2
+ ldr r2, _02215B3C ; =0x0222B248
+ ldr r2, [r2, r4]
+ bl FUN_020133AC
+ pop {r4, pc}
+ nop
+_02215B3C: .word 0x0222B248
+
+ thumb_func_start MOD08_02215B40
+MOD08_02215B40: ; 0x02215B40
+ ldr r3, _02215B44 ; =MOD08_02215A2C
+ bx r3
+ .align 2, 0
+_02215B44: .word MOD08_02215A2C
+
+ thumb_func_start MOD08_02215B48
+MOD08_02215B48: ; 0x02215B48
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r2, #0
+ mov r4, #1
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02227468
+ cmp r5, #5
+ bhi _02215B84
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02215B6E: ; jump table
+ .short _02215B84 - _02215B6E - 2 ; case 0
+ .short _02215B7A - _02215B6E - 2 ; case 1
+ .short _02215B84 - _02215B6E - 2 ; case 2
+ .short _02215B7E - _02215B6E - 2 ; case 3
+ .short _02215B84 - _02215B6E - 2 ; case 4
+ .short _02215B82 - _02215B6E - 2 ; case 5
+_02215B7A:
+ sub r4, r4, #2
+ b _02215B84
+_02215B7E:
+ sub r4, r4, #2
+ b _02215B84
+_02215B82:
+ sub r4, r4, #2
+_02215B84:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215B88
+MOD08_02215B88: ; 0x02215B88
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02215B8C
+MOD08_02215B8C: ; 0x02215B8C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r4, r0, #0
+ bl MOD08_02212458
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r0, r4, #0
+ bl MOD08_02212468
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _02215BC2
+ add r0, r4, #0
+ mov r1, #1
+ add r2, sp, #0x28
+ bl MOD08_0222771C
+ b _02215BFA
+_02215BC2:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_02227468
+ str r0, [sp]
+ bl MOD08_02227524
+ str r0, [sp, #4]
+ add r0, r6, #0
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, sp, #0x28
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ ldr r0, [sp]
+ add r1, sp, #0x1c
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+_02215BFA:
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x28]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x2c]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x30]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ mov r0, #1
+ add r1, sp, #0x10
+ bl MOD08_02227974
+ add r0, r6, #0
+ bl FUN_0201343C
+ add r4, r0, #0
+ add r0, sp, #8
+ add r1, r4, #0
+ bl FUN_0201F014
+ add r0, sp, #8
+ add r1, r4, #0
+ bl FUN_0201EF90
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215C44
+MOD08_02215C44: ; 0x02215C44
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r4, r0, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212468
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #0
+ add r2, sp, #0xc
+ bl MOD08_0222771C
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0xc]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x10]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x14]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add r0, r6, #0
+ add r1, sp, #0
+ bl MOD08_02227974
+ add r0, r7, #0
+ add r1, sp, #0
+ bl FUN_020133FC
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215CA0
+MOD08_02215CA0: ; 0x02215CA0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_0201341C
+ add r5, r0, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, sp, #0
+ bl MOD08_0222771C
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0x30]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215CE4
+MOD08_02215CE4: ; 0x02215CE4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_0201341C
+ add r5, r0, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, sp, #0
+ bl MOD08_0222771C
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0x30]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215D28
+MOD08_02215D28: ; 0x02215D28
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r4, r0, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, sp, #0
+ bl MOD08_0222771C
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215D74
+MOD08_02215D74: ; 0x02215D74
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r6, r0, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ beq _02215DA0
+ mov r4, #1
+ b _02215DA2
+_02215DA0:
+ mov r4, #0
+_02215DA2:
+ add r0, r6, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r4, #0
+ add r1, sp, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215DDC
+MOD08_02215DDC: ; 0x02215DDC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r6, r0, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ beq _02215E08
+ mov r4, #1
+ b _02215E0A
+_02215E08:
+ mov r4, #0
+_02215E0A:
+ add r0, r6, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r4, #0
+ add r1, sp, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215E44
+MOD08_02215E44: ; 0x02215E44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x9c
+ add r5, r0, #0
+ add r1, sp, #0
+ mov r0, #0
+ strh r0, [r1]
+ strh r0, [r1, #2]
+ strh r0, [r1, #4]
+ strh r0, [r1, #6]
+ strh r0, [r1, #8]
+ strh r0, [r1, #0xa]
+ ldr r3, _02215EE4 ; =0x0222B2A4
+ add r2, sp, #0x54
+ mov r1, #0x24
+_02215E60:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _02215E60
+ ldr r3, _02215EE8 ; =0x0222B2EC
+ add r2, sp, #0xc
+ mov r1, #0x24
+_02215E72:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _02215E72
+ bl FUN_0201341C
+ add r4, r0, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD08_02227468
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD08_02227468
+ lsl r2, r0, #1
+ mov r0, #0xc
+ add r1, r6, #0
+ mul r1, r0
+ add r0, sp, #0x54
+ add r0, r0, r1
+ ldrsh r4, [r2, r0]
+ mov r3, #0xac
+ add r0, r4, #0
+ ldr r4, [r5, #0x20]
+ mul r0, r3
+ ldr r4, [r4]
+ ldr r4, [r4, #4]
+ add r0, r0, r4
+ str r0, [r5, #0x28]
+ add r0, sp, #0xc
+ add r0, r0, r1
+ ldrsh r0, [r2, r0]
+ add r1, r0, #0
+ ldr r0, [r5, #0x20]
+ mul r1, r3
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ str r0, [r5, #0x30]
+ add sp, #0x9c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02215EE4: .word 0x0222B2A4
+_02215EE8: .word 0x0222B2EC
+
+ thumb_func_start MOD08_02215EEC
+MOD08_02215EEC: ; 0x02215EEC
+ push {r3, r4}
+ add r3, r2, #0
+ add r3, #8
+ cmp r0, #7
+ bhi _02215F7C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02215F02: ; jump table
+ .short _02215F7C - _02215F02 - 2 ; case 0
+ .short _02215F12 - _02215F02 - 2 ; case 1
+ .short _02215F1C - _02215F02 - 2 ; case 2
+ .short _02215F26 - _02215F02 - 2 ; case 3
+ .short _02215F30 - _02215F02 - 2 ; case 4
+ .short _02215F42 - _02215F02 - 2 ; case 5
+ .short _02215F54 - _02215F02 - 2 ; case 6
+ .short _02215F66 - _02215F02 - 2 ; case 7
+_02215F12:
+ ldr r0, [r2]
+ mul r1, r0
+ str r1, [r2]
+ pop {r3, r4}
+ bx lr
+_02215F1C:
+ ldr r0, [r2, #4]
+ mul r1, r0
+ str r1, [r2, #4]
+ pop {r3, r4}
+ bx lr
+_02215F26:
+ ldr r0, [r3]
+ mul r1, r0
+ str r1, [r3]
+ pop {r3, r4}
+ bx lr
+_02215F30:
+ ldr r0, [r2]
+ add r3, r0, #0
+ mul r3, r1
+ str r3, [r2]
+ ldr r0, [r2, #4]
+ mul r1, r0
+ str r1, [r2, #4]
+ pop {r3, r4}
+ bx lr
+_02215F42:
+ ldr r0, [r2]
+ add r4, r0, #0
+ mul r4, r1
+ str r4, [r2]
+ ldr r0, [r3]
+ mul r1, r0
+ str r1, [r3]
+ pop {r3, r4}
+ bx lr
+_02215F54:
+ ldr r0, [r2, #4]
+ add r4, r0, #0
+ mul r4, r1
+ str r4, [r2, #4]
+ ldr r0, [r3]
+ mul r1, r0
+ str r1, [r3]
+ pop {r3, r4}
+ bx lr
+_02215F66:
+ ldr r0, [r2]
+ add r4, r0, #0
+ mul r4, r1
+ str r4, [r2]
+ ldr r0, [r2, #4]
+ add r4, r0, #0
+ mul r4, r1
+ str r4, [r2, #4]
+ ldr r0, [r3]
+ mul r1, r0
+ str r1, [r3]
+_02215F7C:
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD08_02215F80
+MOD08_02215F80: ; 0x02215F80
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r2, #0
+ add r5, r1, #0
+ add r1, r3, #0
+ add r7, sp, #0x10
+ mov r2, #0
+ str r2, [r7]
+ ldr r3, [sp, #0x30]
+ str r2, [r7, #4]
+ ldr r4, [sp, #0x38]
+ str r2, [r7, #8]
+ cmp r3, #5
+ bhi _0221602A
+ add r3, r3, r3
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_02215FA8: ; jump table
+ .short _0221602A - _02215FA8 - 2 ; case 0
+ .short _02215FB4 - _02215FA8 - 2 ; case 1
+ .short _02215FDA - _02215FA8 - 2 ; case 2
+ .short _02215FEE - _02215FA8 - 2 ; case 3
+ .short _02215FF6 - _02215FA8 - 2 ; case 4
+ .short _02216000 - _02215FA8 - 2 ; case 5
+_02215FB4:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_02013628
+ add r1, sp, #0x20
+ mov r0, #0x14
+ ldrsb r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [sp, #0x14]
+ str r2, [sp, #0x10]
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [sp, #0x18]
+ str r2, [sp, #0x14]
+ mul r0, r1
+ str r0, [sp, #0x18]
+ b _0221602A
+_02215FDA:
+ str r2, [sp, #0x10]
+ add r1, sp, #0x20
+ mov r0, #0x14
+ ldrsb r1, [r1, r0]
+ mov r0, #0x32
+ lsl r0, r0, #6
+ mul r0, r1
+ str r0, [sp, #0x14]
+ str r2, [sp, #0x18]
+ b _0221602A
+_02215FEE:
+ add r2, r7, #0
+ bl MOD08_0222771C
+ b _0221602A
+_02215FF6:
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD08_0222771C
+ b _0221602A
+_02216000:
+ add r1, sp, #0
+ str r2, [r1]
+ str r2, [r1, #4]
+ str r2, [r1, #8]
+ str r2, [r1, #0xc]
+ mov r2, #4
+ bl MOD08_02215434
+ ldr r0, [sp]
+ add r2, sp, #0x20
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ mov r1, #0x14
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #8]
+ str r0, [sp, #0x18]
+ ldrsb r1, [r2, r1]
+ ldr r0, [sp, #0xc]
+ add r2, r7, #0
+ bl MOD08_02215EEC
+_0221602A:
+ ldr r1, [sp, #0x10]
+ ldr r0, [r4]
+ sub r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ ldr r0, [r4, #4]
+ sub r0, r1, r0
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r0, [r4, #8]
+ sub r0, r1, r0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, sp, #0x10
+ bl FUN_02013610
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02216050
+MOD08_02216050: ; 0x02216050
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r2, #0
+ add r5, r1, #0
+ add r1, r3, #0
+ add r7, sp, #0x10
+ mov r2, #0
+ str r2, [r7]
+ ldr r3, [sp, #0x30]
+ str r2, [r7, #4]
+ ldr r4, [sp, #0x38]
+ str r2, [r7, #8]
+ cmp r3, #5
+ bhi _022160FA
+ add r3, r3, r3
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_02216078: ; jump table
+ .short _022160FA - _02216078 - 2 ; case 0
+ .short _02216084 - _02216078 - 2 ; case 1
+ .short _022160AA - _02216078 - 2 ; case 2
+ .short _022160BE - _02216078 - 2 ; case 3
+ .short _022160C6 - _02216078 - 2 ; case 4
+ .short _022160D0 - _02216078 - 2 ; case 5
+_02216084:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_02013548
+ add r1, sp, #0x20
+ mov r0, #0x14
+ ldrsb r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [sp, #0x14]
+ str r2, [sp, #0x10]
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [sp, #0x18]
+ str r2, [sp, #0x14]
+ mul r0, r1
+ str r0, [sp, #0x18]
+ b _022160FA
+_022160AA:
+ str r2, [sp, #0x10]
+ add r1, sp, #0x20
+ mov r0, #0x14
+ ldrsb r1, [r1, r0]
+ mov r0, #0x32
+ lsl r0, r0, #6
+ mul r0, r1
+ str r0, [sp, #0x14]
+ str r2, [sp, #0x18]
+ b _022160FA
+_022160BE:
+ add r2, r7, #0
+ bl MOD08_0222771C
+ b _022160FA
+_022160C6:
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD08_0222771C
+ b _022160FA
+_022160D0:
+ add r1, sp, #0
+ str r2, [r1]
+ str r2, [r1, #4]
+ str r2, [r1, #8]
+ str r2, [r1, #0xc]
+ mov r2, #4
+ bl MOD08_02215434
+ ldr r0, [sp]
+ add r2, sp, #0x20
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ mov r1, #0x14
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #8]
+ str r0, [sp, #0x18]
+ ldrsb r1, [r2, r1]
+ ldr r0, [sp, #0xc]
+ add r2, r7, #0
+ bl MOD08_02215EEC
+_022160FA:
+ ldr r1, [sp, #0x10]
+ ldr r0, [r4]
+ sub r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ ldr r0, [r4, #4]
+ sub r0, r1, r0
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r0, [r4, #8]
+ sub r0, r1, r0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, sp, #0x10
+ bl FUN_02013530
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02216120
+MOD08_02216120: ; 0x02216120
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x94
+ add r6, r0, #0
+ add r7, r2, #0
+ add r4, r1, #0
+ str r3, [sp, #0xc]
+ bl MOD08_02212468
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02227468
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ add r0, r6, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r6, #0
+ add r1, sp, #0x7c
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x70
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x58
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x64
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x40
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x34
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x4c
+ mov r2, #3
+ bl MOD08_02215434
+ ldr r0, [sp, #0x10]
+ cmp r0, #5
+ bhi _022161A8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221619C: ; jump table
+ .short _022161A8 - _0221619C - 2 ; case 0
+ .short _022161B8 - _0221619C - 2 ; case 1
+ .short _022161CE - _0221619C - 2 ; case 2
+ .short _02216202 - _0221619C - 2 ; case 3
+ .short _0221624C - _0221619C - 2 ; case 4
+ .short _02216280 - _0221619C - 2 ; case 5
+_022161A8:
+ ldr r1, [sp, #0x7c]
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x80]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x84]
+ strh r1, [r0, #4]
+ b _022162C8
+_022161B8:
+ ldr r0, [sp, #0x7c]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x80]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x84]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_022161CE:
+ cmp r5, #3
+ add r0, sp, #0x14
+ bne _022161E2
+ ldr r1, [sp, #0x70]
+ strh r1, [r0]
+ ldr r1, [sp, #0x74]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x78]
+ strh r1, [r0, #4]
+ b _022162C8
+_022161E2:
+ cmp r5, #5
+ bne _022161F4
+ ldr r1, [sp, #0x58]
+ strh r1, [r0]
+ ldr r1, [sp, #0x5c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x60]
+ strh r1, [r0, #4]
+ b _022162C8
+_022161F4:
+ ldr r1, [sp, #0x64]
+ strh r1, [r0]
+ ldr r1, [sp, #0x68]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x6c]
+ strh r1, [r0, #4]
+ b _022162C8
+_02216202:
+ cmp r5, #2
+ bne _0221621C
+ ldr r0, [sp, #0x70]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x74]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x78]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_0221621C:
+ cmp r5, #5
+ bne _02216236
+ ldr r0, [sp, #0x64]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x68]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x6c]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_02216236:
+ ldr r0, [sp, #0x40]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x44]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x48]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_0221624C:
+ cmp r5, #3
+ add r0, sp, #0x14
+ bne _02216260
+ ldr r1, [sp, #0x40]
+ strh r1, [r0]
+ ldr r1, [sp, #0x44]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x48]
+ strh r1, [r0, #4]
+ b _022162C8
+_02216260:
+ cmp r5, #5
+ bne _02216272
+ ldr r1, [sp, #0x34]
+ strh r1, [r0]
+ ldr r1, [sp, #0x38]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x3c]
+ strh r1, [r0, #4]
+ b _022162C8
+_02216272:
+ ldr r1, [sp, #0x4c]
+ strh r1, [r0]
+ ldr r1, [sp, #0x50]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x54]
+ strh r1, [r0, #4]
+ b _022162C8
+_02216280:
+ cmp r5, #3
+ bne _0221629A
+ ldr r0, [sp, #0x4c]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x50]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x54]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_0221629A:
+ cmp r5, #2
+ bne _022162B4
+ ldr r0, [sp, #0x58]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x5c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x60]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_022162B4:
+ ldr r0, [sp, #0x34]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x38]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x3c]
+ neg r1, r1
+ strh r1, [r0, #4]
+_022162C8:
+ ldr r2, [sp, #0xc]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02215B48
+ add r5, r0, #0
+ add r1, sp, #0x28
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r6, #0
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, sp, #0x1c
+ bl MOD08_0222771C
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ bne _02216334
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0
+ bne _02216334
+ ldr r0, [sp, #0x30]
+ cmp r0, #0
+ bne _02216334
+ add r3, sp, #0x1c
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x88
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r1, [r4, #0x20]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [r1]
+ ldr r1, [r1, #4]
+ add r0, r0, r1
+ str r0, [r4, #0x28]
+ ldr r1, [r4, #0x20]
+ ldr r0, [sp, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r0, r0, r1
+ str r0, [r4, #0x2c]
+ ldr r1, [r4, #0x20]
+ ldr r0, [sp, #0x24]
+ ldr r1, [r1]
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [r4, #0x30]
+ b _02216388
+_02216334:
+ ldr r2, [sp, #0x28]
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x30]
+ str r2, [sp, #0x88]
+ str r1, [sp, #0x8c]
+ str r0, [sp, #0x90]
+ cmp r2, #0
+ bne _0221634E
+ mov r0, #0x32
+ lsl r0, r0, #6
+ cmp r1, r0
+ bne _0221634E
+ mov r5, #1
+_0221634E:
+ ldr r1, [sp, #0x88]
+ add r0, r1, #0
+ ldr r1, [sp, #0x8c]
+ mul r0, r5
+ add r2, r1, #0
+ mul r2, r5
+ ldr r1, [sp, #0x24]
+ str r2, [sp, #0x8c]
+ add r2, r1, #0
+ mul r2, r5
+ str r0, [sp, #0x88]
+ str r2, [sp, #0x90]
+ ldr r1, [r4, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #4]
+ add r0, r0, r1
+ str r0, [r4, #0x28]
+ ldr r1, [r4, #0x20]
+ ldr r0, [sp, #0x8c]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r0, r0, r1
+ str r0, [r4, #0x2c]
+ ldr r1, [r4, #0x20]
+ ldr r0, [sp, #0x90]
+ ldr r1, [r1]
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [r4, #0x30]
+_02216388:
+ ldr r0, [sp, #0xa8]
+ cmp r0, #0
+ beq _022163C6
+ cmp r0, #1
+ beq _02216398
+ cmp r0, #2
+ beq _022163B0
+ b _022163C6
+_02216398:
+ ldr r0, [sp, #0xac]
+ ldr r3, [sp, #0xc]
+ str r0, [sp]
+ str r5, [sp, #4]
+ add r0, sp, #0x88
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD08_02215F80
+ b _022163C6
+_022163B0:
+ ldr r0, [sp, #0xac]
+ ldr r3, [sp, #0xc]
+ str r0, [sp]
+ str r5, [sp, #4]
+ add r0, sp, #0x88
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD08_02216050
+_022163C6:
+ add r1, sp, #0x14
+ ldrh r2, [r1]
+ add r0, r4, #0
+ add r0, #0x50
+ strh r2, [r0]
+ add r0, r4, #0
+ ldrh r2, [r1, #2]
+ add r0, #0x52
+ add r4, #0x54
+ strh r2, [r0]
+ ldrh r0, [r1, #4]
+ strh r0, [r4]
+ add sp, #0x94
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022163E4
+MOD08_022163E4: ; 0x022163E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ bl FUN_0201341C
+ add r6, r0, #0
+ bl MOD08_02212458
+ str r0, [sp, #8]
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r3, r0, #0
+ str r5, [sp]
+ ldr r2, [sp, #8]
+ add r0, r6, #0
+ add r1, r7, #0
+ str r4, [sp, #4]
+ bl MOD08_02216120
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02216414
+MOD08_02216414: ; 0x02216414
+ ldr r3, _0221641C ; =MOD08_022163E4
+ mov r1, #0
+ add r2, r1, #0
+ bx r3
+ .align 2, 0
+_0221641C: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216420
+MOD08_02216420: ; 0x02216420
+ ldr r3, _02216428 ; =MOD08_022163E4
+ mov r1, #1
+ add r2, r1, #0
+ bx r3
+ .align 2, 0
+_02216428: .word MOD08_022163E4
+
+ thumb_func_start MOD08_0221642C
+MOD08_0221642C: ; 0x0221642C
+ ldr r3, _02216434 ; =MOD08_022163E4
+ mov r1, #1
+ mov r2, #2
+ bx r3
+ .align 2, 0
+_02216434: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216438
+MOD08_02216438: ; 0x02216438
+ ldr r3, _02216440 ; =MOD08_022163E4
+ mov r1, #1
+ mov r2, #3
+ bx r3
+ .align 2, 0
+_02216440: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216444
+MOD08_02216444: ; 0x02216444
+ ldr r3, _0221644C ; =MOD08_022163E4
+ mov r1, #1
+ mov r2, #4
+ bx r3
+ .align 2, 0
+_0221644C: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216450
+MOD08_02216450: ; 0x02216450
+ ldr r3, _02216458 ; =MOD08_022163E4
+ mov r1, #1
+ mov r2, #5
+ bx r3
+ .align 2, 0
+_02216458: .word MOD08_022163E4
+
+ thumb_func_start MOD08_0221645C
+MOD08_0221645C: ; 0x0221645C
+ ldr r3, _02216464 ; =MOD08_022163E4
+ mov r1, #2
+ mov r2, #1
+ bx r3
+ .align 2, 0
+_02216464: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216468
+MOD08_02216468: ; 0x02216468
+ ldr r3, _02216470 ; =MOD08_022163E4
+ mov r1, #2
+ add r2, r1, #0
+ bx r3
+ .align 2, 0
+_02216470: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216474
+MOD08_02216474: ; 0x02216474
+ ldr r3, _0221647C ; =MOD08_022163E4
+ mov r1, #2
+ mov r2, #3
+ bx r3
+ .align 2, 0
+_0221647C: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216480
+MOD08_02216480: ; 0x02216480
+ ldr r3, _02216488 ; =MOD08_022163E4
+ mov r1, #2
+ mov r2, #4
+ bx r3
+ .align 2, 0
+_02216488: .word MOD08_022163E4
+
+ thumb_func_start MOD08_0221648C
+MOD08_0221648C: ; 0x0221648C
+ ldr r3, _02216494 ; =MOD08_022163E4
+ mov r1, #2
+ mov r2, #5
+ bx r3
+ .align 2, 0
+_02216494: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216498
+MOD08_02216498: ; 0x02216498
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r4, r0, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, r6, #0
+ bl MOD08_02216120
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022164C8
+MOD08_022164C8: ; 0x022164C8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x14]
+ add r5, r0, #0
+ cmp r2, #0
+ beq _022164D8
+ bl MOD08_0221658C
+_022164D8:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _022164E6
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_022168C0
+_022164E6:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _022164F4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217124
+_022164F4:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217158
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0221650A
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217168
+_0221650A:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221650C
+MOD08_0221650C: ; 0x0221650C
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r4, [r1]
+ add r6, r2, #0
+ add r0, r4, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ beq _02216534
+ mov r5, #1
+ b _02216536
+_02216534:
+ mov r5, #0
+_02216536:
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221654C
+MOD08_0221654C: ; 0x0221654C
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r4, [r1]
+ add r6, r2, #0
+ add r0, r4, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ beq _02216574
+ mov r5, #1
+ b _02216576
+_02216574:
+ mov r5, #0
+_02216576:
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221658C
+MOD08_0221658C: ; 0x0221658C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xbc
+ add r4, r1, #0
+ ldr r2, [r4, #0x14]
+ add r5, r0, #0
+ cmp r2, #0x64
+ bgt _022165F4
+ blt _0221659E
+ b _02216768
+_0221659E:
+ cmp r2, #0x22
+ bhi _022165FA
+ add r3, r2, r2
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_022165AE: ; jump table
+ .short _02216872 - _022165AE - 2 ; case 0
+ .short _022165FC - _022165AE - 2 ; case 1
+ .short _02216608 - _022165AE - 2 ; case 2
+ .short _02216704 - _022165AE - 2 ; case 3
+ .short _02216740 - _022165AE - 2 ; case 4
+ .short _02216754 - _022165AE - 2 ; case 5
+ .short _02216614 - _022165AE - 2 ; case 6
+ .short _02216620 - _022165AE - 2 ; case 7
+ .short _022166EC - _022165AE - 2 ; case 8
+ .short _022166F8 - _022165AE - 2 ; case 9
+ .short _0221662C - _022165AE - 2 ; case 10
+ .short _02216638 - _022165AE - 2 ; case 11
+ .short _02216794 - _022165AE - 2 ; case 12
+ .short _022167A4 - _022165AE - 2 ; case 13
+ .short _02216644 - _022165AE - 2 ; case 14
+ .short _02216650 - _022165AE - 2 ; case 15
+ .short _0221665C - _022165AE - 2 ; case 16
+ .short _02216668 - _022165AE - 2 ; case 17
+ .short _02216674 - _022165AE - 2 ; case 18
+ .short _02216680 - _022165AE - 2 ; case 19
+ .short _0221668C - _022165AE - 2 ; case 20
+ .short _02216698 - _022165AE - 2 ; case 21
+ .short _022166A4 - _022165AE - 2 ; case 22
+ .short _022166B0 - _022165AE - 2 ; case 23
+ .short _022166BC - _022165AE - 2 ; case 24
+ .short _022166C8 - _022165AE - 2 ; case 25
+ .short _022166D4 - _022165AE - 2 ; case 26
+ .short _022166E0 - _022165AE - 2 ; case 27
+ .short _022167B4 - _022165AE - 2 ; case 28
+ .short _02216872 - _022165AE - 2 ; case 29
+ .short _02216804 - _022165AE - 2 ; case 30
+ .short _022167DA - _022165AE - 2 ; case 31
+ .short _0221683C - _022165AE - 2 ; case 32
+ .short _022167C0 - _022165AE - 2 ; case 33
+ .short _022167CE - _022165AE - 2 ; case 34
+_022165F4:
+ cmp r2, #0x65
+ bne _022165FA
+ b _0221677E
+_022165FA:
+ b _02216872
+_022165FC:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ b _02216872
+_02216608:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ b _02216872
+_02216614:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222774C
+ b _02216872
+_02216620:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222774C
+ b _02216872
+_0221662C:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222777C
+ b _02216872
+_02216638:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222777C
+ b _02216872
+_02216644:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_022277AC
+ b _02216872
+_02216650:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_022277AC
+ b _02216872
+_0221665C:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_022277DC
+ b _02216872
+_02216668:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_022277DC
+ b _02216872
+_02216674:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222780C
+ b _02216872
+_02216680:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222780C
+ b _02216872
+_0221668C:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222783C
+ b _02216872
+_02216698:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222783C
+ b _02216872
+_022166A4:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222786C
+ b _02216872
+_022166B0:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222786C
+ b _02216872
+_022166BC:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222789C
+ b _02216872
+_022166C8:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222789C
+ b _02216872
+_022166D4:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_022278CC
+ b _02216872
+_022166E0:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_022278CC
+ b _02216872
+_022166EC:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222792C
+ b _02216872
+_022166F8:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222792C
+ b _02216872
+_02216704:
+ ldr r0, [r4]
+ add r1, sp, #0xa0
+ mov r2, #4
+ bl MOD08_02215434
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #0xa4]
+ str r0, [sp, #0xb0]
+ ldr r0, [sp, #0xa8]
+ str r0, [sp, #0xb4]
+ ldr r0, [sp, #0xac]
+ str r0, [sp, #0xb8]
+ ldr r0, [sp, #0xa0]
+ cmp r0, #1
+ bne _0221672C
+ mov r0, #1
+ strb r0, [r4, #8]
+_0221672C:
+ mov r0, #8
+ ldrsb r1, [r4, r0]
+ ldr r2, [sp, #0xb0]
+ mul r1, r2
+ str r1, [sp, #0xb0]
+ ldrsb r0, [r4, r0]
+ ldr r1, [sp, #0xb4]
+ mul r0, r1
+ str r0, [sp, #0xb4]
+ b _02216872
+_02216740:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ add r0, r4, #0
+ add r1, sp, #0xb0
+ bl MOD08_0221734C
+ b _02216872
+_02216754:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ add r0, r4, #0
+ add r1, sp, #0xb0
+ bl MOD08_0221734C
+ b _02216872
+_02216768:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ ldr r1, [r4, #0x24]
+ add r0, r4, #0
+ add r2, sp, #0xb0
+ bl MOD08_022172C0
+ b _02216872
+_0221677E:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ ldr r1, [r4, #0x28]
+ add r0, r4, #0
+ add r2, sp, #0xb0
+ bl MOD08_022172C0
+ b _02216872
+_02216794:
+ add r2, sp, #0xb0
+ bl MOD08_0221654C
+ add r0, r4, #0
+ add r1, sp, #0xb0
+ bl MOD08_0221734C
+ b _02216872
+_022167A4:
+ add r2, sp, #0xb0
+ bl MOD08_0221650C
+ add r0, r4, #0
+ add r1, sp, #0xb0
+ bl MOD08_0221734C
+ b _02216872
+_022167B4:
+ ldr r0, _022168A8 ; =0x00002CE0
+ str r0, [sp, #0xb0]
+ mov r0, #0
+ str r0, [sp, #0xb4]
+ str r0, [sp, #0xb8]
+ b _02216872
+_022167C0:
+ ldr r0, _022168AC ; =0xFFFFEC78
+ str r0, [sp, #0xb0]
+ ldr r0, _022168B0 ; =0xFFFFE890
+ str r0, [sp, #0xb4]
+ mov r0, #0
+ str r0, [sp, #0xb8]
+ b _02216872
+_022167CE:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ b _02216872
+_022167DA:
+ ldr r6, _022168B4 ; =0x0222B344
+ add r3, sp, #0x70
+ mov r2, #6
+_022167E0:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022167E0
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ bl MOD08_02227468
+ lsl r1, r0, #3
+ add r0, sp, #0x70
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb0]
+ add r0, sp, #0x74
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb4]
+ mov r0, #0
+ str r0, [sp, #0xb8]
+ b _02216872
+_02216804:
+ ldr r6, _022168B8 ; =0x0222B3DC
+ add r3, sp, #0x38
+ mov r2, #7
+_0221680A:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0221680A
+ ldr r0, [r4]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216820
+ mov r0, #6
+ b _02216828
+_02216820:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ bl MOD08_02227468
+_02216828:
+ lsl r1, r0, #3
+ add r0, sp, #0x38
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb0]
+ add r0, sp, #0x3c
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb4]
+ mov r0, #0
+ str r0, [sp, #0xb8]
+ b _02216872
+_0221683C:
+ ldr r6, _022168BC ; =0x0222B3A4
+ add r3, sp, #0
+ mov r2, #7
+_02216842:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02216842
+ ldr r0, [r4]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216858
+ mov r0, #6
+ b _02216860
+_02216858:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ bl MOD08_02227468
+_02216860:
+ lsl r1, r0, #3
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb0]
+ add r0, sp, #4
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb4]
+ mov r0, #0
+ str r0, [sp, #0xb8]
+_02216872:
+ add r2, sp, #0xb0
+ ldmia r2!, {r0, r1}
+ add r4, #0x2c
+ stmia r4!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r4]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0xb0]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0xb4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0xb8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xbc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_022168A8: .word 0x00002CE0
+_022168AC: .word 0xFFFFEC78
+_022168B0: .word 0xFFFFE890
+_022168B4: .word 0x0222B344
+_022168B8: .word 0x0222B3DC
+_022168BC: .word 0x0222B3A4
+
+ thumb_func_start MOD08_022168C0
+MOD08_022168C0: ; 0x022168C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x148
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r1]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227468
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x28]
+ bl MOD08_02227468
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x18]
+ cmp r0, #0x1a
+ bls _022168EC
+ bl _022170F2
+_022168EC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022168F8: ; jump table
+ .short _0221692E - _022168F8 - 2 ; case 0
+ .short _0221693A - _022168F8 - 2 ; case 1
+ .short _0221693A - _022168F8 - 2 ; case 2
+ .short _02217024 - _022168F8 - 2 ; case 3
+ .short _022169A2 - _022168F8 - 2 ; case 4
+ .short _02216A5C - _022168F8 - 2 ; case 5
+ .short _02216D90 - _022168F8 - 2 ; case 6
+ .short _02216D90 - _022168F8 - 2 ; case 7
+ .short _02216B16 - _022168F8 - 2 ; case 8
+ .short _02216B16 - _022168F8 - 2 ; case 9
+ .short _02216B7E - _022168F8 - 2 ; case 10
+ .short _02216B7E - _022168F8 - 2 ; case 11
+ .short _02216BCC - _022168F8 - 2 ; case 12
+ .short _02216BCC - _022168F8 - 2 ; case 13
+ .short _02216C14 - _022168F8 - 2 ; case 14
+ .short _02216C14 - _022168F8 - 2 ; case 15
+ .short _02216C5C - _022168F8 - 2 ; case 16
+ .short _02216C5C - _022168F8 - 2 ; case 17
+ .short _02216D00 - _022168F8 - 2 ; case 18
+ .short _02216D00 - _022168F8 - 2 ; case 19
+ .short _02216D48 - _022168F8 - 2 ; case 20
+ .short _02216D48 - _022168F8 - 2 ; case 21
+ .short _02217038 - _022168F8 - 2 ; case 22
+ .short _022170F2 - _022168F8 - 2 ; case 23
+ .short _022170C4 - _022168F8 - 2 ; case 24
+ .short _02217080 - _022168F8 - 2 ; case 25
+ .short _02217092 - _022168F8 - 2 ; case 26
+_0221692E:
+ mov r1, #0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ b _022170F2
+_0221693A:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216974
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x10]
+ cmp r0, #2
+ add r0, sp, #0x20
+ bne _02216962
+ ldr r1, _02216CA4 ; =0xFFFFF2F8
+ strh r1, [r0]
+ mov r1, #0x73
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216962:
+ mov r1, #0x92
+ lsl r1, r1, #4
+ strh r1, [r0]
+ ldr r1, _02216CA8 ; =0xFFFFFA60
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216974:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CAC ; =0x0222BB44
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CB0 ; =0x0222BB48
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CB4 ; =0x0222BB4C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_022169A2:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022169DE
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CAC ; =0x0222BB44
+ add r2, r2, r0
+ ldr r2, [r1, r2]
+ neg r3, r2
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CB0 ; =0x0222BB48
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CB4 ; =0x0222BB4C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_022169DE:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227470
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x28]
+ bl MOD08_02227470
+ cmp r4, r0
+ bne _02216A2A
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CAC ; =0x0222BB44
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CB0 ; =0x0222BB48
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CB4 ; =0x0222BB4C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_02216A2A:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227470
+ cmp r0, #3
+ add r0, sp, #0x20
+ bne _02216A4E
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ strh r1, [r0]
+ mov r1, #0x21
+ lsl r1, r1, #6
+ strh r1, [r0, #2]
+ ldr r1, _02216CB8 ; =0x000005FC
+ strh r1, [r0, #4]
+ b _022170F2
+_02216A4E:
+ ldr r1, _02216CBC ; =0xFFFFEF7C
+ strh r1, [r0]
+ ldr r1, _02216CC0 ; =0xFFFFF558
+ strh r1, [r0, #2]
+ ldr r1, _02216CB8 ; =0x000005FC
+ strh r1, [r0, #4]
+ b _022170F2
+_02216A5C:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216A98
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CAC ; =0x0222BB44
+ add r2, r2, r0
+ ldr r2, [r1, r2]
+ neg r3, r2
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CB0 ; =0x0222BB48
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CB4 ; =0x0222BB4C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_02216A98:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227470
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x28]
+ bl MOD08_02227470
+ cmp r4, r0
+ bne _02216AE4
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CAC ; =0x0222BB44
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CB0 ; =0x0222BB48
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CB4 ; =0x0222BB4C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_02216AE4:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227470
+ cmp r0, #3
+ add r0, sp, #0x20
+ bne _02216B08
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ strh r1, [r0]
+ mov r1, #0x21
+ lsl r1, r1, #6
+ strh r1, [r0, #2]
+ ldr r1, _02216CB8 ; =0x000005FC
+ strh r1, [r0, #4]
+ b _022170F2
+_02216B08:
+ ldr r1, _02216CBC ; =0xFFFFEF7C
+ strh r1, [r0]
+ ldr r1, _02216CC0 ; =0xFFFFF558
+ strh r1, [r0, #2]
+ ldr r1, _02216CB8 ; =0x000005FC
+ strh r1, [r0, #4]
+ b _022170F2
+_02216B16:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216B50
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x10]
+ cmp r0, #2
+ add r0, sp, #0x20
+ bne _02216B3E
+ ldr r1, _02216CC4 ; =0xFFFFF6E0
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216B3E:
+ mov r1, #0x92
+ lsl r1, r1, #4
+ strh r1, [r0]
+ ldr r1, _02216CA8 ; =0xFFFFFA60
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216B50:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CC8 ; =0x0222B484
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CCC ; =0x0222B488
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CD0 ; =0x0222B48C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_02216B7E:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216B9E
+ ldr r1, _02216CC4 ; =0xFFFFF6E0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216B9E:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CD4 ; =0x0222B634
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CCC ; =0x0222B488
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CD0 ; =0x0222B48C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_02216BCC:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216BEC
+ ldr r1, _02216CD8 ; =0xFFFFF488
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216BEC:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CDC ; =0x0222B994
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CE0 ; =0x0222B998
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CE4 ; =0x0222B99C
+ add r0, r3, r0
+ ldr r0, [r1, r0]
+ strh r0, [r2, #4]
+ b _022170F2
+_02216C14:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216C34
+ ldr r1, _02216CC4 ; =0xFFFFF6E0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216C34:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CE8 ; =0x0222BCF4
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CEC ; =0x0222BCF8
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CF0 ; =0x0222BCFC
+ add r0, r3, r0
+ ldr r0, [r1, r0]
+ strh r0, [r2, #4]
+ b _022170F2
+_02216C5C:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216C7C
+ ldr r1, _02216CC4 ; =0xFFFFF6E0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216C7C:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CF4 ; =0x0222B7E4
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CF8 ; =0x0222B7E8
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CFC ; =0x0222B7EC
+ add r0, r3, r0
+ ldr r0, [r1, r0]
+ strh r0, [r2, #4]
+ b _022170F2
+ .align 2, 0
+_02216CA4: .word 0xFFFFF2F8
+_02216CA8: .word 0xFFFFFA60
+_02216CAC: .word 0x0222BB44
+_02216CB0: .word 0x0222BB48
+_02216CB4: .word 0x0222BB4C
+_02216CB8: .word 0x000005FC
+_02216CBC: .word 0xFFFFEF7C
+_02216CC0: .word 0xFFFFF558
+_02216CC4: .word 0xFFFFF6E0
+_02216CC8: .word 0x0222B484
+_02216CCC: .word 0x0222B488
+_02216CD0: .word 0x0222B48C
+_02216CD4: .word 0x0222B634
+_02216CD8: .word 0xFFFFF488
+_02216CDC: .word 0x0222B994
+_02216CE0: .word 0x0222B998
+_02216CE4: .word 0x0222B99C
+_02216CE8: .word 0x0222BCF4
+_02216CEC: .word 0x0222BCF8
+_02216CF0: .word 0x0222BCFC
+_02216CF4: .word 0x0222B7E4
+_02216CF8: .word 0x0222B7E8
+_02216CFC: .word 0x0222B7EC
+_02216D00:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216D20
+ ldr r1, _02217044 ; =0xFFFFF6E0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216D20:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02217048 ; =0x0222BEA4
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _0221704C ; =0x0222BEA8
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02217050 ; =0x0222BEAC
+ add r0, r3, r0
+ ldr r0, [r1, r0]
+ strh r0, [r2, #4]
+ b _022170F2
+_02216D48:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216D68
+ ldr r1, _02217054 ; =0xFFFFEF10
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216D68:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02217058 ; =0x0222C054
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _0221705C ; =0x0222C058
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02217060 ; =0x0222C05C
+ add r0, r3, r0
+ ldr r0, [r1, r0]
+ strh r0, [r2, #4]
+ b _022170F2
+_02216D90:
+ ldr r4, _02217064 ; =0x0222B414
+ add r3, sp, #0xd8
+ mov r2, #0xe
+_02216D96:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02216D96
+ ldr r3, _02217068 ; =0x0222B334
+ add r2, sp, #0x58
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r1, sp, #0xc8
+ mov r0, #0
+ str r1, [sp, #0xc]
+ add r1, sp, #0xb8
+ mov ip, r0
+ str r1, [sp, #0x1c]
+ add r0, sp, #0xd8
+ add r7, sp, #0xa8
+ add r6, sp, #0x98
+ add r5, sp, #0x88
+ add r1, sp, #0x78
+ add r2, sp, #0x68
+_02216DC2:
+ ldr r4, [r0]
+ ldr r3, [sp, #0xc]
+ str r4, [r3]
+ ldr r4, [r0, #0x10]
+ ldr r3, [sp, #0x1c]
+ str r4, [r3]
+ ldr r3, [r0, #0x20]
+ stmia r7!, {r3}
+ ldr r3, [r0, #0x30]
+ stmia r6!, {r3}
+ ldr r3, [r0, #0x40]
+ stmia r5!, {r3}
+ ldr r3, [r0, #0x50]
+ stmia r1!, {r3}
+ ldr r3, [r0, #0x60]
+ add r0, r0, #4
+ stmia r2!, {r3}
+ ldr r3, [sp, #0xc]
+ add r3, r3, #4
+ str r3, [sp, #0xc]
+ ldr r3, [sp, #0x1c]
+ add r3, r3, #4
+ str r3, [sp, #0x1c]
+ mov r3, ip
+ add r3, r3, #1
+ mov ip, r3
+ cmp r3, #4
+ blt _02216DC2
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216E3E
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, sp, #0x58
+ str r0, [sp, #0x10]
+ add r7, sp, #0xc8
+ add r6, sp, #0xb8
+ add r0, sp, #0xa8
+ add r1, sp, #0x98
+ add r2, sp, #0x88
+ add r3, sp, #0x78
+ add r4, sp, #0x68
+_02216E1C:
+ ldr r5, [sp, #0x10]
+ ldr r5, [r5]
+ stmia r7!, {r5}
+ stmia r6!, {r5}
+ stmia r0!, {r5}
+ stmia r1!, {r5}
+ stmia r2!, {r5}
+ stmia r3!, {r5}
+ stmia r4!, {r5}
+ ldr r5, [sp, #0x10]
+ add r5, r5, #4
+ str r5, [sp, #0x10]
+ ldr r5, [sp, #8]
+ add r5, r5, #1
+ str r5, [sp, #8]
+ cmp r5, #4
+ blt _02216E1C
+_02216E3E:
+ ldr r0, [sp, #0x18]
+ cmp r0, #5
+ bhi _02216E5C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02216E50: ; jump table
+ .short _02216E5C - _02216E50 - 2 ; case 0
+ .short _02216E6C - _02216E50 - 2 ; case 1
+ .short _02216E98 - _02216E50 - 2 ; case 2
+ .short _02216ED0 - _02216E50 - 2 ; case 3
+ .short _02216F5E - _02216E50 - 2 ; case 4
+ .short _02216F96 - _02216E50 - 2 ; case 5
+_02216E5C:
+ ldr r1, [sp, #0xc8]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xcc]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xd0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216E6C:
+ ldr r0, [sp, #0xd4]
+ cmp r0, #1
+ bne _02216E82
+ ldr r1, [sp, #0xc8]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xcc]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xd0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216E82:
+ ldr r0, [sp, #0xc8]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xcc]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xd0]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216E98:
+ ldr r0, [sp, #0x14]
+ cmp r0, #3
+ bne _02216EAE
+ ldr r1, [sp, #0xb8]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xbc]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xc0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216EAE:
+ cmp r0, #5
+ add r0, sp, #0x20
+ bne _02216EC2
+ ldr r1, [sp, #0x98]
+ strh r1, [r0]
+ ldr r1, [sp, #0x9c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xa0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216EC2:
+ ldr r1, [sp, #0xa8]
+ strh r1, [r0]
+ ldr r1, [sp, #0xac]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xb0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216ED0:
+ ldr r0, [sp, #0x14]
+ cmp r0, #2
+ bne _02216F02
+ ldr r0, [sp, #0xc4]
+ cmp r0, #1
+ bne _02216EEC
+ ldr r1, [sp, #0xb8]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xbc]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xc0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216EEC:
+ ldr r0, [sp, #0xb8]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xbc]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xc0]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F02:
+ cmp r0, #5
+ bne _02216F32
+ ldr r0, [sp, #0xb4]
+ cmp r0, #1
+ bne _02216F22
+ ldr r0, [sp, #0x88]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x8c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x90]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F22:
+ ldr r1, [sp, #0x88]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x8c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x90]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F32:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ bne _02216F48
+ ldr r1, [sp, #0x78]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x7c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x80]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F48:
+ ldr r0, [sp, #0x78]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x7c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x80]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F5E:
+ ldr r0, [sp, #0x14]
+ cmp r0, #3
+ bne _02216F74
+ ldr r1, [sp, #0x78]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x7c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x80]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F74:
+ cmp r0, #5
+ add r0, sp, #0x20
+ bne _02216F88
+ ldr r1, [sp, #0x68]
+ strh r1, [r0]
+ ldr r1, [sp, #0x6c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x70]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F88:
+ ldr r1, [sp, #0x88]
+ strh r1, [r0]
+ ldr r1, [sp, #0x8c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x90]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F96:
+ ldr r0, [sp, #0x14]
+ cmp r0, #3
+ bne _02216FC8
+ ldr r0, [sp, #0xc4]
+ cmp r0, #1
+ bne _02216FB2
+ ldr r1, [sp, #0x88]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x8c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x90]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216FB2:
+ ldr r0, [sp, #0x88]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x8c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x90]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216FC8:
+ cmp r0, #2
+ bne _02216FF8
+ ldr r0, [sp, #0xc4]
+ cmp r0, #1
+ bne _02216FE2
+ ldr r1, [sp, #0x98]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x9c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xa0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216FE2:
+ ldr r0, [sp, #0x98]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x9c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xa0]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216FF8:
+ ldr r0, [sp, #0xc4]
+ cmp r0, #1
+ bne _0221700E
+ ldr r1, [sp, #0x68]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x6c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x70]
+ strh r1, [r0, #4]
+ b _022170F2
+_0221700E:
+ ldr r0, [sp, #0x68]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x6c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x70]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02217024:
+ ldr r1, _0221706C ; =0xFFFFFCE0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x4b
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x7d
+ lsl r1, r1, #2
+ strh r1, [r0, #4]
+ b _022170F2
+_02217038:
+ ldr r1, _02217070 ; =0xFFFFF2AE
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, _02217074 ; =0xFFFFF5AC
+ b _02217078
+ nop
+_02217044: .word 0xFFFFF6E0
+_02217048: .word 0x0222BEA4
+_0221704C: .word 0x0222BEA8
+_02217050: .word 0x0222BEAC
+_02217054: .word 0xFFFFEF10
+_02217058: .word 0x0222C054
+_0221705C: .word 0x0222C058
+_02217060: .word 0x0222C05C
+_02217064: .word 0x0222B414
+_02217068: .word 0x0222B334
+_0221706C: .word 0xFFFFFCE0
+_02217070: .word 0xFFFFF2AE
+_02217074: .word 0xFFFFF5AC
+_02217078:
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ b _022170F2
+_02217080:
+ ldr r1, _02217114 ; =0xFFFFF290
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x7a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ b _022170F2
+_02217092:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227470
+ cmp r0, #3
+ add r0, sp, #0x20
+ bne _022170B6
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ strh r1, [r0]
+ mov r1, #0x21
+ lsl r1, r1, #6
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ b _022170F2
+_022170B6:
+ ldr r1, _02217118 ; =0xFFFFE890
+ strh r1, [r0]
+ ldr r1, _0221711C ; =0xFFFFF768
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ b _022170F2
+_022170C4:
+ ldr r4, _02217120 ; =0x0222B374
+ add r3, sp, #0x28
+ mov r2, #6
+_022170CA:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022170CA
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227468
+ lsl r2, r0, #3
+ add r0, sp, #0x28
+ ldr r1, [r0, r2]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ add r1, sp, #0x2c
+ ldr r1, [r1, r2]
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+_022170F2:
+ add r1, sp, #0x20
+ ldr r0, [sp]
+ ldrh r2, [r1]
+ add r0, #0x50
+ strh r2, [r0]
+ ldr r0, [sp]
+ ldrh r2, [r1, #2]
+ add r0, #0x52
+ strh r2, [r0]
+ ldr r0, [sp]
+ ldrh r1, [r1, #4]
+ add r0, #0x54
+ str r0, [sp]
+ strh r1, [r0]
+ add sp, #0x148
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02217114: .word 0xFFFFF290
+_02217118: .word 0xFFFFE890
+_0221711C: .word 0xFFFFF768
+_02217120: .word 0x0222B374
+
+ thumb_func_start MOD08_02217124
+MOD08_02217124: ; 0x02217124
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ bl MOD08_022178CC
+ add r6, r0, #0
+ mov r4, #0
+ cmp r6, #0
+ ble _02217154
+_02217136:
+ add r0, r4, #0
+ bl MOD08_022178A4
+ ldr r1, [r5, #0x1c]
+ and r1, r0
+ cmp r0, r1
+ bne _0221714E
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl MOD08_0221788C
+_0221714E:
+ add r4, r4, #1
+ cmp r4, r6
+ blt _02217136
+_02217154:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217158
+MOD08_02217158: ; 0x02217158
+ add r3, r0, #0
+ add r2, r1, #0
+ add r1, r3, #0
+ ldr r3, _02217164 ; =MOD08_02217B04
+ ldr r0, [r2, #0x20]
+ bx r3
+ .align 2, 0
+_02217164: .word MOD08_02217B04
+
+ thumb_func_start MOD08_02217168
+MOD08_02217168: ; 0x02217168
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ bl MOD08_02227468
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ bl MOD08_02227468
+ ldr r1, [r4, #0xc]
+ cmp r1, #3
+ bhi _022171B0
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02217190: ; jump table
+ .short _022171B0 - _02217190 - 2 ; case 0
+ .short _02217198 - _02217190 - 2 ; case 1
+ .short _022171A6 - _02217190 - 2 ; case 2
+ .short _022171B0 - _02217190 - 2 ; case 3
+_02217198:
+ cmp r0, #0
+ bne _022171A2
+ mov r5, #1
+ lsl r5, r5, #8
+ b _022171B0
+_022171A2:
+ ldr r5, _022171C4 ; =0xFFFFEC00
+ b _022171B0
+_022171A6:
+ cmp r0, #0
+ bne _022171AE
+ mov r5, #0
+ b _022171B0
+_022171AE:
+ ldr r5, _022171C8 ; =0xFFFFEB00
+_022171B0:
+ ldr r0, [r4, #4]
+ bl FUN_02013448
+ ldr r0, [r6, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r5, r0
+ str r0, [r6, #0x30]
+ pop {r4, r5, r6, pc}
+ nop
+_022171C4: .word 0xFFFFEC00
+_022171C8: .word 0xFFFFEB00
+
+ thumb_func_start MOD08_022171CC
+MOD08_022171CC: ; 0x022171CC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl FUN_0201341C
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x38
+ bl FUN_02016998
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212468
+ str r0, [r4, #4]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0xc
+ mov r2, #6
+ bl MOD08_02215434
+ ldr r0, [r4, #0x10]
+ cmp r0, #4
+ bhi _02217214
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221720A: ; jump table
+ .short _02217214 - _0221720A - 2 ; case 0
+ .short _02217226 - _0221720A - 2 ; case 1
+ .short _02217238 - _0221720A - 2 ; case 2
+ .short _0221724A - _0221720A - 2 ; case 3
+ .short _0221725C - _0221720A - 2 ; case 4
+_02217214:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ str r0, [r4, #0x28]
+ b _0221726C
+_02217226:
+ ldr r0, [r4]
+ bl MOD08_02212460
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ str r0, [r4, #0x28]
+ b _0221726C
+_02217238:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ str r0, [r4, #0x28]
+ b _0221726C
+_0221724A:
+ ldr r0, [r4]
+ bl MOD08_02212460
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ str r0, [r4, #0x28]
+ b _0221726C
+_0221725C:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ str r0, [r4, #0x28]
+_0221726C:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_022164C8
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221727C
+MOD08_0221727C: ; 0x0221727C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ ldr r1, [r6, #0x24]
+ mov r4, #1
+ bl MOD08_02227468
+ add r5, r0, #0
+ ldr r0, [r6]
+ ldr r1, [r6, #0x28]
+ bl MOD08_02227468
+ cmp r5, #5
+ bhi _022172BA
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022172A4: ; jump table
+ .short _022172BA - _022172A4 - 2 ; case 0
+ .short _022172B0 - _022172A4 - 2 ; case 1
+ .short _022172BA - _022172A4 - 2 ; case 2
+ .short _022172B4 - _022172A4 - 2 ; case 3
+ .short _022172BA - _022172A4 - 2 ; case 4
+ .short _022172B8 - _022172A4 - 2 ; case 5
+_022172B0:
+ sub r4, r4, #2
+ b _022172BA
+_022172B4:
+ sub r4, r4, #2
+ b _022172BA
+_022172B8:
+ sub r4, r4, #2
+_022172BA:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022172C0
+MOD08_022172C0: ; 0x022172C0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0
+ add r0, sp, #0x20
+ mov r4, #0
+ str r4, [r0]
+ str r4, [r0, #4]
+ add r6, r1, #0
+ add r7, r2, #0
+ str r4, [r0, #8]
+_022172D4:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD08_02227468
+ cmp r4, r0
+ ldr r0, [r5]
+ bne _022172EC
+ add r1, sp, #0x10
+ mov r2, #4
+ bl MOD08_02215434
+ b _022172F4
+_022172EC:
+ add r1, sp, #0
+ mov r2, #4
+ bl MOD08_02215434
+_022172F4:
+ add r4, r4, #1
+ cmp r4, #6
+ blt _022172D4
+ add r0, r5, #0
+ bl MOD08_0221727C
+ strb r0, [r5, #8]
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x1c]
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ bne _02217318
+ mov r0, #1
+ strb r0, [r5, #8]
+_02217318:
+ mov r1, #8
+ ldrsb r0, [r5, r1]
+ ldr r2, [sp, #0x20]
+ ldr r3, [sp, #0x24]
+ mul r0, r2
+ str r0, [sp, #0x20]
+ ldrsb r2, [r5, r1]
+ mul r2, r3
+ str r2, [sp, #0x24]
+ ldrsb r1, [r5, r1]
+ ldr r2, [sp, #0x28]
+ mul r1, r2
+ str r1, [sp, #0x28]
+ ldr r1, [r7]
+ add r0, r1, r0
+ str r0, [r7]
+ ldr r1, [r7, #4]
+ ldr r0, [sp, #0x24]
+ add r0, r1, r0
+ str r0, [r7, #4]
+ ldr r1, [r7, #8]
+ ldr r0, [sp, #0x28]
+ add r0, r1, r0
+ str r0, [r7, #8]
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0221734C
+MOD08_0221734C: ; 0x0221734C
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ ldr r0, [r5]
+ add r1, sp, #0xc
+ mov r2, #4
+ bl MOD08_02215434
+ add r0, r5, #0
+ bl MOD08_0221727C
+ strb r0, [r5, #8]
+ ldr r0, [sp, #0x10]
+ str r0, [sp]
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _02217386
+ mov r0, #1
+ strb r0, [r5, #8]
+_02217386:
+ mov r1, #8
+ ldrsb r0, [r5, r1]
+ ldr r2, [sp]
+ ldr r3, [sp, #4]
+ mul r0, r2
+ str r0, [sp]
+ ldrsb r2, [r5, r1]
+ mul r2, r3
+ str r2, [sp, #4]
+ ldrsb r1, [r5, r1]
+ ldr r2, [sp, #8]
+ mul r1, r2
+ str r1, [sp, #8]
+ ldr r1, [r4]
+ add r0, r1, r0
+ str r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r0, [sp, #4]
+ add r0, r1, r0
+ str r0, [r4, #4]
+ ldr r1, [r4, #8]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ str r0, [r4, #8]
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022173BC
+MOD08_022173BC: ; 0x022173BC
+ ldr r3, _022173C4 ; =MOD08_02215434
+ ldr r0, [r0]
+ mov r2, #5
+ bx r3
+ .align 2, 0
+_022173C4: .word MOD08_02215434
+
+ thumb_func_start MOD08_022173C8
+MOD08_022173C8: ; 0x022173C8
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022173CC
+MOD08_022173CC: ; 0x022173CC
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r0, #0
+ strh r0, [r1]
+ strh r0, [r1, #2]
+ strh r0, [r1, #4]
+ add r0, r4, #0
+ add r1, sp, #8
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _022173F8
+ mov r0, #1
+ strb r0, [r4, #8]
+_022173F8:
+ ldr r0, [sp, #8]
+ cmp r0, #3
+ bgt _02217416
+ cmp r0, #0
+ blt _02217482
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221740E: ; jump table
+ .short _0221741A - _0221740E - 2 ; case 0
+ .short _02217446 - _0221740E - 2 ; case 1
+ .short _02217482 - _0221740E - 2 ; case 2
+ .short _02217482 - _0221740E - 2 ; case 3
+_02217416:
+ cmp r0, #0xff
+ b _02217482
+_0221741A:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013514
+ add r2, sp, #0
+ mov r0, #0
+ mov r1, #8
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ mul r0, r3
+ strh r0, [r2]
+ mov r0, #2
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ mul r0, r3
+ strh r0, [r2, #2]
+ mov r0, #4
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ mul r0, r3
+ strh r0, [r2, #4]
+ b _02217482
+_02217446:
+ ldr r0, [sp, #0x10]
+ add r2, sp, #0
+ strh r0, [r2]
+ ldr r0, [sp, #0x14]
+ mov r1, #8
+ strh r0, [r2, #2]
+ ldr r0, [sp, #0x18]
+ strh r0, [r2, #4]
+ mov r0, #0
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ mul r0, r3
+ strh r0, [r2]
+ mov r0, #2
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ mul r0, r3
+ strh r0, [r2, #2]
+ mov r0, #4
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ add r1, sp, #0
+ mul r0, r3
+ strh r0, [r2, #4]
+ add r0, r5, #0
+ bl FUN_02013514
+ add sp, #0x1c
+ mov r0, #1
+ pop {r4, r5, pc}
+_02217482:
+ add r1, sp, #0
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ ldr r0, [r4, #0x2c]
+ sub r0, r2, r0
+ strh r0, [r1]
+ mov r0, #2
+ ldrsh r2, [r1, r0]
+ ldr r0, [r4, #0x30]
+ sub r0, r2, r0
+ strh r0, [r1, #2]
+ mov r0, #4
+ ldrsh r2, [r1, r0]
+ ldr r0, [r4, #0x34]
+ sub r0, r2, r0
+ strh r0, [r1, #4]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013514
+ mov r0, #1
+ add sp, #0x1c
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_022174B0
+MOD08_022174B0: ; 0x022174B0
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022174B4
+MOD08_022174B4: ; 0x022174B4
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022174B8
+MOD08_022174B8: ; 0x022174B8
+ push {r4, r5, r6, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r4, #0
+ add r1, sp, #0xc
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ bne _022174E4
+ mov r0, #1
+ strb r0, [r4, #8]
+_022174E4:
+ ldr r0, [sp, #0xc]
+ cmp r0, #3
+ bgt _02217502
+ cmp r0, #0
+ blt _02217562
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022174FA: ; jump table
+ .short _02217506 - _022174FA - 2 ; case 0
+ .short _0221752A - _022174FA - 2 ; case 1
+ .short _0221754C - _022174FA - 2 ; case 2
+ .short _02217558 - _022174FA - 2 ; case 3
+_02217502:
+ cmp r0, #0xff
+ b _02217562
+_02217506:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013548
+ mov r0, #8
+ ldrsb r1, [r4, r0]
+ ldr r2, [sp]
+ mul r1, r2
+ str r1, [sp]
+ ldrsb r1, [r4, r0]
+ ldr r2, [sp, #4]
+ mul r1, r2
+ str r1, [sp, #4]
+ ldrsb r0, [r4, r0]
+ ldr r1, [sp, #8]
+ mul r0, r1
+ str r0, [sp, #8]
+ b _02217562
+_0221752A:
+ ldr r2, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ str r2, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #8
+ ldrsb r6, [r4, r3]
+ mul r6, r2
+ str r6, [sp]
+ ldrsb r2, [r4, r3]
+ mul r2, r1
+ str r2, [sp, #4]
+ ldrsb r1, [r4, r3]
+ mul r1, r0
+ str r1, [sp, #8]
+ b _02217562
+_0221754C:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0
+ bl MOD08_0222771C
+ b _02217562
+_02217558:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0
+ bl MOD08_0222771C
+_02217562:
+ ldr r1, [sp]
+ ldr r0, [r4, #0x2c]
+ sub r0, r1, r0
+ str r0, [sp]
+ ldr r1, [sp, #4]
+ ldr r0, [r4, #0x30]
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013530
+ mov r0, #1
+ add sp, #0x20
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02217580
+MOD08_02217580: ; 0x02217580
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, r4, #0
+ add r1, sp, #4
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _022175A8
+ mov r0, #1
+ strb r0, [r4, #8]
+_022175A8:
+ ldr r0, [sp, #4]
+ cmp r0, #3
+ bgt _022175C6
+ cmp r0, #0
+ blt _022175F4
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022175BE: ; jump table
+ .short _022175CA - _022175BE - 2 ; case 0
+ .short _022175E2 - _022175BE - 2 ; case 1
+ .short _022175F4 - _022175BE - 2 ; case 2
+ .short _022175F4 - _022175BE - 2 ; case 3
+_022175C6:
+ cmp r0, #0xff
+ b _022175F4
+_022175CA:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013594
+ add r1, sp, #0
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+ b _022175F4
+_022175E2:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0
+ strh r0, [r1]
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+_022175F4:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0201357C
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217604
+MOD08_02217604: ; 0x02217604
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, r4, #0
+ add r1, sp, #4
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _0221762C
+ mov r0, #1
+ strb r0, [r4, #8]
+_0221762C:
+ ldr r0, [sp, #4]
+ cmp r0, #3
+ bgt _0221764A
+ cmp r0, #0
+ blt _02217674
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02217642: ; jump table
+ .short _0221764E - _02217642 - 2 ; case 0
+ .short _02217664 - _02217642 - 2 ; case 1
+ .short _02217674 - _02217642 - 2 ; case 2
+ .short _02217674 - _02217642 - 2 ; case 3
+_0221764A:
+ cmp r0, #0xff
+ b _02217674
+_0221764E:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_020135C4
+ add r1, sp, #0
+ mov r0, #8
+ ldrh r2, [r1]
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+ b _02217674
+_02217664:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0
+ strh r0, [r1]
+ mov r0, #8
+ ldrh r2, [r1]
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+_02217674:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_020135B0
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217684
+MOD08_02217684: ; 0x02217684
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, r4, #0
+ add r1, sp, #4
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _022176AC
+ mov r0, #1
+ strb r0, [r4, #8]
+_022176AC:
+ ldr r1, [sp, #4]
+ cmp r1, #3
+ bgt _022176CA
+ cmp r1, #0
+ blt _022176DE
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022176C2: ; jump table
+ .short _022176CE - _022176C2 - 2 ; case 0
+ .short _022176D8 - _022176C2 - 2 ; case 1
+ .short _022176DE - _022176C2 - 2 ; case 2
+ .short _022176DE - _022176C2 - 2 ; case 3
+_022176CA:
+ cmp r1, #0xff
+ b _022176DE
+_022176CE:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_020135F4
+ b _022176DE
+_022176D8:
+ ldr r1, [sp, #0xc]
+ add r0, sp, #0
+ strh r1, [r0]
+_022176DE:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_020135E0
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022176EC
+MOD08_022176EC: ; 0x022176EC
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022176F0
+MOD08_022176F0: ; 0x022176F0
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022176F4
+MOD08_022176F4: ; 0x022176F4
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022176F8
+MOD08_022176F8: ; 0x022176F8
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022176FC
+MOD08_022176FC: ; 0x022176FC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r7, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r4, #0
+ add r1, sp, #0xc
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ bne _02217728
+ mov r0, #1
+ strb r0, [r4, #8]
+_02217728:
+ ldr r0, [sp, #0xc]
+ cmp r0, #4
+ bgt _02217748
+ cmp r0, #0
+ blt _022177E2
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221773E: ; jump table
+ .short _0221774C - _0221773E - 2 ; case 0
+ .short _02217770 - _0221773E - 2 ; case 1
+ .short _022177CC - _0221773E - 2 ; case 2
+ .short _022177D8 - _0221773E - 2 ; case 3
+ .short _02217792 - _0221773E - 2 ; case 4
+_02217748:
+ cmp r0, #0xff
+ b _022177E2
+_0221774C:
+ add r0, r7, #0
+ add r1, sp, #0
+ bl FUN_02013628
+ mov r0, #8
+ ldrsb r1, [r4, r0]
+ ldr r2, [sp]
+ mul r1, r2
+ str r1, [sp]
+ ldrsb r1, [r4, r0]
+ ldr r2, [sp, #4]
+ mul r1, r2
+ str r1, [sp, #4]
+ ldrsb r0, [r4, r0]
+ ldr r1, [sp, #8]
+ mul r0, r1
+ str r0, [sp, #8]
+ b _022177E2
+_02217770:
+ ldr r2, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ str r2, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #8
+ ldrsb r5, [r4, r3]
+ mul r5, r2
+ str r5, [sp]
+ ldrsb r2, [r4, r3]
+ mul r2, r1
+ str r2, [sp, #4]
+ ldrsb r1, [r4, r3]
+ mul r1, r0
+ str r1, [sp, #8]
+ b _022177E2
+_02217792:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0
+ bl MOD08_0222771C
+ ldr r1, [sp]
+ ldr r5, [sp, #0x14]
+ add r0, r1, #0
+ ldr r6, [sp, #0x18]
+ mul r0, r5
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r1, [sp, #4]
+ str r0, [sp]
+ add r0, r1, #0
+ mul r0, r5
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r1, [sp, #8]
+ str r0, [sp, #4]
+ add r0, r1, #0
+ mul r0, r5
+ add r1, r6, #0
+ bl _s32_div_f
+ str r0, [sp, #8]
+ b _022177E2
+_022177CC:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0
+ bl MOD08_0222771C
+ b _022177E2
+_022177D8:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0
+ bl MOD08_0222771C
+_022177E2:
+ ldr r1, [sp]
+ ldr r0, [r4, #0x2c]
+ sub r0, r1, r0
+ str r0, [sp]
+ ldr r1, [sp, #4]
+ ldr r0, [r4, #0x30]
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ ldr r1, [sp, #8]
+ ldr r0, [r4, #0x34]
+ sub r0, r1, r0
+ str r0, [sp, #8]
+ add r0, r7, #0
+ add r1, sp, #0
+ bl FUN_02013610
+ mov r0, #1
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02217808
+MOD08_02217808: ; 0x02217808
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, r4, #0
+ add r1, sp, #4
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _02217830
+ mov r0, #1
+ strb r0, [r4, #8]
+_02217830:
+ ldr r0, [sp, #4]
+ cmp r0, #3
+ bgt _0221784E
+ cmp r0, #0
+ blt _0221787C
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02217846: ; jump table
+ .short _02217852 - _02217846 - 2 ; case 0
+ .short _0221786A - _02217846 - 2 ; case 1
+ .short _0221787C - _02217846 - 2 ; case 2
+ .short _0221787C - _02217846 - 2 ; case 3
+_0221784E:
+ cmp r0, #0xff
+ b _0221787C
+_02217852:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013674
+ add r1, sp, #0
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+ b _0221787C
+_0221786A:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0
+ strh r0, [r1]
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+_0221787C:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0201365C
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221788C
+MOD08_0221788C: ; 0x0221788C
+ push {r3, lr}
+ add r3, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ ldr r2, _022178A0 ; =0x0222C204
+ lsl r3, r3, #2
+ ldr r2, [r2, r3]
+ blx r2
+ pop {r3, pc}
+ nop
+_022178A0: .word 0x0222C204
+
+ thumb_func_start MOD08_022178A4
+MOD08_022178A4: ; 0x022178A4
+ push {r3, r4, r5}
+ sub sp, #0x3c
+ ldr r4, _022178C8 ; =0x0222C23C
+ add r5, r0, #0
+ add r3, sp, #0
+ mov r2, #7
+_022178B0:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022178B0
+ ldr r0, [r4]
+ lsl r1, r5, #2
+ str r0, [r3]
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ add sp, #0x3c
+ pop {r3, r4, r5}
+ bx lr
+ .align 2, 0
+_022178C8: .word 0x0222C23C
+
+ thumb_func_start MOD08_022178CC
+MOD08_022178CC: ; 0x022178CC
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ ldr r6, _022178F4 ; =0x0000FEFE
+ add r5, r4, #0
+_022178D4:
+ add r0, r4, #0
+ bl MOD08_022178A4
+ add r4, r4, #1
+ cmp r0, r6
+ beq _022178E6
+ add r5, r5, #1
+ cmp r5, #0xff
+ blt _022178D4
+_022178E6:
+ cmp r5, #0xff
+ blt _022178EE
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_022178EE:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022178F4: .word 0x0000FEFE
+
+ thumb_func_start MOD08_022178F8
+MOD08_022178F8: ; 0x022178F8
+ ldr r3, _02217900 ; =MOD08_02215434
+ ldr r0, [r0]
+ mov r2, #4
+ bx r3
+ .align 2, 0
+_02217900: .word MOD08_02215434
+
+ thumb_func_start MOD08_02217904
+MOD08_02217904: ; 0x02217904
+ push {r3, lr}
+ sub sp, #8
+ add r2, sp, #0
+ mov r0, #0
+ strh r0, [r2]
+ strh r0, [r2, #2]
+ strh r0, [r2, #4]
+ strh r0, [r2, #6]
+ ldr r0, [r1, #4]
+ bl FUN_0201343C
+ add r1, r0, #0
+ add r0, sp, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02217928
+MOD08_02217928: ; 0x02217928
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r1, _02217960 ; =0x0222C278
+ add r0, sp, #0
+ ldrh r2, [r1, #0x20]
+ strh r2, [r0]
+ ldrh r2, [r1, #0x22]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #0x24]
+ ldrh r1, [r1, #0x26]
+ strh r2, [r0, #4]
+ strh r1, [r0, #6]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02013440
+ add r0, sp, #0
+ add r1, r5, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02217960: .word 0x0222C278
+
+ thumb_func_start MOD08_02217964
+MOD08_02217964: ; 0x02217964
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r0, #0
+ strh r0, [r1]
+ strh r0, [r1, #2]
+ strh r0, [r1, #4]
+ strh r0, [r1, #6]
+ add r0, r4, #0
+ add r1, sp, #8
+ bl MOD08_022178F8
+ ldr r1, [sp, #0xc]
+ add r0, sp, #0
+ strh r1, [r0]
+ ldr r1, [sp, #0x10]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x14]
+ strh r1, [r0, #4]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r1, r0, #0
+ add r0, sp, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022179A0
+MOD08_022179A0: ; 0x022179A0
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r1, _022179D8 ; =0x0222C278
+ add r0, sp, #0
+ ldrh r2, [r1, #0x18]
+ strh r2, [r0]
+ ldrh r2, [r1, #0x1a]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #0x1c]
+ ldrh r1, [r1, #0x1e]
+ strh r2, [r0, #4]
+ strh r1, [r0, #6]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02013440
+ add r0, sp, #0
+ add r1, r5, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022179D8: .word 0x0222C278
+
+ thumb_func_start MOD08_022179DC
+MOD08_022179DC: ; 0x022179DC
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldr r1, _02217A38 ; =0x0222C278
+ add r0, sp, #0
+ ldrh r2, [r1, #0x10]
+ strh r2, [r0, #8]
+ ldrh r2, [r1, #0x12]
+ strh r2, [r0, #0xa]
+ ldrh r2, [r1, #0x14]
+ strh r2, [r0, #0xc]
+ ldrh r2, [r1, #0x16]
+ strh r2, [r0, #0xe]
+ ldrh r2, [r1, #0x28]
+ strh r2, [r0]
+ ldrh r2, [r1, #0x2a]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #0x2c]
+ strh r2, [r0, #4]
+ ldrh r1, [r1, #0x2e]
+ strh r1, [r0, #6]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02013440
+ ldr r0, [r4]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02217A2A
+ add r0, sp, #8
+ add r1, r5, #0
+ bl FUN_0201EF90
+ b _02217A32
+_02217A2A:
+ add r0, sp, #0
+ add r1, r5, #0
+ bl FUN_0201EF90
+_02217A32:
+ mov r0, #1
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02217A38: .word 0x0222C278
+
+ thumb_func_start MOD08_02217A3C
+MOD08_02217A3C: ; 0x02217A3C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r1, _02217A74 ; =0x0222C278
+ add r0, sp, #0
+ ldrh r2, [r1]
+ strh r2, [r0]
+ ldrh r2, [r1, #2]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #4]
+ ldrh r1, [r1, #6]
+ strh r2, [r0, #4]
+ strh r1, [r0, #6]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02013440
+ add r0, sp, #0
+ add r1, r5, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02217A74: .word 0x0222C278
+
+ thumb_func_start MOD08_02217A78
+MOD08_02217A78: ; 0x02217A78
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r1, _02217AB0 ; =0x0222C278
+ add r0, sp, #0
+ ldrh r2, [r1, #8]
+ strh r2, [r0]
+ ldrh r2, [r1, #0xa]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #0xc]
+ ldrh r1, [r1, #0xe]
+ strh r2, [r0, #4]
+ strh r1, [r0, #6]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02013440
+ add r0, sp, #0
+ add r1, r5, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02217AB0: .word 0x0222C278
+
+ thumb_func_start MOD08_02217AB4
+MOD08_02217AB4: ; 0x02217AB4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r0, [r5, #4]
+ bl FUN_0201343C
+ add r4, r0, #0
+ ldr r0, [r5]
+ ldr r1, [r5, #0x24]
+ add r2, sp, #0
+ bl MOD08_022278FC
+ add r0, sp, #0
+ add r1, r4, #0
+ bl FUN_0201F04C
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217ADC
+MOD08_02217ADC: ; 0x02217ADC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r0, [r5, #4]
+ bl FUN_0201343C
+ add r4, r0, #0
+ ldr r0, [r5]
+ ldr r1, [r5, #0x28]
+ add r2, sp, #0
+ bl MOD08_022278FC
+ add r0, sp, #0
+ add r1, r4, #0
+ bl FUN_0201F04C
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217B04
+MOD08_02217B04: ; 0x02217B04
+ push {r3, lr}
+ add r3, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ ldr r2, _02217B18 ; =0x0222C2A8
+ lsl r3, r3, #2
+ ldr r2, [r2, r3]
+ blx r2
+ pop {r3, pc}
+ nop
+_02217B18: .word 0x0222C2A8
+
+ thumb_func_start MOD08_02217B1C
+MOD08_02217B1C: ; 0x02217B1C
+ push {r3, r4, r5, r6}
+ cmp r2, #0
+ beq _02217B32
+ mov r4, #0x18
+ add r6, r0, #0
+ mul r6, r4
+ ldr r4, _02217B48 ; =0x0222C2CC
+ lsl r5, r1, #2
+ add r4, r4, r6
+ ldrsh r4, [r5, r4]
+ strh r4, [r2]
+_02217B32:
+ cmp r3, #0
+ beq _02217B44
+ mov r2, #0x18
+ mul r2, r0
+ ldr r0, _02217B4C ; =0x0222C2CE
+ lsl r1, r1, #2
+ add r0, r0, r2
+ ldrsh r0, [r1, r0]
+ strh r0, [r3]
+_02217B44:
+ pop {r3, r4, r5, r6}
+ bx lr
+ .align 2, 0
+_02217B48: .word 0x0222C2CC
+_02217B4C: .word 0x0222C2CE
+
+ thumb_func_start MOD08_02217B50
+MOD08_02217B50: ; 0x02217B50
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02217B70
+ mov r0, #0
+ add r1, r5, #2
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217B1C
+ pop {r3, r4, r5, r6, r7, pc}
+_02217B70:
+ add r0, r7, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _02217B88
+ mov r0, #1
+ sub r1, r5, #2
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217B1C
+ pop {r3, r4, r5, r6, r7, pc}
+_02217B88:
+ mov r0, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217B1C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217B98
+MOD08_02217B98: ; 0x02217B98
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r2, #0
+ bl MOD08_02227468
+ add r4, r0, #0
+ add r0, r7, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _02217BB2
+ mov r5, #1
+ b _02217BB4
+_02217BB2:
+ mov r5, #0
+_02217BB4:
+ add r0, r7, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02217BC0
+ add r4, r4, #2
+_02217BC0:
+ cmp r6, #3
+ bhi _02217BF8
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02217BD0: ; jump table
+ .short _02217BD8 - _02217BD0 - 2 ; case 0
+ .short _02217BE8 - _02217BD0 - 2 ; case 1
+ .short _02217BD8 - _02217BD0 - 2 ; case 2
+ .short _02217BE8 - _02217BD0 - 2 ; case 3
+_02217BD8:
+ mov r0, #0x18
+ add r2, r5, #0
+ mul r2, r0
+ ldr r0, _02217C00 ; =0x0222C2CC
+ lsl r1, r4, #2
+ add r0, r0, r2
+ ldrsh r0, [r1, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_02217BE8:
+ mov r0, #0x18
+ add r2, r5, #0
+ mul r2, r0
+ ldr r0, _02217C04 ; =0x0222C2CE
+ lsl r1, r4, #2
+ add r0, r0, r2
+ ldrsh r0, [r1, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_02217BF8:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02217C00: .word 0x0222C2CC
+_02217C04: .word 0x0222C2CE
+
+ thumb_func_start MOD08_02217C08
+MOD08_02217C08: ; 0x02217C08
+ push {r3, lr}
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02217C1C
+MOD08_02217C1C: ; 0x02217C1C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r5, #1
+ bl MOD08_02227470
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD08_02212004
+ cmp r0, #0
+ beq _02217C3A
+ cmp r4, #3
+ bne _02217C40
+ sub r5, r5, #2
+ b _02217C40
+_02217C3A:
+ cmp r4, #4
+ bne _02217C40
+ sub r5, r5, #2
+_02217C40:
+ add r0, r5, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02217C44
+MOD08_02217C44: ; 0x02217C44
+ push {r4, lr}
+ mov r4, #1
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _02217C52
+ sub r4, r4, #2
+_02217C52:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217C58
+MOD08_02217C58: ; 0x02217C58
+ ldr r3, _02217C60 ; =0x020C50B8
+ sub r0, r1, r0
+ lsl r1, r2, #0xc
+ bx r3
+ .align 2, 0
+_02217C60: .word 0x020C50B8
+
+ thumb_func_start MOD08_02217C64
+MOD08_02217C64: ; 0x02217C64
+ push {r3, lr}
+ sub r0, r1, r0
+ add r1, r2, #0
+ bl FX_Div
+ add r1, sp, #0
+ str r0, [sp]
+ bl FX_Modf
+ cmp r0, #0
+ beq _02217C84
+ mov r0, #1
+ ldr r1, [sp]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp]
+_02217C84:
+ ldr r0, [sp]
+ cmp r0, #0
+ bge _02217C8C
+ neg r0, r0
+_02217C8C:
+ str r0, [sp]
+ asr r0, r0, #0xc
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217C94
+MOD08_02217C94: ; 0x02217C94
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #0
+ ldrsh r1, [r4, r1]
+ add r1, r2, r1
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02217CB4
+MOD08_02217CB4: ; 0x02217CB4
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD08_0221825C
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ add r0, r4, #0
+ bl FUN_0200C884
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02217CD0
+MOD08_02217CD0: ; 0x02217CD0
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #0
+ add r6, r3, #0
+ ldrsh r3, [r5, r1]
+ add r0, r4, #0
+ add r2, r2, r3
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r5, r2]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r6, r2
+ bl FUN_02007558
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02217CF4
+MOD08_02217CF4: ; 0x02217CF4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r2, #0
+ add r4, r1, #0
+ ldrsh r2, [r5, r2]
+ add r0, r4, #0
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r5, r2]
+ add r0, r4, #0
+ mov r1, #0xd
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02217D14
+MOD08_02217D14: ; 0x02217D14
+ push {r3, r4, r5, lr}
+ add r4, r3, #0
+ add r5, r0, #0
+ ldr r3, [sp, #0x1c]
+ ldr r0, [sp, #0x14]
+ str r3, [r5, #4]
+ str r1, [r5, #8]
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #0x18]
+ str r4, [r5, #0x10]
+ str r0, [r5, #0x14]
+ sub r0, r2, r1
+ add r1, r3, #0
+ bl _s32_div_f
+ str r0, [r5, #0x18]
+ add r0, sp, #0
+ ldrh r0, [r0, #0x10]
+ ldr r1, [sp, #0x1c]
+ sub r0, r0, r4
+ bl _s32_div_f
+ str r0, [r5, #0x1c]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02217D44
+MOD08_02217D44: ; 0x02217D44
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r7, r2, #0
+ str r3, [sp]
+ cmp r5, #0
+ bne _02217D56
+ bl ErrorHandling
+_02217D56:
+ cmp r4, r7
+ bls _02217D62
+ add r0, sp, #8
+ ldrh r1, [r0, #0x1c]
+ neg r1, r1
+ strh r1, [r0, #0x1c]
+_02217D62:
+ add r1, sp, #8
+ mov r0, #0x1c
+ ldrsh r6, [r1, r0]
+ lsl r0, r4, #0xc
+ lsl r1, r7, #0xc
+ lsl r2, r6, #0xc
+ bl MOD08_02217C64
+ str r0, [r5, #4]
+ ldr r0, [sp, #0x1c]
+ str r4, [r5, #8]
+ str r0, [r5, #0xc]
+ ldr r0, [sp]
+ str r0, [r5, #0x10]
+ ldr r0, [sp, #0x20]
+ str r0, [r5, #0x14]
+ str r6, [r5, #0x18]
+ add r0, sp, #8
+ ldrh r1, [r0, #0x10]
+ ldr r0, [sp]
+ sub r0, r1, r0
+ ldr r1, [r5, #4]
+ bl _s32_div_f
+ str r0, [r5, #0x1c]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217D98
+MOD08_02217D98: ; 0x02217D98
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02217DA2
+ bl ErrorHandling
+_02217DA2:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02217E26
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x18]
+ add r0, r1, r0
+ str r0, [r4, #8]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x1c]
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ ldr r2, [r4, #0xc]
+ asr r0, r0, #4
+ lsl r1, r0, #2
+ ldr r0, _02217E2C ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ asr r0, r1, #0xc
+ strh r0, [r4]
+ ldr r0, [r4, #0x10]
+ ldr r2, [r4, #0x14]
+ asr r0, r0, #4
+ lsl r0, r0, #1
+ add r0, r0, #1
+ lsl r1, r0, #1
+ ldr r0, _02217E2C ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ asr r0, r1, #0xc
+ strh r0, [r4, #2]
+ mov r0, #1
+ pop {r4, pc}
+_02217E26:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02217E2C: .word 0x020FFA38
+
+ thumb_func_start MOD08_02217E30
+MOD08_02217E30: ; 0x02217E30
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02217D98
+ cmp r0, #0
+ beq _02217E52
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217C94
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02217E52:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217E58
+MOD08_02217E58: ; 0x02217E58
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02217D98
+ cmp r0, #0
+ beq _02217E7A
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217CD0
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02217E7A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217E80
+MOD08_02217E80: ; 0x02217E80
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r3, #0
+ str r2, [sp]
+ cmp r5, #0
+ bne _02217E94
+ bl ErrorHandling
+_02217E94:
+ strh r4, [r5]
+ strh r6, [r5, #2]
+ add r0, sp, #0x10
+ ldrh r7, [r0, #0x14]
+ lsl r0, r4, #0xc
+ str r0, [sp, #4]
+ str r7, [r5, #4]
+ ldr r1, [sp]
+ add r2, r7, #0
+ lsl r1, r1, #0xc
+ bl MOD08_02217C58
+ str r0, [r5, #8]
+ lsl r4, r6, #0xc
+ add r2, sp, #0x10
+ mov r1, #0x10
+ ldrsh r1, [r2, r1]
+ add r0, r4, #0
+ add r2, r7, #0
+ lsl r1, r1, #0xc
+ bl MOD08_02217C58
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #4]
+ str r0, [r5, #0x10]
+ str r4, [r5, #0x14]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02217ECC
+MOD08_02217ECC: ; 0x02217ECC
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02217ED6
+ bl ErrorHandling
+_02217ED6:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02217F02
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ asr r0, r0, #0xc
+ strh r0, [r4]
+ ldr r0, [r4, #0x14]
+ asr r0, r0, #0xc
+ strh r0, [r4, #2]
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+_02217F02:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217F08
+MOD08_02217F08: ; 0x02217F08
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02217F26
+ mov r2, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD08_02217C94
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02217F26:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217F2C
+MOD08_02217F2C: ; 0x02217F2C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02217F4A
+ mov r2, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD08_02217CD0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02217F4A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217F50
+MOD08_02217F50: ; 0x02217F50
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r4, sp, #0x10
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ str r1, [sp]
+ ldrh r1, [r4, #0x18]
+ str r1, [sp, #4]
+ add r1, r2, #0
+ add r2, r3, #0
+ mov r3, #0x10
+ ldrsh r3, [r4, r3]
+ bl MOD08_02217E80
+ mov r1, #0
+ strh r1, [r5]
+ ldr r0, _02217F94 ; =0x0000BFFF
+ strh r1, [r5, #2]
+ str r0, [sp]
+ ldr r0, [sp, #0x2c]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ ldrh r0, [r0, #0x18]
+ ldr r3, _02217F98 ; =0x00003FFF
+ add r2, r1, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD08_02217D14
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_02217F94: .word 0x0000BFFF
+_02217F98: .word 0x00003FFF
+
+ thumb_func_start MOD08_02217F9C
+MOD08_02217F9C: ; 0x02217F9C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ cmp r5, #0
+ bne _02217FAA
+ bl ErrorHandling
+_02217FAA:
+ cmp r4, #0
+ bne _02217FB2
+ bl ErrorHandling
+_02217FB2:
+ add r0, r5, #0
+ bl MOD08_02217ECC
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD08_02217D98
+ mov r2, #0
+ ldrsh r3, [r5, r2]
+ ldrsh r1, [r4, r2]
+ add r1, r3, r1
+ strh r1, [r5]
+ mov r1, #2
+ ldrsh r3, [r5, r1]
+ ldrsh r1, [r4, r1]
+ add r1, r3, r1
+ strh r1, [r5, #2]
+ cmp r6, r0
+ bne _02217FE0
+ cmp r6, #0
+ bne _02217FE0
+ add r0, r2, #0
+ pop {r4, r5, r6, pc}
+_02217FE0:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02217FE4
+MOD08_02217FE4: ; 0x02217FE4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ bl MOD08_02217F9C
+ cmp r0, #0
+ beq _02218002
+ mov r2, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD08_02217C94
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02218002:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218008
+MOD08_02218008: ; 0x02218008
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ add r4, r3, #0
+ cmp r5, #0
+ bne _0221801A
+ bl ErrorHandling
+_0221801A:
+ str r6, [r5]
+ lsl r0, r6, #0xc
+ lsl r1, r7, #0xc
+ add r2, r4, #0
+ str r4, [r5, #4]
+ bl MOD08_02217C58
+ asr r0, r0, #0xc
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218030
+MOD08_02218030: ; 0x02218030
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ add r4, r3, #0
+ cmp r5, #0
+ bne _02218042
+ bl ErrorHandling
+_02218042:
+ str r6, [r5]
+ lsl r6, r6, #0xc
+ add r0, r6, #0
+ lsl r1, r7, #0xc
+ add r2, r4, #0
+ str r4, [r5, #4]
+ bl MOD08_02217C58
+ str r0, [r5, #8]
+ str r6, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02218058
+MOD08_02218058: ; 0x02218058
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02218062
+ bl ErrorHandling
+_02218062:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _0221807A
+ ldr r1, [r4]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4]
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+_0221807A:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218080
+MOD08_02218080: ; 0x02218080
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221808A
+ bl ErrorHandling
+_0221808A:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _022180A6
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4, #0xc]
+ asr r0, r0, #0xc
+ str r0, [r4]
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+_022180A6:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022180AC
+MOD08_022180AC: ; 0x022180AC
+ push {r3, r4, r5, lr}
+ ldr r4, [sp, #0x10]
+ add r5, r0, #0
+ str r4, [r5, #4]
+ str r1, [r5, #8]
+ sub r0, r2, r1
+ add r1, r4, #0
+ str r3, [r5, #0xc]
+ bl _u32_div_f
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022180C4
+MOD08_022180C4: ; 0x022180C4
+ push {r4, lr}
+ add r4, r0, #0
+ bne _022180CE
+ bl ErrorHandling
+_022180CE:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02218116
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x10]
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ ldr r2, [r4, #0xc]
+ asr r0, r0, #4
+ lsl r0, r0, #1
+ add r0, r0, #1
+ lsl r1, r0, #1
+ ldr r0, _0221811C ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ asr r0, r1, #0xc
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_02218116:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0221811C: .word 0x020FFA38
+
+ thumb_func_start MOD08_02218120
+MOD08_02218120: ; 0x02218120
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ cmp r4, #0
+ bne _02218132
+ bl ErrorHandling
+_02218132:
+ ldr r0, [sp, #0x18]
+ add r1, r6, #0
+ str r0, [r4, #4]
+ lsl r0, r5, #8
+ bl _s32_div_f
+ add r5, r0, #0
+ lsl r0, r7, #8
+ add r1, r6, #0
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r2, [sp, #0x18]
+ lsl r0, r5, #0xc
+ lsl r1, r1, #0xc
+ bl MOD08_02217C58
+ str r0, [r4, #8]
+ lsl r0, r5, #0x10
+ asr r0, r0, #0x10
+ strh r0, [r4]
+ strh r0, [r4, #2]
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x10]
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02218170
+MOD08_02218170: ; 0x02218170
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221817A
+ bl ErrorHandling
+_0221817A:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _022181A4
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ asr r0, r0, #0xc
+ strh r0, [r4]
+ ldr r0, [r4, #0x14]
+ asr r0, r0, #0xc
+ strh r0, [r4, #2]
+ mov r0, #1
+ pop {r4, pc}
+_022181A4:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022181A8
+MOD08_022181A8: ; 0x022181A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ str r3, [sp]
+ cmp r5, #0
+ bne _022181BA
+ bl ErrorHandling
+_022181BA:
+ ldr r0, [sp, #0x20]
+ add r1, sp, #8
+ str r0, [r5, #4]
+ mov r0, #0x14
+ ldrsh r4, [r1, r0]
+ lsl r0, r6, #8
+ add r1, r4, #0
+ bl _s32_div_f
+ add r6, r0, #0
+ lsl r0, r7, #8
+ add r1, r4, #0
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r2, [sp, #0x20]
+ lsl r0, r6, #0xc
+ lsl r1, r1, #0xc
+ bl MOD08_02217C58
+ str r0, [r5, #8]
+ ldr r0, [sp]
+ add r1, r4, #0
+ lsl r0, r0, #8
+ bl _s32_div_f
+ add r7, r0, #0
+ add r1, sp, #8
+ mov r0, #0x10
+ ldrsh r0, [r1, r0]
+ add r1, r4, #0
+ lsl r0, r0, #8
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r2, [sp, #0x20]
+ lsl r0, r7, #0xc
+ lsl r1, r1, #0xc
+ bl MOD08_02217C58
+ str r0, [r5, #0xc]
+ strh r6, [r5]
+ strh r7, [r5, #2]
+ mov r0, #0
+ ldrsh r0, [r5, r0]
+ lsl r0, r0, #0xc
+ str r0, [r5, #0x10]
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ lsl r0, r0, #0xc
+ str r0, [r5, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218224
+MOD08_02218224: ; 0x02218224
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221822E
+ bl ErrorHandling
+_0221822E:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02218258
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ asr r0, r0, #0xc
+ strh r0, [r4]
+ ldr r0, [r4, #0x14]
+ asr r0, r0, #0xc
+ strh r0, [r4, #2]
+ mov r0, #1
+ pop {r4, pc}
+_02218258:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221825C
+MOD08_0221825C: ; 0x0221825C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0
+ ldrsh r0, [r5, r0]
+ add r4, r1, #0
+ add r6, r2, #0
+ bl _fflt
+ ldr r1, _02218288 ; =0x43800000
+ bl _fdiv
+ str r0, [r4]
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ bl _fflt
+ ldr r1, _02218288 ; =0x43800000
+ bl _fdiv
+ str r0, [r6]
+ pop {r4, r5, r6, pc}
+ nop
+_02218288: .word 0x43800000
+
+ thumb_func_start MOD08_0221828C
+MOD08_0221828C: ; 0x0221828C
+ push {r3, r4, lr}
+ sub sp, #4
+ lsl r1, r1, #1
+ mov r0, #0x50
+ sub r0, r0, r1
+ lsl r4, r0, #0xc
+ asr r1, r4, #0x1f
+ add r0, r4, #0
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ lsl r1, r2, #9
+ bl FX_Div
+ sub r0, r4, r0
+ add r1, sp, #0
+ bl FX_Modf
+ cmp r0, #0
+ beq _022182CA
+ mov r1, #2
+ lsl r1, r1, #0xa
+ add r0, r0, r1
+_022182CA:
+ ldr r1, [sp]
+ add r0, r1, r0
+ asr r1, r0, #0xc
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ lsl r0, r0, #0xf
+ asr r0, r0, #0x10
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022182DC
+MOD08_022182DC: ; 0x022182DC
+ push {r4, r5, r6, lr}
+ add r6, r2, #0
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r3, #0
+ bl MOD08_0221828C
+ add r2, r0, #0
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ bne _02218306
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r2
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ sub r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+_02218306:
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, r2
+ bl FUN_02007558
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218314
+MOD08_02218314: ; 0x02218314
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r2, #0
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r3, #0
+ bl MOD08_0221828C
+ add r4, r0, #0
+ ldr r0, [sp, #0x18]
+ cmp r0, #1
+ bne _0221833E
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r4
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ sub r0, r5, r7
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+_0221833E:
+ add r1, sp, #0
+ add r0, r6, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r2, sp, #0
+ mov r1, #2
+ ldrsh r1, [r2, r1]
+ add r2, r5, r4
+ lsl r2, r2, #0x10
+ add r0, r6, #0
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218360
+MOD08_02218360: ; 0x02218360
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02218170
+ cmp r0, #0
+ beq _0221837A
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217CB4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0221837A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218380
+MOD08_02218380: ; 0x02218380
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02218170
+ cmp r0, #0
+ beq _0221839A
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217CF4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0221839A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022183A0
+MOD08_022183A0: ; 0x022183A0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02218224
+ cmp r0, #0
+ beq _022183BA
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217CF4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022183BA:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022183C0
+MOD08_022183C0: ; 0x022183C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ cmp r5, #0
+ bne _022183D2
+ bl ErrorHandling
+_022183D2:
+ str r7, [r5, #4]
+ ldr r0, [sp, #0x18]
+ str r7, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r1, #0
+ str r1, [r5, #0x10]
+ str r6, [r5, #0x14]
+ str r4, [r5, #0x18]
+ neg r0, r6
+ str r0, [r5, #0x1c]
+ neg r0, r4
+ str r0, [r5, #0x20]
+ strh r1, [r5]
+ strh r1, [r5, #2]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_022183F0
+MOD08_022183F0: ; 0x022183F0
+ push {r4, lr}
+ add r4, r0, #0
+ bne _022183FA
+ bl ErrorHandling
+_022183FA:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0221844E
+ ldr r0, [r4, #4]
+ add r1, r0, #1
+ str r1, [r4, #4]
+ ldr r0, [r4, #8]
+ cmp r1, r0
+ blt _0221844A
+ mov r2, #0
+ str r2, [r4, #4]
+ ldrsh r0, [r4, r2]
+ ldr r1, [r4, #0x1c]
+ str r0, [r4, #0x1c]
+ cmp r1, #0
+ bne _0221841E
+ strh r2, [r4]
+ b _02218422
+_0221841E:
+ neg r0, r1
+ strh r0, [r4]
+_02218422:
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x20]
+ str r0, [r4, #0x20]
+ cmp r1, #0
+ bne _02218432
+ mov r0, #0
+ b _02218434
+_02218432:
+ neg r0, r1
+_02218434:
+ strh r0, [r4, #2]
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ cmp r0, #4
+ blt _0221844A
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+_0221844A:
+ mov r0, #1
+ pop {r4, pc}
+_0221844E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218454
+MOD08_02218454: ; 0x02218454
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_022183F0
+ cmp r0, #0
+ beq _02218476
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217CD0
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02218476:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221847C
+MOD08_0221847C: ; 0x0221847C
+ push {r3, r4, r5, r6, r7, lr}
+ mov ip, r1
+ str r0, [sp]
+ strh r3, [r0]
+ add r0, sp, #8
+ mov r1, #0x10
+ ldrsh r3, [r0, r1]
+ ldr r1, [sp]
+ mov r6, #0
+ strh r3, [r1, #2]
+ add r1, #0x94
+ str r2, [r1]
+ ldr r1, [sp]
+ ldrh r2, [r0, #0x14]
+ add r1, #0xa8
+ strh r2, [r1]
+ ldr r1, [sp]
+ add r1, #0xaa
+ strh r6, [r1]
+ ldr r1, [sp]
+ ldrb r7, [r0, #0x18]
+ add r1, #0xac
+ strb r7, [r1]
+ ldr r1, [sp]
+ add r1, #0xad
+ strb r6, [r1]
+ ldrb r1, [r0, #0x1c]
+ ldr r0, [sp]
+ add r0, #0xae
+ strb r1, [r0]
+ cmp r7, #0
+ ble _022184D8
+ ldr r5, [sp]
+_022184BE:
+ mov r4, ip
+ add r3, r5, #4
+ mov r2, #4
+_022184C4:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022184C4
+ ldr r0, [r4]
+ add r6, r6, #1
+ str r0, [r3]
+ add r5, #0x24
+ cmp r6, r7
+ blt _022184BE
+_022184D8:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ add r0, #0x98
+ str r1, [r0]
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ add r0, #0x9c
+ str r1, [r0]
+ ldr r0, [sp]
+ ldr r1, [sp, #0x30]
+ add r0, #0xa0
+ str r1, [r0]
+ ldr r0, [sp]
+ ldr r1, [sp, #0x34]
+ add r0, #0xa4
+ str r1, [r0]
+ ldr r0, [sp]
+ mov r5, #0
+ add r0, #0xac
+ ldrb r0, [r0]
+ cmp r0, #0
+ ble _02218522
+ ldr r4, [sp]
+ add r6, r5, #0
+_02218508:
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ add r1, r6, #0
+ bl FUN_0200C644
+ ldr r0, [sp]
+ add r5, r5, #1
+ add r0, #0xac
+ ldrb r0, [r0]
+ add r4, r4, #4
+ cmp r5, r0
+ blt _02218508
+_02218522:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02218524
+MOD08_02218524: ; 0x02218524
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ mov r0, #0
+ add r2, sp, #0x10
+ mov r1, #1
+_02218530:
+ add r0, r0, #1
+ stmia r2!, {r1}
+ cmp r0, #4
+ blt _02218530
+ add r0, r5, #0
+ add r0, #0xa8
+ ldrh r2, [r0]
+ add r0, r5, #0
+ add r0, #0xaa
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _02218570
+ add r0, r5, #0
+ add r0, #0xad
+ ldrb r0, [r0]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r0, #0x98
+ ldr r0, [r0]
+ bl FUN_0200C644
+ add r0, r5, #0
+ add r0, #0xad
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0xad
+ strb r1, [r0]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xaa
+ strh r1, [r0]
+_02218570:
+ add r0, r5, #0
+ add r0, #0xad
+ ldrb r1, [r0]
+ add r0, r5, #0
+ add r0, #0xac
+ ldrb r0, [r0]
+ cmp r1, r0
+ bhs _0221858E
+ add r0, r5, #0
+ add r0, #0xaa
+ ldrh r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0xaa
+ strh r1, [r0]
+_0221858E:
+ mov r0, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xad
+ ldrb r0, [r0]
+ cmp r0, #0
+ ble _0221862E
+ add r0, sp, #0x10
+ add r7, r5, #4
+ str r0, [sp, #4]
+ add r6, r5, #0
+ add r4, r5, #0
+_022185A6:
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r7, #0
+ blx r1
+ ldr r1, [sp, #4]
+ cmp r0, #0
+ str r0, [r1]
+ beq _02218604
+ add r0, r5, #0
+ add r0, #0xae
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022185EA
+ mov r1, #0
+ mov r2, #4
+ ldrsh r1, [r5, r1]
+ ldrsh r2, [r6, r2]
+ add r0, r4, #0
+ add r0, #0x98
+ add r1, r1, r2
+ mov r2, #2
+ ldrsh r3, [r5, r2]
+ mov r2, #6
+ ldrsh r2, [r6, r2]
+ lsl r1, r1, #0x10
+ ldr r0, [r0]
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ b _02218610
+_022185EA:
+ add r0, r7, #0
+ add r1, sp, #0xc
+ add r2, sp, #8
+ bl MOD08_0221825C
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #8]
+ bl FUN_0200C884
+ b _02218610
+_02218604:
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+_02218610:
+ ldr r0, [sp, #4]
+ add r7, #0x24
+ add r0, r0, #4
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ add r6, #0x24
+ add r0, r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xad
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ add r4, r4, #4
+ cmp r0, r1
+ blt _022185A6
+_0221862E:
+ add r5, #0xac
+ ldrb r2, [r5]
+ mov r3, #0
+ cmp r2, #0
+ ble _0221864E
+ add r1, sp, #0x10
+_0221863A:
+ ldr r0, [r1]
+ cmp r0, #1
+ bne _02218646
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02218646:
+ add r3, r3, #1
+ add r1, r1, #4
+ cmp r3, r2
+ blt _0221863A
+_0221864E:
+ mov r0, #0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02218654
+MOD08_02218654: ; 0x02218654
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ ldr r3, _02218684 ; =0x0000FFFF
+ add r4, r1, #0
+ mov r1, #2
+ str r3, [sp]
+ lsl r1, r1, #0x10
+ str r1, [sp, #4]
+ ldr r1, _02218688 ; =0xFFFF8000
+ add r5, r0, #0
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ mov r1, #0
+ add r2, r3, #0
+ add r3, r1, #0
+ bl MOD08_02217D14
+ ldr r0, [r5, #4]
+ add r1, r0, #0
+ mul r1, r4
+ str r1, [r5, #4]
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_02218684: .word 0x0000FFFF
+_02218688: .word 0xFFFF8000
+
+ thumb_func_start MOD08_0221868C
+MOD08_0221868C: ; 0x0221868C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _022186A8
+ mov r0, #1
+ str r0, [r4, #0x24]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+_022186A8:
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ cmp r1, #0
+ bge _022186B2
+ strh r0, [r4]
+_022186B2:
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _022186BE
+ mov r0, #0
+ strh r0, [r4, #2]
+_022186BE:
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _022186D0 ; =0x04000052
+ strh r1, [r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022186D0: .word 0x04000052
+
+ thumb_func_start MOD08_022186D4
+MOD08_022186D4: ; 0x022186D4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, sp, #8
+ mov r5, #0x10
+ ldrsh r5, [r6, r5]
+ add r4, r0, #0
+ str r5, [sp]
+ ldr r5, [sp, #0x1c]
+ lsl r5, r5, #0x10
+ lsr r5, r5, #0x10
+ str r5, [sp, #4]
+ bl MOD08_02217E80
+ mov r2, #0
+ ldr r0, _02218700 ; =MOD08_0221868C
+ add r1, r4, #0
+ str r2, [r4, #0x24]
+ bl FUN_0200CA44
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_02218700: .word MOD08_0221868C
+
+ thumb_func_start MOD08_02218704
+MOD08_02218704: ; 0x02218704
+ ldr r0, [r0, #0x24]
+ bx lr
+
+ thumb_func_start MOD08_02218708
+MOD08_02218708: ; 0x02218708
+ push {r3, lr}
+ ldr r0, [r1, #8]
+ cmp r0, #0
+ beq _0221871C
+ mov r0, #1
+ str r0, [r1, #0xc]
+ ldr r0, [r1, #0x18]
+ ldr r1, [r1, #0x10]
+ blx r1
+ pop {r3, pc}
+_0221871C:
+ bl FUN_020129C8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218724
+MOD08_02218724: ; 0x02218724
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0221873E
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0221873E
+ ldr r0, [r4, #0x18]
+ ldr r1, [r4, #0x14]
+ blx r1
+ mov r0, #0
+ str r0, [r4, #0xc]
+_0221873E:
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218740
+MOD08_02218740: ; 0x02218740
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ cmp r5, #0
+ bne _02218752
+ bl ErrorHandling
+_02218752:
+ mov r0, #1
+ str r0, [r5, #8]
+ mov r2, #0
+ str r2, [r5, #0xc]
+ str r4, [r5, #0x18]
+ str r6, [r5, #0x10]
+ ldr r0, _02218778 ; =MOD08_02218708
+ str r7, [r5, #0x14]
+ add r1, r5, #0
+ bl FUN_0200CA98
+ str r0, [r5, #4]
+ ldr r0, _0221877C ; =MOD08_02218724
+ add r1, r5, #0
+ mov r2, #0
+ bl FUN_0200CA60
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02218778: .word MOD08_02218708
+_0221877C: .word MOD08_02218724
+
+ thumb_func_start MOD08_02218780
+MOD08_02218780: ; 0x02218780
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221878A
+ bl ErrorHandling
+_0221878A:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02218794
+ bl FUN_0200CAB4
+_02218794:
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0221879E
+ bl FUN_0200CAB4
+_0221879E:
+ bl FUN_020129C8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022187A4
+MOD08_022187A4: ; 0x022187A4
+ push {r4, lr}
+ add r4, r0, #0
+ bne _022187AE
+ bl ErrorHandling
+_022187AE:
+ mov r0, #0
+ str r0, [r4, #8]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022187B4
+MOD08_022187B4: ; 0x022187B4
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0201299C
+ add r5, r0, #0
+ bl FUN_020129C8
+ mov r1, #0x62
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #4
+ mov r3, #1
+ bl FUN_020129D8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022187D8
+MOD08_022187D8: ; 0x022187D8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_020129B4
+ add r0, r4, #0
+ bl MOD08_022187B4
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022187EC
+MOD08_022187EC: ; 0x022187EC
+ ldr r3, _022187F0 ; =MOD08_022187B4
+ bx r3
+ .align 2, 0
+_022187F0: .word MOD08_022187B4
+
+ thumb_func_start MOD08_022187F4
+MOD08_022187F4: ; 0x022187F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r7, r2, #0
+ add r5, r0, #0
+ ldr r1, _02218864 ; =0x00000624
+ add r0, r7, #0
+ bl FUN_02016998
+ ldr r2, _02218864 ; =0x00000624
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ cmp r4, #0
+ bne _02218816
+ bl ErrorHandling
+_02218816:
+ mov r2, #0x32
+ add r1, r4, #0
+ lsl r2, r2, #4
+ add r0, r7, #0
+ add r1, #0x20
+ add r2, r4, r2
+ bl FUN_02012944
+ str r0, [r4, #0x1c]
+ cmp r0, #0
+ bne _02218830
+ bl ErrorHandling
+_02218830:
+ mov r0, #0x62
+ lsl r0, r0, #4
+ add r1, r4, #0
+ mov r2, #3
+ str r5, [r4, r0]
+ add r0, r6, #0
+ add r1, #0x20
+ lsl r2, r2, #8
+ bl MIi_CpuClear32
+ mov r2, #0x32
+ lsl r2, r2, #4
+ add r1, r4, r2
+ add r0, r6, #0
+ sub r2, #0x20
+ bl MIi_CpuClear32
+ ldr r2, _02218868 ; =MOD08_022187D8
+ ldr r3, _0221886C ; =MOD08_022187EC
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD08_02218740
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02218864: .word 0x00000624
+_02218868: .word MOD08_022187D8
+_0221886C: .word MOD08_022187EC
+
+ thumb_func_start MOD08_02218870
+MOD08_02218870: ; 0x02218870
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221887A
+ bl ErrorHandling
+_0221887A:
+ add r0, r4, #0
+ bl MOD08_02218780
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _0221888A
+ bl FUN_02012974
+_0221888A:
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218894
+MOD08_02218894: ; 0x02218894
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221889E
+ bl ErrorHandling
+_0221889E:
+ ldr r0, [r4, #0x1c]
+ bl FUN_02012988
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022188A8
+MOD08_022188A8: ; 0x022188A8
+ push {r4, lr}
+ add r4, r0, #0
+ bne _022188B2
+ bl ErrorHandling
+_022188B2:
+ add r0, r4, #0
+ bl MOD08_022187A4
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022188BC
+MOD08_022188BC: ; 0x022188BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_02012B30
+ ldr r0, [r4, #0x1c]
+ bl FUN_02012B68
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022188D0
+MOD08_022188D0: ; 0x022188D0
+ ldr r3, _022188D8 ; =0x02012B69
+ ldr r0, [r0, #0x1c]
+ bx r3
+ nop
+_022188D8: .word 0x02012B69
+
+ thumb_func_start MOD08_022188DC
+MOD08_022188DC: ; 0x022188DC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r7, r0, #0
+ str r1, [sp, #0x14]
+ ldr r0, [sp, #0x40]
+ mov r1, #0x20
+ str r2, [sp, #0x18]
+ add r5, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _022188F8
+ bl ErrorHandling
+_022188F8:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x20
+ bl Call_FillMemWithValue
+ ldr r0, [sp, #0x34]
+ bl MOD08_022189A0
+ add r6, r0, #0
+ ldr r0, [sp, #0x40]
+ bl FUN_02012A00
+ str r0, [r4, #0x1c]
+ str r5, [sp]
+ add r1, sp, #0x20
+ mov r0, #0x10
+ ldrsh r0, [r1, r0]
+ add r1, r7, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x3c]
+ str r6, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x38]
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x1c]
+ ldr r2, [sp, #0x14]
+ ldr r3, [sp, #0x18]
+ bl FUN_02012A30
+ ldr r2, _02218944 ; =MOD08_022188BC
+ ldr r3, _02218948 ; =MOD08_022188D0
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD08_02218740
+ add r0, r4, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02218944: .word MOD08_022188BC
+_02218948: .word MOD08_022188D0
+
+ thumb_func_start MOD08_0221894C
+MOD08_0221894C: ; 0x0221894C
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02218956
+ bl ErrorHandling
+_02218956:
+ add r0, r4, #0
+ bl MOD08_02218780
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _02218966
+ bl FUN_02012B00
+_02218966:
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218970
+MOD08_02218970: ; 0x02218970
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221897A
+ bl ErrorHandling
+_0221897A:
+ ldr r0, [r4, #0x1c]
+ bl FUN_02012B20
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218984
+MOD08_02218984: ; 0x02218984
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221898E
+ bl ErrorHandling
+_0221898E:
+ add r0, r4, #0
+ bl MOD08_022187A4
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218998
+MOD08_02218998: ; 0x02218998
+ lsl r1, r1, #0x10
+ orr r0, r1
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022189A0
+MOD08_022189A0: ; 0x022189A0
+ cmp r0, #3
+ bhi _022189C6
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022189B0: ; jump table
+ .short _022189B8 - _022189B0 - 2 ; case 0
+ .short _022189BC - _022189B0 - 2 ; case 1
+ .short _022189C0 - _022189B0 - 2 ; case 2
+ .short _022189C4 - _022189B0 - 2 ; case 3
+_022189B8:
+ ldr r0, _022189C8 ; =0x04000010
+ bx lr
+_022189BC:
+ ldr r0, _022189CC ; =0x04000014
+ bx lr
+_022189C0:
+ ldr r0, _022189D0 ; =0x04000018
+ bx lr
+_022189C4:
+ ldr r0, _022189D4 ; =0x0400001C
+_022189C6:
+ bx lr
+ .align 2, 0
+_022189C8: .word 0x04000010
+_022189CC: .word 0x04000014
+_022189D0: .word 0x04000018
+_022189D4: .word 0x0400001C
+
+ thumb_func_start MOD08_022189D8
+MOD08_022189D8: ; 0x022189D8
+ add r2, r0, r2
+ lsr r0, r2, #0x1f
+ add r0, r2, r0
+ asr r2, r0, #1
+ ldr r0, [sp]
+ add r1, r1, r3
+ strh r2, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r1, r0, #1
+ ldr r0, [sp, #4]
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022189F4
+MOD08_022189F4: ; 0x022189F4
+ push {r3, lr}
+ sub r1, r1, r3
+ neg r1, r1
+ sub r0, r0, r2
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ asr r1, r1, #0x10
+ add r2, r1, #0
+ asr r0, r0, #0x10
+ mul r2, r1
+ add r1, r0, #0
+ mul r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0xc
+ bl FX_Sqrt
+ ldr r1, [sp, #8]
+ str r0, [r1]
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218A1C
+MOD08_02218A1C: ; 0x02218A1C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ sub r0, r1, r3
+ neg r0, r0
+ lsl r0, r0, #0x10
+ sub r1, r6, r2
+ asr r4, r0, #0x10
+ lsl r1, r1, #0x10
+ ldr r5, [sp, #0x10]
+ lsl r0, r4, #0xc
+ asr r1, r1, #4
+ bl FX_Atan2
+ strh r0, [r5]
+ ldrh r1, [r5]
+ cmp r1, #0
+ beq _02218A4C
+ cmp r4, #0
+ bge _02218A4C
+ ldr r0, _02218A50 ; =0x00007FFF
+ sub r1, r1, r0
+ ldr r0, _02218A54 ; =0x0000FFFF
+ mul r0, r1
+ strh r0, [r5]
+_02218A4C:
+ pop {r4, r5, r6, pc}
+ nop
+_02218A50: .word 0x00007FFF
+_02218A54: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02218A58
+MOD08_02218A58: ; 0x02218A58
+ cmp r2, #0
+ ldr r3, [r0]
+ bge _02218A70
+ add r2, r3, r2
+ cmp r2, r1
+ ble _02218A6A
+ str r2, [r0]
+ mov r0, #0
+ bx lr
+_02218A6A:
+ str r1, [r0]
+ mov r0, #1
+ bx lr
+_02218A70:
+ add r2, r3, r2
+ cmp r2, r1
+ bge _02218A7C
+ str r2, [r0]
+ mov r0, #0
+ bx lr
+_02218A7C:
+ str r1, [r0]
+ mov r0, #1
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02218A84
+MOD08_02218A84: ; 0x02218A84
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02218AF4
+ mov r0, #0x17
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #0x17]
+ ldrsb r1, [r4, r0]
+ mov r0, #0x16
+ ldrsb r0, [r4, r0]
+ cmp r1, r0
+ blt _02218AF4
+ mov r0, #0
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0x14]
+ str r0, [sp]
+ ldrh r0, [r4, #0x10]
+ str r0, [sp, #4]
+ ldrh r2, [r4, #0xc]
+ ldrh r3, [r4, #0xe]
+ ldr r0, [r4, #0x18]
+ ldr r1, [r4, #8]
+ bl FUN_020039E8
+ ldrb r3, [r4, #0x13]
+ ldrb r1, [r4, #0x14]
+ cmp r1, r3
+ bne _02218ACA
+ mov r0, #0
+ add sp, #8
+ str r0, [r4]
+ pop {r4, pc}
+_02218ACA:
+ mov r0, #0x15
+ ldrsb r2, [r4, r0]
+ add r1, r1, r2
+ lsl r0, r1, #0x18
+ asr r0, r0, #0x18
+ cmp r2, #0
+ ble _02218AE8
+ cmp r0, r3
+ ble _02218AE2
+ add sp, #8
+ strb r3, [r4, #0x14]
+ pop {r4, pc}
+_02218AE2:
+ add sp, #8
+ strb r1, [r4, #0x14]
+ pop {r4, pc}
+_02218AE8:
+ cmp r0, r3
+ bge _02218AF2
+ add sp, #8
+ strb r3, [r4, #0x14]
+ pop {r4, pc}
+_02218AF2:
+ strb r1, [r4, #0x14]
+_02218AF4:
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218AF8
+MOD08_02218AF8: ; 0x02218AF8
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02218B02
+ bl ErrorHandling
+_02218B02:
+ ldr r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218B08
+MOD08_02218B08: ; 0x02218B08
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02218B12
+ bl ErrorHandling
+_02218B12:
+ ldr r0, [r4, #4]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218B20
+MOD08_02218B20: ; 0x02218B20
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ mov r1, #0x1c
+ add r6, r2, #0
+ add r7, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _02218B38
+ bl ErrorHandling
+_02218B38:
+ str r5, [r4, #0x18]
+ str r6, [r4, #8]
+ strh r7, [r4, #0xc]
+ add r1, sp, #8
+ ldrh r0, [r1, #0x10]
+ strh r0, [r4, #0xe]
+ ldrh r0, [r1, #0x24]
+ strh r0, [r4, #0x10]
+ ldrb r2, [r1, #0x1c]
+ add r0, sp, #0x28
+ ldrb r0, [r0]
+ strb r2, [r4, #0x12]
+ strb r0, [r4, #0x13]
+ strb r2, [r4, #0x14]
+ mov r0, #0x14
+ ldrsb r0, [r1, r0]
+ strb r0, [r4, #0x16]
+ strb r0, [r4, #0x17]
+ ldrb r2, [r4, #0x12]
+ ldrb r0, [r4, #0x13]
+ cmp r2, r0
+ bhs _02218B6A
+ mov r0, #0x18
+ ldrsb r0, [r1, r0]
+ b _02218B70
+_02218B6A:
+ mov r0, #0x18
+ ldrsb r0, [r1, r0]
+ neg r0, r0
+_02218B70:
+ strb r0, [r4, #0x15]
+ mov r0, #1
+ str r0, [r4]
+ ldr r0, _02218B88 ; =MOD08_02218A84
+ ldr r2, [sp, #0x30]
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #4]
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02218B88: .word MOD08_02218A84
+
+ thumb_func_start MOD08_02218B8C
+MOD08_02218B8C: ; 0x02218B8C
+ push {r4, r5, r6, r7}
+ mov r7, #0
+ cmp r1, #0
+ ble _02218BCE
+ mov r2, #0x97
+_02218B96:
+ ldrh r6, [r0]
+ mov r3, #0x1f
+ add r7, r7, #1
+ asr r4, r6, #0xa
+ and r4, r3
+ add r5, r4, #0
+ mov r3, #0x1d
+ mul r5, r3
+ mov r3, #0x1f
+ and r3, r6
+ mov r4, #0x4c
+ mul r4, r3
+ asr r6, r6, #5
+ mov r3, #0x1f
+ and r3, r6
+ add r6, r3, #0
+ mul r6, r2
+ add r3, r4, r6
+ add r3, r5, r3
+ asr r5, r3, #8
+ lsl r4, r5, #0xa
+ lsl r3, r5, #5
+ orr r3, r4
+ orr r3, r5
+ strh r3, [r0]
+ add r0, r0, #2
+ cmp r7, r1
+ blt _02218B96
+_02218BCE:
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02218BD4
+MOD08_02218BD4: ; 0x02218BD4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_02215504
+ mov r1, #0
+ bl FUN_02003204
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02218BF8
+ add r0, r4, #0
+ mov r1, #0x30
+ bl MOD08_02218B8C
+ pop {r3, r4, r5, pc}
+_02218BF8:
+ add r0, r4, #0
+ mov r1, #0x80
+ bl MOD08_02218B8C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218C04
+MOD08_02218C04: ; 0x02218C04
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD08_02215504
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02218C30
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x60
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020031B8
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02218C30:
+ mov r1, #0
+ mov r0, #1
+ str r1, [sp]
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020031B8
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02218C48
+MOD08_02218C48: ; 0x02218C48
+ cmp r0, #0x54
+ blo _02218C50
+ mov r0, #0
+ bx lr
+_02218C50:
+ lsl r1, r0, #2
+ ldr r0, _02218C58 ; =0x0222C384
+ ldr r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_02218C58: .word 0x0222C384
+
+ thumb_func_start MOD08_02218C5C
+MOD08_02218C5C: ; 0x02218C5C
+ cmp r0, #0x21
+ blo _02218C64
+ mov r0, #0
+ bx lr
+_02218C64:
+ lsl r1, r0, #2
+ ldr r0, _02218C6C ; =0x0222C300
+ ldr r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_02218C6C: .word 0x0222C300
+
+ thumb_func_start MOD08_02218C70
+MOD08_02218C70: ; 0x02218C70
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02218C74
+MOD08_02218C74: ; 0x02218C74
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02218C86
+ cmp r0, #1
+ beq _02218C8C
+ pop {r4, pc}
+_02218C86:
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_02218C8C:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218C9C
+MOD08_02218C9C: ; 0x02218C9C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl FUN_02016998
+ add r2, r0, #0
+ mov r0, #0
+ strb r0, [r2]
+ mov r3, #1
+ ldr r1, _02218CC0 ; =MOD08_02218C74
+ add r0, r4, #0
+ lsl r3, r3, #0xc
+ str r4, [r2, #4]
+ bl MOD08_022123E4
+ pop {r4, pc}
+ nop
+_02218CC0: .word MOD08_02218C74
+
+ thumb_func_start MOD08_02218CC4
+MOD08_02218CC4: ; 0x02218CC4
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02218CD6
+ cmp r0, #1
+ beq _02218CDC
+ pop {r4, pc}
+_02218CD6:
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_02218CDC:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212448
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218CEC
+MOD08_02218CEC: ; 0x02218CEC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl FUN_02016998
+ add r2, r0, #0
+ mov r0, #0
+ strb r0, [r2]
+ mov r3, #1
+ ldr r1, _02218D10 ; =MOD08_02218CC4
+ add r0, r4, #0
+ lsl r3, r3, #0xc
+ str r4, [r2, #4]
+ bl MOD08_0221241C
+ pop {r4, pc}
+ nop
+_02218D10: .word MOD08_02218CC4
+
+ thumb_func_start MOD08_02218D14
+MOD08_02218D14: ; 0x02218D14
+ push {r4, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ cmp r1, #0
+ beq _02218D24
+ cmp r1, #1
+ beq _02218D2A
+ pop {r4, pc}
+_02218D24:
+ add r0, r1, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_02218D2A:
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218D38
+MOD08_02218D38: ; 0x02218D38
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl FUN_02016998
+ add r1, r0, #0
+ mov r0, #0
+ strb r0, [r1]
+ mov r2, #1
+ ldr r0, _02218D58 ; =MOD08_02218D14
+ lsl r2, r2, #0xc
+ str r4, [r1, #4]
+ bl FUN_0200CA44
+ pop {r4, pc}
+ .align 2, 0
+_02218D58: .word MOD08_02218D14
+
+ thumb_func_start MOD08_02218D5C
+MOD08_02218D5C: ; 0x02218D5C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _02218D6E
+ cmp r0, #1
+ beq _02218DB4
+ pop {r4, r5, r6, pc}
+_02218D6E:
+ ldr r0, [r5, #0x14]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldr r0, [r5, #0x18]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldr r0, [r5, #0x14]
+ mov r1, #1
+ ldr r0, [r0]
+ mov r2, #0
+ bl FUN_0200C7FC
+ ldr r0, [r5, #0x18]
+ mov r1, #0
+ ldr r0, [r0]
+ mvn r1, r1
+ mov r2, #0
+ bl FUN_0200C7FC
+ ldr r0, [r5, #0x1c]
+ mov r1, #1
+ ldr r0, [r0]
+ add r2, r1, #0
+ bl FUN_0200C7FC
+ ldr r0, [r5, #0xc]
+ bl FUN_0200BC1C
+ pop {r4, r5, r6, pc}
+_02218DB4:
+ ldr r0, [r5, #0x10]
+ ldr r4, [r5, #4]
+ bl FUN_0200C3DC
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD08_02212438
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02218DCC
+MOD08_02218DCC: ; 0x02218DCC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r6, r1, #0
+ mov r1, #0x73
+ str r0, [sp]
+ mov r0, #5
+ lsl r1, r1, #2
+ add r7, r2, #0
+ add r5, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _02218DEA
+ bl ErrorHandling
+_02218DEA:
+ mov r0, #0
+ strb r0, [r4]
+ str r6, [r4, #8]
+ str r7, [r4, #0xc]
+ ldr r0, [sp]
+ str r5, [r4, #0x10]
+ str r0, [r4, #4]
+ ldr r1, [sp]
+ add r0, sp, #4
+ bl MOD08_02215474
+ str r5, [r4, #0x14]
+ mov r6, #1
+ add r5, r4, #4
+ add r7, sp, #4
+_02218E08:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ add r2, r7, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x14]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #3
+ blt _02218E08
+ mov r3, #1
+ ldr r0, [sp]
+ ldr r1, _02218E30 ; =MOD08_02218D5C
+ add r2, r4, #0
+ lsl r3, r3, #0xc
+ bl MOD08_022123E4
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02218E30: .word MOD08_02218D5C
+
+ thumb_func_start MOD08_02218E34
+MOD08_02218E34: ; 0x02218E34
+ push {r4, lr}
+ mov r1, #0xc
+ add r2, r1, #0
+ add r2, #0xf4
+ add r4, r0, #0
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218E50
+MOD08_02218E50: ; 0x02218E50
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r5, #4]
+ cmp r0, #0
+ beq _02218E62
+ cmp r0, #1
+ beq _02218E84
+ b _02218F4E
+_02218E62:
+ mov r0, #0x26
+ ldrsh r0, [r5, r0]
+ mov r1, #0x20
+ mov r2, #0x22
+ str r0, [sp]
+ mov r3, #0x24
+ add r0, r5, #0
+ ldrsh r1, [r5, r1]
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ add r0, #0x7c
+ bl MOD08_022183C0
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02218E84:
+ add r0, r5, #0
+ add r0, #0x7c
+ bl MOD08_022183F0
+ cmp r0, #0
+ bne _02218E98
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02218E98:
+ ldr r2, [r5, #0x28]
+ mov r1, #1
+ lsl r1, r1, #8
+ add r0, r2, #0
+ and r0, r1
+ cmp r0, r1
+ bne _02218EE4
+ ldr r0, [r5]
+ mov r6, #0
+ cmp r0, #0
+ ble _02218F32
+ add r4, r5, #0
+ mov r7, #0x32
+_02218EB2:
+ ldr r0, [r4, #0x34]
+ cmp r0, #0
+ beq _02218ED8
+ mov r2, #0x7c
+ mov r3, #0x30
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r4, r3]
+ mov r1, #0
+ add r2, r2, r3
+ bl FUN_02007558
+ mov r2, #0x7e
+ ldrsh r3, [r5, r2]
+ ldrsh r2, [r4, r7]
+ ldr r0, [r4, #0x34]
+ mov r1, #1
+ add r2, r3, r2
+ bl FUN_02007558
+_02218ED8:
+ ldr r0, [r5]
+ add r6, r6, #1
+ add r4, #0x14
+ cmp r6, r0
+ blt _02218EB2
+ b _02218F32
+_02218EE4:
+ lsl r0, r1, #1
+ and r2, r0
+ cmp r2, r0
+ bne _02218F32
+ ldr r0, [r5]
+ mov r6, #0
+ cmp r0, #0
+ ble _02218F2C
+ add r4, r5, #0
+ mov r7, #0x32
+_02218EF8:
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ beq _02218F22
+ mov r1, #0x7c
+ mov r2, #0x30
+ ldrsh r1, [r5, r1]
+ ldrsh r2, [r4, r2]
+ add r1, r1, r2
+ mov r2, #0x7e
+ ldrsh r3, [r5, r2]
+ ldrsh r2, [r4, r7]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C5A8
+_02218F22:
+ ldr r0, [r5]
+ add r6, r6, #1
+ add r4, #0x14
+ cmp r6, r0
+ blt _02218EF8
+_02218F2C:
+ ldr r0, [r5, #0x10]
+ bl FUN_0200BC1C
+_02218F32:
+ mov r0, #1
+ ldr r1, [r5, #0x28]
+ lsl r0, r0, #0xa
+ and r1, r0
+ cmp r1, r0
+ bne _02218F5C
+ mov r3, #0x7c
+ ldrsh r3, [r5, r3]
+ ldr r0, [r5, #0x18]
+ mov r1, #3
+ mov r2, #0
+ bl FUN_020179E0
+ pop {r3, r4, r5, r6, r7, pc}
+_02218F4E:
+ ldr r0, [r5, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FUN_02016A18
+_02218F5C:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218F60
+MOD08_02218F60: ; 0x02218F60
+ push {r3, r4, r5, lr}
+ mov r1, #0xa0
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #4
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ strh r0, [r4, #0x20]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0x22]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ strh r0, [r4, #0x24]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #0x26]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ mov r2, #1
+ lsl r2, r2, #8
+ str r0, [r4, #0x28]
+ add r1, r0, #0
+ and r0, r2
+ cmp r0, r2
+ bne _02218FC0
+ add r2, r4, #0
+ add r0, r5, #0
+ add r2, #0x2c
+ add r3, r4, #0
+ bl MOD08_02227BAC
+ b _02218FD6
+_02218FC0:
+ lsl r0, r2, #1
+ add r3, r1, #0
+ and r3, r0
+ cmp r3, r0
+ bne _02218FD6
+ add r2, r4, #0
+ add r0, r5, #0
+ add r2, #0x2c
+ add r3, r4, #0
+ bl MOD08_02227F88
+_02218FD6:
+ ldr r0, [r4, #8]
+ ldr r1, _02218FE4 ; =MOD08_02218E50
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_02218FE4: .word MOD08_02218E50
+
+ thumb_func_start MOD08_02218FE8
+MOD08_02218FE8: ; 0x02218FE8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #3
+ bhi _022190B2
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02219000: ; jump table
+ .short _02219008 - _02219000 - 2 ; case 0
+ .short _02219026 - _02219000 - 2 ; case 1
+ .short _02219068 - _02219000 - 2 ; case 2
+ .short _02219074 - _02219000 - 2 ; case 3
+_02219008:
+ ldrh r0, [r4, #0x18]
+ mov r1, #4
+ mov r2, #0x39
+ str r0, [sp]
+ ldrh r3, [r4, #0x16]
+ ldr r0, _02219154 ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_02219026:
+ ldrh r1, [r4, #8]
+ ldrh r2, [r4, #0x16]
+ mov r0, #0
+ sub r1, r1, #2
+ cmp r2, r1
+ bge _02219038
+ add r1, r2, #2
+ strh r1, [r4, #0x16]
+ b _0221903A
+_02219038:
+ add r0, r0, #1
+_0221903A:
+ ldrh r1, [r4, #0x18]
+ cmp r1, #9
+ bls _02219046
+ sub r1, r1, #2
+ strh r1, [r4, #0x18]
+ b _02219048
+_02219046:
+ add r0, r0, #1
+_02219048:
+ cmp r0, #2
+ bne _0221905A
+ ldrh r0, [r4, #8]
+ strh r0, [r4, #0x16]
+ mov r0, #7
+ strh r0, [r4, #0x18]
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_0221905A:
+ ldrh r0, [r4, #0x18]
+ ldrh r1, [r4, #0x16]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02219158 ; =0x04000052
+ strh r1, [r0]
+ b _022190CA
+_02219068:
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ beq _022190CA
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+ b _022190CA
+_02219074:
+ ldrh r0, [r4, #0x16]
+ mov r1, #0
+ cmp r0, #2
+ bls _02219082
+ sub r0, r0, #2
+ strh r0, [r4, #0x16]
+ b _02219084
+_02219082:
+ add r1, r1, #1
+_02219084:
+ ldrh r0, [r4, #0x18]
+ cmp r0, #0x1d
+ bhs _02219090
+ add r0, r0, #2
+ strh r0, [r4, #0x18]
+ b _02219092
+_02219090:
+ add r1, r1, #1
+_02219092:
+ cmp r1, #2
+ bne _022190A4
+ mov r0, #0
+ strh r0, [r4, #0x16]
+ mov r0, #0x1f
+ strh r0, [r4, #0x18]
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_022190A4:
+ ldrh r0, [r4, #0x18]
+ ldrh r1, [r4, #0x16]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02219158 ; =0x04000052
+ strh r1, [r0]
+ b _022190CA
+_022190B2:
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201797C
+ ldr r0, [r4, #0x20]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+_022190CA:
+ mov r1, #0x10
+ ldrsh r3, [r4, r1]
+ cmp r3, #0
+ ble _022190DC
+ mov r0, #0xc
+ ldrsh r2, [r4, r0]
+ lsl r0, r1, #5
+ cmp r2, r0
+ bge _022190EA
+_022190DC:
+ cmp r3, #0
+ bge _022190EE
+ mov r0, #0xc
+ ldrsh r1, [r4, r0]
+ ldr r0, _0221915C ; =0xFFFFFE64
+ cmp r1, r0
+ bgt _022190EE
+_022190EA:
+ mov r0, #1
+ str r0, [r4, #4]
+_022190EE:
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ add r0, r1, r0
+ strh r0, [r4, #0xa]
+ mov r0, #0xc
+ ldrsh r2, [r4, r0]
+ mov r0, #0x10
+ ldrsh r1, [r4, r0]
+ add r1, r2, r1
+ strh r1, [r4, #0xc]
+ ldrh r2, [r4, #0x12]
+ ldrh r1, [r4, #0x14]
+ cmp r2, r1
+ bhs _02219132
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02219118
+ add r0, r0, #1
+ b _0221911A
+_02219118:
+ mov r0, #0
+_0221911A:
+ strh r0, [r4, #0x10]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02219128
+ add r0, r0, #1
+ b _0221912A
+_02219128:
+ mov r0, #0
+_0221912A:
+ strh r0, [r4, #0xe]
+ mov r0, #0
+ strh r0, [r4, #0x14]
+ b _02219136
+_02219132:
+ add r0, r1, #1
+ strh r0, [r4, #0x14]
+_02219136:
+ mov r3, #0xa
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #3
+ bl FUN_020179E0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02219154: .word 0x04000050
+_02219158: .word 0x04000052
+_0221915C: .word 0xFFFFFE64
+
+ thumb_func_start MOD08_02219160
+MOD08_02219160: ; 0x02219160
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0xb8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x1c
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0xa]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ strh r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #0xe]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ strh r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD08_02212498
+ strh r0, [r4, #0x12]
+ mov r0, #0
+ strh r0, [r4, #0x14]
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0221920C
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _0221920C
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ sub r0, #0xb
+ mul r0, r1
+ strh r0, [r4, #0xa]
+ mov r1, #0xc
+ add r0, r1, #0
+ ldrsh r2, [r4, r1]
+ sub r0, #0xd
+ mul r0, r2
+ strh r0, [r4, #0xc]
+ mov r0, #0xe
+ ldrsh r2, [r4, r0]
+ sub r0, #0xf
+ mul r0, r2
+ strh r0, [r4, #0xe]
+ mov r0, #0x10
+ ldrsh r2, [r4, r0]
+ sub r0, #0x11
+ mul r0, r2
+ strh r0, [r4, #0x10]
+ ldrsh r0, [r4, r1]
+ sub r0, #0x54
+ strh r0, [r4, #0xc]
+ b _02219214
+_0221920C:
+ mov r0, #0xc
+ ldrsh r0, [r4, r0]
+ add r0, #0x54
+ strh r0, [r4, #0xc]
+_02219214:
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02219228
+ mov r0, #0xe
+ ldrsh r1, [r4, r0]
+ sub r0, #0xf
+ mul r0, r1
+ strh r0, [r4, #0xe]
+_02219228:
+ mov r1, #0
+ strh r1, [r4, #0x16]
+ mov r0, #0x1f
+ strh r0, [r4, #0x18]
+ mov r0, #2
+ str r1, [r4, #4]
+ bl FUN_0201797C
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ mov r1, #0
+ add r7, r0, #0
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x30]
+ mov r0, #7
+ add r1, r6, #0
+ mov r3, #2
+ bl FUN_0200687C
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x90
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x34]
+ mov r1, #7
+ add r2, r6, #0
+ bl FUN_020030E8
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_02018744
+ add r0, r5, #0
+ mov r6, #2
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022192A8
+ mov r6, #4
+ b _022192BC
+_022192A8:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _022192BC
+ mov r6, #3
+_022192BC:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x30]
+ mov r0, #7
+ add r1, r6, #0
+ mov r3, #2
+ bl FUN_020068C8
+ mov r3, #0xa
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #3
+ bl FUN_020179E0
+ ldr r0, [r4, #0x20]
+ ldr r1, _02219310 ; =MOD08_02218FE8
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02219310: .word MOD08_02218FE8
+
+ thumb_func_start MOD08_02219314
+MOD08_02219314: ; 0x02219314
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #3
+ bhi _022193DA
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221932C: ; jump table
+ .short _02219334 - _0221932C - 2 ; case 0
+ .short _02219352 - _0221932C - 2 ; case 1
+ .short _02219390 - _0221932C - 2 ; case 2
+ .short _0221939C - _0221932C - 2 ; case 3
+_02219334:
+ ldrh r0, [r4, #0x18]
+ mov r1, #4
+ mov r2, #0x39
+ str r0, [sp]
+ ldrh r3, [r4, #0x16]
+ ldr r0, _0221947C ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_02219352:
+ ldrh r0, [r4, #0x16]
+ mov r1, #0
+ cmp r0, #0x10
+ bhs _02219360
+ add r0, r0, #2
+ strh r0, [r4, #0x16]
+ b _02219362
+_02219360:
+ add r1, r1, #1
+_02219362:
+ ldrh r0, [r4, #0x18]
+ cmp r0, #4
+ bls _0221936E
+ sub r0, r0, #2
+ strh r0, [r4, #0x18]
+ b _02219370
+_0221936E:
+ add r1, r1, #1
+_02219370:
+ cmp r1, #2
+ bne _02219382
+ mov r0, #0x10
+ strh r0, [r4, #0x16]
+ mov r0, #4
+ strh r0, [r4, #0x18]
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_02219382:
+ ldrh r0, [r4, #0x18]
+ ldrh r1, [r4, #0x16]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02219480 ; =0x04000052
+ strh r1, [r0]
+ b _022193F2
+_02219390:
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ beq _022193F2
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+ b _022193F2
+_0221939C:
+ ldrh r0, [r4, #0x16]
+ mov r1, #0
+ cmp r0, #2
+ bls _022193AA
+ sub r0, r0, #2
+ strh r0, [r4, #0x16]
+ b _022193AC
+_022193AA:
+ add r1, r1, #1
+_022193AC:
+ ldrh r0, [r4, #0x18]
+ cmp r0, #0x10
+ bhs _022193B8
+ add r0, r0, #2
+ strh r0, [r4, #0x18]
+ b _022193BA
+_022193B8:
+ add r1, r1, #1
+_022193BA:
+ cmp r1, #2
+ bne _022193CC
+ mov r0, #0
+ strh r0, [r4, #0x16]
+ mov r0, #0x1f
+ strh r0, [r4, #0x18]
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_022193CC:
+ ldrh r0, [r4, #0x18]
+ ldrh r1, [r4, #0x16]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02219480 ; =0x04000052
+ strh r1, [r0]
+ b _022193F2
+_022193DA:
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201797C
+ ldr r0, [r4, #0x20]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+_022193F2:
+ mov r1, #0x10
+ ldrsh r3, [r4, r1]
+ cmp r3, #0
+ ble _02219404
+ mov r0, #0xc
+ ldrsh r2, [r4, r0]
+ lsl r0, r1, #5
+ cmp r2, r0
+ bge _02219412
+_02219404:
+ cmp r3, #0
+ bge _02219416
+ mov r0, #0xc
+ ldrsh r1, [r4, r0]
+ ldr r0, _02219484 ; =0xFFFFFE64
+ cmp r1, r0
+ bgt _02219416
+_02219412:
+ mov r0, #1
+ str r0, [r4, #4]
+_02219416:
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ add r0, r1, r0
+ strh r0, [r4, #0xa]
+ mov r0, #0xc
+ ldrsh r2, [r4, r0]
+ mov r0, #0x10
+ ldrsh r1, [r4, r0]
+ add r1, r2, r1
+ strh r1, [r4, #0xc]
+ ldrh r2, [r4, #0x12]
+ ldrh r1, [r4, #0x14]
+ cmp r2, r1
+ bhs _0221945A
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02219440
+ add r0, r0, #1
+ b _02219442
+_02219440:
+ mov r0, #0
+_02219442:
+ strh r0, [r4, #0x10]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02219450
+ add r0, r0, #1
+ b _02219452
+_02219450:
+ mov r0, #0
+_02219452:
+ strh r0, [r4, #0xe]
+ mov r0, #0
+ strh r0, [r4, #0x14]
+ b _0221945E
+_0221945A:
+ add r0, r1, #1
+ strh r0, [r4, #0x14]
+_0221945E:
+ mov r3, #0xa
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #3
+ bl FUN_020179E0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221947C: .word 0x04000050
+_02219480: .word 0x04000052
+_02219484: .word 0xFFFFFE64
+
+ thumb_func_start MOD08_02219488
+MOD08_02219488: ; 0x02219488
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0xb8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x1c
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0xa]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ strh r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #0xe]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ strh r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD08_02212498
+ strh r0, [r4, #0x12]
+ mov r0, #0
+ strh r0, [r4, #0x14]
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02219534
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _02219534
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ sub r0, #0xb
+ mul r0, r1
+ strh r0, [r4, #0xa]
+ mov r1, #0xc
+ add r0, r1, #0
+ ldrsh r2, [r4, r1]
+ sub r0, #0xd
+ mul r0, r2
+ strh r0, [r4, #0xc]
+ mov r0, #0xe
+ ldrsh r2, [r4, r0]
+ sub r0, #0xf
+ mul r0, r2
+ strh r0, [r4, #0xe]
+ mov r0, #0x10
+ ldrsh r2, [r4, r0]
+ sub r0, #0x11
+ mul r0, r2
+ strh r0, [r4, #0x10]
+ ldrsh r0, [r4, r1]
+ sub r0, #0x54
+ strh r0, [r4, #0xc]
+ b _0221953C
+_02219534:
+ mov r0, #0xc
+ ldrsh r0, [r4, r0]
+ add r0, #0x54
+ strh r0, [r4, #0xc]
+_0221953C:
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02219550
+ mov r0, #0xe
+ ldrsh r1, [r4, r0]
+ sub r0, #0xf
+ mul r0, r1
+ strh r0, [r4, #0xe]
+_02219550:
+ mov r0, #4
+ strh r0, [r4, #0x16]
+ mov r0, #0x10
+ strh r0, [r4, #0x18]
+ mov r1, #0
+ strh r1, [r4, #0x16]
+ strh r0, [r4, #0x18]
+ mov r0, #2
+ str r1, [r4, #4]
+ bl FUN_0201797C
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ mov r1, #0
+ add r7, r0, #0
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x30]
+ mov r0, #7
+ add r1, r6, #0
+ mov r3, #2
+ bl FUN_0200687C
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x90
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x34]
+ mov r1, #7
+ add r2, r6, #0
+ bl FUN_020030E8
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_02018744
+ add r0, r5, #0
+ mov r6, #2
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022195D6
+ mov r6, #4
+ b _022195EA
+_022195D6:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _022195EA
+ mov r6, #3
+_022195EA:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x30]
+ mov r0, #7
+ add r1, r6, #0
+ mov r3, #2
+ bl FUN_020068C8
+ mov r3, #0xa
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #3
+ bl FUN_020179E0
+ ldr r0, [r4, #0x20]
+ ldr r1, _0221963C ; =MOD08_02219314
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221963C: .word MOD08_02219314
+
+ thumb_func_start MOD08_02219640
+MOD08_02219640: ; 0x02219640
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02219656
+ cmp r0, #1
+ beq _02219656
+ cmp r0, #2
+ beq _02219688
+ pop {r3, r4, r5, pc}
+_02219656:
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02218058
+ cmp r0, #1
+ bne _02219672
+ ldr r2, [r4, #0xc]
+ ldr r0, [r4, #8]
+ lsl r2, r2, #0x10
+ mov r1, #9
+ lsr r2, r2, #0x10
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_02219672:
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ ldr r2, [r4, #0x20]
+ ldr r3, [r4, #0x24]
+ add r0, #0xc
+ bl MOD08_02218008
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02219688:
+ ldr r0, [r4, #8]
+ mov r1, #0xa
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #0xb
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022196B8
+MOD08_022196B8: ; 0x022196B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x2c
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ str r5, [r4, #4]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0x24]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #0x20]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ add r7, r0, #0
+ beq _022196F2
+ cmp r7, #2
+ bne _022196FC
+_022196F2:
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ str r0, [sp]
+ b _02219704
+_022196FC:
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ str r0, [sp]
+_02219704:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r2, r0, #0
+ add r0, r4, #0
+ ldr r1, [r4, #0x20]
+ ldr r3, [r4, #0x24]
+ add r0, #0xc
+ bl MOD08_02218008
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD08_02217C1C
+ add r6, r0, #0
+ ldr r0, [r4, #0x14]
+ add r1, r0, #0
+ mul r1, r6
+ str r1, [r4, #0x14]
+ cmp r7, #2
+ bne _02219736
+ mov r0, #0
+ mvn r0, r0
+ mul r6, r0
+_02219736:
+ ldr r0, [r4, #4]
+ ldr r1, [sp]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ cmp r0, #1
+ bne _02219760
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #0x28]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ b _02219768
+_02219760:
+ mov r0, #0x28
+ add r1, r6, #0
+ mul r1, r0
+ strh r1, [r4, #0x28]
+_02219768:
+ strh r0, [r4, #0x2a]
+ mov r2, #0x28
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0xa
+ bl FUN_02007558
+ mov r2, #0x2a
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0xb
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ ldr r1, _02219790 ; =MOD08_02219640
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02219790: .word MOD08_02219640
+
+ thumb_func_start MOD08_02219794
+MOD08_02219794: ; 0x02219794
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0x2c
+ mov r2, #0x2e
+ add r5, r0, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x28]
+ add r0, r4, #4
+ bl MOD08_02217E58
+ cmp r0, #0
+ bne _022197E0
+ mov r2, #0x2c
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x2e
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ sub r2, #8
+ bl FUN_02007558
+ ldr r0, [r4, #0x28]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_022197E0:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022197E4
+MOD08_022197E4: ; 0x022197E4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x30
+ bl FUN_02016998
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ str r5, [r4]
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r2, r0, #0
+ add r0, r4, #4
+ add r1, r6, #0
+ bl MOD08_02218654
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ cmp r0, #8
+ bgt _0221982E
+ cmp r0, #2
+ blt _022198A0
+ beq _02219834
+ cmp r0, #4
+ beq _02219850
+ cmp r0, #8
+ beq _02219874
+ b _022198A0
+_0221982E:
+ cmp r0, #0x10
+ beq _02219886
+ b _022198A0
+_02219834:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x28]
+ mov r0, #0
+ ldr r1, [r4, #0x10]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [r4, #0x10]
+ b _022198A4
+_02219850:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022274C0
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x28]
+ mov r0, #0
+ ldr r1, [r4, #0x10]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [r4, #0x10]
+ b _022198A4
+_02219874:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x28]
+ b _022198A4
+_02219886:
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022274C0
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x28]
+ b _022198A4
+_022198A0:
+ bl ErrorHandling
+_022198A4:
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x2c]
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x2e]
+ mov r0, #0x2e
+ ldrsh r0, [r4, r0]
+ ldr r1, _022198CC ; =MOD08_02219794
+ add r2, r4, #0
+ add r0, #8
+ strh r0, [r4, #0x2e]
+ ldr r0, [r4]
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022198CC: .word MOD08_02219794
+
+ thumb_func_start MOD08_022198D0
+MOD08_022198D0: ; 0x022198D0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ ldr r0, [r5, #0x14]
+ add r4, r1, #0
+ mov r1, #1
+ add r6, r2, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0200C714
+ mov r0, #0
+ str r0, [r5, #0x40]
+ mov r0, #4
+ mov r1, #0xa
+ add r5, #0x18
+ str r0, [sp]
+ add r0, r5, #0
+ add r2, r1, #0
+ mov r3, #0xe
+ bl MOD08_02218120
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02219908
+MOD08_02219908: ; 0x02219908
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x18
+ bl MOD08_02218360
+ cmp r0, #0
+ bne _02219944
+ ldr r0, [r4, #0x40]
+ cmp r0, #0
+ beq _0221992E
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, pc}
+_0221992E:
+ mov r0, #1
+ str r0, [r4, #0x40]
+ mov r0, #2
+ add r4, #0x18
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xe
+ mov r2, #0xa
+ mov r3, #0xc
+ bl MOD08_02218120
+_02219944:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221994C
+MOD08_0221994C: ; 0x0221994C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x48]
+ mov r5, #0
+ cmp r1, #4
+ bhi _022199E4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02219964: ; jump table
+ .short _0221996E - _02219964 - 2 ; case 0
+ .short _02219994 - _02219964 - 2 ; case 1
+ .short _022199A4 - _02219964 - 2 ; case 2
+ .short _022199D2 - _02219964 - 2 ; case 3
+ .short _022199E2 - _02219964 - 2 ; case 4
+_0221996E:
+ mov r1, #0x4c
+ ldrsh r3, [r4, r1]
+ ldr r2, [r4, #0x3c]
+ mov r1, #0x18
+ mul r1, r2
+ mov r2, #0x4e
+ ldrsh r2, [r4, r2]
+ add r1, r3, r1
+ lsl r1, r1, #0x10
+ sub r2, #0x10
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022198D0
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+ b _022199E4
+_02219994:
+ bl MOD08_02219908
+ cmp r0, #0
+ beq _022199E4
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+ b _022199E4
+_022199A4:
+ ldr r1, [r4, #0x44]
+ sub r1, r1, #1
+ str r1, [r4, #0x44]
+ bpl _022199E4
+ ldr r1, [r4, #0x48]
+ add r1, r1, #1
+ str r1, [r4, #0x48]
+ mov r1, #0x4c
+ ldrsh r3, [r4, r1]
+ ldr r2, [r4, #0x3c]
+ mov r1, #0x18
+ mul r1, r2
+ mov r2, #0x4e
+ ldrsh r2, [r4, r2]
+ sub r1, r3, r1
+ lsl r1, r1, #0x10
+ sub r2, #0x18
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022198D0
+ b _022199E4
+_022199D2:
+ bl MOD08_02219908
+ cmp r0, #0
+ beq _022199E4
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+ b _022199E4
+_022199E2:
+ mov r5, #1
+_022199E4:
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022199E8
+MOD08_022199E8: ; 0x022199E8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _022199FA
+ cmp r0, #1
+ beq _02219A0C
+ b _02219A22
+_022199FA:
+ add r0, r4, #0
+ bl MOD08_0221994C
+ cmp r0, #0
+ beq _02219A22
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02219A22
+_02219A0C:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+_02219A22:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02219A2C
+MOD08_02219A2C: ; 0x02219A2C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x50
+ add r5, r0, #0
+ str r2, [sp]
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ str r6, [r4, #0x14]
+ add r0, r6, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #4
+ str r0, [r4, #0x44]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x4c
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x4e
+ strh r0, [r1]
+ ldr r0, [r4]
+ ldr r1, _02219AB4 ; =MOD08_022199E8
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02219AB4: .word MOD08_022199E8
+
+ thumb_func_start MOD08_02219AB8
+MOD08_02219AB8: ; 0x02219AB8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02219AD6
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_02219AD6:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02219AD8
+MOD08_02219AD8: ; 0x02219AD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r1, #8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02215504
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ beq _02219B06
+ cmp r0, #1
+ beq _02219B12
+ cmp r0, #2
+ beq _02219B18
+ b _02219B1E
+_02219B06:
+ add r0, r5, #0
+ bl MOD08_02214540
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ b _02219B22
+_02219B12:
+ mov r6, #1
+ lsl r6, r6, #8
+ b _02219B22
+_02219B18:
+ mov r6, #2
+ lsl r6, r6, #8
+ b _02219B22
+_02219B1E:
+ bl ErrorHandling
+_02219B22:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ ldr r1, [sp, #0xc]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ ldr r1, [sp, #0x10]
+ lsl r3, r7, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r2, r6, #0
+ asr r3, r3, #0x18
+ bl FUN_02003210
+ ldr r0, [r4]
+ ldr r1, _02219B7C ; =MOD08_02219AB8
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02219B7C: .word MOD08_02219AB8
+
+ thumb_func_start MOD08_02219B80
+MOD08_02219B80: ; 0x02219B80
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #5
+ bhi _02219C28
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02219B98: ; jump table
+ .short _02219BA4 - _02219B98 - 2 ; case 0
+ .short _02219BBC - _02219B98 - 2 ; case 1
+ .short _02219BCE - _02219B98 - 2 ; case 2
+ .short _02219BE0 - _02219B98 - 2 ; case 3
+ .short _02219BF8 - _02219B98 - 2 ; case 4
+ .short _02219C1A - _02219B98 - 2 ; case 5
+_02219BA4:
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r2, [r4, #0x18]
+ ldr r3, [r4, #0x10]
+ bl FUN_02007E68
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02219BBC:
+ ldr r0, [r4, #4]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _02219C28
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02219BCE:
+ ldr r1, [r4, #0x1c]
+ cmp r1, #0
+ bne _02219BDA
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02219BE0
+_02219BDA:
+ sub r0, r1, #1
+ str r0, [r4, #0x1c]
+ pop {r3, r4, r5, pc}
+_02219BE0:
+ ldr r0, [r4, #0x14]
+ mov r2, #0
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #0x18]
+ ldr r3, [r4, #0x10]
+ bl FUN_02007E68
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02219BF8:
+ ldr r0, [r4, #4]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _02219C28
+ ldr r0, [r4, #0xc]
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #0
+ bgt _02219C14
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02219C14:
+ mov r0, #0
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02219C1A:
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_02219C28:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02219C2C
+MOD08_02219C2C: ; 0x02219C2C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x20
+ add r4, r0, #0
+ bl MOD08_02228064
+ add r6, r0, #0
+ str r4, [r6]
+ mov r1, #0
+ add r0, r4, #0
+ str r1, [r6, #4]
+ bl MOD08_02212498
+ ldr r2, _02219DF4 ; =0x00000802
+ cmp r0, r2
+ bgt _02219C66
+ bge _02219CEC
+ cmp r0, #8
+ bgt _02219C60
+ cmp r0, #2
+ blt _02219C5E
+ beq _02219C7E
+ cmp r0, #4
+ beq _02219C90
+ cmp r0, #8
+ beq _02219CB6
+_02219C5E:
+ b _02219DA4
+_02219C60:
+ cmp r0, #0x10
+ beq _02219CC8
+ b _02219DA4
+_02219C66:
+ add r1, r2, #6
+ cmp r0, r1
+ bgt _02219C76
+ bge _02219D48
+ add r1, r2, #2
+ cmp r0, r1
+ beq _02219D1C
+ b _02219DA4
+_02219C76:
+ add r2, #0xe
+ cmp r0, r2
+ beq _02219D78
+ b _02219DA4
+_02219C7E:
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219C90:
+ add r0, r4, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ beq _02219C9C
+ b _02219DA8
+_02219C9C:
+ ldr r0, [r6]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022274C0
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219CB6:
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219CC8:
+ add r0, r4, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _02219DA8
+ ldr r0, [r6]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022274C0
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219CEC:
+ mov r7, #0xff
+ mov r5, #0
+_02219CF0:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #0
+ beq _02219D00
+ cmp r0, #2
+ bne _02219D04
+_02219D00:
+ add r7, r5, #0
+ b _02219D0A
+_02219D04:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02219CF0
+_02219D0A:
+ cmp r7, #0xff
+ bne _02219D10
+ mov r7, #0
+_02219D10:
+ ldr r0, [r6]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219D1C:
+ mov r7, #0xff
+ mov r5, #0
+_02219D20:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #4
+ bne _02219D30
+ add r7, r5, #0
+ b _02219D36
+_02219D30:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02219D20
+_02219D36:
+ cmp r7, #0xff
+ bne _02219D3C
+ mov r7, #0
+_02219D3C:
+ ldr r0, [r6]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219D48:
+ mov r7, #0xff
+ mov r5, #0
+_02219D4C:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #1
+ beq _02219D5C
+ cmp r0, #3
+ bne _02219D60
+_02219D5C:
+ add r7, r5, #0
+ b _02219D66
+_02219D60:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02219D4C
+_02219D66:
+ cmp r7, #0xff
+ bne _02219D6C
+ mov r7, #0
+_02219D6C:
+ ldr r0, [r6]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219D78:
+ mov r7, #0xff
+ mov r5, #0
+_02219D7C:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #5
+ bne _02219D8C
+ add r7, r5, #0
+ b _02219D92
+_02219D8C:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02219D7C
+_02219D92:
+ cmp r7, #0xff
+ bne _02219D98
+ mov r7, #0
+_02219D98:
+ ldr r0, [r6]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219DA4:
+ bl ErrorHandling
+_02219DA8:
+ ldr r0, [r6, #4]
+ cmp r0, #0
+ bne _02219DB6
+ add r0, r6, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+_02219DB6:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r6, #0x10]
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r6, #0xc]
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r6, #0x14]
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r6, #0x18]
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r6, #0x1c]
+ ldr r0, [r6]
+ ldr r1, _02219DF8 ; =MOD08_02219B80
+ add r2, r6, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02219DF4: .word 0x00000802
+_02219DF8: .word MOD08_02219B80
+
+ thumb_func_start MOD08_02219DFC
+MOD08_02219DFC: ; 0x02219DFC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #4
+ bls _02219E0C
+ b _02219F60
+_02219E0C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02219E18: ; jump table
+ .short _02219E22 - _02219E18 - 2 ; case 0
+ .short _02219E70 - _02219E18 - 2 ; case 1
+ .short _02219EC2 - _02219E18 - 2 ; case 2
+ .short _02219EEC - _02219E18 - 2 ; case 3
+ .short _02219F4E - _02219E18 - 2 ; case 4
+_02219E22:
+ ldr r0, [r4, #0x4c]
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r1, [r4, #0x3c]
+ ldr r2, [r4, #0x44]
+ ldr r3, [r4, #0x40]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x50]
+ cmp r0, #1
+ bne _02219E5E
+ ldr r1, [sp, #8]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #8]
+_02219E5E:
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02219F60
+_02219E70:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x50]
+ cmp r0, #1
+ bne _02219E96
+ ldr r1, [sp, #8]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #8]
+_02219E96:
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ cmp r5, #0
+ beq _02219EBA
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0xc
+ mov r2, #0xe
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_02218314
+ b _02219F60
+_02219EBA:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02219F60
+_02219EC2:
+ ldr r0, [r4, #0x4c]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ ldr r1, [r4, #0x40]
+ ldr r2, [r4, #0x44]
+ ldr r3, [r4, #0x3c]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02219F60
+_02219EEC:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x50]
+ cmp r0, #1
+ bne _02219F12
+ ldr r1, [sp, #8]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #8]
+_02219F12:
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ cmp r5, #0
+ beq _02219F36
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0xc
+ mov r2, #0xe
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_02218314
+ b _02219F60
+_02219F36:
+ ldr r0, [r4, #0x48]
+ sub r0, r0, #1
+ str r0, [r4, #0x48]
+ cmp r0, #0
+ bgt _02219F48
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02219F60
+_02219F48:
+ mov r0, #0
+ str r0, [r4, #8]
+ b _02219F60
+_02219F4E:
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add sp, #0xc
+ pop {r4, r5, pc}
+_02219F60:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02219F6C
+MOD08_02219F6C: ; 0x02219F6C
+ push {r4, r5, r6, lr}
+ mov r1, #0x54
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ bne _02219FAE
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ b _02219FCC
+_02219FAE:
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+_02219FCC:
+ strh r0, [r4, #0xe]
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0xc]
+ add r0, r6, #0
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #0xc
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ strh r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0x40]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x44]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #0x48]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ str r0, [r4, #0x4c]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD08_02212498
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022124D8
+ str r0, [r4, #0x10]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r1, [r4, #0x38]
+ mov r2, #0x10
+ ldr r0, [r4]
+ sub r2, r2, r1
+ bl MOD08_02227994
+ ldr r0, [r4]
+ ldr r1, _0221A08C ; =MOD08_02219DFC
+ add r2, r4, #0
+ bl MOD08_02212400
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ beq _0221A07A
+ mov r1, #1
+ b _0221A07C
+_0221A07A:
+ mov r1, #0
+_0221A07C:
+ ldr r0, [r4]
+ bl MOD08_02215680
+ cmp r0, #1
+ bne _0221A08A
+ mov r0, #1
+ str r0, [r4, #0x50]
+_0221A08A:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0221A08C: .word MOD08_02219DFC
+
+ thumb_func_start MOD08_0221A090
+MOD08_0221A090: ; 0x0221A090
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #5
+ bls _0221A0A0
+ b _0221A1DC
+_0221A0A0:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221A0AC: ; jump table
+ .short _0221A0B8 - _0221A0AC - 2 ; case 0
+ .short _0221A0FC - _0221A0AC - 2 ; case 1
+ .short _0221A12C - _0221A0AC - 2 ; case 2
+ .short _0221A140 - _0221A0AC - 2 ; case 3
+ .short _0221A186 - _0221A0AC - 2 ; case 4
+ .short _0221A1C8 - _0221A0AC - 2 ; case 5
+_0221A0B8:
+ ldr r0, [r4, #0x40]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x44]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x4c]
+ asr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r1, [r4, #0x34]
+ ldr r2, [r4, #0x38]
+ ldr r3, [r4, #0x3c]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022181A8
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_02218380
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0221A0FC:
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_022183A0
+ cmp r0, #0
+ beq _0221A122
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xa
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ bl MOD08_022182DC
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221A122:
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0221A12C:
+ ldr r1, [r4, #0x50]
+ cmp r1, #0
+ bne _0221A138
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _0221A140
+_0221A138:
+ sub r0, r1, #1
+ add sp, #0xc
+ str r0, [r4, #0x50]
+ pop {r4, r5, pc}
+_0221A140:
+ ldr r0, [r4, #0x3c]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x44]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x4c]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r1, [r4, #0x38]
+ ldr r2, [r4, #0x34]
+ ldr r3, [r4, #0x40]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022181A8
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_022183A0
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0221A186:
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_022183A0
+ cmp r0, #0
+ beq _0221A1AC
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xa
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ bl MOD08_022182DC
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221A1AC:
+ ldr r0, [r4, #0x48]
+ sub r0, r0, #1
+ str r0, [r4, #0x48]
+ cmp r0, #0
+ bgt _0221A1C0
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0221A1C0:
+ mov r0, #0
+ add sp, #0xc
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0221A1C8:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02218E34
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_0221A1DC:
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_0221A1E0
+MOD08_0221A1E0: ; 0x0221A1E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x54
+ add r5, r0, #0
+ mov r1, #0x54
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ str r5, [r4]
+ bl MOD08_02212498
+ ldr r2, _0221A3E4 ; =0x00000802
+ cmp r0, r2
+ bgt _0221A224
+ bge _0221A290
+ mov r2, #0x42
+ lsl r2, r2, #2
+ cmp r0, r2
+ bgt _0221A21C
+ sub r1, r2, #6
+ cmp r0, r1
+ blt _0221A21A
+ beq _0221A23C
+ sub r1, r2, #4
+ cmp r0, r1
+ beq _0221A23C
+ cmp r0, r2
+ beq _0221A266
+_0221A21A:
+ b _0221A346
+_0221A21C:
+ add r2, #8
+ cmp r0, r2
+ beq _0221A266
+ b _0221A346
+_0221A224:
+ add r1, r2, #6
+ cmp r0, r1
+ bgt _0221A234
+ bge _0221A2EC
+ add r1, r2, #2
+ cmp r0, r1
+ beq _0221A2C0
+ b _0221A346
+_0221A234:
+ add r2, #0xe
+ cmp r0, r2
+ beq _0221A31C
+ b _0221A346
+_0221A23C:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ strh r0, [r4, #0xa]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r1, r0, #0
+ ldr r0, [r4]
+ add r2, sp, #4
+ add r3, sp, #0
+ bl MOD08_02227BAC
+ ldr r0, [sp, #0xc]
+ str r0, [r4, #0xc]
+ b _0221A346
+_0221A266:
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ strh r0, [r4, #0xa]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r1, r0, #0
+ ldr r0, [r4]
+ add r2, sp, #4
+ add r3, sp, #0
+ bl MOD08_02227BAC
+ ldr r0, [sp, #0xc]
+ str r0, [r4, #0xc]
+ b _0221A346
+_0221A290:
+ mov r7, #0xff
+ mov r6, #0
+_0221A294:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02215490
+ cmp r0, #0
+ beq _0221A2A4
+ cmp r0, #2
+ bne _0221A2A8
+_0221A2A4:
+ add r7, r6, #0
+ b _0221A2AE
+_0221A2A8:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0221A294
+_0221A2AE:
+ cmp r7, #0xff
+ bne _0221A2B4
+ mov r7, #0
+_0221A2B4:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ b _0221A346
+_0221A2C0:
+ mov r7, #0xff
+ mov r6, #0
+_0221A2C4:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02215490
+ cmp r0, #4
+ bne _0221A2D4
+ add r7, r6, #0
+ b _0221A2DA
+_0221A2D4:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0221A2C4
+_0221A2DA:
+ cmp r7, #0xff
+ bne _0221A2E0
+ mov r7, #0
+_0221A2E0:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ b _0221A346
+_0221A2EC:
+ mov r7, #0xff
+ mov r6, #0
+_0221A2F0:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02215490
+ cmp r0, #1
+ beq _0221A300
+ cmp r0, #3
+ bne _0221A304
+_0221A300:
+ add r7, r6, #0
+ b _0221A30A
+_0221A304:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0221A2F0
+_0221A30A:
+ cmp r7, #0xff
+ bne _0221A310
+ mov r7, #0
+_0221A310:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ b _0221A346
+_0221A31C:
+ mov r7, #0xff
+ mov r6, #0
+_0221A320:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02215490
+ cmp r0, #5
+ bne _0221A330
+ add r7, r6, #0
+ b _0221A336
+_0221A330:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0221A320
+_0221A336:
+ cmp r7, #0xff
+ bne _0221A33C
+ mov r7, #0
+_0221A33C:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+_0221A346:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ bne _0221A356
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+_0221A356:
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x29
+ bl FUN_0200782C
+ strh r0, [r4, #0xa]
+ mov r0, #0xa
+ ldrsh r0, [r4, r0]
+ mov r1, #1
+ add r0, #0x10
+ strh r0, [r4, #0xa]
+ add r0, r5, #0
+ bl MOD08_02212498
+ str r0, [r4, #0x34]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x40]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #0x44]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ str r0, [r4, #0x48]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD08_02212498
+ str r0, [r4, #0x4c]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x48]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ asr r0, r0, #0x10
+ str r0, [r4, #0x50]
+ ldr r0, [r4]
+ ldr r1, _0221A3E8 ; =MOD08_0221A090
+ add r2, r4, #0
+ bl MOD08_02212400
+ add r1, r4, #0
+ bl MOD08_0221A090
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221A3E4: .word 0x00000802
+_0221A3E8: .word MOD08_0221A090
+
+ thumb_func_start MOD08_0221A3EC
+MOD08_0221A3EC: ; 0x0221A3EC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #8
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _0221A40E
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ pop {r3, r4, r5, pc}
+_0221A40E:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221A418
+MOD08_0221A418: ; 0x0221A418
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0x30
+ add r7, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r7, [r4]
+ add r0, r7, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ add r0, r7, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ mov r5, #0
+_0221A43C:
+ mov r0, #1
+ lsl r0, r5
+ tst r0, r6
+ beq _0221A452
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_022124D8
+ mov r1, #1
+ bl FUN_0200C90C
+_0221A452:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0221A43C
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r5, r0, #0
+ add r0, r7, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ ldr r2, [sp, #8]
+ add r1, r5, #0
+ bl MOD08_02227994
+ add r0, r7, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r7, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ mov r1, #5
+ bl MOD08_02212498
+ ldr r1, [sp, #0xc]
+ ldr r3, [sp, #8]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ str r1, [sp]
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r1, r5, #0x10
+ lsl r2, r6, #0x10
+ lsl r3, r3, #0x10
+ add r0, #8
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022186D4
+ ldr r0, [r4]
+ ldr r1, _0221A4C0 ; =MOD08_0221A3EC
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221A4C0: .word MOD08_0221A3EC
+
+ thumb_func_start MOD08_0221A4C4
+MOD08_0221A4C4: ; 0x0221A4C4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r6, r0, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r1, r0, #0
+ add r0, r6, #0
+ add r2, sp, #4
+ add r3, sp, #0
+ bl MOD08_02227BAC
+ ldr r0, [sp]
+ mov r4, #0
+ cmp r0, #0
+ ble _0221A512
+ mov r7, #6
+_0221A4F0:
+ ldr r1, [sp, #0x14]
+ add r0, r6, #0
+ bl MOD08_02215554
+ cmp r0, #1
+ bne _0221A500
+ cmp r5, #0
+ beq _0221A50A
+_0221A500:
+ ldr r0, [sp, #0xc]
+ add r1, r7, #0
+ add r2, r5, #0
+ bl FUN_02007558
+_0221A50A:
+ ldr r0, [sp]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0221A4F0
+_0221A512:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221A518
+MOD08_0221A518: ; 0x0221A518
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r1, [r4, #4]
+ ldr r0, [r4, #8]
+ cmp r1, r0
+ blt _0221A566
+ ldr r0, [r4]
+ cmp r0, #0
+ ldr r0, [r4, #0x14]
+ bne _0221A546
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r4, #0x3c]
+ add r1, r5, #0
+ bl MOD08_02212438
+ pop {r3, r4, r5, pc}
+_0221A546:
+ mov r1, #6
+ bl FUN_0200782C
+ add r3, r0, #0
+ mov r2, #1
+ ldr r0, [r4, #0x14]
+ mov r1, #6
+ eor r2, r3
+ bl FUN_02007558
+ ldr r0, [r4]
+ sub r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_0221A566:
+ add r0, r1, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221A56C
+MOD08_0221A56C: ; 0x0221A56C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r1, #0x40
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ str r5, [r4, #0x3c]
+ bl MOD08_02212498
+ lsl r0, r0, #1
+ str r0, [r4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r1, r4, #0
+ str r0, [r4, #8]
+ add r0, r5, #0
+ add r1, #0x20
+ bl MOD08_02227B70
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x3c]
+ ldr r1, _0221A5B8 ; =MOD08_0221A518
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221A5B8: .word MOD08_0221A518
+
+ thumb_func_start MOD08_0221A5BC
+MOD08_0221A5BC: ; 0x0221A5BC
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x24
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0221A5D4
+ cmp r0, #1
+ beq _0221A608
+ b _0221A632
+_0221A5D4:
+ mov r0, #0x16
+ ldrsh r3, [r4, r0]
+ mov r0, #0x14
+ ldrsh r1, [r4, r0]
+ mov r2, #0xc
+ str r3, [sp]
+ ldr r0, [r4, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldrsh r2, [r4, r2]
+ add r0, r4, #0
+ add r0, #0x40
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ add r0, r4, #0
+ add r0, #0x24
+ ldrb r0, [r0]
+ add r4, #0x24
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_0221A608:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221A622
+ add r0, r4, #0
+ add r0, #0x24
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+_0221A622:
+ mov r2, #0x40
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_0221A632:
+ ldr r0, [r4, #0x64]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221A644
+MOD08_0221A644: ; 0x0221A644
+ push {r4, r5, r6, lr}
+ mov r1, #0x68
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #0x64]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ mov r6, #0xff
+ add r1, r6, #0
+ add r1, #9
+ cmp r0, r1
+ bgt _0221A690
+ add r1, r6, #3
+ cmp r0, r1
+ blt _0221A6E6
+ beq _0221A69A
+ add r1, r6, #5
+ cmp r0, r1
+ beq _0221A6A4
+ add r1, r6, #0
+ add r1, #9
+ cmp r0, r1
+ beq _0221A6C0
+ b _0221A6E6
+_0221A690:
+ add r1, r6, #0
+ add r1, #0x11
+ cmp r0, r1
+ beq _0221A6CA
+ b _0221A6E6
+_0221A69A:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ b _0221A6EA
+_0221A6A4:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221A6EA
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221A6EA
+_0221A6C0:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ b _0221A6EA
+_0221A6CA:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221A6EA
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221A6EA
+_0221A6E6:
+ bl ErrorHandling
+_0221A6EA:
+ cmp r6, #0xff
+ bne _0221A6F6
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+_0221A6F6:
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x24
+ bl MOD08_02227B70
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ add r1, r4, #0
+ add r1, #0x14
+ str r0, [r4, #0x18]
+ bl MOD08_02227B2C
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ cmp r0, #0
+ bgt _0221A728
+ mov r0, #0xc
+ ldrsh r1, [r4, r0]
+ sub r0, #0xd
+ mul r0, r1
+ strh r0, [r4, #0xc]
+_0221A728:
+ ldr r0, [r4, #0x64]
+ ldr r1, _0221A734 ; =MOD08_0221A5BC
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0221A734: .word MOD08_0221A5BC
+
+ thumb_func_start MOD08_0221A738
+MOD08_0221A738: ; 0x0221A738
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0221A750
+ cmp r0, #1
+ beq _0221A792
+ b _0221A7BC
+_0221A750:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _0221A760
+ mov r0, #0xff
+ add r4, #0x20
+ add sp, #8
+ strb r0, [r4]
+ pop {r4, pc}
+_0221A760:
+ mov r0, #0x12
+ ldrsh r3, [r4, r0]
+ mov r0, #0x10
+ ldrsh r1, [r4, r0]
+ mov r2, #0x64
+ str r3, [sp]
+ ldr r0, [r4, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldrsh r2, [r4, r2]
+ add r0, r4, #0
+ add r0, #0x3c
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0221A792:
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221A7AC
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0221A7AC:
+ mov r2, #0x3c
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_0221A7BC:
+ ldr r0, [r4, #0x60]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221A7D0
+MOD08_0221A7D0: ; 0x0221A7D0
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x68
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #0x60]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x64
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, #0x20
+ bl MOD08_02227B70
+ mov r6, #0xff
+ add r0, r6, #0
+ add r0, #9
+ cmp r7, r0
+ bgt _0221A82C
+ add r0, r6, #3
+ cmp r7, r0
+ blt _0221A882
+ beq _0221A836
+ add r0, r6, #5
+ cmp r7, r0
+ beq _0221A840
+ add r0, r6, #0
+ add r0, #9
+ cmp r7, r0
+ beq _0221A85C
+ b _0221A882
+_0221A82C:
+ add r0, r6, #0
+ add r0, #0x11
+ cmp r7, r0
+ beq _0221A866
+ b _0221A882
+_0221A836:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ b _0221A886
+_0221A840:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221A886
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221A886
+_0221A85C:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ b _0221A886
+_0221A866:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221A886
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221A886
+_0221A882:
+ bl ErrorHandling
+_0221A886:
+ cmp r6, #0xff
+ bne _0221A892
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+_0221A892:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ add r1, r4, #0
+ add r1, #0x10
+ str r0, [r4, #0x14]
+ bl MOD08_02227B2C
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ cmp r0, #0
+ bgt _0221A8C0
+ mov r0, #0x64
+ ldrsh r1, [r4, r0]
+ sub r0, #0x65
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r4, #0
+ add r0, #0x64
+ strh r2, [r0]
+_0221A8C0:
+ add r0, r5, #0
+ bl MOD08_02212004
+ ldr r0, [r4, #0x60]
+ ldr r1, _0221A8D8 ; =MOD08_0221A738
+ add r2, r4, #0
+ bl MOD08_02212400
+ add r1, r4, #0
+ bl MOD08_0221A738
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221A8D8: .word MOD08_0221A738
+
+ thumb_func_start MOD08_0221A8DC
+MOD08_0221A8DC: ; 0x0221A8DC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bls _0221A8EC
+ b _0221AA6A
+_0221A8EC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221A8F8: ; jump table
+ .short _0221A900 - _0221A8F8 - 2 ; case 0
+ .short _0221A962 - _0221A8F8 - 2 ; case 1
+ .short _0221A9AC - _0221A8F8 - 2 ; case 2
+ .short _0221A9FA - _0221A8F8 - 2 ; case 3
+_0221A900:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _0221A958
+ add r0, r4, #0
+ add r0, #0x38
+ bl MOD08_022183F0
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r2, #0x38
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_020079E0
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221A958:
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221A962:
+ ldrb r0, [r4, #9]
+ add r0, r0, #1
+ strb r0, [r4, #9]
+ ldrb r1, [r4, #9]
+ ldrb r0, [r4, #0xa]
+ cmp r1, r0
+ bhi _0221A972
+ b _0221AA78
+_0221A972:
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD08_02212498
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl MOD08_02212498
+ add r6, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [sp]
+ add r0, r4, #0
+ lsl r1, r5, #0x10
+ lsl r3, r6, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ mov r2, #0x64
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221A9AC:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _0221A9F0
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221A9F0:
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221A9FA:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ ldr r0, [r4, #0x10]
+ bne _0221AA3E
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221AA3E:
+ mov r1, #0xc
+ add r2, r1, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221AA6A:
+ ldr r0, [r4, #0xc]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_0221AA78:
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221AA7C
+MOD08_0221AA7C: ; 0x0221AA7C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x5c
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4, #8]
+ strb r0, [r4]
+ str r5, [r4, #0xc]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r0, #0
+ strb r0, [r4, #9]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strb r0, [r4, #0xa]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_0221552C
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0x64
+ lsl r3, r6, #0x10
+ add r0, #0x14
+ add r2, r1, #0
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x38
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD08_022183C0
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221AB14 ; =MOD08_0221A8DC
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0221AB14: .word MOD08_0221A8DC
+
+ thumb_func_start MOD08_0221AB18
+MOD08_0221AB18: ; 0x0221AB18
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bls _0221AB28
+ b _0221ACA8
+_0221AB28:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221AB34: ; jump table
+ .short _0221AB3C - _0221AB34 - 2 ; case 0
+ .short _0221AB9E - _0221AB34 - 2 ; case 1
+ .short _0221ABEA - _0221AB34 - 2 ; case 2
+ .short _0221AC38 - _0221AB34 - 2 ; case 3
+_0221AB3C:
+ add r0, r4, #0
+ add r0, #0x20
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221AB94
+ add r0, r4, #0
+ add r0, #0x44
+ bl MOD08_022183F0
+ mov r2, #0x20
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x22
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r2, #0x44
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_020079E0
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x34]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221AB94:
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221AB9E:
+ ldrb r0, [r4, #9]
+ add r0, r0, #1
+ strb r0, [r4, #9]
+ ldrb r1, [r4, #9]
+ ldrb r0, [r4, #0xa]
+ cmp r1, r0
+ bhi _0221ABAE
+ b _0221ACB6
+_0221ABAE:
+ ldr r3, [r4, #0x10]
+ ldr r2, [r4, #0xc]
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ asr r1, r2, #0x10
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x14]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ asr r3, r3, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x20
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221ABEA:
+ add r0, r4, #0
+ add r0, #0x20
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221AC2E
+ mov r2, #0x20
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x22
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x34]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221AC2E:
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221AC38:
+ add r0, r4, #0
+ add r0, #0x20
+ bl MOD08_02218224
+ cmp r0, #1
+ ldr r0, [r4, #0x1c]
+ bne _0221AC7C
+ mov r2, #0x20
+ ldrsh r2, [r4, r2]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x22
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x34]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221AC7C:
+ mov r1, #0xc
+ add r2, r1, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x1c]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221ACA8:
+ ldr r0, [r4, #0x18]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_0221ACB6:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221ACBC
+MOD08_0221ACBC: ; 0x0221ACBC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x68
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4, #8]
+ strb r0, [r4]
+ str r5, [r4, #0x18]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x18]
+ bl MOD08_022154D4
+ str r0, [r4, #0x1c]
+ mov r0, #0
+ strb r0, [r4, #9]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ strb r0, [r4, #0xa]
+ ldr r0, [r4, #0x18]
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x18]
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x18]
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x18]
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #0
+ add r3, r4, #2
+ bl MOD08_02217B50
+ ldr r0, [r4, #0x18]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x18]
+ bl MOD08_0221552C
+ str r0, [r4, #4]
+ mov r1, #2
+ ldrsh r1, [r4, r1]
+ add r0, r1, r0
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ asr r0, r0, #0x10
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ asr r0, r0, #0x10
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r6, [sp]
+ mov r1, #0x64
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ ldr r1, [sp, #0x10]
+ ldr r3, [sp, #0xc]
+ add r0, #0x20
+ add r2, r7, #0
+ bl MOD08_022181A8
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x44
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD08_022183C0
+ ldr r0, [r4, #0x18]
+ ldr r1, _0221ADBC ; =MOD08_0221AB18
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0221ADBC: .word MOD08_0221AB18
+
+ thumb_func_start MOD08_0221ADC0
+MOD08_0221ADC0: ; 0x0221ADC0
+ push {r3, r4, r5, lr}
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r2]
+ ldr r0, _0221ADEC ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_02214850
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+ nop
+_0221ADEC: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_0221ADF0
+MOD08_0221ADF0: ; 0x0221ADF0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r1, #0x28
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r0, r5, #0
+ add r1, r4, #4
+ bl MOD08_02227B70
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_0221477C
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x24]
+ mov r1, #2
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x24]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r1, _0221AE70 ; =0x3F99999A
+ ldr r0, [r4, #0x24]
+ add r2, r1, #0
+ bl FUN_0200C884
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0221AE74 ; =0xFFFF1FFF
+ and r2, r1
+ lsr r1, r0, #0xb
+ orr r1, r2
+ str r1, [r0]
+ add r0, #0x4a
+ ldrh r2, [r0]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x1b
+ orr r1, r2
+ strh r1, [r0]
+ ldrh r2, [r0]
+ ldr r1, _0221AE78 ; =0xFFFFC0FF
+ and r2, r1
+ mov r1, #7
+ lsl r1, r1, #8
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, [r4, #8]
+ ldr r1, _0221AE7C ; =MOD08_0221ADC0
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221AE70: .word 0x3F99999A
+_0221AE74: .word 0xFFFF1FFF
+_0221AE78: .word 0xFFFFC0FF
+_0221AE7C: .word MOD08_0221ADC0
+
+ thumb_func_start MOD08_0221AE80
+MOD08_0221AE80: ; 0x0221AE80
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0221AE98
+ cmp r0, #1
+ beq _0221AED4
+ b _0221AF0A
+_0221AE98:
+ mov r0, #0x12
+ ldrsh r3, [r4, r0]
+ mov r0, #0x10
+ ldrsh r1, [r4, r0]
+ mov r0, #0x66
+ ldrsh r0, [r4, r0]
+ mov r2, #0x64
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldrsh r2, [r4, r2]
+ add r0, r4, #0
+ add r0, #0x3c
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0221AED4:
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221AEEE
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0221AEEE:
+ mov r2, #0x3c
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x3e
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_0221AF0A:
+ ldr r0, [r4, #0x60]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221AF1C
+MOD08_0221AF1C: ; 0x0221AF1C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x68
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #0x60]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x64
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x66
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, #0x20
+ bl MOD08_02227B70
+ mov r6, #0xff
+ add r0, r6, #0
+ add r0, #9
+ cmp r7, r0
+ bgt _0221AF86
+ add r0, r6, #3
+ cmp r7, r0
+ blt _0221AFDC
+ beq _0221AF90
+ add r0, r6, #5
+ cmp r7, r0
+ beq _0221AF9A
+ add r0, r6, #0
+ add r0, #9
+ cmp r7, r0
+ beq _0221AFB6
+ b _0221AFDC
+_0221AF86:
+ add r0, r6, #0
+ add r0, #0x11
+ cmp r7, r0
+ beq _0221AFC0
+ b _0221AFDC
+_0221AF90:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ b _0221AFE0
+_0221AF9A:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221AFE0
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221AFE0
+_0221AFB6:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ b _0221AFE0
+_0221AFC0:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221AFE0
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221AFE0
+_0221AFDC:
+ bl ErrorHandling
+_0221AFE0:
+ cmp r6, #0xff
+ bne _0221AFEC
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+_0221AFEC:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x14]
+ cmp r0, #0
+ bne _0221B002
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+_0221B002:
+ add r1, r4, #0
+ add r1, #0x10
+ bl MOD08_02227B2C
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ cmp r0, #0
+ bgt _0221B036
+ mov r0, #0x64
+ ldrsh r1, [r4, r0]
+ sub r0, #0x65
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r4, #0
+ add r0, #0x64
+ strh r2, [r0]
+ mov r0, #0x66
+ ldrsh r1, [r4, r0]
+ sub r0, #0x67
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r4, #0
+ add r0, #0x66
+ strh r2, [r0]
+_0221B036:
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _0221B050
+ mov r0, #0x66
+ ldrsh r1, [r4, r0]
+ sub r0, #0x67
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r4, #0
+ add r0, #0x66
+ strh r2, [r0]
+_0221B050:
+ ldr r0, [r4, #0x60]
+ ldr r1, _0221B064 ; =MOD08_0221AE80
+ add r2, r4, #0
+ bl MOD08_02212400
+ add r1, r4, #0
+ bl MOD08_0221AE80
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221B064: .word MOD08_0221AE80
+
+ thumb_func_start MOD08_0221B068
+MOD08_0221B068: ; 0x0221B068
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0x20
+ mov r2, #0x22
+ add r5, r0, #0
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x24]
+ add r0, #0x30
+ bl MOD08_02217E58
+ cmp r0, #0
+ bne _0221B0AC
+ mov r2, #0x20
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x22
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ sub r2, #8
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_0221B0AC:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221B0B0
+MOD08_0221B0B0: ; 0x0221B0B0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ mov r1, #0x54
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r2, r4, #0
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, #0x1c
+ add r3, sp, #0
+ bl MOD08_02227BAC
+ mov r0, #0x22
+ ldrsh r0, [r4, r0]
+ mov r1, #1
+ add r0, #8
+ strh r0, [r4, #0x22]
+ add r0, r5, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x30
+ add r1, r6, #0
+ bl MOD08_02218654
+ ldr r1, [r4, #0x3c]
+ add r2, r4, #0
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ str r0, [r4, #0x3c]
+ ldr r1, [r4, #0x44]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ str r0, [r4, #0x44]
+ ldr r0, [r4, #4]
+ ldr r1, _0221B124 ; =MOD08_0221B068
+ bl MOD08_02212400
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0221B124: .word MOD08_0221B068
+
+ thumb_func_start MOD08_0221B128
+MOD08_0221B128: ; 0x0221B128
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ bne _0221B160
+ add r0, r4, #0
+ add r0, #0x30
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221B146
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221B146:
+ mov r2, #0x30
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x32
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_02007558
+ pop {r4, pc}
+_0221B160:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221B170
+MOD08_0221B170: ; 0x0221B170
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0x5c
+ add r6, r0, #0
+ bl MOD08_02228064
+ add r5, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD08_02227B70
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r7, r0, #0
+ cmp r4, #8
+ bgt _0221B1AE
+ cmp r4, #2
+ blt _0221B1EC
+ beq _0221B1B4
+ cmp r4, #4
+ beq _0221B1BE
+ cmp r4, #8
+ beq _0221B1D0
+ b _0221B1EC
+_0221B1AE:
+ cmp r4, #0x10
+ beq _0221B1DA
+ b _0221B1EC
+_0221B1B4:
+ add r0, r6, #0
+ bl MOD08_02212458
+ str r0, [sp, #8]
+ b _0221B1F0
+_0221B1BE:
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ str r0, [sp, #8]
+ b _0221B1F0
+_0221B1D0:
+ add r0, r6, #0
+ bl MOD08_02212460
+ str r0, [sp, #8]
+ b _0221B1F0
+_0221B1DA:
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ str r0, [sp, #8]
+ b _0221B1F0
+_0221B1EC:
+ bl ErrorHandling
+_0221B1F0:
+ add r2, r5, #0
+ ldr r1, [sp, #8]
+ add r0, r6, #0
+ add r2, #0x54
+ bl MOD08_022275C0
+ add r2, r5, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, #0x1c
+ add r3, sp, #0xc
+ bl MOD08_02227BAC
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x58
+ strh r1, [r0]
+ add r0, r5, #0
+ add r0, #0x5a
+ strh r1, [r0]
+ ldr r0, [r5, #4]
+ ldr r1, [sp, #8]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221B22A
+ mov r1, #0x4f
+ mvn r1, r1
+ b _0221B22E
+_0221B22A:
+ mov r1, #0x15
+ lsl r1, r1, #4
+_0221B22E:
+ add r0, r5, #0
+ add r0, #0x58
+ strh r1, [r0]
+ mov r0, #0x22
+ ldrsh r3, [r5, r0]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ str r3, [sp]
+ str r0, [sp, #4]
+ mov r1, #0x20
+ mov r2, #0x58
+ add r0, r5, #0
+ ldrsh r1, [r5, r1]
+ ldrsh r2, [r5, r2]
+ add r0, #0x30
+ bl MOD08_02217E80
+ ldr r0, [r5, #4]
+ ldr r1, _0221B260 ; =MOD08_0221B128
+ add r2, r5, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221B260: .word MOD08_0221B128
+
+ thumb_func_start MOD08_0221B264
+MOD08_0221B264: ; 0x0221B264
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r1, #0x5c
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r7, r0, #0
+ cmp r6, #8
+ bgt _0221B2AC
+ cmp r6, #2
+ blt _0221B2EA
+ beq _0221B2B2
+ cmp r6, #4
+ beq _0221B2BC
+ cmp r6, #8
+ beq _0221B2CE
+ b _0221B2EA
+_0221B2AC:
+ cmp r6, #0x10
+ beq _0221B2D8
+ b _0221B2EA
+_0221B2B2:
+ add r0, r5, #0
+ bl MOD08_02212458
+ str r0, [sp, #8]
+ b _0221B2EE
+_0221B2BC:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ str r0, [sp, #8]
+ b _0221B2EE
+_0221B2CE:
+ add r0, r5, #0
+ bl MOD08_02212460
+ str r0, [sp, #8]
+ b _0221B2EE
+_0221B2D8:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ str r0, [sp, #8]
+ b _0221B2EE
+_0221B2EA:
+ bl ErrorHandling
+_0221B2EE:
+ add r2, r4, #0
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ add r2, #0x54
+ bl MOD08_022275C0
+ add r2, r4, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, #0x1c
+ add r3, sp, #0x10
+ bl MOD08_02227BAC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x58
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x5a
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ ldr r1, [sp, #8]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221B328
+ mov r1, #0x4f
+ mvn r1, r1
+ b _0221B32C
+_0221B328:
+ mov r1, #0x15
+ lsl r1, r1, #4
+_0221B32C:
+ add r0, r4, #0
+ add r0, #0x58
+ strh r1, [r0]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _0221B356
+ mov r0, #0x22
+ ldrsh r3, [r4, r0]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ str r3, [sp]
+ str r0, [sp, #4]
+ mov r1, #0x20
+ mov r2, #0x58
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ add r0, #0x30
+ bl MOD08_02217E80
+ b _0221B37A
+_0221B356:
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r2, r0, #0
+ mov r0, #0x22
+ ldrsh r3, [r4, r0]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ str r3, [sp]
+ str r0, [sp, #4]
+ mov r1, #0x58
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ add r0, #0x30
+ bl MOD08_02217E80
+_0221B37A:
+ ldr r0, [r4, #4]
+ ldr r1, _0221B388 ; =MOD08_0221B128
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221B388: .word MOD08_0221B128
+
+ thumb_func_start MOD08_0221B38C
+MOD08_0221B38C: ; 0x0221B38C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ mov r1, #0
+ add r5, r0, #0
+ bl MOD08_02212498
+ add r4, r0, #0
+ cmp r4, #8
+ bgt _0221B3AE
+ cmp r4, #2
+ blt _0221B3EC
+ beq _0221B3B4
+ cmp r4, #4
+ beq _0221B3BE
+ cmp r4, #8
+ beq _0221B3D0
+ b _0221B3EC
+_0221B3AE:
+ cmp r4, #0x10
+ beq _0221B3DA
+ b _0221B3EC
+_0221B3B4:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ b _0221B3F0
+_0221B3BE:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221B3F0
+_0221B3D0:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ b _0221B3F0
+_0221B3DA:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221B3F0
+_0221B3EC:
+ bl ErrorHandling
+_0221B3F0:
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, sp, #0
+ bl MOD08_022275C0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #8
+ add r3, sp, #4
+ bl MOD08_02227BAC
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_0221552C
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ mov r1, #0
+ add r2, sp, #0
+ ldrsh r2, [r2, r1]
+ ldr r0, [sp, #0x10]
+ bl FUN_02007558
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ ldr r0, [sp, #0x10]
+ mov r1, #1
+ add r2, r2, r4
+ bl FUN_02007558
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221B434
+MOD08_0221B434: ; 0x0221B434
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD08_02218AF8
+ cmp r0, #0
+ bne _0221B458
+ ldr r0, [r4, #0x30]
+ bl MOD08_02218B08
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_0221B458:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221B45C
+MOD08_0221B45C: ; 0x0221B45C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ mov r1, #0x34
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [sp, #0x24]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ add r2, r4, #0
+ str r0, [sp, #0x28]
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, #0x1c
+ add r3, sp, #0x2c
+ bl MOD08_02227F88
+ ldr r0, [r4, #0x28]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ lsl r0, r6, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ lsl r3, r7, #0x14
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x20]
+ mov r2, #2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x24]
+ lsr r3, r3, #0x10
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x28]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x14]
+ ldr r0, _0221B520 ; =0x0000044C
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x18]
+ bl MOD08_02218B20
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #4]
+ ldr r1, _0221B524 ; =MOD08_0221B434
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221B520: .word 0x0000044C
+_0221B524: .word MOD08_0221B434
+
+ thumb_func_start MOD08_0221B528
+MOD08_0221B528: ; 0x0221B528
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ bne _0221B59C
+ ldr r0, [r4, #0x4c]
+ add r1, r0, #1
+ str r1, [r4, #0x4c]
+ ldr r0, [r4, #0x44]
+ cmp r1, r0
+ blt _0221B5B0
+ mov r1, #0
+ str r1, [r4, #0x4c]
+ ldr r0, [r4, #0x48]
+ cmp r0, #0
+ ldr r0, [r4, #0x54]
+ bne _0221B560
+ cmp r0, #0
+ bge _0221B552
+ str r1, [r4, #0x54]
+_0221B552:
+ ldr r0, [r4, #0x54]
+ cmp r0, #0
+ bne _0221B574
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221B574
+_0221B560:
+ cmp r0, #0x50
+ ble _0221B568
+ mov r0, #0x50
+ str r0, [r4, #0x54]
+_0221B568:
+ ldr r0, [r4, #0x54]
+ cmp r0, #0x50
+ bne _0221B574
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221B574:
+ ldr r0, [r4, #0x24]
+ ldr r2, [r4, #0x54]
+ mov r1, #0x12
+ bl FUN_02007558
+ ldr r0, [r4, #0x24]
+ ldr r2, [r4, #0x50]
+ mov r1, #1
+ bl FUN_02007558
+ mov r0, #0x42
+ ldrsh r1, [r4, r0]
+ ldr r2, [r4, #0x50]
+ sub r1, r2, r1
+ str r1, [r4, #0x50]
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x54]
+ add r0, r1, r0
+ str r0, [r4, #0x54]
+ pop {r3, r4, r5, pc}
+_0221B59C:
+ ldr r0, [r4, #0x24]
+ bl MOD08_02218E34
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_0221B5B0:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221B5B4
+MOD08_0221B5B4: ; 0x0221B5B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r1, #0x58
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r2, r4, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, #0x1c
+ add r3, sp, #4
+ bl MOD08_02227BAC
+ cmp r6, #8
+ bgt _0221B5F6
+ cmp r6, #2
+ blt _0221B634
+ beq _0221B5FC
+ cmp r6, #4
+ beq _0221B606
+ cmp r6, #8
+ beq _0221B618
+ b _0221B634
+_0221B5F6:
+ cmp r6, #0x10
+ beq _0221B622
+ b _0221B634
+_0221B5FC:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r7, r0, #0
+ b _0221B638
+_0221B606:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r7, r0, #0
+ b _0221B638
+_0221B618:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r7, r0, #0
+ b _0221B638
+_0221B622:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r7, r0, #0
+ b _0221B638
+_0221B634:
+ bl ErrorHandling
+_0221B638:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #0x48]
+ cmp r0, #0
+ ldr r0, [r4, #0x24]
+ bne _0221B68C
+ mov r1, #1
+ bl FUN_0200782C
+ str r0, [r4, #0x50]
+ ldr r0, [r4, #0x24]
+ mov r1, #0x12
+ bl FUN_0200782C
+ mov r1, #0x50
+ sub r0, r1, r0
+ str r0, [r4, #0x54]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x40
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x42
+ strh r0, [r1]
+ mov r0, #0x42
+ ldrsh r1, [r4, r0]
+ sub r0, #0x43
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r4, #0
+ add r0, #0x42
+ strh r2, [r0]
+ b _0221B6BA
+_0221B68C:
+ mov r1, #1
+ bl FUN_0200782C
+ str r0, [r4, #0x50]
+ ldr r0, [r4, #0x24]
+ mov r1, #0x12
+ bl FUN_0200782C
+ str r0, [r4, #0x54]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x40
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x42
+ strh r0, [r1]
+_0221B6BA:
+ mov r0, #0
+ str r0, [r4, #0x30]
+ str r0, [r4, #0x34]
+ mov r0, #0x50
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_0221552C
+ mov r1, #0x50
+ sub r0, r1, r0
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x44]
+ mov r0, #0
+ str r0, [r4, #0x4c]
+ ldr r0, [r4, #0x3c]
+ str r0, [sp]
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x30]
+ ldr r2, [r4, #0x34]
+ ldr r3, [r4, #0x38]
+ bl FUN_02007E40
+ ldr r0, [r4, #4]
+ ldr r1, _0221B700 ; =MOD08_0221B528
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221B700: .word MOD08_0221B528
+
+ thumb_func_start MOD08_0221B704
+MOD08_0221B704: ; 0x0221B704
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ cmp r1, #8
+ bgt _0221B71E
+ cmp r1, #2
+ blt _0221B754
+ beq _0221B724
+ cmp r1, #4
+ beq _0221B72C
+ cmp r1, #8
+ beq _0221B73C
+ b _0221B754
+_0221B71E:
+ cmp r1, #0x10
+ beq _0221B744
+ b _0221B754
+_0221B724:
+ bl MOD08_02212458
+ add r4, r0, #0
+ b _0221B758
+_0221B72C:
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r4, r0, #0
+ b _0221B758
+_0221B73C:
+ bl MOD08_02212460
+ add r4, r0, #0
+ b _0221B758
+_0221B744:
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r4, r0, #0
+ b _0221B758
+_0221B754:
+ bl ErrorHandling
+_0221B758:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221B75C
+MOD08_0221B75C: ; 0x0221B75C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221B76E
+ cmp r0, #1
+ beq _0221B7B4
+ pop {r3, r4, r5, pc}
+_0221B76E:
+ ldr r0, [r4, #0x24]
+ add r1, r0, #1
+ str r1, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ blt _0221B7E6
+ mov r0, #0
+ str r0, [r4, #0x24]
+ mov r0, #0x1c
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x44]
+ add r2, r1, r0
+ str r2, [r4, #0x44]
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_02007558
+ mov r0, #0x1c
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x3c]
+ sub r1, r1, r0
+ str r1, [r4, #0x3c]
+ ldr r0, [r4, #0x40]
+ cmp r1, r0
+ ble _0221B7A8
+ str r0, [r4, #0x3c]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221B7A8:
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x3c]
+ mov r1, #0x12
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_0221B7B4:
+ ldr r0, [r4, #0x30]
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x48]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x40]
+ mov r1, #0x12
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ bl MOD08_02218E34
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_0221B7E6:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221B7E8
+MOD08_0221B7E8: ; 0x0221B7E8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221B7FA
+ cmp r0, #1
+ beq _0221B83E
+ pop {r3, r4, r5, pc}
+_0221B7FA:
+ ldr r0, [r4, #0x24]
+ add r1, r0, #1
+ str r1, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ blt _0221B870
+ mov r0, #0
+ str r0, [r4, #0x24]
+ mov r0, #0x1c
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x44]
+ add r2, r1, r0
+ str r2, [r4, #0x44]
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_02007558
+ mov r0, #0x1c
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x3c]
+ sub r0, r1, r0
+ str r0, [r4, #0x3c]
+ bpl _0221B832
+ mov r0, #0
+ str r0, [r4, #0x3c]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221B832:
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x3c]
+ mov r1, #0x12
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_0221B83E:
+ ldr r0, [r4, #0x30]
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x48]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x40]
+ mov r1, #0x12
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ bl MOD08_02218E34
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_0221B870:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221B874
+MOD08_0221B874: ; 0x0221B874
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221B886
+ cmp r0, #1
+ beq _0221B8C8
+ pop {r3, r4, r5, pc}
+_0221B886:
+ ldr r0, [r4, #0x24]
+ add r1, r0, #1
+ str r1, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ blt _0221B8E6
+ mov r0, #0
+ str r0, [r4, #0x24]
+ mov r1, #0x1c
+ ldrsh r2, [r4, r1]
+ ldr r3, [r4, #0x3c]
+ sub r2, r3, r2
+ str r2, [r4, #0x3c]
+ ldrsh r1, [r4, r1]
+ ldr r2, [r4, #0x40]
+ add r1, r2, r1
+ str r1, [r4, #0x40]
+ ldr r1, [r4, #0x3c]
+ cmp r1, #0
+ bge _0221B8B6
+ str r0, [r4, #0x3c]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221B8B6:
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x3c]
+ mov r3, #0x50
+ bl FUN_02007E40
+ pop {r3, r4, r5, pc}
+_0221B8C8:
+ ldr r0, [r4, #0x30]
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ bl MOD08_02218E34
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_0221B8E6:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221B8E8
+MOD08_0221B8E8: ; 0x0221B8E8
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ mov r1, #0x50
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #0x1c]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x20]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r2, r4, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, #0x28
+ add r3, sp, #4
+ bl MOD08_02227BAC
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_0221B704
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ cmp r0, #0
+ beq _0221B96A
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_0221552C
+ mov r3, #0x50
+ sub r0, r3, r0
+ str r0, [r4, #0x3c]
+ mov r1, #0
+ str r1, [r4, #0x40]
+ str r1, [sp]
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x3c]
+ bl FUN_02007E40
+ ldr r0, [r4, #4]
+ ldr r1, _0221B9DC ; =MOD08_0221B874
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_0221B96A:
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200782C
+ str r0, [r4, #0x44]
+ str r0, [r4, #0x48]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_0221552C
+ mov r3, #0x50
+ sub r0, r3, r0
+ str r0, [r4, #0x3c]
+ str r0, [r4, #0x40]
+ mov r0, #0x1c
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0221B9AA
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x30]
+ add r2, r1, #0
+ bl FUN_02007E40
+ ldr r0, [r4, #4]
+ ldr r1, _0221B9E0 ; =MOD08_0221B7E8
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_0221B9AA:
+ mov r0, #0
+ str r0, [r4, #0x3c]
+ ldr r1, [r4, #0x44]
+ ldr r0, [r4, #0x40]
+ add r2, r1, r0
+ str r2, [r4, #0x44]
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x30]
+ add r2, r1, #0
+ mov r3, #0x50
+ bl FUN_02007E40
+ ldr r0, [r4, #4]
+ ldr r1, _0221B9E4 ; =MOD08_0221B75C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0221B9DC: .word MOD08_0221B874
+_0221B9E0: .word MOD08_0221B7E8
+_0221B9E4: .word MOD08_0221B75C
+
+ thumb_func_start MOD08_0221B9E8
+MOD08_0221B9E8: ; 0x0221B9E8
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221B9FC
+ cmp r0, #1
+ beq _0221BA1C
+ b _0221BAAC
+_0221B9FC:
+ ldr r0, [r4, #0x10]
+ str r0, [sp]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #8]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r3, [r4, #0xc]
+ add r0, #0xd4
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022183C0
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221BA1C:
+ add r0, r4, #0
+ add r0, #0xd4
+ bl MOD08_022183F0
+ cmp r0, #0
+ bne _0221BA70
+ ldrb r1, [r4, #1]
+ ldr r0, [r4, #0x18]
+ cmp r1, r0
+ ldrb r0, [r4]
+ blt _0221BA36
+ add r0, r0, #1
+ b _0221BA38
+_0221BA36:
+ sub r0, r0, #1
+_0221BA38:
+ strb r0, [r4]
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ beq _0221BA50
+ ldr r1, [r4, #0x1c]
+ mov r2, #0
+ lsl r1, r1, #0x18
+ ldr r0, [r4, #0x28]
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl FUN_020179E0
+_0221BA50:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _0221BA66
+ ldr r1, [r4, #0x1c]
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+_0221BA66:
+ ldrb r0, [r4, #1]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ pop {r3, r4, pc}
+_0221BA70:
+ mov r3, #0xd4
+ ldrsh r0, [r4, r3]
+ cmp r0, #0
+ beq _0221BA8C
+ mov r0, #1
+ str r0, [r4, #0x20]
+ ldr r1, [r4, #0x1c]
+ ldrsh r3, [r4, r3]
+ lsl r1, r1, #0x18
+ ldr r0, [r4, #0x28]
+ lsr r1, r1, #0x18
+ mov r2, #0
+ bl FUN_020179E0
+_0221BA8C:
+ mov r3, #0xd6
+ ldrsh r0, [r4, r3]
+ cmp r0, #0
+ beq _0221BABA
+ mov r0, #1
+ str r0, [r4, #0x24]
+ ldr r1, [r4, #0x1c]
+ ldrsh r3, [r4, r3]
+ lsl r1, r1, #0x18
+ ldr r0, [r4, #0x28]
+ lsr r1, r1, #0x18
+ mov r2, #3
+ bl FUN_020179E0
+ add sp, #4
+ pop {r3, r4, pc}
+_0221BAAC:
+ ldr r0, [r4, #0x2c]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_0221BABA:
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221BAC0
+MOD08_0221BAC0: ; 0x0221BAC0
+ push {r3, r4, r5, lr}
+ mov r1, #0xf8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #0x2c]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x2c]
+ bl MOD08_02212490
+ str r0, [r4, #0x28]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x18]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ cmp r0, #0
+ bne _0221BB26
+ mov r0, #3
+ b _0221BB28
+_0221BB26:
+ mov r0, #2
+_0221BB28:
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #0x2c]
+ ldr r1, _0221BB38 ; =MOD08_0221B9E8
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221BB38: .word MOD08_0221B9E8
+
+ thumb_func_start MOD08_0221BB3C
+MOD08_0221BB3C: ; 0x0221BB3C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #0x2c]
+ ldr r3, [r4, #0x24]
+ cmp r3, r0
+ beq _0221BB50
+ ldr r1, [r4, #0x28]
+ cmp r1, r0
+ bne _0221BB60
+_0221BB50:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+_0221BB60:
+ mov r1, #0x20
+ ldrsh r2, [r4, r1]
+ cmp r2, #0
+ bge _0221BB82
+ add r2, r3, r2
+ cmp r2, #0
+ ble _0221BB7A
+ str r2, [r4, #0x24]
+ ldrsh r0, [r4, r1]
+ ldr r2, [r4, #0x28]
+ add r0, r2, r0
+ str r0, [r4, #0x28]
+ b _0221BB9A
+_0221BB7A:
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x2c]
+ str r0, [r4, #0x28]
+ b _0221BB9A
+_0221BB82:
+ add r2, r3, r2
+ cmp r2, #0xf
+ bge _0221BB94
+ str r2, [r4, #0x24]
+ ldrsh r0, [r4, r1]
+ ldr r2, [r4, #0x28]
+ add r0, r2, r0
+ str r0, [r4, #0x28]
+ b _0221BB9A
+_0221BB94:
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x2c]
+ str r0, [r4, #0x28]
+_0221BB9A:
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x24]
+ lsl r0, r0, #4
+ orr r1, r0
+ ldr r0, _0221BBB4 ; =0x0400004D
+ strb r1, [r0]
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ pop {r4, pc}
+ .align 2, 0
+_0221BBB4: .word 0x0400004D
+
+ thumb_func_start MOD08_0221BBB8
+MOD08_0221BBB8: ; 0x0221BBB8
+ push {r3, r4, r5, lr}
+ mov r1, #0x30
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0x20]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #4]
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD08_02212498
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022124D8
+ mov r1, #1
+ str r0, [r4, #0x1c]
+ bl FUN_0200C644
+ mov r0, #0x20
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _0221BC0E
+ mov r0, #0
+ b _0221BC10
+_0221BC0E:
+ mov r0, #0xf
+_0221BC10:
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C8F8
+ ldr r0, [r4, #4]
+ ldr r1, _0221BC2C ; =MOD08_0221BB3C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add r1, r4, #0
+ bl MOD08_0221BB3C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221BC2C: .word MOD08_0221BB3C
+
+ thumb_func_start MOD08_0221BC30
+MOD08_0221BC30: ; 0x0221BC30
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ strh r0, [r4, #0xe]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #6]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #8
+ bl MOD08_02212498
+ str r0, [r4, #0x30]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD08_02212498
+ ldr r2, _0221BCFC ; =0xFFFF0000
+ mov r1, #0
+ and r2, r0
+ lsl r0, r0, #0x10
+ str r1, [r4, #0x1c]
+ lsr r2, r2, #0x10
+ str r2, [r4, #0x20]
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ bne _0221BCA6
+ str r1, [r4, #0x20]
+_0221BCA6:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ bne _0221BCB0
+ mov r0, #0xff
+ str r0, [r4, #0x24]
+_0221BCB0:
+ ldr r1, [r4]
+ add r0, r5, #0
+ bl MOD08_02212484
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ bl MOD08_02212468
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _0221BCDA
+ add r0, r5, #0
+ bl MOD08_02212458
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD08_02212460
+ str r0, [r4, #0x18]
+ b _0221BCEE
+_0221BCDA:
+ cmp r0, #1
+ bne _0221BCEE
+ add r0, r5, #0
+ bl MOD08_02212460
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD08_02212458
+ str r0, [r4, #0x18]
+_0221BCEE:
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ bne _0221BCF8
+ bl ErrorHandling
+_0221BCF8:
+ pop {r3, r4, r5, pc}
+ nop
+_0221BCFC: .word 0xFFFF0000
+
+ thumb_func_start MOD08_0221BD00
+MOD08_0221BD00: ; 0x0221BD00
+ ldr r0, [r0, #8]
+ mov r1, #0
+ cmp r0, #0
+ beq _0221BD12
+_0221BD08:
+ ldrh r2, [r0, #0x26]
+ ldrh r3, [r0, #0x24]
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0221BD08
+_0221BD12:
+ cmp r2, r3
+ beq _0221BD18
+ mov r1, #1
+_0221BD18:
+ add r0, r1, #0
+ bx lr
+
+ thumb_func_start MOD08_0221BD1C
+MOD08_0221BD1C: ; 0x0221BD1C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5, #0x38]
+ bl MOD08_0221BD00
+ add r4, r0, #0
+ mov r0, #4
+ ldrsh r0, [r5, r0]
+ ldr r1, [r5, #0x28]
+ cmp r1, r0
+ bge _0221BD3A
+ add r0, r1, #1
+ str r0, [r5, #0x28]
+ pop {r4, r5, r6, pc}
+_0221BD3A:
+ add r0, r5, #0
+ add r0, #0xa8
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221BD62
+ cmp r4, #0
+ bne _0221BD62
+ ldr r0, [r5, #0x34]
+ ldr r1, [r5, #0x38]
+ bl FUN_020133DC
+ ldr r0, [r5, #0x40]
+ add r1, r6, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl MOD08_02228094
+ pop {r4, r5, r6, pc}
+_0221BD62:
+ ldr r1, [r5, #0x1c]
+ ldr r0, [r5, #0x20]
+ cmp r0, r1
+ bgt _0221BD70
+ ldr r0, [r5, #0x24]
+ cmp r0, r1
+ bge _0221BD76
+_0221BD70:
+ ldr r0, [r5, #0x24]
+ cmp r0, #0xff
+ bne _0221BDD4
+_0221BD76:
+ mov r0, #0xa8
+ ldrsh r2, [r5, r0]
+ ldr r1, [r5, #0x38]
+ mov r3, #0xac
+ add r0, r2, #0
+ ldr r2, [r1, #0x20]
+ mul r0, r3
+ ldr r2, [r2]
+ ldr r2, [r2, #4]
+ add r0, r0, r2
+ str r0, [r1, #0x28]
+ mov r0, #0xaa
+ ldrsh r4, [r5, r0]
+ ldr r2, [r5, #0x38]
+ add r1, r4, #0
+ mul r1, r3
+ ldr r3, [r2, #0x20]
+ ldr r3, [r3]
+ ldr r3, [r3, #8]
+ add r1, r1, r3
+ str r1, [r2, #0x2c]
+ ldr r1, [r5, #0x30]
+ cmp r1, #0
+ beq _0221BDD4
+ mov r1, #6
+ ldrsh r1, [r5, r1]
+ add r0, #0xbe
+ bl _s32_div_f
+ ldr r1, [r5, #0x2c]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0201B970
+ mov r1, #0xaa
+ ldrsh r2, [r5, r1]
+ mov r1, #0xac
+ mul r1, r2
+ add r2, r1, r0
+ ldr r1, [r5, #0x38]
+ ldr r0, [r1, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r2, r0
+ str r0, [r1, #0x2c]
+_0221BDD4:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221BDD8
+MOD08_0221BDD8: ; 0x0221BDD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ mov r1, #0x41
+ lsl r1, r1, #2
+ add r6, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x3c
+ bl MOD08_02227B70
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_0221BC30
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02217C1C
+ add r5, r0, #0
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ add r2, sp, #0x18
+ bl MOD08_0222771C
+ ldr r1, [r4, #0x18]
+ add r0, r6, #0
+ add r2, sp, #0xc
+ bl MOD08_0222771C
+ ldr r0, [sp, #0x18]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [sp, #0xc]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r0, [sp, #0x1c]
+ mov r1, #0xac
+ bl _s32_div_f
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x10]
+ mov r1, #0xac
+ bl _s32_div_f
+ mov r1, #0xe
+ ldrsh r1, [r4, r1]
+ add r2, r1, #0
+ mul r2, r5
+ add r0, r0, r2
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldrh r0, [r4, #6]
+ lsl r1, r6, #0x10
+ mov r2, #0xc
+ str r0, [sp, #4]
+ ldrsh r2, [r4, r2]
+ add r0, r4, #0
+ add r0, #0xa8
+ add r3, r2, #0
+ mul r3, r5
+ add r2, r7, r3
+ ldr r3, [sp, #8]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ cmp r5, #0
+ ldr r2, _0221BEFC ; =0x00005C71
+ ble _0221BE90
+ ldr r1, _0221BF00 ; =0x00000E38
+ add r0, r4, #0
+ add r0, #0xf0
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+ b _0221BEA0
+_0221BE90:
+ ldr r1, _0221BF04 ; =0x00003FFF
+ add r0, r4, #0
+ add r0, #0xf0
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+_0221BEA0:
+ ldr r0, [r4, #0x20]
+ mov r5, #0
+ cmp r0, #0
+ ble _0221BEBA
+ add r6, r4, #0
+ add r6, #0xa8
+_0221BEAC:
+ add r0, r6, #0
+ bl MOD08_02217ECC
+ ldr r0, [r4, #0x20]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0221BEAC
+_0221BEBA:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0xff
+ beq _0221BEC4
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+_0221BEC4:
+ mov r0, #0xa8
+ ldrsh r3, [r4, r0]
+ ldr r1, [r4, #0x38]
+ mov r2, #0xac
+ add r0, r3, #0
+ ldr r3, [r1, #0x20]
+ mul r0, r2
+ ldr r3, [r3]
+ ldr r3, [r3, #4]
+ add r0, r0, r3
+ str r0, [r1, #0x28]
+ mov r1, #0xaa
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x38]
+ mul r2, r1
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r1, r2, r1
+ str r1, [r0, #0x2c]
+ ldr r0, [r4, #0x40]
+ ldr r1, _0221BF08 ; =MOD08_0221BD1C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0221BEFC: .word 0x00005C71
+_0221BF00: .word 0x00000E38
+_0221BF04: .word 0x00003FFF
+_0221BF08: .word MOD08_0221BD1C
+
+ thumb_func_start MOD08_0221BF0C
+MOD08_0221BF0C: ; 0x0221BF0C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ mov r1, #0x41
+ lsl r1, r1, #2
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x3c
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #6]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #4]
+ mov r0, #0
+ str r0, [r4, #0x28]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ ldr r2, _0221C098 ; =0xFFFF0000
+ mov r1, #0
+ and r2, r0
+ lsl r0, r0, #0x10
+ str r1, [r4, #0x1c]
+ lsr r2, r2, #0x10
+ str r2, [r4, #0x20]
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ bne _0221BF7E
+ str r1, [r4, #0x20]
+_0221BF7E:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ bne _0221BF88
+ mov r0, #0xff
+ str r0, [r4, #0x24]
+_0221BF88:
+ ldr r1, [r4]
+ add r0, r5, #0
+ bl MOD08_02212484
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ bl MOD08_02212468
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _0221BFB0
+ add r0, r5, #0
+ bl MOD08_02212458
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD08_02212458
+ b _0221BFBE
+_0221BFB0:
+ add r0, r5, #0
+ bl MOD08_02212460
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD08_02212460
+_0221BFBE:
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ bne _0221BFCA
+ bl ErrorHandling
+_0221BFCA:
+ ldr r1, [r4, #0x14]
+ add r0, r5, #0
+ add r2, sp, #0x14
+ bl MOD08_0222771C
+ ldr r1, [r4, #0x18]
+ add r0, r5, #0
+ add r2, sp, #8
+ bl MOD08_0222771C
+ cmp r6, #0
+ bne _0221BFEE
+ add r0, sp, #0x14
+ bl MOD08_0222795C
+ ldr r0, [sp, #8]
+ str r0, [sp, #0x14]
+ b _0221BFF8
+_0221BFEE:
+ add r0, sp, #8
+ bl MOD08_0222795C
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #8]
+_0221BFF8:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r5, r0, #0
+ ldr r0, [sp, #8]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r0, [sp, #0xc]
+ mov r1, #0xac
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldrh r0, [r4, #6]
+ lsl r1, r5, #0x10
+ lsl r2, r6, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r3, r7, #0x10
+ add r0, #0xa8
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ ldr r0, [r4, #0x20]
+ mov r5, #0
+ cmp r0, #0
+ ble _0221C056
+ add r6, r4, #0
+ add r6, #0xa8
+_0221C048:
+ add r0, r6, #0
+ bl MOD08_02217ECC
+ ldr r0, [r4, #0x20]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0221C048
+_0221C056:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0xff
+ beq _0221C060
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+_0221C060:
+ mov r0, #0xa8
+ ldrsh r3, [r4, r0]
+ ldr r1, [r4, #0x38]
+ mov r2, #0xac
+ add r0, r3, #0
+ ldr r3, [r1, #0x20]
+ mul r0, r2
+ ldr r3, [r3]
+ ldr r3, [r3, #4]
+ add r0, r0, r3
+ str r0, [r1, #0x28]
+ mov r1, #0xaa
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x38]
+ mul r2, r1
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r1, r2, r1
+ str r1, [r0, #0x2c]
+ ldr r0, [r4, #0x40]
+ ldr r1, _0221C09C ; =MOD08_0221BD1C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221C098: .word 0xFFFF0000
+_0221C09C: .word MOD08_0221BD1C
+
+ thumb_func_start MOD08_0221C0A0
+MOD08_0221C0A0: ; 0x0221C0A0
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5, #0x38]
+ bl MOD08_0221BD00
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xa8
+ add r1, #0xcc
+ bl MOD08_02217F9C
+ cmp r0, #0
+ bne _0221C0DA
+ cmp r4, #0
+ bne _0221C0DA
+ ldr r0, [r5, #0x34]
+ ldr r1, [r5, #0x38]
+ bl FUN_020133DC
+ ldr r0, [r5, #0x40]
+ add r1, r6, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl MOD08_02228094
+ pop {r4, r5, r6, pc}
+_0221C0DA:
+ mov r1, #0xa8
+ ldrsh r1, [r5, r1]
+ ldr r0, [r5, #0x38]
+ mov r2, #0xac
+ add r3, r1, #0
+ ldr r1, [r0, #0x20]
+ mul r3, r2
+ ldr r1, [r1]
+ ldr r1, [r1, #4]
+ add r1, r3, r1
+ str r1, [r0, #0x28]
+ mov r1, #0xaa
+ ldrsh r1, [r5, r1]
+ ldr r0, [r5, #0x38]
+ mul r2, r1
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r1, r2, r1
+ str r1, [r0, #0x2c]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221C104
+MOD08_0221C104: ; 0x0221C104
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ mov r1, #0x41
+ lsl r1, r1, #2
+ add r6, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x3c
+ bl MOD08_02227B70
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_0221BC30
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02217C1C
+ add r5, r0, #0
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ add r2, sp, #0x20
+ bl MOD08_0222771C
+ ldr r1, [r4, #0x18]
+ add r0, r6, #0
+ add r2, sp, #0x14
+ bl MOD08_0222771C
+ ldr r0, [sp, #0x20]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [sp, #0x14]
+ mov r1, #0xac
+ bl _s32_div_f
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x24]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r0, [sp, #0x18]
+ mov r1, #0xac
+ bl _s32_div_f
+ lsl r1, r7, #0x10
+ asr r1, r1, #0x10
+ str r1, [sp]
+ mov r1, #0xe
+ ldrsh r1, [r4, r1]
+ mov r3, #0xc
+ add r2, r1, #0
+ mul r2, r5
+ add r0, r0, r2
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldrh r0, [r4, #6]
+ lsl r2, r6, #0x10
+ add r1, r4, #0
+ str r0, [sp, #8]
+ ldr r0, [r4, #8]
+ add r1, #0xcc
+ lsl r0, r0, #0xc
+ neg r0, r0
+ str r0, [sp, #0xc]
+ ldrsh r6, [r4, r3]
+ add r0, r4, #0
+ add r0, #0xa8
+ add r3, r6, #0
+ ldr r6, [sp, #0x10]
+ mul r3, r5
+ add r3, r6, r3
+ lsl r3, r3, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217F50
+ cmp r5, #0
+ ldr r2, _0221C23C ; =0x00005C71
+ ble _0221C1CA
+ ldr r1, _0221C240 ; =0x00000E38
+ add r0, r4, #0
+ add r0, #0xf0
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+ b _0221C1DA
+_0221C1CA:
+ ldr r1, _0221C244 ; =0x00003FFF
+ add r0, r4, #0
+ add r0, #0xf0
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+_0221C1DA:
+ ldr r0, [r4, #0x20]
+ mov r5, #0
+ cmp r0, #0
+ ble _0221C1FA
+ add r6, r4, #0
+ add r7, r4, #0
+ add r6, #0xa8
+ add r7, #0xcc
+_0221C1EA:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02217F9C
+ ldr r0, [r4, #0x20]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0221C1EA
+_0221C1FA:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0xff
+ beq _0221C204
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+_0221C204:
+ mov r0, #0xa8
+ ldrsh r3, [r4, r0]
+ ldr r1, [r4, #0x38]
+ mov r2, #0xac
+ add r0, r3, #0
+ ldr r3, [r1, #0x20]
+ mul r0, r2
+ ldr r3, [r3]
+ ldr r3, [r3, #4]
+ add r0, r0, r3
+ str r0, [r1, #0x28]
+ mov r1, #0xaa
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x38]
+ mul r2, r1
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r1, r2, r1
+ str r1, [r0, #0x2c]
+ ldr r0, [r4, #0x40]
+ ldr r1, _0221C248 ; =MOD08_0221C0A0
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0221C23C: .word 0x00005C71
+_0221C240: .word 0x00000E38
+_0221C244: .word 0x00003FFF
+_0221C248: .word MOD08_0221C0A0
+
+ thumb_func_start MOD08_0221C24C
+MOD08_0221C24C: ; 0x0221C24C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5, #0x38]
+ bl MOD08_0221BD00
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0x58
+ bl MOD08_02217D98
+ cmp r0, #0
+ bne _0221C282
+ cmp r4, #0
+ bne _0221C282
+ ldr r0, [r5, #0x34]
+ ldr r1, [r5, #0x38]
+ bl FUN_020133DC
+ ldr r0, [r5, #0x40]
+ add r1, r6, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+_0221C282:
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r2, [r0]
+ mov r0, #0x5a
+ ldrsh r0, [r5, r0]
+ mov r3, #0xac
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r2, r1
+ add r2, r5, #0
+ add r2, #0x88
+ ldr r4, [r2]
+ mov r2, #0x58
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, #0x38]
+ mul r3, r2
+ ldr r2, [r0, #0x20]
+ add r3, r4, r3
+ ldr r2, [r2]
+ ldr r2, [r2, #4]
+ add r2, r3, r2
+ str r2, [r0, #0x28]
+ ldr r2, [r5, #0x38]
+ ldr r0, [r2, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r2, #0x2c]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221C2BC
+MOD08_0221C2BC: ; 0x0221C2BC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0x94
+ add r4, r0, #0
+ bl MOD08_02228064
+ add r5, r0, #0
+ add r1, r5, #0
+ add r0, r4, #0
+ add r1, #0x3c
+ bl MOD08_02227B70
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r5]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r5, #4]
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r5, #0xc]
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r5, #8]
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r5, #0x10]
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r5, #0x14]
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD08_02212498
+ str r0, [r5, #0x18]
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD08_02212498
+ str r0, [r5, #0x1c]
+ add r0, r4, #0
+ mov r1, #8
+ bl MOD08_02212498
+ str r0, [r5, #0x20]
+ cmp r0, #0
+ bne _0221C33A
+ add r0, r4, #0
+ bl MOD08_02212458
+ b _0221C340
+_0221C33A:
+ add r0, r4, #0
+ bl MOD08_02212460
+_0221C340:
+ str r0, [r5, #0x24]
+ add r2, r5, #0
+ ldr r1, [r5, #0x24]
+ add r0, r4, #0
+ add r2, #0x88
+ bl MOD08_0222771C
+ ldr r1, [r5]
+ add r0, r4, #0
+ bl MOD08_02212484
+ str r0, [r5, #0x38]
+ add r0, r4, #0
+ mov r1, #9
+ bl MOD08_02212498
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212478
+ str r0, [r5, #0x34]
+ ldr r1, [r5, #4]
+ ldr r0, _0221C420 ; =0x0000FFFF
+ mul r0, r1
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ bl _s32_div_f
+ add r4, r0, #0
+ ldr r1, [r5, #0xc]
+ ldr r0, _0221C420 ; =0x0000FFFF
+ mul r0, r1
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r1, [r5, #8]
+ ldr r0, _0221C420 ; =0x0000FFFF
+ mul r0, r1
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r1, [r5, #0x10]
+ ldr r0, _0221C420 ; =0x0000FFFF
+ mul r0, r1
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r5, #0x14]
+ lsl r1, r4, #0x10
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x18]
+ lsl r2, r6, #0x10
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x1c]
+ lsl r3, r7, #0x10
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0x58
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x10
+ bl MOD08_02217D14
+ add r0, r5, #0
+ add r0, #0x58
+ bl MOD08_02217D98
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r2, [r0]
+ mov r0, #0x5a
+ ldrsh r0, [r5, r0]
+ mov r3, #0x58
+ mov r4, #0xac
+ add r1, r0, #0
+ add r0, r5, #0
+ mul r1, r4
+ ldrsh r3, [r5, r3]
+ add r0, #0x88
+ add r2, r2, r1
+ ldr r1, [r5, #0x38]
+ ldr r0, [r0]
+ mul r4, r3
+ add r3, r0, r4
+ ldr r0, [r1, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r3, r0
+ str r0, [r1, #0x28]
+ ldr r1, [r5, #0x38]
+ ldr r0, [r1, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r2, r0
+ str r0, [r1, #0x2c]
+ ldr r0, [r5, #0x40]
+ ldr r1, _0221C424 ; =MOD08_0221C24C
+ add r2, r5, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221C420: .word 0x0000FFFF
+_0221C424: .word MOD08_0221C24C
+
+ thumb_func_start MOD08_0221C428
+MOD08_0221C428: ; 0x0221C428
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C608
+ cmp r0, #0
+ ldr r0, [r4, #0x1c]
+ bne _0221C44E
+ bl FUN_0200C3DC
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+_0221C44E:
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221C45C
+MOD08_0221C45C: ; 0x0221C45C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x20
+ add r5, r0, #0
+ add r4, r3, #0
+ bl MOD08_02228064
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ str r4, [r7, #0x1c]
+ bl MOD08_02212498
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_0200C82C
+ ldr r0, [r7, #4]
+ ldr r1, _0221C4A0 ; =MOD08_0221C428
+ add r2, r7, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221C4A0: .word MOD08_0221C428
+
+ thumb_func_start MOD08_0221C4A4
+MOD08_0221C4A4: ; 0x0221C4A4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _0221C4B6
+ cmp r0, #1
+ beq _0221C534
+ b _0221C59E
+_0221C4B6:
+ ldr r1, [r5, #0x34]
+ ldr r0, _0221C5C4 ; =0x0222C4D4
+ lsl r2, r1, #1
+ ldrsh r4, [r0, r2]
+ add r0, r1, #1
+ str r0, [r5, #0x34]
+ cmp r4, #0xff
+ beq _0221C506
+ cmp r4, #0
+ bne _0221C4FA
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C6A4
+ add r6, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD08_02215574
+ cmp r6, r0
+ ldr r0, [r5, #4]
+ bne _0221C4EE
+ mov r1, #2
+ bl MOD08_02215600
+ add r1, r0, #0
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C6B0
+ b _0221C4FA
+_0221C4EE:
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C6B0
+_0221C4FA:
+ ldr r0, [r5, #0x1c]
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200C82C
+ b _0221C5B4
+_0221C506:
+ ldr r0, [r5, #0x1c]
+ mov r1, #2
+ bl FUN_0200C840
+ add r0, r5, #0
+ ldr r2, _0221C5C8 ; =0x00001FFF
+ add r0, #0x20
+ mov r1, #0
+ mov r3, #8
+ bl MOD08_02218008
+ mov r1, #7
+ ldr r0, [r5, #0x1c]
+ mvn r1, r1
+ mov r2, #0x10
+ bl FUN_0200C8DC
+ mov r0, #0
+ str r0, [r5, #0x34]
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _0221C5B4
+_0221C534:
+ add r0, r5, #0
+ add r0, #0x20
+ bl MOD08_02218058
+ cmp r0, #1
+ bne _0221C54E
+ ldr r1, [r5, #0x20]
+ ldr r0, [r5, #0x1c]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0200C898
+ b _0221C5B4
+_0221C54E:
+ ldr r0, [r5, #0x34]
+ cmp r0, #3
+ ble _0221C55C
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _0221C5B4
+_0221C55C:
+ add r0, r0, #1
+ str r0, [r5, #0x34]
+ cmp r0, #1
+ beq _0221C56E
+ cmp r0, #2
+ beq _0221C57E
+ cmp r0, #3
+ beq _0221C58E
+ b _0221C5B4
+_0221C56E:
+ add r0, r5, #0
+ ldr r1, _0221C5C8 ; =0x00001FFF
+ ldr r2, _0221C5CC ; =0xFFFFE001
+ add r0, #0x20
+ mov r3, #8
+ bl MOD08_02218008
+ b _0221C5B4
+_0221C57E:
+ ldr r1, _0221C5CC ; =0xFFFFE001
+ add r0, r5, #0
+ add r0, #0x20
+ lsr r2, r1, #0x13
+ mov r3, #8
+ bl MOD08_02218008
+ b _0221C5B4
+_0221C58E:
+ add r0, r5, #0
+ ldr r1, _0221C5C8 ; =0x00001FFF
+ add r0, #0x20
+ mov r2, #0
+ mov r3, #8
+ bl MOD08_02218008
+ b _0221C5B4
+_0221C59E:
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C3DC
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+_0221C5B4:
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [r5, #0x10]
+ bl FUN_0200BC1C
+ pop {r4, r5, r6, pc}
+ nop
+_0221C5C4: .word 0x0222C4D4
+_0221C5C8: .word 0x00001FFF
+_0221C5CC: .word 0xFFFFE001
+
+ thumb_func_start MOD08_0221C5D0
+MOD08_0221C5D0: ; 0x0221C5D0
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x38
+ add r5, r0, #0
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ str r6, [r4, #0x1c]
+ mov r0, #0
+ str r0, [r4, #0x34]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r2, r0, #0
+ ldr r0, [r4, #0x1c]
+ add r1, r6, #0
+ bl FUN_0200C714
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ ldr r0, [r4, #0x1c]
+ bne _0221C630
+ mov r1, #1
+ bl FUN_0200C5C0
+ b _0221C636
+_0221C630:
+ mov r1, #0
+ bl FUN_0200C5C0
+_0221C636:
+ ldr r0, [r4, #4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #0xc
+ bl FUN_0200C82C
+ ldr r0, [r4, #4]
+ ldr r1, _0221C65C ; =MOD08_0221C4A4
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221C65C: .word MOD08_0221C4A4
+
+ thumb_func_start MOD08_0221C660
+MOD08_0221C660: ; 0x0221C660
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C608
+ cmp r0, #0
+ ldr r0, [r4, #0x1c]
+ bne _0221C686
+ bl FUN_0200C3DC
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+_0221C686:
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221C694
+MOD08_0221C694: ; 0x0221C694
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x38
+ add r5, r0, #0
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ str r6, [r4, #0x1c]
+ bl MOD08_02212460
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _0221C6DC
+ mov r6, #0x48
+ mov r2, #0x20
+ mov r5, #0
+ b _0221C6F2
+_0221C6DC:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221C6EE
+ mov r2, #0x7e
+ mov r5, #1
+ b _0221C6F2
+_0221C6EE:
+ mov r2, #0x20
+ mov r5, #0
+_0221C6F2:
+ ldr r0, [r4, #0x1c]
+ add r1, r6, #0
+ bl FUN_0200C714
+ ldr r0, [r4, #0x1c]
+ add r1, r5, #0
+ bl FUN_0200C5C0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl MOD08_02215600
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C6B0
+ ldr r0, [r4, #4]
+ ldr r1, _0221C720 ; =MOD08_0221C660
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221C720: .word MOD08_0221C660
+
+ thumb_func_start MOD08_0221C724
+MOD08_0221C724: ; 0x0221C724
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhi _0221C816
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221C73E: ; jump table
+ .short _0221C746 - _0221C73E - 2 ; case 0
+ .short _0221C76C - _0221C73E - 2 ; case 1
+ .short _0221C784 - _0221C73E - 2 ; case 2
+ .short _0221C7C0 - _0221C73E - 2 ; case 3
+_0221C746:
+ mov r0, #0xa0
+ str r0, [sp]
+ mov r3, #0x70
+ mov r0, #1
+ str r3, [sp, #4]
+ mov r2, #0x15
+ str r2, [sp, #8]
+ lsl r0, r0, #0x12
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0x24
+ add r1, #0x48
+ sub r2, #0x33
+ bl MOD08_02217F50
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221C82E
+_0221C76C:
+ add r0, r4, #0
+ ldr r2, [r4, #0x1c]
+ add r0, #0x24
+ add r1, #0x48
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _0221C82E
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221C82E
+_0221C784:
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _0221C82E
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C90C
+ add r0, r4, #0
+ add r2, r4, #0
+ mov r1, #0x10
+ add r0, #0x20
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x21
+ strb r1, [r0]
+ add r1, r4, #0
+ add r1, #0x20
+ add r2, #0x21
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4, #4]
+ bl MOD08_02227994
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221C82E
+_0221C7C0:
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0221C7D8
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0221C7D8:
+ add r0, r4, #0
+ add r0, #0x21
+ ldrb r0, [r0]
+ cmp r0, #0x10
+ bhs _0221C7F0
+ add r0, r4, #0
+ add r0, #0x21
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x21
+ strb r1, [r0]
+_0221C7F0:
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x21
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221C840 ; =0x04000052
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0221C82E
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221C82E
+_0221C816:
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_0221C82E:
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_0221C840: .word 0x04000052
+
+ thumb_func_start MOD08_0221C844
+MOD08_0221C844: ; 0x0221C844
+ push {r4, r5, r6, lr}
+ mov r1, #0x6c
+ add r6, r0, #0
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ mov r1, #0x1d
+ str r5, [r4, #0x1c]
+ add r0, r5, #0
+ mvn r1, r1
+ mov r2, #0xa0
+ bl FUN_0200C714
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl MOD08_02215600
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C6B0
+ ldr r0, [r4, #4]
+ ldr r1, _0221C884 ; =MOD08_0221C724
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0221C884: .word MOD08_0221C724
+
+ thumb_func_start MOD08_0221C888
+MOD08_0221C888: ; 0x0221C888
+ push {r4, lr}
+ mov r1, #0
+ add r4, r0, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ beq _0221C89E
+ add r0, r4, #0
+ bl MOD08_02218BD4
+ pop {r4, pc}
+_0221C89E:
+ add r0, r4, #0
+ bl MOD08_02218C04
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221C8A8
+MOD08_0221C8A8: ; 0x0221C8A8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0x18
+ bls _0221C8B6
+ b _0221CAAA
+_0221C8B6:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221C8C2: ; jump table
+ .short _0221C8F4 - _0221C8C2 - 2 ; case 0
+ .short _0221CAAA - _0221C8C2 - 2 ; case 1
+ .short _0221CAAA - _0221C8C2 - 2 ; case 2
+ .short _0221CAAA - _0221C8C2 - 2 ; case 3
+ .short _0221CAAA - _0221C8C2 - 2 ; case 4
+ .short _0221C9A0 - _0221C8C2 - 2 ; case 5
+ .short _0221C9A0 - _0221C8C2 - 2 ; case 6
+ .short _0221C9CA - _0221C8C2 - 2 ; case 7
+ .short _0221CAAA - _0221C8C2 - 2 ; case 8
+ .short _0221CAAA - _0221C8C2 - 2 ; case 9
+ .short _0221C9E4 - _0221C8C2 - 2 ; case 10
+ .short _0221C9E4 - _0221C8C2 - 2 ; case 11
+ .short _0221CA0E - _0221C8C2 - 2 ; case 12
+ .short _0221CAAA - _0221C8C2 - 2 ; case 13
+ .short _0221CAAA - _0221C8C2 - 2 ; case 14
+ .short _0221CA26 - _0221C8C2 - 2 ; case 15
+ .short _0221CA26 - _0221C8C2 - 2 ; case 16
+ .short _0221CA50 - _0221C8C2 - 2 ; case 17
+ .short _0221CAAA - _0221C8C2 - 2 ; case 18
+ .short _0221CAAA - _0221C8C2 - 2 ; case 19
+ .short _0221CAAA - _0221C8C2 - 2 ; case 20
+ .short _0221CAAA - _0221C8C2 - 2 ; case 21
+ .short _0221CA68 - _0221C8C2 - 2 ; case 22
+ .short _0221CA68 - _0221C8C2 - 2 ; case 23
+ .short _0221CA92 - _0221C8C2 - 2 ; case 24
+_0221C8F4:
+ ldr r0, [r4, #0x34]
+ ldr r1, _0221CAF0 ; =0xFFFF1FFF
+ cmp r0, #0
+ bne _0221C94E
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ add r5, r0, #0
+ and r2, r1
+ lsr r1, r0, #0xd
+ orr r1, r2
+ str r1, [r0]
+ add r5, #0x48
+ ldrh r3, [r5]
+ mov r2, #0x3f
+ mov r1, #0xf
+ bic r3, r2
+ orr r1, r3
+ mov r3, #0x20
+ orr r1, r3
+ strh r1, [r5]
+ add r5, r0, #0
+ add r5, #0x4a
+ ldrh r6, [r5]
+ mov r1, #0x1f
+ bic r6, r2
+ orr r1, r6
+ orr r1, r3
+ strh r1, [r5]
+ add r1, r0, #0
+ mov r2, #0x80
+ add r1, #0x40
+ strh r2, [r1]
+ ldr r1, _0221CAF4 ; =0x0000A0C0
+ add r0, #0x44
+ strh r1, [r0]
+ bl FUN_0201B9EC
+ mov r1, #5
+ bl _s32_div_f
+ add r1, #0x23
+ add sp, #4
+ str r1, [r4, #0x3c]
+ pop {r3, r4, r5, r6, pc}
+_0221C94E:
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ add r5, r0, #0
+ and r2, r1
+ lsr r1, r0, #0xd
+ orr r1, r2
+ str r1, [r0]
+ add r5, #0x48
+ ldrh r3, [r5]
+ mov r2, #0x3f
+ mov r1, #0xf
+ bic r3, r2
+ orr r1, r3
+ mov r3, #0x20
+ orr r1, r3
+ strh r1, [r5]
+ add r5, r0, #0
+ add r5, #0x4a
+ ldrh r6, [r5]
+ mov r1, #0x1f
+ bic r6, r2
+ orr r1, r6
+ orr r1, r3
+ strh r1, [r5]
+ add r1, r0, #0
+ lsl r2, r3, #0xa
+ add r1, #0x40
+ strh r2, [r1]
+ ldr r1, _0221CAF8 ; =0x000056C0
+ add r0, #0x44
+ strh r1, [r0]
+ bl FUN_0201B9EC
+ mov r1, #5
+ bl _s32_div_f
+ add r1, #0x23
+ add sp, #4
+ str r1, [r4, #0x3c]
+ pop {r3, r4, r5, r6, pc}
+_0221C9A0:
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ beq _0221C9D0
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ bne _0221C9D0
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221C9CA:
+ ldr r0, [r4, #0x38]
+ cmp r0, #1
+ bne _0221C9D2
+_0221C9D0:
+ b _0221CAEC
+_0221C9D2:
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221C9E4:
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ beq _0221CAEC
+ ldr r0, [r4, #0x38]
+ cmp r0, #1
+ bne _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CA0E:
+ ldr r0, [r4, #0x38]
+ cmp r0, #2
+ beq _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CA26:
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ beq _0221CAEC
+ ldr r0, [r4, #0x38]
+ cmp r0, #2
+ bne _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CA50:
+ ldr r0, [r4, #0x38]
+ cmp r0, #3
+ beq _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CA68:
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ beq _0221CAEC
+ ldr r0, [r4, #0x38]
+ cmp r0, #3
+ bne _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #8
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CA92:
+ ldr r0, [r4, #0x38]
+ cmp r0, #4
+ beq _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #8
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CAAA:
+ ldr r1, [r4, #0x3c]
+ cmp r0, r1
+ ble _0221CAEC
+ ldr r0, [r4, #0x38]
+ cmp r0, #0x14
+ ldr r0, [r4, #0x1c]
+ bge _0221CAE6
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add r1, sp, #0
+ ldr r0, [r4, #0x1c]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r0, sp, #0
+ mov r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x82
+ ble _0221CADC
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C644
+_0221CADC:
+ ldr r0, [r4, #0x38]
+ add sp, #4
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ pop {r3, r4, r5, r6, pc}
+_0221CAE6:
+ mov r1, #0
+ bl FUN_0200C644
+_0221CAEC:
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0221CAF0: .word 0xFFFF1FFF
+_0221CAF4: .word 0x0000A0C0
+_0221CAF8: .word 0x000056C0
+
+ thumb_func_start MOD08_0221CAFC
+MOD08_0221CAFC: ; 0x0221CAFC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _0221CB0E
+ add r0, r4, #0
+ bl MOD08_0221C8A8
+_0221CB0E:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ ldrb r1, [r4]
+ ldr r0, [r4, #0x24]
+ cmp r1, r0
+ blt _0221CB66
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0221CB74 ; =0xFFFF1FFF
+ and r1, r2
+ add r2, r0, #0
+ str r1, [r0]
+ add r2, #0x48
+ ldrh r3, [r2]
+ mov r1, #0x3f
+ bic r3, r1
+ strh r3, [r2]
+ add r2, r0, #0
+ add r2, #0x4a
+ ldrh r3, [r2]
+ bic r3, r1
+ strh r3, [r2]
+ add r2, r0, #0
+ mov r1, #0
+ add r2, #0x40
+ strh r1, [r2]
+ add r0, #0x44
+ strh r1, [r0]
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C644
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+_0221CB66:
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221CB74: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_0221CB78
+MOD08_0221CB78: ; 0x0221CB78
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x40
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #0x20]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #0x24]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0x28]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0x2c]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #0x30]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #0x20]
+ bl MOD08_022124D8
+ str r0, [r4, #0x1c]
+ mov r0, #0
+ str r0, [r4, #0x38]
+ ldr r1, [r4, #0x28]
+ cmp r1, #0xff
+ beq _0221CBEA
+ add r0, r5, #0
+ bl MOD08_02215600
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C6B0
+_0221CBEA:
+ ldr r1, [r4, #0x2c]
+ cmp r1, #0xff
+ beq _0221CBF6
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C6C4
+_0221CBF6:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ beq _0221CC28
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ cmp r0, #2
+ beq _0221CC18
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ cmp r0, #3
+ bne _0221CC28
+_0221CC18:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+_0221CC28:
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212460
+ str r0, [sp]
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0xff
+ beq _0221CC76
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227468
+ add r6, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD08_02227468
+ cmp r7, #3
+ bhi _0221CC76
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221CC6A: ; jump table
+ .short _0221CC72 - _0221CC6A - 2 ; case 0
+ .short _0221CCFC - _0221CC6A - 2 ; case 1
+ .short _0221CCB8 - _0221CC6A - 2 ; case 2
+ .short _0221CD40 - _0221CC6A - 2 ; case 3
+_0221CC72:
+ cmp r6, #5
+ bls _0221CC78
+_0221CC76:
+ b _0221CD82
+_0221CC78:
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221CC84: ; jump table
+ .short _0221CD82 - _0221CC84 - 2 ; case 0
+ .short _0221CD82 - _0221CC84 - 2 ; case 1
+ .short _0221CC90 - _0221CC84 - 2 ; case 2
+ .short _0221CC9A - _0221CC84 - 2 ; case 3
+ .short _0221CCA4 - _0221CC84 - 2 ; case 4
+ .short _0221CCAE - _0221CC84 - 2 ; case 5
+_0221CC90:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CC9A:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCA4:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCAE:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCB8:
+ cmp r6, #5
+ bhi _0221CD82
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221CCC8: ; jump table
+ .short _0221CD82 - _0221CCC8 - 2 ; case 0
+ .short _0221CD82 - _0221CCC8 - 2 ; case 1
+ .short _0221CCD4 - _0221CCC8 - 2 ; case 2
+ .short _0221CCDE - _0221CCC8 - 2 ; case 3
+ .short _0221CCE8 - _0221CCC8 - 2 ; case 4
+ .short _0221CCF2 - _0221CCC8 - 2 ; case 5
+_0221CCD4:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCDE:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCE8:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCF2:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCFC:
+ cmp r0, #5
+ bhi _0221CD82
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221CD0C: ; jump table
+ .short _0221CD82 - _0221CD0C - 2 ; case 0
+ .short _0221CD82 - _0221CD0C - 2 ; case 1
+ .short _0221CD18 - _0221CD0C - 2 ; case 2
+ .short _0221CD22 - _0221CD0C - 2 ; case 3
+ .short _0221CD2C - _0221CD0C - 2 ; case 4
+ .short _0221CD36 - _0221CD0C - 2 ; case 5
+_0221CD18:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD22:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD2C:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD36:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD40:
+ cmp r0, #5
+ bhi _0221CD82
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221CD50: ; jump table
+ .short _0221CD82 - _0221CD50 - 2 ; case 0
+ .short _0221CD82 - _0221CD50 - 2 ; case 1
+ .short _0221CD5C - _0221CD50 - 2 ; case 2
+ .short _0221CD66 - _0221CD50 - 2 ; case 3
+ .short _0221CD70 - _0221CD50 - 2 ; case 4
+ .short _0221CD7A - _0221CD50 - 2 ; case 5
+_0221CD5C:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD66:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD70:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD7A:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+_0221CD82:
+ ldr r0, [r4, #4]
+ ldr r1, _0221CD90 ; =MOD08_0221CAFC
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221CD90: .word MOD08_0221CAFC
+
+ thumb_func_start MOD08_0221CD94
+MOD08_0221CD94: ; 0x0221CD94
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r2, r0, #0
+ ldr r0, [r6, #0x2c]
+ cmp r0, #0
+ bne _0221CDB0
+ ldr r0, [r6, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r6, #0
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+_0221CDB0:
+ sub r0, r0, #1
+ str r0, [r6, #0x2c]
+ mov r4, #0
+ add r5, r6, #0
+_0221CDB8:
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _0221CDC2
+ bl FUN_0200C5A8
+_0221CDC2:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0221CDB8
+ ldr r0, [r6, #0xc]
+ bl FUN_0200BC1C
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221CDD4
+MOD08_0221CDD4: ; 0x0221CDD4
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x34
+ add r4, r0, #0
+ bl MOD08_02228064
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD08_02227B70
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ bne _0221CDF8
+ mov r0, #3
+ b _0221CE00
+_0221CDF8:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_02212498
+_0221CE00:
+ ldr r5, _0221CE38 ; =0x0222D5A0
+ str r0, [r7, #0x2c]
+ mov r6, #0
+ add r4, r7, #0
+_0221CE08:
+ ldr r0, [r7, #4]
+ add r1, r6, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _0221CE1C
+ ldr r1, [r5]
+ bl FUN_0200C6C4
+_0221CE1C:
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0221CE08
+ ldr r0, [r7, #4]
+ ldr r1, _0221CE3C ; =MOD08_0221CD94
+ add r2, r7, #0
+ bl MOD08_02212400
+ add r1, r7, #0
+ bl MOD08_0221CD94
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221CE38: .word 0x0222D5A0
+_0221CE3C: .word MOD08_0221CD94
+
+ thumb_func_start MOD08_0221CE40
+MOD08_0221CE40: ; 0x0221CE40
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r5, #8]
+ cmp r0, #0
+ beq _0221CE54
+ cmp r0, #1
+ beq _0221CE9A
+ b _0221CEB2
+_0221CE54:
+ mov r0, #0
+ str r0, [r5]
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ bl MOD08_022155C4
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD08_02218998
+ add r6, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD08_02212014
+ mov r1, #0xc8
+ str r1, [sp]
+ mov r3, #2
+ str r4, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ str r6, [sp, #0xc]
+ str r0, [sp, #0x10]
+ add r0, r1, #0
+ mov r1, #0xa0
+ mov r2, #0xb6
+ lsl r3, r3, #0x10
+ bl MOD08_022188DC
+ str r0, [r5, #0x24]
+ ldrb r0, [r5, #8]
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r5, #8]
+ pop {r3, r4, r5, r6, pc}
+_0221CE9A:
+ ldr r0, [r5]
+ add r1, r0, #1
+ str r1, [r5]
+ ldr r0, [r5, #4]
+ cmp r1, r0
+ blt _0221CEC0
+ ldr r0, [r5, #0x24]
+ bl MOD08_0221894C
+ ldrb r0, [r5, #8]
+ add r0, r0, #1
+ strb r0, [r5, #8]
+_0221CEB2:
+ ldr r0, [r5, #0xc]
+ add r1, r4, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FUN_02016A18
+_0221CEC0:
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221CEC4
+MOD08_0221CEC4: ; 0x0221CEC4
+ push {r3, r4, r5, lr}
+ mov r1, #0x28
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #8
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #4]
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221CEF0 ; =MOD08_0221CE40
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221CEF0: .word MOD08_0221CE40
+
+ thumb_func_start MOD08_0221CEF4
+MOD08_0221CEF4: ; 0x0221CEF4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ str r0, [sp, #0xc]
+ ldrb r0, [r4]
+ cmp r0, #3
+ bls _0221CF04
+ b _0221D076
+_0221CF04:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221CF10: ; jump table
+ .short _0221CF18 - _0221CF10 - 2 ; case 0
+ .short _0221CFCA - _0221CF10 - 2 ; case 1
+ .short _0221CFE8 - _0221CF10 - 2 ; case 2
+ .short _0221D042 - _0221CF10 - 2 ; case 3
+_0221CF18:
+ ldrb r0, [r4, #4]
+ mov r7, #0
+ add r1, r7, #0
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221CF8E
+ ldr r6, _0221D0E4 ; =0x0222C536
+ add r5, r4, #0
+_0221CF30:
+ add r1, sp, #0x10
+ ldr r0, [r5, #0x14]
+ add r1, #2
+ add r2, sp, #0x10
+ bl FUN_0200C7A0
+ ldrb r1, [r4, #4]
+ ldrb r0, [r6]
+ cmp r1, r0
+ blo _0221CF74
+ add r0, r4, r7
+ ldrb r1, [r0, #1]
+ add r1, r1, #1
+ strb r1, [r0, #1]
+ ldrb r2, [r0, #1]
+ ldrb r1, [r6, #1]
+ cmp r2, r1
+ blo _0221CF7C
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r5, #0x14]
+ bl FUN_0200C658
+ cmp r0, #1
+ ldr r0, [r5, #0x14]
+ bne _0221CF6C
+ mov r1, #0
+ bl FUN_0200C644
+ b _0221CF7C
+_0221CF6C:
+ mov r1, #1
+ bl FUN_0200C644
+ b _0221CF7C
+_0221CF74:
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+_0221CF7C:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r5, r5, #4
+ add r6, r6, #2
+ add r7, r7, #1
+ bl MOD08_02212498
+ cmp r7, r0
+ blt _0221CF30
+_0221CF8E:
+ ldrb r0, [r4, #4]
+ cmp r0, #0x2d
+ blo _0221D02C
+ mov r5, #0
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221CFBE
+ add r6, r4, #0
+ mov r7, #1
+_0221CFA6:
+ ldr r0, [r6, #0x14]
+ add r1, r7, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r6, r6, #4
+ add r5, r5, #1
+ bl MOD08_02212498
+ cmp r5, r0
+ blt _0221CFA6
+_0221CFBE:
+ mov r0, #0
+ strb r0, [r4, #4]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221D0B0
+_0221CFCA:
+ mov r1, #0x64
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x20
+ mov r2, #0x3c
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221D0B0
+_0221CFE8:
+ add r0, r4, #0
+ add r0, #0x20
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221D02E
+ mov r5, #0
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221D0B0
+ add r7, r4, #0
+ add r6, r4, #0
+ add r7, #0x20
+_0221D008:
+ add r0, r7, #0
+ add r1, sp, #0x18
+ add r2, sp, #0x14
+ bl MOD08_0221825C
+ ldr r0, [r6, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ bl FUN_0200C884
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r6, r6, #4
+ add r5, r5, #1
+ bl MOD08_02212498
+ cmp r5, r0
+ blt _0221D008
+_0221D02C:
+ b _0221D0B0
+_0221D02E:
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ ldrb r0, [r4, #4]
+ cmp r0, #0x2d
+ blo _0221D0B0
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221D0B0
+_0221D042:
+ ldrb r0, [r4, #5]
+ cmp r0, #0
+ beq _0221D04C
+ sub r0, r0, #1
+ strb r0, [r4, #5]
+_0221D04C:
+ ldrb r0, [r4, #6]
+ cmp r0, #0xf
+ bhs _0221D056
+ add r0, r0, #1
+ strb r0, [r4, #6]
+_0221D056:
+ ldrb r0, [r4, #5]
+ cmp r0, #0
+ bne _0221D068
+ ldrb r0, [r4, #6]
+ cmp r0, #0xf
+ bne _0221D068
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221D068:
+ ldrb r0, [r4, #6]
+ ldrb r1, [r4, #5]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221D0E8 ; =0x04000052
+ strh r1, [r0]
+ b _0221D0B0
+_0221D076:
+ mov r5, #0
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221D09E
+ add r6, r4, #0
+ add r7, r5, #0
+_0221D088:
+ ldr r0, [r6, #0x14]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #8]
+ add r1, r7, #0
+ add r6, r6, #4
+ add r5, r5, #1
+ bl MOD08_02212498
+ cmp r5, r0
+ blt _0221D088
+_0221D09E:
+ ldr r0, [r4, #8]
+ ldr r1, [sp, #0xc]
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+_0221D0B0:
+ mov r5, #0
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221D0DA
+ add r6, r4, #0
+ add r7, r5, #0
+_0221D0C2:
+ ldr r0, [r6, #0x14]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldr r0, [r4, #8]
+ add r1, r7, #0
+ add r6, r6, #4
+ add r5, r5, #1
+ bl MOD08_02212498
+ cmp r5, r0
+ blt _0221D0C2
+_0221D0DA:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221D0E4: .word 0x0222C536
+_0221D0E8: .word 0x04000052
+
+ thumb_func_start MOD08_0221D0EC
+MOD08_0221D0EC: ; 0x0221D0EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ str r0, [sp]
+ add r5, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02212014
+ mov r1, #0x44
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _0221D10A
+ bl ErrorHandling
+_0221D10A:
+ mov r0, #0
+ strb r0, [r4, #4]
+ strb r0, [r4]
+ str r5, [r4, #0xc]
+ ldr r0, [sp]
+ str r6, [r4, #0x10]
+ str r0, [r4, #8]
+ ldr r1, [sp]
+ add r0, sp, #8
+ bl MOD08_02215474
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl MOD08_02227994
+ mov r0, #0xf
+ strb r0, [r4, #5]
+ mov r0, #0
+ strb r0, [r4, #6]
+ ldrb r0, [r4, #6]
+ ldrb r1, [r4, #5]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221D21C ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [sp]
+ str r7, [r4, #0x14]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221D166
+ ldr r0, [sp]
+ bl MOD08_02212004
+ add r1, r0, #0
+ mov r0, #0
+ add r2, sp, #4
+ bl MOD08_02227564
+ b _0221D176
+_0221D166:
+ ldr r0, [sp]
+ bl MOD08_02212004
+ add r1, r0, #0
+ mov r0, #1
+ add r2, sp, #4
+ bl MOD08_02227564
+_0221D176:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ mov r6, #1
+ bl MOD08_02212498
+ cmp r0, #1
+ ble _0221D1B0
+ add r5, r4, #4
+ add r7, sp, #4
+_0221D188:
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r2, sp, #8
+ bl FUN_0200C154
+ str r0, [r5, #0x14]
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r7, r1]
+ ldrsh r2, [r7, r2]
+ bl FUN_0200C714
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r5, r5, #4
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221D188
+_0221D1B0:
+ add r3, sp, #4
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C714
+ mov r6, #0
+ ldr r0, [r4, #8]
+ add r1, r6, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221D20A
+ add r5, r4, #0
+ add r7, r6, #0
+_0221D1D2:
+ add r1, r4, r6
+ mov r0, #0
+ strb r0, [r1, #1]
+ ldr r0, [r5, #0x14]
+ mov r1, #2
+ bl FUN_0200C840
+ mov r2, #0x20
+ sub r2, r2, r7
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ asr r2, r2, #0x10
+ bl FUN_0200C82C
+ ldr r0, [r5, #0x14]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r5, r5, #4
+ add r7, r7, #4
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221D1D2
+_0221D20A:
+ mov r3, #1
+ ldr r0, [sp]
+ ldr r1, _0221D220 ; =MOD08_0221CEF4
+ add r2, r4, #0
+ lsl r3, r3, #0xc
+ bl MOD08_022123E4
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221D21C: .word 0x04000052
+_0221D220: .word MOD08_0221CEF4
+
+ thumb_func_start MOD08_0221D224
+MOD08_0221D224: ; 0x0221D224
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #5
+ bls _0221D234
+ b _0221D404
+_0221D234:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221D240: ; jump table
+ .short _0221D24C - _0221D240 - 2 ; case 0
+ .short _0221D2AE - _0221D240 - 2 ; case 1
+ .short _0221D2C8 - _0221D240 - 2 ; case 2
+ .short _0221D2EC - _0221D240 - 2 ; case 3
+ .short _0221D346 - _0221D240 - 2 ; case 4
+ .short _0221D394 - _0221D240 - 2 ; case 5
+_0221D24C:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _0221D2A4
+ add r0, r4, #0
+ add r0, #0x38
+ bl MOD08_022183F0
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r2, #0x38
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_020079E0
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221D2A4:
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D2AE:
+ mov r0, #0x1f
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, [r4, #0x10]
+ mov r2, #0xa
+ add r3, r1, #0
+ bl FUN_02007E68
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D2C8:
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _0221D2F6
+ mov r0, #0x1f
+ str r0, [sp]
+ mov r2, #0
+ ldr r0, [r4, #0x10]
+ mov r1, #0xa
+ add r3, r2, #0
+ bl FUN_02007E68
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D2EC:
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ beq _0221D2F8
+_0221D2F6:
+ b _0221D412
+_0221D2F8:
+ ldrb r0, [r4, #8]
+ add r0, r0, #1
+ strb r0, [r4, #8]
+ ldrb r0, [r4, #8]
+ cmp r0, #3
+ blo _0221D33E
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD08_02212498
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl MOD08_02212498
+ add r6, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [sp]
+ add r0, r4, #0
+ lsl r1, r5, #0x10
+ lsl r3, r6, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ mov r2, #0x64
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D33E:
+ mov r0, #1
+ add sp, #4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D346:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _0221D38A
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221D38A:
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D394:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ ldr r0, [r4, #0x10]
+ bne _0221D3D8
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221D3D8:
+ mov r1, #0xc
+ add r2, r1, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D404:
+ ldr r0, [r4, #0xc]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_0221D412:
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221D418
+MOD08_0221D418: ; 0x0221D418
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x5c
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4, #8]
+ strb r0, [r4]
+ str r5, [r4, #0xc]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_0221552C
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0x64
+ lsl r3, r6, #0x10
+ add r0, #0x14
+ add r2, r1, #0
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x38
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD08_022183C0
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221D4A0 ; =MOD08_0221D224
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0221D4A0: .word MOD08_0221D224
+
+ thumb_func_start MOD08_0221D4A4
+MOD08_0221D4A4: ; 0x0221D4A4
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #4
+ bls _0221D4B4
+ b _0221D6CC
+_0221D4B4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221D4C0: ; jump table
+ .short _0221D4CA - _0221D4C0 - 2 ; case 0
+ .short _0221D530 - _0221D4C0 - 2 ; case 1
+ .short _0221D594 - _0221D4C0 - 2 ; case 2
+ .short _0221D5F8 - _0221D4C0 - 2 ; case 3
+ .short _0221D65C - _0221D4C0 - 2 ; case 4
+_0221D4CA:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221D50E
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221D50E:
+ mov r1, #0x96
+ str r1, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r2, #0x32
+ add r0, #0x10
+ add r3, r2, #0
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221D530:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221D574
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221D574:
+ mov r2, #0x64
+ str r2, [sp]
+ str r2, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ mov r1, #0x32
+ mov r3, #0x96
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221D594:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221D5D8
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221D5D8:
+ mov r2, #0x96
+ mov r1, #0x64
+ str r2, [sp]
+ str r1, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221D5F8:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221D63C
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221D63C:
+ mov r2, #0x64
+ str r2, [sp]
+ str r2, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x96
+ add r0, #0x10
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221D65C:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #1
+ ldr r0, [r4, #0xc]
+ bne _0221D6A0
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221D6A0:
+ mov r1, #0xc
+ add r2, r1, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221D6CC:
+ ldr r0, [r4, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221D6E0
+MOD08_0221D6E0: ; 0x0221D6E0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x58
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ str r5, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_0221552C
+ str r0, [r4, #4]
+ mov r0, #0x32
+ str r0, [sp]
+ mov r1, #0x64
+ str r1, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ mov r2, #0x96
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldr r0, [r4, #8]
+ ldr r1, _0221D748 ; =MOD08_0221D4A4
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0221D748: .word MOD08_0221D4A4
+
+ thumb_func_start MOD08_0221D74C
+MOD08_0221D74C: ; 0x0221D74C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r5, #1]
+ cmp r0, #0
+ beq _0221D766
+ cmp r0, #1
+ beq _0221D84C
+ cmp r0, #2
+ bne _0221D764
+ b _0221D8AE
+_0221D764:
+ b _0221D8E2
+_0221D766:
+ ldrb r3, [r5]
+ mov r0, #0x1f
+ lsr r2, r3, #0x1f
+ lsl r1, r3, #0x1f
+ sub r1, r1, r2
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #1
+ add r1, r3, #1
+ str r0, [sp, #0xc]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ str r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ mov r0, #6
+ mul r0, r1
+ ldr r1, _0221D900 ; =0x0222C59A
+ ldrsh r2, [r1, r0]
+ ldr r1, [sp, #8]
+ sub r7, r2, r1
+ mov r1, #0xa
+ ldrsh r3, [r5, r1]
+ ldr r1, _0221D904 ; =0x0222C598
+ ldrsh r6, [r1, r0]
+ mov r1, #8
+ ldrsh r2, [r5, r1]
+ ldr r1, _0221D908 ; =0x0222C596
+ ldrsh r4, [r1, r0]
+ lsl r0, r7, #0x10
+ str r3, [sp]
+ add r1, r2, r4
+ lsr r0, r0, #0x10
+ add r2, r2, r6
+ str r0, [sp, #4]
+ add r0, r5, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, #0x28
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r0, #0xa
+ ldrsh r3, [r5, r0]
+ mov r0, #8
+ ldrsh r2, [r5, r0]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ sub r1, r2, r4
+ str r3, [sp]
+ sub r2, r2, r6
+ str r0, [sp, #4]
+ add r0, r5, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, #0x4c
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldr r0, [sp, #0xc]
+ add r1, r0, #1
+ mov r0, #6
+ mul r0, r1
+ ldr r1, _0221D900 ; =0x0222C59A
+ ldrsh r2, [r1, r0]
+ ldr r1, [sp, #8]
+ sub r7, r2, r1
+ mov r1, #0xa
+ ldrsh r3, [r5, r1]
+ ldr r1, _0221D904 ; =0x0222C598
+ ldrsh r6, [r1, r0]
+ mov r1, #8
+ ldrsh r2, [r5, r1]
+ ldr r1, _0221D908 ; =0x0222C596
+ ldrsh r4, [r1, r0]
+ lsl r0, r7, #0x10
+ str r3, [sp]
+ add r1, r2, r4
+ lsr r0, r0, #0x10
+ add r2, r2, r6
+ str r0, [sp, #4]
+ add r0, r5, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, #0x70
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r0, #0xa
+ ldrsh r3, [r5, r0]
+ mov r0, #8
+ ldrsh r2, [r5, r0]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ sub r1, r2, r4
+ str r3, [sp]
+ sub r2, r2, r6
+ str r0, [sp, #4]
+ add r0, r5, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, #0x94
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+_0221D84C:
+ mov r0, #0
+ add r7, r5, #0
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ add r7, #0x28
+ add r6, r5, #0
+ add r4, r5, #0
+_0221D85A:
+ add r0, r7, #0
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221D870
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ b _0221D87E
+_0221D870:
+ mov r1, #0x28
+ mov r2, #0x2a
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r6, r2]
+ ldr r0, [r4, #0x18]
+ bl FUN_0200C714
+_0221D87E:
+ ldr r0, [r4, #0x18]
+ bl FUN_0200C5A8
+ ldr r0, [sp, #0x14]
+ add r7, #0x24
+ add r0, r0, #1
+ add r6, #0x24
+ add r4, r4, #4
+ str r0, [sp, #0x14]
+ cmp r0, #4
+ blt _0221D85A
+ ldr r0, [sp, #0x10]
+ cmp r0, #4
+ bne _0221D8F4
+ ldrb r0, [r5]
+ cmp r0, #9
+ bne _0221D8A8
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+ b _0221D8F4
+_0221D8A8:
+ mov r0, #0
+ strb r0, [r5, #1]
+ b _0221D8F4
+_0221D8AE:
+ ldrb r0, [r5, #4]
+ cmp r0, #0
+ beq _0221D8B8
+ sub r0, r0, #1
+ strb r0, [r5, #4]
+_0221D8B8:
+ ldrb r0, [r5, #5]
+ cmp r0, #0xf
+ bhs _0221D8C2
+ add r0, r0, #1
+ strb r0, [r5, #5]
+_0221D8C2:
+ ldrb r0, [r5, #4]
+ cmp r0, #0
+ bne _0221D8D4
+ ldrb r0, [r5, #5]
+ cmp r0, #0xf
+ bne _0221D8D4
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+_0221D8D4:
+ ldrb r0, [r5, #5]
+ ldrb r1, [r5, #4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221D90C ; =0x04000052
+ strh r1, [r0]
+ b _0221D8F4
+_0221D8E2:
+ ldr r0, [r5, #0xc]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FUN_02016A18
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0221D8F4:
+ ldr r0, [r5, #0x14]
+ bl FUN_0200BC1C
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221D900: .word 0x0222C59A
+_0221D904: .word 0x0222C598
+_0221D908: .word 0x0222C596
+_0221D90C: .word 0x04000052
+
+ thumb_func_start MOD08_0221D910
+MOD08_0221D910: ; 0x0221D910
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x18]
+ bl MOD08_02212014
+ mov r1, #0xb8
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4, #1]
+ strb r0, [r4]
+ ldr r0, [sp, #0x18]
+ str r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #8]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0xa]
+ ldr r0, [r4, #0x10]
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #0xa
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ strh r0, [r4, #0xa]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212504
+ str r0, [r4, #0x14]
+ mov r0, #8
+ strb r0, [r4, #4]
+ mov r1, #6
+ strb r1, [r4, #5]
+ sub r1, r1, #7
+ ldr r0, [r4, #0xc]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldrb r0, [r4, #5]
+ ldrb r1, [r4, #4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221DB90 ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_0221550C
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215574
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_0221551C
+ str r0, [sp, #0x1c]
+ mov r6, #0
+ add r5, r4, #0
+_0221D9AE:
+ ldr r0, [r4, #0xc]
+ add r1, r6, #0
+ bl MOD08_022124D8
+ mov r1, #1
+ str r0, [r5, #0x18]
+ bl FUN_0200C90C
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0221D9AE
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_02227470
+ cmp r0, #3
+ ldr r0, [r4, #0x18]
+ bne _0221DA9E
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x20]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x24]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x18]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x20]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x24]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x18]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r5, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ add r0, r6, #0
+ bl FUN_02003B40
+ ldr r0, [r4, #0x20]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r5, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xc4
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ add r0, r6, #0
+ bl FUN_02003B40
+ b _0221DB80
+_0221DA9E:
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x20]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x24]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x18]
+ add r1, r7, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ add r1, r7, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x20]
+ add r1, r7, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x24]
+ add r1, r7, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x18]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x20]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x24]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x18]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r5, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xc4
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ add r0, r6, #0
+ bl FUN_02003B40
+ ldr r0, [r4, #0x20]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r5, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ add r0, r6, #0
+ bl FUN_02003B40
+_0221DB80:
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221DB94 ; =MOD08_0221D74C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0221DB90: .word 0x04000052
+_0221DB94: .word MOD08_0221D74C
+
+ thumb_func_start MOD08_0221DB98
+MOD08_0221DB98: ; 0x0221DB98
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221DBAA
+ cmp r0, #1
+ beq _0221DC04
+ b _0221DC44
+_0221DBAA:
+ ldrb r1, [r4, #2]
+ ldr r5, _0221DC54 ; =0x0222C531
+ mov r2, #0x64
+ lsl r0, r1, #1
+ add r3, r1, r0
+ ldr r0, _0221DC58 ; =0x0222C532
+ ldr r1, _0221DC5C ; =0x0222C530
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02218120
+ ldrb r0, [r4, #2]
+ cmp r0, #0
+ ldr r0, _0221DC60 ; =0x00007FFF
+ bne _0221DBE0
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, [r4, #8]
+ mov r2, #6
+ add r3, r1, #0
+ bl FUN_02007E68
+ b _0221DBEE
+_0221DBE0:
+ str r0, [sp]
+ mov r2, #0
+ ldr r0, [r4, #8]
+ mov r1, #6
+ add r3, r2, #0
+ bl FUN_02007E68
+_0221DBEE:
+ ldrb r1, [r4, #2]
+ mov r0, #1
+ eor r0, r1
+ strb r0, [r4, #2]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0221DC04:
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02218170
+ cmp r0, #0
+ bne _0221DC2C
+ ldr r0, [r4, #8]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _0221DC2C
+ ldrb r0, [r4, #1]
+ cmp r0, #4
+ ldrb r0, [r4]
+ bhs _0221DC28
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221DC2C
+_0221DC28:
+ add r0, r0, #1
+ strb r0, [r4]
+_0221DC2C:
+ mov r1, #0xc
+ ldrsh r2, [r4, r1]
+ ldr r0, [r4, #8]
+ bl FUN_02007558
+ mov r2, #0xe
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0xd
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_0221DC44:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221DC54: .word 0x0222C531
+_0221DC58: .word 0x0222C532
+_0221DC5C: .word 0x0222C530
+_0221DC60: .word 0x00007FFF
+
+ thumb_func_start MOD08_0221DC64
+MOD08_0221DC64: ; 0x0221DC64
+ push {r3, r4, r5, lr}
+ mov r1, #0x30
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #2]
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ ldr r1, _0221DC98 ; =MOD08_0221DB98
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221DC98: .word MOD08_0221DB98
+
+ thumb_func_start MOD08_0221DC9C
+MOD08_0221DC9C: ; 0x0221DC9C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221DCB0
+ cmp r0, #1
+ beq _0221DCEA
+ b _0221DD42
+_0221DCB0:
+ ldrb r1, [r4, #1]
+ ldr r2, _0221DD54 ; =0x0222C578
+ ldr r5, _0221DD58 ; =0x0222C579
+ lsl r0, r1, #2
+ add r3, r1, r0
+ ldr r0, _0221DD5C ; =0x0222C57A
+ ldr r1, _0221DD60 ; =0x0222C577
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r2, [r2, r3]
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, _0221DD64 ; =0x0222C57B
+ ldrb r0, [r0, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022181A8
+ ldrb r0, [r4, #1]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0221DCEA:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221DD08
+ ldrb r0, [r4, #1]
+ cmp r0, #3
+ ldrb r0, [r4]
+ bhs _0221DD04
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221DD08
+_0221DD04:
+ add r0, r0, #1
+ strb r0, [r4]
+_0221DD08:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ mov r1, #4
+ ldrsh r0, [r4, r0]
+ ldrsh r1, [r4, r1]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221DD42:
+ ldr r0, [r4, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_0221DD54: .word 0x0222C578
+_0221DD58: .word 0x0222C579
+_0221DD5C: .word 0x0222C57A
+_0221DD60: .word 0x0222C577
+_0221DD64: .word 0x0222C57B
+
+ thumb_func_start MOD08_0221DD68
+MOD08_0221DD68: ; 0x0221DD68
+ push {r3, r4, r5, lr}
+ mov r1, #0x34
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_0221552C
+ strh r0, [r4, #4]
+ ldr r0, [r4, #8]
+ ldr r1, _0221DDB0 ; =MOD08_0221DC9C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221DDB0: .word MOD08_0221DC9C
+
+ thumb_func_start MOD08_0221DDB4
+MOD08_0221DDB4: ; 0x0221DDB4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #5
+ bls _0221DDC4
+ b _0221DF24
+_0221DDC4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221DDD0: ; jump table
+ .short _0221DDDC - _0221DDD0 - 2 ; case 0
+ .short _0221DE16 - _0221DDD0 - 2 ; case 1
+ .short _0221DE58 - _0221DDD0 - 2 ; case 2
+ .short _0221DE82 - _0221DDD0 - 2 ; case 3
+ .short _0221DEA4 - _0221DDD0 - 2 ; case 4
+ .short _0221DEE2 - _0221DDD0 - 2 ; case 5
+_0221DDDC:
+ ldrb r1, [r4, #1]
+ ldr r2, _0221DF64 ; =0x0222C550
+ ldr r5, _0221DF68 ; =0x0222C551
+ lsl r0, r1, #2
+ add r3, r1, r0
+ ldr r0, _0221DF6C ; =0x0222C552
+ ldr r1, _0221DF70 ; =0x0222C54F
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r2, [r2, r3]
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, _0221DF74 ; =0x0222C553
+ ldrb r0, [r0, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022181A8
+ ldrb r0, [r4, #1]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0221DE16:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221DE28
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221DE28:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #2
+ mov r2, #6
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ bl MOD08_022182DC
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221DE58:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ mov r1, #0
+ add r3, r0, #0
+ lsl r3, r3, #0x10
+ str r1, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x10
+ add r2, r1, #0
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0221DE82:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221DE94
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221DE94:
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221DEA4:
+ ldrb r1, [r4, #1]
+ ldr r2, _0221DF64 ; =0x0222C550
+ ldr r5, _0221DF68 ; =0x0222C551
+ lsl r0, r1, #2
+ add r3, r1, r0
+ ldr r0, _0221DF6C ; =0x0222C552
+ ldr r1, _0221DF70 ; =0x0222C54F
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r2, [r2, r3]
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, _0221DF74 ; =0x0222C553
+ ldrb r0, [r0, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022181A8
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0221DEE2:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221DEF4
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221DEF4:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #1
+ str r0, [sp]
+ mov r1, #2
+ mov r2, #6
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ bl MOD08_022182DC
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221DF24:
+ mov r2, #4
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ add r2, #0xf3
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_0221DF64: .word 0x0222C550
+_0221DF68: .word 0x0222C551
+_0221DF6C: .word 0x0222C552
+_0221DF70: .word 0x0222C54F
+_0221DF74: .word 0x0222C553
+
+ thumb_func_start MOD08_0221DF78
+MOD08_0221DF78: ; 0x0221DF78
+ push {r3, r4, r5, lr}
+ mov r1, #0x34
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ strh r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_0221552C
+ strh r0, [r4, #6]
+ ldr r0, [r4, #8]
+ ldr r1, _0221DFC8 ; =MOD08_0221DDB4
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221DFC8: .word MOD08_0221DDB4
+
+ thumb_func_start MOD08_0221DFCC
+MOD08_0221DFCC: ; 0x0221DFCC
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #4
+ bhi _0221E0B6
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221DFE6: ; jump table
+ .short _0221DFF0 - _0221DFE6 - 2 ; case 0
+ .short _0221E02A - _0221DFE6 - 2 ; case 1
+ .short _0221E048 - _0221DFE6 - 2 ; case 2
+ .short _0221E05E - _0221DFE6 - 2 ; case 3
+ .short _0221E098 - _0221DFE6 - 2 ; case 4
+_0221DFF0:
+ ldr r0, [r4, #8]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _0221E0C8 ; =0x00007FFF
+ mov r1, #1
+ str r0, [sp, #8]
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #4]
+ lsr r2, r2, #0x10
+ sub r3, r1, #3
+ bl FUN_02003210
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x10]
+ mov r2, #0x10
+ add r3, r1, #0
+ bl FUN_02007E68
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221E02A:
+ ldr r0, [r4, #4]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0221E0C4
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _0221E0C4
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221E048:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #5
+ bls _0221E0C4
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221E05E:
+ ldr r0, [r4, #8]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0221E0C8 ; =0x00007FFF
+ mov r1, #1
+ str r0, [sp, #8]
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #4]
+ lsr r2, r2, #0x10
+ sub r3, r1, #3
+ bl FUN_02003210
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r4, #0x10]
+ mov r1, #0x10
+ add r3, r2, #0
+ bl FUN_02007E68
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221E098:
+ ldr r0, [r4, #4]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0221E0C4
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _0221E0C4
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221E0B6:
+ ldr r0, [r4, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_0221E0C4:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_0221E0C8: .word 0x00007FFF
+
+ thumb_func_start MOD08_0221E0CC
+MOD08_0221E0CC: ; 0x0221E0CC
+ push {r3, r4, r5, lr}
+ mov r1, #0x14
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02215504
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ ldr r1, _0221E100 ; =MOD08_0221DFCC
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221E100: .word MOD08_0221DFCC
+
+ thumb_func_start MOD08_0221E104
+MOD08_0221E104: ; 0x0221E104
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221E118
+ cmp r0, #1
+ beq _0221E184
+ b _0221E1F8
+_0221E118:
+ ldrb r1, [r4, #1]
+ ldr r2, _0221E20C ; =0x0222C55A
+ ldr r5, _0221E210 ; =0x0222C55B
+ lsl r0, r1, #2
+ add r3, r1, r0
+ ldr r0, _0221E214 ; =0x0222C55C
+ ldr r1, _0221E218 ; =0x0222C559
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r2, [r2, r3]
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, _0221E21C ; =0x0222C55D
+ ldrb r0, [r0, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022181A8
+ ldrb r1, [r4, #1]
+ ldr r6, _0221E220 ; =0x0222C53C
+ lsl r0, r1, #1
+ add r5, r1, r0
+ mov r0, #4
+ ldrsh r3, [r4, r0]
+ ldr r0, _0221E224 ; =0x0222C53D
+ mov r1, #0
+ ldrb r0, [r0, r5]
+ add r2, r1, #0
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, _0221E228 ; =0x0222C53E
+ ldrb r0, [r0, r5]
+ ldrb r5, [r6, r5]
+ str r0, [sp, #4]
+ add r3, r3, r5
+ add r0, r4, #0
+ lsl r3, r3, #0x10
+ add r0, #0x34
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ ldrb r0, [r4, #1]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221E184:
+ add r0, r4, #0
+ add r0, #0x10
+ mov r5, #0
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221E194
+ add r5, r5, #1
+_0221E194:
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221E1A2
+ add r5, r5, #1
+_0221E1A2:
+ cmp r5, #2
+ blt _0221E1C8
+ ldrb r0, [r4, #1]
+ cmp r0, #3
+ blo _0221E1C4
+ ldrb r0, [r4, #2]
+ add r0, r0, #1
+ strb r0, [r4, #2]
+ mov r0, #0
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #2]
+ cmp r0, #3
+ blo _0221E1C8
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E1C8
+_0221E1C4:
+ mov r0, #0
+ strb r0, [r4]
+_0221E1C8:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x36
+ mov r2, #6
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ bl MOD08_022182DC
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_0221E1F8:
+ ldr r0, [r4, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0221E20C: .word 0x0222C55A
+_0221E210: .word 0x0222C55B
+_0221E214: .word 0x0222C55C
+_0221E218: .word 0x0222C559
+_0221E21C: .word 0x0222C55D
+_0221E220: .word 0x0222C53C
+_0221E224: .word 0x0222C53D
+_0221E228: .word 0x0222C53E
+
+ thumb_func_start MOD08_0221E22C
+MOD08_0221E22C: ; 0x0221E22C
+ push {r3, r4, r5, lr}
+ mov r1, #0x58
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_0221552C
+ strh r0, [r4, #6]
+ ldr r0, [r4, #8]
+ ldr r1, _0221E274 ; =MOD08_0221E104
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221E274: .word MOD08_0221E104
+
+ thumb_func_start MOD08_0221E278
+MOD08_0221E278: ; 0x0221E278
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221E28E
+ cmp r0, #1
+ beq _0221E2A6
+ cmp r0, #2
+ beq _0221E2C6
+ b _0221E308
+_0221E28E:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #0xa
+ blo _0221E324
+ mov r0, #0
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E324
+_0221E2A6:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl FUN_0200C90C
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E324
+_0221E2C6:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #0xa
+ blo _0221E324
+ ldr r0, _0221E338 ; =0x0400004A
+ mov r1, #0x3f
+ ldrh r2, [r0]
+ bic r2, r1
+ mov r1, #0x1f
+ orr r2, r1
+ strh r2, [r0]
+ ldrh r3, [r0]
+ ldr r2, _0221E33C ; =0xFFFFC0FF
+ lsl r1, r1, #8
+ and r2, r3
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #0
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E324
+_0221E308:
+ mov r3, #1
+ lsl r3, r3, #0x1a
+ ldr r1, [r3]
+ ldr r0, _0221E340 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+_0221E324:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r4, pc}
+ .align 2, 0
+_0221E338: .word 0x0400004A
+_0221E33C: .word 0xFFFFC0FF
+_0221E340: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_0221E344
+MOD08_0221E344: ; 0x0221E344
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ mov r1, #0x14
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x10]
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0221E41C ; =0xFFFF1FFF
+ and r2, r1
+ lsr r1, r0, #0xb
+ orr r1, r2
+ str r1, [r0]
+ add r0, #0x4a
+ ldrh r2, [r0]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x1f
+ orr r1, r2
+ strh r1, [r0]
+ ldrh r2, [r0]
+ ldr r1, _0221E420 ; =0xFFFFC0FF
+ and r2, r1
+ mov r1, #0x12
+ lsl r1, r1, #8
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_0221550C
+ add r7, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_0221551C
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02215504
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r1, #0x20
+ lsl r0, r6, #0x14
+ str r1, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r1, #0xe0
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ add r2, r7, #0
+ bl FUN_02003B40
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #4]
+ ldr r1, _0221E424 ; =MOD08_0221E278
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221E41C: .word 0xFFFF1FFF
+_0221E420: .word 0xFFFFC0FF
+_0221E424: .word MOD08_0221E278
+
+ thumb_func_start MOD08_0221E428
+MOD08_0221E428: ; 0x0221E428
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bls _0221E438
+ b _0221E61A
+_0221E438:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221E444: ; jump table
+ .short _0221E44C - _0221E444 - 2 ; case 0
+ .short _0221E45E - _0221E444 - 2 ; case 1
+ .short _0221E576 - _0221E444 - 2 ; case 2
+ .short _0221E5AE - _0221E444 - 2 ; case 3
+_0221E44C:
+ ldr r0, [r4, #0xc]
+ mov r1, #0xe
+ mov r2, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E636
+_0221E45E:
+ mov r0, #0
+ add r6, r4, #0
+ ldr r7, _0221E640 ; =0x0222C52C
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ add r5, r4, #0
+ add r6, #0x20
+_0221E46C:
+ ldrb r0, [r5, #0x18]
+ cmp r0, #0
+ beq _0221E478
+ cmp r0, #1
+ beq _0221E4A6
+ b _0221E4F4
+_0221E478:
+ ldrb r0, [r5, #0x19]
+ add r0, r0, #1
+ strb r0, [r5, #0x19]
+ ldrb r1, [r5, #0x19]
+ ldrb r0, [r7]
+ cmp r1, r0
+ blo _0221E4FA
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ mov r0, #5
+ mov r1, #0x64
+ str r0, [sp, #8]
+ add r0, r6, #0
+ mov r2, #5
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldrb r0, [r5, #0x18]
+ add r0, r0, #1
+ strb r0, [r5, #0x18]
+ b _0221E4FA
+_0221E4A6:
+ add r0, r6, #0
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221E4B8
+ ldrb r0, [r5, #0x18]
+ add r0, r0, #1
+ strb r0, [r5, #0x18]
+ b _0221E4FA
+_0221E4B8:
+ add r0, r6, #0
+ add r1, sp, #0x28
+ add r2, sp, #0x24
+ bl MOD08_0221825C
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [sp, #0x28]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r5, #0x1c]
+ ldr r2, [sp, #0x24]
+ bl FUN_0200C884
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #2
+ ldr r2, [r4, #4]
+ ldrsh r1, [r4, r1]
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x1c]
+ ldr r3, [r5, #0x34]
+ asr r2, r2, #0x10
+ bl MOD08_02218314
+ b _0221E4FA
+_0221E4F4:
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+_0221E4FA:
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [sp, #0x14]
+ add r5, #0x2c
+ add r0, r0, #1
+ add r7, r7, #1
+ add r6, #0x2c
+ str r0, [sp, #0x14]
+ cmp r0, #3
+ blt _0221E46C
+ ldr r0, [sp, #0x10]
+ cmp r0, #3
+ bge _0221E518
+ b _0221E636
+_0221E518:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #3
+ bhs _0221E56E
+ mov r6, #0
+ add r5, r4, #0
+ add r7, r6, #0
+_0221E52A:
+ add r1, sp, #0x18
+ ldr r0, [r5, #0x1c]
+ add r1, #2
+ add r2, sp, #0x18
+ bl FUN_0200C7A0
+ add r2, sp, #0x18
+ mov r1, #2
+ ldrsh r1, [r2, r1]
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C714
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ bl _fflt
+ add r1, r0, #0
+ mov r2, #0xfe
+ ldr r0, [r5, #0x1c]
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+ strb r7, [r5, #0x18]
+ strb r7, [r5, #0x19]
+ add r6, r6, #1
+ add r5, #0x2c
+ cmp r6, #3
+ blt _0221E52A
+ ldrb r0, [r4]
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221E636
+_0221E56E:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E636
+_0221E576:
+ add r5, r4, #0
+ mov r7, #0
+ add r6, r4, #0
+ add r5, #0x20
+_0221E57E:
+ ldr r0, [r6, #0x1c]
+ mov r1, #0
+ bl FUN_0200C90C
+ mov r0, #0x64
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #5
+ mov r1, #5
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0x64
+ add r3, r1, #0
+ bl MOD08_022181A8
+ add r7, r7, #1
+ add r6, #0x2c
+ add r5, #0x2c
+ cmp r7, #3
+ blt _0221E57E
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E636
+_0221E5AE:
+ mov r7, #0
+ add r6, r4, #0
+ str r7, [sp, #0xc]
+ add r6, #0x20
+ add r5, r4, #0
+_0221E5B8:
+ add r0, r6, #0
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221E5C6
+ add r7, r7, #1
+ b _0221E600
+_0221E5C6:
+ add r0, r6, #0
+ add r1, sp, #0x20
+ add r2, sp, #0x1c
+ bl MOD08_0221825C
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [sp, #0x20]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r5, #0x1c]
+ ldr r2, [sp, #0x1c]
+ bl FUN_0200C884
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #2
+ ldr r2, [r4, #4]
+ ldrsh r1, [r4, r1]
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x1c]
+ ldr r3, [r5, #0x34]
+ asr r2, r2, #0x10
+ bl MOD08_02218314
+_0221E600:
+ ldr r0, [sp, #0xc]
+ add r6, #0x2c
+ add r0, r0, #1
+ add r5, #0x2c
+ str r0, [sp, #0xc]
+ cmp r0, #3
+ blt _0221E5B8
+ cmp r7, #3
+ blt _0221E636
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E636
+_0221E61A:
+ ldr r0, [r4, #0xc]
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x10]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+_0221E636:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200BC1C
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221E640: .word 0x0222C52C
+
+ thumb_func_start MOD08_0221E644
+MOD08_0221E644: ; 0x0221E644
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x9c
+ str r0, [sp]
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ ldr r0, [sp]
+ str r0, [r4, #0x10]
+ bl MOD08_02212504
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #2
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ strh r0, [r4, #2]
+ ldr r0, [r4, #0x10]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ bl MOD08_0221552C
+ mov r1, #0
+ str r0, [r4, #4]
+ mvn r1, r1
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl MOD08_02227994
+ mov r6, #0
+ ldr r1, _0221E720 ; =0x0000060C
+ ldr r0, _0221E724 ; =0x04000052
+ add r5, r4, #0
+ strh r1, [r0]
+ add r7, r6, #0
+_0221E6B0:
+ strb r7, [r5, #0x18]
+ strb r7, [r5, #0x19]
+ ldr r0, [r4, #0x10]
+ add r1, r6, #0
+ bl MOD08_022124D8
+ str r0, [r5, #0x1c]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r5, #0x1c]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x1c]
+ add r1, r6, #1
+ bl FUN_0200C6C4
+ add r6, r6, #1
+ add r5, #0x2c
+ cmp r6, #3
+ blt _0221E6B0
+ ldr r0, [sp]
+ mov r1, #0
+ bl MOD08_02215680
+ cmp r0, #1
+ bne _0221E6EE
+ mov r0, #0
+ mvn r0, r0
+ b _0221E6F0
+_0221E6EE:
+ mov r0, #1
+_0221E6F0:
+ strb r0, [r4, #8]
+ mov r6, #0
+ add r5, r4, #0
+ mov r7, #8
+_0221E6F8:
+ ldrsb r0, [r4, r7]
+ bl _fflt
+ add r1, r0, #0
+ mov r2, #0xfe
+ ldr r0, [r5, #0x1c]
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+ add r6, r6, #1
+ add r5, #0x2c
+ cmp r6, #3
+ blt _0221E6F8
+ ldr r0, [r4, #0x10]
+ ldr r1, _0221E728 ; =MOD08_0221E428
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221E720: .word 0x0000060C
+_0221E724: .word 0x04000052
+_0221E728: .word MOD08_0221E428
+
+ thumb_func_start MOD08_0221E72C
+MOD08_0221E72C: ; 0x0221E72C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bls _0221E73C
+ b _0221E866
+_0221E73C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221E748: ; jump table
+ .short _0221E750 - _0221E748 - 2 ; case 0
+ .short _0221E782 - _0221E748 - 2 ; case 1
+ .short _0221E796 - _0221E748 - 2 ; case 2
+ .short _0221E7F2 - _0221E748 - 2 ; case 3
+_0221E750:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r1, #0
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #1
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ add r3, r1, #0
+ bl FUN_02003210
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_0221E782:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0221E874
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221E796:
+ mov r0, #5
+ str r0, [sp]
+ ldrb r1, [r4, #1]
+ add r0, r4, #0
+ add r0, #0xb4
+ lsl r2, r1, #1
+ ldr r1, _0221E878 ; =0x0222C586
+ ldrsh r1, [r1, r2]
+ mov r2, #0
+ add r3, r2, #0
+ bl MOD08_022183C0
+ ldrb r0, [r4, #2]
+ cmp r0, #0
+ ldr r0, [r4, #0xc]
+ bne _0221E7C8
+ bl MOD08_02215504
+ mov r1, #0
+ mov r2, #0xff
+ mov r3, #0xa
+ str r1, [sp]
+ bl FUN_02003A64
+ b _0221E7DA
+_0221E7C8:
+ bl MOD08_02215504
+ ldr r1, _0221E87C ; =0x00007FFF
+ mov r2, #0xff
+ str r1, [sp]
+ mov r1, #0
+ mov r3, #0xa
+ bl FUN_02003A64
+_0221E7DA:
+ mov r0, #3
+ strb r0, [r4, #3]
+ ldrb r1, [r4, #2]
+ mov r0, #1
+ eor r0, r1
+ strb r0, [r4, #2]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221E7F2:
+ add r0, r4, #0
+ add r0, #0xb4
+ bl MOD08_022183F0
+ cmp r0, #0
+ bne _0221E810
+ ldrb r0, [r4, #1]
+ cmp r0, #8
+ ldrb r0, [r4]
+ blo _0221E80C
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E810
+_0221E80C:
+ sub r0, r0, #1
+ strb r0, [r4]
+_0221E810:
+ ldrb r0, [r4, #3]
+ cmp r0, #0
+ beq _0221E832
+ sub r0, r0, #1
+ strb r0, [r4, #3]
+ ldrb r0, [r4, #3]
+ cmp r0, #0
+ bne _0221E832
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ mov r1, #0
+ mov r2, #0xff
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02003A64
+_0221E832:
+ mov r6, #0
+ add r5, r4, #0
+ mov r7, #0x14
+_0221E838:
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _0221E84C
+ mov r2, #0xb4
+ ldrsh r3, [r4, r2]
+ ldrsh r2, [r5, r7]
+ mov r1, #0
+ add r2, r3, r2
+ bl FUN_02007558
+_0221E84C:
+ add r6, r6, #1
+ add r5, #0x14
+ cmp r6, #4
+ blt _0221E838
+ mov r3, #0xb4
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #8]
+ mov r1, #3
+ mov r2, #0
+ bl FUN_020179E0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0221E866:
+ ldr r0, [r4, #0xc]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_0221E874:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221E878: .word 0x0222C586
+_0221E87C: .word 0x00007FFF
+
+ thumb_func_start MOD08_0221E880
+MOD08_0221E880: ; 0x0221E880
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0xd8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #0xc]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212490
+ str r0, [r4, #8]
+ ldr r0, [r4, #0xc]
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221E8B2
+ mov r1, #0x40
+ b _0221E8B4
+_0221E8B2:
+ mov r1, #0xa
+_0221E8B4:
+ add r2, r4, #0
+ add r0, r5, #0
+ add r2, #0x14
+ add r3, r4, #4
+ bl MOD08_02227BAC
+ ldr r0, [r4, #4]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221E8EA
+ add r5, r4, #0
+ add r7, r6, #0
+_0221E8CC:
+ ldr r0, [r5, #0x1c]
+ add r1, r7, #0
+ bl FUN_0200782C
+ strh r0, [r5, #0x14]
+ ldr r0, [r5, #0x1c]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r5, #0x16]
+ ldr r0, [r4, #4]
+ add r6, r6, #1
+ add r5, #0x14
+ cmp r6, r0
+ blt _0221E8CC
+_0221E8EA:
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221E8F8 ; =MOD08_0221E72C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221E8F8: .word MOD08_0221E72C
+
+ thumb_func_start MOD08_0221E8FC
+MOD08_0221E8FC: ; 0x0221E8FC
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ bne _0221E946
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221E91A
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221E91A:
+ add r0, r4, #0
+ add r0, #0x1c
+ bl MOD08_022183F0
+ add r0, r4, #0
+ add r0, #0x64
+ bl MOD08_02218704
+ mov r1, #0x40
+ mov r2, #0x42
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ bl FUN_0200C714
+ ldr r0, [r4, #0x18]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ pop {r4, pc}
+_0221E946:
+ ldr r0, [r4, #0xc]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221E958
+MOD08_0221E958: ; 0x0221E958
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r1, #0x8c
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #0xc]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212490
+ str r0, [r4, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x18]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ldr r0, [r4, #0xc]
+ bne _0221E99C
+ bl MOD08_02212460
+ b _0221E9A0
+_0221E99C:
+ bl MOD08_02212458
+_0221E9A0:
+ add r6, r0, #0
+ ldr r0, [r4, #0xc]
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x14]
+ add r1, r4, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4, #0x14]
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #6
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ strh r0, [r4, #6]
+ ldr r0, [r4, #0xc]
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ add r1, r6, #0
+ bl MOD08_02217C44
+ add r6, r0, #0
+ mov r0, #6
+ ldrsh r3, [r4, r0]
+ mov r0, #4
+ ldrsh r1, [r4, r0]
+ mov r2, #0x14
+ add r0, r6, #0
+ mul r0, r2
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ str r2, [sp, #4]
+ sub r2, #0x28
+ mul r2, r7
+ add r2, r1, r2
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ add r0, #0x40
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_022155C4
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022155C4
+ mov r5, #1
+ add r3, r5, #0
+ lsl r3, r6
+ add r1, r0, #0
+ add r6, r3, #0
+ mov r2, #0x20
+ add r3, r5, #0
+ orr r6, r2
+ lsl r3, r1
+ add r1, r6, #0
+ orr r1, r3
+ sub r2, #0x21
+ ldr r0, [r4, #0xc]
+ orr r1, r5
+ add r3, r2, #0
+ bl MOD08_022279D0
+ mov r1, #0x1f
+ mov r2, #0
+ str r1, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x64
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0
+ bl FUN_0200C90C
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221EA60 ; =MOD08_0221E8FC
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221EA60: .word MOD08_0221E8FC
+
+ thumb_func_start MOD08_0221EA64
+MOD08_0221EA64: ; 0x0221EA64
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221EA76
+ cmp r0, #1
+ beq _0221EAB6
+ b _0221EAE6
+_0221EA76:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ ldrb r0, [r4, #2]
+ bne _0221EA88
+ lsl r3, r0, #3
+ ldr r0, _0221EB00 ; =0x0222C5B0
+ ldr r2, [r0, r3]
+ neg r1, r2
+ b _0221EA90
+_0221EA88:
+ lsl r3, r0, #3
+ ldr r0, _0221EB00 ; =0x0222C5B0
+ ldr r1, [r0, r3]
+ neg r2, r1
+_0221EA90:
+ ldr r5, _0221EB04 ; =0x0222C5B4
+ add r0, r4, #0
+ ldr r3, [r5, r3]
+ add r0, #0x5c
+ bl MOD08_02218008
+ ldrb r0, [r4, #1]
+ cmp r0, #1
+ bne _0221EAA8
+ ldrb r0, [r4, #2]
+ add r0, r0, #1
+ strb r0, [r4, #2]
+_0221EAA8:
+ ldrb r1, [r4, #1]
+ mov r0, #1
+ eor r0, r1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221EAB6:
+ add r0, r4, #0
+ add r0, #0x5c
+ bl MOD08_02218058
+ cmp r0, #1
+ bne _0221EAD2
+ ldr r2, [r4, #0x5c]
+ ldr r0, [r4, #0x28]
+ lsl r2, r2, #0x10
+ mov r1, #9
+ lsr r2, r2, #0x10
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_0221EAD2:
+ ldrb r0, [r4, #2]
+ cmp r0, #5
+ ldrb r0, [r4]
+ blo _0221EAE0
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0221EAE0:
+ sub r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0221EAE6:
+ ldr r0, [r4, #0x28]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221EB00: .word 0x0222C5B0
+_0221EB04: .word 0x0222C5B4
+
+ thumb_func_start MOD08_0221EB08
+MOD08_0221EB08: ; 0x0221EB08
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221EB1C
+ cmp r0, #1
+ beq _0221EB40
+ b _0221EB6A
+_0221EB1C:
+ mov r0, #0x22
+ ldrsh r0, [r4, r0]
+ mov r1, #0x1c
+ mov r2, #0x1e
+ str r0, [sp]
+ mov r3, #0x20
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ add r0, #0x38
+ bl MOD08_022183C0
+ ldrb r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_0221EB40:
+ ldr r0, [r4, #0x2c]
+ add r1, sp, #4
+ bl MOD08_02227B2C
+ add r0, r4, #0
+ add r3, sp, #4
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r3, [r4, #0x2c]
+ add r0, #0x38
+ bl MOD08_02218454
+ cmp r0, #0
+ bne _0221EB78
+ ldrb r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_0221EB6A:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_0221EB78:
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221EB7C
+MOD08_0221EB7C: ; 0x0221EB7C
+ push {r4, r5, r6, lr}
+ mov r1, #0x70
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x28]
+ mov r1, #0xb
+ mov r2, #0x64
+ bl FUN_02007558
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0x1c]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ strh r0, [r4, #0x1e]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #0x20]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #0x22]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #0x24]
+ cmp r6, #0
+ ldr r0, [r4, #4]
+ bne _0221EC06
+ ldr r1, _0221EC10 ; =MOD08_0221EA64
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+_0221EC06:
+ ldr r1, _0221EC14 ; =MOD08_0221EB08
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0221EC10: .word MOD08_0221EA64
+_0221EC14: .word MOD08_0221EB08
+
+ thumb_func_start MOD08_0221EC18
+MOD08_0221EC18: ; 0x0221EC18
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _0221EC2A
+ cmp r0, #1
+ beq _0221EC4C
+ b _0221ECA0
+_0221EC2A:
+ ldr r2, [r5, #0x48]
+ mov r0, #0xa
+ add r1, r2, #2
+ str r0, [sp]
+ add r0, r5, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, #0x4c
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ mov r3, #0
+ bl MOD08_022183C0
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_0221EC4C:
+ add r0, r5, #0
+ add r0, #0x4c
+ bl MOD08_022183F0
+ cmp r0, #0
+ bne _0221EC60
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_0221EC60:
+ mov r6, #0
+ add r4, r5, #0
+ mov r7, #0x28
+_0221EC66:
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ beq _0221EC7A
+ mov r2, #0x4c
+ ldrsh r3, [r5, r2]
+ ldrsh r2, [r4, r7]
+ mov r1, #0
+ add r2, r3, r2
+ bl FUN_02007558
+_0221EC7A:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _0221EC66
+ mov r3, #0x4c
+ ldrsh r3, [r5, r3]
+ ldr r0, [r5, #0x14]
+ mov r1, #3
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0x4e
+ mov r1, #3
+ ldrsh r3, [r5, r3]
+ ldr r0, [r5, #0x14]
+ add r2, r1, #0
+ bl FUN_020179E0
+ pop {r3, r4, r5, r6, r7, pc}
+_0221ECA0:
+ ldr r0, [r5, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0221ECB0
+MOD08_0221ECB0: ; 0x0221ECB0
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x70
+ add r4, r0, #0
+ bl MOD08_02228064
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD08_02227B70
+ ldr r0, [r7, #4]
+ mov r1, #1
+ bl MOD08_02212758
+ cmp r0, #0x46
+ bgt _0221ECE0
+ bge _0221ED02
+ cmp r0, #0x1e
+ bgt _0221ECDA
+ beq _0221ED0E
+ b _0221ED14
+_0221ECDA:
+ cmp r0, #0x32
+ beq _0221ED08
+ b _0221ED14
+_0221ECE0:
+ cmp r0, #0x6e
+ bgt _0221ECEC
+ bge _0221ECF6
+ cmp r0, #0x5a
+ beq _0221ECFC
+ b _0221ED14
+_0221ECEC:
+ cmp r0, #0x96
+ bne _0221ED14
+ mov r0, #6
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ECF6:
+ mov r0, #5
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ECFC:
+ mov r0, #4
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ED02:
+ mov r0, #3
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ED08:
+ mov r0, #2
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ED0E:
+ mov r0, #1
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ED14:
+ mov r0, #0
+ str r0, [r7, #0x48]
+_0221ED18:
+ add r5, r7, #0
+ mov r6, #0
+ add r4, r7, #0
+ add r5, #0x28
+_0221ED20:
+ ldr r0, [r7, #4]
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x38]
+ cmp r0, #0
+ beq _0221ED34
+ add r1, r5, #0
+ bl MOD08_02227B2C
+_0221ED34:
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0221ED20
+ ldr r0, [r7, #4]
+ ldr r1, _0221ED4C ; =MOD08_0221EC18
+ add r2, r7, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221ED4C: .word MOD08_0221EC18
+
+ thumb_func_start MOD08_0221ED50
+MOD08_0221ED50: ; 0x0221ED50
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221ED64
+ cmp r0, #1
+ beq _0221ED92
+ b _0221EE00
+_0221ED64:
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x40
+ mov r1, #0x14
+ add r3, r2, #0
+ bl MOD08_022183C0
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x64
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD08_022183C0
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221ED92:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_022183F0
+ cmp r0, #0
+ bne _0221EDA6
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221EDF6
+_0221EDA6:
+ mov r1, #0x2c
+ ldrsh r2, [r4, r1]
+ mov r1, #0x40
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x38]
+ add r1, r2, r1
+ mov r2, #0x2e
+ ldrsh r3, [r4, r2]
+ mov r2, #0x42
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ mov r1, #0x40
+ ldrsh r2, [r4, r1]
+ mov r1, #0x2c
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x3c]
+ sub r1, r2, r1
+ mov r2, #0x2e
+ ldrsh r3, [r4, r2]
+ mov r2, #0x42
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x3c]
+ bl FUN_0200C5A8
+_0221EDF6:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ add sp, #4
+ pop {r3, r4, pc}
+_0221EE00:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221EE14
+MOD08_0221EE14: ; 0x0221EE14
+ push {r3, r4, r5, lr}
+ mov r1, #0x88
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x3c]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x34]
+ add r1, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0x28
+ bl MOD08_02227B2C
+ add r1, r4, #0
+ ldr r0, [r4, #0x34]
+ add r1, #0x2c
+ bl MOD08_02227B2C
+ ldr r0, [r4, #4]
+ ldr r1, _0221EE7C ; =MOD08_0221ED50
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221EE7C: .word MOD08_0221ED50
+
+ thumb_func_start MOD08_0221EE80
+MOD08_0221EE80: ; 0x0221EE80
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ ldr r2, [r4, #0x38]
+ add r0, #0x8c
+ add r1, #0xb0
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _0221EEAC
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #0x14]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl MOD08_02228094
+ pop {r3, r4, r5, pc}
+_0221EEAC:
+ add r0, r4, #0
+ add r0, #0xd4
+ bl MOD08_02218058
+ cmp r0, #1
+ bne _0221EEC8
+ add r1, r4, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ ldr r0, [r4, #0x38]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0200C898
+_0221EEC8:
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x20]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221EED8
+MOD08_0221EED8: ; 0x0221EED8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0xe8
+ add r6, r0, #0
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x10
+ bl MOD08_02227B70
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD08_02212498
+ strh r0, [r4, #0xc]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0xe]
+ add r0, r6, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #4]
+ add r0, r6, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02217C1C
+ add r5, r0, #0
+ add r0, r7, #0
+ mov r1, #2
+ str r7, [r4, #0x38]
+ bl FUN_0200C840
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x44]
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x58]
+ add r1, r4, #0
+ ldr r0, [r4, #0x44]
+ add r1, #0x40
+ bl MOD08_02227B2C
+ add r1, r4, #0
+ ldr r0, [r4, #0x58]
+ add r1, #0x54
+ bl MOD08_02227B2C
+ mov r0, #0x42
+ ldrsh r0, [r4, r0]
+ mov r3, #0x54
+ str r0, [sp]
+ mov r0, #0x56
+ ldrsh r2, [r4, r0]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ add r1, r0, #0
+ mul r1, r5
+ add r0, r2, r1
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ add r1, r4, #0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r4, #8]
+ mov r2, #0x40
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ ldrsh r3, [r4, r3]
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ mov ip, r3
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ add r0, #0x8c
+ add r1, #0xb0
+ add r7, r3, #0
+ mul r7, r5
+ mov r3, ip
+ add r3, r3, r7
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217F50
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02215490
+ cmp r0, #4
+ bne _0221EFE0
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02215490
+ cmp r0, #2
+ bne _0221EFE0
+ mov r0, #0
+ mvn r0, r0
+ mul r5, r0
+_0221EFE0:
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02215490
+ cmp r0, #5
+ bne _0221F00A
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02215490
+ cmp r0, #3
+ bne _0221F00A
+ mov r0, #0
+ mvn r0, r0
+ mul r5, r0
+_0221F00A:
+ cmp r5, #0
+ ldr r2, _0221F064 ; =0x00005C71
+ ble _0221F022
+ ldr r1, _0221F068 ; =0x00000E38
+ add r0, r4, #0
+ add r0, #0xd4
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+ b _0221F032
+_0221F022:
+ ldr r1, _0221F06C ; =0x00003FFF
+ add r0, r4, #0
+ add r0, #0xd4
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+_0221F032:
+ add r1, r4, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ ldr r0, [r4, #0x38]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0200C898
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r2, [r4, #0x38]
+ add r0, #0x8c
+ add r1, #0xb0
+ bl MOD08_02217FE4
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x14]
+ ldr r1, _0221F070 ; =MOD08_0221EE80
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221F064: .word 0x00005C71
+_0221F068: .word 0x00000E38
+_0221F06C: .word 0x00003FFF
+_0221F070: .word MOD08_0221EE80
+
+ thumb_func_start MOD08_0221F074
+MOD08_0221F074: ; 0x0221F074
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x18]
+ cmp r0, #3
+ bls _0221F084
+ b _0221F1F0
+_0221F084:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221F090: ; jump table
+ .short _0221F098 - _0221F090 - 2 ; case 0
+ .short _0221F0C8 - _0221F090 - 2 ; case 1
+ .short _0221F168 - _0221F090 - 2 ; case 2
+ .short _0221F17A - _0221F090 - 2 ; case 3
+_0221F098:
+ mov r0, #0x12
+ ldrsh r2, [r4, r0]
+ mov r0, #0x96
+ mov r3, #0x3c
+ str r0, [sp]
+ mov r1, #0x64
+ str r1, [sp, #4]
+ mov r0, #0xc
+ mul r1, r2
+ mul r3, r2
+ lsl r2, r3, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ add r0, #0x9c
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ mov r3, #5
+ bl MOD08_022181A8
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0221F20E
+_0221F0C8:
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221F106
+ mov r0, #0x12
+ ldrsh r2, [r4, r0]
+ mov r0, #0xa
+ mov r1, #0x3c
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ mov r0, #0xc
+ mul r1, r2
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ mov r3, #0x96
+ add r5, r2, #0
+ mul r5, r3
+ lsl r2, r5, #0x10
+ add r0, #0x9c
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022181A8
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0221F20E
+_0221F106:
+ add r0, r4, #0
+ add r0, #0x9c
+ add r1, sp, #0x18
+ add r2, sp, #0x14
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x40]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ bl FUN_0200C884
+ mov r0, #0x16
+ add r2, r4, #0
+ add r2, #0xb0
+ ldrsh r0, [r4, r0]
+ ldr r2, [r2]
+ mov r1, #0x10
+ bl MOD08_0221828C
+ mov r2, #0x16
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ add r2, r2, r3
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0x40]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldrb r1, [r4, #0xc]
+ ldrb r0, [r4, #0x10]
+ cmp r1, r0
+ bhs _0221F14E
+ add r0, r1, #1
+ strb r0, [r4, #0xc]
+_0221F14E:
+ ldrb r1, [r4, #0xd]
+ ldrb r0, [r4, #0x11]
+ cmp r1, r0
+ bls _0221F15A
+ sub r0, r1, #1
+ strb r0, [r4, #0xd]
+_0221F15A:
+ ldrb r0, [r4, #0xd]
+ ldrb r1, [r4, #0xc]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221F220 ; =0x04000052
+ strh r1, [r0]
+ b _0221F20E
+_0221F168:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ cmp r0, #4
+ blt _0221F20E
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0221F20E
+_0221F17A:
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221F18E
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0221F20E
+_0221F18E:
+ add r0, r4, #0
+ add r0, #0x9c
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x40]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C884
+ mov r0, #0x16
+ add r2, r4, #0
+ add r2, #0xb0
+ ldrsh r0, [r4, r0]
+ ldr r2, [r2]
+ mov r1, #0x10
+ bl MOD08_0221828C
+ mov r2, #0x16
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ add r2, r2, r3
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0x40]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldrb r1, [r4, #0xc]
+ ldrb r0, [r4, #0xe]
+ cmp r1, r0
+ bls _0221F1D6
+ sub r0, r1, #1
+ strb r0, [r4, #0xc]
+_0221F1D6:
+ ldrb r1, [r4, #0xd]
+ ldrb r0, [r4, #0xf]
+ cmp r1, r0
+ bhs _0221F1E2
+ add r0, r1, #1
+ strb r0, [r4, #0xd]
+_0221F1E2:
+ ldrb r0, [r4, #0xd]
+ ldrb r1, [r4, #0xc]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221F220 ; =0x04000052
+ strh r1, [r0]
+ b _0221F20E
+_0221F1F0:
+ ldr r0, [r4, #0x44]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #0x48]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #0x1c]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl MOD08_02228094
+ add sp, #0x1c
+ pop {r4, r5, pc}
+_0221F20E:
+ ldr r0, [r4, #0x40]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x28]
+ bl FUN_0200BC1C
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ nop
+_0221F220: .word 0x04000052
+
+ thumb_func_start MOD08_0221F224
+MOD08_0221F224: ; 0x0221F224
+ push {r4, r5, lr}
+ sub sp, #0x14
+ mov r1, #0xd4
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x18
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022124B0
+ str r0, [r4, #0x44]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022124B0
+ mov r1, #0
+ str r0, [r4, #0x48]
+ mvn r1, r1
+ ldr r0, [r4, #0x1c]
+ add r2, r1, #0
+ bl MOD08_02227994
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ mov r1, #0
+ strb r1, [r4, #0xc]
+ mov r0, #0x1f
+ strb r0, [r4, #0xd]
+ strb r1, [r4, #0xe]
+ strb r0, [r4, #0xf]
+ strb r0, [r4, #0x10]
+ mov r0, #4
+ strb r0, [r4, #0x11]
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _0221F2B4
+ ldr r0, [r4, #0x44]
+ mov r1, #0
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0x48]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_0200C5C0
+ mov r0, #0xb3
+ strh r0, [r4, #0x14]
+ mov r0, #0x78
+ strh r0, [r4, #0x16]
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x40]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+ mov r0, #0
+ mvn r0, r0
+ strh r0, [r4, #0x12]
+ b _0221F314
+_0221F2B4:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _0221F2E4
+ ldr r0, [r4, #0x48]
+ mov r1, #0
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0x44]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_0200C5C0
+ mov r0, #0x90
+ strh r0, [r4, #0x14]
+ mov r0, #0x40
+ strh r0, [r4, #0x16]
+ b _0221F310
+_0221F2E4:
+ ldr r0, [r4, #0x44]
+ mov r1, #0
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0x48]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_0200C5C0
+ mov r0, #0x4c
+ strh r0, [r4, #0x14]
+ mov r0, #0x78
+ strh r0, [r4, #0x16]
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x40]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+_0221F310:
+ mov r0, #1
+ strh r0, [r4, #0x12]
+_0221F314:
+ mov r1, #0x14
+ mov r2, #0x16
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x40]
+ bl FUN_0200C714
+ ldr r0, [r4, #0x40]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_0200C90C
+ mov r0, #0x12
+ ldrsh r0, [r4, r0]
+ mov r3, #0x64
+ add r1, r0, #0
+ mov r0, #5
+ str r0, [sp]
+ mul r1, r3
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ str r3, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x9c
+ add r2, r1, #0
+ bl MOD08_022181A8
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD08_02218224
+ add r0, r4, #0
+ add r0, #0x9c
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x40]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C884
+ mov r0, #0x16
+ add r2, r4, #0
+ add r2, #0xb0
+ ldrsh r0, [r4, r0]
+ ldr r2, [r2]
+ mov r1, #0x10
+ bl MOD08_0221828C
+ mov r2, #0x16
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ add r2, r2, r3
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0x40]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, #0x1c]
+ ldr r1, _0221F3A8 ; =MOD08_0221F074
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_0221F3A8: .word MOD08_0221F074
+
+ thumb_func_start MOD08_0221F3AC
+MOD08_0221F3AC: ; 0x0221F3AC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r4, r1, #0
+ str r0, [sp, #0x10]
+ ldrb r0, [r4]
+ cmp r0, #8
+ bls _0221F3BC
+ b _0221F710
+_0221F3BC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221F3C8: ; jump table
+ .short _0221F3DA - _0221F3C8 - 2 ; case 0
+ .short _0221F412 - _0221F3C8 - 2 ; case 1
+ .short _0221F46C - _0221F3C8 - 2 ; case 2
+ .short _0221F486 - _0221F3C8 - 2 ; case 3
+ .short _0221F4BA - _0221F3C8 - 2 ; case 4
+ .short _0221F53E - _0221F3C8 - 2 ; case 5
+ .short _0221F5D0 - _0221F3C8 - 2 ; case 6
+ .short _0221F66E - _0221F3C8 - 2 ; case 7
+ .short _0221F6B6 - _0221F3C8 - 2 ; case 8
+_0221F3DA:
+ ldrb r1, [r4, #0xc]
+ ldr r2, _0221F6F4 ; =0x0222C569
+ ldr r5, _0221F6F8 ; =0x0222C56A
+ lsl r0, r1, #2
+ add r3, r1, r0
+ ldr r0, _0221F6FC ; =0x0222C56B
+ ldr r1, _0221F700 ; =0x0222C568
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r2, [r2, r3]
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, _0221F704 ; =0x0222C56C
+ ldrb r0, [r0, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xcc
+ bl MOD08_022181A8
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F412:
+ add r0, r4, #0
+ add r0, #0xcc
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221F458
+ mov r2, #0xcc
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0xce
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #0x20
+ add r2, r4, #0
+ add r2, #0xe0
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x24]
+ ldr r2, [r2]
+ bl MOD08_0221828C
+ mov r2, #0x20
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ b _0221F74A
+_0221F458:
+ ldrb r0, [r4, #0xc]
+ cmp r0, #3
+ ldrb r0, [r4]
+ blo _0221F466
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F466:
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F46C:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #0xf
+ blo _0221F54A
+ mov r0, #0
+ strb r0, [r4, #1]
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F486:
+ add r1, sp, #0x2c
+ ldr r0, [r4, #0x30]
+ add r1, #2
+ add r2, sp, #0x2c
+ bl FUN_0200C7A0
+ add r1, sp, #0x14
+ mov r0, #0x18
+ ldrsh r0, [r1, r0]
+ cmp r0, #0x68
+ bgt _0221F4B2
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ mov r2, #2
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x7c]
+ mov r1, #0
+ mov r2, #2
+ bl FUN_0200C82C
+ b _0221F74A
+_0221F4B2:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F4BA:
+ add r1, sp, #0x28
+ ldr r0, [r4, #0x30]
+ add r1, #2
+ add r2, sp, #0x28
+ bl FUN_0200C7A0
+ add r1, sp, #0x14
+ mov r0, #0x14
+ ldrsh r0, [r1, r0]
+ cmp r0, #0x68
+ bgt _0221F4E6
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ mov r2, #2
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x7c]
+ mov r1, #0
+ mov r2, #2
+ bl FUN_0200C82C
+ b _0221F4F2
+_0221F4E6:
+ ldr r0, _0221F708 ; =0x04000052
+ mov r1, #0x10
+ strh r1, [r0]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221F4F2:
+ ldrb r0, [r4, #1]
+ mov r1, #0x10
+ add r2, r1, #0
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ add r0, r4, #4
+ bl MOD08_02218A58
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ add r0, #8
+ sub r2, #0x10
+ bl MOD08_02218A58
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221F708 ; =0x04000052
+ strh r1, [r0]
+ ldrb r0, [r4, #1]
+ cmp r0, #0xa
+ bne _0221F52C
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ mov r2, #0x10
+ bl FUN_0200C82C
+_0221F52C:
+ ldrb r0, [r4, #1]
+ cmp r0, #0xc
+ bne _0221F54A
+ ldr r0, [r4, #0x7c]
+ mov r1, #0
+ mov r2, #0x10
+ bl FUN_0200C82C
+ b _0221F74A
+_0221F53E:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #0xf
+ bhs _0221F54C
+_0221F54A:
+ b _0221F74A
+_0221F54C:
+ mov r0, #0
+ strb r0, [r4, #1]
+ add r1, sp, #0x24
+ ldr r0, [r4, #0x30]
+ add r1, #2
+ add r2, sp, #0x24
+ bl FUN_0200C7A0
+ add r1, sp, #0x20
+ ldr r0, [r4, #0x7c]
+ add r1, #2
+ add r2, sp, #0x20
+ bl FUN_0200C7A0
+ add r0, r4, #0
+ add r0, #0xc8
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0xca
+ str r0, [sp, #4]
+ add r3, sp, #0x14
+ mov r0, #0x12
+ mov r1, #0x10
+ mov r2, #0xe
+ mov r5, #0xc
+ ldrsh r0, [r3, r0]
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldrsh r3, [r3, r5]
+ bl MOD08_022189D8
+ add r0, r4, #0
+ add r0, #0x2c
+ str r0, [sp]
+ mov r3, #0xca
+ add r2, sp, #0x14
+ mov r0, #0x12
+ mov r1, #0x10
+ ldrsh r0, [r2, r0]
+ ldrsh r1, [r2, r1]
+ mov r2, #0xc8
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ bl MOD08_022189F4
+ add r0, r4, #0
+ add r0, #0x28
+ str r0, [sp]
+ mov r3, #0xca
+ add r2, sp, #0x14
+ mov r0, #0x12
+ mov r1, #0x10
+ ldrsh r0, [r2, r0]
+ ldrsh r1, [r2, r1]
+ mov r2, #0xc8
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ bl MOD08_02218A1C
+ mov r0, #0xa
+ lsl r0, r0, #0xe
+ str r0, [r4, #0x2c]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F5D0:
+ ldr r3, _0221F70C ; =0x0222C545
+ add r2, sp, #0x30
+ mov r1, #0xa
+_0221F5D6:
+ ldrb r0, [r3]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _0221F5D6
+ add r1, sp, #0x1c
+ ldr r0, [r4, #0x30]
+ add r1, #2
+ add r2, sp, #0x1c
+ bl FUN_0200C7A0
+ add r1, sp, #0x18
+ ldr r0, [r4, #0x7c]
+ add r1, #2
+ add r2, sp, #0x18
+ bl FUN_0200C7A0
+ add r3, sp, #0x14
+ mov r0, #8
+ ldrsh r0, [r3, r0]
+ mov r2, #0xa
+ str r0, [sp]
+ mov r0, #4
+ ldrsh r0, [r3, r0]
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ ldrb r1, [r4, #0xc]
+ ldr r0, [r4, #0x2c]
+ lsl r5, r1, #1
+ add r1, sp, #0x30
+ ldrsb r1, [r1, r5]
+ mov r5, #6
+ mul r1, r0
+ str r1, [sp, #0xc]
+ ldrsh r2, [r3, r2]
+ add r0, r4, #0
+ add r1, r4, #0
+ ldrsh r3, [r3, r5]
+ add r0, #0x34
+ add r1, #0x58
+ bl MOD08_02217F50
+ add r3, sp, #0x14
+ mov r0, #4
+ ldrsh r0, [r3, r0]
+ mov r5, #0xa
+ str r0, [sp]
+ mov r0, #8
+ ldrsh r0, [r3, r0]
+ str r0, [sp, #4]
+ str r5, [sp, #8]
+ ldrb r1, [r4, #0xc]
+ ldr r0, [r4, #0x2c]
+ lsl r2, r1, #1
+ add r1, sp, #0x30
+ add r1, #1
+ ldrsb r1, [r1, r2]
+ mov r2, #6
+ mul r1, r0
+ str r1, [sp, #0xc]
+ ldrsh r2, [r3, r2]
+ add r0, r4, #0
+ add r1, r4, #0
+ ldrsh r3, [r3, r5]
+ add r0, #0x80
+ add r1, #0xa4
+ bl MOD08_02217F50
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F66E:
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x34
+ add r1, #0x58
+ mov r5, #0
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _0221F686
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+_0221F686:
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r2, [r4, #0x7c]
+ add r0, #0x80
+ add r1, #0xa4
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _0221F69E
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+_0221F69E:
+ cmp r5, #2
+ bne _0221F74A
+ ldrb r0, [r4, #0xc]
+ cmp r0, #5
+ ldrb r0, [r4]
+ bne _0221F6B0
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F6B0:
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F6B6:
+ mov r5, #0
+ add r0, r4, #4
+ add r1, r5, #0
+ sub r2, r5, #2
+ bl MOD08_02218A58
+ cmp r0, #1
+ bne _0221F6C8
+ add r5, r5, #1
+_0221F6C8:
+ add r0, r4, #0
+ add r0, #8
+ mov r1, #0x10
+ mov r2, #2
+ bl MOD08_02218A58
+ cmp r0, #1
+ bne _0221F6DA
+ add r5, r5, #1
+_0221F6DA:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221F708 ; =0x04000052
+ cmp r5, #2
+ strh r1, [r0]
+ bne _0221F74A
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+ nop
+_0221F6F4: .word 0x0222C569
+_0221F6F8: .word 0x0222C56A
+_0221F6FC: .word 0x0222C56B
+_0221F700: .word 0x0222C568
+_0221F704: .word 0x0222C56C
+_0221F708: .word 0x04000052
+_0221F70C: .word 0x0222C545
+_0221F710:
+ mov r6, #0
+ ldr r0, [r4, #0x10]
+ add r1, r6, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221F738
+ add r5, r4, #0
+ add r7, r6, #0
+_0221F722:
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #0x10]
+ add r1, r7, #0
+ add r5, #0x4c
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221F722
+_0221F738:
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #0x10]
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+_0221F74A:
+ mov r6, #0
+ ldr r0, [r4, #0x10]
+ add r1, r6, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221F7B6
+ add r5, r4, #0
+ add r7, sp, #0x14
+_0221F75C:
+ add r1, sp, #0x14
+ ldr r0, [r5, #0x30]
+ add r1, #2
+ add r2, sp, #0x14
+ bl FUN_0200C7A0
+ mov r0, #0
+ ldrsh r0, [r7, r0]
+ cmp r0, #0x50
+ bge _0221F780
+ ldr r0, [r4, #0x10]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C6B0
+ b _0221F7A6
+_0221F780:
+ mov r0, #2
+ ldrsh r0, [r7, r0]
+ cmp r0, #0x80
+ ldr r0, [r4, #0x10]
+ ble _0221F798
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C6B0
+ b _0221F7A6
+_0221F798:
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x30]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+_0221F7A6:
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ add r5, #0x4c
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221F75C
+_0221F7B6:
+ ldrb r0, [r4]
+ cmp r0, #4
+ blo _0221F7EA
+ mov r5, #0
+ ldr r0, [r4, #0x10]
+ add r1, r5, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221F7E4
+ add r6, r4, #0
+ add r7, r5, #0
+_0221F7CE:
+ ldr r0, [r6, #0x30]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ add r1, r7, #0
+ add r6, #0x4c
+ add r5, r5, #1
+ bl MOD08_02212498
+ cmp r5, r0
+ blt _0221F7CE
+_0221F7E4:
+ ldr r0, [r4, #0x18]
+ bl FUN_0200BC1C
+_0221F7EA:
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221F7F0
+MOD08_0221F7F0: ; 0x0221F7F0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r1, #0
+ mov r1, #0xf0
+ str r0, [sp]
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r1, #0
+ strb r1, [r4]
+ ldr r0, [sp]
+ strb r1, [r4, #1]
+ str r0, [r4, #0x10]
+ str r6, [r4, #0x18]
+ str r5, [r4, #0x14]
+ str r1, [r4, #4]
+ mov r0, #0x10
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x10]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ bl MOD08_022154D4
+ str r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x20]
+ ldr r0, [r4, #0x10]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ bl MOD08_0221552C
+ str r0, [r4, #0x24]
+ ldr r0, [sp]
+ mov r1, #2
+ bl MOD08_022155C4
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD08_022155C4
+ mov r2, #1
+ add r1, r2, #0
+ add r3, r0, #0
+ lsl r1, r5
+ add r5, r2, #0
+ lsl r5, r3
+ orr r1, r5
+ orr r1, r2
+ sub r2, r2, #2
+ ldr r0, [r4, #0x10]
+ add r3, r2, #0
+ bl MOD08_022279D0
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221F92C ; =0x04000052
+ strh r1, [r0]
+ ldr r1, [sp]
+ add r0, sp, #4
+ bl MOD08_02215474
+ str r7, [r4, #0x30]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ mov r6, #1
+ bl MOD08_02212498
+ cmp r0, #1
+ ble _0221F8B2
+ add r5, r4, #0
+ add r5, #0x4c
+ add r7, sp, #4
+_0221F896:
+ ldr r0, [r4, #0x14]
+ ldr r1, [r4, #0x18]
+ add r2, r7, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x30]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ add r5, #0x4c
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221F896
+_0221F8B2:
+ mov r6, #0
+ ldr r0, [r4, #0x10]
+ add r1, r6, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221F8EC
+ add r5, r4, #0
+ mov r7, #1
+_0221F8C4:
+ ldr r0, [r5, #0x30]
+ add r1, r7, #0
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x10]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x30]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ add r5, #0x4c
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221F8C4
+_0221F8EC:
+ ldr r0, [sp]
+ bl MOD08_02212004
+ cmp r0, #1
+ ldr r0, [r4, #0x30]
+ bne _0221F90C
+ mov r1, #0xa0
+ mov r2, #0x2c
+ bl FUN_0200C714
+ ldr r0, [r4, #0x7c]
+ mov r1, #0x50
+ mov r2, #0x1d
+ bl FUN_0200C714
+ b _0221F91E
+_0221F90C:
+ mov r1, #0x64
+ mov r2, #0x2c
+ bl FUN_0200C714
+ ldr r0, [r4, #0x7c]
+ mov r1, #0xb4
+ mov r2, #0x1d
+ bl FUN_0200C714
+_0221F91E:
+ ldr r0, [r4, #0x10]
+ ldr r1, _0221F930 ; =MOD08_0221F3AC
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221F92C: .word 0x04000052
+_0221F930: .word MOD08_0221F3AC
+
+ thumb_func_start MOD08_0221F934
+MOD08_0221F934: ; 0x0221F934
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _0221F946
+ cmp r0, #1
+ beq _0221F9BA
+ b _0221F9EE
+_0221F946:
+ ldrb r0, [r5, #6]
+ cmp r0, #0xf
+ bhs _0221F950
+ add r0, r0, #1
+ strb r0, [r5, #6]
+_0221F950:
+ ldrb r0, [r5, #7]
+ cmp r0, #0
+ beq _0221F95A
+ sub r0, r0, #1
+ strb r0, [r5, #7]
+_0221F95A:
+ ldrb r0, [r5, #7]
+ ldrb r1, [r5, #6]
+ mov r6, #0
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221FA3C ; =0x04000052
+ strh r1, [r0]
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ ble _0221F9AC
+ ldr r4, _0221FA40 ; =0x0222C5DC
+ add r7, r5, #0
+_0221F978:
+ add r1, sp, #0
+ ldr r0, [r7, #0x14]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ ldrb r1, [r5, #4]
+ ldrb r0, [r4]
+ cmp r1, r0
+ blo _0221F9A0
+ add r0, r5, r6
+ ldrb r1, [r0, #1]
+ add r1, r1, #1
+ strb r1, [r0, #1]
+ ldrb r2, [r0, #1]
+ ldrb r1, [r4, #1]
+ cmp r2, r1
+ blo _0221F9A0
+ mov r1, #0
+ strb r1, [r0, #1]
+_0221F9A0:
+ ldrb r0, [r5, #5]
+ add r6, r6, #1
+ add r7, r7, #4
+ add r4, r4, #2
+ cmp r6, r0
+ blt _0221F978
+_0221F9AC:
+ ldrb r0, [r5, #4]
+ cmp r0, #0x2d
+ blo _0221FA18
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _0221FA18
+_0221F9BA:
+ ldrb r0, [r5, #6]
+ cmp r0, #0
+ beq _0221F9C4
+ sub r0, r0, #1
+ strb r0, [r5, #6]
+_0221F9C4:
+ ldrb r0, [r5, #7]
+ cmp r0, #0xf
+ bhs _0221F9CE
+ add r0, r0, #1
+ strb r0, [r5, #7]
+_0221F9CE:
+ ldrb r0, [r5, #6]
+ cmp r0, #0
+ bne _0221F9E0
+ ldrb r0, [r5, #7]
+ cmp r0, #0xf
+ bne _0221F9E0
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+_0221F9E0:
+ ldrb r0, [r5, #7]
+ ldrb r1, [r5, #6]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221FA3C ; =0x04000052
+ strh r1, [r0]
+ b _0221FA18
+_0221F9EE:
+ ldrb r0, [r5, #5]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221FA08
+ add r4, r5, #0
+_0221F9F8:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C3DC
+ ldrb r0, [r5, #5]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, r0
+ blt _0221F9F8
+_0221FA08:
+ ldr r0, [r5, #8]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+_0221FA18:
+ ldrb r0, [r5, #5]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221FA34
+ add r4, r5, #0
+_0221FA22:
+ ldr r0, [r4, #0x14]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldrb r0, [r5, #5]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, r0
+ blt _0221FA22
+_0221FA34:
+ ldr r0, [r5, #0x10]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221FA3C: .word 0x04000052
+_0221FA40: .word 0x0222C5DC
+
+ thumb_func_start MOD08_0221FA44
+MOD08_0221FA44: ; 0x0221FA44
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r7, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ str r3, [sp]
+ bl MOD08_02212014
+ mov r1, #0x44
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _0221FA62
+ bl ErrorHandling
+_0221FA62:
+ mov r0, #0
+ strb r0, [r4, #4]
+ strb r0, [r4]
+ str r5, [r4, #0xc]
+ str r6, [r4, #0x10]
+ add r0, sp, #4
+ add r1, r7, #0
+ str r7, [r4, #8]
+ bl MOD08_02215474
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_02212498
+ strb r0, [r4, #5]
+ mov r0, #0
+ strb r0, [r4, #6]
+ mov r0, #0xf
+ strb r0, [r4, #7]
+ ldrb r0, [r4, #7]
+ ldrb r1, [r4, #6]
+ mov r6, #1
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221FBA8 ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [sp]
+ str r0, [r4, #0x14]
+ ldrb r0, [r4, #5]
+ cmp r0, #1
+ ble _0221FAC4
+ add r5, r4, #4
+_0221FAAE:
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r2, sp, #4
+ bl FUN_0200C154
+ str r0, [r5, #0x14]
+ ldrb r0, [r4, #5]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0221FAAE
+_0221FAC4:
+ add r0, r7, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221FB18
+ add r0, r7, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221FB04
+ add r0, r7, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221FB04
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C5C0
+ b _0221FB0C
+_0221FB04:
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C5C0
+_0221FB0C:
+ ldr r0, [r4, #0x14]
+ mov r1, #0x80
+ mov r2, #0x50
+ bl FUN_0200C714
+ b _0221FB58
+_0221FB18:
+ add r0, r7, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _0221FB46
+ add r0, r7, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _0221FB46
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C5C0
+ b _0221FB4E
+_0221FB46:
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C5C0
+_0221FB4E:
+ ldr r0, [r4, #0x14]
+ mov r1, #0x80
+ mov r2, #0x50
+ bl FUN_0200C714
+_0221FB58:
+ ldrb r0, [r4, #5]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221FB98
+ add r5, r4, #0
+_0221FB62:
+ add r1, r4, r6
+ mov r0, #0
+ strb r0, [r1, #1]
+ ldr r0, [r5, #0x14]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r5, #0x14]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #8]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _0221FB8E
+ mov r2, #0xfe
+ ldr r0, [r5, #0x14]
+ ldr r1, _0221FBAC ; =0xBF800000
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+_0221FB8E:
+ ldrb r0, [r4, #5]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0221FB62
+_0221FB98:
+ ldr r1, _0221FBB0 ; =MOD08_0221F934
+ ldr r3, _0221FBB4 ; =0x0000044C
+ add r0, r7, #0
+ add r2, r4, #0
+ bl MOD08_022123E4
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221FBA8: .word 0x04000052
+_0221FBAC: .word 0xBF800000
+_0221FBB0: .word MOD08_0221F934
+_0221FBB4: .word 0x0000044C
+
+ thumb_func_start MOD08_0221FBB8
+MOD08_0221FBB8: ; 0x0221FBB8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r7, r0, #0
+ ldrb r0, [r4]
+ mov r6, #0
+ cmp r0, #3
+ bls _0221FBCA
+ b _0221FD70
+_0221FBCA:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221FBD6: ; jump table
+ .short _0221FBDE - _0221FBD6 - 2 ; case 0
+ .short _0221FC12 - _0221FBD6 - 2 ; case 1
+ .short _0221FCEA - _0221FBD6 - 2 ; case 2
+ .short _0221FD36 - _0221FBD6 - 2 ; case 3
+_0221FBDE:
+ ldrb r0, [r4, #9]
+ cmp r0, #0xf
+ bhs _0221FBE8
+ add r0, r0, #1
+ strb r0, [r4, #9]
+_0221FBE8:
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ beq _0221FBF2
+ sub r0, r0, #1
+ strb r0, [r4, #0xa]
+_0221FBF2:
+ ldrb r0, [r4, #9]
+ cmp r0, #0xf
+ bne _0221FC04
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ bne _0221FC04
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221FC04:
+ ldrb r0, [r4, #0xa]
+ ldrb r1, [r4, #9]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221FDCC ; =0x04000052
+ strh r1, [r0]
+ b _0221FD9C
+_0221FC12:
+ ldr r0, [r4, #0x30]
+ cmp r0, #3
+ bhi _0221FC78
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221FC24: ; jump table
+ .short _0221FC2C - _0221FC24 - 2 ; case 0
+ .short _0221FC46 - _0221FC24 - 2 ; case 1
+ .short _0221FC60 - _0221FC24 - 2 ; case 2
+ .short _0221FC60 - _0221FC24 - 2 ; case 3
+_0221FC2C:
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x24]
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x34]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl FUN_0200C644
+ b _0221FC78
+_0221FC46:
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x20]
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x34]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl FUN_0200C644
+ b _0221FC78
+_0221FC60:
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x2c]
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x34]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl FUN_0200C644
+_0221FC78:
+ add r1, sp, #8
+ ldr r0, [r4, #0x34]
+ add r1, #2
+ add r2, sp, #8
+ bl FUN_0200C7A0
+ ldr r1, [r4, #0x30]
+ ldr r0, _0221FDD0 ; =0x0222C614
+ lsl r2, r1, #3
+ ldrsh r0, [r0, r2]
+ ldr r5, _0221FDD4 ; =0x0222C612
+ add r3, sp, #8
+ str r0, [sp]
+ ldr r0, _0221FDD8 ; =0x0222C5D8
+ ldrsh r2, [r5, r2]
+ ldrb r0, [r0, r1]
+ mov r1, #2
+ mov r5, #0
+ str r0, [sp, #4]
+ ldrsh r1, [r3, r1]
+ add r0, r4, #0
+ ldrsh r3, [r3, r5]
+ add r0, #0x3c
+ bl MOD08_02217E80
+ add r1, sp, #8
+ ldr r0, [r4, #0x38]
+ add r1, #2
+ add r2, sp, #8
+ bl FUN_0200C7A0
+ ldr r1, [r4, #0x30]
+ ldr r0, _0221FDDC ; =0x0222C618
+ lsl r2, r1, #3
+ ldrsh r0, [r0, r2]
+ ldr r5, _0221FDE0 ; =0x0222C616
+ add r3, sp, #8
+ str r0, [sp]
+ ldr r0, _0221FDD8 ; =0x0222C5D8
+ ldrsh r2, [r5, r2]
+ ldrb r0, [r0, r1]
+ mov r1, #2
+ mov r5, #0
+ str r0, [sp, #4]
+ ldrsh r1, [r3, r1]
+ add r0, r4, #0
+ ldrsh r3, [r3, r5]
+ add r0, #0x60
+ bl MOD08_02217E80
+ ldr r0, [r4, #0x30]
+ add r0, r0, #1
+ str r0, [r4, #0x30]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221FD9C
+_0221FCEA:
+ add r0, r4, #0
+ ldr r1, [r4, #0x34]
+ add r0, #0x3c
+ add r5, r6, #0
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _0221FCFC
+ add r5, r5, #1
+_0221FCFC:
+ add r0, r4, #0
+ ldr r1, [r4, #0x38]
+ add r0, #0x60
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _0221FD0C
+ add r5, r5, #1
+_0221FD0C:
+ cmp r5, #2
+ blt _0221FD9C
+ ldr r0, [r4, #0x30]
+ cmp r0, #3
+ bgt _0221FD2E
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl FUN_0200C644
+ ldrb r0, [r4]
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221FD9C
+_0221FD2E:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221FD9C
+_0221FD36:
+ ldrb r0, [r4, #9]
+ cmp r0, #0
+ beq _0221FD40
+ sub r0, r0, #1
+ strb r0, [r4, #9]
+_0221FD40:
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0xf
+ bhs _0221FD4A
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+_0221FD4A:
+ ldrb r1, [r4, #0xa]
+ cmp r1, #7
+ blo _0221FD52
+ mov r6, #1
+_0221FD52:
+ ldrb r0, [r4, #9]
+ cmp r0, #0
+ bne _0221FD62
+ cmp r1, #0xf
+ bne _0221FD62
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221FD62:
+ ldrb r0, [r4, #0xa]
+ ldrb r1, [r4, #9]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221FDCC ; =0x04000052
+ strh r1, [r0]
+ b _0221FD9C
+_0221FD70:
+ ldrb r0, [r4, #8]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221FD8A
+ add r5, r4, #0
+_0221FD7A:
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C3DC
+ ldrb r0, [r4, #8]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0221FD7A
+_0221FD8A:
+ ldr r0, [r4, #0xc]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0221FD9C:
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _0221FDC2
+ cmp r6, #0
+ bne _0221FDC2
+ ldrb r0, [r4, #8]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221FDC2
+ add r5, r4, #0
+_0221FDB0:
+ ldr r0, [r5, #0x18]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldrb r0, [r4, #8]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0221FDB0
+_0221FDC2:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200BC1C
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221FDCC: .word 0x04000052
+_0221FDD0: .word 0x0222C614
+_0221FDD4: .word 0x0222C612
+_0221FDD8: .word 0x0222C5D8
+_0221FDDC: .word 0x0222C618
+_0221FDE0: .word 0x0222C616
+
+ thumb_func_start MOD08_0221FDE4
+MOD08_0221FDE4: ; 0x0221FDE4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ str r0, [sp]
+ add r5, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02212014
+ mov r1, #0x84
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _0221FE02
+ bl ErrorHandling
+_0221FE02:
+ mov r0, #0
+ strb r0, [r4, #7]
+ strb r0, [r4]
+ str r5, [r4, #0x10]
+ str r6, [r4, #0x14]
+ str r0, [r4, #0x30]
+ ldr r0, [sp]
+ ldr r1, [sp]
+ str r0, [r4, #0xc]
+ add r0, sp, #4
+ bl MOD08_02215474
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r4, #0xc]
+ add r2, r1, #0
+ bl MOD08_02227994
+ mov r1, #0
+ strb r1, [r4, #9]
+ mov r0, #0xf
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #0xa]
+ ldrb r2, [r4, #9]
+ lsl r0, r0, #8
+ orr r2, r0
+ ldr r0, _0221FF0C ; =0x04000052
+ strh r2, [r0]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212498
+ strb r0, [r4, #8]
+ str r7, [r4, #0x18]
+ ldrb r0, [r4, #8]
+ mov r6, #1
+ cmp r0, #1
+ ble _0221FE66
+ add r5, r4, #4
+ add r7, sp, #4
+_0221FE50:
+ ldr r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ add r2, r7, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x18]
+ ldrb r0, [r4, #8]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0221FE50
+_0221FE66:
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x20]
+ mov r1, #1
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x2c]
+ mov r1, #3
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_0200C8D0
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200C8D0
+ ldrb r0, [r4, #8]
+ mov r7, #0
+ cmp r0, #0
+ ble _0221FEDC
+ ldr r6, _0221FF10 ; =0x0222C5FA
+ add r5, r4, #0
+_0221FEB2:
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C5E0
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r6, r2]
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C714
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldrb r0, [r4, #8]
+ add r7, r7, #1
+ add r5, r5, #4
+ add r6, r6, #4
+ cmp r7, r0
+ blt _0221FEB2
+_0221FEDC:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x20]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x2c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [sp]
+ ldr r1, _0221FF14 ; =MOD08_0221FBB8
+ ldr r3, _0221FF18 ; =0x0000044C
+ add r2, r4, #0
+ bl MOD08_022123E4
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221FF0C: .word 0x04000052
+_0221FF10: .word 0x0222C5FA
+_0221FF14: .word MOD08_0221FBB8
+_0221FF18: .word 0x0000044C
+
+ thumb_func_start MOD08_0221FF1C
+MOD08_0221FF1C: ; 0x0221FF1C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #7
+ bls _0221FF2C
+ b _02220084
+_0221FF2C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221FF38: ; jump table
+ .short _0221FF48 - _0221FF38 - 2 ; case 0
+ .short _0221FF5C - _0221FF38 - 2 ; case 1
+ .short _0221FF7E - _0221FF38 - 2 ; case 2
+ .short _0221FFAC - _0221FF38 - 2 ; case 3
+ .short _0221FFDA - _0221FF38 - 2 ; case 4
+ .short _0221FFF8 - _0221FF38 - 2 ; case 5
+ .short _02220020 - _0221FF38 - 2 ; case 6
+ .short _02220068 - _0221FF38 - 2 ; case 7
+_0221FF48:
+ ldrb r0, [r4, #0xe]
+ sub r0, r0, #1
+ strb r0, [r4, #0xe]
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0xa
+ bhi _0221FF68
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_0221FF5C:
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xd]
+ cmp r0, #3
+ bhs _0221FF6A
+_0221FF68:
+ b _02220092
+_0221FF6A:
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C644
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_0221FF7E:
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xd]
+ cmp r0, #3
+ bhi _0221FFA0
+ ldr r0, [r4, #0x38]
+ ldr r1, _0222009C ; =0x3DCCCCCD
+ bl _fadd
+ str r0, [r4, #0x38]
+ ldr r1, [r4, #0x38]
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl FUN_0200C884
+ b _02220092
+_0221FFA0:
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_0221FFAC:
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xd]
+ cmp r0, #3
+ bhi _0221FFCE
+ ldr r0, [r4, #0x38]
+ ldr r1, _0222009C ; =0x3DCCCCCD
+ bl _fsub
+ str r0, [r4, #0x38]
+ ldr r1, [r4, #0x38]
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl FUN_0200C884
+ b _02220092
+_0221FFCE:
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_0221FFDA:
+ ldrb r0, [r4, #0xe]
+ sub r0, r0, #1
+ strb r0, [r4, #0xe]
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0xa
+ bhi _02220092
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ str r1, [r0]
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_0221FFF8:
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0x1e
+ bls _02220010
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_02220010:
+ ldr r0, [r4, #0x3c]
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _02220092
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_02220020:
+ bl FUN_0201B9EC
+ mov r1, #0xa
+ bl _s32_div_f
+ add r5, r1, #0
+ add r2, sp, #8
+ ldr r0, [r4, #0x10]
+ add r1, sp, #8
+ add r2, #2
+ add r5, #0xa
+ bl FUN_0200C7A0
+ ldrb r0, [r4, #0xf]
+ add r3, sp, #8
+ mov r1, #0
+ lsl r2, r0, #2
+ ldr r0, _022200A0 ; =0x0222C5E4
+ ldrsh r0, [r0, r2]
+ str r0, [sp]
+ lsl r0, r5, #0x10
+ ldr r5, _022200A4 ; =0x0222C5E2
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldrsh r2, [r5, r2]
+ add r0, r4, #0
+ mov r5, #2
+ ldrsh r1, [r3, r1]
+ ldrsh r3, [r3, r5]
+ add r0, #0x14
+ bl MOD08_02217E80
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_02220068:
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _02220092
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200C644
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02220084:
+ ldr r0, [r4, #0x3c]
+ mov r1, #3
+ str r1, [r0]
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_02220092:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C5A8
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_0222009C: .word 0x3DCCCCCD
+_022200A0: .word 0x0222C5E4
+_022200A4: .word 0x0222C5E2
+
+ thumb_func_start MOD08_022200A8
+MOD08_022200A8: ; 0x022200A8
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhi _02220164
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022200C0: ; jump table
+ .short _022200C8 - _022200C0 - 2 ; case 0
+ .short _022200F4 - _022200C0 - 2 ; case 1
+ .short _02220116 - _022200C0 - 2 ; case 2
+ .short _02220142 - _022200C0 - 2 ; case 3
+_022200C8:
+ ldrb r6, [r4, #2]
+ mov r3, #1
+ mov r2, #0
+ cmp r6, #0
+ ble _022200E8
+ ldr r0, _0222017C ; =0x00000514
+ add r5, r4, #0
+_022200D6:
+ ldr r1, [r5, r0]
+ cmp r1, #1
+ beq _022200E0
+ mov r3, #0
+ b _022200E8
+_022200E0:
+ add r2, r2, #1
+ add r5, r5, #4
+ cmp r2, r6
+ blt _022200D6
+_022200E8:
+ cmp r3, #1
+ bne _02220174
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220174
+_022200F4:
+ ldrb r0, [r4, #2]
+ mov r5, #0
+ cmp r0, #0
+ ble _0222010E
+ ldr r0, _0222017C ; =0x00000514
+ add r3, r4, #0
+ mov r2, #2
+_02220102:
+ str r2, [r3, r0]
+ ldrb r1, [r4, #2]
+ add r5, r5, #1
+ add r3, r3, #4
+ cmp r5, r1
+ blt _02220102
+_0222010E:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220174
+_02220116:
+ ldrb r5, [r4, #2]
+ mov r2, #1
+ mov r6, #0
+ cmp r5, #0
+ ble _02220136
+ ldr r0, _0222017C ; =0x00000514
+ add r3, r4, #0
+_02220124:
+ ldr r1, [r3, r0]
+ cmp r1, #3
+ beq _0222012E
+ mov r2, #0
+ b _02220136
+_0222012E:
+ add r6, r6, #1
+ add r3, r3, #4
+ cmp r6, r5
+ blt _02220124
+_02220136:
+ cmp r2, #1
+ bne _02220174
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220174
+_02220142:
+ ldrb r0, [r4, #2]
+ mov r6, #0
+ cmp r0, #0
+ ble _0222015C
+ add r5, r4, #0
+_0222014C:
+ ldr r0, [r5, #0x24]
+ bl FUN_0200C3DC
+ ldrb r0, [r4, #2]
+ add r6, r6, #1
+ add r5, #0x40
+ cmp r6, r0
+ blt _0222014C
+_0222015C:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220174
+_02220164:
+ ldr r0, [r4, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+_02220174:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222017C: .word 0x00000514
+
+ thumb_func_start MOD08_02220180
+MOD08_02220180: ; 0x02220180
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x50
+ str r0, [sp]
+ add r5, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02212014
+ ldr r1, _022202E8 ; =0x00000564
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _0222019E
+ bl ErrorHandling
+_0222019E:
+ mov r0, #0
+ strb r0, [r4, #1]
+ strb r0, [r4]
+ str r5, [r4, #0xc]
+ ldr r0, [sp]
+ str r6, [r4, #0x10]
+ str r0, [r4, #8]
+ ldr r1, [sp]
+ add r0, sp, #0x1c
+ bl MOD08_02215474
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_02212498
+ strb r0, [r4, #2]
+ mov r0, #0xc
+ strb r0, [r4, #2]
+ mov r0, #0
+ str r7, [r4, #0x24]
+ str r0, [sp, #4]
+ str r0, [sp, #0x14]
+ ldrb r0, [r4, #2]
+ cmp r0, #0
+ ble _022202D8
+ ldr r0, _022202EC ; =0x00000514
+ add r5, r4, #0
+ add r0, r4, r0
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ str r0, [sp, #8]
+ add r0, #0x14
+ str r0, [sp, #8]
+_022201EC:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _022201FE
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r2, sp, #0x1c
+ bl FUN_0200C154
+ str r0, [r5, #0x24]
+_022201FE:
+ add r1, r5, #0
+ ldr r6, [r5, #0x24]
+ add r1, #0x20
+ mov r0, #0
+ strb r0, [r1]
+ add r1, r5, #0
+ add r1, #0x21
+ strb r0, [r1]
+ bl FUN_0201B9EC
+ mov r1, #0xa
+ bl _s32_div_f
+ ldr r0, [sp, #0x14]
+ add r1, #0xa
+ add r1, r0, r1
+ add r0, r5, #0
+ add r0, #0x22
+ strb r1, [r0]
+ bl FUN_0201B9EC
+ mov r1, #6
+ bl _s32_div_f
+ add r0, r5, #0
+ add r0, #0x23
+ strb r1, [r0]
+ mov r0, #0xfe
+ lsl r0, r0, #0x16
+ str r0, [r5, #0x4c]
+ ldr r0, [r4, #8]
+ ldr r1, _022202F0 ; =0x0222C632
+ str r0, [r5, #0x14]
+ ldr r0, [r4, #0xc]
+ str r0, [r5, #0x18]
+ ldr r0, [r4, #0x10]
+ str r0, [r5, #0x1c]
+ ldr r0, [sp, #0xc]
+ str r0, [r5, #0x50]
+ ldr r0, [sp, #4]
+ lsl r0, r0, #3
+ str r0, [sp, #0x18]
+ add r7, r1, r0
+ bl FUN_0201B9EC
+ mov r1, #6
+ ldrsh r1, [r7, r1]
+ bl _s32_div_f
+ mov r0, #2
+ ldrsh r0, [r7, r0]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ bl FUN_0201B9EC
+ mov r1, #4
+ ldrsh r1, [r7, r1]
+ bl _s32_div_f
+ ldr r2, _022202F0 ; =0x0222C632
+ ldr r0, [sp, #0x18]
+ ldrsh r0, [r2, r0]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ ldr r1, [sp, #0x10]
+ add r0, r6, #0
+ bl FUN_0200C714
+ add r0, r6, #0
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r1, [r5, #0x4c]
+ add r0, r6, #0
+ add r2, r1, #0
+ bl FUN_0200C884
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [sp]
+ ldr r1, _022202F4 ; =MOD08_0221FF1C
+ ldr r2, [sp, #8]
+ ldr r3, _022202F8 ; =0x0000044B
+ bl MOD08_022123E4
+ ldr r0, [sp, #4]
+ mov r1, #6
+ add r0, r0, #1
+ bl _s32_div_f
+ ldr r0, [sp, #0xc]
+ str r1, [sp, #4]
+ add r0, r0, #4
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ ldrb r1, [r4, #2]
+ add r0, #0x40
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x14]
+ add r5, #0x40
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, r1
+ blt _022201EC
+_022202D8:
+ ldr r0, [sp]
+ ldr r1, _022202FC ; =MOD08_022200A8
+ ldr r3, _02220300 ; =0x0000044D
+ add r2, r4, #0
+ bl MOD08_022123E4
+ add sp, #0x50
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022202E8: .word 0x00000564
+_022202EC: .word 0x00000514
+_022202F0: .word 0x0222C632
+_022202F4: .word MOD08_0221FF1C
+_022202F8: .word 0x0000044B
+_022202FC: .word MOD08_022200A8
+_02220300: .word 0x0000044D
+
+ thumb_func_start MOD08_02220304
+MOD08_02220304: ; 0x02220304
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #4]
+ cmp r0, #3
+ bhi _022203EA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222031E: ; jump table
+ .short _02220326 - _0222031E - 2 ; case 0
+ .short _02220344 - _0222031E - 2 ; case 1
+ .short _02220396 - _0222031E - 2 ; case 2
+ .short _022203C0 - _0222031E - 2 ; case 3
+_02220326:
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ b _02220410
+_02220344:
+ add r0, r4, #0
+ add r0, #0x2c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02220410
+ mov r0, #0
+ str r0, [r4]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD08_022155C4
+ add r5, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD08_02218998
+ add r6, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_02212014
+ mov r1, #0xc8
+ str r1, [sp]
+ mov r3, #3
+ str r5, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ str r6, [sp, #0xc]
+ str r0, [sp, #0x10]
+ add r0, r1, #0
+ mov r1, #0xa0
+ add r2, r1, #0
+ add r2, #0xcc
+ lsl r3, r3, #0xe
+ bl MOD08_022188DC
+ str r0, [r4, #0x28]
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ b _02220410
+_02220396:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ cmp r0, #0x78
+ blt _02220410
+ ldr r0, [r4, #0x28]
+ bl MOD08_0221894C
+ mov r1, #2
+ mov r2, #0x10
+ str r1, [sp]
+ add r0, r4, #0
+ str r2, [sp, #4]
+ add r0, #0x2c
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ b _02220410
+_022203C0:
+ add r0, r4, #0
+ add r0, #0x2c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02220410
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ b _02220410
+_022203EA:
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _02220428 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_02214850
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+_02220410:
+ ldr r0, [r4, #0x24]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x20]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02220428: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_0222042C
+MOD08_0222042C: ; 0x0222042C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ mov r1, #0x54
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #4
+ bl MOD08_02227B70
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_022124D8
+ mov r1, #2
+ str r0, [r4, #0x20]
+ bl FUN_0200C90C
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _022204C0 ; =0xFFFF1FFF
+ and r2, r1
+ lsr r1, r0, #0xb
+ orr r1, r2
+ str r1, [r0]
+ add r0, #0x4a
+ ldrh r2, [r0]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x1b
+ orr r1, r2
+ strh r1, [r0]
+ ldrh r2, [r0]
+ ldr r1, _022204C4 ; =0xFFFFC0FF
+ and r2, r1
+ mov r1, #0x17
+ lsl r1, r1, #8
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD08_022124D8
+ mov r1, #1
+ str r0, [r4, #0x24]
+ bl FUN_0200C90C
+ mov r1, #0x10
+ str r1, [sp]
+ add r0, r4, #0
+ mov r2, #2
+ str r1, [sp, #4]
+ add r0, #0x2c
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_0221477C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ ldr r0, [r4, #8]
+ ldr r1, _022204C8 ; =MOD08_02220304
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_022204C0: .word 0xFFFF1FFF
+_022204C4: .word 0xFFFFC0FF
+_022204C8: .word MOD08_02220304
+
+ thumb_func_start MOD08_022204CC
+MOD08_022204CC: ; 0x022204CC
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0200C658
+ cmp r0, #1
+ bne _022204DE
+ add r0, r4, #0
+ bl FUN_0200C5A8
+_022204DE:
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022204E0
+MOD08_022204E0: ; 0x022204E0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r1, [sp, #4]
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ mov r1, #0x1c
+ ldrsh r0, [r0, r1]
+ cmp r0, #0
+ bgt _02220504
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x30]
+ bl MOD08_022204CC
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x34]
+ bl MOD08_022204CC
+ b _0222050A
+_02220504:
+ sub r1, r0, #1
+ ldr r0, [sp, #4]
+ strh r1, [r0, #0x1c]
+_0222050A:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x28]
+ bl MOD08_022204CC
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x2c]
+ bl MOD08_022204CC
+ ldr r4, [sp, #4]
+ mov r6, #0
+ add r7, r6, #0
+ add r5, r4, #0
+_02220522:
+ mov r0, #0x1e
+ ldrsh r0, [r4, r0]
+ add r0, r0, #1
+ strh r0, [r4, #0x1e]
+ mov r0, #0x1e
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x28
+ blt _0222053C
+ ldr r0, [r5, #0x28]
+ mov r1, #0
+ bl FUN_0200C644
+ add r6, r6, #1
+_0222053C:
+ add r7, r7, #1
+ add r4, r4, #2
+ add r5, r5, #4
+ cmp r7, #4
+ blt _02220522
+ cmp r6, #4
+ bne _02220570
+ ldr r4, [sp, #4]
+ mov r5, #0
+_0222054E:
+ ldr r0, [r4, #0x28]
+ bl FUN_0200C3DC
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #4
+ blt _0222054E
+ ldr r0, [sp, #4]
+ ldr r1, [sp]
+ ldr r0, [r0, #4]
+ bl MOD08_02212438
+ ldr r0, [sp, #4]
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02220570:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x10]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222057C
+MOD08_0222057C: ; 0x0222057C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ mov r1, #0x38
+ add r5, r0, #0
+ add r4, r3, #0
+ bl MOD08_02228064
+ add r6, r0, #0
+ mov r0, #0xa
+ strh r0, [r6, #0x1c]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227B70
+ ldr r1, [r6, #4]
+ add r0, sp, #0
+ bl MOD08_02215474
+ str r4, [r6, #0x28]
+ mov r0, #0
+ strh r0, [r6, #0x1e]
+ mov r7, #1
+ add r4, r6, #2
+ add r5, r6, #4
+_022205AC:
+ mov r0, #0
+ strh r0, [r4, #0x1e]
+ ldr r0, [r6, #8]
+ ldr r1, [r6, #0x10]
+ add r2, sp, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x28]
+ add r7, r7, #1
+ add r4, r4, #2
+ add r5, r5, #4
+ cmp r7, #4
+ blt _022205AC
+ ldr r0, [r6, #0x28]
+ mov r1, #1
+ bl FUN_0200C8D0
+ ldr r0, [r6, #0x2c]
+ mov r1, #1
+ bl FUN_0200C8D0
+ mov r1, #0x1f
+ ldr r0, [r6, #0x28]
+ mvn r1, r1
+ mov r2, #0
+ bl FUN_0200C82C
+ mov r1, #0x1f
+ ldr r0, [r6, #0x2c]
+ mvn r1, r1
+ mov r2, #0x20
+ bl FUN_0200C82C
+ ldr r0, [r6, #0x30]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_0200C82C
+ mov r1, #0x20
+ ldr r0, [r6, #0x34]
+ add r2, r1, #0
+ bl FUN_0200C82C
+ ldr r0, [r6, #4]
+ ldr r1, _02220610 ; =MOD08_022204E0
+ add r2, r6, #0
+ bl MOD08_02212400
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02220610: .word MOD08_022204E0
+
+ thumb_func_start MOD08_02220614
+MOD08_02220614: ; 0x02220614
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r1, #0
+ mov r4, #0
+ str r0, [sp, #0x1c]
+ str r4, [sp, #0x20]
+ add r6, r5, #0
+ add r7, r5, #0
+_02220624:
+ mov r0, #0x22
+ ldrsh r0, [r6, r0]
+ add r0, r0, #1
+ strh r0, [r6, #0x22]
+ mov r0, #0x22
+ ldrsh r0, [r6, r0]
+ cmp r0, #0x14
+ blt _02220676
+ ldr r0, [r7, #0x2c]
+ bl MOD08_022204CC
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x6e
+ bne _02220676
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r5, #4]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldr r0, [r5, #0x2c]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x34]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x38]
+ mov r1, #1
+ bl FUN_0200C90C
+ mov r0, #0xf
+ str r0, [r5, #0x54]
+ mov r0, #0
+ str r0, [r5, #0x58]
+_02220676:
+ add r4, r4, #1
+ add r6, r6, #2
+ add r7, r7, #4
+ cmp r4, #4
+ blt _02220624
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x32
+ bne _022206BA
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x3c]
+_022206BA:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x3c
+ bne _022206F4
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0xe
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x40]
+_022206F4:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x46
+ bne _0222072E
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x44]
+_0222072E:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x50
+ bne _02220768
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0xe
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x48]
+_02220768:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x5a
+ bne _022207A2
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x4c]
+_022207A2:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x64
+ bne _022207DC
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0xe
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x50]
+_022207DC:
+ mov r1, #0x22
+ ldrsh r0, [r5, r1]
+ cmp r0, #0x6e
+ bne _02220816
+ sub r1, #0x23
+ ldr r0, [r5, #4]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldr r0, [r5, #0x2c]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x34]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x38]
+ mov r1, #1
+ bl FUN_0200C90C
+ mov r0, #0xf
+ str r0, [r5, #0x54]
+ mov r0, #0
+ str r0, [r5, #0x58]
+_02220816:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x6e
+ blt _0222084E
+ ldr r0, [r5, #0x54]
+ cmp r0, #0
+ ble _02220828
+ sub r0, r0, #1
+ str r0, [r5, #0x54]
+_02220828:
+ ldr r0, [r5, #0x58]
+ cmp r0, #0xf
+ bge _02220832
+ add r0, r0, #1
+ str r0, [r5, #0x58]
+_02220832:
+ ldr r0, [r5, #0x58]
+ ldr r1, [r5, #0x54]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0222089C ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [r5, #0x54]
+ cmp r0, #0
+ bne _0222084E
+ ldr r0, [r5, #0x58]
+ cmp r0, #0xf
+ bne _0222084E
+ mov r0, #4
+ str r0, [sp, #0x20]
+_0222084E:
+ ldr r0, [sp, #0x20]
+ cmp r0, #4
+ bne _0222088A
+ mov r6, #0
+ add r4, r5, #0
+_02220858:
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _02220858
+ mov r6, #0
+ add r4, r5, #0
+_0222086A:
+ ldr r0, [r4, #0x3c]
+ bl MOD08_02218B08
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #6
+ blt _0222086A
+ ldr r0, [r5, #4]
+ ldr r1, [sp, #0x1c]
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FUN_02016A18
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+_0222088A:
+ ldr r0, [r5, #0x10]
+ bl FUN_0200BC1C
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02220894: .word 0x0000FFFF
+_02220898: .word 0x000003EA
+_0222089C: .word 0x04000052
+
+ thumb_func_start MOD08_022208A0
+MOD08_022208A0: ; 0x022208A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ mov r1, #0x5c
+ str r0, [sp]
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0xa
+ strh r0, [r4, #0x20]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r1, [r4, #4]
+ add r0, sp, #0xc
+ bl MOD08_02215474
+ str r5, [r4, #0x2c]
+ mov r0, #0
+ strh r0, [r4, #0x22]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r7, #5
+ add r6, r4, #2
+ add r5, r4, #4
+_022208D4:
+ bl FUN_0201B9EC
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x1e
+ sub r2, r2, r1
+ mov r0, #0x1e
+ ror r2, r0
+ add r0, r1, r2
+ add r0, r7, r0
+ strh r0, [r6, #0x22]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x10]
+ add r2, sp, #0xc
+ bl FUN_0200C154
+ str r0, [r5, #0x2c]
+ ldr r0, [sp, #8]
+ add r7, r7, #5
+ add r0, r0, #1
+ add r6, r6, #2
+ add r5, r5, #4
+ str r0, [sp, #8]
+ cmp r0, #4
+ blt _022208D4
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C8D0
+ ldr r0, [r4, #0x34]
+ mov r1, #1
+ bl FUN_0200C8D0
+ ldr r0, [sp]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ add r0, r5, #0
+ mov r1, #0x29
+ bl FUN_0200782C
+ ldr r0, [sp]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _02220956
+ mov r7, #0x8c
+ b _02220958
+_02220956:
+ mov r7, #0x54
+_02220958:
+ mov r6, #0
+ add r5, r4, #0
+_0222095C:
+ ldr r0, [r5, #0x2c]
+ ldr r1, [sp, #4]
+ add r2, r7, #0
+ bl FUN_0200C714
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0222095C
+ ldr r0, [sp]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD08_02227470
+ cmp r0, #3
+ ldr r0, [r4, #0x2c]
+ bne _022209A2
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x34]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x30]
+ mov r1, #0x12
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x38]
+ mov r1, #0x12
+ bl FUN_0200C6C4
+ b _022209C0
+_022209A2:
+ mov r1, #0x12
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x34]
+ mov r1, #0x12
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x30]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x38]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+_022209C0:
+ mov r1, #0x1f
+ ldr r0, [r4, #0x2c]
+ mvn r1, r1
+ mov r2, #0
+ bl FUN_0200C82C
+ mov r1, #0x27
+ ldr r0, [r4, #0x38]
+ mvn r1, r1
+ mov r2, #4
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x34]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x30]
+ mov r1, #0x28
+ mov r2, #4
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200C68C
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #4]
+ ldr r1, _02220A04 ; =MOD08_02220614
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02220A04: .word MOD08_02220614
+
+ thumb_func_start MOD08_02220A08
+MOD08_02220A08: ; 0x02220A08
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ bne _02220A8E
+ add r0, r4, #0
+ add r0, #0x60
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _02220A4C
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl MOD08_02228094
+ add sp, #0xc
+ pop {r4, r5, pc}
+_02220A4C:
+ add r0, r4, #0
+ add r0, #0x60
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x28]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x58
+ mov r2, #0x5a
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x28]
+ ldr r3, [r4, #0x74]
+ bl MOD08_02218314
+ ldr r0, [r4, #0x28]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x3c]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x50]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+_02220A8E:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02220A94
+MOD08_02220A94: ; 0x02220A94
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r1, #0x84
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ mov r1, #1
+ str r0, [r4, #0x24]
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x58
+ strh r0, [r1]
+ mov r0, #0x58
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0x5c
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_0221552C
+ add r1, r4, #0
+ add r1, #0x5a
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x28]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_022124D8
+ str r0, [r4, #0x50]
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_0200C840
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x28]
+ bl FUN_0200C6B0
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x3c]
+ bl FUN_0200C6B0
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x50]
+ bl FUN_0200C6B0
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02215490
+ sub r0, r0, #3
+ cmp r0, #1
+ ldr r0, [r4, #0x28]
+ bhi _02220B62
+ mov r1, #0x1e
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x3c]
+ mov r1, #0x32
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x50]
+ mov r1, #0x46
+ bl FUN_0200C6C4
+ b _02220B78
+_02220B62:
+ mov r1, #0x3c
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x3c]
+ mov r1, #0x46
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x50]
+ mov r1, #0x32
+ bl FUN_0200C6C4
+_02220B78:
+ mov r2, #0x14
+ mov r1, #0x64
+ str r2, [sp]
+ str r1, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x60
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldr r0, [r4, #4]
+ ldr r1, _02220B9C ; =MOD08_02220A08
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02220B9C: .word MOD08_02220A08
+
+ thumb_func_start MOD08_02220BA0
+MOD08_02220BA0: ; 0x02220BA0
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02220BB4
+ cmp r0, #1
+ beq _02220CB2
+ b _02220D00
+_02220BB4:
+ add r0, r4, #0
+ add r0, #0xa0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02220C2E
+ mov r0, #0x22
+ ldrsh r3, [r4, r0]
+ mov r0, #0x20
+ ldrsh r1, [r4, r0]
+ mov r0, #3
+ add r2, r1, #0
+ str r3, [sp]
+ add r2, #0x30
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ add r0, #0x34
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r0, #0x22
+ ldrsh r1, [r4, r0]
+ mov r0, #0xa4
+ ldrsh r0, [r4, r0]
+ add r2, r1, r0
+ mov r0, #0x20
+ ldrsh r1, [r4, r0]
+ lsl r0, r2, #0x10
+ asr r3, r0, #0x10
+ add r2, r1, #0
+ add r2, #0x30
+ lsl r2, r2, #0x10
+ str r3, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x58
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r0, #0x22
+ ldrsh r1, [r4, r0]
+ mov r0, #0xa4
+ ldrsh r0, [r4, r0]
+ add r2, r1, r0
+ mov r0, #0x20
+ ldrsh r1, [r4, r0]
+ lsl r0, r2, #0x10
+ asr r3, r0, #0x10
+ add r2, r1, #0
+ add r2, #0x30
+ lsl r2, r2, #0x10
+ str r3, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x7c
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ b _02220C9C
+_02220C2E:
+ mov r0, #0x22
+ ldrsh r3, [r4, r0]
+ mov r0, #0x20
+ ldrsh r2, [r4, r0]
+ mov r0, #3
+ add r1, r2, #0
+ str r3, [sp]
+ add r1, #0x30
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ add r0, #0x34
+ asr r1, r1, #0x10
+ bl MOD08_02217E80
+ mov r0, #0x22
+ ldrsh r1, [r4, r0]
+ mov r0, #0xa4
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ mov r0, #0x20
+ ldrsh r2, [r4, r0]
+ lsl r0, r1, #0x10
+ asr r3, r0, #0x10
+ add r1, r2, #0
+ add r1, #0x30
+ lsl r1, r1, #0x10
+ str r3, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x58
+ asr r1, r1, #0x10
+ bl MOD08_02217E80
+ mov r0, #0x22
+ ldrsh r1, [r4, r0]
+ mov r0, #0xa4
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ mov r0, #0x20
+ ldrsh r2, [r4, r0]
+ lsl r0, r1, #0x10
+ asr r3, r0, #0x10
+ add r1, r2, #0
+ add r1, #0x30
+ lsl r1, r1, #0x10
+ str r3, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x7c
+ asr r1, r1, #0x10
+ bl MOD08_02217E80
+_02220C9C:
+ add r0, r4, #0
+ add r0, #0xa0
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa0
+ strb r1, [r0]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220D12
+_02220CB2:
+ add r0, r4, #0
+ ldr r1, [r4, #0x28]
+ add r0, #0x58
+ mov r5, #0
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _02220CC4
+ add r5, r5, #1
+_02220CC4:
+ add r0, r4, #0
+ ldr r1, [r4, #0x24]
+ add r0, #0x34
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _02220CD4
+ add r5, r5, #1
+_02220CD4:
+ add r0, r4, #0
+ ldr r1, [r4, #0x30]
+ add r0, #0x7c
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _02220CE4
+ add r5, r5, #1
+_02220CE4:
+ cmp r5, #3
+ blt _02220D12
+ add r0, r4, #0
+ add r0, #0xa0
+ ldrb r0, [r0]
+ cmp r0, #1
+ ldrb r0, [r4]
+ bne _02220CFA
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _02220D12
+_02220CFA:
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220D12
+_02220D00:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl MOD08_02228094
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02220D12:
+ ldr r0, [r4, #0x28]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02220D24
+MOD08_02220D24: ; 0x02220D24
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ mov r1, #0xa8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xa1
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #8
+ add r0, #0xa2
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa3
+ strb r1, [r0]
+ sub r1, #9
+ ldr r0, [r4, #4]
+ add r2, r1, #0
+ bl MOD08_02227994
+ add r0, r4, #0
+ add r0, #0xa2
+ ldrb r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa3
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02220E94 ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x20]
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x22]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x24]
+ mov r1, #0x29
+ bl FUN_0200782C
+ neg r1, r0
+ add r0, r4, #0
+ add r0, #0xa4
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_0221550C
+ add r7, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_0221551C
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #4]
+ ldr r5, [r4, #0x28]
+ bl MOD08_02215574
+ add r1, r0, #0
+ add r0, r5, #0
+ add r1, r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r5]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02215504
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #4]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r6, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xc4
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ add r2, r7, #0
+ bl FUN_02003B40
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #4]
+ ldr r5, [r4, #0x30]
+ bl MOD08_02215574
+ add r1, r0, #0
+ add r0, r5, #0
+ add r1, r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r5]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02215504
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #4]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r6, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xc4
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x18]
+ add r2, r7, #0
+ bl FUN_02003B40
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #4]
+ ldr r1, _02220E98 ; =MOD08_02220BA0
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02220E94: .word 0x04000052
+_02220E98: .word MOD08_02220BA0
+
+ thumb_func_start MOD08_02220E9C
+MOD08_02220E9C: ; 0x02220E9C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r6, #0
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r7, r6, #0
+ add r4, r1, #0
+ add r5, r1, #0
+_02220EAC:
+ mov r0, #0x1e
+ ldrsh r0, [r4, r0]
+ add r0, r0, #1
+ strh r0, [r4, #0x1e]
+ mov r0, #0x1e
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x20
+ blt _02220ED4
+ ldr r0, [r5, #0x30]
+ bl MOD08_022204CC
+ mov r0, #0x1e
+ ldrsh r0, [r4, r0]
+ cmp r0, #0xa0
+ blt _02220ED4
+ ldr r0, [r5, #0x30]
+ mov r1, #0
+ bl FUN_0200C644
+ add r6, r6, #1
+_02220ED4:
+ add r7, r7, #1
+ add r4, r4, #2
+ add r5, r5, #4
+ cmp r7, #8
+ blt _02220EAC
+ cmp r6, #8
+ bne _02220F08
+ ldr r4, [sp, #4]
+ mov r5, #0
+_02220EE6:
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C3DC
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #8
+ blt _02220EE6
+ ldr r0, [sp, #4]
+ ldr r1, [sp]
+ ldr r0, [r0, #4]
+ bl MOD08_02212438
+ ldr r0, [sp, #4]
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02220F08:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x10]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02220F14
+MOD08_02220F14: ; 0x02220F14
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ mov r1, #0x74
+ add r6, r0, #0
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0xa
+ strh r0, [r4, #0x1c]
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r1, [r4, #4]
+ add r0, sp, #0x24
+ bl MOD08_02215474
+ str r5, [r4, #0x30]
+ mov r6, #1
+ add r5, r4, #4
+ mov r7, #0x1f
+_02220F40:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x10]
+ add r2, sp, #0x24
+ bl FUN_0200C154
+ str r0, [r5, #0x30]
+ lsr r1, r6, #0x1f
+ lsl r0, r6, #0x1f
+ sub r0, r0, r1
+ ror r0, r7
+ add r0, r1, r0
+ beq _02220F60
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C8D0
+_02220F60:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #8
+ blt _02220F40
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [sp, #0x1c]
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [sp, #0x1c]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #0x14
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x50
+ add r1, r7, #0
+ add r2, r6, #0
+ add r3, r5, #0
+ bl MOD08_02217E80
+ mov r7, #0
+ ldr r0, [r4, #4]
+ add r6, r7, #0
+ str r7, [sp, #0x14]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _02220FE4
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02220FE4:
+ add r0, r4, #0
+ str r0, [sp, #0x20]
+ add r0, #0x50
+ add r5, r4, #0
+ str r0, [sp, #0x20]
+_02220FEE:
+ ldr r0, [sp, #0x20]
+ bl MOD08_02217ECC
+ str r0, [sp, #0x18]
+ lsr r2, r7, #0x1f
+ lsl r1, r7, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ beq _02221026
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ bne _02221022
+ cmp r6, #8
+ bge _02221026
+ mov r1, #0x50
+ mov r2, #0x52
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C714
+ add r5, r5, #4
+ add r6, r6, #1
+ b _02221026
+_02221022:
+ mov r0, #0
+ str r0, [sp, #0x14]
+_02221026:
+ ldr r0, [sp, #0x18]
+ add r7, r7, #1
+ cmp r0, #1
+ beq _02220FEE
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_02215600
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl MOD08_02215600
+ add r7, r0, #0
+ mov r6, #0
+ str r4, [sp, #0xc]
+ add r5, r4, #0
+_02221048:
+ mov r0, #8
+ sub r0, r0, r6
+ str r0, [sp, #8]
+ lsl r1, r0, #2
+ ldr r0, [sp, #0xc]
+ strh r1, [r0, #0x1e]
+ ldr r0, [r4, #4]
+ bl MOD08_02212004
+ cmp r0, #0
+ bne _022210A4
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _02221086
+ cmp r6, #4
+ ldr r0, [r5, #0x30]
+ bge _0222107E
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ b _0222109A
+_0222107E:
+ ldr r1, [sp, #0x10]
+ bl FUN_0200C6B0
+ b _0222109A
+_02221086:
+ cmp r6, #4
+ ldr r0, [r5, #0x30]
+ blt _02221094
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ b _0222109A
+_02221094:
+ ldr r1, [sp, #0x10]
+ bl FUN_0200C6B0
+_0222109A:
+ ldr r0, [r5, #0x30]
+ ldr r1, [sp, #8]
+ bl FUN_0200C6C4
+ b _022210B4
+_022210A4:
+ ldr r0, [r5, #0x30]
+ add r1, r6, #0
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x30]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+_022210B4:
+ ldr r0, [sp, #0xc]
+ add r6, r6, #1
+ add r0, r0, #2
+ add r5, r5, #4
+ str r0, [sp, #0xc]
+ cmp r6, #8
+ blt _02221048
+ ldr r0, [r4, #4]
+ ldr r1, _022210D0 ; =MOD08_02220E9C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022210D0: .word MOD08_02220E9C
+
+ thumb_func_start MOD08_022210D4
+MOD08_022210D4: ; 0x022210D4
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _022210EA
+ cmp r0, #1
+ beq _02221178
+ cmp r0, #2
+ b _022211D6
+_022210EA:
+ ldr r0, [r5, #0x28]
+ cmp r0, #0xe
+ ble _02221140
+ ldr r0, [r5, #0x30]
+ ldr r1, _0222121C ; =0x3E4CCCCD
+ bl _fsub
+ str r0, [r5, #0x30]
+ ldr r0, [r5, #0x2c]
+ ldr r1, _0222121C ; =0x3E4CCCCD
+ bl _fadd
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x30]
+ bl _f2d
+ ldr r2, _02221220 ; =0x9999999A
+ ldr r3, _02221224 ; =0x3FC99999
+ bl _dleq
+ bhi _02221124
+ ldrb r0, [r5]
+ mov r1, #0
+ add r0, r0, #1
+ strb r0, [r5]
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C644
+ b _022211FE
+_02221124:
+ mov r0, #0x36
+ ldrsb r0, [r5, r0]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [r5, #0x2c]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r5, #0x1c]
+ ldr r2, [r5, #0x30]
+ bl FUN_0200C884
+ b _022211FE
+_02221140:
+ add r0, r5, #0
+ add r0, #0x34
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x34
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ sub r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x35
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0x34
+ ldrb r1, [r0]
+ add r0, r5, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02221228 ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [r5, #0x28]
+ add r0, r0, #1
+ str r0, [r5, #0x28]
+ b _022211FE
+_02221178:
+ ldr r0, [r5, #0x3c]
+ bl MOD08_02218AF8
+ cmp r0, #0
+ bne _022211FE
+ ldr r0, [r5, #0x38]
+ bl MOD08_02218B08
+ ldr r0, [r5, #0x3c]
+ bl MOD08_02218B08
+ ldr r0, [r5, #0x24]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0
+ lsl r3, r4, #0x14
+ str r2, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldr r0, _0222122C ; =0x0000FFFF
+ mov r2, #2
+ str r0, [sp, #0x14]
+ ldr r0, _02221230 ; =0x0000044C
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #0x18]
+ bl MOD08_02218B20
+ str r0, [r5, #0x3c]
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _022211FE
+_022211D6:
+ ldr r0, [r5, #0x3c]
+ bl MOD08_02218AF8
+ cmp r0, #0
+ bne _022211FE
+ ldr r0, [r5, #0x20]
+ bl FUN_0200C5A8
+ ldr r0, [r5, #0x3c]
+ bl MOD08_02218B08
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FUN_02016A18
+ add sp, #0x1c
+ pop {r4, r5, pc}
+_022211FE:
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [r5, #0x20]
+ bl FUN_0200C5A8
+ ldr r0, [r5, #0x24]
+ bl FUN_0200C5A8
+ ldr r0, [r5, #0xc]
+ bl FUN_0200BC1C
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ nop
+_0222121C: .word 0x3E4CCCCD
+_02221220: .word 0x9999999A
+_02221224: .word 0x3FC99999
+_02221228: .word 0x04000052
+_0222122C: .word 0x0000FFFF
+_02221230: .word 0x0000044C
+
+ thumb_func_start MOD08_02221234
+MOD08_02221234: ; 0x02221234
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ mov r1, #0x40
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl MOD08_022124D8
+ str r0, [r4, #0x24]
+ mov r6, #0
+ str r6, [r4, #0x28]
+ add r0, r5, #0
+ sub r6, #0x20
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02217C1C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ mul r0, r6
+ add r6, r0, #0
+ mov r0, #0xfe
+ lsl r0, r0, #0x16
+ str r0, [r4, #0x2c]
+ str r0, [r4, #0x30]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02215680
+ cmp r0, #1
+ bne _0222129E
+ mov r1, #0
+ mvn r1, r1
+ b _022212A0
+_0222129E:
+ mov r1, #1
+_022212A0:
+ add r0, r4, #0
+ add r0, #0x36
+ strb r1, [r0]
+ add r1, sp, #0x24
+ ldr r0, [r4, #0x20]
+ add r1, #2
+ add r2, sp, #0x24
+ bl FUN_0200C7A0
+ add r2, sp, #0x24
+ mov r1, #2
+ ldrsh r1, [r2, r1]
+ mov r3, #0
+ ldrsh r2, [r2, r3]
+ add r1, r1, r6
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #0x1c]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl FUN_0200C840
+ mov r0, #0x36
+ ldrsb r0, [r4, r0]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [r4, #0x2c]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r4, #0x30]
+ bl FUN_0200C884
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0
+ lsl r3, r6, #0x14
+ str r2, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ mov r0, #0xf
+ str r0, [sp, #0x10]
+ ldr r0, _0222147C ; =0x0000FFFF
+ mov r2, #2
+ str r0, [sp, #0x14]
+ ldr r0, _02221480 ; =0x0000044C
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x18]
+ bl MOD08_02218B20
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x24]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0
+ lsl r3, r6, #0x14
+ str r2, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ mov r0, #0xf
+ str r0, [sp, #0x10]
+ ldr r0, _0222147C ; =0x0000FFFF
+ mov r2, #2
+ str r0, [sp, #0x14]
+ ldr r0, _02221480 ; =0x0000044C
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x18]
+ bl MOD08_02218B20
+ str r0, [r4, #0x3c]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_02227468
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r0, [r4, #4]
+ bl MOD08_02212004
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, sp, #0x2c
+ bl MOD08_02227564
+ add r2, sp, #0x28
+ ldr r0, [r4, #0x1c]
+ add r1, sp, #0x28
+ add r2, #2
+ bl FUN_0200C7A0
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _022213BC
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ mov r5, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ add r1, r5, #0
+ bl FUN_0200C6C4
+ b _022213CE
+_022213BC:
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200C6C4
+ mov r5, #2
+_022213CE:
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_022154A8
+ add r7, r0, #0
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_0221549C
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_022154B8
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_022154C4
+ ldr r1, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ str r0, [sp]
+ lsl r0, r7, #0x10
+ lsl r1, r1, #0x18
+ lsl r2, r5, #0x18
+ lsl r3, r3, #0x18
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+ add r2, r0, #0
+ add r5, sp, #0x24
+ mov r3, #0xa
+ ldrsh r3, [r5, r3]
+ mov r1, #4
+ ldrsh r1, [r5, r1]
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0x1c]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C644
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x34
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xf
+ add r0, #0x35
+ strb r1, [r0]
+ sub r1, #0x10
+ ldr r0, [r4, #4]
+ add r2, r1, #0
+ bl MOD08_02227994
+ add r0, r4, #0
+ add r0, #0x34
+ ldrb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ add r2, r4, #0
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02221484 ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ ldr r1, _02221488 ; =MOD08_022210D4
+ bl MOD08_02212400
+ add r1, r4, #0
+ bl MOD08_022210D4
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222147C: .word 0x0000FFFF
+_02221480: .word 0x0000044C
+_02221484: .word 0x04000052
+_02221488: .word MOD08_022210D4
+
+ thumb_func_start MOD08_0222148C
+MOD08_0222148C: ; 0x0222148C
+ push {r3, r4, r5, lr}
+ sub sp, #0x58
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _022214A0
+ cmp r0, #1
+ beq _022214E6
+ b _02221560
+_022214A0:
+ ldr r0, [r4, #0x68]
+ mov r1, #0x20
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r0, [r2, #0x78]
+ lsl r0, r0, #0x10
+ asr r3, r0, #0x10
+ str r3, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ ldr r2, [r2, #0x6c]
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ ldrsh r1, [r4, r1]
+ add r0, #0x30
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldr r2, [r4, #0x68]
+ ldr r0, [r4, #0x24]
+ lsl r2, r2, #2
+ add r2, r4, r2
+ add r2, #0x84
+ ldr r2, [r2]
+ mov r1, #2
+ bl FUN_02007558
+ ldr r0, [r4, #0x24]
+ mov r1, #0x2c
+ mov r2, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_022214E6:
+ add r0, r4, #0
+ add r0, #0x30
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _02221544
+ ldr r0, [r4, #0x68]
+ add r0, r0, #1
+ str r0, [r4, #0x68]
+ cmp r0, #2
+ ble _02221504
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0222153A
+_02221504:
+ ldr r0, [r4, #0x58]
+ cmp r0, #0
+ bne _02221536
+ ldr r0, [r4, #4]
+ add r1, sp, #8
+ mov r2, #3
+ bl MOD08_022127A8
+ ldr r0, [r4, #0x68]
+ cmp r0, #2
+ ldr r0, [r4, #4]
+ bne _0222152A
+ bl MOD08_02212014
+ add r1, r0, #0
+ add r0, sp, #8
+ bl MOD08_0222A494
+ b _02221536
+_0222152A:
+ bl MOD08_02212014
+ add r1, r0, #0
+ add r0, sp, #8
+ bl MOD08_0222A2A4
+_02221536:
+ mov r0, #0
+ strb r0, [r4]
+_0222153A:
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x20]
+_02221544:
+ mov r2, #0x30
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x32
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_02007558
+ add sp, #0x58
+ pop {r3, r4, r5, pc}
+_02221560:
+ ldr r0, [r4, #0x24]
+ mov r1, #0x2c
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x58
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0222157C
+MOD08_0222157C: ; 0x0222157C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ mov r1, #0x90
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r2, r4, #0
+ ldr r0, [r4, #4]
+ add r2, #0x5c
+ bl MOD08_022275C0
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r2, r4, #0
+ ldr r0, [r4, #4]
+ add r2, #0x60
+ bl MOD08_022275C0
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _022215CE
+ mov r1, #1
+ b _022215D2
+_022215CE:
+ mov r1, #0
+ mvn r1, r1
+_022215D2:
+ add r0, r4, #0
+ add r0, #0x54
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02227470
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02227470
+ cmp r6, r0
+ bne _022215FE
+ mov r0, #1
+ b _02221600
+_022215FE:
+ mov r0, #0
+_02221600:
+ str r0, [r4, #0x58]
+ mov r1, #0
+ add r0, r5, #0
+ str r1, [r4, #0x68]
+ bl MOD08_02212498
+ add r2, r4, #0
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, #0x1c
+ add r3, sp, #0
+ bl MOD08_02227BAC
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200782C
+ mov r1, #0x5e
+ ldrsh r2, [r4, r1]
+ mov r3, #0x54
+ sub r0, r0, r2
+ ldrsh r2, [r4, r3]
+ cmp r2, #0
+ ble _02221672
+ add r2, r3, #0
+ add r2, #0xfb
+ str r2, [r4, #0x6c]
+ sub r3, #0xa4
+ str r3, [r4, #0x70]
+ mov r2, #0x5c
+ ldrsh r2, [r4, r2]
+ str r2, [r4, #0x74]
+ ldrsh r2, [r4, r1]
+ add r2, r2, r0
+ str r2, [r4, #0x78]
+ mov r2, #0x62
+ ldrsh r2, [r4, r2]
+ add r2, r2, r0
+ str r2, [r4, #0x7c]
+ ldrsh r1, [r4, r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0x84
+ str r1, [r0]
+ add r0, r4, #0
+ ldr r1, _022216C8 ; =0xFFFFFD76
+ add r0, #0x88
+ str r1, [r0]
+ ldr r0, [r4, #0x24]
+ mov r1, #2
+ bl FUN_0200782C
+ b _022216B2
+_02221672:
+ add r2, r3, #0
+ sub r2, #0xa4
+ str r2, [r4, #0x6c]
+ add r3, #0xfb
+ str r3, [r4, #0x70]
+ mov r2, #0x5c
+ ldrsh r2, [r4, r2]
+ str r2, [r4, #0x74]
+ ldrsh r2, [r4, r1]
+ add r2, r2, r0
+ str r2, [r4, #0x78]
+ mov r2, #0x62
+ ldrsh r2, [r4, r2]
+ add r2, r2, r0
+ str r2, [r4, #0x7c]
+ ldrsh r1, [r4, r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ ldr r1, _022216C8 ; =0xFFFFFD76
+ add r0, #0x84
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0x88
+ str r1, [r0]
+ ldr r0, [r4, #0x24]
+ mov r1, #2
+ bl FUN_0200782C
+_022216B2:
+ add r1, r4, #0
+ add r1, #0x8c
+ str r0, [r1]
+ ldr r0, [r4, #4]
+ ldr r1, _022216CC ; =MOD08_0222148C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_022216C8: .word 0xFFFFFD76
+_022216CC: .word MOD08_0222148C
+
+ thumb_func_start MOD08_022216D0
+MOD08_022216D0: ; 0x022216D0
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r2, #0
+ ldr r2, [sp, #0x10]
+ str r2, [sp]
+ mov r2, #0x50
+ sub r2, r2, r3
+ add r3, r4, #0
+ bl FUN_02007E40
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022216E8
+MOD08_022216E8: ; 0x022216E8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #3
+ bls _022216FC
+ b _0222181E
+_022216FC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02221708: ; jump table
+ .short _02221710 - _02221708 - 2 ; case 0
+ .short _0222176C - _02221708 - 2 ; case 1
+ .short _022217AE - _02221708 - 2 ; case 2
+ .short _02221804 - _02221708 - 2 ; case 3
+_02221710:
+ ldr r2, [r4, #0x10]
+ add r2, #0x4f
+ str r2, [r4, #0x10]
+ cmp r2, #0x50
+ blt _02221738
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add sp, #4
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+ ldr r1, [r4, #0x14]
+ mov r0, #1
+ eor r0, r1
+ str r0, [r4, #0x14]
+ mov r0, #0
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, pc}
+_02221738:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _02221754
+ mov r0, #2
+ str r0, [sp]
+ ldr r3, [r4]
+ ldr r0, [r4, #0x1c]
+ add r3, r3, #2
+ mov r1, #0
+ lsl r3, r3, #1
+ bl MOD08_022216D0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_02221754:
+ mov r0, #2
+ str r0, [sp]
+ ldr r3, [r4]
+ mov r1, #0x50
+ add r3, r3, #2
+ ldr r0, [r4, #0x1c]
+ sub r1, r1, r2
+ lsl r3, r3, #1
+ bl MOD08_022216D0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0222176C:
+ ldr r0, [r4, #4]
+ mov r3, #0xff
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #0xc]
+ lsl r3, r3, #8
+ add r2, r0, #1
+ str r2, [r4, #0xc]
+ ldr r6, [r4, #8]
+ ldr r1, [r4, #4]
+ lsl r0, r6, #8
+ add r5, r0, #0
+ add r6, #0x50
+ lsl r0, r6, #0x18
+ and r5, r3
+ lsr r0, r0, #0x18
+ lsl r1, r1, #8
+ orr r5, r0
+ ldr r0, _02221868 ; =0x04000040
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ strh r5, [r0]
+ orr r1, r3
+ strh r1, [r0, #4]
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_022217AE:
+ ldr r0, [r4, #4]
+ mov r3, #0xff
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #0xc]
+ lsl r3, r3, #8
+ add r2, r0, #1
+ str r2, [r4, #0xc]
+ ldr r6, [r4, #8]
+ ldr r1, [r4, #4]
+ lsl r0, r6, #8
+ add r5, r0, #0
+ add r6, #0x50
+ lsl r0, r6, #0x18
+ and r5, r3
+ lsr r0, r0, #0x18
+ lsl r1, r1, #8
+ orr r5, r0
+ ldr r0, _02221868 ; =0x04000040
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ strh r5, [r0]
+ orr r1, r3
+ strh r1, [r0, #4]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ cmp r0, #0x26
+ ble _022217FA
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_022217FA:
+ mov r0, #0
+ add r4, #0x20
+ add sp, #4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_02221804:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0222181E:
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r3, [r0]
+ ldr r1, _0222186C ; =0xFFFF1FFF
+ and r1, r3
+ add r3, r0, #0
+ str r1, [r0]
+ add r3, #0x48
+ ldrh r5, [r3]
+ mov r1, #0x3f
+ bic r5, r1
+ strh r5, [r3]
+ add r3, r0, #0
+ add r3, #0x4a
+ ldrh r5, [r3]
+ bic r5, r1
+ add r1, r0, #0
+ strh r5, [r3]
+ mov r3, #0
+ add r1, #0x40
+ strh r3, [r1]
+ add r0, #0x44
+ strh r3, [r0]
+ ldr r0, [r4, #0x24]
+ add r1, r2, #0
+ bl MOD08_02212438
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r4, #0x18]
+ mov r1, #0x17
+ bl FUN_02007558
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02221868: .word 0x04000040
+_0222186C: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_02221870
+MOD08_02221870: ; 0x02221870
+ push {r4, r5, r6, lr}
+ mov r1, #0x50
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x20
+ bl MOD08_02227B70
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x1c]
+ mov r0, #0
+ str r0, [r4]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227468
+ cmp r0, #3
+ beq _022218B0
+ cmp r0, #4
+ bne _022218C4
+_022218B0:
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ sub r1, r1, #1
+ lsl r1, r1, #0x18
+ mov r0, #2
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+_022218C4:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x17
+ bl FUN_0200782C
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x17
+ mov r2, #8
+ bl FUN_02007558
+ sub r6, #0x28
+ str r6, [r4, #8]
+ add r5, #0x28
+ mov r6, #1
+ lsl r6, r6, #0x1a
+ add r3, r6, #0
+ str r5, [r4, #4]
+ mov r1, #0
+ str r1, [r4, #0x10]
+ ldr r0, [r4, #4]
+ add r3, #0x48
+ str r0, [r4, #0xc]
+ str r1, [r4, #0x14]
+ ldr r1, [r6]
+ ldr r0, _0222197C ; =0xFFFF1FFF
+ and r1, r0
+ lsr r0, r6, #0xd
+ orr r0, r1
+ str r0, [r6]
+ ldrh r2, [r3]
+ mov r1, #0x3f
+ mov r0, #0x1f
+ bic r2, r1
+ orr r0, r2
+ mov r2, #0x20
+ orr r0, r2
+ strh r0, [r3]
+ add r3, r6, #0
+ add r3, #0x4a
+ ldrh r5, [r3]
+ mov r0, #0x1b
+ bic r5, r1
+ orr r0, r5
+ orr r0, r2
+ strh r0, [r3]
+ ldr r2, [r4, #8]
+ mov r0, #0xff
+ lsl r1, r2, #8
+ add r2, #0x50
+ lsl r0, r0, #8
+ lsl r2, r2, #0x18
+ and r1, r0
+ lsr r2, r2, #0x18
+ orr r2, r1
+ add r1, r6, #0
+ ldr r5, [r4, #0xc]
+ ldr r3, [r4, #4]
+ add r1, #0x40
+ strh r2, [r1]
+ lsl r1, r3, #8
+ and r1, r0
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r1
+ add r6, #0x44
+ strh r0, [r6]
+ ldr r0, [r4, #0x24]
+ ldr r1, _02221980 ; =MOD08_022216E8
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ nop
+_0222197C: .word 0xFFFF1FFF
+_02221980: .word MOD08_022216E8
+
+ thumb_func_start MOD08_02221984
+MOD08_02221984: ; 0x02221984
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ mov r1, #0xe8
+ mov r2, #0xea
+ add r5, r0, #0
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #8]
+ add r0, #0xc
+ bl MOD08_02217E58
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x38
+ bl MOD08_02218524
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ mov r1, #0
+ add r2, sp, #0
+_022219B8:
+ ldr r0, [r2]
+ cmp r0, #1
+ beq _022219EE
+ add r1, r1, #1
+ add r2, r2, #4
+ cmp r1, #3
+ blt _022219B8
+ mov r2, #0xe8
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0xea
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ sub r2, #8
+ bl FUN_02007558
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_022219EE:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022219F4
+MOD08_022219F4: ; 0x022219F4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0xf0
+ bl FUN_02016998
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #8]
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0xe8
+ strh r0, [r1]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0xea
+ strh r0, [r1]
+ ldr r0, [r4, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0xec
+ strh r0, [r1]
+ mov r0, #0xea
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xea
+ add r1, #8
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc
+ mov r1, #1
+ mov r2, #8
+ bl MOD08_02218654
+ add r0, sp, #0x20
+ mov r1, #1
+ mov r2, #0xa
+ bl MOD08_02218654
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ ldr r1, [r4, #0x18]
+ mov r6, #0
+ add r2, r1, #0
+ mul r2, r0
+ str r2, [r4, #0x18]
+ ldr r1, [sp, #0x2c]
+ add r5, r4, #0
+ mul r0, r1
+ str r0, [sp, #0x2c]
+ mov r7, #0x64
+_02221A8C:
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD08_022124D8
+ str r0, [r5, #0x30]
+ add r1, r7, #0
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C90C
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #2
+ blt _02221A8C
+ mov r0, #0xea
+ ldrsh r1, [r4, r0]
+ mov r0, #0xec
+ ldrsh r0, [r4, r0]
+ mov r3, #0xe8
+ ldr r2, _02221B04 ; =MOD08_02217D98
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4, #0x30]
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x34]
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x18]
+ str r1, [sp, #0x1c]
+ add r0, r4, #0
+ ldrsh r3, [r4, r3]
+ add r0, #0x38
+ add r1, sp, #0x20
+ bl MOD08_0221847C
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r4]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldr r0, [r4]
+ ldr r1, _02221B08 ; =MOD08_02221984
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02221B04: .word MOD08_02217D98
+_02221B08: .word MOD08_02221984
+
+ thumb_func_start MOD08_02221B0C
+MOD08_02221B0C: ; 0x02221B0C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #6
+ bls _02221B1C
+ b _02221C62
+_02221B1C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02221B28: ; jump table
+ .short _02221B36 - _02221B28 - 2 ; case 0
+ .short _02221B78 - _02221B28 - 2 ; case 1
+ .short _02221BAE - _02221B28 - 2 ; case 2
+ .short _02221BC6 - _02221B28 - 2 ; case 3
+ .short _02221BF6 - _02221B28 - 2 ; case 4
+ .short _02221C0E - _02221B28 - 2 ; case 5
+ .short _02221C32 - _02221B28 - 2 ; case 6
+_02221B36:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02221B58
+ mov r2, #0x48
+ mov r3, #0x4a
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_02217CD0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02221B58:
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r1, #0x10
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ add r0, #0x10
+ add r3, r2, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02221B78:
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02218058
+ cmp r0, #0
+ beq _02221B92
+ ldr r0, [r4, #0xc]
+ ldr r2, [r4, #0x34]
+ mov r1, #9
+ bl FUN_02007558
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02221B92:
+ add r0, r4, #0
+ ldr r1, [r4, #0x34]
+ add r0, #0x34
+ mov r2, #0
+ mov r3, #4
+ bl MOD08_02218008
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #2
+ strh r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02221BAE:
+ mov r0, #8
+ ldrsh r1, [r4, r0]
+ sub r1, r1, #1
+ strh r1, [r4, #8]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02221C62
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02221BC6:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02221BE8
+ mov r2, #0x48
+ mov r3, #0x4a
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_02217CD0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02221BE8:
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x20
+ strh r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02221BF6:
+ mov r0, #8
+ ldrsh r1, [r4, r0]
+ sub r1, r1, #1
+ strh r1, [r4, #8]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02221C62
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02221C0E:
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02218058
+ cmp r0, #0
+ beq _02221C28
+ ldr r0, [r4, #0xc]
+ ldr r2, [r4, #0x34]
+ mov r1, #9
+ bl FUN_02007558
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02221C28:
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02221C32:
+ mov r2, #0x48
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x4a
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_02221C62:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02221C68
+MOD08_02221C68: ; 0x02221C68
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0xf0
+ bl FUN_02016998
+ add r4, r0, #0
+ str r5, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0xc]
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x48
+ strh r0, [r1]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x4a
+ strh r0, [r1]
+ mov r1, #0
+ add r0, r4, #0
+ str r1, [sp]
+ mov r2, #3
+ str r2, [sp, #4]
+ add r0, #0x10
+ sub r2, #0x23
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add r0, r4, #0
+ ldr r2, _02221D78 ; =0x00000E38
+ add r0, #0x34
+ mov r1, #0
+ mov r3, #8
+ bl MOD08_02218008
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ ldr r1, [r4, #0x18]
+ add r2, r1, #0
+ mul r2, r0
+ str r2, [r4, #0x18]
+ ldr r1, [r4, #0x3c]
+ mul r0, r1
+ str r0, [r4, #0x3c]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r6, #3
+ bne _02221D36
+ cmp r0, #3
+ bne _02221D36
+ mov r1, #0xa
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ sub r2, #0x32
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ mov r1, #0xb
+ mov r2, #0x28
+ bl FUN_02007558
+ b _02221D6A
+_02221D36:
+ cmp r6, #4
+ bne _02221D54
+ cmp r0, #4
+ bne _02221D54
+ ldr r0, [r4, #0xc]
+ mov r1, #0xa
+ mov r2, #0x28
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ mov r1, #0xb
+ mov r2, #0x28
+ bl FUN_02007558
+ b _02221D6A
+_02221D54:
+ mov r2, #0x28
+ ldr r0, [r4, #0xc]
+ mov r1, #0xa
+ mul r2, r7
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ mov r1, #0xb
+ mov r2, #0x28
+ bl FUN_02007558
+_02221D6A:
+ ldr r0, [r4]
+ ldr r1, _02221D7C ; =MOD08_02221B0C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02221D78: .word 0x00000E38
+_02221D7C: .word MOD08_02221B0C
+
+ thumb_func_start MOD08_02221D80
+MOD08_02221D80: ; 0x02221D80
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ add r2, r3, #0
+ ldr r4, [sp, #0x10]
+ bl FUN_0200C154
+ str r0, [r5]
+ add r6, r4, #4
+ add r3, r5, #4
+ mov r2, #4
+_02221D98:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02221D98
+ ldr r0, [r6]
+ add r2, r5, #0
+ str r0, [r3]
+ add r3, r4, #0
+ add r3, #0x28
+ ldmia r3!, {r0, r1}
+ add r2, #0x28
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ mov r0, #0x3c
+ ldrsh r0, [r4, r0]
+ strh r0, [r5, #0x3c]
+ mov r0, #0x3e
+ ldrsh r0, [r4, r0]
+ strh r0, [r5, #0x3e]
+ mov r0, #0x40
+ ldrsh r1, [r4, r0]
+ add r0, r5, #0
+ add r0, #0x40
+ strh r1, [r0]
+ ldr r0, [r4, #0x44]
+ mov r1, #0
+ str r0, [r5, #0x44]
+ str r1, [r5, #0x48]
+ ldr r0, [r5]
+ bl FUN_0200C644
+ ldr r0, [r5]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_0200C6B0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02221DF0
+MOD08_02221DF0: ; 0x02221DF0
+ ldr r3, _02221DF8 ; =0x0200C3DD
+ ldr r0, [r0]
+ bx r3
+ nop
+_02221DF8: .word 0x0200C3DD
+
+ thumb_func_start MOD08_02221DFC
+MOD08_02221DFC: ; 0x02221DFC
+ ldr r3, _02221E04 ; =0x0200C645
+ ldr r0, [r0]
+ bx r3
+ nop
+_02221E04: .word 0x0200C645
+
+ thumb_func_start MOD08_02221E08
+MOD08_02221E08: ; 0x02221E08
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, [r4, #0x48]
+ cmp r0, #0
+ bne _02221E1A
+ add sp, #0x10
+ mov r0, #1
+ pop {r4, pc}
+_02221E1A:
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ beq _02221E2A
+ cmp r0, #1
+ beq _02221E2A
+ cmp r0, #2
+ beq _02221EAC
+ b _02221EB2
+_02221E2A:
+ add r0, r4, #4
+ bl MOD08_02217D98
+ cmp r0, #0
+ beq _02221E6A
+ add r0, r4, #0
+ add r0, #0x28
+ bl MOD08_022180C4
+ mov r0, #0x3c
+ ldrsh r1, [r4, r0]
+ ldr r0, [r4, #0x28]
+ add r0, r1, r0
+ str r0, [r4, #0x1c]
+ mov r1, #0x3e
+ ldrsh r2, [r4, r1]
+ mov r1, #4
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4]
+ add r1, r2, r1
+ mov r2, #0x40
+ ldrsh r3, [r4, r2]
+ mov r2, #6
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ b _02221EB2
+_02221E6A:
+ ldr r0, [r4, #0x44]
+ cmp r0, #1
+ bge _02221EA4
+ cmp r0, #0
+ bne _02221E92
+ ldr r1, [r4, #0xc]
+ ldr r2, _02221EB8 ; =0x00007FFF
+ lsl r1, r1, #0x10
+ str r2, [sp]
+ ldr r0, [r4, #0x10]
+ lsr r1, r1, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x18]
+ add r3, r1, #0
+ str r0, [sp, #8]
+ ldr r0, _02221EBC ; =0x0000071C
+ str r0, [sp, #0xc]
+ add r0, r4, #4
+ bl MOD08_02217D44
+_02221E92:
+ ldr r0, [r4, #8]
+ ldr r2, _02221EC0 ; =0x0000FFFF
+ str r0, [sp]
+ add r0, r4, #0
+ ldr r3, _02221EC4 ; =0xFFFFF000
+ add r0, #0x28
+ mov r1, #0
+ bl MOD08_022180AC
+_02221EA4:
+ ldr r0, [r4, #0x44]
+ add r0, r0, #1
+ str r0, [r4, #0x44]
+ b _02221EB2
+_02221EAC:
+ add sp, #0x10
+ mov r0, #0
+ pop {r4, pc}
+_02221EB2:
+ mov r0, #1
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02221EB8: .word 0x00007FFF
+_02221EBC: .word 0x0000071C
+_02221EC0: .word 0x0000FFFF
+_02221EC4: .word 0xFFFFF000
+
+ thumb_func_start MOD08_02221EC8
+MOD08_02221EC8: ; 0x02221EC8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ cmp r0, #6
+ bhi _02221F3C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02221EE4: ; jump table
+ .short _02221EF2 - _02221EE4 - 2 ; case 0
+ .short _02221F0A - _02221EE4 - 2 ; case 1
+ .short _02221F56 - _02221EE4 - 2 ; case 2
+ .short _02221F6C - _02221EE4 - 2 ; case 3
+ .short _0222200C - _02221EE4 - 2 ; case 4
+ .short _02222036 - _02221EE4 - 2 ; case 5
+ .short _02222076 - _02221EE4 - 2 ; case 6
+_02221EF2:
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02221E08
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_02221F0A:
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r1, #0xa
+ add r0, #0xfc
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0xa
+ bl _s32_div_f
+ mov r1, #0x1f
+ sub r1, r1, r0
+ lsl r1, r1, #8
+ orr r1, r0
+ ldr r0, _022220A8 ; =0x04000052
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r1, [r0]
+ ldr r0, _022220AC ; =0x00000136
+ cmp r1, r0
+ bge _02221F3E
+_02221F3C:
+ b _022220A0
+_02221F3E:
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200C90C
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_02221F56:
+ ldr r1, _022220B0 ; =0x0000FFFF
+ ldr r0, _022220A8 ; =0x04000052
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_02221F6C:
+ add r0, r4, #0
+ add r0, #0xf4
+ ldr r0, [r0]
+ cmp r0, #0
+ bgt _02221FB0
+ add r0, r4, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ mov r2, #0x4c
+ add r3, r0, #0
+ mul r3, r2
+ add r0, r4, r3
+ mov r1, #1
+ add r0, #0xa0
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ mul r2, r0
+ add r0, r4, r2
+ ldr r0, [r0, #0x58]
+ bl FUN_0200C644
+ add r0, r4, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf8
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #8
+ add r0, #0xf4
+ str r1, [r0]
+_02221FB0:
+ add r0, r4, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ cmp r0, #2
+ bge _02221FC8
+ add r0, r4, #0
+ add r0, #0xf4
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf4
+ str r1, [r0]
+_02221FC8:
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02221E08
+ add r5, r4, #0
+ add r6, r0, #0
+ mov r7, #0
+ add r5, #0x58
+_02221FD8:
+ add r0, r5, #0
+ bl MOD08_02221E08
+ str r0, [sp]
+ cmp r0, #0
+ bne _02221FEC
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02221DFC
+_02221FEC:
+ ldr r0, [sp]
+ add r7, r7, #1
+ orr r6, r0
+ add r5, #0x4c
+ cmp r7, #2
+ blt _02221FD8
+ cmp r6, #0
+ bne _022220A0
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_0222200C:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _022220A0
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200C90C
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_02222036:
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r1, [r0]
+ add r0, r4, #0
+ sub r1, #0xa
+ add r0, #0xfc
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0xa
+ bl _s32_div_f
+ mov r1, #0x1f
+ sub r1, r1, r0
+ lsl r1, r1, #8
+ orr r1, r0
+ ldr r0, _022220A8 ; =0x04000052
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ cmp r0, #0
+ bgt _022220A0
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_02222076:
+ add r5, r4, #0
+ mov r6, #0
+ add r5, #0x58
+_0222207C:
+ add r0, r5, #0
+ bl MOD08_02221DF0
+ add r6, r6, #1
+ add r5, #0x4c
+ cmp r6, #2
+ blt _0222207C
+ ldr r0, [r4, #0xc]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+_022220A0:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022220A8: .word 0x04000052
+_022220AC: .word 0x00000136
+_022220B0: .word 0x0000FFFF
+
+ thumb_func_start MOD08_022220B4
+MOD08_022220B4: ; 0x022220B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ str r3, [sp, #0x10]
+ bl MOD08_02212014
+ mov r1, #1
+ lsl r1, r1, #8
+ bl FUN_02016998
+ add r4, r0, #0
+ str r5, [r4]
+ str r6, [r4, #4]
+ str r7, [r4, #8]
+ mov r1, #8
+ add r0, #0xf4
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf8
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ ldr r1, [sp, #0x10]
+ lsl r0, r0, #0x11
+ str r1, [r4, #0xc]
+ mov r1, #0
+ str r1, [r4, #0x50]
+ ldr r2, _022221EC ; =0x0000BFFF
+ neg r0, r0
+ str r2, [sp]
+ str r0, [sp, #4]
+ ldr r1, _022221F0 ; =0xFFFF8000
+ ldr r0, _022221F4 ; =0x0000071C
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ lsr r1, r1, #0x12
+ add r0, #0x10
+ add r3, r1, #0
+ bl MOD08_02217D44
+ ldr r0, [r4, #0x14]
+ ldr r2, _022221F8 ; =0x0000FFFF
+ str r0, [sp]
+ add r0, r4, #0
+ ldr r3, _022221FC ; =0xFFFFF000
+ add r0, #0x34
+ mov r1, #0
+ bl MOD08_022180AC
+ add r0, r4, #0
+ ldr r1, [r4, #0x28]
+ add r0, #0x48
+ strh r1, [r0]
+ mov r0, #1
+ str r0, [r4, #0x54]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, r4, #0
+ add r1, #0x4a
+ strh r0, [r1]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r1, r4, #0
+ add r1, #0x4c
+ strh r0, [r1]
+ mov r1, #0x4a
+ mov r2, #0x4c
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ bl FUN_0200C714
+ ldr r0, [r4, #0xc]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r1, [r4]
+ add r0, sp, #0x14
+ bl MOD08_02215474
+ mov r0, #0x4a
+ ldrsh r0, [r4, r0]
+ add r1, sp, #0x14
+ add r5, r4, #0
+ strh r0, [r1]
+ mov r0, #0x4c
+ ldrsh r0, [r4, r0]
+ add r7, r4, #0
+ mov r6, #0
+ strh r0, [r1, #2]
+ add r5, #0x58
+ add r7, #0xc
+_0222219A:
+ str r7, [sp]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ add r3, sp, #0x14
+ bl MOD08_02221D80
+ add r6, r6, #1
+ add r5, #0x4c
+ cmp r6, #2
+ blt _0222219A
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r0, [r4]
+ mov r2, #0x1f
+ bl MOD08_02227994
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200C90C
+ mov r6, #0
+ add r5, r4, #0
+ mov r7, #1
+_022221CE:
+ ldr r0, [r5, #0x58]
+ add r1, r7, #0
+ bl FUN_0200C90C
+ add r6, r6, #1
+ add r5, #0x4c
+ cmp r6, #2
+ blt _022221CE
+ ldr r0, [r4]
+ ldr r1, _02222200 ; =MOD08_02221EC8
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022221EC: .word 0x0000BFFF
+_022221F0: .word 0xFFFF8000
+_022221F4: .word 0x0000071C
+_022221F8: .word 0x0000FFFF
+_022221FC: .word 0xFFFFF000
+_02222200: .word MOD08_02221EC8
+
+ thumb_func_start MOD08_02222204
+MOD08_02222204: ; 0x02222204
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r2, #0x60
+ ldrsh r3, [r4, r2]
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ add r2, r3, r2
+ bl FUN_02007558
+ mov r2, #0x62
+ ldrsh r3, [r4, r2]
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ add r2, r3, r2
+ bl FUN_02007558
+ mov r1, #0x60
+ ldrsh r2, [r4, r1]
+ mov r1, #0x10
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x58]
+ add r1, r2, r1
+ mov r2, #0x62
+ ldrsh r3, [r4, r2]
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r3, r3, r2
+ mov r2, #0x66
+ ldrsh r2, [r4, r2]
+ sub r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r0, #0x34
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD08_0221825C
+ mov r0, #0x64
+ ldrsh r0, [r4, r0]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, _02222298 ; =0x3DCCCCCD
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [sp, #4]
+ bl _fadd
+ add r1, r0, #0
+ str r1, [sp, #4]
+ ldr r0, [r4, #0x58]
+ ldr r2, [sp]
+ bl FUN_0200C884
+ mov r0, #0x64
+ ldrsh r1, [r4, r0]
+ sub r0, #0x65
+ add r4, #0x64
+ mul r0, r1
+ strh r0, [r4]
+ add sp, #8
+ pop {r4, pc}
+ nop
+_02222298: .word 0x3DCCCCCD
+
+ thumb_func_start MOD08_0222229C
+MOD08_0222229C: ; 0x0222229C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _022222B4
+ cmp r0, #1
+ beq _022222EE
+ cmp r0, #2
+ beq _0222232A
+ b _0222233C
+_022222B4:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022183F0
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02218224
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02222204
+ cmp r5, #0
+ bne _0222233C
+ mov r2, #0xa
+ str r2, [sp]
+ str r2, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x34
+ mov r1, #0xc
+ mov r3, #0xf
+ bl MOD08_022181A8
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _0222233C
+_022222EE:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022183F0
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02218224
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02222204
+ cmp r5, #0
+ bne _0222233C
+ mov r2, #0x60
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x62
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _0222233C
+_0222232A:
+ ldr r0, [r4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0222233C:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02222348
+MOD08_02222348: ; 0x02222348
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x68
+ bl FUN_02016998
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ mov r0, #0
+ str r0, [r4, #8]
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0x5c]
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x60
+ strh r0, [r1]
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x62
+ strh r0, [r1]
+ ldr r0, [r4, #0x5c]
+ mov r1, #0x29
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x66
+ strh r0, [r1]
+ mov r0, #6
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x10
+ mov r1, #2
+ mov r2, #0
+ mov r3, #1
+ bl MOD08_022183C0
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x58]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x58]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x58]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x58]
+ mov r1, #1
+ bl FUN_0200C6B0
+ mov r0, #0xf
+ str r0, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ mov r0, #7
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x34
+ mov r2, #0xc
+ add r3, r1, #0
+ bl MOD08_022181A8
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x64
+ strh r1, [r0]
+ ldr r0, [r4]
+ mov r1, #0x1c
+ mov r2, #0xf
+ bl MOD08_02227994
+ ldr r0, [r4]
+ ldr r1, _02222414 ; =MOD08_0222229C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02222414: .word MOD08_0222229C
+
+ thumb_func_start MOD08_02222418
+MOD08_02222418: ; 0x02222418
+ mov r2, #0x12
+ ldrsh r2, [r0, r2]
+ mov r3, #0x10
+ ldrsh r0, [r0, r3]
+ neg r2, r2
+ lsl r2, r2, #0x10
+ neg r0, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ orr r0, r2
+ mov r2, #3
+ ldr r3, _02222434 ; =0x020CE1FC
+ lsl r2, r2, #8
+ bx r3
+ .align 2, 0
+_02222434: .word 0x020CE1FC
+
+ thumb_func_start MOD08_02222438
+MOD08_02222438: ; 0x02222438
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ bl MOD08_02218970
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD08_02222418
+ add r0, r5, #0
+ add r0, #0x1c
+ bl MOD08_02217ECC
+ str r0, [sp, #8]
+ mov r0, #0x14
+ ldrsh r4, [r5, r0]
+ mov r0, #0x16
+ ldrsh r0, [r5, r0]
+ cmp r4, r0
+ bgt _022224D8
+ ldr r1, [sp, #0xc]
+ lsl r2, r4, #2
+ add r1, r1, r2
+ str r1, [sp]
+_0222246C:
+ ldr r1, [sp]
+ sub r0, r0, r4
+ ldr r2, [r1]
+ lsl r1, r2, #0x10
+ asr r1, r1, #0x10
+ str r1, [sp, #4]
+ lsr r1, r2, #0x10
+ lsl r1, r1, #0x10
+ asr r7, r1, #0x10
+ mov r1, #0x1e
+ ldrsh r1, [r5, r1]
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ sub r0, r7, r0
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ mov r0, #0x1c
+ ldrsh r1, [r5, r0]
+ mov r0, #0x14
+ ldrsh r0, [r5, r0]
+ add r0, #0x28
+ sub r0, r0, r4
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r1, [sp, #4]
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ sub r6, r4, #1
+ bpl _022224B4
+ add r6, #0xc0
+_022224B4:
+ ldr r0, [sp, #4]
+ lsl r1, r7, #0x10
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ bl MOD08_02218998
+ ldr r1, [sp, #0xc]
+ lsl r2, r6, #2
+ str r0, [r1, r2]
+ ldr r0, [sp]
+ add r4, r4, #1
+ add r0, r0, #4
+ str r0, [sp]
+ mov r0, #0x16
+ ldrsh r0, [r5, r0]
+ cmp r4, r0
+ ble _0222246C
+_022224D8:
+ ldr r0, [sp, #8]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022224E0
+MOD08_022224E0: ; 0x022224E0
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ bhi _02222548
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022224FA: ; jump table
+ .short _02222504 - _022224FA - 2 ; case 0
+ .short _02222536 - _022224FA - 2 ; case 1
+ .short _0222255E - _022224FA - 2 ; case 2
+ .short _022225AE - _022224FA - 2 ; case 3
+ .short _022225CE - _022224FA - 2 ; case 4
+_02222504:
+ add r0, r4, #0
+ bl MOD08_02222438
+ cmp r0, #0
+ bne _02222548
+ ldr r0, [r4, #4]
+ mov r1, #0x1f
+ add r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ mov r2, #0
+ bl MOD08_02227A00
+ mov r1, #0x1f
+ mov r2, #0
+ str r1, [sp]
+ mov r0, #0x10
+ add r4, #0x40
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD08_022186D4
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_02222536:
+ add r0, r4, #0
+ bl MOD08_02222438
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02218704
+ cmp r0, #0
+ bne _0222254A
+_02222548:
+ b _02222650
+_0222254A:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x18]
+ bl MOD08_02218984
+ mov r0, #0
+ add sp, #8
+ str r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_0222255E:
+ ldr r0, [r4]
+ bl MOD08_02212490
+ mov r3, #0x10
+ ldrsh r3, [r4, r3]
+ mov r1, #2
+ mov r2, #0
+ neg r3, r3
+ bl FUN_020179E0
+ ldr r0, [r4]
+ bl MOD08_02212490
+ mov r3, #0x12
+ ldrsh r3, [r4, r3]
+ mov r1, #2
+ mov r2, #3
+ neg r3, r3
+ bl FUN_020179E0
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #8
+ ble _02222650
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1f
+ add r0, #0x40
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_022225AE:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02222650
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_022225CE:
+ ldr r0, [r4, #0x18]
+ bl MOD08_0221894C
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r5, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212014
+ add r3, r0, #0
+ lsl r0, r5, #0x18
+ mov r1, #1
+ lsr r0, r0, #0x18
+ lsl r1, r1, #0xe
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r0, [r4]
+ bl MOD08_02212490
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_02222650:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02222654
+MOD08_02222654: ; 0x02222654
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x68
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x68
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ ldr r1, _022227BC ; =MOD08_022224E0
+ str r5, [r4]
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD08_02212400
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x12]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #0x12
+ ldrsh r2, [r4, r1]
+ sub r0, r2, r0
+ strh r0, [r4, #0x12]
+ mov r0, #0x10
+ ldrsh r0, [r4, r0]
+ mov r2, #1
+ sub r0, #0x28
+ strh r0, [r4, #0x10]
+ ldrsh r0, [r4, r1]
+ mov r1, #6
+ sub r0, #0x28
+ strh r0, [r4, #0x12]
+ ldr r0, [r4, #0xc]
+ bl FUN_02007558
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ add r6, r0, #0
+ mov r0, #0x12
+ ldrsh r1, [r4, r0]
+ sub r1, #8
+ strh r1, [r4, #0x14]
+ ldrsh r0, [r4, r0]
+ add r0, #0x58
+ strh r0, [r4, #0x16]
+ mov r0, #0x14
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _022226F0
+ mov r0, #0
+ strh r0, [r4, #0x14]
+_022226F0:
+ mov r0, #0x16
+ ldrsh r0, [r4, r0]
+ cmp r0, #0xc0
+ ble _022226FC
+ mov r0, #0xc0
+ strh r0, [r4, #0x16]
+_022226FC:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022155C4
+ add r7, r0, #0
+ ldr r0, [sp, #0x14]
+ bl FUN_0201B6CC
+ str r0, [sp, #0x18]
+ ldrh r0, [r4, #0x10]
+ ldrh r1, [r4, #0x12]
+ bl MOD08_02218998
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ bl MOD08_02212014
+ mov r1, #0x50
+ str r1, [sp]
+ ldr r1, [sp, #0x18]
+ str r7, [sp, #4]
+ add r1, r1, #1
+ str r1, [sp, #8]
+ ldr r1, [sp, #0x1c]
+ ldr r2, _022227C0 ; =0x0000038E
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #0x14
+ mov r1, #0x16
+ ldrsh r0, [r4, r0]
+ ldrsh r1, [r4, r1]
+ lsl r3, r6, #0xf
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl MOD08_022188DC
+ str r0, [r4, #0x18]
+ mov r0, #0x28
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x1c
+ mov r2, #0x50
+ add r3, r1, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #0x24]
+ add r1, r0, #0
+ mul r1, r6
+ str r1, [r4, #0x24]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ sub r0, r0, #3
+ cmp r0, #1
+ bhi _022227AE
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r0, r5, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+_022227AE:
+ ldr r0, [sp, #0x14]
+ add r1, r4, #0
+ bl MOD08_022224E0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022227BC: .word MOD08_022224E0
+_022227C0: .word 0x0000038E
+
+ thumb_func_start MOD08_022227C4
+MOD08_022227C4: ; 0x022227C4
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bhi _02222874
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022227DE: ; jump table
+ .short _022227E6 - _022227DE - 2 ; case 0
+ .short _0222280C - _022227DE - 2 ; case 1
+ .short _0222281E - _022227DE - 2 ; case 2
+ .short _02222862 - _022227DE - 2 ; case 3
+_022227E6:
+ add r0, r4, #0
+ add r0, #0x38
+ bl MOD08_02218080
+ ldr r2, [r4, #0x38]
+ mov r1, #0x1f
+ sub r1, r1, r2
+ lsl r1, r1, #8
+ orr r2, r1
+ ldr r1, _02222880 ; =0x04000052
+ cmp r0, #0
+ strh r2, [r1]
+ bne _02222874
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [r4, #0xc]
+ b _02222874
+_0222280C:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #0x20
+ ble _02222874
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02222874
+_0222281E:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x4c]
+ cmp r0, #1
+ bne _02222844
+ ldr r1, [sp, #4]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #4]
+_02222844:
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ bl FUN_0200C884
+ cmp r5, #0
+ bne _02222874
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02222874
+_02222862:
+ ldr r0, [r4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02222874:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02222880: .word 0x04000052
+
+ thumb_func_start MOD08_02222884
+MOD08_02222884: ; 0x02222884
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r2, r0, #0
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ beq _022228A0
+ cmp r0, #1
+ beq _02222928
+ cmp r0, #2
+ bne _0222289C
+ b _022229B4
+_0222289C:
+ add sp, #0xc
+ pop {r4, r5, pc}
+_022228A0:
+ add r0, r5, #0
+ add r0, #0x14
+ bl MOD08_022183F0
+ mov r2, #0x38
+ mov r3, #0x3a
+ add r0, r5, #0
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ ldr r1, [r5, #8]
+ add r0, #0x14
+ bl MOD08_02217CD0
+ ldr r0, [r5, #0x10]
+ cmp r0, #1
+ bne _022228DA
+ mov r3, #0x3a
+ ldrsh r4, [r5, r3]
+ ldr r3, [r5, #0x3c]
+ mov r2, #0x38
+ sub r3, r4, r3
+ add r0, r5, #0
+ lsl r3, r3, #0x10
+ ldrsh r2, [r5, r2]
+ ldr r1, [r5, #0xc]
+ add r0, #0x14
+ asr r3, r3, #0x10
+ bl MOD08_02217C94
+_022228DA:
+ ldr r0, [r5, #8]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _022229C2
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r5, #8]
+ mov r1, #0x10
+ add r3, r2, #0
+ bl FUN_02007E68
+ ldr r0, [r5, #0x10]
+ cmp r0, #1
+ bne _0222291E
+ ldr r0, [r5, #0xc]
+ bl MOD08_02217C08
+ mov r1, #1
+ add r4, r1, #0
+ lsl r4, r0
+ ldr r0, [r5]
+ bl MOD08_02215504
+ mov r1, #0x10
+ str r1, [sp]
+ mov r3, #0
+ lsl r2, r4, #0x10
+ str r3, [sp, #4]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ str r3, [sp, #8]
+ bl FUN_02003210
+_0222291E:
+ ldr r0, [r5, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r5, #4]
+ pop {r4, r5, pc}
+_02222928:
+ add r0, r5, #0
+ add r0, #0x14
+ bl MOD08_022183F0
+ mov r2, #0x38
+ mov r3, #0x3a
+ add r0, r5, #0
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ ldr r1, [r5, #8]
+ add r0, #0x14
+ bl MOD08_02217CD0
+ ldr r0, [r5, #0x10]
+ cmp r0, #1
+ bne _02222962
+ mov r3, #0x3a
+ ldrsh r4, [r5, r3]
+ ldr r3, [r5, #0x3c]
+ mov r2, #0x38
+ sub r3, r4, r3
+ add r0, r5, #0
+ lsl r3, r3, #0x10
+ ldrsh r2, [r5, r2]
+ ldr r1, [r5, #0xc]
+ add r0, #0x14
+ asr r3, r3, #0x10
+ bl MOD08_02217C94
+_02222962:
+ ldr r0, [r5, #8]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _022229C2
+ mov r2, #0x38
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x3a
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r5, #0x10]
+ cmp r0, #1
+ bne _022229AA
+ ldr r0, [r5, #8]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ mov r2, #0x3a
+ ldrsh r3, [r5, r2]
+ ldr r2, [r5, #0x3c]
+ mov r1, #0x38
+ sub r2, r3, r2
+ lsl r2, r2, #0x10
+ ldrsh r1, [r5, r1]
+ ldr r0, [r5, #0xc]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+_022229AA:
+ ldr r0, [r5, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r5, #4]
+ pop {r4, r5, pc}
+_022229B4:
+ ldr r0, [r5]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FUN_02016A18
+_022229C2:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022229C8
+MOD08_022229C8: ; 0x022229C8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x50
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x50
+ bl Call_FillMemWithValue
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212004
+ str r0, [r4, #0x4c]
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x10]
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0xa
+ add r0, #0x14
+ mov r1, #0xe
+ add r3, r2, #0
+ bl MOD08_02218120
+ add r0, r4, #0
+ add r0, #0x38
+ mov r1, #0
+ mov r2, #0x10
+ mov r3, #8
+ bl MOD08_02218030
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x1f
+ bl MOD08_02227994
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x4c]
+ cmp r0, #1
+ ldr r0, [r4, #0x10]
+ bne _02222A48
+ ldr r1, _02222A6C ; =0xBFB33333
+ ldr r2, _02222A70 ; =0x3FB33333
+ bl FUN_0200C884
+ b _02222A50
+_02222A48:
+ ldr r1, _02222A70 ; =0x3FB33333
+ add r2, r1, #0
+ bl FUN_0200C884
+_02222A50:
+ ldr r0, [r4, #0x10]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4]
+ ldr r1, _02222A74 ; =MOD08_022227C4
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02222A6C: .word 0xBFB33333
+_02222A70: .word 0x3FB33333
+_02222A74: .word MOD08_022227C4
+
+ thumb_func_start MOD08_02222A78
+MOD08_02222A78: ; 0x02222A78
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x40
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x40
+ bl Call_FillMemWithValue
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x38]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x3a]
+ ldr r0, [r4, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ str r0, [r4, #0x3c]
+ mov r1, #4
+ add r0, r4, #0
+ str r1, [sp]
+ add r0, #0x14
+ mov r2, #0
+ mov r3, #1
+ bl MOD08_022183C0
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ mov r2, #0x10
+ add r0, r1, r0
+ mov r1, #0
+ strh r0, [r4, #0x14]
+ str r1, [sp]
+ ldr r0, [r4, #8]
+ add r3, r1, #0
+ bl FUN_02007E68
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ cmp r5, #2
+ bne _02222B24
+ cmp r0, #4
+ beq _02222B2C
+_02222B24:
+ cmp r5, #5
+ bne _02222B5E
+ cmp r0, #3
+ bne _02222B5E
+_02222B2C:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02217C08
+ mov r1, #1
+ add r5, r1, #0
+ lsl r5, r0
+ ldr r0, [r4]
+ bl MOD08_02215504
+ mov r3, #0
+ lsl r2, r5, #0x10
+ str r3, [sp]
+ mov r1, #0x10
+ str r1, [sp, #4]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ str r3, [sp, #8]
+ bl FUN_02003210
+ mov r2, #1
+ str r2, [r4, #0x10]
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl FUN_02007558
+_02222B5E:
+ ldr r0, [r4]
+ ldr r1, _02222B6C ; =MOD08_02222884
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02222B6C: .word MOD08_02222884
+
+ thumb_func_start MOD08_02222B70
+MOD08_02222B70: ; 0x02222B70
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ mov r5, #0
+ cmp r0, #3
+ bhi _02222BEC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02222B8A: ; jump table
+ .short _02222B92 - _02222B8A - 2 ; case 0
+ .short _02222BAA - _02222B8A - 2 ; case 1
+ .short _02222BD0 - _02222B8A - 2 ; case 2
+ .short _02222BEA - _02222B8A - 2 ; case 3
+_02222B92:
+ add r0, r4, #0
+ add r0, #0x1c
+ bl MOD08_02218704
+ cmp r0, #1
+ bne _02222BEC
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0x20
+ str r0, [r4, #0x44]
+ b _02222BEC
+_02222BAA:
+ ldr r0, [r4, #0x44]
+ sub r0, r0, #1
+ str r0, [r4, #0x44]
+ bpl _02222BEC
+ ldr r0, [r4, #8]
+ mov r1, #8
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0x18
+ add r4, #0x1c
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r5, #0
+ add r3, r1, #0
+ bl MOD08_022186D4
+ b _02222BEC
+_02222BD0:
+ add r0, r4, #0
+ add r0, #0x1c
+ bl MOD08_02218704
+ cmp r0, #1
+ bne _02222BEC
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x14]
+ bl MOD08_0221894C
+ b _02222BEC
+_02222BEA:
+ mov r5, #1
+_02222BEC:
+ add r0, r5, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02222BF4
+MOD08_02222BF4: ; 0x02222BF4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02222C0A
+ cmp r0, #1
+ beq _02222C2C
+ cmp r0, #2
+ beq _02222C3E
+ pop {r4, r5, r6, pc}
+_02222C0A:
+ ldr r0, [r4, #0x48]
+ bl FUN_0200C658
+ cmp r0, #1
+ bne _02222C1E
+ ldr r0, [r4, #0x10]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+_02222C1E:
+ add r0, r4, #0
+ bl MOD08_02222B70
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_02222C2C:
+ add r0, r4, #0
+ bl MOD08_02222B70
+ cmp r0, #0
+ beq _02222CC4
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_02222C3E:
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r5, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4, #0x10]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212014
+ add r3, r0, #0
+ lsl r0, r5, #0x18
+ mov r1, #1
+ lsr r0, r0, #0x18
+ lsl r1, r1, #0xe
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r0, [r4]
+ bl MOD08_02212490
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_02222CC4:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02222CC8
+MOD08_02222CC8: ; 0x02222CC8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ mov r1, #0x4c
+ add r7, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r7, [r4]
+ add r0, r7, #0
+ bl MOD08_02215504
+ str r0, [r4, #0x18]
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x10
+ bl MOD08_02227A00
+ mov r2, #8
+ str r2, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x1c
+ mov r1, #0
+ mov r3, #0x10
+ bl MOD08_022186D4
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0x10]
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0x10]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ sub r0, #0x28
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x48]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ cmp r0, #5
+ beq _02222D58
+ cmp r0, #2
+ bne _02222D6A
+_02222D58:
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0x48]
+ mov r1, #2
+ bl FUN_0200C6B0
+ b _02222DA6
+_02222D6A:
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4, #0x48]
+ mov r1, #0
+ bl FUN_0200C644
+_02222DA6:
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD08_022155C4
+ neg r1, r5
+ lsl r1, r1, #0x10
+ sub r6, #0x28
+ str r0, [sp, #0x18]
+ lsl r0, r6, #0x10
+ asr r0, r0, #0x10
+ neg r0, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ bl MOD08_02218998
+ add r6, r0, #0
+ add r0, r7, #0
+ bl MOD08_02212014
+ mov r1, #0x64
+ str r1, [sp]
+ ldr r1, [sp, #0x18]
+ mov r3, #5
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ str r6, [sp, #0xc]
+ str r0, [sp, #0x10]
+ lsl r0, r5, #0x18
+ add r5, #0x50
+ lsl r1, r5, #0x18
+ ldr r2, _02222E14 ; =0x0000038E
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ lsl r3, r3, #0xc
+ bl MOD08_022188DC
+ mov r2, #1
+ str r0, [r4, #0x14]
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x18]
+ lsl r2, r2, #8
+ mov r3, #8
+ bl FUN_02003A64
+ ldr r0, [r4]
+ ldr r1, _02222E18 ; =MOD08_02222BF4
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02222E14: .word 0x0000038E
+_02222E18: .word MOD08_02222BF4
+
+ thumb_func_start MOD08_02222E1C
+MOD08_02222E1C: ; 0x02222E1C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #3
+ bhi _02222F1E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02222E36: ; jump table
+ .short _02222E3E - _02222E36 - 2 ; case 0
+ .short _02222E8E - _02222E36 - 2 ; case 1
+ .short _02222ECC - _02222E36 - 2 ; case 2
+ .short _02222F06 - _02222E36 - 2 ; case 3
+_02222E3E:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _02222E70
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x54]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [sp, #8]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ b _02222F1E
+_02222E70:
+ ldr r0, [r4, #0xc]
+ mov r1, #0xa
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #5
+ str r0, [r4, #0x4c]
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x14
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD08_02218120
+ b _02222F1E
+_02222E8E:
+ add r0, r4, #0
+ add r0, #0x38
+ bl MOD08_02218058
+ ldr r1, [r4, #0x38]
+ add r5, r0, #0
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #0x10]
+ lsr r1, r1, #0x10
+ bl FUN_0200C898
+ cmp r5, #0
+ bne _02222F1E
+ ldr r0, [r4, #0x4c]
+ cmp r0, #0
+ ble _02222EC4
+ sub r0, r0, #1
+ str r0, [r4, #0x4c]
+ add r0, r4, #0
+ ldr r1, [r4, #0x38]
+ ldr r2, [r4, #0x50]
+ add r0, #0x38
+ mov r3, #4
+ str r1, [r4, #0x50]
+ bl MOD08_02218008
+ b _02222F1E
+_02222EC4:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02222F1E
+_02222ECC:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _02222EFE
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x54]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [sp, #8]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ b _02222F1E
+_02222EFE:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02222F1E
+_02222F06:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4, r5, pc}
+_02222F1E:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_02222F28
+MOD08_02222F28: ; 0x02222F28
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ mov r1, #0x58
+ add r5, r0, #0
+ add r7, r2, #0
+ str r3, [sp, #4]
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ str r6, [r4, #4]
+ str r7, [r4, #8]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ add r7, r0, #0
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_02215680
+ cmp r0, #1
+ bne _02222F68
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r4, #0x54]
+ neg r6, r7
+ b _02222F6E
+_02222F68:
+ mov r0, #1
+ str r0, [r4, #0x54]
+ add r6, r7, #0
+_02222F6E:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #4]
+ mov r1, #2
+ str r0, [r4, #0x10]
+ bl FUN_0200C840
+ mov r1, #0xfe
+ lsl r1, r1, #0x16
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl FUN_0200C884
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C714
+ mov r1, #0x28
+ mul r1, r7
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #0x10]
+ asr r1, r1, #0x10
+ mov r2, #0
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x10]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C6B0
+ mov r1, #0xb
+ mvn r1, r1
+ mul r1, r6
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #0x10]
+ asr r1, r1, #0x10
+ mov r2, #0xc
+ bl FUN_0200C8DC
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ ldr r0, [r4, #0x10]
+ bne _02223000
+ mov r1, #1
+ bl FUN_0200C5C0
+ b _02223006
+_02223000:
+ mov r1, #0
+ bl FUN_0200C5C0
+_02223006:
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0xa
+ add r0, #0x14
+ mov r1, #1
+ add r3, r2, #0
+ bl MOD08_02218120
+ cmp r6, #0
+ blt _0222302E
+ add r0, r4, #0
+ ldr r1, _02223050 ; =0x0000FF48
+ ldr r2, _02223054 ; =0x0000E38D
+ add r0, #0x38
+ mov r3, #4
+ bl MOD08_02218008
+ ldr r0, _02223050 ; =0x0000FF48
+ b _0222303E
+_0222302E:
+ add r0, r4, #0
+ ldr r2, _02223058 ; =0x00001C71
+ add r0, #0x38
+ mov r1, #0
+ mov r3, #4
+ bl MOD08_02218008
+ mov r0, #0
+_0222303E:
+ str r0, [r4, #0x50]
+ ldr r0, [r4]
+ ldr r1, _0222305C ; =MOD08_02222E1C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02223050: .word 0x0000FF48
+_02223054: .word 0x0000E38D
+_02223058: .word 0x00001C71
+_0222305C: .word MOD08_02222E1C
+
+ thumb_func_start MOD08_02223060
+MOD08_02223060: ; 0x02223060
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ str r1, [r5]
+ add r6, r3, #0
+ mov r3, #8
+ mov r1, #0xa
+ add r4, r2, #0
+ add r0, r5, #4
+ add r2, r1, #0
+ str r3, [sp]
+ bl MOD08_02218120
+ mov r0, #3
+ str r0, [r5, #0x2c]
+ mov r0, #8
+ str r0, [r5, #0x30]
+ mov r0, #0xa
+ str r0, [r5, #0x34]
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ str r0, [r5, #0x28]
+ ldr r0, [r5]
+ add r2, r6, #0
+ bl FUN_0200C714
+ ldr r0, [r5]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0200C714
+ ldr r0, [r5]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r5]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ beq _022230C8
+ mov r2, #0xfe
+ ldr r0, [r5]
+ ldr r1, _022230D4 ; =0xBF800000
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+_022230C8:
+ ldr r0, [r5]
+ mov r1, #0
+ bl FUN_0200C644
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_022230D4: .word 0xBF800000
+
+ thumb_func_start MOD08_022230D8
+MOD08_022230D8: ; 0x022230D8
+ ldr r3, _022230E0 ; =0x0200C3DD
+ ldr r0, [r0]
+ bx r3
+ nop
+_022230E0: .word 0x0200C3DD
+
+ thumb_func_start MOD08_022230E4
+MOD08_022230E4: ; 0x022230E4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0200C5E0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022230FC
+MOD08_022230FC: ; 0x022230FC
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r0, r4, #4
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _02223140
+ add r0, r4, #4
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _02223132
+ ldr r1, [sp, #8]
+ mov r0, #0
+ bl _fsub
+ add r1, r0, #0
+ mov r2, #0xfe
+ ldr r0, [r4]
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+ b _02223172
+_02223132:
+ mov r2, #0xfe
+ ldr r0, [r4]
+ ldr r1, [sp, #8]
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+ b _02223172
+_02223140:
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0
+ ble _0222316C
+ sub r0, r0, #1
+ str r0, [r4, #0x2c]
+ mov r0, #8
+ str r0, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [r4, #0x34]
+ lsl r1, r1, #0x10
+ lsl r3, r3, #0x10
+ add r0, r4, #4
+ asr r1, r1, #0x10
+ mov r2, #0xa
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldr r1, [r4, #0x30]
+ ldr r0, [r4, #0x34]
+ str r0, [r4, #0x30]
+ str r1, [r4, #0x34]
+ b _02223172
+_0222316C:
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_02223172:
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_02223178
+MOD08_02223178: ; 0x02223178
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #3
+ bhi _02223244
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02223190: ; jump table
+ .short _02223198 - _02223190 - 2 ; case 0
+ .short _022231CA - _02223190 - 2 ; case 1
+ .short _022231E8 - _02223190 - 2 ; case 2
+ .short _02223208 - _02223190 - 2 ; case 3
+_02223198:
+ ldr r0, [r4, #0x10]
+ cmp r0, #4
+ blt _022231C2
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ add r2, r4, #0
+ mov r0, #0x38
+ add r2, #0x44
+ mul r0, r1
+ add r0, r2, r0
+ bl MOD08_022230E4
+ ldr r0, [r4, #0x14]
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+ cmp r0, #4
+ blt _022231C2
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+_022231C2:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _02223244
+_022231CA:
+ mov r1, #0x1c
+ mov r2, #0x1e
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x18]
+ add r0, #0x20
+ bl MOD08_02218454
+ cmp r0, #0
+ bne _02223244
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02223244
+_022231E8:
+ add r5, r4, #0
+ mov r6, #0
+ add r5, #0x44
+_022231EE:
+ add r0, r5, #0
+ bl MOD08_022230FC
+ add r6, r6, #1
+ add r5, #0x38
+ cmp r6, #4
+ blt _022231EE
+ cmp r0, #0
+ bne _02223244
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02223244
+_02223208:
+ mov r2, #0x1c
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x1e
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_02007558
+ add r5, r4, #0
+ mov r6, #0
+ add r5, #0x44
+_02223226:
+ add r0, r5, #0
+ bl MOD08_022230D8
+ add r6, r6, #1
+ add r5, #0x38
+ cmp r6, #4
+ blt _02223226
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+_02223244:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222324C
+MOD08_0222324C: ; 0x0222324C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ str r1, [sp, #4]
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ add r4, r0, #0
+ str r2, [sp, #8]
+ str r3, [sp, #0xc]
+ bl MOD08_02228064
+ add r7, r0, #0
+ ldr r0, [sp, #4]
+ str r4, [r7]
+ str r0, [r7, #4]
+ ldr r0, [sp, #8]
+ str r0, [r7, #8]
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r7]
+ bl MOD08_022154D4
+ str r0, [r7, #0x18]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r7, #0x1c]
+ ldr r0, [r7, #0x18]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r7, #0x1e]
+ add r0, r7, #0
+ mov r3, #1
+ add r0, #0x20
+ mov r1, #4
+ mov r2, #0
+ str r3, [sp]
+ bl MOD08_022183C0
+ mov r0, #0x1e
+ ldrsh r4, [r7, r0]
+ ldr r1, [r7]
+ add r0, sp, #0x14
+ add r4, #0x10
+ mov r5, #0
+ bl MOD08_02215474
+ add r0, r5, #0
+ add r6, r7, #0
+ str r0, [sp, #0x10]
+ add r6, #0x44
+_022232B6:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ bne _022232D0
+ str r5, [sp]
+ mov r2, #0x1c
+ lsl r3, r4, #0x10
+ ldrsh r2, [r7, r2]
+ ldr r1, [sp, #0xc]
+ add r0, r6, #0
+ asr r3, r3, #0x10
+ bl MOD08_02223060
+ b _022232EC
+_022232D0:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ add r2, sp, #0x14
+ bl FUN_0200C154
+ lsl r3, r4, #0x10
+ add r1, r0, #0
+ str r5, [sp]
+ mov r2, #0x1c
+ ldrsh r2, [r7, r2]
+ add r0, r6, #0
+ asr r3, r3, #0x10
+ bl MOD08_02223060
+_022232EC:
+ mov r0, #1
+ eor r5, r0
+ ldr r0, [sp, #0x10]
+ sub r4, #0xa
+ add r0, r0, #1
+ add r6, #0x38
+ str r0, [sp, #0x10]
+ cmp r0, #4
+ blt _022232B6
+ ldr r0, [r7]
+ ldr r1, _0222330C ; =MOD08_02223178
+ add r2, r7, #0
+ bl MOD08_02212400
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222330C: .word MOD08_02223178
+
+ thumb_func_start MOD08_02223310
+MOD08_02223310: ; 0x02223310
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #6
+ bls _02223320
+ b _022234D2
+_02223320:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222332C: ; jump table
+ .short _0222333A - _0222332C - 2 ; case 0
+ .short _0222337C - _0222332C - 2 ; case 1
+ .short _022233DC - _0222332C - 2 ; case 2
+ .short _0222341C - _0222332C - 2 ; case 3
+ .short _0222343C - _0222332C - 2 ; case 4
+ .short _0222347A - _0222332C - 2 ; case 5
+ .short _022234BA - _0222332C - 2 ; case 6
+_0222333A:
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _0222335C
+ mov r2, #0x14
+ mov r3, #0x16
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217CD0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_0222335C:
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r1, #0x18
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ add r0, #0x18
+ add r3, r2, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #0xc]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0222337C:
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _0222339E
+ mov r2, #0x14
+ mov r3, #0x16
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217CD0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_0222339E:
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r2, [r4, #0x3c]
+ add r0, r4, #0
+ lsl r2, r2, #5
+ neg r2, r2
+ lsl r2, r2, #0x10
+ add r0, #0x18
+ asr r2, r2, #0x10
+ add r3, r1, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #0xc]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_022233DC:
+ add r0, r4, #0
+ ldr r2, [r4, #0x48]
+ add r0, #0x4c
+ add r1, #0x70
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _022234D2
+ mov r0, #0x46
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r2, #0x44
+ str r0, [sp]
+ mov r0, #0x16
+ ldrsh r0, [r4, r0]
+ mov r3, #0x14
+ add r1, #0x70
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ ldr r0, _022234DC ; =0xFFFE0000
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ add r0, #0x4c
+ bl MOD08_02217F50
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022234D2
+_0222341C:
+ add r0, r4, #0
+ ldr r2, [r4, #0x48]
+ add r0, #0x4c
+ add r1, #0x70
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _022234D2
+ ldr r0, [r4, #0x48]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022234D2
+_0222343C:
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _0222345C
+ mov r2, #0x14
+ mov r3, #0x16
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217CD0
+ b _022234D2
+_0222345C:
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r1, #0x18
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ add r0, #0x18
+ add r3, r2, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022234D2
+_0222347A:
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _0222349A
+ mov r2, #0x14
+ mov r3, #0x16
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217CD0
+ b _022234D2
+_0222349A:
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022234D2
+_022234BA:
+ ldr r0, [r4, #0x48]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_022234D2:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022234DC: .word 0xFFFE0000
+
+ thumb_func_start MOD08_022234E0
+MOD08_022234E0: ; 0x022234E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r1, #0
+ mov r1, #0x94
+ add r5, r0, #0
+ str r2, [sp, #0x10]
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp, #0x10]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x16]
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r2, [r4, #0x3c]
+ add r0, r4, #0
+ lsl r2, r2, #4
+ neg r2, r2
+ lsl r2, r2, #0x10
+ add r0, #0x18
+ asr r2, r2, #0x10
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0x40]
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x44
+ strh r0, [r1]
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x46
+ strh r0, [r1]
+ add r0, r6, #0
+ mov r1, #1
+ str r6, [r4, #0x48]
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0x48]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ bl FUN_0200C6B0
+ mov r0, #0x16
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r2, #0x14
+ str r0, [sp]
+ mov r0, #0x46
+ ldrsh r0, [r4, r0]
+ mov r3, #0x44
+ add r1, #0x70
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #2
+ lsl r0, r0, #0x10
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ add r0, #0x4c
+ bl MOD08_02217F50
+ ldr r0, [r4]
+ ldr r1, _022235C8 ; =MOD08_02223310
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022235C8: .word MOD08_02223310
+
+ thumb_func_start MOD08_022235CC
+MOD08_022235CC: ; 0x022235CC
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bhi _02223676
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022235E6: ; jump table
+ .short _022235EE - _022235E6 - 2 ; case 0
+ .short _0222361A - _022235E6 - 2 ; case 1
+ .short _0222363E - _022235E6 - 2 ; case 2
+ .short _02223664 - _022235E6 - 2 ; case 3
+_022235EE:
+ mov r2, #0x1a
+ ldrsh r3, [r4, r2]
+ mov r2, #0x68
+ ldrsh r2, [r4, r2]
+ mov r1, #0x18
+ ldrsh r1, [r4, r1]
+ sub r2, r3, r2
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ ldr r3, [r4, #0x14]
+ add r0, #0x1c
+ asr r2, r2, #0x10
+ bl MOD08_02217E30
+ cmp r0, #0
+ bne _02223676
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0x10
+ str r0, [r4, #0xc]
+ b _02223676
+_0222361A:
+ ldr r0, [r4, #0xc]
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+ bpl _02223676
+ ldr r0, [r4, #8]
+ mov r2, #0x10
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x40
+ add r3, r2, #0
+ bl MOD08_022186D4
+ b _02223676
+_0222363E:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02223676
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02223676
+_02223664:
+ ldr r0, [r4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r4, pc}
+_02223676:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02223680
+MOD08_02223680: ; 0x02223680
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ mov r1, #0x6c
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x18]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x1a]
+ ldr r0, [r4, #0x10]
+ mov r1, #0x29
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x68
+ strh r0, [r1]
+ mov r0, #0x1a
+ ldrsh r0, [r4, r0]
+ mov r1, #0
+ add r0, #8
+ strh r0, [r4, #0x1a]
+ ldr r0, [r4]
+ bl MOD08_022124D8
+ str r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x10]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x1c
+ mov r1, #2
+ mov r2, #0x10
+ bl MOD08_02218654
+ ldr r0, [r4]
+ mov r1, #0x10
+ mov r2, #0
+ bl MOD08_02227994
+ mov r1, #0x10
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x40
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldr r0, [r4, #0x28]
+ add r2, r4, #0
+ add r1, r0, #0
+ mul r1, r6
+ str r1, [r4, #0x28]
+ ldr r0, [r4]
+ ldr r1, _02223740 ; =MOD08_022235CC
+ bl MOD08_02212400
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02223740: .word MOD08_022235CC
+
+ thumb_func_start MOD08_02223744
+MOD08_02223744: ; 0x02223744
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x38]
+ mov r4, #0
+ cmp r0, #0
+ beq _0222375A
+ cmp r0, #1
+ beq _0222378E
+ cmp r0, #2
+ beq _022237BA
+ b _022237BC
+_0222375A:
+ add r0, r5, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #0
+ beq _02223774
+ mov r2, #0x16
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ b _022237BC
+_02223774:
+ ldr r0, [r5, #0x38]
+ mov r2, #0xa
+ add r0, r0, #1
+ str r0, [r5, #0x38]
+ mov r0, #0xc
+ add r5, #0x14
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0xf
+ add r3, r2, #0
+ bl MOD08_02218120
+ b _022237BC
+_0222378E:
+ add r0, r5, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #0
+ ldr r0, [r5, #0x10]
+ beq _022237A8
+ mov r2, #0x16
+ ldrsh r2, [r5, r2]
+ mov r1, #0xd
+ bl FUN_02007558
+ b _022237BC
+_022237A8:
+ mov r1, #0xd
+ add r2, r1, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ ldr r0, [r5, #0x38]
+ add r0, r0, #1
+ str r0, [r5, #0x38]
+ b _022237BC
+_022237BA:
+ mov r4, #1
+_022237BC:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022237C0
+MOD08_022237C0: ; 0x022237C0
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5, #0x40]
+ mov r4, #0
+ cmp r0, #0
+ beq _022237D8
+ cmp r0, #1
+ beq _0222381E
+ cmp r0, #2
+ beq _0222383A
+ b _0222383C
+_022237D8:
+ add r0, r5, #0
+ ldr r1, [r5, #0x3c]
+ add r0, #0x44
+ bl MOD08_02218360
+ add r0, r5, #0
+ add r0, #0x68
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02223802
+ mov r2, #0xb4
+ mov r3, #0xb6
+ add r0, r5, #0
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ ldr r1, [r5, #0x3c]
+ add r0, #0x68
+ bl MOD08_02217C94
+ b _0222383C
+_02223802:
+ ldr r0, [r5, #0x40]
+ mov r1, #0x10
+ add r0, r0, #1
+ str r0, [r5, #0x40]
+ str r1, [sp]
+ mov r0, #8
+ add r5, #0x8c
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r2, r4, #0
+ mov r3, #0xe
+ bl MOD08_022186D4
+ b _0222383C
+_0222381E:
+ add r0, r5, #0
+ add r0, #0x8c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _0222383C
+ ldr r0, [r5, #0x3c]
+ add r1, r4, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x40]
+ add r0, r0, #1
+ str r0, [r5, #0x40]
+ b _0222383C
+_0222383A:
+ mov r4, #1
+_0222383C:
+ add r0, r4, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02223844
+MOD08_02223844: ; 0x02223844
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _02223856
+ cmp r0, #1
+ beq _0222386E
+ b _02223884
+_02223856:
+ add r0, r4, #0
+ bl MOD08_02223744
+ add r0, r4, #0
+ bl MOD08_022237C0
+ cmp r0, #0
+ beq _02223884
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02223884
+_0222386E:
+ ldr r0, [r4, #0x3c]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+_02223884:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0222388C
+MOD08_0222388C: ; 0x0222388C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ mov r1, #0xb8
+ add r6, r0, #0
+ add r7, r2, #0
+ str r3, [sp, #8]
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r6, [r4]
+ str r5, [r4, #4]
+ str r7, [r4, #8]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C44
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0x10]
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ mov r0, #0xc
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0x14
+ add r2, r1, #0
+ mov r3, #0xf
+ bl MOD08_02218120
+ ldr r0, [sp, #8]
+ mov r1, #1
+ str r0, [r4, #0x3c]
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0x3c]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x3c]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [sp, #0xc]
+ lsl r0, r0, #5
+ add r1, r7, r0
+ add r0, r4, #0
+ add r0, #0xb4
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xb6
+ strh r6, [r0]
+ cmp r5, #0
+ bge _02223942
+ mov r1, #7
+ b _02223944
+_02223942:
+ mov r1, #0x17
+_02223944:
+ mvn r1, r1
+ add r0, r1, #0
+ mul r0, r5
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #0x20
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x68
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_02217E80
+ mov r0, #0x20
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x44
+ mov r1, #5
+ mov r2, #0xa
+ mov r3, #0xc
+ bl MOD08_02218120
+ mov r0, #0x1a
+ str r0, [sp]
+ ldr r0, _02223994 ; =0x04000050
+ mov r1, #0
+ mov r2, #0x3f
+ mov r3, #0x1f
+ bl G2x_SetBlendAlpha_
+ ldr r0, [r4]
+ ldr r1, _02223998 ; =MOD08_02223844
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02223994: .word 0x04000050
+_02223998: .word MOD08_02223844
+
+ thumb_func_start MOD08_0222399C
+MOD08_0222399C: ; 0x0222399C
+ push {r3, lr}
+ sub sp, #8
+ ldr r1, [r0, #0x68]
+ cmp r1, #5
+ bhi _02223A50
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022239B2: ; jump table
+ .short _022239BE - _022239B2 - 2 ; case 0
+ .short _022239D4 - _022239B2 - 2 ; case 1
+ .short _022239EE - _022239B2 - 2 ; case 2
+ .short _02223A08 - _022239B2 - 2 ; case 3
+ .short _02223A22 - _022239B2 - 2 ; case 4
+ .short _02223A38 - _022239B2 - 2 ; case 5
+_022239BE:
+ mov r2, #0x28
+ str r2, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x18
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_022239D4:
+ mov r1, #0x4f
+ mvn r1, r1
+ str r1, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x18
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_022239EE:
+ mov r1, #0x50
+ str r1, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r2, r1, #0
+ add r0, #0x18
+ sub r2, #0x50
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223A08:
+ mov r1, #0x4f
+ mvn r1, r1
+ str r1, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x18
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223A22:
+ mov r2, #0x50
+ str r2, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x18
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223A38:
+ mov r2, #0x27
+ mvn r2, r2
+ str r2, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x18
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223A50:
+ bl ErrorHandling
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02223A58
+MOD08_02223A58: ; 0x02223A58
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bls _02223A68
+ b _02223B7C
+_02223A68:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02223A74: ; jump table
+ .short _02223A7E - _02223A74 - 2 ; case 0
+ .short _02223A9A - _02223A74 - 2 ; case 1
+ .short _02223B1C - _02223A74 - 2 ; case 2
+ .short _02223B52 - _02223A74 - 2 ; case 3
+ .short _02223B64 - _02223A74 - 2 ; case 4
+_02223A7E:
+ ldr r0, [r4, #0x6c]
+ add r0, r0, #1
+ str r0, [r4, #0x6c]
+ cmp r0, #4
+ ble _02223B7C
+ add r0, r4, #0
+ bl MOD08_0222399C
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ b _02223B7C
+_02223A9A:
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02223ABA
+ mov r2, #0x64
+ mov r3, #0x66
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x14]
+ add r0, #0x18
+ bl MOD08_02217C94
+ b _02223B7C
+_02223ABA:
+ ldr r0, [r4, #0x68]
+ add r0, r0, #1
+ str r0, [r4, #0x68]
+ cmp r0, #6
+ bge _02223AEA
+ mov r0, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x64
+ ldrsh r1, [r4, r0]
+ mov r0, #0x18
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x64
+ strh r1, [r0]
+ mov r0, #0x66
+ ldrsh r1, [r4, r0]
+ mov r0, #0x1a
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x66
+ strh r1, [r0]
+ b _02223B7C
+_02223AEA:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C90C
+ mov r1, #0x10
+ add r0, r4, #0
+ mov r2, #0
+ str r1, [sp]
+ add r0, #0x3c
+ add r3, r2, #0
+ str r1, [sp, #4]
+ bl MOD08_022186D4
+ ldr r0, _02223B88 ; =0x00007FFF
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x10]
+ mov r2, #0xa
+ add r3, r1, #0
+ bl FUN_02007E68
+ b _02223B7C
+_02223B1C:
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02223B30
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+_02223B30:
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _02223B7C
+ ldr r0, [r4, #0xc]
+ mov r2, #0
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, _02223B88 ; =0x00007FFF
+ mov r1, #0xa
+ str r0, [sp]
+ ldr r0, [r4, #0x10]
+ add r3, r2, #0
+ bl FUN_02007E68
+ b _02223B7C
+_02223B52:
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _02223B7C
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02223B7C
+_02223B64:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02223B7C:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02223B88: .word 0x00007FFF
+
+ thumb_func_start MOD08_02223B8C
+MOD08_02223B8C: ; 0x02223B8C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x70
+ add r5, r0, #0
+ str r2, [sp]
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ str r6, [r4, #0x14]
+ add r0, r6, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C6B0
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x64
+ add r2, #0x66
+ bl FUN_0200C7A0
+ ldr r0, [r4]
+ ldr r1, _02223BE4 ; =MOD08_02223A58
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02223BE4: .word MOD08_02223A58
+
+ thumb_func_start MOD08_02223BE8
+MOD08_02223BE8: ; 0x02223BE8
+ push {r3, lr}
+ sub sp, #8
+ ldr r1, [r0, #0x50]
+ cmp r1, #3
+ bhi _02223C6A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02223BFE: ; jump table
+ .short _02223C06 - _02223BFE - 2 ; case 0
+ .short _02223C1C - _02223BFE - 2 ; case 1
+ .short _02223C36 - _02223BFE - 2 ; case 2
+ .short _02223C50 - _02223BFE - 2 ; case 3
+_02223C06:
+ mov r2, #0x50
+ str r2, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x28
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223C1C:
+ mov r1, #0x4f
+ mvn r1, r1
+ str r1, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x28
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223C36:
+ mov r1, #0x50
+ str r1, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ mov r1, #0
+ add r2, r1, #0
+ add r0, #0x28
+ sub r2, #0x50
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223C50:
+ mov r1, #0x27
+ mvn r1, r1
+ str r1, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x28
+ mov r2, #0x28
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223C6A:
+ bl ErrorHandling
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02223C74
+MOD08_02223C74: ; 0x02223C74
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #6
+ bhi _02223D7E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02223C8E: ; jump table
+ .short _02223C9C - _02223C8E - 2 ; case 0
+ .short _02223CB8 - _02223C8E - 2 ; case 1
+ .short _02223D24 - _02223C8E - 2 ; case 2
+ .short _02223D80 - _02223C8E - 2 ; case 3
+ .short _02223DE2 - _02223C8E - 2 ; case 4
+ .short _02223E02 - _02223C8E - 2 ; case 5
+ .short _02223E30 - _02223C8E - 2 ; case 6
+_02223C9C:
+ ldr r0, [r4, #0x54]
+ add r0, r0, #1
+ str r0, [r4, #0x54]
+ cmp r0, #1
+ ble _02223D7E
+ add r0, r4, #0
+ bl MOD08_02223BE8
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x54]
+ b _02223E48
+_02223CB8:
+ add r0, r4, #0
+ add r0, #0x28
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02223CD8
+ mov r2, #0x4c
+ mov r3, #0x4e
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x24]
+ add r0, #0x28
+ bl MOD08_02217C94
+ b _02223E48
+_02223CD8:
+ ldr r0, [r4, #0x50]
+ add r0, r0, #1
+ str r0, [r4, #0x50]
+ cmp r0, #4
+ bge _02223D08
+ mov r0, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x4c
+ ldrsh r1, [r4, r0]
+ mov r0, #0x28
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x4c
+ strh r1, [r0]
+ mov r0, #0x4e
+ ldrsh r1, [r4, r0]
+ mov r0, #0x2a
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x4e
+ strh r1, [r0]
+ b _02223E48
+_02223D08:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #8
+ str r0, [r4, #0x54]
+ ldr r0, [r4, #0x24]
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200C5E0
+ b _02223E48
+_02223D24:
+ ldr r0, [r4, #0x54]
+ sub r0, r0, #1
+ str r0, [r4, #0x54]
+ bpl _02223D7E
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02215504
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _02223E54 ; =0x0000FFFF
+ mov r1, #1
+ lsl r2, r2, #0x10
+ add r3, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ sub r3, #9
+ bl FUN_02003210
+ ldr r7, _02223E54 ; =0x0000FFFF
+ mov r6, #0
+ add r5, r4, #0
+_02223D64:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _02223D76
+ mov r1, #0xe
+ mov r2, #0x10
+ mov r3, #0
+ str r7, [sp]
+ bl FUN_02007E68
+_02223D76:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _02223D64
+_02223D7E:
+ b _02223E48
+_02223D80:
+ ldr r0, [r4]
+ bl MOD08_02215504
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02223E48
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02215504
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _02223E54 ; =0x0000FFFF
+ mov r1, #1
+ lsl r2, r2, #0x10
+ add r3, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ sub r3, #9
+ bl FUN_02003210
+ ldr r7, _02223E54 ; =0x0000FFFF
+ mov r6, #0
+ add r5, r4, #0
+_02223DC6:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _02223DD8
+ mov r2, #0
+ mov r1, #2
+ add r3, r2, #0
+ str r7, [sp]
+ bl FUN_02007E68
+_02223DD8:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _02223DC6
+ b _02223E48
+_02223DE2:
+ ldr r0, [r4]
+ bl MOD08_02215504
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02223E48
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #4
+ str r0, [r4, #0x54]
+ str r0, [r4, #0x50]
+ mov r0, #0
+ str r0, [r4, #0x58]
+ b _02223E48
+_02223E02:
+ ldr r0, [r4, #0x54]
+ sub r0, r0, #1
+ str r0, [r4, #0x54]
+ bpl _02223E48
+ mov r0, #4
+ str r0, [r4, #0x54]
+ ldr r0, [r4, #0x50]
+ sub r0, r0, #1
+ str r0, [r4, #0x50]
+ bpl _02223E1E
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02223E48
+_02223E1E:
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x58]
+ bl FUN_0200C644
+ ldr r1, [r4, #0x58]
+ mov r0, #1
+ eor r0, r1
+ str r0, [r4, #0x58]
+ b _02223E48
+_02223E30:
+ ldr r0, [r4, #0x24]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_02223E48:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02223E54: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02223E58
+MOD08_02223E58: ; 0x02223E58
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r1, #0
+ mov r1, #0x5c
+ add r5, r0, #0
+ str r2, [sp, #4]
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp, #4]
+ str r6, [r4, #4]
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r6, #0
+ add r5, r4, #0
+_02223E88:
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r5, #0x14]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _02223E88
+ str r7, [r4, #0x24]
+ add r0, r7, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200C6B0
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x24]
+ add r1, #0x4c
+ add r2, #0x4e
+ bl FUN_0200C7A0
+ mov r1, #0x4c
+ ldrsh r2, [r4, r1]
+ add r0, r4, #0
+ add r0, #0x4c
+ sub r2, #0x28
+ strh r2, [r0]
+ mov r2, #0x4e
+ ldrsh r3, [r4, r2]
+ add r0, r4, #0
+ add r0, #0x4e
+ sub r3, #0x28
+ strh r3, [r0]
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ bl FUN_0200C714
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200C90C
+ mov r0, #0xf
+ mvn r0, r0
+ str r0, [r4, #0x54]
+ mov r0, #0x1a
+ str r0, [sp]
+ ldr r0, _02223F08 ; =0x04000050
+ mov r1, #0
+ mov r2, #0x3f
+ mov r3, #0x1f
+ bl G2x_SetBlendAlpha_
+ ldr r0, [r4]
+ ldr r1, _02223F0C ; =MOD08_02223C74
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02223F08: .word 0x04000050
+_02223F0C: .word MOD08_02223C74
+
+ thumb_func_start MOD08_02223F10
+MOD08_02223F10: ; 0x02223F10
+ push {r3, r4, r5, lr}
+ ldr r2, _02223F50 ; =0x00000AAA
+ add r4, r0, #0
+ add r5, r1, #0
+ add r0, #0x10
+ mov r1, #0
+ mov r3, #3
+ bl MOD08_02218030
+ cmp r5, #0
+ beq _02223F3C
+ mov r0, #0
+ ldr r1, [r4, #0x18]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #8]
+ mov r1, #0xa
+ mov r2, #0x10
+ bl FUN_02007558
+ b _02223F48
+_02223F3C:
+ mov r1, #0xa
+ add r2, r1, #0
+ ldr r0, [r4, #8]
+ sub r2, #0x1a
+ bl FUN_02007558
+_02223F48:
+ mov r0, #0
+ str r0, [r4, #0x4c]
+ str r0, [r4, #0x50]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02223F50: .word 0x00000AAA
+
+ thumb_func_start MOD08_02223F54
+MOD08_02223F54: ; 0x02223F54
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4, #0x4c]
+ mov r5, #0
+ cmp r0, #3
+ bhi _0222405E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02223F6E: ; jump table
+ .short _02223F76 - _02223F6E - 2 ; case 0
+ .short _02223FB6 - _02223F6E - 2 ; case 1
+ .short _02224012 - _02223F6E - 2 ; case 2
+ .short _0222405C - _02223F6E - 2 ; case 3
+_02223F76:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218080
+ ldr r0, [r4, #8]
+ ldr r2, [r4, #0x10]
+ mov r1, #9
+ bl FUN_02007558
+ ldr r0, [r4, #0x50]
+ sub r0, r0, #1
+ str r0, [r4, #0x50]
+ bpl _0222405E
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ mov r0, #0xe
+ ldrsh r3, [r4, r0]
+ mov r0, #0xc
+ ldrsh r1, [r4, r0]
+ add r0, r3, #2
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #2
+ add r4, #0x24
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD08_02217E80
+ b _0222405E
+_02223FB6:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218080
+ cmp r0, #0
+ beq _02223FCC
+ ldr r0, [r4, #8]
+ ldr r2, [r4, #0x10]
+ mov r1, #9
+ bl FUN_02007558
+_02223FCC:
+ add r0, r4, #0
+ ldr r1, [r4, #8]
+ add r0, #0x24
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _0222405E
+ ldr r0, [r4, #0x4c]
+ mov r2, #0
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ ldr r1, [r4, #0x10]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ add r0, #0x10
+ asr r1, r1, #0x10
+ mov r3, #3
+ bl MOD08_02218030
+ mov r0, #0xe
+ ldrsh r3, [r4, r0]
+ mov r0, #0xc
+ ldrsh r1, [r4, r0]
+ mov r0, #2
+ add r4, #0x24
+ str r3, [sp]
+ add r3, r3, #2
+ lsl r3, r3, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ b _0222405E
+_02224012:
+ add r0, r4, #0
+ ldr r1, [r4, #8]
+ add r0, #0x24
+ bl MOD08_02217F2C
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218080
+ cmp r0, #0
+ ldr r0, [r4, #8]
+ beq _02224034
+ ldr r2, [r4, #0x10]
+ mov r1, #9
+ bl FUN_02007558
+ b _0222405E
+_02224034:
+ mov r2, #0xc
+ ldrsh r2, [r4, r2]
+ add r1, r5, #0
+ bl FUN_02007558
+ mov r2, #0xe
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #9
+ add r2, r5, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222405E
+_0222405C:
+ mov r5, #1
+_0222405E:
+ add r0, r5, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02224064
+MOD08_02224064: ; 0x02224064
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02224076
+ cmp r0, #1
+ beq _022240A8
+ pop {r4, pc}
+_02224076:
+ add r0, r4, #0
+ bl MOD08_02223F54
+ cmp r0, #0
+ beq _022240B6
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+ cmp r0, #4
+ bge _022240A0
+ ldr r1, [r4, #0x54]
+ mov r0, #1
+ eor r1, r0
+ add r0, r4, #0
+ str r1, [r4, #0x54]
+ bl MOD08_02223F10
+ add r0, r4, #0
+ bl MOD08_02223F54
+ pop {r4, pc}
+_022240A0:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_022240A8:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_022240B6:
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022240B8
+MOD08_022240B8: ; 0x022240B8
+ push {r4, r5, r6, lr}
+ mov r1, #0x58
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02217C1C
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ bne _02224104
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ b _02224124
+_02224104:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+_02224124:
+ strh r0, [r4, #0xe]
+ ldr r0, [r4, #8]
+ mov r1, #0xb
+ mov r2, #0x32
+ bl FUN_02007558
+ cmp r6, #1
+ bne _02224138
+ mov r0, #0
+ b _0222413A
+_02224138:
+ mov r0, #1
+_0222413A:
+ str r0, [r4, #0x54]
+ ldr r1, [r4, #0x54]
+ add r0, r4, #0
+ bl MOD08_02223F10
+ ldr r0, [r4, #4]
+ ldr r1, _02224150 ; =MOD08_02224064
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02224150: .word MOD08_02224064
+
+ thumb_func_start MOD08_02224154
+MOD08_02224154: ; 0x02224154
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x38]
+ mov r5, #0
+ cmp r0, #3
+ bhi _02224210
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222416C: ; jump table
+ .short _02224174 - _0222416C - 2 ; case 0
+ .short _022241A4 - _0222416C - 2 ; case 1
+ .short _022241C6 - _0222416C - 2 ; case 2
+ .short _022241F6 - _0222416C - 2 ; case 3
+_02224174:
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_02218380
+ cmp r0, #0
+ beq _0222419C
+ add r0, r5, #0
+ str r0, [sp]
+ ldr r1, [r4, #0x3c]
+ ldr r2, [r4, #0x40]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022182DC
+ b _02224210
+_0222419C:
+ ldr r0, [r4, #0x38]
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ b _02224210
+_022241A4:
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bpl _02224210
+ ldr r0, [r4, #0x38]
+ mov r2, #0xa
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ mov r0, #8
+ add r4, #0x10
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xf
+ add r3, r2, #0
+ bl MOD08_02218120
+ b _02224210
+_022241C6:
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_02218380
+ cmp r0, #0
+ beq _022241EE
+ add r0, r5, #0
+ str r0, [sp]
+ ldr r1, [r4, #0x3c]
+ ldr r2, [r4, #0x40]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022182DC
+ b _02224210
+_022241EE:
+ ldr r0, [r4, #0x38]
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ b _02224210
+_022241F6:
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r5, #1
+_02224210:
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02224214
+MOD08_02224214: ; 0x02224214
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _0222422A
+ cmp r0, #1
+ beq _02224240
+ cmp r0, #2
+ beq _02224250
+ pop {r4, pc}
+_0222422A:
+ add r0, r4, #0
+ bl MOD08_02224154
+ cmp r0, #0
+ beq _0222425E
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x10
+ str r0, [r4, #8]
+ pop {r4, pc}
+_02224240:
+ ldr r0, [r4, #8]
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ bpl _0222425E
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, pc}
+_02224250:
+ ldr r0, [r4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_0222425E:
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02224260
+MOD08_02224260: ; 0x02224260
+ push {r3, r4, r5, lr}
+ mov r1, #0x44
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0x10
+ add r2, r1, #0
+ mov r3, #0xf
+ bl MOD08_02218120
+ mov r0, #4
+ str r0, [r4, #0x34]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ str r0, [r4, #0x3c]
+ ldr r0, [r4]
+ ldr r1, _022242BC ; =MOD08_02224214
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_022242BC: .word MOD08_02224214
+
+ thumb_func_start MOD08_022242C0
+MOD08_022242C0: ; 0x022242C0
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5, #0x74]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r4, r0, #0
+ ldr r0, [r5, #0x78]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [r5, #0x70]
+ mov r1, #0x64
+ bl _s32_div_f
+ str r0, [sp]
+ add r0, r5, #0
+ lsl r1, r4, #0x10
+ lsl r3, r6, #0x10
+ add r0, #0x18
+ asr r1, r1, #0x10
+ mov r2, #0xa
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldr r0, [r5]
+ mov r1, #0x10
+ mov r2, #0
+ bl MOD08_02227994
+ ldr r0, [r5, #0x70]
+ mov r1, #0x64
+ bl _s32_div_f
+ mov r1, #6
+ str r1, [sp]
+ lsl r0, r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x3c
+ mov r1, #0x10
+ mov r2, #0xa
+ mov r3, #0
+ bl MOD08_022186D4
+ mov r0, #0
+ str r0, [r5, #0x64]
+ str r0, [r5, #0x68]
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02224328
+MOD08_02224328: ; 0x02224328
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x64]
+ mov r5, #0
+ cmp r0, #3
+ bhi _022243FC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02224340: ; jump table
+ .short _02224348 - _02224340 - 2 ; case 0
+ .short _0222438E - _02224340 - 2 ; case 1
+ .short _022243E4 - _02224340 - 2 ; case 2
+ .short _022243FA - _02224340 - 2 ; case 3
+_02224348:
+ add r0, r4, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x18
+ bl MOD08_02218360
+ cmp r0, #0
+ bne _022243FC
+ ldr r0, [r4, #0x78]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [r4, #0x74]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r0, [r4, #0x70]
+ mov r1, #0x64
+ bl _s32_div_f
+ str r0, [sp]
+ add r0, r4, #0
+ lsl r1, r6, #0x10
+ lsl r3, r7, #0x10
+ add r0, #0x18
+ asr r1, r1, #0x10
+ mov r2, #0xa
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldr r0, [r4, #0x64]
+ add r0, r0, #1
+ str r0, [r4, #0x64]
+ b _022243FC
+_0222438E:
+ add r0, r4, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x18
+ bl MOD08_02218360
+ cmp r0, #0
+ bne _022243FC
+ ldr r0, [r4, #0x68]
+ add r0, r0, #1
+ str r0, [r4, #0x68]
+ cmp r0, #2
+ bge _022243DC
+ add r0, r5, #0
+ str r0, [r4, #0x64]
+ ldr r0, [r4, #0x74]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [r4, #0x78]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r0, [r4, #0x70]
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r1, r6, #0x10
+ lsl r3, r7, #0x10
+ add r4, #0x18
+ str r0, [sp]
+ add r0, r4, #0
+ asr r1, r1, #0x10
+ mov r2, #0xa
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ b _022243FC
+_022243DC:
+ ldr r0, [r4, #0x64]
+ add r0, r0, #1
+ str r0, [r4, #0x64]
+ b _022243FC
+_022243E4:
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _022243FC
+ ldr r0, [r4, #0x64]
+ mov r5, #1
+ add r0, r0, #1
+ str r0, [r4, #0x64]
+ b _022243FC
+_022243FA:
+ mov r5, #1
+_022243FC:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02224400
+MOD08_02224400: ; 0x02224400
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #0x7c]
+ mov r4, #0
+ cmp r1, #0
+ beq _02224416
+ cmp r1, #1
+ beq _02224428
+ cmp r1, #2
+ beq _02224472
+ b _02224474
+_02224416:
+ bl MOD08_022242C0
+ add r0, r5, #0
+ bl MOD08_02224328
+ ldr r0, [r5, #0x7c]
+ add r0, r0, #1
+ str r0, [r5, #0x7c]
+ b _02224474
+_02224428:
+ bl MOD08_02224328
+ cmp r0, #0
+ beq _02224474
+ ldr r0, [r5, #0x6c]
+ sub r0, r0, #1
+ str r0, [r5, #0x6c]
+ bmi _02224468
+ ldr r0, [r5, #0x70]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [r5, #0x70]
+ sub r0, r1, r0
+ str r0, [r5, #0x70]
+ ldr r0, [r5, #0x74]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [r5, #0x74]
+ sub r0, r1, r0
+ str r0, [r5, #0x74]
+ ldr r0, [r5, #0x78]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [r5, #0x78]
+ sub r0, r1, r0
+ str r0, [r5, #0x78]
+ add r0, r4, #0
+ str r0, [r5, #0x7c]
+ b _02224474
+_02224468:
+ ldr r0, [r5, #0x7c]
+ mov r4, #1
+ add r0, r0, #1
+ str r0, [r5, #0x7c]
+ b _02224474
+_02224472:
+ mov r4, #1
+_02224474:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02224478
+MOD08_02224478: ; 0x02224478
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bls _02224488
+ b _022245A8
+_02224488:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02224494: ; jump table
+ .short _0222449E - _02224494 - 2 ; case 0
+ .short _022244E4 - _02224494 - 2 ; case 1
+ .short _02224544 - _02224494 - 2 ; case 2
+ .short _02224574 - _02224494 - 2 ; case 3
+ .short _02224590 - _02224494 - 2 ; case 4
+_0222449E:
+ add r0, r4, #0
+ bl MOD08_02224400
+ cmp r0, #0
+ beq _022245A8
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x1e
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C5E0
+ mov r1, #0xfe
+ lsl r1, r1, #0x16
+ ldr r0, [r4, #0x14]
+ add r2, r1, #0
+ bl FUN_0200C884
+ mov r1, #0
+ mov r2, #0x10
+ str r1, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x3c
+ add r3, r2, #0
+ bl MOD08_022186D4
+ b _022245A8
+_022244E4:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _02224502
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #8
+ mov r1, #0x10
+ mov r2, #0
+ mov r3, #0xd
+ bl FUN_0200A208
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r4, #0x10]
+ b _02224508
+_02224502:
+ ble _02224508
+ sub r0, r0, #1
+ str r0, [r4, #0x10]
+_02224508:
+ mov r0, #0
+ ldr r1, [r4, #0x10]
+ mvn r0, r0
+ cmp r1, r0
+ bne _02224532
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _02224532
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #8
+ mov r1, #0
+ mov r2, #0x10
+ mov r3, #0xd
+ bl FUN_0200A208
+ mov r0, #1
+ mvn r0, r0
+ str r0, [r4, #0x10]
+_02224532:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _022245A8
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022245A8
+_02224544:
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _022245A8
+ ldr r0, [r4, #0xc]
+ mov r1, #0x10
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ mov r2, #0
+ bl MOD08_02227994
+ mov r1, #0x10
+ mov r2, #0
+ str r1, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x3c
+ add r3, r2, #0
+ bl MOD08_022186D4
+ b _022245A8
+_02224574:
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _022245A8
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022245A8
+_02224590:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_022245A8:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022245B4
+MOD08_022245B4: ; 0x022245B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x80
+ add r6, r0, #0
+ str r2, [sp]
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r6, [r4]
+ ldr r0, [sp]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ str r5, [r4, #0x14]
+ add r0, r5, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x14]
+ mov r1, #4
+ bl FUN_0200C61C
+ mov r0, #3
+ str r0, [r4, #0x6c]
+ mov r0, #0x19
+ lsl r0, r0, #4
+ str r0, [r4, #0x70]
+ ldr r0, _02224618 ; =0x000005DC
+ ldr r1, _0222461C ; =MOD08_02224478
+ str r0, [r4, #0x74]
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ str r0, [r4, #0x78]
+ ldr r0, [r4]
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02224618: .word 0x000005DC
+_0222461C: .word MOD08_02224478
+
+ thumb_func_start MOD08_02224620
+MOD08_02224620: ; 0x02224620
+ push {r3, lr}
+ sub sp, #8
+ ldr r1, [r0, #0x34]
+ cmp r1, #3
+ bhi _02224668
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02224636: ; jump table
+ .short _0222463E - _02224636 - 2 ; case 0
+ .short _02224656 - _02224636 - 2 ; case 1
+ .short _0222463E - _02224636 - 2 ; case 2
+ .short _02224656 - _02224636 - 2 ; case 3
+_0222463E:
+ mov r1, #0x20
+ str r1, [sp]
+ mov r1, #6
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x10
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02224656:
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #6
+ str r2, [sp, #4]
+ add r0, #0x10
+ add r2, r1, #0
+ mov r3, #0x20
+ bl MOD08_02217E80
+_02224668:
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD08_0222466C
+MOD08_0222466C: ; 0x0222466C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02224682
+ cmp r0, #1
+ beq _02224690
+ cmp r0, #2
+ beq _022246C8
+ pop {r4, pc}
+_02224682:
+ add r0, r4, #0
+ bl MOD08_02224620
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_02224690:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _022246B0
+ mov r2, #0xc
+ mov r3, #0xe
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #8]
+ add r0, #0x10
+ bl MOD08_02217CD0
+ pop {r4, pc}
+_022246B0:
+ ldr r0, [r4, #0x34]
+ add r0, r0, #1
+ str r0, [r4, #0x34]
+ cmp r0, #4
+ bge _022246C0
+ mov r0, #0
+ str r0, [r4]
+ pop {r4, pc}
+_022246C0:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_022246C8:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022246D8
+MOD08_022246D8: ; 0x022246D8
+ push {r3, r4, r5, lr}
+ mov r1, #0x38
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0xe]
+ mov r0, #0
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #4]
+ ldr r1, _02224718 ; =MOD08_0222466C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02224718: .word MOD08_0222466C
+
+ thumb_func_start MOD08_0222471C
+MOD08_0222471C: ; 0x0222471C
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4]
+ cmp r0, #6
+ bhi _0222477E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02224736: ; jump table
+ .short _02224744 - _02224736 - 2 ; case 0
+ .short _02224762 - _02224736 - 2 ; case 1
+ .short _022247DA - _02224736 - 2 ; case 2
+ .short _0222481E - _02224736 - 2 ; case 3
+ .short _0222485C - _02224736 - 2 ; case 4
+ .short _022248A4 - _02224736 - 2 ; case 5
+ .short _022248D4 - _02224736 - 2 ; case 6
+_02224744:
+ add r0, r4, #0
+ add r0, #0x14
+ mov r1, #1
+ mov r2, #0x40
+ bl MOD08_02218654
+ ldr r1, [r4, #0x20]
+ ldr r0, [r4, #8]
+ add sp, #8
+ mul r0, r1
+ str r0, [r4, #0x20]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_02224762:
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ mov r1, #0x10
+ add r0, r4, #0
+ add r2, #8
+ lsl r2, r2, #0x10
+ ldrsh r1, [r4, r1]
+ ldr r3, [r4, #0xc]
+ add r0, #0x14
+ asr r2, r2, #0x10
+ bl MOD08_02217E58
+ cmp r0, #0
+ beq _02224780
+_0222477E:
+ b _022248E2
+_02224780:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02007558
+ mov r0, #0x10
+ ldrsh r1, [r4, r0]
+ mov r3, #0
+ mov r0, #2
+ add r2, r1, #0
+ str r3, [sp]
+ add r2, #0x20
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ add r0, #0x14
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldr r1, [r4, #0x1c]
+ ldr r0, [r4, #8]
+ mul r0, r1
+ str r0, [r4, #0x1c]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02217ECC
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_022247DA:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _022247F6
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_022247F6:
+ mov r0, #0x3c
+ ldrsh r1, [r4, r0]
+ mov r3, #0
+ mov r0, #2
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r2, [r4, #8]
+ add r0, r4, #0
+ lsl r2, r2, #5
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ add r0, #0x40
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldr r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_0222481E:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _0222483A
+ mov r2, #0x40
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_0222483A:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r1, #0x14
+ mov r2, #0x10
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ add r0, #0x14
+ bl MOD08_02217E80
+ ldr r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_0222485C:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02217ECC
+ cmp r0, #0
+ ldr r0, [r4, #0xc]
+ beq _02224878
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_02224878:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r1, #0x40
+ mov r2, #0x3c
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ add r0, #0x40
+ bl MOD08_02217E80
+ ldr r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_022248A4:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02217ECC
+ cmp r0, #0
+ ldr r0, [r4, #0x38]
+ beq _022248C0
+ mov r2, #0x40
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_022248C0:
+ mov r2, #0x3c
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_022248D4:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_022248E2:
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022248E8
+MOD08_022248E8: ; 0x022248E8
+ push {r3, r4, r5, lr}
+ mov r1, #0x64
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02217C1C
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x12]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x38]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x3c]
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x3e]
+ ldr r0, [r4, #4]
+ ldr r1, _02224958 ; =MOD08_0222471C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_02224958: .word MOD08_0222471C
+
+ thumb_func_start MOD08_0222495C
+MOD08_0222495C: ; 0x0222495C
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0
+ str r1, [r0, #0x40]
+ mov r1, #8
+ str r1, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ add r0, #0x1c
+ mov r2, #9
+ add r3, r1, #0
+ bl MOD08_022181A8
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02224980
+MOD08_02224980: ; 0x02224980
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #0x40]
+ mov r5, #0
+ cmp r0, #3
+ bhi _02224A72
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222499A: ; jump table
+ .short _022249A2 - _0222499A - 2 ; case 0
+ .short _022249E8 - _0222499A - 2 ; case 1
+ .short _02224A2A - _0222499A - 2 ; case 2
+ .short _02224A70 - _0222499A - 2 ; case 3
+_022249A2:
+ add r0, r4, #0
+ ldr r1, [r4, #0x18]
+ add r0, #0x1c
+ bl MOD08_022183A0
+ cmp r0, #0
+ beq _022249C6
+ add r0, r5, #0
+ str r0, [sp]
+ mov r1, #0x44
+ mov r2, #0x46
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ ldr r3, [r4, #0x30]
+ bl MOD08_022182DC
+ b _02224A72
+_022249C6:
+ ldr r0, [r4, #0x40]
+ mov r1, #9
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ mov r0, #0xf
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #2
+ add r4, #0x1c
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r2, #0xb
+ mov r3, #8
+ bl MOD08_022181A8
+ b _02224A72
+_022249E8:
+ add r0, r4, #0
+ ldr r1, [r4, #0x18]
+ add r0, #0x1c
+ bl MOD08_022183A0
+ cmp r0, #0
+ beq _02224A0C
+ add r0, r5, #0
+ str r0, [sp]
+ mov r1, #0x44
+ mov r2, #0x46
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ ldr r3, [r4, #0x30]
+ bl MOD08_022182DC
+ b _02224A72
+_02224A0C:
+ ldr r0, [r4, #0x40]
+ mov r2, #0xa
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ str r2, [sp]
+ str r2, [sp, #4]
+ mov r0, #2
+ add r4, #0x1c
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xb
+ mov r3, #0xf
+ bl MOD08_022181A8
+ b _02224A72
+_02224A2A:
+ add r0, r4, #0
+ ldr r1, [r4, #0x18]
+ add r0, #0x1c
+ bl MOD08_022183A0
+ cmp r0, #0
+ beq _02224A4E
+ add r0, r5, #0
+ str r0, [sp]
+ mov r1, #0x44
+ mov r2, #0x46
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ ldr r3, [r4, #0x30]
+ bl MOD08_022182DC
+ b _02224A72
+_02224A4E:
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #0x18]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x18]
+ add r2, #0xf3
+ bl FUN_02007558
+ ldr r0, [r4, #0x40]
+ mov r5, #1
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ b _02224A72
+_02224A70:
+ mov r5, #1
+_02224A72:
+ add r0, r5, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_02224A78
+MOD08_02224A78: ; 0x02224A78
+ push {r3, r4, r5, lr}
+ add r4, r2, #0
+ mov r2, #0
+ str r2, [r1]
+ add r5, r0, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C6B0
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C644
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C5E0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200C5F4
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200C5C0
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200C61C
+ mov r1, #0x37
+ add r0, r5, #0
+ lsl r1, r1, #0xc
+ bl FUN_0200C5B4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02224AC4
+MOD08_02224AC4: ; 0x02224AC4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ mov r4, #0
+ cmp r1, #0
+ beq _02224AD6
+ cmp r1, #1
+ beq _02224AE8
+ b _02224AEC
+_02224AD6:
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _02224AEE
+ ldr r0, [r5]
+ mov r4, #1
+ add r0, r0, #1
+ str r0, [r5]
+ b _02224AEE
+_02224AE8:
+ mov r4, #1
+ b _02224AEE
+_02224AEC:
+ mov r4, #1
+_02224AEE:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02224AF4
+MOD08_02224AF4: ; 0x02224AF4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #5
+ bls _02224B02
+ b _02224C14
+_02224B02:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02224B0E: ; jump table
+ .short _02224B1A - _02224B0E - 2 ; case 0
+ .short _02224B3E - _02224B0E - 2 ; case 1
+ .short _02224B76 - _02224B0E - 2 ; case 2
+ .short _02224BA6 - _02224B0E - 2 ; case 3
+ .short _02224BCC - _02224B0E - 2 ; case 4
+ .short _02224BF2 - _02224B0E - 2 ; case 5
+_02224B1A:
+ add r0, r4, #0
+ bl MOD08_0222495C
+ ldr r0, [r4, #0x10]
+ add r1, r4, #0
+ lsl r2, r0, #2
+ add r0, r4, r2
+ add r1, #0x60
+ add r1, r1, r2
+ mov r2, #2
+ ldr r0, [r0, #0x48]
+ lsl r2, r2, #0xc
+ bl MOD08_02224A78
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224B3E:
+ add r0, r4, #0
+ bl MOD08_02224980
+ add r5, r0, #0
+ ldr r0, [r4, #0x10]
+ add r1, r4, #0
+ lsl r2, r0, #2
+ add r0, r4, r2
+ add r1, #0x60
+ ldr r0, [r0, #0x48]
+ add r1, r1, r2
+ bl MOD08_02224AC4
+ cmp r5, r0
+ bne _02224C14
+ cmp r5, #1
+ bne _02224C14
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x48]
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224B76:
+ ldr r0, [r4, #0x10]
+ add r2, r4, #0
+ add r2, #0x78
+ lsl r1, r0, #2
+ ldr r0, [r2, r1]
+ sub r0, r0, #1
+ str r0, [r2, r1]
+ ldr r1, [r4, #0x10]
+ lsl r0, r1, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x78]
+ cmp r0, #0
+ bge _02224C14
+ add r0, r1, #1
+ str r0, [r4, #0x10]
+ cmp r0, #6
+ bge _02224B9E
+ mov r0, #0
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224B9E:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224BA6:
+ add r6, r4, #0
+ mov r7, #0
+ add r6, #0x60
+ add r5, r4, #0
+_02224BAE:
+ mov r2, #2
+ ldr r0, [r5, #0x48]
+ add r1, r6, #0
+ lsl r2, r2, #0xc
+ bl MOD08_02224A78
+ add r7, r7, #1
+ add r6, r6, #4
+ add r5, r5, #4
+ cmp r7, #6
+ blt _02224BAE
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224BCC:
+ add r6, r4, #0
+ mov r7, #0
+ add r6, #0x60
+ add r5, r4, #0
+_02224BD4:
+ ldr r0, [r5, #0x48]
+ add r1, r6, #0
+ bl MOD08_02224AC4
+ add r7, r7, #1
+ add r6, r6, #4
+ add r5, r5, #4
+ cmp r7, #6
+ blt _02224BD4
+ cmp r0, #1
+ bne _02224C14
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224BF2:
+ mov r6, #0
+ add r5, r4, #0
+_02224BF6:
+ ldr r0, [r5, #0x48]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #6
+ blt _02224BF6
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+_02224C14:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02224C1C
+MOD08_02224C1C: ; 0x02224C1C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x50
+ str r1, [sp]
+ mov r1, #0x90
+ add r4, r0, #0
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ bl MOD08_02228064
+ ldr r1, [sp]
+ str r4, [r0]
+ str r1, [r0, #4]
+ ldr r1, [sp, #4]
+ str r0, [sp, #0x14]
+ str r1, [r0, #8]
+ ldr r0, [r0]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD08_022154D4
+ ldr r1, [sp, #0x14]
+ str r0, [r1, #0x18]
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ ldr r0, [sp, #0x14]
+ mov r1, #1
+ ldr r0, [r0, #0x18]
+ bl FUN_0200782C
+ ldr r1, [sp, #0x14]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r1, #0x44
+ str r0, [sp, #0xc]
+ strh r0, [r1]
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD08_0221552C
+ ldr r1, [sp, #0x14]
+ add r1, #0x46
+ strh r0, [r1]
+ ldr r1, [sp, #0x14]
+ add r0, sp, #0x1c
+ ldr r1, [r1]
+ bl MOD08_02215474
+ ldr r5, [sp, #0x14]
+ mov r4, #0
+_02224C94:
+ cmp r4, #0
+ bne _02224C9C
+ ldr r0, [sp, #8]
+ b _02224CA6
+_02224C9C:
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ add r2, sp, #0x1c
+ bl FUN_0200C154
+_02224CA6:
+ str r0, [r5, #0x48]
+ ldr r0, [r5, #0x48]
+ mov r1, #0
+ bl FUN_0200C644
+ lsr r0, r4, #0x1f
+ add r0, r4, r0
+ asr r1, r0, #1
+ ldr r0, _02224D6C ; =0x00001555
+ mov r2, #3
+ mul r0, r1
+ asr r0, r0, #4
+ lsl r0, r0, #2
+ ldr r1, _02224D70 ; =0x020FFA38
+ str r0, [sp, #0x18]
+ add r1, r1, r0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ lsl r2, r2, #0x10
+ mov r3, #0
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ ldr r0, _02224D74 ; =0x00000000
+ adc r1, r0
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ lsl r0, r1, #4
+ asr r6, r0, #0x10
+ mov r2, #3
+ ldr r1, _02224D70 ; =0x020FFA38
+ ldr r0, [sp, #0x18]
+ lsl r2, r2, #0x10
+ ldrsh r0, [r1, r0]
+ mov r3, #0
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ ldr r2, _02224D74 ; =0x00000000
+ adc r1, r2
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ lsl r0, r0, #4
+ asr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ lsr r2, r4, #0x1f
+ lsl r1, r4, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ bne _02224D2E
+ add r0, r7, r6
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r5, #0x48]
+ mov r1, #1
+ bl FUN_0200C8D0
+ b _02224D34
+_02224D2E:
+ sub r0, r7, r6
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+_02224D34:
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ ldr r0, [r5, #0x48]
+ add r1, r6, #0
+ bl FUN_0200C714
+ cmp r4, #2
+ bge _02224D4E
+ mov r0, #8
+ b _02224D50
+_02224D4E:
+ mov r0, #0
+_02224D50:
+ add r4, r4, #1
+ str r0, [r5, #0x78]
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02224C94
+ ldr r0, [sp, #0x14]
+ ldr r1, _02224D78 ; =MOD08_02224AF4
+ ldr r0, [r0]
+ ldr r2, [sp, #0x14]
+ bl MOD08_02212400
+ add sp, #0x50
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02224D6C: .word 0x00001555
+_02224D70: .word 0x020FFA38
+_02224D74: .word 0x00000000
+_02224D78: .word MOD08_02224AF4
+
+ thumb_func_start MOD08_02224D7C
+MOD08_02224D7C: ; 0x02224D7C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #5
+ bhi _02224DBC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02224D96: ; jump table
+ .short _02224DA2 - _02224D96 - 2 ; case 0
+ .short _02224DB2 - _02224D96 - 2 ; case 1
+ .short _02224E12 - _02224D96 - 2 ; case 2
+ .short _02224E6E - _02224D96 - 2 ; case 3
+ .short _02224E9E - _02224D96 - 2 ; case 4
+ .short _02224EC2 - _02224D96 - 2 ; case 5
+_02224DA2:
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224EDA
+_02224DB2:
+ ldr r0, [r4, #0x5c]
+ bl FUN_0200C608
+ cmp r0, #0
+ beq _02224DBE
+_02224DBC:
+ b _02224EDA
+_02224DBE:
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0xc]
+ mov r1, #0xa
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x14
+ add r2, r1, #0
+ mov r3, #0
+ bl MOD08_02218120
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ add r5, r0, #0
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ add r3, r0, #0
+ mov r0, #0x8a
+ ldrsh r0, [r4, r0]
+ lsl r1, r5, #0x10
+ lsl r3, r3, #0x10
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r2, #0x88
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ add r0, #0x38
+ asr r1, r1, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ b _02224EDA
+_02224E12:
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x38
+ bl MOD08_02217F2C
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_02218380
+ cmp r0, #0
+ bne _02224EDA
+ ldr r0, [r4, #0x10]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf3
+ bl FUN_02007558
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200C5C0
+ mov r1, #1
+ ldr r0, [r4, #0x5c]
+ lsl r1, r1, #0xc
+ bl FUN_0200C5F4
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224EDA
+_02224E6E:
+ ldr r0, [r4, #0x5c]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _02224EDA
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ str r1, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r3, #0x8a
+ add r0, r4, #0
+ ldrsh r3, [r4, r3]
+ add r0, #0x60
+ add r2, r1, #0
+ bl MOD08_02217E80
+ b _02224EDA
+_02224E9E:
+ add r0, r4, #0
+ add r0, #0x60
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02224EBA
+ mov r1, #0x88
+ mov r2, #0x62
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ bl FUN_0200C714
+ b _02224EDA
+_02224EBA:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224EDA
+_02224EC2:
+ ldr r0, [r4, #0x5c]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02224EDA:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02224EE4
+MOD08_02224EE4: ; 0x02224EE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x8c
+ add r5, r0, #0
+ str r2, [sp]
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #6
+ mov r2, #0
+ str r0, [r4, #0x10]
+ bl FUN_02007558
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, r4, #0
+ add r1, #0x88
+ strh r0, [r1]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r1, r4, #0
+ add r1, #0x8a
+ strh r0, [r1]
+ str r6, [r4, #0x5c]
+ add r0, r6, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200C6B0
+ mov r1, #0x88
+ mov r2, #0x8a
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ bl FUN_0200C714
+ ldr r0, [r4]
+ ldr r1, _02224F70 ; =MOD08_02224D7C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02224F70: .word MOD08_02224D7C
+
+ thumb_func_start MOD08_02224F74
+MOD08_02224F74: ; 0x02224F74
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ add r0, r1, #0
+ bl MOD08_02217C08
+ mov r1, #1
+ add r2, r1, #0
+ lsl r2, r0
+ mov r0, #0
+ lsl r2, r2, #0x10
+ add r4, #0xc4
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r1, #2
+ lsr r2, r2, #0x10
+ mov r3, #8
+ bl FUN_02003A64
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02224FA0
+MOD08_02224FA0: ; 0x02224FA0
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r1, #0xa
+ mov r0, #0x14
+ str r0, [sp]
+ str r1, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x28
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_022181A8
+ mov r0, #4
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0x4c
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD08_02218120
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x94
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #6
+ add r0, #0x98
+ str r1, [r0]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ add r1, r0, #0
+ lsl r2, r1, #1
+ ldr r1, _0222503C ; =0x0222C664
+ ldr r0, [r4, #0x20]
+ ldrh r1, [r1, r2]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_0200C644
+ add r0, r4, #0
+ add r0, #0x28
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ bl MOD08_0221825C
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _02225024
+ ldr r1, [sp, #0x10]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #0x10]
+_02225024:
+ ldr r0, [r4, #0x18]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C884
+ ldr r1, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD08_02224F74
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_0222503C: .word 0x0222C664
+
+ thumb_func_start MOD08_02225040
+MOD08_02225040: ; 0x02225040
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r4, #0
+ cmp r0, #0
+ beq _0222505C
+ cmp r0, #1
+ beq _022250E4
+ cmp r0, #2
+ bne _0222505A
+ b _02225164
+_0222505A:
+ b _02225166
+_0222505C:
+ add r0, r5, #0
+ add r0, #0x28
+ bl MOD08_02218224
+ add r0, r5, #0
+ add r0, #0x28
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ bl MOD08_0221825C
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _02225084
+ ldr r1, [sp, #0x10]
+ add r0, r4, #0
+ bl _fsub
+ str r0, [sp, #0x10]
+_02225084:
+ ldr r0, [r5, #0x18]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C884
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, [r5, #0x14]
+ ldr r2, [r5, #0x10]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x18]
+ ldr r3, [r5, #0x3c]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02218314
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #0
+ bge _02225166
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r3, #0x14
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x94
+ str r1, [r0]
+ str r3, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ mov r0, #4
+ add r5, #0x28
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD08_022181A8
+ b _02225166
+_022250E4:
+ add r0, r5, #0
+ add r0, #0x28
+ bl MOD08_02218224
+ add r0, r5, #0
+ add r0, #0x4c
+ bl MOD08_02218170
+ cmp r0, #0
+ beq _02225142
+ mov r0, #0x4c
+ ldrsh r0, [r5, r0]
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ strh r0, [r5, #0x28]
+ add r0, r5, #0
+ add r0, #0x28
+ bl MOD08_0221825C
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _0222511E
+ ldr r1, [sp, #0x10]
+ add r0, r4, #0
+ bl _fsub
+ str r0, [sp, #0x10]
+_0222511E:
+ ldr r0, [r5, #0x18]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C884
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, [r5, #0x14]
+ ldr r2, [r5, #0x10]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x18]
+ ldr r3, [r5, #0x3c]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02218314
+ b _02225166
+_02225142:
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x94
+ str r1, [r0]
+ ldr r0, [r5, #0x20]
+ add r1, r4, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x18]
+ add r1, r4, #0
+ bl FUN_0200C644
+ mov r4, #1
+ b _02225166
+_02225164:
+ mov r4, #1
+_02225166:
+ add r0, r4, #0
+ add sp, #0x14
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_0222516C
+MOD08_0222516C: ; 0x0222516C
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ add r1, sp, #0xc
+ ldr r0, [r4, #0x1c]
+ add r1, #2
+ add r2, sp, #0xc
+ bl FUN_0200C7A0
+ add r1, sp, #0xc
+ mov r0, #0
+ ldrsh r3, [r1, r0]
+ mov r0, #2
+ ldrsh r1, [r1, r0]
+ mov r0, #8
+ str r3, [sp]
+ sub r3, #0x40
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r3, r3, #0x10
+ add r0, #0x70
+ add r2, r1, #0
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ mov r2, #0xa
+ str r2, [sp]
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x28
+ mov r1, #2
+ mov r3, #0x14
+ bl MOD08_022181A8
+ add r0, r4, #0
+ add r0, #0x28
+ add r1, sp, #0x14
+ add r2, sp, #0x10
+ bl MOD08_0221825C
+ add r0, r4, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _022251D4
+ ldr r1, [sp, #0x14]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #0x14]
+_022251D4:
+ ldr r0, [r4, #0x1c]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ bl FUN_0200C884
+ add r0, r4, #0
+ ldr r1, [r4, #0x1c]
+ add r0, #0x70
+ bl MOD08_02217F08
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x94
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #6
+ add r0, #0x98
+ str r1, [r0]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ add r1, r0, #0
+ lsl r2, r1, #1
+ ldr r1, _02225228 ; =0x0222C664
+ ldr r0, [r4, #0x24]
+ ldrh r1, [r1, r2]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r1, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD08_02224F74
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+_02225228: .word 0x0222C664
+
+ thumb_func_start MOD08_0222522C
+MOD08_0222522C: ; 0x0222522C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r4, #0
+ cmp r0, #0
+ beq _02225246
+ cmp r0, #1
+ beq _02225276
+ cmp r0, #2
+ beq _022252C8
+ b _022252CA
+_02225246:
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x1c]
+ add r0, #0x70
+ bl MOD08_02217F08
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #0
+ bge _022252CA
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r5, #0x94
+ add r0, r0, #1
+ str r0, [r5]
+ b _022252CA
+_02225276:
+ add r0, r5, #0
+ ldr r1, [r5, #0x1c]
+ add r0, #0x70
+ bl MOD08_02217F08
+ add r0, r5, #0
+ add r0, #0x28
+ bl MOD08_02218224
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0x28
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD08_0221825C
+ add r0, r5, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _022252AA
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl _fsub
+ str r0, [sp, #4]
+_022252AA:
+ ldr r0, [r5, #0x1c]
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ bl FUN_0200C884
+ cmp r6, #0
+ bne _022252CA
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r5, #0x94
+ add r0, r0, #1
+ str r0, [r5]
+ mov r4, #1
+ b _022252CA
+_022252C8:
+ mov r4, #1
+_022252CA:
+ add r0, r4, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_022252D0
+MOD08_022252D0: ; 0x022252D0
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #6
+ bhi _022253AA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022252EA: ; jump table
+ .short _022252F8 - _022252EA - 2 ; case 0
+ .short _0222531C - _022252EA - 2 ; case 1
+ .short _02225336 - _022252EA - 2 ; case 2
+ .short _0222534C - _022252EA - 2 ; case 3
+ .short _02225362 - _022252EA - 2 ; case 4
+ .short _02225388 - _022252EA - 2 ; case 5
+ .short _0222539C - _022252EA - 2 ; case 6
+_022252F8:
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x10
+ bl MOD08_02227994
+ mov r2, #8
+ str r2, [sp]
+ add r0, r4, #0
+ str r2, [sp, #4]
+ add r0, #0x9c
+ mov r1, #0
+ mov r3, #0x10
+ bl MOD08_022186D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022253AA
+_0222531C:
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _022253AA
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ add r0, r4, #0
+ bl MOD08_02224FA0
+ b _022253AA
+_02225336:
+ add r0, r4, #0
+ bl MOD08_02225040
+ cmp r0, #0
+ beq _022253AA
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #2
+ str r0, [r4, #0xc]
+ b _022253AA
+_0222534C:
+ ldr r0, [r4, #0xc]
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+ bpl _022253AA
+ add r0, r4, #0
+ bl MOD08_0222516C
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022253AA
+_02225362:
+ add r0, r4, #0
+ bl MOD08_0222522C
+ cmp r0, #0
+ beq _022253AA
+ ldr r0, [r4, #8]
+ mov r1, #8
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0x10
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x9c
+ mov r2, #0
+ add r3, r1, #0
+ str r1, [sp, #4]
+ bl MOD08_022186D4
+ b _022253AA
+_02225388:
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _022253AA
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022253AA
+_0222539C:
+ ldr r0, [r4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+_022253AA:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022253B4
+MOD08_022253B4: ; 0x022253B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r1, #0xd0
+ add r6, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r6, [r4]
+ add r0, r6, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ bl MOD08_02215504
+ add r1, r4, #0
+ add r1, #0xc4
+ str r0, [r1]
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r7, r0, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ add r0, r7, #0
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ add r0, r7, #0
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [sp, #4]
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ ldr r0, [sp, #4]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [sp, #4]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r6, r0
+ lsl r0, r0, #0x10
+ str r5, [r4, #0x14]
+ asr r6, r0, #0x10
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ str r0, [r4, #0x10]
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x18]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x18]
+ ldr r1, [sp]
+ add r2, r5, #0
+ bl FUN_0200C714
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x1c]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ add r1, r7, #0
+ add r2, r6, #0
+ bl FUN_0200C714
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #0x28
+ bl FUN_0200C8DC
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_02215680
+ add r1, r4, #0
+ add r1, #0xc8
+ str r0, [r1]
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215680
+ add r1, r4, #0
+ add r1, #0xcc
+ str r0, [r1]
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD08_022124D8
+ str r0, [r4, #0x20]
+ ldr r0, [r4]
+ mov r1, #3
+ bl MOD08_022124D8
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4]
+ ldr r1, _02225520 ; =MOD08_022252D0
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02225520: .word MOD08_022252D0
+
+ thumb_func_start MOD08_02225524
+MOD08_02225524: ; 0x02225524
+ push {r4, lr}
+ sub sp, #0x20
+ mov r2, #0xa
+ add r4, r0, #0
+ add r0, #0xf8
+ mov r1, #0x19
+ add r3, r2, #0
+ str r2, [sp]
+ bl MOD08_02218120
+ mov r0, #0x3a
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r3, #0x38
+ str r0, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x44]
+ ldr r2, _02225570 ; =MOD08_02218170
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x40]
+ add r1, #0xf8
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x3c]
+ str r0, [sp, #0x18]
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ ldrsh r3, [r4, r3]
+ add r0, #0x48
+ bl MOD08_0221847C
+ add sp, #0x20
+ pop {r4, pc}
+ .align 2, 0
+_02225570: .word MOD08_02218170
+
+ thumb_func_start MOD08_02225574
+MOD08_02225574: ; 0x02225574
+ push {r4, lr}
+ sub sp, #0x20
+ add r4, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0xf8
+ add r2, r1, #0
+ mov r3, #0x19
+ bl MOD08_02218120
+ mov r0, #0x3a
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r3, #0x38
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x3c]
+ ldr r2, _022255CC ; =MOD08_02218170
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x40]
+ add r1, #0xf8
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x44]
+ str r0, [sp, #0x18]
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ ldrsh r3, [r4, r3]
+ add r0, #0x48
+ bl MOD08_0221847C
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl FUN_0200C644
+ add sp, #0x20
+ pop {r4, pc}
+ .align 2, 0
+_022255CC: .word MOD08_02218170
+
+ thumb_func_start MOD08_022255D0
+MOD08_022255D0: ; 0x022255D0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bhi _02225688
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022255E8: ; jump table
+ .short _022255F2 - _022255E8 - 2 ; case 0
+ .short _02225600 - _022255E8 - 2 ; case 1
+ .short _0222562E - _022255E8 - 2 ; case 2
+ .short _02225652 - _022255E8 - 2 ; case 3
+ .short _02225666 - _022255E8 - 2 ; case 4
+_022255F2:
+ add r0, r4, #0
+ bl MOD08_02225524
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02225688
+_02225600:
+ add r0, r4, #0
+ add r0, #0x48
+ bl MOD08_02218524
+ cmp r0, #0
+ bne _02225688
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0xc]
+ mov r1, #4
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #6
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x14
+ mov r2, #0
+ mov r3, #1
+ bl MOD08_022183C0
+ b _02225688
+_0222562E:
+ mov r1, #0x38
+ mov r2, #0x3a
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_02218454
+ cmp r0, #0
+ bne _02225688
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ add r0, r4, #0
+ bl MOD08_02225574
+ b _02225688
+_02225652:
+ add r0, r4, #0
+ add r0, #0x48
+ bl MOD08_02218524
+ cmp r0, #0
+ bne _02225688
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02225688
+_02225666:
+ mov r6, #0
+ add r5, r4, #0
+_0222566A:
+ ldr r0, [r5, #0x3c]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #3
+ blt _0222566A
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ pop {r3, r4, r5, r6, r7, pc}
+_02225688:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02225690
+MOD08_02225690: ; 0x02225690
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r6, r1, #0
+ mov r1, #0x47
+ lsl r1, r1, #2
+ add r5, r0, #0
+ str r2, [sp]
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp]
+ str r6, [r4, #4]
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x38]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x3a]
+ ldr r0, [r4, #0x10]
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #0x3a
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ strh r0, [r4, #0x3a]
+ add r0, sp, #4
+ add r1, r5, #0
+ bl MOD08_02215474
+ mov r6, #0
+ add r5, r4, #0
+_022256EC:
+ cmp r6, #0
+ bne _022256FC
+ add r0, r7, #0
+ mov r1, #1
+ str r7, [r5, #0x3c]
+ bl FUN_0200C5C0
+ b _0222570E
+_022256FC:
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #8]
+ add r2, sp, #4
+ bl FUN_0200C154
+ mov r1, #1
+ str r0, [r5, #0x3c]
+ bl FUN_0200C90C
+_0222570E:
+ ldr r0, [r5, #0x3c]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x3c]
+ mov r1, #1
+ bl FUN_0200C6B0
+ mov r1, #0x38
+ mov r2, #0x3a
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r5, #0x3c]
+ bl FUN_0200C714
+ ldr r0, [r5, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x3c]
+ mov r1, #2
+ bl FUN_0200C840
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #3
+ blt _022256EC
+ ldr r0, [r4]
+ ldr r1, _02225754 ; =MOD08_022255D0
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02225754: .word MOD08_022255D0
+
+ thumb_func_start MOD08_02225758
+MOD08_02225758: ; 0x02225758
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r7, #0
+ add r6, r5, #0
+ str r1, [sp, #0x10]
+ add r6, #0x30
+ add r4, r7, #0
+_02225768:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x32
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #0x30
+ mov r1, #0
+ str r0, [sp, #0xc]
+ ldr r2, _022257A8 ; =0x00007FFF
+ add r0, r6, #0
+ add r3, r1, #0
+ bl MOD08_02217D14
+ ldr r0, [r5, #0x38]
+ add r7, r7, #1
+ add r0, r0, r4
+ str r0, [r5, #0x38]
+ ldr r1, [r5, #0x48]
+ ldr r0, [sp, #0x10]
+ add r6, #0x24
+ mul r0, r1
+ str r0, [r5, #0x48]
+ ldr r0, _022257AC ; =0x00002AAA
+ add r5, #0x24
+ add r4, r4, r0
+ cmp r7, #6
+ blt _02225768
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022257A8: .word 0x00007FFF
+_022257AC: .word 0x00002AAA
+
+ thumb_func_start MOD08_022257B0
+MOD08_022257B0: ; 0x022257B0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ mov r0, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ str r0, [sp]
+ add r0, #0x30
+ str r0, [sp]
+ add r5, r6, #0
+ add r4, r6, #0
+_022257C6:
+ ldr r0, [sp]
+ bl MOD08_02217D98
+ ldr r1, [r5, #0x38]
+ mov r2, #0xa
+ lsl r0, r1, #2
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r1, r0, #2
+ ldr r0, _0222586C ; =0x020FFA38
+ ldr r3, [r6, #0x14]
+ ldrsh r0, [r0, r1]
+ lsl r2, r2, #0xc
+ mul r2, r3
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ add r3, r1, #0
+ mov r1, #0x13
+ lsl r1, r1, #4
+ mov r2, #0x30
+ add r7, r0, #0
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r5, r2]
+ ldr r0, [r4, #0x18]
+ add r1, r1, r2
+ ldr r2, _02225870 ; =0x00000132
+ lsl r1, r1, #0x10
+ ldrsh r2, [r6, r2]
+ asr r1, r1, #0x10
+ mov ip, r2
+ mov r2, #2
+ lsl r2, r2, #0xa
+ add r7, r7, r2
+ ldr r2, _02225874 ; =0x00000000
+ adc r3, r2
+ lsl r2, r3, #0x14
+ lsr r3, r7, #0xc
+ orr r3, r2
+ lsl r2, r3, #4
+ asr r2, r2, #0x10
+ mov r3, ip
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r1, [r5, #0x38]
+ ldr r0, _02225878 ; =0x00003FFF
+ cmp r1, r0
+ blt _02225842
+ ldr r0, _0222587C ; =0x0000BF49
+ cmp r1, r0
+ bgt _02225842
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_0200C6B0
+ b _02225852
+_02225842:
+ ldr r0, [r6]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x18]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+_02225852:
+ ldr r0, [sp]
+ add r5, #0x24
+ add r0, #0x24
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r4, r4, #4
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #6
+ blt _022257C6
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222586C: .word 0x020FFA38
+_02225870: .word 0x00000132
+_02225874: .word 0x00000000
+_02225878: .word 0x00003FFF
+_0222587C: .word 0x0000BF49
+
+ thumb_func_start MOD08_02225880
+MOD08_02225880: ; 0x02225880
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bhi _02225966
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222589A: ; jump table
+ .short _022258A4 - _0222589A - 2 ; case 0
+ .short _022258DA - _0222589A - 2 ; case 1
+ .short _022258FA - _0222589A - 2 ; case 2
+ .short _02225926 - _0222589A - 2 ; case 3
+ .short _02225942 - _0222589A - 2 ; case 4
+_022258A4:
+ ldr r0, [r4]
+ mov r1, #1
+ mov r2, #0xf
+ bl MOD08_02227994
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, #0xfe
+ add r0, r4, r0
+ mov r1, #1
+ mov r2, #0x10
+ mov r3, #0xf
+ bl MOD08_022186D4
+ ldr r1, [r4, #0x14]
+ add r0, r4, #0
+ bl MOD08_02225758
+ add r0, r4, #0
+ bl MOD08_022257B0
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02225966
+_022258DA:
+ add r0, r4, #0
+ bl MOD08_022257B0
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02225966
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x1c
+ str r0, [r4, #0x10]
+ b _02225966
+_022258FA:
+ add r0, r4, #0
+ bl MOD08_022257B0
+ ldr r0, [r4, #0x10]
+ sub r0, r0, #1
+ str r0, [r4, #0x10]
+ bpl _02225966
+ ldr r0, [r4, #0xc]
+ mov r1, #0x10
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0xf
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, #0xfe
+ add r0, r4, r0
+ mov r2, #1
+ mov r3, #0
+ bl MOD08_022186D4
+ b _02225966
+_02225926:
+ add r0, r4, #0
+ bl MOD08_022257B0
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02225966
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02225966
+_02225942:
+ mov r6, #0
+ add r5, r4, #0
+_02225946:
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #6
+ blt _02225946
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02225966:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02225970
+MOD08_02225970: ; 0x02225970
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r1, #0
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ add r4, r0, #0
+ str r2, [sp]
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r6, r0, #0
+ str r4, [r6]
+ ldr r0, [sp]
+ str r5, [r6, #4]
+ str r0, [r6, #8]
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ mov r1, #0x13
+ lsl r1, r1, #4
+ strh r0, [r6, r1]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ ldr r1, _02225A14 ; =0x00000132
+ strh r0, [r6, r1]
+ add r0, sp, #4
+ add r1, r4, #0
+ bl MOD08_02215474
+ mov r4, #0
+ add r5, r6, #0
+_022259C2:
+ cmp r4, #0
+ bne _022259CA
+ str r7, [r5, #0x18]
+ b _022259D6
+_022259CA:
+ ldr r0, [r6, #4]
+ ldr r1, [r6, #8]
+ add r2, sp, #4
+ bl FUN_0200C154
+ str r0, [r5, #0x18]
+_022259D6:
+ ldr r0, [r5, #0x18]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C5E0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _022259C2
+ ldr r0, [r6]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_02217C1C
+ str r0, [r6, #0x14]
+ ldr r0, [r6]
+ ldr r1, _02225A18 ; =MOD08_02225880
+ add r2, r6, #0
+ bl MOD08_02212400
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02225A14: .word 0x00000132
+_02225A18: .word MOD08_02225880
+
+ thumb_func_start MOD08_02225A1C
+MOD08_02225A1C: ; 0x02225A1C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r1, #0
+ add r1, sp, #8
+ add r5, r2, #0
+ add r1, #2
+ add r2, sp, #8
+ add r6, r0, #0
+ add r4, r3, #0
+ bl FUN_0200C7A0
+ add r0, sp, #8
+ mov r1, #0
+ ldrsh r3, [r0, r1]
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ lsl r0, r4, #7
+ neg r0, r0
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ lsl r1, r2, #0x10
+ lsl r4, r5, #8
+ add r2, r2, r4
+ str r0, [sp]
+ mov r0, #0x3b
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ str r0, [sp, #4]
+ add r0, r7, #0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_0200C644
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02225A70
+MOD08_02225A70: ; 0x02225A70
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r0, r1, #0
+ add r1, r4, #0
+ bl MOD08_02217F08
+ cmp r0, #0
+ beq _02225B2A
+ add r1, sp, #8
+ add r0, r4, #0
+ add r1, #2
+ add r2, sp, #8
+ bl FUN_0200C7A0
+ add r1, sp, #8
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ mov r1, #0x5b
+ lsl r1, r1, #2
+ str r0, [sp]
+ ldr r0, [sp]
+ mov r2, #0xe
+ mul r1, r0
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r1, r0, #2
+ ldr r0, _02225B30 ; =0x020FFA38
+ lsl r2, r2, #0xc
+ ldrsh r0, [r0, r1]
+ mov r3, #0
+ asr r7, r0, #0x1f
+ add r1, r7, #0
+ str r0, [sp, #4]
+ bl _ll_mul
+ add r3, r0, #0
+ add r5, r1, #0
+ add r6, sp, #8
+ mov r2, #0
+ ldrsh r2, [r6, r2]
+ mov r6, #2
+ lsl r6, r6, #0xa
+ add r0, r4, #0
+ add r6, r3, r6
+ ldr r3, _02225B34 ; =0x00000000
+ ldr r1, [sp]
+ adc r5, r3
+ lsl r3, r5, #0x14
+ lsr r5, r6, #0xc
+ orr r5, r3
+ lsl r3, r5, #4
+ asr r3, r3, #0x10
+ add r2, r2, r3
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ mov r2, #0xae
+ ldr r0, [sp, #4]
+ add r1, r7, #0
+ lsl r2, r2, #2
+ mov r3, #0
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ neg r0, r1
+ bl _fflt
+ ldr r1, _02225B38 ; =0x45800000
+ bl _fdiv
+ add r1, r0, #0
+ mov r0, #0xfe
+ lsl r0, r0, #0x16
+ bl _fadd
+ add r1, r0, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl FUN_0200C884
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02225B2A:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02225B30: .word 0x020FFA38
+_02225B34: .word 0x00000000
+_02225B38: .word 0x45800000
+
+ thumb_func_start MOD08_02225B3C
+MOD08_02225B3C: ; 0x02225B3C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x9d
+ add r7, r0, #0
+ lsl r1, r1, #2
+ ldr r0, [r7, r1]
+ cmp r0, #0xf
+ bge _02225B84
+ sub r0, r1, #4
+ ldr r0, [r7, r0]
+ add r2, r0, #1
+ sub r0, r1, #4
+ str r2, [r7, r0]
+ ldr r0, [r7, r0]
+ cmp r0, #6
+ ble _02225B84
+ mov r2, #0
+ sub r0, r1, #4
+ str r2, [r7, r0]
+ ldr r1, [r7, r1]
+ add r3, r7, #0
+ lsl r0, r1, #2
+ mov r2, #0x24
+ add r0, r7, r0
+ add r3, #0x54
+ mul r2, r1
+ add r1, r3, r2
+ ldr r0, [r0, #0x18]
+ ldr r2, [r7, #0x10]
+ ldr r3, [r7, #0x14]
+ bl MOD08_02225A1C
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ ldr r1, [r7, r0]
+ add r1, r1, #1
+ str r1, [r7, r0]
+_02225B84:
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r4, #0
+ cmp r0, #0
+ ble _02225BB0
+ add r6, r7, #0
+ add r6, #0x54
+ add r5, r7, #0
+_02225B96:
+ ldr r0, [r5, #0x18]
+ add r1, r6, #0
+ bl MOD08_02225A70
+ str r0, [sp]
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ add r4, r4, #1
+ add r6, #0x24
+ add r5, r5, #4
+ cmp r4, r0
+ blt _02225B96
+_02225BB0:
+ cmp r0, #0xf
+ blt _02225BBE
+ ldr r0, [sp]
+ cmp r0, #1
+ bne _02225BBE
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02225BBE:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02225BC4
+MOD08_02225BC4: ; 0x02225BC4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD08_02225B3C
+ cmp r0, #0
+ beq _02225BF6
+ mov r4, #0
+ add r5, r6, #0
+_02225BD8:
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xf
+ blt _02225BD8
+ add r0, r6, #0
+ bl FUN_02016A18
+ ldr r0, [r6]
+ add r1, r7, #0
+ bl MOD08_02212438
+ pop {r3, r4, r5, r6, r7, pc}
+_02225BF6:
+ ldr r0, [r6, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02225C00
+MOD08_02225C00: ; 0x02225C00
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r5, r1, #0
+ mov r1, #0x9e
+ lsl r1, r1, #2
+ add r4, r0, #0
+ str r2, [sp]
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r6, r0, #0
+ str r4, [r6]
+ ldr r0, [sp]
+ str r5, [r6, #4]
+ str r0, [r6, #8]
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ add r0, sp, #0xc
+ add r1, r4, #0
+ bl MOD08_02215474
+ mov r4, #0
+ add r5, r6, #0
+_02225C54:
+ cmp r4, #0
+ bne _02225C5C
+ str r7, [r5, #0x18]
+ b _02225C68
+_02225C5C:
+ ldr r0, [r6, #4]
+ ldr r1, [r6, #8]
+ add r2, sp, #0xc
+ bl FUN_0200C154
+ str r0, [r5, #0x18]
+_02225C68:
+ ldr r0, [r5, #0x18]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r5, #0x18]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r5, #0x18]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x18]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ bl FUN_0200C714
+ add r0, r4, #0
+ mov r1, #3
+ bl _s32_div_f
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C5C0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xf
+ blt _02225C54
+ ldr r0, [r6]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_02217C1C
+ str r0, [r6, #0x10]
+ ldr r0, [r6]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_02217C44
+ str r0, [r6, #0x14]
+ ldr r0, [r6]
+ ldr r1, _02225CD8 ; =MOD08_02225BC4
+ add r2, r6, #0
+ bl MOD08_02212400
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02225CD8: .word MOD08_02225BC4
+
+ thumb_func_start MOD08_02225CDC
+MOD08_02225CDC: ; 0x02225CDC
+ ldr r1, [r0, #0x2c]
+ cmp r1, #0
+ beq _02225CEC
+ cmp r1, #1
+ beq _02225D00
+ cmp r1, #2
+ beq _02225D14
+ bx lr
+_02225CEC:
+ ldr r1, _02225D28 ; =0x00007FFF
+ str r1, [r0, #0x18]
+ mov r1, #5
+ str r1, [r0, #0x24]
+ mov r1, #1
+ lsl r1, r1, #0x10
+ str r1, [r0, #0x1c]
+ mov r1, #0x10
+ str r1, [r0, #0x28]
+ bx lr
+_02225D00:
+ ldr r1, _02225D28 ; =0x00007FFF
+ str r1, [r0, #0x18]
+ mov r1, #4
+ mvn r1, r1
+ str r1, [r0, #0x24]
+ ldr r1, _02225D2C ; =0xFFFF0000
+ str r1, [r0, #0x1c]
+ mov r1, #0x10
+ str r1, [r0, #0x28]
+ bx lr
+_02225D14:
+ ldr r1, _02225D28 ; =0x00007FFF
+ str r1, [r0, #0x18]
+ mov r1, #0xa
+ str r1, [r0, #0x24]
+ lsl r1, r1, #0xd
+ str r1, [r0, #0x1c]
+ mov r1, #0x10
+ str r1, [r0, #0x28]
+ bx lr
+ nop
+_02225D28: .word 0x00007FFF
+_02225D2C: .word 0xFFFF0000
+
+ thumb_func_start MOD08_02225D30
+MOD08_02225D30: ; 0x02225D30
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD08_02218894
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x10]
+ str r0, [sp]
+ str r0, [sp, #4]
+ sub r0, #8
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ add r0, #0x58
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bge _02225D58
+ mov r0, #0
+ str r0, [sp, #4]
+_02225D58:
+ ldr r0, [sp]
+ cmp r0, #0xc0
+ ble _02225D62
+ mov r0, #0xc0
+ str r0, [sp]
+_02225D62:
+ mov r0, #0
+ ldr r1, [r5, #0x20]
+ mvn r0, r0
+ mul r0, r1
+ ldr r4, [sp, #4]
+ str r0, [r5, #0x20]
+ ldr r0, [sp]
+ add r1, r4, #0
+ cmp r1, r0
+ bge _02225E02
+_02225D76:
+ mov r0, #2
+ tst r0, r4
+ ldr r1, [r5, #0x1c]
+ beq _02225D86
+ ldr r0, [r5, #0x20]
+ lsl r0, r0, #0xc
+ add r2, r1, r0
+ b _02225D8C
+_02225D86:
+ ldr r0, [r5, #0x20]
+ lsl r0, r0, #0xc
+ sub r2, r1, r0
+_02225D8C:
+ ldr r1, [sp, #4]
+ ldr r0, [r5, #0x18]
+ sub r3, r4, r1
+ ldr r1, _02225E08 ; =0x00000199
+ mul r1, r3
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r1, r0, #2
+ ldr r0, _02225E0C ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ ldr r0, _02225E10 ; =0x00000000
+ adc r1, r0
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ lsl r0, r1, #4
+ asr r7, r0, #0x10
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x24]
+ sub r0, r4, r0
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ add r0, r7, r0
+ lsl r0, r0, #0x10
+ ldr r1, [r5, #0x30]
+ asr r7, r0, #0x10
+ lsl r0, r1, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x10
+ asr r0, r0, #0x10
+ asr r1, r1, #0x10
+ sub r6, r4, #1
+ bpl _02225DE6
+ add r6, #0xc0
+_02225DE6:
+ add r0, r0, r7
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ bl MOD08_02218998
+ ldr r1, [sp, #8]
+ lsl r2, r6, #2
+ str r0, [r1, r2]
+ ldr r0, [sp]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _02225D76
+_02225E02:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02225E08: .word 0x00000199
+_02225E0C: .word 0x020FFA38
+_02225E10: .word 0x00000000
+
+ thumb_func_start MOD08_02225E14
+MOD08_02225E14: ; 0x02225E14
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02225E2A
+ cmp r0, #1
+ beq _02225E3E
+ cmp r0, #2
+ beq _02225E68
+ pop {r4, r5, r6, pc}
+_02225E2A:
+ add r0, r4, #0
+ bl MOD08_02225CDC
+ add r0, r4, #0
+ bl MOD08_02225D30
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02225E3E:
+ ldr r0, [r4, #0x28]
+ sub r0, r0, #1
+ str r0, [r4, #0x28]
+ add r0, r4, #0
+ bl MOD08_02225D30
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ bge _02225EFA
+ ldr r0, [r4, #0x2c]
+ add r0, r0, #1
+ str r0, [r4, #0x2c]
+ cmp r0, #3
+ bge _02225E60
+ mov r0, #0
+ str r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02225E60:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02225E68:
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ bl MOD08_022188A8
+ ldr r0, [r4, #4]
+ bl MOD08_02218870
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r5, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212014
+ add r3, r0, #0
+ lsl r0, r5, #0x18
+ mov r1, #1
+ lsr r0, r0, #0x18
+ lsl r1, r1, #0xe
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r0, [r4]
+ bl MOD08_02212490
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD08_02212438
+_02225EFA:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02225EFC
+MOD08_02225EFC: ; 0x02225EFC
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x34
+ add r7, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r7, [r4]
+ add r0, r7, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0xc]
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ sub r6, #0x28
+ lsl r0, r6, #0x10
+ str r5, [r4, #0x14]
+ sub r5, #0x28
+ asr r0, r0, #0x10
+ neg r0, r0
+ neg r1, r5
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ str r5, [r4, #0x10]
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ bl MOD08_02218998
+ str r0, [r4, #0x30]
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_022155C4
+ bl MOD08_022189A0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212014
+ add r2, r0, #0
+ ldr r1, [r4, #0x30]
+ add r0, r5, #0
+ bl MOD08_022187F4
+ str r0, [r4, #4]
+ mov r0, #1
+ str r0, [r4, #0x20]
+ add r0, r7, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ sub r0, r0, #3
+ cmp r0, #1
+ bhi _02225FD0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r0, r5, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+_02225FD0:
+ ldr r0, [r4]
+ ldr r1, _02225FDC ; =MOD08_02225E14
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02225FDC: .word MOD08_02225E14
+
+ thumb_func_start MOD08_02225FE0
+MOD08_02225FE0: ; 0x02225FE0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #5
+ bls _02225FF0
+ b _02226134
+_02225FF0:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02225FFC: ; jump table
+ .short _02226008 - _02225FFC - 2 ; case 0
+ .short _0222604E - _02225FFC - 2 ; case 1
+ .short _02226088 - _02225FFC - 2 ; case 2
+ .short _022260C2 - _02225FFC - 2 ; case 3
+ .short _0222610E - _02225FFC - 2 ; case 4
+ .short _02226126 - _02225FFC - 2 ; case 5
+_02226008:
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xc
+ mov r1, #0x7f
+ add r3, r2, #0
+ bl MOD08_02217E80
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _02226138 ; =0xFFFF1FFF
+ and r1, r0
+ lsr r0, r2, #0xd
+ orr r0, r1
+ str r0, [r2]
+ mov r1, #0
+ ldr r0, [r4]
+ add r2, r1, #0
+ bl MOD08_02227A4C
+ ldr r1, _0222613C ; =0x04000040
+ mov r0, #0xff
+ strh r0, [r1]
+ mov r0, #0xbf
+ strh r0, [r1, #4]
+ mov r0, #7
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0222604E:
+ ldr r0, [r4, #8]
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ bpl _02226134
+ ldr r0, [r4]
+ bl MOD08_02215504
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r3, #0
+ lsl r2, r2, #0x10
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _02226140 ; =0x0000FFFF
+ mov r1, #1
+ str r0, [sp, #8]
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_02226088:
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _022260B8
+ mov r0, #0xc
+ ldrsh r2, [r4, r0]
+ mov r0, #0x7f
+ add sp, #0xc
+ sub r0, r0, r2
+ lsl r1, r0, #8
+ mov r0, #0xff
+ lsl r0, r0, #8
+ add r2, #0x80
+ and r1, r0
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r1
+ ldr r1, _0222613C ; =0x04000040
+ strh r0, [r1]
+ mov r0, #0xbf
+ strh r0, [r1, #4]
+ pop {r4, r5, pc}
+_022260B8:
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_022260C2:
+ ldr r0, [r4]
+ bl MOD08_02215504
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02226134
+ ldr r0, [r4, #4]
+ mov r2, #1
+ add r0, r0, #1
+ str r0, [r4, #4]
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _02226138 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [r4]
+ bl MOD08_02215504
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ lsl r2, r2, #0x10
+ ldr r0, _02226140 ; =0x0000FFFF
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0222610E:
+ ldr r0, [r4]
+ bl MOD08_02215504
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02226134
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_02226126:
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_02226134:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02226138: .word 0xFFFF1FFF
+_0222613C: .word 0x04000040
+_02226140: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02226144
+MOD08_02226144: ; 0x02226144
+ push {r4, lr}
+ mov r1, #0x34
+ add r4, r0, #0
+ bl MOD08_02228064
+ add r2, r0, #0
+ ldr r1, _0222615C ; =MOD08_02225FE0
+ add r0, r4, #0
+ str r4, [r2]
+ bl MOD08_02212400
+ pop {r4, pc}
+ .align 2, 0
+_0222615C: .word MOD08_02225FE0
+
+ thumb_func_start MOD08_02226160
+MOD08_02226160: ; 0x02226160
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bhi _02226210
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222617A: ; jump table
+ .short _02226184 - _0222617A - 2 ; case 0
+ .short _022261AA - _0222617A - 2 ; case 1
+ .short _022261BE - _0222617A - 2 ; case 2
+ .short _022261E4 - _0222617A - 2 ; case 3
+ .short _022261F8 - _0222617A - 2 ; case 4
+_02226184:
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x10
+ bl MOD08_02227994
+ mov r1, #0
+ mov r2, #0x10
+ str r1, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x14
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02226210
+_022261AA:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226210
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02226210
+_022261BE:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _02226210
+ ldr r0, [r4, #0xc]
+ mov r2, #0
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r1, #0x10
+ str r1, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x14
+ add r3, r2, #0
+ bl MOD08_022186D4
+ b _02226210
+_022261E4:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226210
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02226210
+_022261F8:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02226210:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222621C
+MOD08_0222621C: ; 0x0222621C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x3c
+ add r6, r0, #0
+ str r2, [sp]
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r6, [r4]
+ ldr r0, [sp]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ str r5, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4]
+ ldr r1, _02226254 ; =MOD08_02226160
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02226254: .word MOD08_02226160
+
+ thumb_func_start MOD08_02226258
+MOD08_02226258: ; 0x02226258
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ bhi _0222631C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02226272: ; jump table
+ .short _0222627C - _02226272 - 2 ; case 0
+ .short _022262E6 - _02226272 - 2 ; case 1
+ .short _02226328 - _02226272 - 2 ; case 2
+ .short _02226394 - _02226272 - 2 ; case 3
+ .short _022263E6 - _02226272 - 2 ; case 4
+_0222627C:
+ ldr r0, [r4, #0x68]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x74]
+ asr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r1, [r4, #0x5c]
+ ldr r2, [r4, #0x60]
+ ldr r3, [r4, #0x64]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022181A8
+ mov r1, #0xa
+ mov r2, #8
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x10]
+ add r0, #0x38
+ bl MOD08_02218454
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_022183A0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xc
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_022182DC
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_022262E6:
+ mov r1, #0xa
+ mov r2, #8
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x10]
+ add r0, #0x38
+ bl MOD08_02218454
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_022183A0
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xc
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_022182DC
+ cmp r5, #0
+ beq _0222631E
+_0222631C:
+ b _02226424
+_0222631E:
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_02226328:
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x74]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r1, [r4, #0x60]
+ ldr r2, [r4, #0x5c]
+ ldr r3, [r4, #0x68]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022181A8
+ mov r1, #0xa
+ mov r2, #8
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x10]
+ add r0, #0x38
+ bl MOD08_02218454
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_022183A0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xc
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_022182DC
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_02226394:
+ mov r1, #0xa
+ mov r2, #8
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x10]
+ add r0, #0x38
+ bl MOD08_02218454
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_022183A0
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xc
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_022182DC
+ cmp r5, #0
+ bne _02226424
+ ldr r0, [r4, #0x70]
+ sub r0, r0, #1
+ str r0, [r4, #0x70]
+ cmp r0, #0
+ bgt _022263DE
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_022263DE:
+ mov r0, #0
+ add sp, #0xc
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_022263E6:
+ mov r2, #0xa
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #8
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf3
+ bl FUN_02007558
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_02226424:
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_02226428
+MOD08_02226428: ; 0x02226428
+ push {r3, r4, r5, lr}
+ mov r1, #0x78
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ strh r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #8]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0xa]
+ mov r1, #0xa
+ str r1, [r4, #0x5c]
+ mov r0, #7
+ str r0, [r4, #0x60]
+ str r1, [r4, #0x64]
+ mov r0, #0x1e
+ str r0, [r4, #0x68]
+ str r1, [r4, #0x6c]
+ mov r3, #1
+ ldr r0, _0222649C ; =0x00040003
+ str r3, [r4, #0x70]
+ str r0, [r4, #0x74]
+ mov r1, #2
+ add r0, r4, #0
+ str r1, [sp]
+ add r0, #0x38
+ mov r2, #0
+ bl MOD08_022183C0
+ ldr r0, [r4]
+ ldr r1, _022264A0 ; =MOD08_02226258
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0222649C: .word 0x00040003
+_022264A0: .word MOD08_02226258
+
+ thumb_func_start MOD08_022264A4
+MOD08_022264A4: ; 0x022264A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ ldr r1, [r4, #0x2c]
+ add r0, #8
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _022264CE
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200C3DC
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ pop {r3, r4, r5, pc}
+_022264CE:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022264D8
+MOD08_022264D8: ; 0x022264D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r1, #0x30
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212518
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0222651C
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022124B0
+ str r0, [r4, #0x2c]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022124B0
+ bl FUN_0200C3DC
+ b _02226532
+_0222651C:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022124B0
+ str r0, [r4, #0x2c]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022124B0
+ bl FUN_0200C3DC
+_02226532:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C44
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ ldr r1, [sp, #0x10]
+ lsl r2, r7, #6
+ add r6, r1, r2
+ ldr r1, [sp, #0xc]
+ lsl r1, r1, #4
+ neg r1, r1
+ add r5, r0, r1
+ str r1, [sp, #8]
+ lsl r1, r6, #0x10
+ lsl r2, r5, #0x10
+ ldr r0, [r4, #0x2c]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [sp, #8]
+ mov r2, #0x30
+ add r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ mul r2, r7
+ str r0, [sp]
+ mov r0, #6
+ add r2, r6, r2
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r1, r6, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r5, #0x10
+ add r0, #8
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ ldr r0, [r4]
+ ldr r1, _022265B0 ; =MOD08_022264A4
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022265B0: .word MOD08_022264A4
+
+ thumb_func_start MOD08_022265B4
+MOD08_022265B4: ; 0x022265B4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #5
+ bls _022265C4
+ b _022266E0
+_022265C4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022265D0: ; jump table
+ .short _022265DC - _022265D0 - 2 ; case 0
+ .short _022265F6 - _022265D0 - 2 ; case 1
+ .short _02226644 - _022265D0 - 2 ; case 2
+ .short _02226660 - _022265D0 - 2 ; case 3
+ .short _022266A2 - _022265D0 - 2 ; case 4
+ .short _022266BA - _022265D0 - 2 ; case 5
+_022265DC:
+ mov r1, #4
+ add r0, r4, #0
+ str r1, [sp]
+ add r0, #0x40
+ mov r2, #0
+ mov r3, #1
+ bl MOD08_022183C0
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_022265F6:
+ mov r1, #0x18
+ mov r2, #0x1a
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x14]
+ add r0, #0x40
+ bl MOD08_02218454
+ cmp r0, #0
+ bne _022266E0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x1a
+ ldrsh r3, [r4, r0]
+ mov r0, #0x18
+ ldrsh r1, [r4, r0]
+ ldr r2, [r4, #0x10]
+ sub r0, #0x1f
+ mul r0, r2
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ add r0, r4, #0
+ ldr r4, [r4, #0xc]
+ mov r2, #0x28
+ mul r2, r4
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ add r0, #0x1c
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_02226644:
+ add r0, r4, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x1c
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _022266E0
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #8
+ str r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02226660:
+ ldr r0, [r4, #8]
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ bpl _022266E0
+ ldr r0, [r4, #4]
+ mov r5, #0x28
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x1a
+ ldrsh r3, [r4, r0]
+ mov r0, #0x18
+ ldrsh r2, [r4, r0]
+ mov r0, #4
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r4, #0
+ add r6, r1, #0
+ mul r6, r5
+ add r1, r2, r6
+ lsl r1, r1, #0x10
+ ldr r4, [r4, #0x10]
+ sub r5, #0x2f
+ mul r5, r4
+ add r3, r3, r5
+ lsl r3, r3, #0x10
+ add r0, #0x1c
+ asr r1, r1, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_022266A2:
+ add r0, r4, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x1c
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _022266E0
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_022266BA:
+ mov r2, #0x18
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x1a
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_02007558
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_022266E0:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_022266E4
+MOD08_022266E4: ; 0x022266E4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r1, #0x64
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ str r5, [r4]
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x1a]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C44
+ str r0, [r4, #0x10]
+ ldr r0, [r4]
+ ldr r1, _02226738 ; =MOD08_022265B4
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ nop
+_02226738: .word MOD08_022265B4
+
+ thumb_func_start MOD08_0222673C
+MOD08_0222673C: ; 0x0222673C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ bls _0222674C
+ b _0222685C
+_0222674C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02226758: ; jump table
+ .short _02226762 - _02226758 - 2 ; case 0
+ .short _02226798 - _02226758 - 2 ; case 1
+ .short _022267C0 - _02226758 - 2 ; case 2
+ .short _0222681E - _02226758 - 2 ; case 3
+ .short _02226836 - _02226758 - 2 ; case 4
+_02226762:
+ mov r0, #0x16
+ ldrsh r3, [r4, r0]
+ mov r0, #0x14
+ ldrsh r1, [r4, r0]
+ ldr r0, [r4, #0xc]
+ mov r5, #4
+ lsl r0, r0, #4
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ str r5, [sp, #4]
+ ldr r2, [r4, #8]
+ sub r5, #0x2c
+ mul r5, r2
+ add r2, r1, r5
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ add r0, #0x18
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02226798:
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _0222685C
+ ldr r0, [r4, #4]
+ mov r1, #4
+ add r0, r0, #1
+ str r0, [r4, #4]
+ add r4, #0x3c
+ add r0, r4, #0
+ mov r2, #0
+ mov r3, #1
+ str r1, [sp]
+ bl MOD08_022183C0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_022267C0:
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ add r0, r4, #0
+ ldr r3, [r4, #0x10]
+ add r0, #0x3c
+ add r1, r5, #0
+ bl MOD08_02218454
+ cmp r0, #0
+ bne _0222685C
+ ldr r0, [r4, #4]
+ mov r5, #4
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x16
+ ldrsh r3, [r4, r0]
+ mov r0, #0x14
+ ldrsh r2, [r4, r0]
+ add r0, r4, #0
+ add r0, #0x18
+ str r3, [sp]
+ str r5, [sp, #4]
+ ldr r1, [r4, #8]
+ ldr r4, [r4, #0xc]
+ sub r5, #0x2c
+ mul r5, r1
+ lsl r4, r4, #4
+ add r1, r2, r5
+ add r3, r3, r4
+ lsl r1, r1, #0x10
+ lsl r3, r3, #0x10
+ asr r1, r1, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_0222681E:
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _0222685C
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02226836:
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_0222685C:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02226860
+MOD08_02226860: ; 0x02226860
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r1, #0x60
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ str r5, [r4]
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x16]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ str r0, [r4, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C44
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ ldr r1, _022268B4 ; =MOD08_0222673C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ nop
+_022268B4: .word MOD08_0222673C
+
+ thumb_func_start MOD08_022268B8
+MOD08_022268B8: ; 0x022268B8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r7, r1, #0
+ add r4, r0, #0
+ mov r1, #0xac
+ add r6, r2, #0
+ str r3, [sp]
+ bl MOD08_02228064
+ str r4, [r0]
+ str r0, [sp, #4]
+ str r6, [r0, #0xc]
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02217C1C
+ ldr r1, [sp, #4]
+ str r0, [r1, #0x10]
+ ldr r1, [r1]
+ add r0, sp, #8
+ bl MOD08_02215474
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, sp, #8
+ strh r0, [r1]
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r1, sp, #8
+ ldr r5, [sp, #4]
+ strh r0, [r1, #2]
+ mov r4, #0
+_0222690C:
+ cmp r4, #0
+ add r2, sp, #8
+ bne _02226926
+ ldr r0, [sp]
+ mov r1, #0
+ str r0, [r5, #0x14]
+ ldrsh r1, [r2, r1]
+ add r3, r2, #0
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ bl FUN_0200C714
+ b _02226930
+_02226926:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x14]
+_02226930:
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x14]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x14]
+ mov r1, #1
+ bl FUN_0200C6B0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #2
+ blt _0222690C
+ ldr r0, [sp, #4]
+ ldr r1, _02226960 ; =MOD08_02226964
+ ldr r0, [r0]
+ ldr r2, [sp, #4]
+ bl MOD08_02212400
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02226960: .word MOD08_02226964
+
+ thumb_func_start MOD08_02226964
+MOD08_02226964: ; 0x02226964
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ bhi _02226A48
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222697C: ; jump table
+ .short _02226986 - _0222697C - 2 ; case 0
+ .short _022269AE - _0222697C - 2 ; case 1
+ .short _022269CE - _0222697C - 2 ; case 2
+ .short _02226A00 - _0222697C - 2 ; case 3
+ .short _02226A26 - _0222697C - 2 ; case 4
+_02226986:
+ add r2, r4, #0
+ ldr r0, [r4, #0x14]
+ ldr r3, [r4, #0x10]
+ add r1, #0x1c
+ add r2, #0x64
+ bl MOD08_02226A50
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x1c
+ add r2, #0x64
+ bl MOD08_02226AB0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #8
+ str r0, [r4, #8]
+ b _02226A48
+_022269AE:
+ ldr r0, [r4, #8]
+ add r2, r4, #0
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x14]
+ add r1, #0x1c
+ add r2, #0x64
+ bl MOD08_02226AB0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ bge _02226A48
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _02226A48
+_022269CE:
+ add r2, r4, #0
+ ldr r0, [r4, #0x18]
+ ldr r3, [r4, #0x10]
+ add r1, #0x40
+ add r2, #0x88
+ bl MOD08_02226A50
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x18]
+ add r1, #0x40
+ add r2, #0x88
+ bl MOD08_02226AB0
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x1c
+ add r2, #0x64
+ bl MOD08_02226AB0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _02226A48
+_02226A00:
+ add r2, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x1c
+ add r2, #0x64
+ bl MOD08_02226AB0
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x18]
+ add r1, #0x40
+ add r2, #0x88
+ bl MOD08_02226AB0
+ cmp r0, #0
+ beq _02226A48
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _02226A48
+_02226A26:
+ mov r6, #0
+ add r5, r4, #0
+_02226A2A:
+ ldr r0, [r5, #0x14]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #2
+ blt _02226A2A
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+_02226A48:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02226A50
+MOD08_02226A50: ; 0x02226A50
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ add r5, r0, #0
+ mov r1, #2
+ add r7, r2, #0
+ add r4, r3, #0
+ bl FUN_0200C840
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C644
+ add r1, sp, #8
+ add r0, r5, #0
+ add r1, #2
+ add r2, sp, #8
+ bl FUN_0200C7A0
+ add r1, sp, #8
+ mov r0, #0
+ ldrsh r3, [r1, r0]
+ mov r0, #2
+ ldrsh r1, [r1, r0]
+ add r0, r3, #0
+ sub r0, #0x20
+ lsl r0, r0, #0x10
+ lsl r2, r4, #4
+ asr r0, r0, #0x10
+ add r2, r1, r2
+ str r0, [sp]
+ mov r0, #0x20
+ lsl r2, r2, #0x10
+ str r0, [sp, #4]
+ add r0, r6, #0
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r0, #0x20
+ mov r2, #0xa
+ str r0, [sp]
+ add r0, r7, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD08_02218120
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02226AB0
+MOD08_02226AB0: ; 0x02226AB0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r4, r2, #0
+ add r1, r5, #0
+ bl MOD08_02217F08
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02218360
+ cmp r0, #0
+ beq _02226ACE
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02226ACE:
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02226ADC
+MOD08_02226ADC: ; 0x02226ADC
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x3c
+ add r6, r0, #0
+ add r7, r2, #0
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r6, [r4]
+ str r7, [r4, #0xc]
+ str r5, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x10]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C68C
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ ldr r1, _02226B28 ; =MOD08_02226B2C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02226B28: .word MOD08_02226B2C
+
+ thumb_func_start MOD08_02226B2C
+MOD08_02226B2C: ; 0x02226B2C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ bhi _02226C18
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02226B46: ; jump table
+ .short _02226B50 - _02226B46 - 2 ; case 0
+ .short _02226B80 - _02226B46 - 2 ; case 1
+ .short _02226BA6 - _02226B46 - 2 ; case 2
+ .short _02226BE4 - _02226B46 - 2 ; case 3
+ .short _02226C00 - _02226B46 - 2 ; case 4
+_02226B50:
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x14
+ mov r1, #0
+ mov r2, #0x10
+ mov r3, #0x14
+ bl MOD08_022186D4
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x14
+ bl MOD08_02227994
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _02226C18
+_02226B80:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226C18
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C5E0
+ mov r1, #1
+ ldr r0, [r4, #0x10]
+ lsl r1, r1, #0xc
+ bl FUN_0200C5F4
+ b _02226C18
+_02226BA6:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C630
+ mov r1, #3
+ bl _s32_div_f
+ ldr r2, [r4, #8]
+ ldr r0, [r4, #0x10]
+ add r1, r2, r1
+ bl FUN_0200C680
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _02226C18
+ ldr r0, [r4, #4]
+ mov r1, #0x10
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x14
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x14
+ mov r2, #0
+ mov r3, #4
+ bl MOD08_022186D4
+ b _02226C18
+_02226BE4:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226C18
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C644
+ b _02226C18
+_02226C00:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02226C18:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02226C24
+MOD08_02226C24: ; 0x02226C24
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ mov r1, #0x54
+ add r5, r0, #0
+ str r3, [sp, #0xc]
+ bl MOD08_02228064
+ ldr r1, [sp, #8]
+ str r5, [r0]
+ str r0, [sp, #0x14]
+ str r1, [r0, #8]
+ ldr r0, [r0]
+ bl MOD08_02212458
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217C1C
+ ldr r1, [sp, #0x14]
+ str r0, [sp, #0x10]
+ ldr r1, [r1]
+ add r0, sp, #0x18
+ bl MOD08_02215474
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, sp, #0x18
+ strh r0, [r1]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ ldr r7, [sp, #0x14]
+ ldr r6, [sp, #0x14]
+ ldr r5, [sp, #0x14]
+ add r1, sp, #0x18
+ add r7, #0x3c
+ add r6, #0x24
+ strh r0, [r1, #2]
+ mov r4, #5
+ add r5, #0x14
+ add r7, #0x14
+ add r6, #0x14
+_02226C88:
+ cmp r4, #5
+ add r2, sp, #0x18
+ bne _02226CA2
+ ldr r0, [sp, #0xc]
+ mov r1, #0
+ str r0, [r5, #0xc]
+ ldrsh r1, [r2, r1]
+ add r3, r2, #0
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ bl FUN_0200C714
+ b _02226CAC
+_02226CA2:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ bl FUN_0200C154
+ str r0, [r5, #0xc]
+_02226CAC:
+ ldr r0, [r5, #0xc]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0xc]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [sp, #0x10]
+ add r1, r6, #0
+ str r0, [sp]
+ ldr r0, [r5, #0xc]
+ add r2, r7, #0
+ add r3, r4, #0
+ bl MOD08_02226CF4
+ sub r5, r5, #4
+ sub r7, r7, #4
+ sub r6, r6, #4
+ sub r4, r4, #1
+ bpl _02226C88
+ ldr r0, [sp, #0x14]
+ ldr r1, _02226CF0 ; =MOD08_02226D78
+ ldr r0, [r0]
+ ldr r2, [sp, #0x14]
+ bl MOD08_02212400
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02226CF0: .word MOD08_02226D78
+
+ thumb_func_start MOD08_02226CF4
+MOD08_02226CF4: ; 0x02226CF4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r3, #0
+ add r6, r1, #0
+ lsr r1, r4, #0x1f
+ add r1, r4, r1
+ asr r1, r1, #1
+ add r5, r0, #0
+ add r7, r2, #0
+ bl FUN_0200C5C0
+ lsl r0, r4, #1
+ str r0, [r7]
+ mov r0, #0x10
+ add r1, sp, #0
+ str r0, [r6]
+ add r0, r5, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ mov r1, #2
+ add r6, r1, #0
+ add r2, sp, #0
+ sub r6, #0xe
+ mul r6, r4
+ ldr r0, [sp, #0x18]
+ ldrsh r3, [r2, r1]
+ add r6, #0x28
+ add r4, r0, #0
+ mul r4, r6
+ add r0, r3, r4
+ mov r3, #0
+ strh r0, [r2, #2]
+ ldrsh r0, [r2, r3]
+ add r0, #0x28
+ strh r0, [r2]
+ ldrsh r1, [r2, r1]
+ ldrsh r2, [r2, r3]
+ add r0, r5, #0
+ bl FUN_0200C714
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02226D48
+MOD08_02226D48: ; 0x02226D48
+ push {r3, lr}
+ ldr r3, [r2]
+ cmp r3, #0
+ ble _02226D5E
+ sub r1, r3, #1
+ str r1, [r2]
+ bne _02226D74
+ mov r1, #1
+ bl FUN_0200C644
+ b _02226D74
+_02226D5E:
+ ldr r2, [r1]
+ cmp r2, #0
+ ble _02226D6A
+ sub r0, r2, #1
+ str r0, [r1]
+ b _02226D74
+_02226D6A:
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #1
+ pop {r3, pc}
+_02226D74:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02226D78
+MOD08_02226D78: ; 0x02226D78
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r1, #4]
+ str r1, [sp]
+ cmp r0, #0
+ beq _02226D8A
+ cmp r0, #1
+ beq _02226DBC
+ b _02226DE0
+_02226D8A:
+ add r6, r1, #0
+ add r4, r1, #0
+ mov r7, #0
+ add r6, #0x3c
+ add r4, #0x24
+ add r5, r1, #0
+_02226D96:
+ ldr r0, [r5, #0xc]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD08_02226D48
+ add r7, r7, #1
+ add r6, r6, #4
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r7, #6
+ blt _02226D96
+ cmp r0, #0
+ beq _02226DE0
+ ldr r0, [sp]
+ ldr r0, [r0, #4]
+ add r1, r0, #1
+ ldr r0, [sp]
+ str r1, [r0, #4]
+ b _02226DE0
+_02226DBC:
+ mov r5, #0
+ add r4, r1, #0
+_02226DC0:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200C3DC
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #6
+ blt _02226DC0
+ ldr r0, [sp]
+ add r1, r6, #0
+ ldr r0, [r0]
+ bl MOD08_02212438
+ ldr r0, [sp]
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+_02226DE0:
+ ldr r0, [sp]
+ ldr r0, [r0, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02226DEC
+MOD08_02226DEC: ; 0x02226DEC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r7, #0
+ add r6, r5, #0
+ str r1, [sp, #0x10]
+ add r6, #0x30
+ add r4, r7, #0
+_02226DFC:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x32
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #0x30
+ mov r1, #0
+ str r0, [sp, #0xc]
+ ldr r2, _02226E3C ; =0x00007FFF
+ add r0, r6, #0
+ add r3, r1, #0
+ bl MOD08_02217D14
+ ldr r0, [r5, #0x38]
+ add r7, r7, #1
+ add r0, r0, r4
+ str r0, [r5, #0x38]
+ ldr r1, [r5, #0x48]
+ ldr r0, [sp, #0x10]
+ add r6, #0x24
+ mul r0, r1
+ str r0, [r5, #0x48]
+ ldr r0, _02226E40 ; =0x00002AAA
+ add r5, #0x24
+ add r4, r4, r0
+ cmp r7, #6
+ blt _02226DFC
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02226E3C: .word 0x00007FFF
+_02226E40: .word 0x00002AAA
+
+ thumb_func_start MOD08_02226E44
+MOD08_02226E44: ; 0x02226E44
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0
+ add r7, r6, #0
+ str r0, [sp]
+ add r7, #0x30
+ add r4, r6, #0
+ add r5, r6, #0
+_02226E54:
+ add r0, r7, #0
+ bl MOD08_02217D98
+ mov r1, #0x13
+ lsl r1, r1, #4
+ mov r2, #0x30
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r5, #0x18]
+ add r1, r1, r2
+ ldr r2, _02226EB0 ; =0x00000132
+ lsl r1, r1, #0x10
+ ldrsh r2, [r6, r2]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ ldr r1, [r4, #0x38]
+ ldr r0, _02226EB4 ; =0x00003FFF
+ cmp r1, r0
+ blt _02226E8C
+ ldr r0, _02226EB8 ; =0x0000BF49
+ cmp r1, r0
+ bgt _02226E8C
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C6B0
+ b _02226E9C
+_02226E8C:
+ ldr r0, [r6]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x18]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+_02226E9C:
+ ldr r0, [sp]
+ add r7, #0x24
+ add r0, r0, #1
+ add r4, #0x24
+ add r5, r5, #4
+ str r0, [sp]
+ cmp r0, #6
+ blt _02226E54
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02226EB0: .word 0x00000132
+_02226EB4: .word 0x00003FFF
+_02226EB8: .word 0x0000BF49
+
+ thumb_func_start MOD08_02226EBC
+MOD08_02226EBC: ; 0x02226EBC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bhi _02226FA2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02226ED6: ; jump table
+ .short _02226EE0 - _02226ED6 - 2 ; case 0
+ .short _02226F16 - _02226ED6 - 2 ; case 1
+ .short _02226F36 - _02226ED6 - 2 ; case 2
+ .short _02226F62 - _02226ED6 - 2 ; case 3
+ .short _02226F7E - _02226ED6 - 2 ; case 4
+_02226EE0:
+ ldr r0, [r4]
+ mov r1, #1
+ mov r2, #0xf
+ bl MOD08_02227994
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, #0xfe
+ add r0, r4, r0
+ mov r1, #1
+ mov r2, #0x10
+ mov r3, #0xf
+ bl MOD08_022186D4
+ ldr r1, [r4, #0x14]
+ add r0, r4, #0
+ bl MOD08_02226DEC
+ add r0, r4, #0
+ bl MOD08_02226E44
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02226FA2
+_02226F16:
+ add r0, r4, #0
+ bl MOD08_02226E44
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226FA2
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x1c
+ str r0, [r4, #0x10]
+ b _02226FA2
+_02226F36:
+ add r0, r4, #0
+ bl MOD08_02226E44
+ ldr r0, [r4, #0x10]
+ sub r0, r0, #1
+ str r0, [r4, #0x10]
+ bpl _02226FA2
+ ldr r0, [r4, #0xc]
+ mov r1, #0x10
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0xf
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, #0xfe
+ add r0, r4, r0
+ mov r2, #1
+ mov r3, #0
+ bl MOD08_022186D4
+ b _02226FA2
+_02226F62:
+ add r0, r4, #0
+ bl MOD08_02226E44
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226FA2
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02226FA2
+_02226F7E:
+ mov r6, #0
+ add r5, r4, #0
+_02226F82:
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #6
+ blt _02226F82
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02226FA2:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02226FAC
+MOD08_02226FAC: ; 0x02226FAC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r1, #0
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ add r4, r0, #0
+ str r2, [sp]
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r6, r0, #0
+ str r4, [r6]
+ ldr r0, [sp]
+ str r5, [r6, #4]
+ str r0, [r6, #8]
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ mov r1, #0x13
+ lsl r1, r1, #4
+ strh r0, [r6, r1]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ ldr r1, _02227050 ; =0x00000132
+ strh r0, [r6, r1]
+ add r0, sp, #4
+ add r1, r4, #0
+ bl MOD08_02215474
+ mov r4, #0
+ add r5, r6, #0
+_02226FFE:
+ cmp r4, #0
+ bne _02227006
+ str r7, [r5, #0x18]
+ b _02227012
+_02227006:
+ ldr r0, [r6, #4]
+ ldr r1, [r6, #8]
+ add r2, sp, #4
+ bl FUN_0200C154
+ str r0, [r5, #0x18]
+_02227012:
+ ldr r0, [r5, #0x18]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C5E0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02226FFE
+ ldr r0, [r6]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_02217C1C
+ str r0, [r6, #0x14]
+ ldr r0, [r6]
+ ldr r1, _02227054 ; =MOD08_02226EBC
+ add r2, r6, #0
+ bl MOD08_02212400
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02227050: .word 0x00000132
+_02227054: .word MOD08_02226EBC
+
+ thumb_func_start MOD08_02227058
+MOD08_02227058: ; 0x02227058
+ strh r1, [r0, #0xc]
+ strh r2, [r0, #0xe]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02227060
+MOD08_02227060: ; 0x02227060
+ strh r1, [r0, #0x14]
+ strh r2, [r0, #0x16]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02227068
+MOD08_02227068: ; 0x02227068
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x1c]
+ add r4, r1, #0
+ bl MOD08_02212014
+ add r6, r0, #0
+ ldr r0, [r5, #0x1c]
+ mov r1, #3
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r4, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ str r6, [sp, #0xc]
+ ldr r1, [r5, #4]
+ ldr r0, [r5]
+ lsl r2, r1, #4
+ ldr r1, _022270F8 ; =0x0222C670
+ add r3, r4, #0
+ ldr r1, [r1, r2]
+ ldr r2, [r5, #0x2c]
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x80
+ str r0, [sp, #8]
+ ldr r2, [r5, #4]
+ ldr r0, [r5, #0x30]
+ lsl r3, r2, #4
+ ldr r2, _022270FC ; =0x0222C674
+ ldr r1, [r5]
+ ldr r2, [r2, r3]
+ add r3, r6, #0
+ bl FUN_020030E8
+ lsl r1, r4, #0x18
+ ldr r0, [r5, #0x2c]
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ str r6, [sp, #0xc]
+ ldr r1, [r5, #4]
+ ldr r0, [r5]
+ lsl r2, r1, #4
+ ldr r1, _02227100 ; =0x0222C678
+ add r3, r4, #0
+ ldr r1, [r1, r2]
+ ldr r2, [r5, #0x2c]
+ bl FUN_020068C8
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_022270F8: .word 0x0222C670
+_022270FC: .word 0x0222C674
+_02227100: .word 0x0222C678
+
+ thumb_func_start MOD08_02227104
+MOD08_02227104: ; 0x02227104
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x18]
+ cmp r0, #3
+ bhi _022271C0
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222711C: ; jump table
+ .short _02227124 - _0222711C - 2 ; case 0
+ .short _02227134 - _0222711C - 2 ; case 1
+ .short _0222714C - _0222711C - 2 ; case 2
+ .short _0222716C - _0222711C - 2 ; case 3
+_02227124:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_02227068
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0222720E
+_02227134:
+ ldrh r0, [r4, #0x16]
+ mov r1, #4
+ mov r2, #0x39
+ str r0, [sp]
+ ldrh r3, [r4, #0x14]
+ ldr r0, _0222725C ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0222720E
+_0222714C:
+ add r1, r4, #0
+ add r1, #0x40
+ ldrb r1, [r1]
+ cmp r1, #0x14
+ bls _0222715C
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0222720E
+_0222715C:
+ add r0, r4, #0
+ add r0, #0x40
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x40
+ strb r1, [r0]
+ b _0222720E
+_0222716C:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02227176
+ sub r0, r0, #1
+ strh r0, [r4, #0x14]
+_02227176:
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0x10
+ bhs _02227180
+ add r0, r0, #1
+ strh r0, [r4, #0x16]
+_02227180:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0
+ bne _022271B2
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0x10
+ bne _022271B2
+ ldr r0, [r4, #0x2c]
+ mov r1, #2
+ bl FUN_02018744
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+_022271B2:
+ ldrh r0, [r4, #0x16]
+ ldrh r1, [r4, #0x14]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02227260 ; =0x04000052
+ strh r1, [r0]
+ b _0222720E
+_022271C0:
+ ldr r0, _02227264 ; =0x0400004A
+ mov r1, #0x3f
+ ldrh r2, [r0]
+ bic r2, r1
+ mov r1, #0x1f
+ orr r2, r1
+ strh r2, [r0]
+ ldrh r3, [r0]
+ ldr r2, _02227268 ; =0xFFFFC0FF
+ lsl r1, r1, #8
+ and r2, r3
+ orr r1, r2
+ strh r1, [r0]
+ mov r2, #0
+ ldr r0, [r4, #0x2c]
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x2c]
+ mov r1, #2
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _0222726C ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [r4, #0x1c]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl MOD08_02228094
+ pop {r3, r4, r5, pc}
+_0222720E:
+ mov r3, #0x10
+ mov r0, #0xc
+ ldrsh r1, [r4, r3]
+ ldrsh r0, [r4, r0]
+ mov r2, #0
+ add r0, r1, r0
+ strh r0, [r4, #0x10]
+ mov r0, #0x12
+ ldrsh r1, [r4, r0]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ add r0, r1, r0
+ strh r0, [r4, #0x12]
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x2c]
+ mov r1, #2
+ bl FUN_020179E0
+ mov r3, #0x12
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x2c]
+ mov r1, #2
+ mov r2, #3
+ bl FUN_020179E0
+ ldr r0, [r4, #0x34]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x3c]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x24]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ nop
+_0222725C: .word 0x04000050
+_02227260: .word 0x04000052
+_02227264: .word 0x0400004A
+_02227268: .word 0xFFFFC0FF
+_0222726C: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_02227270
+MOD08_02227270: ; 0x02227270
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #7
+ str r1, [r4]
+ add r5, r0, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02227290
+MOD08_02227290: ; 0x02227290
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r1, #0x44
+ add r6, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ bl MOD08_02227B70
+ add r2, r4, #0
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl MOD08_022124D8
+ str r0, [r4, #0x3c]
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl MOD08_02215600
+ ldr r0, [r4, #0x34]
+ mov r1, #2
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x38]
+ mov r1, #2
+ bl FUN_0200C6B0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ bne _022272FA
+ add r0, r6, #0
+ bl MOD08_02212458
+ b _02227300
+_022272FA:
+ add r0, r6, #0
+ bl MOD08_02212460
+_02227300:
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02227338
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl MOD08_02215600
+ add r5, r0, #0
+ ldr r0, [r4, #0x34]
+ add r1, r5, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x38]
+ add r1, r5, #0
+ bl FUN_0200C6B0
+ b _0222735C
+_02227338:
+ cmp r5, #1
+ bhi _02227346
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ b _0222735C
+_02227346:
+ sub r0, r5, #3
+ cmp r0, #1
+ ldr r0, [r4, #0x3c]
+ bhi _02227356
+ mov r1, #3
+ bl FUN_0200C6B0
+ b _0222735C
+_02227356:
+ mov r1, #1
+ bl FUN_0200C6B0
+_0222735C:
+ ldr r0, _022273A8 ; =0x0400004A
+ ldr r1, _022273AC ; =0xFFFFC0FF
+ ldrh r2, [r0]
+ and r2, r1
+ mov r1, #0x16
+ lsl r1, r1, #8
+ orr r2, r1
+ lsr r1, r0, #0xd
+ orr r1, r2
+ strh r1, [r0]
+ ldrh r2, [r0]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x1b
+ orr r2, r1
+ mov r1, #0x20
+ orr r2, r1
+ strh r2, [r0]
+ lsl r3, r1, #0x15
+ ldr r2, [r3]
+ ldr r0, _022273B0 ; =0xFFFF1FFF
+ and r2, r0
+ lsl r0, r1, #0xa
+ orr r0, r2
+ str r0, [r3]
+ ldr r0, [r4, #0x38]
+ mov r1, #2
+ bl FUN_0200C90C
+ mov r0, #0
+ strh r0, [r4, #0x10]
+ strh r0, [r4, #0x12]
+ ldr r0, [r4, #0x1c]
+ ldr r1, _022273B4 ; =MOD08_02227104
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022273A8: .word 0x0400004A
+_022273AC: .word 0xFFFFC0FF
+_022273B0: .word 0xFFFF1FFF
+_022273B4: .word MOD08_02227104
+
+ thumb_func_start MOD08_022273B8
+MOD08_022273B8: ; 0x022273B8
+ push {r4, lr}
+ sub sp, #0x18
+ add r1, sp, #0
+ add r4, r0, #0
+ bl MOD08_02227270
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #3
+ bl MOD08_02227058
+ add r0, sp, #0
+ mov r1, #0xc
+ mov r2, #4
+ bl MOD08_02227060
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD08_02227290
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022273E4
+MOD08_022273E4: ; 0x022273E4
+ push {r4, lr}
+ sub sp, #0x18
+ add r1, sp, #0
+ add r4, r0, #0
+ bl MOD08_02227270
+ mov r1, #0
+ add r0, sp, #0
+ sub r2, r1, #3
+ bl MOD08_02227058
+ add r0, sp, #0
+ mov r1, #0xc
+ mov r2, #4
+ bl MOD08_02227060
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD08_02227290
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02227410
+MOD08_02227410: ; 0x02227410
+ push {r4, lr}
+ sub sp, #0x18
+ add r1, sp, #0
+ add r4, r0, #0
+ bl MOD08_02227270
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #3
+ bl MOD08_02227058
+ add r0, sp, #0
+ mov r1, #0xc
+ mov r2, #4
+ bl MOD08_02227060
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD08_02227290
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0222743C
+MOD08_0222743C: ; 0x0222743C
+ push {r4, lr}
+ sub sp, #0x18
+ add r1, sp, #0
+ add r4, r0, #0
+ bl MOD08_02227270
+ mov r1, #0
+ add r0, sp, #0
+ sub r2, r1, #6
+ bl MOD08_02227058
+ add r0, sp, #0
+ mov r1, #0xc
+ mov r2, #4
+ bl MOD08_02227060
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD08_02227290
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02227468
+MOD08_02227468: ; 0x02227468
+ ldr r3, _0222746C ; =MOD08_02215490
+ bx r3
+ .align 2, 0
+_0222746C: .word MOD08_02215490
+
+ thumb_func_start MOD08_02227470
+MOD08_02227470: ; 0x02227470
+ push {r4, lr}
+ bl MOD08_02215490
+ cmp r0, #5
+ bhi _02227498
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02227486: ; jump table
+ .short _02227492 - _02227486 - 2 ; case 0
+ .short _02227496 - _02227486 - 2 ; case 1
+ .short _02227492 - _02227486 - 2 ; case 2
+ .short _02227496 - _02227486 - 2 ; case 3
+ .short _02227492 - _02227486 - 2 ; case 4
+ .short _02227496 - _02227486 - 2 ; case 5
+_02227492:
+ mov r4, #3
+ b _02227498
+_02227496:
+ mov r4, #4
+_02227498:
+ add r0, r4, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0222749C
+MOD08_0222749C: ; 0x0222749C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r4, #0
+_022274A4:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_02215490
+ cmp r0, r5
+ bne _022274B4
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_022274B4:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _022274A4
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022274C0
+MOD08_022274C0: ; 0x022274C0
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl MOD08_02215490
+ add r5, r0, #0
+ cmp r5, #1
+ bls _02227520
+ mov r4, #0
+_022274D0:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_02215490
+ cmp r5, #5
+ bhi _02227514
+ add r1, r5, r5
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022274E8: ; jump table
+ .short _02227514 - _022274E8 - 2 ; case 0
+ .short _02227514 - _022274E8 - 2 ; case 1
+ .short _022274F4 - _022274E8 - 2 ; case 2
+ .short _02227504 - _022274E8 - 2 ; case 3
+ .short _022274FC - _022274E8 - 2 ; case 4
+ .short _0222750C - _022274E8 - 2 ; case 5
+_022274F4:
+ cmp r0, #4
+ bne _02227514
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_022274FC:
+ cmp r0, #2
+ bne _02227514
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02227504:
+ cmp r0, #5
+ bne _02227514
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_0222750C:
+ cmp r0, #3
+ bne _02227514
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02227514:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _022274D0
+ bl ErrorHandling
+ add r0, r5, #0
+_02227520:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02227524
+MOD08_02227524: ; 0x02227524
+ push {r3, lr}
+ cmp r0, #5
+ bhi _0222755A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02227536: ; jump table
+ .short _02227542 - _02227536 - 2 ; case 0
+ .short _02227546 - _02227536 - 2 ; case 1
+ .short _0222754A - _02227536 - 2 ; case 2
+ .short _0222754E - _02227536 - 2 ; case 3
+ .short _02227552 - _02227536 - 2 ; case 4
+ .short _02227556 - _02227536 - 2 ; case 5
+_02227542:
+ mov r0, #1
+ pop {r3, pc}
+_02227546:
+ mov r0, #0
+ pop {r3, pc}
+_0222754A:
+ mov r0, #3
+ pop {r3, pc}
+_0222754E:
+ mov r0, #2
+ pop {r3, pc}
+_02227552:
+ mov r0, #5
+ pop {r3, pc}
+_02227556:
+ mov r0, #4
+ pop {r3, pc}
+_0222755A:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02227564
+MOD08_02227564: ; 0x02227564
+ push {r3, r4, r5, r6}
+ sub sp, #0x30
+ ldr r6, _022275B8 ; =0x0222C6C8
+ add r5, sp, #0x18
+ mov r4, #0xc
+_0222756E:
+ ldrh r3, [r6]
+ add r6, r6, #2
+ strh r3, [r5]
+ add r5, r5, #2
+ sub r4, r4, #1
+ bne _0222756E
+ ldr r6, _022275BC ; =0x0222C6E0
+ add r5, sp, #0
+ mov r4, #0xc
+_02227580:
+ ldrh r3, [r6]
+ add r6, r6, #2
+ strh r3, [r5]
+ add r5, r5, #2
+ sub r4, r4, #1
+ bne _02227580
+ cmp r1, #0
+ beq _022275A4
+ lsl r3, r0, #2
+ add r0, sp, #0
+ add r1, r0, r3
+ ldrh r0, [r0, r3]
+ add sp, #0x30
+ strh r0, [r2]
+ ldrh r0, [r1, #2]
+ strh r0, [r2, #2]
+ pop {r3, r4, r5, r6}
+ bx lr
+_022275A4:
+ lsl r3, r0, #2
+ add r0, sp, #0x18
+ add r1, r0, r3
+ ldrh r0, [r0, r3]
+ strh r0, [r2]
+ ldrh r0, [r1, #2]
+ strh r0, [r2, #2]
+ add sp, #0x30
+ pop {r3, r4, r5, r6}
+ bx lr
+ .align 2, 0
+_022275B8: .word 0x0222C6C8
+_022275BC: .word 0x0222C6E0
+
+ thumb_func_start MOD08_022275C0
+MOD08_022275C0: ; 0x022275C0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ bl MOD08_02227468
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212004
+ add r1, r0, #0
+ add r0, r6, #0
+ add r2, r4, #0
+ bl MOD08_02227564
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022275E0
+MOD08_022275E0: ; 0x022275E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x114
+ add r7, r2, #0
+ mov r2, #0x12
+ str r3, [sp]
+ ldr r6, _02227654 ; =0x0222C6F8
+ add r5, r0, #0
+ add r4, r1, #0
+ add r3, sp, #4
+ lsl r2, r2, #4
+_022275FC:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022275FC
+ cmp r7, #1
+ bne _0222761E
+ cmp r5, #0
+ beq _02227612
+ cmp r5, #1
+ beq _02227616
+ b _0222761A
+_02227612:
+ mov r5, #6
+ b _0222761E
+_02227616:
+ mov r5, #7
+ b _0222761E
+_0222761A:
+ bl ErrorHandling
+_0222761E:
+ mov r0, #0x12
+ lsl r0, r0, #4
+ add r1, sp, #4
+ mul r0, r5
+ add r0, r1, r0
+ ldr r1, _02227658 ; =0x00000908
+ add r1, sp
+ ldr r1, [r1, #0x10]
+ lsl r2, r1, #1
+ ldr r1, [sp]
+ add r2, r1, r2
+ mov r1, #0xc
+ add r3, r2, #0
+ mul r3, r1
+ add r1, r0, r3
+ ldr r2, [r1, #8]
+ ldr r1, [r1, #4]
+ ldr r0, [r0, r3]
+ str r0, [r4]
+ str r1, [r4, #4]
+ str r2, [r4, #8]
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x114
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02227654: .word 0x0222C6F8
+_02227658: .word 0x00000908
+
+ thumb_func_start MOD08_0222765C
+MOD08_0222765C: ; 0x0222765C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #0
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222766C
+MOD08_0222766C: ; 0x0222766C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #1
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222767C
+MOD08_0222767C: ; 0x0222767C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #2
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222768C
+MOD08_0222768C: ; 0x0222768C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #3
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222769C
+MOD08_0222769C: ; 0x0222769C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #4
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276AC
+MOD08_022276AC: ; 0x022276AC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #5
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276BC
+MOD08_022276BC: ; 0x022276BC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #6
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276CC
+MOD08_022276CC: ; 0x022276CC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #7
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276DC
+MOD08_022276DC: ; 0x022276DC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #8
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276EC
+MOD08_022276EC: ; 0x022276EC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #9
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276FC
+MOD08_022276FC: ; 0x022276FC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #0xa
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222770C
+MOD08_0222770C: ; 0x0222770C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #0xb
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222771C
+MOD08_0222771C: ; 0x0222771C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222774C
+MOD08_0222774C: ; 0x0222774C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222766C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222777C
+MOD08_0222777C: ; 0x0222777C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222767C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_022277AC
+MOD08_022277AC: ; 0x022277AC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222768C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_022277DC
+MOD08_022277DC: ; 0x022277DC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222769C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222780C
+MOD08_0222780C: ; 0x0222780C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276AC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222783C
+MOD08_0222783C: ; 0x0222783C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276BC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222786C
+MOD08_0222786C: ; 0x0222786C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276CC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222789C
+MOD08_0222789C: ; 0x0222789C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276DC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_022278CC
+MOD08_022278CC: ; 0x022278CC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276EC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_022278FC
+MOD08_022278FC: ; 0x022278FC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276FC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222792C
+MOD08_0222792C: ; 0x0222792C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222770C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222795C
+MOD08_0222795C: ; 0x0222795C
+ mov r2, #0
+ ldr r1, _02227968 ; =0x000068D0
+ str r2, [r0]
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ bx lr
+ .align 2, 0
+_02227968: .word 0x000068D0
+
+ thumb_func_start MOD08_0222796C
+MOD08_0222796C: ; 0x0222796C
+ push {r3, lr}
+ bl MOD08_0222765C
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02227974
+MOD08_02227974: ; 0x02227974
+ push {r3, lr}
+ add r3, r1, #0
+ cmp r0, #0
+ bne _02227984
+ add r0, r3, #0
+ bl FUN_02013428
+ pop {r3, pc}
+_02227984:
+ ldr r2, _02227990 ; =0x0222C6BC
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r3]
+ pop {r3, pc}
+ .align 2, 0
+_02227990: .word 0x0222C6BC
+
+ thumb_func_start MOD08_02227994
+MOD08_02227994: ; 0x02227994
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r1, #0
+ mvn r1, r1
+ add r4, r2, #0
+ cmp r5, r1
+ bne _022279A4
+ mov r5, #0x1a
+_022279A4:
+ mov r1, #0
+ mvn r1, r1
+ cmp r4, r1
+ bne _022279AE
+ mov r4, #5
+_022279AE:
+ mov r1, #2
+ bl MOD08_022155C4
+ mov r1, #1
+ add r2, r1, #0
+ lsl r2, r0
+ orr r2, r1
+ ldr r0, _022279CC ; =0x04000050
+ mov r1, #0
+ add r3, r5, #0
+ str r4, [sp]
+ bl G2x_SetBlendAlpha_
+ pop {r3, r4, r5, pc}
+ nop
+_022279CC: .word 0x04000050
+
+ thumb_func_start MOD08_022279D0
+MOD08_022279D0: ; 0x022279D0
+ push {r3, r4, r5, lr}
+ mov r0, #0
+ add r4, r2, #0
+ mvn r0, r0
+ add r5, r1, #0
+ cmp r4, r0
+ bne _022279E0
+ mov r4, #0x1a
+_022279E0:
+ mov r0, #0
+ mvn r0, r0
+ cmp r3, r0
+ bne _022279EA
+ mov r3, #5
+_022279EA:
+ ldr r0, _022279FC ; =0x04000050
+ str r3, [sp]
+ mov r1, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl G2x_SetBlendAlpha_
+ pop {r3, r4, r5, pc}
+ nop
+_022279FC: .word 0x04000050
+
+ thumb_func_start MOD08_02227A00
+MOD08_02227A00: ; 0x02227A00
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0
+ add r5, r1, #0
+ mvn r0, r0
+ add r4, r2, #0
+ cmp r5, r0
+ bne _02227A12
+ mov r5, #0x1a
+_02227A12:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02227A1C
+ mov r4, #5
+_02227A1C:
+ add r0, r6, #0
+ mov r1, #2
+ bl MOD08_022155C4
+ mov r1, #1
+ add r2, r1, #0
+ lsl r2, r0
+ mov r0, #0x11
+ add r7, r2, #0
+ orr r7, r0
+ add r0, r6, #0
+ bl MOD08_022155C4
+ mov r1, #1
+ lsl r1, r0
+ ldr r0, _02227A48 ; =0x04000050
+ add r2, r7, #0
+ add r3, r5, #0
+ str r4, [sp]
+ bl G2x_SetBlendAlpha_
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02227A48: .word 0x04000050
+
+ thumb_func_start MOD08_02227A4C
+MOD08_02227A4C: ; 0x02227A4C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ cmp r1, #0
+ bne _02227AA0
+ mov r1, #1
+ bl MOD08_022155C4
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_022155C4
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022155C4
+ add r2, r0, #0
+ mov r0, #1
+ add r3, r0, #0
+ add r1, r0, #0
+ lsl r3, r7
+ lsl r0, r2
+ lsl r1, r6
+ orr r0, r3
+ orr r1, r0
+ mov r0, #0x11
+ add r2, r1, #0
+ orr r2, r0
+ ldr r0, _02227B20 ; =0x04000048
+ ldrh r1, [r0]
+ mov r0, #0x3f
+ bic r1, r0
+ orr r1, r2
+ cmp r4, #0
+ beq _02227A9A
+ mov r0, #0x20
+ orr r1, r0
+_02227A9A:
+ ldr r0, _02227B20 ; =0x04000048
+ strh r1, [r0]
+ b _02227AEA
+_02227AA0:
+ mov r1, #1
+ bl MOD08_022155C4
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_022155C4
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022155C4
+ add r2, r0, #0
+ mov r0, #1
+ add r3, r0, #0
+ add r1, r0, #0
+ lsl r0, r2
+ lsl r3, r7
+ lsl r1, r6
+ orr r0, r3
+ orr r1, r0
+ ldr r2, _02227B20 ; =0x04000048
+ add r3, r1, #0
+ mov r0, #0x11
+ orr r3, r0
+ ldrh r1, [r2]
+ ldr r0, _02227B24 ; =0xFFFFC0FF
+ and r1, r0
+ lsl r0, r3, #8
+ orr r1, r0
+ cmp r4, #0
+ beq _02227AE6
+ lsr r0, r2, #0xd
+ orr r1, r0
+_02227AE6:
+ ldr r0, _02227B20 ; =0x04000048
+ strh r1, [r0]
+_02227AEA:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022155C4
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022155C4
+ mov r1, #1
+ add r2, r1, #0
+ lsl r1, r0
+ lsl r2, r4
+ orr r1, r2
+ add r3, r1, #0
+ ldr r1, _02227B28 ; =0x0400004A
+ mov r0, #0x11
+ orr r3, r0
+ ldrh r2, [r1]
+ mov r0, #0x3f
+ bic r2, r0
+ orr r2, r3
+ mov r0, #0x20
+ orr r0, r2
+ strh r0, [r1]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02227B20: .word 0x04000048
+_02227B24: .word 0xFFFFC0FF
+_02227B28: .word 0x0400004A
+
+ thumb_func_start MOD08_02227B2C
+MOD08_02227B2C: ; 0x02227B2C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ cmp r5, #0
+ bne _02227B3E
+ mov r0, #0
+ strh r0, [r4]
+ strh r0, [r4, #2]
+ pop {r3, r4, r5, pc}
+_02227B3E:
+ bl FUN_02008268
+ cmp r0, #0
+ bne _02227B4E
+ mov r0, #0
+ strh r0, [r4]
+ strh r0, [r4, #2]
+ pop {r3, r4, r5, pc}
+_02227B4E:
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02227B64
+MOD08_02227B64: ; 0x02227B64
+ ldr r3, _02227B6C ; =0x0200C7A1
+ add r2, r1, #2
+ bx r3
+ nop
+_02227B6C: .word 0x0200C7A1
+
+ thumb_func_start MOD08_02227B70
+MOD08_02227B70: ; 0x02227B70
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0
+ strb r1, [r4]
+ strb r1, [r4, #1]
+ strb r1, [r4, #2]
+ add r5, r0, #0
+ strb r1, [r4, #3]
+ str r5, [r4, #4]
+ bl MOD08_02212520
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ bl MOD08_02212518
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl MOD08_02212490
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD08_02215504
+ str r0, [r4, #0x18]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02227BAC
+MOD08_02227BAC: ; 0x02227BAC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r1, #0
+ add r4, r3, #0
+ mov r1, #0
+ str r1, [r4]
+ mov r1, #0x40
+ and r1, r7
+ add r6, r0, #0
+ add r5, r2, #0
+ cmp r1, #0x40
+ beq _02227BC6
+ b _02227CE8
+_02227BC6:
+ bl MOD08_02212458
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ cmp r0, #0
+ beq _02227C08
+ str r7, [r1, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227C08:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022274C0
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r1, [r0, #8]
+ cmp r1, #0
+ beq _02227C50
+ ldr r1, [sp, #4]
+ str r1, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227C50:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02215490
+ bl MOD08_02227524
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_0222749C
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ cmp r0, #0
+ beq _02227CA2
+ str r7, [r1, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227CA2:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022274C0
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022154D4
+ ldr r2, [r4]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r2, r5, r3
+ str r0, [r2, #8]
+ ldr r0, [r4]
+ add r2, r0, #0
+ mul r2, r1
+ add r2, r5, r2
+ ldr r0, [r2, #8]
+ cmp r0, #0
+ beq _02227DCA
+ str r7, [r2, #0x10]
+ ldr r0, [r4]
+ mul r1, r0
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02227CE8:
+ mov r1, #0x20
+ and r1, r7
+ cmp r1, #0x20
+ bne _02227DE8
+ bl MOD08_02212458
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022274C0
+ str r0, [sp, #8]
+ cmp r0, r7
+ beq _02227D42
+ ldr r1, [sp, #8]
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r1, [r0, #8]
+ cmp r1, #0
+ beq _02227D42
+ ldr r1, [sp, #8]
+ str r1, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227D42:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02215490
+ bl MOD08_02227524
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_0222749C
+ str r0, [sp]
+ cmp r0, r7
+ beq _02227D9A
+ ldr r1, [sp]
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r1, [r0, #8]
+ cmp r1, #0
+ beq _02227D9A
+ ldr r1, [sp]
+ str r1, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227D9A:
+ ldr r1, [sp]
+ add r0, r6, #0
+ bl MOD08_022274C0
+ str r0, [sp, #0xc]
+ cmp r0, r7
+ beq _02227DCA
+ ldr r1, [sp, #0xc]
+ add r0, r6, #0
+ bl MOD08_022154D4
+ ldr r2, [r4]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r2, r5, r3
+ str r0, [r2, #8]
+ ldr r0, [r4]
+ add r2, r0, #0
+ mul r2, r1
+ add r2, r5, r2
+ ldr r0, [r2, #8]
+ cmp r0, #0
+ bne _02227DCC
+_02227DCA:
+ b _02227F82
+_02227DCC:
+ ldr r0, [sp, #0xc]
+ str r0, [r2, #0x10]
+ ldr r0, [r4]
+ mul r1, r0
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02227DE8:
+ mov r1, #2
+ and r1, r7
+ cmp r1, #2
+ bne _02227E42
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _02227E42
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227E42:
+ add r0, r6, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _02227EB8
+ mov r0, #4
+ and r0, r7
+ cmp r0, #4
+ bne _02227EB8
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _02227EB8
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227EB8:
+ mov r0, #8
+ and r0, r7
+ cmp r0, #8
+ bne _02227F14
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _02227F14
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227F14:
+ add r0, r6, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _02227F82
+ mov r0, #0x10
+ and r0, r7
+ cmp r0, #0x10
+ bne _02227F82
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ ldr r2, [r4]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r2, r5, r3
+ str r0, [r2, #8]
+ ldr r0, [r4]
+ mul r1, r0
+ add r0, r5, r1
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _02227F82
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ ldr r2, [r4]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r2, r5, r3
+ str r0, [r2, #0x10]
+ ldr r0, [r4]
+ mul r1, r0
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227F82:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02227F88
+MOD08_02227F88: ; 0x02227F88
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r3, #0
+ mov r1, #0
+ str r1, [r4]
+ mov r1, #2
+ and r1, r6
+ add r7, r0, #0
+ add r5, r2, #0
+ cmp r1, #2
+ bne _02227FC8
+ ldr r1, [r4]
+ bl MOD08_022124D8
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0xc]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #0xc]
+ add r1, r1, #4
+ bl MOD08_02227B64
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227FC8:
+ mov r0, #4
+ and r0, r6
+ cmp r0, #4
+ bne _02227FFC
+ ldr r1, [r4]
+ add r0, r7, #0
+ bl MOD08_022124D8
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0xc]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #0xc]
+ add r1, r1, #4
+ bl MOD08_02227B64
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227FFC:
+ mov r0, #8
+ and r0, r6
+ cmp r0, #8
+ bne _02228030
+ ldr r1, [r4]
+ add r0, r7, #0
+ bl MOD08_022124D8
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0xc]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #0xc]
+ add r1, r1, #4
+ bl MOD08_02227B64
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02228030:
+ mov r0, #0x10
+ and r0, r6
+ cmp r0, #0x10
+ bne _02228060
+ ldr r1, [r4]
+ add r0, r7, #0
+ bl MOD08_022124D8
+ ldr r2, [r4]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r2, r5, r3
+ str r0, [r2, #0xc]
+ ldr r0, [r4]
+ mul r1, r0
+ add r1, r5, r1
+ ldr r0, [r1, #0xc]
+ add r1, r1, #4
+ bl MOD08_02227B64
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02228060:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02228064
+MOD08_02228064: ; 0x02228064
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ cmp r4, #0
+ bne _02228072
+ bl ErrorHandling
+_02228072:
+ add r0, r4, #0
+ bl MOD08_02212014
+ add r1, r5, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _02228086
+ bl ErrorHandling
+_02228086:
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r5, #0
+ bl Call_FillMemWithValue
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02228094
+MOD08_02228094: ; 0x02228094
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0222809E
+ bl ErrorHandling
+_0222809E:
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022280A8
+MOD08_022280A8: ; 0x022280A8
+ cmp r0, #1
+ blt _022280B2
+ ldr r1, _022280C0 ; =0x00000113
+ cmp r0, r1
+ ble _022280B6
+_022280B2:
+ mov r0, #4
+ b _022280BC
+_022280B6:
+ cmp r0, #0xff
+ blt _022280BC
+ sub r0, #0xff
+_022280BC:
+ sub r0, r0, #1
+ bx lr
+ .align 2, 0
+_022280C0: .word 0x00000113
+
+ thumb_func_start MOD08_022280C4
+MOD08_022280C4: ; 0x022280C4
+ push {r3, r4, r5}
+ sub sp, #0x2c
+ ldr r5, _02228100 ; =0x0222D0A4
+ add r2, r0, #0
+ add r4, sp, #0
+ mov r3, #5
+_022280D0:
+ ldmia r5!, {r0, r1}
+ stmia r4!, {r0, r1}
+ sub r3, r3, #1
+ bne _022280D0
+ ldr r0, [r5]
+ str r0, [r4]
+ mov r0, #0
+ add r3, r0, #0
+ add r4, sp, #0
+_022280E2:
+ ldr r1, [r4]
+ cmp r2, r1
+ bne _022280F0
+ add sp, #0x2c
+ mov r0, #1
+ pop {r3, r4, r5}
+ bx lr
+_022280F0:
+ add r3, r3, #1
+ add r4, r4, #4
+ cmp r3, #0xb
+ blo _022280E2
+ add sp, #0x2c
+ pop {r3, r4, r5}
+ bx lr
+ nop
+_02228100: .word 0x0222D0A4
+
+ thumb_func_start MOD08_02228104
+MOD08_02228104: ; 0x02228104
+ push {r4, r5}
+ sub sp, #0x18
+ ldr r3, _0222813C ; =0x0222D004
+ add r2, sp, #0
+ add r5, r0, #0
+ add r4, r2, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ mov r0, #0
+ add r2, r0, #0
+_02228120:
+ ldr r1, [r4]
+ cmp r5, r1
+ bne _0222812E
+ add sp, #0x18
+ mov r0, #1
+ pop {r4, r5}
+ bx lr
+_0222812E:
+ add r2, r2, #1
+ add r4, r4, #4
+ cmp r2, #6
+ blo _02228120
+ add sp, #0x18
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_0222813C: .word 0x0222D004
+
+ thumb_func_start MOD08_02228140
+MOD08_02228140: ; 0x02228140
+ push {r3, r4, r5}
+ sub sp, #0xc
+ ldr r5, _02228174 ; =0x0222CFF8
+ add r3, r0, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #0
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r4]
+ mov r0, #1
+ mov r4, #0
+_02228158:
+ ldr r1, [r2]
+ cmp r3, r1
+ bne _02228166
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, r5}
+ bx lr
+_02228166:
+ add r4, r4, #1
+ add r2, r2, #4
+ cmp r4, #3
+ blo _02228158
+ add sp, #0xc
+ pop {r3, r4, r5}
+ bx lr
+ .align 2, 0
+_02228174: .word 0x0222CFF8
+
+ thumb_func_start MOD08_02228178
+MOD08_02228178: ; 0x02228178
+ push {r3, lr}
+ bl MOD08_022280A8
+ lsl r1, r0, #3
+ ldr r0, _02228188 ; =0x0222D208
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ nop
+_02228188: .word 0x0222D208
+
+ thumb_func_start MOD08_0222818C
+MOD08_0222818C: ; 0x0222818C
+ push {r3, lr}
+ bl MOD08_022280A8
+ lsl r1, r0, #3
+ ldr r0, _0222819C ; =0x0222D20C
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ nop
+_0222819C: .word 0x0222D20C
+
+ thumb_func_start MOD08_022281A0
+MOD08_022281A0: ; 0x022281A0
+ push {r3, lr}
+ bl MOD08_022280A8
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _022281B0 ; =0x0222D2A8
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ .align 2, 0
+_022281B0: .word 0x0222D2A8
+
+ thumb_func_start MOD08_022281B4
+MOD08_022281B4: ; 0x022281B4
+ push {r3, lr}
+ bl MOD08_022280A8
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _022281C4 ; =0x0222D2B0
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ .align 2, 0
+_022281C4: .word 0x0222D2B0
+
+ thumb_func_start MOD08_022281C8
+MOD08_022281C8: ; 0x022281C8
+ push {r3, lr}
+ bl MOD08_022280A8
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _022281D8 ; =0x0222D2AC
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ .align 2, 0
+_022281D8: .word 0x0222D2AC
+
+ thumb_func_start MOD08_022281DC
+MOD08_022281DC: ; 0x022281DC
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD08_022280A8
+ lsl r2, r0, #4
+ ldr r0, _022281F0 ; =0x0222D398
+ lsl r1, r4, #2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+ .align 2, 0
+_022281F0: .word 0x0222D398
+
+ thumb_func_start MOD08_022281F4
+MOD08_022281F4: ; 0x022281F4
+ push {r4, lr}
+ mov r1, #0xb8
+ add r4, r0, #0
+ bl FUN_02016998
+ cmp r0, #0
+ bne _0222820A
+ bl ErrorHandling
+ mov r0, #0
+ pop {r4, pc}
+_0222820A:
+ add r1, r0, #0
+ str r4, [r0]
+ mov r2, #0
+ add r1, #0x88
+ str r2, [r1]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02228218
+MOD08_02228218: ; 0x02228218
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl MOD08_022281F4
+ add r1, r5, #0
+ add r4, r0, #0
+ bl MOD08_02228244
+ mov r1, #0
+ str r1, [r4, #0x10]
+ add r2, r4, #0
+ add r0, r1, #0
+_02228230:
+ str r0, [r2, #0x14]
+ str r0, [r2, #0x38]
+ str r0, [r2, #0x5c]
+ add r1, r1, #1
+ add r2, r2, #4
+ cmp r1, #9
+ blt _02228230
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02228244
+MOD08_02228244: ; 0x02228244
+ push {r4, lr}
+ add r3, r1, #0
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, r4, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #0xa1
+ str r0, [r2]
+ ldr r0, [r4, #0xc]
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, r4, #0
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ cmp r0, #0xd
+ blt _02228272
+ bl ErrorHandling
+_02228272:
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0222829E
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x94
+ str r2, [r0]
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02228290
+ add r4, #0x98
+ str r0, [r4]
+ pop {r4, pc}
+_02228290:
+ ldr r0, [r4, #0xc]
+ mov r1, #0x9a
+ bl FUN_020671BC
+ add r4, #0x98
+ str r0, [r4]
+ pop {r4, pc}
+_0222829E:
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x94
+ str r1, [r0]
+ ldr r0, [r4, #0xc]
+ add r4, #0xa0
+ mov r1, #0xaa
+ add r2, r4, #0
+ bl FUN_020671BC
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022282B4
+MOD08_022282B4: ; 0x022282B4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r4, r1, #0
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #3
+ bls _022282C8
+ b _02228520
+_022282C8:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022282D4: ; jump table
+ .short _022282DC - _022282D4 - 2 ; case 0
+ .short _02228376 - _022282D4 - 2 ; case 1
+ .short _02228402 - _022282D4 - 2 ; case 2
+ .short _0222848E - _022282D4 - 2 ; case 3
+_022282DC:
+ ldr r1, [r4]
+ mov r0, #0x63
+ bl FUN_02006670
+ add r1, r4, #0
+ add r1, #0x8c
+ str r0, [r1]
+ add r0, r4, #0
+ add r6, r4, #0
+ str r0, [sp, #0x14]
+ add r0, #0xa0
+ mov r5, #0
+ add r6, #0x10
+ str r0, [sp, #0x14]
+_022282F8:
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ bl FUN_02029CC8
+ add r7, r0, #0
+ beq _02228360
+ bl FUN_02029CE0
+ cmp r0, #0
+ beq _02228360
+ cmp r0, #0x51
+ bge _02228360
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FF4
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r7, [r0, #0x38]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _02228332
+ bl ErrorHandling
+_02228332:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ ldr r1, [r4]
+ ldr r2, [sp, #0x10]
+ mov r3, #0
+ bl MOD08_02215B00
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #2
+ add r1, r4, r1
+ str r0, [r1, #0x14]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _0222835A
+ bl ErrorHandling
+_0222835A:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+_02228360:
+ add r5, r5, #1
+ cmp r5, #2
+ blt _022282F8
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ add r4, #0x90
+ add r0, r0, #1
+ add sp, #0x24
+ str r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_02228376:
+ add r0, r4, #0
+ add r6, r4, #0
+ str r0, [sp, #0x18]
+ add r0, #0xa0
+ mov r5, #2
+ add r6, #0x10
+ str r0, [sp, #0x18]
+_02228384:
+ ldr r0, [sp, #0x18]
+ add r1, r5, #0
+ bl FUN_02029CC8
+ add r7, r0, #0
+ beq _022283EC
+ bl FUN_02029CE0
+ cmp r0, #0
+ beq _022283EC
+ cmp r0, #0x51
+ bge _022283EC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FF4
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r7, [r0, #0x38]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _022283BE
+ bl ErrorHandling
+_022283BE:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ ldr r1, [r4]
+ ldr r2, [sp, #4]
+ mov r3, #0
+ bl MOD08_02215B00
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #2
+ add r1, r4, r1
+ str r0, [r1, #0x14]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _022283E6
+ bl ErrorHandling
+_022283E6:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+_022283EC:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02228384
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ add r4, #0x90
+ add r0, r0, #1
+ add sp, #0x24
+ str r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_02228402:
+ add r0, r4, #0
+ add r6, r4, #0
+ str r0, [sp, #0x1c]
+ add r0, #0xa0
+ mov r5, #4
+ add r6, #0x10
+ str r0, [sp, #0x1c]
+_02228410:
+ ldr r0, [sp, #0x1c]
+ add r1, r5, #0
+ bl FUN_02029CC8
+ add r7, r0, #0
+ beq _02228478
+ bl FUN_02029CE0
+ cmp r0, #0
+ beq _02228478
+ cmp r0, #0x51
+ bge _02228478
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FF4
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r7, [r0, #0x38]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _0222844A
+ bl ErrorHandling
+_0222844A:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ ldr r1, [r4]
+ ldr r2, [sp, #8]
+ mov r3, #0
+ bl MOD08_02215B00
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #2
+ add r1, r4, r1
+ str r0, [r1, #0x14]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _02228472
+ bl ErrorHandling
+_02228472:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+_02228478:
+ add r5, r5, #1
+ cmp r5, #6
+ blt _02228410
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ add r4, #0x90
+ add r0, r0, #1
+ add sp, #0x24
+ str r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_0222848E:
+ add r0, r4, #0
+ add r6, r4, #0
+ str r0, [sp, #0x20]
+ add r0, #0xa0
+ mov r5, #6
+ add r6, #0x10
+ str r0, [sp, #0x20]
+_0222849C:
+ ldr r0, [sp, #0x20]
+ add r1, r5, #0
+ bl FUN_02029CC8
+ add r7, r0, #0
+ beq _02228504
+ bl FUN_02029CE0
+ cmp r0, #0
+ beq _02228504
+ cmp r0, #0x51
+ bge _02228504
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FF4
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r7, [r0, #0x38]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _022284D6
+ bl ErrorHandling
+_022284D6:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ ldr r1, [r4]
+ ldr r2, [sp, #0xc]
+ mov r3, #0
+ bl MOD08_02215B00
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #2
+ add r1, r4, r1
+ str r0, [r1, #0x14]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _022284FE
+ bl ErrorHandling
+_022284FE:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+_02228504:
+ add r5, r5, #1
+ cmp r5, #8
+ blt _0222849C
+ add r0, r4, #0
+ mov r1, #0xff
+ add r0, #0x90
+ add r4, #0x8c
+ str r1, [r0]
+ ldr r0, [r4]
+ bl FUN_020066F4
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_02228520:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02228524
+MOD08_02228524: ; 0x02228524
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0222854E
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ bl MOD08_02228178
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [r4, #0x10]
+ ldr r0, [r4]
+ mov r1, #0x63
+ mov r3, #0
+ bl MOD08_02215ACC
+ str r0, [r4, #0x14]
+ pop {r4, pc}
+_0222854E:
+ mov r1, #0
+ add r0, r4, #0
+ mov r2, #0xfa
+ str r1, [r4, #0x10]
+ add r0, #0x90
+ str r1, [r0]
+ ldr r0, _0222856C ; =MOD08_022282B4
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ add r1, r4, #0
+ bl MOD08_022282B4
+ pop {r4, pc}
+ .align 2, 0
+_0222856C: .word MOD08_022282B4
+
+ thumb_func_start MOD08_02228570
+MOD08_02228570: ; 0x02228570
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228574
+MOD08_02228574: ; 0x02228574
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #1
+ add r0, #0x88
+ str r1, [r0]
+ bl MOD08_0221268C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0222865C
+ mov r2, #0xfa
+ ldr r0, _022285A0 ; =MOD08_022285BC
+ add r1, r5, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ add r5, #0x84
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+ nop
+_022285A0: .word MOD08_022285BC
+
+ thumb_func_start MOD08_022285A4
+MOD08_022285A4: ; 0x022285A4
+ ldr r3, _022285AC ; =MOD08_02228574
+ ldr r1, _022285B0 ; =MOD08_02228788
+ bx r3
+ nop
+_022285AC: .word MOD08_02228574
+_022285B0: .word MOD08_02228788
+
+ thumb_func_start MOD08_022285B4
+MOD08_022285B4: ; 0x022285B4
+ add r0, #0x88
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022285BC
+MOD08_022285BC: ; 0x022285BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ str r0, [sp]
+ ldr r0, [r6, #0x10]
+ mov r7, #0
+ cmp r0, #9
+ ble _022285CE
+ bl ErrorHandling
+_022285CE:
+ ldr r0, [r6, #0x10]
+ mov r4, #0
+ cmp r0, #0
+ ble _02228606
+ add r5, r6, #0
+_022285D8:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _022285FC
+ bl FUN_020133C8
+ cmp r0, #0
+ bne _022285FA
+ ldr r0, [r5, #0x5c]
+ cmp r0, #0
+ beq _022285FA
+ ldr r0, [r5, #0x14]
+ bl MOD08_02215B40
+ mov r0, #0
+ str r0, [r5, #0x14]
+ str r0, [r5, #0x5c]
+ b _022285FC
+_022285FA:
+ mov r7, #1
+_022285FC:
+ ldr r0, [r6, #0x10]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _022285D8
+_02228606:
+ cmp r7, #0
+ bne _02228616
+ mov r0, #0
+ add r6, #0x88
+ str r0, [r6]
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_02228616:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02228618
+MOD08_02228618: ; 0x02228618
+ ldr r3, _0222861C ; =0x02016A19
+ bx r3
+ .align 2, 0
+_0222861C: .word 0x02016A19
+
+ thumb_func_start MOD08_02228620
+MOD08_02228620: ; 0x02228620
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _02228654
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ str r1, [r0]
+ ldr r0, [r4, #0x10]
+ ldr r2, [r4, #0x18]
+ mov r1, #0
+ add r3, r4, #0
+ bl FUN_020133AC
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02013440
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+_02228654:
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222865C
+MOD08_0222865C: ; 0x0222865C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r7, r1, #0
+ cmp r0, #0
+ bne _0222869A
+ add r0, r6, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ bl MOD08_0222818C
+ add r5, r0, #0
+ mov r4, #0
+ cmp r5, #0
+ ble _0222868E
+_0222867C:
+ ldr r0, [r6, #0x14]
+ add r1, r4, #0
+ add r2, r7, #0
+ add r3, r6, #0
+ bl FUN_020133AC
+ add r4, r4, #1
+ cmp r4, r5
+ blt _0222867C
+_0222868E:
+ mov r1, #1
+ str r1, [r6, #0x5c]
+ ldr r0, [r6, #0x14]
+ bl FUN_02013440
+ pop {r3, r4, r5, r6, r7, pc}
+_0222869A:
+ ldr r0, [r6, #0x10]
+ mov r7, #0
+ cmp r0, #0
+ ble _02228700
+ add r0, r6, #0
+ str r0, [sp]
+ add r0, #0x5c
+ add r5, r6, #0
+ str r0, [sp]
+_022286AC:
+ ldr r0, [r6]
+ mov r1, #0x1c
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _022286BC
+ bl ErrorHandling
+_022286BC:
+ str r7, [r4]
+ ldr r0, [r6, #4]
+ str r0, [r4, #8]
+ ldr r0, _02228704 ; =MOD08_022287C4
+ str r0, [r4, #0x18]
+ mov r0, #0
+ str r0, [r5, #0x5c]
+ ldr r0, [sp]
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x14]
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x38]
+ str r0, [r4, #0x14]
+ cmp r0, #0
+ bne _022286DE
+ bl ErrorHandling
+_022286DE:
+ ldr r0, [r4, #0x14]
+ bl MOD08_0222A078
+ str r0, [r4, #4]
+ ldr r0, _02228708 ; =MOD08_02228620
+ ldr r2, _0222870C ; =0x000003E9
+ add r1, r4, #0
+ bl FUN_0200CA44
+ ldr r0, [sp]
+ add r7, r7, #1
+ add r0, r0, #4
+ str r0, [sp]
+ ldr r0, [r6, #0x10]
+ add r5, r5, #4
+ cmp r7, r0
+ blt _022286AC
+_02228700:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02228704: .word MOD08_022287C4
+_02228708: .word MOD08_02228620
+_0222870C: .word 0x000003E9
+
+ thumb_func_start MOD08_02228710
+MOD08_02228710: ; 0x02228710
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r3, #1
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_0222796C
+ cmp r5, #5
+ bhi _02228766
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222872E: ; jump table
+ .short _0222873A - _0222872E - 2 ; case 0
+ .short _02228742 - _0222872E - 2 ; case 1
+ .short _0222874C - _0222872E - 2 ; case 2
+ .short _02228754 - _0222872E - 2 ; case 3
+ .short _0222875E - _0222872E - 2 ; case 4
+ .short _02228766 - _0222872E - 2 ; case 5
+_0222873A:
+ mov r5, #0
+ add r0, r5, #0
+ sub r0, #0x10
+ b _0222876E
+_02228742:
+ mov r5, #0xe
+ mvn r5, r5
+ add r0, r5, #0
+ sub r0, #0xa
+ b _0222876E
+_0222874C:
+ mov r5, #7
+ mvn r5, r5
+ sub r0, r5, #4
+ b _0222876E
+_02228754:
+ mov r5, #0xd
+ mvn r5, r5
+ add r0, r5, #0
+ sub r0, #0xb
+ b _0222876E
+_0222875E:
+ mov r5, #7
+ mvn r5, r5
+ sub r0, r5, #4
+ b _0222876E
+_02228766:
+ mov r5, #0xf
+ mvn r5, r5
+ add r0, r5, #0
+ sub r0, #0xd
+_0222876E:
+ add r5, #0xa
+ ldr r3, [r4]
+ mov r1, #0xac
+ add r2, r5, #0
+ mul r2, r1
+ sub r2, r3, r2
+ str r2, [r4]
+ add r0, #0x20
+ ldr r2, [r4, #4]
+ mul r1, r0
+ sub r0, r2, r1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02228788
+MOD08_02228788: ; 0x02228788
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_0201341C
+ ldr r0, [r0, #4]
+ add r1, sp, #0
+ bl MOD08_02228710
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0x30]
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022287C4
+MOD08_022287C4: ; 0x022287C4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ add r1, sp, #0
+ bl MOD08_02228710
+ ldr r0, [r4, #0x14]
+ bl FUN_02029CE0
+ bl FUN_02086018
+ ldr r0, [r4, #0x14]
+ bl FUN_02029CE4
+ add r6, r0, #0
+ ldr r0, [r4, #0x14]
+ bl FUN_02029CE8
+ sub r6, #0xbe
+ lsl r1, r6, #0x10
+ asr r3, r1, #0x10
+ ldr r2, [sp]
+ mov r1, #0xac
+ add r4, r3, #0
+ mul r4, r1
+ add r3, r2, r4
+ mov r4, #0x64
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ ldr r2, [sp, #4]
+ mul r1, r0
+ add r0, r2, r1
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r3, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02228838
+MOD08_02228838: ; 0x02228838
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201341C
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ mov r1, #0x64
+ mov r3, #0xac
+ sub r1, r1, r2
+ lsl r1, r1, #0x10
+ asr r2, r1, #0x10
+ add r1, r2, #0
+ mov r2, #0
+ ldrsh r0, [r0, r2]
+ mul r1, r3
+ sub r0, #0x81
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r2, r0, #0
+ ldr r0, [r4, #0x20]
+ mul r2, r3
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r2, r0
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ str r0, [r4, #0x30]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02228880
+MOD08_02228880: ; 0x02228880
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ mov r1, #0x24
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _02228894
+ bl ErrorHandling
+_02228894:
+ ldmia r5!, {r0, r1}
+ add r2, r4, #0
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r2]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _022288B8
+ ldr r0, _022288DC ; =0x00000113
+ bl MOD08_022281A0
+ str r0, [r4, #0x20]
+ ldr r0, _022288DC ; =0x00000113
+ bl MOD08_022281B4
+ b _022288C6
+_022288B8:
+ ldr r0, [r4, #4]
+ bl MOD08_022281A0
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #4]
+ bl MOD08_022281B4
+_022288C6:
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #8]
+ ldr r2, [r4, #0x20]
+ mov r1, #0x63
+ mov r3, #0
+ bl MOD08_02215ACC
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022288DC: .word 0x00000113
+
+ thumb_func_start MOD08_022288E0
+MOD08_022288E0: ; 0x022288E0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #0xc]
+ cmp r1, #0xff
+ bne _0222893A
+ ldr r0, [r5, #0x10]
+ cmp r0, #0
+ beq _02228910
+ ldr r0, [r5, #0x1c]
+ mov r4, #0
+ cmp r0, #0
+ ble _02228944
+ ldr r6, _02228950 ; =MOD08_02228838
+_022288FA:
+ ldr r0, [r5, #0x18]
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, r5, #0
+ bl FUN_020133AC
+ ldr r0, [r5, #0x1c]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _022288FA
+ b _02228944
+_02228910:
+ ldr r0, [r5, #0x1c]
+ mov r4, #0
+ cmp r0, #0
+ ble _02228944
+ ldr r6, _02228950 ; =MOD08_02228838
+_0222891A:
+ ldr r0, [r5, #4]
+ bl MOD08_022281C8
+ cmp r4, r0
+ beq _02228930
+ ldr r0, [r5, #0x18]
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, r5, #0
+ bl FUN_020133AC
+_02228930:
+ ldr r0, [r5, #0x1c]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0222891A
+ b _02228944
+_0222893A:
+ ldr r0, [r5, #0x18]
+ ldr r2, _02228950 ; =MOD08_02228838
+ add r3, r5, #0
+ bl FUN_020133AC
+_02228944:
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_02013440
+ pop {r4, r5, r6, pc}
+ nop
+_02228950: .word MOD08_02228838
+
+ thumb_func_start MOD08_02228954
+MOD08_02228954: ; 0x02228954
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ bl FUN_020133C8
+ cmp r0, #0
+ bne _0222896C
+ ldr r0, [r4, #0x18]
+ bl MOD08_02215B40
+ mov r0, #0
+ pop {r4, pc}
+_0222896C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228970
+MOD08_02228970: ; 0x02228970
+ ldr r3, _02228974 ; =0x02016A19
+ bx r3
+ .align 2, 0
+_02228974: .word 0x02016A19
+
+ thumb_func_start MOD08_02228978
+MOD08_02228978: ; 0x02228978
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _0222898C
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #1
+ bl MOD08_02229A18
+_0222898C:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _0222899C
+ mov r0, #0
+ pop {r4, pc}
+_0222899C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022289A0
+MOD08_022289A0: ; 0x022289A0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _022289B4
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #3
+ bl MOD08_02229A18
+_022289B4:
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _022289C4
+ mov r0, #0
+ pop {r4, pc}
+_022289C4:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022289C8
+MOD08_022289C8: ; 0x022289C8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _022289DC
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #5
+ bl MOD08_02229A18
+_022289DC:
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _022289EC
+ mov r0, #0
+ pop {r4, pc}
+_022289EC:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022289F0
+MOD08_022289F0: ; 0x022289F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _02228A04
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #7
+ bl MOD08_02229A18
+_02228A04:
+ add r0, r4, #0
+ mov r1, #0xe
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _02228A14
+ mov r0, #0
+ pop {r4, pc}
+_02228A14:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228A18
+MOD08_02228A18: ; 0x02228A18
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _02228A2C
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #0xf
+ bl MOD08_02229A18
+_02228A2C:
+ add r0, r4, #0
+ mov r1, #0x12
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _02228A3C
+ mov r0, #0
+ pop {r4, pc}
+_02228A3C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228A40
+MOD08_02228A40: ; 0x02228A40
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _02228A54
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #0x13
+ bl MOD08_02229A18
+_02228A54:
+ add r0, r4, #0
+ mov r1, #0x1b
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _02228A64
+ mov r0, #0
+ pop {r4, pc}
+_02228A64:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228A68
+MOD08_02228A68: ; 0x02228A68
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _02228A7C
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #0x15
+ bl MOD08_02229A18
+_02228A7C:
+ add r0, r4, #0
+ mov r1, #0x16
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _02228A8C
+ mov r0, #0
+ pop {r4, pc}
+_02228A8C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228A90
+MOD08_02228A90: ; 0x02228A90
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _02228AA4
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #0x17
+ bl MOD08_02229A18
+_02228AA4:
+ add r0, r4, #0
+ mov r1, #0x1b
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _02228AB4
+ mov r0, #0
+ pop {r4, pc}
+_02228AB4:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228AB8
+MOD08_02228AB8: ; 0x02228AB8
+ str r1, [r0]
+ mov r1, #0
+ str r1, [r0, #4]
+ bx lr
+
+ thumb_func_start MOD08_02228AC0
+MOD08_02228AC0: ; 0x02228AC0
+ push {r3, lr}
+ ldr r1, [r0]
+ lsl r2, r1, #2
+ ldr r1, _02228AD0 ; =0x0222D034
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ nop
+_02228AD0: .word 0x0222D034
+
+ thumb_func_start MOD08_02228AD4
+MOD08_02228AD4: ; 0x02228AD4
+ str r1, [r0, #0x14]
+ mov r1, #0
+ str r1, [r0, #8]
+ str r1, [r0, #0xc]
+ str r1, [r0, #0x10]
+ bx lr
+
+ thumb_func_start MOD08_02228AE0
+MOD08_02228AE0: ; 0x02228AE0
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228AE4
+MOD08_02228AE4: ; 0x02228AE4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD08_02229114
+ cmp r0, #0
+ bne _02228AF8
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_02228AD4
+_02228AF8:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228AFC
+MOD08_02228AFC: ; 0x02228AFC
+ push {r3, lr}
+ mov r1, #3
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228B08
+MOD08_02228B08: ; 0x02228B08
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bhi _02228BD8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02228B20: ; jump table
+ .short _02228B28 - _02228B20 - 2 ; case 0
+ .short _02228B7E - _02228B20 - 2 ; case 1
+ .short _02228B94 - _02228B20 - 2 ; case 2
+ .short _02228BB0 - _02228B20 - 2 ; case 3
+_02228B28:
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C5C0
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r2, sp, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r1, sp, #0
+ str r0, [sp, #8]
+ mov r0, #0xff
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x30]
+ add r2, #2
+ bl FUN_0200C7A0
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0xb4
+ add r1, #0x94
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl MOD08_0221590C
+ add r1, r4, #0
+ add r1, #0xd8
+ str r0, [r1]
+ add r0, sp, #0
+ bl MOD08_02228880
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228BE0
+_02228B7E:
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C630
+ cmp r0, #2
+ blt _02228BE0
+ mov r0, #0
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228BE0
+_02228B94:
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_022288E0
+ add r0, r4, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ bl MOD08_02215918
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228BE0
+_02228BB0:
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228954
+ cmp r0, #0
+ bne _02228BE0
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228970
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228BE0
+_02228BD8:
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD08_02228AD4
+_02228BE0:
+ mov r0, #1
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02228BE8
+MOD08_02228BE8: ; 0x02228BE8
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228BEC
+MOD08_02228BEC: ; 0x02228BEC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0
+ bne _02228C2C
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0xb8
+ add r2, #0xba
+ bl FUN_0200C7A0
+ add r0, r4, #0
+ mov r1, #0x3c
+ add r0, #0xbc
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xb4
+ add r0, #0xbe
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0xc0
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xc
+ add r0, #0xc8
+ str r1, [r0]
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02228C3C
+_02228C2C:
+ bl MOD08_02229114
+ cmp r0, #0
+ bne _02228C3C
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD08_02228AD4
+_02228C3C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228C40
+MOD08_02228C40: ; 0x02228C40
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228C44
+MOD08_02228C44: ; 0x02228C44
+ push {r3, lr}
+ mov r1, #8
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228C50
+MOD08_02228C50: ; 0x02228C50
+ push {r3, lr}
+ mov r1, #9
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228C5C
+MOD08_02228C5C: ; 0x02228C5C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02228C6E
+ cmp r0, #1
+ beq _02228CA2
+ b _02228CE4
+_02228C6E:
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xc
+ str r0, [sp, #4]
+ ldr r0, _02228D00 ; =0x0000037F
+ mov r3, #1
+ add r5, r3, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r5, r2
+ add r0, #0xb0
+ lsl r2, r5, #0x10
+ ldr r0, [r0]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ sub r3, r3, #2
+ bl FUN_02003210
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228CFA
+_02228CA2:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02228CFA
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r2, r0, #0
+ mov r0, #0xc
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _02228D00 ; =0x0000037F
+ mov r3, #1
+ add r5, r3, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r5, r2
+ add r0, #0xb0
+ lsl r2, r5, #0x10
+ ldr r0, [r0]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ sub r3, r3, #2
+ bl FUN_02003210
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228CFA
+_02228CE4:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02228CFA
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD08_02228AD4
+_02228CFA:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02228D00: .word 0x0000037F
+
+ thumb_func_start MOD08_02228D04
+MOD08_02228D04: ; 0x02228D04
+ push {r3, lr}
+ mov r1, #0xb
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228D10
+MOD08_02228D10: ; 0x02228D10
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02228D22
+ cmp r0, #1
+ beq _02228D62
+ b _02228D7E
+_02228D22:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #1
+ blt _02228D7E
+ add r1, sp, #8
+ ldr r0, [r4, #0x30]
+ add r1, #2
+ add r2, sp, #8
+ bl FUN_0200C7A0
+ add r1, sp, #8
+ mov r0, #0
+ ldrsh r3, [r1, r0]
+ mov r0, #2
+ ldrsh r1, [r1, r0]
+ add r0, r3, #0
+ add r0, #0x20
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x48
+ add r2, r1, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228D7E
+_02228D62:
+ add r0, r4, #0
+ ldr r1, [r4, #0x30]
+ add r0, #0x48
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _02228D7E
+ ldr r0, [r4, #8]
+ mov r1, #0xd
+ add r0, r0, #1
+ str r0, [r4, #8]
+ add r0, r4, #0
+ bl MOD08_02228AD4
+_02228D7E:
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_02228D84
+MOD08_02228D84: ; 0x02228D84
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228D88
+MOD08_02228D88: ; 0x02228D88
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #8]
+ cmp r1, #0
+ beq _02228D98
+ cmp r1, #1
+ beq _02228DAE
+ b _02228E0E
+_02228D98:
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C5C0
+ ldr r0, [r5, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ ldr r0, [r5, #8]
+ add r0, r0, #1
+ str r0, [r5, #8]
+_02228DAE:
+ ldr r1, [r5, #0xc]
+ mov r0, #6
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _02228E18 ; =0x0222D18A
+ ldr r1, _02228E1C ; =0x0222D18C
+ ldrsh r0, [r0, r2]
+ ldrh r1, [r1, r2]
+ str r0, [sp]
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C61C
+ ldr r0, [r5, #0xc]
+ ldr r4, _02228E20 ; =0x0222D07C
+ add r0, r0, #1
+ str r0, [r5, #0xc]
+ mov r6, #0
+ mov r7, #0x75
+_02228DD2:
+ ldr r1, [r5, #0xc]
+ ldr r0, [r4]
+ cmp r1, r0
+ bne _02228DE6
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_020054A8
+_02228DE6:
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, #5
+ blt _02228DD2
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x14
+ bgt _02228DFA
+ ldr r0, [sp]
+ cmp r0, #0xff
+ bne _02228E02
+_02228DFA:
+ ldr r0, [r5, #8]
+ add r0, r0, #1
+ str r0, [r5, #8]
+ b _02228E14
+_02228E02:
+ ldr r0, [r5, #0x30]
+ ldr r2, [sp]
+ mov r1, #0
+ bl FUN_0200C82C
+ b _02228E14
+_02228E0E:
+ mov r1, #0xe
+ bl MOD08_02228AD4
+_02228E14:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02228E18: .word 0x0222D18A
+_02228E1C: .word 0x0222D18C
+_02228E20: .word 0x0222D07C
+
+ thumb_func_start MOD08_02228E24
+MOD08_02228E24: ; 0x02228E24
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228E28
+MOD08_02228E28: ; 0x02228E28
+ push {r3, lr}
+ ldr r1, [r0, #0xc]
+ add r1, r1, #1
+ str r1, [r0, #0xc]
+ cmp r1, #0xe
+ blt _02228E44
+ ldr r1, [r0, #8]
+ add r1, r1, #1
+ str r1, [r0, #8]
+ mov r1, #0
+ str r1, [r0, #0xc]
+ mov r1, #0x10
+ bl MOD08_02228AD4
+_02228E44:
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228E48
+MOD08_02228E48: ; 0x02228E48
+ push {r3, lr}
+ mov r1, #0x11
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228E54
+MOD08_02228E54: ; 0x02228E54
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _02228E64
+ cmp r0, #1
+ beq _02228E74
+ b _02228EDC
+_02228E64:
+ ldr r0, [r5, #0x18]
+ cmp r0, #3
+ blt _02228E6E
+ bl ErrorHandling
+_02228E6E:
+ ldr r0, [r5, #8]
+ add r0, r0, #1
+ str r0, [r5, #8]
+_02228E74:
+ ldr r1, [r5, #0x18]
+ mov r0, #0x18
+ add r3, r1, #0
+ mul r3, r0
+ ldr r0, _02228EE0 ; =0x0222D0D0
+ ldr r1, [r5, #0xc]
+ add r0, r0, r3
+ lsl r2, r1, #1
+ ldrsh r4, [r2, r0]
+ add r0, r1, #1
+ str r0, [r5, #0xc]
+ cmp r0, #0xb
+ bgt _02228E92
+ cmp r4, #0xff
+ bne _02228EB2
+_02228E92:
+ ldr r0, [r5, #8]
+ mov r1, #0
+ add r0, r0, #1
+ str r0, [r5, #8]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #1
+ str r0, [r5, #0x18]
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C898
+ add r0, r5, #0
+ mov r1, #0x12
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02228EB2:
+ cmp r0, #5
+ bne _02228EBE
+ ldr r0, _02228EE4 ; =0x000005FE
+ mov r1, #0x75
+ bl FUN_020054A8
+_02228EBE:
+ ldr r0, [r5, #0x30]
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200C82C
+ ldr r0, _02228EE8 ; =0x0001FFFE
+ mov r1, #0x5a
+ mul r0, r4
+ lsl r1, r1, #2
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C8BC
+_02228EDC:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02228EE0: .word 0x0222D0D0
+_02228EE4: .word 0x000005FE
+_02228EE8: .word 0x0001FFFE
+
+ thumb_func_start MOD08_02228EEC
+MOD08_02228EEC: ; 0x02228EEC
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228EF0
+MOD08_02228EF0: ; 0x02228EF0
+ push {r3, lr}
+ mov r1, #0x14
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228EFC
+MOD08_02228EFC: ; 0x02228EFC
+ push {r3, lr}
+ mov r1, #0x1b
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228F08
+MOD08_02228F08: ; 0x02228F08
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bhi _02228FDC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02228F20: ; jump table
+ .short _02228F28 - _02228F20 - 2 ; case 0
+ .short _02228F5A - _02228F20 - 2 ; case 1
+ .short _02228FA2 - _02228F20 - 2 ; case 2
+ .short _02228FB4 - _02228F20 - 2 ; case 3
+_02228F28:
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ mov r1, #0
+ mov r3, #1
+ add r2, r0, #0
+ add r5, r3, #0
+ lsl r5, r2
+ lsl r2, r5, #0x10
+ str r1, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r1, [sp, #8]
+ add r0, #0xb0
+ ldr r0, [r0]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ sub r3, r3, #6
+ bl FUN_02003210
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228FF2
+_02228F5A:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02228FF2
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ add r1, #0x94
+ ldr r1, [r1]
+ str r1, [sp, #0x14]
+ bl MOD08_022281C8
+ str r0, [sp, #0x18]
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ add r2, sp, #0xc
+ ldr r0, [r4, #0x30]
+ add r1, sp, #0xc
+ add r2, #2
+ bl FUN_0200C7A0
+ add r0, sp, #0xc
+ bl MOD08_02228880
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228FF2
+_02228FA2:
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_022288E0
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228FF2
+_02228FB4:
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228954
+ cmp r0, #0
+ bne _02228FF2
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228970
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228FF2
+_02228FDC:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02228FF2
+ add r0, r4, #0
+ mov r1, #0x16
+ bl MOD08_02228AD4
+_02228FF2:
+ mov r0, #1
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02228FF8
+MOD08_02228FF8: ; 0x02228FF8
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228FFC
+MOD08_02228FFC: ; 0x02228FFC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #0
+ beq _0222900E
+ cmp r1, #1
+ beq _02229040
+ b _02229054
+_0222900E:
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r2, r0, #0
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0
+ mov r3, #1
+ add r5, r3, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r5, r2
+ add r0, #0xb0
+ lsl r2, r5, #0x10
+ ldr r0, [r0]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ sub r3, r3, #6
+ bl FUN_02003210
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _0222905A
+_02229040:
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0222905A
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _0222905A
+_02229054:
+ mov r1, #0x18
+ bl MOD08_02228AD4
+_0222905A:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_02229060
+MOD08_02229060: ; 0x02229060
+ push {r3, lr}
+ mov r1, #0x19
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_0222906C
+MOD08_0222906C: ; 0x0222906C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #0
+ beq _0222907C
+ cmp r1, #1
+ beq _0222908A
+ b _022290E2
+_0222907C:
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+_0222908A:
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022290B2
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x21
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x21
+ strb r1, [r0]
+ b _022290CE
+_022290B2:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x20
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r2, #0xf
+ add r0, #0x21
+ strb r2, [r0]
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C644
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+_022290CE:
+ add r0, r4, #0
+ add r0, #0x20
+ add r4, #0x21
+ ldrb r1, [r0]
+ ldrb r0, [r4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _022290EC ; =0x04000052
+ strh r1, [r0]
+ b _022290E8
+_022290E2:
+ mov r1, #0x1a
+ bl MOD08_02228AD4
+_022290E8:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_022290EC: .word 0x04000052
+
+ thumb_func_start MOD08_022290F0
+MOD08_022290F0: ; 0x022290F0
+ push {r3, lr}
+ mov r1, #0x1b
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_022290FC
+MOD08_022290FC: ; 0x022290FC
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD08_02229100
+MOD08_02229100: ; 0x02229100
+ push {r3, lr}
+ ldr r1, [r0, #0x14]
+ lsl r2, r1, #2
+ ldr r1, _02229110 ; =0x0222D118
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ nop
+_02229110: .word 0x0222D118
+
+ thumb_func_start MOD08_02229114
+MOD08_02229114: ; 0x02229114
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bls _02229122
+ b _02229322
+_02229122:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222912E: ; jump table
+ .short _02229136 - _0222912E - 2 ; case 0
+ .short _022291A4 - _0222912E - 2 ; case 1
+ .short _0222929E - _0222912E - 2 ; case 2
+ .short _02229302 - _0222912E - 2 ; case 3
+_02229136:
+ mov r0, #0xba
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r2, #0xb8
+ str r0, [sp]
+ mov r0, #0xbe
+ ldrsh r0, [r4, r0]
+ mov r3, #0xbc
+ add r1, #0x6c
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ add r0, #0x48
+ bl MOD08_02217F50
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ add r0, r4, #0
+ add r0, #0xd4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_022280C4
+ cmp r0, #1
+ bne _0222928C
+ bl FUN_0201B9EC
+ mov r1, #0x14
+ bl _s32_div_f
+ add r1, #0xa
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xd
+ bl FUN_0200C8BC
+ b _022293BE
+_022291A4:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_022280C4
+ cmp r0, #1
+ bne _02229242
+ mov r1, #2
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xc
+ bl FUN_0200C8BC
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ add r0, #0xa
+ cmp r2, r0
+ ble _022291DE
+ mov r1, #2
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xc
+ bl FUN_0200C8BC
+_022291DE:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_02228104
+ cmp r0, #1
+ bne _02229242
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ add r0, #0xa
+ cmp r2, r0
+ bne _02229242
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ add r1, r4, #0
+ lsl r3, r3, #0x14
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _022293C4 ; =0x0000FFFF
+ add r1, #0x94
+ str r0, [sp, #0x14]
+ ldr r0, _022293C8 ; =0x000003EA
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl MOD08_02218B20
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+_02229242:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #6
+ blt _0222927A
+ cmp r0, #8
+ bgt _0222927A
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r2, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ cmp r1, r2
+ ble _0222927A
+ add r0, r2, #5
+ cmp r1, r0
+ blt _0222928C
+_0222927A:
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x48
+ add r1, #0x6c
+ bl MOD08_02217FE4
+ cmp r0, #0
+ beq _0222928E
+_0222928C:
+ b _022293BE
+_0222928E:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_02229FFC
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022293BE
+_0222929E:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_02228104
+ cmp r0, #1
+ bne _022292D2
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022292D2
+ bl MOD08_02218AF8
+ cmp r0, #1
+ beq _022293BE
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl MOD08_02218B08
+ mov r0, #1
+ str r0, [r4, #0x28]
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_022292D2:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0xf
+ blt _022292E6
+ mov r0, #1
+ str r0, [r4, #0x28]
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_022292E6:
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r1, [r0]
+ ldr r0, _022293CC ; =0x00000111
+ cmp r1, r0
+ bne _022292FA
+ ldr r0, _022293D0 ; =0x000007E8
+ mov r1, #0x75
+ bl FUN_020054A8
+_022292FA:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022293BE
+_02229302:
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C5C0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_0222A008
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022293BE
+_02229322:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0xf
+ bne _0222937C
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0xc
+ beq _02229378
+ cmp r0, #0xd
+ beq _02229378
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ add r1, r4, #0
+ lsl r3, r3, #0x14
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _022293C4 ; =0x0000FFFF
+ add r1, #0x94
+ str r0, [sp, #0x14]
+ ldr r0, _022293C8 ; =0x000003EA
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl MOD08_02218B20
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+_02229378:
+ mov r0, #1
+ str r0, [r4, #0x28]
+_0222937C:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0xf
+ ble _022293BE
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0xc
+ beq _022293B8
+ cmp r0, #0xd
+ beq _022293B8
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl MOD08_02218AF8
+ cmp r0, #1
+ beq _022293BE
+ add r4, #0xd4
+ ldr r0, [r4]
+ bl MOD08_02218B08
+_022293B8:
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_022293BE:
+ mov r0, #1
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ .align 2, 0
+_022293C4: .word 0x0000FFFF
+_022293C8: .word 0x000003EA
+_022293CC: .word 0x00000111
+_022293D0: .word 0x000007E8
+
+ thumb_func_start MOD08_022293D4
+MOD08_022293D4: ; 0x022293D4
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bls _022293E2
+ b _022295CE
+_022293E2:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022293EE: ; jump table
+ .short _022293F6 - _022293EE - 2 ; case 0
+ .short _02229464 - _022293EE - 2 ; case 1
+ .short _0222955E - _022293EE - 2 ; case 2
+ .short _022295AE - _022293EE - 2 ; case 3
+_022293F6:
+ mov r0, #0xba
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r2, #0xb8
+ str r0, [sp]
+ mov r0, #0xbe
+ ldrsh r0, [r4, r0]
+ mov r3, #0xbc
+ add r1, #0x6c
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ add r0, #0x48
+ bl MOD08_02217F50
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ add r0, r4, #0
+ add r0, #0xd4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_022280C4
+ cmp r0, #1
+ bne _0222954C
+ bl FUN_0201B9EC
+ mov r1, #0x14
+ bl _s32_div_f
+ add r1, #0xa
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xd
+ bl FUN_0200C8BC
+ b _02229656
+_02229464:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_022280C4
+ cmp r0, #1
+ bne _02229502
+ mov r1, #2
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xc
+ bl FUN_0200C8BC
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ add r0, #0xa
+ cmp r2, r0
+ ble _0222949E
+ mov r1, #2
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xc
+ bl FUN_0200C8BC
+_0222949E:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_02228104
+ cmp r0, #1
+ bne _02229502
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ add r0, #0xa
+ cmp r2, r0
+ bne _02229502
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ add r1, r4, #0
+ lsl r3, r3, #0x14
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _0222965C ; =0x0000FFFF
+ add r1, #0x94
+ str r0, [sp, #0x14]
+ ldr r0, _02229660 ; =0x000003EA
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl MOD08_02218B20
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+_02229502:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #6
+ blt _0222953A
+ cmp r0, #8
+ bgt _0222953A
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r2, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ cmp r1, r2
+ ble _0222953A
+ add r0, r2, #5
+ cmp r1, r0
+ blt _0222954C
+_0222953A:
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x48
+ add r1, #0x6c
+ bl MOD08_02217FE4
+ cmp r0, #0
+ beq _0222954E
+_0222954C:
+ b _02229656
+_0222954E:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_02229FFC
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02229656
+_0222955E:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_02228104
+ cmp r0, #1
+ bne _02229592
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02229592
+ bl MOD08_02218AF8
+ cmp r0, #1
+ beq _02229656
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl MOD08_02218B08
+ mov r0, #1
+ str r0, [r4, #0x28]
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_02229592:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0xf
+ blt _022295A6
+ mov r0, #1
+ str r0, [r4, #0x28]
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_022295A6:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02229656
+_022295AE:
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C5C0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_0222A008
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02229656
+_022295CE:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0xf
+ bne _02229622
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_0200C61C
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ add r1, r4, #0
+ lsl r3, r3, #0x14
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _0222965C ; =0x0000FFFF
+ add r1, #0x94
+ str r0, [sp, #0x14]
+ ldr r0, _02229660 ; =0x000003EA
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl MOD08_02218B20
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+ mov r0, #1
+ str r0, [r4, #0x28]
+_02229622:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0xf
+ ble _02229656
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl MOD08_02218AF8
+ cmp r0, #1
+ beq _02229656
+ add r4, #0xd4
+ ldr r0, [r4]
+ bl MOD08_02218B08
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_02229656:
+ mov r0, #1
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222965C: .word 0x0000FFFF
+_02229660: .word 0x000003EA
+
+ thumb_func_start MOD08_02229664
+MOD08_02229664: ; 0x02229664
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #7
+ bls _02229672
+ b _022297EA
+_02229672:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222967E: ; jump table
+ .short _0222968E - _0222967E - 2 ; case 0
+ .short _022296CC - _0222967E - 2 ; case 1
+ .short _022296FC - _0222967E - 2 ; case 2
+ .short _02229732 - _0222967E - 2 ; case 3
+ .short _02229742 - _0222967E - 2 ; case 4
+ .short _02229770 - _0222967E - 2 ; case 5
+ .short _0222979E - _0222967E - 2 ; case 6
+ .short _022297CC - _0222967E - 2 ; case 7
+_0222968E:
+ mov r1, #0
+ bl MOD08_0222A008
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C5C0
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #2
+ blt _022296E2
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_022296CC:
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #2
+ bge _022296E4
+_022296E2:
+ b _022297F0
+_022296E4:
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_0200C61C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_022296FC:
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r2, sp, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r1, sp, #0
+ str r0, [sp, #8]
+ mov r0, #0xff
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x30]
+ add r2, #2
+ bl FUN_0200C7A0
+ add r0, sp, #0
+ bl MOD08_02228880
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_02229732:
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_022288E0
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_02229742:
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #6
+ blt _022297F0
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_0200C61C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_02229770:
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #6
+ blt _022297F0
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C61C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_0222979E:
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #6
+ blt _022297F0
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_022297CC:
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228954
+ cmp r0, #0
+ bne _022297F0
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228970
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_022297EA:
+ add sp, #0x14
+ mov r0, #0
+ pop {r3, r4, pc}
+_022297F0:
+ mov r0, #1
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022297F8
+MOD08_022297F8: ; 0x022297F8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02229808
+ cmp r0, #1
+ beq _0222983C
+ b _0222986E
+_02229808:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _0222981E
+ ldr r1, _0222987C ; =0xFFFFE001
+ add r0, r4, #0
+ add r0, #0x34
+ lsr r2, r1, #0x13
+ mov r3, #0xa
+ bl MOD08_02218008
+ b _0222982C
+_0222981E:
+ add r0, r4, #0
+ ldr r1, _02229880 ; =0x00001FFF
+ ldr r2, _0222987C ; =0xFFFFE001
+ add r0, #0x34
+ mov r3, #0xa
+ bl MOD08_02218008
+_0222982C:
+ ldr r1, [r4, #0x10]
+ mov r0, #1
+ eor r0, r1
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02229876
+_0222983C:
+ ldr r1, [r4, #0x34]
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0200C898
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02218058
+ cmp r0, #0
+ bne _02229876
+ ldr r0, [r4, #0xc]
+ cmp r0, #1
+ blt _02229862
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02229876
+_02229862:
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ b _02229876
+_0222986E:
+ mov r0, #0
+ add r4, #0xc4
+ str r0, [r4]
+ pop {r4, pc}
+_02229876:
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_0222987C: .word 0xFFFFE001
+_02229880: .word 0x00001FFF
+
+ thumb_func_start MOD08_02229884
+MOD08_02229884: ; 0x02229884
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0xff
+ bne _02229896
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, pc}
+_02229896:
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _022298BA
+ add r1, sp, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0xb8
+ strh r2, [r0]
+ mov r0, #0
+ ldrsh r0, [r1, r0]
+ add r4, #0xba
+ strh r0, [r4]
+_022298BA:
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022298C0
+MOD08_022298C0: ; 0x022298C0
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _02229912
+ add r0, r4, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ cmp r0, #0
+ ble _022298EA
+ add r0, r4, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xdc
+ str r1, [r0]
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200BC1C
+ pop {r4, pc}
+_022298EA:
+ add r1, #0x98
+ ldr r1, [r1]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02229914 ; =0x0222D01C
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ bne _02229900
+ mov r0, #0
+ str r0, [r4, #0x1c]
+_02229900:
+ ldr r0, [r4, #0x24]
+ cmp r0, #1
+ bne _0222990C
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C5A8
+_0222990C:
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200BC1C
+_02229912:
+ pop {r4, pc}
+ .align 2, 0
+_02229914: .word 0x0222D01C
+
+ thumb_func_start MOD08_02229918
+MOD08_02229918: ; 0x02229918
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ mov r1, #0xe0
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0xe0
+ add r4, r0, #0
+ bl MI_CpuFill8
+ cmp r4, #0
+ bne _02229936
+ bl ErrorHandling
+_02229936:
+ add r3, r4, #0
+ add r3, #0x90
+ mov r2, #5
+_0222993C:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222993C
+ mov r0, #0
+ str r0, [r4, #8]
+ str r0, [r4, #0x10]
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ str r0, [r4]
+ str r0, [r4, #4]
+ add r0, r4, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xdc
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_02228140
+ str r0, [r4, #0x24]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0xc4
+ str r2, [r0]
+ add r0, r4, #0
+ mov r1, #0x10
+ add r0, #0x20
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x21
+ strb r2, [r0]
+ bl MOD08_0221268C
+ bl FUN_0201B9EC
+ lsr r1, r0, #0x1f
+ lsl r0, r0, #0x1f
+ sub r0, r0, r1
+ mov r2, #0x1f
+ ror r0, r2
+ add r0, r1, r0
+ beq _022299AA
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x22
+ strb r1, [r0]
+ b _022299B2
+_022299AA:
+ add r0, r4, #0
+ sub r2, #0x20
+ add r0, #0x22
+ strb r2, [r0]
+_022299B2:
+ add r0, r4, #0
+ bl MOD08_02229E40
+ add r0, r4, #0
+ bl MOD08_02229F64
+ add r0, r4, #0
+ bl MOD08_02229A90
+ mov r0, #1
+ str r0, [r4, #0x1c]
+ mov r0, #0
+ str r0, [r4, #0x28]
+ mov r2, #0xfa
+ ldr r0, _022299E4 ; =MOD08_022298C0
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ add r1, r4, #0
+ add r1, #0xcc
+ str r0, [r1]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022299E4: .word MOD08_022298C0
+
+ thumb_func_start MOD08_022299E8
+MOD08_022299E8: ; 0x022299E8
+ push {r4, lr}
+ add r4, r0, #0
+ bne _022299F2
+ bl ErrorHandling
+_022299F2:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _022299FC
+ mov r0, #1
+ pop {r4, pc}
+_022299FC:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02229A00
+MOD08_02229A00: ; 0x02229A00
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02229A0A
+ bl ErrorHandling
+_02229A0A:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _02229A14
+ mov r0, #1
+ pop {r4, pc}
+_02229A14:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02229A18
+MOD08_02229A18: ; 0x02229A18
+ str r1, [r0, #0x14]
+ bx lr
+
+ thumb_func_start MOD08_02229A1C
+MOD08_02229A1C: ; 0x02229A1C
+ ldr r0, [r0, #0x14]
+ cmp r0, r1
+ bne _02229A26
+ mov r0, #1
+ bx lr
+_02229A26:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02229A2C
+MOD08_02229A2C: ; 0x02229A2C
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02229A36
+ bl ErrorHandling
+_02229A36:
+ add r0, r4, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r4, #0x2c]
+ bl FUN_0200C398
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C3DC
+ add r0, r4, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02229A5C
+MOD08_02229A5C: ; 0x02229A5C
+ add r2, r0, #0
+ add r0, #0x98
+ str r1, [r0]
+ mov r0, #0
+ str r0, [r2, #8]
+ str r0, [r2, #0xc]
+ str r0, [r2, #0x10]
+ mov r0, #1
+ add r1, r2, #0
+ str r0, [r2, #0x1c]
+ ldr r0, [r2, #0x30]
+ ldr r3, _02229A7C ; =0x0200C7A1
+ add r1, #0xb8
+ add r2, #0xba
+ bx r3
+ nop
+_02229A7C: .word 0x0200C7A1
+
+ thumb_func_start MOD08_02229A80
+MOD08_02229A80: ; 0x02229A80
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02229A8A
+ bl ErrorHandling
+_02229A8A:
+ add r4, #0x98
+ ldr r0, [r4]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02229A90
+MOD08_02229A90: ; 0x02229A90
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0xb8
+ add r2, #0xba
+ bl FUN_0200C7A0
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0x11
+ bls _02229AAE
+ b _02229CF6
+_02229AAE:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02229ABA: ; jump table
+ .short _02229ADE - _02229ABA - 2 ; case 0
+ .short _02229ADE - _02229ABA - 2 ; case 1
+ .short _02229ADE - _02229ABA - 2 ; case 2
+ .short _02229ADE - _02229ABA - 2 ; case 3
+ .short _02229ADE - _02229ABA - 2 ; case 4
+ .short _02229ADE - _02229ABA - 2 ; case 5
+ .short _02229AF6 - _02229ABA - 2 ; case 6
+ .short _02229B1C - _02229ABA - 2 ; case 7
+ .short _02229B50 - _02229ABA - 2 ; case 8
+ .short _02229B76 - _02229ABA - 2 ; case 9
+ .short _02229B9C - _02229ABA - 2 ; case 10
+ .short _02229BC2 - _02229ABA - 2 ; case 11
+ .short _02229BE8 - _02229ABA - 2 ; case 12
+ .short _02229C14 - _02229ABA - 2 ; case 13
+ .short _02229C4C - _02229ABA - 2 ; case 14
+ .short _02229C72 - _02229ABA - 2 ; case 15
+ .short _02229C9E - _02229ABA - 2 ; case 16
+ .short _02229CCA - _02229ABA - 2 ; case 17
+_02229ADE:
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0xbc
+ add r2, #0xbe
+ bl FUN_0200C7A0
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc8
+ str r1, [r0]
+ b _02229CF6
+_02229AF6:
+ mov r0, #0
+ add r2, r4, #0
+ add r3, r4, #0
+ add r1, r0, #0
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229B1C:
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0xb8
+ add r2, #0xba
+ bl FUN_0200C7A0
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #4
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229B50:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #2
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229B76:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #0
+ mov r1, #1
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229B9C:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #3
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229BC2:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #5
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229BE8:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #0
+ mov r1, #1
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x10
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x10
+ strh r1, [r0]
+ mov r0, #0xc
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+_02229C14:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #0
+ mov r1, #1
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x20
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbc
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbc
+ sub r1, #0x14
+ strh r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x26
+ strh r1, [r0]
+ mov r0, #0x10
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+_02229C4C:
+ add r0, r4, #0
+ mov r1, #0x80
+ add r0, #0xbc
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0x40
+ add r0, #0xbe
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0x20
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229C72:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #0
+ mov r1, #1
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x40
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #8
+ strh r1, [r0]
+ mov r0, #0x10
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+_02229C9E:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #3
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x40
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #8
+ strh r1, [r0]
+ mov r0, #0x10
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+_02229CCA:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #5
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x40
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #8
+ strh r1, [r0]
+ mov r0, #0x10
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+_02229CF6:
+ mov r0, #0x14
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02229D00
+MOD08_02229D00: ; 0x02229D00
+ push {r4, lr}
+ add r0, #0x90
+ ldr r0, [r0]
+ add r3, r1, #0
+ add r4, r2, #0
+ cmp r0, #0x11
+ bls _02229D10
+ b _02229E3C
+_02229D10:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02229D1C: ; jump table
+ .short _02229D40 - _02229D1C - 2 ; case 0
+ .short _02229D56 - _02229D1C - 2 ; case 1
+ .short _02229D6C - _02229D1C - 2 ; case 2
+ .short _02229D98 - _02229D1C - 2 ; case 3
+ .short _02229D82 - _02229D1C - 2 ; case 4
+ .short _02229DAE - _02229D1C - 2 ; case 5
+ .short _02229DC4 - _02229D1C - 2 ; case 6
+ .short _02229DCE - _02229D1C - 2 ; case 7
+ .short _02229DD8 - _02229D1C - 2 ; case 8
+ .short _02229DE2 - _02229D1C - 2 ; case 9
+ .short _02229DF0 - _02229D1C - 2 ; case 10
+ .short _02229DFE - _02229D1C - 2 ; case 11
+ .short _02229E0C - _02229D1C - 2 ; case 12
+ .short _02229E1A - _02229D1C - 2 ; case 13
+ .short _02229E28 - _02229D1C - 2 ; case 14
+ .short _02229E32 - _02229D1C - 2 ; case 15
+ .short _02229E32 - _02229D1C - 2 ; case 16
+ .short _02229E32 - _02229D1C - 2 ; case 17
+_02229D40:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x20
+ strh r0, [r4]
+ pop {r4, pc}
+_02229D56:
+ add r2, r3, #0
+ mov r0, #0
+ mov r1, #1
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x26
+ strh r0, [r4]
+ pop {r4, pc}
+_02229D6C:
+ add r2, r3, #0
+ mov r0, #1
+ mov r1, #2
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x20
+ strh r0, [r4]
+ pop {r4, pc}
+_02229D82:
+ add r2, r3, #0
+ mov r0, #1
+ mov r1, #4
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x20
+ strh r0, [r4]
+ pop {r4, pc}
+_02229D98:
+ add r2, r3, #0
+ mov r0, #1
+ mov r1, #3
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x26
+ strh r0, [r4]
+ pop {r4, pc}
+_02229DAE:
+ add r2, r3, #0
+ mov r0, #1
+ mov r1, #5
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x26
+ strh r0, [r4]
+ pop {r4, pc}
+_02229DC4:
+ mov r0, #0xa
+ strh r0, [r3]
+ mov r0, #0x64
+ strh r0, [r4]
+ pop {r4, pc}
+_02229DCE:
+ mov r0, #0xa
+ strh r0, [r3]
+ mov r0, #0x64
+ strh r0, [r4]
+ pop {r4, pc}
+_02229DD8:
+ mov r0, #0xa
+ strh r0, [r3]
+ mov r0, #0x64
+ strh r0, [r4]
+ pop {r4, pc}
+_02229DE2:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ pop {r4, pc}
+_02229DF0:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ pop {r4, pc}
+_02229DFE:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ pop {r4, pc}
+_02229E0C:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ pop {r4, pc}
+_02229E1A:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ pop {r4, pc}
+_02229E28:
+ mov r0, #0xe6
+ strh r0, [r3]
+ mov r0, #0x20
+ strh r0, [r4]
+ pop {r4, pc}
+_02229E32:
+ mov r0, #0x1d
+ mvn r0, r0
+ strh r0, [r3]
+ mov r0, #0xa0
+ strh r0, [r4]
+_02229E3C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02229E40
+MOD08_02229E40: ; 0x02229E40
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ mov r2, #0xa
+ bl FUN_0200BBF0
+ add r0, r5, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02229E70
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+_02229E70:
+ mov r1, #0
+ add r2, sp, #0x1c
+ mov r0, #0xa
+_02229E76:
+ add r1, r1, #1
+ stmia r2!, {r0}
+ cmp r1, #6
+ blt _02229E76
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ str r0, [sp, #0x30]
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ add r2, sp, #0x1c
+ bl FUN_0200BF60
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD08_022281DC
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ mov r1, #1
+ bl MOD08_022281DC
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ mov r1, #2
+ bl MOD08_022281DC
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ mov r1, #3
+ bl MOD08_022281DC
+ str r0, [sp, #0x18]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r1, [r0]
+ ldr r0, _02229F60 ; =0x00001770
+ mov r2, #0x1b
+ add r0, r1, r0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ add r3, r6, #0
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ add r2, r5, #0
+ str r4, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r1, [r0]
+ ldr r0, _02229F60 ; =0x00001770
+ add r2, #0xac
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r2, [r2]
+ ldr r3, [r5, #0x2c]
+ mov r1, #2
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r1, [r0]
+ ldr r0, _02229F60 ; =0x00001770
+ mov r2, #0x1b
+ add r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ add r3, r7, #0
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r1, [r0]
+ ldr r0, _02229F60 ; =0x00001770
+ ldr r3, [sp, #0x18]
+ add r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ mov r2, #0x1b
+ bl FUN_0200C13C
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02229F60: .word 0x00001770
+
+ thumb_func_start MOD08_02229F64
+MOD08_02229F64: ; 0x02229F64
+ push {r3, r4, lr}
+ sub sp, #0x34
+ add r2, sp, #0
+ add r1, sp, #0
+ add r2, #2
+ add r4, r0, #0
+ bl MOD08_02229D00
+ mov r0, #0
+ add r1, sp, #0
+ strh r0, [r1, #4]
+ strh r0, [r1, #6]
+ mov r1, #1
+ str r1, [sp, #0x10]
+ add r1, r4, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ add r1, #0xa4
+ ldr r1, [r1]
+ ldr r2, _02229FE0 ; =0x00001770
+ str r1, [sp, #0x2c]
+ str r0, [sp, #0x30]
+ add r3, sp, #0
+_02229F92:
+ add r1, r4, #0
+ add r1, #0x9c
+ ldr r1, [r1]
+ add r0, r0, #1
+ add r1, r1, r2
+ str r1, [r3, #0x14]
+ add r3, r3, #4
+ cmp r0, #6
+ blt _02229F92
+ add r0, r4, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r4, #0x2c]
+ add r2, sp, #0
+ bl FUN_0200C154
+ str r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C5A8
+ bl MOD08_0221268C
+ add sp, #0x34
+ pop {r3, r4, pc}
+ .align 2, 0
+_02229FE0: .word 0x00001770
+
+ thumb_func_start MOD08_02229FE4
+MOD08_02229FE4: ; 0x02229FE4
+ ldr r3, _02229FEC ; =0x0200C645
+ ldr r0, [r0, #0x30]
+ bx r3
+ nop
+_02229FEC: .word 0x0200C645
+
+ thumb_func_start MOD08_02229FF0
+MOD08_02229FF0: ; 0x02229FF0
+ ldr r3, _02229FF8 ; =0x0200C715
+ ldr r0, [r0, #0x30]
+ bx r3
+ nop
+_02229FF8: .word 0x0200C715
+
+ thumb_func_start MOD08_02229FFC
+MOD08_02229FFC: ; 0x02229FFC
+ ldr r3, _0222A004 ; =0x0200C899
+ ldr r0, [r0, #0x30]
+ bx r3
+ nop
+_0222A004: .word 0x0200C899
+
+ thumb_func_start MOD08_0222A008
+MOD08_0222A008: ; 0x0222A008
+ str r1, [r0, #0x24]
+ bx lr
+
+ thumb_func_start MOD08_0222A00C
+MOD08_0222A00C: ; 0x0222A00C
+ ldr r3, _0222A014 ; =0x0200C6C5
+ ldr r0, [r0, #0x30]
+ bx r3
+ nop
+_0222A014: .word 0x0200C6C5
+
+ thumb_func_start MOD08_0222A018
+MOD08_0222A018: ; 0x0222A018
+ ldr r3, _0222A020 ; =0x0200C6B1
+ ldr r0, [r0, #0x30]
+ bx r3
+ nop
+_0222A020: .word 0x0200C6B1
+
+ thumb_func_start MOD08_0222A024
+MOD08_0222A024: ; 0x0222A024
+ add r0, #0xdc
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A02C
+MOD08_0222A02C: ; 0x0222A02C
+ push {r3, lr}
+ sub r1, r1, r3
+ neg r1, r1
+ sub r0, r0, r2
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ asr r1, r1, #0x10
+ add r2, r1, #0
+ asr r0, r0, #0x10
+ mul r2, r1
+ add r1, r0, #0
+ mul r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0xc
+ bl FX_Sqrt
+ asr r1, r0, #0xb
+ lsr r1, r1, #0x14
+ add r1, r0, r1
+ asr r0, r1, #0xc
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A058
+MOD08_0222A058: ; 0x0222A058
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02029CE4
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_02029CE8
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #0xbe
+ mov r3, #0x46
+ bl MOD08_0222A02C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A078
+MOD08_0222A078: ; 0x0222A078
+ push {r4, lr}
+ sub sp, #8
+ ldr r3, _0222A0D0 ; =0x0222D4D8
+ add r4, r0, #0
+ add r2, sp, #0
+ mov r1, #7
+_0222A084:
+ ldrb r0, [r3]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _0222A084
+ add r0, r4, #0
+ bl FUN_02029CE0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02086018
+ cmp r0, #0
+ bne _0222A0C6
+ add r0, r4, #0
+ bl MOD08_0222A058
+ cmp r0, #0x38
+ blt _0222A0B0
+ mov r0, #3
+ b _0222A0BE
+_0222A0B0:
+ add r0, r0, #1
+ mov r1, #0x14
+ bl _s32_div_f
+ cmp r0, #3
+ blt _0222A0BE
+ mov r0, #3
+_0222A0BE:
+ add r1, sp, #0
+ add sp, #8
+ ldrb r0, [r1, r0]
+ pop {r4, pc}
+_0222A0C6:
+ add r0, sp, #0
+ ldrb r0, [r0, #1]
+ add sp, #8
+ pop {r4, pc}
+ nop
+_0222A0D0: .word 0x0222D4D8
+
+ thumb_func_start MOD08_0222A0D4
+MOD08_0222A0D4: ; 0x0222A0D4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r1, #0x48
+ add r6, r0, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _0222A0EC
+ bl ErrorHandling
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222A0EC:
+ bl MOD08_0221268C
+ str r6, [r4]
+ cmp r5, #0
+ beq _0222A0FA
+ ldr r0, [r5]
+ str r0, [r4, #4]
+_0222A0FA:
+ mov r1, #0
+ add r2, r4, #0
+ add r0, r1, #0
+_0222A100:
+ add r1, r1, #1
+ str r0, [r2, #8]
+ add r2, r2, #4
+ cmp r1, #0x10
+ blt _0222A100
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A110
+MOD08_0222A110: ; 0x0222A110
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r4, #0
+ add r3, r0, #0
+_0222A118:
+ ldr r2, [r3, #8]
+ cmp r2, #0
+ bne _0222A138
+ add r4, r0, #0
+ ldr r0, [r0]
+ add r4, #8
+ lsl r6, r5, #2
+ bl MOD08_0222A1A0
+ str r0, [r4, r6]
+ ldr r0, [r4, r6]
+ mov r1, #0
+ str r1, [r0, #0x18]
+ ldr r4, [r4, r6]
+ str r5, [r4]
+ b _0222A140
+_0222A138:
+ add r5, r5, #1
+ add r3, r3, #4
+ cmp r5, #0x10
+ blt _0222A118
+_0222A140:
+ cmp r4, #0
+ bne _0222A148
+ bl ErrorHandling
+_0222A148:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0222A14C
+MOD08_0222A14C: ; 0x0222A14C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_0222A154:
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _0222A15E
+ bl FUN_02016A18
+_0222A15E:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x10
+ blt _0222A154
+ add r0, r6, #0
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A170
+MOD08_0222A170: ; 0x0222A170
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_0222A176:
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _0222A194
+ ldr r0, [r0, #0x10]
+ bl MOD08_02215B40
+ ldr r1, [r5, #8]
+ ldr r0, [r1, #0x20]
+ cmp r0, #0
+ beq _0222A194
+ ldr r0, [r1, #0x18]
+ cmp r0, #0
+ beq _0222A194
+ bl FUN_0200CAB4
+_0222A194:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x10
+ blt _0222A176
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A1A0
+MOD08_0222A1A0: ; 0x0222A1A0
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r1, #0x24
+ add r5, r0, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _0222A1B8
+ bl ErrorHandling
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222A1B8:
+ str r5, [r4, #4]
+ ldr r1, [r6]
+ ldr r0, [r6, #4]
+ str r1, [r4, #8]
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ bl MOD08_0222A260
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #8]
+ mov r2, #1
+ bl MOD08_02215AA4
+ str r0, [r4, #0x10]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A1DC
+MOD08_0222A1DC: ; 0x0222A1DC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ str r1, [r4, #0x20]
+ ldr r1, _0222A1FC ; =MOD08_0222A258
+ bl MOD08_0222A22C
+ mov r2, #0xfa
+ ldr r0, _0222A200 ; =MOD08_0222A208
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+ nop
+_0222A1FC: .word MOD08_0222A258
+_0222A200: .word MOD08_0222A208
+
+ thumb_func_start MOD08_0222A204
+MOD08_0222A204: ; 0x0222A204
+ ldr r0, [r0, #0x20]
+ bx lr
+
+ thumb_func_start MOD08_0222A208
+MOD08_0222A208: ; 0x0222A208
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x10]
+ bl FUN_020133C8
+ cmp r0, #0
+ bne _0222A228
+ mov r0, #0
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #0x10]
+ bl MOD08_02215B40
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0222A228:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A22C
+MOD08_0222A22C: ; 0x0222A22C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x1c]
+ add r6, r1, #0
+ mov r4, #0
+ cmp r0, #0
+ ble _0222A24E
+_0222A23A:
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, r5, #0
+ bl FUN_020133AC
+ ldr r0, [r5, #0x1c]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0222A23A
+_0222A24E:
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5, #0xc]
+ bl FUN_02013440
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0222A258
+MOD08_0222A258: ; 0x0222A258
+ ldr r3, _0222A25C ; =0x0201341D
+ bx r3
+ .align 2, 0
+_0222A25C: .word 0x0201341D
+
+ thumb_func_start MOD08_0222A260
+MOD08_0222A260: ; 0x0222A260
+ push {r3, r4, r5, lr}
+ sub sp, #0x58
+ ldr r4, _0222A290 ; =0x0222D4E0
+ add r5, r0, #0
+ add r3, sp, #0
+ mov r2, #0xb
+_0222A26C:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222A26C
+ sub r0, r5, #5
+ cmp r0, #0x16
+ blo _0222A284
+ bl ErrorHandling
+ add sp, #0x58
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0222A284:
+ lsl r1, r0, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ add sp, #0x58
+ pop {r3, r4, r5, pc}
+ nop
+_0222A290: .word 0x0222D4E0
+
+ thumb_func_start MOD08_0222A294
+MOD08_0222A294: ; 0x0222A294
+ push {r3, lr}
+ add r3, r1, #0
+ ldr r1, [r0]
+ mov r2, #0
+ bl MOD08_0222A2B4
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A2A4
+MOD08_0222A2A4: ; 0x0222A2A4
+ push {r3, lr}
+ add r3, r1, #0
+ ldr r1, [r0, #4]
+ mov r2, #1
+ bl MOD08_0222A2B4
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A2B4
+MOD08_0222A2B4: ; 0x0222A2B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ add r7, r2, #0
+ str r3, [sp, #0x10]
+ bl FUN_020080E0
+ ldr r0, [r5, #4]
+ lsl r1, r0, #1
+ add r1, r5, r1
+ ldrh r6, [r1, #0x28]
+ add r1, r5, r0
+ add r1, #0x30
+ ldrb r1, [r1]
+ add r2, r5, r0
+ add r2, #0x38
+ str r1, [sp, #0x1c]
+ add r1, r5, r0
+ lsl r0, r0, #2
+ ldrb r2, [r2]
+ add r0, r5, r0
+ add r1, #0x34
+ ldr r0, [r0, #0x3c]
+ ldrb r1, [r1]
+ str r2, [sp, #0x18]
+ str r0, [sp, #0x14]
+ cmp r7, #0
+ beq _0222A30A
+ add r0, r5, r4
+ add r0, #0x4c
+ ldrb r2, [r0]
+ mov r0, #1
+ tst r0, r2
+ beq _0222A306
+ mov r4, #0
+ b _0222A31C
+_0222A306:
+ mov r4, #2
+ b _0222A31C
+_0222A30A:
+ add r0, r5, r4
+ add r0, #0x4c
+ ldrb r2, [r0]
+ mov r0, #1
+ tst r0, r2
+ beq _0222A31A
+ mov r4, #2
+ b _0222A31C
+_0222A31A:
+ mov r4, #0
+_0222A31C:
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x14]
+ lsl r1, r6, #0x10
+ lsl r2, r2, #0x18
+ lsl r3, r4, #0x18
+ str r0, [sp, #8]
+ add r0, sp, #0x28
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068C00
+ ldr r0, [r5]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020081C0
+ add r7, r0, #0
+ add r3, sp, #0x28
+ add r2, r7, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020080D0
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ ldrh r0, [r7, #6]
+ str r0, [sp, #0xc]
+ ldr r3, [r5]
+ ldrh r0, [r7]
+ lsl r3, r3, #2
+ add r3, r5, r3
+ ldr r3, [r3, #8]
+ ldrh r1, [r7, #2]
+ ldr r3, [r3]
+ bl FUN_02012560
+ ldr r1, [r5]
+ ldr r3, [sp, #0x18]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ lsl r2, r4, #0x18
+ lsl r3, r3, #0x18
+ ldrh r0, [r7]
+ ldr r1, [r1, #8]
+ lsr r2, r2, #0x18
+ str r0, [r1, #4]
+ ldr r1, [r5]
+ ldrh r0, [r7, #4]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r1, [r1, #8]
+ lsr r3, r3, #0x18
+ str r0, [r1, #8]
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp]
+ lsl r0, r6, #0x10
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x18
+ bl FUN_02068E88
+ ldr r1, [r5]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r1, [r1, #8]
+ str r0, [r1, #0xc]
+ ldr r0, [r5]
+ lsl r1, r0, #2
+ add r1, r5, r1
+ ldr r1, [r1, #8]
+ add r0, r5, r0
+ ldr r1, [r1, #0xc]
+ add r0, #0x4c
+ lsl r1, r1, #0x18
+ asr r7, r1, #0x18
+ ldrb r0, [r0]
+ mov r1, #1
+ bl MOD08_0222A6A4
+ str r0, [sp, #0x20]
+ ldr r0, [r5]
+ ldr r2, [sp, #0x20]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ mov r1, #1
+ add r2, r2, r7
+ bl FUN_02007558
+ cmp r4, #2
+ bne _0222A48E
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x24
+ add r0, #2
+ mov r1, #0x8a
+ mov r2, #0
+ add r3, r6, #0
+ bl FUN_02006548
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x24
+ add r0, #1
+ mov r1, #0x90
+ mov r2, #0
+ add r3, r6, #0
+ bl FUN_02006548
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x24
+ mov r1, #0x8e
+ mov r2, #0
+ add r3, r6, #0
+ bl FUN_02006548
+ ldr r0, [r5]
+ add r2, sp, #0x24
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldrb r2, [r2]
+ ldr r0, [r0, #0x18]
+ mov r1, #0x2e
+ bl FUN_02007558
+ ldr r0, [r5]
+ ldr r2, [sp, #0x20]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r2, #0x24
+ ldr r0, [r0, #0x18]
+ mov r1, #0x14
+ str r2, [sp, #0x20]
+ bl FUN_02007558
+ ldr r0, [r5]
+ add r3, sp, #0x24
+ lsl r0, r0, #2
+ mov r2, #1
+ add r0, r5, r0
+ ldrsb r2, [r3, r2]
+ ldr r0, [r0, #0x18]
+ mov r1, #0x15
+ bl FUN_02007558
+ ldr r0, [r5]
+ mov r2, #0x24
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ mov r1, #0x16
+ sub r2, r2, r7
+ bl FUN_02007558
+ ldr r0, [r5]
+ add r3, sp, #0x24
+ lsl r0, r0, #2
+ mov r2, #2
+ add r0, r5, r0
+ ldrsb r2, [r3, r2]
+ ldr r0, [r0, #0x18]
+ mov r1, #0x29
+ bl FUN_02007558
+_0222A48E:
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A494
+MOD08_0222A494: ; 0x0222A494
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ ldr r0, [r5]
+ str r1, [sp, #0x10]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_0200813C
+ ldr r0, [r5]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020081C0
+ add r4, r0, #0
+ ldr r0, [r5]
+ lsl r1, r0, #1
+ add r1, r5, r1
+ ldrh r1, [r1, #0x28]
+ lsl r3, r0, #2
+ str r1, [sp, #0x1c]
+ add r1, r5, r0
+ add r1, #0x30
+ ldrb r1, [r1]
+ str r1, [sp, #0x18]
+ add r1, r5, r0
+ add r1, #0x38
+ ldrb r1, [r1]
+ add r0, r5, r0
+ add r0, #0x4c
+ str r1, [sp, #0x14]
+ add r1, r5, r3
+ ldr r7, [r1, #0x3c]
+ ldrb r1, [r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0222A4E6
+ mov r6, #2
+ b _0222A4E8
+_0222A4E6:
+ mov r6, #0
+_0222A4E8:
+ str r7, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r6, [sp, #8]
+ ldrh r0, [r4, #6]
+ add r3, r5, r3
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #0xc]
+ ldr r3, [r3, #8]
+ ldrh r0, [r4]
+ ldrh r1, [r4, #2]
+ ldr r3, [r3]
+ bl FUN_02012560
+ ldr r1, [r5]
+ ldrh r0, [r4]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r1, [r1, #8]
+ ldr r3, [sp, #0x14]
+ str r0, [r1, #4]
+ ldr r1, [r5]
+ lsl r2, r6, #0x18
+ lsl r1, r1, #2
+ add r1, r5, r1
+ lsl r3, r3, #0x18
+ ldrh r0, [r4, #4]
+ ldr r1, [r1, #8]
+ lsr r2, r2, #0x18
+ str r0, [r1, #8]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x18
+ str r7, [sp]
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+ ldr r1, [r5]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r1, [r1, #8]
+ str r0, [r1, #0xc]
+ ldr r0, [r5]
+ mov r1, #1
+ lsl r4, r0, #2
+ add r0, r5, r0
+ add r0, #0x4c
+ ldrb r0, [r0]
+ bl MOD08_0222A6A4
+ add r1, r5, r4
+ add r2, r0, #0
+ ldr r0, [r1, #8]
+ ldr r3, [r0, #0xc]
+ ldr r0, [r1, #0x18]
+ mov r1, #1
+ add r2, r3, r2
+ bl FUN_02007558
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222A568
+MOD08_0222A568: ; 0x0222A568
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r1, #0
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020080E0
+ mov r0, #0x75
+ add r2, sp, #0
+ strh r0, [r2, #4]
+ mov r0, #0xd2
+ strh r0, [r2, #8]
+ mov r0, #0
+ strh r0, [r2, #0xa]
+ strb r0, [r2, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5]
+ add r1, r5, r0
+ add r1, #0x4c
+ ldrb r3, [r1]
+ mov r1, #1
+ tst r1, r3
+ beq _0222A5A4
+ mov r1, #0xd1
+ strh r1, [r2, #6]
+ mov r4, #0x87
+ b _0222A5AA
+_0222A5A4:
+ mov r1, #0xd0
+ strh r1, [r2, #6]
+ mov r4, #0x86
+_0222A5AA:
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020081C0
+ add r7, r0, #0
+ add r3, sp, #4
+ add r2, r7, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020080D0
+ ldr r3, [r5]
+ ldrh r0, [r7]
+ lsl r3, r3, #2
+ add r3, r5, r3
+ ldr r3, [r3, #8]
+ ldrh r1, [r7, #2]
+ ldr r3, [r3]
+ add r2, r6, #0
+ bl FUN_02012420
+ ldr r2, [r5]
+ add r1, sp, #0
+ lsl r2, r2, #2
+ add r2, r5, r2
+ ldrh r0, [r1, #4]
+ ldr r2, [r2, #8]
+ str r0, [r2, #4]
+ ldr r0, [r5]
+ ldrh r1, [r1, #8]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #8]
+ add r2, r4, #0
+ str r1, [r0, #8]
+ add r0, sp, #0
+ mov r1, #0x79
+ bl LoadFromNARC
+ add r0, sp, #0
+ ldrb r1, [r0]
+ ldr r0, [r5]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #8]
+ str r1, [r0, #0xc]
+ ldr r0, [r5]
+ mov r1, #1
+ lsl r4, r0, #2
+ add r0, r5, r0
+ add r0, #0x4c
+ ldrb r0, [r0]
+ bl MOD08_0222A6A4
+ add r2, r5, r4
+ ldr r1, [r2, #8]
+ ldr r1, [r1, #0xc]
+ add r4, r1, r0
+ ldr r0, [r2, #0x18]
+ mov r1, #1
+ add r2, r4, #0
+ bl FUN_02007558
+ ldr r1, [r5]
+ mov r2, #1
+ add r0, r5, r1
+ add r0, #0x4c
+ ldrb r0, [r0]
+ tst r0, r2
+ beq _0222A69E
+ lsl r0, r1, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ mov r1, #0x2e
+ bl FUN_02007558
+ ldr r0, [r5]
+ add r2, sp, #0
+ ldrb r3, [r2]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r2, #0x24
+ sub r2, r2, r3
+ ldr r0, [r0, #0x18]
+ mov r1, #0x14
+ add r2, r4, r2
+ bl FUN_02007558
+ ldr r0, [r5]
+ mov r1, #0x15
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r5]
+ add r2, sp, #0
+ lsl r0, r0, #2
+ ldrb r3, [r2]
+ add r0, r5, r0
+ mov r2, #0x24
+ ldr r0, [r0, #0x18]
+ mov r1, #0x16
+ sub r2, r2, r3
+ bl FUN_02007558
+ ldr r0, [r5]
+ mov r1, #0x29
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ mov r2, #0
+ bl FUN_02007558
+_0222A69E:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A6A4
+MOD08_0222A6A4: ; 0x0222A6A4
+ cmp r1, #0
+ bne _0222A6B0
+ lsl r1, r0, #2
+ ldr r0, _0222A6C0 ; =0x0222D538
+ ldrsh r0, [r0, r1]
+ bx lr
+_0222A6B0:
+ mov r2, #6
+ mul r2, r0
+ ldr r0, _0222A6C4 ; =0x0222D550
+ lsl r1, r1, #1
+ add r0, r0, r2
+ ldrsh r0, [r1, r0]
+ bx lr
+ nop
+_0222A6C0: .word 0x0222D538
+_0222A6C4: .word 0x0222D550
+
+ thumb_func_start MOD08_0222A6C8
+MOD08_0222A6C8: ; 0x0222A6C8
+ ldr r1, _0222A75C ; =0x0000013B
+ cmp r0, r1
+ bhi _0222A6F6
+ bhs _0222A754
+ cmp r0, #0x7d
+ bhi _0222A6E4
+ bhs _0222A754
+ cmp r0, #0x63
+ bhi _0222A6DE
+ beq _0222A754
+ b _0222A758
+_0222A6DE:
+ cmp r0, #0x78
+ beq _0222A754
+ b _0222A758
+_0222A6E4:
+ cmp r0, #0xc9
+ bhi _0222A6F0
+ bhs _0222A754
+ cmp r0, #0x9f
+ beq _0222A754
+ b _0222A758
+_0222A6F0:
+ cmp r0, #0xd7
+ beq _0222A754
+ b _0222A758
+_0222A6F6:
+ add r2, r1, #0
+ add r2, #0x4a
+ cmp r0, r2
+ bhi _0222A71E
+ add r2, r1, #0
+ add r2, #0x4a
+ cmp r0, r2
+ bhs _0222A754
+ add r2, r1, #0
+ add r2, #0x14
+ cmp r0, r2
+ bhi _0222A716
+ add r1, #0x14
+ cmp r0, r1
+ beq _0222A754
+ b _0222A758
+_0222A716:
+ add r1, #0x2c
+ cmp r0, r1
+ beq _0222A754
+ b _0222A758
+_0222A71E:
+ add r2, r1, #0
+ add r2, #0x98
+ cmp r0, r2
+ bhi _0222A74E
+ add r2, r1, #0
+ add r2, #0x98
+ cmp r0, r2
+ bhs _0222A754
+ add r2, r1, #0
+ add r2, #0x5c
+ cmp r0, r2
+ bhi _0222A758
+ add r2, r1, #0
+ add r2, #0x5b
+ cmp r0, r2
+ blo _0222A758
+ add r2, r1, #0
+ add r2, #0x5b
+ cmp r0, r2
+ beq _0222A754
+ add r1, #0x5c
+ cmp r0, r1
+ beq _0222A754
+ b _0222A758
+_0222A74E:
+ add r1, #0x99
+ cmp r0, r1
+ bne _0222A758
+_0222A754:
+ mov r0, #0
+ bx lr
+_0222A758:
+ mov r0, #1
+ bx lr
+ .align 2, 0
+_0222A75C: .word 0x0000013B
+
+ .section .data
+ ; 0x0222A760
+ .incbin "baserom.nds", 0x1A0100, 0x2E60
diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s
new file mode 100644
index 00000000..7e5ad9c1
--- /dev/null
+++ b/arm9/modules/09/asm/module_09.s
@@ -0,0 +1,17663 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD09_02211E60
+MOD09_02211E60: ; 0x02211E60
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r0, [r5, #0x11]
+ cmp r0, #5
+ bls _02211E6E
+ mov r0, #0
+ strb r0, [r5, #0x11]
+_02211E6E:
+ ldr r0, _02211ED8 ; =MOD09_02211EEC
+ ldr r1, _02211EDC ; =0x00002090
+ ldr r3, [r5, #0xc]
+ mov r2, #0
+ bl FUN_020061E8
+ bl FUN_0201B6C8
+ ldr r2, _02211EDC ; =0x00002090
+ add r4, r0, #0
+ mov r1, #0
+ bl Call_FillMemWithValue
+ str r5, [r4]
+ ldr r0, [r5, #8]
+ bl FUN_0222FF68
+ mov r1, #0x79
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r5, #8]
+ bl FUN_022300CC
+ mov r1, #0x7a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, _02211EE0 ; =0x00002078
+ mov r1, #0
+ strb r1, [r4, r0]
+ ldrb r1, [r5, #0x11]
+ sub r0, r0, #2
+ strb r1, [r4, r0]
+ ldr r0, [r5, #8]
+ bl FUN_02231238
+ ldr r3, _02211EE4 ; =0x00002077
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1c
+ ldrb r1, [r4, r3]
+ mov r2, #0xf0
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r0, r1
+ strb r0, [r4, r3]
+ ldr r0, [r5, #8]
+ ldr r1, [r5, #0x28]
+ bl FUN_02230260
+ ldr r1, _02211EE8 ; =0x0000208F
+ strb r0, [r4, r1]
+ pop {r3, r4, r5, pc}
+ nop
+_02211ED8: .word MOD09_02211EEC
+_02211EDC: .word 0x00002090
+_02211EE0: .word 0x00002078
+_02211EE4: .word 0x00002077
+_02211EE8: .word 0x0000208F
+
+ thumb_func_start MOD09_02211EEC
+MOD09_02211EEC: ; 0x02211EEC
+ push {r4, lr}
+ ldr r2, _02212094 ; =0x00002078
+ add r4, r1, #0
+ ldrb r2, [r4, r2]
+ cmp r2, #0x1a
+ bls _02211EFA
+ b _0221207C
+_02211EFA:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02211F06: ; jump table
+ .short _02211F3C - _02211F06 - 2 ; case 0
+ .short _02211F48 - _02211F06 - 2 ; case 1
+ .short _02211F54 - _02211F06 - 2 ; case 2
+ .short _02211F60 - _02211F06 - 2 ; case 3
+ .short _02211F6C - _02211F06 - 2 ; case 4
+ .short _02211F78 - _02211F06 - 2 ; case 5
+ .short _02211F84 - _02211F06 - 2 ; case 6
+ .short _02211F90 - _02211F06 - 2 ; case 7
+ .short _02211F9C - _02211F06 - 2 ; case 8
+ .short _02211FA8 - _02211F06 - 2 ; case 9
+ .short _02211FB4 - _02211F06 - 2 ; case 10
+ .short _02211FC0 - _02211F06 - 2 ; case 11
+ .short _02211FCC - _02211F06 - 2 ; case 12
+ .short _02211FD8 - _02211F06 - 2 ; case 13
+ .short _02211FE4 - _02211F06 - 2 ; case 14
+ .short _02211FF0 - _02211F06 - 2 ; case 15
+ .short _02211FFC - _02211F06 - 2 ; case 16
+ .short _02212008 - _02211F06 - 2 ; case 17
+ .short _02212014 - _02211F06 - 2 ; case 18
+ .short _02212020 - _02211F06 - 2 ; case 19
+ .short _0221202C - _02211F06 - 2 ; case 20
+ .short _02212038 - _02211F06 - 2 ; case 21
+ .short _02212044 - _02211F06 - 2 ; case 22
+ .short _02212050 - _02211F06 - 2 ; case 23
+ .short _0221205C - _02211F06 - 2 ; case 24
+ .short _02212068 - _02211F06 - 2 ; case 25
+ .short _02212074 - _02211F06 - 2 ; case 26
+_02211F3C:
+ add r0, r4, #0
+ bl MOD09_0221209C
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02211F48:
+ add r0, r4, #0
+ bl MOD09_022121A0
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02211F54:
+ add r0, r4, #0
+ bl MOD09_0221236C
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02211F60:
+ add r0, r4, #0
+ bl MOD09_0221241C
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02211F6C:
+ add r0, r4, #0
+ bl MOD09_022124DC
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02211F78:
+ add r0, r4, #0
+ bl MOD09_022125E0
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02211F84:
+ add r0, r4, #0
+ bl MOD09_0221296C
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02211F90:
+ add r0, r4, #0
+ bl MOD09_02212978
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02211F9C:
+ add r0, r4, #0
+ bl MOD09_02212984
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02211FA8:
+ add r0, r4, #0
+ bl MOD09_02212990
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02211FB4:
+ add r0, r4, #0
+ bl MOD09_0221299C
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02211FC0:
+ add r0, r4, #0
+ bl MOD09_022129A8
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02211FCC:
+ add r0, r4, #0
+ bl MOD09_022129CC
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02211FD8:
+ add r0, r4, #0
+ bl MOD09_022129F8
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02211FE4:
+ add r0, r4, #0
+ bl MOD09_02212A1C
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02211FF0:
+ add r0, r4, #0
+ bl MOD09_02212A5C
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02211FFC:
+ add r0, r4, #0
+ bl MOD09_02212A74
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02212008:
+ add r0, r4, #0
+ bl MOD09_02212A88
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02212014:
+ add r0, r4, #0
+ bl MOD09_02212AA4
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02212020:
+ add r0, r4, #0
+ bl MOD09_02212658
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_0221202C:
+ add r0, r4, #0
+ bl MOD09_0221274C
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02212038:
+ add r0, r4, #0
+ bl MOD09_02212868
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02212044:
+ add r0, r4, #0
+ bl MOD09_02212ACC
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02212050:
+ add r0, r4, #0
+ bl MOD09_02212AE4
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_0221205C:
+ add r0, r4, #0
+ bl MOD09_02212C8C
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02212068:
+ add r0, r4, #0
+ bl MOD09_02212DB8
+ ldr r1, _02212094 ; =0x00002078
+ strb r0, [r4, r1]
+ b _0221207C
+_02212074:
+ bl MOD09_02212DE4
+ cmp r0, #1
+ beq _02212090
+_0221207C:
+ add r0, r4, #0
+ bl MOD09_02217580
+ ldr r0, _02212098 ; =0x00001FB4
+ ldr r0, [r4, r0]
+ bl FUN_0200BC1C
+ add r0, r4, #0
+ bl MOD09_02218218
+_02212090:
+ pop {r4, pc}
+ nop
+_02212094: .word 0x00002078
+_02212098: .word 0x00001FB4
+
+ thumb_func_start MOD09_0221209C
+MOD09_0221209C: ; 0x0221209C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, _02212190 ; =0x04001050
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, [r5]
+ add r0, #0x35
+ ldrb r0, [r0]
+ cmp r0, #3
+ ldr r0, _02212194 ; =0x0000207A
+ bne _022120BC
+ mov r1, #6
+ strb r1, [r5, r0]
+ mov r4, #0x13
+ b _022120C0
+_022120BC:
+ strb r1, [r5, r0]
+ mov r4, #1
+_022120C0:
+ ldr r0, [r5]
+ ldr r0, [r0, #0xc]
+ bl MOD09_0221AC04
+ ldr r1, _02212198 ; =0x00002088
+ str r0, [r5, r1]
+ add r0, r5, #0
+ bl MOD09_022131C8
+ add r0, r5, #0
+ bl MOD09_02212E4C
+ add r0, r5, #0
+ bl MOD09_02212F8C
+ add r0, r5, #0
+ bl MOD09_02213138
+ ldr r1, [r5]
+ mov r0, #2
+ ldr r1, [r1, #0xc]
+ bl FUN_02002C50
+ ldr r1, _02212194 ; =0x0000207A
+ add r0, r5, #0
+ ldrb r1, [r5, r1]
+ bl MOD09_02213968
+ ldr r1, _02212194 ; =0x0000207A
+ add r0, r5, #0
+ ldrb r1, [r5, r1]
+ bl MOD09_022182E8
+ ldr r1, _02212194 ; =0x0000207A
+ add r0, r5, #0
+ ldrb r1, [r5, r1]
+ bl MOD09_02218640
+ add r0, r5, #0
+ bl MOD09_02216734
+ ldr r1, _02212194 ; =0x0000207A
+ add r0, r5, #0
+ ldrb r1, [r5, r1]
+ bl MOD09_02216D80
+ add r0, r5, #0
+ bl MOD09_02213CB8
+ ldr r1, _02212194 ; =0x0000207A
+ add r0, r5, #0
+ ldrb r1, [r5, r1]
+ bl MOD09_02213E28
+ ldr r0, [r5]
+ add r0, #0x32
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02212140
+ ldr r0, _02212198 ; =0x00002088
+ mov r1, #1
+ ldr r0, [r5, r0]
+ bl MOD09_0221AC2C
+_02212140:
+ ldr r0, _02212194 ; =0x0000207A
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ bne _0221215A
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD09_02213BDC
+ cmp r0, #1
+ bne _0221215A
+ ldr r0, [r5]
+ mov r1, #1
+ strb r1, [r0, #0x11]
+_0221215A:
+ ldr r1, _02212194 ; =0x0000207A
+ add r0, r5, #0
+ ldrb r1, [r5, r1]
+ bl MOD09_02217838
+ ldr r1, _02212194 ; =0x0000207A
+ add r0, r5, #0
+ ldrb r1, [r5, r1]
+ bl MOD09_02213710
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ mov r1, #0xa
+ add r3, r1, #0
+ ldr r0, [r5, r0]
+ ldr r2, _0221219C ; =0x0000FFFF
+ sub r3, #0x12
+ bl FUN_02003210
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02212190: .word 0x04001050
+_02212194: .word 0x0000207A
+_02212198: .word 0x00002088
+_0221219C: .word 0x0000FFFF
+
+ thumb_func_start MOD09_022121A0
+MOD09_022121A0: ; 0x022121A0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _022121B6
+ mov r0, #1
+ pop {r4, pc}
+_022121B6:
+ add r0, r4, #0
+ bl MOD09_0221347C
+ cmp r0, #1
+ bne _0221220E
+ ldr r1, [r4]
+ ldrb r0, [r1, #0x11]
+ cmp r0, #6
+ bne _022121E2
+ add r1, #0x35
+ ldrb r0, [r1]
+ cmp r0, #1
+ beq _0221220E
+ ldr r0, _02212214 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD09_022181C8
+ mov r0, #0x19
+ pop {r4, pc}
+_022121E2:
+ ldr r0, _02212214 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldrb r1, [r1, #0x11]
+ bl MOD09_022181C8
+ ldr r0, [r4]
+ add r0, #0x35
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _02212204
+ add r0, r4, #0
+ bl MOD09_0221221C
+ pop {r4, pc}
+_02212204:
+ ldr r0, _02212218 ; =0x00002079
+ mov r1, #7
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r4, pc}
+_0221220E:
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_02212214: .word 0x000005DD
+_02212218: .word 0x00002079
+
+ thumb_func_start MOD09_0221221C
+MOD09_0221221C: ; 0x0221221C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r4, [r5]
+ ldrb r1, [r4, #0x11]
+ cmp r1, #0
+ bne _0221222E
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ bne _02212238
+_0221222E:
+ cmp r1, #1
+ bne _02212254
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _02212254
+_02212238:
+ add r0, r5, #0
+ bl MOD09_022166D0
+ add r0, r5, #0
+ bl MOD09_02216314
+ ldr r0, [r5]
+ mov r1, #6
+ strb r1, [r0, #0x11]
+ ldr r0, _02212360 ; =0x00002079
+ mov r1, #0x19
+ strb r1, [r5, r0]
+ mov r0, #0x11
+ pop {r3, r4, r5, pc}
+_02212254:
+ ldrh r0, [r4, #0x22]
+ ldr r2, [r4, #0xc]
+ mov r1, #0x24
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _0221228A
+ ldrh r0, [r4, #0x22]
+ ldr r2, [r4, #0xc]
+ mov r1, #0x25
+ bl FUN_0206E7B8
+ cmp r0, #0
+ bne _0221228A
+ ldrb r1, [r4, #0x11]
+ mov r0, #0x50
+ mul r0, r1
+ add r0, r5, r0
+ ldrb r0, [r0, #0x1b]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bne _0221228A
+ ldr r0, _02212360 ; =0x00002079
+ mov r1, #0xd
+ strb r1, [r5, r0]
+ mov r0, #0x16
+ pop {r3, r4, r5, pc}
+_0221228A:
+ ldrh r0, [r4, #0x22]
+ mov r3, #0
+ str r0, [sp]
+ ldrb r2, [r4, #0x11]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x28]
+ add r2, r4, r2
+ add r2, #0x2c
+ ldrb r2, [r2]
+ bl FUN_02230370
+ cmp r0, #1
+ bne _0221233A
+ ldrh r0, [r4, #0x22]
+ ldr r2, [r4, #0xc]
+ mov r1, #0x25
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022122BA
+ ldr r0, _02212360 ; =0x00002079
+ mov r1, #0xd
+ strb r1, [r5, r0]
+ b _02212330
+_022122BA:
+ ldrb r1, [r4, #0x11]
+ add r0, r5, #0
+ bl MOD09_02213620
+ cmp r0, #1
+ bne _0221232A
+ ldrh r0, [r4, #0x22]
+ ldr r2, [r4, #0xc]
+ mov r1, #0x17
+ bl FUN_0206E7B8
+ cmp r0, #0
+ bne _0221232A
+ add r2, r4, #0
+ add r2, #0x33
+ ldrh r1, [r4, #0x22]
+ ldrb r2, [r2]
+ ldr r0, [r4, #8]
+ ldr r3, [r4, #0xc]
+ bl MOD09_02213C84
+ ldrb r2, [r4, #0x11]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x28]
+ add r2, r4, r2
+ add r2, #0x2c
+ ldrb r2, [r2]
+ bl FUN_02230014
+ ldrb r2, [r4, #0x11]
+ mov r1, #0x50
+ add r3, r2, #0
+ mul r3, r1
+ add r2, r5, r3
+ str r0, [r2, #4]
+ ldrb r0, [r4, #0x11]
+ mov r2, #0
+ mul r1, r0
+ add r0, r5, r1
+ ldr r0, [r0, #4]
+ mov r1, #0xa2
+ bl FUN_020671BC
+ strh r0, [r4, #0x20]
+ ldrb r1, [r4, #0x11]
+ mov r0, #0x50
+ ldrh r2, [r4, #0x20]
+ mul r0, r1
+ add r0, r5, r0
+ ldrh r0, [r0, #0x14]
+ mov r1, #0x19
+ sub r0, r2, r0
+ strh r0, [r4, #0x20]
+ ldr r0, _02212360 ; =0x00002079
+ strb r1, [r5, r0]
+ b _02212330
+_0221232A:
+ ldr r0, _02212360 ; =0x00002079
+ mov r1, #0x17
+ strb r1, [r5, r0]
+_02212330:
+ ldr r0, _02212364 ; =0x0000207C
+ mov r1, #0
+ strb r1, [r5, r0]
+ mov r0, #0x16
+ pop {r3, r4, r5, pc}
+_0221233A:
+ ldr r2, _02212368 ; =0x00001FA8
+ mov r1, #0x51
+ ldr r0, [r5, r2]
+ add r2, #8
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ add r0, r5, #0
+ bl MOD09_02216314
+ ldr r0, [r5]
+ mov r1, #6
+ strb r1, [r0, #0x11]
+ ldr r0, _02212360 ; =0x00002079
+ mov r1, #0x19
+ strb r1, [r5, r0]
+ mov r0, #0x11
+ pop {r3, r4, r5, pc}
+ nop
+_02212360: .word 0x00002079
+_02212364: .word 0x0000207C
+_02212368: .word 0x00001FA8
+
+ thumb_func_start MOD09_0221236C
+MOD09_0221236C: ; 0x0221236C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD09_022134F4
+ cmp r0, #3
+ bhi _0221240E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02212384: ; jump table
+ .short _0221238C - _02212384 - 2 ; case 0
+ .short _022123B2 - _02212384 - 2 ; case 1
+ .short _022123D4 - _02212384 - 2 ; case 2
+ .short _022123F6 - _02212384 - 2 ; case 3
+_0221238C:
+ ldr r0, _02212414 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD09_022181C8
+ add r0, r4, #0
+ bl MOD09_022139D4
+ cmp r0, #1
+ bne _022123A8
+ mov r0, #0x19
+ pop {r4, pc}
+_022123A8:
+ ldr r0, _02212418 ; =0x00002079
+ mov r1, #0xf
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r4, pc}
+_022123B2:
+ add r0, r4, #0
+ bl MOD09_02213B7C
+ cmp r0, #1
+ beq _0221240E
+ ldr r0, _02212414 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #8
+ bl MOD09_022181C8
+ ldr r0, _02212418 ; =0x00002079
+ mov r1, #8
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r4, pc}
+_022123D4:
+ add r0, r4, #0
+ bl MOD09_02213B7C
+ cmp r0, #1
+ beq _0221240E
+ ldr r0, _02212414 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD09_022181C8
+ ldr r0, _02212418 ; =0x00002079
+ mov r1, #9
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r4, pc}
+_022123F6:
+ ldr r0, _02212414 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD09_022181C8
+ ldr r0, _02212418 ; =0x00002079
+ mov r1, #6
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r4, pc}
+_0221240E:
+ mov r0, #2
+ pop {r4, pc}
+ nop
+_02212414: .word 0x000005DD
+_02212418: .word 0x00002079
+
+ thumb_func_start MOD09_0221241C
+MOD09_0221241C: ; 0x0221241C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD09_0221353C
+ cmp r0, #3
+ bhi _022124CC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02212434: ; jump table
+ .short _0221243C - _02212434 - 2 ; case 0
+ .short _0221246A - _02212434 - 2 ; case 1
+ .short _02212496 - _02212434 - 2 ; case 2
+ .short _022124AE - _02212434 - 2 ; case 3
+_0221243C:
+ ldr r1, [r4]
+ mov r2, #0
+ ldrb r1, [r1, #0x11]
+ add r0, r4, #0
+ mvn r2, r2
+ bl MOD09_02213658
+ cmp r0, #0xff
+ beq _022124CC
+ ldr r1, [r4]
+ strb r0, [r1, #0x11]
+ ldr r0, _022124D0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0xc
+ bl MOD09_022181C8
+ ldr r0, _022124D4 ; =0x00002079
+ mov r1, #0xe
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r4, pc}
+_0221246A:
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldrb r1, [r1, #0x11]
+ mov r2, #1
+ bl MOD09_02213658
+ cmp r0, #0xff
+ beq _022124CC
+ ldr r1, [r4]
+ strb r0, [r1, #0x11]
+ ldr r0, _022124D0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0xd
+ bl MOD09_022181C8
+ ldr r0, _022124D4 ; =0x00002079
+ mov r1, #0xe
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r4, pc}
+_02212496:
+ ldr r0, _022124D0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0xb
+ bl MOD09_022181C8
+ ldr r0, _022124D4 ; =0x00002079
+ mov r1, #9
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r4, pc}
+_022124AE:
+ ldr r0, _022124D0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD09_022181C8
+ ldr r0, _022124D8 ; =0x0000208C
+ mov r1, #1
+ strb r1, [r4, r0]
+ mov r1, #7
+ sub r0, #0x13
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r4, pc}
+_022124CC:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_022124D0: .word 0x000005DD
+_022124D4: .word 0x00002079
+_022124D8: .word 0x0000208C
+
+ thumb_func_start MOD09_022124DC
+MOD09_022124DC: ; 0x022124DC
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl MOD09_02213584
+ add r5, r0, #0
+ cmp r5, #7
+ bhi _022125CE
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022124F6: ; jump table
+ .short _02212506 - _022124F6 - 2 ; case 0
+ .short _02212506 - _022124F6 - 2 ; case 1
+ .short _02212506 - _022124F6 - 2 ; case 2
+ .short _02212506 - _022124F6 - 2 ; case 3
+ .short _0221253E - _022124F6 - 2 ; case 4
+ .short _0221256C - _022124F6 - 2 ; case 5
+ .short _02212598 - _022124F6 - 2 ; case 6
+ .short _022125B0 - _022124F6 - 2 ; case 7
+_02212506:
+ ldr r0, [r4]
+ ldrb r1, [r0, #0x11]
+ mov r0, #0x50
+ mul r0, r1
+ add r1, r4, r0
+ lsl r0, r5, #3
+ add r0, r1, r0
+ ldrh r0, [r0, #0x34]
+ cmp r0, #0
+ beq _022125CE
+ ldr r0, _022125D4 ; =0x000005DD
+ bl FUN_020054C8
+ add r1, r5, #0
+ add r1, #0xe
+ lsl r1, r1, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ bl MOD09_022181C8
+ ldr r0, [r4]
+ mov r1, #0xa
+ add r0, #0x34
+ strb r5, [r0]
+ ldr r0, _022125D8 ; =0x00002079
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r3, r4, r5, pc}
+_0221253E:
+ ldr r1, [r4]
+ mov r2, #0
+ ldrb r1, [r1, #0x11]
+ add r0, r4, #0
+ mvn r2, r2
+ bl MOD09_02213658
+ cmp r0, #0xff
+ beq _022125CE
+ ldr r1, [r4]
+ strb r0, [r1, #0x11]
+ ldr r0, _022125D4 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0xc
+ bl MOD09_022181C8
+ ldr r0, _022125D8 ; =0x00002079
+ mov r1, #0xe
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r3, r4, r5, pc}
+_0221256C:
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldrb r1, [r1, #0x11]
+ mov r2, #1
+ bl MOD09_02213658
+ cmp r0, #0xff
+ beq _022125CE
+ ldr r1, [r4]
+ strb r0, [r1, #0x11]
+ ldr r0, _022125D4 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0xd
+ bl MOD09_022181C8
+ ldr r0, _022125D8 ; =0x00002079
+ mov r1, #0xe
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r3, r4, r5, pc}
+_02212598:
+ ldr r0, _022125D4 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #9
+ bl MOD09_022181C8
+ ldr r0, _022125D8 ; =0x00002079
+ mov r1, #8
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r3, r4, r5, pc}
+_022125B0:
+ ldr r0, _022125D4 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD09_022181C8
+ ldr r0, _022125DC ; =0x0000208C
+ mov r1, #2
+ strb r1, [r4, r0]
+ mov r1, #7
+ sub r0, #0x13
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r3, r4, r5, pc}
+_022125CE:
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+ nop
+_022125D4: .word 0x000005DD
+_022125D8: .word 0x00002079
+_022125DC: .word 0x0000208C
+
+ thumb_func_start MOD09_022125E0
+MOD09_022125E0: ; 0x022125E0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl MOD09_022135CC
+ add r5, r0, #0
+ cmp r5, #4
+ bhi _0221264A
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022125FA: ; jump table
+ .short _02212604 - _022125FA - 2 ; case 0
+ .short _02212604 - _022125FA - 2 ; case 1
+ .short _02212604 - _022125FA - 2 ; case 2
+ .short _02212604 - _022125FA - 2 ; case 3
+ .short _02212632 - _022125FA - 2 ; case 4
+_02212604:
+ ldr r1, [r4]
+ add r0, r1, #0
+ add r0, #0x34
+ ldrb r0, [r0]
+ cmp r0, r5
+ beq _02212622
+ ldrb r1, [r1, #0x11]
+ mov r0, #0x50
+ mul r0, r1
+ add r1, r4, r0
+ lsl r0, r5, #3
+ add r0, r1, r0
+ ldrh r0, [r0, #0x34]
+ cmp r0, #0
+ beq _0221264A
+_02212622:
+ ldr r0, _02212650 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, [r4]
+ add r0, #0x34
+ strb r5, [r0]
+ mov r0, #0xa
+ pop {r3, r4, r5, pc}
+_02212632:
+ ldr r0, _02212650 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD09_022181C8
+ ldr r0, _02212654 ; =0x00002079
+ mov r1, #9
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r3, r4, r5, pc}
+_0221264A:
+ mov r0, #5
+ pop {r3, r4, r5, pc}
+ nop
+_02212650: .word 0x000005DD
+_02212654: .word 0x00002079
+
+ thumb_func_start MOD09_02212658
+MOD09_02212658: ; 0x02212658
+ push {r3, r4, r5, lr}
+ ldr r1, _02212734 ; =0x0221AFD8
+ add r4, r0, #0
+ bl MOD09_02213614
+ add r5, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ bne _02212682
+ ldr r0, _02212738 ; =0x00002088
+ ldr r0, [r4, r0]
+ bl MOD09_0221AD30
+ add r5, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r5, r0
+ bne _02212688
+ mov r5, #6
+ b _02212688
+_02212682:
+ add r0, r4, #0
+ bl MOD09_022178E4
+_02212688:
+ cmp r5, #6
+ bhi _02212730
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02212698: ; jump table
+ .short _022126A6 - _02212698 - 2 ; case 0
+ .short _022126A6 - _02212698 - 2 ; case 1
+ .short _022126A6 - _02212698 - 2 ; case 2
+ .short _022126A6 - _02212698 - 2 ; case 3
+ .short _022126A6 - _02212698 - 2 ; case 4
+ .short _022126D0 - _02212698 - 2 ; case 5
+ .short _02212710 - _02212698 - 2 ; case 6
+_022126A6:
+ lsl r0, r5, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, [r4]
+ add r0, #0x34
+ strb r1, [r0]
+ ldr r0, _0221273C ; =0x0000208D
+ strb r1, [r4, r0]
+ ldr r0, _02212740 ; =0x000005DD
+ bl FUN_020054C8
+ add r5, #0x17
+ lsl r1, r5, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ bl MOD09_022181C8
+ ldr r0, _02212744 ; =0x00002079
+ mov r1, #0xc
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r3, r4, r5, pc}
+_022126D0:
+ ldr r0, _02212748 ; =0x00002077
+ ldrb r3, [r4, r0]
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x1c
+ beq _02212730
+ mov r2, #0xf
+ add r1, r3, #0
+ bic r1, r2
+ lsl r2, r3, #0x1c
+ lsr r3, r2, #0x1c
+ mov r2, #1
+ eor r2, r3
+ lsl r2, r2, #0x18
+ lsr r3, r2, #0x18
+ mov r2, #0xf
+ and r2, r3
+ orr r1, r2
+ strb r1, [r4, r0]
+ add r0, #0x16
+ strb r5, [r4, r0]
+ ldr r0, _02212740 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x12
+ bl MOD09_022181C8
+ ldr r0, _02212744 ; =0x00002079
+ mov r1, #0xb
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r3, r4, r5, pc}
+_02212710:
+ ldr r0, [r4]
+ mov r1, #4
+ add r0, #0x34
+ strb r1, [r0]
+ ldr r0, _02212740 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD09_022181C8
+ ldr r0, _02212744 ; =0x00002079
+ mov r1, #0x19
+ strb r1, [r4, r0]
+ mov r0, #0x16
+ pop {r3, r4, r5, pc}
+_02212730:
+ mov r0, #0x13
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212734: .word 0x0221AFD8
+_02212738: .word 0x00002088
+_0221273C: .word 0x0000208D
+_02212740: .word 0x000005DD
+_02212744: .word 0x00002079
+_02212748: .word 0x00002077
+
+ thumb_func_start MOD09_0221274C
+MOD09_0221274C: ; 0x0221274C
+ push {r3, r4, r5, lr}
+ ldr r1, _02212850 ; =0x0221AEE0
+ add r5, r0, #0
+ bl MOD09_02213614
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02212776
+ ldr r0, _02212854 ; =0x00002088
+ ldr r0, [r5, r0]
+ bl MOD09_0221AD30
+ add r4, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ bne _0221277C
+ mov r4, #2
+ b _0221277C
+_02212776:
+ add r0, r5, #0
+ bl MOD09_022178E4
+_0221277C:
+ cmp r4, #0
+ beq _0221278A
+ cmp r4, #1
+ beq _022127E6
+ cmp r4, #2
+ beq _0221282C
+ b _0221284A
+_0221278A:
+ ldr r0, _02212858 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, _0221285C ; =0x00002077
+ ldrb r0, [r5, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ bne _022127A4
+ add r0, r5, #0
+ mov r1, #0x1c
+ bl MOD09_022181C8
+ b _022127AC
+_022127A4:
+ add r0, r5, #0
+ mov r1, #0x1d
+ bl MOD09_022181C8
+_022127AC:
+ add r0, r5, #0
+ bl MOD09_02213C0C
+ cmp r0, #1
+ bne _022127DC
+ add r0, r5, #0
+ bl MOD09_0221534C
+ ldr r0, _0221285C ; =0x00002077
+ ldrb r0, [r5, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ bne _022127CE
+ add r0, r5, #0
+ bl MOD09_02213C34
+ b _022127D4
+_022127CE:
+ add r0, r5, #0
+ bl MOD09_02213C6C
+_022127D4:
+ ldr r0, _02212860 ; =0x00002079
+ mov r1, #0x14
+ strb r1, [r5, r0]
+ b _022127E2
+_022127DC:
+ ldr r0, _02212860 ; =0x00002079
+ mov r1, #0x19
+ strb r1, [r5, r0]
+_022127E2:
+ mov r0, #0x16
+ pop {r3, r4, r5, pc}
+_022127E6:
+ ldr r0, _0221285C ; =0x00002077
+ ldrb r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ beq _0221284A
+ ldr r0, _02212858 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r5, #0
+ mov r1, #0x12
+ bl MOD09_022181C8
+ ldr r2, _0221285C ; =0x00002077
+ mov r1, #0xf
+ ldrb r3, [r5, r2]
+ add r0, r3, #0
+ bic r0, r1
+ lsl r1, r3, #0x1c
+ lsr r3, r1, #0x1c
+ mov r1, #1
+ eor r1, r3
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ mov r1, #0xf
+ and r1, r3
+ orr r0, r1
+ strb r0, [r5, r2]
+ add r0, r2, #0
+ add r0, #0x17
+ strb r4, [r5, r0]
+ mov r1, #0xc
+ add r0, r2, #2
+ strb r1, [r5, r0]
+ mov r0, #0x16
+ pop {r3, r4, r5, pc}
+_0221282C:
+ ldr r0, _02212858 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD09_022181C8
+ ldr r0, _02212864 ; =0x0000208E
+ mov r1, #0
+ strb r1, [r5, r0]
+ mov r1, #0xb
+ sub r0, #0x15
+ strb r1, [r5, r0]
+ mov r0, #0x16
+ pop {r3, r4, r5, pc}
+_0221284A:
+ mov r0, #0x14
+ pop {r3, r4, r5, pc}
+ nop
+_02212850: .word 0x0221AEE0
+_02212854: .word 0x00002088
+_02212858: .word 0x000005DD
+_0221285C: .word 0x00002077
+_02212860: .word 0x00002079
+_02212864: .word 0x0000208E
+
+ thumb_func_start MOD09_02212868
+MOD09_02212868: ; 0x02212868
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ ldr r1, _02212954 ; =0x0221AF30
+ add r4, r0, #0
+ ldr r6, [r4]
+ bl MOD09_02213614
+ add r5, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ bne _02212896
+ ldr r0, _02212958 ; =0x00002088
+ ldr r0, [r4, r0]
+ bl MOD09_0221AD30
+ add r5, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r5, r0
+ bne _0221289C
+ mov r5, #4
+ b _0221289C
+_02212896:
+ add r0, r4, #0
+ bl MOD09_022178E4
+_0221289C:
+ cmp r5, #4
+ bhi _0221294E
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022128AC: ; jump table
+ .short _022128B6 - _022128AC - 2 ; case 0
+ .short _022128B6 - _022128AC - 2 ; case 1
+ .short _022128B6 - _022128AC - 2 ; case 2
+ .short _022128B6 - _022128AC - 2 ; case 3
+ .short _02212934 - _022128AC - 2 ; case 4
+_022128B6:
+ ldrb r1, [r6, #0x11]
+ mov r0, #0x50
+ mul r0, r1
+ add r1, r4, r0
+ lsl r0, r5, #3
+ add r0, r1, r0
+ ldrh r0, [r0, #0x34]
+ cmp r0, #0
+ beq _0221294E
+ ldr r0, [r4]
+ add r0, #0x34
+ strb r5, [r0]
+ ldr r0, _0221295C ; =0x000005DD
+ bl FUN_020054C8
+ add r1, r5, #0
+ add r1, #0x13
+ lsl r1, r1, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ bl MOD09_022181C8
+ ldrh r0, [r6, #0x22]
+ add r3, r5, #0
+ str r0, [sp]
+ ldrb r2, [r6, #0x11]
+ ldr r0, [r6, #8]
+ ldr r1, [r6, #0x28]
+ add r2, r6, r2
+ add r2, #0x2c
+ ldrb r2, [r2]
+ bl FUN_02230370
+ cmp r0, #1
+ bne _0221290E
+ ldr r0, _02212960 ; =0x0000207C
+ mov r1, #0
+ strb r1, [r4, r0]
+ mov r1, #0x17
+ sub r0, r0, #3
+ strb r1, [r4, r0]
+ add sp, #4
+ mov r0, #0x16
+ pop {r3, r4, r5, r6, pc}
+_0221290E:
+ ldr r2, _02212964 ; =0x00001FA8
+ mov r1, #0x51
+ ldr r0, [r4, r2]
+ add r2, #8
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ add r0, r4, #0
+ bl MOD09_02216314
+ ldr r0, [r4]
+ mov r1, #6
+ strb r1, [r0, #0x11]
+ ldr r0, _02212968 ; =0x00002079
+ mov r1, #0x19
+ strb r1, [r4, r0]
+ add sp, #4
+ mov r0, #0x11
+ pop {r3, r4, r5, r6, pc}
+_02212934:
+ ldr r0, _0221295C ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD09_022181C8
+ ldr r0, _02212968 ; =0x00002079
+ mov r1, #6
+ strb r1, [r4, r0]
+ add sp, #4
+ mov r0, #0x16
+ pop {r3, r4, r5, r6, pc}
+_0221294E:
+ mov r0, #0x15
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02212954: .word 0x0221AF30
+_02212958: .word 0x00002088
+_0221295C: .word 0x000005DD
+_02212960: .word 0x0000207C
+_02212964: .word 0x00001FA8
+_02212968: .word 0x00002079
+
+ thumb_func_start MOD09_0221296C
+MOD09_0221296C: ; 0x0221296C
+ push {r3, lr}
+ mov r1, #0
+ bl MOD09_022138F0
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD09_02212978
+MOD09_02212978: ; 0x02212978
+ push {r3, lr}
+ mov r1, #1
+ bl MOD09_022138F0
+ mov r0, #2
+ pop {r3, pc}
+
+ thumb_func_start MOD09_02212984
+MOD09_02212984: ; 0x02212984
+ push {r3, lr}
+ mov r1, #2
+ bl MOD09_022138F0
+ mov r0, #3
+ pop {r3, pc}
+
+ thumb_func_start MOD09_02212990
+MOD09_02212990: ; 0x02212990
+ push {r3, lr}
+ mov r1, #3
+ bl MOD09_022138F0
+ mov r0, #4
+ pop {r3, pc}
+
+ thumb_func_start MOD09_0221299C
+MOD09_0221299C: ; 0x0221299C
+ push {r3, lr}
+ mov r1, #4
+ bl MOD09_022138F0
+ mov r0, #5
+ pop {r3, pc}
+
+ thumb_func_start MOD09_022129A8
+MOD09_022129A8: ; 0x022129A8
+ push {r3, lr}
+ ldr r1, _022129C8 ; =0x00002077
+ ldrb r1, [r0, r1]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ bne _022129BC
+ mov r1, #6
+ bl MOD09_022138F0
+ b _022129C2
+_022129BC:
+ mov r1, #8
+ bl MOD09_022138F0
+_022129C2:
+ mov r0, #0x13
+ pop {r3, pc}
+ nop
+_022129C8: .word 0x00002077
+
+ thumb_func_start MOD09_022129CC
+MOD09_022129CC: ; 0x022129CC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD09_022174EC
+ ldr r0, _022129F4 ; =0x00002077
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ bne _022129E8
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD09_022138F0
+ b _022129F0
+_022129E8:
+ add r0, r4, #0
+ mov r1, #9
+ bl MOD09_022138F0
+_022129F0:
+ mov r0, #0x14
+ pop {r4, pc}
+ .align 2, 0
+_022129F4: .word 0x00002077
+
+ thumb_func_start MOD09_022129F8
+MOD09_022129F8: ; 0x022129F8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #5
+ bl MOD09_022138F0
+ ldr r2, [r4]
+ mov r1, #0x25
+ ldrh r0, [r2, #0x22]
+ ldr r2, [r2, #0xc]
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02212A16
+ mov r0, #0x18
+ pop {r4, pc}
+_02212A16:
+ mov r0, #0x15
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02212A1C
+MOD09_02212A1C: ; 0x02212A1C
+ push {r4, lr}
+ ldr r1, _02212A58 ; =0x0000207A
+ add r4, r0, #0
+ ldrb r1, [r4, r1]
+ bl MOD09_02216D80
+ ldr r1, _02212A58 ; =0x0000207A
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ bl MOD09_02213E28
+ ldr r1, _02212A58 ; =0x0000207A
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ bl MOD09_022182E8
+ ldr r1, _02212A58 ; =0x0000207A
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ bl MOD09_02213710
+ ldr r0, _02212A58 ; =0x0000207A
+ ldrb r0, [r4, r0]
+ cmp r0, #2
+ bne _02212A52
+ mov r0, #3
+ pop {r4, pc}
+_02212A52:
+ mov r0, #4
+ pop {r4, pc}
+ nop
+_02212A58: .word 0x0000207A
+
+ thumb_func_start MOD09_02212A5C
+MOD09_02212A5C: ; 0x02212A5C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD09_02216314
+ ldr r0, _02212A70 ; =0x00002079
+ mov r1, #0x10
+ strb r1, [r4, r0]
+ mov r0, #0x11
+ pop {r4, pc}
+ nop
+_02212A70: .word 0x00002079
+
+ thumb_func_start MOD09_02212A74
+MOD09_02212A74: ; 0x02212A74
+ push {r3, lr}
+ ldr r1, _02212A84 ; =0x00002060
+ add r0, r0, r1
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #2
+ pop {r3, pc}
+ .align 2, 0
+_02212A84: .word 0x00002060
+
+ thumb_func_start MOD09_02212A88
+MOD09_02212A88: ; 0x02212A88
+ push {r3, lr}
+ ldr r1, _02212AA0 ; =0x0000207B
+ ldrb r0, [r0, r1]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02212A9A
+ mov r0, #0x12
+ pop {r3, pc}
+_02212A9A:
+ mov r0, #0x11
+ pop {r3, pc}
+ nop
+_02212AA0: .word 0x0000207B
+
+ thumb_func_start MOD09_02212AA4
+MOD09_02212AA4: ; 0x02212AA4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02212AC4 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _02212ABA
+ bl FUN_02020AA4
+ cmp r0, #1
+ bne _02212AC0
+_02212ABA:
+ ldr r0, _02212AC8 ; =0x00002079
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+_02212AC0:
+ mov r0, #0x12
+ pop {r4, pc}
+ .align 2, 0
+_02212AC4: .word 0x021C48B8
+_02212AC8: .word 0x00002079
+
+ thumb_func_start MOD09_02212ACC
+MOD09_02212ACC: ; 0x02212ACC
+ ldr r1, _02212AE0 ; =0x00001FA3
+ ldrb r2, [r0, r1]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1f
+ bne _02212ADC
+ add r1, #0xd6
+ ldrb r0, [r0, r1]
+ bx lr
+_02212ADC:
+ mov r0, #0x16
+ bx lr
+ .align 2, 0
+_02212AE0: .word 0x00001FA3
+
+ thumb_func_start MOD09_02212AE4
+MOD09_02212AE4: ; 0x02212AE4
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r7, _02212C7C ; =0x0000207C
+ add r4, r0, #0
+ ldrb r1, [r4, r7]
+ ldr r5, [r4]
+ cmp r1, #4
+ bls _02212AF4
+ b _02212C78
+_02212AF4:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02212B00: ; jump table
+ .short _02212B0A - _02212B00 - 2 ; case 0
+ .short _02212BCE - _02212B00 - 2 ; case 1
+ .short _02212BF6 - _02212B00 - 2 ; case 2
+ .short _02212C2E - _02212B00 - 2 ; case 3
+ .short _02212C4E - _02212B00 - 2 ; case 4
+_02212B0A:
+ ldrb r2, [r5, #0x11]
+ ldr r0, [r5, #8]
+ ldr r1, [r5, #0x28]
+ add r2, r5, r2
+ add r2, #0x2c
+ ldrb r2, [r2]
+ bl FUN_02230014
+ ldrb r2, [r5, #0x11]
+ mov r1, #0x50
+ mul r1, r2
+ add r1, r4, r1
+ str r0, [r1, #4]
+ add r0, r4, #0
+ bl MOD09_02216378
+ sub r0, r7, #2
+ ldrb r0, [r4, r0]
+ ldrb r1, [r5, #0x11]
+ cmp r0, #5
+ bne _02212B54
+ mov r0, #0x50
+ mul r0, r1
+ add r5, #0x34
+ ldrb r1, [r5]
+ add r0, r4, r0
+ ldr r0, [r0, #4]
+ add r1, #0x3a
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, r7, #4
+ strh r0, [r4, r1]
+ mov r2, #2
+ sub r0, r1, #4
+ strb r2, [r4, r0]
+ b _02212BC6
+_02212B54:
+ mov r0, #0x50
+ mul r0, r1
+ add r0, r4, r0
+ ldr r0, [r0, #4]
+ bl FUN_0207C2D4
+ add r6, r0, #0
+ ldrb r0, [r5, #0x11]
+ add r3, r4, #0
+ mov r7, #0x50
+ add r2, r0, #0
+ add r3, #0x1b
+ mul r2, r7
+ ldrb r1, [r3, r2]
+ mov r0, #0x78
+ bic r1, r0
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x19
+ orr r0, r1
+ strb r0, [r3, r2]
+ ldrb r0, [r5, #0x11]
+ add r1, r0, #0
+ mul r1, r7
+ add r1, r4, r1
+ ldrb r1, [r1, #0x1b]
+ lsl r1, r1, #0x19
+ lsr r1, r1, #0x1c
+ cmp r1, #7
+ bne _02212BAA
+ add r0, #0xd
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, _02212C80 ; =0x00001FB8
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ ldrb r1, [r5, #0x11]
+ add r0, r4, #0
+ bl MOD09_022156DC
+_02212BAA:
+ ldrb r1, [r5, #0x11]
+ mov r0, #0x50
+ mov r2, #0
+ mul r0, r1
+ add r0, r4, r0
+ ldr r0, [r0, #4]
+ mov r1, #0xa2
+ bl FUN_020671BC
+ ldr r1, _02212C84 ; =0x0000207E
+ mov r2, #4
+ strh r0, [r4, r1]
+ sub r0, r1, #2
+ strb r2, [r4, r0]
+_02212BC6:
+ ldr r0, _02212C88 ; =0x000005EC
+ bl FUN_020054C8
+ b _02212C78
+_02212BCE:
+ ldrb r1, [r5, #0x11]
+ add r6, r4, #0
+ mov r2, #0x50
+ add r3, r1, #0
+ add r6, #0x14
+ mul r3, r2
+ add r1, r7, #2
+ ldrh r2, [r4, r1]
+ ldrh r1, [r6, r3]
+ cmp r2, r1
+ beq _02212BF0
+ add r1, r1, #1
+ strh r1, [r6, r3]
+ ldrb r1, [r5, #0x11]
+ bl MOD09_0221567C
+ b _02212C78
+_02212BF0:
+ mov r0, #3
+ strb r0, [r4, r7]
+ b _02212C78
+_02212BF6:
+ ldrb r3, [r5, #0x11]
+ add r1, r4, #0
+ mov r2, #0x50
+ add r1, #0x36
+ mul r2, r3
+ add r6, r1, r2
+ add r1, r5, #0
+ add r1, #0x34
+ ldrb r1, [r1]
+ lsl r3, r1, #3
+ add r1, r7, #4
+ ldrh r2, [r4, r1]
+ ldrb r1, [r6, r3]
+ cmp r2, r1
+ beq _02212C28
+ add r1, r1, #1
+ strb r1, [r6, r3]
+ add r5, #0x34
+ ldrb r2, [r5]
+ add r1, r2, #1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl MOD09_02216190
+ b _02212C78
+_02212C28:
+ mov r0, #3
+ strb r0, [r4, r7]
+ b _02212C78
+_02212C2E:
+ add r2, r5, #0
+ add r2, #0x33
+ ldrh r1, [r5, #0x22]
+ ldrb r2, [r2]
+ ldr r0, [r5, #8]
+ ldr r3, [r5, #0xc]
+ bl MOD09_02213C84
+ add r0, r4, #0
+ bl MOD09_02216314
+ mov r1, #0x19
+ sub r0, r7, #3
+ strb r1, [r4, r0]
+ mov r0, #0x11
+ pop {r3, r4, r5, r6, r7, pc}
+_02212C4E:
+ ldrb r1, [r5, #0x11]
+ add r3, r4, #0
+ mov r2, #0x50
+ mul r2, r1
+ add r1, r7, #2
+ add r3, #0x14
+ ldrh r6, [r4, r1]
+ ldrh r1, [r3, r2]
+ cmp r6, r1
+ beq _02212C72
+ add r1, r1, #1
+ strh r1, [r3, r2]
+ ldrb r1, [r5, #0x11]
+ bl MOD09_0221567C
+ add r0, r4, #0
+ bl MOD09_022186C0
+_02212C72:
+ ldr r0, _02212C7C ; =0x0000207C
+ mov r1, #1
+ strb r1, [r4, r0]
+_02212C78:
+ mov r0, #0x17
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02212C7C: .word 0x0000207C
+_02212C80: .word 0x00001FB8
+_02212C84: .word 0x0000207E
+_02212C88: .word 0x000005EC
+
+ thumb_func_start MOD09_02212C8C
+MOD09_02212C8C: ; 0x02212C8C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5]
+ str r0, [sp, #4]
+ ldr r0, _02212DAC ; =0x0000207C
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _02212CA8
+ cmp r0, #1
+ beq _02212D12
+ cmp r0, #2
+ beq _02212D7C
+ b _02212DA4
+_02212CA8:
+ ldr r2, [sp, #4]
+ ldr r0, [sp, #4]
+ ldrb r3, [r2, #0x11]
+ ldr r1, [sp, #4]
+ ldr r0, [r0, #8]
+ add r2, r2, r3
+ add r2, #0x2c
+ ldrb r2, [r2]
+ ldr r1, [r1, #0x28]
+ bl FUN_02230014
+ ldr r1, [sp, #4]
+ mov r7, #0
+ ldrb r2, [r1, #0x11]
+ mov r1, #0x50
+ add r6, r7, #0
+ mul r1, r2
+ add r1, r5, r1
+ str r0, [r1, #4]
+ add r4, r5, #0
+_02212CD0:
+ ldr r0, [sp, #4]
+ ldrb r1, [r0, #0x11]
+ mov r0, #0x50
+ mul r0, r1
+ add r1, r5, r0
+ add r0, r1, r6
+ ldrh r0, [r0, #0x34]
+ cmp r0, #0
+ beq _02212CF4
+ ldr r0, [r1, #4]
+ add r1, r7, #0
+ add r1, #0x3a
+ mov r2, #0
+ bl FUN_020671BC
+ mov r1, #0x82
+ lsl r1, r1, #6
+ strh r0, [r4, r1]
+_02212CF4:
+ add r7, r7, #1
+ add r6, #8
+ add r4, r4, #2
+ cmp r7, #4
+ blo _02212CD0
+ add r0, r5, #0
+ bl MOD09_02216378
+ ldr r0, _02212DB0 ; =0x000005EC
+ bl FUN_020054C8
+ ldr r0, _02212DAC ; =0x0000207C
+ mov r1, #1
+ strb r1, [r5, r0]
+ b _02212DA4
+_02212D12:
+ mov r6, #0
+ add r4, r6, #0
+ str r6, [sp]
+ add r7, r5, #0
+_02212D1A:
+ ldr r0, [sp, #4]
+ ldrb r1, [r0, #0x11]
+ mov r0, #0x50
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, [sp]
+ add r1, r1, r0
+ ldrh r0, [r1, #0x34]
+ cmp r0, #0
+ bne _02212D32
+ add r6, r6, #1
+ b _02212D62
+_02212D32:
+ mov r0, #0x82
+ add r2, r1, #0
+ lsl r0, r0, #6
+ add r2, #0x36
+ ldrh r0, [r7, r0]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _02212D60
+ add r0, r1, #0
+ add r0, #0x36
+ ldrb r0, [r0]
+ lsl r2, r4, #0x10
+ add r1, #0x36
+ add r0, r0, #1
+ strb r0, [r1]
+ add r1, r4, #1
+ lsl r1, r1, #0x10
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x10
+ bl MOD09_02216190
+ b _02212D62
+_02212D60:
+ add r6, r6, #1
+_02212D62:
+ ldr r0, [sp]
+ add r4, r4, #1
+ add r0, #8
+ add r7, r7, #2
+ str r0, [sp]
+ cmp r4, #4
+ blo _02212D1A
+ cmp r6, #4
+ bne _02212DA4
+ ldr r0, _02212DAC ; =0x0000207C
+ mov r1, #2
+ strb r1, [r5, r0]
+ b _02212DA4
+_02212D7C:
+ ldr r2, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [sp, #4]
+ add r2, #0x33
+ ldr r3, [sp, #4]
+ ldrh r1, [r1, #0x22]
+ ldrb r2, [r2]
+ ldr r0, [r0, #8]
+ ldr r3, [r3, #0xc]
+ bl MOD09_02213C84
+ add r0, r5, #0
+ bl MOD09_02216314
+ ldr r0, _02212DB4 ; =0x00002079
+ mov r1, #0x19
+ strb r1, [r5, r0]
+ add sp, #8
+ mov r0, #0x11
+ pop {r3, r4, r5, r6, r7, pc}
+_02212DA4:
+ mov r0, #0x18
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02212DAC: .word 0x0000207C
+_02212DB0: .word 0x000005EC
+_02212DB4: .word 0x00002079
+
+ thumb_func_start MOD09_02212DB8
+MOD09_02212DB8: ; 0x02212DB8
+ push {lr}
+ sub sp, #0xc
+ mov r2, #0
+ str r2, [sp]
+ mov r1, #0x10
+ str r1, [sp, #4]
+ mov r1, #0x7a
+ str r2, [sp, #8]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #0xa
+ add r3, r1, #0
+ ldr r2, _02212DE0 ; =0x0000FFFF
+ sub r3, #0x12
+ bl FUN_02003210
+ mov r0, #0x1a
+ add sp, #0xc
+ pop {pc}
+ nop
+_02212DE0: .word 0x0000FFFF
+
+ thumb_func_start MOD09_02212DE4
+MOD09_02212DE4: ; 0x02212DE4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x7a
+ add r4, r1, #0
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _02212DFC
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02212DFC:
+ add r0, r4, #0
+ bl MOD09_02213190
+ add r0, r4, #0
+ bl MOD09_02216B74
+ add r0, r4, #0
+ bl MOD09_02213DF8
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD09_02212F5C
+ ldr r0, _02212E48 ; =0x00002088
+ ldr r0, [r4, r0]
+ bl MOD09_0221AC28
+ ldr r1, [r4]
+ add r1, #0x32
+ strb r0, [r1]
+ ldr r0, _02212E48 ; =0x00002088
+ ldr r0, [r4, r0]
+ bl MOD09_0221AC1C
+ mov r0, #2
+ bl FUN_02002CF8
+ ldr r0, [r4]
+ mov r1, #1
+ add r0, #0x36
+ strb r1, [r0]
+ add r0, r5, #0
+ bl FUN_0200621C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_02212E48: .word 0x00002088
+
+ thumb_func_start MOD09_02212E4C
+MOD09_02212E4C: ; 0x02212E4C
+ push {r3, r4, r5, lr}
+ sub sp, #0x80
+ ldr r5, _02212F48 ; =0x0221AED0
+ add r3, sp, #0x70
+ add r4, r0, #0
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ mov r1, #1
+ bl FUN_02016BF4
+ ldr r5, _02212F4C ; =0x0221AF48
+ add r3, sp, #0x54
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #7
+ str r0, [r3]
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _02212F50 ; =0x0221AF80
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #6
+ str r0, [r3]
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _02212F54 ; =0x0221AF9C
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #5
+ str r0, [r3]
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl FUN_02018744
+ ldr r5, _02212F58 ; =0x0221AF64
+ 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]
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl FUN_02018744
+ ldr r3, [r4]
+ mov r0, #5
+ ldr r3, [r3, #0xc]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r3, [r4]
+ mov r0, #4
+ ldr r3, [r3, #0xc]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl FUN_0201AC68
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl FUN_0201AC68
+ add sp, #0x80
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212F48: .word 0x0221AED0
+_02212F4C: .word 0x0221AF48
+_02212F50: .word 0x0221AF80
+_02212F54: .word 0x0221AF9C
+_02212F58: .word 0x0221AF64
+
+ thumb_func_start MOD09_02212F5C
+MOD09_02212F5C: ; 0x02212F5C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x1f
+ mov r1, #0
+ bl FUN_0201E74C
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #7
+ bl FUN_020178A0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02212F8C
+MOD09_02212F8C: ; 0x02212F8C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ mov r2, #0x79
+ ldr r0, [r0, #0xc]
+ lsl r2, r2, #2
+ str r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r0, #0x48
+ mov r1, #0x16
+ mov r3, #7
+ bl FUN_0200687C
+ ldr r2, [r5]
+ mov r0, #0x48
+ ldr r2, [r2, #0xc]
+ mov r1, #0x14
+ bl LoadFromNarc_2
+ add r1, sp, #0x10
+ add r4, r0, #0
+ bl FUN_020B0180
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ add r1, #0xc
+ bl MOD09_0221790C
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r2, [r5]
+ mov r0, #0x48
+ ldr r2, [r2, #0xc]
+ mov r1, #0x15
+ bl LoadFromNarc_2
+ add r1, sp, #0x10
+ add r4, r0, #0
+ bl FUN_020B0180
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ add r1, #0xc
+ bl MOD09_02217C38
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ str r0, [sp]
+ lsl r0, r0, #9
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #0x7a
+ ldr r3, [r5]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r3, [r3, #0xc]
+ mov r1, #0x48
+ mov r2, #0x17
+ bl FUN_020030E8
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020031FC
+ add r2, r0, #0
+ ldr r0, _02213134 ; =0x00001F60
+ mov r1, #6
+ lsl r1, r1, #6
+ add r1, r2, r1
+ add r0, r5, r0
+ mov r2, #0x40
+ bl memcpy
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xd0
+ str r0, [sp, #8]
+ mov r0, #0x7a
+ ldr r3, [r5]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r3, [r3, #0xc]
+ mov r1, #0xe
+ mov r2, #6
+ bl FUN_020030E8
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xf0
+ str r0, [sp, #8]
+ ldr r3, [r5]
+ add r0, #0xf8
+ ldr r0, [r5, r0]
+ ldr r3, [r3, #0xc]
+ mov r1, #0xe
+ mov r2, #7
+ bl FUN_020030E8
+ ldr r0, [r5]
+ ldr r0, [r0, #8]
+ bl FUN_02230E44
+ add r4, r0, #0
+ bl FUN_0200CD60
+ add r1, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ mov r2, #0x79
+ ldr r0, [r0, #0xc]
+ lsl r2, r2, #2
+ str r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r0, #0x26
+ mov r3, #4
+ bl FUN_0200687C
+ add r0, r4, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xe0
+ str r0, [sp, #8]
+ mov r0, #0x7a
+ ldr r3, [r5]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r3, [r3, #0xc]
+ mov r1, #0x26
+ bl FUN_020030E8
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020031FC
+ add r6, r0, #0
+ ldr r0, [r5]
+ mov r1, #0x20
+ ldr r0, [r0, #0xc]
+ bl FUN_02016998
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ add r1, r6, r1
+ mov r2, #0x20
+ add r4, r0, #0
+ bl memcpy
+ mov r2, #0x4d
+ lsl r2, r2, #2
+ add r0, r6, r2
+ ldrb r3, [r0]
+ add r1, r4, #0
+ add r1, #0xe
+ strb r3, [r4, #0xe]
+ ldrb r3, [r0, #1]
+ strb r3, [r1, #1]
+ ldrb r3, [r0, #2]
+ strb r3, [r1, #2]
+ ldrb r0, [r0, #3]
+ mov r3, #0xd0
+ strb r0, [r1, #3]
+ add r1, r2, #4
+ add r0, r2, #4
+ ldrb r1, [r6, r1]
+ add r0, r6, r0
+ add r2, #0xb4
+ strb r1, [r4, #6]
+ ldrb r1, [r0, #1]
+ strb r1, [r4, #7]
+ ldrb r1, [r0, #2]
+ strb r1, [r4, #8]
+ ldrb r0, [r0, #3]
+ add r1, r4, #0
+ strb r0, [r4, #9]
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [r5, r2]
+ mov r2, #1
+ bl FUN_02003054
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02213134: .word 0x00001F60
+
+ thumb_func_start MOD09_02213138
+MOD09_02213138: ; 0x02213138
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r3, [r4]
+ mov r0, #0
+ ldr r3, [r3, #0xc]
+ mov r1, #0x1a
+ mov r2, #3
+ bl FUN_0200A86C
+ ldr r1, _02213180 ; =0x00001FA8
+ mov r2, #0
+ str r0, [r4, r1]
+ ldr r3, [r4]
+ mov r0, #0xf
+ ldr r3, [r3, #0xc]
+ mov r1, #0xe
+ bl FUN_0200B870
+ ldr r1, _02213184 ; =0x00001FA4
+ str r0, [r4, r1]
+ ldr r0, [r4]
+ ldr r0, [r0, #0xc]
+ bl FUN_0200AA80
+ ldr r1, _02213188 ; =0x00001FAC
+ str r0, [r4, r1]
+ ldr r1, [r4]
+ mov r0, #2
+ ldr r1, [r1, #0xc]
+ lsl r0, r0, #8
+ bl FUN_020219F4
+ ldr r1, _0221318C ; =0x00001FB0
+ str r0, [r4, r1]
+ pop {r4, pc}
+ nop
+_02213180: .word 0x00001FA8
+_02213184: .word 0x00001FA4
+_02213188: .word 0x00001FAC
+_0221318C: .word 0x00001FB0
+
+ thumb_func_start MOD09_02213190
+MOD09_02213190: ; 0x02213190
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _022131B8 ; =0x00001FA8
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ ldr r0, _022131BC ; =0x00001FA4
+ ldr r0, [r4, r0]
+ bl FUN_0200B990
+ ldr r0, _022131C0 ; =0x00001FAC
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ ldr r0, _022131C4 ; =0x00001FB0
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ pop {r4, pc}
+ nop
+_022131B8: .word 0x00001FA8
+_022131BC: .word 0x00001FA4
+_022131C0: .word 0x00001FAC
+_022131C4: .word 0x00001FB0
+
+ thumb_func_start MOD09_022131C8
+MOD09_022131C8: ; 0x022131C8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl FUN_0206B9AC
+ cmp r0, #0
+ bgt _022131E2
+ b _02213476
+_022131E2:
+ ldr r0, [sp, #8]
+ mov r1, #0x50
+ mul r1, r0
+ ldr r0, [sp]
+ str r1, [sp, #4]
+ add r4, r0, r1
+ ldr r0, [r0]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ bl FUN_0206B9B0
+ str r0, [r4, #4]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #8]
+ ldrh r0, [r4, #8]
+ cmp r0, #0
+ bne _0221320C
+ b _0221345A
+_0221320C:
+ ldr r0, [sp, #8]
+ mov r1, #0x50
+ add r5, r0, #0
+ mul r5, r1
+ ldr r0, [sp]
+ mov r1, #0xa4
+ add r4, r0, r5
+ ldr r0, [r4, #4]
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0xa]
+ ldr r0, [r4, #4]
+ mov r1, #0xa5
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #0xa6
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0xe]
+ ldr r0, [r4, #4]
+ mov r1, #0xa7
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x10]
+ ldr r0, [r4, #4]
+ mov r1, #0xa8
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x12]
+ ldr r0, [r4, #4]
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x14]
+ ldr r0, [r4, #4]
+ mov r1, #0xa3
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x16]
+ ldr r0, [r4, #4]
+ mov r1, #0xb0
+ mov r2, #0
+ bl FUN_020671BC
+ strb r0, [r4, #0x18]
+ ldr r0, [r4, #4]
+ mov r1, #0xb1
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r6, [sp]
+ strb r0, [r4, #0x19]
+ ldr r0, [r4, #4]
+ add r6, #0x1a
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ ldrb r1, [r6, r5]
+ mov r2, #0x7f
+ lsl r0, r0, #0x18
+ bic r1, r2
+ lsr r2, r0, #0x18
+ mov r0, #0x7f
+ and r0, r2
+ orr r0, r1
+ strb r0, [r6, r5]
+ ldr r0, [r4, #4]
+ mov r1, #0xaf
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #1
+ ldrb r1, [r6, r5]
+ bne _022132BC
+ mov r0, #0x80
+ bic r1, r0
+ strb r1, [r6, r5]
+ b _022132C2
+_022132BC:
+ mov r0, #0x80
+ orr r0, r1
+ strb r0, [r6, r5]
+_022132C2:
+ ldr r0, [sp]
+ add r4, r0, r5
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ add r6, #0x1b
+ bl FUN_020689E0
+ ldrb r1, [r6, r5]
+ mov r2, #7
+ bic r1, r2
+ mov r2, #7
+ and r0, r2
+ orr r0, r1
+ strb r0, [r6, r5]
+ ldr r0, [r4, #4]
+ bl FUN_0207C2D4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1c
+ ldrb r1, [r6, r5]
+ mov r2, #0x78
+ lsr r0, r0, #0x19
+ bic r1, r2
+ orr r0, r1
+ strb r0, [r6, r5]
+ ldr r0, [r4, #4]
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1f
+ ldrb r1, [r6, r5]
+ mov r2, #0x80
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r0, r1
+ strb r0, [r6, r5]
+ ldr r0, [r4, #4]
+ mov r1, #0xa
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x1c]
+ ldr r0, [r4, #4]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #0x1e]
+ ldr r0, [r4, #4]
+ mov r1, #8
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r6, [sp]
+ str r0, [r4, #0x20]
+ add r6, #0x1a
+ ldrb r1, [r6, r5]
+ ldrh r0, [r4, #8]
+ lsl r1, r1, #0x19
+ lsr r1, r1, #0x19
+ bl FUN_02068758
+ str r0, [r4, #0x24]
+ ldrb r0, [r6, r5]
+ lsl r0, r0, #0x19
+ lsr r1, r0, #0x19
+ cmp r1, #0x64
+ bne _0221335A
+ ldr r0, [sp]
+ add r4, r0, r5
+ ldr r0, [r4, #0x24]
+ b _02213366
+_0221335A:
+ ldr r0, [sp]
+ add r1, r1, #1
+ add r4, r0, r5
+ ldrh r0, [r4, #8]
+ bl FUN_02068758
+_02213366:
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #4]
+ mov r1, #0x13
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, r4, #0
+ add r1, #0x2c
+ strb r0, [r1]
+ ldr r0, [r4, #4]
+ mov r1, #0x14
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, r4, #0
+ add r1, #0x2d
+ strb r0, [r1]
+ ldr r0, [r4, #4]
+ mov r1, #0x15
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, r4, #0
+ add r1, #0x2e
+ strb r0, [r1]
+ ldr r0, [r4, #4]
+ mov r1, #0x16
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, r4, #0
+ add r1, #0x2f
+ strb r0, [r1]
+ ldr r0, [r4, #4]
+ mov r1, #0x17
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, r4, #0
+ add r1, #0x30
+ strb r0, [r1]
+ ldr r0, [r4, #4]
+ mov r1, #0xa1
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, r4, #0
+ add r1, #0x31
+ strb r0, [r1]
+ ldr r0, [r4, #4]
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020671BC
+ add r4, #0x32
+ strb r0, [r4]
+ ldr r1, [sp]
+ ldr r0, [sp, #4]
+ add r1, #0x34
+ add r7, r1, r0
+ ldr r1, [sp]
+ mov r4, #0
+ add r6, r1, r0
+_022133E4:
+ lsl r0, r4, #3
+ add r1, r4, #0
+ str r0, [sp, #0xc]
+ add r5, r7, r0
+ ldr r0, [r6, #4]
+ add r1, #0x36
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, [sp, #0xc]
+ strh r0, [r7, r1]
+ add r0, r1, #0
+ ldrh r0, [r7, r0]
+ cmp r0, #0
+ beq _02213450
+ add r1, r4, #0
+ ldr r0, [r6, #4]
+ add r1, #0x3a
+ mov r2, #0
+ bl FUN_020671BC
+ strb r0, [r5, #2]
+ add r1, r4, #0
+ ldr r0, [r6, #4]
+ add r1, #0x3e
+ mov r2, #0
+ bl FUN_020671BC
+ strb r0, [r5, #3]
+ ldrh r0, [r5]
+ ldrb r1, [r5, #3]
+ bl FUN_0206AB30
+ strb r0, [r5, #3]
+ ldrh r0, [r5]
+ mov r1, #3
+ bl FUN_0206AB18
+ strb r0, [r5, #4]
+ ldrh r0, [r5]
+ mov r1, #1
+ bl FUN_0206AB18
+ strb r0, [r5, #5]
+ ldrh r0, [r5]
+ mov r1, #4
+ bl FUN_0206AB18
+ strb r0, [r5, #6]
+ ldrh r0, [r5]
+ mov r1, #2
+ bl FUN_0206AB18
+ strb r0, [r5, #7]
+_02213450:
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #4
+ blo _022133E4
+_0221345A:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl FUN_0206B9AC
+ ldr r1, [sp, #8]
+ cmp r1, r0
+ bge _02213476
+ b _022131E2
+_02213476:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_0221347C
+MOD09_0221347C: ; 0x0221347C
+ push {r3, r4, r5, lr}
+ ldr r1, _022134EC ; =0x0221AFB8
+ add r4, r0, #0
+ bl MOD09_02213614
+ add r5, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ bne _022134C8
+ ldr r0, _022134F0 ; =0x00002088
+ ldr r0, [r4, r0]
+ bl MOD09_0221AD30
+ add r5, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r5, r0
+ bne _022134A6
+ mov r5, #6
+ b _022134B0
+_022134A6:
+ add r0, r0, #1
+ cmp r5, r0
+ bne _022134B0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_022134B0:
+ cmp r5, #6
+ beq _022134C0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD09_02213620
+ cmp r0, #0
+ beq _022134E6
+_022134C0:
+ ldr r0, [r4]
+ strb r5, [r0, #0x11]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022134C8:
+ cmp r5, #6
+ beq _022134D8
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD09_02213620
+ cmp r0, #0
+ beq _022134E6
+_022134D8:
+ ldr r0, [r4]
+ strb r5, [r0, #0x11]
+ add r0, r4, #0
+ bl MOD09_022178E4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022134E6:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022134EC: .word 0x0221AFB8
+_022134F0: .word 0x00002088
+
+ thumb_func_start MOD09_022134F4
+MOD09_022134F4: ; 0x022134F4
+ push {r3, r4, r5, lr}
+ ldr r1, _02213534 ; =0x0221AEF0
+ add r5, r0, #0
+ bl MOD09_02213614
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02213528
+ ldr r0, _02213538 ; =0x00002088
+ ldr r0, [r5, r0]
+ bl MOD09_0221AD30
+ add r4, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ bne _0221351E
+ mov r4, #3
+ b _0221352E
+_0221351E:
+ add r0, r0, #1
+ cmp r4, r0
+ bne _0221352E
+ mov r0, #0xff
+ pop {r3, r4, r5, pc}
+_02213528:
+ add r0, r5, #0
+ bl MOD09_022178E4
+_0221352E:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02213534: .word 0x0221AEF0
+_02213538: .word 0x00002088
+
+ thumb_func_start MOD09_0221353C
+MOD09_0221353C: ; 0x0221353C
+ push {r3, r4, r5, lr}
+ ldr r1, _0221357C ; =0x0221AF04
+ add r5, r0, #0
+ bl MOD09_02213614
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02213570
+ ldr r0, _02213580 ; =0x00002088
+ ldr r0, [r5, r0]
+ bl MOD09_0221AD30
+ add r4, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ bne _02213566
+ mov r4, #3
+ b _02213576
+_02213566:
+ add r0, r0, #1
+ cmp r4, r0
+ bne _02213576
+ mov r0, #0xff
+ pop {r3, r4, r5, pc}
+_02213570:
+ add r0, r5, #0
+ bl MOD09_022178E4
+_02213576:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221357C: .word 0x0221AF04
+_02213580: .word 0x00002088
+
+ thumb_func_start MOD09_02213584
+MOD09_02213584: ; 0x02213584
+ push {r3, r4, r5, lr}
+ ldr r1, _022135C4 ; =0x0221AFF8
+ add r5, r0, #0
+ bl MOD09_02213614
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _022135B8
+ ldr r0, _022135C8 ; =0x00002088
+ ldr r0, [r5, r0]
+ bl MOD09_0221AD30
+ add r4, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ bne _022135AE
+ mov r4, #7
+ b _022135BE
+_022135AE:
+ add r0, r0, #1
+ cmp r4, r0
+ bne _022135BE
+ mov r0, #0xff
+ pop {r3, r4, r5, pc}
+_022135B8:
+ add r0, r5, #0
+ bl MOD09_022178E4
+_022135BE:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022135C4: .word 0x0221AFF8
+_022135C8: .word 0x00002088
+
+ thumb_func_start MOD09_022135CC
+MOD09_022135CC: ; 0x022135CC
+ push {r3, r4, r5, lr}
+ ldr r1, _0221360C ; =0x0221AF18
+ add r5, r0, #0
+ bl MOD09_02213614
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02213600
+ ldr r0, _02213610 ; =0x00002088
+ ldr r0, [r5, r0]
+ bl MOD09_0221AD30
+ add r4, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ bne _022135F6
+ mov r4, #4
+ b _02213606
+_022135F6:
+ add r0, r0, #1
+ cmp r4, r0
+ bne _02213606
+ mov r0, #0xff
+ pop {r3, r4, r5, pc}
+_02213600:
+ add r0, r5, #0
+ bl MOD09_022178E4
+_02213606:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221360C: .word 0x0221AF18
+_02213610: .word 0x00002088
+
+ thumb_func_start MOD09_02213614
+MOD09_02213614: ; 0x02213614
+ ldr r3, _0221361C ; =0x02020989
+ add r0, r1, #0
+ bx r3
+ nop
+_0221361C: .word 0x02020989
+
+ thumb_func_start MOD09_02213620
+MOD09_02213620: ; 0x02213620
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0x50
+ add r5, r0, #0
+ mul r1, r4
+ add r1, r5, r1
+ ldrh r1, [r1, #8]
+ cmp r1, #0
+ bne _02213636
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02213636:
+ cmp r4, #0
+ beq _02213650
+ bl MOD09_02213B9C
+ cmp r0, #0
+ bne _0221364C
+ add r0, r5, #0
+ bl MOD09_02213BBC
+ cmp r0, #0
+ beq _02213654
+_0221364C:
+ cmp r4, #1
+ bne _02213654
+_02213650:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02213654:
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD09_02213658
+MOD09_02213658: ; 0x02213658
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ add r7, r2, #0
+ add r6, r4, #0
+ bl MOD09_02213BBC
+ cmp r0, #1
+ bne _022136D0
+ ldr r2, _0221370C ; =0x0221AEC8
+ add r1, sp, #0
+ ldrb r3, [r2]
+ add r0, sp, #0
+ mov r4, #0
+ strb r3, [r1]
+ ldrb r3, [r2, #1]
+ strb r3, [r1, #1]
+ ldrb r3, [r2, #2]
+ strb r3, [r1, #2]
+ ldrb r3, [r2, #3]
+ strb r3, [r1, #3]
+ ldrb r3, [r2, #4]
+ ldrb r2, [r2, #5]
+ strb r3, [r1, #4]
+ strb r2, [r1, #5]
+_0221368C:
+ ldrb r1, [r0]
+ cmp r6, r1
+ beq _0221369A
+ add r4, r4, #1
+ add r0, r0, #1
+ cmp r4, #6
+ blt _0221368C
+_0221369A:
+ add r4, r4, r7
+ bpl _022136A2
+ mov r4, #5
+ b _022136A8
+_022136A2:
+ cmp r4, #6
+ blt _022136A8
+ mov r4, #0
+_022136A8:
+ add r0, sp, #0
+ ldrb r1, [r0, r4]
+ cmp r6, r1
+ beq _02213704
+ add r0, r5, #0
+ bl MOD09_02213620
+ cmp r0, #0
+ beq _0221369A
+ add r0, sp, #0
+ ldrb r0, [r0, r4]
+ mov r1, #0x50
+ mul r1, r0
+ add r1, r5, r1
+ ldrb r1, [r1, #0x1b]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1f
+ bne _0221369A
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_022136D0:
+ add r4, r4, r7
+ bpl _022136D8
+ mov r4, #5
+ b _022136DE
+_022136D8:
+ cmp r4, #6
+ blt _022136DE
+ mov r4, #0
+_022136DE:
+ cmp r6, r4
+ beq _02213704
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02213620
+ cmp r0, #0
+ beq _022136D0
+ mov r0, #0x50
+ mul r0, r4
+ add r0, r5, r0
+ ldrb r0, [r0, #0x1b]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bne _022136D0
+ lsl r0, r4, #0x18
+ add sp, #8
+ lsr r0, r0, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_02213704:
+ mov r0, #0xff
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221370C: .word 0x0221AEC8
+
+ thumb_func_start MOD09_02213710
+MOD09_02213710: ; 0x02213710
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ cmp r1, #2
+ bne _0221378E
+ ldr r0, [r6]
+ add r2, r6, #4
+ ldrb r1, [r0, #0x11]
+ mov r0, #0x50
+ mul r0, r1
+ add r0, r2, r0
+ ldrb r1, [r0, #0x16]
+ lsl r1, r1, #0x19
+ lsr r1, r1, #0x19
+ cmp r1, #0x64
+ bhs _0221373A
+ ldr r2, [r0, #0x20]
+ ldr r1, [r0, #0x24]
+ ldr r0, [r0, #0x1c]
+ sub r1, r1, r2
+ sub r0, r0, r2
+ b _0221373E
+_0221373A:
+ mov r1, #0
+ add r0, r1, #0
+_0221373E:
+ mov r2, #0x40
+ bl FUN_02079A0C
+ add r4, r0, #0
+ mov r5, #0
+ mov r7, #0x1e
+_0221374A:
+ cmp r4, #8
+ blo _02213752
+ add r1, r7, #0
+ b _0221375A
+_02213752:
+ add r0, r4, #0
+ add r0, #0x16
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+_0221375A:
+ add r2, r5, #0
+ add r2, #0xa
+ lsl r2, r2, #0x10
+ add r0, r6, #0
+ lsr r2, r2, #0x10
+ mov r3, #8
+ bl MOD09_02213790
+ cmp r4, #8
+ bhs _02213772
+ mov r4, #0
+ b _02213778
+_02213772:
+ sub r4, #8
+ lsl r0, r4, #0x18
+ lsr r4, r0, #0x18
+_02213778:
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #8
+ blo _0221374A
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #7
+ bl FUN_0201AC68
+_0221378E:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD09_02213790
+MOD09_02213790: ; 0x02213790
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ add r4, r2, #0
+ str r1, [sp, #8]
+ mov r1, #0x10
+ str r1, [sp, #0xc]
+ mov r1, #0x79
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ lsl r3, r4, #0x18
+ mov r1, #7
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_022137C0
+MOD09_022137C0: ; 0x022137C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0xe
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x10
+ lsl r6, r2, #1
+ add r4, r1, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x79
+ add r7, r6, #2
+ lsl r0, r0, #2
+ lsl r3, r7, #0x18
+ ldr r0, [r5, r0]
+ mov r1, #7
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ mov r0, #0xe
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ mov r0, #0x79
+ add r6, r6, #3
+ lsl r0, r0, #2
+ add r2, r4, #1
+ lsl r2, r2, #0x10
+ lsl r3, r6, #0x18
+ ldr r0, [r5, r0]
+ mov r1, #7
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ mov r0, #0xf
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ mov r0, #0x79
+ add r2, r4, #0
+ lsl r0, r0, #2
+ add r2, #0x20
+ lsl r2, r2, #0x10
+ lsl r3, r7, #0x18
+ ldr r0, [r5, r0]
+ mov r1, #7
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ mov r0, #0xf
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ mov r0, #0x79
+ lsl r0, r0, #2
+ add r4, #0x21
+ lsl r2, r4, #0x10
+ lsl r3, r6, #0x18
+ ldr r0, [r5, r0]
+ mov r1, #7
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD09_02213860
+MOD09_02213860: ; 0x02213860
+ push {r4, r5, r6, lr}
+ ldr r6, _02213880 ; =0x00000125
+ add r5, r0, #0
+ mov r4, #0
+_02213868:
+ lsl r2, r4, #0x18
+ add r0, r5, #0
+ add r1, r6, #0
+ lsr r2, r2, #0x18
+ bl MOD09_022137C0
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #6
+ blo _02213868
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02213880: .word 0x00000125
+
+ thumb_func_start MOD09_02213884
+MOD09_02213884: ; 0x02213884
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ cmp r1, #9
+ bne _022138EE
+ bl MOD09_02213860
+ ldr r1, [r5]
+ add r0, r1, #0
+ add r0, #0x34
+ ldrb r2, [r0]
+ cmp r2, #4
+ bhs _022138AC
+ ldrb r1, [r1, #0x11]
+ mov r0, #0x50
+ mul r0, r1
+ add r1, r5, r0
+ lsl r0, r2, #3
+ add r0, r1, r0
+ ldrh r0, [r0, #0x34]
+ b _022138AE
+_022138AC:
+ ldrh r0, [r1, #0x24]
+_022138AE:
+ mov r1, #0xa
+ bl FUN_0206AB18
+ bl FUN_02083114
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x18
+ asr r6, r0, #0x18
+ mov r4, #0
+ cmp r6, #0
+ ble _022138E2
+ mov r7, #5
+ lsl r7, r7, #6
+_022138CC:
+ lsl r2, r4, #0x18
+ add r0, r5, #0
+ add r1, r7, #0
+ lsr r2, r2, #0x18
+ bl MOD09_022137C0
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, r6
+ blt _022138CC
+_022138E2:
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #7
+ bl FUN_0201AC68
+_022138EE:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD09_022138F0
+MOD09_022138F0: ; 0x022138F0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD09_02213968
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #4
+ mov r2, #0
+ bl FUN_0201878C
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_0201878C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02216D80
+ add r0, r5, #0
+ bl MOD09_02213DE0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02213CF4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02213E28
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02213710
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02213884
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02217838
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_022182E8
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02218640
+ ldr r0, _02213964 ; =0x0000207A
+ strb r4, [r5, r0]
+ pop {r3, r4, r5, pc}
+ nop
+_02213964: .word 0x0000207A
+
+ thumb_func_start MOD09_02213968
+MOD09_02213968: ; 0x02213968
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ ldr r2, _022139D0 ; =0x0221B01C
+ add r5, r0, #0
+ lsl r0, r1, #3
+ mov r4, #0
+ add r6, r2, r0
+_02213976:
+ ldr r2, [r5]
+ ldr r1, [r6]
+ ldr r2, [r2, #0xc]
+ mov r0, #0x48
+ bl LoadFromNarc_2
+ add r1, sp, #0xc
+ add r7, r0, #0
+ bl FUN_020B0180
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x79
+ lsl r0, r0, #2
+ add r1, r4, #6
+ ldr r2, [sp, #0xc]
+ lsl r1, r1, #0x18
+ ldr r0, [r5, r0]
+ lsr r1, r1, #0x18
+ add r2, #0xc
+ mov r3, #0
+ bl FUN_02018148
+ mov r0, #0x79
+ lsl r0, r0, #2
+ add r1, r4, #6
+ lsl r1, r1, #0x18
+ ldr r0, [r5, r0]
+ lsr r1, r1, #0x18
+ bl FUN_0201AC68
+ add r0, r7, #0
+ bl FUN_02016A18
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r4, #2
+ blo _02213976
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022139D0: .word 0x0221B01C
+
+ thumb_func_start MOD09_022139D4
+MOD09_022139D4: ; 0x022139D4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r1, [r5]
+ mov r2, #0x50
+ ldrb r1, [r1, #0x11]
+ add r3, r5, #4
+ mul r2, r1
+ add r4, r3, r2
+ bl MOD09_02213BDC
+ cmp r0, #1
+ bne _02213A30
+ ldr r0, _02213B70 ; =0x00001FA8
+ mov r1, #0x50
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ ldr r1, [r5]
+ add r4, r0, #0
+ ldr r0, [r1, #8]
+ ldr r1, [r1, #0x28]
+ bl FUN_022302BC
+ add r1, r0, #0
+ ldr r0, [r5]
+ ldr r0, [r0, #8]
+ bl FUN_02230188
+ add r2, r0, #0
+ ldr r0, _02213B74 ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200B144
+ ldr r1, _02213B74 ; =0x00001FAC
+ add r2, r4, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02213A30:
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0
+ bne _02213A6C
+ ldr r0, _02213B70 ; =0x00001FA8
+ mov r1, #0x4d
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _02213B74 ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ACF8
+ ldr r1, _02213B74 ; =0x00001FAC
+ add r2, r6, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02213A6C:
+ ldr r2, [r5]
+ ldrb r0, [r2, #0x11]
+ add r0, r2, r0
+ add r0, #0x2c
+ ldrb r1, [r0]
+ ldrb r0, [r2, #0x14]
+ cmp r0, r1
+ beq _02213A82
+ ldrb r0, [r2, #0x15]
+ cmp r0, r1
+ bne _02213AB8
+_02213A82:
+ ldr r0, _02213B70 ; =0x00001FA8
+ mov r1, #0x4c
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _02213B74 ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ACF8
+ ldr r1, _02213B74 ; =0x00001FAC
+ add r2, r6, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02213AB8:
+ add r0, r5, #0
+ bl MOD09_02213B7C
+ cmp r0, #1
+ bne _02213AD4
+ ldr r2, _02213B70 ; =0x00001FA8
+ mov r1, #0x4f
+ ldr r0, [r5, r2]
+ add r2, #8
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02213AD4:
+ ldr r2, [r5]
+ ldrb r1, [r2, #0x12]
+ cmp r1, #6
+ beq _02213B24
+ ldrb r4, [r2, #0x11]
+ add r0, r2, r4
+ add r0, #0x2c
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _02213B24
+ ldr r0, _02213B70 ; =0x00001FA8
+ mov r1, #0x5d
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #0x50
+ mul r0, r4
+ add r0, r5, r0
+ ldr r0, [r0, #4]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _02213B74 ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ACF8
+ ldr r1, _02213B74 ; =0x00001FAC
+ add r2, r6, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02213B24:
+ ldrh r0, [r2, #0x24]
+ cmp r0, #0
+ beq _02213B6C
+ ldr r1, _02213B78 ; =0x00002076
+ mov r0, #0x50
+ ldrb r2, [r5, r1]
+ sub r1, #0xce
+ add r4, r5, #4
+ add r6, r2, #0
+ mul r6, r0
+ ldr r0, [r5, r1]
+ mov r1, #0x4e
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldr r0, [r4, r6]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _02213B74 ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ACF8
+ ldr r1, _02213B74 ; =0x00001FAC
+ add r2, r7, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r7, #0
+ bl FUN_02021A20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02213B6C:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02213B70: .word 0x00001FA8
+_02213B74: .word 0x00001FAC
+_02213B78: .word 0x00002076
+
+ thumb_func_start MOD09_02213B7C
+MOD09_02213B7C: ; 0x02213B7C
+ ldr r1, [r0]
+ ldrb r2, [r1, #0x11]
+ mov r1, #0x50
+ mul r1, r2
+ add r0, r0, r1
+ ldrb r0, [r0, #0x1b]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ beq _02213B92
+ mov r0, #1
+ b _02213B94
+_02213B92:
+ mov r0, #0
+_02213B94:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD09_02213B9C
+MOD09_02213B9C: ; 0x02213B9C
+ push {r3, lr}
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ bl FUN_0222FF74
+ cmp r0, #0x4a
+ beq _02213BB8
+ cmp r0, #0x4b
+ beq _02213BB8
+ mov r1, #0x12
+ tst r0, r1
+ beq _02213BB8
+ mov r0, #1
+ pop {r3, pc}
+_02213BB8:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD09_02213BBC
+MOD09_02213BBC: ; 0x02213BBC
+ push {r3, lr}
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ bl FUN_0222FF74
+ cmp r0, #0x4a
+ beq _02213BD8
+ cmp r0, #0x4b
+ beq _02213BD8
+ mov r1, #8
+ tst r0, r1
+ beq _02213BD8
+ mov r0, #1
+ pop {r3, pc}
+_02213BD8:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD09_02213BDC
+MOD09_02213BDC: ; 0x02213BDC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD09_02213BBC
+ cmp r0, #1
+ bne _02213C04
+ ldr r0, _02213C08 ; =0x0000208F
+ ldrb r0, [r5, r0]
+ cmp r0, #2
+ bne _02213BFC
+ mov r0, #1
+ add r1, r4, #0
+ tst r1, r0
+ beq _02213C04
+ pop {r3, r4, r5, pc}
+_02213BFC:
+ mov r0, #1
+ add r1, r4, #0
+ tst r1, r0
+ beq _02213C06
+_02213C04:
+ mov r0, #0
+_02213C06:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02213C08: .word 0x0000208F
+
+ thumb_func_start MOD09_02213C0C
+MOD09_02213C0C: ; 0x02213C0C
+ ldr r2, [r0]
+ add r1, r2, #0
+ add r1, #0x34
+ ldrb r3, [r1]
+ cmp r3, #4
+ bne _02213C1C
+ ldrh r0, [r2, #0x24]
+ b _02213C2A
+_02213C1C:
+ ldrb r2, [r2, #0x11]
+ mov r1, #0x50
+ mul r1, r2
+ add r1, r0, r1
+ lsl r0, r3, #3
+ add r0, r1, r0
+ ldrh r0, [r0, #0x34]
+_02213C2A:
+ ldr r3, _02213C30 ; =0x0206EA55
+ bx r3
+ nop
+_02213C30: .word 0x0206EA55
+
+ thumb_func_start MOD09_02213C34
+MOD09_02213C34: ; 0x02213C34
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02213C64 ; =0x00002020
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_0200C644
+ ldr r0, _02213C68 ; =0x00002070
+ ldr r0, [r4, r0]
+ add r0, #0xa0
+ bl FUN_0201958C
+ ldr r0, _02213C68 ; =0x00002070
+ ldr r0, [r4, r0]
+ add r0, #0x60
+ bl FUN_0201958C
+ ldr r0, _02213C68 ; =0x00002070
+ ldr r0, [r4, r0]
+ add r0, #0x70
+ bl FUN_0201958C
+ pop {r4, pc}
+ nop
+_02213C64: .word 0x00002020
+_02213C68: .word 0x00002070
+
+ thumb_func_start MOD09_02213C6C
+MOD09_02213C6C: ; 0x02213C6C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD09_02213860
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #7
+ bl FUN_0201AC68
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02213C84
+MOD09_02213C84: ; 0x02213C84
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ cmp r4, #0x41
+ beq _02213CA8
+ cmp r4, #0x43
+ beq _02213CA8
+ cmp r4, #0x42
+ beq _02213CA8
+ bl FUN_02230214
+ add r1, r4, #0
+ mov r2, #1
+ add r3, r7, #0
+ bl FUN_0206EDD4
+_02213CA8:
+ add r0, r5, #0
+ bl FUN_02230218
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0206F1E4
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD09_02213CB8
+MOD09_02213CB8: ; 0x02213CB8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, _02213CE8 ; =0x00002050
+ ldr r4, _02213CEC ; =0x0221B06C
+ mov r6, #0
+ add r5, r7, r0
+_02213CC4:
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl FUN_02019150
+ add r6, r6, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r6, #2
+ blo _02213CC4
+ ldr r1, _02213CF0 ; =0x0000207A
+ add r0, r7, #0
+ ldrb r1, [r7, r1]
+ bl MOD09_02213CF4
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02213CE8: .word 0x00002050
+_02213CEC: .word 0x0221B06C
+_02213CF0: .word 0x0000207A
+
+ thumb_func_start MOD09_02213CF4
+MOD09_02213CF4: ; 0x02213CF4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ cmp r1, #9
+ bhi _02213D74
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213D08: ; jump table
+ .short _02213D1C - _02213D08 - 2 ; case 0
+ .short _02213D26 - _02213D08 - 2 ; case 1
+ .short _02213D30 - _02213D08 - 2 ; case 2
+ .short _02213D3A - _02213D08 - 2 ; case 3
+ .short _02213D44 - _02213D08 - 2 ; case 4
+ .short _02213D4E - _02213D08 - 2 ; case 5
+ .short _02213D58 - _02213D08 - 2 ; case 6
+ .short _02213D62 - _02213D08 - 2 ; case 7
+ .short _02213D58 - _02213D08 - 2 ; case 8
+ .short _02213D6C - _02213D08 - 2 ; case 9
+_02213D1C:
+ ldr r0, _02213DB4 ; =0x00002074
+ mov r1, #6
+ ldr r6, _02213DB8 ; =0x0221B120
+ strb r1, [r4, r0]
+ b _02213D74
+_02213D26:
+ ldr r0, _02213DB4 ; =0x00002074
+ mov r1, #4
+ ldr r6, _02213DBC ; =0x0221B0A8
+ strb r1, [r4, r0]
+ b _02213D74
+_02213D30:
+ ldr r0, _02213DB4 ; =0x00002074
+ mov r1, #0x23
+ ldr r6, _02213DC0 ; =0x0221B2C8
+ strb r1, [r4, r0]
+ b _02213D74
+_02213D3A:
+ ldr r0, _02213DB4 ; =0x00002074
+ mov r1, #0xb
+ ldr r6, _02213DC4 ; =0x0221B188
+ strb r1, [r4, r0]
+ b _02213D74
+_02213D44:
+ ldr r0, _02213DB4 ; =0x00002074
+ mov r1, #0x11
+ ldr r6, _02213DC8 ; =0x0221B240
+ strb r1, [r4, r0]
+ b _02213D74
+_02213D4E:
+ ldr r0, _02213DB4 ; =0x00002074
+ mov r1, #5
+ ldr r6, _02213DCC ; =0x0221B0C8
+ strb r1, [r4, r0]
+ b _02213D74
+_02213D58:
+ ldr r0, _02213DB4 ; =0x00002074
+ mov r1, #6
+ ldr r6, _02213DD0 ; =0x0221B0F0
+ strb r1, [r4, r0]
+ b _02213D74
+_02213D62:
+ ldr r0, _02213DB4 ; =0x00002074
+ mov r1, #0xc
+ ldr r6, _02213DD4 ; =0x0221B1E0
+ strb r1, [r4, r0]
+ b _02213D74
+_02213D6C:
+ ldr r0, _02213DB4 ; =0x00002074
+ mov r1, #7
+ ldr r6, _02213DD8 ; =0x0221B150
+ strb r1, [r4, r0]
+_02213D74:
+ ldr r1, _02213DB4 ; =0x00002074
+ ldr r0, [r4]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0, #0xc]
+ bl FUN_02018FF4
+ ldr r1, _02213DDC ; =0x00002070
+ mov r5, #0
+ str r0, [r4, r1]
+ add r0, r1, #4
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bls _02213DB2
+ add r7, r1, #4
+_02213D90:
+ ldr r1, _02213DDC ; =0x00002070
+ mov r0, #0x79
+ ldr r2, [r4, r1]
+ lsl r0, r0, #2
+ lsl r1, r5, #4
+ add r1, r2, r1
+ lsl r2, r5, #3
+ ldr r0, [r4, r0]
+ add r2, r6, r2
+ bl FUN_02019150
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldrb r0, [r4, r7]
+ cmp r5, r0
+ blo _02213D90
+_02213DB2:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02213DB4: .word 0x00002074
+_02213DB8: .word 0x0221B120
+_02213DBC: .word 0x0221B0A8
+_02213DC0: .word 0x0221B2C8
+_02213DC4: .word 0x0221B188
+_02213DC8: .word 0x0221B240
+_02213DCC: .word 0x0221B0C8
+_02213DD0: .word 0x0221B0F0
+_02213DD4: .word 0x0221B1E0
+_02213DD8: .word 0x0221B150
+_02213DDC: .word 0x00002070
+
+ thumb_func_start MOD09_02213DE0
+MOD09_02213DE0: ; 0x02213DE0
+ ldr r1, _02213DF0 ; =0x00002070
+ add r2, r0, #0
+ ldr r0, [r2, r1]
+ add r1, r1, #4
+ ldr r3, _02213DF4 ; =0x020191A5
+ ldrb r1, [r2, r1]
+ bx r3
+ nop
+_02213DF0: .word 0x00002070
+_02213DF4: .word 0x020191A5
+
+ thumb_func_start MOD09_02213DF8
+MOD09_02213DF8: ; 0x02213DF8
+ push {r3, r4, r5, lr}
+ ldr r1, _02213E20 ; =0x00002070
+ add r5, r0, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldrb r1, [r5, r1]
+ bl FUN_020191A4
+ ldr r0, _02213E24 ; =0x00002050
+ mov r4, #0
+ add r5, r5, r0
+_02213E0E:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #2
+ blo _02213E0E
+ pop {r3, r4, r5, pc}
+ nop
+_02213E20: .word 0x00002070
+_02213E24: .word 0x00002050
+
+ thumb_func_start MOD09_02213E28
+MOD09_02213E28: ; 0x02213E28
+ push {r3, lr}
+ cmp r1, #9
+ bhi _02213E82
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02213E3A: ; jump table
+ .short _02213E4E - _02213E3A - 2 ; case 0
+ .short _02213E54 - _02213E3A - 2 ; case 1
+ .short _02213E5A - _02213E3A - 2 ; case 2
+ .short _02213E60 - _02213E3A - 2 ; case 3
+ .short _02213E66 - _02213E3A - 2 ; case 4
+ .short _02213E6C - _02213E3A - 2 ; case 5
+ .short _02213E72 - _02213E3A - 2 ; case 6
+ .short _02213E78 - _02213E3A - 2 ; case 7
+ .short _02213E72 - _02213E3A - 2 ; case 8
+ .short _02213E7E - _02213E3A - 2 ; case 9
+_02213E4E:
+ bl MOD09_022155D0
+ pop {r3, pc}
+_02213E54:
+ bl MOD09_022156FC
+ pop {r3, pc}
+_02213E5A:
+ bl MOD09_02215A2C
+ pop {r3, pc}
+_02213E60:
+ bl MOD09_022158EC
+ pop {r3, pc}
+_02213E66:
+ bl MOD09_02215C44
+ pop {r3, pc}
+_02213E6C:
+ bl MOD09_0221609C
+ pop {r3, pc}
+_02213E72:
+ bl MOD09_02215DA8
+ pop {r3, pc}
+_02213E78:
+ bl MOD09_02215ED0
+ pop {r3, pc}
+_02213E7E:
+ bl MOD09_022161B0
+_02213E82:
+ pop {r3, pc}
+
+ thumb_func_start MOD09_02213E84
+MOD09_02213E84: ; 0x02213E84
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r6, r0, #0
+ ldr r0, _02214014 ; =0x00002070
+ str r3, [sp, #0x14]
+ ldr r5, [r6, r0]
+ lsl r4, r1, #4
+ ldr r0, [sp, #0x14]
+ mov r1, #0x50
+ mul r1, r0
+ add r7, r6, #4
+ add r0, r7, r1
+ str r1, [sp, #0x24]
+ ldr r1, [r6]
+ str r0, [sp, #0x20]
+ ldr r1, [r1, #0xc]
+ mov r0, #0xc
+ str r2, [sp, #0x10]
+ bl FUN_020219F4
+ ldr r1, [sp, #0x14]
+ str r0, [sp, #0x1c]
+ ldr r0, _02214018 ; =0x00001FA8
+ lsl r2, r1, #2
+ ldr r1, _0221401C ; =0x0221B090
+ ldr r0, [r6, r0]
+ ldr r1, [r1, r2]
+ bl FUN_0200A914
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x24]
+ ldr r0, [r7, r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _02214020 ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r6, r0]
+ bl FUN_0200ACF8
+ ldr r0, _02214020 ; =0x00001FAC
+ ldr r1, [sp, #0x1c]
+ ldr r0, [r6, r0]
+ ldr r2, [sp, #0x18]
+ bl FUN_0200B7B8
+ ldr r0, [sp, #0x10]
+ add r3, sp, #0x38
+ cmp r0, #0
+ bne _02213F06
+ ldrb r7, [r3, #0x14]
+ mov r0, #0xff
+ ldr r1, [sp, #0x10]
+ str r7, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02214024 ; =0x000F0E00
+ ldr r2, [sp, #0x1c]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldrb r3, [r3, #0x10]
+ add r0, r5, r4
+ bl FUN_0201BDE0
+ b _02213F22
+_02213F06:
+ ldrb r7, [r3, #0x14]
+ mov r0, #0xff
+ ldr r1, [sp, #0x10]
+ str r7, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02214028 ; =0x00070809
+ ldr r2, [sp, #0x1c]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldrb r3, [r3, #0x10]
+ add r0, r5, r4
+ bl FUN_0201BDE0
+_02213F22:
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x20]
+ ldrb r0, [r0, #0x16]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bne _02214008
+ ldr r0, [sp, #0x20]
+ ldrb r0, [r0, #0x17]
+ lsl r1, r0, #0x18
+ lsr r1, r1, #0x1f
+ bne _02214008
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1d
+ bne _02213FA6
+ ldr r0, _02214018 ; =0x00001FA8
+ mov r1, #0x10
+ ldr r0, [r6, r0]
+ bl FUN_0200A914
+ add r6, r0, #0
+ add r0, r5, r4
+ bl FUN_0201AB0C
+ str r0, [sp, #0x28]
+ mov r0, #0
+ add r1, r6, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldr r1, [sp, #0x28]
+ str r7, [sp]
+ lsl r1, r1, #3
+ sub r3, r1, r0
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ bne _02213F8A
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0221402C ; =0x00070800
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r5, r4
+ add r2, r6, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ b _02213F9E
+_02213F8A:
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214030 ; =0x000A0B00
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r5, r4
+ add r2, r6, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+_02213F9E:
+ add r0, r6, #0
+ bl FUN_02021A20
+ b _02214008
+_02213FA6:
+ cmp r0, #1
+ bne _02214008
+ ldr r0, _02214018 ; =0x00001FA8
+ mov r1, #0x11
+ ldr r0, [r6, r0]
+ bl FUN_0200A914
+ add r6, r0, #0
+ add r0, r5, r4
+ bl FUN_0201AB0C
+ str r0, [sp, #0x2c]
+ mov r0, #0
+ add r1, r6, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldr r1, [sp, #0x2c]
+ str r7, [sp]
+ lsl r1, r1, #3
+ sub r3, r1, r0
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ bne _02213FEE
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ mov r1, #0
+ add r0, r5, r4
+ add r2, r6, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ b _02214002
+_02213FEE:
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214034 ; =0x000C0D00
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r5, r4
+ add r2, r6, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+_02214002:
+ add r0, r6, #0
+ bl FUN_02021A20
+_02214008:
+ add r0, r5, r4
+ bl FUN_02019220
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02214014: .word 0x00002070
+_02214018: .word 0x00001FA8
+_0221401C: .word 0x0221B090
+_02214020: .word 0x00001FAC
+_02214024: .word 0x000F0E00
+_02214028: .word 0x00070809
+_0221402C: .word 0x00070800
+_02214030: .word 0x000A0B00
+_02214034: .word 0x000C0D00
+
+ thumb_func_start MOD09_02214038
+MOD09_02214038: ; 0x02214038
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0221407C ; =0x00002070
+ lsl r4, r1, #4
+ ldr r1, [r5, r0]
+ add r3, #8
+ add r1, r1, r4
+ str r1, [sp, #4]
+ str r3, [sp, #8]
+ add r1, sp, #0x10
+ ldrb r1, [r1, #0x10]
+ mov r3, #0x50
+ mul r3, r2
+ str r1, [sp, #0xc]
+ add r2, r5, r3
+ ldrb r2, [r2, #0x1a]
+ sub r0, #0xcc
+ ldr r0, [r5, r0]
+ lsl r2, r2, #0x19
+ mov r1, #1
+ lsr r2, r2, #0x19
+ mov r3, #3
+ bl FUN_0200BA78
+ ldr r0, _0221407C ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221407C: .word 0x00002070
+
+ thumb_func_start MOD09_02214080
+MOD09_02214080: ; 0x02214080
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0x50
+ add r7, r3, #0
+ mul r0, r2
+ add r3, r5, #4
+ add r0, r3, r0
+ str r0, [sp, #0xc]
+ add r0, sp, #0x18
+ ldrb r6, [r0, #0x10]
+ ldr r0, _022140F8 ; =0x00002070
+ lsl r4, r1, #4
+ ldr r1, [r5, r0]
+ sub r0, #0xcc
+ add r1, r1, r4
+ str r1, [sp]
+ str r7, [sp, #4]
+ str r6, [sp, #8]
+ ldr r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ ldrh r1, [r1, #0x10]
+ mov r2, #3
+ mov r3, #1
+ bl FUN_0200B9EC
+ add r3, r7, #0
+ ldr r2, _022140FC ; =0x00001FA4
+ str r6, [sp]
+ ldr r0, [r5, r2]
+ add r2, #0xcc
+ ldr r2, [r5, r2]
+ mov r1, #0
+ add r2, r2, r4
+ add r3, #0x18
+ bl FUN_0200B9A8
+ ldr r0, _022140F8 ; =0x00002070
+ add r7, #0x20
+ ldr r1, [r5, r0]
+ sub r0, #0xcc
+ add r1, r1, r4
+ str r1, [sp]
+ str r7, [sp, #4]
+ str r6, [sp, #8]
+ ldr r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ ldrh r1, [r1, #0x12]
+ mov r2, #3
+ mov r3, #0
+ bl FUN_0200B9EC
+ ldr r0, _022140F8 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022140F8: .word 0x00002070
+_022140FC: .word 0x00001FA4
+
+ thumb_func_start MOD09_02214100
+MOD09_02214100: ; 0x02214100
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ mov r0, #0x50
+ str r1, [sp, #8]
+ mul r0, r2
+ add r1, r4, #4
+ str r3, [sp, #0xc]
+ add r5, r1, r0
+ ldrh r0, [r5, #0x10]
+ ldrh r1, [r5, #0x12]
+ mov r2, #0x30
+ mov r7, #1
+ bl FUN_02079A0C
+ str r0, [sp, #0x14]
+ ldrh r0, [r5, #0x10]
+ ldrh r1, [r5, #0x12]
+ mov r2, #0x30
+ bl FUN_02079A54
+ cmp r0, #4
+ bhi _0221415E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221413A: ; jump table
+ .short _02214144 - _0221413A - 2 ; case 0
+ .short _0221415C - _0221413A - 2 ; case 1
+ .short _02214158 - _0221413A - 2 ; case 2
+ .short _02214156 - _0221413A - 2 ; case 3
+ .short _02214156 - _0221413A - 2 ; case 4
+_02214144:
+ ldr r0, _022141D4 ; =0x00002070
+ ldr r1, [r4, r0]
+ ldr r0, [sp, #8]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl FUN_02019220
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_02214156:
+ b _0221415E
+_02214158:
+ mov r7, #3
+ b _0221415E
+_0221415C:
+ mov r7, #5
+_0221415E:
+ add r0, sp, #0x20
+ ldrb r6, [r0, #0x10]
+ add r0, r7, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0x10]
+ lsl r5, r0, #4
+ ldr r0, [sp, #0x14]
+ add r3, r6, #1
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _022141D4 ; =0x00002070
+ lsl r1, r1, #0x18
+ ldr r0, [r4, r0]
+ lsl r3, r3, #0x10
+ ldr r2, [sp, #0xc]
+ add r0, r0, r5
+ lsr r1, r1, #0x18
+ lsr r3, r3, #0x10
+ bl FUN_020196F4
+ ldr r0, [sp, #0x14]
+ add r3, r6, #2
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _022141D4 ; =0x00002070
+ lsl r3, r3, #0x10
+ ldr r0, [r4, r0]
+ ldr r2, [sp, #0xc]
+ add r0, r0, r5
+ add r1, r7, #0
+ lsr r3, r3, #0x10
+ bl FUN_020196F4
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x10]
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _022141D4 ; =0x00002070
+ add r3, r6, #4
+ ldr r0, [r4, r0]
+ lsl r1, r1, #0x18
+ lsl r3, r3, #0x10
+ ldr r2, [sp, #0xc]
+ add r0, r0, r5
+ lsr r1, r1, #0x18
+ lsr r3, r3, #0x10
+ bl FUN_020196F4
+ ldr r0, _022141D4 ; =0x00002070
+ ldr r0, [r4, r0]
+ add r0, r0, r5
+ bl FUN_02019220
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022141D4: .word 0x00002070
+
+ thumb_func_start MOD09_022141D8
+MOD09_022141D8: ; 0x022141D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r5]
+ mov r0, #0x10
+ ldr r1, [r1, #0xc]
+ add r7, r2, #0
+ bl FUN_020219F4
+ add r6, r0, #0
+ ldr r0, _02214250 ; =0x00001FA8
+ mov r1, #8
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r2, #0x50
+ mul r2, r7
+ str r0, [sp, #0x10]
+ ldr r0, _02214254 ; =0x00001FAC
+ add r2, r5, r2
+ ldrh r2, [r2, #0x1c]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200ADCC
+ ldr r0, _02214254 ; =0x00001FAC
+ ldr r2, [sp, #0x10]
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214258 ; =0x000F0E00
+ lsl r4, r4, #4
+ str r0, [sp, #8]
+ ldr r0, _0221425C ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r2, r6, #0
+ add r0, r0, r4
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _0221425C ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02214250: .word 0x00001FA8
+_02214254: .word 0x00001FAC
+_02214258: .word 0x000F0E00
+_0221425C: .word 0x00002070
+
+ thumb_func_start MOD09_02214260
+MOD09_02214260: ; 0x02214260
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0x50
+ add r7, r1, #0
+ add r1, r4, #4
+ mul r0, r2
+ add r5, r1, r0
+ ldrh r0, [r5, #0x1a]
+ cmp r0, #0
+ bne _02214284
+ ldr r0, _022142EC ; =0x00001FA8
+ mov r1, #0x14
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _022142BA
+_02214284:
+ ldr r1, [r4]
+ mov r0, #0x12
+ ldr r1, [r1, #0xc]
+ bl FUN_020219F4
+ add r6, r0, #0
+ ldr r0, _022142EC ; =0x00001FA8
+ mov r1, #9
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ str r0, [sp, #0x10]
+ ldr r0, _022142F0 ; =0x00001FAC
+ ldrh r2, [r5, #0x1a]
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200AE38
+ ldr r0, _022142F0 ; =0x00001FAC
+ ldr r2, [sp, #0x10]
+ ldr r0, [r4, r0]
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+_022142BA:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022142F4 ; =0x000F0E00
+ lsl r5, r7, #4
+ str r0, [sp, #8]
+ ldr r0, _022142F8 ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r4, r0]
+ add r2, r6, #0
+ add r0, r0, r5
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _022142F8 ; =0x00002070
+ ldr r0, [r4, r0]
+ add r0, r0, r5
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022142EC: .word 0x00001FA8
+_022142F0: .word 0x00001FAC
+_022142F4: .word 0x000F0E00
+_022142F8: .word 0x00002070
+
+ thumb_func_start MOD09_022142FC
+MOD09_022142FC: ; 0x022142FC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ str r1, [sp, #0x10]
+ ldr r1, [r5]
+ ldr r0, _02214394 ; =0x00002070
+ ldr r1, [r1, #0xc]
+ ldr r4, [r5, r0]
+ mov r0, #0x10
+ str r3, [sp, #0x14]
+ lsl r6, r2, #4
+ bl FUN_020219F4
+ add r7, r0, #0
+ ldr r0, _02214398 ; =0x00001FA8
+ ldr r1, [sp, #0x14]
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ str r0, [sp, #0x18]
+ ldr r0, _0221439C ; =0x00001FAC
+ ldr r2, [sp, #0x10]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200AD5C
+ ldr r0, _0221439C ; =0x00001FAC
+ ldr r2, [sp, #0x18]
+ ldr r0, [r5, r0]
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ add r0, sp, #0x20
+ ldrh r0, [r0, #0x10]
+ cmp r0, #2
+ bne _02214360
+ add r0, r4, r6
+ bl FUN_0201AB0C
+ add r5, r0, #0
+ add r0, sp, #0x20
+ ldrh r0, [r0, #0x10]
+ add r1, r7, #0
+ mov r2, #0
+ bl FUN_02002E14
+ lsl r1, r5, #3
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ b _02214362
+_02214360:
+ mov r3, #0
+_02214362:
+ add r1, sp, #0x20
+ ldrh r0, [r1, #0x14]
+ add r2, r7, #0
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x38]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldrh r1, [r1, #0x10]
+ add r0, r4, r6
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r4, r6
+ bl FUN_02019220
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02214394: .word 0x00002070
+_02214398: .word 0x00001FA8
+_0221439C: .word 0x00001FAC
+
+ thumb_func_start MOD09_022143A0
+MOD09_022143A0: ; 0x022143A0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldr r0, _022143EC ; =0x00001FA8
+ str r2, [sp, #0x10]
+ add r5, r1, #0
+ ldr r0, [r4, r0]
+ add r6, r3, #0
+ mov r1, #0xe
+ bl FUN_0200A914
+ add r7, r0, #0
+ str r6, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022143F0 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, _022143F4 ; =0x00002070
+ lsl r5, r5, #4
+ ldr r0, [r4, r0]
+ ldr r3, [sp, #0x10]
+ add r0, r0, r5
+ add r2, r7, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ ldr r0, _022143F4 ; =0x00002070
+ ldr r0, [r4, r0]
+ add r0, r0, r5
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022143EC: .word 0x00001FA8
+_022143F0: .word 0x000F0E00
+_022143F4: .word 0x00002070
+
+ thumb_func_start MOD09_022143F8
+MOD09_022143F8: ; 0x022143F8
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, _02214450 ; =0x00002050
+ add r5, r1, #0
+ mov r1, #1
+ add r0, r4, r0
+ add r2, r1, #0
+ mov r3, #0xe
+ bl FUN_0200D0BC
+ ldr r0, _02214450 ; =0x00002050
+ mov r1, #0xf
+ add r0, r4, r0
+ bl FUN_02019620
+ ldr r0, _02214454 ; =0x00001FA8
+ add r1, r5, #0
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ add r5, r0, #0
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214458 ; =0x00010200
+ mov r1, #1
+ str r0, [sp, #8]
+ ldr r0, _02214450 ; =0x00002050
+ add r2, r5, #0
+ add r0, r4, r0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_02021A20
+ ldr r0, _02214450 ; =0x00002050
+ add r0, r4, r0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214450: .word 0x00002050
+_02214454: .word 0x00001FA8
+_02214458: .word 0x00010200
+
+ thumb_func_start MOD09_0221445C
+MOD09_0221445C: ; 0x0221445C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ ldr r3, _022144B8 ; =0x00002070
+ lsl r4, r1, #4
+ ldr r5, [r0, r3]
+ sub r3, #0xc8
+ ldr r0, [r0, r3]
+ add r1, r2, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ mov r0, #2
+ add r1, r7, #0
+ mov r2, #0
+ bl FUN_02002E14
+ add r6, r0, #0
+ add r0, r5, r4
+ bl FUN_0201AB0C
+ add r3, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022144BC ; =0x00070809
+ lsl r3, r3, #3
+ str r0, [sp, #8]
+ mov r0, #0
+ sub r3, r3, r6
+ str r0, [sp, #0xc]
+ add r0, r5, r4
+ mov r1, #2
+ add r2, r7, #0
+ lsr r3, r3, #1
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r5, r4
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022144B8: .word 0x00002070
+_022144BC: .word 0x00070809
+
+ thumb_func_start MOD09_022144C0
+MOD09_022144C0: ; 0x022144C0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ mov r0, #0x50
+ mul r0, r1
+ add r2, r5, #4
+ add r4, r2, r0
+ ldr r1, _0221467C ; =0x00002075
+ mov r0, #0x16
+ ldrb r2, [r5, r1]
+ sub r1, #0xcd
+ mul r0, r2
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ ldr r0, [r5, r1]
+ mov r1, #0x17
+ bl FUN_0200A914
+ mov r1, #0
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r2, _02214680 ; =0x000F0E00
+ add r0, #0x31
+ str r2, [sp, #8]
+ ldr r2, _02214684 ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r2, [r5, r2]
+ add r3, r1, #0
+ add r0, r2, r0
+ add r2, r7, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ ldr r0, _02214688 ; =0x00001FA8
+ mov r1, #0x18
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ ldr r1, [r5]
+ str r0, [sp, #0x18]
+ ldr r1, [r1, #0xc]
+ mov r0, #8
+ bl FUN_020219F4
+ mov r1, #0
+ str r0, [sp, #0x1c]
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldrb r2, [r4, #0x16]
+ ldr r0, _0221468C ; =0x00001FAC
+ mov r3, #3
+ lsl r2, r2, #0x19
+ ldr r0, [r5, r0]
+ lsr r2, r2, #0x19
+ bl FUN_0200AD38
+ ldr r0, _0221468C ; =0x00001FAC
+ ldr r1, [sp, #0x1c]
+ ldr r0, [r5, r0]
+ ldr r2, [sp, #0x18]
+ bl FUN_0200B7B8
+ mov r1, #0
+ add r0, r6, #0
+ add r0, #0xb
+ lsl r7, r0, #4
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214680 ; =0x000F0E00
+ ldr r2, [sp, #0x1c]
+ str r0, [sp, #8]
+ ldr r0, _02214684 ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r3, r1, #0
+ add r0, r0, r7
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ ldr r0, _02214688 ; =0x00001FA8
+ mov r1, #0x19
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0
+ str r0, [sp, #0x20]
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r2, _02214680 ; =0x000F0E00
+ add r0, #0x41
+ str r2, [sp, #8]
+ ldr r2, _02214684 ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r2, [r5, r2]
+ add r3, r1, #0
+ add r0, r2, r0
+ ldr r2, [sp, #0x20]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ ldr r0, _02214688 ; =0x00001FA8
+ mov r1, #0x1a
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ ldr r1, [r5]
+ str r0, [sp, #0x14]
+ ldr r1, [r1, #0xc]
+ mov r0, #0xe
+ bl FUN_020219F4
+ str r0, [sp, #0x10]
+ ldrb r0, [r4, #0x16]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x19
+ cmp r0, #0x64
+ bhs _022145E0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221468C ; =0x00001FAC
+ ldr r2, [r4, #0x24]
+ ldr r3, [r4, #0x1c]
+ ldr r0, [r5, r0]
+ sub r2, r2, r3
+ mov r1, #0
+ mov r3, #6
+ bl FUN_0200AD38
+ b _022145F4
+_022145E0:
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221468C ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r1, #0
+ mov r3, #6
+ bl FUN_0200AD38
+_022145F4:
+ ldr r0, _0221468C ; =0x00001FAC
+ ldr r1, [sp, #0x10]
+ ldr r0, [r5, r0]
+ ldr r2, [sp, #0x14]
+ bl FUN_0200B7B8
+ ldr r0, _02214684 ; =0x00002070
+ add r6, #0xc
+ ldr r0, [r5, r0]
+ lsl r4, r6, #4
+ add r0, r0, r4
+ bl FUN_0201AB0C
+ add r6, r0, #0
+ mov r0, #0
+ ldr r1, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02002E14
+ lsl r1, r6, #3
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ mov r1, #0
+ lsr r3, r0, #0x10
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214690 ; =0x00010200
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #8]
+ ldr r0, _02214684 ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ ldr r0, _02214684 ; =0x00002070
+ ldr r1, [r5, r0]
+ mov r0, #0x13
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl FUN_02019220
+ ldr r0, _02214684 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, r0, r7
+ bl FUN_02019220
+ ldr r0, _02214684 ; =0x00002070
+ ldr r1, [r5, r0]
+ mov r0, #5
+ lsl r0, r0, #6
+ add r0, r1, r0
+ bl FUN_02019220
+ ldr r0, _02214684 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_02019220
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221467C: .word 0x00002075
+_02214680: .word 0x000F0E00
+_02214684: .word 0x00002070
+_02214688: .word 0x00001FA8
+_0221468C: .word 0x00001FAC
+_02214690: .word 0x00010200
+
+ thumb_func_start MOD09_02214694
+MOD09_02214694: ; 0x02214694
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r1, #0
+ add r5, r0, #0
+ ldr r1, _02214778 ; =0x00002075
+ mov r0, #0x16
+ ldrb r2, [r5, r1]
+ sub r1, #0xcd
+ mul r0, r2
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, [r5, r1]
+ mov r1, #0x20
+ bl FUN_0200A914
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0221477C ; =0x000F0E00
+ add r2, r6, #0
+ str r0, [sp, #8]
+ ldr r0, _02214780 ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r3, r1, #0
+ add r0, #0xe0
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _02214784 ; =0x00001FA8
+ mov r1, #0x21
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ ldr r1, [r5]
+ str r0, [sp, #0x10]
+ ldr r1, [r1, #0xc]
+ mov r0, #8
+ bl FUN_020219F4
+ mov r1, #0
+ mov r2, #0x50
+ add r6, r0, #0
+ mul r2, r7
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02214788 ; =0x00001FAC
+ add r2, r5, r2
+ ldrh r2, [r2, #0xa]
+ ldr r0, [r5, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, _02214788 ; =0x00001FAC
+ ldr r2, [sp, #0x10]
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r6, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ add r0, r4, #5
+ lsl r4, r0, #4
+ ldr r0, _02214780 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r0, r0, r7
+ lsl r0, r0, #0x18
+ mov r1, #0
+ lsr r3, r0, #0x18
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0221478C ; =0x00010200
+ add r2, r6, #0
+ str r0, [sp, #8]
+ ldr r0, _02214780 ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _02214780 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, #0xe0
+ bl FUN_02019220
+ ldr r0, _02214780 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02214778: .word 0x00002075
+_0221477C: .word 0x000F0E00
+_02214780: .word 0x00002070
+_02214784: .word 0x00001FA8
+_02214788: .word 0x00001FAC
+_0221478C: .word 0x00010200
+
+ thumb_func_start MOD09_02214790
+MOD09_02214790: ; 0x02214790
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r1, #0
+ add r5, r0, #0
+ ldr r1, _02214874 ; =0x00002075
+ mov r0, #0x16
+ ldrb r2, [r5, r1]
+ sub r1, #0xcd
+ mul r0, r2
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, [r5, r1]
+ mov r1, #0x22
+ bl FUN_0200A914
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214878 ; =0x000F0E00
+ add r2, r6, #0
+ str r0, [sp, #8]
+ ldr r0, _0221487C ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r3, r1, #0
+ add r0, #0xf0
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _02214880 ; =0x00001FA8
+ mov r1, #0x23
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ ldr r1, [r5]
+ str r0, [sp, #0x10]
+ ldr r1, [r1, #0xc]
+ mov r0, #8
+ bl FUN_020219F4
+ mov r1, #0
+ mov r2, #0x50
+ add r6, r0, #0
+ mul r2, r7
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02214884 ; =0x00001FAC
+ add r2, r5, r2
+ ldrh r2, [r2, #0xc]
+ ldr r0, [r5, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, _02214884 ; =0x00001FAC
+ ldr r2, [sp, #0x10]
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r6, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ add r0, r4, #6
+ lsl r4, r0, #4
+ ldr r0, _0221487C ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r0, r0, r7
+ lsl r0, r0, #0x18
+ mov r1, #0
+ lsr r3, r0, #0x18
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214888 ; =0x00010200
+ add r2, r6, #0
+ str r0, [sp, #8]
+ ldr r0, _0221487C ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _0221487C ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, #0xf0
+ bl FUN_02019220
+ ldr r0, _0221487C ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02214874: .word 0x00002075
+_02214878: .word 0x000F0E00
+_0221487C: .word 0x00002070
+_02214880: .word 0x00001FA8
+_02214884: .word 0x00001FAC
+_02214888: .word 0x00010200
+
+ thumb_func_start MOD09_0221488C
+MOD09_0221488C: ; 0x0221488C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r1, #0
+ add r5, r0, #0
+ ldr r1, _02214974 ; =0x00002075
+ mov r0, #0x16
+ ldrb r2, [r5, r1]
+ sub r1, #0xcd
+ mul r0, r2
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, [r5, r1]
+ mov r1, #0x28
+ bl FUN_0200A914
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02214978 ; =0x000F0E00
+ add r2, r2, #1
+ str r0, [sp, #8]
+ ldr r0, _0221497C ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r3, r1, #0
+ add r0, r0, r2
+ add r2, r6, #0
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _02214980 ; =0x00001FA8
+ mov r1, #0x29
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ ldr r1, [r5]
+ str r0, [sp, #0x10]
+ ldr r1, [r1, #0xc]
+ mov r0, #8
+ bl FUN_020219F4
+ mov r1, #0
+ mov r2, #0x50
+ add r6, r0, #0
+ mul r2, r7
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02214984 ; =0x00001FAC
+ add r2, r5, r2
+ ldrh r2, [r2, #0xe]
+ ldr r0, [r5, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, _02214984 ; =0x00001FAC
+ ldr r2, [sp, #0x10]
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r6, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ add r0, r4, #7
+ lsl r4, r0, #4
+ ldr r0, _0221497C ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r0, r0, r7
+ lsl r0, r0, #0x18
+ mov r1, #0
+ lsr r3, r0, #0x18
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214988 ; =0x00010200
+ add r2, r6, #0
+ str r0, [sp, #8]
+ ldr r0, _0221497C ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _0221497C ; =0x00002070
+ ldr r1, [r5, r0]
+ mov r0, #1
+ lsl r0, r0, #8
+ add r0, r1, r0
+ bl FUN_02019220
+ ldr r0, _0221497C ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02214974: .word 0x00002075
+_02214978: .word 0x000F0E00
+_0221497C: .word 0x00002070
+_02214980: .word 0x00001FA8
+_02214984: .word 0x00001FAC
+_02214988: .word 0x00010200
+
+ thumb_func_start MOD09_0221498C
+MOD09_0221498C: ; 0x0221498C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r1, #0
+ add r4, r0, #0
+ ldr r1, _02214A74 ; =0x00002075
+ mov r0, #0x16
+ ldrb r2, [r4, r1]
+ sub r1, #0xcd
+ mul r0, r2
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [r4, r1]
+ mov r1, #0x24
+ bl FUN_0200A914
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r2, _02214A78 ; =0x000F0E00
+ add r0, #0x11
+ str r2, [sp, #8]
+ ldr r2, _02214A7C ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r2, [r4, r2]
+ add r3, r1, #0
+ add r0, r2, r0
+ add r2, r6, #0
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _02214A80 ; =0x00001FA8
+ mov r1, #0x25
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ ldr r1, [r4]
+ str r0, [sp, #0x10]
+ ldr r1, [r1, #0xc]
+ mov r0, #8
+ bl FUN_020219F4
+ mov r1, #0
+ mov r2, #0x50
+ add r6, r0, #0
+ mul r2, r7
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02214A84 ; =0x00001FAC
+ add r2, r4, r2
+ ldrh r2, [r2, #0x10]
+ ldr r0, [r4, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, _02214A84 ; =0x00001FAC
+ ldr r2, [sp, #0x10]
+ ldr r0, [r4, r0]
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r6, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ ldr r0, _02214A7C ; =0x00002070
+ add r5, #8
+ ldr r0, [r4, r0]
+ lsl r5, r5, #4
+ add r0, r0, r5
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r0, r0, r7
+ lsl r0, r0, #0x18
+ mov r1, #0
+ lsr r3, r0, #0x18
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214A88 ; =0x00010200
+ add r2, r6, #0
+ str r0, [sp, #8]
+ ldr r0, _02214A7C ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r4, r0]
+ add r0, r0, r5
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _02214A7C ; =0x00002070
+ ldr r1, [r4, r0]
+ mov r0, #0x11
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl FUN_02019220
+ ldr r0, _02214A7C ; =0x00002070
+ ldr r0, [r4, r0]
+ add r0, r0, r5
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02214A74: .word 0x00002075
+_02214A78: .word 0x000F0E00
+_02214A7C: .word 0x00002070
+_02214A80: .word 0x00001FA8
+_02214A84: .word 0x00001FAC
+_02214A88: .word 0x00010200
+
+ thumb_func_start MOD09_02214A8C
+MOD09_02214A8C: ; 0x02214A8C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r1, #0
+ add r4, r0, #0
+ ldr r1, _02214B74 ; =0x00002075
+ mov r0, #0x16
+ ldrb r2, [r4, r1]
+ sub r1, #0xcd
+ mul r0, r2
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [r4, r1]
+ mov r1, #0x26
+ bl FUN_0200A914
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r2, _02214B78 ; =0x000F0E00
+ add r0, #0x21
+ str r2, [sp, #8]
+ ldr r2, _02214B7C ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r2, [r4, r2]
+ add r3, r1, #0
+ add r0, r2, r0
+ add r2, r6, #0
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _02214B80 ; =0x00001FA8
+ mov r1, #0x27
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ ldr r1, [r4]
+ str r0, [sp, #0x10]
+ ldr r1, [r1, #0xc]
+ mov r0, #8
+ bl FUN_020219F4
+ mov r1, #0
+ mov r2, #0x50
+ add r6, r0, #0
+ mul r2, r7
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02214B84 ; =0x00001FAC
+ add r2, r4, r2
+ ldrh r2, [r2, #0x12]
+ ldr r0, [r4, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, _02214B84 ; =0x00001FAC
+ ldr r2, [sp, #0x10]
+ ldr r0, [r4, r0]
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r6, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ ldr r0, _02214B7C ; =0x00002070
+ add r5, #9
+ ldr r0, [r4, r0]
+ lsl r5, r5, #4
+ add r0, r0, r5
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r0, r0, r7
+ lsl r0, r0, #0x18
+ mov r1, #0
+ lsr r3, r0, #0x18
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214B88 ; =0x00010200
+ add r2, r6, #0
+ str r0, [sp, #8]
+ ldr r0, _02214B7C ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r4, r0]
+ add r0, r0, r5
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _02214B7C ; =0x00002070
+ ldr r1, [r4, r0]
+ mov r0, #0x12
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl FUN_02019220
+ ldr r0, _02214B7C ; =0x00002070
+ ldr r0, [r4, r0]
+ add r0, r0, r5
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02214B74: .word 0x00002075
+_02214B78: .word 0x000F0E00
+_02214B7C: .word 0x00002070
+_02214B80: .word 0x00001FA8
+_02214B84: .word 0x00001FAC
+_02214B88: .word 0x00010200
+
+ thumb_func_start MOD09_02214B8C
+MOD09_02214B8C: ; 0x02214B8C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ mov r0, #0x50
+ mul r0, r1
+ add r2, r5, #4
+ add r7, r2, r0
+ ldr r1, _02214D0C ; =0x00002075
+ mov r0, #0x16
+ ldrb r2, [r5, r1]
+ sub r1, #0xcd
+ mul r0, r2
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, [r5, r1]
+ mov r1, #0x1c
+ bl FUN_0200A914
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214D10 ; =0x000F0E00
+ add r2, r6, #0
+ str r0, [sp, #8]
+ ldr r0, _02214D14 ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r3, r1, #0
+ add r0, #0xd0
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _02214D18 ; =0x00001FA8
+ mov r1, #0x1f
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ str r0, [sp, #0x10]
+ mov r0, #0
+ ldr r1, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02002E14
+ str r0, [sp, #0x14]
+ ldr r0, _02214D14 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, #0x40
+ bl FUN_0201AB0C
+ lsl r1, r0, #3
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ sub r0, r1, r0
+ lsl r0, r0, #0xf
+ lsr r6, r0, #0x10
+ add r0, r4, #4
+ mov r1, #0
+ lsl r4, r0, #4
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214D1C ; =0x00010200
+ add r3, r6, #0
+ str r0, [sp, #8]
+ ldr r0, _02214D14 ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ ldr r0, _02214D18 ; =0x00001FA8
+ mov r1, #0x1d
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ ldr r1, [r5]
+ str r0, [sp, #0x18]
+ ldr r1, [r1, #0xc]
+ mov r0, #8
+ bl FUN_020219F4
+ str r0, [sp, #0x1c]
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02214D20 ; =0x00001FAC
+ ldrh r2, [r7, #0x10]
+ ldr r0, [r5, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, _02214D20 ; =0x00001FAC
+ ldr r1, [sp, #0x1c]
+ ldr r0, [r5, r0]
+ ldr r2, [sp, #0x18]
+ bl FUN_0200B7B8
+ mov r0, #0
+ ldr r1, [sp, #0x1c]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214D1C ; =0x00010200
+ ldr r2, [sp, #0x1c]
+ str r0, [sp, #8]
+ ldr r0, _02214D14 ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ sub r3, r6, r3
+ add r0, r0, r4
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ ldr r0, _02214D18 ; =0x00001FA8
+ mov r1, #0x1e
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ ldr r1, [r5]
+ str r0, [sp, #0x20]
+ ldr r1, [r1, #0xc]
+ mov r0, #8
+ bl FUN_020219F4
+ mov r1, #0
+ str r0, [sp, #0x24]
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02214D20 ; =0x00001FAC
+ ldrh r2, [r7, #0x12]
+ ldr r0, [r5, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, _02214D20 ; =0x00001FAC
+ ldr r1, [sp, #0x24]
+ ldr r0, [r5, r0]
+ ldr r2, [sp, #0x20]
+ bl FUN_0200B7B8
+ mov r1, #0
+ ldr r3, [sp, #0x14]
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214D1C ; =0x00010200
+ ldr r2, [sp, #0x24]
+ str r0, [sp, #8]
+ ldr r0, _02214D14 ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r3, r6, r3
+ add r0, r0, r4
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x24]
+ bl FUN_02021A20
+ ldr r0, _02214D14 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, #0xd0
+ bl FUN_02019220
+ ldr r0, _02214D14 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_02019220
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02214D0C: .word 0x00002075
+_02214D10: .word 0x000F0E00
+_02214D14: .word 0x00002070
+_02214D18: .word 0x00001FA8
+_02214D1C: .word 0x00010200
+_02214D20: .word 0x00001FAC
+
+ thumb_func_start MOD09_02214D24
+MOD09_02214D24: ; 0x02214D24
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, _02214D90 ; =0x00002075
+ add r6, r1, #0
+ ldrb r1, [r5, r0]
+ ldr r3, [r5]
+ mov r0, #0x16
+ add r4, r1, #0
+ mul r4, r0
+ ldr r2, _02214D94 ; =0x0000022A
+ ldr r3, [r3, #0xc]
+ mov r0, #1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ mov r1, #0x50
+ mul r1, r6
+ add r1, r5, r1
+ ldrh r1, [r1, #0x1c]
+ add r7, r0, #0
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r1, #0
+ add r0, r4, #2
+ lsl r4, r0, #4
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214D98 ; =0x00010200
+ add r2, r6, #0
+ str r0, [sp, #8]
+ ldr r0, _02214D9C ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r3, r1, #0
+ add r0, r0, r4
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_0200A8B8
+ ldr r0, _02214D9C ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, r0, r4
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02214D90: .word 0x00002075
+_02214D94: .word 0x0000022A
+_02214D98: .word 0x00010200
+_02214D9C: .word 0x00002070
+
+ thumb_func_start MOD09_02214DA0
+MOD09_02214DA0: ; 0x02214DA0
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r2, _02214DE0 ; =0x00002070
+ lsl r4, r1, #4
+ ldr r5, [r0, r2]
+ sub r2, #0xc8
+ ldr r0, [r0, r2]
+ mov r1, #0x33
+ bl FUN_0200A914
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214DE4 ; =0x000F0E00
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r5, r4
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r5, r4
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_02214DE0: .word 0x00002070
+_02214DE4: .word 0x000F0E00
+
+ thumb_func_start MOD09_02214DE8
+MOD09_02214DE8: ; 0x02214DE8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r2, [sp, #0x10]
+ add r5, r0, #0
+ ldr r2, _02214EC4 ; =0x00002070
+ ldr r0, [sp, #0x10]
+ lsl r6, r1, #4
+ ldr r4, [r5, r2]
+ cmp r0, #0
+ bne _02214E42
+ sub r2, #0xc8
+ ldr r0, [r5, r2]
+ mov r1, #0x32
+ bl FUN_0200A914
+ add r7, r0, #0
+ mov r0, #0
+ add r1, r7, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r0, r4, r6
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r0, r0, r5
+ lsl r0, r0, #0x10
+ mov r1, #0
+ lsr r3, r0, #0x10
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214EC8 ; =0x00010200
+ add r2, r7, #0
+ str r0, [sp, #8]
+ add r0, r4, r6
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ b _02214EB8
+_02214E42:
+ sub r2, #0xc8
+ ldr r0, [r5, r2]
+ mov r1, #0x34
+ bl FUN_0200A914
+ ldr r1, [r5]
+ str r0, [sp, #0x14]
+ ldr r1, [r1, #0xc]
+ mov r0, #8
+ bl FUN_020219F4
+ mov r1, #0
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02214ECC ; =0x00001FAC
+ ldr r2, [sp, #0x10]
+ ldr r0, [r5, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, _02214ECC ; =0x00001FAC
+ ldr r2, [sp, #0x14]
+ ldr r0, [r5, r0]
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r7, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r0, r4, r6
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r0, r0, r5
+ lsl r0, r0, #0x10
+ mov r1, #0
+ lsr r3, r0, #0x10
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214EC8 ; =0x00010200
+ add r2, r7, #0
+ str r0, [sp, #8]
+ add r0, r4, r6
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+_02214EB8:
+ add r0, r4, r6
+ bl FUN_02019220
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02214EC4: .word 0x00002070
+_02214EC8: .word 0x00010200
+_02214ECC: .word 0x00001FAC
+
+ thumb_func_start MOD09_02214ED0
+MOD09_02214ED0: ; 0x02214ED0
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r2, _02214F10 ; =0x00002070
+ lsl r4, r1, #4
+ ldr r5, [r0, r2]
+ sub r2, #0xc8
+ ldr r0, [r0, r2]
+ mov r1, #0x30
+ bl FUN_0200A914
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214F14 ; =0x000F0E00
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r5, r4
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r5, r4
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_02214F10: .word 0x00002070
+_02214F14: .word 0x000F0E00
+
+ thumb_func_start MOD09_02214F18
+MOD09_02214F18: ; 0x02214F18
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r2, [sp, #0x10]
+ add r5, r0, #0
+ ldr r2, _02214FF4 ; =0x00002070
+ ldr r0, [sp, #0x10]
+ lsl r6, r1, #4
+ ldr r4, [r5, r2]
+ cmp r0, #1
+ bhi _02214F72
+ sub r2, #0xc8
+ ldr r0, [r5, r2]
+ mov r1, #0x32
+ bl FUN_0200A914
+ add r7, r0, #0
+ mov r0, #0
+ add r1, r7, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r0, r4, r6
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r0, r0, r5
+ lsl r0, r0, #0x10
+ mov r1, #0
+ lsr r3, r0, #0x10
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214FF8 ; =0x00010200
+ add r2, r7, #0
+ str r0, [sp, #8]
+ add r0, r4, r6
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ b _02214FE8
+_02214F72:
+ sub r2, #0xc8
+ ldr r0, [r5, r2]
+ mov r1, #0x31
+ bl FUN_0200A914
+ ldr r1, [r5]
+ str r0, [sp, #0x14]
+ ldr r1, [r1, #0xc]
+ mov r0, #8
+ bl FUN_020219F4
+ mov r1, #0
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02214FFC ; =0x00001FAC
+ ldr r2, [sp, #0x10]
+ ldr r0, [r5, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, _02214FFC ; =0x00001FAC
+ ldr r2, [sp, #0x14]
+ ldr r0, [r5, r0]
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r7, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r0, r4, r6
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r0, r0, r5
+ lsl r0, r0, #0x10
+ mov r1, #0
+ lsr r3, r0, #0x10
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02214FF8 ; =0x00010200
+ add r2, r7, #0
+ str r0, [sp, #8]
+ add r0, r4, r6
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+_02214FE8:
+ add r0, r4, r6
+ bl FUN_02019220
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02214FF4: .word 0x00002070
+_02214FF8: .word 0x00010200
+_02214FFC: .word 0x00001FAC
+
+ thumb_func_start MOD09_02215000
+MOD09_02215000: ; 0x02215000
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r3, r0, #0
+ ldr r0, _02215054 ; =0x00002070
+ add r6, r2, #0
+ ldr r5, [r3, r0]
+ ldr r3, [r3]
+ lsl r4, r1, #4
+ ldr r2, _02215058 ; =0x0000024B
+ ldr r3, [r3, #0xc]
+ mov r0, #1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r1, r6, #0
+ add r7, r0, #0
+ bl FUN_0200A914
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0221505C ; =0x00010200
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r5, r4
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_0200A8B8
+ add r0, r5, r4
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02215054: .word 0x00002070
+_02215058: .word 0x0000024B
+_0221505C: .word 0x00010200
+
+ thumb_func_start MOD09_02215060
+MOD09_02215060: ; 0x02215060
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ ldr r0, _022150C0 ; =0x00002070
+ lsl r4, r1, #4
+ ldr r5, [r6, r0]
+ add r0, r2, #0
+ mov r1, #0xa
+ bl FUN_0206AB18
+ bl FUN_0208315C
+ ldr r3, [r6]
+ add r7, r0, #0
+ ldr r3, [r3, #0xc]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xc5
+ bl FUN_0200A86C
+ add r1, r7, #0
+ str r0, [sp, #0x10]
+ bl FUN_0200A914
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022150C4 ; =0x00010200
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r5, r4
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x10]
+ bl FUN_0200A8B8
+ add r0, r5, r4
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022150C0: .word 0x00002070
+_022150C4: .word 0x00010200
+
+ thumb_func_start MOD09_022150C8
+MOD09_022150C8: ; 0x022150C8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ ldr r2, _02215124 ; =0x00002070
+ lsl r4, r1, #4
+ ldr r5, [r0, r2]
+ sub r2, #0xc8
+ ldr r0, [r0, r2]
+ mov r1, #0x35
+ bl FUN_0200A914
+ add r7, r0, #0
+ mov r0, #0
+ add r1, r7, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r5, r4
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r1, r0, r6
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ lsl r0, r0, #0xf
+ mov r1, #0
+ lsr r3, r0, #0x10
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02215128 ; =0x000F0E00
+ add r2, r7, #0
+ str r0, [sp, #8]
+ add r0, r5, r4
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r5, r4
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02215124: .word 0x00002070
+_02215128: .word 0x000F0E00
+
+ thumb_func_start MOD09_0221512C
+MOD09_0221512C: ; 0x0221512C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r3, _022151A0 ; =0x00002070
+ lsl r4, r1, #4
+ ldr r5, [r0, r3]
+ cmp r2, #0
+ beq _02215144
+ cmp r2, #1
+ beq _02215152
+ cmp r2, #2
+ beq _02215160
+ b _0221516C
+_02215144:
+ sub r3, #0xc8
+ ldr r0, [r0, r3]
+ mov r1, #0x36
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _0221516C
+_02215152:
+ sub r3, #0xc8
+ ldr r0, [r0, r3]
+ mov r1, #0x38
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _0221516C
+_02215160:
+ sub r3, #0xc8
+ ldr r0, [r0, r3]
+ mov r1, #0x37
+ bl FUN_0200A914
+ add r6, r0, #0
+_0221516C:
+ mov r0, #0
+ add r1, r6, #0
+ add r2, r0, #0
+ mov r3, #0x38
+ bl FUN_02002F40
+ mov r1, #0
+ add r3, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022151A4 ; =0x00010200
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r5, r4
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r5, r4
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022151A0: .word 0x00002070
+_022151A4: .word 0x00010200
+
+ thumb_func_start MOD09_022151A8
+MOD09_022151A8: ; 0x022151A8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r5, r0, #0
+ ldr r0, _022152CC ; =0x00002070
+ lsl r6, r1, #4
+ ldr r4, [r5, r0]
+ sub r0, #0xc8
+ ldr r0, [r5, r0]
+ mov r1, #0x2e
+ str r2, [sp, #0x10]
+ str r3, [sp, #0x14]
+ bl FUN_0200A914
+ str r0, [sp, #0x18]
+ mov r0, #0
+ ldr r1, [sp, #0x18]
+ add r2, r0, #0
+ bl FUN_02002E14
+ str r0, [sp, #0x1c]
+ add r0, r4, r6
+ bl FUN_0201AB0C
+ lsl r1, r0, #3
+ ldr r0, [sp, #0x1c]
+ ldr r2, [sp, #0x18]
+ sub r0, r1, r0
+ lsr r7, r0, #1
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022152D0 ; =0x000F0E00
+ add r3, r7, #0
+ str r0, [sp, #8]
+ add r0, r4, r6
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, _022152D4 ; =0x00001FA8
+ mov r1, #0x2c
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ ldr r1, [r5]
+ str r0, [sp, #0x20]
+ ldr r1, [r1, #0xc]
+ mov r0, #6
+ bl FUN_020219F4
+ mov r1, #0
+ str r0, [sp, #0x24]
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _022152D8 ; =0x00001FAC
+ ldr r2, [sp, #0x10]
+ ldr r0, [r5, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, _022152D8 ; =0x00001FAC
+ ldr r1, [sp, #0x24]
+ ldr r0, [r5, r0]
+ ldr r2, [sp, #0x20]
+ bl FUN_0200B7B8
+ mov r0, #0
+ ldr r1, [sp, #0x24]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022152D0 ; =0x000F0E00
+ ldr r2, [sp, #0x24]
+ str r0, [sp, #8]
+ add r0, r4, r6
+ sub r3, r7, r3
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x24]
+ bl FUN_02021A20
+ ldr r0, _022152D4 ; =0x00001FA8
+ mov r1, #0x2d
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ ldr r1, [r5]
+ str r0, [sp, #0x28]
+ ldr r1, [r1, #0xc]
+ mov r0, #6
+ bl FUN_020219F4
+ mov r1, #0
+ str r0, [sp, #0x2c]
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _022152D8 ; =0x00001FAC
+ ldr r2, [sp, #0x14]
+ ldr r0, [r5, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, _022152D8 ; =0x00001FAC
+ ldr r1, [sp, #0x2c]
+ ldr r0, [r5, r0]
+ ldr r2, [sp, #0x28]
+ bl FUN_0200B7B8
+ mov r1, #0
+ ldr r3, [sp, #0x1c]
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022152D0 ; =0x000F0E00
+ ldr r2, [sp, #0x2c]
+ str r0, [sp, #8]
+ add r0, r4, r6
+ add r3, r7, r3
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x28]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x2c]
+ bl FUN_02021A20
+ add r0, r4, r6
+ bl FUN_02019220
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022152CC: .word 0x00002070
+_022152D0: .word 0x000F0E00
+_022152D4: .word 0x00001FA8
+_022152D8: .word 0x00001FAC
+
+ thumb_func_start MOD09_022152DC
+MOD09_022152DC: ; 0x022152DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ lsl r4, r1, #4
+ ldr r1, [r0]
+ ldr r2, _02215344 ; =0x00002070
+ add r1, #0x34
+ ldrb r1, [r1]
+ ldr r5, [r0, r2]
+ cmp r1, #4
+ bne _022152FC
+ sub r2, #0xc8
+ ldr r0, [r0, r2]
+ mov r1, #0x3b
+ bl FUN_0200A914
+ b _02215306
+_022152FC:
+ sub r2, #0xc8
+ ldr r0, [r0, r2]
+ mov r1, #0x3a
+ bl FUN_0200A914
+_02215306:
+ add r6, r0, #0
+ mov r0, #2
+ add r1, r6, #0
+ mov r2, #0
+ bl FUN_02002E14
+ add r7, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02215348 ; =0x00070809
+ mov r3, #0x60
+ str r0, [sp, #8]
+ mov r0, #0
+ sub r3, r3, r7
+ str r0, [sp, #0xc]
+ add r0, r5, r4
+ mov r1, #2
+ add r2, r6, #0
+ lsr r3, r3, #1
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r5, r4
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02215344: .word 0x00002070
+_02215348: .word 0x00070809
+
+ thumb_func_start MOD09_0221534C
+MOD09_0221534C: ; 0x0221534C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, _022153A4 ; =0x0000207A
+ ldrb r1, [r4, r0]
+ cmp r1, #7
+ bne _02215362
+ sub r0, #0xa
+ ldr r5, [r4, r0]
+ add r5, #0x80
+ b _02215368
+_02215362:
+ sub r0, #0xa
+ ldr r5, [r4, r0]
+ add r5, #0x50
+_02215368:
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _022153A8 ; =0x00001FA8
+ mov r1, #0x3c
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022153AC ; =0x00010200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022153A4: .word 0x0000207A
+_022153A8: .word 0x00001FA8
+_022153AC: .word 0x00010200
+
+ thumb_func_start MOD09_022153B0
+MOD09_022153B0: ; 0x022153B0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ str r1, [sp, #0x10]
+ ldr r1, [r5]
+ ldr r0, _022154EC ; =0x00002070
+ ldr r1, [r1, #0xc]
+ ldr r4, [r5, r0]
+ mov r0, #6
+ lsl r6, r2, #4
+ bl FUN_020219F4
+ add r7, r0, #0
+ ldr r0, _022154F0 ; =0x00001FA8
+ mov r1, #0x2b
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ str r0, [sp, #0x14]
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022154F4 ; =0x000F0E00
+ ldr r2, [sp, #0x14]
+ str r0, [sp, #8]
+ mov r1, #0
+ add r0, r4, r6
+ mov r3, #0x28
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ ldr r0, _022154F0 ; =0x00001FA8
+ mov r1, #0x2e
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ str r0, [sp, #0x18]
+ mov r0, #0
+ ldr r1, [sp, #0x18]
+ add r2, r0, #0
+ bl FUN_02002E14
+ str r0, [sp, #0x1c]
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022154F4 ; =0x000F0E00
+ ldr r2, [sp, #0x18]
+ str r0, [sp, #8]
+ mov r1, #0
+ add r0, r4, r6
+ mov r3, #0x50
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, _022154F0 ; =0x00001FA8
+ mov r1, #0x2d
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0
+ str r0, [sp, #0x20]
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x10]
+ ldr r0, _022154F8 ; =0x00001FAC
+ ldrb r2, [r2, #3]
+ ldr r0, [r5, r0]
+ mov r3, #2
+ bl FUN_0200AD38
+ ldr r0, _022154F8 ; =0x00001FAC
+ ldr r2, [sp, #0x20]
+ ldr r0, [r5, r0]
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022154F4 ; =0x000F0E00
+ ldr r3, [sp, #0x1c]
+ str r0, [sp, #8]
+ mov r1, #0
+ add r3, #0x50
+ add r0, r4, r6
+ add r2, r7, #0
+ str r1, [sp, #0xc]
+ str r3, [sp, #0x1c]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ ldr r0, _022154F0 ; =0x00001FA8
+ mov r1, #0x2c
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0
+ str r0, [sp, #0x24]
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x10]
+ ldr r0, _022154F8 ; =0x00001FAC
+ ldrb r2, [r2, #2]
+ ldr r0, [r5, r0]
+ mov r3, #2
+ bl FUN_0200AD38
+ ldr r0, _022154F8 ; =0x00001FAC
+ ldr r2, [sp, #0x24]
+ ldr r0, [r5, r0]
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r7, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r5, r0, #0
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022154F4 ; =0x000F0E00
+ mov r3, #0x50
+ str r0, [sp, #8]
+ mov r1, #0
+ add r0, r4, r6
+ add r2, r7, #0
+ sub r3, r3, r5
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x24]
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r4, r6
+ bl FUN_02019220
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022154EC: .word 0x00002070
+_022154F0: .word 0x00001FA8
+_022154F4: .word 0x000F0E00
+_022154F8: .word 0x00001FAC
+
+ thumb_func_start MOD09_022154FC
+MOD09_022154FC: ; 0x022154FC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ str r1, [sp, #0x10]
+ ldr r1, [r5]
+ ldr r0, _022155C0 ; =0x00002070
+ ldr r1, [r1, #0xc]
+ ldr r4, [r5, r0]
+ mov r0, #6
+ lsl r6, r2, #4
+ bl FUN_020219F4
+ str r0, [sp, #0x14]
+ ldr r0, _022155C4 ; =0x00001FA8
+ mov r1, #0x2b
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ str r0, [sp, #0x18]
+ mov r0, #0
+ ldr r1, [sp, #0x18]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r7, r0, #0
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ add r7, #0x28
+ mov r0, #0x50
+ sub r0, r0, r7
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #0x10
+ lsl r2, r7, #0x10
+ str r0, [sp, #4]
+ add r0, r4, r6
+ mov r1, #0
+ lsr r2, r2, #0x10
+ mov r3, #0x18
+ bl FUN_020196F4
+ ldr r0, _022155C4 ; =0x00001FA8
+ mov r1, #0x2c
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x10]
+ ldr r0, _022155C8 ; =0x00001FAC
+ ldrb r2, [r2, #2]
+ ldr r0, [r5, r0]
+ mov r3, #2
+ bl FUN_0200AD38
+ ldr r0, _022155C8 ; =0x00001FAC
+ ldr r1, [sp, #0x14]
+ ldr r0, [r5, r0]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ ldr r1, [sp, #0x14]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r5, r0, #0
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022155CC ; =0x000F0E00
+ mov r3, #0x50
+ str r0, [sp, #8]
+ mov r1, #0
+ ldr r2, [sp, #0x14]
+ add r0, r4, r6
+ sub r3, r3, r5
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ add r0, r4, r6
+ bl FUN_02019220
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022155C0: .word 0x00002070
+_022155C4: .word 0x00001FA8
+_022155C8: .word 0x00001FAC
+_022155CC: .word 0x000F0E00
+
+ thumb_func_start MOD09_022155D0
+MOD09_022155D0: ; 0x022155D0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r5]
+ mov r4, #0
+ ldr r0, [r0]
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _02215656
+ add r0, r4, #0
+ add r7, r5, #0
+ str r0, [sp, #8]
+ add r6, r5, #0
+ add r7, #0x1b
+_022155EE:
+ ldr r0, _02215678 ; =0x00002070
+ ldr r1, [r5, r0]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldrh r0, [r6, #8]
+ cmp r0, #0
+ beq _0221563E
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #8
+ lsl r3, r4, #0x10
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #2
+ lsr r3, r3, #0x10
+ bl MOD09_02213E84
+ ldrb r0, [r7]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bne _0221562A
+ lsl r1, r4, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl MOD09_0221567C
+_0221562A:
+ ldr r0, [r6, #4]
+ bl FUN_0207C2D4
+ cmp r0, #7
+ bne _0221563E
+ lsl r1, r4, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl MOD09_022156DC
+_0221563E:
+ ldr r0, [sp, #8]
+ add r6, #0x50
+ add r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r7, #0x50
+ ldr r0, [r0]
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _022155EE
+_02215656:
+ ldr r0, [r5]
+ add r0, #0x35
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _0221566C
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD09_022143F8
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0221566C:
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD09_022143F8
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02215678: .word 0x00002070
+
+ thumb_func_start MOD09_0221567C
+MOD09_0221567C: ; 0x0221567C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #8
+ add r6, r1, #0
+ str r0, [sp, #4]
+ ldr r0, _022156D8 ; =0x00002070
+ lsl r4, r6, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ add r0, r0, r4
+ mov r2, #0x38
+ mov r3, #0x20
+ bl FUN_020196F4
+ mov r2, #0x40
+ str r2, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ ldr r0, _022156D8 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ mov r3, #0x18
+ add r0, r0, r4
+ bl FUN_020196F4
+ mov r0, #0x20
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r6, #0
+ mov r3, #0x38
+ bl MOD09_02214080
+ mov r0, #0x18
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r6, #0
+ mov r3, #0x40
+ bl MOD09_02214100
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022156D8: .word 0x00002070
+
+ thumb_func_start MOD09_022156DC
+MOD09_022156DC: ; 0x022156DC
+ push {r3, lr}
+ mov r2, #0x50
+ mul r2, r1
+ add r2, r0, r2
+ ldrb r2, [r2, #0x1b]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1f
+ bne _022156F8
+ mov r2, #0x20
+ str r2, [sp]
+ add r2, r1, #0
+ mov r3, #0
+ bl MOD09_02214038
+_022156F8:
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_022156FC
+MOD09_022156FC: ; 0x022156FC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02215780 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_02019620
+ ldr r0, _02215780 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r4, r0]
+ add r0, #0x10
+ bl FUN_02019620
+ ldr r0, _02215780 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r4, r0]
+ add r0, #0x20
+ bl FUN_02019620
+ ldr r0, _02215780 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r4, r0]
+ add r0, #0x30
+ bl FUN_02019620
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldrb r1, [r1, #0x11]
+ bl MOD09_02215784
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xf
+ bl MOD09_0221445C
+ ldr r0, [r4]
+ ldrb r1, [r0, #0x11]
+ mov r0, #0x50
+ mul r0, r1
+ add r0, r4, r0
+ ldrb r0, [r0, #0x1b]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bne _0221576A
+ add r0, r4, #0
+ mov r1, #2
+ mov r2, #0x12
+ bl MOD09_0221445C
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #0x13
+ bl MOD09_0221445C
+ pop {r4, pc}
+_0221576A:
+ ldr r0, _02215780 ; =0x00002070
+ ldr r0, [r4, r0]
+ add r0, #0x20
+ bl FUN_02019220
+ ldr r0, _02215780 ; =0x00002070
+ ldr r0, [r4, r0]
+ add r0, #0x30
+ bl FUN_02019220
+ pop {r4, pc}
+ .align 2, 0
+_02215780: .word 0x00002070
+
+ thumb_func_start MOD09_02215784
+MOD09_02215784: ; 0x02215784
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ ldr r0, _022158D0 ; =0x00002070
+ add r6, r1, #0
+ ldr r0, [r4, r0]
+ ldr r1, [r4]
+ str r0, [sp, #0x18]
+ mov r0, #0x50
+ add r7, r6, #0
+ add r5, r4, #4
+ mul r7, r0
+ add r0, r5, r7
+ str r0, [sp, #0x14]
+ ldr r1, [r1, #0xc]
+ mov r0, #0xc
+ bl FUN_020219F4
+ str r0, [sp, #0x10]
+ ldr r0, _022158D4 ; =0x00001FA8
+ ldr r1, _022158D8 ; =0x0221B090
+ lsl r2, r6, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r1, r2]
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r0, [r5, r7]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _022158DC ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_0200ACF8
+ ldr r0, _022158DC ; =0x00001FAC
+ ldr r1, [sp, #0x10]
+ ldr r0, [r4, r0]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x14]
+ mov r5, #0
+ ldrb r0, [r0, #0x16]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bne _02215818
+ ldr r0, [sp, #0x14]
+ ldrb r0, [r0, #0x17]
+ lsl r1, r0, #0x18
+ lsr r1, r1, #0x1f
+ bne _02215818
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1d
+ bne _02215808
+ ldr r0, _022158D4 ; =0x00001FA8
+ mov r1, #0x10
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ add r5, r0, #0
+ b _02215818
+_02215808:
+ cmp r0, #1
+ bne _02215818
+ ldr r0, _022158D4 ; =0x00001FA8
+ mov r1, #0x11
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ add r5, r0, #0
+_02215818:
+ ldr r1, [sp, #0x10]
+ mov r0, #2
+ mov r2, #0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r5, #0
+ bne _02215830
+ mov r7, #0
+ add r4, r7, #0
+ b _02215840
+_02215830:
+ mov r0, #0
+ add r1, r5, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ mov r4, #8
+_02215840:
+ ldr r0, [sp, #0x18]
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r0, r0, r6
+ sub r0, r0, r7
+ sub r1, r0, r4
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ lsl r0, r0, #0x17
+ lsr r7, r0, #0x18
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022158E0 ; =0x00070809
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x18]
+ mov r1, #2
+ add r3, r7, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ cmp r5, #0
+ beq _022158C6
+ ldr r0, [sp, #0x14]
+ ldrb r0, [r0, #0x17]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1d
+ bne _022158A4
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022158E4 ; =0x000A0B00
+ add r3, r7, r6
+ str r0, [sp, #8]
+ mov r1, #0
+ ldr r0, [sp, #0x18]
+ add r2, r5, #0
+ add r3, r4, r3
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ b _022158C0
+_022158A4:
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022158E8 ; =0x000C0D00
+ add r3, r7, r6
+ str r0, [sp, #8]
+ mov r1, #0
+ ldr r0, [sp, #0x18]
+ add r2, r5, #0
+ add r3, r4, r3
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+_022158C0:
+ add r0, r5, #0
+ bl FUN_02021A20
+_022158C6:
+ ldr r0, [sp, #0x18]
+ bl FUN_02019220
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022158D0: .word 0x00002070
+_022158D4: .word 0x00001FA8
+_022158D8: .word 0x0221B090
+_022158DC: .word 0x00001FAC
+_022158E0: .word 0x00070809
+_022158E4: .word 0x000A0B00
+_022158E8: .word 0x000C0D00
+
+ thumb_func_start MOD09_022158EC
+MOD09_022158EC: ; 0x022158EC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ ldr r0, _02215A1C ; =0x00002075
+ mov r1, #6
+ ldrb r2, [r5, r0]
+ sub r0, r0, #5
+ mul r1, r2
+ lsl r1, r1, #0x10
+ lsr r6, r1, #0x10
+ ldr r1, [r5, r0]
+ lsl r0, r6, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r6, #1
+ lsl r0, r0, #4
+ str r0, [sp, #0x18]
+ ldr r0, _02215A20 ; =0x00002070
+ ldr r1, [r5, r0]
+ ldr r0, [sp, #0x18]
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r6, #2
+ lsl r0, r0, #4
+ str r0, [sp, #0x14]
+ ldr r0, _02215A20 ; =0x00002070
+ ldr r1, [r5, r0]
+ ldr r0, [sp, #0x14]
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r6, #3
+ lsl r0, r0, #4
+ str r0, [sp, #0x10]
+ ldr r0, _02215A20 ; =0x00002070
+ ldr r1, [r5, r0]
+ ldr r0, [sp, #0x10]
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r6, #4
+ lsl r0, r0, #4
+ str r0, [sp, #0xc]
+ ldr r0, _02215A20 ; =0x00002070
+ ldr r1, [r5, r0]
+ ldr r0, [sp, #0xc]
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215A20 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x50
+ bl FUN_02019620
+ mov r2, #0
+ str r2, [sp]
+ str r2, [sp, #4]
+ ldr r3, [r5]
+ add r0, r5, #0
+ ldrb r3, [r3, #0x11]
+ add r1, r6, #0
+ bl MOD09_02213E84
+ add r0, r5, #0
+ str r0, [sp, #0x1c]
+ add r0, #0x34
+ mov r4, #0
+ add r7, r6, #1
+ str r0, [sp, #0x1c]
+_02215986:
+ ldr r0, [r5]
+ ldrb r1, [r0, #0x11]
+ mov r0, #0x50
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, [sp, #0x1c]
+ lsl r1, r4, #3
+ add r0, r0, r2
+ str r1, [sp, #0x20]
+ ldrh r1, [r0, r1]
+ str r0, [sp, #0x24]
+ cmp r1, #0
+ beq _022159C8
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ ldr r0, _02215A24 ; =0x00070809
+ ldr r3, _02215A28 ; =0x0221B07C
+ lsl r6, r4, #2
+ str r0, [sp, #8]
+ ldr r3, [r3, r6]
+ add r0, r5, #0
+ add r2, r7, r4
+ bl MOD09_022142FC
+ ldr r2, [sp, #0x20]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ add r1, r1, r2
+ add r2, r7, r4
+ bl MOD09_022153B0
+_022159C8:
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #4
+ blo _02215986
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0x12
+ bl MOD09_0221445C
+ ldr r0, _02215A20 ; =0x00002070
+ ldr r1, [r5, r0]
+ ldr r0, [sp, #0x18]
+ add r0, r1, r0
+ bl FUN_02019220
+ ldr r0, _02215A20 ; =0x00002070
+ ldr r1, [r5, r0]
+ ldr r0, [sp, #0x14]
+ add r0, r1, r0
+ bl FUN_02019220
+ ldr r0, _02215A20 ; =0x00002070
+ ldr r1, [r5, r0]
+ ldr r0, [sp, #0x10]
+ add r0, r1, r0
+ bl FUN_02019220
+ ldr r0, _02215A20 ; =0x00002070
+ ldr r1, [r5, r0]
+ ldr r0, [sp, #0xc]
+ add r0, r1, r0
+ bl FUN_02019220
+ ldr r1, _02215A1C ; =0x00002075
+ mov r0, #1
+ ldrb r2, [r5, r1]
+ eor r0, r2
+ strb r0, [r5, r1]
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02215A1C: .word 0x00002075
+_02215A20: .word 0x00002070
+_02215A24: .word 0x00070809
+_02215A28: .word 0x0221B07C
+
+ thumb_func_start MOD09_02215A2C
+MOD09_02215A2C: ; 0x02215A2C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, _02215C3C ; =0x00002075
+ mov r1, #0x16
+ ldrb r2, [r5, r0]
+ sub r0, r0, #5
+ add r4, r2, #0
+ mul r4, r1
+ ldr r1, [r5, r0]
+ mov r0, #0x13
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ mov r0, #5
+ lsl r0, r0, #6
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0xe0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0xf0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ mov r0, #1
+ lsl r0, r0, #8
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ mov r0, #0x11
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ mov r0, #0x12
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0xd0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ mov r0, #0x15
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ lsl r0, r4, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #0
+ add r0, #0xa
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #0
+ add r0, #0xb
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #0
+ add r0, #0xc
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #5
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #6
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #7
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #0
+ add r0, #8
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #0
+ add r0, #9
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #4
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #1
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #2
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215C40 ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #3
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r2, #0
+ str r2, [sp]
+ str r2, [sp, #4]
+ ldr r3, [r5]
+ add r0, r5, #0
+ ldrb r3, [r3, #0x11]
+ add r1, r4, #0
+ bl MOD09_02213E84
+ ldr r1, [r5]
+ add r0, r5, #0
+ ldrb r1, [r1, #0x11]
+ bl MOD09_02214B8C
+ mov r3, #0
+ str r3, [sp]
+ ldr r2, [r5]
+ add r1, r4, #0
+ ldrb r2, [r2, #0x11]
+ add r0, r5, #0
+ add r1, #0xa
+ bl MOD09_02214100
+ ldr r1, [r5]
+ add r0, r5, #0
+ ldrb r1, [r1, #0x11]
+ bl MOD09_022144C0
+ ldr r1, [r5]
+ add r0, r5, #0
+ ldrb r1, [r1, #0x11]
+ bl MOD09_02214694
+ ldr r1, [r5]
+ add r0, r5, #0
+ ldrb r1, [r1, #0x11]
+ bl MOD09_02214790
+ ldr r1, [r5]
+ add r0, r5, #0
+ ldrb r1, [r1, #0x11]
+ bl MOD09_0221488C
+ ldr r1, [r5]
+ add r0, r5, #0
+ ldrb r1, [r1, #0x11]
+ bl MOD09_0221498C
+ ldr r1, [r5]
+ add r0, r5, #0
+ ldrb r1, [r1, #0x11]
+ bl MOD09_02214A8C
+ ldr r2, [r5]
+ add r0, r5, #0
+ ldrb r2, [r2, #0x11]
+ add r1, r4, #1
+ bl MOD09_022141D8
+ ldr r2, [r5]
+ add r0, r5, #0
+ ldrb r2, [r2, #0x11]
+ add r1, r4, #3
+ bl MOD09_02214260
+ ldr r1, [r5]
+ add r0, r5, #0
+ ldrb r1, [r1, #0x11]
+ bl MOD09_02214D24
+ add r0, r5, #0
+ mov r1, #0x15
+ mov r2, #0x13
+ bl MOD09_0221445C
+ ldr r1, _02215C3C ; =0x00002075
+ mov r0, #1
+ ldrb r2, [r5, r1]
+ eor r0, r2
+ strb r0, [r5, r1]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02215C3C: .word 0x00002075
+_02215C40: .word 0x00002070
+
+ thumb_func_start MOD09_02215C44
+MOD09_02215C44: ; 0x02215C44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, _02215D98 ; =0x00002075
+ mov r1, #0xb
+ ldrb r2, [r5, r0]
+ sub r0, r0, #5
+ ldr r0, [r5, r0]
+ add r4, r2, #0
+ mul r4, r1
+ add r0, #0x60
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215D9C ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x70
+ bl FUN_02019620
+ ldr r0, _02215D9C ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x80
+ bl FUN_02019620
+ ldr r0, _02215D9C ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x90
+ bl FUN_02019620
+ ldr r0, _02215D9C ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0xa0
+ bl FUN_02019620
+ ldr r0, _02215D9C ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #1
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215D9C ; =0x00002070
+ ldr r1, [r5, r0]
+ lsl r0, r4, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215D9C ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #2
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215D9C ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #3
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215D9C ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #5
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02215D9C ; =0x00002070
+ ldr r1, [r5, r0]
+ add r0, r4, #4
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r5]
+ add r2, r5, #0
+ ldrb r3, [r0, #0x11]
+ add r0, #0x34
+ ldrb r0, [r0]
+ mov r1, #0x50
+ add r2, #0x34
+ mul r1, r3
+ add r1, r2, r1
+ lsl r0, r0, #3
+ add r7, r1, r0
+ mov r2, #0
+ str r2, [sp]
+ add r0, r5, #0
+ mov r1, #6
+ str r2, [sp, #4]
+ bl MOD09_02213E84
+ mov r2, #0
+ add r0, r5, #0
+ mov r1, #7
+ add r3, r2, #0
+ bl MOD09_022143A0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02215DA0 ; =0x000F0E00
+ add r2, r4, #0
+ str r0, [sp, #8]
+ ldr r3, [r5]
+ ldrh r1, [r7]
+ add r3, #0x34
+ ldrb r3, [r3]
+ add r0, r5, #0
+ lsl r6, r3, #2
+ ldr r3, _02215DA4 ; =0x0221B07C
+ ldr r3, [r3, r6]
+ bl MOD09_022142FC
+ add r0, r5, #0
+ mov r1, #8
+ bl MOD09_02214DA0
+ ldrb r2, [r7, #6]
+ add r0, r5, #0
+ add r1, r4, #2
+ bl MOD09_02214DE8
+ add r0, r5, #0
+ mov r1, #9
+ bl MOD09_02214ED0
+ ldrb r2, [r7, #7]
+ add r0, r5, #0
+ add r1, r4, #3
+ bl MOD09_02214F18
+ ldrh r2, [r7]
+ add r0, r5, #0
+ add r1, r4, #4
+ bl MOD09_02215000
+ add r0, r5, #0
+ mov r1, #0xa
+ bl MOD09_022150C8
+ ldrb r2, [r7, #5]
+ add r0, r5, #0
+ add r1, r4, #5
+ bl MOD09_0221512C
+ ldrb r2, [r7, #2]
+ ldrb r3, [r7, #3]
+ add r0, r5, #0
+ add r1, r4, #1
+ bl MOD09_022151A8
+ ldr r1, _02215D98 ; =0x00002075
+ mov r0, #1
+ ldrb r2, [r5, r1]
+ eor r0, r2
+ strb r0, [r5, r1]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02215D98: .word 0x00002075
+_02215D9C: .word 0x00002070
+_02215DA0: .word 0x000F0E00
+_02215DA4: .word 0x0221B07C
+
+ thumb_func_start MOD09_02215DA8
+MOD09_02215DA8: ; 0x02215DA8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, _02215EC4 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_02019620
+ ldr r0, _02215EC4 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x10
+ bl FUN_02019620
+ ldr r0, _02215EC4 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x20
+ bl FUN_02019620
+ ldr r0, _02215EC4 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x30
+ bl FUN_02019620
+ ldr r0, _02215EC4 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x40
+ bl FUN_02019620
+ ldr r0, _02215EC4 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x50
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ ldr r3, [r5]
+ add r0, r5, #0
+ ldrb r3, [r3, #0x11]
+ add r2, r1, #0
+ bl MOD09_02213E84
+ add r0, r5, #0
+ mov r6, #0
+ str r0, [sp, #0x10]
+ add r0, #0x34
+ ldr r7, _02215EC8 ; =0x0221B07C
+ add r4, r6, #0
+ str r0, [sp, #0x10]
+_02215E14:
+ ldr r0, [r5]
+ ldrb r1, [r0, #0x11]
+ mov r0, #0x50
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, [sp, #0x10]
+ add r0, r0, r2
+ ldrh r1, [r0, r4]
+ str r0, [sp, #0xc]
+ cmp r1, #0
+ beq _02215E4C
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ ldr r0, _02215ECC ; =0x00070809
+ add r2, r6, #1
+ str r0, [sp, #8]
+ ldr r3, [r7]
+ add r0, r5, #0
+ bl MOD09_022142FC
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r1, r4
+ add r2, r6, #1
+ bl MOD09_022153B0
+_02215E4C:
+ add r6, r6, #1
+ add r4, #8
+ add r7, r7, #4
+ cmp r6, #4
+ blo _02215E14
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ ldr r0, _02215ECC ; =0x00070809
+ mov r2, #5
+ str r0, [sp, #8]
+ ldr r1, [r5]
+ add r0, r5, #0
+ ldrh r1, [r1, #0x24]
+ mov r3, #0x49
+ bl MOD09_022142FC
+ ldr r0, [r5]
+ mov r1, #5
+ ldrh r0, [r0, #0x24]
+ bl FUN_0206AB18
+ add r1, sp, #0x14
+ strb r0, [r1, #2]
+ ldrb r0, [r1, #2]
+ mov r2, #5
+ strb r0, [r1, #3]
+ add r0, r5, #0
+ add r1, sp, #0x14
+ bl MOD09_022153B0
+ ldr r0, _02215EC4 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, #0x10
+ bl FUN_02019220
+ ldr r0, _02215EC4 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, #0x20
+ bl FUN_02019220
+ ldr r0, _02215EC4 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, #0x30
+ bl FUN_02019220
+ ldr r0, _02215EC4 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, #0x40
+ bl FUN_02019220
+ ldr r0, _02215EC4 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, #0x50
+ bl FUN_02019220
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02215EC4: .word 0x00002070
+_02215EC8: .word 0x0221B07C
+_02215ECC: .word 0x00070809
+
+ thumb_func_start MOD09_02215ED0
+MOD09_02215ED0: ; 0x02215ED0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, _02216090 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_02019620
+ ldr r0, _02216090 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x20
+ bl FUN_02019620
+ ldr r0, _02216090 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x30
+ bl FUN_02019620
+ ldr r0, _02216090 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x10
+ bl FUN_02019620
+ ldr r0, _02216090 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x40
+ bl FUN_02019620
+ ldr r0, _02216090 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x60
+ bl FUN_02019620
+ ldr r0, _02216090 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x50
+ bl FUN_02019620
+ ldr r0, _02216090 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x70
+ bl FUN_02019620
+ ldr r0, _02216090 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x90
+ bl FUN_02019620
+ ldr r0, _02216090 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0xa0
+ bl FUN_02019620
+ ldr r0, _02216090 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x80
+ bl FUN_02019620
+ ldr r0, _02216090 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0xb0
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ ldr r3, [r5]
+ add r0, r5, #0
+ ldrb r3, [r3, #0x11]
+ add r2, r1, #0
+ bl MOD09_02213E84
+ mov r2, #0
+ add r0, r5, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD09_022143A0
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD09_02214DA0
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD09_02214ED0
+ add r0, r5, #0
+ mov r1, #9
+ bl MOD09_022150C8
+ ldr r1, [r5]
+ add r0, r1, #0
+ add r0, #0x34
+ ldrb r3, [r0]
+ cmp r3, #4
+ bhs _0221600C
+ ldrb r1, [r1, #0x11]
+ add r2, r5, #0
+ mov r0, #0x50
+ add r2, #0x34
+ mul r0, r1
+ add r7, r2, r0
+ lsl r0, r3, #3
+ str r0, [sp, #0xc]
+ add r4, r7, r0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02216094 ; =0x000F0E00
+ lsl r6, r3, #2
+ str r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ ldr r3, _02216098 ; =0x0221B07C
+ ldrh r1, [r7, r1]
+ ldr r3, [r3, r6]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD09_022142FC
+ ldrb r2, [r4, #6]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD09_02214DE8
+ ldrb r2, [r4, #7]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD09_02214F18
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ ldrh r2, [r7, r2]
+ mov r1, #8
+ bl MOD09_02215000
+ ldrb r2, [r4, #5]
+ add r0, r5, #0
+ mov r1, #0xa
+ bl MOD09_0221512C
+ ldrb r2, [r4, #2]
+ ldrb r3, [r4, #3]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD09_022151A8
+ b _02216082
+_0221600C:
+ ldrh r0, [r1, #0x24]
+ mov r1, #5
+ bl FUN_0206AB18
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02216094 ; =0x000F0E00
+ mov r2, #1
+ str r0, [sp, #8]
+ ldr r1, [r5]
+ add r0, r5, #0
+ ldrh r1, [r1, #0x24]
+ mov r3, #0x49
+ bl MOD09_022142FC
+ ldr r2, [r5]
+ add r0, r5, #0
+ ldrh r2, [r2, #0x24]
+ mov r1, #8
+ bl MOD09_02215000
+ ldr r0, [r5]
+ mov r1, #4
+ ldrh r0, [r0, #0x24]
+ bl FUN_0206AB18
+ add r2, r0, #0
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD09_02214DE8
+ ldr r0, [r5]
+ mov r1, #2
+ ldrh r0, [r0, #0x24]
+ bl FUN_0206AB18
+ add r2, r0, #0
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD09_02214F18
+ ldr r0, [r5]
+ mov r1, #1
+ ldrh r0, [r0, #0x24]
+ bl FUN_0206AB18
+ add r2, r0, #0
+ add r0, r5, #0
+ mov r1, #0xa
+ bl MOD09_0221512C
+ add r0, r5, #0
+ mov r1, #3
+ add r2, r4, #0
+ add r3, r4, #0
+ bl MOD09_022151A8
+_02216082:
+ add r0, r5, #0
+ mov r1, #0xb
+ bl MOD09_022152DC
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02216090: .word 0x00002070
+_02216094: .word 0x000F0E00
+_02216098: .word 0x0221B07C
+
+ thumb_func_start MOD09_0221609C
+MOD09_0221609C: ; 0x0221609C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, _02216184 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_02019620
+ ldr r0, _02216184 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x10
+ bl FUN_02019620
+ ldr r0, _02216184 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x20
+ bl FUN_02019620
+ ldr r0, _02216184 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x30
+ bl FUN_02019620
+ ldr r0, _02216184 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x40
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ ldr r3, [r5]
+ add r0, r5, #0
+ ldrb r3, [r3, #0x11]
+ add r2, r1, #0
+ bl MOD09_02213E84
+ add r0, r5, #0
+ mov r6, #0
+ str r0, [sp, #0x10]
+ add r0, #0x34
+ ldr r7, _02216188 ; =0x0221B07C
+ add r4, r6, #0
+ str r0, [sp, #0x10]
+_022160FC:
+ ldr r0, [r5]
+ ldrb r1, [r0, #0x11]
+ mov r0, #0x50
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, [sp, #0x10]
+ add r0, r0, r2
+ ldrh r1, [r0, r4]
+ str r0, [sp, #0xc]
+ cmp r1, #0
+ beq _02216134
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ ldr r0, _0221618C ; =0x00070809
+ add r2, r6, #1
+ str r0, [sp, #8]
+ ldr r3, [r7]
+ add r0, r5, #0
+ bl MOD09_022142FC
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r1, r4
+ add r2, r6, #1
+ bl MOD09_022153B0
+_02216134:
+ add r6, r6, #1
+ add r4, #8
+ add r7, r7, #4
+ cmp r6, #4
+ blo _022160FC
+ ldr r2, [r5]
+ mov r1, #0x25
+ ldrh r0, [r2, #0x22]
+ ldr r2, [r2, #0xc]
+ bl FUN_0206E7B8
+ cmp r0, #0
+ bne _02216156
+ add r0, r5, #0
+ mov r1, #0x5e
+ bl MOD09_022143F8
+_02216156:
+ ldr r0, _02216184 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, #0x10
+ bl FUN_02019220
+ ldr r0, _02216184 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, #0x20
+ bl FUN_02019220
+ ldr r0, _02216184 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, #0x30
+ bl FUN_02019220
+ ldr r0, _02216184 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, #0x40
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02216184: .word 0x00002070
+_02216188: .word 0x0221B07C
+_0221618C: .word 0x00070809
+
+ thumb_func_start MOD09_02216190
+MOD09_02216190: ; 0x02216190
+ push {r3, r4, r5, lr}
+ ldr r4, [r0]
+ add r3, r1, #0
+ ldrb r5, [r4, #0x11]
+ add r1, r0, #0
+ mov r4, #0x50
+ add r1, #0x34
+ mul r4, r5
+ add r4, r1, r4
+ lsl r1, r2, #3
+ add r1, r4, r1
+ add r2, r3, #0
+ bl MOD09_022154FC
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_022161B0
+MOD09_022161B0: ; 0x022161B0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, _02216304 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_02019620
+ ldr r0, _02216304 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x20
+ bl FUN_02019620
+ ldr r0, _02216304 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x30
+ bl FUN_02019620
+ ldr r0, _02216304 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x10
+ bl FUN_02019620
+ ldr r0, _02216304 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x40
+ bl FUN_02019620
+ ldr r0, _02216304 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x50
+ bl FUN_02019620
+ ldr r0, _02216304 ; =0x00002070
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r0, #0x60
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ ldr r3, [r5]
+ add r0, r5, #0
+ ldrb r3, [r3, #0x11]
+ add r2, r1, #0
+ bl MOD09_02213E84
+ mov r2, #0
+ add r0, r5, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD09_022143A0
+ ldr r0, _02216308 ; =0x00001FA8
+ mov r1, #0x39
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r4, #0
+ add r2, r0, #0
+ mov r3, #0x60
+ bl FUN_02002F40
+ mov r1, #0
+ add r3, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0221630C ; =0x000F0E00
+ add r2, r4, #0
+ str r0, [sp, #8]
+ ldr r0, _02216304 ; =0x00002070
+ str r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r0, #0x40
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ ldr r0, _02216304 ; =0x00002070
+ ldr r0, [r5, r0]
+ add r0, #0x40
+ bl FUN_02019220
+ ldr r1, [r5]
+ add r0, r1, #0
+ add r0, #0x34
+ ldrb r3, [r0]
+ cmp r3, #4
+ bhs _022162BE
+ ldrb r1, [r1, #0x11]
+ add r2, r5, #0
+ mov r0, #0x50
+ add r2, #0x34
+ mul r0, r1
+ add r4, r2, r0
+ lsl r7, r3, #3
+ add r0, r4, r7
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221630C ; =0x000F0E00
+ lsl r6, r3, #2
+ str r0, [sp, #8]
+ ldr r3, _02216310 ; =0x0221B07C
+ ldrh r1, [r4, r7]
+ ldr r3, [r3, r6]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD09_022142FC
+ ldrh r2, [r4, r7]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD09_02215060
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x10]
+ ldrb r2, [r2, #2]
+ ldrb r3, [r3, #3]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD09_022151A8
+ b _022162F8
+_022162BE:
+ ldrh r0, [r1, #0x24]
+ mov r1, #5
+ bl FUN_0206AB18
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221630C ; =0x000F0E00
+ mov r2, #1
+ str r0, [sp, #8]
+ ldr r1, [r5]
+ add r0, r5, #0
+ ldrh r1, [r1, #0x24]
+ mov r3, #0x49
+ bl MOD09_022142FC
+ ldr r2, [r5]
+ add r0, r5, #0
+ ldrh r2, [r2, #0x24]
+ mov r1, #5
+ bl MOD09_02215060
+ add r0, r5, #0
+ mov r1, #3
+ add r2, r4, #0
+ add r3, r4, #0
+ bl MOD09_022151A8
+_022162F8:
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD09_022152DC
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02216304: .word 0x00002070
+_02216308: .word 0x00001FA8
+_0221630C: .word 0x000F0E00
+_02216310: .word 0x0221B07C
+
+ thumb_func_start MOD09_02216314
+MOD09_02216314: ; 0x02216314
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02216338 ; =0x00002060
+ mov r1, #1
+ add r0, r4, r0
+ add r2, r1, #0
+ mov r3, #0xe
+ bl FUN_0200D0BC
+ ldr r0, _02216338 ; =0x00002060
+ mov r1, #0xf
+ add r0, r4, r0
+ bl FUN_02019620
+ add r0, r4, #0
+ bl MOD09_0221633C
+ pop {r4, pc}
+ .align 2, 0
+_02216338: .word 0x00002060
+
+ thumb_func_start MOD09_0221633C
+MOD09_0221633C: ; 0x0221633C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #1
+ bl FUN_02002B60
+ ldr r0, [r4]
+ ldr r0, [r0, #8]
+ bl FUN_02230E54
+ mov r3, #0
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r2, _02216370 ; =0x00002060
+ str r3, [sp, #8]
+ add r0, r4, r2
+ sub r2, #0xb0
+ ldr r2, [r4, r2]
+ mov r1, #1
+ bl FUN_0201BD84
+ ldr r1, _02216374 ; =0x0000207B
+ strb r0, [r4, r1]
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_02216370: .word 0x00002060
+_02216374: .word 0x0000207B
+
+ thumb_func_start MOD09_02216378
+MOD09_02216378: ; 0x02216378
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5]
+ mov r1, #0
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #0xc]
+ ldrh r0, [r0, #0x22]
+ ldr r2, [r2, #0xc]
+ bl FUN_0206E710
+ ldr r2, [sp, #0xc]
+ add r6, r0, #0
+ ldrb r3, [r2, #0x11]
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0xc]
+ add r2, r2, r3
+ add r2, #0x2c
+ ldrb r2, [r2]
+ ldr r0, [r0, #8]
+ ldr r1, [r1, #0x28]
+ bl FUN_02230014
+ mov r1, #0xa2
+ mov r2, #0
+ add r7, r0, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r6, #0
+ mov r1, #0xf
+ mov r4, #0
+ bl FUN_0206E7DC
+ cmp r0, #0
+ beq _022163CC
+ mov r0, #1
+ orr r0, r4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_022163CC:
+ add r0, r6, #0
+ mov r1, #0x10
+ bl FUN_0206E7DC
+ cmp r0, #0
+ beq _022163E0
+ mov r0, #2
+ orr r0, r4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_022163E0:
+ add r0, r6, #0
+ mov r1, #0x11
+ bl FUN_0206E7DC
+ cmp r0, #0
+ beq _022163F4
+ mov r0, #4
+ orr r0, r4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_022163F4:
+ add r0, r6, #0
+ mov r1, #0x12
+ bl FUN_0206E7DC
+ cmp r0, #0
+ beq _02216408
+ mov r0, #8
+ orr r0, r4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02216408:
+ add r0, r6, #0
+ mov r1, #0x13
+ bl FUN_0206E7DC
+ cmp r0, #0
+ beq _0221641C
+ mov r0, #0x10
+ orr r0, r4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_0221641C:
+ add r0, r6, #0
+ mov r1, #0x14
+ bl FUN_0206E7DC
+ cmp r0, #0
+ beq _02216430
+ mov r0, #0x20
+ orr r0, r4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02216430:
+ add r0, r6, #0
+ mov r1, #0x15
+ bl FUN_0206E7DC
+ cmp r0, #0
+ beq _02216444
+ mov r0, #0x40
+ orr r0, r4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02216444:
+ ldr r0, [sp, #0xc]
+ ldrb r1, [r0, #0x11]
+ mov r0, #0x50
+ mul r0, r1
+ add r0, r5, r0
+ ldrh r1, [r0, #0x14]
+ cmp r1, #0
+ bne _0221648E
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _0221648E
+ ldr r0, _022166C8 ; =0x00001FA8
+ mov r1, #0x58
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r7, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _022166CC ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ACF8
+ ldr r1, _022166CC ; =0x00001FAC
+ add r2, r4, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ b _022166BE
+_0221648E:
+ ldr r0, [sp, #8]
+ cmp r0, r1
+ beq _022164EA
+ ldr r0, _022166C8 ; =0x00001FA8
+ mov r1, #0x52
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r7, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _022166CC ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ACF8
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ ldr r2, [sp, #0xc]
+ str r1, [sp, #4]
+ ldrb r3, [r2, #0x11]
+ mov r2, #0x50
+ ldr r0, _022166CC ; =0x00001FAC
+ mul r2, r3
+ add r2, r5, r2
+ ldrh r3, [r2, #0x14]
+ ldr r2, [sp, #8]
+ ldr r0, [r5, r0]
+ sub r2, r2, r3
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r1, _022166CC ; =0x00001FAC
+ add r2, r4, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ b _022166BE
+_022164EA:
+ add r0, r6, #0
+ mov r1, #0x24
+ bl FUN_0206E7DC
+ cmp r0, #0
+ bne _02216502
+ add r0, r6, #0
+ mov r1, #0x25
+ bl FUN_0206E7DC
+ cmp r0, #0
+ beq _02216512
+_02216502:
+ ldr r2, _022166C8 ; =0x00001FA8
+ mov r1, #0x57
+ ldr r0, [r5, r2]
+ add r2, #8
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ b _022166BE
+_02216512:
+ cmp r4, #1
+ ldr r0, _022166C8 ; =0x00001FA8
+ bne _0221654A
+ ldr r0, [r5, r0]
+ mov r1, #0x5c
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r7, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _022166CC ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ACF8
+ ldr r1, _022166CC ; =0x00001FAC
+ add r2, r4, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ b _022166BE
+_0221654A:
+ cmp r4, #2
+ bne _02216580
+ ldr r0, [r5, r0]
+ mov r1, #0x53
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r7, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _022166CC ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ACF8
+ ldr r1, _022166CC ; =0x00001FAC
+ add r2, r4, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ b _022166BE
+_02216580:
+ cmp r4, #4
+ bne _022165B6
+ ldr r0, [r5, r0]
+ mov r1, #0x55
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r7, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _022166CC ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ACF8
+ ldr r1, _022166CC ; =0x00001FAC
+ add r2, r4, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ b _022166BE
+_022165B6:
+ cmp r4, #8
+ bne _022165EC
+ ldr r0, [r5, r0]
+ mov r1, #0x56
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r7, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _022166CC ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ACF8
+ ldr r1, _022166CC ; =0x00001FAC
+ add r2, r4, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ b _022166BE
+_022165EC:
+ cmp r4, #0x10
+ bne _02216622
+ ldr r0, [r5, r0]
+ mov r1, #0x54
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r7, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _022166CC ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ACF8
+ ldr r1, _022166CC ; =0x00001FAC
+ add r2, r4, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ b _022166BE
+_02216622:
+ cmp r4, #0x20
+ bne _02216658
+ ldr r0, [r5, r0]
+ mov r1, #0x5a
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r7, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _022166CC ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ACF8
+ ldr r1, _022166CC ; =0x00001FAC
+ add r2, r4, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ b _022166BE
+_02216658:
+ cmp r4, #0x40
+ bne _0221668E
+ ldr r0, [r5, r0]
+ mov r1, #0x5b
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r7, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _022166CC ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ACF8
+ ldr r1, _022166CC ; =0x00001FAC
+ add r2, r4, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ b _022166BE
+_0221668E:
+ ldr r0, [r5, r0]
+ mov r1, #0x59
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r7, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _022166CC ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ACF8
+ ldr r1, _022166CC ; =0x00001FAC
+ add r2, r4, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+_022166BE:
+ add r0, r6, #0
+ bl FUN_02016A18
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022166C8: .word 0x00001FA8
+_022166CC: .word 0x00001FAC
+
+ thumb_func_start MOD09_022166D0
+MOD09_022166D0: ; 0x022166D0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r3, [r5]
+ ldrb r2, [r3, #0x11]
+ ldr r0, [r3, #8]
+ ldr r1, [r3, #0x28]
+ add r2, r3, r2
+ add r2, #0x2c
+ ldrb r2, [r2]
+ bl FUN_02230014
+ add r6, r0, #0
+ ldr r0, _02216728 ; =0x00001FA8
+ mov r1, #0x5f
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r6, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, _0221672C ; =0x00001FAC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ACF8
+ ldr r0, _0221672C ; =0x00001FAC
+ ldr r2, _02216730 ; =0x00000175
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_0200AD5C
+ ldr r1, _0221672C ; =0x00001FAC
+ add r2, r4, #0
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02216728: .word 0x00001FA8
+_0221672C: .word 0x00001FAC
+_02216730: .word 0x00000175
+
+ thumb_func_start MOD09_02216734
+MOD09_02216734: ; 0x02216734
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD09_02216770
+ add r0, r4, #0
+ bl MOD09_022167BC
+ add r0, r4, #0
+ bl MOD09_02216894
+ add r0, r4, #0
+ bl MOD09_02216934
+ add r0, r4, #0
+ bl MOD09_022169AC
+ add r0, r4, #0
+ bl MOD09_02216A4C
+ add r0, r4, #0
+ bl MOD09_02216B4C
+ add r0, r4, #0
+ bl MOD09_02217750
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ pop {r4, pc}
+
+ thumb_func_start MOD09_02216770
+MOD09_02216770: ; 0x02216770
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _022167B4 ; =0x0221B4B8
+ add r2, sp, #0
+ add r5, r0, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ ldr r0, [r0, #8]
+ bl FUN_02230078
+ add r4, r0, #0
+ bl FUN_0200BB34
+ ldr r1, _022167B8 ; =0x00001FB4
+ mov r2, #0x2b
+ str r0, [r5, r1]
+ ldr r1, [r5, r1]
+ add r0, r4, #0
+ bl FUN_0200BBF0
+ ldr r1, _022167B8 ; =0x00001FB4
+ add r0, r4, #0
+ ldr r1, [r5, r1]
+ add r2, sp, #0
+ bl FUN_0200BF60
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_022167B4: .word 0x0221B4B8
+_022167B8: .word 0x00001FB4
+
+ thumb_func_start MOD09_022167BC
+MOD09_022167BC: ; 0x022167BC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r6, r0, #0
+ ldr r0, [r6]
+ ldr r0, [r0, #8]
+ bl FUN_02230078
+ add r7, r0, #0
+ bl FUN_0206B888
+ mov r1, #0x13
+ str r1, [sp]
+ 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, _0221688C ; =0x0000B007
+ ldr r3, _02216890 ; =0x00001FB4
+ str r0, [sp, #0x14]
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ ldr r3, [r6, r3]
+ add r2, r7, #0
+ bl FUN_0200C0DC
+ bl FUN_0206B890
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0221688C ; =0x0000B007
+ ldr r1, _02216890 ; =0x00001FB4
+ str r0, [sp, #4]
+ ldr r1, [r6, r1]
+ add r0, r7, #0
+ mov r2, #0x13
+ bl FUN_0200C124
+ bl FUN_0206B89C
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0221688C ; =0x0000B007
+ ldr r1, _02216890 ; =0x00001FB4
+ str r0, [sp, #4]
+ ldr r1, [r6, r1]
+ add r0, r7, #0
+ mov r2, #0x13
+ bl FUN_0200C13C
+ mov r4, #0
+ add r5, r6, #0
+_0221682E:
+ ldrh r0, [r5, #8]
+ cmp r0, #0
+ beq _02216858
+ ldr r0, [r5, #4]
+ bl FUN_0206B6C8
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0221688C ; =0x0000B007
+ ldr r1, _02216890 ; =0x00001FB4
+ add r0, r4, r0
+ str r0, [sp, #8]
+ ldr r1, [r6, r1]
+ add r0, r7, #0
+ mov r2, #0x13
+ bl FUN_0200C00C
+ b _0221687E
+_02216858:
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ bl FUN_0206B6D4
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0221688C ; =0x0000B007
+ ldr r1, _02216890 ; =0x00001FB4
+ add r0, r4, r0
+ str r0, [sp, #8]
+ ldr r1, [r6, r1]
+ add r0, r7, #0
+ mov r2, #0x13
+ bl FUN_0200C00C
+_0221687E:
+ add r4, r4, #1
+ add r5, #0x50
+ cmp r4, #6
+ blo _0221682E
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221688C: .word 0x0000B007
+_02216890: .word 0x00001FB4
+
+ thumb_func_start MOD09_02216894
+MOD09_02216894: ; 0x02216894
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r0, [r5]
+ ldr r0, [r0, #8]
+ bl FUN_02230078
+ add r4, r0, #0
+ bl FUN_0207C2C8
+ mov r1, #0x27
+ str r1, [sp]
+ 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, _02216928 ; =0x0000B008
+ ldr r3, _0221692C ; =0x00001FB4
+ str r0, [sp, #0x14]
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r3, [r5, r3]
+ mov r1, #3
+ add r2, r4, #0
+ bl FUN_0200C0DC
+ bl FUN_0207C2CC
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02216928 ; =0x0000B008
+ ldr r1, _0221692C ; =0x00001FB4
+ str r0, [sp, #4]
+ ldr r1, [r5, r1]
+ add r0, r4, #0
+ mov r2, #0x27
+ bl FUN_0200C124
+ bl FUN_0207C2D0
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02216928 ; =0x0000B008
+ ldr r1, _0221692C ; =0x00001FB4
+ str r0, [sp, #4]
+ ldr r1, [r5, r1]
+ add r0, r4, #0
+ mov r2, #0x27
+ bl FUN_0200C13C
+ bl FUN_0207C2C4
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _02216930 ; =0x0000B00D
+ ldr r1, _0221692C ; =0x00001FB4
+ str r0, [sp, #8]
+ ldr r1, [r5, r1]
+ add r0, r4, #0
+ mov r2, #0x27
+ bl FUN_0200C00C
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_02216928: .word 0x0000B008
+_0221692C: .word 0x00001FB4
+_02216930: .word 0x0000B00D
+
+ thumb_func_start MOD09_02216934
+MOD09_02216934: ; 0x02216934
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5]
+ ldr r0, [r0, #8]
+ bl FUN_02230078
+ add r6, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, _0221699C ; =0x0000B009
+ ldr r3, _022169A0 ; =0x00001FB4
+ str r0, [sp, #4]
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r3, [r5, r3]
+ mov r1, #3
+ add r2, r6, #0
+ bl FUN_0206E198
+ ldr r1, _022169A0 ; =0x00001FB4
+ ldr r2, _0221699C ; =0x0000B009
+ ldr r1, [r5, r1]
+ add r0, r6, #0
+ add r3, r2, #0
+ bl FUN_0206E1D4
+ ldr r4, _022169A4 ; =0x0000B00E
+ add r7, r4, #6
+_02216970:
+ ldr r1, _022169A0 ; =0x00001FB4
+ str r4, [sp]
+ ldr r1, [r5, r1]
+ add r0, r6, #0
+ mov r2, #2
+ mov r3, #0
+ bl FUN_0206E130
+ add r4, r4, #1
+ cmp r4, r7
+ bls _02216970
+ ldr r0, _022169A8 ; =0x0000B015
+ ldr r1, _022169A0 ; =0x00001FB4
+ str r0, [sp]
+ ldr r1, [r5, r1]
+ add r0, r6, #0
+ mov r2, #2
+ mov r3, #0
+ bl FUN_0206E2AC
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221699C: .word 0x0000B009
+_022169A0: .word 0x00001FB4
+_022169A4: .word 0x0000B00E
+_022169A8: .word 0x0000B015
+
+ thumb_func_start MOD09_022169AC
+MOD09_022169AC: ; 0x022169AC
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r0, [r5]
+ ldr r0, [r0, #8]
+ bl FUN_02230078
+ add r4, r0, #0
+ bl FUN_020724C8
+ mov r1, #0x14
+ str r1, [sp]
+ 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, _02216A40 ; =0x0000B00A
+ ldr r3, _02216A44 ; =0x00001FB4
+ str r0, [sp, #0x14]
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r3, [r5, r3]
+ mov r1, #3
+ add r2, r4, #0
+ bl FUN_0200C0DC
+ bl FUN_020724CC
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02216A40 ; =0x0000B00A
+ ldr r1, _02216A44 ; =0x00001FB4
+ str r0, [sp, #4]
+ ldr r1, [r5, r1]
+ add r0, r4, #0
+ mov r2, #0x14
+ bl FUN_0200C124
+ bl FUN_020724D0
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02216A40 ; =0x0000B00A
+ ldr r1, _02216A44 ; =0x00001FB4
+ str r0, [sp, #4]
+ ldr r1, [r5, r1]
+ add r0, r4, #0
+ mov r2, #0x14
+ bl FUN_0200C13C
+ bl FUN_020724C4
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _02216A48 ; =0x0000B016
+ ldr r1, _02216A44 ; =0x00001FB4
+ str r0, [sp, #8]
+ ldr r1, [r5, r1]
+ add r0, r4, #0
+ mov r2, #0x14
+ bl FUN_0200C00C
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_02216A40: .word 0x0000B00A
+_02216A44: .word 0x00001FB4
+_02216A48: .word 0x0000B016
+
+ thumb_func_start MOD09_02216A4C
+MOD09_02216A4C: ; 0x02216A4C
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r0, [r5]
+ ldr r0, [r0, #8]
+ bl FUN_02230078
+ add r4, r0, #0
+ mov r0, #0x48
+ str r0, [sp]
+ mov r0, #0x1b
+ 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, _02216AD0 ; =0x0000B00B
+ ldr r3, _02216AD4 ; =0x00001FB4
+ str r0, [sp, #0x14]
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r3, [r5, r3]
+ mov r1, #3
+ add r2, r4, #0
+ bl FUN_0200C0DC
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02216AD0 ; =0x0000B00B
+ ldr r1, _02216AD4 ; =0x00001FB4
+ str r0, [sp, #4]
+ ldr r1, [r5, r1]
+ add r0, r4, #0
+ mov r2, #0x48
+ mov r3, #0x19
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02216AD0 ; =0x0000B00B
+ ldr r1, _02216AD4 ; =0x00001FB4
+ str r0, [sp, #4]
+ ldr r1, [r5, r1]
+ add r0, r4, #0
+ mov r2, #0x48
+ mov r3, #0x18
+ bl FUN_0200C13C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _02216AD8 ; =0x0000B017
+ ldr r1, _02216AD4 ; =0x00001FB4
+ str r0, [sp, #8]
+ ldr r1, [r5, r1]
+ add r0, r4, #0
+ mov r2, #0x48
+ mov r3, #0x1a
+ bl FUN_0200C00C
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02216AD0: .word 0x0000B00B
+_02216AD4: .word 0x00001FB4
+_02216AD8: .word 0x0000B017
+
+ thumb_func_start MOD09_02216ADC
+MOD09_02216ADC: ; 0x02216ADC
+ push {r4, r5, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ ldr r0, [r0, #8]
+ bl FUN_02230078
+ mov r2, #0
+ add r1, sp, #0
+ strh r2, [r1]
+ strh r2, [r1, #2]
+ strh r2, [r1, #4]
+ strh r2, [r1, #6]
+ mov r1, #0x14
+ ldr r3, _02216B34 ; =0x0221B6F0
+ mul r1, r4
+ ldr r3, [r3, r1]
+ str r2, [sp, #0xc]
+ str r3, [sp, #8]
+ mov r3, #2
+ str r3, [sp, #0x10]
+ ldr r3, _02216B38 ; =0x0221B6E0
+ str r2, [sp, #0x30]
+ ldr r3, [r3, r1]
+ add r2, sp, #0
+ str r3, [sp, #0x14]
+ ldr r3, _02216B3C ; =0x0221B6E4
+ ldr r3, [r3, r1]
+ str r3, [sp, #0x18]
+ ldr r3, _02216B40 ; =0x0221B6E8
+ ldr r3, [r3, r1]
+ str r3, [sp, #0x1c]
+ ldr r3, _02216B44 ; =0x0221B6EC
+ ldr r1, [r3, r1]
+ str r1, [sp, #0x20]
+ mov r1, #1
+ str r1, [sp, #0x2c]
+ ldr r1, _02216B48 ; =0x00001FB4
+ ldr r1, [r5, r1]
+ bl FUN_0200C154
+ add sp, #0x34
+ pop {r4, r5, pc}
+ .align 2, 0
+_02216B34: .word 0x0221B6F0
+_02216B38: .word 0x0221B6E0
+_02216B3C: .word 0x0221B6E4
+_02216B40: .word 0x0221B6E8
+_02216B44: .word 0x0221B6EC
+_02216B48: .word 0x00001FB4
+
+ thumb_func_start MOD09_02216B4C
+MOD09_02216B4C: ; 0x02216B4C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r7, _02216B70 ; =0x00001FB8
+ mov r4, #0
+ add r5, r6, #0
+_02216B56:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD09_02216ADC
+ str r0, [r5, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x26
+ blo _02216B56
+ add r0, r6, #0
+ bl MOD09_02216BD0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02216B70: .word 0x00001FB8
+
+ thumb_func_start MOD09_02216B74
+MOD09_02216B74: ; 0x02216B74
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, [r7]
+ ldr r0, [r0, #8]
+ bl FUN_02230078
+ ldr r6, _02216BA8 ; =0x00001FB8
+ str r0, [sp]
+ mov r4, #0
+ add r5, r7, #0
+_02216B88:
+ ldr r0, [r5, r6]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x26
+ blo _02216B88
+ add r0, r7, #0
+ bl MOD09_022177B4
+ ldr r1, _02216BAC ; =0x00001FB4
+ ldr r0, [sp]
+ ldr r1, [r7, r1]
+ bl FUN_0200C398
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02216BA8: .word 0x00001FB8
+_02216BAC: .word 0x00001FB4
+
+ thumb_func_start MOD09_02216BB0
+MOD09_02216BB0: ; 0x02216BB0
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ mov r1, #1
+ add r6, r0, #0
+ bl FUN_0200C644
+ lsl r1, r5, #0x10
+ lsl r2, r4, #0x10
+ add r0, r6, #0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02216BD0
+MOD09_02216BD0: ; 0x02216BD0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ mov r7, #0
+ add r4, #0x1b
+ add r6, r5, #0
+_02216BDC:
+ ldrh r0, [r5, #8]
+ cmp r0, #0
+ beq _02216BFC
+ add r1, r5, #0
+ ldrb r2, [r4]
+ add r1, #0x32
+ ldrb r1, [r1]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1f
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ ldr r0, _02216C0C ; =0x00001FD4
+ ldr r0, [r6, r0]
+ bl FUN_0200C66C
+_02216BFC:
+ add r7, r7, #1
+ add r5, #0x50
+ add r4, #0x50
+ add r6, r6, #4
+ cmp r7, #6
+ blt _02216BDC
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02216C0C: .word 0x00001FD4
+
+ thumb_func_start MOD09_02216C10
+MOD09_02216C10: ; 0x02216C10
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r3, #0
+ ldr r0, [r0, #8]
+ add r7, r1, #0
+ add r4, r2, #0
+ bl FUN_02230078
+ str r0, [sp, #8]
+ bl FUN_0206E12C
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ bl FUN_0206E0F0
+ add r3, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ ldr r1, _02216C5C ; =0x00001FB4
+ str r4, [sp, #4]
+ ldr r0, [sp, #8]
+ ldr r1, [r5, r1]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C9D8
+ add r0, r6, #0
+ bl FUN_0206E114
+ add r1, r0, #0
+ add r0, r7, #0
+ add r1, r1, #4
+ bl FUN_0200C66C
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02216C5C: .word 0x00001FB4
+
+ thumb_func_start MOD09_02216C60
+MOD09_02216C60: ; 0x02216C60
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r2, #0
+ ldr r0, [r0, #8]
+ add r6, r1, #0
+ bl FUN_02230078
+ add r7, r0, #0
+ bl FUN_0206E2A8
+ str r0, [sp, #8]
+ add r0, r4, #0
+ bl FUN_0206E278
+ add r3, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02216CAC ; =0x0000B015
+ ldr r1, _02216CB0 ; =0x00001FB4
+ str r0, [sp, #4]
+ ldr r1, [r5, r1]
+ ldr r2, [sp, #8]
+ add r0, r7, #0
+ bl FUN_0200C9D8
+ add r0, r4, #0
+ bl FUN_0206E290
+ add r1, r0, #0
+ add r0, r6, #0
+ add r1, r1, #4
+ bl FUN_0200C66C
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02216CAC: .word 0x0000B015
+_02216CB0: .word 0x00001FB4
+
+ thumb_func_start MOD09_02216CB4
+MOD09_02216CB4: ; 0x02216CB4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ cmp r6, #7
+ beq _02216CD4
+ add r0, r5, #0
+ add r1, r6, #0
+ bl FUN_0200C5C0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD09_02216BB0
+_02216CD4:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02216CD8
+MOD09_02216CD8: ; 0x02216CD8
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ ldr r1, _02216D1C ; =0x00002004
+ add r5, r0, #0
+ add r6, r2, #0
+ ldrb r3, [r4, #0x14]
+ ldr r1, [r5, r1]
+ ldr r2, _02216D20 ; =0x0000B00E
+ bl MOD09_02216C10
+ ldr r0, _02216D1C ; =0x00002004
+ ldr r1, [r6]
+ ldr r0, [r5, r0]
+ ldr r2, [r6, #4]
+ bl MOD09_02216BB0
+ ldrb r3, [r4, #0x15]
+ ldrb r0, [r4, #0x14]
+ cmp r0, r3
+ beq _02216D18
+ ldr r1, _02216D24 ; =0x00002008
+ ldr r2, _02216D28 ; =0x0000B00F
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ bl MOD09_02216C10
+ ldr r0, _02216D24 ; =0x00002008
+ ldr r1, [r6, #8]
+ ldr r0, [r5, r0]
+ ldr r2, [r6, #0xc]
+ bl MOD09_02216BB0
+_02216D18:
+ pop {r4, r5, r6, pc}
+ nop
+_02216D1C: .word 0x00002004
+_02216D20: .word 0x0000B00E
+_02216D24: .word 0x00002008
+_02216D28: .word 0x0000B00F
+
+ thumb_func_start MOD09_02216D2C
+MOD09_02216D2C: ; 0x02216D2C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ cmp r0, #0
+ beq _02216D5C
+ bl FUN_0206EA98
+ cmp r0, #1
+ bne _02216D4A
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C5C0
+ b _02216D52
+_02216D4A:
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200C5C0
+_02216D52:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD09_02216BB0
+_02216D5C:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02216D60
+MOD09_02216D60: ; 0x02216D60
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ cmp r0, #0
+ beq _02216D7E
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_0200C5C0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD09_02216BB0
+_02216D7E:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD09_02216D80
+MOD09_02216D80: ; 0x02216D80
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r7, _02216E14 ; =0x00001FB8
+ str r1, [sp]
+ mov r5, #0
+ add r4, r6, #0
+_02216D8C:
+ ldr r0, [r4, r7]
+ mov r1, #0
+ bl FUN_0200C644
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #0x26
+ blo _02216D8C
+ ldr r0, [sp]
+ cmp r0, #9
+ bhi _02216E10
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02216DAE: ; jump table
+ .short _02216DC2 - _02216DAE - 2 ; case 0
+ .short _02216DCA - _02216DAE - 2 ; case 1
+ .short _02216DD2 - _02216DAE - 2 ; case 2
+ .short _02216DDA - _02216DAE - 2 ; case 3
+ .short _02216DE2 - _02216DAE - 2 ; case 4
+ .short _02216DEA - _02216DAE - 2 ; case 5
+ .short _02216DF2 - _02216DAE - 2 ; case 6
+ .short _02216DFA - _02216DAE - 2 ; case 7
+ .short _02216E02 - _02216DAE - 2 ; case 8
+ .short _02216E0A - _02216DAE - 2 ; case 9
+_02216DC2:
+ add r0, r6, #0
+ bl MOD09_02216E18
+ pop {r3, r4, r5, r6, r7, pc}
+_02216DCA:
+ add r0, r6, #0
+ bl MOD09_02216EB4
+ pop {r3, r4, r5, r6, r7, pc}
+_02216DD2:
+ add r0, r6, #0
+ bl MOD09_02216F0C
+ pop {r3, r4, r5, r6, r7, pc}
+_02216DDA:
+ add r0, r6, #0
+ bl MOD09_02216FA4
+ pop {r3, r4, r5, r6, r7, pc}
+_02216DE2:
+ add r0, r6, #0
+ bl MOD09_0221707C
+ pop {r3, r4, r5, r6, r7, pc}
+_02216DEA:
+ add r0, r6, #0
+ bl MOD09_02217270
+ pop {r3, r4, r5, r6, r7, pc}
+_02216DF2:
+ add r0, r6, #0
+ bl MOD09_02217140
+ pop {r3, r4, r5, r6, r7, pc}
+_02216DFA:
+ add r0, r6, #0
+ bl MOD09_022171AC
+ pop {r3, r4, r5, r6, r7, pc}
+_02216E02:
+ add r0, r6, #0
+ bl MOD09_02217354
+ pop {r3, r4, r5, r6, r7, pc}
+_02216E0A:
+ add r0, r6, #0
+ bl MOD09_022172DC
+_02216E10:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02216E14: .word 0x00001FB8
+
+ thumb_func_start MOD09_02216E18
+MOD09_02216E18: ; 0x02216E18
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ mov r0, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ str r0, [sp]
+ add r0, #0x1b
+ ldr r4, _02216E9C ; =0x0221B5D0
+ ldr r7, _02216EA0 ; =0x0221B600
+ add r5, r6, #0
+ str r0, [sp]
+_02216E30:
+ ldrh r0, [r6, #8]
+ cmp r0, #0
+ beq _02216E7E
+ ldr r0, _02216EA4 ; =0x00001FD4
+ ldr r1, [r4]
+ ldr r0, [r5, r0]
+ ldr r2, [r4, #4]
+ bl MOD09_02216BB0
+ ldr r0, [sp]
+ ldr r1, _02216EA8 ; =0x00001FEC
+ ldrb r0, [r0]
+ ldr r1, [r5, r1]
+ ldr r2, [r7]
+ lsl r0, r0, #0x19
+ ldr r3, [r7, #4]
+ lsr r0, r0, #0x1c
+ bl MOD09_02216CB4
+ ldr r1, _02216EAC ; =0x00001FB8
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ ldrh r0, [r6, #0x1e]
+ ldr r1, [r5, r1]
+ add r2, #8
+ add r3, #8
+ bl MOD09_02216D2C
+ add r0, r6, #0
+ add r0, #0x31
+ ldr r1, _02216EB0 ; =0x00002038
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ ldrb r0, [r0]
+ ldr r1, [r5, r1]
+ add r2, #0x10
+ add r3, #8
+ bl MOD09_02216D60
+_02216E7E:
+ ldr r0, [sp]
+ add r6, #0x50
+ add r0, #0x50
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r4, #8
+ add r0, r0, #1
+ add r5, r5, #4
+ add r7, #8
+ str r0, [sp, #4]
+ cmp r0, #6
+ blt _02216E30
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02216E9C: .word 0x0221B5D0
+_02216EA0: .word 0x0221B600
+_02216EA4: .word 0x00001FD4
+_02216EA8: .word 0x00001FEC
+_02216EAC: .word 0x00001FB8
+_02216EB0: .word 0x00002038
+
+ thumb_func_start MOD09_02216EB4
+MOD09_02216EB4: ; 0x02216EB4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r1, r5, #4
+ ldrb r2, [r0, #0x11]
+ mov r0, #0x50
+ mul r0, r2
+ add r4, r1, r0
+ add r0, r2, #7
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _02216F08 ; =0x00001FB8
+ mov r2, #0x48
+ ldr r0, [r1, r0]
+ mov r1, #0x80
+ bl MOD09_02216BB0
+ ldr r1, [r5]
+ ldrh r0, [r4, #0x1a]
+ ldrb r1, [r1, #0x11]
+ mov r3, #0x50
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _02216F08 ; =0x00001FB8
+ ldr r1, [r2, r1]
+ mov r2, #0x88
+ bl MOD09_02216D2C
+ ldr r1, [r5]
+ add r4, #0x2d
+ ldrb r1, [r1, #0x11]
+ ldrb r0, [r4]
+ mov r3, #0x50
+ add r1, #0x20
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _02216F08 ; =0x00001FB8
+ ldr r1, [r2, r1]
+ mov r2, #0x90
+ bl MOD09_02216D60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02216F08: .word 0x00001FB8
+
+ thumb_func_start MOD09_02216F0C
+MOD09_02216F0C: ; 0x02216F0C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r1, r5, #4
+ ldrb r2, [r0, #0x11]
+ mov r0, #0x50
+ mul r0, r2
+ add r4, r1, r0
+ add r0, r2, #7
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _02216F98 ; =0x00001FB8
+ mov r2, #0xc
+ ldr r0, [r1, r0]
+ mov r1, #0x18
+ bl MOD09_02216BB0
+ ldr r1, [r5]
+ ldrb r0, [r4, #0x17]
+ ldrb r1, [r1, #0x11]
+ mov r3, #0x14
+ lsl r0, r0, #0x19
+ add r1, #0xd
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _02216F98 ; =0x00001FB8
+ lsr r0, r0, #0x1c
+ ldr r1, [r2, r1]
+ mov r2, #0xc6
+ bl MOD09_02216CB4
+ ldr r2, _02216F9C ; =0x0221B490
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02216CD8
+ ldr r1, [r5]
+ ldrh r0, [r4, #0x1a]
+ ldrb r1, [r1, #0x11]
+ mov r3, #0x14
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _02216F98 ; =0x00001FB8
+ ldr r1, [r2, r1]
+ mov r2, #0x20
+ bl MOD09_02216D2C
+ ldr r1, [r5]
+ add r0, r4, #0
+ ldrb r1, [r1, #0x11]
+ add r0, #0x2d
+ ldrb r0, [r0]
+ add r1, #0x20
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _02216F98 ; =0x00001FB8
+ mov r3, #0x14
+ ldr r1, [r2, r1]
+ mov r2, #0x28
+ bl MOD09_02216D60
+ ldr r1, _02216FA0 ; =0x00001FD0
+ ldrh r0, [r4, #0x1a]
+ ldr r1, [r5, r1]
+ mov r2, #0x14
+ mov r3, #0x84
+ bl MOD09_02216D2C
+ pop {r3, r4, r5, pc}
+ nop
+_02216F98: .word 0x00001FB8
+_02216F9C: .word 0x0221B490
+_02216FA0: .word 0x00001FD0
+
+ thumb_func_start MOD09_02216FA4
+MOD09_02216FA4: ; 0x02216FA4
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ ldr r0, [r0]
+ ldrb r2, [r0, #0x11]
+ ldr r0, [sp]
+ add r1, r0, #4
+ mov r0, #0x50
+ mul r0, r2
+ add r4, r1, r0
+ add r0, r2, #7
+ lsl r1, r0, #2
+ ldr r0, [sp]
+ mov r2, #0xc
+ add r1, r0, r1
+ ldr r0, _02217068 ; =0x00001FB8
+ ldr r0, [r1, r0]
+ mov r1, #0x18
+ bl MOD09_02216BB0
+ ldr r1, [sp]
+ ldrb r0, [r4, #0x17]
+ ldr r1, [r1]
+ mov r3, #0x14
+ ldrb r1, [r1, #0x11]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1c
+ add r1, #0xd
+ lsl r2, r1, #2
+ ldr r1, [sp]
+ add r2, r1, r2
+ ldr r1, _02217068 ; =0x00001FB8
+ ldr r1, [r2, r1]
+ mov r2, #0xc6
+ bl MOD09_02216CB4
+ ldr r0, [sp]
+ ldr r2, _0221706C ; =0x0221B470
+ add r1, r4, #0
+ bl MOD09_02216CD8
+ ldr r1, [sp]
+ ldrh r0, [r4, #0x1a]
+ ldr r1, [r1]
+ mov r3, #0x14
+ ldrb r1, [r1, #0x11]
+ lsl r2, r1, #2
+ ldr r1, [sp]
+ add r2, r1, r2
+ ldr r1, _02217068 ; =0x00001FB8
+ ldr r1, [r2, r1]
+ mov r2, #0x20
+ bl MOD09_02216D2C
+ ldr r1, [sp]
+ add r0, r4, #0
+ ldr r1, [r1]
+ add r0, #0x2d
+ ldrb r1, [r1, #0x11]
+ ldrb r0, [r0]
+ mov r3, #0x14
+ add r1, #0x20
+ lsl r2, r1, #2
+ ldr r1, [sp]
+ add r2, r1, r2
+ ldr r1, _02217068 ; =0x00001FB8
+ ldr r1, [r2, r1]
+ mov r2, #0x28
+ bl MOD09_02216D60
+ ldr r5, [sp]
+ ldr r6, _02217070 ; =0x0221B4F0
+ mov r7, #0
+_02217034:
+ ldrh r0, [r4, #0x30]
+ cmp r0, #0
+ beq _0221705A
+ add r3, r4, #0
+ ldr r1, _02217074 ; =0x0000200C
+ add r3, #0x34
+ ldr r2, _02217078 ; =0x0000B010
+ ldrb r3, [r3]
+ ldr r0, [sp]
+ ldr r1, [r5, r1]
+ add r2, r7, r2
+ bl MOD09_02216C10
+ ldr r0, _02217074 ; =0x0000200C
+ ldr r1, [r6]
+ ldr r0, [r5, r0]
+ ldr r2, [r6, #4]
+ bl MOD09_02216BB0
+_0221705A:
+ add r7, r7, #1
+ add r4, #8
+ add r5, r5, #4
+ add r6, #8
+ cmp r7, #4
+ blo _02217034
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02217068: .word 0x00001FB8
+_0221706C: .word 0x0221B470
+_02217070: .word 0x0221B4F0
+_02217074: .word 0x0000200C
+_02217078: .word 0x0000B010
+
+ thumb_func_start MOD09_0221707C
+MOD09_0221707C: ; 0x0221707C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r1, r5, #4
+ ldrb r2, [r0, #0x11]
+ mov r0, #0x50
+ mul r0, r2
+ add r4, r1, r0
+ add r0, r2, #7
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _02217134 ; =0x00001FB8
+ mov r2, #0xc
+ ldr r0, [r1, r0]
+ mov r1, #0x18
+ bl MOD09_02216BB0
+ ldr r1, [r5]
+ ldrb r0, [r4, #0x17]
+ ldrb r1, [r1, #0x11]
+ mov r3, #0x14
+ lsl r0, r0, #0x19
+ add r1, #0xd
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _02217134 ; =0x00001FB8
+ lsr r0, r0, #0x1c
+ ldr r1, [r2, r1]
+ mov r2, #0xc6
+ bl MOD09_02216CB4
+ ldr r2, _02217138 ; =0x0221B480
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02216CD8
+ ldr r0, [r5]
+ mov r2, #0x30
+ add r0, #0x34
+ ldrb r0, [r0]
+ add r0, #0x15
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _02217134 ; =0x00001FB8
+ ldr r0, [r1, r0]
+ mov r1, #0x88
+ bl MOD09_02216BB0
+ ldr r1, [r5]
+ ldrh r0, [r4, #0x1a]
+ ldrb r1, [r1, #0x11]
+ mov r3, #0x14
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _02217134 ; =0x00001FB8
+ ldr r1, [r2, r1]
+ mov r2, #0x20
+ bl MOD09_02216D2C
+ ldr r1, [r5]
+ add r0, r4, #0
+ ldrb r1, [r1, #0x11]
+ add r0, #0x2d
+ ldrb r0, [r0]
+ add r1, #0x20
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _02217134 ; =0x00001FB8
+ mov r3, #0x14
+ ldr r1, [r2, r1]
+ mov r2, #0x28
+ bl MOD09_02216D60
+ ldr r2, [r5]
+ ldr r1, _0221713C ; =0x00002020
+ add r2, #0x34
+ ldrb r2, [r2]
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ lsl r2, r2, #3
+ add r2, r4, r2
+ add r2, #0x35
+ ldrb r2, [r2]
+ bl MOD09_02216C60
+ ldr r0, _0221713C ; =0x00002020
+ mov r1, #0x18
+ ldr r0, [r5, r0]
+ mov r2, #0x58
+ bl MOD09_02216BB0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02217134: .word 0x00001FB8
+_02217138: .word 0x0221B480
+_0221713C: .word 0x00002020
+
+ thumb_func_start MOD09_02217140
+MOD09_02217140: ; 0x02217140
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r1, r5, #4
+ ldrb r2, [r0, #0x11]
+ mov r0, #0x50
+ mul r0, r2
+ add r4, r1, r0
+ add r0, r2, #7
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _022171A4 ; =0x00001FB8
+ mov r2, #0xc
+ ldr r0, [r1, r0]
+ mov r1, #0x18
+ bl MOD09_02216BB0
+ ldr r2, _022171A8 ; =0x0221B460
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02216CD8
+ ldr r1, [r5]
+ ldrh r0, [r4, #0x1a]
+ ldrb r1, [r1, #0x11]
+ mov r3, #0x14
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _022171A4 ; =0x00001FB8
+ ldr r1, [r2, r1]
+ mov r2, #0x20
+ bl MOD09_02216D2C
+ ldr r1, [r5]
+ add r4, #0x2d
+ ldrb r1, [r1, #0x11]
+ ldrb r0, [r4]
+ mov r3, #0x14
+ add r1, #0x20
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _022171A4 ; =0x00001FB8
+ ldr r1, [r2, r1]
+ mov r2, #0x28
+ bl MOD09_02216D60
+ add r0, r5, #0
+ bl MOD09_022174EC
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022171A4: .word 0x00001FB8
+_022171A8: .word 0x0221B460
+
+ thumb_func_start MOD09_022171AC
+MOD09_022171AC: ; 0x022171AC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r1, r5, #4
+ ldrb r2, [r0, #0x11]
+ mov r0, #0x50
+ mul r0, r2
+ add r4, r1, r0
+ add r0, r2, #7
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _02217264 ; =0x00001FB8
+ mov r2, #0xc
+ ldr r0, [r1, r0]
+ mov r1, #0x18
+ bl MOD09_02216BB0
+ ldr r2, _02217268 ; =0x0221B450
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02216CD8
+ ldr r0, [r5]
+ mov r2, #0x30
+ add r0, #0x34
+ ldrb r0, [r0]
+ add r0, #0x15
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _02217264 ; =0x00001FB8
+ ldr r0, [r1, r0]
+ mov r1, #0x88
+ bl MOD09_02216BB0
+ ldr r1, [r5]
+ ldrh r0, [r4, #0x1a]
+ ldrb r1, [r1, #0x11]
+ mov r3, #0x14
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _02217264 ; =0x00001FB8
+ ldr r1, [r2, r1]
+ mov r2, #0x20
+ bl MOD09_02216D2C
+ ldr r1, [r5]
+ add r0, r4, #0
+ ldrb r1, [r1, #0x11]
+ add r0, #0x2d
+ ldrb r0, [r0]
+ add r1, #0x20
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _02217264 ; =0x00001FB8
+ mov r3, #0x14
+ ldr r1, [r2, r1]
+ mov r2, #0x28
+ bl MOD09_02216D60
+ ldr r1, [r5]
+ add r0, r1, #0
+ add r0, #0x34
+ ldrb r2, [r0]
+ cmp r2, #4
+ bhs _02217242
+ lsl r2, r2, #3
+ add r2, r4, r2
+ ldr r1, _0221726C ; =0x00002020
+ add r2, #0x35
+ ldrb r2, [r2]
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ bl MOD09_02216C60
+ b _02217256
+_02217242:
+ ldrh r0, [r1, #0x24]
+ mov r1, #1
+ bl FUN_0206AB18
+ ldr r1, _0221726C ; =0x00002020
+ add r2, r0, #0
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ bl MOD09_02216C60
+_02217256:
+ ldr r0, _0221726C ; =0x00002020
+ mov r1, #0x18
+ ldr r0, [r5, r0]
+ mov r2, #0x58
+ bl MOD09_02216BB0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02217264: .word 0x00001FB8
+_02217268: .word 0x0221B450
+_0221726C: .word 0x00002020
+
+ thumb_func_start MOD09_02217270
+MOD09_02217270: ; 0x02217270
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r1, r5, #4
+ ldrb r2, [r0, #0x11]
+ mov r0, #0x50
+ mul r0, r2
+ add r4, r1, r0
+ add r0, r2, #7
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _022172D4 ; =0x00001FB8
+ mov r2, #0xc
+ ldr r0, [r1, r0]
+ mov r1, #0x18
+ bl MOD09_02216BB0
+ ldr r2, _022172D8 ; =0x0221B460
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02216CD8
+ ldr r1, [r5]
+ ldrh r0, [r4, #0x1a]
+ ldrb r1, [r1, #0x11]
+ mov r3, #0x14
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _022172D4 ; =0x00001FB8
+ ldr r1, [r2, r1]
+ mov r2, #0x20
+ bl MOD09_02216D2C
+ ldr r1, [r5]
+ add r4, #0x2d
+ ldrb r1, [r1, #0x11]
+ ldrb r0, [r4]
+ mov r3, #0x14
+ add r1, #0x20
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _022172D4 ; =0x00001FB8
+ ldr r1, [r2, r1]
+ mov r2, #0x28
+ bl MOD09_02216D60
+ add r0, r5, #0
+ bl MOD09_022174EC
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022172D4: .word 0x00001FB8
+_022172D8: .word 0x0221B460
+
+ thumb_func_start MOD09_022172DC
+MOD09_022172DC: ; 0x022172DC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r1, r5, #4
+ ldrb r2, [r0, #0x11]
+ mov r0, #0x50
+ mul r0, r2
+ add r4, r1, r0
+ add r0, r2, #7
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _02217350 ; =0x00001FB8
+ mov r2, #0xc
+ ldr r0, [r1, r0]
+ mov r1, #0x18
+ bl MOD09_02216BB0
+ ldr r0, [r5]
+ mov r2, #0x48
+ add r0, #0x34
+ ldrb r0, [r0]
+ add r0, #0x15
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _02217350 ; =0x00001FB8
+ ldr r0, [r1, r0]
+ mov r1, #0x88
+ bl MOD09_02216BB0
+ ldr r1, [r5]
+ ldrh r0, [r4, #0x1a]
+ ldrb r1, [r1, #0x11]
+ mov r3, #0x14
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _02217350 ; =0x00001FB8
+ ldr r1, [r2, r1]
+ mov r2, #0x20
+ bl MOD09_02216D2C
+ ldr r1, [r5]
+ add r4, #0x2d
+ ldrb r1, [r1, #0x11]
+ ldrb r0, [r4]
+ mov r3, #0x14
+ add r1, #0x20
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _02217350 ; =0x00001FB8
+ ldr r1, [r2, r1]
+ mov r2, #0x28
+ bl MOD09_02216D60
+ add r0, r5, #0
+ bl MOD09_02217624
+ pop {r3, r4, r5, pc}
+ nop
+_02217350: .word 0x00001FB8
+
+ thumb_func_start MOD09_02217354
+MOD09_02217354: ; 0x02217354
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r1, r5, #4
+ ldrb r2, [r0, #0x11]
+ mov r0, #0x50
+ mul r0, r2
+ add r4, r1, r0
+ add r0, r2, #7
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _022173B4 ; =0x00001FB8
+ mov r2, #0xc
+ ldr r0, [r1, r0]
+ mov r1, #0x18
+ bl MOD09_02216BB0
+ ldr r1, [r5]
+ ldrh r0, [r4, #0x1a]
+ ldrb r1, [r1, #0x11]
+ mov r3, #0x14
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _022173B4 ; =0x00001FB8
+ ldr r1, [r2, r1]
+ mov r2, #0x20
+ bl MOD09_02216D2C
+ ldr r1, [r5]
+ add r4, #0x2d
+ ldrb r1, [r1, #0x11]
+ ldrb r0, [r4]
+ mov r3, #0x14
+ add r1, #0x20
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r1, _022173B4 ; =0x00001FB8
+ ldr r1, [r2, r1]
+ mov r2, #0x28
+ bl MOD09_02216D60
+ add r0, r5, #0
+ bl MOD09_022174EC
+ add r0, r5, #0
+ bl MOD09_02217624
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022173B4: .word 0x00001FB8
+
+ thumb_func_start MOD09_022173B8
+MOD09_022173B8: ; 0x022173B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ add r2, r6, #4
+ ldrb r1, [r0, #0x11]
+ mov r0, #0x50
+ mov r4, #0
+ mul r0, r1
+ add r0, r2, r0
+ str r0, [sp]
+_022173CC:
+ ldr r0, [sp]
+ lsl r5, r4, #3
+ add r3, r0, r5
+ ldrh r0, [r3, #0x30]
+ cmp r0, #0
+ beq _02217400
+ lsl r0, r4, #2
+ add r3, #0x34
+ add r7, r6, r0
+ ldr r1, _02217438 ; =0x0000200C
+ ldr r2, _0221743C ; =0x0000B010
+ ldrb r3, [r3]
+ ldr r1, [r7, r1]
+ add r0, r6, #0
+ add r2, r4, r2
+ bl MOD09_02216C10
+ ldr r0, _02217440 ; =0x0221B5A8
+ ldr r1, _02217440 ; =0x0221B5A8
+ add r2, r0, r5
+ ldr r0, _02217438 ; =0x0000200C
+ ldr r1, [r1, r5]
+ ldr r0, [r7, r0]
+ ldr r2, [r2, #4]
+ bl MOD09_02216BB0
+_02217400:
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #4
+ blo _022173CC
+ ldr r0, [r6]
+ ldrh r0, [r0, #0x24]
+ cmp r0, #0
+ beq _02217436
+ mov r1, #3
+ bl FUN_0206AB18
+ add r3, r0, #0
+ ldr r1, _02217444 ; =0x0000201C
+ lsl r3, r3, #0x18
+ ldr r1, [r6, r1]
+ ldr r2, _02217448 ; =0x0000B014
+ add r0, r6, #0
+ lsr r3, r3, #0x18
+ bl MOD09_02216C10
+ ldr r0, _02217444 ; =0x0000201C
+ mov r1, #0x58
+ ldr r0, [r6, r0]
+ mov r2, #0xb0
+ bl MOD09_02216BB0
+_02217436:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02217438: .word 0x0000200C
+_0221743C: .word 0x0000B010
+_02217440: .word 0x0221B5A8
+_02217444: .word 0x0000201C
+_02217448: .word 0x0000B014
+
+ thumb_func_start MOD09_0221744C
+MOD09_0221744C: ; 0x0221744C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, [r7]
+ add r2, r7, #4
+ ldrb r1, [r0, #0x11]
+ mov r0, #0x50
+ mov r4, #0
+ mul r0, r1
+ add r0, r2, r0
+ str r0, [sp]
+_02217460:
+ ldr r0, [sp]
+ lsl r5, r4, #3
+ add r0, r0, r5
+ ldrh r0, [r0, #0x30]
+ cmp r0, #0
+ beq _0221749E
+ lsl r1, r4, #2
+ add r6, r7, r1
+ mov r1, #0xb
+ bl FUN_0206AB18
+ add r3, r0, #0
+ ldr r1, _022174D8 ; =0x0000200C
+ ldr r2, _022174DC ; =0x0000B010
+ add r3, #0x12
+ lsl r3, r3, #0x18
+ ldr r1, [r6, r1]
+ add r0, r7, #0
+ add r2, r4, r2
+ lsr r3, r3, #0x18
+ bl MOD09_02216C10
+ ldr r0, _022174E0 ; =0x0221B5A8
+ ldr r1, _022174E0 ; =0x0221B5A8
+ add r2, r0, r5
+ ldr r0, _022174D8 ; =0x0000200C
+ ldr r1, [r1, r5]
+ ldr r0, [r6, r0]
+ ldr r2, [r2, #4]
+ bl MOD09_02216BB0
+_0221749E:
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #4
+ blo _02217460
+ ldr r0, [r7]
+ ldrh r0, [r0, #0x24]
+ cmp r0, #0
+ beq _022174D6
+ mov r1, #0xb
+ bl FUN_0206AB18
+ add r3, r0, #0
+ ldr r1, _022174E4 ; =0x0000201C
+ add r3, #0x12
+ lsl r3, r3, #0x18
+ ldr r1, [r7, r1]
+ ldr r2, _022174E8 ; =0x0000B014
+ add r0, r7, #0
+ lsr r3, r3, #0x18
+ bl MOD09_02216C10
+ ldr r0, _022174E4 ; =0x0000201C
+ mov r1, #0x58
+ ldr r0, [r7, r0]
+ mov r2, #0xb0
+ bl MOD09_02216BB0
+_022174D6:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022174D8: .word 0x0000200C
+_022174DC: .word 0x0000B010
+_022174E0: .word 0x0221B5A8
+_022174E4: .word 0x0000201C
+_022174E8: .word 0x0000B014
+
+ thumb_func_start MOD09_022174EC
+MOD09_022174EC: ; 0x022174EC
+ push {r3, lr}
+ ldr r1, _02217504 ; =0x00002077
+ ldrb r1, [r0, r1]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ bne _022174FE
+ bl MOD09_022173B8
+ pop {r3, pc}
+_022174FE:
+ bl MOD09_0221744C
+ pop {r3, pc}
+ .align 2, 0
+_02217504: .word 0x00002077
+
+ thumb_func_start MOD09_02217508
+MOD09_02217508: ; 0x02217508
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200C5CC
+ cmp r4, r0
+ beq _02217526
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200C5C0
+_02217526:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD09_02217528
+MOD09_02217528: ; 0x02217528
+ push {r3, lr}
+ add r2, r0, #0
+ ldrh r0, [r2, #0x10]
+ cmp r0, #0
+ bne _02217536
+ mov r0, #0
+ pop {r3, pc}
+_02217536:
+ ldrb r1, [r2, #0x17]
+ lsl r1, r1, #0x19
+ lsr r1, r1, #0x1c
+ cmp r1, #7
+ beq _02217548
+ cmp r1, #6
+ beq _02217548
+ mov r0, #5
+ pop {r3, pc}
+_02217548:
+ ldrh r1, [r2, #0x12]
+ mov r2, #0x30
+ bl FUN_02079A54
+ cmp r0, #4
+ bhi _0221757A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02217560: ; jump table
+ .short _0221757A - _02217560 - 2 ; case 0
+ .short _02217576 - _02217560 - 2 ; case 1
+ .short _02217572 - _02217560 - 2 ; case 2
+ .short _0221756E - _02217560 - 2 ; case 3
+ .short _0221756A - _02217560 - 2 ; case 4
+_0221756A:
+ mov r0, #1
+ pop {r3, pc}
+_0221756E:
+ mov r0, #2
+ pop {r3, pc}
+_02217572:
+ mov r0, #3
+ pop {r3, pc}
+_02217576:
+ mov r0, #4
+ pop {r3, pc}
+_0221757A:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02217580
+MOD09_02217580: ; 0x02217580
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ mov r4, #0
+ ldr r0, [r0]
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _022175D8
+ add r7, r5, #4
+_02217594:
+ mov r0, #0x50
+ add r1, r4, #0
+ mul r1, r0
+ add r0, r5, r1
+ ldrh r0, [r0, #8]
+ cmp r0, #0
+ beq _022175C6
+ add r0, r7, r1
+ bl MOD09_02217528
+ add r1, r0, #0
+ lsl r0, r4, #2
+ add r6, r5, r0
+ ldr r0, _022175DC ; =0x00001FD4
+ lsl r1, r1, #0x18
+ ldr r0, [r6, r0]
+ lsr r1, r1, #0x18
+ bl MOD09_02217508
+ ldr r0, _022175DC ; =0x00001FD4
+ mov r1, #1
+ ldr r0, [r6, r0]
+ lsl r1, r1, #0xc
+ bl FUN_0200C5B4
+_022175C6:
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _02217594
+_022175D8:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022175DC: .word 0x00001FD4
+
+ thumb_func_start MOD09_022175E0
+MOD09_022175E0: ; 0x022175E0
+ push {r4, lr}
+ add r4, r2, #0
+ cmp r4, r1
+ ble _02217606
+ add r0, #0x2c
+ sub r1, r4, r1
+ mul r1, r0
+ lsl r0, r1, #0x10
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ bl _u32_div_f
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ pop {r4, pc}
+_02217606:
+ add r0, #0x2c
+ sub r1, r1, r4
+ mul r1, r0
+ lsl r0, r1, #0x10
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ bl _u32_div_f
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ pop {r4, pc}
+
+ thumb_func_start MOD09_02217624
+MOD09_02217624: ; 0x02217624
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ add r5, r6, #4
+ ldrb r1, [r0, #0x11]
+ mov r0, #0x50
+ add r4, r1, #0
+ mul r4, r0
+ ldr r0, _0221773C ; =0x00002024
+ mov r1, #0
+ ldr r0, [r6, r0]
+ bl MOD09_02217508
+ ldr r0, _02217740 ; =0x00002028
+ mov r1, #1
+ ldr r0, [r6, r0]
+ bl MOD09_02217508
+ ldr r0, _02217744 ; =0x0000202C
+ mov r1, #3
+ ldr r0, [r6, r0]
+ bl MOD09_02217508
+ ldr r0, _02217748 ; =0x00002030
+ mov r1, #4
+ ldr r0, [r6, r0]
+ bl MOD09_02217508
+ ldr r0, _0221774C ; =0x00002034
+ mov r1, #2
+ ldr r0, [r6, r0]
+ bl MOD09_02217508
+ add r0, r5, r4
+ add r0, #0x28
+ mov r1, #0x90
+ ldrb r0, [r0]
+ add r2, r1, #0
+ bl MOD09_022175E0
+ add r7, r0, #0
+ add r0, r5, r4
+ add r0, #0x28
+ ldrb r0, [r0]
+ mov r1, #2
+ mov r2, #0x18
+ bl MOD09_022175E0
+ add r2, r0, #0
+ ldr r0, _0221773C ; =0x00002024
+ add r1, r7, #0
+ ldr r0, [r6, r0]
+ bl MOD09_02216BB0
+ add r0, r5, r4
+ add r0, #0x29
+ ldrb r0, [r0]
+ mov r1, #0xa7
+ mov r2, #0x90
+ bl MOD09_022175E0
+ add r7, r0, #0
+ add r0, r5, r4
+ add r0, #0x29
+ ldrb r0, [r0]
+ mov r1, #0x12
+ mov r2, #0x18
+ bl MOD09_022175E0
+ add r2, r0, #0
+ ldr r0, _02217740 ; =0x00002028
+ add r1, r7, #0
+ ldr r0, [r6, r0]
+ bl MOD09_02216BB0
+ add r0, r5, r4
+ add r0, #0x2a
+ ldrb r0, [r0]
+ mov r1, #0x9f
+ mov r2, #0x90
+ bl MOD09_022175E0
+ add r7, r0, #0
+ add r0, r5, r4
+ add r0, #0x2a
+ ldrb r0, [r0]
+ mov r1, #0x2f
+ mov r2, #0x18
+ bl MOD09_022175E0
+ add r2, r0, #0
+ ldr r0, _02217744 ; =0x0000202C
+ add r1, r7, #0
+ ldr r0, [r6, r0]
+ bl MOD09_02216BB0
+ add r0, r5, r4
+ add r0, #0x2b
+ ldrb r0, [r0]
+ mov r1, #0x80
+ mov r2, #0x8f
+ bl MOD09_022175E0
+ add r7, r0, #0
+ add r0, r5, r4
+ add r0, #0x2b
+ ldrb r0, [r0]
+ mov r1, #0x2f
+ mov r2, #0x18
+ bl MOD09_022175E0
+ add r2, r0, #0
+ ldr r0, _02217748 ; =0x00002030
+ add r1, r7, #0
+ ldr r0, [r6, r0]
+ bl MOD09_02216BB0
+ add r0, r5, r4
+ add r0, #0x2c
+ ldrb r0, [r0]
+ mov r1, #0x78
+ mov r2, #0x8f
+ bl MOD09_022175E0
+ add r7, r0, #0
+ add r0, r5, r4
+ add r0, #0x2c
+ ldrb r0, [r0]
+ mov r1, #0x12
+ mov r2, #0x18
+ bl MOD09_022175E0
+ add r2, r0, #0
+ ldr r0, _0221774C ; =0x00002034
+ add r1, r7, #0
+ ldr r0, [r6, r0]
+ bl MOD09_02216BB0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221773C: .word 0x00002024
+_02217740: .word 0x00002028
+_02217744: .word 0x0000202C
+_02217748: .word 0x00002030
+_0221774C: .word 0x00002034
+
+ thumb_func_start MOD09_02217750
+MOD09_02217750: ; 0x02217750
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5]
+ ldr r0, [r0, #8]
+ bl FUN_02230078
+ ldr r3, _022177A8 ; =0x0000B00C
+ mov r2, #0x7a
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ ldr r1, _022177AC ; =0x00001FB4
+ lsl r2, r2, #2
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ add r3, #0xc
+ add r4, r0, #0
+ bl FUN_0225D3EC
+ ldr r3, _022177A8 ; =0x0000B00C
+ mov r0, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r1, _022177AC ; =0x00001FB4
+ ldr r2, [r5]
+ ldr r1, [r5, r1]
+ ldr r2, [r2, #0xc]
+ add r0, r4, #0
+ add r3, #0xc
+ bl FUN_0225D484
+ add r1, r0, #0
+ ldr r0, _022177B0 ; =0x00002088
+ ldr r0, [r5, r0]
+ bl MOD09_0221AC30
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_022177A8: .word 0x0000B00C
+_022177AC: .word 0x00001FB4
+_022177B0: .word 0x00002088
+
+ thumb_func_start MOD09_022177B4
+MOD09_022177B4: ; 0x022177B4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, _022177DC ; =0x00002088
+ ldr r0, [r4, r0]
+ bl MOD09_0221AC24
+ bl FUN_0225D508
+ ldr r2, _022177E0 ; =0x0000B00C
+ ldr r0, _022177E4 ; =0x00001FB4
+ str r2, [sp]
+ add r1, r2, #0
+ ldr r0, [r4, r0]
+ add r1, #0xc
+ add r3, r2, #0
+ bl FUN_0225D45C
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_022177DC: .word 0x00002088
+_022177E0: .word 0x0000B00C
+_022177E4: .word 0x00001FB4
+
+ thumb_func_start MOD09_022177E8
+MOD09_022177E8: ; 0x022177E8
+ push {r3, lr}
+ ldr r1, _0221780C ; =0x00002077
+ ldrb r2, [r0, r1]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1c
+ bne _02217800
+ add r1, #0x11
+ ldr r0, [r0, r1]
+ mov r1, #0x5f
+ bl MOD09_0221AC94
+ pop {r3, pc}
+_02217800:
+ add r1, #0x11
+ ldr r0, [r0, r1]
+ mov r1, #0x7f
+ bl MOD09_0221AC94
+ pop {r3, pc}
+ .align 2, 0
+_0221780C: .word 0x00002077
+
+ thumb_func_start MOD09_02217810
+MOD09_02217810: ; 0x02217810
+ push {r3, lr}
+ ldr r1, _02217834 ; =0x00002077
+ ldrb r2, [r0, r1]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1c
+ bne _02217828
+ add r1, #0x11
+ ldr r0, [r0, r1]
+ mov r1, #5
+ bl MOD09_0221AC94
+ pop {r3, pc}
+_02217828:
+ add r1, #0x11
+ ldr r0, [r0, r1]
+ mov r1, #7
+ bl MOD09_0221AC94
+ pop {r3, pc}
+ .align 2, 0
+_02217834: .word 0x00002077
+
+ thumb_func_start MOD09_02217838
+MOD09_02217838: ; 0x02217838
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldr r0, _022178D8 ; =0x00002088
+ ldr r1, _022178DC ; =0x0221B558
+ lsl r2, r5, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r1, r2]
+ bl MOD09_0221AC68
+ cmp r5, #9
+ bhi _022178D6
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221785C: ; jump table
+ .short _02217870 - _0221785C - 2 ; case 0
+ .short _0221788A - _0221785C - 2 ; case 1
+ .short _022178D6 - _0221785C - 2 ; case 2
+ .short _022178A0 - _0221785C - 2 ; case 3
+ .short _022178A0 - _0221785C - 2 ; case 4
+ .short _022178D6 - _0221785C - 2 ; case 5
+ .short _022178B0 - _0221785C - 2 ; case 6
+ .short _022178C4 - _0221785C - 2 ; case 7
+ .short _022178B0 - _0221785C - 2 ; case 8
+ .short _022178C4 - _0221785C - 2 ; case 9
+_02217870:
+ ldr r1, [r4]
+ ldr r0, _022178D8 ; =0x00002088
+ ldrb r1, [r1, #0x11]
+ ldr r0, [r4, r0]
+ bl MOD09_0221AC34
+ ldr r0, _022178E0 ; =0x0000208C
+ mov r1, #0
+ strb r1, [r4, r0]
+ ldr r0, [r4]
+ add r0, #0x34
+ strb r1, [r0]
+ pop {r3, r4, r5, pc}
+_0221788A:
+ ldr r1, _022178D8 ; =0x00002088
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldrb r1, [r4, r1]
+ bl MOD09_0221AC34
+ ldr r0, [r4]
+ mov r1, #0
+ add r0, #0x34
+ strb r1, [r0]
+ pop {r3, r4, r5, pc}
+_022178A0:
+ ldr r1, [r4]
+ ldr r0, _022178D8 ; =0x00002088
+ add r1, #0x34
+ ldrb r1, [r1]
+ ldr r0, [r4, r0]
+ bl MOD09_0221AC34
+ pop {r3, r4, r5, pc}
+_022178B0:
+ add r0, r4, #0
+ bl MOD09_022177E8
+ ldr r1, _022178D8 ; =0x00002088
+ ldr r0, [r4, r1]
+ add r1, r1, #5
+ ldrb r1, [r4, r1]
+ bl MOD09_0221AC34
+ pop {r3, r4, r5, pc}
+_022178C4:
+ add r0, r4, #0
+ bl MOD09_02217810
+ ldr r1, _022178D8 ; =0x00002088
+ ldr r0, [r4, r1]
+ add r1, r1, #6
+ ldrb r1, [r4, r1]
+ bl MOD09_0221AC34
+_022178D6:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022178D8: .word 0x00002088
+_022178DC: .word 0x0221B558
+_022178E0: .word 0x0000208C
+
+ thumb_func_start MOD09_022178E4
+MOD09_022178E4: ; 0x022178E4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02217908 ; =0x00002088
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl MOD09_0221AC2C
+ ldr r0, _02217908 ; =0x00002088
+ ldr r0, [r4, r0]
+ bl MOD09_0221AC5C
+ ldr r0, _02217908 ; =0x00002088
+ ldr r0, [r4, r0]
+ bl MOD09_0221AC24
+ bl FUN_0225D648
+ pop {r4, pc}
+ .align 2, 0
+_02217908: .word 0x00002088
+
+ thumb_func_start MOD09_0221790C
+MOD09_0221790C: ; 0x0221790C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0x7b
+ lsl r0, r0, #2
+ mov r2, #0
+ add r0, r5, r0
+ add r3, r2, #0
+ add r4, r1, #0
+ bl MOD09_02217CEC
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xab
+ lsl r0, r0, #2
+ mov r3, #6
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r2, #0
+ str r3, [sp, #4]
+ bl MOD09_02217CEC
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r2, #0
+ mov r3, #0xc
+ bl MOD09_02217CEC
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r0, _02217BCC ; =0x0000042C
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #0x12
+ bl MOD09_02217CEC
+ mov r2, #0x10
+ str r2, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r0, _02217BD0 ; =0x000004EC
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r3, #0
+ bl MOD09_02217CEC
+ ldr r0, _02217BD4 ; =0x000005AC
+ mov r2, #0x10
+ str r2, [sp]
+ mov r3, #6
+ add r0, r5, r0
+ add r1, r4, #0
+ str r3, [sp, #4]
+ bl MOD09_02217CEC
+ mov r2, #0x10
+ str r2, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r0, _02217BD8 ; =0x0000066C
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r3, #0xc
+ bl MOD09_02217CEC
+ mov r2, #0x10
+ str r2, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r0, _02217BDC ; =0x0000072C
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r3, #0x12
+ bl MOD09_02217CEC
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ ldr r0, _02217BE0 ; =0x000007EC
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #0x27
+ bl MOD09_02217CEC
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ ldr r0, _02217BE4 ; =0x0000086E
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #0x2c
+ bl MOD09_02217CEC
+ mov r2, #0xd
+ str r2, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r0, #0x8f
+ lsl r0, r0, #4
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r3, #0x27
+ bl MOD09_02217CEC
+ mov r2, #0xd
+ str r2, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ ldr r0, _02217BE8 ; =0x00000972
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r3, #0x2c
+ bl MOD09_02217CEC
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02217BEC ; =0x000009F4
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #0x31
+ bl MOD09_02217CEC
+ ldr r0, _02217BF0 ; =0x00000A26
+ mov r2, #5
+ str r2, [sp]
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r3, #0x31
+ str r2, [sp, #4]
+ bl MOD09_02217CEC
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02217BF4 ; =0x00000A58
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0xa
+ mov r3, #0x31
+ bl MOD09_02217CEC
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02217BF8 ; =0x00000A8A
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0xf
+ mov r3, #0x31
+ bl MOD09_02217CEC
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02217BFC ; =0x00000ABC
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #0x36
+ bl MOD09_02217CEC
+ ldr r0, _02217C00 ; =0x00000AEE
+ mov r2, #5
+ str r2, [sp]
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r3, #0x36
+ str r2, [sp, #4]
+ bl MOD09_02217CEC
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0xb2
+ lsl r0, r0, #4
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r2, #0xa
+ mov r3, #0x36
+ bl MOD09_02217CEC
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02217C04 ; =0x00000B52
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0xf
+ mov r3, #0x36
+ bl MOD09_02217CEC
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02217C08 ; =0x00000B84
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x1a
+ mov r3, #0x18
+ bl MOD09_02217CEC
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02217C0C ; =0x00000BB6
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x1a
+ mov r3, #0x1d
+ bl MOD09_02217CEC
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02217C10 ; =0x00000BE8
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x1a
+ mov r3, #0x22
+ bl MOD09_02217CEC
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02217C14 ; =0x00000C1A
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x1a
+ mov r3, #0x27
+ bl MOD09_02217CEC
+ mov r0, #0x1a
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r0, #0x6d
+ lsl r0, r0, #6
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r2, #0
+ mov r3, #0x18
+ bl MOD09_02217CEC
+ mov r0, #0x1a
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ ldr r0, _02217C18 ; =0x00001C44
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #0x1d
+ bl MOD09_02217CEC
+ mov r0, #0x1a
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ ldr r0, _02217C1C ; =0x00001D48
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #0x22
+ bl MOD09_02217CEC
+ mov r0, #9
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r0, _02217C20 ; =0x00001E4C
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x14
+ mov r3, #0x31
+ bl MOD09_02217CEC
+ mov r0, #9
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r0, _02217C24 ; =0x00001E94
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x14
+ mov r3, #0x35
+ bl MOD09_02217CEC
+ mov r0, #9
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r0, _02217C28 ; =0x00001EDC
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x14
+ mov r3, #0x39
+ bl MOD09_02217CEC
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _02217C2C ; =0x00001F24
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #0x3b
+ bl MOD09_02217CEC
+ mov r2, #5
+ str r2, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _02217C30 ; =0x00001F38
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r3, #0x3b
+ bl MOD09_02217CEC
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _02217C34 ; =0x00001F4C
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0xa
+ mov r3, #0x3b
+ bl MOD09_02217CEC
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02217BCC: .word 0x0000042C
+_02217BD0: .word 0x000004EC
+_02217BD4: .word 0x000005AC
+_02217BD8: .word 0x0000066C
+_02217BDC: .word 0x0000072C
+_02217BE0: .word 0x000007EC
+_02217BE4: .word 0x0000086E
+_02217BE8: .word 0x00000972
+_02217BEC: .word 0x000009F4
+_02217BF0: .word 0x00000A26
+_02217BF4: .word 0x00000A58
+_02217BF8: .word 0x00000A8A
+_02217BFC: .word 0x00000ABC
+_02217C00: .word 0x00000AEE
+_02217C04: .word 0x00000B52
+_02217C08: .word 0x00000B84
+_02217C0C: .word 0x00000BB6
+_02217C10: .word 0x00000BE8
+_02217C14: .word 0x00000C1A
+_02217C18: .word 0x00001C44
+_02217C1C: .word 0x00001D48
+_02217C20: .word 0x00001E4C
+_02217C24: .word 0x00001E94
+_02217C28: .word 0x00001EDC
+_02217C2C: .word 0x00001F24
+_02217C30: .word 0x00001F38
+_02217C34: .word 0x00001F4C
+
+ thumb_func_start MOD09_02217C38
+MOD09_02217C38: ; 0x02217C38
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0x1e
+ str r0, [sp]
+ mov r0, #0x11
+ str r0, [sp, #4]
+ ldr r0, _02217CE0 ; =0x00000C4C
+ mov r2, #0
+ add r0, r5, r0
+ add r3, r2, #0
+ add r4, r1, #0
+ bl MOD09_02217CEC
+ mov r0, #0x1e
+ str r0, [sp]
+ ldr r0, _02217CE4 ; =0x00001048
+ mov r3, #0x11
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r2, #0
+ str r3, [sp, #4]
+ bl MOD09_02217CEC
+ mov r0, #0x1e
+ str r0, [sp]
+ mov r0, #0x11
+ str r0, [sp, #4]
+ ldr r0, _02217CE8 ; =0x00001444
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #0x22
+ bl MOD09_02217CEC
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0x61
+ lsl r0, r0, #6
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r2, #0
+ mov r3, #0x33
+ bl MOD09_02217CEC
+ mov r2, #0x10
+ str r2, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0x19
+ lsl r0, r0, #8
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r3, #0x33
+ bl MOD09_02217CEC
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0x67
+ lsl r0, r0, #6
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r2, #0
+ mov r3, #0x39
+ bl MOD09_02217CEC
+ mov r2, #0x10
+ str r2, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0x6a
+ lsl r0, r0, #6
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r3, #0x39
+ bl MOD09_02217CEC
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02217CE0: .word 0x00000C4C
+_02217CE4: .word 0x00001048
+_02217CE8: .word 0x00001444
+
+ thumb_func_start MOD09_02217CEC
+MOD09_02217CEC: ; 0x02217CEC
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r0, sp, #8
+ mov lr, r3
+ ldrb r3, [r0, #0x14]
+ mov r6, #0
+ mov ip, r3
+ cmp r3, #0
+ ble _02217D38
+ ldrb r3, [r0, #0x10]
+ lsl r2, r2, #1
+ add r7, r1, r2
+_02217D04:
+ mov r2, #0
+ cmp r3, #0
+ ble _02217D2C
+ mov r0, lr
+ add r0, r0, r6
+ lsl r0, r0, #6
+ add r5, r7, r0
+ add r0, r6, #0
+ mul r0, r3
+ lsl r1, r0, #1
+ ldr r0, [sp]
+ add r4, r0, r1
+_02217D1C:
+ lsl r1, r2, #1
+ ldrh r0, [r5, r1]
+ strh r0, [r4, r1]
+ add r0, r2, #1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ cmp r2, r3
+ blt _02217D1C
+_02217D2C:
+ add r0, r6, #1
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ mov r0, ip
+ cmp r6, r0
+ blt _02217D04
+_02217D38:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02217D3C
+MOD09_02217D3C: ; 0x02217D3C
+ cmp r1, #0x21
+ bhi _02217E22
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02217D4C: ; jump table
+ .short _02217D90 - _02217D4C - 2 ; case 0
+ .short _02217D90 - _02217D4C - 2 ; case 1
+ .short _02217D90 - _02217D4C - 2 ; case 2
+ .short _02217D90 - _02217D4C - 2 ; case 3
+ .short _02217D90 - _02217D4C - 2 ; case 4
+ .short _02217D90 - _02217D4C - 2 ; case 5
+ .short _02217DAE - _02217D4C - 2 ; case 6
+ .short _02217DBA - _02217D4C - 2 ; case 7
+ .short _02217DC8 - _02217D4C - 2 ; case 8
+ .short _02217DC8 - _02217D4C - 2 ; case 9
+ .short _02217DC8 - _02217D4C - 2 ; case 10
+ .short _02217DC8 - _02217D4C - 2 ; case 11
+ .short _02217DD4 - _02217D4C - 2 ; case 12
+ .short _02217DE0 - _02217D4C - 2 ; case 13
+ .short _02217DEC - _02217D4C - 2 ; case 14
+ .short _02217DEC - _02217D4C - 2 ; case 15
+ .short _02217DEC - _02217D4C - 2 ; case 16
+ .short _02217DEC - _02217D4C - 2 ; case 17
+ .short _02217E0A - _02217D4C - 2 ; case 18
+ .short _02217DEC - _02217D4C - 2 ; case 19
+ .short _02217DEC - _02217D4C - 2 ; case 20
+ .short _02217DEC - _02217D4C - 2 ; case 21
+ .short _02217DEC - _02217D4C - 2 ; case 22
+ .short _02217DEC - _02217D4C - 2 ; case 23
+ .short _02217DEC - _02217D4C - 2 ; case 24
+ .short _02217DEC - _02217D4C - 2 ; case 25
+ .short _02217DEC - _02217D4C - 2 ; case 26
+ .short _02217DEC - _02217D4C - 2 ; case 27
+ .short _02217DFA - _02217D4C - 2 ; case 28
+ .short _02217DFA - _02217D4C - 2 ; case 29
+ .short _02217E16 - _02217D4C - 2 ; case 30
+ .short _02217E16 - _02217D4C - 2 ; case 31
+ .short _02217E16 - _02217D4C - 2 ; case 32
+ .short _02217E16 - _02217D4C - 2 ; case 33
+_02217D90:
+ cmp r3, #0
+ bne _02217DA2
+ mov r1, #0x7b
+ lsl r1, r1, #2
+ add r1, r0, r1
+ mov r0, #0xc0
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_02217DA2:
+ ldr r1, _02217E28 ; =0x000004EC
+ add r1, r0, r1
+ mov r0, #0xc0
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_02217DAE:
+ ldr r1, _02217E2C ; =0x00000B84
+ add r1, r0, r1
+ mov r0, #0x32
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_02217DBA:
+ ldr r1, _02217E30 ; =0x00000C4C
+ add r1, r0, r1
+ mov r0, #0xff
+ lsl r0, r0, #2
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_02217DC8:
+ ldr r1, _02217E34 ; =0x000007EC
+ add r1, r0, r1
+ mov r0, #0x82
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_02217DD4:
+ ldr r1, _02217E38 ; =0x000009F4
+ add r1, r0, r1
+ mov r0, #0x32
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_02217DE0:
+ ldr r1, _02217E3C ; =0x00000ABC
+ add r1, r0, r1
+ mov r0, #0x32
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_02217DEC:
+ mov r1, #0x61
+ lsl r1, r1, #6
+ add r1, r0, r1
+ mov r0, #0xc0
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_02217DFA:
+ mov r1, #0x6d
+ lsl r1, r1, #6
+ add r1, r0, r1
+ lsl r0, r2, #6
+ add r0, r2, r0
+ lsl r0, r0, #2
+ add r0, r1, r0
+ bx lr
+_02217E0A:
+ ldr r1, _02217E40 ; =0x00001E4C
+ add r1, r0, r1
+ mov r0, #0x48
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_02217E16:
+ ldr r1, _02217E44 ; =0x00001F24
+ add r1, r0, r1
+ mov r0, #0x14
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_02217E22:
+ mov r0, #0
+ bx lr
+ nop
+_02217E28: .word 0x000004EC
+_02217E2C: .word 0x00000B84
+_02217E30: .word 0x00000C4C
+_02217E34: .word 0x000007EC
+_02217E38: .word 0x000009F4
+_02217E3C: .word 0x00000ABC
+_02217E40: .word 0x00001E4C
+_02217E44: .word 0x00001F24
+
+ thumb_func_start MOD09_02217E48
+MOD09_02217E48: ; 0x02217E48
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r2, #0
+ add r2, r3, #0
+ add r3, sp, #0x10
+ add r4, r1, #0
+ ldrb r3, [r3, #0x10]
+ add r1, r7, #0
+ str r0, [sp]
+ bl MOD09_02217D3C
+ add r1, r0, #0
+ ldr r2, _02217F7C ; =0x0221BAF2
+ lsl r0, r7, #2
+ ldrb r6, [r2, r0]
+ ldr r2, _02217F80 ; =0x0221BAF3
+ ldrb r0, [r2, r0]
+ add r5, r6, #0
+ mul r5, r0
+ add r0, r4, #0
+ lsl r2, r5, #1
+ bl memcpy
+ cmp r7, #5
+ bgt _02217E96
+ cmp r7, #0
+ blt _02217F78
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02217E8A: ; jump table
+ .short _02217E9E - _02217E8A - 2 ; case 0
+ .short _02217E9E - _02217E8A - 2 ; case 1
+ .short _02217E9E - _02217E8A - 2 ; case 2
+ .short _02217E9E - _02217E8A - 2 ; case 3
+ .short _02217E9E - _02217E8A - 2 ; case 4
+ .short _02217E9E - _02217E8A - 2 ; case 5
+_02217E96:
+ cmp r7, #0x1b
+ beq _02217F58
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02217E9E:
+ mov r0, #0x50
+ add r1, r7, #0
+ mul r1, r0
+ ldr r0, [sp]
+ add r0, r0, r1
+ ldrh r1, [r0, #8]
+ cmp r1, #0
+ beq _02217F78
+ ldrb r1, [r0, #0x1b]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1f
+ beq _02217EFE
+ lsl r2, r6, #1
+ add r0, r2, #5
+ lsl r0, r0, #1
+ ldrh r1, [r4, r0]
+ add r0, sp, #4
+ strh r1, [r0]
+ add r1, r6, r2
+ add r1, r1, #5
+ lsl r1, r1, #1
+ ldrh r1, [r4, r1]
+ strh r1, [r0, #2]
+ mov r1, #0
+ add r0, sp, #4
+_02217ED0:
+ add r5, r1, #2
+ lsl r3, r1, #1
+ add r7, r5, #0
+ mul r7, r6
+ lsl r5, r7, #1
+ ldrh r3, [r0, r3]
+ mov r2, #0
+ add r5, r4, r5
+_02217EE0:
+ lsl r7, r2, #1
+ add r2, r2, #1
+ lsl r2, r2, #0x18
+ add r7, r5, r7
+ lsr r2, r2, #0x18
+ strh r3, [r7, #0xc]
+ cmp r2, #9
+ blo _02217EE0
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, #2
+ blo _02217ED0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02217EFE:
+ ldrh r0, [r0, #0x14]
+ cmp r0, #0
+ bne _02217F28
+ mov r1, #0
+ cmp r5, #0
+ ble _02217F78
+ mov r3, #2
+ ldr r2, _02217F84 ; =0x00000FFF
+ lsl r3, r3, #0xc
+_02217F10:
+ lsl r0, r1, #1
+ ldrh r6, [r4, r0]
+ and r6, r2
+ orr r6, r3
+ strh r6, [r4, r0]
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, r5
+ blt _02217F10
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02217F28:
+ lsl r1, r7, #0x18
+ ldr r0, [sp]
+ lsr r1, r1, #0x18
+ bl MOD09_02213BDC
+ cmp r0, #1
+ bne _02217F78
+ mov r1, #0
+ cmp r5, #0
+ ble _02217F78
+ ldr r2, _02217F84 ; =0x00000FFF
+ add r3, r2, #1
+_02217F40:
+ lsl r0, r1, #1
+ ldrh r6, [r4, r0]
+ and r6, r2
+ orr r6, r3
+ strh r6, [r4, r0]
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, r5
+ blt _02217F40
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02217F58:
+ mov r1, #0
+ cmp r5, #0
+ ble _02217F78
+ mov r3, #0xa
+ ldr r2, _02217F84 ; =0x00000FFF
+ lsl r3, r3, #0xc
+_02217F64:
+ lsl r0, r1, #1
+ ldrh r6, [r4, r0]
+ and r6, r2
+ orr r6, r3
+ strh r6, [r4, r0]
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, r5
+ blt _02217F64
+_02217F78:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02217F7C: .word 0x0221BAF2
+_02217F80: .word 0x0221BAF3
+_02217F84: .word 0x00000FFF
+
+ thumb_func_start MOD09_02217F88
+MOD09_02217F88: ; 0x02217F88
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r1, [sp, #0xc]
+ str r2, [sp, #0x10]
+ str r3, [sp, #0x14]
+ add r5, r0, #0
+ ldr r0, [sp, #0xc]
+ lsl r4, r0, #2
+ ldr r0, _02217FF4 ; =0x0221BAF3
+ ldrb r7, [r0, r4]
+ ldr r0, _02217FF8 ; =0x0221BAF2
+ ldrb r6, [r0, r4]
+ ldr r0, [r5]
+ add r1, r6, #0
+ mul r1, r7
+ ldr r0, [r0, #0xc]
+ lsl r1, r1, #1
+ bl FUN_02016998
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ str r0, [sp]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD09_02217E48
+ ldr r0, _02217FFC ; =0x0221BAF1
+ ldr r3, _02218000 ; =0x0221BAF0
+ ldrb r0, [r0, r4]
+ ldrb r3, [r3, r4]
+ ldr r2, [sp, #0x18]
+ str r0, [sp]
+ str r6, [sp, #4]
+ mov r0, #0x79
+ str r7, [sp, #8]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl FUN_02018148
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl FUN_0201AC68
+ ldr r0, [sp, #0x18]
+ bl FUN_02016A18
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02217FF4: .word 0x0221BAF3
+_02217FF8: .word 0x0221BAF2
+_02217FFC: .word 0x0221BAF1
+_02218000: .word 0x0221BAF0
+
+ thumb_func_start MOD09_02218004
+MOD09_02218004: ; 0x02218004
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _022180A4 ; =0x0221BA68
+ lsl r3, r1, #2
+ ldr r6, [r0, r3]
+ cmp r6, #0
+ beq _022180A2
+ cmp r1, #5
+ bhi _0221801E
+ ldr r0, _022180A8 ; =0x0221BA58
+ ldrb r0, [r0, r2]
+ str r0, [sp]
+ b _02218024
+_0221801E:
+ ldr r0, _022180AC ; =0x0221BA48
+ ldrb r0, [r0, r2]
+ str r0, [sp]
+_02218024:
+ cmp r2, #0
+ beq _02218032
+ cmp r2, #1
+ beq _02218036
+ cmp r2, #2
+ beq _0221803A
+ b _0221803C
+_02218032:
+ mov r7, #1
+ b _0221803C
+_02218036:
+ mov r7, #0
+ b _0221803C
+_0221803A:
+ mov r7, #1
+_0221803C:
+ cmp r1, #0xe
+ blo _02218070
+ cmp r1, #0x11
+ bhi _02218070
+ ldr r1, _022180B0 ; =0x00002070
+ ldr r2, [sp]
+ ldr r0, [r5, r1]
+ add r1, r1, #5
+ ldrb r1, [r5, r1]
+ mov r3, #0
+ ldrb r1, [r6, r1]
+ lsl r1, r1, #4
+ add r0, r0, r1
+ add r1, r7, #0
+ bl FUN_0201A8C8
+ ldr r1, _022180B0 ; =0x00002070
+ ldr r0, [r5, r1]
+ add r1, r1, #5
+ ldrb r1, [r5, r1]
+ ldrb r1, [r6, r1]
+ lsl r1, r1, #4
+ add r0, r0, r1
+ bl FUN_02019220
+ pop {r3, r4, r5, r6, r7, pc}
+_02218070:
+ mov r4, #0
+_02218072:
+ ldrb r2, [r6, r4]
+ cmp r2, #0xff
+ beq _022180A2
+ ldr r0, _022180B0 ; =0x00002070
+ mov r3, #0
+ ldr r1, [r5, r0]
+ lsl r0, r2, #4
+ add r0, r1, r0
+ ldr r2, [sp]
+ add r1, r7, #0
+ bl FUN_0201A8C8
+ ldr r0, _022180B0 ; =0x00002070
+ ldr r1, [r5, r0]
+ ldrb r0, [r6, r4]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl FUN_02019220
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #8
+ blo _02218072
+_022180A2:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022180A4: .word 0x0221BA68
+_022180A8: .word 0x0221BA58
+_022180AC: .word 0x0221BA48
+_022180B0: .word 0x00002070
+
+ thumb_func_start MOD09_022180B4
+MOD09_022180B4: ; 0x022180B4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #0x1b
+ bhi _022181B8
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022180CA: ; jump table
+ .short _02218102 - _022180CA - 2 ; case 0
+ .short _02218102 - _022180CA - 2 ; case 1
+ .short _02218102 - _022180CA - 2 ; case 2
+ .short _02218102 - _022180CA - 2 ; case 3
+ .short _02218102 - _022180CA - 2 ; case 4
+ .short _02218102 - _022180CA - 2 ; case 5
+ .short _022181B8 - _022180CA - 2 ; case 6
+ .short _02218140 - _022180CA - 2 ; case 7
+ .short _022181B8 - _022180CA - 2 ; case 8
+ .short _022181B8 - _022180CA - 2 ; case 9
+ .short _022181B8 - _022180CA - 2 ; case 10
+ .short _022181B8 - _022180CA - 2 ; case 11
+ .short _022181B8 - _022180CA - 2 ; case 12
+ .short _022181B8 - _022180CA - 2 ; case 13
+ .short _02218172 - _022180CA - 2 ; case 14
+ .short _02218172 - _022180CA - 2 ; case 15
+ .short _02218172 - _022180CA - 2 ; case 16
+ .short _02218172 - _022180CA - 2 ; case 17
+ .short _022181B8 - _022180CA - 2 ; case 18
+ .short _0221818A - _022180CA - 2 ; case 19
+ .short _0221818A - _022180CA - 2 ; case 20
+ .short _0221818A - _022180CA - 2 ; case 21
+ .short _0221818A - _022180CA - 2 ; case 22
+ .short _022181A2 - _022180CA - 2 ; case 23
+ .short _022181A2 - _022180CA - 2 ; case 24
+ .short _022181A2 - _022180CA - 2 ; case 25
+ .short _022181A2 - _022180CA - 2 ; case 26
+ .short _022181A2 - _022180CA - 2 ; case 27
+_02218102:
+ ldr r0, _022181BC ; =0x0221BA62
+ lsl r1, r2, #1
+ ldrsh r6, [r0, r1]
+ add r0, r5, #0
+ add r0, #0xd
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, _022181C0 ; =0x00001FB8
+ add r2, r6, #0
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_0200C82C
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _022181C0 ; =0x00001FB8
+ add r2, r6, #0
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_0200C82C
+ add r0, r5, #7
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, _022181C0 ; =0x00001FB8
+ add r2, r6, #0
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_0200C82C
+ pop {r4, r5, r6, pc}
+_02218140:
+ ldr r0, _022181C4 ; =0x0221BA5C
+ lsl r1, r2, #1
+ ldrsh r5, [r0, r1]
+ ldr r0, [r4]
+ ldrb r0, [r0, #0x11]
+ add r2, r5, #0
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, _022181C0 ; =0x00001FB8
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_0200C82C
+ ldr r0, [r4]
+ add r2, r5, #0
+ ldrb r0, [r0, #0x11]
+ add r0, r0, #7
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, _022181C0 ; =0x00001FB8
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_0200C82C
+ pop {r4, r5, r6, pc}
+_02218172:
+ add r0, r5, #7
+ lsl r0, r0, #2
+ lsl r3, r2, #1
+ ldr r2, _022181C4 ; =0x0221BA5C
+ add r1, r4, r0
+ ldr r0, _022181C0 ; =0x00001FB8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_0200C82C
+ pop {r4, r5, r6, pc}
+_0221818A:
+ add r0, r5, #2
+ lsl r0, r0, #2
+ lsl r3, r2, #1
+ ldr r2, _022181C4 ; =0x0221BA5C
+ add r1, r4, r0
+ ldr r0, _022181C0 ; =0x00001FB8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_0200C82C
+ pop {r4, r5, r6, pc}
+_022181A2:
+ sub r0, r5, #2
+ lsl r0, r0, #2
+ lsl r3, r2, #1
+ ldr r2, _022181C4 ; =0x0221BA5C
+ add r1, r4, r0
+ ldr r0, _022181C0 ; =0x00001FB8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_0200C82C
+_022181B8:
+ pop {r4, r5, r6, pc}
+ nop
+_022181BC: .word 0x0221BA62
+_022181C0: .word 0x00001FB8
+_022181C4: .word 0x0221BA5C
+
+ thumb_func_start MOD09_022181C8
+MOD09_022181C8: ; 0x022181C8
+ push {r4, r5, r6, lr}
+ ldr r3, _02218210 ; =0x00001FA3
+ add r5, r0, #0
+ ldrb r6, [r5, r3]
+ mov r2, #0x70
+ add r4, r1, #0
+ bic r6, r2
+ strb r6, [r5, r3]
+ cmp r4, #5
+ bhi _022181F2
+ bl MOD09_02213620
+ cmp r0, #2
+ bne _022181F2
+ ldr r1, _02218210 ; =0x00001FA3
+ mov r0, #0x70
+ ldrb r2, [r5, r1]
+ bic r2, r0
+ mov r0, #0x10
+ orr r0, r2
+ strb r0, [r5, r1]
+_022181F2:
+ ldr r0, _02218214 ; =0x00001FA0
+ mov r2, #0
+ strb r2, [r5, r0]
+ add r1, r0, #1
+ strb r2, [r5, r1]
+ add r1, r0, #2
+ strb r4, [r5, r1]
+ add r1, r0, #3
+ ldrb r2, [r5, r1]
+ mov r1, #0x80
+ add r0, r0, #3
+ orr r1, r2
+ strb r1, [r5, r0]
+ pop {r4, r5, r6, pc}
+ nop
+_02218210: .word 0x00001FA3
+_02218214: .word 0x00001FA0
+
+ thumb_func_start MOD09_02218218
+MOD09_02218218: ; 0x02218218
+ push {r4, lr}
+ ldr r2, _022182DC ; =0x00001FA3
+ add r4, r0, #0
+ ldrb r3, [r4, r2]
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x1f
+ beq _022182D8
+ sub r1, r2, #3
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ beq _02218238
+ cmp r1, #1
+ beq _0221826C
+ cmp r1, #2
+ beq _022182A0
+ pop {r4, pc}
+_02218238:
+ sub r1, r2, #1
+ ldrb r1, [r4, r1]
+ lsl r3, r3, #0x19
+ mov r2, #1
+ lsr r3, r3, #0x1d
+ bl MOD09_02217F88
+ ldr r1, _022182E0 ; =0x00001FA2
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ mov r2, #1
+ bl MOD09_02218004
+ ldr r1, _022182E0 ; =0x00001FA2
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ mov r2, #1
+ bl MOD09_022180B4
+ ldr r0, _022182E4 ; =0x00001FA1
+ mov r1, #0
+ strb r1, [r4, r0]
+ mov r1, #1
+ sub r0, r0, #1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_0221826C:
+ sub r1, r2, #1
+ ldrb r1, [r4, r1]
+ lsl r3, r3, #0x19
+ mov r2, #2
+ lsr r3, r3, #0x1d
+ bl MOD09_02217F88
+ ldr r1, _022182E0 ; =0x00001FA2
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ mov r2, #2
+ bl MOD09_02218004
+ ldr r1, _022182E0 ; =0x00001FA2
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ mov r2, #2
+ bl MOD09_022180B4
+ ldr r0, _022182E4 ; =0x00001FA1
+ mov r1, #0
+ strb r1, [r4, r0]
+ mov r1, #2
+ sub r0, r0, #1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_022182A0:
+ sub r1, r2, #1
+ ldrb r1, [r4, r1]
+ lsl r3, r3, #0x19
+ mov r2, #0
+ lsr r3, r3, #0x1d
+ bl MOD09_02217F88
+ ldr r1, _022182E0 ; =0x00001FA2
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ mov r2, #0
+ bl MOD09_02218004
+ ldr r1, _022182E0 ; =0x00001FA2
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ mov r2, #0
+ bl MOD09_022180B4
+ ldr r0, _022182E4 ; =0x00001FA1
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r1, r0, #2
+ ldrb r2, [r4, r1]
+ mov r1, #0x80
+ add r0, r0, #2
+ bic r2, r1
+ strb r2, [r4, r0]
+_022182D8:
+ pop {r4, pc}
+ nop
+_022182DC: .word 0x00001FA3
+_022182E0: .word 0x00001FA2
+_022182E4: .word 0x00001FA1
+
+ thumb_func_start MOD09_022182E8
+MOD09_022182E8: ; 0x022182E8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ cmp r1, #9
+ bls _022182F2
+ b _0221863A
+_022182F2:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022182FE: ; jump table
+ .short _02218312 - _022182FE - 2 ; case 0
+ .short _0221838A - _022182FE - 2 ; case 1
+ .short _022183E6 - _022182FE - 2 ; case 2
+ .short _0221843A - _022182FE - 2 ; case 3
+ .short _022184D8 - _022182FE - 2 ; case 4
+ .short _02218524 - _022182FE - 2 ; case 5
+ .short _0221857C - _022182FE - 2 ; case 6
+ .short _022185DC - _022182FE - 2 ; case 7
+ .short _0221857C - _022182FE - 2 ; case 8
+ .short _0221860C - _022182FE - 2 ; case 9
+_02218312:
+ mov r5, #0
+ mov r6, #3
+ mov r7, #1
+_02218318:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD09_02213620
+ cmp r0, #0
+ bne _02218334
+ lsl r1, r5, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ add r2, r6, #0
+ add r3, r7, #0
+ bl MOD09_02217F88
+ b _0221835A
+_02218334:
+ cmp r0, #1
+ bne _02218348
+ lsl r1, r5, #0x18
+ mov r2, #0
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl MOD09_02217F88
+ b _0221835A
+_02218348:
+ cmp r0, #2
+ bne _0221835A
+ lsl r1, r5, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ mov r2, #0
+ mov r3, #1
+ bl MOD09_02217F88
+_0221835A:
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #6
+ blo _02218318
+ ldr r0, [r4]
+ add r0, #0x35
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _0221837C
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #3
+ mov r3, #0
+ bl MOD09_02217F88
+ pop {r3, r4, r5, r6, r7, pc}
+_0221837C:
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #6
+ add r3, r2, #0
+ bl MOD09_02217F88
+ pop {r3, r4, r5, r6, r7, pc}
+_0221838A:
+ mov r2, #0
+ mov r1, #6
+ add r3, r2, #0
+ bl MOD09_02217F88
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #7
+ add r3, r2, #0
+ bl MOD09_02217F88
+ ldr r0, [r4]
+ ldrb r1, [r0, #0x11]
+ mov r0, #0x50
+ mul r0, r1
+ add r0, r4, r0
+ ldrb r0, [r0, #0x1b]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ beq _022183CC
+ add r0, r4, #0
+ mov r1, #8
+ mov r2, #3
+ mov r3, #0
+ bl MOD09_02217F88
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #3
+ mov r3, #0
+ bl MOD09_02217F88
+ pop {r3, r4, r5, r6, r7, pc}
+_022183CC:
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #8
+ add r3, r2, #0
+ bl MOD09_02217F88
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #0xa
+ add r3, r2, #0
+ bl MOD09_02217F88
+ pop {r3, r4, r5, r6, r7, pc}
+_022183E6:
+ bl MOD09_02218680
+ cmp r0, #1
+ bne _02218408
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #0xc
+ add r3, r2, #0
+ bl MOD09_02217F88
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #0xd
+ add r3, r2, #0
+ bl MOD09_02217F88
+ b _02218420
+_02218408:
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #3
+ mov r3, #0
+ bl MOD09_02217F88
+ add r0, r4, #0
+ mov r1, #0xd
+ mov r2, #3
+ mov r3, #0
+ bl MOD09_02217F88
+_02218420:
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #0xb
+ add r3, r2, #0
+ bl MOD09_02217F88
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #6
+ add r3, r2, #0
+ bl MOD09_02217F88
+ pop {r3, r4, r5, r6, r7, pc}
+_0221843A:
+ bl MOD09_02218680
+ cmp r0, #1
+ bne _0221845C
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #0xc
+ add r3, r2, #0
+ bl MOD09_02217F88
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #0xd
+ add r3, r2, #0
+ bl MOD09_02217F88
+ b _02218474
+_0221845C:
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #3
+ mov r3, #0
+ bl MOD09_02217F88
+ add r0, r4, #0
+ mov r1, #0xd
+ mov r2, #3
+ mov r3, #0
+ bl MOD09_02217F88
+_02218474:
+ mov r5, #0
+ mov r7, #3
+ mov r6, #0x50
+_0221847A:
+ ldr r0, [r4]
+ lsl r1, r5, #3
+ ldrb r0, [r0, #0x11]
+ add r2, r0, #0
+ mul r2, r6
+ add r0, r4, r2
+ add r0, r1, r0
+ ldrh r0, [r0, #0x34]
+ cmp r0, #0
+ beq _022184A2
+ add r1, r5, #0
+ add r1, #0xe
+ lsl r1, r1, #0x18
+ mov r2, #0
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl MOD09_02217F88
+ b _022184B4
+_022184A2:
+ add r1, r5, #0
+ add r1, #0xe
+ lsl r1, r1, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ add r2, r7, #0
+ mov r3, #0
+ bl MOD09_02217F88
+_022184B4:
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #4
+ blo _0221847A
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #9
+ add r3, r2, #0
+ bl MOD09_02217F88
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #6
+ add r3, r2, #0
+ bl MOD09_02217F88
+ pop {r3, r4, r5, r6, r7, pc}
+_022184D8:
+ mov r2, #0
+ mov r1, #6
+ add r3, r2, #0
+ bl MOD09_02217F88
+ mov r5, #0
+ mov r6, #2
+ add r7, r5, #0
+_022184E8:
+ ldr r0, [r4]
+ add r0, #0x34
+ ldrb r0, [r0]
+ cmp r0, r5
+ bne _02218506
+ add r1, r5, #0
+ add r1, #0x1e
+ lsl r1, r1, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ add r2, r6, #0
+ add r3, r7, #0
+ bl MOD09_02217F88
+ b _02218518
+_02218506:
+ add r1, r5, #0
+ add r1, #0x1e
+ lsl r1, r1, #0x18
+ mov r2, #0
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl MOD09_02217F88
+_02218518:
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #4
+ blo _022184E8
+ pop {r3, r4, r5, r6, r7, pc}
+_02218524:
+ mov r5, #0
+ mov r7, #3
+ mov r6, #0x50
+_0221852A:
+ ldr r0, [r4]
+ lsl r1, r5, #3
+ ldrb r0, [r0, #0x11]
+ add r2, r0, #0
+ mul r2, r6
+ add r0, r4, r2
+ add r0, r1, r0
+ ldrh r0, [r0, #0x34]
+ cmp r0, #0
+ beq _02218552
+ add r1, r5, #0
+ add r1, #0x13
+ lsl r1, r1, #0x18
+ mov r2, #0
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl MOD09_02217F88
+ b _02218564
+_02218552:
+ add r1, r5, #0
+ add r1, #0x13
+ lsl r1, r1, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ add r2, r7, #0
+ mov r3, #0
+ bl MOD09_02217F88
+_02218564:
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #4
+ blo _0221852A
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #6
+ add r3, r2, #0
+ bl MOD09_02217F88
+ pop {r3, r4, r5, r6, r7, pc}
+_0221857C:
+ mov r2, #0
+ mov r1, #0x17
+ add r3, r2, #0
+ bl MOD09_02217F88
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #0x18
+ add r3, r2, #0
+ bl MOD09_02217F88
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #0x19
+ add r3, r2, #0
+ bl MOD09_02217F88
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #0x1a
+ add r3, r2, #0
+ bl MOD09_02217F88
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #0x1b
+ add r3, r2, #0
+ bl MOD09_02217F88
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #6
+ add r3, r2, #0
+ bl MOD09_02217F88
+ ldr r0, _0221863C ; =0x00002077
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ cmp r0, #1
+ bne _0221863A
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #0x12
+ add r3, r2, #0
+ bl MOD09_02217F88
+ pop {r3, r4, r5, r6, r7, pc}
+_022185DC:
+ mov r2, #0
+ mov r1, #0x1c
+ add r3, r2, #0
+ bl MOD09_02217F88
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #6
+ add r3, r2, #0
+ bl MOD09_02217F88
+ ldr r0, _0221863C ; =0x00002077
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ cmp r0, #1
+ bne _0221863A
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #0x12
+ add r3, r2, #0
+ bl MOD09_02217F88
+ pop {r3, r4, r5, r6, r7, pc}
+_0221860C:
+ mov r2, #0
+ mov r1, #0x1d
+ add r3, r2, #0
+ bl MOD09_02217F88
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #6
+ add r3, r2, #0
+ bl MOD09_02217F88
+ ldr r0, _0221863C ; =0x00002077
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ cmp r0, #1
+ bne _0221863A
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #0x12
+ add r3, r2, #0
+ bl MOD09_02217F88
+_0221863A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221863C: .word 0x00002077
+
+ thumb_func_start MOD09_02218640
+MOD09_02218640: ; 0x02218640
+ push {r3, lr}
+ add r2, r0, #0
+ cmp r1, #3
+ bne _02218662
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ mov r1, #0x7e
+ lsl r1, r1, #6
+ ldr r0, [r2, r0]
+ add r1, r2, r1
+ mov r2, #1
+ mov r3, #0xc0
+ bl FUN_02003054
+ pop {r3, pc}
+_02218662:
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r1, _0221867C ; =0x00001F60
+ ldr r0, [r2, r0]
+ add r1, r2, r1
+ mov r2, #1
+ mov r3, #0xc0
+ bl FUN_02003054
+ pop {r3, pc}
+ nop
+_0221867C: .word 0x00001F60
+
+ thumb_func_start MOD09_02218680
+MOD09_02218680: ; 0x02218680
+ push {r4, r5}
+ mov r2, #0
+ add r1, r2, #0
+ mov r3, #0x50
+_02218688:
+ add r4, r1, #0
+ mul r4, r3
+ add r5, r0, r4
+ ldrh r4, [r5, #8]
+ cmp r4, #0
+ beq _022186A2
+ ldrb r4, [r5, #0x1b]
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x1f
+ bne _022186A2
+ add r2, r2, #1
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+_022186A2:
+ add r1, r1, #1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ cmp r1, #6
+ blo _02218688
+ cmp r2, #2
+ blo _022186B4
+ mov r0, #1
+ b _022186B6
+_022186B4:
+ mov r0, #0
+_022186B6:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD09_022186C0
+MOD09_022186C0: ; 0x022186C0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ ldrb r1, [r1, #0x11]
+ bl MOD09_02213620
+ cmp r0, #2
+ bne _022186E0
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldrb r1, [r1, #0x11]
+ mov r2, #0
+ mov r3, #1
+ bl MOD09_02217F88
+ pop {r4, pc}
+_022186E0:
+ ldr r1, [r4]
+ mov r2, #0
+ ldrb r1, [r1, #0x11]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD09_02217F88
+ pop {r4, pc}
+
+ thumb_func_start MOD09_022186F0
+MOD09_022186F0: ; 0x022186F0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _02218780 ; =MOD09_0221878C
+ ldr r1, _02218784 ; =0x0000115C
+ ldr r3, [r5, #0xc]
+ mov r2, #0x64
+ bl FUN_020061E8
+ bl FUN_0201B6C8
+ ldr r2, _02218784 ; =0x0000115C
+ add r4, r0, #0
+ mov r1, #0
+ bl Call_FillMemWithValue
+ str r5, [r4]
+ ldr r0, [r5]
+ bl FUN_0222FF68
+ str r0, [r4, #4]
+ ldr r0, [r5]
+ bl FUN_022300CC
+ str r0, [r4, #8]
+ ldr r0, _02218788 ; =0x0000114A
+ mov r1, #0
+ strb r1, [r4, r0]
+ ldr r0, [r5]
+ bl FUN_02230218
+ add r6, r0, #0
+ mov r5, #0
+_02218730:
+ ldr r3, [r4]
+ add r0, r6, #0
+ add r2, r3, #0
+ add r2, #0x27
+ add r3, #0x2c
+ add r1, r5, #0
+ add r2, r2, r5
+ add r3, r3, r5
+ bl FUN_0206F1A0
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #5
+ blo _02218730
+ add r0, r6, #0
+ bl FUN_0206F1AC
+ ldr r1, [r4]
+ strh r0, [r1, #0x20]
+ add r0, r6, #0
+ bl FUN_0206F1B0
+ ldr r1, [r4]
+ strb r0, [r1, #0x1f]
+ add r0, r4, #0
+ bl MOD09_02219C38
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ beq _0221877E
+ ldr r0, [r4]
+ mov r1, #1
+ str r1, [r0, #0x14]
+_0221877E:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02218780: .word MOD09_0221878C
+_02218784: .word 0x0000115C
+_02218788: .word 0x0000114A
+
+ thumb_func_start MOD09_0221878C
+MOD09_0221878C: ; 0x0221878C
+ push {r4, lr}
+ ldr r2, _02218884 ; =0x0000114A
+ add r4, r1, #0
+ ldrb r2, [r4, r2]
+ cmp r2, #0xe
+ bhi _02218872
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_022187A4: ; jump table
+ .short _022187C2 - _022187A4 - 2 ; case 0
+ .short _022187CE - _022187A4 - 2 ; case 1
+ .short _022187DA - _022187A4 - 2 ; case 2
+ .short _022187E6 - _022187A4 - 2 ; case 3
+ .short _022187F2 - _022187A4 - 2 ; case 4
+ .short _022187FE - _022187A4 - 2 ; case 5
+ .short _0221880A - _022187A4 - 2 ; case 6
+ .short _02218816 - _022187A4 - 2 ; case 7
+ .short _02218822 - _022187A4 - 2 ; case 8
+ .short _0221882E - _022187A4 - 2 ; case 9
+ .short _0221883A - _022187A4 - 2 ; case 10
+ .short _02218846 - _022187A4 - 2 ; case 11
+ .short _02218852 - _022187A4 - 2 ; case 12
+ .short _0221885E - _022187A4 - 2 ; case 13
+ .short _0221886A - _022187A4 - 2 ; case 14
+_022187C2:
+ add r0, r4, #0
+ bl MOD09_02218888
+ ldr r1, _02218884 ; =0x0000114A
+ strb r0, [r4, r1]
+ b _02218872
+_022187CE:
+ add r0, r4, #0
+ bl MOD09_0221895C
+ ldr r1, _02218884 ; =0x0000114A
+ strb r0, [r4, r1]
+ b _02218872
+_022187DA:
+ add r0, r4, #0
+ bl MOD09_02218A34
+ ldr r1, _02218884 ; =0x0000114A
+ strb r0, [r4, r1]
+ b _02218872
+_022187E6:
+ add r0, r4, #0
+ bl MOD09_02218BBC
+ ldr r1, _02218884 ; =0x0000114A
+ strb r0, [r4, r1]
+ b _02218872
+_022187F2:
+ add r0, r4, #0
+ bl MOD09_02218E44
+ ldr r1, _02218884 ; =0x0000114A
+ strb r0, [r4, r1]
+ b _02218872
+_022187FE:
+ add r0, r4, #0
+ bl MOD09_02218E50
+ ldr r1, _02218884 ; =0x0000114A
+ strb r0, [r4, r1]
+ b _02218872
+_0221880A:
+ add r0, r4, #0
+ bl MOD09_02218E5C
+ ldr r1, _02218884 ; =0x0000114A
+ strb r0, [r4, r1]
+ b _02218872
+_02218816:
+ add r0, r4, #0
+ bl MOD09_02218B44
+ ldr r1, _02218884 ; =0x0000114A
+ strb r0, [r4, r1]
+ b _02218872
+_02218822:
+ add r0, r4, #0
+ bl MOD09_02218E68
+ ldr r1, _02218884 ; =0x0000114A
+ strb r0, [r4, r1]
+ b _02218872
+_0221882E:
+ add r0, r4, #0
+ bl MOD09_02218E78
+ ldr r1, _02218884 ; =0x0000114A
+ strb r0, [r4, r1]
+ b _02218872
+_0221883A:
+ add r0, r4, #0
+ bl MOD09_02218E90
+ ldr r1, _02218884 ; =0x0000114A
+ strb r0, [r4, r1]
+ b _02218872
+_02218846:
+ add r0, r4, #0
+ bl MOD09_02218EB8
+ ldr r1, _02218884 ; =0x0000114A
+ strb r0, [r4, r1]
+ b _02218872
+_02218852:
+ add r0, r4, #0
+ bl MOD09_02218F90
+ ldr r1, _02218884 ; =0x0000114A
+ strb r0, [r4, r1]
+ b _02218872
+_0221885E:
+ add r0, r4, #0
+ bl MOD09_02218ED0
+ ldr r1, _02218884 ; =0x0000114A
+ strb r0, [r4, r1]
+ b _02218872
+_0221886A:
+ bl MOD09_02218EF8
+ cmp r0, #1
+ beq _02218882
+_02218872:
+ add r0, r4, #0
+ bl MOD09_0221AA14
+ mov r0, #0xc3
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200BC1C
+_02218882:
+ pop {r4, pc}
+ .align 2, 0
+_02218884: .word 0x0000114A
+
+ thumb_func_start MOD09_02218888
+MOD09_02218888: ; 0x02218888
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, _0221894C ; =0x04001050
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, [r4]
+ ldr r0, [r0, #0xc]
+ bl MOD09_0221AC04
+ str r0, [r4, #0x34]
+ add r0, r4, #0
+ bl MOD09_022190CC
+ add r0, r4, #0
+ bl MOD09_022191C0
+ add r0, r4, #0
+ bl MOD09_022192A4
+ ldr r1, [r4]
+ mov r0, #2
+ ldr r1, [r1, #0xc]
+ bl FUN_02002C50
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_02230218
+ bl FUN_0206F1B4
+ ldr r1, _02218950 ; =0x0000114D
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD09_02219CB4
+ ldr r1, _02218954 ; =0x0000114C
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ bl MOD09_0221AAF0
+ add r0, r4, #0
+ bl MOD09_02219474
+ ldr r1, _02218954 ; =0x0000114C
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ bl MOD09_0221953C
+ add r0, r4, #0
+ bl MOD09_02219DC8
+ ldr r1, _02218954 ; =0x0000114C
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ bl MOD09_0221A044
+ ldr r0, [r4]
+ add r0, #0x25
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0221890C
+ ldr r0, [r4, #0x34]
+ mov r1, #1
+ bl MOD09_0221AC2C
+_0221890C:
+ ldr r1, _02218954 ; =0x0000114C
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ bl MOD09_0221A1DC
+ ldr r1, _02218954 ; =0x0000114C
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ bl MOD09_0221A2BC
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r1, #0xa
+ str r0, [sp, #8]
+ add r3, r1, #0
+ ldr r0, [r4, #8]
+ ldr r2, _02218958 ; =0x0000FFFF
+ sub r3, #0x12
+ bl FUN_02003210
+ ldr r0, [r4]
+ ldr r0, [r0, #0x14]
+ cmp r0, #1
+ bne _02218946
+ add sp, #0xc
+ mov r0, #0xc
+ pop {r3, r4, pc}
+_02218946:
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_0221894C: .word 0x04001050
+_02218950: .word 0x0000114D
+_02218954: .word 0x0000114C
+_02218958: .word 0x0000FFFF
+
+ thumb_func_start MOD09_0221895C
+MOD09_0221895C: ; 0x0221895C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0221896E
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0221896E:
+ ldr r1, _02218A28 ; =0x0221BBE8
+ add r0, r4, #0
+ bl MOD09_02219424
+ add r5, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ bne _02218994
+ ldr r0, [r4, #0x34]
+ bl MOD09_0221AD30
+ add r5, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r5, r0
+ bne _0221899A
+ mov r5, #5
+ b _0221899A
+_02218994:
+ add r0, r4, #0
+ bl MOD09_0221A224
+_0221899A:
+ cmp r5, #5
+ bhi _02218A24
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022189AA: ; jump table
+ .short _022189B6 - _022189AA - 2 ; case 0
+ .short _022189B6 - _022189AA - 2 ; case 1
+ .short _022189B6 - _022189AA - 2 ; case 2
+ .short _022189B6 - _022189AA - 2 ; case 3
+ .short _022189D6 - _022189AA - 2 ; case 4
+ .short _02218A06 - _022189AA - 2 ; case 5
+_022189B6:
+ ldr r0, _02218A2C ; =0x000005DD
+ bl FUN_020054C8
+ lsl r0, r5, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, _02218A30 ; =0x0000114D
+ mov r2, #5
+ strb r1, [r4, r0]
+ sub r0, r0, #2
+ strb r2, [r4, r0]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD09_0221A9D8
+ mov r0, #0xb
+ pop {r3, r4, r5, pc}
+_022189D6:
+ ldr r0, [r4]
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _02218A24
+ ldr r0, _02218A2C ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, [r4]
+ ldrb r1, [r0, #0x1f]
+ ldr r0, _02218A30 ; =0x0000114D
+ strb r1, [r4, r0]
+ mov r1, #6
+ sub r0, r0, #2
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD09_02219C68
+ add r0, r4, #0
+ mov r1, #4
+ mov r2, #0
+ bl MOD09_0221A9D8
+ mov r0, #0xb
+ pop {r3, r4, r5, pc}
+_02218A06:
+ ldr r0, _02218A2C ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, [r4]
+ mov r2, #0
+ strh r2, [r0, #0x1c]
+ ldr r0, [r4]
+ mov r1, #4
+ strb r1, [r0, #0x1e]
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD09_0221A9D8
+ mov r0, #0xd
+ pop {r3, r4, r5, pc}
+_02218A24:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02218A28: .word 0x0221BBE8
+_02218A2C: .word 0x000005DD
+_02218A30: .word 0x0000114D
+
+ thumb_func_start MOD09_02218A34
+MOD09_02218A34: ; 0x02218A34
+ push {r3, r4, r5, lr}
+ ldr r1, _02218B34 ; =0x0221BC04
+ add r4, r0, #0
+ bl MOD09_02219424
+ add r5, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ bne _02218A5C
+ ldr r0, [r4, #0x34]
+ bl MOD09_0221AD30
+ add r5, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r5, r0
+ bne _02218A62
+ mov r5, #8
+ b _02218A62
+_02218A5C:
+ add r0, r4, #0
+ bl MOD09_0221A224
+_02218A62:
+ cmp r5, #8
+ bhi _02218B30
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02218A72: ; jump table
+ .short _02218A84 - _02218A72 - 2 ; case 0
+ .short _02218A84 - _02218A72 - 2 ; case 1
+ .short _02218A84 - _02218A72 - 2 ; case 2
+ .short _02218A84 - _02218A72 - 2 ; case 3
+ .short _02218A84 - _02218A72 - 2 ; case 4
+ .short _02218A84 - _02218A72 - 2 ; case 5
+ .short _02218ABA - _02218A72 - 2 ; case 6
+ .short _02218AE8 - _02218A72 - 2 ; case 7
+ .short _02218B16 - _02218A72 - 2 ; case 8
+_02218A84:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD09_02219D94
+ cmp r0, #0
+ beq _02218B30
+ ldr r0, _02218B38 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, _02218B3C ; =0x0000114D
+ ldr r2, [r4]
+ ldrb r1, [r4, r0]
+ sub r0, r0, #2
+ add r1, r2, r1
+ add r1, #0x27
+ strb r5, [r1]
+ mov r1, #6
+ strb r1, [r4, r0]
+ add r1, r5, #6
+ lsl r1, r1, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ mov r2, #0
+ bl MOD09_0221A9D8
+ mov r0, #0xb
+ pop {r3, r4, r5, pc}
+_02218ABA:
+ ldr r0, _02218B3C ; =0x0000114D
+ ldrb r1, [r4, r0]
+ add r0, r0, #7
+ add r1, r4, r1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _02218B30
+ ldr r0, _02218B38 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, _02218B40 ; =0x0000114B
+ mov r1, #7
+ strb r1, [r4, r0]
+ sub r1, #8
+ add r0, r0, #3
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #0
+ bl MOD09_0221A9D8
+ mov r0, #0xb
+ pop {r3, r4, r5, pc}
+_02218AE8:
+ ldr r0, _02218B3C ; =0x0000114D
+ ldrb r1, [r4, r0]
+ add r0, r0, #7
+ add r1, r4, r1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _02218B30
+ ldr r0, _02218B38 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, _02218B40 ; =0x0000114B
+ mov r1, #7
+ strb r1, [r4, r0]
+ mov r1, #1
+ add r0, r0, #3
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0xd
+ mov r2, #0
+ bl MOD09_0221A9D8
+ mov r0, #0xb
+ pop {r3, r4, r5, pc}
+_02218B16:
+ ldr r0, _02218B38 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, _02218B40 ; =0x0000114B
+ mov r1, #4
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD09_0221A9D8
+ mov r0, #0xb
+ pop {r3, r4, r5, pc}
+_02218B30:
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02218B34: .word 0x0221BC04
+_02218B38: .word 0x000005DD
+_02218B3C: .word 0x0000114D
+_02218B40: .word 0x0000114B
+
+ thumb_func_start MOD09_02218B44
+MOD09_02218B44: ; 0x02218B44
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, _02218BB4 ; =0x0000114D
+ ldr r1, [r4]
+ ldrb r2, [r4, r0]
+ mov r3, #0
+ add r5, r1, r2
+ mov r1, #0x2c
+ ldrsb r2, [r5, r1]
+ add r5, #0x27
+ add r1, r0, #1
+ strb r3, [r5]
+ ldrsb r1, [r4, r1]
+ add r1, r2, r1
+ lsl r1, r1, #0x18
+ asr r2, r1, #0x18
+ ldrb r1, [r4, r0]
+ add r0, r0, #7
+ add r5, r4, r1
+ ldrb r5, [r5, r0]
+ cmp r2, r5
+ ble _02218B7A
+ ldr r0, [r4]
+ add r0, r0, r1
+ add r0, #0x2c
+ strb r3, [r0]
+ b _02218B8E
+_02218B7A:
+ cmp r2, #0
+ ldr r0, [r4]
+ bge _02218B88
+ add r0, r0, r1
+ add r0, #0x2c
+ strb r5, [r0]
+ b _02218B8E
+_02218B88:
+ add r0, r0, r1
+ add r0, #0x2c
+ strb r2, [r0]
+_02218B8E:
+ add r0, r4, #0
+ bl MOD09_0221983C
+ add r0, r4, #0
+ bl MOD09_02219884
+ ldr r1, _02218BB8 ; =0x0000114C
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ bl MOD09_0221A044
+ ldr r1, _02218BB8 ; =0x0000114C
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ bl MOD09_0221AAF0
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+ nop
+_02218BB4: .word 0x0000114D
+_02218BB8: .word 0x0000114C
+
+ thumb_func_start MOD09_02218BBC
+MOD09_02218BBC: ; 0x02218BBC
+ push {r3, r4, r5, lr}
+ ldr r1, _02218C48 ; =0x0221BB78
+ add r5, r0, #0
+ bl MOD09_02219424
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02218BE4
+ ldr r0, [r5, #0x34]
+ bl MOD09_0221AD30
+ add r4, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ bne _02218BEA
+ mov r4, #1
+ b _02218BEA
+_02218BE4:
+ add r0, r5, #0
+ bl MOD09_0221A224
+_02218BEA:
+ cmp r4, #0
+ beq _02218BF4
+ cmp r4, #1
+ beq _02218C2A
+ b _02218C44
+_02218BF4:
+ ldr r0, _02218C4C ; =0x000005DD
+ bl FUN_020054C8
+ ldr r1, _02218C50 ; =0x0000114D
+ ldr r2, [r5]
+ ldrb r1, [r5, r1]
+ add r0, r5, #0
+ add r1, r2, r1
+ add r1, #0x27
+ ldrb r1, [r1]
+ bl MOD09_02219D94
+ ldr r1, [r5]
+ mov r2, #0
+ strh r0, [r1, #0x1c]
+ ldr r0, _02218C50 ; =0x0000114D
+ ldrb r1, [r5, r0]
+ ldr r0, [r5]
+ strb r1, [r0, #0x1e]
+ add r0, r5, #0
+ mov r1, #0xf
+ bl MOD09_0221A9D8
+ add r0, r5, #0
+ bl MOD09_02218C58
+ pop {r3, r4, r5, pc}
+_02218C2A:
+ ldr r0, _02218C4C ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, _02218C54 ; =0x0000114B
+ mov r1, #5
+ strb r1, [r5, r0]
+ add r0, r5, #0
+ mov r1, #0x10
+ mov r2, #0
+ bl MOD09_0221A9D8
+ mov r0, #0xb
+ pop {r3, r4, r5, pc}
+_02218C44:
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02218C48: .word 0x0221BB78
+_02218C4C: .word 0x000005DD
+_02218C50: .word 0x0000114D
+_02218C54: .word 0x0000114B
+
+ thumb_func_start MOD09_02218C58
+MOD09_02218C58: ; 0x02218C58
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r1, _02218E38 ; =0x0000114D
+ add r5, r0, #0
+ ldrb r1, [r5, r1]
+ ldr r4, [r5]
+ cmp r1, #3
+ beq _02218C68
+ b _02218D82
+_02218C68:
+ bl MOD09_02219430
+ add r7, r0, #0
+ ldrh r0, [r4, #0x1c]
+ ldr r2, [r4, #0xc]
+ mov r1, #7
+ bl FUN_0206E7B8
+ add r6, r0, #0
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _02218CDA
+ ldrh r0, [r4, #0x1c]
+ cmp r0, #0x37
+ beq _02218CDA
+ cmp r6, #3
+ beq _02218CDA
+ ldr r0, [r4]
+ ldr r1, [r4, #0x10]
+ add r2, r7, #0
+ bl FUN_02230014
+ add r6, r0, #0
+ ldr r0, [r5, #0x10]
+ mov r1, #0x2e
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r6, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldr r0, [r5, #0x14]
+ ldr r2, _02218E3C ; =0x00000175
+ mov r1, #1
+ bl FUN_0200AD5C
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x18]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl MOD09_02219BE0
+ ldr r0, _02218E40 ; =0x0000114B
+ mov r1, #8
+ strb r1, [r5, r0]
+ mov r0, #9
+ pop {r3, r4, r5, r6, r7, pc}
+_02218CDA:
+ ldrh r0, [r4, #0x1c]
+ add r2, r7, #0
+ mov r3, #0
+ str r0, [sp]
+ ldr r0, [r4]
+ ldr r1, [r4, #0x10]
+ bl FUN_02230370
+ cmp r0, #1
+ bne _02218D00
+ ldr r2, _02218E38 ; =0x0000114D
+ ldrh r1, [r4, #0x1c]
+ ldrb r2, [r5, r2]
+ ldr r0, [r4]
+ ldr r3, [r4, #0xc]
+ bl MOD09_0221944C
+ mov r0, #0xd
+ pop {r3, r4, r5, r6, r7, pc}
+_02218D00:
+ cmp r6, #3
+ bne _02218D68
+ ldr r0, [r4]
+ bl FUN_0222FF74
+ mov r1, #1
+ tst r0, r1
+ bne _02218D22
+ ldr r2, _02218E38 ; =0x0000114D
+ ldrh r1, [r4, #0x1c]
+ ldrb r2, [r5, r2]
+ ldr r0, [r4]
+ ldr r3, [r4, #0xc]
+ bl MOD09_0221944C
+ mov r0, #0xd
+ pop {r3, r4, r5, r6, r7, pc}
+_02218D22:
+ ldr r3, [r4, #0xc]
+ add r0, r1, #0
+ mov r1, #0x1a
+ mov r2, #0xc7
+ bl FUN_0200A86C
+ mov r1, #0x24
+ add r7, r0, #0
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r0, [r5, #0x14]
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl FUN_0200ABC0
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x18]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_0200A8B8
+ add r0, r5, #0
+ bl MOD09_02219BE0
+ ldr r0, _02218E40 ; =0x0000114B
+ mov r1, #8
+ strb r1, [r5, r0]
+ mov r0, #9
+ pop {r3, r4, r5, r6, r7, pc}
+_02218D68:
+ ldr r0, [r5, #0x10]
+ ldr r2, [r5, #0x18]
+ mov r1, #0x22
+ bl FUN_0200A8E0
+ add r0, r5, #0
+ bl MOD09_02219BE0
+ ldr r0, _02218E40 ; =0x0000114B
+ mov r1, #8
+ strb r1, [r5, r0]
+ mov r0, #9
+ pop {r3, r4, r5, r6, r7, pc}
+_02218D82:
+ cmp r1, #2
+ bne _02218E32
+ add r0, r4, #0
+ add r0, #0x22
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02218DAA
+ ldr r0, [r5, #0x10]
+ ldr r2, [r5, #0x18]
+ mov r1, #0x2c
+ bl FUN_0200A8E0
+ add r0, r5, #0
+ bl MOD09_02219BE0
+ ldr r0, _02218E40 ; =0x0000114B
+ mov r1, #8
+ strb r1, [r5, r0]
+ mov r0, #9
+ pop {r3, r4, r5, r6, r7, pc}
+_02218DAA:
+ add r0, r4, #0
+ add r0, #0x23
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02218DCE
+ ldr r0, [r5, #0x10]
+ ldr r2, [r5, #0x18]
+ mov r1, #0x2f
+ bl FUN_0200A8E0
+ add r0, r5, #0
+ bl MOD09_02219BE0
+ ldr r0, _02218E40 ; =0x0000114B
+ mov r1, #8
+ strb r1, [r5, r0]
+ mov r0, #9
+ pop {r3, r4, r5, r6, r7, pc}
+_02218DCE:
+ add r0, r4, #0
+ add r0, #0x24
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02218DF2
+ ldr r0, [r5, #0x10]
+ ldr r2, [r5, #0x18]
+ mov r1, #0x30
+ bl FUN_0200A8E0
+ add r0, r5, #0
+ bl MOD09_02219BE0
+ ldr r0, _02218E40 ; =0x0000114B
+ mov r1, #8
+ strb r1, [r5, r0]
+ mov r0, #9
+ pop {r3, r4, r5, r6, r7, pc}
+_02218DF2:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x10]
+ bl FUN_0222FF88
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl FUN_02230290
+ add r4, r0, #0
+ add r0, r6, #0
+ bl FUN_0206B9AC
+ cmp r0, #6
+ bne _02218E32
+ add r0, r4, #0
+ bl FUN_0206B334
+ cmp r0, #0x12
+ bne _02218E32
+ ldr r0, [r5, #0x10]
+ ldr r2, [r5, #0x18]
+ mov r1, #0x2d
+ bl FUN_0200A8E0
+ add r0, r5, #0
+ bl MOD09_02219BE0
+ ldr r0, _02218E40 ; =0x0000114B
+ mov r1, #8
+ strb r1, [r5, r0]
+ mov r0, #9
+ pop {r3, r4, r5, r6, r7, pc}
+_02218E32:
+ mov r0, #0xd
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02218E38: .word 0x0000114D
+_02218E3C: .word 0x00000175
+_02218E40: .word 0x0000114B
+
+ thumb_func_start MOD09_02218E44
+MOD09_02218E44: ; 0x02218E44
+ push {r3, lr}
+ mov r1, #0
+ bl MOD09_022193BC
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD09_02218E50
+MOD09_02218E50: ; 0x02218E50
+ push {r3, lr}
+ mov r1, #1
+ bl MOD09_022193BC
+ mov r0, #2
+ pop {r3, pc}
+
+ thumb_func_start MOD09_02218E5C
+MOD09_02218E5C: ; 0x02218E5C
+ push {r3, lr}
+ mov r1, #2
+ bl MOD09_022193BC
+ mov r0, #3
+ pop {r3, pc}
+
+ thumb_func_start MOD09_02218E68
+MOD09_02218E68: ; 0x02218E68
+ push {r3, lr}
+ add r0, #0x1c
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #3
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02218E78
+MOD09_02218E78: ; 0x02218E78
+ push {r3, lr}
+ add r0, #0x32
+ ldrb r0, [r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02218E8A
+ mov r0, #0xa
+ pop {r3, pc}
+_02218E8A:
+ mov r0, #9
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02218E90
+MOD09_02218E90: ; 0x02218E90
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02218EB0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _02218EA6
+ bl FUN_02020AA4
+ cmp r0, #1
+ bne _02218EAC
+_02218EA6:
+ ldr r0, _02218EB4 ; =0x0000114B
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+_02218EAC:
+ mov r0, #0xa
+ pop {r4, pc}
+ .align 2, 0
+_02218EB0: .word 0x021C48B8
+_02218EB4: .word 0x0000114B
+
+ thumb_func_start MOD09_02218EB8
+MOD09_02218EB8: ; 0x02218EB8
+ ldr r1, _02218ECC ; =0x0000113E
+ ldrb r2, [r0, r1]
+ cmp r2, #2
+ bne _02218EC6
+ add r1, #0xd
+ ldrb r0, [r0, r1]
+ bx lr
+_02218EC6:
+ mov r0, #0xb
+ bx lr
+ nop
+_02218ECC: .word 0x0000113E
+
+ thumb_func_start MOD09_02218ED0
+MOD09_02218ED0: ; 0x02218ED0
+ push {lr}
+ sub sp, #0xc
+ mov r2, #0
+ str r2, [sp]
+ mov r1, #0x10
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ mov r1, #0xa
+ add r3, r1, #0
+ ldr r0, [r0, #8]
+ ldr r2, _02218EF4 ; =0x0000FFFF
+ sub r3, #0x12
+ bl FUN_02003210
+ mov r0, #0xe
+ add sp, #0xc
+ pop {pc}
+ nop
+_02218EF4: .word 0x0000FFFF
+
+ thumb_func_start MOD09_02218EF8
+MOD09_02218EF8: ; 0x02218EF8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ ldr r0, [r5, #8]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _02218F0C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02218F0C:
+ add r0, r5, #0
+ bl MOD09_02219FE4
+ add r0, r5, #0
+ bl MOD09_02219520
+ add r0, r5, #0
+ bl MOD09_022192E4
+ ldr r0, [r5, #4]
+ bl MOD09_02219198
+ ldr r0, [r5, #0x34]
+ bl MOD09_0221AC28
+ ldr r1, [r5]
+ add r1, #0x25
+ strb r0, [r1]
+ ldr r0, [r5, #0x34]
+ bl MOD09_0221AC1C
+ mov r0, #2
+ bl FUN_02002CF8
+ ldr r1, [r5]
+ ldrh r0, [r1, #0x1c]
+ cmp r0, #0
+ beq _02218F78
+ ldr r0, [r1]
+ bl FUN_02230218
+ add r6, r0, #0
+ mov r4, #0
+_02218F4E:
+ ldr r3, [r5]
+ add r0, r6, #0
+ add r2, r3, r4
+ add r3, r3, r4
+ add r2, #0x27
+ add r3, #0x2c
+ ldrb r2, [r2]
+ ldrb r3, [r3]
+ add r1, r4, #0
+ bl FUN_0206F1B8
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #5
+ blo _02218F4E
+ ldr r1, _02218F8C ; =0x0000114D
+ add r0, r6, #0
+ ldrb r1, [r5, r1]
+ bl FUN_0206F1EC
+_02218F78:
+ ldr r0, [r5]
+ mov r1, #1
+ add r0, #0x26
+ strb r1, [r0]
+ add r0, r7, #0
+ bl FUN_0200621C
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02218F8C: .word 0x0000114D
+
+ thumb_func_start MOD09_02218F90
+MOD09_02218F90: ; 0x02218F90
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _02218FA2
+ mov r0, #0xc
+ pop {r4, pc}
+_02218FA2:
+ ldr r0, _022190BC ; =0x00001159
+ ldrb r0, [r4, r0]
+ cmp r0, #4
+ bls _02218FAC
+ b _022190B6
+_02218FAC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02218FB8: ; jump table
+ .short _02218FC2 - _02218FB8 - 2 ; case 0
+ .short _02219004 - _02218FB8 - 2 ; case 1
+ .short _02219014 - _02218FB8 - 2 ; case 2
+ .short _0221905E - _02218FB8 - 2 ; case 3
+ .short _0221906E - _02218FB8 - 2 ; case 4
+_02218FC2:
+ ldr r0, [r4, #0x38]
+ bl FUN_0225D824
+ cmp r0, #1
+ bne _02218FFA
+ ldr r0, _022190C0 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, _022190C4 ; =0x0000114D
+ mov r1, #2
+ strb r1, [r4, r0]
+ mov r2, #0xc
+ sub r0, r0, #2
+ strb r2, [r4, r0]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD09_0221A9D8
+ ldr r0, _022190C8 ; =0x0000115A
+ mov r1, #0
+ strb r1, [r4, r0]
+ sub r1, r0, #1
+ ldrb r1, [r4, r1]
+ sub r0, r0, #1
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #0xb
+ pop {r4, pc}
+_02218FFA:
+ ldr r0, _022190C8 ; =0x0000115A
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _022190B6
+_02219004:
+ add r0, r4, #0
+ bl MOD09_02218E50
+ ldr r0, _022190BC ; =0x00001159
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _022190B6
+_02219014:
+ ldr r0, [r4, #0x38]
+ bl FUN_0225D824
+ cmp r0, #1
+ bne _02219054
+ ldr r0, _022190C0 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, _022190C4 ; =0x0000114D
+ ldr r3, [r4]
+ ldrb r1, [r4, r0]
+ mov r2, #0
+ sub r0, r0, #2
+ add r1, r3, r1
+ add r1, #0x27
+ strb r2, [r1]
+ mov r1, #0xc
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD09_0221A9D8
+ ldr r0, _022190C8 ; =0x0000115A
+ mov r1, #0
+ strb r1, [r4, r0]
+ sub r1, r0, #1
+ ldrb r1, [r4, r1]
+ sub r0, r0, #1
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #0xb
+ pop {r4, pc}
+_02219054:
+ ldr r0, _022190C8 ; =0x0000115A
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _022190B6
+_0221905E:
+ add r0, r4, #0
+ bl MOD09_02218E5C
+ ldr r0, _022190BC ; =0x00001159
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _022190B6
+_0221906E:
+ ldr r0, [r4, #0x38]
+ bl FUN_0225D824
+ cmp r0, #1
+ bne _022190AE
+ ldr r0, _022190C0 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r1, _022190C4 ; =0x0000114D
+ ldr r2, [r4]
+ ldrb r1, [r4, r1]
+ add r0, r4, #0
+ add r1, r2, r1
+ add r1, #0x27
+ ldrb r1, [r1]
+ bl MOD09_02219D94
+ ldr r1, [r4]
+ mov r2, #0
+ strh r0, [r1, #0x1c]
+ ldr r0, _022190C4 ; =0x0000114D
+ ldrb r1, [r4, r0]
+ ldr r0, [r4]
+ strb r1, [r0, #0x1e]
+ add r0, r4, #0
+ mov r1, #0xf
+ bl MOD09_0221A9D8
+ add r0, r4, #0
+ bl MOD09_02218C58
+ pop {r4, pc}
+_022190AE:
+ ldr r0, _022190C8 ; =0x0000115A
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+_022190B6:
+ mov r0, #0xc
+ pop {r4, pc}
+ nop
+_022190BC: .word 0x00001159
+_022190C0: .word 0x000005DD
+_022190C4: .word 0x0000114D
+_022190C8: .word 0x0000115A
+
+ thumb_func_start MOD09_022190CC
+MOD09_022190CC: ; 0x022190CC
+ push {r4, r5, lr}
+ sub sp, #0x64
+ ldr r5, _02219188 ; =0x0221BB84
+ add r3, sp, #0x54
+ add r4, r0, #0
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ mov r1, #1
+ bl FUN_02016BF4
+ ldr r5, _0221918C ; =0x0221BBCC
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #6
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _02219190 ; =0x0221BBB0
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #5
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #4]
+ mov r1, #5
+ bl FUN_02018744
+ ldr r5, _02219194 ; =0x0221BB94
+ 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]
+ ldr r0, [r4, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #4]
+ mov r1, #4
+ bl FUN_02018744
+ ldr r3, [r4]
+ mov r0, #5
+ ldr r3, [r3, #0xc]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r3, [r4]
+ mov r0, #4
+ ldr r3, [r3, #0xc]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r0, [r4, #4]
+ mov r1, #5
+ bl FUN_0201AC68
+ ldr r0, [r4, #4]
+ mov r1, #4
+ bl FUN_0201AC68
+ add sp, #0x64
+ pop {r4, r5, pc}
+ .align 2, 0
+_02219188: .word 0x0221BB84
+_0221918C: .word 0x0221BBCC
+_02219190: .word 0x0221BBB0
+_02219194: .word 0x0221BB94
+
+ thumb_func_start MOD09_02219198
+MOD09_02219198: ; 0x02219198
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x17
+ mov r1, #0
+ bl FUN_0201E74C
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #6
+ bl FUN_020178A0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_022191C0
+MOD09_022191C0: ; 0x022191C0
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ mov r1, #2
+ ldr r0, [r0, #0xc]
+ mov r3, #6
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x4d
+ bl FUN_0200687C
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ ldr r0, [r5]
+ mov r3, #6
+ ldr r0, [r0, #0xc]
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x4d
+ bl FUN_020068C8
+ ldr r2, [r5]
+ mov r0, #0x4d
+ ldr r2, [r2, #0xc]
+ mov r1, #1
+ bl LoadFromNarc_2
+ add r1, sp, #0x10
+ add r4, r0, #0
+ bl FUN_020B0180
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ add r1, #0xc
+ bl MOD09_0221A2F4
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #6
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r3, [r5]
+ ldr r0, [r5, #8]
+ ldr r3, [r3, #0xc]
+ mov r1, #0x4d
+ mov r2, #3
+ bl FUN_020030E8
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xf0
+ str r0, [sp, #8]
+ ldr r3, [r5]
+ ldr r0, [r5, #8]
+ ldr r3, [r3, #0xc]
+ mov r1, #0xe
+ mov r2, #7
+ bl FUN_020030E8
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_02230E44
+ add r4, r0, #0
+ bl FUN_0200CD60
+ add r1, r0, #0
+ ldr r0, _022192A0 ; =0x000003E2
+ mov r3, #4
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ ldr r0, [r0, #0xc]
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x26
+ bl FUN_0200687C
+ add r0, r4, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xe0
+ str r0, [sp, #8]
+ ldr r3, [r5]
+ ldr r0, [r5, #8]
+ ldr r3, [r3, #0xc]
+ mov r1, #0x26
+ bl FUN_020030E8
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_022192A0: .word 0x000003E2
+
+ thumb_func_start MOD09_022192A4
+MOD09_022192A4: ; 0x022192A4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r3, [r4]
+ mov r0, #0
+ ldr r3, [r3, #0xc]
+ mov r1, #0x1a
+ mov r2, #2
+ bl FUN_0200A86C
+ str r0, [r4, #0x10]
+ ldr r3, [r4]
+ mov r0, #0xf
+ ldr r3, [r3, #0xc]
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_0200B870
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ ldr r0, [r0, #0xc]
+ bl FUN_0200AA80
+ str r0, [r4, #0x14]
+ ldr r1, [r4]
+ mov r0, #2
+ ldr r1, [r1, #0xc]
+ lsl r0, r0, #8
+ bl FUN_020219F4
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_022192E4
+MOD09_022192E4: ; 0x022192E4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0xc]
+ bl FUN_0200B990
+ ldr r0, [r4, #0x14]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x18]
+ bl FUN_02021A20
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02219304
+MOD09_02219304: ; 0x02219304
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r1, #0
+ beq _02219316
+ cmp r1, #1
+ beq _02219330
+ cmp r1, #2
+ beq _0221934C
+ pop {r4, pc}
+_02219316:
+ mov r2, #0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ add r3, r2, #0
+ bl FUN_0201AEE4
+ ldr r0, [r4, #4]
+ mov r1, #6
+ mov r2, #3
+ mov r3, #0
+ bl FUN_0201AEE4
+ pop {r4, pc}
+_02219330:
+ mov r1, #6
+ add r3, r1, #0
+ ldr r0, [r4, #4]
+ mov r2, #0
+ add r3, #0xfa
+ bl FUN_0201AEE4
+ ldr r0, [r4, #4]
+ mov r1, #6
+ mov r2, #3
+ mov r3, #0
+ bl FUN_0201AEE4
+ pop {r4, pc}
+_0221934C:
+ mov r2, #0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ add r3, r2, #0
+ bl FUN_0201AEE4
+ mov r2, #3
+ add r3, r2, #0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ add r3, #0xfd
+ bl FUN_0201AEE4
+ pop {r4, pc}
+
+ thumb_func_start MOD09_02219368
+MOD09_02219368: ; 0x02219368
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ cmp r1, #2
+ bne _022193B2
+ mov r0, #0x1c
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r0, _022193B8 ; =0x0000114D
+ mov r1, #6
+ ldrb r0, [r4, r0]
+ mov r2, #2
+ mov r3, #0x23
+ add r0, #8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_020186B4
+ mov r0, #0x1c
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ ldr r0, _022193B8 ; =0x0000114D
+ mov r1, #6
+ ldrb r0, [r4, r0]
+ mov r2, #2
+ mov r3, #0x28
+ add r0, #8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_020186B4
+_022193B2:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_022193B8: .word 0x0000114D
+
+ thumb_func_start MOD09_022193BC
+MOD09_022193BC: ; 0x022193BC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD09_02219368
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02219304
+ ldr r0, [r5, #4]
+ mov r1, #4
+ mov r2, #0
+ bl FUN_0201878C
+ ldr r0, [r5, #4]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_0201878C
+ add r0, r5, #0
+ bl MOD09_02219510
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02219498
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_0221953C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_0221AAF0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_0221A1DC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_0221A2BC
+ ldr r1, _02219420 ; =0x0000114C
+ add r0, r5, #0
+ strb r4, [r5, r1]
+ ldrb r1, [r5, r1]
+ bl MOD09_0221A044
+ pop {r3, r4, r5, pc}
+ nop
+_02219420: .word 0x0000114C
+
+ thumb_func_start MOD09_02219424
+MOD09_02219424: ; 0x02219424
+ ldr r3, _0221942C ; =0x02020989
+ add r0, r1, #0
+ bx r3
+ nop
+_0221942C: .word 0x02020989
+
+ thumb_func_start MOD09_02219430
+MOD09_02219430: ; 0x02219430
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r4, [r5]
+ ldr r0, [r4]
+ bl FUN_0222FF78
+ add r1, r0, #0
+ ldr r0, [r5]
+ ldr r3, [r4, #0x10]
+ ldr r0, [r0]
+ mov r2, #2
+ bl FUN_0224C474
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD09_0221944C
+MOD09_0221944C: ; 0x0221944C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r3, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ bl FUN_02230214
+ add r1, r4, #0
+ mov r2, #1
+ add r3, r7, #0
+ bl FUN_0206EDD4
+ add r0, r5, #0
+ bl FUN_02230218
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0206F1E4
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD09_02219474
+MOD09_02219474: ; 0x02219474
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ ldr r2, _02219490 ; =0x0221BC2C
+ add r1, #0x1c
+ bl FUN_02019150
+ ldr r1, _02219494 ; =0x0000114C
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ bl MOD09_02219498
+ pop {r4, pc}
+ .align 2, 0
+_02219490: .word 0x0221BC2C
+_02219494: .word 0x0000114C
+
+ thumb_func_start MOD09_02219498
+MOD09_02219498: ; 0x02219498
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ cmp r1, #0
+ beq _022194AA
+ cmp r1, #1
+ beq _022194B4
+ cmp r1, #2
+ beq _022194BE
+ b _022194C6
+_022194AA:
+ mov r1, #5
+ add r0, #0x30
+ ldr r6, _02219504 ; =0x0221BC54
+ strb r1, [r0]
+ b _022194C6
+_022194B4:
+ mov r1, #0x1a
+ add r0, #0x30
+ ldr r6, _02219508 ; =0x0221BCAC
+ strb r1, [r0]
+ b _022194C6
+_022194BE:
+ ldr r6, _0221950C ; =0x0221BC34
+ mov r1, #4
+ add r0, #0x30
+ strb r1, [r0]
+_022194C6:
+ add r1, r5, #0
+ ldr r0, [r5]
+ add r1, #0x30
+ ldrb r1, [r1]
+ ldr r0, [r0, #0xc]
+ bl FUN_02018FF4
+ str r0, [r5, #0x2c]
+ add r0, r5, #0
+ add r0, #0x30
+ ldrb r0, [r0]
+ mov r4, #0
+ cmp r0, #0
+ bls _02219502
+_022194E2:
+ ldr r2, [r5, #0x2c]
+ lsl r1, r4, #4
+ add r1, r2, r1
+ lsl r2, r4, #3
+ ldr r0, [r5, #4]
+ add r2, r6, r2
+ bl FUN_02019150
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ add r0, r5, #0
+ add r0, #0x30
+ ldrb r0, [r0]
+ cmp r4, r0
+ blo _022194E2
+_02219502:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02219504: .word 0x0221BC54
+_02219508: .word 0x0221BCAC
+_0221950C: .word 0x0221BC34
+
+ thumb_func_start MOD09_02219510
+MOD09_02219510: ; 0x02219510
+ add r1, r0, #0
+ ldr r0, [r1, #0x2c]
+ add r1, #0x30
+ ldr r3, _0221951C ; =0x020191A5
+ ldrb r1, [r1]
+ bx r3
+ .align 2, 0
+_0221951C: .word 0x020191A5
+
+ thumb_func_start MOD09_02219520
+MOD09_02219520: ; 0x02219520
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r1, #0x30
+ ldrb r1, [r1]
+ ldr r0, [r4, #0x2c]
+ bl FUN_020191A4
+ add r4, #0x1c
+ add r0, r4, #0
+ bl FUN_02019178
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_0221953C
+MOD09_0221953C: ; 0x0221953C
+ push {r3, lr}
+ cmp r1, #0
+ beq _0221954C
+ cmp r1, #1
+ beq _02219552
+ cmp r1, #2
+ beq _02219558
+ pop {r3, pc}
+_0221954C:
+ bl MOD09_022195B8
+ pop {r3, pc}
+_02219552:
+ bl MOD09_02219A74
+ pop {r3, pc}
+_02219558:
+ bl MOD09_02219B60
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02219560
+MOD09_02219560: ; 0x02219560
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ ldr r5, [r0, #0x2c]
+ lsl r4, r1, #4
+ ldr r0, [r0, #0x10]
+ add r1, r2, #0
+ add r6, r3, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x10]
+ add r0, r6, #0
+ mov r2, #0
+ bl FUN_02002E14
+ add r7, r0, #0
+ add r0, r5, r4
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r0, r0, r7
+ lsr r3, r0, #1
+ ldr r0, [sp, #0x28]
+ ldr r2, [sp, #0x10]
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x2c]
+ add r1, r6, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r5, r4
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r5, r4
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_022195B8
+MOD09_022195B8: ; 0x022195B8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r6, #0
+ add r5, r0, #0
+ add r4, r6, #0
+ add r7, r6, #0
+_022195C4:
+ ldr r0, [r5, #0x2c]
+ add r1, r7, #0
+ add r0, r0, r4
+ bl FUN_02019620
+ add r6, r6, #1
+ add r4, #0x10
+ cmp r6, #5
+ blo _022195C4
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _02219690 ; =0x00030201
+ mov r1, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r2, r1, #0
+ mov r3, #2
+ bl MOD09_02219560
+ mov r0, #0x18
+ str r0, [sp]
+ ldr r0, _02219690 ; =0x00030201
+ mov r1, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #1
+ mov r3, #2
+ bl MOD09_02219560
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _02219690 ; =0x00030201
+ mov r2, #2
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #1
+ add r3, r2, #0
+ bl MOD09_02219560
+ mov r0, #0x18
+ str r0, [sp]
+ ldr r0, _02219690 ; =0x00030201
+ mov r1, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #3
+ mov r3, #2
+ bl MOD09_02219560
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _02219690 ; =0x00030201
+ mov r1, #2
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #7
+ add r3, r1, #0
+ bl MOD09_02219560
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _02219690 ; =0x00030201
+ mov r1, #3
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #6
+ mov r3, #2
+ bl MOD09_02219560
+ ldr r0, [r5]
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _0221968A
+ ldr r0, [r5, #0x10]
+ mov r1, #8
+ bl FUN_0200A914
+ add r4, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02219690 ; =0x00030201
+ mov r3, #0
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r0, [r5, #0x2c]
+ mov r1, #2
+ add r0, #0x40
+ add r2, r4, #0
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ ldr r0, [r5, #0x2c]
+ add r0, #0x40
+ bl FUN_02019220
+_0221968A:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02219690: .word 0x00030201
+
+ thumb_func_start MOD09_02219694
+MOD09_02219694: ; 0x02219694
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r4, [r5, #0x2c]
+ lsl r6, r3, #4
+ add r7, r1, #0
+ add r0, r4, r6
+ mov r1, #0
+ str r2, [sp, #0x10]
+ bl FUN_02019620
+ ldr r0, _02219730 ; =0x0000114D
+ lsl r7, r7, #2
+ ldrb r1, [r5, r0]
+ mov r0, #0x90
+ mul r0, r1
+ add r0, r5, r0
+ add r0, r0, r7
+ ldrh r0, [r0, #0x3c]
+ cmp r0, #0
+ beq _02219726
+ ldr r1, [sp, #0x10]
+ ldr r0, [r5, #0x10]
+ lsl r2, r1, #3
+ ldr r1, _02219734 ; =0x0221BC7C
+ ldr r1, [r1, r2]
+ bl FUN_0200A914
+ ldr r2, _02219730 ; =0x0000114D
+ str r0, [sp, #0x14]
+ ldrb r3, [r5, r2]
+ mov r2, #0x90
+ ldr r0, [r5, #0x14]
+ mul r2, r3
+ add r2, r5, r2
+ add r2, r2, r7
+ ldrh r2, [r2, #0x3c]
+ mov r1, #0
+ bl FUN_0200AE38
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x18]
+ ldr r2, [sp, #0x14]
+ bl FUN_0200B7B8
+ ldr r0, [sp, #0x30]
+ ldr r1, [r5, #0x18]
+ mov r2, #0
+ bl FUN_02002E14
+ add r7, r0, #0
+ add r0, r4, r6
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r0, r0, r7
+ lsr r3, r0, #1
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x34]
+ ldr r1, [sp, #0x30]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x18]
+ add r0, r4, r6
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+_02219726:
+ add r0, r4, r6
+ bl FUN_02019220
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02219730: .word 0x0000114D
+_02219734: .word 0x0221BC7C
+
+ thumb_func_start MOD09_02219738
+MOD09_02219738: ; 0x02219738
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r4, [r5, #0x2c]
+ lsl r7, r3, #4
+ add r6, r1, #0
+ add r0, r4, r7
+ mov r1, #0
+ str r2, [sp, #0x10]
+ bl FUN_02019620
+ ldr r0, _022197C4 ; =0x0000114D
+ lsl r6, r6, #2
+ ldrb r1, [r5, r0]
+ mov r0, #0x90
+ mul r0, r1
+ add r0, r5, r0
+ add r0, r0, r6
+ ldrh r0, [r0, #0x3e]
+ cmp r0, #0
+ beq _022197BA
+ ldr r1, [sp, #0x10]
+ ldr r0, [r5, #0x10]
+ lsl r2, r1, #3
+ ldr r1, _022197C8 ; =0x0221BC80
+ ldr r1, [r1, r2]
+ bl FUN_0200A914
+ mov r1, #0
+ str r0, [sp, #0x14]
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, _022197C4 ; =0x0000114D
+ ldr r0, [r5, #0x14]
+ ldrb r3, [r5, r2]
+ mov r2, #0x90
+ mul r2, r3
+ add r2, r5, r2
+ add r2, r2, r6
+ ldrh r2, [r2, #0x3e]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x18]
+ ldr r2, [sp, #0x14]
+ bl FUN_0200B7B8
+ ldr r0, [sp, #0x34]
+ mov r3, #0
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x30]
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r2, [r5, #0x18]
+ add r0, r4, r7
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+_022197BA:
+ add r0, r4, r7
+ bl FUN_02019220
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022197C4: .word 0x0000114D
+_022197C8: .word 0x0221BC80
+
+ thumb_func_start MOD09_022197CC
+MOD09_022197CC: ; 0x022197CC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0
+ ldr r0, _02219830 ; =0x0000114D
+ add r5, r1, #0
+ ldrb r0, [r6, r0]
+ ldr r1, [r6]
+ add r0, r1, r0
+ add r0, #0x2c
+ ldrb r1, [r0]
+ mov r0, #6
+ mul r0, r1
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ add r0, #0x31
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022197F4
+ mov r4, #0
+ b _022197F6
+_022197F4:
+ mov r4, #0xc
+_022197F6:
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, _02219834 ; =0x00030201
+ ldr r1, [sp, #0xc]
+ lsl r7, r5, #1
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r1, r5, r1
+ add r2, r5, #0
+ add r3, r4, r7
+ bl MOD09_02219694
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r0, _02219838 ; =0x00010200
+ ldr r1, [sp, #0xc]
+ add r3, r4, #1
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r5, r1
+ add r2, r5, #0
+ add r3, r3, r7
+ bl MOD09_02219738
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02219830: .word 0x0000114D
+_02219834: .word 0x00030201
+_02219838: .word 0x00010200
+
+ thumb_func_start MOD09_0221983C
+MOD09_0221983C: ; 0x0221983C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ mov r2, #0
+ add r4, r0, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x13
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r5, #0
+_0221985E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD09_022197CC
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #6
+ blo _0221985E
+ add r0, r4, #0
+ add r0, #0x31
+ ldrb r1, [r0]
+ mov r0, #1
+ add r4, #0x31
+ eor r0, r1
+ strb r0, [r4]
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02219884
+MOD09_02219884: ; 0x02219884
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #0x19
+ ldr r1, [r5, #0x2c]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r5, #0x10]
+ mov r1, #0x1c
+ ldr r4, [r5, #0x2c]
+ bl FUN_0200A914
+ str r0, [sp, #0x10]
+ mov r0, #0
+ ldr r1, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r7, r0, #0
+ mov r0, #0x19
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r0, r0, r7
+ lsr r6, r0, #1
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022199AC ; =0x00010200
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #8]
+ mov r0, #0x19
+ lsl r0, r0, #4
+ mov r1, #0
+ add r0, r4, r0
+ add r3, r6, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ ldr r0, [r5, #0x10]
+ mov r1, #0x1d
+ bl FUN_0200A914
+ mov r1, #0
+ str r0, [sp, #0x14]
+ ldr r3, _022199B0 ; =0x0000114D
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, _022199B0 ; =0x0000114D
+ add r3, r3, #7
+ ldrb r2, [r5, r2]
+ ldr r0, [r5, #0x14]
+ add r2, r5, r2
+ ldrb r2, [r2, r3]
+ mov r3, #2
+ add r2, r2, #1
+ bl FUN_0200AD38
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x18]
+ ldr r2, [sp, #0x14]
+ bl FUN_0200B7B8
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022199AC ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r2, [r5, #0x18]
+ add r0, r4, r0
+ add r3, r6, r7
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ ldr r0, [r5, #0x10]
+ mov r1, #0x1e
+ bl FUN_0200A914
+ mov r1, #0
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r3, _022199B0 ; =0x0000114D
+ ldr r2, [r5]
+ ldrb r3, [r5, r3]
+ ldr r0, [r5, #0x14]
+ add r2, r2, r3
+ add r2, #0x2c
+ ldrb r2, [r2]
+ mov r3, #2
+ add r2, r2, #1
+ bl FUN_0200AD38
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x18]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ ldr r1, [r5, #0x18]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022199AC ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r2, [r5, #0x18]
+ add r0, r4, r0
+ sub r3, r6, r3
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ mov r0, #0x19
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019220
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022199AC: .word 0x00010200
+_022199B0: .word 0x0000114D
+
+ thumb_func_start MOD09_022199B4
+MOD09_022199B4: ; 0x022199B4
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r0, #6
+ ldr r1, [r4, #0x2c]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _02219A6C ; =0x0000114D
+ ldrb r0, [r4, r0]
+ cmp r0, #3
+ bhi _02219A68
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022199DC: ; jump table
+ .short _022199E4 - _022199DC - 2 ; case 0
+ .short _02219A10 - _022199DC - 2 ; case 1
+ .short _02219A3C - _022199DC - 2 ; case 2
+ .short _02219A54 - _022199DC - 2 ; case 3
+_022199E4:
+ mov r0, #4
+ str r0, [sp]
+ ldr r0, _02219A70 ; =0x00010200
+ mov r1, #0x18
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x16
+ mov r3, #0
+ bl MOD09_02219560
+ mov r0, #0x14
+ str r0, [sp]
+ ldr r0, _02219A70 ; =0x00010200
+ mov r1, #0x18
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x17
+ mov r3, #0
+ bl MOD09_02219560
+ add sp, #8
+ pop {r4, pc}
+_02219A10:
+ mov r0, #4
+ str r0, [sp]
+ ldr r0, _02219A70 ; =0x00010200
+ mov r1, #0x18
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #0
+ bl MOD09_02219560
+ mov r0, #0x14
+ str r0, [sp]
+ ldr r0, _02219A70 ; =0x00010200
+ mov r1, #0x18
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x19
+ mov r3, #0
+ bl MOD09_02219560
+ add sp, #8
+ pop {r4, pc}
+_02219A3C:
+ mov r0, #0xc
+ str r0, [sp]
+ ldr r0, _02219A70 ; =0x00010200
+ mov r1, #0x18
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1a
+ mov r3, #0
+ bl MOD09_02219560
+ add sp, #8
+ pop {r4, pc}
+_02219A54:
+ mov r0, #0xc
+ str r0, [sp]
+ ldr r0, _02219A70 ; =0x00010200
+ mov r1, #0x18
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD09_02219560
+_02219A68:
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_02219A6C: .word 0x0000114D
+_02219A70: .word 0x00010200
+
+ thumb_func_start MOD09_02219A74
+MOD09_02219A74: ; 0x02219A74
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD09_0221983C
+ add r0, r4, #0
+ bl MOD09_022199B4
+ add r0, r4, #0
+ bl MOD09_02219884
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02219A8C
+MOD09_02219A8C: ; 0x02219A8C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x10]
+ add r6, r1, #0
+ mov r1, #9
+ ldr r4, [r5, #0x2c]
+ bl FUN_0200A914
+ ldr r2, _02219AF4 ; =0x0000114D
+ add r7, r0, #0
+ ldrb r3, [r5, r2]
+ mov r2, #0x90
+ ldr r0, [r5, #0x14]
+ mul r2, r3
+ add r2, r5, r2
+ lsl r3, r6, #2
+ add r2, r2, r3
+ ldrh r2, [r2, #0x3c]
+ mov r1, #0
+ bl FUN_0200AE38
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x18]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02219AF8 ; =0x00010200
+ add r3, r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x18]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02219AF4: .word 0x0000114D
+_02219AF8: .word 0x00010200
+
+ thumb_func_start MOD09_02219AFC
+MOD09_02219AFC: ; 0x02219AFC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r6, r1, #0
+ ldr r1, [r5]
+ ldr r4, [r5, #0x2c]
+ ldr r1, [r1, #0xc]
+ mov r0, #0x82
+ add r4, #0x20
+ bl FUN_020219F4
+ ldr r1, _02219B58 ; =0x0000114D
+ add r7, r0, #0
+ ldrb r2, [r5, r1]
+ mov r1, #0x90
+ mul r1, r2
+ add r2, r5, r1
+ lsl r1, r6, #2
+ add r1, r2, r1
+ ldr r2, [r5]
+ ldrh r1, [r1, #0x3c]
+ ldr r2, [r2, #0xc]
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_0206E790
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02219B5C ; =0x00010200
+ add r2, r7, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r3, #4
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02219B58: .word 0x0000114D
+_02219B5C: .word 0x00010200
+
+ thumb_func_start MOD09_02219B60
+MOD09_02219B60: ; 0x02219B60
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ mov r6, #0
+ add r5, r0, #0
+ add r4, r6, #0
+ add r7, r6, #0
+_02219B6C:
+ ldr r0, [r5, #0x2c]
+ add r1, r7, #0
+ add r0, r0, r4
+ bl FUN_02019620
+ add r6, r6, #1
+ add r4, #0x10
+ cmp r6, #4
+ blo _02219B6C
+ ldr r0, _02219BD4 ; =0x0000114D
+ ldr r1, [r5]
+ ldrb r2, [r5, r0]
+ add r0, r1, r2
+ add r0, #0x27
+ ldrb r4, [r0]
+ add r0, r1, r2
+ add r0, #0x2c
+ ldrb r1, [r0]
+ mov r0, #6
+ add r6, r1, #0
+ mul r6, r0
+ add r0, r5, #0
+ add r1, r4, r6
+ bl MOD09_02219A8C
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, _02219BD8 ; =0x00010200
+ str r2, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, r6
+ mov r3, #1
+ bl MOD09_02219738
+ add r0, r5, #0
+ add r1, r4, r6
+ bl MOD09_02219AFC
+ mov r0, #6
+ str r0, [sp]
+ ldr r0, _02219BDC ; =0x00030201
+ mov r1, #3
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x1f
+ mov r3, #2
+ bl MOD09_02219560
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02219BD4: .word 0x0000114D
+_02219BD8: .word 0x00010200
+_02219BDC: .word 0x00030201
+
+ thumb_func_start MOD09_02219BE0
+MOD09_02219BE0: ; 0x02219BE0
+ push {r4, lr}
+ ldr r2, _02219C04 ; =0x000003E2
+ add r4, r0, #0
+ add r0, #0x1c
+ mov r1, #1
+ mov r3, #0xe
+ bl FUN_0200D0BC
+ add r0, r4, #0
+ add r0, #0x1c
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ bl MOD09_02219C08
+ pop {r4, pc}
+ nop
+_02219C04: .word 0x000003E2
+
+ thumb_func_start MOD09_02219C08
+MOD09_02219C08: ; 0x02219C08
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #1
+ bl FUN_02002B60
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_02230E54
+ mov r3, #0
+ str r3, [sp]
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r4, #0
+ ldr r2, [r4, #0x18]
+ add r0, #0x1c
+ mov r1, #1
+ bl FUN_0201BD84
+ add r4, #0x32
+ strb r0, [r4]
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD09_02219C38
+MOD09_02219C38: ; 0x02219C38
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r3, [r4]
+ ldrh r1, [r3, #0x20]
+ cmp r1, #0
+ bne _02219C48
+ mov r0, #0
+ pop {r4, pc}
+_02219C48:
+ ldr r0, [r3, #8]
+ ldr r3, [r3, #0xc]
+ mov r2, #1
+ bl FUN_0206EE50
+ cmp r0, #0
+ bne _02219C62
+ ldr r1, [r4]
+ mov r0, #0
+ strh r0, [r1, #0x20]
+ ldr r1, [r4]
+ strb r0, [r1, #0x1f]
+ pop {r4, pc}
+_02219C62:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02219C68
+MOD09_02219C68: ; 0x02219C68
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _02219CB0 ; =0x0000114D
+ ldr r6, [r5]
+ ldrb r7, [r5, r0]
+ mov r0, #0x90
+ ldrh r2, [r6, #0x20]
+ mul r0, r7
+ mov r4, #0
+ add r1, r5, r0
+_02219C7C:
+ ldrh r0, [r1, #0x3c]
+ cmp r2, r0
+ bne _02219CA6
+ add r0, r4, #0
+ mov r1, #6
+ bl _u32_div_f
+ add r0, r6, r7
+ add r0, #0x27
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #6
+ bl _u32_div_f
+ ldr r1, _02219CB0 ; =0x0000114D
+ ldr r2, [r5]
+ ldrb r1, [r5, r1]
+ add r1, r2, r1
+ add r1, #0x2c
+ strb r0, [r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_02219CA6:
+ add r4, r4, #1
+ add r1, r1, #4
+ cmp r4, #0x24
+ blo _02219C7C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02219CB0: .word 0x0000114D
+
+ thumb_func_start MOD09_02219CB4
+MOD09_02219CB4: ; 0x02219CB4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp, #4]
+_02219CBE:
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+_02219CCA:
+ ldr r0, [r4]
+ ldr r2, [sp]
+ ldr r0, [r0, #8]
+ lsl r2, r2, #0x10
+ ldr r1, [sp, #8]
+ lsr r2, r2, #0x10
+ bl FUN_0206F0D8
+ add r5, r0, #0
+ beq _02219D3C
+ ldrh r0, [r5]
+ cmp r0, #0
+ beq _02219D34
+ ldrh r1, [r5, #2]
+ cmp r1, #0
+ beq _02219D34
+ ldr r2, [r4]
+ mov r1, #0xd
+ ldr r2, [r2, #0xc]
+ bl FUN_0206E7B8
+ add r7, r0, #0
+ ldr r1, _02219D88 ; =0x0221BD7C
+ mov r0, #0
+_02219CFA:
+ mov r2, #1
+ lsl r2, r0
+ tst r2, r7
+ beq _02219D2C
+ ldrb r2, [r1]
+ mov r3, #0x90
+ add r6, r2, #0
+ mul r6, r3
+ add r3, r4, r2
+ ldr r2, _02219D8C ; =0x0000114F
+ ldrb r2, [r3, r2]
+ add r3, r4, r6
+ lsl r2, r2, #2
+ add r2, r2, r3
+ ldrh r3, [r5]
+ strh r3, [r2, #0x3c]
+ ldrh r3, [r5, #2]
+ strh r3, [r2, #0x3e]
+ ldrb r2, [r1]
+ add r6, r4, r2
+ ldr r2, _02219D8C ; =0x0000114F
+ ldrb r2, [r6, r2]
+ add r3, r2, #1
+ ldr r2, _02219D8C ; =0x0000114F
+ strb r3, [r6, r2]
+_02219D2C:
+ add r0, r0, #1
+ add r1, r1, #1
+ cmp r0, #5
+ blo _02219CFA
+_02219D34:
+ ldr r0, [sp]
+ add r0, r0, #1
+ str r0, [sp]
+ b _02219CCA
+_02219D3C:
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #8
+ blo _02219CBE
+ mov r5, #0
+ add r7, r5, #0
+_02219D4A:
+ ldr r0, _02219D8C ; =0x0000114F
+ add r6, r4, r5
+ ldrb r0, [r6, r0]
+ cmp r0, #0
+ bne _02219D5A
+ ldr r0, _02219D90 ; =0x00001154
+ strb r7, [r6, r0]
+ b _02219D66
+_02219D5A:
+ sub r0, r0, #1
+ mov r1, #6
+ bl _s32_div_f
+ ldr r1, _02219D90 ; =0x00001154
+ strb r0, [r6, r1]
+_02219D66:
+ ldr r1, [r4]
+ ldr r0, _02219D90 ; =0x00001154
+ add r2, r1, r5
+ add r2, #0x2c
+ ldrb r0, [r6, r0]
+ ldrb r2, [r2]
+ cmp r0, r2
+ bhs _02219D7C
+ add r1, r1, r5
+ add r1, #0x2c
+ strb r0, [r1]
+_02219D7C:
+ add r5, r5, #1
+ cmp r5, #5
+ blo _02219D4A
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02219D88: .word 0x0221BD7C
+_02219D8C: .word 0x0000114F
+_02219D90: .word 0x00001154
+
+ thumb_func_start MOD09_02219D94
+MOD09_02219D94: ; 0x02219D94
+ push {r3, r4}
+ ldr r2, _02219DC4 ; =0x0000114D
+ ldr r3, [r0]
+ ldrb r2, [r0, r2]
+ add r3, r3, r2
+ add r3, #0x2c
+ ldrb r4, [r3]
+ mov r3, #6
+ mul r3, r4
+ add r1, r1, r3
+ lsl r3, r1, #2
+ mov r1, #0x90
+ mul r1, r2
+ add r0, r0, r1
+ add r1, r0, r3
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0
+ beq _02219DBE
+ ldrh r1, [r1, #0x3e]
+ cmp r1, #0
+ bne _02219DC0
+_02219DBE:
+ mov r0, #0
+_02219DC0:
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_02219DC4: .word 0x0000114D
+
+ thumb_func_start MOD09_02219DC8
+MOD09_02219DC8: ; 0x02219DC8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD09_02219DF4
+ add r0, r4, #0
+ bl MOD09_02219E40
+ add r0, r4, #0
+ bl MOD09_02219FC4
+ add r0, r4, #0
+ bl MOD09_0221A158
+ add r0, r4, #0
+ bl MOD09_0221A244
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02219DF4
+MOD09_02219DF4: ; 0x02219DF4
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _02219E3C ; =0x0221BDB0
+ add r2, sp, #0
+ add r5, r0, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_02230078
+ add r4, r0, #0
+ bl FUN_0200BB34
+ mov r1, #0xc3
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r1, [r5, r1]
+ add r0, r4, #0
+ mov r2, #0xc
+ bl FUN_0200BBF0
+ mov r1, #0xc3
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ add r0, r4, #0
+ add r2, sp, #0
+ bl FUN_0200BF60
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_02219E3C: .word 0x0221BDB0
+
+ thumb_func_start MOD09_02219E40
+MOD09_02219E40: ; 0x02219E40
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r6, r0, #0
+ ldr r0, [r6]
+ ldr r0, [r0]
+ bl FUN_02230078
+ add r7, r0, #0
+ mov r4, #0
+_02219E52:
+ ldr r0, _02219EE8 ; =0x0000B4B7
+ add r5, r4, r0
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0206E640
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r1, #0xc3
+ str r5, [sp, #8]
+ lsl r1, r1, #2
+ ldr r1, [r6, r1]
+ add r0, r7, #0
+ mov r2, #0x10
+ bl FUN_0200C00C
+ mov r0, #1
+ mov r1, #2
+ bl FUN_0206E640
+ mov r1, #0x10
+ str r1, [sp]
+ 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]
+ mov r3, #0xc3
+ str r5, [sp, #0x14]
+ lsl r3, r3, #2
+ ldr r0, [r6, #8]
+ ldr r3, [r6, r3]
+ mov r1, #3
+ add r2, r7, #0
+ bl FUN_0200C0DC
+ add r4, r4, #1
+ cmp r4, #6
+ blo _02219E52
+ bl FUN_0206E708
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02219EE8 ; =0x0000B4B7
+ mov r1, #0xc3
+ str r0, [sp, #4]
+ lsl r1, r1, #2
+ ldr r1, [r6, r1]
+ add r0, r7, #0
+ mov r2, #0x10
+ bl FUN_0200C124
+ bl FUN_0206E70C
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02219EE8 ; =0x0000B4B7
+ mov r1, #0xc3
+ str r0, [sp, #4]
+ lsl r1, r1, #2
+ ldr r1, [r6, r1]
+ add r0, r7, #0
+ mov r2, #0x10
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02219EE8: .word 0x0000B4B7
+
+ thumb_func_start MOD09_02219EEC
+MOD09_02219EEC: ; 0x02219EEC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r1, #0
+ ldr r0, [r0]
+ add r4, r2, #0
+ bl FUN_02230078
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_0206E640
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0xc3
+ str r4, [sp, #4]
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ add r0, r7, #0
+ mov r2, #0x10
+ bl FUN_0200C9D8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_02219F24
+MOD09_02219F24: ; 0x02219F24
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r0, r1, #0
+ mov r1, #2
+ add r4, r2, #0
+ bl FUN_0206E640
+ add r2, r0, #0
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r4, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r3, [r5]
+ ldr r0, [r5, #8]
+ ldr r3, [r3, #0xc]
+ mov r1, #0x10
+ bl FUN_020030E8
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD09_02219F54
+MOD09_02219F54: ; 0x02219F54
+ push {r4, r5, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ ldr r0, [r0]
+ bl FUN_02230078
+ mov r2, #0
+ add r1, sp, #0
+ strh r2, [r1]
+ strh r2, [r1, #2]
+ strh r2, [r1, #4]
+ strh r2, [r1, #6]
+ mov r1, #0x14
+ ldr r3, _02219FB0 ; =0x0221BE98
+ mul r1, r4
+ ldr r3, [r3, r1]
+ str r2, [sp, #0xc]
+ str r3, [sp, #8]
+ mov r3, #2
+ str r3, [sp, #0x10]
+ ldr r3, _02219FB4 ; =0x0221BE88
+ str r2, [sp, #0x30]
+ ldr r3, [r3, r1]
+ add r2, sp, #0
+ str r3, [sp, #0x14]
+ ldr r3, _02219FB8 ; =0x0221BE8C
+ ldr r3, [r3, r1]
+ str r3, [sp, #0x18]
+ ldr r3, _02219FBC ; =0x0221BE90
+ ldr r3, [r3, r1]
+ str r3, [sp, #0x1c]
+ ldr r3, _02219FC0 ; =0x0221BE94
+ ldr r1, [r3, r1]
+ str r1, [sp, #0x20]
+ mov r1, #1
+ str r1, [sp, #0x2c]
+ mov r1, #0xc3
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ bl FUN_0200C154
+ add sp, #0x34
+ pop {r4, r5, pc}
+ nop
+_02219FB0: .word 0x0221BE98
+_02219FB4: .word 0x0221BE88
+_02219FB8: .word 0x0221BE8C
+_02219FBC: .word 0x0221BE90
+_02219FC0: .word 0x0221BE94
+
+ thumb_func_start MOD09_02219FC4
+MOD09_02219FC4: ; 0x02219FC4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r7, #0x31
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #4
+_02219FD0:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD09_02219F54
+ str r0, [r5, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blo _02219FD0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD09_02219FE4
+MOD09_02219FE4: ; 0x02219FE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, [r7]
+ ldr r0, [r0]
+ bl FUN_02230078
+ mov r6, #0x31
+ str r0, [sp]
+ mov r4, #0
+ add r5, r7, #0
+ lsl r6, r6, #4
+_02219FFA:
+ ldr r0, [r5, r6]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blo _02219FFA
+ add r0, r7, #0
+ bl MOD09_0221A1B0
+ add r0, r7, #0
+ bl MOD09_0221A294
+ mov r1, #0xc3
+ lsl r1, r1, #2
+ ldr r0, [sp]
+ ldr r1, [r7, r1]
+ bl FUN_0200C398
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_0221A024
+MOD09_0221A024: ; 0x0221A024
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ mov r1, #1
+ add r6, r0, #0
+ bl FUN_0200C644
+ lsl r1, r5, #0x10
+ lsl r2, r4, #0x10
+ add r0, r6, #0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_0221A044
+MOD09_0221A044: ; 0x0221A044
+ push {r3, r4, r5, r6, r7, lr}
+ mov r6, #0x31
+ str r0, [sp]
+ add r7, r1, #0
+ mov r4, #0
+ add r5, r0, #0
+ lsl r6, r6, #4
+_0221A052:
+ ldr r0, [r5, r6]
+ mov r1, #0
+ bl FUN_0200C644
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blo _0221A052
+ cmp r7, #0
+ beq _0221A070
+ cmp r7, #1
+ beq _0221A078
+ cmp r7, #2
+ beq _0221A080
+ pop {r3, r4, r5, r6, r7, pc}
+_0221A070:
+ ldr r0, [sp]
+ bl MOD09_0221A088
+ pop {r3, r4, r5, r6, r7, pc}
+_0221A078:
+ ldr r0, [sp]
+ bl MOD09_0221A0BC
+ pop {r3, r4, r5, r6, r7, pc}
+_0221A080:
+ ldr r0, [sp]
+ bl MOD09_0221A114
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD09_0221A088
+MOD09_0221A088: ; 0x0221A088
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ ldrh r1, [r1, #0x20]
+ cmp r1, #0
+ beq _0221A0B6
+ ldr r2, _0221A0B8 ; =0x0000B4B7
+ bl MOD09_02219EEC
+ ldr r1, [r4]
+ ldr r3, _0221A0B8 ; =0x0000B4B7
+ ldrh r1, [r1, #0x20]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD09_02219F24
+ mov r0, #0x31
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ mov r2, #0xb2
+ bl MOD09_0221A024
+_0221A0B6:
+ pop {r4, pc}
+ .align 2, 0
+_0221A0B8: .word 0x0000B4B7
+
+ thumb_func_start MOD09_0221A0BC
+MOD09_0221A0BC: ; 0x0221A0BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r6, _0221A10C ; =0x0221BE10
+ mov r4, #0
+ add r7, r5, #0
+_0221A0C6:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02219D94
+ str r0, [sp]
+ cmp r0, #0
+ beq _0221A0FE
+ ldr r2, _0221A110 ; =0x0000B4B7
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r4, r2
+ bl MOD09_02219EEC
+ ldr r3, _0221A110 ; =0x0000B4B7
+ lsl r2, r4, #0x10
+ ldr r1, [sp]
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ add r3, r4, r3
+ bl MOD09_02219F24
+ mov r0, #0x31
+ lsl r0, r0, #4
+ ldr r0, [r7, r0]
+ ldr r1, [r6]
+ ldr r2, [r6, #4]
+ bl MOD09_0221A024
+_0221A0FE:
+ add r4, r4, #1
+ add r6, #8
+ add r7, r7, #4
+ cmp r4, #6
+ blo _0221A0C6
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221A10C: .word 0x0221BE10
+_0221A110: .word 0x0000B4B7
+
+ thumb_func_start MOD09_0221A114
+MOD09_0221A114: ; 0x0221A114
+ push {r3, r4, r5, lr}
+ ldr r1, _0221A150 ; =0x0000114D
+ add r4, r0, #0
+ ldrb r1, [r4, r1]
+ ldr r2, [r4]
+ add r1, r2, r1
+ add r1, #0x27
+ ldrb r1, [r1]
+ bl MOD09_02219D94
+ add r5, r0, #0
+ ldr r2, _0221A154 ; =0x0000B4B7
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD09_02219EEC
+ ldr r3, _0221A154 ; =0x0000B4B7
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD09_02219F24
+ mov r0, #0x31
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ mov r2, #0x2c
+ bl MOD09_0221A024
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221A150: .word 0x0000114D
+_0221A154: .word 0x0000B4B7
+
+ thumb_func_start MOD09_0221A158
+MOD09_0221A158: ; 0x0221A158
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_02230078
+ ldr r3, _0221A1AC ; =0x0000B4BE
+ add r4, r0, #0
+ str r3, [sp]
+ sub r1, r3, #5
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0xc3
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ ldr r2, [r5, #8]
+ bl FUN_0225D3EC
+ ldr r3, _0221A1AC ; =0x0000B4BE
+ mov r1, #0xc3
+ str r3, [sp]
+ sub r0, r3, #5
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r2, [r5]
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ ldr r2, [r2, #0xc]
+ add r0, r4, #0
+ bl FUN_0225D484
+ add r1, r0, #0
+ ldr r0, [r5, #0x34]
+ bl MOD09_0221AC30
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_0221A1AC: .word 0x0000B4BE
+
+ thumb_func_start MOD09_0221A1B0
+MOD09_0221A1B0: ; 0x0221A1B0
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ bl MOD09_0221AC24
+ bl FUN_0225D508
+ ldr r3, _0221A1D8 ; =0x0000B4B9
+ mov r0, #0xc3
+ add r1, r3, #5
+ str r3, [sp]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ bl FUN_0225D45C
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0221A1D8: .word 0x0000B4B9
+
+ thumb_func_start MOD09_0221A1DC
+MOD09_0221A1DC: ; 0x0221A1DC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r1, _0221A21C ; =0x0221BD94
+ lsl r2, r4, #2
+ ldr r0, [r5, #0x34]
+ ldr r1, [r1, r2]
+ bl MOD09_0221AC68
+ cmp r4, #0
+ beq _0221A1FA
+ cmp r4, #1
+ beq _0221A206
+ cmp r4, #2
+ pop {r3, r4, r5, pc}
+_0221A1FA:
+ ldr r1, _0221A220 ; =0x0000114D
+ ldr r0, [r5, #0x34]
+ ldrb r1, [r5, r1]
+ bl MOD09_0221AC34
+ pop {r3, r4, r5, pc}
+_0221A206:
+ ldr r1, _0221A220 ; =0x0000114D
+ ldr r2, [r5]
+ ldrb r1, [r5, r1]
+ ldr r0, [r5, #0x34]
+ add r1, r2, r1
+ add r1, #0x27
+ ldrb r1, [r1]
+ bl MOD09_0221AC34
+ pop {r3, r4, r5, pc}
+ nop
+_0221A21C: .word 0x0221BD94
+_0221A220: .word 0x0000114D
+
+ thumb_func_start MOD09_0221A224
+MOD09_0221A224: ; 0x0221A224
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl MOD09_0221AC2C
+ ldr r0, [r4, #0x34]
+ bl MOD09_0221AC5C
+ ldr r0, [r4, #0x34]
+ bl MOD09_0221AC24
+ bl FUN_0225D648
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_0221A244
+MOD09_0221A244: ; 0x0221A244
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_02230078
+ ldr r3, _0221A290 ; =0x0000B4BD
+ add r4, r0, #0
+ str r3, [sp]
+ sub r1, r3, #5
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0xc3
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ ldr r2, [r5, #8]
+ bl FUN_0225D6A4
+ ldr r3, _0221A290 ; =0x0000B4BD
+ mov r1, #0xc3
+ str r3, [sp]
+ sub r0, r3, #5
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r2, [r5]
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ ldr r2, [r2, #0xc]
+ add r0, r4, #0
+ bl FUN_0225D73C
+ str r0, [r5, #0x38]
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_0221A290: .word 0x0000B4BD
+
+ thumb_func_start MOD09_0221A294
+MOD09_0221A294: ; 0x0221A294
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4, #0x38]
+ bl FUN_0225D7B8
+ ldr r3, _0221A2B8 ; =0x0000B4B8
+ mov r0, #0xc3
+ add r1, r3, #5
+ str r3, [sp]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ bl FUN_0225D714
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0221A2B8: .word 0x0000B4B8
+
+ thumb_func_start MOD09_0221A2BC
+MOD09_0221A2BC: ; 0x0221A2BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #0x14]
+ cmp r0, #1
+ bne _0221A2E2
+ lsl r3, r1, #3
+ ldr r1, _0221A2EC ; =0x0221BDC8
+ ldr r2, _0221A2F0 ; =0x0221BDCC
+ ldr r0, [r4, #0x38]
+ ldr r1, [r1, r3]
+ ldr r2, [r2, r3]
+ bl FUN_0225D800
+ ldr r0, [r4, #0x38]
+ mov r1, #0x3c
+ bl FUN_0225D820
+ pop {r4, pc}
+_0221A2E2:
+ ldr r0, [r4, #0x38]
+ bl FUN_0225D80C
+ pop {r4, pc}
+ nop
+_0221A2EC: .word 0x0221BDC8
+_0221A2F0: .word 0x0221BDCC
+
+ thumb_func_start MOD09_0221A2F4
+MOD09_0221A2F4: ; 0x0221A2F4
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ mov r0, #0xca
+ lsl r0, r0, #2
+ mov r2, #0
+ add r0, r5, r0
+ add r3, r2, #0
+ add r4, r1, #0
+ bl MOD09_0221A62C
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _0221A5B0 ; =0x00000448
+ mov r3, #9
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r2, #0
+ str r3, [sp, #4]
+ bl MOD09_0221A62C
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ ldr r0, _0221A5B4 ; =0x00000568
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #0x12
+ bl MOD09_0221A62C
+ mov r0, #0x1a
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ ldr r0, _0221A5B8 ; =0x00000688
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #0x1b
+ bl MOD09_0221A62C
+ mov r0, #0x1a
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ ldr r0, _0221A5BC ; =0x0000078C
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #0x20
+ bl MOD09_0221A62C
+ mov r0, #0x1a
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r0, #0x89
+ lsl r0, r0, #4
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r2, #0
+ mov r3, #0x25
+ bl MOD09_0221A62C
+ mov r0, #0x1a
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ ldr r0, _0221A5C0 ; =0x00000994
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #0x25
+ bl MOD09_0221A62C
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A5C4 ; =0x00000A98
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #0x39
+ bl MOD09_0221A62C
+ ldr r0, _0221A5C8 ; =0x00000ACA
+ mov r2, #5
+ str r2, [sp]
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r3, #0x39
+ str r2, [sp, #4]
+ bl MOD09_0221A62C
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A5CC ; =0x00000AFC
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0xa
+ mov r3, #0x39
+ bl MOD09_0221A62C
+ mov r2, #0x10
+ str r2, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r0, _0221A5D0 ; =0x00000B2E
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r3, #0
+ bl MOD09_0221A62C
+ ldr r0, _0221A5D4 ; =0x00000BEE
+ mov r2, #0x10
+ str r2, [sp]
+ mov r3, #6
+ add r0, r5, r0
+ add r1, r4, #0
+ str r3, [sp, #4]
+ bl MOD09_0221A62C
+ mov r2, #0x10
+ str r2, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r0, _0221A5D8 ; =0x00000CAE
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r3, #0xc
+ bl MOD09_0221A62C
+ mov r2, #0x10
+ str r2, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r0, _0221A5DC ; =0x00000D6E
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r3, #0x12
+ bl MOD09_0221A62C
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A5E0 ; =0x00000E2E
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #0x2f
+ bl MOD09_0221A62C
+ mov r0, #0xe6
+ mov r2, #5
+ lsl r0, r0, #4
+ str r2, [sp]
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r3, #0x2f
+ str r2, [sp, #4]
+ bl MOD09_0221A62C
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A5E4 ; =0x00000E92
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0xa
+ mov r3, #0x2f
+ bl MOD09_0221A62C
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A5E8 ; =0x00000EC4
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0xf
+ mov r3, #0x2f
+ bl MOD09_0221A62C
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A5EC ; =0x00000EF6
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #0x34
+ bl MOD09_0221A62C
+ ldr r0, _0221A5F0 ; =0x00000F28
+ mov r2, #5
+ str r2, [sp]
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r3, #0x34
+ str r2, [sp, #4]
+ bl MOD09_0221A62C
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A5F4 ; =0x00000F5A
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0xa
+ mov r3, #0x34
+ bl MOD09_0221A62C
+ mov r0, #5
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A5F8 ; =0x00000F8C
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0xf
+ mov r3, #0x34
+ bl MOD09_0221A62C
+ mov r0, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A5FC ; =0x00000FBE
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x14
+ mov r3, #0x2f
+ bl MOD09_0221A62C
+ mov r0, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A600 ; =0x00000FDE
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x18
+ mov r3, #0x2f
+ bl MOD09_0221A62C
+ mov r0, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A604 ; =0x00000FFE
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x1c
+ mov r3, #0x2f
+ bl MOD09_0221A62C
+ mov r0, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A608 ; =0x0000101E
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x14
+ mov r3, #0x33
+ bl MOD09_0221A62C
+ mov r0, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A60C ; =0x0000103E
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x18
+ mov r3, #0x33
+ bl MOD09_0221A62C
+ mov r0, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A610 ; =0x0000105E
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x1c
+ mov r3, #0x33
+ bl MOD09_0221A62C
+ mov r0, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A614 ; =0x0000107E
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x14
+ mov r3, #0x37
+ bl MOD09_0221A62C
+ mov r0, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A618 ; =0x0000109E
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x18
+ mov r3, #0x37
+ bl MOD09_0221A62C
+ mov r0, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A61C ; =0x000010BE
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x1c
+ mov r3, #0x37
+ bl MOD09_0221A62C
+ mov r0, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A620 ; =0x000010DE
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x14
+ mov r3, #0x3b
+ bl MOD09_0221A62C
+ mov r0, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A624 ; =0x000010FE
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x18
+ mov r3, #0x3b
+ bl MOD09_0221A62C
+ mov r0, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0221A628 ; =0x0000111E
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0x1c
+ mov r3, #0x3b
+ bl MOD09_0221A62C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221A5B0: .word 0x00000448
+_0221A5B4: .word 0x00000568
+_0221A5B8: .word 0x00000688
+_0221A5BC: .word 0x0000078C
+_0221A5C0: .word 0x00000994
+_0221A5C4: .word 0x00000A98
+_0221A5C8: .word 0x00000ACA
+_0221A5CC: .word 0x00000AFC
+_0221A5D0: .word 0x00000B2E
+_0221A5D4: .word 0x00000BEE
+_0221A5D8: .word 0x00000CAE
+_0221A5DC: .word 0x00000D6E
+_0221A5E0: .word 0x00000E2E
+_0221A5E4: .word 0x00000E92
+_0221A5E8: .word 0x00000EC4
+_0221A5EC: .word 0x00000EF6
+_0221A5F0: .word 0x00000F28
+_0221A5F4: .word 0x00000F5A
+_0221A5F8: .word 0x00000F8C
+_0221A5FC: .word 0x00000FBE
+_0221A600: .word 0x00000FDE
+_0221A604: .word 0x00000FFE
+_0221A608: .word 0x0000101E
+_0221A60C: .word 0x0000103E
+_0221A610: .word 0x0000105E
+_0221A614: .word 0x0000107E
+_0221A618: .word 0x0000109E
+_0221A61C: .word 0x000010BE
+_0221A620: .word 0x000010DE
+_0221A624: .word 0x000010FE
+_0221A628: .word 0x0000111E
+
+ thumb_func_start MOD09_0221A62C
+MOD09_0221A62C: ; 0x0221A62C
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r0, sp, #8
+ mov lr, r3
+ ldrb r3, [r0, #0x14]
+ mov r6, #0
+ mov ip, r3
+ cmp r3, #0
+ ble _0221A678
+ ldrb r3, [r0, #0x10]
+ lsl r2, r2, #1
+ add r7, r1, r2
+_0221A644:
+ mov r2, #0
+ cmp r3, #0
+ ble _0221A66C
+ mov r0, lr
+ add r0, r0, r6
+ lsl r0, r0, #6
+ add r5, r7, r0
+ add r0, r6, #0
+ mul r0, r3
+ lsl r1, r0, #1
+ ldr r0, [sp]
+ add r4, r0, r1
+_0221A65C:
+ lsl r1, r2, #1
+ ldrh r0, [r5, r1]
+ strh r0, [r4, r1]
+ add r0, r2, #1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ cmp r2, r3
+ blt _0221A65C
+_0221A66C:
+ add r0, r6, #1
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ mov r0, ip
+ cmp r6, r0
+ blt _0221A644
+_0221A678:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_0221A67C
+MOD09_0221A67C: ; 0x0221A67C
+ cmp r1, #0x10
+ bhi _0221A70A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221A68C: ; jump table
+ .short _0221A6AE - _0221A68C - 2 ; case 0
+ .short _0221A6AE - _0221A68C - 2 ; case 1
+ .short _0221A6AE - _0221A68C - 2 ; case 2
+ .short _0221A6AE - _0221A68C - 2 ; case 3
+ .short _0221A6BE - _0221A68C - 2 ; case 4
+ .short _0221A6CC - _0221A68C - 2 ; case 5
+ .short _0221A6D8 - _0221A68C - 2 ; case 6
+ .short _0221A6D8 - _0221A68C - 2 ; case 7
+ .short _0221A6D8 - _0221A68C - 2 ; case 8
+ .short _0221A6D8 - _0221A68C - 2 ; case 9
+ .short _0221A6D8 - _0221A68C - 2 ; case 10
+ .short _0221A6D8 - _0221A68C - 2 ; case 11
+ .short _0221A6E4 - _0221A68C - 2 ; case 12
+ .short _0221A6F0 - _0221A68C - 2 ; case 13
+ .short _0221A6CC - _0221A68C - 2 ; case 14
+ .short _0221A6FC - _0221A68C - 2 ; case 15
+ .short _0221A6CC - _0221A68C - 2 ; case 16
+_0221A6AE:
+ mov r1, #0xca
+ lsl r1, r1, #2
+ add r1, r0, r1
+ mov r0, #0x12
+ lsl r0, r0, #4
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_0221A6BE:
+ ldr r1, _0221A710 ; =0x00000688
+ add r1, r0, r1
+ lsl r0, r2, #6
+ add r0, r2, r0
+ lsl r0, r0, #2
+ add r0, r1, r0
+ bx lr
+_0221A6CC:
+ ldr r1, _0221A714 ; =0x00000A98
+ add r1, r0, r1
+ mov r0, #0x32
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_0221A6D8:
+ ldr r1, _0221A718 ; =0x00000B2E
+ add r1, r0, r1
+ mov r0, #0xc0
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_0221A6E4:
+ ldr r1, _0221A71C ; =0x00000E2E
+ add r1, r0, r1
+ mov r0, #0x32
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_0221A6F0:
+ ldr r1, _0221A720 ; =0x00000EF6
+ add r1, r0, r1
+ mov r0, #0x32
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_0221A6FC:
+ ldr r1, _0221A710 ; =0x00000688
+ add r1, r0, r1
+ lsl r0, r2, #6
+ add r0, r2, r0
+ lsl r0, r0, #2
+ add r0, r1, r0
+ bx lr
+_0221A70A:
+ mov r0, #0
+ bx lr
+ nop
+_0221A710: .word 0x00000688
+_0221A714: .word 0x00000A98
+_0221A718: .word 0x00000B2E
+_0221A71C: .word 0x00000E2E
+_0221A720: .word 0x00000EF6
+
+ thumb_func_start MOD09_0221A724
+MOD09_0221A724: ; 0x0221A724
+ cmp r2, #3
+ bne _0221A72C
+ mov r0, #5
+ bx lr
+_0221A72C:
+ cmp r1, #0x10
+ bhi _0221A78A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221A73C: ; jump table
+ .short _0221A75E - _0221A73C - 2 ; case 0
+ .short _0221A75E - _0221A73C - 2 ; case 1
+ .short _0221A75E - _0221A73C - 2 ; case 2
+ .short _0221A75E - _0221A73C - 2 ; case 3
+ .short _0221A762 - _0221A73C - 2 ; case 4
+ .short _0221A766 - _0221A73C - 2 ; case 5
+ .short _0221A76A - _0221A73C - 2 ; case 6
+ .short _0221A76A - _0221A73C - 2 ; case 7
+ .short _0221A76A - _0221A73C - 2 ; case 8
+ .short _0221A76A - _0221A73C - 2 ; case 9
+ .short _0221A76A - _0221A73C - 2 ; case 10
+ .short _0221A76A - _0221A73C - 2 ; case 11
+ .short _0221A766 - _0221A73C - 2 ; case 12
+ .short _0221A766 - _0221A73C - 2 ; case 13
+ .short _0221A766 - _0221A73C - 2 ; case 14
+ .short _0221A776 - _0221A73C - 2 ; case 15
+ .short _0221A766 - _0221A73C - 2 ; case 16
+_0221A75E:
+ mov r0, #0
+ bx lr
+_0221A762:
+ mov r0, #3
+ bx lr
+_0221A766:
+ mov r0, #2
+ bx lr
+_0221A76A:
+ ldr r1, _0221A790 ; =0x0000114D
+ ldrb r0, [r0, r1]
+ add r0, #8
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_0221A776:
+ cmp r3, #2
+ bne _0221A786
+ ldr r1, _0221A790 ; =0x0000114D
+ ldrb r0, [r0, r1]
+ add r0, #8
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_0221A786:
+ mov r0, #1
+ bx lr
+_0221A78A:
+ mov r0, #0
+ bx lr
+ nop
+_0221A790: .word 0x0000114D
+
+ thumb_func_start MOD09_0221A794
+MOD09_0221A794: ; 0x0221A794
+ push {r4, r5, r6, r7}
+ cmp r2, #0
+ bne _0221A7A4
+ ldr r2, _0221A7F8 ; =0x00000FBE
+ add r2, r0, r2
+ lsl r0, r3, #5
+ add r0, r2, r0
+ b _0221A7CC
+_0221A7A4:
+ cmp r2, #1
+ bne _0221A7B2
+ ldr r2, _0221A7FC ; =0x0000101E
+ add r2, r0, r2
+ lsl r0, r3, #5
+ add r0, r2, r0
+ b _0221A7CC
+_0221A7B2:
+ cmp r2, #2
+ bne _0221A7C0
+ ldr r2, _0221A800 ; =0x0000107E
+ add r2, r0, r2
+ lsl r0, r3, #5
+ add r0, r2, r0
+ b _0221A7CC
+_0221A7C0:
+ cmp r2, #3
+ bne _0221A7F4
+ ldr r2, _0221A804 ; =0x000010DE
+ add r2, r0, r2
+ lsl r0, r3, #5
+ add r0, r2, r0
+_0221A7CC:
+ mov r2, #0
+_0221A7CE:
+ lsl r4, r2, #3
+ lsl r5, r2, #5
+ mov r3, #0
+ add r4, r0, r4
+ add r5, r1, r5
+_0221A7D8:
+ lsl r6, r3, #1
+ ldrh r7, [r4, r6]
+ add r3, r3, #1
+ lsl r3, r3, #0x10
+ add r6, r5, r6
+ lsr r3, r3, #0x10
+ strh r7, [r6, #0xc]
+ cmp r3, #4
+ blo _0221A7D8
+ add r2, r2, #1
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ cmp r2, #4
+ blo _0221A7CE
+_0221A7F4:
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_0221A7F8: .word 0x00000FBE
+_0221A7FC: .word 0x0000101E
+_0221A800: .word 0x0000107E
+_0221A804: .word 0x000010DE
+
+ thumb_func_start MOD09_0221A808
+MOD09_0221A808: ; 0x0221A808
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ add r5, r1, #0
+ ldr r1, [sp, #4]
+ ldr r2, [sp, #8]
+ str r0, [sp]
+ bl MOD09_0221A67C
+ add r3, sp, #0x10
+ add r4, r0, #0
+ ldrb r3, [r3, #0x10]
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ ldr r2, [sp, #8]
+ bl MOD09_0221A724
+ lsl r0, r0, #0x1c
+ lsr r2, r0, #0x10
+ ldr r0, [sp, #4]
+ ldr r6, _0221A874 ; =0x0221BF4B
+ lsl r3, r0, #2
+ ldr r0, _0221A878 ; =0x0221BF4A
+ ldrb r6, [r6, r3]
+ ldrb r0, [r0, r3]
+ mov r1, #0
+ mul r6, r0
+ cmp r6, #0
+ ble _0221A864
+ ldr r0, _0221A87C ; =0x0221BF48
+ ldr r7, _0221A880 ; =0x00000FFF
+ add r3, r0, r3
+_0221A84A:
+ lsl r0, r1, #1
+ ldrh r6, [r4, r0]
+ and r6, r7
+ orr r6, r2
+ strh r6, [r5, r0]
+ add r0, r1, #1
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldrb r6, [r3, #2]
+ ldrb r0, [r3, #3]
+ mul r0, r6
+ cmp r1, r0
+ blt _0221A84A
+_0221A864:
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ ldr r3, [sp, #8]
+ add r1, r5, #0
+ bl MOD09_0221A794
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221A874: .word 0x0221BF4B
+_0221A878: .word 0x0221BF4A
+_0221A87C: .word 0x0221BF48
+_0221A880: .word 0x00000FFF
+
+ thumb_func_start MOD09_0221A884
+MOD09_0221A884: ; 0x0221A884
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r1, [sp, #0xc]
+ str r2, [sp, #0x10]
+ str r3, [sp, #0x14]
+ add r5, r0, #0
+ ldr r0, [sp, #0xc]
+ lsl r4, r0, #2
+ ldr r0, _0221A8E8 ; =0x0221BF4B
+ ldrb r7, [r0, r4]
+ ldr r0, _0221A8EC ; =0x0221BF4A
+ ldrb r6, [r0, r4]
+ ldr r0, [r5]
+ add r1, r6, #0
+ mul r1, r7
+ ldr r0, [r0, #0xc]
+ lsl r1, r1, #1
+ bl FUN_02016998
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ str r0, [sp]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD09_0221A808
+ ldr r0, _0221A8F0 ; =0x0221BF49
+ ldr r3, _0221A8F4 ; =0x0221BF48
+ ldrb r0, [r0, r4]
+ ldrb r3, [r3, r4]
+ ldr r2, [sp, #0x18]
+ str r0, [sp]
+ str r6, [sp, #4]
+ str r7, [sp, #8]
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02018148
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_0201AC68
+ ldr r0, [sp, #0x18]
+ bl FUN_02016A18
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0221A8E8: .word 0x0221BF4B
+_0221A8EC: .word 0x0221BF4A
+_0221A8F0: .word 0x0221BF49
+_0221A8F4: .word 0x0221BF48
+
+ thumb_func_start MOD09_0221A8F8
+MOD09_0221A8F8: ; 0x0221A8F8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ cmp r1, #6
+ blo _0221A916
+ cmp r1, #0xb
+ bhi _0221A916
+ add r0, #0x31
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0221A916
+ add r1, #0xb
+ ldr r0, _0221A96C ; =0x0221BF8C
+ lsl r1, r1, #2
+ ldr r4, [r0, r1]
+ b _0221A91C
+_0221A916:
+ ldr r0, _0221A96C ; =0x0221BF8C
+ lsl r1, r1, #2
+ ldr r4, [r0, r1]
+_0221A91C:
+ cmp r4, #0
+ beq _0221A968
+ cmp r2, #0
+ beq _0221A92C
+ cmp r2, #1
+ beq _0221A934
+ cmp r2, #2
+ bne _0221A93A
+_0221A92C:
+ mov r0, #1
+ str r0, [sp]
+ mov r7, #2
+ b _0221A93A
+_0221A934:
+ mov r0, #0
+ str r0, [sp]
+ mov r7, #4
+_0221A93A:
+ mov r5, #0
+_0221A93C:
+ ldrb r0, [r4, r5]
+ cmp r0, #0xff
+ beq _0221A968
+ ldr r1, [r6, #0x2c]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ ldr r1, [sp]
+ add r2, r7, #0
+ mov r3, #0
+ bl FUN_0201A8C8
+ ldrb r0, [r4, r5]
+ ldr r1, [r6, #0x2c]
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl FUN_02019220
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #8
+ blo _0221A93C
+_0221A968:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221A96C: .word 0x0221BF8C
+
+ thumb_func_start MOD09_0221A970
+MOD09_0221A970: ; 0x0221A970
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ str r2, [sp]
+ cmp r1, #6
+ blo _0221A98C
+ cmp r1, #0xb
+ bhi _0221A98C
+ sub r0, r1, #6
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x31
+ lsl r0, r0, #4
+ ldr r6, [r1, r0]
+ b _0221A9B0
+_0221A98C:
+ cmp r1, #4
+ bne _0221A9D4
+ mov r7, #0x31
+ mov r4, #0
+ lsl r7, r7, #4
+_0221A996:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r6, [r0, r7]
+ add r0, r6, #0
+ bl FUN_0200C658
+ cmp r0, #0
+ bne _0221A9B0
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #6
+ blo _0221A996
+_0221A9B0:
+ ldr r0, [sp]
+ cmp r0, #0
+ beq _0221A9BE
+ cmp r0, #1
+ beq _0221A9CA
+ cmp r0, #2
+ bne _0221A9D4
+_0221A9BE:
+ add r0, r6, #0
+ mov r1, #0
+ mov r2, #2
+ bl FUN_0200C82C
+ pop {r3, r4, r5, r6, r7, pc}
+_0221A9CA:
+ mov r1, #0
+ add r0, r6, #0
+ sub r2, r1, #4
+ bl FUN_0200C82C
+_0221A9D4:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD09_0221A9D8
+MOD09_0221A9D8: ; 0x0221A9D8
+ push {r4, r5}
+ ldr r3, _0221AA10 ; =0x0000113E
+ mov r5, #0
+ strb r5, [r0, r3]
+ add r4, r3, #1
+ strb r5, [r0, r4]
+ add r4, r3, #2
+ strb r1, [r0, r4]
+ add r1, r3, #3
+ ldrb r4, [r0, r1]
+ mov r1, #0xf0
+ bic r4, r1
+ lsl r1, r2, #0x1c
+ lsr r1, r1, #0x18
+ add r2, r4, #0
+ orr r2, r1
+ add r1, r3, #3
+ strb r2, [r0, r1]
+ ldrb r2, [r0, r1]
+ mov r1, #0xf
+ bic r2, r1
+ mov r1, #1
+ orr r2, r1
+ add r1, r3, #3
+ strb r2, [r0, r1]
+ pop {r4, r5}
+ bx lr
+ nop
+_0221AA10: .word 0x0000113E
+
+ thumb_func_start MOD09_0221AA14
+MOD09_0221AA14: ; 0x0221AA14
+ push {r4, lr}
+ ldr r3, _0221AAE8 ; =0x00001141
+ add r4, r0, #0
+ ldrb r1, [r4, r3]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ beq _0221AAE4
+ sub r1, r3, #3
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ beq _0221AA34
+ cmp r1, #1
+ beq _0221AA6C
+ cmp r1, #2
+ beq _0221AAA4
+ pop {r4, pc}
+_0221AA34:
+ sub r1, r3, #1
+ add r3, #0xb
+ ldrb r1, [r4, r1]
+ ldrb r3, [r4, r3]
+ mov r2, #1
+ bl MOD09_0221A884
+ mov r1, #0x45
+ lsl r1, r1, #6
+ ldrb r1, [r4, r1]
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD09_0221A8F8
+ mov r1, #0x45
+ lsl r1, r1, #6
+ ldrb r1, [r4, r1]
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD09_0221A970
+ ldr r0, _0221AAEC ; =0x0000113F
+ mov r1, #0
+ strb r1, [r4, r0]
+ mov r1, #1
+ sub r0, r0, #1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_0221AA6C:
+ sub r1, r3, #1
+ add r3, #0xb
+ ldrb r1, [r4, r1]
+ ldrb r3, [r4, r3]
+ mov r2, #2
+ bl MOD09_0221A884
+ mov r1, #0x45
+ lsl r1, r1, #6
+ ldrb r1, [r4, r1]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD09_0221A8F8
+ mov r1, #0x45
+ lsl r1, r1, #6
+ ldrb r1, [r4, r1]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD09_0221A970
+ ldr r0, _0221AAEC ; =0x0000113F
+ mov r1, #0
+ strb r1, [r4, r0]
+ mov r1, #2
+ sub r0, r0, #1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_0221AAA4:
+ sub r1, r3, #1
+ add r3, #0xb
+ ldrb r1, [r4, r1]
+ ldrb r3, [r4, r3]
+ mov r2, #0
+ bl MOD09_0221A884
+ mov r1, #0x45
+ lsl r1, r1, #6
+ ldrb r1, [r4, r1]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD09_0221A8F8
+ mov r1, #0x45
+ lsl r1, r1, #6
+ ldrb r1, [r4, r1]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD09_0221A970
+ ldr r0, _0221AAEC ; =0x0000113F
+ mov r2, #0
+ strb r2, [r4, r0]
+ sub r1, r0, #1
+ strb r2, [r4, r1]
+ add r1, r0, #2
+ ldrb r2, [r4, r1]
+ mov r1, #0xf
+ add r0, r0, #2
+ bic r2, r1
+ strb r2, [r4, r0]
+_0221AAE4:
+ pop {r4, pc}
+ nop
+_0221AAE8: .word 0x00001141
+_0221AAEC: .word 0x0000113F
+
+ thumb_func_start MOD09_0221AAF0
+MOD09_0221AAF0: ; 0x0221AAF0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ beq _0221AB02
+ cmp r6, #1
+ beq _0221AB60
+ cmp r6, #2
+ beq _0221ABE6
+ pop {r3, r4, r5, r6, r7, pc}
+_0221AB02:
+ mov r1, #0
+ add r2, r1, #0
+ add r3, r6, #0
+ bl MOD09_0221A884
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD09_0221A884
+ add r0, r5, #0
+ mov r1, #2
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD09_0221A884
+ add r0, r5, #0
+ mov r1, #3
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD09_0221A884
+ ldr r0, [r5]
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ bne _0221AB46
+ add r0, r5, #0
+ mov r1, #4
+ mov r2, #3
+ add r3, r6, #0
+ bl MOD09_0221A884
+ b _0221AB52
+_0221AB46:
+ add r0, r5, #0
+ mov r1, #4
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD09_0221A884
+_0221AB52:
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD09_0221A884
+ pop {r3, r4, r5, r6, r7, pc}
+_0221AB60:
+ mov r4, #0
+ mov r7, #3
+_0221AB64:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD09_02219D94
+ cmp r0, #0
+ bne _0221AB82
+ add r1, r4, #6
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r2, r7, #0
+ add r3, r6, #0
+ bl MOD09_0221A884
+ b _0221AB92
+_0221AB82:
+ add r1, r4, #6
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD09_0221A884
+_0221AB92:
+ add r4, r4, #1
+ cmp r4, #6
+ blo _0221AB64
+ ldr r0, _0221AC00 ; =0x0000114D
+ ldrb r1, [r5, r0]
+ add r0, r0, #7
+ add r1, r5, r1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _0221ABC0
+ add r0, r5, #0
+ mov r1, #0xc
+ mov r2, #3
+ add r3, r6, #0
+ bl MOD09_0221A884
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #3
+ add r3, r6, #0
+ bl MOD09_0221A884
+ b _0221ABD8
+_0221ABC0:
+ add r0, r5, #0
+ mov r1, #0xc
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD09_0221A884
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD09_0221A884
+_0221ABD8:
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD09_0221A884
+ pop {r3, r4, r5, r6, r7, pc}
+_0221ABE6:
+ mov r1, #0xf
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD09_0221A884
+ add r0, r5, #0
+ mov r1, #0x10
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD09_0221A884
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221AC00: .word 0x0000114D
+
+ thumb_func_start MOD09_0221AC04
+MOD09_0221AC04: ; 0x0221AC04
+ push {r3, lr}
+ mov r1, #0x10
+ bl FUN_02016998
+ add r3, r0, #0
+ mov r2, #0x10
+ mov r1, #0
+_0221AC12:
+ strb r1, [r3]
+ add r3, r3, #1
+ sub r2, r2, #1
+ bne _0221AC12
+ pop {r3, pc}
+
+ thumb_func_start MOD09_0221AC1C
+MOD09_0221AC1C: ; 0x0221AC1C
+ ldr r3, _0221AC20 ; =0x02016A19
+ bx r3
+ .align 2, 0
+_0221AC20: .word 0x02016A19
+
+ thumb_func_start MOD09_0221AC24
+MOD09_0221AC24: ; 0x0221AC24
+ ldr r0, [r0]
+ bx lr
+
+ thumb_func_start MOD09_0221AC28
+MOD09_0221AC28: ; 0x0221AC28
+ ldrb r0, [r0, #8]
+ bx lr
+
+ thumb_func_start MOD09_0221AC2C
+MOD09_0221AC2C: ; 0x0221AC2C
+ strb r1, [r0, #8]
+ bx lr
+
+ thumb_func_start MOD09_0221AC30
+MOD09_0221AC30: ; 0x0221AC30
+ str r1, [r0]
+ bx lr
+
+ thumb_func_start MOD09_0221AC34
+MOD09_0221AC34: ; 0x0221AC34
+ push {r3, r4, lr}
+ sub sp, #4
+ strb r1, [r0, #9]
+ ldrb r1, [r0, #8]
+ cmp r1, #1
+ bne _0221AC58
+ ldrb r1, [r0, #9]
+ ldr r2, [r0, #4]
+ lsl r4, r1, #3
+ add r3, r2, r4
+ ldrb r1, [r3, #3]
+ str r1, [sp]
+ ldrb r1, [r2, r4]
+ ldrb r2, [r3, #2]
+ ldrb r3, [r3, #1]
+ ldr r0, [r0]
+ bl FUN_0225D5DC
+_0221AC58:
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD09_0221AC5C
+MOD09_0221AC5C: ; 0x0221AC5C
+ mov r1, #0
+ strb r1, [r0, #9]
+ mov r1, #0xff
+ strb r1, [r0, #0xa]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD09_0221AC68
+MOD09_0221AC68: ; 0x0221AC68
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ bl MOD09_0221AC5C
+ mov r0, #0
+ str r5, [r4, #4]
+ mvn r0, r0
+ str r0, [r4, #0xc]
+ ldrb r0, [r4, #8]
+ cmp r0, #1
+ bne _0221AC92
+ ldr r3, [r4, #4]
+ ldrb r0, [r3, #3]
+ str r0, [sp]
+ ldrb r1, [r3]
+ ldrb r2, [r3, #2]
+ ldrb r3, [r3, #1]
+ ldr r0, [r4]
+ bl FUN_0225D5DC
+_0221AC92:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD09_0221AC94
+MOD09_0221AC94: ; 0x0221AC94
+ str r1, [r0, #0xc]
+ bx lr
+
+ thumb_func_start MOD09_0221AC98
+MOD09_0221AC98: ; 0x0221AC98
+ push {r3, r4, lr}
+ sub sp, #4
+ ldrb r1, [r0, #8]
+ cmp r1, #1
+ bne _0221ACA8
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, pc}
+_0221ACA8:
+ ldr r1, _0221ACDC ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #0xf3
+ tst r1, r2
+ beq _0221ACD4
+ mov r1, #1
+ strb r1, [r0, #8]
+ ldrb r1, [r0, #9]
+ ldr r2, [r0, #4]
+ lsl r4, r1, #3
+ add r3, r2, r4
+ ldrb r1, [r3, #3]
+ str r1, [sp]
+ ldrb r1, [r2, r4]
+ ldrb r2, [r3, #2]
+ ldrb r3, [r3, #1]
+ ldr r0, [r0]
+ bl FUN_0225D5DC
+ ldr r0, _0221ACE0 ; =0x000005DC
+ bl FUN_020054C8
+_0221ACD4:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0221ACDC: .word 0x021C48B8
+_0221ACE0: .word 0x000005DC
+
+ thumb_func_start MOD09_0221ACE4
+MOD09_0221ACE4: ; 0x0221ACE4
+ cmp r1, #3
+ bhi _0221AD2C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221ACF4: ; jump table
+ .short _0221ACFC - _0221ACF4 - 2 ; case 0
+ .short _0221AD08 - _0221ACF4 - 2 ; case 1
+ .short _0221AD14 - _0221ACF4 - 2 ; case 2
+ .short _0221AD20 - _0221ACF4 - 2 ; case 3
+_0221ACFC:
+ ldrb r1, [r0, #5]
+ mov r0, #0x80
+ tst r0, r1
+ beq _0221AD2C
+ mov r0, #1
+ bx lr
+_0221AD08:
+ ldrb r1, [r0, #4]
+ mov r0, #0x80
+ tst r0, r1
+ beq _0221AD2C
+ mov r0, #1
+ bx lr
+_0221AD14:
+ ldrb r1, [r0, #7]
+ mov r0, #0x80
+ tst r0, r1
+ beq _0221AD2C
+ mov r0, #1
+ bx lr
+_0221AD20:
+ ldrb r1, [r0, #6]
+ mov r0, #0x80
+ tst r0, r1
+ beq _0221AD2C
+ mov r0, #1
+ bx lr
+_0221AD2C:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD09_0221AD30
+MOD09_0221AD30: ; 0x0221AD30
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ bl MOD09_0221AC98
+ cmp r0, #0
+ bne _0221AD46
+ mov r0, #0
+ add sp, #0x14
+ mvn r0, r0
+ pop {r4, r5, r6, r7, pc}
+_0221AD46:
+ ldr r0, _0221AEBC ; =0x021C48B8
+ mov r1, #0x40
+ ldr r0, [r0, #0x48]
+ tst r1, r0
+ beq _0221AD6A
+ mov r1, #0
+ str r1, [sp]
+ ldrb r0, [r5, #9]
+ add r2, r1, #0
+ add r3, r1, #0
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r0, [r5, #4]
+ bl FUN_0201C638
+ add r4, r0, #0
+ mov r6, #0
+ b _0221ADD2
+_0221AD6A:
+ mov r1, #0x80
+ tst r1, r0
+ beq _0221AD8C
+ mov r1, #0
+ str r1, [sp]
+ ldrb r0, [r5, #9]
+ add r2, r1, #0
+ add r3, r1, #0
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5, #4]
+ bl FUN_0201C638
+ add r4, r0, #0
+ mov r6, #1
+ b _0221ADD2
+_0221AD8C:
+ mov r1, #0x20
+ tst r1, r0
+ beq _0221ADAE
+ mov r1, #0
+ str r1, [sp]
+ ldrb r0, [r5, #9]
+ add r2, r1, #0
+ add r3, r1, #0
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ ldr r0, [r5, #4]
+ bl FUN_0201C638
+ add r4, r0, #0
+ mov r6, #2
+ b _0221ADD2
+_0221ADAE:
+ mov r1, #0x10
+ tst r0, r1
+ beq _0221ADD0
+ mov r1, #0
+ str r1, [sp]
+ ldrb r0, [r5, #9]
+ add r2, r1, #0
+ add r3, r1, #0
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ ldr r0, [r5, #4]
+ bl FUN_0201C638
+ add r4, r0, #0
+ mov r6, #3
+ b _0221ADD2
+_0221ADD0:
+ mov r4, #0xff
+_0221ADD2:
+ cmp r4, #0xff
+ beq _0221AE92
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r0, #0x80
+ add r1, r4, #0
+ tst r1, r0
+ beq _0221ADF2
+ ldrb r1, [r5, #0xa]
+ cmp r1, #0xff
+ beq _0221ADEC
+ add r4, r1, #0
+ b _0221ADF2
+_0221ADEC:
+ eor r0, r4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_0221ADF2:
+ mov r7, #0
+_0221ADF4:
+ mov r0, #1
+ ldr r1, [r5, #0xc]
+ lsl r0, r4
+ tst r0, r1
+ bne _0221AE2C
+ str r7, [sp, #0xc]
+ str r7, [sp]
+ str r4, [sp, #4]
+ str r6, [sp, #8]
+ ldr r0, [r5, #4]
+ add r1, r7, #0
+ add r2, r7, #0
+ add r3, r7, #0
+ bl FUN_0201C638
+ mov r1, #0x7f
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, r4
+ beq _0221AE24
+ ldrb r0, [r5, #9]
+ cmp r1, r0
+ bne _0221AE28
+_0221AE24:
+ ldrb r4, [r5, #9]
+ b _0221AE2C
+_0221AE28:
+ add r4, r1, #0
+ b _0221ADF4
+_0221AE2C:
+ ldrb r0, [r5, #9]
+ cmp r0, r4
+ beq _0221AE8A
+ ldr r0, [r5, #4]
+ lsl r7, r4, #3
+ add r1, sp, #0x10
+ add r2, sp, #0x10
+ add r0, r0, r7
+ add r1, #3
+ add r2, #2
+ bl FUN_0201C620
+ ldr r0, [r5, #4]
+ add r1, sp, #0x10
+ add r0, r0, r7
+ add r1, #1
+ add r2, sp, #0x10
+ bl FUN_0201C62C
+ ldr r0, [r5, #4]
+ add r1, r6, #0
+ add r0, r0, r7
+ bl MOD09_0221ACE4
+ cmp r0, #1
+ bne _0221AE6C
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ beq _0221AE6C
+ ldrb r0, [r5, #9]
+ strb r0, [r5, #0xa]
+ b _0221AE70
+_0221AE6C:
+ mov r0, #0xff
+ strb r0, [r5, #0xa]
+_0221AE70:
+ strb r4, [r5, #9]
+ add r3, sp, #0x10
+ ldrb r0, [r3]
+ str r0, [sp]
+ ldrb r1, [r3, #3]
+ ldrb r2, [r3, #1]
+ ldrb r3, [r3, #2]
+ ldr r0, [r5]
+ bl FUN_0225D5DC
+ ldr r0, _0221AEC0 ; =0x000005DC
+ bl FUN_020054C8
+_0221AE8A:
+ mov r0, #0
+ add sp, #0x14
+ mvn r0, r0
+ pop {r4, r5, r6, r7, pc}
+_0221AE92:
+ ldr r0, _0221AEBC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0221AEA2
+ add sp, #0x14
+ ldrb r0, [r5, #9]
+ pop {r4, r5, r6, r7, pc}
+_0221AEA2:
+ mov r0, #2
+ tst r1, r0
+ beq _0221AEB6
+ ldr r0, _0221AEC4 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #1
+ add sp, #0x14
+ mvn r0, r0
+ pop {r4, r5, r6, r7, pc}
+_0221AEB6:
+ sub r0, r0, #3
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221AEBC: .word 0x021C48B8
+_0221AEC0: .word 0x000005DC
+_0221AEC4: .word 0x000005DD
+
+ .section .data
+ ; 0x0221AEC8
+ .incbin "baserom.nds", 0x1AC068, 0x1138
diff --git a/arm9/modules/10/asm/module_10_dummy.s b/arm9/modules/10/asm/module_10_dummy.s
new file mode 100644
index 00000000..bae0dc2d
--- /dev/null
+++ b/arm9/modules/10/asm/module_10_dummy.s
@@ -0,0 +1,5 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .data
+ .balign 4, 0
+ .space 32
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s
new file mode 100644
index 00000000..7f7ae7cf
--- /dev/null
+++ b/arm9/modules/11/asm/module_11.s
@@ -0,0 +1,98637 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD11_0222D5C0
+MOD11_0222D5C0: ; 0x0222D5C0
+ push {r4, r5, r6, lr}
+ sub sp, #0x28
+ add r4, r1, #0
+ add r6, r0, #0
+ bl FUN_0200628C
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0xf
+ bhi _0222D6D2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222D5E0: ; jump table
+ .short _0222D600 - _0222D5E0 - 2 ; case 0
+ .short _0222D620 - _0222D5E0 - 2 ; case 1
+ .short _0222D65A - _0222D5E0 - 2 ; case 2
+ .short _0222D670 - _0222D5E0 - 2 ; case 3
+ .short _0222D686 - _0222D5E0 - 2 ; case 4
+ .short _0222D696 - _0222D5E0 - 2 ; case 5
+ .short _0222D6AC - _0222D5E0 - 2 ; case 6
+ .short _0222D6C8 - _0222D5E0 - 2 ; case 7
+ .short _0222D6DA - _0222D5E0 - 2 ; case 8
+ .short _0222D6EE - _0222D5E0 - 2 ; case 9
+ .short _0222D704 - _0222D5E0 - 2 ; case 10
+ .short _0222D720 - _0222D5E0 - 2 ; case 11
+ .short _0222D742 - _0222D5E0 - 2 ; case 12
+ .short _0222D752 - _0222D5E0 - 2 ; case 13
+ .short _0222D7C2 - _0222D5E0 - 2 ; case 14
+ .short _0222D7E4 - _0222D5E0 - 2 ; case 15
+_0222D600:
+ mov r2, #0xb
+ mov r0, #3
+ mov r1, #5
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ ldr r1, [r5]
+ mov r0, #4
+ tst r0, r1
+ beq _0222D61A
+ mov r0, #1
+ str r0, [r4]
+ b _0222D7EA
+_0222D61A:
+ mov r0, #3
+ str r0, [r4]
+ b _0222D7EA
+_0222D620:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0222F29C
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02033778
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222D648
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x14
+ bl FUN_0202A0E8
+ b _0222D654
+_0222D648:
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x19
+ bl FUN_0202A0E8
+_0222D654:
+ mov r0, #2
+ str r0, [r4]
+ b _0222D7EA
+_0222D65A:
+ add r0, r6, #0
+ bl MOD11_0222F4E4
+ cmp r0, #1
+ bne _0222D6D2
+ add r0, r6, #0
+ bl MOD11_0222F93C
+ mov r0, #3
+ str r0, [r4]
+ b _0222D7EA
+_0222D670:
+ add r0, r6, #0
+ bl MOD11_0222F988
+ cmp r0, #1
+ bne _0222D680
+ mov r0, #4
+ str r0, [r4]
+ b _0222D7EA
+_0222D680:
+ mov r0, #5
+ str r0, [r4]
+ b _0222D7EA
+_0222D686:
+ add r0, r6, #0
+ bl MOD11_0222FABC
+ cmp r0, #1
+ bne _0222D6D2
+ mov r0, #5
+ str r0, [r4]
+ b _0222D7EA
+_0222D696:
+ add r0, r6, #0
+ bl MOD11_0222FB04
+ cmp r0, #1
+ bne _0222D6A6
+ mov r0, #6
+ str r0, [r4]
+ b _0222D7EA
+_0222D6A6:
+ mov r0, #8
+ str r0, [r4]
+ b _0222D7EA
+_0222D6AC:
+ add r0, r6, #0
+ bl MOD11_0222FC38
+ cmp r0, #1
+ bne _0222D6D2
+ ldr r0, _0222D7F0 ; =0x00000007
+ bl FUN_02005F60
+ mov r0, #7
+ str r0, [r4]
+ mov r0, #0x3d
+ bl FUN_02031588
+ b _0222D7EA
+_0222D6C8:
+ mov r0, #0x3d
+ bl FUN_020315D8
+ cmp r0, #0
+ bne _0222D6D4
+_0222D6D2:
+ b _0222D7EA
+_0222D6D4:
+ mov r0, #8
+ str r0, [r4]
+ b _0222D7EA
+_0222D6DA:
+ ldr r0, _0222D7F4 ; =0x00000008
+ mov r1, #2
+ bl FUN_02005FDC
+ add r0, r6, #0
+ bl MOD11_0222DB50
+ mov r0, #9
+ str r0, [r4]
+ b _0222D7EA
+_0222D6EE:
+ add r0, r6, #0
+ bl MOD11_0222DF4C
+ cmp r0, #1
+ bne _0222D7EA
+ add r0, r6, #0
+ bl MOD11_0222DFA4
+ mov r0, #0xa
+ str r0, [r4]
+ b _0222D7EA
+_0222D704:
+ add r0, r6, #0
+ bl MOD11_0222FC80
+ cmp r0, #1
+ bne _0222D714
+ mov r0, #0xb
+ str r0, [r4]
+ b _0222D7EA
+_0222D714:
+ mov r0, #5
+ bl FUN_020168D0
+ mov r0, #0xd
+ str r0, [r4]
+ b _0222D7EA
+_0222D720:
+ add r0, r6, #0
+ bl MOD11_0222FE58
+ cmp r0, #1
+ bne _0222D7EA
+ ldr r0, _0222D7F0 ; =0x00000007
+ bl FUN_02005F60
+ mov r0, #5
+ bl FUN_020168D0
+ mov r0, #0x3e
+ bl FUN_02031588
+ mov r0, #0xc
+ str r0, [r4]
+ b _0222D7EA
+_0222D742:
+ mov r0, #0x3e
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0222D7EA
+ mov r0, #0xf
+ str r0, [r4]
+ b _0222D7EA
+_0222D752:
+ add r1, sp, #0x24
+ add r2, sp, #0x20
+ bl MOD11_02230D38
+ add r6, r0, #0
+ beq _0222D7BC
+ mov r0, #3
+ mov r1, #0x49
+ lsl r2, r0, #0x10
+ bl FUN_0201681C
+ ldr r0, [r5, #4]
+ ldr r1, [sp, #0x24]
+ bl FUN_0206B9B0
+ add r1, r0, #0
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ ldr r2, [r5, r0]
+ mov r3, #0x49
+ str r2, [sp]
+ add r2, r0, #0
+ sub r2, #0x58
+ ldr r2, [r5, r2]
+ str r2, [sp, #4]
+ add r2, r0, #0
+ sub r2, #0x60
+ ldr r2, [r5, r2]
+ str r2, [sp, #8]
+ add r2, r0, #0
+ sub r2, #0x24
+ ldr r2, [r5, r2]
+ sub r0, #0x40
+ str r2, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r2, r6, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x20]
+ str r0, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ str r3, [sp, #0x1c]
+ add r3, #0xe7
+ ldr r0, [r5, #4]
+ ldr r3, [r5, r3]
+ bl FUN_0206C700
+ mov r1, #0x66
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0xe
+ str r0, [r4]
+ b _0222D7EA
+_0222D7BC:
+ mov r0, #0xf
+ str r0, [r4]
+ b _0222D7EA
+_0222D7C2:
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r5, [r5, r0]
+ add r0, r5, #0
+ bl FUN_0206C91C
+ cmp r0, #1
+ bne _0222D7EA
+ add r0, r5, #0
+ bl FUN_0206C92C
+ mov r0, #0x49
+ bl FUN_020168D0
+ mov r0, #0xd
+ str r0, [r4]
+ b _0222D7EA
+_0222D7E4:
+ add sp, #0x28
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0222D7EA:
+ mov r0, #0
+ add sp, #0x28
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222D7F0: .word 0x00000007
+_0222D7F4: .word 0x00000008
+
+ thumb_func_start MOD11_0222D7F8
+MOD11_0222D7F8: ; 0x0222D7F8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_02258658
+ ldr r0, [r4, #4]
+ bl MOD11_022584AC
+ ldr r1, _0222D834 ; =0x000023FB
+ mov r0, #4
+ ldrb r2, [r4, r1]
+ orr r0, r2
+ strb r0, [r4, r1]
+ mov r0, #2
+ bl FUN_02002CF8
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD11_02231338
+ ldr r0, _0222D838 ; =0x00000008
+ bl FUN_02005F60
+ ldr r0, _0222D83C ; =0x00000009
+ mov r1, #2
+ bl FUN_02005FDC
+ pop {r4, pc}
+ .align 2, 0
+_0222D834: .word 0x000023FB
+_0222D838: .word 0x00000008
+_0222D83C: .word 0x00000009
+
+ thumb_func_start MOD11_0222D840
+MOD11_0222D840: ; 0x0222D840
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_02258658
+ ldr r0, [r4, #8]
+ bl FUN_02019178
+ ldr r0, [r4, #4]
+ bl MOD11_0222E4E8
+ add r0, r4, #0
+ bl MOD11_0222E51C
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0x90
+ add r1, #0x94
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl FUN_0200C398
+ add r4, #0x90
+ ldr r0, [r4]
+ bl FUN_0200BD04
+ bl FUN_0201C29C
+ mov r0, #2
+ bl FUN_02002CF8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0222D88C
+MOD11_0222D88C: ; 0x0222D88C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, _0222D938 ; =0x00000009
+ bl FUN_02005F60
+ ldr r0, _0222D93C ; =0x00000008
+ mov r1, #2
+ bl FUN_02005FDC
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_02231338
+ 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 FUN_02031190
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223021C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_022584D4
+ mov r1, #0x67
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #2
+ mov r1, #5
+ bl FUN_02002C50
+ ldr r1, _0222D940 ; =0x000023FB
+ mov r0, #2
+ ldrb r2, [r4, r1]
+ orr r0, r2
+ strb r0, [r4, r1]
+ ldr r0, [r4, #4]
+ bl MOD11_02258450
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_022586BC
+ mov r0, #0x67
+ lsl r0, r0, #2
+ mov r1, #0
+ ldr r0, [r4, r0]
+ mov r2, #1
+ add r3, r1, #0
+ bl MOD11_02258820
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_02258958
+ mov r0, #1
+ bl FUN_02002840
+ add r0, r4, #0
+ bl MOD11_0222FE94
+ add r4, #0x90
+ ldr r0, [r4]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222D938: .word 0x00000009
+_0222D93C: .word 0x00000008
+_0222D940: .word 0x000023FB
+
+ thumb_func_start MOD11_0222D944
+MOD11_0222D944: ; 0x0222D944
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl FUN_02019178
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD11_02231410
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0222D980
+MOD11_0222D980: ; 0x0222D980
+ push {r4, r5, r6, lr}
+ sub sp, #0x68
+ ldr r1, _0222DB38 ; =0x000023FB
+ add r5, r0, #0
+ ldrb r2, [r5, r1]
+ mov r0, #1
+ ldr r4, _0222DB3C ; =0x0225DAE0
+ bic r2, r0
+ mov r0, #1
+ orr r0, r2
+ strb r0, [r5, r1]
+ add r3, sp, #0x14
+ mov r2, #0xa
+_0222D99A:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222D99A
+ ldr r0, [r4]
+ mov r1, #1
+ str r0, [r3]
+ ldr r0, [r5, #4]
+ add r2, sp, #0x14
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_02018744
+ ldr r0, [r5, #4]
+ mov r1, #2
+ add r2, sp, #0x30
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ mov r1, #2
+ bl FUN_02018744
+ ldr r0, [r5, #4]
+ mov r1, #3
+ add r2, sp, #0x4c
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ mov r1, #3
+ bl FUN_02018744
+ ldr r1, _0222DB40 ; =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
+ add r0, r5, #0
+ bl MOD11_02230E44
+ add r4, r0, #0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r1, #1
+ ldr r0, [r5, #4]
+ add r2, r1, #0
+ mov r3, #0xa
+ bl FUN_0200D274
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ mov r1, #9
+ lsl r1, r1, #0xa
+ ldr r1, [r5, r1]
+ ldr r2, [r5, #4]
+ mov r0, #7
+ add r1, r1, #3
+ mov r3, #3
+ bl FUN_0200687C
+ add r0, r5, #0
+ bl MOD11_02230C68
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r3, #9
+ str r0, [sp, #8]
+ lsl r3, r3, #0xa
+ ldr r6, [r5, r3]
+ ldr r0, [r5, #0x28]
+ lsl r3, r6, #1
+ add r3, r6, r3
+ add r3, #0x9e
+ add r2, r3, r2
+ mov r1, #7
+ mov r3, #5
+ bl FUN_020030E8
+ 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, #0xa0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x26
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xb0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #7
+ mov r1, #2
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0222DB44 ; =0xFFFF1FFF
+ ldr r3, _0222DB48 ; =0x04001000
+ and r2, r1
+ str r2, [r0]
+ ldr r2, [r3]
+ and r1, r2
+ add r2, r0, #0
+ str r1, [r3]
+ add r2, #0x48
+ ldrh r3, [r2]
+ mov r1, #0x3f
+ add r0, #0x4a
+ bic r3, r1
+ strh r3, [r2]
+ ldrh r2, [r0]
+ bic r2, r1
+ strh r2, [r0]
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, _0222DB4C ; =MOD11_0222F01C
+ add r1, r5, #0
+ bl FUN_02015F10
+ ldr r0, _0222DB38 ; =0x000023FB
+ mov r3, #2
+ ldrb r1, [r5, r0]
+ mov r2, #1
+ orr r1, r3
+ strb r1, [r5, r0]
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ ldr r1, [r5, #8]
+ bl FUN_02019064
+ ldr r0, [r5, #8]
+ mov r1, #0xff
+ bl FUN_02019620
+ ldr r0, [r5, #8]
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ add r0, r5, #0
+ bl MOD11_0222FE94
+ add sp, #0x68
+ pop {r4, r5, r6, pc}
+ nop
+_0222DB38: .word 0x000023FB
+_0222DB3C: .word 0x0225DAE0
+_0222DB40: .word 0x04000008
+_0222DB44: .word 0xFFFF1FFF
+_0222DB48: .word 0x04001000
+_0222DB4C: .word MOD11_0222F01C
+
+ thumb_func_start MOD11_0222DB50
+MOD11_0222DB50: ; 0x0222DB50
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ bl FUN_02006278
+ add r4, r0, #0
+ bl FUN_020222F0
+ add r5, r0, #0
+ bl FUN_020222E8
+ add r1, r0, #0
+ mov r0, #0
+ add r2, r5, #0
+ blx 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 FUN_0201B9D4
+ ldr r1, _0222DF0C ; =0x00002430
+ str r0, [r4, r1]
+ add r0, sp, #0x20
+ add r1, sp, #0x14
+ bl FUN_0201265C
+ ldr r0, _0222DF10 ; =0x021C48B8
+ ldr r6, [sp, #0x24]
+ ldr r5, [r0, #0x2c]
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ lsl r6, r6, #8
+ add r0, r1, r0
+ lsl r3, r0, #0x18
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x20]
+ lsl r2, r0, #0x10
+ ldr r0, [sp, #0x28]
+ mul r6, r0
+ lsl r0, r6, #0x10
+ add r0, r1, r0
+ add r0, r2, r0
+ add r0, r3, r0
+ add r0, r5, r0
+ bl FUN_0201B9E0
+ bl MOD11_0222EF30
+ str r0, [r4]
+ bl FUN_02015F1C
+ mov r0, #2
+ mov r1, #5
+ bl FUN_02002C50
+ mov r0, #0xe
+ mov r1, #1
+ mov r2, #0xf
+ mov r3, #5
+ bl FUN_0200B870
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r2, [r4, r1]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ mov r0, #5
+ bl FUN_02002FD0
+ str r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_020038F0
+ mov r2, #2
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ lsl r2, r2, #8
+ mov r3, #5
+ bl FUN_02003008
+ mov r1, #1
+ ldr r0, [r4, #0x28]
+ lsl r2, r1, #9
+ mov r3, #5
+ bl FUN_02003008
+ mov r2, #7
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ lsl r2, r2, #6
+ mov r3, #5
+ bl FUN_02003008
+ mov r2, #2
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ lsl r2, r2, #8
+ mov r3, #5
+ bl FUN_02003008
+ mov r0, #5
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ mov r0, #5
+ mov r1, #3
+ bl FUN_02018FF4
+ mov r7, #0x73
+ str r0, [r4, #8]
+ mov r6, #0
+ add r5, r4, #0
+ lsl r7, r7, #2
+_0222DC42:
+ mov r1, #0x32
+ mov r0, #5
+ lsl r1, r1, #6
+ bl FUN_02016998
+ str r0, [r5, r7]
+ add r6, r6, #1
+ add r5, #0x10
+ cmp r6, #4
+ blt _0222DC42
+ mov r0, #0x40
+ mov r1, #5
+ bl FUN_0201C24C
+ bl FUN_02031190
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223021C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_022584D4
+ mov r1, #0x67
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r1, [r4, #4]
+ add r0, r4, #0
+ bl MOD11_0222E264
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #8]
+ mov r2, #1
+ mov r3, #2
+ bl FUN_02019064
+ ldr r0, [r4, #8]
+ mov r1, #0xff
+ bl FUN_02019620
+ ldr r0, [r4, #8]
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r0, #5
+ bl FUN_0200BB14
+ add r1, r4, #0
+ add r1, #0x90
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ ldr r1, _0222DF14 ; =0x0225DA20
+ ldr r2, _0222DF18 ; =0x0225D9D8
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ ldr r1, _0222DF1C ; =0x00100010
+ mov r0, #1
+ bl FUN_02008D44
+ mov r0, #1
+ bl FUN_02008DDC
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ add r1, r4, #0
+ add r1, #0x94
+ str r0, [r1]
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0x90
+ add r1, #0x94
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x80
+ bl FUN_0200BBF0
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0x90
+ add r1, #0x94
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, _0222DF20 ; =0x0225D9EC
+ bl FUN_0200BF60
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_022586BC
+ mov r0, #0x67
+ lsl r0, r0, #2
+ mov r1, #0
+ ldr r0, [r4, r0]
+ mov r2, #1
+ add r3, r1, #0
+ bl MOD11_02258820
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_02258958
+ mov r0, #5
+ bl FUN_02006D98
+ add r1, r4, #0
+ add r1, #0x88
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0
+ mov r2, #0xc0
+ bl FUN_020081B4
+ add r0, r4, #0
+ bl MOD11_02231390
+ bl MOD11_0222EFDC
+ mov r0, #5
+ bl FUN_02211F5C
+ add r1, r4, #0
+ add r1, #0x8c
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD11_0222E470
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ mov r2, #0x51
+ mov r0, #1
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #5
+ bl FUN_0200A86C
+ str r0, [r4, #0xc]
+ mov r0, #1
+ mov r1, #0x1a
+ mov r2, #0
+ mov r3, #5
+ bl FUN_0200A86C
+ str r0, [r4, #0x10]
+ mov r0, #5
+ bl FUN_0200AA80
+ str r0, [r4, #0x14]
+ mov r0, #5
+ lsl r0, r0, #6
+ mov r1, #5
+ bl FUN_020219F4
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020031FC
+ ldr r1, _0222DF24 ; =0x00002224
+ mov r2, #0xe0
+ add r1, r4, r1
+ blx 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
+ add r0, r4, #0
+ bl MOD11_02230C68
+ mov r1, #0
+ lsl r5, r0, #2
+ mov r3, #9
+ str r1, [sp]
+ mov r0, #0x70
+ str r0, [sp, #4]
+ lsl r3, r3, #0xa
+ ldr r3, [r4, r3]
+ mov r6, #0xc
+ mul r6, r3
+ ldr r3, _0222DF2C ; =0x0225DB88
+ ldr r0, [r4, #0x28]
+ add r3, r3, r6
+ ldr r3, [r5, r3]
+ mov r2, #2
+ lsl r3, r3, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02003914
+ mov r0, #0xc0
+ str r0, [sp]
+ add r0, #0x40
+ mov r3, #9
+ str r0, [sp, #4]
+ lsl r3, r3, #0xa
+ ldr r3, [r4, r3]
+ mov r6, #0xc
+ mul r6, r3
+ ldr r3, _0222DF2C ; =0x0225DB88
+ ldr r0, [r4, #0x28]
+ add r3, r3, r6
+ ldr r3, [r5, r3]
+ mov r1, #0
+ lsl r3, r3, #0x10
+ mov r2, #2
+ lsr r3, r3, #0x10
+ bl FUN_02003914
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xdf
+ mov r3, #9
+ str r0, [sp, #4]
+ lsl r3, r3, #0xa
+ mov r1, #2
+ ldr r3, [r4, r3]
+ mov r6, #0xc
+ mul r6, r3
+ ldr r3, _0222DF2C ; =0x0225DB88
+ ldr r0, [r4, #0x28]
+ add r3, r3, r6
+ ldr r3, [r5, r3]
+ add r2, r1, #0
+ lsl r3, r3, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02003914
+ mov r1, #0
+ mov r0, #0xa0
+ str r0, [sp]
+ mov r0, #0xc0
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x28]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02003914
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x28]
+ ldr r3, _0222DF30 ; =0x0000FFFF
+ mov r1, #1
+ bl FUN_02003914
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x28]
+ ldr r3, _0222DF30 ; =0x0000FFFF
+ mov r1, #3
+ bl FUN_02003914
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ mov r2, #0xb
+ mov r3, #5
+ bl FUN_020142EC
+ mov r1, #0x1b
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_020143A8
+ ldr r0, _0222DF34 ; =MOD11_0222F100
+ ldr r2, _0222DF38 ; =0x0000EA60
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x1c]
+ ldr r0, _0222DF3C ; =MOD11_0222F144
+ ldr r2, _0222DF40 ; =0x0000C350
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x20]
+ mov r2, #0x4b
+ ldr r0, _0222DF44 ; =MOD11_0222F254
+ add r1, r4, #0
+ lsl r2, r2, #4
+ bl FUN_0200CA60
+ str r0, [r4, #0x24]
+ mov r1, #0x32
+ ldr r0, _0222DF48 ; =0x00002434
+ mvn r1, r1
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD11_0222FE94
+ add r0, r4, #0
+ bl MOD11_02230218
+ bl FUN_0206F1C0
+ mov r0, #5
+ mov r1, #4
+ mov r2, #0
+ bl FUN_02014BF4
+ mov r1, #0x71
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #2
+ mov r1, #5
+ bl FUN_0201C328
+ mov r1, #0x72
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222DF0C: .word 0x00002430
+_0222DF10: .word 0x021C48B8
+_0222DF14: .word 0x0225DA20
+_0222DF18: .word 0x0225D9D8
+_0222DF1C: .word 0x00100010
+_0222DF20: .word 0x0225D9EC
+_0222DF24: .word 0x00002224
+_0222DF28: .word 0x00002304
+_0222DF2C: .word 0x0225DB88
+_0222DF30: .word 0x0000FFFF
+_0222DF34: .word MOD11_0222F100
+_0222DF38: .word 0x0000EA60
+_0222DF3C: .word MOD11_0222F144
+_0222DF40: .word 0x0000C350
+_0222DF44: .word MOD11_0222F254
+_0222DF48: .word 0x00002434
+
+ thumb_func_start MOD11_0222DF4C
+MOD11_0222DF4C: ; 0x0222DF4C
+ push {r4, r5, r6, lr}
+ bl FUN_02006278
+ ldr r1, _0222DF9C ; =0x000023F8
+ add r4, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ beq _0222DF7A
+ ldr r2, [r4, #0x2c]
+ mov r1, #4
+ tst r1, r2
+ ldr r1, [r4, #0x30]
+ beq _0222DF6C
+ bl MOD11_0223D238
+ b _0222DF7A
+_0222DF6C:
+ bl MOD11_0223D238
+ ldr r1, _0222DFA0 ; =0x000023FA
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD11_02254820
+_0222DF7A:
+ ldr r0, [r4, #0x44]
+ mov r6, #0
+ cmp r0, #0
+ ble _0222DF96
+ add r5, r4, #0
+_0222DF84:
+ ldr r1, [r5, #0x34]
+ add r0, r4, #0
+ bl MOD11_0224CB38
+ ldr r0, [r4, #0x44]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0222DF84
+_0222DF96:
+ ldr r0, _0222DFA0 ; =0x000023FA
+ ldrb r0, [r4, r0]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222DF9C: .word 0x000023F8
+_0222DFA0: .word 0x000023FA
+
+ thumb_func_start MOD11_0222DFA4
+MOD11_0222DFA4: ; 0x0222DFA4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r7, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ add r0, r4, #0
+ bl MOD11_02230EC8
+ ldr r0, _0222E248 ; =0x0000241C
+ ldrb r0, [r4, r0]
+ cmp r0, #4
+ beq _0222DFE4
+ ldr r0, [r4, #0x6c]
+ mov r1, #0
+ bl FUN_0206B9B0
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_02230FA8
+_0222DFE4:
+ mov r0, #0
+ str r0, [sp]
+ add r6, r7, #0
+ add r5, r4, #0
+_0222DFEC:
+ ldr r0, [r5, #0x68]
+ ldr r1, [r6, #4]
+ bl FUN_0206BAD0
+ ldr r0, [r5, #0x68]
+ bl FUN_02016A18
+ add r1, r6, #0
+ add r1, #0xf8
+ ldr r0, [r5, #0x48]
+ ldr r1, [r1]
+ bl FUN_0202393C
+ ldr r0, [r5, #0x48]
+ bl FUN_02016A18
+ ldr r0, [sp]
+ add r6, r6, #4
+ add r0, r0, #1
+ add r5, r5, #4
+ str r0, [sp]
+ cmp r0, #4
+ blt _0222DFEC
+ mov r0, #0x1b
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_020143D0
+ mov r1, #0x42
+ lsl r1, r1, #2
+ ldr r0, [r4, #0x58]
+ ldr r1, [r7, r1]
+ bl FUN_0206EBB4
+ ldr r0, [r4, #0x58]
+ bl FUN_02016A18
+ mov r1, #0x11
+ lsl r1, r1, #4
+ ldr r0, [r4, #0x60]
+ ldr r1, [r7, r1]
+ bl FUN_02023D80
+ ldr r0, [r4, #0x60]
+ bl FUN_02016A18
+ mov r0, #0x45
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ str r1, [r7, r0]
+ add r1, r0, #0
+ ldr r2, [r4, #0x5c]
+ sub r1, #8
+ str r2, [r7, r1]
+ add r1, r4, #0
+ add r1, #0x98
+ ldr r2, [r1]
+ add r1, r0, #0
+ add r1, #0x14
+ str r2, [r7, r1]
+ add r1, r4, #0
+ add r1, #0x9c
+ ldr r2, [r1]
+ add r1, r0, #0
+ add r1, #0x20
+ str r2, [r7, r1]
+ add r1, r0, #0
+ ldr r2, _0222E24C ; =0x00002410
+ add r1, #0x7c
+ ldr r3, [r4, r2]
+ add r0, #0x5c
+ str r3, [r7, r1]
+ add r1, r2, #0
+ add r1, #0xc
+ ldrb r3, [r4, r1]
+ mov r1, #0x3f
+ add r2, #0x28
+ and r1, r3
+ str r1, [r7, #0x14]
+ ldr r1, [r4, r2]
+ mov r2, #4
+ str r1, [r7, r0]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r3, #0
+ bl MOD11_0224C474
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #3
+ mov r3, #0
+ bl MOD11_0224C474
+ mov r1, #0x4e
+ lsl r1, r1, #2
+ ldr r2, [r7, r1]
+ mov r3, #0
+ add r0, r2, r0
+ str r0, [r7, r1]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #6
+ bl MOD11_0224C474
+ add r5, r0, #0
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #6
+ mov r3, #2
+ bl MOD11_0224C474
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ ldr r2, [r7, r1]
+ add r0, r5, r0
+ add r0, r2, r0
+ str r0, [r7, r1]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #7
+ mov r3, #0
+ bl MOD11_0224C474
+ add r5, r0, #0
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #7
+ mov r3, #2
+ bl MOD11_0224C474
+ mov r1, #5
+ lsl r1, r1, #6
+ ldr r2, [r7, r1]
+ add r0, r5, r0
+ add r0, r2, r0
+ str r0, [r7, r1]
+ add r7, r1, #0
+ mov r6, #0
+ add r5, r4, #0
+ add r7, #0x8c
+_0222E10A:
+ ldr r0, [r5, r7]
+ bl FUN_02016A18
+ add r6, r6, #1
+ add r5, #0x10
+ cmp r6, #4
+ blt _0222E10A
+ ldr r0, [r4, #0x18]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_02003038
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_02003038
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_02003038
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ bl FUN_02003038
+ ldr r0, [r4, #0x28]
+ bl FUN_02002FEC
+ ldr r0, [r4, #0xc]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x14]
+ bl FUN_0200AB18
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02014C28
+ bl FUN_02012EAC
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ bl FUN_02212024
+ ldr r0, [r4, #0x30]
+ bl MOD11_0223D284
+ ldr r0, [r4, #0x44]
+ mov r6, #0
+ cmp r0, #0
+ ble _0222E194
+ ldr r7, _0222E250 ; =0x000023F9
+ add r5, r4, #0
+_0222E180:
+ ldrb r2, [r4, r7]
+ ldr r1, [r5, #0x34]
+ add r0, r4, #0
+ bl MOD11_0224CB54
+ ldr r0, [r4, #0x44]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0222E180
+_0222E194:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_020072E8
+ ldr r0, _0222E250 ; =0x000023F9
+ ldrb r0, [r4, r0]
+ cmp r0, #2
+ beq _0222E1AC
+ add r0, r4, #0
+ bl MOD11_0222D840
+_0222E1AC:
+ mov r0, #0
+ bl FUN_02002B60
+ mov r0, #0
+ bl FUN_02002B7C
+ mov r0, #0
+ bl FUN_02002BB8
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl FUN_020191A4
+ ldr r0, [r4, #4]
+ bl FUN_02016A18
+ mov r0, #0x87
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0x22
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200B990
+ mov r0, #2
+ bl FUN_02002CF8
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x20]
+ bl FUN_0200CAB4
+ bl FUN_0201CD04
+ ldr r0, [r4]
+ bl MOD11_0222EFD4
+ ldr r0, _0222E254 ; =0x00002430
+ ldr r0, [r4, r0]
+ bl FUN_0201B9E0
+ add r0, r4, #0
+ bl MOD11_02231474
+ cmp r0, #0
+ beq _0222E220
+ ldr r0, _0222E258 ; =0x00000704
+ mov r1, #0
+ bl FUN_020054F0
+_0222E220:
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0201C350
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, _0222E25C ; =0x00000008
+ bl FUN_02005F60
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222E244
+ ldr r0, _0222E260 ; =0x00000010
+ bl FUN_02005F60
+_0222E244:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E248: .word 0x0000241C
+_0222E24C: .word 0x00002410
+_0222E250: .word 0x000023F9
+_0222E254: .word 0x00002430
+_0222E258: .word 0x00000704
+_0222E25C: .word 0x00000008
+_0222E260: .word 0x00000010
+
+ thumb_func_start MOD11_0222E264
+MOD11_0222E264: ; 0x0222E264
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x9c
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0201E6D8
+ mov r0, #0
+ bl FUN_0200E394
+ mov r0, #1
+ bl FUN_0200E394
+ ldr r6, _0222E450 ; =0x0225DA68
+ add r3, sp, #0x20
+ mov r2, #5
+_0222E282:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E282
+ add r0, sp, #0x20
+ bl FUN_0201E66C
+ mov r1, #6
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x12
+ blx MIi_CpuClear32
+ mov r1, #0x62
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ blx MIi_CpuClear32
+ mov r1, #0x19
+ mov r2, #1
+ mov r0, #0
+ lsl r1, r1, #0x16
+ lsl r2, r2, #0x12
+ blx MIi_CpuClear32
+ mov r1, #0x66
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ blx MIi_CpuClear32
+ ldr r6, _0222E454 ; =0x0225D9A8
+ add r3, sp, #0x10
+ add r2, r3, #0
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r1, _0222E458 ; =0x000023FB
+ mov r0, #1
+ ldrb r2, [r5, r1]
+ ldr r6, _0222E45C ; =0x0225DB34
+ add r3, sp, #0x48
+ bic r2, r0
+ mov r0, #1
+ orr r0, r2
+ strb r0, [r5, r1]
+ mov r2, #0xa
+_0222E2F0:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E2F0
+ ldr r0, [r6]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ add r2, sp, #0x48
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #2
+ add r2, sp, #0x64
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #3
+ add r2, sp, #0x80
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ ldr r1, _0222E460 ; =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
+ add r0, r4, #0
+ bl MOD11_02258450
+ add r0, r5, #0
+ bl MOD11_02230E44
+ add r7, r0, #0
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #1
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #0xa
+ bl FUN_0200D274
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ mov r1, #9
+ str r0, [sp, #0xc]
+ lsl r1, r1, #0xa
+ ldr r1, [r5, r1]
+ mov r0, #7
+ add r1, r1, #3
+ add r2, r4, #0
+ mov r3, #3
+ bl FUN_0200687C
+ add r0, r5, #0
+ bl MOD11_02230C68
+ add r6, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r2, #9
+ str r0, [sp, #8]
+ lsl r2, r2, #0xa
+ ldr r3, [r5, r2]
+ ldr r0, [r5, #0x28]
+ lsl r2, r3, #1
+ add r2, r3, r2
+ add r2, #0x9e
+ mov r1, #7
+ add r2, r2, r6
+ mov r3, #5
+ bl FUN_020030E8
+ add r0, r7, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xa0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x26
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xb0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ mov r0, #7
+ mov r1, #2
+ add r2, r4, #0
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0222E464 ; =0xFFFF1FFF
+ ldr r3, _0222E468 ; =0x04001000
+ and r2, r1
+ str r2, [r0]
+ ldr r2, [r3]
+ and r1, r2
+ add r2, r0, #0
+ str r1, [r3]
+ add r2, #0x48
+ ldrh r3, [r2]
+ mov r1, #0x3f
+ add r0, #0x4a
+ bic r3, r1
+ strh r3, [r2]
+ ldrh r2, [r0]
+ bic r2, r1
+ strh r2, [r0]
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, _0222E46C ; =MOD11_0222F01C
+ add r1, r5, #0
+ bl FUN_02015F10
+ add sp, #0x9c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E450: .word 0x0225DA68
+_0222E454: .word 0x0225D9A8
+_0222E458: .word 0x000023FB
+_0222E45C: .word 0x0225DB34
+_0222E460: .word 0x04000008
+_0222E464: .word 0xFFFF1FFF
+_0222E468: .word 0x04001000
+_0222E46C: .word MOD11_0222F01C
+
+ thumb_func_start MOD11_0222E470
+MOD11_0222E470: ; 0x0222E470
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl MOD11_02230294
+ add r4, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #0
+ add r3, r4, #0
+ bl MOD11_022583D8
+ mov r0, #0x63
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #1
+ add r3, r4, #0
+ bl MOD11_022583D8
+ add r0, r5, #0
+ bl MOD11_0222FF78
+ str r0, [sp]
+ ldr r0, [r5, #0x44]
+ mov r4, #0
+ cmp r0, #0
+ ble _0222E4E2
+ add r6, r5, #0
+_0222E4AC:
+ ldr r1, [sp]
+ add r0, r5, #0
+ mov r2, #2
+ add r3, r4, #0
+ bl MOD11_0224C474
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_02230014
+ mov r1, #0x9a
+ mov r2, #0
+ bl FUN_020671BC
+ add r2, r0, #0
+ ldr r1, [r6, #0x34]
+ add r0, r5, #0
+ add r3, r7, #0
+ bl MOD11_0224CA94
+ ldr r0, [r5, #0x44]
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r4, r0
+ blt _0222E4AC
+_0222E4E2:
+ bl FUN_02033E74
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0222E4E8
+MOD11_0222E4E8: ; 0x0222E4E8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD11_022584AC
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0222E51C
+MOD11_0222E51C: ; 0x0222E51C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0222E520
+MOD11_0222E520: ; 0x0222E520
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r4, r0, #0
+ ldr r0, [r1]
+ str r1, [sp, #4]
+ str r0, [r4, #0x2c]
+ mov r7, #0
+ add r6, r4, #0
+ add r5, r1, #0
+_0222E532:
+ mov r0, #5
+ bl FUN_02023928
+ add r1, r0, #0
+ add r0, r5, #0
+ str r1, [r6, #0x48]
+ add r0, #0xf8
+ ldr r0, [r0]
+ bl FUN_0202393C
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r7, r7, #1
+ str r0, [r6, #0x78]
+ add r6, r6, #4
+ add r5, r5, #4
+ cmp r7, #4
+ blt _0222E532
+ mov r0, #5
+ bl FUN_0206EB88
+ str r0, [r4, #0x58]
+ mov r1, #0x42
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ ldr r1, [r4, #0x58]
+ bl FUN_0206EBB4
+ mov r0, #5
+ bl FUN_02023D6C
+ str r0, [r4, #0x60]
+ mov r1, #0x11
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ ldr r1, [r4, #0x60]
+ bl FUN_02023D80
+ mov r1, #0x45
+ lsl r1, r1, #2
+ ldr r0, [sp, #4]
+ add r2, r1, #0
+ ldr r0, [r0, r1]
+ add r3, r1, #0
+ str r0, [r4, #0x64]
+ ldr r0, [sp, #4]
+ add r2, #0x1c
+ ldr r2, [r0, r2]
+ add r0, r1, #0
+ add r0, #0xa0
+ str r2, [r4, r0]
+ add r2, r1, #0
+ ldr r0, [sp, #4]
+ add r2, #0x38
+ ldr r2, [r0, r2]
+ add r0, r1, #0
+ add r0, #0xa4
+ str r2, [r4, r0]
+ add r2, r1, #0
+ ldr r0, [sp, #4]
+ sub r2, #8
+ ldr r0, [r0, r2]
+ add r2, r1, #0
+ str r0, [r4, #0x5c]
+ ldr r0, [sp, #4]
+ add r2, #0x14
+ ldr r2, [r0, r2]
+ add r0, r4, #0
+ add r0, #0x98
+ str r2, [r0]
+ add r2, r1, #0
+ ldr r0, [sp, #4]
+ add r2, #0x50
+ ldr r2, [r0, r2]
+ ldr r0, _0222E8BC ; =0x00002420
+ add r3, #0x20
+ str r2, [r4, r0]
+ ldr r2, [sp, #4]
+ ldr r3, [r2, r3]
+ add r2, r4, #0
+ add r2, #0x9c
+ str r3, [r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x7c
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x10
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x40
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x24
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x3c
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x20
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x44
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x1c
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x4c
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x14
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x78
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x18
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x80
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #8
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x54
+ ldr r3, [r2, r3]
+ add r2, r0, #4
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x58
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ add r2, #0xc
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x60
+ ldr r2, [r2, r3]
+ add r0, #8
+ str r2, [r4, r0]
+ ldr r0, [sp, #4]
+ add r1, #0x30
+ ldr r0, [r0, r1]
+ mov r1, #0x86
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [sp, #4]
+ sub r1, #0xd4
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _0222E67E
+ bl ErrorHandling
+_0222E67E:
+ ldr r5, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r4, [sp, #0x30]
+ add r6, r5, #0
+ add r7, r4, #0
+_0222E68A:
+ ldr r0, [sp, #0x30]
+ ldr r1, [r5, #0x18]
+ add r0, #0xa0
+ strh r1, [r0]
+ add r3, r6, #0
+ add r2, r7, #0
+ mov r0, #6
+ add r3, #0x28
+ add r2, #0xac
+ mov ip, r0
+_0222E69E:
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ mov r0, ip
+ sub r0, r0, #1
+ mov ip, r0
+ bne _0222E69E
+ ldr r0, [r3]
+ add r5, r5, #4
+ str r0, [r2]
+ ldr r0, [sp, #0x30]
+ add r6, #0x34
+ add r0, r0, #2
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #8]
+ add r7, #0x34
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #4
+ blt _0222E68A
+ add r0, r4, #0
+ bl MOD11_0223D1DC
+ str r0, [r4, #0x30]
+ mov r6, #0
+ add r5, r4, #0
+ mov r7, #5
+_0222E6D2:
+ add r0, r7, #0
+ bl FUN_0206B8AC
+ str r0, [r5, #0x68]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0222E6D2
+ ldr r0, [r4, #0x2c]
+ mov r1, #4
+ tst r1, r0
+ bne _0222E6EC
+ b _0222EA8A
+_0222E6EC:
+ add r0, r4, #0
+ bl FUN_0206BF90
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x34]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0222FEC0
+ ldr r1, [r4, #0x2c]
+ mov r0, #0x80
+ tst r0, r1
+ beq _0222E7D0
+ ldr r6, _0222E8C0 ; =0x0225DC18
+ mov r5, #0
+ add r7, r4, #0
+_0222E712:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ str r0, [r7, #0x34]
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222E712
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222E734:
+ ldr r1, [r5, #0x34]
+ add r0, r4, #0
+ bl MOD11_0225377C
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222E734
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222E7C6
+ add r7, r4, #0
+_0222E760:
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222E7AA
+_0222E76C:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl FUN_0206B9B0
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0222E79E
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222E79E
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222E7AA
+_0222E79E:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0222E76C
+_0222E7AA:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0xc]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0xc]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #0xc]
+ cmp r0, r1
+ blt _0222E760
+_0222E7C6:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ b _0222EA80
+_0222E7D0:
+ mov r0, #8
+ tst r0, r1
+ beq _0222E8AC
+ mov r5, #0
+ add r6, r4, #0
+_0222E7DA:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldr r0, [sp, #0x34]
+ bl FUN_020313CC
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_020313CC
+ ldr r1, _0222E8C4 ; =0x0225D9C8
+ lsl r2, r7, #2
+ add r1, r1, r2
+ ldrb r1, [r0, r1]
+ add r0, sp, #0x3c
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ str r0, [r6, #0x34]
+ add r5, r5, #1
+ add r6, r6, #4
+ cmp r5, #4
+ blt _0222E7DA
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222E810:
+ ldr r1, [r5, #0x34]
+ add r0, r4, #0
+ bl MOD11_0225377C
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222E810
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222E8A2
+ add r7, r4, #0
+_0222E83C:
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222E886
+_0222E848:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl FUN_0206B9B0
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0222E87A
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222E87A
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222E886
+_0222E87A:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0222E848
+_0222E886:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x10]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0x10]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #0x10]
+ cmp r0, r1
+ blt _0222E83C
+_0222E8A2:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ b _0222EA80
+_0222E8AC:
+ mov r0, #2
+ tst r0, r1
+ bne _0222E8B4
+ b _0222E9D4
+_0222E8B4:
+ ldr r0, [sp, #0x34]
+ ldr r1, _0222E8C8 ; =0x0225D9A0
+ b _0222E8CC
+ nop
+_0222E8BC: .word 0x00002420
+_0222E8C0: .word 0x0225DC18
+_0222E8C4: .word 0x0225D9C8
+_0222E8C8: .word 0x0225D9A0
+_0222E8CC:
+ lsl r0, r0, #2
+ mov r5, #0
+ add r6, r1, r0
+ add r7, r4, #0
+_0222E8D4:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222E8D4
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222E8FE:
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222E8FE
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222E9D2
+_0222E920:
+ ldr r0, [sp, #0x14]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x2c]
+ lsl r0, r0, #2
+ add r7, r4, r0
+ ldr r0, [r7, #0x68]
+ mov r6, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222E9B8
+_0222E938:
+ ldr r0, [r7, #0x68]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ ldr r1, [sp, #0x14]
+ add r5, r0, #0
+ cmp r1, #1
+ ble _0222E984
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x2c]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C474
+ cmp r6, r0
+ beq _0222E9AC
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0222E9AC
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222E9AC
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222E9B8
+ b _0222E9AC
+_0222E984:
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0222E9AC
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222E9AC
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222E9B8
+_0222E9AC:
+ ldr r0, [r7, #0x68]
+ add r6, r6, #1
+ bl FUN_0206B9AC
+ cmp r6, r0
+ blt _0222E938
+_0222E9B8:
+ str r6, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x14]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0x14]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, r1
+ blt _0222E920
+_0222E9D2:
+ b _0222EA80
+_0222E9D4:
+ ldr r0, [sp, #0x34]
+ ldr r1, _0222EC6C ; =0x0225D99C
+ lsl r0, r0, #1
+ mov r5, #0
+ add r6, r1, r0
+ add r7, r4, #0
+_0222E9E0:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #2
+ blt _0222E9E0
+ mov r0, #0
+ str r5, [r4, #0x44]
+ str r0, [sp, #0x18]
+ add r7, r4, #0
+_0222EA0C:
+ ldr r0, [sp, #4]
+ ldr r1, [r7, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222EA60
+_0222EA22:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl FUN_0206B9B0
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0222EA54
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222EA54
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222EA60
+_0222EA54:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0222EA22
+_0222EA60:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x18]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #4]
+ add r7, r7, #4
+ add r0, r0, #4
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #4
+ blt _0222EA0C
+_0222EA80:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ b _0222EE3E
+_0222EA8A:
+ mov r1, #0x10
+ tst r1, r0
+ beq _0222EB90
+ ldr r6, _0222EC70 ; =0x0225DC18
+ mov r5, #0
+ add r7, r4, #0
+_0222EA96:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222EA96
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222EAC0:
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222EAC0
+ ldr r0, [r4, #0x44]
+ mov r7, #0
+ cmp r0, #0
+ ble _0222EB80
+_0222EAE0:
+ add r0, r4, #0
+ add r1, r7, #0
+ mov r5, #0
+ bl MOD11_0222FFC8
+ cmp r0, #0
+ ble _0222EB64
+_0222EAEE:
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl MOD11_02230014
+ add r6, r0, #0
+ cmp r7, #2
+ bne _0222EB2E
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0222EB56
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222EB56
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0222EB56
+ ldr r0, [sp, #0x38]
+ cmp r0, r5
+ bne _0222EB64
+ b _0222EB56
+_0222EB2E:
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0222EB56
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222EB56
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222EB64
+_0222EB56:
+ add r0, r4, #0
+ add r1, r7, #0
+ add r5, r5, #1
+ bl MOD11_0222FFC8
+ cmp r5, r0
+ blt _0222EAEE
+_0222EB64:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #2
+ add r3, r7, #0
+ bl MOD11_0224C54C
+ cmp r7, #0
+ bne _0222EB78
+ str r5, [sp, #0x38]
+_0222EB78:
+ ldr r0, [r4, #0x44]
+ add r7, r7, #1
+ cmp r7, r0
+ blt _0222EAE0
+_0222EB80:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ ldr r0, _0222EC74 ; =0x000023F8
+ mov r1, #1
+ strb r1, [r4, r0]
+ b _0222EE3E
+_0222EB90:
+ mov r1, #8
+ tst r1, r0
+ beq _0222EC60
+ ldr r6, _0222EC70 ; =0x0225DC18
+ mov r5, #0
+ add r7, r4, #0
+_0222EB9C:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222EB9C
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222EBC6:
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222EBC6
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222EC50
+ add r7, r4, #0
+_0222EBEA:
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222EC34
+_0222EBF6:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl FUN_0206B9B0
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0222EC28
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222EC28
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222EC34
+_0222EC28:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0222EBF6
+_0222EC34:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x1c]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0x1c]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #0x1c]
+ cmp r0, r1
+ blt _0222EBEA
+_0222EC50:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ ldr r0, _0222EC74 ; =0x000023F8
+ mov r1, #1
+ strb r1, [r4, r0]
+ b _0222EE3E
+_0222EC60:
+ mov r1, #2
+ tst r0, r1
+ bne _0222EC68
+ b _0222ED8A
+_0222EC68:
+ ldr r6, _0222EC70 ; =0x0225DC18
+ b _0222EC78
+ .align 2, 0
+_0222EC6C: .word 0x0225D99C
+_0222EC70: .word 0x0225DC18
+_0222EC74: .word 0x000023F8
+_0222EC78:
+ mov r5, #0
+ add r7, r4, #0
+_0222EC7C:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222EC7C
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222ECA6:
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222ECA6
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222ED7A
+_0222ECC8:
+ ldr r0, [sp, #0x20]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x28]
+ lsl r0, r0, #2
+ add r7, r4, r0
+ ldr r0, [r7, #0x68]
+ mov r6, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222ED60
+_0222ECE0:
+ ldr r0, [r7, #0x68]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ ldr r1, [sp, #0x20]
+ add r5, r0, #0
+ cmp r1, #1
+ ble _0222ED2C
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x28]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C474
+ cmp r6, r0
+ beq _0222ED54
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0222ED54
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222ED54
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222ED60
+ b _0222ED54
+_0222ED2C:
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0222ED54
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222ED54
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222ED60
+_0222ED54:
+ ldr r0, [r7, #0x68]
+ add r6, r6, #1
+ bl FUN_0206B9AC
+ cmp r6, r0
+ blt _0222ECE0
+_0222ED60:
+ str r6, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x20]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0x20]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ cmp r0, r1
+ blt _0222ECC8
+_0222ED7A:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ ldr r0, _0222EEE0 ; =0x000023F8
+ mov r1, #1
+ strb r1, [r4, r0]
+ b _0222EE3E
+_0222ED8A:
+ ldr r6, _0222EEE4 ; =0x0225D998
+ mov r5, #0
+ add r7, r4, #0
+_0222ED90:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #2
+ blt _0222ED90
+ mov r0, #0
+ str r5, [r4, #0x44]
+ str r0, [sp, #0x24]
+ add r7, r4, #0
+_0222EDBC:
+ ldr r0, [sp, #4]
+ ldr r1, [r7, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222EE10
+_0222EDD2:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl FUN_0206B9B0
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0222EE04
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222EE04
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222EE10
+_0222EE04:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0222EDD2
+_0222EE10:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x24]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #4]
+ add r7, r7, #4
+ add r0, r0, #4
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x24]
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #4
+ blt _0222EDBC
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ ldr r0, _0222EEE0 ; =0x000023F8
+ mov r1, #1
+ strb r1, [r4, r0]
+_0222EE3E:
+ mov r0, #2
+ ldr r1, [r4, #0x2c]
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _0222EE5A
+ ldr r0, [r4, #0x6c]
+ mov r1, #0
+ bl FUN_0206B9B0
+ add r2, r4, #0
+ mov r1, #0x8f
+ add r2, #0xf4
+ bl FUN_020671BC
+_0222EE5A:
+ ldr r1, [r4, #0x2c]
+ mov r0, #1
+ tst r0, r1
+ beq _0222EEDC
+ add r0, r4, #0
+ add r0, #0xe1
+ ldrb r0, [r0]
+ bl MOD11_0222EEF0
+ cmp r0, #1
+ beq _0222EE7C
+ ldr r0, _0222EEE8 ; =0x00000149
+ ldrb r0, [r4, r0]
+ bl MOD11_0222EEF0
+ cmp r0, #1
+ bne _0222EEDC
+_0222EE7C:
+ ldr r0, [r4, #0x68]
+ mov r5, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222EEAC
+ ldr r6, _0222EEEC ; =0x00002404
+ mov r7, #3
+_0222EE8C:
+ ldr r0, [r4, #0x68]
+ add r1, r5, #0
+ bl FUN_0206B9B0
+ ldr r2, [r4, r6]
+ add r1, r7, #0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_020688E8
+ ldr r0, [r4, #0x68]
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0222EE8C
+_0222EEAC:
+ ldr r0, [r4, #0x70]
+ mov r5, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222EEDC
+ ldr r6, _0222EEEC ; =0x00002404
+ mov r7, #3
+_0222EEBC:
+ ldr r0, [r4, #0x70]
+ add r1, r5, #0
+ bl FUN_0206B9B0
+ ldr r2, [r4, r6]
+ add r1, r7, #0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_020688E8
+ ldr r0, [r4, #0x70]
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0222EEBC
+_0222EEDC:
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222EEE0: .word 0x000023F8
+_0222EEE4: .word 0x0225D998
+_0222EEE8: .word 0x00000149
+_0222EEEC: .word 0x00002404
+
+ thumb_func_start MOD11_0222EEF0
+MOD11_0222EEF0: ; 0x0222EEF0
+ sub r0, #0x3e
+ cmp r0, #0x11
+ bhi _0222EF2A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222EF02: ; jump table
+ .short _0222EF26 - _0222EF02 - 2 ; case 0
+ .short _0222EF2A - _0222EF02 - 2 ; case 1
+ .short _0222EF26 - _0222EF02 - 2 ; case 2
+ .short _0222EF26 - _0222EF02 - 2 ; case 3
+ .short _0222EF26 - _0222EF02 - 2 ; case 4
+ .short _0222EF26 - _0222EF02 - 2 ; case 5
+ .short _0222EF26 - _0222EF02 - 2 ; case 6
+ .short _0222EF26 - _0222EF02 - 2 ; case 7
+ .short _0222EF2A - _0222EF02 - 2 ; case 8
+ .short _0222EF2A - _0222EF02 - 2 ; case 9
+ .short _0222EF2A - _0222EF02 - 2 ; case 10
+ .short _0222EF2A - _0222EF02 - 2 ; case 11
+ .short _0222EF26 - _0222EF02 - 2 ; case 12
+ .short _0222EF26 - _0222EF02 - 2 ; case 13
+ .short _0222EF26 - _0222EF02 - 2 ; case 14
+ .short _0222EF26 - _0222EF02 - 2 ; case 15
+ .short _0222EF26 - _0222EF02 - 2 ; case 16
+ .short _0222EF26 - _0222EF02 - 2 ; case 17
+_0222EF26:
+ mov r0, #1
+ bx lr
+_0222EF2A:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0222EF30
+MOD11_0222EF30: ; 0x0222EF30
+ push {r3, lr}
+ sub sp, #8
+ mov r2, #2
+ mov r1, #0
+ ldr r0, _0222EF4C ; =MOD11_0222EF50
+ str r2, [sp]
+ str r0, [sp, #4]
+ mov r0, #5
+ add r3, r1, #0
+ bl FUN_02022318
+ add sp, #8
+ pop {r3, pc}
+ nop
+_0222EF4C: .word MOD11_0222EF50
+
+ thumb_func_start MOD11_0222EF50
+MOD11_0222EF50: ; 0x0222EF50
+ push {r3, lr}
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r0, _0222EFBC ; =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, _0222EFC0 ; =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, _0222EFC4 ; =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
+ blx G3X_SetFog
+ mov r0, #0
+ ldr r2, _0222EFC8 ; =0x00007FFF
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ blx G3X_SetClearColor
+ ldr r1, _0222EFCC ; =0xBFFF0000
+ ldr r0, _0222EFD0 ; =0x04000580
+ str r1, [r0]
+ pop {r3, pc}
+ .align 2, 0
+_0222EFBC: .word 0x04000008
+_0222EFC0: .word 0xFFFFCFFD
+_0222EFC4: .word 0x0000CFFB
+_0222EFC8: .word 0x00007FFF
+_0222EFCC: .word 0xBFFF0000
+_0222EFD0: .word 0x04000580
+
+ thumb_func_start MOD11_0222EFD4
+MOD11_0222EFD4: ; 0x0222EFD4
+ ldr r3, _0222EFD8 ; =0x020223BD
+ bx r3
+ .align 2, 0
+_0222EFD8: .word 0x020223BD
+
+ thumb_func_start MOD11_0222EFDC
+MOD11_0222EFDC: ; 0x0222EFDC
+ push {r3, r4, r5, lr}
+ ldr r3, _0222F014 ; =0x021064B8
+ mov r0, #2
+ mov r1, #0
+ ldr r3, [r3]
+ lsl r0, r0, #0xe
+ add r2, r1, #0
+ blx r3
+ ldr r3, _0222F018 ; =0x021064C0
+ mov r1, #0
+ add r4, r0, #0
+ ldr r3, [r3]
+ mov r0, #0xc0
+ add r2, r1, #0
+ blx r3
+ add r5, r0, #0
+ cmp r4, #0
+ bne _0222F004
+ bl ErrorHandling
+_0222F004:
+ cmp r5, #0
+ bne _0222F00C
+ bl ErrorHandling
+_0222F00C:
+ bl FUN_02012CC8
+ pop {r3, r4, r5, pc}
+ nop
+_0222F014: .word 0x021064B8
+_0222F018: .word 0x021064C0
+
+ thumb_func_start MOD11_0222F01C
+MOD11_0222F01C: ; 0x0222F01C
+ push {r3, r4, r5, lr}
+ sub sp, #0x50
+ add r4, r0, #0
+ bl FUN_0201B9EC
+ ldr r1, _0222F0B8 ; =0x000023FB
+ ldrb r2, [r4, r1]
+ lsl r0, r2, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0222F040
+ mov r0, #1
+ bic r2, r0
+ strb r2, [r4, r1]
+ ldr r0, _0222F0BC ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, _0222F0C0 ; =0x04001050
+ strh r1, [r0]
+_0222F040:
+ ldr r1, _0222F0B8 ; =0x000023FB
+ ldrb r2, [r4, r1]
+ lsl r0, r2, #0x1e
+ lsr r0, r0, #0x1f
+ beq _0222F064
+ mov r0, #2
+ bic r2, r0
+ strb r2, [r4, r1]
+ ldr r5, _0222F0C4 ; =0x0225DA90
+ add r3, sp, #0x28
+ mov r2, #5
+_0222F056:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222F056
+ add r0, sp, #0x28
+ bl FUN_0201E66C
+_0222F064:
+ ldr r1, _0222F0B8 ; =0x000023FB
+ ldrb r2, [r4, r1]
+ lsl r0, r2, #0x1d
+ lsr r0, r0, #0x1f
+ beq _0222F088
+ mov r0, #4
+ bic r2, r0
+ strb r2, [r4, r1]
+ ldr r5, _0222F0C8 ; =0x0225DAB8
+ add r3, sp, #0
+ mov r2, #5
+_0222F07A:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222F07A
+ add r0, sp, #0
+ bl FUN_0201E66C
+_0222F088:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_020081C4
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ ldr r0, [r4, #0x28]
+ bl FUN_0200372C
+ ldr r0, [r4, #4]
+ bl FUN_0201AB60
+ ldr r3, _0222F0CC ; =0x027E0000
+ ldr r1, _0222F0D0 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ add sp, #0x50
+ pop {r3, r4, r5, pc}
+ nop
+_0222F0B8: .word 0x000023FB
+_0222F0BC: .word 0x04000050
+_0222F0C0: .word 0x04001050
+_0222F0C4: .word 0x0225DA90
+_0222F0C8: .word 0x0225DAB8
+_0222F0CC: .word 0x027E0000
+_0222F0D0: .word 0x00003FF8
+
+ thumb_func_start MOD11_0222F0D4
+MOD11_0222F0D4: ; 0x0222F0D4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_0200372C
+ bl FUN_0201C30C
+ ldr r0, [r4, #4]
+ bl FUN_0201AB60
+ ldr r3, _0222F0F8 ; =0x027E0000
+ ldr r1, _0222F0FC ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ nop
+_0222F0F8: .word 0x027E0000
+_0222F0FC: .word 0x00003FF8
+
+ thumb_func_start MOD11_0222F100
+MOD11_0222F100: ; 0x0222F100
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #4]
+ mov r0, #5
+ bl FUN_020335F0
+ ldr r0, _0222F140 ; =0x000023F9
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _0222F118
+ cmp r0, #3
+ bne _0222F13E
+_0222F118:
+ cmp r0, #0
+ bne _0222F120
+ bl FUN_02215A44
+_0222F120:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_02006ED4
+ add r4, #0x94
+ ldr r0, [r4]
+ bl FUN_0200BC1C
+ bl FUN_0200BC38
+ mov r0, #1
+ mov r1, #0
+ bl FUN_020222B4
+_0222F13E:
+ pop {r4, pc}
+ .align 2, 0
+_0222F140: .word 0x000023F9
+
+ thumb_func_start MOD11_0222F144
+MOD11_0222F144: ; 0x0222F144
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD11_0222FF84
+ str r0, [sp]
+ add r0, r6, #0
+ mov r5, #0
+ bl MOD11_02231474
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _0222F24E
+ mov r0, #2
+ tst r0, r4
+ beq _0222F186
+ mov r0, #1
+ tst r0, r4
+ beq _0222F24E
+ ldr r0, _0222F250 ; =0x00000704
+ add r1, r5, #0
+ bl FUN_020054F0
+ add r0, r6, #0
+ mov r1, #2
+ bl MOD11_02231484
+ pop {r3, r4, r5, r6, r7, pc}
+_0222F186:
+ ldr r0, [sp]
+ add r4, r5, #0
+ cmp r0, #0
+ ble _0222F1D0
+_0222F18E:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0222FF7C
+ add r7, r0, #0
+ bl MOD11_02253A58
+ cmp r0, #0
+ bne _0222F1C8
+ add r0, r7, #0
+ bl MOD11_02253A70
+ add r1, r0, #0
+ beq _0222F1C8
+ ldr r0, [r1, #0x28]
+ ldr r1, [r1, #0x2c]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x30
+ bl FUN_02079A54
+ cmp r0, #1
+ bne _0222F1C8
+ add r0, r4, #0
+ bl FUN_0206A92C
+ orr r5, r0
+_0222F1C8:
+ ldr r0, [sp]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0222F18E
+_0222F1D0:
+ cmp r5, #0
+ beq _0222F1F6
+ add r0, r6, #0
+ bl MOD11_02231474
+ cmp r0, #0
+ bne _0222F1F6
+ ldr r0, _0222F250 ; =0x00000704
+ bl FUN_020054C8
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_02231484
+ add r0, r6, #0
+ mov r1, #4
+ bl MOD11_022314B0
+ b _0222F214
+_0222F1F6:
+ cmp r5, #0
+ bne _0222F214
+ add r0, r6, #0
+ bl MOD11_02231474
+ cmp r0, #0
+ beq _0222F214
+ ldr r0, _0222F250 ; =0x00000704
+ mov r1, #0
+ bl FUN_020054F0
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_02231484
+_0222F214:
+ add r0, r6, #0
+ bl MOD11_02231474
+ cmp r0, #0
+ beq _0222F24E
+ add r0, r6, #0
+ bl MOD11_022314A0
+ add r4, r0, #0
+ ldr r0, _0222F250 ; =0x00000704
+ bl FUN_02005508
+ cmp r0, #0
+ bne _0222F24E
+ sub r1, r4, #1
+ bne _0222F244
+ ldr r0, _0222F250 ; =0x00000704
+ bl FUN_020054C8
+ add r0, r6, #0
+ mov r1, #4
+ bl MOD11_022314B0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222F244:
+ lsl r1, r1, #0x18
+ add r0, r6, #0
+ lsr r1, r1, #0x18
+ bl MOD11_022314B0
+_0222F24E:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F250: .word 0x00000704
+
+ thumb_func_start MOD11_0222F254
+MOD11_0222F254: ; 0x0222F254
+ push {r3, r4, r5, lr}
+ ldr r3, _0222F280 ; =0x00002434
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, r3]
+ mov r1, #1
+ add r0, r0, #3
+ str r0, [r4, r3]
+ ldr r0, [r4, #4]
+ ldr r3, [r4, r3]
+ mov r2, #3
+ bl FUN_020179E0
+ ldr r0, _0222F280 ; =0x00002434
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222F27C
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0222F27C:
+ pop {r3, r4, r5, pc}
+ nop
+_0222F280: .word 0x00002434
+
+ thumb_func_start MOD11_0222F284
+MOD11_0222F284: ; 0x0222F284
+ push {r3, lr}
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222F296
+ ldr r0, _0222F298 ; =0x00000010
+ mov r1, #2
+ bl FUN_02005FDC
+_0222F296:
+ pop {r3, pc}
+ .align 2, 0
+_0222F298: .word 0x00000010
+
+ thumb_func_start MOD11_0222F29C
+MOD11_0222F29C: ; 0x0222F29C
+ push {r4, r5, r6, lr}
+ sub sp, #0x68
+ add r4, r1, #0
+ ldr r1, _0222F4C0 ; =0x00001028
+ mov r2, #5
+ bl FUN_02006268
+ add r5, r0, #0
+ ldr r0, _0222F4C4 ; =0x00001020
+ str r4, [r5]
+ mov r2, #0
+ strb r2, [r5, r0]
+ add r1, r0, #1
+ strb r2, [r5, r1]
+ add r0, r0, #2
+ strh r2, [r5, r0]
+ mov r0, #5
+ bl FUN_02002FD0
+ str r0, [r5, #0xc]
+ mov r1, #1
+ bl FUN_020038F0
+ mov r2, #2
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ lsl r2, r2, #8
+ mov r3, #5
+ bl FUN_02003008
+ mov r1, #0
+ mov r0, #1
+ str r1, [sp]
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ ldr r0, [r5, #0xc]
+ mov r2, #2
+ add r3, r1, #0
+ bl FUN_02003914
+ mov r0, #5
+ bl FUN_02016B94
+ str r0, [r5, #4]
+ mov r0, #5
+ mov r1, #1
+ bl FUN_02018FF4
+ str r0, [r5, #8]
+ add r0, r5, #0
+ bl FUN_0206BFF0
+ bl FUN_0201E6D8
+ ldr r6, _0222F4C8 ; =0x0225DA40
+ add r3, sp, #0x40
+ mov r2, #5
+_0222F30E:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222F30E
+ add r0, sp, #0x40
+ bl FUN_0201E66C
+ mov r1, #6
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x12
+ blx MIi_CpuClear32
+ mov r1, #0x62
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ blx MIi_CpuClear32
+ mov r1, #0x19
+ mov r2, #1
+ mov r0, #0
+ lsl r1, r1, #0x16
+ lsl r2, r2, #0x12
+ blx MIi_CpuClear32
+ mov r1, #0x66
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ blx MIi_CpuClear32
+ mov r1, #5
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #8
+ blx MIi_CpuClear16
+ ldr r6, _0222F4CC ; =0x0225D9B8
+ add r3, sp, #0x30
+ add r2, r3, #0
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r6, _0222F4D0 ; =0x0225DA04
+ add r3, sp, #0x14
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ mov r1, #1
+ str r0, [r3]
+ ldr r0, [r5, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_02018744
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02025084
+ add r4, r0, #0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r1, #1
+ ldr r0, [r5, #4]
+ add r2, r1, #0
+ mov r3, #0xa
+ bl FUN_0200D274
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xb0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0xc]
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #5
+ bl FUN_020030E8
+ 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, #0xa0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0xc]
+ mov r1, #0x26
+ mov r3, #5
+ bl FUN_020030E8
+ mov r1, #0
+ mov r0, #1
+ str r1, [sp]
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ ldr r0, [r5, #0xc]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02003914
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ ldr r1, [r5, #8]
+ mov r2, #1
+ mov r3, #2
+ bl FUN_02019064
+ ldr r0, [r5, #8]
+ mov r1, #0xff
+ bl FUN_02019620
+ ldr r0, [r5, #8]
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r2, #0x51
+ mov r0, #1
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #5
+ bl FUN_0200A86C
+ add r4, r0, #0
+ mov r0, #1
+ lsl r0, r0, #8
+ mov r1, #5
+ bl FUN_020219F4
+ add r6, r0, #0
+ ldr r1, _0222F4D4 ; =0x0000039B
+ add r0, r4, #0
+ add r2, r6, #0
+ bl FUN_0200A8E0
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r5, #8]
+ mov r1, #1
+ add r2, r6, #0
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_0200A8B8
+ ldr r0, _0222F4D8 ; =MOD11_0222F0D4
+ add r1, r5, #0
+ bl FUN_02015F10
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r5, #0xc]
+ ldr r2, _0222F4DC ; =0x0000FFFF
+ mov r1, #5
+ bl FUN_02003210
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_0200D858
+ ldr r1, _0222F4E0 ; =0x00001024
+ str r0, [r5, r1]
+ bl FUN_02033E74
+ add sp, #0x68
+ pop {r4, r5, r6, pc}
+ nop
+_0222F4C0: .word 0x00001028
+_0222F4C4: .word 0x00001020
+_0222F4C8: .word 0x0225DA40
+_0222F4CC: .word 0x0225D9B8
+_0222F4D0: .word 0x0225DA04
+_0222F4D4: .word 0x0000039B
+_0222F4D8: .word MOD11_0222F0D4
+_0222F4DC: .word 0x0000FFFF
+_0222F4E0: .word 0x00001024
+
+ thumb_func_start MOD11_0222F4E4
+MOD11_0222F4E4: ; 0x0222F4E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ mov r0, #5
+ bl FUN_020335F0
+ ldr r0, _0222F804 ; =0x00001021
+ mov r7, #0
+ ldrb r1, [r4, r0]
+ cmp r1, #0x21
+ bls _0222F502
+ b _0222F922
+_0222F502:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222F50E: ; jump table
+ .short _0222F552 - _0222F50E - 2 ; case 0
+ .short _0222F562 - _0222F50E - 2 ; case 1
+ .short _0222F576 - _0222F50E - 2 ; case 2
+ .short _0222F586 - _0222F50E - 2 ; case 3
+ .short _0222F5C0 - _0222F50E - 2 ; case 4
+ .short _0222F898 - _0222F50E - 2 ; case 5
+ .short _0222F5D8 - _0222F50E - 2 ; case 6
+ .short _0222F5F2 - _0222F50E - 2 ; case 7
+ .short _0222F898 - _0222F50E - 2 ; case 8
+ .short _0222F606 - _0222F50E - 2 ; case 9
+ .short _0222F622 - _0222F50E - 2 ; case 10
+ .short _0222F898 - _0222F50E - 2 ; case 11
+ .short _0222F636 - _0222F50E - 2 ; case 12
+ .short _0222F650 - _0222F50E - 2 ; case 13
+ .short _0222F898 - _0222F50E - 2 ; case 14
+ .short _0222F664 - _0222F50E - 2 ; case 15
+ .short _0222F67E - _0222F50E - 2 ; case 16
+ .short _0222F898 - _0222F50E - 2 ; case 17
+ .short _0222F692 - _0222F50E - 2 ; case 18
+ .short _0222F6AC - _0222F50E - 2 ; case 19
+ .short _0222F898 - _0222F50E - 2 ; case 20
+ .short _0222F6C0 - _0222F50E - 2 ; case 21
+ .short _0222F704 - _0222F50E - 2 ; case 22
+ .short _0222F898 - _0222F50E - 2 ; case 23
+ .short _0222F740 - _0222F50E - 2 ; case 24
+ .short _0222F774 - _0222F50E - 2 ; case 25
+ .short _0222F898 - _0222F50E - 2 ; case 26
+ .short _0222F7AE - _0222F50E - 2 ; case 27
+ .short _0222F7E2 - _0222F50E - 2 ; case 28
+ .short _0222F898 - _0222F50E - 2 ; case 29
+ .short _0222F82A - _0222F50E - 2 ; case 30
+ .short _0222F85E - _0222F50E - 2 ; case 31
+ .short _0222F898 - _0222F50E - 2 ; case 32
+ .short _0222F908 - _0222F50E - 2 ; case 33
+_0222F552:
+ add r0, r7, #0
+ bl FUN_0200E394
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F562:
+ ldr r0, [r4, #0xc]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0222F610
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F576:
+ mov r0, #0x32
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F586:
+ mov r0, #0x32
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0222F5A8
+ mov r0, #0x33
+ bl FUN_02031588
+ ldr r0, _0222F808 ; =0x00001022
+ add r1, r7, #0
+ strh r1, [r4, r0]
+ sub r1, r0, #1
+ ldrb r1, [r4, r1]
+ sub r0, r0, #1
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F5A8:
+ ldr r0, _0222F808 ; =0x00001022
+ ldrh r1, [r4, r0]
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ ldrh r1, [r4, r0]
+ ldr r0, _0222F80C ; =0x00000708
+ cmp r1, r0
+ bls _0222F610
+ mov r0, #1
+ bl FUN_020336A0
+ b _0222F922
+_0222F5C0:
+ mov r1, #0x11
+ add r0, r4, #0
+ lsl r1, r1, #4
+ bl FUN_0206C1A0
+ cmp r0, #1
+ bne _0222F610
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F5D8:
+ add r0, r4, #0
+ bl FUN_0206C1FC
+ cmp r0, #1
+ bne _0222F610
+ mov r0, #0x34
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F5F2:
+ add r0, r4, #0
+ bl FUN_0206C224
+ cmp r0, #1
+ bne _0222F610
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F606:
+ add r0, r4, #0
+ bl FUN_0206C268
+ cmp r0, #1
+ beq _0222F612
+_0222F610:
+ b _0222F922
+_0222F612:
+ mov r0, #0x35
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F622:
+ add r0, r4, #0
+ bl FUN_0206C294
+ cmp r0, #1
+ bne _0222F71C
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F636:
+ add r0, r4, #0
+ bl FUN_0206C2D4
+ cmp r0, #1
+ bne _0222F71C
+ mov r0, #0x36
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F650:
+ add r0, r4, #0
+ bl FUN_0206C2F8
+ cmp r0, #1
+ bne _0222F71C
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F664:
+ add r0, r4, #0
+ bl FUN_0206C33C
+ cmp r0, #1
+ bne _0222F71C
+ mov r0, #0x37
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F67E:
+ add r0, r4, #0
+ bl FUN_0206C364
+ cmp r0, #1
+ bne _0222F71C
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F692:
+ add r0, r4, #0
+ bl FUN_0206C398
+ cmp r0, #1
+ bne _0222F71C
+ mov r0, #0x38
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F6AC:
+ add r0, r4, #0
+ bl FUN_0206C3F4
+ cmp r0, #1
+ bne _0222F71C
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F6C0:
+ ldr r1, [r4]
+ ldr r2, [r1]
+ mov r1, #0x80
+ tst r1, r2
+ bne _0222F6D0
+ mov r1, #0x21
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F6D0:
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F6E8
+ mov r0, #0x39
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F6E8:
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_0206C438
+ cmp r0, #1
+ bne _0222F71C
+ mov r0, #0x39
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F704:
+ mov r1, #1
+ sub r0, r0, #1
+ strb r1, [r4, r0]
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F728
+ mov r0, #0x39
+ bl FUN_020315D8
+ cmp r0, #1
+ beq _0222F71E
+_0222F71C:
+ b _0222F922
+_0222F71E:
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F728:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x39
+ bl FUN_0206C46C
+ cmp r0, #1
+ bne _0222F81E
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F740:
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F758
+ mov r0, #0x3a
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F758:
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_0206C438
+ cmp r0, #1
+ bne _0222F81E
+ mov r0, #0x3a
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F774:
+ mov r1, #1
+ sub r0, r0, #1
+ strb r1, [r4, r0]
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F796
+ mov r0, #0x3a
+ bl FUN_020315D8
+ cmp r0, #1
+ bne _0222F81E
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F796:
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #0x3a
+ bl FUN_0206C46C
+ cmp r0, #1
+ bne _0222F81E
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F7AE:
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F7C6
+ mov r0, #0x3b
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F7C6:
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_0206C4C4
+ cmp r0, #1
+ bne _0222F81E
+ mov r0, #0x3b
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F7E2:
+ mov r1, #1
+ sub r0, r0, #1
+ strb r1, [r4, r0]
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F810
+ mov r0, #0x3b
+ bl FUN_020315D8
+ cmp r0, #1
+ bne _0222F81E
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+ .align 2, 0
+_0222F804: .word 0x00001021
+_0222F808: .word 0x00001022
+_0222F80C: .word 0x00000708
+_0222F810:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x3b
+ bl FUN_0206C4F0
+ cmp r0, #1
+ beq _0222F820
+_0222F81E:
+ b _0222F922
+_0222F820:
+ ldr r0, _0222F928 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F82A:
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F842
+ mov r0, #0x3c
+ bl FUN_02031588
+ ldr r0, _0222F928 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F842:
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_0206C4C4
+ cmp r0, #1
+ bne _0222F922
+ mov r0, #0x3c
+ bl FUN_02031588
+ ldr r0, _0222F928 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F85E:
+ mov r1, #1
+ sub r0, r0, #1
+ strb r1, [r4, r0]
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F880
+ mov r0, #0x3c
+ bl FUN_020315D8
+ cmp r0, #1
+ bne _0222F922
+ ldr r0, _0222F928 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F880:
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #0x3c
+ bl FUN_0206C4F0
+ cmp r0, #1
+ bne _0222F922
+ ldr r0, _0222F928 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F898:
+ bl FUN_02030F20
+ ldr r1, _0222F92C ; =0x00001020
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ bne _0222F8EE
+ add r0, r1, #1
+ ldrb r0, [r4, r0]
+ cmp r0, #0x14
+ bne _0222F8BE
+ add r6, r7, #0
+ add r5, r4, #0
+_0222F8B0:
+ ldr r0, [r5, #0x10]
+ bl FUN_02016A18
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0222F8B0
+_0222F8BE:
+ ldr r0, _0222F92C ; =0x00001020
+ mov r3, #0
+ strb r3, [r4, r0]
+ add r1, r0, #2
+ strh r3, [r4, r1]
+ add r1, r0, #1
+ ldrb r1, [r4, r1]
+ add r2, r1, #1
+ add r1, r0, #1
+ strb r2, [r4, r1]
+ add r0, r0, #1
+ ldrb r0, [r4, r0]
+ cmp r0, #0x21
+ bne _0222F922
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r4, #0xc]
+ ldr r2, _0222F930 ; =0x0000FFFF
+ mov r1, #5
+ bl FUN_02003210
+ b _0222F922
+_0222F8EE:
+ add r0, r1, #2
+ ldrh r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #2
+ strh r2, [r4, r0]
+ ldrh r1, [r4, r0]
+ ldr r0, _0222F934 ; =0x00000708
+ cmp r1, r0
+ bls _0222F922
+ mov r0, #1
+ bl FUN_020336A0
+ b _0222F922
+_0222F908:
+ ldr r0, [r4, #0xc]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0222F922
+ ldr r0, _0222F938 ; =0x00001024
+ mov r7, #1
+ ldr r0, [r4, r0]
+ bl FUN_0200DBFC
+ mov r0, #0
+ bl FUN_02031400
+_0222F922:
+ add r0, r7, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F928: .word 0x00001021
+_0222F92C: .word 0x00001020
+_0222F930: .word 0x0000FFFF
+_0222F934: .word 0x00000708
+_0222F938: .word 0x00001024
+
+ thumb_func_start MOD11_0222F93C
+MOD11_0222F93C: ; 0x0222F93C
+ push {r4, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_02003038
+ ldr r0, [r4, #0xc]
+ bl FUN_02002FEC
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020191A4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0222F988
+MOD11_0222F988: ; 0x0222F988
+ push {r4, r5, r6, lr}
+ ldr r1, _0222FAB4 ; =0x00002444
+ add r5, r0, #0
+ mov r2, #5
+ bl FUN_02006268
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r6, r0, #0
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r2, _0222FAB4 ; =0x00002444
+ mov r0, #0
+ add r1, r4, #0
+ blx MIi_CpuClearFast
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222E520
+ ldr r1, [r4, #0x2c]
+ mov r0, #4
+ tst r0, r1
+ beq _0222F9C6
+ mov r0, #0x80
+ tst r0, r1
+ beq _0222F9CA
+_0222F9C6:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222F9CA:
+ ldr r0, _0222FAB8 ; =0x00000007
+ mov r1, #2
+ bl FUN_02005FDC
+ ldr r1, [r4, #0x2c]
+ mov r0, #8
+ tst r0, r1
+ bne _0222F9DE
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222F9DE:
+ mov r0, #5
+ mov r1, #0x2c
+ bl FUN_02016998
+ mov r1, #7
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ mov r0, #0
+ mov r2, #0x2c
+ blx MIi_CpuClearFast
+ add r0, r5, #0
+ bl FUN_020313CC
+ cmp r0, #3
+ bhi _0222FA5A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222FA0C: ; jump table
+ .short _0222FA14 - _0222FA0C - 2 ; case 0
+ .short _0222FA3A - _0222FA0C - 2 ; case 1
+ .short _0222FA3A - _0222FA0C - 2 ; case 2
+ .short _0222FA14 - _0222FA0C - 2 ; case 3
+_0222FA14:
+ lsl r0, r5, #2
+ add r0, r4, r0
+ ldr r1, [r0, #0x68]
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ str r1, [r0, #4]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022302BC
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r1, [r0, #0x68]
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ str r1, [r0, #0xc]
+ b _0222FA5A
+_0222FA3A:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022302BC
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r2, [r0, #0x68]
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ str r2, [r1, #4]
+ lsl r1, r5, #2
+ add r1, r4, r1
+ ldr r1, [r1, #0x68]
+ ldr r0, [r4, r0]
+ str r1, [r0, #0xc]
+_0222FA5A:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r2, #5
+ str r2, [r1, #0x24]
+ ldr r0, [r4, r0]
+ mov r1, #0
+ add r0, #0x28
+ strb r1, [r0]
+ add r0, r5, #0
+ bl FUN_020313CC
+ cmp r0, #3
+ bhi _0222FAA4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222FA82: ; jump table
+ .short _0222FA8A - _0222FA82 - 2 ; case 0
+ .short _0222FA98 - _0222FA82 - 2 ; case 1
+ .short _0222FA98 - _0222FA82 - 2 ; case 2
+ .short _0222FA8A - _0222FA82 - 2 ; case 3
+_0222FA8A:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #0
+ add r0, #0x29
+ strb r1, [r0]
+ b _0222FAA4
+_0222FA98:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #1
+ add r0, #0x29
+ strb r1, [r0]
+_0222FAA4:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl FUN_02211E60
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ nop
+_0222FAB4: .word 0x00002444
+_0222FAB8: .word 0x00000007
+
+ thumb_func_start MOD11_0222FABC
+MOD11_0222FABC: ; 0x0222FABC
+ push {r3, r4, r5, r6, r7, lr}
+ bl FUN_02006278
+ add r6, r0, #0
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0222FAFE
+ mov r4, #0
+ mov r7, #7
+ add r5, r4, #0
+ lsl r7, r7, #6
+_0222FADA:
+ ldr r0, [r6, r7]
+ add r0, r0, r5
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _0222FAE8
+ bl FUN_02016A18
+_0222FAE8:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222FADA
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FAFE:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0222FB04
+MOD11_0222FB04: ; 0x0222FB04
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200628C
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ ldr r1, [r4, #0x2c]
+ mov r0, #4
+ tst r0, r1
+ beq _0222FB2A
+ mov r0, #0x80
+ tst r0, r1
+ beq _0222FB2E
+_0222FB2A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FB2E:
+ mov r0, #5
+ mov r1, #0x2c
+ bl FUN_02016998
+ mov r1, #7
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ mov r0, #0
+ mov r2, #0x2c
+ blx MIi_CpuClearFast
+ ldr r1, [r4, #0x2c]
+ mov r0, #8
+ tst r0, r1
+ beq _0222FBA4
+ mov r6, #0
+ add r5, r4, #0
+_0222FB52:
+ add r0, r6, #0
+ bl FUN_020313CC
+ mov r2, #7
+ lsl r2, r2, #6
+ ldr r2, [r4, r2]
+ lsl r0, r0, #2
+ ldr r1, [r5, #0x68]
+ add r0, r2, r0
+ str r1, [r0, #4]
+ add r0, r6, #0
+ bl FUN_020313CC
+ add r7, r0, #0
+ ldr r0, [r5, #0x48]
+ mov r1, #5
+ bl FUN_020239A0
+ mov r1, #7
+ lsl r1, r1, #6
+ ldr r2, [r4, r1]
+ lsl r1, r7, #2
+ add r1, r2, r1
+ add r6, r6, #1
+ add r5, r5, #4
+ str r0, [r1, #0x14]
+ cmp r6, #4
+ blt _0222FB52
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r2, #5
+ str r2, [r1, #0x24]
+ ldr r1, [r4, r0]
+ mov r2, #1
+ add r1, #0x28
+ strb r2, [r1]
+ ldr r0, [r4, r0]
+ add r0, #0x29
+ strb r2, [r0]
+ b _0222FC2A
+_0222FBA4:
+ add r0, r7, #0
+ lsl r6, r7, #2
+ bl FUN_020313CC
+ mov r2, #7
+ lsl r2, r2, #6
+ add r1, r4, r6
+ ldr r2, [r4, r2]
+ lsl r0, r0, #2
+ ldr r1, [r1, #0x68]
+ add r0, r2, r0
+ str r1, [r0, #4]
+ mov r0, #1
+ eor r0, r7
+ lsl r5, r0, #2
+ str r0, [sp]
+ bl FUN_020313CC
+ add r1, r4, r5
+ ldr r2, [r1, #0x68]
+ mov r1, #7
+ lsl r1, r1, #6
+ ldr r1, [r4, r1]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r2, [r0, #4]
+ add r0, r7, #0
+ bl FUN_020313CC
+ add r7, r0, #0
+ add r0, r4, r6
+ ldr r0, [r0, #0x48]
+ mov r1, #5
+ bl FUN_020239A0
+ mov r1, #7
+ lsl r1, r1, #6
+ ldr r2, [r4, r1]
+ lsl r1, r7, #2
+ add r1, r2, r1
+ str r0, [r1, #0x14]
+ ldr r0, [sp]
+ bl FUN_020313CC
+ add r6, r0, #0
+ add r0, r4, r5
+ ldr r0, [r0, #0x48]
+ mov r1, #5
+ bl FUN_020239A0
+ mov r1, #7
+ lsl r1, r1, #6
+ ldr r3, [r4, r1]
+ lsl r2, r6, #2
+ add r2, r3, r2
+ str r0, [r2, #0x14]
+ ldr r0, [r4, r1]
+ mov r2, #5
+ str r2, [r0, #0x24]
+ ldr r0, [r4, r1]
+ mov r2, #1
+ add r0, #0x28
+ strb r2, [r0]
+ ldr r0, [r4, r1]
+ mov r2, #0
+ add r0, #0x29
+ strb r2, [r0]
+_0222FC2A:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl FUN_02211E60
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0222FC38
+MOD11_0222FC38: ; 0x0222FC38
+ push {r3, r4, r5, r6, r7, lr}
+ bl FUN_02006278
+ add r6, r0, #0
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0222FC7A
+ mov r4, #0
+ mov r7, #7
+ add r5, r4, #0
+ lsl r7, r7, #6
+_0222FC56:
+ ldr r0, [r6, r7]
+ add r0, r0, r5
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _0222FC64
+ bl FUN_02016A18
+_0222FC64:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222FC56
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FC7A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0222FC80
+MOD11_0222FC80: ; 0x0222FC80
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ bl FUN_0200628C
+ add r7, r0, #0
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r1, [r7]
+ mov r0, #4
+ tst r0, r1
+ beq _0222FCA2
+ mov r0, #0x80
+ tst r0, r1
+ beq _0222FCA8
+_0222FCA2:
+ add sp, #0x10
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FCA8:
+ ldr r0, _0222FE54 ; =0x00000007
+ mov r1, #2
+ bl FUN_02005FDC
+ mov r0, #5
+ mov r1, #0x2c
+ bl FUN_02016998
+ add r6, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ str r6, [r7, r0]
+ mov r0, #0
+ add r1, r6, #0
+ mov r2, #0x2c
+ blx MIi_CpuClearFast
+ str r7, [r6]
+ ldr r0, [r7, #0x14]
+ cmp r0, #5
+ bhi _0222FD54
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222FCDE: ; jump table
+ .short _0222FD54 - _0222FCDE - 2 ; case 0
+ .short _0222FCEA - _0222FCDE - 2 ; case 1
+ .short _0222FD0E - _0222FCDE - 2 ; case 2
+ .short _0222FD32 - _0222FCDE - 2 ; case 3
+ .short _0222FD54 - _0222FCDE - 2 ; case 4
+ .short _0222FD32 - _0222FCDE - 2 ; case 5
+_0222FCEA:
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222FD00
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x15
+ bl FUN_0202A0E8
+ b _0222FD54
+_0222FD00:
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x1a
+ bl FUN_0202A0E8
+ b _0222FD54
+_0222FD0E:
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222FD24
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x16
+ bl FUN_0202A0E8
+ b _0222FD54
+_0222FD24:
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x1b
+ bl FUN_0202A0E8
+ b _0222FD54
+_0222FD32:
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222FD48
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x17
+ bl FUN_0202A0E8
+ b _0222FD54
+_0222FD48:
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x1c
+ bl FUN_0202A0E8
+_0222FD54:
+ ldr r1, [r7]
+ mov r0, #8
+ tst r0, r1
+ beq _0222FDBE
+ mov r4, #0
+ add r5, r7, #0
+_0222FD60:
+ add r0, r4, #0
+ bl FUN_020313CC
+ lsl r0, r0, #2
+ ldr r1, [r5, #4]
+ add r0, r6, r0
+ str r1, [r0, #4]
+ add r0, r4, #0
+ bl FUN_020313CC
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ mov r1, #5
+ bl FUN_020239A0
+ ldr r1, [sp, #8]
+ add r4, r4, #1
+ lsl r1, r1, #2
+ add r1, r6, r1
+ add r5, r5, #4
+ str r0, [r1, #0x14]
+ cmp r4, #4
+ blt _0222FD60
+ mov r0, #5
+ str r0, [r6, #0x24]
+ add r0, r6, #0
+ mov r1, #2
+ add r0, #0x28
+ strb r1, [r0]
+ add r0, r6, #0
+ mov r1, #1
+ add r0, #0x29
+ strb r1, [r0]
+ ldr r1, [r7, #0x14]
+ cmp r1, #5
+ beq _0222FDB4
+ add r0, r6, #0
+ add r0, #0x2a
+ strb r1, [r0]
+ b _0222FE48
+_0222FDB4:
+ add r0, r6, #0
+ mov r1, #3
+ add r0, #0x2a
+ strb r1, [r0]
+ b _0222FE48
+_0222FDBE:
+ ldr r0, [sp, #4]
+ lsl r5, r0, #2
+ bl FUN_020313CC
+ add r1, r7, r5
+ lsl r0, r0, #2
+ ldr r1, [r1, #4]
+ add r0, r6, r0
+ str r1, [r0, #4]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ eor r0, r1
+ lsl r4, r0, #2
+ str r0, [sp]
+ bl FUN_020313CC
+ add r1, r7, r4
+ lsl r0, r0, #2
+ ldr r1, [r1, #4]
+ add r0, r6, r0
+ str r1, [r0, #4]
+ ldr r0, [sp, #4]
+ bl FUN_020313CC
+ str r0, [sp, #0xc]
+ add r0, r7, r5
+ add r0, #0xf8
+ ldr r0, [r0]
+ mov r1, #5
+ bl FUN_020239A0
+ ldr r1, [sp, #0xc]
+ lsl r1, r1, #2
+ add r1, r6, r1
+ str r0, [r1, #0x14]
+ ldr r0, [sp]
+ bl FUN_020313CC
+ add r5, r0, #0
+ add r0, r7, r4
+ add r0, #0xf8
+ ldr r0, [r0]
+ mov r1, #5
+ bl FUN_020239A0
+ lsl r1, r5, #2
+ add r1, r6, r1
+ str r0, [r1, #0x14]
+ mov r0, #5
+ str r0, [r6, #0x24]
+ add r0, r6, #0
+ mov r1, #2
+ add r0, #0x28
+ strb r1, [r0]
+ add r0, r6, #0
+ mov r1, #0
+ add r0, #0x29
+ strb r1, [r0]
+ ldr r1, [r7, #0x14]
+ cmp r1, #5
+ beq _0222FE40
+ add r0, r6, #0
+ add r0, #0x2a
+ strb r1, [r0]
+ b _0222FE48
+_0222FE40:
+ add r0, r6, #0
+ mov r1, #3
+ add r0, #0x2a
+ strb r1, [r0]
+_0222FE48:
+ add r0, r6, #0
+ bl FUN_02211E60
+ mov r0, #1
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222FE54: .word 0x00000007
+
+ thumb_func_start MOD11_0222FE58
+MOD11_0222FE58: ; 0x0222FE58
+ push {r4, r5, r6, lr}
+ bl FUN_0200628C
+ mov r1, #0x66
+ lsl r1, r1, #2
+ ldr r6, [r0, r1]
+ add r0, r6, #0
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0222FE8E
+ mov r4, #0
+ add r5, r6, #0
+_0222FE72:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _0222FE7C
+ bl FUN_02016A18
+_0222FE7C:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222FE72
+ add r0, r6, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0222FE8E:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0222FE94
+MOD11_0222FE94: ; 0x0222FE94
+ push {r3, lr}
+ ldr r1, [r0, #0x2c]
+ ldr r0, _0222FEBC ; =0x00000404
+ tst r0, r1
+ beq _0222FEA6
+ mov r0, #1
+ bl FUN_02002B7C
+ pop {r3, pc}
+_0222FEA6:
+ mov r0, #3
+ bl FUN_02002B7C
+ mov r0, #1
+ bl FUN_02002B60
+ mov r0, #1
+ bl FUN_02002BB8
+ pop {r3, pc}
+ nop
+_0222FEBC: .word 0x00000404
+
+ thumb_func_start MOD11_0222FEC0
+MOD11_0222FEC0: ; 0x0222FEC0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ str r0, [sp]
+ mov r0, #0x5f
+ mov r3, #0
+ add r4, sp, #0x30
+ add r5, sp, #0x20
+ lsl r0, r0, #2
+_0222FED0:
+ stmia r4!, {r3}
+ ldr r2, [r1, r0]
+ add r3, r3, #1
+ add r1, r1, #4
+ stmia r5!, {r2}
+ cmp r3, #4
+ blt _0222FED0
+ bl FUN_02031190
+ str r0, [sp, #0x10]
+ bl FUN_02030F20
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ sub r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, #0
+ ble _0222FF50
+ add r0, sp, #0x30
+ add r3, sp, #0x20
+ str r0, [sp, #8]
+ str r3, [sp, #0x18]
+ mov ip, r0
+_0222FF02:
+ ldr r0, [sp, #4]
+ add r2, r0, #1
+ ldr r0, [sp, #0xc]
+ cmp r2, r0
+ bge _0222FF3C
+ ldr r0, [sp, #0x18]
+ lsl r1, r2, #2
+ add r4, r0, r1
+ mov r0, ip
+ add r5, r0, r1
+_0222FF16:
+ ldr r0, [r4]
+ ldr r6, [r3]
+ str r0, [sp, #0x1c]
+ cmp r6, r0
+ bge _0222FF30
+ ldr r0, [sp, #8]
+ ldr r1, [r5]
+ ldr r7, [r0]
+ str r1, [r0]
+ ldr r0, [sp, #0x1c]
+ str r7, [r5]
+ str r0, [r3]
+ str r6, [r4]
+_0222FF30:
+ ldr r0, [sp, #0xc]
+ add r2, r2, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r2, r0
+ blt _0222FF16
+_0222FF3C:
+ ldr r0, [sp, #8]
+ add r3, r3, #4
+ add r0, r0, #4
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ str r1, [sp, #4]
+ cmp r1, r0
+ blt _0222FF02
+_0222FF50:
+ ldr r1, [sp, #0x30]
+ ldr r0, [sp, #0x10]
+ cmp r1, r0
+ bne _0222FF60
+ ldr r1, _0222FF64 ; =0x000023F8
+ ldr r0, [sp]
+ mov r2, #1
+ strb r2, [r0, r1]
+_0222FF60:
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222FF64: .word 0x000023F8
+
+ thumb_func_start MOD11_0222FF68
+MOD11_0222FF68: ; 0x0222FF68
+ ldr r0, [r0, #4]
+ bx lr
+
+ thumb_func_start MOD11_0222FF6C
+MOD11_0222FF6C: ; 0x0222FF6C
+ ldr r2, [r0, #8]
+ lsl r0, r1, #4
+ add r0, r2, r0
+ bx lr
+
+ thumb_func_start MOD11_0222FF74
+MOD11_0222FF74: ; 0x0222FF74
+ ldr r0, [r0, #0x2c]
+ bx lr
+
+ thumb_func_start MOD11_0222FF78
+MOD11_0222FF78: ; 0x0222FF78
+ ldr r0, [r0, #0x30]
+ bx lr
+
+ thumb_func_start MOD11_0222FF7C
+MOD11_0222FF7C: ; 0x0222FF7C
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r0, [r0, #0x34]
+ bx lr
+
+ thumb_func_start MOD11_0222FF84
+MOD11_0222FF84: ; 0x0222FF84
+ ldr r0, [r0, #0x44]
+ bx lr
+
+ thumb_func_start MOD11_0222FF88
+MOD11_0222FF88: ; 0x0222FF88
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _0222FFA6
+ mov r3, #0x10
+ tst r2, r3
+ beq _0222FFAE
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _0222FFAE
+_0222FFA6:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ pop {r3, r4, r5, pc}
+_0222FFAE:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _0222FFC0
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1d
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ pop {r3, r4, r5, pc}
+_0222FFC0:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0222FFC8
+MOD11_0222FFC8: ; 0x0222FFC8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _0222FFE6
+ mov r3, #0x10
+ tst r2, r3
+ beq _0222FFF2
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _0222FFF2
+_0222FFE6:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ bl FUN_0206B9AC
+ pop {r3, r4, r5, pc}
+_0222FFF2:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _02230008
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1d
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ bl FUN_0206B9AC
+ pop {r3, r4, r5, pc}
+_02230008:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ bl FUN_0206B9AC
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02230014
+MOD11_02230014: ; 0x02230014
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r2, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _02230034
+ mov r3, #0x10
+ tst r2, r3
+ beq _02230042
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _02230042
+_02230034:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ pop {r4, r5, r6, pc}
+_02230042:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _0223005A
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1d
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ pop {r4, r5, r6, pc}
+_0223005A:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02230068
+MOD11_02230068: ; 0x02230068
+ add r0, #0x88
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02230070
+MOD11_02230070: ; 0x02230070
+ add r0, #0x8c
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02230078
+MOD11_02230078: ; 0x02230078
+ add r0, #0x90
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02230080
+MOD11_02230080: ; 0x02230080
+ add r0, #0x94
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02230088
+MOD11_02230088: ; 0x02230088
+ mov r2, #0x5f
+ lsl r2, r2, #2
+ add r2, r0, r2
+ lsl r0, r1, #4
+ add r0, r2, r0
+ bx lr
+
+ thumb_func_start MOD11_02230094
+MOD11_02230094: ; 0x02230094
+ mov r1, #0x67
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_0223009C
+MOD11_0223009C: ; 0x0223009C
+ lsl r1, r1, #2
+ add r1, r0, r1
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ bx lr
+
+ thumb_func_start MOD11_022300A8
+MOD11_022300A8: ; 0x022300A8
+ lsl r1, r1, #2
+ add r1, r0, r1
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ bx lr
+
+ thumb_func_start MOD11_022300B4
+MOD11_022300B4: ; 0x022300B4
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_022300BC
+MOD11_022300BC: ; 0x022300BC
+ mov r1, #0x6b
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_022300C4
+MOD11_022300C4: ; 0x022300C4
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start MOD11_022300C8
+MOD11_022300C8: ; 0x022300C8
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start MOD11_022300CC
+MOD11_022300CC: ; 0x022300CC
+ ldr r0, [r0, #0x28]
+ bx lr
+
+ thumb_func_start MOD11_022300D0
+MOD11_022300D0: ; 0x022300D0
+ ldr r0, [r0, #0x60]
+ bx lr
+
+ thumb_func_start MOD11_022300D4
+MOD11_022300D4: ; 0x022300D4
+ mov r1, #0x89
+ lsl r1, r1, #2
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start MOD11_022300DC
+MOD11_022300DC: ; 0x022300DC
+ ldr r1, _022300E4 ; =0x00001224
+ add r0, r0, r1
+ bx lr
+ nop
+_022300E4: .word 0x00001224
+
+ thumb_func_start MOD11_022300E8
+MOD11_022300E8: ; 0x022300E8
+ ldr r1, _022300F0 ; =0x000023E4
+ add r0, r0, r1
+ bx lr
+ nop
+_022300F0: .word 0x000023E4
+
+ thumb_func_start MOD11_022300F4
+MOD11_022300F4: ; 0x022300F4
+ ldr r1, _022300FC ; =0x000023E6
+ add r0, r0, r1
+ bx lr
+ nop
+_022300FC: .word 0x000023E6
+
+ thumb_func_start MOD11_02230100
+MOD11_02230100: ; 0x02230100
+ ldr r1, _02230108 ; =0x000023E8
+ add r0, r0, r1
+ bx lr
+ nop
+_02230108: .word 0x000023E8
+
+ thumb_func_start MOD11_0223010C
+MOD11_0223010C: ; 0x0223010C
+ ldr r1, _02230114 ; =0x000023EA
+ add r0, r0, r1
+ bx lr
+ nop
+_02230114: .word 0x000023EA
+
+ thumb_func_start MOD11_02230118
+MOD11_02230118: ; 0x02230118
+ ldr r1, _02230120 ; =0x000023EC
+ add r0, r0, r1
+ bx lr
+ nop
+_02230120: .word 0x000023EC
+
+ thumb_func_start MOD11_02230124
+MOD11_02230124: ; 0x02230124
+ ldr r1, _0223012C ; =0x000023EE
+ add r0, r0, r1
+ bx lr
+ nop
+_0223012C: .word 0x000023EE
+
+ thumb_func_start MOD11_02230130
+MOD11_02230130: ; 0x02230130
+ mov r1, #0x73
+ lsl r1, r1, #2
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start MOD11_02230138
+MOD11_02230138: ; 0x02230138
+ ldr r0, [r0, #0x14]
+ bx lr
+
+ thumb_func_start MOD11_0223013C
+MOD11_0223013C: ; 0x0223013C
+ ldr r0, [r0, #0x18]
+ bx lr
+
+ thumb_func_start MOD11_02230140
+MOD11_02230140: ; 0x02230140
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _0223015E
+ mov r3, #0x10
+ tst r2, r3
+ beq _02230168
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _02230168
+_0223015E:
+ lsl r0, r4, #1
+ add r0, r5, r0
+ add r0, #0xa0
+ ldrh r0, [r0]
+ pop {r3, r4, r5, pc}
+_02230168:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _0223017C
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1e
+ add r0, r5, r0
+ add r0, #0xa0
+ ldrh r0, [r0]
+ pop {r3, r4, r5, pc}
+_0223017C:
+ lsl r0, r4, #1
+ add r0, r5, r0
+ add r0, #0xa0
+ ldrh r0, [r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230188
+MOD11_02230188: ; 0x02230188
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _022301A6
+ mov r3, #0x10
+ tst r2, r3
+ beq _022301B0
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _022301B0
+_022301A6:
+ mov r0, #0x34
+ add r5, #0xac
+ mul r0, r4
+ add r0, r5, r0
+ pop {r3, r4, r5, pc}
+_022301B0:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _022301C8
+ mov r0, #1
+ add r1, r4, #0
+ and r1, r0
+ mov r0, #0x34
+ add r5, #0xac
+ mul r0, r1
+ add r0, r5, r0
+ pop {r3, r4, r5, pc}
+_022301C8:
+ mov r0, #0x34
+ add r5, #0xac
+ mul r0, r4
+ add r0, r5, r0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022301D4
+MOD11_022301D4: ; 0x022301D4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _022301F2
+ mov r3, #0x10
+ tst r2, r3
+ beq _022301FA
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _022301FA
+_022301F2:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x48]
+ pop {r3, r4, r5, pc}
+_022301FA:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _0223020C
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1d
+ add r0, r5, r0
+ ldr r0, [r0, #0x48]
+ pop {r3, r4, r5, pc}
+_0223020C:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x48]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02230214
+MOD11_02230214: ; 0x02230214
+ ldr r0, [r0, #0x58]
+ bx lr
+
+ thumb_func_start MOD11_02230218
+MOD11_02230218: ; 0x02230218
+ ldr r0, [r0, #0x5c]
+ bx lr
+
+ thumb_func_start MOD11_0223021C
+MOD11_0223021C: ; 0x0223021C
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r3, _02230228 ; =0x020239CD
+ ldr r0, [r0, #0x48]
+ bx r3
+ nop
+_02230228: .word 0x020239CD
+
+ thumb_func_start MOD11_0223022C
+MOD11_0223022C: ; 0x0223022C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ add r7, r1, #0
+ mov r4, #0
+ cmp r0, #0
+ ble _02230250
+ add r5, r6, #0
+_0223023C:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A4C
+ cmp r7, r0
+ beq _02230250
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _0223023C
+_02230250:
+ ldr r0, [r6, #0x44]
+ cmp r4, r0
+ blt _0223025A
+ bl ErrorHandling
+_0223025A:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230260
+MOD11_02230260: ; 0x02230260
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r3, _0223026C ; =MOD11_02253A4C
+ ldr r0, [r0, #0x34]
+ bx r3
+ nop
+_0223026C: .word MOD11_02253A4C
+
+ thumb_func_start MOD11_02230270
+MOD11_02230270: ; 0x02230270
+ push {r3, lr}
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r0, [r0, #0x34]
+ bl MOD11_02253A4C
+ mov r1, #1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230288
+MOD11_02230288: ; 0x02230288
+ mov r1, #0x1b
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_02230290
+MOD11_02230290: ; 0x02230290
+ ldr r0, [r0, #0x64]
+ bx lr
+
+ thumb_func_start MOD11_02230294
+MOD11_02230294: ; 0x02230294
+ ldr r1, _022302A4 ; =0x000023FC
+ ldr r0, [r0, r1]
+ cmp r0, #0xc
+ bgt _022302A0
+ cmp r0, #0
+ bge _022302A2
+_022302A0:
+ mov r0, #0xc
+_022302A2:
+ bx lr
+ .align 2, 0
+_022302A4: .word 0x000023FC
+
+ thumb_func_start MOD11_022302A8
+MOD11_022302A8: ; 0x022302A8
+ mov r1, #9
+ lsl r1, r1, #0xa
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_022302B0
+MOD11_022302B0: ; 0x022302B0
+ ldr r1, _022302B8 ; =0x00002404
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_022302B8: .word 0x00002404
+
+ thumb_func_start MOD11_022302BC
+MOD11_022302BC: ; 0x022302BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp]
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022302D8
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022302D8:
+ ldr r0, [sp]
+ mov r4, #0
+ cmp r0, #0
+ ble _02230302
+_022302E0:
+ cmp r4, r5
+ beq _022302FA
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ cmp r7, r0
+ beq _02230302
+_022302FA:
+ ldr r0, [sp]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _022302E0
+_02230302:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230308
+MOD11_02230308: ; 0x02230308
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r6, r1, #0
+ str r2, [sp]
+ bl MOD11_0222FF84
+ str r0, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _0223032C
+ mov r0, #1
+ add sp, #8
+ eor r0, r6
+ pop {r3, r4, r5, r6, r7, pc}
+_0223032C:
+ ldr r0, [sp, #4]
+ mov r4, #0
+ cmp r0, #0
+ ble _02230368
+_02230334:
+ cmp r4, r6
+ beq _02230360
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02230260
+ mov r1, #2
+ and r1, r0
+ ldr r0, [sp]
+ cmp r0, r1
+ bne _02230360
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02230270
+ cmp r7, r0
+ bne _02230368
+_02230360:
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _02230334
+_02230368:
+ add r0, r4, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230370
+MOD11_02230370: ; 0x02230370
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r6, r1, #0
+ ldr r1, [sp, #0x38]
+ add r5, r2, #0
+ str r1, [sp, #0x38]
+ add r1, r0, #0
+ ldr r1, [r1, #0x30]
+ add r4, r3, #0
+ str r1, [sp, #0x1c]
+ mov r1, #0
+ str r1, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #4]
+ mov r2, #2
+ add r3, r6, #0
+ bl MOD11_0224C474
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ cmp r0, #3
+ beq _022303BA
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ beq _022303E0
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ bne _022303E0
+_022303BA:
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_022302BC
+ add r3, r0, #0
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x1c]
+ mov r2, #2
+ bl MOD11_0224C474
+ str r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022303E4
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_022302BC
+ add r6, r0, #0
+ b _022303E4
+_022303E0:
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #0xc]
+_022303E4:
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD11_02230014
+ str r0, [sp, #0x18]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x38]
+ mov r1, #0xf
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230478
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ mov r1, #7
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _02230478
+ mov r1, #7
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ add r2, sp, #0x20
+ bl FUN_02067830
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230434
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230474
+_02230434:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #7
+ str r0, [sp, #0x20]
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, _02230688 ; =0xF7FFFFFF
+ str r0, [sp, #0x20]
+ and r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+_02230474:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230478:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x10
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022304DC
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _0223068C ; =0x00000F88
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _022304DC
+ ldr r1, _02230690 ; =0xFFFFF077
+ add r2, sp, #0x20
+ and r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ bl FUN_02067830
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _022304B8
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022304D8
+_022304B8:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, _02230690 ; =0xFFFFF077
+ str r0, [sp, #0x20]
+ and r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+_022304D8:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022304DC:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x11
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230540
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ mov r1, #0x10
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _02230540
+ mov r1, #0x10
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ add r2, sp, #0x20
+ bl FUN_02067830
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _0223051C
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _0223053C
+_0223051C:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #0x10
+ str r0, [sp, #0x20]
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+_0223053C:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230540:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x12
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022305A4
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ mov r1, #0x20
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _022305A4
+ mov r1, #0x20
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ add r2, sp, #0x20
+ bl FUN_02067830
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230580
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022305A0
+_02230580:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #0x20
+ str r0, [sp, #0x20]
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+_022305A0:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022305A4:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x13
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230608
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ mov r1, #0x40
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _02230608
+ mov r1, #0x40
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ add r2, sp, #0x20
+ bl FUN_02067830
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _022305E4
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230604
+_022305E4:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #0x40
+ str r0, [sp, #0x20]
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+_02230604:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230608:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x14
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230650
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230626
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230650
+_02230626:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #7
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _02230650
+ mov r1, #7
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230650:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x15
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022306AC
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _0223066E
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022306AC
+_0223066E:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #0xf
+ lsl r1, r1, #0x10
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _022306AC
+ ldr r1, _02230694 ; =0xFFF0FFFF
+ b _02230698
+ .align 2, 0
+_02230688: .word 0xF7FFFFFF
+_0223068C: .word 0x00000F88
+_02230690: .word 0xFFFFF077
+_02230694: .word 0xFFF0FFFF
+_02230698:
+ mov r2, #0x35
+ and r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022306AC:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x16
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230706
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x1c]
+ mov r2, #1
+ add r3, r6, #0
+ bl MOD11_0224C474
+ str r0, [sp, #0x20]
+ cmp r0, #0
+ bne _02230706
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x1c]
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD11_0224C474
+ mov r1, #0x40
+ str r0, [sp, #0x20]
+ orr r0, r1
+ str r0, [sp, #0x20]
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x1c]
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD11_0224C54C
+ mov r0, #5
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x1c]
+ mov r2, #1
+ add r3, r6, #0
+ bl MOD11_0224C54C
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230706:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x1b
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230744
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230724
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230744
+_02230724:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x13
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _02230744
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x13
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230744:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x1c
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230782
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230762
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230782
+_02230762:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x14
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _02230782
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x14
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230782:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x1d
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022307C0
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _022307A0
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022307C0
+_022307A0:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x16
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _022307C0
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x16
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022307C0:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x1e
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022307FE
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _022307DE
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022307FE
+_022307DE:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x17
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _022307FE
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x17
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022307FE:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x1f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _0223083C
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _0223081C
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _0223083C
+_0223081C:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x15
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _0223083C
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x15
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_0223083C:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x20
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _0223087A
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _0223085A
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _0223087A
+_0223085A:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x18
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _0223087A
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x18
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_0223087A:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x21
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022308C4
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230898
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022308C4
+_02230898:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #1
+ lsl r1, r1, #0x14
+ add r2, r0, #0
+ str r0, [sp, #0x20]
+ tst r2, r1
+ bne _022308C4
+ orr r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022308C4:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x24
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _0223095A
+ ldr r0, [sp, #0x38]
+ mov r1, #0x37
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #0x20]
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x3a
+ mov r2, #0
+ bl FUN_020671BC
+ add r7, r0, #0
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x42
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r7, r0
+ beq _0223095A
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x20]
+ add r1, #0x3a
+ bl FUN_02068018
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _0223091C
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230956
+_0223091C:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r0, r1
+ bne _02230956
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x4b
+ mov r3, #0
+ bl MOD11_02243420
+ add r7, r0, #0
+ add r0, r4, #0
+ bl FUN_0206A92C
+ tst r0, r7
+ bne _02230956
+ add r4, #0x1f
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02243DB0
+_02230956:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_0223095A:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x25
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022309F8
+ ldr r0, [sp, #0x38]
+ mov r1, #0x37
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #0x20]
+ mov r4, #0
+_0223097E:
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x3a
+ mov r2, #0
+ bl FUN_020671BC
+ add r7, r0, #0
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x42
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r7, r0
+ beq _022309F2
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x20]
+ add r1, #0x3a
+ bl FUN_02068018
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _022309B4
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022309EE
+_022309B4:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r0, r1
+ bne _022309EE
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x4b
+ mov r3, #0
+ bl MOD11_02243420
+ add r7, r0, #0
+ add r0, r4, #0
+ bl FUN_0206A92C
+ tst r0, r7
+ bne _022309EE
+ add r2, r4, #0
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ add r1, r6, #0
+ add r2, #0x1f
+ bl MOD11_02243DB0
+_022309EE:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022309F2:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0223097E
+_022309F8:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x26
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ bne _02230A0C
+ b _02230B14
+_02230A0C:
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x38]
+ mov r1, #0x17
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230A36
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _02230A42
+ mov r0, #1
+ str r0, [sp, #0x20]
+ b _02230A42
+_02230A36:
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0x20]
+_02230A42:
+ ldr r0, [sp, #0x20]
+ cmp r0, #0
+ beq _02230B14
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ add r4, r0, #0
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa3
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r4, r0
+ beq _02230B14
+ ldr r0, [sp, #0x38]
+ mov r1, #0x36
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #0x20]
+ cmp r0, #0xfd
+ beq _02230AA2
+ cmp r0, #0xfe
+ beq _02230A8C
+ cmp r0, #0xff
+ bne _02230AC2
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa3
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0x20]
+ b _02230AC2
+_02230A8C:
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa3
+ mov r2, #0
+ bl FUN_020671BC
+ lsr r0, r0, #1
+ str r0, [sp, #0x20]
+ bne _02230AC2
+ mov r0, #1
+ str r0, [sp, #0x20]
+ b _02230AC2
+_02230AA2:
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa3
+ mov r2, #0
+ bl FUN_020671BC
+ mov r1, #0x19
+ mul r1, r0
+ add r0, r1, #0
+ mov r1, #0x64
+ blx _u32_div_f
+ str r0, [sp, #0x20]
+ cmp r0, #0
+ bne _02230AC2
+ mov r0, #1
+ str r0, [sp, #0x20]
+_02230AC2:
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x20]
+ mov r1, #0xa2
+ bl FUN_02068018
+ ldr r0, [sp, #0x38]
+ mov r1, #0x17
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ bne _02230B10
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02230AF8
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x5f
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+ b _02230B10
+_02230AF8:
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230B04
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230B10
+_02230B04:
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ add r1, r6, #0
+ mov r2, #0x2f
+ bl MOD11_02243DB0
+_02230B10:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230B14:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x2d
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230B4A
+ ldr r0, [sp, #0x18]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0x64
+ bhs _02230B4A
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ bne _02230B4A
+ ldr r0, [sp, #0x38]
+ mov r1, #0x38
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #8]
+_02230B4A:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x2e
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230B8E
+ ldr r0, [sp, #0x18]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0x64
+ blo _02230B8E
+ ldr r0, [sp, #0x18]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0xc8
+ bhs _02230B8E
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ bne _02230B8E
+ ldr r0, [sp, #0x38]
+ mov r1, #0x39
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #8]
+_02230B8E:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x2f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230BC4
+ ldr r0, [sp, #0x18]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0xc8
+ blo _02230BC4
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ bne _02230BC4
+ ldr r0, [sp, #0x38]
+ mov r1, #0x3a
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #8]
+_02230BC4:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _02230C4A
+ ble _02230C28
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9a
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0xb
+ bne _02230BE0
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+_02230BE0:
+ ldr r0, [sp, #0x18]
+ mov r1, #0x97
+ mov r2, #0
+ bl FUN_020671BC
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ bl MOD11_022302B0
+ cmp r4, r0
+ bne _02230BFC
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+_02230BFC:
+ ldr r0, [sp, #0x18]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x38]
+ mov r1, #1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0x34
+ bne _02230C28
+ ldr r1, [sp, #8]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ blx _s32_div_f
+ str r0, [sp, #8]
+_02230C28:
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #8]
+ mov r1, #9
+ bl FUN_02068018
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230C3E
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230C4A
+_02230C3E:
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #8]
+ add r1, r6, #0
+ mov r2, #0x2c
+ bl MOD11_02243DB0
+_02230C4A:
+ ldr r0, [sp, #0x14]
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02230C50
+MOD11_02230C50: ; 0x02230C50
+ ldr r1, _02230C58 ; =0x00002408
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02230C58: .word 0x00002408
+
+ thumb_func_start MOD11_02230C5C
+MOD11_02230C5C: ; 0x02230C5C
+ ldr r1, _02230C64 ; =0x0000240C
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02230C64: .word 0x0000240C
+
+ thumb_func_start MOD11_02230C68
+MOD11_02230C68: ; 0x02230C68
+ mov r2, #9
+ lsl r2, r2, #0xa
+ ldr r1, [r0, r2]
+ cmp r1, #5
+ bhi _02230CB4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02230C7E: ; jump table
+ .short _02230C8A - _02230C7E - 2 ; case 0
+ .short _02230C8A - _02230C7E - 2 ; case 1
+ .short _02230C8A - _02230C7E - 2 ; case 2
+ .short _02230C8A - _02230C7E - 2 ; case 3
+ .short _02230C8A - _02230C7E - 2 ; case 4
+ .short _02230C8A - _02230C7E - 2 ; case 5
+_02230C8A:
+ add r2, #0xc
+ ldr r1, [r0, r2]
+ cmp r1, #4
+ bhi _02230CB6
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02230C9E: ; jump table
+ .short _02230CA8 - _02230C9E - 2 ; case 0
+ .short _02230CA8 - _02230C9E - 2 ; case 1
+ .short _02230CAC - _02230C9E - 2 ; case 2
+ .short _02230CB0 - _02230C9E - 2 ; case 3
+ .short _02230CB0 - _02230C9E - 2 ; case 4
+_02230CA8:
+ mov r0, #0
+ bx lr
+_02230CAC:
+ mov r0, #1
+ bx lr
+_02230CB0:
+ mov r0, #2
+ bx lr
+_02230CB4:
+ mov r0, #0
+_02230CB6:
+ bx lr
+
+ thumb_func_start MOD11_02230CB8
+MOD11_02230CB8: ; 0x02230CB8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02230260
+ cmp r0, #4
+ bne _02230D32
+ ldr r1, [r5, #0x2c]
+ mov r0, #8
+ tst r0, r1
+ bne _02230D32
+ mov r0, #4
+ tst r0, r1
+ beq _02230CEE
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022302BC
+ bl FUN_0206A92C
+ mov r1, #0x91
+ lsl r1, r1, #6
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _02230D32
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02230CEE:
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ mov r2, #0xc
+ mov r3, #0
+ bl MOD11_0224C474
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_0224C474
+ cmp r0, #0xe
+ bne _02230D12
+ cmp r4, #0x10
+ bhi _02230D2A
+_02230D12:
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ mov r2, #0xa
+ mov r3, #0
+ bl MOD11_0224C474
+ add r4, r0, #0
+ mov r0, #0
+ bl FUN_0206A92C
+ tst r0, r4
+ beq _02230D2E
+_02230D2A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02230D2E:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02230D32:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230D38
+MOD11_02230D38: ; 0x02230D38
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x14]
+ add r4, r1, #0
+ add r7, r2, #0
+ cmp r0, #1
+ beq _02230D5A
+ cmp r0, #4
+ beq _02230D5A
+ cmp r0, #5
+ beq _02230D5A
+ ldr r0, [sp, #4]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02230D5A:
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02230DCE
+_02230D64:
+ mov r0, #0
+ str r0, [r4]
+ cmp r0, #6
+ bge _02230D9C
+ mov r6, #0x5e
+ lsl r6, r6, #2
+_02230D70:
+ bl FUN_0206A92C
+ ldr r1, [r5, r6]
+ tst r0, r1
+ beq _02230D92
+ ldr r0, [r4]
+ bl FUN_0206A92C
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ mov r2, #0
+ mvn r2, r2
+ ldr r1, [r5, r3]
+ eor r0, r2
+ and r0, r1
+ str r0, [r5, r3]
+ b _02230D9C
+_02230D92:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ cmp r0, #6
+ blt _02230D70
+_02230D9C:
+ ldr r1, [r4]
+ cmp r1, #6
+ bge _02230DC4
+ ldr r0, [r5, #4]
+ bl FUN_0206B9B0
+ mov r3, #0x59
+ str r7, [sp]
+ lsl r3, r3, #2
+ ldr r3, [r5, r3]
+ add r1, r0, #0
+ lsl r3, r3, #0x10
+ ldr r0, [r5, #4]
+ mov r2, #0
+ lsr r3, r3, #0x10
+ bl FUN_02069168
+ str r0, [sp, #4]
+ cmp r0, #0
+ bne _02230DD0
+_02230DC4:
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _02230D64
+_02230DCE:
+ ldr r0, [sp, #4]
+_02230DD0:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02230DD4
+MOD11_02230DD4: ; 0x02230DD4
+ ldr r1, _02230DDC ; =0x000023F8
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02230DDC: .word 0x000023F8
+
+ thumb_func_start MOD11_02230DE0
+MOD11_02230DE0: ; 0x02230DE0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ bne _02230DEE
+ bl ErrorHandling
+_02230DEE:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #5
+ mov r3, #0
+ bl MOD11_0224C474
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02230E00
+MOD11_02230E00: ; 0x02230E00
+ ldr r1, _02230E08 ; =0x00002410
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02230E08: .word 0x00002410
+
+ thumb_func_start MOD11_02230E0C
+MOD11_02230E0C: ; 0x02230E0C
+ ldr r2, _02230E14 ; =0x00002410
+ str r1, [r0, r2]
+ bx lr
+ nop
+_02230E14: .word 0x00002410
+
+ thumb_func_start MOD11_02230E18
+MOD11_02230E18: ; 0x02230E18
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_02230E20
+MOD11_02230E20: ; 0x02230E20
+ push {r3, lr}
+ ldr r2, [r0, #0x2c]
+ mov r1, #4
+ tst r1, r2
+ beq _02230E2E
+ mov r0, #1
+ pop {r3, pc}
+_02230E2E:
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bl FUN_0202502C
+ cmp r0, #0
+ bne _02230E40
+ mov r0, #1
+ pop {r3, pc}
+_02230E40:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02230E44
+MOD11_02230E44: ; 0x02230E44
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ ldr r3, _02230E50 ; =0x02025085
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_02230E50: .word 0x02025085
+
+ thumb_func_start MOD11_02230E54
+MOD11_02230E54: ; 0x02230E54
+ push {r3, lr}
+ ldr r2, [r0, #0x2c]
+ mov r1, #4
+ tst r1, r2
+ beq _02230E62
+ mov r0, #1
+ pop {r3, pc}
+_02230E62:
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bl FUN_02024FF4
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230E70
+MOD11_02230E70: ; 0x02230E70
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ ldr r3, _02230E7C ; =0x02025049
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_02230E7C: .word 0x02025049
+
+ thumb_func_start MOD11_02230E80
+MOD11_02230E80: ; 0x02230E80
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_02230E88
+MOD11_02230E88: ; 0x02230E88
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _02230EA6
+ mov r3, #0x10
+ tst r2, r3
+ beq _02230EAE
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _02230EAE
+_02230EA6:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x78]
+ pop {r3, r4, r5, pc}
+_02230EAE:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _02230EC0
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1d
+ add r0, r5, r0
+ ldr r0, [r0, #0x78]
+ pop {r3, r4, r5, pc}
+_02230EC0:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x78]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02230EC8
+MOD11_02230EC8: ; 0x02230EC8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r1, #0xa9
+ ldr r2, [r5, #0x2c]
+ lsl r1, r1, #2
+ tst r1, r2
+ bne _02230F66
+ mov r4, #0
+ add r1, r4, #0
+ bl MOD11_0222FFC8
+ cmp r0, #0
+ ble _02230F66
+ add r7, r4, #0
+_02230EE4:
+ add r0, r5, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD11_02230014
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ mov r0, #0x67
+ lsl r0, r0, #2
+ cmp r1, r0
+ bne _02230F58
+ add r0, r4, #0
+ bl FUN_0206A92C
+ ldr r1, _02230F68 ; =0x00002414
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ beq _02230F58
+ add r0, r5, #0
+ bl MOD11_02230294
+ cmp r0, #0xb
+ bhi _02230F40
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02230F28: ; jump table
+ .short _02230F44 - _02230F28 - 2 ; case 0
+ .short _02230F44 - _02230F28 - 2 ; case 1
+ .short _02230F40 - _02230F28 - 2 ; case 2
+ .short _02230F40 - _02230F28 - 2 ; case 3
+ .short _02230F44 - _02230F28 - 2 ; case 4
+ .short _02230F44 - _02230F28 - 2 ; case 5
+ .short _02230F40 - _02230F28 - 2 ; case 6
+ .short _02230F40 - _02230F28 - 2 ; case 7
+ .short _02230F40 - _02230F28 - 2 ; case 8
+ .short _02230F4A - _02230F28 - 2 ; case 9
+ .short _02230F40 - _02230F28 - 2 ; case 10
+ .short _02230F4A - _02230F28 - 2 ; case 11
+_02230F40:
+ str r7, [sp]
+ b _02230F4E
+_02230F44:
+ mov r0, #1
+ str r0, [sp]
+ b _02230F4E
+_02230F4A:
+ mov r0, #2
+ str r0, [sp]
+_02230F4E:
+ add r0, r6, #0
+ mov r1, #0x70
+ add r2, sp, #0
+ bl FUN_02067830
+_02230F58:
+ add r0, r5, #0
+ mov r1, #0
+ add r4, r4, #1
+ bl MOD11_0222FFC8
+ cmp r4, r0
+ blt _02230EE4
+_02230F66:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02230F68: .word 0x00002414
+
+ thumb_func_start MOD11_02230F6C
+MOD11_02230F6C: ; 0x02230F6C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r2, #0
+ add r4, r1, #0
+ bl FUN_0206A92C
+ ldr r1, _02230F84 ; =0x00002414
+ add r2, r5, r1
+ ldrb r1, [r2, r4]
+ orr r0, r1
+ strb r0, [r2, r4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02230F84: .word 0x00002414
+
+ thumb_func_start MOD11_02230F88
+MOD11_02230F88: ; 0x02230F88
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02230FA4
+ add r0, r1, #0
+ bl FUN_020690E4
+ add r4, #0x98
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl FUN_0204C104
+_02230FA4:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230FA8
+MOD11_02230FA8: ; 0x02230FA8
+ push {r3, r4, lr}
+ sub sp, #4
+ add r3, r0, #0
+ mov r0, #5
+ str r0, [sp]
+ ldr r4, _02230FC8 ; =0x0000241C
+ add r0, r3, #0
+ ldrb r2, [r3, r4]
+ add r4, r4, #2
+ add r0, #0x9c
+ ldrh r3, [r3, r4]
+ ldr r0, [r0]
+ bl FUN_02061028
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02230FC8: .word 0x0000241C
+
+ thumb_func_start MOD11_02230FCC
+MOD11_02230FCC: ; 0x02230FCC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ mov r1, #1
+ add r4, r0, #0
+ mov r0, #5
+ lsl r1, r1, #0x10
+ bl FUN_02016998
+ mov r1, #0x87
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #5
+ sub r1, #0x1c
+ bl FUN_02016998
+ mov r1, #0x22
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ sub r1, r1, #4
+ mov r2, #1
+ ldr r0, _02231224 ; =0x06010000
+ ldr r1, [r4, r1]
+ lsl r2, r2, #0x10
+ blx MIi_CpuCopy32
+ mov r0, #0x22
+ lsl r0, r0, #4
+ ldr r5, [r4, r0]
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020031FC
+ mov r2, #2
+ add r1, r5, #0
+ lsl r2, r2, #8
+ blx MIi_CpuCopy32
+ mov r0, #0x19
+ lsl r0, r0, #0x16
+ str r0, [sp, #0x24]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r0, [r0]
+ bl FUN_02020350
+ ldr r1, [r0, #4]
+ ldr r0, [sp, #0x24]
+ add r0, r0, r1
+ str r0, [sp, #0x24]
+ mov r0, #0x14
+ str r0, [sp, #0x28]
+ lsl r0, r0, #0xb
+ str r0, [sp, #0xc]
+_02231038:
+ mov r0, #0x10
+ mov ip, r0
+ lsl r0, r0, #6
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x28]
+ mov r7, #1
+ sub r0, #0x14
+ lsl r1, r0, #8
+ ldr r0, [sp, #0x24]
+ add r0, r0, r1
+ str r0, [sp, #0x10]
+_0223104E:
+ mov r0, ip
+ sub r0, #0x10
+ ldr r1, [sp, #0x10]
+ lsl r3, r0, #5
+ add r3, r1, r3
+ ldr r5, [sp, #0xc]
+ ldr r1, [sp, #0x14]
+ mov r2, #0
+ add r6, r5, r1
+_02231060:
+ cmp r0, #8
+ bge _02231088
+ add r1, r2, #0
+ tst r1, r7
+ beq _0223107A
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ asr r1, r1, #1
+ ldrb r5, [r3, r1]
+ mov r1, #0xf0
+ and r1, r5
+ asr r1, r1, #4
+ b _022310B6
+_0223107A:
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ asr r1, r1, #1
+ ldrb r5, [r3, r1]
+ mov r1, #0xf
+ and r1, r5
+ b _022310B6
+_02231088:
+ mov r1, #1
+ tst r1, r2
+ beq _022310A4
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ asr r1, r1, #1
+ add r5, r3, r1
+ mov r1, #7
+ lsl r1, r1, #8
+ ldrb r5, [r5, r1]
+ mov r1, #0xf0
+ and r1, r5
+ asr r1, r1, #4
+ b _022310B6
+_022310A4:
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ asr r1, r1, #1
+ add r5, r3, r1
+ mov r1, #7
+ lsl r1, r1, #8
+ ldrb r5, [r5, r1]
+ mov r1, #0xf
+ and r1, r5
+_022310B6:
+ cmp r1, #0
+ beq _022310C6
+ mov r5, #0x87
+ lsl r5, r5, #2
+ ldr r5, [r4, r5]
+ add r1, #0x70
+ add r5, r6, r5
+ strb r1, [r2, r5]
+_022310C6:
+ add r2, r2, #1
+ cmp r2, #0x40
+ blt _02231060
+ ldr r0, [sp, #0x14]
+ add r0, #0x40
+ str r0, [sp, #0x14]
+ mov r0, ip
+ add r0, r0, #1
+ mov ip, r0
+ cmp r0, #0x20
+ blt _0223104E
+ mov r1, #2
+ ldr r0, [sp, #0xc]
+ lsl r1, r1, #0xa
+ add r0, r0, r1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x28]
+ add r0, r0, #1
+ str r0, [sp, #0x28]
+ cmp r0, #0x1c
+ blt _02231038
+ mov r0, #0x19
+ lsl r0, r0, #0x16
+ str r0, [sp, #8]
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r0, [r0]
+ bl FUN_02020350
+ ldr r1, [r0, #4]
+ ldr r0, [sp, #8]
+ mov r7, #0x26
+ add r0, r0, r1
+ str r0, [sp, #8]
+ mov r3, #0
+ mov r0, #0xf
+ mov r1, #0xf0
+ lsl r7, r7, #0xa
+ mov r2, #1
+_02231116:
+ add r5, r3, #0
+ tst r5, r2
+ beq _0223112C
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ asr r6, r5, #1
+ ldr r5, [sp, #8]
+ ldrb r5, [r5, r6]
+ and r5, r1
+ asr r5, r5, #4
+ b _02231138
+_0223112C:
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ asr r6, r5, #1
+ ldr r5, [sp, #8]
+ ldrb r5, [r5, r6]
+ and r5, r0
+_02231138:
+ cmp r5, #0
+ beq _02231148
+ mov r6, #0x87
+ lsl r6, r6, #2
+ ldr r6, [r4, r6]
+ add r5, #0x70
+ add r6, r6, r3
+ strb r5, [r6, r7]
+_02231148:
+ mov r5, #2
+ add r3, r3, #1
+ lsl r5, r5, #0xa
+ cmp r3, r5
+ blt _02231116
+ mov r0, #0x1c
+ str r0, [sp, #4]
+ lsl r0, r0, #0xb
+ str r0, [sp, #0x18]
+_0223115A:
+ ldr r0, [sp, #4]
+ mov r2, #0
+ sub r0, #0x1c
+ lsl r1, r0, #8
+ ldr r0, [sp, #8]
+ str r2, [sp, #0x20]
+ add r0, r0, r1
+ str r0, [sp, #0x1c]
+ mov r7, #1
+_0223116C:
+ asr r0, r2, #2
+ lsr r0, r0, #0x1d
+ add r0, r2, r0
+ asr r0, r0, #3
+ lsl r1, r0, #0xa
+ ldr r0, [sp, #0x1c]
+ lsr r5, r2, #0x1f
+ add r6, r0, r1
+ lsl r1, r2, #0x1d
+ sub r1, r1, r5
+ mov r0, #0x1d
+ ror r1, r0
+ add r0, r5, r1
+ lsl r0, r0, #5
+ ldr r5, [sp, #0x18]
+ ldr r1, [sp, #0x20]
+ mov r3, #0
+ add r0, r6, r0
+ add r1, r5, r1
+_02231192:
+ add r5, r3, #0
+ tst r5, r7
+ beq _022311AE
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ asr r5, r5, #1
+ add r6, r0, r5
+ mov r5, #1
+ lsl r5, r5, #0xa
+ ldrb r6, [r6, r5]
+ mov r5, #0xf0
+ and r5, r6
+ asr r5, r5, #4
+ b _022311C0
+_022311AE:
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ asr r5, r5, #1
+ add r6, r0, r5
+ mov r5, #1
+ lsl r5, r5, #0xa
+ ldrb r6, [r6, r5]
+ mov r5, #0xf
+ and r5, r6
+_022311C0:
+ cmp r5, #0
+ beq _022311D0
+ mov r6, #0x87
+ lsl r6, r6, #2
+ ldr r6, [r4, r6]
+ add r5, #0x70
+ add r6, r1, r6
+ strb r5, [r3, r6]
+_022311D0:
+ add r3, r3, #1
+ cmp r3, #0x40
+ blt _02231192
+ ldr r0, [sp, #0x20]
+ add r2, r2, #1
+ add r0, #0x40
+ str r0, [sp, #0x20]
+ cmp r2, #0x18
+ blt _0223116C
+ mov r3, #2
+ ldr r0, [sp, #0x18]
+ lsl r3, r3, #0xa
+ add r0, r0, r3
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #0x20
+ blt _0223115A
+ mov r0, #0
+ mov r2, #0x87
+ str r0, [sp]
+ lsl r2, r2, #2
+ ldr r0, [r4, #4]
+ ldr r2, [r4, r2]
+ mov r1, #3
+ lsl r3, r3, #5
+ bl FUN_02017E14
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD11_0225840C
+ mov r0, #0x63
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD11_0225840C
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02231224: .word 0x06010000
+
+ thumb_func_start MOD11_02231228
+MOD11_02231228: ; 0x02231228
+ mov r1, #0x87
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_02231230
+MOD11_02231230: ; 0x02231230
+ mov r1, #0x22
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_02231238
+MOD11_02231238: ; 0x02231238
+ ldr r1, _02231240 ; =0x00002424
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02231240: .word 0x00002424
+
+ thumb_func_start MOD11_02231244
+MOD11_02231244: ; 0x02231244
+ ldr r1, _0223124C ; =0x00002224
+ add r0, r0, r1
+ bx lr
+ nop
+_0223124C: .word 0x00002224
+
+ thumb_func_start MOD11_02231250
+MOD11_02231250: ; 0x02231250
+ ldr r1, _02231258 ; =0x00002304
+ add r0, r0, r1
+ bx lr
+ nop
+_02231258: .word 0x00002304
+
+ thumb_func_start MOD11_0223125C
+MOD11_0223125C: ; 0x0223125C
+ ldr r1, _02231264 ; =0x00002428
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02231264: .word 0x00002428
+
+ thumb_func_start MOD11_02231268
+MOD11_02231268: ; 0x02231268
+ ldr r1, _02231270 ; =0x0000241D
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02231270: .word 0x0000241D
+
+ thumb_func_start MOD11_02231274
+MOD11_02231274: ; 0x02231274
+ ldr r2, _0223127C ; =0x0000241D
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_0223127C: .word 0x0000241D
+
+ thumb_func_start MOD11_02231280
+MOD11_02231280: ; 0x02231280
+ ldr r1, _02231288 ; =0x0000242C
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02231288: .word 0x0000242C
+
+ thumb_func_start MOD11_0223128C
+MOD11_0223128C: ; 0x0223128C
+ mov r2, #0x86
+ lsl r2, r2, #2
+ ldr r3, _02231298 ; =0x0202A0E9
+ ldr r0, [r0, r2]
+ bx r3
+ nop
+_02231298: .word 0x0202A0E9
+
+ thumb_func_start MOD11_0223129C
+MOD11_0223129C: ; 0x0223129C
+ mov r1, #0x86
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ ldr r3, _022312A8 ; =0x0202A171
+ mov r1, #0x16
+ bx r3
+ .align 2, 0
+_022312A8: .word 0x0202A171
+
+ thumb_func_start MOD11_022312AC
+MOD11_022312AC: ; 0x022312AC
+ ldr r2, _022312B4 ; =0x0000243C
+ str r1, [r0, r2]
+ bx lr
+ nop
+_022312B4: .word 0x0000243C
+
+ thumb_func_start MOD11_022312B8
+MOD11_022312B8: ; 0x022312B8
+ mov r2, #0x91
+ lsl r2, r2, #6
+ strb r1, [r0, r2]
+ bx lr
+
+ thumb_func_start MOD11_022312C0
+MOD11_022312C0: ; 0x022312C0
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_022312C8
+MOD11_022312C8: ; 0x022312C8
+ mov r2, #0x6f
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ bx lr
+
+ thumb_func_start MOD11_022312D0
+MOD11_022312D0: ; 0x022312D0
+ mov r2, #0x73
+ lsl r2, r2, #2
+ add r2, r0, r2
+ lsl r0, r1, #4
+ add r0, r2, r0
+ bx lr
+
+ thumb_func_start MOD11_022312DC
+MOD11_022312DC: ; 0x022312DC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #4
+ blt _022312EA
+ bl ErrorHandling
+_022312EA:
+ lsl r0, r5, #4
+ ldr r0, [r4, r0]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022312F0
+MOD11_022312F0: ; 0x022312F0
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #4
+ blt _02231300
+ bl ErrorHandling
+_02231300:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ str r6, [r0, #4]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02231308
+MOD11_02231308: ; 0x02231308
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #4
+ blt _02231318
+ bl ErrorHandling
+_02231318:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ str r6, [r0, #8]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02231320
+MOD11_02231320: ; 0x02231320
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #4
+ blt _02231330
+ bl ErrorHandling
+_02231330:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ str r6, [r0, #0xc]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02231338
+MOD11_02231338: ; 0x02231338
+ ldr r2, _02231340 ; =0x000023F9
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_02231340: .word 0x000023F9
+
+ thumb_func_start MOD11_02231344
+MOD11_02231344: ; 0x02231344
+ ldr r2, _0223134C ; =0x000023F0
+ str r1, [r0, r2]
+ bx lr
+ nop
+_0223134C: .word 0x000023F0
+
+ thumb_func_start MOD11_02231350
+MOD11_02231350: ; 0x02231350
+ ldr r2, _02231358 ; =0x000023F4
+ str r1, [r0, r2]
+ bx lr
+ nop
+_02231358: .word 0x000023F4
+
+ thumb_func_start MOD11_0223135C
+MOD11_0223135C: ; 0x0223135C
+ ldr r2, _02231364 ; =0x000023F0
+ ldr r0, [r0, r2]
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_02231364: .word 0x000023F0
+
+ thumb_func_start MOD11_02231368
+MOD11_02231368: ; 0x02231368
+ ldr r2, _02231370 ; =0x000023F4
+ ldr r0, [r0, r2]
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_02231370: .word 0x000023F4
+
+ thumb_func_start MOD11_02231374
+MOD11_02231374: ; 0x02231374
+ ldr r2, _0223137C ; =0x000023FA
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_0223137C: .word 0x000023FA
+
+ thumb_func_start MOD11_02231380
+MOD11_02231380: ; 0x02231380
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r3, _0223138C ; =MOD11_02253A70
+ ldr r0, [r0, #0x34]
+ bx r3
+ nop
+_0223138C: .word MOD11_02253A70
+
+ thumb_func_start MOD11_02231390
+MOD11_02231390: ; 0x02231390
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ mov r7, #0
+ cmp r0, #0
+ ble _022313DC
+ add r5, r6, #0
+_0223139E:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A70
+ add r4, r0, #0
+ str r6, [r4, #0xc]
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A4C
+ str r0, [sp]
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD11_02257F6C
+ add r1, r4, #0
+ add r1, #0x25
+ strb r0, [r1]
+ add r0, r4, #0
+ bl MOD11_02256FB0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_022572AC
+ ldr r0, [r6, #0x44]
+ add r7, r7, #1
+ add r5, r5, #4
+ cmp r7, r0
+ blt _0223139E
+_022313DC:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022313E0
+MOD11_022313E0: ; 0x022313E0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ mov r4, #0
+ cmp r0, #0
+ ble _0223140C
+ add r5, r6, #0
+ mov r7, #1
+_022313F0:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A70
+ ldr r1, [r0, #0x28]
+ cmp r1, #0
+ beq _02231402
+ add r1, r7, #0
+ bl MOD11_022572AC
+_02231402:
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _022313F0
+_0223140C:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02231410
+MOD11_02231410: ; 0x02231410
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ mov r4, #0
+ cmp r0, #0
+ ble _02231436
+ add r5, r6, #0
+ add r7, r4, #0
+_02231420:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A70
+ add r1, r7, #0
+ bl MOD11_022572AC
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _02231420
+_02231436:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02231438
+MOD11_02231438: ; 0x02231438
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ mov r4, #0
+ cmp r0, #0
+ ble _0223145A
+ add r5, r6, #0
+_02231446:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A70
+ bl MOD11_02257030
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _02231446
+_0223145A:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0223145C
+MOD11_0223145C: ; 0x0223145C
+ ldr r1, _02231464 ; =0x0000241C
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02231464: .word 0x0000241C
+
+ thumb_func_start MOD11_02231468
+MOD11_02231468: ; 0x02231468
+ ldr r2, _02231470 ; =0x0000241C
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_02231470: .word 0x0000241C
+
+ thumb_func_start MOD11_02231474
+MOD11_02231474: ; 0x02231474
+ ldr r1, _02231480 ; =0x000023FB
+ ldrb r0, [r0, r1]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1e
+ bx lr
+ nop
+_02231480: .word 0x000023FB
+
+ thumb_func_start MOD11_02231484
+MOD11_02231484: ; 0x02231484
+ push {r3, r4}
+ ldr r3, _0223149C ; =0x000023FB
+ lsl r1, r1, #0x1e
+ ldrb r4, [r0, r3]
+ mov r2, #0x18
+ lsr r1, r1, #0x1b
+ bic r4, r2
+ orr r1, r4
+ strb r1, [r0, r3]
+ pop {r3, r4}
+ bx lr
+ nop
+_0223149C: .word 0x000023FB
+
+ thumb_func_start MOD11_022314A0
+MOD11_022314A0: ; 0x022314A0
+ ldr r1, _022314AC ; =0x000023FB
+ ldrb r0, [r0, r1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1d
+ bx lr
+ nop
+_022314AC: .word 0x000023FB
+
+ thumb_func_start MOD11_022314B0
+MOD11_022314B0: ; 0x022314B0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #0xf
+ blo _022314BE
+ bl ErrorHandling
+_022314BE:
+ ldr r1, _022314D0 ; =0x000023FB
+ mov r0, #0xe0
+ ldrb r2, [r5, r1]
+ bic r2, r0
+ lsl r0, r4, #0x1d
+ lsr r0, r0, #0x18
+ orr r0, r2
+ strb r0, [r5, r1]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022314D0: .word 0x000023FB
+
+ thumb_func_start MOD11_022314D4
+MOD11_022314D4: ; 0x022314D4
+ ldr r2, _022314DC ; =0x00002438
+ str r1, [r0, r2]
+ bx lr
+ nop
+_022314DC: .word 0x00002438
+
+ thumb_func_start MOD11_022314E0
+MOD11_022314E0: ; 0x022314E0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ add r7, r1, #0
+ mov r4, #0
+ cmp r0, #0
+ ble _02231502
+ add r5, r6, #0
+_022314F0:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A4C
+ strb r4, [r7, r0]
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _022314F0
+_02231502:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02231504
+MOD11_02231504: ; 0x02231504
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r1, #0
+ mov r1, #0
+ mov r0, #0xff
+_0223150E:
+ strb r0, [r6, r1]
+ add r1, r1, #1
+ cmp r1, #4
+ blt _0223150E
+ ldr r0, [r7, #0x44]
+ mov r5, #0
+ cmp r0, #0
+ ble _02231532
+ add r4, r7, #0
+_02231520:
+ ldr r0, [r4, #0x34]
+ bl MOD11_02253A4C
+ strb r0, [r6, r5]
+ ldr r0, [r7, #0x44]
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, r0
+ blt _02231520
+_02231532:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02231534
+MOD11_02231534: ; 0x02231534
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r0, #0
+ add r6, r1, #0
+ add r5, r0, #0
+_0223153E:
+ add r0, r0, #1
+ stmia r1!, {r5}
+ cmp r0, #4
+ blt _0223153E
+ ldr r0, [r7, #0x44]
+ cmp r0, #0
+ ble _02231560
+ add r4, r7, #0
+_0223154E:
+ ldr r0, [r4, #0x34]
+ bl MOD11_02253A64
+ stmia r6!, {r0}
+ ldr r0, [r7, #0x44]
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, r0
+ blt _0223154E
+_02231560:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02231564
+MOD11_02231564: ; 0x02231564
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ add r7, r1, #0
+ mov r4, #0
+ cmp r0, #0
+ ble _0223158A
+ add r5, r6, #0
+_02231574:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A70
+ add r1, r7, #0
+ bl MOD11_02257264
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _02231574
+_0223158A:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223158C
+MOD11_0223158C: ; 0x0223158C
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ bl FUN_020239F4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ add r0, r5, #0
+ bl FUN_02069AEC
+ ldr r1, _022315BC ; =0x0225DC1C
+ lsl r0, r0, #2
+ ldrb r1, [r1, r4]
+ add r4, r1, #0
+ mul r4, r0
+ add r0, r6, #0
+ bl FUN_02023A10
+ cmp r4, r0
+ bls _022315B8
+ add r4, r0, #0
+_022315B8:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022315BC: .word 0x0225DC1C
+
+ thumb_func_start MOD11_022315C0
+MOD11_022315C0: ; 0x022315C0
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ lsl r0, r6, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x34]
+ bl MOD11_02253A4C
+ add r4, r0, #0
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ mov r2, #2
+ add r3, r6, #0
+ bl MOD11_0224C474
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02230014
+ add r6, r0, #0
+ ldr r0, [r5, #0x2c]
+ mov r1, #0x84
+ tst r1, r0
+ bne _02231606
+ mov r1, #1
+ tst r1, r4
+ bne _022315FE
+ sub r0, #0x4a
+ cmp r0, #1
+ bhi _02231606
+_022315FE:
+ ldr r0, [r5, #0x60]
+ add r1, r6, #0
+ bl FUN_0202498C
+_02231606:
+ mov r0, #1
+ tst r0, r4
+ bne _02231626
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl FUN_020671BC
+ mov r1, #0x67
+ lsl r1, r1, #2
+ cmp r0, r1
+ bne _02231626
+ ldr r0, [r5, #0x60]
+ add r1, r6, #0
+ bl FUN_02024AF0
+_02231626:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02231628
+MOD11_02231628: ; 0x02231628
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x34]
+ bl MOD11_02253A4C
+ ldr r2, [r5, #0x2c]
+ mov r1, #0x84
+ tst r1, r2
+ bne _02231664
+ mov r1, #1
+ tst r0, r1
+ beq _02231664
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ mov r2, #2
+ add r3, r4, #0
+ bl MOD11_0224C474
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02230014
+ add r1, r0, #0
+ ldr r0, [r5, #0x60]
+ bl FUN_02024AF0
+_02231664:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02231668
+MOD11_02231668: ; 0x02231668
+ ldr r3, _02231674 ; =0x02024595
+ lsl r1, r1, #0x10
+ ldr r0, [r0, #0x60]
+ lsr r1, r1, #0x10
+ bx r3
+ nop
+_02231674: .word 0x02024595
+
+ thumb_func_start MOD11_02231678
+MOD11_02231678: ; 0x02231678
+ ldr r0, _02231680 ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_02231680: .word 0x04000050
+
+ thumb_func_start MOD11_02231684
+MOD11_02231684: ; 0x02231684
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #0
+ str r2, [sp, #0xc]
+ add r7, r3, #0
+ bl MOD11_0222FF6C
+ add r6, r0, #0
+ ldr r1, [r5, #0x2c]
+ mov r0, #0x80
+ tst r0, r1
+ beq _0223174C
+ ldr r0, _02231780 ; =0x00002710
+ cmp r4, r0
+ bne _022316F6
+ cmp r7, #0x64
+ bne _022316BC
+ ldr r0, [sp, #0xc]
+ mov r1, #0x34
+ add r5, #0xd0
+ mul r1, r0
+ add r0, r5, r1
+ mov r1, #5
+ bl FUN_020137D4
+ b _022316CC
+_022316BC:
+ ldr r0, [sp, #0xc]
+ mov r1, #0x34
+ add r5, #0xd8
+ mul r1, r0
+ add r0, r5, r1
+ mov r1, #5
+ bl FUN_020137D4
+_022316CC:
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ ldr r0, [sp, #0x28]
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02231784 ; =MOD11_0223220C
+ mov r1, #1
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ bl FUN_0201BD84
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_02021A20
+ b _02231778
+_022316F6:
+ cmp r7, #0x64
+ bne _02231702
+ lsl r0, r4, #1
+ add r0, r4, r0
+ add r4, r0, #1
+ b _02231708
+_02231702:
+ lsl r0, r4, #1
+ add r0, r4, r0
+ add r4, r0, #2
+_02231708:
+ ldr r2, _02231788 ; =0x0000022B
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #5
+ bl FUN_0200A86C
+ add r1, r4, #0
+ add r7, r0, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ ldr r0, [sp, #0x28]
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02231784 ; =MOD11_0223220C
+ mov r1, #1
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ bl FUN_0201BD84
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_0200A8B8
+ b _02231778
+_0223174C:
+ ldr r2, [r5, #0x18]
+ add r0, r4, #0
+ add r1, r7, #0
+ mov r3, #5
+ bl FUN_0206AD4C
+ add r0, r6, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ ldr r0, [sp, #0x28]
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02231784 ; =MOD11_0223220C
+ mov r1, #1
+ str r0, [sp, #8]
+ ldr r2, [r5, #0x18]
+ add r0, r6, #0
+ bl FUN_0201BD84
+ add r5, r0, #0
+_02231778:
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02231780: .word 0x00002710
+_02231784: .word MOD11_0223220C
+_02231788: .word 0x0000022B
+
+ thumb_func_start MOD11_0223178C
+MOD11_0223178C: ; 0x0223178C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r1, [sp, #0xc]
+ add r5, r0, #0
+ add r4, r2, #0
+ mov r1, #0
+ add r6, r3, #0
+ bl MOD11_0222FF6C
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02231850
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02231A4C
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD11_022321EC
+ add r0, r7, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _022317DC ; =MOD11_0223220C
+ str r6, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, [r5, #0x18]
+ add r0, r7, #0
+ mov r1, #1
+ bl FUN_0201BD84
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022317DC: .word MOD11_0223220C
+
+ thumb_func_start MOD11_022317E0
+MOD11_022317E0: ; 0x022317E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r3, #0
+ add r4, r1, #0
+ add r5, r0, #0
+ add r1, r7, #0
+ add r6, r2, #0
+ bl MOD11_02231850
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02231A4C
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_022321EC
+ ldr r1, [sp, #0x28]
+ mov r0, #1
+ tst r0, r1
+ beq _02231814
+ add r0, r4, #0
+ mov r1, #0xff
+ bl FUN_02019620
+_02231814:
+ ldr r1, [sp, #0x28]
+ mov r0, #2
+ tst r0, r1
+ beq _0223182C
+ mov r0, #0
+ ldr r1, [r5, #0x18]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldr r1, [sp, #0x2c]
+ sub r3, r1, r0
+ b _0223182E
+_0223182C:
+ mov r3, #0
+_0223182E:
+ ldr r0, [sp, #0x24]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #4]
+ ldr r0, _0223184C ; =MOD11_0223220C
+ str r0, [sp, #8]
+ add r0, r4, #0
+ ldr r4, [sp, #0x20]
+ ldr r2, [r5, #0x18]
+ add r3, r4, r3
+ bl FUN_0201BD84
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223184C: .word MOD11_0223220C
+
+ thumb_func_start MOD11_02231850
+MOD11_02231850: ; 0x02231850
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ bl MOD11_0222FF74
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ mov r1, #0x80
+ tst r1, r0
+ bne _02231876
+ mov r1, #0x40
+ tst r1, r0
+ beq _02231880
+ ldr r1, [r4, #0x20]
+ add r0, r6, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02231878
+_02231876:
+ b _02231A4A
+_02231878:
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02231880:
+ mov r1, #0x3f
+ and r0, r1
+ cmp r0, #0x3c
+ bls _0223188A
+ b _02231A46
+_0223188A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02231896: ; jump table
+ .short _02231A4A - _02231896 - 2 ; case 0
+ .short _02231910 - _02231896 - 2 ; case 1
+ .short _02231928 - _02231896 - 2 ; case 2
+ .short _02231A4A - _02231896 - 2 ; case 3
+ .short _02231A4A - _02231896 - 2 ; case 4
+ .short _02231A4A - _02231896 - 2 ; case 5
+ .short _02231A4A - _02231896 - 2 ; case 6
+ .short _02231A4A - _02231896 - 2 ; case 7
+ .short _02231A4A - _02231896 - 2 ; case 8
+ .short _0223198A - _02231896 - 2 ; case 9
+ .short _02231928 - _02231896 - 2 ; case 10
+ .short _02231928 - _02231896 - 2 ; case 11
+ .short _02231928 - _02231896 - 2 ; case 12
+ .short _02231928 - _02231896 - 2 ; case 13
+ .short _02231928 - _02231896 - 2 ; case 14
+ .short _02231928 - _02231896 - 2 ; case 15
+ .short _02231928 - _02231896 - 2 ; case 16
+ .short _02231928 - _02231896 - 2 ; case 17
+ .short _02231928 - _02231896 - 2 ; case 18
+ .short _02231928 - _02231896 - 2 ; case 19
+ .short _0223194E - _02231896 - 2 ; case 20
+ .short _02231966 - _02231896 - 2 ; case 21
+ .short _02231A4A - _02231896 - 2 ; case 22
+ .short _02231966 - _02231896 - 2 ; case 23
+ .short _02231A4A - _02231896 - 2 ; case 24
+ .short _02231A4A - _02231896 - 2 ; case 25
+ .short _02231A4A - _02231896 - 2 ; case 26
+ .short _02231A4A - _02231896 - 2 ; case 27
+ .short _02231A4A - _02231896 - 2 ; case 28
+ .short _02231A4A - _02231896 - 2 ; case 29
+ .short _02231A4A - _02231896 - 2 ; case 30
+ .short _0223198A - _02231896 - 2 ; case 31
+ .short _0223198A - _02231896 - 2 ; case 32
+ .short _0223198A - _02231896 - 2 ; case 33
+ .short _02231928 - _02231896 - 2 ; case 34
+ .short _02231928 - _02231896 - 2 ; case 35
+ .short _022319E8 - _02231896 - 2 ; case 36
+ .short _02231928 - _02231896 - 2 ; case 37
+ .short _02231928 - _02231896 - 2 ; case 38
+ .short _02231928 - _02231896 - 2 ; case 39
+ .short _02231928 - _02231896 - 2 ; case 40
+ .short _02231928 - _02231896 - 2 ; case 41
+ .short _02231928 - _02231896 - 2 ; case 42
+ .short _022319E8 - _02231896 - 2 ; case 43
+ .short _02231928 - _02231896 - 2 ; case 44
+ .short _02231928 - _02231896 - 2 ; case 45
+ .short _02231928 - _02231896 - 2 ; case 46
+ .short _02231928 - _02231896 - 2 ; case 47
+ .short _02231966 - _02231896 - 2 ; case 48
+ .short _02231A4A - _02231896 - 2 ; case 49
+ .short _02231A4A - _02231896 - 2 ; case 50
+ .short _02231A4A - _02231896 - 2 ; case 51
+ .short _022319E8 - _02231896 - 2 ; case 52
+ .short _022319E8 - _02231896 - 2 ; case 53
+ .short _022319E8 - _02231896 - 2 ; case 54
+ .short _022319E8 - _02231896 - 2 ; case 55
+ .short _02231A4A - _02231896 - 2 ; case 56
+ .short _02231A4A - _02231896 - 2 ; case 57
+ .short _02231A4A - _02231896 - 2 ; case 58
+ .short _02231A4A - _02231896 - 2 ; case 59
+ .short _02231A4A - _02231896 - 2 ; case 60
+_02231910:
+ ldr r1, [r4, #4]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231944
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02231928:
+ ldr r1, [r4, #4]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231944
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ bne _02231946
+_02231944:
+ b _02231A4A
+_02231946:
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_0223194E:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02231966:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_0223198A:
+ ldr r1, [r4, #4]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _022319C4
+ ldrh r0, [r4, #2]
+ add r0, r0, #3
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ beq _022319AC
+ ldrh r0, [r4, #2]
+ add r0, r0, #2
+ strh r0, [r4, #2]
+_022319AC:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_022319C4:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_022319E8:
+ ldr r1, [r4, #4]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A22
+ ldrh r0, [r4, #2]
+ add r0, r0, #3
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ beq _02231A0A
+ ldrh r0, [r4, #2]
+ add r0, r0, #2
+ strh r0, [r4, #2]
+_02231A0A:
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02231A22:
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02231A46:
+ bl ErrorHandling
+_02231A4A:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02231A4C
+MOD11_02231A4C: ; 0x02231A4C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r2, [r4, #1]
+ mov r1, #0x3f
+ add r5, r0, #0
+ and r1, r2
+ cmp r1, #0x3c
+ bls _02231A5E
+ b _022320C2
+_02231A5E:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02231A6A: ; jump table
+ .short _022320C6 - _02231A6A - 2 ; case 0
+ .short _022320C6 - _02231A6A - 2 ; case 1
+ .short _02231AE4 - _02231A6A - 2 ; case 2
+ .short _02231AEE - _02231A6A - 2 ; case 3
+ .short _02231AF8 - _02231A6A - 2 ; case 4
+ .short _02231B02 - _02231A6A - 2 ; case 5
+ .short _02231B0C - _02231A6A - 2 ; case 6
+ .short _02231B16 - _02231A6A - 2 ; case 7
+ .short _02231B22 - _02231A6A - 2 ; case 8
+ .short _02231B2C - _02231A6A - 2 ; case 9
+ .short _02231B40 - _02231A6A - 2 ; case 10
+ .short _02231B54 - _02231A6A - 2 ; case 11
+ .short _02231B68 - _02231A6A - 2 ; case 12
+ .short _02231B7C - _02231A6A - 2 ; case 13
+ .short _02231B90 - _02231A6A - 2 ; case 14
+ .short _02231BA4 - _02231A6A - 2 ; case 15
+ .short _02231BB8 - _02231A6A - 2 ; case 16
+ .short _02231BCC - _02231A6A - 2 ; case 17
+ .short _02231BE0 - _02231A6A - 2 ; case 18
+ .short _02231BF4 - _02231A6A - 2 ; case 19
+ .short _02231AEE - _02231A6A - 2 ; case 20
+ .short _02231C08 - _02231A6A - 2 ; case 21
+ .short _02231C1C - _02231A6A - 2 ; case 22
+ .short _02231C30 - _02231A6A - 2 ; case 23
+ .short _02231C44 - _02231A6A - 2 ; case 24
+ .short _02231C58 - _02231A6A - 2 ; case 25
+ .short _02231C6C - _02231A6A - 2 ; case 26
+ .short _02231C80 - _02231A6A - 2 ; case 27
+ .short _02231C94 - _02231A6A - 2 ; case 28
+ .short _02231CA8 - _02231A6A - 2 ; case 29
+ .short _02231CBC - _02231A6A - 2 ; case 30
+ .short _02231CD0 - _02231A6A - 2 ; case 31
+ .short _02231CEE - _02231A6A - 2 ; case 32
+ .short _02231D0C - _02231A6A - 2 ; case 33
+ .short _02231D2A - _02231A6A - 2 ; case 34
+ .short _02231D48 - _02231A6A - 2 ; case 35
+ .short _02231D66 - _02231A6A - 2 ; case 36
+ .short _02231D84 - _02231A6A - 2 ; case 37
+ .short _02231DA2 - _02231A6A - 2 ; case 38
+ .short _02231DC0 - _02231A6A - 2 ; case 39
+ .short _02231DDE - _02231A6A - 2 ; case 40
+ .short _02231DFC - _02231A6A - 2 ; case 41
+ .short _02231E1A - _02231A6A - 2 ; case 42
+ .short _02231E38 - _02231A6A - 2 ; case 43
+ .short _02231E56 - _02231A6A - 2 ; case 44
+ .short _02231E74 - _02231A6A - 2 ; case 45
+ .short _02231E92 - _02231A6A - 2 ; case 46
+ .short _02231EB0 - _02231A6A - 2 ; case 47
+ .short _02231ECE - _02231A6A - 2 ; case 48
+ .short _02231EEC - _02231A6A - 2 ; case 49
+ .short _02231F0A - _02231A6A - 2 ; case 50
+ .short _02231F28 - _02231A6A - 2 ; case 51
+ .short _02231F46 - _02231A6A - 2 ; case 52
+ .short _02231F6E - _02231A6A - 2 ; case 53
+ .short _02231F96 - _02231A6A - 2 ; case 54
+ .short _02231FBE - _02231A6A - 2 ; case 55
+ .short _02231FE6 - _02231A6A - 2 ; case 56
+ .short _0223200E - _02231A6A - 2 ; case 57
+ .short _02232036 - _02231A6A - 2 ; case 58
+ .short _0223205E - _02231A6A - 2 ; case 59
+ .short _02232086 - _02231A6A - 2 ; case 60
+_02231AE4:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231AEE:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231AF8:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_02232160
+ pop {r3, r4, r5, pc}
+_02231B02:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231B0C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231B16:
+ ldr r2, [r4, #4]
+ ldr r3, [r4, #0x1c]
+ mov r1, #0
+ bl MOD11_0223211C
+ pop {r3, r4, r5, pc}
+_02231B22:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_02231B2C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231B40:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231B54:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ pop {r3, r4, r5, pc}
+_02231B68:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232160
+ pop {r3, r4, r5, pc}
+_02231B7C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232148
+ pop {r3, r4, r5, pc}
+_02231B90:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232178
+ pop {r3, r4, r5, pc}
+_02231BA4:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231BB8:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223219C
+ pop {r3, r4, r5, pc}
+_02231BCC:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231BE0:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_02231BF4:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321DC
+ pop {r3, r4, r5, pc}
+_02231C08:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320EC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231C1C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320EC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231C30:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_02232154
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231C44:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320F8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231C58:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_02232104
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231C6C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_02231C80:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231C94:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231CA8:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231CBC:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_02231CD0:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231CEE:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232154
+ pop {r3, r4, r5, pc}
+_02231D0C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231D2A:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320EC
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231D48:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320EC
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231D66:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231D84:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231DA2:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231DC0:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232160
+ pop {r3, r4, r5, pc}
+_02231DDE:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232148
+ pop {r3, r4, r5, pc}
+_02231DFC:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0223216C
+ pop {r3, r4, r5, pc}
+_02231E1A:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231E38:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231E56:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231E74:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232160
+ pop {r3, r4, r5, pc}
+_02231E92:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0223216C
+ pop {r3, r4, r5, pc}
+_02231EB0:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321DC
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022321DC
+ pop {r3, r4, r5, pc}
+_02231ECE:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320F8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022321A0
+ pop {r3, r4, r5, pc}
+_02231EEC:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231F0A:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231F28:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231F46:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231F6E:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_02232154
+ pop {r3, r4, r5, pc}
+_02231F96:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_02232160
+ pop {r3, r4, r5, pc}
+_02231FBE:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231FE6:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022321C4
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_0223200E:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02232036:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_0223205E:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022321AC
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_02232086:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022321AC
+ ldr r2, [r4, #0x14]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD11_022321C4
+ ldr r2, [r4, #0x18]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_022320C2:
+ bl ErrorHandling
+_022320C6:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022320C8
+MOD11_022320C8: ; 0x022320C8
+ push {r3, r4, r5, lr}
+ mov r3, #0xff
+ lsl r3, r3, #8
+ add r4, r1, #0
+ lsl r1, r2, #0x18
+ and r2, r3
+ add r5, r0, #0
+ lsr r1, r1, #0x18
+ asr r2, r2, #8
+ bl MOD11_02230014
+ add r2, r0, #0
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ bl FUN_0200ACF8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022320EC
+MOD11_022320EC: ; 0x022320EC
+ ldr r3, _022320F4 ; =0x0200AD5D
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_022320F4: .word 0x0200AD5D
+
+ thumb_func_start MOD11_022320F8
+MOD11_022320F8: ; 0x022320F8
+ ldr r3, _02232100 ; =0x0200AE39
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_02232100: .word 0x0200AE39
+
+ thumb_func_start MOD11_02232104
+MOD11_02232104: ; 0x02232104
+ push {r3, lr}
+ sub sp, #8
+ mov r3, #0
+ str r3, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ ldr r0, [r0, #0x14]
+ mov r3, #5
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD11_0223211C
+MOD11_0223211C: ; 0x0223211C
+ push {r4, lr}
+ sub sp, #8
+ cmp r3, #0
+ beq _02232134
+ mov r4, #1
+ str r4, [sp]
+ str r4, [sp, #4]
+ ldr r0, [r0, #0x14]
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r4, pc}
+_02232134:
+ mov r3, #1
+ str r3, [sp]
+ str r3, [sp, #4]
+ ldr r0, [r0, #0x14]
+ mov r3, #5
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02232148
+MOD11_02232148: ; 0x02232148
+ ldr r3, _02232150 ; =0x0200AF19
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_02232150: .word 0x0200AF19
+
+ thumb_func_start MOD11_02232154
+MOD11_02232154: ; 0x02232154
+ ldr r3, _0223215C ; =0x0200ADCD
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_0223215C: .word 0x0200ADCD
+
+ thumb_func_start MOD11_02232160
+MOD11_02232160: ; 0x02232160
+ ldr r3, _02232168 ; =0x0200AF51
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_02232168: .word 0x0200AF51
+
+ thumb_func_start MOD11_0223216C
+MOD11_0223216C: ; 0x0223216C
+ ldr r3, _02232174 ; =0x0200AF89
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_02232174: .word 0x0200AF89
+
+ thumb_func_start MOD11_02232178
+MOD11_02232178: ; 0x02232178
+ push {r3, r4, r5, lr}
+ mov r3, #0xff
+ lsl r3, r3, #8
+ add r4, r1, #0
+ lsl r1, r2, #0x18
+ and r2, r3
+ add r5, r0, #0
+ lsr r1, r1, #0x18
+ asr r2, r2, #8
+ bl MOD11_02230014
+ add r2, r0, #0
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ bl FUN_0200AC60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223219C
+MOD11_0223219C: ; 0x0223219C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_022321A0
+MOD11_022321A0: ; 0x022321A0
+ ldr r3, _022321A8 ; =0x0200AFBD
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_022321A8: .word 0x0200AFBD
+
+ thumb_func_start MOD11_022321AC
+MOD11_022321AC: ; 0x022321AC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r1, r2, #0
+ bl MOD11_02230188
+ add r2, r0, #0
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ bl FUN_0200B0D4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022321C4
+MOD11_022321C4: ; 0x022321C4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r1, r2, #0
+ bl MOD11_02230188
+ add r2, r0, #0
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ bl FUN_0200B144
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022321DC
+MOD11_022321DC: ; 0x022321DC
+ push {r4, lr}
+ add r4, r0, #0
+ add r3, r2, #0
+ ldr r0, [r4, #0x14]
+ ldr r2, [r4, #0x64]
+ bl FUN_0200B410
+ pop {r4, pc}
+
+ thumb_func_start MOD11_022321EC
+MOD11_022321EC: ; 0x022321EC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ ldrh r1, [r2, #2]
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x18]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0223220C
+MOD11_0223220C: ; 0x0223220C
+ push {r4, lr}
+ mov r4, #0
+ cmp r1, #5
+ bhi _02232252
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02232220: ; jump table
+ .short _02232252 - _02232220 - 2 ; case 0
+ .short _0223222C - _02232220 - 2 ; case 1
+ .short _02232234 - _02232220 - 2 ; case 2
+ .short _0223223C - _02232220 - 2 ; case 3
+ .short _02232244 - _02232220 - 2 ; case 4
+ .short _0223224C - _02232220 - 2 ; case 5
+_0223222C:
+ bl FUN_02005514
+ add r4, r0, #0
+ b _02232252
+_02232234:
+ bl FUN_02005CBC
+ add r4, r0, #0
+ b _02232252
+_0223223C:
+ ldr r0, _02232258 ; =0x00000484
+ bl FUN_02005C28
+ b _02232252
+_02232244:
+ ldr r0, _0223225C ; =0x000005E6
+ bl FUN_020054C8
+ b _02232252
+_0223224C:
+ ldr r0, _02232260 ; =0x00000483
+ bl FUN_02005C28
+_02232252:
+ add r0, r4, #0
+ pop {r4, pc}
+ nop
+_02232258: .word 0x00000484
+_0223225C: .word 0x000005E6
+_02232260: .word 0x00000483
+
+ thumb_func_start MOD11_02232264
+MOD11_02232264: ; 0x02232264
+ push {r3, lr}
+ add r2, r1, #0
+ add r2, #0xb4
+ ldr r2, [r2]
+ lsl r2, r2, #2
+ add r3, r1, r2
+ mov r2, #0x27
+ lsl r2, r2, #8
+ ldr r2, [r3, r2]
+ lsl r3, r2, #2
+ ldr r2, _02232280 ; =0x0225DDE4
+ ldr r2, [r2, r3]
+ blx r2
+ pop {r3, pc}
+ .align 2, 0
+_02232280: .word 0x0225DDE4
+
+ thumb_func_start MOD11_02232284
+MOD11_02232284: ; 0x02232284
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_022548F0
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0223229C
+MOD11_0223229C: ; 0x0223229C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ cmp r0, #0
+ beq _022322C2
+ cmp r0, #3
+ beq _0223230E
+ cmp r0, #4
+ beq _022322E0
+_022322C2:
+ mov r5, #0
+ cmp r6, #0
+ ble _0223230E
+_022322C8:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254908
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+ add r5, r5, #1
+ cmp r5, r6
+ blt _022322C8
+ b _0223230E
+_022322E0:
+ mov r5, #0
+ cmp r6, #0
+ ble _0223230E
+ mov r7, #1
+_022322E8:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232314 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _02232308
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254908
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+_02232308:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _022322E8
+_0223230E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232314: .word 0x00000195
+
+ thumb_func_start MOD11_02232318
+MOD11_02232318: ; 0x02232318
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ cmp r0, #6
+ bhi _02232350
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02232342: ; jump table
+ .short _02232350 - _02232342 - 2 ; case 0
+ .short _022323F4 - _02232342 - 2 ; case 1
+ .short _0223243E - _02232342 - 2 ; case 2
+ .short _0223236E - _02232342 - 2 ; case 3
+ .short _022323B2 - _02232342 - 2 ; case 4
+ .short _02232350 - _02232342 - 2 ; case 5
+ .short _02232488 - _02232342 - 2 ; case 6
+_02232350:
+ mov r5, #0
+ cmp r7, #0
+ ble _0223236C
+_02232356:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254A0C
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02232356
+_0223236C:
+ b _022324D0
+_0223236E:
+ mov r5, #0
+ cmp r7, #0
+ ble _0223239C
+_02232374:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022324D4 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232396
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254A0C
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+_02232396:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02232374
+_0223239C:
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _022324D0
+_022323B2:
+ mov r5, #0
+ cmp r7, #0
+ ble _022323F2
+_022323B8:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022324D4 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _022323EC
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022448BC
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254A0C
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+_022323EC:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _022323B8
+_022323F2:
+ b _022324D0
+_022323F4:
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022324D4 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _0223241A
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _0223242C
+_0223241A:
+ ldr r1, [r6, #0x64]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x64]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_0223242C:
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_02254A0C
+ b _022324D0
+_0223243E:
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022324D4 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _02232464
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _02232476
+_02232464:
+ ldr r1, [r6, #0x6c]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x6c]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_02232476:
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02254A0C
+ b _022324D0
+_02232488:
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022324D4 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _022324AE
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _022324C0
+_022324AE:
+ ldr r1, [r6, #0x78]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x78]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_022324C0:
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ bl MOD11_02254A0C
+_022324D0:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022324D4: .word 0x00000195
+
+ thumb_func_start MOD11_022324D8
+MOD11_022324D8: ; 0x022324D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ cmp r0, #6
+ bhi _02232510
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02232502: ; jump table
+ .short _02232510 - _02232502 - 2 ; case 0
+ .short _022325C2 - _02232502 - 2 ; case 1
+ .short _02232610 - _02232502 - 2 ; case 2
+ .short _02232534 - _02232502 - 2 ; case 3
+ .short _0223257C - _02232502 - 2 ; case 4
+ .short _02232510 - _02232502 - 2 ; case 5
+ .short _0223265E - _02232502 - 2 ; case 6
+_02232510:
+ mov r5, #0
+ cmp r7, #0
+ ble _02232532
+ add r6, r5, #0
+_02232518:
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r6, #0
+ add r3, r6, #0
+ bl MOD11_02254B40
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02232518
+_02232532:
+ b _022326AA
+_02232534:
+ mov r5, #0
+ cmp r7, #0
+ ble _02232566
+_0223253A:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022326B0 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232560
+ mov r2, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, r2, #0
+ bl MOD11_02254B40
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+_02232560:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223253A
+_02232566:
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _022326AA
+_0223257C:
+ mov r5, #0
+ cmp r7, #0
+ ble _022325C0
+_02232582:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022326B0 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _022325BA
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022448BC
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD11_022448CC
+ mov r2, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, r2, #0
+ bl MOD11_02254B40
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+_022325BA:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02232582
+_022325C0:
+ b _022326AA
+_022325C2:
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022326B0 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _022325E8
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _022325FA
+_022325E8:
+ ldr r1, [r6, #0x64]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x64]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_022325FA:
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ mov r2, #0
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD11_02254B40
+ b _022326AA
+_02232610:
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022326B0 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _02232636
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _02232648
+_02232636:
+ ldr r1, [r6, #0x6c]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x6c]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_02232648:
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ mov r2, #0
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD11_02254B40
+ b _022326AA
+_0223265E:
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022326B0 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _02232684
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _02232696
+_02232684:
+ ldr r1, [r6, #0x78]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x78]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_02232696:
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ mov r2, #0
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD11_02254B40
+_022326AA:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022326B0: .word 0x00000195
+
+ thumb_func_start MOD11_022326B4
+MOD11_022326B4: ; 0x022326B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ beq _022326DC
+ cmp r2, #3
+ beq _022326F4
+ cmp r2, #4
+ beq _0223271E
+ b _02232756
+_022326DC:
+ mov r4, #0
+ cmp r7, #0
+ ble _02232768
+_022326E2:
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02254D50
+ add r4, r4, #1
+ cmp r4, r7
+ blt _022326E2
+ b _02232768
+_022326F4:
+ mov r4, #0
+ cmp r7, #0
+ ble _02232768
+_022326FA:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223276C ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232716
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02254D50
+_02232716:
+ add r4, r4, #1
+ cmp r4, r7
+ blt _022326FA
+ b _02232768
+_0223271E:
+ mov r4, #0
+ cmp r7, #0
+ ble _02232768
+_02232724:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223276C ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _0223274E
+ add r0, r4, #0
+ bl FUN_0206A92C
+ ldr r1, _02232770 ; =0x00003108
+ ldrb r1, [r6, r1]
+ tst r0, r1
+ bne _0223274E
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02254D50
+_0223274E:
+ add r4, r4, #1
+ cmp r4, r7
+ blt _02232724
+ b _02232768
+_02232756:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02254D50
+_02232768:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223276C: .word 0x00000195
+_02232770: .word 0x00003108
+
+ thumb_func_start MOD11_02232774
+MOD11_02232774: ; 0x02232774
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_02254F60
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022327A0
+MOD11_022327A0: ; 0x022327A0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ cmp r0, #0
+ beq _022327C6
+ cmp r0, #3
+ beq _0223282A
+ cmp r0, #4
+ beq _0223286A
+_022327C6:
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ beq _022327F8
+ mov r5, #0
+ cmp r6, #0
+ ble _022328B4
+ ldr r7, _022328B8 ; =0x00000195
+_022327DA:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #4
+ beq _022327F0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254F7C
+_022327F0:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _022327DA
+ b _022328B4
+_022327F8:
+ mov r5, #0
+ cmp r6, #0
+ ble _022328B4
+ mov r7, #8
+_02232800:
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ tst r0, r7
+ bne _0223281A
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223281A
+ cmp r5, #1
+ bgt _022328B4
+_0223281A:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254F7C
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232800
+ b _022328B4
+_0223282A:
+ mov r5, #0
+ cmp r6, #0
+ ble _022328B4
+ mov r7, #1
+_02232832:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022328B8 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ bne _02232862
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254F7C
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _02232862
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022328B4
+_02232862:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232832
+ b _022328B4
+_0223286A:
+ mov r5, #0
+ cmp r6, #0
+ ble _022328B4
+ mov r7, #1
+_02232872:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022328B8 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _022328AE
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254F7C
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _022328AE
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ bne _022328AE
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022328B4
+_022328AE:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232872
+_022328B4:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022328B8: .word 0x00000195
+
+ thumb_func_start MOD11_022328BC
+MOD11_022328BC: ; 0x022328BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ cmp r5, #0
+ beq _022328EC
+ cmp r5, #3
+ beq _02232920
+ cmp r5, #4
+ beq _02232962
+_022328EC:
+ mov r5, #0
+ cmp r6, #0
+ ble _022329AE
+_022328F2:
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _0223290E
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223290E
+ cmp r5, #1
+ bgt _022329AE
+_0223290E:
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_02254FAC
+ add r5, r5, #1
+ cmp r5, r6
+ blt _022328F2
+ b _022329AE
+_02232920:
+ mov r5, #0
+ cmp r6, #0
+ ble _022329AE
+_02232926:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022329B4 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _0223295A
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_02254FAC
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _0223295A
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022329AE
+_0223295A:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232926
+ b _022329AE
+_02232962:
+ mov r5, #0
+ cmp r6, #0
+ ble _022329AE
+_02232968:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022329B4 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _022329A8
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_02254FAC
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _022329A8
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ bne _022329A8
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022329AE
+_022329A8:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232968
+_022329AE:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022329B4: .word 0x00000195
+
+ thumb_func_start MOD11_022329B8
+MOD11_022329B8: ; 0x022329B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ cmp r0, #0xc
+ bhi _022329FC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022329E2: ; jump table
+ .short _022329FC - _022329E2 - 2 ; case 0
+ .short _022329FC - _022329E2 - 2 ; case 1
+ .short _022329FC - _022329E2 - 2 ; case 2
+ .short _02232A2E - _022329E2 - 2 ; case 3
+ .short _02232A6E - _022329E2 - 2 ; case 4
+ .short _022329FC - _022329E2 - 2 ; case 5
+ .short _022329FC - _022329E2 - 2 ; case 6
+ .short _022329FC - _022329E2 - 2 ; case 7
+ .short _022329FC - _022329E2 - 2 ; case 8
+ .short _02232ABA - _022329E2 - 2 ; case 9
+ .short _02232AE6 - _022329E2 - 2 ; case 10
+ .short _02232B12 - _022329E2 - 2 ; case 11
+ .short _02232B3A - _022329E2 - 2 ; case 12
+_022329FC:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232A2C
+ mov r7, #8
+_02232A04:
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ tst r0, r7
+ bne _02232A1E
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02232A1E
+ cmp r6, #1
+ bgt _02232A2C
+_02232A1E:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232A04
+_02232A2C:
+ b _02232B60
+_02232A2E:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232A6C
+ mov r7, #1
+_02232A36:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232B64 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ bne _02232A66
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _02232A66
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02232B60
+_02232A66:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232A36
+_02232A6C:
+ b _02232B60
+_02232A6E:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232B60
+ mov r7, #1
+_02232A76:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232B64 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _02232AB2
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _02232AB2
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ bne _02232AB2
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02232B60
+_02232AB2:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232A76
+ b _02232B60
+_02232ABA:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232B60
+ ldr r7, _02232B64 ; =0x00000195
+_02232AC2:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #0
+ beq _02232AD4
+ cmp r0, #2
+ bne _02232ADE
+_02232AD4:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ b _02232B60
+_02232ADE:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232AC2
+ b _02232B60
+_02232AE6:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232B60
+ ldr r7, _02232B64 ; =0x00000195
+_02232AEE:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #1
+ beq _02232B00
+ cmp r0, #3
+ bne _02232B0A
+_02232B00:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ b _02232B60
+_02232B0A:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232AEE
+ b _02232B60
+_02232B12:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232B60
+ ldr r7, _02232B64 ; =0x00000195
+_02232B1A:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #4
+ bne _02232B32
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ b _02232B60
+_02232B32:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232B1A
+ b _02232B60
+_02232B3A:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232B60
+ ldr r7, _02232B64 ; =0x00000195
+_02232B42:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #5
+ bne _02232B5A
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ b _02232B60
+_02232B5A:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232B42
+_02232B60:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232B64: .word 0x00000195
+
+ thumb_func_start MOD11_02232B68
+MOD11_02232B68: ; 0x02232B68
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r5, r0, #0
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ cmp r6, #0xc
+ bhi _02232BB6
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02232B9C: ; jump table
+ .short _02232BB6 - _02232B9C - 2 ; case 0
+ .short _02232BB6 - _02232B9C - 2 ; case 1
+ .short _02232BB6 - _02232B9C - 2 ; case 2
+ .short _02232BDE - _02232B9C - 2 ; case 3
+ .short _02232C14 - _02232B9C - 2 ; case 4
+ .short _02232BB6 - _02232B9C - 2 ; case 5
+ .short _02232BB6 - _02232B9C - 2 ; case 6
+ .short _02232BB6 - _02232B9C - 2 ; case 7
+ .short _02232BB6 - _02232B9C - 2 ; case 8
+ .short _02232C4A - _02232B9C - 2 ; case 9
+ .short _02232C78 - _02232B9C - 2 ; case 10
+ .short _02232CA6 - _02232B9C - 2 ; case 11
+ .short _02232CD0 - _02232B9C - 2 ; case 12
+_02232BB6:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232BDC
+_02232BBC:
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02232BCC
+ cmp r6, #1
+ bgt _02232BDC
+_02232BCC:
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232BBC
+_02232BDC:
+ b _02232CF8
+_02232BDE:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232C12
+_02232BE4:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232C0C
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02232CF8
+_02232C0C:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232BE4
+_02232C12:
+ b _02232CF8
+_02232C14:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232CF8
+_02232C1A:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _02232C42
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02232CF8
+_02232C42:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232C1A
+ b _02232CF8
+_02232C4A:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232CF8
+_02232C50:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ beq _02232C64
+ cmp r0, #2
+ bne _02232C70
+_02232C64:
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ b _02232CF8
+_02232C70:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232C50
+ b _02232CF8
+_02232C78:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232CF8
+_02232C7E:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, #1
+ beq _02232C92
+ cmp r0, #3
+ bne _02232C9E
+_02232C92:
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ b _02232CF8
+_02232C9E:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232C7E
+ b _02232CF8
+_02232CA6:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232CF8
+_02232CAC:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, #4
+ bne _02232CC8
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ b _02232CF8
+_02232CC8:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232CAC
+ b _02232CF8
+_02232CD0:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232CF8
+_02232CD6:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, #5
+ bne _02232CF2
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ b _02232CF8
+_02232CF2:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232CD6
+_02232CF8:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232CFC: .word 0x00000195
+
+ thumb_func_start MOD11_02232D00
+MOD11_02232D00: ; 0x02232D00
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ bl MOD11_0222FF84
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r4, #0
+ cmp r5, #0
+ ble _02232D28
+_02232D1A:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0225624C
+ add r4, r4, #1
+ cmp r4, r5
+ blt _02232D1A
+_02232D28:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02232D2C
+MOD11_02232D2C: ; 0x02232D2C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ beq _02232D54
+ cmp r2, #3
+ beq _02232D6E
+ cmp r2, #4
+ beq _02232D9A
+ b _02232DC6
+_02232D54:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232DDA
+_02232D5A:
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ mov r3, #0
+ bl MOD11_02255034
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232D5A
+ b _02232DDA
+_02232D6E:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232DDA
+_02232D74:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232DE0 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232D92
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ mov r3, #0
+ bl MOD11_02255034
+_02232D92:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232D74
+ b _02232DDA
+_02232D9A:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232DDA
+_02232DA0:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232DE0 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _02232DBE
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ mov r3, #0
+ bl MOD11_02255034
+_02232DBE:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232DA0
+ b _02232DDA
+_02232DC6:
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ mov r3, #0
+ bl MOD11_02255034
+_02232DDA:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232DE0: .word 0x00000195
+
+ thumb_func_start MOD11_02232DE4
+MOD11_02232DE4: ; 0x02232DE4
+ push {r3, r4, r5, r6, r7, lr}
+ str r1, [sp]
+ add r5, r0, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp]
+ bl MOD11_0223A404
+ add r2, r0, #0
+ ldr r4, _02232EA4 ; =0x00000000
+ beq _02232E0E
+ cmp r2, #3
+ beq _02232E28
+ cmp r2, #4
+ beq _02232E5A
+ b _02232E8C
+_02232E0E:
+ cmp r7, #0
+ ble _02232EA0
+ add r6, r4, #0
+_02232E14:
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD11_02255034
+ add r4, r4, #1
+ cmp r4, r7
+ blt _02232E14
+ b _02232EA0
+_02232E28:
+ add r6, r4, #0
+ cmp r7, #0
+ ble _02232EA0
+_02232E2E:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232EA8 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232E52
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_02255034
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02232E52:
+ add r6, r6, #1
+ cmp r6, r7
+ blt _02232E2E
+ b _02232EA0
+_02232E5A:
+ add r6, r4, #0
+ cmp r7, #0
+ ble _02232EA0
+_02232E60:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232EA8 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _02232E84
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_02255034
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02232E84:
+ add r6, r6, #1
+ cmp r6, r7
+ blt _02232E60
+ b _02232EA0
+_02232E8C:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r3, r4, #0
+ bl MOD11_02255034
+_02232EA0:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232EA4: .word 0x00000000
+_02232EA8: .word 0x00000195
+
+ thumb_func_start MOD11_02232EAC
+MOD11_02232EAC: ; 0x02232EAC
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ beq _02232ED4
+ cmp r2, #3
+ beq _02232EEA
+ cmp r2, #4
+ beq _02232F20
+ b _02232F48
+_02232ED4:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232F58
+_02232EDA:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0225516C
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232EDA
+ b _02232F58
+_02232EEA:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232F58
+_02232EF0:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232F5C ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232F18
+ add r0, r5, #0
+ bl FUN_0206A92C
+ ldr r1, _02232F60 ; =0x00003108
+ ldrb r1, [r7, r1]
+ tst r0, r1
+ bne _02232F18
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0225516C
+_02232F18:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232EF0
+ b _02232F58
+_02232F20:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232F58
+ mov r7, #1
+_02232F28:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232F5C ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _02232F40
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0225516C
+_02232F40:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232F28
+ b _02232F58
+_02232F48:
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_0225516C
+_02232F58:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232F5C: .word 0x00000195
+_02232F60: .word 0x00003108
+
+ thumb_func_start MOD11_02232F64
+MOD11_02232F64: ; 0x02232F64
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD11_02243388
+ cmp r0, #0
+ beq _02232F7C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ b _02232F82
+_02232F7C:
+ add r0, r4, #0
+ bl MOD11_022433DC
+_02232F82:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02232F88
+MOD11_02232F88: ; 0x02232F88
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r1, #0
+ ldr r1, [r5, #0x64]
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _02232FA0
+ mov r4, #0
+ b _02232FB4
+_02232FA0:
+ ldr r0, _022330D4 ; =0x00002160
+ ldr r4, [r5, r0]
+ cmp r4, #0
+ bne _02232FB4
+ ldr r0, _022330D8 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _022330DC ; =0x000003E2
+ ldrb r4, [r1, r0]
+_02232FB4:
+ ldr r0, [r5, #0x6c]
+ str r0, [sp, #0x18]
+ ldr r1, [sp, #0x18]
+ add r0, r7, #0
+ bl MOD11_02230270
+ mov r3, #6
+ lsl r3, r3, #6
+ add r6, r0, #0
+ ldr r0, [r5, r3]
+ ldr r1, _022330E0 ; =0x00002154
+ str r0, [sp]
+ ldr r0, [r5, r1]
+ ldr r2, _022330D8 ; =0x00003044
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x64]
+ lsl r4, r6, #2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x18]
+ add r4, r5, r4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ sub r0, r1, #4
+ ldr r0, [r5, r0]
+ add r3, #0x3c
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x14]
+ ldr r2, [r5, r2]
+ ldr r3, [r4, r3]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_0224B310
+ ldr r1, _022330E4 ; =0x00002144
+ str r0, [r5, r1]
+ add r0, r1, #0
+ add r0, #0xc
+ ldr r2, [r5, r1]
+ ldr r0, [r5, r0]
+ mul r0, r2
+ str r0, [r5, r1]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r0, #0x61
+ bne _02233040
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ ldr r1, _022330E4 ; =0x00002144
+ add r0, #0x64
+ ldr r1, [r5, r1]
+ mul r0, r1
+ mov r1, #0x64
+ blx _s32_div_f
+ ldr r1, _022330E4 ; =0x00002144
+ str r0, [r5, r1]
+_02233040:
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r0, #0x68
+ bne _0223306E
+ ldr r0, _022330E4 ; =0x00002144
+ ldr r2, [r5, #0x64]
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r5, r0
+ ldr r0, _022330E8 ; =0x00002DCC
+ ldr r0, [r2, r0]
+ lsl r0, r0, #5
+ lsr r0, r0, #0x1c
+ add r0, #0xa
+ mul r0, r1
+ mov r1, #0xa
+ blx _u32_div_f
+ ldr r1, _022330E4 ; =0x00002144
+ str r0, [r5, r1]
+_0223306E:
+ ldr r2, [r5, #0x64]
+ mov r1, #0xc0
+ add r0, r2, #0
+ mul r0, r1
+ ldr r2, _022330E8 ; =0x00002DCC
+ add r3, r5, r0
+ ldr r3, [r3, r2]
+ lsl r3, r3, #1
+ lsr r3, r3, #0x1f
+ beq _022330CE
+ add r2, #0x10
+ add r3, r5, r2
+ add r1, #0xb4
+ ldr r2, [r5, r1]
+ ldr r1, [r3, r0]
+ cmp r2, r1
+ bne _02233094
+ sub r1, r1, #1
+ str r1, [r3, r0]
+_02233094:
+ ldr r2, [r5, #0x64]
+ mov r1, #0xc0
+ add r0, r2, #0
+ mul r0, r1
+ add r1, #0xb4
+ ldr r3, [r5, r1]
+ ldr r1, _022330EC ; =0x00002DDC
+ add r2, r5, r0
+ ldr r2, [r2, r1]
+ sub r2, r3, r2
+ cmp r2, #2
+ bge _022330C2
+ ldr r0, _022330E4 ; =0x00002144
+ ldr r1, [r5, r0]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ blx _s32_div_f
+ ldr r1, _022330E4 ; =0x00002144
+ add sp, #0x1c
+ str r0, [r5, r1]
+ pop {r4, r5, r6, r7, pc}
+_022330C2:
+ sub r1, #0x10
+ add r3, r5, r1
+ ldr r2, [r3, r0]
+ ldr r1, _022330F0 ; =0xBFFFFFFF
+ and r1, r2
+ str r1, [r3, r0]
+_022330CE:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022330D4: .word 0x00002160
+_022330D8: .word 0x00003044
+_022330DC: .word 0x000003E2
+_022330E0: .word 0x00002154
+_022330E4: .word 0x00002144
+_022330E8: .word 0x00002DCC
+_022330EC: .word 0x00002DDC
+_022330F0: .word 0xBFFFFFFF
+
+ thumb_func_start MOD11_022330F4
+MOD11_022330F4: ; 0x022330F4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02232F88
+ ldr r1, _02233128 ; =0x00002144
+ add r0, r4, #0
+ ldr r1, [r4, r1]
+ bl MOD11_0224BF10
+ ldr r1, _02233128 ; =0x00002144
+ str r0, [r4, r1]
+ mov r0, #0
+ ldr r2, [r4, r1]
+ mvn r0, r0
+ mul r0, r2
+ str r0, [r4, r1]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233128: .word 0x00002144
+
+ thumb_func_start MOD11_0223312C
+MOD11_0223312C: ; 0x0223312C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02232F88
+ ldr r1, _02233154 ; =0x00002144
+ mov r0, #0
+ ldr r2, [r4, r1]
+ mvn r0, r0
+ mul r0, r2
+ str r0, [r4, r1]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233154: .word 0x00002144
+
+ thumb_func_start MOD11_02233158
+MOD11_02233158: ; 0x02233158
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, _02233194 ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #1
+ tst r0, r1
+ bne _02233178
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022559BC
+_02233178:
+ ldr r1, _02233194 ; =0x0000213C
+ mov r0, #1
+ ldr r2, [r4, r1]
+ orr r0, r2
+ str r0, [r4, r1]
+ add r0, r1, #4
+ ldr r2, [r4, r0]
+ mov r0, #4
+ orr r2, r0
+ add r0, r1, #4
+ str r2, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233194: .word 0x0000213C
+
+ thumb_func_start MOD11_02233198
+MOD11_02233198: ; 0x02233198
+ push {r4, r5, lr}
+ sub sp, #0x44
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ add r1, sp, #0x24
+ bl MOD11_0223C490
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0x24
+ add r3, sp, #0
+ bl MOD11_0223C55C
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0
+ bl MOD11_022559F4
+ mov r0, #0
+ add sp, #0x44
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_022331CC
+MOD11_022331CC: ; 0x022331CC
+ push {r4, r5, lr}
+ sub sp, #0x44
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ add r1, sp, #0x24
+ bl MOD11_0223C490
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0x24
+ add r3, sp, #0
+ bl MOD11_0223C55C
+ add r1, sp, #0
+ ldrb r2, [r1, #1]
+ mov r0, #0x80
+ orr r0, r2
+ strb r0, [r1, #1]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0
+ bl MOD11_022559F4
+ mov r0, #0
+ add sp, #0x44
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223320C
+MOD11_0223320C: ; 0x0223320C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r1, r4, #0
+ add r4, #0xf4
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD11_022559F4
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223322C
+MOD11_0223322C: ; 0x0223322C
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD11_0223C490
+ add r1, r4, #0
+ add r4, #0xf4
+ add r0, r5, #0
+ add r2, sp, #0
+ add r3, r4, #0
+ bl MOD11_0223C55C
+ mov r0, #0
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02233258
+MOD11_02233258: ; 0x02233258
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x44
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, sp, #0x24
+ bl MOD11_0223C490
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0x24
+ add r3, sp, #0
+ bl MOD11_0223C55C
+ add r1, sp, #0
+ ldrb r2, [r1, #1]
+ mov r0, #0x40
+ orr r0, r2
+ strb r0, [r1, #1]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0
+ bl MOD11_022559F4
+ mov r0, #0
+ add sp, #0x44
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022332AC
+MOD11_022332AC: ; 0x022332AC
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ cmp r0, #0xff
+ bne _022332CA
+ mov r0, #0x49
+ lsl r0, r0, #2
+ b _022332CC
+_022332CA:
+ ldr r0, _0223331C ; =0x00003044
+_022332CC:
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, _02233320 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #1
+ lsl r0, r0, #0xe
+ tst r0, r1
+ bne _022332E8
+ add r0, r6, #0
+ bl MOD11_02230E20
+ cmp r0, #1
+ beq _022332EC
+_022332E8:
+ cmp r4, #0x90
+ bne _02233302
+_022332EC:
+ ldr r1, _02233320 ; =0x0000213C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0xe
+ orr r0, r2
+ str r0, [r5, r1]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_02255A10
+_02233302:
+ add r0, r6, #0
+ bl MOD11_02230E20
+ cmp r0, #0
+ bne _02233316
+ ldr r2, _02233324 ; =0x00000123
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A43C
+_02233316:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0223331C: .word 0x00003044
+_02233320: .word 0x0000213C
+_02233324: .word 0x00000123
+
+ thumb_func_start MOD11_02233328
+MOD11_02233328: ; 0x02233328
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ cmp r6, #0xff
+ bne _0223335A
+ mov r0, #0x49
+ lsl r0, r0, #2
+ b _0223335C
+_0223335A:
+ ldr r0, _022333C8 ; =0x00003044
+_0223335C:
+ ldr r0, [r4, r0]
+ add r1, r4, #0
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ str r0, [sp, #4]
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ ldr r0, _022333CC ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #1
+ lsl r0, r0, #0xe
+ tst r0, r1
+ bne _02233390
+ add r0, r5, #0
+ bl MOD11_02230E20
+ cmp r0, #1
+ beq _02233394
+_02233390:
+ cmp r6, #0x90
+ bne _022333AE
+_02233394:
+ ldr r1, _022333CC ; =0x0000213C
+ mov r0, #1
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0xe
+ orr r0, r2
+ str r0, [r4, r1]
+ ldr r3, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ str r7, [sp]
+ bl MOD11_02255A40
+_022333AE:
+ add r0, r5, #0
+ bl MOD11_02230E20
+ cmp r0, #0
+ bne _022333C2
+ ldr r2, _022333D0 ; =0x00000123
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A43C
+_022333C2:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022333C8: .word 0x00003044
+_022333CC: .word 0x0000213C
+_022333D0: .word 0x00000123
+
+ thumb_func_start MOD11_022333D4
+MOD11_022333D4: ; 0x022333D4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ ldr r2, _02233404 ; =0x0000216C
+ add r1, r0, #0
+ ldr r2, [r4, r2]
+ add r0, r5, #0
+ bl MOD11_02255A70
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233404: .word 0x0000216C
+
+ thumb_func_start MOD11_02233408
+MOD11_02233408: ; 0x02233408
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ ldr r0, _0223349C ; =0x00002D8C
+ add r7, r2, #0
+ add r5, r4, r0
+ mov r0, #0xc0
+ mul r7, r0
+ ldr r0, _022334A0 ; =0x0000215C
+ ldr r6, [r5, r7]
+ ldr r3, [r4, r0]
+ add r1, r3, r6
+ cmp r1, #0
+ bgt _02233446
+ neg r1, r6
+ sub r0, #0x14
+ str r1, [r4, r0]
+ b _0223344A
+_02233446:
+ sub r0, #0x14
+ str r3, [r4, r0]
+_0223344A:
+ ldr r0, _022334A4 ; =0x00002148
+ ldr r6, [r4, r0]
+ cmp r6, #0
+ bge _02233460
+ mov r0, #0x59
+ lsl r0, r0, #2
+ add r3, r4, r0
+ lsl r1, r2, #2
+ ldr r0, [r3, r1]
+ sub r0, r0, r6
+ str r0, [r3, r1]
+_02233460:
+ mov r0, #0xc0
+ add r3, r2, #0
+ mul r3, r0
+ ldr r0, _0223349C ; =0x00002D8C
+ ldr r6, _022334A0 ; =0x0000215C
+ add r1, r4, r0
+ ldr r0, [r1, r3]
+ ldr r6, [r4, r6]
+ add r0, r0, r6
+ str r0, [r1, r3]
+ ldr r1, [r1, r3]
+ cmp r1, #0
+ bge _02233480
+ mov r0, #0
+ str r0, [r5, r7]
+ b _0223348E
+_02233480:
+ add r0, r4, r3
+ ldr r3, _0223349C ; =0x00002D8C
+ add r3, r3, #4
+ ldr r0, [r0, r3]
+ cmp r1, r0
+ bls _0223348E
+ str r0, [r5, r7]
+_0223348E:
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02245190
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223349C: .word 0x00002D8C
+_022334A0: .word 0x0000215C
+_022334A4: .word 0x00002148
+
+ thumb_func_start MOD11_022334A8
+MOD11_022334A8: ; 0x022334A8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02255A8C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022334D4
+MOD11_022334D4: ; 0x022334D4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ mov r1, #0xc0
+ mul r1, r4
+ add r2, r5, r1
+ ldr r1, _02233530 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bne _0223352A
+ str r4, [r5, #0x74]
+ bl FUN_0206A92C
+ ldr r1, _02233534 ; =0x0000213C
+ lsl r0, r0, #0x18
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+ mov r0, #0x55
+ lsl r0, r0, #2
+ add r2, r5, r0
+ lsl r1, r4, #2
+ ldr r0, [r2, r1]
+ add r0, r0, #1
+ str r0, [r2, r1]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223D0EC
+_0223352A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02233530: .word 0x00002D8C
+_02233534: .word 0x0000213C
+
+ thumb_func_start MOD11_02233538
+MOD11_02233538: ; 0x02233538
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r2, [r4, #0x74]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02255BEC
+ ldr r0, [r4, #0x74]
+ bl FUN_0206A92C
+ ldr r2, _02233594 ; =0x0000213C
+ lsl r3, r0, #0x18
+ mov r0, #0
+ mvn r0, r0
+ ldr r1, [r4, r2]
+ eor r0, r3
+ and r0, r1
+ str r0, [r4, r2]
+ ldr r0, [r4, #0x74]
+ bl FUN_0206A92C
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0x1c
+ orr r0, r2
+ str r0, [r4, r1]
+ ldr r0, [r4, #0x74]
+ mov r2, #0x27
+ lsl r0, r0, #4
+ add r0, r4, r0
+ add r1, #0x68
+ str r2, [r0, r1]
+ ldr r2, [r4, #0x74]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02245A10
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233594: .word 0x0000213C
+
+ thumb_func_start MOD11_02233598
+MOD11_02233598: ; 0x02233598
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _022335D2
+ ldr r0, _022335FC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ ldr r0, _02233600 ; =0x00000C03
+ tst r0, r1
+ bne _022335CC
+ bl FUN_02020AA4
+ cmp r0, #0
+ beq _022335D2
+_022335CC:
+ add r0, r5, #0
+ add r0, #0xf0
+ str r4, [r0]
+_022335D2:
+ add r0, r5, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ cmp r4, r0
+ beq _022335F0
+ mov r1, #1
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r0, r0, #1
+ b _022335F2
+_022335F0:
+ mov r0, #0
+_022335F2:
+ add r5, #0xf0
+ str r0, [r5]
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022335FC: .word 0x021C48B8
+_02233600: .word 0x00000C03
+
+ thumb_func_start MOD11_02233604
+MOD11_02233604: ; 0x02233604
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r3, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_02255D00
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223363C
+MOD11_0223363C: ; 0x0223363C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_0223A444
+ cmp r7, #6
+ bhi _022336DA
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02233686: ; jump table
+ .short _02233694 - _02233686 - 2 ; case 0
+ .short _0223369E - _02233686 - 2 ; case 1
+ .short _022336A8 - _02233686 - 2 ; case 2
+ .short _022336B2 - _02233686 - 2 ; case 3
+ .short _022336BC - _02233686 - 2 ; case 4
+ .short _022336C6 - _02233686 - 2 ; case 5
+ .short _022336D0 - _02233686 - 2 ; case 6
+_02233694:
+ ldr r0, [r0]
+ cmp r0, r4
+ beq _022336DA
+ mov r5, #0
+ b _022336DA
+_0223369E:
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _022336DA
+ mov r5, #0
+ b _022336DA
+_022336A8:
+ ldr r0, [r0]
+ cmp r0, r4
+ bgt _022336DA
+ mov r5, #0
+ b _022336DA
+_022336B2:
+ ldr r0, [r0]
+ cmp r0, r4
+ ble _022336DA
+ mov r5, #0
+ b _022336DA
+_022336BC:
+ ldr r0, [r0]
+ tst r0, r4
+ bne _022336DA
+ mov r5, #0
+ b _022336DA
+_022336C6:
+ ldr r0, [r0]
+ tst r0, r4
+ beq _022336DA
+ mov r5, #0
+ b _022336DA
+_022336D0:
+ ldr r0, [r0]
+ and r0, r4
+ cmp r4, r0
+ beq _022336DA
+ mov r5, #0
+_022336DA:
+ cmp r5, #0
+ beq _022336E6
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223A424
+_022336E6:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022336EC
+MOD11_022336EC: ; 0x022336EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ ldr r2, [sp, #8]
+ add r0, r6, #0
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r7, #6
+ bhi _02233790
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223374A: ; jump table
+ .short _02233758 - _0223374A - 2 ; case 0
+ .short _02233760 - _0223374A - 2 ; case 1
+ .short _02233768 - _0223374A - 2 ; case 2
+ .short _02233770 - _0223374A - 2 ; case 3
+ .short _02233778 - _0223374A - 2 ; case 4
+ .short _02233780 - _0223374A - 2 ; case 5
+ .short _02233788 - _0223374A - 2 ; case 6
+_02233758:
+ cmp r0, r4
+ beq _02233790
+ mov r5, #0
+ b _02233790
+_02233760:
+ cmp r0, r4
+ bne _02233790
+ mov r5, #0
+ b _02233790
+_02233768:
+ cmp r0, r4
+ bgt _02233790
+ mov r5, #0
+ b _02233790
+_02233770:
+ cmp r0, r4
+ ble _02233790
+ mov r5, #0
+ b _02233790
+_02233778:
+ tst r0, r4
+ bne _02233790
+ mov r5, #0
+ b _02233790
+_02233780:
+ tst r0, r4
+ beq _02233790
+ mov r5, #0
+ b _02233790
+_02233788:
+ and r0, r4
+ cmp r4, r0
+ beq _02233790
+ mov r5, #0
+_02233790:
+ cmp r5, #0
+ beq _0223379C
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223A424
+_0223379C:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022337A4
+MOD11_022337A4: ; 0x022337A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02255D20
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022337C0
+MOD11_022337C0: ; 0x022337C0
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A434
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_022337E0
+MOD11_022337E0: ; 0x022337E0
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r2, _02233804 ; =0x00003044
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ mov r1, #0x1e
+ lsl r2, r2, #4
+ add r3, r4, r2
+ ldr r2, _02233808 ; =0x000003DE
+ ldrh r2, [r3, r2]
+ bl MOD11_0223A434
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02233804: .word 0x00003044
+_02233808: .word 0x000003DE
+
+ thumb_func_start MOD11_0223380C
+MOD11_0223380C: ; 0x0223380C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ ldr r2, _02233890 ; =0x0000213C
+ mov r1, #1
+ ldr r3, [r4, r2]
+ bic r3, r1
+ str r3, [r4, r2]
+ ldr r3, [r4, r2]
+ ldr r1, _02233894 ; =0xFFFFBFFF
+ and r1, r3
+ mov r3, #0x49
+ lsl r3, r3, #2
+ str r1, [r4, r2]
+ ldr r2, [r4, r3]
+ ldr r1, _02233898 ; =0x00003044
+ cmp r0, #0
+ str r2, [r4, r1]
+ bne _02233866
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r3, [r4, r3]
+ ldr r2, [r4, #0x64]
+ lsl r3, r3, #0x10
+ add r0, r5, #0
+ add r1, r4, #0
+ lsr r3, r3, #0x10
+ bl MOD11_02244C28
+ str r0, [r4, #0x6c]
+ ldr r1, [r4, #0x64]
+ lsl r1, r1, #4
+ add r2, r4, r1
+ ldr r1, _0223389C ; =0x000021AC
+ str r0, [r2, r1]
+_02233866:
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ bne _0223387C
+ mov r2, #0x26
+ str r2, [r4, #0xc]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, #0xf3
+ bl MOD11_0223A434
+ b _02233888
+_0223387C:
+ ldr r2, _02233898 ; =0x00003044
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ mov r1, #0
+ bl MOD11_0223A434
+_02233888:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02233890: .word 0x0000213C
+_02233894: .word 0xFFFFBFFF
+_02233898: .word 0x00003044
+_0223389C: .word 0x000021AC
+
+ thumb_func_start MOD11_022338A0
+MOD11_022338A0: ; 0x022338A0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ bne _022338C8
+ add r0, r5, #0
+ bl MOD11_02230C50
+ mov r1, #1
+ tst r0, r1
+ beq _022338D0
+_022338C8:
+ ldr r0, _022338F4 ; =0x00002150
+ mov r1, #1
+ str r1, [r4, r0]
+ b _022338F0
+_022338D0:
+ ldr r3, [r4, #0x6c]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD11_0224C474
+ str r0, [sp]
+ ldr r3, _022338F8 ; =0x0000214C
+ ldr r1, [r4, #0x64]
+ ldr r2, [r4, #0x6c]
+ ldr r3, [r4, r3]
+ add r0, r4, #0
+ bl MOD11_0224BF3C
+ ldr r1, _022338F4 ; =0x00002150
+ str r0, [r4, r1]
+_022338F0:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022338F4: .word 0x00002150
+_022338F8: .word 0x0000214C
+
+ thumb_func_start MOD11_022338FC
+MOD11_022338FC: ; 0x022338FC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r7, r0, #0
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ ldr r1, [r5, #0x74]
+ add r0, r7, #0
+ bl MOD11_0222FF7C
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ ldr r0, _02233A70 ; =0x00000195
+ ldrb r2, [r6, r0]
+ mov r0, #1
+ tst r0, r2
+ beq _02233936
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ tst r0, r4
+ beq _02233938
+_02233936:
+ b _02233A64
+_02233938:
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ str r0, [sp]
+ add r4, r0, #0
+ add r0, r7, #0
+ bl MOD11_0222FF88
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _022339C6
+_02233950:
+ add r0, r7, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD11_02230014
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022339B4
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022339B4
+ add r0, r4, #0
+ bl FUN_0206A92C
+ ldr r1, [r5, #0x74]
+ asr r1, r1, #1
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1d
+ add r1, r5, r1
+ add r1, #0xa4
+ ldr r1, [r1]
+ tst r0, r1
+ beq _02233994
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+_02233994:
+ add r0, r6, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ cmp r0, #0x32
+ bne _022339B4
+ ldr r0, [sp]
+ add r0, r0, #1
+ str r0, [sp]
+_022339B4:
+ add r0, r7, #0
+ mov r1, #0
+ add r4, r4, #1
+ bl MOD11_0222FF88
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _02233950
+_022339C6:
+ ldr r1, [r5, #0x74]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r1, r0]
+ mov r1, #9
+ bl FUN_02068678
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldr r2, [r5, #0x74]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r5, r0
+ ldr r0, _02233A74 ; =0x00002D74
+ ldrb r0, [r2, r0]
+ mul r0, r1
+ mov r1, #7
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ ldr r1, [sp]
+ lsr r0, r0, #0x10
+ cmp r1, #0
+ beq _02233A3E
+ lsr r4, r0, #1
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ blx _s32_div_f
+ add r1, r5, #0
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02233A1E
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0x9c
+ str r1, [r0]
+_02233A1E:
+ ldr r1, [sp]
+ add r0, r4, #0
+ blx _s32_div_f
+ add r1, r5, #0
+ add r1, #0xa0
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02233A6A
+ mov r0, #1
+ add r5, #0xa0
+ str r0, [r5]
+ b _02233A6A
+_02233A3E:
+ ldr r1, [sp, #4]
+ blx _s32_div_f
+ add r1, r5, #0
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02233A5C
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0x9c
+ str r1, [r0]
+_02233A5C:
+ mov r0, #0
+ add r5, #0xa0
+ str r0, [r5]
+ b _02233A6A
+_02233A64:
+ add r0, r5, #0
+ bl MOD11_0223A424
+_02233A6A:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02233A70: .word 0x00000195
+_02233A74: .word 0x00002D74
+
+ thumb_func_start MOD11_02233A78
+MOD11_02233A78: ; 0x02233A78
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #5
+ mov r1, #0x58
+ bl FUN_02016998
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r2, #0
+ str r5, [r0]
+ ldr r0, [r4, r1]
+ str r4, [r0, #4]
+ ldr r0, [r4, r1]
+ str r2, [r0, #0x28]
+ ldr r0, [r4, r1]
+ str r2, [r0, #0x48]
+ ldr r0, _02233AB4 ; =MOD11_0223A79C
+ ldr r1, [r4, r1]
+ bl FUN_0200CA44
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233AB4: .word MOD11_0223A79C
+
+ thumb_func_start MOD11_02233AB8
+MOD11_02233AB8: ; 0x02233AB8
+ push {r3, lr}
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02233ACC
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+_02233ACC:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02233AD0
+MOD11_02233AD0: ; 0x02233AD0
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02233AE8
+MOD11_02233AE8: ; 0x02233AE8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #8]
+ add r6, r0, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ ldr r0, [sp, #8]
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r4, #0
+ add r5, r4, #0
+ cmp r7, #0
+ ble _02233B40
+ ldr r0, [sp, #8]
+ str r0, [sp, #0xc]
+_02233B0A:
+ mov r0, #0x4f
+ ldr r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02233B34
+ add r0, r5, #0
+ bl FUN_0206A92C
+ orr r4, r0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r1, [sp, #8]
+ add r0, r6, #0
+ add r2, r5, #0
+ mov r3, #1
+ bl MOD11_022558E0
+_02233B34:
+ ldr r0, [sp, #0xc]
+ add r5, r5, #1
+ add r0, r0, #4
+ str r0, [sp, #0xc]
+ cmp r5, r7
+ blt _02233B0A
+_02233B40:
+ mov r5, #0
+ cmp r7, #0
+ ble _02233B98
+_02233B46:
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ cmp r0, #7
+ bne _02233B80
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022302BC
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ bl FUN_0206A92C
+ tst r0, r4
+ bne _02233B92
+ ldr r0, [sp, #0x10]
+ bl FUN_0206A92C
+ tst r0, r4
+ bne _02233B92
+ add r0, r5, #0
+ bl FUN_0206A92C
+ orr r4, r0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022564CC
+ b _02233B92
+_02233B80:
+ add r0, r5, #0
+ bl FUN_0206A92C
+ tst r0, r4
+ bne _02233B92
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022564CC
+_02233B92:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02233B46
+_02233B98:
+ mov r0, #0
+ cmp r7, #0
+ ble _02233BBA
+ mov r1, #0x4f
+ ldr r4, [sp, #8]
+ lsl r1, r1, #2
+ mov r2, #1
+_02233BA6:
+ ldr r3, [r4, r1]
+ tst r3, r2
+ beq _02233BB2
+ ldr r1, [sp, #8]
+ str r0, [r1, #0x78]
+ b _02233BBA
+_02233BB2:
+ add r0, r0, #1
+ add r4, r4, #4
+ cmp r0, r7
+ blt _02233BA6
+_02233BBA:
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02233BC0
+MOD11_02233BC0: ; 0x02233BC0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #8]
+ mov r6, #0
+ ldr r1, [sp, #8]
+ add r0, r6, #0
+ cmp r1, #0
+ ble _02233BF2
+ mov r3, #0x4f
+ add r1, r5, #0
+ lsl r3, r3, #2
+ mov r4, #1
+_02233BE0:
+ ldr r2, [r1, r3]
+ tst r2, r4
+ beq _02233BE8
+ add r6, r6, #1
+_02233BE8:
+ ldr r2, [sp, #8]
+ add r0, r0, #1
+ add r1, r1, #4
+ cmp r0, r2
+ blt _02233BE0
+_02233BF2:
+ ldr r0, [sp, #8]
+ mov r4, #0
+ cmp r0, #0
+ ble _02233C6C
+ str r5, [sp, #4]
+ add r7, r5, #0
+_02233BFE:
+ mov r0, #0x4f
+ ldr r1, [sp, #4]
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02233C58
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _02233C58
+ mov r0, #0x23
+ lsl r0, r0, #8
+ ldrb r0, [r7, r0]
+ add r1, r5, r4
+ sub r6, r6, #1
+ sub r2, r0, #1
+ ldr r0, _02233C8C ; =0x000021A0
+ strb r2, [r1, r0]
+ add r0, r4, #0
+ bl FUN_0206A92C
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r1, [r5, r1]
+ lsl r0, r0, #0x18
+ tst r0, r1
+ bne _02233C58
+ add r0, r4, #0
+ bl FUN_0206A92C
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r1, [r5, r1]
+ lsl r0, r0, #0x18
+ orr r1, r0
+ mov r0, #0x85
+ lsl r0, r0, #6
+ str r1, [r5, r0]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_022564CC
+_02233C58:
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ add r0, r0, #4
+ str r0, [sp, #4]
+ mov r0, #1
+ lsl r0, r0, #8
+ add r7, r7, r0
+ ldr r0, [sp, #8]
+ cmp r4, r0
+ blt _02233BFE
+_02233C6C:
+ cmp r6, #0
+ bne _02233C84
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r5, r1]
+ ldr r0, _02233C90 ; =0xF0FFFFFF
+ and r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+_02233C84:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02233C8C: .word 0x000021A0
+_02233C90: .word 0xF0FFFFFF
+
+ thumb_func_start MOD11_02233C94
+MOD11_02233C94: ; 0x02233C94
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ cmp r0, #1
+ beq _02233CB6
+ cmp r0, #6
+ beq _02233CBA
+ cmp r0, #0x12
+ beq _02233CBE
+ b _02233CC0
+_02233CB6:
+ ldr r4, [r5, #0x64]
+ b _02233CC0
+_02233CBA:
+ ldr r4, [r5, #0x78]
+ b _02233CC0
+_02233CBE:
+ ldr r4, [r5, #0x6c]
+_02233CC0:
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ add r3, r5, r0
+ lsl r2, r4, #2
+ ldr r1, [r3, r2]
+ mov r0, #1
+ bic r1, r0
+ add r0, r4, #0
+ str r1, [r3, r2]
+ bl FUN_0206A92C
+ ldr r3, _02233D24 ; =0x00003108
+ mov r2, #0
+ mvn r2, r2
+ eor r0, r2
+ ldrb r1, [r5, r3]
+ add r2, r4, #0
+ and r0, r1
+ ldr r1, _02233D28 ; =0x000021A0
+ strb r0, [r5, r3]
+ add r0, r5, r1
+ sub r1, r1, #4
+ add r6, r5, r1
+ ldrb r1, [r0, r4]
+ strb r1, [r6, r4]
+ mov r1, #6
+ strb r1, [r0, r4]
+ ldrb r3, [r6, r4]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02242B78
+ ldrb r3, [r6, r4]
+ add r0, r7, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0224B290
+ ldr r0, _02233D2C ; =0x00002E4C
+ add r2, r4, #0
+ ldr r1, [r5, r0]
+ ldr r0, _02233D30 ; =0x00003122
+ strh r1, [r5, r0]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02245608
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02233D24: .word 0x00003108
+_02233D28: .word 0x000021A0
+_02233D2C: .word 0x00002E4C
+_02233D30: .word 0x00003122
+
+ thumb_func_start MOD11_02233D34
+MOD11_02233D34: ; 0x02233D34
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ mov r0, #0
+ cmp r4, #0
+ ble _02233D76
+ mov r2, #0x4f
+ add r1, r5, #0
+ lsl r2, r2, #2
+ mov r3, #1
+_02233D5C:
+ ldr r6, [r1, r2]
+ tst r6, r3
+ beq _02233D6E
+ str r0, [r5, #0x78]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ b _02233D76
+_02233D6E:
+ add r0, r0, #1
+ add r1, r1, #4
+ cmp r0, r4
+ blt _02233D5C
+_02233D76:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02233D7C
+MOD11_02233D7C: ; 0x02233D7C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ mov r0, #5
+ mov r1, #0x58
+ bl FUN_02016998
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r2, #0
+ str r5, [r0]
+ ldr r0, [r4, r1]
+ str r4, [r0, #4]
+ ldr r0, [r4, r1]
+ str r2, [r0, #0x28]
+ ldr r0, [r4, r1]
+ str r6, [r0, #0x24]
+ add r0, r1, #0
+ sub r0, #0x50
+ ldr r3, [r4, r0]
+ ldr r0, [r4, r1]
+ str r3, [r0, #0x2c]
+ ldr r0, _02233DC8 ; =MOD11_0223B49C
+ ldr r1, [r4, r1]
+ bl FUN_0200CA44
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02233DC8: .word MOD11_0223B49C
+
+ thumb_func_start MOD11_02233DCC
+MOD11_02233DCC: ; 0x02233DCC
+ push {r3, lr}
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02233DE0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+_02233DE0:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02233DE4
+MOD11_02233DE4: ; 0x02233DE4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r0, _02233E4C ; =0x0000217D
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ bne _02233E46
+ cmp r4, #0
+ bne _02233E36
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x5c
+ bne _02233E1C
+ mov r4, #5
+ b _02233E36
+_02233E1C:
+ bl FUN_0201B9EC
+ mov r1, #3
+ and r0, r1
+ cmp r0, #2
+ bge _02233E2C
+ add r4, r0, #2
+ b _02233E36
+_02233E2C:
+ bl FUN_0201B9EC
+ mov r1, #3
+ and r0, r1
+ add r4, r0, #2
+_02233E36:
+ lsl r0, r4, #0x18
+ ldr r1, _02233E50 ; =0x0000217C
+ lsr r2, r0, #0x18
+ strb r2, [r5, r1]
+ add r0, r1, #1
+ strb r2, [r5, r0]
+ add r1, #0xc
+ str r6, [r5, r1]
+_02233E46:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02233E4C: .word 0x0000217D
+_02233E50: .word 0x0000217C
+
+ thumb_func_start MOD11_02233E54
+MOD11_02233E54: ; 0x02233E54
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r2, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ cmp r6, #0x14
+ bhi _02233F3E
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02233E96: ; jump table
+ .short _02233F3E - _02233E96 - 2 ; case 0
+ .short _02233F3E - _02233E96 - 2 ; case 1
+ .short _02233F3E - _02233E96 - 2 ; case 2
+ .short _02233F3E - _02233E96 - 2 ; case 3
+ .short _02233F3E - _02233E96 - 2 ; case 4
+ .short _02233F3E - _02233E96 - 2 ; case 5
+ .short _02233F3E - _02233E96 - 2 ; case 6
+ .short _02233EC0 - _02233E96 - 2 ; case 7
+ .short _02233EC4 - _02233E96 - 2 ; case 8
+ .short _02233ECC - _02233E96 - 2 ; case 9
+ .short _02233ED4 - _02233E96 - 2 ; case 10
+ .short _02233EDC - _02233E96 - 2 ; case 11
+ .short _02233EEA - _02233E96 - 2 ; case 12
+ .short _02233EF4 - _02233E96 - 2 ; case 13
+ .short _02233F00 - _02233E96 - 2 ; case 14
+ .short _02233F08 - _02233E96 - 2 ; case 15
+ .short _02233F10 - _02233E96 - 2 ; case 16
+ .short _02233F1A - _02233E96 - 2 ; case 17
+ .short _02233F20 - _02233E96 - 2 ; case 18
+ .short _02233F2E - _02233E96 - 2 ; case 19
+ .short _02233F36 - _02233E96 - 2 ; case 20
+_02233EC0:
+ str r5, [r4]
+ b _02233F42
+_02233EC4:
+ ldr r0, [r4]
+ add r0, r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233ECC:
+ ldr r0, [r4]
+ sub r0, r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233ED4:
+ ldr r0, [r4]
+ orr r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233EDC:
+ mov r0, #0
+ mvn r0, r0
+ ldr r1, [r4]
+ eor r0, r5
+ and r0, r1
+ str r0, [r4]
+ b _02233F42
+_02233EEA:
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r5
+ str r1, [r4]
+ b _02233F42
+_02233EF4:
+ ldr r0, [r4]
+ add r1, r5, #0
+ blx _s32_div_f
+ str r0, [r4]
+ b _02233F42
+_02233F00:
+ ldr r0, [r4]
+ lsl r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233F08:
+ ldr r0, [r4]
+ asr r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233F10:
+ add r0, r5, #0
+ bl FUN_0206A92C
+ str r0, [r4]
+ b _02233F42
+_02233F1A:
+ bl ErrorHandling
+ b _02233F42
+_02233F20:
+ ldr r0, [r4]
+ sub r0, r0, r5
+ str r0, [r4]
+ bpl _02233F42
+ mov r0, #0
+ str r0, [r4]
+ b _02233F42
+_02233F2E:
+ ldr r0, [r4]
+ eor r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233F36:
+ ldr r0, [r4]
+ and r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233F3E:
+ bl ErrorHandling
+_02233F42:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02233F48
+MOD11_02233F48: ; 0x02233F48
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ mov r0, #0xb5
+ add r5, r1, #0
+ lsl r0, r0, #6
+ add r2, r5, r0
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r6, r2, r0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ ldr r1, _022342D0 ; =0x0000213C
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r2, [r5, r1]
+ ldr r0, _022342D4 ; =0xFFFDFFFF
+ and r2, r0
+ str r2, [r5, r1]
+ add r1, r5, #0
+ add r1, #0x8c
+ ldr r4, [r1]
+ cmp r4, #0x2e
+ blt _02233FA8
+ asr r7, r0, #0x11
+ mov r0, #0x4e
+ mov r1, #0xd
+ lsl r0, r0, #2
+ sub r4, #0x2e
+ str r1, [r5, r0]
+ b _02233FD8
+_02233FA8:
+ cmp r4, #0x27
+ blt _02233FBA
+ mov r0, #0x4e
+ mov r1, #0xc
+ lsl r0, r0, #2
+ sub r4, #0x27
+ mov r7, #2
+ str r1, [r5, r0]
+ b _02233FD8
+_02233FBA:
+ cmp r4, #0x16
+ blt _02233FCC
+ asr r7, r0, #0x12
+ mov r0, #0x4e
+ mov r1, #0xd
+ lsl r0, r0, #2
+ sub r4, #0x16
+ str r1, [r5, r0]
+ b _02233FD8
+_02233FCC:
+ mov r0, #0x4e
+ mov r1, #0xc
+ lsl r0, r0, #2
+ sub r4, #0xf
+ mov r7, #1
+ str r1, [r5, r0]
+_02233FD8:
+ cmp r7, #0
+ bgt _02233FDE
+ b _02234116
+_02233FDE:
+ add r1, r4, #1
+ add r6, #0x18
+ add r0, r6, r1
+ str r0, [sp, #4]
+ ldrsb r0, [r6, r1]
+ cmp r0, #0xc
+ bne _02234042
+ ldr r1, _022342D0 ; =0x0000213C
+ mov r0, #2
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0x10
+ orr r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ sub r0, r0, #2
+ cmp r0, #1
+ bhi _0223400E
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ b _02234538
+_0223400E:
+ add r0, r5, #0
+ mov r1, #0x8e
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xc
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r1, r4, #1
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ b _02234538
+_02234042:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _0223408E
+ add r0, r5, #0
+ ldr r1, _022342D8 ; =0x0000026E
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x27
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _022342DC ; =0x00002D67
+ add r2, r5, r2
+ ldrb r2, [r2, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r2, [r0]
+ add r0, r4, #1
+ add r1, #0x40
+ str r0, [r5, r1]
+ b _022340FA
+_0223408E:
+ cmp r0, #5
+ bne _022340CA
+ mov r1, #0xbd
+ add r0, r5, #0
+ lsl r1, r1, #2
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x2d
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r2, [r0]
+ add r0, r4, #1
+ sub r1, #0x28
+ str r0, [r5, r1]
+ b _022340FA
+_022340CA:
+ cmp r7, #1
+ bne _022340D2
+ ldr r1, _022342E0 ; =0x000002EE
+ b _022340D4
+_022340D2:
+ ldr r1, _022342E4 ; =0x000002F1
+_022340D4:
+ add r0, r5, #0
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xc
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r4, #1
+ add r5, #0xfc
+ str r0, [r5]
+_022340FA:
+ ldr r0, [sp, #4]
+ mov r1, #0
+ ldrsb r0, [r0, r1]
+ add r2, r0, r7
+ ldr r0, [sp, #4]
+ strb r2, [r0]
+ ldrsb r0, [r0, r1]
+ cmp r0, #0xc
+ bgt _0223410E
+ b _02234538
+_0223410E:
+ ldr r0, [sp, #4]
+ mov r1, #0xc
+ strb r1, [r0]
+ b _02234538
+_02234116:
+ add r0, r5, #0
+ add r0, #0x90
+ ldr r1, [r0]
+ mov r0, #2
+ lsl r0, r0, #0x1a
+ tst r1, r0
+ beq _02234126
+ b _0223449C
+_02234126:
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ ldr r2, [r5, #0x64]
+ cmp r2, r1
+ bne _02234134
+ b _022343E4
+_02234134:
+ ldr r0, [sp]
+ bl MOD11_02230270
+ lsl r0, r0, #3
+ mov r1, #0x71
+ add r0, r5, r0
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1d
+ beq _02234172
+ add r0, r5, #0
+ sub r1, #0xb3
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ mov r0, #1
+ str r0, [sp, #8]
+ b _0223444C
+_02234172:
+ add r2, r5, #0
+ add r2, #0x94
+ ldr r1, [r5, #0x64]
+ ldr r2, [r2]
+ add r0, r5, #0
+ mov r3, #0x1d
+ bl MOD11_02246D84
+ cmp r0, #1
+ beq _0223419A
+ add r2, r5, #0
+ add r2, #0x94
+ ldr r1, [r5, #0x64]
+ ldr r2, [r2]
+ add r0, r5, #0
+ mov r3, #0x49
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0223423C
+_0223419A:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _022341FE
+ add r0, r5, #0
+ ldr r1, _022342E8 ; =0x000002D7
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x35
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022342DC ; =0x00002D67
+ ldrb r1, [r1, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ mov r1, #1
+ lsl r1, r1, #8
+ str r0, [r5, r1]
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _022342DC ; =0x00002D67
+ add r2, r5, r2
+ ldrb r0, [r2, r0]
+ add r1, #0x44
+ str r0, [r5, r1]
+ b _02234236
+_022341FE:
+ add r0, r5, #0
+ ldr r1, _022342EC ; =0x0000029D
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xb
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022342DC ; =0x00002D67
+ ldrb r1, [r1, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r1, [r0]
+_02234236:
+ mov r0, #1
+ str r0, [sp, #8]
+ b _0223444C
+_0223423C:
+ add r2, r5, #0
+ add r2, #0x94
+ ldr r1, [r5, #0x64]
+ ldr r2, [r2]
+ add r0, r5, #0
+ mov r3, #0x33
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02234256
+ add r0, r4, #1
+ cmp r0, #6
+ beq _0223426E
+_02234256:
+ add r2, r5, #0
+ add r2, #0x94
+ ldr r1, [r5, #0x64]
+ ldr r2, [r2]
+ add r0, r5, #0
+ mov r3, #0x34
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02234338
+ cmp r4, #0
+ bne _02234338
+_0223426E:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _022342F0
+ add r0, r5, #0
+ ldr r1, _022342E8 ; =0x000002D7
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x35
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022342DC ; =0x00002D67
+ ldrb r1, [r1, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ mov r1, #1
+ lsl r1, r1, #8
+ str r0, [r5, r1]
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _022342DC ; =0x00002D67
+ add r2, r5, r2
+ ldrb r0, [r2, r0]
+ add r1, #0x44
+ b _02234330
+ .align 2, 0
+_022342D0: .word 0x0000213C
+_022342D4: .word 0xFFFDFFFF
+_022342D8: .word 0x0000026E
+_022342DC: .word 0x00002D67
+_022342E0: .word 0x000002EE
+_022342E4: .word 0x000002F1
+_022342E8: .word 0x000002D7
+_022342EC: .word 0x0000029D
+_022342F0:
+ mov r1, #0xb
+ add r0, r5, #0
+ lsl r1, r1, #6
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x27
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02234540 ; =0x00002D67
+ add r2, r5, r2
+ ldrb r2, [r2, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r2, [r0]
+ add r0, r4, #1
+ add r1, #0x40
+_02234330:
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp, #8]
+ b _0223444C
+_02234338:
+ add r0, r4, #1
+ add r1, r6, r0
+ mov r0, #0x18
+ ldrsb r0, [r1, r0]
+ cmp r0, #0
+ bne _022343A2
+ ldr r1, _02234544 ; =0x0000213C
+ mov r0, #2
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0x10
+ orr r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ sub r0, r0, #2
+ cmp r0, #1
+ bhi _0223436A
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223436A:
+ add r0, r5, #0
+ mov r1, #0x91
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xc
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r1, r4, #1
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022343A2:
+ add r2, r5, #0
+ add r2, #0x94
+ ldr r1, [r5, #0x64]
+ ldr r2, [r2]
+ add r0, r5, #0
+ mov r3, #0x13
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022343C6
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _022343C6
+ mov r0, #1
+ str r0, [sp, #8]
+ b _0223444C
+_022343C6:
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02234548 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x18
+ tst r0, r1
+ beq _0223444C
+ mov r0, #2
+ str r0, [sp, #8]
+ b _0223444C
+_022343E4:
+ add r1, r4, #1
+ add r2, r6, r1
+ mov r1, #0x18
+ ldrsb r1, [r2, r1]
+ cmp r1, #0
+ bne _0223444C
+ ldr r1, _02234544 ; =0x0000213C
+ lsr r0, r0, #0xa
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ sub r0, r0, #2
+ cmp r0, #1
+ bhi _02234414
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02234414:
+ add r0, r5, #0
+ mov r1, #0x91
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xc
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r1, r4, #1
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223444C:
+ ldr r0, [sp, #8]
+ cmp r0, #2
+ bne _0223446A
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _0223446A
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223446A:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _02234488
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _02234488
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02234488:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _0223449C
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223449C:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _022344F0
+ add r0, r5, #0
+ ldr r1, _0223454C ; =0x00000296
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x36
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02234540 ; =0x00002D67
+ ldrb r1, [r1, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ mov r1, #1
+ lsl r1, r1, #8
+ str r0, [r5, r1]
+ add r2, r4, #1
+ add r0, r1, #4
+ str r2, [r5, r0]
+ b _02234524
+_022344F0:
+ mov r0, #0
+ mvn r0, r0
+ cmp r7, r0
+ bne _022344FC
+ ldr r1, _02234550 ; =0x000002FA
+ b _022344FE
+_022344FC:
+ ldr r1, _02234554 ; =0x000002FD
+_022344FE:
+ add r0, r5, #0
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xc
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r4, #1
+ add r5, #0xfc
+ str r0, [r5]
+_02234524:
+ add r6, #0x18
+ add r1, r4, #1
+ ldrsb r0, [r6, r1]
+ add r0, r0, r7
+ strb r0, [r6, r1]
+ ldrsb r0, [r6, r1]
+ cmp r0, #0
+ bge _02234538
+ mov r0, #0
+ strb r0, [r6, r1]
+_02234538:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02234540: .word 0x00002D67
+_02234544: .word 0x0000213C
+_02234548: .word 0x00002DB0
+_0223454C: .word 0x00000296
+_02234550: .word 0x000002FA
+_02234554: .word 0x000002FD
+
+ thumb_func_start MOD11_02234558
+MOD11_02234558: ; 0x02234558
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #8]
+ add r1, r5, #0
+ bl MOD11_0223C230
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02243420
+ str r0, [sp, #0xc]
+ cmp r7, #0x14
+ bhi _02234644
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022345B2: ; jump table
+ .short _02234644 - _022345B2 - 2 ; case 0
+ .short _02234644 - _022345B2 - 2 ; case 1
+ .short _02234644 - _022345B2 - 2 ; case 2
+ .short _02234644 - _022345B2 - 2 ; case 3
+ .short _02234644 - _022345B2 - 2 ; case 4
+ .short _02234644 - _022345B2 - 2 ; case 5
+ .short _02234644 - _022345B2 - 2 ; case 6
+ .short _022345DC - _022345B2 - 2 ; case 7
+ .short _022345E0 - _022345B2 - 2 ; case 8
+ .short _022345E6 - _022345B2 - 2 ; case 9
+ .short _022345EC - _022345B2 - 2 ; case 10
+ .short _022345F2 - _022345B2 - 2 ; case 11
+ .short _022345FE - _022345B2 - 2 ; case 12
+ .short _02234606 - _022345B2 - 2 ; case 13
+ .short _02234610 - _022345B2 - 2 ; case 14
+ .short _02234616 - _022345B2 - 2 ; case 15
+ .short _0223461C - _022345B2 - 2 ; case 16
+ .short _02234626 - _022345B2 - 2 ; case 17
+ .short _0223462C - _022345B2 - 2 ; case 18
+ .short _02234638 - _022345B2 - 2 ; case 19
+ .short _0223463E - _022345B2 - 2 ; case 20
+_022345DC:
+ str r4, [sp, #0xc]
+ b _02234648
+_022345E0:
+ add r0, r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_022345E6:
+ sub r0, r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_022345EC:
+ orr r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_022345F2:
+ mov r1, #0
+ mvn r1, r1
+ eor r1, r4
+ and r0, r1
+ str r0, [sp, #0xc]
+ b _02234648
+_022345FE:
+ add r1, r0, #0
+ mul r1, r4
+ str r1, [sp, #0xc]
+ b _02234648
+_02234606:
+ add r1, r4, #0
+ blx _s32_div_f
+ str r0, [sp, #0xc]
+ b _02234648
+_02234610:
+ lsl r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_02234616:
+ asr r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_0223461C:
+ add r0, r4, #0
+ bl FUN_0206A92C
+ str r0, [sp, #0xc]
+ b _02234648
+_02234626:
+ bl ErrorHandling
+ b _02234648
+_0223462C:
+ sub r0, r0, r4
+ str r0, [sp, #0xc]
+ bpl _02234648
+ mov r0, #0
+ str r0, [sp, #0xc]
+ b _02234648
+_02234638:
+ eor r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_0223463E:
+ and r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_02234644:
+ bl ErrorHandling
+_02234648:
+ cmp r6, #0x1a
+ bne _0223465E
+ ldr r1, [sp, #4]
+ ldr r2, [sp, #0xc]
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl MOD11_0223D1C4
+_0223465E:
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ add r2, r6, #0
+ add r3, sp, #0xc
+ bl MOD11_0224379C
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r5, #0
+ bl MOD11_02245190
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223467C
+MOD11_0223467C: ; 0x0223467C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ ldr r1, _022346B4 ; =0x0000218C
+ add r2, r5, r1
+ lsl r1, r0, #2
+ ldr r0, [r2, r1]
+ orr r0, r4
+ str r0, [r2, r1]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022346B4: .word 0x0000218C
+
+ thumb_func_start MOD11_022346B8
+MOD11_022346B8: ; 0x022346B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_02255D3C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022346F0
+MOD11_022346F0: ; 0x022346F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ cmp r4, #0
+ bne _02234766
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ mov r4, #0
+ str r0, [sp, #4]
+ cmp r0, #0
+ ble _022347A8
+_02234732:
+ cmp r7, #0
+ bne _02234750
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _0223475C
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+ b _022347A8
+_02234750:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ beq _022347A8
+_0223475C:
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _02234732
+ b _022347A8
+_02234766:
+ ldr r0, [sp]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ cmp r7, #0
+ bne _02234790
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _022347A8
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+ b _022347A8
+_02234790:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ beq _022347A8
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+_022347A8:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022347B0
+MOD11_022347B0: ; 0x022347B0
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ bl FUN_0201B9EC
+ add r1, r4, #1
+ blx _s32_div_f
+ mov r0, #0x4d
+ add r1, r6, r1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022347E4
+MOD11_022347E4: ; 0x022347E4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ ldr r2, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_0223A444
+ add r1, r0, #0
+ cmp r6, #0x14
+ bhi _022348F2
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02234832: ; jump table
+ .short _022348F2 - _02234832 - 2 ; case 0
+ .short _022348F2 - _02234832 - 2 ; case 1
+ .short _022348F2 - _02234832 - 2 ; case 2
+ .short _022348F2 - _02234832 - 2 ; case 3
+ .short _022348F2 - _02234832 - 2 ; case 4
+ .short _022348F2 - _02234832 - 2 ; case 5
+ .short _022348F2 - _02234832 - 2 ; case 6
+ .short _0223485C - _02234832 - 2 ; case 7
+ .short _02234862 - _02234832 - 2 ; case 8
+ .short _0223486C - _02234832 - 2 ; case 9
+ .short _02234876 - _02234832 - 2 ; case 10
+ .short _02234880 - _02234832 - 2 ; case 11
+ .short _02234890 - _02234832 - 2 ; case 12
+ .short _0223489A - _02234832 - 2 ; case 13
+ .short _022348A6 - _02234832 - 2 ; case 14
+ .short _022348B2 - _02234832 - 2 ; case 15
+ .short _022348BE - _02234832 - 2 ; case 16
+ .short _022348C8 - _02234832 - 2 ; case 17
+ .short _022348CE - _02234832 - 2 ; case 18
+ .short _022348DE - _02234832 - 2 ; case 19
+ .short _022348E8 - _02234832 - 2 ; case 20
+_0223485C:
+ ldr r0, [r1]
+ str r0, [r4]
+ b _022348F6
+_02234862:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ add r0, r2, r0
+ str r0, [r4]
+ b _022348F6
+_0223486C:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ sub r0, r2, r0
+ str r0, [r4]
+ b _022348F6
+_02234876:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ orr r0, r2
+ str r0, [r4]
+ b _022348F6
+_02234880:
+ mov r0, #0
+ ldr r1, [r1]
+ mvn r0, r0
+ ldr r2, [r4]
+ eor r0, r1
+ and r0, r2
+ str r0, [r4]
+ b _022348F6
+_02234890:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ mul r0, r2
+ str r0, [r4]
+ b _022348F6
+_0223489A:
+ ldr r0, [r4]
+ ldr r1, [r1]
+ blx _s32_div_f
+ str r0, [r4]
+ b _022348F6
+_022348A6:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ add r1, r2, #0
+ lsl r1, r0
+ str r1, [r4]
+ b _022348F6
+_022348B2:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ add r1, r2, #0
+ asr r1, r0
+ str r1, [r4]
+ b _022348F6
+_022348BE:
+ ldr r0, [r1]
+ bl FUN_0206A92C
+ str r0, [r4]
+ b _022348F6
+_022348C8:
+ ldr r0, [r4]
+ str r0, [r1]
+ b _022348F6
+_022348CE:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ sub r0, r2, r0
+ str r0, [r4]
+ bpl _022348F6
+ mov r0, #0
+ str r0, [r4]
+ b _022348F6
+_022348DE:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ eor r0, r2
+ str r0, [r4]
+ b _022348F6
+_022348E8:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ and r0, r2
+ str r0, [r4]
+ b _022348F6
+_022348F2:
+ bl ErrorHandling
+_022348F6:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022348FC
+MOD11_022348FC: ; 0x022348FC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ ldr r2, [sp, #4]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ str r0, [sp]
+ ldr r1, [sp]
+ add r0, r4, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02243420
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #8]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ add r1, r0, #0
+ cmp r5, #0x14
+ bhi _02234A22
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02234962: ; jump table
+ .short _02234A22 - _02234962 - 2 ; case 0
+ .short _02234A22 - _02234962 - 2 ; case 1
+ .short _02234A22 - _02234962 - 2 ; case 2
+ .short _02234A22 - _02234962 - 2 ; case 3
+ .short _02234A22 - _02234962 - 2 ; case 4
+ .short _02234A22 - _02234962 - 2 ; case 5
+ .short _02234A22 - _02234962 - 2 ; case 6
+ .short _0223498C - _02234962 - 2 ; case 7
+ .short _02234992 - _02234962 - 2 ; case 8
+ .short _0223499C - _02234962 - 2 ; case 9
+ .short _022349A6 - _02234962 - 2 ; case 10
+ .short _022349B0 - _02234962 - 2 ; case 11
+ .short _022349C0 - _02234962 - 2 ; case 12
+ .short _022349CA - _02234962 - 2 ; case 13
+ .short _022349D6 - _02234962 - 2 ; case 14
+ .short _022349E2 - _02234962 - 2 ; case 15
+ .short _022349EE - _02234962 - 2 ; case 16
+ .short _022349F8 - _02234962 - 2 ; case 17
+ .short _022349FE - _02234962 - 2 ; case 18
+ .short _02234A0E - _02234962 - 2 ; case 19
+ .short _02234A18 - _02234962 - 2 ; case 20
+_0223498C:
+ ldr r0, [r1]
+ str r0, [sp, #0xc]
+ b _02234A26
+_02234992:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ add r0, r2, r0
+ str r0, [sp, #0xc]
+ b _02234A26
+_0223499C:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ sub r0, r2, r0
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349A6:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ orr r0, r2
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349B0:
+ ldr r2, [r1]
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [sp, #0xc]
+ eor r1, r2
+ and r0, r1
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349C0:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ mul r0, r2
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349CA:
+ ldr r0, [sp, #0xc]
+ ldr r1, [r1]
+ blx _s32_div_f
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349D6:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ add r1, r2, #0
+ lsl r1, r0
+ str r1, [sp, #0xc]
+ b _02234A26
+_022349E2:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ add r1, r2, #0
+ asr r1, r0
+ str r1, [sp, #0xc]
+ b _02234A26
+_022349EE:
+ ldr r0, [r1]
+ bl FUN_0206A92C
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349F8:
+ ldr r0, [sp, #0xc]
+ str r0, [r1]
+ b _02234A26
+_022349FE:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ sub r0, r2, r0
+ str r0, [sp, #0xc]
+ bpl _02234A26
+ mov r0, #0
+ str r0, [sp, #0xc]
+ b _02234A26
+_02234A0E:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ eor r0, r2
+ str r0, [sp, #0xc]
+ b _02234A26
+_02234A18:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ and r0, r2
+ str r0, [sp, #0xc]
+ b _02234A26
+_02234A22:
+ bl ErrorHandling
+_02234A26:
+ cmp r5, #0x11
+ beq _02234A56
+ cmp r6, #0x1a
+ bne _02234A40
+ ldr r1, [sp]
+ ldr r2, [sp, #0xc]
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl MOD11_0223D1C4
+_02234A40:
+ ldr r1, [sp]
+ add r0, r4, #0
+ add r2, r6, #0
+ add r3, sp, #0xc
+ bl MOD11_0224379C
+ ldr r2, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02245190
+_02234A56:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02234A5C
+MOD11_02234A5C: ; 0x02234A5C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A424
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234A7C
+MOD11_02234A7C: ; 0x02234A7C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02234A9C
+MOD11_02234A9C: ; 0x02234A9C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ add r2, r0, #0
+ ldr r2, [r2]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234ACC
+MOD11_02234ACC: ; 0x02234ACC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ str r0, [sp, #8]
+ mov r4, #0
+ bl MOD11_0222FF74
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ lsl r0, r1, #1
+ add r2, r5, r0
+ ldr r0, _02234BCC ; =0x00003084
+ ldrh r2, [r2, r0]
+ cmp r2, #0
+ beq _02234AF6
+ add r4, r2, #0
+ b _02234B40
+_02234AF6:
+ mov r2, #2
+ tst r2, r6
+ beq _02234B40
+ lsl r1, r1, #3
+ add r3, r5, r1
+ add r1, r0, #0
+ add r1, #0xe
+ add r4, r0, #0
+ ldrh r2, [r3, r1]
+ add r1, r0, #0
+ add r4, #8
+ add r0, #0xa
+ add r1, #0xc
+ ldrh r4, [r3, r4]
+ ldrh r0, [r3, r0]
+ ldrh r1, [r3, r1]
+ add r0, r4, r0
+ add r0, r1, r0
+ add r4, r2, r0
+ beq _02234B40
+ ldr r6, _02234BD0 ; =0x0000308C
+ mov r7, #0x1e
+_02234B22:
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r0, r0, #0x1e
+ ldr r1, [r5, #0x64]
+ sub r0, r0, r2
+ ror r0, r7
+ add r0, r2, r0
+ lsl r1, r1, #3
+ lsl r2, r0, #1
+ add r0, r5, r1
+ add r0, r2, r0
+ ldrh r4, [r0, r6]
+ cmp r4, #0
+ beq _02234B22
+_02234B40:
+ cmp r4, #0
+ beq _02234BAA
+ lsl r1, r4, #0x10
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ bl MOD11_0224C0B4
+ cmp r0, #1
+ bne _02234BAA
+ ldr r1, _02234BD4 ; =0x0000213C
+ lsl r3, r4, #0x10
+ ldr r2, [r5, r1]
+ mov r0, #1
+ bic r2, r0
+ str r2, [r5, r1]
+ ldr r2, [r5, r1]
+ ldr r0, _02234BD8 ; =0xFFFFBFFF
+ lsr r3, r3, #0x10
+ and r0, r2
+ str r0, [r5, r1]
+ ldr r0, _02234BDC ; =0x00003044
+ add r1, r5, #0
+ str r4, [r5, r0]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ ldr r2, [r5, #0x64]
+ bl MOD11_02244C28
+ str r0, [r5, #0x6c]
+ cmp r0, #0xff
+ bne _02234B94
+ mov r2, #0x26
+ str r2, [r5, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, #0xf3
+ bl MOD11_0223A434
+ b _02234BC4
+_02234B94:
+ ldr r1, [r5, #0x64]
+ lsl r1, r1, #4
+ add r2, r5, r1
+ ldr r1, _02234BE0 ; =0x000021AC
+ str r0, [r2, r1]
+ add r0, r5, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD11_0223A434
+ b _02234BC4
+_02234BAA:
+ ldr r2, [r5, #0x64]
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ mov r1, #0x1c
+ add r3, r2, #0
+ mul r3, r1
+ add r0, r5, r0
+ ldr r2, [r0, r3]
+ mov r1, #1
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ str r1, [r0, r3]
+_02234BC4:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02234BCC: .word 0x00003084
+_02234BD0: .word 0x0000308C
+_02234BD4: .word 0x0000213C
+_02234BD8: .word 0xFFFFBFFF
+_02234BDC: .word 0x00003044
+_02234BE0: .word 0x000021AC
+
+ thumb_func_start MOD11_02234BE4
+MOD11_02234BE4: ; 0x02234BE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ mov r2, #0
+ cmp r0, #0
+ ble _02234C24
+ ldr r6, _02234C28 ; =0x00002D58
+ mov r1, #6
+ add r5, r6, #0
+ add r5, #0x58
+_02234C06:
+ mov r7, #0
+_02234C08:
+ add r3, r4, r7
+ add r7, r7, #1
+ strb r1, [r3, r6]
+ cmp r7, #8
+ blt _02234C08
+ ldr r3, _02234C2C ; =0x00002DB0
+ add r2, r2, #1
+ ldr r7, [r4, r3]
+ ldr r3, _02234C30 ; =0xFFEFFFFF
+ and r3, r7
+ str r3, [r4, r5]
+ add r4, #0xc0
+ cmp r2, r0
+ blt _02234C06
+_02234C24:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02234C28: .word 0x00002D58
+_02234C2C: .word 0x00002DB0
+_02234C30: .word 0xFFEFFFFF
+
+ thumb_func_start MOD11_02234C34
+MOD11_02234C34: ; 0x02234C34
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022451C0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02234C60
+MOD11_02234C60: ; 0x02234C60
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022451F0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02234C8C
+MOD11_02234C8C: ; 0x02234C8C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_02255E0C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234CC4
+MOD11_02234CC4: ; 0x02234CC4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_02255E2C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234CFC
+MOD11_02234CFC: ; 0x02234CFC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r7, r0, #0
+ add r5, r1, #0
+ str r2, [sp]
+ mov r0, #5
+ mov r1, #0x60
+ bl FUN_02016998
+ add r4, r0, #0
+ ldr r0, [sp]
+ add r6, r7, #0
+ lsl r0, r0, #1
+ add r6, #0xa0
+ str r0, [sp, #4]
+ ldrh r0, [r6, r0]
+ add r1, sp, #8
+ bl FUN_0206ADE0
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ ldrh r0, [r6, r0]
+ bl FUN_0206ADF0
+ add r0, sp, #8
+ ldrb r1, [r0]
+ cmp r1, #3
+ bhi _02234D48
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02234D40: ; jump table
+ .short _02234D48 - _02234D40 - 2 ; case 0
+ .short _02234D5C - _02234D40 - 2 ; case 1
+ .short _02234D6E - _02234D40 - 2 ; case 2
+ .short _02234D7E - _02234D40 - 2 ; case 3
+_02234D48:
+ add r0, sp, #8
+ ldrb r0, [r0, #3]
+ sub r1, r0, #1
+ mov r0, #6
+ mul r0, r1
+ add r0, r4, r0
+ ldrh r0, [r0, #2]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ b _02234D8C
+_02234D5C:
+ ldrb r0, [r0, #3]
+ sub r1, r0, #1
+ mov r0, #0xe
+ mul r0, r1
+ add r0, r4, r0
+ ldrh r0, [r0, #2]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ b _02234D8C
+_02234D6E:
+ ldrb r0, [r0, #3]
+ sub r0, r0, #1
+ lsl r0, r0, #3
+ add r0, r4, r0
+ ldrh r0, [r0, #2]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ b _02234D8C
+_02234D7E:
+ ldrb r0, [r0, #3]
+ sub r0, r0, #1
+ lsl r0, r0, #4
+ add r0, r4, r0
+ ldrh r0, [r0, #2]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+_02234D8C:
+ ldr r2, [r7, #0x2c]
+ mov r0, #0x10
+ tst r0, r2
+ bne _02234D98
+ cmp r2, #0x4b
+ bne _02234DAE
+_02234D98:
+ add r0, sp, #8
+ ldrb r2, [r0, #1]
+ ldr r0, _02234DEC ; =0x0225FF20
+ lsl r1, r1, #2
+ ldrb r0, [r0, r2]
+ ldr r2, _02234DF0 ; =0x00002168
+ ldr r2, [r5, r2]
+ add r5, r0, #0
+ mul r1, r2
+ mul r5, r1
+ b _02234DDE
+_02234DAE:
+ mov r0, #2
+ tst r0, r2
+ add r0, sp, #8
+ beq _02234DCC
+ ldrb r2, [r0, #1]
+ ldr r0, _02234DEC ; =0x0225FF20
+ lsl r1, r1, #2
+ ldrb r0, [r0, r2]
+ ldr r2, _02234DF0 ; =0x00002168
+ ldr r2, [r5, r2]
+ add r5, r0, #0
+ mul r1, r2
+ lsl r1, r1, #1
+ mul r5, r1
+ b _02234DDE
+_02234DCC:
+ ldrb r2, [r0, #1]
+ ldr r0, _02234DEC ; =0x0225FF20
+ lsl r1, r1, #2
+ ldrb r0, [r0, r2]
+ ldr r2, _02234DF0 ; =0x00002168
+ ldr r2, [r5, r2]
+ add r5, r0, #0
+ mul r1, r2
+ mul r5, r1
+_02234DDE:
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02234DEC: .word 0x0225FF20
+_02234DF0: .word 0x00002168
+
+ thumb_func_start MOD11_02234DF4
+MOD11_02234DF4: ; 0x02234DF4
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, _02234E70 ; =0x0000241C
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ bne _02234E3E
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD11_02234CFC
+ add r4, r0, #0
+ ldr r1, [r5, #0x2c]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02234E22
+ cmp r1, #0x4b
+ bne _02234E2E
+_02234E22:
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_02234CFC
+ add r4, r4, r0
+_02234E2E:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_022301D4
+ add r1, r4, #0
+ bl FUN_02023A30
+ b _02234E56
+_02234E3E:
+ ldr r0, [r5, #0x68]
+ ldr r1, [r5, #0x48]
+ bl MOD11_0223158C
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_022301D4
+ add r1, r4, #0
+ bl FUN_02023A54
+_02234E56:
+ cmp r4, #0
+ beq _02234E62
+ mov r0, #0x13
+ lsl r0, r0, #4
+ str r4, [r6, r0]
+ b _02234E6A
+_02234E62:
+ mov r0, #0x13
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+_02234E6A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02234E70: .word 0x0000241C
+
+ thumb_func_start MOD11_02234E74
+MOD11_02234E74: ; 0x02234E74
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_02230E20
+ cmp r0, #1
+ beq _02234EAC
+ cmp r4, #0xf
+ beq _02234EAC
+ cmp r4, #0x10
+ beq _02234EAC
+ add r0, r4, #0
+ sub r0, #0x19
+ cmp r0, #1
+ bhi _02234ED2
+_02234EAC:
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD11_0224C20C
+ cmp r0, #1
+ bne _02234ED2
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ add r3, r4, #0
+ bl MOD11_02255E4C
+_02234ED2:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234ED8
+MOD11_02234ED8: ; 0x02234ED8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_02230E20
+ cmp r0, #1
+ beq _02234F1A
+ cmp r4, #0xf
+ beq _02234F1A
+ cmp r4, #0x10
+ beq _02234F1A
+ add r0, r4, #0
+ sub r0, #0x19
+ cmp r0, #1
+ bhi _02234F5C
+_02234F1A:
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ ldr r2, [sp, #4]
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD11_0224C20C
+ cmp r0, #1
+ bne _02234F5C
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD11_0224C20C
+ cmp r0, #1
+ bne _02234F5C
+ ldr r3, [sp, #8]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ str r4, [sp]
+ bl MOD11_02255E7C
+_02234F5C:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234F64
+MOD11_02234F64: ; 0x02234F64
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r7, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ add r2, r6, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ add r0, r7, #0
+ bl MOD11_02230E20
+ cmp r0, #1
+ beq _02234FB4
+ cmp r6, #0xf
+ beq _02234FB4
+ cmp r6, #0x10
+ beq _02234FB4
+ ldr r0, [r4]
+ sub r0, #0x19
+ cmp r0, #1
+ bhi _02234FCE
+_02234FB4:
+ ldr r1, [sp]
+ ldr r2, [r4]
+ add r0, r5, #0
+ bl MOD11_0224C20C
+ cmp r0, #1
+ bne _02234FCE
+ ldr r2, [sp]
+ ldr r3, [r4]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02255E4C
+_02234FCE:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234FD4
+MOD11_02234FD4: ; 0x02234FD4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r1, r4, #0
+ ldr r3, _02235008 ; =0x0000219C
+ add r4, r4, r2
+ ldrb r3, [r4, r3]
+ add r0, r5, #0
+ bl MOD11_02255EAC
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02235008: .word 0x0000219C
+
+ thumb_func_start MOD11_0223500C
+MOD11_0223500C: ; 0x0223500C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r1, r4, #0
+ ldr r3, _02235040 ; =0x0000219C
+ add r4, r4, r2
+ ldrb r3, [r4, r3]
+ add r0, r5, #0
+ bl MOD11_02255EF0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02235040: .word 0x0000219C
+
+ thumb_func_start MOD11_02235044
+MOD11_02235044: ; 0x02235044
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02255F3C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02235070
+MOD11_02235070: ; 0x02235070
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02255F54
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0223509C
+MOD11_0223509C: ; 0x0223509C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ mov r2, #0x13
+ lsl r2, r2, #4
+ add r1, r0, #0
+ ldr r2, [r4, r2]
+ add r0, r5, #0
+ bl MOD11_02255E2C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022350CC
+MOD11_022350CC: ; 0x022350CC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x79
+ bne _022350FC
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022350FC:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _02235238 ; =0x00002D4C
+ mov r6, #0
+_02235108:
+ ldrh r1, [r2, r0]
+ cmp r1, #0
+ beq _02235116
+ add r6, r6, #1
+ add r2, r2, #2
+ cmp r6, #4
+ blt _02235108
+_02235116:
+ mov r0, #0
+ str r0, [sp, #4]
+ cmp r6, #0
+ ble _0223518E
+ add r7, r0, #0
+_02235120:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r4, r0
+ add r2, r7, r0
+ ldr r0, _02235238 ; =0x00002D4C
+ ldrh r0, [r2, r0]
+ cmp r0, #0xa0
+ beq _02235182
+ lsl r0, r0, #4
+ add r2, r4, r0
+ ldr r0, _0223523C ; =0x000003E2
+ ldrb r5, [r2, r0]
+ cmp r5, #9
+ bne _02235162
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ beq _0223515C
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ bne _02235160
+_0223515C:
+ mov r5, #7
+ b _02235162
+_02235160:
+ mov r5, #0
+_02235162:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _02235182
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ bne _0223518E
+_02235182:
+ ldr r0, [sp, #4]
+ add r7, r7, #2
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, r6
+ blt _02235120
+_0223518E:
+ ldr r0, [sp, #4]
+ cmp r0, r6
+ bne _0223519E
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ b _02235230
+_0223519E:
+ ldr r7, _02235238 ; =0x00002D4C
+_022351A0:
+ bl FUN_0201B9EC
+ add r1, r6, #0
+ blx _s32_div_f
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ lsl r1, r1, #1
+ add r0, r4, r0
+ add r0, r1, r0
+ ldrh r0, [r0, r7]
+ cmp r0, #0xa0
+ beq _022351A0
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _0223523C ; =0x000003E2
+ ldrb r5, [r1, r0]
+ cmp r5, #9
+ bne _022351EE
+ add r1, r2, #0
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ beq _022351E8
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ bne _022351EC
+_022351E8:
+ mov r5, #7
+ b _022351EE
+_022351EC:
+ mov r5, #0
+_022351EE:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _022351A0
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _022351A0
+ ldr r1, [r4, #0x64]
+ lsl r0, r5, #0x18
+ add r3, r1, #0
+ mov r2, #0xc0
+ mul r3, r2
+ ldr r1, _02235240 ; =0x00002D64
+ lsr r0, r0, #0x18
+ add r3, r4, r3
+ strb r0, [r3, r1]
+ ldr r3, [r4, #0x64]
+ add r1, r1, #1
+ add r6, r3, #0
+ mul r6, r2
+ add r3, r4, r6
+ strb r0, [r3, r1]
+ add r2, #0x70
+ str r5, [r4, r2]
+_02235230:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235238: .word 0x00002D4C
+_0223523C: .word 0x000003E2
+_02235240: .word 0x00002D64
+
+ thumb_func_start MOD11_02235244
+MOD11_02235244: ; 0x02235244
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r0, [sp]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_0223A444
+ cmp r7, #6
+ bhi _022352FC
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223529A: ; jump table
+ .short _022352A8 - _0223529A - 2 ; case 0
+ .short _022352B4 - _0223529A - 2 ; case 1
+ .short _022352C0 - _0223529A - 2 ; case 2
+ .short _022352CC - _0223529A - 2 ; case 3
+ .short _022352D8 - _0223529A - 2 ; case 4
+ .short _022352E4 - _0223529A - 2 ; case 5
+ .short _022352F0 - _0223529A - 2 ; case 6
+_022352A8:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ cmp r1, r0
+ beq _022352FC
+ mov r5, #0
+ b _022352FC
+_022352B4:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ cmp r1, r0
+ bne _022352FC
+ mov r5, #0
+ b _022352FC
+_022352C0:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ cmp r1, r0
+ bhi _022352FC
+ mov r5, #0
+ b _022352FC
+_022352CC:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ cmp r1, r0
+ bls _022352FC
+ mov r5, #0
+ b _022352FC
+_022352D8:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ tst r0, r1
+ bne _022352FC
+ mov r5, #0
+ b _022352FC
+_022352E4:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ tst r0, r1
+ beq _022352FC
+ mov r5, #0
+ b _022352FC
+_022352F0:
+ ldr r1, [r0]
+ ldr r0, [r4]
+ and r0, r1
+ cmp r1, r0
+ beq _022352FC
+ mov r5, #0
+_022352FC:
+ cmp r5, #0
+ beq _02235308
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223A424
+_02235308:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02235310
+MOD11_02235310: ; 0x02235310
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r0, [sp]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ ldr r2, [sp, #4]
+ add r0, r6, #0
+ mov r3, #0
+ bl MOD11_02243420
+ add r4, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #8]
+ add r1, r6, #0
+ bl MOD11_0223A444
+ cmp r7, #6
+ bhi _022353D0
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223537A: ; jump table
+ .short _02235388 - _0223537A - 2 ; case 0
+ .short _02235392 - _0223537A - 2 ; case 1
+ .short _0223539C - _0223537A - 2 ; case 2
+ .short _022353A6 - _0223537A - 2 ; case 3
+ .short _022353B0 - _0223537A - 2 ; case 4
+ .short _022353BA - _0223537A - 2 ; case 5
+ .short _022353C4 - _0223537A - 2 ; case 6
+_02235388:
+ ldr r0, [r0]
+ cmp r4, r0
+ beq _022353D0
+ mov r5, #0
+ b _022353D0
+_02235392:
+ ldr r0, [r0]
+ cmp r4, r0
+ bne _022353D0
+ mov r5, #0
+ b _022353D0
+_0223539C:
+ ldr r0, [r0]
+ cmp r4, r0
+ bhi _022353D0
+ mov r5, #0
+ b _022353D0
+_022353A6:
+ ldr r0, [r0]
+ cmp r4, r0
+ bls _022353D0
+ mov r5, #0
+ b _022353D0
+_022353B0:
+ ldr r0, [r0]
+ tst r0, r4
+ bne _022353D0
+ mov r5, #0
+ b _022353D0
+_022353BA:
+ ldr r0, [r0]
+ tst r0, r4
+ beq _022353D0
+ mov r5, #0
+ b _022353D0
+_022353C4:
+ ldr r1, [r0]
+ add r0, r1, #0
+ and r0, r4
+ cmp r1, r0
+ beq _022353D0
+ mov r5, #0
+_022353D0:
+ cmp r5, #0
+ beq _022353DC
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223A424
+_022353DC:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022353E4
+MOD11_022353E4: ; 0x022353E4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r1, _0223542C ; =0x00002168
+ ldr r2, [r4, r0]
+ ldr r1, [r4, r1]
+ add r3, r2, #0
+ mul r3, r1
+ add r1, r0, #0
+ sub r1, #0x1c
+ str r3, [r4, r1]
+ add r1, r0, #0
+ sub r1, #0x1c
+ ldr r2, [r4, r1]
+ ldr r1, _02235430 ; =0x0000FFFF
+ cmp r2, r1
+ ble _02235416
+ sub r0, #0x1c
+ str r1, [r4, r0]
+_02235416:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_022301D4
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ bl FUN_02023A30
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223542C: .word 0x00002168
+_02235430: .word 0x0000FFFF
+
+ thumb_func_start MOD11_02235434
+MOD11_02235434: ; 0x02235434
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r5, #0x64]
+ add r0, r7, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ add r3, r5, r0
+ lsl r2, r6, #2
+ ldr r1, [r3, r2]
+ mov r4, #2
+ tst r4, r1
+ beq _02235478
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ ldr r1, _02235508 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+ b _02235504
+_02235478:
+ mov r4, #2
+ orr r1, r4
+ str r1, [r3, r2]
+ add r1, r0, #0
+ add r1, #8
+ add r4, r5, r1
+ lsl r6, r6, #3
+ ldr r2, [r4, r6]
+ ldr r1, _0223550C ; =0xFFFFFC7F
+ add r0, #0xc4
+ and r1, r2
+ orr r0, r1
+ str r0, [r4, r6]
+ ldr r0, [r4, r6]
+ mov r1, #0x60
+ bic r0, r1
+ ldr r1, [r5, #0x64]
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x19
+ orr r0, r1
+ str r0, [r4, r6]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r0, #0x60
+ bne _022354CC
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ ldr r1, [r4, r6]
+ ldr r2, _0223550C ; =0xFFFFFC7F
+ and r2, r1
+ lsl r1, r1, #0x16
+ lsr r1, r1, #0x1d
+ add r0, r1, r0
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x16
+ orr r0, r2
+ str r0, [r4, r6]
+_022354CC:
+ add r0, r5, #0
+ mov r1, #0x14
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r0, _02235510 ; =0x00003044
+ mov r2, #1
+ ldr r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0xf8
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r3, [r5, #0x64]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_022467AC
+ cmp r0, #2
+ bne _022354FE
+ mov r0, #0xc0
+ add r5, #0xf6
+ strh r0, [r5]
+ b _02235504
+_022354FE:
+ mov r0, #0xbe
+ add r5, #0xf6
+ strh r0, [r5]
+_02235504:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235508: .word 0x0000216C
+_0223550C: .word 0xFFFFFC7F
+_02235510: .word 0x00003044
+
+ thumb_func_start MOD11_02235514
+MOD11_02235514: ; 0x02235514
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r5, #0x64]
+ add r0, r7, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ add r3, r5, r0
+ lsl r2, r6, #2
+ ldr r1, [r3, r2]
+ mov r4, #1
+ tst r4, r1
+ beq _02235558
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ ldr r1, _022355EC ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+ b _022355E6
+_02235558:
+ mov r4, #1
+ orr r1, r4
+ add r0, #8
+ add r4, r5, r0
+ lsl r6, r6, #3
+ str r1, [r3, r2]
+ ldr r1, [r4, r6]
+ mov r0, #0x1c
+ bic r1, r0
+ mov r0, #0x14
+ orr r0, r1
+ str r0, [r4, r6]
+ ldr r0, [r4, r6]
+ mov r1, #3
+ bic r0, r1
+ ldr r2, [r5, #0x64]
+ mov r1, #3
+ and r1, r2
+ orr r0, r1
+ str r0, [r4, r6]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r0, #0x60
+ bne _022355AE
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ ldr r1, [r4, r6]
+ add r3, r0, #0
+ mov r0, #0x1c
+ add r2, r1, #0
+ bic r2, r0
+ lsl r0, r1, #0x1b
+ lsr r0, r0, #0x1d
+ add r0, r0, r3
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1b
+ orr r0, r2
+ str r0, [r4, r6]
+_022355AE:
+ add r0, r5, #0
+ mov r1, #0x14
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r0, _022355F0 ; =0x00003044
+ mov r2, #1
+ ldr r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0xf8
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r3, [r5, #0x64]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_022467AC
+ cmp r0, #2
+ bne _022355E0
+ mov r0, #0xc4
+ add r5, #0xf6
+ strh r0, [r5]
+ b _022355E6
+_022355E0:
+ mov r0, #0xc2
+ add r5, #0xf6
+ strh r0, [r5]
+_022355E6:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022355EC: .word 0x0000216C
+_022355F0: .word 0x00003044
+
+ thumb_func_start MOD11_022355F4
+MOD11_022355F4: ; 0x022355F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r5, #0x6f
+ add r2, r0, #0
+ lsl r5, r5, #2
+ add r1, r4, r5
+ lsl r0, r2, #2
+ ldr r6, [r1, r0]
+ mov r3, #0x40
+ tst r3, r6
+ beq _02235638
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ ldr r1, _02235668 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r4, r1]
+ orr r0, r2
+ str r0, [r4, r1]
+ b _02235662
+_02235638:
+ mov r3, #0x40
+ orr r3, r6
+ str r3, [r1, r0]
+ add r5, #8
+ lsl r0, r2, #3
+ add r1, r4, r5
+ ldr r3, [r1, r0]
+ ldr r2, _0223566C ; =0xFFFF8FFF
+ and r3, r2
+ mov r2, #5
+ lsl r2, r2, #0xc
+ orr r2, r3
+ str r2, [r1, r0]
+ ldr r3, [r1, r0]
+ ldr r2, _02235670 ; =0xFFFFF3FF
+ and r3, r2
+ ldr r2, [r4, #0x64]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x14
+ orr r2, r3
+ str r2, [r1, r0]
+_02235662:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235668: .word 0x0000216C
+_0223566C: .word 0xFFFF8FFF
+_02235670: .word 0xFFFFF3FF
+
+ thumb_func_start MOD11_02235674
+MOD11_02235674: ; 0x02235674
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, _02235844 ; =0x0000213C
+ mov r0, #1
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0xa
+ orr r0, r2
+ str r0, [r4, r1]
+ ldr r1, [r4, #0x64]
+ ldr r2, [r4, #0x6c]
+ add r0, r4, #0
+ mov r3, #5
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022356AA
+ ldr r1, _02235848 ; =0x0000216C
+ mov r0, #2
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0x12
+ orr r0, r2
+ str r0, [r4, r1]
+ b _0223583E
+_022356AA:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r1, r0]
+ mov r0, #0x18
+ tst r0, r1
+ bne _02235730
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ beq _02235730
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ beq _02235730
+ ldr r0, _0223584C ; =0x00003044
+ mov r2, #0xc0
+ ldr r0, [r4, r0]
+ ldr r5, [r4, #0x6c]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _02235850 ; =0x000003E3
+ ldrb r1, [r1, r0]
+ ldr r0, [r4, #0x64]
+ add r3, r0, #0
+ mul r3, r2
+ add r0, r4, r3
+ ldr r3, _02235854 ; =0x00002D74
+ mul r2, r5
+ add r2, r4, r2
+ ldrb r0, [r0, r3]
+ ldrb r2, [r2, r3]
+ sub r0, r0, r2
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ blx _s32_div_f
+ cmp r1, r5
+ bge _0223572C
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _02235854 ; =0x00002D74
+ add r2, r4, r2
+ ldrb r3, [r2, r1]
+ ldr r2, [r4, #0x6c]
+ mul r0, r2
+ add r0, r4, r0
+ ldrb r0, [r0, r1]
+ cmp r3, r0
+ blo _0223572C
+ mov r3, #1
+ b _022357E8
+_0223572C:
+ mov r3, #0
+ b _022357E8
+_02235730:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r3, r4, r0
+ ldr r0, _02235858 ; =0x00002DCC
+ ldr r1, [r4, #0x64]
+ ldr r2, [r3, r0]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x1e
+ cmp r1, r2
+ bne _02235750
+ sub r0, #0xc
+ ldr r2, [r3, r0]
+ mov r0, #0x18
+ tst r0, r2
+ bne _02235766
+_02235750:
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ beq _02235766
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ bne _02235784
+_02235766:
+ ldr r0, [r4, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r3, [r4, #0x6c]
+ add r0, r4, r2
+ ldr r2, _02235854 ; =0x00002D74
+ mul r1, r3
+ add r1, r4, r1
+ ldrb r0, [r0, r2]
+ ldrb r1, [r1, r2]
+ cmp r0, r1
+ blo _02235784
+ mov r3, #1
+ b _022357DC
+_02235784:
+ ldr r0, _0223584C ; =0x00003044
+ mov r2, #0xc0
+ ldr r0, [r4, r0]
+ ldr r5, [r4, #0x6c]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _02235850 ; =0x000003E3
+ ldrb r1, [r1, r0]
+ ldr r0, [r4, #0x64]
+ add r3, r0, #0
+ mul r3, r2
+ add r0, r4, r3
+ ldr r3, _02235854 ; =0x00002D74
+ mul r2, r5
+ add r2, r4, r2
+ ldrb r0, [r0, r3]
+ ldrb r2, [r2, r3]
+ sub r0, r0, r2
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ blx _s32_div_f
+ cmp r1, r5
+ bge _022357DA
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _02235854 ; =0x00002D74
+ add r2, r4, r2
+ ldrb r3, [r2, r1]
+ ldr r2, [r4, #0x6c]
+ mul r0, r2
+ add r0, r4, r0
+ ldrb r0, [r0, r1]
+ cmp r3, r0
+ blo _022357DA
+ mov r3, #1
+ b _022357DC
+_022357DA:
+ mov r3, #0
+_022357DC:
+ ldr r1, _02235848 ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0xa
+ orr r0, r2
+ str r0, [r4, r1]
+_022357E8:
+ cmp r3, #0
+ beq _0223580E
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0223585C ; =0x00002D8C
+ ldr r0, [r1, r0]
+ ldr r1, _02235860 ; =0x00002144
+ neg r0, r0
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #0x28
+ ldr r2, [r4, r0]
+ mov r0, #0x20
+ orr r0, r2
+ add r1, #0x28
+ str r0, [r4, r1]
+ b _0223583E
+_0223580E:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _02235854 ; =0x00002D74
+ add r2, r4, r2
+ ldrb r3, [r2, r1]
+ ldr r2, [r4, #0x6c]
+ mul r0, r2
+ add r0, r4, r0
+ ldrb r0, [r0, r1]
+ cmp r3, r0
+ ldr r1, _02235848 ; =0x0000216C
+ blo _02235834
+ ldr r2, [r4, r1]
+ mov r0, #1
+ orr r0, r2
+ str r0, [r4, r1]
+ b _0223583E
+_02235834:
+ mov r0, #1
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0xc
+ orr r0, r2
+ str r0, [r4, r1]
+_0223583E:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02235844: .word 0x0000213C
+_02235848: .word 0x0000216C
+_0223584C: .word 0x00003044
+_02235850: .word 0x000003E3
+_02235854: .word 0x00002D74
+_02235858: .word 0x00002DCC
+_0223585C: .word 0x00002D8C
+_02235860: .word 0x00002144
+
+ thumb_func_start MOD11_02235864
+MOD11_02235864: ; 0x02235864
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_022476C0
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223589C
+MOD11_0223589C: ; 0x0223589C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223A444
+ add r1, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ bge _022358DE
+ mov r5, #0
+ mvn r5, r5
+ b _022358E0
+_022358DE:
+ mov r5, #1
+_022358E0:
+ ldr r0, [r4]
+ ldr r1, [r1]
+ blx _s32_div_f
+ str r0, [r4]
+ cmp r0, #0
+ bne _022358F0
+ str r5, [r4]
+_022358F0:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022358F4
+MOD11_022358F4: ; 0x022358F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r0, [r6, #0x6c]
+ lsl r0, r0, #1
+ add r1, r6, r0
+ ldr r0, _02235A18 ; =0x0000307C
+ ldrh r0, [r1, r0]
+ bl MOD11_0224C044
+ cmp r0, #0
+ beq _0223594E
+ ldr r0, [r6, #0x64]
+ mov r2, #2
+ mov r3, #0xc0
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r6, r1
+ ldr r1, _02235A1C ; =0x00002DB0
+ mov ip, r0
+ ldr r0, [r0, r1]
+ lsl r2, r2, #0x14
+ tst r0, r2
+ bne _0223594E
+ ldr r0, [r6, #0x6c]
+ add r4, r0, #0
+ mul r4, r3
+ add r4, r6, r4
+ ldr r4, [r4, r1]
+ lsl r1, r2, #3
+ tst r1, r4
+ bne _0223594E
+ lsl r0, r0, #1
+ add r1, r6, r0
+ ldr r0, _02235A18 ; =0x0000307C
+ ldrh r7, [r1, r0]
+ cmp r7, #0
+ bne _02235958
+_0223594E:
+ ldr r1, [sp]
+ add r0, r6, #0
+ bl MOD11_0223A424
+ b _02235A14
+_02235958:
+ mov r2, #0
+ sub r3, #0xc1
+ mov r4, ip
+ add r5, r2, #0
+_02235960:
+ ldr r0, _02235A20 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r7, r0
+ beq _02235988
+ mov r0, ip
+ add r1, r0, r5
+ ldr r0, _02235A20 ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ cmp r0, #0x66
+ bne _0223597E
+ mov r0, #0
+ mvn r0, r0
+ cmp r3, r0
+ bne _0223597E
+ add r3, r2, #0
+_0223597E:
+ add r2, r2, #1
+ add r4, r4, #2
+ add r5, r5, #2
+ cmp r2, #4
+ blt _02235960
+_02235988:
+ cmp r2, #4
+ bne _02235A0C
+ mov r4, #0x49
+ lsl r4, r4, #2
+ str r7, [r6, r4]
+ ldr r2, [r6, #0x64]
+ mov r1, #0xc0
+ add r5, r2, #0
+ mul r5, r1
+ add r5, r6, r5
+ lsl r2, r3, #1
+ add r5, r5, r2
+ ldr r0, [r6, r4]
+ ldr r2, _02235A20 ; =0x00002D4C
+ strh r0, [r5, r2]
+ ldr r0, [r6, r4]
+ lsl r0, r0, #4
+ add r4, r6, r0
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ cmp r0, #5
+ bhs _022359B8
+ b _022359BA
+_022359B8:
+ mov r0, #5
+_022359BA:
+ ldr r4, [r6, #0x64]
+ add r2, #0x20
+ mul r1, r4
+ add r1, r6, r1
+ add r1, r1, r3
+ strb r0, [r1, r2]
+ add r0, r3, #0
+ bl FUN_0206A92C
+ ldr r1, _02235A24 ; =0x00002DCC
+ mov r4, #0xc0
+ add r3, r6, r1
+ ldr r1, [r6, #0x64]
+ mov r5, #0x3c
+ add r2, r1, #0
+ mul r2, r4
+ ldr r7, [r3, r2]
+ add r1, r7, #0
+ bic r1, r5
+ lsl r5, r7, #0x1a
+ lsr r5, r5, #0x1c
+ orr r0, r5
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ str r0, [r3, r2]
+ add r0, r4, #0
+ add r0, #0x64
+ ldr r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0xc3
+ cmp r1, r0
+ bne _02235A14
+ ldr r0, [r6, #0x64]
+ add r2, r0, #0
+ mul r2, r4
+ ldr r1, [r3, r2]
+ ldr r0, _02235A28 ; =0xFFFFE3FF
+ and r0, r1
+ str r0, [r3, r2]
+ b _02235A14
+_02235A0C:
+ ldr r1, [sp]
+ add r0, r6, #0
+ bl MOD11_0223A424
+_02235A14:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235A18: .word 0x0000307C
+_02235A1C: .word 0x00002DB0
+_02235A20: .word 0x00002D4C
+_02235A24: .word 0x00002DCC
+_02235A28: .word 0xFFFFE3FF
+
+ thumb_func_start MOD11_02235A2C
+MOD11_02235A2C: ; 0x02235A2C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r4, _02235A7C ; =0x00002D4C
+ mov r7, #0xc0
+_02235A3C:
+ bl FUN_0201B9EC
+ ldr r1, _02235A80 ; =0x000001D3
+ blx _s32_div_f
+ add r0, r1, #1
+ ldr r1, [r6, #0x64]
+ lsl r0, r0, #0x10
+ add r2, r1, #0
+ mul r2, r7
+ lsr r5, r0, #0x10
+ mov r0, #0
+ add r2, r6, r2
+_02235A56:
+ ldrh r1, [r2, r4]
+ cmp r5, r1
+ beq _02235A64
+ add r0, r0, #1
+ add r2, r2, #2
+ cmp r0, #4
+ blt _02235A56
+_02235A64:
+ cmp r0, #4
+ bne _02235A3C
+ add r0, r5, #0
+ bl MOD11_0224C07C
+ cmp r0, #0
+ beq _02235A3C
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r5, [r6, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235A7C: .word 0x00002D4C
+_02235A80: .word 0x000001D3
+
+ thumb_func_start MOD11_02235A84
+MOD11_02235A84: ; 0x02235A84
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r2, r5, r0
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ lsl r1, r1, #1
+ add r0, r2, r0
+ add r2, r5, r1
+ ldr r1, _02235B34 ; =0x0000307C
+ ldrh r1, [r2, r1]
+ bl MOD11_022461AC
+ ldr r3, [r5, #0x6c]
+ add r6, r0, #0
+ mov r7, #0xc0
+ add r0, r3, #0
+ mul r0, r7
+ add r2, r5, r0
+ ldr r0, _02235B38 ; =0x00002DE8
+ ldrh r1, [r2, r0]
+ cmp r1, #0
+ bne _02235B26
+ cmp r6, #4
+ beq _02235B26
+ add r1, r0, #0
+ add r2, r2, r6
+ sub r1, #0x7c
+ ldrb r1, [r2, r1]
+ cmp r1, #0
+ beq _02235B26
+ lsl r1, r3, #1
+ add r2, r5, r1
+ ldr r1, _02235B34 ; =0x0000307C
+ ldrh r2, [r2, r1]
+ cmp r2, #0
+ beq _02235B26
+ add r1, r7, #0
+ add r1, #0x64
+ str r2, [r5, r1]
+ add r1, r7, #0
+ add r1, #0x64
+ ldr r3, [r5, r1]
+ ldr r1, [r5, #0x6c]
+ add r2, r1, #0
+ mul r2, r7
+ add r1, r5, r2
+ strh r3, [r1, r0]
+ bl FUN_0201B9EC
+ ldr r1, _02235B3C ; =0x00002DC8
+ ldr r4, [r5, #0x6c]
+ add r3, r5, r1
+ add r2, r4, #0
+ add r1, r7, #0
+ mul r2, r1
+ ldr r1, [r3, r2]
+ mov r4, #7
+ bic r1, r4
+ lsr r5, r0, #0x1f
+ lsl r4, r0, #0x1e
+ sub r4, r4, r5
+ mov r0, #0x1e
+ ror r4, r0
+ add r0, r5, r4
+ add r4, r0, #3
+ mov r0, #7
+ and r0, r4
+ orr r0, r1
+ str r0, [r3, r2]
+ b _02235B2E
+_02235B26:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+_02235B2E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235B34: .word 0x0000307C
+_02235B38: .word 0x00002DE8
+_02235B3C: .word 0x00002DC8
+
+ thumb_func_start MOD11_02235B40
+MOD11_02235B40: ; 0x02235B40
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ lsl r0, r1, #6
+ add r2, r5, r0
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r4, [r2, r0]
+ ldr r0, [sp]
+ bl MOD11_02230270
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230270
+ ldr r6, [r5, #0x64]
+ add r3, r0, #0
+ lsl r0, r6, #6
+ add r1, r5, r0
+ lsl r0, r4, #2
+ add r0, r1, r0
+ mov r1, #0x76
+ lsl r1, r1, #2
+ ldr r7, [r0, r1]
+ cmp r7, #0
+ beq _02235C06
+ ldr r0, [sp, #4]
+ cmp r0, r3
+ beq _02235C06
+ mov r0, #0xc0
+ mul r0, r4
+ add r2, r5, r0
+ ldr r0, _02235C30 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02235C06
+ ldr r0, _02235C34 ; =0x00002144
+ lsl r2, r7, #1
+ sub r1, #0x14
+ str r2, [r5, r0]
+ add r1, r5, r1
+ lsl r0, r3, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02235BC0
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1e
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ ldr r1, _02235C30 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02235BC0
+ str r0, [r5, #0x6c]
+ b _02235BC2
+_02235BC0:
+ str r4, [r5, #0x6c]
+_02235BC2:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02235C30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02235BFA
+ ldr r0, [sp]
+ ldr r2, [r5, #0x64]
+ add r1, r5, #0
+ bl MOD11_022482A4
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [r5, #0x6c]
+ ldr r0, _02235C30 ; =0x00002D8C
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02235BFA
+ mov r2, #0x26
+ str r2, [r5, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, #0xf3
+ bl MOD11_0223A434
+_02235BFA:
+ ldr r1, [r5, #0x64]
+ ldr r2, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0224C438
+ b _02235C28
+_02235C06:
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ mov r1, #0x1c
+ add r3, r6, #0
+ mul r3, r1
+ add r0, r5, r0
+ ldr r2, [r0, r3]
+ mov r1, #1
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ str r1, [r0, r3]
+ ldr r1, _02235C38 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+_02235C28:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235C30: .word 0x00002D8C
+_02235C34: .word 0x00002144
+_02235C38: .word 0x0000216C
+
+ thumb_func_start MOD11_02235C3C
+MOD11_02235C3C: ; 0x02235C3C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ lsl r0, r1, #6
+ add r2, r5, r0
+ mov r0, #2
+ lsl r0, r0, #8
+ ldr r4, [r2, r0]
+ ldr r0, [sp]
+ bl MOD11_02230270
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230270
+ ldr r6, [r5, #0x64]
+ add r3, r0, #0
+ lsl r0, r6, #6
+ add r1, r5, r0
+ lsl r0, r4, #2
+ add r0, r1, r0
+ mov r1, #0x1f
+ lsl r1, r1, #4
+ ldr r7, [r0, r1]
+ cmp r7, #0
+ beq _02235D02
+ ldr r0, [sp, #4]
+ cmp r0, r3
+ beq _02235D02
+ mov r0, #0xc0
+ mul r0, r4
+ add r2, r5, r0
+ ldr r0, _02235D2C ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02235D02
+ ldr r0, _02235D30 ; =0x00002144
+ lsl r2, r7, #1
+ sub r1, #0x2c
+ str r2, [r5, r0]
+ add r1, r5, r1
+ lsl r0, r3, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02235CBC
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1e
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ ldr r1, _02235D2C ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02235CBC
+ str r0, [r5, #0x6c]
+ b _02235CBE
+_02235CBC:
+ str r4, [r5, #0x6c]
+_02235CBE:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02235D2C ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02235CF6
+ ldr r0, [sp]
+ ldr r2, [r5, #0x64]
+ add r1, r5, #0
+ bl MOD11_022482A4
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [r5, #0x6c]
+ ldr r0, _02235D2C ; =0x00002D8C
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02235CF6
+ mov r2, #0x26
+ str r2, [r5, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, #0xf3
+ bl MOD11_0223A434
+_02235CF6:
+ ldr r1, [r5, #0x64]
+ ldr r2, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0224C438
+ b _02235D24
+_02235D02:
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ mov r1, #0x1c
+ add r3, r6, #0
+ mul r3, r1
+ add r0, r5, r0
+ ldr r2, [r0, r3]
+ mov r1, #1
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ str r1, [r0, r3]
+ ldr r1, _02235D34 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+_02235D24:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235D2C: .word 0x00002D8C
+_02235D30: .word 0x00002144
+_02235D34: .word 0x0000216C
+
+ thumb_func_start MOD11_02235D38
+MOD11_02235D38: ; 0x02235D38
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r2, r5, r0
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ lsl r1, r1, #1
+ add r0, r2, r0
+ add r2, r5, r1
+ ldr r1, _02235E0C ; =0x0000307C
+ ldrh r1, [r2, r1]
+ bl MOD11_022461AC
+ ldr r1, [r5, #0x6c]
+ add r4, r0, #0
+ lsl r1, r1, #1
+ add r2, r5, r1
+ ldr r1, _02235E0C ; =0x0000307C
+ add r0, r5, #0
+ ldrh r1, [r2, r1]
+ bl MOD11_0224C0B4
+ cmp r0, #0
+ bne _02235D7E
+ mov r4, #4
+_02235D7E:
+ ldr r0, [r5, #0x6c]
+ mov r2, #0xc0
+ add r1, r0, #0
+ mul r1, r2
+ ldr r3, _02235E10 ; =0x00002DEC
+ add r6, r5, r1
+ ldrh r1, [r6, r3]
+ cmp r1, #0
+ bne _02235DF6
+ cmp r4, #4
+ beq _02235DF6
+ add r1, r3, #0
+ add r6, r6, r4
+ sub r1, #0x80
+ ldrb r1, [r6, r1]
+ cmp r1, #0
+ beq _02235DF6
+ lsl r0, r0, #1
+ add r1, r5, r0
+ ldr r0, _02235E0C ; =0x0000307C
+ ldrh r1, [r1, r0]
+ cmp r1, #0
+ beq _02235DF6
+ add r0, r2, #0
+ add r0, #0x64
+ str r1, [r5, r0]
+ ldr r1, [r5, #0x6c]
+ add r0, r2, #0
+ add r0, #0x64
+ add r6, r1, #0
+ mul r6, r2
+ ldr r0, [r5, r0]
+ add r1, r5, r6
+ strh r0, [r1, r3]
+ ldr r0, [r5, #0x6c]
+ add r1, r0, #0
+ mul r1, r2
+ add r1, r5, r1
+ add r0, r3, #2
+ strh r4, [r1, r0]
+ bl FUN_0201B9EC
+ ldr r1, _02235E14 ; =0x00002DC8
+ ldr r2, [r5, #0x6c]
+ add r4, r5, r1
+ mov r1, #0xc0
+ add r5, r2, #0
+ mul r5, r1
+ mov r1, #5
+ blx _s32_div_f
+ ldr r2, [r4, r5]
+ mov r0, #0x38
+ bic r2, r0
+ add r0, r1, #3
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1a
+ orr r0, r2
+ str r0, [r4, r5]
+ b _02235E08
+_02235DF6:
+ ldr r1, _02235E18 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_02235E08:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235E0C: .word 0x0000307C
+_02235E10: .word 0x00002DEC
+_02235E14: .word 0x00002DC8
+_02235E18: .word 0x0000216C
+
+ thumb_func_start MOD11_02235E1C
+MOD11_02235E1C: ; 0x02235E1C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x79
+ bne _02235E4C
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02235E4C:
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #1
+ add r2, r4, r0
+ ldr r0, _02235FB4 ; =0x000030C4
+ ldrh r1, [r2, r0]
+ cmp r1, #0
+ beq _02235E62
+ add r0, #8
+ ldrh r0, [r2, r0]
+ cmp r0, #0xff
+ bne _02235E64
+_02235E62:
+ b _02235FA6
+_02235E64:
+ add r0, r4, #0
+ bl MOD11_02246AF8
+ cmp r0, #0
+ beq _02235E98
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #1
+ add r1, r4, r0
+ ldr r0, _02235FB8 ; =0x000030CC
+ ldrh r1, [r1, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02235FBC ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02235E98
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02235E98:
+ ldr r0, [r4, #0x64]
+ mov r7, #0
+ lsl r0, r0, #1
+ add r1, r4, r0
+ ldr r0, _02235FC0 ; =0x000030D4
+ ldrh r6, [r1, r0]
+_02235EA4:
+ add r1, sp, #4
+ add r2, sp, #4
+ ldr r0, _02235FC4 ; =0x0000FFFF
+ add r1, #2
+ add r2, #1
+ add r3, sp, #4
+ bl MOD11_02246B58
+ add r0, sp, #4
+ ldrb r0, [r0, #2]
+ cmp r0, r6
+ bne _02235F12
+ add r0, sp, #4
+ ldrb r0, [r0]
+ cmp r0, #5
+ bhi _02235F12
+ add r0, sp, #4
+ ldrb r5, [r0, #1]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _02235F12
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _02235F12
+ ldr r0, [r4, #0x64]
+ add r3, sp, #4
+ mov r2, #0xc0
+ add r1, r0, #0
+ mul r1, r2
+ add r0, r4, r1
+ ldr r1, _02235FC8 ; =0x00002D64
+ add sp, #8
+ strb r5, [r0, r1]
+ ldr r5, [r4, #0x64]
+ ldrb r0, [r3, #1]
+ add r6, r5, #0
+ mul r6, r2
+ add r5, r4, r6
+ add r1, r1, #1
+ strb r0, [r5, r1]
+ ldrb r0, [r3, #1]
+ add r2, #0x70
+ str r0, [r4, r2]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02235F12:
+ mov r0, #0xfa
+ add r7, r7, #1
+ lsl r0, r0, #2
+ cmp r7, r0
+ blt _02235EA4
+ mov r7, #0
+ add r1, sp, #4
+ add r2, sp, #4
+ add r0, r7, #0
+ add r1, #2
+ add r2, #1
+ add r3, sp, #4
+ bl MOD11_02246B58
+ cmp r0, #1
+ bne _02235FA6
+_02235F32:
+ add r0, sp, #4
+ ldrb r0, [r0, #2]
+ cmp r0, r6
+ bne _02235F90
+ add r0, sp, #4
+ ldrb r0, [r0]
+ cmp r0, #5
+ bhi _02235F90
+ add r0, sp, #4
+ ldrb r5, [r0, #1]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _02235F90
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _02235F90
+ ldr r0, [r4, #0x64]
+ add r3, sp, #4
+ mov r2, #0xc0
+ add r1, r0, #0
+ mul r1, r2
+ add r0, r4, r1
+ ldr r1, _02235FC8 ; =0x00002D64
+ add sp, #8
+ strb r5, [r0, r1]
+ ldr r5, [r4, #0x64]
+ ldrb r0, [r3, #1]
+ add r6, r5, #0
+ mul r6, r2
+ add r5, r4, r6
+ add r1, r1, #1
+ strb r0, [r5, r1]
+ ldrb r0, [r3, #1]
+ add r2, #0x70
+ str r0, [r4, r2]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02235F90:
+ add r7, r7, #1
+ add r1, sp, #4
+ add r2, sp, #4
+ add r0, r7, #0
+ add r1, #2
+ add r2, #1
+ add r3, sp, #4
+ bl MOD11_02246B58
+ cmp r0, #1
+ beq _02235F32
+_02235FA6:
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235FB4: .word 0x000030C4
+_02235FB8: .word 0x000030CC
+_02235FBC: .word 0x00002DB0
+_02235FC0: .word 0x000030D4
+_02235FC4: .word 0x0000FFFF
+_02235FC8: .word 0x00002D64
+
+ thumb_func_start MOD11_02235FCC
+MOD11_02235FCC: ; 0x02235FCC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ mov r0, #0
+ add r6, r1, #0
+ mvn r0, r0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ mov ip, r0
+ ldr r1, [r6, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ str r0, [sp, #4]
+ add r3, r6, r0
+ ldr r0, _022360DC ; =0x00002DB0
+ ldr r1, [r3, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r1
+ bne _0223601E
+ ldr r0, [r6, #0x6c]
+ lsl r0, r0, #1
+ add r1, r6, r0
+ ldr r0, _022360E0 ; =0x000030AC
+ ldrh r7, [r1, r0]
+ cmp r7, #0xa5
+ beq _0223601E
+ cmp r7, #0xa6
+ beq _0223601E
+ mov r0, #7
+ lsl r0, r0, #6
+ cmp r7, r0
+ beq _0223601E
+ cmp r7, #0
+ bne _02236028
+_0223601E:
+ add r0, r6, #0
+ mov r1, ip
+ bl MOD11_0223A424
+ b _022360D6
+_02236028:
+ mov r0, #0
+ add r1, r3, #0
+ add r2, r0, #0
+_0223602E:
+ ldr r4, _022360E4 ; =0x00002D4C
+ ldrh r4, [r1, r4]
+ cmp r4, #0xa6
+ beq _02236040
+ ldr r4, _022360E4 ; =0x00002D4C
+ add r5, r3, r2
+ ldrh r4, [r5, r4]
+ cmp r7, r4
+ beq _02236060
+_02236040:
+ ldr r4, _022360E4 ; =0x00002D4C
+ add r5, r3, r2
+ ldrh r4, [r5, r4]
+ cmp r4, #0xa6
+ bne _02236056
+ mov r5, #0
+ ldr r4, [sp, #8]
+ mvn r5, r5
+ cmp r4, r5
+ bne _02236056
+ str r0, [sp, #8]
+_02236056:
+ add r0, r0, #1
+ add r1, r1, #2
+ add r2, r2, #2
+ cmp r0, #4
+ blt _0223602E
+_02236060:
+ cmp r0, #4
+ bne _022360CE
+ ldr r0, [sp, #4]
+ add r1, r6, r0
+ ldr r0, [sp, #8]
+ lsl r0, r0, #1
+ add r1, r1, r0
+ ldr r0, _022360E4 ; =0x00002D4C
+ strh r7, [r1, r0]
+ ldr r1, [r6, #0x6c]
+ ldr r3, [r6, #0x64]
+ lsl r1, r1, #1
+ add r2, r6, r1
+ ldr r1, _022360E0 ; =0x000030AC
+ add r0, #0x20
+ ldrh r1, [r2, r1]
+ lsl r1, r1, #4
+ add r2, r6, r1
+ mov r1, #0xf9
+ lsl r1, r1, #2
+ ldrb r1, [r2, r1]
+ mov r2, #0xc0
+ mul r2, r3
+ add r3, r6, r2
+ ldr r2, [sp, #8]
+ add r2, r3, r2
+ strb r1, [r2, r0]
+ ldr r0, [sp]
+ ldr r2, [r6, #0x64]
+ add r1, r6, #0
+ bl MOD11_02256150
+ ldr r0, [r6, #0x6c]
+ lsl r0, r0, #1
+ add r1, r6, r0
+ ldr r0, _022360E0 ; =0x000030AC
+ ldrh r1, [r1, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r6, r0]
+ ldr r1, [r6, r0]
+ add r0, #0x5f
+ cmp r1, r0
+ bne _022360D6
+ ldr r0, _022360E8 ; =0x00002DCC
+ ldr r1, [r6, #0x64]
+ add r3, r6, r0
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ ldr r0, _022360EC ; =0xFFFFE3FF
+ and r0, r1
+ str r0, [r3, r2]
+ b _022360D6
+_022360CE:
+ add r0, r6, #0
+ mov r1, ip
+ bl MOD11_0223A424
+_022360D6:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022360DC: .word 0x00002DB0
+_022360E0: .word 0x000030AC
+_022360E4: .word 0x00002D4C
+_022360E8: .word 0x00002DCC
+_022360EC: .word 0xFFFFE3FF
+
+ thumb_func_start MOD11_022360F0
+MOD11_022360F0: ; 0x022360F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ mov r7, #0
+ str r0, [sp, #8]
+ add r6, r7, #0
+ add r4, r7, #0
+_0223610E:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r5, r0
+ add r1, r4, r0
+ ldr r0, _022361B8 ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ bl MOD11_02246BE8
+ cmp r0, #0
+ bne _0223614E
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r5, r0
+ add r1, r4, r0
+ ldr r0, _022361B8 ; =0x00002D4C
+ ldrh r1, [r1, r0]
+ mov r0, #0x42
+ lsl r0, r0, #2
+ cmp r1, r0
+ beq _0223614E
+ cmp r1, #0xfd
+ beq _0223614E
+ add r0, #0xb8
+ cmp r1, r0
+ beq _0223614E
+ add r0, r5, #0
+ bl MOD11_02246AF8
+ cmp r0, #0
+ beq _02236156
+_0223614E:
+ add r0, r6, #0
+ bl FUN_0206A92C
+ orr r7, r0
+_02236156:
+ add r6, r6, #1
+ add r4, r4, #2
+ cmp r6, #4
+ blt _0223610E
+ mov r0, #2
+ mvn r0, r0
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [r5, #0x64]
+ add r1, r5, #0
+ add r3, r7, #0
+ bl MOD11_02245D38
+ add r4, r0, #0
+ cmp r4, #0xf
+ bne _02236180
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ b _022361B0
+_02236180:
+ mov r7, #0x1e
+_02236182:
+ bl FUN_0201B9EC
+ lsr r1, r0, #0x1f
+ lsl r0, r0, #0x1e
+ sub r0, r0, r1
+ ror r0, r7
+ add r6, r1, r0
+ add r0, r6, #0
+ bl FUN_0206A92C
+ tst r0, r4
+ bne _02236182
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ add r2, r5, r2
+ lsl r0, r6, #1
+ add r2, r2, r0
+ ldr r0, _022361B8 ; =0x00002D4C
+ add r1, #0x64
+ ldrh r0, [r2, r0]
+ str r0, [r5, r1]
+_022361B0:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022361B8: .word 0x00002D4C
+
+ thumb_func_start MOD11_022361BC
+MOD11_022361BC: ; 0x022361BC
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _02236200 ; =0x00002D8C
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ add r1, r1, #4
+ ldr r1, [r2, r1]
+ mov r2, #0x40
+ bl FUN_02079A0C
+ ldr r3, _02236204 ; =0x0225DC3C
+ mov r2, #0
+_022361E2:
+ ldrb r1, [r3]
+ cmp r0, r1
+ ble _022361F0
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #6
+ blo _022361E2
+_022361F0:
+ ldr r0, _02236208 ; =0x0225DC3D
+ lsl r1, r2, #1
+ ldrb r1, [r0, r1]
+ ldr r0, _0223620C ; =0x00002154
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02236200: .word 0x00002D8C
+_02236204: .word 0x0225DC3C
+_02236208: .word 0x0225DC3D
+_0223620C: .word 0x00002154
+
+ thumb_func_start MOD11_02236210
+MOD11_02236210: ; 0x02236210
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ ldr r2, [r5, #0x6c]
+ add r4, r0, #0
+ lsl r0, r2, #1
+ add r1, r5, r0
+ ldr r0, _022362AC ; =0x0000307C
+ ldrh r1, [r1, r0]
+ cmp r1, #0
+ beq _0223629E
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ mov r3, #0xc0
+ add r0, r5, r0
+ mul r3, r2
+ add r0, r0, r3
+ bl MOD11_022461AC
+ add r2, r0, #0
+ cmp r2, #4
+ beq _0223625C
+ ldr r0, [r5, #0x6c]
+ mov r1, #0xc0
+ mul r1, r0
+ add r1, r5, r1
+ add r3, r1, r2
+ ldr r1, _022362B0 ; =0x00002D6C
+ ldrb r3, [r3, r1]
+ cmp r3, #0
+ bne _02236266
+_0223625C:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+ b _022362A6
+_02236266:
+ mov r1, #4
+ cmp r3, #4
+ bge _0223626E
+ add r1, r3, #0
+_0223626E:
+ lsl r0, r0, #1
+ add r3, r5, r0
+ ldr r0, _022362AC ; =0x0000307C
+ ldrh r3, [r3, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r3, [r5, r0]
+ add r0, #0xc
+ str r1, [r5, r0]
+ ldr r0, _022362B0 ; =0x00002D6C
+ ldr r4, [r5, #0x6c]
+ mov r3, #0xc0
+ add r0, r5, r0
+ mul r3, r4
+ add r3, r0, r3
+ ldrb r0, [r3, r2]
+ sub r0, r0, r1
+ strb r0, [r3, r2]
+ ldr r2, [r5, #0x6c]
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_02245190
+ b _022362A6
+_0223629E:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+_022362A6:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022362AC: .word 0x0000307C
+_022362B0: .word 0x00002D6C
+
+ thumb_func_start MOD11_022362B4
+MOD11_022362B4: ; 0x022362B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r1, #0x4d
+ mov r0, #0
+ lsl r1, r1, #2
+ ldr r2, _022363F4 ; =0x00003044
+ str r0, [r5, r1]
+ ldr r2, [r5, r2]
+ cmp r2, #0xd7
+ bne _02236382
+ sub r1, #0x10
+ str r2, [r5, r1]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2b
+ beq _0223630A
+ ldr r2, [r5, #0x64]
+ mov r0, #0xc0
+ add r3, r2, #0
+ mul r3, r0
+ ldr r2, _022363F8 ; =0x00002DAC
+ mov r1, #0
+ add r3, r5, r3
+ str r1, [r3, r2]
+ add r1, r2, #4
+ ldr r2, [r5, #0x64]
+ add r1, r5, r1
+ mul r0, r2
+ ldr r3, [r1, r0]
+ ldr r2, _022363FC ; =0xF7FFFFFF
+ and r2, r3
+ str r2, [r1, r0]
+ b _02236316
+_0223630A:
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r0, #5
+ orr r0, r2
+ str r0, [r5, r1]
+_02236316:
+ mov r0, #2
+ tst r0, r4
+ beq _02236374
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #0x10
+ bl MOD11_0223C230
+ add r4, r0, #0
+ bl FUN_0206A92C
+ ldr r1, _02236400 ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _022363E2
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ mov r3, #0x2b
+ bl MOD11_02246D84
+ cmp r0, #0
+ bne _0223635E
+ mov r0, #0xc0
+ mul r0, r4
+ ldr r1, _022363F8 ; =0x00002DAC
+ mov r3, #0
+ add r2, r5, r0
+ str r3, [r2, r1]
+ add r1, r1, #4
+ add r3, r5, r1
+ ldr r2, [r3, r0]
+ ldr r1, _022363FC ; =0xF7FFFFFF
+ and r1, r2
+ str r1, [r3, r0]
+ b _022363E2
+_0223635E:
+ mov r1, #0x46
+ lsl r1, r1, #2
+ add r0, r1, #0
+ str r4, [r5, r1]
+ add r0, #0x1c
+ ldr r2, [r5, r0]
+ mov r0, #0xa
+ orr r0, r2
+ add r1, #0x1c
+ str r0, [r5, r1]
+ b _022363E2
+_02236374:
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r0, #8
+ orr r0, r2
+ str r0, [r5, r1]
+ b _022363E2
+_02236382:
+ ldr r3, [r5, #0x64]
+ mov r2, #0xc0
+ mul r2, r3
+ add r3, r5, r2
+ ldr r2, _022363F8 ; =0x00002DAC
+ str r0, [r3, r2]
+ add r0, r2, #4
+ add r6, r5, r0
+ ldr r0, [r5, #0x64]
+ mov r2, #0xc0
+ add r3, r0, #0
+ mul r3, r2
+ ldr r2, [r6, r3]
+ ldr r0, _022363FC ; =0xF7FFFFFF
+ and r0, r2
+ str r0, [r6, r3]
+ mov r0, #2
+ tst r0, r4
+ beq _022363DA
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #0x10
+ bl MOD11_0223C230
+ add r4, r0, #0
+ bl FUN_0206A92C
+ ldr r1, _02236400 ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _022363E2
+ mov r0, #0xc0
+ mul r0, r4
+ ldr r1, _022363F8 ; =0x00002DAC
+ mov r3, #0
+ add r2, r5, r0
+ str r3, [r2, r1]
+ add r1, r1, #4
+ add r3, r5, r1
+ ldr r2, [r3, r0]
+ ldr r1, _022363FC ; =0xF7FFFFFF
+ and r1, r2
+ str r1, [r3, r0]
+ b _022363E2
+_022363DA:
+ ldr r2, [r5, r1]
+ mov r0, #8
+ orr r0, r2
+ str r0, [r5, r1]
+_022363E2:
+ ldr r3, _022363F4 ; =0x00003044
+ ldr r2, [r5, #0x64]
+ ldr r3, [r5, r3]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02256284
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022363F4: .word 0x00003044
+_022363F8: .word 0x00002DAC
+_022363FC: .word 0xF7FFFFFF
+_02236400: .word 0x00003108
+
+ thumb_func_start MOD11_02236404
+MOD11_02236404: ; 0x02236404
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #4]
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02236454
+ ldr r0, [sp, #4]
+ mov r1, #0x84
+ tst r0, r1
+ bne _02236454
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _022364EC
+_02236454:
+ ldr r0, [r4, #0x64]
+ add r1, r4, r0
+ ldr r0, _022364F4 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl FUN_0206A92C
+ lsl r1, r7, #3
+ add r2, r4, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ beq _0223647C
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _022364EC
+_0223647C:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x79
+ beq _02236494
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x79
+ bne _0223649E
+_02236494:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _022364EC
+_0223649E:
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _022364F8 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _022364C6
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r3, #0x3c
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022364C6
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ b _022364EC
+_022364C6:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _022364F8 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ bne _022364E4
+ ldr r2, [r4, #0x6c]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246C50
+ cmp r0, #0
+ bne _022364EC
+_022364E4:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_022364EC:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022364F4: .word 0x0000219C
+_022364F8: .word 0x00002DB8
+
+ thumb_func_start MOD11_022364FC
+MOD11_022364FC: ; 0x022364FC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ ldr r1, [r6, #0x64]
+ str r0, [sp, #8]
+ lsl r0, r1, #1
+ add r2, r6, r0
+ ldr r0, _02236640 ; =0x0000305C
+ ldrh r0, [r2, r0]
+ cmp r0, #0xb6
+ beq _0223653C
+ cmp r0, #0xc5
+ beq _0223653C
+ cmp r0, #0xcb
+ beq _0223653C
+ ldr r0, _02236644 ; =0x00002DC8
+ add r3, r1, #0
+ mov r2, #0xc0
+ add r0, r6, r0
+ mul r3, r2
+ ldr r2, [r0, r3]
+ ldr r1, _02236648 ; =0xFFFFE7FF
+ and r1, r2
+ str r1, [r0, r3]
+_0223653C:
+ ldr r0, [sp]
+ mov r7, #0
+ add r4, r7, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02236564
+ add r5, r6, #0
+_0223654C:
+ ldr r0, _0223664C ; =0x000021A8
+ ldr r0, [r5, r0]
+ cmp r0, #0x27
+ beq _02236556
+ add r7, r7, #1
+_02236556:
+ ldr r0, [sp]
+ add r5, #0x10
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _0223654C
+_02236564:
+ cmp r7, #1
+ beq _0223656E
+ mov r0, #1
+ str r0, [sp, #4]
+ b _02236572
+_0223656E:
+ mov r0, #0
+ str r0, [sp, #4]
+_02236572:
+ ldr r7, [r6, #0x64]
+ ldr r0, _02236644 ; =0x00002DC8
+ add r5, r7, #0
+ add r4, r6, r0
+ mov r0, #0xc0
+ mul r5, r0
+ bl FUN_0201B9EC
+ ldr r1, [r4, r5]
+ lsl r1, r1, #0x13
+ lsr r1, r1, #0x1e
+ lsl r2, r1, #1
+ ldr r1, _02236650 ; =0x0225DC34
+ ldrh r1, [r1, r2]
+ cmp r1, r0
+ blo _02236628
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _02236628
+ ldr r0, _02236654 ; =0x00003044
+ ldr r0, [r6, r0]
+ lsl r0, r0, #4
+ add r1, r6, r0
+ ldr r0, _02236658 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x6f
+ bne _022365C0
+ mov r2, #0x75
+ lsl r2, r2, #2
+ add r0, r6, r2
+ lsl r4, r7, #6
+ ldr r3, [r0, r4]
+ mov r1, #4
+ orr r1, r3
+ str r1, [r0, r4]
+ add r0, r6, #0
+ sub r2, #0xba
+ add r0, #0xf6
+ strh r2, [r0]
+_022365C0:
+ ldr r0, _02236654 ; =0x00003044
+ ldr r0, [r6, r0]
+ lsl r0, r0, #4
+ add r1, r6, r0
+ ldr r0, _02236658 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x74
+ bne _022365EC
+ mov r2, #0x75
+ ldr r1, [r6, #0x64]
+ lsl r2, r2, #2
+ lsl r4, r1, #6
+ add r0, r6, r2
+ add r1, r2, #0
+ ldr r3, [r0, r4]
+ add r1, #0x2c
+ orr r1, r3
+ str r1, [r0, r4]
+ add r0, r6, #0
+ sub r2, #0x1a
+ add r0, #0xf6
+ strh r2, [r0]
+_022365EC:
+ add r0, r6, #0
+ mov r1, #2
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r1, [r6, #0x64]
+ add r0, r6, #0
+ bl MOD11_0224682C
+ add r1, r6, #0
+ add r1, #0xf8
+ str r0, [r1]
+ ldr r2, [r6, #0x64]
+ mov r0, #0xc0
+ add r1, r2, #0
+ mul r1, r0
+ ldr r0, _02236644 ; =0x00002DC8
+ add r0, r6, r0
+ ldr r3, [r0, r1]
+ lsl r2, r3, #0x13
+ lsr r4, r2, #0x1e
+ cmp r4, #3
+ bhs _02236638
+ ldr r2, _02236648 ; =0xFFFFE7FF
+ and r3, r2
+ add r2, r4, #1
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x13
+ orr r2, r3
+ str r2, [r0, r1]
+ b _02236638
+_02236628:
+ ldr r1, [r4, r5]
+ ldr r0, _02236648 ; =0xFFFFE7FF
+ and r0, r1
+ str r0, [r4, r5]
+ ldr r1, [sp, #8]
+ add r0, r6, #0
+ bl MOD11_0223A424
+_02236638:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02236640: .word 0x0000305C
+_02236644: .word 0x00002DC8
+_02236648: .word 0xFFFFE7FF
+_0223664C: .word 0x000021A8
+_02236650: .word 0x0225DC34
+_02236654: .word 0x00003044
+_02236658: .word 0x000003DE
+
+ thumb_func_start MOD11_0223665C
+MOD11_0223665C: ; 0x0223665C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022366C8 ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, [r5, #0x64]
+ mov r2, #0xc0
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r5, r3
+ ldr r3, _022366CC ; =0x00002D8C
+ ldr r1, [r1, r3]
+ cmp r1, r0
+ bgt _0223669E
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+ b _022366C2
+_0223669E:
+ ldr r1, _022366D0 ; =0x0000215C
+ neg r4, r0
+ str r4, [r5, r1]
+ ldr r1, [r5, #0x64]
+ add r4, r1, #0
+ add r1, r3, #0
+ mul r4, r2
+ add r3, #0x24
+ add r4, r5, r4
+ add r1, #0x54
+ str r0, [r4, r1]
+ ldr r0, [r5, #0x64]
+ add r3, r5, r3
+ mul r2, r0
+ ldr r1, [r3, r2]
+ ldr r0, _022366D4 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r3, r2]
+_022366C2:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022366C8: .word 0x00002D90
+_022366CC: .word 0x00002D8C
+_022366D0: .word 0x0000215C
+_022366D4: .word 0xFFFF1FFF
+
+ thumb_func_start MOD11_022366D8
+MOD11_022366D8: ; 0x022366D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ str r1, [sp]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp]
+ bl MOD11_0223A404
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ mov r0, #1
+ tst r0, r4
+ bne _02236700
+ b _0223684E
+_02236700:
+ ldr r1, [sp]
+ add r0, r5, #0
+ ldr r1, [r1, #0x6c]
+ mov r7, #0
+ bl MOD11_0222FF88
+ ldr r1, [sp]
+ str r0, [sp, #0x14]
+ ldr r1, [r1, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0222FFC8
+ add r6, r0, #0
+ mov r0, #8
+ tst r0, r4
+ bne _02236734
+ mov r0, #0x10
+ tst r0, r4
+ beq _0223674C
+ ldr r1, [sp]
+ add r0, r5, #0
+ ldr r1, [r1, #0x6c]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0223674C
+_02236734:
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ ldr r1, [r0, #0x6c]
+ add r1, r0, r1
+ ldr r0, _02236868 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #8]
+ str r0, [sp, #4]
+ b _0223678C
+_0223674C:
+ mov r0, #2
+ str r0, [sp, #0x10]
+ tst r0, r4
+ beq _02236776
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ ldr r1, [r0, #0x6c]
+ add r2, r0, r1
+ ldr r0, _02236868 ; =0x0000219C
+ ldrb r0, [r2, r0]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_022302BC
+ ldr r1, [sp]
+ add r1, r1, r0
+ ldr r0, _02236868 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #4]
+ b _0223678C
+_02236776:
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ ldr r1, [r0, #0x6c]
+ add r1, r0, r1
+ ldr r0, _02236868 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #8]
+ str r0, [sp, #4]
+_0223678C:
+ ldr r5, [sp, #0xc]
+ add r0, r5, #0
+ cmp r0, r6
+ bge _022367CE
+_02236794:
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ bl FUN_0206B9B0
+ mov r1, #5
+ mov r2, #0
+ add r4, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022367C8
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _022367C8
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022367C8
+ add r7, r7, #1
+_022367C8:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02236794
+_022367CE:
+ ldr r0, [sp, #0x10]
+ cmp r7, r0
+ bgt _022367DE
+ ldr r0, [sp]
+ ldr r1, [sp, #0x18]
+ bl MOD11_0223A424
+ b _02236860
+_022367DE:
+ ldr r0, [sp]
+ bl MOD11_02246CCC
+ cmp r0, #0
+ beq _02236844
+ mov r7, #5
+_022367EA:
+ bl FUN_0201B9EC
+ add r1, r6, #0
+ blx _s32_div_f
+ ldr r0, [sp, #0xc]
+ add r5, r1, #0
+ add r5, r5, r0
+ ldr r0, [sp, #8]
+ cmp r5, r0
+ beq _022367EA
+ ldr r0, [sp, #4]
+ cmp r5, r0
+ beq _022367EA
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ bl FUN_0206B9B0
+ add r1, r7, #0
+ mov r2, #0
+ add r4, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022367EA
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #1
+ beq _022367EA
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022367EA
+ ldr r0, [sp]
+ ldr r1, [r0, #0x6c]
+ add r1, r0, r1
+ ldr r0, _0223686C ; =0x000021A0
+ strb r5, [r1, r0]
+ b _02236860
+_02236844:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x18]
+ bl MOD11_0223A424
+ b _02236860
+_0223684E:
+ ldr r0, [sp]
+ bl MOD11_02246CCC
+ cmp r0, #0
+ bne _02236860
+ ldr r0, [sp]
+ ldr r1, [sp, #0x18]
+ bl MOD11_0223A424
+_02236860:
+ mov r0, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02236868: .word 0x0000219C
+_0223686C: .word 0x000021A0
+
+ thumb_func_start MOD11_02236870
+MOD11_02236870: ; 0x02236870
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r5, [r4, #0x64]
+ ldr r1, _02236A40 ; =0x00002DB0
+ add r0, r5, #0
+ mov r2, #0xc0
+ mov r5, #2
+ add r3, r4, r1
+ mul r0, r2
+ ldr r6, [r3, r0]
+ lsl r5, r5, #0x14
+ orr r5, r6
+ str r5, [r3, r0]
+ ldr r3, [r4, #0x64]
+ mov r0, #0
+ add r5, r3, #0
+ mul r5, r2
+ add r3, r1, #0
+ add r5, r4, r5
+ add r3, #0x38
+ strh r0, [r5, r3]
+ add r3, r1, #0
+ add r3, #0x18
+ ldr r6, [r4, #0x64]
+ add r5, r4, r3
+ add r3, r6, #0
+ mul r3, r2
+ ldr r7, [r5, r3]
+ mov r6, #7
+ bic r7, r6
+ str r7, [r5, r3]
+ ldr r3, [r4, #0x6c]
+ add r5, r3, #0
+ mul r5, r2
+ add r3, r1, #0
+ add r5, r4, r5
+ sub r3, #8
+ ldr r3, [r5, r3]
+ ldr r5, [r4, #0x64]
+ add r6, r5, #0
+ mul r6, r2
+ add r5, r1, #0
+ add r6, r4, r6
+ add r5, #0x34
+ str r3, [r6, r5]
+ ldr r3, [r4, #0x6c]
+ add r5, r3, #0
+ mul r5, r2
+ add r3, r1, #0
+ add r5, r4, r5
+ add r3, #0xe
+ ldrb r3, [r5, r3]
+ ldr r5, [r4, #0x64]
+ add r6, r5, #0
+ lsl r3, r3, #0x1c
+ mul r6, r2
+ add r5, r1, #0
+ lsr r3, r3, #0x1c
+ add r6, r4, r6
+ add r5, #0x4a
+ strh r3, [r6, r5]
+ add r3, r1, #0
+ add r3, #0x1c
+ ldr r6, [r4, #0x64]
+ add r5, r4, r3
+ add r3, r6, #0
+ mul r3, r2
+ ldr r7, [r5, r3]
+ mov r6, #0x3c
+ bic r7, r6
+ str r7, [r5, r3]
+ ldr r6, [r4, #0x64]
+ sub r1, #0x70
+ add r3, r6, #0
+ mul r3, r2
+ ldr r7, [r5, r3]
+ ldr r6, _02236A44 ; =0xFFFFE3FF
+ and r6, r7
+ str r6, [r5, r3]
+ add r5, r4, r1
+ ldr r1, [r4, #0x64]
+ add r3, r1, #0
+ mul r3, r2
+ ldr r1, [r4, #0x6c]
+ add r3, r5, r3
+ mul r2, r1
+ add r2, r5, r2
+_02236926:
+ ldrb r1, [r2, r0]
+ strb r1, [r3, r0]
+ add r0, r0, #1
+ cmp r0, #0x28
+ blo _02236926
+ ldr r3, [r4, #0x64]
+ ldr r1, _02236A48 ; =0x00002D68
+ add r6, r3, #0
+ mov r2, #0xc0
+ add r0, r4, r1
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #1
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r3, [r4, #0x64]
+ add r6, r3, #0
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #2
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r3, [r4, #0x64]
+ add r6, r3, #0
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #4
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r3, [r4, #0x64]
+ add r6, r3, #0
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #8
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r3, [r4, #0x64]
+ add r6, r3, #0
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #0x10
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r3, [r4, #0x64]
+ add r6, r3, #0
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #0x20
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r5, [r4, #0x64]
+ add r3, r5, #0
+ mul r3, r2
+ ldr r6, [r0, r3]
+ ldr r5, _02236A4C ; =0xFFFFFEFF
+ and r5, r6
+ str r5, [r0, r3]
+ ldr r5, [r4, #0x64]
+ add r3, r5, #0
+ mul r3, r2
+ ldr r6, [r0, r3]
+ ldr r5, _02236A50 ; =0xFFFFFDFF
+ and r5, r6
+ str r5, [r0, r3]
+ ldr r5, [r4, #0x64]
+ add r3, r5, #0
+ mul r3, r2
+ ldr r6, [r0, r3]
+ ldr r5, _02236A54 ; =0xFFFFFBFF
+ and r5, r6
+ str r5, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x60
+ add r6, r4, r3
+ ldr r3, [r4, #0x64]
+ add r1, #0x70
+ add r5, r3, #0
+ mul r5, r2
+ ldr r7, [r6, r5]
+ ldr r3, _02236A58 ; =0xBFFFFFFF
+ and r3, r7
+ add r7, r2, #0
+ add r7, #0x90
+ ldr r7, [r4, r7]
+ lsl r7, r7, #0x1f
+ lsr r7, r7, #1
+ orr r3, r7
+ str r3, [r6, r5]
+ add r3, r2, #0
+ add r3, #0x90
+ ldr r3, [r4, r3]
+ add r6, r3, #1
+ ldr r3, [r4, #0x64]
+ add r5, r3, #0
+ mul r5, r2
+ add r3, r4, r5
+ str r6, [r3, r1]
+ ldr r1, [r4, #0x64]
+ add r5, r1, #0
+ mul r5, r2
+ ldr r3, [r0, r5]
+ mov r1, #0x40
+ bic r3, r1
+ str r3, [r0, r5]
+ ldr r1, [r4, #0x64]
+ mov r6, #0
+ add r3, r1, #0
+ mul r3, r2
+ ldr r2, [r0, r3]
+ mov r1, #0x80
+ bic r2, r1
+ str r2, [r0, r3]
+ mov r0, #0xf9
+ add r5, r6, #0
+ mov r1, #5
+ lsl r0, r0, #2
+_02236A0E:
+ ldr r3, [r4, #0x64]
+ mov r2, #0xc0
+ mul r2, r3
+ add r3, r4, r2
+ ldr r2, _02236A5C ; =0x00002D4C
+ add r7, r3, r5
+ ldrh r2, [r7, r2]
+ lsl r2, r2, #4
+ add r2, r4, r2
+ ldrb r2, [r2, r0]
+ cmp r2, #5
+ bhs _02236A2E
+ add r7, r3, r6
+ ldr r3, _02236A60 ; =0x00002D6C
+ strb r2, [r7, r3]
+ b _02236A34
+_02236A2E:
+ ldr r2, _02236A60 ; =0x00002D6C
+ add r3, r3, r6
+ strb r1, [r3, r2]
+_02236A34:
+ add r6, r6, #1
+ add r5, r5, #2
+ cmp r6, #4
+ blt _02236A0E
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02236A40: .word 0x00002DB0
+_02236A44: .word 0xFFFFE3FF
+_02236A48: .word 0x00002D68
+_02236A4C: .word 0xFFFFFEFF
+_02236A50: .word 0xFFFFFDFF
+_02236A54: .word 0xFFFFFBFF
+_02236A58: .word 0xBFFFFFFF
+_02236A5C: .word 0x00002D4C
+_02236A60: .word 0x00002D6C
+
+ thumb_func_start MOD11_02236A64
+MOD11_02236A64: ; 0x02236A64
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r2, #0x72
+ mov r1, #1
+ add r3, r0, #0
+ eor r3, r1
+ lsl r0, r3, #3
+ add r5, r4, r0
+ lsl r2, r2, #2
+ ldr r5, [r5, r2]
+ lsl r5, r5, #0x1e
+ lsr r5, r5, #0x1e
+ cmp r5, #3
+ bne _02236ABA
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r3, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r3
+ ldr r5, [r2, r0]
+ mov r3, #1
+ bic r5, r3
+ orr r1, r5
+ str r1, [r2, r0]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02236AE2
+_02236ABA:
+ add r1, r2, #0
+ sub r1, #0xc
+ lsl r6, r3, #2
+ add r1, r4, r1
+ ldr r5, [r1, r6]
+ mov r3, #4
+ orr r3, r5
+ str r3, [r1, r6]
+ add r2, r4, r2
+ ldr r4, [r2, r0]
+ mov r3, #3
+ add r1, r4, #0
+ bic r1, r3
+ lsl r3, r4, #0x1e
+ lsr r3, r3, #0x1e
+ add r4, r3, #1
+ mov r3, #3
+ and r3, r4
+ orr r1, r3
+ str r1, [r2, r0]
+_02236AE2:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02236AE8
+MOD11_02236AE8: ; 0x02236AE8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ lsl r0, r0, #3
+ add r1, r5, r0
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1e
+ lsr r1, r0, #0x1e
+ beq _02236B56
+ mov r0, #0xc0
+ mul r0, r4
+ ldr r4, _02236B64 ; =0x00002D8C
+ add r0, r5, r0
+ ldr r2, [r0, r4]
+ cmp r2, #0
+ beq _02236B56
+ mov r2, #5
+ sub r1, r2, r1
+ ldr r3, _02236B68 ; =0x0000215C
+ lsl r1, r1, #1
+ str r1, [r5, r3]
+ add r1, r4, #4
+ ldr r1, [r0, r1]
+ sub r0, r2, #6
+ mul r0, r1
+ ldr r1, [r5, r3]
+ bl MOD11_022476C0
+ ldr r1, _02236B68 ; =0x0000215C
+ str r0, [r5, r1]
+ b _02236B5E
+_02236B56:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_02236B5E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02236B64: .word 0x00002D8C
+_02236B68: .word 0x0000215C
+
+ thumb_func_start MOD11_02236B6C
+MOD11_02236B6C: ; 0x02236B6C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ str r1, [sp]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp]
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r4, #0
+ bl MOD11_0222FF84
+ mov r2, #0x4d
+ mov r7, #0
+ str r0, [sp, #4]
+ add r1, r0, #0
+ ldr r0, [sp]
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ ldr r0, [sp, #4]
+ add r6, r7, #0
+ cmp r0, #0
+ ble _02236BFC
+ ldr r4, [sp]
+ ldr r1, _02236C10 ; =0x00002DC8
+ add r0, r4, #0
+ add r5, r0, r1
+_02236BA8:
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _02236BCE
+ ldr r0, _02236C14 ; =0x00002D8C
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02236BCE
+ ldr r0, [sp]
+ add r2, r6, #0
+ add r1, r0, #0
+ ldr r1, [r1, #0x64]
+ mov r3, #0x2b
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02236BD2
+_02236BCE:
+ add r7, r7, #1
+ b _02236BF0
+_02236BD2:
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x20
+ orr r1, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ ldr r1, [r5]
+ ldr r0, _02236C18 ; =0xFFFF9FFF
+ and r1, r0
+ mov r0, #6
+ lsl r0, r0, #0xc
+ orr r0, r1
+ str r0, [r5]
+_02236BF0:
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r4, #0xc0
+ add r5, #0xc0
+ cmp r6, r0
+ blt _02236BA8
+_02236BFC:
+ ldr r0, [sp, #4]
+ cmp r7, r0
+ bne _02236C0A
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_0223A424
+_02236C0A:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02236C10: .word 0x00002DC8
+_02236C14: .word 0x00002D8C
+_02236C18: .word 0xFFFF9FFF
+
+ thumb_func_start MOD11_02236C1C
+MOD11_02236C1C: ; 0x02236C1C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ ldr r1, _02236C4C ; =0x00003104
+ ldr r1, [r4, r1]
+ add r2, r4, r1
+ ldr r1, _02236C50 ; =0x000021EC
+ ldrb r1, [r2, r1]
+ str r1, [r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02236C4C: .word 0x00003104
+_02236C50: .word 0x000021EC
+
+ thumb_func_start MOD11_02236C54
+MOD11_02236C54: ; 0x02236C54
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223A444
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, [r6]
+ cmp r1, r0
+ bhs _02236C92
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_02236C92:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02236C98
+MOD11_02236C98: ; 0x02236C98
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ mov r0, #0x4e
+ mov r3, #0
+ lsl r0, r0, #2
+ str r3, [r5, r0]
+ ldr r0, _02236F40 ; =0x0000215C
+ add r1, r4, #0
+ str r3, [r5, r0]
+ add r0, r5, #0
+ mov r2, #0x1b
+ bl MOD11_02243420
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ add r7, r0, #0
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _02236D08
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _02236D0A
+_02236D08:
+ b _02236F38
+_02236D0A:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0xc
+ tst r0, r1
+ beq _02236D74
+ ldr r0, [sp, #4]
+ cmp r0, #5
+ beq _02236D74
+ cmp r7, #5
+ beq _02236D74
+ cmp r0, #8
+ beq _02236D74
+ cmp r7, #8
+ beq _02236D74
+ cmp r0, #4
+ beq _02236D74
+ cmp r7, #4
+ beq _02236D74
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ ldr r0, _02236F44 ; =0x00002D8C
+ add r1, r5, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02236D74
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #8
+ beq _02236D74
+ mov r3, #0xb7
+ add r1, r5, r6
+ lsl r3, r3, #6
+ ldr r2, [r1, r3]
+ ldr r0, _02236F48 ; =0x00040080
+ tst r0, r2
+ bne _02236D74
+ mov r0, #0xc9
+ add r2, r0, #0
+ add r2, #0x5b
+ str r0, [r5, r2]
+ sub r3, #0x30
+ ldr r1, [r1, r3]
+ sub r0, #0xca
+ mul r0, r1
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+_02236D74:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0x30
+ tst r0, r1
+ beq _02236DDC
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ ldr r0, _02236F44 ; =0x00002D8C
+ add r2, r5, r6
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02236DDC
+ add r0, #0x34
+ ldr r1, [r2, r0]
+ ldr r0, _02236F48 ; =0x00040080
+ tst r0, r1
+ bne _02236DDC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x57
+ beq _02236DB2
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x5e
+ bne _02236DC8
+_02236DB2:
+ ldr r0, _02236F4C ; =0x00002D90
+ add r1, r5, r6
+ ldr r1, [r1, r0]
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r1
+ mov r1, #8
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+_02236DC8:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x5e
+ bne _02236DDC
+ mov r0, #0x4e
+ mov r1, #2
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_02236DDC:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ tst r1, r0
+ beq _02236E5E
+ ldr r1, _02236F44 ; =0x00002D8C
+ add r6, r4, #0
+ mul r6, r0
+ add r0, r5, r1
+ str r0, [sp, #8]
+ ldr r0, [r0, r6]
+ cmp r0, #0
+ beq _02236E5E
+ add r0, r5, r6
+ add r1, #0x34
+ ldr r1, [r0, r1]
+ ldr r0, _02236F48 ; =0x00040080
+ tst r0, r1
+ bne _02236E5E
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x73
+ bne _02236E2A
+ ldr r0, _02236F4C ; =0x00002D90
+ add r1, r5, r6
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #8]
+ ldr r1, [r1, r6]
+ cmp r1, r0
+ bhs _02236E5E
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+ b _02236E5E
+_02236E2A:
+ ldr r0, [sp, #4]
+ cmp r0, #0xf
+ beq _02236E5E
+ cmp r7, #0xf
+ beq _02236E5E
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x51
+ beq _02236E5E
+ ldr r1, _02236F50 ; =0x00000102
+ add r0, r1, #0
+ add r0, #0x22
+ str r1, [r5, r0]
+ ldr r0, _02236F4C ; =0x00002D90
+ add r1, r5, r6
+ ldr r1, [r1, r0]
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r1
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+_02236E5E:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #3
+ tst r0, r1
+ beq _02236F38
+ ldr r1, _02236F44 ; =0x00002D8C
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ add r7, r5, r1
+ ldr r0, [r7, r6]
+ cmp r0, #0
+ beq _02236EA0
+ add r1, r1, #4
+ add r1, r5, r1
+ str r1, [sp, #0xc]
+ ldr r1, [r1, r6]
+ cmp r0, r1
+ bhs _02236EA0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2c
+ bne _02236EA0
+ ldr r0, [sp, #0xc]
+ mov r1, #0x10
+ ldr r0, [r0, r6]
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+_02236EA0:
+ ldr r0, [r7, r6]
+ cmp r0, #0
+ beq _02236ECC
+ ldr r1, _02236F4C ; =0x00002D90
+ add r1, r5, r1
+ str r1, [sp, #0x10]
+ ldr r1, [r1, r6]
+ cmp r0, r1
+ bhs _02236ECC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x57
+ bne _02236ECC
+ ldr r0, [sp, #0x10]
+ mov r1, #8
+ ldr r0, [r0, r6]
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+_02236ECC:
+ ldr r0, [r7, r6]
+ cmp r0, #0
+ beq _02236F38
+ ldr r0, _02236F54 ; =0x00002DAC
+ add r7, r5, r0
+ ldr r0, [r7, r6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _02236F38
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x5d
+ bne _02236F38
+ ldr r0, [r7, r6]
+ mov r1, #7
+ tst r1, r0
+ beq _02236EFC
+ mov r0, #0x13
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02236F30
+_02236EFC:
+ ldr r1, _02236F58 ; =0x00000F88
+ tst r1, r0
+ beq _02236F0C
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02236F30
+_02236F0C:
+ mov r1, #0x10
+ tst r1, r0
+ beq _02236F1C
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02236F30
+_02236F1C:
+ mov r1, #0x40
+ tst r0, r1
+ beq _02236F2A
+ mov r0, #3
+ add r1, #0xf0
+ str r0, [r5, r1]
+ b _02236F30
+_02236F2A:
+ mov r0, #4
+ add r1, #0xf0
+ str r0, [r5, r1]
+_02236F30:
+ mov r0, #0x4e
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_02236F38:
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02236F40: .word 0x0000215C
+_02236F44: .word 0x00002D8C
+_02236F48: .word 0x00040080
+_02236F4C: .word 0x00002D90
+_02236F50: .word 0x00000102
+_02236F54: .word 0x00002DAC
+_02236F58: .word 0x00000F88
+
+ thumb_func_start MOD11_02236F5C
+MOD11_02236F5C: ; 0x02236F5C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r6, [r4, #0x64]
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r2, r4, r0
+ mov r0, #0x1c
+ add r1, r6, #0
+ mul r1, r0
+ ldr r3, [r2, r1]
+ ldr r0, _0223705C ; =0xFFFFFE3F
+ mov r7, #0xc0
+ and r0, r3
+ add r3, r6, #0
+ mul r3, r7
+ add r6, r4, r3
+ ldr r3, _02237060 ; =0x00002DC8
+ ldr r6, [r6, r3]
+ sub r3, #0x18
+ lsl r6, r6, #0xe
+ lsr r6, r6, #0x1d
+ lsl r6, r6, #0x1d
+ lsr r6, r6, #0x17
+ orr r0, r6
+ str r0, [r2, r1]
+ ldr r2, [r4, #0x64]
+ add r0, r2, #0
+ mul r0, r7
+ add r0, r4, r0
+ ldr r1, [r0, r3]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ tst r0, r1
+ bne _02236FCA
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022451C0
+ ldr r0, _02237060 ; =0x00002DC8
+ ldr r2, [r4, #0x64]
+ add r1, r4, r0
+ add r0, r7, #0
+ mul r0, r2
+ ldr r3, [r1, r0]
+ ldr r2, _02237064 ; =0xFFFC7FFF
+ and r3, r2
+ mov r2, #0xa
+ lsl r2, r2, #0xe
+ orr r2, r3
+ str r2, [r1, r0]
+_02236FCA:
+ ldr r1, [r4, #0x64]
+ ldr r0, _02237060 ; =0x00002DC8
+ mov r7, #0xc0
+ add r3, r1, #0
+ add r6, r4, r0
+ mul r3, r7
+ ldr r1, [r6, r3]
+ ldr r2, _02237064 ; =0xFFFC7FFF
+ and r2, r1
+ lsl r1, r1, #0xe
+ lsr r1, r1, #0x1d
+ sub r1, r1, #1
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0xe
+ orr r1, r2
+ str r1, [r6, r3]
+ ldr r2, [r4, #0x64]
+ add r1, r2, #0
+ mul r1, r7
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0xe
+ lsr r0, r0, #0x1d
+ bne _02237002
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022451F0
+_02237002:
+ ldr r0, _02237068 ; =0x00003044
+ mov r2, #1
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _0223706C ; =0x000003E1
+ ldrb r1, [r1, r0]
+ ldr r0, _02237070 ; =0x00002154
+ str r1, [r4, r0]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02237060 ; =0x00002DC8
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0xe
+ lsr r1, r0, #0x1d
+ mov r0, #5
+ sub r3, r0, r1
+ cmp r3, #1
+ ble _0223703A
+ ldr r0, _02237070 ; =0x00002154
+_0223702E:
+ ldr r1, [r4, r0]
+ add r2, r2, #1
+ lsl r1, r1, #1
+ str r1, [r4, r0]
+ cmp r2, r3
+ blt _0223702E
+_0223703A:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02237074 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x1e
+ tst r0, r1
+ beq _02237056
+ ldr r0, _02237070 ; =0x00002154
+ ldr r1, [r4, r0]
+ lsl r1, r1, #1
+ str r1, [r4, r0]
+_02237056:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223705C: .word 0xFFFFFE3F
+_02237060: .word 0x00002DC8
+_02237064: .word 0xFFFC7FFF
+_02237068: .word 0x00003044
+_0223706C: .word 0x000003E1
+_02237070: .word 0x00002154
+_02237074: .word 0x00002DB0
+
+ thumb_func_start MOD11_02237078
+MOD11_02237078: ; 0x02237078
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ add r1, r2, #0
+ mul r1, r0
+ ldr r0, _022370F4 ; =0x00002DC8
+ add r0, r4, r0
+ ldr r3, [r0, r1]
+ lsl r2, r3, #0xb
+ lsr r5, r2, #0x1d
+ cmp r5, #5
+ bhs _022370A8
+ ldr r2, _022370F8 ; =0xFFE3FFFF
+ and r3, r2
+ add r2, r5, #1
+ lsl r2, r2, #0x1d
+ lsr r2, r2, #0xb
+ orr r2, r3
+ str r2, [r0, r1]
+_022370A8:
+ ldr r0, _022370FC ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _02237100 ; =0x000003E1
+ ldrb r1, [r1, r0]
+ ldr r0, _02237104 ; =0x00002154
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _022370F4 ; =0x00002DC8
+ mov r0, #1
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0xb
+ lsr r1, r1, #0x1d
+ cmp r1, #1
+ bls _022370EE
+ ldr r3, _02237104 ; =0x00002154
+ ldr r2, _022370F4 ; =0x00002DC8
+ mov r1, #0xc0
+_022370D4:
+ ldr r5, [r4, r3]
+ add r0, r0, #1
+ lsl r5, r5, #1
+ str r5, [r4, r3]
+ ldr r5, [r4, #0x64]
+ add r6, r5, #0
+ mul r6, r1
+ add r5, r4, r6
+ ldr r5, [r5, r2]
+ lsl r5, r5, #0xb
+ lsr r5, r5, #0x1d
+ cmp r0, r5
+ blo _022370D4
+_022370EE:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022370F4: .word 0x00002DC8
+_022370F8: .word 0xFFE3FFFF
+_022370FC: .word 0x00003044
+_02237100: .word 0x000003E1
+_02237104: .word 0x00002154
+
+ thumb_func_start MOD11_02237108
+MOD11_02237108: ; 0x02237108
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r3, r0, #0
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r5, #0xc0
+ add r1, r0, #0
+ mul r1, r5
+ ldr r6, _02237184 ; =0x00002DBE
+ add r1, r4, r1
+ ldrb r0, [r1, r6]
+ lsl r0, r0, #0x1c
+ lsr r2, r0, #0x1c
+ add r0, r5, #0
+ add r0, #0x58
+ ldr r0, [r4, r0]
+ mul r5, r0
+ add r5, r4, r5
+ ldrb r5, [r5, r6]
+ lsl r5, r5, #0x1c
+ lsr r5, r5, #0x1c
+ cmp r5, r2
+ beq _0223715A
+ sub r6, #0xe
+ ldr r6, [r1, r6]
+ mov r1, #0xf
+ lsl r1, r1, #0x10
+ tst r1, r6
+ bne _0223715A
+ cmp r5, #2
+ beq _0223715A
+ cmp r2, #2
+ bne _02237164
+_0223715A:
+ add r0, r4, #0
+ add r1, r3, #0
+ bl MOD11_0223A424
+ b _0223717E
+_02237164:
+ bl FUN_0206A92C
+ ldr r1, _02237188 ; =0x00002DB0
+ mov r2, #0xc0
+ add r1, r4, r1
+ add r4, #0x94
+ ldr r3, [r4]
+ lsl r0, r0, #0x10
+ add r4, r3, #0
+ mul r4, r2
+ ldr r2, [r1, r4]
+ orr r0, r2
+ str r0, [r1, r4]
+_0223717E:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02237184: .word 0x00002DBE
+_02237188: .word 0x00002DB0
+
+ thumb_func_start MOD11_0223718C
+MOD11_0223718C: ; 0x0223718C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r5, #0x6f
+ add r2, r0, #0
+ lsl r5, r5, #2
+ add r1, r4, r5
+ lsl r0, r2, #2
+ ldr r6, [r1, r0]
+ mov r3, #8
+ tst r3, r6
+ beq _022371D0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ ldr r1, _02237214 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r4, r1]
+ orr r0, r2
+ str r0, [r4, r1]
+ b _02237210
+_022371D0:
+ mov r3, #8
+ orr r3, r6
+ str r3, [r1, r0]
+ add r5, #8
+ lsl r0, r2, #3
+ add r1, r4, r5
+ ldr r3, [r1, r0]
+ ldr r2, _02237218 ; =0xFFF1FFFF
+ and r3, r2
+ mov r2, #0xa
+ lsl r2, r2, #0x10
+ orr r2, r3
+ str r2, [r1, r0]
+ ldr r3, [r1, r0]
+ ldr r2, _0223721C ; =0xFFFE7FFF
+ and r3, r2
+ ldr r2, [r4, #0x64]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0xf
+ orr r2, r3
+ str r2, [r1, r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ ldr r1, [r4, #0x64]
+ add r0, #0xf8
+ str r1, [r0]
+ mov r0, #0xc6
+ add r4, #0xf6
+ strh r0, [r4]
+_02237210:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02237214: .word 0x0000216C
+_02237218: .word 0xFFF1FFFF
+_0223721C: .word 0xFFFE7FFF
+
+ thumb_func_start MOD11_02237220
+MOD11_02237220: ; 0x02237220
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ bl FUN_0201B9EC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x66
+ bge _02237248
+ ldr r0, _02237284 ; =0x00002154
+ mov r1, #0x28
+ str r1, [r5, r0]
+ b _0223727E
+_02237248:
+ cmp r0, #0xb2
+ bge _02237254
+ ldr r0, _02237284 ; =0x00002154
+ mov r1, #0x50
+ str r1, [r5, r0]
+ b _0223727E
+_02237254:
+ cmp r0, #0xcc
+ bge _02237260
+ ldr r0, _02237284 ; =0x00002154
+ mov r1, #0x78
+ str r1, [r5, r0]
+ b _0223727E
+_02237260:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02237288 ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _0223728C ; =0x0000215C
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+_0223727E:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02237284: .word 0x00002154
+_02237288: .word 0x00002D90
+_0223728C: .word 0x0000215C
+
+ thumb_func_start MOD11_02237290
+MOD11_02237290: ; 0x02237290
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, _0223732C ; =0x00003120
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _0223731C
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ blx _s32_div_f
+ ldr r0, _0223732C ; =0x00003120
+ strb r1, [r4, r0]
+ ldrb r1, [r4, r0]
+ cmp r1, #5
+ bhs _022372C4
+ ldr r1, _02237330 ; =0x00002154
+ mov r2, #0xa
+ str r2, [r4, r1]
+ mov r1, #4
+ strb r1, [r4, r0]
+ b _0223731C
+_022372C4:
+ cmp r1, #0xf
+ bhs _022372D4
+ ldr r1, _02237330 ; =0x00002154
+ mov r2, #0x1e
+ str r2, [r4, r1]
+ mov r1, #5
+ strb r1, [r4, r0]
+ b _0223731C
+_022372D4:
+ cmp r1, #0x23
+ bhs _022372E4
+ ldr r1, _02237330 ; =0x00002154
+ mov r2, #0x32
+ str r2, [r4, r1]
+ mov r1, #6
+ strb r1, [r4, r0]
+ b _0223731C
+_022372E4:
+ cmp r1, #0x41
+ bhs _022372F4
+ ldr r1, _02237330 ; =0x00002154
+ mov r2, #0x46
+ str r2, [r4, r1]
+ mov r1, #7
+ strb r1, [r4, r0]
+ b _0223731C
+_022372F4:
+ cmp r1, #0x55
+ bhs _02237304
+ ldr r1, _02237330 ; =0x00002154
+ mov r2, #0x5a
+ str r2, [r4, r1]
+ mov r1, #8
+ strb r1, [r4, r0]
+ b _0223731C
+_02237304:
+ cmp r1, #0x5f
+ ldr r1, _02237330 ; =0x00002154
+ bhs _02237314
+ mov r2, #0x6e
+ str r2, [r4, r1]
+ mov r1, #9
+ strb r1, [r4, r0]
+ b _0223731C
+_02237314:
+ mov r2, #0x96
+ str r2, [r4, r1]
+ mov r1, #0xa
+ strb r1, [r4, r0]
+_0223731C:
+ ldr r0, _0223732C ; =0x00003120
+ ldrb r1, [r4, r0]
+ mov r0, #0x13
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0223732C: .word 0x00003120
+_02237330: .word 0x00002154
+
+ thumb_func_start MOD11_02237334
+MOD11_02237334: ; 0x02237334
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_02246DE0
+ cmp r0, #0
+ bne _0223737E
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ b _02237392
+_0223737E:
+ cmp r7, #1
+ bne _02237392
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ add r3, r5, r0
+ lsl r2, r4, #2
+ ldr r1, [r3, r2]
+ mov r0, #1
+ orr r0, r1
+ str r0, [r3, r2]
+_02237392:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02237398
+MOD11_02237398: ; 0x02237398
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x64]
+ bl MOD11_02230270
+ ldr r1, [r4, #0x64]
+ mov r6, #0xe
+ ldr r5, _022374D4 ; =0x00002DB0
+ add r2, r1, #0
+ mov r3, #0xc0
+ mul r2, r3
+ add r1, r4, r5
+ ldr r7, [r1, r2]
+ lsl r6, r6, #0xc
+ tst r6, r7
+ beq _022373F4
+ ldr r0, _022374D8 ; =0xFFFF1FFF
+ and r0, r7
+ str r0, [r1, r2]
+ ldr r0, [r4, #0x64]
+ mov r2, #0x74
+ add r1, r0, #0
+ add r0, r5, #0
+ mul r1, r3
+ add r1, r4, r1
+ add r0, #0x1c
+ ldr r0, [r1, r0]
+ add r5, #0x3a
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x1e
+ add r0, r3, #0
+ add r0, #0x58
+ str r1, [r4, r0]
+ ldr r0, [r4, #0x64]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r4, r1
+ ldrh r0, [r0, r5]
+ add r3, #0x64
+ mov r1, #1
+ str r0, [r4, r3]
+ add r0, r4, #0
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022373F4:
+ add r5, #0x10
+ add r5, r4, r5
+ ldr r1, [r5, r2]
+ mov r6, #4
+ tst r6, r1
+ beq _0223742A
+ mov r0, #4
+ bic r1, r0
+ str r1, [r5, r2]
+ ldr r0, [r4, #0x64]
+ add r2, r0, #0
+ mul r2, r3
+ ldr r1, [r5, r2]
+ mov r0, #3
+ bic r1, r0
+ str r1, [r5, r2]
+ mov r1, #0x49
+ add r0, r1, #0
+ add r0, #0xdb
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x75
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223742A:
+ mov r1, #0x72
+ lsl r1, r1, #2
+ add r6, r4, r1
+ lsl r5, r0, #3
+ ldr r2, [r6, r5]
+ lsl r3, r2, #0x1e
+ lsr r3, r3, #0x1e
+ beq _02237466
+ sub r1, #0xc
+ lsl r3, r0, #2
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #4
+ bic r2, r0
+ str r2, [r1, r3]
+ ldr r1, [r6, r5]
+ mov r0, #3
+ bic r1, r0
+ str r1, [r6, r5]
+ mov r1, #0xbf
+ add r0, r1, #0
+ add r0, #0x65
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x75
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02237466:
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1e
+ beq _0223749A
+ add r2, r1, #0
+ sub r2, #0xc
+ lsl r7, r0, #2
+ add r3, r4, r2
+ ldr r2, [r3, r7]
+ ldr r0, _022374DC ; =0xFFFFFBFF
+ and r0, r2
+ str r0, [r3, r7]
+ ldr r2, [r6, r5]
+ mov r0, #0xc
+ bic r2, r0
+ add r0, r1, #0
+ str r2, [r6, r5]
+ sub r0, #0x42
+ sub r1, #0xa4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x75
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223749A:
+ add r2, r1, #0
+ sub r2, #0xc
+ add r2, r4, r2
+ lsl r0, r0, #2
+ ldr r6, [r2, r0]
+ mov r5, #0x80
+ add r3, r6, #0
+ tst r3, r5
+ beq _022374C6
+ mov r3, #0x80
+ bic r6, r3
+ str r6, [r2, r0]
+ sub r1, #0xa
+ add r5, #0xa4
+ str r1, [r4, r5]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x75
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022374C6:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022374D4: .word 0x00002DB0
+_022374D8: .word 0xFFFF1FFF
+_022374DC: .word 0xFFFFFBFF
+
+ thumb_func_start MOD11_022374E0
+MOD11_022374E0: ; 0x022374E0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ ldr r0, _02237578 ; =0x000080FF
+ tst r0, r1
+ beq _02237522
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _02237522
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _02237536
+_02237522:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0223757C ; =0x00002D90
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ ldr r0, _02237580 ; =0x0000215C
+ str r1, [r4, r0]
+ b _02237572
+_02237536:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x30
+ tst r0, r1
+ ldr r1, [r4, #0x64]
+ beq _0223755E
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0223757C ; =0x00002D90
+ ldr r1, [r1, r0]
+ mov r0, #0x14
+ mul r0, r1
+ mov r1, #0x1e
+ bl MOD11_022476C0
+ ldr r1, _02237580 ; =0x0000215C
+ str r0, [r4, r1]
+ b _02237572
+_0223755E:
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0223757C ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _02237580 ; =0x0000215C
+ str r0, [r4, r1]
+_02237572:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02237578: .word 0x000080FF
+_0223757C: .word 0x00002D90
+_02237580: .word 0x0000215C
+
+ thumb_func_start MOD11_02237584
+MOD11_02237584: ; 0x02237584
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, _02237664 ; =0x00002D54
+ ldr r1, [r4, #0x64]
+ add r3, r4, r0
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, [r3, r0]
+ mov r5, #2
+ lsl r0, r1, #2
+ lsr r0, r0, #0x1b
+ and r0, r5
+ lsl r2, r0, #4
+ lsl r0, r1, #7
+ lsr r0, r0, #0x1b
+ and r0, r5
+ lsl r7, r0, #3
+ lsl r0, r1, #0xc
+ lsr r0, r0, #0x1b
+ and r0, r5
+ lsl r0, r0, #2
+ mov ip, r0
+ lsl r0, r1, #0x11
+ lsr r0, r0, #0x1b
+ and r0, r5
+ lsl r6, r0, #1
+ lsl r0, r1, #0x1b
+ lsr r0, r0, #0x1b
+ lsl r1, r1, #0x16
+ and r0, r5
+ lsr r1, r1, #0x1b
+ lsr r0, r0, #1
+ and r1, r5
+ orr r0, r1
+ add r1, r6, #0
+ orr r1, r0
+ mov r0, ip
+ orr r0, r1
+ orr r0, r7
+ add r1, r2, #0
+ orr r1, r0
+ ldr r0, _02237668 ; =0x00002154
+ str r1, [r4, r0]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r5, [r3, r0]
+ lsl r0, r5, #2
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r6, r0, #0x1a
+ lsl r0, r5, #7
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r3, r0, #0x1b
+ lsl r0, r5, #0xc
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r2, r0, #0x1c
+ lsl r0, r5, #0x11
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r7, r0, #0x1d
+ lsl r0, r5, #0x1b
+ lsr r1, r0, #0x1b
+ mov r0, #1
+ and r0, r1
+ lsl r1, r5, #0x16
+ lsr r1, r1, #0x1b
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1e
+ orr r0, r1
+ orr r0, r7
+ orr r0, r2
+ orr r0, r3
+ add r1, r6, #0
+ orr r1, r0
+ ldr r0, _02237668 ; =0x00002154
+ add r0, #0xc
+ str r1, [r4, r0]
+ ldr r0, _02237668 ; =0x00002154
+ ldr r1, [r4, r0]
+ mov r0, #0x28
+ mul r0, r1
+ mov r1, #0x3f
+ blx _s32_div_f
+ ldr r1, _02237668 ; =0x00002154
+ add r0, #0x1e
+ str r0, [r4, r1]
+ add r1, #0xc
+ ldr r1, [r4, r1]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0x3f
+ blx _s32_div_f
+ add r1, r0, #1
+ ldr r0, _0223766C ; =0x00002160
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #9
+ blt _0223765E
+ add r1, r1, #1
+ str r1, [r4, r0]
+_0223765E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02237664: .word 0x00002D54
+_02237668: .word 0x00002154
+_0223766C: .word 0x00002160
+
+ thumb_func_start MOD11_02237670
+MOD11_02237670: ; 0x02237670
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r2, _022376C8 ; =0x00002D58
+ mov r1, #0
+ mov r3, #0xc0
+ add r5, r2, #0
+_02237684:
+ ldr r6, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r6
+ ldr r6, [r4, #0x64]
+ add r0, r4, r0
+ add r0, r1, r0
+ add r7, r6, #0
+ mul r7, r3
+ add r6, r4, r7
+ add r6, r1, r6
+ ldrsb r0, [r0, r2]
+ add r1, r1, #1
+ cmp r1, #8
+ strb r0, [r6, r5]
+ blt _02237684
+ ldr r0, [r4, #0x64]
+ ldr r6, [r4, #0x6c]
+ mov r3, #0xc0
+ add r1, r0, #0
+ ldr r5, _022376CC ; =0x00002DB0
+ mul r1, r3
+ mul r3, r6
+ add r2, r4, r5
+ add r3, r4, r3
+ ldr r4, [r3, r5]
+ mov r3, #1
+ lsl r3, r3, #0x14
+ ldr r0, [r2, r1]
+ and r3, r4
+ orr r0, r3
+ str r0, [r2, r1]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022376C8: .word 0x00002D58
+_022376CC: .word 0x00002DB0
+
+ thumb_func_start MOD11_022376D0
+MOD11_022376D0: ; 0x022376D0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ ldr r1, [r4, #0x6c]
+ add r2, r0, #0
+ mov r0, #0x62
+ add r3, r4, r1
+ lsl r0, r0, #2
+ ldrb r0, [r3, r0]
+ cmp r0, #0
+ bne _022377A4
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ lsl r3, r0, #2
+ add r6, r4, r1
+ add r7, r1, #0
+ ldr r2, [r6, r3]
+ mov r0, #0x10
+ orr r0, r2
+ str r0, [r6, r3]
+ ldr r0, [r4, #0x6c]
+ sub r7, #0x34
+ add r2, r4, r0
+ mov r0, #3
+ strb r0, [r2, r7]
+ add r7, r1, #0
+ ldr r0, _022377B4 ; =0x00003044
+ sub r7, #0x2c
+ ldr r2, [r4, r0]
+ ldr r0, [r4, #0x6c]
+ sub r1, #0x24
+ lsl r0, r0, #1
+ add r0, r4, r0
+ strh r2, [r0, r7]
+ ldr r2, [r4, #0x6c]
+ ldr r0, [r4, #0x64]
+ lsl r2, r2, #2
+ add r2, r4, r2
+ str r0, [r2, r1]
+ mov r0, #3
+ lsl r0, r0, #7
+ ldr r0, [r4, r0]
+ ldr r2, _022377B4 ; =0x00003044
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x64]
+ add r1, r4, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r2, [r4, r2]
+ ldr r3, [r6, r3]
+ add r0, r5, #0
+ bl MOD11_0224B310
+ mov r1, #0
+ mvn r1, r1
+ mul r1, r0
+ add r0, r4, #0
+ bl MOD11_0224BF10
+ ldr r1, [r4, #0x6c]
+ lsl r1, r1, #2
+ add r2, r4, r1
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #6
+ add r2, r4, r0
+ add r0, r1, #0
+ add r0, #0x2c
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _022377AC
+ ldr r0, [r4, #0x6c]
+ add r5, r4, r1
+ lsl r4, r0, #2
+ ldr r1, [r5, r4]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ blx _s32_div_f
+ str r0, [r5, r4]
+ b _022377AC
+_022377A4:
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_0223A424
+_022377AC:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022377B4: .word 0x00003044
+
+ thumb_func_start MOD11_022377B8
+MOD11_022377B8: ; 0x022377B8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r6, r0, #0
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223CC8C
+ str r0, [sp]
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r6, #0
+ bl MOD11_0223D29C
+ ldr r0, _02237830 ; =0x0000216C
+ ldr r1, [r4, r0]
+ ldr r0, _02237834 ; =0x001FD849
+ tst r0, r1
+ beq _02237828
+ ldr r1, [sp, #8]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02237828:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02237830: .word 0x0000216C
+_02237834: .word 0x001FD849
+
+ thumb_func_start MOD11_02237838
+MOD11_02237838: ; 0x02237838
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r3, #0
+ bl MOD11_02246ED0
+ cmp r0, #0
+ beq _02237866
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02237866:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223786C
+MOD11_0223786C: ; 0x0223786C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ add r0, r7, #0
+ bl MOD11_0222FFC8
+ ldr r1, _02237AA0 ; =0x0000217D
+ str r0, [sp]
+ ldrb r0, [r5, r1]
+ cmp r0, #0
+ bne _02237900
+ mov r0, #2
+ strb r0, [r5, r1]
+ add r0, r1, #0
+ mov r2, #0xfd
+ add r0, #0xb
+ str r2, [r5, r0]
+ mov r2, #0
+ add r0, r1, #2
+ strb r2, [r5, r0]
+ add r6, r1, #2
+_022378A2:
+ ldr r2, _02237AA4 ; =0x0000217F
+ ldr r1, [r5, #0x64]
+ ldrb r2, [r5, r2]
+ add r0, r7, #0
+ bl MOD11_02230014
+ ldr r1, _02237AA4 ; =0x0000217F
+ add r4, r0, #0
+ ldrb r3, [r5, r1]
+ ldr r1, [r5, #0x64]
+ add r2, r5, r1
+ ldr r1, _02237AA8 ; =0x0000219C
+ ldrb r1, [r2, r1]
+ cmp r3, r1
+ beq _02237900
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022378F8
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022378F8
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02237AAC ; =0x000001EE
+ cmp r0, r1
+ beq _022378F8
+ add r0, r4, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02237900
+_022378F8:
+ ldrb r0, [r5, r6]
+ add r0, r0, #1
+ strb r0, [r5, r6]
+ b _022378A2
+_02237900:
+ ldr r2, _02237AA4 ; =0x0000217F
+ ldr r1, [r5, #0x64]
+ ldrb r2, [r5, r2]
+ add r0, r7, #0
+ bl MOD11_02230014
+ add r4, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020671BC
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ mov r2, #1
+ bl FUN_02068654
+ ldr r1, _02237AB0 ; =0x00002144
+ ldr r2, _02237AB4 ; =0x00003044
+ str r0, [r5, r1]
+ ldr r2, [r5, r2]
+ ldr r0, [r5, r1]
+ lsl r2, r2, #4
+ add r3, r5, r2
+ ldr r2, _02237AB8 ; =0x000003E1
+ ldrb r2, [r3, r2]
+ mul r2, r0
+ str r2, [r5, r1]
+ lsl r0, r4, #1
+ mov r1, #5
+ blx _s32_div_f
+ ldr r1, _02237AB0 ; =0x00002144
+ add r0, r0, #2
+ ldr r2, [r5, r1]
+ mul r0, r2
+ str r0, [r5, r1]
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ mov r1, #0xb5
+ add r2, r5, r0
+ lsl r1, r1, #6
+ ldrh r0, [r2, r1]
+ add r1, #0x26
+ ldrb r1, [r2, r1]
+ mov r2, #2
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ bl FUN_02068654
+ add r1, r0, #0
+ ldr r0, _02237AB0 ; =0x00002144
+ ldr r0, [r5, r0]
+ blx _u32_div_f
+ ldr r1, _02237AB0 ; =0x00002144
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #0x32
+ blx _s32_div_f
+ ldr r1, _02237AB0 ; =0x00002144
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ add r0, r0, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ add r0, #0xc
+ ldr r2, [r5, r1]
+ ldr r0, [r5, r0]
+ mul r0, r2
+ str r0, [r5, r1]
+ ldr r0, [r5, #0x64]
+ lsl r0, r0, #6
+ add r2, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _022379CC
+ ldr r1, [r5, r1]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ blx _s32_div_f
+ ldr r1, _02237AB0 ; =0x00002144
+ str r0, [r5, r1]
+_022379CC:
+ ldr r1, _02237AB0 ; =0x00002144
+ add r0, r5, #0
+ ldr r1, [r5, r1]
+ bl MOD11_0224BF10
+ ldr r1, _02237AB0 ; =0x00002144
+ str r0, [r5, r1]
+ mov r0, #0
+ ldr r2, [r5, r1]
+ mvn r0, r0
+ mul r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r3, r1, #0
+ ldr r2, _02237ABC ; =0x000001E1
+ add r0, #0xf6
+ strh r2, [r0]
+ add r0, r5, #0
+ mov r2, #2
+ add r0, #0xf5
+ strb r2, [r0]
+ add r3, #0x3b
+ ldrb r3, [r5, r3]
+ ldr r0, [r5, #0x64]
+ add r6, r1, #0
+ lsl r3, r3, #8
+ orr r3, r0
+ add r0, r5, #0
+ add r0, #0xf8
+ str r3, [r0]
+ add r0, r1, #0
+ add r0, #0x3b
+ ldrb r0, [r5, r0]
+ add r6, #0x3b
+ add r3, r0, #1
+ add r0, r1, #0
+ add r0, #0x3b
+ strb r3, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x38
+ strb r2, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x3b
+ ldrb r2, [r5, r0]
+ ldr r0, [sp]
+ cmp r2, r0
+ bge _02237A94
+_02237A2A:
+ ldr r1, [r5, #0x64]
+ add r0, r7, #0
+ bl MOD11_02230014
+ ldr r1, _02237AA4 ; =0x0000217F
+ add r4, r0, #0
+ ldrb r3, [r5, r1]
+ ldr r1, [r5, #0x64]
+ add r2, r5, r1
+ ldr r1, _02237AA8 ; =0x0000219C
+ ldrb r1, [r2, r1]
+ cmp r3, r1
+ beq _02237A9A
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02237A7C
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02237A7C
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02237AAC ; =0x000001EE
+ cmp r0, r1
+ beq _02237A7C
+ add r0, r4, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02237A9A
+_02237A7C:
+ ldrb r0, [r5, r6]
+ add r0, r0, #1
+ strb r0, [r5, r6]
+ ldr r0, _02237AA4 ; =0x0000217F
+ ldrb r2, [r5, r0]
+ ldr r0, [sp]
+ cmp r2, r0
+ blt _02237A2A
+ ldr r0, _02237AC0 ; =0x0000217C
+ mov r1, #1
+ strb r1, [r5, r0]
+ b _02237A9A
+_02237A94:
+ mov r0, #1
+ add r1, #0x38
+ strb r0, [r5, r1]
+_02237A9A:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02237AA0: .word 0x0000217D
+_02237AA4: .word 0x0000217F
+_02237AA8: .word 0x0000219C
+_02237AAC: .word 0x000001EE
+_02237AB0: .word 0x00002144
+_02237AB4: .word 0x00003044
+_02237AB8: .word 0x000003E1
+_02237ABC: .word 0x000001E1
+_02237AC0: .word 0x0000217C
+
+ thumb_func_start MOD11_02237AC4
+MOD11_02237AC4: ; 0x02237AC4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r1, #0x71
+ lsl r1, r1, #2
+ mov r2, #1
+ add r1, r4, r1
+ lsl r0, r0, #3
+ ldr r3, [r1, r0]
+ lsl r2, r2, #0x14
+ orr r2, r3
+ str r2, [r1, r0]
+ ldr r3, [r1, r0]
+ ldr r2, _02237B00 ; =0xFF9FFFFF
+ and r3, r2
+ ldr r2, [r4, #0x64]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #9
+ orr r2, r3
+ str r2, [r1, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02237B00: .word 0xFF9FFFFF
+
+ thumb_func_start MOD11_02237B04
+MOD11_02237B04: ; 0x02237B04
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02237B82
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0x10
+ bl MOD11_0223C230
+ add r4, r0, #0
+ bl FUN_0206A92C
+ ldr r1, _02237B90 ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _02237B78
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _02237B94 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02237B78
+ ldr r0, [r5, #0x64]
+ mov r2, #0x75
+ lsl r0, r0, #6
+ add r0, r5, r0
+ lsl r2, r2, #2
+ ldr r0, [r0, r2]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ bne _02237B78
+ add r1, r5, r2
+ lsl r0, r4, #6
+ ldr r3, [r1, r0]
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x1f
+ bne _02237B78
+ sub r2, #0xbc
+ str r4, [r5, r2]
+ ldr r3, [r1, r0]
+ mov r2, #8
+ orr r2, r3
+ str r2, [r1, r0]
+ b _02237B8A
+_02237B78:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02237B8A
+_02237B82:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02237B8A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02237B90: .word 0x00003108
+_02237B94: .word 0x00002D8C
+
+ thumb_func_start MOD11_02237B98
+MOD11_02237B98: ; 0x02237B98
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #8]
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ str r0, [sp]
+ ldr r1, [r4, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02237BF2
+ ldr r0, [sp, #8]
+ mov r1, #0x84
+ tst r0, r1
+ bne _02237BF2
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02237C90
+_02237BF2:
+ ldr r0, [r4, #0x64]
+ add r1, r4, r0
+ ldr r0, _02237C98 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl FUN_0206A92C
+ ldr r1, [sp]
+ lsl r1, r1, #3
+ add r2, r4, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ bne _02237C30
+ ldr r0, [r4, #0x6c]
+ add r1, r4, r0
+ ldr r0, _02237C98 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl FUN_0206A92C
+ lsl r1, r7, #3
+ add r2, r4, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ beq _02237C3A
+_02237C30:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02237C90
+_02237C3A:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ add r3, r4, r2
+ ldr r2, _02237C9C ; =0x00002DB8
+ ldrh r3, [r3, r2]
+ cmp r3, #0
+ bne _02237C58
+ ldr r3, [r4, #0x6c]
+ mul r0, r3
+ add r0, r4, r0
+ ldrh r0, [r0, r2]
+ cmp r0, #0
+ beq _02237C6E
+_02237C58:
+ add r0, r4, #0
+ bl MOD11_02246CAC
+ cmp r0, #0
+ beq _02237C6E
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02246CAC
+ cmp r0, #0
+ bne _02237C78
+_02237C6E:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02237C90
+_02237C78:
+ ldr r1, [r4, #0x64]
+ ldr r2, [r4, #0x6c]
+ add r0, r4, #0
+ mov r3, #0x3c
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02237C90
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02237C90:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02237C98: .word 0x0000219C
+_02237C9C: .word 0x00002DB8
+
+ thumb_func_start MOD11_02237CA0
+MOD11_02237CA0: ; 0x02237CA0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ mov r2, #0x63
+ lsl r2, r2, #2
+ ldr r3, [r4, #0x64]
+ add r5, r4, r2
+ add r1, r0, #0
+ ldrb r0, [r5, r3]
+ cmp r0, #0
+ beq _02237CCA
+ add r0, r4, #0
+ bl MOD11_0223A424
+ b _02237CDA
+_02237CCA:
+ mov r0, #2
+ strb r0, [r5, r3]
+ ldr r0, [r4, #0x64]
+ add r2, #0x2c
+ add r1, r4, r0
+ ldr r0, _02237CE0 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ strb r0, [r1, r2]
+_02237CDA:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02237CE0: .word 0x0000219C
+
+ thumb_func_start MOD11_02237CE4
+MOD11_02237CE4: ; 0x02237CE4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp, #4]
+ bl MOD11_0223A404
+ ldr r1, [sp, #4]
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ ldr r1, [r1, #0x64]
+ mov r7, #0
+ bl MOD11_0222FFC8
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ ble _02237D8A
+ add r5, sp, #0x18
+_02237D16:
+ ldr r0, [sp, #4]
+ ldr r1, [r0, #0x64]
+ add r2, r0, r1
+ ldr r0, _02237DB8 ; =0x0000219C
+ ldrb r2, [r2, r0]
+ ldr r0, [sp, #0x10]
+ cmp r0, r2
+ beq _02237D7E
+ ldr r0, [sp]
+ ldr r2, [sp, #0x10]
+ bl MOD11_02230014
+ mov r1, #0xad
+ mov r2, #0
+ str r0, [sp, #8]
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02237D7E
+ ldr r0, [sp, #8]
+ mov r1, #0xad
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02237DBC ; =0x000001EE
+ cmp r0, r1
+ beq _02237D7E
+ mov r4, #0
+_02237D4E:
+ add r1, r4, #0
+ ldr r0, [sp, #8]
+ add r1, #0x36
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r6, #0
+ bl MOD11_02246BE8
+ cmp r0, #0
+ bne _02237D78
+ add r0, r6, #0
+ bl MOD11_0224C07C
+ cmp r0, #1
+ bne _02237D78
+ strh r6, [r5]
+ add r5, r5, #2
+ add r7, r7, #1
+_02237D78:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _02237D4E
+_02237D7E:
+ ldr r0, [sp, #0x10]
+ add r1, r0, #1
+ ldr r0, [sp, #0xc]
+ str r1, [sp, #0x10]
+ cmp r1, r0
+ blt _02237D16
+_02237D8A:
+ cmp r7, #0
+ beq _02237DA8
+ bl FUN_0201B9EC
+ add r1, r7, #0
+ blx _s32_div_f
+ lsl r1, r1, #1
+ add r0, sp, #0x18
+ ldrh r2, [r0, r1]
+ mov r1, #0x49
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ b _02237DB0
+_02237DA8:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x14]
+ bl MOD11_0223A424
+_02237DB0:
+ mov r0, #0
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02237DB8: .word 0x0000219C
+_02237DBC: .word 0x000001EE
+
+ thumb_func_start MOD11_02237DC0
+MOD11_02237DC0: ; 0x02237DC0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ str r1, [sp]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp]
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ mov r6, #0
+ add r0, r7, #0
+ add r4, r6, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02237E00
+ ldr r5, [sp]
+_02237DE8:
+ ldr r0, _02237E30 ; =0x00002D8C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02237DF2
+ add r6, r6, #1
+_02237DF2:
+ add r0, r7, #0
+ add r5, #0xc0
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _02237DE8
+_02237E00:
+ ldr r0, [sp]
+ add r0, #0xec
+ ldr r1, [r0]
+ sub r0, r6, #1
+ cmp r1, r0
+ bne _02237E16
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ bl MOD11_0223A424
+ b _02237E2A
+_02237E16:
+ mov r1, #0x75
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ add r3, r0, r1
+ ldr r0, [r0, #0x64]
+ lsl r2, r0, #6
+ ldr r1, [r3, r2]
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r3, r2]
+_02237E2A:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02237E30: .word 0x00002D8C
+
+ thumb_func_start MOD11_02237E34
+MOD11_02237E34: ; 0x02237E34
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ add r0, r6, #0
+ bl MOD11_02230270
+ add r1, r5, #0
+ ldr r4, [r5, #0x64]
+ add r1, #0x84
+ str r4, [r1]
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #3
+ str r1, [r5, #0x64]
+ mov r1, #0x71
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02237E7E
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1e
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ ldr r1, _02237EDC ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02237E7E
+ str r0, [r5, #0x6c]
+ b _02237ECA
+_02237E7E:
+ ldr r0, _02237EE0 ; =0x00003044
+ ldr r3, [r5, r0]
+ lsl r0, r3, #4
+ add r1, r5, r0
+ ldr r0, _02237EE4 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #4
+ beq _02237E92
+ cmp r0, #8
+ bne _02237E96
+_02237E92:
+ str r4, [r5, #0x6c]
+ b _02237ECA
+_02237E96:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ lsl r3, r3, #0x10
+ ldr r2, [r5, #0x64]
+ add r0, r6, #0
+ add r1, r5, #0
+ lsr r3, r3, #0x10
+ bl MOD11_02244C28
+ mov r1, #0xb5
+ lsl r1, r1, #2
+ add r2, r5, r1
+ mov r1, #0x1c
+ mul r1, r0
+ ldr r1, [r2, r1]
+ lsl r2, r1, #0x1e
+ lsr r2, r2, #0x1f
+ bne _02237EC4
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1f
+ beq _02237EC8
+_02237EC4:
+ str r0, [r5, #0x6c]
+ b _02237ECA
+_02237EC8:
+ str r4, [r5, #0x6c]
+_02237ECA:
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r5, r1]
+ mov r0, #8
+ orr r0, r2
+ str r0, [r5, r1]
+ mov r0, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02237EDC: .word 0x00002D8C
+_02237EE0: .word 0x00003044
+_02237EE4: .word 0x000003E6
+
+ thumb_func_start MOD11_02237EE8
+MOD11_02237EE8: ; 0x02237EE8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ ldr r0, [r5, #0x6c]
+ lsl r4, r1, #6
+ add r2, r5, r4
+ lsl r1, r0, #2
+ add r2, r2, r1
+ mov r1, #0x76
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02237F1A
+ bl FUN_0206A92C
+ mov r1, #0x7b
+ add r2, r5, r4
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ tst r0, r1
+ bne _02237F40
+_02237F1A:
+ ldr r0, [r5, #0x6c]
+ add r2, r5, r4
+ lsl r1, r0, #2
+ add r2, r2, r1
+ mov r1, #0x1f
+ lsl r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02237F48
+ bl FUN_0206A92C
+ ldr r1, [r5, #0x64]
+ lsl r1, r1, #6
+ add r2, r5, r1
+ mov r1, #0x81
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ tst r0, r1
+ beq _02237F48
+_02237F40:
+ ldr r0, _02237F54 ; =0x00002158
+ mov r1, #0x14
+ str r1, [r5, r0]
+ b _02237F4E
+_02237F48:
+ ldr r0, _02237F54 ; =0x00002158
+ mov r1, #0xa
+ str r1, [r5, r0]
+_02237F4E:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02237F54: .word 0x00002158
+
+ thumb_func_start MOD11_02237F58
+MOD11_02237F58: ; 0x02237F58
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r4, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02230270
+ lsl r1, r0, #2
+ add r2, r4, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r2, [r2, r1]
+ mov r1, #1
+ tst r1, r2
+ bne _02237F8C
+ mov r1, #2
+ tst r1, r2
+ beq _02237FBC
+_02237F8C:
+ mov r5, #0x6f
+ lsl r5, r5, #2
+ add r2, r4, r5
+ lsl r1, r0, #2
+ ldr r6, [r2, r1]
+ mov r3, #1
+ bic r6, r3
+ str r6, [r2, r1]
+ ldr r6, [r2, r1]
+ mov r3, #2
+ bic r6, r3
+ add r5, #8
+ str r6, [r2, r1]
+ lsl r2, r0, #3
+ add r3, r4, r5
+ ldr r1, [r3, r2]
+ mov r0, #0x1c
+ bic r1, r0
+ str r1, [r3, r2]
+ ldr r1, [r3, r2]
+ ldr r0, _02237FC8 ; =0xFFFFFC7F
+ and r0, r1
+ str r0, [r3, r2]
+ b _02237FC4
+_02237FBC:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02237FC4:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02237FC8: .word 0xFFFFFC7F
+
+ thumb_func_start MOD11_02237FCC
+MOD11_02237FCC: ; 0x02237FCC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ add r3, r4, r0
+ ldr r0, [r4, #0x6c]
+ mov r5, #0xc0
+ add r2, r0, #0
+ mul r2, r5
+ ldr r0, [r3, r2]
+ lsl r5, r5, #5
+ tst r5, r0
+ beq _02237FFE
+ add r0, r4, #0
+ bl MOD11_0223A424
+ b _02238006
+_02237FFE:
+ mov r1, #1
+ lsl r1, r1, #0xc
+ orr r0, r1
+ str r0, [r3, r2]
+_02238006:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223800C
+MOD11_0223800C: ; 0x0223800C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r5, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02230270
+ add r4, r0, #0
+ ldr r2, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r5, r0
+ ldr r0, _02238118 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _02238086
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r3, #0x3c
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02238086
+ add r0, r5, #0
+ ldr r1, _0223811C ; =0x000002CA
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x25
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ ldr r0, [r5, #0x6c]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02238120 ; =0x00002D67
+ add r2, r5, r2
+ ldrb r2, [r2, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r2, [r0]
+ ldr r0, _02238124 ; =0x00003044
+ add r1, #0x40
+ ldr r0, [r5, r0]
+ str r0, [r5, r1]
+ b _02238114
+_02238086:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02238118 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _0223810C
+ mov r1, #0x8a
+ add r0, r5, #0
+ lsl r1, r1, #2
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x21
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xfc
+ str r0, [r1]
+ ldr r0, [r5, #0x6c]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ add r0, r5, r2
+ ldr r2, _02238118 ; =0x00002DB8
+ ldrh r3, [r0, r2]
+ add r0, r1, #0
+ add r0, #0x40
+ str r3, [r5, r0]
+ ldr r3, [r5, #0x6c]
+ mov r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ strh r0, [r1, r2]
+ ldr r0, [r5, #0x6c]
+ add r1, r5, r0
+ ldr r0, _02238128 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl FUN_0206A92C
+ mov r1, #0x71
+ lsl r1, r1, #2
+ add r3, r5, r1
+ lsl r2, r4, #3
+ ldr r4, [r3, r2]
+ ldr r1, _0223812C ; =0xE07FFFFF
+ and r1, r4
+ lsl r4, r4, #3
+ lsr r4, r4, #0x1a
+ orr r0, r4
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #3
+ orr r0, r1
+ str r0, [r3, r2]
+ b _02238114
+_0223810C:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02238114:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02238118: .word 0x00002DB8
+_0223811C: .word 0x000002CA
+_02238120: .word 0x00002D67
+_02238124: .word 0x00003044
+_02238128: .word 0x0000219C
+_0223812C: .word 0xE07FFFFF
+
+ thumb_func_start MOD11_02238130
+MOD11_02238130: ; 0x02238130
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, _02238178 ; =0x00002154
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02238174
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0223817C ; =0x00003044
+ ldr r1, [r4, r1]
+ lsl r1, r1, #4
+ add r2, r4, r1
+ ldr r1, _02238180 ; =0x000003E1
+ ldrb r3, [r2, r1]
+ ldr r1, _02238184 ; =0x00002D8C
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ add r1, r1, #4
+ ldr r1, [r2, r1]
+ mul r0, r3
+ blx _u32_div_f
+ ldr r1, _02238178 ; =0x00002154
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _02238174
+ mov r0, #1
+ str r0, [r4, r1]
+_02238174:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02238178: .word 0x00002154
+_0223817C: .word 0x00003044
+_02238180: .word 0x000003E1
+_02238184: .word 0x00002D8C
+
+ thumb_func_start MOD11_02238188
+MOD11_02238188: ; 0x02238188
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r1, #0
+ str r0, [sp]
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r7, #0
+ bl MOD11_0223A404
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ ldr r1, [r7, #0x64]
+ mov r2, #0
+ bl MOD11_02230308
+ add r4, r0, #0
+ ldr r0, [sp]
+ ldr r1, [r7, #0x64]
+ mov r2, #2
+ bl MOD11_02230308
+ mov r6, #0xb7
+ add r3, r0, #0
+ lsl r6, r6, #6
+ add r1, r4, #0
+ mov r0, #0xc0
+ mov r4, #1
+ add r2, r7, r6
+ mul r1, r0
+ ldr r5, [r2, r1]
+ lsl r4, r4, #0x1e
+ orr r5, r4
+ str r5, [r2, r1]
+ add r1, r3, #0
+ mul r1, r0
+ ldr r3, [r2, r1]
+ orr r3, r4
+ str r3, [r2, r1]
+ ldr r1, [r7, #0x64]
+ mul r0, r1
+ add r0, r7, r0
+ ldr r2, [r0, r6]
+ lsr r0, r4, #0x11
+ tst r0, r2
+ beq _022381F0
+ ldr r1, [sp, #0x14]
+ add r0, r7, #0
+ bl MOD11_0223A424
+ b _02238294
+_022381F0:
+ ldr r0, [sp]
+ bl MOD11_02230270
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ ble _0223826A
+ str r7, [sp, #4]
+_0223820C:
+ ldr r0, [sp]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ beq _02238258
+ mov r2, #0
+ ldr r0, _0223829C ; =0x00002D4C
+ add r4, r2, #0
+_02238220:
+ ldr r1, [r7, #0x64]
+ mov r6, #0xc0
+ mul r6, r1
+ add r1, r7, r6
+ add r6, r1, r4
+ ldr r1, _0223829C ; =0x00002D4C
+ ldr r5, [sp, #4]
+ ldrh r6, [r6, r1]
+ mov r3, #0
+_02238232:
+ ldrh r1, [r5, r0]
+ cmp r6, r1
+ bne _02238240
+ cmp r6, #0
+ beq _02238240
+ cmp r1, #0
+ bne _02238248
+_02238240:
+ add r3, r3, #1
+ add r5, r5, #2
+ cmp r3, #4
+ blt _02238232
+_02238248:
+ cmp r3, #4
+ bne _02238254
+ add r2, r2, #1
+ add r4, r4, #2
+ cmp r2, #4
+ blt _02238220
+_02238254:
+ cmp r3, #4
+ bne _0223826A
+_02238258:
+ ldr r0, [sp, #4]
+ add r0, #0xc0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ add r1, r0, #1
+ ldr r0, [sp, #8]
+ str r1, [sp, #0xc]
+ cmp r1, r0
+ blt _0223820C
+_0223826A:
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ bne _0223827C
+ ldr r1, [sp, #0x14]
+ add r0, r7, #0
+ bl MOD11_0223A424
+ b _02238294
+_0223827C:
+ mov r0, #0xb7
+ ldr r1, [r7, #0x64]
+ lsl r0, r0, #6
+ add r3, r7, r0
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ mov r0, #2
+ ldr r1, [r3, r2]
+ lsl r0, r0, #0xc
+ orr r0, r1
+ str r0, [r3, r2]
+_02238294:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223829C: .word 0x00002D4C
+
+ thumb_func_start MOD11_022382A0
+MOD11_022382A0: ; 0x022382A0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r4, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02230270
+ ldr r6, [r4, #0x74]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r4, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0xe
+ tst r0, r1
+ beq _0223833C
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02230270
+ cmp r7, r0
+ beq _0223833C
+ ldr r0, [r4, #0x64]
+ mov r2, #0xc0
+ add r1, r0, #0
+ mul r1, r2
+ ldr r3, _02238348 ; =0x00002D8C
+ add r0, r4, r1
+ ldr r0, [r0, r3]
+ cmp r0, #0
+ beq _0223833C
+ mov r1, #0xc1
+ lsl r1, r1, #6
+ ldr r6, [r4, r1]
+ cmp r6, #0xa5
+ beq _0223833C
+ add r0, r2, #0
+ add r0, #0x64
+ str r6, [r4, r0]
+ ldr r0, [r4, #0x64]
+ ldr r1, [r4, r1]
+ sub r3, #0x4c
+ lsl r1, r1, #0x10
+ add r3, r4, r3
+ mul r2, r0
+ add r0, r3, r2
+ lsr r1, r1, #0x10
+ bl MOD11_022461AC
+ ldr r3, [r4, #0x64]
+ mov r2, #0xc0
+ mul r2, r3
+ add r2, r4, r2
+ add r2, r2, r0
+ ldr r0, _0223834C ; =0x00002D6C
+ mov r1, #0
+ strb r1, [r2, r0]
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02245190
+ b _02238344
+_0223833C:
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02238344:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238348: .word 0x00002D8C
+_0223834C: .word 0x00002D6C
+
+ thumb_func_start MOD11_02238350
+MOD11_02238350: ; 0x02238350
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ str r1, [sp]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp]
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ mov r6, #0
+ add r0, r7, #0
+ add r4, r6, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02238390
+ ldr r5, [sp]
+_02238378:
+ ldr r0, _022383C0 ; =0x00002D8C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02238382
+ add r6, r6, #1
+_02238382:
+ add r0, r7, #0
+ add r5, #0xc0
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _02238378
+_02238390:
+ ldr r0, [sp]
+ add r0, #0xec
+ ldr r1, [r0]
+ sub r0, r6, #1
+ cmp r1, r0
+ bne _022383A6
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ bl MOD11_0223A424
+ b _022383BA
+_022383A6:
+ mov r1, #0x75
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ add r3, r0, r1
+ ldr r0, [r0, #0x64]
+ lsl r2, r0, #6
+ ldr r1, [r3, r2]
+ mov r0, #0x20
+ orr r0, r1
+ str r0, [r3, r2]
+_022383BA:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022383C0: .word 0x00002D8C
+
+ thumb_func_start MOD11_022383C4
+MOD11_022383C4: ; 0x022383C4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _02238410 ; =0x00002D60
+ ldr r5, _02238414 ; =0x0225DCA8
+ ldr r3, [r2, r1]
+ ldr r1, _02238418 ; =0x0000FFFF
+ mov r0, #0
+_022383E2:
+ ldrh r2, [r5]
+ cmp r2, r3
+ bge _022383F2
+ add r5, r5, #4
+ ldrh r2, [r5]
+ add r0, r0, #1
+ cmp r2, r1
+ bne _022383E2
+_022383F2:
+ lsl r2, r0, #2
+ ldr r0, _02238414 ; =0x0225DCA8
+ ldrh r1, [r0, r2]
+ ldr r0, _02238418 ; =0x0000FFFF
+ cmp r1, r0
+ beq _02238404
+ ldr r0, _0223841C ; =0x0225DCAA
+ ldrh r1, [r0, r2]
+ b _02238406
+_02238404:
+ mov r1, #0x78
+_02238406:
+ ldr r0, _02238420 ; =0x00002154
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02238410: .word 0x00002D60
+_02238414: .word 0x0225DCA8
+_02238418: .word 0x0000FFFF
+_0223841C: .word 0x0225DCAA
+_02238420: .word 0x00002154
+
+ thumb_func_start MOD11_02238424
+MOD11_02238424: ; 0x02238424
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022384CC
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022384CC
+ mov r1, #6
+ lsl r1, r1, #6
+ ldr r2, [r4, r1]
+ ldr r0, _022384D0 ; =0x000080FF
+ tst r0, r2
+ ldr r0, _022384D4 ; =0x00003044
+ beq _022384BE
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r2, r4, r0
+ ldr r0, _022384D8 ; =0x000003E1
+ ldrb r0, [r2, r0]
+ lsl r2, r0, #1
+ ldr r0, _022384DC ; =0x00002154
+ str r2, [r4, r0]
+ ldr r2, [r4, r1]
+ mov r1, #3
+ tst r1, r2
+ beq _02238486
+ mov r1, #0xb
+ add r0, #0xc
+ str r1, [r4, r0]
+_02238486:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0xc
+ tst r0, r1
+ beq _02238498
+ ldr r0, _022384E0 ; =0x00002160
+ mov r1, #5
+ str r1, [r4, r0]
+_02238498:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x30
+ tst r0, r1
+ beq _022384AA
+ ldr r0, _022384E0 ; =0x00002160
+ mov r1, #0xa
+ str r1, [r4, r0]
+_022384AA:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0xc0
+ tst r0, r1
+ beq _022384CC
+ ldr r0, _022384E0 ; =0x00002160
+ mov r1, #0xf
+ str r1, [r4, r0]
+ b _022384CC
+_022384BE:
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022384D8 ; =0x000003E1
+ ldrb r1, [r1, r0]
+ ldr r0, _022384DC ; =0x00002154
+ str r1, [r4, r0]
+_022384CC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022384D0: .word 0x000080FF
+_022384D4: .word 0x00003044
+_022384D8: .word 0x000003E1
+_022384DC: .word 0x00002154
+_022384E0: .word 0x00002160
+
+ thumb_func_start MOD11_022384E4
+MOD11_022384E4: ; 0x022384E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ mov r7, #0
+ str r0, [sp, #0xc]
+ cmp r0, #0
+ bgt _0223850C
+ b _02238612
+_0223850C:
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r0, r6, r0
+ str r6, [sp, #8]
+ add r5, r6, #0
+ str r0, [sp, #4]
+_02238518:
+ ldr r1, [sp, #8]
+ ldr r0, _02238654 ; =0x000021A8
+ ldr r0, [r1, r0]
+ cmp r0, #0x27
+ beq _022385FC
+ ldr r0, _02238658 ; =0x00002D8C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _022385FC
+ ldr r0, _0223865C ; =0x00002DAC
+ ldr r1, [r5, r0]
+ mov r0, #0x27
+ tst r0, r1
+ bne _022385FC
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_02247190
+ cmp r0, #0
+ bne _022385FC
+ ldr r0, [sp]
+ add r1, r7, #0
+ bl MOD11_02230270
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ ldr r1, [r6, #0x78]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x14]
+ cmp r1, r0
+ beq _022385FC
+ ldr r0, _02238660 ; =0x00002DEC
+ ldrh r4, [r5, r0]
+ cmp r4, #0
+ beq _02238570
+ add r0, r0, #2
+ ldrh r0, [r5, r0]
+ lsl r0, r0, #1
+ add r1, r5, r0
+ ldr r0, _02238664 ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ cmp r4, r0
+ beq _0223857A
+_02238570:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_0224683C
+ add r4, r0, #0
+_0223857A:
+ cmp r4, #0
+ beq _022385FC
+ lsl r1, r4, #0x10
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x10
+ bl MOD11_022461AC
+ str r0, [sp, #0x18]
+ lsl r0, r4, #4
+ add r1, r6, r0
+ ldr r0, _02238668 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x80
+ bne _022385FC
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _0223866C ; =0x00002D6C
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _022385FC
+ ldr r0, _0223866C ; =0x00002D6C
+ add r1, r6, r0
+ mov r0, #0xc0
+ mul r0, r7
+ add r5, r1, r0
+ ldr r0, [sp, #0x18]
+ ldrb r0, [r5, r0]
+ sub r1, r0, #1
+ ldr r0, [sp, #0x18]
+ strb r1, [r5, r0]
+ ldr r1, [r6, #0x78]
+ add r0, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2e
+ bne _022385D0
+ ldr r0, [sp, #0x18]
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _022385D0
+ sub r1, r0, #1
+ ldr r0, [sp, #0x18]
+ strb r1, [r5, r0]
+_022385D0:
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_02247264
+ str r7, [r6, #0x64]
+ ldr r0, [r6, #0x78]
+ lsl r2, r7, #1
+ str r0, [r6, #0x6c]
+ ldr r1, _02238670 ; =0x00002158
+ mov r0, #0x14
+ str r0, [r6, r1]
+ ldr r0, _02238674 ; =0x00003044
+ add r2, r6, r2
+ str r4, [r6, r0]
+ add r0, #0x38
+ strh r4, [r2, r0]
+ lsl r0, r7, #4
+ mov r2, #0x27
+ add r0, r6, r0
+ add r1, #0x50
+ str r2, [r0, r1]
+ b _02238612
+_022385FC:
+ ldr r0, [sp, #8]
+ add r7, r7, #1
+ add r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r5, #0xc0
+ add r0, #0xc0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ cmp r7, r0
+ blt _02238518
+_02238612:
+ ldr r0, [sp, #0xc]
+ cmp r7, r0
+ bne _02238622
+ ldr r1, [sp, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223A424
+ b _0223864E
+_02238622:
+ ldr r1, [r6, #0x64]
+ add r0, r6, #0
+ bl MOD11_02249D90
+ add r5, r0, #0
+ ldr r1, [r6, #0x64]
+ add r0, r6, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ cmp r5, #0x36
+ beq _02238642
+ cmp r5, #0x72
+ beq _02238642
+ cmp r5, #0x7c
+ bne _0223864E
+_02238642:
+ ldr r1, [r6, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r6, r0
+ ldr r0, _02238678 ; =0x00002DF8
+ strh r4, [r1, r0]
+_0223864E:
+ mov r0, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238654: .word 0x000021A8
+_02238658: .word 0x00002D8C
+_0223865C: .word 0x00002DAC
+_02238660: .word 0x00002DEC
+_02238664: .word 0x00002D4C
+_02238668: .word 0x000003DE
+_0223866C: .word 0x00002D6C
+_02238670: .word 0x00002158
+_02238674: .word 0x00003044
+_02238678: .word 0x00002DF8
+
+ thumb_func_start MOD11_0223867C
+MOD11_0223867C: ; 0x0223867C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [r4, #0x64]
+ ldr r3, _022386BC ; =0x00002144
+ str r0, [sp]
+ ldr r0, [r4, #0x6c]
+ ldr r2, _022386C0 ; =0x00003044
+ str r0, [sp, #4]
+ ldr r0, [r4, r3]
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r3, #0
+ add r0, #0x28
+ add r0, r4, r0
+ str r0, [sp, #0xc]
+ add r3, #0x1c
+ ldr r2, [r4, r2]
+ ldr r3, [r4, r3]
+ add r0, r5, #0
+ bl MOD11_02246274
+ ldr r1, _022386BC ; =0x00002144
+ str r0, [r4, r1]
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022386BC: .word 0x00002144
+_022386C0: .word 0x00003044
+
+ thumb_func_start MOD11_022386C4
+MOD11_022386C4: ; 0x022386C4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ mov r6, #0
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ ldr r2, [sp, #8]
+ add r1, r4, #0
+ bl MOD11_0223C230
+ cmp r7, #6
+ bhi _022387B6
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02238710: ; jump table
+ .short _0223871E - _02238710 - 2 ; case 0
+ .short _02238734 - _02238710 - 2 ; case 1
+ .short _0223874A - _02238710 - 2 ; case 2
+ .short _02238760 - _02238710 - 2 ; case 3
+ .short _02238776 - _02238710 - 2 ; case 4
+ .short _0223878C - _02238710 - 2 ; case 5
+ .short _022387A2 - _02238710 - 2 ; case 6
+_0223871E:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_02238734:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_0223874A:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_02238760:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_02238776:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_0223878C:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_022387A2:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+_022387B6:
+ cmp r6, #0
+ beq _022387C2
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_022387C2:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022387C8
+MOD11_022387C8: ; 0x022387C8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r2, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ cmp r6, #6
+ bhi _022388BC
+ add r1, r6, r6
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02238808: ; jump table
+ .short _02238816 - _02238808 - 2 ; case 0
+ .short _0223882E - _02238808 - 2 ; case 1
+ .short _02238846 - _02238808 - 2 ; case 2
+ .short _0223885E - _02238808 - 2 ; case 3
+ .short _02238876 - _02238808 - 2 ; case 4
+ .short _0223888E - _02238808 - 2 ; case 5
+ .short _022388A6 - _02238808 - 2 ; case 6
+_02238816:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #1
+ bic r2, r0
+ mov r0, #1
+ and r0, r5
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_0223882E:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #2
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1e
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_02238846:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #4
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1d
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_0223885E:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #8
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1c
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_02238876:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #0x10
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1b
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_0223888E:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #0x20
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1a
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_022388A6:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #0x40
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x19
+ orr r0, r2
+ str r0, [r1, r3]
+_022388BC:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022388C0
+MOD11_022388C0: ; 0x022388C0
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [r4, #0x6c]
+ ldr r1, _022388FC ; =0x000021F0
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r2, [r0, r1]
+ mov r0, #0x19
+ mul r0, r2
+ ldr r2, [r4, #0x64]
+ lsl r2, r2, #2
+ add r2, r4, r2
+ ldr r1, [r2, r1]
+ blx _u32_div_f
+ add r1, r0, #1
+ ldr r0, _02238900 ; =0x00002154
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #0x96
+ ble _022388F6
+ mov r1, #0x96
+ str r1, [r4, r0]
+_022388F6:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_022388FC: .word 0x000021F0
+_02238900: .word 0x00002154
+
+ thumb_func_start MOD11_02238904
+MOD11_02238904: ; 0x02238904
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r5, #0x64]
+ add r0, r6, #0
+ bl MOD11_02230270
+ ldr r1, [r5, #0x64]
+ add r7, r0, #0
+ lsl r1, r1, #6
+ add r2, r5, r1
+ mov r1, #0x83
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ add r0, r6, #0
+ bl MOD11_02230270
+ add r4, r0, #0
+ ldr r0, [r5, #0x64]
+ mov r2, #0x82
+ lsl r0, r0, #6
+ add r0, r5, r0
+ lsl r2, r2, #2
+ ldr r1, [r0, r2]
+ cmp r1, #0
+ beq _022389E4
+ cmp r7, r4
+ beq _022389E4
+ add r2, r2, #4
+ ldr r2, [r0, r2]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r5, r0
+ ldr r0, _022389F0 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _022389E4
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ blx _s32_div_f
+ ldr r1, _022389F4 ; =0x00002144
+ str r0, [r5, r1]
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r1, r5, r0
+ lsl r0, r4, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02238992
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1e
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ ldr r1, _022389F0 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02238992
+ str r0, [r5, #0x6c]
+ b _022389A0
+_02238992:
+ ldr r0, [r5, #0x64]
+ lsl r0, r0, #6
+ add r1, r5, r0
+ mov r0, #0x83
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ str r0, [r5, #0x6c]
+_022389A0:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022389F0 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022389D8
+ ldr r2, [r5, #0x64]
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022482A4
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [r5, #0x6c]
+ ldr r0, _022389F0 ; =0x00002D8C
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022389D8
+ mov r2, #0x26
+ str r2, [r5, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, #0xf3
+ bl MOD11_0223A434
+_022389D8:
+ ldr r1, [r5, #0x64]
+ ldr r2, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0224C438
+ b _022389EC
+_022389E4:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+_022389EC:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022389F0: .word 0x00002D8C
+_022389F4: .word 0x00002144
+
+ thumb_func_start MOD11_022389F8
+MOD11_022389F8: ; 0x022389F8
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [r4, #0x6c]
+ ldr r1, _02238A34 ; =0x000021A8
+ lsl r0, r0, #4
+ add r0, r4, r0
+ ldr r0, [r0, r1]
+ cmp r0, #0x27
+ ldr r0, _02238A38 ; =0x00003044
+ bne _02238A22
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r2, r4, r0
+ ldr r0, _02238A3C ; =0x000003E1
+ ldrb r0, [r2, r0]
+ lsl r0, r0, #1
+ b _02238A2C
+_02238A22:
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r2, r4, r0
+ ldr r0, _02238A3C ; =0x000003E1
+ ldrb r0, [r2, r0]
+_02238A2C:
+ sub r1, #0x54
+ str r0, [r4, r1]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02238A34: .word 0x000021A8
+_02238A38: .word 0x00003044
+_02238A3C: .word 0x000003E1
+
+ thumb_func_start MOD11_02238A40
+MOD11_02238A40: ; 0x02238A40
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ lsl r0, r1, #1
+ add r1, r4, r0
+ ldr r0, _02238A74 ; =0x000030BC
+ ldrh r0, [r1, r0]
+ add r1, r2, r0
+ ldr r0, _02238A78 ; =0x00002D6C
+ ldrb r1, [r1, r0]
+ cmp r1, #4
+ bls _02238A68
+ mov r1, #4
+_02238A68:
+ ldr r0, _02238A7C ; =0x0225DC2C
+ ldrb r1, [r0, r1]
+ ldr r0, _02238A80 ; =0x00002154
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02238A74: .word 0x000030BC
+_02238A78: .word 0x00002D6C
+_02238A7C: .word 0x0225DC2C
+_02238A80: .word 0x00002154
+
+ thumb_func_start MOD11_02238A84
+MOD11_02238A84: ; 0x02238A84
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r3, r4, r0
+ ldr r1, _02238AB4 ; =0x00002D8C
+ mov r0, #0x78
+ ldr r2, [r3, r1]
+ add r1, r1, #4
+ ldr r1, [r3, r1]
+ mul r0, r2
+ blx _u32_div_f
+ add r1, r0, #1
+ ldr r0, _02238AB8 ; =0x00002154
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02238AB4: .word 0x00002D8C
+_02238AB8: .word 0x00002154
+
+ thumb_func_start MOD11_02238ABC
+MOD11_02238ABC: ; 0x02238ABC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r3, _02238B68 ; =0x00002DEC
+ add r0, r5, r0
+ ldrh r4, [r0, r3]
+ cmp r4, #0
+ beq _02238AF0
+ add r2, r3, #2
+ ldrh r2, [r0, r2]
+ sub r3, #0xa0
+ lsl r2, r2, #1
+ add r0, r0, r2
+ ldrh r0, [r0, r3]
+ cmp r4, r0
+ beq _02238AF8
+_02238AF0:
+ add r0, r5, #0
+ bl MOD11_0224683C
+ add r4, r0, #0
+_02238AF8:
+ ldr r0, [r5, #0x6c]
+ lsl r1, r0, #4
+ add r2, r5, r1
+ ldr r1, _02238B6C ; =0x000021A8
+ ldr r1, [r2, r1]
+ cmp r1, #0x27
+ beq _02238B5C
+ lsl r0, r0, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _02238B5C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224C0F0
+ cmp r0, #1
+ bne _02238B5C
+ lsl r0, r4, #4
+ add r1, r5, r0
+ ldr r0, _02238B70 ; =0x000003E1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _02238B5C
+ ldr r2, [r5, #0x64]
+ ldr r3, _02238B74 ; =0x00002DCC
+ add r0, r2, #0
+ mov r6, #0xc0
+ add r1, r5, r3
+ mul r0, r6
+ mov r2, #1
+ ldr r7, [r1, r0]
+ lsl r2, r2, #0x1e
+ orr r2, r7
+ str r2, [r1, r0]
+ add r0, r6, #0
+ add r0, #0xb4
+ ldr r2, [r5, r0]
+ ldr r0, [r5, #0x64]
+ add r3, #0x10
+ add r1, r0, #0
+ mul r1, r6
+ add r0, r5, r1
+ str r2, [r0, r3]
+ add r6, #0x64
+ str r4, [r5, r6]
+ b _02238B64
+_02238B5C:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02238B64:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238B68: .word 0x00002DEC
+_02238B6C: .word 0x000021A8
+_02238B70: .word 0x000003E1
+_02238B74: .word 0x00002DCC
+
+ thumb_func_start MOD11_02238B78
+MOD11_02238B78: ; 0x02238B78
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ ldr r0, _02238BC8 ; =0x00003048
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl MOD11_02246BE8
+ cmp r0, #0
+ bne _02238BBC
+ ldr r0, _02238BC8 ; =0x00003048
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02238BBC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl MOD11_0224C07C
+ cmp r0, #1
+ bne _02238BBC
+ ldr r0, _02238BC8 ; =0x00003048
+ ldr r1, [r5, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ b _02238BC4
+_02238BBC:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+_02238BC4:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02238BC8: .word 0x00003048
+
+ thumb_func_start MOD11_02238BCC
+MOD11_02238BCC: ; 0x02238BCC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r5, _02238C1C ; =0x00002D58
+ mov r1, #0
+ ldr r3, [r4, #0x6c]
+ mov r2, #0xc0
+ mul r2, r3
+ add r3, r4, r2
+ add r0, r1, #0
+ add r2, r3, #0
+ add r6, r5, #0
+_02238BEA:
+ ldrsb r7, [r2, r6]
+ cmp r7, #6
+ ble _02238BF8
+ add r7, r3, r0
+ ldrsb r7, [r7, r5]
+ sub r7, r7, #6
+ add r1, r1, r7
+_02238BF8:
+ add r0, r0, #1
+ add r2, r2, #1
+ cmp r0, #8
+ blt _02238BEA
+ mov r0, #0x14
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _02238C20 ; =0x00002154
+ add r2, #0x3c
+ str r2, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #0xc8
+ ble _02238C16
+ mov r1, #0xc8
+ str r1, [r4, r0]
+_02238C16:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02238C1C: .word 0x00002D58
+_02238C20: .word 0x00002154
+
+ thumb_func_start MOD11_02238C24
+MOD11_02238C24: ; 0x02238C24
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r6, _02238C94 ; =0x00002DEC
+ add r2, r5, r0
+ ldrh r0, [r2, r6]
+ cmp r0, #0
+ beq _02238C58
+ add r3, r6, #2
+ ldrh r3, [r2, r3]
+ sub r6, #0xa0
+ lsl r3, r3, #1
+ add r2, r2, r3
+ ldrh r2, [r2, r6]
+ cmp r0, r2
+ beq _02238C5E
+_02238C58:
+ add r0, r5, #0
+ bl MOD11_0224683C
+_02238C5E:
+ ldr r1, [r5, #0x6c]
+ lsl r2, r1, #4
+ add r3, r5, r2
+ ldr r2, _02238C98 ; =0x000021A8
+ ldr r2, [r3, r2]
+ cmp r2, #0x27
+ beq _02238C88
+ lsl r0, r0, #4
+ add r2, r5, r0
+ ldr r0, _02238C9C ; =0x000003E1
+ ldrb r0, [r2, r0]
+ cmp r0, #0
+ bne _02238C90
+ lsl r0, r1, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _02238C90
+_02238C88:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+_02238C90:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02238C94: .word 0x00002DEC
+_02238C98: .word 0x000021A8
+_02238C9C: .word 0x000003E1
+
+ thumb_func_start MOD11_02238CA0
+MOD11_02238CA0: ; 0x02238CA0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r2, [sp, #8]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #4]
+ cmp r1, #0
+ beq _02238CF2
+ cmp r1, #1
+ beq _02238CF2
+ cmp r1, #2
+ beq _02238D70
+ b _02238E4A
+_02238CF2:
+ cmp r6, #5
+ bls _02238CF8
+ b _02238E4A
+_02238CF8:
+ add r1, r6, r6
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02238D04: ; jump table
+ .short _02238D10 - _02238D04 - 2 ; case 0
+ .short _02238D20 - _02238D04 - 2 ; case 1
+ .short _02238D30 - _02238D04 - 2 ; case 2
+ .short _02238D40 - _02238D04 - 2 ; case 3
+ .short _02238D50 - _02238D04 - 2 ; case 4
+ .short _02238D60 - _02238D04 - 2 ; case 5
+_02238D10:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1b
+ lsr r5, r0, #0x1d
+ b _02238E4A
+_02238D20:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x16
+ lsr r5, r0, #0x1d
+ b _02238E4A
+_02238D30:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x11
+ lsr r5, r0, #0x1d
+ b _02238E4A
+_02238D40:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0xc
+ lsr r5, r0, #0x1d
+ b _02238E4A
+_02238D50:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1e
+ lsr r5, r0, #0x1e
+ b _02238E4A
+_02238D60:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r5, r0, #0x1e
+ b _02238E4A
+_02238D70:
+ cmp r6, #5
+ bhi _02238E4A
+ add r1, r6, r6
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02238D80: ; jump table
+ .short _02238D8C - _02238D80 - 2 ; case 0
+ .short _02238DAC - _02238D80 - 2 ; case 1
+ .short _02238DCC - _02238D80 - 2 ; case 2
+ .short _02238DEC - _02238D80 - 2 ; case 3
+ .short _02238E0C - _02238D80 - 2 ; case 4
+ .short _02238E2C - _02238D80 - 2 ; case 5
+_02238D8C:
+ mov r2, #0x71
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r3, r0, #3
+ ldr r7, [r6, r3]
+ mov r1, #0x1c
+ bic r7, r1
+ sub r2, #8
+ str r7, [r6, r3]
+ add r3, r4, r2
+ lsl r2, r0, #2
+ ldr r1, [r3, r2]
+ mov r0, #1
+ bic r1, r0
+ str r1, [r3, r2]
+ b _02238E4A
+_02238DAC:
+ mov r2, #0x71
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r7, r0, #3
+ ldr r3, [r6, r7]
+ ldr r1, _02238E74 ; =0xFFFFFC7F
+ sub r2, #8
+ and r1, r3
+ add r3, r4, r2
+ lsl r2, r0, #2
+ str r1, [r6, r7]
+ ldr r1, [r3, r2]
+ mov r0, #2
+ bic r1, r0
+ str r1, [r3, r2]
+ b _02238E4A
+_02238DCC:
+ mov r2, #0x71
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r7, r0, #3
+ ldr r3, [r6, r7]
+ ldr r1, _02238E78 ; =0xFFFF8FFF
+ sub r2, #8
+ and r1, r3
+ add r3, r4, r2
+ lsl r2, r0, #2
+ str r1, [r6, r7]
+ ldr r1, [r3, r2]
+ mov r0, #0x40
+ bic r1, r0
+ str r1, [r3, r2]
+ b _02238E4A
+_02238DEC:
+ mov r2, #0x71
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r7, r0, #3
+ ldr r3, [r6, r7]
+ ldr r1, _02238E7C ; =0xFFF1FFFF
+ sub r2, #8
+ and r1, r3
+ add r3, r4, r2
+ lsl r2, r0, #2
+ str r1, [r6, r7]
+ ldr r1, [r3, r2]
+ mov r0, #8
+ bic r1, r0
+ str r1, [r3, r2]
+ b _02238E4A
+_02238E0C:
+ mov r2, #0x72
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r3, r0, #3
+ ldr r7, [r6, r3]
+ mov r1, #3
+ bic r7, r1
+ sub r2, #0xc
+ str r7, [r6, r3]
+ add r3, r4, r2
+ lsl r2, r0, #2
+ ldr r1, [r3, r2]
+ mov r0, #4
+ bic r1, r0
+ str r1, [r3, r2]
+ b _02238E4A
+_02238E2C:
+ mov r2, #0x72
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r3, r0, #3
+ ldr r7, [r6, r3]
+ mov r1, #0xc
+ bic r7, r1
+ sub r2, #0xc
+ str r7, [r6, r3]
+ lsl r3, r0, #2
+ add r1, r4, r2
+ ldr r2, [r1, r3]
+ ldr r0, _02238E80 ; =0xFFFFFBFF
+ and r0, r2
+ str r0, [r1, r3]
+_02238E4A:
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _02238E5C
+ cmp r5, #0
+ bne _02238E5C
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02238E5C:
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _02238E6E
+ cmp r5, #0
+ beq _02238E6E
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02238E6E:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238E74: .word 0xFFFFFC7F
+_02238E78: .word 0xFFFF8FFF
+_02238E7C: .word 0xFFF1FFFF
+_02238E80: .word 0xFFFFFBFF
+
+ thumb_func_start MOD11_02238E84
+MOD11_02238E84: ; 0x02238E84
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #6
+ add r2, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bne _02238EB0
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02238EB0:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02238EB4
+MOD11_02238EB4: ; 0x02238EB4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ ldr r0, [r4, #0x6c]
+ mov r2, #0xc0
+ add r3, r0, #0
+ mul r3, r2
+ add r5, r4, r3
+ ldr r3, _02238EFC ; =0x00002DAC
+ ldr r0, [r5, r3]
+ cmp r0, #0
+ bne _02238EF2
+ add r0, r3, #4
+ ldr r5, [r5, r0]
+ mov r0, #1
+ lsl r0, r0, #0x18
+ tst r0, r5
+ bne _02238EF2
+ ldr r0, [r4, #0x64]
+ mul r2, r0
+ add r0, r4, r2
+ ldr r0, [r0, r3]
+ cmp r0, #0
+ bne _02238EF8
+_02238EF2:
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02238EF8:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02238EFC: .word 0x00002DAC
+
+ thumb_func_start MOD11_02238F00
+MOD11_02238F00: ; 0x02238F00
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022473F8
+ ldr r2, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _02238F48 ; =0x00002DCC
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x13
+ lsr r2, r1, #0x1d
+ sub r1, r0, #1
+ cmp r2, r1
+ blo _02238F3A
+ cmp r0, #2
+ bge _02238F42
+_02238F3A:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02238F42:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02238F48: .word 0x00002DCC
+
+ thumb_func_start MOD11_02238F4C
+MOD11_02238F4C: ; 0x02238F4C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r2, #0x72
+ mov r1, #1
+ add r3, r0, #0
+ eor r3, r1
+ lsl r0, r3, #3
+ add r5, r4, r0
+ lsl r2, r2, #2
+ ldr r5, [r5, r2]
+ lsl r5, r5, #0x1c
+ lsr r5, r5, #0x1e
+ cmp r5, #2
+ bne _02238FA2
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r3, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r3
+ ldr r5, [r2, r0]
+ mov r3, #1
+ bic r5, r3
+ orr r1, r5
+ str r1, [r2, r0]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02238FCA
+_02238FA2:
+ add r5, r2, #0
+ sub r5, #0xc
+ add r5, r4, r5
+ lsl r3, r3, #2
+ ldr r6, [r5, r3]
+ lsl r1, r1, #0xa
+ orr r1, r6
+ str r1, [r5, r3]
+ add r2, r4, r2
+ ldr r4, [r2, r0]
+ mov r3, #0xc
+ add r1, r4, #0
+ bic r1, r3
+ lsl r3, r4, #0x1c
+ lsr r3, r3, #0x1e
+ add r3, r3, #1
+ lsl r3, r3, #0x1e
+ lsr r3, r3, #0x1c
+ orr r1, r3
+ str r1, [r2, r0]
+_02238FCA:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02238FD0
+MOD11_02238FD0: ; 0x02238FD0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_02230270
+ mov r1, #0x72
+ lsl r1, r1, #2
+ add r4, r5, r1
+ lsl r6, r0, #3
+ str r0, [sp]
+ ldr r0, [r4, r6]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1e
+ beq _0223906A
+ sub r1, #0x94
+ str r0, [r5, r1]
+ add r0, r5, #0
+ mov r1, #6
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0x94
+ str r7, [r0]
+ ldr r1, [r5, #0x78]
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #3
+ beq _02239048
+ ldr r1, [r5, #0x78]
+ add r0, r5, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #3
+ bne _02239072
+_02239048:
+ mov r0, #0x6f
+ ldr r1, [sp]
+ lsl r0, r0, #2
+ add r2, r5, r0
+ lsl r1, r1, #2
+ ldr r7, [r2, r1]
+ ldr r3, _02239078 ; =0xFFFFFBFF
+ sub r0, #0x88
+ and r3, r7
+ str r3, [r2, r1]
+ ldr r2, [r4, r6]
+ mov r1, #0xc
+ bic r2, r1
+ str r2, [r4, r6]
+ mov r1, #0
+ str r1, [r5, r0]
+ b _02239072
+_0223906A:
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A424
+_02239072:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02239078: .word 0xFFFFFBFF
+
+ thumb_func_start MOD11_0223907C
+MOD11_0223907C: ; 0x0223907C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ cmp r4, #0
+ bne _0223912C
+ add r0, r6, #0
+ bl MOD11_0222FF84
+ mov r6, #0
+ str r0, [sp]
+ cmp r0, #0
+ ble _02239194
+_022390BE:
+ ldr r0, _0223919C ; =0x000021EC
+ add r1, r5, r6
+ ldrb r4, [r1, r0]
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ bne _022390F6
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02239122
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022391A0 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02239122
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+ b _02239194
+_022390F6:
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02246D84
+ cmp r0, #0
+ beq _02239114
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022391A0 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02239122
+_02239114:
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+ b _02239194
+_02239122:
+ ldr r0, [sp]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _022390BE
+ b _02239194
+_0223912C:
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ bne _0223916A
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02239194
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022391A0 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02239194
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+ b _02239194
+_0223916A:
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02246D84
+ cmp r0, #0
+ beq _02239188
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022391A0 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02239194
+_02239188:
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+_02239194:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223919C: .word 0x000021EC
+_022391A0: .word 0x00002D8C
+
+ thumb_func_start MOD11_022391A4
+MOD11_022391A4: ; 0x022391A4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ bne _02239200
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02239200:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02239204
+MOD11_02239204: ; 0x02239204
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r7, #0
+ ldr r0, [sp]
+ add r1, r7, #0
+ bl MOD11_0222FFC8
+ cmp r0, #0
+ bgt _02239222
+ b _02239360
+_02239222:
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, r7, #0
+ bl MOD11_02230014
+ mov r1, #0xad
+ mov r2, #0
+ add r4, r0, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ cmp r0, #0x35
+ bne _022392EC
+ cmp r6, #0
+ beq _022392EC
+ ldr r0, _02239368 ; =0x000001EE
+ cmp r6, r0
+ beq _022392EC
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ bne _022392EC
+ bl FUN_0201B9EC
+ mov r1, #0xa
+ blx _s32_div_f
+ cmp r1, #0
+ bne _022392EC
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ blx _s32_div_f
+ add r5, r1, #0
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ sub r0, r0, #1
+ mov r1, #0xa
+ blx _u32_div_f
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0xa
+ blo _022392A4
+ mov r2, #9
+_022392A4:
+ mov r1, #0
+ ldr r3, _0223936C ; =0x0225E150
+ str r1, [sp, #0xc]
+_022392AA:
+ ldrb r0, [r3]
+ cmp r0, r5
+ ble _022392C4
+ ldr r3, [sp, #0xc]
+ ldr r5, _02239370 ; =0x0225DD24
+ add r2, r2, r3
+ lsl r2, r2, #1
+ add r0, r4, #0
+ mov r1, #6
+ add r2, r5, r2
+ bl FUN_02067830
+ b _022392EC
+_022392C4:
+ cmp r5, #0x62
+ blt _022392E2
+ cmp r5, #0x63
+ bgt _022392E2
+ mov r3, #0x63
+ sub r3, r3, r5
+ add r2, r2, r3
+ lsl r3, r2, #1
+ ldr r2, _02239374 ; =0x0225DC48
+ add r0, r4, #0
+ mov r1, #6
+ add r2, r2, r3
+ bl FUN_02067830
+ b _022392EC
+_022392E2:
+ add r1, r1, #1
+ add r3, r3, #1
+ str r1, [sp, #0xc]
+ cmp r1, #9
+ blt _022392AA
+_022392EC:
+ ldr r0, [sp, #4]
+ cmp r0, #0x76
+ bne _02239350
+ cmp r6, #0
+ beq _02239350
+ ldr r0, _02239368 ; =0x000001EE
+ cmp r6, r0
+ beq _02239350
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ bne _02239350
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #0xa0
+ str r2, [sp, #0xc]
+ mov r5, #0xa
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, #0xa
+ ble _02239324
+ ldr r0, [sp, #0xc]
+_0223931A:
+ add r5, #0xa
+ add r0, r0, #1
+ cmp r5, r1
+ blt _0223931A
+ str r0, [sp, #0xc]
+_02239324:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0xa
+ blt _0223932E
+ bl ErrorHandling
+_0223932E:
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ blx _s32_div_f
+ ldr r2, [sp, #0xc]
+ ldr r0, _02239378 ; =0x0225E15C
+ ldrb r0, [r0, r2]
+ cmp r1, r0
+ bge _02239350
+ mov r0, #0x5e
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #6
+ add r2, sp, #0xc
+ bl FUN_02067830
+_02239350:
+ ldr r0, [sp]
+ mov r1, #0
+ add r7, r7, #1
+ bl MOD11_0222FFC8
+ cmp r7, r0
+ bge _02239360
+ b _02239222
+_02239360:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02239368: .word 0x000001EE
+_0223936C: .word 0x0225E150
+_02239370: .word 0x0225DD24
+_02239374: .word 0x0225DC48
+_02239378: .word 0x0225E15C
+
+ thumb_func_start MOD11_0223937C
+MOD11_0223937C: ; 0x0223937C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #0xb5
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ add r3, r4, r0
+ mov r0, #0x1c
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r3, r2]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022393A4
+MOD11_022393A4: ; 0x022393A4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_02249B7C
+ cmp r0, #1
+ bne _022393E0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_022393E0:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022393E4
+MOD11_022393E4: ; 0x022393E4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ cmp r6, #0
+ bne _02239438
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r4, r0
+ bne _0223944A
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ b _0223944A
+_02239438:
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r4, r0
+ beq _0223944A
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_0223944A:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02239450
+MOD11_02239450: ; 0x02239450
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ str r0, [r6]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223949C
+MOD11_0223949C: ; 0x0223949C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C12C
+ str r0, [r6]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022394E8
+MOD11_022394E8: ; 0x022394E8
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x79
+ bne _02239516
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_02239516:
+ add r0, r4, #0
+ bl MOD11_02230294
+ ldr r1, _02239570 ; =0x0225E168
+ mov r2, #0x1b
+ ldrb r4, [r1, r0]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r4, r0
+ beq _02239564
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r4, r0
+ beq _02239564
+ ldr r1, [r5, #0x64]
+ lsl r0, r4, #0x18
+ add r3, r1, #0
+ mov r2, #0xc0
+ mul r3, r2
+ ldr r1, _02239574 ; =0x00002D64
+ lsr r0, r0, #0x18
+ add r3, r5, r3
+ strb r0, [r3, r1]
+ ldr r3, [r5, #0x64]
+ add r1, r1, #1
+ add r6, r3, #0
+ mul r6, r2
+ add r3, r5, r6
+ strb r0, [r3, r1]
+ add r2, #0x70
+ str r4, [r5, r2]
+ b _0223956C
+_02239564:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223956C:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02239570: .word 0x0225E168
+_02239574: .word 0x00002D64
+
+ thumb_func_start MOD11_02239578
+MOD11_02239578: ; 0x02239578
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_02230294
+ lsl r1, r0, #1
+ ldr r0, _0223959C ; =0x0225DD0A
+ ldrh r1, [r0, r1]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223959C: .word 0x0225DD0A
+
+ thumb_func_start MOD11_022395A0
+MOD11_022395A0: ; 0x022395A0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_02230294
+ lsl r1, r0, #2
+ ldr r0, _022395C4 ; =0x0225DD48
+ ldr r1, [r0, r1]
+ ldr r0, _022395C8 ; =0x00002174
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022395C4: .word 0x0225DD48
+_022395C8: .word 0x00002174
+
+ thumb_func_start MOD11_022395CC
+MOD11_022395CC: ; 0x022395CC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249DF0
+ cmp r0, #0
+ beq _022395FE
+ ldr r1, _0223960C ; =0x00002154
+ str r0, [r4, r1]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249E04
+ ldr r1, _02239610 ; =0x00002160
+ str r0, [r4, r1]
+ b _02239606
+_022395FE:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0223A424
+_02239606:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0223960C: .word 0x00002154
+_02239610: .word 0x00002160
+
+ thumb_func_start MOD11_02239614
+MOD11_02239614: ; 0x02239614
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02239674 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _0223965A
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r3, #0x3c
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0223965A
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ b _02239670
+_0223965A:
+ ldr r2, [r4, #0x6c]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02249F8C
+ cmp r0, #1
+ beq _02239670
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02239670:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02239674: .word 0x00002DB8
+
+ thumb_func_start MOD11_02239678
+MOD11_02239678: ; 0x02239678
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224A4E0
+ cmp r0, #1
+ beq _022396A4
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_022396A4:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_022396A8
+MOD11_022396A8: ; 0x022396A8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ mov r2, #0
+ str r2, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ str r2, [sp, #8]
+ bl MOD11_02255980
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022396D8
+MOD11_022396D8: ; 0x022396D8
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_0224AD90
+ add r4, r0, #0
+ beq _02239714
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ cmp r4, #0xff
+ bne _0223970C
+ add r0, r5, #0
+ bl MOD11_0223A424
+ b _02239714
+_0223970C:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02239714:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02239718
+MOD11_02239718: ; 0x02239718
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ bl MOD11_0222FF84
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD11_022558E0
+ mov r0, #0
+ str r0, [r4, #0x78]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239748
+MOD11_02239748: ; 0x02239748
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_0224AD90
+ add r5, r0, #0
+ beq _0223977A
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ cmp r5, #0xff
+ bne _02239774
+ add r0, r4, #0
+ bl MOD11_0223A424
+ b _0223977A
+_02239774:
+ ldr r0, _02239780 ; =0x000021A0
+ sub r1, r5, #1
+ strb r1, [r4, r0]
+_0223977A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02239780: .word 0x000021A0
+
+ thumb_func_start MOD11_02239784
+MOD11_02239784: ; 0x02239784
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ beq _022397A2
+ add r0, r4, #0
+ bl MOD11_02256774
+_022397A2:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022397A8
+MOD11_022397A8: ; 0x022397A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ add r2, r0, #0
+ lsl r0, r6, #2
+ add r1, r5, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #0x80
+ tst r0, r1
+ beq _0223989C
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ ldr r0, _022398A8 ; =0x00002D8C
+ add r1, r5, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0223989C
+ lsl r1, r7, #0x18
+ lsl r2, r2, #0x18
+ mov r0, #5
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl MOD11_02246B9C
+ cmp r0, #0x14
+ bgt _0223983A
+ bge _02239862
+ cmp r0, #0
+ bgt _02239834
+ beq _02239872
+ b _0223987E
+_02239834:
+ cmp r0, #0xa
+ beq _0223986A
+ b _0223987E
+_0223983A:
+ cmp r0, #0x50
+ bgt _02239846
+ bge _02239852
+ cmp r0, #0x28
+ beq _0223985A
+ b _0223987E
+_02239846:
+ cmp r0, #0xa0
+ bne _0223987E
+ ldr r0, _022398AC ; =0x0000215C
+ mov r1, #2
+ str r1, [r5, r0]
+ b _02239882
+_02239852:
+ ldr r0, _022398AC ; =0x0000215C
+ mov r1, #4
+ str r1, [r5, r0]
+ b _02239882
+_0223985A:
+ ldr r0, _022398AC ; =0x0000215C
+ mov r1, #8
+ str r1, [r5, r0]
+ b _02239882
+_02239862:
+ ldr r0, _022398AC ; =0x0000215C
+ mov r1, #0x10
+ str r1, [r5, r0]
+ b _02239882
+_0223986A:
+ ldr r0, _022398AC ; =0x0000215C
+ mov r1, #0x20
+ str r1, [r5, r0]
+ b _02239882
+_02239872:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223987E:
+ bl ErrorHandling
+_02239882:
+ ldr r0, _022398B0 ; =0x00002D90
+ add r1, r5, r6
+ ldr r1, [r1, r0]
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r1
+ ldr r1, _022398AC ; =0x0000215C
+ ldr r1, [r5, r1]
+ bl MOD11_022476C0
+ ldr r1, _022398AC ; =0x0000215C
+ str r0, [r5, r1]
+ b _022398A4
+_0223989C:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+_022398A4:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022398A8: .word 0x00002D8C
+_022398AC: .word 0x0000215C
+_022398B0: .word 0x00002D90
+
+ thumb_func_start MOD11_022398B4
+MOD11_022398B4: ; 0x022398B4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x20
+ ldr r0, _0223992C ; =0x00003044
+ bne _022398E6
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02239930 ; =0x000003E5
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x11
+ lsr r4, r0, #0x10
+ b _022398F0
+_022398E6:
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02239930 ; =0x000003E5
+ ldrb r4, [r1, r0]
+_022398F0:
+ cmp r4, #0
+ bne _022398F8
+ bl ErrorHandling
+_022398F8:
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ blx _s32_div_f
+ cmp r1, r4
+ bge _0223991E
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02239934 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0223991E
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0223991E:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0223992C: .word 0x00003044
+_02239930: .word 0x000003E5
+_02239934: .word 0x00002D8C
+
+ thumb_func_start MOD11_02239938
+MOD11_02239938: ; 0x02239938
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ mov r3, #0xb5
+ mov r2, #0xc0
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r5, r0
+ lsl r3, r3, #6
+ ldrh r4, [r0, r3]
+ add r2, #0xf9
+ cmp r4, r2
+ bne _022399BA
+ ldr r4, [r5, #0x6c]
+ mov r2, #0xc0
+ mul r2, r4
+ add r4, r5, r2
+ add r2, r3, #0
+ add r2, #0x4c
+ ldr r2, [r4, r2]
+ cmp r2, #0
+ beq _022399BA
+ add r3, #0x70
+ ldr r2, [r0, r3]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r2
+ bne _022399BA
+ add r0, r7, #0
+ bl MOD11_02230E88
+ bl FUN_02005EE0
+ cmp r0, #0
+ beq _02239998
+ cmp r0, #1
+ beq _0223999C
+ cmp r0, #2
+ beq _022399A0
+_02239998:
+ mov r4, #0
+ b _022399A2
+_0223999C:
+ mov r4, #0xa
+ b _022399A2
+_022399A0:
+ mov r4, #0x1e
+_022399A2:
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ blx _s32_div_f
+ cmp r1, r4
+ ble _022399C2
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _022399C2
+_022399BA:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_022399C2:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022399C8
+MOD11_022399C8: ; 0x022399C8
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ ldr r0, _022399F8 ; =0x000003DE
+ add r2, r4, r0
+ ldr r0, _022399FC ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r0, r2, r0
+ bl FUN_0206AB58
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_022399F8: .word 0x000003DE
+_022399FC: .word 0x00003044
+
+ thumb_func_start MOD11_02239A00
+MOD11_02239A00: ; 0x02239A00
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ ldr r3, [sp]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_022562E4
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02239A40
+MOD11_02239A40: ; 0x02239A40
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_02256308
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239A6C
+MOD11_02239A6C: ; 0x02239A6C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_02256398
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02239A84
+MOD11_02239A84: ; 0x02239A84
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r2, _02239AC0 ; =0x0000219C
+ str r0, [sp]
+ add r3, r4, r1
+ ldrb r2, [r3, r2]
+ add r0, r5, #0
+ mov r3, #0
+ bl MOD11_02230370
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02239AC0: .word 0x0000219C
+
+ thumb_func_start MOD11_02239AC4
+MOD11_02239AC4: ; 0x02239AC4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022470B8
+ cmp r0, #0
+ beq _02239B02
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_02239B02:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239B08
+MOD11_02239B08: ; 0x02239B08
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_022563D0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239B34
+MOD11_02239B34: ; 0x02239B34
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_022563F8
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239B60
+MOD11_02239B60: ; 0x02239B60
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_02256420
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239B8C
+MOD11_02239B8C: ; 0x02239B8C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_02256448
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239BB8
+MOD11_02239BB8: ; 0x02239BB8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_02256470
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239BD0
+MOD11_02239BD0: ; 0x02239BD0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0225648C
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239BE8
+MOD11_02239BE8: ; 0x02239BE8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ ldr r3, [sp]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_022564A8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02239C28
+MOD11_02239C28: ; 0x02239C28
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022564F4
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02239C54
+MOD11_02239C54: ; 0x02239C54
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ mov r2, #0x4e
+ lsl r2, r2, #2
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r4, r2
+ bl MOD11_02248308
+ cmp r0, #0
+ bne _02239C84
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02239C84:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02239C88
+MOD11_02239C88: ; 0x02239C88
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ cmp r2, #3
+ beq _02239CAE
+ cmp r2, #4
+ beq _02239CD6
+ b _02239CFE
+_02239CAE:
+ mov r5, #0
+ cmp r6, #0
+ ble _02239D0E
+ mov r7, #1
+_02239CB6:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02239D14 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ bne _02239CCE
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022565A0
+_02239CCE:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02239CB6
+ b _02239D0E
+_02239CD6:
+ mov r5, #0
+ cmp r6, #0
+ ble _02239D0E
+ mov r7, #1
+_02239CDE:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02239D14 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _02239CF6
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022565A0
+_02239CF6:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02239CDE
+ b _02239D0E
+_02239CFE:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_022565A0
+_02239D0E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02239D14: .word 0x00000195
+
+ thumb_func_start MOD11_02239D18
+MOD11_02239D18: ; 0x02239D18
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ cmp r2, #3
+ beq _02239D3E
+ cmp r2, #4
+ beq _02239D66
+ b _02239D8E
+_02239D3E:
+ mov r5, #0
+ cmp r6, #0
+ ble _02239D9E
+ mov r7, #1
+_02239D46:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02239DA4 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ bne _02239D5E
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022565BC
+_02239D5E:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02239D46
+ b _02239D9E
+_02239D66:
+ mov r5, #0
+ cmp r6, #0
+ ble _02239D9E
+ mov r7, #1
+_02239D6E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02239DA4 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _02239D86
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022565BC
+_02239D86:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02239D6E
+ b _02239D9E
+_02239D8E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_022565BC
+_02239D9E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02239DA4: .word 0x00000195
+
+ thumb_func_start MOD11_02239DA8
+MOD11_02239DA8: ; 0x02239DA8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r0, r1, #0
+ mov r1, #1
+ mov r5, #0
+ bl MOD11_0223A424
+ ldr r0, [sp, #4]
+ bl MOD11_0223A404
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ bl MOD11_0223A404
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ add r2, r4, #0
+ bl MOD11_0223C230
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ mov r1, #8
+ tst r0, r1
+ bne _02239DFA
+ ldr r0, [sp, #0xc]
+ mov r1, #0x10
+ tst r0, r1
+ beq _02239EDA
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02239EDA
+_02239DFA:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_0222FF88
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD11_0222FF88
+ str r0, [sp, #8]
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_0222FF7C
+ add r0, r7, #0
+ mov r4, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _02239E68
+_02239E2A:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02239E5C
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02239F48 ; =0x000001EE
+ cmp r0, r1
+ beq _02239E5C
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ add r5, r5, r0
+_02239E5C:
+ add r0, r7, #0
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _02239E2A
+_02239E68:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x4b
+ beq _02239E76
+ cmp r0, #0xcb
+ beq _02239E76
+ cmp r0, #0x4a
+ bne _02239E82
+_02239E76:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02239ECC
+_02239E82:
+ ldr r0, [sp, #8]
+ mov r4, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _02239ECC
+ ldr r7, _02239F48 ; =0x000001EE
+_02239E90:
+ ldr r0, [sp, #8]
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02239EC0
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, r7
+ beq _02239EC0
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ add r5, r5, r0
+_02239EC0:
+ ldr r0, [sp, #8]
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _02239E90
+_02239ECC:
+ cmp r5, #0
+ bne _02239F42
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x14]
+ bl MOD11_0223A424
+ b _02239F42
+_02239EDA:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_0222FF88
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_0222FF7C
+ add r0, r7, #0
+ mov r4, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _02239F36
+_02239EF8:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02239F2A
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02239F48 ; =0x000001EE
+ cmp r0, r1
+ beq _02239F2A
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ add r5, r5, r0
+_02239F2A:
+ add r0, r7, #0
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _02239EF8
+_02239F36:
+ cmp r5, #0
+ bne _02239F42
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x14]
+ bl MOD11_0223A424
+_02239F42:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02239F48: .word 0x000001EE
+
+ thumb_func_start MOD11_02239F4C
+MOD11_02239F4C: ; 0x02239F4C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r6, r1, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ mov ip, r0
+ ldr r1, [r6, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r6, r0
+ add r5, r0, #1
+ ldr r7, _02239FC0 ; =0x00002D58
+ mov r4, #0
+ mov r3, #1
+ add r0, sp, #0
+_02239F74:
+ ldrsb r1, [r5, r7]
+ cmp r1, #0xc
+ bge _02239F82
+ lsl r1, r4, #2
+ sub r2, r3, #1
+ add r4, r4, #1
+ str r2, [r0, r1]
+_02239F82:
+ add r3, r3, #1
+ add r5, r5, #1
+ cmp r3, #8
+ blt _02239F74
+ cmp r4, #0
+ beq _02239FB0
+ bl FUN_0201B9EC
+ add r1, r4, #0
+ blx _s32_div_f
+ lsl r1, r1, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ ldr r1, _02239FC4 ; =0x00002170
+ add r0, #0x27
+ str r0, [r6, r1]
+ mov r0, #2
+ ldr r2, [r6, r1]
+ lsl r0, r0, #0x1e
+ orr r0, r2
+ str r0, [r6, r1]
+ b _02239FB8
+_02239FB0:
+ add r0, r6, #0
+ mov r1, ip
+ bl MOD11_0223A424
+_02239FB8:
+ mov r0, #0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02239FC0: .word 0x00002D58
+_02239FC4: .word 0x00002170
+
+ thumb_func_start MOD11_02239FC8
+MOD11_02239FC8: ; 0x02239FC8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ ldr r0, _0223A00C ; =0x00002DB8
+ add r5, r2, #0
+ add r6, r4, r0
+ mov r0, #0xc0
+ mul r5, r0
+ lsl r0, r2, #1
+ add r1, r4, r0
+ ldrh r3, [r6, r5]
+ ldr r0, _0223A010 ; =0x00003124
+ strh r3, [r1, r0]
+ mov r0, #0
+ strh r0, [r6, r5]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02245190
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223A00C: .word 0x00002DB8
+_0223A010: .word 0x00003124
+
+ thumb_func_start MOD11_0223A014
+MOD11_0223A014: ; 0x0223A014
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ ldr r0, [r4, #0x64]
+ ldr r2, _0223A054 ; =0x00003124
+ lsl r0, r0, #1
+ add r0, r4, r0
+ ldrh r3, [r0, r2]
+ cmp r3, #0
+ beq _0223A048
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r3, [r4, r0]
+ ldr r0, [r4, #0x64]
+ mov r1, #0
+ lsl r0, r0, #1
+ add r0, r4, r0
+ strh r1, [r0, r2]
+ b _0223A04E
+_0223A048:
+ add r0, r4, #0
+ bl MOD11_0223A424
+_0223A04E:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0223A054: .word 0x00003124
+
+ thumb_func_start MOD11_0223A058
+MOD11_0223A058: ; 0x0223A058
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ mov r2, #0x4e
+ lsl r2, r2, #2
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r4, r2
+ bl MOD11_02249B94
+ cmp r0, #0
+ bne _0223A088
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223A088:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0223A08C
+MOD11_0223A08C: ; 0x0223A08C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_022565D8
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A0A4
+MOD11_0223A0A4: ; 0x0223A0A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022565F4
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A0C0
+MOD11_0223A0C0: ; 0x0223A0C0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0225664C
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A0D8
+MOD11_0223A0D8: ; 0x0223A0D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ mov r4, #0
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02249D90
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD11_02249DA4
+ str r0, [sp]
+ cmp r6, #0x40
+ bne _0223A126
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ blx _s32_div_f
+ ldr r0, [sp]
+ cmp r1, r0
+ bge _0223A126
+ mov r4, #1
+_0223A126:
+ cmp r6, #0x66
+ bne _0223A13E
+ mov r0, #0xc0
+ mul r0, r7
+ add r2, r5, r0
+ ldr r0, _0223A170 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ add r0, r0, #4
+ ldr r0, [r2, r0]
+ cmp r1, r0
+ bne _0223A13E
+ mov r4, #1
+_0223A13E:
+ cmp r4, #0
+ beq _0223A16C
+ mov r1, #0xc0
+ add r0, r7, #0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _0223A170 ; =0x00002D8C
+ ldr r3, [r2, r0]
+ ldr r2, _0223A174 ; =0x0000215C
+ ldr r0, [r5, r2]
+ add r0, r0, r3
+ cmp r0, #0
+ bgt _0223A16C
+ sub r0, r3, #1
+ neg r0, r0
+ str r0, [r5, r2]
+ add r0, r2, #0
+ add r0, #0x10
+ ldr r0, [r5, r0]
+ add r1, #0x40
+ orr r0, r1
+ add r2, #0x10
+ str r0, [r5, r2]
+_0223A16C:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223A170: .word 0x00002D8C
+_0223A174: .word 0x0000215C
+
+ thumb_func_start MOD11_0223A178
+MOD11_0223A178: ; 0x0223A178
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ mov r0, #0xc0
+ add r4, r1, #0
+ mul r4, r0
+ ldr r0, _0223A208 ; =0x00002D8C
+ add r2, r5, r4
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0223A1FA
+ ldr r0, _0223A20C ; =0x0000219C
+ add r2, r5, r1
+ ldrb r2, [r2, r0]
+ cmp r2, #6
+ beq _0223A1FA
+ add r0, r6, #0
+ bl MOD11_02230014
+ add r6, r0, #0
+ mov r1, #0xa
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ add r2, r0, #0
+ ldr r0, _0223A210 ; =0x00002D67
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ cmp r0, #0x1e
+ beq _0223A202
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_02248A14
+ cmp r0, #0
+ bne _0223A202
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ b _0223A202
+_0223A1FA:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_0223A202:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223A208: .word 0x00002D8C
+_0223A20C: .word 0x0000219C
+_0223A210: .word 0x00002D67
+
+ thumb_func_start MOD11_0223A214
+MOD11_0223A214: ; 0x0223A214
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _0223A26C ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #1
+ lsl r1, r1, #0x18
+ tst r1, r2
+ bne _0223A260
+ mov r1, #0x1c
+ mul r1, r0
+ mov r0, #0xba
+ add r1, r4, r1
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #8
+ tst r0, r1
+ beq _0223A268
+_0223A260:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223A268:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223A26C: .word 0x00002DB0
+
+ thumb_func_start MOD11_0223A270
+MOD11_0223A270: ; 0x0223A270
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0223A2B0
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0223A2B8
+_0223A2B0:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223A2B8:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A2C0
+MOD11_0223A2C0: ; 0x0223A2C0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022482A4
+ str r0, [r4, #0x6c]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A2F0
+MOD11_0223A2F0: ; 0x0223A2F0
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ mov r2, #0x4e
+ lsl r2, r2, #2
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r4, r2
+ bl MOD11_0224C258
+ cmp r0, #0
+ bne _0223A320
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223A320:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0223A324
+MOD11_0223A324: ; 0x0223A324
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02256668
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0223A350
+MOD11_0223A350: ; 0x0223A350
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02256714
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0223A37C
+MOD11_0223A37C: ; 0x0223A37C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_02256754
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A3B4
+MOD11_0223A3B4: ; 0x0223A3B4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_0222FFC8
+ cmp r0, #6
+ bne _0223A3E0
+ ldr r0, [r5, #0x64]
+ bl FUN_0206B334
+ cmp r0, #0x12
+ beq _0223A3F0
+_0223A3E0:
+ ldr r0, _0223A3F4 ; =0x00002410
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0223A3F0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223A3F0:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0223A3F4: .word 0x00002410
+
+ thumb_func_start MOD11_0223A3F8
+MOD11_0223A3F8: ; 0x0223A3F8
+ ldr r3, _0223A400 ; =MOD11_022432B4
+ add r0, r1, #0
+ bx r3
+ nop
+_0223A400: .word MOD11_022432B4
+
+ thumb_func_start MOD11_0223A404
+MOD11_0223A404: ; 0x0223A404
+ add r1, r0, #0
+ add r1, #0xb4
+ ldr r1, [r1]
+ lsl r1, r1, #2
+ add r2, r0, r1
+ mov r1, #0x27
+ lsl r1, r1, #8
+ ldr r2, [r2, r1]
+ add r1, r0, #0
+ add r1, #0xb4
+ ldr r1, [r1]
+ add r0, #0xb4
+ add r1, r1, #1
+ str r1, [r0]
+ add r0, r2, #0
+ bx lr
+
+ thumb_func_start MOD11_0223A424
+MOD11_0223A424: ; 0x0223A424
+ add r2, r0, #0
+ add r2, #0xb4
+ ldr r2, [r2]
+ add r0, #0xb4
+ add r1, r2, r1
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A434
+MOD11_0223A434: ; 0x0223A434
+ ldr r3, _0223A438 ; =MOD11_022431DC
+ bx r3
+ .align 2, 0
+_0223A438: .word MOD11_022431DC
+
+ thumb_func_start MOD11_0223A43C
+MOD11_0223A43C: ; 0x0223A43C
+ ldr r3, _0223A440 ; =MOD11_0224321C
+ bx r3
+ .align 2, 0
+_0223A440: .word MOD11_0224321C
+
+ thumb_func_start MOD11_0223A444
+MOD11_0223A444: ; 0x0223A444
+ push {r4, lr}
+ add r4, r1, #0
+ cmp r2, #0x44
+ bls _0223A44E
+ b _0223A738
+_0223A44E:
+ add r1, r2, r2
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223A45A: ; jump table
+ .short _0223A4E4 - _0223A45A - 2 ; case 0
+ .short _0223A4E8 - _0223A45A - 2 ; case 1
+ .short _0223A4EE - _0223A45A - 2 ; case 2
+ .short _0223A4F4 - _0223A45A - 2 ; case 3
+ .short _0223A4FA - _0223A45A - 2 ; case 4
+ .short _0223A500 - _0223A45A - 2 ; case 5
+ .short _0223A506 - _0223A45A - 2 ; case 6
+ .short _0223A50C - _0223A45A - 2 ; case 7
+ .short _0223A514 - _0223A45A - 2 ; case 8
+ .short _0223A51A - _0223A45A - 2 ; case 9
+ .short _0223A522 - _0223A45A - 2 ; case 10
+ .short _0223A528 - _0223A45A - 2 ; case 11
+ .short _0223A53A - _0223A45A - 2 ; case 12
+ .short _0223A54C - _0223A45A - 2 ; case 13
+ .short _0223A562 - _0223A45A - 2 ; case 14
+ .short _0223A568 - _0223A45A - 2 ; case 15
+ .short _0223A56E - _0223A45A - 2 ; case 16
+ .short _0223A574 - _0223A45A - 2 ; case 17
+ .short _0223A57A - _0223A45A - 2 ; case 18
+ .short _0223A580 - _0223A45A - 2 ; case 19
+ .short _0223A586 - _0223A45A - 2 ; case 20
+ .short _0223A58E - _0223A45A - 2 ; case 21
+ .short _0223A59A - _0223A45A - 2 ; case 22
+ .short _0223A5A2 - _0223A45A - 2 ; case 23
+ .short _0223A5AA - _0223A45A - 2 ; case 24
+ .short _0223A5B0 - _0223A45A - 2 ; case 25
+ .short _0223A5B8 - _0223A45A - 2 ; case 26
+ .short _0223A5C0 - _0223A45A - 2 ; case 27
+ .short _0223A5C8 - _0223A45A - 2 ; case 28
+ .short _0223A5D0 - _0223A45A - 2 ; case 29
+ .short _0223A5D6 - _0223A45A - 2 ; case 30
+ .short _0223A5DC - _0223A45A - 2 ; case 31
+ .short _0223A5E2 - _0223A45A - 2 ; case 32
+ .short _0223A5E8 - _0223A45A - 2 ; case 33
+ .short _0223A5EE - _0223A45A - 2 ; case 34
+ .short _0223A5F4 - _0223A45A - 2 ; case 35
+ .short _0223A5FC - _0223A45A - 2 ; case 36
+ .short _0223A604 - _0223A45A - 2 ; case 37
+ .short _0223A60C - _0223A45A - 2 ; case 38
+ .short _0223A614 - _0223A45A - 2 ; case 39
+ .short _0223A61A - _0223A45A - 2 ; case 40
+ .short _0223A622 - _0223A45A - 2 ; case 41
+ .short _0223A630 - _0223A45A - 2 ; case 42
+ .short _0223A63E - _0223A45A - 2 ; case 43
+ .short _0223A646 - _0223A45A - 2 ; case 44
+ .short _0223A64C - _0223A45A - 2 ; case 45
+ .short _0223A65A - _0223A45A - 2 ; case 46
+ .short _0223A668 - _0223A45A - 2 ; case 47
+ .short _0223A678 - _0223A45A - 2 ; case 48
+ .short _0223A688 - _0223A45A - 2 ; case 49
+ .short _0223A69A - _0223A45A - 2 ; case 50
+ .short _0223A6A0 - _0223A45A - 2 ; case 51
+ .short _0223A6A6 - _0223A45A - 2 ; case 52
+ .short _0223A6AC - _0223A45A - 2 ; case 53
+ .short _0223A6B8 - _0223A45A - 2 ; case 54
+ .short _0223A6BE - _0223A45A - 2 ; case 55
+ .short _0223A6C4 - _0223A45A - 2 ; case 56
+ .short _0223A6CA - _0223A45A - 2 ; case 57
+ .short _0223A6D0 - _0223A45A - 2 ; case 58
+ .short _0223A6D6 - _0223A45A - 2 ; case 59
+ .short _0223A6DC - _0223A45A - 2 ; case 60
+ .short _0223A6E4 - _0223A45A - 2 ; case 61
+ .short _0223A6EA - _0223A45A - 2 ; case 62
+ .short _0223A6EE - _0223A45A - 2 ; case 63
+ .short _0223A6F4 - _0223A45A - 2 ; case 64
+ .short _0223A6FA - _0223A45A - 2 ; case 65
+ .short _0223A70A - _0223A45A - 2 ; case 66
+ .short _0223A71A - _0223A45A - 2 ; case 67
+ .short _0223A728 - _0223A45A - 2 ; case 68
+_0223A4E4:
+ add r0, #0x2c
+ pop {r4, pc}
+_0223A4E8:
+ ldr r0, _0223A73C ; =0x0000214C
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A4EE:
+ ldr r0, _0223A740 ; =0x00002170
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A4F4:
+ ldr r0, _0223A744 ; =0x00002174
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A4FA:
+ ldr r0, _0223A748 ; =0x00002178
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A500:
+ add r4, #0x88
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A506:
+ ldr r0, _0223A74C ; =0x0000213C
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A50C:
+ mov r0, #6
+ lsl r0, r0, #6
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A514:
+ ldr r0, _0223A750 ; =0x00002158
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A51A:
+ mov r0, #0x4d
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A522:
+ ldr r0, _0223A754 ; =0x0000216C
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A528:
+ ldr r1, [r4, #0x64]
+ bl MOD11_02230270
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ add r1, r4, r1
+ lsl r0, r0, #2
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A53A:
+ ldr r1, [r4, #0x6c]
+ bl MOD11_02230270
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ add r1, r4, r1
+ lsl r0, r0, #2
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A54C:
+ add r1, r4, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ bl MOD11_02230270
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ add r1, r4, r1
+ lsl r0, r0, #2
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A562:
+ ldr r0, _0223A758 ; =0x00002144
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A568:
+ add r4, #0x64
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A56E:
+ add r4, #0x6c
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A574:
+ add r4, #0x94
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A57A:
+ add r4, #0x74
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A580:
+ add r4, #0x78
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A586:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A58E:
+ ldr r0, _0223A75C ; =0x000030E4
+ add r1, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A59A:
+ mov r0, #0x13
+ lsl r0, r0, #4
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5A2:
+ mov r0, #0x53
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5AA:
+ ldr r0, _0223A760 ; =0x00003044
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5B0:
+ mov r0, #0x15
+ lsl r0, r0, #4
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5B8:
+ mov r0, #0x47
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5C0:
+ mov r0, #0x12
+ lsl r0, r0, #4
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5C8:
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5D0:
+ add r4, #0x98
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A5D6:
+ ldr r0, _0223A764 ; =0x00002154
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5DC:
+ add r4, #0x38
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A5E2:
+ ldr r0, _0223A768 ; =0x0000215C
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5E8:
+ ldr r1, _0223A76C ; =0x0000241C
+ add r0, r0, r1
+ pop {r4, pc}
+_0223A5EE:
+ add r4, #0x8c
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A5F4:
+ mov r0, #0x49
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5FC:
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A604:
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A60C:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A614:
+ ldr r0, _0223A770 ; =0x00003104
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A61A:
+ mov r0, #0x86
+ lsl r0, r0, #6
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A622:
+ mov r0, #0x7b
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A630:
+ mov r0, #0x81
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A63E:
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A646:
+ ldr r0, _0223A774 ; =0x00002150
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A64C:
+ mov r0, #0x82
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A65A:
+ mov r0, #0x82
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A668:
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r1, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0223A678:
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r1, [r4, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0223A688:
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r2, r4, r0
+ add r4, #0x94
+ ldr r1, [r4]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0223A69A:
+ ldr r0, _0223A778 ; =0x00003114
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6A0:
+ ldr r0, _0223A77C ; =0x00003118
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6A6:
+ ldr r1, _0223A780 ; =0x00002408
+ add r0, r0, r1
+ pop {r4, pc}
+_0223A6AC:
+ ldr r0, _0223A784 ; =0x0000304C
+ add r1, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A6B8:
+ ldr r0, _0223A788 ; =0x00002148
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6BE:
+ ldr r1, _0223A78C ; =0x00002410
+ add r0, r0, r1
+ pop {r4, pc}
+_0223A6C4:
+ add r4, #0x7c
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A6CA:
+ ldr r0, _0223A790 ; =0x00002160
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6D0:
+ ldr r0, _0223A794 ; =0x00002164
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6D6:
+ ldr r1, _0223A798 ; =0x00002418
+ add r0, r0, r1
+ pop {r4, pc}
+_0223A6DC:
+ mov r0, #0x85
+ lsl r0, r0, #6
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6E4:
+ add r4, #0xec
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A6EA:
+ add r0, #0x44
+ pop {r4, pc}
+_0223A6EE:
+ add r4, #0x68
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A6F4:
+ add r4, #0x70
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A6FA:
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r1, [r4, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0223A70A:
+ mov r0, #0x21
+ lsl r0, r0, #4
+ add r1, r4, r0
+ sub r0, #0xf8
+ ldr r0, [r4, r0]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A71A:
+ mov r0, #0x21
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A728:
+ mov r0, #0xbb
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r1, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0223A738:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_0223A73C: .word 0x0000214C
+_0223A740: .word 0x00002170
+_0223A744: .word 0x00002174
+_0223A748: .word 0x00002178
+_0223A74C: .word 0x0000213C
+_0223A750: .word 0x00002158
+_0223A754: .word 0x0000216C
+_0223A758: .word 0x00002144
+_0223A75C: .word 0x000030E4
+_0223A760: .word 0x00003044
+_0223A764: .word 0x00002154
+_0223A768: .word 0x0000215C
+_0223A76C: .word 0x0000241C
+_0223A770: .word 0x00003104
+_0223A774: .word 0x00002150
+_0223A778: .word 0x00003114
+_0223A77C: .word 0x00003118
+_0223A780: .word 0x00002408
+_0223A784: .word 0x0000304C
+_0223A788: .word 0x00002148
+_0223A78C: .word 0x00002410
+_0223A790: .word 0x00002160
+_0223A794: .word 0x00002164
+_0223A798: .word 0x00002418
+
+ thumb_func_start MOD11_0223A79C
+MOD11_0223A79C: ; 0x0223A79C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xd4
+ add r4, r1, #0
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ str r0, [sp, #0x3c]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ str r0, [sp, #0x38]
+ ldr r0, [r4, #4]
+ mov r7, #0
+ ldr r0, [r0, #0x74]
+ ldr r5, [r4, #0x48]
+ asr r1, r0, #1
+ mov r0, #1
+ and r0, r1
+ str r0, [sp, #0x40]
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_0222FFC8
+ cmp r5, r0
+ bge _0223A81E
+ ldr r0, [sp, #0x40]
+ lsl r0, r0, #2
+ str r0, [sp, #0x24]
+_0223A7D6:
+ ldr r0, [r4]
+ mov r1, #0
+ add r2, r5, #0
+ bl MOD11_02230014
+ mov r1, #6
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #1
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0x32
+ beq _0223A81E
+ add r0, r5, #0
+ bl FUN_0206A92C
+ add r2, r0, #0
+ ldr r1, [r4, #4]
+ ldr r0, [sp, #0x24]
+ add r0, r0, r1
+ add r0, #0xa4
+ ldr r0, [r0]
+ tst r0, r2
+ bne _0223A81E
+ ldr r0, [r4]
+ mov r1, #0
+ add r5, r5, #1
+ bl MOD11_0222FFC8
+ cmp r5, r0
+ blt _0223A7D6
+_0223A81E:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_0222FFC8
+ cmp r5, r0
+ bne _0223A830
+ mov r0, #0x26
+ str r0, [r4, #0x28]
+ b _0223A84C
+_0223A830:
+ ldr r0, [sp, #0x38]
+ mov r2, #2
+ tst r0, r2
+ beq _0223A84C
+ ldr r0, [sp, #0x38]
+ mov r1, #0x40
+ tst r0, r1
+ bne _0223A84C
+ ldr r1, [r4, #4]
+ ldr r0, _0223AB98 ; =0x0000219E
+ ldrb r0, [r1, r0]
+ cmp r0, r5
+ bne _0223A84C
+ add r7, r2, #0
+_0223A84C:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x26
+ bls _0223A856
+ bl _0223B2AE
+_0223A856:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223A862: ; jump table
+ .short _0223A8B0 - _0223A862 - 2 ; case 0
+ .short _0223AA74 - _0223A862 - 2 ; case 1
+ .short _0223AA8C - _0223A862 - 2 ; case 2
+ .short _0223AA9E - _0223A862 - 2 ; case 3
+ .short _0223AACA - _0223A862 - 2 ; case 4
+ .short _0223AADE - _0223A862 - 2 ; case 5
+ .short _0223AB16 - _0223A862 - 2 ; case 6
+ .short _0223AC16 - _0223A862 - 2 ; case 7
+ .short _0223AC32 - _0223A862 - 2 ; case 8
+ .short _0223AC50 - _0223A862 - 2 ; case 9
+ .short _0223ACF8 - _0223A862 - 2 ; case 10
+ .short _0223AE3C - _0223A862 - 2 ; case 11
+ .short _0223ADBA - _0223A862 - 2 ; case 12
+ .short _0223AE3C - _0223A862 - 2 ; case 13
+ .short _0223AE5E - _0223A862 - 2 ; case 14
+ .short _0223AEC0 - _0223A862 - 2 ; case 15
+ .short _0223AF42 - _0223A862 - 2 ; case 16
+ .short _0223AFDA - _0223A862 - 2 ; case 17
+ .short _0223AFAC - _0223A862 - 2 ; case 18
+ .short _0223AFDA - _0223A862 - 2 ; case 19
+ .short _0223AFF2 - _0223A862 - 2 ; case 20
+ .short _0223B012 - _0223A862 - 2 ; case 21
+ .short _0223B05A - _0223A862 - 2 ; case 22
+ .short _0223B07E - _0223A862 - 2 ; case 23
+ .short _0223B16A - _0223A862 - 2 ; case 24
+ .short _0223AFDA - _0223A862 - 2 ; case 25
+ .short _0223B192 - _0223A862 - 2 ; case 26
+ .short _0223AFDA - _0223A862 - 2 ; case 27
+ .short _0223B1CE - _0223A862 - 2 ; case 28
+ .short _0223AFDA - _0223A862 - 2 ; case 29
+ .short _0223B1F6 - _0223A862 - 2 ; case 30
+ .short _0223B0B6 - _0223A862 - 2 ; case 31
+ .short _0223AFDA - _0223A862 - 2 ; case 32
+ .short _0223B0E0 - _0223A862 - 2 ; case 33
+ .short _0223B102 - _0223A862 - 2 ; case 34
+ .short _0223B152 - _0223A862 - 2 ; case 35
+ .short _0223B25C - _0223A862 - 2 ; case 36
+ .short _0223B272 - _0223A862 - 2 ; case 37
+ .short _0223B298 - _0223A862 - 2 ; case 38
+_0223A8B0:
+ add r0, r6, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #1
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x38]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x1c]
+ bne _0223A90E
+ ldr r1, [r4, #4]
+ ldr r0, _0223AB9C ; =0x00002E4C
+ ldr r2, _0223ABA0 ; =0x00002FCC
+ ldr r0, [r1, r0]
+ ldr r1, [r1, r2]
+ add r0, r0, r1
+ bne _0223A90E
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0223A90E
+ ldr r1, [r4, #4]
+ ldr r0, _0223ABA4 ; =0x00003144
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _0223A90E
+ ldr r0, _0223ABA8 ; =0x00000467
+ bl FUN_0200521C
+ ldr r1, [r4, #4]
+ ldr r0, _0223ABA4 ; =0x00003144
+ mov r2, #1
+ str r2, [r1, r0]
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD11_02231484
+_0223A90E:
+ mov r0, #0
+ str r0, [sp, #0x34]
+ mov r1, #1
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ ldr r2, [sp, #0x34]
+ add r0, r6, #0
+ mov r1, #0xa2
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0223A928
+ b _0223AA34
+_0223A928:
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0x64
+ beq _0223AA34
+ ldr r0, [r4, #4]
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ bl FUN_0206A92C
+ ldr r1, [sp, #0x40]
+ lsl r2, r1, #2
+ ldr r1, [sp, #0x20]
+ add r1, r1, r2
+ add r1, #0xa4
+ ldr r1, [r1]
+ tst r0, r1
+ beq _0223A958
+ ldr r0, [sp, #0x20]
+ add r0, #0x9c
+ ldr r0, [r0]
+ str r0, [sp, #0x34]
+_0223A958:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x32
+ bne _0223A96C
+ ldr r0, [sp, #0x20]
+ add r0, #0xa0
+ str r0, [sp, #0x20]
+ ldr r1, [r0]
+ ldr r0, [sp, #0x34]
+ add r0, r0, r1
+ str r0, [sp, #0x34]
+_0223A96C:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x41
+ bne _0223A980
+ ldr r1, [sp, #0x34]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ blx _u32_div_f
+ str r0, [sp, #0x34]
+_0223A980:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0223A994
+ ldr r1, [sp, #0x34]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ blx _u32_div_f
+ str r0, [sp, #0x34]
+_0223A994:
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD11_0224AE14
+ cmp r0, #0
+ bne _0223A9D6
+ add r0, r6, #0
+ mov r1, #0xc
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _0223ABAC ; =0x020ECAC4
+ ldrb r1, [r1]
+ cmp r1, r0
+ beq _0223A9C2
+ ldr r1, [sp, #0x34]
+ mov r0, #0xaa
+ mul r0, r1
+ mov r1, #0x64
+ blx _u32_div_f
+ str r0, [sp, #0x34]
+ b _0223A9D0
+_0223A9C2:
+ ldr r1, [sp, #0x34]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ blx _u32_div_f
+ str r0, [sp, #0x34]
+_0223A9D0:
+ mov r1, #2
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+_0223A9D6:
+ add r0, r6, #0
+ mov r1, #8
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0x48]
+ add r0, r6, #0
+ bl FUN_02068734
+ ldr r1, [sp, #0x48]
+ sub r0, r1, r0
+ str r0, [r4, #0x3c]
+ ldr r1, [sp, #0x48]
+ ldr r0, [sp, #0x34]
+ add r2, r1, r0
+ str r2, [sp, #0x48]
+ ldr r3, [r4, #4]
+ ldr r0, _0223ABB0 ; =0x0000219C
+ add r1, r3, r7
+ ldrb r0, [r1, r0]
+ cmp r5, r0
+ bne _0223AA0C
+ mov r0, #0xc0
+ mul r0, r7
+ add r1, r3, r0
+ ldr r0, _0223ABB4 ; =0x00002DA4
+ str r2, [r1, r0]
+_0223AA0C:
+ add r0, r6, #0
+ mov r1, #8
+ add r2, sp, #0x48
+ bl FUN_02067830
+ ldr r6, [r4, #4]
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_0222FF88
+ ldr r3, [r6, #0x74]
+ mov r2, #0xc0
+ mul r2, r3
+ add r3, r6, r2
+ mov r2, #0xb5
+ lsl r2, r2, #6
+ ldrh r2, [r3, r2]
+ add r1, r5, #0
+ bl MOD11_0223B2DC
+_0223AA34:
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ beq _0223AA6C
+ mov r1, #0x11
+ add r0, sp, #0xb0
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [sp, #0x34]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AA6C:
+ mov r0, #0x25
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AA74:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223AB20
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AA8C:
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223AB20
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AA9E:
+ ldr r1, [r4, #4]
+ ldr r0, _0223ABB0 ; =0x0000219C
+ add r2, r1, r7
+ ldrb r0, [r2, r0]
+ cmp r5, r0
+ bne _0223AAC2
+ ldr r0, [r4]
+ ldr r3, [r4, #0x3c]
+ add r2, r7, #0
+ bl MOD11_02255B68
+ mov r0, #0
+ str r0, [r4, #0x3c]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AAC2:
+ mov r0, #5
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AACA:
+ ldr r0, [r4, #4]
+ bl MOD11_02243388
+ cmp r0, #0
+ beq _0223AB20
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AADE:
+ add r0, r6, #0
+ bl FUN_020690E8
+ cmp r0, #0
+ beq _0223AB0E
+ ldr r1, [r4, #4]
+ ldr r0, _0223ABB0 ; =0x0000219C
+ add r2, r1, r7
+ ldrb r0, [r2, r0]
+ cmp r5, r0
+ bne _0223AB06
+ ldr r0, [r4]
+ add r2, r7, #0
+ mov r3, #8
+ bl MOD11_02255E4C
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_02255FA0
+_0223AB06:
+ mov r0, #6
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AB0E:
+ mov r0, #0x25
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AB16:
+ ldr r0, [r4, #4]
+ bl MOD11_02243388
+ cmp r0, #0
+ bne _0223AB22
+_0223AB20:
+ b _0223B2AE
+_0223AB22:
+ ldr r3, _0223ABB8 ; =0x0225DCC0
+ add r2, sp, #0x98
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0x30]
+ mov r0, #5
+ mov r1, #0x18
+ bl FUN_02016998
+ mov r1, #0x5f
+ ldr r2, [r4, #4]
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, r1]
+ mov r1, #0
+ str r0, [sp, #0x2c]
+ str r1, [sp, #0x4c]
+_0223AB58:
+ lsl r2, r1, #2
+ add r1, sp, #0x98
+ ldr r1, [r1, r2]
+ add r0, r6, #0
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x4c]
+ lsl r2, r1, #2
+ ldr r1, [sp, #0x2c]
+ str r0, [r1, r2]
+ ldr r0, [sp, #0x4c]
+ add r1, r0, #1
+ str r1, [sp, #0x4c]
+ cmp r1, #6
+ blt _0223AB58
+ ldr r0, [r4]
+ bl MOD11_022302B0
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ add r0, r6, #0
+ mov r1, #0
+ lsr r2, r2, #0x10
+ bl FUN_020688E8
+ add r0, r6, #0
+ bl FUN_02066F04
+ ldr r1, [r4, #4]
+ ldr r0, _0223ABB0 ; =0x0000219C
+ b _0223ABBC
+ .align 2, 0
+_0223AB98: .word 0x0000219E
+_0223AB9C: .word 0x00002E4C
+_0223ABA0: .word 0x00002FCC
+_0223ABA4: .word 0x00003144
+_0223ABA8: .word 0x00000467
+_0223ABAC: .word 0x020ECAC4
+_0223ABB0: .word 0x0000219C
+_0223ABB4: .word 0x00002DA4
+_0223ABB8: .word 0x0225DCC0
+_0223ABBC:
+ add r2, r1, r7
+ ldrb r3, [r2, r0]
+ cmp r5, r3
+ bne _0223ABCC
+ ldr r0, [r4]
+ add r2, r7, #0
+ bl MOD11_02243054
+_0223ABCC:
+ add r0, r5, #0
+ bl FUN_0206A92C
+ ldr r1, [r4, #4]
+ ldr r2, _0223AF48 ; =0x00003109
+ ldrb r3, [r1, r2]
+ orr r0, r3
+ strb r0, [r1, r2]
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r7, #0
+ bl MOD11_02256020
+ mov r1, #3
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0x11
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #7
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AC16:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _0223AC26
+ b _0223B2AE
+_0223AC26:
+ mov r0, #8
+ str r0, [r4, #0x28]
+ mov r0, #0
+ add sp, #0xd4
+ str r0, [r4, #0x38]
+ pop {r4, r5, r6, r7, pc}
+_0223AC32:
+ ldr r0, [r4, #4]
+ add r1, r0, r7
+ ldr r0, _0223AF4C ; =0x0000219C
+ ldrb r0, [r1, r0]
+ cmp r5, r0
+ beq _0223AC48
+ ldr r0, [r4]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223CDC4
+_0223AC48:
+ mov r0, #9
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AC50:
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ add r6, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_0222FF6C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ add r7, r0, #0
+ ldr r0, _0223AF50 ; =0x04000008
+ mov r2, #3
+ ldrh r1, [r0]
+ bic r1, r2
+ mov r2, #2
+ orr r1, r2
+ strh r1, [r0]
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #0
+ bl FUN_020178BC
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD11_02231564
+ mov r0, #5
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #2
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0200CABC
+ bl FUN_0200CAFC
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x80
+ str r0, [sp, #8]
+ add r0, r7, #0
+ mov r1, #0x26
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #7
+ str r0, [sp]
+ mov r0, #0xe
+ str r0, [sp, #4]
+ mov r0, #0xc
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ mov r0, #0xa
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #2
+ mov r3, #0x11
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #8
+ bl FUN_0200CCA4
+ mov r0, #0xa
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223ACF8:
+ ldr r3, _0223AF54 ; =0x0225DCD8
+ add r2, sp, #0x80
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r3, _0223AF58 ; =0x0225DC60
+ add r2, sp, #0x68
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_0222FF6C
+ add r7, r0, #0
+ mov r0, #0x5f
+ ldr r1, [r4, #4]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ str r0, [sp, #0x28]
+ mov r0, #0
+ str r0, [sp, #0x4c]
+_0223AD30:
+ ldr r2, _0223AF5C ; =0x000003B3
+ add r1, sp, #0xb0
+ strh r2, [r1, #2]
+ mov r2, #4
+ strb r2, [r1, #1]
+ lsl r2, r0, #2
+ add r1, sp, #0x80
+ ldr r1, [r1, r2]
+ lsl r0, r0, #4
+ str r1, [sp, #0xb4]
+ mov r1, #0
+ str r1, [sp]
+ str r0, [sp, #4]
+ add r0, r1, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ ldr r2, [sp, #0x3c]
+ add r1, r7, #0
+ add r3, sp, #0xb0
+ bl MOD11_022317E0
+ mov r1, #0xed
+ ldr r5, [sp, #0x4c]
+ lsl r1, r1, #2
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #7
+ strb r1, [r0, #1]
+ lsl r2, r5, #2
+ add r1, sp, #0x68
+ ldr r1, [r1, r2]
+ add r0, r6, #0
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x28]
+ lsl r2, r5, #2
+ ldr r1, [r1, r2]
+ ldr r2, [sp, #0x3c]
+ sub r0, r0, r1
+ str r0, [sp, #0xb4]
+ mov r0, #2
+ str r0, [sp, #0xcc]
+ mov r0, #0x50
+ str r0, [sp]
+ lsl r0, r5, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0x1c
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, r7, #0
+ add r3, sp, #0xb0
+ bl MOD11_022317E0
+ ldr r0, [sp, #0x4c]
+ add r0, r0, #1
+ str r0, [sp, #0x4c]
+ cmp r0, #6
+ blt _0223AD30
+ mov r0, #0xb
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223ADBA:
+ ldr r3, _0223AF60 ; =0x0225DC90
+ add r2, sp, #0x50
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_0222FF6C
+ mov r1, #0x24
+ str r1, [sp]
+ mov r1, #0x60
+ str r1, [sp, #4]
+ mov r1, #0xf
+ mov r2, #0x50
+ mov r3, #0
+ add r7, r0, #0
+ bl FUN_020196F4
+ mov r1, #0
+ str r1, [sp, #0x4c]
+ add r5, sp, #0xb0
+_0223ADEC:
+ ldr r0, _0223AF64 ; =0x000003B5
+ lsl r2, r1, #2
+ add r1, sp, #0x50
+ strh r0, [r5, #2]
+ mov r0, #7
+ ldr r1, [r1, r2]
+ strb r0, [r5, #1]
+ add r0, r6, #0
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0xb4]
+ mov r0, #3
+ str r0, [sp, #0xcc]
+ mov r0, #0x48
+ str r0, [sp]
+ ldr r0, [sp, #0x4c]
+ ldr r2, [sp, #0x3c]
+ lsl r0, r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0x24
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, r7, #0
+ add r3, r5, #0
+ bl MOD11_022317E0
+ ldr r0, [sp, #0x4c]
+ add r1, r0, #1
+ str r1, [sp, #0x4c]
+ cmp r1, #6
+ blt _0223ADEC
+ mov r0, #0xd
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AE3C:
+ ldr r0, _0223AF68 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ ldr r0, _0223AF6C ; =0x00000C03
+ tst r0, r1
+ bne _0223AE4E
+ bl FUN_02020AA4
+ cmp r0, #0
+ beq _0223AEDC
+_0223AE4E:
+ ldr r0, _0223AF70 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AE5E:
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_0222FF6C
+ add r6, r0, #0
+ mov r1, #0
+ bl FUN_0200CCF8
+ add r0, r6, #0
+ bl FUN_02019178
+ ldr r1, _0223AF50 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #1
+ orr r2, r0
+ strh r2, [r1]
+ mov r1, #0
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #1
+ bl FUN_020178BC
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_02231564
+ ldr r0, [r4, #4]
+ add r1, r0, r7
+ ldr r0, _0223AF4C ; =0x0000219C
+ ldrb r0, [r1, r0]
+ cmp r5, r0
+ beq _0223AEAC
+ ldr r0, [r4]
+ add r1, r4, #0
+ bl MOD11_0223D068
+_0223AEAC:
+ mov r0, #0x5f
+ ldr r1, [r4, #4]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_02016A18
+ mov r0, #0xf
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AEC0:
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x38
+ add r2, sp, #0x44
+ bl FUN_02069818
+ cmp r0, #0
+ beq _0223AEE6
+ ldr r1, _0223AF74 ; =0x0000FFFE
+ cmp r0, r1
+ bne _0223AEDE
+_0223AEDC:
+ b _0223B2AE
+_0223AEDE:
+ add r1, r1, #1
+ cmp r0, r1
+ beq _0223AEEE
+ b _0223AEFC
+_0223AEE6:
+ mov r0, #3
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AEEE:
+ add r0, sp, #0x44
+ ldrh r0, [r0]
+ add sp, #0xd4
+ str r0, [r4, #0x40]
+ mov r0, #0x10
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AEFC:
+ ldr r1, [r4, #4]
+ ldr r0, _0223AF4C ; =0x0000219C
+ add r2, r1, r7
+ ldrb r3, [r2, r0]
+ cmp r5, r3
+ bne _0223AF10
+ ldr r0, [r4]
+ add r2, r7, #0
+ bl MOD11_02243054
+_0223AF10:
+ mov r1, #4
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0xa
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ add r0, sp, #0x44
+ ldrh r0, [r0]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x24
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AF42:
+ ldr r1, _0223AF78 ; =0x0000049A
+ b _0223AF7C
+ nop
+_0223AF48: .word 0x00003109
+_0223AF4C: .word 0x0000219C
+_0223AF50: .word 0x04000008
+_0223AF54: .word 0x0225DCD8
+_0223AF58: .word 0x0225DC60
+_0223AF5C: .word 0x000003B3
+_0223AF60: .word 0x0225DC90
+_0223AF64: .word 0x000003B5
+_0223AF68: .word 0x021C48B8
+_0223AF6C: .word 0x00000C03
+_0223AF70: .word 0x000005DC
+_0223AF74: .word 0x0000FFFE
+_0223AF78: .word 0x0000049A
+_0223AF7C:
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0xa
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [r4, #0x40]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AFAC:
+ ldr r1, _0223B2B4 ; =0x0000049B
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #2
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AFDA:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223B01E
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AFF2:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r3, _0223B2B8 ; =0x0000049C
+ add r2, r7, #0
+ bl MOD11_02255980
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B012:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ bne _0223B020
+_0223B01E:
+ b _0223B2AE
+_0223B020:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223B034
+ mov r0, #0x1f
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B034:
+ ldr r1, _0223B2BC ; =0x0000049F
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x16
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B05A:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223B160
+ ldr r0, [r4]
+ ldr r2, [r4, #0x40]
+ add r1, r7, #0
+ add r3, r5, #0
+ bl MOD11_022562B0
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B07E:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223B092
+ mov r0, #0x1f
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B092:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223B160
+ ldr r1, [r4, #4]
+ lsl r0, r7, #8
+ add r1, r1, r0
+ mov r0, #0x23
+ lsl r0, r0, #8
+ ldrb r0, [r1, r0]
+ add sp, #0xd4
+ sub r0, r0, #1
+ str r0, [r4, #0x44]
+ mov r0, #0x18
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B0B6:
+ mov r1, #0x4a
+ lsl r1, r1, #4
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B0E0:
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, [r4, #0x40]
+ ldr r3, _0223B2C0 ; =0x000004A1
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r7, #0
+ bl MOD11_02255980
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B102:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223B160
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223B122
+ mov r0, #0x10
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B122:
+ ldr r1, _0223B2C4 ; =0x000004A4
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0xa
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [r4, #0x40]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x23
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B152:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _0223B162
+_0223B160:
+ b _0223B2AE
+_0223B162:
+ mov r0, #0xf
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B16A:
+ ldr r1, _0223B2C8 ; =0x000004A5
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B192:
+ ldr r1, _0223B2CC ; =0x000004A6
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0xa
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r1, [r4, #0x44]
+ add r0, r6, #0
+ add r1, #0x36
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B1CE:
+ ldr r1, _0223B2D0 ; =0x000004A7
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B1F6:
+ ldr r1, _0223B2D4 ; =0x000004A8
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0xa
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [r4, #0x40]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0
+ str r0, [sp, #0x4c]
+ ldr r1, [r4, #0x44]
+ add r0, r6, #0
+ add r1, #0x3e
+ add r2, sp, #0x4c
+ bl FUN_02067830
+ ldr r1, [r4, #0x40]
+ ldr r2, [r4, #0x44]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x18
+ add r0, r6, #0
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x18
+ bl FUN_020697CC
+ ldr r1, [r4, #4]
+ ldr r0, _0223B2D8 ; =0x0000219C
+ add r2, r1, r7
+ ldrb r3, [r2, r0]
+ cmp r5, r3
+ bne _0223B254
+ ldr r0, [r4]
+ add r2, r7, #0
+ bl MOD11_02243054
+_0223B254:
+ mov r0, #0x24
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B25C:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223B2AE
+ mov r0, #0xf
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B272:
+ add r0, r5, #0
+ bl FUN_0206A92C
+ ldr r1, [sp, #0x40]
+ ldr r2, [r4, #4]
+ mov r3, #0
+ mvn r3, r3
+ add r2, #0xa4
+ lsl r1, r1, #2
+ ldr r6, [r2, r1]
+ eor r0, r3
+ and r0, r6
+ str r0, [r2, r1]
+ add r0, r5, #1
+ str r0, [r4, #0x48]
+ mov r0, #0
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B298:
+ mov r0, #0x5e
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x14]
+ bl FUN_0200CAB4
+_0223B2AE:
+ add sp, #0xd4
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223B2B4: .word 0x0000049B
+_0223B2B8: .word 0x0000049C
+_0223B2BC: .word 0x0000049F
+_0223B2C0: .word 0x000004A1
+_0223B2C4: .word 0x000004A4
+_0223B2C8: .word 0x000004A5
+_0223B2CC: .word 0x000004A6
+_0223B2D0: .word 0x000004A7
+_0223B2D4: .word 0x000004A8
+_0223B2D8: .word 0x0000219C
+
+ thumb_func_start MOD11_0223B2DC
+MOD11_0223B2DC: ; 0x0223B2DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r0, r2, #0
+ mov r1, #5
+ mov r4, #0
+ bl FUN_0206851C
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ bl FUN_0206B9B0
+ mov r1, #6
+ add r2, r4, #0
+ str r0, [sp, #0x14]
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r6, #0
+ mov r1, #1
+ mov r2, #5
+ bl FUN_0206E7B8
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #2
+ mov r2, #5
+ bl FUN_0206E7B8
+ add r6, r0, #0
+ add r0, r4, #0
+ str r0, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x20
+ str r0, [sp, #0xc]
+_0223B328:
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x14]
+ add r1, #0xd
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, [sp, #0xc]
+ strb r0, [r1]
+ add r0, r1, #0
+ ldrb r1, [r0]
+ ldr r0, [sp, #0x18]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, #6
+ blt _0223B328
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, sp, #0x20
+ str r0, [sp, #0x10]
+_0223B35E:
+ ldr r1, [sp, #0x18]
+ ldr r0, _0223B498 ; =0x000001FE
+ cmp r1, r0
+ blo _0223B368
+ b _0223B48C
+_0223B368:
+ ldr r0, [sp, #8]
+ cmp r0, #5
+ bhi _0223B414
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223B37A: ; jump table
+ .short _0223B386 - _0223B37A - 2 ; case 0
+ .short _0223B39E - _0223B37A - 2 ; case 1
+ .short _0223B3B6 - _0223B37A - 2 ; case 2
+ .short _0223B3CE - _0223B37A - 2 ; case 3
+ .short _0223B3E6 - _0223B37A - 2 ; case 4
+ .short _0223B3FE - _0223B37A - 2 ; case 5
+_0223B386:
+ add r0, r7, #0
+ mov r1, #0xa
+ bl FUN_02068538
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x79
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _0223B414
+_0223B39E:
+ add r0, r7, #0
+ mov r1, #0xb
+ bl FUN_02068538
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x74
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _0223B414
+_0223B3B6:
+ add r0, r7, #0
+ mov r1, #0xc
+ bl FUN_02068538
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x75
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _0223B414
+_0223B3CE:
+ add r0, r7, #0
+ mov r1, #0xd
+ bl FUN_02068538
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x78
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _0223B414
+_0223B3E6:
+ add r0, r7, #0
+ mov r1, #0xe
+ bl FUN_02068538
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x76
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _0223B414
+_0223B3FE:
+ add r0, r7, #0
+ mov r1, #0xf
+ bl FUN_02068538
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x77
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+_0223B414:
+ ldr r0, [sp, #4]
+ bl FUN_0206A92C
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ ldr r0, [sp]
+ lsr r1, r1, #0x18
+ bl FUN_02069CF4
+ cmp r0, #0
+ beq _0223B42E
+ lsl r0, r4, #0x11
+ asr r4, r0, #0x10
+_0223B42E:
+ cmp r5, #0x31
+ bne _0223B436
+ lsl r0, r4, #0x11
+ asr r4, r0, #0x10
+_0223B436:
+ ldr r0, [sp, #0x18]
+ ldr r1, _0223B498 ; =0x000001FE
+ add r0, r0, r4
+ cmp r0, r1
+ ble _0223B448
+ sub r0, r0, r1
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+_0223B448:
+ ldr r0, [sp, #0x10]
+ ldrb r0, [r0]
+ add r0, r0, r4
+ cmp r0, #0xff
+ ble _0223B45A
+ sub r0, #0xff
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+_0223B45A:
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x10]
+ ldrb r0, [r0]
+ add r1, r0, r4
+ ldr r0, [sp, #0x10]
+ strb r1, [r0]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #8]
+ add r0, r0, r4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r1, #0xd
+ bl FUN_02067830
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #6
+ bge _0223B48C
+ b _0223B35E
+_0223B48C:
+ add r0, r7, #0
+ bl FUN_02068640
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223B498: .word 0x000001FE
+
+ thumb_func_start MOD11_0223B49C
+MOD11_0223B49C: ; 0x0223B49C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x158
+ add r4, r1, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230068
+ mov r7, #1
+ str r0, [sp, #0x24]
+ add r0, r7, #0
+ ldr r6, [r4, #4]
+ bl FUN_0206A92C
+ ldr r1, _0223B7F0 ; =0x00003108
+ ldrb r1, [r6, r1]
+ tst r0, r1
+ beq _0223B4D0
+ mov r7, #3
+_0223B4D0:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x20
+ bls _0223B4DA
+ bl _0223BFD0
+_0223B4DA:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223B4E6: ; jump table
+ .short _0223B528 - _0223B4E6 - 2 ; case 0
+ .short _0223B5E8 - _0223B4E6 - 2 ; case 1
+ .short _0223B634 - _0223B4E6 - 2 ; case 2
+ .short _0223B662 - _0223B4E6 - 2 ; case 3
+ .short _0223B68C - _0223B4E6 - 2 ; case 4
+ .short _0223B6A0 - _0223B4E6 - 2 ; case 5
+ .short _0223B6D4 - _0223B4E6 - 2 ; case 6
+ .short _0223B6F6 - _0223B4E6 - 2 ; case 7
+ .short _0223B716 - _0223B4E6 - 2 ; case 8
+ .short _0223B75C - _0223B4E6 - 2 ; case 9
+ .short _0223B77A - _0223B4E6 - 2 ; case 10
+ .short _0223B8BC - _0223B4E6 - 2 ; case 11
+ .short _0223B90A - _0223B4E6 - 2 ; case 12
+ .short _0223B990 - _0223B4E6 - 2 ; case 13
+ .short _0223B9E4 - _0223B4E6 - 2 ; case 14
+ .short _0223BA12 - _0223B4E6 - 2 ; case 15
+ .short _0223BA42 - _0223B4E6 - 2 ; case 16
+ .short _0223BAC4 - _0223B4E6 - 2 ; case 17
+ .short _0223BAEA - _0223B4E6 - 2 ; case 18
+ .short _0223BB12 - _0223B4E6 - 2 ; case 19
+ .short _0223BB6A - _0223B4E6 - 2 ; case 20
+ .short _0223BC38 - _0223B4E6 - 2 ; case 21
+ .short _0223BC7E - _0223B4E6 - 2 ; case 22
+ .short _0223BC7E - _0223B4E6 - 2 ; case 23
+ .short _0223BDD8 - _0223B4E6 - 2 ; case 24
+ .short _0223BE26 - _0223B4E6 - 2 ; case 25
+ .short _0223BE62 - _0223B4E6 - 2 ; case 26
+ .short _0223BEA6 - _0223B4E6 - 2 ; case 27
+ .short _0223BED8 - _0223B4E6 - 2 ; case 28
+ .short _0223BEF0 - _0223B4E6 - 2 ; case 29
+ .short _0223BF06 - _0223B4E6 - 2 ; case 30
+ .short _0223BF5E - _0223B4E6 - 2 ; case 31
+ .short _0223BF8E - _0223B4E6 - 2 ; case 32
+_0223B528:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ bne _0223B5A4
+ mov r0, #3
+ str r0, [sp, #0x138]
+ mov r0, #5
+ str r0, [sp, #0x134]
+ ldr r0, _0223B7F4 ; =0x00004E20
+ add r0, r7, r0
+ str r0, [sp, #0x13c]
+ ldr r0, [r4, #0x2c]
+ str r0, [sp, #0x140]
+ ldr r0, [r4]
+ bl MOD11_02230078
+ str r0, [sp, #0x14c]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ str r0, [sp, #0x150]
+ mov r0, #1
+ str r0, [sp, #0x144]
+ mov r0, #0
+ str r0, [sp, #0x148]
+ ldr r0, [r4]
+ str r0, [sp, #0x154]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223B578
+ cmp r7, #1
+ bne _0223B572
+ mov r0, #0x10
+ str r0, [sp, #0x130]
+ b _0223B57C
+_0223B572:
+ mov r0, #0x11
+ str r0, [sp, #0x130]
+ b _0223B57C
+_0223B578:
+ mov r0, #0xf
+ str r0, [sp, #0x130]
+_0223B57C:
+ add r0, sp, #0x130
+ bl MOD08_02229918
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [r4, #0x28]
+ ldr r0, _0223B7F8 ; =0x0000070A
+ bl FUN_020054C8
+ ldr r2, [r4]
+ ldr r0, _0223B7FC ; =0x0000241E
+ ldrh r1, [r2, r0]
+ add r1, r1, #1
+ strh r1, [r2, r0]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_02228AB8
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B5A4:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A80
+ cmp r0, #4
+ beq _0223B678
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ add r5, #0x88
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [r5]
+ mov r0, #1
+ str r0, [r4, #0x28]
+ ldr r0, _0223B7F8 ; =0x0000070A
+ bl FUN_020054C8
+ ldr r2, [r4]
+ ldr r0, _0223B7FC ; =0x0000241E
+ ldrh r1, [r2, r0]
+ add r1, r1, #1
+ strh r1, [r2, r0]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_02228AB8
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B5E8:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B678
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _0223B618
+ ldr r0, _0223B800 ; =0x000005E6
+ mov r1, #0x75
+ bl FUN_020054A8
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_02228AB8
+ mov r0, #0x19
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B618:
+ ldr r0, _0223B804 ; =0x00000708
+ mov r1, #0x75
+ bl FUN_020054A8
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD08_02228AB8
+ mov r0, #2
+ str r0, [r4, #0x28]
+ mov r0, #0x17
+ add sp, #0x158
+ str r0, [r4, #0x34]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B634:
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223B678
+ ldr r0, [r4]
+ ldr r2, [r4, #0x2c]
+ add r1, r7, #0
+ bl MOD11_02254EA8
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ bl MOD11_0223BFD8
+ str r0, [r4, #0x38]
+ cmp r0, #4
+ bge _0223B656
+ b _0223B658
+_0223B656:
+ mov r0, #3
+_0223B658:
+ str r0, [r4, #0x3c]
+ mov r0, #3
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B662:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B678
+ ldr r0, [r4, #4]
+ bl MOD11_02243388
+ cmp r0, #0
+ bne _0223B67C
+_0223B678:
+ bl _0223BFD0
+_0223B67C:
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl MOD08_02228AB8
+ mov r0, #4
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B68C:
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B78E
+ mov r0, #5
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B6A0:
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0
+ bne _0223B6C0
+ ldr r0, [r4, #0x38]
+ cmp r0, #4
+ bne _0223B6B8
+ mov r0, #7
+ str r0, [r4, #0x28]
+ mov r0, #0xc
+ add sp, #0x158
+ str r0, [r4, #0x34]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B6B8:
+ mov r0, #0x1c
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B6C0:
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD08_02228AB8
+ mov r0, #6
+ str r0, [r4, #0x28]
+ mov r0, #0xc
+ add sp, #0x158
+ str r0, [r4, #0x34]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B6D4:
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B78E
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223B78E
+ ldr r0, [r4, #0x3c]
+ add sp, #0x158
+ sub r0, r0, #1
+ str r0, [r4, #0x3c]
+ mov r0, #5
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B6F6:
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223B78E
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl MOD08_02228AB8
+ ldr r0, _0223B808 ; =0x00000709
+ mov r1, #0x75
+ bl FUN_020054A8
+ mov r0, #8
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B716:
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B78E
+ ldr r1, _0223B80C ; =0x00000363
+ add r0, sp, #0x10c
+ strh r1, [r0, #2]
+ mov r1, #0x82
+ strb r1, [r0, #1]
+ str r7, [sp, #0x110]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0x10c
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #9
+ str r0, [r4, #0x28]
+ ldr r0, _0223B810 ; =0x00000467
+ bl FUN_0200521C
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD11_02231484
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B75C:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223B78E
+ mov r0, #0xa
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #8]
+ mov r1, #7
+ bl MOD08_02228AB8
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B77A:
+ ldr r0, [r4, #8]
+ mov r1, #7
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B78E
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ beq _0223B792
+_0223B78E:
+ bl _0223BFD0
+_0223B792:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_022314D4
+ ldr r2, [r4, #4]
+ ldr r0, [r4]
+ add r3, r2, r7
+ ldr r2, _0223B814 ; =0x0000219C
+ add r1, r7, #0
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #6
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _0223B83C
+ ldr r2, [r4, #4]
+ ldr r0, [r4]
+ add r3, r2, r7
+ ldr r2, _0223B814 ; =0x0000219C
+ add r1, r7, #0
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ add r2, r0, #0
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ bl MOD11_0224AD38
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223B818 ; =0x0000FFFF
+ b _0223B81C
+ nop
+_0223B7F0: .word 0x00003108
+_0223B7F4: .word 0x00004E20
+_0223B7F8: .word 0x0000070A
+_0223B7FC: .word 0x0000241E
+_0223B800: .word 0x000005E6
+_0223B804: .word 0x00000708
+_0223B808: .word 0x00000709
+_0223B80C: .word 0x00000363
+_0223B810: .word 0x00000467
+_0223B814: .word 0x0000219C
+_0223B818: .word 0x0000FFFF
+_0223B81C:
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+ mov r0, #0x20
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B83C:
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231668
+ cmp r0, #0
+ beq _0223B88A
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #5
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+ mov r0, #0x10
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B88A:
+ ldr r1, _0223BBD8 ; =0x00000367
+ add r0, sp, #0xe8
+ strh r1, [r0, #2]
+ mov r1, #0x82
+ strb r1, [r0, #1]
+ str r7, [sp, #0xec]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0xe8
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #0xb
+ str r0, [r4, #0x28]
+ ldr r0, [r4]
+ bl MOD11_0223129C
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B8BC:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223B914
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223B914
+ mov r0, #0xc
+ str r0, [r4, #0x28]
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #5
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ str r1, [sp]
+ mov r2, #0x10
+ add r3, r1, #0
+ bl FUN_02007E98
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B90A:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223B916
+_0223B914:
+ b _0223BFD0
+_0223B916:
+ ldr r0, [r4, #8]
+ bl MOD08_02229A2C
+ ldr r0, [sp, #0x24]
+ bl FUN_02007540
+ ldr r0, [r4]
+ bl MOD11_0222D944
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_02230088
+ mov r1, #0
+ bl MOD11_022583C8
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_02230088
+ mov r1, #0
+ bl MOD11_022583C8
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ str r0, [sp, #0xd0]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ str r0, [sp, #0xd4]
+ ldr r0, [sp, #0x24]
+ add r1, r7, #0
+ str r0, [sp, #0xd8]
+ mov r0, #5
+ str r0, [sp, #0xdc]
+ ldr r2, [r4, #4]
+ ldr r0, [r4]
+ add r3, r2, r7
+ ldr r2, _0223BBDC ; =0x0000219C
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ str r0, [sp, #0xe0]
+ ldr r0, [r4]
+ bl MOD11_022300D0
+ bl FUN_0206BB34
+ str r0, [sp, #0xe4]
+ bl FUN_0201D658
+ str r0, [r4, #0x54]
+ add r0, sp, #0xd0
+ bl FUN_021EEF0C
+ str r0, [r4, #0x50]
+ mov r0, #0xd
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B990:
+ ldr r0, [r4, #0x50]
+ bl FUN_021EEF84
+ cmp r0, #0
+ beq _0223BA4C
+ ldr r0, _0223BBE0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0223B9AA
+ mov r0, #0xe
+ str r0, [r4, #0x28]
+ b _0223B9BC
+_0223B9AA:
+ bl FUN_02020AA4
+ cmp r0, #0
+ beq _0223B9BC
+ ldr r0, _0223BBE4 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xe
+ str r0, [r4, #0x28]
+_0223B9BC:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0xe
+ bne _0223BA4C
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #5
+ mov r3, #1
+ bl FUN_02003210
+ ldr r0, [r4, #0x50]
+ mov r1, #0
+ bl FUN_021EEF9C
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B9E4:
+ ldr r0, [r4, #0x50]
+ bl FUN_021EEF98
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #4
+ bl FUN_020079E0
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, #0x80
+ blt _0223BA4C
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #0x80
+ bl FUN_02007558
+ mov r0, #0xf
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BA12:
+ ldr r0, [r4, #0x50]
+ bl FUN_021EEF68
+ ldr r0, [r4, #0x54]
+ bl FUN_0201D674
+ ldr r0, [r4]
+ bl MOD11_0222D980
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #5
+ mov r3, #1
+ bl FUN_02003210
+ mov r0, #0x11
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BA42:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223BA4E
+_0223BA4C:
+ b _0223BFD0
+_0223BA4E:
+ ldr r2, [r4, #4]
+ ldr r0, [r4]
+ add r3, r2, r7
+ ldr r2, _0223BBDC ; =0x0000219C
+ add r1, r7, #0
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ add r6, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_02229A2C
+ ldr r0, [sp, #0x24]
+ bl FUN_02007540
+ ldr r0, [r4]
+ bl MOD11_0222D944
+ ldr r0, [r4]
+ bl MOD11_0222D980
+ add r0, sp, #0xc0
+ add r1, r6, #0
+ mov r2, #2
+ bl FUN_02068B68
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x24]
+ add r1, sp, #0xc0
+ mov r2, #0x80
+ mov r3, #0x48
+ bl FUN_020073A0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #5
+ mov r3, #1
+ bl FUN_02003210
+ mov r2, #0
+ ldr r0, [sp, #0x24]
+ mov r1, #0x10
+ add r3, r2, #0
+ str r2, [sp]
+ bl FUN_02007E98
+ mov r0, #0x11
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BAC4:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0223BB74
+ mov r0, #0x12
+ str r0, [r4, #0x28]
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #0
+ bl FUN_020143A8
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_020038F0
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BAEA:
+ ldr r1, [r4, #4]
+ mov r0, #5
+ str r0, [sp]
+ mov r2, #0
+ ldr r0, _0223BBDC ; =0x0000219C
+ str r2, [sp, #4]
+ add r3, r1, r7
+ ldrb r0, [r3, r0]
+ mov r3, #0xd9
+ lsl r3, r3, #2
+ orr r0, r7
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ bl MOD11_02255980
+ ldr r0, [r4, #0x28]
+ add sp, #0x158
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BB12:
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223BB74
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223BB32
+ mov r0, #0x16
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BB32:
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+ mov r0, #0x14
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BB6A:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223BB76
+_0223BB74:
+ b _0223BFD0
+_0223BB76:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ ldr r2, [r4, #4]
+ ldr r0, [r4]
+ add r3, r2, r7
+ ldr r2, _0223BBDC ; =0x0000219C
+ add r1, r7, #0
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230E18
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #1
+ add r2, r5, #0
+ mov r3, #0xa
+ bl FUN_02077A84
+ add r5, r0, #0
+ str r5, [r4, #0x54]
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_0222FFC8
+ cmp r0, #6
+ bge _0223BBCA
+ mov r0, #0
+ b _0223BBEE
+_0223BBCA:
+ ldr r0, [r4]
+ bl MOD11_02231280
+ ldr r1, _0223BBE8 ; =0x00000496
+ b _0223BBEC
+ .align 2, 0
+_0223BBD4: .word 0x0000FFFF
+_0223BBD8: .word 0x00000367
+_0223BBDC: .word 0x0000219C
+_0223BBE0: .word 0x021C48B8
+_0223BBE4: .word 0x000005DC
+_0223BBE8: .word 0x00000496
+_0223BBEC:
+ add r0, r0, r1
+_0223BBEE:
+ str r0, [r5, #0x44]
+ add r0, r6, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [r5, #8]
+ ldr r0, [r4]
+ bl MOD11_02230290
+ str r0, [r5, #0x48]
+ add r0, r6, #0
+ mov r1, #0x6f
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [r5, #0x10]
+ ldr r0, _0223BF18 ; =0x020FA5FC
+ add r1, r5, #0
+ mov r2, #5
+ bl FUN_02006234
+ str r0, [r4, #0x50]
+ mov r0, #0x15
+ str r0, [r4, #0x28]
+ ldr r0, [r4]
+ bl MOD11_02231438
+ ldr r0, [r4]
+ bl MOD11_0222D840
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_02231338
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BC38:
+ ldr r0, [r4, #0x50]
+ bl FUN_02006290
+ cmp r0, #0
+ beq _0223BC88
+ ldr r2, [r4, #4]
+ ldr r5, [r4, #0x54]
+ add r3, r2, r7
+ ldr r2, _0223BF1C ; =0x0000219C
+ ldr r0, [r4]
+ ldrb r2, [r3, r2]
+ add r1, r7, #0
+ bl MOD11_02230014
+ ldr r1, [r5, #0x14]
+ cmp r1, #0
+ bne _0223BC62
+ ldr r2, [r5, #0x18]
+ mov r1, #0x77
+ bl FUN_02067830
+_0223BC62:
+ add r0, r5, #0
+ bl FUN_02077AC4
+ ldr r0, [r4, #0x50]
+ bl FUN_02006260
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD11_02231338
+ mov r0, #0x17
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BC7E:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223BC8A
+_0223BC88:
+ b _0223BFD0
+_0223BC8A:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_0222FF88
+ ldr r2, [r4, #4]
+ str r0, [sp, #0x28]
+ add r3, r2, r7
+ ldr r2, _0223BF1C ; =0x0000219C
+ ldr r0, [r4]
+ ldrb r2, [r3, r2]
+ add r1, r7, #0
+ bl MOD11_02230014
+ add r6, r0, #0
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_02231628
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r6, #0
+ bl MOD11_0224AD38
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD11_02230F88
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD11_02230FA8
+ mov r1, #0
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #9
+ bl MOD11_022564A8
+ ldr r0, [sp, #0x28]
+ add r1, r6, #0
+ bl FUN_0206B900
+ cmp r0, #1
+ bne _0223BD1E
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x16
+ bne _0223BD16
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BF20 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+_0223BD16:
+ mov r0, #0x20
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BD1E:
+ ldr r0, [r4]
+ bl MOD11_02230290
+ str r0, [sp, #0x1c]
+ bl FUN_0206B330
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ bl FUN_0206B334
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x14]
+ bl FUN_0206B428
+ mov r5, #0
+_0223BD3E:
+ add r1, r5, #0
+ add r0, r6, #0
+ add r1, #0x42
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, r5, #0
+ str r0, [sp, #0x2c]
+ add r0, r6, #0
+ add r1, #0x3a
+ add r2, sp, #0x2c
+ bl FUN_02067830
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0223BD3E
+ add r0, r6, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x14]
+ bl FUN_0206B244
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x16
+ bne _0223BDD0
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ ldr r0, [r4]
+ bne _0223BD96
+ bl MOD11_02231280
+ ldr r1, _0223BF24 ; =0x00000496
+ add r1, r0, r1
+ add r0, sp, #0x9c
+ strh r1, [r0, #2]
+ mov r1, #0x93
+ strb r1, [r0, #1]
+ ldr r0, [sp, #0x18]
+ str r7, [sp, #0xa0]
+ str r0, [sp, #0xa4]
+ b _0223BDB0
+_0223BD96:
+ bl MOD11_02231280
+ ldr r1, _0223BF28 ; =0x00000498
+ add r1, r0, r1
+ add r0, sp, #0x9c
+ strh r1, [r0, #2]
+ mov r1, #0xaf
+ strb r1, [r0, #1]
+ ldr r0, [sp, #0x18]
+ str r7, [sp, #0xa0]
+ str r0, [sp, #0xa4]
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #0xa8]
+_0223BDB0:
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0x9c
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #0x18
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BDD0:
+ mov r0, #0x20
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BDD8:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223BEBC
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223BEBC
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BF20 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+ mov r0, #0x20
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BE26:
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223BEBC
+ ldr r0, [r4, #8]
+ bl MOD08_02229A2C
+ ldr r1, _0223BF2C ; =0x0000035B
+ add r0, sp, #0x78
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0x78
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #0x1a
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BE62:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223BEBC
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223BEBC
+ mov r1, #0xd7
+ lsl r1, r1, #2
+ add r0, sp, #0x2c
+ strh r1, [r0, #0x2a]
+ mov r1, #0
+ add r0, sp, #0x54
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0x54
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #0x1b
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BEA6:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223BEBC
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ beq _0223BEBE
+_0223BEBC:
+ b _0223BFD0
+_0223BEBE:
+ mov r0, #0x5e
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x10]
+ bl FUN_0200CAB4
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BED8:
+ ldr r0, [r4]
+ ldr r2, [r4, #0x2c]
+ add r1, r7, #0
+ mov r3, #1
+ bl MOD11_02254B40
+ mov r0, #0x1d
+ str r0, [r4, #0x28]
+ mov r0, #2
+ add sp, #0x158
+ str r0, [r4, #0x34]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BEF0:
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223BFD0
+ ldr r0, [r4, #8]
+ bl MOD08_02229A2C
+ mov r0, #0x1e
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BF06:
+ add r0, r6, #0
+ bl MOD11_02243388
+ cmp r0, #0
+ beq _0223BFD0
+ ldr r1, [r4, #0x38]
+ ldr r0, _0223BF30 ; =0x0000035F
+ b _0223BF34
+ nop
+_0223BF18: .word 0x020FA5FC
+_0223BF1C: .word 0x0000219C
+_0223BF20: .word 0x0000FFFF
+_0223BF24: .word 0x00000496
+_0223BF28: .word 0x00000498
+_0223BF2C: .word 0x0000035B
+_0223BF30: .word 0x0000035F
+_0223BF34:
+ add r1, r1, r0
+ add r0, sp, #0x2c
+ strh r1, [r0, #6]
+ mov r1, #0
+ strb r1, [r0, #5]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0x30
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #0x1f
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BF5E:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223BFD0
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223BFD0
+ mov r0, #0x5e
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x10]
+ bl FUN_0200CAB4
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BF8E:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0223BFD0
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #6
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _0223BFB2
+ ldr r0, [r4, #8]
+ bl MOD08_02229A2C
+ ldr r0, [sp, #0x24]
+ bl FUN_02007540
+_0223BFB2:
+ ldr r1, [r4]
+ ldr r0, _0223BFD4 ; =0x0000241C
+ mov r2, #4
+ strb r2, [r1, r0]
+ mov r0, #0x5e
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x10]
+ bl FUN_0200CAB4
+_0223BFD0:
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223BFD4: .word 0x0000241C
+
+ thumb_func_start MOD11_0223BFD8
+MOD11_0223BFD8: ; 0x0223BFD8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r4, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #6
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _0223BFEE
+ mov r0, #4
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BFEE:
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, #0x6c]
+ cmp r0, #5
+ bne _0223C026
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r1, r0]
+ mov r1, #8
+ bl FUN_02068678
+ ldr r1, _0223C200 ; =0x0000311C
+ ldr r2, _0223C204 ; =0x0225DCF0
+ ldrb r1, [r4, r1]
+ lsl r1, r1, #1
+ ldrb r2, [r2, r1]
+ mul r2, r0
+ add r0, r2, #0
+ ldr r2, _0223C208 ; =0x0225DCF1
+ ldrb r1, [r2, r1]
+ blx _u32_div_f
+ str r0, [sp]
+ b _0223C03A
+_0223C026:
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r1, r0]
+ mov r1, #8
+ bl FUN_02068678
+ str r0, [sp]
+_0223C03A:
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ mov r5, #0xa
+ bl MOD11_02243420
+ add r7, r0, #0
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ add r1, r0, #0
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r2, [r4, r0]
+ cmp r2, #5
+ ble _0223C128
+ cmp r2, #0xf
+ bhi _0223C12E
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223C072: ; jump table
+ .short _0223C12E - _0223C072 - 2 ; case 0
+ .short _0223C12E - _0223C072 - 2 ; case 1
+ .short _0223C12E - _0223C072 - 2 ; case 2
+ .short _0223C12E - _0223C072 - 2 ; case 3
+ .short _0223C12E - _0223C072 - 2 ; case 4
+ .short _0223C12E - _0223C072 - 2 ; case 5
+ .short _0223C092 - _0223C072 - 2 ; case 6
+ .short _0223C0A6 - _0223C072 - 2 ; case 7
+ .short _0223C0B4 - _0223C072 - 2 ; case 8
+ .short _0223C0D0 - _0223C072 - 2 ; case 9
+ .short _0223C0EC - _0223C072 - 2 ; case 10
+ .short _0223C12E - _0223C072 - 2 ; case 11
+ .short _0223C12E - _0223C072 - 2 ; case 12
+ .short _0223C0FA - _0223C072 - 2 ; case 13
+ .short _0223C12E - _0223C072 - 2 ; case 14
+ .short _0223C11C - _0223C072 - 2 ; case 15
+_0223C092:
+ cmp r7, #0xb
+ beq _0223C0A2
+ cmp r1, #0xb
+ beq _0223C0A2
+ cmp r7, #6
+ beq _0223C0A2
+ cmp r1, #6
+ bne _0223C12E
+_0223C0A2:
+ mov r5, #0x1e
+ b _0223C12E
+_0223C0A6:
+ add r0, r6, #0
+ bl MOD11_02230294
+ cmp r0, #7
+ bne _0223C12E
+ mov r5, #0x23
+ b _0223C12E
+_0223C0B4:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0223C20C ; =0x00002D74
+ ldrb r1, [r1, r0]
+ cmp r1, #0x28
+ bhs _0223C12E
+ mov r0, #0x28
+ sub r5, r0, r1
+ cmp r5, #0xa
+ bhs _0223C12E
+ mov r5, #0xa
+ b _0223C12E
+_0223C0D0:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r1, [r2, r1]
+ add r0, r6, #0
+ bl MOD11_02231668
+ cmp r0, #1
+ bne _0223C12E
+ mov r5, #0x1e
+ b _0223C12E
+_0223C0EC:
+ add r0, #0x28
+ ldr r5, [r4, r0]
+ add r5, #0xa
+ cmp r5, #0x28
+ bls _0223C12E
+ mov r5, #0x28
+ b _0223C12E
+_0223C0FA:
+ add r0, r6, #0
+ bl MOD11_02230C5C
+ cmp r0, #3
+ beq _0223C118
+ add r0, r6, #0
+ bl MOD11_02230C5C
+ cmp r0, #4
+ beq _0223C118
+ add r0, r6, #0
+ bl MOD11_02230294
+ cmp r0, #5
+ bne _0223C12E
+_0223C118:
+ mov r5, #0x23
+ b _0223C12E
+_0223C11C:
+ add r0, #0x28
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bge _0223C12E
+ mov r5, #0x28
+ b _0223C12E
+_0223C128:
+ ldr r0, _0223C210 ; =0x0225DC28
+ sub r1, r2, #2
+ ldrb r5, [r0, r1]
+_0223C12E:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ ldr r0, _0223C214 ; =0x00002D90
+ add r1, r4, r6
+ ldr r1, [r1, r0]
+ lsl r0, r1, #1
+ add r7, r1, r0
+ ldr r1, [sp]
+ add r0, r1, #0
+ mul r0, r5
+ mov r1, #0xa
+ blx _u32_div_f
+ ldr r1, _0223C218 ; =0x00002D8C
+ add r2, r4, r6
+ ldr r1, [r2, r1]
+ lsl r1, r1, #1
+ sub r1, r7, r1
+ mul r1, r0
+ add r0, r1, #0
+ add r1, r7, #0
+ blx _u32_div_f
+ add r1, r0, #0
+ ldr r0, _0223C21C ; =0x00002DAC
+ add r2, r4, r6
+ ldr r2, [r2, r0]
+ mov r0, #0x27
+ tst r0, r2
+ beq _0223C170
+ lsl r1, r1, #1
+_0223C170:
+ mov r0, #0xd8
+ tst r0, r2
+ beq _0223C182
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ blx _u32_div_f
+ add r1, r0, #0
+_0223C182:
+ cmp r1, #0xff
+ blo _0223C18A
+ mov r5, #4
+ b _0223C1FA
+_0223C18A:
+ ldr r0, _0223C220 ; =0x040002B0
+ mov r2, #0
+ strh r2, [r0]
+ mov r0, #0xff
+ lsl r0, r0, #0x10
+ blx _u32_div_f
+ ldr r1, _0223C224 ; =0x040002B8
+ add r2, r1, #0
+ str r0, [r1]
+ sub r2, #8
+ lsr r0, r1, #0xb
+_0223C1A2:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0223C1A2
+ ldr r3, _0223C220 ; =0x040002B0
+ lsr r0, r3, #0xb
+_0223C1AC:
+ ldrh r1, [r3]
+ tst r1, r0
+ bne _0223C1AC
+ ldr r2, _0223C228 ; =0x040002B4
+ mov r0, #0
+ ldr r1, [r2]
+ strh r0, [r3]
+ mov r0, #2
+ str r1, [r2, #4]
+ sub r2, r2, #4
+ lsl r0, r0, #0xe
+_0223C1C2:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0223C1C2
+ ldr r2, _0223C220 ; =0x040002B0
+ lsr r0, r2, #0xb
+_0223C1CC:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0223C1CC
+ ldr r1, _0223C228 ; =0x040002B4
+ ldr r0, _0223C22C ; =0x000FFFF0
+ ldr r1, [r1]
+ blx _u32_div_f
+ add r6, r0, #0
+ mov r5, #0
+_0223C1E0:
+ bl FUN_0201B9EC
+ cmp r0, r6
+ bhs _0223C1EE
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0223C1E0
+_0223C1EE:
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0223C1FA
+ mov r5, #4
+_0223C1FA:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223C200: .word 0x0000311C
+_0223C204: .word 0x0225DCF0
+_0223C208: .word 0x0225DCF1
+_0223C20C: .word 0x00002D74
+_0223C210: .word 0x0225DC28
+_0223C214: .word 0x00002D90
+_0223C218: .word 0x00002D8C
+_0223C21C: .word 0x00002DAC
+_0223C220: .word 0x040002B0
+_0223C224: .word 0x040002B8
+_0223C228: .word 0x040002B4
+_0223C22C: .word 0x000FFFF0
+
+ thumb_func_start MOD11_0223C230
+MOD11_0223C230: ; 0x0223C230
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r6, r1, #0
+ cmp r2, #0x16
+ bgt _0223C27A
+ cmp r2, #0
+ blt _0223C280
+ add r1, r2, r2
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223C24C: ; jump table
+ .short _0223C280 - _0223C24C - 2 ; case 0
+ .short _0223C280 - _0223C24C - 2 ; case 1
+ .short _0223C284 - _0223C24C - 2 ; case 2
+ .short _0223C320 - _0223C24C - 2 ; case 3
+ .short _0223C29C - _0223C24C - 2 ; case 4
+ .short _0223C288 - _0223C24C - 2 ; case 5
+ .short _0223C28C - _0223C24C - 2 ; case 6
+ .short _0223C290 - _0223C24C - 2 ; case 7
+ .short _0223C296 - _0223C24C - 2 ; case 8
+ .short _0223C346 - _0223C24C - 2 ; case 9
+ .short _0223C2C2 - _0223C24C - 2 ; case 10
+ .short _0223C36E - _0223C24C - 2 ; case 11
+ .short _0223C2EA - _0223C24C - 2 ; case 12
+ .short _0223C280 - _0223C24C - 2 ; case 13
+ .short _0223C3A4 - _0223C24C - 2 ; case 14
+ .short _0223C3AC - _0223C24C - 2 ; case 15
+ .short _0223C3B4 - _0223C24C - 2 ; case 16
+ .short _0223C3F0 - _0223C24C - 2 ; case 17
+ .short _0223C280 - _0223C24C - 2 ; case 18
+ .short _0223C42C - _0223C24C - 2 ; case 19
+ .short _0223C456 - _0223C24C - 2 ; case 20
+ .short _0223C480 - _0223C24C - 2 ; case 21
+ .short _0223C28C - _0223C24C - 2 ; case 22
+_0223C27A:
+ cmp r2, #0xff
+ bne _0223C280
+ b _0223C480
+_0223C280:
+ ldr r5, [r6, #0x64]
+ b _0223C486
+_0223C284:
+ ldr r5, [r6, #0x6c]
+ b _0223C486
+_0223C288:
+ ldr r5, [r6, #0x74]
+ b _0223C486
+_0223C28C:
+ ldr r5, [r6, #0x78]
+ b _0223C486
+_0223C290:
+ add r6, #0x94
+ ldr r5, [r6]
+ b _0223C486
+_0223C296:
+ add r6, #0x80
+ ldr r5, [r6]
+ b _0223C486
+_0223C29C:
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ mov r5, #0
+ cmp r6, #0
+ ble _0223C2C0
+ mov r7, #1
+_0223C2AA:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223C48C ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ bne _0223C2C0
+ add r5, r5, #1
+ cmp r5, r6
+ blt _0223C2AA
+_0223C2C0:
+ b _0223C486
+_0223C2C2:
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ mov r5, #0
+ cmp r6, #0
+ ble _0223C2E8
+ ldr r7, _0223C48C ; =0x00000195
+_0223C2D0:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #3
+ beq _0223C2E8
+ cmp r0, #1
+ beq _0223C2E8
+ add r5, r5, #1
+ cmp r5, r6
+ blt _0223C2D0
+_0223C2E8:
+ b _0223C486
+_0223C2EA:
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223C2F8
+ mov r6, #5
+ b _0223C2FA
+_0223C2F8:
+ mov r6, #1
+_0223C2FA:
+ add r0, r4, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ mov r5, #0
+ cmp r7, #0
+ ble _0223C31E
+_0223C308:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223C48C ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, r6
+ beq _0223C31E
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223C308
+_0223C31E:
+ b _0223C486
+_0223C320:
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ mov r5, #0
+ cmp r6, #0
+ ble _0223C344
+ mov r7, #1
+_0223C32E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223C48C ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _0223C344
+ add r5, r5, #1
+ cmp r5, r6
+ blt _0223C32E
+_0223C344:
+ b _0223C486
+_0223C346:
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ mov r5, #0
+ cmp r6, #0
+ ble _0223C36C
+ ldr r7, _0223C48C ; =0x00000195
+_0223C354:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #2
+ beq _0223C36C
+ cmp r0, #0
+ beq _0223C36C
+ add r5, r5, #1
+ cmp r5, r6
+ blt _0223C354
+_0223C36C:
+ b _0223C486
+_0223C36E:
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223C37C
+ mov r6, #4
+ b _0223C37E
+_0223C37C:
+ mov r6, #0
+_0223C37E:
+ add r0, r4, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ mov r5, #0
+ cmp r7, #0
+ ble _0223C486
+_0223C38C:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223C48C ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, r6
+ beq _0223C486
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223C38C
+ b _0223C486
+_0223C3A4:
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r5, [r6, r0]
+ b _0223C486
+_0223C3AC:
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r5, [r6, r0]
+ b _0223C486
+_0223C3B4:
+ bl MOD11_0222FF84
+ mov r5, #0
+ str r0, [sp, #4]
+ cmp r0, #0
+ ble _0223C3E6
+_0223C3C0:
+ ldr r7, [r6, #0x64]
+ cmp r5, r7
+ beq _0223C3DE
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #8]
+ cmp r1, r0
+ beq _0223C3E6
+_0223C3DE:
+ ldr r0, [sp, #4]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0223C3C0
+_0223C3E6:
+ ldr r0, [sp, #4]
+ cmp r5, r0
+ bne _0223C486
+ mov r5, #0
+ b _0223C486
+_0223C3F0:
+ bl MOD11_0222FF84
+ mov r5, #0
+ str r0, [sp]
+ cmp r0, #0
+ ble _0223C422
+_0223C3FC:
+ ldr r7, [r6, #0x6c]
+ cmp r5, r7
+ beq _0223C41A
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #0xc]
+ cmp r1, r0
+ beq _0223C422
+_0223C41A:
+ ldr r0, [sp]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0223C3FC
+_0223C422:
+ ldr r0, [sp]
+ cmp r5, r0
+ bne _0223C486
+ mov r5, #0
+ b _0223C486
+_0223C42C:
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ mov r5, #0
+ cmp r7, #0
+ ble _0223C486
+_0223C442:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ bne _0223C486
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223C442
+ b _0223C486
+_0223C456:
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ mov r5, #0
+ cmp r7, #0
+ ble _0223C486
+_0223C46C:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ bne _0223C486
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223C46C
+ b _0223C486
+_0223C480:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r5, [r6, r0]
+_0223C486:
+ add r0, r5, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223C48C: .word 0x00000195
+
+ thumb_func_start MOD11_0223C490
+MOD11_0223C490: ; 0x0223C490
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r4, r1, #0
+ mov r6, #0
+ bl MOD11_0223A404
+ str r0, [r4]
+ add r0, r7, #0
+ bl MOD11_0223A404
+ str r0, [r4, #4]
+ cmp r0, #0x3c
+ bhi _0223C544
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223C4B6: ; jump table
+ .short _0223C530 - _0223C4B6 - 2 ; case 0
+ .short _0223C532 - _0223C4B6 - 2 ; case 1
+ .short _0223C532 - _0223C4B6 - 2 ; case 2
+ .short _0223C532 - _0223C4B6 - 2 ; case 3
+ .short _0223C532 - _0223C4B6 - 2 ; case 4
+ .short _0223C532 - _0223C4B6 - 2 ; case 5
+ .short _0223C532 - _0223C4B6 - 2 ; case 6
+ .short _0223C532 - _0223C4B6 - 2 ; case 7
+ .short _0223C532 - _0223C4B6 - 2 ; case 8
+ .short _0223C536 - _0223C4B6 - 2 ; case 9
+ .short _0223C536 - _0223C4B6 - 2 ; case 10
+ .short _0223C536 - _0223C4B6 - 2 ; case 11
+ .short _0223C536 - _0223C4B6 - 2 ; case 12
+ .short _0223C536 - _0223C4B6 - 2 ; case 13
+ .short _0223C536 - _0223C4B6 - 2 ; case 14
+ .short _0223C536 - _0223C4B6 - 2 ; case 15
+ .short _0223C536 - _0223C4B6 - 2 ; case 16
+ .short _0223C536 - _0223C4B6 - 2 ; case 17
+ .short _0223C536 - _0223C4B6 - 2 ; case 18
+ .short _0223C536 - _0223C4B6 - 2 ; case 19
+ .short _0223C536 - _0223C4B6 - 2 ; case 20
+ .short _0223C536 - _0223C4B6 - 2 ; case 21
+ .short _0223C536 - _0223C4B6 - 2 ; case 22
+ .short _0223C536 - _0223C4B6 - 2 ; case 23
+ .short _0223C536 - _0223C4B6 - 2 ; case 24
+ .short _0223C536 - _0223C4B6 - 2 ; case 25
+ .short _0223C536 - _0223C4B6 - 2 ; case 26
+ .short _0223C536 - _0223C4B6 - 2 ; case 27
+ .short _0223C536 - _0223C4B6 - 2 ; case 28
+ .short _0223C536 - _0223C4B6 - 2 ; case 29
+ .short _0223C536 - _0223C4B6 - 2 ; case 30
+ .short _0223C53A - _0223C4B6 - 2 ; case 31
+ .short _0223C53A - _0223C4B6 - 2 ; case 32
+ .short _0223C53A - _0223C4B6 - 2 ; case 33
+ .short _0223C53A - _0223C4B6 - 2 ; case 34
+ .short _0223C53A - _0223C4B6 - 2 ; case 35
+ .short _0223C53A - _0223C4B6 - 2 ; case 36
+ .short _0223C53A - _0223C4B6 - 2 ; case 37
+ .short _0223C53A - _0223C4B6 - 2 ; case 38
+ .short _0223C53A - _0223C4B6 - 2 ; case 39
+ .short _0223C53A - _0223C4B6 - 2 ; case 40
+ .short _0223C53A - _0223C4B6 - 2 ; case 41
+ .short _0223C53A - _0223C4B6 - 2 ; case 42
+ .short _0223C53A - _0223C4B6 - 2 ; case 43
+ .short _0223C53A - _0223C4B6 - 2 ; case 44
+ .short _0223C53A - _0223C4B6 - 2 ; case 45
+ .short _0223C53A - _0223C4B6 - 2 ; case 46
+ .short _0223C53A - _0223C4B6 - 2 ; case 47
+ .short _0223C53A - _0223C4B6 - 2 ; case 48
+ .short _0223C53A - _0223C4B6 - 2 ; case 49
+ .short _0223C53A - _0223C4B6 - 2 ; case 50
+ .short _0223C53A - _0223C4B6 - 2 ; case 51
+ .short _0223C53E - _0223C4B6 - 2 ; case 52
+ .short _0223C53E - _0223C4B6 - 2 ; case 53
+ .short _0223C53E - _0223C4B6 - 2 ; case 54
+ .short _0223C53E - _0223C4B6 - 2 ; case 55
+ .short _0223C53E - _0223C4B6 - 2 ; case 56
+ .short _0223C53E - _0223C4B6 - 2 ; case 57
+ .short _0223C53E - _0223C4B6 - 2 ; case 58
+ .short _0223C53E - _0223C4B6 - 2 ; case 59
+ .short _0223C542 - _0223C4B6 - 2 ; case 60
+_0223C530:
+ b _0223C544
+_0223C532:
+ mov r6, #1
+ b _0223C544
+_0223C536:
+ mov r6, #2
+ b _0223C544
+_0223C53A:
+ mov r6, #3
+ b _0223C544
+_0223C53E:
+ mov r6, #4
+ b _0223C544
+_0223C542:
+ mov r6, #6
+_0223C544:
+ mov r5, #0
+ cmp r6, #0
+ ble _0223C55A
+_0223C54A:
+ add r0, r7, #0
+ bl MOD11_0223A404
+ str r0, [r4, #8]
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, r6
+ blt _0223C54A
+_0223C55A:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223C55C
+MOD11_0223C55C: ; 0x0223C55C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r2, #0
+ ldr r2, [r4]
+ add r5, r3, #0
+ strh r2, [r5, #2]
+ ldr r2, [r4, #4]
+ add r7, r0, #0
+ strb r2, [r5, #1]
+ ldrb r2, [r5, #1]
+ add r6, r1, #0
+ cmp r2, #0x3c
+ bls _0223C576
+ b _0223CC58
+_0223C576:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223C582: ; jump table
+ .short _0223CC58 - _0223C582 - 2 ; case 0
+ .short _0223C5FC - _0223C582 - 2 ; case 1
+ .short _0223C606 - _0223C582 - 2 ; case 2
+ .short _0223C610 - _0223C582 - 2 ; case 3
+ .short _0223C61C - _0223C582 - 2 ; case 4
+ .short _0223C628 - _0223C582 - 2 ; case 5
+ .short _0223C634 - _0223C582 - 2 ; case 6
+ .short _0223C634 - _0223C582 - 2 ; case 7
+ .short _0223C640 - _0223C582 - 2 ; case 8
+ .short _0223C64A - _0223C582 - 2 ; case 9
+ .short _0223C660 - _0223C582 - 2 ; case 10
+ .short _0223C674 - _0223C582 - 2 ; case 11
+ .short _0223C68A - _0223C582 - 2 ; case 12
+ .short _0223C69E - _0223C582 - 2 ; case 13
+ .short _0223C6B2 - _0223C582 - 2 ; case 14
+ .short _0223C6C8 - _0223C582 - 2 ; case 15
+ .short _0223C6DC - _0223C582 - 2 ; case 16
+ .short _0223C6F0 - _0223C582 - 2 ; case 17
+ .short _0223C704 - _0223C582 - 2 ; case 18
+ .short _0223C71A - _0223C582 - 2 ; case 19
+ .short _0223C728 - _0223C582 - 2 ; case 20
+ .short _0223C740 - _0223C582 - 2 ; case 21
+ .short _0223C758 - _0223C582 - 2 ; case 22
+ .short _0223C76E - _0223C582 - 2 ; case 23
+ .short _0223C784 - _0223C582 - 2 ; case 24
+ .short _0223C79A - _0223C582 - 2 ; case 25
+ .short _0223C7B0 - _0223C582 - 2 ; case 26
+ .short _0223C7C6 - _0223C582 - 2 ; case 27
+ .short _0223C7DC - _0223C582 - 2 ; case 28
+ .short _0223C7F0 - _0223C582 - 2 ; case 29
+ .short _0223C804 - _0223C582 - 2 ; case 30
+ .short _0223C81A - _0223C582 - 2 ; case 31
+ .short _0223C83A - _0223C582 - 2 ; case 32
+ .short _0223C85C - _0223C582 - 2 ; case 33
+ .short _0223C87C - _0223C582 - 2 ; case 34
+ .short _0223C89A - _0223C582 - 2 ; case 35
+ .short _0223C8B8 - _0223C582 - 2 ; case 36
+ .short _0223C8DA - _0223C582 - 2 ; case 37
+ .short _0223C8FA - _0223C582 - 2 ; case 38
+ .short _0223C91A - _0223C582 - 2 ; case 39
+ .short _0223C93A - _0223C582 - 2 ; case 40
+ .short _0223C95A - _0223C582 - 2 ; case 41
+ .short _0223C97A - _0223C582 - 2 ; case 42
+ .short _0223C99A - _0223C582 - 2 ; case 43
+ .short _0223C9BA - _0223C582 - 2 ; case 44
+ .short _0223C9D8 - _0223C582 - 2 ; case 45
+ .short _0223C9F6 - _0223C582 - 2 ; case 46
+ .short _0223CA14 - _0223C582 - 2 ; case 47
+ .short _0223CA26 - _0223C582 - 2 ; case 48
+ .short _0223CA48 - _0223C582 - 2 ; case 49
+ .short _0223CA6A - _0223C582 - 2 ; case 50
+ .short _0223CA8C - _0223C582 - 2 ; case 51
+ .short _0223CAAC - _0223C582 - 2 ; case 52
+ .short _0223CAD8 - _0223C582 - 2 ; case 53
+ .short _0223CB06 - _0223C582 - 2 ; case 54
+ .short _0223CB32 - _0223C582 - 2 ; case 55
+ .short _0223CB5C - _0223C582 - 2 ; case 56
+ .short _0223CB8A - _0223C582 - 2 ; case 57
+ .short _0223CBB8 - _0223C582 - 2 ; case 58
+ .short _0223CBE6 - _0223C582 - 2 ; case 59
+ .short _0223CC14 - _0223C582 - 2 ; case 60
+_0223C5FC:
+ ldr r2, [r4, #8]
+ bl MOD11_0223C230
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C606:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C610:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C61C:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CD6C
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C628:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C634:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C640:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C64A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C660:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C674:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C68A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD6C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C69E:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD2C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C6B2:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD84
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C6C8:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C6DC:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD9C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C6F0:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C704:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C71A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r0, [r4, #0xc]
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C728:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223C230
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C740:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C758:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C76E:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CD38
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C784:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C79A:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C7B0:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C7C6:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C7DC:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C7F0:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C804:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C81A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C83A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C85C:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C87C:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C89A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C8B8:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C8DA:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C8FA:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C91A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD6C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C93A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD2C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C95A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD78
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C97A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C99A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C9BA:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C9D8:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD6C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C9F6:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD78
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CA14:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r0, [r4, #0xc]
+ str r0, [r5, #8]
+ ldr r0, [r4, #0x10]
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CA26:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CDA8
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CA48:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CA6A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CA8C:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CAAC:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CAD8:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CB06:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ bl MOD11_0223CD6C
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CB32:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CB5C:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CB8A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CBB8:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CBE6:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDB4
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CC14:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDB4
+ str r0, [r5, #0x10]
+ ldr r2, [r4, #0x18]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #0x14]
+ ldr r2, [r4, #0x1c]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0x18]
+_0223CC58:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223CC5C
+MOD11_0223CC5C: ; 0x0223CC5C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ bl MOD11_0223C230
+ cmp r4, #0x16
+ bne _0223CC76
+ ldr r1, _0223CC84 ; =0x000021A0
+ add r2, r5, r0
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #8
+ orr r0, r1
+ pop {r3, r4, r5, pc}
+_0223CC76:
+ ldr r1, _0223CC88 ; =0x0000219C
+ add r2, r5, r0
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #8
+ orr r0, r1
+ pop {r3, r4, r5, pc}
+ nop
+_0223CC84: .word 0x000021A0
+_0223CC88: .word 0x0000219C
+
+ thumb_func_start MOD11_0223CC8C
+MOD11_0223CC8C: ; 0x0223CC8C
+ cmp r1, #1
+ beq _0223CC96
+ cmp r1, #0xff
+ beq _0223CC9C
+ bx lr
+_0223CC96:
+ ldr r1, _0223CCA4 ; =0x00003044
+ ldr r0, [r0, r1]
+ bx lr
+_0223CC9C:
+ mov r1, #0x49
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_0223CCA4: .word 0x00003044
+
+ thumb_func_start MOD11_0223CCA8
+MOD11_0223CCA8: ; 0x0223CCA8
+ push {r4, lr}
+ cmp r1, #0x15
+ bgt _0223CCC0
+ bge _0223CCF6
+ cmp r1, #2
+ bgt _0223CD18
+ cmp r1, #1
+ blt _0223CD18
+ beq _0223CCC6
+ cmp r1, #2
+ beq _0223CCDE
+ b _0223CD18
+_0223CCC0:
+ cmp r1, #0xff
+ beq _0223CD12
+ b _0223CD18
+_0223CCC6:
+ ldr r3, [r0, #0x64]
+ mov r1, #0xc0
+ mul r1, r3
+ add r2, r0, r1
+ ldr r1, _0223CD1C ; =0x00002DB8
+ ldrh r4, [r2, r1]
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x18
+ add r2, r4, #0
+ bl MOD11_0223D1D0
+ b _0223CD18
+_0223CCDE:
+ ldr r3, [r0, #0x6c]
+ mov r1, #0xc0
+ mul r1, r3
+ add r2, r0, r1
+ ldr r1, _0223CD1C ; =0x00002DB8
+ ldrh r4, [r2, r1]
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x18
+ add r2, r4, #0
+ bl MOD11_0223D1D0
+ b _0223CD18
+_0223CCF6:
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r3, [r0, r1]
+ mov r1, #0xc0
+ mul r1, r3
+ add r2, r0, r1
+ ldr r1, _0223CD1C ; =0x00002DB8
+ ldrh r4, [r2, r1]
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x18
+ add r2, r4, #0
+ bl MOD11_0223D1D0
+ b _0223CD18
+_0223CD12:
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ ldr r4, [r0, r1]
+_0223CD18:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+_0223CD1C: .word 0x00002DB8
+
+ thumb_func_start MOD11_0223CD20
+MOD11_0223CD20: ; 0x0223CD20
+ cmp r1, #0xff
+ bne _0223CD2A
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CD2A:
+ bx lr
+
+ thumb_func_start MOD11_0223CD2C
+MOD11_0223CD2C: ; 0x0223CD2C
+ cmp r1, #0xff
+ bne _0223CD36
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CD36:
+ bx lr
+
+ thumb_func_start MOD11_0223CD38
+MOD11_0223CD38: ; 0x0223CD38
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ cmp r2, #0xff
+ bne _0223CD48
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ b _0223CD64
+_0223CD48:
+ bl MOD11_0223C230
+ add r1, r0, #0
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _0223CD68 ; =0x00002D67
+ lsl r1, r1, #0x18
+ ldrb r4, [r2, r0]
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r2, r4, #0
+ bl MOD11_0223D1C4
+_0223CD64:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223CD68: .word 0x00002D67
+
+ thumb_func_start MOD11_0223CD6C
+MOD11_0223CD6C: ; 0x0223CD6C
+ cmp r1, #0xff
+ bne _0223CD76
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CD76:
+ bx lr
+
+ thumb_func_start MOD11_0223CD78
+MOD11_0223CD78: ; 0x0223CD78
+ cmp r1, #0xff
+ bne _0223CD82
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CD82:
+ bx lr
+
+ thumb_func_start MOD11_0223CD84
+MOD11_0223CD84: ; 0x0223CD84
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0223C230
+ ldr r1, _0223CD98 ; =0x0000219C
+ add r2, r4, r0
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #8
+ orr r0, r1
+ pop {r4, pc}
+ .align 2, 0
+_0223CD98: .word 0x0000219C
+
+ thumb_func_start MOD11_0223CD9C
+MOD11_0223CD9C: ; 0x0223CD9C
+ cmp r1, #0xff
+ bne _0223CDA6
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CDA6:
+ bx lr
+
+ thumb_func_start MOD11_0223CDA8
+MOD11_0223CDA8: ; 0x0223CDA8
+ cmp r1, #0xff
+ bne _0223CDB2
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CDB2:
+ bx lr
+
+ thumb_func_start MOD11_0223CDB4
+MOD11_0223CDB4: ; 0x0223CDB4
+ ldr r3, _0223CDB8 ; =MOD11_0223C230
+ bx r3
+ .align 2, 0
+_0223CDB8: .word MOD11_0223C230
+
+ thumb_func_start MOD11_0223CDBC
+MOD11_0223CDBC: ; 0x0223CDBC
+ ldr r3, _0223CDC0 ; =MOD11_0223C230
+ bx r3
+ .align 2, 0
+_0223CDC0: .word MOD11_0223C230
+
+ thumb_func_start MOD11_0223CDC4
+MOD11_0223CDC4: ; 0x0223CDC4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x78
+ add r7, r0, #0
+ add r5, r1, #0
+ str r2, [sp, #0x18]
+ bl MOD11_022300C4
+ str r0, [sp, #0x28]
+ add r0, r7, #0
+ bl MOD11_0223013C
+ str r0, [sp, #0x20]
+ add r0, r7, #0
+ bl MOD11_02230138
+ str r0, [sp, #0x24]
+ add r0, r7, #0
+ bl MOD11_0222FF68
+ str r0, [sp, #0x1c]
+ add r0, r7, #0
+ bl MOD11_02230078
+ add r6, r0, #0
+ add r0, r7, #0
+ bl MOD11_02230080
+ add r4, r0, #0
+ add r0, r7, #0
+ bl MOD11_022300CC
+ add r7, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0223D03C ; =0x00004E31
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ mov r2, #0x1b
+ mov r3, #0xc0
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x2e
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r1, #2
+ str r1, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, _0223D040 ; =0x00004E2C
+ add r2, r6, #0
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223D044 ; =0x00004E29
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x1b
+ mov r3, #0xc1
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223D044 ; =0x00004E29
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x1b
+ mov r3, #0xc2
+ bl FUN_0200C13C
+ ldr r2, _0223D048 ; =0x0225DD7C
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0200C154
+ str r0, [r5, #0xc]
+ bl FUN_0200C5A8
+ ldr r0, [sp, #0x18]
+ bl FUN_0206B6C8
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _0223D04C ; =0x00004E32
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ mov r2, #0x13
+ bl FUN_0200C978
+ 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, _0223D050 ; =0x00004E2D
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ bl FUN_0206B894
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0223D054 ; =0x00004E2A
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x13
+ bl FUN_0200C124
+ bl FUN_0206B8A0
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0223D054 ; =0x00004E2A
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x13
+ bl FUN_0200C13C
+ ldr r2, _0223D058 ; =0x0225DDB0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x10]
+ ldr r0, [sp, #0x18]
+ bl FUN_0206B87C
+ add r1, r0, #0
+ ldr r0, [r5, #0x10]
+ ldr r0, [r0]
+ bl FUN_020202DC
+ ldr r0, [r5, #0x10]
+ bl FUN_0200C5A8
+ mov r0, #1
+ mov r1, #5
+ bl FUN_02011744
+ str r0, [r5, #0x50]
+ ldr r0, [sp, #0x18]
+ mov r1, #0xaf
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0223CF26
+ mov r0, #2
+ b _0223CF30
+_0223CF26:
+ ldr r0, [sp, #0x18]
+ mov r1, #0x6f
+ mov r2, #0
+ bl FUN_020671BC
+_0223CF30:
+ cmp r0, #0
+ bne _0223CF42
+ mov r1, #0x3b
+ ldr r0, [sp, #0x28]
+ lsl r1, r1, #4
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _0223CF5C
+_0223CF42:
+ cmp r0, #1
+ bne _0223CF52
+ ldr r0, [sp, #0x28]
+ ldr r1, _0223D05C ; =0x000003B1
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _0223CF5C
+_0223CF52:
+ ldr r0, [sp, #0x28]
+ ldr r1, _0223D060 ; =0x000003B2
+ bl FUN_0200A914
+ add r6, r0, #0
+_0223CF5C:
+ ldr r0, [sp, #0x18]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [sp, #0x24]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ ldr r0, [sp, #0x24]
+ mov r3, #3
+ str r1, [sp, #4]
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x20]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, sp, #0x68
+ bl FUN_0201901C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ add r1, sp, #0x68
+ mov r2, #0xc
+ mov r3, #4
+ bl FUN_020190EC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0223D064 ; =0x00010200
+ ldr r2, [sp, #0x20]
+ str r0, [sp, #8]
+ add r0, sp, #0x68
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, sp, #0x68
+ mov r1, #1
+ mov r2, #5
+ bl FUN_02011898
+ mov r1, #1
+ add r2, r1, #0
+ add r3, sp, #0x5c
+ bl FUN_0201D568
+ ldr r0, [r5, #0x50]
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x68
+ str r0, [sp, #0x30]
+ add r0, r4, #0
+ bl FUN_0200CA40
+ str r0, [sp, #0x34]
+ ldr r1, _0223D040 ; =0x00004E2C
+ add r0, r4, #0
+ bl FUN_0200C334
+ mov r1, #0
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x60]
+ str r1, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ mov r0, #0xb0
+ str r0, [sp, #0x44]
+ mov r0, #8
+ str r0, [sp, #0x48]
+ mov r0, #0x64
+ str r0, [sp, #0x50]
+ mov r0, #1
+ str r0, [sp, #0x54]
+ mov r0, #5
+ str r0, [sp, #0x58]
+ add r0, sp, #0x2c
+ str r1, [sp, #0x4c]
+ bl FUN_020117E8
+ add r2, r5, #0
+ add r3, sp, #0x5c
+ str r0, [r5, #0x14]
+ ldmia r3!, {r0, r1}
+ add r2, #0x18
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #1
+ str r0, [r2]
+ ldr r0, [r5, #0x14]
+ bl FUN_02011AC0
+ add r0, sp, #0x68
+ bl FUN_02019178
+ add sp, #0x78
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223D03C: .word 0x00004E31
+_0223D040: .word 0x00004E2C
+_0223D044: .word 0x00004E29
+_0223D048: .word 0x0225DD7C
+_0223D04C: .word 0x00004E32
+_0223D050: .word 0x00004E2D
+_0223D054: .word 0x00004E2A
+_0223D058: .word 0x0225DDB0
+_0223D05C: .word 0x000003B1
+_0223D060: .word 0x000003B2
+_0223D064: .word 0x00010200
+
+ thumb_func_start MOD11_0223D068
+MOD11_0223D068: ; 0x0223D068
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl MOD11_02230080
+ add r4, r0, #0
+ ldr r0, [r5, #0xc]
+ bl FUN_0200C3DC
+ ldr r0, [r5, #0x10]
+ bl FUN_0200C3DC
+ ldr r0, [r5, #0x14]
+ bl FUN_02011870
+ add r0, r5, #0
+ add r0, #0x18
+ bl FUN_0201D5E8
+ ldr r1, _0223D0D4 ; =0x00004E31
+ add r0, r4, #0
+ bl FUN_0200C358
+ ldr r1, _0223D0D8 ; =0x00004E2C
+ add r0, r4, #0
+ bl FUN_0200C368
+ ldr r1, _0223D0DC ; =0x00004E29
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0223D0DC ; =0x00004E29
+ add r0, r4, #0
+ bl FUN_0200C388
+ ldr r1, _0223D0E0 ; =0x00004E32
+ add r0, r4, #0
+ bl FUN_0200C358
+ ldr r1, _0223D0E4 ; =0x00004E2D
+ add r0, r4, #0
+ bl FUN_0200C368
+ ldr r1, _0223D0E8 ; =0x00004E2A
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0223D0E8 ; =0x00004E2A
+ add r0, r4, #0
+ bl FUN_0200C388
+ ldr r0, [r5, #0x50]
+ bl FUN_020117BC
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223D0D4: .word 0x00004E31
+_0223D0D8: .word 0x00004E2C
+_0223D0DC: .word 0x00004E29
+_0223D0E0: .word 0x00004E32
+_0223D0E4: .word 0x00004E2D
+_0223D0E8: .word 0x00004E2A
+
+ thumb_func_start MOD11_0223D0EC
+MOD11_0223D0EC: ; 0x0223D0EC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r1, r2, #0
+ add r5, r0, #0
+ str r2, [sp]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _0223D1B8
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223D13C
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_0223022C
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD11_0223022C
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r2, #0xc0
+ add r0, r1, #0
+ mul r0, r2
+ mul r2, r6
+ ldr r3, _0223D1BC ; =0x00002D74
+ add r0, r4, r0
+ add r2, r4, r2
+ ldrb r0, [r0, r3]
+ ldrb r2, [r2, r3]
+ cmp r0, r2
+ bls _0223D148
+ add r6, r1, #0
+ b _0223D148
+_0223D13C:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223022C
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+_0223D148:
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r1, #0
+ add r3, r4, r2
+ ldr r2, _0223D1C0 ; =0x0000219C
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ add r7, r0, #0
+ ldr r0, [sp]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ add r0, r4, r2
+ ldr r2, _0223D1BC ; =0x00002D74
+ mul r1, r6
+ add r1, r4, r1
+ ldrb r0, [r0, r2]
+ ldrb r1, [r1, r2]
+ cmp r1, r0
+ bls _0223D1A4
+ sub r0, r1, r0
+ cmp r0, #0x1e
+ blt _0223D18E
+ add r0, r5, #0
+ bl MOD11_022302B0
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ add r0, r7, #0
+ mov r1, #8
+ lsr r2, r2, #0x10
+ bl FUN_020688E8
+ pop {r3, r4, r5, r6, r7, pc}
+_0223D18E:
+ add r0, r5, #0
+ bl MOD11_022302B0
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ add r0, r7, #0
+ mov r1, #6
+ lsr r2, r2, #0x10
+ bl FUN_020688E8
+ pop {r3, r4, r5, r6, r7, pc}
+_0223D1A4:
+ add r0, r5, #0
+ bl MOD11_022302B0
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ add r0, r7, #0
+ mov r1, #6
+ lsr r2, r2, #0x10
+ bl FUN_020688E8
+_0223D1B8:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223D1BC: .word 0x00002D74
+_0223D1C0: .word 0x0000219C
+
+ thumb_func_start MOD11_0223D1C4
+MOD11_0223D1C4: ; 0x0223D1C4
+ add r1, r0, r1
+ mov r0, #0x39
+ lsl r0, r0, #4
+ strb r2, [r1, r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0223D1D0
+MOD11_0223D1D0: ; 0x0223D1D0
+ lsl r1, r1, #1
+ add r1, r0, r1
+ mov r0, #0xe5
+ lsl r0, r0, #2
+ strh r2, [r1, r0]
+ bx lr
+
+ thumb_func_start MOD11_0223D1DC
+MOD11_0223D1DC: ; 0x0223D1DC
+ push {r3, r4, r5, lr}
+ ldr r1, _0223D22C ; =0x0000314C
+ add r5, r0, #0
+ mov r0, #5
+ bl FUN_02016998
+ add r4, r0, #0
+ ldr r2, _0223D22C ; =0x0000314C
+ mov r0, #0
+ add r1, r4, #0
+ blx MIi_CpuClearFast
+ add r0, r4, #0
+ bl MOD11_02245494
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02245588
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0223D216
+ mov r2, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl FUN_021EFBF4
+_0223D216:
+ ldr r0, _0223D230 ; =0x000003DE
+ add r0, r4, r0
+ bl FUN_0206AB04
+ mov r0, #5
+ bl FUN_0206EB50
+ ldr r1, _0223D234 ; =0x00002120
+ str r0, [r4, r1]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223D22C: .word 0x0000314C
+_0223D230: .word 0x000003DE
+_0223D234: .word 0x00002120
+
+ thumb_func_start MOD11_0223D238
+MOD11_0223D238: ; 0x0223D238
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, _0223D27C ; =0x0000311F
+ add r5, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _0223D25E
+ bl MOD11_0223145C
+ cmp r0, #0
+ beq _0223D25E
+ add r0, r5, #0
+ bl MOD11_0223145C
+ mov r1, #0x40
+ tst r0, r1
+ bne _0223D25E
+ mov r0, #0x29
+ str r0, [r4, #8]
+_0223D25E:
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ lsl r3, r2, #2
+ ldr r2, _0223D280 ; =0x0225E194
+ add r1, r4, #0
+ ldr r2, [r2, r3]
+ blx r2
+ ldr r0, [r4, #8]
+ cmp r0, #0x2b
+ bne _0223D276
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0223D276:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0223D27C: .word 0x0000311F
+_0223D280: .word 0x0225E194
+
+ thumb_func_start MOD11_0223D284
+MOD11_0223D284: ; 0x0223D284
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0223D298 ; =0x00002120
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+_0223D298: .word 0x00002120
+
+ thumb_func_start MOD11_0223D29C
+MOD11_0223D29C: ; 0x0223D29C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r6, [sp, #0x20]
+ add r5, r0, #0
+ add r4, r1, #0
+ add r7, r2, #0
+ str r3, [sp, #4]
+ str r6, [sp]
+ bl MOD11_0224053C
+ ldr r0, [sp, #0x20]
+ ldr r3, [sp, #4]
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_02240890
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223D2C4
+MOD11_0223D2C4: ; 0x0223D2C4
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ mov r4, #0
+ cmp r7, #0
+ ble _0223D2EC
+_0223D2D6:
+ ldr r3, _0223D2FC ; =0x0000219C
+ add r6, r5, r4
+ ldrb r3, [r6, r3]
+ ldr r0, [sp]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_02242B78
+ add r4, r4, #1
+ cmp r4, r7
+ blt _0223D2D6
+_0223D2EC:
+ ldr r0, _0223D300 ; =0x00002E4C
+ ldr r1, [r5, r0]
+ ldr r0, _0223D304 ; =0x00003122
+ strh r1, [r5, r0]
+ mov r0, #1
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223D2FC: .word 0x0000219C
+_0223D300: .word 0x00002E4C
+_0223D304: .word 0x00003122
+
+ thumb_func_start MOD11_0223D308
+MOD11_0223D308: ; 0x0223D308
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #2
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0223D320
+MOD11_0223D320: ; 0x0223D320
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0224529C
+ cmp r0, #0
+ beq _0223D342
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x29
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #3
+ str r0, [r4, #0xc]
+ b _0223D346
+_0223D342:
+ mov r0, #3
+ str r0, [r4, #8]
+_0223D346:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224728C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0223D350
+MOD11_0223D350: ; 0x0223D350
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_022476DC
+ add r2, r0, #0
+ beq _0223D370
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_0223D370:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224728C
+ mov r0, #4
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223D380
+MOD11_0223D380: ; 0x0223D380
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r4, r1, #0
+ bl MOD11_0222FF84
+ add r5, r0, #0
+ mov r3, #0
+ cmp r5, #0
+ ble _0223D3AA
+ mov r7, #0xb7
+ lsl r7, r7, #6
+ add r6, r4, #0
+ add r2, r3, #0
+ add r0, r7, #4
+_0223D39C:
+ strb r2, [r4, r3]
+ ldr r1, [r6, r7]
+ add r3, r3, #1
+ str r1, [r6, r0]
+ add r6, #0xc0
+ cmp r3, r5
+ blt _0223D39C
+_0223D3AA:
+ ldr r0, [sp]
+ mov r1, #0
+ bl MOD11_022312AC
+ mov r0, #5
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223D3B8
+MOD11_0223D3B8: ; 0x0223D3B8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0xb8
+ add r7, r0, #0
+ add r6, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #0x64]
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #0x24]
+ mov r4, #0
+ ldr r0, [sp, #0x64]
+ str r4, [sp, #0x60]
+ cmp r0, #0
+ bgt _0223D3DA
+ b _0223DB58
+_0223D3DA:
+ mov r0, #0x75
+ lsl r0, r0, #2
+ add r0, r6, r0
+ str r0, [sp, #0x50]
+ ldr r0, _0223D710 ; =0x000021AC
+ mov r1, #2
+ add r0, r6, r0
+ str r0, [sp, #0x40]
+ mov r0, #0x23
+ lsl r0, r0, #8
+ add r0, r6, r0
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x24]
+ str r6, [sp, #0x54]
+ and r0, r1
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x24]
+ mov r1, #8
+ and r0, r1
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x24]
+ lsl r1, r1, #6
+ and r0, r1
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x20
+ and r0, r1
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x24]
+ mov r1, #4
+ and r0, r1
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x80
+ and r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x24]
+ mov r1, #1
+ and r0, r1
+ str r6, [sp, #0x4c]
+ str r6, [sp, #0x48]
+ str r6, [sp, #0x44]
+ str r0, [sp, #0x1c]
+_0223D430:
+ ldrb r0, [r6, r4]
+ add r5, r6, r4
+ cmp r0, #0x10
+ bhi _0223D50A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223D444: ; jump table
+ .short _0223D466 - _0223D444 - 2 ; case 0
+ .short _0223D4DA - _0223D444 - 2 ; case 1
+ .short _0223D6EE - _0223D444 - 2 ; case 2
+ .short _0223D6FC - _0223D444 - 2 ; case 3
+ .short _0223D7DA - _0223D444 - 2 ; case 4
+ .short _0223D814 - _0223D444 - 2 ; case 5
+ .short _0223D848 - _0223D444 - 2 ; case 6
+ .short _0223D856 - _0223D444 - 2 ; case 7
+ .short _0223D884 - _0223D444 - 2 ; case 8
+ .short _0223D8FC - _0223D444 - 2 ; case 9
+ .short _0223D93C - _0223D444 - 2 ; case 10
+ .short _0223D9F8 - _0223D444 - 2 ; case 11
+ .short _0223DA46 - _0223D444 - 2 ; case 12
+ .short _0223DA94 - _0223D444 - 2 ; case 13
+ .short _0223DA9C - _0223D444 - 2 ; case 14
+ .short _0223DAB6 - _0223D444 - 2 ; case 15
+ .short _0223DB14 - _0223D444 - 2 ; case 16
+_0223D466:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ beq _0223D486
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ bne _0223D486
+ cmp r4, #2
+ bne _0223D47C
+ ldrb r0, [r6]
+ cmp r0, #0xd
+ bne _0223D50A
+_0223D47C:
+ cmp r4, #3
+ bne _0223D486
+ ldrb r0, [r6, #1]
+ cmp r0, #0xd
+ bne _0223D50A
+_0223D486:
+ add r0, r4, #0
+ bl FUN_0206A92C
+ ldr r1, _0223D714 ; =0x00003108
+ ldrb r1, [r6, r1]
+ tst r0, r1
+ beq _0223D4A2
+ mov r0, #0xc
+ strb r0, [r5]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x27
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D4A2:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD04
+ cmp r0, #0
+ bne _0223D4C8
+ ldr r0, [sp, #0x50]
+ mov r2, #0xd
+ ldr r1, [r0]
+ mov r0, #2
+ orr r1, r0
+ ldr r0, [sp, #0x50]
+ str r1, [r0]
+ mov r0, #0xc
+ strb r0, [r5]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D4C8:
+ ldr r3, _0223D71C ; =0x0000219C
+ add r0, r7, #0
+ ldrb r3, [r5, r3]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02255188
+ mov r0, #1
+ strb r0, [r5]
+_0223D4DA:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223D50A
+ mov r1, #0x23
+ ldr r0, [sp, #0x4c]
+ lsl r1, r1, #8
+ ldrb r2, [r0, r1]
+ ldr r1, _0223D720 ; =0x000021B4
+ ldr r0, [sp, #0x54]
+ str r2, [r0, r1]
+ ldr r0, [sp, #0x30]
+ cmp r0, #0
+ beq _0223D52E
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #1
+ beq _0223D50C
+ cmp r0, #4
+ beq _0223D51E
+_0223D50A:
+ b _0223DB20
+_0223D50C:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x11
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D51E:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r1, #0xc
+ strb r1, [r5, #4]
+ ldr r2, _0223D718 ; =0x000021A8
+ ldr r1, [sp, #0x54]
+ str r0, [r1, r2]
+ b _0223DB20
+_0223D52E:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0
+ beq _0223D5B0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #5
+ bhi _0223D5DA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223D54C: ; jump table
+ .short _0223DB20 - _0223D54C - 2 ; case 0
+ .short _0223D558 - _0223D54C - 2 ; case 1
+ .short _0223D56A - _0223D54C - 2 ; case 2
+ .short _0223D57C - _0223D54C - 2 ; case 3
+ .short _0223D58E - _0223D54C - 2 ; case 4
+ .short _0223D59E - _0223D54C - 2 ; case 5
+_0223D558:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x11
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D56A:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x12
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D57C:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x13
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D58E:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r1, #0xc
+ strb r1, [r5, #4]
+ ldr r2, _0223D718 ; =0x000021A8
+ ldr r1, [sp, #0x54]
+ str r0, [r1, r2]
+ b _0223DB20
+_0223D59E:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x14
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D5B0:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #4
+ bgt _0223D5D6
+ cmp r0, #0
+ blt _0223D5DA
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223D5CC: ; jump table
+ .short _0223DB20 - _0223D5CC - 2 ; case 0
+ .short _0223D5DC - _0223D5CC - 2 ; case 1
+ .short _0223D63C - _0223D5CC - 2 ; case 2
+ .short _0223D698 - _0223D5CC - 2 ; case 3
+ .short _0223D6A6 - _0223D5CC - 2 ; case 4
+_0223D5D6:
+ cmp r0, #0xff
+ beq _0223D6B4
+_0223D5DA:
+ b _0223DB20
+_0223D5DC:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ cmp r0, #0xf
+ bne _0223D5FC
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xf
+ strb r0, [r5, #4]
+ b _0223D632
+_0223D5FC:
+ ldr r3, _0223D724 ; =0x00002DEC
+ ldr r0, [sp, #0x48]
+ ldrh r0, [r0, r3]
+ cmp r0, #0
+ beq _0223D62E
+ ldr r0, [sp, #0x48]
+ add r1, r3, #2
+ ldrh r1, [r0, r1]
+ ldr r2, _0223D728 ; =0x000030BC
+ ldr r0, [sp, #0x44]
+ strh r1, [r0, r2]
+ ldr r0, [sp, #0x48]
+ sub r2, #8
+ ldrh r1, [r0, r3]
+ ldr r0, [sp, #0x44]
+ strh r1, [r0, r2]
+ ldr r1, _0223D72C ; =0x000021B0
+ ldr r0, [sp, #0x54]
+ mov r2, #0
+ str r2, [r0, r1]
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ b _0223D632
+_0223D62E:
+ mov r0, #2
+ strb r0, [r5]
+_0223D632:
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0xd
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D63C:
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ mov r1, #0x84
+ tst r0, r1
+ beq _0223D68A
+ ldr r1, _0223D730 ; =0x00000251
+ add r0, sp, #0x90
+ strh r1, [r0, #6]
+ mov r1, #0
+ strb r1, [r0, #5]
+ mov r0, sp
+ str r0, [sp, #0x68]
+ sub r0, #8
+ str r0, [sp, #0x68]
+ add r3, r0, #0
+ mov r0, #4
+ add r2, sp, #0x94
+ str r0, [sp, #0x6c]
+_0223D662:
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [sp, #0x6c]
+ sub r0, r0, #1
+ str r0, [sp, #0x6c]
+ bne _0223D662
+ ldr r0, [r2]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [sp, #0x68]
+ ldmia r0!, {r2, r3}
+ str r0, [sp, #0x68]
+ add r0, r7, #0
+ bl MOD11_02255FBC
+ mov r0, #0xe
+ strb r0, [r5]
+ mov r0, #0
+ strb r0, [r5, #4]
+ b _0223DB20
+_0223D68A:
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0xe
+ str r2, [r0, r1]
+ mov r0, #6
+ strb r0, [r5]
+ b _0223DB20
+_0223D698:
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0xf
+ str r2, [r0, r1]
+ mov r0, #8
+ strb r0, [r5]
+ b _0223DB20
+_0223D6A6:
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x10
+ str r2, [r0, r1]
+ mov r0, #0xa
+ strb r0, [r5]
+ b _0223DB20
+_0223D6B4:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ beq _0223D6D4
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02256268
+ mov r0, #0
+ strb r0, [r5]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022302BC
+ mov r1, #0
+ strb r1, [r6, r0]
+ b _0223DB20
+_0223D6D4:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ beq _0223D740
+ cmp r4, #2
+ bne _0223D740
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02256268
+ mov r0, #0
+ strb r0, [r6]
+ strb r0, [r6, #2]
+ b _0223DB20
+_0223D6EE:
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02255544
+ mov r0, #3
+ strb r0, [r5]
+_0223D6FC:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223D734
+ mov r0, #0
+ strb r0, [r5]
+ b _0223DB20
+ nop
+_0223D710: .word 0x000021AC
+_0223D714: .word 0x00003108
+_0223D718: .word 0x000021A8
+_0223D71C: .word 0x0000219C
+_0223D720: .word 0x000021B4
+_0223D724: .word 0x00002DEC
+_0223D728: .word 0x000030BC
+_0223D72C: .word 0x000021B0
+_0223D730: .word 0x00000251
+_0223D734:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ bne _0223D742
+_0223D740:
+ b _0223DB20
+_0223D742:
+ mov r1, #0x23
+ ldr r0, [sp, #0x4c]
+ lsl r1, r1, #8
+ ldrb r0, [r0, r1]
+ sub r3, r0, #1
+ cmp r3, #4
+ bne _0223D75E
+ ldr r1, _0223DA6C ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x10
+ str r2, [r0, r1]
+ mov r0, #0xa
+ strb r0, [r5]
+ b _0223DB20
+_0223D75E:
+ add r0, sp, #0x94
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02245F74
+ cmp r0, #0
+ bne _0223D7A8
+ mov r0, sp
+ str r0, [sp, #0x70]
+ sub r0, #8
+ str r0, [sp, #0x70]
+ add r3, r0, #0
+ mov r0, #4
+ add r2, sp, #0x94
+ str r0, [sp, #0x74]
+_0223D780:
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [sp, #0x74]
+ sub r0, r0, #1
+ str r0, [sp, #0x74]
+ bne _0223D780
+ ldr r0, [r2]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [sp, #0x70]
+ ldmia r0!, {r2, r3}
+ str r0, [sp, #0x70]
+ add r0, r7, #0
+ bl MOD11_02255FBC
+ mov r0, #0xe
+ strb r0, [r5]
+ mov r0, #2
+ strb r0, [r5, #4]
+ b _0223DB20
+_0223D7A8:
+ mov r3, #0x23
+ ldr r0, [sp, #0x4c]
+ lsl r3, r3, #8
+ ldrb r2, [r0, r3]
+ ldr r1, _0223DA70 ; =0x000021B0
+ ldr r0, [sp, #0x54]
+ str r2, [r0, r1]
+ ldr r0, [sp, #0x4c]
+ ldr r2, _0223DA74 ; =0x000030BC
+ ldrb r0, [r0, r3]
+ sub r1, r0, #1
+ ldr r0, [sp, #0x44]
+ strh r1, [r0, r2]
+ ldrh r0, [r0, r2]
+ sub r2, #8
+ lsl r1, r0, #1
+ ldr r0, [sp, #0x48]
+ add r1, r0, r1
+ ldr r0, _0223DA78 ; =0x00002D4C
+ ldrh r1, [r1, r0]
+ ldr r0, [sp, #0x44]
+ strh r1, [r0, r2]
+ mov r0, #4
+ strb r0, [r5]
+ b _0223DB20
+_0223D7DA:
+ add r0, sp, #0x90
+ str r0, [sp]
+ ldr r1, _0223DA74 ; =0x000030BC
+ ldr r0, [sp, #0x44]
+ lsl r2, r4, #0x18
+ ldrh r0, [r0, r1]
+ ldr r3, [sp, #0x24]
+ add r1, r6, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x40]
+ lsr r2, r2, #0x18
+ str r0, [sp, #8]
+ add r0, r7, #0
+ bl MOD11_0224235C
+ cmp r0, #0
+ beq _0223D80E
+ ldr r2, [sp, #0x90]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r3, r4, #0
+ bl MOD11_02255600
+ mov r0, #5
+ strb r0, [r5]
+ b _0223DB20
+_0223D80E:
+ mov r0, #0xc
+ strb r0, [r5]
+ b _0223DB20
+_0223D814:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223D826
+ mov r0, #2
+ strb r0, [r5]
+ b _0223DB20
+_0223D826:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223D91A
+ mov r1, #0x23
+ ldr r0, [sp, #0x4c]
+ lsl r1, r1, #8
+ ldrb r0, [r0, r1]
+ ldr r1, _0223DA7C ; =0x000021AC
+ sub r2, r0, #1
+ ldr r0, [sp, #0x54]
+ str r2, [r0, r1]
+ mov r0, #0xc
+ strb r0, [r5]
+ b _0223DB20
+_0223D848:
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_0225573C
+ mov r0, #7
+ strb r0, [r5]
+_0223D856:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223D868
+ mov r0, #0
+ strb r0, [r5]
+ b _0223DB20
+_0223D868:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223D91A
+ ldr r0, [sp, #0x3c]
+ ldr r1, _0223DA70 ; =0x000021B0
+ ldr r2, [r0]
+ ldr r0, [sp, #0x54]
+ str r2, [r0, r1]
+ mov r0, #0xc
+ strb r0, [r5]
+ b _0223DB20
+_0223D884:
+ mov r0, #6
+ str r0, [sp, #0x58]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02249E80
+ str r0, [sp, #0x5c]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02230260
+ cmp r0, #4
+ beq _0223D8AC
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02230260
+ cmp r0, #5
+ bne _0223D8E4
+_0223D8AC:
+ ldr r0, [sp, #0x24]
+ cmp r0, #3
+ beq _0223D8CA
+ cmp r0, #7
+ beq _0223D8CA
+ cmp r0, #0x83
+ beq _0223D8CA
+ cmp r0, #0x13
+ bne _0223D8E4
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02230260
+ cmp r0, #4
+ bne _0223D8E4
+_0223D8CA:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022302BC
+ lsl r0, r0, #4
+ add r2, r6, r0
+ ldr r0, _0223DA6C ; =0x000021A8
+ ldr r1, [r2, r0]
+ cmp r1, #0xf
+ bne _0223D8E4
+ add r0, #8
+ ldr r0, [r2, r0]
+ str r0, [sp, #0x58]
+_0223D8E4:
+ ldr r0, [sp, #0x5c]
+ add r1, r6, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x58]
+ add r2, r4, #0
+ str r0, [sp, #4]
+ add r0, r7, #0
+ mov r3, #0
+ bl MOD11_022558E0
+ mov r0, #9
+ strb r0, [r5]
+_0223D8FC:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223D90E
+ mov r0, #0
+ strb r0, [r5]
+ b _0223DB20
+_0223D90E:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ bne _0223D91C
+_0223D91A:
+ b _0223DB20
+_0223D91C:
+ mov r3, #0x23
+ ldr r0, [sp, #0x4c]
+ lsl r3, r3, #8
+ ldrb r0, [r0, r3]
+ ldr r2, _0223DA70 ; =0x000021B0
+ sub r1, r0, #1
+ ldr r0, [sp, #0x54]
+ str r1, [r0, r2]
+ ldr r0, [sp, #0x4c]
+ sub r2, #0x10
+ ldrb r0, [r0, r3]
+ sub r0, r0, #1
+ strb r0, [r5, r2]
+ mov r0, #0xc
+ strb r0, [r5]
+ b _0223DB20
+_0223D93C:
+ ldr r0, [sp, #0x20]
+ cmp r0, #0
+ beq _0223D95C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r3, _0223DA80 ; =0x000003BB
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02255980
+ mov r0, #0xb
+ strb r0, [r5]
+ b _0223DB20
+_0223D95C:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0223D9AA
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ bne _0223D9AA
+ mov r1, #0
+ add r0, sp, #0x90
+ strb r1, [r0, #5]
+ ldr r1, _0223DA84 ; =0x00000319
+ add r2, sp, #0x94
+ strh r1, [r0, #6]
+ mov r0, sp
+ str r0, [sp, #0x78]
+ sub r0, #8
+ str r0, [sp, #0x78]
+ add r3, r0, #0
+ mov r0, #4
+ str r0, [sp, #0x7c]
+_0223D982:
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [sp, #0x7c]
+ sub r0, r0, #1
+ str r0, [sp, #0x7c]
+ bne _0223D982
+ ldr r0, [r2]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [sp, #0x78]
+ ldmia r0!, {r2, r3}
+ str r0, [sp, #0x78]
+ add r0, r7, #0
+ bl MOD11_02255FBC
+ mov r0, #0xe
+ strb r0, [r5]
+ mov r0, #0
+ strb r0, [r5, #4]
+ b _0223DB20
+_0223D9AA:
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ add r3, sp, #0x94
+ bl MOD11_02246ED0
+ cmp r0, #0
+ beq _0223D9F2
+ mov r0, sp
+ str r0, [sp, #0x80]
+ sub r0, #8
+ str r0, [sp, #0x80]
+ add r3, r0, #0
+ mov r0, #4
+ add r2, sp, #0x94
+ str r0, [sp, #0x84]
+_0223D9CA:
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [sp, #0x84]
+ sub r0, r0, #1
+ str r0, [sp, #0x84]
+ bne _0223D9CA
+ ldr r0, [r2]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [sp, #0x80]
+ ldmia r0!, {r2, r3}
+ str r0, [sp, #0x80]
+ add r0, r7, #0
+ bl MOD11_02255FBC
+ mov r0, #0xe
+ strb r0, [r5]
+ mov r0, #0
+ strb r0, [r5, #4]
+ b _0223DB20
+_0223D9F2:
+ mov r0, #0xb
+ strb r0, [r5]
+ b _0223DB20
+_0223D9F8:
+ ldr r0, [sp, #0x20]
+ cmp r0, #0
+ beq _0223DA22
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223DA26
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223DA1C
+ mov r0, #0
+ strb r0, [r5]
+ b _0223DA26
+_0223DA1C:
+ mov r0, #0xc
+ strb r0, [r5]
+ b _0223DA26
+_0223DA22:
+ mov r0, #0xc
+ strb r0, [r5]
+_0223DA26:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ beq _0223DB20
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ bne _0223DB20
+ ldrb r0, [r5]
+ cmp r0, #0xc
+ bne _0223DB20
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022302BC
+ mov r1, #0xc
+ strb r1, [r6, r0]
+ b _0223DB20
+_0223DA46:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02256268
+ ldr r0, [sp, #0x24]
+ cmp r0, #7
+ bne _0223DA88
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022302BC
+ ldrb r0, [r6, r0]
+ cmp r0, #0xd
+ bne _0223DA90
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022564CC
+ b _0223DA90
+ .align 2, 0
+_0223DA6C: .word 0x000021A8
+_0223DA70: .word 0x000021B0
+_0223DA74: .word 0x000030BC
+_0223DA78: .word 0x00002D4C
+_0223DA7C: .word 0x000021AC
+_0223DA80: .word 0x000003BB
+_0223DA84: .word 0x00000319
+_0223DA88:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022564CC
+_0223DA90:
+ mov r0, #0xd
+ strb r0, [r5]
+_0223DA94:
+ ldr r0, [sp, #0x60]
+ add r0, r0, #1
+ str r0, [sp, #0x60]
+ b _0223DB20
+_0223DA9C:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223DB20
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_02243400
+ ldrb r0, [r5, #4]
+ strb r0, [r5]
+ b _0223DB20
+_0223DAB6:
+ mov r1, #2
+ add r0, sp, #0x90
+ strb r1, [r0, #5]
+ mov r1, #0x26
+ lsl r1, r1, #4
+ strh r1, [r0, #6]
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224682C
+ str r0, [sp, #0x98]
+ mov r0, sp
+ str r0, [sp, #0x88]
+ sub r0, #8
+ str r0, [sp, #0x88]
+ add r3, r0, #0
+ mov r0, #4
+ add r2, sp, #0x94
+ mov ip, r0
+_0223DADC:
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ mov r0, ip
+ sub r0, r0, #1
+ mov ip, r0
+ bne _0223DADC
+ ldr r0, [r2]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [sp, #0x88]
+ ldmia r0!, {r2, r3}
+ str r0, [sp, #0x88]
+ add r0, r7, #0
+ bl MOD11_02255FBC
+ ldr r0, [sp, #0x50]
+ mov r1, #1
+ ldr r0, [r0]
+ bic r0, r1
+ mov r1, #1
+ orr r1, r0
+ ldr r0, [sp, #0x50]
+ str r1, [r0]
+ mov r0, #0xe
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ b _0223DB20
+_0223DB14:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022563B4
+ ldrb r0, [r5, #4]
+ strb r0, [r5]
+_0223DB20:
+ ldr r0, [sp, #0x54]
+ ldr r1, [sp, #0x4c]
+ add r0, #0x10
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0x50]
+ add r4, r4, #1
+ add r0, #0x40
+ str r0, [sp, #0x50]
+ mov r0, #1
+ lsl r0, r0, #8
+ add r1, r1, r0
+ str r1, [sp, #0x4c]
+ ldr r1, [sp, #0x48]
+ add r1, #0xc0
+ str r1, [sp, #0x48]
+ ldr r1, [sp, #0x44]
+ add r1, r1, #2
+ str r1, [sp, #0x44]
+ ldr r1, [sp, #0x40]
+ add r1, #0x10
+ str r1, [sp, #0x40]
+ ldr r1, [sp, #0x3c]
+ add r0, r1, r0
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x64]
+ cmp r4, r0
+ bge _0223DB58
+ b _0223D430
+_0223DB58:
+ ldr r1, [sp, #0x60]
+ ldr r0, [sp, #0x64]
+ cmp r1, r0
+ bne _0223DB96
+ mov r0, #6
+ str r0, [r6, #8]
+ ldr r0, [sp, #0x64]
+ mov r5, #0
+ cmp r0, #0
+ ble _0223DB96
+ str r6, [sp, #0x8c]
+_0223DB6E:
+ ldr r1, _0223DB9C ; =0x000021A8
+ ldr r0, [sp, #0x8c]
+ ldr r0, [r0, r1]
+ cmp r0, #0xf
+ bne _0223DB88
+ ldr r3, _0223DBA0 ; =0x000021A0
+ add r4, r6, r5
+ ldrb r3, [r4, r3]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD11_0224B290
+_0223DB88:
+ ldr r0, [sp, #0x8c]
+ add r5, r5, #1
+ add r0, #0x10
+ str r0, [sp, #0x8c]
+ ldr r0, [sp, #0x64]
+ cmp r5, r0
+ blt _0223DB6E
+_0223DB96:
+ add sp, #0xb8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223DB9C: .word 0x000021A8
+_0223DBA0: .word 0x000021A0
+
+ thumb_func_start MOD11_0223DBA4
+MOD11_0223DBA4: ; 0x0223DBA4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r0, [sp, #4]
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ mov r2, #0x22
+ lsl r2, r2, #4
+ mov r1, #0
+ tst r2, r0
+ beq _0223DBDA
+ ldr r0, [sp, #0x14]
+ add r4, r1, #0
+ cmp r0, #0
+ ble _0223DBD8
+ ldr r1, _0223DD14 ; =0x000021E8
+_0223DBCC:
+ add r0, r5, r4
+ strb r4, [r0, r1]
+ ldr r0, [sp, #0x14]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0223DBCC
+_0223DBD8:
+ b _0223DD0C
+_0223DBDA:
+ mov r2, #4
+ tst r0, r2
+ beq _0223DC02
+ ldr r0, [sp, #0x14]
+ add r4, r1, #0
+ cmp r0, #0
+ ble _0223DC1A
+ ldr r2, _0223DD18 ; =0x000021B4
+ add r3, r5, #0
+_0223DBEC:
+ ldr r0, [r3, r2]
+ cmp r0, #4
+ bne _0223DBF6
+ mov r1, #5
+ b _0223DC1A
+_0223DBF6:
+ ldr r0, [sp, #0x14]
+ add r4, r4, #1
+ add r3, #0x10
+ cmp r4, r0
+ blt _0223DBEC
+ b _0223DC1A
+_0223DC02:
+ ldr r0, _0223DD18 ; =0x000021B4
+ ldr r0, [r5, r0]
+ cmp r0, #4
+ bne _0223DC0E
+ add r4, r1, #0
+ mov r1, #5
+_0223DC0E:
+ ldr r0, _0223DD1C ; =0x000021D4
+ ldr r0, [r5, r0]
+ cmp r0, #4
+ bne _0223DC1A
+ mov r4, #2
+ mov r1, #5
+_0223DC1A:
+ cmp r1, #5
+ bne _0223DC42
+ ldr r0, _0223DD14 ; =0x000021E8
+ ldr r2, [sp, #0x14]
+ strb r4, [r5, r0]
+ mov r1, #1
+ mov r0, #0
+ cmp r2, #0
+ ble _0223DD0C
+ ldr r3, _0223DD14 ; =0x000021E8
+_0223DC2E:
+ cmp r0, r4
+ beq _0223DC38
+ add r2, r5, r1
+ strb r0, [r2, r3]
+ add r1, r1, #1
+_0223DC38:
+ ldr r2, [sp, #0x14]
+ add r0, r0, #1
+ cmp r0, r2
+ blt _0223DC2E
+ b _0223DD0C
+_0223DC42:
+ ldr r0, [sp, #0x14]
+ mov r2, #0
+ cmp r0, #0
+ ble _0223DC6A
+ ldr r4, _0223DD14 ; =0x000021E8
+ add r0, r5, #0
+ add r6, r4, #0
+ sub r6, #0x34
+_0223DC52:
+ ldr r3, [r0, r6]
+ sub r3, r3, #2
+ cmp r3, #1
+ bhi _0223DC60
+ add r3, r5, r1
+ strb r2, [r3, r4]
+ add r1, r1, #1
+_0223DC60:
+ ldr r3, [sp, #0x14]
+ add r2, r2, #1
+ add r0, #0x10
+ cmp r2, r3
+ blt _0223DC52
+_0223DC6A:
+ ldr r0, [sp, #0x14]
+ mov r2, #0
+ cmp r0, #0
+ ble _0223DC94
+ ldr r4, _0223DD14 ; =0x000021E8
+ add r0, r5, #0
+ add r6, r4, #0
+ sub r6, #0x34
+_0223DC7A:
+ ldr r3, [r0, r6]
+ cmp r3, #2
+ beq _0223DC8A
+ cmp r3, #3
+ beq _0223DC8A
+ add r3, r5, r1
+ strb r2, [r3, r4]
+ add r1, r1, #1
+_0223DC8A:
+ ldr r3, [sp, #0x14]
+ add r2, r2, #1
+ add r0, #0x10
+ cmp r2, r3
+ blt _0223DC7A
+_0223DC94:
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x14]
+ sub r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #0
+ ble _0223DD0C
+_0223DCA2:
+ ldr r0, [sp, #8]
+ add r7, r0, #1
+ ldr r0, [sp, #0x14]
+ cmp r7, r0
+ bge _0223DD00
+ ldr r0, [sp, #8]
+ add r0, r5, r0
+ str r0, [sp, #0x10]
+_0223DCB2:
+ ldr r1, [sp, #0x10]
+ ldr r0, _0223DD14 ; =0x000021E8
+ ldrb r6, [r1, r0]
+ add r1, r5, r7
+ ldrb r4, [r1, r0]
+ lsl r0, r6, #4
+ str r1, [sp, #0xc]
+ add r1, r5, r0
+ ldr r0, _0223DD18 ; =0x000021B4
+ ldr r0, [r1, r0]
+ lsl r1, r4, #4
+ add r2, r5, r1
+ ldr r1, _0223DD18 ; =0x000021B4
+ ldr r1, [r2, r1]
+ cmp r0, r1
+ bne _0223DCF8
+ cmp r0, #1
+ beq _0223DCDA
+ mov r0, #1
+ b _0223DCDC
+_0223DCDA:
+ mov r0, #0
+_0223DCDC:
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_02244248
+ cmp r0, #0
+ beq _0223DCF8
+ ldr r1, [sp, #0x10]
+ ldr r0, _0223DD14 ; =0x000021E8
+ strb r4, [r1, r0]
+ ldr r1, [sp, #0xc]
+ strb r6, [r1, r0]
+_0223DCF8:
+ ldr r0, [sp, #0x14]
+ add r7, r7, #1
+ cmp r7, r0
+ blt _0223DCB2
+_0223DD00:
+ ldr r0, [sp, #8]
+ add r1, r0, #1
+ ldr r0, [sp, #0x18]
+ str r1, [sp, #8]
+ cmp r1, r0
+ blt _0223DCA2
+_0223DD0C:
+ mov r0, #7
+ str r0, [r5, #8]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223DD14: .word 0x000021E8
+_0223DD18: .word 0x000021B4
+_0223DD1C: .word 0x000021D4
+
+ thumb_func_start MOD11_0223DD20
+MOD11_0223DD20: ; 0x0223DD20
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r1, #0
+ str r0, [sp]
+ str r1, [sp, #4]
+ bl MOD11_0222FF84
+ add r7, r0, #0
+_0223DD32:
+ ldr r0, [r4, #0x28]
+ cmp r0, #3
+ bls _0223DD3A
+ b _0223DE4A
+_0223DD3A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223DD46: ; jump table
+ .short _0223DD4E - _0223DD46 - 2 ; case 0
+ .short _0223DDE8 - _0223DD46 - 2 ; case 1
+ .short _0223DE26 - _0223DD46 - 2 ; case 2
+ .short _0223DE42 - _0223DD46 - 2 ; case 3
+_0223DD4E:
+ ldr r0, [r4, #0x2c]
+ cmp r0, r7
+ bge _0223DDDC
+ add r6, r4, #0
+ add r6, #0x2c
+_0223DD58:
+ add r1, r4, r0
+ ldr r0, _0223DE60 ; =0x000021E8
+ ldrb r5, [r1, r0]
+ add r0, r5, #0
+ bl FUN_0206A92C
+ ldr r1, _0223DE64 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ ldr r0, [r6]
+ beq _0223DD74
+ add r0, r0, #1
+ str r0, [r6]
+ b _0223DDD6
+_0223DD74:
+ add r0, r0, #1
+ str r0, [r6]
+ mov r0, #0xc0
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _0223DE68 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ bne _0223DDD6
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0224683C
+ mov r1, #0x42
+ lsl r1, r1, #2
+ cmp r0, r1
+ bne _0223DDD6
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02247190
+ cmp r0, #0
+ bne _0223DDD6
+ lsl r0, r5, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _0223DDD6
+ ldr r0, [sp]
+ bl MOD11_0225679C
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe8
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #8
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223DDD6:
+ ldr r0, [r4, #0x2c]
+ cmp r0, r7
+ blt _0223DD58
+_0223DDDC:
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x28]
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ b _0223DE4A
+_0223DDE8:
+ mov r6, #0
+ cmp r7, #0
+ ble _0223DE1E
+ add r5, r4, #0
+_0223DDF0:
+ ldr r0, _0223DE6C ; =0x00002DB0
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0x16
+ tst r0, r1
+ beq _0223DE16
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0224683C
+ cmp r0, #0x63
+ beq _0223DE16
+ ldr r0, _0223DE6C ; =0x00002DB0
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0x16
+ and r1, r0
+ ldr r0, _0223DE6C ; =0x00002DB0
+ str r1, [r5, r0]
+_0223DE16:
+ add r6, r6, #1
+ add r5, #0xc0
+ cmp r6, r7
+ blt _0223DDF0
+_0223DE1E:
+ ldr r0, [r4, #0x28]
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ b _0223DE4A
+_0223DE26:
+ mov r6, #0
+ add r5, r4, #0
+_0223DE2A:
+ bl FUN_0201B9EC
+ ldr r1, _0223DE70 ; =0x0000310C
+ add r6, r6, #1
+ strh r0, [r5, r1]
+ add r5, r5, #2
+ cmp r6, #4
+ blt _0223DE2A
+ ldr r0, [r4, #0x28]
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ b _0223DE4A
+_0223DE42:
+ mov r0, #0
+ str r0, [r4, #0x28]
+ mov r0, #2
+ str r0, [sp, #4]
+_0223DE4A:
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _0223DE52
+ b _0223DD32
+_0223DE52:
+ cmp r0, #2
+ bne _0223DE5A
+ mov r0, #8
+ str r0, [r4, #8]
+_0223DE5A:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223DE60: .word 0x000021E8
+_0223DE64: .word 0x00003108
+_0223DE68: .word 0x00002DAC
+_0223DE6C: .word 0x00002DB0
+_0223DE70: .word 0x0000310C
+
+ thumb_func_start MOD11_0223DE74
+MOD11_0223DE74: ; 0x0223DE74
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0224728C
+ add r0, r5, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _0223DEA0
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xec
+ str r1, [r0]
+ mov r0, #9
+ str r0, [r5, #8]
+ pop {r4, r5, r6, pc}
+_0223DEA0:
+ add r1, r5, r0
+ ldr r0, _0223DEB4 ; =0x000021E8
+ ldrb r1, [r1, r0]
+ sub r0, #0x40
+ lsl r1, r1, #4
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ str r0, [r5, #8]
+ pop {r4, r5, r6, pc}
+ nop
+_0223DEB4: .word 0x000021E8
+
+ thumb_func_start MOD11_0223DEB8
+MOD11_0223DEB8: ; 0x0223DEB8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ str r0, [sp]
+ add r4, r1, #0
+ mov r5, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #4]
+_0223DEC8:
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD11_0224246C
+ cmp r0, #1
+ beq _0223DEF2
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_02242510
+ cmp r0, #1
+ beq _0223DEF2
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02241FD8
+ cmp r0, #1
+ bne _0223DEF4
+_0223DEF2:
+ b _0223E684
+_0223DEF4:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0xd
+ bhi _0223DFCE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223DF06: ; jump table
+ .short _0223DF22 - _0223DF06 - 2 ; case 0
+ .short _0223DFDC - _0223DF06 - 2 ; case 1
+ .short _0223E086 - _0223DF06 - 2 ; case 2
+ .short _0223E132 - _0223DF06 - 2 ; case 3
+ .short _0223E1E0 - _0223DF06 - 2 ; case 4
+ .short _0223E25C - _0223DF06 - 2 ; case 5
+ .short _0223E2D8 - _0223DF06 - 2 ; case 6
+ .short _0223E3A0 - _0223DF06 - 2 ; case 7
+ .short _0223E430 - _0223DF06 - 2 ; case 8
+ .short _0223E4C0 - _0223DF06 - 2 ; case 9
+ .short _0223E554 - _0223DF06 - 2 ; case 10
+ .short _0223E5EA - _0223DF06 - 2 ; case 11
+ .short _0223E62C - _0223DF06 - 2 ; case 12
+ .short _0223E666 - _0223DF06 - 2 ; case 13
+_0223DF22:
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ bge _0223DFCA
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r0, [sp, #0x38]
+ add r0, r4, #0
+ str r0, [sp, #8]
+ add r0, #0x14
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0x1c]
+ mov r0, #0x1c
+ str r0, [sp, #0x18]
+_0223DF40:
+ lsl r0, r6, #2
+ mov r1, #0x6f
+ add r0, r4, r0
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r1, #1
+ tst r1, r2
+ beq _0223DFB6
+ ldr r1, [sp, #0x38]
+ lsl r3, r6, #3
+ ldr r7, [r1, r3]
+ ldr r2, [sp, #0x18]
+ add r1, r7, #0
+ str r7, [sp, #0x2c]
+ bic r1, r2
+ str r1, [sp, #0x2c]
+ lsl r1, r7, #0x1b
+ lsr r1, r1, #0x1d
+ sub r1, r1, #1
+ lsl r1, r1, #0x1d
+ lsr r2, r1, #0x1b
+ ldr r1, [sp, #0x2c]
+ orr r2, r1
+ ldr r1, [sp, #0x38]
+ str r2, [r1, r3]
+ ldr r1, [r1, r3]
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1d
+ bne _0223DFB6
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ ldr r1, [sp, #0x1c]
+ bic r2, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ mov r1, #0x73
+ add r0, r1, #0
+ add r0, #0xb1
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x32
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r6, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223DFB6:
+ ldr r0, [sp, #8]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #8]
+ cmp r5, #0
+ str r1, [r0]
+ bne _0223DFCA
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ blt _0223DF40
+_0223DFCA:
+ cmp r5, #0
+ beq _0223DFD0
+_0223DFCE:
+ b _0223E668
+_0223DFD0:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223DFDC:
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ bge _0223E076
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r7, r4, r0
+ add r0, r4, #0
+ str r0, [sp, #0xc]
+ add r0, #0x14
+ str r0, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x20]
+_0223DFF4:
+ lsl r0, r6, #2
+ add r3, r4, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r3, r0]
+ mov r0, #2
+ tst r0, r1
+ beq _0223E062
+ lsl r2, r6, #3
+ ldr r1, [r7, r2]
+ ldr r0, _0223E340 ; =0xFFFFFC7F
+ and r0, r1
+ str r0, [sp, #0x30]
+ lsl r0, r1, #0x16
+ lsr r0, r0, #0x1d
+ sub r0, r0, #1
+ lsl r0, r0, #0x1d
+ lsr r1, r0, #0x16
+ ldr r0, [sp, #0x30]
+ orr r0, r1
+ str r0, [r7, r2]
+ ldr r0, [r7, r2]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1d
+ bne _0223E062
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r0, [r3, r0]
+ ldr r1, [sp, #0x20]
+ mov r2, #0x32
+ bic r0, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r0, [r3, r1]
+ mov r1, #0x71
+ add r0, r1, #0
+ add r0, #0xb3
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r6, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223E062:
+ ldr r0, [sp, #0xc]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0xc]
+ cmp r5, #0
+ str r1, [r0]
+ bne _0223E076
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ blt _0223DFF4
+_0223E076:
+ cmp r5, #0
+ bne _0223E124
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E086:
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ bge _0223E120
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r7, r4, r0
+ add r0, r4, #0
+ str r0, [sp, #0x10]
+ add r0, #0x14
+ str r0, [sp, #0x10]
+ mov r0, #0x40
+ str r0, [sp, #0x24]
+_0223E09E:
+ lsl r0, r6, #2
+ add r3, r4, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r3, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _0223E10C
+ lsl r2, r6, #3
+ ldr r1, [r7, r2]
+ ldr r0, _0223E344 ; =0xFFFF8FFF
+ and r0, r1
+ str r0, [sp, #0x34]
+ lsl r0, r1, #0x11
+ lsr r0, r0, #0x1d
+ sub r0, r0, #1
+ lsl r0, r0, #0x1d
+ lsr r1, r0, #0x11
+ ldr r0, [sp, #0x34]
+ orr r0, r1
+ str r0, [r7, r2]
+ ldr r0, [r7, r2]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1d
+ bne _0223E10C
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r0, [r3, r0]
+ ldr r1, [sp, #0x24]
+ mov r2, #0x32
+ bic r0, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r0, [r3, r1]
+ mov r1, #0x36
+ add r0, r1, #0
+ add r0, #0xee
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r6, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223E10C:
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0x10]
+ cmp r5, #0
+ str r1, [r0]
+ bne _0223E120
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ blt _0223E09E
+_0223E120:
+ cmp r5, #0
+ beq _0223E126
+_0223E124:
+ b _0223E668
+_0223E126:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E132:
+ ldr r7, [r4, #0x14]
+ cmp r7, #2
+ bge _0223E1D0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r6, r4, r0
+ add r0, r4, #0
+ str r0, [sp, #0x14]
+ add r0, #0x14
+ str r0, [sp, #0x14]
+ mov r0, #8
+ str r0, [sp, #0x28]
+_0223E14A:
+ lsl r0, r7, #2
+ add r3, r4, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r3, r0]
+ mov r0, #8
+ tst r0, r1
+ beq _0223E1BC
+ lsl r0, r7, #3
+ ldr r2, [r6, r0]
+ ldr r1, _0223E348 ; =0xFFF1FFFF
+ and r1, r2
+ mov ip, r1
+ lsl r1, r2, #0xc
+ lsr r1, r1, #0x1d
+ sub r1, r1, #1
+ lsl r1, r1, #0x1d
+ lsr r2, r1, #0xc
+ mov r1, ip
+ orr r1, r2
+ str r1, [r6, r0]
+ ldr r1, [r6, r0]
+ lsl r1, r1, #0xc
+ lsr r1, r1, #0x1d
+ bne _0223E1BC
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r1, [r3, r1]
+ ldr r2, [sp, #0x28]
+ bic r1, r2
+ mov r2, #0x6f
+ lsl r2, r2, #2
+ str r1, [r3, r2]
+ ldr r0, [r6, r0]
+ lsl r0, r0, #0xf
+ lsr r1, r0, #0x1e
+ add r0, r2, #0
+ sub r0, #0xa4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x6e
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r7, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223E1BC:
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ cmp r5, #0
+ str r1, [r0]
+ bne _0223E1D0
+ ldr r7, [r4, #0x14]
+ cmp r7, #2
+ blt _0223E14A
+_0223E1D0:
+ cmp r5, #0
+ bne _0223E24E
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E1E0:
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ bge _0223E24A
+ add r7, r4, #0
+ add r7, #0x14
+_0223E1EA:
+ lsl r0, r6, #2
+ mov r1, #0x6f
+ add r0, r4, r0
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r1, #3
+ lsl r1, r1, #8
+ tst r1, r2
+ beq _0223E23A
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ sub r1, #0xbc
+ sub r2, r2, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ ldr r1, [r0, r1]
+ mov r0, #3
+ lsl r0, r0, #8
+ tst r0, r1
+ bne _0223E23A
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe9
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r6, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223E23A:
+ ldr r0, [r7]
+ add r0, r0, #1
+ str r0, [r7]
+ cmp r5, #0
+ bne _0223E24A
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ blt _0223E1EA
+_0223E24A:
+ cmp r5, #0
+ beq _0223E250
+_0223E24E:
+ b _0223E668
+_0223E250:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E25C:
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ bge _0223E2C8
+ add r7, r4, #0
+ add r7, #0x14
+_0223E266:
+ lsl r0, r6, #2
+ mov r1, #0x6f
+ add r0, r4, r0
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r1, #7
+ lsl r1, r1, #0xc
+ tst r1, r2
+ beq _0223E2B8
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r1, #1
+ lsl r1, r1, #0xc
+ sub r2, r2, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ ldr r1, [r0, r1]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ bne _0223E2B8
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xfa
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r6, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223E2B8:
+ ldr r0, [r7]
+ add r0, r0, #1
+ str r0, [r7]
+ cmp r5, #0
+ bne _0223E2C8
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ blt _0223E266
+_0223E2C8:
+ cmp r5, #0
+ bne _0223E392
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E2D8:
+ ldr r0, [r4, #0x14]
+ ldr r1, [sp, #4]
+ cmp r0, r1
+ bge _0223E38E
+ add r6, r4, #0
+ mov r7, #2
+ add r6, #0x14
+_0223E2E6:
+ add r1, r4, r0
+ ldr r0, _0223E34C ; =0x000021EC
+ ldrb r2, [r1, r0]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ add r1, r4, r2
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _0223E37C
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldrb r0, [r1, r0]
+ sub r3, r0, #1
+ mov r0, #0x63
+ lsl r0, r0, #2
+ strb r3, [r1, r0]
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _0223E37C
+ mov r0, #0xc0
+ mul r0, r2
+ ldr r3, _0223E350 ; =0x00002D8C
+ add r0, r4, r0
+ ldr r3, [r0, r3]
+ cmp r3, #0
+ beq _0223E37C
+ mov r3, #0x46
+ lsl r3, r3, #2
+ str r2, [r4, r3]
+ add r3, r4, #0
+ add r3, #0xf5
+ strb r7, [r3]
+ add r5, r4, #0
+ ldr r3, _0223E354 ; =0x00000215
+ add r5, #0xf6
+ strh r3, [r5]
+ sub r3, #0x5d
+ ldrb r1, [r1, r3]
+ lsl r1, r1, #8
+ orr r2, r1
+ add r1, r4, #0
+ add r1, #0xf8
+ str r2, [r1]
+ ldr r1, _0223E358 ; =0x00002D90
+ b _0223E35C
+ .align 2, 0
+_0223E340: .word 0xFFFFFC7F
+_0223E344: .word 0xFFFF8FFF
+_0223E348: .word 0xFFF1FFFF
+_0223E34C: .word 0x000021EC
+_0223E350: .word 0x00002D8C
+_0223E354: .word 0x00000215
+_0223E358: .word 0x00002D90
+_0223E35C:
+ ldr r0, [r0, r1]
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _0223E688 ; =0x0000215C
+ mov r2, #0x88
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r5, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E37C:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+ cmp r5, #0
+ bne _0223E38E
+ ldr r0, [r4, #0x14]
+ ldr r1, [sp, #4]
+ cmp r0, r1
+ blt _0223E2E6
+_0223E38E:
+ cmp r5, #0
+ beq _0223E394
+_0223E392:
+ b _0223E668
+_0223E394:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E3A0:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r2, #3
+ tst r2, r1
+ beq _0223E428
+ mov r2, #2
+ tst r1, r2
+ beq _0223E3D6
+ add r0, r4, #0
+ ldr r1, _0223E68C ; =0x00000321
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E41E
+_0223E3D6:
+ add r1, r0, #4
+ ldr r1, [r4, r1]
+ sub r2, r1, #1
+ add r1, r0, #4
+ str r2, [r4, r1]
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0223E3FC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xea
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E41E
+_0223E3FC:
+ add r0, r4, #0
+ ldr r1, _0223E68C ; =0x00000321
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E41E:
+ mov r0, #0x4e
+ mov r1, #0x13
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r5, #1
+_0223E428:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E430:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r2, #0xc
+ tst r2, r1
+ beq _0223E4B8
+ mov r2, #8
+ tst r1, r2
+ beq _0223E466
+ add r0, r4, #0
+ ldr r1, _0223E690 ; =0x00000325
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E4AE
+_0223E466:
+ add r1, r0, #4
+ ldr r1, [r4, r1]
+ sub r2, r1, #1
+ add r1, r0, #4
+ str r2, [r4, r1]
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0223E48C
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xeb
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E4AE
+_0223E48C:
+ add r0, r4, #0
+ ldr r1, _0223E690 ; =0x00000325
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E4AE:
+ mov r0, #0x4e
+ mov r1, #0x15
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r5, #1
+_0223E4B8:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E4C0:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r2, #0x30
+ tst r2, r1
+ beq _0223E54C
+ mov r2, #0x20
+ tst r1, r2
+ beq _0223E4F8
+ mov r1, #0xca
+ add r0, r4, #0
+ lsl r1, r1, #2
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E542
+_0223E4F8:
+ add r1, r0, #4
+ ldr r1, [r4, r1]
+ sub r2, r1, #1
+ add r1, r0, #4
+ str r2, [r4, r1]
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0223E51E
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xec
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E542
+_0223E51E:
+ mov r1, #0xca
+ add r0, r4, #0
+ lsl r1, r1, #2
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E542:
+ mov r0, #0x4e
+ mov r1, #0x16
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r5, #1
+_0223E54C:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E554:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r2, [r4, r0]
+ mov r1, #0xc0
+ add r0, r2, #0
+ tst r0, r1
+ beq _0223E5E2
+ mov r0, #0x80
+ tst r0, r2
+ beq _0223E58C
+ add r0, r4, #0
+ ldr r1, _0223E694 ; =0x0000032B
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E5D8
+_0223E58C:
+ add r0, r1, #0
+ add r0, #0xc4
+ ldr r0, [r4, r0]
+ sub r2, r0, #1
+ add r0, r1, #0
+ add r0, #0xc4
+ add r1, #0xc4
+ str r2, [r4, r0]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _0223E5B6
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xed
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E5D8
+_0223E5B6:
+ add r0, r4, #0
+ ldr r1, _0223E694 ; =0x0000032B
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E5D8:
+ mov r0, #0x4e
+ mov r1, #0x14
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r5, #1
+_0223E5E2:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E5EA:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0xe
+ tst r0, r1
+ beq _0223E624
+ add r0, r4, #0
+ ldr r1, _0223E698 ; =0x0000032D
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r1, #0x12
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r5, #1
+_0223E624:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E62C:
+ mov r1, #6
+ lsl r1, r1, #6
+ ldr r3, [r4, r1]
+ mov r2, #7
+ lsl r2, r2, #0xc
+ add r0, r3, #0
+ tst r0, r2
+ beq _0223E65E
+ mov r0, #1
+ lsl r0, r0, #0xc
+ sub r0, r3, r0
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ tst r0, r2
+ bne _0223E65E
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xee
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r5, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E65E:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E666:
+ mov r5, #2
+_0223E668:
+ cmp r5, #0
+ bne _0223E66E
+ b _0223DEC8
+_0223E66E:
+ cmp r5, #1
+ bne _0223E678
+ ldr r0, [sp]
+ bl MOD11_0225679C
+_0223E678:
+ cmp r5, #2
+ bne _0223E684
+ mov r0, #0
+ str r0, [r4, #0x10]
+ mov r0, #0xa
+ str r0, [r4, #8]
+_0223E684:
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223E688: .word 0x0000215C
+_0223E68C: .word 0x00000321
+_0223E690: .word 0x00000325
+_0223E694: .word 0x0000032B
+_0223E698: .word 0x0000032D
+
+ thumb_func_start MOD11_0223E69C
+MOD11_0223E69C: ; 0x0223E69C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ mov r1, #0
+ str r1, [sp, #0x10]
+ str r0, [sp, #4]
+ bl MOD11_0222FF84
+ ldr r1, [r4, #8]
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD11_0224246C
+ cmp r0, #1
+ beq _0223E6D8
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_02242510
+ cmp r0, #1
+ beq _0223E6D8
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_02241FD8
+ cmp r0, #1
+ bne _0223E6DC
+_0223E6D8:
+ bl _0223F0B2
+_0223E6DC:
+ ldr r1, [r4, #0x1c]
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ blt _0223E6E8
+ bl _0223F0A8
+_0223E6E8:
+ ldr r0, _0223EA14 ; =0x000021EC
+ add r1, r4, r1
+ ldrb r5, [r1, r0]
+ add r0, r5, #0
+ bl FUN_0206A92C
+ ldr r1, _0223EA18 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ beq _0223E706
+ ldr r0, [r4, #0x1c]
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+ bl _0223F09C
+_0223E706:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x1a
+ bls _0223E710
+ bl _0223F08C
+_0223E710:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223E71C: ; jump table
+ .short _0223E752 - _0223E71C - 2 ; case 0
+ .short _0223E7BA - _0223E71C - 2 ; case 1
+ .short _0223E83C - _0223E71C - 2 ; case 2
+ .short _0223E856 - _0223E71C - 2 ; case 3
+ .short _0223E872 - _0223E71C - 2 ; case 4
+ .short _0223E88C - _0223E71C - 2 ; case 5
+ .short _0223E8F6 - _0223E71C - 2 ; case 6
+ .short _0223E948 - _0223E71C - 2 ; case 7
+ .short _0223E9C8 - _0223E71C - 2 ; case 8
+ .short _0223EA04 - _0223E71C - 2 ; case 9
+ .short _0223EA72 - _0223E71C - 2 ; case 10
+ .short _0223EAB0 - _0223E71C - 2 ; case 11
+ .short _0223EB2A - _0223E71C - 2 ; case 12
+ .short _0223EBAE - _0223E71C - 2 ; case 13
+ .short _0223ECA6 - _0223E71C - 2 ; case 14
+ .short _0223ED0E - _0223E71C - 2 ; case 15
+ .short _0223ED90 - _0223E71C - 2 ; case 16
+ .short _0223EE56 - _0223E71C - 2 ; case 17
+ .short _0223EE74 - _0223E71C - 2 ; case 18
+ .short _0223EEBA - _0223E71C - 2 ; case 19
+ .short _0223EF06 - _0223E71C - 2 ; case 20
+ .short _0223EF50 - _0223E71C - 2 ; case 21
+ .short _0223EF9A - _0223E71C - 2 ; case 22
+ .short _0223EFE4 - _0223E71C - 2 ; case 23
+ .short _0223F034 - _0223E71C - 2 ; case 24
+ .short _0223F068 - _0223E71C - 2 ; case 25
+ .short _0223F082 - _0223E71C - 2 ; case 26
+_0223E752:
+ mov r6, #0xc0
+ add r0, r5, #0
+ mul r0, r6
+ add r3, r4, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ mov r1, #1
+ ldr r2, [r3, r0]
+ lsl r1, r1, #0xa
+ tst r1, r2
+ beq _0223E7B0
+ add r1, r0, #0
+ sub r1, #0x34
+ ldr r2, [r3, r1]
+ add r1, r0, #0
+ sub r1, #0x30
+ ldr r1, [r3, r1]
+ cmp r2, r1
+ beq _0223E7B0
+ cmp r2, #0
+ beq _0223E7B0
+ add r0, #0xc
+ ldr r0, [r3, r0]
+ lsl r0, r0, #0xd
+ lsr r0, r0, #0x1d
+ beq _0223E796
+ add r6, #0x58
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xef
+ str r5, [r4, r6]
+ bl MOD11_022431DC
+ b _0223E7A4
+_0223E796:
+ add r6, #0x58
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x89
+ str r5, [r4, r6]
+ bl MOD11_022431DC
+_0223E7A4:
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E7B0:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ bl _0223F08C
+_0223E7BA:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r6, r4, r1
+ mov r1, #0xb7
+ lsl r1, r1, #6
+ mov r2, #1
+ ldr r3, [r6, r1]
+ lsl r2, r2, #0x18
+ tst r2, r3
+ beq _0223E832
+ add r2, r1, #0
+ sub r2, #0x34
+ ldr r3, [r6, r2]
+ add r2, r1, #0
+ sub r2, #0x30
+ ldr r2, [r6, r2]
+ cmp r3, r2
+ beq _0223E832
+ cmp r3, #0
+ beq _0223E832
+ add r2, r1, #0
+ add r2, #0xc
+ ldr r2, [r6, r2]
+ lsl r2, r2, #0xd
+ lsr r2, r2, #0x1d
+ beq _0223E800
+ add r0, #0x58
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xef
+ bl MOD11_022431DC
+ b _0223E826
+_0223E800:
+ add r2, r0, #0
+ add r2, #0x58
+ str r5, [r4, r2]
+ add r2, r0, #0
+ add r2, #0xc8
+ add r0, #0x64
+ sub r1, #0x30
+ str r2, [r4, r0]
+ ldr r0, [r6, r1]
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _0223EA1C ; =0x0000215C
+ mov r2, #0xa9
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+_0223E826:
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E832:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ bl _0223F08C
+_0223E83C:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022475B8
+ cmp r0, #1
+ bne _0223E84C
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E84C:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ bl _0223F08C
+_0223E856:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_02248C0C
+ cmp r0, #1
+ bne _0223E868
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E868:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ bl _0223F08C
+_0223E872:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_022492A4
+ cmp r0, #1
+ bne _0223E884
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E884:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223E88C:
+ mov r3, #0xc0
+ add r0, r5, #0
+ mul r0, r3
+ mov r2, #0xb7
+ add r6, r4, r0
+ lsl r2, r2, #6
+ ldr r0, [r6, r2]
+ mov r1, #4
+ tst r1, r0
+ beq _0223E8EE
+ mov r1, #3
+ and r0, r1
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r4, r1
+ sub r2, #0x34
+ ldr r0, [r0, r2]
+ cmp r0, #0
+ beq _0223E8EE
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _0223E8EE
+ ldr r0, _0223EA20 ; =0x00002D8C
+ ldr r1, [r6, r0]
+ cmp r1, #0
+ beq _0223E8EE
+ add r0, #0x34
+ ldr r1, [r6, r0]
+ mov r0, #3
+ and r1, r0
+ mov r0, #0x47
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r0, #4
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x45
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E8EE:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223E8F6:
+ mov r2, #0xc0
+ add r0, r5, #0
+ mul r0, r2
+ ldr r3, _0223EA24 ; =0x00002DAC
+ add r0, r4, r0
+ ldr r1, [r0, r3]
+ mov r6, #8
+ tst r1, r6
+ beq _0223E940
+ add r1, r3, #0
+ sub r1, #0x20
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ beq _0223E940
+ add r2, #0x58
+ str r5, [r4, r2]
+ sub r3, #0x1c
+ ldr r1, [r0, r3]
+ add r0, r6, #0
+ sub r0, #9
+ mul r0, r1
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _0223EA1C ; =0x0000215C
+ mov r2, #0x17
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E940:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223E948:
+ mov r0, #0xc0
+ mul r0, r5
+ ldr r1, _0223EA24 ; =0x00002DAC
+ add r6, r4, r0
+ ldr r0, [r6, r1]
+ mov r2, #0x80
+ tst r0, r2
+ beq _0223E9C0
+ add r0, r1, #0
+ sub r0, #0x20
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _0223E9C0
+ add r2, #0x98
+ str r5, [r4, r2]
+ sub r1, #0x1c
+ ldr r0, [r6, r1]
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _0223EA1C ; =0x0000215C
+ str r0, [r4, r1]
+ ldr r1, _0223EA24 ; =0x00002DAC
+ mov r0, #0xf
+ ldr r2, [r6, r1]
+ lsl r0, r0, #8
+ add r3, r2, #0
+ and r3, r0
+ cmp r3, r0
+ beq _0223E98C
+ mov r0, #1
+ lsl r0, r0, #8
+ add r0, r2, r0
+ str r0, [r6, r1]
+_0223E98C:
+ ldr r2, _0223EA24 ; =0x00002DAC
+ ldr r0, _0223EA1C ; =0x0000215C
+ ldr r3, [r6, r2]
+ mov r2, #0xf
+ lsl r2, r2, #8
+ and r2, r3
+ ldr r1, [r4, r0]
+ lsr r2, r2, #8
+ mul r2, r1
+ str r2, [r4, r0]
+ mov r1, #0
+ ldr r2, [r4, r0]
+ mvn r1, r1
+ mul r1, r2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x17
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E9C0:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223E9C8:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r6, r4, r1
+ ldr r1, _0223EA24 ; =0x00002DAC
+ mov r2, #0x10
+ ldr r3, [r6, r1]
+ tst r2, r3
+ beq _0223E9FC
+ sub r1, #0x20
+ ldr r1, [r6, r1]
+ cmp r1, #0
+ beq _0223E9FC
+ add r0, #0x58
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1a
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E9FC:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EA04:
+ mov r6, #0xc0
+ add r0, r5, #0
+ mul r0, r6
+ add r3, r4, r0
+ ldr r7, _0223EA28 ; =0x00002DB0
+ ldr r0, _0223EA18 ; =0x00003108
+ b _0223EA2C
+ nop
+_0223EA14: .word 0x000021EC
+_0223EA18: .word 0x00003108
+_0223EA1C: .word 0x0000215C
+_0223EA20: .word 0x00002D8C
+_0223EA24: .word 0x00002DAC
+_0223EA28: .word 0x00002DB0
+_0223EA2C:
+ ldr r2, [r3, r7]
+ lsl r0, r0, #0x18
+ tst r0, r2
+ beq _0223EA6A
+ add r0, r7, #0
+ sub r0, #0x24
+ ldr r0, [r3, r0]
+ cmp r0, #0
+ beq _0223EA6A
+ sub r0, r7, #4
+ ldr r1, [r3, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223EA64
+ add r6, #0x58
+ str r5, [r4, r6]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x5e
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ b _0223EA6A
+_0223EA64:
+ ldr r0, _0223ED9C ; =0xF7FFFFFF
+ and r0, r2
+ str r0, [r3, r7]
+_0223EA6A:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EA72:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r6, r4, r1
+ ldr r1, _0223EDA0 ; =0x00002DB0
+ mov r2, #1
+ ldr r3, [r6, r1]
+ lsl r2, r2, #0x1c
+ tst r2, r3
+ beq _0223EAA8
+ sub r1, #0x24
+ ldr r1, [r6, r1]
+ cmp r1, #0
+ beq _0223EAA8
+ add r0, #0x58
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x62
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EAA8:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EAB0:
+ mov r1, #0xc0
+ add r0, r5, #0
+ mul r0, r1
+ ldr r2, _0223EDA0 ; =0x00002DB0
+ add r6, r4, r0
+ ldr r3, [r6, r2]
+ mov r7, #0xe
+ lsl r7, r7, #0xc
+ add r0, r3, #0
+ tst r0, r7
+ beq _0223EB22
+ add r0, r2, #0
+ sub r0, #0x24
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _0223EB22
+ mov r0, #2
+ lsl r0, r0, #0xc
+ sub r0, r3, r0
+ str r0, [r6, r2]
+ ldr r0, [r6, r2]
+ tst r0, r7
+ beq _0223EAFE
+ sub r2, #0x20
+ ldr r2, [r6, r2]
+ sub r1, #0xc1
+ add r0, r2, #0
+ mul r0, r1
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _0223EDA4 ; =0x0000215C
+ mov r2, #0x3b
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ b _0223EB08
+_0223EAFE:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x3c
+ bl MOD11_022431DC
+_0223EB08:
+ ldr r0, _0223EDA8 ; =0x00002DEA
+ ldrh r1, [r6, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r0, #0xc
+ str r5, [r4, r0]
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EB22:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EB2A:
+ mov r0, #0x7b
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ mov r2, #4
+ add r3, r5, #0
+ bl MOD11_02246870
+ mov r1, #0x4e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xc0
+ mul r0, r5
+ add r6, r4, r0
+ ldr r0, _0223EDAC ; =0x00002DAC
+ ldr r1, [r6, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223EBA6
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _0223EBA6
+ ldr r1, _0223EDB0 ; =0x00002D8C
+ ldr r0, [r6, r1]
+ cmp r0, #0
+ beq _0223EBA6
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0223EBA6
+ add r0, r1, #4
+ ldr r1, [r6, r0]
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r1
+ mov r1, #8
+ bl MOD11_022476C0
+ ldr r1, _0223EDA4 ; =0x0000215C
+ ldr r2, _0223EDB4 ; =0x00000107
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, _0223EDB8 ; =0x0000213C
+ mov r1, #0x40
+ ldr r2, [r4, r0]
+ orr r2, r1
+ str r2, [r4, r0]
+ add r1, #0xd8
+ str r5, [r4, r1]
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EBA6:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EBAE:
+ mov r0, #0xc0
+ mul r0, r5
+ add r7, r4, r0
+ ldr r0, _0223EDA0 ; =0x00002DB0
+ ldr r1, [r7, r0]
+ mov r0, #0x70
+ tst r0, r1
+ beq _0223EC96
+ ldr r0, [sp, #0xc]
+ mov r6, #0
+ cmp r0, #0
+ ble _0223EC08
+_0223EBC6:
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r4, r0
+ ldr r0, _0223EDAC ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223EBFC
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2b
+ beq _0223EBFC
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r6, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x13
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223EC08
+_0223EBFC:
+ add r0, r6, #1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r0, [sp, #0xc]
+ cmp r6, r0
+ blt _0223EBC6
+_0223EC08:
+ ldr r0, [sp, #0xc]
+ cmp r6, r0
+ beq _0223EC14
+ mov r0, #2
+ str r0, [sp, #0x10]
+ b _0223F08C
+_0223EC14:
+ ldr r0, _0223EDA0 ; =0x00002DB0
+ ldr r1, [r7, r0]
+ sub r1, #0x10
+ str r1, [r7, r0]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246764
+ cmp r0, #0
+ ldr r2, _0223EDA0 ; =0x00002DB0
+ beq _0223EC4E
+ ldr r1, [r7, r2]
+ mov r0, #0x70
+ bic r1, r0
+ mov r6, #0xf1
+ add r0, r5, #0
+ str r1, [r7, r2]
+ bl FUN_0206A92C
+ add r3, r6, #0
+ add r3, #0x8f
+ lsl r2, r0, #8
+ add r0, r6, #0
+ sub r0, #0xf2
+ ldr r1, [r4, r3]
+ eor r0, r2
+ and r0, r1
+ str r0, [r4, r3]
+ b _0223EC7A
+_0223EC4E:
+ ldr r1, [r7, r2]
+ mov r0, #0x70
+ tst r0, r1
+ beq _0223EC5A
+ mov r6, #0xf0
+ b _0223EC7A
+_0223EC5A:
+ mov r0, #0x70
+ bic r1, r0
+ mov r6, #0xf1
+ add r0, r5, #0
+ str r1, [r7, r2]
+ bl FUN_0206A92C
+ add r3, r6, #0
+ add r3, #0x8f
+ lsl r2, r0, #8
+ add r0, r6, #0
+ sub r0, #0xf2
+ ldr r1, [r4, r3]
+ eor r0, r2
+ and r0, r1
+ str r0, [r4, r3]
+_0223EC7A:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r6, #0
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EC96:
+ ldr r0, [sp, #0x10]
+ cmp r0, #2
+ bne _0223EC9E
+ b _0223F08C
+_0223EC9E:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223ECA6:
+ mov r2, #0xc0
+ add r0, r5, #0
+ mul r0, r2
+ add r6, r4, r0
+ ldr r0, _0223EDA0 ; =0x00002DB0
+ lsl r2, r2, #4
+ ldr r1, [r6, r0]
+ tst r2, r1
+ beq _0223ED06
+ mov r2, #1
+ lsl r2, r2, #0xa
+ sub r1, r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246764
+ cmp r0, #0
+ beq _0223ECD8
+ ldr r1, _0223EDA0 ; =0x00002DB0
+ ldr r0, _0223EDBC ; =0xFFFFF3FF
+ ldr r2, [r6, r1]
+ and r0, r2
+ str r0, [r6, r1]
+ b _0223ED06
+_0223ECD8:
+ ldr r0, _0223EDA0 ; =0x00002DB0
+ ldr r1, [r6, r0]
+ mov r0, #3
+ lsl r0, r0, #0xa
+ tst r0, r1
+ bne _0223ED06
+ mov r0, #7
+ tst r0, r1
+ bne _0223ED06
+ add r0, r4, #0
+ add r0, #0x94
+ str r5, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x33
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223ED06:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223ED0E:
+ mov r0, #0xc0
+ add r6, r5, #0
+ mul r6, r0
+ add r0, r4, r6
+ ldr r1, _0223EDC0 ; =0x00002DE8
+ mov ip, r0
+ ldrh r3, [r0, r1]
+ cmp r3, #0
+ beq _0223ED88
+ ldr r7, _0223EDC4 ; =0x00002D4C
+ mov r2, #0
+ mov r1, ip
+_0223ED26:
+ ldrh r0, [r1, r7]
+ cmp r3, r0
+ beq _0223ED34
+ add r2, r2, #1
+ add r1, r1, #2
+ cmp r2, #4
+ blt _0223ED26
+_0223ED34:
+ cmp r2, #4
+ bne _0223ED44
+ ldr r0, _0223EDC8 ; =0x00002DC8
+ add r1, r4, r0
+ ldr r2, [r1, r6]
+ mov r0, #7
+ bic r2, r0
+ str r2, [r1, r6]
+_0223ED44:
+ ldr r1, _0223EDC8 ; =0x00002DC8
+ add r0, r4, r6
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1d
+ beq _0223ED64
+ add r2, r4, r1
+ ldr r1, [r2, r6]
+ mov r3, #7
+ bic r1, r3
+ sub r3, r0, #1
+ mov r0, #7
+ and r0, r3
+ orr r0, r1
+ str r0, [r2, r6]
+ b _0223ED88
+_0223ED64:
+ mov r2, #0
+ add r1, #0x20
+ mov r0, ip
+ strh r2, [r0, r1]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x48
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223ED88:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223ED90:
+ mov r0, #0xc0
+ add r6, r5, #0
+ mul r6, r0
+ add r0, r4, r6
+ ldr r1, _0223EDCC ; =0x00002DEC
+ b _0223EDD0
+ .align 2, 0
+_0223ED9C: .word 0xF7FFFFFF
+_0223EDA0: .word 0x00002DB0
+_0223EDA4: .word 0x0000215C
+_0223EDA8: .word 0x00002DEA
+_0223EDAC: .word 0x00002DAC
+_0223EDB0: .word 0x00002D8C
+_0223EDB4: .word 0x00000107
+_0223EDB8: .word 0x0000213C
+_0223EDBC: .word 0xFFFFF3FF
+_0223EDC0: .word 0x00002DE8
+_0223EDC4: .word 0x00002D4C
+_0223EDC8: .word 0x00002DC8
+_0223EDCC: .word 0x00002DEC
+_0223EDD0:
+ str r0, [sp, #8]
+ ldrh r2, [r0, r1]
+ cmp r2, #0
+ beq _0223EE4E
+ ldr r7, _0223F0B8 ; =0x00002D4C
+ mov r3, #0
+ add r1, r0, #0
+_0223EDDE:
+ ldrh r0, [r1, r7]
+ cmp r2, r0
+ beq _0223EDEC
+ add r3, r3, #1
+ add r1, r1, #2
+ cmp r3, #4
+ blt _0223EDDE
+_0223EDEC:
+ cmp r3, #4
+ beq _0223EDFE
+ beq _0223EE0A
+ ldr r0, [sp, #8]
+ add r1, r0, r3
+ ldr r0, _0223F0BC ; =0x00002D6C
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _0223EE0A
+_0223EDFE:
+ ldr r0, _0223F0C0 ; =0x00002DC8
+ add r2, r4, r0
+ ldr r1, [r2, r6]
+ mov r0, #0x38
+ bic r1, r0
+ str r1, [r2, r6]
+_0223EE0A:
+ ldr r1, _0223F0C0 ; =0x00002DC8
+ add r0, r4, r6
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x1a
+ lsr r2, r0, #0x1d
+ beq _0223EE2A
+ add r1, r4, r1
+ sub r2, r2, #1
+ lsl r2, r2, #0x1d
+ ldr r0, [r1, r6]
+ mov r3, #0x38
+ bic r0, r3
+ lsr r2, r2, #0x1a
+ orr r0, r2
+ str r0, [r1, r6]
+ b _0223EE4E
+_0223EE2A:
+ ldr r0, [sp, #8]
+ mov r2, #0
+ add r1, #0x24
+ strh r2, [r0, r1]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x4a
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EE4E:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EE56:
+ mov r0, #0xc0
+ mul r0, r5
+ add r3, r4, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r2, [r3, r0]
+ mov r1, #0x18
+ tst r1, r2
+ beq _0223EE6C
+ sub r2, #8
+ str r2, [r3, r0]
+_0223EE6C:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EE74:
+ mov r0, #0xc0
+ mul r0, r5
+ ldr r2, _0223F0C0 ; =0x00002DC8
+ add r5, r4, r0
+ ldr r1, [r5, r2]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1e
+ beq _0223EEB2
+ add r3, r4, r2
+ ldr r6, [r3, r0]
+ mov r1, #0xc0
+ add r7, r6, #0
+ bic r7, r1
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x1e
+ sub r1, r1, #1
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x18
+ orr r1, r7
+ str r1, [r3, r0]
+ ldr r0, [r3, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ bne _0223EEB2
+ add r0, r2, #0
+ sub r0, #8
+ ldr r1, [r5, r0]
+ ldr r0, _0223F0C4 ; =0xFFFFFDFF
+ sub r2, #8
+ and r0, r1
+ str r0, [r5, r2]
+_0223EEB2:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EEBA:
+ ldr r0, _0223F0C0 ; =0x00002DC8
+ mov r2, #0xc0
+ add r3, r5, #0
+ mul r3, r2
+ add r1, r4, r0
+ ldr r7, [r1, r3]
+ lsl r0, r7, #0x15
+ lsr r6, r0, #0x1d
+ beq _0223EEFE
+ ldr r0, _0223F0C8 ; =0xFFFFF8FF
+ and r7, r0
+ sub r0, r6, #1
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x15
+ orr r0, r7
+ str r0, [r1, r3]
+ ldr r0, [r1, r3]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1d
+ bne _0223EEFE
+ add r0, r2, #0
+ add r0, #0x58
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, #0x60
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EEFE:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EF06:
+ ldr r0, _0223F0CC ; =0x00002DCC
+ mov r1, #0xc0
+ add r3, r5, #0
+ mul r3, r1
+ add r2, r4, r0
+ ldr r7, [r2, r3]
+ lsl r0, r7, #0x10
+ lsr r6, r0, #0x1d
+ beq _0223EF48
+ ldr r0, _0223F0D0 ; =0xFFFF1FFF
+ and r7, r0
+ sub r0, r6, #1
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x10
+ orr r0, r7
+ str r0, [r2, r3]
+ ldr r0, [r2, r3]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1d
+ bne _0223EF48
+ add r1, #0x58
+ str r5, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xf2
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EF48:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EF50:
+ ldr r0, _0223F0CC ; =0x00002DCC
+ mov r1, #0xc0
+ add r3, r5, #0
+ mul r3, r1
+ add r2, r4, r0
+ ldr r7, [r2, r3]
+ lsl r0, r7, #0xd
+ lsr r6, r0, #0x1d
+ beq _0223EF92
+ ldr r0, _0223F0D4 ; =0xFFF8FFFF
+ and r7, r0
+ sub r0, r6, #1
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xd
+ orr r0, r7
+ str r0, [r2, r3]
+ ldr r0, [r2, r3]
+ lsl r0, r0, #0xd
+ lsr r0, r0, #0x1d
+ bne _0223EF92
+ add r1, #0x58
+ str r5, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xf3
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EF92:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EF9A:
+ ldr r0, _0223F0CC ; =0x00002DCC
+ mov r1, #0xc0
+ add r3, r5, #0
+ mul r3, r1
+ add r2, r4, r0
+ ldr r7, [r2, r3]
+ lsl r0, r7, #0xa
+ lsr r6, r0, #0x1d
+ beq _0223EFDC
+ ldr r0, _0223F0D8 ; =0xFFC7FFFF
+ and r7, r0
+ sub r0, r6, #1
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xa
+ orr r0, r7
+ str r0, [r2, r3]
+ ldr r0, [r2, r3]
+ lsl r0, r0, #0xa
+ lsr r0, r0, #0x1d
+ bne _0223EFDC
+ add r1, #0x58
+ str r5, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xf4
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EFDC:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EFE4:
+ mov r6, #0xc0
+ add r0, r5, #0
+ mul r0, r6
+ mov r3, #0xb7
+ add r1, r4, r0
+ lsl r3, r3, #6
+ ldr r0, [r1, r3]
+ lsl r2, r6, #5
+ tst r2, r0
+ beq _0223F02C
+ mov r2, #2
+ lsl r2, r2, #0xa
+ sub r0, r0, r2
+ str r0, [r1, r3]
+ ldr r1, [r1, r3]
+ lsl r0, r6, #5
+ tst r0, r1
+ bne _0223F02C
+ add r0, r4, #0
+ add r0, #0x94
+ str r5, [r0]
+ add r0, r4, #0
+ mov r1, #4
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x12
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223F02C:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223F034:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ add r2, r5, #0
+ add r3, sp, #0x14
+ bl MOD11_022493A0
+ cmp r0, #1
+ bne _0223F060
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ ldr r2, [sp, #0x14]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223F060:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223F068:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_02249A7C
+ cmp r0, #1
+ bne _0223F07A
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223F07A:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223F082:
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+_0223F08C:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _0223F09C
+ ldr r0, [sp, #4]
+ bl MOD11_0225679C
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F09C:
+ ldr r1, [r4, #0x1c]
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ bge _0223F0A8
+ bl _0223E6E8
+_0223F0A8:
+ mov r0, #0
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ mov r0, #0xb
+ str r0, [r4, #8]
+_0223F0B2:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223F0B8: .word 0x00002D4C
+_0223F0BC: .word 0x00002D6C
+_0223F0C0: .word 0x00002DC8
+_0223F0C4: .word 0xFFFFFDFF
+_0223F0C8: .word 0xFFFFF8FF
+_0223F0CC: .word 0x00002DCC
+_0223F0D0: .word 0xFFFF1FFF
+_0223F0D4: .word 0xFFF8FFFF
+_0223F0D8: .word 0xFFC7FFFF
+
+ thumb_func_start MOD11_0223F0DC
+MOD11_0223F0DC: ; 0x0223F0DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ str r0, [sp]
+ bl MOD11_0222FF84
+ ldr r1, [r4, #8]
+ add r7, r0, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD11_0224246C
+ cmp r0, #1
+ bne _0223F0FC
+ b _0223F30C
+_0223F0FC:
+ ldr r0, [sp]
+ bl MOD11_0225679C
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ beq _0223F114
+ cmp r0, #1
+ beq _0223F1FE
+ cmp r0, #2
+ bne _0223F112
+ b _0223F2C4
+_0223F112:
+ b _0223F302
+_0223F114:
+ ldr r0, [r4, #0x24]
+ cmp r0, r7
+ bge _0223F1F4
+ add r5, r4, #0
+ add r5, #0x24
+_0223F11E:
+ add r1, r4, r0
+ ldr r0, _0223F310 ; =0x000021EC
+ ldrb r6, [r1, r0]
+ add r0, r6, #0
+ bl FUN_0206A92C
+ ldr r1, _0223F314 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ ldr r0, [r5]
+ beq _0223F13A
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223F1EE
+_0223F13A:
+ add r0, r0, #1
+ mov r1, #0x62
+ str r0, [r5]
+ add r0, r4, r6
+ lsl r1, r1, #2
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ beq _0223F1EE
+ mov r1, #0x62
+ lsl r1, r1, #2
+ ldrb r1, [r0, r1]
+ sub r2, r1, #1
+ mov r1, #0x62
+ lsl r1, r1, #2
+ strb r2, [r0, r1]
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _0223F1EE
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r4, r0
+ ldr r0, _0223F318 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0223F1EE
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_02230270
+ mov r2, #0x6f
+ lsl r2, r2, #2
+ add r1, r4, r2
+ lsl r5, r0, #2
+ ldr r3, [r1, r5]
+ mov r0, #0x10
+ bic r3, r0
+ add r0, r4, #0
+ str r3, [r1, r5]
+ add r2, #0x1f
+ add r0, #0xf6
+ strh r2, [r0]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0224682C
+ add r1, r4, #0
+ add r1, #0xf8
+ str r0, [r1]
+ mov r0, #0x19
+ lsl r0, r0, #4
+ add r1, r4, #0
+ add r3, r4, r0
+ lsl r2, r6, #1
+ ldrh r5, [r3, r2]
+ add r1, #0xfc
+ str r5, [r1]
+ add r1, r0, #0
+ sub r1, #0x78
+ str r6, [r4, r1]
+ lsl r1, r6, #2
+ add r5, r0, #0
+ add r1, r4, r1
+ add r5, #8
+ ldr r6, [r1, r5]
+ add r5, r0, #0
+ sub r5, #0x74
+ str r6, [r4, r5]
+ ldrh r3, [r3, r2]
+ add r2, r0, #0
+ sub r2, #0x6c
+ str r3, [r4, r2]
+ add r0, #0x18
+ ldr r1, [r1, r0]
+ ldr r0, _0223F31C ; =0x0000215C
+ mov r2, #0x79
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #8
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F1EE:
+ ldr r0, [r4, #0x24]
+ cmp r0, r7
+ blt _0223F11E
+_0223F1F4:
+ ldr r0, [r4, #0x20]
+ add r0, r0, #1
+ str r0, [r4, #0x20]
+ mov r0, #0
+ str r0, [r4, #0x24]
+_0223F1FE:
+ ldr r0, [r4, #0x24]
+ cmp r0, r7
+ bge _0223F2BA
+ add r5, r4, #0
+ add r5, #0x24
+_0223F208:
+ add r1, r4, r0
+ ldr r0, _0223F310 ; =0x000021EC
+ ldrb r6, [r1, r0]
+ add r0, r6, #0
+ bl FUN_0206A92C
+ ldr r1, _0223F314 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ ldr r0, [r5]
+ beq _0223F224
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223F2B4
+_0223F224:
+ add r0, r0, #1
+ str r0, [r5]
+ mov r0, #0xc0
+ mul r0, r6
+ mov r1, #0xb7
+ add r3, r4, r0
+ lsl r1, r1, #6
+ ldr r2, [r3, r1]
+ mov r1, #0x20
+ tst r1, r2
+ beq _0223F2B4
+ ldr r7, _0223F320 ; =0x00002DC8
+ add r2, r4, r7
+ ldr r1, [r2, r0]
+ lsl r1, r1, #0x11
+ lsr r1, r1, #0x1e
+ bne _0223F27E
+ add r1, r7, #0
+ sub r1, #8
+ add r1, r4, r1
+ str r1, [sp, #4]
+ ldr r1, [r1, r0]
+ mov r5, #0x20
+ bic r1, r5
+ ldr r5, [sp, #4]
+ sub r7, #0x3c
+ str r1, [r5, r0]
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x11
+ lsr r1, r0, #0x1e
+ mov r0, #0x13
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, [r3, r7]
+ ldr r1, _0223F31C ; =0x0000215C
+ neg r0, r0
+ str r0, [r4, r1]
+ add r0, r1, #0
+ sub r0, #0x20
+ ldr r2, [r4, r0]
+ mov r0, #0x40
+ orr r0, r2
+ sub r1, #0x20
+ str r0, [r4, r1]
+ b _0223F298
+_0223F27E:
+ mov r3, #0x13
+ lsl r3, r3, #4
+ str r1, [r4, r3]
+ ldr r3, [r2, r0]
+ ldr r1, _0223F324 ; =0xFFFF9FFF
+ and r1, r3
+ lsl r3, r3, #0x11
+ lsr r3, r3, #0x1e
+ sub r3, r3, #1
+ lsl r3, r3, #0x1e
+ lsr r3, r3, #0x11
+ orr r1, r3
+ str r1, [r2, r0]
+_0223F298:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r6, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x66
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #8
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F2B4:
+ ldr r0, [r4, #0x24]
+ cmp r0, r7
+ blt _0223F208
+_0223F2BA:
+ ldr r0, [r4, #0x20]
+ add r0, r0, #1
+ str r0, [r4, #0x20]
+ mov r0, #0
+ str r0, [r4, #0x24]
+_0223F2C4:
+ mov r1, #6
+ lsl r1, r1, #6
+ ldr r3, [r4, r1]
+ mov r2, #7
+ lsl r2, r2, #0x10
+ add r0, r3, #0
+ tst r0, r2
+ beq _0223F2F8
+ mov r0, #1
+ lsl r0, r0, #0x10
+ sub r0, r3, r0
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ tst r0, r2
+ bne _0223F2F8
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xfb
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #8
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F2F8:
+ ldr r0, [r4, #0x20]
+ add r0, r0, #1
+ str r0, [r4, #0x20]
+ mov r0, #0
+ str r0, [r4, #0x24]
+_0223F302:
+ mov r0, #0
+ str r0, [r4, #0x20]
+ str r0, [r4, #0x24]
+ mov r0, #0xc
+ str r0, [r4, #8]
+_0223F30C:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223F310: .word 0x000021EC
+_0223F314: .word 0x00003108
+_0223F318: .word 0x00002D8C
+_0223F31C: .word 0x0000215C
+_0223F320: .word 0x00002DC8
+_0223F324: .word 0xFFFF9FFF
+
+ thumb_func_start MOD11_0223F328
+MOD11_0223F328: ; 0x0223F328
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #8]
+ add r5, r0, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_02242510
+ cmp r0, #1
+ beq _0223F37C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02241FD8
+ cmp r0, #1
+ beq _0223F37C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02241D2C
+ cmp r0, #1
+ beq _0223F37C
+ mov r1, #0x15
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ add r0, r0, #1
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #0x24
+ ldr r0, [r4, r0]
+ add r1, #0x24
+ add r0, r0, #1
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD11_02245494
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02245C5C
+ mov r0, #2
+ str r0, [r4, #8]
+_0223F37C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223F380
+MOD11_0223F380: ; 0x0223F380
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ mov r4, #0
+ add r1, r5, r0
+ ldr r0, _0223F4A8 ; =0x000021E8
+ ldrb r2, [r1, r0]
+ lsl r0, r2, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ str r2, [r5, #0x64]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0223F3B4
+ mov r0, #0xc1
+ mov r1, #0xa5
+ lsl r0, r0, #6
+ str r1, [r5, r0]
+ mov r4, #1
+ b _0223F478
+_0223F3B4:
+ mov r0, #0xc0
+ mul r0, r2
+ ldr r6, _0223F4AC ; =0x00002DEC
+ add r0, r5, r0
+ ldrh r1, [r0, r6]
+ cmp r1, #0
+ beq _0223F3DC
+ add r3, r6, #2
+ ldrh r3, [r0, r3]
+ sub r6, #0xa0
+ lsl r3, r3, #1
+ add r0, r0, r3
+ ldrh r0, [r0, r6]
+ cmp r1, r0
+ bne _0223F3DC
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ str r1, [r5, r0]
+ mov r4, #1
+ b _0223F478
+_0223F3DC:
+ cmp r1, #0
+ beq _0223F42E
+ mov r7, #0xc0
+ add r0, r2, #0
+ mul r0, r7
+ ldr r3, _0223F4B0 ; =0x00002DEE
+ add r0, r5, r0
+ ldrh r6, [r0, r3]
+ lsl r6, r6, #1
+ add r0, r0, r6
+ add r6, r3, #0
+ sub r6, #0xa2
+ ldrh r0, [r0, r6]
+ cmp r1, r0
+ beq _0223F42E
+ mov r1, #0xc1
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ ldr r1, [r5, #0x64]
+ mov r0, #0
+ add r2, r1, #0
+ mul r2, r7
+ add r2, r5, r2
+ sub r1, r3, #2
+ strh r0, [r2, r1]
+ ldr r1, [r5, #0x64]
+ mov r4, #1
+ add r2, r1, #0
+ mul r2, r7
+ add r1, r5, r2
+ strh r0, [r1, r3]
+ ldr r0, [r5, #0x64]
+ sub r3, #0x26
+ add r2, r0, #0
+ add r3, r5, r3
+ mul r2, r7
+ ldr r1, [r3, r2]
+ mov r0, #0x38
+ bic r1, r0
+ str r1, [r3, r2]
+ b _0223F478
+_0223F42E:
+ add r0, r5, #0
+ add r1, r2, #0
+ bl MOD11_0224AD04
+ cmp r0, #0
+ bne _0223F44A
+ ldr r0, [r5, #0x64]
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _0223F4B4 ; =0x0000304C
+ ldr r1, [r1, r0]
+ sub r0, #0xc
+ str r1, [r5, r0]
+ b _0223F478
+_0223F44A:
+ ldr r2, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ lsl r1, r2, #1
+ add r3, r5, r0
+ add r0, r5, r1
+ ldr r1, _0223F4B8 ; =0x000030BC
+ ldrh r2, [r0, r1]
+ lsl r2, r2, #1
+ add r3, r3, r2
+ ldr r2, _0223F4BC ; =0x00002D4C
+ ldrh r3, [r3, r2]
+ add r2, r1, #0
+ sub r2, #8
+ ldrh r0, [r0, r2]
+ cmp r0, r3
+ beq _0223F474
+ sub r1, #0x7c
+ str r3, [r5, r1]
+ mov r4, #1
+ b _0223F478
+_0223F474:
+ sub r1, #0x7c
+ str r3, [r5, r1]
+_0223F478:
+ mov r3, #0xc1
+ lsl r3, r3, #6
+ ldr r1, [r5, r3]
+ add r0, r3, #4
+ str r1, [r5, r0]
+ mov r0, #0x16
+ str r0, [r5, #8]
+ str r4, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r3, [r5, r3]
+ ldr r0, [sp, #8]
+ lsl r3, r3, #0x10
+ ldr r2, [r5, #0x64]
+ add r1, r5, #0
+ lsr r3, r3, #0x10
+ bl MOD11_02244C28
+ str r0, [r5, #0x6c]
+ ldr r0, [sp, #8]
+ bl MOD11_0225679C
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223F4A8: .word 0x000021E8
+_0223F4AC: .word 0x00002DEC
+_0223F4B0: .word 0x00002DEE
+_0223F4B4: .word 0x0000304C
+_0223F4B8: .word 0x000030BC
+_0223F4BC: .word 0x00002D4C
+
+ thumb_func_start MOD11_0223F4C0
+MOD11_0223F4C0: ; 0x0223F4C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0xec
+ ldr r2, [r2]
+ add r7, r0, #0
+ add r3, r4, r2
+ ldr r2, _0223F5FC ; =0x000021E8
+ ldrb r2, [r3, r2]
+ str r2, [r4, #0x64]
+ bl MOD11_022482A4
+ str r0, [r4, #0x6c]
+ ldr r0, _0223F600 ; =0x000021B0
+ ldr r1, [r4, #0x64]
+ add r2, r4, r0
+ lsl r0, r1, #4
+ add r6, r2, r0
+ add r0, r7, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0223F568
+ ldr r0, [r4, #0x64]
+ asr r0, r0, #1
+ add r1, r4, r0
+ ldr r0, _0223F604 ; =0x000003D1
+ ldrb r2, [r1, r0]
+ cmp r2, #4
+ bhi _0223F554
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223F508: ; jump table
+ .short _0223F512 - _0223F508 - 2 ; case 0
+ .short _0223F516 - _0223F508 - 2 ; case 1
+ .short _0223F51A - _0223F508 - 2 ; case 2
+ .short _0223F544 - _0223F508 - 2 ; case 3
+ .short _0223F552 - _0223F508 - 2 ; case 4
+_0223F512:
+ ldr r5, _0223F608 ; =0x00000121
+ b _0223F554
+_0223F516:
+ ldr r5, _0223F60C ; =0x0000010B
+ b _0223F554
+_0223F51A:
+ add r0, r0, #2
+ ldrb r0, [r1, r0]
+ mov r1, #1
+ tst r1, r0
+ beq _0223F534
+ mov r1, #0x3e
+ add r2, r0, #0
+ tst r2, r1
+ beq _0223F534
+ mov r0, #6
+ add r1, #0xf2
+ str r0, [r4, r1]
+ b _0223F53E
+_0223F534:
+ bl FUN_0206A94C
+ mov r1, #0x13
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+_0223F53E:
+ mov r5, #0x43
+ lsl r5, r5, #2
+ b _0223F554
+_0223F544:
+ add r0, r0, #2
+ ldrb r0, [r1, r0]
+ mov r5, #0x13
+ lsl r5, r5, #4
+ str r0, [r4, r5]
+ sub r5, #0x23
+ b _0223F554
+_0223F552:
+ ldr r5, _0223F610 ; =0x0000010E
+_0223F554:
+ ldr r1, [r4, #0x64]
+ mov r0, #1
+ bic r1, r0
+ ldr r0, _0223F614 ; =0x000003D6
+ add r1, r4, r1
+ ldrh r1, [r1, r0]
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _0223F5DA
+_0223F568:
+ ldrb r0, [r6, #2]
+ cmp r0, #3
+ bhi _0223F5D2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223F57A: ; jump table
+ .short _0223F582 - _0223F57A - 2 ; case 0
+ .short _0223F582 - _0223F57A - 2 ; case 1
+ .short _0223F598 - _0223F57A - 2 ; case 2
+ .short _0223F582 - _0223F57A - 2 ; case 3
+_0223F582:
+ ldrh r1, [r6]
+ ldr r0, _0223F618 ; =0x0000FFC1
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _0223F594
+ mov r5, #0xde
+ b _0223F5D2
+_0223F594:
+ mov r5, #0xdf
+ b _0223F5D2
+_0223F598:
+ add r0, r7, #0
+ mov r5, #0xb
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ bne _0223F5D2
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ bne _0223F5D2
+ add r0, r7, #0
+ bl MOD11_02230214
+ ldrh r1, [r6]
+ mov r2, #1
+ mov r3, #5
+ bl FUN_0206EDD4
+ add r0, r7, #0
+ bl MOD11_02230218
+ ldrh r1, [r6]
+ ldrb r2, [r6, #2]
+ bl FUN_0206F1E4
+_0223F5D2:
+ ldrh r1, [r6]
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0223F5DA:
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r5, #0
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ ldr r1, _0223F61C ; =0x0000216C
+ mov r0, #2
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0x1e
+ orr r0, r2
+ str r0, [r4, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223F5FC: .word 0x000021E8
+_0223F600: .word 0x000021B0
+_0223F604: .word 0x000003D1
+_0223F608: .word 0x00000121
+_0223F60C: .word 0x0000010B
+_0223F610: .word 0x0000010E
+_0223F614: .word 0x000003D6
+_0223F618: .word 0x0000FFC1
+_0223F61C: .word 0x0000216C
+
+ thumb_func_start MOD11_0223F620
+MOD11_0223F620: ; 0x0223F620
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #9
+ bl MOD11_022431DC
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ ldr r1, _0223F660 ; =0x000021E8
+ add r0, r4, r0
+ ldrb r0, [r0, r1]
+ mov r2, #0
+ str r0, [r4, #0x64]
+ str r0, [r4, #0x78]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x28
+ str r0, [r4, #0xc]
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ str r2, [r4, r0]
+ add r0, r1, #0
+ sub r0, #0x7c
+ ldr r2, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0x1e
+ orr r0, r2
+ sub r1, #0x7c
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+_0223F660: .word 0x000021E8
+
+ thumb_func_start MOD11_0223F664
+MOD11_0223F664: ; 0x0223F664
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r1, #0xec
+ ldr r1, [r1]
+ add r5, r0, #0
+ add r2, r4, r1
+ ldr r1, _0223F71C ; =0x000021E8
+ ldrb r1, [r2, r1]
+ str r1, [r4, #0x64]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0223F6D6
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _0223F6D6
+ ldr r0, [r4, #0x64]
+ mov r2, #0xc0
+ add r1, r0, #0
+ mul r1, r2
+ ldr r0, _0223F720 ; =0x00002DB0
+ add r1, r4, r1
+ ldr r1, [r1, r0]
+ ldr r0, _0223F724 ; =0x0400E000
+ tst r0, r1
+ beq _0223F6BA
+ add r0, r4, #0
+ mov r1, #1
+ add r2, #0x5e
+ bl MOD11_022431DC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223F6BA:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe6
+ bl MOD11_022431DC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x2a
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223F6D6:
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022470B8
+ cmp r0, #0
+ beq _0223F700
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #3
+ bl MOD11_022431DC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x2a
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223F700:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #8
+ bl MOD11_022431DC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223F71C: .word 0x000021E8
+_0223F720: .word 0x00002DB0
+_0223F724: .word 0x0400E000
+
+ thumb_func_start MOD11_0223F728
+MOD11_0223F728: ; 0x0223F728
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r2, _0223F76C ; =0x00000113
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0
+ str r0, [r4, #0x64]
+ mov r0, #1
+ str r0, [r4, #0x6c]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ mov r0, #0x4a
+ mov r1, #5
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r5, #0
+ bl MOD11_02230E00
+ sub r1, r0, #1
+ add r0, r5, #0
+ bl MOD11_02230E0C
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD11_02256020
+ pop {r3, r4, r5, pc}
+ nop
+_0223F76C: .word 0x00000113
+
+ thumb_func_start MOD11_0223F770
+MOD11_0223F770: ; 0x0223F770
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe3
+ bl MOD11_022431DC
+ mov r0, #0
+ str r0, [r4, #0x64]
+ mov r0, #1
+ str r0, [r4, #0x6c]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ bl FUN_0201B9EC
+ mov r1, #0xa
+ blx _s32_div_f
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, _0223F7C4 ; =0x0000311C
+ ldrb r1, [r4, r0]
+ cmp r1, #0xc
+ bhs _0223F7AA
+ add r1, r1, #1
+ strb r1, [r4, r0]
+_0223F7AA:
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0223F7C0
+ ldr r0, _0223F7C8 ; =0x0000311D
+ ldrb r1, [r4, r0]
+ cmp r1, #0xc
+ bhs _0223F7C0
+ add r1, r1, #1
+ strb r1, [r4, r0]
+_0223F7C0:
+ pop {r4, pc}
+ nop
+_0223F7C4: .word 0x0000311C
+_0223F7C8: .word 0x0000311D
+
+ thumb_func_start MOD11_0223F7CC
+MOD11_0223F7CC: ; 0x0223F7CC
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe4
+ bl MOD11_022431DC
+ mov r0, #0
+ str r0, [r4, #0x64]
+ mov r0, #1
+ str r0, [r4, #0x6c]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ bl FUN_0201B9EC
+ mov r1, #0xa
+ blx _s32_div_f
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, _0223F824 ; =0x0000311D
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _0223F806
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+_0223F806:
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _0223F822
+ mov r1, #1
+ sub r0, #8
+ str r1, [r4, r0]
+ ldr r0, _0223F828 ; =0x0000311C
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _0223F822
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+_0223F822:
+ pop {r4, pc}
+ .align 2, 0
+_0223F824: .word 0x0000311D
+_0223F828: .word 0x0000311C
+
+ thumb_func_start MOD11_0223F82C
+MOD11_0223F82C: ; 0x0223F82C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe5
+ bl MOD11_022431DC
+ mov r0, #0
+ str r0, [r4, #0x64]
+ mov r0, #1
+ str r0, [r4, #0x6c]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0223F84C
+MOD11_0223F84C: ; 0x0223F84C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r0, [sp, #0x18]
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD11_0222FF74
+ add r5, r0, #0
+ ldr r0, [sp, #0x18]
+ mov r1, #0
+ bl MOD11_022301D4
+ add r7, r0, #0
+ mov r0, #0x84
+ tst r0, r5
+ beq _0223F872
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F872:
+ ldr r0, [sp, #0x18]
+ ldr r1, [r4, #0x64]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0223F884
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F884:
+ mov r0, #0x40
+ tst r0, r5
+ beq _0223F89C
+ ldr r0, [sp, #0x18]
+ ldr r1, [r4, #0x64]
+ bl MOD11_02230260
+ cmp r0, #4
+ bne _0223F89C
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F89C:
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ bl MOD11_0224ADB8
+ cmp r0, #1
+ bne _0223F8AE
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F8AE:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_0224AD04
+ cmp r0, #0
+ bne _0223F8C0
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F8C0:
+ add r0, r7, #0
+ bl FUN_020239F4
+ cmp r0, #8
+ blt _0223F8D0
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F8D0:
+ add r0, r7, #0
+ mov r5, #0xa
+ bl FUN_020239F4
+ cmp r0, #2
+ blt _0223F8DE
+ mov r5, #0x1e
+_0223F8DE:
+ add r0, r7, #0
+ bl FUN_020239F4
+ cmp r0, #4
+ blt _0223F8EA
+ mov r5, #0x32
+_0223F8EA:
+ add r0, r7, #0
+ bl FUN_020239F4
+ cmp r0, #6
+ blt _0223F8F6
+ mov r5, #0x46
+_0223F8F6:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r7, r1, #0
+ mul r7, r0
+ ldr r0, _0223FAEC ; =0x00002D74
+ add r1, r4, r7
+ ldrb r0, [r1, r0]
+ cmp r0, r5
+ bhi _0223F90E
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F90E:
+ bl FUN_0201B9EC
+ lsl r0, r0, #0x18
+ ldr r1, _0223FAEC ; =0x00002D74
+ add r2, r4, r7
+ ldrb r2, [r2, r1]
+ lsr r0, r0, #0x18
+ add r2, r5, r2
+ mul r0, r2
+ asr r0, r0, #8
+ cmp r0, r5
+ bge _0223F92C
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F92C:
+ ldr r0, _0223FAF0 ; =0x00003044
+ ldr r0, [r4, r0]
+ cmp r0, #0x63
+ bne _0223F940
+ add r1, #0x3c
+ add r0, r4, r1
+ ldr r2, [r0, r7]
+ ldr r1, _0223FAF4 ; =0xFF7FFFFF
+ and r1, r2
+ str r1, [r0, r7]
+_0223F940:
+ ldr r7, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r7
+ add r1, r4, r0
+ ldr r0, _0223FAF8 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223F968
+ ldr r0, _0223FAF0 ; =0x00003044
+ ldr r0, [r4, r0]
+ cmp r0, #0xad
+ beq _0223F95E
+ cmp r0, #0xd6
+ bne _0223F968
+_0223F95E:
+ mov r0, #0xfe
+ str r0, [r6]
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F968:
+ mov r0, #0xc0
+ mul r0, r7
+ add r1, r4, r0
+ ldr r0, _0223FAEC ; =0x00002D74
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0x1c]
+ bl FUN_0201B9EC
+ ldr r1, [sp, #0x1c]
+ lsl r0, r0, #0x18
+ add r1, r5, r1
+ lsr r0, r0, #0x18
+ mul r0, r1
+ asr r0, r0, #8
+ cmp r0, r5
+ bge _0223FA2E
+ lsl r0, r7, #1
+ add r1, r4, r0
+ ldr r0, _0223FAFC ; =0x000030BC
+ ldrh r0, [r1, r0]
+ bl FUN_0206A92C
+ add r3, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp]
+ ldr r0, [sp, #0x18]
+ ldr r2, [r4, #0x64]
+ add r1, r4, #0
+ bl MOD11_02245D38
+ add r5, r0, #0
+ cmp r5, #0xf
+ bne _0223F9B6
+ mov r0, #0xff
+ str r0, [r6]
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F9B6:
+ bl FUN_0201B9EC
+ mov r1, #3
+ add r7, r0, #0
+ and r7, r1
+ add r0, r7, #0
+ bl FUN_0206A92C
+ tst r0, r5
+ bne _0223F9B6
+ ldr r0, [r4, #0x64]
+ ldr r3, _0223FAFC ; =0x000030BC
+ lsl r0, r0, #1
+ add r0, r4, r0
+ strh r7, [r0, r3]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ lsl r1, r1, #1
+ add r1, r4, r1
+ ldrh r1, [r1, r3]
+ add r0, r4, r0
+ lsl r1, r1, #1
+ add r1, r0, r1
+ ldr r0, _0223FB00 ; =0x00002D4C
+ ldrh r1, [r1, r0]
+ add r0, r3, #0
+ sub r0, #0x7c
+ str r1, [r4, r0]
+ add r0, r3, #0
+ sub r0, #0x7c
+ ldr r1, [r4, r0]
+ add r0, r3, #0
+ sub r0, #0x78
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ sub r3, #0x7c
+ ldr r3, [r4, r3]
+ ldr r0, [sp, #0x18]
+ lsl r3, r3, #0x10
+ ldr r2, [r4, #0x64]
+ add r1, r4, #0
+ lsr r3, r3, #0x10
+ bl MOD11_02244C28
+ str r0, [r4, #0x6c]
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [r6]
+ ldr r1, _0223FB04 ; =0x00002184
+ mov r0, #1
+ ldr r2, [r4, r1]
+ add sp, #0x20
+ orr r0, r2
+ str r0, [r4, r1]
+ mov r0, #2
+ pop {r3, r4, r5, r6, r7, pc}
+_0223FA2E:
+ ldr r0, [sp, #0x1c]
+ sub r0, r0, r5
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ bl FUN_0201B9EC
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ cmp r7, r5
+ bge _0223FA8E
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _0223FAF8 ; =0x00002DAC
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bne _0223FA8E
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x48
+ beq _0223FA8E
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0xf
+ beq _0223FA8E
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x66
+ beq _0223FA8E
+ mov r1, #6
+ lsl r1, r1, #6
+ mov r0, #0xf
+ ldr r2, [r4, r1]
+ lsl r0, r0, #8
+ tst r0, r2
+ bne _0223FA8E
+ sub r1, #0x7f
+ add sp, #0x20
+ str r1, [r6]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223FA8E:
+ sub r0, r7, r5
+ cmp r0, r5
+ bge _0223FAE2
+ ldr r1, [r4, #0x64]
+ mov r0, #0x46
+ str r1, [r4, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r1, [r4, #0x64]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x28
+ str r0, [sp, #4]
+ lsl r0, r1, #0x18
+ str r3, [sp, #8]
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r2, #1
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ str r2, [sp, #0x14]
+ bl MOD11_0224B310
+ ldr r1, _0223FB08 ; =0x0000215C
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD11_0224BF10
+ ldr r1, _0223FB08 ; =0x0000215C
+ add sp, #0x20
+ str r0, [r4, r1]
+ mov r0, #0
+ ldr r2, [r4, r1]
+ mvn r0, r0
+ mul r0, r2
+ str r0, [r4, r1]
+ ldr r0, _0223FB0C ; =0x00000102
+ str r0, [r6]
+ mov r0, #3
+ pop {r3, r4, r5, r6, r7, pc}
+_0223FAE2:
+ mov r0, #0xff
+ str r0, [r6]
+ mov r0, #1
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223FAEC: .word 0x00002D74
+_0223FAF0: .word 0x00003044
+_0223FAF4: .word 0xFF7FFFFF
+_0223FAF8: .word 0x00002DAC
+_0223FAFC: .word 0x000030BC
+_0223FB00: .word 0x00002D4C
+_0223FB04: .word 0x00002184
+_0223FB08: .word 0x0000215C
+_0223FB0C: .word 0x00000102
+
+ thumb_func_start MOD11_0223FB10
+MOD11_0223FB10: ; 0x0223FB10
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ ldr r3, [r5, #0x64]
+ mov r2, #0x1c
+ mul r2, r3
+ add r6, r5, r2
+ mov r2, #0xb5
+ lsl r2, r2, #2
+ ldr r2, [r6, r2]
+ str r0, [sp, #4]
+ lsl r2, r2, #0x1f
+ mov r4, #1
+ lsr r2, r2, #0x1f
+ bne _0223FBCA
+ ldr r6, [r5, #0x6c]
+ cmp r6, #0xff
+ beq _0223FBCA
+ mov r2, #0xc1
+ lsl r2, r2, #6
+ ldr r7, [r5, r2]
+ ldr r2, _0223FC98 ; =0x0000011E
+ cmp r7, r2
+ bne _0223FB4E
+ mov r2, #0x2e
+ str r2, [sp]
+ mov r2, #3
+ bl MOD11_02246870
+ add r4, r4, r0
+ b _0223FBCA
+_0223FB4E:
+ lsl r0, r7, #4
+ add r1, r5, r0
+ ldr r0, _0223FC9C ; =0x000003E6
+ ldrh r1, [r1, r0]
+ cmp r1, #0x40
+ bgt _0223FB78
+ bge _0223FB94
+ cmp r1, #0x10
+ bgt _0223FB72
+ bge _0223FBCA
+ cmp r1, #8
+ bgt _0223FBB8
+ cmp r1, #4
+ blt _0223FBB8
+ beq _0223FBA6
+ cmp r1, #8
+ beq _0223FB94
+ b _0223FBB8
+_0223FB72:
+ cmp r1, #0x20
+ beq _0223FBCA
+ b _0223FBB8
+_0223FB78:
+ add r0, r2, #0
+ sub r0, #0x1e
+ cmp r1, r0
+ bgt _0223FB8C
+ sub r2, #0x1e
+ cmp r1, r2
+ bge _0223FBCA
+ cmp r1, #0x80
+ beq _0223FBA6
+ b _0223FBB8
+_0223FB8C:
+ add r2, #0xe2
+ cmp r1, r2
+ beq _0223FBCA
+ b _0223FBB8
+_0223FB94:
+ mov r0, #0x2e
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #9
+ bl MOD11_02246870
+ add r4, r4, r0
+ b _0223FBCA
+_0223FBA6:
+ mov r0, #0x2e
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #3
+ bl MOD11_02246870
+ add r4, r4, r0
+ b _0223FBCA
+_0223FBB8:
+ cmp r3, r6
+ beq _0223FBCA
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2e
+ bne _0223FBCA
+ add r4, r4, #1
+_0223FBCA:
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r2, r5, r0
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ mov r1, #0xc1
+ lsl r1, r1, #6
+ ldr r1, [r5, r1]
+ add r0, r2, r0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl MOD11_022461AC
+ add r6, r0, #0
+ ldr r1, [r5, #0x64]
+ mov r0, #0x75
+ lsl r0, r0, #2
+ add r0, r5, r0
+ lsl r7, r1, #6
+ ldr r3, [r0, r7]
+ lsl r2, r3, #0x1e
+ lsr r2, r2, #0x1f
+ bne _0223FC42
+ lsl r2, r3, #0x1f
+ lsr r2, r2, #0x1f
+ bne _0223FC42
+ mov r1, #2
+ orr r1, r3
+ str r1, [r0, r7]
+ ldr r0, _0223FCA0 ; =0x00002D6C
+ ldr r1, [r5, #0x64]
+ add r2, r5, r0
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r2, r0
+ ldrb r0, [r1, r6]
+ cmp r0, #0
+ beq _0223FC34
+ cmp r6, #4
+ bge _0223FC34
+ cmp r0, r4
+ ble _0223FC24
+ sub r0, r0, r4
+ b _0223FC26
+_0223FC24:
+ mov r0, #0
+_0223FC26:
+ strb r0, [r1, r6]
+ ldr r0, [sp, #4]
+ ldr r2, [r5, #0x64]
+ add r1, r5, #0
+ bl MOD11_02245190
+ b _0223FC90
+_0223FC34:
+ ldr r1, _0223FCA4 ; =0x0000216C
+ mov r0, #2
+ ldr r2, [r5, r1]
+ lsl r0, r0, #8
+ orr r0, r2
+ str r0, [r5, r1]
+ b _0223FC90
+_0223FC42:
+ mov r2, #0xc0
+ add r0, r1, #0
+ mul r0, r2
+ add r0, r5, r0
+ ldr r3, _0223FCA0 ; =0x00002D6C
+ add r4, r0, r6
+ ldrb r4, [r4, r3]
+ cmp r4, #0
+ bne _0223FC90
+ ldr r4, _0223FCA8 ; =0x0000213C
+ mov r7, #2
+ ldr r4, [r5, r4]
+ lsl r7, r7, #8
+ tst r4, r7
+ bne _0223FC90
+ add r3, #0x44
+ ldr r0, [r0, r3]
+ lsl r3, r7, #3
+ tst r3, r0
+ bne _0223FC90
+ lsl r2, r2, #4
+ tst r0, r2
+ bne _0223FC90
+ add r0, r1, #0
+ bl FUN_0206A92C
+ add r1, r7, #0
+ sub r1, #0x80
+ ldr r2, [r5, r1]
+ lsl r0, r0, #8
+ tst r0, r2
+ bne _0223FC90
+ cmp r6, #4
+ bge _0223FC90
+ ldr r0, _0223FCA4 ; =0x0000216C
+ add r1, #0x80
+ ldr r2, [r5, r0]
+ orr r1, r2
+ str r1, [r5, r0]
+_0223FC90:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223FC98: .word 0x0000011E
+_0223FC9C: .word 0x000003E6
+_0223FCA0: .word 0x00002D6C
+_0223FCA4: .word 0x0000216C
+_0223FCA8: .word 0x0000213C
+
+ thumb_func_start MOD11_0223FCAC
+MOD11_0223FCAC: ; 0x0223FCAC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r0, [r5, #0x6c]
+ mov r4, #0
+ cmp r0, #0xff
+ bne _0223FCC6
+ ldr r1, _0223FD10 ; =0x00003044
+ add r0, r5, #0
+ ldr r1, [r5, r1]
+ bl MOD11_02246AF8
+ cmp r0, #0
+ beq _0223FCF8
+_0223FCC6:
+ ldr r0, [r5, #0x6c]
+ cmp r0, #0xff
+ bne _0223FD0C
+ ldr r1, _0223FD10 ; =0x00003044
+ add r0, r5, #0
+ ldr r1, [r5, r1]
+ bl MOD11_02246AF8
+ cmp r0, #1
+ bne _0223FD0C
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _0223FD14 ; =0x00002DB0
+ ldr r0, [r1, r0]
+ mov r1, #1
+ lsl r1, r1, #0xc
+ tst r0, r1
+ bne _0223FCF8
+ ldr r0, _0223FD18 ; =0x0000213C
+ ldr r2, [r5, r0]
+ lsr r0, r1, #3
+ tst r0, r2
+ beq _0223FD0C
+_0223FCF8:
+ ldr r2, _0223FD1C ; =0x00000119
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x26
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+ mov r4, #1
+_0223FD0C:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223FD10: .word 0x00003044
+_0223FD14: .word 0x00002DB0
+_0223FD18: .word 0x0000213C
+_0223FD1C: .word 0x00000119
+
+ thumb_func_start MOD11_0223FD20
+MOD11_0223FD20: ; 0x0223FD20
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldr r1, _0223FDA0 ; =0x00003044
+ ldr r2, [r4, r1]
+ lsl r1, r2, #4
+ add r5, r4, r1
+ ldr r1, _0223FDA4 ; =0x000003E6
+ ldrh r3, [r5, r1]
+ cmp r3, #0x10
+ beq _0223FD54
+ cmp r3, #0x20
+ beq _0223FD54
+ sub r1, r1, #5
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ beq _0223FD54
+ ldr r1, _0223FDA8 ; =0x0000213C
+ ldr r3, [r4, r1]
+ mov r1, #2
+ lsl r1, r1, #0xe
+ tst r1, r3
+ bne _0223FD54
+ mov r1, #0x20
+ tst r1, r3
+ beq _0223FD58
+_0223FD54:
+ cmp r2, #0x56
+ bne _0223FD98
+_0223FD58:
+ ldr r1, [r4, #0x64]
+ ldr r3, _0223FDAC ; =0x00002144
+ str r1, [sp]
+ ldr r1, [r4, #0x6c]
+ str r1, [sp, #4]
+ ldr r1, [r4, r3]
+ str r1, [sp, #8]
+ add r1, r3, #0
+ add r1, #0x28
+ add r1, r4, r1
+ str r1, [sp, #0xc]
+ add r3, #0x1c
+ ldr r3, [r4, r3]
+ add r1, r4, #0
+ bl MOD11_02246274
+ ldr r1, _0223FDAC ; =0x00002144
+ str r0, [r4, r1]
+ add r1, #0x28
+ ldr r1, [r4, r1]
+ mov r0, #8
+ tst r0, r1
+ beq _0223FD98
+ mov r0, #0xd1
+ lsl r0, r0, #2
+ add r3, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r2, r0, #2
+ ldr r1, [r3, r2]
+ mov r0, #2
+ orr r0, r1
+ str r0, [r3, r2]
+_0223FD98:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_0223FDA0: .word 0x00003044
+_0223FDA4: .word 0x000003E6
+_0223FDA8: .word 0x0000213C
+_0223FDAC: .word 0x00002144
+
+ thumb_func_start MOD11_0223FDB0
+MOD11_0223FDB0: ; 0x0223FDB0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ str r0, [sp, #0x18]
+ add r4, r1, #0
+ ldr r0, _022400D8 ; =0x00003044
+ add r5, r4, #0
+ ldr r0, [r4, r0]
+ mov r7, #0
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022400DC ; =0x000003DE
+ add r5, #0x50
+ ldrh r0, [r1, r0]
+ str r0, [sp, #0x1c]
+ mov r0, #0xd1
+ lsl r0, r0, #2
+ add r6, r4, r0
+ mov r0, #7
+ str r0, [sp, #0x20]
+ mov r0, #8
+ str r0, [sp, #0x24]
+ mov r0, #1
+ str r0, [sp, #0x28]
+_0223FDDE:
+ ldr r0, [r4, #0x50]
+ cmp r0, #0x10
+ bls _0223FDE6
+ b _0224043C
+_0223FDE6:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223FDF2: ; jump table
+ .short _0223FE14 - _0223FDF2 - 2 ; case 0
+ .short _0223FE48 - _0223FDF2 - 2 ; case 1
+ .short _0223FF42 - _0223FDF2 - 2 ; case 2
+ .short _0223FFA6 - _0223FDF2 - 2 ; case 3
+ .short _0223FFCE - _0223FDF2 - 2 ; case 4
+ .short _0224000A - _0223FDF2 - 2 ; case 5
+ .short _02240050 - _0223FDF2 - 2 ; case 6
+ .short _0224008C - _0223FDF2 - 2 ; case 7
+ .short _022400D4 - _0223FDF2 - 2 ; case 8
+ .short _02240138 - _0223FDF2 - 2 ; case 9
+ .short _02240174 - _0223FDF2 - 2 ; case 10
+ .short _022401B0 - _0223FDF2 - 2 ; case 11
+ .short _0224028C - _0223FDF2 - 2 ; case 12
+ .short _022402E8 - _0223FDF2 - 2 ; case 13
+ .short _0224034E - _0223FDF2 - 2 ; case 14
+ .short _022403FE - _0223FDF2 - 2 ; case 15
+ .short _02240436 - _0223FDF2 - 2 ; case 16
+_0223FE14:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _022400E0 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ ldr r0, _022400E4 ; =0xFDFFFFFF
+ and r1, r0
+ ldr r0, _022400E0 ; =0x00002DB0
+ str r1, [r2, r0]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r2, r0]
+ ldr r0, _022400E8 ; =0xFFFFBFFF
+ and r1, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ str r1, [r2, r0]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0223FE48:
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _022400EC ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223FF3A
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0xf
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _0223FE92
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2b
+ beq _0223FE92
+ mov r0, #0x46
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x13
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223FF3A
+_0223FE92:
+ ldr r0, _022400D8 ; =0x00003044
+ ldr r0, [r4, r0]
+ cmp r0, #0xd6
+ beq _0223FEA8
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0xd6
+ bne _0223FEA8
+ mov r0, #1
+ b _0223FEAA
+_0223FEA8:
+ mov r0, #0
+_0223FEAA:
+ cmp r0, #0
+ bne _0223FF3A
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x30
+ bne _0223FEBE
+ mov r3, #2
+ b _0223FEC0
+_0223FEBE:
+ mov r3, #1
+_0223FEC0:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _022400EC ; =0x00002DAC
+ ldr r1, [r2, r0]
+ mov r0, #7
+ and r0, r1
+ cmp r0, r3
+ ldr r0, _022400EC ; =0x00002DAC
+ bhs _0223FEDE
+ ldr r1, [r2, r0]
+ ldr r0, [sp, #0x20]
+ bic r1, r0
+ b _0223FEE2
+_0223FEDE:
+ ldr r0, [r2, r0]
+ sub r1, r0, r3
+_0223FEE2:
+ ldr r0, _022400EC ; =0x00002DAC
+ str r1, [r2, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _022400EC ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223FF20
+ ldr r0, _022400D8 ; =0x00003044
+ ldr r0, [r4, r0]
+ cmp r0, #0xad
+ beq _0223FF3A
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0xd6
+ beq _0223FF3A
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x14
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #2
+ b _0223FF3A
+_0223FF20:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r2, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x13
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223FF3A:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0223FF42:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _022400EC ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0223FF9E
+ bl FUN_0201B9EC
+ mov r1, #5
+ blx _s32_div_f
+ cmp r1, #0
+ beq _0223FF82
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x7d
+ beq _0223FF9E
+ cmp r0, #0xfd
+ beq _0223FF9E
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1c
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+ b _0223FF9E
+_0223FF82:
+ mov r0, #0x46
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1d
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223FF9E:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0223FFA6:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02247190
+ cmp r0, #1
+ bne _0223FFC6
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xbf
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_0223FFC6:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0223FFCE:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _022400E0 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ mov r0, #1
+ lsl r0, r0, #0x16
+ tst r0, r1
+ beq _02240002
+ ldr r0, _022400E0 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ ldr r0, _022400F0 ; =0xFFBFFFFF
+ and r1, r0
+ ldr r0, _022400E0 ; =0x00002DB0
+ str r1, [r2, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x41
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_02240002:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0224000A:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _022400E0 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ mov r0, #8
+ tst r0, r1
+ beq _02240048
+ ldr r0, _022400E0 ; =0x00002DB0
+ ldr r1, [sp, #0x24]
+ ldr r0, [r2, r0]
+ bic r0, r1
+ ldr r1, _022400E0 ; =0x00002DB0
+ str r0, [r2, r1]
+ ldr r0, [r4, #0x64]
+ mov r1, #0x40
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xf
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_02240048:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_02240050:
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r3, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _022400F4 ; =0x00002DE8
+ ldrh r0, [r1, r0]
+ cmp r3, r0
+ bne _02240084
+ lsl r0, r2, #2
+ ldr r2, [r6, r0]
+ mov r1, #0x10
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x47
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_02240084:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0224008C:
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _022400F8 ; =0x00002DC8
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1d
+ beq _022400CC
+ ldr r0, _022400D8 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022400FC ; =0x000003E1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _022400CC
+ lsl r0, r2, #2
+ ldr r2, [r6, r0]
+ mov r1, #0x20
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x85
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_022400CC:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_022400D4:
+ ldr r3, _022400D8 ; =0x00003044
+ b _02240100
+ .align 2, 0
+_022400D8: .word 0x00003044
+_022400DC: .word 0x000003DE
+_022400E0: .word 0x00002DB0
+_022400E4: .word 0xFDFFFFFF
+_022400E8: .word 0xFFFFBFFF
+_022400EC: .word 0x00002DAC
+_022400F0: .word 0xFFBFFFFF
+_022400F4: .word 0x00002DE8
+_022400F8: .word 0x00002DC8
+_022400FC: .word 0x000003E1
+_02240100:
+ ldr r0, [sp, #0x18]
+ ldr r2, [r4, #0x64]
+ ldr r3, [r4, r3]
+ add r1, r4, #0
+ bl MOD11_022471C4
+ cmp r0, #0
+ beq _02240130
+ ldr r0, [r4, #0x64]
+ mov r1, #4
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x90
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_02240130:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_02240138:
+ ldr r3, _0224047C ; =0x00003044
+ ldr r0, [sp, #0x18]
+ ldr r2, [r4, #0x64]
+ ldr r3, [r4, r3]
+ add r1, r4, #0
+ bl MOD11_02247314
+ cmp r0, #0
+ beq _0224016C
+ ldr r0, [r4, #0x64]
+ mov r1, #1
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ lsl r1, r1, #8
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x9d
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_0224016C:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_02240174:
+ ldr r3, _0224047C ; =0x00003044
+ ldr r0, [sp, #0x18]
+ ldr r2, [r4, #0x64]
+ ldr r3, [r4, r3]
+ add r1, r4, #0
+ bl MOD11_02247348
+ cmp r0, #0
+ beq _022401A8
+ ldr r0, [r4, #0x64]
+ mov r1, #2
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ lsl r1, r1, #8
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xae
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_022401A8:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_022401B0:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ mov r0, #7
+ tst r0, r1
+ bne _022401CA
+ b _0224043C
+_022401CA:
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r0, [r2, r0]
+ sub r1, r0, #1
+ ldr r0, _02240480 ; =0x00002DB0
+ str r1, [r2, r0]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02240276
+ bl FUN_0201B9EC
+ mov r1, #1
+ tst r0, r1
+ beq _02240204
+ add r0, r4, #0
+ mov r2, #0x26
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0224043C
+_02240204:
+ ldr r0, [r4, #0x64]
+ mov r1, #0x80
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ mov r3, #0
+ orr r1, r2
+ str r1, [r6, r0]
+ ldr r1, [r4, #0x64]
+ mov r0, #0x46
+ str r1, [r4, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, [r4, #0x64]
+ mov r1, #0
+ str r1, [sp]
+ mov r1, #0x28
+ str r1, [sp, #4]
+ mov r1, #0
+ lsl r0, r0, #0x18
+ str r1, [sp, #8]
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ mov r2, #0xa5
+ bl MOD11_0224B310
+ ldr r1, _02240484 ; =0x0000215C
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD11_0224BF10
+ ldr r1, _02240484 ; =0x0000215C
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r1, [r4, r0]
+ mov r0, #0
+ add r2, r1, #0
+ mvn r0, r0
+ mul r2, r0
+ ldr r0, _02240484 ; =0x0000215C
+ mov r1, #1
+ str r2, [r4, r0]
+ add r0, r4, #0
+ mov r2, #0x27
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x21
+ str r0, [r4, #0xc]
+ mov r7, #1
+ b _0224043C
+_02240276:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x28
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0224043C
+_0224028C:
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02240488 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _022402E0
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _022402E0
+ bl FUN_0201B9EC
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x1e
+ sub r2, r2, r1
+ mov r0, #0x1e
+ ror r2, r0
+ add r0, r1, r2
+ bne _022402E0
+ ldr r0, [r4, #0x64]
+ ldr r2, [sp, #0x28]
+ lsl r1, r0, #2
+ ldr r0, [r6, r1]
+ bic r0, r2
+ mov r2, #1
+ orr r0, r2
+ str r0, [r6, r1]
+ add r1, r2, #0
+ add r0, r4, #0
+ mov r2, #0x20
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_022402E0:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_022402E8:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x10
+ and r0, r1
+ beq _02240346
+ lsr r0, r0, #0x10
+ bl FUN_0206A94C
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ bl FUN_0201B9EC
+ mov r1, #1
+ tst r0, r1
+ beq _02240326
+ add r0, r4, #0
+ mov r2, #0x6b
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _02240346
+_02240326:
+ ldr r0, [r4, #0x64]
+ mov r1, #8
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x6c
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_02240346:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0224034E:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ mov r0, #3
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _0224043C
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ mov r0, #1
+ lsl r0, r0, #8
+ sub r1, r1, r0
+ ldr r0, _02240480 ; =0x00002DB0
+ str r1, [r2, r0]
+ ldr r0, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02240480 ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #3
+ lsl r1, r1, #8
+ tst r1, r2
+ bne _022403E8
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, _0224048C ; =0x000030E4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022403E8
+ lsl r1, r0, #1
+ ldr r0, _02240490 ; =0x00002144
+ str r1, [r4, r0]
+ ldr r3, [r4, #0x64]
+ lsl r0, r3, #2
+ add r1, r4, r0
+ ldr r0, _02240494 ; =0x000030F4
+ ldr r2, [r1, r0]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02240498 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022403B8
+ str r2, [r4, #0x6c]
+ b _022403E8
+_022403B8:
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ add r2, r3, #0
+ bl MOD11_022482A4
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [r4, #0x6c]
+ ldr r0, _02240498 ; =0x00002D8C
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022403E8
+ ldr r2, _0224049C ; =0x0000011A
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r7, #2
+ b _0224043C
+_022403E8:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x24
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0224043C
+_022403FE:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02240488 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0224042E
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x7d
+ beq _0224041A
+ cmp r0, #0xfd
+ bne _0224042E
+_0224041A:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1e
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0224042E:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_02240436:
+ mov r0, #0
+ str r0, [r4, #0x50]
+ mov r7, #3
+_0224043C:
+ cmp r7, #0
+ bne _02240442
+ b _0223FDDE
+_02240442:
+ ldr r0, [sp, #0x18]
+ ldr r2, [r4, #0x64]
+ add r1, r4, #0
+ bl MOD11_02245190
+ cmp r7, #1
+ bne _0224046A
+ ldr r1, _022404A0 ; =0x0000213C
+ mov r0, #2
+ ldr r2, [r4, r1]
+ orr r0, r2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #0x30
+ ldr r2, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0x1e
+ orr r0, r2
+ add r1, #0x30
+ str r0, [r4, r1]
+_0224046A:
+ cmp r7, #3
+ beq _02240474
+ add sp, #0x2c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02240474:
+ mov r0, #0
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224047C: .word 0x00003044
+_02240480: .word 0x00002DB0
+_02240484: .word 0x0000215C
+_02240488: .word 0x00002DAC
+_0224048C: .word 0x000030E4
+_02240490: .word 0x00002144
+_02240494: .word 0x000030F4
+_02240498: .word 0x00002D8C
+_0224049C: .word 0x0000011A
+_022404A0: .word 0x0000213C
+
+ thumb_func_start MOD11_022404A4
+MOD11_022404A4: ; 0x022404A4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r5, #0
+ ldr r7, _02240514 ; =0x0000216C
+ mov r4, #0
+ add r6, #0x54
+_022404B0:
+ ldr r0, [r5, #0x54]
+ cmp r0, #0
+ beq _022404BC
+ cmp r0, #1
+ beq _022404FC
+ b _02240502
+_022404BC:
+ ldr r1, [r5, #0x64]
+ ldr r2, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02247418
+ add r2, r0, #0
+ beq _022404D4
+ ldr r0, _02240514 ; =0x0000216C
+ ldr r1, [r5, r0]
+ ldr r0, _02240518 ; =0x001FD849
+ tst r0, r1
+ beq _022404D8
+_022404D4:
+ cmp r2, #0xb5
+ bne _022404F4
+_022404D8:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ mov r4, #1
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+ mov r0, #2
+ ldr r1, [r5, r7]
+ lsl r0, r0, #0x1e
+ orr r0, r1
+ str r0, [r5, r7]
+_022404F4:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+ b _02240502
+_022404FC:
+ mov r0, #0
+ str r0, [r5, #0x54]
+ mov r4, #2
+_02240502:
+ cmp r4, #0
+ beq _022404B0
+ cmp r4, #2
+ beq _0224050E
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0224050E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02240514: .word 0x0000216C
+_02240518: .word 0x001FD849
+
+ thumb_func_start MOD11_0224051C
+MOD11_0224051C: ; 0x0224051C
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r2, _02240538 ; =0x00000116
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_02240538: .word 0x00000116
+
+ thumb_func_start MOD11_0224053C
+MOD11_0224053C: ; 0x0224053C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r0, [sp, #4]
+ add r5, r1, #0
+ add r6, r2, #0
+ str r3, [sp, #8]
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ beq _0224055A
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224055A:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ ldr r0, [sp, #0x38]
+ ldr r2, _02240868 ; =0x00002D5E
+ lsl r0, r0, #4
+ str r0, [sp, #0x10]
+ add r1, r5, r0
+ mov r0, #0x3e
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ add r1, r6, #0
+ str r0, [sp, #0x18]
+ mov r0, #0xc0
+ mul r1, r0
+ str r1, [sp, #0xc]
+ add r1, r5, r1
+ ldrsb r1, [r1, r2]
+ sub r1, r1, #6
+ lsl r1, r1, #0x18
+ asr r7, r1, #0x18
+ ldr r1, [sp, #8]
+ mul r0, r1
+ str r0, [sp, #0x14]
+ add r1, r5, r0
+ add r0, r2, #1
+ ldrsb r1, [r1, r0]
+ mov r0, #6
+ sub r0, r0, r1
+ lsl r0, r0, #0x18
+ asr r4, r0, #0x18
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x56
+ bne _022405AA
+ lsl r0, r7, #0x19
+ asr r7, r0, #0x18
+_022405AA:
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r3, #0x56
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022405BE
+ lsl r0, r4, #0x19
+ asr r4, r0, #0x18
+_022405BE:
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r3, #0x6d
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022405D0
+ mov r7, #0
+_022405D0:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x6d
+ bne _022405DE
+ mov r4, #0
+_022405DE:
+ ldr r0, _0224086C ; =0x00002DB0
+ ldr r1, [sp, #0x14]
+ add r2, r5, r0
+ str r2, [sp, #0x1c]
+ ldr r1, [r2, r1]
+ mov r2, #2
+ lsl r2, r2, #0x1c
+ tst r1, r2
+ bne _022405FE
+ ldr r1, [sp, #0x14]
+ add r0, #0x10
+ add r1, r5, r1
+ ldr r1, [r1, r0]
+ lsr r0, r2, #7
+ tst r0, r1
+ beq _02240604
+_022405FE:
+ cmp r4, #0
+ bge _02240604
+ mov r4, #0
+_02240604:
+ add r0, r4, #6
+ add r0, r0, r7
+ lsl r0, r0, #0x18
+ asr r7, r0, #0x18
+ bpl _02240610
+ mov r7, #0
+_02240610:
+ cmp r7, #0xc
+ ble _02240616
+ mov r7, #0xc
+_02240616:
+ ldr r0, _02240870 ; =0x000003E3
+ add r1, r5, r0
+ ldr r0, [sp, #0x10]
+ ldrb r4, [r1, r0]
+ cmp r4, #0
+ bne _02240628
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02240628:
+ ldr r0, _02240874 ; =0x0000213C
+ mov r1, #0x20
+ ldr r0, [r5, r0]
+ add r2, r0, #0
+ tst r2, r1
+ beq _0224063A
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224063A:
+ lsl r1, r1, #5
+ tst r0, r1
+ beq _02240646
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02240646:
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _02240688
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _02240688
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0x30
+ tst r0, r1
+ beq _02240688
+ ldr r0, [sp, #0x10]
+ add r1, r5, r0
+ ldr r0, _02240878 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x98
+ bne _02240688
+ mov r4, #0x32
+_02240688:
+ ldr r0, _0224087C ; =0x0225E178
+ lsl r1, r7, #1
+ ldrb r0, [r0, r1]
+ ldr r2, _02240880 ; =0x0225E179
+ ldrb r1, [r2, r1]
+ mul r0, r4
+ blx _u32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0xe
+ bne _022406B6
+ mov r0, #0x82
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_022406B6:
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224074E
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224074E
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0xc
+ tst r0, r1
+ beq _02240708
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r3, #8
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02240708
+ mov r0, #0x50
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02240708:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ tst r0, r1
+ beq _02240732
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r3, #0x51
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02240732
+ mov r0, #0x50
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02240732:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0xe
+ tst r0, r1
+ beq _0224074E
+ mov r0, #6
+ mul r0, r4
+ mov r1, #0xa
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224074E:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x37
+ bne _0224076E
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ bne _0224076E
+ mov r0, #0x50
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224076E:
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r3, #0x4d
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02240798
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x14]
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02240798
+ mov r0, #0x32
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02240798:
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ cmp r7, #0x2f
+ bne _022407BE
+ mov r1, #0x64
+ sub r0, r1, r0
+ mul r0, r4
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_022407BE:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ add r6, r0, #0
+ cmp r7, #0x5c
+ bne _022407E6
+ add r0, #0x64
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_022407E6:
+ cmp r7, #0x67
+ bne _02240806
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02249B7C
+ cmp r0, #1
+ bne _02240806
+ add r6, #0x64
+ add r0, r4, #0
+ mul r0, r6
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02240806:
+ ldr r0, _02240884 ; =0x00002DCC
+ ldr r1, [sp, #0xc]
+ add r0, r5, r0
+ ldr r2, [r0, r1]
+ lsl r1, r2, #4
+ lsr r1, r1, #0x1f
+ beq _0224082A
+ ldr r1, _02240888 ; =0xF7FFFFFF
+ and r2, r1
+ ldr r1, [sp, #0xc]
+ str r2, [r0, r1]
+ mov r0, #0x78
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224082A:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02240846
+ mov r0, #0xa
+ mul r0, r4
+ mov r1, #6
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02240846:
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ blx _s32_div_f
+ add r0, r1, #1
+ cmp r0, r4
+ ble _02240860
+ ldr r1, _0224088C ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+_02240860:
+ mov r0, #0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02240868: .word 0x00002D5E
+_0224086C: .word 0x00002DB0
+_02240870: .word 0x000003E3
+_02240874: .word 0x0000213C
+_02240878: .word 0x000003DE
+_0224087C: .word 0x0225E178
+_02240880: .word 0x0225E179
+_02240884: .word 0x00002DCC
+_02240888: .word 0xF7FFFFFF
+_0224088C: .word 0x0000216C
+
+ thumb_func_start MOD11_02240890
+MOD11_02240890: ; 0x02240890
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp, #4]
+ add r5, r1, #0
+ ldr r0, _02240A54 ; =0x0000213C
+ add r6, r3, #0
+ ldr r3, [r5, r0]
+ mov r1, #0x20
+ add r7, r2, #0
+ ldr r4, [sp, #0x20]
+ tst r1, r3
+ beq _022408AE
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022408AE:
+ lsl r1, r6, #6
+ add r3, r5, r1
+ mov r1, #0x75
+ lsl r1, r1, #2
+ ldr r1, [r3, r1]
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1f
+ beq _0224091C
+ lsl r1, r4, #4
+ add r3, r5, r1
+ ldr r1, _02240A58 ; =0x000003E9
+ ldrb r3, [r3, r1]
+ mov r1, #2
+ tst r1, r3
+ beq _0224091C
+ add r0, #0x30
+ ldr r1, [r5, r0]
+ ldr r0, _02240A5C ; =0x801FDA49
+ tst r0, r1
+ bne _0224091C
+ cmp r4, #0xae
+ bne _022408E8
+ lsl r1, r4, #0x10
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ bl MOD11_02246C20
+ cmp r0, #1
+ bne _0224091C
+_022408E8:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246AF8
+ cmp r0, #0
+ beq _02240900
+ ldr r0, _02240A54 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _0224091C
+_02240900:
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_022451F0
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r0, #2
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0xe
+ orr r0, r2
+ str r0, [r5, r1]
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224091C:
+ ldr r0, _02240A54 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #1
+ lsl r0, r0, #0xa
+ tst r0, r1
+ bne _0224096E
+ mov r0, #0xc0
+ mul r0, r6
+ add r3, r5, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r2, [r3, r0]
+ mov r1, #0x18
+ tst r1, r2
+ beq _02240946
+ add r0, #0xc
+ ldr r0, [r3, r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ cmp r7, r0
+ beq _0224095E
+_02240946:
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ beq _0224095E
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ bne _0224096E
+_0224095E:
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ add sp, #8
+ bic r2, r0
+ str r2, [r5, r1]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224096E:
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022409DC
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022409DC
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #3
+ tst r0, r1
+ beq _022409B8
+ lsl r0, r4, #4
+ add r1, r5, r0
+ ldr r0, _02240A64 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x98
+ bne _022409B8
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ bic r2, r0
+ str r2, [r5, r1]
+_022409B8:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #0xc0
+ tst r0, r1
+ beq _022409DC
+ lsl r0, r4, #4
+ add r2, r5, r0
+ ldr r0, _02240A64 ; =0x000003DE
+ add r1, #0x44
+ ldrh r0, [r2, r0]
+ cmp r0, r1
+ bne _022409DC
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ bic r2, r0
+ str r2, [r5, r1]
+_022409DC:
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r2, #1
+ ldr r0, [r5, r1]
+ lsl r2, r2, #0xa
+ tst r0, r2
+ bne _02240A4C
+ ldr r0, _02240A68 ; =0x00003044
+ sub r2, #0x1a
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r0, r5, r0
+ ldrh r0, [r0, r2]
+ cmp r0, #0x80
+ beq _02240A4C
+ sub r1, #0x30
+ ldr r0, [r5, r1]
+ mov r1, #4
+ tst r1, r0
+ bne _02240A14
+ mov r1, #0xc0
+ mul r1, r6
+ add r2, r5, r1
+ mov r1, #0xb7
+ lsl r1, r1, #6
+ ldr r2, [r2, r1]
+ mov r1, #0x40
+ tst r1, r2
+ bne _02240A40
+_02240A14:
+ mov r1, #0xc0
+ mul r1, r6
+ add r2, r5, r1
+ mov r1, #0xb7
+ lsl r1, r1, #6
+ ldr r1, [r2, r1]
+ mov r2, #2
+ lsl r2, r2, #0x1c
+ tst r2, r1
+ bne _02240A40
+ mov r2, #8
+ tst r2, r0
+ bne _02240A34
+ mov r2, #0x80
+ tst r2, r1
+ bne _02240A40
+_02240A34:
+ mov r2, #0x10
+ tst r0, r2
+ bne _02240A4C
+ lsl r0, r2, #0xe
+ tst r0, r1
+ beq _02240A4C
+_02240A40:
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0x10
+ orr r0, r2
+ str r0, [r5, r1]
+_02240A4C:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02240A54: .word 0x0000213C
+_02240A58: .word 0x000003E9
+_02240A5C: .word 0x801FDA49
+_02240A60: .word 0x0000216C
+_02240A64: .word 0x000003DE
+_02240A68: .word 0x00003044
+
+ thumb_func_start MOD11_02240A6C
+MOD11_02240A6C: ; 0x02240A6C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ bl MOD11_0222FF84
+ add r2, r0, #0
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ bne _02240A80
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02240A80:
+ ldr r6, _02240BBC ; =0x0000216C
+ ldr r1, _02240BC0 ; =0x801FDA49
+ ldr r3, [r4, r6]
+ add r7, r3, #0
+ and r7, r1
+ bne _02240B12
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r0, r0, #6
+ add r5, r4, r1
+ ldr r3, [r5, r0]
+ mov ip, r0
+ lsl r0, r3, #0x1b
+ lsr r0, r0, #0x1f
+ beq _02240B12
+ ldr r0, _02240BC4 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _02240BC8 ; =0x000003E9
+ ldrb r0, [r1, r0]
+ mov r1, #4
+ tst r0, r1
+ beq _02240B12
+ mov r0, #0x10
+ bic r3, r0
+ mov r0, ip
+ str r3, [r5, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0
+ lsl r2, r2, #1
+ add r3, r4, r2
+ ldr r2, _02240BC4 ; =0x00003044
+ add r2, #0x18
+ strh r0, [r3, r2]
+ ldr r2, [r4, #0x64]
+ ldr r0, _02240BC4 ; =0x00003044
+ lsl r2, r2, #1
+ sub r0, r0, #4
+ add r3, r4, r2
+ ldr r2, _02240BC4 ; =0x00003044
+ ldr r0, [r4, r0]
+ add r2, #0x38
+ strh r0, [r3, r2]
+ ldr r0, _02240BC4 ; =0x00003044
+ sub r0, r0, #4
+ ldr r2, [r4, r0]
+ ldr r0, _02240BC4 ; =0x00003044
+ add r0, r0, #4
+ str r2, [r4, r0]
+ add r0, r6, #0
+ sub r0, #0x30
+ ldr r2, [r4, r0]
+ lsl r0, r1, #0x12
+ orr r0, r2
+ sub r6, #0x30
+ str r0, [r4, r6]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x8b
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r1, [r4, #0x6c]
+ ldr r2, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_0224C438
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02240B12:
+ mov r1, #0
+ cmp r2, #0
+ ble _02240BB8
+ mov r0, #0x75
+ lsl r0, r0, #2
+ add r0, r4, r0
+_02240B1E:
+ ldr r3, _02240BCC ; =0x000021EC
+ add r5, r4, r1
+ ldrb r5, [r5, r3]
+ cmp r7, #0
+ bne _02240BB2
+ lsl r3, r5, #6
+ str r3, [sp]
+ ldr r3, [r0, r3]
+ lsl r3, r3, #0x1a
+ lsr r3, r3, #0x1f
+ beq _02240BB2
+ ldr r3, _02240BC4 ; =0x00003044
+ ldr r3, [r4, r3]
+ lsl r3, r3, #4
+ add r6, r4, r3
+ ldr r3, _02240BC8 ; =0x000003E9
+ ldrb r6, [r6, r3]
+ mov r3, #8
+ tst r3, r6
+ beq _02240BB2
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r5, [r4, r1]
+ ldr r1, [sp]
+ mov r7, #1
+ ldr r2, [r0, r1]
+ mov r1, #0x20
+ bic r2, r1
+ ldr r1, [sp]
+ lsl r7, r7, #0x14
+ str r2, [r0, r1]
+ ldr r2, _02240BD0 ; =0x0000213C
+ ldr r0, [r4, r2]
+ tst r0, r7
+ bne _02240B92
+ ldr r1, [r4, #0x64]
+ mov r0, #0
+ lsl r1, r1, #1
+ add r3, r4, r1
+ ldr r1, _02240BD4 ; =0x0000305C
+ strh r0, [r3, r1]
+ add r0, r1, #0
+ sub r0, #0x1c
+ ldr r6, [r4, r0]
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #1
+ add r3, r4, r0
+ add r0, r1, #0
+ add r0, #0x20
+ strh r6, [r3, r0]
+ add r0, r1, #0
+ sub r0, #0x1c
+ ldr r0, [r4, r0]
+ sub r1, #0x14
+ str r0, [r4, r1]
+ ldr r0, [r4, r2]
+ orr r0, r7
+ str r0, [r4, r2]
+_02240B92:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x92
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r2, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_0224C438
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02240BB2:
+ add r1, r1, #1
+ cmp r1, r2
+ blt _02240B1E
+_02240BB8:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02240BBC: .word 0x0000216C
+_02240BC0: .word 0x801FDA49
+_02240BC4: .word 0x00003044
+_02240BC8: .word 0x000003E9
+_02240BCC: .word 0x000021EC
+_02240BD0: .word 0x0000213C
+_02240BD4: .word 0x0000305C
+
+ thumb_func_start MOD11_02240BD8
+MOD11_02240BD8: ; 0x02240BD8
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_02232264
+ cmp r0, #1
+ bne _02240BF0
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ ldr r0, [r4, #0xc]
+ str r0, [r4, #8]
+_02240BF0:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02240BF4
+MOD11_02240BF4: ; 0x02240BF4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x48]
+ add r5, r0, #0
+ cmp r2, #6
+ bhi _02240CEA
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02240C0C: ; jump table
+ .short _02240C1A - _02240C0C - 2 ; case 0
+ .short _02240C26 - _02240C0C - 2 ; case 1
+ .short _02240C3E - _02240C0C - 2 ; case 2
+ .short _02240C8A - _02240C0C - 2 ; case 3
+ .short _02240CA6 - _02240C0C - 2 ; case 4
+ .short _02240CB8 - _02240C0C - 2 ; case 5
+ .short _02240CD4 - _02240C0C - 2 ; case 6
+_02240C1A:
+ bl MOD11_0224051C
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+ pop {r3, r4, r5, pc}
+_02240C26:
+ ldr r2, _02240D30 ; =0x00002184
+ ldr r3, [r4, r2]
+ mov r2, #4
+ tst r2, r3
+ bne _02240C38
+ bl MOD11_0223FDB0
+ cmp r0, #1
+ beq _02240D2C
+_02240C38:
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+_02240C3E:
+ ldr r0, _02240D30 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #1
+ tst r0, r1
+ bne _02240C84
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0
+ bl MOD11_0223F84C
+ cmp r0, #0
+ beq _02240C84
+ cmp r0, #1
+ beq _02240C64
+ cmp r0, #2
+ beq _02240C6A
+ cmp r0, #3
+ beq _02240C70
+ b _02240C74
+_02240C64:
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ b _02240C74
+_02240C6A:
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ b _02240C74
+_02240C70:
+ mov r0, #0x21
+ str r0, [r4, #0xc]
+_02240C74:
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r2, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ pop {r3, r4, r5, pc}
+_02240C84:
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+_02240C8A:
+ ldr r0, _02240D30 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #8
+ tst r0, r1
+ bne _02240CA0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223FB10
+ cmp r0, #1
+ beq _02240D2C
+_02240CA0:
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+_02240CA6:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223FCAC
+ cmp r0, #1
+ beq _02240D2C
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+_02240CB8:
+ ldr r0, _02240D30 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #0x80
+ tst r0, r1
+ bne _02240CCE
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02240A6C
+ cmp r0, #1
+ beq _02240D2C
+_02240CCE:
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+_02240CD4:
+ ldr r3, _02240D34 ; =0x00003044
+ ldr r2, [r4, #0x64]
+ ldr r3, [r4, r3]
+ add r0, r5, #0
+ lsl r3, r3, #0x10
+ add r1, r4, #0
+ lsr r3, r3, #0x10
+ bl MOD11_02244F68
+ mov r0, #0
+ str r0, [r4, #0x48]
+_02240CEA:
+ ldr r1, _02240D38 ; =0x0000216C
+ ldr r0, _02240D3C ; =0x801FDA49
+ ldr r2, [r4, r1]
+ tst r0, r2
+ beq _02240CFA
+ mov r0, #0x19
+ str r0, [r4, #8]
+ b _02240D24
+_02240CFA:
+ add r0, r1, #0
+ sub r0, #0x2c
+ ldr r2, [r4, r0]
+ mov r0, #0x40
+ orr r0, r2
+ sub r1, #0x2c
+ str r0, [r4, r1]
+ ldr r2, _02240D34 ; =0x00003044
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ mov r1, #0
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x17
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02247380
+_02240D24:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224AB44
+_02240D2C:
+ pop {r3, r4, r5, pc}
+ nop
+_02240D30: .word 0x00002184
+_02240D34: .word 0x00003044
+_02240D38: .word 0x0000216C
+_02240D3C: .word 0x801FDA49
+
+ thumb_func_start MOD11_02240D40
+MOD11_02240D40: ; 0x02240D40
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x4c]
+ add r5, r0, #0
+ cmp r2, #6
+ bhi _02240E20
+ add r3, r2, r2
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_02240D58: ; jump table
+ .short _02240D66 - _02240D58 - 2 ; case 0
+ .short _02240D72 - _02240D58 - 2 ; case 1
+ .short _02240D84 - _02240D58 - 2 ; case 2
+ .short _02240DAE - _02240D58 - 2 ; case 3
+ .short _02240DD8 - _02240D58 - 2 ; case 4
+ .short _02240DFA - _02240D58 - 2 ; case 5
+ .short _02240E1C - _02240D58 - 2 ; case 6
+_02240D66:
+ add r2, r2, #1
+ str r2, [r4, #0x4c]
+ bl MOD11_0223FCAC
+ cmp r0, #1
+ beq _02240E24
+_02240D72:
+ ldr r0, [r4, #0x4c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ add r0, r5, #0
+ bl MOD11_0224510C
+ cmp r0, #1
+ beq _02240E24
+_02240D84:
+ ldr r0, _02240E28 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _02240DA8
+ ldr r3, [r4, #0x6c]
+ cmp r3, #0xff
+ beq _02240DA8
+ ldr r0, _02240E2C ; =0x00003044
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ str r0, [sp]
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_0224053C
+ cmp r0, #1
+ beq _02240E24
+_02240DA8:
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+_02240DAE:
+ ldr r0, _02240E28 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #0x40
+ tst r0, r1
+ bne _02240DD2
+ ldr r3, [r4, #0x6c]
+ cmp r3, #0xff
+ beq _02240DD2
+ ldr r0, _02240E2C ; =0x00003044
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ str r0, [sp]
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02240890
+ cmp r0, #1
+ beq _02240E24
+_02240DD2:
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+_02240DD8:
+ ldr r0, _02240E28 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #2
+ tst r0, r1
+ bne _02240DF4
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ beq _02240DF4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223FD20
+ cmp r0, #1
+ beq _02240E24
+_02240DF4:
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+_02240DFA:
+ ldr r0, _02240E28 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02240E16
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ beq _02240E16
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022404A4
+ cmp r0, #1
+ beq _02240E24
+_02240E16:
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+_02240E1C:
+ mov r0, #0
+ str r0, [r4, #0x4c]
+_02240E20:
+ mov r0, #0x18
+ str r0, [r4, #8]
+_02240E24:
+ pop {r3, r4, r5, pc}
+ nop
+_02240E28: .word 0x00002184
+_02240E2C: .word 0x00003044
+
+ thumb_func_start MOD11_02240E30
+MOD11_02240E30: ; 0x02240E30
+ push {r3, r4, lr}
+ sub sp, #4
+ add r2, sp, #0
+ add r4, r1, #0
+ bl MOD11_02244948
+ cmp r0, #1
+ bne _02240E56
+ ldr r2, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x19
+ add sp, #4
+ str r0, [r4, #0xc]
+ pop {r3, r4, pc}
+_02240E56:
+ mov r0, #0x19
+ str r0, [r4, #8]
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02240E60
+MOD11_02240E60: ; 0x02240E60
+ push {r4, lr}
+ ldr r0, _02240ED8 ; =0x0000216C
+ add r4, r1, #0
+ ldr r1, [r4, r0]
+ mov r2, #2
+ lsl r2, r2, #0x1e
+ add r3, r1, #0
+ tst r3, r2
+ beq _02240E78
+ mov r0, #0x22
+ str r0, [r4, #8]
+ pop {r4, pc}
+_02240E78:
+ lsr r2, r2, #0x16
+ tst r2, r1
+ beq _02240E92
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x2a
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+_02240E92:
+ add r2, r0, #0
+ add r2, #0x14
+ ldr r2, [r4, r2]
+ cmp r2, #0
+ beq _02240EB8
+ mov r3, #1
+ add r2, r1, #0
+ tst r2, r3
+ beq _02240EB8
+ mov r2, #1
+ bic r1, r2
+ str r1, [r4, r0]
+ ldr r2, [r4, r0]
+ lsl r1, r3, #0xe
+ orr r1, r2
+ str r1, [r4, r0]
+ mov r0, #0x1c
+ str r0, [r4, #8]
+ pop {r4, pc}
+_02240EB8:
+ ldr r0, _02240EDC ; =0x001FD849
+ tst r0, r1
+ beq _02240ED2
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #7
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x21
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+_02240ED2:
+ mov r0, #0x1a
+ str r0, [r4, #8]
+ pop {r4, pc}
+ .align 2, 0
+_02240ED8: .word 0x0000216C
+_02240EDC: .word 0x001FD849
+
+ thumb_func_start MOD11_02240EE0
+MOD11_02240EE0: ; 0x02240EE0
+ push {r4, lr}
+ add r4, r1, #0
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x1b
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02240EF8
+MOD11_02240EF8: ; 0x02240EF8
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r2, _02241260 ; =0x0000216C
+ add r4, r1, #0
+ ldr r1, [r4, r2]
+ add r5, r0, #0
+ mov r0, #0x20
+ tst r0, r1
+ beq _02240F1E
+ ldr r0, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r0, #0
+ mul r3, r1
+ ldr r0, _02241264 ; =0x00002D90
+ add r3, r4, r3
+ ldr r0, [r3, r0]
+ sub r1, #0xc1
+ mul r1, r0
+ sub r2, #0x28
+ str r1, [r4, r2]
+_02240F1E:
+ ldr r0, _02241268 ; =0x00002144
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02240F28
+ b _022412E8
+_02240F28:
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ str r0, [sp]
+ ldr r0, _02241268 ; =0x00002144
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ blt _02240F4A
+ bl ErrorHandling
+_02240F4A:
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ ldr r1, [r4, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ bne _02240F6C
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ mov r2, #0
+ mov r3, #0x46
+ bl MOD11_022564A8
+_02240F6C:
+ ldr r0, [r4, #0x6c]
+ ldr r2, [r4, #0x64]
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, _0224126C ; =0x000030F4
+ str r2, [r1, r0]
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ mov r2, #1
+ ldr r1, _02241270 ; =0x00002DB0
+ add r5, r4, r6
+ ldr r3, [r5, r1]
+ lsl r2, r2, #0x18
+ tst r2, r3
+ beq _02241044
+ ldr r2, _02241268 ; =0x00002144
+ ldr r2, [r4, r2]
+ cmp r2, #0
+ bge _02241044
+ add r3, r1, #0
+ add r3, #0x30
+ ldr r3, [r5, r3]
+ add r5, r2, r3
+ cmp r5, #0
+ bgt _02240FE8
+ mov r2, #0xbb
+ lsl r2, r2, #2
+ add r6, r4, r2
+ ldr r2, [r4, #0x64]
+ mov r5, #0x1c
+ mul r5, r2
+ ldr r2, [r6, r5]
+ sub r2, r2, r3
+ str r2, [r6, r5]
+ ldr r5, [r4, #0x6c]
+ add r3, r4, r1
+ add r2, r5, #0
+ mul r2, r0
+ ldr r6, [r3, r2]
+ ldr r5, _02241274 ; =0xFEFFFFFF
+ and r5, r6
+ str r5, [r3, r2]
+ ldr r2, [r4, #0x6c]
+ add r3, r2, #0
+ add r2, r1, #0
+ mul r3, r0
+ add r3, r4, r3
+ add r2, #0x30
+ ldr r2, [r3, r2]
+ add r1, #0x30
+ neg r3, r2
+ ldr r2, _02241268 ; =0x00002144
+ add r2, r2, #4
+ str r3, [r4, r2]
+ ldr r2, [r4, #0x6c]
+ mov r3, #0
+ mul r0, r2
+ add r0, r4, r0
+ str r3, [r0, r1]
+ b _02241014
+_02240FE8:
+ mov r3, #0xbb
+ lsl r3, r3, #2
+ add r6, r4, r3
+ ldr r3, [r4, #0x64]
+ mov r5, #0x1c
+ mul r5, r3
+ ldr r3, [r6, r5]
+ add r1, #0x30
+ add r2, r3, r2
+ str r2, [r6, r5]
+ ldr r2, [r4, #0x6c]
+ add r1, r4, r1
+ mul r0, r2
+ ldr r2, _02241268 ; =0x00002144
+ ldr r3, [r1, r0]
+ ldr r2, [r4, r2]
+ add r2, r3, r2
+ str r2, [r1, r0]
+ ldr r0, _02241268 ; =0x00002144
+ ldr r1, [r4, r0]
+ add r0, r0, #4
+ str r1, [r4, r0]
+_02241014:
+ mov r0, #0xba
+ lsl r0, r0, #2
+ ldr r2, [r4, #0x6c]
+ add r1, r4, r0
+ add r0, r2, #0
+ mov r3, #0x1c
+ mul r0, r3
+ ldr r5, [r1, r0]
+ mov r2, #8
+ orr r2, r5
+ str r2, [r1, r0]
+ ldr r0, [r4, #0x6c]
+ add r3, #0xfc
+ str r0, [r4, r3]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x5a
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x1c
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02241044:
+ ldr r0, _02241278 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _0224127C ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x65
+ bne _0224106A
+ ldr r0, _02241280 ; =0x00002D8C
+ add r1, r4, r6
+ ldr r2, [r1, r0]
+ ldr r0, _02241268 ; =0x00002144
+ ldr r1, [r4, r0]
+ add r1, r1, r2
+ cmp r1, #0
+ bgt _0224106A
+ sub r1, r2, #1
+ neg r1, r1
+ str r1, [r4, r0]
+_0224106A:
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1f
+ bne _022410D0
+ cmp r7, #0x40
+ bne _022410A4
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ blx _s32_div_f
+ ldr r0, [sp]
+ cmp r1, r0
+ bge _022410A4
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r2, [r4, #0x6c]
+ mov r0, #0x1c
+ mul r0, r2
+ ldr r3, [r1, r0]
+ mov r2, #0x20
+ orr r2, r3
+ str r2, [r1, r0]
+_022410A4:
+ cmp r7, #0x66
+ bne _022410D0
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r3, r4, r0
+ ldr r0, _02241280 ; =0x00002D8C
+ ldr r2, [r3, r0]
+ add r0, r0, #4
+ ldr r0, [r3, r0]
+ cmp r2, r0
+ bne _022410D0
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r3, r1, #0
+ mov r2, #0x1c
+ add r0, r4, r0
+ mul r3, r2
+ ldr r2, [r0, r3]
+ mov r1, #0x20
+ orr r1, r2
+ str r1, [r0, r3]
+_022410D0:
+ ldr r0, [r4, #0x6c]
+ lsl r1, r0, #6
+ add r2, r4, r1
+ mov r1, #0x75
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x16
+ lsr r1, r1, #0x1f
+ bne _022410F4
+ mov r1, #0x1c
+ mul r1, r0
+ add r2, r4, r1
+ mov r1, #0xb5
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1f
+ beq _0224113E
+_022410F4:
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02241280 ; =0x00002D8C
+ add r1, r4, r1
+ ldr r2, _02241268 ; =0x00002144
+ ldr r1, [r1, r0]
+ ldr r0, [r4, r2]
+ add r0, r0, r1
+ cmp r0, #0
+ bgt _0224113E
+ sub r0, r1, #1
+ neg r0, r0
+ str r0, [r4, r2]
+ ldr r0, [r4, #0x6c]
+ mov r1, #0x75
+ lsl r0, r0, #6
+ add r0, r4, r0
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1f
+ beq _02241130
+ add r0, r2, #0
+ add r0, #0x28
+ ldr r1, [r4, r0]
+ mov r0, #0x80
+ orr r0, r1
+ add r2, #0x28
+ str r0, [r4, r2]
+ b _0224113E
+_02241130:
+ add r0, r2, #0
+ add r0, #0x28
+ ldr r0, [r4, r0]
+ sub r1, #0xd4
+ orr r0, r1
+ add r2, #0x28
+ str r0, [r4, r2]
+_0224113E:
+ ldr r1, [r4, #0x6c]
+ ldr r0, _02241284 ; =0x000030E4
+ lsl r3, r1, #2
+ ldr r1, _02241268 ; =0x00002144
+ add r0, r4, r0
+ ldr r2, [r0, r3]
+ ldr r1, [r4, r1]
+ add r1, r2, r1
+ str r1, [r0, r3]
+ ldr r0, _02241288 ; =0x00002DBC
+ ldr r1, [r4, #0x6c]
+ add r3, r4, r0
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldrb r0, [r3, r2]
+ cmp r0, #0xff
+ bhs _02241166
+ add r0, r0, #1
+ strb r0, [r3, r2]
+_02241166:
+ ldr r0, _02241278 ; =0x00003044
+ mov r1, #0x3e
+ ldr r0, [r4, r0]
+ lsl r1, r1, #4
+ lsl r0, r0, #4
+ add r0, r4, r0
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _022411D4
+ ldr r1, [r4, #0x6c]
+ ldr r0, _02241268 ; =0x00002144
+ lsl r1, r1, #6
+ add r2, r4, r1
+ ldr r1, [r4, #0x64]
+ ldr r0, [r4, r0]
+ lsl r1, r1, #2
+ add r2, r2, r1
+ mov r1, #0x76
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ ldr r0, [r4, #0x6c]
+ ldr r2, [r4, #0x64]
+ lsl r0, r0, #6
+ add r0, r4, r0
+ add r1, #0x10
+ str r2, [r0, r1]
+ ldr r0, [r4, #0x64]
+ bl FUN_0206A92C
+ mov r1, #0x7b
+ ldr r3, [r4, #0x6c]
+ lsl r1, r1, #2
+ add r2, r4, r1
+ lsl r5, r3, #6
+ ldr r3, [r2, r5]
+ orr r0, r3
+ str r0, [r2, r5]
+ ldr r2, [r4, #0x6c]
+ ldr r0, _02241268 ; =0x00002144
+ add r5, r2, #0
+ add r2, r1, #0
+ mov r3, #0x1c
+ mul r5, r3
+ ldr r0, [r4, r0]
+ add r5, r4, r5
+ add r2, #0xec
+ str r0, [r5, r2]
+ ldr r0, [r4, #0x6c]
+ ldr r5, [r4, #0x64]
+ add r2, r0, #0
+ mul r2, r3
+ add r0, r4, r2
+ add r1, #0xf0
+ str r5, [r0, r1]
+ b _02241232
+_022411D4:
+ cmp r0, #1
+ bne _02241232
+ ldr r2, [r4, #0x6c]
+ ldr r0, _02241268 ; =0x00002144
+ lsl r2, r2, #6
+ add r3, r4, r2
+ ldr r2, [r4, #0x64]
+ ldr r0, [r4, r0]
+ lsl r2, r2, #2
+ add r2, r3, r2
+ lsr r1, r1, #1
+ str r0, [r2, r1]
+ ldr r0, [r4, #0x6c]
+ ldr r2, [r4, #0x64]
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #2
+ lsl r0, r0, #8
+ str r2, [r1, r0]
+ ldr r0, [r4, #0x64]
+ bl FUN_0206A92C
+ mov r1, #0x81
+ ldr r3, [r4, #0x6c]
+ lsl r1, r1, #2
+ add r2, r4, r1
+ lsl r5, r3, #6
+ ldr r3, [r2, r5]
+ orr r0, r3
+ str r0, [r2, r5]
+ ldr r2, [r4, #0x6c]
+ ldr r0, _02241268 ; =0x00002144
+ add r5, r2, #0
+ add r2, r1, #0
+ mov r3, #0x1c
+ mul r5, r3
+ ldr r0, [r4, r0]
+ add r5, r4, r5
+ add r2, #0xdc
+ str r0, [r5, r2]
+ ldr r0, [r4, #0x6c]
+ ldr r5, [r4, #0x64]
+ add r2, r0, #0
+ mul r2, r3
+ add r0, r4, r2
+ add r1, #0xe0
+ str r5, [r0, r1]
+_02241232:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02241280 ; =0x00002D8C
+ ldr r2, [r1, r0]
+ ldr r0, _02241268 ; =0x00002144
+ ldr r1, [r4, r0]
+ add r0, r1, r2
+ cmp r0, #0
+ bgt _0224128C
+ mov r0, #0xbb
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r3, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r3
+ ldr r3, [r1, r0]
+ neg r2, r2
+ add r2, r3, r2
+ str r2, [r1, r0]
+ b _022412A0
+ nop
+_02241260: .word 0x0000216C
+_02241264: .word 0x00002D90
+_02241268: .word 0x00002144
+_0224126C: .word 0x000030F4
+_02241270: .word 0x00002DB0
+_02241274: .word 0xFEFFFFFF
+_02241278: .word 0x00003044
+_0224127C: .word 0x000003DE
+_02241280: .word 0x00002D8C
+_02241284: .word 0x000030E4
+_02241288: .word 0x00002DBC
+_0224128C:
+ ldr r3, [r4, #0x64]
+ mov r0, #0xbb
+ lsl r0, r0, #2
+ mov r2, #0x1c
+ add r5, r3, #0
+ add r0, r4, r0
+ mul r5, r2
+ ldr r2, [r0, r5]
+ add r1, r2, r1
+ str r1, [r0, r5]
+_022412A0:
+ ldr r3, _022412F0 ; =0x00002144
+ ldr r0, [r4, #0x6c]
+ mov r2, #0x82
+ lsl r0, r0, #6
+ ldr r1, [r4, r3]
+ add r0, r4, r0
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ ldr r1, [r4, #0x6c]
+ ldr r0, [r4, #0x64]
+ lsl r1, r1, #6
+ add r5, r4, r1
+ add r1, r2, #4
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x6c]
+ sub r2, #0xf0
+ str r0, [r4, r2]
+ ldr r0, [r4, r3]
+ add r3, #0x18
+ str r0, [r4, r3]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #2
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x1c
+ str r0, [r4, #0xc]
+ ldr r1, _022412F4 ; =0x0000213C
+ mov r0, #2
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0xc
+ orr r0, r2
+ str r0, [r4, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_022412E8:
+ mov r0, #0x1c
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022412F0: .word 0x00002144
+_022412F4: .word 0x0000213C
+
+ thumb_func_start MOD11_022412F8
+MOD11_022412F8: ; 0x022412F8
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldr r2, [r4, #0x38]
+ add r5, r0, #0
+ cmp r2, #0
+ beq _0224130C
+ cmp r2, #1
+ beq _022413D2
+ b _02241490
+_0224130C:
+ ldr r2, [r4, #0x3c]
+ cmp r2, #5
+ bls _02241314
+ b _02241490
+_02241314:
+ add r3, r2, r2
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_02241320: ; jump table
+ .short _0224132C - _02241320 - 2 ; case 0
+ .short _02241338 - _02241320 - 2 ; case 1
+ .short _0224134A - _02241320 - 2 ; case 2
+ .short _0224137E - _02241320 - 2 ; case 3
+ .short _02241392 - _02241320 - 2 ; case 4
+ .short _022413BC - _02241320 - 2 ; case 5
+_0224132C:
+ add r2, r2, #1
+ str r2, [r4, #0x3c]
+ bl MOD11_02242774
+ cmp r0, #1
+ beq _02241390
+_02241338:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_02242790
+ cmp r0, #1
+ beq _02241390
+_0224134A:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ add r2, sp, #0xc
+ bl MOD11_022449EC
+ cmp r0, #1
+ bne _0224137E
+ ldr r0, _0224149C ; =0x0000216C
+ ldr r1, [r4, r0]
+ ldr r0, _022414A0 ; =0x001FD849
+ tst r0, r1
+ bne _0224137E
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_0224137E:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_022427E4
+ cmp r0, #1
+ bne _02241392
+_02241390:
+ b _02241498
+_02241392:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ add r2, sp, #8
+ bl MOD11_02248308
+ cmp r0, #1
+ bne _022413BC
+ ldr r2, [sp, #8]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_022413BC:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_02242870
+ cmp r0, #1
+ bne _02241490
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_022413D2:
+ ldr r2, [r4, #0x3c]
+ cmp r2, #5
+ bhi _02241490
+ add r3, r2, r2
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_022413E4: ; jump table
+ .short _022413F0 - _022413E4 - 2 ; case 0
+ .short _022413FC - _022413E4 - 2 ; case 1
+ .short _02241430 - _022413E4 - 2 ; case 2
+ .short _02241442 - _022413E4 - 2 ; case 3
+ .short _0224146C - _022413E4 - 2 ; case 4
+ .short _0224147E - _022413E4 - 2 ; case 5
+_022413F0:
+ add r2, r2, #1
+ str r2, [r4, #0x3c]
+ bl MOD11_02242774
+ cmp r0, #1
+ beq _02241498
+_022413FC:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ add r2, sp, #4
+ bl MOD11_022449EC
+ cmp r0, #1
+ bne _02241430
+ ldr r0, _0224149C ; =0x0000216C
+ ldr r1, [r4, r0]
+ ldr r0, _022414A0 ; =0x001FD849
+ tst r0, r1
+ bne _02241430
+ ldr r2, [sp, #4]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02241430:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_022427E4
+ cmp r0, #1
+ beq _02241498
+_02241442:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ add r2, sp, #0
+ bl MOD11_02248308
+ cmp r0, #1
+ bne _0224146C
+ ldr r2, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_0224146C:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_02242790
+ cmp r0, #1
+ beq _02241498
+_0224147E:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_02242870
+ cmp r0, #1
+ beq _02241498
+_02241490:
+ mov r0, #0
+ str r0, [r4, #0x3c]
+ mov r0, #0x1e
+ str r0, [r4, #8]
+_02241498:
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224149C: .word 0x0000216C
+_022414A0: .word 0x001FD849
+
+ thumb_func_start MOD11_022414A4
+MOD11_022414A4: ; 0x022414A4
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_022414A8
+MOD11_022414A8: ; 0x022414A8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldr r1, [r4, #0x40]
+ add r7, r0, #0
+ cmp r1, #7
+ bls _022414B8
+ b _022416F2
+_022414B8:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022414C4: ; jump table
+ .short _022414D4 - _022414C4 - 2 ; case 0
+ .short _0224154E - _022414C4 - 2 ; case 1
+ .short _02241562 - _022414C4 - 2 ; case 2
+ .short _02241588 - _022414C4 - 2 ; case 3
+ .short _0224159C - _022414C4 - 2 ; case 4
+ .short _022415B6 - _022414C4 - 2 ; case 5
+ .short _022415E0 - _022414C4 - 2 ; case 6
+ .short _02241674 - _022414C4 - 2 ; case 7
+_022414D4:
+ mov r1, #0
+ ldr r5, [r4, #0x44]
+ str r1, [sp, #4]
+ bl MOD11_0222FF84
+ cmp r5, r0
+ bge _02241544
+ add r6, r4, #0
+ add r6, #0x44
+_022414E6:
+ mov r0, #0xc0
+ mul r0, r5
+ mov r1, #0xb7
+ add r0, r4, r0
+ lsl r1, r1, #6
+ ldr r2, [r0, r1]
+ ldr r1, _02241700 ; =0x200400C0
+ tst r1, r2
+ bne _0224152C
+ ldr r1, _02241704 ; =0x00002DC4
+ ldr r2, [r0, r1]
+ ldr r1, _02241700 ; =0x200400C0
+ tst r1, r2
+ beq _0224152C
+ ldr r1, _02241704 ; =0x00002DC4
+ ldr r2, [r0, r1]
+ ldr r1, _02241708 ; =0xDFFBFF3F
+ and r2, r1
+ ldr r1, _02241704 ; =0x00002DC4
+ str r2, [r0, r1]
+ ldr r2, _0224170C ; =0x0000011F
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x46
+ ldr r1, [r4, #0x44]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #4]
+_0224152C:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _022415B4
+ ldr r5, [r4, #0x44]
+ add r0, r7, #0
+ bl MOD11_0222FF84
+ cmp r5, r0
+ blt _022414E6
+_02241544:
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ mov r0, #0
+ str r0, [r4, #0x44]
+_0224154E:
+ ldr r0, [r4, #0x40]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ ldr r2, [r4, #8]
+ add r0, r7, #0
+ bl MOD11_02248A78
+ cmp r0, #1
+ beq _022415B4
+_02241562:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022476DC
+ add r2, r0, #0
+ beq _02241582
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02241582:
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+_02241588:
+ ldr r0, [r4, #0x40]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ ldr r2, [r4, #0x64]
+ add r0, r7, #0
+ bl MOD11_02248C0C
+ cmp r0, #1
+ beq _022415B4
+_0224159C:
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ ldr r2, [r4, #0x6c]
+ cmp r2, #0xff
+ beq _022415B6
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02248C0C
+ cmp r0, #1
+ bne _022415B6
+_022415B4:
+ b _022416FC
+_022415B6:
+ ldr r0, [r4, #0x40]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ add r0, r7, #0
+ add r2, sp, #0xc
+ bl MOD11_02249B94
+ cmp r0, #1
+ bne _022415E0
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_022415E0:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _022415F0
+ mov r2, #0
+ b _02241604
+_022415F0:
+ ldr r0, _02241710 ; =0x00002160
+ ldr r2, [r4, r0]
+ cmp r2, #0
+ bne _02241604
+ ldr r0, _02241714 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _02241718 ; =0x000003E2
+ ldrb r2, [r1, r0]
+_02241604:
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ ldr r3, [r4, #0x6c]
+ cmp r3, #0xff
+ beq _02241674
+ mov r0, #0xc0
+ add r5, r3, #0
+ mul r5, r0
+ ldr r0, _0224171C ; =0x00002DAC
+ add r1, r4, r5
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r1, r0
+ beq _02241674
+ ldr r1, _02241720 ; =0x0000216C
+ lsl r0, r0, #9
+ ldr r1, [r4, r1]
+ tst r0, r1
+ bne _02241674
+ ldr r0, [r4, #0x64]
+ cmp r3, r0
+ beq _02241674
+ mov r0, #0x1c
+ mul r0, r3
+ add r6, r4, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r1, [r6, r0]
+ cmp r1, #0
+ bne _0224164A
+ add r0, #8
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _02241674
+_0224164A:
+ ldr r0, _02241724 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02241674
+ cmp r2, #0xa
+ bne _02241674
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r3, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1d
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02241674:
+ mov r0, #0
+ str r0, [sp]
+ ldr r6, [r4, #0x44]
+ add r0, r7, #0
+ bl MOD11_0222FF84
+ cmp r6, r0
+ bge _022416E2
+ add r5, r4, #0
+ add r5, #0x44
+_02241688:
+ ldr r0, _02241728 ; =0x000021EC
+ add r1, r4, r6
+ ldrb r6, [r1, r0]
+ add r0, r6, #0
+ bl FUN_0206A92C
+ ldr r1, _0224172C ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ ldr r0, [r5]
+ beq _022416A4
+ add r0, r0, #1
+ str r0, [r5]
+ b _022416D6
+_022416A4:
+ add r0, r0, #1
+ str r0, [r5]
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, sp, #8
+ bl MOD11_022493A0
+ cmp r0, #1
+ bne _022416D6
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r6, [r4, r0]
+ ldr r2, [sp, #8]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp]
+ b _022416E2
+_022416D6:
+ ldr r6, [r4, #0x44]
+ add r0, r7, #0
+ bl MOD11_0222FF84
+ cmp r6, r0
+ blt _02241688
+_022416E2:
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _022416F2
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ mov r0, #0
+ str r0, [r4, #0x44]
+_022416F2:
+ mov r0, #0
+ str r0, [r4, #0x40]
+ str r0, [r4, #0x44]
+ mov r0, #0x1f
+ str r0, [r4, #8]
+_022416FC:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02241700: .word 0x200400C0
+_02241704: .word 0x00002DC4
+_02241708: .word 0xDFFBFF3F
+_0224170C: .word 0x0000011F
+_02241710: .word 0x00002160
+_02241714: .word 0x00003044
+_02241718: .word 0x000003E2
+_0224171C: .word 0x00002DAC
+_02241720: .word 0x0000216C
+_02241724: .word 0x00002D8C
+_02241728: .word 0x000021EC
+_0224172C: .word 0x00003108
+
+ thumb_func_start MOD11_02241730
+MOD11_02241730: ; 0x02241730
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02241734
+MOD11_02241734: ; 0x02241734
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r6, _02241820 ; =0x0000217D
+ add r4, r1, #0
+ ldrb r2, [r4, r6]
+ str r0, [sp]
+ cmp r2, #0
+ beq _0224181A
+ ldr r3, [r4, #0x74]
+ mov ip, r3
+ cmp r3, #0xff
+ bne _022417CC
+ ldr r3, [r4, #0x64]
+ mov r7, #0xc0
+ add r5, r3, #0
+ mul r5, r7
+ ldr r3, _02241824 ; =0x00002DAC
+ add r5, r4, r5
+ ldr r5, [r5, r3]
+ mov r3, #7
+ tst r3, r5
+ bne _022417CC
+ add r3, r6, #0
+ sub r3, #0x11
+ ldr r5, [r4, r3]
+ mov r3, #1
+ lsl r3, r3, #0xe
+ tst r3, r5
+ bne _022417CC
+ sub r2, r6, #1
+ ldrb r2, [r4, r2]
+ sub r3, r2, #1
+ sub r2, r6, #1
+ strb r3, [r4, r2]
+ ldrb r2, [r4, r2]
+ cmp r2, #0
+ beq _022417B2
+ mov r3, #1
+ add r2, r6, #3
+ str r3, [r4, r2]
+ bl MOD11_02247264
+ add r1, r6, #0
+ sub r1, #0x41
+ ldr r2, [r4, r1]
+ ldr r0, _02241828 ; =0xFFFFBFFF
+ and r0, r2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #0x4c
+ ldr r0, [r4, r0]
+ add r1, #0x48
+ str r0, [r4, r1]
+ ldr r2, _0224182C ; =0x00003044
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ mov r1, #0
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x17
+ str r0, [r4, #0xc]
+ b _02241812
+_022417B2:
+ ldrb r0, [r4, r6]
+ add r7, #0x70
+ mov r1, #1
+ str r0, [r4, r7]
+ add r0, r4, #0
+ mov r2, #0x11
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x21
+ str r0, [r4, #0xc]
+ b _02241812
+_022417CC:
+ mov r0, ip
+ cmp r0, #0xff
+ bne _022417E6
+ ldr r0, [r4, #0x64]
+ mov r1, #0xc0
+ add r3, r0, #0
+ mul r3, r1
+ ldr r0, _02241824 ; =0x00002DAC
+ add r3, r4, r3
+ ldr r3, [r3, r0]
+ mov r0, #7
+ tst r0, r3
+ beq _022417F6
+_022417E6:
+ ldr r0, _02241830 ; =0x0000217C
+ ldrb r0, [r4, r0]
+ sub r0, r2, r0
+ add r1, r0, #1
+ mov r0, #0x13
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _02241800
+_022417F6:
+ ldr r0, _02241830 ; =0x0000217C
+ add r1, #0x70
+ ldrb r0, [r4, r0]
+ sub r0, r2, r0
+ str r0, [r4, r1]
+_02241800:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x11
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x21
+ str r0, [r4, #0xc]
+_02241812:
+ ldr r0, [sp]
+ bl MOD11_0225679C
+ pop {r3, r4, r5, r6, r7, pc}
+_0224181A:
+ mov r0, #0x21
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02241820: .word 0x0000217D
+_02241824: .word 0x00002DAC
+_02241828: .word 0xFFFFBFFF
+_0224182C: .word 0x00003044
+_02241830: .word 0x0000217C
+
+ thumb_func_start MOD11_02241834
+MOD11_02241834: ; 0x02241834
+ push {r3, lr}
+ ldr r0, _02241858 ; =0x0000213C
+ ldr r2, [r1, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x18
+ tst r0, r2
+ beq _02241850
+ add r0, r1, #0
+ mov r1, #0x21
+ add r2, r1, #0
+ mov r3, #0
+ bl MOD11_0224246C
+ pop {r3, pc}
+_02241850:
+ mov r0, #0x22
+ str r0, [r1, #8]
+ pop {r3, pc}
+ nop
+_02241858: .word 0x0000213C
+
+ thumb_func_start MOD11_0224185C
+MOD11_0224185C: ; 0x0224185C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ mov r1, #0x85
+ lsl r1, r1, #6
+ add r5, r0, #0
+ ldr r2, [r4, r1]
+ mov r0, #8
+ tst r0, r2
+ beq _02241880
+ mov r0, #8
+ bic r2, r0
+ str r2, [r4, r1]
+ ldr r0, [r4, #0x64]
+ str r0, [r4, #0x6c]
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ str r0, [r4, #0x64]
+_02241880:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224256C
+ ldr r0, _022419E0 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022419E4 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #4
+ bne _0224194C
+ ldr r0, _022419E8 ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #2
+ tst r0, r1
+ bne _0224194C
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, _022419EC ; =0x0000217E
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ bge _0224194C
+ mov r2, #0xd
+ add r0, r1, #6
+ str r2, [r4, r0]
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_0222FF7C
+ bl MOD11_02253A4C
+ mov r1, #1
+ add r7, r0, #0
+ and r7, r1
+_022418CE:
+ ldr r1, _022419EC ; =0x0000217E
+ ldr r0, _022419EC ; =0x0000217E
+ ldrb r1, [r4, r1]
+ ldrb r0, [r4, r0]
+ add r2, r1, #1
+ ldr r1, _022419EC ; =0x0000217E
+ strb r2, [r4, r1]
+ add r1, r4, r0
+ ldr r0, _022419F0 ; =0x000021EC
+ ldrb r6, [r1, r0]
+ add r0, r6, #0
+ bl FUN_0206A92C
+ ldr r1, _022419F4 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ bne _02241936
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r4, r0
+ ldr r0, _022419F8 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02241936
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ str r0, [sp]
+ cmp r7, #0
+ beq _02241916
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _02241926
+_02241916:
+ cmp r7, #0
+ bne _02241936
+ ldr r0, [sp]
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _02241936
+_02241926:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02247264
+ str r6, [r4, #0x6c]
+ mov r0, #0x16
+ str r0, [r4, #8]
+ b _02241944
+_02241936:
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, _022419EC ; =0x0000217E
+ ldrb r1, [r4, r1]
+ cmp r1, r0
+ blt _022418CE
+_02241944:
+ add r0, r5, #0
+ bl MOD11_0225679C
+ pop {r3, r4, r5, r6, r7, pc}
+_0224194C:
+ ldr r0, _022419E0 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022419E4 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #8
+ bne _022419DA
+ ldr r0, _022419E8 ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #2
+ tst r0, r1
+ bne _022419DA
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, _022419EC ; =0x0000217E
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ bge _022419DA
+ mov r2, #0xd
+ add r0, r1, #6
+ str r2, [r4, r0]
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r7, _022419EC ; =0x0000217E
+_02241982:
+ ldr r0, _022419EC ; =0x0000217E
+ ldrb r1, [r4, r0]
+ ldrb r0, [r4, r7]
+ add r1, r4, r1
+ add r0, r0, #1
+ strb r0, [r4, r7]
+ ldr r0, _022419F0 ; =0x000021EC
+ ldrb r6, [r1, r0]
+ add r0, r6, #0
+ bl FUN_0206A92C
+ ldr r1, _022419F4 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ bne _022419C4
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r4, r0
+ ldr r0, _022419F8 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022419C4
+ ldr r0, [r4, #0x64]
+ cmp r6, r0
+ beq _022419C4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02247264
+ str r6, [r4, #0x6c]
+ mov r0, #0x16
+ str r0, [r4, #8]
+ b _022419D2
+_022419C4:
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, _022419EC ; =0x0000217E
+ ldrb r1, [r4, r1]
+ cmp r1, r0
+ blt _02241982
+_022419D2:
+ add r0, r5, #0
+ bl MOD11_0225679C
+ pop {r3, r4, r5, r6, r7, pc}
+_022419DA:
+ mov r0, #0x23
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022419E0: .word 0x00003044
+_022419E4: .word 0x000003E6
+_022419E8: .word 0x0000213C
+_022419EC: .word 0x0000217E
+_022419F0: .word 0x000021EC
+_022419F4: .word 0x00003108
+_022419F8: .word 0x00002D8C
+
+ thumb_func_start MOD11_022419FC
+MOD11_022419FC: ; 0x022419FC
+ push {r4, lr}
+ ldr r0, _02241A38 ; =0x0000213C
+ add r4, r1, #0
+ ldr r1, [r4, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x1c
+ and r0, r1
+ beq _02241A32
+ lsr r0, r0, #0x1c
+ bl FUN_0206A94C
+ str r0, [r4, #0x74]
+ ldr r1, _02241A38 ; =0x0000213C
+ ldr r0, _02241A3C ; =0x0FFFFFFF
+ ldr r2, [r4, r1]
+ and r0, r2
+ str r0, [r4, r1]
+ ldr r2, _02241A40 ; =0x00000115
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x24
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+_02241A32:
+ mov r0, #0x24
+ str r0, [r4, #8]
+ pop {r4, pc}
+ .align 2, 0
+_02241A38: .word 0x0000213C
+_02241A3C: .word 0x0FFFFFFF
+_02241A40: .word 0x00000115
+
+ thumb_func_start MOD11_02241A44
+MOD11_02241A44: ; 0x02241A44
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_022429B0
+ cmp r0, #1
+ beq _02241A54
+ mov r0, #0x26
+ str r0, [r4, #8]
+_02241A54:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02241A58
+MOD11_02241A58: ; 0x02241A58
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02241A5C
+MOD11_02241A5C: ; 0x02241A5C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x64]
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD11_02249D90
+ ldr r1, _02241B60 ; =0x0000213C
+ lsl r0, r0, #0x18
+ ldr r3, [r4, r1]
+ mov r2, #0x20
+ lsr r0, r0, #0x18
+ tst r2, r3
+ bne _02241A82
+ add r1, r1, #4
+ ldr r2, [r4, r1]
+ mov r1, #4
+ tst r1, r2
+ beq _02241AC4
+_02241A82:
+ cmp r0, #0x36
+ beq _02241A8E
+ cmp r0, #0x72
+ beq _02241A8E
+ cmp r0, #0x7c
+ bne _02241AB6
+_02241A8E:
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0xa5
+ beq _02241AC4
+ cmp r0, #0xe2
+ bne _02241AA8
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r4, r1]
+ mov r1, #0x40
+ tst r1, r2
+ bne _02241AC4
+_02241AA8:
+ ldr r2, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _02241B64 ; =0x00002DF8
+ strh r0, [r2, r1]
+ b _02241AC4
+_02241AB6:
+ ldr r2, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _02241B64 ; =0x00002DF8
+ mov r0, #0
+ strh r0, [r2, r1]
+_02241AC4:
+ ldr r0, _02241B60 ; =0x0000213C
+ mov r1, #1
+ ldr r2, [r4, r0]
+ lsl r1, r1, #0x14
+ tst r1, r2
+ bne _02241B2C
+ add r0, r0, #4
+ ldr r1, [r4, r0]
+ mov r0, #4
+ tst r0, r1
+ beq _02241AF2
+ ldr r2, [r4, #0x64]
+ ldr r1, _02241B68 ; =0x00003044
+ lsl r2, r2, #1
+ add r3, r4, r2
+ add r2, r1, #0
+ ldr r0, [r4, r1]
+ add r2, #0x18
+ strh r0, [r3, r2]
+ sub r0, r1, #4
+ ldr r2, [r4, r0]
+ add r0, r1, #4
+ b _02241B00
+_02241AF2:
+ ldr r0, [r4, #0x64]
+ mov r2, #0
+ lsl r0, r0, #1
+ add r1, r4, r0
+ ldr r0, _02241B6C ; =0x0000305C
+ strh r2, [r1, r0]
+ sub r0, #0x14
+_02241B00:
+ str r2, [r4, r0]
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _02241B20
+ mov r0, #0xc1
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #6
+ ldr r2, [r4, r0]
+ lsl r1, r1, #1
+ add r1, r4, r1
+ add r0, #0x3c
+ strh r2, [r1, r0]
+ b _02241B2C
+_02241B20:
+ ldr r0, [r4, #0x64]
+ mov r2, #0
+ lsl r0, r0, #1
+ add r1, r4, r0
+ ldr r0, _02241B70 ; =0x0000307C
+ strh r2, [r1, r0]
+_02241B2C:
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #4
+ tst r0, r1
+ beq _02241B48
+ mov r0, #0xc1
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #6
+ ldr r2, [r4, r0]
+ lsl r1, r1, #1
+ add r1, r4, r1
+ add r0, #0x6c
+ strh r2, [r1, r0]
+_02241B48:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224256C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224ABF8
+ mov r0, #0x27
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+ nop
+_02241B60: .word 0x0000213C
+_02241B64: .word 0x00002DF8
+_02241B68: .word 0x00003044
+_02241B6C: .word 0x0000305C
+_02241B70: .word 0x0000307C
+
+ thumb_func_start MOD11_02241B74
+MOD11_02241B74: ; 0x02241B74
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _02241BF6
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r3, #0
+ bl MOD11_02248898
+ cmp r0, #1
+ beq _02241C4C
+ ldr r2, [r4, #0x6c]
+ cmp r2, #0xff
+ beq _02241BAA
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r3, #0
+ bl MOD11_02248898
+ cmp r0, #1
+ beq _02241C4C
+_02241BAA:
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_02242510
+ cmp r0, #1
+ beq _02241C4C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02241FD8
+ cmp r0, #1
+ beq _02241C4C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022476DC
+ add r2, r0, #0
+ beq _02241BE2
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02241BE2:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02242924
+ cmp r0, #1
+ beq _02241C4C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02242404
+_02241BF6:
+ add r1, r4, #0
+ add r1, #0xec
+ ldr r1, [r1]
+ mov r0, #0x27
+ add r2, r4, r1
+ ldr r1, _02241C50 ; =0x000021E8
+ ldrb r2, [r2, r1]
+ sub r1, #0x40
+ lsl r2, r2, #4
+ add r2, r4, r2
+ str r0, [r2, r1]
+ ldr r1, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r1
+ add r1, r4, r0
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ beq _02241C34
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224C178
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224728C
+ mov r1, #0
+ b _02241C3C
+_02241C34:
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ add r1, r0, #1
+_02241C3C:
+ add r0, r4, #0
+ add r0, #0xec
+ str r1, [r0]
+ add r0, r4, #0
+ bl MOD11_02245494
+ mov r0, #8
+ str r0, [r4, #8]
+_02241C4C:
+ pop {r3, r4, r5, pc}
+ nop
+_02241C50: .word 0x000021E8
+
+ thumb_func_start MOD11_02241C54
+MOD11_02241C54: ; 0x02241C54
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD11_0224246C
+ cmp r0, #1
+ beq _02241C6C
+ mov r0, #0x27
+ str r0, [r4, #8]
+_02241C6C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02241C70
+MOD11_02241C70: ; 0x02241C70
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0223145C
+ mov r1, #0x80
+ tst r0, r1
+ beq _02241C86
+ mov r0, #0x2a
+ str r0, [r4, #8]
+ b _02241CE4
+_02241C86:
+ add r0, r5, #0
+ bl MOD11_0223145C
+ cmp r0, #2
+ beq _02241C9A
+ add r0, r5, #0
+ bl MOD11_0223145C
+ cmp r0, #3
+ bne _02241CAE
+_02241C9A:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #5
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x2a
+ str r0, [r4, #0xc]
+ b _02241CE4
+_02241CAE:
+ add r0, r5, #0
+ bl MOD11_0223145C
+ cmp r0, #1
+ bne _02241CCC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #4
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x2a
+ str r0, [r4, #0xc]
+ b _02241CE4
+_02241CCC:
+ add r0, r5, #0
+ bl MOD11_0223145C
+ cmp r0, #4
+ beq _02241CE0
+ add r0, r5, #0
+ bl MOD11_0223145C
+ cmp r0, #5
+ bne _02241CE4
+_02241CE0:
+ mov r0, #0x2a
+ str r0, [r4, #8]
+_02241CE4:
+ ldr r0, _02241CEC ; =0x0000311F
+ mov r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02241CEC: .word 0x0000311F
+
+ thumb_func_start MOD11_02241CF0
+MOD11_02241CF0: ; 0x02241CF0
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ add r4, r0, #0
+ and r4, r1
+ bne _02241D16
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ bl FUN_02069C4C
+ add r0, r6, #0
+ bl FUN_02069DC8
+_02241D16:
+ cmp r4, #0
+ beq _02241D20
+ mov r0, #0x16
+ bl FUN_020311DC
+_02241D20:
+ mov r0, #0x2b
+ str r0, [r5, #8]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02241D28
+MOD11_02241D28: ; 0x02241D28
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02241D2C
+MOD11_02241D2C: ; 0x02241D2C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ str r1, [sp, #4]
+ mov r1, #0
+ str r0, [sp]
+ str r1, [sp, #0x30]
+ bl MOD11_0222FF84
+ str r0, [sp, #0x28]
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #8]
+ str r0, [sp, #0x20]
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ bgt _02241D58
+ b _02241F4A
+_02241D58:
+ ldr r0, [sp, #4]
+ mov r1, #2
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x24]
+ and r0, r1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x18
+ and r0, r1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x10
+ and r0, r1
+ str r0, [sp, #0xc]
+_02241D76:
+ mov r1, #0x4f
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r0, #1
+ bic r2, r0
+ ldr r0, [sp, #0x1c]
+ str r2, [r0, r1]
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _02241D92
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _02241DA4
+_02241D92:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ beq _02241E8A
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02241E8A
+_02241DA4:
+ ldr r3, _02241FC8 ; =0x00002D8C
+ ldr r0, [sp, #0x18]
+ ldr r0, [r0, r3]
+ cmp r0, #0
+ bne _02241DCC
+ ldr r1, [sp, #0x2c]
+ mov r2, #2
+ add r4, r1, #0
+ eor r4, r2
+ mov r1, #0xc0
+ add r5, r4, #0
+ mul r5, r1
+ ldr r1, [sp, #4]
+ add r1, r1, r5
+ ldr r1, [r1, r3]
+ cmp r1, #0
+ bne _02241DCC
+ ldr r1, [sp, #0x2c]
+ tst r1, r2
+ bne _02241DD0
+_02241DCC:
+ cmp r0, #0
+ beq _02241DD2
+_02241DD0:
+ b _02241F30
+_02241DD2:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ mov r7, #0
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ bl MOD11_0222FF7C
+ add r0, r6, #0
+ add r5, r7, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _02241E4A
+ ldr r0, [sp, #0x2c]
+ mov r1, #2
+ eor r1, r0
+ ldr r0, [sp, #4]
+ add r0, r0, r1
+ str r0, [sp, #8]
+_02241DFE:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl FUN_0206B9B0
+ mov r1, #0xad
+ mov r2, #0
+ add r4, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02241E3E
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02241FCC ; =0x000001EE
+ cmp r0, r1
+ beq _02241E3E
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02241E3E
+ ldr r2, [sp, #8]
+ ldr r1, _02241FD0 ; =0x0000219C
+ ldrb r1, [r2, r1]
+ cmp r5, r1
+ beq _02241E3E
+ add r7, r7, r0
+_02241E3E:
+ add r0, r6, #0
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _02241DFE
+_02241E4A:
+ cmp r7, #0
+ bne _02241E6E
+ ldr r0, [sp, #0x2c]
+ bl FUN_0206A92C
+ ldr r2, _02241FD4 ; =0x00003108
+ ldr r1, [sp, #4]
+ ldrb r1, [r1, r2]
+ orr r1, r0
+ ldr r0, [sp, #4]
+ strb r1, [r0, r2]
+ add r1, r0, #0
+ ldr r0, [sp, #0x2c]
+ mov r2, #6
+ add r1, r1, r0
+ ldr r0, _02241FD0 ; =0x0000219C
+ strb r2, [r1, r0]
+ b _02241F30
+_02241E6E:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0xc]
+ mov r1, #0x15
+ str r1, [r0, #8]
+ mov r1, #0x4f
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r0, #1
+ orr r2, r0
+ ldr r0, [sp, #0x1c]
+ str r2, [r0, r1]
+ b _02241F30
+_02241E8A:
+ ldr r1, _02241FC8 ; =0x00002D8C
+ ldr r0, [sp, #0x18]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _02241F30
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ mov r7, #0
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ bl MOD11_0222FF7C
+ add r0, r6, #0
+ add r5, r7, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _02241EF2
+_02241EB4:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl FUN_0206B9B0
+ mov r1, #0xad
+ mov r2, #0
+ add r4, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02241EE6
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02241FCC ; =0x000001EE
+ cmp r0, r1
+ beq _02241EE6
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ add r7, r7, r0
+_02241EE6:
+ add r0, r6, #0
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _02241EB4
+_02241EF2:
+ cmp r7, #0
+ bne _02241F16
+ ldr r0, [sp, #0x2c]
+ bl FUN_0206A92C
+ ldr r2, _02241FD4 ; =0x00003108
+ ldr r1, [sp, #4]
+ ldrb r1, [r1, r2]
+ orr r1, r0
+ ldr r0, [sp, #4]
+ strb r1, [r0, r2]
+ add r1, r0, #0
+ ldr r0, [sp, #0x2c]
+ mov r2, #6
+ add r1, r1, r0
+ ldr r0, _02241FD0 ; =0x0000219C
+ strb r2, [r1, r0]
+ b _02241F30
+_02241F16:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0xc]
+ mov r1, #0x15
+ str r1, [r0, #8]
+ mov r1, #0x4f
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r0, #1
+ orr r2, r0
+ ldr r0, [sp, #0x1c]
+ str r2, [r0, r1]
+_02241F30:
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #4
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r0, #0xc0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x2c]
+ add r1, r0, #1
+ ldr r0, [sp, #0x28]
+ str r1, [sp, #0x2c]
+ cmp r1, r0
+ bge _02241F4A
+ b _02241D76
+_02241F4A:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #8]
+ cmp r0, #0x15
+ bne _02241FC0
+ ldr r0, [sp, #0x24]
+ mov r1, #0x86
+ tst r0, r1
+ bne _02241FB2
+ ldr r0, [sp]
+ bl MOD11_02230E70
+ cmp r0, #0
+ bne _02241FB2
+ mov r1, #0x4f
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r2, #1
+ tst r0, r2
+ beq _02241F7C
+ ldr r0, [sp, #4]
+ add r1, r1, #4
+ ldr r0, [r0, r1]
+ tst r0, r2
+ bne _02241FB2
+_02241F7C:
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ mov r2, #0
+ bl MOD11_02246DE0
+ cmp r0, #0
+ beq _02241FB2
+ mov r1, #0x4f
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r2, #1
+ tst r0, r2
+ beq _02241FA0
+ mov r2, #0
+ sub r1, r1, #4
+ ldr r0, [sp, #4]
+ b _02241FA4
+_02241FA0:
+ ldr r0, [sp, #4]
+ sub r1, r1, #4
+_02241FA4:
+ str r2, [r0, r1]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ mov r2, #0xe7
+ bl MOD11_022431DC
+ b _02241FBC
+_02241FB2:
+ ldr r0, [sp, #4]
+ mov r1, #1
+ mov r2, #0xa
+ bl MOD11_022431DC
+_02241FBC:
+ mov r0, #1
+ str r0, [sp, #0x30]
+_02241FC0:
+ ldr r0, [sp, #0x30]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02241FC8: .word 0x00002D8C
+_02241FCC: .word 0x000001EE
+_02241FD0: .word 0x0000219C
+_02241FD4: .word 0x00003108
+
+ thumb_func_start MOD11_02241FD8
+MOD11_02241FD8: ; 0x02241FD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ str r0, [sp]
+ str r1, [sp, #4]
+ bl MOD11_0222FF84
+ str r0, [sp, #0x24]
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ str r0, [sp, #0x20]
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ cmp r0, #0
+ bgt _02241FFC
+ b _02242256
+_02241FFC:
+ ldr r0, [sp, #0x20]
+ mov r1, #8
+ and r0, r1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x20]
+ mov r1, #0x10
+ and r0, r1
+ str r0, [sp, #8]
+_0224200C:
+ ldr r0, [sp, #0x20]
+ sub r0, #0x4a
+ cmp r0, #1
+ bhi _022420A6
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _022420A6
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_02230260
+ cmp r0, #2
+ bne _022420C8
+ ldr r1, _0224233C ; =0x00002D8C
+ ldr r0, [sp, #4]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _022420C8
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ mov r7, #0
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_0222FF7C
+ add r0, r6, #0
+ add r4, r7, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _02242094
+_02242056:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ mov r1, #0xad
+ mov r2, #0
+ add r5, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02242088
+ add r0, r5, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02242340 ; =0x000001EE
+ cmp r0, r1
+ beq _02242088
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ add r7, r7, r0
+_02242088:
+ add r0, r6, #0
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _02242056
+_02242094:
+ cmp r7, #0
+ bne _022420C8
+ ldr r0, [sp, #0x1c]
+ mov r1, #2
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ b _02242242
+_022420A6:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _022420BE
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _022421B0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _022421B0
+_022420BE:
+ ldr r1, _0224233C ; =0x00002D8C
+ ldr r0, [sp, #4]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _022420CA
+_022420C8:
+ b _02242242
+_022420CA:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ mov r5, #0
+ bl MOD11_0222FF88
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD11_0222FF88
+ str r0, [sp, #0x18]
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_0222FF7C
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r4, r5, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0224213C
+_022420FE:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02242130
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02242340 ; =0x000001EE
+ cmp r0, r1
+ beq _02242130
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ add r5, r5, r0
+_02242130:
+ add r0, r7, #0
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _022420FE
+_0224213C:
+ ldr r0, [sp, #0x18]
+ mov r4, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _02242186
+ ldr r7, _02242340 ; =0x000001EE
+_0224214A:
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0224217A
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, r7
+ beq _0224217A
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ add r5, r5, r0
+_0224217A:
+ ldr r0, [sp, #0x18]
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _0224214A
+_02242186:
+ cmp r5, #0
+ bne _02242242
+ ldr r0, [sp, #0x14]
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _022421A2
+ ldr r0, [sp, #0x1c]
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ b _02242242
+_022421A2:
+ ldr r0, [sp, #0x1c]
+ mov r1, #2
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ b _02242242
+_022421B0:
+ ldr r1, _0224233C ; =0x00002D8C
+ ldr r0, [sp, #4]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _02242242
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ mov r7, #0
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_0222FF7C
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ add r4, r7, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0224221A
+_022421DC:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ mov r1, #0xad
+ mov r2, #0
+ add r5, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0224220E
+ add r0, r5, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02242340 ; =0x000001EE
+ cmp r0, r1
+ beq _0224220E
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ add r7, r7, r0
+_0224220E:
+ add r0, r6, #0
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _022421DC
+_0224221A:
+ cmp r7, #0
+ bne _02242242
+ ldr r0, [sp, #0x10]
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _02242236
+ ldr r0, [sp, #0x1c]
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ b _02242242
+_02242236:
+ ldr r0, [sp, #0x1c]
+ mov r1, #2
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+_02242242:
+ ldr r0, [sp, #4]
+ add r0, #0xc0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x28]
+ add r1, r0, #1
+ ldr r0, [sp, #0x24]
+ str r1, [sp, #0x28]
+ cmp r1, r0
+ bge _02242256
+ b _0224200C
+_02242256:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #1
+ bne _0224226C
+ ldr r0, [sp, #0x20]
+ mov r1, #1
+ tst r0, r1
+ beq _0224226C
+ ldr r0, [sp, #0x20]
+ mov r1, #4
+ tst r0, r1
+ beq _02242282
+_0224226C:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #1
+ bne _0224231C
+ ldr r0, [sp, #0x20]
+ mov r1, #0x80
+ tst r0, r1
+ beq _0224231C
+ ldr r0, [sp, #0x20]
+ mov r1, #4
+ tst r0, r1
+ bne _0224231C
+_02242282:
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_02230188
+ ldrb r0, [r0, #1]
+ sub r0, #0x3e
+ cmp r0, #0x23
+ bhi _0224230E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224229E: ; jump table
+ .short _022422E6 - _0224229E - 2 ; case 0
+ .short _0224230E - _0224229E - 2 ; case 1
+ .short _022422E6 - _0224229E - 2 ; case 2
+ .short _02242306 - _0224229E - 2 ; case 3
+ .short _02242306 - _0224229E - 2 ; case 4
+ .short _02242306 - _0224229E - 2 ; case 5
+ .short _02242306 - _0224229E - 2 ; case 6
+ .short _022422EE - _0224229E - 2 ; case 7
+ .short _0224230E - _0224229E - 2 ; case 8
+ .short _0224230E - _0224229E - 2 ; case 9
+ .short _022422F6 - _0224229E - 2 ; case 10
+ .short _022422F6 - _0224229E - 2 ; case 11
+ .short _022422E6 - _0224229E - 2 ; case 12
+ .short _022422E6 - _0224229E - 2 ; case 13
+ .short _022422E6 - _0224229E - 2 ; case 14
+ .short _022422E6 - _0224229E - 2 ; case 15
+ .short _022422E6 - _0224229E - 2 ; case 16
+ .short _022422E6 - _0224229E - 2 ; case 17
+ .short _0224230E - _0224229E - 2 ; case 18
+ .short _0224230E - _0224229E - 2 ; case 19
+ .short _0224230E - _0224229E - 2 ; case 20
+ .short _0224230E - _0224229E - 2 ; case 21
+ .short _0224230E - _0224229E - 2 ; case 22
+ .short _0224230E - _0224229E - 2 ; case 23
+ .short _022422FE - _0224229E - 2 ; case 24
+ .short _022422F6 - _0224229E - 2 ; case 25
+ .short _022422F6 - _0224229E - 2 ; case 26
+ .short _022422F6 - _0224229E - 2 ; case 27
+ .short _0224230E - _0224229E - 2 ; case 28
+ .short _0224230E - _0224229E - 2 ; case 29
+ .short _0224230E - _0224229E - 2 ; case 30
+ .short _0224230E - _0224229E - 2 ; case 31
+ .short _0224230E - _0224229E - 2 ; case 32
+ .short _0224230E - _0224229E - 2 ; case 33
+ .short _0224230E - _0224229E - 2 ; case 34
+ .short _022422E6 - _0224229E - 2 ; case 35
+_022422E6:
+ ldr r0, _02242344 ; =0x00000469
+ bl FUN_0200521C
+ b _02242314
+_022422EE:
+ ldr r0, _02242348 ; =0x0000046A
+ bl FUN_0200521C
+ b _02242314
+_022422F6:
+ ldr r0, _0224234C ; =0x0000046B
+ bl FUN_0200521C
+ b _02242314
+_022422FE:
+ ldr r0, _02242350 ; =0x0000046C
+ bl FUN_0200521C
+ b _02242314
+_02242306:
+ ldr r0, _02242354 ; =0x0000046D
+ bl FUN_0200521C
+ b _02242314
+_0224230E:
+ ldr r0, _02242358 ; =0x00000468
+ bl FUN_0200521C
+_02242314:
+ ldr r0, [sp]
+ mov r1, #2
+ bl MOD11_02231484
+_0224231C:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0224232A
+ ldr r0, [sp]
+ ldr r1, [sp, #0x1c]
+ bl MOD11_02231468
+_0224232A:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _02242336
+ add sp, #0x2c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02242336:
+ mov r0, #0
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224233C: .word 0x00002D8C
+_02242340: .word 0x000001EE
+_02242344: .word 0x00000469
+_02242348: .word 0x0000046A
+_0224234C: .word 0x0000046B
+_02242350: .word 0x0000046C
+_02242354: .word 0x0000046D
+_02242358: .word 0x00000468
+
+ thumb_func_start MOD11_0224235C
+MOD11_0224235C: ; 0x0224235C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ add r5, r1, #0
+ ldr r0, _022423F4 ; =0x00002D4C
+ add r6, r2, #0
+ mov r1, #0xc0
+ add r0, r5, r0
+ mul r1, r6
+ add r0, r0, r1
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x2c]
+ ldr r1, [sp, #8]
+ lsl r0, r0, #1
+ ldrh r1, [r1, r0]
+ str r3, [sp, #4]
+ ldr r4, [sp, #0x28]
+ ldr r7, [sp, #0x30]
+ str r0, [sp, #0xc]
+ cmp r1, #0xae
+ bne _02242396
+ add r0, r5, #0
+ bl MOD11_02246C20
+ cmp r0, #0
+ bne _02242396
+ mov r0, #0x10
+ str r0, [r4]
+ b _022423A6
+_02242396:
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #0xc]
+ ldrh r0, [r1, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _022423F8 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ str r0, [r4]
+_022423A6:
+ ldr r0, [sp, #4]
+ mov r1, #2
+ tst r0, r1
+ beq _022423DC
+ ldr r0, [r4]
+ add r1, #0xfe
+ cmp r0, r1
+ bne _022423D6
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_022302BC
+ bl FUN_0206A92C
+ ldr r1, _022423FC ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _022423D0
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022423D0:
+ add sp, #0x10
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022423D6:
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022423DC:
+ ldr r1, [r4]
+ ldr r0, _02242400 ; =0x00000251
+ tst r0, r1
+ beq _022423E8
+ str r6, [r7]
+ b _022423EE
+_022423E8:
+ mov r0, #1
+ eor r0, r6
+ str r0, [r7]
+_022423EE:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022423F4: .word 0x00002D4C
+_022423F8: .word 0x000003E6
+_022423FC: .word 0x00003108
+_02242400: .word 0x00000251
+
+ thumb_func_start MOD11_02242404
+MOD11_02242404: ; 0x02242404
+ push {r3, r4, r5, r6, r7, lr}
+ str r1, [sp]
+ bl MOD11_0222FF84
+ add r4, r0, #0
+ mov r3, #0
+ cmp r4, #0
+ ble _0224243E
+ ldr r5, [sp]
+ add r7, r3, #0
+ add r6, r5, #0
+_0224241A:
+ ldr r0, _02242460 ; =0x00002DB0
+ add r3, r3, #1
+ ldr r2, [r6, r0]
+ ldr r0, _02242464 ; =0x0000218C
+ ldr r1, [r5, r0]
+ mov r0, #0
+ mvn r0, r0
+ eor r0, r1
+ add r1, r2, #0
+ and r1, r0
+ ldr r0, _02242460 ; =0x00002DB0
+ str r1, [r6, r0]
+ ldr r0, _02242464 ; =0x0000218C
+ add r6, #0xc0
+ str r7, [r5, r0]
+ add r5, r5, #4
+ cmp r3, r4
+ blt _0224241A
+_0224243E:
+ ldr r1, [sp]
+ mov r0, #0
+ ldr r1, [r1, #0x64]
+ lsl r2, r1, #1
+ ldr r1, [sp]
+ add r1, r1, r2
+ ldr r2, _02242468 ; =0x00003064
+ strh r0, [r1, r2]
+ ldr r1, [sp]
+ add r2, #0x60
+ ldr r1, [r1, #0x64]
+ lsl r3, r1, #1
+ ldr r1, [sp]
+ add r1, r1, r3
+ strh r0, [r1, r2]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02242460: .word 0x00002DB0
+_02242464: .word 0x0000218C
+_02242468: .word 0x00003064
+
+ thumb_func_start MOD11_0224246C
+MOD11_0224246C: ; 0x0224246C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, _02242504 ; =0x000021EC
+ str r1, [sp]
+ ldrb r0, [r5, r0]
+ add r6, r2, #0
+ str r3, [sp, #4]
+ mov r4, #0
+ bl FUN_0206A92C
+ ldr r1, _02242508 ; =0x0000213C
+ lsl r0, r0, #0x18
+ ldr r2, [r5, r1]
+ mov r1, #0xf
+ lsl r1, r1, #0x18
+ tst r1, r2
+ beq _022424FA
+ add r1, r2, #0
+ tst r1, r0
+ bne _022424AE
+ ldr r7, _02242504 ; =0x000021EC
+ add r6, r7, #0
+ sub r6, #0xb0
+_0224249C:
+ add r4, r4, #1
+ add r0, r5, r4
+ ldrb r0, [r0, r7]
+ bl FUN_0206A92C
+ ldr r1, [r5, r6]
+ lsl r0, r0, #0x18
+ tst r1, r0
+ beq _0224249C
+_022424AE:
+ ldr r2, _02242508 ; =0x0000213C
+ mov r1, #0
+ mvn r1, r1
+ eor r1, r0
+ ldr r3, [r5, r2]
+ asr r0, r0, #0x18
+ and r1, r3
+ str r1, [r5, r2]
+ bl FUN_0206A94C
+ str r0, [r5, #0x74]
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _022424D6
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #6
+ bl MOD11_022431DC
+ b _022424E0
+_022424D6:
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0x53
+ bl MOD11_022431DC
+_022424E0:
+ mov r0, #0x15
+ str r0, [r5, #8]
+ ldr r0, [sp]
+ mov r2, #0x27
+ str r0, [r5, #0xc]
+ ldr r0, [r5, #0x74]
+ add sp, #8
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224250C ; =0x000021A8
+ str r2, [r1, r0]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022424FA:
+ str r6, [r5, #8]
+ add r0, r4, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02242504: .word 0x000021EC
+_02242508: .word 0x0000213C
+_0224250C: .word 0x000021A8
+
+ thumb_func_start MOD11_02242510
+MOD11_02242510: ; 0x02242510
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x85
+ lsl r0, r0, #6
+ add r4, r1, #0
+ ldr r1, [r5, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x1c
+ tst r0, r1
+ beq _02242564
+ mov r0, #1
+ lsl r0, r0, #0x1c
+ add r2, r1, #0
+ tst r2, r0
+ bne _02242536
+_0224252E:
+ lsl r0, r0, #1
+ add r2, r1, #0
+ tst r2, r0
+ beq _0224252E
+_02242536:
+ mov r2, #0x85
+ lsl r2, r2, #6
+ mov r1, #0
+ mvn r1, r1
+ eor r1, r0
+ ldr r3, [r5, r2]
+ asr r0, r0, #0x1c
+ and r1, r3
+ str r1, [r5, r2]
+ bl FUN_0206A94C
+ mov r2, #0x45
+ str r0, [r5, #0x74]
+ add r0, r5, #0
+ mov r1, #1
+ lsl r2, r2, #2
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r5, #8]
+ str r4, [r5, #0xc]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02242564:
+ str r2, [r5, #8]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224256C
+MOD11_0224256C: ; 0x0224256C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _02242580
+ mov r4, #0
+ b _02242594
+_02242580:
+ ldr r0, _0224274C ; =0x00002160
+ ldr r4, [r5, r0]
+ cmp r4, #0
+ bne _02242594
+ ldr r0, _02242750 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02242754 ; =0x000003E2
+ ldrb r4, [r1, r0]
+_02242594:
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r2, [r5, r0]
+ mov r6, #0x10
+ lsl r1, r2, #4
+ add r3, r5, r1
+ ldr r1, _02242758 ; =0x000003E9
+ ldrb r1, [r3, r1]
+ tst r1, r6
+ beq _022425DE
+ ldr r3, _0224275C ; =0x0000213C
+ lsl r6, r6, #0x10
+ ldr r1, [r5, r3]
+ tst r1, r6
+ bne _022425DE
+ ldr r1, [r5, #0x6c]
+ cmp r1, #0xff
+ beq _022425DE
+ add r3, r3, #4
+ ldr r6, [r5, r3]
+ mov r3, #4
+ tst r3, r6
+ beq _022425DE
+ lsl r1, r1, #1
+ add r3, r5, r1
+ add r1, r0, #0
+ add r1, #0x44
+ strh r2, [r3, r1]
+ ldr r2, [r5, #0x6c]
+ ldr r1, [r5, r0]
+ lsl r2, r2, #3
+ add r3, r5, r2
+ ldr r2, [r5, #0x64]
+ add r0, #0x4c
+ lsl r2, r2, #1
+ add r2, r3, r2
+ strh r1, [r2, r0]
+_022425DE:
+ ldr r1, [r5, #0x6c]
+ cmp r1, #0xff
+ beq _02242628
+ add r0, r5, #0
+ bl MOD11_02249D90
+ ldr r1, _0224275C ; =0x0000213C
+ lsl r0, r0, #0x18
+ ldr r3, [r5, r1]
+ mov r2, #0x20
+ lsr r0, r0, #0x18
+ tst r2, r3
+ bne _02242602
+ add r1, r1, #4
+ ldr r2, [r5, r1]
+ mov r1, #4
+ tst r1, r2
+ beq _0224261C
+_02242602:
+ cmp r0, #0x36
+ beq _0224261C
+ cmp r0, #0x72
+ beq _0224261C
+ cmp r0, #0x7c
+ beq _0224261C
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02242760 ; =0x00002DF8
+ mov r2, #0
+ strh r2, [r1, r0]
+_0224261C:
+ ldr r0, _0224275C ; =0x0000213C
+ mov r1, #1
+ ldr r2, [r5, r0]
+ lsl r1, r1, #0x14
+ tst r1, r2
+ beq _0224262A
+_02242628:
+ b _0224274A
+_0224262A:
+ add r0, r0, #4
+ ldr r1, [r5, r0]
+ mov r0, #4
+ tst r0, r1
+ beq _02242668
+ ldr r1, [r5, #0x6c]
+ ldr r0, _02242750 ; =0x00003044
+ lsl r1, r1, #1
+ add r2, r5, r1
+ add r1, r0, #0
+ ldr r3, [r5, r0]
+ add r1, #0x20
+ strh r3, [r2, r1]
+ ldr r1, [r5, #0x6c]
+ ldr r3, [r5, #0x64]
+ lsl r1, r1, #1
+ add r2, r5, r1
+ add r1, r0, #0
+ add r1, #0x28
+ strh r3, [r2, r1]
+ ldr r1, [r5, #0x6c]
+ lsl r1, r1, #1
+ add r2, r5, r1
+ add r1, r0, #0
+ add r1, #0x30
+ strh r4, [r2, r1]
+ sub r1, r0, #4
+ ldr r1, [r5, r1]
+ add r0, r0, #4
+ str r1, [r5, r0]
+ b _02242692
+_02242668:
+ ldr r0, [r5, #0x6c]
+ ldr r3, _02242764 ; =0x00003064
+ lsl r0, r0, #1
+ mov r1, #0
+ add r0, r5, r0
+ strh r1, [r0, r3]
+ ldr r2, [r5, #0x6c]
+ mov r0, #0xff
+ lsl r2, r2, #1
+ add r6, r5, r2
+ add r2, r3, #0
+ add r2, #8
+ strh r0, [r6, r2]
+ ldr r0, [r5, #0x6c]
+ lsl r0, r0, #1
+ add r2, r5, r0
+ add r0, r3, #0
+ add r0, #0x10
+ strh r1, [r2, r0]
+ sub r3, #0x1c
+ str r1, [r5, r3]
+_02242692:
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r2, [r5, r0]
+ mov r1, #0x40
+ tst r1, r2
+ beq _02242726
+ add r0, #0x2c
+ ldr r0, [r5, r0]
+ ldr r2, _02242768 ; =0x801FDA49
+ tst r0, r2
+ bne _02242726
+ ldr r0, _02242750 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r1, r0, #4
+ add r3, r5, r1
+ ldr r1, _0224276C ; =0x000003E6
+ ldrh r3, [r3, r1]
+ cmp r3, #0x40
+ bgt _022426C8
+ bge _022426DC
+ cmp r3, #0x10
+ bgt _022426C2
+ beq _022426DC
+ b _02242702
+_022426C2:
+ cmp r3, #0x20
+ beq _022426DC
+ b _02242702
+_022426C8:
+ lsr r1, r2, #0x17
+ cmp r3, r1
+ bgt _022426D6
+ bge _022426DC
+ cmp r3, #0x80
+ beq _022426DC
+ b _02242702
+_022426D6:
+ lsr r1, r2, #0x16
+ cmp r3, r1
+ bne _02242702
+_022426DC:
+ ldr r1, [r5, #0x6c]
+ ldr r2, _02242770 ; =0x000030C4
+ lsl r1, r1, #1
+ mov r0, #0
+ add r1, r5, r1
+ strh r0, [r1, r2]
+ ldr r1, [r5, #0x6c]
+ mov r4, #0xff
+ lsl r1, r1, #1
+ add r3, r5, r1
+ add r1, r2, #0
+ add r1, #8
+ strh r4, [r3, r1]
+ ldr r1, [r5, #0x6c]
+ add r2, #0x10
+ lsl r1, r1, #1
+ add r1, r5, r1
+ strh r0, [r1, r2]
+ pop {r4, r5, r6, pc}
+_02242702:
+ ldr r1, [r5, #0x6c]
+ lsl r1, r1, #1
+ add r2, r5, r1
+ ldr r1, _02242770 ; =0x000030C4
+ strh r0, [r2, r1]
+ ldr r0, [r5, #0x6c]
+ ldr r3, [r5, #0x64]
+ lsl r0, r0, #1
+ add r2, r5, r0
+ add r0, r1, #0
+ add r0, #8
+ strh r3, [r2, r0]
+ ldr r0, [r5, #0x6c]
+ add r1, #0x10
+ lsl r0, r0, #1
+ add r0, r5, r0
+ strh r4, [r0, r1]
+ pop {r4, r5, r6, pc}
+_02242726:
+ ldr r1, [r5, #0x6c]
+ ldr r2, _02242770 ; =0x000030C4
+ lsl r1, r1, #1
+ mov r0, #0
+ add r1, r5, r1
+ strh r0, [r1, r2]
+ ldr r1, [r5, #0x6c]
+ mov r4, #0xff
+ lsl r1, r1, #1
+ add r3, r5, r1
+ add r1, r2, #0
+ add r1, #8
+ strh r4, [r3, r1]
+ ldr r1, [r5, #0x6c]
+ add r2, #0x10
+ lsl r1, r1, #1
+ add r1, r5, r1
+ strh r0, [r1, r2]
+_0224274A:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224274C: .word 0x00002160
+_02242750: .word 0x00003044
+_02242754: .word 0x000003E2
+_02242758: .word 0x000003E9
+_0224275C: .word 0x0000213C
+_02242760: .word 0x00002DF8
+_02242764: .word 0x00003064
+_02242768: .word 0x801FDA49
+_0224276C: .word 0x000003E6
+_02242770: .word 0x000030C4
+
+ thumb_func_start MOD11_02242774
+MOD11_02242774: ; 0x02242774
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x10
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02242790
+MOD11_02242790: ; 0x02242790
+ push {r3, r4, r5, lr}
+ ldr r2, _022427E0 ; =0x0000216C
+ add r5, r1, #0
+ ldr r0, [r5, r2]
+ mov r4, #0
+ cmp r0, #0
+ beq _022427C4
+ add r1, r2, #0
+ add r1, #0x11
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ beq _022427C2
+ ldr r1, [r5, #0x74]
+ cmp r1, #0xff
+ bne _022427BE
+ add r2, #0x10
+ ldrb r1, [r5, r2]
+ cmp r1, #1
+ beq _022427BE
+ mov r1, #1
+ lsl r1, r1, #0xe
+ tst r0, r1
+ beq _022427C4
+_022427BE:
+ mov r4, #1
+ b _022427C4
+_022427C2:
+ mov r4, #1
+_022427C4:
+ cmp r4, #1
+ bne _022427DA
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0x15
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_022427DA:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022427E0: .word 0x0000216C
+
+ thumb_func_start MOD11_022427E4
+MOD11_022427E4: ; 0x022427E4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x6c]
+ mov r3, #0
+ cmp r2, #0xff
+ bne _022427F4
+ add r0, r3, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022427F4:
+ mov r0, #0xc0
+ add r5, r2, #0
+ mul r5, r0
+ mov r1, #2
+ ldr r0, _02242864 ; =0x00002DB0
+ add r7, r4, r5
+ ldr r6, [r7, r0]
+ lsl r1, r1, #0x16
+ tst r1, r6
+ beq _0224285E
+ ldr r1, _02242868 ; =0x0000216C
+ mov r6, #2
+ lsl r6, r6, #0x16
+ ldr r1, [r4, r1]
+ lsr r6, r6, #9
+ tst r1, r6
+ bne _0224285E
+ ldr r1, [r4, #0x64]
+ cmp r2, r1
+ beq _0224285E
+ sub r0, #0x24
+ ldr r0, [r7, r0]
+ cmp r0, #0
+ beq _0224285E
+ mov r0, #0x1c
+ mul r0, r2
+ add r2, r4, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _0224283C
+ add r0, #8
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0224285E
+_0224283C:
+ ldr r0, _0224286C ; =0x00002D59
+ add r1, r4, r0
+ ldrsb r0, [r1, r5]
+ cmp r0, #0xc
+ bge _0224285E
+ add r0, r0, #1
+ strb r0, [r1, r5]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xf5
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r3, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0224285E:
+ add r0, r3, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02242864: .word 0x00002DB0
+_02242868: .word 0x0000216C
+_0224286C: .word 0x00002D59
+
+ thumb_func_start MOD11_02242870
+MOD11_02242870: ; 0x02242870
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r4, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD11_02249DA4
+ add r6, r0, #0
+ ldr r0, [r5, #0x6c]
+ cmp r0, #0xff
+ beq _0224290A
+ cmp r7, #0x37
+ bne _0224290A
+ ldr r1, _02242910 ; =0x0000216C
+ ldr r2, [r5, r1]
+ ldr r1, _02242914 ; =0x801FDA49
+ tst r1, r2
+ bne _0224290A
+ mov r1, #0x1c
+ mul r1, r0
+ mov r0, #0xb6
+ add r2, r5, r1
+ lsl r0, r0, #2
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _022428B8
+ add r0, #8
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0224290A
+_022428B8:
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ blx _s32_div_f
+ cmp r1, r6
+ bge _0224290A
+ ldr r0, _02242918 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224291C ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0224290A
+ ldr r0, [r5, #0x6c]
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ ldr r1, _02242920 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _0224290A
+ add r1, r5, #0
+ add r1, #0x94
+ str r0, [r1]
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0xe
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ mov r4, #1
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_0224290A:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02242910: .word 0x0000216C
+_02242914: .word 0x801FDA49
+_02242918: .word 0x00003044
+_0224291C: .word 0x000003E9
+_02242920: .word 0x00002D8C
+
+ thumb_func_start MOD11_02242924
+MOD11_02242924: ; 0x02242924
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r4, [r5, #0x5c]
+ str r0, [sp]
+ mov r7, #0
+ bl MOD11_0222FF84
+ cmp r4, r0
+ bge _02242994
+ add r6, r5, #0
+ add r6, #0x5c
+_0224293A:
+ mov r0, #0xc0
+ mul r0, r4
+ mov r1, #0xb7
+ add r0, r5, r0
+ lsl r1, r1, #6
+ ldr r2, [r0, r1]
+ ldr r1, _022429A0 ; =0x200400C0
+ tst r1, r2
+ bne _0224297E
+ ldr r1, _022429A4 ; =0x00002DC4
+ ldr r2, [r0, r1]
+ ldr r1, _022429A0 ; =0x200400C0
+ tst r1, r2
+ beq _0224297E
+ ldr r1, _022429A4 ; =0x00002DC4
+ ldr r2, [r0, r1]
+ ldr r1, _022429A8 ; =0xDFFBFF3F
+ and r2, r1
+ ldr r1, _022429A4 ; =0x00002DC4
+ str r2, [r0, r1]
+ ldr r2, _022429AC ; =0x0000011F
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x46
+ ldr r1, [r5, #0x5c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ ldr r0, [r5, #8]
+ mov r7, #1
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_0224297E:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+ cmp r7, #1
+ beq _02242994
+ ldr r0, [sp]
+ ldr r4, [r5, #0x5c]
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _0224293A
+_02242994:
+ cmp r7, #0
+ bne _0224299C
+ mov r0, #0
+ str r0, [r5, #0x5c]
+_0224299C:
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022429A0: .word 0x200400C0
+_022429A4: .word 0x00002DC4
+_022429A8: .word 0xDFFBFF3F
+_022429AC: .word 0x0000011F
+
+ thumb_func_start MOD11_022429B0
+MOD11_022429B0: ; 0x022429B0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r6, #0
+ bl MOD11_0222FF84
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ str r0, [sp, #4]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ add r2, r6, #0
+ bl MOD11_02249DA4
+ ldr r1, [r4, #8]
+ str r0, [sp]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD11_0224246C
+ cmp r0, #1
+ bne _022429E8
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022429E8:
+ add r5, r4, #0
+ add r5, #0x30
+_022429EC:
+ ldr r0, [r4, #0x30]
+ cmp r0, #3
+ bls _022429F4
+ b _02242B44
+_022429F4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02242A00: ; jump table
+ .short _02242A08 - _02242A00 - 2 ; case 0
+ .short _02242A38 - _02242A00 - 2 ; case 1
+ .short _02242AB8 - _02242A00 - 2 ; case 2
+ .short _02242B3C - _02242A00 - 2 ; case 3
+_02242A08:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _02242B5C ; =0x00002DB0
+ add r0, r4, r0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x16
+ tst r1, r2
+ beq _02242A30
+ ldr r1, _02242B60 ; =0x00003044
+ ldr r1, [r4, r1]
+ cmp r1, #0x63
+ beq _02242A30
+ ldr r1, _02242B5C ; =0x00002DB0
+ ldr r2, [r0, r1]
+ ldr r1, _02242B64 ; =0xFF7FFFFF
+ and r2, r1
+ ldr r1, _02242B5C ; =0x00002DB0
+ str r2, [r0, r1]
+_02242A30:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02242B44
+_02242A38:
+ ldr r3, [r4, #0x6c]
+ cmp r3, #0xff
+ beq _02242AB0
+ ldr r0, [sp, #4]
+ cmp r0, #0x57
+ bne _02242AB0
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02242AB0
+ ldr r0, _02242B68 ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02242AB0
+ ldr r2, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r2
+ add r1, r4, r0
+ mov r0, #0xbb
+ lsl r0, r0, #2
+ ldr r7, [r1, r0]
+ cmp r7, #0
+ beq _02242AB0
+ cmp r2, r3
+ beq _02242AB0
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _02242B6C ; =0x00002D8C
+ ldr r1, [r2, r0]
+ add r0, r0, #4
+ ldr r0, [r2, r0]
+ cmp r1, r0
+ bhs _02242AB0
+ cmp r1, #0
+ beq _02242AB0
+ ldr r1, [sp]
+ neg r0, r7
+ bl MOD11_022476C0
+ ldr r1, _02242B70 ; =0x0000215C
+ mov r2, #0xd5
+ str r0, [r4, r1]
+ mov r0, #0x46
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r6, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_02242AB0:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02242B44
+_02242AB8:
+ ldr r0, [sp, #4]
+ cmp r0, #0x61
+ bne _02242B34
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02242B34
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02242B34
+ ldr r0, _02242B68 ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02242B34
+ ldr r0, _02242B60 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ mov r0, #0x3e
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ cmp r0, #2
+ beq _02242B34
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _02242B6C ; =0x00002D8C
+ add r0, r4, r0
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ beq _02242B34
+ ldr r1, _02242B74 ; =0x00002D90
+ ldr r1, [r0, r1]
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r1
+ mov r1, #0xa
+ bl MOD11_022476C0
+ ldr r1, _02242B70 ; =0x0000215C
+ mov r2, #0xd6
+ str r0, [r4, r1]
+ mov r0, #0x46
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r6, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_02242B34:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02242B44
+_02242B3C:
+ mov r0, #0
+ str r0, [r4, #0x30]
+ str r0, [r4, #0x34]
+ mov r6, #2
+_02242B44:
+ cmp r6, #0
+ bne _02242B4A
+ b _022429EC
+_02242B4A:
+ cmp r6, #1
+ bne _02242B54
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02242B54:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02242B5C: .word 0x00002DB0
+_02242B60: .word 0x00003044
+_02242B64: .word 0xFF7FFFFF
+_02242B68: .word 0x0000213C
+_02242B6C: .word 0x00002D8C
+_02242B70: .word 0x0000215C
+_02242B74: .word 0x00002D90
+
+ thumb_func_start MOD11_02242B78
+MOD11_02242B78: ; 0x02242B78
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r7, r1, #0
+ str r2, [sp, #4]
+ add r1, r2, #0
+ add r2, r3, #0
+ str r0, [sp]
+ bl MOD11_02230014
+ ldr r1, [sp, #4]
+ mov r2, #0xc0
+ add r5, r1, #0
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ add r1, r7, r1
+ mul r5, r2
+ str r1, [sp, #0x18]
+ mov r1, #5
+ mov r2, #0
+ add r4, r0, #0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x18]
+ mov r2, #0
+ strh r0, [r1, r5]
+ add r0, r4, #0
+ mov r1, #0xa4
+ bl FUN_020671BC
+ ldr r1, _02242F4C ; =0x00002D42
+ add r2, r7, r5
+ strh r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa5
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02242F50 ; =0x00002D44
+ add r2, r7, r5
+ strh r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa6
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02242F54 ; =0x00002D46
+ add r2, r7, r5
+ strh r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa7
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02242F58 ; =0x00002D48
+ add r2, r7, r5
+ strh r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa8
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, r7, r5
+ ldr r2, _02242F5C ; =0x00002D4A
+ str r1, [sp, #0xc]
+ strh r0, [r1, r2]
+ add r0, r1, #0
+ mov r6, #0
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x10]
+_02242C02:
+ add r1, r6, #0
+ add r0, r4, #0
+ add r1, #0x36
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r2, [sp, #0x14]
+ ldr r1, _02242F60 ; =0x00002D4C
+ strh r0, [r2, r1]
+ add r1, r6, #0
+ add r0, r4, #0
+ add r1, #0x3a
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r2, [sp, #0x10]
+ ldr r1, _02242F64 ; =0x00002D6C
+ strb r0, [r2, r1]
+ add r1, r6, #0
+ add r0, r4, #0
+ add r1, #0x3e
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r2, [sp, #0x10]
+ ldr r1, _02242F68 ; =0x00002D70
+ add r6, r6, #1
+ strb r0, [r2, r1]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #2
+ str r0, [sp, #0x14]
+ add r0, r2, #0
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r6, #4
+ blt _02242C02
+ add r0, r1, #0
+ sub r0, #0x1c
+ add r6, r7, r0
+ add r0, r4, #0
+ mov r1, #0x46
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, [r6, r5]
+ mov r2, #0x1f
+ bic r1, r2
+ mov r2, #0x1f
+ and r0, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x47
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x1b
+ ldr r2, [r6, r5]
+ ldr r1, _02242F6C ; =0xFFFFFC1F
+ lsr r0, r0, #0x16
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x48
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x1b
+ ldr r2, [r6, r5]
+ ldr r1, _02242F70 ; =0xFFFF83FF
+ lsr r0, r0, #0x11
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x49
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x1b
+ ldr r2, [r6, r5]
+ ldr r1, _02242F74 ; =0xFFF07FFF
+ lsr r0, r0, #0xc
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x4a
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x1b
+ ldr r2, [r6, r5]
+ ldr r1, _02242F78 ; =0xFE0FFFFF
+ lsr r0, r0, #7
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x4b
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x1b
+ ldr r2, [r6, r5]
+ ldr r1, _02242F7C ; =0xC1FFFFFF
+ lsr r0, r0, #2
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r2, [r6, r5]
+ ldr r1, _02242F80 ; =0xBFFFFFFF
+ lsl r0, r0, #0x1f
+ and r1, r2
+ lsr r0, r0, #1
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x4d
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r2, [r6, r5]
+ ldr r1, _02242F84 ; =0x7FFFFFFF
+ lsl r0, r0, #0x1f
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ ldr r0, _02242F88 ; =0x0000213C
+ ldr r1, [r7, r0]
+ mov r0, #1
+ lsl r0, r0, #8
+ tst r0, r1
+ bne _02242D2E
+ ldr r0, _02242F8C ; =0x00002D58
+ mov r2, #0
+ mov r1, #6
+_02242D20:
+ ldr r3, [sp, #0xc]
+ add r2, r2, #1
+ strb r1, [r3, r0]
+ add r3, r3, #1
+ str r3, [sp, #0xc]
+ cmp r2, #8
+ blt _02242D20
+_02242D2E:
+ ldr r0, _02242F90 ; =0x00002D68
+ mov r1, #1
+ add r0, r7, r0
+ ldr r2, [r0, r5]
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #2
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #4
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #8
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #0x10
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #0x20
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #0x40
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #0x80
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ ldr r1, _02242F94 ; =0xFFFFFEFF
+ and r1, r2
+ str r1, [r0, r5]
+ ldr r2, [r0, r5]
+ ldr r1, _02242F98 ; =0xFFFFFDFF
+ and r1, r2
+ str r1, [r0, r5]
+ ldr r2, [r0, r5]
+ ldr r1, _02242F9C ; =0xFFFFFBFF
+ and r1, r2
+ str r1, [r0, r5]
+ add r0, r4, #0
+ mov r1, #0xb0
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02242FA0 ; =0x00002D64
+ add r2, r7, r5
+ strb r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xb1
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02242FA4 ; =0x00002D65
+ add r2, r7, r5
+ strb r0, [r2, r1]
+ add r1, #0x59
+ add r0, r7, r1
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ bl FUN_020689E0
+ ldr r1, [sp, #0x1c]
+ mov r2, #0xf
+ ldrb r1, [r1, r5]
+ bic r1, r2
+ mov r2, #0xf
+ and r0, r2
+ orr r1, r0
+ ldr r0, [sp, #0x1c]
+ strb r1, [r0, r5]
+ ldr r0, _02242FA8 ; =0x00002D66
+ add r6, r7, r0
+ add r0, r4, #0
+ bl FUN_02068A80
+ ldrb r1, [r6, r5]
+ mov r2, #0x20
+ lsl r0, r0, #0x1f
+ bic r1, r2
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ strb r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020671BC
+ ldrb r1, [r6, r5]
+ mov r2, #0x1f
+ lsl r0, r0, #0x18
+ bic r1, r2
+ lsr r2, r0, #0x18
+ mov r0, #0x1f
+ and r0, r2
+ orr r0, r1
+ strb r0, [r6, r5]
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ beq _02242E24
+ ldr r2, _02242FAC ; =0x00002D67
+ mov r0, #0
+ add r3, r7, r5
+ add r1, r2, #0
+ strb r0, [r3, r2]
+ add r2, #0x51
+ add r1, #0x45
+ add r2, r7, r2
+ str r0, [r3, r1]
+ add r1, r2, r5
+ str r1, [sp, #8]
+ strh r0, [r2, r5]
+ b _02242E58
+_02242E24:
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02242FAC ; =0x00002D67
+ add r2, r7, r5
+ strb r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02242FB0 ; =0x00002DAC
+ add r2, r7, r5
+ str r0, [r2, r1]
+ add r1, #0xc
+ add r6, r7, r1
+ add r0, r6, r5
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r6, r5]
+_02242E58:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ add r6, r0, #0
+ mul r6, r1
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02242FB4 ; =0x00002D74
+ add r2, r7, r6
+ strb r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #9
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02242FB8 ; =0x00002D75
+ add r2, r7, r6
+ strb r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02242FBC ; =0x00002D8C
+ add r2, r7, r6
+ str r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa3
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02242FC0 ; =0x00002D90
+ add r2, r7, r6
+ str r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #8
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02242FC4 ; =0x00002DA4
+ add r2, r7, r6
+ str r0, [r2, r1]
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl FUN_020671BC
+ ldr r1, _02242FC8 ; =0x00002DA8
+ add r2, r7, r6
+ str r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _02242FCC ; =0x00002DB4
+ add r2, r7, r6
+ str r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0x9c
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x1c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1c
+ ldrb r1, [r1, r5]
+ mov r2, #0xf0
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r1, r0
+ ldr r0, [sp, #0x1c]
+ mov r2, #0
+ strb r1, [r0, r5]
+ add r0, r4, #0
+ mov r1, #0x9a
+ bl FUN_020671BC
+ ldr r1, _02242FD0 ; =0x00002DBF
+ add r2, r7, r6
+ strb r0, [r2, r1]
+ mov r0, #5
+ bl FUN_02087A6C
+ mov r1, #0
+ mov r2, #5
+ str r0, [sp, #0x20]
+ bl FUN_02087A98
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x20]
+ ldrh r1, [r1, r5]
+ bl FUN_02087B78
+ ldr r1, _02242FD4 ; =0x00002D60
+ add r2, r7, r6
+ str r0, [r2, r1]
+ ldr r0, [sp, #0x20]
+ bl FUN_02087B0C
+ ldr r0, [sp, #0x20]
+ bl FUN_02087A84
+ ldr r2, _02242FD8 ; =0x00002D76
+ add r0, r4, #0
+ add r2, r7, r2
+ mov r1, #0x74
+ add r2, r2, r6
+ bl FUN_020671BC
+ ldr r2, _02242FDC ; =0x00002D94
+ add r0, r4, #0
+ add r2, r7, r2
+ mov r1, #0x8f
+ add r2, r2, r6
+ bl FUN_020671BC
+ ldr r0, _02242FE0 ; =0x00002DBC
+ b _02242FE4
+ .align 2, 0
+_02242F4C: .word 0x00002D42
+_02242F50: .word 0x00002D44
+_02242F54: .word 0x00002D46
+_02242F58: .word 0x00002D48
+_02242F5C: .word 0x00002D4A
+_02242F60: .word 0x00002D4C
+_02242F64: .word 0x00002D6C
+_02242F68: .word 0x00002D70
+_02242F6C: .word 0xFFFFFC1F
+_02242F70: .word 0xFFFF83FF
+_02242F74: .word 0xFFF07FFF
+_02242F78: .word 0xFE0FFFFF
+_02242F7C: .word 0xC1FFFFFF
+_02242F80: .word 0xBFFFFFFF
+_02242F84: .word 0x7FFFFFFF
+_02242F88: .word 0x0000213C
+_02242F8C: .word 0x00002D58
+_02242F90: .word 0x00002D68
+_02242F94: .word 0xFFFFFEFF
+_02242F98: .word 0xFFFFFDFF
+_02242F9C: .word 0xFFFFFBFF
+_02242FA0: .word 0x00002D64
+_02242FA4: .word 0x00002D65
+_02242FA8: .word 0x00002D66
+_02242FAC: .word 0x00002D67
+_02242FB0: .word 0x00002DAC
+_02242FB4: .word 0x00002D74
+_02242FB8: .word 0x00002D75
+_02242FBC: .word 0x00002D8C
+_02242FC0: .word 0x00002D90
+_02242FC4: .word 0x00002DA4
+_02242FC8: .word 0x00002DA8
+_02242FCC: .word 0x00002DB4
+_02242FD0: .word 0x00002DBF
+_02242FD4: .word 0x00002D60
+_02242FD8: .word 0x00002D76
+_02242FDC: .word 0x00002D94
+_02242FE0: .word 0x00002DBC
+_02242FE4:
+ mov r2, #0
+ add r1, r7, r6
+ strb r2, [r1, r0]
+ add r0, r0, #1
+ strb r2, [r1, r0]
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ bl MOD11_02230270
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r7, r0
+ ldr r0, _02243048 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl FUN_0206A92C
+ lsl r1, r4, #3
+ add r2, r7, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ beq _0224302C
+ ldr r0, [sp, #8]
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, _0224304C ; =0x00002DCC
+ add sp, #0x24
+ add r2, r7, r0
+ ldr r1, [r2, r5]
+ ldr r0, _02243050 ; =0xFFBFFFFF
+ and r0, r1
+ str r0, [r2, r5]
+ pop {r4, r5, r6, r7, pc}
+_0224302C:
+ ldr r0, [sp, #8]
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _02243042
+ ldr r0, _0224304C ; =0x00002DCC
+ add r2, r7, r0
+ mov r0, #1
+ ldr r1, [r2, r5]
+ lsl r0, r0, #0x16
+ orr r0, r1
+ str r0, [r2, r5]
+_02243042:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02243048: .word 0x0000219C
+_0224304C: .word 0x00002DCC
+_02243050: .word 0xFFBFFFFF
+
+ thumb_func_start MOD11_02243054
+MOD11_02243054: ; 0x02243054
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r2, #0
+ str r1, [sp]
+ add r1, r5, #0
+ add r2, r3, #0
+ bl MOD11_02230014
+ mov r1, #0xc0
+ mul r1, r5
+ str r1, [sp, #4]
+ mov r1, #0xa4
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431A8 ; =0x00002D42
+ strh r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa5
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431AC ; =0x00002D44
+ strh r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa6
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431B0 ; =0x00002D46
+ strh r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa7
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431B4 ; =0x00002D48
+ strh r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa8
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431B8 ; =0x00002D4A
+ strh r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431BC ; =0x00002D74
+ strb r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #9
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431C0 ; =0x00002D75
+ strb r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431C4 ; =0x00002D8C
+ str r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa3
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431C8 ; =0x00002D90
+ str r0, [r2, r1]
+ add r0, r1, #0
+ add r0, #0x20
+ ldr r2, [r2, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r2
+ bne _022431A4
+ mov r0, #0xc0
+ mul r0, r5
+ ldr r2, [sp]
+ str r0, [sp, #8]
+ add r7, r2, r0
+ add r1, #0x3c
+ add r0, r2, #0
+ add r0, r0, r1
+ mov r4, #0
+ add r5, r7, #0
+ str r0, [sp, #0xc]
+_02243142:
+ add r0, r4, #0
+ bl FUN_0206A92C
+ ldr r2, [sp, #0xc]
+ ldr r1, [sp, #8]
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1c
+ tst r0, r1
+ bne _02243186
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x36
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, _022431CC ; =0x00002D4C
+ mov r2, #0
+ strh r0, [r7, r1]
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x3a
+ bl FUN_020671BC
+ ldr r1, _022431D0 ; =0x00002D6C
+ mov r2, #0
+ strb r0, [r5, r1]
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x3e
+ bl FUN_020671BC
+ ldr r1, _022431D4 ; =0x00002D70
+ strb r0, [r5, r1]
+_02243186:
+ add r4, r4, #1
+ add r7, r7, #2
+ add r5, r5, #1
+ cmp r4, #4
+ blt _02243142
+ add r0, r6, #0
+ mov r1, #8
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431D8 ; =0x00002DA4
+ str r0, [r2, r1]
+_022431A4:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022431A8: .word 0x00002D42
+_022431AC: .word 0x00002D44
+_022431B0: .word 0x00002D46
+_022431B4: .word 0x00002D48
+_022431B8: .word 0x00002D4A
+_022431BC: .word 0x00002D74
+_022431C0: .word 0x00002D75
+_022431C4: .word 0x00002D8C
+_022431C8: .word 0x00002D90
+_022431CC: .word 0x00002D4C
+_022431D0: .word 0x00002D6C
+_022431D4: .word 0x00002D70
+_022431D8: .word 0x00002DA4
+
+ thumb_func_start MOD11_022431DC
+MOD11_022431DC: ; 0x022431DC
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl LoadFromNARC_7
+ mov r1, #0x19
+ lsl r1, r1, #6
+ cmp r0, r1
+ blo _022431F8
+ bl ErrorHandling
+_022431F8:
+ add r0, r5, #0
+ add r0, #0xac
+ str r4, [r0]
+ add r0, r5, #0
+ add r0, #0xb0
+ str r6, [r0]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x27
+ lsl r0, r0, #8
+ add r0, r5, r0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl LoadFromNARC
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0224321C
+MOD11_0224321C: ; 0x0224321C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl LoadFromNARC_7
+ mov r1, #0x19
+ lsl r1, r1, #6
+ cmp r0, r1
+ blo _02243238
+ bl ErrorHandling
+_02243238:
+ add r0, r5, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ cmp r0, #4
+ blt _02243246
+ bl ErrorHandling
+_02243246:
+ add r1, r5, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r0, #0xac
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r0, [r0]
+ add r1, #0xbc
+ str r0, [r1]
+ add r1, r5, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r0, #0xb0
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r0, [r0]
+ add r1, #0xcc
+ str r0, [r1]
+ add r1, r5, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r0, #0xb4
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r0, [r0]
+ add r1, #0xdc
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ add r2, r6, #0
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0xb8
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xac
+ str r4, [r0]
+ add r0, r5, #0
+ add r0, #0xb0
+ str r6, [r0]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x27
+ lsl r0, r0, #8
+ add r0, r5, r0
+ add r1, r4, #0
+ bl LoadFromNARC
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_022432B4
+MOD11_022432B4: ; 0x022432B4
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ cmp r1, #0
+ beq _022432FE
+ add r1, r4, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ sub r2, r1, #1
+ add r1, r4, #0
+ add r1, #0xb8
+ str r2, [r1]
+ add r1, r4, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ lsl r2, r1, #2
+ add r1, r4, r2
+ add r2, r4, r2
+ add r1, #0xbc
+ add r2, #0xcc
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl MOD11_022431DC
+ add r0, r4, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ add r0, #0xdc
+ ldr r0, [r0]
+ add r4, #0xb4
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_022432FE:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02243304
+MOD11_02243304: ; 0x02243304
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ lsl r0, r1, #6
+ lsl r6, r2, #4
+ add r1, r4, r0
+ add r5, r1, r6
+ mov r1, #0x22
+ add r7, r3, #0
+ mov r3, #0
+ lsl r1, r1, #8
+_02243318:
+ ldrb r2, [r5, r1]
+ cmp r2, #0
+ bne _0224332C
+ add r0, r4, r0
+ add r0, r0, r6
+ add r1, r0, r3
+ mov r0, #0x22
+ lsl r0, r0, #8
+ strb r7, [r1, r0]
+ b _02243334
+_0224332C:
+ add r3, r3, #1
+ add r5, r5, #1
+ cmp r3, #0x10
+ blt _02243318
+_02243334:
+ cmp r3, #0x10
+ blt _0224333C
+ bl ErrorHandling
+_0224333C:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02243340
+MOD11_02243340: ; 0x02243340
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ str r2, [sp]
+ add r4, r3, #0
+ bne _02243350
+ bl ErrorHandling
+_02243350:
+ ldr r0, [sp]
+ lsl r6, r5, #6
+ lsl r5, r0, #4
+ add r0, r7, r6
+ add r3, r0, r5
+ mov r0, #0x22
+ mov r2, #0
+ lsl r0, r0, #8
+_02243360:
+ ldrb r1, [r3, r0]
+ cmp r4, r1
+ bne _02243376
+ add r1, r7, r6
+ add r1, r1, r5
+ add r3, r1, r2
+ mov r1, #0x22
+ mov r0, #0
+ lsl r1, r1, #8
+ strb r0, [r3, r1]
+ b _0224337E
+_02243376:
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r2, #0x10
+ blt _02243360
+_0224337E:
+ cmp r2, #0x10
+ blt _02243386
+ bl ErrorHandling
+_02243386:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02243388
+MOD11_02243388: ; 0x02243388
+ push {r3, r4, r5, r6, r7, lr}
+ mov r2, #0
+ mov r4, #0x22
+ mov lr, r0
+ mov ip, r2
+ add r7, r0, #0
+ add r6, r2, #0
+ lsl r4, r4, #8
+_02243398:
+ mov r0, #0
+ add r3, r7, #0
+_0224339C:
+ add r1, r6, #0
+_0224339E:
+ add r5, r3, r1
+ ldrb r5, [r5, r4]
+ add r1, r1, #1
+ add r2, r2, r5
+ cmp r1, #0x10
+ blt _0224339E
+ add r0, r0, #1
+ add r3, #0x10
+ cmp r0, #4
+ blt _0224339C
+ mov r0, ip
+ add r0, r0, #1
+ add r7, #0x40
+ mov ip, r0
+ cmp r0, #4
+ blt _02243398
+ cmp r2, #0
+ bne _022433CA
+ ldr r1, _022433D8 ; =0x00003148
+ mov r3, #0
+ mov r0, lr
+ str r3, [r0, r1]
+_022433CA:
+ cmp r2, #0
+ bne _022433D2
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022433D2:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022433D8: .word 0x00003148
+
+ thumb_func_start MOD11_022433DC
+MOD11_022433DC: ; 0x022433DC
+ push {r3, lr}
+ ldr r1, _022433F8 ; =0x00003148
+ ldr r2, [r0, r1]
+ add r2, r2, #1
+ str r2, [r0, r1]
+ ldr r1, [r0, r1]
+ ldr r0, _022433FC ; =0x00000708
+ cmp r1, r0
+ ble _022433F4
+ mov r0, #1
+ bl FUN_020336A0
+_022433F4:
+ pop {r3, pc}
+ nop
+_022433F8: .word 0x00003148
+_022433FC: .word 0x00000708
+
+ thumb_func_start MOD11_02243400
+MOD11_02243400: ; 0x02243400
+ push {r3, r4}
+ lsl r1, r1, #8
+ add r4, r0, r1
+ mov r3, #0
+ mov r0, #0x23
+ mov r1, #1
+ add r2, r3, #0
+ lsl r0, r0, #8
+ lsl r1, r1, #8
+_02243412:
+ add r3, r3, #1
+ strb r2, [r4, r0]
+ add r4, r4, #1
+ cmp r3, r1
+ blt _02243412
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD11_02243420
+MOD11_02243420: ; 0x02243420
+ push {r4, r5, r6, lr}
+ mov r4, #0xb5
+ lsl r4, r4, #6
+ add r5, r0, r4
+ mov r6, #0xc0
+ add r4, r1, #0
+ mul r4, r6
+ add r4, r5, r4
+ cmp r2, #0x64
+ bls _02243436
+ b _02243794
+_02243436:
+ add r5, r2, r2
+ add r5, pc
+ ldrh r5, [r5, #6]
+ lsl r5, r5, #0x10
+ asr r5, r5, #0x10
+ add pc, r5
+_02243442: ; jump table
+ .short _0224350C - _02243442 - 2 ; case 0
+ .short _02243510 - _02243442 - 2 ; case 1
+ .short _02243514 - _02243442 - 2 ; case 2
+ .short _02243518 - _02243442 - 2 ; case 3
+ .short _0224351C - _02243442 - 2 ; case 4
+ .short _02243520 - _02243442 - 2 ; case 5
+ .short _02243524 - _02243442 - 2 ; case 6
+ .short _02243524 - _02243442 - 2 ; case 7
+ .short _02243524 - _02243442 - 2 ; case 8
+ .short _02243524 - _02243442 - 2 ; case 9
+ .short _0224352E - _02243442 - 2 ; case 10
+ .short _02243536 - _02243442 - 2 ; case 11
+ .short _0224353E - _02243442 - 2 ; case 12
+ .short _02243546 - _02243442 - 2 ; case 13
+ .short _0224354E - _02243442 - 2 ; case 14
+ .short _02243556 - _02243442 - 2 ; case 15
+ .short _0224355E - _02243442 - 2 ; case 16
+ .short _02243566 - _02243442 - 2 ; case 17
+ .short _0224356C - _02243442 - 2 ; case 18
+ .short _0224356C - _02243442 - 2 ; case 19
+ .short _0224356C - _02243442 - 2 ; case 20
+ .short _0224356C - _02243442 - 2 ; case 21
+ .short _0224356C - _02243442 - 2 ; case 22
+ .short _0224356C - _02243442 - 2 ; case 23
+ .short _0224356C - _02243442 - 2 ; case 24
+ .short _0224356C - _02243442 - 2 ; case 25
+ .short _02243576 - _02243442 - 2 ; case 26
+ .short _0224357C - _02243442 - 2 ; case 27
+ .short _0224357C - _02243442 - 2 ; case 28
+ .short _02243582 - _02243442 - 2 ; case 29
+ .short _0224358C - _02243442 - 2 ; case 30
+ .short _02243596 - _02243442 - 2 ; case 31
+ .short _02243596 - _02243442 - 2 ; case 32
+ .short _02243596 - _02243442 - 2 ; case 33
+ .short _02243596 - _02243442 - 2 ; case 34
+ .short _022435A0 - _02243442 - 2 ; case 35
+ .short _022435A0 - _02243442 - 2 ; case 36
+ .short _022435A0 - _02243442 - 2 ; case 37
+ .short _022435A0 - _02243442 - 2 ; case 38
+ .short _022435AA - _02243442 - 2 ; case 39
+ .short _022435AA - _02243442 - 2 ; case 40
+ .short _022435AA - _02243442 - 2 ; case 41
+ .short _022435AA - _02243442 - 2 ; case 42
+ .short _022435BE - _02243442 - 2 ; case 43
+ .short _022435C4 - _02243442 - 2 ; case 44
+ .short _022435CA - _02243442 - 2 ; case 45
+ .short _022435DC - _02243442 - 2 ; case 46
+ .short _022435E8 - _02243442 - 2 ; case 47
+ .short _022435EC - _02243442 - 2 ; case 48
+ .short _022435F0 - _02243442 - 2 ; case 49
+ .short _02243606 - _02243442 - 2 ; case 50
+ .short _0224360A - _02243442 - 2 ; case 51
+ .short _0224360E - _02243442 - 2 ; case 52
+ .short _02243612 - _02243442 - 2 ; case 53
+ .short _02243616 - _02243442 - 2 ; case 54
+ .short _0224361A - _02243442 - 2 ; case 55
+ .short _02243620 - _02243442 - 2 ; case 56
+ .short _02243626 - _02243442 - 2 ; case 57
+ .short _0224362C - _02243442 - 2 ; case 58
+ .short _02243636 - _02243442 - 2 ; case 59
+ .short _0224363C - _02243442 - 2 ; case 60
+ .short _02243642 - _02243442 - 2 ; case 61
+ .short _0224364C - _02243442 - 2 ; case 62
+ .short _02243656 - _02243442 - 2 ; case 63
+ .short _02243660 - _02243442 - 2 ; case 64
+ .short _0224366A - _02243442 - 2 ; case 65
+ .short _02243674 - _02243442 - 2 ; case 66
+ .short _0224367E - _02243442 - 2 ; case 67
+ .short _02243688 - _02243442 - 2 ; case 68
+ .short _02243692 - _02243442 - 2 ; case 69
+ .short _0224369C - _02243442 - 2 ; case 70
+ .short _022436A6 - _02243442 - 2 ; case 71
+ .short _022436B0 - _02243442 - 2 ; case 72
+ .short _022436BA - _02243442 - 2 ; case 73
+ .short _022436C2 - _02243442 - 2 ; case 74
+ .short _022436CC - _02243442 - 2 ; case 75
+ .short _022436D6 - _02243442 - 2 ; case 76
+ .short _022436E0 - _02243442 - 2 ; case 77
+ .short _022436EA - _02243442 - 2 ; case 78
+ .short _022436F4 - _02243442 - 2 ; case 79
+ .short _022436FE - _02243442 - 2 ; case 80
+ .short _02243708 - _02243442 - 2 ; case 81
+ .short _02243712 - _02243442 - 2 ; case 82
+ .short _0224371C - _02243442 - 2 ; case 83
+ .short _02243726 - _02243442 - 2 ; case 84
+ .short _02243730 - _02243442 - 2 ; case 85
+ .short _0224373A - _02243442 - 2 ; case 86
+ .short _02243744 - _02243442 - 2 ; case 87
+ .short _0224374A - _02243442 - 2 ; case 88
+ .short _02243750 - _02243442 - 2 ; case 89
+ .short _02243756 - _02243442 - 2 ; case 90
+ .short _0224375C - _02243442 - 2 ; case 91
+ .short _02243762 - _02243442 - 2 ; case 92
+ .short _02243768 - _02243442 - 2 ; case 93
+ .short _0224376E - _02243442 - 2 ; case 94
+ .short _02243774 - _02243442 - 2 ; case 95
+ .short _0224377A - _02243442 - 2 ; case 96
+ .short _02243782 - _02243442 - 2 ; case 97
+ .short _02243794 - _02243442 - 2 ; case 98
+ .short _02243794 - _02243442 - 2 ; case 99
+ .short _0224378A - _02243442 - 2 ; case 100
+_0224350C:
+ ldrh r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243510:
+ ldrh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02243514:
+ ldrh r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_02243518:
+ ldrh r0, [r4, #6]
+ pop {r4, r5, r6, pc}
+_0224351C:
+ ldrh r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02243520:
+ ldrh r0, [r4, #0xa]
+ pop {r4, r5, r6, pc}
+_02243524:
+ sub r0, r2, #6
+ lsl r0, r0, #1
+ add r0, r4, r0
+ ldrh r0, [r0, #0xc]
+ pop {r4, r5, r6, pc}
+_0224352E:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_02243536:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_0224353E:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_02243546:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_0224354E:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #7
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_02243556:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #2
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_0224355E:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #1
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_02243566:
+ ldr r0, [r4, #0x14]
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_0224356C:
+ sub r2, #0x12
+ add r1, r4, r2
+ mov r0, #0x18
+ ldrsb r0, [r1, r0]
+ pop {r4, r5, r6, pc}
+_02243576:
+ add r4, #0x27
+ ldrb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224357C:
+ bl MOD11_0224C740
+ pop {r4, r5, r6, pc}
+_02243582:
+ add r4, #0x7e
+ ldrb r0, [r4]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ pop {r4, r5, r6, pc}
+_0224358C:
+ add r4, #0x26
+ ldrb r0, [r4]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_02243596:
+ sub r2, #0x1f
+ add r0, r4, r2
+ add r0, #0x2c
+ ldrb r0, [r0]
+ pop {r4, r5, r6, pc}
+_022435A0:
+ sub r2, #0x23
+ add r0, r4, r2
+ add r0, #0x30
+ ldrb r0, [r0]
+ pop {r4, r5, r6, pc}
+_022435AA:
+ sub r2, #0x27
+ lsl r0, r2, #1
+ add r1, r4, r2
+ add r0, r4, r0
+ add r1, #0x30
+ ldrh r0, [r0, #0xc]
+ ldrb r1, [r1]
+ bl FUN_0206AB30
+ pop {r4, r5, r6, pc}
+_022435BE:
+ add r4, #0x34
+ ldrb r0, [r4]
+ pop {r4, r5, r6, pc}
+_022435C4:
+ add r4, #0x35
+ ldrb r0, [r4]
+ pop {r4, r5, r6, pc}
+_022435CA:
+ mov r1, #0
+_022435CC:
+ ldrh r0, [r4, #0x36]
+ add r1, r1, #1
+ add r4, r4, #2
+ strh r0, [r3]
+ add r3, r3, #2
+ cmp r1, #0xb
+ blt _022435CC
+ b _02243798
+_022435DC:
+ add r4, #0x36
+ add r0, r3, #0
+ add r1, r4, #0
+ bl FUN_02021E28
+ b _02243798
+_022435E8:
+ ldr r0, [r4, #0x4c]
+ pop {r4, r5, r6, pc}
+_022435EC:
+ ldr r0, [r4, #0x50]
+ pop {r4, r5, r6, pc}
+_022435F0:
+ mov r1, #0
+_022435F2:
+ add r0, r4, #0
+ add r0, #0x54
+ ldrh r0, [r0]
+ add r1, r1, #1
+ add r4, r4, #2
+ strh r0, [r3]
+ add r3, r3, #2
+ cmp r1, #0xb
+ blt _022435F2
+ b _02243798
+_02243606:
+ ldr r0, [r4, #0x64]
+ pop {r4, r5, r6, pc}
+_0224360A:
+ ldr r0, [r4, #0x68]
+ pop {r4, r5, r6, pc}
+_0224360E:
+ ldr r0, [r4, #0x6c]
+ pop {r4, r5, r6, pc}
+_02243612:
+ ldr r0, [r4, #0x70]
+ pop {r4, r5, r6, pc}
+_02243616:
+ ldr r0, [r4, #0x74]
+ pop {r4, r5, r6, pc}
+_0224361A:
+ add r4, #0x78
+ ldrh r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243620:
+ add r4, #0x7c
+ ldrb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243626:
+ add r4, #0x7d
+ ldrb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224362C:
+ add r4, #0x7e
+ ldrb r0, [r4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ pop {r4, r5, r6, pc}
+_02243636:
+ add r4, #0x80
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224363C:
+ add r4, #0x84
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243642:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_0224364C:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_02243656:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_02243660:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_0224366A:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x13
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_02243674:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_0224367E:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0xe
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_02243688:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0xb
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_02243692:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #8
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_0224369C:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #5
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_022436A6:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #2
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_022436B0:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #1
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_022436BA:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_022436C2:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_022436CC:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1c
+ pop {r4, r5, r6, pc}
+_022436D6:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_022436E0:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_022436EA:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x13
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_022436F4:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_022436FE:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0xd
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_02243708:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0xa
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_02243712:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_0224371C:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #5
+ lsr r0, r0, #0x1c
+ pop {r4, r5, r6, pc}
+_02243726:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #4
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_02243730:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #3
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_0224373A:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #2
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_02243744:
+ add r4, #0x90
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224374A:
+ add r4, #0x94
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243750:
+ add r4, #0x98
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243756:
+ add r4, #0xa0
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224375C:
+ add r4, #0xa4
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243762:
+ add r4, #0xa8
+ ldrh r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243768:
+ add r4, #0xac
+ ldrh r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224376E:
+ add r4, #0xaa
+ ldrh r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243774:
+ add r4, #0xbc
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224377A:
+ ldr r0, [r4, #0x28]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_02243782:
+ ldr r0, [r4, #0x28]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_0224378A:
+ add r6, #0x78
+ ldr r2, [r0, r6]
+ bl MOD11_02243420
+ pop {r4, r5, r6, pc}
+_02243794:
+ bl ErrorHandling
+_02243798:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0224379C
+MOD11_0224379C: ; 0x0224379C
+ push {r4, r5, r6, lr}
+ add r5, r2, #0
+ mov r2, #0xb5
+ lsl r2, r2, #6
+ add r4, r0, r2
+ mov r6, #0xc0
+ add r2, r1, #0
+ mul r2, r6
+ add r2, r4, r2
+ cmp r5, #0x64
+ bls _022437B4
+ b _02243D9E
+_022437B4:
+ add r4, r5, r5
+ add r4, pc
+ ldrh r4, [r4, #6]
+ lsl r4, r4, #0x10
+ asr r4, r4, #0x10
+ add pc, r4
+_022437C0: ; jump table
+ .short _0224388A - _022437C0 - 2 ; case 0
+ .short _02243890 - _022437C0 - 2 ; case 1
+ .short _02243896 - _022437C0 - 2 ; case 2
+ .short _0224389C - _022437C0 - 2 ; case 3
+ .short _022438A2 - _022437C0 - 2 ; case 4
+ .short _022438A8 - _022437C0 - 2 ; case 5
+ .short _022438AE - _022437C0 - 2 ; case 6
+ .short _022438AE - _022437C0 - 2 ; case 7
+ .short _022438AE - _022437C0 - 2 ; case 8
+ .short _022438AE - _022437C0 - 2 ; case 9
+ .short _022438BA - _022437C0 - 2 ; case 10
+ .short _022438CC - _022437C0 - 2 ; case 11
+ .short _022438DE - _022437C0 - 2 ; case 12
+ .short _022438F0 - _022437C0 - 2 ; case 13
+ .short _02243902 - _022437C0 - 2 ; case 14
+ .short _02243914 - _022437C0 - 2 ; case 15
+ .short _02243926 - _022437C0 - 2 ; case 16
+ .short _02243938 - _022437C0 - 2 ; case 17
+ .short _02243948 - _022437C0 - 2 ; case 18
+ .short _02243948 - _022437C0 - 2 ; case 19
+ .short _02243948 - _022437C0 - 2 ; case 20
+ .short _02243948 - _022437C0 - 2 ; case 21
+ .short _02243948 - _022437C0 - 2 ; case 22
+ .short _02243948 - _022437C0 - 2 ; case 23
+ .short _02243948 - _022437C0 - 2 ; case 24
+ .short _02243948 - _022437C0 - 2 ; case 25
+ .short _02243954 - _022437C0 - 2 ; case 26
+ .short _0224395C - _022437C0 - 2 ; case 27
+ .short _02243964 - _022437C0 - 2 ; case 28
+ .short _0224396C - _022437C0 - 2 ; case 29
+ .short _02243984 - _022437C0 - 2 ; case 30
+ .short _0224399C - _022437C0 - 2 ; case 31
+ .short _0224399C - _022437C0 - 2 ; case 32
+ .short _0224399C - _022437C0 - 2 ; case 33
+ .short _0224399C - _022437C0 - 2 ; case 34
+ .short _022439A8 - _022437C0 - 2 ; case 35
+ .short _022439A8 - _022437C0 - 2 ; case 36
+ .short _022439A8 - _022437C0 - 2 ; case 37
+ .short _022439A8 - _022437C0 - 2 ; case 38
+ .short _022439B4 - _022437C0 - 2 ; case 39
+ .short _022439B4 - _022437C0 - 2 ; case 40
+ .short _022439B4 - _022437C0 - 2 ; case 41
+ .short _022439B4 - _022437C0 - 2 ; case 42
+ .short _022439BA - _022437C0 - 2 ; case 43
+ .short _022439C2 - _022437C0 - 2 ; case 44
+ .short _022439CA - _022437C0 - 2 ; case 45
+ .short _02243D9E - _022437C0 - 2 ; case 46
+ .short _022439DC - _022437C0 - 2 ; case 47
+ .short _022439E4 - _022437C0 - 2 ; case 48
+ .short _022439EA - _022437C0 - 2 ; case 49
+ .short _02243A00 - _022437C0 - 2 ; case 50
+ .short _02243A06 - _022437C0 - 2 ; case 51
+ .short _02243A0C - _022437C0 - 2 ; case 52
+ .short _02243A12 - _022437C0 - 2 ; case 53
+ .short _02243A18 - _022437C0 - 2 ; case 54
+ .short _02243A1E - _022437C0 - 2 ; case 55
+ .short _02243A26 - _022437C0 - 2 ; case 56
+ .short _02243A2E - _022437C0 - 2 ; case 57
+ .short _02243A36 - _022437C0 - 2 ; case 58
+ .short _02243A4E - _022437C0 - 2 ; case 59
+ .short _02243A56 - _022437C0 - 2 ; case 60
+ .short _02243A5E - _022437C0 - 2 ; case 61
+ .short _02243A76 - _022437C0 - 2 ; case 62
+ .short _02243A8E - _022437C0 - 2 ; case 63
+ .short _02243AA6 - _022437C0 - 2 ; case 64
+ .short _02243ABE - _022437C0 - 2 ; case 65
+ .short _02243AD6 - _022437C0 - 2 ; case 66
+ .short _02243AEE - _022437C0 - 2 ; case 67
+ .short _02243B06 - _022437C0 - 2 ; case 68
+ .short _02243B1E - _022437C0 - 2 ; case 69
+ .short _02243B36 - _022437C0 - 2 ; case 70
+ .short _02243B4E - _022437C0 - 2 ; case 71
+ .short _02243B66 - _022437C0 - 2 ; case 72
+ .short _02243B7E - _022437C0 - 2 ; case 73
+ .short _02243B94 - _022437C0 - 2 ; case 74
+ .short _02243BAC - _022437C0 - 2 ; case 75
+ .short _02243BC4 - _022437C0 - 2 ; case 76
+ .short _02243BDC - _022437C0 - 2 ; case 77
+ .short _02243BF4 - _022437C0 - 2 ; case 78
+ .short _02243C0C - _022437C0 - 2 ; case 79
+ .short _02243C24 - _022437C0 - 2 ; case 80
+ .short _02243C3C - _022437C0 - 2 ; case 81
+ .short _02243C54 - _022437C0 - 2 ; case 82
+ .short _02243C6C - _022437C0 - 2 ; case 83
+ .short _02243CE0 - _022437C0 - 2 ; case 84
+ .short _02243CF8 - _022437C0 - 2 ; case 85
+ .short _02243D10 - _022437C0 - 2 ; case 86
+ .short _02243D28 - _022437C0 - 2 ; case 87
+ .short _02243D30 - _022437C0 - 2 ; case 88
+ .short _02243D38 - _022437C0 - 2 ; case 89
+ .short _02243D40 - _022437C0 - 2 ; case 90
+ .short _02243D48 - _022437C0 - 2 ; case 91
+ .short _02243D50 - _022437C0 - 2 ; case 92
+ .short _02243D58 - _022437C0 - 2 ; case 93
+ .short _02243D60 - _022437C0 - 2 ; case 94
+ .short _02243D68 - _022437C0 - 2 ; case 95
+ .short _02243D70 - _022437C0 - 2 ; case 96
+ .short _02243D82 - _022437C0 - 2 ; case 97
+ .short _02243D9E - _022437C0 - 2 ; case 98
+ .short _02243D9E - _022437C0 - 2 ; case 99
+ .short _02243D94 - _022437C0 - 2 ; case 100
+_0224388A:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243890:
+ ldrh r0, [r3]
+ strh r0, [r2, #2]
+ pop {r4, r5, r6, pc}
+_02243896:
+ ldrh r0, [r3]
+ strh r0, [r2, #4]
+ pop {r4, r5, r6, pc}
+_0224389C:
+ ldrh r0, [r3]
+ strh r0, [r2, #6]
+ pop {r4, r5, r6, pc}
+_022438A2:
+ ldrh r0, [r3]
+ strh r0, [r2, #8]
+ pop {r4, r5, r6, pc}
+_022438A8:
+ ldrh r0, [r3]
+ strh r0, [r2, #0xa]
+ pop {r4, r5, r6, pc}
+_022438AE:
+ sub r0, r5, #6
+ lsl r0, r0, #1
+ ldrh r1, [r3]
+ add r0, r2, r0
+ strh r1, [r0, #0xc]
+ pop {r4, r5, r6, pc}
+_022438BA:
+ ldr r4, [r2, #0x14]
+ mov r0, #0x1f
+ bic r4, r0
+ ldrb r1, [r3]
+ mov r0, #0x1f
+ and r0, r1
+ orr r0, r4
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_022438CC:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C78 ; =0xFFFFFC1F
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x16
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_022438DE:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C7C ; =0xFFFF83FF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x11
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_022438F0:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C80 ; =0xFFF07FFF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0xc
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_02243902:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C84 ; =0xFE0FFFFF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #7
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_02243914:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C88 ; =0xC1FFFFFF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #2
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_02243926:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C8C ; =0xBFFFFFFF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #1
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_02243938:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C90 ; =0x7FFFFFFF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_02243948:
+ mov r0, #0
+ ldrsb r1, [r3, r0]
+ sub r5, #0x12
+ add r0, r2, r5
+ strb r1, [r0, #0x18]
+ pop {r4, r5, r6, pc}
+_02243954:
+ ldrb r0, [r3]
+ add r2, #0x27
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_0224395C:
+ ldrb r0, [r3]
+ add r2, #0x24
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243964:
+ ldrb r0, [r3]
+ add r2, #0x25
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_0224396C:
+ add r0, r2, #0
+ add r0, #0x7e
+ ldrb r4, [r0]
+ ldrb r1, [r3]
+ mov r0, #0xf
+ bic r4, r0
+ mov r0, #0xf
+ and r0, r1
+ orr r0, r4
+ add r2, #0x7e
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243984:
+ add r0, r2, #0
+ add r0, #0x26
+ ldrb r1, [r0]
+ mov r0, #0x20
+ add r2, #0x26
+ bic r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_0224399C:
+ sub r5, #0x1f
+ add r0, r2, r5
+ ldrb r1, [r3]
+ add r0, #0x2c
+ strb r1, [r0]
+ pop {r4, r5, r6, pc}
+_022439A8:
+ sub r5, #0x23
+ add r0, r2, r5
+ ldrb r1, [r3]
+ add r0, #0x30
+ strb r1, [r0]
+ pop {r4, r5, r6, pc}
+_022439B4:
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+_022439BA:
+ ldrb r0, [r3]
+ add r2, #0x34
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_022439C2:
+ ldrb r0, [r3]
+ add r2, #0x35
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_022439CA:
+ mov r1, #0
+_022439CC:
+ ldrh r0, [r3]
+ add r1, r1, #1
+ add r3, r3, #2
+ strh r0, [r2, #0x36]
+ add r2, r2, #2
+ cmp r1, #0xb
+ blt _022439CC
+ pop {r4, r5, r6, pc}
+_022439DC:
+ mov r0, #0
+ ldrsh r0, [r3, r0]
+ str r0, [r2, #0x4c]
+ pop {r4, r5, r6, pc}
+_022439E4:
+ ldrh r0, [r3]
+ str r0, [r2, #0x50]
+ pop {r4, r5, r6, pc}
+_022439EA:
+ mov r4, #0
+_022439EC:
+ ldrh r1, [r3]
+ add r0, r2, #0
+ add r0, #0x54
+ add r4, r4, #1
+ strh r1, [r0]
+ add r3, r3, #2
+ add r2, r2, #2
+ cmp r4, #0xb
+ blt _022439EC
+ pop {r4, r5, r6, pc}
+_02243A00:
+ ldr r0, [r3]
+ str r0, [r2, #0x64]
+ pop {r4, r5, r6, pc}
+_02243A06:
+ ldr r0, [r3]
+ str r0, [r2, #0x68]
+ pop {r4, r5, r6, pc}
+_02243A0C:
+ ldr r0, [r3]
+ str r0, [r2, #0x6c]
+ pop {r4, r5, r6, pc}
+_02243A12:
+ ldr r0, [r3]
+ str r0, [r2, #0x70]
+ pop {r4, r5, r6, pc}
+_02243A18:
+ ldr r0, [r3]
+ str r0, [r2, #0x74]
+ pop {r4, r5, r6, pc}
+_02243A1E:
+ ldrh r0, [r3]
+ add r2, #0x78
+ strh r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A26:
+ ldrb r0, [r3]
+ add r2, #0x7c
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A2E:
+ ldrb r0, [r3]
+ add r2, #0x7d
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A36:
+ add r0, r2, #0
+ add r0, #0x7e
+ ldrb r1, [r0]
+ mov r0, #0xf0
+ add r2, #0x7e
+ bic r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A4E:
+ ldr r0, [r3]
+ add r2, #0x80
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A56:
+ ldr r0, [r3]
+ add r2, #0x84
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A5E:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r4, [r0]
+ mov r0, #7
+ bic r4, r0
+ ldrb r1, [r3]
+ mov r0, #7
+ add r2, #0x88
+ and r0, r1
+ orr r0, r4
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A76:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ mov r0, #0x38
+ bic r1, r0
+ ldrb r0, [r3]
+ add r2, #0x88
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A8E:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ mov r0, #0xc0
+ bic r1, r0
+ ldrb r0, [r3]
+ add r2, #0x88
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x18
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243AA6:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243C94 ; =0xFFFFF8FF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x15
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243ABE:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243C98 ; =0xFFFFE7FF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x13
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243AD6:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243C9C ; =0xFFFF9FFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x11
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243AEE:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243CA0 ; =0xFFFC7FFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xe
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B06:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243CA4 ; =0xFFE3FFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xb
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B1E:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243CA8 ; =0xFF1FFFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #8
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B36:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243CAC ; =0xF8FFFFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #5
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B4E:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243CB0 ; =0xC7FFFFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #2
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B66:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243C8C ; =0xBFFFFFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #1
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B7E:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243C90 ; =0x7FFFFFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B94:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r4, [r0]
+ mov r0, #3
+ bic r4, r0
+ ldrb r1, [r3]
+ mov r0, #3
+ add r2, #0x8c
+ and r0, r1
+ orr r0, r4
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243BAC:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ mov r0, #0x3c
+ bic r1, r0
+ ldrb r0, [r3]
+ add r2, #0x8c
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243BC4:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ mov r0, #0xc0
+ bic r1, r0
+ ldrb r0, [r3]
+ add r2, #0x8c
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x18
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243BDC:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CB4 ; =0xFFFFFCFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x16
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243BF4:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CB8 ; =0xFFFFE3FF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x13
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243C0C:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CBC ; =0xFFFF1FFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x10
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243C24:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CC0 ; =0xFFF8FFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xd
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243C3C:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CC4 ; =0xFFC7FFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xa
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243C54:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CC8 ; =0xFFBFFFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #9
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243C6C:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CCC ; =0xF87FFFFF
+ b _02243CD0
+ nop
+_02243C78: .word 0xFFFFFC1F
+_02243C7C: .word 0xFFFF83FF
+_02243C80: .word 0xFFF07FFF
+_02243C84: .word 0xFE0FFFFF
+_02243C88: .word 0xC1FFFFFF
+_02243C8C: .word 0xBFFFFFFF
+_02243C90: .word 0x7FFFFFFF
+_02243C94: .word 0xFFFFF8FF
+_02243C98: .word 0xFFFFE7FF
+_02243C9C: .word 0xFFFF9FFF
+_02243CA0: .word 0xFFFC7FFF
+_02243CA4: .word 0xFFE3FFFF
+_02243CA8: .word 0xFF1FFFFF
+_02243CAC: .word 0xF8FFFFFF
+_02243CB0: .word 0xC7FFFFFF
+_02243CB4: .word 0xFFFFFCFF
+_02243CB8: .word 0xFFFFE3FF
+_02243CBC: .word 0xFFFF1FFF
+_02243CC0: .word 0xFFF8FFFF
+_02243CC4: .word 0xFFC7FFFF
+_02243CC8: .word 0xFFBFFFFF
+_02243CCC: .word 0xF87FFFFF
+_02243CD0:
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #5
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243CE0:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243DA4 ; =0xF7FFFFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #4
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243CF8:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243DA8 ; =0xEFFFFFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #3
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D10:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243DAC ; =0xDFFFFFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #2
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D28:
+ ldr r0, [r3]
+ add r2, #0x90
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D30:
+ ldr r0, [r3]
+ add r2, #0x94
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D38:
+ ldr r0, [r3]
+ add r2, #0x98
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D40:
+ ldr r0, [r3]
+ add r2, #0xa0
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D48:
+ ldr r0, [r3]
+ add r2, #0xa4
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D50:
+ ldrh r0, [r3]
+ add r2, #0xa8
+ strh r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D58:
+ ldrh r0, [r3]
+ add r2, #0xac
+ strh r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D60:
+ ldrh r0, [r3]
+ add r2, #0xaa
+ strh r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D68:
+ ldr r0, [r3]
+ add r2, #0xbc
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D70:
+ ldr r1, [r2, #0x28]
+ mov r0, #0x40
+ bic r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x19
+ orr r0, r1
+ str r0, [r2, #0x28]
+ pop {r4, r5, r6, pc}
+_02243D82:
+ ldr r1, [r2, #0x28]
+ mov r0, #0x80
+ bic r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x18
+ orr r0, r1
+ str r0, [r2, #0x28]
+ pop {r4, r5, r6, pc}
+_02243D94:
+ add r6, #0x78
+ ldr r2, [r0, r6]
+ bl MOD11_0224379C
+ pop {r4, r5, r6, pc}
+_02243D9E:
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02243DA4: .word 0xF7FFFFFF
+_02243DA8: .word 0xEFFFFFFF
+_02243DAC: .word 0xDFFFFFFF
+
+ thumb_func_start MOD11_02243DB0
+MOD11_02243DB0: ; 0x02243DB0
+ push {r4, lr}
+ mov r4, #0xb5
+ lsl r4, r4, #6
+ add r4, r0, r4
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r2, #0
+ add r0, r4, r0
+ add r2, r3, #0
+ bl MOD11_02243DC8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02243DC8
+MOD11_02243DC8: ; 0x02243DC8
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r5, r2, #0
+ cmp r1, #0x61
+ bls _02243DD4
+ b _02244200
+_02243DD4:
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02243DE0: ; jump table
+ .short _02244200 - _02243DE0 - 2 ; case 0
+ .short _02243EA4 - _02243DE0 - 2 ; case 1
+ .short _02243EAC - _02243DE0 - 2 ; case 2
+ .short _02243EB4 - _02243DE0 - 2 ; case 3
+ .short _02243EBC - _02243DE0 - 2 ; case 4
+ .short _02243EC4 - _02243DE0 - 2 ; case 5
+ .short _02244200 - _02243DE0 - 2 ; case 6
+ .short _02244200 - _02243DE0 - 2 ; case 7
+ .short _02244200 - _02243DE0 - 2 ; case 8
+ .short _02244200 - _02243DE0 - 2 ; case 9
+ .short _02243ECC - _02243DE0 - 2 ; case 10
+ .short _02243EE4 - _02243DE0 - 2 ; case 11
+ .short _02243EFA - _02243DE0 - 2 ; case 12
+ .short _02243F10 - _02243DE0 - 2 ; case 13
+ .short _02243F26 - _02243DE0 - 2 ; case 14
+ .short _02243F3C - _02243DE0 - 2 ; case 15
+ .short _02244200 - _02243DE0 - 2 ; case 16
+ .short _02244200 - _02243DE0 - 2 ; case 17
+ .short _02243F52 - _02243DE0 - 2 ; case 18
+ .short _02243F52 - _02243DE0 - 2 ; case 19
+ .short _02243F52 - _02243DE0 - 2 ; case 20
+ .short _02243F52 - _02243DE0 - 2 ; case 21
+ .short _02243F52 - _02243DE0 - 2 ; case 22
+ .short _02243F52 - _02243DE0 - 2 ; case 23
+ .short _02243F52 - _02243DE0 - 2 ; case 24
+ .short _02243F52 - _02243DE0 - 2 ; case 25
+ .short _02244200 - _02243DE0 - 2 ; case 26
+ .short _02244200 - _02243DE0 - 2 ; case 27
+ .short _02244200 - _02243DE0 - 2 ; case 28
+ .short _02244200 - _02243DE0 - 2 ; case 29
+ .short _02244200 - _02243DE0 - 2 ; case 30
+ .short _02243F70 - _02243DE0 - 2 ; case 31
+ .short _02243F70 - _02243DE0 - 2 ; case 32
+ .short _02243F70 - _02243DE0 - 2 ; case 33
+ .short _02243F70 - _02243DE0 - 2 ; case 34
+ .short _02243F96 - _02243DE0 - 2 ; case 35
+ .short _02243F96 - _02243DE0 - 2 ; case 36
+ .short _02243F96 - _02243DE0 - 2 ; case 37
+ .short _02243F96 - _02243DE0 - 2 ; case 38
+ .short _02244200 - _02243DE0 - 2 ; case 39
+ .short _02244200 - _02243DE0 - 2 ; case 40
+ .short _02244200 - _02243DE0 - 2 ; case 41
+ .short _02244200 - _02243DE0 - 2 ; case 42
+ .short _02243FA2 - _02243DE0 - 2 ; case 43
+ .short _02243FB0 - _02243DE0 - 2 ; case 44
+ .short _02244200 - _02243DE0 - 2 ; case 45
+ .short _02244200 - _02243DE0 - 2 ; case 46
+ .short _02243FD2 - _02243DE0 - 2 ; case 47
+ .short _02243FE4 - _02243DE0 - 2 ; case 48
+ .short _02244200 - _02243DE0 - 2 ; case 49
+ .short _02243FEC - _02243DE0 - 2 ; case 50
+ .short _02243FF4 - _02243DE0 - 2 ; case 51
+ .short _02244200 - _02243DE0 - 2 ; case 52
+ .short _02244200 - _02243DE0 - 2 ; case 53
+ .short _02244200 - _02243DE0 - 2 ; case 54
+ .short _02244200 - _02243DE0 - 2 ; case 55
+ .short _02244200 - _02243DE0 - 2 ; case 56
+ .short _02244200 - _02243DE0 - 2 ; case 57
+ .short _02244200 - _02243DE0 - 2 ; case 58
+ .short _02244200 - _02243DE0 - 2 ; case 59
+ .short _02244200 - _02243DE0 - 2 ; case 60
+ .short _02243FFC - _02243DE0 - 2 ; case 61
+ .short _0224401A - _02243DE0 - 2 ; case 62
+ .short _02244038 - _02243DE0 - 2 ; case 63
+ .short _02244056 - _02243DE0 - 2 ; case 64
+ .short _02244072 - _02243DE0 - 2 ; case 65
+ .short _0224408E - _02243DE0 - 2 ; case 66
+ .short _022440AA - _02243DE0 - 2 ; case 67
+ .short _022440C6 - _02243DE0 - 2 ; case 68
+ .short _022440E2 - _02243DE0 - 2 ; case 69
+ .short _022440FE - _02243DE0 - 2 ; case 70
+ .short _0224411A - _02243DE0 - 2 ; case 71
+ .short _02244200 - _02243DE0 - 2 ; case 72
+ .short _02244200 - _02243DE0 - 2 ; case 73
+ .short _02244200 - _02243DE0 - 2 ; case 74
+ .short _02244200 - _02243DE0 - 2 ; case 75
+ .short _02244200 - _02243DE0 - 2 ; case 76
+ .short _02244200 - _02243DE0 - 2 ; case 77
+ .short _02244136 - _02243DE0 - 2 ; case 78
+ .short _02244152 - _02243DE0 - 2 ; case 79
+ .short _0224416E - _02243DE0 - 2 ; case 80
+ .short _02244200 - _02243DE0 - 2 ; case 81
+ .short _02244200 - _02243DE0 - 2 ; case 82
+ .short _02244200 - _02243DE0 - 2 ; case 83
+ .short _02244200 - _02243DE0 - 2 ; case 84
+ .short _02244200 - _02243DE0 - 2 ; case 85
+ .short _02244200 - _02243DE0 - 2 ; case 86
+ .short _0224418A - _02243DE0 - 2 ; case 87
+ .short _02244198 - _02243DE0 - 2 ; case 88
+ .short _022441A6 - _02243DE0 - 2 ; case 89
+ .short _022441B4 - _02243DE0 - 2 ; case 90
+ .short _02244200 - _02243DE0 - 2 ; case 91
+ .short _02244200 - _02243DE0 - 2 ; case 92
+ .short _02244200 - _02243DE0 - 2 ; case 93
+ .short _02244200 - _02243DE0 - 2 ; case 94
+ .short _022441C2 - _02243DE0 - 2 ; case 95
+ .short _022441D0 - _02243DE0 - 2 ; case 96
+ .short _022441E8 - _02243DE0 - 2 ; case 97
+_02243EA4:
+ ldrh r0, [r4, #2]
+ add r0, r0, r5
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02243EAC:
+ ldrh r0, [r4, #4]
+ add r0, r0, r5
+ strh r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_02243EB4:
+ ldrh r0, [r4, #6]
+ add r0, r0, r5
+ strh r0, [r4, #6]
+ pop {r4, r5, r6, pc}
+_02243EBC:
+ ldrh r0, [r4, #8]
+ add r0, r0, r5
+ strh r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02243EC4:
+ ldrh r0, [r4, #0xa]
+ add r0, r0, r5
+ strh r0, [r4, #0xa]
+ pop {r4, r5, r6, pc}
+_02243ECC:
+ ldr r2, [r4, #0x14]
+ mov r1, #0x1f
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x1b
+ lsr r1, r1, #0x1b
+ add r2, r1, r5
+ mov r1, #0x1f
+ and r1, r2
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243EE4:
+ ldr r1, [r4, #0x14]
+ ldr r0, _02244208 ; =0xFFFFFC1F
+ and r0, r1
+ lsl r1, r1, #0x16
+ lsr r1, r1, #0x1b
+ add r1, r1, r5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x16
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243EFA:
+ ldr r1, [r4, #0x14]
+ ldr r0, _0224420C ; =0xFFFF83FF
+ and r0, r1
+ lsl r1, r1, #0x11
+ lsr r1, r1, #0x1b
+ add r1, r1, r5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x11
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243F10:
+ ldr r1, [r4, #0x14]
+ ldr r0, _02244210 ; =0xFFF07FFF
+ and r0, r1
+ lsl r1, r1, #0xc
+ lsr r1, r1, #0x1b
+ add r1, r1, r5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0xc
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243F26:
+ ldr r1, [r4, #0x14]
+ ldr r0, _02244214 ; =0xFE0FFFFF
+ and r0, r1
+ lsl r1, r1, #7
+ lsr r1, r1, #0x1b
+ add r1, r1, r5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #7
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243F3C:
+ ldr r1, [r4, #0x14]
+ ldr r0, _02244218 ; =0xC1FFFFFF
+ and r0, r1
+ lsl r1, r1, #2
+ lsr r1, r1, #0x1b
+ add r1, r1, r5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #2
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243F52:
+ add r4, #0x18
+ sub r1, #0x12
+ ldrsb r0, [r4, r1]
+ add r0, r5, r0
+ bpl _02243F62
+ mov r0, #0
+ strb r0, [r4, r1]
+ pop {r4, r5, r6, pc}
+_02243F62:
+ cmp r0, #0xc
+ ble _02243F6C
+ mov r0, #0xc
+ strb r0, [r4, r1]
+ pop {r4, r5, r6, pc}
+_02243F6C:
+ strb r0, [r4, r1]
+ pop {r4, r5, r6, pc}
+_02243F70:
+ add r6, r1, #0
+ sub r6, #0x1f
+ lsl r0, r6, #1
+ add r1, r4, r6
+ add r0, r4, r0
+ add r1, #0x30
+ ldrh r0, [r0, #0xc]
+ ldrb r1, [r1]
+ bl FUN_0206AB30
+ add r4, #0x2c
+ ldrb r1, [r4, r6]
+ add r1, r5, r1
+ cmp r1, r0
+ ble _02243F92
+ strb r0, [r4, r6]
+ pop {r4, r5, r6, pc}
+_02243F92:
+ strb r1, [r4, r6]
+ pop {r4, r5, r6, pc}
+_02243F96:
+ add r4, #0x30
+ sub r1, #0x23
+ ldrb r0, [r4, r1]
+ add r0, r0, r5
+ strb r0, [r4, r1]
+ pop {r4, r5, r6, pc}
+_02243FA2:
+ add r0, r4, #0
+ add r0, #0x34
+ ldrb r0, [r0]
+ add r4, #0x34
+ add r0, r0, r5
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243FB0:
+ add r0, r4, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ add r0, r0, r5
+ cmp r0, #0xff
+ ble _02243FC4
+ mov r0, #0xff
+ add r4, #0x35
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243FC4:
+ add r0, r4, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ add r4, #0x35
+ add r0, r0, r5
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243FD2:
+ ldr r0, [r4, #0x4c]
+ ldr r1, [r4, #0x50]
+ add r0, r0, r5
+ cmp r0, r1
+ bls _02243FE0
+ str r1, [r4, #0x4c]
+ pop {r4, r5, r6, pc}
+_02243FE0:
+ str r0, [r4, #0x4c]
+ pop {r4, r5, r6, pc}
+_02243FE4:
+ ldr r0, [r4, #0x50]
+ add r0, r0, r5
+ str r0, [r4, #0x50]
+ pop {r4, r5, r6, pc}
+_02243FEC:
+ ldr r0, [r4, #0x64]
+ add r0, r0, r5
+ str r0, [r4, #0x64]
+ pop {r4, r5, r6, pc}
+_02243FF4:
+ ldr r0, [r4, #0x68]
+ add r0, r0, r5
+ str r0, [r4, #0x68]
+ pop {r4, r5, r6, pc}
+_02243FFC:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r2, [r0]
+ mov r1, #7
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x1d
+ lsr r1, r1, #0x1d
+ add r2, r1, r5
+ mov r1, #7
+ and r1, r2
+ orr r0, r1
+ add r4, #0x88
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224401A:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r2, [r0]
+ mov r1, #0x38
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x1a
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1a
+ orr r0, r1
+ add r4, #0x88
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244038:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r2, [r0]
+ mov r1, #0xc0
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x1e
+ add r1, r1, r5
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x18
+ orr r0, r1
+ add r4, #0x88
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244056:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _0224421C ; =0xFFFFF8FF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x15
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244072:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244220 ; =0xFFFFE7FF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #0x13
+ lsr r1, r1, #0x1e
+ add r1, r1, r5
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x13
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224408E:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244224 ; =0xFFFF9FFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #0x11
+ lsr r1, r1, #0x1e
+ add r1, r1, r5
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x11
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022440AA:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244228 ; =0xFFFC7FFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #0xe
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0xe
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022440C6:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _0224422C ; =0xFFE3FFFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #0xb
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0xb
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022440E2:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244230 ; =0xFF1FFFFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #8
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #8
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022440FE:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244234 ; =0xF8FFFFFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #5
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #5
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224411A:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244238 ; =0xC7FFFFFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #2
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #2
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244136:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _0224423C ; =0xFFFFE3FF
+ add r4, #0x8c
+ and r0, r1
+ lsl r1, r1, #0x13
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x13
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244152:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02244240 ; =0xFFFF1FFF
+ add r4, #0x8c
+ and r0, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x10
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224416E:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02244244 ; =0xFFF8FFFF
+ add r4, #0x8c
+ and r0, r1
+ lsl r1, r1, #0xd
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0xd
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224418A:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ add r4, #0x90
+ add r0, r0, r5
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244198:
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r4, #0x94
+ add r0, r0, r5
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022441A6:
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ add r4, #0x98
+ add r0, r0, r5
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022441B4:
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r4, #0xa0
+ add r0, r0, r5
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022441C2:
+ add r0, r4, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ add r4, #0xbc
+ add r0, r0, r5
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022441D0:
+ ldr r2, [r4, #0x28]
+ mov r1, #0x40
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x19
+ lsr r1, r1, #0x1f
+ add r1, r1, r5
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x19
+ orr r0, r1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, pc}
+_022441E8:
+ ldr r2, [r4, #0x28]
+ mov r1, #0x80
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x1f
+ add r1, r1, r5
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x18
+ orr r0, r1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, pc}
+_02244200:
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+ nop
+_02244208: .word 0xFFFFFC1F
+_0224420C: .word 0xFFFF83FF
+_02244210: .word 0xFFF07FFF
+_02244214: .word 0xFE0FFFFF
+_02244218: .word 0xC1FFFFFF
+_0224421C: .word 0xFFFFF8FF
+_02244220: .word 0xFFFFE7FF
+_02244224: .word 0xFFFF9FFF
+_02244228: .word 0xFFFC7FFF
+_0224422C: .word 0xFFE3FFFF
+_02244230: .word 0xFF1FFFFF
+_02244234: .word 0xF8FFFFFF
+_02244238: .word 0xC7FFFFFF
+_0224423C: .word 0xFFFFE3FF
+_02244240: .word 0xFFFF1FFF
+_02244244: .word 0xFFF8FFFF
+
+ thumb_func_start MOD11_02244248
+MOD11_02244248: ; 0x02244248
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x68
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #0x64]
+ str r0, [sp, #0x60]
+ ldr r0, [sp, #0x64]
+ str r2, [sp, #8]
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0x64]
+ str r3, [sp, #0xc]
+ str r0, [sp, #0x48]
+ ldr r0, [sp, #0x64]
+ add r5, r1, #0
+ str r0, [sp, #0x44]
+ ldr r0, [sp, #0x64]
+ mov r2, #0xc0
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x64]
+ ldr r3, _0224455C ; =0x00002D8C
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x64]
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x64]
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #8]
+ add r1, r0, #0
+ mul r1, r2
+ add r0, r5, r1
+ ldr r0, [r0, r3]
+ str r1, [sp, #0x18]
+ cmp r0, #0
+ bne _0224429C
+ ldr r1, [sp, #0xc]
+ mul r2, r1
+ add r1, r5, r2
+ ldr r1, [r1, r3]
+ cmp r1, #0
+ beq _0224429C
+ add sp, #0x68
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0224429C:
+ cmp r0, #0
+ beq _022442B6
+ ldr r0, [sp, #0xc]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224455C ; =0x00002D8C
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022442B6
+ add sp, #0x68
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022442B6:
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ str r0, [sp, #0x2c]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ str r0, [sp, #0x28]
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x58]
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x54]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x50]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4c]
+ ldr r0, [sp, #0x18]
+ ldr r2, _02244560 ; =0x00002D5B
+ add r0, r5, r0
+ ldrsb r4, [r0, r2]
+ ldr r0, [sp, #0xc]
+ mov r1, #0xc0
+ mul r1, r0
+ add r0, r5, r1
+ str r1, [sp, #0x14]
+ ldrsb r7, [r0, r2]
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x56
+ bne _02244338
+ sub r0, r4, #6
+ lsl r0, r0, #1
+ add r4, r0, #6
+ cmp r4, #0xc
+ ble _02244332
+ mov r4, #0xc
+_02244332:
+ cmp r4, #0
+ bge _02244338
+ mov r4, #0
+_02244338:
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x56
+ bne _02244356
+ sub r0, r7, #6
+ lsl r0, r0, #1
+ add r7, r0, #6
+ cmp r7, #0xc
+ ble _02244350
+ mov r7, #0xc
+_02244350:
+ cmp r7, #0
+ bge _02244356
+ mov r7, #0
+_02244356:
+ ldr r0, [sp, #0x18]
+ lsl r1, r4, #1
+ add r2, r5, r0
+ ldr r0, _02244564 ; =0x00002D46
+ ldrh r2, [r2, r0]
+ ldr r0, _02244568 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224456C ; =0x0225E285
+ ldrb r1, [r2, r1]
+ blx _s32_div_f
+ add r6, r0, #0
+ ldr r0, [sp, #0x14]
+ lsl r1, r7, #1
+ add r2, r5, r0
+ ldr r0, _02244564 ; =0x00002D46
+ ldrh r2, [r2, r0]
+ ldr r0, _02244568 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224456C ; =0x0225E285
+ ldrb r1, [r2, r1]
+ blx _s32_div_f
+ add r4, r0, #0
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022443FE
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022443FE
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x21
+ bne _022443C4
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #3
+ tst r0, r1
+ bne _022443D6
+_022443C4:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x22
+ bne _022443D8
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0x30
+ tst r0, r1
+ beq _022443D8
+_022443D6:
+ lsl r6, r6, #1
+_022443D8:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x21
+ bne _022443EA
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #3
+ tst r0, r1
+ bne _022443FC
+_022443EA:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x22
+ bne _022443FE
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0x30
+ tst r0, r1
+ beq _022443FE
+_022443FC:
+ lsl r4, r4, #1
+_022443FE:
+ mov r0, #0
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x18]
+ ldr r7, _02244570 ; =0x0225E24C
+ add r0, r5, r0
+ str r0, [sp, #0x1c]
+_0224440A:
+ ldr r2, [sp, #0x1c]
+ ldr r1, _02244574 ; =0x00002DB8
+ add r0, r5, #0
+ ldrh r1, [r2, r1]
+ mov r2, #1
+ bl MOD11_0224C12C
+ ldrb r1, [r7]
+ cmp r1, r0
+ bne _02244422
+ lsr r6, r6, #1
+ b _0224442E
+_02244422:
+ ldr r0, [sp, #0x24]
+ add r7, r7, #1
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #8
+ blo _0224440A
+_0224442E:
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x72
+ bne _02244440
+ mov r0, #0xf
+ mul r0, r6
+ mov r1, #0xa
+ blx _u32_div_f
+ add r6, r0, #0
+_02244440:
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x65
+ bne _02244456
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r1, r0]
+ cmp r0, #0x84
+ bne _02244456
+ lsl r6, r6, #1
+_02244456:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x5f
+ bne _02244478
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _02244578 ; =0x00002DAC
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _02244478
+ mov r0, #0xf
+ mul r0, r6
+ mov r1, #0xa
+ blx _u32_div_f
+ add r6, r0, #0
+ b _02244488
+_02244478:
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _02244578 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _02244488
+ lsr r6, r6, #2
+_02244488:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x70
+ bne _022444A4
+ ldr r1, [sp, #0x18]
+ mov r0, #0x15
+ add r2, r5, r1
+ ldr r1, _0224457C ; =0x00002DD8
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r1, [r2, r1]
+ sub r0, r0, r1
+ cmp r0, #5
+ bge _022444A4
+ lsr r6, r6, #1
+_022444A4:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x54
+ bne _022444C2
+ ldr r0, [sp, #0x18]
+ add r2, r5, r0
+ ldr r0, _02244580 ; =0x00002DCC
+ ldr r1, [r2, r0]
+ lsl r1, r1, #9
+ lsr r1, r1, #0x1f
+ beq _022444C2
+ sub r0, #0x14
+ ldrh r0, [r2, r0]
+ cmp r0, #0
+ bne _022444C2
+ lsl r6, r6, #1
+_022444C2:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #3
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _022444DE
+ lsl r6, r6, #1
+_022444DE:
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x33
+ bne _0224451C
+ ldr r1, [sp, #0x54]
+ mov r0, #0x64
+ blx _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
+ cmp r1, #0
+ bne _0224451C
+ mov r0, #1
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bne _0224451C
+ ldr r0, _02244580 ; =0x00002DCC
+ ldr r1, [sp, #0x18]
+ add r0, r5, r0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x1c
+ orr r2, r1
+ ldr r1, [sp, #0x18]
+ str r2, [r0, r1]
+_0224451C:
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _02244580 ; =0x00002DCC
+ ldr r0, [r1, r0]
+ lsl r0, r0, #3
+ lsr r0, r0, #0x1f
+ beq _0224452E
+ mov r0, #1
+ str r0, [sp, #0x40]
+_0224452E:
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x6a
+ bne _02244538
+ mov r0, #1
+ str r0, [sp, #0x38]
+_02244538:
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ ldr r7, _02244570 ; =0x0225E24C
+ add r0, r5, r0
+ str r0, [sp, #0x20]
+_02244544:
+ ldr r2, [sp, #0x20]
+ ldr r1, _02244574 ; =0x00002DB8
+ add r0, r5, #0
+ ldrh r1, [r2, r1]
+ mov r2, #1
+ bl MOD11_0224C12C
+ ldrb r1, [r7]
+ cmp r1, r0
+ bne _02244588
+ lsr r4, r4, #1
+ b _02244594
+ .align 2, 0
+_0224455C: .word 0x00002D8C
+_02244560: .word 0x00002D5B
+_02244564: .word 0x00002D46
+_02244568: .word 0x0225E284
+_0224456C: .word 0x0225E285
+_02244570: .word 0x0225E24C
+_02244574: .word 0x00002DB8
+_02244578: .word 0x00002DAC
+_0224457C: .word 0x00002DD8
+_02244580: .word 0x00002DCC
+_02244584: .word 0x0000310C
+_02244588:
+ ldr r0, [sp, #0x10]
+ add r7, r7, #1
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, #8
+ blo _02244544
+_02244594:
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x72
+ bne _022445A6
+ mov r0, #0xf
+ mul r0, r4
+ mov r1, #0xa
+ blx _u32_div_f
+ add r4, r0, #0
+_022445A6:
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x65
+ bne _022445BC
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r1, r0]
+ cmp r0, #0x84
+ bne _022445BC
+ lsl r4, r4, #1
+_022445BC:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x5f
+ bne _022445DE
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ ldr r0, _02244894 ; =0x00002DAC
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _022445DE
+ mov r0, #0xf
+ mul r0, r4
+ mov r1, #0xa
+ blx _u32_div_f
+ add r4, r0, #0
+ b _022445EE
+_022445DE:
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ ldr r0, _02244894 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _022445EE
+ lsr r4, r4, #2
+_022445EE:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x70
+ bne _0224460A
+ ldr r1, [sp, #0x14]
+ mov r0, #0x15
+ add r2, r5, r1
+ ldr r1, _02244898 ; =0x00002DD8
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r1, [r2, r1]
+ sub r0, r0, r1
+ cmp r0, #5
+ bge _0224460A
+ lsr r4, r4, #1
+_0224460A:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x54
+ bne _02244628
+ ldr r0, [sp, #0x14]
+ add r2, r5, r0
+ ldr r0, _0224489C ; =0x00002DCC
+ ldr r1, [r2, r0]
+ lsl r1, r1, #9
+ lsr r1, r1, #0x1f
+ beq _02244628
+ sub r0, #0x14
+ ldrh r0, [r2, r0]
+ cmp r0, #0
+ bne _02244628
+ lsl r4, r4, #1
+_02244628:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #3
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _02244644
+ lsl r4, r4, #1
+_02244644:
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x33
+ bne _02244682
+ ldr r1, [sp, #0x4c]
+ mov r0, #0x64
+ blx _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
+ cmp r1, #0
+ bne _02244682
+ mov r0, #1
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bne _02244682
+ ldr r0, _0224489C ; =0x00002DCC
+ ldr r1, [sp, #0x14]
+ add r0, r5, r0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x1c
+ orr r2, r1
+ ldr r1, [sp, #0x14]
+ str r2, [r0, r1]
+_02244682:
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ ldr r0, _0224489C ; =0x00002DCC
+ ldr r0, [r1, r0]
+ lsl r0, r0, #3
+ lsr r0, r0, #0x1f
+ beq _02244694
+ mov r0, #1
+ str r0, [sp, #0x3c]
+_02244694:
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x6a
+ bne _0224469E
+ mov r0, #1
+ str r0, [sp, #0x34]
+_0224469E:
+ ldr r0, [sp, #8]
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _022448A4 ; =0x000021F0
+ str r6, [r1, r0]
+ ldr r1, [sp, #0xc]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ str r4, [r1, r0]
+ ldr r1, [sp, #0x80]
+ cmp r1, #0
+ bne _02244756
+ ldr r1, [sp, #0xc]
+ ldr r3, _022448A8 ; =0x000030BC
+ lsl r1, r1, #4
+ add r2, r5, r1
+ add r1, r0, #0
+ sub r1, #0x3c
+ ldr r1, [r2, r1]
+ sub r0, #0x3c
+ str r1, [sp, #0x30]
+ ldr r1, [sp, #8]
+ lsl r1, r1, #1
+ add r1, r5, r1
+ ldrh r2, [r1, r3]
+ ldr r1, [sp, #0xc]
+ lsl r1, r1, #1
+ add r1, r5, r1
+ ldrh r7, [r1, r3]
+ ldr r1, [sp, #8]
+ lsl r1, r1, #4
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ cmp r0, #1
+ bne _0224470E
+ ldr r0, [sp, #8]
+ lsl r0, r0, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _022446FC
+ mov r0, #0xa5
+ str r0, [sp, #0x60]
+ b _0224470E
+_022446FC:
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ add r2, r2, #6
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x60]
+_0224470E:
+ ldr r0, [sp, #0x30]
+ cmp r0, #1
+ bne _0224473E
+ ldr r0, [sp, #0xc]
+ lsl r0, r0, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0224472C
+ mov r0, #0xa5
+ str r0, [sp, #0x5c]
+ b _0224473E
+_0224472C:
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ add r2, r7, #6
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x5c]
+_0224473E:
+ ldr r0, [sp, #0x60]
+ mov r1, #0xfa
+ lsl r0, r0, #4
+ add r0, r5, r0
+ lsl r1, r1, #2
+ ldrsb r0, [r0, r1]
+ str r0, [sp, #0x48]
+ ldr r0, [sp, #0x5c]
+ lsl r0, r0, #4
+ add r0, r5, r0
+ ldrsb r0, [r0, r1]
+ str r0, [sp, #0x44]
+_02244756:
+ ldr r1, [sp, #0x48]
+ ldr r0, [sp, #0x44]
+ cmp r1, r0
+ beq _02244760
+ b _022448AC
+_02244760:
+ ldr r0, [sp, #0x40]
+ cmp r0, #0
+ beq _0224478C
+ ldr r0, [sp, #0x3c]
+ cmp r0, #0
+ beq _0224478C
+ cmp r6, r4
+ bhs _02244776
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_02244776:
+ cmp r6, r4
+ bne _02244784
+ bl FUN_0201B9EC
+ mov r1, #1
+ tst r0, r1
+ bne _02244786
+_02244784:
+ b _022448B4
+_02244786:
+ mov r0, #2
+ str r0, [sp, #0x64]
+ b _022448B4
+_0224478C:
+ ldr r0, [sp, #0x40]
+ cmp r0, #0
+ bne _0224479E
+ ldr r0, [sp, #0x3c]
+ cmp r0, #0
+ beq _0224479E
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_0224479E:
+ ldr r0, [sp, #0x40]
+ cmp r0, #0
+ beq _022447B0
+ ldr r0, [sp, #0x3c]
+ cmp r0, #0
+ bne _022447B0
+ mov r0, #0
+ str r0, [sp, #0x64]
+ b _022448B4
+_022447B0:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ beq _022447DA
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ beq _022447DA
+ cmp r6, r4
+ bls _022447C6
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_022447C6:
+ cmp r6, r4
+ bne _022448B4
+ bl FUN_0201B9EC
+ mov r1, #1
+ tst r0, r1
+ beq _022448B4
+ mov r0, #2
+ str r0, [sp, #0x64]
+ b _022448B4
+_022447DA:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ beq _022447EC
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ bne _022447EC
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_022447EC:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ bne _022447FE
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ beq _022447FE
+ mov r0, #0
+ str r0, [sp, #0x64]
+ b _022448B4
+_022447FE:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x64
+ bne _02244828
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x64
+ bne _02244828
+ cmp r6, r4
+ bls _02244814
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_02244814:
+ cmp r6, r4
+ bne _022448B4
+ bl FUN_0201B9EC
+ mov r1, #1
+ tst r0, r1
+ beq _022448B4
+ mov r0, #2
+ str r0, [sp, #0x64]
+ b _022448B4
+_02244828:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x64
+ bne _0224483A
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x64
+ beq _0224483A
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_0224483A:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x64
+ beq _0224484C
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x64
+ bne _0224484C
+ mov r0, #0
+ str r0, [sp, #0x64]
+ b _022448B4
+_0224484C:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #7
+ lsl r0, r0, #0x10
+ tst r0, r1
+ beq _02244876
+ cmp r6, r4
+ bls _02244862
+ mov r0, #1
+ str r0, [sp, #0x64]
+_02244862:
+ cmp r6, r4
+ bne _022448B4
+ bl FUN_0201B9EC
+ mov r1, #1
+ tst r0, r1
+ beq _022448B4
+ mov r0, #2
+ str r0, [sp, #0x64]
+ b _022448B4
+_02244876:
+ cmp r6, r4
+ bhs _0224487E
+ mov r0, #1
+ str r0, [sp, #0x64]
+_0224487E:
+ cmp r6, r4
+ bne _022448B4
+ bl FUN_0201B9EC
+ mov r1, #1
+ tst r0, r1
+ beq _022448B4
+ mov r0, #2
+ str r0, [sp, #0x64]
+ b _022448B4
+ nop
+_02244894: .word 0x00002DAC
+_02244898: .word 0x00002DD8
+_0224489C: .word 0x00002DCC
+_022448A0: .word 0x0000310C
+_022448A4: .word 0x000021F0
+_022448A8: .word 0x000030BC
+_022448AC:
+ cmp r1, r0
+ bge _022448B4
+ mov r0, #1
+ str r0, [sp, #0x64]
+_022448B4:
+ ldr r0, [sp, #0x64]
+ add sp, #0x68
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022448BC
+MOD11_022448BC: ; 0x022448BC
+ asr r1, r1, #1
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1d
+ add r0, r0, r1
+ mov r2, #0
+ add r0, #0xa4
+ str r2, [r0]
+ bx lr
+
+ thumb_func_start MOD11_022448CC
+MOD11_022448CC: ; 0x022448CC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r2, [sp]
+ add r5, r1, #0
+ mov r4, #0
+ bl MOD11_0222FF74
+ add r7, r0, #0
+ ldr r0, [sp]
+ mov r1, #0xc0
+ mul r1, r0
+ add r0, r5, r1
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ asr r0, r0, #1
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1d
+ add r6, r5, r0
+ add r6, #0xa4
+_022448F2:
+ add r0, r4, #0
+ bl FUN_0206A92C
+ ldr r1, _0224493C ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _02244928
+ ldr r0, [sp]
+ bl FUN_0206A92C
+ ldr r1, _0224493C ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _02244928
+ ldr r1, [sp, #4]
+ ldr r0, _02244940 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244928
+ ldr r0, _02244944 ; =0x0000219C
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ bl FUN_0206A92C
+ ldr r1, [r6]
+ orr r0, r1
+ str r0, [r6]
+_02244928:
+ add r4, r4, #2
+ cmp r7, #0x4a
+ beq _02244936
+ cmp r7, #0x4b
+ beq _02244936
+ cmp r4, #2
+ ble _022448F2
+_02244936:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224493C: .word 0x00003108
+_02244940: .word 0x00002D8C
+_02244944: .word 0x0000219C
+
+ thumb_func_start MOD11_02244948
+MOD11_02244948: ; 0x02244948
+ push {r4, r5, r6, lr}
+ ldr r0, _022449D4 ; =0x00002170
+ add r5, r1, #0
+ add r4, r2, #0
+ ldr r2, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0x1c
+ mov r6, #0
+ tst r0, r2
+ beq _0224497A
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _022449D4 ; =0x00002170
+ add r1, r6, #0
+ str r1, [r5, r0]
+ sub r0, r0, #4
+ ldr r1, [r5, r0]
+ ldr r0, _022449D8 ; =0x801FDA49
+ tst r0, r1
+ bne _022449CE
+ mov r6, #1
+ b _022449CE
+_0224497A:
+ cmp r2, #0
+ beq _022449CE
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022449DC ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022449C8
+ ldr r1, _022449E0 ; =0x0000216C
+ ldr r2, _022449D8 ; =0x801FDA49
+ ldr r0, [r5, r1]
+ tst r2, r0
+ beq _022449C6
+ add r1, r1, #4
+ mov r2, #2
+ ldr r1, [r5, r1]
+ lsl r2, r2, #0x16
+ tst r2, r1
+ beq _022449B8
+ ldr r2, _022449E4 ; =0x00040008
+ tst r2, r0
+ bne _022449C6
+_022449B8:
+ mov r2, #1
+ lsl r2, r2, #0x1c
+ tst r1, r2
+ beq _022449C8
+ ldr r1, _022449E8 ; =0x00010001
+ tst r0, r1
+ beq _022449C8
+_022449C6:
+ mov r6, #1
+_022449C8:
+ ldr r0, _022449D4 ; =0x00002170
+ mov r1, #0
+ str r1, [r5, r0]
+_022449CE:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022449D4: .word 0x00002170
+_022449D8: .word 0x801FDA49
+_022449DC: .word 0x00002D8C
+_022449E0: .word 0x0000216C
+_022449E4: .word 0x00040008
+_022449E8: .word 0x00010001
+
+ thumb_func_start MOD11_022449EC
+MOD11_022449EC: ; 0x022449EC
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r0, _02244C04 ; =0x00002174
+ add r5, r1, #0
+ add r4, r2, #0
+ ldr r2, [r5, r0]
+ mov r1, #2
+ lsl r1, r1, #0x1c
+ add r3, r2, #0
+ mov r6, #0
+ tst r3, r1
+ beq _02244A20
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C04 ; =0x00002174
+ add r1, r6, #0
+ str r1, [r5, r0]
+ sub r0, #8
+ ldr r1, [r5, r0]
+ ldr r0, _02244C08 ; =0x801FDA49
+ tst r0, r1
+ bne _02244AC0
+ mov r6, #1
+ b _02244C00
+_02244A20:
+ lsr r3, r1, #5
+ tst r3, r2
+ beq _02244A54
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C04 ; =0x00002174
+ add r1, r6, #0
+ str r1, [r5, r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224AD9C
+ cmp r0, #0
+ bne _02244AC0
+ ldr r0, _02244C0C ; =0x0000216C
+ ldr r1, [r5, r0]
+ ldr r0, _02244C08 ; =0x801FDA49
+ tst r0, r1
+ bne _02244AC0
+ mov r6, #1
+ b _02244C00
+_02244A54:
+ lsr r3, r1, #4
+ tst r3, r2
+ beq _02244A96
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C04 ; =0x00002174
+ add r1, r6, #0
+ str r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02244C10 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02244AC0
+ add r0, r5, #0
+ bl MOD11_0224AD9C
+ cmp r0, #0
+ bne _02244AC0
+ ldr r0, _02244C0C ; =0x0000216C
+ ldr r1, [r5, r0]
+ ldr r0, _02244C08 ; =0x801FDA49
+ tst r0, r1
+ bne _02244AC0
+ mov r6, #1
+ b _02244C00
+_02244A96:
+ lsr r3, r1, #1
+ tst r3, r2
+ beq _02244AC6
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C04 ; =0x00002174
+ add r1, r6, #0
+ str r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02244C10 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02244AC2
+_02244AC0:
+ b _02244C00
+_02244AC2:
+ mov r6, #1
+ b _02244C00
+_02244AC6:
+ lsr r1, r1, #3
+ tst r1, r2
+ beq _02244B50
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x20
+ ldr r0, _02244C14 ; =0x00003044
+ bne _02244AEA
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02244C18 ; =0x000003E5
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x11
+ lsr r6, r0, #0x10
+ b _02244AF4
+_02244AEA:
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02244C18 ; =0x000003E5
+ ldrb r6, [r1, r0]
+_02244AF4:
+ cmp r6, #0
+ bne _02244AFC
+ bl ErrorHandling
+_02244AFC:
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ blx _s32_div_f
+ cmp r1, r6
+ bge _02244B16
+ ldr r1, _02244C1C ; =0x0000213C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0x16
+ orr r0, r2
+ str r0, [r5, r1]
+_02244B16:
+ ldr r2, _02244C04 ; =0x00002174
+ add r0, r5, #0
+ ldr r2, [r5, r2]
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r1, _02244C04 ; =0x00002174
+ mov r0, #0
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r2, [r0]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r5, r0
+ ldr r0, _02244C10 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ bne _02244B4C
+ add r0, r1, #0
+ sub r0, #0x38
+ ldr r2, [r5, r0]
+ ldr r0, _02244C20 ; =0xFFBFFFFF
+ sub r1, #0x38
+ and r0, r2
+ str r0, [r5, r1]
+_02244B4C:
+ mov r6, #1
+ b _02244C00
+_02244B50:
+ cmp r2, #0
+ beq _02244BD2
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x20
+ ldr r0, _02244C14 ; =0x00003044
+ bne _02244B72
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02244C18 ; =0x000003E5
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x11
+ lsr r7, r0, #0x10
+ b _02244B7C
+_02244B72:
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02244C18 ; =0x000003E5
+ ldrb r7, [r1, r0]
+_02244B7C:
+ cmp r7, #0
+ bne _02244B84
+ bl ErrorHandling
+_02244B84:
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ blx _s32_div_f
+ cmp r1, r7
+ bge _02244C00
+ ldr r2, _02244C04 ; =0x00002174
+ add r0, r5, #0
+ ldr r2, [r5, r2]
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C04 ; =0x00002174
+ mov r1, #0
+ str r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02244C10 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02244C00
+ add r0, r5, #0
+ bl MOD11_0224AD9C
+ cmp r0, #0
+ bne _02244C00
+ ldr r0, _02244C0C ; =0x0000216C
+ ldr r1, [r5, r0]
+ ldr r0, _02244C08 ; =0x801FDA49
+ tst r0, r1
+ bne _02244C00
+ mov r6, #1
+ b _02244C00
+_02244BD2:
+ add r0, r0, #4
+ ldr r2, [r5, r0]
+ cmp r2, #0
+ beq _02244C00
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C24 ; =0x00002178
+ add r1, r6, #0
+ str r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02244C10 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244C00
+ mov r6, #1
+_02244C00:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02244C04: .word 0x00002174
+_02244C08: .word 0x801FDA49
+_02244C0C: .word 0x0000216C
+_02244C10: .word 0x00002D8C
+_02244C14: .word 0x00003044
+_02244C18: .word 0x000003E5
+_02244C1C: .word 0x0000213C
+_02244C20: .word 0xFFBFFFFF
+_02244C24: .word 0x00002178
+
+ thumb_func_start MOD11_02244C28
+MOD11_02244C28: ; 0x02244C28
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r0, #0
+ mov r0, #0xff
+ add r4, r1, #0
+ add r5, r2, #0
+ str r0, [sp, #0xc]
+ cmp r3, #0
+ beq _02244C44
+ lsl r0, r3, #4
+ add r1, r4, r0
+ ldr r0, _02244F24 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ b _02244C46
+_02244C44:
+ ldr r0, [sp, #0x34]
+_02244C46:
+ cmp r0, #4
+ bne _02244CD6
+ add r0, r6, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ bl MOD11_02253A4C
+ ldr r1, _02244F28 ; =0x0000217E
+ mov r2, #0
+ strb r2, [r4, r1]
+ ldrb r1, [r4, r1]
+ ldr r2, [sp, #8]
+ cmp r1, r2
+ bge _02244CC4
+ mov r2, #1
+ add r5, r0, #0
+ and r5, r2
+_02244C72:
+ ldr r0, _02244F2C ; =0x000021EC
+ add r1, r4, r1
+ ldrb r7, [r1, r0]
+ mov r0, #0xc0
+ mul r0, r7
+ add r1, r4, r0
+ ldr r0, _02244F30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244CB2
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_0222FF7C
+ str r0, [sp]
+ cmp r5, #0
+ beq _02244C9E
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _02244CAE
+_02244C9E:
+ cmp r5, #0
+ bne _02244CB2
+ ldr r0, [sp]
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _02244CB2
+_02244CAE:
+ str r7, [sp, #0xc]
+ b _02244CC4
+_02244CB2:
+ ldr r0, _02244F28 ; =0x0000217E
+ ldrb r0, [r4, r0]
+ add r1, r0, #1
+ ldr r0, _02244F28 ; =0x0000217E
+ strb r1, [r4, r0]
+ ldrb r1, [r4, r0]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ blt _02244C72
+_02244CC4:
+ ldr r1, _02244F28 ; =0x0000217E
+ ldr r0, [sp, #8]
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ bne _02244CD0
+ b _02244F5C
+_02244CD0:
+ add r0, r2, #1
+ strb r0, [r4, r1]
+ b _02244F5C
+_02244CD6:
+ cmp r0, #8
+ bne _02244D26
+ add r0, r6, #0
+ bl MOD11_0222FF84
+ add r2, r0, #0
+ ldr r0, _02244F28 ; =0x0000217E
+ mov r1, #0
+ strb r1, [r4, r0]
+ ldrb r3, [r4, r0]
+ cmp r3, r2
+ bge _02244D18
+ ldr r7, _02244F30 ; =0x00002D8C
+_02244CF0:
+ ldr r1, _02244F2C ; =0x000021EC
+ add r6, r4, r3
+ ldrb r1, [r6, r1]
+ mov r6, #0xc0
+ mul r6, r1
+ add r6, r4, r6
+ ldr r6, [r6, r7]
+ cmp r6, #0
+ beq _02244D0A
+ cmp r1, r5
+ beq _02244D0A
+ str r1, [sp, #0xc]
+ b _02244D18
+_02244D0A:
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ ldr r1, _02244F28 ; =0x0000217E
+ ldrb r3, [r4, r1]
+ cmp r3, r2
+ blt _02244CF0
+_02244D18:
+ cmp r3, r2
+ beq _02244E02
+ ldr r0, _02244F28 ; =0x0000217E
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _02244F5C
+_02244D26:
+ mov r1, #2
+ lsl r1, r1, #8
+ cmp r0, r1
+ bne _02244D72
+ ldr r1, [sp, #0x30]
+ cmp r1, #1
+ bne _02244D72
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02244D6E
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ bne _02244D6E
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022302BC
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [sp, #0xc]
+ ldr r0, _02244F30 ; =0x00002D8C
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02244E02
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244D6E:
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244D72:
+ mov r1, #1
+ lsl r1, r1, #0xa
+ cmp r0, r1
+ bne _02244D8E
+ ldr r1, [sp, #0x30]
+ cmp r1, #1
+ bne _02244D8E
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_022482A4
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244D8E:
+ cmp r0, #0x80
+ bne _02244DA0
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_022482A4
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244DA0:
+ cmp r0, #0x10
+ beq _02244DB0
+ cmp r0, #0x20
+ beq _02244DB0
+ cmp r0, #1
+ beq _02244DB0
+ cmp r0, #0x40
+ bne _02244DB4
+_02244DB0:
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244DB4:
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r0, r1
+ bne _02244DD8
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02244DD4
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022302BC
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244DD4:
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244DD8:
+ lsl r1, r1, #1
+ cmp r0, r1
+ bne _02244E0C
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02244E08
+ lsl r0, r5, #4
+ add r1, r4, r0
+ ldr r0, _02244F34 ; =0x000021AC
+ ldr r0, [r1, r0]
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [sp, #0xc]
+ ldr r0, _02244F30 ; =0x00002D8C
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244E04
+_02244E02:
+ b _02244F5C
+_02244E04:
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244E08:
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244E0C:
+ cmp r0, #2
+ beq _02244E16
+ ldr r0, [sp, #0x30]
+ cmp r0, #1
+ bne _02244ED6
+_02244E16:
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ mov r1, #1
+ eor r7, r1
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD11_02230308
+ str r0, [sp, #0x14]
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #2
+ bl MOD11_02230308
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x10]
+ mov r1, #2
+ tst r0, r1
+ beq _02244EBE
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r1, r4, r0
+ lsl r0, r7, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02244E72
+ lsl r0, r0, #9
+ lsr r2, r0, #0x1e
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02244F30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244E72
+ str r2, [sp, #0xc]
+ b _02244F5C
+_02244E72:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ add r0, r4, r2
+ ldr r2, _02244F30 ; =0x00002D8C
+ ldr r0, [r0, r2]
+ cmp r0, #0
+ beq _02244EA0
+ ldr r3, [sp, #0x18]
+ mul r1, r3
+ add r1, r4, r1
+ ldr r1, [r1, r2]
+ cmp r1, #0
+ beq _02244EA0
+ bl FUN_0201B9EC
+ lsl r0, r0, #0x1f
+ lsr r1, r0, #0x1d
+ add r0, sp, #0x14
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244EA0:
+ cmp r0, #0
+ beq _02244EAA
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244EAA:
+ ldr r2, [sp, #0x18]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02244F30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244F5C
+ str r2, [sp, #0xc]
+ b _02244F5C
+_02244EBE:
+ mov r0, #1
+ add r2, r5, #0
+ eor r2, r0
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02244F30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244F5C
+ str r2, [sp, #0xc]
+ b _02244F5C
+_02244ED6:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ mov r1, #1
+ eor r0, r1
+ str r0, [sp, #4]
+ lsl r0, r5, #4
+ add r1, r4, r0
+ ldr r0, _02244F34 ; =0x000021AC
+ ldr r7, [r1, r0]
+ add r0, r6, #0
+ bl MOD11_0222FF84
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, [sp, #4]
+ lsl r0, r0, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02244F1A
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1e
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02244F30 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02244F1A
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244F1A:
+ mov r0, #0xc0
+ mul r0, r7
+ add r1, r4, r0
+ ldr r0, _02244F30 ; =0x00002D8C
+ b _02244F38
+ .align 2, 0
+_02244F24: .word 0x000003E6
+_02244F28: .word 0x0000217E
+_02244F2C: .word 0x000021EC
+_02244F30: .word 0x00002D8C
+_02244F34: .word 0x000021AC
+_02244F38:
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244F42
+ str r7, [sp, #0xc]
+ b _02244F5C
+_02244F42:
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_022482A4
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02244F64 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02244F5C
+ str r0, [sp, #0xc]
+_02244F5C:
+ ldr r0, [sp, #0xc]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02244F64: .word 0x00002D8C
+
+ thumb_func_start MOD11_02244F68
+MOD11_02244F68: ; 0x02244F68
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x6c]
+ add r7, r2, #0
+ add r6, r3, #0
+ cmp r0, #0xff
+ beq _02244FC2
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ beq _02244FC2
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x68
+ beq _02244FC2
+ ldr r0, [sp, #4]
+ add r1, r7, #0
+ bl MOD11_02230270
+ add r2, r0, #0
+ mov r1, #1
+ mov r0, #0x71
+ eor r2, r1
+ lsl r0, r0, #2
+ add r1, r5, r0
+ lsl r0, r2, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02244FC4
+ lsl r0, r0, #9
+ lsr r1, r0, #0x1e
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022450F8 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244FC4
+_02244FC2:
+ b _022450F4
+_02244FC4:
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r7, #0
+ add r3, r6, #0
+ bl MOD11_0224C8EC
+ str r0, [sp, #0xc]
+ cmp r0, #0
+ bne _02244FE0
+ lsl r0, r6, #4
+ add r1, r5, r0
+ ldr r0, _022450FC ; =0x000003E2
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0xc]
+_02244FE0:
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF84
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0xd
+ bne _02245070
+ lsl r0, r6, #4
+ add r1, r5, r0
+ ldr r0, _02245100 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _02244FFE
+ cmp r0, #2
+ bne _02245070
+_02244FFE:
+ ldr r0, _02245104 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _02245070
+ mov r0, #0x1f
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #9
+ add r3, r7, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _02245070
+ ldr r0, [sp, #8]
+ mov r6, #0
+ cmp r0, #0
+ ble _02245050
+_02245024:
+ ldr r0, _02245108 ; =0x000021EC
+ add r1, r5, r6
+ ldrb r4, [r1, r0]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x1f
+ bne _02245048
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022450F8 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02245048
+ cmp r7, r4
+ bne _02245050
+_02245048:
+ ldr r0, [sp, #8]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _02245024
+_02245050:
+ ldr r0, [r5, #0x6c]
+ cmp r4, r0
+ beq _022450F4
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r3, r5, r0
+ mov r0, #0x1c
+ add r2, r4, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ mov r0, #2
+ orr r0, r1
+ str r0, [r3, r2]
+ add sp, #0x10
+ str r4, [r5, #0x6c]
+ pop {r3, r4, r5, r6, r7, pc}
+_02245070:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0xb
+ bne _022450F4
+ lsl r0, r6, #4
+ add r1, r5, r0
+ ldr r0, _02245100 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _02245086
+ cmp r0, #2
+ bne _022450F4
+_02245086:
+ ldr r0, _02245104 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _022450F4
+ mov r0, #0x72
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #9
+ add r3, r7, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _022450F4
+ ldr r0, [sp, #8]
+ mov r6, #0
+ cmp r0, #0
+ ble _022450D8
+_022450AC:
+ ldr r0, _02245108 ; =0x000021EC
+ add r1, r5, r6
+ ldrb r4, [r1, r0]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x72
+ bne _022450D0
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022450F8 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022450D0
+ cmp r7, r4
+ bne _022450D8
+_022450D0:
+ ldr r0, [sp, #8]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _022450AC
+_022450D8:
+ ldr r0, [r5, #0x6c]
+ cmp r4, r0
+ beq _022450F4
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r3, r5, r0
+ mov r0, #0x1c
+ add r2, r4, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ mov r0, #4
+ orr r0, r1
+ str r0, [r3, r2]
+ str r4, [r5, #0x6c]
+_022450F4:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022450F8: .word 0x00002D8C
+_022450FC: .word 0x000003E2
+_02245100: .word 0x000003E6
+_02245104: .word 0x0000213C
+_02245108: .word 0x000021EC
+
+ thumb_func_start MOD11_0224510C
+MOD11_0224510C: ; 0x0224510C
+ push {r3, r4, r5, lr}
+ ldr r0, _02245188 ; =0x0000216C
+ add r4, r1, #0
+ ldr r1, [r4, r0]
+ ldr r0, _0224518C ; =0x801FDA49
+ mov r2, #0
+ tst r0, r1
+ bne _0224514A
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r3, [r4, #0x6c]
+ mov r0, #0x1c
+ mul r0, r3
+ ldr r3, [r1, r0]
+ lsl r5, r3, #0x1e
+ lsr r5, r5, #0x1f
+ beq _0224514A
+ mov r2, #2
+ bic r3, r2
+ str r3, [r1, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xb4
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r2, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0224514A:
+ ldr r0, _02245188 ; =0x0000216C
+ ldr r1, [r4, r0]
+ ldr r0, _0224518C ; =0x801FDA49
+ tst r0, r1
+ bne _02245182
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r3, [r4, #0x6c]
+ mov r0, #0x1c
+ mul r0, r3
+ ldr r3, [r1, r0]
+ lsl r5, r3, #0x1d
+ lsr r5, r5, #0x1f
+ beq _02245182
+ mov r2, #4
+ bic r3, r2
+ str r3, [r1, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xb4
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r2, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_02245182:
+ add r0, r2, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02245188: .word 0x0000216C
+_0224518C: .word 0x801FDA49
+
+ thumb_func_start MOD11_02245190
+MOD11_02245190: ; 0x02245190
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r4, r2, #0
+ mov r0, #0xc0
+ add r5, r1, #0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022451BC ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ bne _022451B0
+ lsl r1, r4, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl MOD11_0224C83C
+_022451B0:
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_02256150
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022451BC: .word 0x00002DB8
+
+ thumb_func_start MOD11_022451C0
+MOD11_022451C0: ; 0x022451C0
+ push {r4, r5}
+ ldr r0, _022451E8 ; =0x00002DB0
+ add r4, r2, #0
+ add r5, r1, r0
+ mov r0, #0xc0
+ mul r4, r0
+ mov r0, #1
+ ldr r3, [r5, r4]
+ lsl r0, r0, #0xc
+ orr r0, r3
+ str r0, [r5, r4]
+ ldr r0, _022451EC ; =0x00003044
+ lsl r2, r2, #2
+ ldr r3, [r1, r0]
+ add r1, r1, r2
+ add r0, #8
+ str r3, [r1, r0]
+ pop {r4, r5}
+ bx lr
+ nop
+_022451E8: .word 0x00002DB0
+_022451EC: .word 0x00003044
+
+ thumb_func_start MOD11_022451F0
+MOD11_022451F0: ; 0x022451F0
+ push {r4, r5}
+ ldr r4, _02245234 ; =0x00002DB0
+ add r3, r2, #0
+ mov r0, #0xc0
+ mul r3, r0
+ add r0, r1, r4
+ ldr r5, [r0, r3]
+ ldr r2, _02245238 ; =0xFFFFEFFF
+ and r2, r5
+ str r2, [r0, r3]
+ ldr r5, [r0, r3]
+ ldr r2, _0224523C ; =0xFFFFFCFF
+ and r2, r5
+ str r2, [r0, r3]
+ add r0, r4, #0
+ add r0, #0x10
+ add r5, r1, r0
+ ldr r2, [r5, r3]
+ ldr r0, _02245240 ; =0xDFFBFF3F
+ add r4, #0x18
+ and r0, r2
+ str r0, [r5, r3]
+ add r2, r1, r4
+ ldr r1, [r2, r3]
+ ldr r0, _02245244 ; =0xFFFC7FFF
+ and r0, r1
+ str r0, [r2, r3]
+ ldr r1, [r2, r3]
+ ldr r0, _02245248 ; =0xFFE3FFFF
+ and r0, r1
+ str r0, [r2, r3]
+ pop {r4, r5}
+ bx lr
+ nop
+_02245234: .word 0x00002DB0
+_02245238: .word 0xFFFFEFFF
+_0224523C: .word 0xFFFFFCFF
+_02245240: .word 0xDFFBFF3F
+_02245244: .word 0xFFFC7FFF
+_02245248: .word 0xFFE3FFFF
+
+ thumb_func_start MOD11_0224524C
+MOD11_0224524C: ; 0x0224524C
+ mov r2, #0xc0
+ mul r2, r1
+ add r1, r0, r2
+ ldr r0, _02245298 ; =0x00002DAC
+ ldr r0, [r1, r0]
+ mov r1, #7
+ tst r1, r0
+ beq _02245260
+ mov r0, #1
+ bx lr
+_02245260:
+ mov r1, #8
+ tst r1, r0
+ beq _0224526A
+ mov r0, #2
+ bx lr
+_0224526A:
+ mov r1, #0x10
+ tst r1, r0
+ beq _02245274
+ mov r0, #3
+ bx lr
+_02245274:
+ mov r1, #0x20
+ tst r1, r0
+ beq _0224527E
+ mov r0, #4
+ bx lr
+_0224527E:
+ mov r1, #0x40
+ tst r1, r0
+ beq _02245288
+ mov r0, #5
+ bx lr
+_02245288:
+ mov r1, #0x80
+ tst r0, r1
+ beq _02245292
+ mov r0, #2
+ bx lr
+_02245292:
+ mov r0, #0
+ bx lr
+ nop
+_02245298: .word 0x00002DAC
+
+ thumb_func_start MOD11_0224529C
+MOD11_0224529C: ; 0x0224529C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ add r7, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #0x84
+ tst r1, r0
+ beq _022452B4
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_022452B4:
+ mov r1, #1
+ add r2, r0, #0
+ tst r2, r1
+ bne _022452C2
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_022452C2:
+ mov r2, #2
+ tst r0, r2
+ beq _022452CE
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_022452CE:
+ ldr r0, [sp]
+ bl MOD11_02230140
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #4]
+_022452DA:
+ ldr r0, [sp, #4]
+ cmp r0, #4
+ bls _022452E2
+ b _02245478
+_022452E2:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022452EE: ; jump table
+ .short _022452F8 - _022452EE - 2 ; case 0
+ .short _0224533C - _022452EE - 2 ; case 1
+ .short _02245384 - _022452EE - 2 ; case 2
+ .short _022453F8 - _022452EE - 2 ; case 3
+ .short _02245478 - _022452EE - 2 ; case 4
+_022452F8:
+ ldr r0, _02245488 ; =0x00002E7C
+ ldrb r0, [r7, r0]
+ cmp r0, #1
+ bne _02245334
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r7, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _02245334
+ ldr r0, [sp, #8]
+ mov r1, #0xd
+ mov r2, #5
+ bl FUN_0206ACD4
+ cmp r0, #0
+ beq _02245334
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r7, r1]
+ mov r0, #0x20
+ orr r0, r2
+ str r0, [r7, r1]
+ mov r0, #0x13
+ mov r1, #0xd
+ lsl r0, r0, #4
+ str r1, [r7, r0]
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02245334:
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ b _02245478
+_0224533C:
+ ldr r1, _0224548C ; =0x00002E7D
+ mov r0, #2
+ ldrb r2, [r7, r1]
+ tst r0, r2
+ bne _0224537C
+ add r0, r1, #0
+ sub r0, #0x31
+ sub r1, #0x2d
+ ldr r2, [r7, r0]
+ ldr r0, [r7, r1]
+ lsr r0, r0, #1
+ cmp r2, r0
+ bhi _0224537C
+ ldr r0, [sp, #8]
+ mov r1, #0xe
+ mov r2, #5
+ bl FUN_0206ACD4
+ cmp r0, #0
+ beq _0224537C
+ ldr r1, _0224548C ; =0x00002E7D
+ mov r0, #2
+ ldrb r2, [r7, r1]
+ add sp, #0xc
+ orr r0, r2
+ strb r0, [r7, r1]
+ mov r0, #0x13
+ mov r1, #0xe
+ lsl r0, r0, #4
+ str r1, [r7, r0]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0224537C:
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ b _02245478
+_02245384:
+ ldr r0, _0224548C ; =0x00002E7D
+ ldrb r1, [r7, r0]
+ mov r0, #3
+ tst r0, r1
+ bne _022453F0
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_0222FF88
+ mov r6, #0
+ add r5, r0, #0
+ add r4, r6, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _022453C6
+_022453A4:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022453BA
+ add r6, r6, #1
+_022453BA:
+ add r0, r5, #0
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _022453A4
+_022453C6:
+ cmp r6, #1
+ bne _022453F0
+ ldr r0, [sp, #8]
+ mov r1, #0xf
+ mov r2, #5
+ bl FUN_0206ACD4
+ cmp r0, #0
+ beq _022453F0
+ ldr r1, _0224548C ; =0x00002E7D
+ mov r0, #3
+ ldrb r2, [r7, r1]
+ add sp, #0xc
+ orr r0, r2
+ strb r0, [r7, r1]
+ mov r0, #0x13
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r7, r0]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_022453F0:
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ b _02245478
+_022453F8:
+ ldr r0, _0224548C ; =0x00002E7D
+ ldrb r1, [r7, r0]
+ mov r0, #4
+ tst r0, r1
+ bne _02245472
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_0222FF88
+ mov r6, #0
+ add r5, r0, #0
+ add r4, r6, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0224543A
+_02245418:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0224542E
+ add r6, r6, #1
+_0224542E:
+ add r0, r5, #0
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _02245418
+_0224543A:
+ cmp r6, #1
+ bne _02245472
+ ldr r0, _02245490 ; =0x00002E4C
+ ldr r1, [r7, r0]
+ add r0, r0, #4
+ ldr r0, [r7, r0]
+ lsr r0, r0, #1
+ cmp r1, r0
+ bhi _02245472
+ ldr r0, [sp, #8]
+ mov r1, #0x10
+ mov r2, #5
+ bl FUN_0206ACD4
+ cmp r0, #0
+ beq _02245472
+ ldr r1, _0224548C ; =0x00002E7D
+ mov r0, #4
+ ldrb r2, [r7, r1]
+ add sp, #0xc
+ orr r0, r2
+ strb r0, [r7, r1]
+ mov r0, #0x13
+ mov r1, #0x10
+ lsl r0, r0, #4
+ str r1, [r7, r0]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02245472:
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+_02245478:
+ ldr r0, [sp, #4]
+ cmp r0, #4
+ beq _02245480
+ b _022452DA
+_02245480:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02245488: .word 0x00002E7C
+_0224548C: .word 0x00002E7D
+_02245490: .word 0x00002E4C
+
+ thumb_func_start MOD11_02245494
+MOD11_02245494: ; 0x02245494
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r1, _02245574 ; =0x00002144
+ add r5, r0, #0
+ mov r4, #0
+ add r0, r1, #0
+ str r4, [r5, r1]
+ mov r2, #1
+ add r0, #0xc
+ str r2, [r5, r0]
+ add r0, r1, #0
+ add r0, #8
+ str r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x10
+ str r4, [r5, r0]
+ add r0, r1, #0
+ mov r2, #0xa
+ add r0, #0x14
+ str r2, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x1c
+ str r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x20
+ str r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x28
+ str r4, [r5, r0]
+ mov r0, #0xff
+ add r2, r1, #0
+ str r0, [r5, #0x74]
+ add r2, #0x2c
+ str r4, [r5, r2]
+ add r2, r1, #0
+ add r2, #0x30
+ str r4, [r5, r2]
+ add r2, r1, #0
+ add r2, #0x34
+ str r4, [r5, r2]
+ add r2, r5, #0
+ add r2, #0x88
+ str r4, [r2]
+ add r2, r5, #0
+ add r2, #0x8c
+ str r4, [r2]
+ add r2, r5, #0
+ add r2, #0x94
+ str r0, [r2]
+ add r0, r1, #0
+ add r0, #0x38
+ strb r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x39
+ strb r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x3a
+ strb r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x3c
+ str r4, [r5, r0]
+ add r0, r1, #0
+ str r4, [r5, #0x38]
+ add r0, #0x40
+ str r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x44
+ str r4, [r5, r0]
+ str r4, [r5, #0x10]
+ str r4, [r5, #0x18]
+ str r4, [r5, #0x20]
+ str r4, [r5, #0x28]
+ str r4, [r5, #0x30]
+ str r4, [r5, #0x3c]
+ str r4, [r5, #0x40]
+ str r4, [r5, #0x48]
+ str r4, [r5, #0x4c]
+ str r4, [r5, #0x50]
+ add r0, r1, #0
+ str r4, [r5, #0x54]
+ sub r0, #8
+ ldr r2, [r5, r0]
+ ldr r0, _02245578 ; =0xFF880000
+ mov r7, #6
+ and r2, r0
+ add r0, r1, #0
+ sub r0, #8
+ str r2, [r5, r0]
+ sub r0, r1, #4
+ ldr r2, [r5, r0]
+ ldr r0, _0224557C ; =0xFFFFFEA1
+ and r2, r0
+ sub r0, r1, #4
+ str r2, [r5, r0]
+ ldr r0, _02245580 ; =0x00003120
+ strb r4, [r5, r0]
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r6, r5, r0
+_02245558:
+ mov r0, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ blx MIi_CpuClearFast
+ add r1, r5, r4
+ ldr r0, _02245584 ; =0x000021A4
+ add r4, r4, #1
+ add r6, #0x1c
+ strb r7, [r1, r0]
+ cmp r4, #4
+ blt _02245558
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02245574: .word 0x00002144
+_02245578: .word 0xFF880000
+_0224557C: .word 0xFFFFFEA1
+_02245580: .word 0x00003120
+_02245584: .word 0x000021A4
+
+ thumb_func_start MOD11_02245588
+MOD11_02245588: ; 0x02245588
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ str r0, [sp]
+ mov r4, #0
+ add r5, r6, #0
+ mov r7, #0xff
+_02245594:
+ ldr r0, _022455F0 ; =0x0000306C
+ add r2, r6, r4
+ strh r7, [r5, r0]
+ ldr r0, _022455F4 ; =0x000021A0
+ mov r1, #6
+ strb r1, [r2, r0]
+ bl FUN_0201B9EC
+ ldr r1, _022455F8 ; =0x0000310C
+ add r4, r4, #1
+ strh r0, [r5, r1]
+ add r5, r5, #2
+ cmp r4, #4
+ blt _02245594
+ ldr r0, _022455FC ; =0x00002168
+ mov r1, #1
+ str r1, [r6, r0]
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ str r1, [r6, r0]
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022455E4
+ add r0, r1, #0
+ bl FUN_0206A92C
+ ldr r1, _02245600 ; =0x00003108
+ ldrb r2, [r6, r1]
+ orr r0, r2
+ strb r0, [r6, r1]
+ mov r0, #3
+ bl FUN_0206A92C
+ ldr r1, _02245600 ; =0x00003108
+ ldrb r2, [r6, r1]
+ orr r0, r2
+ strb r0, [r6, r1]
+_022455E4:
+ ldr r0, _02245604 ; =0x0000311C
+ mov r1, #6
+ strb r1, [r6, r0]
+ add r0, r0, #1
+ strb r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022455F0: .word 0x0000306C
+_022455F4: .word 0x000021A0
+_022455F8: .word 0x0000310C
+_022455FC: .word 0x00002168
+_02245600: .word 0x00003108
+_02245604: .word 0x0000311C
+
+ thumb_func_start MOD11_02245608
+MOD11_02245608: ; 0x02245608
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ str r1, [sp, #4]
+ str r0, [sp]
+ ldr r1, _0224594C ; =0x00002DC8
+ ldr r0, [sp, #4]
+ add r4, r2, #0
+ add r1, r0, r1
+ mov r0, #0xc0
+ mul r0, r4
+ add r5, r1, r0
+ str r5, [sp, #0x14]
+ add r3, sp, #0x20
+ mov r2, #7
+_02245624:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02245624
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ ldr r1, [sp, #4]
+ lsl r2, r4, #4
+ add r1, r1, r2
+ ldr r2, _02245950 ; =0x000021A8
+ mov r0, #0x27
+ str r0, [r1, r2]
+ ldr r1, [sp, #4]
+ sub r2, #0x6c
+ ldr r1, [r1, r2]
+ add r0, #0xd9
+ tst r0, r1
+ bne _022456E2
+ mov r5, #0
+ cmp r6, #0
+ ble _022456BE
+ ldr r1, [sp, #4]
+ ldr r2, _02245954 ; =0x00002DCC
+ add r0, r1, #0
+ add r2, r0, r2
+ mov r0, #0x18
+ mov ip, r0
+ mov r7, #3
+_02245666:
+ ldr r0, _02245958 ; =0x00002DB0
+ ldr r3, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ tst r0, r3
+ beq _02245688
+ ldr r0, [r2]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1e
+ cmp r4, r0
+ bne _02245688
+ ldr r0, _02245958 ; =0x00002DB0
+ ldr r3, [r1, r0]
+ ldr r0, _0224595C ; =0xFBFFFFFF
+ and r3, r0
+ ldr r0, _02245958 ; =0x00002DB0
+ str r3, [r1, r0]
+_02245688:
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r3, [r1, r0]
+ mov r0, #0x18
+ tst r0, r3
+ beq _022456B4
+ ldr r0, [r2]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ cmp r4, r0
+ bne _022456B4
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r0, [r1, r0]
+ mov r3, ip
+ bic r0, r3
+ mov r3, #0xb7
+ lsl r3, r3, #6
+ str r0, [r1, r3]
+ ldr r0, [r2]
+ bic r0, r7
+ str r0, [r2]
+_022456B4:
+ add r5, r5, #1
+ add r1, #0xc0
+ add r2, #0xc0
+ cmp r5, r6
+ blt _02245666
+_022456BE:
+ mov r0, #0xc0
+ mul r0, r4
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #4]
+ ldr r1, [sp, #0xc]
+ mov r0, #0
+ add r1, r2, r1
+ ldr r2, _02245958 ; =0x00002DB0
+ str r0, [r1, r2]
+ ldr r1, [sp, #4]
+ add r2, #0x10
+ add r2, r1, r2
+ ldr r1, [sp, #0xc]
+ add r1, r2, r1
+ str r1, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ str r0, [r2, r1]
+ b _0224575A
+_022456E2:
+ mov r0, #0xc0
+ mul r0, r4
+ str r0, [sp, #0xc]
+ ldr r1, _02245958 ; =0x00002DB0
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ add r0, r0, r1
+ ldr r3, [r0, r2]
+ ldr r2, _02245960 ; =0x15100007
+ and r3, r2
+ ldr r2, [sp, #0xc]
+ str r3, [r0, r2]
+ add r2, r1, #0
+ ldr r0, [sp, #4]
+ add r2, #0x10
+ add r0, r0, r2
+ ldr r2, [sp, #0xc]
+ add r2, r0, r2
+ str r2, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ ldr r3, [r0, r2]
+ ldr r2, _02245964 ; =0x0FA3843F
+ and r3, r2
+ ldr r2, [sp, #0xc]
+ str r3, [r0, r2]
+ mov r2, #0
+ cmp r6, #0
+ ble _0224575A
+ ldr r0, [sp, #4]
+ add r1, #0x1c
+ add r3, r0, #0
+ add r1, r3, r1
+ mov r7, #0x18
+_02245724:
+ mov r3, #0xb7
+ lsl r3, r3, #6
+ ldr r5, [r0, r3]
+ mov r3, #0x18
+ tst r3, r5
+ beq _02245750
+ ldr r3, [r1]
+ lsl r3, r3, #0x1e
+ lsr r3, r3, #0x1e
+ cmp r4, r3
+ bne _02245750
+ mov r3, #0xb7
+ lsl r3, r3, #6
+ ldr r5, [r0, r3]
+ bic r5, r7
+ str r5, [r0, r3]
+ ldr r5, [r0, r3]
+ mov r3, #0x10
+ orr r5, r3
+ mov r3, #0xb7
+ lsl r3, r3, #6
+ str r5, [r0, r3]
+_02245750:
+ add r2, r2, #1
+ add r0, #0xc0
+ add r1, #0xc0
+ cmp r2, r6
+ blt _02245724
+_0224575A:
+ mov r0, #0
+ str r0, [sp, #8]
+ cmp r6, #0
+ ble _022457C2
+ ldr r5, [sp, #4]
+ ldr r1, _02245954 ; =0x00002DCC
+ add r0, r5, #0
+ add r7, r0, r1
+_0224576A:
+ add r0, r4, #0
+ bl FUN_0206A92C
+ ldr r1, _02245958 ; =0x00002DB0
+ lsl r0, r0, #0x10
+ ldr r1, [r5, r1]
+ tst r0, r1
+ beq _02245792
+ add r0, r4, #0
+ bl FUN_0206A92C
+ ldr r1, _02245958 ; =0x00002DB0
+ lsl r2, r0, #0x10
+ mov r0, #0
+ mvn r0, r0
+ ldr r1, [r5, r1]
+ eor r0, r2
+ and r1, r0
+ ldr r0, _02245958 ; =0x00002DB0
+ str r1, [r5, r0]
+_02245792:
+ ldr r0, _02245958 ; =0x00002DB0
+ ldr r1, [r5, r0]
+ mov r0, #0xe
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _022457B4
+ ldr r0, [r7]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ cmp r4, r0
+ bne _022457B4
+ ldr r0, _02245958 ; =0x00002DB0
+ ldr r1, [r5, r0]
+ ldr r0, _02245968 ; =0xFFFF1FFF
+ and r1, r0
+ ldr r0, _02245958 ; =0x00002DB0
+ str r1, [r5, r0]
+_022457B4:
+ ldr r0, [sp, #8]
+ add r5, #0xc0
+ add r0, r0, #1
+ add r7, #0xc0
+ str r0, [sp, #8]
+ cmp r0, r6
+ blt _0224576A
+_022457C2:
+ mov r2, #0
+ add r1, r2, #0
+_022457C6:
+ ldr r0, [sp, #0x14]
+ strb r1, [r0, r2]
+ add r2, r2, #1
+ cmp r2, #0x38
+ blo _022457C6
+ ldr r1, _0224596C ; =0x0000213C
+ ldr r0, [sp, #4]
+ ldr r1, [r0, r1]
+ mov r0, #1
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _0224587A
+ ldr r1, [sp, #4]
+ ldr r0, [sp, #0xc]
+ ldr r2, [sp, #0x38]
+ add r0, r1, r0
+ ldr r1, _02245970 ; =0x00002DE0
+ str r2, [r0, r1]
+ ldr r0, [sp, #4]
+ sub r1, #0x14
+ add r0, r0, r1
+ ldr r1, [sp, #0xc]
+ mov r2, #3
+ ldr r1, [r0, r1]
+ bic r1, r2
+ ldr r2, [sp, #0x24]
+ lsl r2, r2, #0x1e
+ lsr r3, r2, #0x1e
+ mov r2, #3
+ and r2, r3
+ orr r2, r1
+ ldr r1, [sp, #0xc]
+ str r2, [r0, r1]
+ ldr r3, [sp, #0x20]
+ ldr r1, [sp, #0x14]
+ lsl r3, r3, #0x11
+ lsr r3, r3, #0x1e
+ lsl r3, r3, #0x1e
+ ldr r1, [r1]
+ ldr r2, _02245974 ; =0xFFFF9FFF
+ lsr r3, r3, #0x11
+ and r1, r2
+ orr r3, r1
+ ldr r1, [sp, #0x14]
+ str r3, [r1]
+ ldr r1, [sp, #0xc]
+ ldr r3, [r0, r1]
+ asr r1, r2, #5
+ ldr r2, [sp, #0x24]
+ and r1, r3
+ lsl r2, r2, #0x16
+ lsr r2, r2, #0x1e
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x16
+ orr r2, r1
+ ldr r1, [sp, #0xc]
+ str r2, [r0, r1]
+ ldr r2, [r0, r1]
+ ldr r1, _02245968 ; =0xFFFF1FFF
+ and r1, r2
+ ldr r2, [sp, #0x24]
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x1d
+ lsl r2, r2, #0x1d
+ lsr r2, r2, #0x10
+ orr r2, r1
+ ldr r1, [sp, #0xc]
+ str r2, [r0, r1]
+ ldr r3, [sp, #0x24]
+ ldr r1, [r0, r1]
+ lsl r3, r3, #0xa
+ ldr r2, _02245978 ; =0xFFC7FFFF
+ lsr r3, r3, #0x1d
+ lsl r3, r3, #0x1d
+ and r1, r2
+ lsr r3, r3, #0xa
+ orr r3, r1
+ ldr r1, [sp, #0xc]
+ str r3, [r0, r1]
+ ldr r3, [r0, r1]
+ asr r1, r2, #3
+ ldr r2, [sp, #0x24]
+ and r1, r3
+ lsl r2, r2, #0xd
+ lsr r2, r2, #0x1d
+ lsl r2, r2, #0x1d
+ lsr r2, r2, #0xd
+ orr r2, r1
+ ldr r1, [sp, #0xc]
+ str r2, [r0, r1]
+_0224587A:
+ mov r0, #0xc0
+ add r3, r0, #0
+ ldr r2, [sp, #4]
+ add r3, #0x90
+ ldr r2, [r2, r3]
+ add r1, r4, #0
+ ldr r3, [sp, #4]
+ mul r1, r0
+ add r5, r0, #0
+ add r1, r3, r1
+ ldr r3, _0224597C ; =0x00002DD4
+ add r2, r2, #1
+ str r2, [r1, r3]
+ ldr r2, [sp, #4]
+ add r5, #0x90
+ ldr r2, [r2, r5]
+ add r0, #0x90
+ add r5, r2, #1
+ add r2, r3, #4
+ str r5, [r1, r2]
+ ldr r1, [sp, #0x14]
+ lsl r7, r4, #1
+ ldr r2, [r1]
+ ldr r1, _02245980 ; =0xBFFFFFFF
+ mov r5, #0
+ and r1, r2
+ ldr r2, [sp, #4]
+ ldr r0, [r2, r0]
+ add r0, r0, #1
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #1
+ orr r1, r0
+ ldr r0, [sp, #0x14]
+ str r1, [r0]
+ add r0, r2, #0
+ ldr r1, _02245984 ; =0x0000305C
+ add r3, r0, r7
+ add r0, r1, #0
+ strh r5, [r3, r1]
+ add r0, #8
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ mov r2, #0xff
+ add r0, #0x10
+ strh r2, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x18
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x20
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x28
+ strh r5, [r3, r0]
+ ldr r0, [sp, #4]
+ lsl r2, r4, #3
+ add r0, r0, r2
+ add r2, r1, #0
+ add r2, #0x30
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x32
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x34
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x36
+ strh r5, [r0, r2]
+ add r0, r1, #0
+ add r0, #0x50
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x68
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x70
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x78
+ strh r5, [r3, r0]
+ add r1, #0x80
+ add r0, r4, #0
+ strh r5, [r3, r1]
+ bl FUN_0206A92C
+ mov r1, #6
+ lsl r3, r0, #8
+ sub r0, r5, #1
+ ldr r2, [sp, #4]
+ lsl r1, r1, #6
+ ldr r2, [r2, r1]
+ eor r0, r3
+ and r2, r0
+ ldr r0, [sp, #4]
+ str r2, [r0, r1]
+ ldr r0, [sp, #0x10]
+ ldr r1, [r0]
+ mov r0, #2
+ lsl r0, r0, #0x16
+ tst r0, r1
+ beq _022459A2
+ ldr r0, _02245988 ; =0x00002D42
+ b _0224598C
+ nop
+_0224594C: .word 0x00002DC8
+_02245950: .word 0x000021A8
+_02245954: .word 0x00002DCC
+_02245958: .word 0x00002DB0
+_0224595C: .word 0xFBFFFFFF
+_02245960: .word 0x15100007
+_02245964: .word 0x0FA3843F
+_02245968: .word 0xFFFF1FFF
+_0224596C: .word 0x0000213C
+_02245970: .word 0x00002DE0
+_02245974: .word 0xFFFF9FFF
+_02245978: .word 0xFFC7FFFF
+_0224597C: .word 0x00002DD4
+_02245980: .word 0xBFFFFFFF
+_02245984: .word 0x0000305C
+_02245988: .word 0x00002D42
+_0224598C:
+ ldr r1, [sp, #4]
+ add r5, r1, r0
+ ldr r1, [sp, #0xc]
+ ldrh r3, [r5, r1]
+ add r1, r0, #2
+ ldr r0, [sp, #4]
+ add r2, r0, r1
+ ldr r0, [sp, #0xc]
+ ldrh r1, [r2, r0]
+ strh r1, [r5, r0]
+ strh r3, [r2, r0]
+_022459A2:
+ mov r5, #0
+ cmp r6, #0
+ ble _022459E6
+ ldr r0, [sp, #4]
+ str r0, [sp, #0x18]
+ add r7, r0, r7
+_022459AE:
+ cmp r5, r4
+ beq _022459D2
+ ldr r0, [sp]
+ add r1, r5, #0
+ bl MOD11_02230270
+ str r0, [sp, #0x1c]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #0x1c]
+ cmp r1, r0
+ beq _022459D2
+ ldr r1, [sp, #0x18]
+ ldr r0, _02245A08 ; =0x00003084
+ mov r2, #0
+ strh r2, [r1, r0]
+_022459D2:
+ ldr r0, _02245A0C ; =0x0000308C
+ mov r1, #0
+ strh r1, [r7, r0]
+ ldr r0, [sp, #0x18]
+ add r5, r5, #1
+ add r0, r0, #2
+ str r0, [sp, #0x18]
+ add r7, #8
+ cmp r5, r6
+ blt _022459AE
+_022459E6:
+ lsl r1, r4, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C818
+ lsl r1, r4, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C830
+ lsl r1, r4, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C83C
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02245A08: .word 0x00003084
+_02245A0C: .word 0x0000308C
+
+ thumb_func_start MOD11_02245A10
+MOD11_02245A10: ; 0x02245A10
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #4]
+ str r0, [sp]
+ add r5, r2, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #0xc]
+ mov r0, #0xc0
+ mul r0, r5
+ ldr r1, [sp, #4]
+ str r0, [sp, #8]
+ add r3, r1, r0
+ ldr r0, _02245C34 ; =0x00002D58
+ mov r2, #0
+ mov r1, #6
+_02245A30:
+ add r2, r2, #1
+ strb r1, [r3, r0]
+ add r3, r3, #1
+ cmp r2, #8
+ blt _02245A30
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ ldr r0, [sp, #4]
+ mov r7, #0
+ add r2, r0, r1
+ ldr r1, _02245C38 ; =0x00002DB0
+ add r0, r1, #0
+ str r7, [r2, r1]
+ add r0, #0x10
+ str r7, [r2, r0]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ ble _02245AD6
+ ldr r4, [sp, #4]
+ add r1, #0x1c
+ add r0, r4, #0
+ add r6, r0, r1
+_02245A5E:
+ ldr r0, _02245C38 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ tst r0, r1
+ beq _02245A80
+ ldr r0, [r6]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1e
+ cmp r5, r0
+ bne _02245A80
+ ldr r0, _02245C38 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ ldr r0, _02245C3C ; =0xFBFFFFFF
+ and r1, r0
+ ldr r0, _02245C38 ; =0x00002DB0
+ str r1, [r4, r0]
+_02245A80:
+ add r0, r5, #0
+ bl FUN_0206A92C
+ ldr r1, _02245C38 ; =0x00002DB0
+ lsl r0, r0, #0x10
+ ldr r1, [r4, r1]
+ tst r0, r1
+ beq _02245AA8
+ add r0, r5, #0
+ bl FUN_0206A92C
+ ldr r1, _02245C38 ; =0x00002DB0
+ lsl r2, r0, #0x10
+ mov r0, #0
+ mvn r0, r0
+ ldr r1, [r4, r1]
+ eor r0, r2
+ and r1, r0
+ ldr r0, _02245C38 ; =0x00002DB0
+ str r1, [r4, r0]
+_02245AA8:
+ ldr r0, _02245C38 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ mov r0, #0xe
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02245ACA
+ ldr r0, [r6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ cmp r5, r0
+ bne _02245ACA
+ ldr r0, _02245C38 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ ldr r0, _02245C40 ; =0xFFFF1FFF
+ and r1, r0
+ ldr r0, _02245C38 ; =0x00002DB0
+ str r1, [r4, r0]
+_02245ACA:
+ ldr r0, [sp, #0xc]
+ add r7, r7, #1
+ add r4, #0xc0
+ add r6, #0xc0
+ cmp r7, r0
+ blt _02245A5E
+_02245AD6:
+ ldr r1, _02245C44 ; =0x00002DC8
+ ldr r0, [sp, #4]
+ add r1, r0, r1
+ ldr r0, [sp, #8]
+ add r6, r1, r0
+ mov r1, #0
+ add r0, r1, #0
+_02245AE4:
+ strb r0, [r6, r1]
+ add r1, r1, #1
+ cmp r1, #0x38
+ blo _02245AE4
+ mov r2, #0x75
+ ldr r1, [sp, #4]
+ lsl r2, r2, #2
+ add r2, r1, r2
+ lsl r1, r5, #6
+ add r1, r2, r1
+ mov r4, #0
+_02245AFA:
+ strb r4, [r1, r0]
+ add r0, r0, #1
+ cmp r0, #0x40
+ blo _02245AFA
+ mov r2, #0xc0
+ add r3, r2, #0
+ ldr r0, [sp, #4]
+ add r3, #0x90
+ ldr r0, [r0, r3]
+ add r1, r5, #0
+ ldr r3, [sp, #4]
+ mul r1, r2
+ add r3, r3, r1
+ add r1, r2, #0
+ ldr r7, _02245C48 ; =0x00002DD4
+ add r0, r0, #1
+ str r0, [r3, r7]
+ ldr r0, [sp, #4]
+ add r1, #0x90
+ ldr r0, [r0, r1]
+ add r1, r7, #4
+ add r0, r0, #1
+ str r0, [r3, r1]
+ ldr r1, [r6]
+ ldr r0, _02245C4C ; =0xBFFFFFFF
+ add r2, #0x90
+ and r0, r1
+ ldr r1, [sp, #4]
+ mov r3, #0xff
+ ldr r1, [r1, r2]
+ add r1, r1, #1
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #1
+ orr r0, r1
+ str r0, [r6]
+ ldr r0, [sp, #4]
+ lsl r6, r5, #1
+ add r2, r0, r6
+ ldr r0, _02245C50 ; =0x0000305C
+ add r1, r0, #0
+ strh r4, [r2, r0]
+ add r1, #8
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x10
+ strh r3, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x18
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x20
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x28
+ strh r4, [r2, r1]
+ ldr r1, [sp, #4]
+ lsl r3, r5, #3
+ add r1, r1, r3
+ add r3, r0, #0
+ add r3, #0x30
+ strh r4, [r1, r3]
+ add r3, r0, #0
+ add r3, #0x32
+ strh r4, [r1, r3]
+ add r3, r0, #0
+ add r3, #0x34
+ strh r4, [r1, r3]
+ add r3, r0, #0
+ add r3, #0x36
+ strh r4, [r1, r3]
+ add r1, r0, #0
+ add r1, #0x50
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x68
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x70
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x78
+ strh r4, [r2, r1]
+ add r0, #0x80
+ strh r4, [r2, r0]
+ add r0, r5, #0
+ bl FUN_0206A92C
+ mov r1, #6
+ lsl r3, r0, #8
+ mov r0, #0
+ mvn r0, r0
+ ldr r2, [sp, #4]
+ lsl r1, r1, #6
+ ldr r2, [r2, r1]
+ eor r0, r3
+ and r2, r0
+ ldr r0, [sp, #4]
+ mov r4, #0
+ str r2, [r0, r1]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ ble _02245C00
+ ldr r7, [sp, #4]
+ add r0, r7, #0
+ add r6, r0, r6
+_02245BCC:
+ cmp r4, r5
+ beq _02245BEE
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230270
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ add r1, r5, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ beq _02245BEE
+ ldr r0, _02245C54 ; =0x00003084
+ mov r1, #0
+ strh r1, [r7, r0]
+_02245BEE:
+ ldr r0, _02245C58 ; =0x0000308C
+ mov r1, #0
+ strh r1, [r6, r0]
+ ldr r0, [sp, #0xc]
+ add r4, r4, #1
+ add r7, r7, #2
+ add r6, #8
+ cmp r4, r0
+ blt _02245BCC
+_02245C00:
+ mov r1, #0x4f
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ add r3, r0, r1
+ lsl r2, r5, #2
+ ldr r1, [r3, r2]
+ mov r0, #1
+ bic r1, r0
+ str r1, [r3, r2]
+ lsl r1, r5, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C818
+ lsl r1, r5, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C830
+ lsl r1, r5, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C83C
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02245C34: .word 0x00002D58
+_02245C38: .word 0x00002DB0
+_02245C3C: .word 0xFBFFFFFF
+_02245C40: .word 0xFFFF1FFF
+_02245C44: .word 0x00002DC8
+_02245C48: .word 0x00002DD4
+_02245C4C: .word 0xBFFFFFFF
+_02245C50: .word 0x0000305C
+_02245C54: .word 0x00003084
+_02245C58: .word 0x0000308C
+
+ thumb_func_start MOD11_02245C5C
+MOD11_02245C5C: ; 0x02245C5C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x75
+ add r5, r1, #0
+ lsl r0, r0, #2
+ add r7, r5, r0
+ mov r0, #0xd1
+ lsl r0, r0, #2
+ add r6, r5, r0
+ mov r0, #8
+ add r4, r5, #0
+ str r0, [sp, #8]
+_02245C7A:
+ mov r0, #0
+ add r1, r7, #0
+ mov r2, #0x40
+ blx MIi_CpuClearFast
+ mov r0, #0
+ add r1, r6, #0
+ mov r2, #4
+ blx MIi_CpuClearFast
+ ldr r0, _02245D24 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ ldr r0, [sp, #8]
+ bic r1, r0
+ ldr r0, _02245D24 ; =0x00002DB0
+ str r1, [r4, r0]
+ add r0, #0x20
+ ldr r0, [r4, r0]
+ add r1, r0, #1
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r1, r0
+ bge _02245CB6
+ ldr r0, _02245D24 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ ldr r0, _02245D28 ; =0xFFBFFFFF
+ and r1, r0
+ ldr r0, _02245D24 ; =0x00002DB0
+ str r1, [r4, r0]
+_02245CB6:
+ ldr r0, _02245D2C ; =0x00002DAC
+ ldr r1, [r4, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02245CD6
+ ldr r0, _02245D24 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02245CD6
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r5, #0
+ bl MOD11_022451F0
+_02245CD6:
+ ldr r0, _02245D2C ; =0x00002DAC
+ ldr r1, [r4, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02245CF8
+ ldr r0, _02245D24 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ mov r0, #3
+ lsl r0, r0, #0xa
+ tst r0, r1
+ beq _02245CF8
+ ldr r0, _02245D24 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ ldr r0, _02245D30 ; =0xFFFFF3FF
+ and r1, r0
+ ldr r0, _02245D24 ; =0x00002DB0
+ str r1, [r4, r0]
+_02245CF8:
+ ldr r0, [sp, #4]
+ add r7, #0x40
+ add r0, r0, #1
+ add r6, r6, #4
+ add r4, #0xc0
+ str r0, [sp, #4]
+ cmp r0, #4
+ blt _02245C7A
+ mov r2, #0x71
+ lsl r2, r2, #2
+ ldr r0, [r5, r2]
+ ldr r1, _02245D34 ; =0xFFEFFFFF
+ and r0, r1
+ str r0, [r5, r2]
+ add r0, r2, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ add r2, #8
+ and r0, r1
+ str r0, [r5, r2]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02245D24: .word 0x00002DB0
+_02245D28: .word 0xFFBFFFFF
+_02245D2C: .word 0x00002DAC
+_02245D30: .word 0xFFFFF3FF
+_02245D34: .word 0xFFEFFFFF
+
+ thumb_func_start MOD11_02245D38
+MOD11_02245D38: ; 0x02245D38
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ str r0, [sp]
+ ldr r0, [sp, #0x70]
+ add r7, r1, #0
+ str r0, [sp, #0x70]
+ str r2, [sp, #4]
+ add r0, r7, #0
+ add r1, r2, #0
+ add r5, r3, #0
+ bl MOD11_02249D90
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ add r4, r7, r1
+ str r1, [sp, #0x38]
+ ldr r0, [sp, #0x70]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x70]
+ mov r1, #2
+ and r0, r1
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x70]
+ mov r1, #4
+ and r0, r1
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #4]
+ mov r1, #8
+ lsl r0, r0, #1
+ add r0, r7, r0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x70]
+ mov r2, #0x10
+ and r0, r1
+ ldr r1, _02245F50 ; =0x00002DC8
+ str r0, [sp, #0x1c]
+ add r0, r7, r1
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x70]
+ sub r1, #0x88
+ and r0, r2
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x70]
+ mov r2, #0x20
+ and r0, r2
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x70]
+ mov r2, #0x40
+ and r0, r2
+ str r0, [sp, #0x10]
+ ldr r2, [sp, #0x70]
+ mov r0, #0x80
+ and r2, r0
+ str r2, [sp, #0xc]
+ lsl r2, r0, #2
+ ldr r0, [sp, #0x70]
+ mov r6, #0
+ and r0, r2
+ str r0, [sp, #8]
+ add r0, r7, r1
+ str r0, [sp, #0x40]
+ ldr r0, _02245F54 ; =0x00002DE8
+ str r4, [sp, #0x30]
+ add r0, r4, r0
+ str r0, [sp, #0x44]
+ ldr r0, _02245F58 ; =0x00002DB0
+ add r0, r4, r0
+ str r0, [sp, #0x48]
+ ldr r0, _02245F5C ; =0x00002DEC
+ add r0, r4, r0
+ str r0, [sp, #0x4c]
+ ldr r0, _02245F60 ; =0x00002DF8
+ add r0, r4, r0
+ str r0, [sp, #0x50]
+ ldr r0, _02245F60 ; =0x00002DF8
+ add r0, r4, r0
+ str r0, [sp, #0x58]
+ ldr r0, _02245F60 ; =0x00002DF8
+ add r0, r4, r0
+ str r0, [sp, #0x54]
+_02245DE0:
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r0, #0
+ bne _02245DF6
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0
+ beq _02245DF6
+ add r0, r6, #0
+ bl FUN_0206A92C
+ orr r5, r0
+_02245DF6:
+ ldr r1, [sp, #0x30]
+ ldr r0, _02245F68 ; =0x00002D6C
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _02245E0E
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ beq _02245E0E
+ add r0, r6, #0
+ bl FUN_0206A92C
+ orr r5, r0
+_02245E0E:
+ ldr r0, [sp, #0x44]
+ ldrh r1, [r0]
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r1, r0
+ bne _02245E28
+ ldr r0, [sp, #0x24]
+ cmp r0, #0
+ beq _02245E28
+ add r0, r6, #0
+ bl FUN_0206A92C
+ orr r5, r0
+_02245E28:
+ ldr r1, [sp, #0x20]
+ ldr r0, _02245F6C ; =0x0000307C
+ ldrh r1, [r1, r0]
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r1, r0
+ bne _02245E50
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _02245E50
+ ldr r0, [sp, #0x48]
+ ldr r1, [r0]
+ mov r0, #2
+ lsl r0, r0, #0x1e
+ tst r0, r1
+ beq _02245E50
+ add r0, r6, #0
+ bl FUN_0206A92C
+ orr r5, r0
+_02245E50:
+ ldr r1, [sp, #0x3c]
+ ldr r0, [sp, #0x38]
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1d
+ beq _02245E7A
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ beq _02245E7A
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r7, r0
+ ldr r0, _02245F70 ; =0x000003E1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _02245E7A
+ add r0, r6, #0
+ bl FUN_0206A92C
+ orr r5, r0
+_02245E7A:
+ ldr r3, _02245F64 ; =0x00002D4C
+ ldr r0, [sp]
+ ldrh r3, [r4, r3]
+ ldr r2, [sp, #4]
+ add r1, r7, #0
+ bl MOD11_022471C4
+ cmp r0, #0
+ beq _02245E9A
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _02245E9A
+ add r0, r6, #0
+ bl FUN_0206A92C
+ orr r5, r0
+_02245E9A:
+ ldr r3, _02245F64 ; =0x00002D4C
+ ldr r0, [sp]
+ ldrh r3, [r4, r3]
+ ldr r2, [sp, #4]
+ add r1, r7, #0
+ bl MOD11_02247314
+ cmp r0, #0
+ beq _02245EBA
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _02245EBA
+ add r0, r6, #0
+ bl FUN_0206A92C
+ orr r5, r0
+_02245EBA:
+ ldr r3, _02245F64 ; =0x00002D4C
+ ldr r0, [sp]
+ ldrh r3, [r4, r3]
+ ldr r2, [sp, #4]
+ add r1, r7, #0
+ bl MOD11_02247348
+ cmp r0, #0
+ beq _02245EDA
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ beq _02245EDA
+ add r0, r6, #0
+ bl FUN_0206A92C
+ orr r5, r0
+_02245EDA:
+ ldr r0, [sp, #0x4c]
+ ldrh r1, [r0]
+ cmp r1, #0
+ beq _02245EF2
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r1, r0
+ beq _02245EF2
+ add r0, r6, #0
+ bl FUN_0206A92C
+ orr r5, r0
+_02245EF2:
+ ldr r0, [sp, #0x34]
+ cmp r0, #0x36
+ beq _02245F00
+ cmp r0, #0x72
+ beq _02245F00
+ cmp r0, #0x7c
+ bne _02245F38
+_02245F00:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _02245F38
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #0x38]
+ add r0, r1, r0
+ ldr r1, [sp, #0x50]
+ ldrh r1, [r1]
+ bl MOD11_022461AC
+ cmp r0, #4
+ bne _02245F20
+ ldr r0, [sp, #0x54]
+ mov r1, #0
+ strh r1, [r0]
+ b _02245F38
+_02245F20:
+ ldr r0, [sp, #0x58]
+ ldrh r1, [r0]
+ cmp r1, #0
+ beq _02245F38
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r1, r0
+ beq _02245F38
+ add r0, r6, #0
+ bl FUN_0206A92C
+ orr r5, r0
+_02245F38:
+ ldr r0, [sp, #0x30]
+ add r6, r6, #1
+ add r0, r0, #1
+ add r4, r4, #2
+ str r0, [sp, #0x30]
+ cmp r6, #4
+ bge _02245F48
+ b _02245DE0
+_02245F48:
+ add r0, r5, #0
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02245F50: .word 0x00002DC8
+_02245F54: .word 0x00002DE8
+_02245F58: .word 0x00002DB0
+_02245F5C: .word 0x00002DEC
+_02245F60: .word 0x00002DF8
+_02245F64: .word 0x00002D4C
+_02245F68: .word 0x00002D6C
+_02245F6C: .word 0x0000307C
+_02245F70: .word 0x000003E1
+
+ thumb_func_start MOD11_02245F74
+MOD11_02245F74: ; 0x02245F74
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r7, r3, #0
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r3, #4
+ str r3, [sp]
+ mov r3, #0
+ str r0, [sp, #4]
+ add r5, r1, #0
+ add r6, r2, #0
+ ldr r4, [sp, #0x40]
+ bl MOD11_02245D38
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ bl FUN_0206A92C
+ ldr r1, [sp, #0xc]
+ tst r0, r1
+ beq _02245FC6
+ mov r0, #0xa
+ strb r0, [r4, #1]
+ ldr r0, _02246188 ; =0x00000261
+ add r1, r6, #0
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ lsl r0, r7, #1
+ add r1, r1, r0
+ ldr r0, _0224618C ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_02245FC6:
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ bl FUN_0206A92C
+ ldr r1, [sp, #0x10]
+ tst r0, r1
+ beq _02245FFE
+ mov r0, #2
+ strb r0, [r4, #1]
+ mov r0, #0x99
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_02245FFE:
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ bl FUN_0206A92C
+ ldr r1, [sp, #0x14]
+ tst r0, r1
+ beq _02246044
+ mov r0, #0xa
+ strb r0, [r4, #1]
+ ldr r0, _02246190 ; =0x00000265
+ add r1, r6, #0
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ lsl r0, r7, #1
+ add r1, r1, r0
+ ldr r0, _0224618C ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_02246044:
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x18]
+ add r0, r7, #0
+ bl FUN_0206A92C
+ ldr r1, [sp, #0x18]
+ tst r0, r1
+ beq _0224608C
+ mov r0, #0xa
+ strb r0, [r4, #1]
+ mov r0, #0x9a
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ lsl r0, r7, #1
+ add r1, r1, r0
+ ldr r0, _0224618C ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_0224608C:
+ mov r0, #0x40
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x1c]
+ add r0, r7, #0
+ bl FUN_0206A92C
+ ldr r1, [sp, #0x1c]
+ tst r0, r1
+ beq _022460D2
+ mov r0, #0xa
+ strb r0, [r4, #1]
+ ldr r0, _02246194 ; =0x000003E9
+ add r1, r6, #0
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ lsl r0, r7, #1
+ add r1, r1, r0
+ ldr r0, _0224618C ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_022460D2:
+ mov r0, #0x80
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x20]
+ add r0, r7, #0
+ bl FUN_0206A92C
+ ldr r1, [sp, #0x20]
+ tst r0, r1
+ beq _0224611C
+ mov r0, #0x22
+ strb r0, [r4, #1]
+ ldr r0, _02246198 ; =0x00000421
+ add r1, r6, #0
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ ldr r0, _0224619C ; =0x00000179
+ str r0, [r4, #8]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ lsl r0, r7, #1
+ add r1, r1, r0
+ ldr r0, _0224618C ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_0224611C:
+ mov r0, #2
+ lsl r0, r0, #8
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x24]
+ add r0, r7, #0
+ bl FUN_0206A92C
+ ldr r1, [sp, #0x24]
+ tst r0, r1
+ beq _0224615C
+ mov r0, #0x18
+ strb r0, [r4, #1]
+ ldr r0, _022461A0 ; =0x0000038F
+ strh r0, [r4, #2]
+ mov r0, #0xc0
+ mul r0, r6
+ add r2, r5, r0
+ ldr r0, _022461A4 ; =0x00002DB8
+ ldrh r1, [r2, r0]
+ add r0, #0x40
+ str r1, [r4, #4]
+ ldrh r0, [r2, r0]
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_0224615C:
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ add r5, r0, #0
+ add r0, r7, #0
+ bl FUN_0206A92C
+ tst r0, r5
+ beq _02246182
+ mov r0, #0
+ str r0, [sp, #8]
+ strb r0, [r4, #1]
+ ldr r0, _022461A8 ; =0x00000337
+ strh r0, [r4, #2]
+_02246182:
+ ldr r0, [sp, #8]
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02246188: .word 0x00000261
+_0224618C: .word 0x00002D4C
+_02246190: .word 0x00000265
+_02246194: .word 0x000003E9
+_02246198: .word 0x00000421
+_0224619C: .word 0x00000179
+_022461A0: .word 0x0000038F
+_022461A4: .word 0x00002DB8
+_022461A8: .word 0x00000337
+
+ thumb_func_start MOD11_022461AC
+MOD11_022461AC: ; 0x022461AC
+ mov r3, #0
+_022461AE:
+ ldrh r2, [r0, #0xc]
+ cmp r1, r2
+ beq _022461BC
+ add r3, r3, #1
+ add r0, r0, #2
+ cmp r3, #4
+ blt _022461AE
+_022461BC:
+ add r0, r3, #0
+ bx lr
+
+ thumb_func_start MOD11_022461C0
+MOD11_022461C0: ; 0x022461C0
+ push {r4, r5, r6, lr}
+ add r6, r2, #0
+ add r1, r6, #0
+ add r5, r0, #0
+ add r4, r3, #0
+ bl MOD11_02249D90
+ mov r1, #1
+ cmp r0, #0x69
+ beq _022461E6
+ mov r0, #0xc0
+ mul r0, r6
+ add r2, r5, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r2, [r2, r0]
+ lsl r0, r1, #0xa
+ tst r0, r2
+ beq _022461FC
+_022461E6:
+ lsl r0, r4, #1
+ add r2, r4, r0
+ ldr r0, _0224626C ; =0x0225E379
+ ldrb r0, [r0, r2]
+ cmp r0, #2
+ bne _022461FC
+ ldr r0, _02246270 ; =0x0225E37A
+ ldrb r0, [r0, r2]
+ cmp r0, #0
+ bne _022461FC
+ mov r1, #0
+_022461FC:
+ lsl r0, r6, #6
+ add r2, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ beq _0224621A
+ lsl r0, r4, #1
+ add r2, r4, r0
+ ldr r0, _0224626C ; =0x0225E379
+ ldrb r0, [r0, r2]
+ cmp r0, #2
+ bne _0224621A
+ mov r1, #0
+_0224621A:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r2, [r5, r0]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r2
+ beq _0224623E
+ lsl r0, r4, #1
+ add r2, r4, r0
+ ldr r0, _0224626C ; =0x0225E379
+ ldrb r0, [r0, r2]
+ cmp r0, #2
+ bne _0224623E
+ ldr r0, _02246270 ; =0x0225E37A
+ ldrb r0, [r0, r2]
+ cmp r0, #0
+ bne _0224623E
+ mov r1, #0
+_0224623E:
+ mov r0, #0xc0
+ mul r0, r6
+ add r2, r5, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r2, [r2, r0]
+ mov r0, #1
+ lsl r0, r0, #0x16
+ tst r0, r2
+ beq _02246268
+ lsl r0, r4, #1
+ add r2, r4, r0
+ ldr r0, _0224626C ; =0x0225E379
+ ldrb r0, [r0, r2]
+ cmp r0, #0x11
+ bne _02246268
+ ldr r0, _02246270 ; =0x0225E37A
+ ldrb r0, [r0, r2]
+ cmp r0, #0
+ bne _02246268
+ mov r1, #0
+_02246268:
+ add r0, r1, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224626C: .word 0x0225E379
+_02246270: .word 0x0225E37A
+
+ thumb_func_start MOD11_02246274
+MOD11_02246274: ; 0x02246274
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ ldr r0, [sp, #0x50]
+ add r5, r1, #0
+ str r0, [sp, #0x50]
+ ldr r0, [sp, #0x54]
+ str r2, [sp, #8]
+ str r0, [sp, #0x54]
+ add r0, r2, #0
+ add r4, r3, #0
+ ldr r7, [sp, #0x48]
+ ldr r6, [sp, #0x4c]
+ cmp r0, #0xa5
+ bne _02246296
+ ldr r0, [sp, #0x50]
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+_02246296:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02249D90
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x24]
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02249D90
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _022462DE
+ mov r0, #0
+ str r0, [sp, #0x28]
+ b _022462F6
+_022462DE:
+ cmp r4, #0
+ beq _022462EA
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x28]
+ b _022462F6
+_022462EA:
+ ldr r0, [sp, #8]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02246588 ; =0x000003E2
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0x28]
+_022462F6:
+ ldr r0, [sp, #8]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224658C ; =0x000003E1
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0x14]
+ ldr r0, _02246590 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ tst r0, r1
+ bne _02246354
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x28]
+ cmp r1, r0
+ beq _02246332
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x28]
+ cmp r1, r0
+ bne _02246354
+_02246332:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x5b
+ bne _02246346
+ ldr r0, [sp, #0x50]
+ lsl r0, r0, #1
+ str r0, [sp, #0x50]
+ b _02246354
+_02246346:
+ ldr r1, [sp, #0x50]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ blx _s32_div_f
+ str r0, [sp, #0x50]
+_02246354:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ mov r3, #0x1a
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02246380
+ ldr r0, [sp, #0x28]
+ cmp r0, #4
+ bne _02246380
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x69
+ beq _02246380
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ orr r1, r0
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+ b _0224649C
+_02246380:
+ mov r0, #0xc0
+ add r1, r6, #0
+ mul r1, r0
+ ldr r0, _02246594 ; =0x00002DCC
+ add r3, r5, r1
+ ldr r2, [r3, r0]
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x1d
+ beq _022463B8
+ sub r0, #0xc
+ ldr r2, [r3, r0]
+ mov r0, #1
+ lsl r0, r0, #0xa
+ tst r2, r0
+ bne _022463B8
+ ldr r2, [sp, #0x28]
+ cmp r2, #4
+ bne _022463B8
+ ldr r2, [sp, #0x20]
+ cmp r2, #0x69
+ beq _022463B8
+ ldr r1, [sp, #0x54]
+ lsl r0, r0, #0xa
+ ldr r1, [r1]
+ orr r1, r0
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+ b _0224649C
+_022463B8:
+ add r0, r5, r1
+ mov r4, #0
+ str r0, [sp, #0x18]
+_022463BE:
+ lsl r0, r4, #1
+ ldr r1, _02246598 ; =0x0225E378
+ add r0, r4, r0
+ add r1, r1, r0
+ str r1, [sp, #0xc]
+ ldr r1, _02246598 ; =0x0225E378
+ ldrb r1, [r1, r0]
+ cmp r1, #0xfe
+ bne _022463EE
+ ldr r1, [sp, #0x18]
+ ldr r0, _0224659C ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #2
+ lsl r0, r0, #0x1c
+ tst r0, r1
+ bne _0224649C
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x71
+ beq _0224649C
+ add r4, r4, #1
+ b _02246490
+_022463EE:
+ ldr r0, [sp, #0x28]
+ cmp r0, r1
+ bne _0224648E
+ ldr r0, [sp, #0xc]
+ add r1, r6, #0
+ ldrb r0, [r0, #1]
+ mov r2, #0x1b
+ mov r3, #0
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ bne _02246434
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_022461C0
+ cmp r0, #1
+ bne _02246434
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0xc]
+ str r0, [sp]
+ ldr r0, [sp, #0x54]
+ ldr r3, [sp, #0x50]
+ str r0, [sp, #4]
+ ldrb r2, [r2, #2]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0224C648
+ str r0, [sp, #0x50]
+_02246434:
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ bne _0224648E
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ str r0, [sp, #0x2c]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x2c]
+ cmp r1, r0
+ beq _0224648E
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_022461C0
+ cmp r0, #1
+ bne _0224648E
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0xc]
+ str r0, [sp]
+ ldr r0, [sp, #0x54]
+ ldr r3, [sp, #0x50]
+ str r0, [sp, #4]
+ ldrb r2, [r2, #2]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0224C648
+ str r0, [sp, #0x50]
+_0224648E:
+ add r4, r4, #1
+_02246490:
+ lsl r0, r4, #1
+ add r1, r4, r0
+ ldr r0, _02246598 ; =0x0225E378
+ ldrb r0, [r0, r1]
+ cmp r0, #0xff
+ bne _022463BE
+_0224649C:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ mov r3, #0x19
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022464E0
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0224C6D4
+ cmp r0, #0
+ beq _022464E0
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #2
+ tst r0, r1
+ beq _022464CA
+ mov r0, #6
+ and r0, r1
+ cmp r0, #6
+ bne _022464E0
+_022464CA:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _022464E0
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #1
+ lsl r0, r0, #0x12
+ orr r1, r0
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+ b _02246582
+_022464E0:
+ ldr r0, _02246590 ; =0x0000213C
+ ldr r2, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ add r1, r2, #0
+ tst r1, r0
+ bne _0224656E
+ lsl r0, r0, #4
+ tst r0, r2
+ bne _0224656E
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #2
+ tst r0, r1
+ beq _0224654A
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _0224654A
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ mov r3, #0x6f
+ bl MOD11_02246D84
+ cmp r0, #1
+ beq _02246524
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ mov r3, #0x74
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02246532
+_02246524:
+ ldr r0, [sp, #0x50]
+ lsl r1, r0, #1
+ add r0, r0, r1
+ mov r1, #4
+ bl MOD11_022476C0
+ str r0, [sp, #0x50]
+_02246532:
+ ldr r0, [sp, #0x24]
+ cmp r0, #0x5f
+ bne _0224654A
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x50]
+ add r0, #0x64
+ str r0, [sp, #0x1c]
+ mul r0, r1
+ mov r1, #0x64
+ blx _s32_div_f
+ str r0, [sp, #0x50]
+_0224654A:
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #4
+ tst r0, r1
+ beq _02246582
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _02246582
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x6e
+ bne _02246582
+ ldr r0, [sp, #0x50]
+ lsl r0, r0, #1
+ str r0, [sp, #0x50]
+ b _02246582
+_0224656E:
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #2
+ bic r1, r0
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+ mov r0, #4
+ bic r1, r0
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+_02246582:
+ ldr r0, [sp, #0x50]
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02246588: .word 0x000003E2
+_0224658C: .word 0x000003E1
+_02246590: .word 0x0000213C
+_02246594: .word 0x00002DCC
+_02246598: .word 0x0225E378
+_0224659C: .word 0x00002DB0
+
+ thumb_func_start MOD11_022465A0
+MOD11_022465A0: ; 0x022465A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0
+ ldr r0, [sp, #0x2c]
+ str r1, [sp]
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x30]
+ str r3, [sp, #4]
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x34]
+ ldr r6, [sp, #0x38]
+ str r0, [sp, #0x34]
+ add r0, r1, #0
+ cmp r0, #0xa5
+ beq _022466B6
+ add r0, r3, #0
+ cmp r0, #0x60
+ bne _022465CA
+ mov r0, #0
+ str r0, [sp, #0xc]
+ b _022465E2
+_022465CA:
+ cmp r2, #0
+ beq _022465D6
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ b _022465E2
+_022465D6:
+ add r0, r1, #0
+ lsl r0, r0, #4
+ add r1, r7, r0
+ ldr r0, _022466BC ; =0x000003E2
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0xc]
+_022465E2:
+ ldr r0, [sp, #4]
+ cmp r0, #0x68
+ beq _02246612
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x1a
+ bne _02246612
+ ldr r0, [sp, #0xc]
+ cmp r0, #4
+ bne _02246612
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r7, r0]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ bne _02246612
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x69
+ beq _02246612
+ ldr r1, [r6]
+ mov r0, #8
+ orr r0, r1
+ str r0, [r6]
+ b _02246686
+_02246612:
+ mov r4, #0
+_02246614:
+ lsl r0, r4, #1
+ add r1, r4, r0
+ ldr r0, _022466C0 ; =0x0225E378
+ add r5, r0, r1
+ ldrb r1, [r0, r1]
+ cmp r1, #0xfe
+ bne _0224662C
+ ldr r0, [sp, #4]
+ cmp r0, #0x71
+ beq _02246686
+ add r4, r4, #1
+ b _0224667A
+_0224662C:
+ ldr r0, [sp, #0xc]
+ cmp r0, r1
+ bne _02246678
+ ldrb r0, [r5, #1]
+ ldr r1, [sp, #0x30]
+ str r0, [sp, #8]
+ cmp r1, r0
+ bne _02246652
+ ldr r1, [sp, #0x2c]
+ add r0, r7, #0
+ add r2, r4, #0
+ bl MOD11_022466C4
+ cmp r0, #1
+ bne _02246652
+ ldrb r0, [r5, #2]
+ add r1, r6, #0
+ bl MOD11_02246714
+_02246652:
+ ldr r1, [sp, #0x34]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ bne _02246678
+ ldr r1, [sp, #0x30]
+ ldr r0, [sp, #0x34]
+ cmp r1, r0
+ beq _02246678
+ ldr r1, [sp, #0x2c]
+ add r0, r7, #0
+ add r2, r4, #0
+ bl MOD11_022466C4
+ cmp r0, #1
+ bne _02246678
+ ldrb r0, [r5, #2]
+ add r1, r6, #0
+ bl MOD11_02246714
+_02246678:
+ add r4, r4, #1
+_0224667A:
+ lsl r0, r4, #1
+ add r1, r4, r0
+ ldr r0, _022466C0 ; =0x0225E378
+ ldrb r0, [r0, r1]
+ cmp r0, #0xff
+ bne _02246614
+_02246686:
+ ldr r0, [sp, #4]
+ cmp r0, #0x68
+ beq _022466B6
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x19
+ bne _022466B6
+ ldr r1, [sp]
+ add r0, r7, #0
+ bl MOD11_0224C6D4
+ cmp r0, #0
+ beq _022466B6
+ ldr r1, [r6]
+ mov r0, #2
+ tst r0, r1
+ beq _022466AE
+ mov r0, #6
+ and r0, r1
+ cmp r0, #6
+ bne _022466B6
+_022466AE:
+ ldr r1, [r6]
+ mov r0, #8
+ orr r0, r1
+ str r0, [r6]
+_022466B6:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022466BC: .word 0x000003E2
+_022466C0: .word 0x0225E378
+
+ thumb_func_start MOD11_022466C4
+MOD11_022466C4: ; 0x022466C4
+ push {r3, r4}
+ mov r3, #1
+ cmp r1, #0x69
+ bne _022466E2
+ lsl r1, r2, #1
+ add r4, r2, r1
+ ldr r1, _0224670C ; =0x0225E379
+ ldrb r1, [r1, r4]
+ cmp r1, #2
+ bne _022466E2
+ ldr r1, _02246710 ; =0x0225E37A
+ ldrb r1, [r1, r4]
+ cmp r1, #0
+ bne _022466E2
+ mov r3, #0
+_022466E2:
+ mov r1, #6
+ lsl r1, r1, #6
+ ldr r1, [r0, r1]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02246706
+ lsl r0, r2, #1
+ add r1, r2, r0
+ ldr r0, _0224670C ; =0x0225E379
+ ldrb r0, [r0, r1]
+ cmp r0, #2
+ bne _02246706
+ ldr r0, _02246710 ; =0x0225E37A
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _02246706
+ mov r3, #0
+_02246706:
+ add r0, r3, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_0224670C: .word 0x0225E379
+_02246710: .word 0x0225E37A
+
+ thumb_func_start MOD11_02246714
+MOD11_02246714: ; 0x02246714
+ cmp r0, #0
+ beq _02246722
+ cmp r0, #5
+ beq _02246734
+ cmp r0, #0x14
+ beq _0224674C
+ bx lr
+_02246722:
+ ldr r2, [r1]
+ mov r0, #8
+ orr r2, r0
+ mov r0, #4
+ bic r2, r0
+ mov r0, #2
+ bic r2, r0
+ str r2, [r1]
+ bx lr
+_02246734:
+ ldr r2, [r1]
+ mov r0, #2
+ tst r0, r2
+ beq _02246744
+ mov r0, #2
+ bic r2, r0
+ str r2, [r1]
+ bx lr
+_02246744:
+ mov r0, #4
+ orr r0, r2
+ str r0, [r1]
+ bx lr
+_0224674C:
+ ldr r2, [r1]
+ mov r0, #4
+ tst r0, r2
+ beq _0224675C
+ mov r0, #4
+ bic r2, r0
+ str r2, [r1]
+ bx lr
+_0224675C:
+ mov r0, #2
+ orr r0, r2
+ str r0, [r1]
+ bx lr
+
+ thumb_func_start MOD11_02246764
+MOD11_02246764: ; 0x02246764
+ mov r2, #0xd1
+ lsl r2, r2, #2
+ add r2, r0, r2
+ lsl r0, r1, #2
+ ldr r0, [r2, r0]
+ lsl r1, r0, #0x1f
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x1e
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x1d
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x1c
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x1b
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x1a
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x19
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x17
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ beq _022467A8
+_022467A4:
+ mov r0, #1
+ bx lr
+_022467A8:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD11_022467AC
+MOD11_022467AC: ; 0x022467AC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ add r5, r1, #0
+ add r6, r2, #0
+ str r3, [sp, #4]
+ mov r4, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ cmp r6, #0
+ beq _022467CA
+ cmp r6, #1
+ beq _022467EE
+ b _02246822
+_022467CA:
+ add r0, r4, #0
+ cmp r7, #0
+ ble _02246822
+ ldr r2, _02246828 ; =0x00002D8C
+_022467D2:
+ ldr r1, [sp, #4]
+ cmp r0, r1
+ beq _022467E4
+ ldr r1, [r5, r2]
+ cmp r1, #0
+ beq _022467E4
+ add r1, r4, #1
+ lsl r1, r1, #0x18
+ lsr r4, r1, #0x18
+_022467E4:
+ add r0, r0, #1
+ add r5, #0xc0
+ cmp r0, r7
+ blt _022467D2
+ b _02246822
+_022467EE:
+ add r6, r4, #0
+ cmp r7, #0
+ ble _02246822
+_022467F4:
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_02230270
+ str r0, [sp, #8]
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ bl MOD11_02230270
+ ldr r1, [sp, #8]
+ cmp r1, r0
+ bne _0224681A
+ ldr r0, _02246828 ; =0x00002D8C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0224681A
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_0224681A:
+ add r6, r6, #1
+ add r5, #0xc0
+ cmp r6, r7
+ blt _022467F4
+_02246822:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02246828: .word 0x00002D8C
+
+ thumb_func_start MOD11_0224682C
+MOD11_0224682C: ; 0x0224682C
+ add r2, r0, r1
+ ldr r0, _02246838 ; =0x0000219C
+ ldrb r0, [r2, r0]
+ lsl r0, r0, #8
+ orr r0, r1
+ bx lr
+ .align 2, 0
+_02246838: .word 0x0000219C
+
+ thumb_func_start MOD11_0224683C
+MOD11_0224683C: ; 0x0224683C
+ push {r4, r5}
+ lsl r3, r1, #4
+ add r5, r0, r3
+ ldr r3, _02246868 ; =0x000021B4
+ mov r2, #0
+ ldr r4, [r5, r3]
+ cmp r4, #1
+ bne _02246862
+ sub r3, r3, #4
+ ldr r3, [r5, r3]
+ cmp r3, #0
+ beq _02246862
+ mov r2, #0xc0
+ mul r2, r1
+ add r1, r0, r2
+ lsl r0, r3, #1
+ add r1, r1, r0
+ ldr r0, _0224686C ; =0x00002D4A
+ ldrh r2, [r1, r0]
+_02246862:
+ add r0, r2, #0
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_02246868: .word 0x000021B4
+_0224686C: .word 0x00002D4A
+
+ thumb_func_start MOD11_02246870
+MOD11_02246870: ; 0x02246870
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ str r2, [sp, #4]
+ str r0, [sp]
+ add r7, r1, #0
+ str r3, [sp, #8]
+ ldr r6, [sp, #0x70]
+ mov r4, #0
+ bl MOD11_0222FF84
+ add r5, r0, #0
+ ldr r0, [sp, #4]
+ cmp r0, #9
+ bhi _022468E4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02246898: ; jump table
+ .short _022468AC - _02246898 - 2 ; case 0
+ .short _022468E6 - _02246898 - 2 ; case 1
+ .short _02246932 - _02246898 - 2 ; case 2
+ .short _0224696C - _02246898 - 2 ; case 3
+ .short _022469B8 - _02246898 - 2 ; case 4
+ .short _02246A0A - _02246898 - 2 ; case 5
+ .short _02246A2C - _02246898 - 2 ; case 6
+ .short _02246A54 - _02246898 - 2 ; case 7
+ .short _02246A80 - _02246898 - 2 ; case 8
+ .short _02246AB4 - _02246898 - 2 ; case 9
+_022468AC:
+ add r0, r4, #0
+ str r0, [sp, #0x44]
+ cmp r5, #0
+ ble _022468E4
+_022468B4:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x44]
+ bl MOD11_02230270
+ str r0, [sp, #0x48]
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x48]
+ cmp r1, r0
+ bne _022468DA
+ ldr r1, [sp, #0x44]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _022468DA
+ add r4, r4, #1
+_022468DA:
+ ldr r0, [sp, #0x44]
+ add r0, r0, #1
+ str r0, [sp, #0x44]
+ cmp r0, r5
+ blt _022468B4
+_022468E4:
+ b _02246AEC
+_022468E6:
+ add r0, r4, #0
+ str r0, [sp, #0xc]
+ cmp r5, #0
+ ble _02246930
+ str r7, [sp, #0x30]
+_022468F0:
+ ldr r0, [sp]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ str r0, [sp, #0x4c]
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x4c]
+ cmp r1, r0
+ bne _02246920
+ ldr r1, [sp, #0x30]
+ ldr r0, _02246AF4 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02246920
+ ldr r1, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246920
+ add r4, r4, #1
+_02246920:
+ ldr r0, [sp, #0x30]
+ add r0, #0xc0
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ cmp r0, r5
+ blt _022468F0
+_02246930:
+ b _02246AEC
+_02246932:
+ add r0, r4, #0
+ str r0, [sp, #0x10]
+ cmp r5, #0
+ ble _0224696A
+_0224693A:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_02230270
+ str r0, [sp, #0x50]
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x50]
+ cmp r1, r0
+ beq _02246960
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246960
+ add r4, r4, #1
+_02246960:
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, r5
+ blt _0224693A
+_0224696A:
+ b _02246AEC
+_0224696C:
+ add r0, r4, #0
+ str r0, [sp, #0x14]
+ cmp r5, #0
+ ble _022469B6
+ str r7, [sp, #0x34]
+_02246976:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x14]
+ bl MOD11_02230270
+ str r0, [sp, #0x54]
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x54]
+ cmp r1, r0
+ beq _022469A6
+ ldr r1, [sp, #0x34]
+ ldr r0, _02246AF4 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022469A6
+ ldr r1, [sp, #0x14]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _022469A6
+ add r4, r4, #1
+_022469A6:
+ ldr r0, [sp, #0x34]
+ add r0, #0xc0
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, r5
+ blt _02246976
+_022469B6:
+ b _02246AEC
+_022469B8:
+ add r0, r4, #0
+ str r0, [sp, #0x18]
+ cmp r5, #0
+ ble _02246A08
+ str r7, [sp, #0x38]
+_022469C2:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x18]
+ bl MOD11_02230270
+ str r0, [sp, #0x58]
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x58]
+ cmp r1, r0
+ beq _022469F8
+ ldr r1, [sp, #0x38]
+ ldr r0, _02246AF4 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022469F8
+ ldr r1, [sp, #0x18]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _022469F8
+ ldr r0, [sp, #0x18]
+ bl FUN_0206A92C
+ orr r4, r0
+_022469F8:
+ ldr r0, [sp, #0x38]
+ add r0, #0xc0
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, r5
+ blt _022469C2
+_02246A08:
+ b _02246AEC
+_02246A0A:
+ add r0, r4, #0
+ str r0, [sp, #0x1c]
+ cmp r5, #0
+ ble _02246AEC
+_02246A12:
+ ldr r1, [sp, #0x1c]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246A20
+ add r4, r4, #1
+_02246A20:
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, r5
+ blt _02246A12
+ b _02246AEC
+_02246A2C:
+ add r0, r4, #0
+ str r0, [sp, #0x20]
+ cmp r5, #0
+ ble _02246AEC
+_02246A34:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ beq _02246A48
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246A48
+ add r4, r4, #1
+_02246A48:
+ ldr r0, [sp, #0x20]
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ cmp r0, r5
+ blt _02246A34
+ b _02246AEC
+_02246A54:
+ add r0, r4, #0
+ str r0, [sp, #0x24]
+ cmp r5, #0
+ ble _02246AEC
+_02246A5C:
+ ldr r1, [sp, #0x24]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ beq _02246A74
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246A74
+ ldr r0, [sp, #0x24]
+ add r4, r0, #1
+ b _02246AEC
+_02246A74:
+ ldr r0, [sp, #0x24]
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, r5
+ blt _02246A5C
+ b _02246AEC
+_02246A80:
+ add r0, r4, #0
+ str r0, [sp, #0x28]
+ cmp r5, #0
+ ble _02246AEC
+ str r7, [sp, #0x3c]
+_02246A8A:
+ ldr r1, [sp, #0x28]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246AA2
+ ldr r1, [sp, #0x3c]
+ ldr r0, _02246AF4 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02246AA2
+ add r4, r4, #1
+_02246AA2:
+ ldr r0, [sp, #0x3c]
+ add r0, #0xc0
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x28]
+ add r0, r0, #1
+ str r0, [sp, #0x28]
+ cmp r0, r5
+ blt _02246A8A
+ b _02246AEC
+_02246AB4:
+ add r0, r4, #0
+ str r0, [sp, #0x2c]
+ cmp r5, #0
+ ble _02246AEC
+ str r7, [sp, #0x40]
+_02246ABE:
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ beq _02246ADC
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246ADC
+ ldr r1, [sp, #0x40]
+ ldr r0, _02246AF4 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02246ADC
+ add r4, r4, #1
+_02246ADC:
+ ldr r0, [sp, #0x40]
+ add r0, #0xc0
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x2c]
+ add r0, r0, #1
+ str r0, [sp, #0x2c]
+ cmp r0, r5
+ blt _02246ABE
+_02246AEC:
+ add r0, r4, #0
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02246AF4: .word 0x00002D8C
+
+ thumb_func_start MOD11_02246AF8
+MOD11_02246AF8: ; 0x02246AF8
+ lsl r1, r1, #4
+ add r1, r0, r1
+ ldr r0, _02246B54 ; =0x000003DE
+ ldrh r2, [r1, r0]
+ cmp r2, #0x9b
+ bgt _02246B2A
+ cmp r2, #0x97
+ blt _02246B10
+ beq _02246B4A
+ cmp r2, #0x9b
+ beq _02246B4A
+ b _02246B4E
+_02246B10:
+ cmp r2, #0x27
+ bgt _02246B1C
+ bge _02246B4A
+ cmp r2, #0x1a
+ beq _02246B4A
+ b _02246B4E
+_02246B1C:
+ cmp r2, #0x4b
+ bgt _02246B24
+ beq _02246B4A
+ b _02246B4E
+_02246B24:
+ cmp r2, #0x91
+ beq _02246B4A
+ b _02246B4E
+_02246B2A:
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r2, r1
+ bgt _02246B3A
+ bge _02246B4A
+ cmp r2, #0xff
+ beq _02246B4A
+ b _02246B4E
+_02246B3A:
+ add r0, r1, #7
+ cmp r2, r0
+ bgt _02246B44
+ beq _02246B4A
+ b _02246B4E
+_02246B44:
+ add r1, #0x10
+ cmp r2, r1
+ bne _02246B4E
+_02246B4A:
+ mov r0, #1
+ bx lr
+_02246B4E:
+ mov r0, #0
+ bx lr
+ nop
+_02246B54: .word 0x000003DE
+
+ thumb_func_start MOD11_02246B58
+MOD11_02246B58: ; 0x02246B58
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ mov r0, #1
+ cmp r6, #0x70
+ blo _02246B76
+ bl FUN_0201B9EC
+ mov r1, #0x70
+ blx _u32_div_f
+ add r6, r1, #0
+ mov r0, #0
+_02246B76:
+ lsl r1, r6, #1
+ ldr r2, _02246B90 ; =0x0225E378
+ add r1, r6, r1
+ ldrb r2, [r2, r1]
+ strb r2, [r5]
+ ldr r2, _02246B94 ; =0x0225E379
+ ldrb r2, [r2, r1]
+ strb r2, [r4]
+ ldr r2, _02246B98 ; =0x0225E37A
+ ldrb r1, [r2, r1]
+ strb r1, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02246B90: .word 0x0225E378
+_02246B94: .word 0x0225E379
+_02246B98: .word 0x0225E37A
+
+ thumb_func_start MOD11_02246B9C
+MOD11_02246B9C: ; 0x02246B9C
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r4, _02246BE4 ; =0x0225E378
+ add r5, r1, #0
+ str r0, [sp]
+ add r6, r2, #0
+ mov r1, #0x28
+_02246BA8:
+ ldrb r2, [r4]
+ ldr r0, [sp]
+ cmp r0, r2
+ bne _02246BD6
+ ldrb r7, [r4, #1]
+ cmp r5, r7
+ bne _02246BC2
+ ldrb r0, [r4, #2]
+ mul r0, r1
+ mov r1, #0xa
+ blx _s32_div_f
+ add r1, r0, #0
+_02246BC2:
+ cmp r6, r7
+ bne _02246BD6
+ cmp r5, r6
+ beq _02246BD6
+ ldrb r0, [r4, #2]
+ mul r0, r1
+ mov r1, #0xa
+ blx _s32_div_f
+ add r1, r0, #0
+_02246BD6:
+ add r4, r4, #3
+ ldrb r0, [r4]
+ cmp r0, #0xff
+ bne _02246BA8
+ add r0, r1, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02246BE4: .word 0x0225E378
+
+ thumb_func_start MOD11_02246BE8
+MOD11_02246BE8: ; 0x02246BE8
+ cmp r0, #0
+ beq _02246C10
+ cmp r0, #0xd6
+ beq _02246C10
+ ldr r2, _02246C18 ; =0x0000017F
+ cmp r0, r2
+ beq _02246C10
+ add r1, r2, #0
+ sub r1, #0x6d
+ cmp r0, r1
+ beq _02246C10
+ sub r1, r2, #1
+ cmp r0, r1
+ beq _02246C10
+ ldr r1, _02246C1C ; =0x0000FF8A
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _02246C14
+_02246C10:
+ mov r0, #1
+ bx lr
+_02246C14:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_02246C18: .word 0x0000017F
+_02246C1C: .word 0x0000FF8A
+
+ thumb_func_start MOD11_02246C20
+MOD11_02246C20: ; 0x02246C20
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ cmp r1, #0xae
+ bne _02246C4C
+ add r1, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ beq _02246C48
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ bne _02246C4C
+_02246C48:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02246C4C:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02246C50
+MOD11_02246C50: ; 0x02246C50
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r2, #0
+ add r5, r1, #0
+ add r1, r6, #0
+ mov r7, #0
+ bl MOD11_02230270
+ str r0, [sp]
+ ldr r0, _02246CA4 ; =0x00002DB8
+ add r4, r5, r0
+ mov r0, #0xc0
+ mul r0, r6
+ str r0, [sp, #4]
+ ldrh r0, [r4, r0]
+ cmp r0, #0
+ beq _02246C9E
+ ldr r0, _02246CA8 ; =0x0000219C
+ add r1, r5, r6
+ ldrb r0, [r1, r0]
+ bl FUN_0206A92C
+ ldr r1, [sp]
+ lsl r1, r1, #3
+ add r2, r5, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ bne _02246C9E
+ ldr r0, [sp, #4]
+ ldrh r0, [r4, r0]
+ bl FUN_0206EA98
+ cmp r0, #0
+ bne _02246C9E
+ mov r7, #1
+_02246C9E:
+ add r0, r7, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02246CA4: .word 0x00002DB8
+_02246CA8: .word 0x0000219C
+
+ thumb_func_start MOD11_02246CAC
+MOD11_02246CAC: ; 0x02246CAC
+ push {r3, lr}
+ mov r2, #0xc0
+ mul r2, r1
+ add r1, r0, r2
+ ldr r0, _02246CC8 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ bl FUN_0206EA98
+ cmp r0, #0
+ bne _02246CC4
+ mov r0, #1
+ pop {r3, pc}
+_02246CC4:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_02246CC8: .word 0x00002DB8
+
+ thumb_func_start MOD11_02246CCC
+MOD11_02246CCC: ; 0x02246CCC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ add r3, r1, #0
+ ldr r1, _02246D18 ; =0x00002D74
+ mul r3, r0
+ add r2, r5, r1
+ ldrb r4, [r2, r3]
+ ldr r2, [r5, #0x64]
+ mov r6, #0
+ mul r0, r2
+ add r0, r5, r0
+ ldrb r0, [r0, r1]
+ cmp r0, r4
+ blo _02246CF0
+ mov r6, #1
+ b _02246D14
+_02246CF0:
+ bl FUN_0201B9EC
+ ldr r2, [r5, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r5, r1
+ ldr r1, _02246D18 ; =0x00002D74
+ lsl r0, r0, #0x18
+ ldrb r1, [r2, r1]
+ lsr r0, r0, #0x18
+ add r1, r1, r4
+ mul r0, r1
+ asr r0, r0, #8
+ add r1, r0, #1
+ lsr r0, r4, #2
+ cmp r1, r0
+ ble _02246D14
+ mov r6, #1
+_02246D14:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02246D18: .word 0x00002D74
+
+ thumb_func_start MOD11_02246D1C
+MOD11_02246D1C: ; 0x02246D1C
+ push {r4, r5}
+ mov r2, #0xc0
+ mul r2, r1
+ mov r3, #0xb7
+ mov r4, #2
+ add r5, r0, r2
+ lsl r3, r3, #6
+ ldr r1, [r5, r3]
+ lsl r4, r4, #0x14
+ tst r4, r1
+ beq _02246D40
+ sub r3, #0x59
+ ldrb r3, [r5, r3]
+ cmp r3, #0x79
+ beq _02246D40
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02246D40:
+ mov r3, #6
+ lsl r3, r3, #6
+ ldr r4, [r0, r3]
+ mov r3, #7
+ lsl r3, r3, #0xc
+ tst r3, r4
+ beq _02246D5E
+ ldr r3, _02246D80 ; =0x00002D67
+ add r4, r0, r2
+ ldrb r3, [r4, r3]
+ cmp r3, #0x1a
+ bne _02246D5E
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02246D5E:
+ mov r3, #1
+ lsl r3, r3, #0xa
+ tst r1, r3
+ beq _02246D76
+ ldr r1, _02246D80 ; =0x00002D67
+ add r3, r0, r2
+ ldrb r1, [r3, r1]
+ cmp r1, #0x1a
+ bne _02246D76
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02246D76:
+ add r1, r0, r2
+ ldr r0, _02246D80 ; =0x00002D67
+ ldrb r0, [r1, r0]
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_02246D80: .word 0x00002D67
+
+ thumb_func_start MOD11_02246D84
+MOD11_02246D84: ; 0x02246D84
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ str r2, [sp]
+ add r4, r3, #0
+ mov r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x68
+ beq _02246DA8
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r4, r0
+ bne _02246DD6
+ mov r6, #1
+ b _02246DD6
+_02246DA8:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r4, r0
+ bne _02246DD6
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x1c
+ mul r0, r7
+ ldr r3, [r1, r0]
+ lsl r2, r3, #0x1c
+ lsr r2, r2, #0x1f
+ bne _02246DD6
+ mov r2, #8
+ orr r3, r2
+ str r3, [r1, r0]
+ ldr r1, _02246DDC ; =0x0000213C
+ lsl r0, r2, #0x14
+ ldr r3, [r5, r1]
+ orr r0, r3
+ str r0, [r5, r1]
+_02246DD6:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02246DDC: .word 0x0000213C
+
+ thumb_func_start MOD11_02246DE0
+MOD11_02246DE0: ; 0x02246DE0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ mov r6, #0
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r4, r2, #0
+ str r6, [sp, #0x18]
+ bl MOD11_0222FF74
+ add r5, r0, #0
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_0222FF88
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_0222FFC8
+ add r7, r0, #0
+ mov r0, #8
+ tst r0, r5
+ bne _02246E22
+ mov r0, #0x10
+ tst r0, r5
+ beq _02246E36
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _02246E36
+_02246E22:
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ mov r5, #0
+ add r1, r0, r4
+ ldr r0, _02246ECC ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0xc]
+ str r0, [sp, #8]
+ b _02246E72
+_02246E36:
+ mov r0, #2
+ tst r0, r5
+ beq _02246E60
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ mov r5, #0
+ add r1, r0, r4
+ ldr r0, _02246ECC ; =0x0000219C
+ ldrb r0, [r1, r0]
+ add r1, r4, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ bl MOD11_022302BC
+ ldr r1, [sp, #4]
+ add r1, r1, r0
+ ldr r0, _02246ECC ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #8]
+ b _02246E72
+_02246E60:
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ mov r5, #0
+ add r1, r0, r4
+ ldr r0, _02246ECC ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0xc]
+ str r0, [sp, #8]
+_02246E72:
+ cmp r5, r7
+ bge _02246EBC
+_02246E76:
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ bl FUN_0206B9B0
+ mov r1, #5
+ mov r2, #0
+ add r4, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02246EB6
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _02246EB6
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02246EB6
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ beq _02246EB6
+ ldr r0, [sp, #8]
+ cmp r0, r5
+ beq _02246EB6
+ add r6, r6, #1
+_02246EB6:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02246E76
+_02246EBC:
+ ldr r0, [sp, #0x10]
+ cmp r6, r0
+ blt _02246EC6
+ mov r0, #1
+ str r0, [sp, #0x18]
+_02246EC6:
+ ldr r0, [sp, #0x18]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02246ECC: .word 0x0000219C
+
+ thumb_func_start MOD11_02246ED0
+MOD11_02246ED0: ; 0x02246ED0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r6, r2, #0
+ add r7, r0, #0
+ add r4, r3, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02249D90
+ str r0, [sp, #8]
+ cmp r0, #0x3e
+ beq _02246F06
+ mov r1, #0xa9
+ ldr r0, [sp, #0xc]
+ lsl r1, r1, #2
+ tst r0, r1
+ bne _02246F06
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x32
+ bne _02246F0C
+_02246F06:
+ add sp, #0x14
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02246F0C:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_02230270
+ add r0, r7, #0
+ bl MOD11_0222FF84
+ mov r0, #0x17
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #9
+ add r3, r6, #0
+ bl MOD11_02246870
+ str r0, [sp, #0x10]
+ cmp r0, #0
+ beq _02246F62
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x17
+ beq _02246F62
+ cmp r4, #0
+ bne _02246F46
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02246F46:
+ mov r0, #0xb
+ strb r0, [r4, #1]
+ mov r0, #0x27
+ strh r0, [r4, #2]
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0x17
+ str r0, [r4, #8]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02246F62:
+ mov r0, #0x47
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #3
+ add r3, r6, #0
+ bl MOD11_02246870
+ str r0, [sp, #4]
+ cmp r0, #0
+ beq _02247014
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ bne _02246FEE
+ ldr r0, [sp, #8]
+ cmp r0, #0x69
+ beq _02246FEE
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x1a
+ beq _02247014
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ ldr r0, _022470A8 ; =0x00002DCC
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1d
+ bne _02247014
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #2
+ beq _02247014
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #2
+ beq _02247014
+ cmp r4, #0
+ bne _02246FD2
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02246FD2:
+ mov r0, #0xb
+ strb r0, [r4, #1]
+ mov r0, #0x27
+ strh r0, [r4, #2]
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0x47
+ str r0, [r4, #8]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02246FEE:
+ cmp r4, #0
+ bne _02246FF8
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02246FF8:
+ mov r0, #0xb
+ strb r0, [r4, #1]
+ mov r0, #0x27
+ strh r0, [r4, #2]
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0x47
+ str r0, [r4, #8]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02247014:
+ mov r0, #0x2a
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #3
+ add r3, r6, #0
+ bl MOD11_02246870
+ add r7, r0, #0
+ beq _0224706E
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #8
+ beq _02247048
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #8
+ bne _0224706E
+_02247048:
+ cmp r4, #0
+ bne _02247052
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02247052:
+ mov r0, #0xb
+ strb r0, [r4, #1]
+ mov r0, #0x27
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0x2a
+ str r0, [r4, #8]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0224706E:
+ mov r0, #0xc0
+ mul r0, r6
+ add r3, r5, r0
+ ldr r0, _022470AC ; =0x00002DB0
+ ldr r1, _022470B0 ; =0x0400E000
+ ldr r2, [r3, r0]
+ tst r2, r1
+ bne _02247088
+ add r0, #0x10
+ ldr r2, [r3, r0]
+ lsr r0, r1, #0x10
+ tst r0, r2
+ beq _022470A0
+_02247088:
+ cmp r4, #0
+ bne _02247092
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02247092:
+ mov r0, #0
+ strb r0, [r4, #1]
+ ldr r0, _022470B4 ; =0x0000031A
+ add sp, #0x14
+ strh r0, [r4, #2]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_022470A0:
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022470A8: .word 0x00002DCC
+_022470AC: .word 0x00002DB0
+_022470B0: .word 0x0400E000
+_022470B4: .word 0x0000031A
+
+ thumb_func_start MOD11_022470B8
+MOD11_022470B8: ; 0x022470B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ str r0, [sp]
+ bl MOD11_0222FF74
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02249D90
+ mov r6, #0
+ cmp r0, #0x3e
+ bne _022470EC
+ mov r0, #0x75
+ lsl r0, r0, #2
+ add r3, r5, r0
+ lsl r2, r4, #6
+ ldr r1, [r3, r2]
+ ldr r0, _02247184 ; =0xFFFFFE7F
+ mov r6, #1
+ and r1, r0
+ mov r0, #0x80
+ orr r0, r1
+ str r0, [r3, r2]
+ b _0224717E
+_022470EC:
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ tst r0, r7
+ beq _022470F8
+ mov r6, #1
+ b _0224717E
+_022470F8:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x32
+ bne _0224711C
+ mov r1, #0x75
+ lsl r1, r1, #2
+ add r5, r5, r1
+ lsl r3, r4, #6
+ ldr r2, [r5, r3]
+ ldr r0, _02247184 ; =0xFFFFFE7F
+ sub r1, #0xd4
+ and r0, r2
+ orr r0, r1
+ str r0, [r5, r3]
+ mov r6, #1
+ b _0224717E
+_0224711C:
+ mov r0, #1
+ add r1, r4, #0
+ eor r1, r0
+ mov r2, #0xc0
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r5, r3
+ ldr r3, _02247188 ; =0x00002D46
+ mul r2, r4
+ add r2, r5, r2
+ ldrh r1, [r1, r3]
+ ldrh r2, [r2, r3]
+ cmp r2, r1
+ bhs _02247164
+ lsl r0, r2, #7
+ blx _s32_div_f
+ ldr r1, _0224718C ; =0x0000311E
+ ldrb r2, [r5, r1]
+ mov r1, #0x1e
+ mul r1, r2
+ add r0, r1, r0
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ bl FUN_0201B9EC
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x18
+ sub r2, r2, r1
+ mov r0, #0x18
+ ror r2, r0
+ add r0, r1, r2
+ cmp r7, r0
+ ble _02247166
+ mov r6, #1
+ b _02247166
+_02247164:
+ add r6, r0, #0
+_02247166:
+ cmp r6, #0
+ bne _02247176
+ ldr r0, [sp]
+ add r1, r4, #0
+ mov r2, #0
+ mov r3, #0x47
+ bl MOD11_022564A8
+_02247176:
+ ldr r0, _0224718C ; =0x0000311E
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+_0224717E:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02247184: .word 0xFFFFFE7F
+_02247188: .word 0x00002D46
+_0224718C: .word 0x0000311E
+
+ thumb_func_start MOD11_02247190
+MOD11_02247190: ; 0x02247190
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x36
+ bne _022471BA
+ mov r2, #0xc0
+ mul r2, r4
+ add r3, r5, r2
+ ldr r2, _022471C0 ; =0x00002DC8
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r2, [r3, r2]
+ ldr r1, [r5, r0]
+ mov r0, #1
+ lsl r2, r2, #1
+ and r1, r0
+ lsr r2, r2, #0x1f
+ cmp r1, r2
+ bne _022471BC
+_022471BA:
+ mov r0, #0
+_022471BC:
+ pop {r3, r4, r5, pc}
+ nop
+_022471C0: .word 0x00002DC8
+
+ thumb_func_start MOD11_022471C4
+MOD11_022471C4: ; 0x022471C4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ mov r1, #0
+ str r0, [sp]
+ add r4, r2, #0
+ add r5, r3, #0
+ str r1, [sp, #4]
+ bl MOD11_0222FF84
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230270
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ mov r7, #0
+ cmp r0, #0
+ ble _0224722E
+ ldr r4, _02247234 ; =0x00002D4C
+_022471EE:
+ ldr r0, [sp]
+ add r1, r7, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #8]
+ cmp r1, r0
+ beq _02247224
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r6, r0]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02247224
+ mov r1, #0
+ add r2, r6, #0
+_0224720E:
+ ldrh r0, [r2, r4]
+ cmp r5, r0
+ beq _0224721C
+ add r1, r1, #1
+ add r2, r2, #2
+ cmp r1, #4
+ blt _0224720E
+_0224721C:
+ cmp r1, #4
+ beq _02247224
+ mov r0, #1
+ str r0, [sp, #4]
+_02247224:
+ ldr r0, [sp, #0xc]
+ add r7, r7, #1
+ add r6, #0xc0
+ cmp r7, r0
+ blt _022471EE
+_0224722E:
+ ldr r0, [sp, #4]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02247234: .word 0x00002D4C
+
+ thumb_func_start MOD11_02247238
+MOD11_02247238: ; 0x02247238
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ mov r6, #0
+ bl MOD11_0222FF84
+ add r3, r6, #0
+ cmp r0, #0
+ ble _02247260
+ mov r1, #0xb7
+ lsl r1, r1, #6
+_0224724E:
+ ldr r2, [r5, r1]
+ tst r2, r4
+ beq _02247258
+ mov r6, #1
+ b _02247260
+_02247258:
+ add r3, r3, #1
+ add r5, #0xc0
+ cmp r3, r0
+ blt _0224724E
+_02247260:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02247264
+MOD11_02247264: ; 0x02247264
+ ldr r2, _02247284 ; =0x0000216C
+ mov r0, #0
+ str r0, [r1, r2]
+ add r0, r2, #0
+ mov r3, #1
+ sub r0, #0x1c
+ str r3, [r1, r0]
+ add r0, r2, #0
+ sub r0, #0x30
+ ldr r3, [r1, r0]
+ ldr r0, _02247288 ; =0xFFEFFFFF
+ sub r2, #0x30
+ and r0, r3
+ str r0, [r1, r2]
+ bx lr
+ nop
+_02247284: .word 0x0000216C
+_02247288: .word 0xFFEFFFFF
+
+ thumb_func_start MOD11_0224728C
+MOD11_0224728C: ; 0x0224728C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ bl MOD11_0222FF84
+ mov r2, #0
+ str r0, [sp, #0x14]
+ cmp r0, #0
+ ble _022472B0
+ ldr r1, _02247310 ; =0x000021EC
+_022472A2:
+ ldr r0, [sp, #8]
+ add r0, r0, r2
+ strb r2, [r0, r1]
+ ldr r0, [sp, #0x14]
+ add r2, r2, #1
+ cmp r2, r0
+ blt _022472A2
+_022472B0:
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ sub r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #0
+ ble _0224730C
+_022472BE:
+ ldr r0, [sp, #0x10]
+ add r4, r0, #1
+ ldr r0, [sp, #0x14]
+ cmp r4, r0
+ bge _02247300
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #0x10]
+ add r6, r1, r0
+_022472CE:
+ ldr r0, _02247310 ; =0x000021EC
+ ldr r1, [sp, #8]
+ ldrb r0, [r6, r0]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ ldr r2, [sp, #0xc]
+ add r7, r0, r4
+ ldr r0, _02247310 ; =0x000021EC
+ ldrb r5, [r7, r0]
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r3, r5, #0
+ bl MOD11_02244248
+ cmp r0, #0
+ beq _022472F8
+ ldr r0, _02247310 ; =0x000021EC
+ ldr r1, [sp, #0xc]
+ strb r5, [r6, r0]
+ strb r1, [r7, r0]
+_022472F8:
+ ldr r0, [sp, #0x14]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _022472CE
+_02247300:
+ ldr r0, [sp, #0x10]
+ add r1, r0, #1
+ ldr r0, [sp, #0x18]
+ str r1, [sp, #0x10]
+ cmp r1, r0
+ blt _022472BE
+_0224730C:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02247310: .word 0x000021EC
+
+ thumb_func_start MOD11_02247314
+MOD11_02247314: ; 0x02247314
+ push {r3, r4}
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r2, [r1, r2]
+ mov r1, #7
+ lsl r1, r1, #0xc
+ mov r0, #0
+ tst r1, r2
+ beq _0224733E
+ ldr r4, _02247344 ; =0x0225E278
+ add r2, r0, #0
+_0224732A:
+ ldrh r1, [r4]
+ cmp r3, r1
+ bne _02247336
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_02247336:
+ add r2, r2, #1
+ add r4, r4, #2
+ cmp r2, #6
+ blo _0224732A
+_0224733E:
+ pop {r3, r4}
+ bx lr
+ nop
+_02247344: .word 0x0225E278
+
+ thumb_func_start MOD11_02247348
+MOD11_02247348: ; 0x02247348
+ push {r3, r4}
+ mov r4, #0xc0
+ mul r4, r2
+ add r2, r1, r4
+ ldr r1, _02247378 ; =0x00002DCC
+ mov r0, #0
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0xd
+ lsr r1, r1, #0x1d
+ beq _02247374
+ ldr r4, _0224737C ; =0x0225E29E
+ add r2, r0, #0
+_02247360:
+ ldrh r1, [r4]
+ cmp r3, r1
+ bne _0224736C
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_0224736C:
+ add r2, r2, #1
+ add r4, r4, #2
+ cmp r2, #0xe
+ blo _02247360
+_02247374:
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_02247378: .word 0x00002DCC
+_0224737C: .word 0x0225E29E
+
+ thumb_func_start MOD11_02247380
+MOD11_02247380: ; 0x02247380
+ push {r4, r5, r6, r7}
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r3, [r1, r0]
+ ldr r0, _022473E8 ; =0x00000183
+ cmp r3, r0
+ beq _022473E4
+ ldr r4, [r1, #0x64]
+ mov r0, #0xc0
+ add r2, r4, #0
+ mul r2, r0
+ ldr r4, _022473EC ; =0x00002DCC
+ add r0, r1, r2
+ ldr r4, [r0, r4]
+ lsl r4, r4, #0x13
+ lsr r7, r4, #0x1d
+ cmp r7, #4
+ beq _022473E4
+ mov r6, #0
+ cmp r7, #0
+ bls _022473BA
+ ldr r4, _022473F0 ; =0x00002DF0
+_022473AC:
+ ldrh r5, [r0, r4]
+ cmp r3, r5
+ beq _022473E4
+ add r6, r6, #1
+ add r0, r0, #2
+ cmp r6, r7
+ blo _022473AC
+_022473BA:
+ add r2, r1, r2
+ lsl r0, r6, #1
+ add r2, r2, r0
+ ldr r0, _022473F0 ; =0x00002DF0
+ strh r3, [r2, r0]
+ sub r0, #0x24
+ add r2, r1, r0
+ ldr r3, [r1, #0x64]
+ mov r0, #0xc0
+ add r1, r3, #0
+ mul r1, r0
+ ldr r3, [r2, r1]
+ ldr r0, _022473F4 ; =0xFFFFE3FF
+ and r0, r3
+ lsl r3, r3, #0x13
+ lsr r3, r3, #0x1d
+ add r3, r3, #1
+ lsl r3, r3, #0x1d
+ lsr r3, r3, #0x13
+ orr r0, r3
+ str r0, [r2, r1]
+_022473E4:
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_022473E8: .word 0x00000183
+_022473EC: .word 0x00002DCC
+_022473F0: .word 0x00002DF0
+_022473F4: .word 0xFFFFE3FF
+
+ thumb_func_start MOD11_022473F8
+MOD11_022473F8: ; 0x022473F8
+ mov r3, #0xc0
+ mul r3, r2
+ add r3, r1, r3
+ ldr r1, _02247414 ; =0x00002D4C
+ mov r0, #0
+_02247402:
+ ldrh r2, [r3, r1]
+ cmp r2, #0
+ beq _02247410
+ add r0, r0, #1
+ add r3, r3, #2
+ cmp r0, #4
+ blt _02247402
+_02247410:
+ bx lr
+ nop
+_02247414: .word 0x00002D4C
+
+ thumb_func_start MOD11_02247418
+MOD11_02247418: ; 0x02247418
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r2, #0
+ mov r2, #0
+ add r5, r0, #0
+ add r7, r1, #0
+ str r2, [sp]
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _02247430
+ mov r6, #0
+ b _02247444
+_02247430:
+ ldr r0, _02247594 ; =0x00002160
+ ldr r6, [r5, r0]
+ cmp r6, #0
+ bne _02247444
+ ldr r0, _02247598 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224759C ; =0x000003E2
+ ldrb r6, [r1, r0]
+_02247444:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0xa
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02247474
+ cmp r6, #0xd
+ bne _02247474
+ cmp r7, r4
+ beq _02247474
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022475A0 ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _022475A4 ; =0x0000215C
+ str r0, [r5, r1]
+ mov r0, #0xb2
+ str r0, [sp]
+_02247474:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0xb
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022474BA
+ cmp r6, #0xb
+ bne _022474BA
+ ldr r0, _022475A8 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _022474BA
+ ldr r0, _02247598 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _022475AC ; =0x000003E1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _022474BA
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022475A0 ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _022475A4 ; =0x0000215C
+ str r0, [r5, r1]
+ mov r0, #0xb2
+ str r0, [sp]
+_022474BA:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0x12
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02247500
+ cmp r6, #0xa
+ bne _02247500
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022475B0 ; =0x00002DAC
+ ldr r0, [r1, r0]
+ mov r1, #0x20
+ tst r0, r1
+ bne _02247500
+ ldr r0, _022475A8 ; =0x0000213C
+ ldr r0, [r5, r0]
+ tst r0, r1
+ bne _02247500
+ ldr r0, _02247598 ; =0x00003044
+ ldr r3, [r5, r0]
+ lsl r0, r3, #4
+ add r2, r5, r0
+ ldr r0, _022475AC ; =0x000003E1
+ ldrb r0, [r2, r0]
+ cmp r0, #0
+ bne _022474FC
+ add r1, #0xe5
+ cmp r3, r1
+ bne _02247500
+_022474FC:
+ mov r0, #0xb3
+ str r0, [sp]
+_02247500:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0x2b
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224752C
+ ldr r0, _02247598 ; =0x00003044
+ ldr r2, _022475B4 ; =0x0225FF84
+ ldr r3, [r5, r0]
+ mov r1, #0
+_02247518:
+ ldrh r0, [r2]
+ cmp r3, r0
+ bne _02247524
+ mov r0, #0xb5
+ str r0, [sp]
+ b _0224752C
+_02247524:
+ add r1, r1, #1
+ add r2, r2, #2
+ cmp r1, #0xc
+ blo _02247518
+_0224752C:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0x4e
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02247548
+ cmp r6, #0xd
+ bne _02247548
+ cmp r7, r4
+ beq _02247548
+ mov r0, #0xb6
+ str r0, [sp]
+_02247548:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0x57
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224758E
+ cmp r6, #0xb
+ bne _0224758E
+ ldr r0, _022475A8 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _0224758E
+ ldr r0, _02247598 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _022475AC ; =0x000003E1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _0224758E
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022475A0 ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _022475A4 ; =0x0000215C
+ str r0, [r5, r1]
+ mov r0, #0xb2
+ str r0, [sp]
+_0224758E:
+ ldr r0, [sp]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02247594: .word 0x00002160
+_02247598: .word 0x00003044
+_0224759C: .word 0x000003E2
+_022475A0: .word 0x00002D90
+_022475A4: .word 0x0000215C
+_022475A8: .word 0x0000213C
+_022475AC: .word 0x000003E1
+_022475B0: .word 0x00002DAC
+_022475B4: .word 0x0225FF84
+
+ thumb_func_start MOD11_022475B8
+MOD11_022475B8: ; 0x022475B8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #3
+ beq _022475D0
+ cmp r0, #0x3d
+ beq _02247616
+ b _02247696
+_022475D0:
+ mov r2, #0xc0
+ add r0, r4, #0
+ mul r0, r2
+ ldr r3, _022476B4 ; =0x00002D8C
+ add r0, r5, r0
+ ldr r1, [r0, r3]
+ cmp r1, #0
+ beq _02247696
+ add r1, r3, #0
+ sub r1, #0x31
+ ldrsb r1, [r0, r1]
+ cmp r1, #0xc
+ bge _02247696
+ add r2, #0x90
+ ldr r1, [r5, r2]
+ add r3, #0x48
+ ldr r0, [r0, r3]
+ add r1, r1, #1
+ cmp r1, r0
+ beq _02247696
+ add r0, r5, #0
+ mov r1, #0x11
+ add r0, #0x8c
+ str r1, [r0]
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0x94
+ str r4, [r0]
+ mov r0, #0xc
+ str r0, [sp]
+ mov r6, #1
+ b _02247696
+_02247616:
+ ldr r1, _022476B8 ; =0x00002DAC
+ mov r0, #0xc0
+ add r7, r4, #0
+ mul r7, r0
+ add r0, r5, r1
+ str r0, [sp, #4]
+ ldr r0, [r0, r7]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _02247696
+ add r0, r5, r7
+ sub r1, #0x20
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _02247696
+ bl FUN_0201B9EC
+ mov r1, #0xa
+ blx _s32_div_f
+ cmp r1, #3
+ bge _02247696
+ ldr r0, [sp, #4]
+ mov r1, #7
+ ldr r0, [r0, r7]
+ tst r1, r0
+ beq _02247656
+ mov r0, #0x13
+ add r1, r6, #0
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0224768A
+_02247656:
+ ldr r1, _022476BC ; =0x00000F88
+ tst r1, r0
+ beq _02247666
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0224768A
+_02247666:
+ mov r1, #0x10
+ tst r1, r0
+ beq _02247676
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0224768A
+_02247676:
+ mov r1, #0x40
+ tst r0, r1
+ beq _02247684
+ mov r0, #3
+ add r1, #0xf0
+ str r0, [r5, r1]
+ b _0224768A
+_02247684:
+ mov r0, #4
+ add r1, #0xf0
+ str r0, [r5, r1]
+_0224768A:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r4, [r5, r0]
+ mov r0, #0xbe
+ str r0, [sp]
+ mov r6, #1
+_02247696:
+ cmp r6, #1
+ bne _022476AC
+ ldr r2, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_022476AC:
+ add r0, r6, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022476B4: .word 0x00002D8C
+_022476B8: .word 0x00002DAC
+_022476BC: .word 0x00000F88
+
+ thumb_func_start MOD11_022476C0
+MOD11_022476C0: ; 0x022476C0
+ push {r4, lr}
+ cmp r0, #0
+ bge _022476CC
+ mov r4, #0
+ mvn r4, r4
+ b _022476CE
+_022476CC:
+ mov r4, #1
+_022476CE:
+ blx _s32_div_f
+ cmp r0, #0
+ bne _022476D8
+ add r0, r4, #0
+_022476D8:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022476DC
+MOD11_022476DC: ; 0x022476DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0xd0
+ add r7, r0, #0
+ add r4, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #0x80]
+ mov r0, #0
+ str r0, [sp, #0x84]
+ str r0, [sp, #0xcc]
+
+ thumb_func_start MOD11_022476F0
+MOD11_022476F0: ; 0x022476F0
+ ldr r0, [r4, #0x58]
+ cmp r0, #0xf
+ bls _022476FA
+ bl _02248282
+_022476FA:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02247706: ; jump table
+ .short _02247726 - _02247706 - 2 ; case 0
+ .short _022477A2 - _02247706 - 2 ; case 1
+ .short _0224785A - _02247706 - 2 ; case 2
+ .short _0224796A - _02247706 - 2 ; case 3
+ .short _022479E0 - _02247706 - 2 ; case 4
+ .short _02247B34 - _02247706 - 2 ; case 5
+ .short _02247C74 - _02247706 - 2 ; case 6
+ .short _02247E76 - _02247706 - 2 ; case 7
+ .short _02247FCC - _02247706 - 2 ; case 8
+ .short _022480A4 - _02247706 - 2 ; case 9
+ .short _02248118 - _02247706 - 2 ; case 10
+ .short _022481A6 - _02247706 - 2 ; case 11
+ .short _022481C4 - _02247706 - 2 ; case 12
+ .short _022481FE - _02247706 - 2 ; case 13
+ .short _0224823A - _02247706 - 2 ; case 14
+ .short _0224827A - _02247706 - 2 ; case 15
+_02247726:
+ ldr r0, _02247A18 ; =0x00003121
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _02247798
+ add r0, r7, #0
+ bl MOD11_0223125C
+ cmp r0, #0xf
+ bhi _0224778C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02247744: ; jump table
+ .short _0224778C - _02247744 - 2 ; case 0
+ .short _0224778C - _02247744 - 2 ; case 1
+ .short _02247764 - _02247744 - 2 ; case 2
+ .short _02247764 - _02247744 - 2 ; case 3
+ .short _02247764 - _02247744 - 2 ; case 4
+ .short _0224776E - _02247744 - 2 ; case 5
+ .short _0224776E - _02247744 - 2 ; case 6
+ .short _0224776E - _02247744 - 2 ; case 7
+ .short _0224778C - _02247744 - 2 ; case 8
+ .short _0224778C - _02247744 - 2 ; case 9
+ .short _0224777A - _02247744 - 2 ; case 10
+ .short _0224778C - _02247744 - 2 ; case 11
+ .short _0224778C - _02247744 - 2 ; case 12
+ .short _0224778C - _02247744 - 2 ; case 13
+ .short _02247784 - _02247744 - 2 ; case 14
+ .short _02247784 - _02247744 - 2 ; case 15
+_02247764:
+ ldr r0, _02247A1C ; =0x0000010F
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224778C
+_0224776E:
+ mov r0, #0x11
+ lsl r0, r0, #4
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224778C
+_0224777A:
+ ldr r0, _02247A20 ; =0x00000111
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224778C
+_02247784:
+ ldr r0, _02247A24 ; =0x00000112
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+_0224778C:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ bne _02247798
+ ldr r0, _02247A18 ; =0x00003121
+ mov r1, #1
+ strb r1, [r4, r0]
+_02247798:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ bl _02248282
+_022477A2:
+ ldr r0, [sp, #0x80]
+ mov r6, #0
+ cmp r0, #0
+ ble _02247846
+ ldr r0, _02247A28 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0x90]
+_022477B0:
+ ldr r0, _02247A2C ; =0x000021EC
+ add r1, r4, r6
+ ldrb r5, [r1, r0]
+ add r0, r7, #0
+ mov r2, #0
+ add r1, r5, #0
+ bl MOD11_02230308
+ str r0, [sp, #0x88]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #2
+ bl MOD11_02230308
+ add r2, r0, #0
+ ldr r1, [sp, #0x88]
+ add r0, r4, #0
+ bl MOD11_0224C84C
+ mov r1, #0x12
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ mov r0, #0xc0
+ mul r0, r5
+ ldr r1, [sp, #0x90]
+ str r0, [sp, #0x8c]
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bne _0224783E
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ cmp r2, #0xff
+ beq _0224783E
+ ldr r0, [sp, #0x8c]
+ add r1, r4, r0
+ ldr r0, _02247A30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224783E
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02247A30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224783E
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x24
+ bne _0224783E
+ ldr r1, [sp, #0x90]
+ ldr r0, [sp, #0x8c]
+ ldr r1, [r1, r0]
+ mov r0, #4
+ add r2, r1, #0
+ orr r2, r0
+ ldr r1, [sp, #0x90]
+ ldr r0, [sp, #0x8c]
+ str r2, [r1, r0]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ mov r0, #0xbb
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247846
+_0224783E:
+ ldr r0, [sp, #0x80]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _022477B0
+_02247846:
+ ldr r0, [sp, #0x80]
+ cmp r6, r0
+ beq _02247850
+ bl _02248282
+_02247850:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ bl _02248282
+_0224785A:
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ ble _02247958
+ ldr r0, _02247A28 ; =0x00002D68
+ add r6, r4, r0
+ mov r0, #1
+ str r0, [sp, #0xbc]
+ str r0, [sp, #0xb8]
+ str r0, [sp, #0xb4]
+ str r0, [sp, #0xb0]
+_02247872:
+ ldr r0, [sp, #0x2c]
+ add r1, r4, r0
+ ldr r0, _02247A2C ; =0x000021EC
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r5, r1, #0
+ mul r5, r0
+ ldr r0, [r6, r5]
+ str r1, [sp, #0x10]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _0224793C
+ ldr r0, _02247A30 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224793C
+ ldr r1, [sp, #0x10]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2d
+ bgt _022478A8
+ bge _022478D8
+ cmp r0, #2
+ beq _022478B6
+ b _0224793C
+_022478A8:
+ cmp r0, #0x46
+ bgt _022478B0
+ beq _022478FA
+ b _0224793C
+_022478B0:
+ cmp r0, #0x75
+ beq _0224791C
+ b _0224793C
+_022478B6:
+ ldr r0, [r6, r5]
+ ldr r1, [sp, #0xb0]
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #2
+ tst r0, r1
+ bne _0224793C
+ mov r0, #0xb7
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224793C
+_022478D8:
+ ldr r0, [r6, r5]
+ ldr r1, [sp, #0xb4]
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #8
+ tst r0, r1
+ bne _0224793C
+ mov r0, #0xb8
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224793C
+_022478FA:
+ ldr r0, [r6, r5]
+ ldr r1, [sp, #0xb8]
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _0224793C
+ mov r0, #0xb9
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224793C
+_0224791C:
+ ldr r0, [r6, r5]
+ ldr r1, [sp, #0xbc]
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x80
+ tst r0, r1
+ bne _0224793C
+ mov r0, #0xfc
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+_0224793C:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ bne _0224794C
+ mov r1, #0x46
+ ldr r0, [sp, #0x10]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ b _02247958
+_0224794C:
+ ldr r0, [sp, #0x2c]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x2c]
+ cmp r1, r0
+ blt _02247872
+_02247958:
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ bne _022479D2
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ bl _02248282
+_0224796A:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _022479CC
+ ldr r0, _02247A28 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0x94]
+_02247978:
+ ldr r0, _02247A2C ; =0x000021EC
+ add r1, r4, r5
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ ldr r0, [sp, #0x94]
+ str r1, [sp, #0x14]
+ ldr r0, [r0, r6]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bne _022479C4
+ ldr r0, _02247A30 ; =0x00002D8C
+ add r1, r4, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022479C4
+ ldr r1, [sp, #0x14]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x16
+ bne _022479C4
+ ldr r0, [sp, #0x94]
+ ldr r1, [r0, r6]
+ mov r0, #2
+ orr r1, r0
+ ldr r0, [sp, #0x94]
+ str r1, [r0, r6]
+ mov r1, #0x46
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xba
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _022479CC
+_022479C4:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _02247978
+_022479CC:
+ ldr r0, [sp, #0x80]
+ cmp r5, r0
+ beq _022479D6
+_022479D2:
+ bl _02248282
+_022479D6:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ bl _02248282
+_022479E0:
+ mov r0, #0
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bgt _022479EC
+ b _02247B22
+_022479EC:
+ ldr r0, _02247A28 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0x9c]
+_022479F2:
+ ldr r0, [sp, #0x30]
+ add r1, r4, r0
+ ldr r0, _02247A2C ; =0x000021EC
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ str r1, [sp, #0x18]
+ ldr r1, [sp, #0x9c]
+ str r0, [sp, #0x98]
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _02247A0E
+ b _02247B14
+_02247A0E:
+ ldr r0, [sp, #0x98]
+ add r1, r4, r0
+ ldr r0, _02247A30 ; =0x00002D8C
+ b _02247A34
+ nop
+_02247A18: .word 0x00003121
+_02247A1C: .word 0x0000010F
+_02247A20: .word 0x00000111
+_02247A24: .word 0x00000112
+_02247A28: .word 0x00002D68
+_02247A2C: .word 0x000021EC
+_02247A30: .word 0x00002D8C
+_02247A34:
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02247B14
+ ldr r1, [sp, #0x18]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x58
+ bne _02247B14
+ mov r0, #0
+ str r0, [sp, #0x78]
+ str r0, [sp, #0x74]
+ str r0, [sp, #0x7c]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ ble _02247ACE
+ add r5, r4, #0
+_02247A56:
+ ldr r1, [sp, #0x18]
+ add r0, r7, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ ldr r1, [sp, #0x7c]
+ add r0, r7, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ beq _02247AC0
+ ldr r0, _02247D60 ; =0x00002DB0
+ ldr r1, [r5, r0]
+ mov r0, #1
+ lsl r0, r0, #0x18
+ tst r0, r1
+ bne _02247AC0
+ ldr r0, _02247D64 ; =0x00002D8C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02247AC0
+ ldr r0, _02247D68 ; =0x00002D5A
+ ldrsb r0, [r5, r0]
+ lsl r2, r0, #1
+ ldr r0, _02247D6C ; =0x0225E284
+ add r1, r0, r2
+ ldr r0, _02247D70 ; =0x00002D44
+ ldrb r1, [r1, #1]
+ ldrh r3, [r5, r0]
+ ldr r0, _02247D6C ; =0x0225E284
+ ldrb r0, [r0, r2]
+ mul r0, r3
+ blx _s32_div_f
+ ldr r1, [sp, #0x78]
+ add r0, r1, r0
+ str r0, [sp, #0x78]
+ ldr r0, _02247D74 ; =0x00002D5D
+ ldrsb r0, [r5, r0]
+ lsl r2, r0, #1
+ ldr r0, _02247D6C ; =0x0225E284
+ add r1, r0, r2
+ ldr r0, _02247D78 ; =0x00002D4A
+ ldrb r1, [r1, #1]
+ ldrh r3, [r5, r0]
+ ldr r0, _02247D6C ; =0x0225E284
+ ldrb r0, [r0, r2]
+ mul r0, r3
+ blx _s32_div_f
+ ldr r1, [sp, #0x74]
+ add r0, r1, r0
+ str r0, [sp, #0x74]
+_02247AC0:
+ ldr r0, [sp, #0x7c]
+ add r5, #0xc0
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x7c]
+ cmp r1, r0
+ blt _02247A56
+_02247ACE:
+ ldr r1, [sp, #0x9c]
+ ldr r0, [sp, #0x98]
+ ldr r1, [r1, r0]
+ mov r0, #8
+ add r2, r1, #0
+ orr r2, r0
+ ldr r1, [sp, #0x9c]
+ ldr r0, [sp, #0x98]
+ str r2, [r1, r0]
+ ldr r1, [sp, #0x78]
+ ldr r0, [sp, #0x74]
+ add r0, r1, r0
+ beq _02247B14
+ ldr r0, [sp, #0x74]
+ cmp r1, r0
+ blt _02247AF2
+ mov r1, #0x12
+ b _02247AF4
+_02247AF2:
+ mov r1, #0xf
+_02247AF4:
+ add r0, r4, #0
+ add r0, #0x8c
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x94
+ str r0, [r1]
+ mov r0, #0xc
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247B22
+_02247B14:
+ ldr r0, [sp, #0x30]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x30]
+ cmp r1, r0
+ bge _02247B22
+ b _022479F2
+_02247B22:
+ ldr r1, [sp, #0x30]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ beq _02247B2C
+ b _02248282
+_02247B2C:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_02247B34:
+ mov r0, #0
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bgt _02247B40
+ b _02247C62
+_02247B40:
+ ldr r0, _02247D7C ; =0x00002D68
+ add r6, r4, r0
+_02247B44:
+ ldr r0, [sp, #0x34]
+ add r1, r4, r0
+ ldr r0, _02247D80 ; =0x000021EC
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r5, r1, #0
+ mul r5, r0
+ ldr r0, [r6, r5]
+ str r1, [sp, #0x1c]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ bne _02247C54
+ ldr r0, _02247D64 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02247C54
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x6b
+ bne _02247C54
+ ldr r1, [r6, r5]
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r0, #0
+ str r0, [sp, #0x70]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ ble _02247C40
+ add r0, r4, r5
+ str r4, [sp, #0x50]
+ str r0, [sp, #0x4c]
+_02247B8A:
+ ldr r1, [sp, #0x1c]
+ add r0, r7, #0
+ bl MOD11_02230270
+ add r5, r0, #0
+ ldr r1, [sp, #0x70]
+ add r0, r7, #0
+ bl MOD11_02230270
+ cmp r5, r0
+ beq _02247C2E
+ ldr r1, [sp, #0x50]
+ ldr r0, _02247D64 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02247C2E
+ mov r0, #0
+ str r0, [sp, #0x6c]
+ add r6, r1, #0
+_02247BB0:
+ ldr r0, _02247D84 ; =0x00002D4C
+ ldrh r5, [r6, r0]
+ cmp r5, #0
+ beq _02247C1C
+ mov r0, #0
+ str r0, [sp, #0xc8]
+ ldr r0, [sp, #0x70]
+ add r1, r4, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x1c]
+ add r2, r5, #0
+ str r0, [sp, #4]
+ ldr r0, _02247D88 ; =0x00002144
+ mov r3, #0
+ ldr r0, [r4, r0]
+ str r0, [sp, #8]
+ add r0, sp, #0xc8
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD11_02246274
+ ldr r1, _02247D88 ; =0x00002144
+ str r0, [r4, r1]
+ ldr r1, [sp, #0xc8]
+ mov r0, #8
+ tst r0, r1
+ bne _02247C1C
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0224C8C0
+ cmp r0, #0
+ bne _02247C1C
+ ldr r1, [sp, #0xc8]
+ mov r0, #2
+ tst r0, r1
+ bne _02247C16
+ lsl r0, r5, #4
+ add r1, r4, r0
+ ldr r0, _02247D8C ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x26
+ bne _02247C1C
+ ldr r1, [sp, #0x4c]
+ ldr r0, _02247D90 ; =0x00002D74
+ ldr r2, [sp, #0x50]
+ ldrb r0, [r1, r0]
+ ldr r1, _02247D90 ; =0x00002D74
+ ldrb r1, [r2, r1]
+ cmp r0, r1
+ bhi _02247C1C
+_02247C16:
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247C28
+_02247C1C:
+ ldr r0, [sp, #0x6c]
+ add r6, r6, #2
+ add r0, r0, #1
+ str r0, [sp, #0x6c]
+ cmp r0, #4
+ blt _02247BB0
+_02247C28:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ beq _02247C40
+_02247C2E:
+ ldr r0, [sp, #0x50]
+ add r0, #0xc0
+ str r0, [sp, #0x50]
+ ldr r0, [sp, #0x70]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x70]
+ cmp r1, r0
+ blt _02247B8A
+_02247C40:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ bne _02247C62
+ mov r1, #0x46
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xc2
+ str r0, [sp, #0xcc]
+ b _02247C62
+_02247C54:
+ ldr r0, [sp, #0x34]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x34]
+ cmp r1, r0
+ bge _02247C62
+ b _02247B44
+_02247C62:
+ ldr r1, [sp, #0x34]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ beq _02247C6C
+ b _02248282
+_02247C6C:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_02247C74:
+ mov r0, #0
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bgt _02247C80
+ b _02247E64
+_02247C80:
+ ldr r0, _02247D7C ; =0x00002D68
+ add r6, r4, r0
+_02247C84:
+ ldr r0, [sp, #0x38]
+ add r1, r4, r0
+ ldr r0, _02247D80 ; =0x000021EC
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r5, r1, #0
+ mul r5, r0
+ ldr r0, [r6, r5]
+ str r1, [sp, #0x20]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ bne _02247CB2
+ ldr r0, _02247D64 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02247CB2
+ ldr r1, [sp, #0x20]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x6c
+ beq _02247CB4
+_02247CB2:
+ b _02247E56
+_02247CB4:
+ ldr r1, [r6, r5]
+ mov r0, #0x20
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r5, #0
+ ldr r0, [sp, #0x80]
+ str r5, [sp, #0x5c]
+ str r5, [sp, #0x68]
+ cmp r0, #0
+ bgt _02247CCA
+ b _02247DF2
+_02247CCA:
+ str r4, [sp, #0x58]
+_02247CCC:
+ ldr r1, [sp, #0x20]
+ add r0, r7, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ ldr r1, [sp, #0x68]
+ add r0, r7, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ beq _02247DDE
+ ldr r1, [sp, #0x58]
+ ldr r0, _02247D64 ; =0x00002D8C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _02247DDE
+ ldr r0, [sp, #0x5c]
+ add r0, r0, r1
+ str r0, [sp, #0x5c]
+ mov r0, #0
+ str r0, [sp, #0x64]
+ ldr r0, [sp, #0x58]
+ str r0, [sp, #0x54]
+_02247CFA:
+ ldr r1, [sp, #0x54]
+ ldr r0, _02247D84 ; =0x00002D4C
+ ldrh r6, [r1, r0]
+ ldr r1, _02247D94 ; =0x000003E1
+ lsl r0, r6, #4
+ add r0, r4, r0
+ ldrb r1, [r0, r1]
+ str r1, [sp, #0x60]
+ cmp r1, #1
+ bne _02247DB2
+ ldr r1, _02247D8C ; =0x000003DE
+ ldrh r0, [r0, r1]
+ cmp r0, #0x59
+ bgt _02247D1E
+ bge _02247D46
+ cmp r0, #0x26
+ beq _02247D2C
+ b _02247D98
+_02247D1E:
+ cmp r0, #0x90
+ bgt _02247D26
+ beq _02247D46
+ b _02247D98
+_02247D26:
+ cmp r0, #0xe3
+ beq _02247D46
+ b _02247D98
+_02247D2C:
+ cmp r5, #0x96
+ blo _02247D3C
+ bne _02247DCE
+ bl FUN_0201B9EC
+ mov r1, #1
+ tst r0, r1
+ beq _02247DCE
+_02247D3C:
+ mov r5, #0x96
+ add r0, r5, #0
+ add r0, #0x8e
+ str r6, [r4, r0]
+ b _02247DCE
+_02247D46:
+ cmp r5, #0x78
+ blo _02247D56
+ bne _02247DCE
+ bl FUN_0201B9EC
+ mov r1, #1
+ tst r0, r1
+ beq _02247DCE
+_02247D56:
+ mov r5, #0x78
+ add r0, r5, #0
+ add r0, #0xac
+ str r6, [r4, r0]
+ b _02247DCE
+ .align 2, 0
+_02247D60: .word 0x00002DB0
+_02247D64: .word 0x00002D8C
+_02247D68: .word 0x00002D5A
+_02247D6C: .word 0x0225E284
+_02247D70: .word 0x00002D44
+_02247D74: .word 0x00002D5D
+_02247D78: .word 0x00002D4A
+_02247D7C: .word 0x00002D68
+_02247D80: .word 0x000021EC
+_02247D84: .word 0x00002D4C
+_02247D88: .word 0x00002144
+_02247D8C: .word 0x000003DE
+_02247D90: .word 0x00002D74
+_02247D94: .word 0x000003E1
+_02247D98:
+ cmp r5, #0x50
+ blo _02247DA8
+ bne _02247DCE
+ bl FUN_0201B9EC
+ mov r1, #1
+ tst r0, r1
+ beq _02247DCE
+_02247DA8:
+ mov r5, #0x50
+ add r0, r5, #0
+ add r0, #0xd4
+ str r6, [r4, r0]
+ b _02247DCE
+_02247DB2:
+ add r0, r1, #0
+ cmp r5, r0
+ blo _02247DC6
+ cmp r5, r0
+ bne _02247DCE
+ bl FUN_0201B9EC
+ mov r1, #1
+ tst r0, r1
+ beq _02247DCE
+_02247DC6:
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r5, [sp, #0x60]
+ str r6, [r4, r0]
+_02247DCE:
+ ldr r0, [sp, #0x54]
+ add r0, r0, #2
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0x64]
+ add r0, r0, #1
+ str r0, [sp, #0x64]
+ cmp r0, #4
+ blt _02247CFA
+_02247DDE:
+ ldr r0, [sp, #0x58]
+ add r0, #0xc0
+ str r0, [sp, #0x58]
+ ldr r0, [sp, #0x68]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x68]
+ cmp r1, r0
+ bge _02247DF2
+ b _02247CCC
+_02247DF2:
+ cmp r5, #0
+ beq _02247E08
+ mov r1, #0x46
+ ldr r0, [sp, #0x20]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xc3
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247E64
+_02247E08:
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0
+ beq _02247E64
+ ldr r2, [sp, #0x20]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022482A4
+ add r5, r0, #0
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_022473F8
+ add r6, r0, #0
+ bl FUN_0201B9EC
+ add r1, r6, #0
+ blx _s32_div_f
+ mov r0, #0xc0
+ add r2, r5, #0
+ mul r2, r0
+ lsl r3, r1, #1
+ add r1, r4, r2
+ add r2, r3, r1
+ ldr r1, _02248144 ; =0x00002D4C
+ ldrh r2, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x64
+ str r2, [r4, r1]
+ ldr r1, [sp, #0x20]
+ add r0, #0x58
+ str r1, [r4, r0]
+ mov r0, #0xc3
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247E64
+_02247E56:
+ ldr r0, [sp, #0x38]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x38]
+ cmp r1, r0
+ bge _02247E64
+ b _02247C84
+_02247E64:
+ ldr r1, [sp, #0x38]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ beq _02247E6E
+ b _02248282
+_02247E6E:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_02247E76:
+ mov r0, #0
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bgt _02247E82
+ b _02247FBA
+_02247E82:
+ ldr r0, _02248148 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0xa0]
+_02247E88:
+ ldr r0, [sp, #0x3c]
+ add r1, r4, r0
+ ldr r0, _0224814C ; =0x000021EC
+ ldrb r5, [r1, r0]
+ mov r0, #0xc0
+ add r6, r5, #0
+ mul r6, r0
+ ldr r0, [sp, #0xa0]
+ ldr r0, [r0, r6]
+ lsl r0, r0, #0x17
+ lsr r0, r0, #0x1f
+ bne _02247F9A
+ ldr r0, _02248150 ; =0x00002D8C
+ add r1, r4, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02247F9A
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x77
+ bne _02247F9A
+ ldr r0, [sp, #0xa0]
+ ldr r1, [r0, r6]
+ mov r0, #1
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, [sp, #0xa0]
+ str r1, [r0, r6]
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02247F74
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD11_02230308
+ str r0, [sp, #0xc0]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #2
+ bl MOD11_02230308
+ ldr r2, [sp, #0xc0]
+ mov r1, #0xc0
+ mul r1, r2
+ ldr r2, _02248150 ; =0x00002D8C
+ add r1, r4, r1
+ ldr r3, [r1, r2]
+ str r0, [sp, #0xc4]
+ cmp r3, #0
+ beq _02247F38
+ add r2, #0x2c
+ ldrh r2, [r1, r2]
+ cmp r2, #0
+ beq _02247F38
+ mov r2, #0xc0
+ mul r2, r0
+ add r0, r4, r2
+ ldr r2, _02248150 ; =0x00002D8C
+ ldr r2, [r0, r2]
+ cmp r2, #0
+ beq _02247F38
+ ldr r2, _02248154 ; =0x00002DB8
+ ldrh r0, [r0, r2]
+ cmp r0, #0
+ beq _02247F38
+ bl FUN_0201B9EC
+ lsl r0, r0, #0x1f
+ lsr r1, r0, #0x1d
+ add r0, sp, #0xc0
+ ldr r1, [r0, r1]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02248154 ; =0x00002DB8
+ ldrh r1, [r1, r0]
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247F9A
+_02247F38:
+ cmp r3, #0
+ beq _02247F50
+ ldr r0, _02248154 ; =0x00002DB8
+ ldrh r1, [r1, r0]
+ cmp r1, #0
+ beq _02247F50
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247F9A
+_02247F50:
+ ldr r1, [sp, #0xc4]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _02248150 ; =0x00002D8C
+ add r0, r4, r0
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ beq _02247F9A
+ ldr r1, _02248154 ; =0x00002DB8
+ ldrh r1, [r0, r1]
+ cmp r1, #0
+ beq _02247F9A
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247F9A
+_02247F74:
+ mov r0, #1
+ add r1, r5, #0
+ eor r1, r0
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _02248150 ; =0x00002D8C
+ add r0, r4, r0
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ beq _02247F9A
+ ldr r1, _02248154 ; =0x00002DB8
+ ldrh r1, [r0, r1]
+ cmp r1, #0
+ beq _02247F9A
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0x84]
+_02247F9A:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ bne _02247FAC
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ mov r0, #0xfd
+ str r0, [sp, #0xcc]
+ b _02247FBA
+_02247FAC:
+ ldr r0, [sp, #0x3c]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x3c]
+ cmp r1, r0
+ bge _02247FBA
+ b _02247E88
+_02247FBA:
+ ldr r1, [sp, #0x3c]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ beq _02247FC4
+ b _02248282
+_02247FC4:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_02247FCC:
+ mov r0, #0
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ ble _02248094
+ ldr r0, _02248148 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0xa4]
+_02247FDC:
+ ldr r0, [sp, #0x40]
+ add r1, r4, r0
+ ldr r0, _0224814C ; =0x000021EC
+ ldrb r6, [r1, r0]
+ mov r0, #0xc0
+ add r5, r6, #0
+ mul r5, r0
+ ldr r0, [sp, #0xa4]
+ ldr r0, [r0, r5]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ bne _02248038
+ ldr r0, _02248150 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ str r1, [sp, #0x48]
+ cmp r0, #0
+ beq _02248038
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x70
+ bne _02248038
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ ldr r1, [sp, #0x48]
+ ldr r0, _02248158 ; =0x00002DD8
+ ldr r0, [r1, r0]
+ cmp r2, r0
+ bgt _02248038
+ ldr r0, [sp, #0xa4]
+ mov r2, #0x40
+ ldr r0, [r0, r5]
+ add r1, r0, #0
+ orr r1, r2
+ ldr r0, [sp, #0xa4]
+ add r2, #0xd8
+ str r1, [r0, r5]
+ str r6, [r4, r2]
+ mov r0, #0xc4
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02248094
+_02248038:
+ ldr r0, [sp, #0xa4]
+ ldr r0, [r0, r5]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bne _02248088
+ ldr r0, _02248150 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ str r1, [sp, #0x44]
+ cmp r0, #0
+ beq _02248088
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x70
+ bne _02248088
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ ldr r1, [sp, #0x44]
+ ldr r0, _02248158 ; =0x00002DD8
+ ldr r0, [r1, r0]
+ sub r0, r2, r0
+ cmp r0, #5
+ bne _02248088
+ ldr r0, [sp, #0xa4]
+ mov r2, #0x80
+ ldr r0, [r0, r5]
+ add r1, r0, #0
+ orr r1, r2
+ ldr r0, [sp, #0xa4]
+ add r2, #0x98
+ str r1, [r0, r5]
+ str r6, [r4, r2]
+ mov r0, #0xc5
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02248094
+_02248088:
+ ldr r0, [sp, #0x40]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x40]
+ cmp r1, r0
+ blt _02247FDC
+_02248094:
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ bne _0224810E
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_022480A4:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _02248108
+ ldr r0, _02248148 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0xa8]
+_022480B2:
+ ldr r0, _0224814C ; =0x000021EC
+ add r1, r4, r5
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ ldr r0, [sp, #0xa8]
+ str r1, [sp, #0x24]
+ ldr r0, [r0, r6]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1f
+ bne _02248100
+ ldr r0, _02248150 ; =0x00002D8C
+ add r1, r4, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02248100
+ ldr r1, [sp, #0x24]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x68
+ bne _02248100
+ ldr r0, [sp, #0xa8]
+ mov r2, #2
+ ldr r0, [r0, r6]
+ lsl r2, r2, #8
+ add r1, r0, #0
+ orr r1, r2
+ ldr r0, [sp, #0xa8]
+ sub r2, #0xe8
+ str r1, [r0, r6]
+ ldr r0, [sp, #0x24]
+ str r0, [r4, r2]
+ mov r0, #0xb1
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02248108
+_02248100:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _022480B2
+_02248108:
+ ldr r0, [sp, #0x80]
+ cmp r5, r0
+ beq _02248110
+_0224810E:
+ b _02248282
+_02248110:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_02248118:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _02248198
+ ldr r0, _02248148 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0xac]
+_02248126:
+ ldr r0, _0224814C ; =0x000021EC
+ add r1, r4, r5
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ ldr r0, [sp, #0xac]
+ str r1, [sp, #0x28]
+ ldr r0, [r0, r6]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1f
+ bne _02248190
+ ldr r0, _02248150 ; =0x00002D8C
+ b _0224815C
+ nop
+_02248144: .word 0x00002D4C
+_02248148: .word 0x00002D68
+_0224814C: .word 0x000021EC
+_02248150: .word 0x00002D8C
+_02248154: .word 0x00002DB8
+_02248158: .word 0x00002DD8
+_0224815C:
+ add r1, r4, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02248190
+ ldr r1, [sp, #0x28]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2e
+ bne _02248190
+ ldr r0, [sp, #0xac]
+ ldr r1, [r0, r6]
+ mov r0, #1
+ lsl r0, r0, #0xa
+ orr r1, r0
+ ldr r0, [sp, #0xac]
+ str r1, [r0, r6]
+ mov r1, #0x46
+ ldr r0, [sp, #0x28]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #5
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02248198
+_02248190:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _02248126
+_02248198:
+ ldr r0, [sp, #0x80]
+ cmp r5, r0
+ bne _02248282
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_022481A6:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0224AE78
+ cmp r0, #1
+ bne _022481BC
+ ldr r0, _02248294 ; =0x00000106
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02248282
+_022481BC:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_022481C4:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _022481F6
+ mov r6, #2
+_022481CE:
+ ldr r1, _02248298 ; =0x000021EC
+ add r2, r4, r5
+ ldrb r2, [r2, r1]
+ mov r1, #0xc0
+ add r0, r4, #0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224829C ; =0x00002DB8
+ ldrh r1, [r2, r1]
+ mov r2, #1
+ bl MOD11_0224C12C
+ cmp r0, #0x39
+ bne _022481EE
+ ldr r0, _022482A0 ; =0x00002168
+ str r6, [r4, r0]
+_022481EE:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _022481CE
+_022481F6:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_022481FE:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _0224822C
+ ldr r6, _02248298 ; =0x000021EC
+_02248208:
+ add r2, r4, r5
+ ldrb r2, [r2, r6]
+ add r0, r7, #0
+ add r1, r4, #0
+ mov r3, #1
+ bl MOD11_02248898
+ cmp r0, #1
+ bne _02248224
+ mov r0, #0xdd
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224822C
+_02248224:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _02248208
+_0224822C:
+ ldr r0, [sp, #0x80]
+ cmp r5, r0
+ bne _02248282
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_0224823A:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _0224826C
+_02248242:
+ ldr r0, _02248298 ; =0x000021EC
+ add r1, r4, r5
+ ldrb r6, [r1, r0]
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, sp, #0xcc
+ bl MOD11_022493A0
+ cmp r0, #1
+ bne _02248264
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r6, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224826C
+_02248264:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _02248242
+_0224826C:
+ ldr r0, [sp, #0x80]
+ cmp r5, r0
+ bne _02248282
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_0224827A:
+ mov r0, #0
+ str r0, [r4, #0x58]
+ mov r0, #2
+ str r0, [sp, #0x84]
+_02248282:
+ ldr r0, [sp, #0x84]
+ cmp r0, #0
+ bne _0224828C
+ bl MOD11_022476F0
+_0224828C:
+ ldr r0, [sp, #0xcc]
+ add sp, #0xd0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02248294: .word 0x00000106
+_02248298: .word 0x000021EC
+_0224829C: .word 0x00002DB8
+_022482A0: .word 0x00002168
+
+ thumb_func_start MOD11_022482A4
+MOD11_022482A4: ; 0x022482A4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _022482FA
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD11_02230308
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #2
+ bl MOD11_02230308
+ str r0, [sp, #4]
+ bl FUN_0201B9EC
+ mov r3, #1
+ add r2, r0, #0
+ and r2, r3
+ lsl r0, r2, #2
+ add r1, sp, #0
+ ldr r0, [r1, r0]
+ mov r4, #0xc0
+ mul r4, r0
+ add r5, r6, r4
+ ldr r4, _02248304 ; =0x00002D8C
+ ldr r4, [r5, r4]
+ cmp r4, #0
+ bne _022482FE
+ add r0, r2, #0
+ eor r0, r3
+ lsl r0, r0, #2
+ add sp, #8
+ ldr r0, [r1, r0]
+ pop {r4, r5, r6, pc}
+_022482FA:
+ mov r0, #1
+ eor r0, r4
+_022482FE:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_02248304: .word 0x00002D8C
+
+ thumb_func_start MOD11_02248308
+MOD11_02248308: ; 0x02248308
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, [r5, #0x6c]
+ add r7, r0, #0
+ add r4, r2, #0
+ mov r6, #0
+ cmp r1, #0xff
+ bne _0224831C
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224831C:
+ add r0, r5, #0
+ bl MOD11_0224AD9C
+ cmp r0, #1
+ bne _0224832A
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224832A:
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x26
+ bgt _0224835A
+ blt _0224833A
+ b _022485FC
+_0224833A:
+ cmp r0, #0x10
+ bgt _02248346
+ bge _02248408
+ cmp r0, #9
+ beq _02248372
+ b _0224887A
+_02248346:
+ cmp r0, #0x1b
+ bgt _02248358
+ cmp r0, #0x18
+ blt _02248358
+ bne _02248352
+ b _022484B0
+_02248352:
+ cmp r0, #0x1b
+ bne _02248358
+ b _02248546
+_02248358:
+ b _0224887A
+_0224835A:
+ cmp r0, #0x38
+ bgt _0224836A
+ blt _02248362
+ b _02248752
+_02248362:
+ cmp r0, #0x31
+ bne _02248368
+ b _022486BE
+_02248368:
+ b _0224887A
+_0224836A:
+ cmp r0, #0x6a
+ bne _02248370
+ b _022487FA
+_02248370:
+ b _0224887A
+_02248372:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248660 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _022483E6
+ add r1, r0, #0
+ add r1, #0x20
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bne _022483E6
+ ldr r2, _02248664 ; =0x0000216C
+ ldr r1, _02248668 ; =0x801FDA49
+ ldr r3, [r5, r2]
+ tst r1, r3
+ bne _022483E6
+ add r1, r2, #0
+ sub r1, #0x30
+ ldr r3, [r5, r1]
+ mov r1, #0x20
+ tst r1, r3
+ bne _022483E6
+ sub r2, #0x2c
+ ldr r2, [r5, r2]
+ mov r1, #0x10
+ tst r1, r2
+ bne _022483E6
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r5, r1
+ lsr r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022483C6
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022483E6
+_022483C6:
+ ldr r0, _0224866C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248670 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _022483E6
+ bl FUN_0201B9EC
+ mov r1, #0xa
+ blx _s32_div_f
+ cmp r1, #3
+ blt _022483E8
+_022483E6:
+ b _0224887A
+_022483E8:
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r0, #0x46
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0x1f
+ str r0, [r4]
+ mov r6, #1
+ b _0224887A
+_02248408:
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _02248418
+ add r7, r6, #0
+ b _02248432
+_02248418:
+ ldr r0, _02248674 ; =0x00002160
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02248426
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ b _02248432
+_02248426:
+ ldr r0, _0224866C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248678 ; =0x000003E2
+ ldrb r7, [r1, r0]
+_02248432:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248660 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02248516
+ ldr r0, _02248664 ; =0x0000216C
+ ldr r2, [r5, r0]
+ ldr r0, _02248668 ; =0x801FDA49
+ tst r0, r2
+ bne _02248516
+ ldr r0, _0224866C ; =0x00003044
+ ldr r3, [r5, r0]
+ cmp r3, #0xa5
+ beq _02248516
+ mov r0, #0x1c
+ ldr r2, _02248660 ; =0x00002D8C
+ mul r0, r1
+ add r0, r5, r0
+ lsr r2, r2, #4
+ ldr r2, [r0, r2]
+ cmp r2, #0
+ bne _0224846E
+ mov r2, #0x2e
+ lsl r2, r2, #4
+ ldr r0, [r0, r2]
+ cmp r0, #0
+ beq _02248516
+_0224846E:
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r2, [r5, r0]
+ mov r0, #0x10
+ tst r0, r2
+ bne _02248516
+ lsl r0, r3, #4
+ add r2, r5, r0
+ ldr r0, _0224867C ; =0x000003E1
+ ldrb r0, [r2, r0]
+ cmp r0, #0
+ beq _02248516
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r7, r0
+ beq _02248516
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r7, r0
+ beq _02248516
+ mov r0, #0xbc
+ str r0, [r4]
+ add r0, #0x74
+ str r7, [r5, r0]
+ mov r6, #1
+ b _0224887A
+_022484B0:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248660 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02248516
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02248516
+ ldr r1, _02248664 ; =0x0000216C
+ ldr r0, _02248668 ; =0x801FDA49
+ ldr r2, [r5, r1]
+ tst r0, r2
+ bne _02248516
+ add r0, r1, #0
+ sub r0, #0x30
+ ldr r2, [r5, r0]
+ mov r0, #0x20
+ tst r0, r2
+ bne _02248516
+ sub r1, #0x2c
+ ldr r1, [r5, r1]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02248516
+ ldr r1, [r5, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r2, r5, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _02248504
+ add r0, #8
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02248516
+_02248504:
+ ldr r0, _0224866C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248670 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ bne _02248518
+_02248516:
+ b _0224887A
+_02248518:
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02248680 ; =0x00002D90
+ add r2, r5, r2
+ ldr r2, [r2, r0]
+ sub r1, #0xc1
+ add r0, r2, #0
+ mul r0, r1
+ mov r1, #8
+ bl MOD11_022476C0
+ ldr r1, _02248684 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ mov r0, #0x46
+ ldr r1, [r5, #0x64]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0xbd
+ str r0, [r4]
+ b _0224887A
+_02248546:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248660 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02248650
+ add r1, r0, #0
+ add r1, #0x20
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bne _02248650
+ ldr r2, _02248664 ; =0x0000216C
+ ldr r1, _02248668 ; =0x801FDA49
+ ldr r3, [r5, r2]
+ tst r1, r3
+ bne _02248650
+ add r1, r2, #0
+ sub r1, #0x30
+ ldr r3, [r5, r1]
+ mov r1, #0x20
+ tst r1, r3
+ bne _02248650
+ sub r2, #0x2c
+ ldr r2, [r5, r2]
+ mov r1, #0x10
+ tst r1, r2
+ bne _02248650
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r5, r1
+ lsr r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _0224859A
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02248650
+_0224859A:
+ ldr r0, _0224866C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248670 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02248650
+ bl FUN_0201B9EC
+ mov r1, #0xa
+ blx _s32_div_f
+ cmp r1, #3
+ bge _02248650
+ bl FUN_0201B9EC
+ mov r1, #3
+ blx _s32_div_f
+ cmp r1, #0
+ beq _022485D0
+ cmp r1, #1
+ beq _022485D6
+ cmp r1, #2
+ beq _022485DC
+_022485D0:
+ mov r0, #0x16
+ str r0, [r4]
+ b _022485E0
+_022485D6:
+ mov r0, #0x1f
+ str r0, [r4]
+ b _022485E0
+_022485DC:
+ mov r0, #0x12
+ str r0, [r4]
+_022485E0:
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r0, #0x46
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r6, #1
+ b _0224887A
+_022485FC:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248660 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02248650
+ add r1, r0, #0
+ add r1, #0x20
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bne _02248650
+ ldr r2, _02248664 ; =0x0000216C
+ ldr r1, _02248668 ; =0x801FDA49
+ ldr r3, [r5, r2]
+ tst r1, r3
+ bne _02248650
+ add r1, r2, #0
+ sub r1, #0x30
+ ldr r3, [r5, r1]
+ mov r1, #0x20
+ tst r1, r3
+ bne _02248650
+ sub r2, #0x2c
+ ldr r2, [r5, r2]
+ mov r1, #0x10
+ tst r1, r2
+ bne _02248650
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r5, r1
+ lsr r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02248652
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02248652
+_02248650:
+ b _0224887A
+_02248652:
+ ldr r0, _0224866C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248670 ; =0x000003E9
+ b _02248688
+ nop
+_02248660: .word 0x00002D8C
+_02248664: .word 0x0000216C
+_02248668: .word 0x801FDA49
+_0224866C: .word 0x00003044
+_02248670: .word 0x000003E9
+_02248674: .word 0x00002160
+_02248678: .word 0x000003E2
+_0224867C: .word 0x000003E1
+_02248680: .word 0x00002D90
+_02248684: .word 0x0000215C
+_02248688:
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02248770
+ bl FUN_0201B9EC
+ mov r1, #0xa
+ blx _s32_div_f
+ cmp r1, #3
+ bge _02248770
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r0, #0x46
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0x16
+ str r0, [r4]
+ mov r6, #1
+ b _0224887A
+_022486BE:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248880 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02248770
+ add r1, r0, #0
+ add r1, #0x20
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bne _02248770
+ ldr r2, _02248884 ; =0x0000216C
+ ldr r1, _02248888 ; =0x801FDA49
+ ldr r3, [r5, r2]
+ tst r1, r3
+ bne _02248770
+ add r1, r2, #0
+ sub r1, #0x30
+ ldr r3, [r5, r1]
+ mov r1, #0x20
+ tst r1, r3
+ bne _02248770
+ sub r2, #0x2c
+ ldr r2, [r5, r2]
+ mov r1, #0x10
+ tst r1, r2
+ bne _02248770
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r5, r1
+ lsr r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02248712
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02248770
+_02248712:
+ ldr r0, _0224888C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248890 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02248770
+ bl FUN_0201B9EC
+ mov r1, #0xa
+ blx _s32_div_f
+ cmp r1, #3
+ bge _02248770
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r0, #0x46
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0x19
+ str r0, [r4]
+ mov r6, #1
+ b _0224887A
+_02248752:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248880 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02248770
+ add r1, r0, #0
+ add r1, #0x24
+ ldr r2, [r2, r1]
+ mov r1, #0xf
+ lsl r1, r1, #0x10
+ tst r1, r2
+ beq _02248772
+_02248770:
+ b _0224887A
+_02248772:
+ ldr r2, _02248884 ; =0x0000216C
+ ldr r1, _02248888 ; =0x801FDA49
+ ldr r3, [r5, r2]
+ tst r1, r3
+ bne _0224887A
+ add r1, r2, #0
+ sub r1, #0x30
+ ldr r3, [r5, r1]
+ mov r1, #0x20
+ tst r1, r3
+ bne _0224887A
+ sub r2, #0x2c
+ ldr r2, [r5, r2]
+ mov r1, #0x10
+ tst r1, r2
+ bne _0224887A
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r5, r1
+ lsr r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022487AC
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224887A
+_022487AC:
+ ldr r0, _0224888C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248890 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0224887A
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r5, r0
+ ldr r0, _02248880 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224887A
+ bl FUN_0201B9EC
+ mov r1, #0xa
+ blx _s32_div_f
+ cmp r1, #3
+ bge _0224887A
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r0, #0x46
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0x6a
+ str r0, [r4]
+ mov r6, #1
+ b _0224887A
+_022487FA:
+ ldr r1, [r5, #0x6c]
+ ldr r0, [r5, #0x74]
+ cmp r1, r0
+ bne _0224887A
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _0224887A
+ mov r0, #6
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #8
+ add r3, r6, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224887A
+ mov r2, #0x85
+ lsl r2, r2, #6
+ ldr r1, [r5, r2]
+ mov r0, #0x10
+ tst r0, r1
+ bne _0224887A
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02248880 ; =0x00002D8C
+ ldr r3, [r1, r0]
+ cmp r3, #0
+ beq _0224887A
+ add r2, #0x2c
+ ldr r3, [r5, r2]
+ ldr r2, _02248888 ; =0x801FDA49
+ tst r2, r3
+ bne _0224887A
+ ldr r2, _0224888C ; =0x00003044
+ ldr r2, [r5, r2]
+ lsl r2, r2, #4
+ add r3, r5, r2
+ ldr r2, _02248890 ; =0x000003E9
+ ldrb r3, [r3, r2]
+ mov r2, #1
+ tst r3, r2
+ beq _0224887A
+ add r0, r0, #4
+ ldr r1, [r1, r0]
+ sub r0, r2, #2
+ mul r0, r1
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _02248894 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ mov r0, #0x46
+ ldr r1, [r5, #0x64]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0xc1
+ str r0, [r4]
+_0224887A:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02248880: .word 0x00002D8C
+_02248884: .word 0x0000216C
+_02248888: .word 0x801FDA49
+_0224888C: .word 0x00003044
+_02248890: .word 0x000003E9
+_02248894: .word 0x0000215C
+
+ thumb_func_start MOD11_02248898
+MOD11_02248898: ; 0x02248898
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r2, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ add r7, r3, #0
+ mov r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x28
+ bgt _022488DE
+ bge _02248978
+ cmp r0, #7
+ bgt _022488B8
+ beq _02248926
+ b _022489D0
+_022488B8:
+ add r1, r0, #0
+ sub r1, #0xc
+ cmp r1, #8
+ bhi _022488E8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022488CC: ; jump table
+ .short _02248994 - _022488CC - 2 ; case 0
+ .short _022489D0 - _022488CC - 2 ; case 1
+ .short _022489D0 - _022488CC - 2 ; case 2
+ .short _02248940 - _022488CC - 2 ; case 3
+ .short _022489D0 - _022488CC - 2 ; case 4
+ .short _022488F0 - _022488CC - 2 ; case 5
+ .short _022489D0 - _022488CC - 2 ; case 6
+ .short _022489D0 - _022488CC - 2 ; case 7
+ .short _0224890A - _022488CC - 2 ; case 8
+_022488DE:
+ cmp r0, #0x48
+ bgt _022488EA
+ bge _02248940
+ cmp r0, #0x29
+ beq _0224895C
+_022488E8:
+ b _022489D0
+_022488EA:
+ cmp r0, #0x54
+ beq _022489B2
+ b _022489D0
+_022488F0:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A04 ; =0x00002DAC
+ ldr r2, [r2, r1]
+ ldr r1, _02248A08 ; =0x00000F88
+ tst r1, r2
+ beq _022489D0
+ mov r6, #1
+ add r0, #0x70
+ str r6, [r4, r0]
+ b _022489D0
+_0224890A:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A0C ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #7
+ tst r1, r2
+ beq _022489D0
+ mov r1, #5
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_02248926:
+ mov r0, #0xc0
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _02248A04 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r1, r0
+ beq _022489D0
+ mov r1, #3
+ add r0, #0xf0
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_02248940:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A04 ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #7
+ tst r1, r2
+ beq _022489D0
+ mov r1, #0
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_0224895C:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A04 ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #0x10
+ tst r1, r2
+ beq _022489D0
+ mov r1, #2
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_02248978:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A04 ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #0x20
+ tst r1, r2
+ beq _022489D0
+ mov r1, #4
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_02248994:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A0C ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #0xf
+ lsl r1, r1, #0x10
+ tst r1, r2
+ beq _022489D0
+ mov r1, #6
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_022489B2:
+ mov r0, #0xc0
+ add r3, r5, #0
+ mul r3, r0
+ ldr r0, _02248A10 ; =0x00002DB8
+ add r1, r4, r3
+ ldrh r1, [r1, r0]
+ cmp r1, #0
+ beq _022489D0
+ add r0, #0x14
+ add r2, r4, r0
+ mov r0, #1
+ ldr r1, [r2, r3]
+ lsl r0, r0, #0x16
+ orr r0, r1
+ str r0, [r2, r3]
+_022489D0:
+ cmp r6, #1
+ bne _022489FE
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246D1C
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ cmp r7, #0
+ bne _022489FE
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xdd
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_022489FE:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02248A04: .word 0x00002DAC
+_02248A08: .word 0x00000F88
+_02248A0C: .word 0x00002DB0
+_02248A10: .word 0x00002DB8
+
+ thumb_func_start MOD11_02248A14
+MOD11_02248A14: ; 0x02248A14
+ mov r0, #0
+ cmp r1, #0x28
+ bgt _02248A34
+ bge _02248A6A
+ cmp r1, #7
+ bgt _02248A24
+ beq _02248A4C
+ bx lr
+_02248A24:
+ cmp r1, #0x11
+ bgt _02248A72
+ cmp r1, #0xf
+ blt _02248A72
+ beq _02248A56
+ cmp r1, #0x11
+ beq _02248A42
+ bx lr
+_02248A34:
+ cmp r1, #0x29
+ bgt _02248A3C
+ beq _02248A60
+ bx lr
+_02248A3C:
+ cmp r1, #0x48
+ beq _02248A56
+ bx lr
+_02248A42:
+ ldr r1, _02248A74 ; =0x00000F88
+ tst r1, r2
+ beq _02248A72
+ mov r0, #1
+ bx lr
+_02248A4C:
+ mov r1, #0x40
+ tst r1, r2
+ beq _02248A72
+ mov r0, #1
+ bx lr
+_02248A56:
+ mov r1, #7
+ tst r1, r2
+ beq _02248A72
+ mov r0, #1
+ bx lr
+_02248A60:
+ mov r1, #0x10
+ tst r1, r2
+ beq _02248A72
+ mov r0, #1
+ bx lr
+_02248A6A:
+ mov r1, #0x20
+ tst r1, r2
+ beq _02248A72
+ mov r0, #1
+_02248A72:
+ bx lr
+ .align 2, 0
+_02248A74: .word 0x00000F88
+
+ thumb_func_start MOD11_02248A78
+MOD11_02248A78: ; 0x02248A78
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x6c]
+ str r0, [sp]
+ mov r7, #0
+ add r0, r4, #0
+ add r6, r2, #0
+ add r5, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x1c
+ bne _02248ABA
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ beq _02248ABA
+ add r1, r4, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _02248ABA
+ ldr r1, _02248BFC ; =0x0000213C
+ ldr r2, [r4, r1]
+ mov r1, #0x80
+ tst r2, r1
+ beq _02248ABA
+ add r1, #0x98
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, [r4, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r7, #1
+ b _02248AEA
+_02248ABA:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x1c
+ bne _02248AEA
+ add r1, r4, #0
+ add r1, #0x94
+ ldr r0, [r4, #0x64]
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _02248AEA
+ ldr r1, _02248BFC ; =0x0000213C
+ ldr r2, [r4, r1]
+ mov r1, #0x80
+ tst r2, r1
+ beq _02248AEA
+ add r1, #0x98
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, [r4, #0x6c]
+ add r0, #0x94
+ str r1, [r0]
+ mov r7, #1
+_02248AEA:
+ cmp r7, #1
+ bne _02248B3A
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02248C00 ; =0x00002DAC
+ ldr r0, [r1, r0]
+ ldr r1, _02248C04 ; =0x00000F88
+ tst r1, r0
+ beq _02248B08
+ mov r5, #0x16
+ b _02248B1A
+_02248B08:
+ mov r1, #0x10
+ tst r1, r0
+ beq _02248B12
+ mov r5, #0x19
+ b _02248B1A
+_02248B12:
+ mov r1, #0x40
+ tst r0, r1
+ beq _02248B1A
+ mov r5, #0x1f
+_02248B1A:
+ cmp r5, #0
+ beq _02248B3A
+ add r0, r4, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r5, #0
+ bl MOD11_022431DC
+ str r6, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02248B3A:
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_0224AE78
+ add r5, r0, #0
+ cmp r5, #1
+ bne _02248B5C
+ ldr r2, _02248C08 ; =0x00000106
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ str r6, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02248B5C:
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ cmp r0, #0x6b
+ bne _02248B9C
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ beq _02248B9C
+ add r1, r4, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _02248B9C
+ mov r1, #0x1c
+ add r2, r0, #0
+ mul r2, r1
+ add r3, r4, r2
+ mov r2, #0xba
+ lsl r2, r2, #2
+ ldr r3, [r3, r2]
+ mov r2, #4
+ tst r2, r3
+ beq _02248B9C
+ add r1, #0xfc
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, [r4, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r5, #1
+ b _02248BD6
+_02248B9C:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ cmp r0, #0x6b
+ bne _02248BD6
+ add r1, r4, #0
+ add r1, #0x94
+ ldr r0, [r4, #0x64]
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _02248BD6
+ mov r1, #0x1c
+ add r2, r0, #0
+ mul r2, r1
+ add r3, r4, r2
+ mov r2, #0xba
+ lsl r2, r2, #2
+ ldr r3, [r3, r2]
+ mov r2, #4
+ tst r2, r3
+ beq _02248BD6
+ add r1, #0xfc
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, [r4, #0x6c]
+ add r0, #0x94
+ str r1, [r0]
+ mov r5, #1
+_02248BD6:
+ cmp r5, #1
+ bne _02248BF6
+ add r0, r4, #0
+ mov r1, #5
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x6a
+ bl MOD11_022431DC
+ str r6, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02248BF6:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02248BFC: .word 0x0000213C
+_02248C00: .word 0x00002DAC
+_02248C04: .word 0x00000F88
+_02248C08: .word 0x00000106
+
+ thumb_func_start MOD11_02248C0C
+MOD11_02248C0C: ; 0x02248C0C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ add r4, r1, #0
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r2, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_02249D90
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ add r6, r0, #0
+ ldr r0, [sp, #4]
+ mov r3, #0xc0
+ add r5, r0, #0
+ ldr r0, _02248F50 ; =0x00002D8C
+ mul r5, r3
+ add r1, r4, r0
+ ldr r2, [r1, r5]
+ str r1, [sp, #0x14]
+ cmp r2, #0
+ bne _02248C46
+ b _02249274
+_02248C46:
+ ldr r1, [sp, #0x10]
+ cmp r1, #0x35
+ bhi _02248CE8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02248C58: ; jump table
+ .short _02249246 - _02248C58 - 2 ; case 0
+ .short _02248CC4 - _02248C58 - 2 ; case 1
+ .short _02249246 - _02248C58 - 2 ; case 2
+ .short _02249246 - _02248C58 - 2 ; case 3
+ .short _02248D00 - _02248C58 - 2 ; case 4
+ .short _02248D14 - _02248C58 - 2 ; case 5
+ .short _02248D28 - _02248C58 - 2 ; case 6
+ .short _02248D3C - _02248C58 - 2 ; case 7
+ .short _02248D50 - _02248C58 - 2 ; case 8
+ .short _02248D64 - _02248C58 - 2 ; case 9
+ .short _02248DC6 - _02248C58 - 2 ; case 10
+ .short _02248DDA - _02248C58 - 2 ; case 11
+ .short _02248CDC - _02248C58 - 2 ; case 12
+ .short _02248E3A - _02248C58 - 2 ; case 13
+ .short _02248E76 - _02248C58 - 2 ; case 14
+ .short _02248EB2 - _02248C58 - 2 ; case 15
+ .short _02248EEE - _02248C58 - 2 ; case 16
+ .short _02248F2C - _02248C58 - 2 ; case 17
+ .short _02249246 - _02248C58 - 2 ; case 18
+ .short _02249246 - _02248C58 - 2 ; case 19
+ .short _02249246 - _02248C58 - 2 ; case 20
+ .short _02249246 - _02248C58 - 2 ; case 21
+ .short _02249246 - _02248C58 - 2 ; case 22
+ .short _02249246 - _02248C58 - 2 ; case 23
+ .short _02249246 - _02248C58 - 2 ; case 24
+ .short _02249246 - _02248C58 - 2 ; case 25
+ .short _02249246 - _02248C58 - 2 ; case 26
+ .short _02249246 - _02248C58 - 2 ; case 27
+ .short _02249246 - _02248C58 - 2 ; case 28
+ .short _02249246 - _02248C58 - 2 ; case 29
+ .short _02249246 - _02248C58 - 2 ; case 30
+ .short _02249246 - _02248C58 - 2 ; case 31
+ .short _02249246 - _02248C58 - 2 ; case 32
+ .short _02249246 - _02248C58 - 2 ; case 33
+ .short _02249246 - _02248C58 - 2 ; case 34
+ .short _02248F86 - _02248C58 - 2 ; case 35
+ .short _02248FCA - _02248C58 - 2 ; case 36
+ .short _02249012 - _02248C58 - 2 ; case 37
+ .short _02249058 - _02248C58 - 2 ; case 38
+ .short _0224909E - _02248C58 - 2 ; case 39
+ .short _022490E4 - _02248C58 - 2 ; case 40
+ .short _02249128 - _02248C58 - 2 ; case 41
+ .short _02249246 - _02248C58 - 2 ; case 42
+ .short _022491D8 - _02248C58 - 2 ; case 43
+ .short _0224920C - _02248C58 - 2 ; case 44
+ .short _02249246 - _02248C58 - 2 ; case 45
+ .short _02249246 - _02248C58 - 2 ; case 46
+ .short _02249246 - _02248C58 - 2 ; case 47
+ .short _02249194 - _02248C58 - 2 ; case 48
+ .short _02249246 - _02248C58 - 2 ; case 49
+ .short _02249246 - _02248C58 - 2 ; case 50
+ .short _02249246 - _02248C58 - 2 ; case 51
+ .short _02249246 - _02248C58 - 2 ; case 52
+ .short _022491BC - _02248C58 - 2 ; case 53
+_02248CC4:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r0, r0, #1
+ cmp r2, r0
+ bhi _02248CE8
+ ldr r0, _02248F54 ; =0x0000215C
+ mov r7, #0xc6
+ str r6, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248CDC:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r1, [r1, r0]
+ lsr r0, r1, #1
+ cmp r2, r0
+ bls _02248CEA
+_02248CE8:
+ b _02249246
+_02248CEA:
+ add r0, r6, #0
+ mul r0, r1
+ mov r1, #0x64
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ mov r7, #0xc6
+ str r0, [r4, r1]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D00:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xc7
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D14:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xc8
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D28:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ ldr r0, _02248F58 ; =0x00000F88
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xc9
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D3C:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x10
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xca
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D50:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xcb
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D64:
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r4, r5
+ ldr r3, _02248F5C ; =0x00002D4C
+ add r1, r0, #0
+_02248D6E:
+ ldrh r2, [r0, r3]
+ cmp r2, #0
+ beq _02248D7C
+ ldr r2, _02248F60 ; =0x00002D6C
+ ldrb r2, [r1, r2]
+ cmp r2, #0
+ beq _02248D8A
+_02248D7C:
+ ldr r2, [sp, #8]
+ add r0, r0, #2
+ add r2, r2, #1
+ add r1, r1, #1
+ str r2, [sp, #8]
+ cmp r2, #4
+ blt _02248D6E
+_02248D8A:
+ ldr r0, [sp, #8]
+ cmp r0, #4
+ beq _02248DF2
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldr r1, [sp, #8]
+ add r0, r4, r0
+ add r0, r0, r5
+ add r1, #0x1f
+ add r2, r6, #0
+ bl MOD11_02243DC8
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_02245190
+ ldr r0, [sp, #8]
+ add r1, r4, r5
+ lsl r0, r0, #1
+ add r1, r1, r0
+ ldr r0, _02248F5C ; =0x00002D4C
+ mov r7, #0xcc
+ ldrh r1, [r1, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248DC6:
+ add r1, r4, r5
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xcd
+ str r0, [sp, #0xc]
+ b _02249246
+_02248DDA:
+ add r2, r0, #0
+ add r1, r4, r5
+ add r2, #0x20
+ ldr r2, [r1, r2]
+ lsl r3, r2, #0x18
+ lsr r3, r3, #0x18
+ bne _02248DF4
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ bne _02248DF4
+_02248DF2:
+ b _02249246
+_02248DF4:
+ mov r0, #0x40
+ tst r0, r2
+ beq _02248DFC
+ mov r7, #0xc7
+_02248DFC:
+ mov r0, #7
+ tst r0, r2
+ beq _02248E04
+ mov r7, #0xc8
+_02248E04:
+ ldr r0, _02248F58 ; =0x00000F88
+ tst r0, r2
+ beq _02248E0C
+ mov r7, #0xc9
+_02248E0C:
+ mov r0, #0x10
+ tst r0, r2
+ beq _02248E14
+ mov r7, #0xca
+_02248E14:
+ mov r0, #0x20
+ tst r0, r2
+ beq _02248E1C
+ mov r7, #0xcb
+_02248E1C:
+ ldr r0, _02248F64 ; =0x00002DB0
+ add r1, r4, r5
+ ldr r1, [r1, r0]
+ mov r0, #7
+ and r0, r1
+ beq _02248E2A
+ mov r7, #0xcd
+_02248E2A:
+ cmp r3, #0
+ beq _02248E34
+ cmp r0, #0
+ beq _02248E34
+ mov r7, #0xce
+_02248E34:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248E3A:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _02248EFA
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02248F68 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02248E6E
+ mov r7, #0xcf
+ b _02248E70
+_02248E6E:
+ mov r7, #0xc6
+_02248E70:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248E76:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _02248EFA
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02248F68 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02248EAA
+ mov r7, #0xcf
+ b _02248EAC
+_02248EAA:
+ mov r7, #0xc6
+_02248EAC:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248EB2:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _02248EFA
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02248F68 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02248EE6
+ mov r7, #0xcf
+ b _02248EE8
+_02248EE6:
+ mov r7, #0xc6
+_02248EE8:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248EEE:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bls _02248EFC
+_02248EFA:
+ b _02249246
+_02248EFC:
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02248F68 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02248F24
+ mov r7, #0xcf
+ b _02248F26
+_02248F24:
+ mov r7, #0xc6
+_02248F26:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248F2C:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _02249000
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02248F68 ; =0x00002DA8
+ b _02248F6C
+ .align 2, 0
+_02248F50: .word 0x00002D8C
+_02248F54: .word 0x0000215C
+_02248F58: .word 0x00000F88
+_02248F5C: .word 0x00002D4C
+_02248F60: .word 0x00002D6C
+_02248F64: .word 0x00002DB0
+_02248F68: .word 0x00002DA8
+_02248F6C:
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02248F7E
+ mov r7, #0xcf
+ b _02248F80
+_02248F7E:
+ mov r7, #0xc6
+_02248F80:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248F86:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02248F98
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_02248F98:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249000
+ ldr r0, _02249280 ; =0x00002D59
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _02249000
+ mov r1, #0x13
+ mov r0, #1
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ str r0, [r4, r1]
+ mov r7, #0xd0
+ b _02249246
+_02248FCA:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02248FDC
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_02248FDC:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249000
+ ldr r0, _02249284 ; =0x00002D5A
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ blt _02249002
+_02249000:
+ b _02249246
+_02249002:
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r7, #0xd0
+ str r0, [sp, #0xc]
+ b _02249246
+_02249012:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02249024
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_02249024:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _0224911E
+ ldr r0, _02249288 ; =0x00002D5B
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _0224911E
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r7, #0xd0
+ str r0, [sp, #0xc]
+ b _02249246
+_02249058:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224906A
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_0224906A:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _0224911E
+ ldr r0, _0224928C ; =0x00002D5C
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _0224911E
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r7, #0xd0
+ str r0, [sp, #0xc]
+ b _02249246
+_0224909E:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022490B0
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_022490B0:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _0224911E
+ ldr r0, _02249290 ; =0x00002D5D
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _0224911E
+ mov r0, #0x13
+ mov r1, #5
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r7, #0xd0
+ str r0, [sp, #0xc]
+ b _02249246
+_022490E4:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022490F6
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_022490F6:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _0224911E
+ ldr r0, _02249294 ; =0x00002DB0
+ add r1, r4, r5
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x14
+ tst r0, r1
+ beq _02249120
+_0224911E:
+ b _02249246
+_02249120:
+ mov r0, #1
+ mov r7, #0xd1
+ str r0, [sp, #0xc]
+ b _02249246
+_02249128:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224913A
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_0224913A:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249246
+ ldr r0, _02249280 ; =0x00002D59
+ mov r2, #0
+ add r3, r4, r5
+_0224915A:
+ ldrsb r1, [r3, r0]
+ cmp r1, #0xc
+ blt _02249168
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r2, #5
+ blt _0224915A
+_02249168:
+ cmp r2, #5
+ beq _02249246
+ ldr r6, _02249280 ; =0x00002D59
+ add r5, r4, r5
+ mov r7, #5
+_02249172:
+ bl FUN_0201B9EC
+ add r1, r7, #0
+ blx _s32_div_f
+ add r0, r5, r1
+ ldrsb r0, [r0, r6]
+ cmp r0, #0xc
+ beq _02249172
+ mov r0, #0x13
+ add r1, r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r7, #0xd2
+ str r0, [sp, #0xc]
+ b _02249246
+_02249194:
+ ldr r6, _02249298 ; =0x00002D58
+ add r1, r4, r5
+ mov r0, #0
+ mov r5, #6
+ add r3, r6, #0
+_0224919E:
+ ldrsb r2, [r1, r3]
+ cmp r2, #6
+ bge _022491AA
+ mov r2, #1
+ strb r5, [r1, r6]
+ str r2, [sp, #0xc]
+_022491AA:
+ add r0, r0, #1
+ add r1, r1, #1
+ cmp r0, #8
+ blt _0224919E
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _02249246
+ mov r7, #0xd3
+ b _02249246
+_022491BC:
+ add r1, r4, r5
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x10
+ tst r0, r1
+ beq _02249246
+ mov r0, #6
+ add r3, #0x70
+ str r0, [r4, r3]
+ mov r0, #1
+ mov r7, #0xd4
+ str r0, [sp, #0xc]
+ b _02249246
+_022491D8:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022491EA
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_022491EA:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249246
+ mov r0, #1
+ ldr r7, _0224929C ; =0x00000109
+ str r0, [sp, #0xc]
+ b _02249246
+_0224920C:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224921E
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_0224921E:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249246
+ ldr r0, _022492A0 ; =0x00002DCC
+ add r2, r4, r0
+ mov r0, #1
+ ldr r1, [r2, r5]
+ lsl r0, r0, #0x1c
+ orr r0, r1
+ str r0, [r2, r5]
+_02249246:
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _02249274
+ mov r1, #0x46
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02249B4C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r7, #0
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_02249274:
+ ldr r0, [sp, #0xc]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224927C: .word 0x00002D90
+_02249280: .word 0x00002D59
+_02249284: .word 0x00002D5A
+_02249288: .word 0x00002D5B
+_0224928C: .word 0x00002D5C
+_02249290: .word 0x00002D5D
+_02249294: .word 0x00002DB0
+_02249298: .word 0x00002D58
+_0224929C: .word 0x00000109
+_022492A0: .word 0x00002DCC
+
+ thumb_func_start MOD11_022492A4
+MOD11_022492A4: ; 0x022492A4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r2, #0
+ mov r7, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02249D90
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02249DA4
+ mov r0, #0xc0
+ add r4, r6, #0
+ mul r4, r0
+ ldr r0, _02249394 ; =0x00002D8C
+ add r1, r5, r0
+ str r1, [sp, #8]
+ ldr r1, [r1, r4]
+ cmp r1, #0
+ beq _0224938E
+ ldr r2, [sp, #4]
+ cmp r2, #0x44
+ beq _022492E2
+ add r0, r2, #0
+ cmp r0, #0x6c
+ beq _022492FE
+ b _02249364
+_022492E2:
+ add r2, r5, r4
+ add r0, r0, #4
+ ldr r0, [r2, r0]
+ cmp r1, r0
+ bhs _02249364
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _02249398 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ mov r0, #0xd5
+ str r0, [sp]
+ b _02249364
+_022492FE:
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ add r3, r7, #0
+ bl MOD11_02243420
+ cmp r0, #3
+ beq _0224931E
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ add r3, r7, #0
+ bl MOD11_02243420
+ cmp r0, #3
+ bne _0224933E
+_0224931E:
+ ldr r0, _0224939C ; =0x00002D90
+ add r1, r5, r4
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #8]
+ ldr r1, [r1, r4]
+ cmp r1, r0
+ bhs _02249364
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _02249398 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ mov r0, #0xd5
+ str r0, [sp]
+ b _02249364
+_0224933E:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02249364
+ ldr r0, _0224939C ; =0x00002D90
+ add r1, r5, r4
+ ldr r1, [r1, r0]
+ sub r0, r7, #1
+ mul r0, r1
+ mov r1, #8
+ bl MOD11_022476C0
+ ldr r1, _02249398 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ mov r0, #0xd7
+ str r0, [sp]
+_02249364:
+ cmp r7, #1
+ bne _0224938E
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r6, [r5, r0]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02249B4C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r2, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_0224938E:
+ add r0, r7, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02249394: .word 0x00002D8C
+_02249398: .word 0x0000215C
+_0224939C: .word 0x00002D90
+
+ thumb_func_start MOD11_022493A0
+MOD11_022493A0: ; 0x022493A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ add r4, r1, #0
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r2, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ add r6, r3, #0
+ bl MOD11_02249D90
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ add r7, r0, #0
+ ldr r0, [sp, #4]
+ mov r3, #0xc0
+ add r5, r0, #0
+ ldr r0, _022496E4 ; =0x00002D8C
+ mul r5, r3
+ add r1, r4, r0
+ ldr r2, [r1, r5]
+ str r1, [sp, #0x14]
+ cmp r2, #0
+ bne _022493DC
+ b _02249A50
+_022493DC:
+ ldr r1, [sp, #0x10]
+ cmp r1, #0x35
+ bhi _02249480
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022493EE: ; jump table
+ .short _02249A3C - _022493EE - 2 ; case 0
+ .short _0224945A - _022493EE - 2 ; case 1
+ .short _02249A3C - _022493EE - 2 ; case 2
+ .short _02249A3C - _022493EE - 2 ; case 3
+ .short _0224949A - _022493EE - 2 ; case 4
+ .short _022494B0 - _022493EE - 2 ; case 5
+ .short _022494C6 - _022493EE - 2 ; case 6
+ .short _022494DC - _022493EE - 2 ; case 7
+ .short _022494F2 - _022493EE - 2 ; case 8
+ .short _02249508 - _022493EE - 2 ; case 9
+ .short _0224956C - _022493EE - 2 ; case 10
+ .short _02249582 - _022493EE - 2 ; case 11
+ .short _02249474 - _022493EE - 2 ; case 12
+ .short _022496BC - _022493EE - 2 ; case 13
+ .short _0224972C - _022493EE - 2 ; case 14
+ .short _0224976A - _022493EE - 2 ; case 15
+ .short _022497A8 - _022493EE - 2 ; case 16
+ .short _022497E6 - _022493EE - 2 ; case 17
+ .short _02249A3C - _022493EE - 2 ; case 18
+ .short _02249A3C - _022493EE - 2 ; case 19
+ .short _02249A3C - _022493EE - 2 ; case 20
+ .short _02249A3C - _022493EE - 2 ; case 21
+ .short _02249A3C - _022493EE - 2 ; case 22
+ .short _02249A3C - _022493EE - 2 ; case 23
+ .short _02249A3C - _022493EE - 2 ; case 24
+ .short _02249A3C - _022493EE - 2 ; case 25
+ .short _02249A3C - _022493EE - 2 ; case 26
+ .short _02249A3C - _022493EE - 2 ; case 27
+ .short _02249A3C - _022493EE - 2 ; case 28
+ .short _02249A3C - _022493EE - 2 ; case 29
+ .short _02249A3C - _022493EE - 2 ; case 30
+ .short _02249A3C - _022493EE - 2 ; case 31
+ .short _02249A3C - _022493EE - 2 ; case 32
+ .short _02249A3C - _022493EE - 2 ; case 33
+ .short _02249A3C - _022493EE - 2 ; case 34
+ .short _02249826 - _022493EE - 2 ; case 35
+ .short _0224986C - _022493EE - 2 ; case 36
+ .short _022498B4 - _022493EE - 2 ; case 37
+ .short _022498FC - _022493EE - 2 ; case 38
+ .short _02249946 - _022493EE - 2 ; case 39
+ .short _0224998E - _022493EE - 2 ; case 40
+ .short _022499D2 - _022493EE - 2 ; case 41
+ .short _02249A3C - _022493EE - 2 ; case 42
+ .short _0224964A - _022493EE - 2 ; case 43
+ .short _02249680 - _022493EE - 2 ; case 44
+ .short _02249A3C - _022493EE - 2 ; case 45
+ .short _02249A3C - _022493EE - 2 ; case 46
+ .short _02249A3C - _022493EE - 2 ; case 47
+ .short _02249602 - _022493EE - 2 ; case 48
+ .short _02249A3C - _022493EE - 2 ; case 49
+ .short _02249A3C - _022493EE - 2 ; case 50
+ .short _02249A3C - _022493EE - 2 ; case 51
+ .short _02249A3C - _022493EE - 2 ; case 52
+ .short _0224962C - _022493EE - 2 ; case 53
+_0224945A:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r0, r0, #1
+ cmp r2, r0
+ bhi _02249480
+ ldr r0, _022496E8 ; =0x0000215C
+ str r7, [r4, r0]
+ mov r0, #0xc6
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249474:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r1, [r1, r0]
+ lsr r0, r1, #1
+ cmp r2, r0
+ bls _02249482
+_02249480:
+ b _02249A3C
+_02249482:
+ add r0, r7, #0
+ mul r0, r1
+ mov r1, #0x64
+ bl MOD11_022476C0
+ ldr r1, _022496E8 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0xc6
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224949A:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xc7
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022494B0:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xc8
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022494C6:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ ldr r0, _022496EC ; =0x00000F88
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xc9
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022494DC:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x10
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xca
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022494F2:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xcb
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249508:
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r4, r5
+ ldr r3, _022496F0 ; =0x00002D4C
+ add r1, r0, #0
+_02249512:
+ ldrh r2, [r0, r3]
+ cmp r2, #0
+ beq _02249520
+ ldr r2, _022496F4 ; =0x00002D6C
+ ldrb r2, [r1, r2]
+ cmp r2, #0
+ beq _0224952E
+_02249520:
+ ldr r2, [sp, #8]
+ add r0, r0, #2
+ add r2, r2, #1
+ add r1, r1, #1
+ str r2, [sp, #8]
+ cmp r2, #4
+ blt _02249512
+_0224952E:
+ ldr r0, [sp, #8]
+ cmp r0, #4
+ beq _0224959C
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldr r1, [sp, #8]
+ add r0, r4, r0
+ add r0, r0, r5
+ add r1, #0x1f
+ add r2, r7, #0
+ bl MOD11_02243DC8
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_02245190
+ ldr r0, [sp, #8]
+ add r1, r4, r5
+ lsl r0, r0, #1
+ add r1, r1, r0
+ ldr r0, _022496F0 ; =0x00002D4C
+ ldrh r1, [r1, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #0xcc
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224956C:
+ add r1, r4, r5
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xcd
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249582:
+ add r1, r0, #0
+ add r1, #0x20
+ add r1, r4, r1
+ ldr r2, [r1, r5]
+ lsl r3, r2, #0x18
+ lsr r3, r3, #0x18
+ bne _0224959E
+ add r3, r4, r5
+ add r0, #0x24
+ ldr r3, [r3, r0]
+ mov r0, #7
+ tst r0, r3
+ bne _0224959E
+_0224959C:
+ b _02249A3C
+_0224959E:
+ mov r0, #0x40
+ tst r0, r2
+ beq _022495A8
+ mov r0, #0xc7
+ str r0, [r6]
+_022495A8:
+ ldr r2, [r1, r5]
+ mov r0, #7
+ tst r0, r2
+ beq _022495B4
+ mov r0, #0xc8
+ str r0, [r6]
+_022495B4:
+ ldr r2, [r1, r5]
+ ldr r0, _022496EC ; =0x00000F88
+ tst r0, r2
+ beq _022495C0
+ mov r0, #0xc9
+ str r0, [r6]
+_022495C0:
+ ldr r2, [r1, r5]
+ mov r0, #0x10
+ tst r0, r2
+ beq _022495CC
+ mov r0, #0xca
+ str r0, [r6]
+_022495CC:
+ ldr r2, [r1, r5]
+ mov r0, #0x20
+ tst r0, r2
+ beq _022495D8
+ mov r0, #0xcb
+ str r0, [r6]
+_022495D8:
+ ldr r0, _022496F8 ; =0x00002DB0
+ mov r2, #7
+ add r0, r4, r0
+ ldr r3, [r0, r5]
+ tst r2, r3
+ beq _022495E8
+ mov r2, #0xcd
+ str r2, [r6]
+_022495E8:
+ ldr r1, [r1, r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ beq _022495FC
+ ldr r1, [r0, r5]
+ mov r0, #7
+ tst r0, r1
+ beq _022495FC
+ mov r0, #0xce
+ str r0, [r6]
+_022495FC:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249602:
+ ldr r7, _022496FC ; =0x00002D58
+ add r1, r4, r5
+ mov r0, #0
+ mov r5, #6
+ add r3, r7, #0
+_0224960C:
+ ldrsb r2, [r1, r3]
+ cmp r2, #6
+ bge _02249618
+ mov r2, #1
+ strb r5, [r1, r7]
+ str r2, [sp, #0xc]
+_02249618:
+ add r0, r0, #1
+ add r1, r1, #1
+ cmp r0, #8
+ blt _0224960C
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _022496C8
+ mov r0, #0xd3
+ str r0, [r6]
+ b _02249A3C
+_0224962C:
+ add r1, r4, r5
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x10
+ tst r0, r1
+ beq _022496C8
+ mov r0, #6
+ add r3, #0x70
+ str r0, [r4, r3]
+ mov r0, #0xd4
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224964A:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224965C
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_0224965C:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249700 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _022496C8
+ ldr r0, _02249704 ; =0x00000109
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249680:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02249692
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_02249692:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249700 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _022496C8
+ ldr r0, _02249708 ; =0x00002DCC
+ add r2, r4, r0
+ mov r0, #1
+ ldr r1, [r2, r5]
+ lsl r0, r0, #0x1c
+ orr r0, r1
+ str r0, [r2, r5]
+ b _02249A3C
+_022496BC:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bls _022496CA
+_022496C8:
+ b _02249A3C
+_022496CA:
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _022496E8 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _0224970C ; =0x00002DA8
+ b _02249710
+ nop
+_022496E4: .word 0x00002D8C
+_022496E8: .word 0x0000215C
+_022496EC: .word 0x00000F88
+_022496F0: .word 0x00002D4C
+_022496F4: .word 0x00002D6C
+_022496F8: .word 0x00002DB0
+_022496FC: .word 0x00002D58
+_02249700: .word 0x00002D90
+_02249704: .word 0x00000109
+_02249708: .word 0x00002DCC
+_0224970C: .word 0x00002DA8
+_02249710:
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02249722
+ mov r0, #0xcf
+ b _02249724
+_02249722:
+ mov r0, #0xc6
+_02249724:
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224972C:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _022497F2
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _02249A58 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02249A5C ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02249760
+ mov r0, #0xcf
+ b _02249762
+_02249760:
+ mov r0, #0xc6
+_02249762:
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224976A:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _022497F2
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _02249A58 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02249A5C ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0224979E
+ mov r0, #0xcf
+ b _022497A0
+_0224979E:
+ mov r0, #0xc6
+_022497A0:
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022497A8:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _022497F2
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _02249A58 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02249A5C ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _022497DC
+ mov r0, #0xcf
+ b _022497DE
+_022497DC:
+ mov r0, #0xc6
+_022497DE:
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022497E6:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bls _022497F4
+_022497F2:
+ b _02249A3C
+_022497F4:
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _02249A58 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02249A5C ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0224981C
+ mov r0, #0xcf
+ b _0224981E
+_0224981C:
+ mov r0, #0xc6
+_0224981E:
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249826:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02249838
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_02249838:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249932
+ ldr r0, _02249A64 ; =0x00002D59
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _02249932
+ mov r1, #0x13
+ mov r0, #1
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ str r0, [r4, r1]
+ mov r0, #0xd0
+ str r0, [r6]
+ b _02249A3C
+_0224986C:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224987E
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_0224987E:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249932
+ ldr r0, _02249A68 ; =0x00002D5A
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _02249932
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xd0
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022498B4:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022498C6
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_022498C6:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249932
+ ldr r0, _02249A6C ; =0x00002D5B
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _02249932
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xd0
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022498FC:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224990E
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_0224990E:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249932
+ ldr r0, _02249A70 ; =0x00002D5C
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ blt _02249934
+_02249932:
+ b _02249A3C
+_02249934:
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xd0
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249946:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02249958
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_02249958:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249A3C
+ ldr r0, _02249A74 ; =0x00002D5D
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _02249A3C
+ mov r0, #0x13
+ mov r1, #5
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xd0
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224998E:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022499A0
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_022499A0:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249A3C
+ ldr r0, _02249A78 ; =0x00002DB0
+ add r1, r4, r5
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x14
+ tst r0, r1
+ bne _02249A3C
+ mov r0, #0xd1
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022499D2:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022499E4
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_022499E4:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ blx _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249A3C
+ ldr r0, _02249A64 ; =0x00002D59
+ mov r2, #0
+ add r3, r4, r5
+_02249A04:
+ ldrsb r1, [r3, r0]
+ cmp r1, #0xc
+ blt _02249A12
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r2, #5
+ blt _02249A04
+_02249A12:
+ cmp r2, #5
+ beq _02249A3C
+ ldr r7, _02249A64 ; =0x00002D59
+ add r5, r4, r5
+_02249A1A:
+ bl FUN_0201B9EC
+ mov r1, #5
+ blx _s32_div_f
+ add r0, r5, r1
+ ldrsb r0, [r0, r7]
+ cmp r0, #0xc
+ beq _02249A1A
+ mov r0, #0x13
+ add r1, r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xd2
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+_02249A3C:
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _02249A50
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02249B4C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+_02249A50:
+ ldr r0, [sp, #0xc]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02249A58: .word 0x0000215C
+_02249A5C: .word 0x00002DA8
+_02249A60: .word 0x00002D90
+_02249A64: .word 0x00002D59
+_02249A68: .word 0x00002D5A
+_02249A6C: .word 0x00002D5B
+_02249A70: .word 0x00002D5C
+_02249A74: .word 0x00002D5D
+_02249A78: .word 0x00002DB0
+
+ thumb_func_start MOD11_02249A7C
+MOD11_02249A7C: ; 0x02249A7C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r4, r2, #0
+ mov r6, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_02249DA4
+ str r0, [sp, #8]
+ mov r0, #0xc0
+ mul r0, r4
+ str r0, [sp]
+ add r1, r5, r0
+ ldr r0, _02249B40 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02249B38
+ cmp r7, #0x63
+ beq _02249ABA
+ cmp r7, #0x64
+ beq _02249AD0
+ cmp r7, #0x73
+ beq _02249AE6
+ b _02249B0E
+_02249ABA:
+ add r0, r5, #0
+ add r0, #0x94
+ str r4, [r0]
+ add r0, r5, #0
+ mov r1, #5
+ add r0, #0x88
+ str r1, [r0]
+ mov r0, #0x2f
+ str r0, [sp, #4]
+ mov r6, #1
+ b _02249B0E
+_02249AD0:
+ add r0, r5, #0
+ add r0, #0x94
+ str r4, [r0]
+ add r0, r5, #0
+ mov r1, #5
+ add r0, #0x88
+ str r1, [r0]
+ mov r0, #0x19
+ str r0, [sp, #4]
+ mov r6, #1
+ b _02249B0E
+_02249AE6:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02249B0E
+ ldr r0, [sp]
+ add r1, r5, r0
+ ldr r0, _02249B44 ; =0x00002D90
+ ldr r1, [r1, r0]
+ sub r0, r6, #1
+ mul r0, r1
+ ldr r1, [sp, #8]
+ bl MOD11_022476C0
+ ldr r1, _02249B48 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ mov r0, #0xd7
+ str r0, [sp, #4]
+_02249B0E:
+ cmp r6, #1
+ bne _02249B38
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r4, [r5, r0]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02249B4C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r2, [sp, #4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_02249B38:
+ add r0, r6, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02249B40: .word 0x00002D8C
+_02249B44: .word 0x00002D90
+_02249B48: .word 0x0000215C
+
+ thumb_func_start MOD11_02249B4C
+MOD11_02249B4C: ; 0x02249B4C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x67
+ bne _02249B5E
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02249B5E:
+ mov r0, #0xc0
+ mul r0, r4
+ add r2, r5, r0
+ ldr r0, _02249B78 ; =0x00002DCC
+ ldr r1, [r2, r0]
+ lsl r1, r1, #0xa
+ lsr r1, r1, #0x1d
+ beq _02249B72
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02249B72:
+ sub r0, #0x14
+ ldrh r0, [r2, r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02249B78: .word 0x00002DCC
+
+ thumb_func_start MOD11_02249B7C
+MOD11_02249B7C: ; 0x02249B7C
+ lsl r1, r1, #4
+ add r1, r0, r1
+ ldr r0, _02249B90 ; =0x000021A8
+ ldr r0, [r1, r0]
+ cmp r0, #0x27
+ bne _02249B8C
+ mov r0, #1
+ bx lr
+_02249B8C:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_02249B90: .word 0x000021A8
+
+ thumb_func_start MOD11_02249B94
+MOD11_02249B94: ; 0x02249B94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [r5, #0x6c]
+ str r0, [sp]
+ add r6, r2, #0
+ mov r7, #0
+ cmp r1, #0xff
+ bne _02249BAC
+ add sp, #0xc
+ add r0, r7, #0
+ pop {r4, r5, r6, r7, pc}
+_02249BAC:
+ add r0, r5, #0
+ bl MOD11_0224AD9C
+ cmp r0, #1
+ bne _02249BBC
+ add sp, #0xc
+ add r0, r7, #0
+ pop {r4, r5, r6, r7, pc}
+_02249BBC:
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ add r4, r0, #0
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_02249DA4
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ ldr r1, [r5, #0x64]
+ bl MOD11_02230270
+ str r0, [sp, #8]
+ cmp r4, #0x2e
+ bgt _02249BF2
+ cmp r4, #0x2a
+ blt _02249BF0
+ bne _02249BE8
+ b _02249D24
+_02249BE8:
+ cmp r4, #0x2d
+ beq _02249C74
+ cmp r4, #0x2e
+ beq _02249CD2
+_02249BF0:
+ b _02249D6A
+_02249BF2:
+ cmp r4, #0x73
+ bne _02249C5C
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ mul r1, r0
+ add r3, r5, r1
+ ldr r1, _02249D70 ; =0x00002D8C
+ ldr r2, [r3, r1]
+ cmp r2, #0
+ beq _02249C5C
+ add r1, #0x2c
+ ldrh r1, [r3, r1]
+ cmp r1, #0
+ bne _02249C5C
+ add r1, r5, r0
+ ldr r0, _02249D74 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl FUN_0206A92C
+ ldr r1, [sp, #8]
+ lsl r1, r1, #3
+ add r2, r5, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r2, [r2, r1]
+ lsl r2, r2, #3
+ lsr r2, r2, #0x1a
+ tst r0, r2
+ bne _02249C5C
+ ldr r0, _02249D78 ; =0x00003044
+ sub r1, #0xaa
+ ldr r0, [r5, r0]
+ cmp r0, r1
+ beq _02249C5C
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r3, r5, r1
+ mov r1, #0xb6
+ lsl r1, r1, #2
+ ldr r2, [r3, r1]
+ cmp r2, #0
+ bne _02249C50
+ add r1, #8
+ ldr r1, [r3, r1]
+ cmp r1, #0
+ beq _02249C5C
+_02249C50:
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r5, r1]
+ mov r1, #0x10
+ tst r1, r2
+ beq _02249C5E
+_02249C5C:
+ b _02249D6A
+_02249C5E:
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02249D7C ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r1, r0
+ beq _02249D6A
+ mov r1, #0xd8
+ str r1, [r6]
+ add r7, r0, #0
+ b _02249D6A
+_02249C74:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02249D70 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02249D6A
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02249D6A
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02249D6A
+ ldr r1, [r5, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r1, r5, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02249D6A
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02249D80 ; =0x00002D90
+ add r2, r5, r2
+ ldr r2, [r2, r0]
+ sub r1, #0xc1
+ add r0, r2, #0
+ mul r0, r1
+ ldr r1, [sp, #4]
+ bl MOD11_022476C0
+ ldr r1, _02249D84 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ lsr r0, r1, #5
+ str r0, [r6]
+ b _02249D6A
+_02249CD2:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02249D70 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02249D6A
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02249D6A
+ ldr r1, [r5, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r1, r5, r0
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02249D6A
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02249D80 ; =0x00002D90
+ add r2, r5, r2
+ ldr r2, [r2, r0]
+ sub r1, #0xc1
+ add r0, r2, #0
+ mul r0, r1
+ ldr r1, [sp, #4]
+ bl MOD11_022476C0
+ ldr r1, _02249D84 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ lsr r0, r1, #5
+ str r0, [r6]
+ b _02249D6A
+_02249D24:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r2, _02249D70 ; =0x00002D8C
+ add r0, r5, r0
+ ldr r1, [r0, r2]
+ cmp r1, #0
+ beq _02249D6A
+ ldr r1, _02249D88 ; =0x0000216C
+ ldr r3, [r5, r1]
+ mov r1, #2
+ tst r1, r3
+ beq _02249D6A
+ add r1, r2, #4
+ ldr r0, [r0, r1]
+ ldr r1, [sp, #4]
+ bl MOD11_022476C0
+ ldr r1, _02249D84 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ mov r1, #0xc6
+ str r1, [r6]
+ ldr r0, [r5, #0x6c]
+ add r1, #0x52
+ str r0, [r5, r1]
+ ldr r0, [r5, #0x6c]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02249D8C ; =0x00002DB8
+ add r2, r5, r2
+ ldrh r0, [r2, r0]
+ add r1, #0x68
+ str r0, [r5, r1]
+_02249D6A:
+ add r0, r7, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02249D70: .word 0x00002D8C
+_02249D74: .word 0x0000219C
+_02249D78: .word 0x00003044
+_02249D7C: .word 0x000003E9
+_02249D80: .word 0x00002D90
+_02249D84: .word 0x0000215C
+_02249D88: .word 0x0000216C
+_02249D8C: .word 0x00002DB8
+
+ thumb_func_start MOD11_02249D90
+MOD11_02249D90: ; 0x02249D90
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02249DA4
+MOD11_02249DA4: ; 0x02249DA4
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r2, #0
+ beq _02249DB6
+ cmp r2, #1
+ beq _02249DD2
+ cmp r2, #2
+ beq _02249DBE
+ b _02249DDC
+_02249DB6:
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ b _02249DDC
+_02249DBE:
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _02249DE8 ; =0x00002DCC
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0xa
+ lsr r0, r0, #0x1d
+ beq _02249DD2
+ mov r0, #0
+ pop {r4, pc}
+_02249DD2:
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02249DEC ; =0x00002DB8
+ ldrh r1, [r1, r0]
+_02249DDC:
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C12C
+ pop {r4, pc}
+ nop
+_02249DE8: .word 0x00002DCC
+_02249DEC: .word 0x00002DB8
+
+ thumb_func_start MOD11_02249DF0
+MOD11_02249DF0: ; 0x02249DF0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #0xb
+ bl MOD11_0224C12C
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02249E04
+MOD11_02249E04: ; 0x02249E04
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #0xc
+ bl MOD11_0224C12C
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02249E18
+MOD11_02249E18: ; 0x02249E18
+ mov r2, #0xc0
+ mul r2, r1
+ ldr r1, _02249E28 ; =0x00002DB8
+ add r2, r0, r2
+ ldrh r1, [r2, r1]
+ ldr r3, _02249E2C ; =MOD11_0224C12C
+ mov r2, #8
+ bx r3
+ .align 2, 0
+_02249E28: .word 0x00002DB8
+_02249E2C: .word MOD11_0224C12C
+
+ thumb_func_start MOD11_02249E30
+MOD11_02249E30: ; 0x02249E30
+ push {r3, lr}
+ mov r2, #0xc0
+ mul r2, r1
+ ldr r1, _02249E54 ; =0x00002DCC
+ add r3, r0, r2
+ ldr r2, [r3, r1]
+ lsl r2, r2, #0xa
+ lsr r2, r2, #0x1d
+ beq _02249E46
+ mov r0, #0
+ pop {r3, pc}
+_02249E46:
+ sub r1, #0x14
+ ldrh r1, [r3, r1]
+ mov r2, #9
+ bl MOD11_0224C12C
+ pop {r3, pc}
+ nop
+_02249E54: .word 0x00002DCC
+
+ thumb_func_start MOD11_02249E58
+MOD11_02249E58: ; 0x02249E58
+ push {r3, lr}
+ mov r2, #0xc0
+ mul r2, r1
+ ldr r1, _02249E7C ; =0x00002DCC
+ add r3, r0, r2
+ ldr r2, [r3, r1]
+ lsl r2, r2, #0xa
+ lsr r2, r2, #0x1d
+ beq _02249E6E
+ mov r0, #0
+ pop {r3, pc}
+_02249E6E:
+ sub r1, #0x14
+ ldrh r1, [r3, r1]
+ mov r2, #0xa
+ bl MOD11_0224C12C
+ pop {r3, pc}
+ nop
+_02249E7C: .word 0x00002DCC
+
+ thumb_func_start MOD11_02249E80
+MOD11_02249E80: ; 0x02249E80
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r4, r2, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r6, #0
+ bl MOD11_02249D90
+ cmp r0, #0x7a
+ bne _02249E9E
+ add sp, #8
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02249E9E:
+ mov r0, #0xc0
+ add r7, r4, #0
+ mul r7, r0
+ ldr r0, _02249F80 ; =0x00002DB0
+ add r2, r5, r7
+ ldr r1, [r2, r0]
+ ldr r3, _02249F84 ; =0x0400E000
+ tst r1, r3
+ bne _02249EBA
+ add r0, #0x10
+ ldr r1, [r2, r0]
+ lsr r0, r3, #0x10
+ tst r0, r1
+ beq _02249EBC
+_02249EBA:
+ mov r6, #1
+_02249EBC:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x17
+ beq _02249EDC
+ mov r0, #0x17
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #3
+ add r3, r4, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _02249F10
+_02249EDC:
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #8
+ beq _02249EFC
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #8
+ bne _02249F12
+_02249EFC:
+ mov r0, #0x2a
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #3
+ add r3, r4, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _02249F12
+_02249F10:
+ mov r6, #1
+_02249F12:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x1a
+ beq _02249F4A
+ ldr r0, _02249F88 ; =0x00002DCC
+ add r1, r5, r7
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1d
+ bne _02249F4A
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #2
+ beq _02249F4A
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #2
+ bne _02249F64
+_02249F4A:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02249D90
+ cmp r0, #0x69
+ beq _02249F64
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02249F7A
+_02249F64:
+ mov r0, #0x47
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #3
+ add r3, r4, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _02249F7A
+ mov r6, #1
+_02249F7A:
+ add r0, r6, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02249F80: .word 0x00002DB0
+_02249F84: .word 0x0400E000
+_02249F88: .word 0x00002DCC
+
+ thumb_func_start MOD11_02249F8C
+MOD11_02249F8C: ; 0x02249F8C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ str r0, [sp]
+ mov r6, #0
+ str r2, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ add r5, r6, #0
+ bl MOD11_02249E18
+ add r7, r0, #0
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD11_02249DA4
+ str r0, [sp, #0x10]
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_0224AD9C
+ cmp r0, #1
+ bne _02249FC2
+ add sp, #0x14
+ add r0, r6, #0
+ pop {r4, r5, r6, r7, pc}
+_02249FC2:
+ cmp r7, #0x17
+ bls _02249FC8
+ b _0224A444
+_02249FC8:
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02249FD4: ; jump table
+ .short _0224A444 - _02249FD4 - 2 ; case 0
+ .short _0224A04E - _02249FD4 - 2 ; case 1
+ .short _0224A066 - _02249FD4 - 2 ; case 2
+ .short _0224A07E - _02249FD4 - 2 ; case 3
+ .short _0224A096 - _02249FD4 - 2 ; case 4
+ .short _0224A0AE - _02249FD4 - 2 ; case 5
+ .short _0224A0C6 - _02249FD4 - 2 ; case 6
+ .short _0224A004 - _02249FD4 - 2 ; case 7
+ .short _0224A13C - _02249FD4 - 2 ; case 8
+ .short _0224A154 - _02249FD4 - 2 ; case 9
+ .short _0224A024 - _02249FD4 - 2 ; case 10
+ .short _0224A1B6 - _02249FD4 - 2 ; case 11
+ .short _0224A1FC - _02249FD4 - 2 ; case 12
+ .short _0224A242 - _02249FD4 - 2 ; case 13
+ .short _0224A288 - _02249FD4 - 2 ; case 14
+ .short _0224A2CE - _02249FD4 - 2 ; case 15
+ .short _0224A314 - _02249FD4 - 2 ; case 16
+ .short _0224A360 - _02249FD4 - 2 ; case 17
+ .short _0224A37E - _02249FD4 - 2 ; case 18
+ .short _0224A39C - _02249FD4 - 2 ; case 19
+ .short _0224A3BA - _02249FD4 - 2 ; case 20
+ .short _0224A424 - _02249FD4 - 2 ; case 21
+ .short _0224A3D8 - _02249FD4 - 2 ; case 22
+ .short _0224A43E - _02249FD4 - 2 ; case 23
+_0224A004:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _0224A320 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ add r0, r0, #4
+ ldr r0, [r2, r0]
+ cmp r1, r0
+ beq _0224A020
+ ldr r1, _0224A324 ; =0x0000215C
+ ldr r0, [sp, #0x10]
+ mov r5, #0xc6
+ str r0, [r4, r1]
+_0224A020:
+ mov r6, #1
+ b _0224A45A
+_0224A024:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A328 ; =0x00002D90
+ ldr r2, [r1, r0]
+ sub r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, r2
+ beq _0224A04A
+ ldr r1, [sp, #0x10]
+ add r0, r1, #0
+ mul r0, r2
+ mov r1, #0x64
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ mov r5, #0xc6
+ str r0, [r4, r1]
+_0224A04A:
+ mov r6, #1
+ b _0224A45A
+_0224A04E:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A32C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _0224A062
+ mov r5, #0xc7
+_0224A062:
+ mov r6, #1
+ b _0224A45A
+_0224A066:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A32C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224A07A
+ mov r5, #0xc8
+_0224A07A:
+ mov r6, #1
+ b _0224A45A
+_0224A07E:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A32C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ ldr r0, _0224A330 ; =0x00000F88
+ tst r0, r1
+ beq _0224A092
+ mov r5, #0xc9
+_0224A092:
+ mov r6, #1
+ b _0224A45A
+_0224A096:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A32C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x10
+ tst r0, r1
+ beq _0224A0AA
+ mov r5, #0xca
+_0224A0AA:
+ mov r6, #1
+ b _0224A45A
+_0224A0AE:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A32C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0224A0C2
+ mov r5, #0xcb
+_0224A0C2:
+ mov r6, #1
+ b _0224A45A
+_0224A0C6:
+ str r5, [sp, #0xc]
+_0224A0C8:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r7, r1, #0
+ mul r7, r0
+ add r1, r4, r7
+ ldr r0, _0224A334 ; =0x00002D4C
+ add r2, r6, r1
+ ldrh r0, [r2, r0]
+ cmp r0, #0
+ beq _0224A0FA
+ add r2, r5, r1
+ ldr r1, _0224A338 ; =0x00002D70
+ ldrb r1, [r2, r1]
+ bl FUN_0206AB30
+ add r1, r4, r7
+ add r2, r5, r1
+ ldr r1, _0224A33C ; =0x00002D6C
+ ldrb r1, [r2, r1]
+ sub r1, r0, r1
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ ble _0224A0FA
+ str r1, [sp, #0xc]
+ str r5, [sp, #8]
+_0224A0FA:
+ add r5, r5, #1
+ add r6, r6, #2
+ cmp r5, #4
+ blt _0224A0C8
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldr r1, [sp, #8]
+ add r0, r4, r0
+ ldr r2, [sp, #0x10]
+ add r0, r0, r7
+ add r1, #0x1f
+ bl MOD11_02243DC8
+ ldr r0, [sp]
+ ldr r2, [r4, #0x64]
+ add r1, r4, #0
+ bl MOD11_02245190
+ ldr r0, [r4, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, [sp, #8]
+ add r2, r4, r2
+ lsl r0, r0, #1
+ add r2, r2, r0
+ ldr r0, _0224A334 ; =0x00002D4C
+ add r1, #0x64
+ ldrh r0, [r2, r0]
+ mov r5, #0xcc
+ mov r6, #1
+ str r0, [r4, r1]
+ b _0224A45A
+_0224A13C:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A340 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224A150
+ mov r5, #0xcd
+_0224A150:
+ mov r6, #1
+ b _0224A45A
+_0224A154:
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ add r1, r2, #0
+ mul r1, r0
+ ldr r6, _0224A32C ; =0x00002DAC
+ add r0, r4, r1
+ ldr r2, [r0, r6]
+ lsl r3, r2, #0x18
+ lsr r3, r3, #0x18
+ bne _0224A172
+ add r6, r6, #4
+ ldr r6, [r0, r6]
+ mov r0, #7
+ tst r0, r6
+ beq _0224A1B2
+_0224A172:
+ mov r0, #0x40
+ tst r0, r2
+ beq _0224A17A
+ mov r5, #0xc7
+_0224A17A:
+ mov r0, #7
+ tst r0, r2
+ beq _0224A182
+ mov r5, #0xc8
+_0224A182:
+ ldr r0, _0224A330 ; =0x00000F88
+ tst r0, r2
+ beq _0224A18A
+ mov r5, #0xc9
+_0224A18A:
+ mov r0, #0x10
+ tst r0, r2
+ beq _0224A192
+ mov r5, #0xca
+_0224A192:
+ mov r0, #0x20
+ tst r0, r2
+ beq _0224A19A
+ mov r5, #0xcb
+_0224A19A:
+ ldr r0, _0224A340 ; =0x00002DB0
+ add r1, r4, r1
+ ldr r1, [r1, r0]
+ mov r0, #7
+ and r0, r1
+ beq _0224A1A8
+ mov r5, #0xcd
+_0224A1A8:
+ cmp r3, #0
+ beq _0224A1B2
+ cmp r0, #0
+ beq _0224A1B2
+ mov r5, #0xce
+_0224A1B2:
+ mov r6, #1
+ b _0224A45A
+_0224A1B6:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A328 ; =0x00002D90
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, r0
+ beq _0224A1F8
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0x13
+ add r1, r6, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A344 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r6, #1
+ cmp r0, r1
+ bne _0224A1F6
+ mov r5, #0xcf
+ b _0224A1F8
+_0224A1F6:
+ mov r5, #0xc6
+_0224A1F8:
+ mov r6, #1
+ b _0224A45A
+_0224A1FC:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A328 ; =0x00002D90
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, r0
+ beq _0224A23E
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A344 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r6, #1
+ cmp r0, r1
+ bne _0224A23C
+ mov r5, #0xcf
+ b _0224A23E
+_0224A23C:
+ mov r5, #0xc6
+_0224A23E:
+ mov r6, #1
+ b _0224A45A
+_0224A242:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A328 ; =0x00002D90
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, r0
+ beq _0224A284
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A344 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r6, #1
+ cmp r0, r1
+ bne _0224A282
+ mov r5, #0xcf
+ b _0224A284
+_0224A282:
+ mov r5, #0xc6
+_0224A284:
+ mov r6, #1
+ b _0224A45A
+_0224A288:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A328 ; =0x00002D90
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, r0
+ beq _0224A2CA
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A344 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r6, #1
+ cmp r0, r1
+ bne _0224A2C8
+ mov r5, #0xcf
+ b _0224A2CA
+_0224A2C8:
+ mov r5, #0xc6
+_0224A2CA:
+ mov r6, #1
+ b _0224A45A
+_0224A2CE:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A328 ; =0x00002D90
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, r0
+ beq _0224A310
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A344 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r6, #1
+ cmp r0, r1
+ bne _0224A30E
+ mov r5, #0xcf
+ b _0224A310
+_0224A30E:
+ mov r5, #0xc6
+_0224A310:
+ mov r6, #1
+ b _0224A45A
+_0224A314:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _0224A348 ; =0x00002D59
+ b _0224A34C
+ .align 2, 0
+_0224A320: .word 0x00002D8C
+_0224A324: .word 0x0000215C
+_0224A328: .word 0x00002D90
+_0224A32C: .word 0x00002DAC
+_0224A330: .word 0x00000F88
+_0224A334: .word 0x00002D4C
+_0224A338: .word 0x00002D70
+_0224A33C: .word 0x00002D6C
+_0224A340: .word 0x00002DB0
+_0224A344: .word 0x00002DA8
+_0224A348: .word 0x00002D59
+_0224A34C:
+ add r2, r4, r2
+ ldrsb r1, [r2, r1]
+ cmp r1, #0xc
+ bge _0224A35C
+ mov r1, #1
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r5, #0xd0
+_0224A35C:
+ mov r6, #1
+ b _0224A45A
+_0224A360:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _0224A4C0 ; =0x00002D5A
+ add r2, r4, r2
+ ldrsb r1, [r2, r1]
+ cmp r1, #0xc
+ bge _0224A37A
+ mov r1, #2
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r5, #0xd0
+_0224A37A:
+ mov r6, #1
+ b _0224A45A
+_0224A37E:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _0224A4C4 ; =0x00002D5B
+ add r2, r4, r2
+ ldrsb r1, [r2, r1]
+ cmp r1, #0xc
+ bge _0224A398
+ mov r1, #3
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r5, #0xd0
+_0224A398:
+ mov r6, #1
+ b _0224A45A
+_0224A39C:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _0224A4C8 ; =0x00002D5C
+ add r2, r4, r2
+ ldrsb r1, [r2, r1]
+ cmp r1, #0xc
+ bge _0224A3B6
+ mov r1, #4
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r5, #0xd0
+_0224A3B6:
+ mov r6, #1
+ b _0224A45A
+_0224A3BA:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _0224A4CC ; =0x00002D5D
+ add r2, r4, r2
+ ldrsb r1, [r2, r1]
+ cmp r1, #0xc
+ bge _0224A3D4
+ mov r1, #5
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r5, #0xd0
+_0224A3D4:
+ mov r6, #1
+ b _0224A45A
+_0224A3D8:
+ ldr r2, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r3, r4, r1
+ ldr r1, _0224A4D0 ; =0x00002D59
+ add r0, r6, #0
+_0224A3E4:
+ ldrsb r2, [r3, r1]
+ cmp r2, #0xc
+ blt _0224A3F2
+ add r0, r0, #1
+ add r3, r3, #1
+ cmp r0, #5
+ blt _0224A3E4
+_0224A3F2:
+ cmp r0, #5
+ beq _0224A420
+ ldr r5, _0224A4D0 ; =0x00002D59
+ mov r7, #5
+ mov r6, #0xc0
+_0224A3FC:
+ bl FUN_0201B9EC
+ add r1, r7, #0
+ blx _s32_div_f
+ ldr r0, [r4, #0x64]
+ add r2, r0, #0
+ mul r2, r6
+ add r0, r4, r2
+ add r0, r1, r0
+ ldrsb r0, [r0, r5]
+ cmp r0, #0xc
+ beq _0224A3FC
+ mov r0, #0x13
+ add r1, r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r5, #0xd2
+_0224A420:
+ mov r6, #1
+ b _0224A45A
+_0224A424:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A4D4 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x14
+ tst r0, r1
+ bne _0224A43A
+ mov r5, #0xd1
+_0224A43A:
+ mov r6, #1
+ b _0224A45A
+_0224A43E:
+ ldr r5, _0224A4D8 ; =0x00000109
+ mov r6, #1
+ b _0224A45A
+_0224A444:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224A4DC ; =0x00002DB8
+ add r1, r4, r1
+ ldrh r0, [r1, r0]
+ bl FUN_0206EAEC
+ cmp r0, #1
+ bne _0224A45A
+ mov r6, #1
+_0224A45A:
+ cmp r6, #1
+ bne _0224A4B8
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x67
+ beq _0224A482
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ mov r1, #0xb7
+ add r2, r4, r2
+ lsl r1, r1, #6
+ ldr r2, [r2, r1]
+ mov r1, #1
+ lsl r1, r1, #0x1a
+ tst r1, r2
+ beq _0224A48C
+_0224A482:
+ mov r0, #0x4e
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _0224A490
+_0224A48C:
+ add r0, #0x78
+ str r5, [r4, r0]
+_0224A490:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _0224A4DC ; =0x00002DB8
+ add r2, r4, r2
+ ldrh r0, [r2, r0]
+ add r1, #0x68
+ str r0, [r4, r1]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xba
+ lsl r0, r0, #2
+ mov r1, #0x1c
+ add r3, r2, #0
+ mul r3, r1
+ add r0, r4, r0
+ ldr r2, [r0, r3]
+ mov r1, #2
+ orr r1, r2
+ str r1, [r0, r3]
+_0224A4B8:
+ add r0, r6, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224A4C0: .word 0x00002D5A
+_0224A4C4: .word 0x00002D5B
+_0224A4C8: .word 0x00002D5C
+_0224A4CC: .word 0x00002D5D
+_0224A4D0: .word 0x00002D59
+_0224A4D4: .word 0x00002DB0
+_0224A4D8: .word 0x00000109
+_0224A4DC: .word 0x00002DB8
+
+ thumb_func_start MOD11_0224A4E0
+MOD11_0224A4E0: ; 0x0224A4E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ str r0, [sp]
+ str r2, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_02249E30
+ add r6, r0, #0
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_02249DA4
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02249E58
+ ldr r1, _0224A84C ; =0x00002154
+ add r2, r4, #0
+ str r0, [r4, r1]
+ ldr r0, _0224A850 ; =0x00003118
+ mov r5, #0
+ str r5, [r4, r0]
+ add r2, #0x88
+ str r5, [r2]
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ bne _0224A524
+ add sp, #0x14
+ add r0, r5, #0
+ pop {r4, r5, r6, r7, pc}
+_0224A524:
+ cmp r6, #0x1e
+ bls _0224A52A
+ b _0224AAAC
+_0224A52A:
+ add r1, r6, r6
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224A536: ; jump table
+ .short _0224AAAC - _0224A536 - 2 ; case 0
+ .short _0224A5A2 - _0224A536 - 2 ; case 1
+ .short _0224A5BA - _0224A536 - 2 ; case 2
+ .short _0224A5D2 - _0224A536 - 2 ; case 3
+ .short _0224A5EA - _0224A536 - 2 ; case 4
+ .short _0224A602 - _0224A536 - 2 ; case 5
+ .short _0224A61A - _0224A536 - 2 ; case 6
+ .short _0224A574 - _0224A536 - 2 ; case 7
+ .short _0224A69C - _0224A536 - 2 ; case 8
+ .short _0224A6B4 - _0224A536 - 2 ; case 9
+ .short _0224A580 - _0224A536 - 2 ; case 10
+ .short _0224A77A - _0224A536 - 2 ; case 11
+ .short _0224A7BC - _0224A536 - 2 ; case 12
+ .short _0224A7FE - _0224A536 - 2 ; case 13
+ .short _0224A840 - _0224A536 - 2 ; case 14
+ .short _0224A8B0 - _0224A536 - 2 ; case 15
+ .short _0224A9AC - _0224A536 - 2 ; case 16
+ .short _0224A9CA - _0224A536 - 2 ; case 17
+ .short _0224A9E8 - _0224A536 - 2 ; case 18
+ .short _0224AA06 - _0224A536 - 2 ; case 19
+ .short _0224AA24 - _0224A536 - 2 ; case 20
+ .short _0224AA8E - _0224A536 - 2 ; case 21
+ .short _0224AA42 - _0224A536 - 2 ; case 22
+ .short _0224AAA8 - _0224A536 - 2 ; case 23
+ .short _0224A8F2 - _0224A536 - 2 ; case 24
+ .short _0224A91A - _0224A536 - 2 ; case 25
+ .short _0224A93E - _0224A536 - 2 ; case 26
+ .short _0224A954 - _0224A536 - 2 ; case 27
+ .short _0224A96A - _0224A536 - 2 ; case 28
+ .short _0224A980 - _0224A536 - 2 ; case 29
+ .short _0224A996 - _0224A536 - 2 ; case 30
+_0224A574:
+ ldr r1, [sp, #0x10]
+ sub r2, r0, #4
+ str r1, [r4, r2]
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A580:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A854 ; =0x00002D90
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ mul r0, r1
+ mov r1, #0x64
+ bl MOD11_022476C0
+ ldr r1, _0224A858 ; =0x00003114
+ mov r2, #0xc6
+ str r0, [r4, r1]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ b _0224AAAC
+_0224A5A2:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #0x40
+ tst r1, r2
+ beq _0224A65C
+ mov r1, #0xc7
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A5BA:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #7
+ tst r1, r2
+ beq _0224A65C
+ mov r1, #0xc8
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A5D2:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ ldr r2, [r2, r1]
+ ldr r1, _0224A860 ; =0x00000F88
+ tst r1, r2
+ beq _0224A65C
+ mov r1, #0xc9
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A5EA:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #0x10
+ tst r1, r2
+ beq _0224A65C
+ mov r1, #0xca
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A602:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #0x20
+ tst r1, r2
+ beq _0224A65C
+ mov r1, #0xcb
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A61A:
+ add r6, r5, #0
+ add r7, r5, #0
+_0224A61E:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ str r0, [sp, #8]
+ ldr r0, _0224A864 ; =0x00002D4C
+ add r2, r7, r1
+ ldrh r0, [r2, r0]
+ cmp r0, #0
+ beq _0224A650
+ add r2, r6, r1
+ ldr r1, _0224A868 ; =0x00002D70
+ ldrb r1, [r2, r1]
+ bl FUN_0206AB30
+ ldr r1, [sp, #8]
+ add r1, r4, r1
+ add r2, r6, r1
+ ldr r1, _0224A86C ; =0x00002D6C
+ ldrb r1, [r2, r1]
+ sub r0, r0, r1
+ cmp r0, r5
+ ble _0224A650
+ add r5, r0, #0
+ str r6, [sp, #0xc]
+_0224A650:
+ add r6, r6, #1
+ add r7, r7, #2
+ cmp r6, #4
+ blt _0224A61E
+ cmp r5, #0
+ bne _0224A65E
+_0224A65C:
+ b _0224AAAC
+_0224A65E:
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r1, r4, r0
+ ldr r0, [sp, #8]
+ ldr r2, [sp, #0x10]
+ add r0, r1, r0
+ ldr r1, [sp, #0xc]
+ add r1, #0x1f
+ bl MOD11_02243DC8
+ ldr r0, [sp]
+ ldr r2, [r4, #0x6c]
+ add r1, r4, #0
+ bl MOD11_02245190
+ ldr r0, [r4, #0x6c]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, [sp, #0xc]
+ add r2, r4, r2
+ lsl r0, r0, #1
+ add r2, r2, r0
+ ldr r0, _0224A864 ; =0x00002D4C
+ add r1, #0x64
+ ldrh r0, [r2, r0]
+ str r0, [r4, r1]
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xcc
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A69C:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A870 ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #7
+ tst r1, r2
+ beq _0224A770
+ mov r1, #0xcd
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A6B4:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ add r3, r4, r0
+ ldr r0, [r3, r1]
+ lsl r2, r0, #0x18
+ lsr r2, r2, #0x18
+ bne _0224A6D0
+ add r1, r1, #4
+ ldr r2, [r3, r1]
+ mov r1, #7
+ tst r1, r2
+ beq _0224A770
+_0224A6D0:
+ mov r1, #0x40
+ tst r0, r1
+ beq _0224A6DC
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xc7
+ str r1, [r4, r0]
+_0224A6DC:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A85C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224A6F4
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xc8
+ str r1, [r4, r0]
+_0224A6F4:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A85C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ ldr r0, _0224A860 ; =0x00000F88
+ tst r0, r1
+ beq _0224A70C
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xc9
+ str r1, [r4, r0]
+_0224A70C:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A85C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x10
+ tst r0, r1
+ beq _0224A724
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xca
+ str r1, [r4, r0]
+_0224A724:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A85C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0224A73C
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xcb
+ str r1, [r4, r0]
+_0224A73C:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A870 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224A754
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xcd
+ str r1, [r4, r0]
+_0224A754:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _0224A85C ; =0x00002DAC
+ ldr r1, [r2, r0]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ beq _0224A770
+ add r0, r0, #4
+ ldr r1, [r2, r0]
+ mov r0, #7
+ tst r0, r1
+ bne _0224A772
+_0224A770:
+ b _0224AAAC
+_0224A772:
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xce
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A77A:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A854 ; =0x00002D90
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A858 ; =0x00003114
+ str r0, [r4, r1]
+ mov r0, #0x13
+ add r1, r5, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A874 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r5, #1
+ cmp r0, r1
+ ldr r0, _0224A850 ; =0x00003118
+ bne _0224A7B6
+ mov r1, #0xcf
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A7B6:
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A7BC:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A854 ; =0x00002D90
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A858 ; =0x00003114
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A874 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r5, #1
+ cmp r0, r1
+ ldr r0, _0224A850 ; =0x00003118
+ bne _0224A7F8
+ mov r1, #0xcf
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A7F8:
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A7FE:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A854 ; =0x00002D90
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A858 ; =0x00003114
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A874 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r5, #1
+ cmp r0, r1
+ ldr r0, _0224A850 ; =0x00003118
+ bne _0224A83A
+ mov r1, #0xcf
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A83A:
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A840:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A854 ; =0x00002D90
+ b _0224A878
+ .align 2, 0
+_0224A84C: .word 0x00002154
+_0224A850: .word 0x00003118
+_0224A854: .word 0x00002D90
+_0224A858: .word 0x00003114
+_0224A85C: .word 0x00002DAC
+_0224A860: .word 0x00000F88
+_0224A864: .word 0x00002D4C
+_0224A868: .word 0x00002D70
+_0224A86C: .word 0x00002D6C
+_0224A870: .word 0x00002DB0
+_0224A874: .word 0x00002DA8
+_0224A878:
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224AB14 ; =0x00003114
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224AB18 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r5, #1
+ cmp r0, r1
+ ldr r0, _0224AB1C ; =0x00003118
+ bne _0224A8AA
+ mov r1, #0xcf
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A8AA:
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A8B0:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224AB20 ; =0x00002D90
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224AB14 ; =0x00003114
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224AB18 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r5, #1
+ cmp r0, r1
+ ldr r0, _0224AB1C ; =0x00003118
+ bne _0224A8EC
+ mov r1, #0xcf
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A8EC:
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A8F2:
+ ldr r2, _0224AB24 ; =0x00002D58
+ mov r6, #6
+ mov r3, #0xd3
+ mov r7, #0xc0
+_0224A8FA:
+ ldr r0, [r4, #0x6c]
+ add r1, r0, #0
+ mul r1, r7
+ add r0, r4, r1
+ add r0, r0, r5
+ ldrsb r1, [r0, r2]
+ cmp r1, #6
+ bge _0224A912
+ ldr r1, _0224AB24 ; =0x00002D58
+ strb r6, [r0, r1]
+ ldr r0, _0224AB1C ; =0x00003118
+ str r3, [r4, r0]
+_0224A912:
+ add r5, r5, #1
+ cmp r5, #8
+ blt _0224A8FA
+ b _0224AAAC
+_0224A91A:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB28 ; =0x00002DB0
+ add r3, r4, r3
+ ldr r3, [r3, r2]
+ mov r2, #0xf
+ lsl r2, r2, #0x10
+ tst r2, r3
+ bne _0224A932
+ b _0224AAAC
+_0224A932:
+ mov r2, #6
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd4
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A93E:
+ add r2, r4, #0
+ ldr r1, [sp, #4]
+ add r2, #0x94
+ str r1, [r2]
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x88
+ str r2, [r1]
+ mov r1, #0xe
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A954:
+ add r2, r4, #0
+ ldr r1, [sp, #4]
+ add r2, #0x94
+ str r1, [r2]
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x88
+ str r2, [r1]
+ mov r1, #0x1f
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A96A:
+ add r2, r4, #0
+ ldr r1, [sp, #4]
+ add r2, #0x94
+ str r1, [r2]
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x88
+ str r2, [r1]
+ mov r1, #0x16
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A980:
+ add r2, r4, #0
+ ldr r1, [sp, #4]
+ add r2, #0x94
+ str r1, [r2]
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x88
+ str r2, [r1]
+ mov r1, #0x2f
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A996:
+ add r2, r4, #0
+ ldr r1, [sp, #4]
+ add r2, #0x94
+ str r1, [r2]
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x88
+ str r2, [r1]
+ mov r1, #0x19
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A9AC:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB2C ; =0x00002D59
+ add r3, r4, r3
+ ldrsb r2, [r3, r2]
+ cmp r2, #0xc
+ bge _0224AAAC
+ mov r2, #1
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd0
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A9CA:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB30 ; =0x00002D5A
+ add r3, r4, r3
+ ldrsb r2, [r3, r2]
+ cmp r2, #0xc
+ bge _0224AAAC
+ mov r2, #2
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd0
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A9E8:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB34 ; =0x00002D5B
+ add r3, r4, r3
+ ldrsb r2, [r3, r2]
+ cmp r2, #0xc
+ bge _0224AAAC
+ mov r2, #3
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd0
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224AA06:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB38 ; =0x00002D5C
+ add r3, r4, r3
+ ldrsb r2, [r3, r2]
+ cmp r2, #0xc
+ bge _0224AAAC
+ mov r2, #4
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd0
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224AA24:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB3C ; =0x00002D5D
+ add r3, r4, r3
+ ldrsb r2, [r3, r2]
+ cmp r2, #0xc
+ bge _0224AAAC
+ mov r2, #5
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd0
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224AA42:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _0224AB2C ; =0x00002D59
+_0224AA4C:
+ ldrsb r1, [r2, r0]
+ cmp r1, #0xc
+ blt _0224AA5A
+ add r5, r5, #1
+ add r2, r2, #1
+ cmp r5, #5
+ blt _0224AA4C
+_0224AA5A:
+ cmp r5, #5
+ beq _0224AAAC
+ ldr r5, _0224AB2C ; =0x00002D59
+ mov r7, #5
+ mov r6, #0xc0
+_0224AA64:
+ bl FUN_0201B9EC
+ add r1, r7, #0
+ blx _s32_div_f
+ ldr r0, [r4, #0x6c]
+ add r2, r0, #0
+ mul r2, r6
+ add r0, r4, r2
+ add r0, r1, r0
+ ldrsb r0, [r0, r5]
+ cmp r0, #0xc
+ beq _0224AA64
+ mov r0, #0x13
+ add r1, r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _0224AB1C ; =0x00003118
+ mov r1, #0xd2
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224AA8E:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224AB28 ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #1
+ lsl r1, r1, #0x14
+ tst r1, r2
+ bne _0224AAAC
+ mov r1, #0xd1
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224AAA8:
+ ldr r1, _0224AB40 ; =0x00000109
+ str r1, [r4, r0]
+_0224AAAC:
+ ldr r0, [r4, #0x6c]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ add r0, r4, r2
+ mov r2, #0xb7
+ lsl r2, r2, #6
+ ldr r3, [r0, r2]
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ tst r0, r3
+ beq _0224AACC
+ ldr r0, _0224AB1C ; =0x00003118
+ mov r1, #0
+ str r1, [r4, r0]
+ b _0224AB0C
+_0224AACC:
+ ldr r0, [sp, #4]
+ sub r2, #8
+ add r3, r0, #0
+ mul r3, r1
+ add r0, r4, r3
+ ldrh r0, [r0, r2]
+ add r1, #0x68
+ str r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0224AB04
+ ldr r0, _0224AB1C ; =0x00003118
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0224AB04
+ mov r0, #0xba
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ add r3, r4, r0
+ mov r0, #0x1c
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ mov r0, #2
+ orr r0, r1
+ str r0, [r3, r2]
+_0224AB04:
+ mov r0, #0x46
+ ldr r1, [r4, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0224AB0C:
+ mov r0, #1
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224AB14: .word 0x00003114
+_0224AB18: .word 0x00002DA8
+_0224AB1C: .word 0x00003118
+_0224AB20: .word 0x00002D90
+_0224AB24: .word 0x00002D58
+_0224AB28: .word 0x00002DB0
+_0224AB2C: .word 0x00002D59
+_0224AB30: .word 0x00002D5A
+_0224AB34: .word 0x00002D5B
+_0224AB38: .word 0x00002D5C
+_0224AB3C: .word 0x00002D5D
+_0224AB40: .word 0x00000109
+
+ thumb_func_start MOD11_0224AB44
+MOD11_0224AB44: ; 0x0224AB44
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ cmp r0, #0x68
+ bne _0224ABD2
+ ldr r5, [r4, #0x64]
+ mov r6, #0xc0
+ add r3, r5, #0
+ mul r3, r6
+ ldr r0, _0224ABE8 ; =0x00002DB0
+ add r2, r4, r3
+ ldr r1, [r2, r0]
+ lsl r6, r6, #4
+ tst r6, r1
+ bne _0224ABE6
+ mov r6, #0x70
+ tst r6, r1
+ bne _0224ABE6
+ ldr r6, _0224ABEC ; =0x0000213C
+ ldr r7, [r4, r6]
+ mov r6, #2
+ lsl r6, r6, #8
+ tst r7, r6
+ bne _0224ABE6
+ lsl r6, r6, #3
+ tst r1, r6
+ bne _0224ABE6
+ mov r6, #0xc1
+ lsl r6, r6, #6
+ lsl r5, r5, #1
+ add r7, r4, r5
+ add r5, r6, #0
+ add r5, #0x9c
+ ldrh r5, [r7, r5]
+ ldr r1, [r4, r6]
+ cmp r1, r5
+ bne _0224ABB8
+ add r1, r0, #0
+ add r1, #0x1c
+ ldr r1, [r2, r1]
+ lsl r1, r1, #5
+ lsr r5, r1, #0x1c
+ cmp r5, #0xa
+ bhs _0224ABE6
+ add r0, #0x1c
+ add r0, r4, r0
+ ldr r2, [r0, r3]
+ ldr r1, _0224ABF0 ; =0xF87FFFFF
+ and r2, r1
+ add r1, r5, #1
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #5
+ orr r1, r2
+ str r1, [r0, r3]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224ABB8:
+ add r0, #0x1c
+ add r2, r4, r0
+ ldr r1, [r2, r3]
+ ldr r0, _0224ABF0 ; =0xF87FFFFF
+ and r0, r1
+ str r0, [r2, r3]
+ ldr r0, [r4, #0x64]
+ ldr r1, [r4, r6]
+ lsl r0, r0, #1
+ add r0, r4, r0
+ add r6, #0x9c
+ strh r1, [r0, r6]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224ABD2:
+ ldr r0, _0224ABF4 ; =0x00002DCC
+ ldr r1, [r4, #0x64]
+ add r3, r4, r0
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ ldr r0, _0224ABF0 ; =0xF87FFFFF
+ and r0, r1
+ str r0, [r3, r2]
+_0224ABE6:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224ABE8: .word 0x00002DB0
+_0224ABEC: .word 0x0000213C
+_0224ABF0: .word 0xF87FFFFF
+_0224ABF4: .word 0x00002DCC
+
+ thumb_func_start MOD11_0224ABF8
+MOD11_0224ABF8: ; 0x0224ABF8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ cmp r0, #0x68
+ bne _0224AC84
+ ldr r5, _0224AC9C ; =0x0000216C
+ ldr r0, _0224ACA0 ; =0x801FDA49
+ ldr r1, [r4, r5]
+ tst r0, r1
+ beq _0224AC98
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ lsl r1, r2, #1
+ ldr r3, [r4, r0]
+ add r1, r4, r1
+ add r0, #0x9c
+ ldrh r0, [r1, r0]
+ cmp r3, r0
+ bne _0224AC98
+ mov r0, #0xc0
+ add r1, r2, #0
+ mul r1, r0
+ ldr r3, _0224ACA4 ; =0x00002DCC
+ add r6, r4, r1
+ ldr r0, [r6, r3]
+ lsl r0, r0, #5
+ lsr r0, r0, #0x1c
+ beq _0224AC98
+ mov r7, #0x1c
+ mul r7, r2
+ mov r2, #0xb5
+ add r7, r4, r7
+ lsl r2, r2, #2
+ ldr r7, [r7, r2]
+ lsl r7, r7, #0x17
+ lsr r7, r7, #0x1d
+ bne _0224AC98
+ add r7, r3, #0
+ sub r7, #0x1c
+ ldr r6, [r6, r7]
+ mov r7, #0xc0
+ lsl r7, r7, #4
+ tst r7, r6
+ bne _0224AC98
+ mov r7, #0x70
+ tst r7, r6
+ bne _0224AC98
+ sub r5, #0x30
+ ldr r5, [r4, r5]
+ sub r2, #0xd4
+ tst r2, r5
+ bne _0224AC98
+ mov r2, #1
+ lsl r2, r2, #0xc
+ tst r2, r6
+ bne _0224AC98
+ add r2, r4, r3
+ sub r0, r0, #1
+ lsl r0, r0, #0x1c
+ ldr r4, [r2, r1]
+ ldr r3, _0224ACA8 ; =0xF87FFFFF
+ lsr r0, r0, #5
+ and r3, r4
+ orr r0, r3
+ str r0, [r2, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224AC84:
+ ldr r0, _0224ACA4 ; =0x00002DCC
+ ldr r1, [r4, #0x64]
+ add r3, r4, r0
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ ldr r0, _0224ACA8 ; =0xF87FFFFF
+ and r0, r1
+ str r0, [r3, r2]
+_0224AC98:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224AC9C: .word 0x0000216C
+_0224ACA0: .word 0x801FDA49
+_0224ACA4: .word 0x00002DCC
+_0224ACA8: .word 0xF87FFFFF
+
+ thumb_func_start MOD11_0224ACAC
+MOD11_0224ACAC: ; 0x0224ACAC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ cmp r3, #1
+ bne _0224ACBE
+ sub r0, r2, #2
+ cmp r0, #1
+ bhi _0224ACBE
+ mov r0, #1
+ b _0224ACC0
+_0224ACBE:
+ mov r0, #0
+_0224ACC0:
+ cmp r0, #1
+ mov r0, #0xc0
+ add r4, r1, #0
+ mul r4, r0
+ ldr r2, _0224ACFC ; =0x00002D8C
+ add r1, r5, r4
+ ldr r0, [r1, r2]
+ add r2, r2, #4
+ ldr r1, [r1, r2]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x30
+ mov r6, #0
+ bl FUN_02079A54
+ ldr r1, _0224AD00 ; =0x00002DAC
+ add r2, r5, r4
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bne _0224ACF6
+ cmp r0, #4
+ beq _0224ACF8
+ cmp r0, #3
+ beq _0224ACF8
+_0224ACF6:
+ mov r6, #0xb
+_0224ACF8:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224ACFC: .word 0x00002D8C
+_0224AD00: .word 0x00002DAC
+
+ thumb_func_start MOD11_0224AD04
+MOD11_0224AD04: ; 0x0224AD04
+ push {r3, r4}
+ mov r3, #0xc0
+ add r4, r1, #0
+ mul r4, r3
+ add r1, r0, r4
+ ldr r0, _0224AD34 ; =0x00002DB0
+ mov r2, #1
+ ldr r0, [r1, r0]
+ lsl r1, r2, #0x16
+ tst r1, r0
+ bne _0224AD2C
+ lsl r1, r3, #4
+ tst r1, r0
+ bne _0224AD2C
+ mov r1, #0x70
+ tst r1, r0
+ bne _0224AD2C
+ lsl r1, r2, #0xc
+ tst r0, r1
+ beq _0224AD2E
+_0224AD2C:
+ mov r2, #0
+_0224AD2E:
+ add r0, r2, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_0224AD34: .word 0x00002DB0
+
+ thumb_func_start MOD11_0224AD38
+MOD11_0224AD38: ; 0x0224AD38
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #0
+ add r6, r2, #0
+ bl MOD11_022301D4
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD11_022302B0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02230294
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _0224AD76
+ add r0, r6, #0
+ mov r1, #0x9a
+ mov r2, #0
+ bl FUN_020671BC
+ add r2, r0, #0
+ b _0224AD7A
+_0224AD76:
+ sub r1, #0xd8
+ ldr r2, [r4, r1]
+_0224AD7A:
+ str r7, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ ldr r3, [sp, #8]
+ add r0, r6, #0
+ bl FUN_0206A014
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224AD90
+MOD11_0224AD90: ; 0x0224AD90
+ lsl r1, r1, #8
+ add r1, r0, r1
+ mov r0, #0x23
+ lsl r0, r0, #8
+ ldrb r0, [r1, r0]
+ bx lr
+
+ thumb_func_start MOD11_0224AD9C
+MOD11_0224AD9C: ; 0x0224AD9C
+ mov r3, #0x1c
+ mul r3, r1
+ add r1, r0, r3
+ mov r0, #0xba
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #8
+ mov r2, #0
+ tst r0, r1
+ beq _0224ADB2
+ mov r2, #1
+_0224ADB2:
+ add r0, r2, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0224ADB8
+MOD11_0224ADB8: ; 0x0224ADB8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ mov r1, #0
+ bl MOD11_022301D4
+ add r4, r0, #0
+ bl FUN_020239BC
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_020239CC
+ add r7, r0, #0
+ add r0, r4, #0
+ bl FUN_0202398C
+ ldr r2, [r5, #0x64]
+ mov r1, #0xc0
+ add r4, r2, #0
+ mul r4, r1
+ ldr r1, _0224AE10 ; =0x00002DB4
+ add r3, r5, r4
+ ldr r2, [r3, r1]
+ cmp r6, r2
+ bne _0224AE0C
+ add r2, r1, #0
+ add r2, #0xa
+ ldrb r2, [r3, r2]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1c
+ cmp r7, r2
+ bne _0224AE0C
+ sub r1, #0x20
+ add r1, r5, r1
+ add r1, r1, r4
+ mov r2, #7
+ bl StringNotEqualN
+ cmp r0, #0
+ bne _0224AE0C
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0224AE0C:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224AE10: .word 0x00002DB4
+
+ thumb_func_start MOD11_0224AE14
+MOD11_0224AE14: ; 0x0224AE14
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ mov r1, #0
+ bl MOD11_022301D4
+ add r4, r0, #0
+ bl FUN_020239BC
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_020239CC
+ add r7, r0, #0
+ add r0, r4, #0
+ bl FUN_0202398C
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0x8f
+ add r2, sp, #0
+ bl FUN_020671BC
+ add r0, r5, #0
+ mov r1, #7
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r6, r0
+ bne _0224AE72
+ add r0, r5, #0
+ mov r1, #0x9c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r7, r0
+ bne _0224AE72
+ add r0, r4, #0
+ add r1, sp, #0
+ mov r2, #7
+ bl StringNotEqualN
+ cmp r0, #0
+ bne _0224AE72
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0224AE72:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0224AE78
+MOD11_0224AE78: ; 0x0224AE78
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r4, #0
+ add r7, r0, #0
+ add r5, r1, #0
+ str r4, [sp, #4]
+ bl MOD11_0222FF84
+ cmp r0, #0
+ bgt _0224AE8E
+ b _0224B232
+_0224AE8E:
+ ldr r0, _0224B1B8 ; =0x00002D66
+ add r6, r5, r0
+_0224AE92:
+ ldr r0, _0224B1BC ; =0x000021EC
+ add r1, r5, r4
+ ldrb r1, [r1, r0]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ ldr r3, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r3
+ add r2, r5, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r1, [r2, r0]
+ ldr r0, _0224B1C0 ; =0x0000015F
+ cmp r1, r0
+ bne _0224AEC6
+ ldr r0, _0224B1C4 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0224AEC6
+ add r0, r5, #0
+ add r1, r3, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x3b
+ beq _0224AEC8
+_0224AEC6:
+ b _0224B096
+_0224AEC8:
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224AEF0
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0224AEF2
+_0224AEF0:
+ b _0224B04A
+_0224AEF2:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #0xf3
+ tst r1, r0
+ bne _0224AF4A
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r1, #0xc0
+ mul r1, r2
+ ldr r2, _0224B1C8 ; =0x00002D64
+ add r1, r5, r1
+ ldrb r2, [r1, r2]
+ cmp r2, #0
+ beq _0224AF4A
+ ldr r2, _0224B1CC ; =0x00002D65
+ ldrb r2, [r1, r2]
+ cmp r2, #0
+ beq _0224AF4A
+ ldr r3, _0224B1C8 ; =0x00002D64
+ mov r2, #0
+ mov r0, #0x46
+ strb r2, [r1, r3]
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r1, #0xc0
+ add r6, r4, #0
+ mul r6, r1
+ add r6, r5, r6
+ add r4, r3, #1
+ strb r2, [r6, r4]
+ add r2, r3, #2
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #1
+ strb r1, [r2, r3]
+ str r0, [sp, #4]
+ b _0224B232
+_0224AF4A:
+ mov r1, #0x30
+ tst r1, r0
+ beq _0224AF9E
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r1, #0xc0
+ mul r1, r2
+ ldr r2, _0224B1C8 ; =0x00002D64
+ add r1, r5, r1
+ ldrb r2, [r1, r2]
+ cmp r2, #0xa
+ beq _0224AF9E
+ ldr r2, _0224B1CC ; =0x00002D65
+ ldrb r2, [r1, r2]
+ cmp r2, #0xa
+ beq _0224AF9E
+ ldr r3, _0224B1C8 ; =0x00002D64
+ mov r2, #0xa
+ mov r0, #0x46
+ strb r2, [r1, r3]
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r1, #0xc0
+ add r6, r4, #0
+ mul r6, r1
+ add r6, r5, r6
+ add r4, r3, #1
+ strb r2, [r6, r4]
+ add r2, r3, #2
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #1
+ str r0, [sp, #4]
+ orr r0, r1
+ strb r0, [r2, r3]
+ b _0224B232
+_0224AF9E:
+ mov r1, #3
+ tst r1, r0
+ beq _0224AFF4
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r1, #0xc0
+ mul r1, r2
+ ldr r2, _0224B1C8 ; =0x00002D64
+ add r1, r5, r1
+ ldrb r2, [r1, r2]
+ cmp r2, #0xb
+ beq _0224AFF4
+ ldr r2, _0224B1CC ; =0x00002D65
+ ldrb r2, [r1, r2]
+ cmp r2, #0xb
+ beq _0224AFF4
+ ldr r3, _0224B1C8 ; =0x00002D64
+ mov r2, #0xb
+ mov r0, #0x46
+ strb r2, [r1, r3]
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r1, #0xc0
+ add r6, r4, #0
+ mul r6, r1
+ add r6, r5, r6
+ add r4, r3, #1
+ strb r2, [r6, r4]
+ add r2, r3, #2
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #2
+ orr r0, r1
+ strb r0, [r2, r3]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224AFF4:
+ mov r1, #0xc0
+ tst r0, r1
+ beq _0224B096
+ add r0, r1, #0
+ add r0, #0x58
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224B1C8 ; =0x00002D64
+ add r0, r5, r0
+ ldrb r1, [r0, r1]
+ cmp r1, #0xf
+ beq _0224B096
+ ldr r1, _0224B1CC ; =0x00002D65
+ ldrb r1, [r0, r1]
+ cmp r1, #0xf
+ beq _0224B096
+ ldr r3, _0224B1C8 ; =0x00002D64
+ mov r2, #0xf
+ strb r2, [r0, r3]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r1, #0xc0
+ add r6, r4, #0
+ mul r6, r1
+ add r6, r5, r6
+ add r4, r3, #1
+ strb r2, [r6, r4]
+ add r2, r3, #2
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #3
+ orr r0, r1
+ strb r0, [r2, r3]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B04A:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224B1C8 ; =0x00002D64
+ add r0, r5, r0
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ beq _0224B096
+ ldr r1, _0224B1CC ; =0x00002D65
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ beq _0224B096
+ ldr r3, _0224B1C8 ; =0x00002D64
+ mov r2, #0
+ strb r2, [r0, r3]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r1, #0xc0
+ add r6, r4, #0
+ mul r6, r1
+ add r6, r5, r6
+ add r4, r3, #1
+ strb r2, [r6, r4]
+ add r2, r3, #2
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #1
+ strb r1, [r2, r3]
+ str r0, [sp, #4]
+ b _0224B232
+_0224B096:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ mov r1, #0xb5
+ add r0, r5, r0
+ lsl r1, r1, #6
+ ldrh r2, [r0, r1]
+ ldr r1, _0224B1D0 ; =0x000001A5
+ cmp r2, r1
+ bne _0224B1A2
+ ldr r1, _0224B1C4 ; =0x00002D8C
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _0224B1A2
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224B182
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224B182
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r2, [r5, r0]
+ mov r0, #0xf3
+ tst r0, r2
+ bne _0224B10C
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0xc0
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r0, [r6, r3]
+ lsl r1, r0, #0x1b
+ lsr r1, r1, #0x1b
+ cmp r1, #1
+ bne _0224B10C
+ mov r1, #0x1f
+ bic r0, r1
+ strb r0, [r6, r3]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B10C:
+ mov r0, #0x30
+ tst r0, r2
+ beq _0224B134
+ mov r0, #0x46
+ lsl r0, r0, #2
+_0224B116:
+ ldr r0, [r5, r0]
+ mov r1, #0xc0
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r0, [r6, r3]
+ lsl r1, r0, #0x1b
+ lsr r1, r1, #0x1b
+ bne _0224B134
+ mov r1, #0x1f
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ str r1, [sp, #4]
+ strb r0, [r6, r3]
+ b _0224B232
+_0224B134:
+ mov r0, #3
+ tst r0, r2
+ beq _0224B15C
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0xc0
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r0, [r6, r3]
+ lsl r1, r0, #0x1b
+ lsr r1, r1, #0x1b
+ cmp r1, #1
+ bne _0224B15C
+ mov r1, #0x1f
+ bic r0, r1
+ strb r0, [r6, r3]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B15C:
+ mov r0, #0xc0
+ tst r0, r2
+ beq _0224B1A2
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ ldrb r2, [r6, r0]
+ lsl r1, r2, #0x1b
+ lsr r1, r1, #0x1b
+ cmp r1, #1
+ bne _0224B1A2
+ mov r1, #0x1f
+ bic r2, r1
+ strb r2, [r6, r0]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B182:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ ldrb r2, [r6, r0]
+ lsl r1, r2, #0x1b
+ lsr r1, r1, #0x1b
+ cmp r1, #1
+ bne _0224B1A2
+ mov r1, #0x1f
+ bic r2, r1
+ strb r2, [r6, r0]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B1A2:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ mov r1, #0xb5
+ add r0, r5, r0
+ lsl r1, r1, #6
+ ldrh r2, [r0, r1]
+ ldr r1, _0224B1D4 ; =0x000001ED
+ b _0224B1D8
+ .align 2, 0
+_0224B1B8: .word 0x00002D66
+_0224B1BC: .word 0x000021EC
+_0224B1C0: .word 0x0000015F
+_0224B1C4: .word 0x00002D8C
+_0224B1C8: .word 0x00002D64
+_0224B1CC: .word 0x00002D65
+_0224B1D0: .word 0x000001A5
+_0224B1D4: .word 0x000001ED
+_0224B1D8:
+ cmp r2, r1
+ bne _0224B224
+ ldr r1, _0224B238 ; =0x00002D8C
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ beq _0224B224
+ ldr r1, _0224B23C ; =0x00002DB8
+ mov r2, #5
+ ldrh r0, [r0, r1]
+ mov r1, #1
+ bl FUN_0206E7B8
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02069F24
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ mov r2, #0xc0
+ add r3, r1, #0
+ mul r3, r2
+ ldrb r1, [r6, r3]
+ lsl r2, r1, #0x1b
+ lsr r2, r2, #0x1b
+ cmp r0, r2
+ beq _0224B224
+ mov r2, #0x1f
+ lsl r0, r0, #0x18
+ bic r1, r2
+ lsr r2, r0, #0x18
+ mov r0, #0x1f
+ and r0, r2
+ orr r0, r1
+ strb r0, [r6, r3]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B224:
+ add r0, r7, #0
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ bge _0224B232
+ b _0224AE92
+_0224B232:
+ ldr r0, [sp, #4]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224B238: .word 0x00002D8C
+_0224B23C: .word 0x00002DB8
+
+ thumb_func_start MOD11_0224B240
+MOD11_0224B240: ; 0x0224B240
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp, #4]
+ str r1, [sp]
+ mov r7, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _0224B282
+ ldr r5, [sp]
+ ldr r4, _0224B288 ; =0x0000312C
+_0224B256:
+ mov r1, #0
+_0224B258:
+ add r0, r5, r1
+ strb r1, [r0, r4]
+ add r1, r1, #1
+ cmp r1, #6
+ blt _0224B258
+ ldr r1, [sp]
+ ldr r0, [sp, #4]
+ add r3, r1, #0
+ add r6, r3, r7
+ ldr r3, _0224B28C ; =0x0000219C
+ add r2, r7, #0
+ ldrb r3, [r6, r3]
+ bl MOD11_0224B290
+ ldr r0, [sp, #4]
+ add r5, r5, #6
+ add r7, r7, #1
+ bl MOD11_0222FF84
+ cmp r7, r0
+ blt _0224B256
+_0224B282:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224B288: .word 0x0000312C
+_0224B28C: .word 0x0000219C
+
+ thumb_func_start MOD11_0224B290
+MOD11_0224B290: ; 0x0224B290
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r1, #0
+ add r5, r2, #0
+ add r4, r3, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r1, r0
+ beq _0224B2AA
+ mov r1, #0x18
+ tst r1, r0
+ beq _0224B2BE
+_0224B2AA:
+ mov r1, #0x10
+ tst r0, r1
+ beq _0224B2E2
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ bne _0224B2E2
+_0224B2BE:
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02230260
+ cmp r0, #4
+ beq _0224B2D6
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02230260
+ cmp r0, #5
+ bne _0224B2DA
+_0224B2D6:
+ mov r1, #1
+ b _0224B2DC
+_0224B2DA:
+ mov r1, #0
+_0224B2DC:
+ mov r0, #1
+ and r5, r0
+ b _0224B2E4
+_0224B2E2:
+ mov r1, #0
+_0224B2E4:
+ mov r2, #6
+ mul r2, r5
+ ldr r3, _0224B30C ; =0x0000312C
+ mov r0, #0
+ add r7, r6, r2
+_0224B2EE:
+ ldrb r5, [r7, r3]
+ cmp r4, r5
+ beq _0224B2FC
+ add r0, r0, #1
+ add r7, r7, #1
+ cmp r0, #6
+ blt _0224B2EE
+_0224B2FC:
+ ldr r3, _0224B30C ; =0x0000312C
+ add r3, r6, r3
+ add r4, r3, r2
+ ldrb r3, [r4, r1]
+ ldrb r2, [r4, r0]
+ strb r2, [r4, r1]
+ strb r3, [r4, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224B30C: .word 0x0000312C
+
+ thumb_func_start MOD11_0224B310
+MOD11_0224B310: ; 0x0224B310
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x8c
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xa0]
+ add r5, r1, #0
+ str r0, [sp, #0xa0]
+ ldr r0, [sp, #0xb4]
+ str r2, [sp, #8]
+ str r0, [sp, #0xb4]
+ mov r0, #0
+ str r0, [sp, #0x84]
+ ldr r0, [sp, #0xb4]
+ str r3, [sp, #0xc]
+ cmp r0, #1
+ beq _0224B334
+ bhi _0224B334
+ bl ErrorHandling
+_0224B334:
+ add r0, sp, #0x90
+ ldrb r0, [r0, #0x1c]
+ mov r2, #1
+ mov r3, #0
+ str r0, [sp, #0x24]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+ add r0, sp, #0xb0
+ ldrb r0, [r0]
+ mov r2, #2
+ mov r3, #0
+ str r0, [sp, #0x20]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x78]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #4
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #5
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x13
+ mov r3, #0
+ bl MOD11_02243420
+ sub r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x70]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x14
+ mov r3, #0
+ bl MOD11_02243420
+ sub r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x6c]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x16
+ mov r3, #0
+ bl MOD11_02243420
+ sub r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x68]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x17
+ mov r3, #0
+ bl MOD11_02243420
+ sub r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x64]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x2b
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r2, #0
+ str r0, [sp, #0x60]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ add r3, r2, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #0
+ str r0, [sp, #0x58]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ add r3, r2, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x54]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x2f
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0x50]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x2f
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x30
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4c]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x30
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ str r0, [sp, #0x48]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ str r0, [sp, #0x44]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ add r7, r0, #0
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x1d
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x40]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x1d
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x3c]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x38]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x34]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ bl MOD11_02249B4C
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ str r0, [sp, #0x30]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #2
+ bl MOD11_0224C12C
+ str r0, [sp, #0x2c]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ bl MOD11_02249B4C
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ str r0, [sp, #0x28]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #2
+ bl MOD11_0224C12C
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ str r0, [sp, #0x5c]
+ add r0, sp, #0x90
+ ldrh r4, [r0, #0x14]
+ cmp r4, #0
+ bne _0224B534
+ ldr r0, [sp, #8]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224B754 ; =0x000003E1
+ ldrb r4, [r1, r0]
+_0224B534:
+ cmp r7, #0x60
+ bne _0224B53C
+ mov r6, #0
+ b _0224B558
+_0224B53C:
+ add r0, sp, #0x90
+ ldrb r1, [r0, #0x18]
+ cmp r1, #0
+ bne _0224B550
+ ldr r0, [sp, #8]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224B758 ; =0x000003E2
+ ldrb r6, [r1, r0]
+ b _0224B558
+_0224B550:
+ mov r0, #0x3f
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+_0224B558:
+ ldr r0, _0224B75C ; =0x00002158
+ ldr r0, [r5, r0]
+ cmp r0, #0xa
+ bge _0224B564
+ bl ErrorHandling
+_0224B564:
+ ldr r0, _0224B75C ; =0x00002158
+ mov r1, #0xa
+ ldr r0, [r5, r0]
+ mul r0, r4
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, sp, #0x90
+ ldrb r0, [r0, #0x1c]
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ mov r1, #0xb7
+ lsl r1, r1, #6
+ ldr r2, [r2, r1]
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r1, r2
+ beq _0224B594
+ cmp r6, #0xd
+ bne _0224B594
+ lsl r1, r4, #0x11
+ lsr r4, r1, #0x10
+_0224B594:
+ lsl r0, r0, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _0224B5B2
+ mov r0, #0xf
+ mul r0, r4
+ mov r1, #0xa
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B5B2:
+ cmp r7, #0x65
+ bne _0224B5CE
+ ldr r0, [sp, #8]
+ cmp r0, #0xa5
+ beq _0224B5CE
+ cmp r4, #0x3c
+ bhi _0224B5CE
+ mov r0, #0xf
+ mul r0, r4
+ mov r1, #0xa
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B5CE:
+ ldr r0, [sp, #8]
+ lsl r0, r0, #4
+ str r0, [sp, #0x18]
+ add r1, r5, r0
+ mov r0, #0x3e
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ cmp r7, #0x25
+ str r0, [sp, #0x80]
+ beq _0224B5E6
+ cmp r7, #0x4a
+ bne _0224B5EE
+_0224B5E6:
+ ldr r0, [sp, #0x7c]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B5EE:
+ cmp r7, #0x70
+ bne _0224B61C
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #3
+ mov r3, #0
+ bl MOD11_0224C474
+ str r0, [sp, #0x88]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x59
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x88]
+ sub r0, r1, r0
+ cmp r0, #5
+ bge _0224B61C
+ ldr r0, [sp, #0x7c]
+ lsl r0, r0, #0xf
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B61C:
+ ldr r3, _0224B760 ; =0x0225E336
+ mov r2, #0
+_0224B620:
+ ldrb r1, [r3]
+ ldr r0, [sp, #0x30]
+ cmp r0, r1
+ bne _0224B640
+ ldrb r0, [r3, #1]
+ cmp r6, r0
+ bne _0224B640
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x64
+ add r0, #0x64
+ mul r0, r4
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0224B648
+_0224B640:
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #0x21
+ blo _0224B620
+_0224B648:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x36
+ bne _0224B660
+ ldr r1, [sp, #0x7c]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B660:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x7c
+ bne _0224B678
+ ldr r1, [sp, #0x74]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224B678:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x3b
+ bne _0224B6A6
+ ldr r0, [sp, #0x5c]
+ mov r1, #0x80
+ tst r0, r1
+ bne _0224B6A6
+ ldr r1, _0224B764 ; =0x0000FE84
+ ldr r0, [sp, #0x58]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _0224B6A6
+ ldr r1, [sp, #0x74]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224B6A6:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x3b
+ bne _0224B6D4
+ ldr r0, [sp, #0x5c]
+ mov r1, #0x80
+ tst r0, r1
+ bne _0224B6D4
+ ldr r1, _0224B764 ; =0x0000FE84
+ ldr r0, [sp, #0x54]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _0224B6D4
+ ldr r1, [sp, #0x10]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+_0224B6D4:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x3c
+ bne _0224B6EA
+ ldr r1, _0224B768 ; =0x0000016E
+ ldr r0, [sp, #0x58]
+ cmp r0, r1
+ bne _0224B6EA
+ ldr r0, [sp, #0x74]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224B6EA:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x3d
+ bne _0224B700
+ ldr r1, _0224B768 ; =0x0000016E
+ ldr r0, [sp, #0x54]
+ cmp r0, r1
+ bne _0224B700
+ ldr r0, [sp, #0x10]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+_0224B700:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x46
+ bne _0224B710
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x19
+ bne _0224B710
+ lsl r0, r4, #0x11
+ lsr r4, r0, #0x10
+_0224B710:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x59
+ bne _0224B724
+ ldr r0, [sp, #0x54]
+ cmp r0, #0x84
+ bne _0224B724
+ ldr r0, [sp, #0x78]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x78]
+_0224B724:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x5a
+ bne _0224B740
+ ldr r1, _0224B76C ; =0x0000FF98
+ ldr r0, [sp, #0x58]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _0224B740
+ ldr r0, [sp, #0x7c]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B740:
+ ldr r0, [sp, #0x30]
+ cmp r0, #2
+ bne _0224B78A
+ cmp r6, #0x10
+ beq _0224B74E
+ cmp r6, #8
+ bne _0224B78A
+_0224B74E:
+ ldr r1, _0224B770 ; =0x000001E3
+ b _0224B774
+ nop
+_0224B754: .word 0x000003E1
+_0224B758: .word 0x000003E2
+_0224B75C: .word 0x00002158
+_0224B760: .word 0x0225E336
+_0224B764: .word 0x0000FE84
+_0224B768: .word 0x0000016E
+_0224B76C: .word 0x0000FF98
+_0224B770: .word 0x000001E3
+_0224B774:
+ ldr r0, [sp, #0x58]
+ cmp r0, r1
+ bne _0224B78A
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x64
+ add r0, #0x64
+ mul r0, r4
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B78A:
+ ldr r0, [sp, #0x30]
+ cmp r0, #3
+ bne _0224B7B2
+ cmp r6, #0x10
+ beq _0224B798
+ cmp r6, #0xb
+ bne _0224B7B2
+_0224B798:
+ mov r1, #0x79
+ ldr r0, [sp, #0x58]
+ lsl r1, r1, #2
+ cmp r0, r1
+ bne _0224B7B2
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x64
+ add r0, #0x64
+ mul r0, r4
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B7B2:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x5d
+ bne _0224B7CE
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bne _0224B7CE
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x64
+ add r0, #0x64
+ mul r0, r4
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B7CE:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x5e
+ bne _0224B7EC
+ ldr r0, [sp, #0x80]
+ cmp r0, #1
+ bne _0224B7EC
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x64
+ add r0, #0x64
+ str r0, [sp, #0x2c]
+ mul r0, r4
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B7EC:
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x2f
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224B808
+ cmp r6, #0xa
+ beq _0224B804
+ cmp r6, #0xf
+ bne _0224B808
+_0224B804:
+ lsl r0, r4, #0xf
+ lsr r4, r0, #0x10
+_0224B808:
+ cmp r7, #0x37
+ bne _0224B81E
+ ldr r1, [sp, #0x7c]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B81E:
+ cmp r7, #0x3e
+ bne _0224B83A
+ ldr r0, [sp, #0x48]
+ cmp r0, #0
+ beq _0224B83A
+ ldr r1, [sp, #0x7c]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B83A:
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x3f
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224B862
+ ldr r0, [sp, #0x44]
+ cmp r0, #0
+ beq _0224B862
+ ldr r1, [sp, #0x78]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x78]
+_0224B862:
+ cmp r7, #0x39
+ bne _0224B88C
+ mov r0, #0x3a
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x24]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0224B88C
+ ldr r1, [sp, #0x74]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224B88C:
+ cmp r7, #0x3a
+ bne _0224B8B6
+ mov r0, #0x39
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x24]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0224B8B6
+ ldr r1, [sp, #0x74]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224B8B6:
+ cmp r6, #0xd
+ bne _0224B8CE
+ mov r2, #1
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ lsl r2, r2, #0x10
+ bl MOD11_02247238
+ cmp r0, #0
+ beq _0224B8CE
+ lsl r0, r4, #0xf
+ lsr r4, r0, #0x10
+_0224B8CE:
+ cmp r6, #0xa
+ bne _0224B8E6
+ mov r2, #2
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ lsl r2, r2, #0x10
+ bl MOD11_02247238
+ cmp r0, #0
+ beq _0224B8E6
+ lsl r0, r4, #0xf
+ lsr r4, r0, #0x10
+_0224B8E6:
+ cmp r6, #0xc
+ bne _0224B90A
+ cmp r7, #0x41
+ bne _0224B90A
+ ldr r0, [sp, #0x4c]
+ mov r1, #3
+ blx _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
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B90A:
+ cmp r6, #0xa
+ bne _0224B92E
+ cmp r7, #0x42
+ bne _0224B92E
+ ldr r0, [sp, #0x4c]
+ mov r1, #3
+ blx _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
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B92E:
+ cmp r6, #0xb
+ bne _0224B952
+ cmp r7, #0x43
+ bne _0224B952
+ ldr r0, [sp, #0x4c]
+ mov r1, #3
+ blx _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
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B952:
+ cmp r6, #6
+ bne _0224B976
+ cmp r7, #0x44
+ bne _0224B976
+ ldr r0, [sp, #0x4c]
+ mov r1, #3
+ blx _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
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B976:
+ cmp r6, #0xa
+ bne _0224B98E
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x55
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224B98E
+ lsl r0, r4, #0xf
+ lsr r4, r0, #0x10
+_0224B98E:
+ cmp r6, #0xa
+ bne _0224B9B0
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x57
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224B9B0
+ mov r0, #0x7d
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B9B0:
+ cmp r7, #0x56
+ bne _0224B9F0
+ ldr r0, [sp, #0x70]
+ mov r1, #5
+ lsl r0, r0, #0x19
+ asr r0, r0, #0x18
+ str r0, [sp, #0x70]
+ ldr r0, [sp, #0x70]
+ mvn r1, r1
+ cmp r0, r1
+ bge _0224B9C8
+ str r1, [sp, #0x70]
+_0224B9C8:
+ ldr r0, [sp, #0x70]
+ cmp r0, #6
+ ble _0224B9D2
+ mov r0, #6
+ str r0, [sp, #0x70]
+_0224B9D2:
+ ldr r0, [sp, #0x68]
+ mov r1, #5
+ lsl r0, r0, #0x19
+ asr r0, r0, #0x18
+ str r0, [sp, #0x68]
+ ldr r0, [sp, #0x68]
+ mvn r1, r1
+ cmp r0, r1
+ bge _0224B9E6
+ str r1, [sp, #0x68]
+_0224B9E6:
+ ldr r0, [sp, #0x68]
+ cmp r0, #6
+ ble _0224B9F0
+ mov r0, #6
+ str r0, [sp, #0x68]
+_0224B9F0:
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x56
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224BA3C
+ ldr r0, [sp, #0x6c]
+ mov r1, #5
+ lsl r0, r0, #0x19
+ asr r0, r0, #0x18
+ str r0, [sp, #0x6c]
+ ldr r0, [sp, #0x6c]
+ mvn r1, r1
+ cmp r0, r1
+ bge _0224BA14
+ str r1, [sp, #0x6c]
+_0224BA14:
+ ldr r0, [sp, #0x6c]
+ cmp r0, #6
+ ble _0224BA1E
+ mov r0, #6
+ str r0, [sp, #0x6c]
+_0224BA1E:
+ ldr r0, [sp, #0x64]
+ mov r1, #5
+ lsl r0, r0, #0x19
+ asr r0, r0, #0x18
+ str r0, [sp, #0x64]
+ ldr r0, [sp, #0x64]
+ mvn r1, r1
+ cmp r0, r1
+ bge _0224BA32
+ str r1, [sp, #0x64]
+_0224BA32:
+ ldr r0, [sp, #0x64]
+ cmp r0, #6
+ ble _0224BA3C
+ mov r0, #6
+ str r0, [sp, #0x64]
+_0224BA3C:
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x6d
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224BA52
+ mov r0, #0
+ str r0, [sp, #0x70]
+ str r0, [sp, #0x68]
+_0224BA52:
+ cmp r7, #0x6d
+ bne _0224BA5C
+ mov r0, #0
+ str r0, [sp, #0x6c]
+ str r0, [sp, #0x64]
+_0224BA5C:
+ ldr r0, [sp, #0x70]
+ add r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x70]
+ ldr r0, [sp, #0x6c]
+ add r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x6c]
+ ldr r0, [sp, #0x68]
+ add r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x68]
+ ldr r0, [sp, #0x64]
+ add r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x64]
+ cmp r7, #0x4f
+ bne _0224BAAA
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #0x3c]
+ cmp r1, r0
+ bne _0224BAAA
+ add r0, r1, #0
+ cmp r0, #2
+ beq _0224BAAA
+ ldr r0, [sp, #0x3c]
+ cmp r0, #2
+ beq _0224BAAA
+ mov r0, #0x7d
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224BAAA:
+ cmp r7, #0x4f
+ bne _0224BAD0
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #0x3c]
+ cmp r1, r0
+ beq _0224BAD0
+ add r0, r1, #0
+ cmp r0, #2
+ beq _0224BAD0
+ ldr r0, [sp, #0x3c]
+ cmp r0, #2
+ beq _0224BAD0
+ mov r0, #0x4b
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224BAD0:
+ ldr r2, _0224BDDC ; =0x0225E2BA
+ mov r3, #0
+_0224BAD4:
+ ldrh r1, [r2]
+ ldr r0, [sp, #8]
+ cmp r0, r1
+ bne _0224BAF0
+ cmp r7, #0x59
+ bne _0224BAF0
+ mov r0, #0xc
+ mul r0, r4
+ mov r1, #0xa
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0224BAF8
+_0224BAF0:
+ add r3, r3, #1
+ add r2, r2, #2
+ cmp r3, #0xf
+ blo _0224BAD4
+_0224BAF8:
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224BBCA
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224BBCA
+ ldr r0, [sp, #0xa0]
+ mov r1, #0x30
+ and r0, r1
+ str r0, [sp, #0x1c]
+ beq _0224BB40
+ cmp r7, #0x5e
+ bne _0224BB40
+ ldr r1, [sp, #0x74]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224BB40:
+ ldr r0, [sp, #0xa0]
+ mov r1, #0xc
+ tst r0, r1
+ beq _0224BB66
+ ldr r0, [sp, #0x38]
+ cmp r0, #5
+ beq _0224BB54
+ ldr r0, [sp, #0x34]
+ cmp r0, #5
+ bne _0224BB66
+_0224BB54:
+ ldr r1, [sp, #0x10]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+_0224BB66:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0224BB92
+ mov r0, #0x7a
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x24]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0224BB92
+ ldr r1, [sp, #0x7c]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224BB92:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0224BBCA
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x68
+ beq _0224BBCA
+ mov r0, #0x7a
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0224BBCA
+ ldr r1, [sp, #0x10]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+_0224BBCA:
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _0224BDE0 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ str r0, [sp, #0x14]
+ cmp r0, #7
+ bne _0224BBE0
+ ldr r0, [sp, #0x78]
+ lsl r0, r0, #0xf
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x78]
+_0224BBE0:
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bne _0224BCE2
+ ldr r0, [sp, #0xb4]
+ cmp r0, #1
+ bls _0224BC0E
+ ldr r0, [sp, #0x70]
+ cmp r0, #6
+ ble _0224BC08
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldr r2, [sp, #0x7c]
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ blx _s32_div_f
+ str r0, [sp, #0x84]
+ b _0224BC24
+_0224BC08:
+ ldr r0, [sp, #0x7c]
+ str r0, [sp, #0x84]
+ b _0224BC24
+_0224BC0E:
+ ldr r0, [sp, #0x70]
+ ldr r2, [sp, #0x7c]
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ blx _s32_div_f
+ str r0, [sp, #0x84]
+_0224BC24:
+ ldr r0, [sp, #0x84]
+ add r1, r0, #0
+ ldr r0, [sp, #0x60]
+ mul r1, r4
+ str r1, [sp, #0x84]
+ lsl r0, r0, #1
+ mov r1, #5
+ blx _s32_div_f
+ add r1, r0, #2
+ ldr r0, [sp, #0x84]
+ mul r1, r0
+ ldr r0, [sp, #0xb4]
+ str r1, [sp, #0x84]
+ cmp r0, #1
+ bls _0224BC60
+ ldr r0, [sp, #0x6c]
+ cmp r0, #6
+ bge _0224BC76
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldr r2, [sp, #0x78]
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ blx _s32_div_f
+ str r0, [sp, #0x78]
+ b _0224BC76
+_0224BC60:
+ ldr r0, [sp, #0x6c]
+ ldr r2, [sp, #0x78]
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ blx _s32_div_f
+ str r0, [sp, #0x78]
+_0224BC76:
+ ldr r0, [sp, #0x84]
+ ldr r1, [sp, #0x78]
+ blx _s32_div_f
+ mov r1, #0x32
+ blx _s32_div_f
+ str r0, [sp, #0x84]
+ ldr r0, [sp, #0x48]
+ mov r1, #0x10
+ tst r0, r1
+ beq _0224BC9C
+ cmp r7, #0x3e
+ beq _0224BC9C
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+_0224BC9C:
+ ldr r0, [sp, #0xc]
+ mov r2, #1
+ tst r0, r2
+ beq _0224BCB0
+ ldr r0, [sp, #0xb4]
+ cmp r0, #1
+ bne _0224BCB0
+ ldr r0, [sp, #0x14]
+ cmp r0, #0xba
+ bne _0224BCB2
+_0224BCB0:
+ b _0224BDC8
+_0224BCB2:
+ ldr r0, [sp, #0x5c]
+ mov r1, #2
+ tst r0, r1
+ beq _0224BCD6
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r1, r5, #0
+ bl MOD11_022467AC
+ cmp r0, #2
+ bne _0224BCD6
+ ldr r0, [sp, #0x84]
+ mov r1, #3
+ lsl r0, r0, #1
+ blx _s32_div_f
+ str r0, [sp, #0x84]
+ b _0224BDC8
+_0224BCD6:
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+ b _0224BDC8
+_0224BCE2:
+ cmp r0, #1
+ bne _0224BDC8
+ ldr r0, [sp, #0xb4]
+ cmp r0, #1
+ bls _0224BD0E
+ ldr r0, [sp, #0x68]
+ cmp r0, #6
+ ble _0224BD08
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldr r2, [sp, #0x74]
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ blx _s32_div_f
+ str r0, [sp, #0x84]
+ b _0224BD24
+_0224BD08:
+ ldr r0, [sp, #0x74]
+ str r0, [sp, #0x84]
+ b _0224BD24
+_0224BD0E:
+ ldr r0, [sp, #0x68]
+ ldr r2, [sp, #0x74]
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ blx _s32_div_f
+ str r0, [sp, #0x84]
+_0224BD24:
+ ldr r0, [sp, #0x84]
+ add r1, r0, #0
+ ldr r0, [sp, #0x60]
+ mul r1, r4
+ str r1, [sp, #0x84]
+ lsl r0, r0, #1
+ mov r1, #5
+ blx _s32_div_f
+ add r1, r0, #2
+ ldr r0, [sp, #0x84]
+ mul r1, r0
+ ldr r0, [sp, #0xb4]
+ str r1, [sp, #0x84]
+ cmp r0, #1
+ bls _0224BD60
+ ldr r0, [sp, #0x64]
+ cmp r0, #6
+ bge _0224BD76
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldr r2, [sp, #0x10]
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ blx _s32_div_f
+ str r0, [sp, #0x10]
+ b _0224BD76
+_0224BD60:
+ ldr r0, [sp, #0x64]
+ ldr r2, [sp, #0x10]
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ blx _s32_div_f
+ str r0, [sp, #0x10]
+_0224BD76:
+ ldr r0, [sp, #0x84]
+ ldr r1, [sp, #0x10]
+ blx _s32_div_f
+ mov r1, #0x32
+ blx _s32_div_f
+ str r0, [sp, #0x84]
+ ldr r0, [sp, #0xc]
+ mov r1, #2
+ tst r0, r1
+ beq _0224BDC8
+ ldr r0, [sp, #0xb4]
+ cmp r0, #1
+ bne _0224BDC8
+ ldr r0, [sp, #0x14]
+ cmp r0, #0xba
+ beq _0224BDC8
+ ldr r0, [sp, #0x5c]
+ tst r0, r1
+ beq _0224BDBE
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_022467AC
+ cmp r0, #2
+ bne _0224BDBE
+ ldr r0, [sp, #0x84]
+ mov r1, #3
+ lsl r0, r0, #1
+ blx _s32_div_f
+ str r0, [sp, #0x84]
+ b _0224BDC8
+_0224BDBE:
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+_0224BDC8:
+ ldr r0, [sp, #0x5c]
+ mov r1, #2
+ add r4, r0, #0
+ and r4, r1
+ beq _0224BE16
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _0224BDEC ; =0x000003E6
+ b _0224BDF0
+ nop
+_0224BDDC: .word 0x0225E2BA
+_0224BDE0: .word 0x000003DE
+_0224BDE4: .word 0x0225E284
+_0224BDE8: .word 0x0225E285
+_0224BDEC: .word 0x000003E6
+_0224BDF0:
+ ldrh r0, [r1, r0]
+ cmp r0, #4
+ bne _0224BE16
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_022467AC
+ cmp r0, #2
+ bne _0224BE16
+ ldr r0, [sp, #0x84]
+ lsl r1, r0, #1
+ add r1, r0, r1
+ asr r0, r1, #1
+ lsr r0, r0, #0x1e
+ add r0, r1, r0
+ asr r0, r0, #2
+ str r0, [sp, #0x84]
+_0224BE16:
+ cmp r4, #0
+ beq _0224BE46
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _0224BF08 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #8
+ bne _0224BE46
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD11_022467AC
+ cmp r0, #2
+ blo _0224BE46
+ ldr r0, [sp, #0x84]
+ lsl r1, r0, #1
+ add r1, r0, r1
+ asr r0, r1, #1
+ lsr r0, r0, #0x1e
+ add r0, r1, r0
+ asr r0, r0, #2
+ str r0, [sp, #0x84]
+_0224BE46:
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224BEDE
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224BEDE
+ ldr r0, [sp, #0xa0]
+ mov r1, #3
+ tst r0, r1
+ beq _0224BE9A
+ cmp r6, #0xa
+ beq _0224BE80
+ cmp r6, #0xb
+ beq _0224BE8C
+ b _0224BE9A
+_0224BE80:
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+ b _0224BE9A
+_0224BE8C:
+ ldr r1, [sp, #0x84]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ blx _s32_div_f
+ str r0, [sp, #0x84]
+_0224BE9A:
+ ldr r1, _0224BF0C ; =0x000080CF
+ ldr r0, [sp, #0xa0]
+ tst r0, r1
+ beq _0224BEB2
+ ldr r0, [sp, #8]
+ cmp r0, #0x4c
+ bne _0224BEB2
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+_0224BEB2:
+ ldr r0, [sp, #0xa0]
+ mov r1, #0x30
+ tst r0, r1
+ beq _0224BEDE
+ cmp r6, #0xa
+ beq _0224BEC4
+ cmp r6, #0xb
+ beq _0224BED4
+ b _0224BEDE
+_0224BEC4:
+ ldr r1, [sp, #0x84]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ blx _s32_div_f
+ str r0, [sp, #0x84]
+ b _0224BEDE
+_0224BED4:
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+_0224BEDE:
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x49
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0
+ beq _0224BF00
+ cmp r6, #0xa
+ bne _0224BF00
+ ldr r1, [sp, #0x84]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ blx _s32_div_f
+ str r0, [sp, #0x84]
+_0224BF00:
+ ldr r0, [sp, #0x84]
+ add r0, r0, #2
+ add sp, #0x8c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224BF08: .word 0x000003E6
+_0224BF0C: .word 0x000080CF
+
+ thumb_func_start MOD11_0224BF10
+MOD11_0224BF10: ; 0x0224BF10
+ push {r4, lr}
+ add r4, r1, #0
+ beq _0224BF36
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1c
+ sub r1, r1, r2
+ mov r0, #0x1c
+ ror r1, r0
+ add r0, r2, r1
+ mov r1, #0x64
+ sub r0, r1, r0
+ mul r0, r4
+ blx _s32_div_f
+ add r4, r0, #0
+ bne _0224BF36
+ mov r4, #1
+_0224BF36:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224BF3C
+MOD11_0224BF3C: ; 0x0224BF3C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r7, #1
+ str r1, [sp]
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ add r2, r7, #0
+ bl MOD11_0224C12C
+ add r3, r0, #0
+ ldr r1, [sp]
+ mov r0, #0xc0
+ mul r0, r1
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ add r2, r4, r0
+ add r0, r1, #0
+ add r0, #0x70
+ ldr r0, [r2, r0]
+ ldr r6, [sp, #4]
+ str r0, [sp, #0x10]
+ mov r0, #0xc0
+ mul r0, r6
+ add r6, r4, r0
+ add r0, r1, #0
+ add r0, #0x80
+ ldr r0, [r6, r0]
+ ldrh r5, [r2, r1]
+ add r1, #0x27
+ str r0, [sp, #0xc]
+ ldrb r0, [r2, r1]
+ cmp r0, #0x69
+ bne _0224BF8C
+ add r2, r7, #0
+ b _0224BF8E
+_0224BF8C:
+ mov r2, #0
+_0224BF8E:
+ cmp r3, #0x42
+ bne _0224BF96
+ mov r6, #1
+ b _0224BF98
+_0224BF96:
+ mov r6, #0
+_0224BF98:
+ mov r1, #1
+ ldr r0, [sp, #0x10]
+ lsl r1, r1, #0x14
+ tst r0, r1
+ beq _0224BFA6
+ mov r0, #1
+ b _0224BFA8
+_0224BFA6:
+ mov r0, #0
+_0224BFA8:
+ cmp r3, #0x58
+ bne _0224BFB4
+ cmp r5, #0x71
+ bne _0224BFB4
+ mov r1, #1
+ b _0224BFB6
+_0224BFB4:
+ mov r1, #0
+_0224BFB6:
+ cmp r3, #0x5b
+ bne _0224BFC2
+ cmp r5, #0x53
+ bne _0224BFC2
+ mov r3, #1
+ b _0224BFC4
+_0224BFC2:
+ mov r3, #0
+_0224BFC4:
+ lsl r0, r0, #1
+ add r5, r6, r0
+ ldr r0, [sp, #8]
+ add r0, r0, r5
+ add r2, r2, r0
+ lsl r0, r1, #1
+ add r1, r2, r0
+ lsl r0, r3, #1
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #4
+ bls _0224BFE0
+ mov r5, #4
+_0224BFE0:
+ bl FUN_0201B9EC
+ ldr r1, _0224C040 ; =0x0225E244
+ ldrb r1, [r1, r5]
+ blx _s32_div_f
+ cmp r1, #0
+ bne _0224C026
+ ldr r1, [sp]
+ ldr r2, [sp, #4]
+ add r0, r4, #0
+ mov r3, #4
+ bl MOD11_02246D84
+ cmp r0, #0
+ bne _0224C026
+ ldr r1, [sp]
+ ldr r2, [sp, #4]
+ add r0, r4, #0
+ mov r3, #0x4b
+ bl MOD11_02246D84
+ cmp r0, #0
+ bne _0224C026
+ mov r0, #7
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0xc
+ tst r0, r1
+ bne _0224C026
+ mov r1, #2
+ ldr r0, [sp, #0xc]
+ lsl r1, r1, #0xe
+ tst r0, r1
+ bne _0224C026
+ mov r7, #2
+_0224C026:
+ cmp r7, #2
+ bne _0224C038
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x61
+ bne _0224C038
+ mov r7, #3
+_0224C038:
+ add r0, r7, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224C040: .word 0x0225E244
+
+ thumb_func_start MOD11_0224C044
+MOD11_0224C044: ; 0x0224C044
+ push {r3, r4}
+ ldr r4, _0224C074 ; =0x0225E300
+ ldr r1, _0224C078 ; =0x0000FFFE
+ mov r3, #0
+_0224C04C:
+ ldrh r2, [r4]
+ cmp r0, r2
+ beq _0224C05C
+ add r4, r4, #2
+ ldrh r2, [r4]
+ add r3, r3, #1
+ cmp r2, r1
+ bne _0224C04C
+_0224C05C:
+ ldr r0, _0224C074 ; =0x0225E300
+ lsl r1, r3, #1
+ ldrh r1, [r0, r1]
+ ldr r0, _0224C078 ; =0x0000FFFE
+ cmp r1, r0
+ bne _0224C06E
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_0224C06E:
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_0224C074: .word 0x0225E300
+_0224C078: .word 0x0000FFFE
+
+ thumb_func_start MOD11_0224C07C
+MOD11_0224C07C: ; 0x0224C07C
+ push {r3, r4}
+ ldr r4, _0224C0AC ; =0x0225E300
+ ldr r1, _0224C0B0 ; =0x0000FFFF
+ mov r3, #0
+_0224C084:
+ ldrh r2, [r4]
+ cmp r0, r2
+ beq _0224C094
+ add r4, r4, #2
+ ldrh r2, [r4]
+ add r3, r3, #1
+ cmp r2, r1
+ bne _0224C084
+_0224C094:
+ ldr r0, _0224C0AC ; =0x0225E300
+ lsl r1, r3, #1
+ ldrh r1, [r0, r1]
+ ldr r0, _0224C0B0 ; =0x0000FFFF
+ cmp r1, r0
+ bne _0224C0A6
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_0224C0A6:
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_0224C0AC: .word 0x0225E300
+_0224C0B0: .word 0x0000FFFF
+
+ thumb_func_start MOD11_0224C0B4
+MOD11_0224C0B4: ; 0x0224C0B4
+ push {r4, r5}
+ lsl r1, r1, #4
+ add r4, r0, r1
+ ldr r1, _0224C0E8 ; =0x000003DE
+ ldr r3, _0224C0EC ; =0x0225E254
+ ldrh r1, [r4, r1]
+ ldr r4, _0224C0E8 ; =0x000003DE
+ mov r2, #0
+_0224C0C4:
+ ldrh r5, [r3]
+ lsl r5, r5, #4
+ add r5, r0, r5
+ ldrh r5, [r5, r4]
+ cmp r1, r5
+ beq _0224C0D8
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #6
+ blo _0224C0C4
+_0224C0D8:
+ cmp r2, #6
+ bne _0224C0E2
+ mov r0, #1
+ pop {r4, r5}
+ bx lr
+_0224C0E2:
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_0224C0E8: .word 0x000003DE
+_0224C0EC: .word 0x0225E254
+
+ thumb_func_start MOD11_0224C0F0
+MOD11_0224C0F0: ; 0x0224C0F0
+ push {r4, r5}
+ lsl r1, r1, #4
+ add r4, r0, r1
+ ldr r1, _0224C124 ; =0x000003DE
+ ldr r3, _0224C128 ; =0x0225E26C
+ ldrh r1, [r4, r1]
+ ldr r4, _0224C124 ; =0x000003DE
+ mov r2, #0
+_0224C100:
+ ldrh r5, [r3]
+ lsl r5, r5, #4
+ add r5, r0, r5
+ ldrh r5, [r5, r4]
+ cmp r1, r5
+ beq _0224C114
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #6
+ blo _0224C100
+_0224C114:
+ cmp r2, #6
+ bne _0224C11E
+ mov r0, #1
+ pop {r4, r5}
+ bx lr
+_0224C11E:
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_0224C124: .word 0x000003DE
+_0224C128: .word 0x0225E26C
+
+ thumb_func_start MOD11_0224C12C
+MOD11_0224C12C: ; 0x0224C12C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ mov r1, #0
+ add r4, r2, #0
+ bl FUN_0206E640
+ add r1, r0, #0
+ ldr r0, _0224C14C ; =0x00002120
+ ldr r0, [r5, r0]
+ bl FUN_0206EB78
+ add r1, r4, #0
+ bl FUN_0206E7DC
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224C14C: .word 0x00002120
+
+ thumb_func_start MOD11_0224C150
+MOD11_0224C150: ; 0x0224C150
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r2, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ mov r4, #0
+ cmp r6, #0
+ ble _0224C174
+_0224C162:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ cmp r5, r0
+ beq _0224C174
+ add r4, r4, #1
+ cmp r4, r6
+ blt _0224C162
+_0224C174:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0224C178
+MOD11_0224C178: ; 0x0224C178
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r0, [sp, #4]
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ sub r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #0
+ ble _0224C1FE
+_0224C194:
+ ldr r0, [sp, #0x14]
+ add r7, r0, #1
+ ldr r0, [sp, #0x10]
+ cmp r7, r0
+ bge _0224C1F2
+ ldr r0, [sp, #0x14]
+ add r0, r5, r0
+ str r0, [sp, #0xc]
+_0224C1A4:
+ ldr r1, [sp, #0xc]
+ ldr r0, _0224C204 ; =0x000021E8
+ ldrb r6, [r1, r0]
+ add r1, r5, r7
+ ldrb r4, [r1, r0]
+ lsl r0, r6, #4
+ str r1, [sp, #8]
+ add r1, r5, r0
+ ldr r0, _0224C208 ; =0x000021B4
+ ldr r0, [r1, r0]
+ lsl r1, r4, #4
+ add r2, r5, r1
+ ldr r1, _0224C208 ; =0x000021B4
+ ldr r1, [r2, r1]
+ cmp r0, r1
+ bne _0224C1EA
+ cmp r0, #1
+ beq _0224C1CC
+ mov r0, #1
+ b _0224C1CE
+_0224C1CC:
+ mov r0, #0
+_0224C1CE:
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_02244248
+ cmp r0, #0
+ beq _0224C1EA
+ ldr r1, [sp, #0xc]
+ ldr r0, _0224C204 ; =0x000021E8
+ strb r4, [r1, r0]
+ ldr r1, [sp, #8]
+ strb r6, [r1, r0]
+_0224C1EA:
+ ldr r0, [sp, #0x10]
+ add r7, r7, #1
+ cmp r7, r0
+ blt _0224C1A4
+_0224C1F2:
+ ldr r0, [sp, #0x14]
+ add r1, r0, #1
+ ldr r0, [sp, #0x18]
+ str r1, [sp, #0x14]
+ cmp r1, r0
+ blt _0224C194
+_0224C1FE:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224C204: .word 0x000021E8
+_0224C208: .word 0x000021B4
+
+ thumb_func_start MOD11_0224C20C
+MOD11_0224C20C: ; 0x0224C20C
+ push {r4, r5}
+ mov r4, #0xc0
+ mul r4, r1
+ add r5, r0, r4
+ ldr r0, _0224C24C ; =0x00002DB0
+ mov r1, #1
+ ldr r4, [r5, r0]
+ lsl r1, r1, #0x18
+ mov r3, #0
+ tst r1, r4
+ bne _0224C22C
+ add r0, #0x10
+ ldr r1, [r5, r0]
+ ldr r0, _0224C250 ; =0x200400C0
+ tst r0, r1
+ beq _0224C244
+_0224C22C:
+ ldr r4, _0224C254 ; =0x0225E2D8
+ mov r1, #0
+_0224C230:
+ ldr r0, [r4]
+ cmp r2, r0
+ bne _0224C23A
+ mov r3, #1
+ b _0224C246
+_0224C23A:
+ add r1, r1, #1
+ add r4, r4, #4
+ cmp r1, #0xa
+ blo _0224C230
+ b _0224C246
+_0224C244:
+ mov r3, #1
+_0224C246:
+ add r0, r3, #0
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_0224C24C: .word 0x00002DB0
+_0224C250: .word 0x200400C0
+_0224C254: .word 0x0225E2D8
+
+ thumb_func_start MOD11_0224C258
+MOD11_0224C258: ; 0x0224C258
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ ldr r1, [r5, #0x64]
+ str r0, [sp]
+ add r0, r5, #0
+ add r4, r2, #0
+ mov r6, #0
+ bl MOD11_02249D90
+ str r0, [sp, #0xc]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r6, #0
+ bl MOD11_02249DA4
+ str r0, [sp, #0x10]
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ add r2, r6, #0
+ bl MOD11_02249DA4
+ str r0, [sp, #8]
+ ldr r0, [sp]
+ ldr r1, [r5, #0x64]
+ bl MOD11_02230270
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x57
+ bne _0224C2F4
+ ldr r0, _0224C41C ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _0224C2F4
+ ldr r0, [r5, #0x64]
+ mov r1, #0x1c
+ mul r1, r0
+ add r2, r5, r1
+ mov r1, #0xbb
+ lsl r1, r1, #2
+ ldr r2, [r2, r1]
+ cmp r2, #0
+ beq _0224C2F4
+ ldr r1, [r5, #0x6c]
+ cmp r0, r1
+ beq _0224C2F4
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r3, _0224C420 ; =0x00002D8C
+ add r1, r5, r1
+ ldr r0, [r1, r3]
+ add r3, r3, #4
+ ldr r1, [r1, r3]
+ cmp r0, r1
+ bhs _0224C2F4
+ cmp r0, #0
+ beq _0224C2F4
+ ldr r1, [sp, #0x10]
+ neg r0, r2
+ bl MOD11_022476C0
+ ldr r1, _0224C424 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ mov r0, #0x46
+ ldr r1, [r5, #0x64]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0xd5
+ str r0, [r4]
+_0224C2F4:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x61
+ bne _0224C356
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _0224C356
+ ldr r0, _0224C41C ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _0224C356
+ ldr r0, _0224C428 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ mov r0, #0x3e
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ cmp r0, #2
+ beq _0224C356
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r3, _0224C420 ; =0x00002D8C
+ add r2, r5, r2
+ ldr r1, [r2, r3]
+ cmp r1, #0
+ beq _0224C356
+ add r1, r3, #4
+ ldr r1, [r2, r1]
+ sub r0, #0xc1
+ mul r0, r1
+ mov r1, #0xa
+ bl MOD11_022476C0
+ ldr r1, _0224C424 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ mov r0, #0x46
+ ldr r1, [r5, #0x64]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0xd6
+ str r0, [r4]
+_0224C356:
+ cmp r7, #0x2d
+ bne _0224C3AA
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _0224C420 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0224C3AA
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _0224C3AA
+ ldr r1, [r5, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r1, r5, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224C3AA
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _0224C42C ; =0x00002D90
+ add r2, r5, r2
+ ldr r2, [r2, r0]
+ sub r1, #0xc1
+ add r0, r2, #0
+ mul r0, r1
+ ldr r1, [sp, #8]
+ bl MOD11_022476C0
+ ldr r1, _0224C424 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ lsr r0, r1, #5
+ str r0, [r4]
+_0224C3AA:
+ cmp r7, #0x73
+ bne _0224C416
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ mul r1, r0
+ add r3, r5, r1
+ ldr r1, _0224C420 ; =0x00002D8C
+ ldr r2, [r3, r1]
+ cmp r2, #0
+ beq _0224C416
+ add r1, #0x2c
+ ldrh r1, [r3, r1]
+ cmp r1, #0
+ bne _0224C416
+ add r1, r5, r0
+ ldr r0, _0224C430 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl FUN_0206A92C
+ ldr r1, [sp, #4]
+ lsl r1, r1, #3
+ add r2, r5, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ bne _0224C416
+ ldr r1, [r5, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r2, r5, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _0224C3FE
+ add r0, #8
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0224C416
+_0224C3FE:
+ ldr r0, _0224C428 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224C434 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r1, r0
+ beq _0224C416
+ mov r1, #0xd8
+ str r1, [r4]
+ add r6, r0, #0
+_0224C416:
+ add r0, r6, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224C41C: .word 0x0000213C
+_0224C420: .word 0x00002D8C
+_0224C424: .word 0x0000215C
+_0224C428: .word 0x00003044
+_0224C42C: .word 0x00002D90
+_0224C430: .word 0x0000219C
+_0224C434: .word 0x000003E9
+
+ thumb_func_start MOD11_0224C438
+MOD11_0224C438: ; 0x0224C438
+ push {r4, r5, r6, lr}
+ add r6, r2, #0
+ add r4, r1, #0
+ add r1, r6, #0
+ add r5, r0, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2e
+ bne _0224C46A
+ cmp r6, #0xff
+ beq _0224C46A
+ ldr r0, _0224C46C ; =0x00002D6C
+ add r1, r5, r0
+ mov r0, #0xc0
+ mul r0, r4
+ add r0, r1, r0
+ lsl r1, r4, #1
+ add r2, r5, r1
+ ldr r1, _0224C470 ; =0x000030BC
+ ldrh r2, [r2, r1]
+ ldrb r1, [r0, r2]
+ cmp r1, #0
+ beq _0224C46A
+ sub r1, r1, #1
+ strb r1, [r0, r2]
+_0224C46A:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224C46C: .word 0x00002D6C
+_0224C470: .word 0x000030BC
+
+ thumb_func_start MOD11_0224C474
+MOD11_0224C474: ; 0x0224C474
+ push {r4, lr}
+ add r4, r1, #0
+ cmp r2, #0xc
+ bhi _0224C528
+ add r1, r2, r2
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224C488: ; jump table
+ .short _0224C4A2 - _0224C488 - 2 ; case 0
+ .short _0224C4B4 - _0224C488 - 2 ; case 1
+ .short _0224C4CA - _0224C488 - 2 ; case 2
+ .short _0224C4D2 - _0224C488 - 2 ; case 3
+ .short _0224C4DA - _0224C488 - 2 ; case 4
+ .short _0224C4E0 - _0224C488 - 2 ; case 5
+ .short _0224C4E6 - _0224C488 - 2 ; case 6
+ .short _0224C4F2 - _0224C488 - 2 ; case 7
+ .short _0224C4FE - _0224C488 - 2 ; case 8
+ .short _0224C508 - _0224C488 - 2 ; case 9
+ .short _0224C510 - _0224C488 - 2 ; case 10
+ .short _0224C516 - _0224C488 - 2 ; case 11
+ .short _0224C51E - _0224C488 - 2 ; case 12
+_0224C4A2:
+ add r1, r3, #0
+ bl MOD11_02230270
+ lsl r0, r0, #2
+ add r1, r4, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+_0224C4B4:
+ add r1, r3, #0
+ bl MOD11_02230270
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1d
+ pop {r4, pc}
+_0224C4CA:
+ ldr r0, _0224C530 ; =0x0000219C
+ add r1, r4, r3
+ ldrb r0, [r1, r0]
+ pop {r4, pc}
+_0224C4D2:
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ pop {r4, pc}
+_0224C4DA:
+ ldr r0, _0224C534 ; =0x00003109
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+_0224C4E0:
+ ldr r0, _0224C538 ; =0x0000311D
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+_0224C4E6:
+ lsl r0, r3, #2
+ add r1, r4, r0
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+_0224C4F2:
+ lsl r0, r3, #2
+ add r1, r4, r0
+ mov r0, #0x59
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+_0224C4FE:
+ lsl r0, r3, #4
+ add r1, r4, r0
+ ldr r0, _0224C53C ; =0x000021A8
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+_0224C508:
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+_0224C510:
+ ldr r0, _0224C540 ; =0x00003108
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+_0224C516:
+ ldr r0, _0224C544 ; =0x000003DA
+ add r1, r4, r3
+ ldrb r0, [r1, r0]
+ pop {r4, pc}
+_0224C51E:
+ lsl r0, r3, #4
+ add r1, r4, r0
+ ldr r0, _0224C548 ; =0x000021B0
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+_0224C528:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_0224C530: .word 0x0000219C
+_0224C534: .word 0x00003109
+_0224C538: .word 0x0000311D
+_0224C53C: .word 0x000021A8
+_0224C540: .word 0x00003108
+_0224C544: .word 0x000003DA
+_0224C548: .word 0x000021B0
+
+ thumb_func_start MOD11_0224C54C
+MOD11_0224C54C: ; 0x0224C54C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r4, [sp, #0x10]
+ cmp r2, #0xb
+ bhi _0224C5CA
+ add r1, r2, r2
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224C562: ; jump table
+ .short _0224C57A - _0224C562 - 2 ; case 0
+ .short _0224C58C - _0224C562 - 2 ; case 1
+ .short _0224C5AA - _0224C562 - 2 ; case 2
+ .short _0224C5B2 - _0224C562 - 2 ; case 3
+ .short _0224C5CA - _0224C562 - 2 ; case 4
+ .short _0224C5CA - _0224C562 - 2 ; case 5
+ .short _0224C5CA - _0224C562 - 2 ; case 6
+ .short _0224C5CA - _0224C562 - 2 ; case 7
+ .short _0224C5CA - _0224C562 - 2 ; case 8
+ .short _0224C5BA - _0224C562 - 2 ; case 9
+ .short _0224C5CA - _0224C562 - 2 ; case 10
+ .short _0224C5C2 - _0224C562 - 2 ; case 11
+_0224C57A:
+ add r1, r3, #0
+ bl MOD11_02230270
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ str r4, [r1, r0]
+ pop {r3, r4, r5, pc}
+_0224C58C:
+ add r1, r3, #0
+ bl MOD11_02230270
+ mov r1, #0x71
+ lsl r1, r1, #2
+ add r1, r5, r1
+ lsl r0, r0, #3
+ ldr r3, [r1, r0]
+ ldr r2, _0224C5D0 ; =0xFFFF8FFF
+ and r3, r2
+ lsl r2, r4, #0x1d
+ lsr r2, r2, #0x11
+ orr r2, r3
+ str r2, [r1, r0]
+ pop {r3, r4, r5, pc}
+_0224C5AA:
+ ldr r0, _0224C5D4 ; =0x0000219C
+ add r1, r5, r3
+ strb r4, [r1, r0]
+ pop {r3, r4, r5, pc}
+_0224C5B2:
+ mov r0, #0x15
+ lsl r0, r0, #4
+ str r4, [r5, r0]
+ pop {r3, r4, r5, pc}
+_0224C5BA:
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ strb r4, [r5, r0]
+ pop {r3, r4, r5, pc}
+_0224C5C2:
+ ldr r0, _0224C5D8 ; =0x000003DA
+ add r1, r5, r3
+ strb r4, [r1, r0]
+ pop {r3, r4, r5, pc}
+_0224C5CA:
+ bl ErrorHandling
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224C5D0: .word 0xFFFF8FFF
+_0224C5D4: .word 0x0000219C
+_0224C5D8: .word 0x000003DA
+
+ thumb_func_start MOD11_0224C5DC
+MOD11_0224C5DC: ; 0x0224C5DC
+ push {r4, lr}
+ add r3, r0, #0
+ add r3, #0x88
+ str r1, [r3]
+ add r3, r0, #0
+ ldr r1, _0224C640 ; =0x007FFFFF
+ add r4, r2, #0
+ and r4, r1
+ add r3, #0x8c
+ str r4, [r3]
+ lsl r1, r1, #0x17
+ add r3, r2, #0
+ and r3, r1
+ add r1, r0, #0
+ add r1, #0x90
+ str r3, [r1]
+ mov r3, #1
+ lsl r3, r3, #0x1e
+ add r1, r2, #0
+ tst r1, r3
+ beq _0224C60E
+ ldr r1, [r0, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ b _0224C62E
+_0224C60E:
+ lsl r1, r3, #1
+ tst r1, r2
+ beq _0224C61C
+ ldr r1, [r0, #0x6c]
+ add r0, #0x94
+ str r1, [r0]
+ b _0224C62E
+_0224C61C:
+ lsr r1, r3, #1
+ tst r1, r2
+ bne _0224C628
+ lsr r1, r3, #2
+ tst r1, r2
+ beq _0224C62E
+_0224C628:
+ mov r1, #0
+ add r0, #0x94
+ str r1, [r0]
+_0224C62E:
+ cmp r4, #0x91
+ blo _0224C636
+ bl ErrorHandling
+_0224C636:
+ ldr r0, _0224C644 ; =0x0225E4C8
+ lsl r1, r4, #2
+ ldr r0, [r0, r1]
+ pop {r4, pc}
+ nop
+_0224C640: .word 0x007FFFFF
+_0224C644: .word 0x0225E4C8
+
+ thumb_func_start MOD11_0224C648
+MOD11_0224C648: ; 0x0224C648
+ push {r3, r4, r5, lr}
+ ldr r1, _0224C6D0 ; =0x0000213C
+ add r5, r2, #0
+ ldr r2, [r0, r1]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ add r1, r2, #0
+ ldr r4, [sp, #0x14]
+ tst r1, r0
+ bne _0224C672
+ lsl r0, r0, #4
+ tst r0, r2
+ bne _0224C672
+ cmp r3, #0
+ beq _0224C672
+ add r0, r3, #0
+ mul r0, r5
+ mov r1, #0xa
+ bl MOD11_022476C0
+ add r3, r0, #0
+_0224C672:
+ cmp r5, #0
+ beq _0224C680
+ cmp r5, #5
+ beq _0224C692
+ cmp r5, #0x14
+ beq _0224C6B0
+ b _0224C6CC
+_0224C680:
+ ldr r1, [r4]
+ mov r0, #8
+ orr r1, r0
+ mov r0, #4
+ bic r1, r0
+ mov r0, #2
+ bic r1, r0
+ str r1, [r4]
+ b _0224C6CC
+_0224C692:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _0224C6CC
+ ldr r1, [r4]
+ mov r0, #2
+ tst r0, r1
+ beq _0224C6A8
+ mov r0, #2
+ bic r1, r0
+ str r1, [r4]
+ b _0224C6CC
+_0224C6A8:
+ mov r0, #4
+ orr r0, r1
+ str r0, [r4]
+ b _0224C6CC
+_0224C6B0:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _0224C6CC
+ ldr r1, [r4]
+ mov r0, #4
+ tst r0, r1
+ beq _0224C6C6
+ mov r0, #4
+ bic r1, r0
+ str r1, [r4]
+ b _0224C6CC
+_0224C6C6:
+ mov r0, #2
+ orr r0, r1
+ str r0, [r4]
+_0224C6CC:
+ add r0, r3, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224C6D0: .word 0x0000213C
+
+ thumb_func_start MOD11_0224C6D4
+MOD11_0224C6D4: ; 0x0224C6D4
+ lsl r1, r1, #4
+ add r2, r0, r1
+ ldr r1, _0224C738 ; =0x000003DE
+ ldrh r3, [r2, r1]
+ cmp r3, #0x9b
+ bgt _0224C706
+ cmp r3, #0x97
+ blt _0224C6EC
+ beq _0224C726
+ cmp r3, #0x9b
+ beq _0224C726
+ b _0224C732
+_0224C6EC:
+ cmp r3, #0x27
+ bgt _0224C6F8
+ bge _0224C726
+ cmp r3, #0x1a
+ beq _0224C726
+ b _0224C732
+_0224C6F8:
+ cmp r3, #0x4b
+ bgt _0224C700
+ beq _0224C726
+ b _0224C732
+_0224C700:
+ cmp r3, #0x91
+ beq _0224C726
+ b _0224C732
+_0224C706:
+ mov r2, #1
+ lsl r2, r2, #8
+ cmp r3, r2
+ bgt _0224C716
+ bge _0224C726
+ cmp r3, #0xff
+ beq _0224C726
+ b _0224C732
+_0224C716:
+ add r1, r2, #7
+ cmp r3, r1
+ bgt _0224C720
+ beq _0224C726
+ b _0224C732
+_0224C720:
+ add r2, #0x11
+ cmp r3, r2
+ bne _0224C732
+_0224C726:
+ ldr r1, _0224C73C ; =0x0000213C
+ ldr r1, [r0, r1]
+ mov r0, #2
+ lsl r0, r0, #8
+ and r0, r1
+ bx lr
+_0224C732:
+ mov r0, #1
+ bx lr
+ nop
+_0224C738: .word 0x000003DE
+_0224C73C: .word 0x0000213C
+
+ thumb_func_start MOD11_0224C740
+MOD11_0224C740: ; 0x0224C740
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ cmp r2, #0x1b
+ bne _0224C756
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ ldr r0, _0224C80C ; =0x00002D64
+ ldrb r4, [r1, r0]
+ b _0224C76A
+_0224C756:
+ cmp r2, #0x1c
+ bne _0224C766
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ ldr r0, _0224C810 ; =0x00002D65
+ ldrb r4, [r1, r0]
+ b _0224C76A
+_0224C766:
+ bl ErrorHandling
+_0224C76A:
+ mov r0, #0xc0
+ mul r0, r6
+ mov r2, #0xb5
+ add r1, r5, r0
+ lsl r2, r2, #6
+ ldrh r3, [r1, r2]
+ ldr r0, _0224C814 ; =0x000001ED
+ cmp r3, r0
+ bne _0224C806
+ add r0, r2, #0
+ add r0, #0x27
+ ldrb r0, [r1, r0]
+ cmp r0, #0x79
+ bne _0224C806
+ add r2, #0x78
+ ldrh r1, [r1, r2]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ sub r0, #0x7d
+ cmp r0, #0xf
+ bhi _0224C804
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224C7A4: ; jump table
+ .short _0224C7C4 - _0224C7A4 - 2 ; case 0
+ .short _0224C7C8 - _0224C7A4 - 2 ; case 1
+ .short _0224C7CC - _0224C7A4 - 2 ; case 2
+ .short _0224C7D0 - _0224C7A4 - 2 ; case 3
+ .short _0224C7D4 - _0224C7A4 - 2 ; case 4
+ .short _0224C7D8 - _0224C7A4 - 2 ; case 5
+ .short _0224C7DC - _0224C7A4 - 2 ; case 6
+ .short _0224C7E0 - _0224C7A4 - 2 ; case 7
+ .short _0224C7E4 - _0224C7A4 - 2 ; case 8
+ .short _0224C7E8 - _0224C7A4 - 2 ; case 9
+ .short _0224C7EC - _0224C7A4 - 2 ; case 10
+ .short _0224C7F0 - _0224C7A4 - 2 ; case 11
+ .short _0224C7F4 - _0224C7A4 - 2 ; case 12
+ .short _0224C7F8 - _0224C7A4 - 2 ; case 13
+ .short _0224C7FC - _0224C7A4 - 2 ; case 14
+ .short _0224C800 - _0224C7A4 - 2 ; case 15
+_0224C7C4:
+ mov r4, #0xa
+ b _0224C806
+_0224C7C8:
+ mov r4, #0xb
+ b _0224C806
+_0224C7CC:
+ mov r4, #0xd
+ b _0224C806
+_0224C7D0:
+ mov r4, #0xc
+ b _0224C806
+_0224C7D4:
+ mov r4, #0xf
+ b _0224C806
+_0224C7D8:
+ mov r4, #1
+ b _0224C806
+_0224C7DC:
+ mov r4, #3
+ b _0224C806
+_0224C7E0:
+ mov r4, #4
+ b _0224C806
+_0224C7E4:
+ mov r4, #2
+ b _0224C806
+_0224C7E8:
+ mov r4, #0xe
+ b _0224C806
+_0224C7EC:
+ mov r4, #6
+ b _0224C806
+_0224C7F0:
+ mov r4, #5
+ b _0224C806
+_0224C7F4:
+ mov r4, #7
+ b _0224C806
+_0224C7F8:
+ mov r4, #0x10
+ b _0224C806
+_0224C7FC:
+ mov r4, #0x11
+ b _0224C806
+_0224C800:
+ mov r4, #8
+ b _0224C806
+_0224C804:
+ mov r4, #0
+_0224C806:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0224C80C: .word 0x00002D64
+_0224C810: .word 0x00002D65
+_0224C814: .word 0x000001ED
+
+ thumb_func_start MOD11_0224C818
+MOD11_0224C818: ; 0x0224C818
+ lsl r1, r1, #3
+ add r3, r0, r1
+ mov r2, #0
+ mov r0, #0x37
+ add r1, r2, #0
+ lsl r0, r0, #4
+_0224C824:
+ add r2, r2, #1
+ strh r1, [r3, r0]
+ add r3, r3, #2
+ cmp r2, #4
+ blt _0224C824
+ bx lr
+
+ thumb_func_start MOD11_0224C830
+MOD11_0224C830: ; 0x0224C830
+ add r1, r0, r1
+ mov r0, #0x39
+ mov r2, #0
+ lsl r0, r0, #4
+ strb r2, [r1, r0]
+ bx lr
+
+ thumb_func_start MOD11_0224C83C
+MOD11_0224C83C: ; 0x0224C83C
+ lsl r1, r1, #1
+ add r1, r0, r1
+ mov r0, #0xe5
+ mov r2, #0
+ lsl r0, r0, #2
+ strh r2, [r1, r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0224C84C
+MOD11_0224C84C: ; 0x0224C84C
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ add r3, r0, #0
+ mov r2, #0xc0
+ add r5, r1, #0
+ mul r1, r2
+ ldr r6, _0224C8BC ; =0x00002D67
+ add r1, r3, r1
+ ldrb r1, [r1, r6]
+ mov r0, #0xff
+ cmp r1, #0x3b
+ beq _0224C890
+ cmp r1, #0x24
+ beq _0224C890
+ cmp r1, #0x79
+ beq _0224C890
+ mul r2, r4
+ add r2, r3, r2
+ ldrb r2, [r2, r6]
+ cmp r2, #0x3b
+ beq _0224C890
+ cmp r2, #0x24
+ beq _0224C890
+ cmp r2, #0x79
+ beq _0224C890
+ bl FUN_0201B9EC
+ mov r1, #1
+ tst r0, r1
+ beq _0224C88C
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_0224C88C:
+ add r0, r5, #0
+ pop {r4, r5, r6, pc}
+_0224C890:
+ cmp r1, #0x3b
+ beq _0224C8A0
+ cmp r1, #0x24
+ beq _0224C8A0
+ cmp r1, #0x79
+ beq _0224C8A0
+ add r0, r5, #0
+ pop {r4, r5, r6, pc}
+_0224C8A0:
+ mov r1, #0xc0
+ mul r1, r4
+ add r2, r3, r1
+ ldr r1, _0224C8BC ; =0x00002D67
+ ldrb r1, [r2, r1]
+ cmp r1, #0x3b
+ beq _0224C8B8
+ cmp r1, #0x24
+ beq _0224C8B8
+ cmp r1, #0x79
+ beq _0224C8B8
+ add r0, r4, #0
+_0224C8B8:
+ pop {r4, r5, r6, pc}
+ nop
+_0224C8BC: .word 0x00002D67
+
+ thumb_func_start MOD11_0224C8C0
+MOD11_0224C8C0: ; 0x0224C8C0
+ lsl r1, r1, #4
+ add r1, r0, r1
+ ldr r0, _0224C8E4 ; =0x000003DE
+ ldr r3, _0224C8E8 ; =0x0225E260
+ ldrh r1, [r1, r0]
+ mov r2, #0
+_0224C8CC:
+ ldrh r0, [r3]
+ cmp r0, r1
+ bne _0224C8D6
+ mov r0, #1
+ bx lr
+_0224C8D6:
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #6
+ blo _0224C8CC
+ mov r0, #0
+ bx lr
+ nop
+_0224C8E4: .word 0x000003DE
+_0224C8E8: .word 0x0225E260
+
+ thumb_func_start MOD11_0224C8EC
+MOD11_0224C8EC: ; 0x0224C8EC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r2, #0
+ ldr r2, _0224CA58 ; =0x00000137
+ add r7, r0, #0
+ add r4, r1, #0
+ cmp r3, r2
+ bgt _0224C904
+ blt _0224C8FE
+ b _0224CA00
+_0224C8FE:
+ cmp r3, #0xed
+ beq _0224C9A6
+ b _0224CA52
+_0224C904:
+ add r0, r2, #0
+ add r0, #0x34
+ cmp r3, r0
+ bgt _0224C914
+ add r2, #0x34
+ cmp r3, r2
+ beq _0224C91C
+ b _0224CA52
+_0224C914:
+ add r2, #0x8a
+ cmp r3, r2
+ beq _0224C928
+ b _0224CA52
+_0224C91C:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02249E04
+ add r5, r0, #0
+ b _0224CA54
+_0224C928:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02249D90
+ sub r0, #0x7d
+ cmp r0, #0xf
+ bhi _0224C9A2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224C942: ; jump table
+ .short _0224C982 - _0224C942 - 2 ; case 0
+ .short _0224C986 - _0224C942 - 2 ; case 1
+ .short _0224C98E - _0224C942 - 2 ; case 2
+ .short _0224C98A - _0224C942 - 2 ; case 3
+ .short _0224C996 - _0224C942 - 2 ; case 4
+ .short _0224C962 - _0224C942 - 2 ; case 5
+ .short _0224C96A - _0224C942 - 2 ; case 6
+ .short _0224C96E - _0224C942 - 2 ; case 7
+ .short _0224C966 - _0224C942 - 2 ; case 8
+ .short _0224C992 - _0224C942 - 2 ; case 9
+ .short _0224C976 - _0224C942 - 2 ; case 10
+ .short _0224C972 - _0224C942 - 2 ; case 11
+ .short _0224C97A - _0224C942 - 2 ; case 12
+ .short _0224C99A - _0224C942 - 2 ; case 13
+ .short _0224C99E - _0224C942 - 2 ; case 14
+ .short _0224C97E - _0224C942 - 2 ; case 15
+_0224C962:
+ mov r5, #1
+ b _0224CA54
+_0224C966:
+ mov r5, #2
+ b _0224CA54
+_0224C96A:
+ mov r5, #3
+ b _0224CA54
+_0224C96E:
+ mov r5, #4
+ b _0224CA54
+_0224C972:
+ mov r5, #5
+ b _0224CA54
+_0224C976:
+ mov r5, #6
+ b _0224CA54
+_0224C97A:
+ mov r5, #7
+ b _0224CA54
+_0224C97E:
+ mov r5, #8
+ b _0224CA54
+_0224C982:
+ mov r5, #0xa
+ b _0224CA54
+_0224C986:
+ mov r5, #0xb
+ b _0224CA54
+_0224C98A:
+ mov r5, #0xc
+ b _0224CA54
+_0224C98E:
+ mov r5, #0xd
+ b _0224CA54
+_0224C992:
+ mov r5, #0xe
+ b _0224CA54
+_0224C996:
+ mov r5, #0xf
+ b _0224CA54
+_0224C99A:
+ mov r5, #0x10
+ b _0224CA54
+_0224C99E:
+ mov r5, #0x11
+ b _0224CA54
+_0224C9A2:
+ mov r5, #0
+ b _0224CA54
+_0224C9A6:
+ ldr r0, _0224CA5C ; =0x00002D54
+ add r1, r4, r0
+ mov r0, #0xc0
+ mul r0, r6
+ ldr r4, [r1, r0]
+ lsl r0, r4, #2
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r5, r0, #0x1a
+ lsl r0, r4, #7
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r3, r0, #0x1b
+ lsl r0, r4, #0xc
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r2, r0, #0x1c
+ lsl r0, r4, #0x11
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r1, r0, #0x1d
+ lsl r0, r4, #0x1b
+ lsl r4, r4, #0x16
+ lsr r4, r4, #0x1b
+ lsr r6, r0, #0x1b
+ mov r0, #1
+ lsl r4, r4, #0x1f
+ and r0, r6
+ lsr r4, r4, #0x1e
+ orr r0, r4
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ add r1, r5, #0
+ orr r1, r0
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0x3f
+ blx _s32_div_f
+ add r5, r0, #1
+ cmp r5, #9
+ blt _0224CA54
+ add r5, r5, #1
+ b _0224CA54
+_0224CA00:
+ mov r2, #0xd
+ str r2, [sp]
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224CA54
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224CA54
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ ldr r1, _0224CA60 ; =0x000080FF
+ tst r1, r0
+ beq _0224CA54
+ mov r1, #3
+ tst r1, r0
+ beq _0224CA38
+ mov r5, #0xb
+_0224CA38:
+ mov r1, #0xc
+ tst r1, r0
+ beq _0224CA40
+ mov r5, #5
+_0224CA40:
+ mov r1, #0x30
+ tst r1, r0
+ beq _0224CA48
+ mov r5, #0xa
+_0224CA48:
+ mov r1, #0xc0
+ tst r0, r1
+ beq _0224CA54
+ mov r5, #0xf
+ b _0224CA54
+_0224CA52:
+ mov r5, #0
+_0224CA54:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224CA58: .word 0x00000137
+_0224CA5C: .word 0x00002D54
+_0224CA60: .word 0x000080FF
+
+ thumb_func_start MOD11_0224CA64
+MOD11_0224CA64: ; 0x0224CA64
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r1, #0x69
+ mov r0, #5
+ lsl r1, r1, #2
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r2, #0x69
+ mov r0, #0
+ add r1, r4, #0
+ lsl r2, r2, #2
+ blx MIi_CpuClearFast
+ mov r0, #0x65
+ ldrb r1, [r5]
+ lsl r0, r0, #2
+ strb r1, [r4, r0]
+ ldrb r1, [r5, #1]
+ add r0, r0, #1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CA94
+MOD11_0224CA94: ; 0x0224CA94
+ push {r4, r5, r6, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _0224CB2C
+ sub r1, #0x8b
+ ldrb r1, [r4, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _0224CAC0
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _0224CB2C
+_0224CAC0:
+ ldr r0, _0224CB30 ; =0x00000195
+ ldr r1, _0224CB34 ; =0x0225E818
+ ldrb r2, [r4, r0]
+ sub r0, r0, #1
+ ldrb r1, [r1, r2]
+ str r1, [sp]
+ mov r1, #5
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp, #8]
+ ldrb r0, [r4, r0]
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ str r6, [sp, #0x10]
+ bl MOD11_02230078
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ bl MOD11_022300CC
+ str r0, [sp, #0x20]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ add r0, sp, #0
+ bl MOD08_02229918
+ add r1, r4, #0
+ add r1, #0x88
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0x64
+ bl MOD08_0222A00C
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #2
+ bl MOD08_0222A018
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD08_02229FE4
+ add r4, #0x88
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_0222A008
+_0224CB2C:
+ add sp, #0x28
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224CB30: .word 0x00000195
+_0224CB34: .word 0x0225E818
+
+ thumb_func_start MOD11_0224CB38
+MOD11_0224CB38: ; 0x0224CB38
+ push {r3, lr}
+ add r2, r1, #0
+ add r2, #0x94
+ ldrb r2, [r2]
+ cmp r2, #0
+ beq _0224CB4C
+ lsl r3, r2, #2
+ ldr r2, _0224CB50 ; =0x0225E70C
+ ldr r2, [r2, r3]
+ blx r2
+_0224CB4C:
+ pop {r3, pc}
+ nop
+_0224CB50: .word 0x0225E70C
+
+ thumb_func_start MOD11_0224CB54
+MOD11_0224CB54: ; 0x0224CB54
+ push {r4, lr}
+ add r4, r1, #0
+ cmp r2, #2
+ beq _0224CB64
+ add r0, r4, #0
+ add r0, #0x28
+ bl MOD11_02257030
+_0224CB64:
+ add r0, r4, #0
+ bl MOD11_0225468C
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CB74
+MOD11_0224CB74: ; 0x0224CB74
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CB78
+MOD11_0224CB78: ; 0x0224CB78
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0224D550
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0224CB98
+MOD11_0224CB98: ; 0x0224CB98
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224D574
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CBAC
+MOD11_0224CBAC: ; 0x0224CBAC
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224D738
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CBC0
+MOD11_0224CBC0: ; 0x0224CBC0
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224D87C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CBD4
+MOD11_0224CBD4: ; 0x0224CBD4
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DA2C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CBE8
+MOD11_0224CBE8: ; 0x0224CBE8
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DAE8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CBFC
+MOD11_0224CBFC: ; 0x0224CBFC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x20]
+ bl FUN_02007534
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #7
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CC20
+MOD11_0224CC20: ; 0x0224CC20
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DB4C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC34
+MOD11_0224CC34: ; 0x0224CC34
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DCE4
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC48
+MOD11_0224CC48: ; 0x0224CC48
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224DD44
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC58
+MOD11_0224CC58: ; 0x0224CC58
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DD8C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC6C
+MOD11_0224CC6C: ; 0x0224CC6C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DE50
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC80
+MOD11_0224CC80: ; 0x0224CC80
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224DF18
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC90
+MOD11_0224CC90: ; 0x0224CC90
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r4, #0
+ add r6, #0x94
+ add r1, r6, #0
+ add r1, #0x29
+ ldrb r1, [r1]
+ add r5, r0, #0
+ bl MOD11_022312B8
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0224DF60
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CCB8
+MOD11_0224CCB8: ; 0x0224CCB8
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E034
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CCCC
+MOD11_0224CCCC: ; 0x0224CCCC
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E0A4
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CCE0
+MOD11_0224CCE0: ; 0x0224CCE0
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E130
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CCF4
+MOD11_0224CCF4: ; 0x0224CCF4
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E1DC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CD08
+MOD11_0224CD08: ; 0x0224CD08
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E248
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CD1C
+MOD11_0224CD1C: ; 0x0224CD1C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E28C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CD30
+MOD11_0224CD30: ; 0x0224CD30
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E2F4
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CD44
+MOD11_0224CD44: ; 0x0224CD44
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E344
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CD58
+MOD11_0224CD58: ; 0x0224CD58
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x20]
+ mov r1, #6
+ bl FUN_0200782C
+ cmp r0, #1
+ bne _0224CD7A
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x17
+ bl MOD11_022567B8
+ b _0224CD82
+_0224CD7A:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224E3E0
+_0224CD82:
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CD8C
+MOD11_0224CD8C: ; 0x0224CD8C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E410
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CDA0
+MOD11_0224CDA0: ; 0x0224CDA0
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E49C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CDB4
+MOD11_0224CDB4: ; 0x0224CDB4
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E510
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CDC8
+MOD11_0224CDC8: ; 0x0224CDC8
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E5F8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CDDC
+MOD11_0224CDDC: ; 0x0224CDDC
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224E628
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CDEC
+MOD11_0224CDEC: ; 0x0224CDEC
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E65C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE00
+MOD11_0224CE00: ; 0x0224CE00
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E6FC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE14
+MOD11_0224CE14: ; 0x0224CE14
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E734
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE28
+MOD11_0224CE28: ; 0x0224CE28
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E790
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE3C
+MOD11_0224CE3C: ; 0x0224CE3C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E7E8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE50
+MOD11_0224CE50: ; 0x0224CE50
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224E840
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE60
+MOD11_0224CE60: ; 0x0224CE60
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E894
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE74
+MOD11_0224CE74: ; 0x0224CE74
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224E8EC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE84
+MOD11_0224CE84: ; 0x0224CE84
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E924
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE98
+MOD11_0224CE98: ; 0x0224CE98
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E9C0
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CEAC
+MOD11_0224CEAC: ; 0x0224CEAC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ mov r2, #0x65
+ add r6, #0x94
+ lsl r2, r2, #2
+ str r1, [sp, #4]
+ ldrb r1, [r1, r2]
+ ldrb r2, [r6, #1]
+ str r0, [sp]
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1c
+ bl MOD11_02230014
+ add r7, r0, #0
+ mov r0, #2
+ ldr r1, [r6, #0x1c]
+ lsl r0, r0, #0x14
+ tst r0, r1
+ bne _0224CF14
+ add r0, r6, #0
+ add r5, r6, #0
+ str r0, [sp, #8]
+ add r0, #0x16
+ mov r4, #0
+ add r5, #0xe
+ str r0, [sp, #8]
+_0224CEE2:
+ add r0, r4, #0
+ bl FUN_0206A92C
+ ldrb r1, [r6, #1]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1c
+ tst r0, r1
+ bne _0224CF0C
+ add r1, r4, #0
+ add r0, r7, #0
+ add r1, #0x36
+ add r2, r5, #0
+ bl FUN_02067830
+ ldr r2, [sp, #8]
+ add r1, r4, #0
+ add r0, r7, #0
+ add r1, #0x3a
+ add r2, r2, r4
+ bl FUN_02067830
+_0224CF0C:
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _0224CEE2
+_0224CF14:
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ bl FUN_0206A92C
+ ldr r1, [r6, #8]
+ tst r0, r1
+ bne _0224CF30
+ add r2, r6, #0
+ add r0, r7, #0
+ mov r1, #6
+ add r2, #0xc
+ bl FUN_02067830
+_0224CF30:
+ add r0, r7, #0
+ mov r1, #0xa2
+ add r2, r6, #2
+ bl FUN_02067830
+ add r0, r7, #0
+ mov r1, #0x9f
+ add r2, r6, #4
+ bl FUN_02067830
+ mov r2, #0x65
+ ldr r1, [sp, #4]
+ lsl r2, r2, #2
+ ldrb r1, [r1, r2]
+ ldrb r2, [r6]
+ ldr r0, [sp]
+ bl MOD11_022567B8
+ ldr r0, [sp, #4]
+ bl MOD11_0224D548
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CF60
+MOD11_0224CF60: ; 0x0224CF60
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0222FF74
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_02230094
+ ldr r2, _0224CFB0 ; =0x00000196
+ ldrb r1, [r4, r2]
+ cmp r1, #0
+ bne _0224CF94
+ mov r1, #8
+ and r1, r6
+ bne _0224CF8C
+ cmp r1, #0
+ bne _0224CF94
+ sub r1, r2, #1
+ ldrb r1, [r4, r1]
+ cmp r1, #4
+ beq _0224CF94
+_0224CF8C:
+ ldr r1, _0224CFB4 ; =0xFFFFF300
+ mov r2, #0
+ bl MOD11_02259098
+_0224CF94:
+ mov r1, #0x65
+ add r2, r4, #0
+ lsl r1, r1, #2
+ add r2, #0x94
+ ldrb r1, [r4, r1]
+ ldrb r2, [r2]
+ add r0, r5, #0
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ nop
+_0224CFB0: .word 0x00000196
+_0224CFB4: .word 0xFFFFF300
+
+ thumb_func_start MOD11_0224CFB8
+MOD11_0224CFB8: ; 0x0224CFB8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x28
+ bl MOD11_02257238
+ add r0, r4, #0
+ bl MOD11_0225468C
+ mov r1, #0x65
+ add r2, r4, #0
+ lsl r1, r1, #2
+ add r2, #0x94
+ ldrb r1, [r4, r1]
+ ldrb r2, [r2]
+ add r0, r5, #0
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CFE8
+MOD11_0224CFE8: ; 0x0224CFE8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r1, #0
+ mov r1, #0
+ str r1, [sp, #8]
+ mov r1, #0x65
+ lsl r1, r1, #2
+ add r4, r7, #0
+ ldrb r1, [r7, r1]
+ str r0, [sp]
+ add r4, #0x94
+ bl MOD11_0222FFC8
+ mov r5, #0
+ str r0, [sp, #4]
+ cmp r0, #0
+ ble _0224D04A
+_0224D00A:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r7, r1]
+ ldr r0, [sp]
+ add r2, r5, #0
+ bl MOD11_02230014
+ ldrb r1, [r4, #1]
+ add r6, r0, #0
+ cmp r1, #0x68
+ bne _0224D024
+ mov r0, #0
+ b _0224D02C
+_0224D024:
+ mov r1, #0xa
+ mov r2, #0
+ bl FUN_020671BC
+_0224D02C:
+ ldrh r1, [r4, #2]
+ cmp r1, #0xd7
+ bne _0224D038
+ bne _0224D042
+ cmp r0, #0x2b
+ beq _0224D042
+_0224D038:
+ add r0, r6, #0
+ mov r1, #0x9f
+ add r2, sp, #8
+ bl FUN_02067830
+_0224D042:
+ ldr r0, [sp, #4]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0224D00A
+_0224D04A:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r7, r1]
+ ldrb r2, [r4]
+ ldr r0, [sp]
+ bl MOD11_022567B8
+ add r0, r7, #0
+ bl MOD11_0224D548
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224D064
+MOD11_0224D064: ; 0x0224D064
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EA74
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D078
+MOD11_0224D078: ; 0x0224D078
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EAAC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D08C
+MOD11_0224D08C: ; 0x0224D08C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x10]
+ add r5, r1, #0
+ ldr r0, _0224D180 ; =0x00000195
+ add r4, r5, #0
+ ldrb r1, [r5, r0]
+ mov r0, #1
+ add r4, #0x94
+ tst r0, r1
+ beq _0224D0A6
+ mov r6, #2
+ b _0224D0A8
+_0224D0A6:
+ mov r6, #0
+_0224D0A8:
+ ldrb r0, [r4, #5]
+ lsl r3, r6, #0x18
+ lsr r3, r3, #0x18
+ str r0, [sp]
+ ldrb r0, [r4, #1]
+ str r0, [sp, #4]
+ ldr r0, [r4, #8]
+ str r0, [sp, #8]
+ ldrh r1, [r4, #2]
+ ldrb r2, [r4, #4]
+ add r0, sp, #0x14
+ bl FUN_02068C00
+ ldr r0, [r5, #0x20]
+ bl FUN_020081C0
+ add r7, r0, #0
+ add r3, sp, #0x14
+ add r2, r7, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r5, #0x20]
+ bl FUN_020080D0
+ ldr r0, [sp, #0x10]
+ bl MOD11_02230130
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ bl MOD11_022312DC
+ add r3, r0, #0
+ ldr r0, [r4, #8]
+ mov r2, #5
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r6, [sp, #8]
+ ldrh r0, [r7, #6]
+ str r0, [sp, #0xc]
+ ldrh r0, [r7]
+ ldrh r1, [r7, #2]
+ bl FUN_02012560
+ ldr r0, [sp, #0x10]
+ bl MOD11_02230130
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrh r2, [r7]
+ bl MOD11_022312F0
+ ldr r0, [sp, #0x10]
+ bl MOD11_02230130
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrh r2, [r7, #4]
+ bl MOD11_02231308
+ ldr r0, [r4, #8]
+ lsl r2, r6, #0x18
+ str r0, [sp]
+ ldrh r0, [r4, #2]
+ ldrb r1, [r4, #4]
+ ldrb r3, [r4, #1]
+ lsr r2, r2, #0x18
+ bl FUN_02068E88
+ add r6, r0, #0
+ ldr r0, [sp, #0x10]
+ bl MOD11_02230130
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r2, r6, #0
+ bl MOD11_02231320
+ ldr r0, _0224D180 ; =0x00000195
+ mov r1, #1
+ ldrb r0, [r5, r0]
+ bl MOD08_0222A6A4
+ add r2, r0, #0
+ ldr r0, [r5, #0x20]
+ mov r1, #1
+ add r2, r6, r2
+ bl FUN_02007558
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ ldr r0, [sp, #0x10]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl MOD11_0224D548
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224D180: .word 0x00000195
+
+ thumb_func_start MOD11_0224D184
+MOD11_0224D184: ; 0x0224D184
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02230FCC
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x2e
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0224D1A4
+MOD11_0224D1A4: ; 0x0224D1A4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ ldr r1, _0224D218 ; =0x00000196
+ add r5, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _0224D200
+ bl MOD11_02230094
+ mov r1, #0
+ add r6, r0, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ bl MOD11_022302BC
+ add r1, r0, #0
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ cmp r1, r0
+ beq _0224D1EC
+ add r0, r5, #0
+ bl MOD11_02231380
+ bl MOD11_02258184
+_0224D1EC:
+ add r0, r4, #0
+ add r0, #0x28
+ bl MOD11_02257238
+ add r0, r6, #0
+ bl MOD11_02258E30
+ add r0, r4, #0
+ bl MOD11_0225468C
+_0224D200:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x2f
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ nop
+_0224D218: .word 0x00000196
+
+ thumb_func_start MOD11_0224D21C
+MOD11_0224D21C: ; 0x0224D21C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EAEC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D230
+MOD11_0224D230: ; 0x0224D230
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EB34
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D244
+MOD11_0224D244: ; 0x0224D244
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r6, r4, #0
+ add r5, r0, #0
+ add r6, #0x94
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0224D268
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0224EB6C
+ b _0224D276
+_0224D268:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x32
+ bl MOD11_022567B8
+_0224D276:
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224D280
+MOD11_0224D280: ; 0x0224D280
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r6, r4, #0
+ add r5, r0, #0
+ add r6, #0x94
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0224D2A4
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0224EBB8
+ b _0224D2B2
+_0224D2A4:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x33
+ bl MOD11_022567B8
+_0224D2B2:
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224D2BC
+MOD11_0224D2BC: ; 0x0224D2BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02230078
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_02230080
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_022300CC
+ add r2, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_0225C91C
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x34
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224D2F8
+MOD11_0224D2F8: ; 0x0224D2F8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02230080
+ bl MOD11_0225C9A0
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x35
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0224D31C
+MOD11_0224D31C: ; 0x0224D31C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r5, #0
+ add r4, #0x94
+ ldrb r1, [r4, #1]
+ add r6, r0, #0
+ cmp r1, #0
+ ldr r1, _0224D360 ; =0x00000196
+ bne _0224D33C
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ bne _0224D348
+ ldrh r1, [r4, #2]
+ bl MOD11_0223128C
+ b _0224D348
+_0224D33C:
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ beq _0224D348
+ ldrh r1, [r4, #2]
+ bl MOD11_0223128C
+_0224D348:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ nop
+_0224D360: .word 0x00000196
+
+ thumb_func_start MOD11_0224D364
+MOD11_0224D364: ; 0x0224D364
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224EBF4
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D374
+MOD11_0224D374: ; 0x0224D374
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EC4C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D388
+MOD11_0224D388: ; 0x0224D388
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224EC80
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D398
+MOD11_0224D398: ; 0x0224D398
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224ECB8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D3A8
+MOD11_0224D3A8: ; 0x0224D3A8
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224ECF0
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D3B8
+MOD11_0224D3B8: ; 0x0224D3B8
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224ED44
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D3CC
+MOD11_0224D3CC: ; 0x0224D3CC
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224ED98
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D3DC
+MOD11_0224D3DC: ; 0x0224D3DC
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EDEC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D3F0
+MOD11_0224D3F0: ; 0x0224D3F0
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EE20
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D404
+MOD11_0224D404: ; 0x0224D404
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EE80
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D418
+MOD11_0224D418: ; 0x0224D418
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r7, #0
+ str r1, [sp, #4]
+ str r1, [sp, #0x10]
+ add r1, #0x94
+ str r0, [sp]
+ str r1, [sp, #0x10]
+ str r7, [sp, #8]
+ bl MOD11_0222FF74
+ mov r1, #0x80
+ tst r0, r1
+ beq _0224D444
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp]
+ ldr r1, [r1, #4]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02231468
+ b _0224D4FC
+_0224D444:
+ add r0, r7, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _0224D4D2
+_0224D452:
+ ldr r0, [sp]
+ ldr r1, [sp, #0xc]
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ mov r5, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0224D4C0
+_0224D466:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl FUN_0206B9B0
+ mov r1, #5
+ mov r2, #0
+ add r4, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0224D4B4
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0224D4B4
+ ldr r0, [sp]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0224D4A8
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ ldr r1, [sp, #8]
+ add r0, r1, r0
+ str r0, [sp, #8]
+ b _0224D4B4
+_0224D4A8:
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ add r7, r7, r0
+_0224D4B4:
+ add r0, r6, #0
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0224D466
+_0224D4C0:
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ ldr r1, [sp, #0xc]
+ cmp r1, r0
+ blt _0224D452
+_0224D4D2:
+ cmp r7, #0
+ bne _0224D4E6
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ bne _0224D4E6
+ ldr r0, [sp]
+ mov r1, #3
+ bl MOD11_02231468
+ b _0224D4FC
+_0224D4E6:
+ cmp r7, #0
+ bne _0224D4F4
+ ldr r0, [sp]
+ mov r1, #2
+ bl MOD11_02231468
+ b _0224D4FC
+_0224D4F4:
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_02231468
+_0224D4FC:
+ mov r2, #0x65
+ ldr r1, [sp, #4]
+ lsl r2, r2, #2
+ ldrb r1, [r1, r2]
+ ldr r2, [sp, #0x10]
+ ldr r0, [sp]
+ ldrb r2, [r2]
+ bl MOD11_022567B8
+ ldr r0, [sp, #4]
+ bl MOD11_0224D548
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0224D518
+MOD11_0224D518: ; 0x0224D518
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ mov r1, #0
+ add r5, r0, #0
+ bl MOD11_0222FF6C
+ add r6, r0, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ add r0, r6, #0
+ bl FUN_02019548
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x42
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0224D548
+MOD11_0224D548: ; 0x0224D548
+ mov r1, #0
+ add r0, #0x94
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD11_0224D550
+MOD11_0224D550: ; 0x0224D550
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #0x18
+ bl FUN_02016998
+ add r1, r0, #0
+ str r4, [r1]
+ mov r2, #0
+ strb r2, [r1, #0x14]
+ ldr r0, _0224D570 ; =MOD11_022530A0
+ strb r2, [r1, #0x15]
+ bl FUN_0200CA44
+ pop {r4, pc}
+ nop
+_0224D570: .word MOD11_022530A0
+
+ thumb_func_start MOD11_0224D574
+MOD11_0224D574: ; 0x0224D574
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ str r0, [sp, #0x24]
+ add r6, r1, #0
+ add r5, r2, #0
+ bl MOD11_02230068
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ bl MOD11_0222FF74
+ mov r0, #5
+ mov r1, #0x2c
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r2, #0
+ ldr r0, _0224D720 ; =0x00000195
+ strb r2, [r4, #0x12]
+ ldrb r0, [r6, r0]
+ mov r1, #1
+ tst r0, r1
+ beq _0224D5CA
+ mov r0, #2
+ strb r0, [r4, #0x13]
+ ldr r0, [sp, #0x24]
+ bl MOD11_02230088
+ str r0, [r4, #0xc]
+ ldr r1, _0224D720 ; =0x00000195
+ ldr r0, [r0]
+ ldrb r2, [r6, r1]
+ mov r1, #1
+ and r2, r1
+ add r3, r2, #0
+ mov r1, #6
+ mul r3, r1
+ ldr r1, _0224D724 ; =0x0222D550
+ mov r2, #0x58
+ ldrsh r1, [r1, r3]
+ bl FUN_0200C714
+ b _0224D5F0
+_0224D5CA:
+ ldr r0, [sp, #0x24]
+ add r1, r2, #0
+ strb r2, [r4, #0x13]
+ bl MOD11_02230088
+ str r0, [r4, #0xc]
+ ldr r1, _0224D720 ; =0x00000195
+ ldr r0, [r0]
+ ldrb r2, [r6, r1]
+ mov r1, #1
+ and r2, r1
+ add r3, r2, #0
+ mov r1, #6
+ mul r3, r1
+ ldr r1, _0224D724 ; =0x0222D550
+ mov r2, #0x88
+ ldrsh r1, [r1, r3]
+ bl FUN_0200C714
+_0224D5F0:
+ ldrb r0, [r5, #1]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ beq _0224D5FC
+ mov r0, #1
+ b _0224D5FE
+_0224D5FC:
+ mov r0, #0
+_0224D5FE:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrb r0, [r5, #1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1b
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ str r0, [sp, #8]
+ ldrb r2, [r5, #1]
+ ldrh r1, [r5, #2]
+ ldrb r3, [r4, #0x13]
+ lsl r2, r2, #0x1e
+ add r0, sp, #0x48
+ lsr r2, r2, #0x1e
+ bl FUN_02068C00
+ ldr r0, [r5, #4]
+ str r0, [sp]
+ ldrb r3, [r5, #1]
+ ldrh r0, [r5, #2]
+ ldrb r2, [r4, #0x13]
+ lsl r1, r3, #0x1e
+ lsl r3, r3, #0x18
+ lsr r1, r1, #0x1e
+ lsr r3, r3, #0x1b
+ bl FUN_02068E88
+ str r0, [sp, #0x2c]
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x30
+ ldrh r3, [r5, #2]
+ add r0, #2
+ mov r1, #0x8a
+ mov r2, #0
+ bl FUN_02006548
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x30
+ ldrh r3, [r5, #2]
+ add r0, #1
+ mov r1, #0x90
+ mov r2, #0
+ bl FUN_02006548
+ mov r0, #1
+ str r0, [sp]
+ ldrh r3, [r5, #2]
+ add r0, sp, #0x30
+ mov r1, #0x8e
+ mov r2, #0
+ bl FUN_02006548
+ add r0, sp, #0x30
+ ldrh r1, [r5, #2]
+ add r0, #3
+ bl FUN_02069010
+ ldr r1, _0224D720 ; =0x00000195
+ mov r0, #6
+ ldrb r2, [r6, r1]
+ ldr r3, _0224D724 ; =0x0222D550
+ add r7, r2, #0
+ mul r7, r0
+ ldr r0, _0224D728 ; =0x0222D552
+ mov r2, #2
+ ldrsh r0, [r0, r7]
+ ldrsh r3, [r3, r7]
+ str r0, [sp]
+ ldr r0, _0224D72C ; =0x0222D554
+ ldrsh r0, [r0, r7]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #8]
+ add r0, sp, #0x30
+ ldrsb r2, [r0, r2]
+ str r2, [sp, #0xc]
+ mov r2, #1
+ ldrsb r2, [r0, r2]
+ str r2, [sp, #0x10]
+ ldrb r0, [r0]
+ add r2, sp, #0x48
+ str r0, [sp, #0x14]
+ sub r0, r1, #1
+ ldrb r0, [r6, r0]
+ ldr r1, [sp, #0x28]
+ str r0, [sp, #0x18]
+ add r0, sp, #0x30
+ add r0, #3
+ str r0, [sp, #0x1c]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x24]
+ bl MOD11_02253A88
+ str r0, [r6, #0x20]
+ str r0, [r4, #8]
+ ldrb r0, [r4, #0x13]
+ cmp r0, #2
+ bne _0224D6D8
+ mov r3, #0
+ str r3, [sp]
+ mov r1, #8
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl FUN_02007E68
+_0224D6D8:
+ ldr r1, _0224D720 ; =0x00000195
+ ldrb r0, [r6, r1]
+ lsl r2, r0, #2
+ ldr r0, _0224D730 ; =0x0222D538
+ ldrsh r0, [r0, r2]
+ strh r0, [r4, #0x14]
+ ldr r0, [sp, #0x24]
+ str r0, [r4]
+ str r6, [r4, #4]
+ ldrb r0, [r5]
+ strb r0, [r4, #0x10]
+ sub r0, r1, #1
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #0x11]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #0x16]
+ ldr r0, [r5, #8]
+ str r0, [r4, #0x18]
+ ldrb r0, [r6, r1]
+ str r0, [r4, #0x1c]
+ ldr r0, [r5, #4]
+ bl FUN_02068884
+ str r0, [r4, #0x24]
+ ldrb r0, [r5, #1]
+ add r1, r4, #0
+ mov r2, #0
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ str r0, [r4, #0x28]
+ ldr r0, _0224D734 ; =MOD11_0224EEA0
+ bl FUN_0200CA44
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224D720: .word 0x00000195
+_0224D724: .word 0x0222D550
+_0224D728: .word 0x0222D552
+_0224D72C: .word 0x0222D554
+_0224D730: .word 0x0222D538
+_0224D734: .word MOD11_0224EEA0
+
+ thumb_func_start MOD11_0224D738
+MOD11_0224D738: ; 0x0224D738
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ add r6, r1, #0
+ add r5, r2, #0
+ bl MOD11_0222FF74
+ mov r0, #5
+ mov r1, #0x9c
+ bl FUN_02016998
+ add r4, r0, #0
+ ldr r0, _0224D874 ; =0x00000195
+ ldrb r1, [r6, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0224D75E
+ mov r1, #2
+ b _0224D760
+_0224D75E:
+ mov r1, #0
+_0224D760:
+ add r0, r4, #0
+ add r0, #0x84
+ strb r1, [r0]
+ ldrb r0, [r5, #1]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ beq _0224D772
+ mov r0, #1
+ b _0224D774
+_0224D772:
+ mov r0, #0
+_0224D774:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrb r0, [r5, #1]
+ add r3, r4, #0
+ add r3, #0x84
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1b
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ str r0, [sp, #8]
+ ldrb r2, [r5, #1]
+ add r0, r4, #0
+ ldrh r1, [r5, #2]
+ lsl r2, r2, #0x1e
+ ldrb r3, [r3]
+ add r0, #0x14
+ lsr r2, r2, #0x1e
+ bl FUN_02068C00
+ ldr r0, [r5, #4]
+ add r2, r4, #0
+ str r0, [sp]
+ ldrb r3, [r5, #1]
+ add r2, #0x84
+ ldrh r0, [r5, #2]
+ lsl r1, r3, #0x1e
+ lsl r3, r3, #0x18
+ ldrb r2, [r2]
+ lsr r1, r1, #0x1e
+ lsr r3, r3, #0x1b
+ bl FUN_02068E88
+ add r1, r4, #0
+ add r1, #0x85
+ strb r0, [r1]
+ mov r0, #1
+ str r0, [sp]
+ add r0, r4, #0
+ ldrh r3, [r5, #2]
+ add r0, #0x90
+ mov r1, #0x8a
+ mov r2, #0
+ bl FUN_02006548
+ mov r0, #1
+ str r0, [sp]
+ add r0, r4, #0
+ ldrh r3, [r5, #2]
+ add r0, #0x91
+ mov r1, #0x90
+ mov r2, #0
+ bl FUN_02006548
+ mov r0, #1
+ str r0, [sp]
+ add r0, r4, #0
+ ldrh r3, [r5, #2]
+ add r0, #0x93
+ mov r1, #0x8e
+ mov r2, #0
+ bl FUN_02006548
+ add r0, r6, #0
+ bl MOD11_02253A78
+ str r7, [r4]
+ add r0, r4, #0
+ str r6, [r4, #4]
+ mov r1, #0
+ add r0, #0x83
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x96
+ strb r1, [r0]
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x80
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r2, [r6, r0]
+ add r1, r4, #0
+ add r1, #0x81
+ strb r2, [r1]
+ add r1, r4, #0
+ ldrh r2, [r5, #2]
+ add r1, #0x86
+ add r0, r0, #1
+ strh r2, [r1]
+ ldrb r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x82
+ strb r1, [r0]
+ add r0, r4, #0
+ ldr r1, [r5, #8]
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ ldr r1, [r5, #0xc]
+ add r0, #0x8c
+ strb r1, [r0]
+ ldr r0, [r5, #4]
+ bl FUN_02068884
+ add r1, r4, #0
+ add r1, #0x8d
+ strb r0, [r1]
+ add r0, r4, #0
+ ldr r1, [r5, #0x10]
+ add r0, #0x8e
+ strh r1, [r0]
+ ldrb r0, [r5, #1]
+ lsl r0, r0, #0x1d
+ lsr r1, r0, #0x1f
+ add r0, r4, #0
+ add r0, #0x92
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x94
+ strh r2, [r0]
+ ldr r0, _0224D878 ; =MOD11_0224F2DC
+ add r1, r4, #0
+ bl FUN_0200CA44
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224D874: .word 0x00000195
+_0224D878: .word MOD11_0224F2DC
+
+ thumb_func_start MOD11_0224D87C
+MOD11_0224D87C: ; 0x0224D87C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r7, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ bl MOD11_0222FF74
+ mov r0, #5
+ mov r1, #0x9c
+ bl FUN_02016998
+ add r5, r0, #0
+ add r1, r5, #0
+ mov r0, #0
+ add r1, #0x83
+ strb r0, [r1]
+ ldr r1, _0224DA24 ; =0x00000195
+ ldrb r2, [r6, r1]
+ mov r1, #1
+ tst r1, r2
+ beq _0224D8B0
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0x84
+ strb r1, [r0]
+ b _0224D8B6
+_0224D8B0:
+ add r1, r5, #0
+ add r1, #0x84
+ strb r0, [r1]
+_0224D8B6:
+ ldrb r0, [r4, #1]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ beq _0224D8C2
+ mov r0, #1
+ b _0224D8C4
+_0224D8C2:
+ mov r0, #0
+_0224D8C4:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrb r0, [r4, #1]
+ add r3, r5, #0
+ add r3, #0x84
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1b
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ str r0, [sp, #8]
+ ldrb r2, [r4, #1]
+ add r0, r5, #0
+ ldrh r1, [r4, #2]
+ lsl r2, r2, #0x1e
+ ldrb r3, [r3]
+ add r0, #0x14
+ lsr r2, r2, #0x1e
+ bl FUN_02068C00
+ ldr r0, [r4, #4]
+ add r2, r5, #0
+ str r0, [sp]
+ ldrb r3, [r4, #1]
+ add r2, #0x84
+ ldrh r0, [r4, #2]
+ lsl r1, r3, #0x1e
+ lsl r3, r3, #0x18
+ ldrb r2, [r2]
+ lsr r1, r1, #0x1e
+ lsr r3, r3, #0x1b
+ bl FUN_02068E88
+ add r1, r5, #0
+ add r1, #0x85
+ strb r0, [r1]
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ ldrh r3, [r4, #2]
+ add r0, #0x90
+ mov r1, #0x8a
+ mov r2, #0
+ bl FUN_02006548
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ ldrh r3, [r4, #2]
+ add r0, #0x91
+ mov r1, #0x90
+ mov r2, #0
+ bl FUN_02006548
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ ldrh r3, [r4, #2]
+ add r0, #0x93
+ mov r1, #0x8e
+ mov r2, #0
+ bl FUN_02006548
+ add r0, r6, #0
+ bl MOD11_02253A78
+ str r7, [r5]
+ str r6, [r5, #4]
+ add r0, r5, #0
+ ldrb r1, [r4]
+ add r0, #0x80
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r2, [r6, r0]
+ add r1, r5, #0
+ add r1, #0x81
+ strb r2, [r1]
+ add r1, r5, #0
+ ldrh r2, [r4, #2]
+ add r1, #0x86
+ add r0, r0, #1
+ strh r2, [r1]
+ ldrb r1, [r6, r0]
+ add r0, r5, #0
+ add r0, #0x82
+ strb r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r4, #8]
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x8c
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ bl FUN_02068884
+ add r1, r5, #0
+ add r1, #0x8d
+ strb r0, [r1]
+ add r0, r5, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x8e
+ strh r1, [r0]
+ ldrb r0, [r4, #1]
+ lsl r0, r0, #0x1d
+ lsr r1, r0, #0x1f
+ add r0, r5, #0
+ add r0, #0x92
+ strb r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x94
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x96
+ strb r1, [r0]
+ add r0, r5, #0
+ ldr r2, [r4, #0x4c]
+ add r0, #0x98
+ str r2, [r0]
+ str r4, [sp, #0x18]
+ add r7, r5, #0
+ add r2, r4, #0
+ add r3, r5, #0
+_0224D9C2:
+ ldr r0, [sp, #0x18]
+ add r0, #0x50
+ ldrh r6, [r0]
+ add r0, r7, #0
+ add r0, #0x40
+ strh r6, [r0]
+ add r0, r4, r1
+ add r0, #0x58
+ ldrb r6, [r0]
+ add r0, r5, r1
+ str r0, [sp, #0x14]
+ add r0, #0x48
+ str r0, [sp, #0x14]
+ strb r6, [r0]
+ add r0, r4, r1
+ add r0, #0x5c
+ ldrb r6, [r0]
+ add r0, r5, r1
+ str r0, [sp, #0x10]
+ add r0, #0x4c
+ str r0, [sp, #0x10]
+ strb r6, [r0]
+ add r0, r4, r1
+ add r0, #0x60
+ ldrb r6, [r0]
+ add r0, r5, r1
+ str r0, [sp, #0xc]
+ add r0, #0x50
+ str r0, [sp, #0xc]
+ strb r6, [r0]
+ ldr r0, [r2, #0x64]
+ add r1, r1, #1
+ str r0, [r3, #0x54]
+ ldr r0, [sp, #0x18]
+ add r7, r7, #2
+ add r0, r0, #2
+ str r0, [sp, #0x18]
+ add r2, r2, #4
+ add r3, r3, #4
+ cmp r1, #4
+ blt _0224D9C2
+ ldr r0, _0224DA28 ; =MOD11_0224F7C4
+ add r1, r5, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224DA24: .word 0x00000195
+_0224DA28: .word MOD11_0224F7C4
+
+ thumb_func_start MOD11_0224DA2C
+MOD11_0224DA2C: ; 0x0224DA2C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x74
+ str r2, [sp]
+ bl FUN_02016998
+ add r2, r0, #0
+ str r5, [r2]
+ str r4, [r2, #4]
+ ldr r0, [r4, #0x20]
+ add r7, r2, #0
+ str r0, [r2, #8]
+ ldr r0, [sp]
+ add r5, r2, #0
+ ldrb r1, [r0]
+ add r0, r2, #0
+ add r0, #0x68
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r3, [r4, r0]
+ add r1, r2, #0
+ add r1, #0x69
+ add r0, r0, #1
+ strb r3, [r1]
+ ldrb r1, [r4, r0]
+ add r0, r2, #0
+ add r0, #0x6a
+ strb r1, [r0]
+ add r0, r2, #0
+ mov r1, #0
+ add r0, #0x6b
+ strb r1, [r0]
+ ldr r0, [sp]
+ ldrb r3, [r0, #1]
+ add r0, r2, #0
+ add r0, #0x6c
+ strb r3, [r0]
+ ldr r0, [sp]
+ ldrh r3, [r0, #2]
+ add r0, r2, #0
+ add r0, #0x6e
+ strh r3, [r0]
+ ldr r0, [sp]
+ ldr r3, [sp]
+ ldr r0, [r0, #4]
+ add r4, r3, #0
+ str r0, [r2, #0x70]
+_0224DA92:
+ ldrh r0, [r3, #8]
+ add r3, r3, #2
+ strh r0, [r7, #0x28]
+ ldr r0, [sp]
+ add r7, r7, #2
+ add r0, r0, r1
+ str r0, [sp, #0x10]
+ ldrb r0, [r0, #0x10]
+ str r0, [sp, #8]
+ add r0, r2, r1
+ ldr r6, [sp, #8]
+ add r0, #0x30
+ strb r6, [r0]
+ ldr r0, [sp, #0x10]
+ add r6, r2, r1
+ ldrb r0, [r0, #0x14]
+ str r6, [sp, #4]
+ add r6, #0x34
+ str r0, [sp, #0xc]
+ strb r0, [r6]
+ ldr r0, [sp, #0x10]
+ str r6, [sp, #4]
+ add r6, r2, r1
+ ldrb r0, [r0, #0x18]
+ add r6, #0x38
+ add r1, r1, #1
+ strb r0, [r6]
+ ldr r0, [r4, #0x1c]
+ add r4, r4, #4
+ str r0, [r5, #0x3c]
+ add r5, r5, #4
+ cmp r1, #4
+ blt _0224DA92
+ ldr r0, _0224DAE4 ; =MOD11_0224FD90
+ add r1, r2, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224DAE4: .word MOD11_0224FD90
+
+ thumb_func_start MOD11_0224DAE8
+MOD11_0224DAE8: ; 0x0224DAE8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r6, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ str r7, [r4]
+ ldr r0, [r5, #0x20]
+ str r0, [r4, #4]
+ ldrb r0, [r6]
+ strb r0, [r4, #8]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ add r0, r0, #1
+ strb r1, [r4, #9]
+ ldrb r0, [r5, r0]
+ mov r1, #0
+ add r3, r1, #0
+ strb r0, [r4, #0xa]
+ strb r1, [r4, #0xb]
+ ldrb r0, [r6, #1]
+ strb r0, [r4, #0xc]
+ ldrh r0, [r6, #2]
+ lsl r2, r0, #1
+ ldr r0, _0224DB44 ; =0x0225E84A
+ ldrh r0, [r0, r2]
+ mov r2, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ bl FUN_02007E68
+ ldr r0, [r4, #4]
+ mov r1, #0x2d
+ mov r2, #1
+ bl FUN_02007558
+ ldr r0, _0224DB48 ; =MOD11_0224FFF0
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224DB44: .word 0x0225E84A
+_0224DB48: .word MOD11_0224FFF0
+
+ thumb_func_start MOD11_0224DB4C
+MOD11_0224DB4C: ; 0x0224DB4C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r6, r0, #0
+ add r5, r1, #0
+ str r2, [sp, #0x24]
+ bl MOD11_02230068
+ str r0, [sp, #0x2c]
+ mov r0, #5
+ mov r1, #0x24
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r2, #0
+ ldr r0, _0224DCCC ; =0x00000195
+ strb r2, [r4, #0x12]
+ ldrb r0, [r5, r0]
+ mov r1, #1
+ tst r0, r1
+ beq _0224DB9C
+ mov r0, #2
+ strb r0, [r4, #0x13]
+ add r0, r6, #0
+ bl MOD11_02230088
+ str r0, [r4, #8]
+ ldr r1, _0224DCCC ; =0x00000195
+ ldr r0, [r0]
+ ldrb r2, [r5, r1]
+ mov r1, #1
+ and r2, r1
+ add r3, r2, #0
+ mov r1, #6
+ mul r3, r1
+ ldr r1, _0224DCD0 ; =0x0222D550
+ mov r2, #0x58
+ ldrsh r1, [r1, r3]
+ bl FUN_0200C714
+ b _0224DBC2
+_0224DB9C:
+ add r0, r6, #0
+ add r1, r2, #0
+ strb r2, [r4, #0x13]
+ bl MOD11_02230088
+ str r0, [r4, #8]
+ ldr r1, _0224DCCC ; =0x00000195
+ ldr r0, [r0]
+ ldrb r2, [r5, r1]
+ mov r1, #1
+ and r2, r1
+ add r3, r2, #0
+ mov r1, #6
+ mul r3, r1
+ ldr r1, _0224DCD0 ; =0x0222D550
+ mov r2, #0x88
+ ldrsh r1, [r1, r3]
+ bl FUN_0200C714
+_0224DBC2:
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _0224DBE4
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ beq _0224DBEC
+ ldr r0, _0224DCCC ; =0x00000195
+ ldrb r1, [r5, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0224DBEC
+_0224DBE4:
+ ldr r0, _0224DCCC ; =0x00000195
+ ldrb r0, [r5, r0]
+ str r0, [sp, #0x28]
+ b _0224DBF6
+_0224DBEC:
+ ldr r0, _0224DCCC ; =0x00000195
+ ldrb r1, [r5, r0]
+ mov r0, #1
+ and r0, r1
+ str r0, [sp, #0x28]
+_0224DBF6:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r0, r6, #0
+ bl MOD11_0223021C
+ add r3, r0, #0
+ ldr r1, [sp, #0x24]
+ lsl r3, r3, #0x18
+ ldrh r1, [r1, #2]
+ ldrb r2, [r4, #0x13]
+ add r0, sp, #0x30
+ lsr r3, r3, #0x18
+ bl FUN_02068FE0
+ ldr r0, [sp, #0x28]
+ mov r1, #6
+ add r7, r0, #0
+ mul r7, r1
+ ldr r0, _0224DCD4 ; =0x0222D552
+ mov r1, #0
+ ldrsh r0, [r0, r7]
+ ldr r3, _0224DCD0 ; =0x0222D550
+ add r2, sp, #0x30
+ str r0, [sp]
+ ldr r0, _0224DCD8 ; =0x0222D554
+ ldrsh r3, [r3, r7]
+ ldrsh r0, [r0, r7]
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ mov r0, #0x65
+ str r1, [sp, #0x14]
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ str r0, [sp, #0x18]
+ str r1, [sp, #0x1c]
+ str r1, [sp, #0x20]
+ ldr r1, [sp, #0x2c]
+ add r0, r6, #0
+ bl MOD11_02253A88
+ str r0, [r5, #0x1c]
+ str r0, [r4, #4]
+ ldrb r0, [r4, #0x13]
+ cmp r0, #0
+ bne _0224DC80
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _0224DC80
+ ldr r0, [sp, #0x24]
+ ldrh r0, [r0, #2]
+ bl FUN_0206AA30
+ ldr r3, _0224DCCC ; =0x00000195
+ add r2, r0, #0
+ ldrb r3, [r5, r3]
+ ldr r1, [sp, #0x28]
+ add r0, r6, #0
+ asr r3, r3, #1
+ bl MOD11_02254308
+ str r0, [r5, #0x18]
+ str r0, [r4, #0xc]
+_0224DC80:
+ ldr r0, [sp, #0x28]
+ lsl r1, r0, #2
+ ldr r0, _0224DCDC ; =0x0222D538
+ ldrsh r0, [r0, r1]
+ strh r0, [r4, #0x14]
+ ldr r0, [sp, #0x24]
+ str r6, [r4]
+ ldrb r0, [r0]
+ strb r0, [r4, #0x10]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ add r0, r0, #1
+ strb r1, [r4, #0x11]
+ ldrb r0, [r5, r0]
+ str r0, [r4, #0x18]
+ mov r0, #0
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _0224DCAE
+ cmp r0, #2
+ bne _0224DCBE
+_0224DCAE:
+ add r0, r6, #0
+ bl MOD11_0222FF68
+ mov r1, #3
+ mov r2, #2
+ mov r3, #0x84
+ bl FUN_020179E0
+_0224DCBE:
+ ldr r0, _0224DCE0 ; =MOD11_02250060
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224DCCC: .word 0x00000195
+_0224DCD0: .word 0x0222D550
+_0224DCD4: .word 0x0222D552
+_0224DCD8: .word 0x0222D554
+_0224DCDC: .word 0x0222D538
+_0224DCE0: .word MOD11_02250060
+
+ thumb_func_start MOD11_0224DCE4
+MOD11_0224DCE4: ; 0x0224DCE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x1c
+ add r6, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4, #0xa]
+ str r7, [r4]
+ ldrb r1, [r6]
+ strb r1, [r4, #8]
+ ldrb r1, [r6, #1]
+ str r1, [r4, #0x10]
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r2, [r5, r1]
+ strb r2, [r4, #9]
+ str r5, [r4, #4]
+ add r2, r1, #1
+ ldrb r3, [r5, r2]
+ mov r2, #1
+ tst r2, r3
+ beq _0224DD1E
+ mov r1, #2
+ strb r1, [r4, #0xb]
+ b _0224DD30
+_0224DD1E:
+ ldrb r1, [r5, r1]
+ add r0, r7, #0
+ bl MOD11_02230188
+ mov r1, #0
+ strb r1, [r4, #0xb]
+ ldrb r0, [r0, #1]
+ bl FUN_0206AA30
+_0224DD30:
+ str r0, [r4, #0xc]
+ ldr r0, _0224DD40 ; =MOD11_02250338
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224DD40: .word MOD11_02250338
+
+ thumb_func_start MOD11_0224DD44
+MOD11_0224DD44: ; 0x0224DD44
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ bl FUN_02016998
+ add r1, r0, #0
+ mov r0, #0
+ strb r0, [r1, #0xa]
+ add r2, r4, #0
+ str r5, [r1]
+ add r2, #0x94
+ ldrb r2, [r2]
+ strb r2, [r1, #8]
+ mov r2, #0x65
+ lsl r2, r2, #2
+ ldrb r3, [r4, r2]
+ add r2, r2, #1
+ strb r3, [r1, #9]
+ str r4, [r1, #4]
+ ldrb r3, [r4, r2]
+ mov r2, #1
+ tst r2, r3
+ beq _0224DD7A
+ mov r0, #2
+ b _0224DD7A
+_0224DD7A:
+ strb r0, [r1, #0xb]
+ ldr r0, _0224DD88 ; =MOD11_022508A4
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ nop
+_0224DD88: .word MOD11_022508A4
+
+ thumb_func_start MOD11_0224DD8C
+MOD11_0224DD8C: ; 0x0224DD8C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp, #0x10]
+ add r5, r1, #0
+ add r7, r2, #0
+ bl MOD11_02230068
+ str r0, [sp, #0x14]
+ mov r0, #5
+ mov r1, #0x10
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r0, #0
+ ldr r1, _0224DE38 ; =0x00000195
+ strb r0, [r4, #0xa]
+ ldrb r2, [r5, r1]
+ mov r1, #1
+ tst r1, r2
+ beq _0224DDB8
+ mov r0, #2
+ b _0224DDB8
+_0224DDB8:
+ mov r1, #0x65
+ strb r0, [r4, #0xb]
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldr r0, [sp, #0x10]
+ bl MOD11_0223021C
+ add r3, r0, #0
+ lsl r3, r3, #0x18
+ ldrh r1, [r7, #2]
+ ldrb r2, [r4, #0xb]
+ add r0, sp, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068FE0
+ ldr r0, _0224DE38 ; =0x00000195
+ mov r1, #6
+ ldrb r2, [r5, r0]
+ sub r0, r0, #1
+ ldr r3, _0224DE3C ; =0x0222D576
+ add r6, r2, #0
+ mul r6, r1
+ ldr r1, _0224DE40 ; =0x0222D578
+ ldr r2, _0224DE44 ; =0x0222D574
+ ldrsh r1, [r1, r6]
+ ldrsh r2, [r2, r6]
+ ldrsh r3, [r3, r6]
+ str r1, [sp]
+ ldrb r0, [r5, r0]
+ add r1, sp, #0x18
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ bl FUN_020073A0
+ str r0, [r5, #0x1c]
+ str r0, [r4, #4]
+ ldr r0, _0224DE38 ; =0x00000195
+ ldr r2, _0224DE48 ; =0x0222D538
+ ldrb r1, [r5, r0]
+ sub r0, r0, #1
+ lsl r1, r1, #0x1f
+ lsr r3, r1, #0x1d
+ ldr r1, [r7, #4]
+ add r2, r2, r3
+ lsl r1, r1, #1
+ ldrsh r1, [r1, r2]
+ mov r2, #0
+ strh r1, [r4, #0xc]
+ ldr r1, [sp, #0x10]
+ str r1, [r4]
+ ldrb r1, [r7]
+ strb r1, [r4, #8]
+ ldrb r0, [r5, r0]
+ add r1, r4, #0
+ strb r0, [r4, #9]
+ ldr r0, _0224DE4C ; =MOD11_0225092C
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224DE38: .word 0x00000195
+_0224DE3C: .word 0x0222D576
+_0224DE40: .word 0x0222D578
+_0224DE44: .word 0x0222D574
+_0224DE48: .word 0x0222D538
+_0224DE4C: .word MOD11_0225092C
+
+ thumb_func_start MOD11_0224DE50
+MOD11_0224DE50: ; 0x0224DE50
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r6, #0
+ add r4, #0x28
+ add r7, r0, #0
+ add r5, r2, #0
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #1
+ blx MIi_CpuClearFast
+ mov r0, #0x65
+ str r7, [r4, #0xc]
+ lsl r0, r0, #2
+ ldrb r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ add r1, r0, #0
+ ldr r0, _0224DF10 ; =0x00000195
+ ldrb r0, [r6, r0]
+ bl MOD11_02257F6C
+ add r1, r4, #0
+ add r1, #0x25
+ strb r0, [r1]
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x4c
+ strb r1, [r0]
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ str r0, [r4, #0x28]
+ ldrh r0, [r5, #4]
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ ldrb r1, [r5, #1]
+ add r0, #0x48
+ strb r1, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x19
+ lsr r1, r0, #0x1e
+ add r0, r4, #0
+ add r0, #0x49
+ strb r1, [r0]
+ mov r1, #0
+ str r1, [r4, #0x30]
+ ldr r0, [r5, #8]
+ str r0, [r4, #0x38]
+ ldr r0, [r5, #0xc]
+ str r0, [r4, #0x3c]
+ add r0, r4, #0
+ ldrb r2, [r5, #6]
+ add r0, #0x26
+ strb r2, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x1b
+ lsr r2, r0, #0x1b
+ add r0, r4, #0
+ add r0, #0x4a
+ strb r2, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x1f
+ add r0, r4, #0
+ add r0, #0x4b
+ strb r2, [r0]
+ add r0, r4, #0
+ ldrb r2, [r5, #0x14]
+ add r0, #0x4d
+ strb r2, [r0]
+ add r0, r4, #0
+ ldr r2, [r5, #0x10]
+ add r0, #0x27
+ strb r2, [r0]
+ add r0, r4, #0
+ bl MOD11_022572AC
+ mov r2, #0
+ ldr r1, [r4, #0x28]
+ add r0, r4, #0
+ mvn r2, r2
+ bl MOD11_02256D70
+ mov r2, #0xfa
+ ldr r0, _0224DF14 ; =MOD11_022509B4
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224DF10: .word 0x00000195
+_0224DF14: .word MOD11_022509B4
+
+ thumb_func_start MOD11_0224DF18
+MOD11_0224DF18: ; 0x0224DF18
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r5, #0
+ add r4, #0x28
+ add r6, r0, #0
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #1
+ blx MIi_CpuClearFast
+ mov r0, #0x65
+ str r6, [r4, #0xc]
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+ add r5, #0x94
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x4c
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_02257334
+ mov r2, #0xfa
+ ldr r0, _0224DF5C ; =MOD11_02250A28
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224DF5C: .word MOD11_02250A28
+
+ thumb_func_start MOD11_0224DF60
+MOD11_0224DF60: ; 0x0224DF60
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #5
+ mov r1, #0x3c
+ add r5, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #0x3c
+ blx MIi_CpuClearFast
+ mov r7, #0
+ strb r7, [r4, #0xa]
+ strb r7, [r4, #0xb]
+ str r6, [r4]
+ ldrb r0, [r5]
+ mov r1, #0x65
+ lsl r1, r1, #2
+ strb r0, [r4, #8]
+ ldr r0, [sp]
+ add r3, r5, #0
+ ldrb r0, [r0, r1]
+ add r1, r1, #1
+ add r6, r4, #0
+ strb r0, [r4, #9]
+ ldr r0, [sp]
+ ldrb r1, [r0, r1]
+ add r0, r4, #0
+ add r0, #0x34
+ strb r1, [r0]
+ ldr r0, [sp]
+ add r0, #0x28
+ str r0, [r4, #4]
+ add r0, r4, #0
+ ldrb r1, [r5, #1]
+ add r0, #0x23
+ strb r1, [r0]
+ mov r0, #0x24
+ ldrsh r0, [r5, r0]
+ strh r0, [r4, #0x36]
+ ldrh r0, [r5, #0x26]
+ strh r0, [r4, #0x38]
+ add r0, r5, #0
+ add r0, #0x28
+ ldrb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x3a
+ strb r1, [r0]
+_0224DFC6:
+ mov r2, #0
+_0224DFC8:
+ add r0, r3, r2
+ ldrb r1, [r0, #8]
+ add r0, r6, r2
+ add r2, r2, #1
+ strb r1, [r0, #0x10]
+ cmp r2, #6
+ blt _0224DFC8
+ add r7, r7, #1
+ add r3, r3, #6
+ add r6, r6, #6
+ cmp r7, #2
+ blt _0224DFC6
+ mov r0, #0
+ add r3, r0, #0
+_0224DFE4:
+ add r2, r5, r0
+ ldrb r1, [r2, #8]
+ cmp r1, #2
+ bne _0224DFF2
+ add r1, r4, r0
+ strb r3, [r1, #0x1c]
+ b _0224DFF8
+_0224DFF2:
+ ldrb r2, [r2, #2]
+ add r1, r4, r0
+ strb r2, [r1, #0x1c]
+_0224DFF8:
+ add r0, r0, #1
+ cmp r0, #6
+ blt _0224DFE4
+ mov r2, #0
+ add r3, r5, #0
+ add r6, r4, #0
+_0224E004:
+ ldrh r0, [r3, #0x14]
+ add r7, r4, r2
+ add r1, r5, r2
+ strh r0, [r6, #0x24]
+ ldrb r0, [r1, #0x1c]
+ add r7, #0x2c
+ add r1, #0x20
+ strb r0, [r7]
+ add r0, r4, r2
+ ldrb r1, [r1]
+ add r0, #0x30
+ add r2, r2, #1
+ strb r1, [r0]
+ add r3, r3, #2
+ add r6, r6, #2
+ cmp r2, #4
+ blt _0224E004
+ ldr r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r0]
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0224E034
+MOD11_0224E034: ; 0x0224E034
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ str r1, [sp]
+ mov r0, #5
+ mov r1, #0x24
+ add r7, r2, #0
+ bl FUN_02016998
+ add r3, r0, #0
+ mov r1, #0x65
+ mov r4, #0
+ add r0, #0x20
+ strb r4, [r0]
+ ldr r0, [sp]
+ str r5, [r3]
+ add r0, #0x94
+ ldrb r0, [r0]
+ lsl r1, r1, #2
+ add r5, r7, #0
+ strb r0, [r3, #0x1c]
+ ldr r0, [sp]
+ add r6, r3, #0
+ ldrb r0, [r0, r1]
+ add r1, r1, #1
+ strb r0, [r3, #0x1d]
+ ldr r0, [sp]
+ ldrb r0, [r0, r1]
+ strb r0, [r3, #0x1e]
+ ldr r0, [sp]
+ add r0, #0x28
+ str r0, [r3, #4]
+ ldrb r0, [r7, #1]
+ strb r0, [r3, #0x1f]
+_0224E076:
+ ldrh r0, [r5, #4]
+ add r2, r7, r4
+ add r1, r3, r4
+ strh r0, [r6, #0xc]
+ ldrb r0, [r2, #0xc]
+ add r4, r4, #1
+ add r5, r5, #2
+ strb r0, [r1, #0x14]
+ ldrb r0, [r2, #0x10]
+ add r6, r6, #2
+ cmp r4, #4
+ strb r0, [r1, #0x18]
+ blt _0224E076
+ ldrh r0, [r7, #2]
+ add r1, r3, #0
+ mov r2, #0
+ strh r0, [r3, #0x22]
+ ldr r0, [sp]
+ ldr r0, [r0, #4]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224E0A4
+MOD11_0224E0A4: ; 0x0224E0A4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ add r7, r1, #0
+ mov r0, #5
+ mov r1, #0x34
+ add r5, r2, #0
+ bl FUN_02016998
+ add r6, r0, #0
+ mov r0, #0
+ strb r0, [r6, #0xf]
+ ldr r0, [sp]
+ str r0, [r6]
+ add r0, r7, #0
+ add r0, #0x94
+ ldrb r0, [r0]
+ strb r0, [r6, #0xc]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r7, r0]
+ add r0, r0, #1
+ strb r1, [r6, #0xd]
+ ldrb r0, [r7, r0]
+ strb r0, [r6, #0xe]
+ ldrh r0, [r5, #2]
+ strh r0, [r6, #0x30]
+ add r0, r7, #0
+ add r0, #0x28
+ str r0, [r6, #4]
+ add r0, r6, #0
+ ldrb r1, [r5, #1]
+ add r0, #0x32
+ strb r1, [r0]
+ ldr r0, [sp]
+ add r1, sp, #4
+ bl MOD11_02231504
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ add r4, r0, #0
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ mov r0, #0
+ cmp r4, #0
+ ble _0224E120
+ add r1, r6, #0
+_0224E106:
+ ldrh r2, [r5, #4]
+ add r0, r0, #1
+ strh r2, [r1, #0x10]
+ ldrh r2, [r5, #6]
+ strh r2, [r1, #0x12]
+ ldrh r2, [r5, #8]
+ strh r2, [r1, #0x14]
+ ldrh r2, [r5, #0xa]
+ add r5, #8
+ strh r2, [r1, #0x16]
+ add r1, #8
+ cmp r0, r4
+ blt _0224E106
+_0224E120:
+ ldr r0, [r7, #8]
+ add r1, r6, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224E130
+MOD11_0224E130: ; 0x0224E130
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ str r1, [sp]
+ mov r0, #5
+ mov r1, #0x34
+ str r2, [sp, #4]
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #0x34
+ bl FUN_02016998
+ str r0, [r4, #8]
+ mov r0, #5
+ mov r1, #0x38
+ bl FUN_02016998
+ ldr r1, [r4, #8]
+ str r0, [r1, #4]
+ mov r0, #5
+ bl FUN_0206B8AC
+ ldr r1, [r4, #8]
+ mov r6, #0
+ ldr r1, [r1, #4]
+ ldr r3, [sp, #4]
+ str r0, [r1]
+ strb r6, [r4, #0xe]
+ str r5, [r4]
+ ldr r0, [sp, #4]
+ mov r1, #0x65
+ ldrb r0, [r0]
+ lsl r1, r1, #2
+ add r5, r4, #0
+ strb r0, [r4, #0xc]
+ ldr r0, [sp]
+ ldrb r0, [r0, r1]
+ add r1, r1, #1
+ strb r0, [r4, #0xd]
+ ldr r0, [sp]
+ ldrb r0, [r0, r1]
+ strb r0, [r4, #0xf]
+ ldr r0, [sp, #4]
+ ldrb r0, [r0, #1]
+ strb r0, [r4, #0x14]
+ ldr r0, [sp, #4]
+ ldrb r0, [r0, #2]
+ strb r0, [r4, #0x15]
+ ldr r0, [sp, #4]
+ ldrb r0, [r0, #3]
+ strb r0, [r4, #0x16]
+_0224E19A:
+ ldr r0, [sp, #4]
+ ldr r1, [r4, #8]
+ add r7, r0, r6
+ ldrb r0, [r7, #4]
+ add r1, r1, r6
+ mov r2, #0
+ strb r0, [r1, #0xc]
+_0224E1A8:
+ add r0, r3, r2
+ ldrb r1, [r0, #8]
+ add r0, r5, r2
+ add r2, r2, #1
+ strb r1, [r0, #0x18]
+ cmp r2, #6
+ blt _0224E1A8
+ add r7, #0x20
+ ldrb r1, [r7]
+ add r0, r4, r6
+ add r0, #0x30
+ add r6, r6, #1
+ strb r1, [r0]
+ add r3, r3, #6
+ add r5, r5, #6
+ cmp r6, #4
+ blt _0224E19A
+ ldr r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r0, #0xc]
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224E1DC
+MOD11_0224E1DC: ; 0x0224E1DC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #5
+ mov r1, #0x34
+ add r7, r2, #0
+ bl FUN_02016998
+ add r2, r0, #0
+ mov r3, #0
+ strb r3, [r2, #0xa]
+ str r4, [r2]
+ ldrb r0, [r7]
+ add r5, r7, #0
+ add r6, r2, #0
+ strb r0, [r2, #8]
+ ldrb r0, [r7, #1]
+ strb r0, [r2, #9]
+ ldrb r0, [r7, #2]
+ strb r0, [r2, #0xb]
+ ldr r0, [r7, #0x20]
+ str r0, [r2, #0x10]
+ ldrb r0, [r7, #3]
+ strb r0, [r2, #0x16]
+ add r0, r7, #0
+ strh r3, [r2, #0x14]
+ add r0, #0x24
+ ldrb r0, [r0]
+ strb r0, [r2, #0x18]
+_0224E216:
+ add r0, r7, r3
+ ldrb r1, [r0, #4]
+ add r0, r2, r3
+ mov r4, #0
+ strb r1, [r0, #0xc]
+_0224E220:
+ add r0, r5, r4
+ ldrb r1, [r0, #8]
+ add r0, r6, r4
+ add r4, r4, #1
+ strb r1, [r0, #0x1c]
+ cmp r4, #6
+ blt _0224E220
+ add r3, r3, #1
+ add r5, r5, #6
+ add r6, r6, #6
+ cmp r3, #4
+ blt _0224E216
+ ldr r0, [sp]
+ add r1, r2, #0
+ ldr r0, [r0, #0x10]
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224E248
+MOD11_0224E248: ; 0x0224E248
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x1c
+ add r4, r2, #0
+ bl FUN_02016998
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #0xe]
+ str r6, [r1]
+ ldrb r0, [r4]
+ strb r0, [r1, #0xc]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ strb r0, [r1, #0xd]
+ add r0, r5, #0
+ add r0, #0x28
+ str r0, [r1, #4]
+ ldrh r0, [r4, #2]
+ str r0, [r1, #0x10]
+ ldrb r0, [r4, #1]
+ strb r0, [r1, #0xf]
+ ldr r0, [r4, #4]
+ strh r0, [r1, #0x18]
+ ldr r0, [r4, #8]
+ str r0, [r1, #0x14]
+ ldr r0, [r5, #0x14]
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224E28C
+MOD11_0224E28C: ; 0x0224E28C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r6, r0, #0
+ add r7, r1, #0
+ add r5, r2, #0
+ bl MOD11_022300C8
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #8
+ bl FUN_02016998
+ add r4, r0, #0
+ str r6, [r4]
+ ldrb r0, [r5]
+ mov r1, #0x65
+ lsl r1, r1, #2
+ strb r0, [r4, #4]
+ ldrb r0, [r7, r1]
+ strb r0, [r4, #5]
+ ldrh r2, [r5, #2]
+ lsl r0, r2, #1
+ add r2, r2, r0
+ add r0, sp, #4
+ strh r2, [r0, #2]
+ mov r2, #2
+ strb r2, [r0, #1]
+ ldrb r0, [r5, #1]
+ ldrb r1, [r7, r1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [sp, #8]
+ add r0, r6, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r6, #0
+ add r2, sp, #4
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E2F0 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E2F0: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E2F4
+MOD11_0224E2F4: ; 0x0224E2F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD11_022300C4
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #8
+ bl FUN_02016998
+ add r4, r0, #0
+ add r0, r6, #0
+ str r5, [r4]
+ add r0, #0x94
+ ldrb r0, [r0]
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E340 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E340: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E344
+MOD11_0224E344: ; 0x0224E344
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r1, #0
+ mov r0, #5
+ mov r1, #0x70
+ add r5, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ add r0, #0x6a
+ strb r1, [r0]
+ str r7, [r4]
+ add r0, r6, #0
+ str r6, [r4, #4]
+ add r0, #0x94
+ ldrb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x68
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x69
+ strb r1, [r0]
+ add r0, r7, #0
+ bl MOD11_02230070
+ add r3, r4, #0
+ str r0, [r4, #0xc]
+ add r7, r5, #0
+ add r3, #0x10
+ mov r2, #0xb
+_0224E388:
+ ldmia r7!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0224E388
+ ldr r0, [r6, #0x20]
+ str r0, [r4, #8]
+ ldr r0, [r5, #0x4c]
+ cmp r0, #1
+ bne _0224E3A8
+ ldr r0, [r5, #0x50]
+ cmp r0, #0x19
+ bne _0224E3A8
+ mov r0, #0x1a
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+_0224E3A8:
+ ldr r0, [r5, #0x4c]
+ cmp r0, #1
+ bne _0224E3BC
+ ldr r0, [r5, #0x50]
+ cmp r0, #0x1a
+ bne _0224E3BC
+ mov r0, #0x1a
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+_0224E3BC:
+ ldrh r0, [r5, #2]
+ add r1, r4, #0
+ add r1, #0x6c
+ str r0, [sp]
+ add r0, r4, #0
+ ldr r2, [r5, #0x4c]
+ ldr r3, [r5, #0x50]
+ add r0, #0x6b
+ bl MOD11_022545B4
+ ldr r0, _0224E3DC ; =MOD11_02252754
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E3DC: .word MOD11_02252754
+
+ thumb_func_start MOD11_0224E3E0
+MOD11_0224E3E0: ; 0x0224E3E0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0xc
+ bl FUN_02016998
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #9]
+ str r5, [r1]
+ ldr r0, [r4, #0x20]
+ str r0, [r1, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #8]
+ ldr r0, _0224E40C ; =MOD11_022529C0
+ strb r2, [r1, #0xa]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224E40C: .word MOD11_022529C0
+
+ thumb_func_start MOD11_0224E410
+MOD11_0224E410: ; 0x0224E410
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r7, r0, #0
+ ldr r0, [r6, #0x2c]
+ add r5, r2, #0
+ cmp r0, #0
+ bne _0224E422
+ bl ErrorHandling
+_0224E422:
+ add r4, r6, #0
+ add r4, #0x28
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ blx MI_CpuFill8
+ str r7, [r4, #0xc]
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x4c
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ add r1, r0, #0
+ ldr r0, _0224E490 ; =0x00000195
+ ldrb r0, [r6, r0]
+ bl MOD11_02257F6C
+ add r1, r4, #0
+ add r1, #0x25
+ strb r0, [r1]
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ str r0, [r4, #0x28]
+ ldrh r0, [r5, #4]
+ str r0, [r4, #0x2c]
+ ldr r0, [r5, #8]
+ str r0, [r4, #0x30]
+ add r0, r4, #0
+ ldrb r1, [r5, #1]
+ add r0, #0x48
+ strb r1, [r0]
+ ldr r1, [r5, #8]
+ ldr r0, _0224E494 ; =0x00007FFF
+ cmp r1, r0
+ bne _0224E480
+ mov r0, #0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x30]
+_0224E480:
+ mov r2, #0xfa
+ ldr r0, _0224E498 ; =MOD11_02252A1C
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E490: .word 0x00000195
+_0224E494: .word 0x00007FFF
+_0224E498: .word MOD11_02252A1C
+
+ thumb_func_start MOD11_0224E49C
+MOD11_0224E49C: ; 0x0224E49C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r7, r0, #0
+ ldr r0, [r6, #0x2c]
+ add r5, r2, #0
+ cmp r0, #0
+ bne _0224E4AE
+ bl ErrorHandling
+_0224E4AE:
+ add r4, r6, #0
+ add r4, #0x28
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ blx MI_CpuFill8
+ str r7, [r4, #0xc]
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x4c
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r2, [r6, r0]
+ add r1, r4, #0
+ add r1, #0x24
+ strb r2, [r1]
+ ldr r1, [r5, #4]
+ add r0, r0, #1
+ str r1, [r4, #0x38]
+ ldr r1, [r5, #0xc]
+ str r1, [r4, #0x3c]
+ ldr r2, [r5, #8]
+ ldr r1, [r4, #0x38]
+ sub r1, r2, r1
+ str r1, [r4, #0x40]
+ ldrb r0, [r6, r0]
+ cmp r0, #0
+ bne _0224E4FA
+ mov r2, #0xfa
+ ldr r0, _0224E50C ; =MOD11_02252A70
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224E4FA:
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x24
+ add r4, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r4]
+ bl MOD11_022567B8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E50C: .word MOD11_02252A70
+
+ thumb_func_start MOD11_0224E510
+MOD11_0224E510: ; 0x0224E510
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x74
+ str r2, [sp]
+ bl FUN_02016998
+ add r1, r0, #0
+ ldr r0, _0224E5F0 ; =0x00000195
+ ldrb r2, [r4, r0]
+ mov r0, #1
+ tst r0, r2
+ beq _0224E532
+ mov r2, #2
+ b _0224E534
+_0224E532:
+ mov r2, #0
+_0224E534:
+ add r0, r1, #0
+ add r0, #0x67
+ strb r2, [r0]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #0x66
+ strb r2, [r0]
+ str r5, [r1]
+ ldr r0, [sp]
+ str r4, [r1, #4]
+ ldrb r3, [r0]
+ add r0, r1, #0
+ add r0, #0x64
+ strb r3, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r3, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x65
+ strb r3, [r0]
+ ldr r0, [r4, #0x20]
+ add r7, r1, #0
+ str r0, [r1, #8]
+ ldr r0, [sp]
+ add r5, r1, #0
+ ldrh r3, [r0, #2]
+ add r0, r1, #0
+ add r0, #0x68
+ strh r3, [r0]
+ ldr r0, [sp]
+ ldrb r3, [r0, #1]
+ add r0, r1, #0
+ add r0, #0x6a
+ strb r3, [r0]
+ ldr r0, [sp]
+ ldrb r3, [r0, #8]
+ add r0, r1, #0
+ add r0, #0x6b
+ strb r3, [r0]
+ ldr r0, [sp]
+ ldr r0, [r0, #4]
+ str r0, [r1, #0x6c]
+ ldr r0, [sp]
+ ldrb r3, [r0, #9]
+ add r0, r1, #0
+ add r0, #0x70
+ strh r3, [r0]
+ ldr r0, [sp]
+ ldrb r3, [r0, #0xa]
+ add r0, r1, #0
+ add r0, #0x72
+ strh r3, [r0]
+ ldr r3, [sp]
+ add r4, r3, #0
+_0224E5A0:
+ ldrh r0, [r3, #0xc]
+ add r3, r3, #2
+ strh r0, [r7, #0x24]
+ ldr r0, [sp]
+ add r7, r7, #2
+ add r0, r0, r2
+ str r0, [sp, #0x10]
+ ldrb r0, [r0, #0x14]
+ str r0, [sp, #8]
+ add r0, r1, r2
+ ldr r6, [sp, #8]
+ add r0, #0x2c
+ strb r6, [r0]
+ ldr r0, [sp, #0x10]
+ add r6, r1, r2
+ ldrb r0, [r0, #0x18]
+ str r6, [sp, #4]
+ add r6, #0x30
+ str r0, [sp, #0xc]
+ strb r0, [r6]
+ ldr r0, [sp, #0x10]
+ str r6, [sp, #4]
+ add r6, r1, r2
+ ldrb r0, [r0, #0x1c]
+ add r6, #0x34
+ add r2, r2, #1
+ strb r0, [r6]
+ ldr r0, [r4, #0x20]
+ add r4, r4, #4
+ str r0, [r5, #0x38]
+ add r5, r5, #4
+ cmp r2, #4
+ blt _0224E5A0
+ ldr r0, _0224E5F4 ; =MOD11_02252B30
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224E5F0: .word 0x00000195
+_0224E5F4: .word MOD11_02252B30
+
+ thumb_func_start MOD11_0224E5F8
+MOD11_0224E5F8: ; 0x0224E5F8
+ push {r3, r4, r5, lr}
+ add r5, r2, #0
+ ldr r2, _0224E624 ; =0x00000195
+ mov r4, #1
+ ldrb r2, [r1, r2]
+ tst r2, r4
+ beq _0224E60A
+ mov r4, #0x75
+ b _0224E60C
+_0224E60A:
+ sub r4, #0x76
+_0224E60C:
+ mov r2, #0x65
+ lsl r2, r2, #2
+ ldrb r1, [r1, r2]
+ ldrb r2, [r5]
+ bl MOD11_022567B8
+ ldrh r0, [r5, #2]
+ add r1, r4, #0
+ bl FUN_020054A8
+ pop {r3, r4, r5, pc}
+ nop
+_0224E624: .word 0x00000195
+
+ thumb_func_start MOD11_0224E628
+MOD11_0224E628: ; 0x0224E628
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #8
+ bl FUN_02016998
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #6]
+ add r0, r4, #0
+ str r5, [r1]
+ add r0, #0x94
+ ldrb r0, [r0]
+ strb r0, [r1, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #5]
+ ldr r0, _0224E658 ; =MOD11_02252DB4
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ nop
+_0224E658: .word MOD11_02252DB4
+
+ thumb_func_start MOD11_0224E65C
+MOD11_0224E65C: ; 0x0224E65C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x68
+ str r2, [sp]
+ bl FUN_02016998
+ add r1, r0, #0
+ str r5, [r1]
+ ldr r0, [sp]
+ str r4, [r1, #4]
+ ldrb r2, [r0]
+ add r0, r1, #0
+ add r0, #0x60
+ strb r2, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x61
+ strb r2, [r0]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #0x62
+ strb r2, [r0]
+ ldr r0, [sp]
+ add r7, r1, #0
+ ldrb r3, [r0, #1]
+ add r0, r1, #0
+ add r0, #0x63
+ strb r3, [r0]
+ ldr r0, [sp]
+ ldr r3, [sp]
+ ldrb r0, [r0, #2]
+ add r4, r3, #0
+ add r5, r1, #0
+ str r0, [r1, #0x64]
+_0224E6AA:
+ ldrh r0, [r3, #4]
+ add r3, r3, #2
+ strh r0, [r7, #0x20]
+ ldr r0, [sp]
+ add r7, r7, #2
+ add r0, r0, r2
+ str r0, [sp, #0x10]
+ ldrb r0, [r0, #0xc]
+ str r0, [sp, #8]
+ add r0, r1, r2
+ ldr r6, [sp, #8]
+ add r0, #0x28
+ strb r6, [r0]
+ ldr r0, [sp, #0x10]
+ add r6, r1, r2
+ ldrb r0, [r0, #0x10]
+ str r6, [sp, #4]
+ add r6, #0x2c
+ str r0, [sp, #0xc]
+ strb r0, [r6]
+ ldr r0, [sp, #0x10]
+ str r6, [sp, #4]
+ add r6, r1, r2
+ ldrb r0, [r0, #0x14]
+ add r6, #0x30
+ add r2, r2, #1
+ strb r0, [r6]
+ ldr r0, [r4, #0x18]
+ add r4, r4, #4
+ str r0, [r5, #0x34]
+ add r5, r5, #4
+ cmp r2, #4
+ blt _0224E6AA
+ ldr r0, _0224E6F8 ; =MOD11_02252E50
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E6F8: .word MOD11_02252E50
+
+ thumb_func_start MOD11_0224E6FC
+MOD11_0224E6FC: ; 0x0224E6FC
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5, #0x2c]
+ add r4, r2, #0
+ cmp r0, #0
+ bne _0224E70E
+ bl ErrorHandling
+_0224E70E:
+ ldrb r1, [r4, #1]
+ add r0, r5, #0
+ add r0, #0x72
+ strb r1, [r0]
+ add r0, r5, #0
+ mov r2, #1
+ ldr r1, [r5, #0x50]
+ add r0, #0x28
+ lsl r2, r2, #8
+ bl MOD11_02256D70
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0224E734
+MOD11_0224E734: ; 0x0224E734
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r6, r0, #0
+ add r7, r2, #0
+ bl MOD11_02230140
+ str r0, [sp, #4]
+ mov r0, #5
+ mov r1, #8
+ bl FUN_02016998
+ add r4, r0, #0
+ str r6, [r4]
+ ldrb r0, [r7]
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ strb r0, [r4, #5]
+ add r0, r6, #0
+ bl MOD11_02230E54
+ str r0, [sp]
+ mov r2, #0x65
+ lsl r2, r2, #2
+ ldrb r2, [r5, r2]
+ ldrb r3, [r7, #1]
+ ldr r1, [sp, #4]
+ add r0, r6, #0
+ bl MOD11_02231684
+ strb r0, [r4, #6]
+ ldr r0, _0224E78C ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E78C: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E790
+MOD11_0224E790: ; 0x0224E790
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r3, sp, #4
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD11_02253B74
+ add r0, r5, #0
+ bl MOD11_022300C4
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #8
+ bl FUN_02016998
+ add r4, r0, #0
+ str r5, [r4]
+ ldrb r0, [r7]
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, sp, #4
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E7E4 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E7E4: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E7E8
+MOD11_0224E7E8: ; 0x0224E7E8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r3, sp, #4
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD11_02253C48
+ add r0, r5, #0
+ bl MOD11_022300C4
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #8
+ bl FUN_02016998
+ add r4, r0, #0
+ str r5, [r4]
+ ldrb r0, [r7]
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, sp, #4
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E83C ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E83C: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E840
+MOD11_0224E840: ; 0x0224E840
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r2, sp, #0
+ add r6, r1, #0
+ bl MOD11_02253D28
+ add r0, r5, #0
+ bl MOD11_022300C4
+ add r7, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl FUN_02016998
+ add r4, r0, #0
+ str r5, [r4]
+ mov r0, #0x22
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, sp, #0
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E890 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E890: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E894
+MOD11_0224E894: ; 0x0224E894
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r3, sp, #4
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD11_02253DD4
+ add r0, r5, #0
+ bl MOD11_022300C4
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #8
+ bl FUN_02016998
+ add r4, r0, #0
+ str r5, [r4]
+ ldrb r0, [r7]
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, sp, #4
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E8E8 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E8E8: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E8EC
+MOD11_0224E8EC: ; 0x0224E8EC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0xc
+ bl FUN_02016998
+ add r1, r0, #0
+ add r0, r4, #0
+ str r5, [r1]
+ add r0, #0x94
+ ldrb r0, [r0]
+ mov r2, #0
+ strb r0, [r1, #8]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ add r4, #0x28
+ strb r0, [r1, #9]
+ strb r2, [r1, #0xa]
+ ldr r0, _0224E920 ; =MOD11_02252FBC
+ str r4, [r1, #4]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ nop
+_0224E920: .word MOD11_02252FBC
+
+ thumb_func_start MOD11_0224E924
+MOD11_0224E924: ; 0x0224E924
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, _0224E9B8 ; =0x00000196
+ add r4, r2, #0
+ ldrb r2, [r5, r1]
+ add r6, r0, #0
+ cmp r2, #0
+ bne _0224E976
+ bl MOD11_022300C4
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #0xc
+ bl FUN_02016998
+ add r7, r0, #0
+ str r6, [r7]
+ ldrb r0, [r4]
+ strb r0, [r7, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ strb r0, [r7, #5]
+ mov r0, #0
+ strb r0, [r7, #7]
+ add r0, r6, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r6, #0
+ add r2, r4, #4
+ bl MOD11_0223178C
+ strb r0, [r7, #6]
+ ldr r0, _0224E9BC ; =MOD11_0225304C
+ add r1, r7, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+_0224E976:
+ cmp r2, #1
+ bne _0224E992
+ sub r1, r1, #2
+ ldrb r1, [r5, r1]
+ bl MOD11_02256004
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ pop {r3, r4, r5, r6, r7, pc}
+_0224E992:
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _0224E9A8
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r0, r6, #0
+ bl MOD11_02256004
+_0224E9A8:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E9B8: .word 0x00000196
+_0224E9BC: .word MOD11_0225304C
+
+ thumb_func_start MOD11_0224E9C0
+MOD11_0224E9C0: ; 0x0224E9C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r6, #0
+ add r4, #0x28
+ add r7, r0, #0
+ add r5, r2, #0
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #1
+ blx MIi_CpuClearFast
+ mov r0, #0x65
+ str r7, [r4, #0xc]
+ lsl r0, r0, #2
+ ldrb r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ add r1, r0, #0
+ ldr r0, _0224EA70 ; =0x00000195
+ ldrb r0, [r6, r0]
+ bl MOD11_02257F6C
+ add r1, r4, #0
+ add r1, #0x25
+ strb r0, [r1]
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x4c
+ mov r2, #0
+ strb r1, [r0]
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ str r0, [r4, #0x28]
+ ldrh r0, [r5, #4]
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ ldrb r1, [r5, #1]
+ add r0, #0x48
+ strb r1, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x19
+ lsr r1, r0, #0x1e
+ add r0, r4, #0
+ add r0, #0x49
+ strb r1, [r0]
+ str r2, [r4, #0x30]
+ ldr r0, [r5, #8]
+ sub r2, #0x21
+ str r0, [r4, #0x38]
+ ldr r0, [r5, #0xc]
+ str r0, [r4, #0x3c]
+ add r0, r4, #0
+ ldrb r1, [r5, #6]
+ add r0, #0x26
+ strb r1, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x1b
+ lsr r1, r0, #0x1b
+ add r0, r4, #0
+ add r0, #0x4a
+ strb r1, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x1f
+ add r0, r4, #0
+ add r0, #0x4b
+ strb r1, [r0]
+ add r0, r4, #0
+ ldr r1, [r5, #0x10]
+ add r0, #0x27
+ strb r1, [r0]
+ ldr r1, [r4, #0x28]
+ add r0, r4, #0
+ bl MOD11_02256D70
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x24
+ add r4, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r4]
+ bl MOD11_022567B8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224EA70: .word 0x00000195
+
+ thumb_func_start MOD11_0224EA74
+MOD11_0224EA74: ; 0x0224EA74
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r4, r2, #0
+ bl FUN_02016998
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #0xa]
+ str r5, [r1]
+ ldrb r0, [r4]
+ strb r0, [r1, #8]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r1, #9]
+ ldrh r0, [r4, #2]
+ strh r0, [r1, #0xc]
+ ldrb r0, [r4, #1]
+ strb r0, [r1, #0xe]
+ ldr r0, _0224EAA8 ; =MOD11_022533F4
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224EAA8: .word MOD11_022533F4
+
+ thumb_func_start MOD11_0224EAAC
+MOD11_0224EAAC: ; 0x0224EAAC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r4, r2, #0
+ bl FUN_02016998
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #0xa]
+ str r6, [r1]
+ ldr r0, [r5, #0x20]
+ str r0, [r1, #4]
+ ldrb r0, [r4]
+ strb r0, [r1, #8]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ strb r0, [r1, #9]
+ ldrb r0, [r4, #1]
+ strb r0, [r1, #0xb]
+ strb r2, [r1, #0xc]
+ ldrb r0, [r4, #2]
+ strb r0, [r1, #0xd]
+ ldr r0, _0224EAE8 ; =MOD11_0225352C
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ nop
+_0224EAE8: .word MOD11_0225352C
+
+ thumb_func_start MOD11_0224EAEC
+MOD11_0224EAEC: ; 0x0224EAEC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r4, r2, #0
+ bl FUN_02016998
+ add r1, r0, #0
+ mov r0, #0
+ strb r0, [r1, #7]
+ str r6, [r1]
+ ldrb r2, [r4]
+ strb r2, [r1, #4]
+ mov r2, #0x65
+ lsl r2, r2, #2
+ ldrb r3, [r5, r2]
+ add r2, r2, #1
+ strb r3, [r1, #5]
+ ldrb r2, [r5, r2]
+ strb r2, [r1, #6]
+_0224EB16:
+ add r2, r4, r0
+ ldrb r3, [r2, #2]
+ add r2, r1, r0
+ add r0, r0, #1
+ strb r3, [r2, #8]
+ cmp r0, #6
+ blt _0224EB16
+ ldr r0, _0224EB30 ; =MOD11_0225359C
+ mov r2, #0
+ strb r2, [r1, #0xe]
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224EB30: .word MOD11_0225359C
+
+ thumb_func_start MOD11_0224EB34
+MOD11_0224EB34: ; 0x0224EB34
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r6, r2, #0
+ bl FUN_02016998
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #7]
+ str r5, [r1]
+ ldrb r0, [r6]
+ strb r0, [r1, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r3, [r4, r0]
+ add r0, r0, #1
+ strb r3, [r1, #5]
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #6]
+ ldr r0, _0224EB68 ; =MOD11_02253650
+ strb r2, [r1, #0xe]
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224EB68: .word MOD11_02253650
+
+ thumb_func_start MOD11_0224EB6C
+MOD11_0224EB6C: ; 0x0224EB6C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r4, r2, #0
+ bl FUN_02016998
+ add r1, r0, #0
+ mov r0, #0
+ strb r0, [r1, #7]
+ str r6, [r1]
+ ldrb r2, [r4]
+ strb r2, [r1, #4]
+ mov r2, #0x65
+ lsl r2, r2, #2
+ ldrb r3, [r5, r2]
+ add r2, r2, #1
+ strb r3, [r1, #5]
+ ldrb r2, [r5, r2]
+ strb r2, [r1, #6]
+_0224EB96:
+ add r2, r4, r0
+ ldrb r3, [r2, #2]
+ add r2, r1, r0
+ add r0, r0, #1
+ strb r3, [r2, #8]
+ cmp r0, #6
+ blt _0224EB96
+ mov r0, #1
+ strb r0, [r1, #0xe]
+ ldr r0, _0224EBB4 ; =MOD11_0225359C
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ nop
+_0224EBB4: .word MOD11_0225359C
+
+ thumb_func_start MOD11_0224EBB8
+MOD11_0224EBB8: ; 0x0224EBB8
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r6, r2, #0
+ bl FUN_02016998
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #7]
+ str r5, [r1]
+ ldrb r0, [r6]
+ strb r0, [r1, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r3, [r4, r0]
+ add r0, r0, #1
+ strb r3, [r1, #5]
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #6]
+ mov r0, #1
+ strb r0, [r1, #0xe]
+ ldr r0, _0224EBF0 ; =MOD11_02253650
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ nop
+_0224EBF0: .word MOD11_02253650
+
+ thumb_func_start MOD11_0224EBF4
+MOD11_0224EBF4: ; 0x0224EBF4
+ push {r4, r5, lr}
+ sub sp, #0x24
+ add r4, r1, #0
+ ldr r1, _0224EC44 ; =0x00000196
+ add r5, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _0224EC32
+ bl MOD11_022300C4
+ add r1, r0, #0
+ ldr r2, _0224EC48 ; =0x0000039B
+ add r0, sp, #0
+ strh r2, [r0, #2]
+ mov r3, #0
+ strb r3, [r0, #1]
+ add r0, r5, #0
+ add r2, sp, #0
+ bl MOD11_0223178C
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_0222FF6C
+ mov r1, #1
+ bl FUN_0200D858
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_022312C8
+_0224EC32:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x37
+ bl MOD11_022567B8
+ add sp, #0x24
+ pop {r4, r5, pc}
+ .align 2, 0
+_0224EC44: .word 0x00000196
+_0224EC48: .word 0x0000039B
+
+ thumb_func_start MOD11_0224EC4C
+MOD11_0224EC4C: ; 0x0224EC4C
+ push {r4, r5, r6, lr}
+ sub sp, #0x50
+ mov r3, #0x65
+ add r4, r1, #0
+ lsl r3, r3, #2
+ add r6, r2, #0
+ ldrb r3, [r4, r3]
+ add r1, r6, #0
+ add r2, sp, #0
+ add r5, r0, #0
+ bl MOD11_0225452C
+ add r0, sp, #0
+ mov r1, #5
+ bl MOD08_0222A494
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ ldrb r2, [r6]
+ add r0, r5, #0
+ bl MOD11_022567B8
+ add sp, #0x50
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224EC80
+MOD11_0224EC80: ; 0x0224EC80
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ bl FUN_02016998
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #0xe]
+ str r5, [r1]
+ add r0, r4, #0
+ str r4, [r1, #4]
+ add r0, #0x94
+ ldrb r0, [r0]
+ strb r0, [r1, #0xc]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #0xd]
+ ldr r0, [r4, #0x20]
+ str r0, [r1, #8]
+ ldr r0, _0224ECB4 ; =MOD11_022536D4
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224ECB4: .word MOD11_022536D4
+
+ thumb_func_start MOD11_0224ECB8
+MOD11_0224ECB8: ; 0x0224ECB8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ bl FUN_02016998
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #0xe]
+ str r5, [r1]
+ add r0, r4, #0
+ str r4, [r1, #4]
+ add r0, #0x94
+ ldrb r0, [r0]
+ strb r0, [r1, #0xc]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #0xd]
+ ldr r0, [r4, #0x20]
+ str r0, [r1, #8]
+ ldr r0, _0224ECEC ; =MOD11_02253720
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224ECEC: .word MOD11_02253720
+
+ thumb_func_start MOD11_0224ECF0
+MOD11_0224ECF0: ; 0x0224ECF0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r2, sp, #0
+ add r6, r1, #0
+ bl MOD11_02254108
+ add r0, r5, #0
+ bl MOD11_022300C4
+ add r7, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl FUN_02016998
+ add r4, r0, #0
+ str r5, [r4]
+ mov r0, #0x3b
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, sp, #0
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224ED40 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224ED40: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224ED44
+MOD11_0224ED44: ; 0x0224ED44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r3, sp, #0
+ add r6, r1, #0
+ bl MOD11_022541C4
+ add r0, r5, #0
+ bl MOD11_022300C4
+ add r7, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl FUN_02016998
+ add r4, r0, #0
+ str r5, [r4]
+ mov r0, #0x3c
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, sp, #0
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224ED94 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224ED94: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224ED98
+MOD11_0224ED98: ; 0x0224ED98
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r2, sp, #0
+ add r6, r1, #0
+ bl MOD11_022542B4
+ add r0, r5, #0
+ bl MOD11_022300C4
+ add r7, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl FUN_02016998
+ add r4, r0, #0
+ str r5, [r4]
+ mov r0, #0x3d
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, sp, #0
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224EDE8 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224EDE8: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224EDEC
+MOD11_0224EDEC: ; 0x0224EDEC
+ push {r4, r5, r6, lr}
+ sub sp, #0x50
+ mov r3, #0x65
+ add r4, r1, #0
+ lsl r3, r3, #2
+ add r6, r2, #0
+ ldrb r3, [r4, r3]
+ add r1, r6, #0
+ add r2, sp, #0
+ add r5, r0, #0
+ bl MOD11_0225452C
+ add r0, sp, #0
+ mov r1, #5
+ bl MOD08_0222A568
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ ldrb r2, [r6]
+ add r0, r5, #0
+ bl MOD11_022567B8
+ add sp, #0x50
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224EE20
+MOD11_0224EE20: ; 0x0224EE20
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ ldr r0, _0224EE70 ; =0x00000195
+ mov r1, #1
+ ldrb r0, [r5, r0]
+ add r4, r2, #0
+ tst r0, r1
+ beq _0224EE36
+ mov r1, #0x75
+ b _0224EE38
+_0224EE36:
+ sub r1, #0x76
+_0224EE38:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _0224EE48
+ cmp r0, #1
+ beq _0224EE58
+ cmp r0, #2
+ beq _0224EE50
+ b _0224EE5E
+_0224EE48:
+ ldr r0, _0224EE74 ; =0x000006FE
+ bl FUN_020054A8
+ b _0224EE5E
+_0224EE50:
+ ldr r0, _0224EE78 ; =0x000006FC
+ bl FUN_020054A8
+ b _0224EE5E
+_0224EE58:
+ ldr r0, _0224EE7C ; =0x000006FD
+ bl FUN_020054A8
+_0224EE5E:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ pop {r4, r5, r6, pc}
+ nop
+_0224EE70: .word 0x00000195
+_0224EE74: .word 0x000006FE
+_0224EE78: .word 0x000006FC
+_0224EE7C: .word 0x000006FD
+
+ thumb_func_start MOD11_0224EE80
+MOD11_0224EE80: ; 0x0224EE80
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ add r6, r0, #0
+ ldrh r0, [r4, #2]
+ add r5, r1, #0
+ bl FUN_0200521C
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224EEA0
+MOD11_0224EEA0: ; 0x0224EEA0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x6c
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ ldrb r1, [r4, #0x12]
+ add r5, r0, #0
+ cmp r1, #5
+ bls _0224EEB8
+ b _0224F2C2
+_0224EEB8:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224EEC4: ; jump table
+ .short _0224EED0 - _0224EEC4 - 2 ; case 0
+ .short _0224EEDA - _0224EEC4 - 2 ; case 1
+ .short _0224EEE8 - _0224EEC4 - 2 ; case 2
+ .short _0224F15E - _0224EEC4 - 2 ; case 3
+ .short _0224F1B2 - _0224EEC4 - 2 ; case 4
+ .short _0224F1D0 - _0224EEC4 - 2 ; case 5
+_0224EED0:
+ mov r0, #0x1c
+ str r0, [r4, #0x20]
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+_0224EEDA:
+ ldr r0, [r4, #0x20]
+ sub r0, r0, #1
+ str r0, [r4, #0x20]
+ bne _0224EFAE
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+_0224EEE8:
+ ldrb r0, [r4, #0x13]
+ add r1, sp, #0x10
+ cmp r0, #2
+ ldr r0, [r4, #0xc]
+ beq _0224EEF4
+ b _0224F040
+_0224EEF4:
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0x10
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #1
+ beq _0224EF08
+ cmp r0, #3
+ bne _0224EF2A
+_0224EF08:
+ add r1, sp, #0x10
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ cmp r0, #0xc0
+ ldr r0, [r4, #0xc]
+ bge _0224EF20
+ ldr r0, [r0]
+ mov r1, #8
+ mov r2, #0
+ bl FUN_0200C82C
+ b _0224EF2A
+_0224EF20:
+ ldr r0, [r0]
+ mov r1, #0xc0
+ mov r2, #0x58
+ bl FUN_0200C714
+_0224EF2A:
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x10
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0x10
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #1
+ bne _0224EF4E
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ b _0224EF9E
+_0224EF4E:
+ cmp r0, #3
+ bne _0224EF78
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r0, r1
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x18
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ neg r2, r2
+ bl FUN_020079E0
+ b _0224EF9E
+_0224EF78:
+ cmp r0, #5
+ bne _0224EF9E
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r1, r0
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x10
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ bl FUN_020079E0
+_0224EF9E:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ cmp r0, r1
+ bge _0224EFB0
+_0224EFAE:
+ b _0224F2D8
+_0224EFB0:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_02007314
+ ldr r0, [r4, #8]
+ mov r1, #0x2c
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #0x2d
+ mov r2, #0
+ bl FUN_02007558
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ ldr r1, [r4, #0x24]
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ ldrb r1, [r4, #0x11]
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldrb r3, [r4, #0x13]
+ ldr r1, [r4, #8]
+ bl FUN_02069038
+ ldrb r1, [r4, #0x11]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldr r1, [r4, #0x18]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #1
+ beq _0224F01C
+ cmp r0, #3
+ bne _0224F028
+_0224F01C:
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc0
+ ldr r0, [r0]
+ mov r2, #0x58
+ bl FUN_0200C714
+_0224F028:
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r4, #8]
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02007E68
+ ldrb r0, [r4, #0x12]
+ add sp, #0x6c
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F040:
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0x10
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _0224F054
+ cmp r0, #2
+ bne _0224F076
+_0224F054:
+ add r0, sp, #0x10
+ mov r1, #2
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x40
+ ldr r0, [r4, #0xc]
+ ble _0224F06C
+ ldr r0, [r0]
+ sub r1, #0xa
+ mov r2, #0
+ bl FUN_0200C82C
+ b _0224F076
+_0224F06C:
+ ldr r0, [r0]
+ mov r1, #0x40
+ mov r2, #0x88
+ bl FUN_0200C714
+_0224F076:
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x10
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0x10
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ bne _0224F09A
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ b _0224F0EA
+_0224F09A:
+ cmp r0, #2
+ bne _0224F0C2
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r1, r0
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x18
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ bl FUN_020079E0
+ b _0224F0EA
+_0224F0C2:
+ cmp r0, #4
+ bne _0224F0EA
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r0, r1
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x10
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ neg r2, r2
+ bl FUN_020079E0
+_0224F0EA:
+ mov r0, #0x14
+ ldrsh r5, [r4, r0]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, r5
+ bgt _0224F1C0
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ ldr r1, [r4, #0x24]
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ ldrb r1, [r4, #0x11]
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldrb r3, [r4, #0x13]
+ ldr r1, [r4, #8]
+ bl FUN_02069038
+ ldrb r1, [r4, #0x11]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ str r3, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldr r1, [r4, #0x18]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _0224F148
+ cmp r0, #2
+ bne _0224F154
+_0224F148:
+ ldr r0, [r4, #0xc]
+ mov r1, #0x40
+ ldr r0, [r0]
+ mov r2, #0x88
+ bl FUN_0200C714
+_0224F154:
+ ldrb r0, [r4, #0x12]
+ add sp, #0x6c
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F15E:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ ldrb r1, [r4, #0x11]
+ bl FUN_02014D7C
+ cmp r0, #1
+ bne _0224F1C0
+ ldr r0, [r4, #8]
+ bl FUN_02007390
+ cmp r0, #0
+ bne _0224F1C0
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _0224F1AA
+ ldrb r1, [r4, #0x11]
+ mov r0, #0xb
+ add r2, sp, #0x14
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x14
+ bl MOD11_02254404
+ mov r0, #4
+ add sp, #0x6c
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F1AA:
+ mov r0, #0xff
+ add sp, #0x6c
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F1B2:
+ bl FUN_02212384
+ add r0, r5, #0
+ bl FUN_022123A0
+ cmp r0, #0
+ beq _0224F1C2
+_0224F1C0:
+ b _0224F2D8
+_0224F1C2:
+ add r0, r5, #0
+ bl FUN_022123B0
+ mov r0, #0xff
+ add sp, #0x6c
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F1D0:
+ ldrb r5, [r4, #0x13]
+ cmp r5, #2
+ bne _0224F25E
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_02007314
+ ldr r0, [r4, #8]
+ mov r1, #0x2c
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #0x2d
+ mov r2, #0
+ bl FUN_02007558
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ ldr r1, [r4, #0x24]
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ ldrb r1, [r4, #0x11]
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldrb r3, [r4, #0x13]
+ ldr r1, [r4, #8]
+ bl FUN_02069038
+ ldrb r1, [r4, #0x11]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldr r1, [r4, #0x18]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #1
+ beq _0224F242
+ cmp r0, #3
+ bne _0224F24E
+_0224F242:
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc0
+ ldr r0, [r0]
+ mov r2, #0x58
+ bl FUN_0200C714
+_0224F24E:
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r4, #8]
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02007E68
+ b _0224F2BA
+_0224F25E:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ ldr r1, [r4, #0x24]
+ add r3, r5, #0
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ ldrb r1, [r4, #0x11]
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldr r1, [r4, #8]
+ bl FUN_02069038
+ ldrb r1, [r4, #0x11]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ str r3, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldr r1, [r4, #0x18]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _0224F2AE
+ cmp r0, #2
+ bne _0224F2BA
+_0224F2AE:
+ ldr r0, [r4, #0xc]
+ mov r1, #0x40
+ ldr r0, [r0]
+ mov r2, #0x88
+ bl FUN_0200C714
+_0224F2BA:
+ mov r0, #3
+ add sp, #0x6c
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F2C2:
+ ldrb r1, [r4, #0x11]
+ ldrb r2, [r4, #0x10]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0224F2D8:
+ add sp, #0x6c
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0224F2DC
+MOD11_0224F2DC: ; 0x0224F2DC
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ cmp r0, #7
+ bls _0224F2F0
+ b _0224F7A2
+_0224F2F0:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224F2FC: ; jump table
+ .short _0224F30C - _0224F2FC - 2 ; case 0
+ .short _0224F322 - _0224F2FC - 2 ; case 1
+ .short _0224F366 - _0224F2FC - 2 ; case 2
+ .short _0224F4B0 - _0224F2FC - 2 ; case 3
+ .short _0224F4CC - _0224F2FC - 2 ; case 4
+ .short _0224F6E2 - _0224F2FC - 2 ; case 5
+ .short _0224F6F6 - _0224F2FC - 2 ; case 6
+ .short _0224F77C - _0224F2FC - 2 ; case 7
+_0224F30C:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x96
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x83
+ strb r1, [r0]
+_0224F322:
+ add r1, sp, #0x38
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r0, [r0]
+ add r1, r4, #0
+ add r2, r4, #0
+ str r0, [sp, #0x38]
+ add r1, #0x81
+ add r2, #0x8c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_02230014
+ str r0, [sp, #0x40]
+ mov r0, #5
+ add r1, sp, #0x38
+ bl MOD08_02228218
+ str r0, [r4, #8]
+ bl MOD08_02228524
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x9c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F366:
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A80
+ cmp r0, #0
+ bne _0224F3AE
+ ldr r0, [r4, #8]
+ bl MOD08_02228570
+ cmp r0, #1
+ bne _0224F3AE
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A00
+ cmp r0, #1
+ bne _0224F3AE
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r0, [r0]
+ cmp r0, #4
+ bne _0224F3B8
+ add r0, r4, #0
+ add r0, #0x96
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x96
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x96
+ ldrb r0, [r0]
+ cmp r0, #0xc
+ bhs _0224F3B0
+_0224F3AE:
+ b _0224F7C0
+_0224F3B0:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x96
+ strb r1, [r0]
+_0224F3B8:
+ ldr r0, [r4]
+ bl MOD11_02230068
+ add r1, r4, #0
+ add r1, #0x86
+ add r5, r0, #0
+ ldrh r1, [r1]
+ add r0, sp, #0x24
+ bl FUN_02069010
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r3, [r0]
+ mov r0, #6
+ add r2, r4, #0
+ add r1, r3, #0
+ mul r1, r0
+ ldr r0, _0224F690 ; =0x0222D552
+ add r2, #0x14
+ ldrsh r0, [r0, r1]
+ str r0, [sp]
+ ldr r0, _0224F694 ; =0x0222D554
+ ldrsh r0, [r0, r1]
+ add r1, r5, #0
+ lsl r5, r3, #2
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x85
+ ldrb r0, [r0]
+ ldr r3, _0224F698 ; =0x0222D538
+ str r0, [sp, #8]
+ mov r0, #0x90
+ ldrsb r0, [r4, r0]
+ ldrsh r3, [r3, r5]
+ str r0, [sp, #0xc]
+ mov r0, #0x91
+ ldrsb r0, [r4, r0]
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0x93
+ ldrb r0, [r0]
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r0, [r0]
+ str r0, [sp, #0x18]
+ add r0, sp, #0x24
+ str r0, [sp, #0x1c]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ bl MOD11_02253A88
+ ldr r1, [r4, #4]
+ mov r2, #0
+ str r0, [r1, #0x20]
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0x2c
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x20]
+ mov r2, #1
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r3, #0
+ lsl r1, r0, #1
+ ldr r0, _0224F69C ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ add r2, r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ bl MOD08_022285A4
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ ldr r0, _0224F6A0 ; =0x00000706
+ bne _0224F498
+ mov r1, #0x75
+ bl FUN_020054A8
+ b _0224F4A0
+_0224F498:
+ mov r1, #0x74
+ mvn r1, r1
+ bl FUN_020054A8
+_0224F4A0:
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x9c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F4B0:
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_022299E8
+ cmp r0, #1
+ beq _0224F4CC
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x83
+ strb r1, [r0]
+_0224F4CC:
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_0200782C
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r0, r1
+ bne _0224F5B2
+ ldr r0, [r4, #8]
+ bl MOD08_022285B4
+ cmp r0, #0
+ bne _0224F5B2
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _0224F534
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x20]
+ bl FUN_02007314
+ ldr r0, [r4, #4]
+ mov r1, #0x2d
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ add r2, r4, #0
+ str r1, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ b _0224F55E
+_0224F534:
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ add r2, r4, #0
+ str r3, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+_0224F55E:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ add r2, r4, #0
+ add r3, r4, #0
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ add r2, #0x86
+ add r3, #0x84
+ str r1, [sp, #8]
+ ldr r1, [r4, #4]
+ ldrh r2, [r2]
+ ldrb r3, [r3]
+ ldr r1, [r1, #0x20]
+ bl FUN_02069038
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r2, #0
+ add r3, r2, #0
+ lsl r1, r0, #1
+ ldr r0, _0224F69C ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ mov r0, #5
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F5B2:
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_0200782C
+ mov r2, #1
+ lsl r2, r2, #8
+ cmp r0, r2
+ ldr r0, [r4, #4]
+ blt _0224F6BC
+ ldr r0, [r0, #0x20]
+ mov r1, #0xc
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r0, #0x20]
+ add r2, #0xf3
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _0224F628
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x20]
+ bl FUN_02007314
+ ldr r0, [r4, #4]
+ mov r1, #0x2d
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ add r2, r4, #0
+ str r1, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ b _0224F652
+_0224F628:
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ add r2, r4, #0
+ str r3, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+_0224F652:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ add r2, r4, #0
+ add r3, r4, #0
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ add r2, #0x86
+ add r3, #0x84
+ str r1, [sp, #8]
+ ldr r1, [r4, #4]
+ ldrh r2, [r2]
+ ldrb r3, [r3]
+ ldr r1, [r1, #0x20]
+ bl FUN_02069038
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r2, #0
+ mov r3, #1
+ lsl r1, r0, #1
+ ldr r0, _0224F69C ; =0x0225E84A
+ b _0224F6A4
+ .align 2, 0
+_0224F690: .word 0x0222D552
+_0224F694: .word 0x0222D554
+_0224F698: .word 0x0222D538
+_0224F69C: .word 0x0225E84A
+_0224F6A0: .word 0x00000706
+_0224F6A4:
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ mov r0, #5
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F6BC:
+ ldr r0, [r0, #0x20]
+ mov r1, #0xc
+ mov r2, #0x20
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ ldr r0, [r0, #0x20]
+ mov r2, #0x20
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0x90
+ ldrsb r1, [r4, r1]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007F34
+ add sp, #0x9c
+ pop {r4, r5, pc}
+_0224F6E2:
+ ldr r0, [r4, #8]
+ bl MOD08_022285B4
+ cmp r0, #0
+ bne _0224F7C0
+ mov r0, #6
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F6F6:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ bl FUN_02014D7C
+ cmp r0, #1
+ bne _0224F7C0
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007390
+ cmp r0, #0
+ bne _0224F7C0
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A2C
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x88
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ bl MOD08_02228618
+ add r0, r4, #0
+ add r0, #0x92
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0224F772
+ mov r0, #5
+ bl FUN_02211F5C
+ str r0, [r4, #0x24]
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r1, [r0]
+ mov r0, #0xb
+ add r2, sp, #0x44
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ add r3, sp, #0x44
+ bl MOD11_02254404
+ mov r0, #7
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F772:
+ mov r0, #0xff
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F77C:
+ ldr r0, [r4, #0x24]
+ bl FUN_02212384
+ ldr r0, [r4, #0x24]
+ bl FUN_022123A0
+ cmp r0, #0
+ bne _0224F7C0
+ ldr r0, [r4, #0x24]
+ bl FUN_022123B0
+ ldr r0, [r4, #0x24]
+ bl FUN_02212024
+ mov r0, #0xff
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F7A2:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x81
+ add r2, #0x80
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0224F7C0:
+ add sp, #0x9c
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_0224F7C4
+MOD11_0224F7C4: ; 0x0224F7C4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c4
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r1, r4, #0
+ add r1, #0x83
+ ldrb r1, [r1]
+ add r5, r0, #0
+ cmp r1, #0xb
+ bls _0224F7E0
+ b _0224FD68
+_0224F7E0:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224F7EC: ; jump table
+ .short _0224F804 - _0224F7EC - 2 ; case 0
+ .short _0224F90C - _0224F7EC - 2 ; case 1
+ .short _0224F958 - _0224F7EC - 2 ; case 2
+ .short _0224F9E2 - _0224F7EC - 2 ; case 3
+ .short _0224F9FA - _0224F7EC - 2 ; case 4
+ .short _0224FC14 - _0224F7EC - 2 ; case 5
+ .short _0224FC28 - _0224F7EC - 2 ; case 6
+ .short _0224FC9C - _0224F7EC - 2 ; case 7
+ .short _0224FCC0 - _0224F7EC - 2 ; case 8
+ .short _0224FC9C - _0224F7EC - 2 ; case 9
+ .short _0224FD0C - _0224F7EC - 2 ; case 10
+ .short _0224FC9C - _0224F7EC - 2 ; case 11
+_0224F804:
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r1, [r0]
+ ldr r0, _0224FB58 ; =0x0225E818
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0x44]
+ mov r0, #5
+ str r0, [sp, #0x48]
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r0, [r0]
+ str r0, [sp, #0x50]
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ str r0, [sp, #0x54]
+ ldr r0, [r4]
+ bl MOD11_02230078
+ str r0, [sp, #0x60]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ str r0, [sp, #0x64]
+ mov r2, #1
+ mov r1, #0
+ add r0, r4, #0
+ str r2, [sp, #0x58]
+ str r1, [sp, #0x5c]
+ add r0, #0x94
+ ldrh r0, [r0]
+ cmp r0, #1
+ bne _0224F84A
+ str r2, [sp, #0x4c]
+ b _0224F84C
+_0224F84A:
+ str r1, [sp, #0x4c]
+_0224F84C:
+ add r0, sp, #0x44
+ bl MOD08_02229918
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02230068
+ add r1, r4, #0
+ add r1, #0x86
+ add r5, r0, #0
+ ldrh r1, [r1]
+ add r0, sp, #0x30
+ bl FUN_02069010
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r3, [r0]
+ mov r0, #6
+ add r2, r4, #0
+ add r1, r3, #0
+ mul r1, r0
+ ldr r0, _0224FB5C ; =0x0222D552
+ add r2, #0x14
+ ldrsh r0, [r0, r1]
+ str r0, [sp]
+ ldr r0, _0224FB60 ; =0x0222D554
+ ldrsh r0, [r0, r1]
+ add r1, r5, #0
+ lsl r5, r3, #2
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x85
+ ldrb r0, [r0]
+ ldr r3, _0224FB64 ; =0x0222D538
+ str r0, [sp, #8]
+ mov r0, #0x90
+ ldrsb r0, [r4, r0]
+ ldrsh r3, [r3, r5]
+ str r0, [sp, #0xc]
+ mov r0, #0x91
+ ldrsb r0, [r4, r0]
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0x93
+ ldrb r0, [r0]
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r0, [r0]
+ str r0, [sp, #0x18]
+ add r0, sp, #0x30
+ str r0, [sp, #0x1c]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ bl MOD11_02253A88
+ ldr r1, [r4, #4]
+ mov r2, #0
+ str r0, [r1, #0x20]
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0x2c
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x20]
+ mov r2, #1
+ bl FUN_02007558
+ ldr r0, [r4]
+ mov r1, #5
+ bl FUN_0221590C
+ str r0, [r4, #0x10]
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224F90C:
+ add r1, sp, #0x24
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r0, [r0]
+ add r1, r4, #0
+ add r2, r4, #0
+ str r0, [sp, #0x24]
+ add r1, #0x81
+ add r2, #0x8c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_02230014
+ str r0, [sp, #0x2c]
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ add r1, sp, #0x24
+ str r0, [sp, #0x28]
+ mov r0, #5
+ bl MOD08_02228218
+ str r0, [r4, #8]
+ bl MOD08_02228524
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224F958:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02229A80
+ cmp r0, #0
+ beq _0224F96C
+ add r0, r4, #0
+ add r0, #0x94
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _0224F980
+_0224F96C:
+ ldr r0, [r4, #8]
+ bl MOD08_02228570
+ cmp r0, #1
+ bne _0224F980
+ ldr r0, [r4, #0xc]
+ bl MOD08_02229A00
+ cmp r0, #1
+ beq _0224F982
+_0224F980:
+ b _0224FD86
+_0224F982:
+ ldr r0, [r4, #0x10]
+ bl FUN_02215918
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r3, #0
+ lsl r1, r0, #1
+ ldr r0, _0224FB68 ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ add r2, r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ bl MOD08_022285A4
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ ldr r0, _0224FB6C ; =0x00000706
+ bne _0224F9CA
+ mov r1, #0x75
+ bl FUN_020054A8
+ b _0224F9D2
+_0224F9CA:
+ mov r1, #0x74
+ mvn r1, r1
+ bl FUN_020054A8
+_0224F9D2:
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224F9E2:
+ ldr r0, [r4, #0xc]
+ bl MOD08_022299E8
+ cmp r0, #1
+ beq _0224F9FA
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x83
+ strb r1, [r0]
+_0224F9FA:
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_0200782C
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r0, r1
+ bne _0224FAE0
+ ldr r0, [r4, #8]
+ bl MOD08_022285B4
+ cmp r0, #0
+ bne _0224FAE0
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _0224FA62
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x20]
+ bl FUN_02007314
+ ldr r0, [r4, #4]
+ mov r1, #0x2d
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ add r2, r4, #0
+ str r1, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ b _0224FA8C
+_0224FA62:
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ add r2, r4, #0
+ str r3, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+_0224FA8C:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ add r2, r4, #0
+ add r3, r4, #0
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ add r2, #0x86
+ add r3, #0x84
+ str r1, [sp, #8]
+ ldr r1, [r4, #4]
+ ldrh r2, [r2]
+ ldrb r3, [r3]
+ ldr r1, [r1, #0x20]
+ bl FUN_02069038
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r2, #0
+ add r3, r2, #0
+ lsl r1, r0, #1
+ ldr r0, _0224FB68 ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ mov r0, #5
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FAE0:
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_0200782C
+ mov r2, #1
+ lsl r2, r2, #8
+ cmp r0, r2
+ ldr r0, [r4, #4]
+ blt _0224FBEE
+ ldr r0, [r0, #0x20]
+ mov r1, #0xc
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r0, #0x20]
+ add r2, #0xf3
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _0224FB70
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x20]
+ bl FUN_02007314
+ ldr r0, [r4, #4]
+ mov r1, #0x2d
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ add r2, r4, #0
+ str r1, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ b _0224FB9A
+ nop
+_0224FB58: .word 0x0225E818
+_0224FB5C: .word 0x0222D552
+_0224FB60: .word 0x0222D554
+_0224FB64: .word 0x0222D538
+_0224FB68: .word 0x0225E84A
+_0224FB6C: .word 0x00000706
+_0224FB70:
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ add r2, r4, #0
+ str r3, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+_0224FB9A:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ add r2, r4, #0
+ add r3, r4, #0
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ add r2, #0x86
+ add r3, #0x84
+ str r1, [sp, #8]
+ ldr r1, [r4, #4]
+ ldrh r2, [r2]
+ ldrb r3, [r3]
+ ldr r1, [r1, #0x20]
+ bl FUN_02069038
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r2, #0
+ mov r3, #1
+ lsl r1, r0, #1
+ ldr r0, _0224FD8C ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ mov r0, #5
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FBEE:
+ ldr r0, [r0, #0x20]
+ mov r1, #0xc
+ mov r2, #0x20
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ ldr r0, [r0, #0x20]
+ mov r2, #0x20
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0x90
+ ldrsb r1, [r4, r1]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007F34
+ add sp, #0x1c4
+ pop {r3, r4, r5, r6, pc}
+_0224FC14:
+ ldr r0, [r4, #8]
+ bl MOD08_022285B4
+ cmp r0, #0
+ bne _0224FC48
+ mov r0, #6
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FC28:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ bl FUN_02014D7C
+ cmp r0, #1
+ bne _0224FC48
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007390
+ cmp r0, #0
+ beq _0224FC4A
+_0224FC48:
+ b _0224FD86
+_0224FC4A:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02229A2C
+ ldr r0, [r4, #8]
+ bl MOD08_02228618
+ add r0, r4, #0
+ add r0, #0x92
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0224FC92
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r1, [r0]
+ mov r0, #0xb
+ add r2, sp, #0x16c
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x16c
+ bl MOD11_02254404
+ mov r0, #7
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FC92:
+ mov r0, #8
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FC9C:
+ bl FUN_02212384
+ add r0, r5, #0
+ bl FUN_022123A0
+ cmp r0, #0
+ bne _0224FD86
+ add r0, r5, #0
+ bl FUN_022123B0
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FCC0:
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0224FD02
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0x114
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x114
+ bl MOD11_02254404
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FD02:
+ mov r0, #0xff
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FD0C:
+ add r3, r4, #0
+ add r3, #0x81
+ ldrb r3, [r3]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x28
+ add r2, sp, #0xc4
+ bl MOD11_0225452C
+ add r0, sp, #0xc4
+ mov r1, #5
+ bl MOD08_0222A568
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x6c
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x6c
+ bl MOD11_02254404
+ mov r0, #0x1a
+ ldr r1, [r4, #4]
+ mov r2, #1
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FD68:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x81
+ add r2, #0x80
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0224FD86:
+ add sp, #0x1c4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0224FD8C: .word 0x0225E84A
+
+ thumb_func_start MOD11_0224FD90
+MOD11_0224FD90: ; 0x0224FD90
+ push {r4, r5, r6, lr}
+ sub sp, #0x138
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r1, r4, #0
+ add r1, #0x6b
+ ldrb r1, [r1]
+ add r5, r0, #0
+ cmp r1, #8
+ bhi _0224FE7A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224FDB6: ; jump table
+ .short _0224FDC8 - _0224FDB6 - 2 ; case 0
+ .short _0224FE6C - _0224FDB6 - 2 ; case 1
+ .short _0224FE10 - _0224FDB6 - 2 ; case 2
+ .short _0224FE6C - _0224FDB6 - 2 ; case 3
+ .short _0224FE92 - _0224FDB6 - 2 ; case 4
+ .short _0224FF36 - _0224FDB6 - 2 ; case 5
+ .short _0224FF50 - _0224FDB6 - 2 ; case 6
+ .short _0224FFA6 - _0224FDB6 - 2 ; case 7
+ .short _0224FFC0 - _0224FDB6 - 2 ; case 8
+_0224FDC8:
+ ldr r0, [r4, #0x70]
+ cmp r0, #0
+ beq _0224FE06
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0xe0
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0xe0
+ bl MOD11_02254404
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ add r4, #0x6b
+ add sp, #0x138
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FE06:
+ mov r0, #4
+ add r4, #0x6b
+ add sp, #0x138
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FE10:
+ add r3, r4, #0
+ add r3, #0x69
+ ldrb r3, [r3]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x10
+ add r2, sp, #0x90
+ bl MOD11_0225452C
+ add r0, sp, #0x90
+ mov r1, #5
+ bl MOD08_0222A494
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x38
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x38
+ bl MOD11_02254404
+ mov r0, #0x1a
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ add r4, #0x6b
+ add sp, #0x138
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FE6C:
+ bl FUN_02212384
+ add r0, r5, #0
+ bl FUN_022123A0
+ cmp r0, #0
+ beq _0224FE7C
+_0224FE7A:
+ b _0224FFDE
+_0224FE7C:
+ add r0, r5, #0
+ bl FUN_022123B0
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ add r4, #0x6b
+ add sp, #0x138
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FE92:
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r1, [r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0224FEDA
+ ldr r0, _0224FFE4 ; =0x0225E818
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0x10]
+ mov r0, #5
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r0, [r0]
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ add r0, #0x6e
+ ldrh r0, [r0]
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ bl MOD11_02230078
+ str r0, [sp, #0x2c]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ str r0, [sp, #0x30]
+ mov r0, #1
+ str r0, [sp, #0x24]
+ mov r0, #0
+ str r0, [sp, #0x28]
+ add r0, sp, #0x10
+ bl MOD08_02229918
+ str r0, [r4, #0xc]
+_0224FEDA:
+ add r0, r4, #0
+ mov r1, #5
+ add r0, #0x6b
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x6e
+ ldrh r0, [r0]
+ mov r2, #0x10
+ lsl r1, r0, #1
+ ldr r0, _0224FFE8 ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0
+ add r3, r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #8]
+ bl FUN_02007E68
+ add r4, #0x6a
+ ldrb r0, [r4]
+ cmp r0, #5
+ bhi _0224FFDE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224FF10: ; jump table
+ .short _0224FF1C - _0224FF10 - 2 ; case 0
+ .short _0224FF2A - _0224FF10 - 2 ; case 1
+ .short _0224FF1C - _0224FF10 - 2 ; case 2
+ .short _0224FF2A - _0224FF10 - 2 ; case 3
+ .short _0224FF1C - _0224FF10 - 2 ; case 4
+ .short _0224FF2A - _0224FF10 - 2 ; case 5
+_0224FF1C:
+ mov r1, #0x74
+ ldr r0, _0224FFEC ; =0x00000706
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x138
+ pop {r4, r5, r6, pc}
+_0224FF2A:
+ ldr r0, _0224FFEC ; =0x00000706
+ mov r1, #0x75
+ bl FUN_020054A8
+ add sp, #0x138
+ pop {r4, r5, r6, pc}
+_0224FF36:
+ ldr r0, [r4, #8]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _0224FFDE
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ add r4, #0x6b
+ add sp, #0x138
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FF50:
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #8]
+ sub r2, #0x2c
+ bl FUN_020079E0
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #8]
+ sub r2, #0x2d
+ bl FUN_020079E0
+ add r1, r4, #0
+ add r1, #0x6c
+ ldrb r1, [r1]
+ ldr r0, [r4, #8]
+ bl FUN_02007F34
+ ldr r0, [r4, #8]
+ mov r1, #0xc
+ bl FUN_0200782C
+ cmp r0, #0
+ bgt _0224FFDE
+ ldr r0, [r4, #8]
+ bl FUN_02007534
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r1, [r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0224FF9C
+ mov r0, #7
+ add r4, #0x6b
+ add sp, #0x138
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FF9C:
+ mov r0, #8
+ add r4, #0x6b
+ add sp, #0x138
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FFA6:
+ ldr r0, [r4, #0xc]
+ bl MOD08_022299E8
+ cmp r0, #0
+ bne _0224FFDE
+ ldr r0, [r4, #0xc]
+ bl MOD08_02229A2C
+ mov r0, #8
+ add r4, #0x6b
+ add sp, #0x138
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FFC0:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x69
+ add r2, #0x68
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0224FFDE:
+ add sp, #0x138
+ pop {r4, r5, r6, pc}
+ nop
+_0224FFE4: .word 0x0225E818
+_0224FFE8: .word 0x0225E84A
+_0224FFEC: .word 0x00000706
+
+ thumb_func_start MOD11_0224FFF0
+MOD11_0224FFF0: ; 0x0224FFF0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0
+ beq _02250002
+ cmp r0, #1
+ beq _02250048
+ pop {r3, r4, r5, pc}
+_02250002:
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #4]
+ sub r2, #0x2c
+ bl FUN_020079E0
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #4]
+ sub r2, #0x2d
+ bl FUN_020079E0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0225002E
+ sub r0, r0, #1
+ strb r0, [r4, #0xc]
+ mov r1, #1
+ ldr r0, [r4, #4]
+ sub r2, r1, #2
+ bl FUN_020079E0
+_0225002E:
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ bl FUN_0200782C
+ cmp r0, #0
+ bgt _0225005E
+ ldr r0, [r4, #4]
+ bl FUN_02007534
+ ldrb r0, [r4, #0xb]
+ add r0, r0, #1
+ strb r0, [r4, #0xb]
+ pop {r3, r4, r5, pc}
+_02250048:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0225005E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02250060
+MOD11_02250060: ; 0x02250060
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ add r5, r0, #0
+ ldr r0, [r4, #0x20]
+ cmp r0, #0x21
+ bge _0225009C
+ ldrb r0, [r4, #0x12]
+ cmp r0, #2
+ blo _0225009C
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _02250086
+ cmp r0, #2
+ bne _0225009C
+_02250086:
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ mov r1, #3
+ mov r2, #1
+ mov r3, #4
+ bl FUN_020179E0
+ ldr r0, [r4, #0x20]
+ add r0, r0, #1
+ str r0, [r4, #0x20]
+_0225009C:
+ ldrb r0, [r4, #0x12]
+ cmp r0, #4
+ bls _022500A4
+ b _02250332
+_022500A4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022500B0: ; jump table
+ .short _022500BA - _022500B0 - 2 ; case 0
+ .short _022500C4 - _022500B0 - 2 ; case 1
+ .short _022500D2 - _022500B0 - 2 ; case 2
+ .short _022502CA - _022500B0 - 2 ; case 3
+ .short _022502E4 - _022500B0 - 2 ; case 4
+_022500BA:
+ mov r0, #0x1c
+ str r0, [r4, #0x1c]
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+_022500C4:
+ ldr r0, [r4, #0x1c]
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ bne _022501A6
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+_022500D2:
+ ldrb r0, [r4, #0x13]
+ add r1, sp, #0
+ cmp r0, #2
+ ldr r0, [r4, #8]
+ bne _022501D2
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ beq _022500F0
+ cmp r0, #3
+ bne _02250112
+_022500F0:
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ cmp r0, #0xc0
+ ldr r0, [r4, #8]
+ bge _02250108
+ ldr r0, [r0]
+ mov r1, #8
+ mov r2, #0
+ bl FUN_0200C82C
+ b _02250112
+_02250108:
+ ldr r0, [r0]
+ mov r1, #0xc0
+ mov r2, #0x58
+ bl FUN_0200C714
+_02250112:
+ ldr r0, [r4, #8]
+ add r1, sp, #0
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ beq _02250136
+ cmp r0, #3
+ bne _02250146
+ cmp r5, #3
+ beq _02250136
+ cmp r5, #0x83
+ beq _02250136
+ cmp r5, #7
+ bne _02250146
+_02250136:
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_02007558
+ b _02250196
+_02250146:
+ cmp r0, #3
+ bne _02250170
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r0, r1
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x18
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ neg r2, r2
+ bl FUN_020079E0
+ b _02250196
+_02250170:
+ cmp r0, #5
+ bne _02250196
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r1, r0
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x10
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ bl FUN_020079E0
+_02250196:
+ mov r0, #0x14
+ ldrsh r5, [r4, r0]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, r5
+ bge _022501A8
+_022501A6:
+ b _02250332
+_022501A8:
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ beq _022501BC
+ cmp r0, #3
+ bne _022501C8
+_022501BC:
+ ldr r0, [r4, #8]
+ mov r1, #0xc0
+ ldr r0, [r0]
+ mov r2, #0x58
+ bl FUN_0200C714
+_022501C8:
+ ldrb r0, [r4, #0x12]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_022501D2:
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _022501E6
+ cmp r0, #2
+ bne _02250208
+_022501E6:
+ add r0, sp, #0
+ mov r1, #2
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x40
+ ldr r0, [r4, #8]
+ ble _022501FE
+ ldr r0, [r0]
+ sub r1, #0xa
+ mov r2, #0
+ bl FUN_0200C82C
+ b _02250208
+_022501FE:
+ ldr r0, [r0]
+ mov r1, #0x40
+ mov r2, #0x88
+ bl FUN_0200C714
+_02250208:
+ ldr r0, [r4, #8]
+ add r1, sp, #0
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _02250230
+ cmp r0, #2
+ bne _02250240
+ cmp r5, #3
+ beq _02250230
+ cmp r5, #0x83
+ beq _02250230
+ cmp r5, #0x13
+ beq _02250230
+ cmp r5, #7
+ bne _02250240
+_02250230:
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_02007558
+ b _02250290
+_02250240:
+ cmp r0, #2
+ bne _02250268
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r1, r0
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x18
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ bl FUN_020079E0
+ b _02250290
+_02250268:
+ cmp r0, #4
+ bne _02250290
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r0, r1
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x10
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ neg r2, r2
+ bl FUN_020079E0
+_02250290:
+ mov r0, #0x14
+ ldrsh r5, [r4, r0]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, r5
+ bgt _02250332
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _022502B4
+ cmp r0, #2
+ bne _022502C0
+_022502B4:
+ ldr r0, [r4, #8]
+ mov r1, #0x40
+ ldr r0, [r0]
+ mov r2, #0x88
+ bl FUN_0200C714
+_022502C0:
+ ldrb r0, [r4, #0x12]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_022502CA:
+ ldrb r1, [r4, #0x11]
+ ldrb r2, [r4, #0x10]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_022502E4:
+ ldrb r0, [r4, #0x13]
+ cmp r0, #2
+ ldr r0, [r4, #4]
+ bne _0225030E
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ beq _02250300
+ cmp r0, #3
+ bne _0225032E
+_02250300:
+ ldr r0, [r4, #8]
+ mov r1, #0xc0
+ ldr r0, [r0]
+ mov r2, #0x58
+ bl FUN_0200C714
+ b _0225032E
+_0225030E:
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _02250322
+ cmp r0, #2
+ bne _0225032E
+_02250322:
+ ldr r0, [r4, #8]
+ mov r1, #0x40
+ ldr r0, [r0]
+ mov r2, #0x88
+ bl FUN_0200C714
+_0225032E:
+ mov r0, #3
+ strb r0, [r4, #0x12]
+_02250332:
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02250338
+MOD11_02250338: ; 0x02250338
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0xd0
+ ldr r3, _022505EC ; =0x0225E8D0
+ add r4, r1, #0
+ add r5, r0, #0
+ add r2, sp, #0x30
+ mov r1, #0x50
+_02250346:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _02250346
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ add r6, r0, #0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #6
+ bls _02250362
+ b _0225088A
+_02250362:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225036E: ; jump table
+ .short _0225037C - _0225036E - 2 ; case 0
+ .short _02250494 - _0225036E - 2 ; case 1
+ .short _0225059E - _0225036E - 2 ; case 2
+ .short _0225073C - _0225036E - 2 ; case 3
+ .short _022507F2 - _0225036E - 2 ; case 4
+ .short _0225084C - _0225036E - 2 ; case 5
+ .short _02250874 - _0225036E - 2 ; case 6
+_0225037C:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _0225038A
+ mov r0, #1
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225038A:
+ cmp r0, #4
+ bhi _022503A4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225039A: ; jump table
+ .short _022503A4 - _0225039A - 2 ; case 0
+ .short _022503A4 - _0225039A - 2 ; case 1
+ .short _022503B2 - _0225039A - 2 ; case 2
+ .short _022503C0 - _0225039A - 2 ; case 3
+ .short _022503CE - _0225039A - 2 ; case 4
+_022503A4:
+ mov r0, #0xf
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [r4, #0x18]
+ mov r0, #5
+ str r0, [sp, #0x18]
+ b _022503DC
+_022503B2:
+ mov r0, #0xc
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, _022505F0 ; =0x00000111
+ str r0, [sp, #0x18]
+ b _022503DC
+_022503C0:
+ mov r0, #0xd
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, _022505F4 ; =0x00000112
+ str r0, [sp, #0x18]
+ b _022503DC
+_022503CE:
+ mov r0, #0xf
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [r4, #0x18]
+ mov r0, #0x11
+ lsl r0, r0, #4
+ str r0, [sp, #0x18]
+_022503DC:
+ mov r0, #5
+ str r0, [sp, #0xc]
+ mov r0, #4
+ str r0, [sp, #0x10]
+ ldrb r0, [r4, #9]
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ bl MOD11_02230078
+ str r0, [sp, #0x24]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ str r0, [sp, #0x28]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ str r0, [sp, #0x2c]
+ add r0, sp, #8
+ bl MOD08_02229918
+ ldr r1, [r4, #4]
+ add r1, #0x88
+ str r0, [r1]
+ ldr r0, [r4, #4]
+ mov r1, #0x64
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A00C
+ ldr r0, [r4, #4]
+ mov r1, #2
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A018
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A008
+ mov r1, #0
+ ldr r0, [r4]
+ ldr r2, [r4, #0xc]
+ add r3, r1, #0
+ bl MOD11_02254308
+ ldr r1, [r4, #4]
+ str r0, [r1, #0x18]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ add r1, sp, #4
+ strh r0, [r1, #2]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ add r3, sp, #4
+ strh r0, [r3]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C714
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C61C
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C5C0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x1c]
+ mov r2, #1
+ bl FUN_02007558
+ mov r0, #3
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_02250494:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #2
+ ldr r0, [r4, #4]
+ bne _0225054A
+ ldr r0, [r0, #0x1c]
+ mov r1, #0
+ mov r2, #5
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ mov r1, #0x45
+ lsl r1, r1, #2
+ cmp r0, r1
+ blt _02250520
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A80
+ cmp r0, #0
+ beq _02250520
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229FE4
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A5C
+ mov r0, #2
+ tst r0, r6
+ beq _02250532
+ mov r0, #8
+ tst r0, r6
+ bne _02250532
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r4, r0, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #1
+ bl MOD08_02229FE4
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD08_02229A5C
+ add r4, #0x88
+ ldr r0, [r4]
+ mov r1, #0xc
+ bl MOD08_0222A024
+ add sp, #0xd0
+ pop {r3, r4, r5, r6, r7, pc}
+_02250520:
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ cmp r0, r1
+ bge _02250534
+_02250532:
+ b _0225088A
+_02250534:
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02007534
+ ldr r0, [r4, #4]
+ mov r1, #0
+ str r1, [r0, #0x1c]
+ mov r0, #6
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225054A:
+ ldr r0, [r0, #0x1c]
+ mov r1, #0
+ bl FUN_0200782C
+ add r1, sp, #4
+ strh r0, [r1, #2]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ add r3, sp, #4
+ strh r0, [r3]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C714
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C61C
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C5C0
+ mov r0, #2
+ strb r0, [r4, #0xa]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02007534
+ ldr r0, [r4, #4]
+ mov r1, #0
+ str r1, [r0, #0x1c]
+ add sp, #0xd0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225059E:
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #4]
+ mov r1, #4
+ ldr r0, [r0, #0x18]
+ mvn r1, r1
+ mov r2, #0
+ bl FUN_0200C82C
+ ldr r0, [r4, #4]
+ add r1, sp, #4
+ ldr r0, [r0, #0x18]
+ add r1, #2
+ add r2, sp, #4
+ bl FUN_0200C7A0
+ ldr r1, [r4, #4]
+ add r0, r1, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _022505D0
+ b _022506E4
+_022505D0:
+ ldr r0, [r1, #0x18]
+ bl FUN_0200C630
+ ldr r1, [r4, #0xc]
+ str r0, [sp]
+ lsl r5, r0, #2
+ mov r0, #0x14
+ add r2, r1, #0
+ mul r2, r0
+ add r0, sp, #0x30
+ add r0, r0, r2
+ ldrsh r1, [r5, r0]
+ ldr r0, _022505F8 ; =0x00007FFF
+ b _022505FC
+ .align 2, 0
+_022505EC: .word 0x0225E8D0
+_022505F0: .word 0x00000111
+_022505F4: .word 0x00000112
+_022505F8: .word 0x00007FFF
+_022505FC:
+ cmp r1, r0
+ beq _022506E4
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229FE4
+ ldr r1, [r4, #0xc]
+ mov r0, #0x14
+ add r3, r1, #0
+ mul r3, r0
+ add r2, sp, #0x30
+ add r2, r2, r3
+ add r7, sp, #4
+ mov r1, #2
+ ldrsh r1, [r7, r1]
+ ldrsh r2, [r5, r2]
+ ldr r0, [r4, #4]
+ add r1, r1, r2
+ mov r2, #0
+ ldrsh r7, [r7, r2]
+ add r2, sp, #0x30
+ add r2, #2
+ add r2, r2, r3
+ ldrsh r2, [r5, r2]
+ add r0, #0x88
+ lsl r1, r1, #0x10
+ add r2, r7, r2
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02229FF0
+ ldr r0, [sp]
+ cmp r0, #3
+ bne _022506E4
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A80
+ cmp r0, #0
+ beq _022506E4
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A5C
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A008
+ mov r0, #2
+ tst r0, r6
+ beq _022506E4
+ mov r0, #8
+ tst r0, r6
+ bne _022506E4
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ ldr r1, [r4, #0xc]
+ add r6, r0, #0
+ add r3, r1, #0
+ mov r0, #0x14
+ mul r3, r0
+ add r2, sp, #0x30
+ add r2, r2, r3
+ add r0, r6, #0
+ add r0, #0x88
+ add r7, sp, #4
+ mov r1, #2
+ ldrsh r1, [r7, r1]
+ ldrsh r2, [r5, r2]
+ ldr r0, [r0]
+ add r1, r1, r2
+ mov r2, #0
+ ldrsh r7, [r7, r2]
+ add r2, sp, #0x30
+ add r2, #2
+ add r2, r2, r3
+ ldrsh r2, [r5, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r7, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02229FF0
+ add r0, r6, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #1
+ bl MOD08_02229FE4
+ add r0, r6, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD08_02229A5C
+ add r6, #0x88
+ ldr r0, [r6]
+ mov r1, #1
+ bl MOD08_0222A008
+_022506E4:
+ add r1, sp, #4
+ mov r0, #2
+ ldrsh r1, [r1, r0]
+ sub r0, #0x2a
+ cmp r1, r0
+ ble _022506F2
+ b _0225088A
+_022506F2:
+ ldr r0, [r4]
+ bl MOD11_02230080
+ add r6, r0, #0
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230260
+ asr r5, r0, #1
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C3DC
+ ldr r1, _02250890 ; =0x00004E2F
+ add r0, r6, #0
+ add r1, r5, r1
+ bl FUN_0200C358
+ ldr r1, _02250894 ; =0x00004E2A
+ add r0, r6, #0
+ add r1, r5, r1
+ bl FUN_0200C368
+ ldr r1, _02250898 ; =0x00004E27
+ add r0, r6, #0
+ add r1, r5, r1
+ bl FUN_0200C378
+ ldr r1, _02250898 ; =0x00004E27
+ add r0, r6, #0
+ add r1, r5, r1
+ bl FUN_0200C388
+ mov r0, #6
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225073C:
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #4]
+ add r1, sp, #4
+ ldr r0, [r0, #0x18]
+ add r1, #2
+ add r2, sp, #4
+ bl FUN_0200C7A0
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C630
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022507E2
+ ldr r2, [r4, #0xc]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r1, sp, #0x30
+ lsl r6, r5, #2
+ add r1, r1, r3
+ ldrsh r1, [r6, r1]
+ ldr r2, _0225089C ; =0x00007FFF
+ cmp r1, r2
+ beq _022507E2
+ add r7, sp, #4
+ mov r2, #2
+ ldrsh r2, [r7, r2]
+ add r1, r2, r1
+ mov r2, #0
+ ldrsh r7, [r7, r2]
+ add r2, sp, #0x30
+ add r2, #2
+ add r2, r2, r3
+ ldrsh r2, [r6, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r7, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02229FF0
+ cmp r5, #3
+ bne _022507E2
+ ldr r0, [r4, #4]
+ ldr r6, [r4, #0x18]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A80
+ cmp r6, r0
+ beq _022507E2
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A5C
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A018
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A008
+ ldr r0, [r4, #0x18]
+ cmp r0, #3
+ beq _022507E2
+ ldr r0, _022508A0 ; =0x0000070A
+ bl FUN_020054C8
+_022507E2:
+ cmp r5, #4
+ bne _0225088A
+ mov r0, #8
+ str r0, [r4, #0x14]
+ mov r0, #4
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_022507F2:
+ ldr r0, [r4, #0x14]
+ sub r0, r0, #1
+ str r0, [r4, #0x14]
+ bne _0225088A
+ ldr r0, [r4]
+ bl MOD11_02230080
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C3DC
+ ldr r1, _02250890 ; =0x00004E2F
+ add r0, r5, #0
+ bl FUN_0200C358
+ ldr r1, _02250894 ; =0x00004E2A
+ add r0, r5, #0
+ bl FUN_0200C368
+ ldr r1, _02250898 ; =0x00004E27
+ add r0, r5, #0
+ bl FUN_0200C378
+ ldr r1, _02250898 ; =0x00004E27
+ add r0, r5, #0
+ bl FUN_0200C388
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x1c]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x18]
+ cmp r0, #3
+ bne _02250844
+ mov r0, #6
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_02250844:
+ mov r0, #5
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225084C:
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_022299E8
+ cmp r0, #1
+ beq _0225088A
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A2C
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x88
+ str r1, [r0]
+ mov r0, #6
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_02250874:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0225088A:
+ add sp, #0xd0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02250890: .word 0x00004E2F
+_02250894: .word 0x00004E2A
+_02250898: .word 0x00004E27
+_0225089C: .word 0x00007FFF
+_022508A0: .word 0x0000070A
+
+ thumb_func_start MOD11_022508A4
+MOD11_022508A4: ; 0x022508A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ beq _022508B6
+ cmp r0, #1
+ beq _02250906
+ pop {r3, r4, r5, pc}
+_022508B6:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #2
+ ldr r0, [r4, #4]
+ bne _022508E2
+ ldr r0, [r0, #0x1c]
+ mov r1, #0
+ mov r2, #5
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ cmp r0, r1
+ blt _0225092A
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_022508E2:
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ sub r2, r1, #5
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ mov r1, #0x27
+ mvn r1, r1
+ cmp r0, r1
+ bgt _0225092A
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_02250906:
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02007534
+ ldr r0, [r4, #4]
+ mov r1, #0
+ str r1, [r0, #0x1c]
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0225092A:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0225092C
+MOD11_0225092C: ; 0x0225092C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ beq _0225093E
+ cmp r0, #1
+ beq _0225099A
+ pop {r3, r4, r5, pc}
+_0225093E:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0
+ ldr r0, [r4, #4]
+ bne _02250970
+ mov r1, #0
+ mov r2, #5
+ bl FUN_020079E0
+ mov r0, #0xc
+ ldrsh r5, [r4, r0]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, r5
+ blt _022509B0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_02007558
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_02250970:
+ mov r1, #0
+ sub r2, r1, #5
+ bl FUN_020079E0
+ mov r0, #0xc
+ ldrsh r5, [r4, r0]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, r5
+ bgt _022509B0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_02007558
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_0225099A:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_022509B0:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022509B4
+MOD11_022509B4: ; 0x022509B4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _022509C6
+ cmp r1, #1
+ beq _022509F6
+ b _02250A0A
+_022509C6:
+ add r0, r4, #0
+ add r0, #0x4d
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022509DE
+ add r0, r4, #0
+ add r0, #0x4d
+ ldrb r0, [r0]
+ add r4, #0x4d
+ sub r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_022509DE:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_02257334
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022572AC
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_022509F6:
+ add r0, r4, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02250A26
+ add r0, r1, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02250A0A:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x24
+ add r2, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4, #0xc]
+ bl MOD11_022567B8
+ mov r0, #0
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02250A26:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02250A28
+MOD11_02250A28: ; 0x02250A28
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ bne _02250A48
+ add r0, r4, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02250A6C
+ add r0, r1, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02250A48:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x24
+ add r2, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4, #0xc]
+ bl MOD11_022567B8
+ mov r0, #0
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_022572AC
+_02250A6C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02250A70
+MOD11_02250A70: ; 0x02250A70
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ add r4, r1, #0
+ str r0, [sp]
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r0, [r4]
+ bl MOD11_02230094
+ add r6, r0, #0
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ add r7, r0, #0
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldrb r0, [r4, #9]
+ cmp r1, r0
+ beq _02250AB2
+ ldr r0, [r4]
+ bl MOD11_02231380
+ add r5, r0, #0
+ b _02250AB4
+_02250AB2:
+ mov r5, #0
+_02250AB4:
+ ldrb r0, [r4, #0xa]
+ cmp r0, #8
+ bls _02250ABC
+ b _02250F3E
+_02250ABC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02250AC8: ; jump table
+ .short _02250ADA - _02250AC8 - 2 ; case 0
+ .short _02250B16 - _02250AC8 - 2 ; case 1
+ .short _02250C04 - _02250AC8 - 2 ; case 2
+ .short _02250C1A - _02250AC8 - 2 ; case 3
+ .short _02250C2C - _02250AC8 - 2 ; case 4
+ .short _02250DA0 - _02250AC8 - 2 ; case 5
+ .short _02250DF2 - _02250AC8 - 2 ; case 6
+ .short _02250ED6 - _02250AC8 - 2 ; case 7
+ .short _02250F14 - _02250AC8 - 2 ; case 8
+_02250ADA:
+ mov r0, #0
+ add r1, r4, #0
+ add r2, sp, #0x34
+_02250AE0:
+ ldrh r3, [r1, #0x24]
+ add r1, r1, #2
+ strh r3, [r2]
+ add r3, r4, r0
+ add r3, #0x2c
+ ldrb r3, [r3]
+ strh r3, [r2, #8]
+ add r3, r4, r0
+ add r3, #0x30
+ ldrb r3, [r3]
+ add r0, r0, #1
+ strh r3, [r2, #0x10]
+ add r2, r2, #2
+ cmp r0, #4
+ blt _02250AE0
+ ldr r0, [r4]
+ bl MOD11_02230094
+ add r1, r4, #0
+ add r1, #0x34
+ ldrb r1, [r1]
+ add r2, sp, #0x34
+ bl MOD11_0225A760
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+_02250B16:
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r1, r7, #0
+ tst r1, r0
+ beq _02250B9A
+ ldr r0, [r4]
+ bl MOD11_02231268
+ cmp r0, #0
+ beq _02250B3A
+ cmp r0, #1
+ beq _02250B66
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_02250B3A:
+ mov r0, #2
+ add r1, sp, #8
+ strb r0, [r1, #9]
+ add r0, r4, #0
+ add r0, #0x23
+ ldrb r0, [r0]
+ ldrb r2, [r4, #9]
+ mov r3, #0
+ lsl r0, r0, #8
+ orr r0, r2
+ str r0, [sp, #0x14]
+ ldr r0, _02250E84 ; =0x00000399
+ add r2, sp, #0x10
+ strh r0, [r1, #0xa]
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD11_0223178C
+ mov r0, #3
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250B66:
+ mov r1, #0
+ add r0, sp, #8
+ strb r1, [r0, #9]
+ ldr r0, [r4]
+ bl MOD11_0223021C
+ ldr r1, _02250E88 ; =0x000004CA
+ add r1, r0, r1
+ add r0, sp, #8
+ strh r1, [r0, #0xa]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x10
+ bl MOD11_0223178C
+ add r1, r4, #0
+ add r1, #0x35
+ strb r0, [r1]
+ mov r0, #2
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250B9A:
+ mov r1, #0x20
+ add r2, r7, #0
+ tst r2, r1
+ beq _02250BBA
+ mov r1, #8
+ add r0, sp, #8
+ strb r1, [r0, #9]
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230140
+ str r0, [sp, #0x14]
+ ldr r1, _02250E8C ; =0x0000039A
+ add r0, sp, #8
+ strh r1, [r0, #0xa]
+ b _02250BF0
+_02250BBA:
+ lsl r1, r1, #4
+ tst r1, r7
+ beq _02250BD8
+ mov r1, #8
+ add r0, sp, #8
+ strb r1, [r0, #9]
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230140
+ str r0, [sp, #0x14]
+ ldr r1, _02250E90 ; =0x000004C6
+ add r0, sp, #8
+ strh r1, [r0, #0xa]
+ b _02250BF0
+_02250BD8:
+ add r2, r4, #0
+ mov r1, #2
+ add r3, sp, #8
+ strb r1, [r3, #9]
+ add r2, #0x23
+ ldrb r2, [r2]
+ ldrb r1, [r4, #9]
+ sub r0, #0x67
+ lsl r2, r2, #8
+ orr r1, r2
+ str r1, [sp, #0x14]
+ strh r0, [r3, #0xa]
+_02250BF0:
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x10
+ mov r3, #0
+ bl MOD11_0223178C
+ mov r0, #3
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250C04:
+ add r0, r4, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02250C36
+ mov r0, #3
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250C1A:
+ ldr r0, [r4, #4]
+ bl MOD11_02257208
+ ldr r0, [sp, #4]
+ ldr r1, [r4]
+ bl MOD11_0225464C
+ mov r0, #4
+ strb r0, [r4, #0xa]
+_02250C2C:
+ add r0, r6, #0
+ bl MOD11_02258F5C
+ cmp r0, #0
+ bne _02250C38
+_02250C36:
+ b _02250F3E
+_02250C38:
+ ldrb r1, [r4, #9]
+ add r0, sp, #8
+ strb r1, [r0, #1]
+ add r1, r4, #0
+ add r1, #0x34
+ ldrb r1, [r1]
+ strb r1, [r0]
+ add r1, r4, #0
+ add r1, #0x23
+ ldrb r1, [r1]
+ strb r1, [r0, #2]
+ mov r1, #0x36
+ ldrsh r1, [r4, r1]
+ strh r1, [r0, #4]
+ ldrh r1, [r4, #0x38]
+ strh r1, [r0, #6]
+ add r1, r4, #0
+ add r1, #0x3a
+ ldrb r1, [r1]
+ strb r1, [r0, #3]
+ ldr r1, _02250E94 ; =0x00000197
+ ldr r0, [sp, #4]
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ beq _02250CFA
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0225B77C
+ ldr r0, [r4]
+ bl MOD11_02230C50
+ mov r1, #1
+ tst r0, r1
+ beq _02250C8C
+ add r0, r6, #0
+ mov r1, #6
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250CF0
+_02250C8C:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _02250CA8
+ add r0, r6, #0
+ mov r1, #0xa
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250CF0
+_02250CA8:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #0x20
+ tst r0, r1
+ beq _02250CC2
+ add r0, r6, #0
+ mov r1, #8
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250CF0
+_02250CC2:
+ add r0, sp, #8
+ ldrb r0, [r0]
+ cmp r0, #4
+ bne _02250CE4
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _02250CE4
+ add r0, r6, #0
+ mov r1, #4
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250CF0
+_02250CE4:
+ add r0, r6, #0
+ mov r1, #3
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+_02250CF0:
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_022312AC
+ b _02250D70
+_02250CFA:
+ ldr r0, [r4]
+ bl MOD11_02230C50
+ mov r1, #1
+ tst r0, r1
+ beq _02250D14
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250D68
+_02250D14:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _02250D30
+ add r0, r6, #0
+ mov r1, #9
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250D68
+_02250D30:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #0x20
+ tst r0, r1
+ add r3, sp, #8
+ beq _02250D4A
+ add r0, r6, #0
+ mov r1, #7
+ mov r2, #0
+ bl MOD11_02258820
+ b _02250D68
+_02250D4A:
+ add r0, sp, #8
+ ldrb r0, [r0]
+ cmp r0, #4
+ beq _02250D5E
+ add r0, r6, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD11_02258820
+ b _02250D68
+_02250D5E:
+ add r0, r6, #0
+ mov r1, #2
+ mov r2, #0
+ bl MOD11_02258820
+_02250D68:
+ ldr r1, _02250E94 ; =0x00000197
+ ldr r0, [sp, #4]
+ mov r2, #1
+ strb r2, [r0, r1]
+_02250D70:
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x1c
+ bl MOD11_02258D60
+ add r1, r4, #0
+ add r2, r4, #0
+ add r0, r6, #0
+ add r1, #0x10
+ add r2, #0x16
+ bl MOD11_02258D7C
+ add r0, r6, #0
+ bl MOD11_02258DD0
+ cmp r5, #0
+ beq _02250D98
+ add r0, r5, #0
+ bl MOD11_02258180
+_02250D98:
+ mov r0, #5
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250DA0:
+ ldr r0, _02250E98 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #8
+ tst r0, r1
+ beq _02250DD0
+ ldr r0, [r4]
+ mov r5, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02250DD0
+_02250DB6:
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ add r0, #0x28
+ bl MOD11_0225704C
+ ldr r0, [r4]
+ add r5, r5, #1
+ bl MOD11_0222FF84
+ cmp r5, r0
+ blt _02250DB6
+_02250DD0:
+ add r0, r6, #0
+ bl MOD11_02258E74
+ mov r1, #0
+ mvn r1, r1
+ str r0, [r4, #0xc]
+ cmp r0, r1
+ beq _02250E02
+ mov r0, #0xa
+ strb r0, [r4, #0xb]
+ ldr r0, _02250E9C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #6
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250DF2:
+ add r0, r6, #0
+ bl MOD11_02258F5C
+ cmp r0, #1
+ beq _02250E04
+ ldr r0, [r4, #0xc]
+ cmp r0, #1
+ beq _02250E04
+_02250E02:
+ b _02250F3E
+_02250E04:
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bhi _02250EC4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02250E16: ; jump table
+ .short _02250EC4 - _02250E16 - 2 ; case 0
+ .short _02250E20 - _02250E16 - 2 ; case 1
+ .short _02250E34 - _02250E16 - 2 ; case 2
+ .short _02250E5C - _02250E16 - 2 ; case 3
+ .short _02250EA0 - _02250E16 - 2 ; case 4
+_02250E20:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ beq _02250EC8
+ mov r0, #7
+ strb r0, [r4, #0xa]
+ b _02250EC8
+_02250E34:
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+ add r0, r5, #0
+ bl MOD11_02258184
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ ldr r0, [sp, #4]
+ bl MOD11_0225468C
+ b _02250EC8
+_02250E5C:
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+ add r0, r5, #0
+ bl MOD11_02258184
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ ldr r0, [sp, #4]
+ bl MOD11_0225468C
+ b _02250EC8
+ .align 2, 0
+_02250E84: .word 0x00000399
+_02250E88: .word 0x000004CA
+_02250E8C: .word 0x0000039A
+_02250E90: .word 0x000004C6
+_02250E94: .word 0x00000197
+_02250E98: .word 0x021C48B8
+_02250E9C: .word 0x000005DD
+_02250EA0:
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230CB8
+ cmp r0, #1
+ bne _02250EB6
+ add r0, r5, #0
+ bl MOD11_02258184
+ mov r0, #0xff
+ str r0, [r4, #0xc]
+_02250EB6:
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ b _02250EC8
+_02250EC4:
+ bl ErrorHandling
+_02250EC8:
+ add r0, r6, #0
+ bl MOD11_02258E30
+ mov r0, #8
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250ED6:
+ add r0, r6, #0
+ bl MOD11_02258F5C
+ cmp r0, #1
+ bne _02250F3E
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+ add r0, r5, #0
+ bl MOD11_02258184
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ ldr r0, [sp, #4]
+ bl MOD11_0225468C
+ add r0, r6, #0
+ bl MOD11_02258E30
+ mov r0, #8
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250F14:
+ add r0, r6, #0
+ bl MOD11_0225B780
+ cmp r0, #1
+ bne _02250F3E
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ ldr r2, [r4, #0xc]
+ bl MOD11_02255528
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_02250F3E:
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02250F44
+MOD11_02250F44: ; 0x02250F44
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #9]
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl FUN_021F45A4
+ add r2, r0, #0
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02255528
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02250F74
+MOD11_02250F74: ; 0x02250F74
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #9]
+ add r5, r0, #0
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ 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 MOD11_02250F94
+MOD11_02250F94: ; 0x02250F94
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230DE0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF78
+ mov r2, #0
+ ldrb r1, [r4, #9]
+ add r3, r2, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x1a
+ bl FUN_02068678
+ ldr r2, _0225100C ; =0x0225E830
+ lsl r1, r5, #1
+ ldrb r2, [r2, r1]
+ mul r2, r0
+ add r0, r2, #0
+ ldr r2, _02251010 ; =0x0225E831
+ ldrb r1, [r2, r1]
+ blx _s32_div_f
+ add r5, r0, #0
+ bl FUN_0201B9EC
+ mov r1, #0xff
+ blx _s32_div_f
+ cmp r1, r5
+ ldr r0, [r4]
+ bgt _02250FEA
+ ldrb r1, [r4, #9]
+ mov r2, #4
+ bl MOD11_02255528
+ b _02250FF2
+_02250FEA:
+ ldrb r1, [r4, #9]
+ mov r2, #5
+ bl MOD11_02255528
+_02250FF2:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ pop {r4, r5, r6, pc}
+ nop
+_0225100C: .word 0x0225E830
+_02251010: .word 0x0225E831
+
+ thumb_func_start MOD11_02251014
+MOD11_02251014: ; 0x02251014
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #9]
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r2, #4
+ bl MOD11_02255528
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0225103C
+MOD11_0225103C: ; 0x0225103C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r0, [r4]
+ bl MOD11_02230094
+ add r7, r0, #0
+ ldrb r1, [r4, #0x1d]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ str r0, [sp]
+ ldrb r1, [r4, #0x1d]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldrb r0, [r4, #0x1d]
+ cmp r1, r0
+ beq _02251076
+ ldr r0, [r4]
+ bl MOD11_02231380
+ add r5, r0, #0
+ b _02251078
+_02251076:
+ mov r5, #0
+_02251078:
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #3
+ bls _02251084
+ b _0225118E
+_02251084:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02251090: ; jump table
+ .short _02251098 - _02251090 - 2 ; case 0
+ .short _02251114 - _02251090 - 2 ; case 1
+ .short _0225113A - _02251090 - 2 ; case 2
+ .short _02251180 - _02251090 - 2 ; case 3
+_02251098:
+ add r0, r7, #0
+ bl MOD11_02258F5C
+ cmp r0, #0
+ bne _022510A4
+ b _022511B6
+_022510A4:
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r1, r0, #0
+ mov r2, #2
+ add r0, sp, #4
+ strb r2, [r0, #0x15]
+ ldrb r2, [r4, #0x1f]
+ ldrb r3, [r4, #0x1d]
+ lsl r2, r2, #8
+ orr r2, r3
+ str r2, [sp, #0x1c]
+ ldr r2, _022511BC ; =0x00000399
+ mov r3, #0
+ strh r2, [r0, #0x16]
+ ldr r0, [r4]
+ add r2, sp, #0x18
+ bl MOD11_0223178C
+ add r0, r7, #0
+ bl MOD11_02258E30
+ add r5, sp, #4
+ mov r2, #0
+ add r3, r4, #0
+ add r6, r5, #0
+_022510D8:
+ ldrh r0, [r3, #0xc]
+ add r1, r4, r2
+ add r2, r2, #1
+ strh r0, [r5]
+ ldrb r0, [r1, #0x14]
+ add r3, r3, #2
+ add r5, r5, #2
+ strb r0, [r6, #8]
+ ldrb r0, [r1, #0x18]
+ strb r0, [r6, #0xc]
+ add r6, r6, #1
+ cmp r2, #4
+ blt _022510D8
+ ldrb r1, [r4, #0x1e]
+ add r0, sp, #4
+ mov r2, #0
+ strb r1, [r0, #0x10]
+ add r0, r7, #0
+ mov r1, #0xb
+ add r3, sp, #4
+ bl MOD11_02258820
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #0x3c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_02251114:
+ add r0, r7, #0
+ bl MOD11_02258E74
+ mov r1, #0
+ mvn r1, r1
+ str r0, [r4, #8]
+ cmp r0, r1
+ beq _022511B6
+ ldr r0, _022511C0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #0x3c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_0225113A:
+ ldr r0, [r4, #8]
+ cmp r0, #0xff
+ beq _02251166
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02251166
+ add r0, r7, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+ add r0, r5, #0
+ bl MOD11_02258184
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ ldr r0, [sp]
+ bl MOD11_0225468C
+_02251166:
+ ldrb r1, [r4, #0x1d]
+ ldr r0, [r4]
+ ldr r2, [r4, #8]
+ bl MOD11_022555E4
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #0x3c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_02251180:
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0225118E:
+ add r0, r7, #0
+ bl MOD11_0225B780
+ cmp r0, #1
+ bne _022511B6
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_02231274
+ ldrb r1, [r4, #0x1d]
+ ldrb r2, [r4, #0x1c]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_022511B6:
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022511BC: .word 0x00000399
+_022511C0: .word 0x000005DD
+
+ thumb_func_start MOD11_022511C4
+MOD11_022511C4: ; 0x022511C4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r6, r1, #0
+ str r0, [sp, #8]
+ ldr r0, [r6]
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ ldr r0, [r6]
+ bl MOD11_0222FF78
+ str r0, [sp, #0xc]
+ ldr r0, _02251290 ; =0x00000101
+ tst r0, r4
+ bne _022511FA
+ ldr r0, [r6]
+ bl MOD11_02230C50
+ mov r1, #1
+ tst r0, r1
+ bne _022511FA
+ ldrb r1, [r6, #0x1d]
+ ldr r0, [r6]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02251216
+_022511FA:
+ bl FUN_02033590
+ cmp r0, #0
+ beq _02251206
+ bl ErrorHandling
+_02251206:
+ ldrb r1, [r6, #0x1d]
+ ldr r0, [r6]
+ bl FUN_021EFD8C
+ cmp r0, #0xff
+ beq _0225128C
+ add r4, r0, #1
+ b _0225126C
+_02251216:
+ mov r7, #0
+ add r4, r7, #0
+ add r5, sp, #0x10
+_0225121C:
+ add r0, r4, #0
+ bl FUN_0206A92C
+ ldrh r1, [r6, #0x22]
+ tst r0, r1
+ bne _0225122E
+ add r0, r4, #1
+ stmia r5!, {r0}
+ add r7, r7, #1
+_0225122E:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0225121C
+ bl FUN_0201B9EC
+ add r1, r7, #0
+ blx _s32_div_f
+ lsl r1, r1, #2
+ add r0, sp, #0x10
+ ldr r4, [r0, r1]
+ mov r0, #1
+ sub r3, r4, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ lsl r3, r3, #1
+ add r3, r6, r3
+ ldrb r2, [r6, #0x1d]
+ ldrh r3, [r3, #0xc]
+ ldr r0, [r6]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02244C28
+ str r0, [sp]
+ ldrb r3, [r6, #0x1d]
+ ldr r0, [r6]
+ ldr r1, [sp, #0xc]
+ mov r2, #0xb
+ bl MOD11_0224C54C
+_0225126C:
+ ldrb r1, [r6, #0x1d]
+ ldr r0, [r6]
+ add r2, r4, #0
+ bl MOD11_022555E4
+ ldrb r1, [r6, #0x1d]
+ ldrb r2, [r6, #0x1c]
+ ldr r0, [r6]
+ bl MOD11_022567B8
+ add r0, r6, #0
+ bl FUN_02016A18
+ ldr r0, [sp, #8]
+ bl FUN_0200CAB4
+_0225128C:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02251290: .word 0x00000101
+
+ thumb_func_start MOD11_02251294
+MOD11_02251294: ; 0x02251294
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0x1d]
+ add r5, r0, #0
+ ldrb r2, [r4, #0x1c]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ 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 MOD11_022512B4
+MOD11_022512B4: ; 0x022512B4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r4, r1, #0
+ str r0, [sp]
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230094
+ add r5, r0, #0
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldrb r0, [r4, #0xd]
+ cmp r1, r0
+ beq _022512EE
+ ldr r0, [r4]
+ bl MOD11_02231380
+ add r6, r0, #0
+ b _022512F0
+_022512EE:
+ mov r6, #0
+_022512F0:
+ ldrb r0, [r4, #0xf]
+ cmp r0, #3
+ bhi _022513BE
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02251302: ; jump table
+ .short _0225130A - _02251302 - 2 ; case 0
+ .short _02251366 - _02251302 - 2 ; case 1
+ .short _02251386 - _02251302 - 2 ; case 2
+ .short _022513BA - _02251302 - 2 ; case 3
+_0225130A:
+ add r0, r5, #0
+ bl MOD11_02258F5C
+ cmp r0, #0
+ bne _02251316
+ b _02251418
+_02251316:
+ add r2, sp, #8
+ mov r0, #0
+ add r1, r4, #0
+ add r2, #2
+_0225131E:
+ ldrh r3, [r1, #0x10]
+ add r0, r0, #1
+ strh r3, [r2]
+ ldrh r3, [r1, #0x12]
+ strh r3, [r2, #2]
+ ldrh r3, [r1, #0x14]
+ strh r3, [r2, #4]
+ ldrh r3, [r1, #0x16]
+ add r1, #8
+ strh r3, [r2, #6]
+ add r2, #8
+ cmp r0, #4
+ blt _0225131E
+ ldrb r1, [r4, #0xe]
+ add r0, sp, #0x28
+ add r0, #2
+ strb r1, [r0]
+ ldrh r0, [r4, #0x30]
+ ldrb r1, [r4, #0xe]
+ bl MOD11_02258F88
+ add r1, sp, #0x28
+ add r1, #2
+ strb r0, [r1, #1]
+ add r3, sp, #8
+ add r0, r5, #0
+ mov r1, #0xc
+ mov r2, #0
+ add r3, #2
+ bl MOD11_02258820
+ ldrb r0, [r4, #0xf]
+ add sp, #0x2c
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ pop {r4, r5, r6, r7, pc}
+_02251366:
+ add r0, r5, #0
+ bl MOD11_02258E74
+ mov r1, #0
+ mvn r1, r1
+ str r0, [r4, #8]
+ cmp r0, r1
+ beq _02251418
+ ldr r0, _0225141C ; =0x000005DD
+ bl FUN_020054C8
+ ldrb r0, [r4, #0xf]
+ add sp, #0x2c
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ pop {r4, r5, r6, r7, pc}
+_02251386:
+ ldr r0, [r4, #8]
+ cmp r0, #0xff
+ beq _022513B0
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ add r0, r7, #0
+ bl MOD11_0225468C
+ add r0, r6, #0
+ bl MOD11_02258184
+ add r0, r4, #0
+ add r0, #0x32
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _022513B0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+_022513B0:
+ ldrb r0, [r4, #0xf]
+ add sp, #0x2c
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ pop {r4, r5, r6, r7, pc}
+_022513BA:
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+_022513BE:
+ add r0, r5, #0
+ bl MOD11_0225B780
+ cmp r0, #1
+ bne _02251418
+ ldr r0, [r4]
+ ldr r5, [r4, #8]
+ bl MOD11_0222FF74
+ add r6, r0, #0
+ cmp r5, #0xff
+ beq _022513F8
+ ldr r0, [r4]
+ add r1, sp, #4
+ bl MOD11_022314E0
+ mov r0, #2
+ tst r0, r6
+ ldr r0, [r4, #8]
+ beq _022513F0
+ add r1, r0, #1
+ add r0, sp, #4
+ ldrb r0, [r0, r1]
+ add r5, r0, #1
+ b _022513F8
+_022513F0:
+ sub r1, r0, #1
+ add r0, sp, #4
+ ldrb r0, [r0, r1]
+ add r5, r0, #1
+_022513F8:
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ add r2, r5, #0
+ bl MOD11_02255720
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_02251418:
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225141C: .word 0x000005DD
+
+ thumb_func_start MOD11_02251420
+MOD11_02251420: ; 0x02251420
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_0222FF78
+ add r1, r0, #0
+ ldrb r3, [r5, #0xd]
+ ldr r0, [r5]
+ mov r2, #0xb
+ bl MOD11_0224C474
+ add r4, r0, #1
+ cmp r4, #5
+ blt _02251442
+ bl ErrorHandling
+_02251442:
+ ldrb r1, [r5, #0xd]
+ ldr r0, [r5]
+ add r2, r4, #0
+ bl MOD11_02255720
+ ldrb r1, [r5, #0xd]
+ ldrb r2, [r5, #0xc]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02251464
+MOD11_02251464: ; 0x02251464
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r5, r0, #0
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ 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 MOD11_02251484
+MOD11_02251484: ; 0x02251484
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x1fc
+ sub sp, #0x14
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ ldrb r1, [r4, #0xe]
+ add r5, r0, #0
+ cmp r1, #0x1e
+ bls _022514A0
+ bl _02251FEA
+_022514A0:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022514AC: ; jump table
+ .short _022514EA - _022514AC - 2 ; case 0
+ .short _02251540 - _022514AC - 2 ; case 1
+ .short _022515C2 - _022514AC - 2 ; case 2
+ .short _022515D6 - _022514AC - 2 ; case 3
+ .short _02251634 - _022514AC - 2 ; case 4
+ .short _0225177C - _022514AC - 2 ; case 5
+ .short _022517B8 - _022514AC - 2 ; case 6
+ .short _02251808 - _022514AC - 2 ; case 7
+ .short _022519DC - _022514AC - 2 ; case 8
+ .short _02251A5A - _022514AC - 2 ; case 9
+ .short _02251A96 - _022514AC - 2 ; case 10
+ .short _02251AB8 - _022514AC - 2 ; case 11
+ .short _02251FA2 - _022514AC - 2 ; case 12
+ .short _02251B3E - _022514AC - 2 ; case 13
+ .short _02251FA2 - _022514AC - 2 ; case 14
+ .short _02251BF2 - _022514AC - 2 ; case 15
+ .short _02251FD0 - _022514AC - 2 ; case 16
+ .short _02251AF8 - _022514AC - 2 ; case 17
+ .short _02251FA2 - _022514AC - 2 ; case 18
+ .short _02251CA6 - _022514AC - 2 ; case 19
+ .short _02251FA2 - _022514AC - 2 ; case 20
+ .short _02251CEC - _022514AC - 2 ; case 21
+ .short _02251D86 - _022514AC - 2 ; case 22
+ .short _02251DBC - _022514AC - 2 ; case 23
+ .short _02251FD0 - _022514AC - 2 ; case 24
+ .short _02251AF8 - _022514AC - 2 ; case 25
+ .short _02251FA2 - _022514AC - 2 ; case 26
+ .short _02251CA6 - _022514AC - 2 ; case 27
+ .short _02251FA2 - _022514AC - 2 ; case 28
+ .short _02251E2E - _022514AC - 2 ; case 29
+ .short _02251FD0 - _022514AC - 2 ; case 30
+_022514EA:
+ ldr r0, [r4]
+ bl MOD11_02230094
+ bl MOD11_0225C76C
+ strb r0, [r4, #0x10]
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ mov r2, #3
+ str r1, [sp]
+ mov r0, #7
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #5
+ add r3, r1, #0
+ add r0, r5, #0
+ lsl r2, r2, #0xa
+ sub r3, #0xd
+ bl FUN_02003210
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0xa
+ add r3, r1, #0
+ ldr r2, _02251850 ; =0x0000FFFF
+ add r0, r5, #0
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251540:
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _022515FE
+ ldr r0, [r4]
+ bl MOD11_0222D7F8
+ mov r0, #5
+ mov r1, #0x34
+ bl FUN_02016998
+ str r0, [r4, #4]
+ ldr r1, [r4]
+ str r1, [r0]
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_022301D4
+ ldr r1, [r4, #4]
+ str r0, [r1, #4]
+ ldr r0, [r4, #4]
+ mov r1, #5
+ str r1, [r0, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x26
+ strb r1, [r0]
+ ldr r0, [r4]
+ bl MOD11_02230214
+ ldr r1, [r4, #4]
+ str r0, [r1, #8]
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4, #4]
+ str r1, [r0, #0x10]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x10]
+ add r0, #0x25
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x14]
+ add r0, #0x22
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x15]
+ add r0, #0x23
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x16]
+ add r0, #0x24
+ strb r1, [r0]
+ ldrb r0, [r4, #0xd]
+ add r0, r4, r0
+ add r0, #0x30
+ ldrb r1, [r0]
+ ldr r0, [r4, #4]
+ str r1, [r0, #0x18]
+ ldr r0, [r4, #4]
+ bl FUN_022186F0
+ add sp, #0x1fc
+ mov r0, #3
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022515C2:
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x10]
+ add r0, #0x25
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ bl FUN_022186F0
+ ldrb r0, [r4, #0xe]
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+_022515D6:
+ ldr r1, [r4, #4]
+ add r0, r1, #0
+ add r0, #0x26
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022515FE
+ mov r0, #0
+ add r1, #0x26
+ strb r0, [r1]
+ ldr r0, [r4, #4]
+ add r0, #0x25
+ ldrb r0, [r0]
+ strb r0, [r4, #0x10]
+ ldr r1, [r4, #4]
+ ldrh r0, [r1, #0x1c]
+ cmp r0, #0
+ beq _0225162A
+ ldrb r0, [r1, #0x1e]
+ cmp r0, #3
+ bls _02251602
+_022515FE:
+ bl _02251FEA
+_02251602:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225160E: ; jump table
+ .short _02251616 - _0225160E - 2 ; case 0
+ .short _02251616 - _0225160E - 2 ; case 1
+ .short _02251620 - _0225160E - 2 ; case 2
+ .short _02251620 - _0225160E - 2 ; case 3
+_02251616:
+ add sp, #0x1fc
+ mov r0, #4
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251620:
+ add sp, #0x1fc
+ mov r0, #6
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225162A:
+ add sp, #0x1fc
+ mov r0, #6
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251634:
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF88
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02251660
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _02251660
+ ldrb r1, [r4, #0xd]
+ mov r0, #1
+ add r7, r1, #0
+ and r7, r0
+ b _02251662
+_02251660:
+ ldrb r7, [r4, #0xd]
+_02251662:
+ ldr r0, [r4, #8]
+ mov r1, #6
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FUN_0206B8CC
+ ldr r0, [sp, #0x14]
+ mov r6, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _022516B0
+ mov r0, #6
+ mul r0, r7
+ add r5, r4, r0
+_02251680:
+ ldrb r2, [r5, #0x18]
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_02230014
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FUN_0206B900
+ ldr r1, [r4, #8]
+ ldrb r0, [r5, #0x18]
+ ldr r1, [r1, #4]
+ add r5, r5, #1
+ add r1, r1, r6
+ add r1, #0x2c
+ strb r0, [r1]
+ ldr r0, [sp, #0x14]
+ add r6, r6, #1
+ bl FUN_0206B9AC
+ cmp r6, r0
+ blt _02251680
+_022516B0:
+ ldr r0, [r4, #8]
+ ldr r1, [r4]
+ ldr r0, [r0, #4]
+ str r1, [r0, #8]
+ ldr r0, [r4, #8]
+ mov r1, #5
+ ldr r0, [r0, #4]
+ str r1, [r0, #0xc]
+ ldr r1, [r4, #8]
+ mov r0, #0
+ ldr r1, [r1, #4]
+ strb r0, [r1, #0x11]
+ ldr r1, [r4, #8]
+ ldr r1, [r1, #4]
+ add r1, #0x36
+ strb r0, [r1]
+ ldr r1, [r4, #8]
+ ldr r1, [r1, #4]
+ strh r0, [r1, #0x24]
+ ldr r0, [r4, #8]
+ mov r1, #2
+ ldr r0, [r0, #4]
+ add r0, #0x35
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ ldrh r1, [r0, #0x1c]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ strh r1, [r0, #0x22]
+ ldr r0, [r4, #4]
+ ldrb r1, [r0, #0x1e]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ add r0, #0x33
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ ldr r1, [r0, #0x10]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ str r1, [r0, #0x28]
+ ldr r0, [r4, #8]
+ ldrb r1, [r4, #0x10]
+ ldr r0, [r0, #4]
+ add r0, #0x32
+ strb r1, [r0]
+ ldrb r0, [r4, #0xd]
+ ldr r2, [r4, #8]
+ add r0, r2, r0
+ ldrb r1, [r0, #0xc]
+ ldr r0, [r2, #4]
+ strb r1, [r0, #0x14]
+ ldrb r1, [r4, #0xd]
+ ldr r5, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r0, r5, r0
+ ldrb r1, [r0, #0xc]
+ ldr r0, [r5, #4]
+ strb r1, [r0, #0x15]
+ ldrb r0, [r4, #0xf]
+ cmp r0, #4
+ bne _02251746
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r0, r4, r0
+ add r0, #0x30
+ ldrb r1, [r0]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ str r1, [r0, #0x18]
+ ldrb r0, [r4, #0xd]
+ b _0225175C
+_02251746:
+ ldrb r0, [r4, #0xd]
+ add r0, r4, r0
+ add r0, #0x30
+ ldrb r1, [r0]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ str r1, [r0, #0x18]
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+_0225175C:
+ add r0, r4, r0
+ add r0, #0x30
+ ldrb r1, [r0]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ str r1, [r0, #0x1c]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ bl FUN_02211E60
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225177C:
+ ldr r0, [r4, #8]
+ ldr r1, [r0, #4]
+ add r0, r1, #0
+ add r0, #0x36
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02251832
+ add r1, #0x32
+ ldrb r0, [r1]
+ mov r1, #0
+ strb r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ add r0, #0x36
+ strb r1, [r0]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #6
+ bne _022517AE
+ add sp, #0x1fc
+ mov r0, #2
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022517AE:
+ add sp, #0x1fc
+ mov r0, #6
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022517B8:
+ ldr r0, [r4]
+ bl MOD11_0222D88C
+ ldr r0, [r4]
+ bl MOD11_02230094
+ ldrb r1, [r4, #0x10]
+ bl MOD11_0225C778
+ mov r0, #7
+ str r0, [sp]
+ mov r0, #0
+ mov r1, #5
+ str r0, [sp, #4]
+ mov r2, #3
+ add r3, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ lsl r2, r2, #0xa
+ sub r3, #0xd
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ mov r1, #0xa
+ str r0, [sp, #4]
+ add r3, r1, #0
+ str r0, [sp, #8]
+ ldr r2, _02251850 ; =0x0000FFFF
+ add r0, r5, #0
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251808:
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02251832
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #0
+ bl FUN_020143A8
+ ldr r0, [r4, #4]
+ ldrh r0, [r0, #0x1c]
+ cmp r0, #0
+ bne _02251826
+ b _022519D2
+_02251826:
+ mov r0, #9
+ strb r0, [r4, #0xe]
+ ldr r0, [r4, #4]
+ ldrb r1, [r0, #0x1e]
+ cmp r1, #3
+ bls _02251834
+_02251832:
+ b _02251FEA
+_02251834:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02251840: ; jump table
+ .short _022518F4 - _02251840 - 2 ; case 0
+ .short _02251848 - _02251840 - 2 ; case 1
+ .short _022519C8 - _02251840 - 2 ; case 2
+ .short _0225195E - _02251840 - 2 ; case 3
+_02251848:
+ ldrh r1, [r0, #0x1c]
+ ldr r0, _02251854 ; =0x0000FFE4
+ b _02251858
+ nop
+_02251850: .word 0x0000FFFF
+_02251854: .word 0x0000FFE4
+_02251858:
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _0225186C
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225186C:
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #2
+ bhs _0225188A
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #3
+ beq _02251894
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #0x13
+ beq _02251894
+_0225188A:
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #1
+ bhs _022518EA
+_02251894:
+ ldr r0, [r4, #4]
+ ldrh r0, [r0, #0x1c]
+ cmp r0, #0x17
+ ldr r0, [r4]
+ bne _022518C4
+ bl MOD11_02230E20
+ cmp r0, #1
+ bne _022518B0
+ add sp, #0x1fc
+ mov r0, #0x11
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022518B0:
+ mov r1, #0x74
+ ldr r0, _02251BF8 ; =0x000005EC
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x1fc
+ mov r0, #0x15
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022518C4:
+ bl MOD11_02230E20
+ cmp r0, #1
+ bne _022518D6
+ add sp, #0x1fc
+ mov r0, #0x19
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022518D6:
+ mov r1, #0x74
+ ldr r0, _02251BF8 ; =0x000005EC
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x1fc
+ mov r0, #0x1d
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022518EA:
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022518F4:
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #2
+ bhs _02251912
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #3
+ beq _0225191C
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #0x13
+ beq _0225191C
+_02251912:
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #1
+ bhs _02251954
+_0225191C:
+ ldr r0, [r4, #4]
+ mov r1, #0x26
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251954
+ ldr r0, [r4]
+ bl MOD11_02230E20
+ cmp r0, #1
+ bne _02251940
+ add sp, #0x1fc
+ mov r0, #0x11
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251940:
+ mov r1, #0x74
+ ldr r0, _02251BF8 ; =0x000005EC
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x1fc
+ mov r0, #0x15
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251954:
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225195E:
+ ldrh r1, [r0, #0x1c]
+ ldr r0, _02251BFC ; =0x0000FFC1
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _02251976
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251976:
+ cmp r1, #0x37
+ ldr r0, [r4]
+ bne _022519A2
+ bl MOD11_02230E20
+ cmp r0, #1
+ bne _0225198E
+ add sp, #0x1fc
+ mov r0, #0xd
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225198E:
+ mov r1, #0x74
+ ldr r0, _02251BF8 ; =0x000005EC
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x1fc
+ mov r0, #0xf
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022519A2:
+ bl MOD11_02230E20
+ cmp r0, #1
+ bne _022519B4
+ add sp, #0x1fc
+ mov r0, #0xb
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022519B4:
+ mov r1, #0x74
+ ldr r0, _02251BF8 ; =0x000005EC
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x1fc
+ mov r0, #0xf
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022519C8:
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022519D2:
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022519DC:
+ ldr r2, [r4, #4]
+ ldrh r0, [r2, #0x1c]
+ cmp r0, #0
+ bne _022519EC
+ mov r1, #0xff
+ add r0, sp, #0x1c
+ strh r1, [r0]
+ b _02251A08
+_022519EC:
+ add r1, sp, #0x1c
+ strh r0, [r1]
+ ldrb r0, [r2, #0x1e]
+ strb r0, [r1, #2]
+ cmp r0, #1
+ bhi _02251A08
+ ldr r0, [r4, #8]
+ ldr r2, [r0, #4]
+ ldrb r0, [r2, #0x11]
+ add r0, r2, r0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r0, r0, #1
+ strb r0, [r1, #3]
+_02251A08:
+ add r3, sp, #0x1c
+ ldrb r1, [r4, #0xd]
+ mov r2, sp
+ ldrh r5, [r3]
+ ldr r0, [r4]
+ sub r2, r2, #4
+ strh r5, [r2]
+ ldrh r3, [r3, #2]
+ strh r3, [r2, #2]
+ ldr r2, [r2]
+ bl MOD11_022558C4
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FUN_02016A18
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ bl FUN_02016A18
+ ldr r0, [r4, #8]
+ bl FUN_02016A18
+ ldr r0, [r4, #4]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_0200CAB4
+ add sp, #0x1fc
+ add sp, #0x14
+ pop {r3, r4, r5, r6, r7, pc}
+_02251A5A:
+ ldr r1, _02251C00 ; =0x000004B6
+ add r0, sp, #0x8c
+ strh r1, [r0, #2]
+ mov r1, #5
+ strb r1, [r0, #1]
+ ldr r0, [r4, #4]
+ ldrh r0, [r0, #0x1c]
+ str r0, [sp, #0x90]
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x8c
+ bl MOD11_0223178C
+ strb r0, [r4, #0x11]
+ mov r0, #0x14
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251A96:
+ ldrb r0, [r4, #0x11]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02251AAC
+ ldrb r0, [r4, #0x17]
+ sub r0, r0, #1
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0x17]
+ cmp r0, #0
+ beq _02251AAE
+_02251AAC:
+ b _02251FEA
+_02251AAE:
+ ldrh r0, [r4, #0x12]
+ add sp, #0x1fc
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251AB8:
+ ldrb r1, [r4, #0xd]
+ mov r0, #9
+ add r2, sp, #0x1b8
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0x1b8
+ bl MOD11_02254404
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251AF8:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ ldr r0, [r0, #4]
+ add r2, sp, #0x160
+ ldrb r0, [r0, #0x11]
+ mov r3, #1
+ lsl r5, r0, #1
+ mov r0, #9
+ str r0, [sp]
+ str r5, [sp, #4]
+ str r5, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02256854
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0x160
+ bl MOD11_02254404
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251B3E:
+ ldr r0, [r4, #4]
+ add r2, sp, #0x108
+ ldrh r0, [r0, #0x1c]
+ cmp r0, #0x37
+ bne _02251B7C
+ ldrb r0, [r4, #0xd]
+ mov r1, #0
+ add r3, r1, #0
+ str r1, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02256854
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0x108
+ bl MOD11_02254404
+ b _02251BE6
+_02251B7C:
+ cmp r0, #0x38
+ bne _02251BB4
+ ldrb r0, [r4, #0xd]
+ mov r1, #0
+ add r3, r1, #0
+ str r1, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x74
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02256854
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0x108
+ bl MOD11_02254404
+ b _02251BE6
+_02251BB4:
+ ldrb r1, [r4, #0xd]
+ mov r0, #0xc
+ mov r3, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02256854
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0x108
+ bl MOD11_02254404
+_02251BE6:
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251BF2:
+ ldr r2, _02251C04 ; =0x000004B3
+ b _02251C08
+ nop
+_02251BF8: .word 0x000005EC
+_02251BFC: .word 0x0000FFC1
+_02251C00: .word 0x000004B6
+_02251C04: .word 0x000004B3
+_02251C08:
+ add r0, sp, #0x68
+ strh r2, [r0, #2]
+ mov r1, #0xc
+ strb r1, [r0, #1]
+ ldrb r1, [r4, #0xd]
+ ldr r3, [r4, #8]
+ add r3, r3, r1
+ ldrb r3, [r3, #0xc]
+ lsl r3, r3, #8
+ orr r1, r3
+ str r1, [sp, #0x6c]
+ ldr r1, [r4, #4]
+ ldrh r1, [r1, #0x1c]
+ sub r1, #0x37
+ cmp r1, #7
+ bhi _02251C7A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02251C34: ; jump table
+ .short _02251C68 - _02251C34 - 2 ; case 0
+ .short _02251C72 - _02251C34 - 2 ; case 1
+ .short _02251C44 - _02251C34 - 2 ; case 2
+ .short _02251C4A - _02251C34 - 2 ; case 3
+ .short _02251C50 - _02251C34 - 2 ; case 4
+ .short _02251C56 - _02251C34 - 2 ; case 5
+ .short _02251C5C - _02251C34 - 2 ; case 6
+ .short _02251C62 - _02251C34 - 2 ; case 7
+_02251C44:
+ mov r0, #1
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C4A:
+ mov r0, #2
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C50:
+ mov r0, #3
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C56:
+ mov r0, #6
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C5C:
+ mov r0, #4
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C62:
+ mov r0, #5
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C68:
+ add r1, r2, #1
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ b _02251C7A
+_02251C72:
+ add r1, r2, #2
+ strh r1, [r0, #2]
+ mov r1, #2
+ strb r1, [r0, #1]
+_02251C7A:
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x68
+ bl MOD11_0223178C
+ strb r0, [r4, #0x11]
+ mov r0, #0x14
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251CA6:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ ldr r0, [r0, #4]
+ add r2, sp, #0xb0
+ ldrb r0, [r0, #0x11]
+ mov r3, #1
+ lsl r5, r0, #1
+ mov r0, #0xe
+ str r0, [sp]
+ str r5, [sp, #4]
+ str r5, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02256854
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0xb0
+ bl MOD11_02254404
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251CEC:
+ ldr r0, [r4, #8]
+ ldr r1, [r0, #4]
+ ldrb r0, [r1, #0x11]
+ lsl r6, r0, #1
+ add r0, r1, r0
+ add r0, #0x2c
+ ldrb r7, [r0]
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD11_02231380
+ mov r1, #0
+ mov r2, #1
+ add r5, r0, #0
+ blx MI_CpuFill8
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD11_02230260
+ str r0, [sp, #0x18]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ add r1, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD11_02257F6C
+ add r1, r5, #0
+ add r1, #0x25
+ strb r0, [r1]
+ ldr r0, [r4]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02230014
+ mov r1, #0xa2
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ ldr r1, [r4, #8]
+ mov r2, #0
+ ldr r1, [r1, #4]
+ ldrh r1, [r1, #0x20]
+ sub r0, r0, r1
+ str r0, [r5, #0x28]
+ add r0, r6, #0
+ mov r1, #0xa3
+ bl FUN_020671BC
+ str r0, [r5, #0x2c]
+ ldr r0, [r4, #8]
+ mov r1, #0x9f
+ ldr r0, [r0, #4]
+ mov r2, #0
+ ldrh r0, [r0, #0x20]
+ str r0, [r5, #0x30]
+ add r0, r6, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _02251D72
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x4a
+ strb r1, [r0]
+_02251D72:
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ bl MOD11_02257150
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251D86:
+ ldr r1, [r4, #8]
+ ldr r0, [r4]
+ ldr r1, [r1, #4]
+ ldrb r1, [r1, #0x11]
+ lsl r1, r1, #1
+ bl MOD11_02231380
+ add r5, r0, #0
+ bl MOD11_02257184
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02251DA4
+ b _02251FEA
+_02251DA4:
+ mov r2, #1
+ add r0, r5, #0
+ mov r1, #0
+ lsl r2, r2, #8
+ bl MOD11_02256D70
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251DBC:
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ ldr r1, [r0, #4]
+ ldrb r0, [r1, #0x11]
+ ldrh r1, [r1, #0x20]
+ lsl r0, r0, #1
+ cmp r1, #0
+ add r1, sp, #0x1c
+ beq _02251DF4
+ ldr r2, _02251FF0 ; =0x000004BE
+ strh r2, [r1, #0x2a]
+ mov r2, #0x11
+ add r1, sp, #0x44
+ strb r2, [r1, #1]
+ ldr r1, [r4, #8]
+ add r1, r1, r0
+ ldrb r1, [r1, #0xc]
+ lsl r1, r1, #8
+ orr r0, r1
+ str r0, [sp, #0x48]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrh r0, [r0, #0x20]
+ str r0, [sp, #0x4c]
+ b _02251E0A
+_02251DF4:
+ ldr r2, _02251FF4 ; =0x000004E2
+ strh r2, [r1, #0x2a]
+ mov r2, #2
+ add r1, sp, #0x44
+ strb r2, [r1, #1]
+ ldr r1, [r4, #8]
+ add r1, r1, r0
+ ldrb r1, [r1, #0xc]
+ lsl r1, r1, #8
+ orr r0, r1
+ str r0, [sp, #0x48]
+_02251E0A:
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x44
+ bl MOD11_0223178C
+ strb r0, [r4, #0x11]
+ mov r0, #0x14
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251E2E:
+ ldr r0, [r4, #8]
+ mov r5, #0
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ lsl r7, r0, #1
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_02231380
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #8]
+ add r1, r7, #0
+ ldr r3, [r0, #4]
+ ldr r0, [r4]
+ ldrb r2, [r3, #0x11]
+ add r2, r3, r2
+ add r2, #0x2c
+ ldrb r2, [r2]
+ bl MOD11_02230014
+ mov r1, #0x9f
+ add r2, r5, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _02251E6A
+ ldr r0, [sp, #0x10]
+ add r1, r5, #0
+ add r0, #0x4a
+ strb r1, [r0]
+_02251E6A:
+ ldr r0, [sp, #0x10]
+ mov r2, #1
+ add r1, r0, #0
+ ldr r1, [r1, #0x28]
+ lsl r2, r2, #8
+ bl MOD11_02256D70
+ mov r1, #2
+ add r0, sp, #0x1c
+ strb r1, [r0, #5]
+ ldr r0, [r4, #8]
+ mov r1, #0xf
+ add r0, r0, r7
+ ldrb r0, [r0, #0xc]
+ mov r2, #5
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [sp, #0x24]
+ ldr r0, [r4, #4]
+ ldrh r0, [r0, #0x1c]
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251E9E
+ mov r6, #0
+ add r5, r5, #1
+_02251E9E:
+ ldr r0, [r4, #4]
+ mov r1, #0x10
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251EB2
+ mov r6, #1
+ add r5, r5, #1
+_02251EB2:
+ ldr r0, [r4, #4]
+ mov r1, #0x11
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251EC6
+ mov r6, #2
+ add r5, r5, #1
+_02251EC6:
+ ldr r0, [r4, #4]
+ mov r1, #0x12
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251EDA
+ mov r6, #3
+ add r5, r5, #1
+_02251EDA:
+ ldr r0, [r4, #4]
+ mov r1, #0x13
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251EEE
+ mov r6, #4
+ add r5, r5, #1
+_02251EEE:
+ ldr r0, [r4, #4]
+ mov r1, #0x14
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251F02
+ mov r6, #5
+ add r5, r5, #1
+_02251F02:
+ ldr r0, [r4, #4]
+ mov r1, #0x15
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251F16
+ mov r6, #6
+ add r5, r5, #1
+_02251F16:
+ cmp r5, #1
+ beq _02251F22
+ ldr r1, _02251FF8 ; =0x000004CD
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F22:
+ cmp r6, #6
+ bhi _02251F76
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02251F32: ; jump table
+ .short _02251F40 - _02251F32 - 2 ; case 0
+ .short _02251F48 - _02251F32 - 2 ; case 1
+ .short _02251F50 - _02251F32 - 2 ; case 2
+ .short _02251F58 - _02251F32 - 2 ; case 3
+ .short _02251F60 - _02251F32 - 2 ; case 4
+ .short _02251F68 - _02251F32 - 2 ; case 5
+ .short _02251F70 - _02251F32 - 2 ; case 6
+_02251F40:
+ ldr r1, _02251FFC ; =0x000004BA
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F48:
+ ldr r1, _02252000 ; =0x000004B7
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F50:
+ ldr r1, _02252004 ; =0x000004B9
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F58:
+ ldr r1, _02252008 ; =0x000004BB
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F60:
+ ldr r1, _0225200C ; =0x000004B8
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F68:
+ ldr r1, _02252010 ; =0x000004BC
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F70:
+ ldr r1, _02252014 ; =0x000004BD
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+_02251F76:
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x20
+ bl MOD11_0223178C
+ strb r0, [r4, #0x11]
+ mov r0, #0x14
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251FA2:
+ ldr r0, [r4]
+ bl MOD11_02230070
+ bl FUN_02212384
+ ldr r0, [r4]
+ bl MOD11_02230070
+ bl FUN_022123A0
+ cmp r0, #0
+ bne _02251FEA
+ ldr r0, [r4]
+ bl MOD11_02230070
+ bl FUN_022123B0
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251FD0:
+ ldrb r0, [r4, #0x11]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02251FEA
+ ldrb r0, [r4, #0x17]
+ sub r0, r0, #1
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0x17]
+ cmp r0, #0
+ bne _02251FEA
+ mov r0, #8
+ strb r0, [r4, #0xe]
+_02251FEA:
+ add sp, #0x1fc
+ add sp, #0x14
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02251FF0: .word 0x000004BE
+_02251FF4: .word 0x000004E2
+_02251FF8: .word 0x000004CD
+_02251FFC: .word 0x000004BA
+_02252000: .word 0x000004B7
+_02252004: .word 0x000004B9
+_02252008: .word 0x000004BB
+_0225200C: .word 0x000004B8
+_02252010: .word 0x000004BC
+_02252014: .word 0x000004BD
+
+ thumb_func_start MOD11_02252018
+MOD11_02252018: ; 0x02252018
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ mov r0, #1
+ add r3, sp, #0
+ strh r0, [r3]
+ add r4, r1, #0
+ mov r2, sp
+ ldrb r1, [r4, #0xd]
+ ldrh r6, [r3]
+ ldr r0, [r4]
+ sub r2, r2, #4
+ strh r6, [r2]
+ ldrh r3, [r3, #2]
+ strh r3, [r2, #2]
+ ldr r2, [r2]
+ bl MOD11_022558C4
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FUN_02016A18
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ bl FUN_02016A18
+ ldr r0, [r4, #8]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252070
+MOD11_02252070: ; 0x02252070
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r5, r0, #0
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FUN_02016A18
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ bl FUN_02016A18
+ ldr r0, [r4, #8]
+ bl FUN_02016A18
+ 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 MOD11_022520A8
+MOD11_022520A8: ; 0x022520A8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ ldrb r1, [r4, #0xa]
+ add r5, r0, #0
+ cmp r1, #3
+ bhi _02252144
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022520CA: ; jump table
+ .short _022520D2 - _022520CA - 2 ; case 0
+ .short _0225213C - _022520CA - 2 ; case 1
+ .short _022523B2 - _022520CA - 2 ; case 2
+ .short _0225240E - _022520CA - 2 ; case 3
+_022520D2:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_0222FF6C
+ add r6, r0, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ add r0, r6, #0
+ bl FUN_02019548
+ ldr r0, [r4]
+ bl MOD11_02230094
+ bl MOD11_0225C76C
+ strb r0, [r4, #0x17]
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ mov r2, #3
+ str r1, [sp]
+ mov r0, #7
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #5
+ add r3, r1, #0
+ add r0, r5, #0
+ lsl r2, r2, #0xa
+ sub r3, #0xd
+ bl FUN_02003210
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0xa
+ add r3, r1, #0
+ ldr r2, _0225246C ; =0x0000FFFF
+ add r0, r5, #0
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xa]
+ add sp, #0x24
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_0225213C:
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _02252146
+_02252144:
+ b _02252468
+_02252146:
+ ldr r0, [r4]
+ bl MOD11_0222D7F8
+ mov r0, #5
+ mov r1, #0x38
+ bl FUN_02016998
+ str r0, [r4, #4]
+ mov r0, #5
+ bl FUN_0206B8AC
+ ldr r1, [r4, #4]
+ str r0, [r1]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #0xc
+ and r0, r1
+ cmp r0, #0xc
+ beq _0225217A
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #0xcb
+ beq _0225217A
+ b _0225228E
+_0225217A:
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230260
+ cmp r0, #2
+ bne _02252196
+ ldrb r0, [r4, #9]
+ str r0, [sp, #0x18]
+ ldr r0, [r4]
+ ldr r1, [sp, #0x18]
+ bl MOD11_022302BC
+ str r0, [sp, #0x14]
+ b _022521A4
+_02252196:
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ str r0, [sp, #0x18]
+ ldrb r0, [r4, #9]
+ str r0, [sp, #0x14]
+_022521A4:
+ mov r0, #5
+ bl FUN_020669C0
+ add r6, r0, #0
+ mov r5, #0
+_022521AE:
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ ldr r0, [r0]
+ bl FUN_0206B900
+ add r5, r5, #1
+ cmp r5, #6
+ blt _022521AE
+ add r0, r6, #0
+ bl FUN_02016A18
+ ldr r0, [r4]
+ ldr r1, [sp, #0x18]
+ mov r7, #0
+ bl MOD11_0222FFC8
+ cmp r0, #0
+ ble _02252216
+ ldr r0, [sp, #0x18]
+ mov r1, #6
+ mul r1, r0
+ add r5, r4, r1
+ add r6, r7, #0
+_022521DC:
+ ldrb r2, [r5, #0x1c]
+ ldr r0, [r4]
+ ldr r1, [sp, #0x18]
+ bl MOD11_02230014
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ ldr r0, [r0]
+ bl FUN_0206B9B0
+ add r1, r0, #0
+ ldr r0, [sp, #0x1c]
+ bl FUN_02069B88
+ ldr r0, [r4, #4]
+ ldrb r1, [r5, #0x1c]
+ add r0, r0, r6
+ add r0, #0x2c
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r1, [sp, #0x18]
+ add r5, r5, #1
+ add r6, r6, #2
+ add r7, r7, #1
+ bl MOD11_0222FFC8
+ cmp r7, r0
+ blt _022521DC
+_02252216:
+ ldr r0, [r4]
+ ldr r1, [sp, #0x14]
+ mov r6, #0
+ bl MOD11_0222FFC8
+ cmp r0, #0
+ ble _02252272
+ ldr r0, [sp, #0x14]
+ mov r1, #6
+ mul r1, r0
+ mov r0, #1
+ add r5, r4, r1
+ str r0, [sp, #0xc]
+ add r7, r6, #0
+_02252232:
+ ldrb r2, [r5, #0x1c]
+ ldr r0, [r4]
+ ldr r1, [sp, #0x14]
+ bl MOD11_02230014
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #4]
+ ldr r1, [sp, #0xc]
+ ldr r0, [r0]
+ bl FUN_0206B9B0
+ add r1, r0, #0
+ ldr r0, [sp, #0x20]
+ bl FUN_02069B88
+ ldr r0, [r4, #4]
+ ldrb r1, [r5, #0x1c]
+ add r0, r0, r7
+ add r0, #0x2d
+ strb r1, [r0]
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x14]
+ add r0, r0, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ add r5, r5, #1
+ add r7, r7, #2
+ add r6, r6, #1
+ bl MOD11_0222FFC8
+ cmp r6, r0
+ blt _02252232
+_02252272:
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230260
+ cmp r0, #4
+ bne _02252286
+ ldr r0, [r4, #4]
+ mov r1, #1
+ strb r1, [r0, #0x11]
+ b _0225230E
+_02252286:
+ ldr r0, [r4, #4]
+ mov r1, #0
+ strb r1, [r0, #0x11]
+ b _0225230E
+_0225228E:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _022522B0
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _022522B0
+ ldrb r1, [r4, #9]
+ mov r0, #1
+ add r7, r1, #0
+ and r7, r0
+ b _022522B4
+_022522B0:
+ ldrb r1, [r4, #9]
+ add r7, r1, #0
+_022522B4:
+ ldr r0, [r4]
+ bl MOD11_02230260
+ cmp r0, #4
+ bne _022522C2
+ mov r1, #1
+ b _022522C4
+_022522C2:
+ mov r1, #0
+_022522C4:
+ ldr r0, [r4, #4]
+ strb r1, [r0, #0x11]
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_0222FF88
+ str r0, [sp, #0x10]
+ mov r5, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0225230E
+ mov r0, #6
+ mul r0, r7
+ add r6, r4, r0
+_022522E2:
+ ldrb r2, [r6, #0x1c]
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_02230014
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ ldr r0, [r0]
+ bl FUN_0206B900
+ ldr r0, [r4, #4]
+ ldrb r1, [r6, #0x1c]
+ add r0, r0, r5
+ add r0, #0x2c
+ strb r1, [r0]
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _022522E2
+_0225230E:
+ ldr r1, [r4]
+ ldr r0, [r4, #4]
+ str r1, [r0, #8]
+ ldr r0, [r4, #4]
+ mov r1, #5
+ str r1, [r0, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x36
+ strb r1, [r0]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #4]
+ strh r1, [r0, #0x24]
+ ldrb r1, [r4, #0x16]
+ ldr r0, [r4, #4]
+ strb r1, [r0, #0x12]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0xb]
+ add r0, #0x35
+ strb r1, [r0]
+ ldrh r1, [r4, #0x14]
+ ldr r0, [r4, #4]
+ strh r1, [r0, #0x22]
+ ldrb r1, [r4, #9]
+ ldr r0, [r4, #4]
+ str r1, [r0, #0x28]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x17]
+ add r0, #0x32
+ strb r1, [r0]
+ ldrb r0, [r4, #9]
+ bl FUN_0206A92C
+ ldrb r1, [r4, #0x18]
+ tst r0, r1
+ bne _0225235E
+ ldrb r0, [r4, #9]
+ add r0, r4, r0
+ ldrb r1, [r0, #0xc]
+ b _02252360
+_0225235E:
+ mov r1, #6
+_02252360:
+ ldr r0, [r4, #4]
+ strb r1, [r0, #0x14]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ beq _02252378
+ ldr r0, [r4, #4]
+ mov r1, #6
+ strb r1, [r0, #0x15]
+ b _022523A2
+_02252378:
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ bl FUN_0206A92C
+ ldrb r1, [r4, #0x18]
+ tst r0, r1
+ bne _0225239C
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r0, r4, r0
+ ldrb r1, [r0, #0xc]
+ ldr r0, [r4, #4]
+ strb r1, [r0, #0x15]
+ b _022523A2
+_0225239C:
+ ldr r0, [r4, #4]
+ mov r1, #6
+ strb r1, [r0, #0x15]
+_022523A2:
+ ldr r0, [r4, #4]
+ bl FUN_02211E60
+ ldrb r0, [r4, #0xa]
+ add sp, #0x24
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_022523B2:
+ ldr r0, [r4, #4]
+ add r0, #0x36
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02252468
+ ldr r0, [r4]
+ bl MOD11_0222D88C
+ ldr r0, [r4]
+ bl MOD11_02230094
+ ldr r1, [r4, #4]
+ add r1, #0x32
+ ldrb r1, [r1]
+ bl MOD11_0225C778
+ mov r0, #7
+ str r0, [sp]
+ mov r0, #0
+ mov r1, #5
+ str r0, [sp, #4]
+ mov r2, #3
+ add r3, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ lsl r2, r2, #0xa
+ sub r3, #0xd
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ mov r1, #0xa
+ str r0, [sp, #4]
+ add r3, r1, #0
+ str r0, [sp, #8]
+ ldr r2, _0225246C ; =0x0000FFFF
+ add r0, r5, #0
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xa]
+ add sp, #0x24
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_0225240E:
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02252468
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #0
+ bl FUN_020143A8
+ ldr r3, [r4, #4]
+ ldr r0, [r4]
+ ldrb r2, [r3, #0x11]
+ cmp r2, #6
+ bne _02252436
+ ldrb r1, [r4, #9]
+ mov r2, #0xff
+ bl MOD11_02255964
+ b _02252444
+_02252436:
+ add r2, r3, r2
+ add r2, #0x2c
+ ldrb r2, [r2]
+ ldrb r1, [r4, #9]
+ add r2, r2, #1
+ bl MOD11_02255964
+_02252444:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ ldr r0, [r4, #4]
+ ldr r0, [r0]
+ bl FUN_02016A18
+ ldr r0, [r4, #4]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_02252468:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225246C: .word 0x0000FFFF
+
+ thumb_func_start MOD11_02252470
+MOD11_02252470: ; 0x02252470
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ ldrb r6, [r5, #9]
+ tst r1, r0
+ bne _0225248C
+ mov r1, #8
+ tst r0, r1
+ beq _02252490
+_0225248C:
+ str r6, [sp, #4]
+ b _0225249A
+_02252490:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD11_022302BC
+ str r0, [sp, #4]
+_0225249A:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl FUN_021F4A30
+ add r4, r0, #0
+ cmp r4, #6
+ bne _022524FE
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl FUN_021F4698
+ add r4, r0, #0
+ cmp r4, #6
+ bne _022524FE
+ ldrb r1, [r5, #9]
+ ldr r0, [r5]
+ bl MOD11_0222FF88
+ str r0, [sp, #8]
+ mov r4, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _022524FE
+ ldr r0, [sp, #4]
+ add r7, r5, r6
+ add r6, r5, r0
+_022524D0:
+ ldrb r1, [r5, #9]
+ ldr r0, [r5]
+ add r2, r4, #0
+ bl MOD11_02230014
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022524F2
+ ldrb r0, [r7, #0xc]
+ cmp r4, r0
+ beq _022524F2
+ ldrb r0, [r6, #0xc]
+ cmp r4, r0
+ bne _022524FE
+_022524F2:
+ ldr r0, [sp, #8]
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _022524D0
+_022524FE:
+ ldrb r1, [r5, #9]
+ ldr r0, [r5]
+ add r2, r4, #1
+ bl MOD11_02255964
+ ldrb r1, [r5, #9]
+ ldrb r2, [r5, #8]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FUN_02016A18
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252524
+MOD11_02252524: ; 0x02252524
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #9]
+ add r5, r0, #0
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ 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 MOD11_02252544
+MOD11_02252544: ; 0x02252544
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r0, [r4]
+ bl MOD11_02230094
+ add r5, r0, #0
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ str r0, [sp]
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldrb r0, [r4, #0xd]
+ cmp r1, r0
+ beq _0225257E
+ ldr r0, [r4]
+ bl MOD11_02231380
+ add r6, r0, #0
+ b _02252580
+_0225257E:
+ mov r6, #0
+_02252580:
+ ldrb r0, [r4, #0xe]
+ cmp r0, #4
+ bhi _02252600
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02252592: ; jump table
+ .short _0225259C - _02252592 - 2 ; case 0
+ .short _022525EC - _02252592 - 2 ; case 1
+ .short _0225267E - _02252592 - 2 ; case 2
+ .short _0225269C - _02252592 - 2 ; case 3
+ .short _022526E0 - _02252592 - 2 ; case 4
+_0225259C:
+ add r0, r5, #0
+ bl MOD11_02258F5C
+ cmp r0, #0
+ beq _02252600
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _022525E4
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ ldrb r0, [r4, #0xf]
+ cmp r0, #5
+ add r0, sp, #4
+ bne _022525C6
+ mov r1, #0x82
+ strb r1, [r0, #5]
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0xc]
+ b _022525CA
+_022525C6:
+ mov r1, #0
+ strb r1, [r0, #5]
+_022525CA:
+ ldr r1, [r4, #0x10]
+ add r0, sp, #4
+ strh r1, [r0, #6]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #8
+ bl MOD11_0223178C
+ strh r0, [r4, #0x1a]
+_022525E4:
+ mov r0, #1
+ add sp, #0x2c
+ strb r0, [r4, #0xe]
+ pop {r4, r5, r6, r7, pc}
+_022525EC:
+ ldrh r0, [r4, #0x1a]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02252602
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _02252602
+_02252600:
+ b _0225270A
+_02252602:
+ add r0, r5, #0
+ bl MOD11_02258E30
+ ldrh r1, [r4, #0x18]
+ add r0, sp, #4
+ strh r1, [r0]
+ ldrb r0, [r4, #0xf]
+ cmp r0, #5
+ bhi _02252672
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02252620: ; jump table
+ .short _0225262C - _02252620 - 2 ; case 0
+ .short _0225263A - _02252620 - 2 ; case 1
+ .short _02252648 - _02252620 - 2 ; case 2
+ .short _02252656 - _02252620 - 2 ; case 3
+ .short _02252664 - _02252620 - 2 ; case 4
+ .short _0225262C - _02252620 - 2 ; case 5
+_0225262C:
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02258820
+ b _02252676
+_0225263A:
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02258820
+ b _02252676
+_02252648:
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02258820
+ b _02252676
+_02252656:
+ add r0, r5, #0
+ mov r1, #0x10
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02258820
+ b _02252676
+_02252664:
+ add r0, r5, #0
+ mov r1, #0x11
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02258820
+ b _02252676
+_02252672:
+ bl ErrorHandling
+_02252676:
+ mov r0, #2
+ add sp, #0x2c
+ strb r0, [r4, #0xe]
+ pop {r4, r5, r6, r7, pc}
+_0225267E:
+ add r0, r5, #0
+ bl MOD11_02258E74
+ mov r1, #0
+ mvn r1, r1
+ str r0, [r4, #8]
+ cmp r0, r1
+ beq _0225270A
+ ldr r0, _02252710 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #3
+ add sp, #0x2c
+ strb r0, [r4, #0xe]
+ pop {r4, r5, r6, r7, pc}
+_0225269C:
+ add r0, r5, #0
+ bl MOD11_02258F5C
+ cmp r0, #1
+ bne _0225270A
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ ldr r0, [sp]
+ bl MOD11_0225468C
+ add r0, r6, #0
+ bl MOD11_02258184
+ add r0, r5, #0
+ bl MOD11_02258E30
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ ldr r0, [r4, #8]
+ cmp r0, #1
+ bne _022526D8
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+_022526D8:
+ mov r0, #4
+ add sp, #0x2c
+ strb r0, [r4, #0xe]
+ pop {r4, r5, r6, r7, pc}
+_022526E0:
+ add r0, r5, #0
+ bl MOD11_0225B780
+ cmp r0, #1
+ bne _0225270A
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ ldr r2, [r4, #8]
+ bl MOD11_02255528
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_0200CAB4
+_0225270A:
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02252710: .word 0x000005DD
+
+ thumb_func_start MOD11_02252714
+MOD11_02252714: ; 0x02252714
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r5, r0, #0
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ 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 MOD11_02252734
+MOD11_02252734: ; 0x02252734
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r5, r0, #0
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ 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 MOD11_02252754
+MOD11_02252754: ; 0x02252754
+ push {r3, r4, r5, lr}
+ sub sp, #0x1fc
+ sub sp, #0x14
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r0, [r0]
+ cmp r0, #0xa
+ bls _0225276A
+ b _022529B8
+_0225276A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02252776: ; jump table
+ .short _0225278C - _02252776 - 2 ; case 0
+ .short _02252996 - _02252776 - 2 ; case 1
+ .short _022527E6 - _02252776 - 2 ; case 2
+ .short _02252996 - _02252776 - 2 ; case 3
+ .short _02252842 - _02252776 - 2 ; case 4
+ .short _02252996 - _02252776 - 2 ; case 5
+ .short _02252890 - _02252776 - 2 ; case 6
+ .short _02252996 - _02252776 - 2 ; case 7
+ .short _02252918 - _02252776 - 2 ; case 8
+ .short _02252996 - _02252776 - 2 ; case 9
+ .short _02252974 - _02252776 - 2 ; case 10
+_0225278C:
+ ldrh r0, [r4, #0x1e]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _022527DA
+ ldr r0, [r4, #0x5c]
+ cmp r0, #0
+ bne _022527DA
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl FUN_0200782C
+ cmp r0, #0
+ bne _022527DA
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0x1b8
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0xc]
+ add r3, sp, #0x1b8
+ bl MOD11_02254404
+ add sp, #0x1fc
+ mov r0, #1
+ add r4, #0x6a
+ add sp, #0x14
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_022527DA:
+ add sp, #0x1fc
+ mov r0, #4
+ add r4, #0x6a
+ add sp, #0x14
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_022527E6:
+ add r3, r4, #0
+ add r3, #0x69
+ ldrb r3, [r3]
+ ldr r0, [r4]
+ add r1, #0x10
+ add r2, sp, #0x168
+ bl MOD11_0225452C
+ add r0, sp, #0x168
+ mov r1, #5
+ bl MOD08_0222A494
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x110
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0xc]
+ add r3, sp, #0x110
+ bl MOD11_02254404
+ mov r0, #0x1a
+ add sp, #0x1fc
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r0, [r0]
+ add r4, #0x6a
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252842:
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD11_02231484
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0225285A
+ ldr r0, [r4]
+ bl MOD11_02231410
+_0225285A:
+ add r0, r4, #0
+ add r0, #0x6c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02252870
+ ldr r0, [r4]
+ bl MOD11_02230068
+ mov r1, #1
+ bl FUN_02008284
+_02252870:
+ add r3, r4, #0
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0xc]
+ add r3, #0x10
+ bl MOD11_02254404
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r0, [r0]
+ add sp, #0x1fc
+ add r4, #0x6a
+ add r0, r0, #1
+ add sp, #0x14
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252890:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_02231484
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022528A8
+ ldr r0, [r4]
+ bl MOD11_022313E0
+_022528A8:
+ add r0, r4, #0
+ add r0, #0x6c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022528BE
+ ldr r0, [r4]
+ bl MOD11_02230068
+ mov r1, #1
+ bl FUN_02008290
+_022528BE:
+ ldrh r0, [r4, #0x1e]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0225290C
+ ldr r0, [r4, #0x5c]
+ cmp r0, #0
+ bne _0225290C
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl FUN_0200782C
+ cmp r0, #0
+ bne _0225290C
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0xb8
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0xc]
+ add r3, sp, #0xb8
+ bl MOD11_02254404
+ add sp, #0x1fc
+ mov r0, #7
+ add r4, #0x6a
+ add sp, #0x14
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0225290C:
+ add sp, #0x1fc
+ mov r0, #0xa
+ add r4, #0x6a
+ add sp, #0x14
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252918:
+ add r3, r4, #0
+ add r3, #0x69
+ ldrb r3, [r3]
+ ldr r0, [r4]
+ add r1, #0x10
+ add r2, sp, #0x68
+ bl MOD11_0225452C
+ add r0, sp, #0x68
+ mov r1, #5
+ bl MOD08_0222A568
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x10
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0xc]
+ add r3, sp, #0x10
+ bl MOD11_02254404
+ mov r0, #0x1a
+ add sp, #0x1fc
+ ldr r1, [r4, #4]
+ mov r2, #1
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r0, [r0]
+ add r4, #0x6a
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252974:
+ add r2, r4, #0
+ add r1, #0x69
+ add r2, #0x68
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #0x1fc
+ add sp, #0x14
+ pop {r3, r4, r5, pc}
+_02252996:
+ ldr r0, [r4, #0xc]
+ bl FUN_02212384
+ ldr r0, [r4, #0xc]
+ bl FUN_022123A0
+ cmp r0, #0
+ bne _022529B8
+ ldr r0, [r4, #0xc]
+ bl FUN_022123B0
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r0, [r0]
+ add r4, #0x6a
+ add r0, r0, #1
+ strb r0, [r4]
+_022529B8:
+ add sp, #0x1fc
+ add sp, #0x14
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022529C0
+MOD11_022529C0: ; 0x022529C0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #9]
+ cmp r0, #6
+ bhs _022529FA
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ bne _022529F4
+ mov r0, #2
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #9]
+ mov r1, #6
+ add r0, r0, #1
+ strb r0, [r4, #9]
+ ldr r0, [r4, #4]
+ bl FUN_0200782C
+ add r3, r0, #0
+ mov r2, #1
+ ldr r0, [r4, #4]
+ mov r1, #6
+ eor r2, r3
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_022529F4:
+ sub r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_022529FA:
+ ldr r0, [r4, #4]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldrb r1, [r4, #8]
+ ldr r0, [r4]
+ mov r2, #0x17
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02252A1C
+MOD11_02252A1C: ; 0x02252A1C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02252A2E
+ cmp r0, #1
+ beq _02252A3C
+ b _02252A52
+_02252A2E:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_02257150
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_02252A3C:
+ add r0, r4, #0
+ bl MOD11_02257184
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02252A6C
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252A52:
+ add r2, r4, #0
+ add r1, #0x24
+ add r2, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4, #0xc]
+ bl MOD11_022567B8
+ mov r0, #0
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02252A6C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252A70
+MOD11_02252A70: ; 0x02252A70
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02252A86
+ cmp r0, #1
+ beq _02252AA2
+ cmp r0, #2
+ beq _02252AE8
+ b _02252B0E
+_02252A86:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x4e
+ strb r1, [r0]
+ ldr r0, _02252B2C ; =0x0000070B
+ bl FUN_020054C8
+ ldr r1, [r4, #0x40]
+ add r0, r4, #0
+ bl MOD11_022571B8
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_02252AA2:
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ cmp r0, #8
+ bhs _02252ABA
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x4e
+ strb r1, [r0]
+_02252ABA:
+ add r0, r4, #0
+ bl MOD11_022571EC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02252B28
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ cmp r0, #8
+ blo _02252AE0
+ ldr r0, _02252B2C ; =0x0000070B
+ mov r1, #0
+ bl FUN_020054F0
+ mov r0, #0x64
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252AE0:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252AE8:
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x4e
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ cmp r0, #8
+ blo _02252B28
+ ldr r0, _02252B2C ; =0x0000070B
+ mov r1, #0
+ bl FUN_020054F0
+ mov r0, #0x64
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252B0E:
+ add r2, r4, #0
+ add r1, #0x24
+ add r2, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4, #0xc]
+ bl MOD11_022567B8
+ mov r0, #0
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02252B28:
+ pop {r3, r4, r5, pc}
+ nop
+_02252B2C: .word 0x0000070B
+
+ thumb_func_start MOD11_02252B30
+MOD11_02252B30: ; 0x02252B30
+ push {r4, r5, r6, lr}
+ sub sp, #0x110
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r1, r4, #0
+ add r1, #0x66
+ ldrb r1, [r1]
+ add r5, r0, #0
+ cmp r1, #0xa
+ bls _02252B4C
+ b _02252DAA
+_02252B4C:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02252B58: ; jump table
+ .short _02252B6E - _02252B58 - 2 ; case 0
+ .short _02252C16 - _02252B58 - 2 ; case 1
+ .short _02252BBA - _02252B58 - 2 ; case 2
+ .short _02252C16 - _02252B58 - 2 ; case 3
+ .short _02252C3A - _02252B58 - 2 ; case 4
+ .short _02252C82 - _02252B58 - 2 ; case 5
+ .short _02252C9C - _02252B58 - 2 ; case 6
+ .short _02252CD8 - _02252B58 - 2 ; case 7
+ .short _02252D04 - _02252B58 - 2 ; case 8
+ .short _02252D44 - _02252B58 - 2 ; case 9
+ .short _02252D8C - _02252B58 - 2 ; case 10
+_02252B6E:
+ add r0, r4, #0
+ add r0, #0x70
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _02252BB0
+ add r0, r4, #0
+ add r0, #0x65
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0xb8
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0xb8
+ bl MOD11_02254404
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252BB0:
+ mov r0, #4
+ add r4, #0x66
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252BBA:
+ add r3, r4, #0
+ add r3, #0x65
+ ldrb r3, [r3]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0xc
+ add r2, sp, #0x68
+ bl MOD11_0225452C
+ add r0, sp, #0x68
+ mov r1, #5
+ bl MOD08_0222A494
+ add r0, r4, #0
+ add r0, #0x65
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x10
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x10
+ bl MOD11_02254404
+ mov r0, #0x1a
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252C16:
+ bl FUN_02212384
+ add r0, r5, #0
+ bl FUN_022123A0
+ cmp r0, #0
+ bne _02252C8A
+ add r0, r5, #0
+ bl FUN_022123B0
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252C3A:
+ add r0, r4, #0
+ add r0, #0x67
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _02252C48
+ mov r5, #0x75
+ b _02252C4C
+_02252C48:
+ mov r5, #0x74
+ mvn r5, r5
+_02252C4C:
+ add r1, r4, #0
+ add r1, #0x65
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ add r1, r4, #0
+ add r1, #0x72
+ ldrh r1, [r1]
+ add r2, r4, #0
+ add r2, #0x68
+ str r1, [sp, #4]
+ mov r1, #5
+ str r1, [sp, #8]
+ ldrh r2, [r2]
+ add r3, r5, #0
+ bl FUN_02069FB0
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x66
+ strb r1, [r0]
+_02252C82:
+ bl FUN_02005670
+ cmp r0, #0
+ beq _02252C8C
+_02252C8A:
+ b _02252DAA
+_02252C8C:
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252C9C:
+ add r0, r4, #0
+ add r0, #0x67
+ ldrb r0, [r0]
+ cmp r0, #2
+ ldr r0, _02252DB0 ; =0x00000703
+ bne _02252CB0
+ mov r1, #0x75
+ bl FUN_020054A8
+ b _02252CB8
+_02252CB0:
+ mov r1, #0x74
+ mvn r1, r1
+ bl FUN_020054A8
+_02252CB8:
+ ldr r0, [r4, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ cmp r0, #0
+ ble _02252CCE
+ mov r0, #7
+ add r4, #0x66
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252CCE:
+ mov r0, #8
+ add r4, #0x66
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252CD8:
+ ldr r0, [r4, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ add r5, r0, #0
+ sub r5, #8
+ bpl _02252CE8
+ mov r5, #0
+_02252CE8:
+ ldr r0, [r4, #8]
+ mov r1, #0x29
+ add r2, r5, #0
+ bl FUN_02007558
+ cmp r5, #0
+ bne _02252DAA
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x66
+ strb r1, [r0]
+_02252D04:
+ ldr r0, [r4, #0x6c]
+ add r1, r4, #0
+ str r0, [sp]
+ add r0, r4, #0
+ add r2, r4, #0
+ add r3, r4, #0
+ add r0, #0x68
+ add r1, #0x6a
+ add r2, #0x67
+ add r3, #0x6b
+ ldrh r0, [r0]
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldrb r3, [r3]
+ bl FUN_02068E88
+ mov r3, #0x50
+ sub r0, r3, r0
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl FUN_02007E40
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252D44:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ mov r1, #1
+ add r2, #8
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #0x12
+ bl FUN_0200782C
+ add r5, r0, #0
+ sub r5, #8
+ bpl _02252D68
+ mov r5, #0
+_02252D68:
+ ldr r0, [r4, #8]
+ mov r1, #0x12
+ add r2, r5, #0
+ bl FUN_02007558
+ cmp r5, #0
+ bne _02252DAA
+ ldr r0, [r4, #8]
+ bl FUN_02007534
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252D8C:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x65
+ add r2, #0x64
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_02252DAA:
+ add sp, #0x110
+ pop {r4, r5, r6, pc}
+ nop
+_02252DB0: .word 0x00000703
+
+ thumb_func_start MOD11_02252DB4
+MOD11_02252DB4: ; 0x02252DB4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300CC
+ add r4, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230068
+ add r7, r0, #0
+ ldrb r0, [r5, #6]
+ cmp r0, #0
+ beq _02252DDE
+ cmp r0, #1
+ beq _02252E1C
+ cmp r0, #2
+ beq _02252E30
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_02252DDE:
+ ldr r0, [r5]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _02252E4C ; =0x0000FFFF
+ add r0, r4, #0
+ mov r1, #0xf
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ add r0, r7, #0
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+ mov r0, #0
+ mov r1, #0x10
+ bl FUN_020053CC
+ ldrb r0, [r5, #6]
+ add r0, r0, #1
+ strb r0, [r5, #6]
+_02252E1C:
+ add r0, r4, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02252E46
+ ldrb r0, [r5, #6]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r5, #6]
+ pop {r4, r5, r6, r7, pc}
+_02252E30:
+ ldrb r1, [r5, #5]
+ ldrb r2, [r5, #4]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_02252E46:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02252E4C: .word 0x0000FFFF
+
+ thumb_func_start MOD11_02252E50
+MOD11_02252E50: ; 0x02252E50
+ push {r4, r5, r6, lr}
+ sub sp, #0x110
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r1, r4, #0
+ add r1, #0x62
+ ldrb r1, [r1]
+ add r5, r0, #0
+ cmp r1, #4
+ bls _02252E6C
+ b _02252F98
+_02252E6C:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02252E78: ; jump table
+ .short _02252E82 - _02252E78 - 2 ; case 0
+ .short _02252EC4 - _02252E78 - 2 ; case 1
+ .short _02252F74 - _02252E78 - 2 ; case 2
+ .short _02252F18 - _02252E78 - 2 ; case 3
+ .short _02252F74 - _02252E78 - 2 ; case 4
+_02252E82:
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ cmp r0, #0
+ beq _02252EBA
+ add r2, r4, #0
+ add r2, #0x63
+ ldrb r2, [r2]
+ mov r1, #6
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x63
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02252EAA
+ mov r0, #0xff
+ add r4, #0x62
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252EAA:
+ add r0, r4, #0
+ add r0, #0x62
+ ldrb r0, [r0]
+ add r4, #0x62
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252EBA:
+ mov r0, #0xff
+ add r4, #0x62
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252EC4:
+ ldr r0, [r4, #0x64]
+ cmp r0, #0
+ beq _02252F0E
+ mov r0, #0x1a
+ ldr r1, [r4, #4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02252F0E
+ add r0, r4, #0
+ add r0, #0x61
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0xb8
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0xb8
+ bl MOD11_02254404
+ add r0, r4, #0
+ add r0, #0x62
+ ldrb r0, [r0]
+ add r4, #0x62
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252F0E:
+ mov r0, #0xff
+ add r4, #0x62
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252F18:
+ add r3, r4, #0
+ add r3, #0x61
+ ldrb r3, [r3]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #8
+ add r2, sp, #0x68
+ bl MOD11_0225452C
+ add r0, sp, #0x68
+ mov r1, #5
+ bl MOD08_0222A568
+ add r0, r4, #0
+ add r0, #0x61
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x10
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x10
+ bl MOD11_02254404
+ mov r0, #0x1a
+ ldr r1, [r4, #4]
+ mov r2, #1
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x62
+ ldrb r0, [r0]
+ add r4, #0x62
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252F74:
+ bl FUN_02212384
+ add r0, r5, #0
+ bl FUN_022123A0
+ cmp r0, #0
+ bne _02252FB6
+ add r0, r5, #0
+ bl FUN_022123B0
+ add r0, r4, #0
+ add r0, #0x62
+ ldrb r0, [r0]
+ add r4, #0x62
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252F98:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x61
+ add r2, #0x60
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_02252FB6:
+ add sp, #0x110
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252FBC
+MOD11_02252FBC: ; 0x02252FBC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ beq _02252FCE
+ cmp r0, #1
+ beq _02252FE4
+ pop {r3, r4, r5, pc}
+_02252FCE:
+ ldr r0, [r4, #4]
+ add r1, #0xb
+ bl MOD11_0225805C
+ ldr r0, _02253004 ; =0x0000070C
+ bl FUN_020054C8
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_02252FE4:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #1
+ bne _02253000
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02253000:
+ pop {r3, r4, r5, pc}
+ nop
+_02253004: .word 0x0000070C
+
+ thumb_func_start MOD11_02253008
+MOD11_02253008: ; 0x02253008
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022312C0
+ cmp r0, #0
+ beq _0225302A
+ ldr r0, [r4]
+ bl MOD11_022312C0
+ bl FUN_0200DBFC
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_022312C8
+_0225302A:
+ ldrb r0, [r4, #6]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0225304A
+ ldrb r1, [r4, #5]
+ ldrb r2, [r4, #4]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0225304A:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0225304C
+MOD11_0225304C: ; 0x0225304C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #7]
+ cmp r0, #0
+ beq _0225305E
+ cmp r0, #1
+ beq _02253074
+ pop {r3, r4, r5, pc}
+_0225305E:
+ ldrb r0, [r4, #6]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0225309E
+ ldrb r0, [r4, #7]
+ add r0, r0, #1
+ strb r0, [r4, #7]
+ mov r0, #0
+ strb r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02253074:
+ ldrb r0, [r4, #8]
+ add r0, r0, #1
+ strb r0, [r4, #8]
+ ldrb r0, [r4, #8]
+ cmp r0, #0x28
+ bne _0225309E
+ ldrb r1, [r4, #5]
+ ldr r0, [r4]
+ bl MOD11_02256004
+ ldrb r1, [r4, #5]
+ ldrb r2, [r4, #4]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0225309E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022530A0
+MOD11_022530A0: ; 0x022530A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230294
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022302A8
+ lsl r1, r0, #2
+ ldr r0, _022533D8 ; =0x0225E86C
+ ldr r6, [r0, r1]
+ ldrb r0, [r4, #0x15]
+ add r0, r0, #1
+ strb r0, [r4, #0x15]
+ ldrb r0, [r4, #0x14]
+ cmp r0, #6
+ bhi _02253102
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022530E2: ; jump table
+ .short _022530F0 - _022530E2 - 2 ; case 0
+ .short _022530F8 - _022530E2 - 2 ; case 1
+ .short _0225314A - _022530E2 - 2 ; case 2
+ .short _022532AC - _022530E2 - 2 ; case 3
+ .short _022532C8 - _022530E2 - 2 ; case 4
+ .short _022532E4 - _022530E2 - 2 ; case 5
+ .short _022532F6 - _022530E2 - 2 ; case 6
+_022530F0:
+ add r0, r0, #1
+ add sp, #0x18
+ strb r0, [r4, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+_022530F8:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _02253104
+_02253102:
+ b _022533D4
+_02253104:
+ mov r0, #5
+ mov r1, #0
+ bl MOD08_0222A0D4
+ str r0, [r4, #4]
+ ldr r0, _022533DC ; =0x0225E820
+ add r1, sp, #0x10
+ ldrb r5, [r0, r7]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ str r5, [sp, #0x10]
+ ldr r0, [r4, #4]
+ bl MOD08_0222A110
+ str r0, [r4, #8]
+ add r0, r5, #1
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #4]
+ add r1, sp, #0x10
+ bl MOD08_0222A110
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ bl MOD08_0222A1DC
+ ldr r0, _022533E0 ; =0x0000084F
+ bl FUN_020054C8
+ ldrb r0, [r4, #0x14]
+ add sp, #0x18
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225314A:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0xa
+ bne _02253180
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r2, _022533E4 ; =0x0000F3FF
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_02003210
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r2, _022533E8 ; =0x00003FFF
+ add r0, r5, #0
+ mov r1, #4
+ bl FUN_02003210
+_02253180:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0x14
+ bne _0225318C
+ ldr r0, [r4, #0xc]
+ bl MOD08_0222A1DC
+_0225318C:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0x17
+ bne _0225319A
+ mov r0, #0x85
+ lsl r0, r0, #4
+ bl FUN_020054C8
+_0225319A:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0x1c
+ bne _02253286
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_020031FC
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231244
+ add r1, r7, #0
+ mov r2, #0xe0
+ blx MIi_CpuCopy16
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #0x4a
+ bne _022531DC
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r7, #0
+ mov r2, #0xa0
+ blx MIi_CpuCopy16
+ b _0225323E
+_022531DC:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02253200
+ add r0, r5, #0
+ bl FUN_020031FC
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r7, #0
+ mov r2, #0xe0
+ blx MIi_CpuCopy16
+ b _0225323E
+_02253200:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _02253226
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r7, #0
+ mov r2, #0xa0
+ blx MIi_CpuCopy16
+ b _0225323E
+_02253226:
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r7, #0
+ mov r2, #0x80
+ blx MIi_CpuCopy16
+_0225323E:
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ lsl r0, r6, #0x10
+ str r3, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r2, _022533E4 ; =0x0000F3FF
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ lsl r0, r6, #0x10
+ str r3, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r2, _022533E8 ; =0x00003FFF
+ add r0, r5, #0
+ mov r1, #4
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ lsl r0, r6, #0x10
+ str r3, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r2, _022533EC ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #0xa
+ bl FUN_02003210
+_02253286:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0x32
+ bne _022532B6
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ mov r2, #3
+ str r3, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ lsl r2, r2, #0xa
+ bl FUN_02003210
+ ldrb r0, [r4, #0x14]
+ add sp, #0x18
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+_022532AC:
+ ldr r0, [r4, #0xc]
+ bl MOD08_0222A204
+ cmp r0, #0
+ beq _022532B8
+_022532B6:
+ b _022533D4
+_022532B8:
+ ldr r0, [r4, #4]
+ bl MOD08_0222A14C
+ ldrb r0, [r4, #0x14]
+ add sp, #0x18
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+_022532C8:
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #0
+ bl FUN_020143A8
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [sp, #0xc]
+ bl FUN_0200CAB4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_022532E4:
+ ldr r0, [r4, #4]
+ bl MOD08_0222A170
+ ldr r0, [r4, #4]
+ bl MOD08_0222A14C
+ ldrb r0, [r4, #0x14]
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+_022532F6:
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_020031FC
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231244
+ add r1, r6, #0
+ mov r2, #0xe0
+ blx MIi_CpuCopy16
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #0x4a
+ bne _02253332
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r6, #0
+ mov r2, #0xa0
+ blx MIi_CpuCopy16
+ b _02253394
+_02253332:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02253356
+ add r0, r5, #0
+ bl FUN_020031FC
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r6, #0
+ mov r2, #0xe0
+ blx MIi_CpuCopy16
+ b _02253394
+_02253356:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _0225337C
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r6, #0
+ mov r2, #0xa0
+ blx MIi_CpuCopy16
+ b _02253394
+_0225337C:
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r6, #0
+ mov r2, #0x80
+ blx MIi_CpuCopy16
+_02253394:
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _022533F0 ; =0x00007FFF
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, _022533EC ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_02003210
+ mov r3, #0
+ str r3, [sp]
+ ldr r2, _022533EC ; =0x0000FFFF
+ str r3, [sp, #4]
+ str r2, [sp, #8]
+ add r0, r5, #0
+ mov r1, #4
+ lsr r2, r2, #2
+ bl FUN_02003210
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _022533F0 ; =0x00007FFF
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, _022533EC ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #0xa
+ bl FUN_02003210
+ mov r0, #4
+ strb r0, [r4, #0x14]
+_022533D4:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022533D8: .word 0x0225E86C
+_022533DC: .word 0x0225E820
+_022533E0: .word 0x0000084F
+_022533E4: .word 0x0000F3FF
+_022533E8: .word 0x00003FFF
+_022533EC: .word 0x0000FFFF
+_022533F0: .word 0x00007FFF
+
+ thumb_func_start MOD11_022533F4
+MOD11_022533F4: ; 0x022533F4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ ldrb r1, [r4, #0xa]
+ add r6, r0, #0
+ cmp r1, #3
+ bls _0225340C
+ b _02253524
+_0225340C:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02253418: ; jump table
+ .short _02253420 - _02253418 - 2 ; case 0
+ .short _02253440 - _02253418 - 2 ; case 1
+ .short _022534B0 - _02253418 - 2 ; case 2
+ .short _022534E2 - _02253418 - 2 ; case 3
+_02253420:
+ mov r2, #0
+ str r2, [sp]
+ mov r1, #0x10
+ str r1, [sp, #4]
+ mov r1, #0xa
+ str r2, [sp, #8]
+ add r3, r1, #0
+ ldr r2, _02253528 ; =0x0000FFFF
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xa]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, pc}
+_02253440:
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02253524
+ ldr r0, [r4]
+ bl MOD11_0222D7F8
+ mov r0, #5
+ mov r1, #0x38
+ bl FUN_02016998
+ str r0, [r4, #4]
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_0222FF88
+ ldr r1, [r4, #4]
+ mov r2, #3
+ str r0, [r1]
+ ldr r1, [r4]
+ ldr r0, [r4, #4]
+ str r1, [r0, #8]
+ ldr r0, [r4, #4]
+ mov r1, #5
+ str r1, [r0, #0xc]
+ ldrb r1, [r4, #0xe]
+ ldr r0, [r4, #4]
+ strb r1, [r0, #0x11]
+ ldrh r1, [r4, #0xc]
+ ldr r0, [r4, #4]
+ strh r1, [r0, #0x24]
+ ldr r1, [r4, #4]
+ mov r0, #0
+ add r1, #0x36
+ strb r0, [r1]
+ ldr r1, [r4, #4]
+ strb r0, [r1, #0x12]
+ ldr r1, [r4, #4]
+ add r1, #0x35
+ strb r2, [r1]
+ ldr r1, [r4, #4]
+ strh r0, [r1, #0x22]
+ ldrb r2, [r4, #9]
+ ldr r1, [r4, #4]
+ str r2, [r1, #0x28]
+ ldr r1, [r4, #4]
+ add r1, #0x32
+ strb r0, [r1]
+ ldr r0, [r4, #4]
+ bl FUN_02211E60
+ ldrb r0, [r4, #0xa]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, pc}
+_022534B0:
+ ldr r0, [r4, #4]
+ add r0, #0x36
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02253524
+ ldr r0, [r4]
+ bl MOD11_0222D88C
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ mov r1, #0xa
+ str r0, [sp, #4]
+ add r3, r1, #0
+ str r0, [sp, #8]
+ ldr r2, _02253528 ; =0x0000FFFF
+ add r0, r6, #0
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xa]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, pc}
+_022534E2:
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02253524
+ ldr r0, [r4, #4]
+ add r0, #0x34
+ ldrb r2, [r0]
+ ldr r0, [r4]
+ cmp r2, #4
+ bne _02253500
+ ldrb r1, [r4, #9]
+ mov r2, #0xff
+ bl MOD11_02255964
+ b _02253508
+_02253500:
+ ldrb r1, [r4, #9]
+ add r2, r2, #1
+ bl MOD11_02255964
+_02253508:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ ldr r0, [r4, #4]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02253524:
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02253528: .word 0x0000FFFF
+
+ thumb_func_start MOD11_0225352C
+MOD11_0225352C: ; 0x0225352C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r5, #0xa]
+ cmp r0, #0
+ beq _0225353E
+ cmp r0, #1
+ beq _02253582
+ pop {r3, r4, r5, pc}
+_0225353E:
+ ldrb r1, [r5, #0xc]
+ ldrb r0, [r5, #0xd]
+ cmp r1, r0
+ bne _0225357C
+ mov r0, #0
+ strb r0, [r5, #0xc]
+ ldr r0, [r5, #4]
+ mov r1, #0x28
+ bl FUN_0200782C
+ add r4, r0, #0
+ ldrb r0, [r5, #0xb]
+ cmp r4, r0
+ ble _0225355E
+ sub r4, r4, #1
+ b _02253564
+_0225355E:
+ cmp r4, r0
+ bge _02253564
+ add r4, r4, #1
+_02253564:
+ ldr r0, [r5, #4]
+ mov r1, #0x28
+ add r2, r4, #0
+ bl FUN_02007558
+ ldrb r0, [r5, #0xb]
+ cmp r4, r0
+ bne _02253598
+ ldrb r0, [r5, #0xa]
+ add r0, r0, #1
+ strb r0, [r5, #0xa]
+ pop {r3, r4, r5, pc}
+_0225357C:
+ add r0, r1, #1
+ strb r0, [r5, #0xc]
+ pop {r3, r4, r5, pc}
+_02253582:
+ ldrb r1, [r5, #9]
+ ldrb r2, [r5, #8]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_02253598:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225359C
+MOD11_0225359C: ; 0x0225359C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldrb r1, [r5, #5]
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _022535B4
+ mov r4, #0
+ b _022535B6
+_022535B4:
+ mov r4, #1
+_022535B6:
+ ldrb r0, [r5, #7]
+ cmp r0, #0
+ beq _022535C2
+ cmp r0, #1
+ beq _0225361C
+ b _02253636
+_022535C2:
+ ldrb r0, [r5, #0xe]
+ cmp r0, #0
+ bne _022535CE
+ mov r7, #0
+ mov r6, #1
+ b _022535E6
+_022535CE:
+ ldrb r0, [r5, #6]
+ mov r7, #1
+ cmp r0, #3
+ beq _022535DC
+ cmp r0, #5
+ beq _022535E0
+ b _022535E4
+_022535DC:
+ mov r6, #0
+ b _022535E6
+_022535E0:
+ mov r6, #2
+ b _022535E6
+_022535E4:
+ add r6, r7, #0
+_022535E6:
+ ldr r0, [r5]
+ bl MOD11_02230078
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ bl MOD11_02230080
+ ldr r1, [sp, #8]
+ add r2, r7, #0
+ str r1, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #8
+ add r1, r4, #0
+ add r3, r6, #0
+ bl MOD11_0225CA08
+ add r2, r0, #0
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl MOD11_022300A8
+ ldrb r0, [r5, #7]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r5, #7]
+ pop {r4, r5, r6, r7, pc}
+_0225361C:
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl MOD11_0223009C
+ bl MOD11_0225CA6C
+ cmp r0, #1
+ bne _0225364C
+ ldrb r0, [r5, #7]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r5, #7]
+ pop {r4, r5, r6, r7, pc}
+_02253636:
+ ldrb r1, [r5, #5]
+ ldrb r2, [r5, #4]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0225364C:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02253650
+MOD11_02253650: ; 0x02253650
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldrb r1, [r5, #5]
+ add r7, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02253666
+ mov r4, #0
+ b _02253668
+_02253666:
+ mov r4, #1
+_02253668:
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl MOD11_0223009C
+ ldrb r1, [r5, #7]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _0225367E
+ cmp r1, #1
+ beq _0225369A
+ b _022536BA
+_0225367E:
+ ldrb r0, [r5, #0xe]
+ cmp r0, #0
+ bne _02253688
+ mov r1, #0
+ b _0225368A
+_02253688:
+ mov r1, #1
+_0225368A:
+ add r0, r6, #0
+ add r2, r1, #0
+ bl MOD11_0225CA90
+ ldrb r0, [r5, #7]
+ add r0, r0, #1
+ strb r0, [r5, #7]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225369A:
+ bl MOD11_0225CAC8
+ cmp r0, #1
+ bne _022536D0
+ add r0, r6, #0
+ bl MOD11_0225CAEC
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD11_022300A8
+ ldrb r0, [r5, #7]
+ add r0, r0, #1
+ strb r0, [r5, #7]
+ pop {r3, r4, r5, r6, r7, pc}
+_022536BA:
+ ldrb r1, [r5, #5]
+ ldrb r2, [r5, #4]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_0200CAB4
+_022536D0:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022536D4
+MOD11_022536D4: ; 0x022536D4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0
+ bne _02253706
+ ldr r0, [r4, #4]
+ add r0, #0x8c
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022536EE
+ bl ErrorHandling
+_022536EE:
+ ldrb r2, [r4, #0xd]
+ ldr r0, [r4]
+ mov r1, #5
+ bl FUN_022156C0
+ ldr r1, [r4, #4]
+ add r1, #0x8c
+ str r0, [r1]
+ ldrb r0, [r4, #0xe]
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, pc}
+_02253706:
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ 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 MOD11_02253720
+MOD11_02253720: ; 0x02253720
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ add r0, #0x8c
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02253734
+ bl ErrorHandling
+_02253734:
+ ldr r0, [r4, #4]
+ add r0, #0x8c
+ ldr r0, [r0]
+ bl FUN_02215988
+ cmp r0, #3
+ bne _0225374E
+ ldrb r0, [r4, #0xe]
+ cmp r0, #5
+ bhs _0225374E
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, pc}
+_0225374E:
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0xd]
+ add r0, #0x8c
+ ldr r0, [r0]
+ bl FUN_0221594C
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x8c
+ str r1, [r0]
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ 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 MOD11_0225377C
+MOD11_0225377C: ; 0x0225377C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #0x40
+ tst r1, r0
+ beq _022537D6
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _022537B6
+ ldr r1, _022539F4 ; =MOD11_02250F44
+ add r0, r0, #2
+ str r1, [r4]
+ ldr r1, _022539F8 ; =MOD11_022511C4
+ str r1, [r4, #4]
+ ldr r1, _022539FC ; =MOD11_02251420
+ str r1, [r4, #8]
+ ldr r1, _02253A00 ; =MOD11_02252018
+ str r1, [r4, #0xc]
+ ldr r1, _02253A04 ; =MOD11_02252470
+ str r1, [r4, #0x10]
+ ldr r1, _02253A08 ; =MOD11_02252714
+ str r1, [r4, #0x14]
+ mov r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022537B6:
+ ldr r1, _02253A0C ; =MOD11_02250A70
+ add r0, r0, #2
+ str r1, [r4]
+ ldr r1, _02253A10 ; =MOD11_0225103C
+ str r1, [r4, #4]
+ ldr r1, _02253A14 ; =MOD11_022512B4
+ str r1, [r4, #8]
+ ldr r1, _02253A18 ; =MOD11_02251484
+ str r1, [r4, #0xc]
+ ldr r1, _02253A1C ; =MOD11_022520A8
+ str r1, [r4, #0x10]
+ ldr r1, _02253A20 ; =MOD11_02252544
+ str r1, [r4, #0x14]
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022537D6:
+ mov r1, #0x88
+ and r1, r0
+ cmp r1, #0x88
+ bne _02253888
+ ldr r0, _02253A24 ; =0x00000195
+ ldrb r1, [r4, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02253832
+ add r0, r5, #0
+ bl MOD11_02230DD4
+ cmp r0, #0
+ beq _02253812
+ ldr r0, _022539F4 ; =MOD11_02250F44
+ mov r1, #1
+ str r0, [r4]
+ ldr r0, _022539F8 ; =MOD11_022511C4
+ str r0, [r4, #4]
+ ldr r0, _022539FC ; =MOD11_02251420
+ str r0, [r4, #8]
+ ldr r0, _02253A00 ; =MOD11_02252018
+ str r0, [r4, #0xc]
+ ldr r0, _02253A04 ; =MOD11_02252470
+ str r0, [r4, #0x10]
+ ldr r0, _02253A08 ; =MOD11_02252714
+ str r0, [r4, #0x14]
+ ldr r0, _02253A28 ; =0x00000196
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253812:
+ ldr r0, _02253A2C ; =MOD11_02250F74
+ mov r1, #2
+ str r0, [r4]
+ ldr r0, _02253A30 ; =MOD11_02251294
+ str r0, [r4, #4]
+ ldr r0, _02253A34 ; =MOD11_02251464
+ str r0, [r4, #8]
+ ldr r0, _02253A38 ; =MOD11_02252070
+ str r0, [r4, #0xc]
+ ldr r0, _02253A3C ; =MOD11_02252524
+ str r0, [r4, #0x10]
+ ldr r0, _02253A40 ; =MOD11_02252734
+ str r0, [r4, #0x14]
+ ldr r0, _02253A28 ; =0x00000196
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253832:
+ bl FUN_02031190
+ add r1, r0, #0
+ add r0, r5, #0
+ lsl r1, r1, #1
+ bl MOD11_02230260
+ ldr r1, _02253A24 ; =0x00000195
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ beq _02253868
+ ldr r0, _02253A2C ; =MOD11_02250F74
+ mov r2, #2
+ str r0, [r4]
+ ldr r0, _02253A30 ; =MOD11_02251294
+ str r0, [r4, #4]
+ ldr r0, _02253A34 ; =MOD11_02251464
+ str r0, [r4, #8]
+ ldr r0, _02253A38 ; =MOD11_02252070
+ str r0, [r4, #0xc]
+ ldr r0, _02253A3C ; =MOD11_02252524
+ str r0, [r4, #0x10]
+ ldr r0, _02253A40 ; =MOD11_02252734
+ str r0, [r4, #0x14]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253868:
+ ldr r0, _02253A0C ; =MOD11_02250A70
+ mov r2, #0
+ str r0, [r4]
+ ldr r0, _02253A10 ; =MOD11_0225103C
+ str r0, [r4, #4]
+ ldr r0, _02253A14 ; =MOD11_022512B4
+ str r0, [r4, #8]
+ ldr r0, _02253A18 ; =MOD11_02251484
+ str r0, [r4, #0xc]
+ ldr r0, _02253A1C ; =MOD11_022520A8
+ str r0, [r4, #0x10]
+ ldr r0, _02253A20 ; =MOD11_02252544
+ str r0, [r4, #0x14]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253888:
+ mov r1, #8
+ tst r1, r0
+ beq _022538E2
+ bl FUN_02031190
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_02230260
+ ldr r1, _02253A24 ; =0x00000195
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ beq _022538C2
+ ldr r0, _02253A2C ; =MOD11_02250F74
+ mov r2, #2
+ str r0, [r4]
+ ldr r0, _02253A30 ; =MOD11_02251294
+ str r0, [r4, #4]
+ ldr r0, _02253A34 ; =MOD11_02251464
+ str r0, [r4, #8]
+ ldr r0, _02253A38 ; =MOD11_02252070
+ str r0, [r4, #0xc]
+ ldr r0, _02253A3C ; =MOD11_02252524
+ str r0, [r4, #0x10]
+ ldr r0, _02253A40 ; =MOD11_02252734
+ str r0, [r4, #0x14]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022538C2:
+ ldr r0, _02253A0C ; =MOD11_02250A70
+ mov r2, #0
+ str r0, [r4]
+ ldr r0, _02253A10 ; =MOD11_0225103C
+ str r0, [r4, #4]
+ ldr r0, _02253A14 ; =MOD11_022512B4
+ str r0, [r4, #8]
+ ldr r0, _02253A18 ; =MOD11_02251484
+ str r0, [r4, #0xc]
+ ldr r0, _02253A1C ; =MOD11_022520A8
+ str r0, [r4, #0x10]
+ ldr r0, _02253A20 ; =MOD11_02252544
+ str r0, [r4, #0x14]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022538E2:
+ mov r1, #4
+ add r2, r0, #0
+ tst r2, r1
+ beq _02253934
+ ldr r0, _02253A24 ; =0x00000195
+ mov r1, #1
+ ldrb r2, [r4, r0]
+ tst r1, r2
+ beq _02253914
+ ldr r1, _02253A2C ; =MOD11_02250F74
+ add r0, r0, #1
+ str r1, [r4]
+ ldr r1, _02253A30 ; =MOD11_02251294
+ str r1, [r4, #4]
+ ldr r1, _02253A34 ; =MOD11_02251464
+ str r1, [r4, #8]
+ ldr r1, _02253A38 ; =MOD11_02252070
+ str r1, [r4, #0xc]
+ ldr r1, _02253A3C ; =MOD11_02252524
+ str r1, [r4, #0x10]
+ ldr r1, _02253A40 ; =MOD11_02252734
+ str r1, [r4, #0x14]
+ mov r1, #2
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253914:
+ ldr r1, _02253A0C ; =MOD11_02250A70
+ add r0, r0, #1
+ str r1, [r4]
+ ldr r1, _02253A10 ; =MOD11_0225103C
+ str r1, [r4, #4]
+ ldr r1, _02253A14 ; =MOD11_022512B4
+ str r1, [r4, #8]
+ ldr r1, _02253A18 ; =MOD11_02251484
+ str r1, [r4, #0xc]
+ ldr r1, _02253A1C ; =MOD11_022520A8
+ str r1, [r4, #0x10]
+ ldr r1, _02253A20 ; =MOD11_02252544
+ str r1, [r4, #0x14]
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253934:
+ lsl r1, r1, #7
+ tst r1, r0
+ beq _02253970
+ ldr r0, _02253A24 ; =0x00000195
+ mov r1, #1
+ ldrb r2, [r4, r0]
+ tst r2, r1
+ beq _0225395A
+ ldr r2, _02253A44 ; =MOD11_02251014
+ add r0, r0, #1
+ str r2, [r4]
+ mov r2, #0
+ str r2, [r4, #4]
+ str r2, [r4, #8]
+ str r2, [r4, #0xc]
+ str r2, [r4, #0x10]
+ str r2, [r4, #0x14]
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_0225395A:
+ ldr r1, _02253A0C ; =MOD11_02250A70
+ add r0, r0, #1
+ str r1, [r4]
+ mov r1, #0
+ str r1, [r4, #4]
+ str r1, [r4, #8]
+ str r1, [r4, #0xc]
+ str r1, [r4, #0x10]
+ str r1, [r4, #0x14]
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253970:
+ mov r1, #0x20
+ tst r0, r1
+ ldr r0, _02253A24 ; =0x00000195
+ beq _022539AE
+ ldrb r2, [r4, r0]
+ mov r1, #1
+ tst r2, r1
+ beq _02253996
+ ldr r2, _02253A48 ; =MOD11_02250F94
+ add r0, r0, #1
+ str r2, [r4]
+ mov r2, #0
+ str r2, [r4, #4]
+ str r2, [r4, #8]
+ str r2, [r4, #0xc]
+ str r2, [r4, #0x10]
+ str r2, [r4, #0x14]
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253996:
+ ldr r1, _02253A0C ; =MOD11_02250A70
+ mov r2, #0
+ str r1, [r4]
+ str r2, [r4, #4]
+ str r2, [r4, #8]
+ str r2, [r4, #0xc]
+ ldr r1, _02253A20 ; =MOD11_02252544
+ str r2, [r4, #0x10]
+ str r1, [r4, #0x14]
+ add r0, r0, #1
+ strb r2, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022539AE:
+ ldrb r2, [r4, r0]
+ mov r1, #1
+ tst r2, r1
+ beq _022539D4
+ ldr r2, _022539F4 ; =MOD11_02250F44
+ add r0, r0, #1
+ str r2, [r4]
+ ldr r2, _022539F8 ; =MOD11_022511C4
+ str r2, [r4, #4]
+ ldr r2, _022539FC ; =MOD11_02251420
+ str r2, [r4, #8]
+ ldr r2, _02253A00 ; =MOD11_02252018
+ str r2, [r4, #0xc]
+ ldr r2, _02253A04 ; =MOD11_02252470
+ str r2, [r4, #0x10]
+ ldr r2, _02253A08 ; =MOD11_02252714
+ str r2, [r4, #0x14]
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022539D4:
+ ldr r1, _02253A0C ; =MOD11_02250A70
+ add r0, r0, #1
+ str r1, [r4]
+ ldr r1, _02253A10 ; =MOD11_0225103C
+ str r1, [r4, #4]
+ ldr r1, _02253A14 ; =MOD11_022512B4
+ str r1, [r4, #8]
+ ldr r1, _02253A18 ; =MOD11_02251484
+ str r1, [r4, #0xc]
+ ldr r1, _02253A1C ; =MOD11_022520A8
+ str r1, [r4, #0x10]
+ ldr r1, _02253A20 ; =MOD11_02252544
+ str r1, [r4, #0x14]
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022539F4: .word MOD11_02250F44
+_022539F8: .word MOD11_022511C4
+_022539FC: .word MOD11_02251420
+_02253A00: .word MOD11_02252018
+_02253A04: .word MOD11_02252470
+_02253A08: .word MOD11_02252714
+_02253A0C: .word MOD11_02250A70
+_02253A10: .word MOD11_0225103C
+_02253A14: .word MOD11_022512B4
+_02253A18: .word MOD11_02251484
+_02253A1C: .word MOD11_022520A8
+_02253A20: .word MOD11_02252544
+_02253A24: .word 0x00000195
+_02253A28: .word 0x00000196
+_02253A2C: .word MOD11_02250F74
+_02253A30: .word MOD11_02251294
+_02253A34: .word MOD11_02251464
+_02253A38: .word MOD11_02252070
+_02253A3C: .word MOD11_02252524
+_02253A40: .word MOD11_02252734
+_02253A44: .word MOD11_02251014
+_02253A48: .word MOD11_02250F94
+
+ thumb_func_start MOD11_02253A4C
+MOD11_02253A4C: ; 0x02253A4C
+ ldr r1, _02253A54 ; =0x00000195
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02253A54: .word 0x00000195
+
+ thumb_func_start MOD11_02253A58
+MOD11_02253A58: ; 0x02253A58
+ ldr r1, _02253A60 ; =0x00000196
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02253A60: .word 0x00000196
+
+ thumb_func_start MOD11_02253A64
+MOD11_02253A64: ; 0x02253A64
+ ldr r1, [r0, #0x20]
+ cmp r1, #0
+ bne _02253A6C
+ ldr r1, [r0, #0x1c]
+_02253A6C:
+ add r0, r1, #0
+ bx lr
+
+ thumb_func_start MOD11_02253A70
+MOD11_02253A70: ; 0x02253A70
+ add r0, #0x28
+ bx lr
+
+ thumb_func_start MOD11_02253A74
+MOD11_02253A74: ; 0x02253A74
+ add r0, #0x80
+ bx lr
+
+ thumb_func_start MOD11_02253A78
+MOD11_02253A78: ; 0x02253A78
+ ldr r3, _02253A84 ; =0x020CE34C
+ add r0, #0x80
+ mov r1, #0
+ mov r2, #8
+ bx r3
+ nop
+_02253A84: .word 0x020CE34C
+
+ thumb_func_start MOD11_02253A88
+MOD11_02253A88: ; 0x02253A88
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ ldr r4, [sp, #0x50]
+ add r7, r0, #0
+ str r1, [sp, #0x14]
+ add r5, r2, #0
+ str r3, [sp, #0x18]
+ bl MOD11_02230130
+ add r1, r4, #0
+ bl MOD11_022312DC
+ str r0, [sp, #0x20]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02230260
+ add r6, r0, #0
+ mov r0, #1
+ and r0, r6
+ str r0, [sp, #0x1c]
+ beq _02253AB8
+ mov r1, #2
+ b _02253ABA
+_02253AB8:
+ mov r1, #0
+_02253ABA:
+ ldr r0, [r5, #0xc]
+ ldr r3, [sp, #0x20]
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldrh r0, [r5, #6]
+ mov r2, #5
+ str r0, [sp, #0xc]
+ ldrh r0, [r5]
+ ldrh r1, [r5, #2]
+ bl FUN_02012560
+ add r0, r7, #0
+ bl MOD11_02230130
+ ldrh r2, [r5]
+ add r1, r4, #0
+ bl MOD11_022312F0
+ add r0, r7, #0
+ bl MOD11_02230130
+ ldrh r2, [r5, #4]
+ add r1, r4, #0
+ bl MOD11_02231308
+ add r0, r7, #0
+ bl MOD11_02230130
+ ldr r2, [sp, #0x40]
+ add r1, r4, #0
+ bl MOD11_02231320
+ ldr r0, [sp, #0x3c]
+ ldr r3, [sp, #0x40]
+ str r0, [sp]
+ str r4, [sp, #4]
+ str r4, [sp, #8]
+ ldr r0, [sp, #0x54]
+ ldr r4, [sp, #0x38]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x58]
+ ldr r2, [sp, #0x18]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ add r3, r4, r3
+ bl FUN_020073E8
+ add r4, r0, #0
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _02253B6E
+ cmp r6, #1
+ ble _02253B2C
+ asr r6, r6, #1
+_02253B2C:
+ add r0, r4, #0
+ mov r1, #0x2a
+ add r2, r6, #0
+ bl FUN_02007558
+ ldr r2, [sp, #0x4c]
+ add r0, r4, #0
+ mov r1, #0x2e
+ bl FUN_02007558
+ ldr r2, [sp, #0x38]
+ add r0, r4, #0
+ mov r1, #0x14
+ add r2, #0x24
+ bl FUN_02007558
+ ldr r2, [sp, #0x48]
+ add r0, r4, #0
+ mov r1, #0x15
+ bl FUN_02007558
+ ldr r3, [sp, #0x40]
+ mov r2, #0x24
+ add r0, r4, #0
+ mov r1, #0x16
+ sub r2, r2, r3
+ bl FUN_02007558
+ ldr r2, [sp, #0x44]
+ add r0, r4, #0
+ mov r1, #0x29
+ bl FUN_02007558
+_02253B6E:
+ add r0, r4, #0
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02253B74
+MOD11_02253B74: ; 0x02253B74
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, _02253C30 ; =0x00000195
+ add r6, r2, #0
+ ldrb r2, [r5, r1]
+ mov r1, #1
+ add r7, r0, #0
+ add r4, r3, #0
+ tst r1, r2
+ beq _02253BCE
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ beq _02253BAE
+ ldr r0, _02253C34 ; =0x000003DE
+ strh r0, [r4, #2]
+ mov r0, #0x1b
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ str r1, [r4, #4]
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253BAE:
+ ldr r0, _02253C38 ; =0x000003DD
+ strh r0, [r4, #2]
+ mov r0, #0x32
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ str r1, [r4, #4]
+ ldrb r1, [r5, r0]
+ str r1, [r4, #8]
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253BCE:
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02253C18
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _02253C18
+ ldrh r0, [r6, #2]
+ cmp r0, #0
+ bne _02253BF2
+ mov r0, #0xf6
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ b _02253C1C
+_02253BF2:
+ cmp r0, #0x19
+ bhs _02253BFC
+ ldr r0, _02253C3C ; =0x000003D9
+ strh r0, [r4, #2]
+ b _02253C1C
+_02253BFC:
+ cmp r0, #0x32
+ bhs _02253C08
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ b _02253C1C
+_02253C08:
+ cmp r0, #0x4b
+ bhs _02253C12
+ ldr r0, _02253C40 ; =0x000003DA
+ strh r0, [r4, #2]
+ b _02253C1C
+_02253C12:
+ ldr r0, _02253C44 ; =0x000003DB
+ strh r0, [r4, #2]
+ b _02253C1C
+_02253C18:
+ ldr r0, _02253C3C ; =0x000003D9
+ strh r0, [r4, #2]
+_02253C1C:
+ mov r0, #2
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02253C30: .word 0x00000195
+_02253C34: .word 0x000003DE
+_02253C38: .word 0x000003DD
+_02253C3C: .word 0x000003D9
+_02253C40: .word 0x000003DA
+_02253C44: .word 0x000003DB
+
+ thumb_func_start MOD11_02253C48
+MOD11_02253C48: ; 0x02253C48
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, _02253D08 ; =0x00000195
+ add r6, r2, #0
+ ldrb r2, [r5, r1]
+ mov r1, #1
+ add r7, r0, #0
+ add r4, r3, #0
+ tst r1, r2
+ beq _02253CA4
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _02253C88
+ mov r0, #0xf3
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ mov r0, #0x32
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ str r1, [r4, #4]
+ ldrb r1, [r5, r0]
+ str r1, [r4, #8]
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253C88:
+ ldr r0, _02253D0C ; =0x000003CE
+ strh r0, [r4, #2]
+ mov r0, #0x1b
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ str r1, [r4, #4]
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253CA4:
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02253CF0
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _02253CF0
+ ldrh r1, [r6, #2]
+ cmp r1, #0x64
+ bhs _02253CC6
+ ldr r0, _02253D10 ; =0x000003D6
+ strh r0, [r4, #2]
+ b _02253CF4
+_02253CC6:
+ ldr r0, _02253D14 ; =0x00000145
+ cmp r1, r0
+ bhs _02253CD2
+ ldr r0, _02253D18 ; =0x000003D7
+ strh r0, [r4, #2]
+ b _02253CF4
+_02253CD2:
+ add r0, #0xe1
+ cmp r1, r0
+ bhs _02253CDE
+ ldr r0, _02253D1C ; =0x000003D5
+ strh r0, [r4, #2]
+ b _02253CF4
+_02253CDE:
+ ldr r0, _02253D20 ; =0x00000307
+ cmp r1, r0
+ bhs _02253CEA
+ add r0, #0xcd
+ strh r0, [r4, #2]
+ b _02253CF4
+_02253CEA:
+ add r0, #0xcc
+ strh r0, [r4, #2]
+ b _02253CF4
+_02253CF0:
+ ldr r0, _02253D24 ; =0x000003D3
+ strh r0, [r4, #2]
+_02253CF4:
+ mov r0, #2
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02253D08: .word 0x00000195
+_02253D0C: .word 0x000003CE
+_02253D10: .word 0x000003D6
+_02253D14: .word 0x00000145
+_02253D18: .word 0x000003D7
+_02253D1C: .word 0x000003D5
+_02253D20: .word 0x00000307
+_02253D24: .word 0x000003D3
+
+ thumb_func_start MOD11_02253D28
+MOD11_02253D28: ; 0x02253D28
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r2, #0
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ mov r0, #2
+ tst r0, r4
+ beq _02253D4E
+ add r0, r7, #0
+ mov r1, #3
+ bl MOD11_0223022C
+ add r6, r0, #0
+ add r0, r7, #0
+ mov r1, #5
+ bl MOD11_0223022C
+ b _02253D58
+_02253D4E:
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223022C
+ add r6, r0, #0
+_02253D58:
+ mov r1, #4
+ tst r1, r4
+ beq _02253D98
+ mov r1, #0x80
+ tst r1, r4
+ beq _02253D78
+ mov r1, #0x3e
+ lsl r1, r1, #4
+ strh r1, [r5, #2]
+ mov r1, #0x3b
+ strb r1, [r5, #1]
+ str r6, [r5, #4]
+ str r6, [r5, #8]
+ str r0, [r5, #0xc]
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253D78:
+ mov r1, #8
+ add r2, r4, #0
+ tst r2, r1
+ beq _02253D8E
+ ldr r1, _02253DC8 ; =0x000003CB
+ strh r1, [r5, #2]
+ mov r1, #0x1a
+ strb r1, [r5, #1]
+ str r6, [r5, #4]
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253D8E:
+ ldr r0, _02253DCC ; =0x000003CA
+ strh r0, [r5, #2]
+ strb r1, [r5, #1]
+ str r6, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253D98:
+ mov r1, #0x10
+ tst r1, r4
+ bne _02253DA4
+ mov r1, #8
+ tst r1, r4
+ beq _02253DB8
+_02253DA4:
+ mov r1, #0x3e
+ lsl r1, r1, #4
+ strh r1, [r5, #2]
+ mov r1, #0x3b
+ strb r1, [r5, #1]
+ str r6, [r5, #4]
+ str r6, [r5, #8]
+ str r0, [r5, #0xc]
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253DB8:
+ ldr r0, _02253DD0 ; =0x000003C9
+ strh r0, [r5, #2]
+ mov r0, #0x1e
+ strb r0, [r5, #1]
+ str r6, [r5, #4]
+ str r6, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02253DC8: .word 0x000003CB
+_02253DCC: .word 0x000003CA
+_02253DD0: .word 0x000003C9
+
+ thumb_func_start MOD11_02253DD4
+MOD11_02253DD4: ; 0x02253DD4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r1, [sp, #4]
+ str r0, [sp]
+ add r6, r2, #0
+ add r4, r3, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #0x14]
+ ldr r2, _022540E4 ; =0x00000195
+ ldr r0, [sp, #4]
+ ldrb r1, [r0, r2]
+ mov r0, #1
+ tst r0, r1
+ bne _02253DF4
+ b _02253F3C
+_02253DF4:
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ and r0, r1
+ str r0, [sp, #0x10]
+ beq _02253E10
+ ldr r0, [sp, #4]
+ sub r1, r2, #1
+ ldrb r5, [r0, r1]
+ ldr r0, [sp]
+ add r1, r5, #0
+ bl MOD11_022302BC
+ add r7, r0, #0
+ b _02253E18
+_02253E10:
+ ldr r0, [sp, #4]
+ sub r1, r2, #1
+ ldrb r5, [r0, r1]
+ add r7, r5, #0
+_02253E18:
+ ldr r0, [sp, #0x14]
+ mov r1, #4
+ tst r0, r1
+ beq _02253EBE
+ ldr r0, [sp, #0x14]
+ mov r1, #0x80
+ tst r0, r1
+ beq _02253E50
+ ldr r0, _022540E8 ; =0x000003DF
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x3c
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ str r5, [r4, #8]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #0xc]
+ str r7, [r4, #0x10]
+ str r7, [r4, #0x14]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253E50:
+ ldr r0, [sp, #0x14]
+ mov r1, #8
+ tst r0, r1
+ beq _02253E7E
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ strh r0, [r4, #2]
+ mov r0, #0x38
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ add sp, #0x18
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #8]
+ str r7, [r4, #0xc]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253E7E:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _02253EA6
+ ldr r0, _022540EC ; =0x000003CF
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x31
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #8]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253EA6:
+ ldr r0, _022540F0 ; =0x000003CE
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x1b
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253EBE:
+ ldr r0, [sp, #0x14]
+ mov r1, #0x10
+ tst r0, r1
+ bne _02253ECE
+ ldr r0, [sp, #0x14]
+ mov r1, #8
+ tst r0, r1
+ beq _02253EF6
+_02253ECE:
+ ldr r0, _022540E8 ; =0x000003DF
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x3c
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ str r5, [r4, #8]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #0xc]
+ str r7, [r4, #0x10]
+ str r7, [r4, #0x14]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253EF6:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _02253F20
+ ldr r0, _022540F4 ; =0x000003CD
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x39
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ str r5, [r4, #8]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #0xc]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253F20:
+ mov r0, #0xf3
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ mov r0, #0x32
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ str r5, [r4, #8]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ add sp, #0x18
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253F3C:
+ ldr r0, [sp, #0x14]
+ mov r1, #4
+ and r0, r1
+ str r0, [sp, #0xc]
+ beq _02253FCC
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ ldr r0, [sp, #0x14]
+ mov r1, #8
+ and r0, r1
+ str r0, [sp, #8]
+ beq _02253FA2
+ add r0, r2, #0
+ bl FUN_020313CC
+ cmp r0, #3
+ bhi _02254012
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02253F6E: ; jump table
+ .short _02253F76 - _02253F6E - 2 ; case 0
+ .short _02253F8C - _02253F6E - 2 ; case 1
+ .short _02253F8C - _02253F6E - 2 ; case 2
+ .short _02253F76 - _02253F6E - 2 ; case 3
+_02253F76:
+ ldr r0, [sp]
+ mov r1, #4
+ bl MOD11_0223022C
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r1, #2
+ bl MOD11_0223022C
+ add r7, r0, #0
+ b _02254012
+_02253F8C:
+ ldr r0, [sp]
+ mov r1, #2
+ bl MOD11_0223022C
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r1, #4
+ bl MOD11_0223022C
+ add r7, r0, #0
+ b _02254012
+_02253FA2:
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ tst r0, r1
+ beq _02253FBE
+ ldr r0, [sp]
+ bl MOD11_0223022C
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r1, #4
+ bl MOD11_0223022C
+ add r7, r0, #0
+ b _02254012
+_02253FBE:
+ ldr r0, [sp]
+ mov r1, #0
+ bl MOD11_0223022C
+ add r5, r0, #0
+ add r7, r5, #0
+ b _02254012
+_02253FCC:
+ ldr r0, [sp, #0x14]
+ mov r1, #8
+ and r0, r1
+ str r0, [sp, #8]
+ beq _02253FEE
+ ldr r1, [sp, #4]
+ sub r2, r2, #1
+ ldrb r1, [r1, r2]
+ ldr r0, [sp]
+ bl MOD11_022302BC
+ add r5, r0, #0
+ mov r1, #0x65
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldrb r7, [r0, r1]
+ b _02254012
+_02253FEE:
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ tst r0, r1
+ beq _0225400A
+ ldr r0, [sp]
+ bl MOD11_0223022C
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r1, #4
+ bl MOD11_0223022C
+ add r7, r0, #0
+ b _02254012
+_0225400A:
+ ldr r0, [sp, #4]
+ sub r1, r2, #1
+ ldrb r5, [r0, r1]
+ add r7, r5, #0
+_02254012:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ beq _0225407C
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _02254040
+ ldr r0, _022540F8 ; =0x000003D1
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x31
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #8]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02254040:
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ tst r0, r1
+ beq _02254068
+ ldr r0, _022540FC ; =0x000003D2
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #9
+ strb r0, [r4, #1]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #4]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02254068:
+ ldr r0, _02254100 ; =0x000003D3
+ add sp, #0x18
+ strh r0, [r4, #2]
+ strb r1, [r4, #1]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225407C:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _022540A6
+ ldr r0, _02254104 ; =0x000003E1
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x39
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ str r5, [r4, #8]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #0xc]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_022540A6:
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ tst r0, r1
+ beq _022540CE
+ ldr r0, _022540FC ; =0x000003D2
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #9
+ strb r0, [r4, #1]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #4]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_022540CE:
+ ldr r0, _02254100 ; =0x000003D3
+ strh r0, [r4, #2]
+ strb r1, [r4, #1]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #4]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022540E4: .word 0x00000195
+_022540E8: .word 0x000003DF
+_022540EC: .word 0x000003CF
+_022540F0: .word 0x000003CE
+_022540F4: .word 0x000003CD
+_022540F8: .word 0x000003D1
+_022540FC: .word 0x000003D2
+_02254100: .word 0x000003D3
+_02254104: .word 0x000003E1
+
+ thumb_func_start MOD11_02254108
+MOD11_02254108: ; 0x02254108
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r5, r2, #0
+ bl MOD11_0222FF74
+ add r6, r0, #0
+ ldr r0, [sp]
+ bl MOD11_0223145C
+ add r7, r0, #0
+ mov r0, #2
+ tst r0, r6
+ beq _02254136
+ ldr r0, [sp]
+ mov r1, #3
+ bl MOD11_0223022C
+ add r4, r0, #0
+ ldr r0, [sp]
+ mov r1, #5
+ bl MOD11_0223022C
+ b _02254140
+_02254136:
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_0223022C
+ add r4, r0, #0
+_02254140:
+ cmp r7, #1
+ beq _0225414E
+ cmp r7, #2
+ beq _0225416E
+ cmp r7, #3
+ beq _02254190
+ pop {r3, r4, r5, r6, r7, pc}
+_0225414E:
+ mov r1, #8
+ add r2, r6, #0
+ tst r2, r1
+ beq _02254164
+ ldr r1, _022541B0 ; =0x00000312
+ strh r1, [r5, #2]
+ mov r1, #0x1a
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02254164:
+ ldr r0, _022541B4 ; =0x00000311
+ strh r0, [r5, #2]
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225416E:
+ mov r1, #8
+ add r2, r6, #0
+ tst r2, r1
+ beq _02254186
+ mov r1, #0xc5
+ lsl r1, r1, #2
+ strh r1, [r5, #2]
+ mov r1, #0x1a
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02254186:
+ ldr r0, _022541B8 ; =0x00000313
+ strh r0, [r5, #2]
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02254190:
+ mov r1, #8
+ add r2, r6, #0
+ tst r2, r1
+ beq _022541A6
+ ldr r1, _022541BC ; =0x00000316
+ strh r1, [r5, #2]
+ mov r1, #0x1a
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_022541A6:
+ ldr r0, _022541C0 ; =0x00000315
+ strh r0, [r5, #2]
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022541B0: .word 0x00000312
+_022541B4: .word 0x00000311
+_022541B8: .word 0x00000313
+_022541BC: .word 0x00000316
+_022541C0: .word 0x00000315
+
+ thumb_func_start MOD11_022541C4
+MOD11_022541C4: ; 0x022541C4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r6, #0
+ add r5, r0, #0
+ str r2, [sp]
+ add r7, r3, #0
+ str r6, [sp, #4]
+ add r4, r6, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _0225420C
+_022541DC:
+ add r0, r4, #0
+ bl FUN_0206A92C
+ ldr r1, [sp]
+ ldrb r1, [r1, #1]
+ tst r0, r1
+ beq _02254200
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _022541FE
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ b _02254200
+_022541FE:
+ add r6, r6, #1
+_02254200:
+ add r0, r5, #0
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _022541DC
+_0225420C:
+ cmp r6, #0
+ beq _0225422A
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _0225422A
+ ldr r0, _022542AC ; =0x0000030D
+ mov r1, #0xc3
+ strh r0, [r7, #2]
+ mov r0, #0
+ strb r0, [r7, #1]
+ add r0, r5, #0
+ bl MOD11_02231468
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_0225422A:
+ cmp r6, #0
+ beq _02254242
+ ldr r0, _022542AC ; =0x0000030D
+ mov r1, #0xc2
+ strh r0, [r7, #2]
+ mov r0, #0
+ strb r0, [r7, #1]
+ add r0, r5, #0
+ bl MOD11_02231468
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02254242:
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ beq _0225426E
+ mov r0, #0xc6
+ lsl r0, r0, #2
+ strh r0, [r7, #2]
+ mov r0, #0x1a
+ strb r0, [r7, #1]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_0223022C
+ str r0, [r7, #4]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD11_0223022C
+ str r0, [r7, #8]
+ b _0225429E
+_0225426E:
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ ldr r0, _022542B0 ; =0x00000317
+ beq _0225428E
+ strh r0, [r7, #2]
+ mov r0, #8
+ strb r0, [r7, #1]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_0223022C
+ str r0, [r7, #4]
+ b _0225429E
+_0225428E:
+ strh r0, [r7, #2]
+ mov r0, #8
+ strb r0, [r7, #1]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223022C
+ str r0, [r7, #4]
+_0225429E:
+ add r0, r5, #0
+ mov r1, #0xc1
+ bl MOD11_02231468
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022542AC: .word 0x0000030D
+_022542B0: .word 0x00000317
+
+ thumb_func_start MOD11_022542B4
+MOD11_022542B4: ; 0x022542B4
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r1, #0xef
+ add r4, r2, #0
+ lsl r1, r1, #2
+ strh r1, [r4, #2]
+ mov r1, #8
+ add r5, r0, #0
+ strb r1, [r4, #1]
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ beq _022542F4
+ bl FUN_02031190
+ bl FUN_020313CC
+ cmp r0, #0
+ beq _022542E8
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD11_0223022C
+ str r0, [r4, #4]
+ b _022542FC
+_022542E8:
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0223022C
+ str r0, [r4, #4]
+ b _022542FC
+_022542F4:
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ str r0, [r4, #4]
+_022542FC:
+ add r0, r5, #0
+ mov r1, #0xc2
+ bl MOD11_02231468
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02254308
+MOD11_02254308: ; 0x02254308
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ str r0, [sp, #0x18]
+ str r1, [sp, #0x1c]
+ add r5, r2, #0
+ add r4, r3, #0
+ bl MOD11_02230078
+ add r7, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD11_02230080
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD11_022300CC
+ str r0, [sp, #0x20]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _022543EC ; =0x00004E2F
+ add r3, r5, #0
+ add r0, r4, r0
+ str r0, [sp, #8]
+ add r0, r7, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ add r3, #0xc3
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x2f
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _022543F0 ; =0x00004E2A
+ mov r1, #2
+ add r0, r4, r0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ add r2, r7, #0
+ add r3, r6, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _022543F4 ; =0x00004E27
+ add r3, r5, #0
+ add r0, r4, r0
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ add r3, #0xcb
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _022543F4 ; =0x00004E27
+ add r5, #0xd3
+ add r0, r4, r0
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ add r3, r5, #0
+ bl FUN_0200C13C
+ ldr r5, _022543F8 ; =0x0225E89C
+ add r3, sp, #0x24
+ mov r2, #6
+_022543A0:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022543A0
+ ldr r0, [r5]
+ ldr r1, _022543EC ; =0x00004E2F
+ str r0, [r3]
+ add r0, r4, r1
+ str r0, [sp, #0x38]
+ sub r0, r1, #5
+ add r0, r4, r0
+ sub r1, #8
+ str r0, [sp, #0x3c]
+ add r0, r4, r1
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x44]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, sp, #0x24
+ bl FUN_0200C154
+ ldr r1, [sp, #0x1c]
+ mov r2, #6
+ add r3, r1, #0
+ mul r3, r2
+ ldr r1, _022543FC ; =0x0222D550
+ ldr r2, _02254400 ; =0x0222D552
+ ldrsh r1, [r1, r3]
+ ldrsh r2, [r2, r3]
+ add r4, r0, #0
+ bl FUN_0200C714
+ add r0, r4, #0
+ bl FUN_0200C5A8
+ add r0, r4, #0
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022543EC: .word 0x00004E2F
+_022543F0: .word 0x00004E2A
+_022543F4: .word 0x00004E27
+_022543F8: .word 0x0225E89C
+_022543FC: .word 0x0222D550
+_02254400: .word 0x0222D552
+
+ thumb_func_start MOD11_02254404
+MOD11_02254404: ; 0x02254404
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xac
+ str r0, [sp]
+ ldr r0, [r3, #0x4c]
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ str r3, [sp, #0xc]
+ cmp r0, #0
+ bne _02254422
+ mov r0, #8
+ str r0, [sp, #0x84]
+ add r0, r3, #0
+ ldrh r0, [r0, #2]
+ str r0, [sp, #0x18]
+ b _0225442C
+_02254422:
+ mov r0, #0x3f
+ str r0, [sp, #0x84]
+ add r0, r3, #0
+ ldr r0, [r0, #0x50]
+ str r0, [sp, #0x18]
+_0225442C:
+ ldr r0, [sp]
+ bl MOD11_0222FF68
+ str r0, [sp, #0x20]
+ ldr r0, [sp]
+ bl MOD11_022300CC
+ str r0, [sp, #0x24]
+ ldr r0, [sp]
+ bl MOD11_02230078
+ add r5, sp, #0x1c
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0xc]
+ mov r4, #0
+ str r0, [sp, #0x14]
+ str r5, [sp, #0x10]
+ add r6, r5, #0
+ add r7, r0, #0
+_02254452:
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_022312D0
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #0x14]
+ ldrh r1, [r0, #0x18]
+ ldr r0, [sp, #0x10]
+ strh r1, [r0, #0x34]
+ ldr r0, [sp, #0xc]
+ add r0, r0, r4
+ add r0, #0x20
+ ldrb r1, [r0]
+ add r0, r6, #0
+ add r0, #0x3c
+ strb r1, [r0]
+ ldr r0, [sp, #0xc]
+ add r0, r0, r4
+ add r0, #0x24
+ ldrb r1, [r0]
+ add r0, r6, #0
+ add r0, #0x40
+ strb r1, [r0]
+ ldr r0, [sp, #0xc]
+ add r0, r0, r4
+ add r0, #0x28
+ ldrb r1, [r0]
+ add r0, r6, #0
+ add r0, #0x44
+ strb r1, [r0]
+ ldr r0, [r7, #0x2c]
+ add r4, r4, #1
+ str r0, [r5, #0x48]
+ ldr r0, [r7, #0x3c]
+ add r6, r6, #1
+ str r0, [r5, #0x58]
+ ldr r0, [sp, #0x14]
+ add r5, r5, #4
+ add r0, r0, #2
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r7, r7, #4
+ add r0, r0, #2
+ str r0, [sp, #0x10]
+ cmp r4, #4
+ blt _02254452
+ ldr r0, [sp]
+ add r1, sp, #0x38
+ bl MOD11_02231504
+ ldr r0, [sp]
+ add r1, sp, #0x3c
+ bl MOD11_02231534
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ mov r2, #0x65
+ str r0, [sp, #0x4c]
+ ldr r1, [sp, #4]
+ lsl r2, r2, #2
+ ldrb r1, [r1, r2]
+ ldr r0, [sp]
+ bl MOD11_02230E88
+ str r0, [sp, #0xa0]
+ ldr r0, [sp]
+ bl MOD11_02231228
+ str r0, [sp, #0xa4]
+ ldr r0, [sp]
+ bl MOD11_02231230
+ str r0, [sp, #0xa8]
+ mov r0, #7
+ str r0, [sp, #0x88]
+ ldr r0, [sp]
+ bl MOD11_022302A8
+ add r0, r0, #3
+ str r0, [sp, #0x8c]
+ ldr r0, [sp]
+ bl MOD11_02230C68
+ add r4, r0, #0
+ ldr r0, [sp]
+ bl MOD11_022302A8
+ lsl r1, r0, #1
+ add r0, r0, r1
+ add r0, #0x9e
+ add r0, r4, r0
+ str r0, [sp, #0x90]
+ mov r0, #2
+ str r0, [sp, #0x94]
+ mov r0, #0
+ ldr r2, [sp, #0x18]
+ str r0, [sp, #0x98]
+ mov r0, #8
+ str r0, [sp, #0x9c]
+ lsl r2, r2, #0x10
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ lsr r2, r2, #0x10
+ add r3, sp, #0x1c
+ bl FUN_02212048
+ add sp, #0xac
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225452C
+MOD11_0225452C: ; 0x0225452C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r2, #0
+ add r7, r1, #0
+ str r3, [r6]
+ str r0, [sp]
+ str r3, [r6, #4]
+ mov r4, #0
+ add r5, r6, #0
+ str r7, [sp, #0xc]
+ str r6, [sp, #8]
+ str r7, [sp, #4]
+_02254544:
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_022312D0
+ str r0, [r5, #8]
+ ldr r0, [sp, #0xc]
+ ldrh r1, [r0, #0x18]
+ ldr r0, [sp, #8]
+ strh r1, [r0, #0x28]
+ add r0, r7, r4
+ add r0, #0x20
+ ldrb r1, [r0]
+ add r0, r6, r4
+ add r0, #0x30
+ strb r1, [r0]
+ add r0, r7, r4
+ add r0, #0x24
+ ldrb r1, [r0]
+ add r0, r6, r4
+ add r0, #0x34
+ strb r1, [r0]
+ add r0, r7, r4
+ add r0, #0x28
+ ldrb r1, [r0]
+ add r0, r6, r4
+ add r0, #0x38
+ strb r1, [r0]
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ ldr r0, [r0, #0x2c]
+ str r0, [r5, #0x3c]
+ ldr r0, [sp, #0xc]
+ add r5, r5, #4
+ add r0, r0, #2
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ add r0, r0, #2
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r0, r0, #4
+ str r0, [sp, #4]
+ cmp r4, #4
+ blt _02254544
+ add r1, r6, #0
+ ldr r0, [sp]
+ add r1, #0x4c
+ bl MOD11_02231504
+ add r6, #0x18
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_02231534
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022545B4
+MOD11_022545B4: ; 0x022545B4
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ cmp r2, #0
+ bne _022545F2
+ add r0, sp, #0
+ ldrh r6, [r0, #0x10]
+ mov r1, #9
+ add r0, r6, #0
+ bl FUN_0206AB18
+ mov r1, #0x40
+ tst r0, r1
+ bne _022545D4
+ mov r0, #1
+ b _022545D6
+_022545D4:
+ mov r0, #0
+_022545D6:
+ strb r0, [r4]
+ add r0, r6, #0
+ mov r1, #9
+ bl FUN_0206AB18
+ mov r1, #0x80
+ tst r0, r1
+ beq _022545EC
+ mov r0, #1
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+_022545EC:
+ mov r0, #0
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+_022545F2:
+ sub r3, #0x12
+ cmp r3, #0x15
+ bhi _02254642
+ add r0, r3, r3
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02254604: ; jump table
+ .short _02254630 - _02254604 - 2 ; case 0
+ .short _02254630 - _02254604 - 2 ; case 1
+ .short _02254630 - _02254604 - 2 ; case 2
+ .short _02254630 - _02254604 - 2 ; case 3
+ .short _02254630 - _02254604 - 2 ; case 4
+ .short _02254642 - _02254604 - 2 ; case 5
+ .short _02254642 - _02254604 - 2 ; case 6
+ .short _02254642 - _02254604 - 2 ; case 7
+ .short _02254642 - _02254604 - 2 ; case 8
+ .short _02254642 - _02254604 - 2 ; case 9
+ .short _02254642 - _02254604 - 2 ; case 10
+ .short _02254642 - _02254604 - 2 ; case 11
+ .short _02254642 - _02254604 - 2 ; case 12
+ .short _02254630 - _02254604 - 2 ; case 13
+ .short _02254630 - _02254604 - 2 ; case 14
+ .short _02254642 - _02254604 - 2 ; case 15
+ .short _02254630 - _02254604 - 2 ; case 16
+ .short _02254630 - _02254604 - 2 ; case 17
+ .short _0225463A - _02254604 - 2 ; case 18
+ .short _02254630 - _02254604 - 2 ; case 19
+ .short _0225463A - _02254604 - 2 ; case 20
+ .short _02254630 - _02254604 - 2 ; case 21
+_02254630:
+ mov r0, #1
+ strb r0, [r4]
+ mov r0, #0
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+_0225463A:
+ mov r0, #1
+ strb r0, [r4]
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+_02254642:
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225464C
+MOD11_0225464C: ; 0x0225464C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02254680
+ add r0, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _02254680
+ mov r1, #0xb4
+ add r0, r1, #0
+ add r0, #0xe8
+ strh r1, [r4, r0]
+ ldr r0, _02254684 ; =MOD11_022546B4
+ ldr r2, _02254688 ; =0x000003F2
+ add r1, r4, #0
+ bl FUN_0200CA44
+ mov r1, #0x66
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+_02254680:
+ pop {r4, pc}
+ nop
+_02254684: .word MOD11_022546B4
+_02254688: .word 0x000003F2
+
+ thumb_func_start MOD11_0225468C
+MOD11_0225468C: ; 0x0225468C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _022546B2
+ bl FUN_0200CAB4
+ mov r0, #0x66
+ mov r2, #0
+ lsl r0, r0, #2
+ str r2, [r4, r0]
+ add r0, r0, #4
+ strh r2, [r4, r0]
+ ldr r0, [r4, #0x20]
+ mov r1, #4
+ bl FUN_02007558
+_022546B2:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_022546B4
+MOD11_022546B4: ; 0x022546B4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0x67
+ lsl r1, r1, #2
+ ldrh r0, [r4, r1]
+ add r0, #0x14
+ strh r0, [r4, r1]
+ add r0, r1, #0
+ ldrh r2, [r4, r1]
+ sub r0, #0x34
+ cmp r2, r0
+ blo _022546D4
+ add r0, r1, #0
+ sub r0, #0x34
+ sub r0, r2, r0
+ strh r0, [r4, r1]
+_022546D4:
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldrh r0, [r4, r0]
+ bl FUN_0201B93C
+ mov r2, #6
+ asr r1, r0, #0x1f
+ lsl r2, r2, #0xa
+ mov r3, #0
+ blx _ll_mul
+ add r2, r1, #0
+ mov r1, #4
+ add r5, r0, #0
+ ldr r0, [r4, #0x20]
+ mov r4, #0
+ lsl r3, r1, #9
+ add r3, r5, r3
+ adc r2, r4
+ lsl r2, r2, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ asr r2, r3, #0xb
+ lsr r2, r2, #0x14
+ add r2, r3, r2
+ asr r2, r2, #0xc
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02254710
+MOD11_02254710: ; 0x02254710
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ str r1, [sp]
+ str r2, [sp, #4]
+ add r6, r3, #0
+ bl MOD11_022300DC
+ add r4, r0, #0
+ add r0, r7, #0
+ bl MOD11_02230118
+ add r5, r0, #0
+ add r0, r7, #0
+ bl MOD11_02230124
+ add r7, r0, #0
+ add r0, sp, #0x10
+ ldrh r2, [r5]
+ ldrb r3, [r0, #0x10]
+ add r0, r2, #5
+ add r1, r0, r3
+ mov r0, #1
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bls _0225474A
+ strh r2, [r7]
+ mov r0, #0
+ strh r0, [r5]
+_0225474A:
+ ldr r1, [sp]
+ add r0, sp, #8
+ strb r1, [r0]
+ ldr r1, [sp, #4]
+ strb r1, [r0, #1]
+ add r1, sp, #0x10
+ ldrb r1, [r1, #0x10]
+ strh r1, [r0, #2]
+ add r1, sp, #8
+ mov r0, #0
+_0225475E:
+ ldrb r7, [r1, r0]
+ ldrh r2, [r5]
+ add r0, r0, #1
+ strb r7, [r4, r2]
+ ldrh r2, [r5]
+ add r2, r2, #1
+ strh r2, [r5]
+ cmp r0, #4
+ blo _0225475E
+ mov r0, #0
+ cmp r3, #0
+ ble _02254788
+_02254776:
+ ldrb r2, [r6, r0]
+ ldrh r1, [r5]
+ add r0, r0, #1
+ strb r2, [r4, r1]
+ ldrh r1, [r5]
+ add r1, r1, #1
+ strh r1, [r5]
+ cmp r0, r3
+ blt _02254776
+_02254788:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225478C
+MOD11_0225478C: ; 0x0225478C
+ push {r3, r4, r5, r6, r7, lr}
+ add r3, r1, #0
+ ldrb r6, [r3, #3]
+ ldrb r1, [r3]
+ ldrb r7, [r3, #2]
+ lsl r6, r6, #8
+ add r5, r0, #0
+ mov r2, #0
+ orr r6, r7
+ ldrb r4, [r3, #1]
+ cmp r1, #0
+ bne _022547D2
+ ldr r0, [r5, #0x30]
+ lsl r1, r4, #8
+ add r4, r0, r1
+ mov r0, #0x23
+ lsl r0, r0, #8
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _0225481C
+ cmp r6, #0
+ ble _022547CE
+ mov r4, #0x23
+ lsl r4, r4, #8
+_022547BC:
+ add r0, r3, r2
+ ldr r7, [r5, #0x30]
+ ldrb r0, [r0, #4]
+ add r7, r1, r7
+ add r7, r2, r7
+ add r2, r2, #1
+ strb r0, [r7, r4]
+ cmp r2, r6
+ blt _022547BC
+_022547CE:
+ mov r2, #1
+ b _0225481C
+_022547D2:
+ cmp r1, #1
+ bne _022547FE
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r1, [r0, #0x34]
+ add r1, #0x94
+ ldrb r1, [r1]
+ cmp r1, #0
+ bne _0225481C
+ cmp r6, #0
+ ble _022547FA
+_022547E8:
+ add r1, r3, r2
+ ldrb r4, [r1, #4]
+ ldr r1, [r0, #0x34]
+ add r1, r1, r2
+ add r1, #0x94
+ add r2, r2, #1
+ strb r4, [r1]
+ cmp r2, r6
+ blt _022547E8
+_022547FA:
+ mov r2, #1
+ b _0225481C
+_022547FE:
+ cmp r1, #2
+ bne _0225481C
+ ldrb r7, [r3, #4]
+ ldrb r6, [r3, #5]
+ bl MOD11_02230DD4
+ cmp r0, #0
+ beq _0225481A
+ ldr r0, [r5, #0x30]
+ add r1, r6, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02243340
+_0225481A:
+ mov r2, #1
+_0225481C:
+ add r0, r2, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02254820
+MOD11_02254820: ; 0x02254820
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ bl MOD11_022300DC
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223010C
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD11_02230118
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD11_02230124
+ ldrh r1, [r5]
+ ldrh r2, [r7]
+ cmp r1, r2
+ beq _02254876
+ ldrh r2, [r0]
+ cmp r1, r2
+ bne _02254854
+ mov r1, #0
+ strh r1, [r5]
+ strh r1, [r0]
+_02254854:
+ ldrh r1, [r5]
+ add r0, r6, #0
+ add r1, r4, r1
+ bl MOD11_0225478C
+ cmp r0, #1
+ bne _02254876
+ ldrh r0, [r5]
+ add r1, r0, #2
+ ldrb r2, [r4, r1]
+ add r1, r0, #3
+ ldrb r1, [r4, r1]
+ lsl r1, r1, #8
+ orr r1, r2
+ add r1, r1, #4
+ add r0, r0, r1
+ strh r0, [r5]
+_02254876:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02254878
+MOD11_02254878: ; 0x02254878
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ str r1, [sp, #4]
+ ldr r1, [r5, #0x2c]
+ mov r0, #4
+ add r7, r2, #0
+ add r6, r3, #0
+ tst r0, r1
+ beq _022548C8
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _022548B2
+ mov r4, #0
+ bl FUN_02030F20
+ cmp r0, #0
+ ble _022548B2
+_0225489C:
+ ldrb r3, [r6]
+ ldr r0, [r5, #0x30]
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_02243304
+ add r4, r4, #1
+ bl FUN_02030F20
+ cmp r4, r0
+ blt _0225489C
+_022548B2:
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ ldr r1, [sp, #4]
+ add r2, r7, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r3, r6, #0
+ bl FUN_0206C0C8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_022548C8:
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _022548D8
+ ldrb r3, [r6]
+ ldr r0, [r5, #0x30]
+ mov r1, #0
+ bl MOD11_02243304
+_022548D8:
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ ldr r1, [sp, #4]
+ add r2, r7, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r3, r6, #0
+ bl MOD11_02254710
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022548F0
+MOD11_022548F0: ; 0x022548F0
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r3, #4
+ str r3, [sp]
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02254908
+MOD11_02254908: ; 0x02254908
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ add r7, r1, #0
+ mov r3, #2
+ add r2, sp, #0xc
+ strb r3, [r2]
+ mov r2, #0xc0
+ add r4, r7, #0
+ mul r4, r2
+ add r2, sp, #0xc
+ ldrb r2, [r2, #1]
+ mov r3, #3
+ add r6, r0, #0
+ str r2, [sp, #4]
+ bic r2, r3
+ str r2, [sp, #4]
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, _02254A04 ; =0x00002DBE
+ str r2, [sp, #8]
+ ldrb r2, [r3, r2]
+ lsl r2, r2, #0x1c
+ lsr r3, r2, #0x1c
+ mov r2, #3
+ and r3, r2
+ ldr r2, [sp, #4]
+ orr r3, r2
+ add r2, sp, #0xc
+ strb r3, [r2, #1]
+ ldrb r3, [r2, #1]
+ mov r2, #4
+ bic r3, r2
+ ldr r2, [r6, #0x30]
+ add r5, r2, r4
+ ldr r2, [sp, #8]
+ sub r2, #0x58
+ ldrb r2, [r5, r2]
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1f
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1d
+ orr r3, r2
+ add r2, sp, #0xc
+ strb r3, [r2, #1]
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, [sp, #8]
+ sub r2, #0x7e
+ ldrh r3, [r3, r2]
+ add r2, sp, #0xc
+ strh r3, [r2, #2]
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, [sp, #8]
+ sub r2, #0x16
+ str r2, [sp, #8]
+ ldr r2, [r3, r2]
+ str r2, [sp, #0x10]
+ bl MOD11_02230260
+ add r2, r0, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ mov r3, #1
+ bl MOD11_0224ACAC
+ add r2, sp, #0xc
+ str r0, [sp, #0x14]
+ ldrb r0, [r2, #1]
+ mov r1, #0xf8
+ add r5, sp, #0xc
+ bic r0, r1
+ ldr r1, [r6, #0x30]
+ add r3, r1, r4
+ ldr r1, _02254A08 ; =0x00002D66
+ mov r4, #0
+ ldrb r1, [r3, r1]
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x18
+ orr r0, r1
+ strb r0, [r2, #1]
+_022549AE:
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, r4, #6
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0xc]
+ add r2, r4, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, #0x1f
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x14]
+ add r2, r4, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, #0x27
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x1c]
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _022549AE
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ mov r2, #0x2d
+ add r3, sp, #0x30
+ bl MOD11_02243420
+ mov r0, #0x3c
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ add r2, r7, #0
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254A04: .word 0x00002DBE
+_02254A08: .word 0x00002D66
+
+ thumb_func_start MOD11_02254A0C
+MOD11_02254A0C: ; 0x02254A0C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x7c
+ add r7, r1, #0
+ mov r3, #3
+ add r2, sp, #8
+ strb r3, [r2]
+ mov r2, #0xc0
+ add r4, r7, #0
+ mul r4, r2
+ add r2, sp, #8
+ ldrb r5, [r2, #1]
+ mov r2, #3
+ add r6, r0, #0
+ bic r5, r2
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, _02254B34 ; =0x00002DBE
+ str r2, [sp, #4]
+ ldrb r2, [r3, r2]
+ lsl r2, r2, #0x1c
+ lsr r3, r2, #0x1c
+ mov r2, #3
+ and r2, r3
+ add r3, r5, #0
+ orr r3, r2
+ add r2, sp, #8
+ strb r3, [r2, #1]
+ ldrb r3, [r2, #1]
+ mov r2, #4
+ bic r3, r2
+ ldr r2, [r6, #0x30]
+ add r5, r2, r4
+ ldr r2, [sp, #4]
+ sub r2, #0x58
+ ldrb r2, [r5, r2]
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1f
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1d
+ orr r3, r2
+ add r2, sp, #8
+ strb r3, [r2, #1]
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, [sp, #4]
+ sub r2, #0x7e
+ ldrh r3, [r3, r2]
+ add r2, sp, #8
+ strh r3, [r2, #2]
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, [sp, #4]
+ sub r2, #0x16
+ str r2, [sp, #4]
+ ldr r2, [r3, r2]
+ str r2, [sp, #0xc]
+ bl MOD11_02230260
+ add r2, r0, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ mov r3, #1
+ bl MOD11_0224ACAC
+ str r0, [sp, #0x10]
+ ldr r0, [r6, #0x30]
+ add r2, sp, #8
+ add r1, r0, r7
+ ldr r0, _02254B38 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ mov r1, #0xf8
+ str r0, [sp, #0x14]
+ ldrb r0, [r2, #1]
+ bic r0, r1
+ ldr r1, [r6, #0x30]
+ add r3, r1, r4
+ ldr r1, _02254B3C ; =0x00002D66
+ ldrb r3, [r3, r1]
+ add r1, #0x59
+ lsl r3, r3, #0x1b
+ lsr r3, r3, #0x1b
+ lsl r3, r3, #0x1b
+ lsr r3, r3, #0x18
+ orr r0, r3
+ strb r0, [r2, #1]
+ ldr r0, [r6, #0x30]
+ add r0, r0, r4
+ ldrb r0, [r0, r1]
+ add r1, r7, #0
+ str r0, [sp, #0x18]
+ add r0, r6, #0
+ bl MOD11_022302BC
+ ldr r1, [r6, #0x30]
+ ldr r2, [sp, #0x14]
+ add r1, r1, r0
+ ldr r0, _02254B38 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ add r1, r7, #0
+ str r0, [sp, #0x50]
+ add r0, r6, #0
+ bl MOD11_02230F6C
+ mov r4, #0
+ add r5, sp, #8
+_02254ADE:
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, r4, #6
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x18]
+ add r2, r4, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, #0x1f
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x20]
+ add r2, r4, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, #0x27
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x28]
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _02254ADE
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ mov r2, #0x2d
+ add r3, sp, #0x38
+ bl MOD11_02243420
+ mov r0, #0x74
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ add r2, r7, #0
+ add r3, sp, #8
+ bl MOD11_02254878
+ add sp, #0x7c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254B34: .word 0x00002DBE
+_02254B38: .word 0x0000219C
+_02254B3C: .word 0x00002D66
+
+ thumb_func_start MOD11_02254B40
+MOD11_02254B40: ; 0x02254B40
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x84
+ add r7, r1, #0
+ add r4, r0, #0
+ mov r1, #4
+ add r6, sp, #0x10
+ strb r1, [r6]
+ mov r0, #0xc0
+ add r5, r7, #0
+ mul r5, r0
+ ldr r0, [r4, #0x30]
+ str r2, [sp, #4]
+ add r2, r0, r5
+ ldr r0, _02254D34 ; =0x00002DB0
+ str r3, [sp, #8]
+ ldr r3, [r2, r0]
+ lsl r1, r1, #0x13
+ tst r1, r3
+ ldrb r1, [r6, #1]
+ beq _02254B8A
+ mov r3, #3
+ bic r1, r3
+ add r3, r0, #0
+ add r3, #0x4a
+ ldrh r2, [r2, r3]
+ add r0, #0x34
+ lsl r2, r2, #0x18
+ lsr r3, r2, #0x18
+ mov r2, #3
+ and r2, r3
+ orr r1, r2
+ strb r1, [r6, #1]
+ ldr r1, [r4, #0x30]
+ add r1, r1, r5
+ ldr r0, [r1, r0]
+ str r0, [sp, #0x14]
+ b _02254BAA
+_02254B8A:
+ mov r3, #3
+ bic r1, r3
+ add r3, r0, #0
+ add r3, #0xe
+ ldrb r2, [r2, r3]
+ sub r0, #8
+ lsl r2, r2, #0x1c
+ lsr r3, r2, #0x1c
+ mov r2, #3
+ and r2, r3
+ orr r1, r2
+ strb r1, [r6, #1]
+ ldr r1, [r4, #0x30]
+ add r1, r1, r5
+ ldr r0, [r1, r0]
+ str r0, [sp, #0x14]
+_02254BAA:
+ mov r0, #0xc0
+ add r6, r7, #0
+ add r3, sp, #0x10
+ mul r6, r0
+ ldrb r0, [r3, #1]
+ mov r1, #4
+ bic r0, r1
+ ldr r1, [r4, #0x30]
+ add r2, r1, r6
+ ldr r1, _02254D38 ; =0x00002D66
+ ldrb r2, [r2, r1]
+ sub r1, #0x26
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1f
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1d
+ orr r0, r2
+ strb r0, [r3, #1]
+ ldr r0, [r4, #0x30]
+ add r0, r0, r6
+ ldrh r0, [r0, r1]
+ add r1, r7, #0
+ strh r0, [r3, #2]
+ add r0, r4, #0
+ bl MOD11_02230260
+ add r2, r0, #0
+ ldr r0, [r4, #0x30]
+ add r1, r7, #0
+ mov r3, #0
+ bl MOD11_0224ACAC
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x30]
+ mov r2, #0xf8
+ add r1, r0, r7
+ ldr r0, _02254D3C ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x10
+ ldrb r1, [r0, #1]
+ bic r1, r2
+ ldr r2, [r4, #0x30]
+ add r3, r2, r6
+ ldr r2, _02254D38 ; =0x00002D66
+ ldrb r3, [r3, r2]
+ lsl r3, r3, #0x1b
+ lsr r3, r3, #0x1b
+ lsl r3, r3, #0x1b
+ lsr r3, r3, #0x18
+ orr r1, r3
+ strb r1, [r0, #1]
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _02254C1C
+ str r0, [sp, #0x20]
+ b _02254C26
+_02254C1C:
+ ldr r0, [r4, #0x30]
+ add r2, #0x59
+ add r0, r0, r5
+ ldrb r0, [r0, r2]
+ str r0, [sp, #0x20]
+_02254C26:
+ ldr r0, [sp, #8]
+ str r0, [sp, #0x24]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r5
+ ldr r0, _02254D34 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x18
+ tst r0, r1
+ beq _02254C3E
+ mov r0, #1
+ b _02254C40
+_02254C3E:
+ mov r0, #0
+_02254C40:
+ ldr r2, [sp, #0x1c]
+ str r0, [sp, #0x5c]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_02230F6C
+ mov r6, #0
+ add r5, sp, #0x10
+_02254C50:
+ ldr r0, [r4, #0x30]
+ add r1, r7, #0
+ add r2, r6, #6
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x18]
+ add r2, r6, #0
+ ldr r0, [r4, #0x30]
+ add r1, r7, #0
+ add r2, #0x1f
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x20]
+ add r2, r6, #0
+ ldr r0, [r4, #0x30]
+ add r1, r7, #0
+ add r2, #0x27
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x28]
+ add r6, r6, #1
+ add r5, r5, #2
+ cmp r6, #4
+ blt _02254C50
+ ldr r0, [r4, #0x30]
+ add r1, r7, #0
+ mov r2, #0x2d
+ add r3, sp, #0x40
+ bl MOD11_02243420
+ add r3, sp, #0x10
+ mov r2, #0
+ mov ip, r2
+ str r3, [sp, #0xc]
+ add r5, r3, #0
+_02254C9C:
+ ldr r0, [r4, #0x30]
+ add r1, r0, r2
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r1, [r1, r0]
+ ldr r0, [sp, #0xc]
+ add r0, #0x50
+ strh r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r2
+ ldr r0, _02254D38 ; =0x00002D66
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1a
+ lsr r1, r0, #0x1f
+ add r0, r3, #0
+ add r0, #0x5c
+ strb r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r2
+ ldr r0, _02254D38 ; =0x00002D66
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1b
+ lsr r1, r0, #0x1b
+ add r0, r3, #0
+ add r0, #0x60
+ strb r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r6, r0, r2
+ ldr r0, _02254D34 ; =0x00002DB0
+ ldr r1, [r6, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r1
+ beq _02254CF2
+ ldr r0, _02254D40 ; =0x00002DFA
+ ldrh r1, [r6, r0]
+ add r0, r3, #0
+ add r0, #0x58
+ strb r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r2
+ ldr r0, _02254D44 ; =0x00002DE4
+ b _02254D06
+_02254CF2:
+ ldr r0, _02254D48 ; =0x00002DBE
+ ldrb r0, [r6, r0]
+ lsl r0, r0, #0x1c
+ lsr r1, r0, #0x1c
+ add r0, r3, #0
+ add r0, #0x58
+ strb r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r2
+ ldr r0, _02254D4C ; =0x00002DA8
+_02254D06:
+ ldr r0, [r1, r0]
+ add r2, #0xc0
+ str r0, [r5, #0x64]
+ ldr r0, [sp, #0xc]
+ add r3, r3, #1
+ add r0, r0, #2
+ str r0, [sp, #0xc]
+ mov r0, ip
+ add r0, r0, #1
+ add r5, r5, #4
+ mov ip, r0
+ cmp r0, #4
+ blt _02254C9C
+ mov r0, #0x74
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r7, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x84
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254D34: .word 0x00002DB0
+_02254D38: .word 0x00002D66
+_02254D3C: .word 0x0000219C
+_02254D40: .word 0x00002DFA
+_02254D44: .word 0x00002DE4
+_02254D48: .word 0x00002DBE
+_02254D4C: .word 0x00002DA8
+
+ thumb_func_start MOD11_02254D50
+MOD11_02254D50: ; 0x02254D50
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r4, r1, #0
+ lsl r1, r2, #2
+ str r0, [sp, #4]
+ add r0, r0, r1
+ ldr r1, [r0, #0x34]
+ ldr r0, _02254E8C ; =0x00000195
+ str r2, [sp, #8]
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02254D6E
+ mov r2, #2
+ b _02254D70
+_02254D6E:
+ mov r2, #0
+_02254D70:
+ ldr r0, [sp, #8]
+ mov r1, #0xc0
+ add r5, r0, #0
+ ldr r0, [sp, #4]
+ mul r5, r1
+ ldr r0, [r0, #0x30]
+ ldr r3, _02254E90 ; =0x00002D66
+ add r0, r0, r5
+ ldrb r0, [r0, r3]
+ mov r1, #5
+ lsl r0, r0, #0x1b
+ lsr r7, r0, #0x1b
+ add r0, sp, #0xc
+ strb r1, [r0]
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x30]
+ add r1, r0, r5
+ add r0, r3, #0
+ add r0, #0x4a
+ ldr r6, [r1, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r6
+ beq _02254DC4
+ add r0, r3, #0
+ add r0, #0x7e
+ ldr r0, [r1, r0]
+ lsl r2, r2, #0x18
+ str r0, [sp]
+ add r0, r3, #0
+ sub r0, #0x26
+ add r3, #0x94
+ ldrh r0, [r1, r0]
+ ldrh r1, [r1, r3]
+ lsl r3, r7, #0x18
+ lsr r2, r2, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+ b _02254DE6
+_02254DC4:
+ add r0, r3, #0
+ add r0, #0x42
+ ldr r0, [r1, r0]
+ lsl r2, r2, #0x18
+ str r0, [sp]
+ add r0, r3, #0
+ sub r0, #0x26
+ add r3, #0x58
+ ldrh r0, [r1, r0]
+ ldrb r1, [r1, r3]
+ lsl r3, r7, #0x18
+ lsr r2, r2, #0x18
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+_02254DE6:
+ add r1, sp, #0xc
+ strb r0, [r1, #1]
+ ldr r0, [sp, #4]
+ ldr r1, _02254E94 ; =0x00002DBF
+ ldr r0, [r0, #0x30]
+ add r0, r0, r5
+ ldrb r2, [r0, r1]
+ add r0, sp, #0xc
+ sub r1, #0xf
+ strh r2, [r0, #2]
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x30]
+ add r0, r0, r5
+ ldr r1, [r0, r1]
+ mov r0, #1
+ lsl r0, r0, #0x18
+ tst r0, r1
+ beq _02254E0E
+ mov r0, #1
+ b _02254E10
+_02254E0E:
+ mov r0, #0
+_02254E10:
+ str r0, [sp, #0x10]
+ mov r0, #0
+ mov ip, r0
+ add r7, sp, #0xc
+ ldr r0, _02254E90 ; =0x00002D66
+ add r3, r7, #0
+ add r2, r4, r0
+ add r0, #0x58
+ add r5, r7, #0
+ add r6, r4, r0
+_02254E24:
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r4, r0]
+ strh r0, [r7, #8]
+ ldrb r0, [r2]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ strb r0, [r3, #0x14]
+ ldrb r0, [r2]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1b
+ strb r0, [r3, #0x18]
+ ldr r0, _02254E98 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r1
+ beq _02254E52
+ ldr r0, _02254E9C ; =0x00002DFA
+ ldrh r0, [r4, r0]
+ strb r0, [r3, #0x10]
+ ldr r0, _02254EA0 ; =0x00002DE4
+ b _02254E5C
+_02254E52:
+ ldrb r0, [r6]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ strb r0, [r3, #0x10]
+ ldr r0, _02254EA4 ; =0x00002DA8
+_02254E5C:
+ ldr r0, [r4, r0]
+ add r4, #0xc0
+ str r0, [r5, #0x1c]
+ mov r0, ip
+ add r0, r0, #1
+ add r7, r7, #2
+ add r2, #0xc0
+ add r3, r3, #1
+ add r5, r5, #4
+ add r6, #0xc0
+ mov ip, r0
+ cmp r0, #4
+ blt _02254E24
+ mov r0, #0x2c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #8]
+ mov r1, #1
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254E8C: .word 0x00000195
+_02254E90: .word 0x00002D66
+_02254E94: .word 0x00002DBF
+_02254E98: .word 0x00002DB0
+_02254E9C: .word 0x00002DFA
+_02254EA0: .word 0x00002DE4
+_02254EA4: .word 0x00002DA8
+
+ thumb_func_start MOD11_02254EA8
+MOD11_02254EA8: ; 0x02254EA8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r1, #0
+ add r4, r0, #0
+ lsl r0, r7, #2
+ add r0, r4, r0
+ ldr r1, [r0, #0x34]
+ ldr r0, _02254F58 ; =0x00000195
+ str r2, [sp, #4]
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02254EC6
+ mov r2, #2
+ b _02254EC8
+_02254EC6:
+ mov r2, #0
+_02254EC8:
+ mov r0, #0xc0
+ add r6, r7, #0
+ mul r6, r0
+ ldr r0, [r4, #0x30]
+ ldr r5, _02254F5C ; =0x00002D66
+ add r0, r0, r6
+ ldrb r0, [r0, r5]
+ mov r1, #6
+ lsl r0, r0, #0x1b
+ lsr r3, r0, #0x1b
+ add r0, sp, #8
+ strb r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r6
+ add r0, r5, #0
+ add r0, #0x4a
+ ldr r6, [r1, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r6
+ beq _02254F16
+ add r0, r5, #0
+ add r0, #0x7e
+ ldr r0, [r1, r0]
+ lsl r2, r2, #0x18
+ str r0, [sp]
+ add r0, r5, #0
+ sub r0, #0x26
+ add r5, #0x94
+ ldrh r0, [r1, r0]
+ ldrh r1, [r1, r5]
+ lsl r3, r3, #0x18
+ lsr r2, r2, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+ b _02254F38
+_02254F16:
+ add r0, r5, #0
+ add r0, #0x42
+ ldr r0, [r1, r0]
+ lsl r2, r2, #0x18
+ str r0, [sp]
+ add r0, r5, #0
+ sub r0, #0x26
+ add r5, #0x58
+ ldrh r0, [r1, r0]
+ ldrb r1, [r1, r5]
+ lsl r3, r3, #0x18
+ lsr r2, r2, #0x18
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+_02254F38:
+ add r1, sp, #8
+ strb r0, [r1, #1]
+ ldr r0, [sp, #4]
+ add r1, sp, #8
+ strh r0, [r1, #2]
+ mov r0, #4
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r7, #0
+ add r3, sp, #8
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02254F58: .word 0x00000195
+_02254F5C: .word 0x00002D66
+
+ thumb_func_start MOD11_02254F60
+MOD11_02254F60: ; 0x02254F60
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #7
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02254F7C
+MOD11_02254F7C: ; 0x02254F7C
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #8
+ add r3, sp, #4
+ strb r1, [r3]
+ mov r1, #0x34
+ mul r1, r2
+ add r1, r0, r1
+ add r1, #0xad
+ ldrb r1, [r1]
+ strh r1, [r3, #2]
+ add r1, r0, r2
+ add r1, #0xa8
+ ldrb r1, [r1]
+ strb r1, [r3, #1]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02254FAC
+MOD11_02254FAC: ; 0x02254FAC
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ mov r6, #9
+ add r3, sp, #4
+ strb r6, [r3]
+ add r5, r0, #0
+ strb r2, [r3, #1]
+ add r4, r1, #0
+ bl MOD11_022302BC
+ ldr r1, [r5, #0x30]
+ add r2, r4, #0
+ add r1, r1, r0
+ ldr r0, _02254FE0 ; =0x0000219C
+ add r3, sp, #4
+ ldrb r1, [r1, r0]
+ add r0, sp, #4
+ strh r1, [r0, #2]
+ mov r0, #4
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02254FE0: .word 0x0000219C
+
+ thumb_func_start MOD11_02254FE4
+MOD11_02254FE4: ; 0x02254FE4
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0xa
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255000
+MOD11_02255000: ; 0x02255000
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r3, r1, #0
+ mov r1, #0xb
+ add r4, sp, #4
+ strb r1, [r4]
+ mov r1, #0x34
+ mul r1, r3
+ add r1, r0, r1
+ add r1, #0xad
+ ldrb r1, [r1]
+ strh r1, [r4, #2]
+ add r1, r0, r3
+ add r1, #0xa8
+ ldrb r1, [r1]
+ strb r1, [r4, #1]
+ str r2, [sp, #8]
+ mov r1, #8
+ str r1, [sp]
+ add r2, r3, #0
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD11_02255034
+MOD11_02255034: ; 0x02255034
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r1, #0
+ ldr r1, _02255158 ; =0x0000219C
+ add r4, r2, #0
+ add r7, r5, r1
+ ldrb r2, [r7, r4]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ bl MOD11_02230014
+ add r6, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ add r2, sp, #0x14
+ strb r0, [r2]
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ ldr r1, _0225515C ; =0x00002D74
+ add r0, r5, r6
+ ldrb r3, [r0, r1]
+ strb r3, [r2, #1]
+ add r3, r1, #0
+ add r3, #0x18
+ ldr r3, [r0, r3]
+ add r1, #0x1c
+ strh r3, [r2, #2]
+ ldr r0, [r0, r1]
+ add r1, r4, #0
+ strh r0, [r2, #4]
+ ldrb r0, [r7, r4]
+ strb r0, [r2, #6]
+ add r0, r5, #0
+ bl MOD11_0224524C
+ add r1, sp, #0x14
+ ldrb r2, [r1, #7]
+ mov r3, #0x1f
+ lsl r0, r0, #0x18
+ bic r2, r3
+ lsr r3, r0, #0x18
+ mov r0, #0x1f
+ and r0, r3
+ orr r0, r2
+ strb r0, [r1, #7]
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r7, r5, r0
+ ldrh r0, [r7, r6]
+ cmp r0, #0x1d
+ beq _022550B6
+ cmp r0, #0x20
+ bne _022550D0
+_022550B6:
+ ldr r0, _02255160 ; =0x00002D54
+ add r1, r5, r6
+ ldr r0, [r1, r0]
+ lsr r0, r0, #0x1f
+ bne _022550D0
+ add r0, sp, #0x14
+ ldrb r1, [r0, #7]
+ mov r2, #0x60
+ bic r1, r2
+ mov r2, #0x40
+ orr r1, r2
+ strb r1, [r0, #7]
+ b _022550EA
+_022550D0:
+ add r3, sp, #0x14
+ ldrb r2, [r3, #7]
+ mov r0, #0x60
+ add r1, r5, r6
+ bic r2, r0
+ ldr r0, _02255164 ; =0x00002DBE
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x19
+ orr r0, r2
+ strb r0, [r3, #7]
+_022550EA:
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ bl FUN_02068758
+ mov r1, #0xc0
+ mul r1, r4
+ add r2, r5, r1
+ ldr r1, _02255168 ; =0x00002DA4
+ ldr r1, [r2, r1]
+ sub r0, r1, r0
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x10]
+ add r1, r1, #1
+ bl FUN_02068758
+ add r5, r0, #0
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ bl FUN_02068758
+ sub r0, r5, r0
+ str r0, [sp, #0x20]
+ ldrh r1, [r7, r6]
+ ldr r0, [sp, #4]
+ bl MOD11_02231668
+ add r3, sp, #0x14
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1f
+ ldrb r1, [r3, #7]
+ mov r2, #0x80
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r0, r1
+ strb r0, [r3, #7]
+ ldr r0, [sp, #4]
+ bl MOD11_02230E00
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #8]
+ add r1, sp, #0x14
+ strb r0, [r1, #0x14]
+ mov r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0x14
+ bl MOD11_02254878
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02255158: .word 0x0000219C
+_0225515C: .word 0x00002D74
+_02255160: .word 0x00002D54
+_02255164: .word 0x00002DBE
+_02255168: .word 0x00002DA4
+
+ thumb_func_start MOD11_0225516C
+MOD11_0225516C: ; 0x0225516C
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0xd
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255188
+MOD11_02255188: ; 0x02255188
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x54
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ mov r0, #0
+ add r1, sp, #0x28
+ mov r2, #0x2c
+ add r6, r3, #0
+ blx MIi_CpuClearFast
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF78
+ ldr r1, [sp, #0xc]
+ bl MOD11_02243400
+ mov r5, #0
+ ldr r0, [sp, #4]
+ add r4, r5, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _022551D8
+_022551B8:
+ ldr r0, [sp, #8]
+ add r1, r4, #0
+ bl MOD11_0224AD04
+ cmp r0, #0
+ bne _022551CC
+ add r0, r4, #0
+ bl FUN_0206A92C
+ orr r5, r0
+_022551CC:
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _022551B8
+_022551D8:
+ mov r1, #0xe
+ add r0, sp, #0x28
+ strb r1, [r0]
+ strb r6, [r0, #1]
+ ldr r1, _022554F8 ; =0x00003108
+ ldr r0, [sp, #8]
+ ldrb r0, [r0, r1]
+ add r1, r0, #0
+ orr r1, r5
+ add r0, sp, #0x48
+ strb r1, [r0, #9]
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ str r0, [sp, #0x20]
+ tst r0, r1
+ beq _0225520E
+ ldr r0, [sp, #0x20]
+ mov r1, #8
+ tst r0, r1
+ bne _0225520E
+ ldr r0, [sp, #0xc]
+ mov r1, #1
+ add r4, r0, #0
+ and r4, r1
+ b _02255210
+_0225520E:
+ ldr r4, [sp, #0xc]
+_02255210:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_0222FF88
+ str r0, [sp, #0x24]
+ mov r6, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _022552A6
+ mov r0, #6
+ add r1, r4, #0
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r5, sp, #0x28
+ add r7, r0, r1
+ mov r1, #0xa9
+ ldr r0, [sp, #0x20]
+ lsl r1, r1, #2
+ and r0, r1
+ str r0, [sp, #0x1c]
+_0225523A:
+ ldr r1, _022554FC ; =0x0000312C
+ ldr r0, [sp, #0x24]
+ ldrb r1, [r7, r1]
+ bl FUN_0206B9B0
+ mov r1, #0xad
+ mov r2, #0
+ add r4, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02255298
+ ldr r1, _02255500 ; =0x000001EE
+ cmp r0, r1
+ beq _02255298
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02255280
+ add r0, r4, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0225527A
+ mov r0, #3
+ strb r0, [r5, #8]
+ b _02255284
+_0225527A:
+ mov r0, #1
+ strb r0, [r5, #8]
+ b _02255284
+_02255280:
+ mov r0, #2
+ strb r0, [r5, #8]
+_02255284:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0225528E
+ mov r0, #0
+ b _02255294
+_0225528E:
+ add r0, r4, #0
+ bl FUN_02068698
+_02255294:
+ strb r0, [r5, #2]
+ add r5, r5, #1
+_02255298:
+ ldr r0, [sp, #0x24]
+ add r7, r7, #1
+ add r6, r6, #1
+ bl FUN_0206B9AC
+ cmp r6, r0
+ blt _0225523A
+_022552A6:
+ ldr r0, [sp, #0x20]
+ mov r1, #0xc
+ and r0, r1
+ cmp r0, #0xc
+ beq _022552C4
+ ldr r0, [sp, #0x20]
+ mov r1, #0x10
+ tst r0, r1
+ bne _022552C4
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x4b
+ beq _022552C4
+ cmp r0, #0xcb
+ beq _022552C4
+ b _022553FC
+_022552C4:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _022552DA
+ ldr r0, [sp, #4]
+ mov r1, #2
+ bl MOD11_0223022C
+ b _022552E2
+_022552DA:
+ ldr r0, [sp, #4]
+ mov r1, #3
+ bl MOD11_0223022C
+_022552E2:
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_0222FF88
+ str r0, [sp, #0x10]
+ mov r5, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0225535E
+ add r1, r4, #0
+ mov r0, #6
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r4, sp, #0x28
+ add r6, r0, r1
+_02255304:
+ ldr r1, _022554FC ; =0x0000312C
+ ldr r0, [sp, #0x10]
+ ldrb r1, [r6, r1]
+ bl FUN_0206B9B0
+ mov r1, #0xad
+ mov r2, #0
+ add r7, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02255350
+ ldr r1, _02255500 ; =0x000001EE
+ cmp r0, r1
+ beq _02255350
+ add r0, r7, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0225534A
+ add r0, r7, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02255344
+ mov r0, #3
+ strb r0, [r4, #0xe]
+ b _0225534E
+_02255344:
+ mov r0, #1
+ strb r0, [r4, #0xe]
+ b _0225534E
+_0225534A:
+ mov r0, #2
+ strb r0, [r4, #0xe]
+_0225534E:
+ add r4, r4, #1
+_02255350:
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _02255304
+_0225535E:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02255374
+ ldr r0, [sp, #4]
+ mov r1, #4
+ bl MOD11_0223022C
+ b _0225537C
+_02255374:
+ ldr r0, [sp, #4]
+ mov r1, #5
+ bl MOD11_0223022C
+_0225537C:
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_0222FF88
+ str r0, [sp, #0x14]
+ mov r5, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _02255482
+ add r1, r4, #0
+ mov r0, #6
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r4, sp, #0x28
+ add r6, r0, r1
+ add r4, #3
+_022553A0:
+ ldr r1, _022554FC ; =0x0000312C
+ ldr r0, [sp, #0x14]
+ ldrb r1, [r6, r1]
+ bl FUN_0206B9B0
+ mov r1, #0xad
+ mov r2, #0
+ add r7, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022553EC
+ ldr r1, _02255500 ; =0x000001EE
+ cmp r0, r1
+ beq _022553EC
+ add r0, r7, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022553E6
+ add r0, r7, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022553E0
+ mov r0, #3
+ strb r0, [r4, #0xe]
+ b _022553EA
+_022553E0:
+ mov r0, #1
+ strb r0, [r4, #0xe]
+ b _022553EA
+_022553E6:
+ mov r0, #2
+ strb r0, [r4, #0xe]
+_022553EA:
+ add r4, r4, #1
+_022553EC:
+ ldr r0, [sp, #0x14]
+ add r6, r6, #1
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _022553A0
+ b _02255482
+_022553FC:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ mov r2, #2
+ bl MOD11_02230308
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_0222FF88
+ str r0, [sp, #0x18]
+ mov r5, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _02255482
+ add r1, r4, #0
+ mov r0, #6
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r4, sp, #0x28
+ add r6, r0, r1
+_02255428:
+ ldr r1, _022554FC ; =0x0000312C
+ ldr r0, [sp, #0x18]
+ ldrb r1, [r6, r1]
+ bl FUN_0206B9B0
+ mov r1, #0xad
+ mov r2, #0
+ add r7, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02255474
+ ldr r1, _02255500 ; =0x000001EE
+ cmp r0, r1
+ beq _02255474
+ add r0, r7, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0225546E
+ add r0, r7, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02255468
+ mov r0, #3
+ strb r0, [r4, #0xe]
+ b _02255472
+_02255468:
+ mov r0, #1
+ strb r0, [r4, #0xe]
+ b _02255472
+_0225546E:
+ mov r0, #2
+ strb r0, [r4, #0xe]
+_02255472:
+ add r4, r4, #1
+_02255474:
+ ldr r0, [sp, #0x18]
+ add r6, r6, #1
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _02255428
+_02255482:
+ mov r5, #0
+ add r6, sp, #0x28
+ add r4, r6, #0
+ add r7, r5, #0
+_0225548A:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ add r2, r5, #6
+ add r3, r7, #0
+ bl MOD11_02243420
+ strh r0, [r6, #0x14]
+ add r2, r5, #0
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ add r2, #0x1f
+ mov r3, #0
+ bl MOD11_02243420
+ strb r0, [r4, #0x1c]
+ add r2, r5, #0
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ add r2, #0x27
+ mov r3, #0
+ bl MOD11_02243420
+ add r1, r4, #0
+ add r1, #0x20
+ add r5, r5, #1
+ strb r0, [r1]
+ add r6, r6, #2
+ add r4, r4, #1
+ cmp r5, #4
+ blt _0225548A
+ ldr r0, [sp, #0xc]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r3, sp, #0x28
+ add r0, r0, r1
+ ldr r1, _02255504 ; =0x00002D8C
+ ldr r2, [r0, r1]
+ strh r2, [r3, #0x24]
+ add r2, r1, #4
+ ldr r2, [r0, r2]
+ strh r2, [r3, #0x26]
+ mov r2, #0x24
+ ldrsh r2, [r3, r2]
+ cmp r2, #0
+ beq _0225550E
+ add r1, #0x20
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ add r0, sp, #0x48
+ beq _02255508
+ mov r1, #3
+ strb r1, [r0, #8]
+ b _02255514
+ nop
+_022554F8: .word 0x00003108
+_022554FC: .word 0x0000312C
+_02255500: .word 0x000001EE
+_02255504: .word 0x00002D8C
+_02255508:
+ mov r1, #1
+ strb r1, [r0, #8]
+ b _02255514
+_0225550E:
+ mov r1, #2
+ add r0, sp, #0x48
+ strb r1, [r0, #8]
+_02255514:
+ mov r0, #0x2c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ mov r1, #1
+ add r3, sp, #0x28
+ bl MOD11_02254878
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02255528
+MOD11_02255528: ; 0x02255528
+ push {r0, r1, r2, r3}
+ push {r3, lr}
+ add r2, r1, #0
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_02255544
+MOD11_02255544: ; 0x02255544
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r2, [sp, #0xc]
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ bl MOD11_0222FF78
+ ldr r1, [sp, #0xc]
+ bl MOD11_02243400
+ mov r0, #0xf
+ add r2, sp, #0x14
+ strb r0, [r2]
+ add r7, sp, #0x14
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #0xc]
+ add r5, r7, #0
+ add r1, r1, r0
+ ldr r0, _022555D4 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ mov r1, #0xc0
+ strb r0, [r2, #1]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r6, r0, r1
+ add r4, r6, #0
+_0225557E:
+ ldr r0, _022555D8 ; =0x00002D4C
+ ldr r1, _022555DC ; =0x00002D70
+ ldrh r0, [r6, r0]
+ strh r0, [r7, #4]
+ ldr r0, _022555E0 ; =0x00002D6C
+ ldrb r0, [r4, r0]
+ strb r0, [r5, #0xc]
+ ldr r0, _022555D8 ; =0x00002D4C
+ ldrb r1, [r4, r1]
+ ldrh r0, [r6, r0]
+ bl FUN_0206AB30
+ strb r0, [r5, #0x10]
+ ldr r0, [sp, #0x10]
+ add r6, r6, #2
+ add r0, r0, #1
+ add r7, r7, #2
+ add r4, r4, #1
+ add r5, r5, #1
+ str r0, [sp, #0x10]
+ cmp r0, #4
+ blt _0225557E
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ mov r3, #0
+ bl MOD11_02245D38
+ add r1, sp, #0x14
+ strh r0, [r1, #2]
+ mov r0, #0x14
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ mov r1, #1
+ add r3, sp, #0x14
+ bl MOD11_02254878
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022555D4: .word 0x0000219C
+_022555D8: .word 0x00002D4C
+_022555DC: .word 0x00002D70
+_022555E0: .word 0x00002D6C
+
+ thumb_func_start MOD11_022555E4
+MOD11_022555E4: ; 0x022555E4
+ push {r0, r1, r2, r3}
+ push {r3, lr}
+ add r2, r1, #0
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_02255600
+MOD11_02255600: ; 0x02255600
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ add r0, r1, #0
+ add r1, r3, #0
+ add r4, r2, #0
+ str r3, [sp, #0xc]
+ bl MOD11_02243400
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ mov r2, #0x10
+ add r1, sp, #0x1c
+ strb r2, [r1]
+ strh r4, [r1, #2]
+ mov r1, #2
+ add r2, r0, #0
+ and r2, r1
+ beq _0225563A
+ mov r1, #8
+ tst r0, r1
+ bne _0225563A
+ cmp r2, #0
+ beq _02255642
+ ldr r0, [sp, #0xc]
+ cmp r0, #2
+ blt _02255642
+_0225563A:
+ mov r1, #1
+ add r0, sp, #0x1c
+ strb r1, [r0, #1]
+ b _02255648
+_02255642:
+ mov r1, #0
+ add r0, sp, #0x1c
+ strb r1, [r0, #1]
+_02255648:
+ ldr r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r1, _0225570C ; =0x00002D54
+ add r0, r2, #0
+ add r7, r0, r1
+ add r1, #0x6a
+ add r5, r0, r1
+ mov r0, #3
+ add r4, sp, #0x20
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x10]
+ mov r0, #4
+ add r3, sp, #0x1c
+ add r4, #1
+ mov ip, r0
+_02255668:
+ ldr r0, _02255710 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _022556D6
+ strh r0, [r3, #8]
+ ldr r0, _02255714 ; =0x00002D90
+ ldr r0, [r2, r0]
+ strh r0, [r3, #0xa]
+ ldrb r1, [r4]
+ mov r0, #4
+ orr r0, r1
+ strb r0, [r4]
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r2, r0]
+ cmp r0, #0x1d
+ beq _0225568E
+ cmp r0, #0x20
+ bne _022556A2
+_0225568E:
+ ldr r0, [r7]
+ lsr r0, r0, #0x1f
+ bne _022556A2
+ ldrb r0, [r4]
+ ldr r1, [sp, #0x10]
+ bic r0, r1
+ mov r1, #2
+ orr r0, r1
+ strb r0, [r4]
+ b _022556B6
+_022556A2:
+ ldrb r6, [r4]
+ ldr r0, [sp, #0x14]
+ bic r6, r0
+ ldrb r0, [r5]
+ lsl r0, r0, #0x1c
+ lsr r1, r0, #0x1c
+ mov r0, #3
+ and r0, r1
+ orr r0, r6
+ strb r0, [r4]
+_022556B6:
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #0x18]
+ add r1, r1, r0
+ ldr r0, _02255718 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ strb r0, [r3, #4]
+ ldr r0, _0225571C ; =0x00002DAC
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _022556D0
+ mov r0, #3
+ strb r0, [r3, #6]
+ b _022556E2
+_022556D0:
+ mov r0, #1
+ strb r0, [r3, #6]
+ b _022556E2
+_022556D6:
+ ldrb r1, [r4]
+ mov r0, ip
+ bic r1, r0
+ strb r1, [r4]
+ mov r0, #2
+ strb r0, [r3, #6]
+_022556E2:
+ ldr r0, [sp, #0x18]
+ add r2, #0xc0
+ add r0, r0, #1
+ add r3, #8
+ add r4, #8
+ add r7, #0xc0
+ add r5, #0xc0
+ str r0, [sp, #0x18]
+ cmp r0, #4
+ blt _02255668
+ mov r0, #0x24
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ mov r1, #1
+ add r3, sp, #0x1c
+ bl MOD11_02254878
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225570C: .word 0x00002D54
+_02255710: .word 0x00002D8C
+_02255714: .word 0x00002D90
+_02255718: .word 0x0000219C
+_0225571C: .word 0x00002DAC
+
+ thumb_func_start MOD11_02255720
+MOD11_02255720: ; 0x02255720
+ push {r0, r1, r2, r3}
+ push {r3, lr}
+ add r2, r1, #0
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_0225573C
+MOD11_0225573C: ; 0x0225573C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ add r0, r1, #0
+ add r1, r2, #0
+ str r2, [sp, #0xc]
+ bl MOD11_02243400
+ add r6, sp, #0x10
+ mov r1, #0x11
+ add r0, sp, #0x10
+ strb r1, [r0]
+ mov r0, #0
+ ldr r4, [sp, #8]
+ mov ip, r0
+ ldr r1, _022558B0 ; =0x00002DCC
+ add r0, r4, #0
+ add r7, r0, r1
+ ldr r0, _022558B4 ; =0x0000312C
+ add r5, r6, #0
+_02255766:
+ ldr r2, [sp, #8]
+ mov r1, ip
+ add r2, r2, r1
+ ldr r1, _022558B8 ; =0x0000219C
+ mov r3, #0
+ ldrb r1, [r2, r1]
+ strb r1, [r6, #4]
+_02255774:
+ add r1, r4, r3
+ ldrb r2, [r1, r0]
+ add r1, r5, r3
+ add r3, r3, #1
+ strb r2, [r1, #8]
+ cmp r3, #6
+ blt _02255774
+ ldr r1, [r7]
+ add r2, r6, #0
+ lsl r1, r1, #0xa
+ lsr r1, r1, #0x1d
+ add r2, #0x20
+ strb r1, [r2]
+ mov r1, ip
+ add r1, r1, #1
+ add r6, r6, #1
+ add r4, r4, #6
+ add r5, r5, #6
+ add r7, #0xc0
+ mov ip, r1
+ cmp r1, #4
+ blt _02255766
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ cmp r0, #0x4a
+ bne _02255852
+ mov r0, #1
+ bl FUN_0206A92C
+ ldr r2, _022558BC ; =0x00003108
+ ldr r1, [sp, #8]
+ ldrb r1, [r1, r2]
+ tst r0, r1
+ bne _022557D8
+ mov r0, #3
+ bl FUN_0206A92C
+ ldr r2, _022558BC ; =0x00003108
+ ldr r1, [sp, #8]
+ ldrb r1, [r1, r2]
+ tst r0, r1
+ bne _022557D8
+ mov r1, #1
+ add r0, sp, #0x10
+ strb r1, [r0, #1]
+ mov r1, #0
+ strb r1, [r0, #2]
+ strb r1, [r0, #3]
+ b _0225589C
+_022557D8:
+ mov r0, #1
+ bl FUN_0206A92C
+ ldr r2, _022558BC ; =0x00003108
+ ldr r1, [sp, #8]
+ add r3, sp, #0x10
+ ldrb r1, [r1, r2]
+ tst r0, r1
+ bne _0225581E
+ mov r0, #0
+ mov r2, #0xba
+ ldr r1, [sp, #8]
+ strb r0, [r3, #1]
+ lsl r2, r2, #6
+ ldr r4, [r1, r2]
+ ldr r1, _022558C0 ; =0x200400C0
+ tst r1, r4
+ beq _02255804
+ mov r1, #1
+ strb r1, [r3, #2]
+ strb r0, [r3, #3]
+ b _0225589C
+_02255804:
+ ldr r1, [sp, #8]
+ sub r2, #0x10
+ ldr r2, [r1, r2]
+ mov r1, #1
+ lsl r1, r1, #0x18
+ tst r1, r2
+ strb r0, [r3, #2]
+ beq _0225581A
+ mov r0, #1
+ strb r0, [r3, #3]
+ b _0225589C
+_0225581A:
+ strb r0, [r3, #3]
+ b _0225589C
+_0225581E:
+ mov r0, #0
+ mov r2, #3
+ ldr r1, [sp, #8]
+ strb r0, [r3, #1]
+ lsl r2, r2, #0xc
+ ldr r4, [r1, r2]
+ ldr r1, _022558C0 ; =0x200400C0
+ tst r1, r4
+ beq _02255838
+ mov r1, #1
+ strb r1, [r3, #2]
+ strb r0, [r3, #3]
+ b _0225589C
+_02255838:
+ ldr r1, [sp, #8]
+ sub r2, #0x10
+ ldr r2, [r1, r2]
+ mov r1, #1
+ lsl r1, r1, #0x18
+ tst r1, r2
+ strb r0, [r3, #2]
+ beq _0225584E
+ mov r0, #1
+ strb r0, [r3, #3]
+ b _0225589C
+_0225584E:
+ strb r0, [r3, #3]
+ b _0225589C
+_02255852:
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ cmp r0, #0
+ bne _02255892
+ mov r2, #0xba
+ mov r0, #0
+ add r3, sp, #0x10
+ ldr r1, [sp, #8]
+ strb r0, [r3, #1]
+ lsl r2, r2, #6
+ ldr r4, [r1, r2]
+ ldr r1, _022558C0 ; =0x200400C0
+ tst r1, r4
+ beq _02255878
+ mov r1, #1
+ strb r1, [r3, #2]
+ strb r0, [r3, #3]
+ b _0225589C
+_02255878:
+ ldr r1, [sp, #8]
+ sub r2, #0x10
+ ldr r2, [r1, r2]
+ mov r1, #1
+ lsl r1, r1, #0x18
+ tst r1, r2
+ strb r0, [r3, #2]
+ beq _0225588E
+ mov r0, #1
+ strb r0, [r3, #3]
+ b _0225589C
+_0225588E:
+ strb r0, [r3, #3]
+ b _0225589C
+_02255892:
+ mov r1, #0
+ add r0, sp, #0x10
+ strb r1, [r0, #1]
+ strb r1, [r0, #2]
+ strb r1, [r0, #3]
+_0225589C:
+ mov r0, #0x24
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ mov r1, #1
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022558B0: .word 0x00002DCC
+_022558B4: .word 0x0000312C
+_022558B8: .word 0x0000219C
+_022558BC: .word 0x00003108
+_022558C0: .word 0x200400C0
+
+ thumb_func_start MOD11_022558C4
+MOD11_022558C4: ; 0x022558C4
+ push {r0, r1, r2, r3}
+ push {r3, lr}
+ add r2, r1, #0
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_022558E0
+MOD11_022558E0: ; 0x022558E0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ add r0, r1, #0
+ add r1, r2, #0
+ str r2, [sp, #0xc]
+ add r4, r3, #0
+ bl MOD11_02243400
+ mov r0, #0x12
+ add r1, sp, #0x10
+ strb r0, [r1]
+ ldr r0, [sp, #0xc]
+ add r7, sp, #0x10
+ strb r0, [r1, #1]
+ ldr r0, [sp, #0x50]
+ strb r4, [r1, #2]
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x54]
+ ldr r5, [sp, #8]
+ strb r0, [r1, #3]
+ ldr r1, _02255958 ; =0x00003108
+ ldr r0, [sp, #8]
+ mov r3, #0
+ ldrb r1, [r0, r1]
+ add r0, sp, #0x30
+ add r6, r7, #0
+ strb r1, [r0, #4]
+ ldr r0, _0225595C ; =0x0000312C
+_0225591C:
+ ldr r1, [sp, #8]
+ mov r4, #0
+ add r2, r1, r3
+ ldr r1, _02255960 ; =0x0000219C
+ ldrb r1, [r2, r1]
+ strb r1, [r7, #4]
+_02255928:
+ add r1, r5, r4
+ ldrb r2, [r1, r0]
+ add r1, r6, r4
+ add r4, r4, #1
+ strb r2, [r1, #8]
+ cmp r4, #6
+ blt _02255928
+ add r3, r3, #1
+ add r7, r7, #1
+ add r5, r5, #6
+ add r6, r6, #6
+ cmp r3, #4
+ blt _0225591C
+ mov r0, #0x28
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ mov r1, #1
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255958: .word 0x00003108
+_0225595C: .word 0x0000312C
+_02255960: .word 0x0000219C
+
+ thumb_func_start MOD11_02255964
+MOD11_02255964: ; 0x02255964
+ push {r0, r1, r2, r3}
+ push {r3, lr}
+ add r2, r1, #0
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_02255980
+MOD11_02255980: ; 0x02255980
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r2, #0
+ add r6, r0, #0
+ add r0, r1, #0
+ add r1, r5, #0
+ add r4, r3, #0
+ bl MOD11_02243400
+ mov r1, #0x13
+ add r0, sp, #4
+ strb r1, [r0]
+ ldr r1, [sp, #0x20]
+ strh r4, [r0, #2]
+ strb r1, [r0, #1]
+ ldr r0, [sp, #0x24]
+ mov r1, #1
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x28]
+ add r2, r5, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ str r0, [sp]
+ add r0, r6, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022559BC
+MOD11_022559BC: ; 0x022559BC
+ push {r4, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x14
+ add r3, sp, #4
+ strb r1, [r3]
+ ldr r1, [r2, #0x64]
+ add r4, r2, r1
+ ldr r1, _022559EC ; =0x0000219C
+ ldrb r1, [r4, r1]
+ strb r1, [r3, #1]
+ ldr r1, _022559F0 ; =0x00003044
+ ldr r1, [r2, r1]
+ strh r1, [r3, #2]
+ mov r1, #4
+ str r1, [sp]
+ ldr r2, [r2, #0x64]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, pc}
+ nop
+_022559EC: .word 0x0000219C
+_022559F0: .word 0x00003044
+
+ thumb_func_start MOD11_022559F4
+MOD11_022559F4: ; 0x022559F4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r3, r2, #0
+ mov r1, #0x15
+ strb r1, [r3]
+ mov r1, #0x24
+ str r1, [sp]
+ ldr r2, [r4, #0x64]
+ mov r1, #1
+ bl MOD11_02254878
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD11_02255A10
+MOD11_02255A10: ; 0x02255A10
+ push {r4, r5, r6, lr}
+ sub sp, #0x68
+ mov r3, #0
+ add r4, r1, #0
+ str r3, [sp]
+ ldr r6, [r4, #0x64]
+ add r5, r0, #0
+ str r6, [sp, #4]
+ ldr r6, [r4, #0x6c]
+ str r6, [sp, #8]
+ str r2, [sp, #0xc]
+ add r2, sp, #0x10
+ bl MOD11_02256854
+ mov r0, #0x58
+ str r0, [sp]
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ mov r1, #1
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x68
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02255A40
+MOD11_02255A40: ; 0x02255A40
+ push {r4, r5, r6, lr}
+ sub sp, #0x68
+ add r4, r3, #0
+ mov r3, #0
+ str r3, [sp]
+ ldr r6, [sp, #0x78]
+ str r4, [sp, #4]
+ str r6, [sp, #8]
+ str r2, [sp, #0xc]
+ add r2, sp, #0x10
+ add r5, r0, #0
+ bl MOD11_02256854
+ mov r0, #0x58
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x68
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255A70
+MOD11_02255A70: ; 0x02255A70
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x17
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255A8C
+MOD11_02255A8C: ; 0x02255A8C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r1, #0
+ str r2, [sp, #8]
+ add r1, r2, #0
+ add r3, r5, r2
+ ldr r2, _02255B50 ; =0x0000219C
+ str r0, [sp, #4]
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ add r4, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ add r6, r0, #0
+ mov r0, #0x18
+ add r2, sp, #0xc
+ strb r0, [r2]
+ ldr r0, [sp, #8]
+ mov r1, #0xc0
+ add r4, r0, #0
+ mul r4, r1
+ ldr r1, _02255B54 ; =0x00002D74
+ add r0, r5, r4
+ ldrb r3, [r0, r1]
+ strb r3, [r2, #1]
+ add r3, r1, #0
+ add r3, #0x18
+ ldr r3, [r0, r3]
+ strh r3, [r2, #2]
+ add r3, r1, #0
+ add r3, #0x1c
+ ldr r3, [r0, r3]
+ sub r1, #0x34
+ strh r3, [r2, #4]
+ ldr r2, _02255B58 ; =0x0000215C
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x14]
+ ldrh r0, [r0, r1]
+ cmp r0, #0x1d
+ beq _02255AF2
+ cmp r0, #0x20
+ bne _02255B04
+_02255AF2:
+ ldr r0, _02255B5C ; =0x00002D54
+ add r1, r5, r4
+ ldr r0, [r1, r0]
+ lsr r0, r0, #0x1f
+ bne _02255B04
+ mov r1, #2
+ add r0, sp, #0xc
+ strb r1, [r0, #7]
+ b _02255B12
+_02255B04:
+ ldr r0, _02255B60 ; =0x00002DBE
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r1, r0, #0x1c
+ add r0, sp, #0xc
+ strb r1, [r0, #7]
+_02255B12:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl FUN_02068758
+ ldr r1, _02255B64 ; =0x00002DA4
+ add r2, r5, r4
+ ldr r1, [r2, r1]
+ sub r0, r1, r0
+ str r0, [sp, #0x18]
+ add r0, r7, #0
+ add r1, r6, #1
+ bl FUN_02068758
+ add r4, r0, #0
+ add r0, r7, #0
+ add r1, r6, #0
+ bl FUN_02068758
+ sub r0, r4, r0
+ str r0, [sp, #0x1c]
+ mov r0, #0x14
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #8]
+ mov r1, #1
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255B50: .word 0x0000219C
+_02255B54: .word 0x00002D74
+_02255B58: .word 0x0000215C
+_02255B5C: .word 0x00002D54
+_02255B60: .word 0x00002DBE
+_02255B64: .word 0x00002DA4
+
+ thumb_func_start MOD11_02255B68
+MOD11_02255B68: ; 0x02255B68
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r2, #0
+ add r5, r1, #0
+ str r3, [sp, #8]
+ ldr r2, _02255BE4 ; =0x0000219C
+ add r3, r5, r4
+ ldrb r2, [r3, r2]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ bl MOD11_02230014
+ add r6, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ add r6, r0, #0
+ mov r1, #0x19
+ add r0, sp, #0xc
+ strb r1, [r0]
+ ldr r0, [sp, #8]
+ add r1, r6, #0
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ bl FUN_02068758
+ mov r1, #0xc0
+ mul r1, r4
+ add r2, r5, r1
+ ldr r1, _02255BE8 ; =0x00002DA4
+ ldr r1, [r2, r1]
+ sub r0, r1, r0
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r1, r6, #1
+ bl FUN_02068758
+ add r5, r0, #0
+ add r0, r7, #0
+ add r1, r6, #0
+ bl FUN_02068758
+ sub r0, r5, r0
+ str r0, [sp, #0x18]
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02255BE4: .word 0x0000219C
+_02255BE8: .word 0x00002DA4
+
+ thumb_func_start MOD11_02255BEC
+MOD11_02255BEC: ; 0x02255BEC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ str r0, [sp, #4]
+ add r0, r1, #0
+ mov ip, r2
+ mov r5, #0xb5
+ mov r2, #0x1a
+ add r1, sp, #0xc
+ strb r2, [r1]
+ mov r3, #0xc0
+ mov r2, ip
+ mul r3, r2
+ add r2, r0, r3
+ lsl r5, r5, #6
+ ldrh r4, [r2, r5]
+ strh r4, [r1, #2]
+ add r4, r5, #0
+ add r4, #0x26
+ ldrb r2, [r2, r4]
+ add r5, #0x70
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1b
+ strb r2, [r1, #8]
+ add r2, r0, r5
+ mov r1, #1
+ ldr r4, [r2, r3]
+ lsl r1, r1, #0x18
+ tst r1, r4
+ beq _02255C2A
+ mov r4, #1
+ b _02255C2C
+_02255C2A:
+ mov r4, #0
+_02255C2C:
+ add r1, sp, #0xc
+ strb r4, [r1, #9]
+ mov r1, #2
+ ldr r4, [r2, r3]
+ lsl r1, r1, #0x14
+ tst r1, r4
+ beq _02255C3E
+ mov r4, #1
+ b _02255C40
+_02255C3E:
+ mov r4, #0
+_02255C40:
+ add r1, sp, #0xc
+ strb r4, [r1, #0xa]
+ ldr r4, [r2, r3]
+ mov r2, #2
+ lsl r2, r2, #0x14
+ tst r2, r4
+ beq _02255C5E
+ ldr r2, _02255CE8 ; =0x00002DFA
+ add r4, r0, r3
+ ldrh r3, [r4, r2]
+ sub r2, #0x16
+ strb r3, [r1, #1]
+ ldr r1, [r4, r2]
+ str r1, [sp, #0x10]
+ b _02255C70
+_02255C5E:
+ ldr r2, _02255CEC ; =0x00002DBE
+ add r4, r0, r3
+ ldrb r3, [r4, r2]
+ sub r2, #0x16
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x1c
+ strb r3, [r1, #1]
+ ldr r1, [r4, r2]
+ str r1, [sp, #0x10]
+_02255C70:
+ mov r1, #0
+ str r1, [sp, #8]
+ ldr r1, _02255CF0 ; =0x00002D66
+ add r7, sp, #0xc
+ add r3, r0, r1
+ add r1, #0x58
+ add r4, r7, #0
+ add r5, r7, #0
+ add r6, r0, r1
+_02255C82:
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r1, [r0, r1]
+ strh r1, [r7, #0xc]
+ ldrb r1, [r3]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1f
+ strb r1, [r4, #0x18]
+ ldrb r1, [r3]
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ strb r1, [r4, #0x1c]
+ ldr r1, _02255CF4 ; =0x00002DB0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r1, r2
+ beq _02255CB0
+ ldr r1, _02255CE8 ; =0x00002DFA
+ ldrh r1, [r0, r1]
+ strb r1, [r4, #0x14]
+ ldr r1, _02255CF8 ; =0x00002DE4
+ b _02255CBA
+_02255CB0:
+ ldrb r1, [r6]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ strb r1, [r4, #0x14]
+ ldr r1, _02255CFC ; =0x00002DA8
+_02255CBA:
+ ldr r1, [r0, r1]
+ add r0, #0xc0
+ str r1, [r5, #0x20]
+ ldr r1, [sp, #8]
+ add r7, r7, #2
+ add r1, r1, #1
+ add r3, #0xc0
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0xc0
+ str r1, [sp, #8]
+ cmp r1, #4
+ blt _02255C82
+ mov r0, #0x30
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ mov r2, ip
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02255CE8: .word 0x00002DFA
+_02255CEC: .word 0x00002DBE
+_02255CF0: .word 0x00002D66
+_02255CF4: .word 0x00002DB0
+_02255CF8: .word 0x00002DE4
+_02255CFC: .word 0x00002DA8
+
+ thumb_func_start MOD11_02255D00
+MOD11_02255D00: ; 0x02255D00
+ push {r4, lr}
+ sub sp, #8
+ mov r4, #0x1b
+ add r1, sp, #4
+ strb r4, [r1]
+ strh r2, [r1, #2]
+ mov r1, #4
+ str r1, [sp]
+ add r2, r3, #0
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255D20
+MOD11_02255D20: ; 0x02255D20
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x1c
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255D3C
+MOD11_02255D3C: ; 0x02255D3C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ mov ip, r1
+ mov r3, #0x1d
+ add r1, sp, #8
+ strb r3, [r1]
+ strb r2, [r1, #1]
+ ldr r3, [r0, #0x30]
+ mov r2, #0xc0
+ mov r1, ip
+ mul r2, r1
+ ldr r1, _02255DF4 ; =0x00002DB0
+ add r2, r3, r2
+ ldr r2, [r2, r1]
+ mov r1, #1
+ lsl r1, r1, #0x18
+ tst r1, r2
+ beq _02255D64
+ mov r2, #1
+ b _02255D66
+_02255D64:
+ mov r2, #0
+_02255D66:
+ add r7, sp, #8
+ add r1, sp, #8
+ mov r3, #0
+ strb r2, [r1, #2]
+ str r3, [sp, #4]
+ add r4, r7, #0
+ add r5, r7, #0
+_02255D74:
+ ldr r1, [r0, #0x30]
+ add r2, r1, r3
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r1, [r2, r1]
+ strh r1, [r7, #4]
+ ldr r1, [r0, #0x30]
+ add r2, r1, r3
+ ldr r1, _02255DF8 ; =0x00002D66
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1f
+ strb r1, [r4, #0x10]
+ ldr r1, [r0, #0x30]
+ add r2, r1, r3
+ ldr r1, _02255DF8 ; =0x00002D66
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ strb r1, [r4, #0x14]
+ ldr r1, [r0, #0x30]
+ add r6, r1, r3
+ ldr r1, _02255DF4 ; =0x00002DB0
+ ldr r2, [r6, r1]
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r1, r2
+ beq _02255DBA
+ ldr r1, _02255DFC ; =0x00002DFA
+ ldrh r1, [r6, r1]
+ strb r1, [r4, #0xc]
+ ldr r1, [r0, #0x30]
+ add r2, r1, r3
+ ldr r1, _02255E00 ; =0x00002DE4
+ b _02255DCA
+_02255DBA:
+ ldr r1, _02255E04 ; =0x00002DBE
+ ldrb r1, [r6, r1]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ strb r1, [r4, #0xc]
+ ldr r1, [r0, #0x30]
+ add r2, r1, r3
+ ldr r1, _02255E08 ; =0x00002DA8
+_02255DCA:
+ ldr r1, [r2, r1]
+ add r3, #0xc0
+ str r1, [r5, #0x18]
+ ldr r1, [sp, #4]
+ add r7, r7, #2
+ add r1, r1, #1
+ add r4, r4, #1
+ add r5, r5, #4
+ str r1, [sp, #4]
+ cmp r1, #4
+ blt _02255D74
+ mov r1, #0x28
+ str r1, [sp]
+ mov r1, #1
+ mov r2, ip
+ add r3, sp, #8
+ bl MOD11_02254878
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255DF4: .word 0x00002DB0
+_02255DF8: .word 0x00002D66
+_02255DFC: .word 0x00002DFA
+_02255E00: .word 0x00002DE4
+_02255E04: .word 0x00002DBE
+_02255E08: .word 0x00002DA8
+
+ thumb_func_start MOD11_02255E0C
+MOD11_02255E0C: ; 0x02255E0C
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r3, #0x1e
+ add r1, sp, #4
+ strb r3, [r1]
+ strb r2, [r1, #1]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02255E2C
+MOD11_02255E2C: ; 0x02255E2C
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r3, #0x1f
+ add r1, sp, #4
+ strb r3, [r1]
+ strb r2, [r1, #1]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02255E4C
+MOD11_02255E4C: ; 0x02255E4C
+ push {r3, r4, r5, lr}
+ sub sp, #0x68
+ add r4, r2, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ str r4, [sp, #8]
+ mov r2, #0
+ str r2, [sp, #0xc]
+ add r2, sp, #0x10
+ mov r3, #1
+ add r5, r0, #0
+ bl MOD11_02256854
+ mov r0, #0x58
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x68
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255E7C
+MOD11_02255E7C: ; 0x02255E7C
+ push {r3, r4, r5, lr}
+ sub sp, #0x68
+ add r4, r2, #0
+ ldr r2, [sp, #0x78]
+ add r5, r0, #0
+ str r2, [sp]
+ str r4, [sp, #4]
+ str r3, [sp, #8]
+ mov r2, #0
+ str r2, [sp, #0xc]
+ add r2, sp, #0x10
+ mov r3, #1
+ bl MOD11_02256854
+ mov r0, #0x58
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x68
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02255EAC
+MOD11_02255EAC: ; 0x02255EAC
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r2, #0
+ mov r2, #0x20
+ add r0, sp, #4
+ strb r2, [r0]
+ strb r3, [r0, #1]
+ ldr r0, _02255EE8 ; =0x00003122
+ ldrsh r2, [r1, r0]
+ ldr r0, _02255EEC ; =0x00002E4C
+ ldr r0, [r1, r0]
+ sub r1, r2, r0
+ mov r0, #0x64
+ mul r0, r1
+ add r1, r2, #0
+ blx _s32_div_f
+ add r1, sp, #4
+ strh r0, [r1, #2]
+ mov r0, #4
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02255EE8: .word 0x00003122
+_02255EEC: .word 0x00002E4C
+
+ thumb_func_start MOD11_02255EF0
+MOD11_02255EF0: ; 0x02255EF0
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ mov r1, #0x21
+ add r0, sp, #4
+ strb r1, [r0]
+ ldr r2, _02255F38 ; =0x00002E4C
+ strb r3, [r0, #1]
+ ldr r1, [r6, r2]
+ cmp r1, #0
+ bne _02255F12
+ mov r1, #0xfa
+ lsl r1, r1, #2
+ strh r1, [r0, #2]
+ b _02255F24
+_02255F12:
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ mul r0, r1
+ add r1, r2, #4
+ ldr r1, [r6, r1]
+ blx _u32_div_f
+ add r1, sp, #4
+ strh r0, [r1, #2]
+_02255F24:
+ mov r0, #4
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02255F38: .word 0x00002E4C
+
+ thumb_func_start MOD11_02255F3C
+MOD11_02255F3C: ; 0x02255F3C
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x22
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02255F54
+MOD11_02255F54: ; 0x02255F54
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r1, #0
+ str r2, [sp, #4]
+ mov r2, #0x23
+ add r1, sp, #8
+ add r6, r0, #0
+ strb r2, [r1]
+ mov r4, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02255F86
+ add r5, sp, #8
+_02255F70:
+ ldr r0, _02255F9C ; =0x0000219C
+ add r1, r7, r4
+ ldrb r0, [r1, r0]
+ add r4, r4, #1
+ strb r0, [r5, #4]
+ add r0, r6, #0
+ add r5, r5, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _02255F70
+_02255F86:
+ mov r0, #8
+ str r0, [sp]
+ ldr r2, [sp, #4]
+ add r0, r6, #0
+ mov r1, #1
+ add r3, sp, #8
+ bl MOD11_02254878
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255F9C: .word 0x0000219C
+
+ thumb_func_start MOD11_02255FA0
+MOD11_02255FA0: ; 0x02255FA0
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x24
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255FBC
+MOD11_02255FBC: ; 0x02255FBC
+ push {r0, r1, r2, r3}
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x2c
+ add r4, r1, #0
+ add r5, r0, #0
+ bl MOD11_0222FF78
+ add r1, r4, #0
+ bl MOD11_02243400
+ mov r1, #0x25
+ add r0, sp, #4
+ strb r1, [r0]
+ add r6, sp, #0x48
+ add r3, sp, #8
+ mov r2, #4
+_02255FDC:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02255FDC
+ ldr r0, [r6]
+ mov r1, #1
+ str r0, [r3]
+ mov r0, #0x28
+ str r0, [sp]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0x2c
+ pop {r3, r4, r5, r6}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_02256004
+MOD11_02256004: ; 0x02256004
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256020
+MOD11_02256020: ; 0x02256020
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r1, #0
+ ldr r1, _0225613C ; =0x0000219C
+ add r4, r2, #0
+ add r7, r5, r1
+ ldrb r2, [r7, r4]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ bl MOD11_02230014
+ add r6, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #8]
+ mov r0, #0x26
+ add r2, sp, #0x10
+ strb r0, [r2]
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ ldr r1, _02256140 ; =0x00002D74
+ add r0, r5, r6
+ ldrb r3, [r0, r1]
+ strb r3, [r2, #1]
+ add r3, r1, #0
+ add r3, #0x18
+ ldr r3, [r0, r3]
+ add r1, #0x1c
+ strh r3, [r2, #2]
+ ldr r0, [r0, r1]
+ add r1, r4, #0
+ strh r0, [r2, #4]
+ ldrb r0, [r7, r4]
+ strb r0, [r2, #6]
+ add r0, r5, #0
+ bl MOD11_0224524C
+ add r1, sp, #0x10
+ ldrb r2, [r1, #7]
+ mov r3, #0x1f
+ lsl r0, r0, #0x18
+ bic r2, r3
+ lsr r3, r0, #0x18
+ mov r0, #0x1f
+ and r0, r3
+ orr r0, r2
+ strb r0, [r1, #7]
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r7, r5, r0
+ ldrh r0, [r7, r6]
+ cmp r0, #0x1d
+ beq _022560A0
+ cmp r0, #0x20
+ bne _022560BA
+_022560A0:
+ ldr r0, _02256144 ; =0x00002D54
+ add r1, r5, r6
+ ldr r0, [r1, r0]
+ lsr r0, r0, #0x1f
+ bne _022560BA
+ add r0, sp, #0x10
+ ldrb r1, [r0, #7]
+ mov r2, #0x60
+ bic r1, r2
+ mov r2, #0x40
+ orr r1, r2
+ strb r1, [r0, #7]
+ b _022560D4
+_022560BA:
+ add r3, sp, #0x10
+ ldrb r2, [r3, #7]
+ mov r0, #0x60
+ add r1, r5, r6
+ bic r2, r0
+ ldr r0, _02256148 ; =0x00002DBE
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x19
+ orr r0, r2
+ strb r0, [r3, #7]
+_022560D4:
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #8]
+ bl FUN_02068758
+ mov r1, #0xc0
+ mul r1, r4
+ add r2, r5, r1
+ ldr r1, _0225614C ; =0x00002DA4
+ ldr r1, [r2, r1]
+ sub r0, r1, r0
+ ldr r1, [sp, #8]
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0xc]
+ add r1, r1, #1
+ bl FUN_02068758
+ add r5, r0, #0
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #8]
+ bl FUN_02068758
+ sub r0, r5, r0
+ str r0, [sp, #0x1c]
+ ldrh r1, [r7, r6]
+ ldr r0, [sp, #4]
+ bl MOD11_02231668
+ add r3, sp, #0x10
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1f
+ ldrb r1, [r3, #7]
+ mov r2, #0x80
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r0, r1
+ strb r0, [r3, #7]
+ ldr r0, [sp, #4]
+ bl MOD11_02230E00
+ str r0, [sp, #0x20]
+ mov r0, #0x14
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0225613C: .word 0x0000219C
+_02256140: .word 0x00002D74
+_02256144: .word 0x00002D54
+_02256148: .word 0x00002DBE
+_0225614C: .word 0x00002DA4
+
+ thumb_func_start MOD11_02256150
+MOD11_02256150: ; 0x02256150
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r6, r1, #0
+ str r2, [sp, #8]
+ mov r1, #0x27
+ add r2, sp, #0x10
+ strb r1, [r2]
+ ldrb r1, [r2, #1]
+ mov r3, #0xf
+ str r0, [sp, #4]
+ bic r1, r3
+ ldr r3, [sp, #8]
+ add r4, r6, r3
+ ldr r3, _02256230 ; =0x0000219C
+ ldrb r4, [r4, r3]
+ mov r3, #0xf
+ and r3, r4
+ orr r1, r3
+ strb r1, [r2, #1]
+ ldr r1, [sp, #8]
+ mov r3, #0xc0
+ mul r3, r1
+ ldrb r4, [r2, #1]
+ mov r1, #0xf0
+ str r3, [sp, #0xc]
+ bic r4, r1
+ add r1, r3, #0
+ add r3, r6, r1
+ ldr r1, _02256234 ; =0x00002DCC
+ ldr r5, [r3, r1]
+ lsl r5, r5, #0x1a
+ lsr r5, r5, #0x1c
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ lsl r5, r5, #0x1c
+ lsr r5, r5, #0x18
+ orr r4, r5
+ strb r4, [r2, #1]
+ add r4, r1, #0
+ sub r4, #0x40
+ ldr r4, [r3, r4]
+ sub r1, #0x14
+ strh r4, [r2, #2]
+ ldrh r1, [r3, r1]
+ strh r1, [r2, #0xc]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ lsl r0, r0, #3
+ add r1, r6, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #8]
+ mov r2, #0xc0
+ mul r2, r1
+ lsl r0, r0, #3
+ lsr r0, r0, #0x1a
+ add r1, r6, r2
+ mov ip, r2
+ add r2, sp, #0x10
+ str r0, [sp, #0x18]
+ ldr r7, _02256238 ; =0x00002D6C
+ mov r0, #0
+ add r3, r1, #0
+ add r4, r2, #0
+_022561D4:
+ ldr r5, _0225623C ; =0x00002D4C
+ add r0, r0, #1
+ ldrh r5, [r1, r5]
+ add r1, r1, #2
+ strh r5, [r2, #0xe]
+ ldrb r5, [r3, r7]
+ add r2, r2, #2
+ add r3, r3, #1
+ strb r5, [r4, #0x16]
+ add r4, r4, #1
+ cmp r0, #4
+ blt _022561D4
+ add r1, sp, #0x10
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ cmp r0, #0
+ beq _0225620C
+ mov r0, ip
+ add r3, r6, r0
+ ldr r0, _02256240 ; =0x00002DAC
+ ldr r1, _02256244 ; =0xFFFFF0FF
+ ldr r2, [r3, r0]
+ add r0, r0, #4
+ and r1, r2
+ str r1, [sp, #0x14]
+ ldr r0, [r3, r0]
+ str r0, [sp, #0x2c]
+ b _0225621A
+_0225620C:
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0xc]
+ add r1, r6, r0
+ ldr r0, _02256248 ; =0x00002DB0
+ ldr r0, [r1, r0]
+ str r0, [sp, #0x2c]
+_0225621A:
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #8]
+ mov r1, #1
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02256230: .word 0x0000219C
+_02256234: .word 0x00002DCC
+_02256238: .word 0x00002D6C
+_0225623C: .word 0x00002D4C
+_02256240: .word 0x00002DAC
+_02256244: .word 0xFFFFF0FF
+_02256248: .word 0x00002DB0
+
+ thumb_func_start MOD11_0225624C
+MOD11_0225624C: ; 0x0225624C
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x28
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256268
+MOD11_02256268: ; 0x02256268
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x29
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256284
+MOD11_02256284: ; 0x02256284
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ mov r5, #0x2a
+ add r4, sp, #4
+ strb r5, [r4]
+ strh r3, [r4, #2]
+ mov r3, #0xc0
+ mul r3, r2
+ add r3, r1, r3
+ ldr r1, _022562AC ; =0x00002D67
+ ldrb r1, [r3, r1]
+ add r3, sp, #4
+ strb r1, [r4, #1]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022562AC: .word 0x00002D67
+
+ thumb_func_start MOD11_022562B0
+MOD11_022562B0: ; 0x022562B0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r7, r0, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl MOD11_0222FF78
+ add r1, r5, #0
+ bl MOD11_02243400
+ mov r1, #0x2b
+ add r0, sp, #4
+ strb r1, [r0]
+ strh r4, [r0, #2]
+ strb r6, [r0, #1]
+ mov r0, #4
+ str r0, [sp]
+ add r0, r7, #0
+ mov r1, #1
+ add r2, r5, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022562E4
+MOD11_022562E4: ; 0x022562E4
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r5, #0x2c
+ add r1, sp, #4
+ strb r5, [r1]
+ strb r2, [r1, #1]
+ strb r3, [r1, #2]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256308
+MOD11_02256308: ; 0x02256308
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r1, #0
+ mov r1, #0x2d
+ add r3, sp, #4
+ strb r1, [r3]
+ mov r1, #0xc0
+ add r6, r7, #0
+ mul r6, r1
+ ldr r1, [r0, #0x30]
+ add r2, r1, r6
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r2, [r2, r1]
+ strh r2, [r3, #2]
+ ldr r2, [r0, #0x30]
+ add r4, r2, r6
+ add r2, r1, #0
+ add r2, #0x26
+ ldrb r2, [r4, r2]
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1f
+ strb r2, [r3, #5]
+ ldr r2, [r0, #0x30]
+ add r5, r2, r6
+ add r2, r1, #0
+ add r2, #0x70
+ ldr r4, [r5, r2]
+ mov r2, #2
+ lsl r2, r2, #0x14
+ tst r2, r4
+ beq _0225635C
+ add r2, r1, #0
+ add r2, #0xba
+ ldrh r2, [r5, r2]
+ add r1, #0xa4
+ strb r2, [r3, #4]
+ ldr r2, [r0, #0x30]
+ add r2, r2, r6
+ ldr r1, [r2, r1]
+ str r1, [sp, #0xc]
+ b _02256372
+_0225635C:
+ add r2, r1, #0
+ add r2, #0x7e
+ ldrb r2, [r5, r2]
+ add r1, #0x68
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1c
+ strb r2, [r3, #4]
+ ldr r2, [r0, #0x30]
+ add r2, r2, r6
+ ldr r1, [r2, r1]
+ str r1, [sp, #0xc]
+_02256372:
+ ldr r1, [r0, #0x30]
+ add r3, sp, #4
+ add r2, r1, r6
+ ldr r1, _02256394 ; =0x00002D66
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #0x1b
+ lsr r2, r1, #0x1b
+ add r1, sp, #4
+ strb r2, [r1, #1]
+ mov r1, #0xc
+ str r1, [sp]
+ mov r1, #1
+ add r2, r7, #0
+ bl MOD11_02254878
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02256394: .word 0x00002D66
+
+ thumb_func_start MOD11_02256398
+MOD11_02256398: ; 0x02256398
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x2e
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022563B4
+MOD11_022563B4: ; 0x022563B4
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x2f
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022563D0
+MOD11_022563D0: ; 0x022563D0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ str r4, [sp]
+ ldr r1, [r5, #0x30]
+ add r2, sp, #4
+ mov r3, #0x30
+ bl MOD11_022569DC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_022563F8
+MOD11_022563F8: ; 0x022563F8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ str r4, [sp]
+ ldr r1, [r5, #0x30]
+ add r2, sp, #4
+ mov r3, #0x31
+ bl MOD11_022569DC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_02256420
+MOD11_02256420: ; 0x02256420
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ str r4, [sp]
+ ldr r1, [r5, #0x30]
+ add r2, sp, #4
+ mov r3, #0x32
+ bl MOD11_022569DC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_02256448
+MOD11_02256448: ; 0x02256448
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ str r4, [sp]
+ ldr r1, [r5, #0x30]
+ add r2, sp, #4
+ mov r3, #0x33
+ bl MOD11_022569DC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_02256470
+MOD11_02256470: ; 0x02256470
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x34
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225648C
+MOD11_0225648C: ; 0x0225648C
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x35
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022564A8
+MOD11_022564A8: ; 0x022564A8
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r5, #0x36
+ add r1, sp, #4
+ strb r5, [r1]
+ strb r2, [r1, #1]
+ strh r3, [r1, #2]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022564CC
+MOD11_022564CC: ; 0x022564CC
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r1, #0x37
+ add r5, r0, #0
+ str r1, [sp, #4]
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ beq _022564F0
+ str r1, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+_022564F0:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022564F4
+MOD11_022564F4: ; 0x022564F4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x64
+ str r0, [sp, #4]
+ add r0, r1, #0
+ str r2, [sp, #8]
+ mov r2, #0x38
+ add r7, sp, #0xc
+ add r1, sp, #0xc
+ strb r2, [r1]
+ mov r1, #0
+ mov ip, r1
+ ldr r1, _0225658C ; =0x00002D66
+ add r4, r7, #0
+ add r3, r0, r1
+ add r1, #0x58
+ add r5, r7, #0
+ add r6, r0, r1
+_02256516:
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r1, [r0, r1]
+ add r2, r4, #0
+ add r2, #0x24
+ strh r1, [r7, #0x18]
+ ldrb r1, [r3]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1f
+ strb r1, [r2]
+ ldrb r1, [r3]
+ add r2, r4, #0
+ add r2, #0x28
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ strb r1, [r2]
+ ldr r1, _02256590 ; =0x00002DB0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r1, r2
+ beq _02256550
+ ldr r1, _02256594 ; =0x00002DFA
+ add r2, r4, #0
+ ldrh r1, [r0, r1]
+ add r2, #0x20
+ strb r1, [r2]
+ ldr r1, _02256598 ; =0x00002DE4
+ b _0225655E
+_02256550:
+ ldrb r1, [r6]
+ add r2, r4, #0
+ add r2, #0x20
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ strb r1, [r2]
+ ldr r1, _0225659C ; =0x00002DA8
+_0225655E:
+ ldr r1, [r0, r1]
+ add r0, #0xc0
+ str r1, [r5, #0x2c]
+ mov r1, ip
+ add r1, r1, #1
+ add r7, r7, #2
+ add r3, #0xc0
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0xc0
+ mov ip, r1
+ cmp r1, #4
+ blt _02256516
+ mov r0, #0x58
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #8]
+ mov r1, #1
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x64
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225658C: .word 0x00002D66
+_02256590: .word 0x00002DB0
+_02256594: .word 0x00002DFA
+_02256598: .word 0x00002DE4
+_0225659C: .word 0x00002DA8
+
+ thumb_func_start MOD11_022565A0
+MOD11_022565A0: ; 0x022565A0
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x39
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022565BC
+MOD11_022565BC: ; 0x022565BC
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x3a
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022565D8
+MOD11_022565D8: ; 0x022565D8
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x3b
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022565F4
+MOD11_022565F4: ; 0x022565F4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ mov r2, #0x3c
+ add r1, sp, #4
+ strb r2, [r1]
+ mov r4, #0
+ add r6, r0, #0
+ strb r4, [r1, #1]
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02256632
+ add r7, sp, #4
+_02256610:
+ ldr r0, _02256648 ; =0x000021A8
+ ldr r0, [r5, r0]
+ cmp r0, #0x10
+ bne _02256624
+ add r0, r4, #0
+ bl FUN_0206A92C
+ ldrb r1, [r7, #1]
+ orr r0, r1
+ strb r0, [r7, #1]
+_02256624:
+ add r0, r6, #0
+ add r5, #0x10
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _02256610
+_02256632:
+ mov r0, #4
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02256648: .word 0x000021A8
+
+ thumb_func_start MOD11_0225664C
+MOD11_0225664C: ; 0x0225664C
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x3d
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256668
+MOD11_02256668: ; 0x02256668
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x64
+ str r0, [sp, #4]
+ add r0, r1, #0
+ str r2, [sp, #8]
+ mov r2, #0x3e
+ add r7, sp, #0xc
+ add r1, sp, #0xc
+ strb r2, [r1]
+ mov r1, #0
+ mov ip, r1
+ ldr r1, _02256700 ; =0x00002D66
+ add r4, r7, #0
+ add r3, r0, r1
+ add r1, #0x58
+ add r5, r7, #0
+ add r6, r0, r1
+_0225668A:
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r1, [r0, r1]
+ add r2, r4, #0
+ add r2, #0x24
+ strh r1, [r7, #0x18]
+ ldrb r1, [r3]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1f
+ strb r1, [r2]
+ ldrb r1, [r3]
+ add r2, r4, #0
+ add r2, #0x28
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ strb r1, [r2]
+ ldr r1, _02256704 ; =0x00002DB0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r1, r2
+ beq _022566C4
+ ldr r1, _02256708 ; =0x00002DFA
+ add r2, r4, #0
+ ldrh r1, [r0, r1]
+ add r2, #0x20
+ strb r1, [r2]
+ ldr r1, _0225670C ; =0x00002DE4
+ b _022566D2
+_022566C4:
+ ldrb r1, [r6]
+ add r2, r4, #0
+ add r2, #0x20
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ strb r1, [r2]
+ ldr r1, _02256710 ; =0x00002DA8
+_022566D2:
+ ldr r1, [r0, r1]
+ add r0, #0xc0
+ str r1, [r5, #0x2c]
+ mov r1, ip
+ add r1, r1, #1
+ add r7, r7, #2
+ add r3, #0xc0
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0xc0
+ mov ip, r1
+ cmp r1, #4
+ blt _0225668A
+ mov r0, #0x58
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #8]
+ mov r1, #1
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x64
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02256700: .word 0x00002D66
+_02256704: .word 0x00002DB0
+_02256708: .word 0x00002DFA
+_0225670C: .word 0x00002DE4
+_02256710: .word 0x00002DA8
+
+ thumb_func_start MOD11_02256714
+MOD11_02256714: ; 0x02256714
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ mov r3, #0x3f
+ add r4, sp, #4
+ strb r3, [r4]
+ ldr r3, _02256750 ; =0x0000216C
+ ldr r5, [r1, r3]
+ mov r1, #2
+ add r3, r5, #0
+ tst r3, r1
+ beq _0225672E
+ strb r1, [r4, #1]
+ b _0225673E
+_0225672E:
+ mov r1, #4
+ tst r1, r5
+ beq _0225673A
+ mov r1, #1
+ strb r1, [r4, #1]
+ b _0225673E
+_0225673A:
+ mov r1, #0
+ strb r1, [r4, #1]
+_0225673E:
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02256750: .word 0x0000216C
+
+ thumb_func_start MOD11_02256754
+MOD11_02256754: ; 0x02256754
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r3, #0x40
+ add r1, sp, #4
+ strb r3, [r1]
+ strh r2, [r1, #2]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02256774
+MOD11_02256774: ; 0x02256774
+ push {r3, r4, lr}
+ sub sp, #0xc
+ mov r2, #0x41
+ add r1, sp, #4
+ strb r2, [r1]
+ add r4, r0, #0
+ bl MOD11_0223145C
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225679C
+MOD11_0225679C: ; 0x0225679C
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x42
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022567B8
+MOD11_022567B8: ; 0x022567B8
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, sp, #4
+ add r4, r1, #0
+ strb r2, [r0]
+ bl FUN_02031190
+ add r1, sp, #4
+ strb r0, [r1, #1]
+ mov r0, #4
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #2
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022567E0
+MOD11_022567E0: ; 0x022567E0
+ push {r3, r4, r5, r6, r7, lr}
+ ldrb r6, [r1, #3]
+ ldrb r3, [r1]
+ ldrb r2, [r1, #2]
+ lsl r6, r6, #8
+ add r5, r0, #0
+ orr r2, r6
+ ldrb r4, [r1, #1]
+ cmp r3, #0
+ bne _02256814
+ mov r3, #0
+ cmp r2, #0
+ ble _02256852
+ mov r6, #0x23
+ lsl r4, r4, #8
+ lsl r6, r6, #8
+_02256800:
+ add r0, r1, r3
+ ldr r7, [r5, #0x30]
+ ldrb r0, [r0, #4]
+ add r7, r4, r7
+ add r7, r3, r7
+ add r3, r3, #1
+ strb r0, [r7, r6]
+ cmp r3, r2
+ blt _02256800
+ pop {r3, r4, r5, r6, r7, pc}
+_02256814:
+ cmp r3, #1
+ bne _02256836
+ mov r0, #0
+ cmp r2, #0
+ ble _02256852
+ lsl r3, r4, #2
+ add r5, r5, r3
+_02256822:
+ add r3, r1, r0
+ ldrb r4, [r3, #4]
+ ldr r3, [r5, #0x34]
+ add r3, r3, r0
+ add r3, #0x94
+ add r0, r0, #1
+ strb r4, [r3]
+ cmp r0, r2
+ blt _02256822
+ pop {r3, r4, r5, r6, r7, pc}
+_02256836:
+ cmp r3, #2
+ bne _02256852
+ ldrb r7, [r1, #4]
+ ldrb r6, [r1, #5]
+ bl MOD11_02230DD4
+ cmp r0, #0
+ beq _02256852
+ ldr r0, [r5, #0x30]
+ add r1, r6, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02243340
+_02256852:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02256854
+MOD11_02256854: ; 0x02256854
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r5, r2, #0
+ mov r1, #0x16
+ strb r1, [r5]
+ add r1, sp, #0x18
+ ldrh r1, [r1, #0x1c]
+ add r7, r0, #0
+ strh r1, [r5, #2]
+ ldr r1, [sp, #0x2c]
+ strh r1, [r5, #0x14]
+ ldr r1, [sp, #0x30]
+ strh r1, [r5, #0x16]
+ ldr r1, [sp, #0x28]
+ str r3, [r5, #0x4c]
+ str r1, [r5, #0x50]
+ bl MOD11_02230294
+ str r0, [r5, #0x54]
+ cmp r4, #0
+ bne _02256882
+ b _022569B2
+_02256882:
+ ldr r0, _022569B8 ; =0x00002144
+ ldr r1, [r4, r0]
+ add r0, #0x10
+ str r1, [r5, #4]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02256892
+ b _0225689E
+_02256892:
+ add r0, sp, #0x18
+ ldrh r0, [r0, #0x1c]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022569BC ; =0x000003E1
+ ldrb r0, [r1, r0]
+_0225689E:
+ ldr r1, [sp, #0x2c]
+ strh r0, [r5, #8]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ ldr r0, _022569C0 ; =0x00002D75
+ add r1, r4, r6
+ ldrb r0, [r1, r0]
+ add r1, r4, #0
+ mov r2, #8
+ strh r0, [r5, #0xc]
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r7, #0
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022568E2
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022568E2
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ str r0, [r5, #0x10]
+ b _022568E6
+_022568E2:
+ mov r0, #0
+ str r0, [r5, #0x10]
+_022568E6:
+ ldr r0, _022569C4 ; =0x00002164
+ ldr r0, [r4, r0]
+ strh r0, [r5, #0xa]
+ ldr r0, _022569C8 ; =0x00002DB0
+ add r1, r4, r0
+ mov r0, #1
+ ldr r2, [r1, r6]
+ lsl r0, r0, #0x18
+ tst r0, r2
+ beq _022568FE
+ mov r3, #1
+ b _02256900
+_022568FE:
+ mov r3, #0
+_02256900:
+ ldrh r0, [r5, #0xe]
+ mov r2, #1
+ bic r0, r2
+ lsl r2, r3, #0x10
+ lsr r3, r2, #0x10
+ mov r2, #1
+ and r3, r2
+ orr r0, r3
+ strh r0, [r5, #0xe]
+ ldr r1, [r1, r6]
+ lsl r0, r2, #0x15
+ tst r0, r1
+ bne _0225691C
+ mov r2, #0
+_0225691C:
+ ldrh r0, [r5, #0xe]
+ mov r1, #2
+ str r5, [sp, #0x10]
+ bic r0, r1
+ lsl r1, r2, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1e
+ orr r0, r1
+ strh r0, [r5, #0xe]
+ ldr r0, _022569CC ; =0x00002D66
+ mov r1, #0
+ add r2, r4, r0
+ add r0, #0x58
+ add r3, r5, #0
+ add r7, r4, r0
+_0225693C:
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r6, [r4, r0]
+ ldr r0, [sp, #0x10]
+ strh r6, [r0, #0x18]
+ ldrb r0, [r2]
+ lsl r0, r0, #0x1a
+ lsr r6, r0, #0x1f
+ add r0, r5, r1
+ str r0, [sp, #8]
+ add r0, #0x24
+ str r0, [sp, #8]
+ strb r6, [r0]
+ ldrb r0, [r2]
+ lsl r0, r0, #0x1b
+ lsr r6, r0, #0x1b
+ add r0, r5, r1
+ str r0, [sp, #4]
+ add r0, #0x28
+ str r0, [sp, #4]
+ strb r6, [r0]
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ str r0, [r3, #0x3c]
+ ldr r0, _022569C8 ; =0x00002DB0
+ ldr r6, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r6
+ beq _0225698C
+ ldr r0, _022569D0 ; =0x00002DFA
+ ldrh r6, [r4, r0]
+ add r0, r5, r1
+ str r0, [sp, #0xc]
+ add r0, #0x20
+ str r0, [sp, #0xc]
+ strb r6, [r0]
+ ldr r0, _022569D4 ; =0x00002DE4
+ b _0225699A
+_0225698C:
+ ldrb r0, [r7]
+ lsl r0, r0, #0x1c
+ lsr r6, r0, #0x1c
+ add r0, r5, r1
+ add r0, #0x20
+ strb r6, [r0]
+ ldr r0, _022569D8 ; =0x00002DA8
+_0225699A:
+ ldr r0, [r4, r0]
+ add r1, r1, #1
+ str r0, [r3, #0x2c]
+ ldr r0, [sp, #0x10]
+ add r4, #0xc0
+ add r0, r0, #2
+ str r0, [sp, #0x10]
+ add r2, #0xc0
+ add r3, r3, #4
+ add r7, #0xc0
+ cmp r1, #4
+ blt _0225693C
+_022569B2:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022569B8: .word 0x00002144
+_022569BC: .word 0x000003E1
+_022569C0: .word 0x00002D75
+_022569C4: .word 0x00002164
+_022569C8: .word 0x00002DB0
+_022569CC: .word 0x00002D66
+_022569D0: .word 0x00002DFA
+_022569D4: .word 0x00002DE4
+_022569D8: .word 0x00002DA8
+
+ thumb_func_start MOD11_022569DC
+MOD11_022569DC: ; 0x022569DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r0, [sp]
+ ldr r0, [sp, #0x38]
+ add r5, r2, #0
+ str r1, [sp, #4]
+ str r0, [sp, #0x38]
+ mov r0, #0
+ add r1, r5, #0
+ mov r2, #8
+ add r6, r3, #0
+ blx MIi_CpuClearFast
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ mov r0, #0xc
+ and r0, r4
+ strb r6, [r5]
+ cmp r0, #0xc
+ beq _02256A30
+ mov r0, #0x10
+ tst r0, r4
+ beq _02256A1A
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02256A30
+_02256A1A:
+ cmp r4, #0x4b
+ bne _02256A2A
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02256A30
+_02256A2A:
+ cmp r4, #0xcb
+ beq _02256A30
+ b _02256B66
+_02256A30:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_02230260
+ cmp r0, #2
+ beq _02256A48
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_02230260
+ cmp r0, #3
+ bne _02256A56
+_02256A48:
+ ldr r6, [sp, #0x38]
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_022302BC
+ str r0, [sp, #0x38]
+ b _02256A60
+_02256A56:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_022302BC
+ add r6, r0, #0
+_02256A60:
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_0222FF88
+ mov r4, #0
+ str r0, [sp, #0x10]
+ add r7, r4, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _02256AE0
+ mov r0, #6
+ add r1, r6, #0
+ mul r1, r0
+ ldr r0, [sp, #4]
+ add r6, r0, r1
+_02256A80:
+ ldr r1, _02256C00 ; =0x0000312C
+ ldr r0, [sp, #0x10]
+ ldrb r1, [r6, r1]
+ bl FUN_0206B9B0
+ mov r1, #0xad
+ mov r2, #0
+ str r0, [sp, #0x14]
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02256AD2
+ ldr r1, _02256C04 ; =0x000001EE
+ cmp r0, r1
+ beq _02256AD2
+ ldr r0, [sp, #0x14]
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02256ACA
+ ldr r0, [sp, #0x14]
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02256AC2
+ add r1, r5, r4
+ mov r0, #3
+ strb r0, [r1, #2]
+ b _02256AD0
+_02256AC2:
+ add r1, r5, r4
+ mov r0, #1
+ strb r0, [r1, #2]
+ b _02256AD0
+_02256ACA:
+ add r1, r5, r4
+ mov r0, #2
+ strb r0, [r1, #2]
+_02256AD0:
+ add r4, r4, #1
+_02256AD2:
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r7, r7, #1
+ bl FUN_0206B9AC
+ cmp r7, r0
+ blt _02256A80
+_02256AE0:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_0222FF88
+ str r0, [sp, #8]
+ mov r4, #3
+ mov r6, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ bgt _02256AF8
+ b _02256BFA
+_02256AF8:
+ ldr r0, [sp, #0x38]
+ mov r1, #6
+ mul r1, r0
+ ldr r0, [sp, #4]
+ add r7, r0, r1
+_02256B02:
+ ldr r1, _02256C00 ; =0x0000312C
+ ldr r0, [sp, #8]
+ ldrb r1, [r7, r1]
+ bl FUN_0206B9B0
+ mov r1, #0xad
+ mov r2, #0
+ str r0, [sp, #0x18]
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02256B54
+ ldr r1, _02256C04 ; =0x000001EE
+ cmp r0, r1
+ beq _02256B54
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02256B4C
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02256B44
+ add r1, r5, r4
+ mov r0, #3
+ strb r0, [r1, #2]
+ b _02256B52
+_02256B44:
+ add r1, r5, r4
+ mov r0, #1
+ strb r0, [r1, #2]
+ b _02256B52
+_02256B4C:
+ add r1, r5, r4
+ mov r0, #2
+ strb r0, [r1, #2]
+_02256B52:
+ add r4, r4, #1
+_02256B54:
+ ldr r0, [sp, #8]
+ add r7, r7, #1
+ add r6, r6, #1
+ bl FUN_0206B9AC
+ cmp r6, r0
+ blt _02256B02
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+_02256B66:
+ mov r0, #2
+ tst r0, r4
+ beq _02256B7A
+ mov r0, #8
+ tst r0, r4
+ bne _02256B7A
+ ldr r0, [sp, #0x38]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x38]
+_02256B7A:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_0222FF88
+ mov r4, #0
+ str r0, [sp, #0xc]
+ add r7, r4, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _02256BFA
+ ldr r0, [sp, #0x38]
+ mov r1, #6
+ mul r1, r0
+ ldr r0, [sp, #4]
+ add r6, r0, r1
+_02256B9A:
+ ldr r1, _02256C00 ; =0x0000312C
+ ldr r0, [sp, #0xc]
+ ldrb r1, [r6, r1]
+ bl FUN_0206B9B0
+ mov r1, #0xad
+ mov r2, #0
+ str r0, [sp, #0x1c]
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02256BEC
+ ldr r1, _02256C04 ; =0x000001EE
+ cmp r0, r1
+ beq _02256BEC
+ ldr r0, [sp, #0x1c]
+ mov r1, #0xa2
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02256BE4
+ ldr r0, [sp, #0x1c]
+ mov r1, #0x9f
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02256BDC
+ add r1, r5, r4
+ mov r0, #3
+ strb r0, [r1, #2]
+ b _02256BEA
+_02256BDC:
+ add r1, r5, r4
+ mov r0, #1
+ strb r0, [r1, #2]
+ b _02256BEA
+_02256BE4:
+ add r1, r5, r4
+ mov r0, #2
+ strb r0, [r1, #2]
+_02256BEA:
+ add r4, r4, #1
+_02256BEC:
+ ldr r0, [sp, #0xc]
+ add r6, r6, #1
+ add r7, r7, #1
+ bl FUN_0206B9AC
+ cmp r7, r0
+ blt _02256B9A
+_02256BFA:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02256C00: .word 0x0000312C
+_02256C04: .word 0x000001EE
+
+ thumb_func_start MOD11_02256C08
+MOD11_02256C08: ; 0x02256C08
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ add r4, r1, #0
+ add r7, r2, #0
+ str r3, [sp, #0x18]
+ bl MOD11_02257FC0
+ add r6, r0, #0
+ ldr r3, [r6, #0x14]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ str r3, [sp, #8]
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x23
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _02256CC8 ; =0x00004E26
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ ldr r3, [r6, #0x1c]
+ mov r0, #1
+ str r0, [sp]
+ str r3, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ bl FUN_0200C124
+ ldr r3, [r6, #0x20]
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ str r3, [sp, #4]
+ bl FUN_0200C13C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x23
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _02256CCC ; =0x00004E27
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ ldr r0, [sp, #0x18]
+ sub r0, r0, #6
+ cmp r0, #1
+ bhi _02256CC4
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x2d
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _02256CD0 ; =0x00004E28
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+_02256CC4:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02256CC8: .word 0x00004E26
+_02256CCC: .word 0x00004E27
+_02256CD0: .word 0x00004E28
+
+ thumb_func_start MOD11_02256CD4
+MOD11_02256CD4: ; 0x02256CD4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD11_02258024
+ add r4, r0, #0
+ beq _02256D44
+ ldr r3, [r4, #0x14]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ str r3, [sp, #8]
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x23
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _02256D48 ; =0x00004E26
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r2, r5, #0
+ add r3, r6, #0
+ bl FUN_0200C0DC
+ ldr r3, [r4, #0x1c]
+ mov r0, #1
+ str r0, [sp]
+ str r3, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ bl FUN_0200C124
+ ldr r3, [r4, #0x20]
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ str r3, [sp, #4]
+ bl FUN_0200C13C
+_02256D44:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02256D48: .word 0x00004E26
+
+ thumb_func_start MOD11_02256D4C
+MOD11_02256D4C: ; 0x02256D4C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r0, r2, #0x18
+ add r4, r1, #0
+ lsr r0, r0, #0x18
+ bl MOD11_02257FC0
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200C154
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_0200C59C
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02256D70
+MOD11_02256D70: ; 0x02256D70
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ add r6, r1, #0
+ add r4, r2, #0
+ cmp r0, #0
+ bne _02256D82
+ bl ErrorHandling
+_02256D82:
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ cmp r0, #6
+ bne _02256D94
+ mov r1, #3
+ lsl r1, r1, #0xa
+ and r4, r1
+ b _02256DA4
+_02256D94:
+ cmp r0, #7
+ bne _02256DA0
+ mov r1, #3
+ lsl r1, r1, #0xc
+ and r4, r1
+ b _02256DA4
+_02256DA0:
+ ldr r1, _02256F00 ; =0xFFFFC3FF
+ and r4, r1
+_02256DA4:
+ cmp r0, #7
+ bhi _02256DEA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02256DB4: ; jump table
+ .short _02256DE6 - _02256DB4 - 2 ; case 0
+ .short _02256DC4 - _02256DB4 - 2 ; case 1
+ .short _02256DCA - _02256DB4 - 2 ; case 2
+ .short _02256DC4 - _02256DB4 - 2 ; case 3
+ .short _02256DCA - _02256DB4 - 2 ; case 4
+ .short _02256DC4 - _02256DB4 - 2 ; case 5
+ .short _02256DEA - _02256DB4 - 2 ; case 6
+ .short _02256DEA - _02256DB4 - 2 ; case 7
+_02256DC4:
+ mov r0, #0x26
+ bic r4, r0
+ b _02256DEA
+_02256DCA:
+ ldr r0, _02256F04 ; =0xFFFFFDDF
+ and r4, r0
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ bne _02256DE0
+ mov r0, #6
+ bic r4, r0
+ b _02256DEA
+_02256DE0:
+ mov r0, #1
+ bic r4, r0
+ b _02256DEA
+_02256DE6:
+ ldr r0, _02256F08 ; =0xFFFFFDFF
+ and r4, r0
+_02256DEA:
+ ldr r0, [r5, #0xc]
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _02256DFA
+ ldr r0, _02256F08 ; =0xFFFFFDFF
+ and r4, r0
+_02256DFA:
+ mov r0, #1
+ tst r0, r4
+ beq _02256E10
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_02257150
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_02257BEC
+_02256E10:
+ mov r0, #2
+ tst r0, r4
+ beq _02256E1E
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0225787C
+_02256E1E:
+ mov r0, #4
+ tst r0, r4
+ beq _02256E2A
+ add r0, r5, #0
+ bl MOD11_02257908
+_02256E2A:
+ mov r0, #0x80
+ tst r0, r4
+ bne _02256E36
+ mov r0, #0x40
+ tst r0, r4
+ beq _02256E3C
+_02256E36:
+ add r0, r5, #0
+ bl MOD11_02257654
+_02256E3C:
+ mov r0, #8
+ tst r0, r4
+ beq _02256E48
+ add r0, r5, #0
+ bl MOD11_0225775C
+_02256E48:
+ mov r0, #0x10
+ tst r0, r4
+ beq _02256E54
+ add r0, r5, #0
+ bl MOD11_022574F0
+_02256E54:
+ mov r0, #0x20
+ tst r0, r4
+ beq _02256E6A
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_022571B8
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02257BEC
+_02256E6A:
+ mov r0, #2
+ lsl r0, r0, #8
+ tst r0, r4
+ beq _02256E78
+ add r0, r5, #0
+ bl MOD11_02257968
+_02256E78:
+ mov r0, #1
+ lsl r0, r0, #8
+ tst r0, r4
+ beq _02256EDC
+ add r0, r5, #0
+ add r0, #0x4a
+ ldrb r0, [r0]
+ cmp r0, #5
+ bhi _02256EA2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02256E96: ; jump table
+ .short _02256EA2 - _02256E96 - 2 ; case 0
+ .short _02256EAC - _02256E96 - 2 ; case 1
+ .short _02256EB6 - _02256E96 - 2 ; case 2
+ .short _02256EC0 - _02256E96 - 2 ; case 3
+ .short _02256ECA - _02256E96 - 2 ; case 4
+ .short _02256ED4 - _02256E96 - 2 ; case 5
+_02256EA2:
+ add r0, r5, #0
+ mov r1, #0x38
+ bl MOD11_022579B8
+ b _02256EDC
+_02256EAC:
+ add r0, r5, #0
+ mov r1, #0x2f
+ bl MOD11_022579B8
+ b _02256EDC
+_02256EB6:
+ add r0, r5, #0
+ mov r1, #0x32
+ bl MOD11_022579B8
+ b _02256EDC
+_02256EC0:
+ add r0, r5, #0
+ mov r1, #0x35
+ bl MOD11_022579B8
+ b _02256EDC
+_02256ECA:
+ add r0, r5, #0
+ mov r1, #0x2c
+ bl MOD11_022579B8
+ b _02256EDC
+_02256ED4:
+ add r0, r5, #0
+ mov r1, #0x29
+ bl MOD11_022579B8
+_02256EDC:
+ mov r0, #5
+ lsl r0, r0, #0xa
+ tst r0, r4
+ beq _02256EEC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022579F8
+_02256EEC:
+ mov r0, #0xa
+ lsl r0, r0, #0xa
+ tst r0, r4
+ beq _02256EFC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02257AD4
+_02256EFC:
+ pop {r4, r5, r6, pc}
+ nop
+_02256F00: .word 0xFFFFC3FF
+_02256F04: .word 0xFFFFFDDF
+_02256F08: .word 0xFFFFFDFF
+
+ thumb_func_start MOD11_02256F0C
+MOD11_02256F0C: ; 0x02256F0C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ cmp r0, #0
+ beq _02256F1E
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x50]
+_02256F1E:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02256F2C
+ bl FUN_0200C3DC
+ mov r0, #0
+ str r0, [r4, #4]
+_02256F2C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256F30
+MOD11_02256F30: ; 0x02256F30
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02256F42
+ bl FUN_0200C3DC
+ mov r0, #0
+ str r0, [r4, #8]
+_02256F42:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02256F44
+MOD11_02256F44: ; 0x02256F44
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ bl MOD11_02257FC0
+ add r4, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230078
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230080
+ ldr r1, [r4, #0x14]
+ add r5, r0, #0
+ bl FUN_0200C358
+ ldr r1, [r4, #0x1c]
+ add r0, r5, #0
+ bl FUN_0200C378
+ ldr r1, [r4, #0x20]
+ add r0, r5, #0
+ bl FUN_0200C388
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02256F78
+MOD11_02256F78: ; 0x02256F78
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ bl MOD11_02258024
+ add r4, r0, #0
+ beq _02256FAC
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230078
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230080
+ ldr r1, [r4, #0x14]
+ add r5, r0, #0
+ bl FUN_0200C358
+ ldr r1, [r4, #0x1c]
+ add r0, r5, #0
+ bl FUN_0200C378
+ ldr r1, [r4, #0x20]
+ add r0, r5, #0
+ bl FUN_0200C388
+_02256FAC:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256FB0
+MOD11_02256FB0: ; 0x02256FB0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230078
+ add r6, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230080
+ add r7, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_022300CC
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ bl MOD11_02257FC0
+ add r3, r5, #0
+ add r3, #0x25
+ add r4, r0, #0
+ ldrb r3, [r3]
+ ldr r2, [sp]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_02256C08
+ add r2, r5, #0
+ add r2, #0x25
+ ldrb r2, [r2]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_02256D4C
+ add r3, r5, #0
+ str r0, [r5, #4]
+ add r3, #0x25
+ ldrb r3, [r3]
+ ldr r2, [sp]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_02256CD4
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _0225702A
+ add r5, #0x25
+ mov r1, #0
+ ldrsh r3, [r4, r1]
+ ldrb r2, [r5]
+ ldr r1, _0225702C ; =0x0225E970
+ ldr r0, [r0]
+ ldrsb r1, [r1, r2]
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ sub r1, r3, r1
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ bl FUN_0200C6E4
+_0225702A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225702C: .word 0x0225E970
+
+ thumb_func_start MOD11_02257030
+MOD11_02257030: ; 0x02257030
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_02256F0C
+ add r0, r4, #0
+ bl MOD11_02256F44
+ add r0, r4, #0
+ bl MOD11_02256F30
+ add r0, r4, #0
+ bl MOD11_02256F78
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225704C
+MOD11_0225704C: ; 0x0225704C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ cmp r0, #2
+ beq _0225705C
+ cmp r0, #4
+ bne _02257136
+_0225705C:
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r2, [r0]
+ mov r1, #8
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x1c
+ lsr r2, r1, #0x1f
+ mov r1, #1
+ eor r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1c
+ orr r1, r0
+ add r0, r5, #0
+ add r0, #0x4f
+ strb r1, [r0]
+ ldr r0, [r5, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _022570E8
+ mov r0, #0x38
+ bl MOD11_02257F60
+ add r1, r5, #0
+ add r1, #0x25
+ ldrb r1, [r1]
+ mov r6, #0x19
+ ldr r3, _02257138 ; =0x0225E9B0
+ lsl r2, r1, #2
+ ldrh r3, [r3, r2]
+ lsl r6, r6, #0x16
+ ldr r1, [r4, #4]
+ add r3, r6, r3
+ add r1, r1, r3
+ ldr r3, _0225713C ; =0x0225E9B2
+ ldrh r2, [r3, r2]
+ blx MIi_CpuCopy16
+ mov r0, #0x45
+ bl MOD11_02257F60
+ add r1, r5, #0
+ add r1, #0x25
+ ldrb r1, [r1]
+ ldr r3, _02257140 ; =0x0225EA10
+ lsl r2, r1, #2
+ ldrh r3, [r3, r2]
+ ldr r1, [r4, #4]
+ add r3, r6, r3
+ add r1, r1, r3
+ ldr r3, _02257144 ; =0x0225EA12
+ ldrh r2, [r3, r2]
+ blx MIi_CpuCopy16
+ ldr r1, [r5, #0x28]
+ add r0, r5, #0
+ mov r2, #6
+ bl MOD11_02256D70
+ pop {r4, r5, r6, pc}
+_022570E8:
+ mov r0, #0x42
+ bl MOD11_02257F60
+ add r1, r5, #0
+ add r1, #0x25
+ ldrb r1, [r1]
+ mov r6, #0x19
+ ldr r3, _02257138 ; =0x0225E9B0
+ lsl r2, r1, #2
+ ldrh r3, [r3, r2]
+ lsl r6, r6, #0x16
+ ldr r1, [r4, #4]
+ add r3, r6, r3
+ add r1, r1, r3
+ ldr r3, _0225713C ; =0x0225E9B2
+ ldrh r2, [r3, r2]
+ blx MIi_CpuCopy16
+ mov r0, #0x44
+ bl MOD11_02257F60
+ add r1, r5, #0
+ add r1, #0x25
+ ldrb r1, [r1]
+ ldr r3, _02257148 ; =0x0225E9E0
+ lsl r2, r1, #2
+ ldrh r3, [r3, r2]
+ ldr r1, [r4, #4]
+ add r3, r6, r3
+ add r1, r1, r3
+ ldr r3, _0225714C ; =0x0225E9E2
+ ldrh r2, [r3, r2]
+ blx MIi_CpuCopy16
+ ldr r1, [r5, #0x28]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD11_02256D70
+_02257136:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02257138: .word 0x0225E9B0
+_0225713C: .word 0x0225E9B2
+_02257140: .word 0x0225EA10
+_02257144: .word 0x0225EA12
+_02257148: .word 0x0225E9E0
+_0225714C: .word 0x0225E9E2
+
+ thumb_func_start MOD11_02257150
+MOD11_02257150: ; 0x02257150
+ mov r2, #2
+ lsl r2, r2, #0x1e
+ str r2, [r0, #0x34]
+ ldr r3, [r0, #0x28]
+ add r2, r3, r1
+ bpl _0225715E
+ sub r1, r1, r2
+_0225715E:
+ ldr r2, [r0, #0x2c]
+ add r3, r3, r1
+ cmp r3, r2
+ ble _0225716A
+ sub r2, r3, r2
+ sub r1, r1, r2
+_0225716A:
+ neg r1, r1
+ str r1, [r0, #0x30]
+ ldr r1, [r0, #0x28]
+ cmp r1, #0
+ bge _02257178
+ mov r1, #0
+ str r1, [r0, #0x28]
+_02257178:
+ ldr r2, [r0, #0x2c]
+ ldr r1, [r0, #0x28]
+ cmp r1, r2
+ ble _02257182
+ str r2, [r0, #0x28]
+_02257182:
+ bx lr
+
+ thumb_func_start MOD11_02257184
+MOD11_02257184: ; 0x02257184
+ push {r3, r4, r5, lr}
+ mov r1, #0
+ add r5, r0, #0
+ bl MOD11_02257BEC
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _022571AA
+ ldr r1, [r5, #0x28]
+ ldr r0, [r5, #0x30]
+ mov r2, #2
+ sub r1, r1, r0
+ add r0, r5, #0
+ str r1, [r5, #0x28]
+ bl MOD11_02256D70
+ b _022571B4
+_022571AA:
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #2
+ bl MOD11_02256D70
+_022571B4:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022571B8
+MOD11_022571B8: ; 0x022571B8
+ mov r2, #2
+ lsl r2, r2, #0x1e
+ str r2, [r0, #0x44]
+ ldr r3, [r0, #0x38]
+ add r2, r3, r1
+ bpl _022571C6
+ sub r1, r1, r2
+_022571C6:
+ ldr r2, [r0, #0x3c]
+ add r3, r3, r1
+ cmp r3, r2
+ ble _022571D2
+ sub r2, r3, r2
+ sub r1, r1, r2
+_022571D2:
+ neg r1, r1
+ str r1, [r0, #0x40]
+ ldr r1, [r0, #0x38]
+ cmp r1, #0
+ bge _022571E0
+ mov r1, #0
+ str r1, [r0, #0x38]
+_022571E0:
+ ldr r2, [r0, #0x3c]
+ ldr r1, [r0, #0x38]
+ cmp r1, r2
+ ble _022571EA
+ str r2, [r0, #0x38]
+_022571EA:
+ bx lr
+
+ thumb_func_start MOD11_022571EC
+MOD11_022571EC: ; 0x022571EC
+ push {r4, lr}
+ mov r1, #1
+ add r4, r0, #0
+ bl MOD11_02257BEC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02257206
+ ldr r2, [r4, #0x38]
+ ldr r1, [r4, #0x40]
+ sub r1, r2, r1
+ str r1, [r4, #0x38]
+_02257206:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02257208
+MOD11_02257208: ; 0x02257208
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02257222
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_020200BC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_02257284
+_02257222:
+ ldr r0, [r4, #0xc]
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _02257236
+ add r0, r4, #0
+ bl MOD11_02258188
+_02257236:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02257238
+MOD11_02257238: ; 0x02257238
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0225725C
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_020200BC
+ ldr r0, [r4, #8]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_02020208
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_02257284
+_0225725C:
+ add r0, r4, #0
+ bl MOD11_022581B0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02257264
+MOD11_02257264: ; 0x02257264
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _02257280
+ bl FUN_0200C6B0
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _02257280
+ add r1, r4, #0
+ bl FUN_0200C6B0
+_02257280:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02257284
+MOD11_02257284: ; 0x02257284
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _022572AA
+ ldr r0, [r5, #0xc]
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ beq _022572A2
+ cmp r4, #1
+ beq _022572AA
+_022572A2:
+ ldr r0, [r5, #8]
+ add r1, r4, #0
+ bl FUN_0200C644
+_022572AA:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022572AC
+MOD11_022572AC: ; 0x022572AC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _022572C4
+ bl FUN_0200C644
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02257284
+_022572C4:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022572C8
+MOD11_022572C8: ; 0x022572C8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ add r6, r1, #0
+ add r7, r2, #0
+ cmp r0, #0
+ bne _022572DA
+ bl ErrorHandling
+_022572DA:
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ bl MOD11_02257FC0
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r5, #4]
+ add r1, r1, r6
+ add r2, r2, r7
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _0225732C
+ add r5, #0x25
+ ldrb r3, [r5]
+ mov r1, #0
+ ldr r2, _02257330 ; =0x0225E970
+ ldrsh r1, [r4, r1]
+ ldrsb r2, [r2, r3]
+ ldr r0, [r0]
+ add r1, r1, r6
+ sub r1, r1, r2
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r2, r7
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+_0225732C:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02257330: .word 0x0225E970
+
+ thumb_func_start MOD11_02257334
+MOD11_02257334: ; 0x02257334
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ cmp r4, #0
+ bne _02257342
+ bl ErrorHandling
+_02257342:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _0225734C
+ bl ErrorHandling
+_0225734C:
+ add r0, r4, #0
+ add r0, #0x4f
+ ldrb r1, [r0]
+ mov r0, #2
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0x4f
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ mov r1, #1
+ bic r0, r1
+ lsl r1, r5, #0x18
+ lsr r2, r1, #0x18
+ mov r1, #1
+ and r1, r2
+ orr r1, r0
+ add r0, r4, #0
+ add r0, #0x4f
+ strb r1, [r0]
+ cmp r5, #0
+ bne _022573BA
+ add r0, r4, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ cmp r0, #7
+ bhi _022573AC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02257390: ; jump table
+ .short _022573A0 - _02257390 - 2 ; case 0
+ .short _022573AC - _02257390 - 2 ; case 1
+ .short _022573A0 - _02257390 - 2 ; case 2
+ .short _022573AC - _02257390 - 2 ; case 3
+ .short _022573A0 - _02257390 - 2 ; case 4
+ .short _022573AC - _02257390 - 2 ; case 5
+ .short _022573A0 - _02257390 - 2 ; case 6
+ .short _022573A0 - _02257390 - 2 ; case 7
+_022573A0:
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl MOD11_022572C8
+ b _022573C4
+_022573AC:
+ mov r1, #0x9f
+ add r0, r4, #0
+ mvn r1, r1
+ mov r2, #0
+ bl MOD11_022572C8
+ b _022573C4
+_022573BA:
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_022572C8
+_022573C4:
+ ldr r0, _022573D0 ; =MOD11_022573D8
+ ldr r2, _022573D4 ; =0x000003DE
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022573D0: .word MOD11_022573D8
+_022573D4: .word 0x000003DE
+
+ thumb_func_start MOD11_022573D8
+MOD11_022573D8: ; 0x022573D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ mov r4, #0
+ bl MOD11_02257FC0
+ add r6, r0, #0
+ add r1, sp, #0
+ ldr r0, [r5, #4]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ cmp r0, #7
+ bhi _0225745E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225740E: ; jump table
+ .short _0225741E - _0225740E - 2 ; case 0
+ .short _0225745E - _0225740E - 2 ; case 1
+ .short _0225741E - _0225740E - 2 ; case 2
+ .short _0225745E - _0225740E - 2 ; case 3
+ .short _0225741E - _0225740E - 2 ; case 4
+ .short _0225745E - _0225740E - 2 ; case 5
+ .short _0225741E - _0225740E - 2 ; case 6
+ .short _0225741E - _0225740E - 2 ; case 7
+_0225741E:
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ add r0, sp, #0
+ bne _02257444
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ sub r2, #0x18
+ strh r2, [r0, #2]
+ add r2, r4, #0
+ ldrsh r1, [r0, r1]
+ ldrsh r2, [r6, r2]
+ cmp r1, r2
+ bge _0225749C
+ strh r2, [r0, #2]
+ add r4, r4, #1
+ b _0225749C
+_02257444:
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ add r2, #0x18
+ strh r2, [r0, #2]
+ add r2, r4, #0
+ ldrsh r2, [r6, r2]
+ ldrsh r1, [r0, r1]
+ add r2, #0xa0
+ cmp r1, r2
+ ble _0225749C
+ strh r2, [r0, #2]
+ add r4, r4, #1
+ b _0225749C
+_0225745E:
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ add r0, sp, #0
+ bne _02257484
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ add r2, #0x18
+ strh r2, [r0, #2]
+ mov r2, #0
+ ldrsh r1, [r0, r1]
+ ldrsh r2, [r6, r2]
+ cmp r1, r2
+ ble _0225749C
+ strh r2, [r0, #2]
+ add r4, r4, #1
+ b _0225749C
+_02257484:
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ sub r2, #0x18
+ strh r2, [r0, #2]
+ mov r2, #0
+ ldrsh r2, [r6, r2]
+ ldrsh r1, [r0, r1]
+ sub r2, #0x18
+ cmp r1, r2
+ bge _0225749C
+ strh r2, [r0, #2]
+ add r4, r4, #1
+_0225749C:
+ add r2, sp, #0
+ mov r1, #2
+ mov r3, #0
+ ldrsh r1, [r2, r1]
+ ldrsh r2, [r2, r3]
+ ldr r0, [r5, #4]
+ bl FUN_0200C714
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _022574D0
+ add r6, sp, #0
+ mov r1, #2
+ ldrsh r3, [r6, r1]
+ add r1, r5, #0
+ add r1, #0x25
+ ldrb r2, [r1]
+ ldr r1, _022574EC ; =0x0225E970
+ ldrsb r1, [r1, r2]
+ mov r2, #0
+ ldrsh r2, [r6, r2]
+ sub r1, r3, r1
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+_022574D0:
+ cmp r4, #0
+ ble _022574E8
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r1, [r0]
+ mov r0, #2
+ add r5, #0x4f
+ orr r0, r1
+ strb r0, [r5]
+ add r0, r7, #0
+ bl FUN_0200CAB4
+_022574E8:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022574EC: .word 0x0225E970
+
+ thumb_func_start MOD11_022574F0
+MOD11_022574F0: ; 0x022574F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_0222FF68
+ add r6, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_022300C4
+ add r7, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230138
+ add r4, r0, #0
+ mov r0, #0x16
+ mov r1, #5
+ bl FUN_020219F4
+ mov r1, #0xf1
+ str r0, [sp, #0x18]
+ add r0, r7, #0
+ lsl r1, r1, #2
+ bl FUN_0200A914
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0x24
+ add r2, #0x26
+ str r0, [sp, #0x1c]
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230014
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r1, sp, #0x24
+ mov r2, #8
+ mov r3, #2
+ bl FUN_020190EC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02257630 ; =0x000E020F
+ ldr r2, [sp, #0x18]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, sp, #0x24
+ add r3, r1, #0
+ bl FUN_0201BE3C
+ ldr r0, [r5, #4]
+ ldr r6, [sp, #0x30]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r4, r0, #0
+ mov r0, #1
+ lsl r0, r0, #8
+ add r0, r6, r0
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ ldr r1, _02257634 ; =0x0225EC88
+ ldr r3, [r4, #4]
+ lsl r7, r0, #4
+ ldrh r2, [r1, r7]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r1, r2
+ ldr r2, _02257638 ; =0x0225EC8A
+ add r0, r6, #0
+ ldrh r2, [r2, r7]
+ add r1, r3, r1
+ blx MIi_CpuCopy16
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ ldr r1, _0225763C ; =0x0225EC8C
+ ldr r3, [r4, #4]
+ lsl r7, r0, #4
+ ldrh r2, [r1, r7]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r1, r2
+ ldr r2, _02257640 ; =0x0225EC8E
+ ldr r0, [sp, #0x20]
+ ldrh r2, [r2, r7]
+ add r1, r3, r1
+ blx MIi_CpuCopy16
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ ldr r3, _02257644 ; =0x0225EC90
+ ldr r1, [r4, #4]
+ lsl r2, r0, #4
+ ldr r0, _02257638 ; =0x0225EC8A
+ ldrh r0, [r0, r2]
+ add r0, r6, r0
+ ldrh r6, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r3, r3, r6
+ add r1, r1, r3
+ ldr r3, _02257648 ; =0x0225EC92
+ ldrh r2, [r3, r2]
+ blx MIi_CpuCopy16
+ add r5, #0x25
+ ldrb r0, [r5]
+ ldr r4, [r4, #4]
+ lsl r2, r0, #4
+ ldr r0, _02257640 ; =0x0225EC8E
+ ldrh r1, [r0, r2]
+ ldr r0, [sp, #0x20]
+ add r0, r0, r1
+ ldr r1, _0225764C ; =0x0225EC94
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r1, r3
+ ldr r3, _02257650 ; =0x0225EC96
+ add r1, r4, r1
+ ldrh r2, [r3, r2]
+ blx MIi_CpuCopy16
+ add r0, sp, #0x24
+ bl FUN_02019178
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02257630: .word 0x000E020F
+_02257634: .word 0x0225EC88
+_02257638: .word 0x0225EC8A
+_0225763C: .word 0x0225EC8C
+_02257640: .word 0x0225EC8E
+_02257644: .word 0x0225EC90
+_02257648: .word 0x0225EC92
+_0225764C: .word 0x0225EC94
+_02257650: .word 0x0225EC96
+
+ thumb_func_start MOD11_02257654
+MOD11_02257654: ; 0x02257654
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ add r0, #0x49
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02257666
+ mov r0, #0x3e
+ b _02257670
+_02257666:
+ cmp r0, #1
+ bne _0225766E
+ mov r0, #0x3c
+ b _02257670
+_0225766E:
+ mov r0, #0x40
+_02257670:
+ bl MOD11_02257F60
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #0x80
+ bl FUN_02016998
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ ldr r1, _0225774C ; =0x0225EAB8
+ add r0, #0x25
+ ldrb r0, [r0]
+ lsl r2, r0, #3
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ ldr r0, [sp, #4]
+ add r1, r1, r3
+ ldr r3, _02257750 ; =0x0225EABA
+ ldr r0, [r0, #4]
+ ldrh r2, [r3, r2]
+ add r0, r0, r1
+ add r1, r7, #0
+ blx MIi_CpuCopy16
+ ldr r0, [sp]
+ ldr r1, _02257754 ; =0x0225EABC
+ add r0, #0x25
+ ldrb r0, [r0]
+ lsl r2, r0, #3
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ ldr r0, [sp, #4]
+ lsl r1, r1, #0x16
+ add r1, r1, r3
+ ldr r3, _02257758 ; =0x0225EABE
+ ldr r0, [r0, #4]
+ ldrh r2, [r3, r2]
+ add r0, r0, r1
+ add r1, r7, #0
+ add r1, #0x40
+ blx MIi_CpuCopy16
+ mov r2, #0
+ add r1, r2, #0
+_022576D6:
+ mov r0, #0
+ add r3, r7, r1
+_022576DA:
+ ldrb r5, [r4, r2]
+ add r6, r4, r2
+ add r0, r0, #1
+ strb r5, [r3, #0x10]
+ ldrb r6, [r6, #0x10]
+ add r5, r3, #0
+ add r5, #0x40
+ strb r6, [r5]
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r0, #0x10
+ blt _022576DA
+ add r1, #0x20
+ add r2, #0x10
+ cmp r1, #0x40
+ blt _022576D6
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ add r0, #0x25
+ ldrb r0, [r0]
+ ldr r3, _0225774C ; =0x0225EAB8
+ ldr r1, [r1, #4]
+ lsl r2, r0, #3
+ ldrh r4, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r3, r3, r4
+ add r1, r1, r3
+ ldr r3, _02257750 ; =0x0225EABA
+ add r0, r7, #0
+ ldrh r2, [r3, r2]
+ blx MIi_CpuCopy16
+ ldr r0, [sp]
+ ldr r3, _02257754 ; =0x0225EABC
+ add r0, #0x25
+ str r0, [sp]
+ ldrb r0, [r0]
+ ldr r1, [sp, #4]
+ lsl r2, r0, #3
+ ldrh r4, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r0, r7, #0
+ ldr r1, [r1, #4]
+ add r3, r3, r4
+ add r1, r1, r3
+ ldr r3, _02257758 ; =0x0225EABE
+ add r0, #0x40
+ ldrh r2, [r3, r2]
+ blx MIi_CpuCopy16
+ add r0, r7, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225774C: .word 0x0225EAB8
+_02257750: .word 0x0225EABA
+_02257754: .word 0x0225EABC
+_02257758: .word 0x0225EABE
+
+ thumb_func_start MOD11_0225775C
+MOD11_0225775C: ; 0x0225775C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #4]
+ mov r0, #5
+ mov r1, #0x60
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #0xc0
+ bl FUN_02016998
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #0xff
+ mov r2, #0x60
+ blx MI_CpuFill8
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0xc]
+ bl MOD11_022300BC
+ ldr r1, [sp, #4]
+ str r4, [sp]
+ add r1, #0x48
+ ldrb r1, [r1]
+ mov r2, #3
+ mov r3, #0
+ bl FUN_0200BAAC
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ ldr r1, _0225786C ; =0x0225EA28
+ add r0, #0x25
+ ldrb r0, [r0]
+ lsl r2, r0, #3
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ ldr r0, [sp, #8]
+ add r1, r1, r3
+ ldr r3, _02257870 ; =0x0225EA2A
+ ldr r0, [r0, #4]
+ ldrh r2, [r3, r2]
+ add r0, r0, r1
+ add r1, r7, #0
+ blx MIi_CpuCopy16
+ ldr r0, [sp, #4]
+ ldr r1, _02257874 ; =0x0225EA2C
+ add r0, #0x25
+ ldrb r0, [r0]
+ lsl r2, r0, #3
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ ldr r0, [sp, #8]
+ lsl r1, r1, #0x16
+ add r1, r1, r3
+ ldr r3, _02257878 ; =0x0225EA2E
+ ldr r0, [r0, #4]
+ ldrh r2, [r3, r2]
+ add r0, r0, r1
+ add r1, r7, #0
+ add r1, #0x60
+ blx MIi_CpuCopy16
+ mov r2, #0
+ add r1, r2, #0
+_022577EE:
+ mov r0, #0
+ add r3, r7, r1
+_022577F2:
+ ldrb r5, [r4, r2]
+ add r6, r4, r2
+ add r0, r0, #1
+ strb r5, [r3, #0x10]
+ ldrb r6, [r6, #0x10]
+ add r5, r3, #0
+ add r5, #0x60
+ strb r6, [r5]
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r0, #0x10
+ blt _022577F2
+ add r1, #0x20
+ add r2, #0x10
+ cmp r1, #0x60
+ blt _022577EE
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ add r0, #0x25
+ ldrb r0, [r0]
+ ldr r3, _0225786C ; =0x0225EA28
+ ldr r1, [r1, #4]
+ lsl r2, r0, #3
+ ldrh r5, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r3, r3, r5
+ add r1, r1, r3
+ ldr r3, _02257870 ; =0x0225EA2A
+ add r0, r7, #0
+ ldrh r2, [r3, r2]
+ blx MIi_CpuCopy16
+ ldr r0, [sp, #4]
+ ldr r3, _02257874 ; =0x0225EA2C
+ add r0, #0x25
+ str r0, [sp, #4]
+ ldrb r0, [r0]
+ ldr r1, [sp, #8]
+ lsl r2, r0, #3
+ ldrh r5, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r0, r7, #0
+ ldr r1, [r1, #4]
+ add r3, r3, r5
+ add r1, r1, r3
+ ldr r3, _02257878 ; =0x0225EA2E
+ add r0, #0x60
+ ldrh r2, [r3, r2]
+ blx MIi_CpuCopy16
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0225786C: .word 0x0225EA28
+_02257870: .word 0x0225EA2A
+_02257874: .word 0x0225EA2C
+_02257878: .word 0x0225EA2E
+
+ thumb_func_start MOD11_0225787C
+MOD11_0225787C: ; 0x0225787C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #5
+ mov r1, #0x60
+ bl FUN_02016998
+ mov r1, #0xff
+ mov r2, #0x60
+ add r4, r0, #0
+ blx MI_CpuFill8
+ ldr r0, [r5, #0xc]
+ bl MOD11_022300B4
+ str r4, [sp]
+ add r1, r6, #0
+ mov r2, #3
+ mov r3, #1
+ bl FUN_0200BAAC
+ ldr r0, [r5, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ mov r7, #0x19
+ ldr r3, _022578F8 ; =0x0225EA58
+ lsl r2, r0, #3
+ ldrh r3, [r3, r2]
+ lsl r7, r7, #0x16
+ ldr r1, [r6, #4]
+ add r3, r7, r3
+ add r1, r1, r3
+ ldr r3, _022578FC ; =0x0225EA5A
+ add r0, r4, #0
+ ldrh r2, [r3, r2]
+ blx MIi_CpuCopy16
+ add r5, #0x25
+ ldrb r0, [r5]
+ ldr r3, _02257900 ; =0x0225EA5C
+ ldr r1, [r6, #4]
+ lsl r2, r0, #3
+ ldrh r3, [r3, r2]
+ ldr r0, _022578FC ; =0x0225EA5A
+ add r3, r7, r3
+ add r1, r1, r3
+ ldrh r0, [r0, r2]
+ ldr r3, _02257904 ; =0x0225EA5E
+ ldrh r2, [r3, r2]
+ add r0, r4, r0
+ blx MIi_CpuCopy16
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022578F8: .word 0x0225EA58
+_022578FC: .word 0x0225EA5A
+_02257900: .word 0x0225EA5C
+_02257904: .word 0x0225EA5E
+
+ thumb_func_start MOD11_02257908
+MOD11_02257908: ; 0x02257908
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #5
+ mov r1, #0x60
+ bl FUN_02016998
+ mov r1, #0xff
+ mov r2, #0x60
+ add r4, r0, #0
+ blx MI_CpuFill8
+ ldr r0, [r5, #0xc]
+ bl MOD11_022300B4
+ str r4, [sp]
+ ldr r1, [r5, #0x2c]
+ mov r2, #3
+ mov r3, #0
+ bl FUN_0200BAAC
+ ldr r0, [r5, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r1, r0, #0
+ add r5, #0x25
+ ldrb r0, [r5]
+ ldr r3, _02257960 ; =0x0225E9F8
+ ldr r1, [r1, #4]
+ lsl r2, r0, #2
+ ldrh r5, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r3, r5, r3
+ add r1, r1, r3
+ ldr r3, _02257964 ; =0x0225E9FA
+ add r0, r4, #0
+ ldrh r2, [r3, r2]
+ blx MIi_CpuCopy16
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02257960: .word 0x0225E9F8
+_02257964: .word 0x0225E9FA
+
+ thumb_func_start MOD11_02257968
+MOD11_02257968: ; 0x02257968
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0x4b
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _0225797C
+ mov r0, #0x3b
+ bl MOD11_02257F60
+ b _02257982
+_0225797C:
+ mov r0, #0x38
+ bl MOD11_02257F60
+_02257982:
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r5, #0x25
+ add r1, r0, #0
+ ldrb r0, [r5]
+ lsl r2, r0, #2
+ add r0, r4, #0
+ ldr r4, [r1, #4]
+ ldr r1, _022579B0 ; =0x0225E9C8
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r3, r1
+ ldr r3, _022579B4 ; =0x0225E9CA
+ add r1, r4, r1
+ ldrh r2, [r3, r2]
+ blx MIi_CpuCopy16
+ pop {r3, r4, r5, pc}
+ nop
+_022579B0: .word 0x0225E9C8
+_022579B4: .word 0x0225E9CA
+
+ thumb_func_start MOD11_022579B8
+MOD11_022579B8: ; 0x022579B8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ bl MOD11_02257F60
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r5, #0x25
+ add r1, r0, #0
+ ldrb r0, [r5]
+ lsl r2, r0, #2
+ add r0, r4, #0
+ ldr r4, [r1, #4]
+ ldr r1, _022579F0 ; =0x0225E998
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r3, r1
+ ldr r3, _022579F4 ; =0x0225E99A
+ add r1, r4, r1
+ ldrh r2, [r3, r2]
+ blx MIi_CpuCopy16
+ pop {r3, r4, r5, pc}
+ nop
+_022579F0: .word 0x0225E998
+_022579F4: .word 0x0225E99A
+
+ thumb_func_start MOD11_022579F8
+MOD11_022579F8: ; 0x022579F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ add r5, r1, #0
+ bl MOD11_0222FF68
+ add r6, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD11_022300C4
+ mov r1, #1
+ lsl r1, r1, #0xa
+ add r2, r5, #0
+ tst r2, r1
+ beq _02257A20
+ sub r1, #0x4a
+ bl FUN_0200A914
+ b _02257A26
+_02257A20:
+ add r1, #0xc4
+ bl FUN_0200A914
+_02257A26:
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r1, sp, #0x18
+ mov r2, #0xd
+ mov r3, #2
+ bl FUN_020190EC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02257AD0 ; =0x000E020F
+ add r2, r7, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, sp, #0x18
+ add r3, r1, #0
+ bl FUN_0201BE3C
+ ldr r0, [r4, #4]
+ ldr r5, [sp, #0x24]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r4, r0, #0
+ mov r2, #0x1a
+ mov r6, #0x19
+ lsl r2, r2, #4
+ lsl r6, r6, #0x16
+ add r2, #0xa0
+ ldr r1, [r4, #4]
+ add r2, r6, r2
+ add r1, r1, r2
+ add r0, r5, #0
+ mov r2, #0xc0
+ blx MIi_CpuCopy16
+ mov r2, #0xd
+ mov r0, #0x1a
+ lsl r2, r2, #6
+ lsl r0, r0, #4
+ ldr r1, [r4, #4]
+ add r2, r6, r2
+ add r1, r1, r2
+ add r0, r5, r0
+ mov r2, #0xc0
+ blx MIi_CpuCopy16
+ mov r2, #0xa
+ lsl r2, r2, #8
+ add r0, r5, #0
+ ldr r1, [r4, #4]
+ add r2, r6, r2
+ add r1, r1, r2
+ add r0, #0xc0
+ mov r2, #0xe0
+ blx MIi_CpuCopy16
+ mov r0, #0x1a
+ mov r1, #0xb
+ lsl r0, r0, #4
+ lsl r1, r1, #8
+ add r0, r5, r0
+ ldr r2, [r4, #4]
+ add r1, r6, r1
+ add r1, r2, r1
+ add r0, #0xc0
+ mov r2, #0xe0
+ blx MIi_CpuCopy16
+ add r0, sp, #0x18
+ bl FUN_02019178
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02257AD0: .word 0x000E020F
+
+ thumb_func_start MOD11_02257AD4
+MOD11_02257AD4: ; 0x02257AD4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ add r5, r1, #0
+ bl MOD11_0222FF68
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #0xc]
+ bl MOD11_022300C4
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0xc]
+ bl MOD11_02230138
+ add r7, r0, #0
+ mov r0, #0x1e
+ mov r1, #5
+ bl FUN_020219F4
+ mov r1, #1
+ add r6, r0, #0
+ lsl r1, r1, #0xa
+ add r0, r5, #0
+ tst r0, r1
+ beq _02257B14
+ ldr r0, [sp, #0x20]
+ sub r1, #0x49
+ bl FUN_0200A914
+ str r0, [sp, #0x18]
+ b _02257B1E
+_02257B14:
+ ldr r0, [sp, #0x20]
+ add r1, #0xc5
+ bl FUN_0200A914
+ str r0, [sp, #0x18]
+_02257B1E:
+ mov r0, #1
+ str r0, [sp]
+ add r2, r4, #0
+ str r0, [sp, #4]
+ add r2, #0x27
+ ldrb r2, [r2]
+ add r0, r7, #0
+ mov r1, #0
+ mov r3, #2
+ bl FUN_0200AD38
+ ldr r2, [sp, #0x18]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ add r1, sp, #0x24
+ mov r2, #0xd
+ mov r3, #2
+ bl FUN_020190EC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02257BE8 ; =0x000E020F
+ add r2, r6, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, sp, #0x24
+ add r3, r1, #0
+ bl FUN_0201BE3C
+ ldr r0, [r4, #4]
+ ldr r5, [sp, #0x30]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r4, r0, #0
+ mov r7, #0x19
+ mov r2, #0x11
+ lsl r7, r7, #0x16
+ lsl r2, r2, #6
+ ldr r1, [r4, #4]
+ add r2, r7, r2
+ add r1, r1, r2
+ add r0, r5, #0
+ mov r2, #0xc0
+ blx MIi_CpuCopy16
+ mov r2, #0x15
+ mov r0, #0x1a
+ lsl r2, r2, #6
+ lsl r0, r0, #4
+ ldr r1, [r4, #4]
+ add r2, r7, r2
+ add r1, r1, r2
+ add r0, r5, r0
+ mov r2, #0xc0
+ blx MIi_CpuCopy16
+ mov r2, #3
+ lsl r2, r2, #0xa
+ add r0, r5, #0
+ ldr r1, [r4, #4]
+ add r2, r7, r2
+ add r1, r1, r2
+ add r0, #0xc0
+ mov r2, #0xe0
+ blx MIi_CpuCopy16
+ mov r0, #0x1a
+ mov r1, #0xd
+ lsl r0, r0, #4
+ lsl r1, r1, #8
+ add r0, r5, r0
+ ldr r2, [r4, #4]
+ add r1, r7, r1
+ add r1, r2, r1
+ add r0, #0xc0
+ mov r2, #0xe0
+ blx MIi_CpuCopy16
+ add r0, sp, #0x24
+ bl FUN_02019178
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02257BE8: .word 0x000E020F
+
+ thumb_func_start MOD11_02257BEC
+MOD11_02257BEC: ; 0x02257BEC
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r1, #0
+ bne _02257C10
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r3, r5, #0
+ ldr r0, [r5, #0x2c]
+ ldr r1, [r5, #0x28]
+ ldr r2, [r5, #0x30]
+ add r3, #0x34
+ bl MOD11_02257DE8
+ add r6, r0, #0
+ b _02257C48
+_02257C10:
+ ldr r0, [r5, #0x38]
+ ldr r1, [r5, #0x40]
+ ldr r2, [r5, #0x3c]
+ mov r3, #0xb
+ bl MOD11_02257F20
+ add r1, r0, #0
+ bne _02257C22
+ mov r1, #1
+_02257C22:
+ ldr r6, [r5, #0x40]
+ add r0, r6, #0
+ blx _s32_div_f
+ blx abs
+ mov r1, #0xb
+ lsl r0, r0, #0x10
+ add r3, r5, #0
+ str r1, [sp]
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x3c]
+ ldr r1, [r5, #0x38]
+ add r2, r6, #0
+ add r3, #0x44
+ bl MOD11_02257DE8
+ add r6, r0, #0
+_02257C48:
+ cmp r4, #0
+ bne _02257C5A
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ beq _02257C64
+_02257C5A:
+ lsl r1, r4, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl MOD11_02257C80
+_02257C64:
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ bne _02257C7A
+ cmp r4, #0
+ bne _02257C76
+ mov r0, #0
+ str r0, [r5, #0x34]
+ b _02257C7A
+_02257C76:
+ mov r0, #0
+ str r0, [r5, #0x44]
+_02257C7A:
+ add r0, r6, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02257C80
+MOD11_02257C80: ; 0x02257C80
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ add r4, r1, #0
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r5, r0, #0
+ cmp r4, #0
+ beq _02257C9E
+ cmp r4, #1
+ beq _02257D50
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+_02257C9E:
+ add r0, sp, #0x10
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ add r3, r6, #0
+ ldr r0, [r6, #0x2c]
+ ldr r1, [r6, #0x28]
+ ldr r2, [r6, #0x30]
+ add r3, #0x34
+ bl MOD11_02257EA4
+ mov r1, #0x30
+ bl FUN_02079A24
+ cmp r0, #1
+ beq _02257CCE
+ cmp r0, #2
+ beq _02257CCA
+ cmp r0, #3
+ bne _02257CCE
+ mov r0, #2
+ b _02257CD0
+_02257CCA:
+ mov r0, #0xb
+ b _02257CD0
+_02257CCE:
+ mov r0, #0x14
+_02257CD0:
+ bl MOD11_02257F60
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ mov r4, #0
+ lsl r1, r0, #3
+ ldr r0, _02257DE0 ; =0x0225EA8A
+ ldrh r0, [r0, r1]
+ lsr r7, r0, #5
+_02257CE6:
+ cmp r4, r7
+ add r0, sp, #0x10
+ bge _02257D16
+ add r2, r6, #0
+ add r2, #0x25
+ ldrb r2, [r2]
+ ldrb r0, [r0, r4]
+ lsl r3, r2, #3
+ ldr r2, _02257DE4 ; =0x0225EA88
+ lsl r1, r0, #5
+ ldrh r3, [r2, r3]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x19
+ lsl r2, r2, #0x16
+ add r0, r0, r1
+ add r3, r2, r3
+ lsl r2, r4, #5
+ ldr r1, [r5, #4]
+ add r2, r3, r2
+ add r1, r1, r2
+ mov r2, #0x20
+ blx MIi_CpuCopy16
+ b _02257D42
+_02257D16:
+ ldrb r0, [r0, r4]
+ ldr r2, [r5, #4]
+ lsl r1, r0, #5
+ ldr r0, [sp, #0xc]
+ add r0, r0, r1
+ add r1, r6, #0
+ add r1, #0x25
+ ldrb r1, [r1]
+ lsl r3, r1, #3
+ ldr r1, _02257DE4 ; =0x0225EA88
+ add r1, r1, r3
+ ldrh r3, [r1, #4]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r1, r3
+ sub r3, r4, r7
+ lsl r3, r3, #5
+ add r1, r1, r3
+ add r1, r2, r1
+ mov r2, #0x20
+ blx MIi_CpuCopy16
+_02257D42:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #6
+ blo _02257CE6
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+_02257D50:
+ add r0, sp, #0x10
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ add r3, r6, #0
+ ldr r0, [r6, #0x3c]
+ ldr r1, [r6, #0x38]
+ ldr r2, [r6, #0x40]
+ add r3, #0x44
+ bl MOD11_02257EA4
+ add r6, #0x48
+ ldrb r0, [r6]
+ cmp r0, #0x64
+ bne _02257D80
+ mov r0, #0
+ add r2, r0, #0
+ add r1, sp, #0x10
+_02257D74:
+ strb r2, [r1, r0]
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0xb
+ blo _02257D74
+_02257D80:
+ mov r0, #0x1d
+ bl MOD11_02257F60
+ add r6, r0, #0
+ mov r1, #0x19
+ mov r0, #0x1a
+ lsl r1, r1, #0x16
+ lsl r0, r0, #6
+ add r0, r1, r0
+ str r0, [sp, #8]
+ mov r0, #0xe
+ lsl r0, r0, #8
+ mov r4, #0
+ add r7, r1, r0
+_02257D9C:
+ cmp r4, #4
+ add r0, sp, #0x10
+ bhs _02257DBA
+ ldrb r0, [r0, r4]
+ ldr r1, [sp, #8]
+ lsl r2, r4, #5
+ lsl r0, r0, #5
+ add r1, r1, r2
+ ldr r3, [r5, #4]
+ add r0, r6, r0
+ add r1, r3, r1
+ mov r2, #0x20
+ blx MIi_CpuCopy16
+ b _02257DD0
+_02257DBA:
+ ldrb r0, [r0, r4]
+ sub r2, r4, #4
+ lsl r2, r2, #5
+ lsl r0, r0, #5
+ ldr r1, [r5, #4]
+ add r2, r7, r2
+ add r1, r1, r2
+ add r0, r6, r0
+ mov r2, #0x20
+ blx MIi_CpuCopy16
+_02257DD0:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0xb
+ blo _02257D9C
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02257DE0: .word 0x0225EA8A
+_02257DE4: .word 0x0225EA88
+
+ thumb_func_start MOD11_02257DE8
+MOD11_02257DE8: ; 0x02257DE8
+ push {r4, r5, r6, lr}
+ add r6, r2, #0
+ add r2, sp, #0
+ add r5, r3, #0
+ ldrb r2, [r2, #0x10]
+ mov r3, #2
+ ldr r4, [r5]
+ lsl r2, r2, #0x1b
+ lsl r3, r3, #0x1e
+ lsr r2, r2, #0x18
+ cmp r4, r3
+ bne _02257E0C
+ cmp r0, r2
+ bge _02257E0A
+ lsl r3, r1, #8
+ str r3, [r5]
+ b _02257E0C
+_02257E0A:
+ str r1, [r5]
+_02257E0C:
+ sub r4, r1, r6
+ bpl _02257E14
+ mov r4, #0
+ b _02257E1A
+_02257E14:
+ cmp r4, r0
+ ble _02257E1A
+ add r4, r0, #0
+_02257E1A:
+ cmp r0, r2
+ bge _02257E32
+ ldr r3, [r5]
+ asr r1, r3, #8
+ cmp r4, r1
+ bne _02257E3E
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x18
+ bne _02257E3E
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_02257E32:
+ ldr r1, [r5]
+ cmp r4, r1
+ bne _02257E3E
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_02257E3E:
+ cmp r0, r2
+ bge _02257E7E
+ lsl r0, r0, #8
+ add r1, r2, #0
+ blx _s32_div_f
+ cmp r6, #0
+ ldr r1, [r5]
+ bge _02257E62
+ add r0, r1, r0
+ str r0, [r5]
+ asr r0, r0, #8
+ cmp r0, r4
+ blt _02257EA2
+ lsl r0, r4, #8
+ str r0, [r5]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02257E62:
+ sub r1, r1, r0
+ str r1, [r5]
+ asr r0, r1, #8
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, #0
+ ble _02257E72
+ add r0, r0, #1
+_02257E72:
+ cmp r0, r4
+ bgt _02257EA2
+ lsl r0, r4, #8
+ str r0, [r5]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02257E7E:
+ cmp r6, #0
+ ldr r1, [r5]
+ add r0, sp, #0
+ bge _02257E94
+ ldrh r0, [r0, #0x14]
+ add r0, r1, r0
+ str r0, [r5]
+ cmp r0, r4
+ ble _02257EA0
+ str r4, [r5]
+ b _02257EA0
+_02257E94:
+ ldrh r0, [r0, #0x14]
+ sub r0, r1, r0
+ str r0, [r5]
+ cmp r0, r4
+ bge _02257EA0
+ str r4, [r5]
+_02257EA0:
+ ldr r0, [r5]
+_02257EA2:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02257EA4
+MOD11_02257EA4: ; 0x02257EA4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r5, [sp, #0x18]
+ sub r7, r1, r2
+ bpl _02257EB2
+ mov r7, #0
+ b _02257EB8
+_02257EB2:
+ cmp r7, r6
+ ble _02257EB8
+ add r7, r6, #0
+_02257EB8:
+ add r0, sp, #8
+ ldrb r4, [r0, #0x14]
+ mov r1, #0
+ lsl r2, r4, #3
+ cmp r4, #0
+ ble _02257ECE
+ add r0, r1, #0
+_02257EC6:
+ strb r0, [r5, r1]
+ add r1, r1, #1
+ cmp r1, r4
+ blt _02257EC6
+_02257ECE:
+ cmp r6, r2
+ ldr r1, [r3]
+ bhs _02257EE2
+ add r0, r1, #0
+ mul r0, r2
+ add r1, r6, #0
+ blx _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
+_02257EEC:
+ add r2, r0, #0
+ cmp r0, #0
+ bne _02257EFC
+ cmp r7, #0
+ ble _02257EFC
+ mov r2, #1
+ strb r2, [r5]
+ b _02257F18
+_02257EFC:
+ mov r3, #0
+ cmp r4, #0
+ ble _02257F18
+ mov r1, #8
+_02257F04:
+ cmp r0, #8
+ blo _02257F0E
+ strb r1, [r5, r3]
+ sub r0, #8
+ b _02257F12
+_02257F0E:
+ strb r0, [r5, r3]
+ b _02257F18
+_02257F12:
+ add r3, r3, #1
+ cmp r3, r4
+ blt _02257F04
+_02257F18:
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02257F20
+MOD11_02257F20: ; 0x02257F20
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ lsl r0, r3, #0x1b
+ add r5, r2, #0
+ lsr r6, r0, #0x18
+ sub r4, r7, r1
+ bpl _02257F32
+ mov r4, #0
+ b _02257F38
+_02257F32:
+ cmp r4, r5
+ ble _02257F38
+ add r4, r5, #0
+_02257F38:
+ add r0, r7, #0
+ mul r0, r6
+ add r1, r5, #0
+ blx _s32_div_f
+ add r7, r0, #0
+ add r0, r4, #0
+ mul r0, r6
+ add r1, r5, #0
+ blx _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
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02257F60
+MOD11_02257F60: ; 0x02257F60
+ ldr r1, _02257F68 ; =0x0225ECE8
+ lsl r0, r0, #5
+ add r0, r1, r0
+ bx lr
+ .align 2, 0
+_02257F68: .word 0x0225ECE8
+
+ thumb_func_start MOD11_02257F6C
+MOD11_02257F6C: ; 0x02257F6C
+ push {r3, lr}
+ cmp r0, #5
+ bhi _02257FB8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02257F7E: ; jump table
+ .short _02257F8A - _02257F7E - 2 ; case 0
+ .short _02257FA4 - _02257F7E - 2 ; case 1
+ .short _02257FA8 - _02257F7E - 2 ; case 2
+ .short _02257FAC - _02257F7E - 2 ; case 3
+ .short _02257FB0 - _02257F7E - 2 ; case 4
+ .short _02257FB4 - _02257F7E - 2 ; case 5
+_02257F8A:
+ mov r0, #2
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _02257F96
+ mov r0, #7
+ pop {r3, pc}
+_02257F96:
+ mov r0, #0x20
+ tst r0, r1
+ beq _02257FA0
+ mov r0, #6
+ pop {r3, pc}
+_02257FA0:
+ mov r0, #0
+ pop {r3, pc}
+_02257FA4:
+ mov r0, #1
+ pop {r3, pc}
+_02257FA8:
+ mov r0, #2
+ pop {r3, pc}
+_02257FAC:
+ mov r0, #3
+ pop {r3, pc}
+_02257FB0:
+ mov r0, #4
+ pop {r3, pc}
+_02257FB4:
+ mov r0, #5
+ pop {r3, pc}
+_02257FB8:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02257FC0
+MOD11_02257FC0: ; 0x02257FC0
+ push {r3, lr}
+ cmp r0, #7
+ bhi _02257FFE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02257FD2: ; jump table
+ .short _02257FE2 - _02257FD2 - 2 ; case 0
+ .short _02257FE6 - _02257FD2 - 2 ; case 1
+ .short _02257FEA - _02257FD2 - 2 ; case 2
+ .short _02257FEE - _02257FD2 - 2 ; case 3
+ .short _02257FF2 - _02257FD2 - 2 ; case 4
+ .short _02257FF6 - _02257FD2 - 2 ; case 5
+ .short _02257FFA - _02257FD2 - 2 ; case 6
+ .short _02257FFA - _02257FD2 - 2 ; case 7
+_02257FE2:
+ ldr r0, _02258008 ; =0x0225EBEC
+ pop {r3, pc}
+_02257FE6:
+ ldr r0, _0225800C ; =0x0225EC20
+ pop {r3, pc}
+_02257FEA:
+ ldr r0, _02258010 ; =0x0225EAE8
+ pop {r3, pc}
+_02257FEE:
+ ldr r0, _02258014 ; =0x0225EB1C
+ pop {r3, pc}
+_02257FF2:
+ ldr r0, _02258018 ; =0x0225EB84
+ pop {r3, pc}
+_02257FF6:
+ ldr r0, _0225801C ; =0x0225EC54
+ pop {r3, pc}
+_02257FFA:
+ ldr r0, _02258020 ; =0x0225EBB8
+ pop {r3, pc}
+_02257FFE:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_02258008: .word 0x0225EBEC
+_0225800C: .word 0x0225EC20
+_02258010: .word 0x0225EAE8
+_02258014: .word 0x0225EB1C
+_02258018: .word 0x0225EB84
+_0225801C: .word 0x0225EC54
+_02258020: .word 0x0225EBB8
+
+ thumb_func_start MOD11_02258024
+MOD11_02258024: ; 0x02258024
+ push {r3, lr}
+ cmp r0, #7
+ bhi _0225804E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02258036: ; jump table
+ .short _02258046 - _02258036 - 2 ; case 0
+ .short _0225804A - _02258036 - 2 ; case 1
+ .short _02258046 - _02258036 - 2 ; case 2
+ .short _0225804A - _02258036 - 2 ; case 3
+ .short _02258046 - _02258036 - 2 ; case 4
+ .short _0225804A - _02258036 - 2 ; case 5
+ .short _02258046 - _02258036 - 2 ; case 6
+ .short _02258046 - _02258036 - 2 ; case 7
+_02258046:
+ ldr r0, _02258058 ; =0x0225EB50
+ pop {r3, pc}
+_0225804A:
+ mov r0, #0
+ pop {r3, pc}
+_0225804E:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_02258058: .word 0x0225EB50
+
+ thumb_func_start MOD11_0225805C
+MOD11_0225805C: ; 0x0225805C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0
+ strb r0, [r6]
+ mov r0, #5
+ mov r1, #0xc
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0xc
+ add r4, r0, #0
+ blx MI_CpuFill8
+ mov r2, #0xfa
+ str r5, [r4]
+ ldr r0, _0225808C ; =MOD11_02258090
+ add r1, r4, #0
+ lsl r2, r2, #2
+ str r6, [r4, #4]
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ nop
+_0225808C: .word MOD11_02258090
+
+ thumb_func_start MOD11_02258090
+MOD11_02258090: ; 0x02258090
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #0xc]
+ bl MOD11_02230080
+ add r5, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #0xc]
+ bl MOD11_022300CC
+ add r6, r0, #0
+ ldrb r0, [r4, #8]
+ cmp r0, #0
+ beq _022580BC
+ cmp r0, #1
+ beq _022580DA
+ cmp r0, #2
+ beq _02258112
+ b _0225814A
+_022580BC:
+ ldr r1, _02258174 ; =0x00004E27
+ add r0, r5, #0
+ mov r2, #1
+ bl FUN_0200C344
+ add r5, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ ldr r0, [r0, #4]
+ bl FUN_0200C66C
+ strb r5, [r4, #9]
+ ldrb r0, [r4, #8]
+ add r0, r0, #1
+ strb r0, [r4, #8]
+_022580DA:
+ mov r0, #0xa
+ ldrsb r1, [r4, r0]
+ add r1, r1, #4
+ strb r1, [r4, #0xa]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x10
+ blt _022580F2
+ mov r0, #0x10
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #8]
+ add r0, r0, #1
+ strb r0, [r4, #8]
+_022580F2:
+ ldrb r0, [r4, #0xa]
+ mov r1, #2
+ mov r3, #1
+ str r0, [sp]
+ ldr r0, _02258178 ; =0x000073A5
+ str r0, [sp, #4]
+ ldrb r2, [r4, #9]
+ add r0, r6, #0
+ lsl r2, r2, #4
+ add r2, #0xf
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_020039E8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02258112:
+ mov r0, #0xa
+ ldrsb r1, [r4, r0]
+ sub r1, r1, #4
+ strb r1, [r4, #0xa]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bgt _0225812A
+ mov r0, #0
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #8]
+ add r0, r0, #1
+ strb r0, [r4, #8]
+_0225812A:
+ ldrb r0, [r4, #0xa]
+ mov r1, #2
+ mov r3, #1
+ str r0, [sp]
+ ldr r0, _02258178 ; =0x000073A5
+ str r0, [sp, #4]
+ ldrb r2, [r4, #9]
+ add r0, r6, #0
+ lsl r2, r2, #4
+ add r2, #0xf
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_020039E8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_0225814A:
+ ldr r1, _0225817C ; =0x00004E26
+ add r0, r5, #0
+ mov r2, #1
+ bl FUN_0200C344
+ add r1, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #4]
+ bl FUN_0200C66C
+ ldr r0, [r4, #4]
+ mov r1, #1
+ strb r1, [r0]
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_0200CAB4
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02258174: .word 0x00004E27
+_02258178: .word 0x000073A5
+_0225817C: .word 0x00004E26
+
+ thumb_func_start MOD11_02258180
+MOD11_02258180: ; 0x02258180
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02258184
+MOD11_02258184: ; 0x02258184
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02258188
+MOD11_02258188: ; 0x02258188
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ cmp r0, #0
+ bne _022581A6
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x54
+ strh r1, [r0]
+ ldr r0, _022581A8 ; =MOD11_022581D4
+ ldr r2, _022581AC ; =0x000003F2
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x50]
+_022581A6:
+ pop {r4, pc}
+ .align 2, 0
+_022581A8: .word MOD11_022581D4
+_022581AC: .word 0x000003F2
+
+ thumb_func_start MOD11_022581B0
+MOD11_022581B0: ; 0x022581B0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ cmp r0, #0
+ beq _022581C2
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x50]
+_022581C2:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x54
+ strh r1, [r0]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_022572C8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_022581D4
+MOD11_022581D4: ; 0x022581D4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r1, #0x54
+ ldrh r2, [r1]
+ add r1, r4, #0
+ add r1, #0x54
+ add r2, #0x14
+ strh r2, [r1]
+ add r1, r4, #0
+ add r1, #0x54
+ ldrh r2, [r1]
+ mov r1, #0x5a
+ add r0, r4, #0
+ lsl r1, r1, #2
+ add r0, #0x54
+ cmp r2, r1
+ blo _022581FC
+ ldrh r2, [r0]
+ sub r1, r2, r1
+ strh r1, [r0]
+_022581FC:
+ add r0, r4, #0
+ add r0, #0x54
+ ldrh r0, [r0]
+ bl FUN_0201B93C
+ mov r2, #6
+ asr r1, r0, #0x1f
+ lsl r2, r2, #0xa
+ mov r3, #0
+ blx _ll_mul
+ mov r2, #2
+ add r3, r0, #0
+ add r5, r1, #0
+ mov r1, #0
+ lsl r2, r2, #0xa
+ add r0, r4, #0
+ add r3, r3, r2
+ adc r5, r1
+ lsl r2, r5, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ asr r2, r3, #0xb
+ lsr r2, r2, #0x14
+ add r2, r3, r2
+ asr r2, r2, #0xc
+ bl MOD11_022572C8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02258238
+MOD11_02258238: ; 0x02258238
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD11_02230078
+ str r0, [sp, #0x20]
+ ldr r0, [r5, #4]
+ bl MOD11_02230080
+ add r7, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD11_02230C68
+ add r6, r0, #0
+ ldrb r0, [r5, #8]
+ cmp r0, #0
+ ldrb r0, [r5, #9]
+ bne _02258274
+ lsl r1, r0, #1
+ ldr r0, _02258320 ; =0x0225F5C0
+ ldrh r3, [r0, r1]
+ ldr r0, _02258324 ; =0x00004E2D
+ mov r1, #0x58
+ str r1, [sp, #0x1c]
+ add r4, r0, #0
+ mov r1, #0x59
+ sub r4, #8
+ str r1, [sp, #0x18]
+ b _02258288
+_02258274:
+ lsl r1, r0, #1
+ ldr r0, _02258328 ; =0x0225F5A8
+ ldrh r3, [r0, r1]
+ ldr r0, _0225832C ; =0x00004E2E
+ mov r1, #0x5b
+ str r1, [sp, #0x1c]
+ add r4, r0, #0
+ mov r1, #0x5c
+ sub r4, #8
+ str r1, [sp, #0x18]
+_02258288:
+ mov r1, #1
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x20]
+ add r1, r7, #0
+ mov r2, #0x1b
+ bl FUN_0200C00C
+ ldr r0, [r5, #4]
+ bl MOD11_022300CC
+ mov r1, #0x1b
+ str r1, [sp]
+ ldrb r1, [r5, #9]
+ mov r2, #6
+ add r3, r1, #0
+ mul r3, r2
+ ldr r2, _02258330 ; =0x0225F5D8
+ lsl r1, r6, #1
+ add r2, r2, r3
+ ldrh r1, [r1, r2]
+ ldr r2, [sp, #0x20]
+ add r3, r7, #0
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ mov r1, #1
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ ldr r1, _02258334 ; =0x00004E29
+ str r1, [sp, #0x14]
+ mov r1, #2
+ bl FUN_0200C0DC
+ ldr r0, [r5, #4]
+ bl MOD11_022300CC
+ mov r1, #0
+ str r1, [sp]
+ mov r1, #0x20
+ str r1, [sp, #4]
+ mov r1, #0x70
+ str r1, [sp, #8]
+ ldrb r2, [r5, #9]
+ mov r3, #6
+ lsl r5, r6, #1
+ mul r3, r2
+ ldr r2, _02258330 ; =0x0225F5D8
+ mov r1, #0x1b
+ add r2, r2, r3
+ ldrh r2, [r5, r2]
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ ldr r3, [sp, #0x1c]
+ add r1, r7, #0
+ mov r2, #0x1b
+ str r4, [sp, #4]
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ ldr r3, [sp, #0x18]
+ add r1, r7, #0
+ mov r2, #0x1b
+ str r4, [sp, #4]
+ bl FUN_0200C13C
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02258320: .word 0x0225F5C0
+_02258324: .word 0x00004E2D
+_02258328: .word 0x0225F5A8
+_0225832C: .word 0x00004E2E
+_02258330: .word 0x0225F5D8
+_02258334: .word 0x00004E29
+
+ thumb_func_start MOD11_02258338
+MOD11_02258338: ; 0x02258338
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD11_02230078
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD11_02230080
+ add r1, r0, #0
+ add r0, r5, #0
+ ldrb r3, [r4, #8]
+ mov r2, #0x34
+ ldr r5, _02258368 ; =0x0225F61C
+ mul r2, r3
+ add r2, r5, r2
+ bl FUN_0200C154
+ str r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ pop {r3, r4, r5, pc}
+ nop
+_02258368: .word 0x0225F61C
+
+ thumb_func_start MOD11_0225836C
+MOD11_0225836C: ; 0x0225836C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0225837E
+ bl FUN_0200C3DC
+ mov r0, #0
+ str r0, [r4]
+_0225837E:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02258380
+MOD11_02258380: ; 0x02258380
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD11_02230080
+ add r4, r0, #0
+ ldrb r0, [r5, #8]
+ cmp r0, #0
+ bne _02258396
+ ldr r1, _022583BC ; =0x00004E2D
+ b _02258398
+_02258396:
+ ldr r1, _022583C0 ; =0x00004E2E
+_02258398:
+ add r5, r1, #0
+ add r0, r4, #0
+ sub r5, #8
+ bl FUN_0200C358
+ ldr r1, _022583C4 ; =0x00004E29
+ add r0, r4, #0
+ bl FUN_0200C368
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_0200C378
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_0200C388
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022583BC: .word 0x00004E2D
+_022583C0: .word 0x00004E2E
+_022583C4: .word 0x00004E29
+
+ thumb_func_start MOD11_022583C8
+MOD11_022583C8: ; 0x022583C8
+ push {r3, lr}
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022583D4
+ bl FUN_0200C644
+_022583D4:
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022583D8
+MOD11_022583D8: ; 0x022583D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ mov r0, #0
+ add r1, r5, #0
+ mov r2, #0x10
+ add r7, r3, #0
+ blx MIi_CpuClearFast
+ str r4, [r5, #4]
+ strb r6, [r5, #8]
+ strb r7, [r5, #9]
+ cmp r7, #0xc
+ blt _022583FE
+ bl ErrorHandling
+ mov r0, #0
+ strb r0, [r5, #9]
+_022583FE:
+ add r0, r5, #0
+ bl MOD11_02258238
+ add r0, r5, #0
+ bl MOD11_02258338
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225840C
+MOD11_0225840C: ; 0x0225840C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_0225836C
+ add r0, r4, #0
+ bl MOD11_02258380
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #0x10
+ blx MIi_CpuClearFast
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02258428
+MOD11_02258428: ; 0x02258428
+ push {r4, lr}
+ mov r1, #7
+ mov r0, #5
+ lsl r1, r1, #8
+ bl FUN_02016998
+ mov r2, #7
+ mov r1, #0
+ lsl r2, r2, #8
+ add r4, r0, #0
+ blx MI_CpuFill8
+ mov r1, #0
+ ldr r0, _0225844C ; =0x0000069F
+ mvn r1, r1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+_0225844C: .word 0x0000069F
+
+ thumb_func_start MOD11_02258450
+MOD11_02258450: ; 0x02258450
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ ldr r6, _022584A4 ; =0x0225F97C
+ add r5, r0, #0
+ add r7, r4, #0
+_0225845A:
+ 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
+ ldr r2, _022584A8 ; =0x000002FF
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ 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 _0225845A
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022584A4: .word 0x0225F97C
+_022584A8: .word 0x000002FF
+
+ thumb_func_start MOD11_022584AC
+MOD11_022584AC: ; 0x022584AC
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_022584B4:
+ 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 _022584B4
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_022584D4
+MOD11_022584D4: ; 0x022584D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ add r5, r1, #0
+ bl MOD11_02258428
+ add r6, r0, #0
+ ldr r0, _0225863C ; =0x000006A1
+ str r4, [r6]
+ strb r5, [r6, r0]
+ add r0, r4, #0
+ bl MOD11_022300CC
+ str r0, [sp, #0x10]
+ mov r0, #0xd
+ mov r1, #5
+ bl FUN_02011744
+ ldr r2, _02258640 ; =0x000004C8
+ add r1, r6, #0
+ str r0, [r6, r2]
+ ldr r0, _02258644 ; =MOD11_0225B794
+ add r2, #0x56
+ bl FUN_0200CA44
+ ldr r1, _02258648 ; =0x000006AC
+ mov r7, #2
+ str r0, [r6, r1]
+ mov r4, #0
+ lsl r7, r7, #0xa
+ b _0225854E
+_02258512:
+ mov r0, #5
+ add r1, r7, #0
+ bl FUN_02016998
+ lsl r1, r4, #2
+ add r1, r6, r1
+ str r0, [r1, #0x3c]
+ mov r0, #5
+ str r0, [sp]
+ ldr r1, _0225864C ; =0x0225F6FC
+ lsl r2, r4, #1
+ ldrh r1, [r1, r2]
+ mov r0, #7
+ mov r2, #1
+ add r3, sp, #0x18
+ bl FUN_02006BDC
+ add r5, r0, #0
+ lsl r0, r4, #2
+ add r0, r6, r0
+ ldr r1, [r0, #0x3c]
+ ldr r0, [sp, #0x18]
+ add r2, r7, #0
+ add r0, #0xc
+ blx MIi_CpuCopy32
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r4, r4, #1
+_0225854E:
+ cmp r4, #7
+ blt _02258512
+ mov r1, #2
+ mov r0, #5
+ lsl r1, r1, #8
+ bl FUN_02016998
+ str r0, [r6, #0x58]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x10]
+ mov r1, #7
+ mov r2, #0xc3
+ mov r3, #5
+ bl FUN_020030E8
+ ldr r0, [sp, #0x10]
+ mov r1, #1
+ bl FUN_020031FC
+ mov r2, #2
+ ldr r1, [r6, #0x58]
+ lsl r2, r2, #8
+ blx MIi_CpuCopy16
+ add r5, r6, #0
+ mov r7, #0x46
+ mov r4, #0
+ add r5, #0x68
+ lsl r7, r7, #2
+ b _022585A2
+_02258592:
+ add r0, r4, #0
+ mul r0, r7
+ add r0, r5, r0
+ mov r1, #0xff
+ mov r2, #0x18
+ blx MI_CpuFill8
+ add r4, r4, #1
+_022585A2:
+ cmp r4, #4
+ blt _02258592
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r7, #6
+ b _022585DE
+_022585AE:
+ mov r0, #0x46
+ ldr r1, [sp, #0xc]
+ lsl r0, r0, #2
+ mul r0, r1
+ mov r5, #0
+ add r4, r6, r0
+ b _022585D4
+_022585BC:
+ add r0, r7, #0
+ bl FUN_020799E8
+ add r1, r0, #0
+ mov r0, #5
+ bl FUN_02016998
+ lsl r1, r5, #2
+ add r1, r4, r1
+ add r1, #0x80
+ str r0, [r1]
+ add r5, r5, #1
+_022585D4:
+ cmp r5, #4
+ blt _022585BC
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+_022585DE:
+ ldr r0, [sp, #0xc]
+ cmp r0, #4
+ blt _022585AE
+ mov r0, #5
+ mov r1, #0x20
+ bl FUN_02016998
+ str r0, [r6, #0x5c]
+ mov r0, #5
+ mov r1, #0x20
+ bl FUN_02016998
+ str r0, [r6, #0x60]
+ ldr r1, [r6, #0x5c]
+ ldr r0, [r6, #0x58]
+ mov r2, #0x20
+ blx MIi_CpuCopy16
+ mov r0, #7
+ mov r1, #0xca
+ add r2, sp, #0x14
+ mov r3, #5
+ bl FUN_02006C08
+ add r4, r0, #0
+ ldr r0, [sp, #0x14]
+ ldr r1, [r6, #0x60]
+ ldr r0, [r0, #0xc]
+ mov r2, #0x20
+ blx MIi_CpuCopy16
+ add r0, r4, #0
+ bl FUN_02016A18
+ bl FUN_02002BE4
+ bl FUN_02002C04
+ ldr r0, _02258650 ; =MOD11_0225B824
+ ldr r2, _02258654 ; =0x0000D6D8
+ add r1, r6, #0
+ bl FUN_0200CA44
+ str r0, [r6, #0x64]
+ add r0, r6, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225863C: .word 0x000006A1
+_02258640: .word 0x000004C8
+_02258644: .word MOD11_0225B794
+_02258648: .word 0x000006AC
+_0225864C: .word 0x0225F6FC
+_02258650: .word MOD11_0225B824
+_02258654: .word 0x0000D6D8
+
+ thumb_func_start MOD11_02258658
+MOD11_02258658: ; 0x02258658
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl MOD11_0225ACB0
+ add r0, r6, #0
+ bl MOD11_02258B10
+ add r0, r6, #0
+ bl MOD11_022587A8
+ ldr r0, _022586B4 ; =0x000004C8
+ ldr r0, [r6, r0]
+ bl FUN_020117BC
+ ldr r0, _022586B8 ; =0x000006AC
+ ldr r0, [r6, r0]
+ bl FUN_0200CAB4
+ mov r4, #0
+ add r5, r6, #0
+_02258680:
+ ldr r0, [r5, #0x3c]
+ bl FUN_02016A18
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #7
+ blt _02258680
+ ldr r0, [r6, #0x58]
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl MOD11_0225A6B0
+ ldr r0, [r6, #0x5c]
+ bl FUN_02016A18
+ ldr r0, [r6, #0x60]
+ bl FUN_02016A18
+ ldr r0, [r6, #0x64]
+ bl FUN_0200CAB4
+ add r0, r6, #0
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022586B4: .word 0x000004C8
+_022586B8: .word 0x000006AC
+
+ thumb_func_start MOD11_022586BC
+MOD11_022586BC: ; 0x022586BC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r0, #0
+ ldr r0, [r7]
+ bl MOD11_02230078
+ add r6, r0, #0
+ ldr r0, [r7]
+ bl MOD11_02230080
+ add r4, r0, #0
+ ldr r0, [r7]
+ bl MOD11_0222FF68
+ add r5, r0, #0
+ ldr r0, [r7]
+ bl MOD11_022300CC
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ mov r0, #7
+ mov r1, #0x11
+ add r2, r5, #0
+ mov r3, #4
+ bl FUN_0200687C
+ ldr r2, _02258790 ; =0x00004E2D
+ add r0, r6, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl FUN_0206E1D4
+ ldr r0, [r7]
+ bl MOD11_022300CC
+ mov r1, #2
+ str r1, [sp]
+ ldr r1, _02258794 ; =0x00004E30
+ add r2, r6, #0
+ str r1, [sp, #4]
+ mov r1, #3
+ add r3, r4, #0
+ bl FUN_0206E198
+ mov r5, #0
+_02258726:
+ ldr r0, _02258798 ; =0x00004E35
+ add r1, r4, #0
+ add r0, r5, r0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r2, #2
+ mov r3, #0
+ bl FUN_0206E130
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02258726
+ ldr r0, [r7]
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ beq _0225878C
+ ldr r0, _0225879C ; =0x00004E40
+ ldr r3, _022587A0 ; =0x00004FB2
+ str r0, [sp]
+ add r0, r3, #0
+ str r3, [sp, #4]
+ sub r0, #0xb
+ str r0, [sp, #8]
+ ldr r2, [sp, #0x14]
+ add r0, r6, #0
+ add r1, r4, #0
+ add r3, r3, #6
+ bl MOD11_0225D6A4
+ ldr r0, _0225879C ; =0x00004E40
+ ldr r3, _022587A0 ; =0x00004FB2
+ str r0, [sp]
+ add r0, r3, #0
+ str r3, [sp, #4]
+ sub r0, #0xb
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ add r1, r4, #0
+ mov r2, #5
+ add r3, r3, #6
+ bl MOD11_0225D73C
+ ldr r1, _022587A4 ; =0x000006F8
+ str r0, [r7, r1]
+_0225878C:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02258790: .word 0x00004E2D
+_02258794: .word 0x00004E30
+_02258798: .word 0x00004E35
+_0225879C: .word 0x00004E40
+_022587A0: .word 0x00004FB2
+_022587A4: .word 0x000006F8
+
+ thumb_func_start MOD11_022587A8
+MOD11_022587A8: ; 0x022587A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, [r7]
+ bl MOD11_02230078
+ ldr r0, [r7]
+ bl MOD11_02230080
+ ldr r6, _02258808 ; =0x00004E35
+ add r5, r0, #0
+ mov r4, #0
+_022587BE:
+ add r0, r5, #0
+ add r1, r4, r6
+ bl FUN_0206E21C
+ add r4, r4, #1
+ cmp r4, #4
+ blt _022587BE
+ ldr r1, _0225880C ; =0x00004E30
+ add r0, r5, #0
+ bl FUN_0206E224
+ ldr r1, _02258810 ; =0x00004E2D
+ add r0, r5, #0
+ add r2, r1, #0
+ bl FUN_0206E22C
+ ldr r0, [r7]
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ beq _02258806
+ ldr r0, _02258814 ; =0x000006F8
+ ldr r0, [r7, r0]
+ bl MOD11_0225D7B8
+ ldr r3, _02258818 ; =0x00004FA7
+ ldr r2, _0225881C ; =0x00004E40
+ add r1, r3, #0
+ str r3, [sp]
+ add r0, r5, #0
+ add r1, #0x11
+ add r3, #0xb
+ bl MOD11_0225D714
+_02258806:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02258808: .word 0x00004E35
+_0225880C: .word 0x00004E30
+_02258810: .word 0x00004E2D
+_02258814: .word 0x000006F8
+_02258818: .word 0x00004FA7
+_0225881C: .word 0x00004E40
+
+ thumb_func_start MOD11_02258820
+MOD11_02258820: ; 0x02258820
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r7, r0, #0
+ str r1, [sp, #0x18]
+ str r2, [sp, #0x1c]
+ cmp r3, #0
+ beq _0225883A
+ add r1, r7, #0
+ add r0, r3, #0
+ add r1, #0x18
+ mov r2, #0x22
+ blx MI_CpuCopy8
+_0225883A:
+ ldr r0, _0225893C ; =0x000006A2
+ mov r1, #0
+ strb r1, [r7, r0]
+ ldr r0, [r7]
+ bl MOD11_0222FF68
+ str r0, [sp, #0x28]
+ ldr r0, [r7]
+ bl MOD11_02230078
+ str r0, [sp, #0x24]
+ ldr r0, [r7]
+ bl MOD11_02230080
+ str r0, [sp, #0x20]
+ ldr r0, _02258940 ; =0x0000069F
+ ldrsb r2, [r7, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r2, r0
+ bne _0225886C
+ mov r0, #1
+ str r0, [sp, #0x1c]
+ mov r5, #0
+ b _02258874
+_0225886C:
+ mov r0, #0x30
+ ldr r1, _02258944 ; =0x0225FAAC
+ mul r0, r2
+ add r5, r1, r0
+_02258874:
+ ldr r0, [sp, #0x18]
+ mov r1, #0x30
+ ldr r2, _02258944 ; =0x0225FAAC
+ mul r1, r0
+ add r0, r2, r1
+ str r0, [sp, #0x2c]
+ ldr r0, [r7]
+ bl MOD11_022300CC
+ mov r1, #2
+ lsl r1, r1, #8
+ str r1, [sp]
+ ldr r1, [r7, #0x58]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_02003054
+ ldr r6, [sp, #0x2c]
+ mov r4, #0
+_0225889A:
+ ldrh r2, [r6, #4]
+ ldr r0, _02258948 ; =0x0000FFFF
+ cmp r2, r0
+ beq _022588D0
+ ldr r0, [sp, #0x1c]
+ cmp r0, #1
+ beq _022588AE
+ ldrh r0, [r5, #4]
+ cmp r2, r0
+ beq _022588D0
+_022588AE:
+ lsl r2, r2, #2
+ add r1, r4, #4
+ add r2, r7, r2
+ lsl r1, r1, #0x18
+ mov r3, #2
+ ldr r0, [sp, #0x28]
+ ldr r2, [r2, #0x3c]
+ lsr r1, r1, #0x18
+ lsl r3, r3, #0xa
+ bl FUN_02017DFC
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ ldr r0, [sp, #0x28]
+ lsr r1, r1, #0x18
+ bl FUN_0201AC68
+_022588D0:
+ add r4, r4, #1
+ add r6, r6, #2
+ add r5, r5, #2
+ cmp r4, #4
+ blt _0225889A
+ ldr r0, [r7]
+ bl MOD11_022300CC
+ mov r1, #0x1b
+ str r1, [sp]
+ mov r1, #0x24
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ mov r1, #7
+ str r1, [sp, #0xc]
+ mov r1, #2
+ str r1, [sp, #0x10]
+ ldr r1, _0225894C ; =0x00004E33
+ ldr r2, [sp, #0x24]
+ str r1, [sp, #0x14]
+ ldr r3, [sp, #0x20]
+ mov r1, #3
+ bl FUN_0200C0DC
+ ldr r1, _02258940 ; =0x0000069F
+ ldr r0, [sp, #0x18]
+ mov r2, #0xf
+ strb r0, [r7, r1]
+ mov r0, #4
+ str r0, [sp]
+ ldr r0, _02258950 ; =0x04001050
+ mov r1, #2
+ mov r3, #0x1b
+ blx G2x_SetBlendAlpha_
+ add r0, r7, #0
+ bl MOD11_0225ACB0
+ ldr r0, [sp, #0x2c]
+ ldr r3, [r0, #0x28]
+ cmp r3, #0
+ beq _0225892E
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ add r0, r7, #0
+ blx r3
+_0225892E:
+ ldr r0, _02258954 ; =MOD11_0225B700
+ add r1, r7, #0
+ mov r2, #0xa
+ bl FUN_0200CA98
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225893C: .word 0x000006A2
+_02258940: .word 0x0000069F
+_02258944: .word 0x0225FAAC
+_02258948: .word 0x0000FFFF
+_0225894C: .word 0x00004E33
+_02258950: .word 0x04001050
+_02258954: .word MOD11_0225B700
+
+ thumb_func_start MOD11_02258958
+MOD11_02258958: ; 0x02258958
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ ldr r1, _02258ADC ; =0x000005D4
+ str r0, [sp, #0x14]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _02258970
+ ldr r0, [sp, #0x14]
+ add r1, #0x18
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _02258974
+_02258970:
+ bl ErrorHandling
+_02258974:
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD11_02230078
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD11_02230080
+ add r7, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _02258AE0 ; =0x00004E33
+ add r1, r7, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x90
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02258AE4 ; =0x00004E2B
+ add r1, r7, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x8f
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02258AE4 ; =0x00004E2B
+ add r1, r7, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x91
+ bl FUN_0200C13C
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _02258AE8 ; =0x00004E34
+ add r1, r7, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x8d
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02258AEC ; =0x00004E2C
+ add r1, r7, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x8c
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02258AEC ; =0x00004E2C
+ add r1, r7, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x8e
+ bl FUN_0200C13C
+ mov r0, #0
+ ldr r4, [sp, #0x14]
+ str r0, [sp, #0x1c]
+ mov r6, #0xc
+ mov r5, #0xf6
+_02258A12:
+ ldr r0, [sp, #0x18]
+ ldr r2, _02258AF0 ; =0x0225F8AC
+ add r1, r7, #0
+ bl FUN_0200C154
+ ldr r1, _02258ADC ; =0x000005D4
+ mov r3, #0x11
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ lsl r1, r6, #0x10
+ ldr r0, [r0]
+ asr r1, r1, #0x10
+ mov r2, #0xd
+ lsl r3, r3, #0x10
+ bl FUN_0200C720
+ ldr r0, _02258ADC ; =0x000005D4
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_0200C840
+ ldr r0, [sp, #0x18]
+ ldr r2, _02258AF4 ; =0x0225F8E0
+ add r1, r7, #0
+ bl FUN_0200C154
+ ldr r1, _02258AF8 ; =0x000005EC
+ mov r3, #0x11
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ lsl r1, r5, #0x10
+ ldr r0, [r0]
+ asr r1, r1, #0x10
+ mov r2, #9
+ lsl r3, r3, #0x10
+ bl FUN_0200C720
+ ldr r0, [sp, #0x1c]
+ add r4, r4, #4
+ add r0, r0, #1
+ add r6, #0x13
+ sub r5, #0xc
+ str r0, [sp, #0x1c]
+ cmp r0, #6
+ blt _02258A12
+ ldr r0, [sp, #0x14]
+ bl MOD11_02258E30
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _02258A82
+ bl ErrorHandling
+_02258A82:
+ ldr r0, _02258AFC ; =MOD11_02258BE0
+ ldr r1, [sp, #0x14]
+ ldr r2, _02258B00 ; =0x00000514
+ bl FUN_0200CA44
+ ldr r1, [sp, #0x14]
+ str r0, [r1, #4]
+ add r0, r1, #0
+ ldr r0, [r0]
+ bl MOD11_022300CC
+ add r2, r0, #0
+ ldr r0, _02258B04 ; =0x00004E3F
+ ldr r3, _02258B08 ; =0x00004FB1
+ str r0, [sp]
+ add r0, r3, #0
+ str r3, [sp, #4]
+ sub r0, #0xb
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x18]
+ add r1, r7, #0
+ add r3, r3, #6
+ bl MOD11_0225D3EC
+ ldr r0, _02258B04 ; =0x00004E3F
+ ldr r3, _02258B08 ; =0x00004FB1
+ str r0, [sp]
+ add r0, r3, #0
+ str r3, [sp, #4]
+ sub r0, #0xb
+ str r0, [sp, #8]
+ mov r2, #5
+ str r2, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x18]
+ add r1, r7, #0
+ add r3, r3, #6
+ bl MOD11_0225D484
+ ldr r2, _02258B0C ; =0x000006EC
+ ldr r1, [sp, #0x14]
+ str r0, [r1, r2]
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02258ADC: .word 0x000005D4
+_02258AE0: .word 0x00004E33
+_02258AE4: .word 0x00004E2B
+_02258AE8: .word 0x00004E34
+_02258AEC: .word 0x00004E2C
+_02258AF0: .word 0x0225F8AC
+_02258AF4: .word 0x0225F8E0
+_02258AF8: .word 0x000005EC
+_02258AFC: .word MOD11_02258BE0
+_02258B00: .word 0x00000514
+_02258B04: .word 0x00004E3F
+_02258B08: .word 0x00004FB1
+_02258B0C: .word 0x000006EC
+
+ thumb_func_start MOD11_02258B10
+MOD11_02258B10: ; 0x02258B10
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, _02258BBC ; =0x000005D4
+ ldr r1, [r6, r0]
+ cmp r1, #0
+ beq _02258B24
+ add r0, #0x18
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ bne _02258B28
+_02258B24:
+ bl ErrorHandling
+_02258B28:
+ ldr r0, [r6]
+ bl MOD11_02230078
+ ldr r0, [r6]
+ bl MOD11_02230080
+ ldr r1, _02258BC0 ; =0x00004E33
+ add r7, r0, #0
+ bl FUN_0200C358
+ ldr r1, _02258BC4 ; =0x00004E2B
+ add r0, r7, #0
+ bl FUN_0200C378
+ ldr r1, _02258BC4 ; =0x00004E2B
+ add r0, r7, #0
+ bl FUN_0200C388
+ ldr r1, _02258BC8 ; =0x00004E34
+ add r0, r7, #0
+ bl FUN_0200C358
+ ldr r1, _02258BCC ; =0x00004E2C
+ add r0, r7, #0
+ bl FUN_0200C378
+ ldr r1, _02258BCC ; =0x00004E2C
+ add r0, r7, #0
+ bl FUN_0200C388
+ ldr r1, _02258BC0 ; =0x00004E33
+ add r0, r7, #0
+ bl FUN_0200C368
+ mov r4, #0
+ add r5, r6, #0
+_02258B70:
+ ldr r0, _02258BBC ; =0x000005D4
+ ldr r0, [r5, r0]
+ bl FUN_0200C3DC
+ ldr r0, _02258BBC ; =0x000005D4
+ mov r1, #0
+ str r1, [r5, r0]
+ add r0, #0x18
+ ldr r0, [r5, r0]
+ bl FUN_0200C3DC
+ ldr r0, _02258BD0 ; =0x000005EC
+ mov r1, #0
+ str r1, [r5, r0]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02258B70
+ ldr r0, [r6, #4]
+ bl FUN_0200CAB4
+ ldr r3, _02258BD4 ; =0x00004FA6
+ mov r0, #0
+ str r0, [r6, #4]
+ add r1, r3, #0
+ str r3, [sp]
+ ldr r2, _02258BD8 ; =0x00004E3F
+ add r0, r7, #0
+ add r1, #0x11
+ add r3, #0xb
+ bl MOD11_0225D45C
+ ldr r0, _02258BDC ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D508
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02258BBC: .word 0x000005D4
+_02258BC0: .word 0x00004E33
+_02258BC4: .word 0x00004E2B
+_02258BC8: .word 0x00004E34
+_02258BCC: .word 0x00004E2C
+_02258BD0: .word 0x000005EC
+_02258BD4: .word 0x00004FA6
+_02258BD8: .word 0x00004E3F
+_02258BDC: .word 0x000006EC
+
+ thumb_func_start MOD11_02258BE0
+MOD11_02258BE0: ; 0x02258BE0
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r0, _02258D54 ; =0x00000644
+ add r5, r1, #0
+ mov r7, #0
+ add r4, r5, r0
+ mov r6, #0xc
+_02258BEC:
+ ldrb r0, [r4, #3]
+ cmp r0, #4
+ bhi _02258C08
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02258BFE: ; jump table
+ .short _02258C08 - _02258BFE - 2 ; case 0
+ .short _02258C48 - _02258BFE - 2 ; case 1
+ .short _02258C5A - _02258BFE - 2 ; case 2
+ .short _02258CF2 - _02258BFE - 2 ; case 3
+ .short _02258C5A - _02258BFE - 2 ; case 4
+_02258C08:
+ ldr r0, _02258D58 ; =0x000005D4
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_0200C650
+ cmp r0, #0
+ beq _02258C1C
+ ldrb r0, [r4, #2]
+ cmp r0, #0x57
+ bhs _02258C1E
+_02258C1C:
+ b _02258D42
+_02258C1E:
+ mov r0, #0
+ strb r0, [r4, #4]
+ mov r0, #0xa
+ strb r0, [r4, #5]
+ bl FUN_0201B9EC
+ lsr r1, r0, #0x1f
+ lsl r3, r0, #0x1d
+ ldrb r2, [r4, #5]
+ sub r3, r3, r1
+ mov r0, #0x1d
+ ror r3, r0
+ add r0, r1, r3
+ add r0, r2, r0
+ strb r0, [r4, #5]
+ mov r0, #2
+ strb r0, [r4, #7]
+ ldrb r0, [r4, #3]
+ add r0, r0, #1
+ strb r0, [r4, #3]
+ b _02258D42
+_02258C48:
+ ldrb r1, [r4, #5]
+ cmp r1, #0
+ beq _02258C54
+ sub r0, r1, #1
+ strb r0, [r4, #5]
+ b _02258D42
+_02258C54:
+ add r0, r0, #1
+ strb r0, [r4, #3]
+ b _02258D42
+_02258C5A:
+ ldr r0, _02258D58 ; =0x000005D4
+ mov r1, #2
+ ldr r0, [r5, r0]
+ lsl r1, r1, #0xa
+ bl FUN_0200C8BC
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ mov r0, #6
+ lsl r0, r0, #6
+ add r0, r1, r0
+ strh r0, [r4]
+ mov r1, #0
+ ldrsh r1, [r4, r1]
+ ldr r0, _02258D58 ; =0x000005D4
+ mov r3, #0x11
+ asr r2, r1, #7
+ lsr r2, r2, #0x18
+ add r2, r1, r2
+ asr r1, r2, #8
+ add r1, r1, r6
+ lsl r1, r1, #0x10
+ ldr r0, [r5, r0]
+ asr r1, r1, #0x10
+ mov r2, #0xd
+ lsl r3, r3, #0x10
+ bl FUN_0200C750
+ ldrb r0, [r4, #6]
+ add r0, r0, #1
+ strb r0, [r4, #6]
+ ldrb r1, [r4, #6]
+ ldrb r0, [r4, #7]
+ cmp r1, r0
+ blo _02258D42
+ mov r0, #0
+ strb r0, [r4, #6]
+ ldrb r0, [r4, #3]
+ cmp r0, #2
+ bne _02258CB0
+ add r0, r0, #1
+ strb r0, [r4, #3]
+ b _02258D42
+_02258CB0:
+ ldr r0, _02258D58 ; =0x000005D4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200C898
+ ldr r0, _02258D58 ; =0x000005D4
+ lsl r1, r6, #0x10
+ mov r3, #0x11
+ ldr r0, [r5, r0]
+ asr r1, r1, #0x10
+ mov r2, #0xd
+ lsl r3, r3, #0x10
+ bl FUN_0200C750
+ mov r0, #0
+ strh r0, [r4]
+ ldrb r0, [r4, #8]
+ cmp r0, #1
+ bhs _02258CEA
+ add r0, r0, #1
+ strb r0, [r4, #8]
+ ldrb r0, [r4, #7]
+ cmp r0, #1
+ bls _02258CE4
+ sub r0, r0, #1
+ strb r0, [r4, #7]
+_02258CE4:
+ mov r0, #2
+ strb r0, [r4, #3]
+ b _02258D42
+_02258CEA:
+ mov r0, #0
+ strb r0, [r4, #8]
+ strb r0, [r4, #3]
+ b _02258D42
+_02258CF2:
+ ldr r0, _02258D58 ; =0x000005D4
+ ldr r1, _02258D5C ; =0xFFFFF800
+ ldr r0, [r5, r0]
+ bl FUN_0200C8BC
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ mov r0, #6
+ lsl r0, r0, #6
+ sub r0, r1, r0
+ strh r0, [r4]
+ mov r1, #0
+ ldrsh r1, [r4, r1]
+ ldr r0, _02258D58 ; =0x000005D4
+ mov r3, #0x11
+ asr r2, r1, #7
+ lsr r2, r2, #0x18
+ add r2, r1, r2
+ asr r1, r2, #8
+ add r1, r1, r6
+ lsl r1, r1, #0x10
+ ldr r0, [r5, r0]
+ asr r1, r1, #0x10
+ mov r2, #0xd
+ lsl r3, r3, #0x10
+ bl FUN_0200C750
+ ldrb r0, [r4, #6]
+ add r0, r0, #1
+ strb r0, [r4, #6]
+ ldrb r1, [r4, #7]
+ ldrb r0, [r4, #6]
+ lsl r1, r1, #1
+ cmp r0, r1
+ blt _02258D42
+ mov r0, #0
+ strb r0, [r4, #6]
+ ldrb r0, [r4, #3]
+ add r0, r0, #1
+ strb r0, [r4, #3]
+_02258D42:
+ add r7, r7, #1
+ add r4, #0xa
+ add r5, r5, #4
+ add r6, #0x13
+ cmp r7, #6
+ bge _02258D50
+ b _02258BEC
+_02258D50:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02258D54: .word 0x00000644
+_02258D58: .word 0x000005D4
+_02258D5C: .word 0xFFFFF800
+
+ thumb_func_start MOD11_02258D60
+MOD11_02258D60: ; 0x02258D60
+ push {r3, r4}
+ ldr r2, _02258D78 ; =0x00000646
+ mov r4, #0
+_02258D66:
+ ldrb r3, [r1, r4]
+ add r4, r4, #1
+ strb r3, [r0, r2]
+ add r0, #0xa
+ cmp r4, #6
+ blt _02258D66
+ pop {r3, r4}
+ bx lr
+ nop
+_02258D78: .word 0x00000646
+
+ thumb_func_start MOD11_02258D7C
+MOD11_02258D7C: ; 0x02258D7C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ mov r4, #0
+_02258D86:
+ ldrb r0, [r6, r4]
+ bl MOD11_0225A400
+ add r1, r0, #0
+ ldr r0, _02258DC8 ; =0x000005D4
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_02020130
+ ldr r0, _02258DC8 ; =0x000005D4
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldrb r0, [r7, r4]
+ bl MOD11_0225A400
+ add r1, r0, #0
+ ldr r0, _02258DCC ; =0x000005EC
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_02020130
+ ldr r0, _02258DCC ; =0x000005EC
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02258D86
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02258DC8: .word 0x000005D4
+_02258DCC: .word 0x000005EC
+
+ thumb_func_start MOD11_02258DD0
+MOD11_02258DD0: ; 0x02258DD0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _02258E28 ; =0x000005D4
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ beq _02258DE4
+ add r0, #0x18
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _02258DE8
+_02258DE4:
+ bl ErrorHandling
+_02258DE8:
+ ldr r7, _02258E28 ; =0x000005D4
+ mov r6, #0
+ add r4, r5, #0
+_02258DEE:
+ ldr r0, [r4, r7]
+ mov r1, #1
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #6
+ blt _02258DEE
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _02258E24
+ ldr r6, _02258E2C ; =0x000005EC
+ mov r4, #0
+ add r7, r1, #0
+_02258E12:
+ ldr r0, [r5, r6]
+ add r1, r7, #0
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02258E12
+_02258E24:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02258E28: .word 0x000005D4
+_02258E2C: .word 0x000005EC
+
+ thumb_func_start MOD11_02258E30
+MOD11_02258E30: ; 0x02258E30
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _02258E70 ; =0x000005D4
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ beq _02258E44
+ add r0, #0x18
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _02258E48
+_02258E44:
+ bl ErrorHandling
+_02258E48:
+ ldr r7, _02258E70 ; =0x000005D4
+ mov r4, #0
+ add r6, r7, #0
+ add r6, #0x18
+_02258E50:
+ ldr r0, [r5, r7]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ ldr r0, [r5, r6]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02258E50
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02258E70: .word 0x000005D4
+
+ thumb_func_start MOD11_02258E74
+MOD11_02258E74: ; 0x02258E74
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _02258F4C ; =0x0000069F
+ mov r6, #0
+ ldrsb r1, [r5, r0]
+ sub r0, r6, #1
+ cmp r1, r0
+ bne _02258E88
+ bl ErrorHandling
+_02258E88:
+ ldr r0, _02258F4C ; =0x0000069F
+ ldr r3, _02258F50 ; =0x0225FAAC
+ ldrsb r2, [r5, r0]
+ mov r1, #0x30
+ mul r1, r2
+ add r4, r3, r1
+ ldr r1, [r4, #0x14]
+ cmp r1, #0
+ beq _02258EA2
+ add r0, r0, #3
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ bne _02258EA8
+_02258EA2:
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_02258EA8:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ bne _02258EB2
+ bl ErrorHandling
+_02258EB2:
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ beq _02258ECA
+ add r0, r5, #0
+ bl MOD11_0225C784
+ add r7, r0, #0
+ b _02258EE4
+_02258ECA:
+ ldr r0, [r4, #0x14]
+ bl FUN_02020988
+ add r7, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r7, r0
+ bne _02258EE4
+ add r0, r5, #0
+ bl MOD11_0225B8B0
+ add r7, r0, #0
+ add r6, r6, #1
+_02258EE4:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp]
+ cmp r7, r0
+ bne _02258EF2
+ mov r2, #0xff
+ b _02258EFE
+_02258EF2:
+ ldr r1, [r4, #0x18]
+ lsl r0, r7, #2
+ ldr r0, [r1, r0]
+ str r0, [sp]
+ ldr r0, [r4, #0x1c]
+ ldrb r2, [r0, r7]
+_02258EFE:
+ ldr r3, [r4, #0x2c]
+ cmp r3, #0
+ beq _02258F46
+ ldr r1, [sp]
+ add r0, r5, #0
+ blx r3
+ mov r1, #0
+ mvn r1, r1
+ str r0, [sp]
+ cmp r0, r1
+ beq _02258F46
+ ldr r2, [r4, #0x24]
+ cmp r2, #0
+ beq _02258F20
+ add r0, r5, #0
+ add r1, r7, #0
+ blx r2
+_02258F20:
+ mov r0, #0x6f
+ lsl r0, r0, #4
+ add r0, r5, r0
+ mov r1, #0
+ mov r2, #4
+ blx MI_CpuFill8
+ ldr r0, _02258F54 ; =0x000006EC
+ ldr r0, [r5, r0]
+ bl MOD11_0225D648
+ cmp r6, #0
+ ldr r0, _02258F58 ; =0x000006F4
+ ble _02258F42
+ mov r1, #1
+ strb r1, [r5, r0]
+ b _02258F46
+_02258F42:
+ mov r1, #0
+ strb r1, [r5, r0]
+_02258F46:
+ ldr r0, [sp]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02258F4C: .word 0x0000069F
+_02258F50: .word 0x0225FAAC
+_02258F54: .word 0x000006EC
+_02258F58: .word 0x000006F4
+
+ thumb_func_start MOD11_02258F5C
+MOD11_02258F5C: ; 0x02258F5C
+ push {r3, lr}
+ ldr r1, [r0, #8]
+ cmp r1, #0
+ bne _02258F7E
+ ldr r1, [r0, #0xc]
+ cmp r1, #0
+ bne _02258F7E
+ ldr r1, _02258F84 ; =0x00000684
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ bne _02258F7E
+ bl MOD11_0225B780
+ cmp r0, #1
+ bne _02258F7E
+ mov r0, #1
+ pop {r3, pc}
+_02258F7E:
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_02258F84: .word 0x00000684
+
+ thumb_func_start MOD11_02258F88
+MOD11_02258F88: ; 0x02258F88
+ push {r3, lr}
+ cmp r0, #0x40
+ bgt _02258FBE
+ bge _02259014
+ cmp r0, #0x10
+ bgt _02258FB8
+ bge _02258FEC
+ cmp r0, #8
+ bhi _02259024
+ add r2, r0, r0
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02258FA6: ; jump table
+ .short _02258FE0 - _02258FA6 - 2 ; case 0
+ .short _02258FEC - _02258FA6 - 2 ; case 1
+ .short _02258FEC - _02258FA6 - 2 ; case 2
+ .short _02259024 - _02258FA6 - 2 ; case 3
+ .short _02258FF8 - _02258FA6 - 2 ; case 4
+ .short _02259024 - _02258FA6 - 2 ; case 5
+ .short _02259024 - _02258FA6 - 2 ; case 6
+ .short _02259024 - _02258FA6 - 2 ; case 7
+ .short _02258FFC - _02258FA6 - 2 ; case 8
+_02258FB8:
+ cmp r0, #0x20
+ beq _0225901C
+ b _02259024
+_02258FBE:
+ mov r2, #1
+ lsl r2, r2, #8
+ cmp r0, r2
+ bgt _02258FCE
+ bge _02259008
+ cmp r0, #0x80
+ beq _02258FF8
+ b _02259024
+_02258FCE:
+ lsl r1, r2, #1
+ cmp r0, r1
+ bgt _02258FD8
+ beq _02259018
+ b _02259024
+_02258FD8:
+ lsl r1, r2, #2
+ cmp r0, r1
+ beq _02259020
+ b _02259024
+_02258FE0:
+ cmp r1, #4
+ bne _02258FE8
+ mov r0, #9
+ pop {r3, pc}
+_02258FE8:
+ mov r0, #8
+ pop {r3, pc}
+_02258FEC:
+ cmp r1, #4
+ bne _02258FF4
+ mov r0, #6
+ pop {r3, pc}
+_02258FF4:
+ mov r0, #4
+ pop {r3, pc}
+_02258FF8:
+ mov r0, #1
+ pop {r3, pc}
+_02258FFC:
+ cmp r1, #4
+ bne _02259004
+ mov r0, #7
+ pop {r3, pc}
+_02259004:
+ mov r0, #2
+ pop {r3, pc}
+_02259008:
+ cmp r1, #4
+ bne _02259010
+ mov r0, #4
+ pop {r3, pc}
+_02259010:
+ mov r0, #6
+ pop {r3, pc}
+_02259014:
+ mov r0, #3
+ pop {r3, pc}
+_02259018:
+ mov r0, #0xa
+ pop {r3, pc}
+_0225901C:
+ mov r0, #5
+ pop {r3, pc}
+_02259020:
+ mov r0, #0xb
+ pop {r3, pc}
+_02259024:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_0225902C
+MOD11_0225902C: ; 0x0225902C
+ push {r4, r5}
+ ldr r1, _0225908C ; =0x04001000
+ ldr r2, _02259090 ; =0xFFFF1FFF
+ ldr r3, [r1]
+ add r5, r1, #0
+ and r3, r2
+ lsr r2, r1, #0xd
+ orr r2, r3
+ str r2, [r1]
+ add r5, #0x4a
+ ldrh r4, [r5]
+ mov r3, #0x3f
+ mov r2, #0x1f
+ bic r4, r3
+ orr r2, r4
+ mov r4, #0x20
+ orr r2, r4
+ strh r2, [r5]
+ add r1, #0x48
+ ldrh r5, [r1]
+ mov r2, #0x1b
+ bic r5, r3
+ orr r2, r5
+ orr r2, r4
+ strh r2, [r1]
+ mov r1, #0x6e
+ lsl r1, r1, #4
+ ldr r1, [r0, r1]
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r1, r0, #8
+ mov r0, #0xff
+ sub r0, r0, r1
+ bpl _02259074
+ mov r0, #0
+_02259074:
+ lsl r1, r0, #8
+ mov r0, #0xff
+ lsl r0, r0, #8
+ and r1, r0
+ mov r0, #0xff
+ orr r0, r1
+ ldr r1, _02259094 ; =0x04001040
+ strh r0, [r1]
+ mov r0, #0xc0
+ strh r0, [r1, #4]
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_0225908C: .word 0x04001000
+_02259090: .word 0xFFFF1FFF
+_02259094: .word 0x04001040
+
+ thumb_func_start MOD11_02259098
+MOD11_02259098: ; 0x02259098
+ push {r4, lr}
+ lsl r4, r2, #8
+ mov r2, #0x6e
+ add r3, r0, #0
+ lsl r2, r2, #4
+ ldr r0, [r3, r2]
+ cmp r0, r4
+ beq _022590BC
+ add r0, r2, #4
+ str r1, [r3, r0]
+ add r2, #8
+ str r4, [r3, r2]
+ mov r2, #0x4b
+ ldr r0, _022590C0 ; =MOD11_022590C4
+ add r1, r3, #0
+ lsl r2, r2, #4
+ bl FUN_0200CA44
+_022590BC:
+ pop {r4, pc}
+ nop
+_022590C0: .word MOD11_022590C4
+
+ thumb_func_start MOD11_022590C4
+MOD11_022590C4: ; 0x022590C4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r4, #0
+ bl MOD11_0222FF68
+ add r7, r0, #0
+ mov r0, #0x6e
+ lsl r0, r0, #4
+ add r1, r0, #4
+ ldr r2, [r5, r0]
+ ldr r1, [r5, r1]
+ add r1, r2, r1
+ str r1, [r5, r0]
+ add r1, r0, #4
+ ldr r1, [r5, r1]
+ cmp r1, #0
+ bgt _022590F6
+ add r2, r0, #0
+ add r2, #8
+ ldr r2, [r5, r2]
+ ldr r0, [r5, r0]
+ cmp r0, r2
+ ble _02259106
+_022590F6:
+ cmp r1, #0
+ ble _0225910E
+ ldr r0, _0225915C ; =0x000006E8
+ ldr r2, [r5, r0]
+ sub r0, #8
+ ldr r0, [r5, r0]
+ cmp r0, r2
+ blt _0225910E
+_02259106:
+ mov r0, #0x6e
+ lsl r0, r0, #4
+ str r2, [r5, r0]
+ mov r4, #1
+_0225910E:
+ mov r3, #0x6e
+ lsl r3, r3, #4
+ ldr r3, [r5, r3]
+ add r0, r7, #0
+ asr r6, r3, #7
+ lsr r6, r6, #0x18
+ add r6, r3, r6
+ mov r1, #6
+ mov r2, #0
+ asr r3, r6, #8
+ bl FUN_020179E0
+ add r0, r5, #0
+ bl MOD11_0225902C
+ cmp r4, #1
+ bne _0225915A
+ ldr r2, _02259160 ; =0x000002FF
+ add r0, r7, #0
+ mov r1, #7
+ bl FUN_02018768
+ mov r0, #7
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #7
+ mov r1, #0
+ bl FUN_020178BC
+ ldr r2, _02259164 ; =0x04001000
+ ldr r0, _02259168 ; =0xFFFF1FFF
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_0225915A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225915C: .word 0x000006E8
+_02259160: .word 0x000002FF
+_02259164: .word 0x04001000
+_02259168: .word 0xFFFF1FFF
+
+ thumb_func_start MOD11_0225916C
+MOD11_0225916C: ; 0x0225916C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ ldr r0, _02259240 ; =0x000006A2
+ mov r1, #1
+ strb r1, [r5, r0]
+ ldr r1, _02259244 ; =0x0400104A
+ mov r4, #0x3f
+ ldrh r2, [r1]
+ mov r0, #0xf
+ mov r7, #0xc
+ bic r2, r4
+ orr r0, r2
+ mov r2, #0x20
+ orr r0, r2
+ strh r0, [r1]
+ sub r0, r1, #2
+ ldrh r3, [r0]
+ bic r3, r4
+ orr r3, r7
+ orr r3, r2
+ strh r3, [r0]
+ ldrh r4, [r0]
+ ldr r3, _02259248 ; =0xFFFFC0FF
+ lsl r2, r2, #8
+ and r4, r3
+ lsl r3, r7, #8
+ orr r3, r4
+ orr r2, r3
+ strh r2, [r0]
+ add r2, r1, #0
+ mov r0, #0xff
+ sub r2, #0xa
+ strh r0, [r2]
+ mov r3, #0x90
+ sub r2, r1, #6
+ strh r3, [r2]
+ add r2, r1, #0
+ sub r2, #8
+ strh r0, [r2]
+ sub r0, r1, #4
+ ldr r2, _0225924C ; =0x000090C0
+ sub r1, #0x4a
+ strh r2, [r0]
+ ldr r2, [r1]
+ ldr r0, _02259250 ; =0xFFFF1FFF
+ and r2, r0
+ lsl r0, r7, #0xb
+ orr r0, r2
+ str r0, [r1]
+ mov r0, #5
+ mov r1, #0x14
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x14
+ blx MI_CpuFill8
+ str r5, [r4]
+ ldr r0, _02259254 ; =0xFFFF9C64
+ strb r6, [r4, #0x12]
+ strh r0, [r4, #8]
+ mov r0, #0xfa
+ lsl r0, r0, #4
+ strh r0, [r4, #0xa]
+ mov r0, #8
+ ldrsh r1, [r4, r0]
+ ldr r0, _02259258 ; =0x0000639C
+ sub r0, r0, r1
+ mov r1, #0x64
+ blx _s32_div_f
+ strh r0, [r4, #0xc]
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ mov r0, #0xfa
+ lsl r0, r0, #4
+ sub r0, r0, r1
+ mov r1, #0x64
+ blx _s32_div_f
+ strh r0, [r4, #0xe]
+ ldr r0, _0225925C ; =0x0000070E
+ bl FUN_020054C8
+ ldr r0, _02259260 ; =MOD11_0225B438
+ ldr r2, _02259264 ; =0x000004BA
+ add r1, r4, #0
+ bl FUN_0200CA44
+ ldr r0, _02259268 ; =MOD11_0225B644
+ add r1, r4, #0
+ bl FUN_02015F34
+ cmp r0, #1
+ beq _02259232
+ bl ErrorHandling
+_02259232:
+ ldr r0, _0225926C ; =MOD11_0225B538
+ add r1, r4, #0
+ mov r2, #0xa
+ bl FUN_0200CA60
+ str r0, [r4, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02259240: .word 0x000006A2
+_02259244: .word 0x0400104A
+_02259248: .word 0xFFFFC0FF
+_0225924C: .word 0x000090C0
+_02259250: .word 0xFFFF1FFF
+_02259254: .word 0xFFFF9C64
+_02259258: .word 0x0000639C
+_0225925C: .word 0x0000070E
+_02259260: .word MOD11_0225B438
+_02259264: .word 0x000004BA
+_02259268: .word MOD11_0225B644
+_0225926C: .word MOD11_0225B538
+
+ thumb_func_start MOD11_02259270
+MOD11_02259270: ; 0x02259270
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r4, [r5, #0x18]
+ bl MOD11_02259284
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0225916C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02259284
+MOD11_02259284: ; 0x02259284
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r5, #0
+ ldrb r7, [r5, #0x18]
+ add r6, #0x18
+ bl MOD11_022300C4
+ add r4, r0, #0
+ ldr r0, _02259484 ; =0x0000069E
+ strb r7, [r5, r0]
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #0x20
+ tst r0, r1
+ beq _022592CA
+ ldr r1, _02259488 ; =0x000003A3
+ add r0, r4, #0
+ bl FUN_0200A914
+ mov r1, #0xe9
+ str r0, [sp, #0x24]
+ add r0, r4, #0
+ lsl r1, r1, #2
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ ldr r1, _0225948C ; =0x000003A5
+ add r0, r4, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+ b _0225931A
+_022592CA:
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _022592FA
+ ldr r1, _02259490 ; =0x000004C7
+ add r0, r4, #0
+ bl FUN_0200A914
+ mov r1, #0xe9
+ str r0, [sp, #0x24]
+ add r0, r4, #0
+ lsl r1, r1, #2
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ ldr r1, _0225948C ; =0x000003A5
+ add r0, r4, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+ b _0225931A
+_022592FA:
+ mov r1, #0xe7
+ add r0, r4, #0
+ lsl r1, r1, #2
+ bl FUN_0200A914
+ str r0, [sp, #0x24]
+ ldr r1, _02259494 ; =0x0000039D
+ add r0, r4, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ ldr r1, _02259498 ; =0x0000039E
+ add r0, r4, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+_0225931A:
+ ldr r0, [r5]
+ add r1, r7, #0
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230CB8
+ cmp r0, #1
+ bne _0225933E
+ mov r1, #0x3a
+ add r0, r4, #0
+ lsl r1, r1, #4
+ bl FUN_0200A914
+ add r4, r0, #0
+ mov r1, #1
+ b _0225934A
+_0225933E:
+ ldr r1, _0225949C ; =0x0000039F
+ add r0, r4, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ mov r1, #0
+_0225934A:
+ ldr r0, _022594A0 ; =0x000006A3
+ mov r3, #2
+ strb r1, [r5, r0]
+ ldr r0, _022594A4 ; =0x00010203
+ ldr r1, _022594A8 ; =0x000004CC
+ str r0, [sp]
+ ldr r0, _022594AC ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x54
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r2, [sp, #0x24]
+ add r0, r5, #0
+ add r1, r5, r1
+ bl MOD11_0225A458
+ ldr r0, _022594B0 ; =0x00040506
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _022594AC ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x28
+ str r0, [sp, #0xc]
+ mov r0, #0xaa
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ add r1, r5, r1
+ bl MOD11_0225A458
+ ldr r0, _022594B4 ; =0x00070809
+ ldr r1, _022594B8 ; =0x000004F4
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _022594AC ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0xd8
+ str r0, [sp, #0xc]
+ mov r0, #0xaa
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ add r0, r5, #0
+ add r1, r5, r1
+ bl MOD11_0225A458
+ ldr r0, _022594BC ; =0x000A0B0C
+ ldr r1, _022594C0 ; =0x00000508
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _022594AC ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0xb2
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r4, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x24]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02021A20
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _0225947E
+ ldrb r1, [r6, #1]
+ ldrb r2, [r6, #2]
+ ldr r0, [r5]
+ bl MOD11_02230014
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0225A164
+ ldrh r0, [r6, #6]
+ mov r3, #4
+ add r1, r4, #0
+ str r0, [sp]
+ ldrb r0, [r6, #3]
+ add r2, r7, #0
+ str r0, [sp, #4]
+ ldrsh r3, [r6, r3]
+ add r0, r5, #0
+ bl MOD11_0225A270
+ add r4, r0, #0
+ ldr r0, _022594A8 ; =0x000004CC
+ add r1, sp, #0x2c
+ ldr r0, [r5, r0]
+ add r2, sp, #0x28
+ bl FUN_020119A4
+ cmp r7, #4
+ bne _0225945E
+ ldr r0, _022594C4 ; =0x000004DC
+ ldr r1, [sp, #0x2c]
+ ldrh r0, [r5, r0]
+ add r0, #0x10
+ add r0, r1, r0
+ str r0, [sp, #0x2c]
+ b _02259464
+_0225945E:
+ ldr r0, [sp, #0x2c]
+ sub r0, #0x10
+ str r0, [sp, #0x2c]
+_02259464:
+ mov r3, #0x11
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x28]
+ lsl r3, r3, #4
+ sub r2, r2, r3
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, r4, #0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ lsl r3, r3, #0xc
+ bl FUN_0200C750
+_0225947E:
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02259484: .word 0x0000069E
+_02259488: .word 0x000003A3
+_0225948C: .word 0x000003A5
+_02259490: .word 0x000004C7
+_02259494: .word 0x0000039D
+_02259498: .word 0x0000039E
+_0225949C: .word 0x0000039F
+_022594A0: .word 0x000006A3
+_022594A4: .word 0x00010203
+_022594A8: .word 0x000004CC
+_022594AC: .word 0x00004E33
+_022594B0: .word 0x00040506
+_022594B4: .word 0x00070809
+_022594B8: .word 0x000004F4
+_022594BC: .word 0x000A0B0C
+_022594C0: .word 0x00000508
+_022594C4: .word 0x000004DC
+
+ thumb_func_start MOD11_022594C8
+MOD11_022594C8: ; 0x022594C8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r4, [r5, #0x18]
+ bl MOD11_022594DC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0225916C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022594DC
+MOD11_022594DC: ; 0x022594DC
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ bl MOD11_02259284
+ ldr r0, [r5]
+ bl MOD11_0222FF68
+ mov r1, #0x10
+ str r1, [sp]
+ mov r1, #0x20
+ str r1, [sp, #4]
+ mov r1, #8
+ str r1, [sp, #8]
+ mov r1, #0x11
+ str r1, [sp, #0xc]
+ ldr r2, _02259534 ; =0x000002FF
+ add r4, r0, #0
+ mov r1, #4
+ mov r3, #0
+ bl FUN_02018540
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_0201AC68
+ mov r0, #0x4e
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020119D0
+ ldr r0, _02259538 ; =0x000004F4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _0225953C ; =0x00000508
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02259534: .word 0x000002FF
+_02259538: .word 0x000004F4
+_0225953C: .word 0x00000508
+
+ thumb_func_start MOD11_02259540
+MOD11_02259540: ; 0x02259540
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r4, [r5, #0x18]
+ bl MOD11_02259554
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0225916C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02259554
+MOD11_02259554: ; 0x02259554
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ bl MOD11_02259284
+ ldr r0, [r5]
+ bl MOD11_0222FF68
+ mov r1, #0x10
+ str r1, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ mov r1, #8
+ str r1, [sp, #8]
+ mov r1, #0x11
+ str r1, [sp, #0xc]
+ ldr r2, _022595C0 ; =0x000002FF
+ mov r1, #4
+ mov r3, #0
+ add r4, r0, #0
+ bl FUN_02018540
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r2, _022595C0 ; =0x000002FF
+ add r0, r4, #0
+ mov r1, #4
+ mov r3, #0x16
+ bl FUN_02018540
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_0201AC68
+ mov r0, #0x4e
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020119D0
+ ldr r0, _022595C4 ; =0x000004F4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_022595C0: .word 0x000002FF
+_022595C4: .word 0x000004F4
+
+ thumb_func_start MOD11_022595C8
+MOD11_022595C8: ; 0x022595C8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0
+ add r6, r5, #0
+ add r6, #0x18
+ bne _022595D8
+ bl ErrorHandling
+_022595D8:
+ ldrb r1, [r6, #0x10]
+ ldr r0, _02259854 ; =0x0000069E
+ strb r1, [r5, r0]
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ str r0, [sp, #0x1c]
+ ldrb r1, [r6, #0x10]
+ add r0, r5, #0
+ bl MOD11_0225A69C
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ bl MOD11_0225A9D4
+ ldr r0, _02259858 ; =0x00070809
+ ldr r1, _0225985C ; =0x000004CC
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ add r1, r5, r1
+ str r0, [sp, #8]
+ mov r0, #0x40
+ str r0, [sp, #0xc]
+ mov r0, #0x2e
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ mov r2, #0
+ add r0, #0x28
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ mov r3, #2
+ bl MOD11_0225A458
+ ldr r0, _02259858 ; =0x00070809
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ lsl r1, r1, #4
+ str r0, [sp, #8]
+ mov r0, #0xc0
+ str r0, [sp, #0xc]
+ mov r0, #0x2e
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ add r1, r5, r1
+ add r0, #0x3c
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ mov r2, #0
+ mov r3, #2
+ bl MOD11_0225A458
+ ldr r0, _02259858 ; =0x00070809
+ ldr r1, _02259864 ; =0x000004F4
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ add r1, r5, r1
+ str r0, [sp, #8]
+ mov r0, #0x40
+ str r0, [sp, #0xc]
+ mov r0, #0x6e
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ mov r2, #0
+ add r0, #0x50
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ mov r3, #2
+ bl MOD11_0225A458
+ ldr r0, _02259858 ; =0x00070809
+ ldr r1, _02259868 ; =0x00000508
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ add r1, r5, r1
+ str r0, [sp, #8]
+ mov r0, #0xc0
+ str r0, [sp, #0xc]
+ mov r0, #0x6e
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ mov r2, #0
+ add r0, #0x64
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ mov r3, #2
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x20]
+ mov r4, #0
+ str r0, [sp, #0x28]
+ add r0, #0x78
+ str r0, [sp, #0x28]
+ ldr r0, _0225985C ; =0x000004CC
+ add r7, r5, r0
+ ldr r0, [sp, #0x20]
+ add r0, #0xc8
+ str r0, [sp, #0x20]
+ b _02259748
+_022596BE:
+ add r1, r6, r4
+ ldrb r0, [r1, #8]
+ ldrb r1, [r1, #0xc]
+ bl MOD11_0225B3D4
+ str r0, [sp, #0x24]
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ ldr r1, _0225986C ; =0x0225F73C
+ str r0, [sp, #8]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ add r2, r4, #0
+ add r2, #9
+ str r1, [sp, #0xc]
+ ldr r1, _0225986C ; =0x0225F73C
+ 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, #0x28]
+ add r0, r0, r1
+ mov r1, #0x14
+ mul r1, r2
+ mov r2, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r7, r1
+ add r3, r2, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x24]
+ ldr r1, _02259870 ; =0x0225F78C
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ add r2, r4, #5
+ str r0, [sp, #8]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ str r1, [sp, #0xc]
+ ldr r1, _02259870 ; =0x0225F78C
+ 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, #0x20]
+ add r0, r0, r1
+ mov r1, #0x14
+ mul r1, r2
+ mov r2, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r7, r1
+ add r3, r2, #0
+ bl MOD11_0225A458
+ add r4, r4, #1
+_02259748:
+ cmp r4, #4
+ blt _022596BE
+ ldr r0, [sp, #0x1c]
+ ldr r1, _02259874 ; =0x000003A1
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, _02259878 ; =0x000A0B0C
+ ldr r1, _0225987C ; =0x0000051C
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _02259860 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0xb2
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r4, #0
+ bl MOD11_0225A458
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r4, #0
+ mov r7, #3
+ b _022597B0
+_0225978A:
+ lsl r0, r4, #1
+ ldrh r0, [r6, r0]
+ cmp r0, #0
+ beq _022597A4
+ add r1, r7, #0
+ bl FUN_0206AB18
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD11_0225AB34
+ b _022597AE
+_022597A4:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0225AB50
+ b _022597B4
+_022597AE:
+ add r4, r4, #1
+_022597B0:
+ cmp r4, #4
+ blt _0225978A
+_022597B4:
+ ldr r0, [r5]
+ bl MOD11_0222FF68
+ ldrh r0, [r6]
+ cmp r0, #0
+ bne _022597E2
+ ldr r0, _0225985C ; =0x000004CC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ mov r0, #0x53
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020119D0
+ mov r0, #0x16
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020119D0
+_022597E2:
+ ldrh r0, [r6, #2]
+ cmp r0, #0
+ bne _02259808
+ mov r0, #0x4e
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020119D0
+ ldr r0, _02259880 ; =0x00000544
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _02259884 ; =0x00000594
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+_02259808:
+ ldrh r0, [r6, #4]
+ cmp r0, #0
+ bne _0225982C
+ ldr r0, _02259864 ; =0x000004F4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _02259888 ; =0x00000558
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _0225988C ; =0x000005A8
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+_0225982C:
+ ldrh r0, [r6, #6]
+ cmp r0, #0
+ bne _02259850
+ ldr r0, _02259868 ; =0x00000508
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _02259890 ; =0x0000056C
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _02259894 ; =0x000005BC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+_02259850:
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02259854: .word 0x0000069E
+_02259858: .word 0x00070809
+_0225985C: .word 0x000004CC
+_02259860: .word 0x00004E33
+_02259864: .word 0x000004F4
+_02259868: .word 0x00000508
+_0225986C: .word 0x0225F73C
+_02259870: .word 0x0225F78C
+_02259874: .word 0x000003A1
+_02259878: .word 0x000A0B0C
+_0225987C: .word 0x0000051C
+_02259880: .word 0x00000544
+_02259884: .word 0x00000594
+_02259888: .word 0x00000558
+_0225988C: .word 0x000005A8
+_02259890: .word 0x0000056C
+_02259894: .word 0x000005BC
+
+ thumb_func_start MOD11_02259898
+MOD11_02259898: ; 0x02259898
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ mov r1, #0xeb
+ lsl r1, r1, #2
+ add r6, r0, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r1, _0225991C ; =0x000003AD
+ add r0, r6, #0
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r0, _02259920 ; =0x00010203
+ ldr r1, _02259924 ; =0x000004CC
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _02259928 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r4, #0
+ bl MOD11_0225A458
+ ldr r0, _0225992C ; =0x000A0B0C
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _02259928 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x8c
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MOD11_0225A458
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0225991C: .word 0x000003AD
+_02259920: .word 0x00010203
+_02259924: .word 0x000004CC
+_02259928: .word 0x00004E33
+_0225992C: .word 0x000A0B0C
+
+ thumb_func_start MOD11_02259930
+MOD11_02259930: ; 0x02259930
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ ldr r1, _022599B4 ; =0x0000049D
+ add r6, r0, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r1, _022599B8 ; =0x0000049E
+ add r0, r6, #0
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r0, _022599BC ; =0x00010203
+ ldr r1, _022599C0 ; =0x000004CC
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _022599C4 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r4, #0
+ bl MOD11_0225A458
+ ldr r0, _022599C8 ; =0x000A0B0C
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _022599C4 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x8c
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MOD11_0225A458
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_022599B4: .word 0x0000049D
+_022599B8: .word 0x0000049E
+_022599BC: .word 0x00010203
+_022599C0: .word 0x000004CC
+_022599C4: .word 0x00004E33
+_022599C8: .word 0x000A0B0C
+
+ thumb_func_start MOD11_022599CC
+MOD11_022599CC: ; 0x022599CC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230138
+ add r4, r0, #0
+ ldr r1, _02259A98 ; =0x000004A2
+ add r0, r6, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+ ldr r1, _02259A9C ; =0x000004A3
+ add r0, r6, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r6, r0, #0
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r7, r0, #0
+ ldrh r2, [r5, #0x18]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0200AD5C
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ ldr r2, [sp, #0x20]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ ldr r0, _02259AA0 ; =0x00010203
+ ldr r1, _02259AA4 ; =0x000004CC
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _02259AA8 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MOD11_0225A458
+ ldr r0, _02259AAC ; =0x000A0B0C
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _02259AA8 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x8c
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r7, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02259A98: .word 0x000004A2
+_02259A9C: .word 0x000004A3
+_02259AA0: .word 0x00010203
+_02259AA4: .word 0x000004CC
+_02259AA8: .word 0x00004E33
+_02259AAC: .word 0x000A0B0C
+
+ thumb_func_start MOD11_02259AB0
+MOD11_02259AB0: ; 0x02259AB0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230138
+ add r4, r0, #0
+ ldr r1, _02259B7C ; =0x000004C1
+ add r0, r6, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+ ldr r1, _02259B80 ; =0x000004C2
+ add r0, r6, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r6, r0, #0
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r7, r0, #0
+ ldrh r2, [r5, #0x18]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0200AD5C
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ ldr r2, [sp, #0x20]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ ldr r0, _02259B84 ; =0x00010203
+ ldr r1, _02259B88 ; =0x000004CC
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _02259B8C ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MOD11_0225A458
+ ldr r0, _02259B90 ; =0x000A0B0C
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _02259B8C ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x8c
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r7, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02259B7C: .word 0x000004C1
+_02259B80: .word 0x000004C2
+_02259B84: .word 0x00010203
+_02259B88: .word 0x000004CC
+_02259B8C: .word 0x00004E33
+_02259B90: .word 0x000A0B0C
+
+ thumb_func_start MOD11_02259B94
+MOD11_02259B94: ; 0x02259B94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230138
+ add r4, r0, #0
+ ldr r1, _02259C60 ; =0x000004BF
+ add r0, r6, #0
+ bl FUN_0200A914
+ mov r1, #0x13
+ str r0, [sp, #0x1c]
+ add r0, r6, #0
+ lsl r1, r1, #6
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r6, r0, #0
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r7, r0, #0
+ ldrh r2, [r5, #0x18]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0200AD5C
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ ldr r2, [sp, #0x20]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ ldr r0, _02259C64 ; =0x00010203
+ ldr r1, _02259C68 ; =0x000004CC
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _02259C6C ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MOD11_0225A458
+ ldr r0, _02259C70 ; =0x000A0B0C
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _02259C6C ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x8c
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r7, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02259C60: .word 0x000004BF
+_02259C64: .word 0x00010203
+_02259C68: .word 0x000004CC
+_02259C6C: .word 0x00004E33
+_02259C70: .word 0x000A0B0C
+
+ thumb_func_start MOD11_02259C74
+MOD11_02259C74: ; 0x02259C74
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r5, r0, #0
+ add r7, r5, #0
+ add r7, #0x18
+ add r0, r7, #0
+ add r0, #0x21
+ ldrb r1, [r0]
+ mov r0, #0x6a
+ lsl r0, r0, #4
+ strb r1, [r5, r0]
+ add r1, r7, #0
+ add r1, #0x20
+ ldrb r1, [r1]
+ sub r0, r0, #2
+ strb r1, [r5, r0]
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ str r0, [sp, #0x2c]
+ ldr r0, [r5]
+ bl MOD11_02230138
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ add r1, sp, #0x40
+ mov r2, #0
+ bl MOD11_0225ACD4
+ add r0, r5, #0
+ bl MOD11_0225A164
+ add r0, r5, #0
+ bl MOD11_0225A5C0
+ add r1, sp, #0x38
+ ldr r0, [r5]
+ add r1, #2
+ bl MOD11_02231504
+ ldr r0, [r5]
+ add r1, sp, #0x34
+ bl MOD11_022314E0
+ mov r0, #0x18
+ mov r1, #5
+ bl FUN_020219F4
+ str r0, [sp, #0x28]
+ ldr r0, _02259E38 ; =0x000004CC
+ mov r4, #0
+ add r0, r5, r0
+ str r0, [sp, #0x30]
+ b _02259DEC
+_02259CE0:
+ add r1, r4, #2
+ add r0, sp, #0x34
+ ldrb r6, [r0, r1]
+ lsl r0, r6, #3
+ add r0, r7, r0
+ ldrb r1, [r0, #1]
+ lsl r0, r1, #0x1d
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02259DDA
+ add r0, sp, #0x40
+ ldrb r0, [r0, r4]
+ cmp r0, #1
+ bne _02259DDA
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ bne _02259D0E
+ ldr r0, [sp, #0x2c]
+ ldr r1, _02259E3C ; =0x000003C2
+ bl FUN_0200A914
+ str r0, [sp, #0x24]
+ b _02259D2A
+_02259D0E:
+ cmp r0, #1
+ bne _02259D1E
+ ldr r0, [sp, #0x2c]
+ ldr r1, _02259E40 ; =0x000003C3
+ bl FUN_0200A914
+ str r0, [sp, #0x24]
+ b _02259D2A
+_02259D1E:
+ mov r1, #0xf1
+ ldr r0, [sp, #0x2c]
+ lsl r1, r1, #2
+ bl FUN_0200A914
+ str r0, [sp, #0x24]
+_02259D2A:
+ lsl r2, r6, #3
+ ldrb r2, [r7, r2]
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD11_02230014
+ str r0, [sp, #0x20]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [sp, #0x1c]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x24]
+ bl FUN_0200B7B8
+ mov r0, #1
+ tst r0, r4
+ beq _02259D5A
+ ldr r0, _02259E44 ; =0x00010203
+ b _02259D5C
+_02259D5A:
+ ldr r0, _02259E48 ; =0x00040506
+_02259D5C:
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r0, _02259E4C ; =0x00004E33
+ ldr r1, _02259E50 ; =0x0225F7D4
+ str r0, [sp, #8]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ add r2, r4, #0
+ mov r3, #2
+ str r1, [sp, #0xc]
+ ldr r1, _02259E50 ; =0x0225F7D4
+ add r0, r1, r0
+ ldrh r0, [r0, #2]
+ mov r1, #0x14
+ mul r2, r1
+ ldr r1, [sp, #0x30]
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ add r1, r1, r2
+ str r0, [sp, #0x18]
+ ldr r2, [sp, #0x28]
+ add r0, r5, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x24]
+ bl FUN_02021A20
+ cmp r4, #1
+ beq _02259DA2
+ cmp r4, #3
+ beq _02259DBE
+ b _02259DEA
+_02259DA2:
+ lsl r0, r6, #3
+ add r6, r7, r0
+ ldrh r0, [r6, #6]
+ mov r3, #4
+ ldr r1, [sp, #0x20]
+ str r0, [sp]
+ ldrb r0, [r6, #2]
+ mov r2, #3
+ str r0, [sp, #4]
+ ldrsh r3, [r6, r3]
+ add r0, r5, #0
+ bl MOD11_0225A270
+ b _02259DEA
+_02259DBE:
+ lsl r0, r6, #3
+ add r6, r7, r0
+ ldrh r0, [r6, #6]
+ mov r3, #4
+ ldr r1, [sp, #0x20]
+ str r0, [sp]
+ ldrb r0, [r6, #2]
+ mov r2, #5
+ str r0, [sp, #4]
+ ldrsh r3, [r6, r3]
+ add r0, r5, #0
+ bl MOD11_0225A270
+ b _02259DEA
+_02259DDA:
+ add r0, sp, #0x40
+ ldrb r0, [r0, r4]
+ cmp r0, #0
+ bne _02259DEA
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0225ABA4
+_02259DEA:
+ add r4, r4, #1
+_02259DEC:
+ cmp r4, #4
+ bge _02259DF2
+ b _02259CE0
+_02259DF2:
+ ldr r0, [sp, #0x28]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x2c]
+ ldr r1, _02259E54 ; =0x000003A2
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, _02259E58 ; =0x000A0B0C
+ mov r3, #2
+ str r0, [sp]
+ ldr r0, _02259E4C ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, _02259E5C ; =0x0225F7C4
+ add r2, r4, #0
+ ldrh r1, [r0, #0x20]
+ str r1, [sp, #0xc]
+ ldrh r0, [r0, #0x22]
+ ldr r1, _02259E60 ; =0x0000051C
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ bl MOD11_0225A458
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02259E38: .word 0x000004CC
+_02259E3C: .word 0x000003C2
+_02259E40: .word 0x000003C3
+_02259E44: .word 0x00010203
+_02259E48: .word 0x00040506
+_02259E4C: .word 0x00004E33
+_02259E50: .word 0x0225F7D4
+_02259E54: .word 0x000003A2
+_02259E58: .word 0x000A0B0C
+_02259E5C: .word 0x0225F7C4
+_02259E60: .word 0x0000051C
+
+ thumb_func_start MOD11_02259E64
+MOD11_02259E64: ; 0x02259E64
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ mov r0, #0xff
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #1
+ cmp r0, #5
+ bhi _02259E8C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02259E80: ; jump table
+ .short _02259E8C - _02259E80 - 2 ; case 0
+ .short _02259E8C - _02259E80 - 2 ; case 1
+ .short _02259E90 - _02259E80 - 2 ; case 2
+ .short _02259EB4 - _02259E80 - 2 ; case 3
+ .short _02259EBA - _02259E80 - 2 ; case 4
+ .short _02259EC0 - _02259E80 - 2 ; case 5
+_02259E8C:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02259E90:
+ ldr r0, _02259F24 ; =0x0000069E
+ mov r7, #0
+ ldrb r0, [r4, r0]
+ add r6, r7, #0
+ cmp r0, #0
+ beq _02259EA6
+ cmp r0, #2
+ beq _02259EAA
+ cmp r0, #4
+ beq _02259EAA
+ b _02259EC4
+_02259EA6:
+ str r0, [sp]
+ b _02259EC4
+_02259EAA:
+ ldr r0, _02259F24 ; =0x0000069E
+ ldrb r0, [r4, r0]
+ sub r0, r0, #2
+ str r0, [sp]
+ b _02259EC4
+_02259EB4:
+ mov r7, #1
+ add r6, r7, #0
+ b _02259EC4
+_02259EBA:
+ mov r7, #2
+ mov r6, #1
+ b _02259EC4
+_02259EC0:
+ mov r7, #3
+ mov r6, #1
+_02259EC4:
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_0225ADD4
+ ldr r0, _02259F28 ; =MOD11_0225AE4C
+ add r1, r4, #0
+ bl MOD11_0225AD80
+ ldr r0, _02259F2C ; =0x0225F854
+ sub r2, r5, #1
+ mov r1, #6
+ mul r1, r2
+ add r0, r0, r1
+ ldr r1, _02259F30 ; =0x000006B4
+ lsl r2, r2, #2
+ str r0, [r4, r1]
+ ldr r0, _02259F34 ; =0x0225F70C
+ add r3, r0, r2
+ add r0, r1, #4
+ str r3, [r4, r0]
+ add r0, r1, #0
+ mov r3, #1
+ add r0, #0xc
+ strb r3, [r4, r0]
+ add r0, r1, #0
+ add r0, #8
+ str r5, [r4, r0]
+ add r0, r1, #0
+ add r0, #0xd
+ strb r7, [r4, r0]
+ add r3, r1, #0
+ ldr r0, [sp]
+ add r3, #0xe
+ strb r0, [r4, r3]
+ add r0, r1, #0
+ add r0, #0xf
+ strb r6, [r4, r0]
+ ldr r0, _02259F38 ; =0x0225F79C
+ add r3, r0, r2
+ ldrh r2, [r0, r2]
+ add r0, r1, #0
+ add r0, #0x10
+ strh r2, [r4, r0]
+ ldrh r0, [r3, #2]
+ add r1, #0x12
+ strh r0, [r4, r1]
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02259F24: .word 0x0000069E
+_02259F28: .word MOD11_0225AE4C
+_02259F2C: .word 0x0225F854
+_02259F30: .word 0x000006B4
+_02259F34: .word 0x0225F70C
+_02259F38: .word 0x0225F79C
+
+ thumb_func_start MOD11_02259F3C
+MOD11_02259F3C: ; 0x02259F3C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r1, #0
+ mvn r0, r0
+ add r1, r2, #0
+ cmp r4, r0
+ bne _02259F50
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02259F50:
+ add r2, r5, #0
+ add r2, #0x18
+ cmp r4, #1
+ blt _02259F66
+ cmp r4, #4
+ bgt _02259F66
+ sub r3, r4, #1
+ lsl r3, r3, #1
+ ldrh r2, [r2, r3]
+ cmp r2, #0
+ beq _02259FCA
+_02259F66:
+ sub r0, r4, #1
+ cmp r4, #4
+ bgt _02259F88
+ add r2, r4, #1
+ bmi _02259F8C
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02259F7C: ; jump table
+ .short _02259F8C - _02259F7C - 2 ; case 0
+ .short _02259F8C - _02259F7C - 2 ; case 1
+ .short _02259F92 - _02259F7C - 2 ; case 2
+ .short _02259F92 - _02259F7C - 2 ; case 3
+ .short _02259F92 - _02259F7C - 2 ; case 4
+ .short _02259F92 - _02259F7C - 2 ; case 5
+_02259F88:
+ cmp r4, #0xff
+ beq _02259FA2
+_02259F8C:
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_02259F92:
+ mov r2, #6
+ mul r2, r0
+ ldr r3, _02259FCC ; =0x0225F86C
+ lsl r0, r0, #2
+ add r7, r3, r2
+ ldr r2, _02259FD0 ; =0x0225F7AC
+ add r6, r2, r0
+ b _02259FA6
+_02259FA2:
+ ldr r7, _02259FD4 ; =0x0225F884
+ ldr r6, _02259FD8 ; =0x0225F7BC
+_02259FA6:
+ add r0, r5, #0
+ bl MOD11_0225ADD4
+ ldr r0, _02259FDC ; =MOD11_0225AF9C
+ add r1, r5, #0
+ bl MOD11_0225AD80
+ ldr r1, _02259FE0 ; =0x000006B4
+ mov r2, #3
+ str r7, [r5, r1]
+ add r0, r1, #4
+ str r6, [r5, r0]
+ add r0, r1, #0
+ add r0, #0xc
+ strb r2, [r5, r0]
+ add r1, #8
+ str r4, [r5, r1]
+ add r0, r4, #0
+_02259FCA:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02259FCC: .word 0x0225F86C
+_02259FD0: .word 0x0225F7AC
+_02259FD4: .word 0x0225F884
+_02259FD8: .word 0x0225F7BC
+_02259FDC: .word MOD11_0225AF9C
+_02259FE0: .word 0x000006B4
+
+ thumb_func_start MOD11_02259FE4
+MOD11_02259FE4: ; 0x02259FE4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r1, #0
+ mvn r0, r0
+ cmp r4, r0
+ beq _02259FFA
+ cmp r4, #1
+ beq _02259FFE
+ cmp r4, #0xff
+ beq _0225A002
+_02259FFA:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02259FFE:
+ mov r6, #0
+ b _0225A004
+_0225A002:
+ mov r6, #1
+_0225A004:
+ add r0, r5, #0
+ add r1, r2, #0
+ bl MOD11_0225ADD4
+ ldr r0, _0225A048 ; =MOD11_0225AE4C
+ add r1, r5, #0
+ bl MOD11_0225AD80
+ cmp r4, #1
+ ldr r0, _0225A04C ; =0x000006B4
+ bne _0225A022
+ ldr r1, _0225A050 ; =0x0225F6F6
+ str r1, [r5, r0]
+ ldr r1, _0225A054 ; =0x0225F6CC
+ b _0225A028
+_0225A022:
+ ldr r1, _0225A058 ; =0x0225F6F0
+ str r1, [r5, r0]
+ ldr r1, _0225A05C ; =0x0225F6C8
+_0225A028:
+ add r0, r0, #4
+ str r1, [r5, r0]
+ mov r0, #0x1b
+ mov r1, #6
+ lsl r0, r0, #6
+ strb r1, [r5, r0]
+ sub r1, r0, #4
+ str r4, [r5, r1]
+ add r1, r0, #1
+ strb r6, [r5, r1]
+ mov r1, #3
+ add r0, r0, #3
+ strb r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0225A048: .word MOD11_0225AE4C
+_0225A04C: .word 0x000006B4
+_0225A050: .word 0x0225F6F6
+_0225A054: .word 0x0225F6CC
+_0225A058: .word 0x0225F6F0
+_0225A05C: .word 0x0225F6C8
+
+ thumb_func_start MOD11_0225A060
+MOD11_0225A060: ; 0x0225A060
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r1, #0
+ add r1, sp, #0
+ mov r2, #1
+ add r4, r0, #0
+ bl MOD11_0225ACD4
+ cmp r5, #4
+ bgt _0225A090
+ add r0, r5, #1
+ bmi _0225A094
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225A084: ; jump table
+ .short _0225A094 - _0225A084 - 2 ; case 0
+ .short _0225A094 - _0225A084 - 2 ; case 1
+ .short _0225A09A - _0225A084 - 2 ; case 2
+ .short _0225A0AA - _0225A084 - 2 ; case 3
+ .short _0225A0BA - _0225A084 - 2 ; case 4
+ .short _0225A0CA - _0225A084 - 2 ; case 5
+_0225A090:
+ cmp r5, #0xff
+ beq _0225A0DA
+_0225A094:
+ add sp, #4
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, pc}
+_0225A09A:
+ add r0, sp, #0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0225A116
+ mov r0, #0
+ add sp, #4
+ mvn r0, r0
+ pop {r3, r4, r5, r6, pc}
+_0225A0AA:
+ add r0, sp, #0
+ ldrb r0, [r0, #1]
+ cmp r0, #0
+ bne _0225A116
+ mov r0, #0
+ add sp, #4
+ mvn r0, r0
+ pop {r3, r4, r5, r6, pc}
+_0225A0BA:
+ add r0, sp, #0
+ ldrb r0, [r0, #2]
+ cmp r0, #0
+ bne _0225A116
+ mov r0, #0
+ add sp, #4
+ mvn r0, r0
+ pop {r3, r4, r5, r6, pc}
+_0225A0CA:
+ add r0, sp, #0
+ ldrb r0, [r0, #3]
+ cmp r0, #0
+ bne _0225A116
+ mov r0, #0
+ add sp, #4
+ mvn r0, r0
+ pop {r3, r4, r5, r6, pc}
+_0225A0DA:
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD11_0225ADD4
+ ldr r0, _0225A14C ; =MOD11_0225AE4C
+ add r1, r4, #0
+ bl MOD11_0225AD80
+ ldr r0, _0225A150 ; =0x0225F8A4
+ ldr r1, _0225A154 ; =0x000006B4
+ ldr r2, _0225A158 ; =0x0225F80C
+ str r0, [r4, r1]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ add r0, r1, #0
+ mov r2, #4
+ add r0, #0xc
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #8
+ str r5, [r4, r0]
+ add r0, r1, #0
+ add r0, #0xd
+ strb r2, [r4, r0]
+ mov r0, #3
+ add r1, #0xf
+ strb r0, [r4, r1]
+ add sp, #4
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, pc}
+_0225A116:
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r2, _0225A15C ; =0x000002FF
+ add r6, r0, #0
+ mov r1, #5
+ bl FUN_02018768
+ add r0, r6, #0
+ mov r1, #5
+ bl FUN_0201AC68
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0225ADD0
+ ldr r0, _0225A160 ; =MOD11_0225B234
+ add r1, r4, #0
+ bl MOD11_0225AD80
+ mov r0, #0x6d
+ lsl r0, r0, #4
+ str r5, [r4, r0]
+ add r0, r5, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0225A14C: .word MOD11_0225AE4C
+_0225A150: .word 0x0225F8A4
+_0225A154: .word 0x000006B4
+_0225A158: .word 0x0225F80C
+_0225A15C: .word 0x000002FF
+_0225A160: .word MOD11_0225B234
+
+ thumb_func_start MOD11_0225A164
+MOD11_0225A164: ; 0x0225A164
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230078
+ add r4, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230080
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300CC
+ 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 r1, #3
+ str r1, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, _0225A1DC ; =0x00004E32
+ add r2, r4, #0
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r3, r6, #0
+ bl FUN_0200C0DC
+ bl FUN_0206B890
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0225A1E0 ; =0x00004E31
+ add r1, r6, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x13
+ bl FUN_0200C124
+ bl FUN_0206B89C
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0225A1E0 ; =0x00004E31
+ add r1, r6, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x13
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+ nop
+_0225A1DC: .word 0x00004E32
+_0225A1E0: .word 0x00004E31
+
+ thumb_func_start MOD11_0225A1E4
+MOD11_0225A1E4: ; 0x0225A1E4
+ push {r4, lr}
+ ldr r0, [r0]
+ bl MOD11_02230080
+ ldr r1, _0225A220 ; =0x00004E40
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _0225A224 ; =0x00004E41
+ add r0, r4, #0
+ bl FUN_0200C358
+ ldr r1, _0225A228 ; =0x00004E42
+ add r0, r4, #0
+ bl FUN_0200C358
+ ldr r1, _0225A22C ; =0x00004E31
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0225A22C ; =0x00004E31
+ add r0, r4, #0
+ bl FUN_0200C388
+ ldr r1, _0225A230 ; =0x00004E32
+ add r0, r4, #0
+ bl FUN_0200C368
+ pop {r4, pc}
+ nop
+_0225A220: .word 0x00004E40
+_0225A224: .word 0x00004E41
+_0225A228: .word 0x00004E42
+_0225A22C: .word 0x00004E31
+_0225A230: .word 0x00004E32
+
+ thumb_func_start MOD11_0225A234
+MOD11_0225A234: ; 0x0225A234
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+ add r7, r4, #0
+_0225A23E:
+ ldr r0, _0225A268 ; =0x00000624
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0225A24E
+ bl FUN_0200C3DC
+ ldr r0, _0225A268 ; =0x00000624
+ str r6, [r5, r0]
+_0225A24E:
+ ldr r0, _0225A26C ; =0x00000634
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0225A25E
+ bl FUN_0200CAB4
+ ldr r0, _0225A26C ; =0x00000634
+ str r7, [r5, r0]
+_0225A25E:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0225A23E
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225A268: .word 0x00000624
+_0225A26C: .word 0x00000634
+
+ thumb_func_start MOD11_0225A270
+MOD11_0225A270: ; 0x0225A270
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x50
+ add r6, r2, #0
+ add r4, r0, #0
+ str r1, [sp, #0xc]
+ str r3, [sp, #0x10]
+ cmp r6, #2
+ blt _0225A284
+ sub r5, r6, #2
+ b _0225A286
+_0225A284:
+ add r5, r6, #0
+_0225A286:
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _0225A3D0 ; =0x00000624
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225A296
+ bl ErrorHandling
+_0225A296:
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _0225A3D4 ; =0x00000634
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225A2A6
+ bl ErrorHandling
+_0225A2A6:
+ cmp r6, #5
+ bhi _0225A2CE
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225A2B6: ; jump table
+ .short _0225A2C2 - _0225A2B6 - 2 ; case 0
+ .short _0225A2CE - _0225A2B6 - 2 ; case 1
+ .short _0225A2C2 - _0225A2B6 - 2 ; case 2
+ .short _0225A2C6 - _0225A2B6 - 2 ; case 3
+ .short _0225A2C2 - _0225A2B6 - 2 ; case 4
+ .short _0225A2CA - _0225A2B6 - 2 ; case 5
+_0225A2C2:
+ ldr r6, _0225A3D8 ; =0x00004E40
+ b _0225A2D8
+_0225A2C6:
+ ldr r6, _0225A3DC ; =0x00004E41
+ b _0225A2D8
+_0225A2CA:
+ ldr r6, _0225A3E0 ; =0x00004E42
+ b _0225A2D8
+_0225A2CE:
+ bl ErrorHandling
+ add sp, #0x50
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225A2D8:
+ ldr r0, [r4]
+ bl MOD11_02230078
+ str r0, [sp, #0x18]
+ ldr r0, [r4]
+ bl MOD11_02230080
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0xc]
+ bl FUN_0206B6C8
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x14]
+ mov r2, #0x13
+ str r6, [sp, #8]
+ bl FUN_0200C00C
+ ldr r3, _0225A3E4 ; =0x0225F948
+ add r2, sp, #0x1c
+ mov r7, #6
+_0225A30A:
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ sub r7, r7, #1
+ bne _0225A30A
+ ldr r0, [r3]
+ lsl r3, r5, #2
+ str r0, [r2]
+ ldr r2, _0225A3E8 ; =0x0225F76C
+ str r6, [sp, #0x30]
+ ldrh r1, [r2, r3]
+ add r0, sp, #0x1c
+ strh r1, [r0]
+ add r1, r2, r3
+ ldrh r1, [r1, #2]
+ add r2, sp, #0x1c
+ strh r1, [r0, #2]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x14]
+ bl FUN_0200C154
+ add r3, sp, #0x1c
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ mov r3, #0x11
+ lsl r3, r3, #0x10
+ add r6, r0, #0
+ bl FUN_0200C750
+ ldr r0, [sp, #0xc]
+ bl FUN_0206B87C
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl FUN_020202DC
+ ldr r0, [sp, #0x10]
+ mov r7, #0
+ cmp r0, #0
+ beq _0225A3A8
+ ldr r0, [sp, #0x6c]
+ cmp r0, #2
+ beq _0225A3A8
+ cmp r0, #3
+ beq _0225A3A8
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x68]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x30
+ bl FUN_02079A54
+ cmp r0, #4
+ bhi _0225A3A0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225A388: ; jump table
+ .short _0225A3A0 - _0225A388 - 2 ; case 0
+ .short _0225A39E - _0225A388 - 2 ; case 1
+ .short _0225A39A - _0225A388 - 2 ; case 2
+ .short _0225A396 - _0225A388 - 2 ; case 3
+ .short _0225A392 - _0225A388 - 2 ; case 4
+_0225A392:
+ mov r7, #1
+ b _0225A3A0
+_0225A396:
+ mov r7, #2
+ b _0225A3A0
+_0225A39A:
+ mov r7, #3
+ b _0225A3A0
+_0225A39E:
+ mov r7, #4
+_0225A3A0:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_0200C5C0
+_0225A3A8:
+ add r0, r6, #0
+ bl FUN_0200C5A8
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _0225A3D0 ; =0x00000624
+ ldr r2, _0225A3EC ; =0x00000514
+ str r6, [r1, r0]
+ ldr r0, _0225A3F0 ; =MOD11_0225A3F4
+ add r1, r6, #0
+ bl FUN_0200CA44
+ lsl r1, r5, #2
+ add r2, r4, r1
+ ldr r1, _0225A3D4 ; =0x00000634
+ str r0, [r2, r1]
+ add r0, r6, #0
+ add sp, #0x50
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225A3D0: .word 0x00000624
+_0225A3D4: .word 0x00000634
+_0225A3D8: .word 0x00004E40
+_0225A3DC: .word 0x00004E41
+_0225A3E0: .word 0x00004E42
+_0225A3E4: .word 0x0225F948
+_0225A3E8: .word 0x0225F76C
+_0225A3EC: .word 0x00000514
+_0225A3F0: .word MOD11_0225A3F4
+
+ thumb_func_start MOD11_0225A3F4
+MOD11_0225A3F4: ; 0x0225A3F4
+ ldr r3, _0225A3FC ; =0x0200C5A9
+ add r0, r1, #0
+ bx r3
+ nop
+_0225A3FC: .word 0x0200C5A9
+
+ thumb_func_start MOD11_0225A400
+MOD11_0225A400: ; 0x0225A400
+ cmp r0, #3
+ bhi _0225A418
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225A410: ; jump table
+ .short _0225A418 - _0225A410 - 2 ; case 0
+ .short _0225A41C - _0225A410 - 2 ; case 1
+ .short _0225A420 - _0225A410 - 2 ; case 2
+ .short _0225A424 - _0225A410 - 2 ; case 3
+_0225A418:
+ mov r0, #0
+ bx lr
+_0225A41C:
+ mov r0, #1
+ bx lr
+_0225A420:
+ mov r0, #3
+ bx lr
+_0225A424:
+ mov r0, #2
+ bx lr
+
+ thumb_func_start MOD11_0225A428
+MOD11_0225A428: ; 0x0225A428
+ 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
+ blx FX_ModS32
+ cmp r0, #0
+ beq _0225A450
+ add r5, r5, #1
+_0225A450:
+ str r4, [r6]
+ str r5, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225A458
+MOD11_0225A458: ; 0x0225A458
+ 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 _0225A472
+ bl ErrorHandling
+_0225A472:
+ ldr r0, [r7]
+ bl MOD11_02230080
+ str r0, [sp, #0x20]
+ ldr r0, [r7]
+ bl MOD11_0222FF68
+ str r0, [sp, #0x24]
+ cmp r4, #0
+ bne _0225A494
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ add r2, sp, #0x2c
+ add r3, sp, #0x28
+ bl MOD11_0225A428
+ b _0225A49C
+_0225A494:
+ ldrh r0, [r4, #0x12]
+ str r0, [sp, #0x2c]
+ ldrh r0, [r4, #0x10]
+ str r0, [sp, #0x28]
+_0225A49C:
+ cmp r4, #0
+ bne _0225A4DA
+ 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 _0225A4E6
+_0225A4DA:
+ add r3, r4, #0
+ add r2, sp, #0x3c
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+_0225A4E6:
+ add r0, sp, #0x3c
+ mov r1, #2
+ mov r2, #5
+ bl FUN_02011898
+ mov r1, #1
+ mov r2, #2
+ add r3, sp, #0x30
+ bl FUN_0201D568
+ ldr r0, [sp, #0xa4]
+ cmp r0, #1
+ bne _0225A50A
+ ldr r1, [sp, #0x2c]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ sub r6, r6, r0
+_0225A50A:
+ ldr r0, _0225A588 ; =0x000004C8
+ ldr r0, [r7, r0]
+ 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, #5
+ 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 _0225A570
+ add r0, sp, #0x3c
+ bl FUN_02019178
+_0225A570:
+ 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}
+ nop
+_0225A588: .word 0x000004C8
+
+ thumb_func_start MOD11_0225A58C
+MOD11_0225A58C: ; 0x0225A58C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0x4d
+ mov r6, #0
+ lsl r0, r0, #4
+ add r4, r5, r0
+ add r7, r6, #0
+_0225A59A:
+ ldr r0, _0225A5BC ; =0x000004CC
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0225A5B0
+ bl FUN_02011870
+ add r0, r4, #0
+ bl FUN_0201D5E8
+ ldr r0, _0225A5BC ; =0x000004CC
+ str r7, [r5, r0]
+_0225A5B0:
+ add r6, r6, #1
+ add r5, #0x14
+ add r4, #0x14
+ cmp r6, #0xd
+ blt _0225A59A
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225A5BC: .word 0x000004CC
+
+ thumb_func_start MOD11_0225A5C0
+MOD11_0225A5C0: ; 0x0225A5C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ ldr r0, [r7]
+ bl MOD11_0222FF68
+ mov r1, #5
+ bl FUN_0201886C
+ add r4, r0, #0
+ add r0, r7, #0
+ add r1, sp, #4
+ mov r2, #0
+ bl MOD11_0225ACD4
+ add r0, sp, #0
+ ldrb r0, [r0, #4]
+ cmp r0, #1
+ bne _0225A63A
+ add r0, r7, #0
+ mov r1, #1
+ add r2, sp, #0
+ mov r3, #0
+ bl MOD11_0225AD2C
+ add r0, sp, #0
+ ldrb r0, [r0, #2]
+ cmp r0, #1
+ bne _0225A61E
+ mov r5, #0xc
+ mov r0, #0xa9
+ lsl r6, r5, #5
+ lsl r0, r0, #2
+ mov r2, #0xf
+_0225A604:
+ lsl r1, r6, #1
+ add r1, r4, r1
+ add r3, r2, #0
+ add r1, #0x1e
+_0225A60C:
+ add r3, r3, #1
+ strh r0, [r1]
+ add r1, r1, #2
+ cmp r3, #0x10
+ ble _0225A60C
+ add r5, r5, #1
+ add r6, #0x20
+ cmp r5, #0x10
+ ble _0225A604
+_0225A61E:
+ add r0, sp, #0
+ ldrb r0, [r0, #3]
+ cmp r0, #1
+ bne _0225A63A
+ mov r0, #0xa1
+ lsl r0, r0, #2
+ add r1, r4, r0
+ mov r2, #2
+ add r0, #0x20
+_0225A630:
+ add r2, r2, #1
+ strh r0, [r1]
+ add r1, r1, #2
+ cmp r2, #0xc
+ ble _0225A630
+_0225A63A:
+ add r0, sp, #0
+ ldrb r0, [r0, #5]
+ cmp r0, #1
+ bne _0225A694
+ add r0, r7, #0
+ mov r1, #2
+ add r2, sp, #0
+ mov r3, #0
+ bl MOD11_0225AD2C
+ add r0, sp, #0
+ ldrb r0, [r0, #2]
+ cmp r0, #1
+ bne _0225A668
+ ldr r0, _0225A698 ; =0x000002A6
+ mov r2, #0x13
+ add r1, r4, r0
+ sub r0, r0, #2
+_0225A65E:
+ add r2, r2, #1
+ strh r0, [r1]
+ add r1, r1, #2
+ cmp r2, #0x1d
+ ble _0225A65E
+_0225A668:
+ add r0, sp, #0
+ ldrb r0, [r0, #3]
+ cmp r0, #1
+ bne _0225A694
+ mov r0, #0xa9
+ mov r5, #3
+ mov r3, #0x60
+ lsl r0, r0, #2
+ mov r2, #0xf
+_0225A67A:
+ lsl r1, r3, #1
+ add r1, r4, r1
+ add r6, r2, #0
+ add r1, #0x1e
+_0225A682:
+ add r6, r6, #1
+ strh r0, [r1]
+ add r1, r1, #2
+ cmp r6, #0x10
+ ble _0225A682
+ add r5, r5, #1
+ add r3, #0x20
+ cmp r5, #7
+ ble _0225A67A
+_0225A694:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225A698: .word 0x000002A6
+
+ thumb_func_start MOD11_0225A69C
+MOD11_0225A69C: ; 0x0225A69C
+ cmp r1, #2
+ blt _0225A6A2
+ sub r1, r1, #2
+_0225A6A2:
+ mov r2, #0x46
+ lsl r2, r2, #2
+ add r0, #0x68
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225A6B0
+MOD11_0225A6B0: ; 0x0225A6B0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ mov r1, #0x13
+ str r0, [sp, #0x10]
+ add r0, #0x90
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ add r0, #0xe0
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ add r0, r0, r1
+ str r0, [sp, #8]
+_0225A6D4:
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r0, [sp]
+ ldr r7, [sp, #0x10]
+ ldr r6, [sp, #0xc]
+ ldr r5, [sp, #8]
+ str r0, [sp, #4]
+ add r4, r0, #0
+_0225A6E4:
+ ldr r0, [sp, #4]
+ add r0, #0x80
+ ldr r0, [r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A6FE
+ add r0, r7, #0
+ bl FUN_02019178
+_0225A6FE:
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A70E
+ add r0, r6, #0
+ bl FUN_02019178
+_0225A70E:
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0225A71E
+ add r0, r5, #0
+ bl FUN_02019178
+_0225A71E:
+ ldr r0, [sp, #4]
+ add r4, #0x14
+ add r0, r0, #4
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ add r7, #0x14
+ add r0, r0, #1
+ add r6, #0x14
+ add r5, #0x14
+ str r0, [sp, #0x18]
+ cmp r0, #4
+ blt _0225A6E4
+ mov r0, #0x46
+ ldr r1, [sp]
+ lsl r0, r0, #2
+ add r1, r1, r0
+ str r1, [sp]
+ ldr r1, [sp, #0x10]
+ add r1, r1, r0
+ str r1, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ add r1, r1, r0
+ str r1, [sp, #0xc]
+ ldr r1, [sp, #8]
+ add r0, r1, r0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, #4
+ blt _0225A6D4
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225A760
+MOD11_0225A760: ; 0x0225A760
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x50
+ add r7, r0, #0
+ ldr r0, [r7]
+ add r5, r1, #0
+ str r2, [sp, #8]
+ bl MOD11_022300C4
+ add r4, r0, #0
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_0225A69C
+ str r0, [sp, #0x38]
+ mov r0, #6
+ bl FUN_020799E8
+ str r0, [sp, #0xc]
+ ldr r1, _0225A95C ; =0x000003AA
+ add r0, r4, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x28]
+ ldr r0, [r7]
+ bl MOD11_02230138
+ str r0, [sp, #0x24]
+ mov r0, #0x10
+ mov r1, #5
+ bl FUN_020219F4
+ str r0, [sp, #0x30]
+ ldr r1, _0225A960 ; =0x000003A9
+ add r0, r4, #0
+ bl FUN_0200A914
+ ldr r4, [sp, #0x38]
+ str r0, [sp, #0x2c]
+ mov r0, #0
+ str r0, [sp, #0x34]
+ add r0, r4, #0
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x18]
+ add r0, #0x28
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ str r0, [sp, #0x14]
+ add r0, #0x78
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ str r0, [sp, #0x10]
+ add r0, #0xc8
+ ldr r5, [sp, #8]
+ add r6, r4, #0
+ str r0, [sp, #0x10]
+_0225A7CE:
+ ldrh r0, [r5]
+ ldrh r1, [r4]
+ cmp r0, r1
+ beq _0225A814
+ cmp r0, #0
+ beq _0225A814
+ mov r1, #3
+ bl FUN_0206AB18
+ str r0, [sp, #0x3c]
+ bl FUN_0206E12C
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x3c]
+ bl FUN_0206E0F0
+ add r1, r0, #0
+ mov r0, #5
+ str r0, [sp]
+ ldr r0, [sp, #0x40]
+ mov r2, #1
+ add r3, sp, #0x4c
+ bl FUN_02006BB0
+ str r0, [sp, #0x44]
+ ldr r0, [sp, #0x4c]
+ ldr r1, [sp, #0x1c]
+ ldr r0, [r0, #0x14]
+ ldr r1, [r1, #0x18]
+ ldr r2, [sp, #0xc]
+ blx MIi_CpuCopy32
+ ldr r0, [sp, #0x44]
+ bl FUN_02016A18
+_0225A814:
+ ldr r0, [r6, #0x34]
+ cmp r0, #0
+ beq _0225A826
+ ldrh r1, [r5]
+ ldrh r0, [r4]
+ cmp r1, r0
+ beq _0225A846
+ cmp r1, #0
+ beq _0225A846
+_0225A826:
+ ldrh r0, [r5]
+ mov r1, #5
+ bl FUN_0200AA14
+ str r0, [sp, #0x48]
+ ldr r0, _0225A964 ; =0x00070809
+ ldr r1, [sp, #0x48]
+ str r0, [sp]
+ ldr r3, [sp, #0x18]
+ add r0, r7, #0
+ mov r2, #2
+ bl MOD11_0225A968
+ ldr r0, [sp, #0x48]
+ bl FUN_02021A20
+_0225A846:
+ add r0, r6, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A876
+ add r0, r6, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A876
+ ldrh r1, [r5]
+ cmp r1, #0
+ bne _0225A876
+ ldrh r0, [r4]
+ cmp r1, r0
+ bne _0225A876
+ ldrh r1, [r5, #8]
+ ldrh r0, [r4, #8]
+ cmp r1, r0
+ bne _0225A876
+ ldrh r1, [r5, #0x10]
+ ldrh r0, [r4, #0x10]
+ cmp r1, r0
+ beq _0225A906
+_0225A876:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldrh r2, [r5, #8]
+ ldr r0, [sp, #0x24]
+ mov r1, #0
+ mov r3, #2
+ bl FUN_0200AD38
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldrh r2, [r5, #0x10]
+ ldr r0, [sp, #0x24]
+ mov r1, #1
+ mov r3, #2
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x30]
+ ldr r2, [sp, #0x2c]
+ bl FUN_0200B7B8
+ ldrh r0, [r5, #8]
+ ldrh r1, [r5, #0x10]
+ bl MOD11_0225B3D4
+ str r0, [sp, #0x20]
+ add r0, r6, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A8CC
+ ldrh r1, [r5]
+ ldrh r0, [r4]
+ cmp r1, r0
+ bne _0225A8CC
+ ldrh r1, [r5, #8]
+ ldrh r0, [r4, #8]
+ cmp r1, r0
+ beq _0225A8DC
+_0225A8CC:
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x30]
+ str r0, [sp]
+ ldr r3, [sp, #0x14]
+ add r0, r7, #0
+ mov r2, #0
+ bl MOD11_0225A968
+_0225A8DC:
+ add r0, r6, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A8F6
+ ldrh r1, [r5]
+ ldrh r0, [r4]
+ cmp r1, r0
+ bne _0225A8F6
+ ldrh r1, [r5, #8]
+ ldrh r0, [r4, #8]
+ cmp r1, r0
+ beq _0225A906
+_0225A8F6:
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x28]
+ str r0, [sp]
+ ldr r3, [sp, #0x10]
+ add r0, r7, #0
+ mov r2, #0
+ bl MOD11_0225A968
+_0225A906:
+ ldr r0, [sp, #0x1c]
+ add r4, r4, #2
+ add r0, r0, #4
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r5, r5, #2
+ add r0, #0x14
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r6, #0x14
+ add r0, #0x14
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r0, #0x14
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x34]
+ add r0, r0, #1
+ str r0, [sp, #0x34]
+ cmp r0, #4
+ bge _0225A930
+ b _0225A7CE
+_0225A930:
+ ldr r0, [sp, #0x28]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x2c]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x30]
+ bl FUN_02021A20
+ mov r0, #0xc
+_0225A944:
+ ldr r1, [sp, #8]
+ ldrh r2, [r1]
+ add r1, r1, #2
+ str r1, [sp, #8]
+ ldr r1, [sp, #0x38]
+ strh r2, [r1]
+ add r1, r1, #2
+ str r1, [sp, #0x38]
+ sub r0, r0, #1
+ bne _0225A944
+ add sp, #0x50
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225A95C: .word 0x000003AA
+_0225A960: .word 0x000003A9
+_0225A964: .word 0x00070809
+
+ thumb_func_start MOD11_0225A968
+MOD11_0225A968: ; 0x0225A968
+ 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 MOD11_0225A428
+ ldr r0, [sp, #0x1c]
+ strh r0, [r4, #0x12]
+ ldr r0, [sp, #0x18]
+ strh r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0225A994
+ add r0, r4, #0
+ bl FUN_02019178
+_0225A994:
+ add r0, r4, #0
+ bl FUN_0201901C
+ ldr r0, [r5]
+ bl MOD11_0222FF68
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ ldr r2, [sp, #0x18]
+ add r1, r4, #0
+ lsl r2, r2, #0x18
+ 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}
+
+ thumb_func_start MOD11_0225A9D4
+MOD11_0225A9D4: ; 0x0225A9D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r5, r0, #0
+ str r0, [sp, #4]
+ add r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [r5]
+ bl MOD11_02230078
+ str r0, [sp, #0xc]
+ ldr r0, [r5]
+ bl MOD11_02230080
+ ldr r1, _0225AAA8 ; =0x0000069E
+ str r0, [sp, #8]
+ ldrb r1, [r5, r1]
+ add r0, r5, #0
+ bl MOD11_0225A69C
+ ldr r4, _0225AAAC ; =0x0225F914
+ str r0, [sp]
+ add r3, sp, #0x10
+ mov r2, #6
+_0225AA02:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0225AA02
+ ldr r0, [r4]
+ mov r4, #0
+ str r0, [r3]
+ add r6, sp, #0x10
+ b _0225AAA0
+_0225AA14:
+ lsl r0, r4, #2
+ add r1, r5, r0
+ ldr r0, _0225AAB0 ; =0x00000604
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225AA24
+ bl ErrorHandling
+_0225AA24:
+ ldr r0, [sp, #4]
+ lsl r1, r4, #1
+ ldrh r0, [r0, r1]
+ cmp r0, #0
+ beq _0225AA9E
+ mov r1, #3
+ bl FUN_0206AB18
+ add r2, r0, #0
+ ldr r0, _0225AAB4 ; =0x00004E35
+ ldr r1, _0225AAB8 ; =0x0225F72C
+ add r0, r4, r0
+ str r0, [sp, #0x24]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ add r3, sp, #0x10
+ strh r1, [r6]
+ ldr r1, _0225AAB8 ; =0x0225F72C
+ add r0, r1, r0
+ ldrh r0, [r0, #2]
+ ldr r1, [sp, #8]
+ strh r0, [r6, #2]
+ ldr r0, [sp, #0xc]
+ bl FUN_0206E240
+ lsl r1, r4, #2
+ add r2, r5, r1
+ ldr r1, _0225AAB0 ; =0x00000604
+ mov r3, #0x11
+ str r0, [r2, r1]
+ add r0, r1, #0
+ ldr r0, [r2, r0]
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r6, r2]
+ lsl r3, r3, #0x10
+ bl FUN_0200C750
+ lsl r0, r4, #2
+ add r1, r5, r0
+ ldr r0, _0225AAB0 ; =0x00000604
+ ldr r0, [r1, r0]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r7, r0, #0
+ mov r0, #6
+ bl FUN_020799E8
+ add r2, r0, #0
+ ldr r0, [sp]
+ lsl r3, r4, #2
+ add r0, r0, r3
+ mov r3, #0x66
+ ldr r1, [r7, #8]
+ lsl r3, r3, #0x14
+ ldr r0, [r0, #0x18]
+ add r1, r3, r1
+ blx MIi_CpuCopy16
+_0225AA9E:
+ add r4, r4, #1
+_0225AAA0:
+ cmp r4, #4
+ blt _0225AA14
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225AAA8: .word 0x0000069E
+_0225AAAC: .word 0x0225F914
+_0225AAB0: .word 0x00000604
+_0225AAB4: .word 0x00004E35
+_0225AAB8: .word 0x0225F72C
+
+ thumb_func_start MOD11_0225AABC
+MOD11_0225AABC: ; 0x0225AABC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230078
+ ldr r0, [r5]
+ bl MOD11_02230080
+ mov r4, #0
+ ldr r7, _0225AAEC ; =0x00000604
+ add r6, r4, #0
+_0225AAD2:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _0225AAE0
+ bl FUN_0206E270
+ ldr r0, _0225AAEC ; =0x00000604
+ str r6, [r5, r0]
+_0225AAE0:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0225AAD2
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225AAEC: .word 0x00000604
+
+ thumb_func_start MOD11_0225AAF0
+MOD11_0225AAF0: ; 0x0225AAF0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230078
+ ldr r0, [r5]
+ bl MOD11_02230080
+ mov r4, #0
+ add r6, r0, #0
+ add r7, r4, #0
+_0225AB06:
+ ldr r0, _0225AB2C ; =0x00000614
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0225AB20
+ bl FUN_0206E2E8
+ ldr r1, _0225AB30 ; =0x00004E39
+ add r0, r6, #0
+ add r1, r4, r1
+ bl FUN_0206E2E0
+ ldr r0, _0225AB2C ; =0x00000614
+ str r7, [r5, r0]
+_0225AB20:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0225AB06
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225AB2C: .word 0x00000614
+_0225AB30: .word 0x00004E39
+
+ thumb_func_start MOD11_0225AB34
+MOD11_0225AB34: ; 0x0225AB34
+ push {r3, r4, r5, lr}
+ ldr r0, [r0]
+ add r5, r1, #0
+ add r4, r2, #0
+ bl MOD11_022300CC
+ add r4, #8
+ add r1, r5, #0
+ mov r2, #5
+ mov r3, #1
+ str r4, [sp]
+ bl FUN_02211E7C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0225AB50
+MOD11_0225AB50: ; 0x0225AB50
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ bl MOD11_022300CC
+ add r6, r0, #0
+ mov r7, #0
+ b _0225AB96
+_0225AB62:
+ ldr r1, _0225AB9C ; =0x0225F6A8
+ lsl r2, r4, #1
+ add r1, r1, r2
+ ldr r2, _0225ABA0 ; =0x0225F74C
+ lsl r3, r4, #2
+ add r2, r2, r3
+ add r0, r5, #0
+ mov r3, #3
+ str r7, [sp]
+ bl MOD11_0225ADD8
+ mov r0, #0x20
+ str r0, [sp]
+ add r3, r4, #0
+ mov r1, #7
+ add r3, #8
+ lsl r3, r3, #0x14
+ ldr r2, [r5, #0x58]
+ lsl r1, r1, #6
+ add r1, r2, r1
+ add r0, r6, #0
+ mov r2, #1
+ lsr r3, r3, #0x10
+ bl FUN_02003054
+ add r4, r4, #1
+_0225AB96:
+ cmp r4, #4
+ blt _0225AB62
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225AB9C: .word 0x0225F6A8
+_0225ABA0: .word 0x0225F74C
+
+ thumb_func_start MOD11_0225ABA4
+MOD11_0225ABA4: ; 0x0225ABA4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ ldr r1, _0225AC50 ; =0x0225F684
+ add r5, r0, #0
+ ldrb r2, [r1, #6]
+ add r0, sp, #0x10
+ strb r2, [r0]
+ ldrb r2, [r1, #7]
+ strb r2, [r0, #1]
+ ldrb r2, [r1, #8]
+ ldrb r1, [r1, #9]
+ strb r2, [r0, #2]
+ strb r1, [r0, #3]
+ ldr r0, [r5]
+ bl MOD11_0222FF68
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300CC
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r2, _0225AC54 ; =0x0225F6C0
+ lsl r1, r4, #1
+ add r1, r2, r1
+ ldr r3, _0225AC58 ; =0x0225F71C
+ lsl r2, r4, #2
+ add r2, r3, r2
+ add r0, r5, #0
+ mov r3, #4
+ bl MOD11_0225ADD8
+ mov r0, #0x20
+ str r0, [sp]
+ add r3, sp, #0x10
+ ldrb r3, [r3, r4]
+ mov r1, #7
+ ldr r2, [r5, #0x58]
+ lsl r1, r1, #6
+ lsl r3, r3, #0x14
+ add r1, r2, r1
+ add r0, r7, #0
+ mov r2, #1
+ lsr r3, r3, #0x10
+ bl FUN_02003054
+ add r0, r6, #0
+ mov r1, #4
+ bl FUN_0201AC68
+ ldr r0, _0225AC58 ; =0x0225F71C
+ lsl r1, r4, #2
+ ldrb r2, [r0, r1]
+ add r3, r0, r1
+ str r2, [sp]
+ ldrb r4, [r3, #3]
+ ldrb r2, [r3, #2]
+ sub r2, r4, r2
+ add r2, r2, #1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #4]
+ ldrb r0, [r0, r1]
+ ldrb r2, [r3, #1]
+ mov r1, #5
+ sub r0, r2, r0
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldrb r3, [r3, #2]
+ ldr r2, _0225AC5C ; =0x000002FF
+ add r0, r6, #0
+ bl FUN_02018540
+ add r0, r6, #0
+ mov r1, #5
+ bl FUN_0201AC68
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0225AC50: .word 0x0225F684
+_0225AC54: .word 0x0225F6C0
+_0225AC58: .word 0x0225F71C
+_0225AC5C: .word 0x000002FF
+
+ thumb_func_start MOD11_0225AC60
+MOD11_0225AC60: ; 0x0225AC60
+ push {r4, r5, r6, lr}
+ mov r5, #0
+ mov r6, #1
+ add r4, r5, #0
+_0225AC68:
+ add r0, r5, #4
+ cmp r0, #6
+ beq _0225AC7A
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r4, #0
+ bl FUN_0201797C
+ b _0225AC84
+_0225AC7A:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r6, #0
+ bl FUN_0201797C
+_0225AC84:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0225AC68
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225AC8C
+MOD11_0225AC8C: ; 0x0225AC8C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ cmp r1, #1
+ bne _0225AC9A
+ bl MOD11_0225ACB0
+_0225AC9A:
+ cmp r4, #1
+ bne _0225ACA8
+ ldr r0, _0225ACAC ; =MOD11_0225B76C
+ add r1, r5, #0
+ mov r2, #0xa
+ bl FUN_0200CA98
+_0225ACA8:
+ pop {r3, r4, r5, pc}
+ nop
+_0225ACAC: .word MOD11_0225B76C
+
+ thumb_func_start MOD11_0225ACB0
+MOD11_0225ACB0: ; 0x0225ACB0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_0225AABC
+ add r0, r4, #0
+ bl MOD11_0225AAF0
+ add r0, r4, #0
+ bl MOD11_0225A58C
+ add r0, r4, #0
+ bl MOD11_0225A1E4
+ add r0, r4, #0
+ bl MOD11_0225A234
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225ACD4
+MOD11_0225ACD4: ; 0x0225ACD4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ add r6, r5, #0
+ add r1, sp, #0
+ add r7, r2, #0
+ add r6, #0x18
+ bl MOD11_022314E0
+ mov r0, #0
+ b _0225AD1E
+_0225ACEE:
+ add r2, r0, #2
+ add r1, sp, #0
+ ldrb r1, [r1, r2]
+ cmp r7, #1
+ bne _0225AD0A
+ lsl r1, r1, #3
+ add r1, r6, r1
+ ldrb r1, [r1, #1]
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1f
+ bne _0225AD0A
+ mov r1, #0
+ strb r1, [r4, r0]
+ b _0225AD1C
+_0225AD0A:
+ mov r1, #0x6a
+ lsl r1, r1, #4
+ ldrb r1, [r5, r1]
+ lsl r2, r0, #2
+ lsl r3, r1, #4
+ ldr r1, _0225AD28 ; =0x0225F9EC
+ add r1, r1, r3
+ ldr r1, [r2, r1]
+ strb r1, [r4, r0]
+_0225AD1C:
+ add r0, r0, #1
+_0225AD1E:
+ cmp r0, #4
+ blt _0225ACEE
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225AD28: .word 0x0225F9EC
+
+ thumb_func_start MOD11_0225AD2C
+MOD11_0225AD2C: ; 0x0225AD2C
+ push {r4, lr}
+ mov r4, #0x6a
+ lsl r4, r4, #4
+ ldrb r4, [r0, r4]
+ cmp r4, #0xb
+ bhi _0225AD76
+ add r4, r4, r4
+ add r4, pc
+ ldrh r4, [r4, #6]
+ lsl r4, r4, #0x10
+ asr r4, r4, #0x10
+ add pc, r4
+_0225AD44: ; jump table
+ .short _0225AD5C - _0225AD44 - 2 ; case 0
+ .short _0225AD76 - _0225AD44 - 2 ; case 1
+ .short _0225AD76 - _0225AD44 - 2 ; case 2
+ .short _0225AD76 - _0225AD44 - 2 ; case 3
+ .short _0225AD76 - _0225AD44 - 2 ; case 4
+ .short _0225AD76 - _0225AD44 - 2 ; case 5
+ .short _0225AD76 - _0225AD44 - 2 ; case 6
+ .short _0225AD76 - _0225AD44 - 2 ; case 7
+ .short _0225AD5C - _0225AD44 - 2 ; case 8
+ .short _0225AD5C - _0225AD44 - 2 ; case 9
+ .short _0225AD5C - _0225AD44 - 2 ; case 10
+ .short _0225AD5C - _0225AD44 - 2 ; case 11
+_0225AD5C:
+ mov r4, #0
+ add r0, r4, #0
+ mov r3, #1
+ sub r1, r1, #1
+_0225AD64:
+ cmp r4, r1
+ bne _0225AD6C
+ strb r3, [r2, r4]
+ b _0225AD6E
+_0225AD6C:
+ strb r0, [r2, r4]
+_0225AD6E:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0225AD64
+ pop {r4, pc}
+_0225AD76:
+ add r1, r2, #0
+ add r2, r3, #0
+ bl MOD11_0225ACD4
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225AD80
+MOD11_0225AD80: ; 0x0225AD80
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0225AD90
+ bl ErrorHandling
+_0225AD90:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #0x24
+ blx MI_CpuFill8
+ ldr r2, _0225ADAC ; =0x00000514
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225ADAC: .word 0x00000514
+
+ thumb_func_start MOD11_0225ADB0
+MOD11_0225ADB0: ; 0x0225ADB0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0225ADCE
+ bl FUN_0200CAB4
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #0x24
+ str r1, [r4, #8]
+ blx MI_CpuFill8
+_0225ADCE:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225ADD0
+MOD11_0225ADD0: ; 0x0225ADD0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225ADD4
+MOD11_0225ADD4: ; 0x0225ADD4
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225ADD8
+MOD11_0225ADD8: ; 0x0225ADD8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ bl MOD11_0222FF68
+ mov r1, #4
+ str r0, [sp, #4]
+ bl FUN_0201886C
+ mov ip, r0
+ lsl r0, r7, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x3c]
+ ldrb r7, [r4]
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ lsl r0, r0, #1
+ ldrsh r1, [r6, r0]
+ ldrb r0, [r4, #1]
+ cmp r7, r0
+ bgt _0225AE40
+ lsl r6, r7, #5
+_0225AE0C:
+ lsl r2, r6, #1
+ mov r0, ip
+ add r5, r0, r2
+ ldr r0, [sp]
+ ldrb r3, [r4, #3]
+ add r2, r0, r2
+ ldrb r0, [r4, #2]
+ cmp r0, r3
+ bgt _0225AE36
+ lsl r3, r0, #1
+ add r2, r2, r3
+ add r3, r5, r3
+_0225AE24:
+ ldrh r5, [r2]
+ add r0, r0, #1
+ add r2, r2, #2
+ add r5, r1, r5
+ strh r5, [r3]
+ ldrb r5, [r4, #3]
+ add r3, r3, #2
+ cmp r0, r5
+ ble _0225AE24
+_0225AE36:
+ ldrb r0, [r4, #1]
+ add r7, r7, #1
+ add r6, #0x20
+ cmp r7, r0
+ ble _0225AE0C
+_0225AE40:
+ ldr r0, [sp, #4]
+ mov r1, #4
+ bl FUN_0201AC68
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225AE4C
+MOD11_0225AE4C: ; 0x0225AE4C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ mov r3, #0x6b
+ lsl r3, r3, #4
+ ldrsh r0, [r4, r3]
+ cmp r0, #0
+ beq _0225AE6C
+ cmp r0, #1
+ beq _0225AEDC
+ cmp r0, #2
+ beq _0225AEF8
+ b _0225AF66
+_0225AE6C:
+ mov r0, #2
+ str r0, [sp]
+ add r1, r3, #4
+ add r2, r3, #0
+ add r3, #0x10
+ add r2, #8
+ ldrb r3, [r4, r3]
+ ldr r1, [r4, r1]
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD11_0225ADD8
+ ldr r0, _0225AF8C ; =0x000006C1
+ add r2, sp, #4
+ ldrb r1, [r4, r0]
+ mov r0, #0x14
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0225AF90 ; =0x000004CC
+ ldr r0, [r1, r0]
+ add r1, sp, #8
+ bl FUN_020119A4
+ ldr r0, _0225AF8C ; =0x000006C1
+ ldr r2, [sp, #4]
+ ldrb r1, [r4, r0]
+ mov r0, #0x14
+ sub r2, r2, #2
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0225AF90 ; =0x000004CC
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #8]
+ bl FUN_020118C4
+ ldr r0, _0225AF94 ; =0x000006C2
+ ldrb r1, [r4, r0]
+ cmp r1, #0xff
+ beq _0225AECE
+ lsl r1, r1, #2
+ add r1, r4, r1
+ sub r0, #0x9e
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225AECE
+ mov r1, #0
+ sub r2, r1, #2
+ bl FUN_0200C82C
+_0225AECE:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0xc
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r3, r4, pc}
+_0225AEDC:
+ 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 _0225AF86
+ mov r1, #0
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r3]
+ add r0, r0, #1
+ strh r0, [r4, r3]
+_0225AEF8:
+ mov r0, #1
+ ldr r3, _0225AF98 ; =0x000006B4
+ str r0, [sp]
+ add r2, r3, #4
+ ldr r1, [r4, r3]
+ add r3, #0xc
+ ldrb r3, [r4, r3]
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD11_0225ADD8
+ ldr r0, _0225AF8C ; =0x000006C1
+ add r2, sp, #4
+ ldrb r1, [r4, r0]
+ mov r0, #0x14
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0225AF90 ; =0x000004CC
+ ldr r0, [r1, r0]
+ add r1, sp, #8
+ bl FUN_020119A4
+ ldr r0, _0225AF8C ; =0x000006C1
+ ldr r2, [sp, #4]
+ ldrb r1, [r4, r0]
+ mov r0, #0x14
+ add r2, r2, #1
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0225AF90 ; =0x000004CC
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #8]
+ bl FUN_020118C4
+ ldr r0, _0225AF94 ; =0x000006C2
+ ldrb r1, [r4, r0]
+ cmp r1, #0xff
+ beq _0225AF58
+ lsl r1, r1, #2
+ add r1, r4, r1
+ sub r0, #0x9e
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225AF58
+ mov r1, #0
+ mov r2, #1
+ bl FUN_0200C82C
+_0225AF58:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0xc
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r3, r4, pc}
+_0225AF66:
+ 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 _0225AF86
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD11_0225AC8C
+ add r0, r4, #0
+ bl MOD11_0225ADB0
+_0225AF86:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0225AF8C: .word 0x000006C1
+_0225AF90: .word 0x000004CC
+_0225AF94: .word 0x000006C2
+_0225AF98: .word 0x000006B4
+
+ thumb_func_start MOD11_0225AF9C
+MOD11_0225AF9C: ; 0x0225AF9C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r4, r1, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r0, _0225B21C ; =0x000006BC
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ add r1, #0x18
+ cmp r0, #4
+ bgt _0225AFCE
+ cmp r0, #0
+ blt _0225B00A
+ add r2, r0, r0
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0225AFC4: ; jump table
+ .short _0225B00A - _0225AFC4 - 2 ; case 0
+ .short _0225AFD2 - _0225AFC4 - 2 ; case 1
+ .short _0225AFE0 - _0225AFC4 - 2 ; case 2
+ .short _0225AFEE - _0225AFC4 - 2 ; case 3
+ .short _0225AFFC - _0225AFC4 - 2 ; case 4
+_0225AFCE:
+ cmp r0, #0xff
+ b _0225B00A
+_0225AFD2:
+ mov r0, #5
+ str r0, [sp, #8]
+ ldrh r0, [r1]
+ mov r5, #0
+ mov r6, #9
+ str r0, [sp, #4]
+ b _0225B012
+_0225AFE0:
+ mov r0, #6
+ str r0, [sp, #8]
+ ldrh r0, [r1, #2]
+ mov r5, #1
+ mov r6, #0xa
+ str r0, [sp, #4]
+ b _0225B012
+_0225AFEE:
+ mov r0, #7
+ str r0, [sp, #8]
+ ldrh r0, [r1, #4]
+ mov r5, #2
+ mov r6, #0xb
+ str r0, [sp, #4]
+ b _0225B012
+_0225AFFC:
+ mov r0, #8
+ str r0, [sp, #8]
+ ldrh r0, [r1, #6]
+ mov r5, #3
+ mov r6, #0xc
+ str r0, [sp, #4]
+ b _0225B012
+_0225B00A:
+ mov r5, #0
+ add r6, r5, #0
+ str r5, [sp, #8]
+ str r5, [sp, #4]
+_0225B012:
+ mov r3, #0x6b
+ lsl r3, r3, #4
+ ldrsh r0, [r4, r3]
+ cmp r0, #0
+ beq _0225B026
+ cmp r0, #1
+ beq _0225B100
+ cmp r0, #2
+ beq _0225B11E
+ b _0225B1F6
+_0225B026:
+ mov r0, #2
+ str r0, [sp]
+ add r1, r3, #4
+ add r2, r3, #0
+ add r3, #0x10
+ add r2, #8
+ ldrb r3, [r4, r3]
+ ldr r1, [r4, r1]
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD11_0225ADD8
+ ldr r0, _0225B21C ; =0x000006BC
+ add r1, sp, #0x20
+ ldr r0, [r4, r0]
+ cmp r0, #0xff
+ beq _0225B0DA
+ ldr r0, _0225B220 ; =0x000004CC
+ add r2, sp, #0x1c
+ add r7, r4, r0
+ mov r0, #0x14
+ mul r0, r5
+ str r0, [sp, #0xc]
+ ldr r0, [r7, r0]
+ bl FUN_020119A4
+ ldr r0, [sp, #0xc]
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #0x20]
+ sub r2, r2, #2
+ bl FUN_020118C4
+ ldr r0, _0225B220 ; =0x000004CC
+ add r1, sp, #0x20
+ add r7, r4, r0
+ mov r0, #0x14
+ mul r0, r6
+ str r0, [sp, #0x10]
+ ldr r0, [r7, r0]
+ add r2, sp, #0x1c
+ bl FUN_020119A4
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #0x20]
+ sub r2, r2, #2
+ bl FUN_020118C4
+ ldr r0, _0225B220 ; =0x000004CC
+ mov r1, #0x14
+ add r6, r4, r0
+ ldr r0, [sp, #8]
+ add r2, sp, #0x1c
+ add r7, r0, #0
+ mul r7, r1
+ ldr r0, [r6, r7]
+ add r1, sp, #0x20
+ bl FUN_020119A4
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r6, r7]
+ ldr r1, [sp, #0x20]
+ sub r2, r2, #2
+ bl FUN_020118C4
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _0225B0F2
+ lsl r5, r5, #2
+ ldr r0, _0225B224 ; =0x00000604
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ mov r1, #0
+ ldr r0, [r0]
+ sub r2, r1, #2
+ bl FUN_0200C7FC
+ ldr r0, _0225B228 ; =0x00000614
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B0F2
+ mov r1, #0
+ ldr r0, [r0]
+ sub r2, r1, #2
+ bl FUN_0200C7FC
+ b _0225B0F2
+_0225B0DA:
+ ldr r0, _0225B22C ; =0x0000051C
+ add r2, sp, #0x1c
+ ldr r0, [r4, r0]
+ bl FUN_020119A4
+ ldr r0, _0225B22C ; =0x0000051C
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0x20]
+ sub r2, r2, #2
+ bl FUN_020118C4
+_0225B0F2:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0x24
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r4, r5, r6, r7, pc}
+_0225B100:
+ 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
+ bgt _0225B112
+ b _0225B216
+_0225B112:
+ mov r1, #0
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r3]
+ add r0, r0, #1
+ strh r0, [r4, r3]
+_0225B11E:
+ mov r0, #1
+ ldr r3, _0225B230 ; =0x000006B4
+ str r0, [sp]
+ add r2, r3, #4
+ ldr r1, [r4, r3]
+ add r3, #0xc
+ ldrb r3, [r4, r3]
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD11_0225ADD8
+ ldr r0, _0225B21C ; =0x000006BC
+ add r1, sp, #0x20
+ ldr r0, [r4, r0]
+ cmp r0, #0xff
+ beq _0225B1D0
+ ldr r0, _0225B220 ; =0x000004CC
+ add r2, sp, #0x1c
+ add r7, r4, r0
+ mov r0, #0x14
+ mul r0, r5
+ str r0, [sp, #0x14]
+ ldr r0, [r7, r0]
+ bl FUN_020119A4
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #0x20]
+ add r2, r2, #1
+ bl FUN_020118C4
+ ldr r0, _0225B220 ; =0x000004CC
+ add r1, sp, #0x20
+ add r7, r4, r0
+ mov r0, #0x14
+ mul r0, r6
+ str r0, [sp, #0x18]
+ ldr r0, [r7, r0]
+ add r2, sp, #0x1c
+ bl FUN_020119A4
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #0x20]
+ add r2, r2, #1
+ bl FUN_020118C4
+ ldr r0, _0225B220 ; =0x000004CC
+ mov r1, #0x14
+ add r6, r4, r0
+ ldr r0, [sp, #8]
+ add r2, sp, #0x1c
+ add r7, r0, #0
+ mul r7, r1
+ ldr r0, [r6, r7]
+ add r1, sp, #0x20
+ bl FUN_020119A4
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r6, r7]
+ ldr r1, [sp, #0x20]
+ add r2, r2, #1
+ bl FUN_020118C4
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _0225B1E8
+ lsl r5, r5, #2
+ ldr r0, _0225B224 ; =0x00000604
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #1
+ bl FUN_0200C7FC
+ ldr r0, _0225B228 ; =0x00000614
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B1E8
+ ldr r0, [r0]
+ mov r1, #0
+ mov r2, #1
+ bl FUN_0200C7FC
+ b _0225B1E8
+_0225B1D0:
+ ldr r0, _0225B22C ; =0x0000051C
+ add r2, sp, #0x1c
+ ldr r0, [r4, r0]
+ bl FUN_020119A4
+ ldr r0, _0225B22C ; =0x0000051C
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0x20]
+ add r2, r2, #1
+ bl FUN_020118C4
+_0225B1E8:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0x24
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r4, r5, r6, r7, pc}
+_0225B1F6:
+ 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 _0225B216
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_0225AC8C
+ add r0, r4, #0
+ bl MOD11_0225ADB0
+_0225B216:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0225B21C: .word 0x000006BC
+_0225B220: .word 0x000004CC
+_0225B224: .word 0x00000604
+_0225B228: .word 0x00000614
+_0225B22C: .word 0x0000051C
+_0225B230: .word 0x000006B4
+
+ thumb_func_start MOD11_0225B234
+MOD11_0225B234: ; 0x0225B234
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ mov r1, #0x6b
+ lsl r1, r1, #4
+ ldrsh r0, [r4, r1]
+ cmp r0, #3
+ bls _0225B24C
+ b _0225B3AE
+_0225B24C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225B258: ; jump table
+ .short _0225B260 - _0225B258 - 2 ; case 0
+ .short _0225B2E8 - _0225B258 - 2 ; case 1
+ .short _0225B304 - _0225B258 - 2 ; case 2
+ .short _0225B38E - _0225B258 - 2 ; case 3
+_0225B260:
+ add r1, #0x20
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ add r2, sp, #4
+ mov r3, #1
+ bl MOD11_0225AD2C
+ mov r5, #0
+ mov r7, #2
+ add r6, sp, #4
+ b _0225B2D6
+_0225B276:
+ ldrb r0, [r6, r5]
+ cmp r0, #1
+ bne _0225B2D4
+ mov r1, #6
+ add r2, r5, #0
+ mul r2, r1
+ ldr r1, _0225B3C4 ; =0x0225F88C
+ lsl r3, r5, #2
+ add r1, r1, r2
+ ldr r2, _0225B3C8 ; =0x0225F7FC
+ add r0, r4, #0
+ add r2, r2, r3
+ mov r3, #4
+ str r7, [sp]
+ bl MOD11_0225ADD8
+ mov r0, #0x14
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _0225B3CC ; =0x000004CC
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B2C0
+ add r1, sp, #0xc
+ add r2, sp, #8
+ bl FUN_020119A4
+ mov r0, #0x14
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _0225B3CC ; =0x000004CC
+ ldr r2, [sp, #8]
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0xc]
+ sub r2, r2, #2
+ bl FUN_020118C4
+_0225B2C0:
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _0225B3D0 ; =0x00000624
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B2D4
+ mov r1, #0
+ sub r2, r1, #2
+ bl FUN_0200C82C
+_0225B2D4:
+ add r5, r5, #1
+_0225B2D6:
+ cmp r5, #4
+ blt _0225B276
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0x10
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225B2E8:
+ add r0, r1, #2
+ ldrsh r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #2
+ strh r2, [r4, r0]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225B3BE
+ mov r2, #0
+ add r0, r1, #2
+ strh r2, [r4, r0]
+ ldrsh r0, [r4, r1]
+ add r0, r0, #1
+ strh r0, [r4, r1]
+_0225B304:
+ mov r1, #0x6d
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ add r2, sp, #4
+ mov r3, #1
+ bl MOD11_0225AD2C
+ mov r5, #0
+ mov r7, #1
+ add r6, sp, #4
+ b _0225B37C
+_0225B31C:
+ ldrb r0, [r6, r5]
+ cmp r0, #1
+ bne _0225B37A
+ mov r1, #6
+ add r2, r5, #0
+ mul r2, r1
+ ldr r1, _0225B3C4 ; =0x0225F88C
+ lsl r3, r5, #2
+ add r1, r1, r2
+ ldr r2, _0225B3C8 ; =0x0225F7FC
+ add r0, r4, #0
+ add r2, r2, r3
+ mov r3, #4
+ str r7, [sp]
+ bl MOD11_0225ADD8
+ mov r0, #0x14
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _0225B3CC ; =0x000004CC
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B366
+ add r1, sp, #0xc
+ add r2, sp, #8
+ bl FUN_020119A4
+ mov r0, #0x14
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _0225B3CC ; =0x000004CC
+ ldr r2, [sp, #8]
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0xc]
+ add r2, r2, #1
+ bl FUN_020118C4
+_0225B366:
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _0225B3D0 ; =0x00000624
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B37A
+ mov r1, #0
+ mov r2, #1
+ bl FUN_0200C82C
+_0225B37A:
+ add r5, r5, #1
+_0225B37C:
+ cmp r5, #4
+ blt _0225B31C
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0x10
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225B38E:
+ add r0, r1, #2
+ ldrsh r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #2
+ strh r2, [r4, r0]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225B3BE
+ mov r2, #0
+ add r0, r1, #2
+ strh r2, [r4, r0]
+ ldrsh r0, [r4, r1]
+ add sp, #0x10
+ add r0, r0, #1
+ strh r0, [r4, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225B3AE:
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_0225AC8C
+ add r0, r4, #0
+ bl MOD11_0225ADB0
+_0225B3BE:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225B3C4: .word 0x0225F88C
+_0225B3C8: .word 0x0225F7FC
+_0225B3CC: .word 0x000004CC
+_0225B3D0: .word 0x00000624
+
+ thumb_func_start MOD11_0225B3D4
+MOD11_0225B3D4: ; 0x0225B3D4
+ cmp r0, #0
+ bne _0225B3DC
+ ldr r0, _0225B42C ; =0x00070800
+ bx lr
+_0225B3DC:
+ cmp r1, r0
+ bne _0225B3E4
+ ldr r0, _0225B430 ; =0x00010200
+ bx lr
+_0225B3E4:
+ cmp r1, #2
+ bgt _0225B3F0
+ cmp r0, #1
+ bne _0225B428
+ ldr r0, _0225B434 ; =0x00050600
+ bx lr
+_0225B3F0:
+ cmp r1, #7
+ bgt _0225B408
+ cmp r0, #1
+ beq _0225B3FE
+ cmp r0, #2
+ beq _0225B402
+ b _0225B428
+_0225B3FE:
+ ldr r0, _0225B434 ; =0x00050600
+ bx lr
+_0225B402:
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ bx lr
+_0225B408:
+ asr r2, r1, #1
+ lsr r2, r2, #0x1e
+ add r2, r1, r2
+ asr r2, r2, #2
+ cmp r0, r2
+ bgt _0225B418
+ ldr r0, _0225B434 ; =0x00050600
+ bx lr
+_0225B418:
+ lsr r2, r1, #0x1f
+ add r2, r1, r2
+ asr r1, r2, #1
+ cmp r0, r1
+ bgt _0225B428
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ bx lr
+_0225B428:
+ ldr r0, _0225B430 ; =0x00010200
+ bx lr
+ .align 2, 0
+_0225B42C: .word 0x00070800
+_0225B430: .word 0x00010200
+_0225B434: .word 0x00050600
+
+ thumb_func_start MOD11_0225B438
+MOD11_0225B438: ; 0x0225B438
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl MOD11_0222FF68
+ add r4, r0, #0
+ ldrb r0, [r5, #0x13]
+ cmp r0, #0
+ beq _0225B454
+ cmp r0, #1
+ beq _0225B4AA
+ b _0225B4D6
+_0225B454:
+ mov r2, #8
+ ldrsh r1, [r5, r2]
+ ldr r0, _0225B528 ; =0x000018E7
+ add r1, r1, r0
+ strh r1, [r5, #8]
+ mov r1, #0xa
+ ldrsh r3, [r5, r1]
+ mov r1, #0xfa
+ lsl r1, r1, #2
+ sub r1, r3, r1
+ strh r1, [r5, #0xa]
+ ldrsh r1, [r5, r2]
+ lsl r0, r0, #2
+ sub r0, r0, r1
+ mov r1, #0x64
+ blx _s32_div_f
+ strh r0, [r5, #0xc]
+ mov r0, #0xa
+ ldrsh r0, [r5, r0]
+ mov r1, #0x64
+ neg r0, r0
+ blx _s32_div_f
+ strh r0, [r5, #0xe]
+ mov r0, #8
+ ldrsh r0, [r5, r0]
+ cmp r0, #0
+ bge _0225B496
+ mov r0, #0xa
+ ldrsh r0, [r5, r0]
+ cmp r0, #0
+ bgt _0225B526
+_0225B496:
+ mov r1, #0
+ strh r1, [r5, #8]
+ mov r0, #0x90
+ strh r0, [r5, #0xa]
+ strh r1, [r5, #0xc]
+ strh r1, [r5, #0xe]
+ ldrb r0, [r5, #0x13]
+ add r0, r0, #1
+ strb r0, [r5, #0x13]
+ pop {r4, r5, r6, pc}
+_0225B4AA:
+ ldr r1, [r5]
+ ldr r0, _0225B52C ; =0x000006A2
+ mov r2, #0
+ strb r2, [r1, r0]
+ ldr r0, [r5, #4]
+ bl FUN_0200CAB4
+ bl FUN_02015F1C
+ ldr r2, _0225B530 ; =0x04001000
+ ldr r0, _0225B534 ; =0xFFFF1FFF
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [r5]
+ mov r1, #1
+ bl MOD11_0225B77C
+ ldrb r0, [r5, #0x13]
+ add r0, r0, #1
+ strb r0, [r5, #0x13]
+ pop {r4, r5, r6, pc}
+_0225B4D6:
+ ldr r0, [r5]
+ bl MOD11_0225B780
+ cmp r0, #0
+ beq _0225B526
+ 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
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #5
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ ldr r0, [r5]
+ mov r1, #1
+ ldr r0, [r0]
+ bl MOD11_022312AC
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0225B526:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0225B528: .word 0x000018E7
+_0225B52C: .word 0x000006A2
+_0225B530: .word 0x04001000
+_0225B534: .word 0xFFFF1FFF
+
+ thumb_func_start MOD11_0225B538
+MOD11_0225B538: ; 0x0225B538
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl MOD11_0222FF68
+ add r6, r0, #0
+ ldrb r0, [r5, #0x12]
+ cmp r0, #4
+ bne _0225B586
+ mov r0, #0xc
+ ldrsh r1, [r5, r0]
+ mov r0, #0xff
+ sub r3, r0, r1
+ cmp r3, #0
+ ble _0225B55A
+ mov r3, #0
+_0225B55A:
+ add r0, r6, #0
+ mov r1, #4
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r4, [r5, r3]
+ mov r3, #0xff
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ sub r3, r3, r4
+ bl FUN_020179E0
+ mov r0, #8
+ ldrsh r0, [r5, r0]
+ mov r1, #0x64
+ neg r0, r0
+ blx _s32_div_f
+ add r4, r0, #0
+ b _0225B5B6
+_0225B586:
+ mov r0, #0xc
+ ldrsh r3, [r5, r0]
+ cmp r3, #0
+ bge _0225B590
+ mov r3, #0
+_0225B590:
+ add r0, r6, #0
+ mov r1, #4
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r5, r3]
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020179E0
+ mov r0, #8
+ ldrsh r0, [r5, r0]
+ mov r1, #0x64
+ blx _s32_div_f
+ add r4, r0, #0
+ add r4, #0xff
+_0225B5B6:
+ add r0, r6, #0
+ mov r1, #4
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ mov r0, #0xa
+ ldrsh r0, [r5, r0]
+ mov r1, #0x64
+ blx _s32_div_f
+ add r0, #0x90
+ cmp r4, #0
+ bge _0225B5E2
+ mov r4, #0
+ b _0225B5E8
+_0225B5E2:
+ cmp r4, #0xff
+ ble _0225B5E8
+ mov r4, #0xff
+_0225B5E8:
+ cmp r0, #0xc0
+ ble _0225B5F0
+ mov r0, #0xc0
+ b _0225B5F6
+_0225B5F0:
+ cmp r0, #0
+ bge _0225B5F6
+ mov r0, #0
+_0225B5F6:
+ ldrb r1, [r5, #0x12]
+ cmp r1, #4
+ bne _0225B60A
+ lsl r1, r4, #0x18
+ ldr r2, _0225B63C ; =0x04001040
+ lsr r1, r1, #0x18
+ strh r1, [r2]
+ mov r1, #0x90
+ strh r1, [r2, #4]
+ b _0225B620
+_0225B60A:
+ cmp r4, #0
+ bne _0225B610
+ mov r4, #1
+_0225B610:
+ mov r1, #0xff
+ lsl r2, r4, #8
+ lsl r1, r1, #8
+ and r1, r2
+ ldr r2, _0225B63C ; =0x04001040
+ strh r1, [r2]
+ mov r1, #0x90
+ strh r1, [r2, #4]
+_0225B620:
+ ldr r2, _0225B640 ; =0x04001042
+ mov r1, #0xff
+ lsl r0, r0, #0x18
+ strh r1, [r2]
+ lsr r1, r0, #0x18
+ mov r0, #9
+ lsl r0, r0, #0xc
+ orr r0, r1
+ strh r0, [r2, #4]
+ mov r0, #0xe
+ ldrsh r0, [r5, r0]
+ strh r0, [r5, #0x10]
+ pop {r4, r5, r6, pc}
+ nop
+_0225B63C: .word 0x04001040
+_0225B640: .word 0x04001042
+
+ thumb_func_start MOD11_0225B644
+MOD11_0225B644: ; 0x0225B644
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ ldr r0, _0225B6FC ; =0x04000006
+ ldrh r0, [r0]
+ cmp r0, #0x90
+ bne _0225B68E
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl MOD11_0222FF68
+ mov r2, #0
+ mov r1, #4
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_020179E0
+ mov r3, #0x10
+ ldrsh r3, [r4, r3]
+ add r0, r5, #0
+ mov r1, #4
+ mov r2, #3
+ bl FUN_020179E0
+ mov r2, #0
+ add r0, r5, #0
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_020179E0
+ mov r3, #0x10
+ ldrsh r3, [r4, r3]
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #3
+ bl FUN_020179E0
+ pop {r4, r5, r6, pc}
+_0225B68E:
+ cmp r0, #0xc0
+ ble _0225B6F8
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl MOD11_0222FF68
+ ldrb r1, [r4, #0x12]
+ add r5, r0, #0
+ cmp r1, #4
+ bne _0225B6C6
+ mov r3, #0xc
+ ldrsh r6, [r4, r3]
+ mov r3, #0xff
+ mov r1, #4
+ mov r2, #0
+ sub r3, r3, r6
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r4, [r4, r3]
+ mov r3, #0xff
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ sub r3, r3, r4
+ bl FUN_020179E0
+ b _0225B6E0
+_0225B6C6:
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ mov r1, #4
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020179E0
+_0225B6E0:
+ add r0, r5, #0
+ mov r1, #4
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+_0225B6F8:
+ pop {r4, r5, r6, pc}
+ nop
+_0225B6FC: .word 0x04000006
+
+ thumb_func_start MOD11_0225B700
+MOD11_0225B700: ; 0x0225B700
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ ldr r0, _0225B760 ; =0x0000069F
+ ldr r2, _0225B764 ; =0x0225FAAC
+ ldrsb r1, [r1, r0]
+ mov r0, #0x30
+ ldr r7, _0225B768 ; =0x0000FFFF
+ mul r0, r1
+ add r6, r2, r0
+ mov r4, #0
+ add r5, r6, #0
+_0225B716:
+ ldrh r0, [r5, #4]
+ cmp r0, r7
+ bne _0225B72A
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0
+ bl FUN_0201797C
+ b _0225B736
+_0225B72A:
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #1
+ bl FUN_0201797C
+_0225B736:
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _0225B716
+ mov r4, #0
+_0225B740:
+ ldrh r1, [r6, #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 r6, r6, #2
+ cmp r4, #4
+ blt _0225B740
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225B760: .word 0x0000069F
+_0225B764: .word 0x0225FAAC
+_0225B768: .word 0x0000FFFF
+
+ thumb_func_start MOD11_0225B76C
+MOD11_0225B76C: ; 0x0225B76C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_0225AC60
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225B77C
+MOD11_0225B77C: ; 0x0225B77C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225B780
+MOD11_0225B780: ; 0x0225B780
+ ldr r1, _0225B790 ; =0x00000698
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _0225B78C
+ mov r0, #1
+ bx lr
+_0225B78C:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_0225B790: .word 0x00000698
+
+ thumb_func_start MOD11_0225B794
+MOD11_0225B794: ; 0x0225B794
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r1, #0
+ ldr r0, [r5]
+ bl MOD11_022300CC
+ add r4, r0, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0225B814
+ ldr r0, _0225B818 ; =0x000006AA
+ mov r1, #1
+ ldrsh r0, [r5, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ asr r0, r0, #8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, _0225B81C ; =0x00007FFF
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl FUN_020039E8
+ ldr r1, _0225B820 ; =0x000006A8
+_0225B7C8:
+ ldrb r0, [r5, r1]
+ cmp r0, #0
+ bne _0225B7DA
+ add r0, r1, #2
+ ldrsh r2, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #8
+ add r2, r2, r0
+ b _0225B7E4
+_0225B7DA:
+ add r0, r1, #2
+ ldrsh r2, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #8
+ sub r2, r2, r0
+_0225B7E4:
+ add r0, r1, #2
+ strh r2, [r5, r0]
+ ldr r0, _0225B818 ; =0x000006AA
+ mov r1, #0x11
+ ldrsh r2, [r5, r0]
+ lsl r1, r1, #8
+ cmp r2, r1
+ blt _0225B804
+ mov r1, #0xf
+ lsl r1, r1, #8
+ strh r1, [r5, r0]
+ mov r1, #1
+ sub r0, r0, #2
+ add sp, #8
+ strb r1, [r5, r0]
+ pop {r3, r4, r5, pc}
+_0225B804:
+ cmp r2, #0
+ bgt _0225B814
+ mov r1, #1
+ lsl r1, r1, #8
+ strh r1, [r5, r0]
+ mov r1, #0
+ sub r0, r0, #2
+ strb r1, [r5, r0]
+_0225B814:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225B818: .word 0x000006AA
+_0225B81C: .word 0x00007FFF
+_0225B820: .word 0x000006A8
+
+ thumb_func_start MOD11_0225B824
+MOD11_0225B824: ; 0x0225B824
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ bl FUN_02002BD4
+ add r6, r0, #0
+ bl FUN_02002BF4
+ add r7, r0, #0
+ bl FUN_02002BE4
+ bl FUN_02002C04
+ ldr r0, [r5]
+ bl MOD11_022300CC
+ add r4, r0, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0225B8A8
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02003204
+ add r4, r0, #0
+ ldr r0, _0225B8AC ; =0x021C48F8
+ ldrh r0, [r0, #0x22]
+ cmp r0, #0
+ beq _0225B888
+ cmp r6, #1
+ beq _0225B866
+ cmp r7, #1
+ bne _0225B888
+_0225B866:
+ ldr r1, [r5, #0x5c]
+ add r0, r4, #0
+ add r0, #0x16
+ add r1, #0x16
+ mov r2, #0xa
+ blx memcmp
+ cmp r0, #0
+ bne _0225B8A8
+ ldr r0, [r5, #0x60]
+ add r4, #0x16
+ add r0, #0x16
+ add r1, r4, #0
+ mov r2, #0xa
+ blx MIi_CpuCopy16
+ pop {r3, r4, r5, r6, r7, pc}
+_0225B888:
+ ldr r1, [r5, #0x60]
+ add r0, r4, #0
+ add r0, #0x16
+ add r1, #0x16
+ mov r2, #0xa
+ blx memcmp
+ cmp r0, #0
+ bne _0225B8A8
+ ldr r0, [r5, #0x5c]
+ add r4, #0x16
+ add r0, #0x16
+ add r1, r4, #0
+ mov r2, #0xa
+ blx MIi_CpuCopy16
+_0225B8A8:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225B8AC: .word 0x021C48F8
+
+ thumb_func_start MOD11_0225B8B0
+MOD11_0225B8B0: ; 0x0225B8B0
+ push {r4, r5, r6, lr}
+ mov r6, #0x6f
+ lsl r6, r6, #4
+ add r2, r6, #0
+ add r5, r0, #0
+ sub r2, #0x51
+ ldrsb r2, [r5, r2]
+ ldr r1, _0225B914 ; =0x0225FAAC
+ mov r3, #0x30
+ add r4, r2, #0
+ mul r4, r3
+ add r4, r1, r4
+ ldr r2, [r4, #0x20]
+ cmp r2, #0
+ bne _0225B8D4
+ sub r3, #0x31
+ add r0, r3, #0
+ pop {r4, r5, r6, pc}
+_0225B8D4:
+ ldrb r1, [r5, r6]
+ cmp r1, #0
+ bne _0225B90C
+ add r0, r6, #4
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ beq _0225B8EC
+ ldr r1, _0225B918 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ ldr r1, _0225B91C ; =0x00000CF3
+ tst r1, r2
+ beq _0225B906
+_0225B8EC:
+ cmp r0, #0
+ bne _0225B8F6
+ ldr r0, _0225B920 ; =0x000005DC
+ bl FUN_020054C8
+_0225B8F6:
+ mov r1, #1
+ ldr r0, _0225B924 ; =0x000006F4
+ strb r1, [r5, r6]
+ mov r2, #0
+ strb r2, [r5, r0]
+ ldr r2, [r4, #0x20]
+ add r0, r5, #0
+ blx r2
+_0225B906:
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_0225B90C:
+ mov r1, #0
+ blx r2
+ pop {r4, r5, r6, pc}
+ nop
+_0225B914: .word 0x0225FAAC
+_0225B918: .word 0x021C48B8
+_0225B91C: .word 0x00000CF3
+_0225B920: .word 0x000005DC
+_0225B924: .word 0x000006F4
+
+ thumb_func_start MOD11_0225B928
+MOD11_0225B928: ; 0x0225B928
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r1, [sp, #8]
+ mov r1, #0x6f
+ lsl r1, r1, #4
+ add r6, r0, #0
+ add r2, r1, #0
+ sub r2, #0x51
+ ldrsb r3, [r6, r2]
+ add r4, r6, r1
+ mov r2, #0x30
+ sub r1, #0x52
+ ldr r0, _0225BAE8 ; =0x0225FAAC
+ mul r2, r3
+ add r7, r0, r2
+ ldrb r1, [r6, r1]
+ ldr r0, [r6]
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ ldr r1, [sp, #8]
+ cmp r1, #1
+ bne _0225B9AE
+ mov r1, #0
+ ldrsb r1, [r0, r1]
+ ldr r2, _0225BAEC ; =0x0225F698
+ strb r1, [r4, #2]
+ mov r1, #1
+ ldrsb r0, [r0, r1]
+ strb r0, [r4, #1]
+ ldrsb r1, [r4, r1]
+ 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, [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]
+ ldr r0, _0225BAF0 ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ mov r0, #0
+ add sp, #0x10
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225B9AE:
+ ldr r0, _0225BAF4 ; =0x0000069F
+ ldrsb r0, [r6, r0]
+ cmp r0, #5
+ beq _0225B9BA
+ cmp r0, #6
+ bne _0225B9CA
+_0225B9BA:
+ mov r1, #1
+ ldr r3, _0225BAEC ; =0x0225F698
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_0225C574
+ add r5, r0, #0
+ b _0225BA34
+_0225B9CA:
+ mov r0, #1
+ ldrsb r1, [r4, r0]
+ lsl r0, r1, #1
+ add r2, r1, r0
+ mov r0, #2
+ ldr r1, _0225BAEC ; =0x0225F698
+ ldrsb r0, [r4, r0]
+ add r1, r1, r2
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0xc]
+ cmp r0, #3
+ bne _0225B9EC
+ ldr r0, _0225BAF8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x40
+ tst r0, r1
+ bne _0225BA34
+_0225B9EC:
+ ldr r3, _0225BAEC ; =0x0225F698
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #2
+ bl MOD11_0225C574
+ add r5, r0, #0
+ bne _0225BA34
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _0225BA34
+ ldr r0, _0225BAF8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0225BA1E
+ mov r0, #0
+ strb r0, [r4, #2]
+ mov r0, #1
+ strb r0, [r4, #1]
+ ldr r0, _0225BAFC ; =0x000005DC
+ bl FUN_020054C8
+ mov r5, #0x20
+ b _0225BA34
+_0225BA1E:
+ mov r0, #0x10
+ tst r0, r1
+ beq _0225BA34
+ mov r0, #2
+ strb r0, [r4, #2]
+ mov r0, #1
+ strb r0, [r4, #1]
+ ldr r0, _0225BAFC ; =0x000005DC
+ bl FUN_020054C8
+ mov r5, #0x10
+_0225BA34:
+ cmp r5, #0x20
+ bhi _0225BA50
+ bhs _0225BA5C
+ cmp r5, #2
+ bhi _0225BA4A
+ cmp r5, #1
+ blo _0225BAE0
+ beq _0225BA9A
+ cmp r5, #2
+ beq _0225BAB0
+ b _0225BAE0
+_0225BA4A:
+ cmp r5, #0x10
+ beq _0225BA5C
+ b _0225BAE0
+_0225BA50:
+ cmp r5, #0x40
+ bhi _0225BA58
+ beq _0225BA5C
+ b _0225BAE0
+_0225BA58:
+ cmp r5, #0x80
+ bne _0225BAE0
+_0225BA5C:
+ mov r0, #1
+ ldrsb r1, [r4, r0]
+ ldr r2, _0225BAEC ; =0x0225F698
+ 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, [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]
+ ldr r0, _0225BAF0 ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225BAE0
+_0225BA9A:
+ mov r0, #1
+ ldrsb r1, [r4, r0]
+ ldr r2, _0225BAEC ; =0x0225F698
+ 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}
+_0225BAB0:
+ ldr r0, _0225BB00 ; =0x000006A3
+ ldrb r0, [r6, r0]
+ cmp r0, #1
+ bne _0225BAE0
+ mov r0, #0
+ add r2, r0, #0
+ mov r3, #1
+ ldr r1, [r7, #0x18]
+ ldr r5, [r7, #0x14]
+ b _0225BACE
+_0225BAC4:
+ lsl r4, r0, #2
+ ldr r4, [r1, r4]
+ cmp r4, #4
+ beq _0225BAE4
+ add r0, r0, #1
+_0225BACE:
+ lsl r4, r0, #2
+ ldrb r4, [r5, r4]
+ cmp r0, r4
+ bge _0225BADA
+ add r4, r3, #0
+ b _0225BADC
+_0225BADA:
+ add r4, r2, #0
+_0225BADC:
+ cmp r4, #0xff
+ bne _0225BAC4
+_0225BAE0:
+ mov r0, #0
+ mvn r0, r0
+_0225BAE4:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225BAE8: .word 0x0225FAAC
+_0225BAEC: .word 0x0225F698
+_0225BAF0: .word 0x000006EC
+_0225BAF4: .word 0x0000069F
+_0225BAF8: .word 0x021C48B8
+_0225BAFC: .word 0x000005DC
+_0225BB00: .word 0x000006A3
+
+ thumb_func_start MOD11_0225BB04
+MOD11_0225BB04: ; 0x0225BB04
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r1, _0225BB60 ; =0x0000069E
+ ldr r0, [r5]
+ ldrb r1, [r5, r1]
+ bl MOD11_0223022C
+ add r6, r0, #0
+ cmp r4, #3
+ bne _0225BB26
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD11_02230CB8
+ cmp r0, #0
+ bne _0225BB5C
+_0225BB26:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ mov r5, #0
+ ldr r1, _0225BB64 ; =0x0225F698
+ add r2, r5, #0
+ b _0225BB58
+_0225BB3A:
+ lsl r6, r5, #1
+ add r6, r5, r6
+ add r3, r2, #0
+ add r7, r1, r6
+ b _0225BB52
+_0225BB44:
+ ldrb r6, [r3, r7]
+ cmp r4, r6
+ bne _0225BB50
+ strb r3, [r0]
+ strb r5, [r0, #1]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225BB50:
+ add r3, r3, #1
+_0225BB52:
+ cmp r3, #3
+ blt _0225BB44
+ add r5, r5, #1
+_0225BB58:
+ cmp r5, #2
+ blt _0225BB3A
+_0225BB5C:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225BB60: .word 0x0000069E
+_0225BB64: .word 0x0225F698
+
+ thumb_func_start MOD11_0225BB68
+MOD11_0225BB68: ; 0x0225BB68
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r0, #0
+ mov r0, #0x6f
+ lsl r0, r0, #4
+ add r3, r0, #0
+ sub r3, #0x51
+ ldrsb r5, [r6, r3]
+ mov r3, #0x30
+ ldr r2, _0225BC54 ; =0x0225FAAC
+ mul r3, r5
+ add r4, r6, r0
+ add r5, r2, r3
+ cmp r1, #1
+ bne _0225BBCC
+ mov r1, #0
+ strb r1, [r4, #2]
+ strb r1, [r4, #1]
+ mov r1, #1
+ ldrsb r2, [r4, r1]
+ mov r3, #2
+ ldr r1, _0225BC58 ; =0x0225F688
+ ldrsb r3, [r4, r3]
+ add r1, r1, r2
+ sub r0, r0, #4
+ ldrb r2, [r3, r1]
+ ldr r1, [r5, #0x14]
+ lsl r3, r2, #2
+ add r1, r1, r3
+ ldrb r1, [r1, #1]
+ sub r1, #8
+ str r1, [sp]
+ mov r1, #0x11
+ lsl r1, r1, #0x10
+ str r1, [sp, #4]
+ ldr r4, [r5, #0x14]
+ ldr r0, [r6, r0]
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ mov r0, #0
+ add sp, #8
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_0225BBCC:
+ ldr r3, _0225BC58 ; =0x0225F688
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #2
+ bl MOD11_0225C574
+ cmp r0, #0x20
+ bhi _0225BBF2
+ bhs _0225BBFE
+ cmp r0, #2
+ bhi _0225BBEC
+ cmp r0, #1
+ blo _0225BC4A
+ beq _0225BC38
+ cmp r0, #2
+ b _0225BC4A
+_0225BBEC:
+ cmp r0, #0x10
+ beq _0225BBFE
+ b _0225BC4A
+_0225BBF2:
+ cmp r0, #0x40
+ bhi _0225BBFA
+ beq _0225BBFE
+ b _0225BC4A
+_0225BBFA:
+ cmp r0, #0x80
+ bne _0225BC4A
+_0225BBFE:
+ mov r0, #1
+ ldrsb r3, [r4, r0]
+ mov r0, #2
+ ldr r2, _0225BC58 ; =0x0225F688
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [r5, #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, [r5, #0x14]
+ ldr r0, _0225BC5C ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225BC4A
+_0225BC38:
+ mov r0, #1
+ ldrsb r3, [r4, r0]
+ mov r0, #2
+ ldr r2, _0225BC58 ; =0x0225F688
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ add sp, #8
+ ldrb r0, [r1, r0]
+ pop {r4, r5, r6, pc}
+_0225BC4A:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_0225BC54: .word 0x0225FAAC
+_0225BC58: .word 0x0225F688
+_0225BC5C: .word 0x000006EC
+
+ thumb_func_start MOD11_0225BC60
+MOD11_0225BC60: ; 0x0225BC60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r1, #0
+ add r5, r0, #0
+ ldr r1, _0225BDD0 ; =0x0000069E
+ ldr r0, [r5]
+ ldrb r1, [r5, r1]
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ mov r1, #0x6f
+ lsl r1, r1, #4
+ add r4, r5, r1
+ sub r1, #0x51
+ ldrsb r2, [r5, r1]
+ add r3, r0, #0
+ mov r1, #0x30
+ mul r1, r2
+ ldr r0, _0225BDD4 ; =0x0225FAAC
+ add r2, r5, #0
+ add r6, r0, r1
+ add r2, #0x18
+ cmp r7, #1
+ bne _0225BD10
+ mov r0, #2
+ ldrsb r0, [r3, r0]
+ strb r0, [r4, #2]
+ mov r0, #3
+ ldrsb r0, [r3, r0]
+ strb r0, [r4, #1]
+ mov r0, #1
+ ldrsb r0, [r4, r0]
+ lsl r1, r0, #1
+ mov r0, #2
+ ldrsb r7, [r4, r0]
+ ldr r0, _0225BDD8 ; =0x0225F6A0
+ add r0, r0, r1
+ ldrb r0, [r7, r0]
+ cmp r0, #0
+ beq _0225BCDE
+ sub r1, r0, #1
+ lsl r1, r1, #1
+ ldrh r1, [r2, r1]
+ cmp r1, #0
+ bne _0225BCDE
+ mov r0, #0
+ strb r0, [r3, #2]
+ strb r0, [r3, #3]
+ strb r0, [r4, #2]
+ strb r0, [r4, #1]
+ mov r0, #1
+ ldrsb r0, [r4, r0]
+ lsl r2, r0, #1
+ mov r0, #2
+ ldrsb r1, [r4, r0]
+ ldr r0, _0225BDD8 ; =0x0225F6A0
+ add r0, r0, r2
+ ldrb r0, [r1, r0]
+_0225BCDE:
+ ldr r1, [r6, #0x14]
+ lsl r3, r0, #2
+ add r0, r1, 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]
+ ldr r0, _0225BDDC ; =0x000006EC
+ 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 MOD11_0225D5FC
+ mov r0, #0
+ add sp, #0x10
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225BD10:
+ ldr r0, _0225BDD8 ; =0x0225F6A0
+ add r1, sp, #8
+ mov r2, #6
+ blx MI_CpuCopy8
+ add r0, r4, #0
+ mov r1, #2
+ mov r2, #3
+ add r3, sp, #8
+ bl MOD11_0225C574
+ cmp r0, #0x20
+ bhi _0225BD42
+ bhs _0225BD4E
+ cmp r0, #2
+ bhi _0225BD3C
+ cmp r0, #1
+ blo _0225BDC6
+ beq _0225BD8A
+ cmp r0, #2
+ beq _0225BD9E
+ b _0225BDC6
+_0225BD3C:
+ cmp r0, #0x10
+ beq _0225BD4E
+ b _0225BDC6
+_0225BD42:
+ cmp r0, #0x40
+ bhi _0225BD4A
+ beq _0225BD4E
+ b _0225BDC6
+_0225BD4A:
+ cmp r0, #0x80
+ bne _0225BDC6
+_0225BD4E:
+ mov r0, #1
+ ldrsb r0, [r4, r0]
+ ldr r2, _0225BDD8 ; =0x0225F6A0
+ lsl r3, r0, #1
+ 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]
+ ldr r0, _0225BDDC ; =0x000006EC
+ 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 MOD11_0225D5FC
+ b _0225BDC6
+_0225BD8A:
+ mov r0, #1
+ ldrsb r0, [r4, r0]
+ ldr r2, _0225BDD8 ; =0x0225F6A0
+ add sp, #0x10
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r0, [r1, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225BD9E:
+ mov r0, #0
+ add r2, r0, #0
+ mov r3, #1
+ ldr r1, [r6, #0x18]
+ ldr r5, [r6, #0x14]
+ b _0225BDB4
+_0225BDAA:
+ lsl r4, r0, #2
+ ldr r4, [r1, r4]
+ cmp r4, #0xff
+ beq _0225BDCA
+ add r0, r0, #1
+_0225BDB4:
+ lsl r4, r0, #2
+ ldrb r4, [r5, r4]
+ cmp r0, r4
+ bge _0225BDC0
+ add r4, r3, #0
+ b _0225BDC2
+_0225BDC0:
+ add r4, r2, #0
+_0225BDC2:
+ cmp r4, #0xff
+ bne _0225BDAA
+_0225BDC6:
+ mov r0, #0
+ mvn r0, r0
+_0225BDCA:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225BDD0: .word 0x0000069E
+_0225BDD4: .word 0x0225FAAC
+_0225BDD8: .word 0x0225F6A0
+_0225BDDC: .word 0x000006EC
+
+ thumb_func_start MOD11_0225BDE0
+MOD11_0225BDE0: ; 0x0225BDE0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ beq _0225BE26
+ ldr r1, _0225BE28 ; =0x0000069E
+ ldr r0, [r5]
+ ldrb r1, [r5, r1]
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ mov r3, #0
+ ldr r7, _0225BE2C ; =0x0225F6A0
+ add r1, r3, #0
+ b _0225BE22
+_0225BE06:
+ lsl r5, r3, #1
+ add r2, r1, #0
+ add r6, r7, r5
+ b _0225BE1C
+_0225BE0E:
+ ldrb r5, [r2, r6]
+ cmp r4, r5
+ bne _0225BE1A
+ strb r2, [r0, #2]
+ strb r3, [r0, #3]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225BE1A:
+ add r2, r2, #1
+_0225BE1C:
+ cmp r2, #2
+ blt _0225BE0E
+ add r3, r3, #1
+_0225BE22:
+ cmp r3, #3
+ blt _0225BE06
+_0225BE26:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225BE28: .word 0x0000069E
+_0225BE2C: .word 0x0225F6A0
+
+ thumb_func_start MOD11_0225BE30
+MOD11_0225BE30: ; 0x0225BE30
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x60
+ str r1, [sp, #0x18]
+ add r6, r0, #0
+ ldr r1, _0225C134 ; =0x0000069E
+ mov r0, #0
+ str r0, [sp, #0x44]
+ ldrb r1, [r6, r1]
+ ldr r0, [r6]
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ mov r1, #0x6f
+ lsl r1, r1, #4
+ add r7, r6, r1
+ sub r1, #0x51
+ ldrsb r2, [r6, r1]
+ str r0, [sp, #0x1c]
+ mov r1, #0x30
+ mul r1, r2
+ ldr r0, _0225C138 ; =0x0225FAAC
+ mov r2, #6
+ add r0, r0, r1
+ str r0, [sp, #0x48]
+ ldr r0, _0225C13C ; =0x0225F690
+ add r1, sp, #0x50
+ blx MI_CpuCopy8
+ add r1, sp, #0x58
+ add r0, r6, #0
+ add r1, #2
+ mov r2, #1
+ bl MOD11_0225ACD4
+ add r1, sp, #0x54
+ add r0, r6, #0
+ add r1, #2
+ mov r2, #0
+ bl MOD11_0225ACD4
+ add r0, sp, #0x54
+ mov r2, #0
+ mov r4, #0xff
+ add r0, #2
+ b _0225BEB0
+_0225BE94:
+ lsl r5, r2, #1
+ add r1, sp, #0x50
+ mov r3, #0
+ add r1, r1, r5
+ b _0225BEAA
+_0225BE9E:
+ ldrb r5, [r3, r1]
+ ldrb r5, [r0, r5]
+ cmp r5, #0
+ bne _0225BEA8
+ strb r4, [r3, r1]
+_0225BEA8:
+ add r3, r3, #1
+_0225BEAA:
+ cmp r3, #2
+ blt _0225BE9E
+ add r2, r2, #1
+_0225BEB0:
+ cmp r2, #2
+ blt _0225BE94
+ mov r0, #0x6a
+ lsl r0, r0, #4
+ ldrb r0, [r6, r0]
+ cmp r0, #0xb
+ bhi _0225BEE2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225BECA: ; jump table
+ .short _0225BEE2 - _0225BECA - 2 ; case 0
+ .short _0225BEEC - _0225BECA - 2 ; case 1
+ .short _0225BEEC - _0225BECA - 2 ; case 2
+ .short _0225BEEC - _0225BECA - 2 ; case 3
+ .short _0225BEE2 - _0225BECA - 2 ; case 4
+ .short _0225BEEC - _0225BECA - 2 ; case 5
+ .short _0225BEE2 - _0225BECA - 2 ; case 6
+ .short _0225BEEC - _0225BECA - 2 ; case 7
+ .short _0225BEE2 - _0225BECA - 2 ; case 8
+ .short _0225BEE2 - _0225BECA - 2 ; case 9
+ .short _0225BEE2 - _0225BECA - 2 ; case 10
+ .short _0225BEE2 - _0225BECA - 2 ; case 11
+_0225BEE2:
+ mov r0, #2
+ mov ip, r0
+ mov r0, #3
+ str r0, [sp, #0x4c]
+ b _0225C0C6
+_0225BEEC:
+ mov r0, #1
+ str r0, [sp, #0x44]
+ mov ip, r0
+ mov r0, #2
+ str r0, [sp, #0x4c]
+ add r0, sp, #0x50
+ ldrb r1, [r0, #9]
+ cmp r1, #1
+ bne _0225BF26
+ ldrb r0, [r0, #7]
+ cmp r0, #1
+ bne _0225BF26
+ ldr r0, [sp, #0x48]
+ ldr r1, [r0, #0x14]
+ ldrb r0, [r1, #0xe]
+ ldrb r2, [r1, #0xd]
+ str r0, [sp, #0x34]
+ add r0, #8
+ str r0, [sp, #0x34]
+ ldrb r0, [r1, #7]
+ sub r2, #8
+ str r0, [sp, #0x30]
+ sub r0, #8
+ str r0, [sp, #0x30]
+ ldrb r0, [r1, #0xc]
+ str r0, [sp, #0x38]
+ add r0, #8
+ str r0, [sp, #0x38]
+ b _0225BF92
+_0225BF26:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #9]
+ cmp r1, #1
+ bne _0225BF56
+ ldrb r0, [r0, #7]
+ cmp r0, #0
+ bne _0225BF56
+ ldr r0, [sp, #0x48]
+ ldr r1, [r0, #0x14]
+ ldrb r0, [r1, #0xe]
+ ldrb r2, [r1, #0xd]
+ str r0, [sp, #0x34]
+ add r0, #8
+ str r0, [sp, #0x34]
+ ldrb r0, [r1, #0xf]
+ sub r2, #8
+ str r0, [sp, #0x30]
+ sub r0, #8
+ str r0, [sp, #0x30]
+ ldrb r0, [r1, #0xc]
+ str r0, [sp, #0x38]
+ add r0, #8
+ str r0, [sp, #0x38]
+ b _0225BF92
+_0225BF56:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #9]
+ cmp r1, #0
+ bne _0225BF86
+ ldrb r0, [r0, #7]
+ cmp r0, #1
+ bne _0225BF86
+ ldr r0, [sp, #0x48]
+ ldr r1, [r0, #0x14]
+ ldrb r0, [r1, #6]
+ ldrb r2, [r1, #5]
+ str r0, [sp, #0x34]
+ add r0, #8
+ str r0, [sp, #0x34]
+ ldrb r0, [r1, #7]
+ sub r2, #8
+ str r0, [sp, #0x30]
+ sub r0, #8
+ str r0, [sp, #0x30]
+ ldrb r0, [r1, #4]
+ str r0, [sp, #0x38]
+ add r0, #8
+ str r0, [sp, #0x38]
+ b _0225BF92
+_0225BF86:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x30]
+ str r0, [sp, #0x38]
+ add r2, r0, #0
+_0225BF92:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #6]
+ cmp r1, #1
+ bne _0225BFBA
+ ldrb r0, [r0, #8]
+ cmp r0, #1
+ bne _0225BFBA
+ ldr r0, [sp, #0x48]
+ ldr r0, [r0, #0x14]
+ ldrb r3, [r0, #2]
+ ldrb r4, [r0, #0xb]
+ ldrb r5, [r0]
+ ldrb r0, [r0, #1]
+ add r3, #8
+ sub r4, #8
+ str r0, [sp, #0x2c]
+ sub r0, #8
+ add r5, #8
+ str r0, [sp, #0x2c]
+ b _0225C014
+_0225BFBA:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #6]
+ cmp r1, #1
+ bne _0225BFE2
+ ldrb r0, [r0, #8]
+ cmp r0, #0
+ bne _0225BFE2
+ ldr r0, [sp, #0x48]
+ ldr r0, [r0, #0x14]
+ ldrb r3, [r0, #2]
+ ldrb r4, [r0, #3]
+ ldrb r5, [r0]
+ ldrb r0, [r0, #1]
+ add r3, #8
+ sub r4, #8
+ str r0, [sp, #0x2c]
+ sub r0, #8
+ add r5, #8
+ str r0, [sp, #0x2c]
+ b _0225C014
+_0225BFE2:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #6]
+ cmp r1, #0
+ bne _0225C00A
+ ldrb r0, [r0, #8]
+ cmp r0, #1
+ bne _0225C00A
+ ldr r0, [sp, #0x48]
+ ldr r0, [r0, #0x14]
+ ldrb r3, [r0, #0xa]
+ ldrb r4, [r0, #0xb]
+ ldrb r5, [r0, #8]
+ ldrb r0, [r0, #9]
+ add r3, #8
+ sub r4, #8
+ str r0, [sp, #0x2c]
+ sub r0, #8
+ add r5, #8
+ str r0, [sp, #0x2c]
+ b _0225C014
+_0225C00A:
+ mov r3, #0
+ mvn r3, r3
+ add r4, r3, #0
+ add r5, r3, #0
+ str r3, [sp, #0x2c]
+_0225C014:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x3c]
+ str r0, [sp, #0x28]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x34]
+ cmp r0, r3
+ beq _0225C04A
+ add r1, r0, #0
+ ldr r0, [sp, #0x40]
+ cmp r1, r0
+ beq _0225C032
+ cmp r3, r0
+ beq _0225C04A
+_0225C032:
+ mov r1, #0
+ ldr r0, [sp, #0x34]
+ mvn r1, r1
+ cmp r0, r1
+ bne _0225C044
+ cmp r3, r1
+ beq _0225C044
+ str r3, [sp, #0x34]
+ b _0225C04A
+_0225C044:
+ mov r0, #2
+ str r3, [sp, #0x40]
+ str r0, [sp, #0x20]
+_0225C04A:
+ ldr r0, [sp, #0x30]
+ cmp r0, r4
+ beq _0225C074
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0225C05C
+ cmp r4, r1
+ beq _0225C074
+_0225C05C:
+ mov r1, #0
+ ldr r0, [sp, #0x30]
+ mvn r1, r1
+ cmp r0, r1
+ bne _0225C06E
+ cmp r4, r1
+ beq _0225C06E
+ str r4, [sp, #0x30]
+ b _0225C074
+_0225C06E:
+ mov r0, #3
+ str r4, [sp, #0x40]
+ str r0, [sp, #0x20]
+_0225C074:
+ mov r1, #0
+ ldr r0, [sp, #0x38]
+ mvn r1, r1
+ cmp r0, r1
+ beq _0225C082
+ cmp r5, r1
+ beq _0225C096
+_0225C082:
+ mov r1, #0
+ ldr r0, [sp, #0x38]
+ mvn r1, r1
+ cmp r0, r1
+ bne _0225C094
+ cmp r5, r1
+ beq _0225C094
+ str r5, [sp, #0x38]
+ b _0225C096
+_0225C094:
+ str r2, [sp, #0x3c]
+_0225C096:
+ mov r1, #0
+ mvn r1, r1
+ cmp r2, r1
+ beq _0225C0A8
+ ldr r0, [sp, #0x2c]
+ cmp r0, r1
+ bne _0225C0A8
+ str r2, [sp, #0x2c]
+ b _0225C0C6
+_0225C0A8:
+ mov r1, #0
+ mvn r1, r1
+ cmp r2, r1
+ bne _0225C0B6
+ ldr r0, [sp, #0x2c]
+ cmp r0, r1
+ bne _0225C0C6
+_0225C0B6:
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x20]
+ cmp r0, #2
+ bne _0225C0C4
+ str r2, [sp, #0x24]
+ b _0225C0C6
+_0225C0C4:
+ str r2, [sp, #0x28]
+_0225C0C6:
+ ldr r0, [sp, #0x18]
+ cmp r0, #1
+ beq _0225C0CE
+ b _0225C236
+_0225C0CE:
+ ldr r0, [sp, #0x44]
+ cmp r0, #0
+ bne _0225C17A
+ ldr r0, [sp, #0x1c]
+ mov r1, #6
+ ldrsb r1, [r0, r1]
+ mov r0, #0x6a
+ lsl r0, r0, #4
+ ldrb r0, [r6, r0]
+ cmp r1, r0
+ bne _0225C0F6
+ ldr r0, [sp, #0x1c]
+ mov r1, #4
+ ldrsb r0, [r0, r1]
+ mov r1, #5
+ strb r0, [r7, #2]
+ ldr r0, [sp, #0x1c]
+ ldrsb r0, [r0, r1]
+ strb r0, [r7, #1]
+ b _0225C12C
+_0225C0F6:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #0xd]
+ cmp r1, #1
+ bne _0225C106
+ mov r0, #0
+ strb r0, [r7, #2]
+ strb r0, [r7, #1]
+ b _0225C12C
+_0225C106:
+ ldrb r1, [r0, #0xb]
+ cmp r1, #1
+ bne _0225C116
+ mov r0, #1
+ strb r0, [r7, #2]
+ mov r0, #0
+ strb r0, [r7, #1]
+ b _0225C12C
+_0225C116:
+ ldrb r0, [r0, #0xa]
+ cmp r0, #1
+ bne _0225C126
+ mov r0, #0
+ strb r0, [r7, #2]
+ mov r0, #1
+ strb r0, [r7, #1]
+ b _0225C12C
+_0225C126:
+ mov r0, #1
+ strb r0, [r7, #2]
+ strb r0, [r7, #1]
+_0225C12C:
+ mov r0, #1
+ ldrsb r0, [r7, r0]
+ ldr r2, _0225C13C ; =0x0225F690
+ b _0225C140
+ .align 2, 0
+_0225C134: .word 0x0000069E
+_0225C138: .word 0x0225FAAC
+_0225C13C: .word 0x0225F690
+_0225C140:
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r1, [r7, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [sp, #0x48]
+ lsl r3, r1, #2
+ ldr r0, [r0, #0x14]
+ ldr r1, [sp, #0x48]
+ 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, [r1, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225C22E
+_0225C17A:
+ mov r2, #0
+ strb r2, [r7, #2]
+ ldr r0, [sp, #0x24]
+ sub r1, r2, #1
+ strb r2, [r7, #1]
+ cmp r0, r1
+ bne _0225C18E
+ ldr r0, [sp, #0x28]
+ cmp r0, r1
+ beq _0225C198
+_0225C18E:
+ mov r1, #0
+ ldr r0, [sp, #0x40]
+ mvn r1, r1
+ cmp r0, r1
+ bne _0225C1B2
+_0225C198:
+ ldr r0, [sp, #0x2c]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r2, [sp, #0x30]
+ ldr r0, [r6, r0]
+ ldr r3, [sp, #0x38]
+ bl MOD11_0225D5FC
+ b _0225C210
+_0225C1B2:
+ ldr r0, [sp, #0x24]
+ cmp r0, r1
+ beq _0225C1E8
+ ldr r0, [sp, #0x28]
+ cmp r0, r1
+ bne _0225C1E8
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ ldr r0, [sp, #0x34]
+ ldr r2, [sp, #0x38]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x24]
+ ldr r3, [sp, #0x30]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x10]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D52C
+ b _0225C210
+_0225C1E8:
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ ldr r0, [sp, #0x34]
+ ldr r2, [sp, #0x38]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x2c]
+ ldr r3, [sp, #0x30]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x28]
+ str r0, [sp, #0x10]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D52C
+_0225C210:
+ mov r1, #0
+ ldr r0, [sp, #0x40]
+ mvn r1, r1
+ cmp r0, r1
+ beq _0225C22E
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r1, [sp, #0x40]
+ ldr r0, [r6, r0]
+ ldr r2, [sp, #0x3c]
+ ldr r3, [sp, #0x20]
+ bl MOD11_0225D620
+_0225C22E:
+ mov r0, #0
+ add sp, #0x60
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C236:
+ ldr r0, [sp, #0x44]
+ cmp r0, #0
+ bne _0225C24A
+ ldr r2, [sp, #0x4c]
+ add r0, r7, #0
+ mov r1, ip
+ add r3, sp, #0x50
+ bl MOD11_0225C574
+ b _0225C256
+_0225C24A:
+ ldr r2, [sp, #0x4c]
+ add r0, r7, #0
+ mov r1, ip
+ mov r3, #0
+ bl MOD11_0225C574
+_0225C256:
+ cmp r0, #0x20
+ bhi _0225C276
+ bhs _0225C284
+ cmp r0, #2
+ bhi _0225C270
+ cmp r0, #1
+ blo _0225C26E
+ bne _0225C268
+ b _0225C3BE
+_0225C268:
+ cmp r0, #2
+ bne _0225C26E
+ b _0225C40A
+_0225C26E:
+ b _0225C410
+_0225C270:
+ cmp r0, #0x10
+ beq _0225C284
+ b _0225C410
+_0225C276:
+ cmp r0, #0x40
+ bhi _0225C27E
+ beq _0225C284
+ b _0225C410
+_0225C27E:
+ cmp r0, #0x80
+ beq _0225C284
+ b _0225C410
+_0225C284:
+ ldr r0, [sp, #0x44]
+ cmp r0, #0
+ bne _0225C2CA
+ mov r0, #1
+ ldrsb r0, [r7, r0]
+ ldr r2, _0225C41C ; =0x0225F690
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r1, [r7, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [sp, #0x48]
+ lsl r3, r1, #2
+ ldr r0, [r0, #0x14]
+ ldr r1, [sp, #0x48]
+ 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, [r1, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225C410
+_0225C2CA:
+ mov r2, #1
+ ldrsb r0, [r7, r2]
+ cmp r0, #0
+ bne _0225C38C
+ ldr r0, [sp, #0x28]
+ sub r1, r2, #2
+ cmp r0, r1
+ bne _0225C2E0
+ ldr r0, [sp, #0x24]
+ cmp r0, r1
+ beq _0225C2EA
+_0225C2E0:
+ mov r1, #0
+ ldr r0, [sp, #0x40]
+ mvn r1, r1
+ cmp r0, r1
+ bne _0225C304
+_0225C2EA:
+ ldr r0, [sp, #0x2c]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r2, [sp, #0x30]
+ ldr r0, [r6, r0]
+ ldr r3, [sp, #0x38]
+ bl MOD11_0225D5FC
+ b _0225C362
+_0225C304:
+ ldr r0, [sp, #0x24]
+ cmp r0, r1
+ beq _0225C33A
+ ldr r0, [sp, #0x28]
+ cmp r0, r1
+ bne _0225C33A
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ ldr r0, [sp, #0x34]
+ ldr r2, [sp, #0x38]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x24]
+ ldr r3, [sp, #0x30]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x10]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D52C
+ b _0225C362
+_0225C33A:
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ ldr r0, [sp, #0x34]
+ ldr r2, [sp, #0x38]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x2c]
+ ldr r3, [sp, #0x30]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x28]
+ str r0, [sp, #0x10]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D52C
+_0225C362:
+ mov r1, #0
+ ldr r0, [sp, #0x40]
+ mvn r1, r1
+ cmp r0, r1
+ beq _0225C382
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r1, [sp, #0x40]
+ ldr r0, [r6, r0]
+ ldr r2, [sp, #0x3c]
+ ldr r3, [sp, #0x20]
+ bl MOD11_0225D620
+ b _0225C410
+_0225C382:
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D664
+ b _0225C410
+_0225C38C:
+ ldr r0, [sp, #0x48]
+ ldr r1, [sp, #0x48]
+ ldr r0, [r0, #0x14]
+ ldrb r0, [r0, #0x11]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r3, [r1, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldrb r1, [r3, #0x12]
+ ldrb r2, [r3, #0x13]
+ ldrb r3, [r3, #0x10]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D664
+ b _0225C410
+_0225C3BE:
+ ldr r0, [sp, #0x44]
+ cmp r0, #1
+ bne _0225C3E8
+ mov r0, #1
+ ldrsb r0, [r7, r0]
+ cmp r0, #0
+ ble _0225C3D2
+ add sp, #0x60
+ mov r0, #4
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C3D2:
+ add r2, sp, #0x58
+ mov r0, #0
+ add r2, #2
+ b _0225C3E2
+_0225C3DA:
+ ldrb r1, [r2, r0]
+ cmp r1, #1
+ beq _0225C414
+ add r0, r0, #1
+_0225C3E2:
+ cmp r0, #4
+ blt _0225C3DA
+ b _0225C410
+_0225C3E8:
+ mov r0, #1
+ ldrsb r0, [r7, r0]
+ ldr r2, _0225C41C ; =0x0225F690
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r1, [r7, r0]
+ add r0, r2, r3
+ ldrb r0, [r1, r0]
+ cmp r0, #4
+ beq _0225C414
+ add r1, sp, #0x58
+ add r1, #2
+ ldrb r1, [r1, r0]
+ cmp r1, #1
+ bne _0225C410
+ add sp, #0x60
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C40A:
+ add sp, #0x60
+ mov r0, #4
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C410:
+ mov r0, #0
+ mvn r0, r0
+_0225C414:
+ add sp, #0x60
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225C418: .word 0x000006EC
+_0225C41C: .word 0x0225F690
+
+ thumb_func_start MOD11_0225C420
+MOD11_0225C420: ; 0x0225C420
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #4
+ beq _0225C470
+ ldr r1, _0225C474 ; =0x0000069E
+ ldr r0, [r5]
+ ldrb r1, [r5, r1]
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ mov r1, #0x6a
+ lsl r1, r1, #4
+ ldrb r1, [r5, r1]
+ mov r3, #0
+ ldr r7, _0225C478 ; =0x0225F690
+ strb r1, [r0, #6]
+ add r1, r3, #0
+ b _0225C46C
+_0225C450:
+ lsl r5, r3, #1
+ add r2, r1, #0
+ add r6, r7, r5
+ b _0225C466
+_0225C458:
+ ldrb r5, [r2, r6]
+ cmp r4, r5
+ bne _0225C464
+ strb r2, [r0, #4]
+ strb r3, [r0, #5]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C464:
+ add r2, r2, #1
+_0225C466:
+ cmp r2, #2
+ blt _0225C458
+ add r3, r3, #1
+_0225C46C:
+ cmp r3, #3
+ blt _0225C450
+_0225C470:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225C474: .word 0x0000069E
+_0225C478: .word 0x0225F690
+
+ thumb_func_start MOD11_0225C47C
+MOD11_0225C47C: ; 0x0225C47C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r0, #0
+ mov r0, #0x6f
+ lsl r0, r0, #4
+ add r3, r0, #0
+ sub r3, #0x51
+ ldrsb r5, [r6, r3]
+ mov r3, #0x30
+ ldr r2, _0225C568 ; =0x0225FAAC
+ mul r3, r5
+ add r4, r6, r0
+ add r5, r2, r3
+ cmp r1, #1
+ bne _0225C4DA
+ mov r1, #1
+ ldrsb r2, [r4, r1]
+ mov r3, #2
+ ldr r1, _0225C56C ; =0x0225F684
+ ldrsb r3, [r4, r3]
+ add r1, r1, r2
+ sub r0, r0, #4
+ ldrb r2, [r3, r1]
+ ldr r1, [r5, #0x14]
+ lsl r3, r2, #2
+ add r1, r1, r3
+ ldrb r1, [r1, #1]
+ sub r1, #8
+ str r1, [sp]
+ mov r1, #0x11
+ lsl r1, r1, #0x10
+ str r1, [sp, #4]
+ ldr r4, [r5, #0x14]
+ ldr r0, [r6, r0]
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ mov r0, #0
+ add sp, #8
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_0225C4DA:
+ ldr r3, _0225C56C ; =0x0225F684
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #2
+ bl MOD11_0225C574
+ cmp r0, #0x20
+ bhi _0225C502
+ bhs _0225C50E
+ cmp r0, #2
+ bhi _0225C4FC
+ cmp r0, #1
+ blo _0225C560
+ beq _0225C548
+ cmp r0, #2
+ beq _0225C55A
+ b _0225C560
+_0225C4FC:
+ cmp r0, #0x10
+ beq _0225C50E
+ b _0225C560
+_0225C502:
+ cmp r0, #0x40
+ bhi _0225C50A
+ beq _0225C50E
+ b _0225C560
+_0225C50A:
+ cmp r0, #0x80
+ bne _0225C560
+_0225C50E:
+ mov r0, #1
+ ldrsb r3, [r4, r0]
+ mov r0, #2
+ ldr r2, _0225C56C ; =0x0225F684
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [r5, #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, [r5, #0x14]
+ ldr r0, _0225C570 ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225C560
+_0225C548:
+ mov r0, #1
+ ldrsb r3, [r4, r0]
+ mov r0, #2
+ ldr r2, _0225C56C ; =0x0225F684
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ add sp, #8
+ ldrb r0, [r1, r0]
+ pop {r4, r5, r6, pc}
+_0225C55A:
+ add sp, #8
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0225C560:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0225C568: .word 0x0225FAAC
+_0225C56C: .word 0x0225F684
+_0225C570: .word 0x000006EC
+
+ thumb_func_start MOD11_0225C574
+MOD11_0225C574: ; 0x0225C574
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ mov r1, #2
+ ldrsb r1, [r0, r1]
+ add r6, r2, #0
+ add r2, r3, #0
+ cmp r1, r4
+ blt _0225C588
+ sub r1, r4, #1
+ strb r1, [r0, #2]
+_0225C588:
+ mov r1, #1
+ ldrsb r1, [r0, r1]
+ cmp r1, r6
+ blt _0225C594
+ sub r1, r6, #1
+ strb r1, [r0, #1]
+_0225C594:
+ mov r7, #2
+ ldrsb r1, [r0, r7]
+ mov r5, #1
+ mov r3, #0x40
+ str r1, [sp]
+ ldrsb r1, [r0, r5]
+ mov ip, r1
+ ldr r1, _0225C764 ; =0x021C48B8
+ ldr r1, [r1, #0x48]
+ tst r3, r1
+ beq _0225C5FA
+ mov r1, ip
+ sub r1, r1, #1
+ strb r1, [r0, #1]
+ ldrsb r1, [r0, r5]
+ cmp r1, #0
+ bge _0225C5BA
+ mov r1, #0
+ strb r1, [r0, #1]
+_0225C5BA:
+ cmp r2, #0
+ beq _0225C5F6
+ 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 _0225C5F6
+ add r1, r0, #1
+ mov r7, #0
+ mov r6, #1
+_0225C5D6:
+ ldrsb r3, [r1, r7]
+ sub r3, r3, #1
+ strb r3, [r1]
+ ldrsb r3, [r0, r6]
+ cmp r3, #0
+ bge _0225C5E8
+ mov r1, ip
+ strb r1, [r0, #1]
+ b _0225C5F6
+_0225C5E8:
+ mov r5, #2
+ ldrsb r5, [r0, r5]
+ mul r3, r4
+ add r5, r2, r5
+ ldrb r3, [r3, r5]
+ cmp r3, #0xff
+ beq _0225C5D6
+_0225C5F6:
+ mov r5, #0x40
+ b _0225C70E
+_0225C5FA:
+ mov r3, #0x80
+ tst r3, r1
+ beq _0225C650
+ mov r1, ip
+ add r1, r1, #1
+ strb r1, [r0, #1]
+ ldrsb r1, [r0, r5]
+ cmp r1, r6
+ blt _0225C610
+ sub r1, r6, #1
+ strb r1, [r0, #1]
+_0225C610:
+ cmp r2, #0
+ beq _0225C64C
+ 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 _0225C64C
+ add r1, r0, #1
+ mov r7, #1
+_0225C62A:
+ mov r3, #0
+ ldrsb r3, [r1, r3]
+ add r3, r3, #1
+ strb r3, [r1]
+ ldrsb r3, [r0, r7]
+ cmp r3, r6
+ blt _0225C63E
+ mov r1, ip
+ strb r1, [r0, #1]
+ b _0225C64C
+_0225C63E:
+ mov r5, #2
+ ldrsb r5, [r0, r5]
+ mul r3, r4
+ add r5, r2, r5
+ ldrb r3, [r3, r5]
+ cmp r3, #0xff
+ beq _0225C62A
+_0225C64C:
+ mov r5, #0x80
+ b _0225C70E
+_0225C650:
+ mov r3, #0x20
+ tst r3, r1
+ beq _0225C6A6
+ ldr r1, [sp]
+ sub r1, r1, #1
+ strb r1, [r0, #2]
+ ldrsb r1, [r0, r7]
+ cmp r1, #0
+ bge _0225C666
+ mov r1, #0
+ strb r1, [r0, #2]
+_0225C666:
+ cmp r2, #0
+ beq _0225C6A2
+ 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 _0225C6A2
+ add r5, r0, #2
+ mov r7, #0
+ mov r6, #2
+_0225C682:
+ ldrsb r1, [r5, r7]
+ sub r1, r1, #1
+ strb r1, [r5]
+ ldrsb r3, [r0, r6]
+ cmp r3, #0
+ bge _0225C694
+ ldr r1, [sp]
+ strb r1, [r0, #2]
+ b _0225C6A2
+_0225C694:
+ mov r1, #1
+ ldrsb r1, [r0, r1]
+ add r3, r2, r3
+ mul r1, r4
+ ldrb r1, [r1, r3]
+ cmp r1, #0xff
+ beq _0225C682
+_0225C6A2:
+ mov r5, #0x20
+ b _0225C70E
+_0225C6A6:
+ mov r3, #0x10
+ tst r3, r1
+ beq _0225C6FC
+ ldr r1, [sp]
+ add r1, r1, #1
+ strb r1, [r0, #2]
+ ldrsb r1, [r0, r7]
+ cmp r1, r4
+ blt _0225C6BC
+ sub r1, r4, #1
+ strb r1, [r0, #2]
+_0225C6BC:
+ cmp r2, #0
+ beq _0225C6F8
+ 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 _0225C6F8
+ add r5, r0, #2
+ mov r7, #0
+ mov r6, #2
+_0225C6D8:
+ ldrsb r1, [r5, r7]
+ add r1, r1, #1
+ strb r1, [r5]
+ ldrsb r3, [r0, r6]
+ cmp r3, r4
+ blt _0225C6EA
+ ldr r1, [sp]
+ strb r1, [r0, #2]
+ b _0225C6F8
+_0225C6EA:
+ mov r1, #1
+ ldrsb r1, [r0, r1]
+ add r3, r2, r3
+ mul r1, r4
+ ldrb r1, [r1, r3]
+ cmp r1, #0xff
+ beq _0225C6D8
+_0225C6F8:
+ mov r5, #0x10
+ b _0225C70E
+_0225C6FC:
+ add r3, r1, #0
+ tst r3, r5
+ bne _0225C70E
+ tst r1, r7
+ beq _0225C70A
+ add r5, r7, #0
+ b _0225C70E
+_0225C70A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C70E:
+ cmp r2, #0
+ beq _0225C738
+ 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 _0225C738
+ ldr r1, [sp]
+ strb r1, [r0, #2]
+ mov r1, ip
+ strb r1, [r0, #1]
+_0225C738:
+ mov r1, #2
+ ldrsb r2, [r0, r1]
+ ldr r1, [sp]
+ cmp r2, r1
+ bne _0225C74C
+ mov r1, #1
+ ldrsb r1, [r0, r1]
+ mov r0, ip
+ cmp r1, r0
+ beq _0225C754
+_0225C74C:
+ ldr r0, _0225C768 ; =0x000005DC
+ bl FUN_020054C8
+ b _0225C75E
+_0225C754:
+ mov r0, #0xf0
+ tst r0, r5
+ beq _0225C75E
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C75E:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225C764: .word 0x021C48B8
+_0225C768: .word 0x000005DC
+
+ thumb_func_start MOD11_0225C76C
+MOD11_0225C76C: ; 0x0225C76C
+ ldr r1, _0225C774 ; =0x000006F4
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_0225C774: .word 0x000006F4
+
+ thumb_func_start MOD11_0225C778
+MOD11_0225C778: ; 0x0225C778
+ ldr r2, _0225C780 ; =0x000006F4
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_0225C780: .word 0x000006F4
+
+ thumb_func_start MOD11_0225C784
+MOD11_0225C784: ; 0x0225C784
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230078
+ ldr r0, [r4]
+ bl MOD11_02230080
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ ldr r0, [r4]
+ bl MOD11_02231268
+ cmp r0, #0
+ bne _0225C7C0
+ ldr r0, _0225C7E4 ; =0x000006FC
+ ldrb r0, [r4, r0]
+ cmp r0, #2
+ blo _0225C7B0
+ bl ErrorHandling
+_0225C7B0:
+ ldr r1, _0225C7E4 ; =0x000006FC
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ lsl r2, r1, #2
+ ldr r1, _0225C7E8 ; =0x0225F6B8
+ ldr r1, [r1, r2]
+ blx r1
+ b _0225C7C6
+_0225C7C0:
+ add r0, r4, #0
+ bl MOD11_0225C8A0
+_0225C7C6:
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0225C7E2
+ ldr r1, _0225C7EC ; =0x000006FD
+ mov r3, #0
+ strb r3, [r4, r1]
+ add r2, r1, #1
+ strb r3, [r4, r2]
+ sub r2, r1, #1
+ ldrb r2, [r4, r2]
+ sub r1, r1, #1
+ add r2, r2, #1
+ strb r2, [r4, r1]
+_0225C7E2:
+ pop {r4, pc}
+ .align 2, 0
+_0225C7E4: .word 0x000006FC
+_0225C7E8: .word 0x0225F6B8
+_0225C7EC: .word 0x000006FD
+
+ thumb_func_start MOD11_0225C7F0
+MOD11_0225C7F0: ; 0x0225C7F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0225C840 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ bne _0225C820
+ sub r0, r0, #5
+ mov r3, #0x11
+ ldr r0, [r4, r0]
+ mov r1, #0x80
+ mov r2, #0x3c
+ lsl r3, r3, #0x10
+ bl MOD11_0225D7D0
+ ldr r0, _0225C844 ; =0x000006F8
+ mov r1, #0x3c
+ ldr r0, [r4, r0]
+ bl MOD11_0225D820
+ ldr r0, _0225C840 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0225C838
+_0225C820:
+ sub r0, r0, #5
+ ldr r0, [r4, r0]
+ bl MOD11_0225D824
+ cmp r0, #1
+ bne _0225C838
+ ldr r0, _0225C840 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+_0225C838:
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, pc}
+ nop
+_0225C840: .word 0x000006FD
+_0225C844: .word 0x000006F8
+
+ thumb_func_start MOD11_0225C848
+MOD11_0225C848: ; 0x0225C848
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0225C898 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ bne _0225C878
+ sub r0, r0, #5
+ mov r3, #0x11
+ ldr r0, [r4, r0]
+ mov r1, #0x40
+ mov r2, #0x16
+ lsl r3, r3, #0x10
+ bl MOD11_0225D7D0
+ ldr r0, _0225C89C ; =0x000006F8
+ mov r1, #0x3c
+ ldr r0, [r4, r0]
+ bl MOD11_0225D820
+ ldr r0, _0225C898 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0225C890
+_0225C878:
+ sub r0, r0, #5
+ ldr r0, [r4, r0]
+ bl MOD11_0225D824
+ cmp r0, #1
+ bne _0225C890
+ ldr r0, _0225C898 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_0225C890:
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, pc}
+ nop
+_0225C898: .word 0x000006FD
+_0225C89C: .word 0x000006F8
+
+ thumb_func_start MOD11_0225C8A0
+MOD11_0225C8A0: ; 0x0225C8A0
+ push {r4, lr}
+ ldr r1, _0225C914 ; =0x000006FD
+ add r4, r0, #0
+ ldrb r0, [r4, r1]
+ cmp r0, #0
+ beq _0225C8B2
+ cmp r0, #1
+ beq _0225C8D0
+ b _0225C8F4
+_0225C8B2:
+ add r0, r1, #1
+ ldrb r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r0]
+ cmp r0, #0x3c
+ bls _0225C90C
+ mov r2, #0
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r1]
+ add r0, r0, #1
+ strb r0, [r4, r1]
+ b _0225C90C
+_0225C8D0:
+ sub r0, r1, #5
+ mov r3, #0x11
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ mov r2, #0x92
+ lsl r3, r3, #0x10
+ bl MOD11_0225D7D0
+ ldr r0, _0225C918 ; =0x000006F8
+ mov r1, #0x3c
+ ldr r0, [r4, r0]
+ bl MOD11_0225D820
+ ldr r0, _0225C914 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0225C90C
+_0225C8F4:
+ sub r0, r1, #5
+ ldr r0, [r4, r0]
+ bl MOD11_0225D824
+ cmp r0, #1
+ bne _0225C90C
+ ldr r0, _0225C914 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_0225C90C:
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, pc}
+ nop
+_0225C914: .word 0x000006FD
+_0225C918: .word 0x000006F8
+
+ thumb_func_start MOD11_0225C91C
+MOD11_0225C91C: ; 0x0225C91C
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x4a
+ str r0, [sp, #4]
+ mov r0, #0
+ add r4, r1, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _0225C990 ; =0x00004E41
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r2, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0225C994 ; =0x00004FB9
+ mov r2, #0x1b
+ add r3, r2, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, #0xf9
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0225C998 ; =0x00004FB3
+ mov r2, #0x1b
+ add r3, r2, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, #0xfa
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0225C99C ; =0x00004FA8
+ mov r2, #0x1b
+ add r3, r2, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, #0xfb
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_0225C990: .word 0x00004E41
+_0225C994: .word 0x00004FB9
+_0225C998: .word 0x00004FB3
+_0225C99C: .word 0x00004FA8
+
+ thumb_func_start MOD11_0225C9A0
+MOD11_0225C9A0: ; 0x0225C9A0
+ push {r4, lr}
+ ldr r1, _0225C9C4 ; =0x00004FB9
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _0225C9C8 ; =0x00004E41
+ add r0, r4, #0
+ bl FUN_0200C368
+ ldr r1, _0225C9CC ; =0x00004FB3
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0225C9D0 ; =0x00004FA8
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_0225C9C4: .word 0x00004FB9
+_0225C9C8: .word 0x00004E41
+_0225C9CC: .word 0x00004FB3
+_0225C9D0: .word 0x00004FA8
+
+ thumb_func_start MOD11_0225C9D4
+MOD11_0225C9D4: ; 0x0225C9D4
+ push {r4, lr}
+ mov r0, #5
+ lsl r1, r0, #6
+ bl FUN_02016998
+ mov r2, #5
+ mov r1, #0
+ lsl r2, r2, #6
+ add r4, r0, #0
+ blx MI_CpuFill8
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225C9F0
+MOD11_0225C9F0: ; 0x0225C9F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _0225C9FE
+ bl ErrorHandling
+_0225C9FE:
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225CA08
+MOD11_0225CA08: ; 0x0225CA08
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x38]
+ str r3, [sp, #0x1c]
+ str r0, [sp, #0x38]
+ add r6, r1, #0
+ str r2, [sp, #0x18]
+ ldr r7, [sp, #0x3c]
+ bl MOD11_0225C9D4
+ ldr r2, [sp, #0x1c]
+ ldr r3, [sp, #0x38]
+ add r1, r6, #0
+ str r0, [sp, #0x20]
+ str r7, [sp]
+ bl MOD11_0225CB10
+ ldr r5, [sp, #0x20]
+ mov r4, #0
+ add r5, #0x1c
+_0225CA32:
+ ldr r0, [sp, #0x14]
+ add r1, r6, #0
+ ldrb r0, [r0, r4]
+ bl MOD11_0225D374
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ str r1, [sp]
+ str r4, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x38]
+ mov r1, #0x4f
+ str r0, [sp, #0xc]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ ldr r3, [sp, #0x18]
+ add r0, r5, #0
+ add r2, r6, #0
+ str r7, [sp, #0x10]
+ bl MOD11_0225CDB0
+ add r4, r4, #1
+ add r5, #0x30
+ cmp r4, #6
+ blt _0225CA32
+ ldr r0, [sp, #0x20]
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225CA6C
+MOD11_0225CA6C: ; 0x0225CA6C
+ ldr r1, [r0, #4]
+ cmp r1, #0
+ bne _0225CA8A
+ mov r2, #0
+_0225CA74:
+ ldr r1, [r0, #0x20]
+ cmp r1, #0
+ bne _0225CA82
+ add r2, r2, #1
+ add r0, #0x30
+ cmp r2, #6
+ blt _0225CA74
+_0225CA82:
+ cmp r2, #6
+ bne _0225CA8A
+ mov r0, #1
+ bx lr
+_0225CA8A:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225CA90
+MOD11_0225CA90: ; 0x0225CA90
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r4, r1, #0
+ add r7, r2, #0
+ cmp r6, #0
+ bne _0225CAA0
+ bl ErrorHandling
+_0225CAA0:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0225CC68
+ add r5, r6, #0
+ mov r4, #0
+ add r5, #0x1c
+ add r6, #0x18
+_0225CAB0:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ add r3, r6, #0
+ bl MOD11_0225D1A8
+ add r4, r4, #1
+ add r5, #0x30
+ cmp r4, #6
+ blt _0225CAB0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225CAC8
+MOD11_0225CAC8: ; 0x0225CAC8
+ ldr r1, [r0, #4]
+ cmp r1, #0
+ bne _0225CAE6
+ mov r2, #0
+_0225CAD0:
+ ldr r1, [r0, #0x20]
+ cmp r1, #0
+ bne _0225CADE
+ add r2, r2, #1
+ add r0, #0x30
+ cmp r2, #6
+ blt _0225CAD0
+_0225CADE:
+ cmp r2, #6
+ bne _0225CAE6
+ mov r0, #1
+ bx lr
+_0225CAE6:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225CAEC
+MOD11_0225CAEC: ; 0x0225CAEC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ bl FUN_0200C3DC
+ mov r4, #0
+ add r5, r6, #0
+_0225CAFA:
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, #0x30
+ cmp r4, #6
+ blt _0225CAFA
+ add r0, r6, #0
+ bl MOD11_0225C9F0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225CB10
+MOD11_0225CB10: ; 0x0225CB10
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ mov r1, #0
+ cmp r0, #0
+ bne _0225CB2A
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ bne _0225CB2A
+ mov r1, #1
+_0225CB2A:
+ cmp r1, #0
+ bne _0225CB32
+ bl ErrorHandling
+_0225CB32:
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #0x1c
+ blx MI_CpuFill8
+ ldr r1, [sp, #0x18]
+ ldr r2, _0225CBA8 ; =0x0225FE48
+ add r0, r7, #0
+ bl FUN_0200C154
+ str r0, [r5]
+ cmp r6, #0
+ ldr r0, [r5]
+ bne _0225CB68
+ ldr r2, _0225CBAC ; =0x0225FE38
+ lsl r3, r4, #1
+ ldrsh r2, [r2, r3]
+ mov r1, #0x16
+ lsl r1, r1, #4
+ bl FUN_0200C714
+ ldr r0, [r5]
+ mov r1, #8
+ ldr r0, [r0]
+ bl FUN_02020130
+ b _0225CB80
+_0225CB68:
+ ldr r2, _0225CBB0 ; =0x0225FE30
+ lsl r3, r4, #1
+ ldrsh r2, [r2, r3]
+ mov r1, #0x5f
+ mvn r1, r1
+ bl FUN_0200C714
+ ldr r0, [r5]
+ mov r1, #7
+ ldr r0, [r0]
+ bl FUN_02020130
+_0225CB80:
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ str r6, [r5, #0xc]
+ mov r2, #0x7d
+ str r4, [r5, #0x10]
+ mov r0, #0
+ strb r0, [r5, #0x1a]
+ ldr r0, _0225CBB4 ; =MOD11_0225CBBC
+ add r1, r5, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ ldr r0, _0225CBB8 ; =0x00000711
+ bl FUN_020054C8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225CBA8: .word 0x0225FE48
+_0225CBAC: .word 0x0225FE38
+_0225CBB0: .word 0x0225FE30
+_0225CBB4: .word MOD11_0225CBBC
+_0225CBB8: .word 0x00000711
+
+ thumb_func_start MOD11_0225CBBC
+MOD11_0225CBBC: ; 0x0225CBBC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldrb r1, [r4, #0x1a]
+ cmp r1, #0
+ beq _0225CBCE
+ cmp r1, #1
+ beq _0225CBEA
+ b _0225CC52
+_0225CBCE:
+ add r1, sp, #0
+ ldr r0, [r4]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ lsl r0, r0, #8
+ str r0, [r4, #0x14]
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CBEA:
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x14]
+ cmp r0, #0
+ bne _0225CC22
+ mov r0, #0xe
+ lsl r0, r0, #8
+ sub r2, r1, r0
+ lsl r1, r0, #4
+ str r2, [r4, #0x14]
+ cmp r2, r1
+ bgt _0225CC0A
+ lsl r0, r0, #4
+ str r0, [r4, #0x14]
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CC0A:
+ ldr r2, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ lsl r3, r2, #1
+ ldr r2, _0225CC60 ; =0x0225FE38
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ add sp, #4
+ pop {r3, r4, pc}
+_0225CC22:
+ mov r0, #0xe
+ lsl r0, r0, #8
+ add r1, r1, r0
+ mov r0, #2
+ lsl r0, r0, #0xc
+ str r1, [r4, #0x14]
+ cmp r1, r0
+ blt _0225CC3A
+ str r0, [r4, #0x14]
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CC3A:
+ ldr r2, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ lsl r3, r2, #1
+ ldr r2, _0225CC64 ; =0x0225FE30
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ add sp, #4
+ pop {r3, r4, pc}
+_0225CC52:
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0225CC60: .word 0x0225FE38
+_0225CC64: .word 0x0225FE30
+
+ thumb_func_start MOD11_0225CC68
+MOD11_0225CC68: ; 0x0225CC68
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _0225CC7A
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ beq _0225CC7E
+_0225CC7A:
+ bl ErrorHandling
+_0225CC7E:
+ mov r0, #0
+ strb r0, [r5, #0x1a]
+ str r4, [r5, #8]
+ cmp r4, #0
+ bne _0225CC8C
+ mov r0, #4
+ b _0225CC8C
+_0225CC8C:
+ strb r0, [r5, #0x1b]
+ mov r2, #0x7d
+ ldr r0, _0225CCA0 ; =MOD11_0225CCA4
+ add r1, r5, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ pop {r3, r4, r5, pc}
+ nop
+_0225CCA0: .word MOD11_0225CCA4
+
+ thumb_func_start MOD11_0225CCA4
+MOD11_0225CCA4: ; 0x0225CCA4
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x1a]
+ cmp r0, #0
+ beq _0225CCBC
+ cmp r0, #1
+ beq _0225CCFC
+ cmp r0, #2
+ beq _0225CD10
+ b _0225CD8E
+_0225CCBC:
+ add r1, sp, #4
+ ldr r0, [r4]
+ add r1, #2
+ add r2, sp, #4
+ bl FUN_0200C7A0
+ add r1, sp, #4
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ mov r1, #1
+ lsl r0, r0, #8
+ str r0, [r4, #0x14]
+ ldr r0, [r4]
+ bl FUN_0200C90C
+ mov r0, #1
+ lsl r0, r0, #0xc
+ strh r0, [r4, #0x18]
+ mov r0, #0x18
+ ldrsh r0, [r4, r0]
+ mov r1, #0
+ mov r2, #0x3f
+ asr r3, r0, #8
+ mov r0, #0x10
+ sub r0, r0, r3
+ str r0, [sp]
+ ldr r0, _0225CDA0 ; =0x04000050
+ blx G2x_SetBlendAlpha_
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CCFC:
+ ldrb r0, [r4, #0x1b]
+ cmp r0, #0
+ beq _0225CD0A
+ sub r0, r0, #1
+ add sp, #8
+ strb r0, [r4, #0x1b]
+ pop {r3, r4, r5, pc}
+_0225CD0A:
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CD10:
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ bne _0225CD54
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x14]
+ cmp r0, #0
+ bne _0225CD3A
+ mov r0, #1
+ lsl r0, r0, #0xa
+ sub r1, r1, r0
+ str r1, [r4, #0x14]
+ ldr r2, [r4, #0x10]
+ lsl r1, r1, #8
+ lsl r3, r2, #1
+ ldr r2, _0225CDA4 ; =0x0225FE38
+ ldr r0, [r4]
+ ldrsh r2, [r2, r3]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ b _0225CD54
+_0225CD3A:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r1, r1, r0
+ str r1, [r4, #0x14]
+ ldr r2, [r4, #0x10]
+ lsl r1, r1, #8
+ lsl r3, r2, #1
+ ldr r2, _0225CDA8 ; =0x0225FE30
+ ldr r0, [r4]
+ ldrsh r2, [r2, r3]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+_0225CD54:
+ mov r1, #0x18
+ ldrsh r2, [r4, r1]
+ add r0, r1, #0
+ add r0, #0xe8
+ sub r0, r2, r0
+ strh r0, [r4, #0x18]
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ bgt _0225CD78
+ mov r1, #0
+ strh r1, [r4, #0x18]
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CD78:
+ mov r0, #0x18
+ ldrsh r0, [r4, r0]
+ add sp, #8
+ asr r1, r0, #8
+ mov r0, #0x10
+ sub r0, r0, r1
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0225CDAC ; =0x04000052
+ strh r1, [r0]
+ pop {r3, r4, r5, pc}
+_0225CD8E:
+ bl MOD11_02231678
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225CDA0: .word 0x04000050
+_0225CDA4: .word 0x0225FE38
+_0225CDA8: .word 0x0225FE30
+_0225CDAC: .word 0x04000052
+
+ thumb_func_start MOD11_0225CDB0
+MOD11_0225CDB0: ; 0x0225CDB0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r7, r1, #0
+ add r6, r2, #0
+ mov r1, #0
+ str r3, [sp]
+ ldr r4, [sp, #0x1c]
+ cmp r0, #0
+ bne _0225CDCC
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ bne _0225CDCC
+ mov r1, #1
+_0225CDCC:
+ cmp r1, #0
+ bne _0225CDD4
+ bl ErrorHandling
+_0225CDD4:
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #0x30
+ blx MI_CpuFill8
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x28]
+ ldr r2, _0225CEA4 ; =0x0225FE7C
+ bl FUN_0200C154
+ str r0, [r5]
+ cmp r6, #0
+ ldr r0, [r5]
+ bne _0225CE02
+ ldr r2, [sp, #0x18]
+ mov r1, #0x45
+ lsl r3, r2, #1
+ ldr r2, _0225CEA8 ; =0x0225FE40
+ lsl r1, r1, #2
+ ldrsh r2, [r2, r3]
+ bl FUN_0200C714
+ b _0225CE12
+_0225CE02:
+ ldr r2, [sp, #0x18]
+ mov r1, #0x13
+ lsl r3, r2, #1
+ ldr r2, _0225CEAC ; =0x0225FE28
+ mvn r1, r1
+ ldrsh r2, [r2, r3]
+ bl FUN_0200C714
+_0225CE12:
+ ldr r0, [r5]
+ ldr r1, [sp, #0x20]
+ ldr r0, [r0]
+ bl FUN_02020130
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ add r0, r5, #0
+ str r6, [r5, #8]
+ add r0, #0x2d
+ strb r4, [r0]
+ ldr r0, [sp, #0x18]
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #0x20]
+ bl MOD11_0225D3B4
+ add r1, r5, #0
+ add r1, #0x2e
+ strb r0, [r1]
+ ldr r0, [sp, #0x20]
+ str r7, [r5, #0x14]
+ cmp r0, #6
+ bne _0225CE48
+ ldr r0, _0225CEB0 ; =0x00000713
+ b _0225CE4A
+_0225CE48:
+ ldr r0, _0225CEB4 ; =0x00000712
+_0225CE4A:
+ strh r0, [r5, #0x2a]
+ cmp r6, #0
+ bne _0225CE5E
+ lsl r0, r4, #4
+ add r0, #0xa2
+ str r0, [r5, #0x20]
+ mov r0, #0xf
+ mul r0, r4
+ add r0, #0x9c
+ b _0225CE70
+_0225CE5E:
+ lsl r1, r4, #4
+ mov r0, #0x5e
+ sub r0, r0, r1
+ str r0, [r5, #0x20]
+ mov r0, #0xf
+ add r1, r4, #0
+ mul r1, r0
+ mov r0, #0x64
+ sub r0, r0, r1
+_0225CE70:
+ str r0, [r5, #0x24]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x2c
+ strb r1, [r0]
+ ldr r0, [sp]
+ ldr r2, _0225CEB8 ; =0x000001F5
+ cmp r0, #0
+ bne _0225CE96
+ lsl r0, r4, #1
+ add r0, r4, r0
+ add r0, r0, #5
+ strh r0, [r5, #0x28]
+ ldr r0, _0225CEBC ; =MOD11_0225CEC4
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225CE96:
+ ldr r0, _0225CEC0 ; =MOD11_0225D0C4
+ strh r1, [r5, #0x28]
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225CEA4: .word 0x0225FE7C
+_0225CEA8: .word 0x0225FE40
+_0225CEAC: .word 0x0225FE28
+_0225CEB0: .word 0x00000713
+_0225CEB4: .word 0x00000712
+_0225CEB8: .word 0x000001F5
+_0225CEBC: .word MOD11_0225CEC4
+_0225CEC0: .word MOD11_0225D0C4
+
+ thumb_func_start MOD11_0225CEC4
+MOD11_0225CEC4: ; 0x0225CEC4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ cmp r0, #6
+ bls _0225CED6
+ b _0225D0A6
+_0225CED6:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225CEE2: ; jump table
+ .short _0225CEF0 - _0225CEE2 - 2 ; case 0
+ .short _0225CF14 - _0225CEE2 - 2 ; case 1
+ .short _0225CF22 - _0225CEE2 - 2 ; case 2
+ .short _0225CFA4 - _0225CEE2 - 2 ; case 3
+ .short _0225CFBC - _0225CEE2 - 2 ; case 4
+ .short _0225CFFC - _0225CEE2 - 2 ; case 5
+ .short _0225D02A - _0225CEE2 - 2 ; case 6
+_0225CEF0:
+ add r1, sp, #0
+ ldr r0, [r4]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ lsl r0, r0, #8
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225CF14:
+ mov r0, #0x28
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225CF22
+ sub r0, r0, #1
+ strh r0, [r4, #0x28]
+ pop {r3, r4, r5, pc}
+_0225CF22:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225CF66
+ mov r0, #0xe
+ lsl r0, r0, #8
+ sub r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x24]
+ lsl r0, r0, #8
+ cmp r1, r0
+ bgt _0225CF50
+ str r0, [r4, #0x1c]
+ ldrh r0, [r4, #0x2a]
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225CF50:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D0BC ; =0x0225FE40
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ b _0225CF9A
+_0225CF66:
+ mov r0, #0xe
+ lsl r0, r0, #8
+ add r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x24]
+ lsl r0, r0, #8
+ cmp r1, r0
+ blt _0225CF86
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225CF86:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D0C0 ; =0x0225FE28
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+_0225CF9A:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ pop {r3, r4, r5, pc}
+_0225CFA4:
+ ldr r1, [r4, #0x14]
+ mov r0, #0
+ ldrsb r0, [r1, r0]
+ add r0, r0, #1
+ strb r0, [r1]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225CFBC:
+ ldr r1, [r4, #0x14]
+ mov r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #6
+ beq _0225CFD0
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ pop {r3, r4, r5, pc}
+_0225CFD0:
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ ldr r0, [r4]
+ bne _0225CFE2
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_02020208
+ b _0225CFEA
+_0225CFE2:
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_02020208
+_0225CFEA:
+ mov r0, #0
+ strh r0, [r4, #0x28]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225CFFC:
+ mov r0, #0x28
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ strh r1, [r4, #0x28]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ blt _0225D0BA
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x2e
+ ldrb r1, [r1]
+ ldr r0, [r0]
+ bl FUN_02020130
+ mov r0, #0
+ strh r0, [r4, #0x28]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D02A:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225D068
+ mov r0, #6
+ lsl r0, r0, #8
+ add r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #8
+ cmp r1, r0
+ blt _0225D052
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D052:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D0BC ; =0x0225FE40
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ b _0225D09C
+_0225D068:
+ mov r0, #6
+ lsl r0, r0, #8
+ sub r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #8
+ cmp r1, r0
+ bgt _0225D088
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D088:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D0C0 ; =0x0225FE28
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+_0225D09C:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ pop {r3, r4, r5, pc}
+_0225D0A6:
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_02020208
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+_0225D0BA:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225D0BC: .word 0x0225FE40
+_0225D0C0: .word 0x0225FE28
+
+ thumb_func_start MOD11_0225D0C4
+MOD11_0225D0C4: ; 0x0225D0C4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r1, #0x2c
+ ldrb r1, [r1]
+ cmp r1, #0
+ beq _0225D0DC
+ cmp r1, #1
+ beq _0225D10A
+ cmp r1, #2
+ beq _0225D11A
+ b _0225D192
+_0225D0DC:
+ add r1, sp, #0
+ ldr r0, [r4]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ mov r1, #0
+ lsl r0, r0, #8
+ str r0, [r4, #0x1c]
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_02020208
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D10A:
+ mov r0, #0x28
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225D11A
+ sub r0, r0, #1
+ add sp, #4
+ strh r0, [r4, #0x28]
+ pop {r3, r4, pc}
+_0225D11A:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225D15A
+ mov r0, #0xe
+ lsl r0, r0, #8
+ sub r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #8
+ cmp r1, r0
+ bgt _0225D142
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D142:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D1A0 ; =0x0225FE40
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ add sp, #4
+ pop {r3, r4, pc}
+_0225D15A:
+ mov r0, #0xe
+ lsl r0, r0, #8
+ add r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #8
+ cmp r1, r0
+ blt _0225D17A
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D17A:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D1A4 ; =0x0225FE28
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ add sp, #4
+ pop {r3, r4, pc}
+_0225D192:
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0225D1A0: .word 0x0225FE40
+_0225D1A4: .word 0x0225FE28
+
+ thumb_func_start MOD11_0225D1A8
+MOD11_0225D1A8: ; 0x0225D1A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r1, #0
+ add r7, r2, #0
+ add r4, r3, #0
+ cmp r0, #0
+ beq _0225D1BE
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ beq _0225D1C2
+_0225D1BE:
+ bl ErrorHandling
+_0225D1C2:
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x2c
+ strb r1, [r0]
+ cmp r7, #0
+ str r4, [r5, #0x18]
+ ldr r2, _0225D200 ; =0x000001F5
+ bne _0225D1EC
+ lsl r0, r6, #1
+ add r0, r6, r0
+ strh r0, [r5, #0x28]
+ add r0, r5, #0
+ mov r1, #4
+ add r0, #0x2f
+ strb r1, [r0]
+ ldr r0, _0225D204 ; =MOD11_0225D20C
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225D1EC:
+ add r0, r5, #0
+ strh r1, [r5, #0x28]
+ add r0, #0x2f
+ strb r1, [r0]
+ ldr r0, _0225D208 ; =MOD11_0225D31C
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225D200: .word 0x000001F5
+_0225D204: .word MOD11_0225D20C
+_0225D208: .word MOD11_0225D31C
+
+ thumb_func_start MOD11_0225D20C
+MOD11_0225D20C: ; 0x0225D20C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x18]
+ add r5, r0, #0
+ mov r0, #0
+ ldrsh r0, [r1, r0]
+ cmp r0, #0
+ bne _0225D224
+ add r0, r4, #0
+ mov r1, #0x64
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D224:
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ cmp r0, #2
+ bgt _0225D23E
+ cmp r0, #0
+ blt _0225D2FA
+ beq _0225D242
+ cmp r0, #1
+ beq _0225D26E
+ cmp r0, #2
+ beq _0225D294
+ b _0225D2FA
+_0225D23E:
+ cmp r0, #0x64
+ b _0225D2FA
+_0225D242:
+ add r1, sp, #0
+ ldr r0, [r4]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ mov r1, #1
+ lsl r0, r0, #8
+ str r0, [r4, #0x1c]
+ ldr r0, [r4]
+ bl FUN_0200C90C
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D26E:
+ add r0, r4, #0
+ add r0, #0x2f
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0225D286
+ add r0, r4, #0
+ add r0, #0x2f
+ ldrb r0, [r0]
+ add r4, #0x2f
+ sub r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0225D286:
+ mov r0, #0x28
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225D294
+ sub r0, r0, #1
+ strh r0, [r4, #0x28]
+ pop {r3, r4, r5, pc}
+_0225D294:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225D2B8
+ mov r0, #3
+ lsl r0, r0, #0xa
+ sub r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r2, [r4, #0xc]
+ lsl r1, r1, #8
+ lsl r3, r2, #1
+ ldr r2, _0225D310 ; =0x0225FE40
+ ldr r0, [r4]
+ ldrsh r2, [r2, r3]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ b _0225D2D2
+_0225D2B8:
+ mov r0, #3
+ lsl r0, r0, #0xa
+ add r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r2, [r4, #0xc]
+ lsl r1, r1, #8
+ lsl r3, r2, #1
+ ldr r2, _0225D314 ; =0x0225FE28
+ ldr r0, [r4]
+ ldrsh r2, [r2, r3]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+_0225D2D2:
+ ldr r1, [r4, #0x1c]
+ ldr r0, _0225D318 ; =0xFFFFF000
+ cmp r1, r0
+ blt _0225D2E2
+ mov r0, #0x11
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ ble _0225D2F0
+_0225D2E2:
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D2F0:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ pop {r3, r4, r5, pc}
+_0225D2FA:
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225D310: .word 0x0225FE40
+_0225D314: .word 0x0225FE28
+_0225D318: .word 0xFFFFF000
+
+ thumb_func_start MOD11_0225D31C
+MOD11_0225D31C: ; 0x0225D31C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x18]
+ add r5, r0, #0
+ mov r0, #0
+ ldrsh r0, [r1, r0]
+ cmp r0, #0
+ bne _0225D334
+ add r0, r4, #0
+ mov r1, #0x64
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D334:
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0225D346
+ cmp r0, #1
+ beq _0225D370
+ cmp r0, #0x64
+ b _0225D35C
+_0225D346:
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0200C90C
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r4, #0x2c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0225D35C:
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+_0225D370:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D374
+MOD11_0225D374: ; 0x0225D374
+ cmp r0, #3
+ bhi _0225D38C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225D384: ; jump table
+ .short _0225D38C - _0225D384 - 2 ; case 0
+ .short _0225D390 - _0225D384 - 2 ; case 1
+ .short _0225D39C - _0225D384 - 2 ; case 2
+ .short _0225D3A8 - _0225D384 - 2 ; case 3
+_0225D38C:
+ mov r0, #6
+ bx lr
+_0225D390:
+ cmp r1, #0
+ bne _0225D398
+ mov r0, #3
+ bx lr
+_0225D398:
+ mov r0, #0
+ bx lr
+_0225D39C:
+ cmp r1, #0
+ bne _0225D3A4
+ mov r0, #5
+ bx lr
+_0225D3A4:
+ mov r0, #2
+ bx lr
+_0225D3A8:
+ cmp r1, #0
+ bne _0225D3B0
+ mov r0, #4
+ bx lr
+_0225D3B0:
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD11_0225D3B4
+MOD11_0225D3B4: ; 0x0225D3B4
+ cmp r0, #6
+ bhi _0225D3EA
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0225D3C4: ; jump table
+ .short _0225D3D8 - _0225D3C4 - 2 ; case 0
+ .short _0225D3E8 - _0225D3C4 - 2 ; case 1
+ .short _0225D3E0 - _0225D3C4 - 2 ; case 2
+ .short _0225D3D4 - _0225D3C4 - 2 ; case 3
+ .short _0225D3E4 - _0225D3C4 - 2 ; case 4
+ .short _0225D3DC - _0225D3C4 - 2 ; case 5
+ .short _0225D3D2 - _0225D3C4 - 2 ; case 6
+_0225D3D2:
+ bx lr
+_0225D3D4:
+ mov r0, #0
+ bx lr
+_0225D3D8:
+ mov r0, #3
+ bx lr
+_0225D3DC:
+ mov r0, #2
+ bx lr
+_0225D3E0:
+ mov r0, #5
+ bx lr
+_0225D3E4:
+ mov r0, #1
+ bx lr
+_0225D3E8:
+ mov r0, #4
+_0225D3EA:
+ bx lr
+
+ thumb_func_start MOD11_0225D3EC
+MOD11_0225D3EC: ; 0x0225D3EC
+ 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 MOD11_0225D45C
+MOD11_0225D45C: ; 0x0225D45C
+ 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 MOD11_0225D484
+MOD11_0225D484: ; 0x0225D484
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r3, #0
+ mov ip, r2
+ ldr r3, _0225D4FC ; =0x0225FEB0
+ add r6, r0, #0
+ add r7, r1, #0
+ add r2, sp, #4
+ mov r4, #6
+_0225D496:
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ sub r4, r4, #1
+ bne _0225D496
+ 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]
+ blx MI_CpuFill8
+ ldr r5, [sp]
+ mov r4, #0
+_0225D4CE:
+ 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 _0225D4CE
+ ldr r0, _0225D500 ; =MOD11_0225D670
+ ldr r1, [sp]
+ ldr r2, _0225D504 ; =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
+_0225D4FC: .word 0x0225FEB0
+_0225D500: .word MOD11_0225D670
+_0225D504: .word 0x00009C40
+
+ thumb_func_start MOD11_0225D508
+MOD11_0225D508: ; 0x0225D508
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_0225D510:
+ ldr r0, [r5]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _0225D510
+ ldr r0, [r6, #0x14]
+ bl FUN_0200CAB4
+ add r0, r6, #0
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225D52C
+MOD11_0225D52C: ; 0x0225D52C
+ 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
+_0225D5A2:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl FUN_0200C644
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0225D5A2
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225D5B4
+MOD11_0225D5B4: ; 0x0225D5B4
+ push {r4, lr}
+ sub sp, #0x18
+ ldr r4, [sp, #0x20]
+ str r4, [sp]
+ ldr r4, [sp, #0x24]
+ str r4, [sp, #4]
+ ldr r4, [sp, #0x28]
+ str r4, [sp, #8]
+ ldr r4, [sp, #0x2c]
+ str r4, [sp, #0xc]
+ ldr r4, [sp, #0x30]
+ str r4, [sp, #0x10]
+ mov r4, #3
+ lsl r4, r4, #0x12
+ str r4, [sp, #0x14]
+ bl MOD11_0225D52C
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D5DC
+MOD11_0225D5DC: ; 0x0225D5DC
+ push {r3, r4, lr}
+ sub sp, #0x14
+ 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]
+ add r2, r3, #0
+ add r3, r4, #0
+ bl MOD11_0225D5B4
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D5FC
+MOD11_0225D5FC: ; 0x0225D5FC
+ 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 MOD11_0225D52C
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D620
+MOD11_0225D620: ; 0x0225D620
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r3, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x10]
+ ldr r3, [sp, #0x10]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C750
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ bl FUN_0200C5C0
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ bl FUN_0200C644
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0225D648
+MOD11_0225D648: ; 0x0225D648
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_0225D650:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl FUN_0200C644
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _0225D650
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D664
+MOD11_0225D664: ; 0x0225D664
+ ldr r3, _0225D66C ; =0x0200C645
+ ldr r0, [r0, #0x10]
+ mov r1, #0
+ bx r3
+ .align 2, 0
+_0225D66C: .word 0x0200C645
+
+ thumb_func_start MOD11_0225D670
+MOD11_0225D670: ; 0x0225D670
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ ldr r0, [r6]
+ bl FUN_0200C658
+ cmp r0, #0
+ beq _0225D6A0
+ mov r4, #0
+ add r5, r6, #0
+_0225D682:
+ ldr r0, [r5]
+ bl FUN_0200C5A8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0225D682
+ ldr r0, [r6, #0x10]
+ bl FUN_0200C658
+ cmp r0, #1
+ bne _0225D6A0
+ ldr r0, [r6, #0x10]
+ bl FUN_0200C5A8
+_0225D6A0:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D6A4
+MOD11_0225D6A4: ; 0x0225D6A4
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #0x52
+ str r0, [sp]
+ mov r0, #0xb
+ 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, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x52
+ mov r3, #0xa
+ str r6, [sp, #8]
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x2c]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x52
+ mov r3, #0xc
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x30]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x52
+ mov r3, #0xd
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225D714
+MOD11_0225D714: ; 0x0225D714
+ 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 MOD11_0225D73C
+MOD11_0225D73C: ; 0x0225D73C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ ldr r5, _0225D7AC ; =0x0225FEE4
+ add r6, r3, #0
+ add r7, r0, #0
+ str r1, [sp]
+ add r4, sp, #4
+ mov r3, #6
+_0225D74C:
+ ldmia r5!, {r0, r1}
+ stmia r4!, {r0, r1}
+ sub r3, r3, #1
+ bne _0225D74C
+ ldr r0, [r5]
+ mov r1, #0x20
+ str r0, [r4]
+ ldr r0, [sp, #0x50]
+ str r6, [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]
+ add r0, r2, #0
+ bl FUN_02016998
+ mov r1, #0
+ mov r2, #0x20
+ add r4, r0, #0
+ blx MI_CpuFill8
+ ldr r1, [sp]
+ add r0, r7, #0
+ add r2, sp, #4
+ bl FUN_0200C154
+ mov r1, #0
+ str r0, [r4]
+ bl FUN_0200C644
+ mov r0, #3
+ lsl r0, r0, #0x12
+ str r0, [r4, #0x14]
+ ldr r0, _0225D7B0 ; =MOD11_0225D828
+ ldr r2, _0225D7B4 ; =0x000003E7
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #4]
+ add r0, r4, #0
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225D7AC: .word 0x0225FEE4
+_0225D7B0: .word MOD11_0225D828
+_0225D7B4: .word 0x000003E7
+
+ thumb_func_start MOD11_0225D7B8
+MOD11_0225D7B8: ; 0x0225D7B8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #4]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225D7D0
+MOD11_0225D7D0: ; 0x0225D7D0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl MOD11_0225D98C
+ str r7, [r5, #8]
+ str r4, [r5, #0xc]
+ str r6, [r5, #0x14]
+ lsl r1, r7, #0x10
+ lsl r2, r4, #0x10
+ ldr r0, [r5]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ add r3, r6, #0
+ bl FUN_0200C750
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_0200C644
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D800
+MOD11_0225D800: ; 0x0225D800
+ push {r3, lr}
+ mov r3, #3
+ lsl r3, r3, #0x12
+ bl MOD11_0225D7D0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_0225D80C
+MOD11_0225D80C: ; 0x0225D80C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r4, #0
+ bl MOD11_0225D98C
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225D820
+MOD11_0225D820: ; 0x0225D820
+ strh r1, [r0, #0x18]
+ bx lr
+
+ thumb_func_start MOD11_0225D824
+MOD11_0225D824: ; 0x0225D824
+ ldrb r0, [r0, #0x1b]
+ bx lr
+
+ thumb_func_start MOD11_0225D828
+MOD11_0225D828: ; 0x0225D828
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldrb r0, [r4, #0x1b]
+ cmp r0, #1
+ bne _0225D836
+ mov r0, #0
+ strb r0, [r4, #0x1b]
+_0225D836:
+ mov r0, #0x18
+ ldrsh r1, [r4, r0]
+ cmp r1, #0
+ ble _0225D84C
+ sub r1, r1, #1
+ strh r1, [r4, #0x18]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bne _0225D84C
+ mov r0, #1
+ strb r0, [r4, #0x1a]
+_0225D84C:
+ ldr r0, [r4]
+ bl FUN_0200C658
+ cmp r0, #0
+ bne _0225D858
+ b _0225D984
+_0225D858:
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225D8DA
+ mov r1, #0xfa
+ ldr r2, [r4, #0x10]
+ lsl r1, r1, #2
+ add r2, r2, r1
+ add r0, r4, #0
+ ldr r1, _0225D988 ; =0x00004650
+ add r0, #0x10
+ str r2, [r4, #0x10]
+ cmp r2, r1
+ blt _0225D886
+ ldr r2, [r0]
+ sub r1, r2, r1
+ str r1, [r0]
+ ldrb r0, [r4, #0x1a]
+ cmp r0, #1
+ bne _0225D886
+ mov r0, #1
+ strb r0, [r4, #0x1c]
+ mov r0, #0
+ strb r0, [r4, #0x1a]
+_0225D886:
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225D8DA
+ ldr r0, [r4, #0x10]
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0201B93C
+ mov r2, #0xe
+ asr r1, r0, #0x1f
+ lsl r2, r2, #0xc
+ mov r3, #0
+ blx _ll_mul
+ add r5, r1, #0
+ ldr r1, [r4, #8]
+ mov r2, #2
+ add r6, r0, #0
+ lsl r1, r1, #0x10
+ mov r7, #0
+ lsl r2, r2, #0xa
+ asr r1, r1, #0x10
+ add r2, r6, r2
+ adc r5, r7
+ lsl r5, r5, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r5
+ asr r5, r2, #0xb
+ lsr r5, r5, #0x14
+ add r5, r2, r5
+ ldr r3, [r4, #0xc]
+ asr r2, r5, #0xc
+ sub r2, r3, r2
+ lsl r2, r2, #0x10
+ ldr r0, [r4]
+ ldr r3, [r4, #0x14]
+ asr r2, r2, #0x10
+ bl FUN_0200C750
+_0225D8DA:
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #1
+ bne _0225D97E
+ ldrb r0, [r4, #0x1d]
+ cmp r0, #3
+ bhi _0225D97E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225D8F2: ; jump table
+ .short _0225D8FA - _0225D8F2 - 2 ; case 0
+ .short _0225D912 - _0225D8F2 - 2 ; case 1
+ .short _0225D934 - _0225D8F2 - 2 ; case 2
+ .short _0225D962 - _0225D8F2 - 2 ; case 3
+_0225D8FA:
+ ldrb r0, [r4, #0x1e]
+ add r0, r0, #1
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1e]
+ cmp r0, #3
+ bls _0225D97E
+ mov r0, #0
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1d]
+ add r0, r0, #1
+ strb r0, [r4, #0x1d]
+ b _0225D97E
+_0225D912:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #8]
+ add r2, #8
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4]
+ ldr r3, [r4, #0x14]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C750
+ mov r0, #1
+ strb r0, [r4, #0x1b]
+ ldrb r0, [r4, #0x1d]
+ add r0, r0, #1
+ strb r0, [r4, #0x1d]
+ b _0225D97E
+_0225D934:
+ ldrb r0, [r4, #0x1e]
+ add r0, r0, #1
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1e]
+ cmp r0, #2
+ bls _0225D97E
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #8]
+ add r2, r2, #2
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4]
+ ldr r3, [r4, #0x14]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C750
+ mov r0, #0
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1d]
+ add r0, r0, #1
+ strb r0, [r4, #0x1d]
+ b _0225D97E
+_0225D962:
+ ldrb r0, [r4, #0x1e]
+ add r0, r0, #1
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1e]
+ cmp r0, #2
+ bls _0225D97E
+ add r0, r4, #0
+ bl MOD11_0225D80C
+ mov r0, #0
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1d]
+ add r0, r0, #1
+ strb r0, [r4, #0x1d]
+_0225D97E:
+ ldr r0, [r4]
+ bl FUN_0200C5A8
+_0225D984:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225D988: .word 0x00004650
+
+ thumb_func_start MOD11_0225D98C
+MOD11_0225D98C: ; 0x0225D98C
+ mov r1, #0
+ str r1, [r0, #0x10]
+ strb r1, [r0, #0x1c]
+ strb r1, [r0, #0x1d]
+ strb r1, [r0, #0x1e]
+ bx lr
+
+ .section .data
+ ; 0x0225D998
+ .incbin "baserom.nds", 0x1dd7d8, 0x2608
diff --git a/arm9/undefined_syms.txt b/arm9/undefined_syms.txt
index ab1bb25b..9b6d2115 100644
--- a/arm9/undefined_syms.txt
+++ b/arm9/undefined_syms.txt
@@ -217,6 +217,83 @@ FUN_021EF844 = 0x021EF844;
FUN_021EF8C8 = 0x021EF8C8;
FUN_021EF8DC = 0x021EF8DC;
FUN_021EFA9C = 0x021EFA9C;
+FUN_021D80E4 = 0x021D80E4;
+FUN_021D9320 = 0x021D9320;
+FUN_021D94B4 = 0x021D94B4;
+FUN_021D9510 = 0x021D9510;
+FUN_021DA03C = 0x021DA03C;
+FUN_021DA080 = 0x021DA080;
+FUN_021DA0DC = 0x021DA0DC;
+FUN_021DA0E0 = 0x021DA0E0;
+FUN_021DA0E8 = 0x021DA0E8;
+FUN_021DA118 = 0x021DA118;
+FUN_021DA138 = 0x021DA138;
+FUN_021DA1A0 = 0x021DA1A0;
+FUN_021DA1A4 = 0x021DA1A4;
+FUN_021DA1A8 = 0x021DA1A8;
+FUN_021DA20C = 0x021DA20C;
+FUN_021DA4BC = 0x021DA4BC;
+FUN_021DB44C = 0x021DB44C;
+FUN_021DB4B0 = 0x021DB4B0;
+FUN_021DB52C = 0x021DB52C;
+FUN_021DB53C = 0x021DB53C;
+FUN_021DBA40 = 0x021DBA40;
+FUN_021DBA78 = 0x021DBA78;
+FUN_021DBAA0 = 0x021DBAA0;
+FUN_021E4BE8 = 0x021E4BE8;
+FUN_021E4C00 = 0x021E4C00;
+FUN_021E4C08 = 0x021E4C08;
+FUN_021E4C20 = 0x021E4C20;
+FUN_021E4C24 = 0x021E4C24;
+FUN_021E4C6C = 0x021E4C6C;
+FUN_021E4DC4 = 0x021E4DC4;
+FUN_021E4E90 = 0x021E4E90;
+FUN_021E4EE4 = 0x021E4EE4;
+FUN_021E4EFC = 0x021E4EFC;
+FUN_021E506C = 0x021E506C;
+FUN_021E5078 = 0x021E5078;
+FUN_021E5094 = 0x021E5094;
+FUN_021E50A0 = 0x021E50A0;
+FUN_021E50AC = 0x021E50AC;
+FUN_021E50C8 = 0x021E50C8;
+FUN_021E50D4 = 0x021E50D4;
+FUN_021E5114 = 0x021E5114;
+FUN_021E5198 = 0x021E5198;
+FUN_021E51EC = 0x021E51EC;
+FUN_021E5224 = 0x021E5224;
+FUN_021E5260 = 0x021E5260;
+FUN_021E5294 = 0x021E5294;
+FUN_021E7C80 = 0x021E7C80;
+FUN_021E7E9C = 0x021E7E9C;
+FUN_021E7EC0 = 0x021E7EC0;
+FUN_021E7ECC = 0x021E7ECC;
+FUN_021E7EEC = 0x021E7EEC;
+FUN_021E8698 = 0x021E8698;
+FUN_021F0514 = 0x021F0514;
+FUN_021F1C1C = 0x021F1C1C;
+FUN_021F1C30 = 0x021F1C30;
+FUN_021F1E64 = 0x021F1E64;
+FUN_021F220C = 0x021F220C;
+FUN_021F51D0 = 0x021F51D0;
+FUN_021F522C = 0x021F522C;
+FUN_021F5268 = 0x021F5268;
+FUN_021F52C8 = 0x021F52C8;
+FUN_021F531C = 0x021F531C;
+FUN_021F5348 = 0x021F5348;
+FUN_021F5358 = 0x021F5358;
+FUN_021F5384 = 0x021F5384;
+FUN_021F53BC = 0x021F53BC;
+FUN_021F53F8 = 0x021F53F8;
+FUN_021F5400 = 0x021F5400;
+FUN_021F5424 = 0x021F5424;
+FUN_021F5430 = 0x021F5430;
+FUN_021F54CC = 0x021F54CC;
+FUN_021F54D0 = 0x021F54D0;
+FUN_021F54D8 = 0x021F54D8;
+FUN_021F61F4 = 0x021F61F4;
+FUN_021F6234 = 0x021F6234;
+FUN_021F6240 = 0x021F6240;
+FUN_021F6254 = 0x021F6254;
FUN_021F02C4 = 0x021F02C4;
FUN_021F1D8C = 0x021F1D8C;
FUN_021F1DC8 = 0x021F1DC8;
@@ -267,6 +344,14 @@ FUN_0222F440 = 0x0222F440;
FUN_0222F480 = 0x0222F480;
FUN_0222F7E0 = 0x0222F7E0;
FUN_0222F990 = 0x0222F990;
+FUN_02230078 = 0x02230078;
+FUN_02230080 = 0x02230080;
+FUN_022300CC = 0x022300CC;
+FUN_022312D0 = 0x022312D0;
+FUN_02231504 = 0x02231504;
+FUN_02231534 = 0x02231534;
+FUN_02231678 = 0x02231678;
+FUN_02233560 = 0x02233560;
FUN_022300D4 = 0x022300D4;
FUN_022300DC = 0x022300DC;
FUN_022300E4 = 0x022300E4;
@@ -538,6 +623,61 @@ FUN_022524F4 = 0x022524F4;
FUN_02252504 = 0x02252504;
FUN_02254A68 = 0x02254A68;
FUN_02254AB8 = 0x02254AB8;
+FUN_0223BD14 = 0x0223BD14;
+FUN_0222FF68 = 0x0222FF68;
+FUN_0222FF74 = 0x0222FF74;
+FUN_0222FF78 = 0x0222FF78;
+FUN_0222FF88 = 0x0222FF88;
+FUN_02230014 = 0x02230014;
+FUN_02230188 = 0x02230188;
+FUN_02230214 = 0x02230214;
+FUN_02230218 = 0x02230218;
+FUN_02230260 = 0x02230260;
+FUN_02230290 = 0x02230290;
+FUN_022302BC = 0x022302BC;
+FUN_02230370 = 0x02230370;
+FUN_02230E44 = 0x02230E44;
+FUN_02230E54 = 0x02230E54;
+FUN_02231238 = 0x02231238;
+FUN_0224C474 = 0x0224C474;
+FUN_0225D3EC = 0x0225D3EC;
+FUN_0225D45C = 0x0225D45C;
+FUN_0225D484 = 0x0225D484;
+FUN_0225D508 = 0x0225D508;
+FUN_0225D5DC = 0x0225D5DC;
+FUN_0225D648 = 0x0225D648;
+FUN_0225D6A4 = 0x0225D6A4;
+FUN_0225D714 = 0x0225D714;
+FUN_0225D73C = 0x0225D73C;
+FUN_0225D7B8 = 0x0225D7B8;
+FUN_0225D800 = 0x0225D800;
+FUN_0225D80C = 0x0225D80C;
+FUN_0225D820 = 0x0225D820;
+FUN_0225D824 = 0x0225D824;
+FUN_021EEF0C = 0x021EEF0C;
+FUN_021EEF68 = 0x021EEF68;
+FUN_021EEF84 = 0x021EEF84;
+FUN_021EEF98 = 0x021EEF98;
+FUN_021EEF9C = 0x021EEF9C;
+FUN_021EFBF4 = 0x021EFBF4;
+FUN_021EFD8C = 0x021EFD8C;
+FUN_021F45A4 = 0x021F45A4;
+FUN_021F4698 = 0x021F4698;
+FUN_021F4A30 = 0x021F4A30;
+FUN_02211E7C = 0x02211E7C;
+FUN_02211F5C = 0x02211F5C;
+FUN_02212024 = 0x02212024;
+FUN_02212048 = 0x02212048;
+FUN_02212384 = 0x02212384;
+FUN_022123A0 = 0x022123A0;
+FUN_022123B0 = 0x022123B0;
+FUN_022156C0 = 0x022156C0;
+FUN_0221590C = 0x0221590C;
+FUN_02215918 = 0x02215918;
+FUN_0221594C = 0x0221594C;
+FUN_02215988 = 0x02215988;
+FUN_02215A44 = 0x02215A44;
+FUN_022186F0 = 0x022186F0;
// ???
SDK_MAIN_ARENA_LO = 0x0225FFA0;