diff options
author | Revo <projectrevotpp@hotmail.com> | 2020-05-02 21:06:59 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-02 21:06:59 -0400 |
commit | b990e094b7f12d135f25b17ff81b92f954ac7397 (patch) | |
tree | 9236de475af519f13e91cd6db299058523723204 | |
parent | bcb2fdcaff094ef3bdb951cdb87eff0739510ade (diff) | |
parent | 11d4940663e812244f7f7e6b337c1d39fc6e8258 (diff) |
Merge pull request #56 from PikalaxALT/pikalax_work
Disasm remaining code in modules 05,06; disasm 07,08
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | arm9/arm9.lcf | 129 | ||||
-rw-r--r-- | arm9/global.inc | 596 | ||||
-rw-r--r-- | arm9/modules/00/asm/module_00_dummy.s | 2 | ||||
-rw-r--r-- | arm9/modules/02/asm/module_02_dummy.s | 2 | ||||
-rw-r--r-- | arm9/modules/03/asm/module_03_dummy.s | 4 | ||||
-rw-r--r-- | arm9/modules/05/asm/module_05.s | 1084 | ||||
-rw-r--r-- | arm9/modules/06/asm/module_06.s | 44287 | ||||
-rw-r--r-- | arm9/modules/07/asm/module_07.s | 5275 | ||||
-rw-r--r-- | arm9/modules/08/asm/module_08.s | 49981 | ||||
-rw-r--r-- | arm9/modules/09/asm/module_09.s | 17663 | ||||
-rw-r--r-- | arm9/modules/10/asm/module_10_dummy.s | 5 | ||||
-rw-r--r-- | arm9/modules/11/asm/module_11.s | 98637 | ||||
-rw-r--r-- | arm9/undefined_syms.txt | 140 |
14 files changed, 217736 insertions, 73 deletions
@@ -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; |