summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2020-05-13 20:05:37 -0400
committerGitHub <noreply@github.com>2020-05-13 20:05:37 -0400
commita9f33a9d8b7ad84380553f37c6e46276b25005c5 (patch)
tree5c7d933b791b996eb8a983fef429d95fb781f440
parente1e71184d0ae05a9b68aaca30ce490075e530ced (diff)
parent676600b2ce66cea6712651ed02c1cb591a950fd7 (diff)
Merge branch 'master' into master
-rw-r--r--arm9/arm9.lcf150
-rw-r--r--arm9/asm/crt0.s2
-rw-r--r--arm9/asm/unk_02006864.s40
-rw-r--r--arm9/asm/unk_02046030.s20
-rw-r--r--arm9/global.inc83
-rw-r--r--arm9/modules/05/asm/module_05.s180
-rw-r--r--arm9/modules/06/asm/module_06.s340
-rw-r--r--arm9/modules/08/asm/module_08.s80
-rw-r--r--arm9/modules/09/asm/module_09.s24
-rw-r--r--arm9/modules/11/asm/module_11.s64
-rw-r--r--arm9/modules/12/asm/module_12.s60
-rw-r--r--arm9/modules/14/asm/module_14.s28
-rw-r--r--arm9/modules/15/asm/module_15.s40
-rw-r--r--arm9/modules/16/asm/module_16.s128
-rw-r--r--arm9/modules/17/asm/module_17.s72
-rw-r--r--arm9/modules/18/asm/module_18.s168
-rw-r--r--arm9/modules/21/asm/module_21.s8
-rw-r--r--arm9/modules/22/asm/module_22.s12
-rw-r--r--arm9/modules/23/asm/module_23.s12
-rw-r--r--arm9/modules/28/asm/module_28.s16
-rw-r--r--arm9/modules/53/asm/module_53.s4
-rw-r--r--arm9/modules/54/asm/module_54.s8
-rw-r--r--arm9/modules/55/asm/module_55.s12
-rw-r--r--arm9/modules/57/asm/module_57.s4
-rw-r--r--arm9/modules/59/asm/module_59.s20
-rw-r--r--arm9/modules/60/asm/module_60.s4
-rw-r--r--arm9/modules/62/asm/module_62.s16
-rw-r--r--arm9/modules/63/asm/module_63.s32
-rw-r--r--arm9/modules/64/asm/module_64.s28
-rw-r--r--arm9/modules/65/asm/module_65.s8
-rw-r--r--arm9/modules/66/asm/module_66.s8
-rw-r--r--arm9/modules/67/asm/module_67.s4
-rw-r--r--arm9/modules/68/asm/module_68.s4
-rw-r--r--arm9/modules/69/asm/module_69.s12
-rw-r--r--arm9/modules/70/asm/module_70.s1702
-rw-r--r--arm9/modules/71/asm/module_71.s7155
-rw-r--r--arm9/modules/72/asm/module_72_dummy.s1
-rw-r--r--arm9/modules/73/asm/module_73.s9424
-rw-r--r--arm9/modules/74/asm/module_74.s2022
-rw-r--r--arm9/modules/75/asm/module_75.s11114
40 files changed, 32362 insertions, 747 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index f0de195d..57e6e64f 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -2748,7 +2748,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_70_ID = 70;
SDK_OVERLAY.MODULE_70.ID = 70;
SDK_OVERLAY.MODULE_70.START = .;
- FILE_2C4C00.o (.text) /* 0x2C0C00 */
+ module_70.o (.text)
+ module_70.o (.rodata)
+ module_70.o (.init)
+ SDK_OVERLAY.MODULE_70.SINIT_START = .;
+ module_70.o (.ctor)
+ module_70.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_70.SINIT_END = .;
+ . = ALIGN(32);
+ module_70.o (.sdata)
+ module_70.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_70.END = .;
SDK_OVERLAY.MODULE_70.SIZE = SDK_OVERLAY.MODULE_70.END - SDK_OVERLAY.MODULE_70.START;
@@ -2758,7 +2768,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_70.BSS_START = .;
- FILE_2C4C00.o (.bss)
+ module_70.o (.bss)
+ module_70.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_70.BSS_END = .;
SDK_OVERLAY.MODULE_70.BSS_SIZE = SDK_OVERLAY.MODULE_70.BSS_END - SDK_OVERLAY.MODULE_70.BSS_START;
@@ -2769,7 +2780,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_71_ID = 71;
SDK_OVERLAY.MODULE_71.ID = 71;
SDK_OVERLAY.MODULE_71.START = .;
- FILE_2C5C00.o (.text) /* 0x2C1C00 */
+ module_71.o (.text)
+ module_71.o (.rodata)
+ module_71.o (.init)
+ SDK_OVERLAY.MODULE_71.SINIT_START = .;
+ module_71.o (.ctor)
+ module_71.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_71.SINIT_END = .;
+ . = ALIGN(32);
+ module_71.o (.sdata)
+ module_71.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_71.END = .;
SDK_OVERLAY.MODULE_71.SIZE = SDK_OVERLAY.MODULE_71.END - SDK_OVERLAY.MODULE_71.START;
@@ -2779,7 +2800,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_71.BSS_START = .;
- FILE_2C5C00.o (.bss)
+ module_71.o (.bss)
+ module_71.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_71.BSS_END = .;
SDK_OVERLAY.MODULE_71.BSS_SIZE = SDK_OVERLAY.MODULE_71.BSS_END - SDK_OVERLAY.MODULE_71.BSS_START;
@@ -2790,7 +2812,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_72_ID = 72;
SDK_OVERLAY.MODULE_72.ID = 72;
SDK_OVERLAY.MODULE_72.START = .;
- FILE_2C9C00.o (.text) /* 0x2C5C00 */
+ module_72_dummy.o (.text)
+ module_72_dummy.o (.rodata)
+ module_72_dummy.o (.init)
+ SDK_OVERLAY.MODULE_72.SINIT_START = .;
+ module_72_dummy.o (.ctor)
+ module_72_dummy.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_72.SINIT_END = .;
+ . = ALIGN(32);
+ module_72_dummy.o (.sdata)
+ module_72_dummy.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_72.END = .;
SDK_OVERLAY.MODULE_72.SIZE = SDK_OVERLAY.MODULE_72.END - SDK_OVERLAY.MODULE_72.START;
@@ -2800,7 +2832,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_72.BSS_START = .;
- FILE_2C9C00.o (.bss)
+ module_72_dummy.o (.bss)
+ module_72_dummy.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_72.BSS_END = .;
SDK_OVERLAY.MODULE_72.BSS_SIZE = SDK_OVERLAY.MODULE_72.BSS_END - SDK_OVERLAY.MODULE_72.BSS_START;
@@ -2811,7 +2844,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_73_ID = 73;
SDK_OVERLAY.MODULE_73.ID = 73;
SDK_OVERLAY.MODULE_73.START = .;
- FILE_2C9E00.o (.text) /* 0x2C5E00 */
+ module_73.o (.text)
+ module_73.o (.rodata)
+ module_73.o (.init)
+ SDK_OVERLAY.MODULE_73.SINIT_START = .;
+ module_73.o (.ctor)
+ module_73.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_73.SINIT_END = .;
+ . = ALIGN(32);
+ module_73.o (.sdata)
+ module_73.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_73.END = .;
SDK_OVERLAY.MODULE_73.SIZE = SDK_OVERLAY.MODULE_73.END - SDK_OVERLAY.MODULE_73.START;
@@ -2821,7 +2864,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_73.BSS_START = .;
- FILE_2C9E00.o (.bss)
+ module_73.o (.bss)
+ module_73.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_73.BSS_END = .;
SDK_OVERLAY.MODULE_73.BSS_SIZE = SDK_OVERLAY.MODULE_73.BSS_END - SDK_OVERLAY.MODULE_73.BSS_START;
@@ -2832,7 +2876,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_74_ID = 74;
SDK_OVERLAY.MODULE_74.ID = 74;
SDK_OVERLAY.MODULE_74.START = .;
- FILE_2CEA00.o (.text) /* 0x2CAA00 */
+ module_74.o (.text)
+ module_74.o (.rodata)
+ module_74.o (.init)
+ SDK_OVERLAY.MODULE_74.SINIT_START = .;
+ module_74.o (.ctor)
+ module_74.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_74.SINIT_END = .;
+ . = ALIGN(32);
+ module_74.o (.sdata)
+ module_74.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_74.END = .;
SDK_OVERLAY.MODULE_74.SIZE = SDK_OVERLAY.MODULE_74.END - SDK_OVERLAY.MODULE_74.START;
@@ -2842,7 +2896,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_74.BSS_START = .;
- FILE_2CEA00.o (.bss)
+ module_74.o (.bss)
+ module_74.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_74.BSS_END = .;
SDK_OVERLAY.MODULE_74.BSS_SIZE = SDK_OVERLAY.MODULE_74.BSS_END - SDK_OVERLAY.MODULE_74.BSS_START;
@@ -2853,7 +2908,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_75_ID = 75;
SDK_OVERLAY.MODULE_75.ID = 75;
SDK_OVERLAY.MODULE_75.START = .;
- FILE_2CFE00.o (.text) /* 0x2CBE00 */
+ module_75.o (.text)
+ module_75.o (.rodata)
+ module_75.o (.init)
+ SDK_OVERLAY.MODULE_75.SINIT_START = .;
+ module_75.o (.ctor)
+ module_75.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_75.SINIT_END = .;
+ . = ALIGN(32);
+ module_75.o (.sdata)
+ module_75.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_75.END = .;
SDK_OVERLAY.MODULE_75.SIZE = SDK_OVERLAY.MODULE_75.END - SDK_OVERLAY.MODULE_75.START;
@@ -2863,7 +2928,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_75.BSS_START = .;
- FILE_2CFE00.o (.bss)
+ module_75.o (.bss)
+ module_75.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_75.BSS_END = .;
SDK_OVERLAY.MODULE_75.BSS_SIZE = SDK_OVERLAY.MODULE_75.BSS_END - SDK_OVERLAY.MODULE_75.BSS_START;
@@ -3855,12 +3921,60 @@ SECTIONS {
WRITEW 69;
WRITEW 0;
- OVERLAY_TABLE(MODULE_70, 70)
- OVERLAY_TABLE(MODULE_71, 71)
- OVERLAY_TABLE(MODULE_72, 72)
- OVERLAY_TABLE(MODULE_73, 73)
- OVERLAY_TABLE(MODULE_74, 74)
- OVERLAY_TABLE(MODULE_75, 75)
+ WRITEW 70;
+ WRITEW ADDR(.MODULE_70);
+ WRITEW SDK_OVERLAY.MODULE_70.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_70.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_70.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_70.SINIT_END;
+ WRITEW 70;
+ WRITEW 0;
+
+ WRITEW 71;
+ WRITEW ADDR(.MODULE_71);
+ WRITEW SDK_OVERLAY.MODULE_71.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_71.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_71.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_71.SINIT_END;
+ WRITEW 71;
+ WRITEW 0;
+
+ WRITEW 72;
+ WRITEW ADDR(.MODULE_72);
+ WRITEW SDK_OVERLAY.MODULE_72.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_72.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_72.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_72.SINIT_END;
+ WRITEW 72;
+ WRITEW 0;
+
+ WRITEW 73;
+ WRITEW ADDR(.MODULE_73);
+ WRITEW SDK_OVERLAY.MODULE_73.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_73.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_73.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_73.SINIT_END;
+ WRITEW 73;
+ WRITEW 0;
+
+ WRITEW 74;
+ WRITEW ADDR(.MODULE_74);
+ WRITEW SDK_OVERLAY.MODULE_74.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_74.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_74.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_74.SINIT_END;
+ WRITEW 74;
+ WRITEW 0;
+
+ WRITEW 75;
+ WRITEW ADDR(.MODULE_75);
+ WRITEW SDK_OVERLAY.MODULE_75.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_75.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_75.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_75.SINIT_END;
+ WRITEW 75;
+ WRITEW 0;
+
OVERLAY_TABLE(MODULE_76, 76)
OVERLAY_TABLE(MODULE_77, 77)
OVERLAY_TABLE(MODULE_78, 78)
diff --git a/arm9/asm/crt0.s b/arm9/asm/crt0.s
index 05a91b28..65084858 100644
--- a/arm9/asm/crt0.s
+++ b/arm9/asm/crt0.s
@@ -73,7 +73,7 @@ _020008C4:
bl _fp_init
bl NitroStartUp
bl __call_static_initializers
- ldr r1, _02000934 ; =0x02000C55
+ ldr r1, _02000934 ; =NitroMain
ldr lr, _02000938 ; =0xFFFF0000
tst sp, #4
subne sp, sp, #4
diff --git a/arm9/asm/unk_02006864.s b/arm9/asm/unk_02006864.s
index d45448fb..e029023c 100644
--- a/arm9/asm/unk_02006864.s
+++ b/arm9/asm/unk_02006864.s
@@ -5096,13 +5096,13 @@ _02008DD8: .word 0x0001FE00
thumb_func_start FUN_02008DDC
FUN_02008DDC: ; 0x02008DDC
- ldr r3, _02008DE8 ; =0x0201E069
+ ldr r3, _02008DE8 ; =FUN_0201E068
add r1, r0, #0x0
mov r0, #0x3
lsl r0, r0, #0xe
bx r3
nop
-_02008DE8: .word 0x0201E069
+_02008DE8: .word FUN_0201E068
thumb_func_start FUN_02008DEC
FUN_02008DEC: ; 0x02008DEC
@@ -12523,11 +12523,11 @@ _0200C5A4: .word FUN_020201E4
thumb_func_start FUN_0200C5A8
FUN_0200C5A8: ; 0x0200C5A8
- ldr r3, _0200C5B0 ; =0x0200C59D
+ ldr r3, _0200C5B0 ; =FUN_0200C59C
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C5B0: .word 0x0200C59D
+_0200C5B0: .word FUN_0200C59C
thumb_func_start FUN_0200C5B4
FUN_0200C5B4: ; 0x0200C5B4
@@ -12607,11 +12607,11 @@ _0200C618: .word FUN_02020208
thumb_func_start FUN_0200C61C
FUN_0200C61C: ; 0x0200C61C
- ldr r3, _0200C624 ; =0x0200C615
+ ldr r3, _0200C624 ; =FUN_0200C614
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C624: .word 0x0200C615
+_0200C624: .word FUN_0200C614
thumb_func_start FUN_0200C628
FUN_0200C628: ; 0x0200C628
@@ -12707,11 +12707,11 @@ _0200C6A0: .word FUN_02020238
thumb_func_start FUN_0200C6A4
FUN_0200C6A4: ; 0x0200C6A4
- ldr r3, _0200C6AC ; =0x02020241
+ ldr r3, _0200C6AC ; =FUN_02020240
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C6AC: .word 0x02020241
+_0200C6AC: .word FUN_02020240
thumb_func_start FUN_0200C6B0
FUN_0200C6B0: ; 0x0200C6B0
@@ -12949,11 +12949,11 @@ _0200C83C: .word FUN_020200EC
thumb_func_start FUN_0200C840
FUN_0200C840: ; 0x0200C840
- ldr r3, _0200C848 ; =0x0200C839
+ ldr r3, _0200C848 ; =FUN_0200C838
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C848: .word 0x0200C839
+_0200C848: .word FUN_0200C838
thumb_func_start FUN_0200C84C
FUN_0200C84C: ; 0x0200C84C
@@ -13057,11 +13057,11 @@ FUN_0200C8DC: ; 0x0200C8DC
thumb_func_start FUN_0200C8F8
FUN_0200C8F8: ; 0x0200C8F8
- ldr r3, _0200C900 ; =0x02020359
+ ldr r3, _0200C900 ; =FUN_02020358
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C900: .word 0x02020359
+_0200C900: .word FUN_02020358
thumb_func_start FUN_0200C904
FUN_0200C904: ; 0x0200C904
@@ -31039,11 +31039,11 @@ _02014F24: .word FUN_02014F08
thumb_func_start FUN_02014F28
FUN_02014F28: ; 0x02014F28
- ldr r3, _02014F30 ; =0x02014F1D
+ ldr r3, _02014F30 ; =FUN_02014F1C
mov r1, #0x1
bx r3
nop
-_02014F30: .word 0x02014F1D
+_02014F30: .word FUN_02014F1C
thumb_func_start FUN_02014F34
FUN_02014F34: ; 0x02014F34
@@ -47117,21 +47117,21 @@ _0201C4F0: .word 0xFFFF0000
thumb_func_start FUN_0201C4F4
FUN_0201C4F4: ; 0x0201C4F4
- ldr r3, _0201C4FC ; =0x0201C50D
+ ldr r3, _0201C4FC ; =FUN_0201C50C
ldr r0, [r0, #0x4]
ldrb r1, [r1, #0x0]
bx r3
.balign 4
-_0201C4FC: .word 0x0201C50D
+_0201C4FC: .word FUN_0201C50C
thumb_func_start FUN_0201C500
FUN_0201C500: ; 0x0201C500
- ldr r3, _0201C508 ; =0x0201C541
+ ldr r3, _0201C508 ; =FUN_0201C540
ldr r0, [r0, #0x4]
ldrb r1, [r1, #0x1]
bx r3
.balign 4
-_0201C508: .word 0x0201C541
+_0201C508: .word FUN_0201C540
thumb_func_start FUN_0201C50C
FUN_0201C50C: ; 0x0201C50C
@@ -66319,11 +66319,11 @@ _02024EBC: .word FUN_02022610
thumb_func_start FUN_02024EC0
FUN_02024EC0: ; 0x02024EC0
- ldr r3, _02024EC8 ; =0x02022635
+ ldr r3, _02024EC8 ; =FUN_02022634
mov r1, #0xa
bx r3
nop
-_02024EC8: .word 0x02022635
+_02024EC8: .word FUN_02022634
thumb_func_start FUN_02024ECC
FUN_02024ECC: ; 0x02024ECC
diff --git a/arm9/asm/unk_02046030.s b/arm9/asm/unk_02046030.s
index 4b46da9e..1eda4b12 100644
--- a/arm9/asm/unk_02046030.s
+++ b/arm9/asm/unk_02046030.s
@@ -10681,11 +10681,11 @@ FUN_0204B410: ; 0x0204B410
thumb_func_start FUN_0204B444
FUN_0204B444: ; 0x0204B444
- ldr r3, _0204B44C ; =0x021E4C01
+ ldr r3, _0204B44C ; =MOD05_021E4C00
ldr r0, [r0, #0x60]
bx r3
nop
-_0204B44C: .word 0x021E4C01
+_0204B44C: .word MOD05_021E4C00
thumb_func_start FUN_0204B450
FUN_0204B450: ; 0x0204B450
@@ -11519,11 +11519,11 @@ _0204BAD0: .word 0x021C5A1C
thumb_func_start FUN_0204BAD4
FUN_0204BAD4: ; 0x0204BAD4
- ldr r3, _0204BADC ; =0x0204BE11
+ ldr r3, _0204BADC ; =FUN_0204BE10
ldr r0, _0204BAE0 ; =0x021C5A1C
bx r3
nop
-_0204BADC: .word 0x0204BE11
+_0204BADC: .word FUN_0204BE10
_0204BAE0: .word 0x021C5A1C
thumb_func_start FUN_0204BAE4
@@ -16813,11 +16813,11 @@ FUN_0204E2E0: ; 0x0204E2E0
thumb_func_start FUN_0204E2F0
FUN_0204E2F0: ; 0x0204E2F0
- ldr r3, _0204E2F8 ; =0x0223E4BD
+ ldr r3, _0204E2F8 ; =MOD18_0223E4BC
ldrb r0, [r2, #0x0]
bx r3
nop
-_0204E2F8: .word 0x0223E4BD
+_0204E2F8: .word MOD18_0223E4BC
thumb_func_start FUN_0204E2FC
FUN_0204E2FC: ; 0x0204E2FC
@@ -21235,10 +21235,10 @@ _02050588: .word FUN_0205058C
thumb_func_start FUN_0205058C
FUN_0205058C: ; 0x0205058C
- ldr r3, _02050590 ; =0x02247831
+ ldr r3, _02050590 ; =MOD18_02247830
bx r3
.balign 4
-_02050590: .word 0x02247831
+_02050590: .word MOD18_02247830
thumb_func_start FUN_02050594
FUN_02050594: ; 0x02050594
@@ -127105,11 +127105,11 @@ FUN_020835A0: ; 0x020835A0
mov r0, #0x5b
lsl r0, r0, #0x2
ldr r0, [r3, r0]
- ldr r3, _020835AC ; =0x0223D1CD
+ ldr r3, _020835AC ; =MOD12_0223D1CC
add r1, r2, #0x0
bx r3
.balign 4
-_020835AC: .word 0x0223D1CD
+_020835AC: .word MOD12_0223D1CC
thumb_func_start FUN_020835B0
FUN_020835B0: ; 0x020835B0
diff --git a/arm9/global.inc b/arm9/global.inc
index 05c59cbd..a9bbc871 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -5710,6 +5710,89 @@
.extern FUN_020334DC
.extern FUN_02088858
.extern FUN_02088868
+.extern FUN_02006874
+.extern FUN_0200AF88
+.extern FUN_0200AFBC
+.extern FUN_02013840
+.extern FUN_02013EFC
+.extern FUN_02013F00
+.extern FUN_0201C78C
+.extern FUN_02024648
+.extern FUN_02024674
+.extern FUN_020247A4
+.extern FUN_02024828
+.extern FUN_0202489C
+.extern FUN_0202490C
+.extern FUN_02024930
+.extern FUN_02024970
+.extern FUN_02024CC4
+.extern FUN_02025E20
+.extern FUN_02025FFC
+.extern FUN_020260EC
+.extern FUN_0202A398
+.extern FUN_0202B5D8
+.extern FUN_0202B9EC
+.extern FUN_02031258
+.extern FUN_02046948
+.extern FUN_0204E178
+.extern FUN_02050E10
+.extern FUN_02050E2C
+.extern FUN_020556C8
+.extern FUN_0205E49C
+.extern FUN_0206EA54
+.extern FUN_02085410
+.extern FUN_02085414
+.extern FUN_02087A38
+.extern FUN_0202B1F0
+.extern FUN_0202B250
+.extern FUN_0202B29C
+.extern FUN_0202B31C
+.extern FUN_020124B4
+.extern FUN_020166A8
+.extern FUN_020166B8
+.extern FUN_0202945C
+.extern FUN_0202E288
+.extern FUN_0206AA84
+.extern FUN_0206B8A4
+.extern FUN_02083B84
+.extern FUN_02083D10
+.extern FUN_0200904C
+.extern FUN_02013F04
+.extern FUN_0201CBEC
+.extern FUN_02027E30
+.extern FUN_02027E94
+.extern FUN_02029520
+.extern FUN_0202A878
+.extern FUN_02060FAC
+.extern FUN_020842D0
+.extern FUN_020842D8
+.extern FUN_02001354
+.extern FUN_0200145C
+.extern FUN_02001464
+.extern FUN_02001DDC
+.extern FUN_02001E60
+.extern FUN_020021CC
+.extern FUN_02018878
+.extern FUN_020209A8
+.extern FUN_020209F4
+.extern FUN_0205D51C
+.extern FUN_0206E164
+.extern FUN_0206E3F8
+.extern FUN_0206E51C
+.extern FUN_0206E5B4
+.extern FUN_0206EB0C
+.extern FUN_0206EBC4
+.extern FUN_0206EBCC
+.extern FUN_0206EE20
+.extern FUN_0206EF10
+.extern FUN_0206F18C
+.extern FUN_0206F19C
+.extern FUN_02085284
+.extern MOD05_021F54E0
+.extern MOD06_0224C24C
+.extern MOD12_0223D1CC
+.extern MOD18_0223E4BC
+.extern MOD18_02247830
.extern MOD04_021D80E0
.extern MOD04_021D83D4
.extern MOD04_021D8478
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index cbfe382b..3cefdc1e 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -744,10 +744,10 @@ MOD05_021D7B38: ; 0x021D7B38
thumb_func_start MOD05_021D7B5C
MOD05_021D7B5C: ; 0x021D7B5C
- ldr r3, _021D7B60 ; =0x02009FA1
+ ldr r3, _021D7B60 ; =FUN_02009FA0
bx r3
.balign 4, 0
-_021D7B60: .word 0x02009FA1
+_021D7B60: .word FUN_02009FA0
thumb_func_start MOD05_021D7B64
MOD05_021D7B64: ; 0x021D7B64
@@ -1207,10 +1207,10 @@ MOD05_021D7F40: ; 0x021D7F40
thumb_func_start MOD05_021D7F44
MOD05_021D7F44: ; 0x021D7F44
- ldr r3, _021D7F48 ; =0x02016A19
+ ldr r3, _021D7F48 ; =FUN_02016A18
bx r3
.balign 4, 0
-_021D7F48: .word 0x02016A19
+_021D7F48: .word FUN_02016A18
thumb_func_start MOD05_021D7F4C
MOD05_021D7F4C: ; 0x021D7F4C
@@ -1278,11 +1278,11 @@ _021D7FBC:
thumb_func_start MOD05_021D7FD0
MOD05_021D7FD0: ; 0x021D7FD0
- ldr r3, _021D7FD8 ; =0x0201B5CD
+ ldr r3, _021D7FD8 ; =FUN_0201B5CC
ldr r0, [r0, #0x10]
bx r3
nop
-_021D7FD8: .word 0x0201B5CD
+_021D7FD8: .word FUN_0201B5CC
thumb_func_start MOD05_021D7FDC
MOD05_021D7FDC: ; 0x021D7FDC
@@ -3238,12 +3238,12 @@ MOD05_021D8F90: ; 0x021D8F90
thumb_func_start MOD05_021D8F9C
MOD05_021D8F9C: ; 0x021D8F9C
- ldr r3, _021D8FA4 ; =0x0224C24D
+ ldr r3, _021D8FA4 ; =MOD06_0224C24C
add r1, r0, #0
ldr r0, [r1, #0xc]
bx r3
.balign 4, 0
-_021D8FA4: .word 0x0224C24D
+_021D8FA4: .word MOD06_0224C24C
thumb_func_start MOD05_021D8FA8
MOD05_021D8FA8: ; 0x021D8FA8
@@ -5724,11 +5724,11 @@ _021DA21A:
MOD05_021DA220: ; 0x021DA220
mov r1, #0xad
lsl r1, r1, #2
- ldr r3, _021DA22C ; =0x02006875
+ ldr r3, _021DA22C ; =FUN_02006874
ldr r0, [r0, r1]
bx r3
nop
-_021DA22C: .word 0x02006875
+_021DA22C: .word FUN_02006874
thumb_func_start MOD05_021DA230
MOD05_021DA230: ; 0x021DA230
@@ -6243,10 +6243,10 @@ MOD05_021DA5B8: ; 0x021DA5B8
thumb_func_start MOD05_021DA5C8
MOD05_021DA5C8: ; 0x021DA5C8
- ldr r3, _021DA5CC ; =0x02016A19
+ ldr r3, _021DA5CC ; =FUN_02016A18
bx r3
.balign 4, 0
-_021DA5CC: .word 0x02016A19
+_021DA5CC: .word FUN_02016A18
thumb_func_start MOD05_021DA5D0
MOD05_021DA5D0: ; 0x021DA5D0
@@ -9476,10 +9476,10 @@ _021DBE94: .word MOD05_021EFAAC
thumb_func_start MOD05_021DBE98
MOD05_021DBE98: ; 0x021DBE98
- ldr r3, _021DBE9C ; =0x02050E2D
+ ldr r3, _021DBE9C ; =FUN_02050E2C
bx r3
.balign 4, 0
-_021DBE9C: .word 0x02050E2D
+_021DBE9C: .word FUN_02050E2C
thumb_func_start MOD05_021DBEA0
MOD05_021DBEA0: ; 0x021DBEA0
@@ -9505,10 +9505,10 @@ _021DBEC0: .word MOD05_021EFB14
thumb_func_start MOD05_021DBEC4
MOD05_021DBEC4: ; 0x021DBEC4
- ldr r3, _021DBEC8 ; =0x02050E11
+ ldr r3, _021DBEC8 ; =FUN_02050E10
bx r3
.balign 4, 0
-_021DBEC8: .word 0x02050E11
+_021DBEC8: .word FUN_02050E10
thumb_func_start MOD05_021DBECC
MOD05_021DBECC: ; 0x021DBECC
@@ -10288,12 +10288,12 @@ _021DC470: .word MOD05_021DC474
thumb_func_start MOD05_021DC474
MOD05_021DC474: ; 0x021DC474
- ldr r3, _021DC47C ; =0x0201FDED
+ ldr r3, _021DC47C ; =FUN_0201FDEC
add r1, #0xf4
ldr r0, [r1]
bx r3
.balign 4, 0
-_021DC47C: .word 0x0201FDED
+_021DC47C: .word FUN_0201FDEC
thumb_func_start MOD05_021DC480
MOD05_021DC480: ; 0x021DC480
@@ -20312,13 +20312,13 @@ _021E127E:
thumb_func_start MOD05_021E1290
MOD05_021E1290: ; 0x021E1290
- ldr r3, _021E129C ; =0x0200CA99
+ ldr r3, _021E129C ; =FUN_0200CA98
add r1, r0, #0
ldr r0, _021E12A0 ; =MOD05_021E12A4
mov r2, #0x80
bx r3
nop
-_021E129C: .word 0x0200CA99
+_021E129C: .word FUN_0200CA98
_021E12A0: .word MOD05_021E12A4
thumb_func_start MOD05_021E12A4
@@ -21231,10 +21231,10 @@ _021E1986:
thumb_func_start MOD05_021E198C
MOD05_021E198C: ; 0x021E198C
- ldr r3, _021E1990 ; =0x02058E91
+ ldr r3, _021E1990 ; =FUN_02058E90
bx r3
.balign 4, 0
-_021E1990: .word 0x02058E91
+_021E1990: .word FUN_02058E90
thumb_func_start MOD05_021E1994
MOD05_021E1994: ; 0x021E1994
@@ -25672,14 +25672,14 @@ _021E3BFC: .word 0xFFFF1FFF
thumb_func_start MOD05_021E3C00
MOD05_021E3C00: ; 0x021E3C00
- ldr r3, _021E3C0C ; =0x0200CA99
+ ldr r3, _021E3C0C ; =FUN_0200CA98
mov r2, #1
add r1, r0, #0
ldr r0, _021E3C10 ; =MOD05_021E3C14
lsl r2, r2, #0xa
bx r3
.balign 4, 0
-_021E3C0C: .word 0x0200CA99
+_021E3C0C: .word FUN_0200CA98
_021E3C10: .word MOD05_021E3C14
thumb_func_start MOD05_021E3C14
@@ -26334,10 +26334,10 @@ MOD05_021E4140: ; 0x021E4140
thumb_func_start MOD05_021E4158
MOD05_021E4158: ; 0x021E4158
- ldr r3, _021E415C ; =0x02016A19
+ ldr r3, _021E415C ; =FUN_02016A18
bx r3
.balign 4, 0
-_021E415C: .word 0x02016A19
+_021E415C: .word FUN_02016A18
thumb_func_start MOD05_021E4160
MOD05_021E4160: ; 0x021E4160
@@ -26452,10 +26452,10 @@ MOD05_021E4220: ; 0x021E4220
thumb_func_start MOD05_021E4238
MOD05_021E4238: ; 0x021E4238
- ldr r3, _021E423C ; =0x02016A19
+ ldr r3, _021E423C ; =FUN_02016A18
bx r3
.balign 4, 0
-_021E423C: .word 0x02016A19
+_021E423C: .word FUN_02016A18
thumb_func_start MOD05_021E4240
MOD05_021E4240: ; 0x021E4240
@@ -26859,10 +26859,10 @@ _021E452A:
thumb_func_start MOD05_021E4534
MOD05_021E4534: ; 0x021E4534
- ldr r3, _021E4538 ; =0x02016A19
+ ldr r3, _021E4538 ; =FUN_02016A18
bx r3
.balign 4, 0
-_021E4538: .word 0x02016A19
+_021E4538: .word FUN_02016A18
thumb_func_start MOD05_021E453C
MOD05_021E453C: ; 0x021E453C
@@ -27610,14 +27610,14 @@ _021E4ACC: .word 0x0400006C
thumb_func_start MOD05_021E4AD0
MOD05_021E4AD0: ; 0x021E4AD0
- ldr r3, _021E4ADC ; =0x0200CA99
+ ldr r3, _021E4ADC ; =FUN_0200CA98
mov r2, #1
add r1, r0, #0
ldr r0, _021E4AE0 ; =MOD05_021E4AB8
lsl r2, r2, #0xa
bx r3
.balign 4, 0
-_021E4ADC: .word 0x0200CA99
+_021E4ADC: .word FUN_0200CA98
_021E4AE0: .word MOD05_021E4AB8
thumb_func_start MOD05_021E4AE4
@@ -27772,10 +27772,10 @@ MOD05_021E4BE8: ; 0x021E4BE8
thumb_func_start MOD05_021E4C00
MOD05_021E4C00: ; 0x021E4C00
- ldr r3, _021E4C04 ; =0x02016A19
+ ldr r3, _021E4C04 ; =FUN_02016A18
bx r3
.balign 4, 0
-_021E4C04: .word 0x02016A19
+_021E4C04: .word FUN_02016A18
thumb_func_start MOD05_021E4C08
MOD05_021E4C08: ; 0x021E4C08
@@ -27822,27 +27822,27 @@ MOD05_021E4C34: ; 0x021E4C34
thumb_func_start MOD05_021E4C48
MOD05_021E4C48: ; 0x021E4C48
- ldr r3, _021E4C50 ; =0x020066F5
+ ldr r3, _021E4C50 ; =FUN_020066F4
ldr r0, [r0, #0x20]
bx r3
nop
-_021E4C50: .word 0x020066F5
+_021E4C50: .word FUN_020066F4
thumb_func_start MOD05_021E4C54
MOD05_021E4C54: ; 0x021E4C54
- ldr r3, _021E4C5C ; =0x020067D1
+ ldr r3, _021E4C5C ; =FUN_020067D0
ldr r0, [r0, #0x20]
bx r3
nop
-_021E4C5C: .word 0x020067D1
+_021E4C5C: .word FUN_020067D0
thumb_func_start MOD05_021E4C60
MOD05_021E4C60: ; 0x021E4C60
- ldr r3, _021E4C68 ; =0x02006775
+ ldr r3, _021E4C68 ; =FUN_02006774
ldr r0, [r0, #0x20]
bx r3
nop
-_021E4C68: .word 0x02006775
+_021E4C68: .word FUN_02006774
thumb_func_start MOD05_021E4C6C
MOD05_021E4C6C: ; 0x021E4C6C
@@ -28079,10 +28079,10 @@ _021E4DDE:
thumb_func_start MOD05_021E4DE4
MOD05_021E4DE4: ; 0x021E4DE4
- ldr r3, _021E4DE8 ; =0x02064521
+ ldr r3, _021E4DE8 ; =FUN_02064520
bx r3
.balign 4, 0
-_021E4DE8: .word 0x02064521
+_021E4DE8: .word FUN_02064520
thumb_func_start MOD05_021E4DEC
MOD05_021E4DEC: ; 0x021E4DEC
@@ -28513,11 +28513,11 @@ _021E5106:
thumb_func_start MOD05_021E5114
MOD05_021E5114: ; 0x021E5114
ldr r0, [r0, #0x28]
- ldr r3, _021E511C ; =0x02020FF1
+ ldr r3, _021E511C ; =FUN_02020FF0
ldr r0, [r0, #0x18]
bx r3
.balign 4, 0
-_021E511C: .word 0x02020FF1
+_021E511C: .word FUN_02020FF0
thumb_func_start MOD05_021E5120
MOD05_021E5120: ; 0x021E5120
@@ -30435,10 +30435,10 @@ _021E5FD4: .word MOD05_021F5430
thumb_func_start MOD05_021E5FD8
MOD05_021E5FD8: ; 0x021E5FD8
- ldr r3, _021E5FDC ; =0x020553D5
+ ldr r3, _021E5FDC ; =FUN_020553D4
bx r3
.balign 4, 0
-_021E5FDC: .word 0x020553D5
+_021E5FDC: .word FUN_020553D4
thumb_func_start MOD05_021E5FE0
MOD05_021E5FE0: ; 0x021E5FE0
@@ -30576,11 +30576,11 @@ _021E60D2:
thumb_func_start MOD05_021E610C
MOD05_021E610C: ; 0x021E610C
- ldr r3, _021E6114 ; =0x020556C9
+ ldr r3, _021E6114 ; =FUN_020556C8
mov r1, #1
bx r3
nop
-_021E6114: .word 0x020556C9
+_021E6114: .word FUN_020556C8
thumb_func_start MOD05_021E6118
MOD05_021E6118: ; 0x021E6118
@@ -32839,12 +32839,12 @@ _021E72CC:
thumb_func_start MOD05_021E72DC
MOD05_021E72DC: ; 0x021E72DC
- ldr r3, _021E72E4 ; =0x02016A8D
+ ldr r3, _021E72E4 ; =FUN_02016A8C
add r1, r0, #0
mov r0, #4
bx r3
.balign 4, 0
-_021E72E4: .word 0x02016A8D
+_021E72E4: .word FUN_02016A8C
thumb_func_start MOD05_021E72E8
MOD05_021E72E8: ; 0x021E72E8
@@ -33116,12 +33116,12 @@ _021E74E8:
thumb_func_start MOD05_021E74F8
MOD05_021E74F8: ; 0x021E74F8
- ldr r3, _021E7500 ; =0x02016A8D
+ ldr r3, _021E7500 ; =FUN_02016A8C
add r1, r0, #0
mov r0, #4
bx r3
.balign 4, 0
-_021E7500: .word 0x02016A8D
+_021E7500: .word FUN_02016A8C
thumb_func_start MOD05_021E7504
MOD05_021E7504: ; 0x021E7504
@@ -33157,12 +33157,12 @@ _021E7532:
str r0, [r1, #0x10]
_021E7536:
ldr r0, [r1]
- ldr r3, _021E7540 ; =0x02055305
+ ldr r3, _021E7540 ; =FUN_02055304
ldr r0, [r0, #0x38]
ldr r1, [r1, #0x10]
bx r3
.balign 4, 0
-_021E7540: .word 0x02055305
+_021E7540: .word FUN_02055304
thumb_func_start MOD05_021E7544
MOD05_021E7544: ; 0x021E7544
@@ -34048,10 +34048,10 @@ MOD05_021E7C00: ; 0x021E7C00
thumb_func_start MOD05_021E7C14
MOD05_021E7C14: ; 0x021E7C14
- ldr r3, _021E7C18 ; =0x02016A19
+ ldr r3, _021E7C18 ; =FUN_02016A18
bx r3
.balign 4, 0
-_021E7C18: .word 0x02016A19
+_021E7C18: .word FUN_02016A18
thumb_func_start MOD05_021E7C1C
MOD05_021E7C1C: ; 0x021E7C1C
@@ -36434,14 +36434,14 @@ _021E8E50: .word 0x04000010
thumb_func_start MOD05_021E8E54
MOD05_021E8E54: ; 0x021E8E54
- ldr r3, _021E8E60 ; =0x0200CA61
+ ldr r3, _021E8E60 ; =FUN_0200CA60
mov r2, #1
add r1, r0, #0
ldr r0, _021E8E64 ; =MOD05_021E8E68
lsl r2, r2, #0xa
bx r3
.balign 4, 0
-_021E8E60: .word 0x0200CA61
+_021E8E60: .word FUN_0200CA60
_021E8E64: .word MOD05_021E8E68
thumb_func_start MOD05_021E8E68
@@ -45836,11 +45836,11 @@ MOD05_021EDA98: ; 0x021EDA98
thumb_func_start MOD05_021EDAE8
MOD05_021EDAE8: ; 0x021EDAE8
- ldr r3, _021EDAF0 ; =0x0201F745
+ ldr r3, _021EDAF0 ; =FUN_0201F744
ldr r0, [r1, #0x20]
bx r3
nop
-_021EDAF0: .word 0x0201F745
+_021EDAF0: .word FUN_0201F744
thumb_func_start MOD05_021EDAF4
MOD05_021EDAF4: ; 0x021EDAF4
@@ -54282,10 +54282,10 @@ _021F1C18: .word MOD05_021F1CA4
thumb_func_start MOD05_021F1C1C
MOD05_021F1C1C: ; 0x021F1C1C
- ldr r3, _021F1C20 ; =0x02058629
+ ldr r3, _021F1C20 ; =FUN_02058628
bx r3
.balign 4, 0
-_021F1C20: .word 0x02058629
+_021F1C20: .word FUN_02058628
thumb_func_start MOD05_021F1C24
MOD05_021F1C24: ; 0x021F1C24
@@ -56743,10 +56743,10 @@ MOD05_021F2E40: ; 0x021F2E40
thumb_func_start MOD05_021F2E68
MOD05_021F2E68: ; 0x021F2E68
- ldr r3, _021F2E6C ; =0x0201F23D
+ ldr r3, _021F2E6C ; =FUN_0201F23C
bx r3
.balign 4, 0
-_021F2E6C: .word 0x0201F23D
+_021F2E6C: .word FUN_0201F23C
thumb_func_start MOD05_021F2E70
MOD05_021F2E70: ; 0x021F2E70
@@ -57964,12 +57964,12 @@ _021F37C2:
thumb_func_start MOD05_021F37D0
MOD05_021F37D0: ; 0x021F37D0
- ldr r3, _021F37D8 ; =0x02016A8D
+ ldr r3, _021F37D8 ; =FUN_02016A8C
add r1, r0, #0
ldr r0, [r1]
bx r3
.balign 4, 0
-_021F37D8: .word 0x02016A8D
+_021F37D8: .word FUN_02016A8C
thumb_func_start MOD05_021F37DC
MOD05_021F37DC: ; 0x021F37DC
@@ -59235,13 +59235,13 @@ _021F4180:
thumb_func_start MOD05_021F4184
MOD05_021F4184: ; 0x021F4184
- ldr r3, _021F4190 ; =0x02006865
+ ldr r3, _021F4190 ; =FUN_02006864
add r2, r1, #0
mov r1, #0x1c
ldr r2, [r2]
bx r3
nop
-_021F4190: .word 0x02006865
+_021F4190: .word FUN_02006864
thumb_func_start MOD05_021F4194
MOD05_021F4194: ; 0x021F4194
@@ -59250,10 +59250,10 @@ MOD05_021F4194: ; 0x021F4194
mov r1, #0xc
mul r1, r2
ldr r2, [r3, #0x10]
- ldr r3, _021F41A4 ; =0x02006865
+ ldr r3, _021F41A4 ; =FUN_02006864
bx r3
nop
-_021F41A4: .word 0x02006865
+_021F41A4: .word FUN_02006864
thumb_func_start MOD05_021F41A8
MOD05_021F41A8: ; 0x021F41A8
@@ -59262,10 +59262,10 @@ MOD05_021F41A8: ; 0x021F41A8
mov r1, #0xc
mul r1, r2
ldr r2, [r3, #0x14]
- ldr r3, _021F41B8 ; =0x02006865
+ ldr r3, _021F41B8 ; =FUN_02006864
bx r3
nop
-_021F41B8: .word 0x02006865
+_021F41B8: .word FUN_02006864
thumb_func_start MOD05_021F41BC
MOD05_021F41BC: ; 0x021F41BC
@@ -59274,41 +59274,41 @@ MOD05_021F41BC: ; 0x021F41BC
mov r1, #0xc
mul r1, r2
ldr r2, [r3, #4]
- ldr r3, _021F41CC ; =0x02006865
+ ldr r3, _021F41CC ; =FUN_02006864
bx r3
nop
-_021F41CC: .word 0x02006865
+_021F41CC: .word FUN_02006864
thumb_func_start MOD05_021F41D0
MOD05_021F41D0: ; 0x021F41D0
add r3, r1, #0
ldr r1, [r2, #0xc]
ldr r2, [r3, #8]
- ldr r3, _021F41DC ; =0x02006865
+ ldr r3, _021F41DC ; =FUN_02006864
lsl r1, r1, #2
bx r3
.balign 4, 0
-_021F41DC: .word 0x02006865
+_021F41DC: .word FUN_02006864
thumb_func_start MOD05_021F41E0
MOD05_021F41E0: ; 0x021F41E0
add r3, r1, #0
ldr r1, [r2, #0x14]
ldr r2, [r3, #0xc]
- ldr r3, _021F41EC ; =0x02006865
+ ldr r3, _021F41EC ; =FUN_02006864
bx r3
nop
-_021F41EC: .word 0x02006865
+_021F41EC: .word FUN_02006864
thumb_func_start MOD05_021F41F0
MOD05_021F41F0: ; 0x021F41F0
add r3, r1, #0
ldr r1, [r2, #0x10]
ldr r2, [r3, #0x18]
- ldr r3, _021F41FC ; =0x02006865
+ ldr r3, _021F41FC ; =FUN_02006864
bx r3
nop
-_021F41FC: .word 0x02006865
+_021F41FC: .word FUN_02006864
thumb_func_start MOD05_021F4200
MOD05_021F4200: ; 0x021F4200
@@ -60336,12 +60336,12 @@ MOD05_021F491C: ; 0x021F491C
thumb_func_start MOD05_021F4968
MOD05_021F4968: ; 0x021F4968
ldr r2, [r1, #0x14]
- ldr r3, _021F4974 ; =0x02016B45
+ ldr r3, _021F4974 ; =FUN_02016B44
add r1, r1, r2
sub r1, r1, r0
bx r3
nop
-_021F4974: .word 0x02016B45
+_021F4974: .word FUN_02016B44
thumb_func_start MOD05_021F4978
MOD05_021F4978: ; 0x021F4978
@@ -62106,21 +62106,21 @@ _021F5696:
thumb_func_start MOD05_021F569C
MOD05_021F569C: ; 0x021F569C
- ldr r3, _021F56A4 ; =0x02017FE5
+ ldr r3, _021F56A4 ; =FUN_02017FE4
mov r0, #2
mov r1, #0
bx r3
.balign 4, 0
-_021F56A4: .word 0x02017FE5
+_021F56A4: .word FUN_02017FE4
thumb_func_start MOD05_021F56A8
MOD05_021F56A8: ; 0x021F56A8
- ldr r3, _021F56B0 ; =0x02017FE5
+ ldr r3, _021F56B0 ; =FUN_02017FE4
mov r0, #2
ldr r1, _021F56B4 ; =0x00007FFF
bx r3
.balign 4, 0
-_021F56B0: .word 0x02017FE5
+_021F56B0: .word FUN_02017FE4
_021F56B4: .word 0x00007FFF
thumb_func_start MOD05_021F56B8
@@ -62710,10 +62710,10 @@ _021F5B30:
thumb_func_start MOD05_021F5B34
MOD05_021F5B34: ; 0x021F5B34
- ldr r3, _021F5B38 ; =0x02016A19
+ ldr r3, _021F5B38 ; =FUN_02016A18
bx r3
.balign 4, 0
-_021F5B38: .word 0x02016A19
+_021F5B38: .word FUN_02016A18
thumb_func_start MOD05_021F5B3C
MOD05_021F5B3C: ; 0x021F5B3C
@@ -63791,13 +63791,13 @@ _021F62F2:
thumb_func_start MOD05_021F62FC
MOD05_021F62FC: ; 0x021F62FC
- ldr r3, _021F6308 ; =0x0201EFE1
+ ldr r3, _021F6308 ; =FUN_0201EFE0
add r1, r0, #0
ldr r0, [r1, #0x20]
ldr r1, [r1, #0x30]
bx r3
nop
-_021F6308: .word 0x0201EFE1
+_021F6308: .word FUN_0201EFE0
thumb_func_start MOD05_021F630C
MOD05_021F630C: ; 0x021F630C
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index b439e37b..a7ddd5a6 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -180,26 +180,26 @@ _022397F0: .word 0x0224F1D8
thumb_func_start MOD06_022397F4
MOD06_022397F4: ; 0x022397F4
- ldr r3, _02239800 ; =0x0200CA99
+ ldr r3, _02239800 ; =FUN_0200CA98
mov r2, #1
add r1, r0, #0
ldr r0, _02239804 ; =MOD06_0223981C
lsl r2, r2, #0xa
bx r3
.align 2, 0
-_02239800: .word 0x0200CA99
+_02239800: .word FUN_0200CA98
_02239804: .word MOD06_0223981C
thumb_func_start MOD06_02239808
MOD06_02239808: ; 0x02239808
- ldr r3, _02239814 ; =0x0200CA99
+ ldr r3, _02239814 ; =FUN_0200CA98
mov r2, #1
add r1, r0, #0
ldr r0, _02239818 ; =MOD06_02239840
lsl r2, r2, #0xa
bx r3
.align 2, 0
-_02239814: .word 0x0200CA99
+_02239814: .word FUN_0200CA98
_02239818: .word MOD06_02239840
thumb_func_start MOD06_0223981C
@@ -238,10 +238,10 @@ MOD06_02239840: ; 0x02239840
thumb_func_start MOD06_02239864
MOD06_02239864: ; 0x02239864
- ldr r3, _02239868 ; =0x021D7A29
+ ldr r3, _02239868 ; =MOD05_021D7A28
bx r3
.align 2, 0
-_02239868: .word 0x021D7A29
+_02239868: .word MOD05_021D7A28
thumb_func_start MOD06_0223986C
MOD06_0223986C: ; 0x0223986C
@@ -279,14 +279,14 @@ _022398A4: .word 0x0224F21C
thumb_func_start MOD06_022398A8
MOD06_022398A8: ; 0x022398A8
- ldr r3, _022398B4 ; =0x0200CA99
+ ldr r3, _022398B4 ; =FUN_0200CA98
mov r2, #1
add r1, r0, #0
ldr r0, _022398B8 ; =MOD06_022398BC
lsl r2, r2, #0xa
bx r3
.align 2, 0
-_022398B4: .word 0x0200CA99
+_022398B4: .word FUN_0200CA98
_022398B8: .word MOD06_022398BC
thumb_func_start MOD06_022398BC
@@ -822,20 +822,20 @@ _02239CE4:
thumb_func_start MOD06_02239CE8
MOD06_02239CE8: ; 0x02239CE8
ldr r0, [r0, #4]
- ldr r3, _02239CF4 ; =0x021D8025
+ ldr r3, _02239CF4 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _02239CF8 ; =0x0224F1C0
bx r3
nop
-_02239CF4: .word 0x021D8025
+_02239CF4: .word MOD05_021D8024
_02239CF8: .word 0x0224F1C0
thumb_func_start MOD06_02239CFC
MOD06_02239CFC: ; 0x02239CFC
- ldr r3, _02239D00 ; =0x021D80A5
+ ldr r3, _02239D00 ; =MOD05_021D80A4
bx r3
.align 2, 0
-_02239D00: .word 0x021D80A5
+_02239D00: .word MOD05_021D80A4
thumb_func_start MOD06_02239D04
MOD06_02239D04: ; 0x02239D04
@@ -1170,20 +1170,20 @@ _02239F60: .word MOD06_0223B340
thumb_func_start MOD06_02239F64
MOD06_02239F64: ; 0x02239F64
ldr r0, [r0, #4]
- ldr r3, _02239F70 ; =0x021D8025
+ ldr r3, _02239F70 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _02239F74 ; =0x0224F190
bx r3
nop
-_02239F70: .word 0x021D8025
+_02239F70: .word MOD05_021D8024
_02239F74: .word 0x0224F190
thumb_func_start MOD06_02239F78
MOD06_02239F78: ; 0x02239F78
- ldr r3, _02239F7C ; =0x021D80A5
+ ldr r3, _02239F7C ; =MOD05_021D80A4
bx r3
.align 2, 0
-_02239F7C: .word 0x021D80A5
+_02239F7C: .word MOD05_021D80A4
thumb_func_start MOD06_02239F80
MOD06_02239F80: ; 0x02239F80
@@ -1437,7 +1437,7 @@ MOD06_0223A1B0: ; 0x0223A1B0
MOD06_0223A1C4: ; 0x0223A1C4
lsl r2, r1, #2
ldr r1, _0223A1D8 ; =0x0224F174
- ldr r3, _0223A1DC ; =0x021D8025
+ ldr r3, _0223A1DC ; =MOD05_021D8024
ldr r2, [r1, r2]
ldr r1, _0223A1E0 ; =0x02252240
str r2, [r1, #8]
@@ -1447,7 +1447,7 @@ MOD06_0223A1C4: ; 0x0223A1C4
bx r3
.align 2, 0
_0223A1D8: .word 0x0224F174
-_0223A1DC: .word 0x021D8025
+_0223A1DC: .word MOD05_021D8024
_0223A1E0: .word 0x02252240
_0223A1E4: .word 0x02252240
@@ -1585,20 +1585,20 @@ _0223A2E4: .word MOD06_0223A828
thumb_func_start MOD06_0223A2E8
MOD06_0223A2E8: ; 0x0223A2E8
ldr r0, [r0, #4]
- ldr r3, _0223A2F4 ; =0x021D8025
+ ldr r3, _0223A2F4 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _0223A2F8 ; =0x0224F1A8
bx r3
nop
-_0223A2F4: .word 0x021D8025
+_0223A2F4: .word MOD05_021D8024
_0223A2F8: .word 0x0224F1A8
thumb_func_start MOD06_0223A2FC
MOD06_0223A2FC: ; 0x0223A2FC
- ldr r3, _0223A300 ; =0x021D80A5
+ ldr r3, _0223A300 ; =MOD05_021D80A4
bx r3
.align 2, 0
-_0223A300: .word 0x021D80A5
+_0223A300: .word MOD05_021D80A4
thumb_func_start MOD06_0223A304
MOD06_0223A304: ; 0x0223A304
@@ -1701,10 +1701,10 @@ MOD06_0223A39C: ; 0x0223A39C
thumb_func_start MOD06_0223A3A4
MOD06_0223A3A4: ; 0x0223A3A4
- ldr r3, _0223A3A8 ; =0x021F52C9
+ ldr r3, _0223A3A8 ; =MOD05_021F52C8
bx r3
.align 2, 0
-_0223A3A8: .word 0x021F52C9
+_0223A3A8: .word MOD05_021F52C8
thumb_func_start MOD06_0223A3AC
MOD06_0223A3AC: ; 0x0223A3AC
@@ -1720,70 +1720,70 @@ MOD06_0223A3AC: ; 0x0223A3AC
thumb_func_start MOD06_0223A3C0
MOD06_0223A3C0: ; 0x0223A3C0
- ldr r3, _0223A3C4 ; =0x021F5359
+ ldr r3, _0223A3C4 ; =MOD05_021F5358
bx r3
.align 2, 0
-_0223A3C4: .word 0x021F5359
+_0223A3C4: .word MOD05_021F5358
thumb_func_start MOD06_0223A3C8
MOD06_0223A3C8: ; 0x0223A3C8
- ldr r3, _0223A3D0 ; =0x021F5385
+ ldr r3, _0223A3D0 ; =MOD05_021F5384
mov r1, #1
lsl r1, r1, #0xc
bx r3
.align 2, 0
-_0223A3D0: .word 0x021F5385
+_0223A3D0: .word MOD05_021F5384
thumb_func_start MOD06_0223A3D4
MOD06_0223A3D4: ; 0x0223A3D4
- ldr r3, _0223A3D8 ; =0x021F5385
+ ldr r3, _0223A3D8 ; =MOD05_021F5384
bx r3
.align 2, 0
-_0223A3D8: .word 0x021F5385
+_0223A3D8: .word MOD05_021F5384
thumb_func_start MOD06_0223A3DC
MOD06_0223A3DC: ; 0x0223A3DC
- ldr r3, _0223A3E4 ; =0x021F53BD
+ ldr r3, _0223A3E4 ; =MOD05_021F53BC
mov r1, #1
lsl r1, r1, #0xc
bx r3
.align 2, 0
-_0223A3E4: .word 0x021F53BD
+_0223A3E4: .word MOD05_021F53BC
thumb_func_start MOD06_0223A3E8
MOD06_0223A3E8: ; 0x0223A3E8
- ldr r3, _0223A3EC ; =0x021F53F9
+ ldr r3, _0223A3EC ; =MOD05_021F53F8
bx r3
.align 2, 0
-_0223A3EC: .word 0x021F53F9
+_0223A3EC: .word MOD05_021F53F8
thumb_func_start MOD06_0223A3F0
MOD06_0223A3F0: ; 0x0223A3F0
- ldr r3, _0223A3F4 ; =0x021F5401
+ ldr r3, _0223A3F4 ; =MOD05_021F5400
bx r3
.align 2, 0
-_0223A3F4: .word 0x021F5401
+_0223A3F4: .word MOD05_021F5400
thumb_func_start MOD06_0223A3F8
MOD06_0223A3F8: ; 0x0223A3F8
- ldr r3, _0223A3FC ; =0x021F5425
+ ldr r3, _0223A3FC ; =MOD05_021F5424
bx r3
.align 2, 0
-_0223A3FC: .word 0x021F5425
+_0223A3FC: .word MOD05_021F5424
thumb_func_start MOD06_0223A400
MOD06_0223A400: ; 0x0223A400
- ldr r3, _0223A404 ; =0x021F5431
+ ldr r3, _0223A404 ; =MOD05_021F5430
bx r3
.align 2, 0
-_0223A404: .word 0x021F5431
+_0223A404: .word MOD05_021F5430
thumb_func_start MOD06_0223A408
MOD06_0223A408: ; 0x0223A408
- ldr r3, _0223A40C ; =0x021F54CD
+ ldr r3, _0223A40C ; =MOD05_021F54CC
bx r3
.align 2, 0
-_0223A40C: .word 0x021F54CD
+_0223A40C: .word MOD05_021F54CC
thumb_func_start MOD06_0223A410
MOD06_0223A410: ; 0x0223A410
@@ -1799,10 +1799,10 @@ MOD06_0223A418: ; 0x0223A418
thumb_func_start MOD06_0223A420
MOD06_0223A420: ; 0x0223A420
- ldr r3, _0223A424 ; =0x021F54E1
+ ldr r3, _0223A424 ; =MOD05_021F54E0
bx r3
.align 2, 0
-_0223A424: .word 0x021F54E1
+_0223A424: .word MOD05_021F54E0
thumb_func_start MOD06_0223A428
MOD06_0223A428: ; 0x0223A428
@@ -2335,7 +2335,7 @@ MOD06_0223A800: ; 0x0223A800
mov r2, #0
lsl r0, r0, #4
str r2, [r1, r0]
- ldr r3, _0223A818 ; =0x0200CA45
+ ldr r3, _0223A818 ; =FUN_0200CA44
mov r2, #4
sub r0, r0, #4
str r2, [r1, r0]
@@ -2343,7 +2343,7 @@ MOD06_0223A800: ; 0x0223A800
lsl r2, r2, #8
bx r3
.align 2, 0
-_0223A818: .word 0x0200CA45
+_0223A818: .word FUN_0200CA44
_0223A81C: .word MOD06_0223A944
thumb_func_start MOD06_0223A820
@@ -4371,10 +4371,10 @@ _0223B72C:
thumb_func_start MOD06_0223B73C
MOD06_0223B73C: ; 0x0223B73C
- ldr r3, _0223B740 ; =0x02016A19
+ ldr r3, _0223B740 ; =FUN_02016A18
bx r3
.align 2, 0
-_0223B740: .word 0x02016A19
+_0223B740: .word FUN_02016A18
thumb_func_start MOD06_0223B744
MOD06_0223B744: ; 0x0223B744
@@ -4388,12 +4388,12 @@ MOD06_0223B744: ; 0x0223B744
str r1, [r0, #0x10]
str r2, [r0, #0x14]
ldr r0, [r0]
- ldr r3, _0223B764 ; =0x021DB52D
+ ldr r3, _0223B764 ; =MOD05_021DB52C
ldr r0, [r0, #0x48]
bx r3
nop
_0223B760: .word 0x0224F248
-_0223B764: .word 0x021DB52D
+_0223B764: .word MOD05_021DB52C
thumb_func_start MOD06_0223B768
MOD06_0223B768: ; 0x0223B768
@@ -11061,11 +11061,11 @@ _0223ECC4: .word 0x00000241
MOD06_0223ECC8: ; 0x0223ECC8
mov r2, #2
lsl r2, r2, #8
- ldr r3, _0223ECD4 ; =0x0200C665
+ ldr r3, _0223ECD4 ; =FUN_0200C664
ldr r0, [r0, r2]
bx r3
nop
-_0223ECD4: .word 0x0200C665
+_0223ECD4: .word FUN_0200C664
thumb_func_start MOD06_0223ECD8
MOD06_0223ECD8: ; 0x0223ECD8
@@ -12486,10 +12486,10 @@ MOD06_0223F89C: ; 0x0223F89C
thumb_func_start MOD06_0223F8B4
MOD06_0223F8B4: ; 0x0223F8B4
- ldr r3, _0223F8B8 ; =0x02050025
+ ldr r3, _0223F8B8 ; =FUN_02050024
bx r3
.align 2, 0
-_0223F8B8: .word 0x02050025
+_0223F8B8: .word FUN_02050024
thumb_func_start MOD06_0223F8BC
MOD06_0223F8BC: ; 0x0223F8BC
@@ -14240,26 +14240,26 @@ _0224074C: .word 0x02252420
thumb_func_start MOD06_02240750
MOD06_02240750: ; 0x02240750
ldr r0, _0224075C ; =0x02252420
- ldr r3, _02240760 ; =0x02031259
+ ldr r3, _02240760 ; =FUN_02031258
ldr r0, [r0]
add r0, #0x91
ldrb r0, [r0]
bx r3
.align 2, 0
_0224075C: .word 0x02252420
-_02240760: .word 0x02031259
+_02240760: .word FUN_02031258
thumb_func_start MOD06_02240764
MOD06_02240764: ; 0x02240764
ldr r0, _02240770 ; =0x02252420
- ldr r3, _02240774 ; =0x02031249
+ ldr r3, _02240774 ; =FUN_02031248
ldr r0, [r0]
add r0, #0x91
ldrb r0, [r0]
bx r3
.align 2, 0
_02240770: .word 0x02252420
-_02240774: .word 0x02031249
+_02240774: .word FUN_02031248
thumb_func_start MOD06_02240778
MOD06_02240778: ; 0x02240778
@@ -19828,17 +19828,17 @@ _022433A4: .word 0x020CD3B4
thumb_func_start MOD06_022433A8
MOD06_022433A8: ; 0x022433A8
- ldr r3, _022433AC ; =0x0202A1E5
+ ldr r3, _022433AC ; =FUN_0202A1E4
bx r3
.align 2, 0
-_022433AC: .word 0x0202A1E5
+_022433AC: .word FUN_0202A1E4
thumb_func_start MOD06_022433B0
MOD06_022433B0: ; 0x022433B0
- ldr r3, _022433B4 ; =0x0202A399
+ ldr r3, _022433B4 ; =FUN_0202A398
bx r3
.align 2, 0
-_022433B4: .word 0x0202A399
+_022433B4: .word FUN_0202A398
thumb_func_start MOD06_022433B8
MOD06_022433B8: ; 0x022433B8
@@ -21125,10 +21125,10 @@ _02243DB4: .word MOD06_022442C4
thumb_func_start MOD06_02243DB8
MOD06_02243DB8: ; 0x02243DB8
- ldr r3, _02243DBC ; =0x02046949
+ ldr r3, _02243DBC ; =FUN_02046948
bx r3
.align 2, 0
-_02243DBC: .word 0x02046949
+_02243DBC: .word FUN_02046948
thumb_func_start MOD06_02243DC0
MOD06_02243DC0: ; 0x02243DC0
@@ -23104,20 +23104,20 @@ MOD06_02244CE8: ; 0x02244CE8
add r3, r0, #0
add r2, r1, #0
add r1, r3, #0
- ldr r3, _02244CF4 ; =0x0200650D
+ ldr r3, _02244CF4 ; =LoadFromNarc_2
mov r0, #0x86
bx r3
.align 2, 0
-_02244CF4: .word 0x0200650D
+_02244CF4: .word LoadFromNarc_2
thumb_func_start MOD06_02244CF8
MOD06_02244CF8: ; 0x02244CF8
- ldr r3, _02244D00 ; =0x020064F1
+ ldr r3, _02244D00 ; =LoadFromNARC
add r2, r1, #0
mov r1, #0x87
bx r3
.align 2, 0
-_02244D00: .word 0x020064F1
+_02244D00: .word LoadFromNARC
thumb_func_start MOD06_02244D04
MOD06_02244D04: ; 0x02244D04
@@ -23207,19 +23207,19 @@ _02244DA4:
thumb_func_start MOD06_02244DB0
MOD06_02244DB0: ; 0x02244DB0
- ldr r3, _02244DB8 ; =0x020169D9
+ ldr r3, _02244DB8 ; =FUN_020169D8
mov r1, #0x17
lsl r1, r1, #4
bx r3
.align 2, 0
-_02244DB8: .word 0x020169D9
+_02244DB8: .word FUN_020169D8
thumb_func_start MOD06_02244DBC
MOD06_02244DBC: ; 0x02244DBC
- ldr r3, _02244DC0 ; =0x02016A19
+ ldr r3, _02244DC0 ; =FUN_02016A18
bx r3
.align 2, 0
-_02244DC0: .word 0x02016A19
+_02244DC0: .word FUN_02016A18
thumb_func_start MOD06_02244DC4
MOD06_02244DC4: ; 0x02244DC4
@@ -23376,14 +23376,14 @@ MOD06_02244EF8: ; 0x02244EF8
mov r2, #1
lsl r0, r0, #2
str r2, [r1, r0]
- ldr r3, _02244F10 ; =0x0200CA45
+ ldr r3, _02244F10 ; =FUN_0200CA44
mov r2, #0
add r0, r0, #4
str r2, [r1, r0]
ldr r0, _02244F14 ; =MOD06_02244F64
bx r3
nop
-_02244F10: .word 0x0200CA45
+_02244F10: .word FUN_0200CA44
_02244F14: .word MOD06_02244F64
thumb_func_start MOD06_02244F18
@@ -23688,10 +23688,10 @@ _0224518C: .word 0x0000071D
thumb_func_start MOD06_02245190
MOD06_02245190: ; 0x02245190
- ldr r3, _02245194 ; =0x02016A19
+ ldr r3, _02245194 ; =FUN_02016A18
bx r3
.align 2, 0
-_02245194: .word 0x02016A19
+_02245194: .word FUN_02016A18
thumb_func_start MOD06_02245198
MOD06_02245198: ; 0x02245198
@@ -24562,10 +24562,10 @@ _02245808:
thumb_func_start MOD06_02245824
MOD06_02245824: ; 0x02245824
- ldr r3, _02245828 ; =0x0205E49D
+ ldr r3, _02245828 ; =FUN_0205E49C
bx r3
.align 2, 0
-_02245828: .word 0x0205E49D
+_02245828: .word FUN_0205E49C
thumb_func_start MOD06_0224582C
MOD06_0224582C: ; 0x0224582C
@@ -25623,11 +25623,11 @@ _02245FEE:
thumb_func_start MOD06_02245FF8
MOD06_02245FF8: ; 0x02245FF8
- ldr r3, _02246000 ; =0x0201FFC9
+ ldr r3, _02246000 ; =FUN_0201FFC8
ldr r0, [r1, #0x68]
bx r3
nop
-_02246000: .word 0x0201FFC9
+_02246000: .word FUN_0201FFC8
thumb_func_start MOD06_02246004
MOD06_02246004: ; 0x02246004
@@ -26394,12 +26394,12 @@ MOD06_02246600: ; 0x02246600
thumb_func_start MOD06_02246604
MOD06_02246604: ; 0x02246604
- ldr r3, _0224660C ; =0x02006671
+ ldr r3, _0224660C ; =FUN_02006670
mov r0, #0x61
mov r1, #4
bx r3
.align 2, 0
-_0224660C: .word 0x02006671
+_0224660C: .word FUN_02006670
thumb_func_start MOD06_02246610
MOD06_02246610: ; 0x02246610
@@ -26514,10 +26514,10 @@ MOD06_022466C0: ; 0x022466C0
thumb_func_start MOD06_022466E0
MOD06_022466E0: ; 0x022466E0
- ldr r3, _022466E4 ; =0x02016A19
+ ldr r3, _022466E4 ; =FUN_02016A18
bx r3
.align 2, 0
-_022466E4: .word 0x02016A19
+_022466E4: .word FUN_02016A18
thumb_func_start MOD06_022466E8
MOD06_022466E8: ; 0x022466E8
@@ -27751,12 +27751,12 @@ _02247008: .word 0x04000008
thumb_func_start MOD06_0224700C
MOD06_0224700C: ; 0x0224700C
- ldr r3, _02247014 ; =0x02006671
+ ldr r3, _02247014 ; =FUN_02006670
mov r0, #0x61
mov r1, #4
bx r3
.align 2, 0
-_02247014: .word 0x02006671
+_02247014: .word FUN_02006670
thumb_func_start MOD06_02247018
MOD06_02247018: ; 0x02247018
@@ -28514,11 +28514,11 @@ MOD06_022475A4: ; 0x022475A4
thumb_func_start MOD06_02247610
MOD06_02247610: ; 0x02247610
- ldr r3, _02247618 ; =0x02018745
+ ldr r3, _02247618 ; =FUN_02018744
mov r1, #3
bx r3
nop
-_02247618: .word 0x02018745
+_02247618: .word FUN_02018744
thumb_func_start MOD06_0224761C
MOD06_0224761C: ; 0x0224761C
@@ -28718,14 +28718,14 @@ _02247778: .word 0x0400004A
thumb_func_start MOD06_0224777C
MOD06_0224777C: ; 0x0224777C
- ldr r3, _02247788 ; =0x02068B69
+ ldr r3, _02247788 ; =FUN_02068B68
add r2, r0, #0
add r0, r1, #0
ldr r1, [r2, #0x5c]
mov r2, #2
bx r3
.align 2, 0
-_02247788: .word 0x02068B69
+_02247788: .word FUN_02068B68
thumb_func_start MOD06_0224778C
MOD06_0224778C: ; 0x0224778C
@@ -28769,10 +28769,10 @@ MOD06_022477D4: ; 0x022477D4
add r2, r1, #0
ldrh r0, [r3]
ldrh r1, [r3, #4]
- ldr r3, _022477E0 ; =0x02012471
+ ldr r3, _022477E0 ; =FUN_02012470
bx r3
.align 2, 0
-_022477E0: .word 0x02012471
+_022477E0: .word FUN_02012470
thumb_func_start MOD06_022477E4
MOD06_022477E4: ; 0x022477E4
@@ -29127,11 +29127,11 @@ MOD06_02247A54: ; 0x02247A54
thumb_func_start MOD06_02247A9C
MOD06_02247A9C: ; 0x02247A9C
- ldr r3, _02247AA4 ; =0x0201FFC9
+ ldr r3, _02247AA4 ; =FUN_0201FFC8
ldr r0, [r1, #8]
bx r3
nop
-_02247AA4: .word 0x0201FFC9
+_02247AA4: .word FUN_0201FFC8
thumb_func_start MOD06_02247AA8
MOD06_02247AA8: ; 0x02247AA8
@@ -29290,11 +29290,11 @@ MOD06_02247BA0: ; 0x02247BA0
thumb_func_start MOD06_02247BCC
MOD06_02247BCC: ; 0x02247BCC
- ldr r3, _02247BD4 ; =0x0201FFC9
+ ldr r3, _02247BD4 ; =FUN_0201FFC8
ldr r0, [r1, #0x58]
bx r3
nop
-_02247BD4: .word 0x0201FFC9
+_02247BD4: .word FUN_0201FFC8
thumb_func_start MOD06_02247BD8
MOD06_02247BD8: ; 0x02247BD8
@@ -31249,12 +31249,12 @@ MOD06_02248B20: ; 0x02248B20
thumb_func_start MOD06_02248B24
MOD06_02248B24: ; 0x02248B24
- ldr r3, _02248B2C ; =0x02002269
+ ldr r3, _02248B2C ; =StringCopyN
add r0, r0, #4
mov r2, #8
bx r3
.align 2, 0
-_02248B2C: .word 0x02002269
+_02248B2C: .word StringCopyN
thumb_func_start MOD06_02248B30
MOD06_02248B30: ; 0x02248B30
@@ -31296,11 +31296,11 @@ MOD06_02248B5C: ; 0x02248B5C
thumb_func_start MOD06_02248B60
MOD06_02248B60: ; 0x02248B60
- ldr r3, _02248B68 ; =0x0202B5D9
+ ldr r3, _02248B68 ; =FUN_0202B5D8
ldr r0, [r0, #0x14]
bx r3
nop
-_02248B68: .word 0x0202B5D9
+_02248B68: .word FUN_0202B5D8
thumb_func_start MOD06_02248B6C
MOD06_02248B6C: ; 0x02248B6C
@@ -31450,10 +31450,10 @@ _02248CA4:
thumb_func_start MOD06_02248CB8
MOD06_02248CB8: ; 0x02248CB8
- ldr r3, _02248CBC ; =0x02016A19
+ ldr r3, _02248CBC ; =FUN_02016A18
bx r3
.align 2, 0
-_02248CBC: .word 0x02016A19
+_02248CBC: .word FUN_02016A18
thumb_func_start MOD06_02248CC0
MOD06_02248CC0: ; 0x02248CC0
@@ -32321,11 +32321,11 @@ _0224930C: .word MOD06_02249388
thumb_func_start MOD06_02249310
MOD06_02249310: ; 0x02249310
- ldr r3, _02249318 ; =0x0200CAB5
+ ldr r3, _02249318 ; =FUN_0200CAB4
ldr r0, [r0, #0x24]
bx r3
nop
-_02249318: .word 0x0200CAB5
+_02249318: .word FUN_0200CAB4
thumb_func_start MOD06_0224931C
MOD06_0224931C: ; 0x0224931C
@@ -32939,22 +32939,22 @@ MOD06_022497BC: ; 0x022497BC
thumb_func_start MOD06_022497CC
MOD06_022497CC: ; 0x022497CC
- ldr r3, _022497D8 ; =0x021E5079
+ ldr r3, _022497D8 ; =MOD05_021E5078
ldr r0, [r0]
mov r1, #2
mov r2, #0x14
bx r3
nop
-_022497D8: .word 0x021E5079
+_022497D8: .word MOD05_021E5078
thumb_func_start MOD06_022497DC
MOD06_022497DC: ; 0x022497DC
- ldr r3, _022497E4 ; =0x021E50A1
+ ldr r3, _022497E4 ; =MOD05_021E50A0
ldr r0, [r0]
mov r1, #2
bx r3
.align 2, 0
-_022497E4: .word 0x021E50A1
+_022497E4: .word MOD05_021E50A0
thumb_func_start MOD06_022497E8
MOD06_022497E8: ; 0x022497E8
@@ -33477,11 +33477,11 @@ _02249BD6:
thumb_func_start MOD06_02249C24
MOD06_02249C24: ; 0x02249C24
- ldr r3, _02249C2C ; =0x0201F745
+ ldr r3, _02249C2C ; =FUN_0201F744
ldr r0, [r1, #0x3c]
bx r3
nop
-_02249C2C: .word 0x0201F745
+_02249C2C: .word FUN_0201F744
thumb_func_start MOD06_02249C30
MOD06_02249C30: ; 0x02249C30
@@ -35124,11 +35124,11 @@ _0224A86C:
thumb_func_start MOD06_0224A870
MOD06_0224A870: ; 0x0224A870
ldr r0, [r1, #0x1c]
- ldr r3, _0224A878 ; =0x021F5431
+ ldr r3, _0224A878 ; =MOD05_021F5430
add r0, #0x18
bx r3
.align 2, 0
-_0224A878: .word 0x021F5431
+_0224A878: .word MOD05_021F5430
thumb_func_start MOD06_0224A87C
MOD06_0224A87C: ; 0x0224A87C
@@ -35174,11 +35174,11 @@ MOD06_0224A8A8: ; 0x0224A8A8
thumb_func_start MOD06_0224A8C8
MOD06_0224A8C8: ; 0x0224A8C8
- ldr r3, _0224A8D0 ; =0x021E4C01
+ ldr r3, _0224A8D0 ; =MOD05_021E4C00
ldr r0, [r0, #0x5c]
bx r3
nop
-_0224A8D0: .word 0x021E4C01
+_0224A8D0: .word MOD05_021E4C00
thumb_func_start MOD06_0224A8D4
MOD06_0224A8D4: ; 0x0224A8D4
@@ -35364,11 +35364,11 @@ MOD06_0224AA14: ; 0x0224AA14
thumb_func_start MOD06_0224AA34
MOD06_0224AA34: ; 0x0224AA34
- ldr r3, _0224AA3C ; =0x021E4C01
+ ldr r3, _0224AA3C ; =MOD05_021E4C00
ldr r0, [r0, #0x5c]
bx r3
nop
-_0224AA3C: .word 0x021E4C01
+_0224AA3C: .word MOD05_021E4C00
thumb_func_start MOD06_0224AA40
MOD06_0224AA40: ; 0x0224AA40
@@ -35554,11 +35554,11 @@ MOD06_0224AB80: ; 0x0224AB80
thumb_func_start MOD06_0224ABA0
MOD06_0224ABA0: ; 0x0224ABA0
- ldr r3, _0224ABA8 ; =0x021E4C01
+ ldr r3, _0224ABA8 ; =MOD05_021E4C00
ldr r0, [r0, #0x5c]
bx r3
nop
-_0224ABA8: .word 0x021E4C01
+_0224ABA8: .word MOD05_021E4C00
thumb_func_start MOD06_0224ABAC
MOD06_0224ABAC: ; 0x0224ABAC
@@ -36429,11 +36429,11 @@ _0224B234:
thumb_func_start MOD06_0224B23C
MOD06_0224B23C: ; 0x0224B23C
ldr r0, [r1]
- ldr r3, _0224B244 ; =0x021F5431
+ ldr r3, _0224B244 ; =MOD05_021F5430
add r0, #0x18
bx r3
.align 2, 0
-_0224B244: .word 0x021F5431
+_0224B244: .word MOD05_021F5430
thumb_func_start MOD06_0224B248
MOD06_0224B248: ; 0x0224B248
@@ -36635,11 +36635,11 @@ _0224B3D0:
thumb_func_start MOD06_0224B3D8
MOD06_0224B3D8: ; 0x0224B3D8
ldr r0, [r1]
- ldr r3, _0224B3E0 ; =0x021F5431
+ ldr r3, _0224B3E0 ; =MOD05_021F5430
add r0, #0x18
bx r3
.align 2, 0
-_0224B3E0: .word 0x021F5431
+_0224B3E0: .word MOD05_021F5430
thumb_func_start MOD06_0224B3E4
MOD06_0224B3E4: ; 0x0224B3E4
@@ -36928,11 +36928,11 @@ _0224B65E:
thumb_func_start MOD06_0224B664
MOD06_0224B664: ; 0x0224B664
- ldr r3, _0224B66C ; =0x0201F745
+ ldr r3, _0224B66C ; =FUN_0201F744
ldr r0, [r1, #0x34]
bx r3
nop
-_0224B66C: .word 0x0201F745
+_0224B66C: .word FUN_0201F744
thumb_func_start MOD06_0224B670
MOD06_0224B670: ; 0x0224B670
@@ -37102,11 +37102,11 @@ MOD06_0224B788: ; 0x0224B788
thumb_func_start MOD06_0224B7C0
MOD06_0224B7C0: ; 0x0224B7C0
- ldr r3, _0224B7C8 ; =0x0201F745
+ ldr r3, _0224B7C8 ; =FUN_0201F744
ldr r0, [r1, #0x1c]
bx r3
nop
-_0224B7C8: .word 0x0201F745
+_0224B7C8: .word FUN_0201F744
thumb_func_start MOD06_0224B7CC
MOD06_0224B7CC: ; 0x0224B7CC
@@ -37270,11 +37270,11 @@ _0224B8EC:
thumb_func_start MOD06_0224B8FC
MOD06_0224B8FC: ; 0x0224B8FC
- ldr r3, _0224B904 ; =0x0201F745
+ ldr r3, _0224B904 ; =FUN_0201F744
ldr r0, [r1, #0x24]
bx r3
nop
-_0224B904: .word 0x0201F745
+_0224B904: .word FUN_0201F744
thumb_func_start MOD06_0224B908
MOD06_0224B908: ; 0x0224B908
@@ -37470,11 +37470,11 @@ MOD06_0224BA30: ; 0x0224BA30
thumb_func_start MOD06_0224BA88
MOD06_0224BA88: ; 0x0224BA88
- ldr r3, _0224BA90 ; =0x0201F745
+ ldr r3, _0224BA90 ; =FUN_0201F744
ldr r0, [r1, #0x24]
bx r3
nop
-_0224BA90: .word 0x0201F745
+_0224BA90: .word FUN_0201F744
thumb_func_start MOD06_0224BA94
MOD06_0224BA94: ; 0x0224BA94
@@ -37723,11 +37723,11 @@ MOD06_0224BC50: ; 0x0224BC50
thumb_func_start MOD06_0224BC94
MOD06_0224BC94: ; 0x0224BC94
- ldr r3, _0224BC9C ; =0x0201F745
+ ldr r3, _0224BC9C ; =FUN_0201F744
ldr r0, [r1, #0x20]
bx r3
nop
-_0224BC9C: .word 0x0201F745
+_0224BC9C: .word FUN_0201F744
thumb_func_start MOD06_0224BCA0
MOD06_0224BCA0: ; 0x0224BCA0
@@ -37966,11 +37966,11 @@ _0224BE86:
thumb_func_start MOD06_0224BE8C
MOD06_0224BE8C: ; 0x0224BE8C
- ldr r3, _0224BE94 ; =0x0201F745
+ ldr r3, _0224BE94 ; =FUN_0201F744
ldr r0, [r1, #0x34]
bx r3
nop
-_0224BE94: .word 0x0201F745
+_0224BE94: .word FUN_0201F744
thumb_func_start MOD06_0224BE98
MOD06_0224BE98: ; 0x0224BE98
@@ -38299,11 +38299,11 @@ _0224C138:
thumb_func_start MOD06_0224C140
MOD06_0224C140: ; 0x0224C140
- ldr r3, _0224C148 ; =0x0201F745
+ ldr r3, _0224C148 ; =FUN_0201F744
ldr r0, [r1, #0x34]
bx r3
nop
-_0224C148: .word 0x0201F745
+_0224C148: .word FUN_0201F744
thumb_func_start MOD06_0224C14C
MOD06_0224C14C: ; 0x0224C14C
@@ -38992,21 +38992,21 @@ _0224C6E4: .word 0x02251DE4
thumb_func_start MOD06_0224C6E8
MOD06_0224C6E8: ; 0x0224C6E8
- ldr r3, _0224C6F0 ; =0x021DA4ED
+ ldr r3, _0224C6F0 ; =MOD05_021DA4EC
ldr r0, [r0, #0x50]
mov r2, #0
bx r3
.align 2, 0
-_0224C6F0: .word 0x021DA4ED
+_0224C6F0: .word MOD05_021DA4EC
thumb_func_start MOD06_0224C6F4
MOD06_0224C6F4: ; 0x0224C6F4
- ldr r3, _0224C6FC ; =0x021DA4ED
+ ldr r3, _0224C6FC ; =MOD05_021DA4EC
ldr r0, [r0, #0x50]
mov r2, #1
bx r3
.align 2, 0
-_0224C6FC: .word 0x021DA4ED
+_0224C6FC: .word MOD05_021DA4EC
thumb_func_start MOD06_0224C700
MOD06_0224C700: ; 0x0224C700
@@ -40655,11 +40655,11 @@ MOD06_0224D344: ; 0x0224D344
thumb_func_start MOD06_0224D388
MOD06_0224D388: ; 0x0224D388
- ldr r3, _0224D390 ; =0x0201F745
+ ldr r3, _0224D390 ; =FUN_0201F744
ldr r0, [r1, #0x20]
bx r3
nop
-_0224D390: .word 0x0201F745
+_0224D390: .word FUN_0201F744
thumb_func_start MOD06_0224D394
MOD06_0224D394: ; 0x0224D394
@@ -41710,11 +41710,11 @@ MOD06_0224DC3C: ; 0x0224DC3C
thumb_func_start MOD06_0224DC50
MOD06_0224DC50: ; 0x0224DC50
- ldr r3, _0224DC58 ; =0x0201FD59
+ ldr r3, _0224DC58 ; =FUN_0201FD58
ldr r0, [r0, #0x1c]
bx r3
nop
-_0224DC58: .word 0x0201FD59
+_0224DC58: .word FUN_0201FD58
thumb_func_start MOD06_0224DC5C
MOD06_0224DC5C: ; 0x0224DC5C
@@ -42756,13 +42756,13 @@ _0224E4A2:
thumb_func_start MOD06_0224E4A4
MOD06_0224E4A4: ; 0x0224E4A4
- ldr r3, _0224E4B0 ; =0x020021AD
+ ldr r3, _0224E4B0 ; =FUN_020021AC
add r1, r0, #0
ldr r0, [r1, #4]
ldr r1, [r1, #8]
bx r3
nop
-_0224E4B0: .word 0x020021AD
+_0224E4B0: .word FUN_020021AC
thumb_func_start MOD06_0224E4B4
MOD06_0224E4B4: ; 0x0224E4B4
@@ -42822,11 +42822,11 @@ MOD06_0224E510: ; 0x0224E510
mov r3, #0xc
mul r3, r2
ldr r1, [r1, r3]
- ldr r3, _0224E51C ; =0x020270D9
+ ldr r3, _0224E51C ; =FUN_020270D8
mov r2, #1
bx r3
.align 2, 0
-_0224E51C: .word 0x020270D9
+_0224E51C: .word FUN_020270D8
thumb_func_start MOD06_0224E520
MOD06_0224E520: ; 0x0224E520
@@ -43156,13 +43156,13 @@ _0224E794:
thumb_func_start MOD06_0224E7C4
MOD06_0224E7C4: ; 0x0224E7C4
- ldr r3, _0224E7D0 ; =0x0204640D
+ ldr r3, _0224E7D0 ; =FUN_0204640C
ldr r0, [r0, #0x10]
ldr r1, _0224E7D4 ; =MOD06_0224E7D8
mov r2, #0
bx r3
nop
-_0224E7D0: .word 0x0204640D
+_0224E7D0: .word FUN_0204640C
_0224E7D4: .word MOD06_0224E7D8
thumb_func_start MOD06_0224E7D8
@@ -43506,10 +43506,10 @@ _0224EA58:
thumb_func_start MOD06_0224EA5C
MOD06_0224EA5C: ; 0x0224EA5C
- ldr r3, _0224EA60 ; =0x021F5431
+ ldr r3, _0224EA60 ; =MOD05_021F5430
bx r3
.align 2, 0
-_0224EA60: .word 0x021F5431
+_0224EA60: .word MOD05_021F5430
thumb_func_start MOD06_0224EA64
MOD06_0224EA64: ; 0x0224EA64
@@ -43595,20 +43595,20 @@ _0224EAF8: .word MOD06_0224EA5C
thumb_func_start MOD06_0224EAFC
MOD06_0224EAFC: ; 0x0224EAFC
ldr r0, [r0, #4]
- ldr r3, _0224EB08 ; =0x021D8025
+ ldr r3, _0224EB08 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _0224EB0C ; =0x022521D4
bx r3
nop
-_0224EB08: .word 0x021D8025
+_0224EB08: .word MOD05_021D8024
_0224EB0C: .word 0x022521D4
thumb_func_start MOD06_0224EB10
MOD06_0224EB10: ; 0x0224EB10
- ldr r3, _0224EB14 ; =0x021D80A5
+ ldr r3, _0224EB14 ; =MOD05_021D80A4
bx r3
.align 2, 0
-_0224EB14: .word 0x021D80A5
+_0224EB14: .word MOD05_021D80A4
thumb_func_start MOD06_0224EB18
MOD06_0224EB18: ; 0x0224EB18
@@ -43744,31 +43744,31 @@ _0224EC10: .word MOD06_0224EA5C
thumb_func_start MOD06_0224EC14
MOD06_0224EC14: ; 0x0224EC14
ldr r0, [r0, #4]
- ldr r3, _0224EC20 ; =0x021D8025
+ ldr r3, _0224EC20 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _0224EC24 ; =0x0225218C
bx r3
nop
-_0224EC20: .word 0x021D8025
+_0224EC20: .word MOD05_021D8024
_0224EC24: .word 0x0225218C
thumb_func_start MOD06_0224EC28
MOD06_0224EC28: ; 0x0224EC28
ldr r0, [r0, #4]
- ldr r3, _0224EC34 ; =0x021D8025
+ ldr r3, _0224EC34 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _0224EC38 ; =0x022521A4
bx r3
nop
-_0224EC34: .word 0x021D8025
+_0224EC34: .word MOD05_021D8024
_0224EC38: .word 0x022521A4
thumb_func_start MOD06_0224EC3C
MOD06_0224EC3C: ; 0x0224EC3C
- ldr r3, _0224EC40 ; =0x021D80A5
+ ldr r3, _0224EC40 ; =MOD05_021D80A4
bx r3
.align 2, 0
-_0224EC40: .word 0x021D80A5
+_0224EC40: .word MOD05_021D80A4
thumb_func_start MOD06_0224EC44
MOD06_0224EC44: ; 0x0224EC44
@@ -43949,20 +43949,20 @@ MOD06_0224ED84: ; 0x0224ED84
thumb_func_start MOD06_0224ED94
MOD06_0224ED94: ; 0x0224ED94
ldr r0, [r0, #4]
- ldr r3, _0224EDA0 ; =0x021D8025
+ ldr r3, _0224EDA0 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _0224EDA4 ; =0x022521BC
bx r3
nop
-_0224EDA0: .word 0x021D8025
+_0224EDA0: .word MOD05_021D8024
_0224EDA4: .word 0x022521BC
thumb_func_start MOD06_0224EDA8
MOD06_0224EDA8: ; 0x0224EDA8
- ldr r3, _0224EDAC ; =0x021D80A5
+ ldr r3, _0224EDAC ; =MOD05_021D80A4
bx r3
.align 2, 0
-_0224EDAC: .word 0x021D80A5
+_0224EDAC: .word MOD05_021D80A4
thumb_func_start MOD06_0224EDB0
MOD06_0224EDB0: ; 0x0224EDB0
@@ -44373,20 +44373,20 @@ _0224F0AC:
thumb_func_start MOD06_0224F0BC
MOD06_0224F0BC: ; 0x0224F0BC
ldr r0, [r0, #4]
- ldr r3, _0224F0C8 ; =0x021D8025
+ ldr r3, _0224F0C8 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _0224F0CC ; =0x022521EC
bx r3
nop
-_0224F0C8: .word 0x021D8025
+_0224F0C8: .word MOD05_021D8024
_0224F0CC: .word 0x022521EC
thumb_func_start MOD06_0224F0D0
MOD06_0224F0D0: ; 0x0224F0D0
- ldr r3, _0224F0D4 ; =0x021D80A5
+ ldr r3, _0224F0D4 ; =MOD05_021D80A4
bx r3
.align 2, 0
-_0224F0D4: .word 0x021D80A5
+_0224F0D4: .word MOD05_021D80A4
thumb_func_start MOD06_0224F0D8
MOD06_0224F0D8: ; 0x0224F0D8
diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s
index ec645354..77a1f93f 100644
--- a/arm9/modules/08/asm/module_08.s
+++ b/arm9/modules/08/asm/module_08.s
@@ -1003,13 +1003,13 @@ _02212544:
thumb_func_start MOD08_0221255C
MOD08_0221255C: ; 0x0221255C
- ldr r3, _02212568 ; =0x0200CA45
+ ldr r3, _02212568 ; =FUN_0200CA44
str r0, [r1, #0x38]
ldr r0, _0221256C ; =MOD08_02212574
ldr r2, _02212570 ; =0x0000044C
bx r3
nop
-_02212568: .word 0x0200CA45
+_02212568: .word FUN_0200CA44
_0221256C: .word MOD08_02212574
_02212570: .word 0x0000044C
@@ -6040,7 +6040,7 @@ MOD08_02214B38: ; 0x02214B38
thumb_func_start MOD08_02214B3C
MOD08_02214B3C: ; 0x02214B3C
ldr r1, [r0, #0x18]
- ldr r3, _02214B50 ; =0x020054C9
+ ldr r3, _02214B50 ; =FUN_020054C8
add r1, r1, #4
str r1, [r0, #0x18]
ldr r2, [r1]
@@ -6050,12 +6050,12 @@ MOD08_02214B3C: ; 0x02214B3C
lsr r0, r0, #0x10
bx r3
.align 2, 0
-_02214B50: .word 0x020054C9
+_02214B50: .word FUN_020054C8
thumb_func_start MOD08_02214B54
MOD08_02214B54: ; 0x02214B54
ldr r1, [r0, #0x18]
- ldr r3, _02214B6C ; =0x020054F1
+ ldr r3, _02214B6C ; =FUN_020054F0
add r1, r1, #4
str r1, [r0, #0x18]
ldr r2, [r1]
@@ -6066,7 +6066,7 @@ MOD08_02214B54: ; 0x02214B54
mov r1, #0
bx r3
nop
-_02214B6C: .word 0x020054F1
+_02214B6C: .word FUN_020054F0
thumb_func_start MOD08_02214B70
MOD08_02214B70: ; 0x02214B70
@@ -7001,18 +7001,18 @@ MOD08_02215284: ; 0x02215284
add r2, r0, r2
mov r0, #0x4f
lsl r0, r0, #2
- ldr r3, _022152A4 ; =0x0200C645
+ ldr r3, _022152A4 ; =FUN_0200C644
ldr r0, [r2, r0]
bx r3
.align 2, 0
-_022152A4: .word 0x0200C645
+_022152A4: .word FUN_0200C644
thumb_func_start MOD08_022152A8
MOD08_022152A8: ; 0x022152A8
- ldr r3, _022152AC ; =0x02020C2D
+ ldr r3, _022152AC ; =ErrorHandling
bx r3
.align 2, 0
-_022152AC: .word 0x02020C2D
+_022152AC: .word ErrorHandling
thumb_func_start MOD08_022152B0
MOD08_022152B0: ; 0x022152B0
@@ -8148,10 +8148,10 @@ MOD08_02215ACC: ; 0x02215ACC
thumb_func_start MOD08_02215AF8
MOD08_02215AF8: ; 0x02215AF8
- ldr r3, _02215AFC ; =0x02006705
+ ldr r3, _02215AFC ; =FUN_02006704
bx r3
.align 2, 0
-_02215AFC: .word 0x02006705
+_02215AFC: .word FUN_02006704
thumb_func_start MOD08_02215B00
MOD08_02215B00: ; 0x02215B00
@@ -14296,11 +14296,11 @@ MOD08_022188BC: ; 0x022188BC
thumb_func_start MOD08_022188D0
MOD08_022188D0: ; 0x022188D0
- ldr r3, _022188D8 ; =0x02012B69
+ ldr r3, _022188D8 ; =FUN_02012B68
ldr r0, [r0, #0x1c]
bx r3
nop
-_022188D8: .word 0x02012B69
+_022188D8: .word FUN_02012B68
thumb_func_start MOD08_022188DC
MOD08_022188DC: ; 0x022188DC
@@ -32594,19 +32594,19 @@ _02221D98:
thumb_func_start MOD08_02221DF0
MOD08_02221DF0: ; 0x02221DF0
- ldr r3, _02221DF8 ; =0x0200C3DD
+ ldr r3, _02221DF8 ; =FUN_0200C3DC
ldr r0, [r0]
bx r3
nop
-_02221DF8: .word 0x0200C3DD
+_02221DF8: .word FUN_0200C3DC
thumb_func_start MOD08_02221DFC
MOD08_02221DFC: ; 0x02221DFC
- ldr r3, _02221E04 ; =0x0200C645
+ ldr r3, _02221E04 ; =FUN_0200C644
ldr r0, [r0]
bx r3
nop
-_02221E04: .word 0x0200C645
+_02221E04: .word FUN_0200C644
thumb_func_start MOD08_02221E08
MOD08_02221E08: ; 0x02221E08
@@ -34855,11 +34855,11 @@ _022230D4: .word 0xBF800000
thumb_func_start MOD08_022230D8
MOD08_022230D8: ; 0x022230D8
- ldr r3, _022230E0 ; =0x0200C3DD
+ ldr r3, _022230E0 ; =FUN_0200C3DC
ldr r0, [r0]
bx r3
nop
-_022230E0: .word 0x0200C3DD
+_022230E0: .word FUN_0200C3DC
thumb_func_start MOD08_022230E4
MOD08_022230E4: ; 0x022230E4
@@ -44142,11 +44142,11 @@ _02227B4E:
thumb_func_start MOD08_02227B64
MOD08_02227B64: ; 0x02227B64
- ldr r3, _02227B6C ; =0x0200C7A1
+ ldr r3, _02227B6C ; =FUN_0200C7A0
add r2, r1, #2
bx r3
nop
-_02227B6C: .word 0x0200C7A1
+_02227B6C: .word FUN_0200C7A0
thumb_func_start MOD08_02227B70
MOD08_02227B70: ; 0x02227B70
@@ -45529,10 +45529,10 @@ _02228616:
thumb_func_start MOD08_02228618
MOD08_02228618: ; 0x02228618
- ldr r3, _0222861C ; =0x02016A19
+ ldr r3, _0222861C ; =FUN_02016A18
bx r3
.align 2, 0
-_0222861C: .word 0x02016A19
+_0222861C: .word FUN_02016A18
thumb_func_start MOD08_02228620
MOD08_02228620: ; 0x02228620
@@ -45972,10 +45972,10 @@ _0222896C:
thumb_func_start MOD08_02228970
MOD08_02228970: ; 0x02228970
- ldr r3, _02228974 ; =0x02016A19
+ ldr r3, _02228974 ; =FUN_02016A18
bx r3
.align 2, 0
-_02228974: .word 0x02016A19
+_02228974: .word FUN_02016A18
thumb_func_start MOD08_02228978
MOD08_02228978: ; 0x02228978
@@ -48264,12 +48264,12 @@ MOD08_02229A5C: ; 0x02229A5C
add r1, r2, #0
str r0, [r2, #0x1c]
ldr r0, [r2, #0x30]
- ldr r3, _02229A7C ; =0x0200C7A1
+ ldr r3, _02229A7C ; =FUN_0200C7A0
add r1, #0xb8
add r2, #0xba
bx r3
nop
-_02229A7C: .word 0x0200C7A1
+_02229A7C: .word FUN_0200C7A0
thumb_func_start MOD08_02229A80
MOD08_02229A80: ; 0x02229A80
@@ -48971,27 +48971,27 @@ _02229FE0: .word 0x00001770
thumb_func_start MOD08_02229FE4
MOD08_02229FE4: ; 0x02229FE4
- ldr r3, _02229FEC ; =0x0200C645
+ ldr r3, _02229FEC ; =FUN_0200C644
ldr r0, [r0, #0x30]
bx r3
nop
-_02229FEC: .word 0x0200C645
+_02229FEC: .word FUN_0200C644
thumb_func_start MOD08_02229FF0
MOD08_02229FF0: ; 0x02229FF0
- ldr r3, _02229FF8 ; =0x0200C715
+ ldr r3, _02229FF8 ; =FUN_0200C714
ldr r0, [r0, #0x30]
bx r3
nop
-_02229FF8: .word 0x0200C715
+_02229FF8: .word FUN_0200C714
thumb_func_start MOD08_02229FFC
MOD08_02229FFC: ; 0x02229FFC
- ldr r3, _0222A004 ; =0x0200C899
+ ldr r3, _0222A004 ; =FUN_0200C898
ldr r0, [r0, #0x30]
bx r3
nop
-_0222A004: .word 0x0200C899
+_0222A004: .word FUN_0200C898
thumb_func_start MOD08_0222A008
MOD08_0222A008: ; 0x0222A008
@@ -49000,19 +49000,19 @@ MOD08_0222A008: ; 0x0222A008
thumb_func_start MOD08_0222A00C
MOD08_0222A00C: ; 0x0222A00C
- ldr r3, _0222A014 ; =0x0200C6C5
+ ldr r3, _0222A014 ; =FUN_0200C6C4
ldr r0, [r0, #0x30]
bx r3
nop
-_0222A014: .word 0x0200C6C5
+_0222A014: .word FUN_0200C6C4
thumb_func_start MOD08_0222A018
MOD08_0222A018: ; 0x0222A018
- ldr r3, _0222A020 ; =0x0200C6B1
+ ldr r3, _0222A020 ; =FUN_0200C6B0
ldr r0, [r0, #0x30]
bx r3
nop
-_0222A020: .word 0x0200C6B1
+_0222A020: .word FUN_0200C6B0
thumb_func_start MOD08_0222A024
MOD08_0222A024: ; 0x0222A024
@@ -49325,10 +49325,10 @@ _0222A24E:
thumb_func_start MOD08_0222A258
MOD08_0222A258: ; 0x0222A258
- ldr r3, _0222A25C ; =0x0201341D
+ ldr r3, _0222A25C ; =FUN_0201341C
bx r3
.align 2, 0
-_0222A25C: .word 0x0201341D
+_0222A25C: .word FUN_0201341C
thumb_func_start MOD08_0222A260
MOD08_0222A260: ; 0x0222A260
diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s
index 04792e97..27a9c5be 100644
--- a/arm9/modules/09/asm/module_09.s
+++ b/arm9/modules/09/asm/module_09.s
@@ -2950,11 +2950,11 @@ _02213610: .word 0x00002088
thumb_func_start MOD09_02213614
MOD09_02213614: ; 0x02213614
- ldr r3, _0221361C ; =0x02020989
+ ldr r3, _0221361C ; =FUN_02020988
add r0, r1, #0
bx r3
nop
-_0221361C: .word 0x02020989
+_0221361C: .word FUN_02020988
thumb_func_start MOD09_02213620
MOD09_02213620: ; 0x02213620
@@ -3742,10 +3742,10 @@ _02213C1C:
add r0, r1, r0
ldrh r0, [r0, #0x34]
_02213C2A:
- ldr r3, _02213C30 ; =0x0206EA55
+ ldr r3, _02213C30 ; =FUN_0206EA54
bx r3
nop
-_02213C30: .word 0x0206EA55
+_02213C30: .word FUN_0206EA54
thumb_func_start MOD09_02213C34
MOD09_02213C34: ; 0x02213C34
@@ -3969,12 +3969,12 @@ MOD09_02213DE0: ; 0x02213DE0
add r2, r0, #0
ldr r0, [r2, r1]
add r1, r1, #4
- ldr r3, _02213DF4 ; =0x020191A5
+ ldr r3, _02213DF4 ; =FUN_020191A4
ldrb r1, [r2, r1]
bx r3
nop
_02213DF0: .word 0x00002070
-_02213DF4: .word 0x020191A5
+_02213DF4: .word FUN_020191A4
thumb_func_start MOD09_02213DF8
MOD09_02213DF8: ; 0x02213DF8
@@ -14263,11 +14263,11 @@ _02219420: .word 0x0000114C
thumb_func_start MOD09_02219424
MOD09_02219424: ; 0x02219424
- ldr r3, _0221942C ; =0x02020989
+ ldr r3, _0221942C ; =FUN_02020988
add r0, r1, #0
bx r3
nop
-_0221942C: .word 0x02020989
+_0221942C: .word FUN_02020988
thumb_func_start MOD09_02219430
MOD09_02219430: ; 0x02219430
@@ -14391,11 +14391,11 @@ MOD09_02219510: ; 0x02219510
add r1, r0, #0
ldr r0, [r1, #0x2c]
add r1, #0x30
- ldr r3, _0221951C ; =0x020191A5
+ ldr r3, _0221951C ; =FUN_020191A4
ldrb r1, [r1]
bx r3
.align 2, 0
-_0221951C: .word 0x020191A5
+_0221951C: .word FUN_020191A4
thumb_func_start MOD09_02219520
MOD09_02219520: ; 0x02219520
@@ -17275,10 +17275,10 @@ _0221AC12:
thumb_func_start MOD09_0221AC1C
MOD09_0221AC1C: ; 0x0221AC1C
- ldr r3, _0221AC20 ; =0x02016A19
+ ldr r3, _0221AC20 ; =FUN_02016A18
bx r3
.align 2, 0
-_0221AC20: .word 0x02016A19
+_0221AC20: .word FUN_02016A18
thumb_func_start MOD09_0221AC24
MOD09_0221AC24: ; 0x0221AC24
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s
index 37f1b829..9112a837 100644
--- a/arm9/modules/11/asm/module_11.s
+++ b/arm9/modules/11/asm/module_11.s
@@ -3053,10 +3053,10 @@ _0222EFD0: .word 0x04000580
thumb_func_start MOD11_0222EFD4
MOD11_0222EFD4: ; 0x0222EFD4
- ldr r3, _0222EFD8 ; =0x020223BD
+ ldr r3, _0222EFD8 ; =FUN_020223BC
bx r3
.align 2, 0
-_0222EFD8: .word 0x020223BD
+_0222EFD8: .word FUN_020223BC
thumb_func_start MOD11_0222EFDC
MOD11_0222EFDC: ; 0x0222EFDC
@@ -5432,11 +5432,11 @@ MOD11_02230218: ; 0x02230218
MOD11_0223021C: ; 0x0223021C
lsl r1, r1, #2
add r0, r0, r1
- ldr r3, _02230228 ; =0x020239CD
+ ldr r3, _02230228 ; =FUN_020239CC
ldr r0, [r0, #0x48]
bx r3
nop
-_02230228: .word 0x020239CD
+_02230228: .word FUN_020239CC
thumb_func_start MOD11_0223022C
MOD11_0223022C: ; 0x0223022C
@@ -7002,11 +7002,11 @@ _02230E40:
MOD11_02230E44: ; 0x02230E44
mov r1, #0x6d
lsl r1, r1, #2
- ldr r3, _02230E50 ; =0x02025085
+ ldr r3, _02230E50 ; =FUN_02025084
ldr r0, [r0, r1]
bx r3
nop
-_02230E50: .word 0x02025085
+_02230E50: .word FUN_02025084
thumb_func_start MOD11_02230E54
MOD11_02230E54: ; 0x02230E54
@@ -7029,11 +7029,11 @@ _02230E62:
MOD11_02230E70: ; 0x02230E70
mov r1, #0x6d
lsl r1, r1, #2
- ldr r3, _02230E7C ; =0x02025049
+ ldr r3, _02230E7C ; =FUN_02025048
ldr r0, [r0, r1]
bx r3
nop
-_02230E7C: .word 0x02025049
+_02230E7C: .word FUN_02025048
thumb_func_start MOD11_02230E80
MOD11_02230E80: ; 0x02230E80
@@ -7605,22 +7605,22 @@ _02231288: .word 0x0000242C
MOD11_0223128C: ; 0x0223128C
mov r2, #0x86
lsl r2, r2, #2
- ldr r3, _02231298 ; =0x0202A0E9
+ ldr r3, _02231298 ; =FUN_0202A0E8
ldr r0, [r0, r2]
bx r3
nop
-_02231298: .word 0x0202A0E9
+_02231298: .word FUN_0202A0E8
thumb_func_start MOD11_0223129C
MOD11_0223129C: ; 0x0223129C
mov r1, #0x86
lsl r1, r1, #2
ldr r0, [r0, r1]
- ldr r3, _022312A8 ; =0x0202A171
+ ldr r3, _022312A8 ; =FUN_0202A170
mov r1, #0x16
bx r3
.align 2, 0
-_022312A8: .word 0x0202A171
+_022312A8: .word FUN_0202A170
thumb_func_start MOD11_022312AC
MOD11_022312AC: ; 0x022312AC
@@ -8186,13 +8186,13 @@ _02231664:
thumb_func_start MOD11_02231668
MOD11_02231668: ; 0x02231668
- ldr r3, _02231674 ; =0x02024595
+ ldr r3, _02231674 ; =FUN_02024594
lsl r1, r1, #0x10
ldr r0, [r0, #0x60]
lsr r1, r1, #0x10
bx r3
nop
-_02231674: .word 0x02024595
+_02231674: .word FUN_02024594
thumb_func_start MOD11_02231678
MOD11_02231678: ; 0x02231678
@@ -9450,19 +9450,19 @@ MOD11_022320C8: ; 0x022320C8
thumb_func_start MOD11_022320EC
MOD11_022320EC: ; 0x022320EC
- ldr r3, _022320F4 ; =0x0200AD5D
+ ldr r3, _022320F4 ; =FUN_0200AD5C
ldr r0, [r0, #0x14]
bx r3
nop
-_022320F4: .word 0x0200AD5D
+_022320F4: .word FUN_0200AD5C
thumb_func_start MOD11_022320F8
MOD11_022320F8: ; 0x022320F8
- ldr r3, _02232100 ; =0x0200AE39
+ ldr r3, _02232100 ; =FUN_0200AE38
ldr r0, [r0, #0x14]
bx r3
nop
-_02232100: .word 0x0200AE39
+_02232100: .word FUN_0200AE38
thumb_func_start MOD11_02232104
MOD11_02232104: ; 0x02232104
@@ -9504,35 +9504,35 @@ _02232134:
thumb_func_start MOD11_02232148
MOD11_02232148: ; 0x02232148
- ldr r3, _02232150 ; =0x0200AF19
+ ldr r3, _02232150 ; =FUN_0200AF18
ldr r0, [r0, #0x14]
bx r3
nop
-_02232150: .word 0x0200AF19
+_02232150: .word FUN_0200AF18
thumb_func_start MOD11_02232154
MOD11_02232154: ; 0x02232154
- ldr r3, _0223215C ; =0x0200ADCD
+ ldr r3, _0223215C ; =FUN_0200ADCC
ldr r0, [r0, #0x14]
bx r3
nop
-_0223215C: .word 0x0200ADCD
+_0223215C: .word FUN_0200ADCC
thumb_func_start MOD11_02232160
MOD11_02232160: ; 0x02232160
- ldr r3, _02232168 ; =0x0200AF51
+ ldr r3, _02232168 ; =FUN_0200AF50
ldr r0, [r0, #0x14]
bx r3
nop
-_02232168: .word 0x0200AF51
+_02232168: .word FUN_0200AF50
thumb_func_start MOD11_0223216C
MOD11_0223216C: ; 0x0223216C
- ldr r3, _02232174 ; =0x0200AF89
+ ldr r3, _02232174 ; =FUN_0200AF88
ldr r0, [r0, #0x14]
bx r3
nop
-_02232174: .word 0x0200AF89
+_02232174: .word FUN_0200AF88
thumb_func_start MOD11_02232178
MOD11_02232178: ; 0x02232178
@@ -9560,11 +9560,11 @@ MOD11_0223219C: ; 0x0223219C
thumb_func_start MOD11_022321A0
MOD11_022321A0: ; 0x022321A0
- ldr r3, _022321A8 ; =0x0200AFBD
+ ldr r3, _022321A8 ; =FUN_0200AFBC
ldr r0, [r0, #0x14]
bx r3
nop
-_022321A8: .word 0x0200AFBD
+_022321A8: .word FUN_0200AFBC
thumb_func_start MOD11_022321AC
MOD11_022321AC: ; 0x022321AC
@@ -91571,11 +91571,11 @@ _0225A3F0: .word MOD11_0225A3F4
thumb_func_start MOD11_0225A3F4
MOD11_0225A3F4: ; 0x0225A3F4
- ldr r3, _0225A3FC ; =0x0200C5A9
+ ldr r3, _0225A3FC ; =FUN_0200C5A8
add r0, r1, #0
bx r3
nop
-_0225A3FC: .word 0x0200C5A9
+_0225A3FC: .word FUN_0200C5A8
thumb_func_start MOD11_0225A400
MOD11_0225A400: ; 0x0225A400
@@ -98209,12 +98209,12 @@ _0225D650:
thumb_func_start MOD11_0225D664
MOD11_0225D664: ; 0x0225D664
- ldr r3, _0225D66C ; =0x0200C645
+ ldr r3, _0225D66C ; =FUN_0200C644
ldr r0, [r0, #0x10]
mov r1, #0
bx r3
.align 2, 0
-_0225D66C: .word 0x0200C645
+_0225D66C: .word FUN_0200C644
thumb_func_start MOD11_0225D670
MOD11_0225D670: ; 0x0225D670
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s
index cb6807a6..f7999898 100644
--- a/arm9/modules/12/asm/module_12.s
+++ b/arm9/modules/12/asm/module_12.s
@@ -4162,12 +4162,12 @@ _0222F820: .word 0x000080EA
thumb_func_start MOD12_0222F824
MOD12_0222F824: ; 0x0222F824
- ldr r3, _0222F82C ; =0x0200C369
+ ldr r3, _0222F82C ; =FUN_0200C368
ldr r0, [r0, #0x2c]
ldr r1, _0222F830 ; =0x000080EA
bx r3
.align 2, 0
-_0222F82C: .word 0x0200C369
+_0222F82C: .word FUN_0200C368
_0222F830: .word 0x000080EA
thumb_func_start MOD12_0222F834
@@ -5933,10 +5933,10 @@ MOD12_022306A4: ; 0x022306A4
thumb_func_start MOD12_022306F0
MOD12_022306F0: ; 0x022306F0
- ldr r3, _022306F4 ; =0x02012CC9
+ ldr r3, _022306F4 ; =FUN_02012CC8
bx r3
.align 2, 0
-_022306F4: .word 0x02012CC9
+_022306F4: .word FUN_02012CC8
thumb_func_start MOD12_022306F8
MOD12_022306F8: ; 0x022306F8
@@ -7537,10 +7537,10 @@ _02231374: .word 0x04000580
thumb_func_start MOD12_02231378
MOD12_02231378: ; 0x02231378
- ldr r3, _0223137C ; =0x020223BD
+ ldr r3, _0223137C ; =FUN_020223BC
bx r3
.align 2, 0
-_0223137C: .word 0x020223BD
+_0223137C: .word FUN_020223BC
thumb_func_start MOD12_02231380
MOD12_02231380: ; 0x02231380
@@ -7680,12 +7680,12 @@ MOD12_02231490: ; 0x02231490
lsr r3, r3, #1
sub r1, r1, r3
_0223149A:
- ldr r3, _022314A4 ; =0x020118C5
+ ldr r3, _022314A4 ; =FUN_020118C4
ldr r0, [r0]
sub r2, #8
bx r3
nop
-_022314A4: .word 0x020118C5
+_022314A4: .word FUN_020118C4
thumb_func_start MOD12_022314A8
MOD12_022314A8: ; 0x022314A8
@@ -11875,10 +11875,10 @@ _02233498: .word 0x000080F6
thumb_func_start MOD12_0223349C
MOD12_0223349C: ; 0x0223349C
- ldr r3, _022334A0 ; =0x0200C3DD
+ ldr r3, _022334A0 ; =FUN_0200C3DC
bx r3
.align 2, 0
-_022334A0: .word 0x0200C3DD
+_022334A0: .word FUN_0200C3DC
thumb_func_start MOD12_022334A4
MOD12_022334A4: ; 0x022334A4
@@ -11953,10 +11953,10 @@ _02233530: .word 0x0224519C
thumb_func_start MOD12_02233534
MOD12_02233534: ; 0x02233534
- ldr r3, _02233538 ; =0x0200C3DD
+ ldr r3, _02233538 ; =FUN_0200C3DC
bx r3
.align 2, 0
-_02233538: .word 0x0200C3DD
+_02233538: .word FUN_0200C3DC
thumb_func_start MOD12_0223353C
MOD12_0223353C: ; 0x0223353C
@@ -12621,10 +12621,10 @@ _02233A60: .word 0x0224533C
thumb_func_start MOD12_02233A64
MOD12_02233A64: ; 0x02233A64
- ldr r3, _02233A68 ; =0x0200C3DD
+ ldr r3, _02233A68 ; =FUN_0200C3DC
bx r3
.align 2, 0
-_02233A68: .word 0x0200C3DD
+_02233A68: .word FUN_0200C3DC
thumb_func_start MOD12_02233A6C
MOD12_02233A6C: ; 0x02233A6C
@@ -25566,12 +25566,12 @@ _02239B78: .word 0x02245F4A
thumb_func_start MOD12_02239B7C
MOD12_02239B7C: ; 0x02239B7C
- ldr r3, _02239B84 ; =0x0201BD71
+ ldr r3, _02239B84 ; =FUN_0201BD70
add r0, #0xd0
ldrb r0, [r0]
bx r3
.align 2, 0
-_02239B84: .word 0x0201BD71
+_02239B84: .word FUN_0201BD70
thumb_func_start MOD12_02239B88
MOD12_02239B88: ; 0x02239B88
@@ -31736,11 +31736,11 @@ _0223CB14: .word 0x00009CAE
MOD12_0223CB18: ; 0x0223CB18
mov r1, #2
lsl r1, r1, #8
- ldr r3, _0223CB24 ; =0x0200CAB5
+ ldr r3, _0223CB24 ; =FUN_0200CAB4
ldr r0, [r0, r1]
bx r3
nop
-_0223CB24: .word 0x0200CAB5
+_0223CB24: .word FUN_0200CAB4
thumb_func_start MOD12_0223CB28
MOD12_0223CB28: ; 0x0223CB28
@@ -34820,12 +34820,12 @@ _0223E2A4: .word 0x02246226
thumb_func_start MOD12_0223E2A8
MOD12_0223E2A8: ; 0x0223E2A8
ldr r1, _0223E2B0 ; =0x00000AB8
- ldr r3, _0223E2B4 ; =0x0201BD71
+ ldr r3, _0223E2B4 ; =FUN_0201BD70
ldrb r0, [r0, r1]
bx r3
.align 2, 0
_0223E2B0: .word 0x00000AB8
-_0223E2B4: .word 0x0201BD71
+_0223E2B4: .word FUN_0201BD70
thumb_func_start MOD12_0223E2B8
MOD12_0223E2B8: ; 0x0223E2B8
@@ -34963,11 +34963,11 @@ _0223E3CA:
strb r0, [r1, #0xc]
_0223E3CE:
ldr r0, [r1, #4]
- ldr r3, _0223E3D8 ; =0x0200C59D
+ ldr r3, _0223E3D8 ; =FUN_0200C59C
ldr r0, [r0]
bx r3
nop
-_0223E3D8: .word 0x0200C59D
+_0223E3D8: .word FUN_0200C59C
thumb_func_start MOD12_0223E3DC
MOD12_0223E3DC: ; 0x0223E3DC
@@ -35014,12 +35014,12 @@ _0223E438: .word 0x00027100
thumb_func_start MOD12_0223E43C
MOD12_0223E43C: ; 0x0223E43C
- ldr r3, _0223E444 ; =0x0200C645
+ ldr r3, _0223E444 ; =FUN_0200C644
ldr r0, [r0, #4]
mov r1, #0
bx r3
.align 2, 0
-_0223E444: .word 0x0200C645
+_0223E444: .word FUN_0200C644
thumb_func_start MOD12_0223E448
MOD12_0223E448: ; 0x0223E448
@@ -40568,10 +40568,10 @@ MOD12_02240E34: ; 0x02240E34
thumb_func_start MOD12_02240E7C
MOD12_02240E7C: ; 0x02240E7C
- ldr r3, _02240E80 ; =0x0200C359
+ ldr r3, _02240E80 ; =FUN_0200C358
bx r3
.align 2, 0
-_02240E80: .word 0x0200C359
+_02240E80: .word FUN_0200C358
thumb_func_start MOD12_02240E84
MOD12_02240E84: ; 0x02240E84
@@ -40612,10 +40612,10 @@ _02240EA6:
thumb_func_start MOD12_02240EC8
MOD12_02240EC8: ; 0x02240EC8
- ldr r3, _02240ECC ; =0x0200C3DD
+ ldr r3, _02240ECC ; =FUN_0200C3DC
bx r3
.align 2, 0
-_02240ECC: .word 0x0200C3DD
+_02240ECC: .word FUN_0200C3DC
thumb_func_start MOD12_02240ED0
MOD12_02240ED0: ; 0x02240ED0
@@ -43608,11 +43608,11 @@ _022426A8: .word 0x0224664E
MOD12_022426AC: ; 0x022426AC
mov r1, #0xe6
lsl r1, r1, #2
- ldr r3, _022426B8 ; =0x0201BD71
+ ldr r3, _022426B8 ; =FUN_0201BD70
ldrb r0, [r0, r1]
bx r3
nop
-_022426B8: .word 0x0201BD71
+_022426B8: .word FUN_0201BD70
thumb_func_start MOD12_022426BC
MOD12_022426BC: ; 0x022426BC
diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s
index 1ace4733..e725bfc5 100644
--- a/arm9/modules/14/asm/module_14.s
+++ b/arm9/modules/14/asm/module_14.s
@@ -7805,11 +7805,11 @@ MOD14_021DB470: ; 0x021DB470
thumb_func_start MOD14_021DB490
MOD14_021DB490: ; 0x021DB490
- ldr r3, _021DB498 ; =0x02016A19
+ ldr r3, _021DB498 ; =FUN_02016A18
ldr r0, [r0]
bx r3
nop
-_021DB498: .word 0x02016A19
+_021DB498: .word FUN_02016A18
thumb_func_start MOD14_021DB49C
MOD14_021DB49C: ; 0x021DB49C
@@ -7829,11 +7829,11 @@ MOD14_021DB49C: ; 0x021DB49C
thumb_func_start MOD14_021DB4BC
MOD14_021DB4BC: ; 0x021DB4BC
- ldr r3, _021DB4C4 ; =0x02021A21
+ ldr r3, _021DB4C4 ; =FUN_02021A20
ldr r0, [r0, #4]
bx r3
nop
-_021DB4C4: .word 0x02021A21
+_021DB4C4: .word FUN_02021A20
thumb_func_start MOD14_021DB4C8
MOD14_021DB4C8: ; 0x021DB4C8
@@ -9849,11 +9849,11 @@ MOD14_021DC3AC: ; 0x021DC3AC
MOD14_021DC3B4: ; 0x021DC3B4
mov r1, #0x69
lsl r1, r1, #2
- ldr r3, _021DC3C0 ; =0x02025085
+ ldr r3, _021DC3C0 ; =FUN_02025084
ldr r0, [r0, r1]
bx r3
nop
-_021DC3C0: .word 0x02025085
+_021DC3C0: .word FUN_02025084
thumb_func_start MOD14_021DC3C4
MOD14_021DC3C4: ; 0x021DC3C4
@@ -13176,10 +13176,10 @@ _021DDD3C:
thumb_func_start MOD14_021DDD40
MOD14_021DDD40: ; 0x021DDD40
- ldr r3, _021DDD44 ; =0x0200CA61
+ ldr r3, _021DDD44 ; =FUN_0200CA60
bx r3
.align 2, 0
-_021DDD44: .word 0x0200CA61
+_021DDD44: .word FUN_0200CA60
thumb_func_start MOD14_021DDD48
MOD14_021DDD48: ; 0x021DDD48
@@ -17686,12 +17686,12 @@ _021E0024:
thumb_func_start MOD14_021E002C
MOD14_021E002C: ; 0x021E002C
- ldr r3, _021E0034 ; =0x02020131
+ ldr r3, _021E0034 ; =FUN_02020130
ldr r0, [r0, #4]
mov r1, #1
bx r3
.align 2, 0
-_021E0034: .word 0x02020131
+_021E0034: .word FUN_02020130
thumb_func_start MOD14_021E0038
MOD14_021E0038: ; 0x021E0038
@@ -19244,11 +19244,11 @@ _021E0C64:
_021E0C66:
ldr r0, [r1]
ldrh r1, [r1, #0x2c]
- ldr r3, _021E0C70 ; =0x02020249
+ ldr r3, _021E0C70 ; =FUN_02020248
add r1, r1, r2
bx r3
.align 2, 0
-_021E0C70: .word 0x02020249
+_021E0C70: .word FUN_02020248
thumb_func_start MOD14_021E0C74
MOD14_021E0C74: ; 0x021E0C74
@@ -27001,12 +27001,12 @@ _021E4762:
thumb_func_start MOD14_021E4764
MOD14_021E4764: ; 0x021E4764
- ldr r3, _021E476C ; =0x0201797D
+ ldr r3, _021E476C ; =FUN_0201797C
mov r0, #4
mov r1, #0
bx r3
.align 2, 0
-_021E476C: .word 0x0201797D
+_021E476C: .word FUN_0201797C
thumb_func_start MOD14_021E4770
MOD14_021E4770: ; 0x021E4770
diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s
index 8659bfeb..88e9d55a 100644
--- a/arm9/modules/15/asm/module_15.s
+++ b/arm9/modules/15/asm/module_15.s
@@ -2402,11 +2402,11 @@ MOD15_021D86E4: ; 0x021D86E4
thumb_func_start MOD15_021D86E8
MOD15_021D86E8: ; 0x021D86E8
- ldr r3, _021D86F0 ; =0x02085411
+ ldr r3, _021D86F0 ; =FUN_02085410
ldr r0, [r0]
bx r3
nop
-_021D86F0: .word 0x02085411
+_021D86F0: .word FUN_02085410
thumb_func_start MOD15_021D86F4
MOD15_021D86F4: ; 0x021D86F4
@@ -2417,11 +2417,11 @@ MOD15_021D86F4: ; 0x021D86F4
thumb_func_start MOD15_021D86FC
MOD15_021D86FC: ; 0x021D86FC
- ldr r3, _021D8704 ; =0x02013921
+ ldr r3, _021D8704 ; =FUN_02013920
add r0, #8
bx r3
nop
-_021D8704: .word 0x02013921
+_021D8704: .word FUN_02013920
thumb_func_start MOD15_021D8708
MOD15_021D8708: ; 0x021D8708
@@ -2440,11 +2440,11 @@ _021D8718:
thumb_func_start MOD15_021D8720
MOD15_021D8720: ; 0x021D8720
- ldr r3, _021D8728 ; =0x02013841
+ ldr r3, _021D8728 ; =FUN_02013840
add r0, #8
bx r3
nop
-_021D8728: .word 0x02013841
+_021D8728: .word FUN_02013840
thumb_func_start MOD15_021D872C
MOD15_021D872C: ; 0x021D872C
@@ -2560,11 +2560,11 @@ _021D87DC:
thumb_func_start MOD15_021D87E0
MOD15_021D87E0: ; 0x021D87E0
- ldr r3, _021D87E8 ; =0x02085415
+ ldr r3, _021D87E8 ; =FUN_02085414
ldr r0, [r0]
bx r3
nop
-_021D87E8: .word 0x02085415
+_021D87E8: .word FUN_02085414
thumb_func_start MOD15_021D87EC
MOD15_021D87EC: ; 0x021D87EC
@@ -2676,10 +2676,10 @@ _021D88CE:
thumb_func_start MOD15_021D88D0
MOD15_021D88D0: ; 0x021D88D0
- ldr r3, _021D88D4 ; =0x0200CA61
+ ldr r3, _021D88D4 ; =FUN_0200CA60
bx r3
.align 2, 0
-_021D88D4: .word 0x0200CA61
+_021D88D4: .word FUN_0200CA60
thumb_func_start MOD15_021D88D8
MOD15_021D88D8: ; 0x021D88D8
@@ -4967,11 +4967,11 @@ _021D9B2C: .word 0x0000FFFE
thumb_func_start MOD15_021D9B30
MOD15_021D9B30: ; 0x021D9B30
- ldr r3, _021D9B38 ; =0x02021A21
+ ldr r3, _021D9B38 ; =FUN_02021A20
ldr r0, [r0]
bx r3
nop
-_021D9B38: .word 0x02021A21
+_021D9B38: .word FUN_02021A20
thumb_func_start MOD15_021D9B3C
MOD15_021D9B3C: ; 0x021D9B3C
@@ -5718,37 +5718,37 @@ MOD15_021DA0B8: ; 0x021DA0B8
thumb_func_start MOD15_021DA0F4
MOD15_021DA0F4: ; 0x021DA0F4
- ldr r3, _021DA0FC ; =0x02020131
+ ldr r3, _021DA0FC ; =FUN_02020130
ldr r0, [r0, #0xc]
mov r1, #3
bx r3
.align 2, 0
-_021DA0FC: .word 0x02020131
+_021DA0FC: .word FUN_02020130
thumb_func_start MOD15_021DA100
MOD15_021DA100: ; 0x021DA100
- ldr r3, _021DA108 ; =0x02020131
+ ldr r3, _021DA108 ; =FUN_02020130
ldr r0, [r0, #0xc]
mov r1, #2
bx r3
.align 2, 0
-_021DA108: .word 0x02020131
+_021DA108: .word FUN_02020130
thumb_func_start MOD15_021DA10C
MOD15_021DA10C: ; 0x021DA10C
- ldr r3, _021DA114 ; =0x020200A1
+ ldr r3, _021DA114 ; =FUN_020200A0
ldr r0, [r0, #0xc]
bx r3
nop
-_021DA114: .word 0x020200A1
+_021DA114: .word FUN_020200A0
thumb_func_start MOD15_021DA118
MOD15_021DA118: ; 0x021DA118
- ldr r3, _021DA120 ; =0x02020129
+ ldr r3, _021DA120 ; =FUN_02020128
ldr r0, [r0, #0xc]
bx r3
nop
-_021DA120: .word 0x02020129
+_021DA120: .word FUN_02020128
thumb_func_start MOD15_021DA124
MOD15_021DA124: ; 0x021DA124
diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s
index 77cc5176..4c66bac5 100644
--- a/arm9/modules/16/asm/module_16.s
+++ b/arm9/modules/16/asm/module_16.s
@@ -229,10 +229,10 @@ MOD16_021D7684: ; 0x021D7684
thumb_func_start MOD16_021D76A4
MOD16_021D76A4: ; 0x021D76A4
- ldr r3, _021D76A8 ; =0x0200E309
+ ldr r3, _021D76A8 ; =FUN_0200E308
bx r3
.align 2, 0
-_021D76A8: .word 0x0200E309
+_021D76A8: .word FUN_0200E308
thumb_func_end MOD16_021D76A4
thumb_func_start MOD16_021D76AC
@@ -2954,11 +2954,11 @@ _021D8B1C:
thumb_func_start MOD16_021D8B30
MOD16_021D8B30: ; 0x021D8B30
- ldr r3, _021D8B38 ; =0x02020129
+ ldr r3, _021D8B38 ; =FUN_02020128
ldr r0, [r0]
bx r3
nop
-_021D8B38: .word 0x02020129
+_021D8B38: .word FUN_02020128
thumb_func_end MOD16_021D8B30
thumb_func_start MOD16_021D8B3C
@@ -3527,11 +3527,11 @@ MOD16_021D8F60: ; 0x021D8F60
thumb_func_start MOD16_021D8F90
MOD16_021D8F90: ; 0x021D8F90
- ldr r3, _021D8F98 ; =0x02019179
+ ldr r3, _021D8F98 ; =FUN_02019178
add r0, r0, #4
bx r3
nop
-_021D8F98: .word 0x02019179
+_021D8F98: .word FUN_02019178
thumb_func_end MOD16_021D8F90
thumb_func_start MOD16_021D8F9C
@@ -4322,11 +4322,11 @@ _021D95E0: .word MOD16_021D95F4
MOD16_021D95E4: ; 0x021D95E4
mov r1, #0x9d
lsl r1, r1, #2
- ldr r3, _021D95F0 ; =0x0200CAB5
+ ldr r3, _021D95F0 ; =FUN_0200CAB4
ldr r0, [r0, r1]
bx r3
nop
-_021D95F0: .word 0x0200CAB5
+_021D95F0: .word FUN_0200CAB4
thumb_func_end MOD16_021D95E4
thumb_func_start MOD16_021D95F4
@@ -4712,13 +4712,13 @@ _021D98D8: .word 0x00001748
thumb_func_start MOD16_021D98DC
MOD16_021D98DC: ; 0x021D98DC
- ldr r3, _021D98E8 ; =0x02024675
+ ldr r3, _021D98E8 ; =FUN_02024674
lsl r1, r1, #0x10
ldr r0, [r0]
lsr r1, r1, #0x10
bx r3
nop
-_021D98E8: .word 0x02024675
+_021D98E8: .word FUN_02024674
thumb_func_end MOD16_021D98DC
thumb_func_start MOD16_021D98EC
@@ -4882,84 +4882,84 @@ _021D99F0:
thumb_func_start MOD16_021D99F4
MOD16_021D99F4: ; 0x021D99F4
- ldr r3, _021D99FC ; =0x0202471D
+ ldr r3, _021D99FC ; =FUN_0202471C
ldr r0, [r0]
bx r3
nop
-_021D99FC: .word 0x0202471D
+_021D99FC: .word FUN_0202471C
thumb_func_end MOD16_021D99F4
thumb_func_start MOD16_021D9A00
MOD16_021D9A00: ; 0x021D9A00
- ldr r3, _021D9A08 ; =0x020247A5
+ ldr r3, _021D9A08 ; =FUN_020247A4
ldr r0, [r0]
bx r3
nop
-_021D9A08: .word 0x020247A5
+_021D9A08: .word FUN_020247A4
thumb_func_end MOD16_021D9A00
thumb_func_start MOD16_021D9A0C
MOD16_021D9A0C: ; 0x021D9A0C
- ldr r3, _021D9A14 ; =0x02024829
+ ldr r3, _021D9A14 ; =FUN_02024828
ldr r0, [r0]
bx r3
nop
-_021D9A14: .word 0x02024829
+_021D9A14: .word FUN_02024828
thumb_func_end MOD16_021D9A0C
thumb_func_start MOD16_021D9A18
MOD16_021D9A18: ; 0x021D9A18
- ldr r3, _021D9A20 ; =0x0202489D
+ ldr r3, _021D9A20 ; =FUN_0202489C
ldr r0, [r0]
bx r3
nop
-_021D9A20: .word 0x0202489D
+_021D9A20: .word FUN_0202489C
thumb_func_end MOD16_021D9A18
thumb_func_start MOD16_021D9A24
MOD16_021D9A24: ; 0x021D9A24
- ldr r3, _021D9A2C ; =0x0202490D
+ ldr r3, _021D9A2C ; =FUN_0202490C
ldr r0, [r0]
bx r3
nop
-_021D9A2C: .word 0x0202490D
+_021D9A2C: .word FUN_0202490C
thumb_func_end MOD16_021D9A24
thumb_func_start MOD16_021D9A30
MOD16_021D9A30: ; 0x021D9A30
- ldr r3, _021D9A38 ; =0x02024649
+ ldr r3, _021D9A38 ; =FUN_02024648
ldr r0, [r0]
mov r1, #0
bx r3
.align 2, 0
-_021D9A38: .word 0x02024649
+_021D9A38: .word FUN_02024648
thumb_func_end MOD16_021D9A30
thumb_func_start MOD16_021D9A3C
MOD16_021D9A3C: ; 0x021D9A3C
- ldr r3, _021D9A44 ; =0x02024931
+ ldr r3, _021D9A44 ; =FUN_02024930
ldr r0, [r0]
bx r3
nop
-_021D9A44: .word 0x02024931
+_021D9A44: .word FUN_02024930
thumb_func_end MOD16_021D9A3C
thumb_func_start MOD16_021D9A48
MOD16_021D9A48: ; 0x021D9A48
- ldr r3, _021D9A50 ; =0x02024971
+ ldr r3, _021D9A50 ; =FUN_02024970
ldr r0, [r0]
bx r3
nop
-_021D9A50: .word 0x02024971
+_021D9A50: .word FUN_02024970
thumb_func_end MOD16_021D9A48
thumb_func_start MOD16_021D9A54
MOD16_021D9A54: ; 0x021D9A54
- ldr r3, _021D9A5C ; =0x02024CA5
+ ldr r3, _021D9A5C ; =FUN_02024CA4
ldr r0, [r0]
bx r3
nop
-_021D9A5C: .word 0x02024CA5
+_021D9A5C: .word FUN_02024CA4
thumb_func_end MOD16_021D9A54
thumb_func_start MOD16_021D9A60
@@ -5709,11 +5709,11 @@ _021D9F72:
thumb_func_start MOD16_021D9F80
MOD16_021D9F80: ; 0x021D9F80
- ldr r3, _021D9F88 ; =0x02024CC5
+ ldr r3, _021D9F88 ; =FUN_02024CC4
ldr r0, [r0]
bx r3
nop
-_021D9F88: .word 0x02024CC5
+_021D9F88: .word FUN_02024CC4
thumb_func_end MOD16_021D9F80
thumb_func_start MOD16_021D9F8C
@@ -8453,11 +8453,11 @@ MOD16_021DB388: ; 0x021DB388
thumb_func_start MOD16_021DB3BC
MOD16_021DB3BC: ; 0x021DB3BC
- ldr r3, _021DB3C4 ; =0x020191A5
+ ldr r3, _021DB3C4 ; =FUN_020191A4
mov r1, #1
bx r3
nop
-_021DB3C4: .word 0x020191A5
+_021DB3C4: .word FUN_020191A4
thumb_func_end MOD16_021DB3BC
thumb_func_start MOD16_021DB3C8
@@ -8590,10 +8590,10 @@ _021DB49E:
thumb_func_start MOD16_021DB4A8
MOD16_021DB4A8: ; 0x021DB4A8
- ldr r3, _021DB4AC ; =0x02016A19
+ ldr r3, _021DB4AC ; =FUN_02016A18
bx r3
.align 2, 0
-_021DB4AC: .word 0x02016A19
+_021DB4AC: .word FUN_02016A18
thumb_func_end MOD16_021DB4A8
thumb_func_start MOD16_021DB4B0
@@ -9663,22 +9663,22 @@ _021DBBA8:
thumb_func_start MOD16_021DBBAC
MOD16_021DBBAC: ; 0x021DBBAC
- ldr r3, _021DBBB0 ; =0x02021A21
+ ldr r3, _021DBBB0 ; =FUN_02021A20
bx r3
.align 2, 0
-_021DBBB0: .word 0x02021A21
+_021DBBB0: .word FUN_02021A20
thumb_func_end MOD16_021DBBAC
thumb_func_start MOD16_021DBBB4
MOD16_021DBBB4: ; 0x021DBBB4
add r1, r0, #1
ldr r0, _021DBBC0 ; =0x021FF568
- ldr r3, _021DBBC4 ; =0x02087A39
+ ldr r3, _021DBBC4 ; =FUN_02087A38
ldrb r0, [r0, r1]
bx r3
nop
_021DBBC0: .word 0x021FF568
-_021DBBC4: .word 0x02087A39
+_021DBBC4: .word FUN_02087A38
thumb_func_end MOD16_021DBBB4
thumb_func_start MOD16_021DBBC8
@@ -28228,22 +28228,22 @@ _021E4534:
thumb_func_start MOD16_021E4538
MOD16_021E4538: ; 0x021E4538
- ldr r3, _021E4540 ; =0x02020399
+ ldr r3, _021E4540 ; =FUN_02020398
ldr r0, [r0]
mov r1, #1
bx r3
.align 2, 0
-_021E4540: .word 0x02020399
+_021E4540: .word FUN_02020398
thumb_func_end MOD16_021E4538
thumb_func_start MOD16_021E4544
MOD16_021E4544: ; 0x021E4544
- ldr r3, _021E454C ; =0x02020399
+ ldr r3, _021E454C ; =FUN_02020398
ldr r0, [r0]
mov r1, #0
bx r3
.align 2, 0
-_021E454C: .word 0x02020399
+_021E454C: .word FUN_02020398
thumb_func_end MOD16_021E4544
thumb_func_start MOD16_021E4550
@@ -28576,11 +28576,11 @@ _021E47D4: .word 0x0000083F
thumb_func_start MOD16_021E47D8
MOD16_021E47D8: ; 0x021E47D8
- ldr r3, _021E47E0 ; =0x0201FFC9
+ ldr r3, _021E47E0 ; =FUN_0201FFC8
ldr r0, [r0]
bx r3
nop
-_021E47E0: .word 0x0201FFC9
+_021E47E0: .word FUN_0201FFC8
thumb_func_end MOD16_021E47D8
thumb_func_start MOD16_021E47E4
@@ -44846,13 +44846,13 @@ _021EC10C: .word 0x0000FFFF
thumb_func_start MOD16_021EC110
MOD16_021EC110: ; 0x021EC110
- ldr r3, _021EC11C ; =0x02004829
+ ldr r3, _021EC11C ; =FUN_02004828
add r1, r0, #0
mov r0, #8
mov r2, #0
bx r3
nop
-_021EC11C: .word 0x02004829
+_021EC11C: .word FUN_02004828
thumb_func_end MOD16_021EC110
thumb_func_start MOD16_021EC120
@@ -45330,22 +45330,22 @@ _021EC456:
thumb_func_start MOD16_021EC45C
MOD16_021EC45C: ; 0x021EC45C
- ldr r3, _021EC464 ; =0x02020399
+ ldr r3, _021EC464 ; =FUN_02020398
ldr r0, [r0, #0x10]
mov r1, #1
bx r3
.align 2, 0
-_021EC464: .word 0x02020399
+_021EC464: .word FUN_02020398
thumb_func_end MOD16_021EC45C
thumb_func_start MOD16_021EC468
MOD16_021EC468: ; 0x021EC468
- ldr r3, _021EC470 ; =0x02020399
+ ldr r3, _021EC470 ; =FUN_02020398
ldr r0, [r0, #0x10]
mov r1, #0
bx r3
.align 2, 0
-_021EC470: .word 0x02020399
+_021EC470: .word FUN_02020398
thumb_func_end MOD16_021EC468
thumb_func_start MOD16_021EC474
@@ -45767,11 +45767,11 @@ _021EC7D0: .word 0x00001748
thumb_func_start MOD16_021EC7D4
MOD16_021EC7D4: ; 0x021EC7D4
- ldr r3, _021EC7DC ; =0x0201FFC9
+ ldr r3, _021EC7DC ; =FUN_0201FFC8
ldr r0, [r0, #0x10]
bx r3
nop
-_021EC7DC: .word 0x0201FFC9
+_021EC7DC: .word FUN_0201FFC8
thumb_func_end MOD16_021EC7D4
thumb_func_start MOD16_021EC7E0
@@ -46079,13 +46079,13 @@ MOD16_021ECA48: ; 0x021ECA48
thumb_func_start MOD16_021ECA64
MOD16_021ECA64: ; 0x021ECA64
- ldr r3, _021ECA70 ; =0x02007559
+ ldr r3, _021ECA70 ; =FUN_02007558
add r2, r1, #0
mov r1, #1
add r2, #0x58
bx r3
nop
-_021ECA70: .word 0x02007559
+_021ECA70: .word FUN_02007558
thumb_func_end MOD16_021ECA64
thumb_func_start MOD16_021ECA74
@@ -49068,11 +49068,11 @@ MOD16_021EE110: ; 0x021EE110
thumb_func_start MOD16_021EE14C
MOD16_021EE14C: ; 0x021EE14C
- ldr r3, _021EE154 ; =0x02013EA9
+ ldr r3, _021EE154 ; =FUN_02013EA8
ldr r0, [r0, #0xc]
bx r3
nop
-_021EE154: .word 0x02013EA9
+_021EE154: .word FUN_02013EA8
thumb_func_end MOD16_021EE14C
thumb_func_start MOD16_021EE158
@@ -50660,11 +50660,11 @@ _021EECF4: .word 0x0000083F
thumb_func_start MOD16_021EECF8
MOD16_021EECF8: ; 0x021EECF8
- ldr r3, _021EED00 ; =0x0201FFC9
+ ldr r3, _021EED00 ; =FUN_0201FFC8
ldr r0, [r0]
bx r3
nop
-_021EED00: .word 0x0201FFC9
+_021EED00: .word FUN_0201FFC8
thumb_func_end MOD16_021EECF8
thumb_func_start MOD16_021EED04
@@ -51798,11 +51798,11 @@ _021EF5DA:
thumb_func_start MOD16_021EF5E0
MOD16_021EF5E0: ; 0x021EF5E0
- ldr r3, _021EF5E8 ; =0x0201FFC9
+ ldr r3, _021EF5E8 ; =FUN_0201FFC8
ldr r0, [r0]
bx r3
nop
-_021EF5E8: .word 0x0201FFC9
+_021EF5E8: .word FUN_0201FFC8
thumb_func_end MOD16_021EF5E0
thumb_func_start MOD16_021EF5EC
@@ -51848,11 +51848,11 @@ _021EF62E:
thumb_func_start MOD16_021EF63C
MOD16_021EF63C: ; 0x021EF63C
- ldr r3, _021EF644 ; =0x0201FFC9
+ ldr r3, _021EF644 ; =FUN_0201FFC8
ldr r0, [r0]
bx r3
nop
-_021EF644: .word 0x0201FFC9
+_021EF644: .word FUN_0201FFC8
thumb_func_end MOD16_021EF63C
thumb_func_start MOD16_021EF648
@@ -52482,10 +52482,10 @@ _021EFB14: .word 0x00200010
thumb_func_start MOD16_021EFB18
MOD16_021EFB18: ; 0x021EFB18
- ldr r3, _021EFB1C ; =0x0201D12D
+ ldr r3, _021EFB1C ; =FUN_0201D12C
bx r3
.align 2, 0
-_021EFB1C: .word 0x0201D12D
+_021EFB1C: .word FUN_0201D12C
thumb_func_end MOD16_021EFB18
thumb_func_start MOD16_021EFB20
diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s
index b839403b..68f06a9b 100644
--- a/arm9/modules/17/asm/module_17.s
+++ b/arm9/modules/17/asm/module_17.s
@@ -159,11 +159,11 @@ MOD17_021D75DC: ; 0x021D75DC
thumb_func_start MOD17_021D75F4
MOD17_021D75F4: ; 0x021D75F4
- ldr r3, _021D75FC ; =0x02013EC5
+ ldr r3, _021D75FC ; =FUN_02013EC4
ldr r0, [r0, #4]
bx r3
nop
-_021D75FC: .word 0x02013EC5
+_021D75FC: .word FUN_02013EC4
thumb_func_end MOD17_021D75F4
thumb_func_start MOD17_021D7600
@@ -222,29 +222,29 @@ MOD17_021D7630: ; 0x021D7630
thumb_func_start MOD17_021D7660
MOD17_021D7660: ; 0x021D7660
- ldr r3, _021D7668 ; =0x02013EB1
+ ldr r3, _021D7668 ; =FUN_02013EB0
ldr r0, [r0, #4]
bx r3
nop
-_021D7668: .word 0x02013EB1
+_021D7668: .word FUN_02013EB0
thumb_func_end MOD17_021D7660
thumb_func_start MOD17_021D766C
MOD17_021D766C: ; 0x021D766C
- ldr r3, _021D7674 ; =0x02013EFD
+ ldr r3, _021D7674 ; =FUN_02013EFC
ldr r0, [r0, #4]
bx r3
nop
-_021D7674: .word 0x02013EFD
+_021D7674: .word FUN_02013EFC
thumb_func_end MOD17_021D766C
thumb_func_start MOD17_021D7678
MOD17_021D7678: ; 0x021D7678
- ldr r3, _021D7680 ; =0x02013F01
+ ldr r3, _021D7680 ; =FUN_02013F00
ldr r0, [r0, #4]
bx r3
nop
-_021D7680: .word 0x02013F01
+_021D7680: .word FUN_02013F00
thumb_func_end MOD17_021D7678
thumb_func_start MOD17_021D7684
@@ -1016,21 +1016,21 @@ MOD17_021D7BE4: ; 0x021D7BE4
thumb_func_start MOD17_021D7C10
MOD17_021D7C10: ; 0x021D7C10
- ldr r3, _021D7C18 ; =0x020178A1
+ ldr r3, _021D7C18 ; =FUN_020178A0
ldr r0, [r0, #0x38]
mov r1, #2
bx r3
.align 2, 0
-_021D7C18: .word 0x020178A1
+_021D7C18: .word FUN_020178A0
thumb_func_end MOD17_021D7C10
thumb_func_start MOD17_021D7C1C
MOD17_021D7C1C: ; 0x021D7C1C
- ldr r3, _021D7C24 ; =0x020081C5
+ ldr r3, _021D7C24 ; =FUN_020081C4
ldr r0, [r0, #0x20]
bx r3
nop
-_021D7C24: .word 0x020081C5
+_021D7C24: .word FUN_020081C4
thumb_func_end MOD17_021D7C1C
thumb_func_start MOD17_021D7C28
@@ -1330,11 +1330,11 @@ MOD17_021D7E58: ; 0x021D7E58
thumb_func_start MOD17_021D7E68
MOD17_021D7E68: ; 0x021D7E68
- ldr r3, _021D7E70 ; =0x02013D5D
+ ldr r3, _021D7E70 ; =FUN_02013D5C
ldr r0, [r0]
bx r3
nop
-_021D7E70: .word 0x02013D5D
+_021D7E70: .word FUN_02013D5C
thumb_func_end MOD17_021D7E68
thumb_func_start MOD17_021D7E74
@@ -1730,11 +1730,11 @@ _021D8178:
thumb_func_start MOD17_021D8194
MOD17_021D8194: ; 0x021D8194
- ldr r3, _021D819C ; =0x0201FDED
+ ldr r3, _021D819C ; =FUN_0201FDEC
ldr r0, [r0, #0x3c]
bx r3
nop
-_021D819C: .word 0x0201FDED
+_021D819C: .word FUN_0201FDEC
thumb_func_end MOD17_021D8194
thumb_func_start MOD17_021D81A0
@@ -1956,11 +1956,11 @@ _021D8348: .word 0xFFFF0000
thumb_func_start MOD17_021D834C
MOD17_021D834C: ; 0x021D834C
- ldr r3, _021D8354 ; =0x020072E9
+ ldr r3, _021D8354 ; =FUN_020072E8
ldr r0, [r0, #0x20]
bx r3
nop
-_021D8354: .word 0x020072E9
+_021D8354: .word FUN_020072E8
thumb_func_end MOD17_021D834C
thumb_func_start MOD17_021D8358
@@ -8952,23 +8952,23 @@ _021DB7CE:
thumb_func_start MOD17_021DB7D8
MOD17_021DB7D8: ; 0x021DB7D8
- ldr r3, _021DB7E4 ; =0x02007559
+ ldr r3, _021DB7E4 ; =FUN_02007558
add r2, r1, #0
ldr r0, [r0]
mov r1, #2
bx r3
nop
-_021DB7E4: .word 0x02007559
+_021DB7E4: .word FUN_02007558
thumb_func_end MOD17_021DB7D8
thumb_func_start MOD17_021DB7E8
MOD17_021DB7E8: ; 0x021DB7E8
- ldr r3, _021DB7F0 ; =0x0200782D
+ ldr r3, _021DB7F0 ; =FUN_0200782C
ldr r0, [r0]
mov r1, #2
bx r3
.align 2, 0
-_021DB7F0: .word 0x0200782D
+_021DB7F0: .word FUN_0200782C
thumb_func_end MOD17_021DB7E8
thumb_func_start MOD17_021DB7F4
@@ -9011,20 +9011,20 @@ MOD17_021DB7F4: ; 0x021DB7F4
thumb_func_start MOD17_021DB840
MOD17_021DB840: ; 0x021DB840
- ldr r3, _021DB848 ; =0x02020A41
+ ldr r3, _021DB848 ; =FUN_02020A40
add r0, r0, #4
bx r3
nop
-_021DB848: .word 0x02020A41
+_021DB848: .word FUN_02020A40
thumb_func_end MOD17_021DB840
thumb_func_start MOD17_021DB84C
MOD17_021DB84C: ; 0x021DB84C
- ldr r3, _021DB854 ; =0x02020AE9
+ ldr r3, _021DB854 ; =FUN_02020AE8
add r0, r0, #4
bx r3
nop
-_021DB854: .word 0x02020AE9
+_021DB854: .word FUN_02020AE8
thumb_func_end MOD17_021DB84C
thumb_func_start MOD17_021DB858
@@ -10513,32 +10513,32 @@ MOD17_021DC2DC: ; 0x021DC2DC
thumb_func_start MOD17_021DC2E0
MOD17_021DC2E0: ; 0x021DC2E0
- ldr r3, _021DC2E8 ; =0x02020209
+ ldr r3, _021DC2E8 ; =FUN_02020208
ldr r0, [r0]
mov r1, #2
bx r3
.align 2, 0
-_021DC2E8: .word 0x02020209
+_021DC2E8: .word FUN_02020208
thumb_func_end MOD17_021DC2E0
thumb_func_start MOD17_021DC2EC
MOD17_021DC2EC: ; 0x021DC2EC
- ldr r3, _021DC2F4 ; =0x02020209
+ ldr r3, _021DC2F4 ; =FUN_02020208
ldr r0, [r0]
mov r1, #0
bx r3
.align 2, 0
-_021DC2F4: .word 0x02020209
+_021DC2F4: .word FUN_02020208
thumb_func_end MOD17_021DC2EC
thumb_func_start MOD17_021DC2F8
MOD17_021DC2F8: ; 0x021DC2F8
- ldr r3, _021DC300 ; =0x02020209
+ ldr r3, _021DC300 ; =FUN_02020208
ldr r0, [r0]
mov r1, #1
bx r3
.align 2, 0
-_021DC300: .word 0x02020209
+_021DC300: .word FUN_02020208
thumb_func_end MOD17_021DC2F8
thumb_func_start MOD17_021DC304
@@ -11304,11 +11304,11 @@ _021DC8F4: .word 0x00010203
thumb_func_start MOD17_021DC8F8
MOD17_021DC8F8: ; 0x021DC8F8
- ldr r3, _021DC900 ; =0x020191A5
+ ldr r3, _021DC900 ; =FUN_020191A4
mov r1, #1
bx r3
nop
-_021DC900: .word 0x020191A5
+_021DC900: .word FUN_020191A4
thumb_func_end MOD17_021DC8F8
thumb_func_start MOD17_021DC904
@@ -11844,11 +11844,11 @@ _021DCCDC: .word MOD17_021DBD4C
thumb_func_start MOD17_021DCCE0
MOD17_021DCCE0: ; 0x021DCCE0
- ldr r3, _021DCCE8 ; =0x020191A5
+ ldr r3, _021DCCE8 ; =FUN_020191A4
mov r1, #1
bx r3
nop
-_021DCCE8: .word 0x020191A5
+_021DCCE8: .word FUN_020191A4
thumb_func_end MOD17_021DCCE0
thumb_func_start MOD17_021DCCEC
diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s
index f6e4bcea..4a32f55f 100644
--- a/arm9/modules/18/asm/module_18.s
+++ b/arm9/modules/18/asm/module_18.s
@@ -6785,10 +6785,10 @@ _0223CB58: .word 0x00000808
thumb_func_start MOD18_0223CB5C
MOD18_0223CB5C: ; 0x0223CB5C
- ldr r3, _0223CB60 ; =0x0204F7FD
+ ldr r3, _0223CB60 ; =FUN_0204F7FC
bx r3
.align 2, 0
-_0223CB60: .word 0x0204F7FD
+_0223CB60: .word FUN_0204F7FC
thumb_func_end MOD18_0223CB5C
thumb_func_start MOD18_0223CB64
@@ -11161,10 +11161,10 @@ _0223ECD8: .word 0x022513A0
thumb_func_start MOD18_0223ECDC
MOD18_0223ECDC: ; 0x0223ECDC
- ldr r3, _0223ECE0 ; =0x0204F7FD
+ ldr r3, _0223ECE0 ; =FUN_0204F7FC
bx r3
.align 2, 0
-_0223ECE0: .word 0x0204F7FD
+_0223ECE0: .word FUN_0204F7FC
thumb_func_end MOD18_0223ECDC
thumb_func_start MOD18_0223ECE4
@@ -11550,7 +11550,7 @@ _0223EF78: .word MOD18_02240C8C
thumb_func_start MOD18_0223EF7C
MOD18_0223EF7C: ; 0x0223EF7C
ldr r1, _0223EF90 ; =0x022513A0
- ldr r3, _0223EF94 ; =0x0203105D
+ ldr r3, _0223EF94 ; =FUN_0203105C
ldr r2, [r1, #4]
mov r1, #0xa9
lsl r1, r1, #2
@@ -11560,7 +11560,7 @@ MOD18_0223EF7C: ; 0x0223EF7C
bx r3
nop
_0223EF90: .word 0x022513A0
-_0223EF94: .word 0x0203105D
+_0223EF94: .word FUN_0203105C
thumb_func_end MOD18_0223EF7C
thumb_func_start MOD18_0223EF98
@@ -13519,20 +13519,20 @@ MOD18_0223FE98: ; 0x0223FE98
thumb_func_start MOD18_0223FEAC
MOD18_0223FEAC: ; 0x0223FEAC
- ldr r3, _0223FEB4 ; =0x0204E759
+ ldr r3, _0223FEB4 ; =FUN_0204E758
mov r1, #2
bx r3
nop
-_0223FEB4: .word 0x0204E759
+_0223FEB4: .word FUN_0204E758
thumb_func_end MOD18_0223FEAC
thumb_func_start MOD18_0223FEB8
MOD18_0223FEB8: ; 0x0223FEB8
- ldr r3, _0223FEC0 ; =0x0204E759
+ ldr r3, _0223FEC0 ; =FUN_0204E758
mov r1, #2
bx r3
nop
-_0223FEC0: .word 0x0204E759
+_0223FEC0: .word FUN_0204E758
thumb_func_end MOD18_0223FEB8
thumb_func_start MOD18_0223FEC4
@@ -13549,82 +13549,82 @@ MOD18_0223FEC4: ; 0x0223FEC4
thumb_func_start MOD18_0223FED8
MOD18_0223FED8: ; 0x0223FED8
- ldr r3, _0223FEE0 ; =0x0204E179
+ ldr r3, _0223FEE0 ; =FUN_0204E178
mov r1, #0
add r2, r1, #0
bx r3
.align 2, 0
-_0223FEE0: .word 0x0204E179
+_0223FEE0: .word FUN_0204E178
thumb_func_end MOD18_0223FED8
thumb_func_start MOD18_0223FEE4
MOD18_0223FEE4: ; 0x0223FEE4
- ldr r3, _0223FEEC ; =0x0204E179
+ ldr r3, _0223FEEC ; =FUN_0204E178
mov r1, #1
mov r2, #0
bx r3
.align 2, 0
-_0223FEEC: .word 0x0204E179
+_0223FEEC: .word FUN_0204E178
thumb_func_end MOD18_0223FEE4
thumb_func_start MOD18_0223FEF0
MOD18_0223FEF0: ; 0x0223FEF0
- ldr r3, _0223FEF8 ; =0x0204E179
+ ldr r3, _0223FEF8 ; =FUN_0204E178
mov r1, #2
mov r2, #0
bx r3
.align 2, 0
-_0223FEF8: .word 0x0204E179
+_0223FEF8: .word FUN_0204E178
thumb_func_end MOD18_0223FEF0
thumb_func_start MOD18_0223FEFC
MOD18_0223FEFC: ; 0x0223FEFC
- ldr r3, _0223FF04 ; =0x0204E179
+ ldr r3, _0223FF04 ; =FUN_0204E178
mov r1, #3
mov r2, #0
bx r3
.align 2, 0
-_0223FF04: .word 0x0204E179
+_0223FF04: .word FUN_0204E178
thumb_func_end MOD18_0223FEFC
thumb_func_start MOD18_0223FF08
MOD18_0223FF08: ; 0x0223FF08
- ldr r3, _0223FF10 ; =0x0204E179
+ ldr r3, _0223FF10 ; =FUN_0204E178
mov r1, #0
mov r2, #1
bx r3
.align 2, 0
-_0223FF10: .word 0x0204E179
+_0223FF10: .word FUN_0204E178
thumb_func_end MOD18_0223FF08
thumb_func_start MOD18_0223FF14
MOD18_0223FF14: ; 0x0223FF14
- ldr r3, _0223FF1C ; =0x0204E179
+ ldr r3, _0223FF1C ; =FUN_0204E178
mov r1, #1
add r2, r1, #0
bx r3
.align 2, 0
-_0223FF1C: .word 0x0204E179
+_0223FF1C: .word FUN_0204E178
thumb_func_end MOD18_0223FF14
thumb_func_start MOD18_0223FF20
MOD18_0223FF20: ; 0x0223FF20
- ldr r3, _0223FF28 ; =0x0204E179
+ ldr r3, _0223FF28 ; =FUN_0204E178
mov r1, #2
mov r2, #1
bx r3
.align 2, 0
-_0223FF28: .word 0x0204E179
+_0223FF28: .word FUN_0204E178
thumb_func_end MOD18_0223FF20
thumb_func_start MOD18_0223FF2C
MOD18_0223FF2C: ; 0x0223FF2C
- ldr r3, _0223FF34 ; =0x0204E179
+ ldr r3, _0223FF34 ; =FUN_0204E178
mov r1, #3
mov r2, #1
bx r3
.align 2, 0
-_0223FF34: .word 0x0204E179
+_0223FF34: .word FUN_0204E178
thumb_func_end MOD18_0223FF2C
thumb_func_start MOD18_0223FF38
@@ -18630,11 +18630,11 @@ _022425C4: .word 0x022513A0
thumb_func_start MOD18_022425C8
MOD18_022425C8: ; 0x022425C8
- ldr r3, _022425D0 ; =0x0204E759
+ ldr r3, _022425D0 ; =FUN_0204E758
mov r1, #2
bx r3
nop
-_022425D0: .word 0x0204E759
+_022425D0: .word FUN_0204E758
thumb_func_end MOD18_022425C8
thumb_func_start MOD18_022425D4
@@ -20189,11 +20189,11 @@ _0224321C: .word 0x022513A0
thumb_func_start MOD18_02243220
MOD18_02243220: ; 0x02243220
- ldr r3, _02243228 ; =0x0204E759
+ ldr r3, _02243228 ; =FUN_0204E758
mov r1, #2
bx r3
nop
-_02243228: .word 0x0204E759
+_02243228: .word FUN_0204E758
thumb_func_end MOD18_02243220
thumb_func_start MOD18_0224322C
@@ -20943,11 +20943,11 @@ _02243808: .word 0x022513A0
thumb_func_start MOD18_0224380C
MOD18_0224380C: ; 0x0224380C
- ldr r3, _02243814 ; =0x0204E759
+ ldr r3, _02243814 ; =FUN_0204E758
mov r1, #2
bx r3
nop
-_02243814: .word 0x0204E759
+_02243814: .word FUN_0204E758
thumb_func_end MOD18_0224380C
thumb_func_start MOD18_02243818
@@ -21213,11 +21213,11 @@ _02243A14: .word 0x022513A0
thumb_func_start MOD18_02243A18
MOD18_02243A18: ; 0x02243A18
- ldr r3, _02243A20 ; =0x0204E759
+ ldr r3, _02243A20 ; =FUN_0204E758
mov r1, #2
bx r3
nop
-_02243A20: .word 0x0204E759
+_02243A20: .word FUN_0204E758
thumb_func_end MOD18_02243A18
thumb_func_start MOD18_02243A24
@@ -24592,10 +24592,10 @@ _022453DC: .word 0x00001284
thumb_func_start MOD18_022453E0
MOD18_022453E0: ; 0x022453E0
- ldr r3, _022453E4 ; =0x0204F7FD
+ ldr r3, _022453E4 ; =FUN_0204F7FC
bx r3
.align 2, 0
-_022453E4: .word 0x0204F7FD
+_022453E4: .word FUN_0204F7FC
thumb_func_end MOD18_022453E0
thumb_func_start MOD18_022453E8
@@ -26007,11 +26007,11 @@ _02245F18: .word 0x000013E6
thumb_func_start MOD18_02245F1C
MOD18_02245F1C: ; 0x02245F1C
- ldr r3, _02245F24 ; =0x020311DD
+ ldr r3, _02245F24 ; =FUN_020311DC
mov r0, #0x38
bx r3
nop
-_02245F24: .word 0x020311DD
+_02245F24: .word FUN_020311DC
thumb_func_end MOD18_02245F1C
thumb_func_start MOD18_02245F28
@@ -31952,22 +31952,22 @@ _02248E68: .word 0x00002710
thumb_func_start MOD18_02248E6C
MOD18_02248E6C: ; 0x02248E6C
- ldr r3, _02248E74 ; =0x02030C4D
+ ldr r3, _02248E74 ; =FUN_02030C4C
mov r0, #0x4b
add r1, r2, #0
bx r3
.align 2, 0
-_02248E74: .word 0x02030C4D
+_02248E74: .word FUN_02030C4C
thumb_func_end MOD18_02248E6C
thumb_func_start MOD18_02248E78
MOD18_02248E78: ; 0x02248E78
- ldr r3, _02248E80 ; =0x02030C4D
+ ldr r3, _02248E80 ; =FUN_02030C4C
mov r0, #0x4c
add r1, r2, #0
bx r3
.align 2, 0
-_02248E80: .word 0x02030C4D
+_02248E80: .word FUN_02030C4C
thumb_func_end MOD18_02248E78
thumb_func_start MOD18_02248E84
@@ -32040,12 +32040,12 @@ MOD18_02248EF0: ; 0x02248EF0
thumb_func_start MOD18_02248EF4
MOD18_02248EF4: ; 0x02248EF4
- ldr r3, _02248EFC ; =0x02030C4D
+ ldr r3, _02248EFC ; =FUN_02030C4C
mov r0, #0x4e
add r1, r2, #0
bx r3
.align 2, 0
-_02248EFC: .word 0x02030C4D
+_02248EFC: .word FUN_02030C4C
thumb_func_end MOD18_02248EF4
thumb_func_start MOD18_02248F00
@@ -32114,12 +32114,12 @@ MOD18_02248F74: ; 0x02248F74
thumb_func_start MOD18_02248F78
MOD18_02248F78: ; 0x02248F78
- ldr r3, _02248F80 ; =0x02030C4D
+ ldr r3, _02248F80 ; =FUN_02030C4C
mov r0, #0x50
add r1, r2, #0
bx r3
.align 2, 0
-_02248F80: .word 0x02030C4D
+_02248F80: .word FUN_02030C4C
thumb_func_end MOD18_02248F78
thumb_func_start MOD18_02248F84
@@ -32612,12 +32612,12 @@ _02249324: .word 0x022513F8
thumb_func_start MOD18_02249328
MOD18_02249328: ; 0x02249328
ldr r0, _02249330 ; =0x022513F8
- ldr r3, _02249334 ; =0x02016A19
+ ldr r3, _02249334 ; =FUN_02016A18
ldr r0, [r0]
bx r3
.align 2, 0
_02249330: .word 0x022513F8
-_02249334: .word 0x02016A19
+_02249334: .word FUN_02016A18
thumb_func_end MOD18_02249328
thumb_func_start MOD18_02249338
@@ -32823,26 +32823,26 @@ _0224949C: .word 0x022513F8
MOD18_022494A0: ; 0x022494A0
add r1, r0, #0
ldr r0, _022494AC ; =0x022513F8
- ldr r3, _022494B0 ; =0x02026299
+ ldr r3, _022494B0 ; =FUN_02026298
ldr r0, [r0]
ldr r0, [r0]
bx r3
.align 2, 0
_022494AC: .word 0x022513F8
-_022494B0: .word 0x02026299
+_022494B0: .word FUN_02026298
thumb_func_end MOD18_022494A0
thumb_func_start MOD18_022494B4
MOD18_022494B4: ; 0x022494B4
add r1, r0, #0
ldr r0, _022494C0 ; =0x022513F8
- ldr r3, _022494C4 ; =0x02025FD9
+ ldr r3, _022494C4 ; =FUN_02025FD8
ldr r0, [r0]
ldr r0, [r0]
bx r3
.align 2, 0
_022494C0: .word 0x022513F8
-_022494C4: .word 0x02025FD9
+_022494C4: .word FUN_02025FD8
thumb_func_end MOD18_022494B4
thumb_func_start MOD18_022494C8
@@ -34102,7 +34102,7 @@ MOD18_02249EF4: ; 0x02249EF4
str r1, [r0, r2]
ldr r1, _02249F24 ; =MOD18_02249EBC
str r1, [r0, #0x60]
- ldr r1, _02249F28 ; =0x020260ED
+ ldr r1, _02249F28 ; =FUN_020260EC
bx r3
nop
_02249F14: .word MOD18_022493C8
@@ -34110,7 +34110,7 @@ _02249F18: .word MOD18_022493F4
_02249F1C: .word MOD18_0224940C
_02249F20: .word MOD18_02249F8C
_02249F24: .word MOD18_02249EBC
-_02249F28: .word 0x020260ED
+_02249F28: .word FUN_020260EC
thumb_func_end MOD18_02249EF4
thumb_func_start MOD18_02249F2C
@@ -34145,7 +34145,7 @@ MOD18_02249F2C: ; 0x02249F2C
ldr r0, [r4, r0]
add r1, #0x1c
strh r0, [r4, r1]
- ldr r1, _02249F88 ; =0x020260ED
+ ldr r1, _02249F88 ; =FUN_020260EC
add r0, r4, #0
bl MOD18_02249F8C
pop {r4, pc}
@@ -34154,7 +34154,7 @@ _02249F78: .word MOD18_022493C8
_02249F7C: .word MOD18_022493F4
_02249F80: .word MOD18_0224940C
_02249F84: .word MOD18_02249EBC
-_02249F88: .word 0x020260ED
+_02249F88: .word FUN_020260EC
thumb_func_end MOD18_02249F2C
thumb_func_start MOD18_02249F8C
@@ -35487,7 +35487,7 @@ MOD18_0224AA4C: ; 0x0224AA4C
ldr r0, [r4, r0]
add r1, #0x1c
strh r0, [r4, r1]
- ldr r1, _0224AAA0 ; =0x02025FFD
+ ldr r1, _0224AAA0 ; =FUN_02025FFC
add r0, r4, #0
bl MOD18_0224AB08
pop {r4, pc}
@@ -35495,7 +35495,7 @@ MOD18_0224AA4C: ; 0x0224AA4C
_0224AA94: .word MOD18_02249378
_0224AA98: .word MOD18_0224938C
_0224AA9C: .word MOD18_0224A9B4
-_0224AAA0: .word 0x02025FFD
+_0224AAA0: .word FUN_02025FFC
thumb_func_end MOD18_0224AA4C
thumb_func_start MOD18_0224AAA4
@@ -35512,14 +35512,14 @@ MOD18_0224AAA4: ; 0x0224AAA4
str r1, [r0, #0x60]
mov r1, #0
str r1, [r0, #0x64]
- ldr r1, _0224AAD0 ; =0x02025FFD
+ ldr r1, _0224AAD0 ; =FUN_02025FFC
bx r3
.align 2, 0
_0224AAC0: .word MOD18_02249378
_0224AAC4: .word MOD18_0224938C
_0224AAC8: .word MOD18_0224A9B4
_0224AACC: .word MOD18_0224AB08
-_0224AAD0: .word 0x02025FFD
+_0224AAD0: .word FUN_02025FFC
thumb_func_end MOD18_0224AAA4
thumb_func_start MOD18_0224AAD4
@@ -35536,7 +35536,7 @@ MOD18_0224AAD4: ; 0x0224AAD4
str r1, [r0, #0x60]
ldr r1, _0224AB00 ; =MOD18_0224A9EC
str r1, [r0, #0x64]
- ldr r1, _0224AB04 ; =0x02025E21
+ ldr r1, _0224AB04 ; =FUN_02025E20
bx r3
.align 2, 0
_0224AAF0: .word MOD18_0224934C
@@ -35544,7 +35544,7 @@ _0224AAF4: .word MOD18_02249360
_0224AAF8: .word MOD18_0224A9B4
_0224AAFC: .word MOD18_0224AB08
_0224AB00: .word MOD18_0224A9EC
-_0224AB04: .word 0x02025E21
+_0224AB04: .word FUN_02025E20
thumb_func_end MOD18_0224AAD4
thumb_func_start MOD18_0224AB08
@@ -36307,11 +36307,11 @@ _0224B118:
thumb_func_start MOD18_0224B11C
MOD18_0224B11C: ; 0x0224B11C
- ldr r3, _0224B124 ; =0x0204F775
+ ldr r3, _0224B124 ; =FUN_0204F774
mov r0, #0x40
bx r3
nop
-_0224B124: .word 0x0204F775
+_0224B124: .word FUN_0204F774
thumb_func_end MOD18_0224B11C
thumb_func_start MOD18_0224B128
@@ -40932,11 +40932,11 @@ MOD18_0224D734: ; 0x0224D734
add r3, r1, #0
add r1, r2, #0
add r2, r3, #0
- ldr r3, _0224D740 ; =0x02030BC5
+ ldr r3, _0224D740 ; =FUN_02030BC4
mov r0, #0x52
bx r3
.align 2, 0
-_0224D740: .word 0x02030BC5
+_0224D740: .word FUN_02030BC4
thumb_func_end MOD18_0224D734
thumb_func_start MOD18_0224D744
@@ -40990,10 +40990,10 @@ _0224D790: .word 0x022513FC
thumb_func_start MOD18_0224D794
MOD18_0224D794: ; 0x0224D794
- ldr r3, _0224D798 ; =0x0204F7FD
+ ldr r3, _0224D798 ; =FUN_0204F7FC
bx r3
.align 2, 0
-_0224D798: .word 0x0204F7FD
+_0224D798: .word FUN_0204F7FC
thumb_func_end MOD18_0224D794
thumb_func_start MOD18_0224D79C
@@ -42024,11 +42024,11 @@ MOD18_0224DF40: ; 0x0224DF40
thumb_func_start MOD18_0224DF54
MOD18_0224DF54: ; 0x0224DF54
- ldr r3, _0224DF5C ; =0x0200B7A9
+ ldr r3, _0224DF5C ; =FUN_0200B7A8
ldr r0, [r0, #0x28]
bx r3
nop
-_0224DF5C: .word 0x0200B7A9
+_0224DF5C: .word FUN_0200B7A8
thumb_func_end MOD18_0224DF54
thumb_func_start MOD18_0224DF60
@@ -42156,12 +42156,12 @@ _0224E018: .word 0x0225074A
thumb_func_start MOD18_0224E01C
MOD18_0224E01C: ; 0x0224E01C
- ldr r3, _0224E024 ; =0x02016999
+ ldr r3, _0224E024 ; =FUN_02016998
mov r0, #4
mov r1, #0x44
bx r3
.align 2, 0
-_0224E024: .word 0x02016999
+_0224E024: .word FUN_02016998
thumb_func_end MOD18_0224E01C
thumb_func_start MOD18_0224E028
@@ -42194,10 +42194,10 @@ _0224E058: .word 0x000003D9
thumb_func_start MOD18_0224E05C
MOD18_0224E05C: ; 0x0224E05C
- ldr r3, _0224E060 ; =0x02016A19
+ ldr r3, _0224E060 ; =FUN_02016A18
bx r3
.align 2, 0
-_0224E060: .word 0x02016A19
+_0224E060: .word FUN_02016A18
thumb_func_end MOD18_0224E05C
thumb_func_start MOD18_0224E064
@@ -42508,12 +42508,12 @@ _0224E2CC:
thumb_func_start MOD18_0224E2D8
MOD18_0224E2D8: ; 0x0224E2D8
- ldr r3, _0224E2E0 ; =0x02016999
+ ldr r3, _0224E2E0 ; =FUN_02016998
mov r0, #4
mov r1, #0x4c
bx r3
.align 2, 0
-_0224E2E0: .word 0x02016999
+_0224E2E0: .word FUN_02016998
thumb_func_end MOD18_0224E2D8
thumb_func_start MOD18_0224E2E4
@@ -42555,10 +42555,10 @@ MOD18_0224E314: ; 0x0224E314
thumb_func_start MOD18_0224E320
MOD18_0224E320: ; 0x0224E320
- ldr r3, _0224E324 ; =0x02016A19
+ ldr r3, _0224E324 ; =FUN_02016A18
bx r3
.align 2, 0
-_0224E324: .word 0x02016A19
+_0224E324: .word FUN_02016A18
thumb_func_end MOD18_0224E320
thumb_func_start MOD18_0224E328
@@ -42930,7 +42930,7 @@ _0224E5CE:
ldr r0, _0224E6A0 ; =MOD18_0224E3F0
str r7, [sp, #0x4c]
str r0, [sp, #0x34]
- ldr r0, _0224E6A4 ; =0x02025E21
+ ldr r0, _0224E6A4 ; =FUN_02025E20
str r0, [sp]
str r7, [sp, #4]
mov r0, #1
@@ -42978,7 +42978,7 @@ _0224E694: .word 0x00000115
_0224E698: .word 0x022507D0
_0224E69C: .word MOD18_0224E2B4
_0224E6A0: .word MOD18_0224E3F0
-_0224E6A4: .word 0x02025E21
+_0224E6A4: .word FUN_02025E20
thumb_func_end MOD18_0224E430
thumb_func_start MOD18_0224E6A8
@@ -43142,13 +43142,13 @@ _0224E776:
thumb_func_start MOD18_0224E7E4
MOD18_0224E7E4: ; 0x0224E7E4
add r2, r0, #0
- ldr r3, _0224E7F0 ; =0x021E7C81
+ ldr r3, _0224E7F0 ; =MOD05_021E7C80
add r2, #0xa0
add r0, r1, #0
ldr r1, [r2]
bx r3
.align 2, 0
-_0224E7F0: .word 0x021E7C81
+_0224E7F0: .word MOD05_021E7C80
thumb_func_end MOD18_0224E7E4
thumb_func_start MOD18_0224E7F4
@@ -45659,11 +45659,11 @@ _0224FBC4: .word 0x02251350
thumb_func_start MOD18_0224FBC8
MOD18_0224FBC8: ; 0x0224FBC8
- ldr r3, _0224FBD0 ; =0x02016A19
+ ldr r3, _0224FBD0 ; =FUN_02016A18
ldr r0, [r0, #0x54]
bx r3
nop
-_0224FBD0: .word 0x02016A19
+_0224FBD0: .word FUN_02016A18
thumb_func_end MOD18_0224FBC8
thumb_func_start MOD18_0224FBD4
diff --git a/arm9/modules/21/asm/module_21.s b/arm9/modules/21/asm/module_21.s
index 0c30eb9a..45ec356b 100644
--- a/arm9/modules/21/asm/module_21.s
+++ b/arm9/modules/21/asm/module_21.s
@@ -423,20 +423,20 @@ _02254B30: .word 0x02254DAC
thumb_func_start MOD21_02254B34
MOD21_02254B34: ; 0x02254B34
- ldr r3, _02254B3C ; =0x02253795
+ ldr r3, _02254B3C ; =MOD20_02253794
add r0, #8
bx r3
nop
-_02254B3C: .word 0x02253795
+_02254B3C: .word MOD20_02253794
thumb_func_end MOD21_02254B34
thumb_func_start MOD21_02254B40
MOD21_02254B40: ; 0x02254B40
- ldr r3, _02254B48 ; =0x022537B9
+ ldr r3, _02254B48 ; =MOD20_022537B8
add r0, #8
bx r3
nop
-_02254B48: .word 0x022537B9
+_02254B48: .word MOD20_022537B8
thumb_func_end MOD21_02254B40
thumb_func_start MOD21_02254B4C
diff --git a/arm9/modules/22/asm/module_22.s b/arm9/modules/22/asm/module_22.s
index 610d0a55..5a63c8bc 100644
--- a/arm9/modules/22/asm/module_22.s
+++ b/arm9/modules/22/asm/module_22.s
@@ -626,11 +626,11 @@ _02254CD0: .word MOD22_02254CE0
thumb_func_start MOD22_02254CD4
MOD22_02254CD4: ; 0x02254CD4
- ldr r3, _02254CDC ; =0x02254199
+ ldr r3, _02254CDC ; =MOD20_02254198
ldr r0, [r0, #0x5c]
bx r3
nop
-_02254CDC: .word 0x02254199
+_02254CDC: .word MOD20_02254198
thumb_func_end MOD22_02254CD4
thumb_func_start MOD22_02254CE0
@@ -1124,20 +1124,20 @@ _02255068: .word 0x02255670
thumb_func_start MOD22_0225506C
MOD22_0225506C: ; 0x0225506C
- ldr r3, _02255074 ; =0x02253795
+ ldr r3, _02255074 ; =MOD20_02253794
add r0, #8
bx r3
nop
-_02255074: .word 0x02253795
+_02255074: .word MOD20_02253794
thumb_func_end MOD22_0225506C
thumb_func_start MOD22_02255078
MOD22_02255078: ; 0x02255078
- ldr r3, _02255080 ; =0x022537B9
+ ldr r3, _02255080 ; =MOD20_022537B8
add r0, #8
bx r3
nop
-_02255080: .word 0x022537B9
+_02255080: .word MOD20_022537B8
thumb_func_end MOD22_02255078
thumb_func_start MOD22_02255084
diff --git a/arm9/modules/23/asm/module_23.s b/arm9/modules/23/asm/module_23.s
index a5adabbb..acb9bed3 100644
--- a/arm9/modules/23/asm/module_23.s
+++ b/arm9/modules/23/asm/module_23.s
@@ -1123,20 +1123,20 @@ _02255058: .word 0x02256040
thumb_func_start MOD23_0225505C
MOD23_0225505C: ; 0x0225505C
- ldr r3, _02255064 ; =0x02253795
+ ldr r3, _02255064 ; =MOD20_02253794
add r0, #8
bx r3
nop
-_02255064: .word 0x02253795
+_02255064: .word MOD20_02253794
thumb_func_end MOD23_0225505C
thumb_func_start MOD23_02255068
MOD23_02255068: ; 0x02255068
- ldr r3, _02255070 ; =0x022537B9
+ ldr r3, _02255070 ; =MOD20_022537B8
add r0, #8
bx r3
nop
-_02255070: .word 0x022537B9
+_02255070: .word MOD20_022537B8
thumb_func_end MOD23_02255068
thumb_func_start MOD23_02255074
@@ -1746,10 +1746,10 @@ _0225553C:
thumb_func_start MOD23_02255540
MOD23_02255540: ; 0x02255540
- ldr r3, _02255544 ; =0x02016A19
+ ldr r3, _02255544 ; =FUN_02016A18
bx r3
.align 2, 0
-_02255544: .word 0x02016A19
+_02255544: .word FUN_02016A18
thumb_func_end MOD23_02255540
thumb_func_start MOD23_02255548
diff --git a/arm9/modules/28/asm/module_28.s b/arm9/modules/28/asm/module_28.s
index e1a1d741..42733627 100644
--- a/arm9/modules/28/asm/module_28.s
+++ b/arm9/modules/28/asm/module_28.s
@@ -5,12 +5,12 @@
thumb_func_start MOD28_02254840
MOD28_02254840: ; 0x02254840
- ldr r3, _02254848 ; =0x02252979
+ ldr r3, _02254848 ; =MOD20_02252978
ldr r0, _0225484C ; =MOD28_02254854
ldr r1, _02254850 ; =MOD28_022549F4
bx r3
.align 2, 0
-_02254848: .word 0x02252979
+_02254848: .word MOD20_02252978
_0225484C: .word MOD28_02254854
_02254850: .word MOD28_022549F4
thumb_func_end MOD28_02254840
@@ -519,20 +519,20 @@ _02254BE8: .word 0x02255EF4
thumb_func_start MOD28_02254BEC
MOD28_02254BEC: ; 0x02254BEC
- ldr r3, _02254BF4 ; =0x02253795
+ ldr r3, _02254BF4 ; =MOD20_02253794
add r0, #8
bx r3
nop
-_02254BF4: .word 0x02253795
+_02254BF4: .word MOD20_02253794
thumb_func_end MOD28_02254BEC
thumb_func_start MOD28_02254BF8
MOD28_02254BF8: ; 0x02254BF8
- ldr r3, _02254C00 ; =0x022537B9
+ ldr r3, _02254C00 ; =MOD20_022537B8
add r0, #8
bx r3
nop
-_02254C00: .word 0x022537B9
+_02254C00: .word MOD20_022537B8
thumb_func_end MOD28_02254BF8
thumb_func_start MOD28_02254C04
@@ -1531,11 +1531,11 @@ MOD28_02255344: ; 0x02255344
mov r0, #0x4e
lsl r0, r0, #2
ldr r0, [r1, r0]
- ldr r3, _02255358 ; =0x02253F79
+ ldr r3, _02255358 ; =MOD20_02253F78
mov r1, #1
bx r3
nop
-_02255358: .word 0x02253F79
+_02255358: .word MOD20_02253F78
thumb_func_end MOD28_02255344
thumb_func_start MOD28_0225535C
diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s
index e4dacfc6..ce93b6bc 100644
--- a/arm9/modules/53/asm/module_53.s
+++ b/arm9/modules/53/asm/module_53.s
@@ -3691,11 +3691,11 @@ MOD53_021D925C: ; 0x021D925C
mov r1, #0xb6
lsl r1, r1, #2
add r0, r0, r1
- ldr r3, _021D9268 ; =0x0200D0E1
+ ldr r3, _021D9268 ; =FUN_0200D0E0
mov r1, #0
bx r3
.align 2, 0
-_021D9268: .word 0x0200D0E1
+_021D9268: .word FUN_0200D0E0
thumb_func_end MOD53_021D925C
thumb_func_start MOD53_021D926C
diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s
index 817d6824..c3e477c6 100644
--- a/arm9/modules/54/asm/module_54.s
+++ b/arm9/modules/54/asm/module_54.s
@@ -3082,11 +3082,11 @@ MOD54_021D8D40: ; 0x021D8D40
mov r1, #0xba
lsl r1, r1, #2
add r0, r0, r1
- ldr r3, _021D8D4C ; =0x0200D0E1
+ ldr r3, _021D8D4C ; =FUN_0200D0E0
mov r1, #0
bx r3
.align 2, 0
-_021D8D4C: .word 0x0200D0E1
+_021D8D4C: .word FUN_0200D0E0
thumb_func_end MOD54_021D8D40
thumb_func_start MOD54_021D8D50
@@ -4184,10 +4184,10 @@ MOD54_021D9500: ; 0x021D9500
thumb_func_start MOD54_021D9518
MOD54_021D9518: ; 0x021D9518
- ldr r3, _021D951C ; =0x0202B9ED
+ ldr r3, _021D951C ; =FUN_0202B9EC
bx r3
.align 2, 0
-_021D951C: .word 0x0202B9ED
+_021D951C: .word FUN_0202B9EC
thumb_func_end MOD54_021D9518
thumb_func_start MOD54_021D9520
diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s
index 46173b3f..a854022c 100644
--- a/arm9/modules/55/asm/module_55.s
+++ b/arm9/modules/55/asm/module_55.s
@@ -385,11 +385,11 @@ _021D7808: .word 0x00003FF8
thumb_func_start MOD55_021D780C
MOD55_021D780C: ; 0x021D780C
- ldr r3, _021D7814 ; =0x0201E66D
+ ldr r3, _021D7814 ; =FUN_0201E66C
ldr r0, _021D7818 ; =0x021DA458
bx r3
nop
-_021D7814: .word 0x0201E66D
+_021D7814: .word FUN_0201E66C
_021D7818: .word 0x021DA458
thumb_func_end MOD55_021D780C
@@ -5033,11 +5033,11 @@ MOD55_021D9E04: ; 0x021D9E04
thumb_func_start MOD55_021D9E34
MOD55_021D9E34: ; 0x021D9E34
- ldr r3, _021D9E3C ; =0x0201C78D
+ ldr r3, _021D9E3C ; =FUN_0201C78C
ldrh r0, [r0]
bx r3
nop
-_021D9E3C: .word 0x0201C78D
+_021D9E3C: .word FUN_0201C78C
thumb_func_end MOD55_021D9E34
thumb_func_start MOD55_021D9E40
@@ -5518,11 +5518,11 @@ MOD55_021DA214: ; 0x021DA214
mov r1, #0xce
lsl r1, r1, #2
add r0, r0, r1
- ldr r3, _021DA220 ; =0x0200D0E1
+ ldr r3, _021DA220 ; =FUN_0200D0E0
mov r1, #0
bx r3
.align 2, 0
-_021DA220: .word 0x0200D0E1
+_021DA220: .word FUN_0200D0E0
thumb_func_end MOD55_021DA214
thumb_func_start MOD55_021DA224
diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s
index 7208de4e..d5dae418 100644
--- a/arm9/modules/57/asm/module_57.s
+++ b/arm9/modules/57/asm/module_57.s
@@ -2487,11 +2487,11 @@ _021D8864:
thumb_func_start MOD57_021D8894
MOD57_021D8894: ; 0x021D8894
- ldr r3, _021D889C ; =0x020054C9
+ ldr r3, _021D889C ; =FUN_020054C8
ldr r0, _021D88A0 ; =0x00000699
bx r3
nop
-_021D889C: .word 0x020054C9
+_021D889C: .word FUN_020054C8
_021D88A0: .word 0x00000699
thumb_func_end MOD57_021D8894
diff --git a/arm9/modules/59/asm/module_59.s b/arm9/modules/59/asm/module_59.s
index 0809afd7..7841f0bd 100644
--- a/arm9/modules/59/asm/module_59.s
+++ b/arm9/modules/59/asm/module_59.s
@@ -265,11 +265,11 @@ _021D7720: .word 0x021D76D8
thumb_func_start MOD59_021D7724
MOD59_021D7724: ; 0x021D7724
- ldr r3, _021D772C ; =0x0201AB61
+ ldr r3, _021D772C ; =FUN_0201AB60
ldr r0, [r0, #0x18]
bx r3
nop
-_021D772C: .word 0x0201AB61
+_021D772C: .word FUN_0201AB60
thumb_func_end MOD59_021D7724
thumb_func_start MOD59_021D7730
@@ -647,11 +647,11 @@ MOD59_021D7A4C: ; 0x021D7A4C
thumb_func_start MOD59_021D7A5C
MOD59_021D7A5C: ; 0x021D7A5C
- ldr r3, _021D7A64 ; =0x020145A9
+ ldr r3, _021D7A64 ; =FUN_020145A8
ldr r0, [r0, #0x68]
bx r3
nop
-_021D7A64: .word 0x020145A9
+_021D7A64: .word FUN_020145A8
thumb_func_end MOD59_021D7A5C
thumb_func_start MOD59_021D7A68
@@ -2536,12 +2536,12 @@ _021D8910: .word 0x000001BE
thumb_func_start MOD59_021D8914
MOD59_021D8914: ; 0x021D8914
- ldr r3, _021D891C ; =0x020178BD
+ ldr r3, _021D891C ; =FUN_020178BC
mov r0, #2
mov r1, #1
bx r3
.align 2, 0
-_021D891C: .word 0x020178BD
+_021D891C: .word FUN_020178BC
thumb_func_end MOD59_021D8914
thumb_func_start MOD59_021D8920
@@ -4616,11 +4616,11 @@ MOD59_021D99F8: ; 0x021D99F8
thumb_func_start MOD59_021D9A14
MOD59_021D9A14: ; 0x021D9A14
- ldr r3, _021D9A1C ; =0x0201AB61
+ ldr r3, _021D9A1C ; =FUN_0201AB60
ldr r0, [r0, #4]
bx r3
nop
-_021D9A1C: .word 0x0201AB61
+_021D9A1C: .word FUN_0201AB60
thumb_func_end MOD59_021D9A14
thumb_func_start MOD59_021D9A20
@@ -4887,11 +4887,11 @@ _021D9C64: .word 0x00000225
thumb_func_start MOD59_021D9C68
MOD59_021D9C68: ; 0x021D9C68
- ldr r3, _021D9C70 ; =0x0200A8B9
+ ldr r3, _021D9C70 ; =FUN_0200A8B8
ldr r0, [r0, #8]
bx r3
nop
-_021D9C70: .word 0x0200A8B9
+_021D9C70: .word FUN_0200A8B8
thumb_func_end MOD59_021D9C68
thumb_func_start MOD59_021D9C74
diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s
index 6318e002..d458564e 100644
--- a/arm9/modules/60/asm/module_60.s
+++ b/arm9/modules/60/asm/module_60.s
@@ -817,11 +817,11 @@ MOD60_021D7A40: ; 0x021D7A40
thumb_func_start MOD60_021D7B98
MOD60_021D7B98: ; 0x021D7B98
- ldr r3, _021D7BA0 ; =0x02016A19
+ ldr r3, _021D7BA0 ; =FUN_02016A18
ldr r0, [r0, #0x24]
bx r3
nop
-_021D7BA0: .word 0x02016A19
+_021D7BA0: .word FUN_02016A18
thumb_func_end MOD60_021D7B98
thumb_func_start MOD60_021D7BA4
diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s
index 4623b0ae..ced7fa63 100644
--- a/arm9/modules/62/asm/module_62.s
+++ b/arm9/modules/62/asm/module_62.s
@@ -4374,14 +4374,14 @@ MOD62_0222F778: ; 0x0222F778
mov r0, #0xf1
lsl r0, r0, #2
ldr r0, [r1, r0]
- ldr r3, _0222F78C ; =0x02029C75
+ ldr r3, _0222F78C ; =FUN_02029C74
lsl r0, r0, #3
add r0, r1, r0
ldr r0, [r0, #8]
add r1, #0x68
bx r3
.align 2, 0
-_0222F78C: .word 0x02029C75
+_0222F78C: .word FUN_02029C74
thumb_func_end MOD62_0222F778
thumb_func_start MOD62_0222F790
@@ -4390,14 +4390,14 @@ MOD62_0222F790: ; 0x0222F790
add r2, r0, #0
lsl r1, r1, #2
ldr r1, [r2, r1]
- ldr r3, _0222F7A4 ; =0x02029C75
+ ldr r3, _0222F7A4 ; =FUN_02029C74
lsl r1, r1, #3
add r1, r2, r1
add r0, #0x68
ldr r1, [r1, #8]
bx r3
.align 2, 0
-_0222F7A4: .word 0x02029C75
+_0222F7A4: .word FUN_02029C74
thumb_func_end MOD62_0222F790
thumb_func_start MOD62_0222F7A8
@@ -5927,22 +5927,22 @@ MOD62_02230388: ; 0x02230388
mov r1, #0x6a
lsl r1, r1, #2
ldr r0, [r0, r1]
- ldr r3, _02230398 ; =0x02007559
+ ldr r3, _02230398 ; =FUN_02007558
mov r1, #6
bx r3
nop
-_02230398: .word 0x02007559
+_02230398: .word FUN_02007558
thumb_func_end MOD62_02230388
thumb_func_start MOD62_0223039C
MOD62_0223039C: ; 0x0223039C
mov r1, #0x6a
lsl r1, r1, #2
- ldr r3, _022303A8 ; =0x02007535
+ ldr r3, _022303A8 ; =FUN_02007534
ldr r0, [r0, r1]
bx r3
nop
-_022303A8: .word 0x02007535
+_022303A8: .word FUN_02007534
thumb_func_end MOD62_0223039C
thumb_func_start MOD62_022303AC
diff --git a/arm9/modules/63/asm/module_63.s b/arm9/modules/63/asm/module_63.s
index beeb3428..8759faaf 100644
--- a/arm9/modules/63/asm/module_63.s
+++ b/arm9/modules/63/asm/module_63.s
@@ -400,11 +400,11 @@ _021D7828: .word 0x021DBE18
thumb_func_start MOD63_021D782C
MOD63_021D782C: ; 0x021D782C
- ldr r3, _021D7834 ; =0x0201AB61
+ ldr r3, _021D7834 ; =FUN_0201AB60
ldr r0, [r0, #4]
bx r3
nop
-_021D7834: .word 0x0201AB61
+_021D7834: .word FUN_0201AB60
thumb_func_end MOD63_021D782C
thumb_func_start MOD63_021D7838
@@ -482,11 +482,11 @@ _021D78AC: .word 0x04000008
thumb_func_start MOD63_021D78B0
MOD63_021D78B0: ; 0x021D78B0
- ldr r3, _021D78B8 ; =0x020223BD
+ ldr r3, _021D78B8 ; =FUN_020223BC
ldr r0, [r0, #8]
bx r3
nop
-_021D78B8: .word 0x020223BD
+_021D78B8: .word FUN_020223BC
thumb_func_end MOD63_021D78B0
thumb_func_start MOD63_021D78BC
@@ -2178,12 +2178,12 @@ _021D8640: .word 0x020ECAC0
thumb_func_start MOD63_021D8644
MOD63_021D8644: ; 0x021D8644
- ldr r3, _021D864C ; =0x02019179
+ ldr r3, _021D864C ; =FUN_02019178
add r2, #0xac
add r0, r2, #0
bx r3
.align 2, 0
-_021D864C: .word 0x02019179
+_021D864C: .word FUN_02019178
thumb_func_end MOD63_021D8644
thumb_func_start MOD63_021D8650
@@ -2972,10 +2972,10 @@ _021D8CA4: .word 0x04000580
thumb_func_start MOD63_021D8CA8
MOD63_021D8CA8: ; 0x021D8CA8
- ldr r3, _021D8CAC ; =0x02009F81
+ ldr r3, _021D8CAC ; =FUN_02009F80
bx r3
.align 2, 0
-_021D8CAC: .word 0x02009F81
+_021D8CAC: .word FUN_02009F80
thumb_func_end MOD63_021D8CA8
thumb_func_start MOD63_021D8CB0
@@ -6002,11 +6002,11 @@ MOD63_021DA588: ; 0x021DA588
strb r2, [r0, #3]
mov r2, #0
strb r2, [r0, #1]
- ldr r3, _021DA59C ; =0x0201E6E5
+ ldr r3, _021DA59C ; =FUN_0201E6E4
add r0, r1, #0
bx r3
nop
-_021DA59C: .word 0x0201E6E5
+_021DA59C: .word FUN_0201E6E4
thumb_func_end MOD63_021DA588
thumb_func_start MOD63_021DA5A0
@@ -6807,11 +6807,11 @@ _021DABEC:
thumb_func_start MOD63_021DAC18
MOD63_021DAC18: ; 0x021DAC18
- ldr r3, _021DAC20 ; =0x0201FDED
+ ldr r3, _021DAC20 ; =FUN_0201FDEC
ldr r0, [r0]
bx r3
nop
-_021DAC20: .word 0x0201FDED
+_021DAC20: .word FUN_0201FDEC
thumb_func_end MOD63_021DAC18
thumb_func_start MOD63_021DAC24
@@ -6821,11 +6821,11 @@ MOD63_021DAC24: ; 0x021DAC24
mov r0, #0x63
lsl r0, r0, #2
ldr r0, [r1, r0]
- ldr r3, _021DAC34 ; =0x020200A1
+ ldr r3, _021DAC34 ; =FUN_020200A0
add r1, r2, #0
bx r3
.align 2, 0
-_021DAC34: .word 0x020200A1
+_021DAC34: .word FUN_020200A0
thumb_func_end MOD63_021DAC24
thumb_func_start MOD63_021DAC38
@@ -7533,11 +7533,11 @@ _021DB15C:
thumb_func_start MOD63_021DB1A0
MOD63_021DB1A0: ; 0x021DB1A0
- ldr r3, _021DB1A8 ; =0x0201FDED
+ ldr r3, _021DB1A8 ; =FUN_0201FDEC
ldr r0, [r0]
bx r3
nop
-_021DB1A8: .word 0x0201FDED
+_021DB1A8: .word FUN_0201FDEC
thumb_func_end MOD63_021DB1A0
thumb_func_start MOD63_021DB1AC
diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s
index e7d103d1..be87b0fd 100644
--- a/arm9/modules/64/asm/module_64.s
+++ b/arm9/modules/64/asm/module_64.s
@@ -362,10 +362,10 @@ MOD64_021D77E8: ; 0x021D77E8
thumb_func_start MOD64_021D7808
MOD64_021D7808: ; 0x021D7808
- ldr r3, _021D780C ; =0x0200E309
+ ldr r3, _021D780C ; =FUN_0200E308
bx r3
.align 2, 0
-_021D780C: .word 0x0200E309
+_021D780C: .word FUN_0200E308
thumb_func_end MOD64_021D7808
thumb_func_start MOD64_021D7810
@@ -911,12 +911,12 @@ _021D7C60: .word 0x0000064C
thumb_func_start MOD64_021D7C64
MOD64_021D7C64: ; 0x021D7C64
ldr r1, _021D7C6C ; =0x0000064C
- ldr r3, _021D7C70 ; =0x02013D19
+ ldr r3, _021D7C70 ; =FUN_02013D18
ldr r0, [r0, r1]
bx r3
.align 2, 0
_021D7C6C: .word 0x0000064C
-_021D7C70: .word 0x02013D19
+_021D7C70: .word FUN_02013D18
thumb_func_end MOD64_021D7C64
thumb_func_start MOD64_021D7C74
@@ -1736,11 +1736,11 @@ _021D82B8: .word 0x00000FA4
MOD64_021D82BC: ; 0x021D82BC
mov r1, #0x5f
lsl r1, r1, #4
- ldr r3, _021D82C8 ; =0x0201EB71
+ ldr r3, _021D82C8 ; =FUN_0201EB70
ldr r0, [r0, r1]
bx r3
nop
-_021D82C8: .word 0x0201EB71
+_021D82C8: .word FUN_0201EB70
thumb_func_end MOD64_021D82BC
thumb_func_start MOD64_021D82CC
@@ -2765,11 +2765,11 @@ MOD64_021D89FC: ; 0x021D89FC
thumb_func_start MOD64_021D8A78
MOD64_021D8A78: ; 0x021D8A78
- ldr r3, _021D8A80 ; =0x0201FFC9
+ ldr r3, _021D8A80 ; =FUN_0201FFC8
ldr r0, [r0]
bx r3
nop
-_021D8A80: .word 0x0201FFC9
+_021D8A80: .word FUN_0201FFC8
thumb_func_end MOD64_021D8A78
thumb_func_start MOD64_021D8A84
@@ -2890,11 +2890,11 @@ _021D8B56:
thumb_func_start MOD64_021D8B58
MOD64_021D8B58: ; 0x021D8B58
- ldr r3, _021D8B60 ; =0x020200A1
+ ldr r3, _021D8B60 ; =FUN_020200A0
ldr r0, [r0]
bx r3
nop
-_021D8B60: .word 0x020200A1
+_021D8B60: .word FUN_020200A0
thumb_func_end MOD64_021D8B58
thumb_func_start MOD64_021D8B64
@@ -2999,11 +2999,11 @@ MOD64_021D8C0C: ; 0x021D8C0C
thumb_func_start MOD64_021D8C30
MOD64_021D8C30: ; 0x021D8C30
- ldr r3, _021D8C38 ; =0x02013EB1
+ ldr r3, _021D8C38 ; =FUN_02013EB0
ldr r0, [r0, #8]
bx r3
nop
-_021D8C38: .word 0x02013EB1
+_021D8C38: .word FUN_02013EB0
thumb_func_end MOD64_021D8C30
thumb_func_start MOD64_021D8C3C
@@ -3537,14 +3537,14 @@ MOD64_021D902C: ; 0x021D902C
add r1, r0, #0
add r1, #0xa8
ldr r1, [r1]
- ldr r3, _021D9040 ; =0x02019571
+ ldr r3, _021D9040 ; =FUN_02019570
lsl r1, r1, #2
add r0, r0, r1
add r0, #0x9c
ldr r0, [r0]
bx r3
nop
-_021D9040: .word 0x02019571
+_021D9040: .word FUN_02019570
thumb_func_end MOD64_021D902C
thumb_func_start MOD64_021D9044
diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s
index a254fc52..07e7acd3 100644
--- a/arm9/modules/65/asm/module_65.s
+++ b/arm9/modules/65/asm/module_65.s
@@ -2057,11 +2057,11 @@ _021D84E0: .word 0x00000001
thumb_func_start MOD65_021D84E4
MOD65_021D84E4: ; 0x021D84E4
- ldr r3, _021D84EC ; =0x02001471
+ ldr r3, _021D84EC ; =FUN_02001470
mov r1, #0x13
bx r3
nop
-_021D84EC: .word 0x02001471
+_021D84EC: .word FUN_02001470
thumb_func_end MOD65_021D84E4
thumb_func_start MOD65_021D84F0
@@ -3416,11 +3416,11 @@ MOD65_021D8F34: ; 0x021D8F34
thumb_func_start MOD65_021D8FA4
MOD65_021D8FA4: ; 0x021D8FA4
- ldr r3, _021D8FAC ; =0x02021A21
+ ldr r3, _021D8FAC ; =FUN_02021A20
ldr r0, [r0, #0x3c]
bx r3
nop
-_021D8FAC: .word 0x02021A21
+_021D8FAC: .word FUN_02021A20
thumb_func_end MOD65_021D8FA4
thumb_func_start MOD65_021D8FB0
diff --git a/arm9/modules/66/asm/module_66.s b/arm9/modules/66/asm/module_66.s
index 709a8b84..e1053077 100644
--- a/arm9/modules/66/asm/module_66.s
+++ b/arm9/modules/66/asm/module_66.s
@@ -3727,20 +3727,20 @@ MOD66_021D91F4: ; 0x021D91F4
thumb_func_start MOD66_021D9214
MOD66_021D9214: ; 0x021D9214
- ldr r3, _021D921C ; =0x0200BC1D
+ ldr r3, _021D921C ; =FUN_0200BC1C
add r0, #0xdc
ldr r0, [r0]
bx r3
.align 2, 0
-_021D921C: .word 0x0200BC1D
+_021D921C: .word FUN_0200BC1C
thumb_func_end MOD66_021D9214
thumb_func_start MOD66_021D9220
MOD66_021D9220: ; 0x021D9220
- ldr r3, _021D9224 ; =0x0200BC31
+ ldr r3, _021D9224 ; =FUN_0200BC30
bx r3
.align 2, 0
-_021D9224: .word 0x0200BC31
+_021D9224: .word FUN_0200BC30
thumb_func_end MOD66_021D9220
thumb_func_start MOD66_021D9228
diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s
index 8756cbb5..c7484f37 100644
--- a/arm9/modules/67/asm/module_67.s
+++ b/arm9/modules/67/asm/module_67.s
@@ -708,10 +708,10 @@ _021D7AA4: .word 0x0000105F
thumb_func_start MOD67_021D7AA8
MOD67_021D7AA8: ; 0x021D7AA8
- ldr r3, _021D7AAC ; =0x0200E309
+ ldr r3, _021D7AAC ; =FUN_0200E308
bx r3
.align 2, 0
-_021D7AAC: .word 0x0200E309
+_021D7AAC: .word FUN_0200E308
thumb_func_end MOD67_021D7AA8
thumb_func_start MOD67_021D7AB0
diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s
index 1c34783c..1ee371c6 100644
--- a/arm9/modules/68/asm/module_68.s
+++ b/arm9/modules/68/asm/module_68.s
@@ -1496,12 +1496,12 @@ _021D80A4: .word 0x04000540
thumb_func_start MOD_021D80A8
MOD_021D80A8: ; 0x021D80A8
- ldr r3, _021D80B0 ; =0x0201EB71
+ ldr r3, _021D80B0 ; =FUN_0201EB70
add r0, #0xd0
ldr r0, [r0]
bx r3
.align 2, 0
-_021D80B0: .word 0x0201EB71
+_021D80B0: .word FUN_0201EB70
thumb_func_end MOD_021D80A8
thumb_func_start MOD_021D80B4
diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s
index 8d8b5870..f1e9fefd 100644
--- a/arm9/modules/69/asm/module_69.s
+++ b/arm9/modules/69/asm/module_69.s
@@ -724,10 +724,10 @@ _0222DBA0: .word 0x04000540
thumb_func_start MOD69_0222DBA4
MOD69_0222DBA4: ; 0x0222DBA4
- ldr r3, _0222DBA8 ; =0x0200CA61
+ ldr r3, _0222DBA8 ; =FUN_0200CA60
bx r3
.align 2, 0
-_0222DBA8: .word 0x0200CA61
+_0222DBA8: .word FUN_0200CA60
thumb_func_start MOD69_0222DBAC
MOD69_0222DBAC: ; 0x0222DBAC
@@ -1059,12 +1059,12 @@ _0222DE84: .word 0x00000FA4
thumb_func_start MOD69_0222DE88
MOD69_0222DE88: ; 0x0222DE88
ldr r1, _0222DE90 ; =0x00001B1C
- ldr r3, _0222DE94 ; =0x0201EB71
+ ldr r3, _0222DE94 ; =FUN_0201EB70
ldr r0, [r0, r1]
bx r3
.align 2, 0
_0222DE90: .word 0x00001B1C
-_0222DE94: .word 0x0201EB71
+_0222DE94: .word FUN_0201EB70
thumb_func_start MOD69_0222DE98
MOD69_0222DE98: ; 0x0222DE98
@@ -1477,13 +1477,13 @@ MOD69_0222E1FC: ; 0x0222E1FC
thumb_func_start MOD69_0222E204
MOD69_0222E204: ; 0x0222E204
- ldr r3, _0222E210 ; =0x0200CA99
+ ldr r3, _0222E210 ; =FUN_0200CA98
add r1, r0, #0
ldr r0, _0222E214 ; =MOD69_0222E1E4
mov r2, #0
bx r3
nop
-_0222E210: .word 0x0200CA99
+_0222E210: .word FUN_0200CA98
_0222E214: .word MOD69_0222E1E4
thumb_func_start MOD69_0222E218
diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s
new file mode 100644
index 00000000..dd072eaa
--- /dev/null
+++ b/arm9/modules/70/asm/module_70.s
@@ -0,0 +1,1702 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD70_021D74E0
+MOD70_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ mov r2, #1
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x3c
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ mov r2, #7
+ mov r0, #3
+ mov r1, #0x3d
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ add r0, r5, #0
+ mov r1, #0xdc
+ mov r2, #0x3c
+ bl FUN_02006268
+ add r4, r0, #0
+ beq _021D7558
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r1, r4, #0
+ add r1, #0xcc
+ str r0, [r1]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xd4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ bl FUN_0202B1F0
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ add r1, r4, #0
+ add r1, #0xcc
+ ldr r1, [r1]
+ add r0, r4, #0
+ bl MOD70_021D7724
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD70_021D77CC
+ add r1, r4, #0
+ add r1, #0xc8
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD70_021D7930
+ add r4, #0xd8
+ str r0, [r4]
+_021D7558:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD70_021D74E0
+
+ thumb_func_start MOD70_021D755C
+MOD70_021D755C: ; 0x021D755C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl MOD70_021D78A0
+ add r0, r4, #0
+ bl MOD70_021D7760
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x3d
+ bl FUN_020168D0
+ mov r0, #0x3c
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D755C
+
+ thumb_func_start MOD70_021D758C
+MOD70_021D758C: ; 0x021D758C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D75B8
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl MOD70_021D7958
+ cmp r0, #0
+ bne _021D75B0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D75B0:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xd8
+ str r1, [r0]
+_021D75B8:
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021D75C4
+ cmp r0, #1
+ beq _021D768A
+ b _021D768E
+_021D75C4:
+ ldr r0, _021D7694 ; =0x021C48B8
+ mov r1, #2
+ ldr r0, [r0, #0x48]
+ add r2, r0, #0
+ tst r2, r1
+ beq _021D75E0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD70_021D7698
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D768E
+_021D75E0:
+ mov r2, #1
+ add r3, r0, #0
+ tst r3, r2
+ beq _021D75F8
+ ldr r0, [r4, #0x1c]
+ mov r1, #4
+ eor r0, r2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD70_021D7698
+ b _021D768E
+_021D75F8:
+ mov r2, #0x20
+ tst r2, r0
+ beq _021D7612
+ add r0, r4, #0
+ bl MOD70_021D76AC
+ cmp r0, #0
+ beq _021D768E
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD70_021D7698
+ b _021D768E
+_021D7612:
+ mov r2, #0x10
+ tst r2, r0
+ beq _021D762C
+ add r0, r4, #0
+ bl MOD70_021D76E8
+ cmp r0, #0
+ beq _021D768E
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD70_021D7698
+ b _021D768E
+_021D762C:
+ mov r2, #0x40
+ tst r2, r0
+ beq _021D765C
+ ldr r0, [r4, #0x18]
+ sub r0, r0, #1
+ str r0, [r4, #0x18]
+ bpl _021D7654
+ add r0, r4, #0
+ bl MOD70_021D76AC
+ cmp r0, #0
+ beq _021D768E
+ ldr r0, [r4, #0x14]
+ mov r1, #3
+ sub r0, r0, #1
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD70_021D7698
+ b _021D768E
+_021D7654:
+ add r0, r4, #0
+ bl MOD70_021D7698
+ b _021D768E
+_021D765C:
+ mov r2, #0x80
+ tst r0, r2
+ beq _021D768E
+ ldr r0, [r4, #0x18]
+ add r2, r0, #1
+ str r2, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ cmp r2, r0
+ blt _021D7682
+ add r0, r4, #0
+ bl MOD70_021D76E8
+ cmp r0, #0
+ beq _021D768E
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD70_021D7698
+ b _021D768E
+_021D7682:
+ add r0, r4, #0
+ bl MOD70_021D7698
+ b _021D768E
+_021D768A:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D768E:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D7694: .word 0x021C48B8
+ thumb_func_end MOD70_021D758C
+
+ thumb_func_start MOD70_021D7698
+MOD70_021D7698: ; 0x021D7698
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl MOD70_021D7930
+ add r4, #0xd8
+ str r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D7698
+
+ thumb_func_start MOD70_021D76AC
+MOD70_021D76AC: ; 0x021D76AC
+ push {r3, lr}
+ add r1, r0, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ add r2, r1, #1
+ add r1, r0, #0
+ add r1, #0xd4
+ str r2, [r1]
+ add r1, r0, #0
+ add r1, #0xd4
+ ldr r2, [r1]
+ add r1, r0, #0
+ add r1, #0xd0
+ ldr r1, [r1]
+ cmp r2, r1
+ blt _021D76D4
+ add r1, r0, #0
+ mov r2, #0
+ add r1, #0xd4
+ str r2, [r1]
+_021D76D4:
+ add r1, r0, #0
+ add r2, r0, #0
+ add r1, #0xcc
+ add r2, #0xd4
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl MOD70_021D777C
+ mov r0, #1
+ pop {r3, pc}
+ thumb_func_end MOD70_021D76AC
+
+ thumb_func_start MOD70_021D76E8
+MOD70_021D76E8: ; 0x021D76E8
+ push {r3, lr}
+ add r1, r0, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ sub r2, r1, #1
+ add r1, r0, #0
+ add r1, #0xd4
+ str r2, [r1]
+ add r1, r0, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ cmp r1, #0
+ bge _021D7710
+ add r1, r0, #0
+ add r1, #0xd0
+ ldr r1, [r1]
+ sub r2, r1, #1
+ add r1, r0, #0
+ add r1, #0xd4
+ str r2, [r1]
+_021D7710:
+ add r1, r0, #0
+ add r2, r0, #0
+ add r1, #0xcc
+ add r2, #0xd4
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl MOD70_021D777C
+ mov r0, #1
+ pop {r3, pc}
+ thumb_func_end MOD70_021D76E8
+
+ thumb_func_start MOD70_021D7724
+MOD70_021D7724: ; 0x021D7724
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ str r1, [sp, #4]
+ mov r4, #0
+ add r5, r0, #0
+ mov r6, #0xc
+ mov r7, #0x3c
+_021D7734:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_020219F4
+ str r0, [r5, #0x20]
+ mov r0, #8
+ mov r1, #0x3c
+ bl FUN_020219F4
+ str r0, [r5, #0x24]
+ add r4, r4, #1
+ add r5, #0x1c
+ cmp r4, #6
+ blt _021D7734
+ ldr r0, [sp]
+ mov r2, #0
+ ldr r1, [sp, #4]
+ str r2, [r0, #0x1c]
+ bl MOD70_021D777C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_021D7724
+
+ thumb_func_start MOD70_021D7760
+MOD70_021D7760: ; 0x021D7760
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021D7766:
+ ldr r0, [r5, #0x20]
+ bl FUN_02021A20
+ ldr r0, [r5, #0x24]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, #0x1c
+ cmp r4, #6
+ blt _021D7766
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD70_021D7760
+
+ thumb_func_start MOD70_021D777C
+MOD70_021D777C: ; 0x021D777C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r6, r0, #0
+ str r2, [sp]
+ add r0, r7, #0
+ add r1, r2, #0
+ bl FUN_0202B21C
+ str r0, [r6]
+ ldr r1, [sp]
+ add r0, r7, #0
+ bl FUN_0202B250
+ str r0, [r6, #0x14]
+ ldr r1, [sp]
+ add r0, r7, #0
+ add r2, r6, #4
+ bl FUN_0202B31C
+ ldr r0, [r6, #0x14]
+ mov r4, #0
+ cmp r0, #0
+ ble _021D77C4
+ add r5, r6, #0
+ add r5, #0x20
+_021D77AE:
+ ldr r1, [sp]
+ add r0, r7, #0
+ add r2, r4, #0
+ add r3, r5, #0
+ bl FUN_0202B29C
+ ldr r0, [r6, #0x14]
+ add r4, r4, #1
+ add r5, #0x1c
+ cmp r4, r0
+ blt _021D77AE
+_021D77C4:
+ mov r0, #0
+ str r0, [r6, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D777C
+
+ thumb_func_start MOD70_021D77CC
+MOD70_021D77CC: ; 0x021D77CC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r6, r1, #0
+ add r5, r0, #0
+ ldr r1, _021D7894 ; =0x00000E1C
+ mov r0, #0x3d
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021D788C
+ str r5, [r4]
+ str r6, [r4, #4]
+ mov r0, #0x3d
+ bl FUN_02016B94
+ str r0, [r4, #0x10]
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x80
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x3d
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ add r1, r4, #0
+ mov r0, #0x40
+ add r1, #0x38
+ mov r2, #0x3d
+ bl FUN_02008C9C
+ str r0, [r4, #0x34]
+ ldr r2, _021D7898 ; =0x00000139
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x3d
+ bl FUN_0200A86C
+ mov r2, #6
+ lsl r2, r2, #6
+ str r0, [r4, r2]
+ mov r0, #1
+ mov r1, #0x1a
+ sub r2, #0x16
+ mov r3, #0x3d
+ bl FUN_0200A86C
+ mov r2, #0x61
+ lsl r2, r2, #2
+ str r0, [r4, r2]
+ mov r0, #1
+ mov r1, #0x1a
+ add r2, #0xc8
+ mov r3, #0x3d
+ bl FUN_0200A86C
+ mov r1, #0x62
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x3d
+ bl FUN_0200AA80
+ mov r1, #0x63
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x8c
+ add r0, r1, #0
+ mov r1, #0x3d
+ bl FUN_020219F4
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ sub r1, #0x90
+ add r0, r1, #0
+ mov r1, #0x3d
+ bl FUN_020219F4
+ mov r1, #0x65
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x3d
+ bl FUN_020669C0
+ mov r1, #0x66
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, _021D789C ; =MOD70_021D790C
+ add r1, r4, #0
+ bl FUN_02015F10
+_021D788C:
+ add r0, r4, #0
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D7894: .word 0x00000E1C
+_021D7898: .word 0x00000139
+_021D789C: .word MOD70_021D790C
+ thumb_func_end MOD70_021D77CC
+
+ thumb_func_start MOD70_021D78A0
+MOD70_021D78A0: ; 0x021D78A0
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021D790A
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ mov r0, #0x62
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x34]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+_021D790A:
+ pop {r4, pc}
+ thumb_func_end MOD70_021D78A0
+
+ thumb_func_start MOD70_021D790C
+MOD70_021D790C: ; 0x021D790C
+ push {r3, lr}
+ ldr r0, [r0, #0x34]
+ bl FUN_0201FDEC
+ bl FUN_02009F80
+ ldr r3, _021D7928 ; =0x027E0000
+ ldr r1, _021D792C ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ nop
+_021D7928: .word 0x027E0000
+_021D792C: .word 0x00003FF8
+ thumb_func_end MOD70_021D790C
+
+ thumb_func_start MOD70_021D7930
+MOD70_021D7930: ; 0x021D7930
+ push {r3, lr}
+ add r2, r1, #0
+ str r2, [r0, #0xc]
+ mov r1, #0
+ lsl r3, r2, #2
+ str r1, [r0, #8]
+ ldr r2, _021D7954 ; =0x021D82E0
+ add r1, r0, #0
+ ldr r2, [r2, r3]
+ add r1, #8
+ blx r2
+ cmp r0, #0
+ bne _021D794E
+ mov r0, #1
+ pop {r3, pc}
+_021D794E:
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_021D7954: .word 0x021D82E0
+ thumb_func_end MOD70_021D7930
+
+ thumb_func_start MOD70_021D7958
+MOD70_021D7958: ; 0x021D7958
+ push {r3, lr}
+ ldr r2, [r0, #0xc]
+ add r1, r0, #0
+ lsl r3, r2, #2
+ ldr r2, _021D796C ; =0x021D82E0
+ add r1, #8
+ ldr r2, [r2, r3]
+ blx r2
+ pop {r3, pc}
+ nop
+_021D796C: .word 0x021D82E0
+ thumb_func_end MOD70_021D7958
+
+ thumb_func_start MOD70_021D7970
+MOD70_021D7970: ; 0x021D7970
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _021D7984
+ cmp r1, #1
+ beq _021D79AC
+ b _021D79BA
+_021D7984:
+ bl MOD70_021D7AF4
+ add r0, r5, #0
+ bl MOD70_021D7F70
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3d
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D79BA
+_021D79AC:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D79BA
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021D79BA:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ thumb_func_end MOD70_021D7970
+
+ thumb_func_start MOD70_021D79C0
+MOD70_021D79C0: ; 0x021D79C0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D79D4
+ cmp r0, #1
+ beq _021D79FA
+ b _021D7A14
+_021D79D4:
+ ldr r0, _021D7A1C ; =0x0000060E
+ bl FUN_020054C8
+ mov r1, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3d
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D7A14
+_021D79FA:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7A14
+ add r0, r5, #0
+ bl MOD70_021D7FC4
+ add r0, r5, #0
+ bl MOD70_021D7C10
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021D7A14:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021D7A1C: .word 0x0000060E
+ thumb_func_end MOD70_021D79C0
+
+ thumb_func_start MOD70_021D7A20
+MOD70_021D7A20: ; 0x021D7A20
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r7, [r0, #4]
+ str r0, [sp]
+ ldr r0, [r7, #0x14]
+ mov r4, #0
+ cmp r0, #0
+ ble _021D7A82
+ ldr r5, [sp]
+ add r6, r7, #0
+_021D7A32:
+ ldr r0, [r7, #0x18]
+ cmp r4, r0
+ bne _021D7A5E
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02020398
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02020310
+ mov r0, #1
+ bl FUN_02005E80
+ ldrh r0, [r6, #0x30]
+ bl FUN_02005578
+ b _021D7A76
+_021D7A5E:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02020398
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r4, #1
+ bl FUN_02020310
+_021D7A76:
+ ldr r0, [r7, #0x14]
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0x1c
+ cmp r4, r0
+ blt _021D7A32
+_021D7A82:
+ ldr r0, [sp]
+ bl MOD70_021D7D98
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_021D7A20
+
+ thumb_func_start MOD70_021D7A8C
+MOD70_021D7A8C: ; 0x021D7A8C
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ cmp r1, #3
+ bhi _021D7AD6
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D7AA2: ; jump table
+ .short _021D7AAA - _021D7AA2 - 2 ; case 0
+ .short _021D7AB6 - _021D7AA2 - 2 ; case 1
+ .short _021D7AC2 - _021D7AA2 - 2 ; case 2
+ .short _021D7ACE - _021D7AA2 - 2 ; case 3
+_021D7AAA:
+ bl MOD70_021D7CC0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D7AD6
+_021D7AB6:
+ bl MOD70_021D820C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D7AD6
+_021D7AC2:
+ bl MOD70_021D80C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D7AD6
+_021D7ACE:
+ bl MOD70_021D7CB0
+ mov r0, #1
+ pop {r4, pc}
+_021D7AD6:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D7A8C
+
+ thumb_func_start MOD70_021D7ADC
+MOD70_021D7ADC: ; 0x021D7ADC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D7AF0 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD70_021D7D98
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D7AF0: .word 0x000005DC
+ thumb_func_end MOD70_021D7ADC
+
+ thumb_func_start MOD70_021D7AF4
+MOD70_021D7AF4: ; 0x021D7AF4
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, _021D7BF8 ; =0x021D8284
+ bl FUN_0201E66C
+ ldr r2, _021D7BFC ; =0x04000304
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2]
+ ldr r0, _021D7C00 ; =0x021D823C
+ bl FUN_02016BBC
+ ldr r0, [r5, #0x10]
+ ldr r2, _021D7C04 ; =0x021D8268
+ mov r1, #1
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #0x10]
+ ldr r2, _021D7C08 ; =0x021D824C
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r0, #0x3d
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x65
+ mov r3, #2
+ bl FUN_0200687C
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3d
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x65
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0x40
+ str r0, [sp]
+ mov r0, #0x3d
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x65
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r2, #0
+ str r2, [sp]
+ mov r1, #1
+ ldr r0, [r5, #0x10]
+ add r3, r1, #0
+ bl FUN_02017F48
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02018540
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD70_021D7C2C
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD70_021D7CB0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x3d
+ str r0, [sp, #4]
+ lsl r2, r4, #0x10
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FUN_0200CB00
+ add r0, r5, #0
+ lsl r2, r4, #0x10
+ add r0, #0x14
+ mov r1, #0
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ lsl r2, r4, #0x10
+ add r0, #0x24
+ mov r1, #0
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FUN_0200CCA4
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ bl FUN_02017CD0
+ mov r3, #8
+ ldr r0, _021D7C0C ; =0x04000050
+ mov r1, #0
+ mov r2, #6
+ str r3, [sp]
+ bl G2x_SetBlendAlpha_
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7BF8: .word 0x021D8284
+_021D7BFC: .word 0x04000304
+_021D7C00: .word 0x021D823C
+_021D7C04: .word 0x021D8268
+_021D7C08: .word 0x021D824C
+_021D7C0C: .word 0x04000050
+ thumb_func_end MOD70_021D7AF4
+
+ thumb_func_start MOD70_021D7C10
+MOD70_021D7C10: ; 0x021D7C10
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD70_021D7C98
+ pop {r4, pc}
+ thumb_func_end MOD70_021D7C10
+
+ thumb_func_start MOD70_021D7C2C
+MOD70_021D7C2C: ; 0x021D7C2C
+ push {r4, r5, lr}
+ sub sp, #0x14
+ mov r2, #1
+ add r5, r0, #0
+ str r2, [sp]
+ mov r0, #0x1e
+ str r0, [sp, #4]
+ mov r0, #2
+ add r4, r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ add r1, r5, #0
+ ldr r0, [r5, #0x10]
+ add r1, #0x14
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1e
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0x3c
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ add r1, r5, #0
+ mov r2, #1
+ ldr r0, [r5, #0x10]
+ add r1, #0x24
+ add r3, r2, #0
+ bl FUN_02019064
+ add r0, r5, #0
+ add r0, #0x14
+ bl FUN_02019270
+ add r5, #0x24
+ add r0, r5, #0
+ bl FUN_02019270
+ add r4, #0xb4
+ add r0, r4, #0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D7C2C
+
+ thumb_func_start MOD70_021D7C98
+MOD70_021D7C98: ; 0x021D7C98
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ add r5, #0x14
+_021D7CA0:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #2
+ blt _021D7CA0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD70_021D7C98
+
+ thumb_func_start MOD70_021D7CB0
+MOD70_021D7CB0: ; 0x021D7CB0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD70_021D7CE8
+ add r0, r4, #0
+ bl MOD70_021D7D98
+ pop {r4, pc}
+ thumb_func_end MOD70_021D7CB0
+
+ thumb_func_start MOD70_021D7CC0
+MOD70_021D7CC0: ; 0x021D7CC0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x14
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x24
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019548
+ add r4, #0x24
+ add r0, r4, #0
+ bl FUN_02019548
+ pop {r4, pc}
+ thumb_func_end MOD70_021D7CC0
+
+ thumb_func_start MOD70_021D7CE8
+MOD70_021D7CE8: ; 0x021D7CE8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ add r6, r5, #0
+ ldr r0, [r5, r0]
+ ldr r2, [r4]
+ mov r3, #4
+ add r6, #0x14
+ bl FUN_0200AD38
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ mov r2, #0x7d
+ ldr r3, [r4, #4]
+ lsl r2, r2, #4
+ add r2, r3, r2
+ ldr r0, [r5, r0]
+ mov r3, #4
+ bl FUN_0200AD38
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, [r4, #8]
+ mov r1, #2
+ bl FUN_0200B764
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, [r4, #0xc]
+ mov r1, #3
+ mov r3, #2
+ bl FUN_0200AD38
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #0
+ bl FUN_0200A8E0
+ mov r2, #0x63
+ lsl r2, r2, #2
+ add r1, r2, #0
+ ldr r0, [r5, r2]
+ add r1, #8
+ add r2, r2, #4
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ add r2, #0x95
+ ldr r2, [r5, r2]
+ add r0, r6, #0
+ add r3, r1, #0
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02019548
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD70_021D7CE8
+
+ thumb_func_start MOD70_021D7D98
+MOD70_021D7D98: ; 0x021D7D98
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r0, #0x1c
+ ldr r1, [r4, #0x18]
+ add r2, r4, #0
+ mul r0, r1
+ add r2, #0x20
+ add r7, r2, r0
+ add r0, r5, #0
+ str r0, [sp, #0xc]
+ add r0, #0x24
+ mov r1, #0xf
+ str r0, [sp, #0xc]
+ bl FUN_02019620
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _021D7DC8
+ cmp r0, #1
+ bne _021D7DC6
+ b _021D7F1C
+_021D7DC6:
+ b _021D7F66
+_021D7DC8:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r0, [sp, #0xc]
+ ldr r2, [r7]
+ add r3, r1, #0
+ bl FUN_0201BD84
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #5
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ add r2, #0x91
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r3, #0x48
+ bl FUN_0201BD84
+ mov r2, #0x61
+ lsl r2, r2, #2
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldrh r1, [r7, #0x10]
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ add r2, #0x91
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r3, #0x5e
+ bl FUN_0201BD84
+ ldrh r0, [r7, #0x10]
+ ldr r1, [r7, #8]
+ bl FUN_02068A20
+ cmp r0, #0
+ beq _021D7E3A
+ cmp r0, #1
+ beq _021D7E4C
+ b _021D7E5E
+_021D7E3A:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #3
+ bl FUN_0200A8E0
+ b _021D7E68
+_021D7E4C:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #4
+ bl FUN_0200A8E0
+ b _021D7E68
+_021D7E5E:
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02021A4C
+_021D7E68:
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ add r2, #0x91
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r3, #0xae
+ bl FUN_0201BD84
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #1
+ bl FUN_0200A8E0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldrb r2, [r7, #0x12]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ mov r2, #0x63
+ lsl r2, r2, #2
+ add r1, r2, #0
+ ldr r0, [r5, r2]
+ add r1, #8
+ add r2, r2, #4
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ add r2, #0x95
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r3, #0xc2
+ bl FUN_0201BD84
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #2
+ bl FUN_0200A8E0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ add r2, #0x91
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ add r3, r1, #0
+ bl FUN_0201BD84
+ mov r1, #0x19
+ lsl r1, r1, #4
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ ldr r0, [sp, #0xc]
+ ldr r2, [r7, #4]
+ bl FUN_0201BD84
+ b _021D7F66
+_021D7F1C:
+ mov r4, #0
+_021D7F1E:
+ ldrh r1, [r7, #0x14]
+ cmp r1, #0
+ beq _021D7F66
+ mov r0, #0x62
+ mov r2, #0x19
+ lsl r0, r0, #2
+ lsl r2, r2, #4
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ lsr r0, r4, #0x1f
+ add r0, r4, r0
+ asr r0, r0, #1
+ lsl r0, r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0
+ mov r2, #0x19
+ str r0, [sp, #8]
+ lsl r2, r2, #4
+ mov r3, #1
+ add r6, r4, #0
+ and r6, r3
+ mov r3, #0x60
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r1, #0
+ mul r3, r6
+ bl FUN_0201BD84
+ add r4, r4, #1
+ add r7, r7, #2
+ cmp r4, #4
+ blt _021D7F1E
+_021D7F66:
+ ldr r0, [sp, #0xc]
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_021D7D98
+
+ thumb_func_start MOD70_021D7F70
+MOD70_021D7F70: ; 0x021D7F70
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0x3d
+ str r0, [sp]
+ mov r0, #0x1b
+ mov r1, #0x29
+ mov r2, #0
+ add r3, sp, #8
+ bl FUN_02006C30
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x3d
+ str r0, [sp]
+ mov r0, #0x1b
+ mov r1, #0x2a
+ mov r2, #0
+ add r3, sp, #4
+ bl FUN_02006C5C
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r1, #0x20
+ mov r2, #0x32
+ mov r0, #0
+ add r1, r4, r1
+ lsl r2, r2, #6
+ bl MIi_CpuClearFast
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ add r0, r4, #0
+ bl MOD70_021D7FF8
+ add r0, r4, #0
+ bl MOD70_021D80C8
+ add sp, #0xc
+ pop {r3, r4, pc}
+ thumb_func_end MOD70_021D7F70
+
+ thumb_func_start MOD70_021D7FC4
+MOD70_021D7FC4: ; 0x021D7FC4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r6, #0x16
+ mov r4, #0
+ add r5, r7, #0
+ lsl r6, r6, #4
+_021D7FD0:
+ ldr r0, [r5, r6]
+ cmp r0, #0
+ beq _021D7FDA
+ bl FUN_0201FFC8
+_021D7FDA:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _021D7FD0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_02016A18
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_021D7FC4
+
+ thumb_func_start MOD70_021D7FF8
+MOD70_021D7FF8: ; 0x021D7FF8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x94
+ mov r3, #0
+ add r5, r0, #0
+ str r1, [sp, #0x7c]
+ str r2, [sp, #0x80]
+ str r3, [sp, #0x74]
+ str r3, [sp, #0x84]
+ str r3, [sp, #0x88]
+ str r3, [sp, #0x8c]
+ add r0, sp, #0x90
+ strb r3, [r0]
+ add r0, sp, #0x2c
+ str r0, [sp, #0x70]
+ add r0, sp, #0x18
+ str r0, [sp, #0x78]
+ ldr r0, [r5, #0x34]
+ mov r1, #0x28
+ str r0, [sp, #0x50]
+ add r0, sp, #0x70
+ str r0, [sp, #0x54]
+ mov r0, #1
+ str r0, [sp, #0x68]
+ mov r0, #0x3d
+ str r3, [sp, #0x60]
+ str r0, [sp, #0x6c]
+ str r0, [sp]
+ add r2, r3, #0
+ mov r0, #0x1b
+ add r3, sp, #0x14
+ bl FUN_02006BB0
+ str r0, [sp, #0xc]
+ mov r0, #0x1b
+ mov r1, #0x27
+ add r2, sp, #0x10
+ mov r3, #0x3d
+ bl FUN_02006C08
+ mov r4, #0
+ ldr r6, _021D80C4 ; =0x021D82AC
+ str r0, [sp, #8]
+ str r4, [sp, #4]
+ add r7, r4, #0
+_021D8050:
+ add r0, sp, #0x2c
+ bl FUN_020B1A24
+ add r0, sp, #0x18
+ bl FUN_020B19DC
+ ldr r0, [sp, #0x14]
+ add r1, r4, #0
+ mov r2, #1
+ add r3, sp, #0x2c
+ bl FUN_020B1768
+ ldr r0, [sp, #0x10]
+ add r1, r7, #0
+ mov r2, #1
+ add r3, sp, #0x18
+ bl FUN_020B1240
+ ldr r0, [r6]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x58]
+ ldr r0, [r6, #4]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #0x64]
+ add r0, sp, #0x50
+ bl FUN_0201FF84
+ mov r1, #0x16
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0x32
+ lsl r0, r0, #6
+ add r4, r4, r0
+ ldr r0, [sp, #4]
+ add r7, #0x20
+ add r0, r0, #1
+ add r6, #8
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r0, #6
+ blt _021D8050
+ ldr r0, [sp, #8]
+ bl FUN_02016A18
+ ldr r0, [sp, #0xc]
+ bl FUN_02016A18
+ add sp, #0x94
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D80C4: .word 0x021D82AC
+ thumb_func_end MOD70_021D7FF8
+
+ thumb_func_start MOD70_021D80C8
+MOD70_021D80C8: ; 0x021D80C8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r7, r0, #0
+ ldr r0, [r7, #4]
+ mov r4, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bgt _021D80DC
+ b _021D81E4
+_021D80DC:
+ ldr r5, [sp, #0x20]
+ str r4, [sp, #0x18]
+ add r0, r5, #0
+ str r0, [sp, #0x1c]
+ add r0, #0x33
+ str r0, [sp, #0x1c]
+ mov r0, #0x67
+ lsl r0, r0, #2
+ add r0, r7, r0
+ str r4, [sp, #0x14]
+ add r6, r7, #0
+ str r0, [sp, #0x24]
+_021D80F4:
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [r5, #0x28]
+ add r2, r5, #0
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x2c]
+ add r2, #0x32
+ str r0, [sp, #0xc]
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldrh r1, [r5, #0x30]
+ ldrb r2, [r2]
+ ldr r0, [r7, r0]
+ mov r3, #0x20
+ bl FUN_02066ACC
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ ldr r2, [sp, #0x1c]
+ mov r1, #0x70
+ bl FUN_02067830
+ mov r1, #0x66
+ lsl r1, r1, #2
+ ldr r1, [r7, r1]
+ add r0, sp, #0x28
+ mov r2, #2
+ bl FUN_02068B68
+ ldr r0, [sp, #0x24]
+ add r1, sp, #0x28
+ str r0, [sp]
+ ldr r0, [r5, #0x28]
+ ldr r3, _021D8208 ; =0x021D822C
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #2
+ str r0, [sp, #0xc]
+ ldrh r0, [r5, #0x30]
+ mov r2, #0x3d
+ str r0, [sp, #0x10]
+ add r0, sp, #0x28
+ ldrh r0, [r0]
+ ldrh r1, [r1, #2]
+ bl FUN_02012530
+ mov r1, #0x32
+ ldr r0, [sp, #0x24]
+ lsl r1, r1, #6
+ bl DC_FlushRange
+ mov r2, #0x32
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x18]
+ lsl r2, r2, #6
+ bl GX_LoadOBJ
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x3d
+ str r0, [sp, #4]
+ add r0, sp, #0x28
+ add r1, sp, #0x28
+ ldrh r0, [r0]
+ ldrh r1, [r1, #4]
+ ldr r3, [sp, #0x14]
+ mov r2, #1
+ bl FUN_02006930
+ ldr r0, [sp, #0x20]
+ ldr r0, [r0, #0x18]
+ cmp r4, r0
+ bne _021D81A8
+ mov r0, #1
+ bl FUN_02005E80
+ ldrh r0, [r5, #0x30]
+ bl FUN_02005578
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ mov r1, #0
+ bl FUN_02020398
+ b _021D81B4
+_021D81A8:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ mov r1, #1
+ bl FUN_02020398
+_021D81B4:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ add r0, #0x1c
+ str r0, [sp, #0x1c]
+ mov r0, #0x32
+ lsl r0, r0, #6
+ add r0, r1, r0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r4, r4, #1
+ add r0, #0x20
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ add r5, #0x1c
+ ldr r0, [r0, #0x14]
+ add r6, r6, #4
+ cmp r4, r0
+ blt _021D80F4
+_021D81E4:
+ cmp r4, #6
+ bge _021D8202
+ lsl r0, r4, #2
+ mov r6, #0x16
+ add r5, r7, r0
+ mov r7, #0
+ lsl r6, r6, #4
+_021D81F2:
+ ldr r0, [r5, r6]
+ add r1, r7, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _021D81F2
+_021D8202:
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8208: .word 0x021D822C
+ thumb_func_end MOD70_021D80C8
+
+ thumb_func_start MOD70_021D820C
+MOD70_021D820C: ; 0x021D820C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ mov r6, #0x16
+ add r5, r0, #0
+ add r7, r4, #0
+ lsl r6, r6, #4
+_021D8218:
+ ldr r0, [r5, r6]
+ add r1, r7, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _021D8218
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D820C
+
+ .section .rodata
+ ; 0x021D822C
+ .incbin "baserom.nds", 0x2C594C, 0xB0
+
+ .section .data
+ ; 0x021D82E0
+ .incbin "baserom.nds", 0x2C5A00, 0x20
diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s
new file mode 100644
index 00000000..9aa14aef
--- /dev/null
+++ b/arm9/modules/71/asm/module_71.s
@@ -0,0 +1,7155 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD71_0222D5C0
+MOD71_0222D5C0: ; 0x0222D5C0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _0222D72C ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _0222D730 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ ldr r2, _0222D734 ; =0x000707D0
+ mov r0, #3
+ mov r1, #0x1a
+ bl FUN_0201681C
+ ldr r1, _0222D738 ; =0x000036B4
+ add r0, r5, #0
+ mov r2, #0x1a
+ bl FUN_02006268
+ add r4, r0, #0
+ ldr r2, _0222D738 ; =0x000036B4
+ mov r0, #0
+ add r1, r4, #0
+ bl MIi_CpuClearFast
+ mov r0, #0x1a
+ bl FUN_02016B94
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xc
+ mov r1, #0x16
+ mov r2, #0x1a
+ bl FUN_0200AA90
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x1a
+ bl FUN_0200AA80
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x1a
+ bl FUN_0200AA80
+ mov r2, #6
+ lsl r2, r2, #6
+ str r0, [r4, r2]
+ mov r1, #0x1a
+ mov r0, #0
+ sub r2, #0x44
+ add r3, r1, #0
+ bl FUN_0200A86C
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0
+ str r0, [r4, #0x40]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD70_0222E76C
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ bl MOD70_0222E558
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD70_0222E578
+ mov r0, #0x10
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x1a
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r4, #0
+ bl MOD70_0222E900
+ ldr r0, _0222D73C ; =MOD70_0222E4DC
+ add r1, r4, #0
+ bl FUN_02015F10
+ bl MOD70_0222EA38
+ add r0, r4, #0
+ bl MOD70_0222EA68
+ add r0, r4, #0
+ bl MOD70_0222EF90
+ mov r0, #0x5d
+ ldr r2, [r4, #8]
+ lsl r0, r0, #2
+ ldr r1, _0222D740 ; =0x00000438
+ ldr r0, [r4, r0]
+ ldr r2, [r2, #0x18]
+ add r1, r4, r1
+ bl MOD70_02230C48
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ ldr r0, [r0]
+ str r0, [r4]
+ bl FUN_02083D10
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222D744 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r0, [r4]
+ bl FUN_02083B84
+ mov r0, #0
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r0, #0x1a
+ bl FUN_020335F0
+ bl FUN_02033E74
+ bl FUN_0201277C
+ cmp r0, #0
+ bne _0222D71A
+ ldr r1, _0222D748 ; =0x0000043D
+ mov r0, #4
+ mov r2, #1
+ bl FUN_0200433C
+ b _0222D724
+_0222D71A:
+ ldr r1, _0222D74C ; =0x0000043E
+ mov r0, #4
+ mov r2, #1
+ bl FUN_0200433C
+_0222D724:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0222D72C: .word 0xFFFFE0FF
+_0222D730: .word 0x04001000
+_0222D734: .word 0x000707D0
+_0222D738: .word 0x000036B4
+_0222D73C: .word MOD70_0222E4DC
+_0222D740: .word 0x00000438
+_0222D744: .word 0x000005A8
+_0222D748: .word 0x0000043D
+_0222D74C: .word 0x0000043E
+ thumb_func_end MOD71_0222D5C0
+
+ thumb_func_start MOD70_0222D750
+MOD70_0222D750: ; 0x0222D750
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldr r1, [sp, #0x10]
+ add r4, r2, #0
+ lsl r1, r1, #4
+ add r1, #0x92
+ mov r2, #2
+ ldr r0, [r0, #0x14]
+ add r6, r3, #0
+ lsl r1, r1, #5
+ lsl r2, r2, #8
+ bl GX_LoadOBJ
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ ldr r0, [sp, #0x14]
+ add r1, #0xa
+ bl FUN_020202A8
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD70_0222D750
+
+ thumb_func_start MOD70_0222D780
+MOD70_0222D780: ; 0x0222D780
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl FUN_02031190
+ bl FUN_0202DFA4
+ add r4, r0, #0
+ bl FUN_02031190
+ mov r1, #1
+ eor r0, r1
+ bl FUN_0202DFA4
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #0x1a
+ bl FUN_020239A0
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #0x1a
+ bl FUN_020239A0
+ add r6, r0, #0
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x30
+ bl FUN_0200A914
+ add r7, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0222D814 ; =0x00000438
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0xa
+ mov r3, #0
+ bl MOD70_02230EFC
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0222D818 ; =0x00000448
+ add r1, r6, #0
+ add r0, r5, r0
+ mov r2, #0xa
+ mov r3, #0
+ bl MOD70_02230EFC
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0222D81C ; =0x00000498
+ add r1, r7, #0
+ add r0, r5, r0
+ mov r2, #5
+ mov r3, #0
+ bl MOD70_02230EFC
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222D814: .word 0x00000438
+_0222D818: .word 0x00000448
+_0222D81C: .word 0x00000498
+ thumb_func_end MOD70_0222D780
+
+ thumb_func_start MOD70_0222D820
+MOD70_0222D820: ; 0x0222D820
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ bl MOD70_0222E558
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD70_0222E578
+ add r0, r4, #0
+ bl MOD70_0222E900
+ add r0, r4, #0
+ bl MOD70_0222D93C
+ add r0, r4, #0
+ bl MOD70_0222D780
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #0x18]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r2, #0x5d
+ str r0, [sp]
+ mov r0, #0x1a
+ lsl r2, r2, #2
+ str r0, [sp, #4]
+ ldr r0, [r4, r2]
+ mov r1, #0
+ add r2, #0x65
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #0
+ mov r2, #0x5d
+ str r1, [sp]
+ mov r0, #0x1a
+ lsl r2, r2, #2
+ str r0, [sp, #4]
+ ldr r0, [r4, r2]
+ add r2, #0x83
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222D92C ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #6
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #0
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201797C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #3
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ bl MOD70_0222EA38
+ add r0, r4, #0
+ bl MOD70_0222EA68
+ add r0, r4, #0
+ bl MOD70_0222EF90
+ ldr r0, _0222D930 ; =0x00002218
+ mov r1, #0
+ ldr r0, [r4, r0]
+ add r2, r4, #0
+ bl MOD70_0222DBEC
+ ldr r0, _0222D934 ; =0x0000221C
+ mov r1, #6
+ ldr r0, [r4, r0]
+ add r2, r4, #0
+ bl MOD70_0222DBEC
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _0222D938 ; =MOD70_0222E4DC
+ add r1, r4, #0
+ bl FUN_02015F10
+ add sp, #8
+ pop {r4, pc}
+ nop
+_0222D92C: .word 0x00000588
+_0222D930: .word 0x00002218
+_0222D934: .word 0x0000221C
+_0222D938: .word MOD70_0222E4DC
+ thumb_func_end MOD70_0222D820
+
+ thumb_func_start MOD70_0222D93C
+MOD70_0222D93C: ; 0x0222D93C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ ldr r1, _0222D9B8 ; =0x00002218
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ mov r2, #0
+ bl MOD70_0222DB5C
+ mov r0, #0x5e
+ ldr r1, _0222D9BC ; =0x0000221C
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ mov r2, #6
+ bl MOD70_0222DB5C
+ mov r0, #0
+ mov r2, #0x5e
+ str r0, [sp]
+ lsl r2, r2, #2
+ ldr r3, _0222D9B8 ; =0x00002218
+ ldr r0, _0222D9C0 ; =0x000004A8
+ ldr r1, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ ldr r3, [r5, r3]
+ add r0, r5, r0
+ bl MOD70_0222DB94
+ mov r0, #6
+ mov r2, #0x5e
+ str r0, [sp]
+ lsl r2, r2, #2
+ ldr r3, _0222D9BC ; =0x0000221C
+ ldr r0, _0222D9C4 ; =0x00000508
+ ldr r1, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ ldr r3, [r5, r3]
+ add r0, r5, r0
+ bl MOD70_0222DB94
+ ldr r0, _0222D9B8 ; =0x00002218
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ add r4, r0, #0
+ ldr r0, _0222D9BC ; =0x0000221C
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ add r2, r0, #0
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl MOD70_0222E8DC
+ pop {r3, r4, r5, pc}
+ nop
+_0222D9B8: .word 0x00002218
+_0222D9BC: .word 0x0000221C
+_0222D9C0: .word 0x000004A8
+_0222D9C4: .word 0x00000508
+ thumb_func_end MOD70_0222D93C
+
+ thumb_func_start MOD70_0222D9C8
+MOD70_0222D9C8: ; 0x0222D9C8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ bl FUN_02006278
+ ldr r1, [r5]
+ add r4, r0, #0
+ mov r6, #0
+ cmp r1, #0
+ beq _0222D9E8
+ cmp r1, #1
+ beq _0222D9FC
+ cmp r1, #2
+ bne _0222D9E6
+ b _0222DB28
+_0222D9E6:
+ b _0222DB32
+_0222D9E8:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222DA02
+ mov r0, #1
+ str r0, [r5]
+ add r0, r4, #0
+ bl MOD70_0222D780
+ b _0222DB32
+_0222D9FC:
+ ldr r1, [r4, #0x48]
+ cmp r1, #7
+ bls _0222DA04
+_0222DA02:
+ b _0222DB32
+_0222DA04:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222DA10: ; jump table
+ .short _0222DA20 - _0222DA10 - 2 ; case 0
+ .short _0222DA28 - _0222DA10 - 2 ; case 1
+ .short _0222DA36 - _0222DA10 - 2 ; case 2
+ .short _0222DA54 - _0222DA10 - 2 ; case 3
+ .short _0222DA72 - _0222DA10 - 2 ; case 4
+ .short _0222DAAE - _0222DA10 - 2 ; case 5
+ .short _0222DAFE - _0222DA10 - 2 ; case 6
+ .short _0222DB1A - _0222DA10 - 2 ; case 7
+_0222DA20:
+ bl MOD70_0222DD60
+ str r0, [r4, #0x48]
+ b _0222DB32
+_0222DA28:
+ bl MOD70_0222E2D4
+ str r0, [r4, #0x48]
+ add r0, r4, #0
+ bl MOD70_0222F264
+ b _0222DB32
+_0222DA36:
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r6, #0
+ add r2, r6, #0
+ add r3, r6, #0
+ bl FUN_0200E1D0
+ mov r0, #2
+ str r0, [r5]
+ b _0222DB32
+_0222DA54:
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r6, #0
+ add r2, r6, #0
+ add r3, r6, #0
+ bl FUN_0200E1D0
+ mov r0, #4
+ str r0, [r4, #0x48]
+ b _0222DB32
+_0222DA72:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222DB32
+ add r0, r4, #0
+ bl MOD70_0222E3D4
+ add r0, r4, #0
+ bl MOD70_0222E378
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD70_0222E848
+ mov r0, #1
+ str r0, [r4, #0x44]
+ mov r0, #5
+ str r0, [r4, #0x48]
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #6
+ bl _s32_div_f
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD70_0222F59C
+ b _0222DB32
+_0222DAAE:
+ ldr r0, [r4, #0x40]
+ bl FUN_02006290
+ cmp r0, #0
+ beq _0222DB32
+ ldr r0, [r4, #0x40]
+ bl FUN_02006260
+ add r0, r4, #0
+ bl MOD70_0222D820
+ add r0, r6, #0
+ str r0, [r4, #0x44]
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r2, [r0]
+ ldr r1, [r4, #0x3c]
+ mov r0, #6
+ mul r0, r1
+ add r1, r2, r0
+ add r0, r4, #0
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ bl MOD70_0222E224
+ add r0, r4, #0
+ mov r1, #0xce
+ add r0, #0x88
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, r6, #0
+ bl MOD70_0222F350
+ bl FUN_02033E74
+ mov r0, #6
+ str r0, [r4, #0x48]
+ b _0222DB32
+_0222DAFE:
+ mov r0, #8
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x1a
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r6, #0
+ bl FUN_0200E1D0
+ mov r0, #7
+ str r0, [r4, #0x48]
+ b _0222DB32
+_0222DB1A:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222DB32
+ mov r0, #1
+ str r0, [r4, #0x48]
+ b _0222DB32
+_0222DB28:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222DB32
+ mov r6, #1
+_0222DB32:
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ bne _0222DB48
+ add r0, r4, #0
+ bl MOD70_02230B3C
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0201FDEC
+_0222DB48:
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r0, #0x1a
+ bl FUN_020335F0
+ add r0, r6, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222D9C8
+
+ thumb_func_start MOD70_0222DB5C
+MOD70_0222DB5C: ; 0x0222DB5C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ add r6, r2, #0
+ mov r4, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222DB92
+_0222DB70:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r7, #0
+ add r1, r4, r6
+ bl FUN_0200ACF8
+ add r0, r5, #0
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _0222DB70
+_0222DB92:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_0222DB5C
+
+ thumb_func_start MOD70_0222DB94
+MOD70_0222DB94: ; 0x0222DB94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r0, r3, #0
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ str r3, [sp, #0x10]
+ ldr r6, [sp, #0x28]
+ mov r4, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222DBE6
+ add r7, r6, #1
+_0222DBB0:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ add r2, r7, r4
+ mov r3, #0x1a
+ bl FUN_0200A9C4
+ add r6, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD70_02230EFC
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x10]
+ add r5, #0x10
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _0222DBB0
+_0222DBE6:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222DB94
+
+ thumb_func_start MOD70_0222DBEC
+MOD70_0222DBEC: ; 0x0222DBEC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r2, [sp, #0x20]
+ mov r7, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ bgt _0222DC02
+ b _0222DD10
+_0222DC02:
+ mov r1, #0x1f
+ ldr r0, [sp, #0x20]
+ lsl r1, r1, #6
+ add r0, r0, r1
+ str r0, [sp, #0x1c]
+_0222DC0C:
+ ldr r0, [sp, #0xc]
+ ldr r2, _0222DD50 ; =0x00000696
+ add r0, r7, r0
+ str r0, [sp, #0x10]
+ lsl r0, r0, #2
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x10]
+ lsl r1, r0, #4
+ ldr r0, [sp, #0x20]
+ add r4, r0, r1
+ ldr r1, [sp, #0x18]
+ ldrb r2, [r4, r2]
+ add r5, r0, r1
+ mov r0, #0x69
+ ldr r1, _0222DD54 ; =0x00000695
+ lsl r0, r0, #4
+ ldrh r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ bl FUN_0206B6D4
+ add r1, r0, #0
+ mov r0, #0x1a
+ str r0, [sp]
+ ldr r6, [sp, #0x1c]
+ ldr r3, [sp, #0x18]
+ mov r0, #0x13
+ mov r2, #0
+ add r3, r6, r3
+ bl FUN_02006BB0
+ mov r1, #0x79
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ add r0, #0x30
+ ldr r0, [r5, r0]
+ mov r1, #2
+ ldr r0, [r0, #0x14]
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ ldr r0, [sp, #0x10]
+ mov r1, #0x69
+ str r0, [sp]
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r2, _0222DD50 ; =0x00000696
+ str r0, [sp, #4]
+ ldr r3, _0222DD54 ; =0x00000695
+ mov r0, #0x1f
+ lsl r1, r1, #4
+ lsl r0, r0, #6
+ ldrh r1, [r4, r1]
+ ldrb r2, [r4, r2]
+ ldrb r3, [r4, r3]
+ ldr r0, [r5, r0]
+ bl MOD70_0222D750
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _0222DD58 ; =0x00000692
+ ldrh r0, [r4, r0]
+ cmp r0, #0
+ bne _0222DCA4
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _0222DCCC
+_0222DCA4:
+ ldr r0, [sp, #0x10]
+ lsl r1, r0, #2
+ ldr r0, [sp, #0x20]
+ add r1, r0, r1
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ str r1, [sp, #0x14]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x3a
+ ldr r1, [sp, #0x14]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ ldr r1, _0222DD58 ; =0x00000692
+ ldrh r1, [r4, r1]
+ add r1, r1, #2
+ bl FUN_02020130
+_0222DCCC:
+ ldr r0, _0222DD5C ; =0x0000069C
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222DCE2
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _0222DD02
+_0222DCE2:
+ ldr r0, [sp, #0x10]
+ lsl r1, r0, #2
+ ldr r0, [sp, #0x20]
+ add r4, r0, r1
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0x15
+ bl FUN_02020130
+_0222DD02:
+ ldr r0, [sp, #8]
+ add r7, r7, #1
+ bl FUN_0206B9AC
+ cmp r7, r0
+ bge _0222DD10
+ b _0222DC0C
+_0222DD10:
+ cmp r7, #6
+ bge _0222DD4C
+ ldr r0, [sp, #0xc]
+ mov r6, #0x3a
+ lsl r1, r0, #2
+ ldr r0, [sp, #0x20]
+ lsl r6, r6, #4
+ add r1, r0, r1
+ lsl r0, r7, #2
+ add r5, r6, #0
+ add r4, r1, r0
+ add r5, #0x30
+_0222DD28:
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4, r6]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4, r5]
+ mov r1, #0
+ bl FUN_020200A0
+ add r7, r7, #1
+ add r4, r4, #4
+ cmp r7, #6
+ blt _0222DD28
+_0222DD4C:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222DD50: .word 0x00000696
+_0222DD54: .word 0x00000695
+_0222DD58: .word 0x00000692
+_0222DD5C: .word 0x0000069C
+ thumb_func_end MOD70_0222DBEC
+
+ thumb_func_start MOD70_0222DD60
+MOD70_0222DD60: ; 0x0222DD60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ bl MOD70_02230C1C
+ ldr r0, [r4, #0x4c]
+ cmp r0, #0x13
+ bls _0222DD72
+ b _0222E0E8
+_0222DD72:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222DD7E: ; jump table
+ .short _0222DDA6 - _0222DD7E - 2 ; case 0
+ .short _0222DDC0 - _0222DD7E - 2 ; case 1
+ .short _0222DE12 - _0222DD7E - 2 ; case 2
+ .short _0222DE22 - _0222DD7E - 2 ; case 3
+ .short _0222DE38 - _0222DD7E - 2 ; case 4
+ .short _0222DE48 - _0222DD7E - 2 ; case 5
+ .short _0222DE60 - _0222DD7E - 2 ; case 6
+ .short _0222DE74 - _0222DD7E - 2 ; case 7
+ .short _0222DE86 - _0222DD7E - 2 ; case 8
+ .short _0222DEB2 - _0222DD7E - 2 ; case 9
+ .short _0222DEC0 - _0222DD7E - 2 ; case 10
+ .short _0222DECC - _0222DD7E - 2 ; case 11
+ .short _0222DF58 - _0222DD7E - 2 ; case 12
+ .short _0222DF74 - _0222DD7E - 2 ; case 13
+ .short _0222DF80 - _0222DD7E - 2 ; case 14
+ .short _0222DF92 - _0222DD7E - 2 ; case 15
+ .short _0222DFD6 - _0222DD7E - 2 ; case 16
+ .short _0222E010 - _0222DD7E - 2 ; case 17
+ .short _0222E054 - _0222DD7E - 2 ; case 18
+ .short _0222E094 - _0222DD7E - 2 ; case 19
+_0222DDA6:
+ mov r0, #0x50
+ bl FUN_02031588
+ mov r0, #2
+ bl FUN_020166A8
+ add r0, r4, #0
+ bl MOD70_02230B88
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DDC0:
+ mov r0, #0x50
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0222DEB8
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #0x34]
+ cmp r0, #0
+ bne _0222DDD6
+ mov r0, #6
+ b _0222DDD8
+_0222DDD6:
+ mov r0, #2
+_0222DDD8:
+ str r0, [r4, #0x4c]
+ bl FUN_02031190
+ cmp r0, #0
+ bne _0222DE04
+ bl FUN_0201B9EC
+ ldr r1, _0222E0F0 ; =0x00000445
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x3c
+ blo _0222DDF8
+ bl ErrorHandling
+_0222DDF8:
+ bl FUN_02031190
+ mov r1, #0x1f
+ add r2, r5, #3
+ bl MOD70_0222F42C
+_0222DE04:
+ ldr r0, [r4, #4]
+ bl MOD70_0222F4A8
+ add r0, r4, #0
+ bl MOD70_02230C08
+ b _0222E0E8
+_0222DE12:
+ mov r1, #0x8b
+ lsl r1, r1, #6
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ beq _0222DEB8
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE22:
+ mov r0, #0x8b
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222DEB8
+ mov r0, #4
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE38:
+ ldr r0, _0222E0F4 ; =0x0000369C
+ add r0, r4, r0
+ bl FUN_020336C0
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE48:
+ ldr r2, _0222E0F4 ; =0x0000369C
+ ldr r0, [r4, #4]
+ mov r1, #2
+ add r2, r4, r2
+ bl FUN_020336C8
+ cmp r0, #0
+ beq _0222DEB8
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE60:
+ mov r0, #1
+ bl FUN_02031400
+ mov r0, #0x51
+ bl FUN_02031588
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE74:
+ mov r0, #0x51
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0222DEB8
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE86:
+ mov r0, #0
+ str r0, [r4, #0x50]
+ str r0, [r4, #0x54]
+ str r0, [r4, #0x58]
+ bl FUN_02031190
+ cmp r0, #1
+ bne _0222DEAA
+ bl FUN_02031190
+ ldr r1, _0222E0F8 ; =0x00002218
+ ldr r2, [r4, #0x50]
+ ldr r1, [r4, r1]
+ bl MOD70_0222F480
+ ldr r0, [r4, #0x50]
+ add r0, r0, #1
+ str r0, [r4, #0x50]
+_0222DEAA:
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DEB2:
+ ldr r0, [r4, #0x54]
+ cmp r0, #0
+ bne _0222DEBA
+_0222DEB8:
+ b _0222E0E8
+_0222DEBA:
+ mov r0, #0xa
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DEC0:
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ add r0, r4, #0
+ bl MOD70_0222D93C
+ b _0222E0E8
+_0222DECC:
+ mov r1, #0
+ mov r0, #0x69
+ add r2, r4, #0
+ add r5, r1, #0
+ lsl r0, r0, #4
+_0222DED6:
+ add r1, r1, #1
+ strh r5, [r2, r0]
+ add r2, #0x10
+ cmp r1, #0xd
+ blt _0222DED6
+ ldr r0, _0222E0F8 ; =0x00002218
+ ldr r0, [r4, r0]
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222DF12
+ mov r0, #0x69
+ lsl r0, r0, #4
+ ldr r7, _0222E0F8 ; =0x00002218
+ add r6, r4, r0
+_0222DEF4:
+ ldr r0, _0222E0F8 ; =0x00002218
+ add r1, r5, #0
+ ldr r0, [r4, r0]
+ bl FUN_0206B9B0
+ add r1, r6, #0
+ bl MOD70_0222E118
+ ldr r0, [r4, r7]
+ add r6, #0x10
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0222DEF4
+_0222DF12:
+ ldr r0, _0222E0FC ; =0x0000221C
+ mov r5, #0
+ ldr r0, [r4, r0]
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222DF48
+ mov r0, #0x69
+ lsl r0, r0, #4
+ ldr r7, _0222E0FC ; =0x0000221C
+ add r6, r4, r0
+_0222DF28:
+ ldr r0, _0222E0FC ; =0x0000221C
+ add r1, r5, #0
+ ldr r0, [r4, r0]
+ bl FUN_0206B9B0
+ add r1, r5, #6
+ lsl r1, r1, #4
+ add r1, r6, r1
+ bl MOD70_0222E118
+ ldr r0, [r4, r7]
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0222DF28
+_0222DF48:
+ mov r0, #0x75
+ mov r1, #1
+ lsl r0, r0, #4
+ strh r1, [r4, r0]
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DF58:
+ bl FUN_02031190
+ bl FUN_0202DFA4
+ ldr r2, _0222E100 ; =0x00002224
+ ldr r1, [r4, r2]
+ add r2, r2, #4
+ add r2, r4, r2
+ bl MOD70_0222F4BC
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DF74:
+ ldr r1, [r4, #0x54]
+ cmp r1, #3
+ bne _0222DFD4
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DF80:
+ ldr r0, [r4, #4]
+ bl FUN_02029EF8
+ bl MOD70_0222F528
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DF92:
+ ldr r1, [r4, #0x54]
+ cmp r1, #4
+ bne _0222DFD4
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, _0222E0F8 ; =0x00002218
+ mov r1, #0
+ ldr r0, [r4, r0]
+ add r2, r4, #0
+ bl MOD70_0222DBEC
+ ldr r0, _0222E0FC ; =0x0000221C
+ mov r1, #6
+ ldr r0, [r4, r0]
+ add r2, r4, #0
+ bl MOD70_0222DBEC
+ mov r6, #0xce
+ mov r5, #0
+ mov r7, #1
+ lsl r6, r6, #2
+_0222DFC4:
+ ldr r0, [r4, r6]
+ add r1, r7, #0
+ bl FUN_020200A0
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #2
+ blt _0222DFC4
+_0222DFD4:
+ b _0222E0E8
+_0222DFD6:
+ mov r1, #0
+ mov r0, #1
+ add r2, r1, #0
+ str r0, [sp]
+ mov r0, #8
+ sub r2, #0x10
+ mov r3, #0x1e
+ bl FUN_0200A208
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201797C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #3
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222E010:
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _0222E0E8
+ ldr r0, _0222E0F8 ; =0x00002218
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_0206B9B0
+ mov r2, #0x7f
+ ldr r3, _0222E104 ; =0x000020F0
+ lsl r2, r2, #4
+ add r1, r0, #0
+ mov r0, #0
+ add r2, r4, r2
+ add r3, r4, r3
+ bl MOD70_0222EBFC
+ ldr r1, _0222E108 ; =0x00002110
+ ldr r2, _0222E0F8 ; =0x00002218
+ str r0, [r4, r1]
+ str r4, [sp]
+ ldr r0, _0222E10C ; =0x00000438
+ mov r1, #0
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ add r3, r1, #0
+ bl MOD70_0222ECD4
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222E054:
+ mov r1, #0
+ mov r0, #2
+ add r2, r1, #0
+ str r0, [sp]
+ mov r0, #8
+ sub r2, #0x10
+ mov r3, #0x17
+ bl FUN_0200A208
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #6
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ add r0, r4, #0
+ bl MOD70_02230BA8
+ b _0222E0E8
+_0222E094:
+ mov r0, #2
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _0222E0E8
+ ldr r0, _0222E110 ; =0x000005A8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200D0E0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222E114 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #2
+ bl FUN_020166B8
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222E0E8:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E0F0: .word 0x00000445
+_0222E0F4: .word 0x0000369C
+_0222E0F8: .word 0x00002218
+_0222E0FC: .word 0x0000221C
+_0222E100: .word 0x00002224
+_0222E104: .word 0x000020F0
+_0222E108: .word 0x00002110
+_0222E10C: .word 0x00000438
+_0222E110: .word 0x000005A8
+_0222E114: .word 0x00000588
+ thumb_func_end MOD70_0222DD60
+
+ thumb_func_start MOD70_0222E118
+MOD70_0222E118: ; 0x0222E118
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_020669D4
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #0x9a
+ mov r2, #0
+ bl FUN_020671BC
+ strb r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4]
+ add r0, r5, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020671BC
+ strb r0, [r4, #6]
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ mov r1, #0x6f
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #0xa1
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_02066A20
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _0222E18E
+ mov r1, #0x1c
+ bl FUN_02068678
+ strh r0, [r4, #0xa]
+_0222E18E:
+ cmp r6, #0
+ beq _0222E19E
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ add r0, r0, #1
+ strh r0, [r4, #2]
+_0222E19E:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_0222E118
+
+ thumb_func_start MOD70_0222E1A0
+MOD70_0222E1A0: ; 0x0222E1A0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #6
+ bl _s32_div_f
+ ldr r0, _0222E20C ; =0x0000221C
+ add r7, r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0206B9B0
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #6
+ bl _s32_div_f
+ add r1, r6, #0
+ mov r2, #0x7f
+ mov r6, #0x32
+ add r3, r0, #0
+ lsl r2, r2, #4
+ lsl r6, r6, #6
+ mul r6, r3
+ add r2, r5, r2
+ add r2, r2, r6
+ ldr r6, _0222E210 ; =0x000020F0
+ lsl r3, r3, #4
+ add r6, r5, r6
+ mov r0, #1
+ add r3, r6, r3
+ bl MOD70_0222EBFC
+ ldr r1, _0222E214 ; =0x00002110
+ ldr r2, _0222E20C ; =0x0000221C
+ str r0, [r5, r1]
+ str r5, [sp]
+ ldr r0, _0222E218 ; =0x00000438
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ add r3, r7, #0
+ bl MOD70_0222ECD4
+ lsl r1, r4, #4
+ add r2, r5, r1
+ ldr r1, _0222E21C ; =0x00000694
+ ldr r0, _0222E220 ; =0x0000040C
+ ldrb r1, [r2, r1]
+ ldr r0, [r5, r0]
+ add r1, r1, #5
+ bl FUN_02020130
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E20C: .word 0x0000221C
+_0222E210: .word 0x000020F0
+_0222E214: .word 0x00002110
+_0222E218: .word 0x00000438
+_0222E21C: .word 0x00000694
+_0222E220: .word 0x0000040C
+ thumb_func_end MOD70_0222E1A0
+
+ thumb_func_start MOD70_0222E224
+MOD70_0222E224: ; 0x0222E224
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r1, r5, #0
+ add r1, #0x88
+ ldr r1, [r1]
+ cmp r1, #0xc
+ beq _0222E2B8
+ cmp r1, #6
+ bge _0222E29E
+ ldr r0, _0222E2BC ; =0x00002218
+ ldr r0, [r5, r0]
+ bl FUN_0206B9B0
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #6
+ bl _s32_div_f
+ mov r2, #0x7f
+ add r3, r0, #0
+ lsl r2, r2, #4
+ add r1, r4, #0
+ add r4, r5, r2
+ mov r2, #0x32
+ lsl r2, r2, #6
+ mul r2, r3
+ add r2, r4, r2
+ ldr r4, _0222E2C0 ; =0x000020F0
+ lsl r3, r3, #4
+ add r4, r5, r4
+ mov r0, #0
+ add r3, r4, r3
+ bl MOD70_0222EBFC
+ ldr r1, _0222E2C4 ; =0x00002110
+ add r3, r5, #0
+ str r0, [r5, r1]
+ ldr r0, _0222E2C8 ; =0x00000438
+ ldr r2, _0222E2BC ; =0x00002218
+ str r5, [sp]
+ add r3, #0x88
+ ldr r2, [r5, r2]
+ ldr r3, [r3]
+ add r0, r5, r0
+ mov r1, #0
+ bl MOD70_0222ECD4
+ ldr r0, _0222E2C8 ; =0x00000438
+ mov r1, #1
+ add r0, r5, r0
+ add r2, r5, #0
+ bl MOD70_0222EF24
+ ldr r0, _0222E2CC ; =0x0000040C
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ pop {r3, r4, r5, pc}
+_0222E29E:
+ bl MOD70_0222E1A0
+ ldr r0, _0222E2C8 ; =0x00000438
+ mov r1, #0
+ add r0, r5, r0
+ add r2, r5, #0
+ bl MOD70_0222EF24
+ ldr r0, _0222E2D0 ; =0x00000408
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+_0222E2B8:
+ pop {r3, r4, r5, pc}
+ nop
+_0222E2BC: .word 0x00002218
+_0222E2C0: .word 0x000020F0
+_0222E2C4: .word 0x00002110
+_0222E2C8: .word 0x00000438
+_0222E2CC: .word 0x0000040C
+_0222E2D0: .word 0x00000408
+ thumb_func_end MOD70_0222E224
+
+ thumb_func_start MOD70_0222E2D4
+MOD70_0222E2D4: ; 0x0222E2D4
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222E374 ; =0x00002214
+ add r4, r0, #0
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ beq _0222E2EA
+ blx r1
+ mov r1, #5
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+_0222E2EA:
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #3
+ bhi _0222E314
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222E300: ; jump table
+ .short _0222E314 - _0222E300 - 2 ; case 0
+ .short _0222E314 - _0222E300 - 2 ; case 1
+ .short _0222E308 - _0222E300 - 2 ; case 2
+ .short _0222E30E - _0222E300 - 2 ; case 3
+_0222E308:
+ add sp, #4
+ mov r0, #2
+ pop {r3, r4, pc}
+_0222E30E:
+ add sp, #4
+ mov r0, #3
+ pop {r3, r4, pc}
+_0222E314:
+ mov r0, #0
+ mov r2, #0xce
+ str r0, [sp]
+ mov r0, #0x53
+ lsl r2, r2, #2
+ mov r3, #0x69
+ lsl r0, r0, #2
+ add r1, r4, #0
+ lsl r3, r3, #4
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ add r1, #0x88
+ add r3, r4, r3
+ bl MOD70_0222F3DC
+ cmp r0, #0
+ beq _0222E33C
+ add r0, r4, #0
+ bl MOD70_0222E224
+_0222E33C:
+ mov r0, #1
+ mov r2, #0xcf
+ str r0, [sp]
+ mov r0, #0x15
+ lsl r2, r2, #2
+ mov r3, #0x69
+ lsl r0, r0, #4
+ add r1, r4, #0
+ lsl r3, r3, #4
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ add r1, #0x8c
+ add r3, r4, r3
+ bl MOD70_0222F3DC
+ add r0, r4, #0
+ add r0, #0x90
+ bl MOD70_0222F2D8
+ add r0, r4, #0
+ add r4, #0x88
+ ldr r2, [r4]
+ mov r1, #0x17
+ bl MOD70_0222F440
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222E374: .word 0x00002214
+ thumb_func_end MOD70_0222E2D4
+
+ thumb_func_start MOD70_0222E378
+MOD70_0222E378: ; 0x0222E378
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x2d
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r7, #0xb
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #6
+_0222E3AC:
+ ldr r0, [r5, r7]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222E3AC
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222E378
+
+ thumb_func_start MOD70_0222E3D4
+MOD70_0222E3D4: ; 0x0222E3D4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, _0222E42C ; =0x00002218
+ mov r4, #0
+ ldr r0, [r6, r0]
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222E402
+ ldr r7, _0222E42C ; =0x00002218
+ add r5, r6, #0
+_0222E3EA:
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ ldr r0, [r6, r7]
+ add r5, r5, #4
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _0222E3EA
+_0222E402:
+ ldr r0, _0222E430 ; =0x0000221C
+ mov r5, #0
+ ldr r0, [r6, r0]
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222E42A
+ ldr r7, _0222E430 ; =0x0000221C
+ add r4, r6, #0
+_0222E414:
+ ldr r0, _0222E434 ; =0x000007A8
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, [r6, r7]
+ add r4, r4, #4
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0222E414
+_0222E42A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E42C: .word 0x00002218
+_0222E430: .word 0x0000221C
+_0222E434: .word 0x000007A8
+ thumb_func_end MOD70_0222E3D4
+
+ thumb_func_start MOD70_0222E438
+MOD70_0222E438: ; 0x0222E438
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200628C
+ ldr r1, [r4, #0x5c]
+ str r1, [r0, #0x28]
+ add r0, r4, #0
+ bl MOD70_0222E3D4
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _0222E4D4 ; =0x0000221C
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl MOD70_0222E378
+ ldr r0, _0222E4D8 ; =0x00000438
+ add r0, r4, r0
+ bl MOD70_02230E88
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD70_0222E848
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r0, #0x1a
+ bl FUN_02016A8C
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x1a
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_0222E4D4: .word 0x0000221C
+_0222E4D8: .word 0x00000438
+ thumb_func_end MOD70_0222E438
+
+ thumb_func_start MOD70_0222E4DC
+MOD70_0222E4DC: ; 0x0222E4DC
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0201AB60
+ ldr r0, _0222E548 ; =0x00002110
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0222E52E
+ sub r4, r0, #1
+ mov r0, #0x7f
+ mov r2, #0x32
+ lsl r0, r0, #4
+ lsl r2, r2, #6
+ add r1, r4, #0
+ add r0, r5, r0
+ mul r1, r2
+ add r0, r0, r1
+ bl GXS_LoadOBJ
+ lsl r1, r4, #4
+ mov r0, #0x20
+ add r2, r5, r1
+ str r0, [sp]
+ mov r0, #0x1a
+ add r3, r4, #2
+ ldr r1, _0222E54C ; =0x000020F0
+ str r0, [sp, #4]
+ ldrh r0, [r2, r1]
+ add r1, r1, #4
+ ldrh r1, [r2, r1]
+ mov r2, #5
+ lsl r3, r3, #5
+ bl FUN_02006930
+ ldr r0, _0222E548 ; =0x00002110
+ mov r1, #0
+ str r1, [r5, r0]
+_0222E52E:
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r3, _0222E550 ; =0x027E0000
+ ldr r1, _0222E554 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_0222E548: .word 0x00002110
+_0222E54C: .word 0x000020F0
+_0222E550: .word 0x027E0000
+_0222E554: .word 0x00003FF8
+ thumb_func_end MOD70_0222E4DC
+
+ thumb_func_start MOD70_0222E558
+MOD70_0222E558: ; 0x0222E558
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _0222E574 ; =0x022311B0
+ add r3, sp, #0
+ mov r2, #5
+_0222E562:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E562
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_0222E574: .word 0x022311B0
+ thumb_func_end MOD70_0222E558
+
+ thumb_func_start MOD70_0222E578
+MOD70_0222E578: ; 0x0222E578
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xd4
+ ldr r4, _0222E748 ; =0x022310B4
+ add r3, sp, #0xc4
+ add r5, r0, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r4, _0222E74C ; =0x0223115C
+ add r3, sp, #0xa8
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #0
+ str r0, [r3]
+ add r0, r5, #0
+ add r3, r1, #0
+ bl FUN_02016C18
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02018744
+ ldr r4, _0222E750 ; =0x02231124
+ add r3, sp, #0x8c
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r4, _0222E754 ; =0x02231178
+ add r3, sp, #0x70
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r4, _0222E758 ; =0x02231194
+ add r3, sp, #0x54
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #3
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r4, _0222E75C ; =0x022310EC
+ add r3, sp, #0x38
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ str r0, [r3]
+ add r0, r5, #0
+ mov r1, #4
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r5, #0
+ mov r1, #4
+ bl FUN_02018744
+ ldr r4, _0222E760 ; =0x02231108
+ add r3, sp, #0x1c
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #5
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r4, _0222E764 ; =0x02231140
+ add r3, sp, #0
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #6
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x1a
+ bl FUN_02017F18
+ mov r0, #1
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x1a
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x1a
+ bl FUN_02017F18
+ mov r4, #0
+ mov r6, #3
+ add r7, r4, #0
+_0222E6BC:
+ lsl r1, r4, #0x18
+ mov r2, #0
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl FUN_020179E0
+ lsl r1, r4, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r2, r6, #0
+ add r3, r7, #0
+ bl FUN_020179E0
+ 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
+ cmp r4, #4
+ blt _0222E6BC
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0201797C
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #3
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #6
+ mov r1, #0
+ bl FUN_0201797C
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _0222E768 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ add sp, #0xd4
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222E748: .word 0x022310B4
+_0222E74C: .word 0x0223115C
+_0222E750: .word 0x02231124
+_0222E754: .word 0x02231178
+_0222E758: .word 0x02231194
+_0222E75C: .word 0x022310EC
+_0222E760: .word 0x02231108
+_0222E764: .word 0x02231140
+_0222E768: .word 0xFFFF1FFF
+ thumb_func_end MOD70_0222E578
+
+ thumb_func_start MOD70_0222E76C
+MOD70_0222E76C: ; 0x0222E76C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ bl FUN_0200628C
+ add r4, r0, #0
+ mov r2, #6
+ ldr r0, _0222E830 ; =0x00000668
+ str r4, [r5, #8]
+ mov r1, #4
+ str r1, [r5, r0]
+ mov r3, #0
+ str r3, [r5, #0x44]
+ sub r0, r0, #4
+ str r3, [r5, r0]
+ mov r0, #0x5b
+ lsl r0, r0, #2
+ str r2, [r5, r0]
+ add r1, r0, #4
+ str r2, [r5, r1]
+ add r1, r5, #0
+ add r1, #0x88
+ str r3, [r1]
+ add r1, r5, #0
+ add r1, #0x8c
+ str r2, [r1]
+ sub r0, #0x2c
+ str r3, [r5, r0]
+ str r3, [r5, #0x48]
+ ldr r0, _0222E834 ; =MOD70_0222F538
+ ldr r1, _0222E838 ; =0x00002214
+ str r3, [r5, #0x4c]
+ str r0, [r5, r1]
+ str r3, [r5, #0x60]
+ str r3, [r5, #0x64]
+ ldr r0, _0222E83C ; =0x00002110
+ str r3, [r5, #0x5c]
+ str r3, [r5, r0]
+ ldr r0, _0222E840 ; =0x000036A0
+ sub r6, r2, #7
+ str r6, [r5, r0]
+ add r2, r0, #4
+ str r6, [r5, r2]
+ add r2, r1, #0
+ add r2, #0xac
+ str r3, [r5, r2]
+ add r2, r0, #0
+ add r2, #0xc
+ str r3, [r5, r2]
+ add r0, #0x10
+ str r3, [r5, r0]
+ add r0, r1, #4
+ ldr r2, [r4, #8]
+ add r1, #0x10
+ str r2, [r5, r0]
+ ldr r0, [r4, #0xc]
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x10]
+ str r0, [r5, #4]
+ bl FUN_0206B8A4
+ add r1, r0, #0
+ mov r0, #0x1a
+ bl FUN_02016998
+ ldr r1, _0222E844 ; =0x0000221C
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #6
+ bl FUN_0206B8CC
+ bl FUN_0206B8A4
+ add r2, r0, #0
+ ldr r0, _0222E844 ; =0x0000221C
+ mov r1, #0xff
+ ldr r0, [r5, r0]
+ bl Call_FillMemWithValue
+ ldr r0, [r4, #4]
+ mov r1, #0x1a
+ bl FUN_020239A0
+ mov r1, #0x63
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ sub r1, #8
+ ldr r0, [r5, r1]
+ mov r1, #0x28
+ bl FUN_0200A914
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x14]
+ bl FUN_02033778
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222E830: .word 0x00000668
+_0222E834: .word MOD70_0222F538
+_0222E838: .word 0x00002214
+_0222E83C: .word 0x00002110
+_0222E840: .word 0x000036A0
+_0222E844: .word 0x0000221C
+ thumb_func_end MOD70_0222E76C
+
+ thumb_func_start MOD70_0222E848
+MOD70_0222E848: ; 0x0222E848
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020178A0
+ pop {r4, pc}
+ thumb_func_end MOD70_0222E848
+
+ thumb_func_start MOD70_0222E884
+MOD70_0222E884: ; 0x0222E884
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r2, #0
+ mov r2, #1
+ add r4, r3, #0
+ str r2, [sp]
+ ldr r2, [sp, #0x20]
+ ldr r3, [sp, #0x24]
+ bl FUN_02006C98
+ add r6, r0, #0
+ beq _0222E8D6
+ add r1, sp, #4
+ bl FUN_020B0180
+ cmp r0, #0
+ beq _0222E8D0
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ bne _0222E8B2
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #8]
+ str r0, [sp, #0x1c]
+_0222E8B2:
+ lsl r1, r4, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_0201886C
+ cmp r0, #0
+ beq _0222E8D0
+ ldr r2, [sp, #4]
+ lsl r1, r4, #0x18
+ ldr r3, [sp, #0x1c]
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r2, #0xc
+ bl FUN_02017DFC
+_0222E8D0:
+ add r0, r6, #0
+ bl FUN_02016A18
+_0222E8D6:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222E884
+
+ thumb_func_start MOD70_0222E8DC
+MOD70_0222E8DC: ; 0x0222E8DC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r1, #2
+ add r4, r0, #0
+ bl FUN_0201886C
+ add r2, r0, #0
+ mov r0, #0
+ mov r3, #6
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #2
+ lsl r3, r3, #8
+ bl FUN_02017CE8
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222E8DC
+
+ thumb_func_start MOD70_0222E900
+MOD70_0222E900: ; 0x0222E900
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ ldr r4, [r0, r1]
+ sub r1, #0x54
+ str r1, [sp]
+ mov r0, #0x1a
+ mov r1, #0
+ str r0, [sp, #4]
+ mov r0, #0x36
+ mov r2, #4
+ add r3, r1, #0
+ bl FUN_02006930
+ mov r1, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #0x36
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02006930
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02017FE4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x1a
+ bl FUN_02002EEC
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #9
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r0, #0x1a
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ add r2, r4, #0
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ mov r1, #3
+ add r2, r4, #0
+ mov r3, #2
+ bl MOD70_0222E884
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ mov r1, #4
+ add r2, r4, #0
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ mov r1, #0x40
+ mov r2, #0x1a
+ bl FUN_02002EEC
+ mov r0, #0
+ mov r1, #0x60
+ mov r2, #0x1a
+ bl FUN_02002ED0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ mov r1, #2
+ add r2, r4, #0
+ mov r3, #5
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ mov r1, #5
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ add r2, r4, #0
+ add r3, r1, #0
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ mov r1, #6
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ add r2, r4, #0
+ add r3, r1, #0
+ bl FUN_020068C8
+ mov r0, #4
+ mov r1, #0x40
+ mov r2, #0x1a
+ bl FUN_02002EEC
+ mov r0, #4
+ mov r1, #0x60
+ mov r2, #0x1a
+ bl FUN_02002ED0
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222E900
+
+ thumb_func_start MOD70_0222EA38
+MOD70_0222EA38: ; 0x0222EA38
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _0222EA64 ; =0x022310C4
+ add r3, sp, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_0201D040
+ mov r0, #0x14
+ mov r1, #0x1a
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_0222EA64: .word 0x022310C4
+ thumb_func_end MOD70_0222EA38
+
+ thumb_func_start MOD70_0222EA68
+MOD70_0222EA68: ; 0x0222EA68
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x7f
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x1a
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ mov r1, #0x66
+ lsl r1, r1, #2
+ mov r0, #0x2d
+ add r1, r5, r1
+ mov r2, #0x1a
+ bl FUN_02008C9C
+ mov r1, #0x65
+ lsl r1, r1, #2
+ mov r7, #0xb
+ str r0, [r5, r1]
+ mov r6, #0
+ add r4, r5, #0
+ lsl r7, r7, #6
+_0222EAA6:
+ mov r0, #2
+ add r1, r6, #0
+ mov r2, #0x1a
+ bl FUN_02008DEC
+ str r0, [r4, r7]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _0222EAA6
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ mov r0, #0x1a
+ str r0, [sp, #8]
+ mov r0, #0xb
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ mov r2, #7
+ bl FUN_02008F34
+ mov r1, #0x2d
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #9
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ sub r1, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ add r3, r2, #0
+ bl FUN_02008FEC
+ mov r1, #0xb5
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ mov r2, #8
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0xb6
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ mov r2, #9
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0xb7
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ mov r2, #0xa
+ bl FUN_02008F34
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ mov r2, #0
+ sub r1, #0x1c
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ add r3, r2, #0
+ bl FUN_02008FEC
+ mov r1, #0xb9
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ mov r2, #0xb
+ bl FUN_020090AC
+ mov r1, #0xba
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ mov r2, #0xc
+ bl FUN_020090AC
+ mov r1, #0xbb
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ sub r1, #0x1c
+ ldr r0, [r5, r1]
+ bl FUN_02009A50
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02009A50
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ bl FUN_0206B888
+ mov r3, #0x80
+ add r1, r0, #0
+ str r3, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #0x13
+ mov r2, #1
+ add r3, #0xc0
+ bl FUN_02006930
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_0222EA68
+
+ thumb_func_start MOD70_0222EBFC
+MOD70_0222EBFC: ; 0x0222EBFC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r4, r2, #0
+ add r0, r3, #0
+ mov r2, #2
+ add r6, r1, #0
+ str r3, [sp, #0x20]
+ bl FUN_02068B68
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ bl FUN_020671BC
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ mov r3, #0
+ str r3, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ str r4, [sp, #0xc]
+ str r7, [sp, #0x10]
+ str r3, [sp, #0x14]
+ mov r1, #2
+ str r1, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x20]
+ ldrh r0, [r0]
+ ldrh r1, [r1, #2]
+ mov r2, #0x1a
+ bl FUN_020124B4
+ mov r1, #0x32
+ add r0, r4, #0
+ lsl r1, r1, #6
+ bl DC_FlushRange
+ add r0, r5, #1
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222EBFC
+
+ thumb_func_start MOD70_0222EC5C
+MOD70_0222EC5C: ; 0x0222EC5C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ mov r0, #0x14
+ mov r1, #0x1a
+ str r3, [sp, #8]
+ bl FUN_020219F4
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_0206B9B0
+ mov r1, #0x76
+ add r2, r4, #0
+ bl FUN_020671BC
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [sp, #0x20]
+ ldr r2, [sp, #8]
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r3, #0
+ bl MOD70_02230EFC
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_0222EC5C
+
+ thumb_func_start MOD70_0222ECA8
+MOD70_0222ECA8: ; 0x0222ECA8
+ push {r4, lr}
+ ldrh r0, [r0]
+ add r4, r3, #0
+ cmp r0, #0x1d
+ beq _0222ECB6
+ cmp r0, #0x20
+ bne _0222ECCE
+_0222ECB6:
+ add r0, r1, #0
+ add r1, r2, #0
+ bl FUN_0206B9B0
+ mov r1, #0x4d
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222ECCE
+ mov r0, #2
+ pop {r4, pc}
+_0222ECCE:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222ECA8
+
+ thumb_func_start MOD70_0222ECD4
+MOD70_0222ECD4: ; 0x0222ECD4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r6, r0, #0
+ add r5, r1, #0
+ add r0, r2, #0
+ add r1, r3, #0
+ str r2, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r4, [sp, #0x50]
+ bl FUN_0206B9B0
+ mov r1, #2
+ bl FUN_02068E14
+ str r0, [sp, #0x10]
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r7, r4, r0
+ lsl r0, r5, #2
+ str r0, [sp, #0x14]
+ ldr r0, [r7, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xc
+ add r3, r5, #0
+ mul r3, r0
+ ldr r1, _0222EF10 ; =0x022311D8
+ ldr r0, [sp, #0x14]
+ ldr r2, _0222EF14 ; =0x022311DC
+ ldr r1, [r1, r3]
+ ldr r3, [r2, r3]
+ ldr r2, [sp, #0x10]
+ ldr r0, [r7, r0]
+ add r2, r2, r3
+ add r2, #0xc0
+ bl MOD70_02230B70
+ cmp r5, #0
+ bne _0222ED36
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #4
+ add r2, r4, r1
+ ldr r1, _0222EF18 ; =0x0000069A
+ ldr r0, [r7, r0]
+ ldrh r1, [r2, r1]
+ bl FUN_02020100
+_0222ED36:
+ ldr r1, [sp, #0xc]
+ mov r0, #1
+ lsl r1, r1, #4
+ add r2, r4, r1
+ ldr r1, _0222EF1C ; =0x00000694
+ lsl r0, r0, #0xa
+ add r7, r4, r0
+ add r0, r5, #2
+ ldrb r1, [r2, r1]
+ lsl r0, r0, #2
+ str r0, [sp, #0x18]
+ ldr r0, [r7, r0]
+ add r1, r1, #5
+ bl FUN_02020130
+ ldr r0, [sp, #0x18]
+ mov r1, #1
+ ldr r0, [r7, r0]
+ bl FUN_020200A0
+ mov r0, #6
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x1a
+ lsl r0, r0, #4
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ add r0, r6, r0
+ mov r3, #9
+ bl MOD70_0222EC5C
+ mov r7, #0x69
+ mov r0, #6
+ add r1, r5, #0
+ mul r1, r0
+ ldr r0, [sp, #0xc]
+ lsl r7, r7, #4
+ add r0, r0, r1
+ lsl r0, r0, #4
+ str r0, [sp, #0x34]
+ add r1, r4, r7
+ ldr r3, [sp, #0x34]
+ add r0, r1, r0
+ add r3, r4, r3
+ add r7, #8
+ ldrh r3, [r3, r7]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ bl MOD70_0222ECA8
+ ldr r1, _0222EF20 ; =0x00000695
+ add r2, r4, r1
+ ldr r1, [sp, #0x34]
+ str r2, [sp, #0x1c]
+ ldrb r1, [r2, r1]
+ cmp r1, #0
+ beq _0222EDAA
+ mov r0, #2
+_0222EDAA:
+ cmp r0, #0
+ beq _0222EDCA
+ cmp r0, #1
+ beq _0222EDF0
+ cmp r0, #2
+ bne _0222EE14
+ add r0, r5, #4
+ lsl r0, r0, #2
+ add r1, r4, r0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _0222EE14
+_0222EDCA:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r0, r4, r0
+ str r0, [sp, #0x20]
+ add r0, r5, #4
+ lsl r0, r0, #2
+ ldr r1, [sp, #0x20]
+ str r0, [sp, #0x24]
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #0x24]
+ ldr r0, [r1, r0]
+ mov r1, #0x17
+ bl FUN_02020130
+ b _0222EE14
+_0222EDF0:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r0, r4, r0
+ str r0, [sp, #0x28]
+ add r0, r5, #4
+ lsl r0, r0, #2
+ ldr r1, [sp, #0x28]
+ str r0, [sp, #0x2c]
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, [sp, #0x28]
+ ldr r0, [sp, #0x2c]
+ ldr r0, [r1, r0]
+ mov r1, #0x16
+ bl FUN_02020130
+_0222EE14:
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x34]
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _0222EE9A
+ mov r0, #0xa
+ mov r1, #0x1a
+ bl FUN_020219F4
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0x1c
+ lsl r0, r0, #4
+ str r0, [sp, #0x30]
+ add r0, r6, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x27
+ add r2, r7, #0
+ bl FUN_0200A8E0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x30]
+ add r1, r7, #0
+ add r0, r6, r0
+ mov r2, #9
+ mov r3, #0xff
+ bl MOD70_02230EFC
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ bl FUN_0206B9B0
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ mov r0, #1
+ str r0, [sp]
+ add r0, r7, #0
+ mov r2, #3
+ mov r3, #0
+ bl FUN_02021B04
+ mov r0, #0x1e
+ str r0, [sp]
+ ldr r0, [sp, #0x30]
+ mov r3, #0
+ add r0, r6, r0
+ add r1, r7, #0
+ mov r2, #9
+ str r3, [sp, #4]
+ bl MOD70_02230EFC
+ add r0, r7, #0
+ bl FUN_02021A20
+ b _0222EEA6
+_0222EE9A:
+ add r0, r5, #0
+ add r0, #0x1c
+ lsl r0, r0, #4
+ add r0, r6, r0
+ bl FUN_02019570
+_0222EEA6:
+ mov r0, #3
+ str r0, [sp]
+ mov r3, #0
+ add r0, r5, #0
+ mov r1, #0x19
+ add r0, #0x1e
+ lsl r0, r0, #4
+ str r3, [sp, #4]
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r6, r0
+ mov r2, #7
+ bl MOD70_02230EFC
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ bl FUN_0206B9B0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ add r5, #0x20
+ lsl r0, r0, #0x10
+ lsl r4, r5, #4
+ lsr r7, r0, #0x10
+ add r0, r6, r4
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x14
+ mov r1, #0x1a
+ bl FUN_020219F4
+ add r1, r7, #0
+ mov r2, #0x1a
+ add r5, r0, #0
+ bl FUN_0206E768
+ mov r0, #3
+ str r0, [sp]
+ mov r3, #0
+ add r0, r6, r4
+ add r1, r5, #0
+ mov r2, #9
+ str r3, [sp, #4]
+ bl MOD70_02230EFC
+ add r0, r5, #0
+ bl FUN_02021A20
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222EF10: .word 0x022311D8
+_0222EF14: .word 0x022311DC
+_0222EF18: .word 0x0000069A
+_0222EF1C: .word 0x00000694
+_0222EF20: .word 0x00000695
+ thumb_func_end MOD70_0222ECD4
+
+ thumb_func_start MOD70_0222EF24
+MOD70_0222EF24: ; 0x0222EF24
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ lsl r0, r4, #2
+ add r1, r6, r0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r4, #2
+ lsl r0, r0, #2
+ add r1, r6, r0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r4, #4
+ lsl r0, r0, #2
+ add r1, r6, r0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r4, #0
+ add r0, #0x1a
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0x1c
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0x1e
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl FUN_02019570
+ add r4, #0x20
+ lsl r0, r4, #4
+ add r0, r5, r0
+ bl FUN_02019570
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD70_0222EF24
+
+ thumb_func_start MOD70_0222EF90
+MOD70_0222EF90: ; 0x0222EF90
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [sp]
+ sub r0, r1, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r2, #0xb
+ str r1, [sp, #0xc]
+ mov r0, #2
+ lsl r2, r2, #6
+ str r0, [sp, #0x10]
+ ldr r0, [r5, r2]
+ add r3, r1, #0
+ str r0, [sp, #0x14]
+ add r0, r2, #4
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x18]
+ add r0, r2, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x1c]
+ add r0, r2, #0
+ add r0, #0xc
+ ldr r0, [r5, r0]
+ add r2, #0x30
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ add r0, r5, r2
+ add r2, r1, #0
+ str r1, [sp, #0x28]
+ bl FUN_02008AA4
+ mov r1, #1
+ mov r3, #0xb
+ str r1, [sp]
+ sub r0, r1, #2
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ lsl r3, r3, #6
+ ldr r2, [r5, r3]
+ str r2, [sp, #0x14]
+ add r2, r3, #4
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x18]
+ add r2, r3, #0
+ add r2, #8
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x1c]
+ add r2, r3, #0
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ add r3, #0x54
+ str r2, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, r5, r3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02008AA4
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #2
+ str r0, [sp, #0x2c]
+ mov r0, #0x2f
+ lsl r0, r0, #4
+ add r0, r5, r0
+ str r0, [sp, #0x30]
+ mov r0, #6
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x38]
+ lsr r0, r1, #5
+ mov r7, #0
+ str r1, [sp, #0x34]
+ str r7, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, sp, #0x2c
+ strh r7, [r0, #0x20]
+ mov r0, #1
+ str r0, [sp, #0x54]
+ mov r0, #0x1a
+ ldr r6, _0222F218 ; =0x02231220
+ str r7, [sp, #0x50]
+ str r0, [sp, #0x58]
+ add r4, r5, #0
+_0222F04C:
+ ldr r0, [r6]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldr r0, [r6, #4]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0xce
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ add r0, r4, #0
+ mov r1, #0xce
+ add r0, #0x88
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, r7, #0
+ bl MOD70_0222F350
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x64
+ bl FUN_02020310
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r7, r7, #1
+ add r6, #8
+ add r4, r4, #4
+ cmp r7, #2
+ blt _0222F04C
+ ldr r6, _0222F218 ; =0x02231220
+ mov r7, #0
+ add r4, r5, #0
+_0222F0A8:
+ ldr r0, [r6]
+ add r0, #0x10
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldr r0, [r6, #4]
+ sub r0, r0, #6
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0x37
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ add r1, r7, #5
+ bl FUN_02020130
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl FUN_02020310
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r7, r7, #1
+ add r6, #8
+ add r4, r4, #4
+ cmp r7, #0xc
+ blt _0222F0A8
+ ldr r6, _0222F218 ; =0x02231220
+ mov r7, #0
+ add r4, r5, #0
+_0222F102:
+ ldr r0, [r6]
+ add r0, #0x24
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldr r0, [r6, #4]
+ add r0, #0x10
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ mov r0, #0
+ str r0, [sp, #0x50]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0x3a
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl FUN_02020310
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r7, r7, #1
+ add r6, #8
+ add r4, r4, #4
+ cmp r7, #0xc
+ blt _0222F102
+ ldr r6, _0222F218 ; =0x02231220
+ mov r7, #0
+ add r4, r5, #0
+_0222F148:
+ ldr r0, [r6]
+ add r0, #0x2d
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldr r0, [r6, #4]
+ add r0, #0x10
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ mov r0, #0
+ str r0, [sp, #0x50]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0x3d
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl FUN_02020310
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r7, r7, #1
+ add r6, #8
+ add r4, r4, #4
+ cmp r7, #0xc
+ blt _0222F148
+ mov r0, #6
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x34]
+ mov r0, #0x42
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ ldr r1, _0222F21C ; =0x00000418
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, _0222F21C ; =0x00000418
+ mov r1, #0x14
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ ldr r0, _0222F21C ; =0x00000418
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ mov r0, #0xc5
+ lsl r0, r0, #2
+ ldr r4, _0222F220 ; =0x022311D8
+ mov r6, #0
+ add r7, r5, r0
+_0222F1C4:
+ ldr r0, [r4]
+ str r7, [sp, #0x30]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldr r0, [r4, #4]
+ lsl r1, r0, #0xc
+ mov r0, #3
+ lsl r0, r0, #0x12
+ add r0, r1, r0
+ str r0, [sp, #0x38]
+ mov r0, #2
+ str r0, [sp, #0x54]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #1
+ lsl r1, r1, #0xa
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r5, r0]
+ ldr r1, [r4, #8]
+ bl FUN_02020130
+ add r6, r6, #1
+ add r4, #0xc
+ add r5, r5, #4
+ cmp r6, #6
+ blt _0222F1C4
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F218: .word 0x02231220
+_0222F21C: .word 0x00000418
+_0222F220: .word 0x022311D8
+ thumb_func_end MOD70_0222EF90
+
+ thumb_func_start MOD70_0222F224
+MOD70_0222F224: ; 0x0222F224
+ push {r3, r4}
+ ldr r3, _0222F260 ; =0x021C48B8
+ mov r1, #0
+ ldr r3, [r3, #0x4c]
+ mov r4, #0x40
+ add r2, r1, #0
+ tst r4, r3
+ beq _0222F238
+ mov r2, #1
+ add r1, r1, #1
+_0222F238:
+ mov r4, #0x80
+ tst r4, r3
+ beq _0222F242
+ mov r2, #2
+ add r1, r1, #1
+_0222F242:
+ mov r4, #0x20
+ tst r4, r3
+ beq _0222F24C
+ mov r2, #3
+ add r1, r1, #1
+_0222F24C:
+ mov r4, #0x10
+ tst r3, r4
+ beq _0222F256
+ mov r2, #4
+ add r1, r1, #1
+_0222F256:
+ cmp r1, #0
+ beq _0222F25C
+ str r2, [r0]
+_0222F25C:
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_0222F260: .word 0x021C48B8
+ thumb_func_end MOD70_0222F224
+
+ thumb_func_start MOD70_0222F264
+MOD70_0222F264: ; 0x0222F264
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #6
+ bge _0222F2CA
+ ldr r0, _0222F2CC ; =0x022310AC
+ bl FUN_02020988
+ add r5, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ beq _0222F2CA
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ lsl r0, r0, #4
+ add r2, r4, r0
+ ldr r0, _0222F2D0 ; =0x00000695
+ ldrb r1, [r2, r0]
+ cmp r1, #0
+ bne _0222F2CA
+ sub r0, r0, #5
+ ldrh r0, [r2, r0]
+ ldr r1, _0222F2D4 ; =0x000001B9
+ cmp r0, r1
+ bne _0222F2AE
+ ldr r0, [r4, #4]
+ bl FUN_02029EF8
+ mov r1, #0
+ mov r2, #0x64
+ add r3, r1, #0
+ bl FUN_02005E90
+ b _0222F2B2
+_0222F2AE:
+ bl FUN_02005578
+_0222F2B2:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r4, r4, r0
+ lsl r6, r5, #2
+ ldr r0, [r4, r6]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r4, r6]
+ add r1, r5, #4
+ bl FUN_02020130
+_0222F2CA:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222F2CC: .word 0x022310AC
+_0222F2D0: .word 0x00000695
+_0222F2D4: .word 0x000001B9
+ thumb_func_end MOD70_0222F264
+
+ thumb_func_start MOD70_0222F2D8
+MOD70_0222F2D8: ; 0x0222F2D8
+ push {r3, lr}
+ ldrh r1, [r0]
+ add r1, #0x14
+ strh r1, [r0]
+ ldrh r2, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ cmp r2, r1
+ bls _0222F2EE
+ mov r1, #0
+ strh r1, [r0]
+_0222F2EE:
+ ldrh r0, [r0]
+ bl FUN_0201B970
+ mov r1, #0xa
+ mul r1, r0
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ add r0, #0xf
+ lsl r1, r0, #5
+ mov r0, #0x1d
+ orr r1, r0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, sp, #0
+ mov r1, #0x3a
+ mov r2, #2
+ bl GX_LoadOBJPltt
+ pop {r3, pc}
+ thumb_func_end MOD70_0222F2D8
+
+ thumb_func_start MOD70_0222F318
+MOD70_0222F318: ; 0x0222F318
+ push {r3, r4, r5, r6}
+ mov r5, #0x18
+ mul r5, r0
+ ldr r6, _0222F34C ; =0x02231288
+ mov r0, #6
+ mov r4, #0
+ add r5, r6, r5
+ mul r0, r1
+ add r5, r5, r0
+ add r3, r4, #0
+ add r1, r5, #0
+_0222F32E:
+ ldrb r0, [r1]
+ lsl r0, r0, #4
+ ldrh r0, [r2, r0]
+ cmp r0, #0
+ beq _0222F33C
+ ldrb r4, [r5, r3]
+ b _0222F344
+_0222F33C:
+ add r3, r3, #1
+ add r1, r1, #1
+ cmp r3, #6
+ blt _0222F32E
+_0222F344:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+ nop
+_0222F34C: .word 0x02231288
+ thumb_func_end MOD70_0222F318
+
+ thumb_func_start MOD70_0222F350
+MOD70_0222F350: ; 0x0222F350
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ cmp r5, #0xd
+ blt _0222F362
+ bl ErrorHandling
+_0222F362:
+ ldr r1, _0222F3C8 ; =0x02231220
+ lsl r0, r5, #3
+ ldr r1, [r1, r0]
+ lsl r1, r1, #0xc
+ str r1, [sp]
+ ldr r1, _0222F3CC ; =0x02231224
+ ldr r0, [r1, r0]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ cmp r5, #0xc
+ bne _0222F394
+ add r0, r6, #0
+ bl FUN_02020044
+ mov r1, #0xc
+ add r2, r4, #0
+ mul r2, r1
+ ldr r1, _0222F3D0 ; =0x022310DC
+ add r0, r6, #0
+ ldr r1, [r1, r2]
+ bl FUN_02020130
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_0222F394:
+ add r0, r6, #0
+ bl FUN_02020044
+ cmp r5, #6
+ bge _0222F3B2
+ mov r1, #0xc
+ add r2, r4, #0
+ mul r2, r1
+ ldr r1, _0222F3D4 ; =0x022310D4
+ add r0, r6, #0
+ ldr r1, [r1, r2]
+ bl FUN_02020130
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_0222F3B2:
+ mov r1, #0xc
+ add r2, r4, #0
+ mul r2, r1
+ ldr r1, _0222F3D8 ; =0x022310D8
+ add r0, r6, #0
+ ldr r1, [r1, r2]
+ bl FUN_02020130
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0222F3C8: .word 0x02231220
+_0222F3CC: .word 0x02231224
+_0222F3D0: .word 0x022310DC
+_0222F3D4: .word 0x022310D4
+_0222F3D8: .word 0x022310D8
+ thumb_func_end MOD70_0222F350
+
+ thumb_func_start MOD70_0222F3DC
+MOD70_0222F3DC: ; 0x0222F3DC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ str r2, [sp]
+ ldr r0, [r5]
+ add r4, r1, #0
+ ldr r2, [sp, #0x18]
+ sub r1, r0, #1
+ mov r7, #0
+ cmp r2, #0
+ bne _0222F41C
+ cmp r0, #0
+ beq _0222F416
+ ldr r0, [r4]
+ add r2, r3, #0
+ bl MOD70_0222F318
+ ldr r1, [sp]
+ ldr r2, [sp, #0x18]
+ add r6, r0, #0
+ bl MOD70_0222F350
+ ldr r0, [r4]
+ cmp r0, r6
+ beq _0222F416
+ ldr r0, _0222F428 ; =0x000005DC
+ bl FUN_020054C8
+ str r6, [r4]
+ mov r7, #1
+_0222F416:
+ mov r0, #0
+ str r0, [r5]
+ b _0222F424
+_0222F41C:
+ ldr r0, [r4]
+ ldr r1, [sp]
+ bl MOD70_0222F350
+_0222F424:
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F428: .word 0x000005DC
+ thumb_func_end MOD70_0222F3DC
+
+ thumb_func_start MOD70_0222F42C
+MOD70_0222F42C: ; 0x0222F42C
+ push {r3, lr}
+ add r0, sp, #0
+ strb r2, [r0]
+ add r0, r1, #0
+ add r1, sp, #0
+ mov r2, #1
+ bl FUN_02030ADC
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222F42C
+
+ thumb_func_start MOD70_0222F440
+MOD70_0222F440: ; 0x0222F440
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _0222F470 ; =0x000036A0
+ add r4, r1, #0
+ ldr r1, [r5, r0]
+ add r6, r2, #0
+ cmp r6, r1
+ bne _0222F458
+ add r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r4, r0
+ beq _0222F46C
+_0222F458:
+ bl FUN_02031190
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD70_0222F42C
+ ldr r0, _0222F470 ; =0x000036A0
+ str r6, [r5, r0]
+ add r0, r0, #4
+ str r4, [r5, r0]
+_0222F46C:
+ pop {r4, r5, r6, pc}
+ nop
+_0222F470: .word 0x000036A0
+ thumb_func_end MOD70_0222F440
+
+ thumb_func_start MOD70_0222F474
+MOD70_0222F474: ; 0x0222F474
+ mov r2, #0x59
+ lsl r2, r2, #4
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD70_0222F474
+
+ thumb_func_start MOD70_0222F480
+MOD70_0222F480: ; 0x0222F480
+ push {r3, r4, r5, lr}
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add r5, r1, #0
+ add r4, r2, #0
+ bl FUN_02030E7C
+ cmp r0, #0
+ beq _0222F4A6
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD70_0222F474
+ mov r2, #0x59
+ add r1, r0, #0
+ mov r0, #0x16
+ lsl r2, r2, #4
+ bl FUN_02030A78
+_0222F4A6:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD70_0222F480
+
+ thumb_func_start MOD70_0222F4A8
+MOD70_0222F4A8: ; 0x0222F4A8
+ push {r3, lr}
+ bl FUN_0202A918
+ add r1, r0, #0
+ mov r0, #0x20
+ mov r2, #0xe
+ bl FUN_02030ADC
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222F4A8
+
+ thumb_func_start MOD70_0222F4BC
+MOD70_0222F4BC: ; 0x0222F4BC
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ add r6, r0, #0
+ add r5, r1, #0
+ bl FUN_0202398C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl StringCopy
+ add r0, r6, #0
+ bl FUN_020239BC
+ str r0, [r4, #0x10]
+ add r0, r6, #0
+ bl FUN_02023A70
+ strb r0, [r4, #0x14]
+ add r0, r6, #0
+ bl FUN_02023A68
+ strb r0, [r4, #0x15]
+ add r0, r6, #0
+ bl FUN_020239CC
+ strb r0, [r4, #0x16]
+ mov r0, #0
+ add r1, r4, #0
+_0222F4F4:
+ ldr r2, [r5, #0x10]
+ str r2, [r1, #0x18]
+ ldrb r3, [r5, #0x15]
+ add r2, r4, r0
+ add r2, #0x58
+ strb r3, [r2]
+ add r2, r4, r0
+ ldrb r3, [r5, #0x14]
+ add r2, #0x68
+ add r1, r1, #4
+ strb r3, [r2]
+ add r2, r4, r0
+ ldrb r3, [r5, #0x16]
+ add r2, #0x78
+ add r0, r0, #1
+ add r5, #0x88
+ strb r3, [r2]
+ cmp r0, #0x10
+ blt _0222F4F4
+ mov r0, #0x1c
+ add r1, r4, #0
+ mov r2, #0x88
+ bl FUN_02030A78
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222F4BC
+
+ thumb_func_start MOD70_0222F528
+MOD70_0222F528: ; 0x0222F528
+ ldr r3, _0222F534 ; =FUN_02030A78
+ mov r2, #0xfa
+ add r1, r0, #0
+ mov r0, #0x1d
+ lsl r2, r2, #2
+ bx r3
+ .align 2, 0
+_0222F534: .word FUN_02030A78
+ thumb_func_end MOD70_0222F528
+
+ thumb_func_start MOD70_0222F538
+MOD70_0222F538: ; 0x0222F538
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x53
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD70_0222F224
+ ldr r0, _0222F588 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0222F584
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222F584
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0xc
+ bne _0222F56C
+ ldr r1, _0222F58C ; =MOD70_0222F674
+ ldr r0, _0222F590 ; =0x00002214
+ str r1, [r4, r0]
+ b _0222F584
+_0222F56C:
+ cmp r0, #6
+ bge _0222F578
+ ldr r1, _0222F594 ; =MOD70_0222FDD8
+ ldr r0, _0222F590 ; =0x00002214
+ str r1, [r4, r0]
+ b _0222F584
+_0222F578:
+ blt _0222F584
+ cmp r0, #0xc
+ bge _0222F584
+ ldr r1, _0222F598 ; =MOD70_02230810
+ ldr r0, _0222F590 ; =0x00002214
+ str r1, [r4, r0]
+_0222F584:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_0222F588: .word 0x021C48B8
+_0222F58C: .word MOD70_0222F674
+_0222F590: .word 0x00002214
+_0222F594: .word MOD70_0222FDD8
+_0222F598: .word MOD70_02230810
+ thumb_func_end MOD70_0222F538
+
+ thumb_func_start MOD70_0222F59C
+MOD70_0222F59C: ; 0x0222F59C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bne _0222F5CC
+ ldr r0, _0222F660 ; =0x00002218
+ ldr r0, [r5, r0]
+ str r0, [r5, #0xc]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #8]
+ bl FUN_0206B9AC
+ strb r0, [r5, #0x1f]
+ mov r0, #0
+ str r0, [r5, #0x34]
+ bl FUN_02031190
+ bl FUN_0202DFA4
+ add r1, r0, #0
+ add r0, r5, #0
+ add r0, #0xc
+ bl FUN_0207C2A4
+ b _0222F606
+_0222F5CC:
+ ldr r0, _0222F664 ; =0x0000221C
+ ldr r1, [r5, r0]
+ str r1, [r5, #0xc]
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ strb r0, [r5, #0x1f]
+ bl FUN_02031190
+ mov r2, #1
+ ldr r1, _0222F668 ; =0x00002E14
+ eor r2, r0
+ mov r0, #0xfb
+ lsl r0, r0, #2
+ add r1, r5, r1
+ mul r0, r2
+ add r0, r1, r0
+ str r0, [r5, #0x34]
+ bl FUN_02031190
+ mov r1, #1
+ eor r0, r1
+ bl FUN_0202DFA4
+ add r1, r0, #0
+ add r0, r5, #0
+ add r0, #0xc
+ bl FUN_0207C2A4
+_0222F606:
+ mov r0, #1
+ strb r0, [r5, #0x1d]
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #6
+ bl _s32_div_f
+ add r0, r5, #0
+ add r0, #0x20
+ strb r1, [r0]
+ mov r0, #1
+ strb r0, [r5, #0x1e]
+ mov r0, #0
+ strh r0, [r5, #0x24]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #0x10]
+ bl FUN_02079C70
+ str r0, [r5, #0x38]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #0x30]
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #0x18]
+ str r0, [r5, #0x10]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #0x10]
+ bl FUN_0202A918
+ str r0, [r5, #0x2c]
+ add r0, r5, #0
+ ldr r1, _0222F66C ; =0x022313C0
+ add r0, #0xc
+ bl FUN_0207B000
+ add r1, r5, #0
+ ldr r0, _0222F670 ; =0x020FA6E8
+ add r1, #0xc
+ mov r2, #0x1a
+ bl FUN_02006234
+ str r0, [r5, #0x40]
+ str r4, [r5, #0x3c]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222F660: .word 0x00002218
+_0222F664: .word 0x0000221C
+_0222F668: .word 0x00002E14
+_0222F66C: .word 0x022313C0
+_0222F670: .word 0x020FA6E8
+ thumb_func_end MOD70_0222F59C
+
+ thumb_func_start MOD70_0222F674
+MOD70_0222F674: ; 0x0222F674
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222F6BC ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x19
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222F6C0 ; =MOD70_0222F6C8
+ ldr r0, _0222F6C4 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_0222F6BC: .word 0x000005A8
+_0222F6C0: .word MOD70_0222F6C8
+_0222F6C4: .word 0x00002214
+ thumb_func_end MOD70_0222F674
+
+ thumb_func_start MOD70_0222F6C8
+MOD70_0222F6C8: ; 0x0222F6C8
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _0222F778 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0222F6EE
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222F738
+ b _0222F772
+_0222F6EE:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222F77C ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x1c
+ mov r2, #1
+ bl MOD70_02230F40
+ add r0, r4, #0
+ mov r1, #0x18
+ mov r2, #1
+ bl MOD70_0222F440
+ ldr r1, _0222F780 ; =MOD70_0222FD9C
+ ldr r0, _0222F784 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ str r0, [r4, #0x5c]
+ b _0222F772
+_0222F738:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222F788 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222F78C ; =MOD70_0222F538
+ ldr r0, _0222F784 ; =0x00002214
+ str r1, [r4, r0]
+_0222F772:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_0222F778: .word 0x00000658
+_0222F77C: .word 0x000005A8
+_0222F780: .word MOD70_0222FD9C
+_0222F784: .word 0x00002214
+_0222F788: .word 0x00000588
+_0222F78C: .word MOD70_0222F538
+ thumb_func_end MOD70_0222F6C8
+
+ thumb_func_start MOD70_0222F790
+MOD70_0222F790: ; 0x0222F790
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222F7D8 ; =0x000005A8
+ ldr r1, [r4, #0x68]
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222F7DC ; =MOD70_0222F7E4
+ ldr r0, _0222F7E0 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_0222F7D8: .word 0x000005A8
+_0222F7DC: .word MOD70_0222F7E4
+_0222F7E0: .word 0x00002214
+ thumb_func_end MOD70_0222F790
+
+ thumb_func_start MOD70_0222F7E4
+MOD70_0222F7E4: ; 0x0222F7E4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, _0222F83C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0222F834
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222F840 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222F844 ; =MOD70_0222F538
+ ldr r0, _0222F848 ; =0x00002214
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD70_02230390
+_0222F834:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_0222F83C: .word 0x021C48B8
+_0222F840: .word 0x00000588
+_0222F844: .word MOD70_0222F538
+_0222F848: .word 0x00002214
+ thumb_func_end MOD70_0222F7E4
+
+ thumb_func_start MOD70_0222F84C
+MOD70_0222F84C: ; 0x0222F84C
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r4, _0222F86C ; =0x00003674
+ add r3, r0, #0
+ ldr r0, [r3, r4]
+ add r4, r4, #4
+ str r0, [sp]
+ ldr r0, _0222F870 ; =0x000005A8
+ mov r2, #1
+ add r0, r3, r0
+ ldr r3, [r3, r4]
+ bl MOD70_02230F40
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0222F86C: .word 0x00003674
+_0222F870: .word 0x000005A8
+ thumb_func_end MOD70_0222F84C
+
+ thumb_func_start MOD70_0222F874
+MOD70_0222F874: ; 0x0222F874
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _0222F8B4 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0222F898
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222F8A0
+ b _0222F8AE
+_0222F898:
+ ldr r1, _0222F8B8 ; =MOD70_0222FBF0
+ ldr r0, _0222F8BC ; =0x00002214
+ str r1, [r4, r0]
+ b _0222F8AE
+_0222F8A0:
+ add r0, r4, #0
+ mov r1, #0x22
+ bl MOD70_0222F84C
+ ldr r1, _0222F8C0 ; =MOD70_0222FADC
+ ldr r0, _0222F8BC ; =0x00002214
+ str r1, [r4, r0]
+_0222F8AE:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0222F8B4: .word 0x00000658
+_0222F8B8: .word MOD70_0222FBF0
+_0222F8BC: .word 0x00002214
+_0222F8C0: .word MOD70_0222FADC
+ thumb_func_end MOD70_0222F874
+
+ thumb_func_start MOD70_0222F8C4
+MOD70_0222F8C4: ; 0x0222F8C4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _0222F938 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0222F8EA
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222F910
+ b _0222F932
+_0222F8EA:
+ ldr r1, _0222F93C ; =0x00003694
+ ldr r0, [r4, r1]
+ sub r1, #0x24
+ ldr r1, [r4, r1]
+ bl FUN_02028468
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, _0222F940 ; =0x0000366C
+ ldr r0, [r4, #4]
+ ldr r1, [r4, r1]
+ mov r2, #0x1f
+ mov r3, #0x1a
+ bl FUN_02033A70
+ ldr r1, _0222F944 ; =MOD70_0222FBF0
+ ldr r0, _0222F948 ; =0x00002214
+ str r1, [r4, r0]
+ b _0222F932
+_0222F910:
+ ldr r0, _0222F940 ; =0x0000366C
+ ldr r0, [r4, r0]
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, _0222F94C ; =0x00003674
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_0200ABC0
+ add r0, r4, #0
+ mov r1, #0x23
+ bl MOD70_0222F84C
+ ldr r1, _0222F950 ; =MOD70_0222F874
+ ldr r0, _0222F948 ; =0x00002214
+ str r1, [r4, r0]
+_0222F932:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222F938: .word 0x00000658
+_0222F93C: .word 0x00003694
+_0222F940: .word 0x0000366C
+_0222F944: .word MOD70_0222FBF0
+_0222F948: .word 0x00002214
+_0222F94C: .word 0x00003674
+_0222F950: .word MOD70_0222F874
+ thumb_func_end MOD70_0222F8C4
+
+ thumb_func_start MOD70_0222F954
+MOD70_0222F954: ; 0x0222F954
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0xda
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ bl FUN_02001204
+ add r4, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _0222F976
+ add r0, r0, #1
+ cmp r4, r0
+ bne _0222F9A0
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222F976:
+ ldr r0, _0222FA10 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _0222FA14 ; =0x0000366C
+ ldr r0, [r5, r0]
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, _0222FA18 ; =0x00003674
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ mov r1, #0x23
+ bl MOD70_0222F84C
+ ldr r1, _0222FA1C ; =MOD70_0222F874
+ ldr r0, _0222FA20 ; =0x00002214
+ str r1, [r5, r0]
+ b _0222F9E4
+_0222F9A0:
+ ldr r0, _0222FA10 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _0222FA24 ; =0x00003670
+ str r4, [r5, r0]
+ mov r0, #0x1a
+ bl FUN_02023928
+ add r6, r0, #0
+ ldr r0, _0222FA28 ; =0x00003694
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r6, #0
+ bl FUN_0202395C
+ ldr r0, _0222FA18 ; =0x00003674
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r6, #0
+ bl FUN_0200ABC0
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #0x24
+ bl MOD70_0222F84C
+ ldr r1, _0222FA2C ; =MOD70_0222F8C4
+ ldr r0, _0222FA20 ; =0x00002214
+ str r1, [r5, r0]
+_0222F9E4:
+ ldr r0, _0222FA30 ; =0x00003684
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ ldr r0, _0222FA30 ; =0x00003684
+ add r0, r5, r0
+ bl FUN_02019178
+ mov r0, #0xda
+ lsl r0, r0, #6
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, _0222FA34 ; =0x0000367C
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222FA10: .word 0x000005DC
+_0222FA14: .word 0x0000366C
+_0222FA18: .word 0x00003674
+_0222FA1C: .word MOD70_0222F874
+_0222FA20: .word 0x00002214
+_0222FA24: .word 0x00003670
+_0222FA28: .word 0x00003694
+_0222FA2C: .word MOD70_0222F8C4
+_0222FA30: .word 0x00003684
+_0222FA34: .word 0x0000367C
+ thumb_func_end MOD70_0222F954
+
+ thumb_func_start MOD70_0222FA38
+MOD70_0222FA38: ; 0x0222FA38
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _0222FACC ; =0x00003694
+ ldr r0, [r5, r0]
+ bl FUN_02028448
+ str r0, [sp]
+ add r0, r0, #1
+ mov r1, #0x1a
+ bl FUN_02012838
+ ldr r1, _0222FAD0 ; =0x0000367C
+ str r0, [r5, r1]
+ mov r0, #0x64
+ mov r1, #0x1a
+ bl FUN_020219F4
+ ldr r7, _0222FACC ; =0x00003694
+ add r6, r0, #0
+ mov r4, #0
+_0222FA60:
+ ldr r0, [r5, r7]
+ add r1, r4, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ beq _0222FA8A
+ ldr r0, _0222FACC ; =0x00003694
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r6, #0
+ bl FUN_02021E28
+ ldr r0, _0222FAD0 ; =0x0000367C
+ add r1, r6, #0
+ ldr r0, [r5, r0]
+ add r2, r4, #0
+ bl FUN_020128A0
+_0222FA8A:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _0222FA60
+ ldr r1, _0222FAD0 ; =0x0000367C
+ mov r2, #0xb
+ ldr r0, [r5, r1]
+ sub r1, r1, #4
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0xd
+ bl FUN_02012880
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r2, _0222FAD0 ; =0x0000367C
+ mov r3, #0x5d
+ lsl r3, r3, #2
+ ldr r0, [r5, r2]
+ add r2, #8
+ ldr r1, [sp]
+ ldr r3, [r5, r3]
+ add r2, r5, r2
+ bl MOD70_02231018
+ mov r1, #0xda
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ ldr r1, _0222FAD4 ; =MOD70_0222F954
+ ldr r0, _0222FAD8 ; =0x00002214
+ str r1, [r5, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222FACC: .word 0x00003694
+_0222FAD0: .word 0x0000367C
+_0222FAD4: .word MOD70_0222F954
+_0222FAD8: .word 0x00002214
+ thumb_func_end MOD70_0222FA38
+
+ thumb_func_start MOD70_0222FADC
+MOD70_0222FADC: ; 0x0222FADC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _0222FB30 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0222FB00
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222FB08
+ b _0222FB2A
+_0222FB00:
+ ldr r1, _0222FB34 ; =MOD70_0222FA38
+ ldr r0, _0222FB38 ; =0x00002214
+ str r1, [r4, r0]
+ b _0222FB2A
+_0222FB08:
+ ldr r0, _0222FB3C ; =0x0000366C
+ ldr r0, [r4, r0]
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, _0222FB40 ; =0x00003674
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_0200ABC0
+ add r0, r4, #0
+ mov r1, #0x23
+ bl MOD70_0222F84C
+ ldr r1, _0222FB44 ; =MOD70_0222F874
+ ldr r0, _0222FB38 ; =0x00002214
+ str r1, [r4, r0]
+_0222FB2A:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0222FB30: .word 0x00000658
+_0222FB34: .word MOD70_0222FA38
+_0222FB38: .word 0x00002214
+_0222FB3C: .word 0x0000366C
+_0222FB40: .word 0x00003674
+_0222FB44: .word MOD70_0222F874
+ thumb_func_end MOD70_0222FADC
+
+ thumb_func_start MOD70_0222FB48
+MOD70_0222FB48: ; 0x0222FB48
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ mov r0, #0x5d
+ ldr r2, _0222FBC4 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r5, r2
+ add r2, #0xc
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0222FB6E
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222FBB6
+ b _0222FBBC
+_0222FB6E:
+ ldr r1, _0222FBC8 ; =MOD70_0222FBF0
+ ldr r0, _0222FBCC ; =0x00002214
+ ldr r6, _0222FBD0 ; =0x00003694
+ str r1, [r5, r0]
+ mov r4, #0
+_0222FB78:
+ ldr r0, [r5, r6]
+ add r1, r4, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ bne _0222FB98
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, _0222FBD4 ; =0x0000366C
+ ldr r0, [r5, #4]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ mov r3, #0x1a
+ bl FUN_02033A70
+ b _0222FB9E
+_0222FB98:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _0222FB78
+_0222FB9E:
+ cmp r4, #0x20
+ bne _0222FBBC
+ add r0, r5, #0
+ mov r1, #0x22
+ bl MOD70_0222F84C
+ ldr r1, _0222FBD8 ; =MOD70_0222FADC
+ ldr r0, _0222FBCC ; =0x00002214
+ add sp, #4
+ str r1, [r5, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_0222FBB6:
+ ldr r1, _0222FBC8 ; =MOD70_0222FBF0
+ ldr r0, _0222FBCC ; =0x00002214
+ str r1, [r5, r0]
+_0222FBBC:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0222FBC4: .word 0x00000658
+_0222FBC8: .word MOD70_0222FBF0
+_0222FBCC: .word 0x00002214
+_0222FBD0: .word 0x00003694
+_0222FBD4: .word 0x0000366C
+_0222FBD8: .word MOD70_0222FADC
+ thumb_func_end MOD70_0222FB48
+
+ thumb_func_start MOD70_0222FBDC
+MOD70_0222FBDC: ; 0x0222FBDC
+ push {r3, lr}
+ mov r0, #0x13
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0222FBEC
+ mov r0, #2
+ pop {r3, pc}
+_0222FBEC:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD70_0222FBDC
+
+ thumb_func_start MOD70_0222FBF0
+MOD70_0222FBF0: ; 0x0222FBF0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r1, #0
+ ldr r0, _0222FCE4 ; =0x0000366C
+ mvn r1, r1
+ str r1, [r6, r0]
+ mov r4, #0
+ bl FUN_02030F20
+ cmp r0, #0
+ ble _0222FC2C
+ ldr r7, _0222FCE8 ; =0x000035EC
+ add r5, r6, #0
+_0222FC0A:
+ ldr r0, [r5, r7]
+ cmp r0, #2
+ bne _0222FC20
+ ldr r0, _0222FCE4 ; =0x0000366C
+ lsl r1, r4, #2
+ str r4, [r6, r0]
+ mov r2, #0
+ add r1, r6, r1
+ sub r0, #0x80
+ str r2, [r1, r0]
+ b _0222FC2C
+_0222FC20:
+ add r5, r5, #4
+ add r4, r4, #1
+ bl FUN_02030F20
+ cmp r4, r0
+ blt _0222FC0A
+_0222FC2C:
+ ldr r0, _0222FCE4 ; =0x0000366C
+ mov r1, #0
+ ldr r2, [r6, r0]
+ mvn r1, r1
+ cmp r2, r1
+ bne _0222FC70
+ add r0, #0xc
+ ldr r0, [r6, r0]
+ bl FUN_0200A8B8
+ ldr r0, _0222FCEC ; =0x00003674
+ ldr r0, [r6, r0]
+ bl FUN_0200AB18
+ mov r0, #0x13
+ bl FUN_02031588
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r6, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222FCF0 ; =0x000005A8
+ ldr r3, [r6, r3]
+ add r0, r6, r0
+ mov r1, #0x1c
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222FCF4 ; =MOD70_0222FBDC
+ ldr r0, _0222FCF8 ; =0x00002214
+ str r1, [r6, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FC70:
+ ldr r0, [r6, #4]
+ bl FUN_0206F158
+ ldr r1, _0222FCFC ; =0x000001B5
+ mov r2, #1
+ mov r3, #0x1a
+ bl FUN_0206EE50
+ cmp r0, #1
+ bne _0222FCAA
+ ldr r0, _0222FCE4 ; =0x0000366C
+ ldr r0, [r6, r0]
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, _0222FCEC ; =0x00003674
+ mov r1, #0
+ ldr r0, [r6, r0]
+ bl FUN_0200ABC0
+ add r0, r6, #0
+ mov r1, #0x21
+ bl MOD70_0222F84C
+ ldr r1, _0222FD00 ; =MOD70_0222FB48
+ ldr r0, _0222FCF8 ; =0x00002214
+ str r1, [r6, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FCAA:
+ ldr r0, [r6, #4]
+ bl FUN_020286EC
+ add r5, r0, #0
+ mov r4, #0
+_0222FCB4:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ bne _0222FCD4
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, _0222FCE4 ; =0x0000366C
+ ldr r0, [r6, #4]
+ ldr r1, [r6, r1]
+ add r2, r4, #0
+ mov r3, #0x1a
+ bl FUN_02033A70
+ b _0222FCDA
+_0222FCD4:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _0222FCB4
+_0222FCDA:
+ ldr r1, _0222FD04 ; =MOD70_0222FBF0
+ ldr r0, _0222FCF8 ; =0x00002214
+ str r1, [r6, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222FCE4: .word 0x0000366C
+_0222FCE8: .word 0x000035EC
+_0222FCEC: .word 0x00003674
+_0222FCF0: .word 0x000005A8
+_0222FCF4: .word MOD70_0222FBDC
+_0222FCF8: .word 0x00002214
+_0222FCFC: .word 0x000001B5
+_0222FD00: .word MOD70_0222FB48
+_0222FD04: .word MOD70_0222FBF0
+ thumb_func_end MOD70_0222FBF0
+
+ thumb_func_start MOD70_0222FD08
+MOD70_0222FD08: ; 0x0222FD08
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r1, _0222FD78 ; =0x000035EC
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0x1a
+ bl FUN_020339B4
+ cmp r0, #0
+ bne _0222FD48
+ mov r0, #0x13
+ bl FUN_02031588
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222FD7C ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x1c
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222FD80 ; =MOD70_0222FBDC
+ ldr r0, _0222FD84 ; =0x00002214
+ add sp, #4
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, pc}
+_0222FD48:
+ mov r0, #0x1a
+ bl FUN_0200AA80
+ ldr r1, _0222FD88 ; =0x00003674
+ ldr r2, _0222FD8C ; =0x00000251
+ str r0, [r4, r1]
+ mov r1, #0x1a
+ mov r0, #0
+ add r3, r1, #0
+ bl FUN_0200A86C
+ ldr r1, _0222FD90 ; =0x00003678
+ str r0, [r4, r1]
+ ldr r0, [r4, #4]
+ bl FUN_020286EC
+ ldr r1, _0222FD94 ; =0x00003694
+ str r0, [r4, r1]
+ ldr r1, _0222FD98 ; =MOD70_0222FBF0
+ ldr r0, _0222FD84 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222FD78: .word 0x000035EC
+_0222FD7C: .word 0x000005A8
+_0222FD80: .word MOD70_0222FBDC
+_0222FD84: .word 0x00002214
+_0222FD88: .word 0x00003674
+_0222FD8C: .word 0x00000251
+_0222FD90: .word 0x00003678
+_0222FD94: .word 0x00003694
+_0222FD98: .word MOD70_0222FBF0
+ thumb_func_end MOD70_0222FD08
+
+ thumb_func_start MOD70_0222FD9C
+MOD70_0222FD9C: ; 0x0222FD9C
+ ldr r2, [r0, #0x60]
+ cmp r2, #0
+ beq _0222FDC8
+ ldr r1, [r0, #0x64]
+ cmp r1, #0
+ beq _0222FDC8
+ cmp r2, #1
+ bne _0222FDB8
+ cmp r1, #1
+ bne _0222FDB8
+ ldr r2, _0222FDCC ; =MOD70_0222FD08
+ ldr r1, _0222FDD0 ; =0x00002214
+ str r2, [r0, r1]
+ b _0222FDBE
+_0222FDB8:
+ ldr r2, _0222FDD4 ; =MOD70_0222F790
+ ldr r1, _0222FDD0 ; =0x00002214
+ str r2, [r0, r1]
+_0222FDBE:
+ mov r1, #0
+ str r1, [r0, #0x60]
+ str r1, [r0, #0x64]
+ mov r1, #0x1d
+ str r1, [r0, #0x68]
+_0222FDC8:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_0222FDCC: .word MOD70_0222FD08
+_0222FDD0: .word 0x00002214
+_0222FDD4: .word MOD70_0222F790
+ thumb_func_end MOD70_0222FD9C
+
+ thumb_func_start MOD70_0222FDD8
+MOD70_0222FDD8: ; 0x0222FDD8
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ mov r0, #0
+ add r1, sp, #0x10
+ strb r0, [r1, #8]
+ mov r0, #1
+ strb r0, [r1, #9]
+ mov r0, #3
+ strb r0, [r1, #0xa]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0xf
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0x30
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0xc0
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ ldr r0, _0222FED0 ; =0x00002218
+ add r1, r4, #0
+ add r1, #0x88
+ ldr r0, [r4, r0]
+ ldr r1, [r1]
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5f
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #8
+ str r0, [sp]
+ ldr r0, _0222FED4 ; =0x00000598
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x10
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #3
+ mov r1, #0x1a
+ bl FUN_02012838
+ ldr r1, _0222FED8 ; =0x0000065C
+ mov r2, #0x11
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r3, #0
+ bl FUN_02012880
+ ldr r0, _0222FED8 ; =0x0000065C
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ mov r2, #0x12
+ mov r3, #1
+ bl FUN_02012880
+ ldr r0, _0222FED8 ; =0x0000065C
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ mov r2, #0x13
+ mov r3, #2
+ bl FUN_02012880
+ ldr r0, _0222FED8 ; =0x0000065C
+ ldr r1, [r4, r0]
+ str r1, [sp, #0x10]
+ sub r0, #0xa4
+ add r0, r4, r0
+ str r0, [sp, #0x14]
+ bl MOD70_02231004
+ mov r0, #0x1a
+ str r0, [sp]
+ mov r0, #2
+ mov r2, #0
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02001C14
+ mov r1, #0x66
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r1, _0222FEDC ; =MOD70_0222FEE4
+ ldr r0, _0222FEE0 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ nop
+_0222FED0: .word 0x00002218
+_0222FED4: .word 0x00000598
+_0222FED8: .word 0x0000065C
+_0222FEDC: .word MOD70_0222FEE4
+_0222FEE0: .word 0x00002214
+ thumb_func_end MOD70_0222FDD8
+
+ thumb_func_start MOD70_0222FEE4
+MOD70_0222FEE4: ; 0x0222FEE4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02001C78
+ cmp r0, #2
+ bhi _0222FF06
+ cmp r0, #0
+ beq _0222FF10
+ cmp r0, #1
+ beq _0222FF64
+ cmp r0, #2
+ beq _0222FFB4
+ b _02230002
+_0222FF06:
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222FFB4
+ b _02230002
+_0222FF10:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230008 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _0223000C ; =0x0000065C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r1, _02230010 ; =MOD70_0222F538
+ ldr r0, _02230014 ; =0x00002214
+ add sp, #0x10
+ str r1, [r4, r0]
+ mov r0, #3
+ pop {r4, pc}
+_0222FF64:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230018 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _0223000C ; =0x0000065C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r1, _0223001C ; =MOD70_02230020
+ ldr r0, _02230014 ; =0x00002214
+ str r1, [r4, r0]
+ b _02230002
+_0222FFB4:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230008 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _0223000C ; =0x0000065C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r1, _02230010 ; =MOD70_0222F538
+ ldr r0, _02230014 ; =0x00002214
+ str r1, [r4, r0]
+_02230002:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02230008: .word 0x00000588
+_0223000C: .word 0x0000065C
+_02230010: .word MOD70_0222F538
+_02230014: .word 0x00002214
+_02230018: .word 0x000005A8
+_0223001C: .word MOD70_02230020
+ thumb_func_end MOD70_0222FEE4
+
+ thumb_func_start MOD70_02230020
+MOD70_02230020: ; 0x02230020
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230070 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ add r0, r4, #0
+ mov r1, #0x18
+ mov r2, #2
+ bl MOD70_0222F440
+ ldr r1, _02230074 ; =MOD70_0223007C
+ ldr r0, _02230078 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02230070: .word 0x000005A8
+_02230074: .word MOD70_0223007C
+_02230078: .word 0x00002214
+ thumb_func_end MOD70_02230020
+
+ thumb_func_start MOD70_0223007C
+MOD70_0223007C: ; 0x0223007C
+ ldr r2, [r0, #0x60]
+ cmp r2, #0
+ beq _022300A8
+ ldr r1, [r0, #0x64]
+ cmp r1, #0
+ beq _022300A8
+ cmp r2, #2
+ bne _02230098
+ cmp r1, #2
+ bne _02230098
+ ldr r2, _022300AC ; =MOD70_022300B8
+ ldr r1, _022300B0 ; =0x00002214
+ str r2, [r0, r1]
+ b _0223009E
+_02230098:
+ ldr r2, _022300B4 ; =MOD70_0222F790
+ ldr r1, _022300B0 ; =0x00002214
+ str r2, [r0, r1]
+_0223009E:
+ mov r1, #0x18
+ str r1, [r0, #0x68]
+ mov r1, #0
+ str r1, [r0, #0x60]
+ str r1, [r0, #0x64]
+_022300A8:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_022300AC: .word MOD70_022300B8
+_022300B0: .word 0x00002214
+_022300B4: .word MOD70_0222F790
+ thumb_func_end MOD70_0223007C
+
+ thumb_func_start MOD70_022300B8
+MOD70_022300B8: ; 0x022300B8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ ldr r0, _022301D8 ; =0x00000438
+ mov r6, #0
+ add r0, r7, r0
+ add r4, r7, #0
+ add r5, r7, #0
+ str r0, [sp, #4]
+_022300CA:
+ add r0, r7, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r6, r0
+ beq _02230108
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, _022301DC ; =0x00000692
+ ldrh r0, [r5, r0]
+ cmp r0, #0
+ beq _022300F4
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_022300F4:
+ ldr r0, _022301E0 ; =0x0000069C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02230108
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_02230108:
+ add r0, r6, #7
+ lsl r1, r0, #4
+ ldr r0, [sp, #4]
+ add r0, r0, r1
+ bl FUN_0201958C
+ add r0, r7, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ sub r0, r0, #6
+ cmp r6, r0
+ beq _02230154
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, _022301E4 ; =0x000006F2
+ ldrh r0, [r5, r0]
+ cmp r0, #0
+ beq _02230140
+ mov r0, #0xee
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_02230140:
+ ldr r0, _022301E8 ; =0x000006FC
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02230154
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_02230154:
+ add r0, r6, #0
+ add r0, #0xd
+ lsl r1, r0, #4
+ ldr r0, [sp, #4]
+ add r0, r0, r1
+ bl FUN_0201958C
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, #0x10
+ cmp r6, #6
+ blt _022300CA
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r7, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r3, #0x30
+ lsl r2, r0, #3
+ ldr r1, _022301EC ; =0x02231220
+ ldr r0, _022301F0 ; =0x000022C4
+ ldr r1, [r1, r2]
+ ldr r4, _022301F4 ; =0x02231224
+ add r0, r7, r0
+ ldr r2, [r4, r2]
+ add r1, #0x10
+ sub r2, r2, #6
+ str r3, [sp]
+ bl MOD70_02230204
+ add r0, r7, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ ldr r1, _022301EC ; =0x02231220
+ lsl r2, r0, #3
+ mov r0, #0x30
+ str r0, [sp]
+ ldr r0, _022301F8 ; =0x000022DC
+ ldr r1, [r1, r2]
+ add r3, r4, #0
+ ldr r2, [r3, r2]
+ add r0, r7, r0
+ add r1, #0x10
+ sub r2, r2, #6
+ mov r3, #0xb0
+ bl MOD70_02230204
+ ldr r1, _022301FC ; =0x000022BC
+ mov r0, #0
+ str r0, [r7, r1]
+ ldr r2, _02230200 ; =MOD70_0223029C
+ sub r1, #0xa8
+ str r2, [r7, r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022301D8: .word 0x00000438
+_022301DC: .word 0x00000692
+_022301E0: .word 0x0000069C
+_022301E4: .word 0x000006F2
+_022301E8: .word 0x000006FC
+_022301EC: .word 0x02231220
+_022301F0: .word 0x000022C4
+_022301F4: .word 0x02231224
+_022301F8: .word 0x000022DC
+_022301FC: .word 0x000022BC
+_02230200: .word MOD70_0223029C
+ thumb_func_end MOD70_022300B8
+
+ thumb_func_start MOD70_02230204
+MOD70_02230204: ; 0x02230204
+ lsl r1, r1, #0xc
+ str r1, [r0]
+ lsl r1, r2, #0xc
+ str r1, [r0, #4]
+ lsl r1, r3, #0xc
+ str r1, [r0, #0xc]
+ ldr r1, [sp]
+ lsl r1, r1, #0xc
+ str r1, [r0, #0x10]
+ bx lr
+ thumb_func_end MOD70_02230204
+
+ thumb_func_start MOD70_02230218
+MOD70_02230218: ; 0x02230218
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ ldr r7, [sp, #0x48]
+ str r0, [sp]
+ ldr r4, [r7]
+ ldr r0, [r7, #0xc]
+ str r1, [sp, #4]
+ add r6, r3, #0
+ sub r0, r0, r4
+ mov r1, #0x14
+ str r2, [sp, #8]
+ ldr r5, [sp, #0x4c]
+ bl _s32_div_f
+ mul r0, r6
+ add r0, r4, r0
+ str r0, [sp, #0x24]
+ ldr r4, [r7, #4]
+ ldr r0, [r7, #0x10]
+ mov r1, #0x14
+ sub r0, r0, r4
+ bl _s32_div_f
+ mul r0, r6
+ add r0, r4, r0
+ str r0, [sp, #0x28]
+ ldr r0, [sp]
+ add r1, sp, #0x24
+ bl FUN_02020044
+ ldrh r0, [r5, #2]
+ cmp r0, #0
+ beq _02230276
+ mov r0, #5
+ ldr r1, [sp, #0x24]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x18]
+ mov r0, #0x16
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #4]
+ add r1, sp, #0x18
+ bl FUN_02020044
+_02230276:
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ beq _02230298
+ mov r0, #7
+ ldr r1, [sp, #0x24]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+ mov r0, #0x16
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #8]
+ add r1, sp, #0xc
+ bl FUN_02020044
+_02230298:
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_02230218
+
+ thumb_func_start MOD70_0223029C
+MOD70_0223029C: ; 0x0223029C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ ldr r3, _02230370 ; =0x000022BC
+ add r4, r0, #0
+ ldr r0, [r4, r3]
+ add r2, r3, #0
+ add r0, r0, #1
+ str r0, [r4, r3]
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ add r2, #8
+ add r2, r4, r2
+ lsl r0, r1, #2
+ str r2, [sp]
+ mov r2, #0x69
+ lsl r2, r2, #4
+ add r2, r4, r2
+ lsl r1, r1, #4
+ add r1, r2, r1
+ mov r2, #0x37
+ str r1, [sp, #4]
+ lsl r2, r2, #4
+ add r5, r4, r0
+ add r1, r2, #0
+ ldr r0, [r5, r2]
+ add r1, #0x30
+ add r2, #0x60
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ ldr r3, [r4, r3]
+ bl MOD70_02230218
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r3, _02230374 ; =0x000022DC
+ ldr r5, [r0]
+ add r1, r4, r3
+ str r1, [sp]
+ mov r1, #0x69
+ lsl r1, r1, #4
+ add r2, r4, r1
+ lsl r1, r5, #4
+ add r1, r2, r1
+ mov r2, #0x37
+ lsl r0, r5, #2
+ lsl r2, r2, #4
+ str r1, [sp, #4]
+ add r5, r4, r0
+ add r1, r2, #0
+ ldr r0, [r5, r2]
+ add r1, #0x30
+ add r2, #0x60
+ sub r3, #0x20
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ ldr r3, [r4, r3]
+ bl MOD70_02230218
+ ldr r1, _02230370 ; =0x000022BC
+ ldr r0, [r4, r1]
+ cmp r0, #0x15
+ bne _02230368
+ mov r0, #1
+ add r2, r4, #0
+ str r0, [sp]
+ ldr r0, _02230378 ; =0x00000568
+ sub r1, #0xa4
+ add r2, #0x88
+ ldr r1, [r4, r1]
+ ldr r2, [r2]
+ add r0, r4, r0
+ mov r3, #8
+ bl MOD70_0222EC5C
+ mov r0, #1
+ add r2, r4, #0
+ str r0, [sp]
+ ldr r1, _0223037C ; =0x0000221C
+ add r2, #0x8c
+ ldr r0, _02230380 ; =0x00000578
+ ldr r2, [r2]
+ ldr r1, [r4, r1]
+ add r0, r4, r0
+ sub r2, r2, #6
+ mov r3, #8
+ bl MOD70_0222EC5C
+ add r1, r4, #0
+ add r1, #0x8c
+ ldr r1, [r1]
+ add r0, r4, #0
+ bl MOD70_0222E1A0
+ ldr r1, _02230384 ; =MOD70_022304AC
+ ldr r0, _02230388 ; =0x00002214
+ str r1, [r4, r0]
+ ldr r0, _0223038C ; =0x00000418
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+_02230368:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02230370: .word 0x000022BC
+_02230374: .word 0x000022DC
+_02230378: .word 0x00000568
+_0223037C: .word 0x0000221C
+_02230380: .word 0x00000578
+_02230384: .word MOD70_022304AC
+_02230388: .word 0x00002214
+_0223038C: .word 0x00000418
+ thumb_func_end MOD70_0223029C
+
+ thumb_func_start MOD70_02230390
+MOD70_02230390: ; 0x02230390
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r1, _0223048C ; =0x00000568
+ str r0, [sp]
+ add r0, r0, r1
+ bl FUN_0201958C
+ ldr r1, _02230490 ; =0x00000578
+ ldr r0, [sp]
+ add r0, r0, r1
+ bl FUN_0201958C
+ ldr r6, [sp]
+ ldr r1, _02230494 ; =0x00000438
+ add r0, r6, #0
+ add r0, r0, r1
+ ldr r4, _02230498 ; =0x02231220
+ mov r7, #0
+ add r5, r6, #0
+ str r0, [sp, #4]
+_022303B8:
+ mov r0, #0x69
+ lsl r0, r0, #4
+ ldrh r0, [r6, r0]
+ cmp r0, #0
+ beq _02230438
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r1, [r4]
+ ldr r2, [r4, #4]
+ ldr r0, [r5, r0]
+ add r1, #0x10
+ sub r2, r2, #6
+ bl MOD70_02230B70
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _0223049C ; =0x00000692
+ ldrh r0, [r6, r0]
+ cmp r0, #0
+ beq _02230406
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r1, [r4]
+ ldr r2, [r4, #4]
+ ldr r0, [r5, r0]
+ add r1, #0x24
+ add r2, #0x10
+ bl MOD70_02230B70
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_02230406:
+ ldr r0, _022304A0 ; =0x0000069C
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _0223042C
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r1, [r4]
+ ldr r2, [r4, #4]
+ ldr r0, [r5, r0]
+ add r1, #0x2c
+ add r2, #0x10
+ bl MOD70_02230B70
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_0223042C:
+ add r0, r7, #7
+ lsl r1, r0, #4
+ ldr r0, [sp, #4]
+ add r0, r0, r1
+ bl FUN_02019220
+_02230438:
+ add r7, r7, #1
+ add r6, #0x10
+ add r4, #8
+ add r5, r5, #4
+ cmp r7, #0xc
+ blt _022303B8
+ mov r1, #0xce
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r1, #0xcf
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, _02230494 ; =0x00000438
+ ldr r0, [sp]
+ ldr r2, [sp]
+ add r0, r0, r1
+ mov r1, #1
+ bl MOD70_0222EF24
+ ldr r1, _022304A4 ; =0x0000040C
+ ldr r0, [sp]
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r1, _022304A8 ; =0x00000418
+ ldr r0, [sp]
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223048C: .word 0x00000568
+_02230490: .word 0x00000578
+_02230494: .word 0x00000438
+_02230498: .word 0x02231220
+_0223049C: .word 0x00000692
+_022304A0: .word 0x0000069C
+_022304A4: .word 0x0000040C
+_022304A8: .word 0x00000418
+ thumb_func_end MOD70_02230390
+
+ thumb_func_start MOD70_022304AC
+MOD70_022304AC: ; 0x022304AC
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ ldr r0, _02230534 ; =0x00002218
+ add r1, r4, #0
+ add r1, #0x88
+ ldr r0, [r4, r0]
+ ldr r1, [r1]
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r1, r4, #0
+ ldr r0, _02230538 ; =0x0000221C
+ add r1, #0x8c
+ ldr r1, [r1]
+ ldr r0, [r4, r0]
+ sub r1, r1, #6
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200ACF8
+ mov r3, #0x5f
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #8
+ str r0, [sp]
+ ldr r0, _0223053C ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x15
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _02230540 ; =MOD70_02230548
+ ldr r0, _02230544 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02230534: .word 0x00002218
+_02230538: .word 0x0000221C
+_0223053C: .word 0x000005A8
+_02230540: .word MOD70_02230548
+_02230544: .word 0x00002214
+ thumb_func_end MOD70_022304AC
+
+ thumb_func_start MOD70_02230548
+MOD70_02230548: ; 0x02230548
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _02230638 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0223056E
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _022305EE
+ b _02230632
+_0223056E:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _0223063C ; =0x0000069C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022305E6
+ add r0, r4, #0
+ bl MOD70_02230BC4
+ cmp r0, #0
+ beq _022305D4
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230640 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _02230644 ; =MOD70_02230770
+ ldr r0, _02230648 ; =0x00002214
+ mov r2, #3
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD70_0222F440
+ mov r0, #1
+ str r0, [r4, #0x5c]
+ b _02230632
+_022305D4:
+ ldr r1, _02230644 ; =MOD70_02230770
+ ldr r0, _02230648 ; =0x00002214
+ mov r2, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD70_0222F440
+ b _02230632
+_022305E6:
+ ldr r1, _0223064C ; =MOD70_02230650
+ ldr r0, _02230648 ; =0x00002214
+ str r1, [r4, r0]
+ b _02230632
+_022305EE:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230640 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _02230644 ; =MOD70_02230770
+ ldr r0, _02230648 ; =0x00002214
+ mov r2, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD70_0222F440
+_02230632:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02230638: .word 0x00000658
+_0223063C: .word 0x0000069C
+_02230640: .word 0x000005A8
+_02230644: .word MOD70_02230770
+_02230648: .word 0x00002214
+_0223064C: .word MOD70_02230650
+ thumb_func_end MOD70_02230548
+
+ thumb_func_start MOD70_02230650
+MOD70_02230650: ; 0x02230650
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5f
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #8
+ str r0, [sp]
+ ldr r0, _02230698 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x24
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0223069C ; =MOD70_022306A4
+ ldr r0, _022306A0 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_02230698: .word 0x000005A8
+_0223069C: .word MOD70_022306A4
+_022306A0: .word 0x00002214
+ thumb_func_end MOD70_02230650
+
+ thumb_func_start MOD70_022306A4
+MOD70_022306A4: ; 0x022306A4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _02230760 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _022306CA
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _02230714
+ b _02230758
+_022306CA:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230764 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _02230768 ; =MOD70_02230770
+ ldr r0, _0223076C ; =0x00002214
+ mov r2, #3
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD70_0222F440
+ mov r0, #1
+ str r0, [r4, #0x5c]
+ b _02230758
+_02230714:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230764 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _02230768 ; =MOD70_02230770
+ ldr r0, _0223076C ; =0x00002214
+ mov r2, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD70_0222F440
+_02230758:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_02230760: .word 0x00000658
+_02230764: .word 0x000005A8
+_02230768: .word MOD70_02230770
+_0223076C: .word 0x00002214
+ thumb_func_end MOD70_022306A4
+
+ thumb_func_start MOD70_02230770
+MOD70_02230770: ; 0x02230770
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x60]
+ cmp r1, #0
+ beq _022307B8
+ ldr r0, [r4, #0x64]
+ cmp r0, #0
+ beq _022307B8
+ cmp r1, #3
+ bne _02230798
+ cmp r0, #3
+ bne _02230798
+ ldr r0, _022307BC ; =0x00003698
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ ldr r1, _022307C0 ; =MOD70_022307CC
+ ldr r0, _022307C4 ; =0x00002214
+ str r1, [r4, r0]
+ b _0223079E
+_02230798:
+ ldr r1, _022307C8 ; =MOD70_0222F790
+ ldr r0, _022307C4 ; =0x00002214
+ str r1, [r4, r0]
+_0223079E:
+ mov r0, #0
+ str r0, [r4, #0x60]
+ str r0, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD70_02230BC4
+ cmp r0, #0
+ beq _022307B4
+ mov r0, #0x18
+ str r0, [r4, #0x68]
+ b _022307B8
+_022307B4:
+ mov r0, #0x22
+ str r0, [r4, #0x68]
+_022307B8:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_022307BC: .word 0x00003698
+_022307C0: .word MOD70_022307CC
+_022307C4: .word 0x00002214
+_022307C8: .word MOD70_0222F790
+ thumb_func_end MOD70_02230770
+
+ thumb_func_start MOD70_022307CC
+MOD70_022307CC: ; 0x022307CC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_0202E288
+ ldr r0, [r4, #8]
+ add r3, r4, #0
+ add r2, r4, #0
+ ldr r1, _02230804 ; =0x00002218
+ str r0, [sp]
+ add r3, #0x8c
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ add r2, #0x88
+ ldr r3, [r3]
+ ldr r1, [r4, r1]
+ ldr r2, [r2]
+ sub r3, r3, #6
+ bl MOD70_022309E8
+ ldr r1, _02230808 ; =MOD70_0222F790
+ ldr r0, _0223080C ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #2
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02230804: .word 0x00002218
+_02230808: .word MOD70_0222F790
+_0223080C: .word 0x00002214
+ thumb_func_end MOD70_022307CC
+
+ thumb_func_start MOD70_02230810
+MOD70_02230810: ; 0x02230810
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ mov r0, #0
+ add r1, sp, #0x10
+ strb r0, [r1, #8]
+ mov r0, #1
+ strb r0, [r1, #9]
+ mov r0, #2
+ strb r0, [r1, #0xa]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0xf
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0x30
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0xc0
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ add r1, r4, #0
+ ldr r0, _022308F8 ; =0x0000221C
+ add r1, #0x88
+ ldr r1, [r1]
+ ldr r0, [r4, r0]
+ sub r1, r1, #6
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5f
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #8
+ str r0, [sp]
+ ldr r0, _022308FC ; =0x00000598
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x10
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #2
+ mov r1, #0x1a
+ bl FUN_02012838
+ ldr r1, _02230900 ; =0x0000065C
+ mov r2, #0x11
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r3, #0
+ bl FUN_02012880
+ ldr r0, _02230900 ; =0x0000065C
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ mov r2, #0x13
+ mov r3, #1
+ bl FUN_02012880
+ ldr r0, _02230900 ; =0x0000065C
+ ldr r1, [r4, r0]
+ sub r0, #0x94
+ add r0, r4, r0
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ bl MOD70_02231004
+ mov r0, #0x1a
+ str r0, [sp]
+ mov r0, #2
+ mov r2, #0
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02001C14
+ mov r1, #0x66
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r1, _02230904 ; =MOD70_0223090C
+ ldr r0, _02230908 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ nop
+_022308F8: .word 0x0000221C
+_022308FC: .word 0x00000598
+_02230900: .word 0x0000065C
+_02230904: .word MOD70_0223090C
+_02230908: .word 0x00002214
+ thumb_func_end MOD70_02230810
+
+ thumb_func_start MOD70_0223090C
+MOD70_0223090C: ; 0x0223090C
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02001C78
+ cmp r0, #0
+ beq _0223092E
+ cmp r0, #1
+ beq _02230982
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _02230982
+ b _022309D0
+_0223092E:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _022309D8 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _022309DC ; =MOD70_0222F538
+ ldr r0, _022309E0 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _022309E4 ; =0x0000065C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ add sp, #0x10
+ mov r0, #3
+ pop {r4, pc}
+_02230982:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _022309D8 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _022309E4 ; =0x0000065C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r1, _022309DC ; =MOD70_0222F538
+ ldr r0, _022309E0 ; =0x00002214
+ str r1, [r4, r0]
+_022309D0:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_022309D8: .word 0x00000588
+_022309DC: .word MOD70_0222F538
+_022309E0: .word 0x00002214
+_022309E4: .word 0x0000065C
+ thumb_func_end MOD70_0223090C
+
+ thumb_func_start MOD70_022309E8
+MOD70_022309E8: ; 0x022309E8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ str r1, [sp, #8]
+ add r6, r2, #0
+ str r3, [sp, #0xc]
+ ldr r5, [sp, #0x28]
+ bl FUN_020669C0
+ add r7, r0, #0
+ mov r0, #0x1a
+ bl FUN_020669C0
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ add r1, r7, #0
+ bl FUN_02069B88
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ bl FUN_0206B9B0
+ add r1, r4, #0
+ bl FUN_02069B88
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _02230A40
+ mov r1, #0x46
+ add r0, sp, #0x10
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #9
+ add r2, sp, #0x10
+ bl FUN_02067830
+_02230A40:
+ bl FUN_02031190
+ bl FUN_0202DFA4
+ add r1, r0, #0
+ mov r0, #0xb
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #5
+ mov r3, #0
+ bl FUN_0208089C
+ add r0, r4, #0
+ bl FUN_0206AA84
+ ldr r1, [r5, #0x3c]
+ add r0, r7, #0
+ bl FUN_02069B88
+ ldr r1, [r5, #0x40]
+ add r0, r4, #0
+ bl FUN_02069B88
+ bl FUN_02031190
+ mov r1, #1
+ eor r0, r1
+ bl FUN_0202DFA4
+ ldr r1, [r5, #0x38]
+ bl FUN_0202393C
+ ldr r0, [sp, #4]
+ ldr r1, _02230AE0 ; =0x000001B9
+ str r6, [r5, #0x2c]
+ bl FUN_0206BAE4
+ cmp r0, #0
+ bne _02230A98
+ ldr r0, [r5, #0x10]
+ bl FUN_02029EF8
+ bl FUN_02029F08
+_02230A98:
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ bl FUN_0202C144
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_02069B88
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ bl FUN_0206B9B0
+ add r1, r0, #0
+ add r0, r7, #0
+ bl FUN_02069B88
+ ldr r0, [r5, #0x1c]
+ add r1, r4, #0
+ bl MOD70_02230AE4
+ ldr r0, [r5, #0x20]
+ mov r1, #0x13
+ bl FUN_0202A0E8
+ add r0, r7, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02230AE0: .word 0x000001B9
+ thumb_func_end MOD70_022309E8
+
+ thumb_func_start MOD70_02230AE4
+MOD70_02230AE4: ; 0x02230AE4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r0, #0
+ add r4, r1, #0
+ bl FUN_02031190
+ mov r1, #1
+ eor r0, r1
+ bl FUN_0202DFA4
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #0x74
+ add r2, sp, #4
+ bl FUN_020671BC
+ add r0, r5, #0
+ bl FUN_0202398C
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_020239CC
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_020689E0
+ add r3, r0, #0
+ mov r0, #0x1a
+ lsl r1, r5, #0x18
+ str r0, [sp]
+ add r0, r7, #0
+ lsr r1, r1, #0x18
+ add r2, sp, #4
+ bl FUN_0202945C
+ add r1, r0, #0
+ add r0, r6, #0
+ mov r2, #4
+ bl FUN_02028AD4
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_02230AE4
+
+ thumb_func_start MOD70_02230B3C
+MOD70_02230B3C: ; 0x02230B3C
+ push {r4, lr}
+ ldr r3, _02230B6C ; =0x000022B8
+ add r4, r0, #0
+ ldr r0, [r4, r3]
+ mov r1, #6
+ add r0, r0, #2
+ str r0, [r4, r3]
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r3, [r4, r3]
+ mov r2, #0
+ bl FUN_020179E0
+ mov r0, #0x5d
+ ldr r3, _02230B6C ; =0x000022B8
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r3, [r4, r3]
+ mov r1, #3
+ mov r2, #0
+ bl FUN_020179E0
+ pop {r4, pc}
+ .align 2, 0
+_02230B6C: .word 0x000022B8
+ thumb_func_end MOD70_02230B3C
+
+ thumb_func_start MOD70_02230B70
+MOD70_02230B70: ; 0x02230B70
+ push {lr}
+ sub sp, #0xc
+ lsl r1, r1, #0xc
+ str r1, [sp]
+ lsl r1, r2, #0xc
+ str r1, [sp, #4]
+ add r1, sp, #0
+ bl FUN_02020044
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+ thumb_func_end MOD70_02230B70
+
+ thumb_func_start MOD70_02230B88
+MOD70_02230B88: ; 0x02230B88
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02230B9C ; =0x000005A8
+ ldr r1, _02230BA0 ; =0x000001D9
+ add r0, r4, r0
+ bl FUN_0200D858
+ ldr r1, _02230BA4 ; =0x000036A8
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+_02230B9C: .word 0x000005A8
+_02230BA0: .word 0x000001D9
+_02230BA4: .word 0x000036A8
+ thumb_func_end MOD70_02230B88
+
+ thumb_func_start MOD70_02230BA8
+MOD70_02230BA8: ; 0x02230BA8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02230BC0 ; =0x000036A8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02230BBE
+ bl FUN_0200DBFC
+ ldr r0, _02230BC0 ; =0x000036A8
+ mov r1, #0
+ str r1, [r4, r0]
+_02230BBE:
+ pop {r4, pc}
+ .align 2, 0
+_02230BC0: .word 0x000036A8
+ thumb_func_end MOD70_02230BA8
+
+ thumb_func_start MOD70_02230BC4
+MOD70_02230BC4: ; 0x02230BC4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _02230C00 ; =0x00002218
+ mov r4, #0
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ add r3, r4, #0
+ cmp r0, #0
+ ble _02230BF0
+ add r1, r5, #0
+ add r1, #0x88
+ ldr r6, [r1]
+ ldr r1, _02230C04 ; =0x00000695
+_02230BE0:
+ cmp r3, r6
+ beq _02230BE8
+ ldrb r2, [r5, r1]
+ add r4, r4, r2
+_02230BE8:
+ add r3, r3, #1
+ add r5, #0x10
+ cmp r3, r0
+ blt _02230BE0
+_02230BF0:
+ sub r0, r0, #1
+ cmp r4, r0
+ bne _02230BFA
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_02230BFA:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ nop
+_02230C00: .word 0x00002218
+_02230C04: .word 0x00000695
+ thumb_func_end MOD70_02230BC4
+
+ thumb_func_start MOD70_02230C08
+MOD70_02230C08: ; 0x02230C08
+ ldr r1, _02230C18 ; =0x000036AC
+ mov r2, #1
+ str r2, [r0, r1]
+ mov r2, #0
+ add r1, r1, #4
+ str r2, [r0, r1]
+ bx lr
+ nop
+_02230C18: .word 0x000036AC
+ thumb_func_end MOD70_02230C08
+
+ thumb_func_start MOD70_02230C1C
+MOD70_02230C1C: ; 0x02230C1C
+ push {r3, lr}
+ ldr r2, _02230C40 ; =0x000036AC
+ ldr r1, [r0, r2]
+ cmp r1, #0
+ beq _02230C3E
+ add r1, r2, #4
+ ldr r1, [r0, r1]
+ add r3, r1, #1
+ add r1, r2, #4
+ str r3, [r0, r1]
+ ldr r1, [r0, r1]
+ ldr r0, _02230C44 ; =0x00000708
+ cmp r1, r0
+ ble _02230C3E
+ mov r0, #4
+ bl FUN_020336A0
+_02230C3E:
+ pop {r3, pc}
+ .align 2, 0
+_02230C40: .word 0x000036AC
+_02230C44: .word 0x00000708
+ thumb_func_end MOD70_02230C1C
+
+ thumb_func_start MOD70_02230C48
+MOD70_02230C48: ; 0x02230C48
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r2, #0
+ mov r2, #1
+ str r2, [sp]
+ mov r3, #0xa
+ str r3, [sp, #4]
+ mov r3, #2
+ str r3, [sp, #8]
+ mov r6, #8
+ str r6, [sp, #0xc]
+ add r5, r1, #0
+ str r0, [sp, #0x14]
+ str r2, [sp, #0x10]
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r2, #1
+ add r1, r5, #0
+ str r2, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ add r0, r6, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x15
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ add r1, #0x10
+ mov r3, #0x14
+ bl FUN_02019064
+ add r0, r5, #0
+ add r0, #0x10
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ add r0, r6, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x29
+ str r0, [sp, #0x10]
+ add r1, r5, #0
+ ldr r0, [sp, #0x14]
+ add r1, #0x60
+ mov r2, #1
+ mov r3, #0x1a
+ bl FUN_02019064
+ add r0, r5, #0
+ add r0, #0x60
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x14]
+ ldr r2, _02230E78 ; =0x000001D9
+ mov r1, #0
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x14]
+ ldr r2, _02230E7C ; =0x000001F7
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r1, #0x15
+ str r1, [sp]
+ mov r0, #0x14
+ str r0, [sp, #4]
+ mov r3, #2
+ lsl r1, r1, #4
+ str r3, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ mov r2, #0
+ bl FUN_02019064
+ mov r0, #0x15
+ lsl r0, r0, #4
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0xe
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x28
+ mov r1, #0x16
+ str r0, [sp, #0x10]
+ lsl r1, r1, #4
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #0x16
+ lsl r0, r0, #4
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x38
+ mov r1, #0x17
+ str r0, [sp, #0x10]
+ lsl r1, r1, #4
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #0x17
+ lsl r0, r0, #4
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x11
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r1, #0xa4
+ str r1, [sp, #0x10]
+ add r1, #0xdc
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ mov r2, #0
+ mov r3, #0x14
+ bl FUN_02019064
+ mov r0, #6
+ lsl r0, r0, #6
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r1, #0xe6
+ str r1, [sp, #0x10]
+ add r1, #0xaa
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ mov r2, #0
+ mov r3, #0x14
+ bl FUN_02019064
+ mov r0, #0x19
+ lsl r0, r0, #4
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r4, _02230E80 ; =0x022313F4
+ mov r7, #0
+ mov r6, #0x33
+_02230DE2:
+ add r0, r7, #7
+ lsl r0, r0, #4
+ str r0, [sp, #0x18]
+ ldrh r0, [r4, #2]
+ ldr r1, [sp, #0x18]
+ mov r2, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldrh r3, [r4]
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ ldr r0, [sp, #0x18]
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_02019620
+ add r7, r7, #1
+ add r6, #0x10
+ add r4, r4, #4
+ cmp r7, #0xe
+ blt _02230DE2
+ ldr r4, _02230E84 ; =0x0223142C
+ mov r6, #0
+_02230E2C:
+ add r0, r6, #0
+ add r0, #0x1a
+ lsl r7, r0, #4
+ ldrh r0, [r4, #2]
+ add r1, r5, r7
+ mov r2, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrh r0, [r4, #4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldrh r0, [r4, #6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldrh r0, [r4, #8]
+ str r0, [sp, #0x10]
+ ldrh r3, [r4]
+ ldr r0, [sp, #0x14]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ add r0, r5, r7
+ mov r1, #0
+ bl FUN_02019620
+ add r6, r6, #1
+ add r4, #0xa
+ cmp r6, #8
+ blt _02230E2C
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02230E78: .word 0x000001D9
+_02230E7C: .word 0x000001F7
+_02230E80: .word 0x022313F4
+_02230E84: .word 0x0223142C
+ thumb_func_end MOD70_02230C48
+
+ thumb_func_start MOD70_02230E88
+MOD70_02230E88: ; 0x02230E88
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ mov r5, #0
+_02230E8E:
+ add r0, r5, #7
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ add r5, r5, #1
+ cmp r5, #0xe
+ blt _02230E8E
+ mov r5, #0
+_02230EA0:
+ add r0, r5, #0
+ add r0, #0x1a
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ add r5, r5, #1
+ cmp r5, #8
+ blt _02230EA0
+ add r0, r4, #0
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x10
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x60
+ bl FUN_02019178
+ mov r0, #0x15
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0x16
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0x17
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #6
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0x19
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD70_02230E88
+
+ thumb_func_start MOD70_02230EFC
+MOD70_02230EFC: ; 0x02230EFC
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r3, #0
+ ldr r3, [sp, #0x20]
+ add r5, r0, #0
+ add r6, r1, #0
+ cmp r3, #1
+ bne _02230F20
+ mov r0, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r5, #7]
+ lsl r1, r1, #3
+ sub r1, r1, r0
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r3, r0, #1
+_02230F20:
+ ldr r0, [sp, #0x24]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, _02230F3C ; =0x000B0C00
+ str r4, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r2, r6, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_02230F3C: .word 0x000B0C00
+ thumb_func_end MOD70_02230EFC
+
+ thumb_func_start MOD70_02230F40
+MOD70_02230F40: ; 0x02230F40
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ add r1, r3, #0
+ ldr r0, [sp, #0x20]
+ add r2, r6, #0
+ mov r3, #0x1a
+ bl FUN_0200A9C4
+ add r6, r0, #0
+ cmp r4, #1
+ bne _02230F6A
+ ldr r2, _02230FA4 ; =0x000001D9
+ add r0, r5, #0
+ mov r1, #0
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ b _02230F76
+_02230F6A:
+ ldr r2, _02230FA8 ; =0x000001F7
+ add r0, r5, #0
+ mov r1, #0
+ mov r3, #0xb
+ bl FUN_0200CCA4
+_02230F76:
+ add r0, r5, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _02230FAC ; =0x0001020F
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r4, r0, #0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_02230FA4: .word 0x000001D9
+_02230FA8: .word 0x000001F7
+_02230FAC: .word 0x0001020F
+ thumb_func_end MOD70_02230F40
+
+ thumb_func_start MOD70_02230FB0
+MOD70_02230FB0: ; 0x02230FB0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r2, #0
+ add r5, r1, #0
+ mov r6, #0
+ ldr r1, [r4]
+ mvn r6, r6
+ cmp r1, #0
+ beq _02230FC8
+ cmp r1, #1
+ beq _02230FE0
+ b _02230FF6
+_02230FC8:
+ mov r1, #0x1a
+ str r1, [sp]
+ ldr r1, _02230FFC ; =0x022313CC
+ ldr r2, _02231000 ; =0x000001F7
+ mov r3, #0xb
+ bl FUN_02002198
+ str r0, [r5]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02230FF6
+_02230FE0:
+ ldr r0, [r5]
+ mov r1, #0x1a
+ bl FUN_020021AC
+ add r6, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ beq _02230FF6
+ mov r0, #0
+ str r0, [r4]
+_02230FF6:
+ add r0, r6, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02230FFC: .word 0x022313CC
+_02231000: .word 0x000001F7
+ thumb_func_end MOD70_02230FB0
+
+ thumb_func_start MOD70_02231004
+MOD70_02231004: ; 0x02231004
+ push {r3, lr}
+ ldr r2, _02231014 ; =0x000001F7
+ mov r1, #0
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ pop {r3, pc}
+ nop
+_02231014: .word 0x000001F7
+ thumb_func_end MOD70_02231004
+
+ thumb_func_start MOD70_02231018
+MOD70_02231018: ; 0x02231018
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _02231088 ; =0x0000014D
+ add r4, r2, #0
+ add r6, r1, #0
+ str r0, [sp, #0x10]
+ add r0, r3, #0
+ add r1, r4, #0
+ mov r2, #0
+ mov r3, #0x13
+ bl FUN_02019064
+ ldr r2, _0223108C ; =0x000001F7
+ add r0, r4, #0
+ mov r1, #0
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ ldr r3, _02231090 ; =0x022313D4
+ add r2, sp, #0x14
+ add r7, 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}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r1, r6, #1
+ add r0, sp, #0x14
+ strh r1, [r0, #0x10]
+ mov r1, #5
+ strh r1, [r0, #0x12]
+ ldr r0, _02231094 ; =MOD70_02231098
+ mov r1, #0
+ str r0, [sp, #0x18]
+ add r0, r7, #0
+ add r2, r1, #0
+ mov r3, #0x1a
+ str r5, [sp, #0x14]
+ str r4, [sp, #0x20]
+ bl FUN_020010A8
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02231088: .word 0x0000014D
+_0223108C: .word 0x000001F7
+_02231090: .word 0x022313D4
+_02231094: .word MOD70_02231098
+ thumb_func_end MOD70_02231018
+
+ thumb_func_start MOD70_02231098
+MOD70_02231098: ; 0x02231098
+ push {r3, lr}
+ cmp r2, #0
+ bne _022310A4
+ ldr r0, _022310A8 ; =0x000005DC
+ bl FUN_020054C8
+_022310A4:
+ pop {r3, pc}
+ nop
+_022310A8: .word 0x000005DC
+ thumb_func_end MOD70_02231098
+
+ .section .rodata
+ ; 0x022310AC
+ .incbin "baserom.nds", 0x2C96EC, 0x3D0
diff --git a/arm9/modules/72/asm/module_72_dummy.s b/arm9/modules/72/asm/module_72_dummy.s
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/arm9/modules/72/asm/module_72_dummy.s
@@ -0,0 +1 @@
+
diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s
new file mode 100644
index 00000000..071770b3
--- /dev/null
+++ b/arm9/modules/73/asm/module_73.s
@@ -0,0 +1,9424 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD73_021D74E0
+MOD73_021D74E0: ; 0x021D74E0
+ push {r3, lr}
+ ldr r0, [r0, #0x18]
+ bl MOD73_021D88B0
+ bl FUN_0201C30C
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D74E0
+
+ thumb_func_start MOD73_021D74F0
+MOD73_021D74F0: ; 0x021D74F0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_0200628C
+ mov r2, #2
+ add r4, r0, #0
+ mov r0, #3
+ mov r1, #0x38
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ ldr r1, _021D757C ; =0x000015E8
+ add r0, r5, #0
+ mov r2, #0x38
+ bl FUN_02006268
+ ldr r2, _021D757C ; =0x000015E8
+ add r5, r0, #0
+ mov r1, #0
+ bl Call_FillMemWithValue
+ str r5, [r4, #0x18]
+ mov r1, #0x38
+ str r1, [r5]
+ mov r0, #0x10
+ bl FUN_0201C24C
+ ldrh r0, [r4, #6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bne _021D7534
+ mov r1, #1
+ b _021D7536
+_021D7534:
+ mov r1, #0
+_021D7536:
+ ldr r0, _021D7580 ; =0x00001428
+ str r1, [r5, r0]
+ ldr r1, [r4, #0x10]
+ add r0, r5, #0
+ ldr r1, [r1, #0x10]
+ bl MOD73_021D8DF4
+ ldr r0, [r4, #0x10]
+ ldr r0, [r0, #0x18]
+ bl FUN_02025084
+ str r0, [r5, #0x24]
+ ldr r0, [r4, #0x10]
+ ldr r0, [r0, #0x18]
+ bl FUN_02024FF4
+ str r0, [r5, #0x28]
+ mov r0, #0xae
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ ldr r0, _021D7584 ; =MOD73_021D74E0
+ add r1, r4, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ ldr r1, _021D7588 ; =0x0000049F
+ mov r0, #0xc
+ mov r2, #1
+ bl FUN_0200433C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_021D757C: .word 0x000015E8
+_021D7580: .word 0x00001428
+_021D7584: .word MOD73_021D74E0
+_021D7588: .word 0x0000049F
+ thumb_func_end MOD73_021D74F0
+
+ thumb_func_start MOD73_021D758C
+MOD73_021D758C: ; 0x021D758C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ bl FUN_0200628C
+ add r7, r0, #0
+ add r0, r4, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ ldr r1, _021D763C ; =0x021DBC9C
+ str r0, [sp]
+ lsl r0, r0, #3
+ add r1, r1, r0
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021D75BA
+ cmp r0, #1
+ beq _021D75FC
+ cmp r0, #2
+ beq _021D760C
+ b _021D7620
+_021D75BA:
+ ldr r3, [r1]
+ cmp r3, #0
+ beq _021D7620
+ ldr r6, [r1, #4]
+ add r2, r4, #0
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, #0x10
+ blx r3
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021D75DC
+ ldr r0, [r4, #0x18]
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x14]
+_021D75DC:
+ ldr r1, [r4, #0xc]
+ ldr r0, [sp]
+ cmp r0, r1
+ beq _021D7620
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldrh r0, [r7, #6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _021D7620
+ cmp r6, #0
+ beq _021D7620
+ str r6, [r4, #8]
+ mov r0, #1
+ str r0, [r5]
+ b _021D7620
+_021D75FC:
+ ldr r0, [r4, #8]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02031588
+ mov r0, #2
+ str r0, [r5]
+ b _021D7620
+_021D760C:
+ ldr r0, [r4, #8]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _021D7620
+ mov r0, #0
+ str r0, [r5]
+ str r0, [r4, #8]
+_021D7620:
+ add r0, r4, #0
+ bl MOD73_021D8858
+ ldr r0, [r4]
+ ldr r1, [r4, #0x20]
+ bl FUN_020335F0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _021D7638
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D7638:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D763C: .word 0x021DBC9C
+ thumb_func_end MOD73_021D758C
+
+ thumb_func_start MOD73_021D7640
+MOD73_021D7640: ; 0x021D7640
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl FUN_0200628C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_02006278
+ add r7, r0, #0
+ ldr r4, [r7]
+ bl MOD73_021D8E90
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201C29C
+ ldr r2, _021D7688 ; =0x000015E8
+ add r0, r7, #0
+ mov r1, #0
+ bl MI_CpuFill8
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0
+ str r0, [r6, #0x18]
+ add r0, r4, #0
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7688: .word 0x000015E8
+ thumb_func_end MOD73_021D7640
+
+ thumb_func_start MOD73_021D768C
+MOD73_021D768C: ; 0x021D768C
+ str r1, [r0, #0x18]
+ mov r1, #1
+ str r1, [r0, #0x14]
+ bx lr
+ thumb_func_end MOD73_021D768C
+
+ thumb_func_start MOD73_021D7694
+MOD73_021D7694: ; 0x021D7694
+ mov r1, #1
+ str r1, [r0, #4]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD73_021D7694
+
+ thumb_func_start MOD73_021D769C
+MOD73_021D769C: ; 0x021D769C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r2, #0
+ ldr r0, [r4]
+ add r5, r1, #0
+ cmp r0, #0
+ beq _021D76B8
+ cmp r0, #1
+ bne _021D76B0
+ b _021D77C6
+_021D76B0:
+ cmp r0, #2
+ bne _021D76B6
+ b _021D77E4
+_021D76B6:
+ b _021D77F4
+_021D76B8:
+ add r0, r5, #0
+ bl MOD73_021D852C
+ ldr r0, _021D77FC ; =0x00001424
+ ldr r0, [r5, r0]
+ bl MOD73_021D910C
+ cmp r0, #0
+ bne _021D76D4
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl MOD73_021DB884
+_021D76D4:
+ ldr r0, [r5, #0x24]
+ ldr r2, _021D7800 ; =0x00001574
+ str r0, [sp]
+ ldr r0, [r5]
+ ldr r3, _021D7804 ; =0x00001420
+ str r0, [sp, #4]
+ ldr r0, _021D7808 ; =0x0000054C
+ ldr r1, [r5, r3]
+ add r3, #0xc
+ add r0, r5, r0
+ add r2, r5, r2
+ add r3, r5, r3
+ bl MOD73_021D9A28
+ ldr r0, _021D780C ; =0x000005A4
+ add r0, r5, r0
+ bl MOD73_021D9E80
+ ldr r0, [r5, #0x24]
+ ldr r2, _021D7800 ; =0x00001574
+ str r0, [sp]
+ ldr r0, [r5]
+ ldr r3, _021D7804 ; =0x00001420
+ str r0, [sp, #4]
+ ldr r0, _021D7810 ; =0x0000063C
+ ldr r1, [r5, r3]
+ add r3, #0xc
+ add r0, r5, r0
+ add r2, r5, r2
+ add r3, r5, r3
+ bl MOD73_021DA210
+ mov r0, #0x16
+ lsl r0, r0, #6
+ add r0, r5, r0
+ bl MOD73_021D9D84
+ ldr r0, _021D7814 ; =0x0000058C
+ add r0, r5, r0
+ bl MOD73_021D9D84
+ ldr r0, _021D7818 ; =0x00000598
+ add r0, r5, r0
+ bl MOD73_021D9D84
+ ldr r3, _021D781C ; =0x0000142C
+ ldr r0, _021D7820 ; =0x0000061C
+ add r2, r3, #0
+ add r1, r5, r3
+ sub r2, #0xc
+ sub r3, #8
+ ldr r2, [r5, r2]
+ ldr r3, [r5, r3]
+ add r0, r5, r0
+ bl MOD73_021DA0E0
+ mov r0, #0x67
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl MOD73_021DA81C
+ ldr r0, _021D7824 ; =0x00000A84
+ add r0, r5, r0
+ bl MOD73_021DAD78
+ ldr r1, _021D7804 ; =0x00001420
+ ldr r0, _021D7828 ; =0x00000B04
+ ldr r1, [r5, r1]
+ add r0, r5, r0
+ bl MOD73_021DAF70
+ mov r0, #0x2d
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl MOD73_021DB2FC
+ add r0, r5, #0
+ bl MOD73_021D8630
+ bl FUN_02033E74
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ ldr r0, _021D7804 ; =0x00001420
+ ldr r0, [r5, r0]
+ cmp r0, #1
+ ble _021D778E
+ ldr r0, _021D7808 ; =0x0000054C
+ add r0, r5, r0
+ bl MOD73_021D9AC8
+_021D778E:
+ ldr r0, _021D780C ; =0x000005A4
+ mov r1, #3
+ add r0, r5, r0
+ mov r2, #1
+ bl MOD73_021D9FC0
+ ldr r0, _021D780C ; =0x000005A4
+ mov r1, #4
+ add r0, r5, r0
+ mov r2, #1
+ bl MOD73_021D9FC0
+ ldr r0, _021D780C ; =0x000005A4
+ mov r1, #5
+ add r0, r5, r0
+ mov r2, #1
+ bl MOD73_021D9FC0
+ ldr r0, _021D780C ; =0x000005A4
+ mov r1, #6
+ add r0, r5, r0
+ mov r2, #1
+ bl MOD73_021D9FC0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D77F4
+_021D77C6:
+ mov r0, #6
+ mov r1, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r5]
+ ldr r3, _021D782C ; =0x0000FFFF
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D77F4
+_021D77E4:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D77F4
+ ldr r0, [r5, #0xc]
+ add sp, #0xc
+ add r0, r0, #1
+ pop {r4, r5, pc}
+_021D77F4:
+ ldr r0, [r5, #0xc]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021D77FC: .word 0x00001424
+_021D7800: .word 0x00001574
+_021D7804: .word 0x00001420
+_021D7808: .word 0x0000054C
+_021D780C: .word 0x000005A4
+_021D7810: .word 0x0000063C
+_021D7814: .word 0x0000058C
+_021D7818: .word 0x00000598
+_021D781C: .word 0x0000142C
+_021D7820: .word 0x0000061C
+_021D7824: .word 0x00000A84
+_021D7828: .word 0x00000B04
+_021D782C: .word 0x0000FFFF
+ thumb_func_end MOD73_021D769C
+
+ thumb_func_start MOD73_021D7830
+MOD73_021D7830: ; 0x021D7830
+ push {r4, lr}
+ ldr r0, _021D7854 ; =0x00001424
+ add r4, r1, #0
+ ldr r0, [r4, r0]
+ bl MOD73_021D910C
+ cmp r0, #0
+ bne _021D784E
+ ldr r3, _021D7854 ; =0x00001424
+ mov r1, #0
+ ldr r3, [r4, r3]
+ mov r0, #0x16
+ add r2, r1, #0
+ bl MOD73_021D90D0
+_021D784E:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D7854: .word 0x00001424
+ thumb_func_end MOD73_021D7830
+
+ thumb_func_start MOD73_021D7858
+MOD73_021D7858: ; 0x021D7858
+ ldr r0, [r1, #0xc]
+ bx lr
+ thumb_func_end MOD73_021D7858
+
+ thumb_func_start MOD73_021D785C
+MOD73_021D785C: ; 0x021D785C
+ push {r3, r4, r5, lr}
+ add r4, r2, #0
+ add r5, r1, #0
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _021D786E
+ cmp r1, #1
+ beq _021D7884
+ b _021D78AA
+_021D786E:
+ ldr r1, _021D78B0 ; =0x00001420
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ ldr r1, [r5, r1]
+ add r0, r5, r0
+ bl MOD73_021D96B0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D78AA
+_021D7884:
+ ldr r1, [r0, #8]
+ ldr r0, _021D78B4 ; =0x0000142C
+ str r1, [r5, r0]
+ bl MOD73_021D9088
+ ldr r3, _021D78B4 ; =0x0000142C
+ add r2, r0, #0
+ add r1, r5, r3
+ sub r3, #8
+ ldr r3, [r5, r3]
+ mov r0, #0x19
+ bl MOD73_021D90D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ ldr r0, [r5, #0xc]
+ add r0, r0, #1
+ pop {r3, r4, r5, pc}
+_021D78AA:
+ ldr r0, [r5, #0xc]
+ pop {r3, r4, r5, pc}
+ nop
+_021D78B0: .word 0x00001420
+_021D78B4: .word 0x0000142C
+ thumb_func_end MOD73_021D785C
+
+ thumb_func_start MOD73_021D78B8
+MOD73_021D78B8: ; 0x021D78B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r2, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ cmp r0, #5
+ bhi _021D79C4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D78D0: ; jump table
+ .short _021D78DC - _021D78D0 - 2 ; case 0
+ .short _021D78F0 - _021D78D0 - 2 ; case 1
+ .short _021D7902 - _021D78D0 - 2 ; case 2
+ .short _021D7924 - _021D78D0 - 2 ; case 3
+ .short _021D7940 - _021D78D0 - 2 ; case 4
+ .short _021D7966 - _021D78D0 - 2 ; case 5
+_021D78DC:
+ ldr r0, _021D79C8 ; =0x00001418
+ ldr r1, [r4]
+ ldr r2, [r4, #0x20]
+ add r0, r4, r0
+ bl MOD73_021DB26C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D79C4
+_021D78F0:
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD73_021D97F0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D79C4
+_021D7902:
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD73_021D98B8
+ cmp r0, #1
+ bne _021D79C4
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r0, _021D79CC ; =0x0000054C
+ add r0, r4, r0
+ bl MOD73_021D9AB4
+ mov r0, #0x18
+ str r0, [r4, #0x1c]
+ b _021D79C4
+_021D7924:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ ble _021D7930
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ b _021D79C4
+_021D7930:
+ ldr r0, _021D79D0 ; =0x00000598
+ add r0, r4, r0
+ bl MOD73_021D9E3C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D79C4
+_021D7940:
+ ldr r0, _021D79D0 ; =0x00000598
+ add r0, r4, r0
+ bl MOD73_021D9E6C
+ cmp r0, #0
+ beq _021D79C4
+ ldr r0, _021D79CC ; =0x0000054C
+ add r0, r4, r0
+ bl MOD73_021D9AF0
+ mov r0, #0x16
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl MOD73_021D9E24
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D79C4
+_021D7966:
+ mov r0, #0x16
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl MOD73_021D9E6C
+ add r6, r0, #0
+ ldr r0, _021D79D4 ; =0x00000588
+ ldr r0, [r4, r0]
+ bl FUN_0202022C
+ add r7, r0, #0
+ add r0, r7, #1
+ mov r1, #3
+ bl _s32_div_f
+ add r5, r0, #0
+ mov r0, #0xd6
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, r5
+ beq _021D79A8
+ cmp r7, #0xa
+ bge _021D799C
+ ldr r0, _021D79D8 ; =0x000006BD
+ bl FUN_020054C8
+ b _021D79A2
+_021D799C:
+ ldr r0, _021D79DC ; =0x000006BE
+ bl FUN_020054C8
+_021D79A2:
+ mov r0, #0xd6
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+_021D79A8:
+ cmp r6, #0
+ beq _021D79C4
+ ldr r0, _021D79E0 ; =0x0000061C
+ mov r1, #1
+ add r0, r4, r0
+ bl MOD73_021DA1D8
+ ldr r0, _021D79E4 ; =0x000005A4
+ add r0, r4, r0
+ bl MOD73_021DA03C
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D79C4:
+ ldr r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D79C8: .word 0x00001418
+_021D79CC: .word 0x0000054C
+_021D79D0: .word 0x00000598
+_021D79D4: .word 0x00000588
+_021D79D8: .word 0x000006BD
+_021D79DC: .word 0x000006BE
+_021D79E0: .word 0x0000061C
+_021D79E4: .word 0x000005A4
+ thumb_func_end MOD73_021D78B8
+
+ thumb_func_start MOD73_021D79E8
+MOD73_021D79E8: ; 0x021D79E8
+ push {r4, lr}
+ mov r0, #0x2d
+ add r4, r1, #0
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD73_021DB318
+ ldr r0, _021D7A98 ; =0x00001430
+ mov r1, #0x2d
+ lsl r1, r1, #4
+ add r0, r4, r0
+ add r1, r4, r1
+ bl MOD73_021DB368
+ ldr r0, _021D7A9C ; =0x00001424
+ ldr r0, [r4, r0]
+ bl MOD73_021D910C
+ cmp r0, #0
+ bne _021D7A5C
+ ldr r2, _021D7AA0 ; =0x0000142C
+ mov r0, #0xba
+ add r1, r4, r2
+ sub r2, #0xc
+ lsl r0, r0, #2
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ bl MOD73_021DB8AC
+ cmp r0, #1
+ bne _021D7A40
+ ldr r3, _021D7A9C ; =0x00001424
+ mov r1, #0
+ ldr r3, [r4, r3]
+ mov r0, #0x17
+ add r2, r1, #0
+ bl MOD73_021D90D0
+ cmp r0, #0
+ bne _021D7A3C
+ bl ErrorHandling
+_021D7A3C:
+ ldr r0, [r4, #0xc]
+ pop {r4, pc}
+_021D7A40:
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD73_021DB9F0
+ ldr r2, _021D7AA0 ; =0x0000142C
+ mov r0, #0xba
+ add r1, r4, r2
+ sub r2, #0xc
+ lsl r0, r0, #2
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ bl MOD73_021DB924
+_021D7A5C:
+ bl MOD73_021D908C
+ ldr r3, _021D7A98 ; =0x00001430
+ add r2, r0, #0
+ add r1, r4, r3
+ sub r3, #0xc
+ ldr r3, [r4, r3]
+ mov r0, #0x1a
+ bl MOD73_021D90D0
+ add r0, r4, #0
+ bl MOD73_021D810C
+ mov r0, #0x67
+ ldr r1, _021D7AA0 ; =0x0000142C
+ lsl r0, r0, #4
+ add r0, r4, r0
+ add r1, r4, r1
+ bl MOD73_021DA884
+ ldr r0, _021D7AA4 ; =0x00000A84
+ add r0, r4, r0
+ bl MOD73_021DAE54
+ ldr r0, _021D7AA8 ; =0x00000B04
+ add r0, r4, r0
+ bl MOD73_021DB008
+ ldr r0, [r4, #0xc]
+ pop {r4, pc}
+ .align 2, 0
+_021D7A98: .word 0x00001430
+_021D7A9C: .word 0x00001424
+_021D7AA0: .word 0x0000142C
+_021D7AA4: .word 0x00000A84
+_021D7AA8: .word 0x00000B04
+ thumb_func_end MOD73_021D79E8
+
+ thumb_func_start MOD73_021D7AAC
+MOD73_021D7AAC: ; 0x021D7AAC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ add r4, r1, #0
+ mov r0, #0x67
+ ldr r1, _021D7C68 ; =0x0000142C
+ lsl r0, r0, #4
+ add r5, r2, #0
+ add r0, r4, r0
+ add r1, r4, r1
+ bl MOD73_021DA884
+ ldr r0, [r5]
+ cmp r0, #4
+ bls _021D7ACC
+ b _021D7C5C
+_021D7ACC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7AD8: ; jump table
+ .short _021D7AE2 - _021D7AD8 - 2 ; case 0
+ .short _021D7B6C - _021D7AD8 - 2 ; case 1
+ .short _021D7B98 - _021D7AD8 - 2 ; case 2
+ .short _021D7BA8 - _021D7AD8 - 2 ; case 3
+ .short _021D7C1A - _021D7AD8 - 2 ; case 4
+_021D7AE2:
+ ldr r0, _021D7C6C ; =0x0000063C
+ add r0, r4, r0
+ bl MOD73_021DA4AC
+ ldr r0, _021D7C70 ; =0x00000A84
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D7C70 ; =0x00000A84
+ mov r1, #1
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D7C70 ; =0x00000A84
+ mov r1, #2
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D7C70 ; =0x00000A84
+ mov r1, #3
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D7C74 ; =0x0000058C
+ add r0, r4, r0
+ bl MOD73_021D9E24
+ ldr r0, _021D7C78 ; =0x000006BA
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, _021D7C7C ; =0x000006BB
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, _021D7C80 ; =0x000006BF
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, _021D7C84 ; =0x000006C1
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, _021D7C88 ; =0x000006C2
+ bl FUN_020054C8
+ ldr r0, _021D7C8C ; =0x000005A4
+ mov r1, #0
+ add r0, r4, r0
+ add r2, r1, #0
+ bl MOD73_021D9FC0
+ ldr r0, _021D7C8C ; =0x000005A4
+ mov r1, #1
+ add r0, r4, r0
+ mov r2, #0
+ bl MOD73_021D9FC0
+ ldr r0, _021D7C8C ; =0x000005A4
+ mov r1, #2
+ add r0, r4, r0
+ mov r2, #0
+ bl MOD73_021D9FC0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7C60
+_021D7B6C:
+ ldr r0, _021D7C74 ; =0x0000058C
+ add r0, r4, r0
+ bl MOD73_021D9E6C
+ cmp r0, #0
+ beq _021D7C60
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ mov r1, #0
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r2, r1, #0
+ str r0, [sp, #8]
+ mov r0, #3
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7C60
+_021D7B98:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7C60
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7C60
+_021D7BA8:
+ ldr r0, [r6, #0x10]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ ldr r1, _021D7C90 ; =0x00001428
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ bne _021D7BC0
+ mov r1, #0xc
+ bl FUN_0202A170
+ b _021D7BC6
+_021D7BC0:
+ mov r1, #0x12
+ bl FUN_0202A170
+_021D7BC6:
+ ldr r0, _021D7C94 ; =0x00001424
+ ldr r0, [r4, r0]
+ bl MOD73_021D910C
+ cmp r0, #0
+ bne _021D7C12
+ ldr r0, [r4]
+ bl FUN_02027E5C
+ add r6, r0, #0
+ ldr r0, [r4]
+ ldr r3, _021D7C68 ; =0x0000142C
+ str r0, [sp]
+ mov r0, #0xba
+ add r2, r4, r3
+ sub r3, #0xc
+ lsl r0, r0, #2
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r6, #0
+ bl MOD73_021DBA24
+ bl FUN_02027E30
+ ldr r3, _021D7C94 ; =0x00001424
+ add r2, r0, #0
+ ldr r3, [r4, r3]
+ mov r0, #0x1c
+ add r1, r6, #0
+ bl MOD73_021D90D0
+ cmp r0, #0
+ bne _021D7C0C
+ bl ErrorHandling
+_021D7C0C:
+ add r0, r6, #0
+ bl FUN_02016A18
+_021D7C12:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7C60
+_021D7C1A:
+ ldr r0, _021D7C94 ; =0x00001424
+ ldr r0, [r4, r0]
+ bl MOD73_021D910C
+ cmp r0, #0
+ bne _021D7C54
+ ldr r2, _021D7C68 ; =0x0000142C
+ mov r0, #0xba
+ add r1, r4, r2
+ sub r2, #0xc
+ lsl r0, r0, #2
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ bl MOD73_021DBBFC
+ bl MOD73_021D9090
+ ldr r3, _021D7C98 ; =0x0000144C
+ add r2, r0, #0
+ add r1, r4, r3
+ sub r3, #0x28
+ ldr r3, [r4, r3]
+ mov r0, #0x1b
+ bl MOD73_021D90D0
+ cmp r0, #0
+ bne _021D7C54
+ bl ErrorHandling
+_021D7C54:
+ ldr r0, [r4, #0xc]
+ add sp, #0xc
+ add r0, r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D7C5C:
+ bl ErrorHandling
+_021D7C60:
+ ldr r0, [r4, #0xc]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D7C68: .word 0x0000142C
+_021D7C6C: .word 0x0000063C
+_021D7C70: .word 0x00000A84
+_021D7C74: .word 0x0000058C
+_021D7C78: .word 0x000006BA
+_021D7C7C: .word 0x000006BB
+_021D7C80: .word 0x000006BF
+_021D7C84: .word 0x000006C1
+_021D7C88: .word 0x000006C2
+_021D7C8C: .word 0x000005A4
+_021D7C90: .word 0x00001428
+_021D7C94: .word 0x00001424
+_021D7C98: .word 0x0000144C
+ thumb_func_end MOD73_021D7AAC
+
+ thumb_func_start MOD73_021D7C9C
+MOD73_021D7C9C: ; 0x021D7C9C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r2, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ cmp r0, #0xb
+ bls _021D7CAE
+ b _021D7F3A
+_021D7CAE:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7CBA: ; jump table
+ .short _021D7CD2 - _021D7CBA - 2 ; case 0
+ .short _021D7D2E - _021D7CBA - 2 ; case 1
+ .short _021D7D42 - _021D7CBA - 2 ; case 2
+ .short _021D7D66 - _021D7CBA - 2 ; case 3
+ .short _021D7D94 - _021D7CBA - 2 ; case 4
+ .short _021D7DC0 - _021D7CBA - 2 ; case 5
+ .short _021D7DF4 - _021D7CBA - 2 ; case 6
+ .short _021D7E1C - _021D7CBA - 2 ; case 7
+ .short _021D7E36 - _021D7CBA - 2 ; case 8
+ .short _021D7EA8 - _021D7CBA - 2 ; case 9
+ .short _021D7ED6 - _021D7CBA - 2 ; case 10
+ .short _021D7F0C - _021D7CBA - 2 ; case 11
+_021D7CD2:
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD73_021DA730
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0xae
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, [r4]
+ ldr r3, _021D7F48 ; =0x00001410
+ str r0, [sp]
+ add r0, r4, r3
+ add r3, #0x80
+ ldrb r3, [r4, r3]
+ mov r1, #0x80
+ mov r2, #0x90
+ bl MOD73_021DB20C
+ mov r0, #6
+ mov r2, #0
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r0, [r4]
+ add r3, r2, #0
+ str r0, [sp, #8]
+ mov r0, #3
+ bl FUN_0200E1D0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7F3E
+_021D7D2E:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7E12
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ mov r0, #0x1e
+ str r0, [r4, #0x1c]
+ b _021D7F3E
+_021D7D42:
+ ldr r0, [r4, #0x1c]
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ bpl _021D7E12
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #1
+ add r0, r4, r0
+ bl MOD73_021DA730
+ ldr r0, _021D7F4C ; =0x000006C3
+ bl FUN_020054C8
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ mov r0, #0x1e
+ str r0, [r4, #0x1c]
+ b _021D7F3E
+_021D7D66:
+ ldr r0, [r4, #0x1c]
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ bpl _021D7E12
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #2
+ add r0, r4, r0
+ bl MOD73_021DA730
+ ldr r0, _021D7F48 ; =0x00001410
+ add r0, r4, r0
+ bl MOD73_021DB260
+ ldr r0, _021D7F4C ; =0x000006C3
+ bl FUN_020054C8
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ mov r0, #0x96
+ lsl r0, r0, #2
+ str r0, [r4, #0x1c]
+ b _021D7F3E
+_021D7D94:
+ ldr r0, [r4, #0x1c]
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ bmi _021D7DAE
+ ldr r0, _021D7F50 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ bne _021D7DAE
+ ldr r0, _021D7F54 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D7DB6
+_021D7DAE:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7F3E
+_021D7DB6:
+ ldr r0, _021D7F48 ; =0x00001410
+ add r0, r4, r0
+ bl MOD73_021DB260
+ b _021D7F3E
+_021D7DC0:
+ ldr r0, _021D7F48 ; =0x00001410
+ add r0, r4, r0
+ bl MOD73_021DB24C
+ ldr r0, _021D7F44 ; =0x0000063C
+ add r0, r4, r0
+ bl MOD73_021DA754
+ ldr r1, _021D7F58 ; =0x0000152C
+ ldr r2, _021D7F5C ; =0x00001420
+ ldr r1, [r4, r1]
+ ldr r2, [r4, r2]
+ add r0, r6, #0
+ bl MOD73_021D8590
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD73_021DA770
+ mov r0, #0x96
+ str r0, [r4, #0x1c]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7F3E
+_021D7DF4:
+ ldr r0, [r4, #0x1c]
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ ldr r0, _021D7F50 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ bne _021D7E14
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ blt _021D7E14
+ ldr r0, _021D7F54 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021D7E14
+_021D7E12:
+ b _021D7F3E
+_021D7E14:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7F3E
+_021D7E1C:
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #1
+ add r0, r4, r0
+ bl MOD73_021DA770
+ ldr r0, _021D7F60 ; =0x00001418
+ add r0, r4, r0
+ bl MOD73_021DB28C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7F3E
+_021D7E36:
+ ldr r0, _021D7F60 ; =0x00001418
+ add r0, r4, r0
+ bl MOD73_021DB2B8
+ sub r1, r0, #1
+ cmp r1, #1
+ bhi _021D7F3E
+ cmp r0, #1
+ bne _021D7E90
+ ldr r0, [r6, #0x10]
+ ldr r0, [r0, #8]
+ bl FUN_020281B8
+ cmp r0, #0x64
+ blo _021D7E68
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #2
+ add r0, r4, r0
+ bl MOD73_021DA770
+ mov r0, #0xa
+ str r0, [r5]
+ mov r0, #0x96
+ str r0, [r4, #0x1c]
+ b _021D7F3E
+_021D7E68:
+ ldr r0, [r6, #0x10]
+ mov r1, #4
+ ldr r0, [r0, #0x14]
+ bl FUN_0206EE64
+ cmp r0, #0
+ bne _021D7E8A
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #5
+ add r0, r4, r0
+ bl MOD73_021DA770
+ mov r0, #0xa
+ str r0, [r5]
+ mov r0, #0x96
+ str r0, [r4, #0x1c]
+ b _021D7F3E
+_021D7E8A:
+ mov r0, #9
+ str r0, [r5]
+ b _021D7E94
+_021D7E90:
+ mov r0, #0xb
+ str r0, [r5]
+_021D7E94:
+ ldr r0, _021D7F5C ; =0x00001420
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ ble _021D7F3E
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #6
+ add r0, r4, r0
+ bl MOD73_021DA770
+ b _021D7F3E
+_021D7EA8:
+ mov r0, #0x35
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ bl MOD73_021D9080
+ ldr r3, _021D7F64 ; =0x00001424
+ mov r1, #0x35
+ lsl r1, r1, #4
+ add r2, r0, #0
+ ldr r3, [r4, r3]
+ mov r0, #0x1e
+ add r1, r4, r1
+ bl MOD73_021D90D0
+ cmp r0, #0
+ bne _021D7ECE
+ bl ErrorHandling
+_021D7ECE:
+ ldr r0, [r4, #0xc]
+ add sp, #0xc
+ add r0, r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D7ED6:
+ ldr r0, [r4, #0x1c]
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ ldr r0, _021D7F50 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ bne _021D7EF4
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ blt _021D7EF4
+ ldr r0, _021D7F54 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D7F3E
+_021D7EF4:
+ ldr r0, _021D7F5C ; =0x00001420
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ ble _021D7F06
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #6
+ add r0, r4, r0
+ bl MOD73_021DA770
+_021D7F06:
+ mov r0, #0xb
+ str r0, [r5]
+ b _021D7F3E
+_021D7F0C:
+ mov r0, #0x35
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ bl MOD73_021D9080
+ ldr r3, _021D7F64 ; =0x00001424
+ mov r1, #0x35
+ lsl r1, r1, #4
+ add r2, r0, #0
+ ldr r3, [r4, r3]
+ mov r0, #0x1e
+ add r1, r4, r1
+ bl MOD73_021D90D0
+ cmp r0, #0
+ bne _021D7F32
+ bl ErrorHandling
+_021D7F32:
+ ldr r0, [r4, #0xc]
+ add sp, #0xc
+ add r0, r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D7F3A:
+ bl ErrorHandling
+_021D7F3E:
+ ldr r0, [r4, #0xc]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D7F44: .word 0x0000063C
+_021D7F48: .word 0x00001410
+_021D7F4C: .word 0x000006C3
+_021D7F50: .word 0x021C48F8
+_021D7F54: .word 0x021C48B8
+_021D7F58: .word 0x0000152C
+_021D7F5C: .word 0x00001420
+_021D7F60: .word 0x00001418
+_021D7F64: .word 0x00001424
+ thumb_func_end MOD73_021D7C9C
+
+ thumb_func_start MOD73_021D7F68
+MOD73_021D7F68: ; 0x021D7F68
+ ldr r3, _021D7F70 ; =MOD73_021D8810
+ add r0, r1, #0
+ add r1, r2, #0
+ bx r3
+ .align 2, 0
+_021D7F70: .word MOD73_021D8810
+ thumb_func_end MOD73_021D7F68
+
+ thumb_func_start MOD73_021D7F74
+MOD73_021D7F74: ; 0x021D7F74
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r2, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ cmp r0, #4
+ bhi _021D8056
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7F90: ; jump table
+ .short _021D7F9A - _021D7F90 - 2 ; case 0
+ .short _021D8000 - _021D7F90 - 2 ; case 1
+ .short _021D8010 - _021D7F90 - 2 ; case 2
+ .short _021D8030 - _021D7F90 - 2 ; case 3
+ .short _021D8040 - _021D7F90 - 2 ; case 4
+_021D7F9A:
+ ldr r0, _021D805C ; =0x00001571
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ bne _021D7FB2
+ ldr r0, _021D8060 ; =0x0000063C
+ mov r1, #3
+ add r0, r4, r0
+ bl MOD73_021DA770
+ mov r0, #1
+ str r0, [r6, #0x20]
+ b _021D7FF4
+_021D7FB2:
+ mov r0, #0
+ str r0, [r6, #0x20]
+ mov r0, #0x35
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _021D7FCC
+ ldr r0, _021D8060 ; =0x0000063C
+ mov r1, #4
+ add r0, r4, r0
+ bl MOD73_021DA770
+ b _021D7FDA
+_021D7FCC:
+ ldr r0, _021D8064 ; =0x00001420
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bgt _021D7FDA
+ mov r0, #2
+ str r0, [r5]
+ b _021D8056
+_021D7FDA:
+ ldr r0, _021D8068 ; =0x00001428
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _021D7FF4
+ ldr r0, [r4]
+ bl FUN_02029520
+ add r1, r0, #0
+ ldr r0, [r6, #0x10]
+ mov r2, #4
+ ldr r0, [r0, #0x1c]
+ bl FUN_02028AD4
+_021D7FF4:
+ mov r0, #0x3c
+ str r0, [r4, #0x1c]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D8056
+_021D8000:
+ ldr r0, [r4, #0x1c]
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ bpl _021D8056
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D8056
+_021D8010:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D8056
+_021D8030:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D8056
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D8056
+_021D8040:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD73_021D8840
+ add r0, r4, #0
+ bl MOD73_021D875C
+ ldr r0, [r4, #0xc]
+ add sp, #0xc
+ add r0, r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D8056:
+ ldr r0, [r4, #0xc]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D805C: .word 0x00001571
+_021D8060: .word 0x0000063C
+_021D8064: .word 0x00001420
+_021D8068: .word 0x00001428
+ thumb_func_end MOD73_021D7F74
+
+ thumb_func_start MOD73_021D806C
+MOD73_021D806C: ; 0x021D806C
+ push {r4, lr}
+ mov r0, #0xd7
+ add r4, r1, #0
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD73_021D96C8
+ ldr r0, _021D80E8 ; =0x0000054C
+ add r0, r4, r0
+ bl MOD73_021D9A4C
+ mov r0, #0x16
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl MOD73_021D9DA0
+ ldr r0, _021D80EC ; =0x0000058C
+ add r0, r4, r0
+ bl MOD73_021D9DA0
+ ldr r0, _021D80F0 ; =0x00000598
+ add r0, r4, r0
+ bl MOD73_021D9DA0
+ ldr r0, _021D80F4 ; =0x000005A4
+ add r0, r4, r0
+ bl MOD73_021D9E8C
+ ldr r0, _021D80F8 ; =0x0000061C
+ add r0, r4, r0
+ bl MOD73_021DA0FC
+ ldr r0, _021D80FC ; =0x0000063C
+ add r0, r4, r0
+ bl MOD73_021DA234
+ mov r0, #0x67
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD73_021DA82C
+ ldr r0, _021D8100 ; =0x00000A84
+ add r0, r4, r0
+ bl MOD73_021DAD84
+ ldr r0, _021D8104 ; =0x00000B04
+ add r0, r4, r0
+ bl MOD73_021DAF88
+ ldr r0, _021D8108 ; =0x00001418
+ add r0, r4, r0
+ bl MOD73_021DB280
+ add r0, r4, #0
+ bl MOD73_021D856C
+ add r0, r4, #0
+ bl MOD73_021D7694
+ ldr r0, [r4, #0xc]
+ pop {r4, pc}
+ nop
+_021D80E8: .word 0x0000054C
+_021D80EC: .word 0x0000058C
+_021D80F0: .word 0x00000598
+_021D80F4: .word 0x000005A4
+_021D80F8: .word 0x0000061C
+_021D80FC: .word 0x0000063C
+_021D8100: .word 0x00000A84
+_021D8104: .word 0x00000B04
+_021D8108: .word 0x00001418
+ thumb_func_end MOD73_021D806C
+
+ thumb_func_start MOD73_021D810C
+MOD73_021D810C: ; 0x021D810C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D8170 ; =0x000014C4
+ add r4, r5, r0
+ ldr r0, _021D8174 ; =0x000005A4
+ ldrh r1, [r4, #8]
+ add r0, r5, r0
+ bl MOD73_021D9FE0
+ add r0, r5, #0
+ bl MOD73_021D85E4
+ ldrh r0, [r4, #0xa]
+ ldrb r1, [r4, #0xd]
+ bl MOD73_021DB644
+ add r1, r0, #0
+ ldr r0, _021D8174 ; =0x000005A4
+ add r0, r5, r0
+ bl MOD73_021D9FFC
+ ldr r0, _021D8174 ; =0x000005A4
+ ldrb r1, [r4, #0xd]
+ add r0, r5, r0
+ bl MOD73_021DA058
+ ldr r0, _021D8178 ; =0x0000061C
+ add r0, r5, r0
+ bl MOD73_021DA194
+ add r0, r5, #0
+ bl MOD73_021D817C
+ add r0, r5, #0
+ bl MOD73_021D8458
+ add r0, r5, #0
+ bl MOD73_021D8254
+ add r0, r5, #0
+ bl MOD73_021D82FC
+ add r0, r5, #0
+ bl MOD73_021D83D0
+ add r0, r5, #0
+ bl MOD73_021D84FC
+ pop {r3, r4, r5, pc}
+ nop
+_021D8170: .word 0x000014C4
+_021D8174: .word 0x000005A4
+_021D8178: .word 0x0000061C
+ thumb_func_end MOD73_021D810C
+
+ thumb_func_start MOD73_021D817C
+MOD73_021D817C: ; 0x021D817C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _021D8230 ; =0x000014C4
+ mov r2, #7
+ add r4, r5, r0
+ ldrb r3, [r4, #0xd]
+ ldr r0, _021D8234 ; =0x000005A4
+ mov r1, #5
+ add r6, r3, #0
+ mul r6, r2
+ ldr r2, _021D8238 ; =0x021DBC84
+ add r0, r5, r0
+ ldrb r2, [r2, r6]
+ bl MOD73_021D9FC0
+ ldrb r3, [r4, #0xd]
+ ldr r0, _021D8234 ; =0x000005A4
+ mov r2, #7
+ add r6, r3, #0
+ mul r6, r2
+ ldr r2, _021D823C ; =0x021DBC85
+ add r0, r5, r0
+ ldrb r2, [r2, r6]
+ mov r1, #6
+ bl MOD73_021D9FC0
+ ldrb r2, [r4, #0xd]
+ ldr r0, _021D8234 ; =0x000005A4
+ mov r1, #7
+ add r3, r2, #0
+ ldr r2, _021D8240 ; =0x021DBC86
+ mul r3, r1
+ ldrb r2, [r2, r3]
+ add r0, r5, r0
+ bl MOD73_021D9FC0
+ ldrb r3, [r4, #0xd]
+ ldr r0, _021D8234 ; =0x000005A4
+ mov r2, #7
+ add r6, r3, #0
+ mul r6, r2
+ ldr r2, _021D8244 ; =0x021DBC87
+ add r0, r5, r0
+ ldrb r2, [r2, r6]
+ mov r1, #0
+ bl MOD73_021D9FC0
+ ldrb r3, [r4, #0xd]
+ ldr r0, _021D8234 ; =0x000005A4
+ mov r2, #7
+ add r6, r3, #0
+ mul r6, r2
+ ldr r2, _021D8248 ; =0x021DBC88
+ add r0, r5, r0
+ ldrb r2, [r2, r6]
+ mov r1, #1
+ bl MOD73_021D9FC0
+ ldrb r3, [r4, #0xd]
+ ldr r0, _021D8234 ; =0x000005A4
+ mov r2, #7
+ add r6, r3, #0
+ mul r6, r2
+ ldr r2, _021D824C ; =0x021DBC89
+ add r0, r5, r0
+ ldrb r2, [r2, r6]
+ mov r1, #2
+ bl MOD73_021D9FC0
+ ldrb r1, [r4, #0xd]
+ mov r0, #7
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _021D8250 ; =0x021DBC8A
+ ldrb r1, [r0, r2]
+ cmp r1, #8
+ beq _021D822E
+ ldrb r2, [r4, #0x10]
+ ldr r0, _021D8234 ; =0x000005A4
+ cmp r2, #0
+ beq _021D8226
+ add r0, r5, r0
+ bl MOD73_021DA01C
+ pop {r4, r5, r6, pc}
+_021D8226:
+ add r0, r5, r0
+ mov r2, #0
+ bl MOD73_021D9FC0
+_021D822E:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8230: .word 0x000014C4
+_021D8234: .word 0x000005A4
+_021D8238: .word 0x021DBC84
+_021D823C: .word 0x021DBC85
+_021D8240: .word 0x021DBC86
+_021D8244: .word 0x021DBC87
+_021D8248: .word 0x021DBC88
+_021D824C: .word 0x021DBC89
+_021D8250: .word 0x021DBC8A
+ thumb_func_end MOD73_021D817C
+
+ thumb_func_start MOD73_021D8254
+MOD73_021D8254: ; 0x021D8254
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D82F0 ; =0x000014C4
+ add r1, r4, r0
+ ldrb r2, [r1, #0x11]
+ ldrb r0, [r1, #0xc]
+ cmp r2, r0
+ beq _021D8274
+ ldrh r0, [r1, #0xa]
+ cmp r0, #0
+ beq _021D8274
+ mov r0, #0xb
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _021D8292
+_021D8274:
+ ldr r0, _021D82F4 ; =0x00000A84
+ mov r1, #1
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D82F4 ; =0x00000A84
+ mov r1, #3
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ mov r0, #0xb1
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ pop {r4, pc}
+_021D8292:
+ cmp r2, #0
+ bne _021D82C2
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ beq _021D82EC
+ ldr r0, _021D82F4 ; =0x00000A84
+ mov r1, #1
+ add r0, r4, r0
+ bl MOD73_021DAE7C
+ mov r0, #0xb1
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, _021D82F4 ; =0x00000A84
+ mov r1, #3
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D82F8 ; =0x000006C1
+ bl FUN_020054C8
+ pop {r4, pc}
+_021D82C2:
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #2
+ beq _021D82EC
+ ldr r0, _021D82F4 ; =0x00000A84
+ mov r1, #3
+ add r0, r4, r0
+ bl MOD73_021DAE7C
+ mov r0, #0xb1
+ mov r1, #2
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, _021D82F4 ; =0x00000A84
+ mov r1, #1
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D82F8 ; =0x000006C1
+ bl FUN_020054C8
+_021D82EC:
+ pop {r4, pc}
+ nop
+_021D82F0: .word 0x000014C4
+_021D82F4: .word 0x00000A84
+_021D82F8: .word 0x000006C1
+ thumb_func_end MOD73_021D8254
+
+ thumb_func_start MOD73_021D82FC
+MOD73_021D82FC: ; 0x021D82FC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D83C0 ; =0x000014C4
+ mov r1, #0xb1
+ lsl r1, r1, #2
+ add r4, r5, r0
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ bne _021D8316
+ sub r0, r1, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D832C
+_021D8316:
+ ldr r0, _021D83C4 ; =0x0000063C
+ add r0, r5, r0
+ bl MOD73_021DA4AC
+ mov r0, #0xb3
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ sub r0, r0, #4
+ str r1, [r5, r0]
+ pop {r3, r4, r5, pc}
+_021D832C:
+ add r1, #8
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ bne _021D8360
+ ldrb r0, [r4, #0x13]
+ cmp r0, #0
+ beq _021D8374
+ ldr r0, _021D83C4 ; =0x0000063C
+ add r0, r5, r0
+ bl MOD73_021DA4AC
+ ldr r0, _021D83C4 ; =0x0000063C
+ ldrb r2, [r4, #0xd]
+ ldr r1, _021D83C8 ; =0x021DBC58
+ add r0, r5, r0
+ ldrb r1, [r1, r2]
+ bl MOD73_021DA434
+ mov r0, #0xb3
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0
+ sub r0, r0, #4
+ str r1, [r5, r0]
+ b _021D8374
+_021D8360:
+ ldr r0, _021D83C4 ; =0x0000063C
+ add r0, r5, r0
+ bl MOD73_021DA49C
+ cmp r0, #0
+ beq _021D8374
+ mov r0, #0xb3
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_021D8374:
+ mov r0, #0xb2
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _021D83AA
+ ldrb r0, [r4, #0x12]
+ cmp r0, #0
+ beq _021D83BE
+ ldr r0, _021D83C4 ; =0x0000063C
+ add r0, r5, r0
+ bl MOD73_021DA4AC
+ ldr r0, _021D83C4 ; =0x0000063C
+ ldrb r2, [r4, #0xd]
+ ldr r1, _021D83CC ; =0x021DBC5C
+ add r0, r5, r0
+ ldrb r1, [r1, r2]
+ bl MOD73_021DA434
+ mov r0, #0xb2
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0
+ add r0, r0, #4
+ str r1, [r5, r0]
+ pop {r3, r4, r5, pc}
+_021D83AA:
+ ldr r0, _021D83C4 ; =0x0000063C
+ add r0, r5, r0
+ bl MOD73_021DA49C
+ cmp r0, #0
+ beq _021D83BE
+ mov r0, #0xb2
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_021D83BE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D83C0: .word 0x000014C4
+_021D83C4: .word 0x0000063C
+_021D83C8: .word 0x021DBC58
+_021D83CC: .word 0x021DBC5C
+ thumb_func_end MOD73_021D82FC
+
+ thumb_func_start MOD73_021D83D0
+MOD73_021D83D0: ; 0x021D83D0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D844C ; =0x000014C4
+ add r4, r5, r0
+ ldrb r0, [r4, #0x13]
+ cmp r0, #0
+ beq _021D83FC
+ mov r0, #0x67
+ lsl r0, r0, #4
+ ldrb r1, [r4, #0xd]
+ add r0, r5, r0
+ mov r2, #2
+ bl MOD73_021DA8BC
+ ldrb r0, [r4, #0xd]
+ lsl r1, r0, #2
+ ldr r0, _021D8450 ; =0x021DBC60
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_020054C8
+_021D83FC:
+ ldrb r0, [r4, #0x12]
+ cmp r0, #1
+ bne _021D8422
+ mov r0, #0x67
+ lsl r0, r0, #4
+ ldrb r1, [r4, #0xd]
+ add r0, r5, r0
+ mov r2, #1
+ bl MOD73_021DA8BC
+ ldrb r0, [r4, #0xd]
+ lsl r1, r0, #2
+ ldr r0, _021D8454 ; =0x021DBC6C
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_020054C8
+ b _021D8434
+_021D8422:
+ cmp r0, #2
+ bne _021D8434
+ mov r0, #0x67
+ lsl r0, r0, #4
+ ldrb r1, [r4, #0xd]
+ add r0, r5, r0
+ mov r2, #0
+ bl MOD73_021DA8BC
+_021D8434:
+ ldrh r0, [r4, #0xa]
+ ldrb r1, [r4, #0xd]
+ bl MOD73_021DB62C
+ cmp r0, #0
+ bne _021D844A
+ mov r0, #0x67
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl MOD73_021DAAA8
+_021D844A:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D844C: .word 0x000014C4
+_021D8450: .word 0x021DBC60
+_021D8454: .word 0x021DBC6C
+ thumb_func_end MOD73_021D83D0
+
+ thumb_func_start MOD73_021D8458
+MOD73_021D8458: ; 0x021D8458
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D84F0 ; =0x000014C4
+ add r1, r4, r0
+ ldrb r0, [r1, #0xe]
+ cmp r0, #0
+ beq _021D84B0
+ ldrb r0, [r1, #0x11]
+ cmp r0, #0
+ ldr r0, _021D84F4 ; =0x00000A84
+ bne _021D8490
+ add r0, r4, r0
+ mov r1, #0
+ bl MOD73_021DAE7C
+ ldr r0, _021D84F4 ; =0x00000A84
+ mov r1, #2
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D84F8 ; =0x000006C1
+ bl FUN_020054C8
+ mov r0, #0xb
+ mov r1, #1
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ b _021D84B0
+_021D8490:
+ add r0, r4, r0
+ mov r1, #2
+ bl MOD73_021DAE7C
+ ldr r0, _021D84F4 ; =0x00000A84
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D84F8 ; =0x000006C1
+ bl FUN_020054C8
+ mov r0, #0xb
+ mov r1, #2
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+_021D84B0:
+ mov r0, #0xb
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _021D84D2
+ ldr r0, _021D84F4 ; =0x00000A84
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD73_021DAECC
+ cmp r0, #1
+ bne _021D84EC
+ mov r0, #0xb
+ mov r1, #0
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ pop {r4, pc}
+_021D84D2:
+ cmp r0, #2
+ bne _021D84EC
+ ldr r0, _021D84F4 ; =0x00000A84
+ mov r1, #2
+ add r0, r4, r0
+ bl MOD73_021DAECC
+ cmp r0, #1
+ bne _021D84EC
+ mov r0, #0xb
+ mov r1, #0
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+_021D84EC:
+ pop {r4, pc}
+ nop
+_021D84F0: .word 0x000014C4
+_021D84F4: .word 0x00000A84
+_021D84F8: .word 0x000006C1
+ thumb_func_end MOD73_021D8458
+
+ thumb_func_start MOD73_021D84FC
+MOD73_021D84FC: ; 0x021D84FC
+ push {r3, lr}
+ ldr r3, _021D8520 ; =0x00001430
+ add r2, r3, #1
+ ldrb r1, [r0, r3]
+ add r3, #0xa3
+ ldrb r3, [r0, r3]
+ ldrb r2, [r0, r2]
+ cmp r3, #1
+ bne _021D851C
+ ldr r3, _021D8524 ; =0x00000B04
+ add r0, r0, r3
+ bl MOD73_021DB020
+ ldr r0, _021D8528 ; =0x000006BF
+ bl FUN_020054C8
+_021D851C:
+ pop {r3, pc}
+ nop
+_021D8520: .word 0x00001430
+_021D8524: .word 0x00000B04
+_021D8528: .word 0x000006BF
+ thumb_func_end MOD73_021D84FC
+
+ thumb_func_start MOD73_021D852C
+MOD73_021D852C: ; 0x021D852C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02027E5C
+ ldr r1, _021D8560 ; =0x0000152C
+ str r0, [r4, r1]
+ ldr r0, _021D8564 ; =0x00001424
+ ldr r0, [r4, r0]
+ bl MOD73_021D910C
+ ldr r1, _021D8568 ; =0x00001570
+ mov r5, #0
+ strb r0, [r4, r1]
+ add r0, r1, #0
+ mov r3, #0x80
+ mov r2, #0x60
+ sub r0, #0xb4
+ sub r1, #0xb3
+_021D8552:
+ strb r3, [r4, r0]
+ strb r2, [r4, r1]
+ add r5, r5, #1
+ add r4, #0x1c
+ cmp r5, #4
+ blt _021D8552
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8560: .word 0x0000152C
+_021D8564: .word 0x00001424
+_021D8568: .word 0x00001570
+ thumb_func_end MOD73_021D852C
+
+ thumb_func_start MOD73_021D856C
+MOD73_021D856C: ; 0x021D856C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D858C ; =0x0000152C
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _021D857C
+ bl ErrorHandling
+_021D857C:
+ ldr r0, _021D858C ; =0x0000152C
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, _021D858C ; =0x0000152C
+ mov r1, #0
+ str r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_021D858C: .word 0x0000152C
+ thumb_func_end MOD73_021D856C
+
+ thumb_func_start MOD73_021D8590
+MOD73_021D8590: ; 0x021D8590
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x10]
+ add r7, r1, #0
+ ldr r0, [r0, #0xc]
+ add r6, r2, #0
+ bl FUN_02022504
+ mov r4, #0
+ str r0, [sp]
+ cmp r6, #0
+ ble _021D85CA
+_021D85AE:
+ ldr r0, [r5, #0x10]
+ add r1, r7, #0
+ ldr r0, [r0, #8]
+ bl FUN_02028094
+ ldr r1, _021D85E0 ; =0x0000FFFF
+ cmp r0, r1
+ bne _021D85C4
+ mov r0, #0
+ str r0, [sp, #4]
+ b _021D85CA
+_021D85C4:
+ add r4, r4, #1
+ cmp r4, r6
+ blt _021D85AE
+_021D85CA:
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_02027E94
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl FUN_02060FAC
+ ldr r0, [sp, #4]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D85E0: .word 0x0000FFFF
+ thumb_func_end MOD73_021D8590
+
+ thumb_func_start MOD73_021D85E4
+MOD73_021D85E4: ; 0x021D85E4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D8628 ; =0x000014C4
+ add r4, r5, r0
+ ldrb r2, [r4, #0xc]
+ cmp r2, #0
+ bne _021D85FE
+ mov r0, #0xd5
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ ldrh r0, [r4, #8]
+ cmp r1, r0
+ bgt _021D860E
+_021D85FE:
+ cmp r2, #1
+ bne _021D861E
+ mov r0, #0xd5
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ ldrh r0, [r4, #8]
+ cmp r1, r0
+ bge _021D861E
+_021D860E:
+ ldrb r0, [r4, #0xd]
+ lsl r1, r0, #2
+ ldr r0, _021D862C ; =0x021DBC78
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_020054C8
+_021D861E:
+ ldrh r1, [r4, #8]
+ mov r0, #0xd5
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8628: .word 0x000014C4
+_021D862C: .word 0x021DBC78
+ thumb_func_end MOD73_021D85E4
+
+ thumb_func_start MOD73_021D8630
+MOD73_021D8630: ; 0x021D8630
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ bl MOD73_021D8B4C
+ add r0, r4, #0
+ ldr r1, [r4]
+ add r0, #0x20
+ bl MOD73_021D88E4
+ add r0, r4, #0
+ bl MOD73_021D8A18
+ add r0, r4, #0
+ bl MOD73_021D89AC
+ add r0, r4, #0
+ bl MOD73_021D89DC
+ add r0, r4, #0
+ bl MOD73_021D8A84
+ ldr r0, _021D8738 ; =0x0000054C
+ ldr r1, [r4, #0x20]
+ ldr r2, [r4]
+ add r0, r4, r0
+ bl MOD73_021D9A68
+ ldr r0, _021D873C ; =0x0000063C
+ ldr r1, [r4, #0x20]
+ ldr r2, [r4]
+ add r0, r4, r0
+ bl MOD73_021DA254
+ mov r1, #0xaf
+ ldr r0, _021D8740 ; =0x000005A4
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ ldr r2, [r4]
+ add r0, r4, r0
+ bl MOD73_021D9EA8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x16
+ mov r2, #0x5a
+ lsl r0, r0, #6
+ add r1, r4, #0
+ lsl r2, r2, #2
+ ldr r3, [r4]
+ add r0, r4, r0
+ add r1, #0x2c
+ add r2, r4, r2
+ bl MOD73_021D9DCC
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _021D8744 ; =0x00000598
+ mov r2, #0x5a
+ add r1, r4, #0
+ lsl r2, r2, #2
+ ldr r3, [r4]
+ add r0, r4, r0
+ add r1, #0x2c
+ add r2, r4, r2
+ bl MOD73_021D9DCC
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _021D8748 ; =0x0000058C
+ mov r2, #0x5a
+ add r1, r4, #0
+ lsl r2, r2, #2
+ ldr r3, [r4]
+ add r0, r4, r0
+ add r1, #0x2c
+ add r2, r4, r2
+ bl MOD73_021D9DCC
+ ldr r0, _021D874C ; =0x0000061C
+ mov r2, #0x5a
+ add r1, r4, #0
+ lsl r2, r2, #2
+ ldr r3, [r4]
+ add r0, r4, r0
+ add r1, #0x2c
+ add r2, r4, r2
+ bl MOD73_021DA118
+ mov r0, #0x67
+ mov r2, #0x5a
+ lsl r0, r0, #4
+ add r1, r4, #0
+ lsl r2, r2, #2
+ ldr r3, [r4]
+ add r0, r4, r0
+ add r1, #0x2c
+ add r2, r4, r2
+ bl MOD73_021DA84C
+ ldr r0, _021D8750 ; =0x00000A84
+ add r1, r4, #0
+ ldr r2, [r4]
+ add r0, r4, r0
+ add r1, #0x2c
+ bl MOD73_021DADA0
+ ldr r0, _021D8754 ; =0x00000B04
+ mov r2, #0x5a
+ add r1, r4, #0
+ lsl r2, r2, #2
+ ldr r3, [r4]
+ add r0, r4, r0
+ add r1, #0x2c
+ add r2, r4, r2
+ bl MOD73_021DAFA8
+ add r0, r4, #0
+ bl MOD73_021D8BDC
+ ldr r0, _021D8758 ; =0x021C4918
+ mov r1, #1
+ strb r1, [r0, #5]
+ bl FUN_0201E7A0
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_021D8738: .word 0x0000054C
+_021D873C: .word 0x0000063C
+_021D8740: .word 0x000005A4
+_021D8744: .word 0x00000598
+_021D8748: .word 0x0000058C
+_021D874C: .word 0x0000061C
+_021D8750: .word 0x00000A84
+_021D8754: .word 0x00000B04
+_021D8758: .word 0x021C4918
+ thumb_func_end MOD73_021D8630
+
+ thumb_func_start MOD73_021D875C
+MOD73_021D875C: ; 0x021D875C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D87EC ; =0x0000063C
+ add r0, r4, r0
+ bl MOD73_021DA290
+ ldr r0, _021D87F0 ; =0x0000054C
+ add r0, r4, r0
+ bl MOD73_021D9A94
+ ldr r0, _021D87F4 ; =0x000005A4
+ add r0, r4, r0
+ bl MOD73_021D9F74
+ add r0, r4, #0
+ bl MOD73_021D8B2C
+ mov r0, #0x16
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl MOD73_021D9E08
+ ldr r0, _021D87F8 ; =0x0000058C
+ add r0, r4, r0
+ bl MOD73_021D9E08
+ ldr r0, _021D87FC ; =0x00000598
+ add r0, r4, r0
+ bl MOD73_021D9E08
+ ldr r0, _021D8800 ; =0x0000061C
+ add r0, r4, r0
+ bl MOD73_021DA178
+ mov r0, #0x67
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD73_021DA858
+ ldr r0, _021D8804 ; =0x00000A84
+ add r0, r4, r0
+ bl MOD73_021DAE24
+ ldr r0, _021D8808 ; =0x00000B04
+ add r0, r4, r0
+ bl MOD73_021DAFEC
+ add r0, r4, #0
+ add r0, #0x20
+ bl MOD73_021D8980
+ add r0, r4, #0
+ bl MOD73_021D89D0
+ add r0, r4, #0
+ bl MOD73_021D8A74
+ add r0, r4, #0
+ bl MOD73_021D8A08
+ add r0, r4, #0
+ bl MOD73_021D8BD0
+ add r0, r4, #0
+ bl MOD73_021D8D18
+ ldr r0, _021D880C ; =0x021C4918
+ mov r1, #0
+ strb r1, [r0, #5]
+ bl FUN_0201E7A0
+ pop {r4, pc}
+ .align 2, 0
+_021D87EC: .word 0x0000063C
+_021D87F0: .word 0x0000054C
+_021D87F4: .word 0x000005A4
+_021D87F8: .word 0x0000058C
+_021D87FC: .word 0x00000598
+_021D8800: .word 0x0000061C
+_021D8804: .word 0x00000A84
+_021D8808: .word 0x00000B04
+_021D880C: .word 0x021C4918
+ thumb_func_end MOD73_021D875C
+
+ thumb_func_start MOD73_021D8810
+MOD73_021D8810: ; 0x021D8810
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r1, _021D883C ; =0x00001498
+ str r0, [sp]
+ mov r0, #0xd7
+ mov r3, #0x5a
+ lsl r0, r0, #2
+ add r2, r4, #0
+ lsl r3, r3, #2
+ add r0, r4, r0
+ add r1, r4, r1
+ add r2, #0x2c
+ add r3, r4, r3
+ bl MOD73_021D96E4
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D883C: .word 0x00001498
+ thumb_func_end MOD73_021D8810
+
+ thumb_func_start MOD73_021D8840
+MOD73_021D8840: ; 0x021D8840
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r1, r4, #0
+ add r0, r4, r0
+ add r1, #0x2c
+ bl MOD73_021D97A4
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD73_021D8840
+
+ thumb_func_start MOD73_021D8858
+MOD73_021D8858: ; 0x021D8858
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl FUN_020222AC
+ mov r1, #0
+ mov r0, #0x11
+ add r2, r1, #0
+ bl FUN_020BB1C0
+ bl FUN_020BB394
+ bl FUN_020B02C8
+ mov r0, #0xaf
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D8882
+ bl FUN_02013D5C
+_021D8882:
+ mov r2, #1
+ mov r0, #0x12
+ add r1, sp, #0
+ str r2, [sp]
+ bl FUN_020BB1C0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_020222B4
+ mov r0, #0xae
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D88AA
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0
+ beq _021D88AA
+ bl FUN_0201FDEC
+_021D88AA:
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D8858
+
+ thumb_func_start MOD73_021D88B0
+MOD73_021D88B0: ; 0x021D88B0
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02009F80
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ beq _021D88C2
+ bl FUN_0201AB60
+_021D88C2:
+ pop {r4, pc}
+ thumb_func_end MOD73_021D88B0
+
+ thumb_func_start MOD73_021D88C4
+MOD73_021D88C4: ; 0x021D88C4
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D88E0 ; =0x021DBD40
+ add r3, sp, #0
+ mov r2, #5
+_021D88CE:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D88CE
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D88E0: .word 0x021DBD40
+ thumb_func_end MOD73_021D88C4
+
+ thumb_func_start MOD73_021D88E4
+MOD73_021D88E4: ; 0x021D88E4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x88
+ str r1, [sp]
+ add r6, r0, #0
+ bl MOD73_021D88C4
+ ldr r0, [sp]
+ bl FUN_02016B94
+ add r3, sp, #8
+ ldr r4, _021D8974 ; =0x021DBD30
+ str r0, [r6]
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r0, #0
+ mov r1, #2
+ bl FUN_020178BC
+ ldr r4, _021D8978 ; =0x021DBD68
+ add r3, sp, #0x18
+ mov r2, #0xe
+_021D8922:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D8922
+ ldr r1, _021D897C ; =0x021DBD0C
+ add r0, sp, #4
+ ldrb r2, [r1]
+ mov r7, #0
+ add r5, sp, #4
+ strb r2, [r0]
+ ldrb r2, [r1, #1]
+ add r4, sp, #0x18
+ strb r2, [r0, #1]
+ ldrb r2, [r1, #2]
+ ldrb r1, [r1, #3]
+ strb r2, [r0, #2]
+ strb r1, [r0, #3]
+_021D8944:
+ ldrb r1, [r5]
+ ldr r0, [r6]
+ add r2, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldrb r1, [r5]
+ ldr r0, [r6]
+ bl FUN_02018744
+ ldrb r0, [r5]
+ ldr r3, [sp]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ add r7, r7, #1
+ add r4, #0x1c
+ add r5, r5, #1
+ cmp r7, #4
+ blt _021D8944
+ add sp, #0x88
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8974: .word 0x021DBD30
+_021D8978: .word 0x021DBD68
+_021D897C: .word 0x021DBD0C
+ thumb_func_end MOD73_021D88E4
+
+ thumb_func_start MOD73_021D8980
+MOD73_021D8980: ; 0x021D8980
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #5
+ bl FUN_020178A0
+ ldr r0, [r4]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r4]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4]
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD73_021D8980
+
+ thumb_func_start MOD73_021D89AC
+MOD73_021D89AC: ; 0x021D89AC
+ push {r3, lr}
+ add r3, r0, #0
+ ldr r3, [r3]
+ add r0, #0x2c
+ mov r1, #0x48
+ mov r2, #0x10
+ bl MOD73_021D92EC
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D89AC
+
+ thumb_func_start MOD73_021D89D0
+MOD73_021D89D0: ; 0x021D89D0
+ ldr r3, _021D89D8 ; =MOD73_021D931C
+ add r0, #0x2c
+ bx r3
+ nop
+_021D89D8: .word MOD73_021D931C
+ thumb_func_end MOD73_021D89D0
+
+ thumb_func_start MOD73_021D89DC
+MOD73_021D89DC: ; 0x021D89DC
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ ldr r5, _021D8A04 ; =0x021DBD10
+ 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}
+ ldr r0, [r4]
+ str r0, [sp, #0xc]
+ add r0, r2, #0
+ bl FUN_02013CD4
+ mov r1, #0xaf
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8A04: .word 0x021DBD10
+ thumb_func_end MOD73_021D89DC
+
+ thumb_func_start MOD73_021D8A08
+MOD73_021D8A08: ; 0x021D8A08
+ mov r1, #0xaf
+ lsl r1, r1, #2
+ ldr r3, _021D8A14 ; =FUN_02013D18
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_021D8A14: .word FUN_02013D18
+ thumb_func_end MOD73_021D8A08
+
+ thumb_func_start MOD73_021D8A18
+MOD73_021D8A18: ; 0x021D8A18
+ push {r4, r5, lr}
+ sub sp, #0x24
+ add r4, r0, #0
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x80
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ ldr r2, [r4]
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ ldr r5, _021D8A6C ; =0x021DBD20
+ add r3, sp, #0x14
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ ldr r1, _021D8A70 ; =0x00200010
+ str r0, [sp, #0x20]
+ add r0, r2, #0
+ mov r2, #0x10
+ bl FUN_0201D060
+ ldr r1, [r4]
+ mov r0, #0x20
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x24
+ pop {r4, r5, pc}
+ nop
+_021D8A6C: .word 0x021DBD20
+_021D8A70: .word 0x00200010
+ thumb_func_end MOD73_021D8A18
+
+ thumb_func_start MOD73_021D8A74
+MOD73_021D8A74: ; 0x021D8A74
+ push {r3, lr}
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ pop {r3, pc}
+ thumb_func_end MOD73_021D8A74
+
+ thumb_func_start MOD73_021D8A84
+MOD73_021D8A84: ; 0x021D8A84
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ str r0, [sp, #0x18]
+ ldr r0, _021D8B28 ; =0x021DBDD8
+ mov r1, #0x5a
+ str r0, [sp, #0x20]
+ mov r0, #0xc
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x18]
+ lsl r1, r1, #2
+ add r0, r0, r1
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ mov r4, #0
+ str r0, [sp, #0x24]
+ add r0, #0x2c
+ mov r7, #0xd
+ mov r5, #0xe
+ str r0, [sp, #0x24]
+_021D8AAA:
+ cmp r4, #0
+ ble _021D8AE0
+ ldr r0, [sp, #0x20]
+ ldrb r0, [r0]
+ cmp r0, #8
+ bne _021D8AE0
+ str r5, [sp]
+ ldr r0, [sp, #0x28]
+ str r7, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x7d
+ lsl r0, r0, #4
+ add r0, r4, r0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x7a
+ ldr r0, [r0]
+ add r3, r2, #0
+ str r0, [sp, #0x10]
+ ldr r6, [sp, #0x18]
+ add r3, #0xf2
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x1c]
+ ldr r3, [r6, r3]
+ bl MOD73_021D942C
+ b _021D8B08
+_021D8AE0:
+ mov r0, #2
+ str r0, [sp]
+ str r5, [sp, #4]
+ ldr r0, [sp, #0x28]
+ str r7, [sp, #8]
+ str r0, [sp, #0xc]
+ mov r0, #0x7d
+ lsl r0, r0, #4
+ add r0, r4, r0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x18]
+ ldr r3, [sp, #0x20]
+ ldr r0, [r0]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #0x14]
+ ldrb r3, [r3]
+ ldr r0, [sp, #0x24]
+ mov r2, #0x7a
+ bl MOD73_021D9340
+_021D8B08:
+ ldr r0, [sp, #0x20]
+ add r4, r4, #1
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x28]
+ add r7, r7, #3
+ add r0, r0, #3
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x1c]
+ add r5, r5, #3
+ add r0, #0x38
+ str r0, [sp, #0x1c]
+ cmp r4, #6
+ blt _021D8AAA
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8B28: .word 0x021DBDD8
+ thumb_func_end MOD73_021D8A84
+
+ thumb_func_start MOD73_021D8B2C
+MOD73_021D8B2C: ; 0x021D8B2C
+ push {r4, r5, r6, lr}
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r0, r1
+ add r6, #0x2c
+_021D8B3A:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD73_021D94F4
+ add r4, r4, #1
+ add r5, #0x38
+ cmp r4, #6
+ blt _021D8B3A
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD73_021D8B2C
+
+ thumb_func_start MOD73_021D8B4C
+MOD73_021D8B4C: ; 0x021D8B4C
+ push {r3, r4, lr}
+ sub sp, #4
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ ldr r0, _021D8BB8 ; =0x04000060
+ ldr r2, _021D8BBC ; =0xFFFFCFFD
+ ldrh r1, [r0]
+ and r1, r2
+ strh r1, [r0]
+ ldrh r3, [r0]
+ add r1, r2, #2
+ and r3, r1
+ mov r1, #0x10
+ orr r1, r3
+ strh r1, [r0]
+ ldrh r1, [r0]
+ ldr r3, _021D8BC0 ; =0x0000CFFB
+ and r1, r3
+ strh r1, [r0]
+ add r1, r2, #2
+ ldrh r4, [r0]
+ sub r3, #0x1c
+ lsr r2, r2, #0x11
+ and r4, r1
+ mov r1, #8
+ orr r1, r4
+ strh r1, [r0]
+ ldrh r1, [r0]
+ and r1, r3
+ strh r1, [r0]
+ mov r1, #0
+ ldr r0, _021D8BC4 ; =0x000043FF
+ mov r3, #0x3f
+ str r1, [sp]
+ bl G3X_SetClearColor
+ ldr r2, _021D8BC8 ; =0x04000540
+ mov r0, #2
+ ldr r1, _021D8BCC ; =0xBFFF0000
+ str r0, [r2]
+ str r1, [r2, #0x40]
+ mov r1, #1
+ bl FUN_020AEB70
+ mov r0, #2
+ lsl r0, r0, #0xe
+ mov r1, #1
+ bl FUN_020AEDF4
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D8BB8: .word 0x04000060
+_021D8BBC: .word 0xFFFFCFFD
+_021D8BC0: .word 0x0000CFFB
+_021D8BC4: .word 0x000043FF
+_021D8BC8: .word 0x04000540
+_021D8BCC: .word 0xBFFF0000
+ thumb_func_end MOD73_021D8B4C
+
+ thumb_func_start MOD73_021D8BD0
+MOD73_021D8BD0: ; 0x021D8BD0
+ push {r3, lr}
+ bl FUN_020AEAF4
+ bl FUN_020AEC60
+ pop {r3, pc}
+ thumb_func_end MOD73_021D8BD0
+
+ thumb_func_start MOD73_021D8BDC
+MOD73_021D8BDC: ; 0x021D8BDC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r2, _021D8CE0 ; =0x0000019D
+ ldr r3, [r5]
+ mov r0, #0
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ ldr r1, _021D8CE4 ; =0x00001574
+ str r0, [r5, r1]
+ ldr r2, [r5]
+ mov r0, #4
+ mov r1, #0x40
+ bl FUN_0200AA90
+ ldr r1, _021D8CE8 ; =0x00001578
+ str r0, [r5, r1]
+ ldr r1, [r5]
+ mov r0, #0x40
+ bl FUN_020219F4
+ ldr r1, _021D8CEC ; =0x0000157C
+ str r0, [r5, r1]
+ sub r1, #8
+ ldr r0, [r5, r1]
+ mov r1, #0
+ bl FUN_0200A914
+ mov r1, #0x56
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ sub r1, #0xc
+ ldr r0, [r5, r1]
+ mov r1, #1
+ bl FUN_0200A914
+ ldr r1, _021D8CF0 ; =0x00001584
+ str r0, [r5, r1]
+ sub r1, #0x10
+ ldr r0, [r5, r1]
+ mov r1, #2
+ bl FUN_0200A914
+ ldr r1, _021D8CF4 ; =0x00001588
+ str r0, [r5, r1]
+ sub r1, #0x14
+ ldr r0, [r5, r1]
+ mov r1, #0x14
+ bl FUN_0200A914
+ ldr r1, _021D8CF8 ; =0x0000158C
+ str r0, [r5, r1]
+ sub r1, #0x18
+ ldr r0, [r5, r1]
+ mov r1, #0x15
+ bl FUN_0200A914
+ ldr r1, _021D8CFC ; =0x00001590
+ str r0, [r5, r1]
+ sub r1, #0x1c
+ ldr r0, [r5, r1]
+ mov r1, #0x16
+ bl FUN_0200A914
+ ldr r1, _021D8D00 ; =0x00001594
+ str r0, [r5, r1]
+ sub r1, #0x20
+ ldr r0, [r5, r1]
+ mov r1, #0x17
+ bl FUN_0200A914
+ ldr r1, _021D8D04 ; =0x00001598
+ str r0, [r5, r1]
+ sub r1, #0x24
+ ldr r0, [r5, r1]
+ mov r1, #0x18
+ bl FUN_0200A914
+ ldr r1, _021D8D08 ; =0x0000159C
+ str r0, [r5, r1]
+ sub r1, #0x28
+ ldr r0, [r5, r1]
+ mov r1, #0x19
+ bl FUN_0200A914
+ ldr r1, _021D8D0C ; =0x000015A0
+ str r0, [r5, r1]
+ sub r1, #0x2c
+ ldr r0, [r5, r1]
+ mov r1, #8
+ bl FUN_0200A914
+ ldr r1, _021D8D10 ; =0x000015A4
+ str r0, [r5, r1]
+ sub r1, #0x30
+ ldr r0, [r5, r1]
+ mov r1, #9
+ bl FUN_0200A914
+ ldr r1, _021D8D14 ; =0x000015A8
+ mov r4, #0
+ str r0, [r5, r1]
+ add r6, r5, #0
+ add r7, r1, #4
+_021D8CAC:
+ ldr r0, _021D8CE4 ; =0x00001574
+ add r1, r4, #3
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ str r0, [r6, r7]
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r4, #5
+ blt _021D8CAC
+ mov r7, #0x57
+ mov r4, #0
+ add r6, r5, #0
+ lsl r7, r7, #6
+_021D8CC8:
+ ldr r0, _021D8CE4 ; =0x00001574
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ add r1, #0xa
+ bl FUN_0200A914
+ str r0, [r6, r7]
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r4, #0xa
+ blt _021D8CC8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8CE0: .word 0x0000019D
+_021D8CE4: .word 0x00001574
+_021D8CE8: .word 0x00001578
+_021D8CEC: .word 0x0000157C
+_021D8CF0: .word 0x00001584
+_021D8CF4: .word 0x00001588
+_021D8CF8: .word 0x0000158C
+_021D8CFC: .word 0x00001590
+_021D8D00: .word 0x00001594
+_021D8D04: .word 0x00001598
+_021D8D08: .word 0x0000159C
+_021D8D0C: .word 0x000015A0
+_021D8D10: .word 0x000015A4
+_021D8D14: .word 0x000015A8
+ thumb_func_end MOD73_021D8BDC
+
+ thumb_func_start MOD73_021D8D18
+MOD73_021D8D18: ; 0x021D8D18
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, _021D8DBC ; =0x000015A8
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DC0 ; =0x000015A4
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DC4 ; =0x00001594
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DC8 ; =0x00001590
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DCC ; =0x0000158C
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DD0 ; =0x00001588
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DD4 ; =0x00001584
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ mov r0, #0x56
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DD8 ; =0x00001598
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DDC ; =0x0000159C
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DE0 ; =0x000015A0
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r7, _021D8DE4 ; =0x000015AC
+ mov r4, #0
+ add r5, r6, #0
+_021D8D7C:
+ ldr r0, [r5, r7]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _021D8D7C
+ mov r7, #0x57
+ mov r5, #0
+ add r4, r6, #0
+ lsl r7, r7, #6
+_021D8D92:
+ ldr r0, [r4, r7]
+ bl FUN_02021A20
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #0xa
+ blt _021D8D92
+ ldr r0, _021D8DE8 ; =0x0000157C
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DEC ; =0x00001578
+ ldr r0, [r6, r0]
+ bl FUN_0200AB18
+ ldr r0, _021D8DF0 ; =0x00001574
+ ldr r0, [r6, r0]
+ bl FUN_0200A8B8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8DBC: .word 0x000015A8
+_021D8DC0: .word 0x000015A4
+_021D8DC4: .word 0x00001594
+_021D8DC8: .word 0x00001590
+_021D8DCC: .word 0x0000158C
+_021D8DD0: .word 0x00001588
+_021D8DD4: .word 0x00001584
+_021D8DD8: .word 0x00001598
+_021D8DDC: .word 0x0000159C
+_021D8DE0: .word 0x000015A0
+_021D8DE4: .word 0x000015AC
+_021D8DE8: .word 0x0000157C
+_021D8DEC: .word 0x00001578
+_021D8DF0: .word 0x00001574
+ thumb_func_end MOD73_021D8D18
+
+ thumb_func_start MOD73_021D8DF4
+MOD73_021D8DF4: ; 0x021D8DF4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, _021D8E7C ; =0x00001428
+ add r4, r1, #0
+ ldr r1, [r7, r0]
+ cmp r1, #1
+ bne _021D8E0C
+ bl FUN_02030F20
+ ldr r1, _021D8E80 ; =0x00001420
+ str r0, [r7, r1]
+ b _021D8E12
+_021D8E0C:
+ mov r1, #1
+ sub r0, #8
+ str r1, [r7, r0]
+_021D8E12:
+ bl FUN_020842D0
+ add r5, r0, #0
+ bl FUN_020842D8
+ add r1, r0, #0
+ ldr r0, [r7]
+ ldr r3, _021D8E7C ; =0x00001428
+ str r0, [sp]
+ ldr r3, [r7, r3]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD73_021D9094
+ ldr r1, _021D8E84 ; =0x00001424
+ str r0, [r7, r1]
+ ldr r0, _021D8E88 ; =0x0000155C
+ mov r1, #4
+ add r0, r7, r0
+ add r2, r1, #0
+ bl Call_FillMemWithValue
+ ldr r0, _021D8E7C ; =0x00001428
+ ldr r0, [r7, r0]
+ cmp r0, #1
+ bne _021D8E70
+ mov r6, #0
+ add r4, r6, #0
+ add r5, r7, #0
+_021D8E4C:
+ add r0, r4, #0
+ bl FUN_0202DFA4
+ ldr r1, _021D8E8C ; =0x00001560
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D8E66
+ ldr r0, _021D8E88 ; =0x0000155C
+ add r1, r7, r6
+ strb r4, [r1, r0]
+ add r6, r6, #1
+_021D8E66:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021D8E4C
+ pop {r3, r4, r5, r6, r7, pc}
+_021D8E70:
+ ldr r0, _021D8E88 ; =0x0000155C
+ mov r1, #0
+ strb r1, [r7, r0]
+ add r0, r0, #4
+ str r4, [r7, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8E7C: .word 0x00001428
+_021D8E80: .word 0x00001420
+_021D8E84: .word 0x00001424
+_021D8E88: .word 0x0000155C
+_021D8E8C: .word 0x00001560
+ thumb_func_end MOD73_021D8DF4
+
+ thumb_func_start MOD73_021D8E90
+MOD73_021D8E90: ; 0x021D8E90
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D8EA4 ; =0x00001424
+ ldr r0, [r4, r0]
+ bl MOD73_021D90F4
+ ldr r0, _021D8EA4 ; =0x00001424
+ mov r1, #0
+ str r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_021D8EA4: .word 0x00001424
+ thumb_func_end MOD73_021D8E90
+
+ thumb_func_start MOD73_021D8EA8
+MOD73_021D8EA8: ; 0x021D8EA8
+ add r0, r3, #0
+ ldr r3, _021D8EB0 ; =MOD73_021D768C
+ mov r1, #3
+ bx r3
+ .align 2, 0
+_021D8EB0: .word MOD73_021D768C
+ thumb_func_end MOD73_021D8EA8
+
+ thumb_func_start MOD73_021D8EB4
+MOD73_021D8EB4: ; 0x021D8EB4
+ add r0, r3, #0
+ ldr r3, _021D8EBC ; =MOD73_021D768C
+ mov r1, #8
+ bx r3
+ .align 2, 0
+_021D8EBC: .word MOD73_021D768C
+ thumb_func_end MOD73_021D8EB4
+
+ thumb_func_start MOD73_021D8EC0
+MOD73_021D8EC0: ; 0x021D8EC0
+ push {r3, r4, r5, lr}
+ ldr r0, _021D8EF4 ; =0x00001498
+ add r5, r1, #0
+ add r4, r3, #0
+ add r1, r2, #0
+ add r0, r4, r0
+ add r2, r5, #0
+ bl memcpy
+ ldr r0, _021D8EF8 ; =0x000014A8
+ mov r1, #0xa
+ add r3, r4, r0
+ add r0, #0x1c
+ add r2, r4, r0
+_021D8EDC:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _021D8EDC
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD73_021D768C
+ pop {r3, r4, r5, pc}
+ nop
+_021D8EF4: .word 0x00001498
+_021D8EF8: .word 0x000014A8
+ thumb_func_end MOD73_021D8EC0
+
+ thumb_func_start MOD73_021D8EFC
+MOD73_021D8EFC: ; 0x021D8EFC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ ldr r0, _021D8F7C ; =0x00001424
+ add r5, r3, #0
+ ldr r0, [r5, r0]
+ str r1, [sp]
+ str r2, [sp, #4]
+ bl MOD73_021D910C
+ cmp r0, #0
+ bne _021D8F76
+ mov r0, #0x55
+ lsl r0, r0, #6
+ lsl r4, r6, #2
+ add r7, r5, r0
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ add r0, r7, r4
+ bl memcpy
+ ldr r0, _021D8F80 ; =0x00001550
+ mov r2, #1
+ add r1, r5, r6
+ strb r2, [r1, r0]
+ ldr r1, [r7, r4]
+ add r2, r5, r4
+ sub r0, #0xf0
+ str r1, [r2, r0]
+ mov r0, #0
+ ldr r1, _021D8F80 ; =0x00001550
+ add r3, r0, #0
+_021D8F3C:
+ add r2, r5, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #1
+ bne _021D8F46
+ add r0, r0, #1
+_021D8F46:
+ add r3, r3, #1
+ cmp r3, #4
+ blt _021D8F3C
+ ldr r1, _021D8F84 ; =0x00001420
+ ldr r2, [r5, r1]
+ cmp r0, r2
+ blt _021D8F76
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r1, #0x50
+ add r0, r5, r0
+ add r1, r5, r1
+ bl MOD73_021DB994
+ bl MOD73_021D9084
+ ldr r3, _021D8F88 ; =0x00001460
+ add r2, r0, #0
+ add r1, r5, r3
+ sub r3, #0x3c
+ ldr r3, [r5, r3]
+ mov r0, #0x18
+ bl MOD73_021D90D0
+_021D8F76:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8F7C: .word 0x00001424
+_021D8F80: .word 0x00001550
+_021D8F84: .word 0x00001420
+_021D8F88: .word 0x00001460
+ thumb_func_end MOD73_021D8EFC
+
+ thumb_func_start MOD73_021D8F8C
+MOD73_021D8F8C: ; 0x021D8F8C
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, _021D8FA4 ; =0x000014BC
+ add r3, r3, r1
+ mov r1, #0x1c
+ mul r1, r0
+ add r0, r3, r1
+ add r1, r2, #0
+ add r2, r4, #0
+ bl memcpy
+ pop {r4, pc}
+ .align 2, 0
+_021D8FA4: .word 0x000014BC
+ thumb_func_end MOD73_021D8F8C
+
+ thumb_func_start MOD73_021D8FA8
+MOD73_021D8FA8: ; 0x021D8FA8
+ push {r3, r4, r5, lr}
+ ldr r0, _021D8FC4 ; =0x00001484
+ add r5, r1, #0
+ add r4, r3, #0
+ add r1, r2, #0
+ add r0, r4, r0
+ add r2, r5, #0
+ bl memcpy
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD73_021D768C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8FC4: .word 0x00001484
+ thumb_func_end MOD73_021D8FA8
+
+ thumb_func_start MOD73_021D8FC8
+MOD73_021D8FC8: ; 0x021D8FC8
+ push {r4, lr}
+ ldr r0, _021D8FDC ; =0x0000152C
+ add r4, r1, #0
+ ldr r0, [r3, r0]
+ add r1, r2, #0
+ add r2, r4, #0
+ bl memcpy
+ pop {r4, pc}
+ nop
+_021D8FDC: .word 0x0000152C
+ thumb_func_end MOD73_021D8FC8
+
+ thumb_func_start MOD73_021D8FE0
+MOD73_021D8FE0: ; 0x021D8FE0
+ push {r3, r4, r5, lr}
+ ldr r0, _021D8FFC ; =0x00001571
+ add r5, r1, #0
+ add r4, r3, #0
+ add r1, r2, #0
+ add r0, r4, r0
+ add r2, r5, #0
+ bl memcpy
+ add r0, r4, #0
+ mov r1, #0xc
+ bl MOD73_021D768C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8FFC: .word 0x00001571
+ thumb_func_end MOD73_021D8FE0
+
+ thumb_func_start MOD73_021D9000
+MOD73_021D9000: ; 0x021D9000
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _021D906C ; =0x00001424
+ add r4, r3, #0
+ ldr r0, [r4, r0]
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD73_021D910C
+ cmp r0, #0
+ bne _021D906A
+ ldr r0, _021D9070 ; =0x00001554
+ add r1, r7, #0
+ add r0, r4, r0
+ add r0, r0, r5
+ add r2, r6, #0
+ bl memcpy
+ ldr r0, _021D9074 ; =0x00001558
+ add r1, r4, r5
+ mov r2, #1
+ strb r2, [r1, r0]
+ add r6, sp, #0
+ mov r3, #0
+ strb r2, [r6]
+ add r2, r3, #0
+ sub r7, r0, #4
+ add r5, r0, #0
+_021D9038:
+ add r1, r4, r2
+ ldrb r0, [r1, r5]
+ cmp r0, #1
+ bne _021D904A
+ ldrb r0, [r6]
+ ldrb r1, [r1, r7]
+ add r3, r3, #1
+ and r0, r1
+ strb r0, [r6]
+_021D904A:
+ add r2, r2, #1
+ cmp r2, #4
+ blt _021D9038
+ ldr r0, _021D9078 ; =0x00001420
+ ldr r0, [r4, r0]
+ cmp r3, r0
+ blt _021D906A
+ bl MOD73_021D9080
+ ldr r3, _021D906C ; =0x00001424
+ add r2, r0, #0
+ ldr r3, [r4, r3]
+ mov r0, #0x1d
+ add r1, sp, #0
+ bl MOD73_021D90D0
+_021D906A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D906C: .word 0x00001424
+_021D9070: .word 0x00001554
+_021D9074: .word 0x00001558
+_021D9078: .word 0x00001420
+ thumb_func_end MOD73_021D9000
+
+ thumb_func_start MOD73_021D907C
+MOD73_021D907C: ; 0x021D907C
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD73_021D907C
+
+ thumb_func_start MOD73_021D9080
+MOD73_021D9080: ; 0x021D9080
+ mov r0, #1
+ bx lr
+ thumb_func_end MOD73_021D9080
+
+ thumb_func_start MOD73_021D9084
+MOD73_021D9084: ; 0x021D9084
+ mov r0, #0x24
+ bx lr
+ thumb_func_end MOD73_021D9084
+
+ thumb_func_start MOD73_021D9088
+MOD73_021D9088: ; 0x021D9088
+ mov r0, #4
+ bx lr
+ thumb_func_end MOD73_021D9088
+
+ thumb_func_start MOD73_021D908C
+MOD73_021D908C: ; 0x021D908C
+ mov r0, #0x1c
+ bx lr
+ thumb_func_end MOD73_021D908C
+
+ thumb_func_start MOD73_021D9090
+MOD73_021D9090: ; 0x021D9090
+ mov r0, #0x14
+ bx lr
+ thumb_func_end MOD73_021D9090
+
+ thumb_func_start MOD73_021D9094
+MOD73_021D9094: ; 0x021D9094
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ ldr r0, [sp, #0x18]
+ mov r1, #8
+ str r2, [sp]
+ add r5, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r0, #0
+ str r5, [r4]
+ str r0, [r4, #4]
+ cmp r5, #1
+ bne _021D90BE
+ ldr r2, [sp]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_0202D8D0
+ b _021D90CC
+_021D90BE:
+ ldr r2, [sp]
+ ldr r3, [sp, #0x18]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD73_021D9120
+ str r0, [r4, #4]
+_021D90CC:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021D9094
+
+ thumb_func_start MOD73_021D90D0
+MOD73_021D90D0: ; 0x021D90D0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r3, #0
+ ldr r3, [r6]
+ add r5, r0, #0
+ add r4, r1, #0
+ add r7, r2, #0
+ cmp r3, #1
+ bne _021D90E6
+ bl FUN_02030ADC
+ pop {r3, r4, r5, r6, r7, pc}
+_021D90E6:
+ ldr r0, [r6, #4]
+ add r1, r5, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD73_021D91D4
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021D90D0
+
+ thumb_func_start MOD73_021D90F4
+MOD73_021D90F4: ; 0x021D90F4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _021D9104
+ ldr r0, [r4, #4]
+ bl MOD73_021D91BC
+_021D9104:
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD73_021D90F4
+
+ thumb_func_start MOD73_021D910C
+MOD73_021D910C: ; 0x021D910C
+ push {r3, lr}
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D911A
+ bl FUN_02031190
+ pop {r3, pc}
+_021D911A:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D910C
+
+ thumb_func_start MOD73_021D9120
+MOD73_021D9120: ; 0x021D9120
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ mov r1, #0x1b
+ add r5, r0, #0
+ add r0, r3, #0
+ lsl r1, r1, #4
+ add r7, r2, #0
+ bl FUN_02016998
+ mov r2, #0x1b
+ mov r1, #0
+ lsl r2, r2, #4
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ str r5, [r4, r1]
+ add r0, r1, #4
+ str r6, [r4, r0]
+ add r1, #8
+ str r7, [r4, r1]
+ ldr r0, _021D9160 ; =MOD73_021D9168
+ ldr r2, _021D9164 ; =0x00001388
+ add r1, r4, #0
+ bl FUN_0200CA98
+ mov r1, #0x6b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9160: .word MOD73_021D9168
+_021D9164: .word 0x00001388
+ thumb_func_end MOD73_021D9120
+
+ thumb_func_start MOD73_021D9168
+MOD73_021D9168: ; 0x021D9168
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r1, #0
+ mov r0, #0
+ str r0, [sp]
+ add r6, r7, #0
+_021D9174:
+ ldr r0, [r6]
+ cmp r0, #1
+ bne _021D91AA
+ mov r4, #0x1a
+ lsl r4, r4, #4
+ ldr r4, [r7, r4]
+ mov r3, #0x6a
+ mov ip, r4
+ ldr r4, [r6, #4]
+ mov r5, #0xc
+ mul r5, r4
+ str r5, [sp, #4]
+ lsl r3, r3, #2
+ add r2, r6, #0
+ ldr r4, [sp, #4]
+ mov r5, ip
+ ldr r1, [r6, #0x30]
+ ldr r3, [r7, r3]
+ ldr r4, [r5, r4]
+ mov r0, #0
+ add r2, #8
+ blx r4
+ add r0, r6, #0
+ mov r1, #0
+ mov r2, #0x34
+ bl Call_FillMemWithValue
+_021D91AA:
+ ldr r0, [sp]
+ add r6, #0x34
+ add r0, r0, #1
+ str r0, [sp]
+ cmp r0, #8
+ blt _021D9174
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9168
+
+ thumb_func_start MOD73_021D91BC
+MOD73_021D91BC: ; 0x021D91BC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D91BC
+
+ thumb_func_start MOD73_021D91D4
+MOD73_021D91D4: ; 0x021D91D4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r4, #0
+ str r2, [sp]
+ add r7, r1, #0
+ add r5, r3, #0
+ add r0, r4, #0
+ add r2, r6, #0
+_021D91E4:
+ ldr r1, [r2]
+ cmp r1, #0
+ bne _021D91F2
+ mov r1, #0x34
+ mul r1, r0
+ add r4, r6, r1
+ b _021D91FA
+_021D91F2:
+ add r0, r0, #1
+ add r2, #0x34
+ cmp r0, #8
+ blt _021D91E4
+_021D91FA:
+ cmp r4, #0
+ bne _021D9202
+ bl ErrorHandling
+_021D9202:
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ add r1, r7, #0
+ ldr r2, [r6, r0]
+ sub r1, #0x16
+ mov r0, #0xc
+ mul r0, r1
+ add r0, r2, r0
+ ldr r0, [r0, #4]
+ blx r0
+ cmp r0, r5
+ beq _021D921E
+ bl ErrorHandling
+_021D921E:
+ cmp r5, #0x26
+ blt _021D9226
+ bl ErrorHandling
+_021D9226:
+ sub r7, #0x16
+ str r7, [r4, #4]
+ cmp r5, #0
+ ble _021D923A
+ add r0, r4, #0
+ ldr r1, [sp]
+ add r0, #8
+ add r2, r5, #0
+ bl memcpy
+_021D923A:
+ str r5, [r4, #0x30]
+ mov r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D91D4
+
+ thumb_func_start MOD73_021D9244
+MOD73_021D9244: ; 0x021D9244
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r2, #0
+ mov r2, #0
+ bl FUN_02002E14
+ lsr r0, r0, #1
+ sub r0, r4, r0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9244
+
+ thumb_func_start MOD73_021D9258
+MOD73_021D9258: ; 0x021D9258
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ str r2, [sp]
+ mov r0, #0x7a
+ mov r2, #0
+ add r3, sp, #4
+ bl FUN_02006BB0
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ str r5, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, sp, #8
+ bl FUN_02013D98
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9258
+
+ thumb_func_start MOD73_021D9288
+MOD73_021D9288: ; 0x021D9288
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r3, r2, #0
+ mov r0, #0x7a
+ add r2, sp, #0
+ bl FUN_02006C08
+ add r4, r0, #0
+ ldr r0, [sp]
+ str r5, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ add r0, sp, #4
+ bl FUN_02013E14
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD73_021D9288
+
+ thumb_func_start MOD73_021D92B8
+MOD73_021D92B8: ; 0x021D92B8
+ push {r4, lr}
+ sub sp, #0x20
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ add r0, sp, #0
+ ldr r1, [sp, #0x28]
+ strh r3, [r0, #0xc]
+ strh r1, [r0, #0xe]
+ mov r2, #0
+ strh r2, [r0, #0x10]
+ mov r1, #0x1f
+ str r1, [sp, #0x14]
+ ldr r1, [sp, #0x2c]
+ str r1, [sp, #0x18]
+ strh r2, [r0, #0x1c]
+ add r0, sp, #0
+ bl FUN_02013E84
+ mov r1, #0
+ add r4, r0, #0
+ bl FUN_02013EB0
+ add r0, r4, #0
+ add sp, #0x20
+ pop {r4, pc}
+ thumb_func_end MOD73_021D92B8
+
+ thumb_func_start MOD73_021D92EC
+MOD73_021D92EC: ; 0x021D92EC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r6, r3, #0
+ add r7, r2, #0
+ add r1, r5, #4
+ add r2, r6, #0
+ bl FUN_02008C9C
+ str r0, [r5]
+ mov r4, #0
+_021D9302:
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_02008DEC
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021D9302
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021D92EC
+
+ thumb_func_start MOD73_021D931C
+MOD73_021D931C: ; 0x021D931C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl FUN_0201FD58
+ mov r4, #0
+ mov r6, #0x4b
+ str r4, [r5]
+ lsl r6, r6, #2
+_021D932E:
+ ldr r0, [r5, r6]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021D932E
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D931C
+
+ thumb_func_start MOD73_021D9340
+MOD73_021D9340: ; 0x021D9340
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ ldr r6, [sp, #0x58]
+ add r5, r0, #0
+ ldr r7, [sp, #0x5c]
+ str r6, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r7, [sp, #8]
+ str r0, [sp, #0xc]
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ add r4, r1, #0
+ str r3, [sp, #0x30]
+ str r2, [sp, #0x2c]
+ add r1, r2, #0
+ ldr r0, [r5, r0]
+ ldr r2, [sp, #0x4c]
+ mov r3, #0
+ bl FUN_02008F90
+ str r0, [r4]
+ str r6, [sp]
+ mov r1, #1
+ ldr r0, [sp, #0x48]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r7, [sp, #0xc]
+ mov r0, #0x13
+ str r1, [sp, #0x10]
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x30]
+ mov r3, #0
+ bl FUN_0200904C
+ str r0, [r4, #4]
+ mov r3, #0
+ str r3, [r4, #0x10]
+ str r6, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4d
+ str r7, [sp, #8]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x50]
+ bl FUN_020090AC
+ str r0, [r4, #8]
+ str r6, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4e
+ str r7, [sp, #8]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x54]
+ mov r3, #0
+ bl FUN_020090AC
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl FUN_02009B78
+ cmp r0, #0
+ bne _021D93D0
+ bl ErrorHandling
+_021D93D0:
+ ldr r0, [r4]
+ bl FUN_02009474
+ ldr r0, [r4, #4]
+ bl FUN_02009D68
+ cmp r0, #0
+ bne _021D93E4
+ bl ErrorHandling
+_021D93E4:
+ ldr r0, [r4, #4]
+ bl FUN_02009474
+ mov r0, #0
+ mov r2, #0x4b
+ str r6, [sp]
+ mvn r0, r0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ lsl r2, r2, #2
+ ldr r1, [r5, r2]
+ add r4, #0x14
+ str r1, [sp, #0x14]
+ add r1, r2, #4
+ ldr r1, [r5, r1]
+ add r3, r6, #0
+ str r1, [sp, #0x18]
+ add r1, r2, #0
+ add r1, #8
+ ldr r1, [r5, r1]
+ add r2, #0xc
+ str r1, [sp, #0x1c]
+ ldr r1, [r5, r2]
+ add r2, r6, #0
+ str r1, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_02008AA4
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021D9340
+
+ thumb_func_start MOD73_021D942C
+MOD73_021D942C: ; 0x021D942C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ ldr r6, [sp, #0x5c]
+ add r5, r0, #0
+ ldr r7, [sp, #0x60]
+ str r6, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r7, [sp, #8]
+ str r0, [sp, #0xc]
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ add r4, r1, #0
+ str r3, [sp, #0x30]
+ str r2, [sp, #0x2c]
+ add r1, r2, #0
+ ldr r0, [r5, r0]
+ ldr r2, [sp, #0x50]
+ mov r3, #0
+ bl FUN_02008F90
+ str r0, [r4]
+ ldr r0, [sp, #0x30]
+ str r0, [r4, #4]
+ mov r0, #1
+ str r0, [r4, #0x10]
+ ldr r0, [sp, #0x30]
+ bl FUN_02009530
+ str r0, [sp, #0x34]
+ str r6, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4d
+ str r7, [sp, #8]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x54]
+ mov r3, #0
+ bl FUN_020090AC
+ str r0, [r4, #8]
+ str r6, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4e
+ str r7, [sp, #8]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x58]
+ mov r3, #0
+ bl FUN_020090AC
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl FUN_02009B78
+ cmp r0, #0
+ bne _021D94AA
+ bl ErrorHandling
+_021D94AA:
+ ldr r0, [r4]
+ bl FUN_02009474
+ mov r0, #0
+ mov r2, #0x4b
+ str r6, [sp]
+ mvn r0, r0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ lsl r2, r2, #2
+ ldr r1, [r5, r2]
+ add r4, #0x14
+ str r1, [sp, #0x14]
+ add r1, r2, #4
+ ldr r1, [r5, r1]
+ add r3, r6, #0
+ str r1, [sp, #0x18]
+ add r1, r2, #0
+ add r1, #8
+ ldr r1, [r5, r1]
+ add r2, #0xc
+ str r1, [sp, #0x1c]
+ ldr r1, [r5, r2]
+ ldr r2, [sp, #0x34]
+ str r1, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_02008AA4
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D942C
+
+ thumb_func_start MOD73_021D94F4
+MOD73_021D94F4: ; 0x021D94F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r5, r0, #0
+ ldr r0, [r7]
+ bl FUN_02009C0C
+ ldr r0, [r7, #0x10]
+ cmp r0, #0
+ bne _021D950C
+ ldr r0, [r7, #4]
+ bl FUN_02009E04
+_021D950C:
+ mov r6, #0
+ add r4, r7, #0
+_021D9510:
+ cmp r6, #1
+ beq _021D9522
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r4]
+ bl FUN_02009490
+ b _021D9534
+_021D9522:
+ ldr r0, [r7, #0x10]
+ cmp r0, #0
+ bne _021D9534
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r4]
+ bl FUN_02009490
+_021D9534:
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r6, #4
+ blt _021D9510
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021D94F4
+
+ thumb_func_start MOD73_021D9540
+MOD73_021D9540: ; 0x021D9540
+ push {r4, lr}
+ sub sp, #0x20
+ ldr r0, [r0]
+ add r1, #0x14
+ str r0, [sp]
+ ldr r0, [sp, #0x28]
+ str r1, [sp, #4]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x2c]
+ str r2, [sp, #8]
+ str r0, [sp, #0x14]
+ mov r0, #1
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x30]
+ str r3, [sp, #0xc]
+ str r0, [sp, #0x1c]
+ add r0, sp, #0
+ bl FUN_0201FF84
+ add r4, r0, #0
+ bne _021D956E
+ bl ErrorHandling
+_021D956E:
+ add r0, r4, #0
+ add sp, #0x20
+ pop {r4, pc}
+ thumb_func_end MOD73_021D9540
+
+ thumb_func_start MOD73_021D9574
+MOD73_021D9574: ; 0x021D9574
+ str r1, [r0]
+ str r1, [r0, #4]
+ sub r1, r2, r1
+ str r1, [r0, #8]
+ str r3, [r0, #0x10]
+ mov r1, #0
+ str r1, [r0, #0xc]
+ bx lr
+ thumb_func_end MOD73_021D9574
+
+ thumb_func_start MOD73_021D9584
+MOD73_021D9584: ; 0x021D9584
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r2, [r4, #0xc]
+ ldr r0, [r4, #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
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #0xc
+ bl FX_Div
+ ldr r1, [r4, #4]
+ add r0, r0, r1
+ str r0, [r4]
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r0, r0, #1
+ cmp r0, r1
+ bgt _021D95C4
+ str r0, [r4, #0xc]
+ mov r0, #0
+ pop {r4, pc}
+_021D95C4:
+ str r1, [r4, #0xc]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9584
+
+ thumb_func_start MOD73_021D95CC
+MOD73_021D95CC: ; 0x021D95CC
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r4, [sp, #0x18]
+ add r5, r0, #0
+ add r7, r2, #0
+ add r0, r3, #0
+ add r6, r1, #0
+ lsl r2, r4, #0xc
+ str r3, [sp]
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ add r2, r0, #0
+ sub r0, r7, r6
+ mov r7, #2
+ mov r3, #0
+ lsl r7, r7, #0xa
+ add r2, r2, r7
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r1
+ sub r2, r0, r2
+ asr r1, r2, #0x1f
+ lsr r0, r2, #0x13
+ lsl r1, r1, #0xd
+ orr r1, r0
+ lsl r0, r2, #0xd
+ add r0, r0, r7
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ add r1, r4, #0
+ mul r1, r4
+ lsl r1, r1, #0xc
+ bl FX_Div
+ str r6, [r5]
+ ldr r1, [sp]
+ str r6, [r5, #4]
+ str r1, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r0, #0
+ str r0, [r5, #0x10]
+ str r4, [r5, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D95CC
+
+ thumb_func_start MOD73_021D962C
+MOD73_021D962C: ; 0x021D962C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r6, [r5, #0x10]
+ ldr r0, [r5, #8]
+ lsl r2, r6, #0xc
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsr r4, r2, #0xc
+ lsl r0, r1, #0x14
+ add r2, r6, #0
+ orr r4, r0
+ ldr r0, [r5, #0xc]
+ mul r2, r6
+ 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, r2, #2
+ bl FX_Div
+ ldr r1, [r5, #4]
+ add r0, r4, r0
+ add r0, r1, r0
+ str r0, [r5]
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5, #0x14]
+ add r0, r0, #1
+ cmp r0, r1
+ bgt _021D968C
+ str r0, [r5, #0x10]
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_021D968C:
+ str r1, [r5, #0x10]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D962C
+
+ thumb_func_start MOD73_021D9694
+MOD73_021D9694: ; 0x021D9694
+ push {r4}
+ sub sp, #0xc
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ add r2, sp, #0
+ add r4, r0, #0
+ str r1, [sp]
+ ldmia r2!, {r0, r1}
+ stmia r4!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r4]
+ add sp, #0xc
+ pop {r4}
+ bx lr
+ thumb_func_end MOD73_021D9694
+
+ thumb_func_start MOD73_021D96B0
+MOD73_021D96B0: ; 0x021D96B0
+ push {r3, r4, r5, lr}
+ mov r2, #0x1f
+ add r4, r1, #0
+ mov r1, #0
+ lsl r2, r2, #4
+ add r5, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x42
+ lsl r0, r0, #2
+ str r4, [r5, r0]
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD73_021D96B0
+
+ thumb_func_start MOD73_021D96C8
+MOD73_021D96C8: ; 0x021D96C8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D96D6
+ bl ErrorHandling
+_021D96D6:
+ mov r2, #0x1f
+ add r0, r4, #0
+ mov r1, #0
+ lsl r2, r2, #4
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ thumb_func_end MOD73_021D96C8
+
+ thumb_func_start MOD73_021D96E4
+MOD73_021D96E4: ; 0x021D96E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ str r0, [sp, #0x18]
+ ldr r4, [sp, #0x18]
+ mov r0, #0
+ ldr r6, [sp, #0x40]
+ ldr r5, [sp, #0x18]
+ str r1, [sp, #0x1c]
+ add r7, r2, #0
+ str r3, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r4, #0x28
+_021D96FE:
+ ldr r0, [sp, #0x1c]
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _021D977A
+ mov r0, #1
+ str r0, [sp]
+ add r0, r3, #0
+ sub r0, #0x8f
+ str r0, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ mov r0, #4
+ str r0, [sp, #0xc]
+ mov r0, #0xfa
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ add r1, r4, #0
+ mov r2, #0x35
+ sub r3, #0x4f
+ str r6, [sp, #0x14]
+ bl MOD73_021D9340
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r2, #0
+ add r0, r7, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ str r6, [sp, #8]
+ bl MOD73_021D9540
+ mov r1, #0
+ str r0, [r5, #8]
+ bl FUN_020200A0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r2, #0
+ ldr r1, [sp, #0x20]
+ str r6, [sp, #8]
+ add r0, r7, #0
+ add r3, r2, #0
+ bl MOD73_021D9540
+ str r0, [r5, #0x18]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, [sp, #0x24]
+ add r4, #0x38
+ add r0, r0, #1
+ add r5, r5, #4
+ str r0, [sp, #0x24]
+_021D977A:
+ mov r0, #0x42
+ ldr r1, [sp, #0x18]
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ ldr r0, [sp, #0x24]
+ cmp r1, r0
+ beq _021D9798
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #4
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x28]
+ add r0, r0, #1
+ str r0, [sp, #0x28]
+ cmp r0, #4
+ blt _021D96FE
+_021D9798:
+ ldr r0, [sp, #0x18]
+ mov r1, #1
+ str r1, [r0]
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D96E4
+
+ thumb_func_start MOD73_021D97A4
+MOD73_021D97A4: ; 0x021D97A4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, [r7]
+ str r1, [sp]
+ cmp r0, #1
+ beq _021D97B4
+ bl ErrorHandling
+_021D97B4:
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r4, #0
+ cmp r0, #0
+ ble _021D97EA
+ add r6, r7, #0
+ add r5, r7, #0
+ add r6, #0x28
+_021D97C6:
+ ldr r0, [r5, #8]
+ bl FUN_0201FFC8
+ ldr r0, [r5, #0x18]
+ bl FUN_0201FFC8
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD73_021D94F4
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0x38
+ cmp r4, r0
+ blt _021D97C6
+_021D97EA:
+ mov r0, #0
+ str r0, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021D97A4
+
+ thumb_func_start MOD73_021D97F0
+MOD73_021D97F0: ; 0x021D97F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r0, [sp, #4]
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _021D9800
+ bl ErrorHandling
+_021D9800:
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r2, #0x42
+ ldr r0, [sp, #4]
+ lsl r2, r2, #2
+ ldr r0, [r0, r2]
+ cmp r0, #0
+ ble _021D98A0
+ ldr r0, [sp, #4]
+ add r1, r2, #4
+ add r0, r0, r1
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r2, #0x64
+ ldr r4, _021D98B4 ; =0x021DBE2C
+ add r7, r0, r2
+ add r6, r0, #0
+ add r5, r0, #0
+_021D9824:
+ ldrb r0, [r4, #0x10]
+ mov r1, #8
+ mov r2, #0xa
+ str r0, [sp]
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [sp, #8]
+ ldr r3, [r4]
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xc
+ bl MOD73_021D95CC
+ ldrb r0, [r4, #0x10]
+ mov r1, #0xc
+ mov r2, #0xe
+ str r0, [sp]
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #4]
+ add r0, r7, #0
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xc
+ bl MOD73_021D95CC
+ mov r1, #0x43
+ mov r2, #0x5b
+ lsl r1, r1, #2
+ lsl r2, r2, #2
+ ldr r1, [r6, r1]
+ ldr r2, [r6, r2]
+ add r0, sp, #0x10
+ mov r3, #0
+ bl MOD73_021D9694
+ ldr r0, [r5, #8]
+ add r1, sp, #0x10
+ bl FUN_02020044
+ mov r0, #0x73
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ ldrb r1, [r4, #0x11]
+ add r0, #0x10
+ add r4, #0x14
+ str r1, [r5, r0]
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #4]
+ add r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ add r7, #0x18
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ ldr r0, [sp, #0xc]
+ add r6, #0x18
+ add r5, r5, #4
+ cmp r0, r1
+ blt _021D9824
+_021D98A0:
+ mov r1, #0x7b
+ ldr r0, [sp, #4]
+ mov r2, #0
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ mov r1, #1
+ str r1, [r0, #4]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D98B4: .word 0x021DBE2C
+ thumb_func_end MOD73_021D97F0
+
+ thumb_func_start MOD73_021D98B8
+MOD73_021D98B8: ; 0x021D98B8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r0, #0
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [r6, #4]
+ cmp r0, #0
+ bne _021D98CE
+ add sp, #0x1c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021D98CE:
+ mov r0, #0x7b
+ lsl r0, r0, #2
+ add r1, r0, #0
+ sub r1, #0xe4
+ ldr r2, [r6, r0]
+ ldr r1, [r6, r1]
+ cmp r2, r1
+ bge _021D991E
+ add r1, r0, #0
+ sub r1, #0x10
+ add r1, r6, r1
+ lsl r3, r2, #2
+ ldr r2, [r1, r3]
+ sub r2, r2, #1
+ str r2, [r1, r3]
+ ldr r1, [r6, r0]
+ lsl r1, r1, #2
+ add r2, r6, r1
+ add r1, r0, #0
+ sub r1, #0x10
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bgt _021D991E
+ add r3, r0, #0
+ mov r1, #1
+ sub r3, #0x20
+ str r1, [r2, r3]
+ ldr r0, [r6, r0]
+ lsl r0, r0, #2
+ add r0, r6, r0
+ ldr r0, [r0, #8]
+ bl FUN_020200A0
+ mov r1, #0x7b
+ lsl r1, r1, #2
+ ldr r2, [r6, r1]
+ add r0, r2, #2
+ str r0, [sp, #4]
+ add r0, r2, #1
+ str r0, [r6, r1]
+_021D991E:
+ mov r1, #0x42
+ mov r0, #0
+ lsl r1, r1, #2
+ str r0, [sp, #8]
+ ldr r0, [r6, r1]
+ cmp r0, #0
+ ble _021D9A02
+ add r0, r1, #4
+ add r0, r6, r0
+ add r1, #0x64
+ add r4, r6, #0
+ str r0, [sp]
+ add r7, r6, r1
+ add r5, r6, #0
+_021D993A:
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #3
+ bhi _021D99E0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D9950: ; jump table
+ .short _021D99E4 - _021D9950 - 2 ; case 0
+ .short _021D9958 - _021D9950 - 2 ; case 1
+ .short _021D99BE - _021D9950 - 2 ; case 2
+ .short _021D99E4 - _021D9950 - 2 ; case 3
+_021D9958:
+ ldr r0, [sp]
+ bl MOD73_021D962C
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD73_021D962C
+ mov r1, #0x43
+ mov r2, #0x5b
+ lsl r1, r1, #2
+ lsl r2, r2, #2
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ add r0, sp, #0x10
+ mov r3, #0
+ bl MOD73_021D9694
+ ldr r0, [r4, #8]
+ add r1, sp, #0x10
+ bl FUN_02020044
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _021D99E4
+ ldr r0, [r4, #0x18]
+ add r1, sp, #0x10
+ bl FUN_02020044
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, _021D9A24 ; =0x000006BC
+ bl FUN_020054C8
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r0, #1
+ mov r0, #0x73
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _021D99E4
+_021D99BE:
+ ldr r0, [r4, #0x18]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _021D99E4
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r0, #1
+ mov r0, #0x73
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _021D99E4
+_021D99E0:
+ bl ErrorHandling
+_021D99E4:
+ ldr r0, [sp]
+ add r4, r4, #4
+ add r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #8]
+ add r7, #0x18
+ add r0, r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ ldr r1, [sp, #8]
+ add r5, #0x18
+ cmp r1, r0
+ blt _021D993A
+_021D9A02:
+ sub r0, r0, #1
+ lsl r0, r0, #2
+ add r1, r6, r0
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #3
+ bne _021D9A1C
+ mov r0, #0
+ str r0, [r6, #4]
+ add sp, #0x1c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021D9A1C:
+ ldr r0, [sp, #4]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D9A24: .word 0x000006BC
+ thumb_func_end MOD73_021D98B8
+
+ thumb_func_start MOD73_021D9A28
+MOD73_021D9A28: ; 0x021D9A28
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #0x34
+ add r7, r3, #0
+ bl Call_FillMemWithValue
+ str r6, [r5, #0x18]
+ ldr r0, [sp, #0x1c]
+ str r4, [r5, #0x14]
+ str r0, [r5]
+ ldr r0, [sp, #0x18]
+ str r7, [r5, #0x1c]
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9A28
+
+ thumb_func_start MOD73_021D9A4C
+MOD73_021D9A4C: ; 0x021D9A4C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _021D9A5A
+ bl ErrorHandling
+_021D9A5A:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x34
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9A4C
+
+ thumb_func_start MOD73_021D9A68
+MOD73_021D9A68: ; 0x021D9A68
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x30]
+ add r4, r1, #0
+ add r6, r2, #0
+ cmp r0, #0
+ beq _021D9A7A
+ bl ErrorHandling
+_021D9A7A:
+ add r0, r5, #0
+ add r1, r6, #0
+ str r4, [r5, #4]
+ bl MOD73_021D9BE0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD73_021D9CA0
+ mov r0, #1
+ str r0, [r5, #0x30]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9A68
+
+ thumb_func_start MOD73_021D9A94
+MOD73_021D9A94: ; 0x021D9A94
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ cmp r0, #1
+ beq _021D9AA2
+ bl ErrorHandling
+_021D9AA2:
+ add r0, r4, #0
+ bl MOD73_021D9C7C
+ add r0, r4, #0
+ bl MOD73_021D9D48
+ mov r0, #0
+ str r0, [r4, #0x30]
+ pop {r4, pc}
+ thumb_func_end MOD73_021D9A94
+
+ thumb_func_start MOD73_021D9AB4
+MOD73_021D9AB4: ; 0x021D9AB4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl FUN_02019570
+ ldr r0, [r4, #4]
+ mov r1, #4
+ bl FUN_02018744
+ pop {r4, pc}
+ thumb_func_end MOD73_021D9AB4
+
+ thumb_func_start MOD73_021D9AC8
+MOD73_021D9AC8: ; 0x021D9AC8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r1, [r4, #0x18]
+ mov r2, #0
+ ldr r0, [r4, #8]
+ ldr r1, [r1, #0xc]
+ add r3, r2, #0
+ bl MOD73_021D9D5C
+ mov r1, #0
+ ldr r0, [r4, #8]
+ mov r2, #1
+ add r3, r1, #0
+ bl FUN_0200D0BC
+ pop {r4, pc}
+ thumb_func_end MOD73_021D9AC8
+
+ thumb_func_start MOD73_021D9AF0
+MOD73_021D9AF0: ; 0x021D9AF0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ ldr r0, [r5, #0x14]
+ cmp r0, #1
+ beq _021D9BDC
+ mov r4, #0
+ cmp r0, #0
+ ble _021D9BCE
+_021D9B02:
+ lsr r2, r4, #0x1f
+ lsl r1, r4, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r1, r2, r1
+ add r2, r4, r2
+ asr r2, r2, #1
+ mov r0, #0xc
+ add r6, r1, #0
+ mul r6, r0
+ lsl r0, r2, #2
+ add r2, r2, r0
+ str r2, [sp, #0x1c]
+ mov r2, #0xa
+ str r2, [sp]
+ mov r2, #4
+ str r2, [sp, #4]
+ ldr r2, [r5, #0x2c]
+ lsl r0, r0, #0x18
+ add r2, #0xc
+ str r2, [sp, #8]
+ mov r2, #0xa
+ mul r2, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0xc]
+ lsr r0, r0, #0x18
+ ldr r3, [sp, #0x1c]
+ str r0, [sp, #0x10]
+ mov r0, #0x14
+ str r0, [sp, #0x14]
+ mov r0, #8
+ add r2, r6, #5
+ add r3, #0xd
+ str r0, [sp, #0x18]
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r5, #4]
+ mov r1, #5
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02018170
+ mov r0, #0xa
+ ldr r3, [sp, #0x1c]
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ add r2, r6, #5
+ add r3, #0xd
+ str r0, [sp, #8]
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r5, #4]
+ mov r1, #5
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_020186B4
+ ldr r7, [r5, #0x1c]
+ mov r2, #0x13
+ ldr r0, [r5, #0x18]
+ add r3, r7, r4
+ lsl r2, r2, #4
+ ldrb r2, [r3, r2]
+ ldr r0, [r0, #4]
+ mov r1, #0
+ lsl r2, r2, #2
+ add r3, r7, r2
+ mov r2, #0x4d
+ lsl r2, r2, #2
+ ldr r2, [r3, r2]
+ bl FUN_0200ABC0
+ ldr r2, [r5, #0x18]
+ ldr r0, [r2, #4]
+ ldr r1, [r2, #8]
+ ldr r2, [r2, #0x14]
+ bl FUN_0200B7B8
+ ldr r1, [r5, #0x18]
+ lsl r0, r6, #3
+ ldr r1, [r1, #8]
+ add r0, #0x20
+ mov r2, #1
+ bl MOD73_021D9244
+ ldr r1, [r5, #0x18]
+ ldr r3, [sp, #0x1c]
+ add r2, r0, #0
+ lsl r3, r3, #3
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1, #8]
+ add r3, #8
+ bl MOD73_021D9D5C
+ ldr r0, [r5, #0x14]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _021D9B02
+_021D9BCE:
+ ldr r0, [r5, #0xc]
+ bl FUN_02019220
+ ldr r0, [r5, #4]
+ mov r1, #5
+ bl FUN_0201AC68
+_021D9BDC:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021D9AF0
+
+ thumb_func_start MOD73_021D9BE0
+MOD73_021D9BE0: ; 0x021D9BE0
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018FF4
+ str r0, [r5, #8]
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018FF4
+ str r0, [r5, #0xc]
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x17
+ str r0, [sp, #4]
+ mov r2, #4
+ str r2, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ ldr r1, [r5, #8]
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #0x14
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ ldr r1, [r5, #0xc]
+ mov r2, #4
+ mov r3, #6
+ bl FUN_02019064
+ ldr r0, [r5, #8]
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r5, #0x10]
+ mov r1, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ str r4, [sp, #4]
+ ldr r0, [r5, #4]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0200CD68
+ mov r0, #4
+ mov r1, #0x20
+ add r2, r4, #0
+ bl FUN_02002EEC
+ mov r1, #1
+ ldr r0, [r5, #8]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200D0BC
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9BE0
+
+ thumb_func_start MOD73_021D9C7C
+MOD73_021D9C7C: ; 0x021D9C7C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl FUN_02019178
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020191A4
+ ldr r0, [r4, #0xc]
+ bl FUN_02019178
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_020191A4
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9C7C
+
+ thumb_func_start MOD73_021D9CA0
+MOD73_021D9CA0: ; 0x021D9CA0
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ mov r3, #0x40
+ add r5, r0, #0
+ add r4, r1, #0
+ str r3, [sp]
+ mov r0, #0x7a
+ mov r1, #1
+ mov r2, #4
+ str r4, [sp, #4]
+ bl FUN_02006930
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ str r4, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7a
+ mov r3, #5
+ bl FUN_0200687C
+ ldr r0, [r5, #0x14]
+ cmp r0, #1
+ bne _021D9CD6
+ mov r1, #2
+ b _021D9CD8
+_021D9CD6:
+ mov r1, #3
+_021D9CD8:
+ add r3, r5, #0
+ str r4, [sp]
+ mov r0, #0x7a
+ mov r2, #0
+ add r3, #0x24
+ bl FUN_02006BDC
+ str r0, [r5, #0x20]
+ ldr r2, [r5, #0x24]
+ mov r3, #0
+ str r3, [sp]
+ ldrh r0, [r2]
+ mov r1, #5
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldrh r0, [r2, #2]
+ add r2, #0xc
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [r5, #4]
+ bl FUN_02018148
+ ldr r1, [r5, #0x24]
+ mov r2, #0
+ ldrh r0, [r1]
+ add r3, r2, #0
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrh r0, [r1, #2]
+ mov r1, #5
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ ldr r0, [r5, #4]
+ bl FUN_020186B4
+ add r3, r5, #0
+ str r4, [sp]
+ mov r0, #0x7a
+ mov r1, #4
+ mov r2, #0
+ add r3, #0x2c
+ bl FUN_02006BDC
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #4]
+ mov r1, #5
+ bl FUN_0201AC68
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD73_021D9CA0
+
+ thumb_func_start MOD73_021D9D48
+MOD73_021D9D48: ; 0x021D9D48
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x28]
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9D48
+
+ thumb_func_start MOD73_021D9D5C
+MOD73_021D9D5C: ; 0x021D9D5C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r4, r2, #0
+ str r3, [sp]
+ mov r2, #0
+ ldr r1, _021D9D80 ; =0x0001020F
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ mov r1, #1
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D9D80: .word 0x0001020F
+ thumb_func_end MOD73_021D9D5C
+
+ thumb_func_start MOD73_021D9D84
+MOD73_021D9D84: ; 0x021D9D84
+ mov r1, #0
+ strb r1, [r0]
+ strb r1, [r0, #1]
+ strb r1, [r0, #2]
+ strb r1, [r0, #3]
+ strb r1, [r0, #4]
+ strb r1, [r0, #5]
+ strb r1, [r0, #6]
+ strb r1, [r0, #7]
+ strb r1, [r0, #8]
+ strb r1, [r0, #9]
+ strb r1, [r0, #0xa]
+ strb r1, [r0, #0xb]
+ bx lr
+ thumb_func_end MOD73_021D9D84
+
+ thumb_func_start MOD73_021D9DA0
+MOD73_021D9DA0: ; 0x021D9DA0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D9DAE
+ bl ErrorHandling
+_021D9DAE:
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ strb r0, [r4, #2]
+ strb r0, [r4, #3]
+ strb r0, [r4, #4]
+ strb r0, [r4, #5]
+ strb r0, [r4, #6]
+ strb r0, [r4, #7]
+ strb r0, [r4, #8]
+ strb r0, [r4, #9]
+ strb r0, [r4, #0xa]
+ strb r0, [r4, #0xb]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9DA0
+
+ thumb_func_start MOD73_021D9DCC
+MOD73_021D9DCC: ; 0x021D9DCC
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r1, #0
+ ldr r3, [sp, #0x18]
+ mov r1, #0x38
+ mul r1, r3
+ add r1, r2, r1
+ mov r2, #2
+ mov r3, #6
+ lsl r2, r2, #0x12
+ lsl r3, r3, #0x10
+ bl MOD73_021D9540
+ str r0, [r4, #8]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4, #8]
+ ldr r1, [sp, #0x1c]
+ bl FUN_02020130
+ mov r0, #1
+ str r0, [r4]
+ add sp, #0xc
+ pop {r3, r4, pc}
+ thumb_func_end MOD73_021D9DCC
+
+ thumb_func_start MOD73_021D9E08
+MOD73_021D9E08: ; 0x021D9E08
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #1
+ beq _021D9E16
+ bl ErrorHandling
+_021D9E16:
+ ldr r0, [r4, #8]
+ bl FUN_0201FFC8
+ mov r0, #0
+ str r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9E08
+
+ thumb_func_start MOD73_021D9E24
+MOD73_021D9E24: ; 0x021D9E24
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020200BC
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9E24
+
+ thumb_func_start MOD73_021D9E3C
+MOD73_021D9E3C: ; 0x021D9E3C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x2a
+ lsl r0, r0, #0xe
+ str r0, [sp]
+ mov r0, #0xf
+ lsl r0, r0, #0xe
+ str r0, [sp, #4]
+ ldr r0, [r4, #8]
+ add r1, sp, #0
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9E3C
+
+ thumb_func_start MOD73_021D9E6C
+MOD73_021D9E6C: ; 0x021D9E6C
+ push {r3, lr}
+ ldr r0, [r0, #8]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _021D9E7C
+ mov r0, #1
+ pop {r3, pc}
+_021D9E7C:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD73_021D9E6C
+
+ thumb_func_start MOD73_021D9E80
+MOD73_021D9E80: ; 0x021D9E80
+ ldr r3, _021D9E88 ; =Call_FillMemWithValue
+ mov r1, #0
+ mov r2, #0x78
+ bx r3
+ .align 2, 0
+_021D9E88: .word Call_FillMemWithValue
+ thumb_func_end MOD73_021D9E80
+
+ thumb_func_start MOD73_021D9E8C
+MOD73_021D9E8C: ; 0x021D9E8C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x74]
+ cmp r0, #0
+ beq _021D9E9A
+ bl ErrorHandling
+_021D9E9A:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x78
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9E8C
+
+ thumb_func_start MOD73_021D9EA8
+MOD73_021D9EA8: ; 0x021D9EA8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp, #8]
+ ldr r0, [r0, #0x74]
+ add r7, r2, #0
+ str r1, [sp, #0xc]
+ cmp r0, #0
+ beq _021D9EBC
+ bl ErrorHandling
+_021D9EBC:
+ ldr r4, _021D9F5C ; =0x021DBDE4
+ ldr r5, [sp, #8]
+ mov r6, #0
+_021D9EC2:
+ ldrb r1, [r4]
+ ldr r0, [sp, #0xc]
+ add r2, r7, #0
+ bl MOD73_021D9258
+ add r6, r6, #1
+ add r4, r4, #1
+ stmia r5!, {r0}
+ cmp r6, #6
+ blt _021D9EC2
+ ldr r4, _021D9F60 ; =0x021DBE04
+ ldr r5, [sp, #8]
+ mov r6, #0
+_021D9EDC:
+ ldrb r1, [r4]
+ ldr r0, [sp, #0xc]
+ add r2, r7, #0
+ bl MOD73_021D9288
+ str r0, [r5, #0x18]
+ add r6, r6, #1
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r6, #8
+ blt _021D9EDC
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, _021D9F64 ; =0x021DBDF4
+ ldr r6, _021D9F68 ; =0x021DBDFC
+ ldr r4, _021D9F6C ; =0x021DBE0C
+ ldr r5, [sp, #8]
+ ldr r7, _021D9F70 ; =0x021DBDEC
+ str r0, [sp, #0x14]
+_021D9F02:
+ ldrb r0, [r6]
+ str r0, [sp]
+ ldr r0, [sp, #0x14]
+ ldrb r0, [r0]
+ str r0, [sp, #4]
+ ldrb r1, [r7]
+ ldrb r3, [r4]
+ ldr r0, [sp, #0xc]
+ lsl r2, r1, #2
+ ldr r1, [sp, #8]
+ ldr r1, [r1, r2]
+ ldr r2, [r5, #0x18]
+ bl MOD73_021D92B8
+ str r0, [r5, #0x38]
+ ldrb r2, [r4]
+ mov r1, #0x80
+ ldrb r3, [r6]
+ sub r1, r1, r2
+ mov r2, #0x60
+ sub r2, r2, r3
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_02013ED8
+ ldr r0, [sp, #0x14]
+ add r6, r6, #1
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r4, r4, #1
+ add r0, r0, #1
+ add r5, r5, #4
+ add r7, r7, #1
+ str r0, [sp, #0x10]
+ cmp r0, #8
+ blt _021D9F02
+ ldr r0, [sp, #8]
+ mov r1, #1
+ str r1, [r0, #0x74]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9F5C: .word 0x021DBDE4
+_021D9F60: .word 0x021DBE04
+_021D9F64: .word 0x021DBDF4
+_021D9F68: .word 0x021DBDFC
+_021D9F6C: .word 0x021DBE0C
+_021D9F70: .word 0x021DBDEC
+ thumb_func_end MOD73_021D9EA8
+
+ thumb_func_start MOD73_021D9F74
+MOD73_021D9F74: ; 0x021D9F74
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x74]
+ cmp r0, #1
+ beq _021D9F82
+ bl ErrorHandling
+_021D9F82:
+ mov r4, #0
+ add r5, r6, #0
+_021D9F86:
+ ldr r0, [r5, #0x38]
+ bl FUN_02013EA8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #8
+ blt _021D9F86
+ mov r5, #0
+ add r4, r6, #0
+_021D9F98:
+ ldr r0, [r4]
+ bl FUN_02013DD4
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #6
+ blt _021D9F98
+ mov r5, #0
+ add r4, r6, #0
+_021D9FAA:
+ ldr r0, [r4, #0x18]
+ bl FUN_02013E44
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #8
+ blt _021D9FAA
+ mov r0, #0
+ str r0, [r6, #0x74]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9F74
+
+ thumb_func_start MOD73_021D9FC0
+MOD73_021D9FC0: ; 0x021D9FC0
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #8
+ blo _021D9FD0
+ bl ErrorHandling
+_021D9FD0:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x38]
+ add r1, r6, #0
+ bl FUN_02013EB0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9FC0
+
+ thumb_func_start MOD73_021D9FE0
+MOD73_021D9FE0: ; 0x021D9FE0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #5
+ add r5, #0x14
+_021D9FEA:
+ ldr r0, [r5, #0x38]
+ add r1, r6, #0
+ bl FUN_02013F2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #7
+ ble _021D9FEA
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD73_021D9FE0
+
+ thumb_func_start MOD73_021D9FFC
+MOD73_021D9FFC: ; 0x021D9FFC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #5
+ add r5, #0x14
+_021DA006:
+ ldr r0, [r5, #0x38]
+ add r1, r6, #0
+ add r2, r6, #0
+ bl FUN_02013EE0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #7
+ ble _021DA006
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9FFC
+
+ thumb_func_start MOD73_021DA01C
+MOD73_021DA01C: ; 0x021DA01C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #8
+ blo _021DA02C
+ bl ErrorHandling
+_021DA02C:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ lsl r1, r6, #0x18
+ ldr r0, [r0, #0x38]
+ lsr r1, r1, #0x18
+ bl FUN_02013F04
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD73_021DA01C
+
+ thumb_func_start MOD73_021DA03C
+MOD73_021DA03C: ; 0x021DA03C
+ push {r3, lr}
+ mov r2, #1
+ str r2, [r0, #0x6c]
+ mov r1, #0
+ str r1, [r0, #0x70]
+ lsl r1, r2, #0xc
+ ldr r2, _021DA054 ; =0x00000FAE
+ add r0, #0x58
+ mov r3, #4
+ bl MOD73_021D9574
+ pop {r3, pc}
+ .align 2, 0
+_021DA054: .word 0x00000FAE
+ thumb_func_end MOD73_021DA03C
+
+ thumb_func_start MOD73_021DA058
+MOD73_021DA058: ; 0x021DA058
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x6c]
+ add r3, r1, #0
+ cmp r0, #0
+ beq _021DA06A
+ cmp r0, #1
+ beq _021DA0A4
+ b _021DA0CE
+_021DA06A:
+ ldr r0, [r5, #0x70]
+ cmp r0, #0
+ bne _021DA088
+ ldr r1, _021DA0D4 ; =0x021DBE14
+ lsl r4, r3, #2
+ ldr r2, _021DA0D8 ; =0x021DBE20
+ ldr r1, [r1, r4]
+ ldr r2, [r2, r4]
+ ldr r4, _021DA0DC ; =0x021DBDE0
+ add r0, r5, #0
+ ldrb r3, [r4, r3]
+ add r0, #0x58
+ bl MOD73_021D9574
+ b _021DA09E
+_021DA088:
+ ldr r1, _021DA0D8 ; =0x021DBE20
+ lsl r4, r3, #2
+ ldr r2, _021DA0D4 ; =0x021DBE14
+ ldr r1, [r1, r4]
+ ldr r2, [r2, r4]
+ ldr r4, _021DA0DC ; =0x021DBDE0
+ add r0, r5, #0
+ ldrb r3, [r4, r3]
+ add r0, #0x58
+ bl MOD73_021D9574
+_021DA09E:
+ ldr r0, [r5, #0x6c]
+ add r0, r0, #1
+ str r0, [r5, #0x6c]
+_021DA0A4:
+ add r0, r5, #0
+ add r0, #0x58
+ bl MOD73_021D9584
+ add r7, r0, #0
+ mov r6, #0
+ add r4, r5, #0
+_021DA0B2:
+ ldr r1, [r5, #0x58]
+ ldr r0, [r4, #0x38]
+ add r2, r1, #0
+ bl FUN_02013EE0
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #2
+ ble _021DA0B2
+ cmp r7, #1
+ bne _021DA0D2
+ mov r0, #0
+ str r0, [r5, #0x6c]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA0CE:
+ bl ErrorHandling
+_021DA0D2:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DA0D4: .word 0x021DBE14
+_021DA0D8: .word 0x021DBE20
+_021DA0DC: .word 0x021DBDE0
+ thumb_func_end MOD73_021DA058
+
+ thumb_func_start MOD73_021DA0E0
+MOD73_021DA0E0: ; 0x021DA0E0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ mov r1, #0
+ mov r2, #0x20
+ add r5, r0, #0
+ add r7, r3, #0
+ bl Call_FillMemWithValue
+ str r4, [r5, #0x14]
+ str r6, [r5, #0x18]
+ str r7, [r5, #0x1c]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA0E0
+
+ thumb_func_start MOD73_021DA0FC
+MOD73_021DA0FC: ; 0x021DA0FC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021DA10A
+ bl ErrorHandling
+_021DA10A:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x20
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA0FC
+
+ thumb_func_start MOD73_021DA118
+MOD73_021DA118: ; 0x021DA118
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r0, [sp, #0xc]
+ mov r0, #2
+ lsl r0, r0, #0x12
+ str r0, [sp, #0x14]
+ mov r0, #6
+ add r6, r2, #0
+ lsl r0, r0, #0x10
+ ldr r5, [sp, #0xc]
+ str r1, [sp, #0x10]
+ add r7, r3, #0
+ str r0, [sp, #0x18]
+ mov r4, #0
+ add r6, #0x38
+_021DA136:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x10]
+ str r7, [sp, #8]
+ add r1, r6, #0
+ mov r2, #0x80
+ mov r3, #0x60
+ bl MOD73_021D9540
+ str r0, [r5, #4]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r5, #4]
+ add r1, r4, #4
+ bl FUN_02020130
+ ldr r0, [r5, #4]
+ add r1, sp, #0x14
+ bl FUN_02020044
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021DA136
+ ldr r0, [sp, #0xc]
+ mov r1, #1
+ str r1, [r0]
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA118
+
+ thumb_func_start MOD73_021DA178
+MOD73_021DA178: ; 0x021DA178
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_021DA180:
+ ldr r0, [r5, #4]
+ bl FUN_0201FFC8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021DA180
+ mov r0, #0
+ str r0, [r6]
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD73_021DA178
+
+ thumb_func_start MOD73_021DA194
+MOD73_021DA194: ; 0x021DA194
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ ldr r7, [r6, #0x14]
+ ldr r0, [r6, #0x18]
+ add r7, #0x98
+ mov r4, #0
+ cmp r0, #0
+ bls _021DA1D2
+ add r5, r6, #0
+_021DA1A8:
+ ldr r0, [r6, #0x14]
+ add r1, r0, r4
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldrb r1, [r1, r0]
+ add r0, r7, r1
+ ldrb r1, [r7, r1]
+ lsl r1, r1, #0xc
+ str r1, [sp]
+ ldrb r0, [r0, #4]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ bl FUN_02020044
+ ldr r0, [r6, #0x18]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blo _021DA1A8
+_021DA1D2:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA194
+
+ thumb_func_start MOD73_021DA1D8
+MOD73_021DA1D8: ; 0x021DA1D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ mov r4, #0
+ str r1, [sp]
+ cmp r0, #0
+ bls _021DA20E
+ add r6, r5, #0
+_021DA1E8:
+ ldr r0, [r5, #0x14]
+ add r1, r0, r4
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldrb r7, [r1, r0]
+ ldr r0, [r5, #0x1c]
+ bl MOD73_021D910C
+ cmp r7, r0
+ beq _021DA204
+ ldr r0, [r6, #4]
+ ldr r1, [sp]
+ bl FUN_020200A0
+_021DA204:
+ ldr r0, [r5, #0x18]
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r4, r0
+ blo _021DA1E8
+_021DA20E:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021DA1D8
+
+ thumb_func_start MOD73_021DA210
+MOD73_021DA210: ; 0x021DA210
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #0x34
+ add r7, r3, #0
+ bl Call_FillMemWithValue
+ str r6, [r5, #0x1c]
+ ldr r0, [sp, #0x1c]
+ str r4, [r5, #0x20]
+ str r0, [r5]
+ ldr r0, [sp, #0x18]
+ str r7, [r5, #0x24]
+ str r0, [r5, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA210
+
+ thumb_func_start MOD73_021DA234
+MOD73_021DA234: ; 0x021DA234
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _021DA242
+ bl ErrorHandling
+_021DA242:
+ add r0, r4, #0
+ bl MOD73_021DA4AC
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x34
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ thumb_func_end MOD73_021DA234
+
+ thumb_func_start MOD73_021DA254
+MOD73_021DA254: ; 0x021DA254
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x28]
+ add r4, r1, #0
+ add r6, r2, #0
+ cmp r0, #0
+ beq _021DA266
+ bl ErrorHandling
+_021DA266:
+ add r0, r5, #0
+ add r1, r6, #0
+ str r4, [r5, #4]
+ bl MOD73_021DA2AC
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD73_021DA374
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #1
+ str r0, [r5, #0x28]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA254
+
+ thumb_func_start MOD73_021DA290
+MOD73_021DA290: ; 0x021DA290
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ cmp r0, #1
+ beq _021DA29E
+ bl ErrorHandling
+_021DA29E:
+ add r0, r4, #0
+ bl MOD73_021DA354
+ mov r0, #0
+ str r0, [r4, #0x28]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA290
+
+ thumb_func_start MOD73_021DA2AC
+MOD73_021DA2AC: ; 0x021DA2AC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r0, #0
+ ldr r0, [r7, #0x18]
+ str r1, [sp, #0x14]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ add r0, r1, #0
+ str r0, [sp, #4]
+ ldr r0, [r7, #4]
+ mov r1, #2
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0200CD68
+ ldr r2, [sp, #0x14]
+ mov r0, #0
+ mov r1, #0x40
+ bl FUN_02002EEC
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ str r0, [sp, #4]
+ ldr r0, [r7, #4]
+ mov r2, #0x1f
+ mov r3, #1
+ bl FUN_0200CB00
+ ldr r2, [sp, #0x14]
+ mov r0, #0
+ mov r1, #0x60
+ bl FUN_02002ED0
+ ldr r5, _021DA350 ; =0x021DBF80
+ mov r6, #0
+ add r4, r7, #0
+_021DA2FA:
+ ldr r0, [sp, #0x14]
+ mov r1, #1
+ bl FUN_02018FF4
+ str r0, [r4, #8]
+ ldrh r0, [r5, #2]
+ mov r2, #2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrh r0, [r5, #4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldrh r0, [r5, #6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldrh r0, [r5, #8]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldrh r0, [r5, #0xa]
+ str r0, [sp, #0x10]
+ ldrh r3, [r5]
+ ldr r0, [r7, #4]
+ ldr r1, [r4, #8]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02019620
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, #0xc
+ cmp r6, #4
+ blt _021DA2FA
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DA350: .word 0x021DBF80
+ thumb_func_end MOD73_021DA2AC
+
+ thumb_func_start MOD73_021DA354
+MOD73_021DA354: ; 0x021DA354
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r4, #0
+ mov r6, #1
+_021DA35C:
+ ldr r0, [r5, #8]
+ bl FUN_02019178
+ ldr r0, [r5, #8]
+ add r1, r6, #0
+ bl FUN_020191A4
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021DA35C
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD73_021DA354
+
+ thumb_func_start MOD73_021DA374
+MOD73_021DA374: ; 0x021DA374
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0x20
+ add r5, r1, #0
+ str r0, [sp]
+ mov r0, #0x7a
+ mov r1, #6
+ mov r2, #0
+ mov r3, #0x80
+ str r5, [sp, #4]
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r5, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7a
+ mov r1, #5
+ mov r3, #1
+ bl FUN_0200687C
+ str r5, [sp]
+ mov r0, #0x7a
+ mov r1, #7
+ mov r2, #0
+ add r3, sp, #0x10
+ bl FUN_02006BDC
+ ldr r2, [sp, #0x10]
+ mov r3, #0
+ str r3, [sp]
+ add r5, r0, #0
+ ldrh r0, [r2]
+ mov r1, #1
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldrh r0, [r2, #2]
+ add r2, #0xc
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_02018148
+ ldr r1, [sp, #0x10]
+ mov r2, #0
+ ldrh r0, [r1]
+ add r3, r2, #0
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrh r0, [r1, #2]
+ mov r1, #1
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_020186B4
+ add r0, r5, #0
+ bl FUN_02016A18
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_0201AC68
+ add sp, #0x14
+ pop {r4, r5, pc}
+ thumb_func_end MOD73_021DA374
+
+ thumb_func_start MOD73_021DA408
+MOD73_021DA408: ; 0x021DA408
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x30]
+ add r0, r0, #1
+ str r0, [r4, #0x30]
+ cmp r0, #0x1e
+ blt _021DA432
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x2c]
+_021DA432:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD73_021DA408
+
+ thumb_func_start MOD73_021DA434
+MOD73_021DA434: ; 0x021DA434
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x2c]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _021DA446
+ bl ErrorHandling
+_021DA446:
+ mov r2, #1
+ ldr r0, _021DA494 ; =MOD73_021DA408
+ add r1, r5, #0
+ lsl r2, r2, #0xa
+ bl FUN_0200CA44
+ str r0, [r5, #0x2c]
+ mov r1, #0
+ str r1, [r5, #0x30]
+ ldr r0, [r5, #8]
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _021DA498 ; =0x0001020F
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r6, [r5, #0x1c]
+ lsl r2, r4, #2
+ add r2, r6, r2
+ ldr r0, [r5, #8]
+ ldr r2, [r2, #0x38]
+ mov r1, #1
+ bl FUN_0201BDE0
+ ldr r0, [r5, #8]
+ bl FUN_020191D0
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DA494: .word MOD73_021DA408
+_021DA498: .word 0x0001020F
+ thumb_func_end MOD73_021DA434
+
+ thumb_func_start MOD73_021DA49C
+MOD73_021DA49C: ; 0x021DA49C
+ ldr r0, [r0, #0x2c]
+ cmp r0, #0
+ bne _021DA4A6
+ mov r0, #1
+ bx lr
+_021DA4A6:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD73_021DA49C
+
+ thumb_func_start MOD73_021DA4AC
+MOD73_021DA4AC: ; 0x021DA4AC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0
+ beq _021DA4D0
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x2c]
+_021DA4D0:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA4AC
+
+ thumb_func_start MOD73_021DA4D4
+MOD73_021DA4D4: ; 0x021DA4D4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02018744
+ ldr r0, [r4, #0xc]
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, _021DA54C ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #0x34]
+ mov r3, #0x38
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ mov r2, #0x1f
+ mov r3, #1
+ bl FUN_0200CCA4
+ ldr r0, [r4, #0x10]
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, _021DA54C ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2, #0x64]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ mov r2, #0x1f
+ mov r3, #1
+ bl FUN_0200CCA4
+ ldr r0, [r4, #0xc]
+ bl FUN_02019220
+ ldr r0, [r4, #0x10]
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_021DA54C: .word 0x0001020F
+ thumb_func_end MOD73_021DA4D4
+
+ thumb_func_start MOD73_021DA550
+MOD73_021DA550: ; 0x021DA550
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x18
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021DA6B8 ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #0x4c]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ mov r3, #2
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, [r4, #0x24]
+ ldr r0, [r4, #0x1c]
+ add r2, #0x66
+ ldrb r2, [r2]
+ ldr r0, [r0, #4]
+ mov r1, #0
+ bl FUN_0200AD38
+ mov r3, #2
+ str r3, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r2, [r4, #0x24]
+ ldr r0, [r4, #0x1c]
+ add r2, #0x67
+ ldrb r2, [r2]
+ ldr r0, [r0, #4]
+ bl FUN_0200AD38
+ mov r1, #2
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, [r4, #0x24]
+ ldr r0, [r4, #0x1c]
+ add r2, #0x68
+ ldrb r2, [r2]
+ ldr r0, [r0, #4]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r2, #4]
+ ldr r1, [r2, #8]
+ ldr r2, [r2, #0x50]
+ bl FUN_0200B7B8
+ mov r0, #0x18
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021DA6B8 ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #8]
+ mov r3, #0xa0
+ bl FUN_0201BDE0
+ mov r0, #0x30
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021DA6B8 ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #0x54]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r4, #0x24]
+ ldr r0, [r0, #4]
+ ldr r2, [r2, #0x58]
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r0, [r4, #0x24]
+ ldr r0, [r0, #0x58]
+ cmp r0, #1
+ bne _021DA618
+ mov r2, #3
+ b _021DA61A
+_021DA618:
+ mov r2, #5
+_021DA61A:
+ ldr r3, [r4, #0x1c]
+ lsl r2, r2, #2
+ add r2, r3, r2
+ ldr r0, [r3, #4]
+ ldr r1, [r3, #8]
+ ldr r2, [r2, #0x4c]
+ bl FUN_0200B7B8
+ mov r0, #0x30
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021DA6B8 ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #8]
+ mov r3, #0xa0
+ bl FUN_0201BDE0
+ mov r0, #0x44
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021DA6B8 ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #0x5c]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r4, #0x24]
+ ldr r0, [r0, #4]
+ ldr r2, [r2, #0x5c]
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r0, [r4, #0x24]
+ ldr r0, [r0, #0x5c]
+ cmp r0, #1
+ bne _021DA680
+ mov r2, #3
+ b _021DA682
+_021DA680:
+ mov r2, #5
+_021DA682:
+ ldr r3, [r4, #0x1c]
+ lsl r2, r2, #2
+ add r2, r3, r2
+ ldr r0, [r3, #4]
+ ldr r1, [r3, #8]
+ ldr r2, [r2, #0x4c]
+ bl FUN_0200B7B8
+ mov r0, #0x44
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021DA6B8 ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #8]
+ mov r3, #0xa0
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0xc]
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_021DA6B8: .word 0x0001020F
+ thumb_func_end MOD73_021DA550
+
+ thumb_func_start MOD73_021DA6BC
+MOD73_021DA6BC: ; 0x021DA6BC
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r2, [r4, #0x24]
+ ldr r0, [r4, #0x1c]
+ add r2, #0x64
+ ldrb r2, [r2]
+ ldr r0, [r0, #4]
+ mov r1, #3
+ bl FUN_0200B628
+ mov r3, #2
+ str r3, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r2, [r4, #0x24]
+ ldr r0, [r4, #0x1c]
+ add r2, #0x65
+ ldrb r2, [r2]
+ ldr r0, [r0, #4]
+ bl FUN_0200AD38
+ mov r1, #2
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r4, #0x20]
+ ldr r0, [r0, #4]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r2, #4]
+ ldr r1, [r2, #8]
+ ldr r2, [r2, #0x68]
+ bl FUN_0200B7B8
+ mov r0, #0x18
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021DA72C ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2, #8]
+ mov r3, #0x10
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0x10]
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021DA72C: .word 0x0001020F
+ thumb_func_end MOD73_021DA6BC
+
+ thumb_func_start MOD73_021DA730
+MOD73_021DA730: ; 0x021DA730
+ push {r3, lr}
+ cmp r1, #0
+ beq _021DA740
+ cmp r1, #1
+ beq _021DA746
+ cmp r1, #2
+ beq _021DA74C
+ pop {r3, pc}
+_021DA740:
+ bl MOD73_021DA4D4
+ pop {r3, pc}
+_021DA746:
+ bl MOD73_021DA550
+ pop {r3, pc}
+_021DA74C:
+ bl MOD73_021DA6BC
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA730
+
+ thumb_func_start MOD73_021DA754
+MOD73_021DA754: ; 0x021DA754
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02018744
+ ldr r0, [r4, #0xc]
+ bl FUN_02019570
+ ldr r0, [r4, #0x10]
+ bl FUN_02019570
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA754
+
+ thumb_func_start MOD73_021DA770
+MOD73_021DA770: ; 0x021DA770
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ add r6, r1, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ cmp r6, #6
+ bhi _021DA7EC
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DA790: ; jump table
+ .short _021DA79E - _021DA790 - 2 ; case 0
+ .short _021DA7CA - _021DA790 - 2 ; case 1
+ .short _021DA7D0 - _021DA790 - 2 ; case 2
+ .short _021DA7D6 - _021DA790 - 2 ; case 3
+ .short _021DA7DC - _021DA790 - 2 ; case 4
+ .short _021DA7E2 - _021DA790 - 2 ; case 5
+ .short _021DA7E8 - _021DA790 - 2 ; case 6
+_021DA79E:
+ mov r3, #0x51
+ ldr r2, [r4, #0x24]
+ lsl r3, r3, #2
+ ldrb r5, [r2, r3]
+ ldr r0, [r4, #0x1c]
+ sub r3, #0x10
+ lsl r5, r5, #2
+ add r2, r2, r5
+ ldr r0, [r0, #4]
+ ldr r2, [r2, r3]
+ mov r1, #0
+ bl FUN_0200ABC0
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r2, #4]
+ ldr r1, [r2, #8]
+ ldr r2, [r2, #0x18]
+ bl FUN_0200B7B8
+ ldr r0, [r4, #0x1c]
+ ldr r5, [r0, #8]
+ b _021DA7EC
+_021DA7CA:
+ ldr r0, [r4, #0x1c]
+ ldr r5, [r0, #0x1c]
+ b _021DA7EC
+_021DA7D0:
+ ldr r0, [r4, #0x1c]
+ ldr r5, [r0, #0x28]
+ b _021DA7EC
+_021DA7D6:
+ ldr r0, [r4, #0x1c]
+ ldr r5, [r0, #0x24]
+ b _021DA7EC
+_021DA7DC:
+ ldr r0, [r4, #0x1c]
+ ldr r5, [r0, #0x20]
+ b _021DA7EC
+_021DA7E2:
+ ldr r0, [r4, #0x1c]
+ ldr r5, [r0, #0x2c]
+ b _021DA7EC
+_021DA7E8:
+ ldr r0, [r4, #0x1c]
+ ldr r5, [r0, #0xc]
+_021DA7EC:
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _021DA818 ; =0x0001020F
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ add r2, r5, #0
+ bl FUN_0201BDE0
+ mov r1, #0
+ ldr r0, [r4, #0x14]
+ mov r2, #1
+ add r3, r1, #0
+ bl FUN_0200D0BC
+ ldr r0, [r4, #0x14]
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DA818: .word 0x0001020F
+ thumb_func_end MOD73_021DA770
+
+ thumb_func_start MOD73_021DA81C
+MOD73_021DA81C: ; 0x021DA81C
+ ldr r3, _021DA824 ; =Call_FillMemWithValue
+ mov r1, #0
+ ldr r2, _021DA828 ; =0x00000414
+ bx r3
+ .align 2, 0
+_021DA824: .word Call_FillMemWithValue
+_021DA828: .word 0x00000414
+ thumb_func_end MOD73_021DA81C
+
+ thumb_func_start MOD73_021DA82C
+MOD73_021DA82C: ; 0x021DA82C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021DA83A
+ bl ErrorHandling
+_021DA83A:
+ ldr r2, _021DA848 ; =0x00000414
+ add r0, r4, #0
+ mov r1, #0
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ nop
+_021DA848: .word 0x00000414
+ thumb_func_end MOD73_021DA82C
+
+ thumb_func_start MOD73_021DA84C
+MOD73_021DA84C: ; 0x021DA84C
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ str r3, [r0, #0xc]
+ mov r1, #1
+ str r1, [r0]
+ bx lr
+ thumb_func_end MOD73_021DA84C
+
+ thumb_func_start MOD73_021DA858
+MOD73_021DA858: ; 0x021DA858
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r7, #0
+ mov r6, #0
+ add r4, r7, #0
+ add r5, #0x10
+_021DA864:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021DA874
+ add r0, r5, #0
+ bl MOD73_021DAB30
+_021DA874:
+ add r6, r6, #1
+ add r4, #0x80
+ add r5, #0x80
+ cmp r6, #8
+ blt _021DA864
+ mov r0, #0
+ str r0, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021DA858
+
+ thumb_func_start MOD73_021DA884
+MOD73_021DA884: ; 0x021DA884
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r7, r1, #0
+ mov r6, #0
+ add r4, #0x10
+_021DA890:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021DA8AE
+ add r0, r4, #0
+ bl MOD73_021DAB50
+ ldr r0, [r5, #0x20]
+ cmp r0, #0
+ beq _021DA8AE
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD73_021DABD0
+_021DA8AE:
+ add r6, r6, #1
+ add r5, #0x80
+ add r4, #0x80
+ cmp r6, #8
+ blt _021DA890
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA884
+
+ thumb_func_start MOD73_021DA8BC
+MOD73_021DA8BC: ; 0x021DA8BC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0xb8
+ add r5, r0, #0
+ lsl r0, r1, #1
+ add r0, r1, r0
+ add r1, r2, r0
+ mov r0, #0x1c
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _021DAA9C ; =0x021DBE7C
+ add r3, r0, r2
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x9c
+ 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]
+ add r0, r5, #0
+ bl MOD73_021DAAD0
+ str r0, [sp, #0x60]
+ cmp r0, #0
+ bne _021DA906
+ add r0, r5, #0
+ bl MOD73_021DAAF4
+ str r0, [sp, #0x60]
+ cmp r0, #0
+ bne _021DA900
+ bl ErrorHandling
+_021DA900:
+ ldr r0, [sp, #0x60]
+ bl MOD73_021DAB30
+_021DA906:
+ bl FUN_0201BA60
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ bl FUN_0201BA60
+ add r1, sp, #0x9c
+ ldrb r1, [r1, #0x11]
+ bl _u32_div_f
+ add r0, sp, #0x9c
+ ldrb r0, [r0, #0x10]
+ add r4, r0, r1
+ bl FUN_0201BA60
+ add r1, sp, #0x9c
+ ldrb r1, [r1, #0x13]
+ bl _u32_div_f
+ add r0, sp, #0x9c
+ ldrb r0, [r0, #0x12]
+ add r0, r0, r1
+ add r0, r0, r4
+ asr r1, r6, #4
+ lsl r2, r1, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x6c]
+ asr r0, r0, #0x1f
+ lsl r3, r2, #1
+ ldr r1, _021DAAA0 ; =0x020FFA38
+ str r0, [sp, #0x70]
+ ldr r0, [sp, #0xa8]
+ ldrsh r6, [r1, r3]
+ lsl r3, r4, #0xc
+ add r2, r2, #1
+ str r3, [sp, #0x64]
+ asr r3, r3, #0x1f
+ lsl r2, r2, #1
+ str r0, [sp, #0x74]
+ asr r0, r0, #0x1f
+ str r3, [sp, #0x68]
+ ldrsh r4, [r1, r2]
+ str r0, [sp, #0x78]
+ bl FUN_0201BA60
+ ldr r1, [sp, #0xa0]
+ bl _u32_div_f
+ ldr r0, [sp, #0x9c]
+ ldr r2, [sp, #0x64]
+ add r0, r0, r1
+ str r0, [sp, #0x5c]
+ asr r0, r6, #0x1f
+ str r0, [sp, #0x7c]
+ ldr r1, [sp, #0x7c]
+ ldr r3, [sp, #0x68]
+ add r0, r6, #0
+ asr r7, r4, #0x1f
+ bl _ll_mul
+ str r1, [sp, #0x58]
+ str r0, [sp, #0x80]
+ ldr r1, [sp, #0x7c]
+ ldr r2, [sp, #0x6c]
+ ldr r3, [sp, #0x70]
+ add r0, r6, #0
+ bl _ll_mul
+ str r1, [sp, #0x50]
+ str r0, [sp, #0x84]
+ ldr r1, [sp, #0x7c]
+ ldr r2, [sp, #0x74]
+ ldr r3, [sp, #0x78]
+ add r0, r6, #0
+ bl _ll_mul
+ str r0, [sp, #0x88]
+ str r1, [sp, #0x98]
+ ldr r2, [sp, #0x64]
+ ldr r3, [sp, #0x68]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl _ll_mul
+ str r0, [sp, #0x8c]
+ str r1, [sp, #0x48]
+ ldr r2, [sp, #0x6c]
+ ldr r3, [sp, #0x70]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl _ll_mul
+ str r0, [sp, #0x90]
+ str r1, [sp, #0x40]
+ ldr r2, [sp, #0x74]
+ ldr r3, [sp, #0x78]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl _ll_mul
+ add r2, r0, #0
+ mov r4, #2
+ ldr r0, [sp, #0x88]
+ ldr r3, [sp, #0x98]
+ mov r6, #0
+ lsl r4, r4, #0xa
+ add r0, r0, r4
+ adc r3, r6
+ str r3, [sp, #0x98]
+ lsl r3, r3, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r3
+ str r0, [sp]
+ ldr r0, [sp, #0x8c]
+ ldr r3, [sp, #0x48]
+ add r0, r0, r4
+ adc r3, r6
+ str r3, [sp, #0x48]
+ mov r7, #6
+ lsl r3, r3, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r3
+ lsl r7, r7, #0x10
+ add r0, r0, r7
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x90]
+ ldr r3, [sp, #0x40]
+ add r0, r0, r4
+ adc r3, r6
+ str r3, [sp, #0x40]
+ lsl r3, r3, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r3
+ add r0, r0, r7
+ add r2, r2, r4
+ adc r1, r6
+ str r0, [sp, #8]
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ str r1, [sp, #0xc]
+ ldr r0, _021DAAA4 ; =0x0000019A
+ add r2, sp, #0x9c
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x5c]
+ mov r1, #0x38
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0xa4]
+ str r0, [sp, #0x18]
+ ldrb r0, [r2, #0x18]
+ str r0, [sp, #0x1c]
+ ldrb r0, [r2, #0x14]
+ str r0, [sp, #0x20]
+ ldrb r3, [r2, #0x15]
+ ldr r0, [r5, #8]
+ mul r1, r3
+ add r0, r0, r1
+ str r0, [sp, #0x24]
+ ldrb r0, [r2, #0x16]
+ str r0, [sp, #0x28]
+ ldr r0, [r5, #4]
+ str r0, [sp, #0x2c]
+ ldr r0, [r5, #0xc]
+ str r0, [sp, #0x30]
+ ldrb r0, [r2, #0x19]
+ str r0, [sp, #0x34]
+ ldrb r0, [r2, #0x1a]
+ str r0, [sp, #0x38]
+ ldrb r1, [r2, #0x17]
+ ldr r2, [sp, #0x80]
+ ldr r0, [sp, #0x60]
+ add r3, r2, r4
+ ldr r2, [sp, #0x58]
+ adc r2, r6
+ str r2, [sp, #0x58]
+ lsl r2, r2, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ lsl r2, r4, #8
+ add r2, r3, r2
+ ldr r3, [sp, #0x84]
+ add r7, r3, r4
+ ldr r3, [sp, #0x50]
+ adc r3, r6
+ str r3, [sp, #0x50]
+ lsl r3, r3, #0x14
+ lsr r6, r7, #0xc
+ orr r6, r3
+ lsl r3, r4, #8
+ add r3, r6, r3
+ bl MOD73_021DAC9C
+ mov r1, #0x41
+ lsl r1, r1, #4
+ ldr r2, [r5, r1]
+ ldr r0, [sp, #0x60]
+ str r2, [r0, #0x7c]
+ ldr r0, [r5, r1]
+ add r0, r0, #1
+ str r0, [r5, r1]
+ add sp, #0xb8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DAA9C: .word 0x021DBE7C
+_021DAAA0: .word 0x020FFA38
+_021DAAA4: .word 0x0000019A
+ thumb_func_end MOD73_021DA8BC
+
+ thumb_func_start MOD73_021DAAA8
+MOD73_021DAAA8: ; 0x021DAAA8
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ mov r6, #0
+ add r4, #0x10
+_021DAAB2:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021DAAC2
+ add r0, r4, #0
+ bl MOD73_021DAD44
+_021DAAC2:
+ add r6, r6, #1
+ add r5, #0x80
+ add r4, #0x80
+ cmp r6, #8
+ blt _021DAAB2
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAAA8
+
+ thumb_func_start MOD73_021DAAD0
+MOD73_021DAAD0: ; 0x021DAAD0
+ mov r2, #0
+ add r3, r0, #0
+_021DAAD4:
+ add r1, r3, #0
+ add r1, #0x88
+ ldr r1, [r1]
+ cmp r1, #0
+ bne _021DAAE6
+ add r0, #0x10
+ lsl r1, r2, #7
+ add r0, r0, r1
+ bx lr
+_021DAAE6:
+ add r2, r2, #1
+ add r3, #0x80
+ cmp r2, #8
+ blt _021DAAD4
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD73_021DAAD0
+
+ thumb_func_start MOD73_021DAAF4
+MOD73_021DAAF4: ; 0x021DAAF4
+ push {r4, r5}
+ mov r2, #0
+ add r3, r0, #0
+ add r1, r2, #0
+ add r3, #0x10
+_021DAAFE:
+ add r4, r0, #0
+ add r4, #0x88
+ ldr r4, [r4]
+ cmp r4, #0
+ beq _021DAB1E
+ cmp r2, #0
+ bne _021DAB10
+ add r2, r3, #0
+ b _021DAB1E
+_021DAB10:
+ add r4, r0, #0
+ add r4, #0x8c
+ ldr r5, [r2, #0x7c]
+ ldr r4, [r4]
+ cmp r5, r4
+ ble _021DAB1E
+ add r2, r3, #0
+_021DAB1E:
+ add r1, r1, #1
+ add r0, #0x80
+ add r3, #0x80
+ cmp r1, #8
+ blt _021DAAFE
+ add r0, r2, #0
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD73_021DAAF4
+
+ thumb_func_start MOD73_021DAB30
+MOD73_021DAB30: ; 0x021DAB30
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x78]
+ cmp r0, #0
+ bne _021DAB3E
+ bl ErrorHandling
+_021DAB3E:
+ ldr r0, [r4, #0x78]
+ bl FUN_0201FFC8
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x80
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ thumb_func_end MOD73_021DAB30
+
+ thumb_func_start MOD73_021DAB50
+MOD73_021DAB50: ; 0x021DAB50
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _021DABA2
+ add r0, r4, #0
+ add r0, #0x30
+ bl MOD73_021D962C
+ str r0, [r4, #4]
+ add r0, r4, #0
+ add r0, #0x48
+ bl MOD73_021D962C
+ add r0, r4, #0
+ add r0, #0x60
+ bl MOD73_021D962C
+ ldr r0, [r4, #0x30]
+ add r1, r4, #0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x48]
+ add r1, #0x14
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x78]
+ bl FUN_02020044
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021DABA2
+ ldr r0, [r4, #0x60]
+ add r1, r4, #0
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #0x60]
+ add r1, #0x20
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x60]
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x78]
+ bl FUN_02020064
+_021DABA2:
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ bne _021DABB6
+ ldr r0, [r4, #0x78]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _021DABB6
+ mov r0, #1
+ str r0, [r4, #8]
+_021DABB6:
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _021DABCE
+ ldr r0, [r4, #4]
+ cmp r0, #1
+ bne _021DABCE
+ ldr r0, [r4, #8]
+ cmp r0, #1
+ bne _021DABCE
+ add r0, r4, #0
+ bl MOD73_021DAB30
+_021DABCE:
+ pop {r4, pc}
+ thumb_func_end MOD73_021DAB50
+
+ thumb_func_start MOD73_021DABD0
+MOD73_021DABD0: ; 0x021DABD0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ cmp r0, #1
+ bne _021DAC94
+ ldr r0, [r5, #8]
+ cmp r0, #1
+ bne _021DAC94
+ add r0, r1, #0
+ add r0, #0xa4
+ ldrb r0, [r0]
+ ldr r2, [r5, #0x2c]
+ cmp r0, #0
+ bne _021DABF6
+ add r1, #0xa2
+ ldrh r0, [r1]
+ add r0, r2, r0
+ b _021DABFC
+_021DABF6:
+ add r1, #0xa2
+ ldrh r0, [r1]
+ sub r0, r2, r0
+_021DABFC:
+ str r0, [r5, #0x2c]
+ mov r0, #2
+ ldr r1, [r5, #0x14]
+ lsl r0, r0, #0x12
+ sub r4, r1, r0
+ mov r0, #6
+ mov r2, #0
+ ldr r1, [r5, #0x18]
+ lsl r0, r0, #0x10
+ sub r6, r1, r0
+ asr r0, r4, #0xc
+ asr r1, r6, #0xc
+ add r3, r2, #0
+ bl FUN_0201CBEC
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FX_Atan2
+ lsl r6, r7, #0xc
+ ldr r1, [r5, #0x2c]
+ asr r7, r6, #0x1f
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r4, r0, #1
+ add r0, r4, #1
+ lsl r1, r0, #1
+ ldr r0, _021DAC98 ; =0x020FFA38
+ add r2, r6, #0
+ ldrsh r0, [r0, r1]
+ add r3, r7, #0
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ add r2, r0, #0
+ mov r0, #2
+ mov r3, #0
+ lsl r0, r0, #0xa
+ add r0, r2, r0
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ str r0, [sp]
+ ldr r0, _021DAC98 ; =0x020FFA38
+ lsl r1, r4, #1
+ ldrsh r0, [r0, r1]
+ add r2, r6, #0
+ add r3, r7, #0
+ asr r1, r0, #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
+ ldr r3, [sp]
+ lsl r1, r2, #8
+ add r1, r3, r1
+ str r1, [sp]
+ mov r1, #6
+ lsl r1, r1, #0x10
+ str r0, [sp, #4]
+ add r0, r0, r1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x78]
+ add r1, sp, #0
+ bl FUN_02020044
+_021DAC94:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DAC98: .word 0x020FFA38
+ thumb_func_end MOD73_021DABD0
+
+ thumb_func_start MOD73_021DAC9C
+MOD73_021DAC9C: ; 0x021DAC9C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [sp, #0x40]
+ str r1, [r5]
+ add r4, r2, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r2, r3, #0
+ ldr r3, [sp, #0x20]
+ add r0, #0x30
+ add r1, r4, #0
+ ldr r6, [sp, #0x30]
+ bl MOD73_021D95CC
+ ldr r0, [sp, #0x40]
+ ldr r1, [sp, #0x24]
+ str r0, [sp]
+ add r0, r5, #0
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x2c]
+ add r0, #0x48
+ bl MOD73_021D95CC
+ ldr r0, [sp, #0x40]
+ ldr r2, [sp, #0x34]
+ str r0, [sp]
+ add r0, r5, #0
+ ldr r3, [sp, #0x38]
+ add r0, #0x60
+ add r1, r6, #0
+ bl MOD73_021D95CC
+ ldr r3, [sp, #0x24]
+ str r4, [r5, #0x14]
+ str r3, [r5, #0x18]
+ str r6, [r5, #0x20]
+ str r6, [r5, #0x24]
+ ldr r0, [sp, #0x3c]
+ str r6, [r5, #0x28]
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #0x54]
+ ldr r1, [sp, #0x44]
+ str r0, [r5, #0x10]
+ mov r0, #0
+ str r0, [sp]
+ add r0, sp, #0x58
+ ldrb r0, [r0]
+ add r2, r4, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x50]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x4c]
+ bl MOD73_021D9540
+ str r0, [r5, #0x78]
+ cmp r0, #0
+ bne _021DAD14
+ bl ErrorHandling
+_021DAD14:
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ beq _021DAD26
+ add r1, r5, #0
+ ldr r0, [r5, #0x78]
+ add r1, #0x20
+ mov r2, #2
+ bl FUN_02020074
+_021DAD26:
+ ldr r0, [r5, #0x78]
+ ldr r1, [sp, #0x48]
+ bl FUN_02020130
+ ldr r0, [r5, #0x78]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r5, #0x78]
+ mov r1, #2
+ bl FUN_02020238
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAC9C
+
+ thumb_func_start MOD73_021DAD44
+MOD73_021DAD44: ; 0x021DAD44
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #1
+ bne _021DAD72
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ ldr r1, [r4, #0x60]
+ add r0, #0x60
+ mov r2, #0xcd
+ mov r3, #0
+ bl MOD73_021D95CC
+ mov r0, #0
+ str r0, [r4]
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x78]
+ mov r1, #2
+ bl FUN_020200EC
+_021DAD72:
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAD44
+
+ thumb_func_start MOD73_021DAD78
+MOD73_021DAD78: ; 0x021DAD78
+ ldr r3, _021DAD80 ; =Call_FillMemWithValue
+ mov r1, #0
+ mov r2, #0x80
+ bx r3
+ .align 2, 0
+_021DAD80: .word Call_FillMemWithValue
+ thumb_func_end MOD73_021DAD78
+
+ thumb_func_start MOD73_021DAD84
+MOD73_021DAD84: ; 0x021DAD84
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x7c]
+ cmp r0, #0
+ beq _021DAD92
+ bl ErrorHandling
+_021DAD92:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x80
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAD84
+
+ thumb_func_start MOD73_021DADA0
+MOD73_021DADA0: ; 0x021DADA0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r0, #0
+ ldr r0, [r6, #0x7c]
+ add r7, r1, #0
+ str r2, [sp, #0x18]
+ cmp r0, #0
+ beq _021DADB4
+ bl ErrorHandling
+_021DADB4:
+ str r7, [r6]
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x1f
+ str r0, [sp, #8]
+ mov r0, #0x1e
+ str r0, [sp, #0xc]
+ ldr r0, _021DAE20 ; =0x00001B58
+ add r1, r6, #4
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x7a
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ mov r3, #0x21
+ bl MOD73_021D9340
+ mov r4, #0
+ add r5, r6, #0
+_021DADDE:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ mov r2, #2
+ mov r3, #6
+ str r0, [sp, #8]
+ add r0, r7, #0
+ add r1, r6, #4
+ lsl r2, r2, #0x12
+ lsl r3, r3, #0x10
+ bl MOD73_021D9540
+ str r0, [r5, #0x3c]
+ cmp r4, #2
+ blt _021DAE06
+ ldr r0, [r5, #0x3c]
+ mov r1, #1
+ bl FUN_02020130
+_021DAE06:
+ ldr r0, [r5, #0x3c]
+ mov r1, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #4
+ blt _021DADDE
+ mov r0, #1
+ str r0, [r6, #0x7c]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DAE20: .word 0x00001B58
+ thumb_func_end MOD73_021DADA0
+
+ thumb_func_start MOD73_021DAE24
+MOD73_021DAE24: ; 0x021DAE24
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x7c]
+ cmp r0, #1
+ beq _021DAE32
+ bl ErrorHandling
+_021DAE32:
+ mov r4, #0
+ add r5, r6, #0
+_021DAE36:
+ ldr r0, [r5, #0x3c]
+ bl FUN_0201FFC8
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #4
+ blt _021DAE36
+ ldr r0, [r6]
+ add r1, r6, #4
+ bl MOD73_021D94F4
+ mov r0, #0
+ str r0, [r6, #0x7c]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAE24
+
+ thumb_func_start MOD73_021DAE54
+MOD73_021DAE54: ; 0x021DAE54
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ add r5, #0x3c
+_021DAE5C:
+ cmp r4, #2
+ beq _021DAE64
+ cmp r4, #0
+ bne _021DAE6C
+_021DAE64:
+ add r0, r5, #0
+ bl MOD73_021DAEFC
+ b _021DAE72
+_021DAE6C:
+ add r0, r5, #0
+ bl MOD73_021DAF34
+_021DAE72:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #4
+ blt _021DAE5C
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD73_021DAE54
+
+ thumb_func_start MOD73_021DAE7C
+MOD73_021DAE7C: ; 0x021DAE7C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #4
+ blt _021DAE8A
+ bl ErrorHandling
+_021DAE8A:
+ cmp r5, #2
+ beq _021DAE92
+ cmp r5, #0
+ bne _021DAE9E
+_021DAE92:
+ add r4, #0x3c
+ lsl r0, r5, #4
+ add r0, r4, r0
+ bl MOD73_021DAEEC
+ pop {r3, r4, r5, pc}
+_021DAE9E:
+ add r4, #0x3c
+ lsl r0, r5, #4
+ add r0, r4, r0
+ bl MOD73_021DAF28
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAE7C
+
+ thumb_func_start MOD73_021DAEAC
+MOD73_021DAEAC: ; 0x021DAEAC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #4
+ blt _021DAEBA
+ bl ErrorHandling
+_021DAEBA:
+ lsl r0, r5, #4
+ mov r1, #0
+ add r0, r4, r0
+ str r1, [r0, #0x48]
+ ldr r0, [r0, #0x3c]
+ bl FUN_020200A0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAEAC
+
+ thumb_func_start MOD73_021DAECC
+MOD73_021DAECC: ; 0x021DAECC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #4
+ blt _021DAEDA
+ bl ErrorHandling
+_021DAEDA:
+ lsl r0, r5, #4
+ add r0, r4, r0
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ bne _021DAEE8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DAEE8:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD73_021DAECC
+
+ thumb_func_start MOD73_021DAEEC
+MOD73_021DAEEC: ; 0x021DAEEC
+ mov r1, #0
+ str r1, [r0, #4]
+ mov r1, #3
+ str r1, [r0, #8]
+ mov r1, #1
+ str r1, [r0, #0xc]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD73_021DAEEC
+
+ thumb_func_start MOD73_021DAEFC
+MOD73_021DAEFC: ; 0x021DAEFC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0
+ beq _021DAF24
+ bl MOD73_021DAF34
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _021DAF24
+ ldr r0, [r4, #8]
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #0
+ bgt _021DAF24
+ mov r1, #0
+ str r1, [r4, #0xc]
+ ldr r0, [r4]
+ bl FUN_020200A0
+_021DAF24:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAEFC
+
+ thumb_func_start MOD73_021DAF28
+MOD73_021DAF28: ; 0x021DAF28
+ mov r1, #0
+ str r1, [r0, #4]
+ mov r1, #1
+ str r1, [r0, #0xc]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD73_021DAF28
+
+ thumb_func_start MOD73_021DAF34
+MOD73_021DAF34: ; 0x021DAF34
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021DAF6C
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _021DAF4E
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_020200A0
+ b _021DAF66
+_021DAF4E:
+ cmp r0, #8
+ bne _021DAF5C
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_020200A0
+ b _021DAF66
+_021DAF5C:
+ cmp r0, #0x10
+ bne _021DAF66
+ mov r0, #0
+ str r0, [r4, #4]
+ pop {r4, pc}
+_021DAF66:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DAF6C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAF34
+
+ thumb_func_start MOD73_021DAF70
+MOD73_021DAF70: ; 0x021DAF70
+ push {r3, r4, r5, lr}
+ ldr r2, _021DAF84 ; =0x0000090C
+ add r4, r1, #0
+ mov r1, #0
+ add r5, r0, #0
+ bl Call_FillMemWithValue
+ str r4, [r5, #4]
+ pop {r3, r4, r5, pc}
+ nop
+_021DAF84: .word 0x0000090C
+ thumb_func_end MOD73_021DAF70
+
+ thumb_func_start MOD73_021DAF88
+MOD73_021DAF88: ; 0x021DAF88
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021DAF96
+ bl ErrorHandling
+_021DAF96:
+ ldr r2, _021DAFA4 ; =0x0000090C
+ add r0, r4, #0
+ mov r1, #0
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ nop
+_021DAFA4: .word 0x0000090C
+ thumb_func_end MOD73_021DAF88
+
+ thumb_func_start MOD73_021DAFA8
+MOD73_021DAFA8: ; 0x021DAFA8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r2, #0
+ str r0, [sp, #0xc]
+ str r1, [sp, #0x10]
+ add r7, r3, #0
+ mov r4, #0
+ add r5, r0, #0
+ add r6, #0x38
+_021DAFBA:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r2, #0
+ ldr r0, [sp, #0x10]
+ add r1, r6, #0
+ add r3, r2, #0
+ str r7, [sp, #8]
+ bl MOD73_021D9540
+ mov r1, #0
+ str r0, [r5, #0x50]
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, #0x48
+ cmp r4, #0x20
+ blt _021DAFBA
+ ldr r0, [sp, #0xc]
+ mov r1, #1
+ str r1, [r0]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAFA8
+
+ thumb_func_start MOD73_021DAFEC
+MOD73_021DAFEC: ; 0x021DAFEC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_021DAFF4:
+ ldr r0, [r5, #0x50]
+ bl FUN_0201FFC8
+ add r4, r4, #1
+ add r5, #0x48
+ cmp r4, #0x20
+ blt _021DAFF4
+ mov r0, #0
+ str r0, [r6]
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD73_021DAFEC
+
+ thumb_func_start MOD73_021DB008
+MOD73_021DB008: ; 0x021DB008
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ add r5, #0xc
+_021DB010:
+ add r0, r5, #0
+ bl MOD73_021DB14C
+ add r4, r4, #1
+ add r5, #0x48
+ cmp r4, #0x20
+ blt _021DB010
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD73_021DB008
+
+ thumb_func_start MOD73_021DB020
+MOD73_021DB020: ; 0x021DB020
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ add r0, r1, #0
+ str r1, [sp, #0x10]
+ add r1, r2, #0
+ sub r0, #0x80
+ sub r1, #0x60
+ str r2, [sp, #0x14]
+ bl FX_Atan2
+ asr r0, r0, #4
+ lsl r1, r0, #1
+ add r0, r1, #1
+ ldr r7, _021DB124 ; =0x020FFA38
+ lsl r0, r0, #1
+ ldrsh r3, [r7, r0]
+ asr r6, r3, #0x1f
+ lsr r2, r3, #0x10
+ lsl r0, r6, #0x10
+ orr r0, r2
+ mov r2, #2
+ lsl r5, r3, #0x10
+ lsl r2, r2, #0xa
+ add r5, r5, r2
+ ldr r2, _021DB128 ; =0x00000000
+ adc r0, r2
+ lsr r2, r5, #0xc
+ lsl r0, r0, #0x14
+ str r2, [sp, #0x18]
+ orr r2, r0
+ lsl r0, r1, #1
+ str r2, [sp, #0x18]
+ ldrsh r2, [r7, r0]
+ asr r0, r2, #0x1f
+ mov ip, r0
+ lsr r1, r2, #0x10
+ lsl r0, r0, #0x10
+ orr r0, r1
+ mov r1, #2
+ lsl r5, r2, #0x10
+ lsl r1, r1, #0xa
+ add r1, r5, r1
+ ldr r5, _021DB128 ; =0x00000000
+ adc r0, r5
+ lsr r7, r1, #0xc
+ lsl r0, r0, #0x14
+ orr r7, r0
+ lsr r0, r3, #0x14
+ lsl r1, r6, #0xc
+ orr r1, r0
+ mov r0, #2
+ lsl r3, r3, #0xc
+ lsl r0, r0, #0xa
+ add r0, r3, r0
+ ldr r3, _021DB128 ; =0x00000000
+ adc r1, r3
+ lsr r6, r0, #0xc
+ lsl r1, r1, #0x14
+ orr r6, r1
+ mov r1, ip
+ lsr r0, r2, #0x14
+ lsl r1, r1, #0xc
+ orr r1, r0
+ mov r0, #2
+ lsl r2, r2, #0xc
+ lsl r0, r0, #0xa
+ add r2, r2, r0
+ ldr r0, _021DB128 ; =0x00000000
+ adc r1, r0
+ lsl r0, r1, #0x14
+ lsr r5, r2, #0xc
+ orr r5, r0
+ add r0, r4, #0
+ bl MOD73_021DB12C
+ cmp r0, #0
+ beq _021DB0E0
+ mov r2, #2
+ ldr r1, [sp, #0x18]
+ lsl r2, r2, #0x12
+ add r1, r1, r2
+ str r1, [sp]
+ mov r1, #6
+ lsl r1, r1, #0x10
+ add r1, r7, r1
+ str r1, [sp, #4]
+ str r6, [sp, #8]
+ str r5, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ ldr r1, [r4, #8]
+ lsl r2, r2, #0xc
+ lsl r3, r3, #0xc
+ bl MOD73_021DB1A8
+_021DB0E0:
+ add r0, r4, #0
+ bl MOD73_021DB12C
+ cmp r0, #0
+ beq _021DB112
+ mov r2, #2
+ ldr r1, [sp, #0x18]
+ lsl r2, r2, #0x12
+ sub r1, r2, r1
+ str r1, [sp]
+ mov r1, #6
+ lsl r1, r1, #0x10
+ sub r1, r1, r7
+ str r1, [sp, #4]
+ neg r1, r6
+ str r1, [sp, #8]
+ neg r1, r5
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ str r1, [sp, #0xc]
+ ldr r1, [r4, #8]
+ lsl r2, r2, #0xc
+ lsl r3, r3, #0xc
+ bl MOD73_021DB1A8
+_021DB112:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ add r0, r0, #1
+ bl _s32_div_f
+ str r1, [r4, #8]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DB124: .word 0x020FFA38
+_021DB128: .word 0x00000000
+ thumb_func_end MOD73_021DB020
+
+ thumb_func_start MOD73_021DB12C
+MOD73_021DB12C: ; 0x021DB12C
+ mov r2, #0
+ add r3, r0, #0
+_021DB130:
+ ldr r1, [r3, #0xc]
+ cmp r1, #0
+ bne _021DB140
+ mov r1, #0x48
+ add r0, #0xc
+ mul r1, r2
+ add r0, r0, r1
+ bx lr
+_021DB140:
+ add r2, r2, #1
+ add r3, #0x48
+ cmp r2, #0x20
+ blt _021DB130
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD73_021DB12C
+
+ thumb_func_start MOD73_021DB14C
+MOD73_021DB14C: ; 0x021DB14C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021DB18C
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _021DB180
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD73_021D962C
+ str r0, [r4, #4]
+ add r0, r4, #0
+ add r0, #0x2c
+ bl MOD73_021D962C
+ ldr r0, [r4, #0x14]
+ add r1, r4, #0
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x2c]
+ add r1, #8
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x44]
+ bl FUN_02020044
+_021DB180:
+ ldr r0, [r4, #4]
+ cmp r0, #1
+ bne _021DB18C
+ add r0, r4, #0
+ bl MOD73_021DB190
+_021DB18C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB14C
+
+ thumb_func_start MOD73_021DB190
+MOD73_021DB190: ; 0x021DB190
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021DB1A6
+ ldr r0, [r4, #0x44]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0
+ str r0, [r4]
+_021DB1A6:
+ pop {r4, pc}
+ thumb_func_end MOD73_021DB190
+
+ thumb_func_start MOD73_021DB1A8
+MOD73_021DB1A8: ; 0x021DB1A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0x10
+ add r4, r2, #0
+ add r6, r3, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r7, r1, #0
+ ldr r2, [sp, #0x18]
+ ldr r3, [sp, #0x20]
+ add r0, #0x14
+ add r1, r4, #0
+ bl MOD73_021D95CC
+ mov r0, #0x10
+ str r0, [sp]
+ add r0, r5, #0
+ ldr r2, [sp, #0x1c]
+ ldr r3, [sp, #0x24]
+ add r0, #0x2c
+ add r1, r6, #0
+ bl MOD73_021D95CC
+ str r4, [r5, #8]
+ str r6, [r5, #0xc]
+ ldr r0, [r5, #0x44]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [r5, #0x44]
+ add r1, r7, #0
+ bl FUN_02020130
+ ldr r0, [r5, #0x44]
+ bl FUN_02020198
+ ldr r0, [r5, #0x44]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r5, #0x44]
+ mov r1, #2
+ bl FUN_02020238
+ mov r0, #1
+ str r0, [r5]
+ mov r0, #0
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB1A8
+
+ thumb_func_start MOD73_021DB20C
+MOD73_021DB20C: ; 0x021DB20C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #2
+ add r4, r1, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x28]
+ mov r1, #1
+ add r6, r2, #0
+ add r7, r3, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02088320
+ str r0, [r5]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ lsl r2, r4, #0x10
+ lsl r3, r6, #0x10
+ ldr r0, [r5]
+ add r1, r7, #0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02088490
+ str r0, [r5, #4]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB20C
+
+ thumb_func_start MOD73_021DB24C
+MOD73_021DB24C: ; 0x021DB24C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ bl FUN_02088694
+ ldr r0, [r4]
+ bl FUN_02088360
+ pop {r4, pc}
+ thumb_func_end MOD73_021DB24C
+
+ thumb_func_start MOD73_021DB260
+MOD73_021DB260: ; 0x021DB260
+ ldr r3, _021DB268 ; =FUN_02088484
+ ldr r0, [r0]
+ bx r3
+ nop
+_021DB268: .word FUN_02088484
+ thumb_func_end MOD73_021DB260
+
+ thumb_func_start MOD73_021DB26C
+MOD73_021DB26C: ; 0x021DB26C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r4, r2, #0
+ bl FUN_02014590
+ str r0, [r5]
+ str r4, [r5, #4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB26C
+
+ thumb_func_start MOD73_021DB280
+MOD73_021DB280: ; 0x021DB280
+ ldr r3, _021DB288 ; =FUN_020145A8
+ ldr r0, [r0]
+ bx r3
+ nop
+_021DB288: .word FUN_020145A8
+ thumb_func_end MOD73_021DB280
+
+ thumb_func_start MOD73_021DB28C
+MOD73_021DB28C: ; 0x021DB28C
+ push {lr}
+ sub sp, #0x14
+ ldr r1, [r0, #4]
+ mov r2, #0x18
+ str r1, [sp]
+ mov r1, #2
+ str r1, [sp, #4]
+ mov r1, #0xaf
+ str r1, [sp, #8]
+ mov r1, #5
+ str r1, [sp, #0xc]
+ add r1, sp, #0
+ strb r2, [r1, #0x10]
+ mov r2, #8
+ strb r2, [r1, #0x11]
+ ldr r0, [r0]
+ add r1, sp, #0
+ bl FUN_020145C8
+ add sp, #0x14
+ pop {pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB28C
+
+ thumb_func_start MOD73_021DB2B8
+MOD73_021DB2B8: ; 0x021DB2B8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl FUN_0201466C
+ add r4, r0, #0
+ beq _021DB2CC
+ ldr r0, [r5]
+ bl FUN_020146C4
+_021DB2CC:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD73_021DB2B8
+
+ thumb_func_start MOD73_021DB2D0
+MOD73_021DB2D0: ; 0x021DB2D0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r1, r3, #0
+ ldr r3, [sp, #0x1c]
+ add r5, r0, #0
+ ldr r6, [sp, #0x18]
+ add r0, r2, #0
+ sub r4, r4, r3
+ sub r1, r1, r3
+ mov r3, #0
+ str r3, [sp]
+ sub r2, r5, r6
+ sub r0, r0, r6
+ add r3, r4, #0
+ bl FUN_0201BBD0
+ mov r1, #0xa0
+ mul r1, r0
+ add r0, r1, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD73_021DB2D0
+
+ thumb_func_start MOD73_021DB2FC
+MOD73_021DB2FC: ; 0x021DB2FC
+ add r3, r0, #0
+ mov r2, #0x18
+ mov r1, #0
+_021DB302:
+ strb r1, [r3]
+ add r3, r3, #1
+ sub r2, r2, #1
+ bne _021DB302
+ mov r2, #0x80
+ str r2, [r0]
+ mov r1, #0x60
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ str r1, [r0, #0xc]
+ bx lr
+ thumb_func_end MOD73_021DB2FC
+
+ thumb_func_start MOD73_021DB318
+MOD73_021DB318: ; 0x021DB318
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, _021DB364 ; =0x021C48F8
+ ldrh r1, [r0, #0x22]
+ cmp r1, #0
+ beq _021DB33C
+ ldrh r1, [r0, #0x1c]
+ str r1, [r4]
+ ldrh r0, [r0, #0x1e]
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _021DB33C
+ ldr r0, [r4]
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ str r0, [r4, #0xc]
+_021DB33C:
+ mov r0, #0x80
+ str r0, [sp]
+ mov r0, #0x60
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #8]
+ ldr r3, [r4, #0xc]
+ bl MOD73_021DB2D0
+ str r0, [r4, #0x10]
+ ldr r0, [r4]
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ str r0, [r4, #0xc]
+ ldr r0, _021DB364 ; =0x021C48F8
+ ldrh r0, [r0, #0x22]
+ str r0, [r4, #0x14]
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_021DB364: .word 0x021C48F8
+ thumb_func_end MOD73_021DB318
+
+ thumb_func_start MOD73_021DB368
+MOD73_021DB368: ; 0x021DB368
+ ldr r2, [r1]
+ strb r2, [r0]
+ ldr r2, [r1, #4]
+ strb r2, [r0, #1]
+ ldr r1, [r1, #0x10]
+ cmp r1, #0
+ bge _021DB380
+ neg r1, r1
+ strh r1, [r0, #2]
+ mov r1, #1
+ strb r1, [r0, #4]
+ bx lr
+_021DB380:
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #4]
+ bx lr
+ thumb_func_end MOD73_021DB368
+
+ thumb_func_start MOD73_021DB388
+MOD73_021DB388: ; 0x021DB388
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ mov r2, #0x80
+ mov r3, #0x60
+ bl FUN_0201CBEC
+ add r4, r0, #0
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bge _021DB3A2
+ neg r0, r0
+_021DB3A2:
+ lsl r0, r0, #0x10
+ ldr r1, [r5]
+ lsr r0, r0, #0x10
+ bl MOD73_021DB644
+ asr r2, r0, #0x1f
+ lsl r3, r2, #0x12
+ lsr r1, r0, #0xe
+ orr r3, r1
+ mov r1, #2
+ lsl r2, r0, #0x12
+ mov r0, #0
+ lsl r1, r1, #0xa
+ add r2, r2, r1
+ adc r3, r0
+ lsl r1, r3, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r1
+ asr r1, r2, #0xc
+ cmp r4, #0x10
+ bhs _021DB3D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DB3D0:
+ add r1, #8
+ cmp r4, r1
+ bls _021DB3D8
+ mov r0, #2
+_021DB3D8:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB388
+
+ thumb_func_start MOD73_021DB3DC
+MOD73_021DB3DC: ; 0x021DB3DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #1
+ str r0, [r5, #0x10]
+ mov r0, #0
+ add r4, r1, #0
+ str r2, [sp]
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, r2, #0
+ beq _021DB468
+_021DB3F6:
+ ldr r0, [sp, #0xc]
+ add r1, r4, r0
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldrb r1, [r1, r0]
+ mov r0, #0x1c
+ add r6, r1, #0
+ mul r6, r0
+ add r1, r4, r6
+ add r2, r4, r6
+ add r1, #0x90
+ add r2, #0x91
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ add r0, r5, #0
+ bl MOD73_021DB388
+ cmp r0, #0
+ beq _021DB426
+ cmp r0, #1
+ beq _021DB42E
+ cmp r0, #2
+ beq _021DB43E
+ b _021DB444
+_021DB426:
+ add r0, r4, r6
+ add r0, #0x92
+ ldrh r7, [r0]
+ b _021DB444
+_021DB42E:
+ add r0, r4, r6
+ add r0, #0x92
+ ldrh r0, [r0]
+ lsl r0, r0, #0xf
+ lsr r7, r0, #0x10
+ mov r0, #0
+ str r0, [r5, #0x10]
+ b _021DB444
+_021DB43E:
+ mov r7, #0
+ add r0, r7, #0
+ str r0, [r5, #0x10]
+_021DB444:
+ add r0, r4, r6
+ add r0, #0x94
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _021DB456
+ ldr r0, [sp, #8]
+ add r0, r0, r7
+ str r0, [sp, #8]
+ b _021DB45C
+_021DB456:
+ ldr r0, [sp, #8]
+ sub r0, r0, r7
+ str r0, [sp, #8]
+_021DB45C:
+ ldr r0, [sp, #0xc]
+ add r1, r0, #1
+ ldr r0, [sp]
+ str r1, [sp, #0xc]
+ cmp r1, r0
+ blo _021DB3F6
+_021DB468:
+ ldr r0, [sp, #8]
+ ldr r1, [sp]
+ bl _s32_div_f
+ add r4, r0, #0
+ ldr r1, [r5]
+ ldr r0, _021DB550 ; =0x021DBF5C
+ ldrb r0, [r0, r1]
+ mov r1, #0x33
+ lsl r1, r1, #0xe
+ lsl r0, r0, #0xc
+ bl FX_Div
+ add r2, r0, #0
+ lsl r0, r4, #0xc
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r4, #2
+ mov r2, #0
+ lsl r4, r4, #0xa
+ add r4, r0, r4
+ adc r1, r2
+ lsl r0, r1, #0x14
+ lsr r1, r4, #0xc
+ orr r1, r0
+ ldr r3, [r5, #0xc]
+ asr r0, r1, #0xc
+ add r0, r3, r0
+ str r0, [r5, #0xc]
+ cmp r0, #0
+ ble _021DB4BC
+ ldr r1, [r5]
+ lsl r3, r1, #1
+ ldr r1, _021DB554 ; =0x021DBF68
+ ldrh r1, [r1, r3]
+ sub r0, r0, r1
+ str r0, [r5, #0xc]
+ bpl _021DB4D0
+ str r2, [r5, #0xc]
+ b _021DB4D0
+_021DB4BC:
+ bge _021DB4D0
+ ldr r1, [r5]
+ lsl r3, r1, #1
+ ldr r1, _021DB554 ; =0x021DBF68
+ ldrh r1, [r1, r3]
+ add r0, r0, r1
+ str r0, [r5, #0xc]
+ cmp r0, #0
+ ble _021DB4D0
+ str r2, [r5, #0xc]
+_021DB4D0:
+ ldr r1, [r5, #0xc]
+ ldr r0, _021DB558 ; =0x00000E38
+ cmp r1, r0
+ ble _021DB4DC
+ str r0, [r5, #0xc]
+ b _021DB4E4
+_021DB4DC:
+ ldr r0, _021DB55C ; =0xFFFFF1C8
+ cmp r1, r0
+ bge _021DB4E4
+ str r0, [r5, #0xc]
+_021DB4E4:
+ ldr r0, [r5, #0xc]
+ mov r1, #0xa0
+ ldr r4, [r5, #8]
+ bl _s32_div_f
+ add r1, r0, #0
+ mov r0, #0x44
+ bl FUN_0201BC84
+ ldr r1, [r5, #8]
+ add r0, r1, r0
+ str r0, [r5, #8]
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _021DB508
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bge _021DB514
+_021DB508:
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _021DB544
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bge _021DB544
+_021DB514:
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _021DB530
+ lsl r0, r4, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, [r5, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r1, r0
+ ble _021DB544
+ ldr r0, [r5, #4]
+ add r0, r0, #1
+ str r0, [r5, #4]
+ b _021DB544
+_021DB530:
+ lsl r0, r4, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, [r5, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r1, r0
+ bge _021DB544
+ ldr r0, [r5, #4]
+ add r0, r0, #1
+ str r0, [r5, #4]
+_021DB544:
+ ldr r0, [r5, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DB550: .word 0x021DBF5C
+_021DB554: .word 0x021DBF68
+_021DB558: .word 0x00000E38
+_021DB55C: .word 0xFFFFF1C8
+ thumb_func_end MOD73_021DB3DC
+
+ thumb_func_start MOD73_021DB560
+MOD73_021DB560: ; 0x021DB560
+ ldr r0, [r0, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+ thumb_func_end MOD73_021DB560
+
+ thumb_func_start MOD73_021DB568
+MOD73_021DB568: ; 0x021DB568
+ ldr r0, [r0, #4]
+ bx lr
+ thumb_func_end MOD73_021DB568
+
+ thumb_func_start MOD73_021DB56C
+MOD73_021DB56C: ; 0x021DB56C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #3
+ blt _021DB57A
+ bl ErrorHandling
+_021DB57A:
+ str r5, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB56C
+
+ thumb_func_start MOD73_021DB584
+MOD73_021DB584: ; 0x021DB584
+ ldr r0, [r0, #0xc]
+ bx lr
+ thumb_func_end MOD73_021DB584
+
+ thumb_func_start MOD73_021DB588
+MOD73_021DB588: ; 0x021DB588
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [r5, #0x18]
+ add r4, r1, #0
+ add r6, r2, #0
+ str r0, [r5, #0x10]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD73_021DB60C
+ cmp r0, #0
+ beq _021DB5C6
+ ldr r0, [r5, #0xc]
+ add r0, r0, #1
+ str r0, [r5, #0xc]
+ cmp r0, #0x1e
+ blo _021DB5C0
+ ldr r1, [r5, #4]
+ ldr r0, _021DB608 ; =0x0000270F
+ cmp r1, r0
+ bhs _021DB5B8
+ add r0, r1, #1
+ str r0, [r5, #4]
+_021DB5B8:
+ mov r0, #1
+ str r0, [r5, #0x18]
+ mov r0, #0
+ str r0, [r5, #0xc]
+_021DB5C0:
+ mov r0, #0
+ str r0, [r5, #0x14]
+ pop {r4, r5, r6, pc}
+_021DB5C6:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD73_021DB62C
+ cmp r0, #0
+ beq _021DB602
+ ldr r0, [r5, #8]
+ add r0, r0, #1
+ str r0, [r5, #8]
+ cmp r0, #0x5a
+ blo _021DB606
+ mov r0, #0
+ str r0, [r5, #8]
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ bne _021DB5F0
+ mov r0, #2
+ str r0, [r5, #0x10]
+ mov r0, #1
+ str r0, [r5, #0x14]
+ pop {r4, r5, r6, pc}
+_021DB5F0:
+ mov r0, #1
+ str r0, [r5, #0x10]
+ ldr r1, [r5]
+ ldr r0, _021DB608 ; =0x0000270F
+ cmp r1, r0
+ bhs _021DB606
+ add r0, r1, #1
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_021DB602:
+ mov r0, #0
+ str r0, [r5, #0x14]
+_021DB606:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DB608: .word 0x0000270F
+ thumb_func_end MOD73_021DB588
+
+ thumb_func_start MOD73_021DB60C
+MOD73_021DB60C: ; 0x021DB60C
+ cmp r1, #2
+ bne _021DB614
+ mov r0, #0
+ bx lr
+_021DB614:
+ cmp r0, #0
+ bge _021DB61A
+ neg r0, r0
+_021DB61A:
+ ldr r1, _021DB628 ; =0x00000E38
+ cmp r0, r1
+ blt _021DB624
+ mov r0, #1
+ bx lr
+_021DB624:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021DB628: .word 0x00000E38
+ thumb_func_end MOD73_021DB60C
+
+ thumb_func_start MOD73_021DB62C
+MOD73_021DB62C: ; 0x021DB62C
+ cmp r0, #0
+ bge _021DB632
+ neg r0, r0
+_021DB632:
+ ldr r1, _021DB640 ; =0x0000038E
+ cmp r0, r1
+ bgt _021DB63C
+ mov r0, #1
+ bx lr
+_021DB63C:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021DB640: .word 0x0000038E
+ thumb_func_end MOD73_021DB62C
+
+ thumb_func_start MOD73_021DB644
+MOD73_021DB644: ; 0x021DB644
+ push {r3, lr}
+ ldr r1, _021DB678 ; =0x0000038E
+ sub r0, r0, r1
+ bpl _021DB64E
+ mov r0, #0
+_021DB64E:
+ lsl r2, r0, #0xc
+ asr r1, r2, #0x1f
+ lsr r0, r2, #0x16
+ lsl r3, r1, #0xa
+ orr r3, r0
+ mov r0, #2
+ lsl r2, r2, #0xa
+ mov r1, #0
+ lsl r0, r0, #0xa
+ add r0, r2, r0
+ adc r3, r1
+ lsl r1, r3, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ ldr r1, _021DB67C ; =0x00AAA000
+ bl FX_Div
+ mov r1, #1
+ lsl r1, r1, #0xc
+ add r0, r0, r1
+ pop {r3, pc}
+ .align 2, 0
+_021DB678: .word 0x0000038E
+_021DB67C: .word 0x00AAA000
+ thumb_func_end MOD73_021DB644
+
+ thumb_func_start MOD73_021DB680
+MOD73_021DB680: ; 0x021DB680
+ add r3, r0, #0
+ mov r2, #0x10
+ mov r1, #0
+_021DB686:
+ strb r1, [r3]
+ add r3, r3, #1
+ sub r2, r2, #1
+ bne _021DB686
+ mov r1, #2
+ str r1, [r0, #8]
+ sub r1, r1, #3
+ str r1, [r0, #4]
+ bx lr
+ thumb_func_end MOD73_021DB680
+
+ thumb_func_start MOD73_021DB698
+MOD73_021DB698: ; 0x021DB698
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #0
+ str r1, [r5, #0xc]
+ add r1, r2, #0
+ add r6, r3, #0
+ bl MOD73_021DB718
+ cmp r0, #1
+ beq _021DB710
+ cmp r6, #1
+ beq _021DB710
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ bge _021DB70A
+ bl FUN_0201BA60
+ mov r1, #5
+ add r6, r0, #0
+ bl _u32_div_f
+ ldr r0, [r5, #8]
+ cmp r1, r0
+ bhi _021DB6D0
+ mov r1, #1
+ str r1, [r5, #0xc]
+ b _021DB6D6
+_021DB6D0:
+ mov r0, #1
+ mov r1, #0
+ str r0, [r5, #0xc]
+_021DB6D6:
+ ldr r0, [r5]
+ cmp r1, r0
+ bne _021DB6F4
+ cmp r0, #1
+ ldr r0, [r5, #8]
+ bne _021DB6EA
+ sub r0, r0, #1
+ bmi _021DB6FA
+ str r0, [r5, #8]
+ b _021DB6FA
+_021DB6EA:
+ add r0, r0, #1
+ cmp r0, #5
+ bge _021DB6FA
+ str r0, [r5, #8]
+ b _021DB6FA
+_021DB6F4:
+ str r1, [r5]
+ mov r0, #2
+ str r0, [r5, #8]
+_021DB6FA:
+ add r0, r6, #0
+ mov r1, #0x3c
+ bl _u32_div_f
+ ldr r0, _021DB714 ; =0x021DBFB0
+ ldrb r0, [r0, r4]
+ add r0, r0, r1
+ str r0, [r5, #4]
+_021DB70A:
+ ldr r0, [r5, #4]
+ sub r0, r0, #1
+ str r0, [r5, #4]
+_021DB710:
+ pop {r4, r5, r6, pc}
+ nop
+_021DB714: .word 0x021DBFB0
+ thumb_func_end MOD73_021DB698
+
+ thumb_func_start MOD73_021DB718
+MOD73_021DB718: ; 0x021DB718
+ cmp r1, #0
+ bge _021DB722
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _021DB72C
+_021DB722:
+ cmp r1, #0
+ ble _021DB730
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021DB730
+_021DB72C:
+ mov r0, #1
+ bx lr
+_021DB730:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD73_021DB718
+
+ thumb_func_start MOD73_021DB734
+MOD73_021DB734: ; 0x021DB734
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r7, #0x1f
+ add r0, r1, #0
+ str r1, [sp]
+ add r6, r7, #0
+ bl MOD73_021DB568
+ add r4, r0, #0
+ mov r0, #0x96
+ ldr r1, [r5]
+ lsl r0, r0, #2
+ cmp r1, r0
+ beq _021DB75A
+ ldr r1, [r5, #8]
+ ldr r0, _021DB7B8 ; =0x021DBF60
+ ldrb r0, [r0, r1]
+ cmp r4, r0
+ blt _021DB774
+_021DB75A:
+ ldr r0, [r5, #8]
+ mov r4, #0
+ add r0, r0, #1
+ str r0, [r5, #8]
+ str r4, [r5]
+ ldr r1, [r5, #8]
+ cmp r1, #3
+ blt _021DB76E
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB76E:
+ ldr r0, [sp]
+ bl MOD73_021DB56C
+_021DB774:
+ mov r0, #0x96
+ ldr r1, [r5]
+ lsl r0, r0, #2
+ sub r1, r0, r1
+ cmp r1, #0x3c
+ bgt _021DB78C
+ mov r0, #0x1f
+ mul r0, r1
+ mov r1, #0x3c
+ bl _s32_div_f
+ add r7, r0, #0
+_021DB78C:
+ ldr r1, [r5, #8]
+ ldr r0, _021DB7B8 ; =0x021DBF60
+ ldrb r0, [r0, r1]
+ sub r1, r0, r4
+ cmp r1, #5
+ bgt _021DB7A4
+ mov r0, #0x1f
+ mul r0, r1
+ mov r1, #5
+ bl _s32_div_f
+ add r6, r0, #0
+_021DB7A4:
+ cmp r7, r6
+ bge _021DB7AC
+ str r7, [r5, #4]
+ b _021DB7AE
+_021DB7AC:
+ str r6, [r5, #4]
+_021DB7AE:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DB7B8: .word 0x021DBF60
+ thumb_func_end MOD73_021DB734
+
+ thumb_func_start MOD73_021DB7BC
+MOD73_021DB7BC: ; 0x021DB7BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ mov r1, #0
+ str r1, [r0, #0xc]
+ add r7, r5, #0
+ add r4, r3, #0
+ str r0, [sp]
+ ldr r1, [sp, #0x18]
+ add r0, r4, #0
+ add r6, r2, #0
+ add r7, #0x98
+ bl MOD73_021DB62C
+ cmp r0, #1
+ beq _021DB7EC
+ ldr r1, [sp, #0x18]
+ add r0, r4, #0
+ bl MOD73_021DB60C
+ cmp r0, #1
+ beq _021DB7EC
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ bne _021DB7F6
+_021DB7EC:
+ ldr r0, [sp]
+ mov r1, #0
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB7F6:
+ cmp r6, #1
+ bgt _021DB804
+ ldr r0, [sp]
+ mov r1, #0
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB804:
+ ldr r0, [sp, #0x20]
+ cmp r0, #1
+ beq _021DB882
+ mov r0, #0
+ cmp r6, #0
+ ble _021DB832
+ mov r2, #0x96
+ mov r4, #0x1c
+ lsl r2, r2, #2
+_021DB816:
+ mov r1, #0x13
+ add r3, r5, r0
+ lsl r1, r1, #4
+ ldrb r1, [r3, r1]
+ add r3, r1, #0
+ mul r3, r4
+ add r1, r5, r3
+ add r1, #0x92
+ ldrh r1, [r1]
+ cmp r1, r2
+ bls _021DB882
+ add r0, r0, #1
+ cmp r0, r6
+ blt _021DB816
+_021DB832:
+ mov r4, #1
+ cmp r6, #1
+ ble _021DB862
+_021DB838:
+ mov r0, #0x13
+ add r1, r5, r4
+ lsl r0, r0, #4
+ ldrb r2, [r1, r0]
+ ldrb r0, [r7]
+ ldrb r1, [r7, #4]
+ add r3, r7, r2
+ ldrb r2, [r7, r2]
+ ldrb r3, [r3, #4]
+ bl FUN_0201CBEC
+ cmp r0, #0x20
+ bls _021DB85C
+ ldr r0, [sp]
+ mov r1, #0
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB85C:
+ add r4, r4, #1
+ cmp r4, r6
+ blt _021DB838
+_021DB862:
+ ldr r0, [sp]
+ ldr r0, [r0, #4]
+ cmp r0, #4
+ bge _021DB872
+ add r1, r0, #1
+ ldr r0, [sp]
+ str r1, [r0, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB872:
+ ldr r0, [sp]
+ mov r2, #1
+ str r2, [r0, #0xc]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp]
+ str r1, [r0]
+ str r2, [r0, #8]
+_021DB882:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021DB7BC
+
+ thumb_func_start MOD73_021DB884
+MOD73_021DB884: ; 0x021DB884
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x68
+ bl Call_FillMemWithValue
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD73_021DB680
+ mov r1, #0
+ mov r0, #0x1f
+ str r0, [r4, #0x50]
+ add r4, #0xc
+ add r0, r4, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD73_021DB698
+ pop {r4, pc}
+ thumb_func_end MOD73_021DB884
+
+ thumb_func_start MOD73_021DB8AC
+MOD73_021DB8AC: ; 0x021DB8AC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r6, r1, #0
+ add r1, r5, #0
+ add r0, #0x4c
+ add r1, #0x1c
+ add r7, r2, #0
+ bl MOD73_021DB734
+ cmp r0, #1
+ bne _021DB8CA
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021DB8CA:
+ add r0, r5, #0
+ ldr r3, [r5, #0xc]
+ add r0, #0x1c
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD73_021DB3DC
+ add r0, r5, #0
+ add r0, #0x1c
+ bl MOD73_021DB584
+ add r4, r0, #0
+ add r0, r5, #0
+ ldr r2, [r5, #0x54]
+ add r0, #0x30
+ add r1, r4, #0
+ bl MOD73_021DB588
+ add r0, r5, #0
+ add r0, #0xc
+ add r1, r4, #0
+ bl MOD73_021DB718
+ ldr r1, [r5, #0x54]
+ add r2, r7, #0
+ str r1, [sp]
+ ldr r1, [r5, #0x2c]
+ add r3, r4, #0
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x58
+ add r1, r6, #0
+ bl MOD73_021DB7BC
+ add r0, r5, #0
+ ldr r1, [r5, #0x54]
+ ldr r3, [r5, #0x60]
+ add r0, #0xc
+ add r2, r4, #0
+ bl MOD73_021DB698
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021DB8AC
+
+ thumb_func_start MOD73_021DB924
+MOD73_021DB924: ; 0x021DB924
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r4, #0xc
+ mov r2, #0
+_021DB92E:
+ add r3, r1, #0
+ add r3, #0x90
+ ldrb r3, [r3]
+ add r0, r4, r2
+ strb r3, [r4, r2]
+ add r3, r1, #0
+ add r3, #0x91
+ ldrb r3, [r3]
+ add r2, r2, #1
+ add r1, #0x1c
+ strb r3, [r0, #4]
+ cmp r2, #4
+ blt _021DB92E
+ add r0, r5, #0
+ add r0, #0x1c
+ bl MOD73_021DB584
+ cmp r0, #0
+ blt _021DB95A
+ strh r0, [r4, #0xa]
+ mov r0, #0
+ b _021DB960
+_021DB95A:
+ neg r0, r0
+ strh r0, [r4, #0xa]
+ mov r0, #1
+_021DB960:
+ strb r0, [r4, #0xc]
+ add r0, r5, #0
+ add r0, #0x1c
+ bl MOD73_021DB560
+ strh r0, [r4, #8]
+ ldr r0, [r5, #0x40]
+ strb r0, [r4, #0x12]
+ ldr r0, [r5, #0x48]
+ strb r0, [r4, #0x13]
+ ldr r0, [r5, #0xc]
+ strb r0, [r4, #0x11]
+ ldr r0, [r5, #0x18]
+ strb r0, [r4, #0xe]
+ ldr r0, [r5, #0x54]
+ cmp r0, #3
+ bge _021DB984
+ b _021DB986
+_021DB984:
+ mov r0, #2
+_021DB986:
+ strb r0, [r4, #0xd]
+ ldr r0, [r5, #0x50]
+ strb r0, [r4, #0x10]
+ ldr r0, [r5, #0x64]
+ strb r0, [r4, #0xf]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB924
+
+ thumb_func_start MOD73_021DB994
+MOD73_021DB994: ; 0x021DB994
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r3, #0
+ mov r1, #0x80
+ mov r0, #0x60
+_021DB9A0:
+ add r2, r4, r3
+ strb r1, [r4, r3]
+ add r3, r3, #1
+ strb r0, [r2, #4]
+ cmp r3, #4
+ blt _021DB9A0
+ add r0, r5, #0
+ add r0, #0x1c
+ bl MOD73_021DB584
+ cmp r0, #0
+ blt _021DB9BE
+ strh r0, [r4, #0xa]
+ mov r0, #0
+ b _021DB9C4
+_021DB9BE:
+ neg r0, r0
+ strh r0, [r4, #0xa]
+ mov r0, #1
+_021DB9C4:
+ strb r0, [r4, #0xc]
+ add r0, r5, #0
+ add r0, #0x1c
+ bl MOD73_021DB560
+ strh r0, [r4, #8]
+ ldr r0, [r5, #0x40]
+ strb r0, [r4, #0x12]
+ ldr r0, [r5, #0x48]
+ strb r0, [r4, #0x13]
+ ldr r0, [r5, #0xc]
+ strb r0, [r4, #0x11]
+ ldr r0, [r5, #0x18]
+ strb r0, [r4, #0xe]
+ ldr r0, [r5, #0x54]
+ strb r0, [r4, #0xd]
+ ldr r0, [r5, #0x50]
+ strb r0, [r4, #0x10]
+ ldr r0, [r5, #0x64]
+ strb r0, [r4, #0xf]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB994
+
+ thumb_func_start MOD73_021DB9F0
+MOD73_021DB9F0: ; 0x021DB9F0
+ ldr r1, [r0]
+ add r1, r1, #1
+ str r1, [r0]
+ bx lr
+ thumb_func_end MOD73_021DB9F0
+
+ thumb_func_start MOD73_021DB9F8
+MOD73_021DB9F8: ; 0x021DB9F8
+ push {r4, lr}
+ add r4, r1, #0
+ mov r1, #6
+ bl _u32_div_f
+ ldr r1, _021DBA1C ; =0x021DBF63
+ ldrb r1, [r1, r4]
+ mul r1, r0
+ add r0, r1, #0
+ mov r1, #0xa
+ bl _u32_div_f
+ ldr r1, _021DBA20 ; =0x0000270F
+ cmp r0, r1
+ ble _021DBA18
+ add r0, r1, #0
+_021DBA18:
+ pop {r4, pc}
+ nop
+_021DBA1C: .word 0x021DBF63
+_021DBA20: .word 0x0000270F
+ thumb_func_end MOD73_021DB9F8
+
+ thumb_func_start MOD73_021DBA24
+MOD73_021DBA24: ; 0x021DBA24
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x60
+ str r0, [sp]
+ ldr r0, [sp, #0x78]
+ str r1, [sp, #4]
+ str r0, [sp, #0x78]
+ add r0, r2, #0
+ str r0, [sp, #0x24]
+ add r0, #0x34
+ str r0, [sp, #0x24]
+ mov r1, #0
+ add r0, sp, #0x4c
+ str r1, [r0]
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ str r1, [r0, #0xc]
+ str r1, [r0, #0x10]
+ add r0, r1, #0
+ add r6, r3, #0
+ str r2, [sp, #8]
+ str r1, [sp, #0x20]
+ str r0, [sp, #0x18]
+ str r0, [sp, #0x28]
+ cmp r6, #0
+ bls _021DBAD6
+_021DBA56:
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #0x28]
+ add r1, r1, r0
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ ldr r1, [sp, #0x78]
+ lsl r4, r0, #2
+ ldr r0, [sp, #0x24]
+ ldr r0, [r0, r4]
+ bl FUN_02085284
+ mov r3, #0
+ add r7, r0, #0
+ add r2, r3, #0
+ cmp r6, #0
+ bls _021DBA98
+ ldr r0, [sp, #0x24]
+ mov r5, #0x13
+ ldr r4, [r0, r4]
+ lsl r5, r5, #4
+_021DBA80:
+ ldr r0, [sp, #8]
+ add r0, r0, r2
+ ldrb r0, [r0, r5]
+ lsl r1, r0, #2
+ ldr r0, [sp, #0x24]
+ ldr r0, [r0, r1]
+ cmp r4, r0
+ bne _021DBA92
+ add r3, r3, #1
+_021DBA92:
+ add r2, r2, #1
+ cmp r2, r6
+ blo _021DBA80
+_021DBA98:
+ ldr r0, [sp, #0x18]
+ cmp r3, r0
+ ble _021DBAA0
+ str r3, [sp, #0x18]
+_021DBAA0:
+ mov r5, #0
+ add r4, sp, #0x4c
+_021DBAA4:
+ add r0, r7, #0
+ add r1, r5, #5
+ bl FUN_02085290
+ ldr r1, [r4]
+ add r5, r5, #1
+ add r0, r1, r0
+ stmia r4!, {r0}
+ cmp r5, #5
+ blt _021DBAA4
+ add r0, r7, #0
+ mov r1, #0xa
+ bl FUN_02085290
+ ldr r1, [sp, #0x20]
+ add r0, r1, r0
+ str r0, [sp, #0x20]
+ add r0, r7, #0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x28]
+ add r0, r0, #1
+ str r0, [sp, #0x28]
+ cmp r0, r6
+ blo _021DBA56
+_021DBAD6:
+ ldr r0, [sp, #0x18]
+ cmp r0, #2
+ blt _021DBAE6
+ cmp r6, #1
+ bls _021DBAE6
+ mov r0, #1
+ str r0, [sp, #0x14]
+ b _021DBAEA
+_021DBAE6:
+ mov r0, #0
+ str r0, [sp, #0x14]
+_021DBAEA:
+ ldr r0, [sp, #0x20]
+ add r1, r6, #0
+ bl _u32_div_f
+ sub r0, r0, r6
+ mov r5, #0
+ add r4, sp, #0x4c
+ str r0, [sp, #0x1c]
+ str r5, [sp, #0xc]
+ add r7, sp, #0x38
+ str r4, [sp, #0x2c]
+_021DBB00:
+ ldr r0, [sp, #0xc]
+ mov r1, #5
+ add r0, r0, #1
+ bl _s32_div_f
+ lsl r2, r1, #2
+ ldr r1, [sp, #0x2c]
+ ldr r0, [r4]
+ ldr r1, [r1, r2]
+ sub r0, r0, r1
+ str r0, [r7]
+ bpl _021DBB1A
+ add r5, r5, #1
+_021DBB1A:
+ ldr r0, [sp, #0xc]
+ add r4, r4, #4
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #0xc]
+ cmp r0, #5
+ blt _021DBB00
+ mov r2, #0
+ add r1, sp, #0x38
+_021DBB2C:
+ ldr r0, [r1]
+ add r2, r2, #1
+ sub r0, r0, r5
+ stmia r1!, {r0}
+ cmp r2, #5
+ blt _021DBB2C
+ cmp r5, #4
+ blt _021DBB40
+ mov r0, #1
+ str r0, [sp, #0x14]
+_021DBB40:
+ ldr r1, [sp]
+ ldr r0, _021DBBF8 ; =0x001B7740
+ ldr r1, [r1]
+ bl _u32_div_f
+ mov r1, #0xa
+ add r5, r0, #0
+ bl _s32_div_f
+ cmp r1, #5
+ blt _021DBB58
+ add r5, #0xa
+_021DBB58:
+ add r0, r5, #0
+ mov r1, #0xa
+ mov r7, #0
+ add r4, sp, #0x38
+ bl _s32_div_f
+ str r0, [sp, #0x10]
+_021DBB66:
+ ldr r0, [sp, #0x10]
+ ldr r1, [r4]
+ add r5, r0, #0
+ mul r5, r1
+ add r0, r5, #0
+ mov r1, #0x64
+ bl _s32_div_f
+ cmp r1, #0x32
+ blt _021DBB7C
+ add r5, #0x64
+_021DBB7C:
+ add r0, r5, #0
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r1, [sp]
+ ldr r2, [r1, #0x30]
+ ldr r1, [r1, #0x34]
+ add r1, r2, r1
+ sub r0, r0, r1
+ str r0, [r4]
+ bpl _021DBB96
+ mov r0, #0
+ str r0, [r4]
+_021DBB96:
+ add r7, r7, #1
+ add r4, r4, #4
+ cmp r7, #5
+ blt _021DBB66
+ cmp r6, #1
+ bls _021DBBB8
+ ldr r0, [sp]
+ add r1, r6, #0
+ ldr r0, [r0, #0x58]
+ bl MOD73_021DB9F8
+ cmp r0, #0xa
+ ble _021DBBB2
+ mov r0, #0xa
+_021DBBB2:
+ ldr r1, [sp, #0x1c]
+ sub r0, r1, r0
+ str r0, [sp, #0x1c]
+_021DBBB8:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0xf
+ bge _021DBBC2
+ mov r0, #0xf
+ str r0, [sp, #0x1c]
+_021DBBC2:
+ mov r3, #0
+ add r1, sp, #0x38
+ add r2, sp, #0x30
+_021DBBC8:
+ ldr r0, [r1]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r1, r1, #4
+ add r2, r2, #1
+ cmp r3, #5
+ blt _021DBBC8
+ ldr r2, [sp, #0x1c]
+ ldr r0, [sp, #4]
+ lsl r2, r2, #0x18
+ ldr r3, [sp, #0x14]
+ add r1, sp, #0x30
+ lsr r2, r2, #0x18
+ bl FUN_02027F04
+ ldr r1, [sp]
+ str r0, [r1, #4]
+ ldr r0, [sp, #4]
+ bl FUN_02027FDC
+ ldr r1, [sp]
+ str r0, [r1, #8]
+ add sp, #0x60
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DBBF8: .word 0x001B7740
+ thumb_func_end MOD73_021DBA24
+
+ thumb_func_start MOD73_021DBBFC
+MOD73_021DBBFC: ; 0x021DBBFC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x34]
+ add r4, r1, #0
+ str r0, [r1, #0x20]
+ ldr r0, [r5, #0x30]
+ add r4, #0x20
+ str r0, [r4, #4]
+ ldr r0, [r5, #0x58]
+ add r1, r2, #0
+ bl MOD73_021DB9F8
+ str r0, [r4, #8]
+ ldr r0, [r5, #4]
+ ldr r1, _021DBC54 ; =0x00000708
+ strb r0, [r4, #0xc]
+ ldr r0, [r5, #8]
+ strb r0, [r4, #0xd]
+ ldr r5, [r5]
+ add r0, r5, #0
+ bl _s32_div_f
+ strb r0, [r4, #0xe]
+ ldrb r1, [r4, #0xe]
+ ldr r0, _021DBC54 ; =0x00000708
+ mul r0, r1
+ sub r5, r5, r0
+ add r0, r5, #0
+ mov r1, #0x1e
+ bl _s32_div_f
+ strb r0, [r4, #0xf]
+ ldrb r0, [r4, #0xf]
+ mov r1, #0x1e
+ add r2, r0, #0
+ mul r2, r1
+ sub r2, r5, r2
+ mov r0, #0x64
+ mul r0, r2
+ bl _s32_div_f
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+ nop
+_021DBC54: .word 0x00000708
+ thumb_func_end MOD73_021DBBFC
+
+ .section .rodata
+ ; 0x021DBC58
+ .incbin "baserom.nds", 0x2CE578, 0x318
+
+ .section .data
+ ; 0x021DBF80
+ .incbin "baserom.nds", 0x2CE8A0, 0x40
diff --git a/arm9/modules/74/asm/module_74.s b/arm9/modules/74/asm/module_74.s
new file mode 100644
index 00000000..416745d9
--- /dev/null
+++ b/arm9/modules/74/asm/module_74.s
@@ -0,0 +1,2022 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD74_021D74E0
+MOD74_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl FUN_0200628C
+ mov r2, #1
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x4a
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ mov r1, #0xad
+ add r0, r4, #0
+ lsl r1, r1, #2
+ mov r2, #0x4a
+ bl FUN_02006268
+ mov r2, #0xad
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strb r0, [r4, #0xa]
+ ldr r0, [r5]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x18]
+ ldr r0, [r5]
+ bl FUN_02029FC8
+ str r0, [r4, #0x1c]
+ ldr r0, [r5]
+ bl FUN_0202A8D8
+ str r0, [r4, #0x20]
+ ldr r0, [r5]
+ bl FUN_0202A8E4
+ str r0, [r4, #0x24]
+ mov r0, #0x4a
+ str r0, [r4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D74E0
+
+ thumb_func_start MOD74_021D7540
+MOD74_021D7540: ; 0x021D7540
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200627C
+ ldr r0, [r4]
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D7540
+
+ thumb_func_start MOD74_021D755C
+MOD74_021D755C: ; 0x021D755C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ bl FUN_02006278
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #4
+ bhi _021D760C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D757A: ; jump table
+ .short _021D7584 - _021D757A - 2 ; case 0
+ .short _021D75AA - _021D757A - 2 ; case 1
+ .short _021D75BA - _021D757A - 2 ; case 2
+ .short _021D75EE - _021D757A - 2 ; case 3
+ .short _021D75FE - _021D757A - 2 ; case 4
+_021D7584:
+ bl MOD74_021D7624
+ cmp r0, #0
+ beq _021D760C
+ mov r0, #6
+ mov r1, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r5]
+ add r2, r1, #0
+ str r0, [sp, #8]
+ mov r0, #3
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D760C
+_021D75AA:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D760C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D760C
+_021D75BA:
+ ldrh r1, [r5, #8]
+ cmp r1, #0
+ bne _021D75C6
+ bl MOD74_021D77AC
+ b _021D75CA
+_021D75C6:
+ bl MOD74_021D790C
+_021D75CA:
+ cmp r0, #0
+ beq _021D760C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ mov r1, #0
+ str r0, [sp, #4]
+ ldr r0, [r5]
+ add r2, r1, #0
+ str r0, [sp, #8]
+ mov r0, #3
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D760C
+_021D75EE:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D760C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D760C
+_021D75FE:
+ bl MOD74_021D76E8
+ cmp r0, #0
+ beq _021D760C
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021D760C:
+ ldr r0, [r4]
+ cmp r0, #1
+ blt _021D761C
+ cmp r0, #3
+ bgt _021D761C
+ add r0, r5, #0
+ bl MOD74_021D82D4
+_021D761C:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D755C
+
+ thumb_func_start MOD74_021D7624
+MOD74_021D7624: ; 0x021D7624
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #4
+ bhi _021D76D2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D763A: ; jump table
+ .short _021D7644 - _021D763A - 2 ; case 0
+ .short _021D7684 - _021D763A - 2 ; case 1
+ .short _021D7690 - _021D763A - 2 ; case 2
+ .short _021D76B6 - _021D763A - 2 ; case 3
+ .short _021D76C2 - _021D763A - 2 ; case 4
+_021D7644:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D76DC ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D76E0 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ bl MOD74_021D7764
+ mov r0, #0
+ bl FUN_0200E388
+ mov r0, #1
+ bl FUN_0200E388
+ add r0, r4, #0
+ bl MOD74_021D7934
+ b _021D76D2
+_021D7684:
+ bl MOD74_021D79F8
+ add r0, r4, #0
+ bl MOD74_021D7B20
+ b _021D76D2
+_021D7690:
+ bl MOD74_021D7A88
+ ldrh r0, [r4, #8]
+ cmp r0, #0
+ bne _021D76A8
+ add r0, r4, #0
+ bl MOD74_021D7D1C
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _021D76D2
+_021D76A8:
+ add r0, r4, #0
+ bl MOD74_021D7E9C
+ add r0, r4, #0
+ bl MOD74_021D8008
+ b _021D76D2
+_021D76B6:
+ bl MOD74_021D8200
+ add r0, r4, #0
+ bl MOD74_021D82F0
+ b _021D76D2
+_021D76C2:
+ ldr r0, _021D76E4 ; =MOD74_021D7784
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r0, #0
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021D76D2:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D76DC: .word 0xFFFFE0FF
+_021D76E0: .word 0x04001000
+_021D76E4: .word MOD74_021D7784
+ thumb_func_end MOD74_021D7624
+
+ thumb_func_start MOD74_021D76E8
+MOD74_021D76E8: ; 0x021D76E8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ beq _021D76F8
+ cmp r1, #1
+ beq _021D7722
+ b _021D7752
+_021D76F8:
+ ldrh r1, [r4, #8]
+ cmp r1, #0
+ beq _021D770E
+ bl MOD74_021D836C
+ add r0, r4, #0
+ bl MOD74_021D82B0
+ add r0, r4, #0
+ bl MOD74_021D7F28
+_021D770E:
+ add r0, r4, #0
+ bl MOD74_021D7AF0
+ add r0, r4, #0
+ bl MOD74_021D7BB4
+ add r0, r4, #0
+ bl MOD74_021D79C8
+ b _021D7752
+_021D7722:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D775C ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D7760 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #0
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021D7752:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D775C: .word 0xFFFFE0FF
+_021D7760: .word 0x04001000
+ thumb_func_end MOD74_021D76E8
+
+ thumb_func_start MOD74_021D7764
+MOD74_021D7764: ; 0x021D7764
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D7780 ; =0x021D8518
+ add r3, sp, #0
+ mov r2, #5
+_021D776E:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D776E
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D7780: .word 0x021D8518
+ thumb_func_end MOD74_021D7764
+
+ thumb_func_start MOD74_021D7784
+MOD74_021D7784: ; 0x021D7784
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD74_021D82E8
+ bl FUN_020AEEB8
+ ldr r0, [r4, #0x10]
+ bl FUN_0201AB60
+ ldr r3, _021D77A4 ; =0x027E0000
+ ldr r1, _021D77A8 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .align 2, 0
+_021D77A4: .word 0x027E0000
+_021D77A8: .word 0x00003FF8
+ thumb_func_end MOD74_021D7784
+
+ thumb_func_start MOD74_021D77AC
+MOD74_021D77AC: ; 0x021D77AC
+ ldr r0, _021D77C0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D77BA
+ mov r0, #1
+ bx lr
+_021D77BA:
+ mov r0, #0
+ bx lr
+ nop
+_021D77C0: .word 0x021C48B8
+ thumb_func_end MOD74_021D77AC
+
+ thumb_func_start MOD74_021D77C4
+MOD74_021D77C4: ; 0x021D77C4
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ ldr r1, _021D78B8 ; =0x021C48B8
+ add r4, r0, #0
+ ldr r2, [r1, #0x48]
+ mov r1, #2
+ mov r3, #0
+ tst r1, r2
+ beq _021D77DC
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D77DC:
+ mov r1, #1
+ add r5, r2, #0
+ tst r5, r1
+ beq _021D7800
+ ldrb r2, [r4, #0xb]
+ cmp r2, #0xa
+ blo _021D77F0
+ add sp, #8
+ add r0, r1, #0
+ pop {r3, r4, r5, pc}
+_021D77F0:
+ ldrb r1, [r4, #0xd]
+ add r1, r1, #1
+ strb r1, [r4, #0xd]
+ bl MOD74_021D80D0
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D7800:
+ mov r0, #0x40
+ tst r0, r2
+ beq _021D7828
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0
+ beq _021D787A
+ sub r0, r0, #1
+ strb r0, [r4, #0xb]
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ bne _021D7820
+ ldrb r0, [r4, #0xe]
+ add r3, r1, #0
+ sub r0, r0, #1
+ strb r0, [r4, #0xe]
+ b _021D787A
+_021D7820:
+ sub r0, r0, #1
+ strb r0, [r4, #0xf]
+ add r3, r1, #0
+ b _021D787A
+_021D7828:
+ mov r0, #0x80
+ tst r0, r2
+ beq _021D7850
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0xa
+ bhs _021D787A
+ add r0, r0, #1
+ strb r0, [r4, #0xb]
+ ldrb r0, [r4, #0xf]
+ cmp r0, #1
+ bls _021D7848
+ ldrb r0, [r4, #0xe]
+ add r3, r1, #0
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ b _021D787A
+_021D7848:
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ add r3, r1, #0
+ b _021D787A
+_021D7850:
+ mov r0, #0x20
+ tst r0, r2
+ beq _021D7866
+ ldrb r0, [r4, #0xc]
+ mov r1, #3
+ add r0, r0, #2
+ bl _s32_div_f
+ strb r1, [r4, #0xc]
+ mov r3, #1
+ b _021D787A
+_021D7866:
+ mov r0, #0x10
+ tst r0, r2
+ beq _021D787A
+ ldrb r0, [r4, #0xc]
+ mov r1, #3
+ add r0, r0, #1
+ bl _s32_div_f
+ strb r1, [r4, #0xc]
+ mov r3, #1
+_021D787A:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0xa
+ bne _021D7884
+ mov r0, #2
+ strb r0, [r4, #0xc]
+_021D7884:
+ cmp r3, #0
+ bne _021D788E
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D788E:
+ ldrb r1, [r4, #0xb]
+ ldrb r2, [r4, #0xc]
+ ldrb r3, [r4, #0xf]
+ add r0, r4, #0
+ bl MOD74_021D83D4
+ ldrb r0, [r4, #0xb]
+ add r1, r4, #0
+ add r1, #0x7c
+ str r0, [sp]
+ ldrb r0, [r4, #0xc]
+ str r0, [sp, #4]
+ add r0, r4, #0
+ ldrb r3, [r4, #0xe]
+ ldr r2, [r4, #0x34]
+ add r0, #0xbc
+ bl MOD74_021D7F44
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D78B8: .word 0x021C48B8
+ thumb_func_end MOD74_021D77C4
+
+ thumb_func_start MOD74_021D78BC
+MOD74_021D78BC: ; 0x021D78BC
+ push {r4, lr}
+ ldr r1, _021D78E8 ; =0x021C48B8
+ add r4, r0, #0
+ ldr r2, [r1, #0x48]
+ mov r1, #1
+ tst r1, r2
+ beq _021D78D6
+ bl MOD74_021D818C
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ b _021D78E4
+_021D78D6:
+ mov r1, #2
+ tst r1, r2
+ beq _021D78E4
+ bl MOD74_021D81E0
+ mov r0, #0
+ strb r0, [r4, #0xd]
+_021D78E4:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D78E8: .word 0x021C48B8
+ thumb_func_end MOD74_021D78BC
+
+ thumb_func_start MOD74_021D78EC
+MOD74_021D78EC: ; 0x021D78EC
+ push {r4, lr}
+ ldr r1, _021D7908 ; =0x021C48B8
+ add r4, r0, #0
+ ldr r2, [r1, #0x48]
+ mov r1, #3
+ tst r1, r2
+ beq _021D7902
+ bl MOD74_021D81E0
+ mov r0, #0
+ strb r0, [r4, #0xd]
+_021D7902:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021D7908: .word 0x021C48B8
+ thumb_func_end MOD74_021D78EC
+
+ thumb_func_start MOD74_021D790C
+MOD74_021D790C: ; 0x021D790C
+ push {r3, lr}
+ ldrb r1, [r0, #0xd]
+ cmp r1, #0
+ beq _021D791E
+ cmp r1, #1
+ beq _021D7924
+ cmp r1, #2
+ beq _021D792A
+ b _021D7930
+_021D791E:
+ bl MOD74_021D77C4
+ pop {r3, pc}
+_021D7924:
+ bl MOD74_021D78BC
+ pop {r3, pc}
+_021D792A:
+ bl MOD74_021D78EC
+ pop {r3, pc}
+_021D7930:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD74_021D790C
+
+ thumb_func_start MOD74_021D7934
+MOD74_021D7934: ; 0x021D7934
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x64
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl FUN_02016B94
+ add r3, sp, #0
+ ldr r4, _021D79C0 ; =0x021D84A0
+ str r0, [r5, #0x10]
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r4, _021D79C4 ; =0x021D8570
+ add r3, sp, #0x10
+ mov r2, #0xa
+_021D795C:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D795C
+ ldr r0, [r4]
+ mov r4, #0
+ str r0, [r3]
+ ldrh r0, [r5, #8]
+ add r7, r4, #0
+ add r0, r0, #2
+ cmp r0, #0
+ ble _021D799C
+ add r6, sp, #0x10
+_021D7976:
+ lsl r1, r4, #0x18
+ ldr r0, [r5, #0x10]
+ lsr r1, r1, #0x18
+ add r2, r6, #0
+ mov r3, #0
+ bl FUN_02016C18
+ lsl r1, r4, #0x18
+ ldr r0, [r5, #0x10]
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ ldrh r0, [r5, #8]
+ add r7, r7, #1
+ add r4, r4, #1
+ add r0, r0, #2
+ add r6, #0x1c
+ cmp r7, r0
+ blt _021D7976
+_021D799C:
+ mov r0, #0
+ ldr r3, [r5]
+ mov r1, #0x20
+ add r2, r0, #0
+ bl FUN_02017F18
+ ldrh r0, [r5, #8]
+ cmp r0, #0
+ beq _021D79BA
+ ldr r3, [r5]
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+_021D79BA:
+ add sp, #0x64
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D79C0: .word 0x021D84A0
+_021D79C4: .word 0x021D8570
+ thumb_func_end MOD74_021D7934
+
+ thumb_func_start MOD74_021D79C8
+MOD74_021D79C8: ; 0x021D79C8
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldrh r0, [r6, #8]
+ mov r5, #0
+ add r4, r5, #0
+ add r0, r0, #2
+ cmp r0, #0
+ ble _021D79EE
+_021D79D8:
+ lsl r1, r5, #0x18
+ ldr r0, [r6, #0x10]
+ lsr r1, r1, #0x18
+ add r5, r5, #1
+ bl FUN_020178A0
+ ldrh r0, [r6, #8]
+ add r4, r4, #1
+ add r0, r0, #2
+ cmp r4, r0
+ blt _021D79D8
+_021D79EE:
+ ldr r0, [r6, #0x10]
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D79C8
+
+ thumb_func_start MOD74_021D79F8
+MOD74_021D79F8: ; 0x021D79F8
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r1, [r5]
+ mov r0, #0x7b
+ bl FUN_02006670
+ add r4, r0, #0
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x7b
+ bl FUN_02079B60
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0x40
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x7b
+ bl FUN_02079B60
+ ldrh r0, [r5, #8]
+ cmp r0, #1
+ bne _021D7A4E
+ mov r0, #7
+ b _021D7A5A
+_021D7A4E:
+ ldrb r0, [r5, #0xa]
+ cmp r0, #2
+ bne _021D7A58
+ mov r0, #8
+ b _021D7A5A
+_021D7A58:
+ mov r0, #6
+_021D7A5A:
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x7b
+ bl FUN_02079B60
+ add r0, r4, #0
+ bl FUN_020066F4
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ bl FUN_0201AC68
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D79F8
+
+ thumb_func_start MOD74_021D7A88
+MOD74_021D7A88: ; 0x021D7A88
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldrh r0, [r6, #8]
+ cmp r0, #0
+ bne _021D7AB8
+ add r5, r6, #0
+ ldr r4, _021D7AE8 ; =0x021D8540
+ mov r7, #0
+ add r5, #0x6c
+_021D7A9A:
+ ldr r0, [r6, #0x10]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl FUN_02019150
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r7, r7, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r7, #5
+ blt _021D7A9A
+ b _021D7ADC
+_021D7AB8:
+ add r5, r6, #0
+ ldr r4, _021D7AEC ; =0x021D84C4
+ mov r7, #0
+ add r5, #0x6c
+_021D7AC0:
+ ldr r0, [r6, #0x10]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl FUN_02019150
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r7, r7, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r7, #3
+ blt _021D7AC0
+_021D7ADC:
+ ldr r2, [r6]
+ mov r0, #0
+ mov r1, #0x40
+ bl FUN_02002ED0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7AE8: .word 0x021D8540
+_021D7AEC: .word 0x021D84C4
+ thumb_func_end MOD74_021D7A88
+
+ thumb_func_start MOD74_021D7AF0
+MOD74_021D7AF0: ; 0x021D7AF0
+ push {r4, r5, r6, lr}
+ ldrh r1, [r0, #8]
+ cmp r1, #0
+ bne _021D7AFC
+ mov r6, #5
+ b _021D7AFE
+_021D7AFC:
+ mov r6, #3
+_021D7AFE:
+ mov r4, #0
+ cmp r6, #0
+ ble _021D7B1C
+ add r5, r0, #0
+ add r5, #0x6c
+_021D7B08:
+ add r0, r5, #0
+ bl FUN_02019570
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, r6
+ blt _021D7B08
+_021D7B1C:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D7AF0
+
+ thumb_func_start MOD74_021D7B20
+MOD74_021D7B20: ; 0x021D7B20
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r3, [r5]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0x11
+ bl FUN_0200A86C
+ str r0, [r5, #0x28]
+ ldr r2, [r5]
+ mov r0, #2
+ mov r1, #0x4c
+ bl FUN_0200AA90
+ str r0, [r5, #0x2c]
+ ldr r1, [r5]
+ mov r0, #0x4c
+ bl FUN_020219F4
+ str r0, [r5, #0x30]
+ mov r6, #0
+ add r4, r5, #0
+_021D7B4C:
+ add r1, r6, #0
+ ldr r0, [r5, #0x28]
+ add r1, #9
+ bl FUN_0200A914
+ str r0, [r4, #0x4c]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #6
+ blt _021D7B4C
+ ldr r0, [r5, #0x28]
+ mov r1, #0xf
+ bl FUN_0200A914
+ str r0, [r5, #0x38]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x11
+ bl FUN_0200A914
+ str r0, [r5, #0x3c]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x12
+ bl FUN_0200A914
+ str r0, [r5, #0x34]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x13
+ bl FUN_0200A914
+ str r0, [r5, #0x40]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x14
+ bl FUN_0200A914
+ str r0, [r5, #0x44]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x15
+ bl FUN_0200A914
+ str r0, [r5, #0x48]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x16
+ bl FUN_0200A914
+ str r0, [r5, #0x64]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x17
+ bl FUN_0200A914
+ str r0, [r5, #0x68]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D7B20
+
+ thumb_func_start MOD74_021D7BB4
+MOD74_021D7BB4: ; 0x021D7BB4
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x68]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x64]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x48]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x44]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x40]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x34]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x3c]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x38]
+ bl FUN_02021A20
+ mov r4, #0
+ add r5, r6, #0
+_021D7BEC:
+ ldr r0, [r5, #0x4c]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _021D7BEC
+ ldr r0, [r6, #0x30]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x2c]
+ bl FUN_0200AB18
+ ldr r0, [r6, #0x28]
+ bl FUN_0200A8B8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D7BB4
+
+ thumb_func_start MOD74_021D7C10
+MOD74_021D7C10: ; 0x021D7C10
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r7, r3, #0
+ add r4, r1, #0
+ ldr r0, [r5, #0x1c]
+ add r1, r7, #0
+ add r6, r2, #0
+ bl FUN_0202A150
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x1c]
+ add r1, r7, #1
+ bl FUN_0202A150
+ lsl r0, r0, #0x10
+ add r6, #8
+ lsr r7, r0, #0x10
+ lsl r1, r6, #0x10
+ ldr r0, [r5, #0x20]
+ lsr r1, r1, #0x10
+ mov r2, #0
+ bl FUN_0202A578
+ lsl r2, r0, #0x10
+ add r0, sp, #0x18
+ ldrb r6, [r0, #0x10]
+ lsr r2, r2, #0xe
+ mov r0, #0xff
+ str r6, [sp]
+ str r0, [sp, #4]
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ add r2, r5, r2
+ ldr r2, [r2, #0x4c]
+ add r0, r4, #0
+ mov r3, #4
+ bl FUN_0201BDE0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x2c]
+ mov r1, #0
+ add r2, r7, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r0, [r5, #0x2c]
+ ldr r1, [r5, #0x30]
+ ldr r2, [r5, #0x5c]
+ bl FUN_0200B7B8
+ mov r0, #0
+ ldr r1, [r5, #0x30]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xa4
+ sub r3, r1, r0
+ str r6, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7D18 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x30]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+ add r0, sp, #0x18
+ ldrb r0, [r0, #0x10]
+ add r0, #0x18
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ str r6, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x54]
+ add r0, r4, #0
+ mov r3, #4
+ bl FUN_0201BDE0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x2c]
+ ldr r2, [sp, #0x10]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r0, [r5, #0x2c]
+ ldr r1, [r5, #0x30]
+ ldr r2, [r5, #0x5c]
+ bl FUN_0200B7B8
+ mov r0, #0
+ ldr r1, [r5, #0x30]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xa4
+ sub r3, r1, r0
+ str r6, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7D18 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x30]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_020191D0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D7D18: .word 0x00010200
+ thumb_func_end MOD74_021D7C10
+
+ thumb_func_start MOD74_021D7D1C
+MOD74_021D7D1C: ; 0x021D7D1C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldrb r1, [r4, #0xa]
+ ldr r0, [r4, #0x28]
+ ldr r2, [r4, #0x30]
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r4, #0x30]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xc0
+ sub r3, r1, r0
+ mov r0, #8
+ str r0, [sp]
+ mov r1, #0
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ ldr r0, _021D7E94 ; =0x000F0200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x6c
+ asr r3, r5, #1
+ bl FUN_0201BDE0
+ ldrb r1, [r4, #0xa]
+ ldr r0, [r4, #0x28]
+ ldr r2, [r4, #0x30]
+ add r1, r1, #3
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xc1
+ str r1, [sp, #4]
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x7c
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldrb r1, [r4, #0xa]
+ ldr r0, [r4, #0x28]
+ ldr r2, [r4, #0x30]
+ add r1, r1, #6
+ bl FUN_0200A8E0
+ mov r0, #3
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #0xc1
+ str r1, [sp, #4]
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x8c
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ beq _021D7DB8
+ cmp r0, #1
+ beq _021D7DDE
+ cmp r0, #2
+ beq _021D7E04
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_021D7DB8:
+ add r1, r4, #0
+ mov r2, #0
+ add r0, r4, #0
+ add r1, #0x9c
+ mov r3, #0x35
+ str r2, [sp]
+ bl MOD74_021D7C10
+ mov r0, #3
+ str r0, [sp]
+ add r0, r4, #0
+ add r4, #0xac
+ add r1, r4, #0
+ mov r2, #1
+ mov r3, #0x37
+ bl MOD74_021D7C10
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_021D7DDE:
+ mov r0, #0
+ add r1, r4, #0
+ str r0, [sp]
+ add r0, r4, #0
+ add r1, #0x9c
+ mov r2, #2
+ mov r3, #0x39
+ bl MOD74_021D7C10
+ add r0, r4, #0
+ add r4, #0xac
+ mov r2, #3
+ add r1, r4, #0
+ mov r3, #0x3b
+ str r2, [sp]
+ bl MOD74_021D7C10
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_021D7E04:
+ ldr r0, [r4, #0x28]
+ ldr r2, [r4, #0x30]
+ mov r1, #0xc
+ bl FUN_0200A8E0
+ mov r0, #0xa
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #0xc1
+ str r1, [sp, #4]
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x9c
+ mov r3, #4
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0x20]
+ mov r1, #0
+ bl FUN_0202A444
+ mov r1, #0
+ add r2, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x2c]
+ mov r3, #2
+ bl FUN_0200AD38
+ ldr r0, [r4, #0x2c]
+ ldr r1, [r4, #0x30]
+ ldr r2, [r4, #0x60]
+ bl FUN_0200B7B8
+ mov r0, #0
+ ldr r1, [r4, #0x30]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x40
+ sub r1, r1, r0
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r3, r0, #1
+ mov r0, #0xa
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D7E98 ; =0x00050600
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r3, #0x40
+ add r0, #0x9c
+ bl FUN_0201BDE0
+ mov r0, #3
+ str r0, [sp]
+ add r0, r4, #0
+ add r4, #0xac
+ add r1, r4, #0
+ mov r2, #4
+ mov r3, #0x3d
+ bl MOD74_021D7C10
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D7E94: .word 0x000F0200
+_021D7E98: .word 0x00050600
+ thumb_func_end MOD74_021D7D1C
+
+ thumb_func_start MOD74_021D7E9C
+MOD74_021D7E9C: ; 0x021D7E9C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ ldr r0, [r7, #0x24]
+ ldr r1, [r7]
+ bl FUN_0202A878
+ str r0, [sp]
+ ldr r5, [sp]
+ mov r0, #0
+ add r4, r7, #0
+ str r0, [sp, #4]
+ add r4, #0xbc
+ add r6, r5, #0
+_021D7EB8:
+ add r0, r5, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r4, #0
+ add r1, #8
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ strb r0, [r4, #4]
+ ldrb r0, [r5, #0x12]
+ mov r2, #8
+ strb r0, [r4, #5]
+ ldrb r0, [r5, #0x13]
+ strb r0, [r4, #6]
+ add r0, r5, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ strb r0, [r4, #7]
+ add r0, r5, #0
+ add r0, #0x18
+ bl MI_CpuCopy8
+ ldr r1, [r7]
+ mov r0, #8
+ bl FUN_020219F4
+ str r0, [r4]
+ ldrb r0, [r4, #7]
+ cmp r0, #0
+ ldr r0, [r4]
+ beq _021D7F06
+ ldrb r1, [r4, #4]
+ lsl r1, r1, #2
+ add r1, r7, r1
+ ldr r1, [r1, #0x64]
+ bl FUN_02021A74
+ b _021D7F0C
+_021D7F06:
+ add r1, r6, #0
+ bl FUN_02021E28
+_021D7F0C:
+ ldr r0, [sp, #4]
+ add r4, #0x10
+ add r0, r0, #1
+ add r5, #0x22
+ add r6, #0x22
+ str r0, [sp, #4]
+ cmp r0, #0x1e
+ blt _021D7EB8
+ ldr r0, [sp]
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D7E9C
+
+ thumb_func_start MOD74_021D7F28
+MOD74_021D7F28: ; 0x021D7F28
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021D7F2E:
+ add r0, r5, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #0x1e
+ blt _021D7F2E
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D7F28
+
+ thumb_func_start MOD74_021D7F44
+MOD74_021D7F44: ; 0x021D7F44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, r1, #0
+ mov r1, #0
+ add r5, r2, #0
+ add r4, r3, #0
+ bl FUN_02019620
+ cmp r4, #8
+ blo _021D7F8C
+ mov r0, #2
+ str r0, [sp, #0x18]
+ mov r0, #0
+ add r1, r5, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x28
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #0x34
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7FFC ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x14]
+ add r2, r5, #0
+ add r3, #0xa0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ b _021D7F90
+_021D7F8C:
+ mov r0, #3
+ str r0, [sp, #0x18]
+_021D7F90:
+ lsl r0, r4, #1
+ add r0, r4, r0
+ str r0, [sp, #0x1c]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ ble _021D7FF0
+ ldr r7, [sp, #0x20]
+ mov r6, #4
+_021D7FA4:
+ mov r4, #0
+ add r5, r4, #0
+_021D7FA8:
+ ldr r0, [sp, #0x1c]
+ add r1, r4, r7
+ add r0, r0, r1
+ lsl r1, r0, #4
+ ldr r0, [sp, #0x10]
+ add r2, r0, r1
+ ldrb r0, [r2, #4]
+ cmp r0, #0
+ beq _021D7FBE
+ ldr r1, _021D8000 ; =0x000B0C00
+ b _021D7FC0
+_021D7FBE:
+ ldr r1, _021D8004 ; =0x00090A00
+_021D7FC0:
+ str r6, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ ldr r2, [r2]
+ mov r1, #0
+ add r3, r5, #0
+ bl FUN_0201BDE0
+ add r4, r4, #1
+ add r5, #0x48
+ cmp r4, #3
+ blt _021D7FA8
+ ldr r0, [sp, #0x20]
+ add r7, r7, #3
+ add r1, r0, #1
+ ldr r0, [sp, #0x18]
+ add r6, #0x18
+ str r1, [sp, #0x20]
+ cmp r1, r0
+ blt _021D7FA4
+_021D7FF0:
+ ldr r0, [sp, #0x14]
+ bl FUN_020191D0
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D7FFC: .word 0x00010200
+_021D8000: .word 0x000B0C00
+_021D8004: .word 0x00090A00
+ thumb_func_end MOD74_021D7F44
+
+ thumb_func_start MOD74_021D8008
+MOD74_021D8008: ; 0x021D8008
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldr r0, [r4, #0x24]
+ add r1, sp, #0x10
+ bl FUN_0202A864
+ ldr r0, [r4, #0x30]
+ bl FUN_02021A4C
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r2, sp, #0x10
+ ldrb r2, [r2]
+ ldr r0, [r4, #0x2c]
+ mov r3, #2
+ bl FUN_0200AD38
+ mov r0, #2
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ add r2, sp, #0x10
+ ldrb r2, [r2, #1]
+ ldr r0, [r4, #0x2c]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, [r4, #0x2c]
+ ldr r1, [r4, #0x30]
+ ldr r2, [r4, #0x38]
+ bl FUN_0200B7B8
+ mov r0, #0
+ ldr r1, [r4, #0x30]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xc0
+ sub r3, r1, r0
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D80CC ; =0x000F0200
+ lsr r5, r3, #0x1f
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ add r5, r3, r5
+ ldr r2, [r4, #0x30]
+ add r0, #0x6c
+ asr r3, r5, #1
+ bl FUN_0201BDE0
+ ldrb r1, [r4, #0xa]
+ ldr r0, [r4, #0x28]
+ ldr r2, [r4, #0x30]
+ add r1, #0x10
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r4, #0x30]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xc0
+ sub r3, r1, r0
+ mov r0, #0x14
+ str r0, [sp]
+ mov r1, #0
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ ldr r0, _021D80CC ; =0x000F0200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x6c
+ asr r3, r5, #1
+ bl FUN_0201BDE0
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r2, [r4, #0x34]
+ add r0, #0xbc
+ add r1, #0x7c
+ bl MOD74_021D7F44
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D80CC: .word 0x000F0200
+ thumb_func_end MOD74_021D8008
+
+ thumb_func_start MOD74_021D80D0
+MOD74_021D80D0: ; 0x021D80D0
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldrb r2, [r4, #0xb]
+ ldrb r3, [r4, #0xc]
+ add r0, #0xbc
+ lsl r1, r2, #1
+ add r1, r2, r1
+ add r1, r3, r1
+ lsl r1, r1, #4
+ add r5, r0, r1
+ ldrb r2, [r5, #5]
+ cmp r2, #0
+ bne _021D8108
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D8188 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x48]
+ add r0, #0x8c
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ b _021D8172
+_021D8108:
+ ldrb r0, [r5, #6]
+ cmp r0, #0
+ ldr r0, [r4, #0x2c]
+ bne _021D813C
+ mov r1, #0
+ bl FUN_0200B4A0
+ ldr r0, [r4, #0x2c]
+ ldr r1, [r4, #0x30]
+ ldr r2, [r4, #0x44]
+ bl FUN_0200B7B8
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D8188 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x8c
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ b _021D8172
+_021D813C:
+ mov r1, #0
+ bl FUN_0200B4A0
+ ldrb r2, [r5, #5]
+ ldrb r3, [r5, #6]
+ ldr r0, [r4, #0x2c]
+ mov r1, #1
+ bl FUN_0200B4D8
+ ldr r0, [r4, #0x2c]
+ ldr r1, [r4, #0x30]
+ ldr r2, [r4, #0x40]
+ bl FUN_0200B7B8
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D8188 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x8c
+ add r3, r1, #0
+ bl FUN_0201BDE0
+_021D8172:
+ add r0, r4, #0
+ add r0, #0x8c
+ bl FUN_020191D0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD74_021D8388
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D8188: .word 0x00010200
+ thumb_func_end MOD74_021D80D0
+
+ thumb_func_start MOD74_021D818C
+MOD74_021D818C: ; 0x021D818C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldrb r2, [r4, #0xb]
+ ldrb r3, [r4, #0xc]
+ add r0, #0xbc
+ lsl r1, r2, #1
+ add r1, r2, r1
+ add r1, r3, r1
+ lsl r1, r1, #4
+ add r0, r0, r1
+ ldr r1, [r4]
+ add r0, #8
+ bl FUN_020137D4
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x8c
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D81DC ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r4, #0x8c
+ add r0, r4, #0
+ add r2, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D81DC: .word 0x00010200
+ thumb_func_end MOD74_021D818C
+
+ thumb_func_start MOD74_021D81E0
+MOD74_021D81E0: ; 0x021D81E0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x8c
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x8c
+ bl FUN_02019570
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD74_021D8388
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D81E0
+
+ thumb_func_start MOD74_021D8200
+MOD74_021D8200: ; 0x021D8200
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x50
+ add r4, r0, #0
+ ldr r1, [r4]
+ mov r0, #0x20
+ bl FUN_0201C24C
+ ldr r0, [r4]
+ bl FUN_0200BB14
+ mov r1, #0xa7
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ bl FUN_0200BB34
+ mov r7, #0x2a
+ lsl r7, r7, #4
+ add r2, sp, #0x30
+ ldr r3, _021D82A4 ; =0x021D84F8
+ str r0, [r4, r7]
+ 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}
+ ldr r5, _021D82A8 ; =0x021D84B0
+ stmia r2!, {r0, r1}
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r6, #0
+ str r0, [r3]
+ sub r0, r7, #4
+ ldr r0, [r4, r0]
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ sub r1, r7, #4
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #4
+ bl FUN_0200BBF0
+ ldr r0, [r4]
+ bl FUN_0200A064
+ ldr r0, [r4]
+ bl FUN_0200A06C
+ ldr r5, _021D82AC ; =0x021D84DC
+ 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]
+ sub r1, r7, #4
+ str r0, [r3]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ bl FUN_0200BD20
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x50
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D82A4: .word 0x021D84F8
+_021D82A8: .word 0x021D84B0
+_021D82AC: .word 0x021D84DC
+ thumb_func_end MOD74_021D8200
+
+ thumb_func_start MOD74_021D82B0
+MOD74_021D82B0: ; 0x021D82B0
+ push {r4, lr}
+ mov r1, #0xa7
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ bl FUN_0200BCE0
+ mov r0, #0xa7
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200BD04
+ bl FUN_0201C29C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D82B0
+
+ thumb_func_start MOD74_021D82D4
+MOD74_021D82D4: ; 0x021D82D4
+ push {r3, lr}
+ mov r1, #0x2a
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _021D82E4
+ bl FUN_0200BC1C
+_021D82E4:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D82D4
+
+ thumb_func_start MOD74_021D82E8
+MOD74_021D82E8: ; 0x021D82E8
+ ldr r3, _021D82EC ; =FUN_0200BC30
+ bx r3
+ .align 2, 0
+_021D82EC: .word FUN_0200BC30
+ thumb_func_end MOD74_021D82E8
+
+ thumb_func_start MOD74_021D82F0
+MOD74_021D82F0: ; 0x021D82F0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r6, _021D8368 ; =0x021D85C4
+ mov r7, #0
+ add r4, r5, #0
+_021D82FA:
+ mov r0, #0xa7
+ mov r1, #0x2a
+ lsl r0, r0, #2
+ lsl r1, r1, #4
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200BE38
+ mov r1, #0xa9
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r7, r7, #1
+ add r6, #0x28
+ add r4, r4, #4
+ cmp r7, #4
+ blt _021D82FA
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xaa
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0xab
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0xaa
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #3
+ bl FUN_02020238
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8368: .word 0x021D85C4
+ thumb_func_end MOD74_021D82F0
+
+ thumb_func_start MOD74_021D836C
+MOD74_021D836C: ; 0x021D836C
+ push {r4, r5, r6, lr}
+ mov r6, #0xa9
+ add r5, r0, #0
+ mov r4, #0
+ lsl r6, r6, #2
+_021D8376:
+ ldr r0, [r5, r6]
+ bl FUN_0200BC14
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021D8376
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D836C
+
+ thumb_func_start MOD74_021D8388
+MOD74_021D8388: ; 0x021D8388
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ cmp r1, #0
+ bne _021D83A0
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02020248
+ mov r4, #0
+ b _021D83AE
+_021D83A0:
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02020248
+ mov r4, #1
+_021D83AE:
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_020200BC
+ mov r0, #0xab
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_020200BC
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_020200BC
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD74_021D8388
+
+ thumb_func_start MOD74_021D83D4
+MOD74_021D83D4: ; 0x021D83D4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldrb r0, [r5, #0xe]
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ cmp r0, #8
+ bne _021D8428
+ mov r0, #0xaa
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ cmp r4, #0xa
+ bne _021D840E
+ mov r0, #0xaa
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02020208
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _021D8440
+_021D840E:
+ mov r0, #0xaa
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02020208
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ b _021D8440
+_021D8428:
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xaa
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_021D8440:
+ ldrb r0, [r5, #0xe]
+ cmp r0, #0
+ beq _021D844C
+ cmp r0, #8
+ beq _021D845A
+ b _021D8468
+_021D844C:
+ mov r0, #0xab
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _021D8480
+_021D845A:
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _021D8480
+_021D8468:
+ mov r0, #0xab
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_021D8480:
+ mov r1, #0x48
+ mov r2, #0x18
+ mov r0, #0xa9
+ mul r1, r6
+ mul r2, r7
+ lsl r0, r0, #2
+ add r1, #0x36
+ add r2, #0x44
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, r0]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD74_021D83D4
+
+ .section .rodata
+ ; 0x021D84A0
+ .incbin "baserom.nds", 0x2CF9C0, 0x1C4
+
+ .section .data
+ ; 0x021D8680
+ .incbin "baserom.nds", 0x2CFBA0, 0x80
diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s
new file mode 100644
index 00000000..6f85109d
--- /dev/null
+++ b/arm9/modules/75/asm/module_75.s
@@ -0,0 +1,11114 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD75_021E6BA0
+MOD75_021E6BA0: ; 0x021E6BA0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0
+ 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, _021E6D58 ; =0xFFFFE0FF
+ ldr r3, _021E6D5C ; =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]
+ mov r1, #6
+ mov r0, #3
+ lsl r2, r1, #0xf
+ bl FUN_0201681C
+ ldr r1, _021E6D60 ; =0x000004A4
+ add r0, r5, #0
+ mov r2, #6
+ bl FUN_02006268
+ ldr r2, _021E6D60 ; =0x000004A4
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r1, r4, #0
+ add r1, #0xc4
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD75_021E6FA4
+ mov r0, #6
+ bl FUN_02016B94
+ str r0, [r4]
+ add r0, r4, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ bl FUN_020239CC
+ ldr r1, _021E6D64 ; =0x00000425
+ mov r3, #0
+ strb r0, [r4, r1]
+ mov r1, #6
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #3
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ mov r0, #3
+ mov r1, #8
+ bl FUN_0201669C
+ add r0, r4, #0
+ bl MOD75_021E7470
+ add r0, r4, #0
+ bl MOD75_021E737C
+ add r0, r4, #0
+ bl MOD75_021E771C
+ add r0, r4, #0
+ bl MOD75_021E73E8
+ add r0, r4, #0
+ bl MOD75_021E7CE4
+ bl MOD75_021E7034
+ ldr r0, [r4]
+ bl MOD75_021E7054
+ add r0, r4, #0
+ bl MOD75_021E7214
+ add r0, r4, #0
+ bl MOD75_021E8680
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ add r0, r4, #0
+ bl MOD75_021EA604
+ mov r0, #1
+ bl FUN_02002BB8
+ add r0, r4, #0
+ bl MOD75_021EA7BC
+ add r0, r4, #0
+ bl MOD75_021EA81C
+ add r0, r4, #0
+ bl MOD75_021EA8BC
+ add r0, r4, #0
+ bl MOD75_021EA9F8
+ add r0, r4, #0
+ bl MOD75_021EB048
+ add r0, r4, #0
+ bl MOD75_021EAD94
+ add r0, r4, #0
+ bl MOD75_021E7580
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r3, #0
+ add r1, r3, #0
+ add r0, #0xa
+ add r1, #8
+ add r0, r0, r2
+ add r1, r1, r2
+ add r2, r3, r2
+ ldrb r2, [r2, #0xd]
+ bl MOD75_021E7758
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r3, #0
+ add r1, r3, #0
+ add r0, #0xa
+ add r1, #8
+ add r0, r0, r2
+ add r1, r1, r2
+ add r2, r3, r2
+ ldrb r2, [r2, #0xd]
+ mov r3, #9
+ bl MOD75_021E7794
+ add r0, r4, #0
+ bl MOD75_021EB9B4
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ add r2, r3, r2
+ ldrh r1, [r2, #0xa]
+ ldrh r2, [r2, #8]
+ add r0, r4, #0
+ bl MOD75_021E77E8
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r0, #0x65
+ ldrb r0, [r0]
+ add r0, #0xfc
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bhi _021E6D3A
+ add r0, r4, #0
+ bl MOD75_021EB8E8
+_021E6D3A:
+ ldr r0, _021E6D68 ; =MOD75_021E700C
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r1, #0
+ mov r0, #0x33
+ add r2, r1, #0
+ bl FUN_0200433C
+ bl FUN_02033F20
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021E6D58: .word 0xFFFFE0FF
+_021E6D5C: .word 0x04001000
+_021E6D60: .word 0x000004A4
+_021E6D64: .word 0x00000425
+_021E6D68: .word MOD75_021E700C
+ thumb_func_end MOD75_021E6BA0
+
+ thumb_func_start MOD75_021E6D6C
+MOD75_021E6D6C: ; 0x021E6D6C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ bl FUN_02006278
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0x18
+ bhi _021E6DC2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021E6D88: ; jump table
+ .short _021E6DBA - _021E6D88 - 2 ; case 0
+ .short _021E6DF2 - _021E6D88 - 2 ; case 1
+ .short _021E6DFA - _021E6D88 - 2 ; case 2
+ .short _021E6E36 - _021E6D88 - 2 ; case 3
+ .short _021E6E44 - _021E6D88 - 2 ; case 4
+ .short _021E6EE0 - _021E6D88 - 2 ; case 5
+ .short _021E6EE0 - _021E6D88 - 2 ; case 6
+ .short _021E6E4C - _021E6D88 - 2 ; case 7
+ .short _021E6E54 - _021E6D88 - 2 ; case 8
+ .short _021E6E5C - _021E6D88 - 2 ; case 9
+ .short _021E6E64 - _021E6D88 - 2 ; case 10
+ .short _021E6E6C - _021E6D88 - 2 ; case 11
+ .short _021E6E74 - _021E6D88 - 2 ; case 12
+ .short _021E6E7C - _021E6D88 - 2 ; case 13
+ .short _021E6E84 - _021E6D88 - 2 ; case 14
+ .short _021E6E8C - _021E6D88 - 2 ; case 15
+ .short _021E6E94 - _021E6D88 - 2 ; case 16
+ .short _021E6E9C - _021E6D88 - 2 ; case 17
+ .short _021E6EA4 - _021E6D88 - 2 ; case 18
+ .short _021E6EAC - _021E6D88 - 2 ; case 19
+ .short _021E6EB4 - _021E6D88 - 2 ; case 20
+ .short _021E6EBC - _021E6D88 - 2 ; case 21
+ .short _021E6EC4 - _021E6D88 - 2 ; case 22
+ .short _021E6ECC - _021E6D88 - 2 ; case 23
+ .short _021E6ED4 - _021E6D88 - 2 ; case 24
+_021E6DBA:
+ bl FUN_0200E308
+ cmp r0, #1
+ beq _021E6DC4
+_021E6DC2:
+ b _021E6EE0
+_021E6DC4:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r0, #0x65
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _021E6DD8
+ mov r0, #0x10
+ str r0, [r4]
+ b _021E6EE0
+_021E6DD8:
+ cmp r0, #1
+ bne _021E6DE2
+ mov r0, #0xe
+ str r0, [r4]
+ b _021E6EE0
+_021E6DE2:
+ cmp r0, #3
+ bne _021E6DEC
+ mov r0, #0x17
+ str r0, [r4]
+ b _021E6EE0
+_021E6DEC:
+ mov r0, #1
+ str r0, [r4]
+ b _021E6EE0
+_021E6DF2:
+ bl MOD75_021E7AE0
+ str r0, [r4]
+ b _021E6EE0
+_021E6DFA:
+ bl MOD75_021E86C0
+ add r0, r5, #0
+ bl MOD75_021E7EE4
+ cmp r0, #1
+ bne _021E6EE0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r0, #0x65
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _021E6E1C
+ mov r0, #0x10
+ str r0, [r4]
+ b _021E6EE0
+_021E6E1C:
+ cmp r0, #1
+ bne _021E6E26
+ mov r0, #0xe
+ str r0, [r4]
+ b _021E6EE0
+_021E6E26:
+ cmp r0, #3
+ bne _021E6E30
+ mov r0, #0x17
+ str r0, [r4]
+ b _021E6EE0
+_021E6E30:
+ mov r0, #1
+ str r0, [r4]
+ b _021E6EE0
+_021E6E36:
+ bl MOD75_021E88BC
+ cmp r0, #1
+ bne _021E6EE0
+ mov r0, #1
+ str r0, [r4]
+ b _021E6EE0
+_021E6E44:
+ bl MOD75_021E8CF4
+ str r0, [r4]
+ b _021E6EE0
+_021E6E4C:
+ bl MOD75_021E94D0
+ str r0, [r4]
+ b _021E6EE0
+_021E6E54:
+ bl MOD75_021E95BC
+ str r0, [r4]
+ b _021E6EE0
+_021E6E5C:
+ bl MOD75_021E95E0
+ str r0, [r4]
+ b _021E6EE0
+_021E6E64:
+ bl MOD75_021E971C
+ str r0, [r4]
+ b _021E6EE0
+_021E6E6C:
+ bl MOD75_021E9750
+ str r0, [r4]
+ b _021E6EE0
+_021E6E74:
+ bl MOD75_021E8EB0
+ str r0, [r4]
+ b _021E6EE0
+_021E6E7C:
+ bl MOD75_021E8FC8
+ str r0, [r4]
+ b _021E6EE0
+_021E6E84:
+ bl MOD75_021E9840
+ str r0, [r4]
+ b _021E6EE0
+_021E6E8C:
+ bl MOD75_021E9930
+ str r0, [r4]
+ b _021E6EE0
+_021E6E94:
+ bl MOD75_021E9980
+ str r0, [r4]
+ b _021E6EE0
+_021E6E9C:
+ bl MOD75_021E9B4C
+ str r0, [r4]
+ b _021E6EE0
+_021E6EA4:
+ bl MOD75_021E9B88
+ str r0, [r4]
+ b _021E6EE0
+_021E6EAC:
+ bl MOD75_021E9D6C
+ str r0, [r4]
+ b _021E6EE0
+_021E6EB4:
+ bl MOD75_021E9D90
+ str r0, [r4]
+ b _021E6EE0
+_021E6EBC:
+ bl MOD75_021E9EE4
+ str r0, [r4]
+ b _021E6EE0
+_021E6EC4:
+ bl MOD75_021E9F74
+ str r0, [r4]
+ b _021E6EE0
+_021E6ECC:
+ bl MOD75_021E9FDC
+ str r0, [r4]
+ b _021E6EE0
+_021E6ED4:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021E6EE0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E6EE0:
+ add r0, r5, #0
+ bl MOD75_021E85D8
+ add r0, r5, #0
+ bl MOD75_021EC3B8
+ add r0, r5, #0
+ bl MOD75_021EC018
+ add r5, #0xdc
+ ldr r0, [r5]
+ bl FUN_0200BC1C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E6D6C
+
+ thumb_func_start MOD75_021E6F00
+MOD75_021E6F00: ; 0x021E6F00
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD75_021EBFE4
+ add r0, r4, #0
+ bl MOD75_021E7AA4
+ add r0, r4, #0
+ bl MOD75_021E752C
+ add r0, r4, #4
+ bl MOD75_021EA7A0
+ ldr r0, [r4]
+ bl MOD75_021E71BC
+ bl FUN_0201CD04
+ bl FUN_0201C29C
+ add r0, r4, #0
+ bl MOD75_021EB110
+ add r0, r4, #0
+ bl MOD75_021EA7F8
+ add r0, r4, #0
+ bl MOD75_021EADC0
+ add r0, r4, #0
+ bl MOD75_021E773C
+ mov r0, #0xfe
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x11
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0200B990
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ add r4, #0xd4
+ ldr r0, [r4]
+ bl FUN_020066F4
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #6
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E6F00
+
+ thumb_func_start MOD75_021E6FA4
+MOD75_021E6FA4: ; 0x021E6FA4
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl FUN_0206F158
+ add r1, r4, #0
+ add r1, #0xc8
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl FUN_020238F4
+ add r1, r4, #0
+ add r1, #0xcc
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl LoadPlayerDataAddress
+ add r4, #0xd0
+ str r0, [r4]
+ pop {r4, pc}
+ thumb_func_end MOD75_021E6FA4
+
+ thumb_func_start MOD75_021E6FDC
+MOD75_021E6FDC: ; 0x021E6FDC
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r3, _021E6FE8 ; =FUN_0202A9B0
+ ldr r0, [r0]
+ bx r3
+ nop
+_021E6FE8: .word FUN_0202A9B0
+ thumb_func_end MOD75_021E6FDC
+
+ thumb_func_start MOD75_021E6FEC
+MOD75_021E6FEC: ; 0x021E6FEC
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD75_021E6FDC
+ bl FUN_0202AB4C
+ strb r4, [r0]
+ pop {r4, pc}
+ thumb_func_end MOD75_021E6FEC
+
+ thumb_func_start MOD75_021E6FFC
+MOD75_021E6FFC: ; 0x021E6FFC
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD75_021E6FDC
+ add r1, r4, #0
+ bl FUN_0202AB68
+ pop {r4, pc}
+ thumb_func_end MOD75_021E6FFC
+
+ thumb_func_start MOD75_021E700C
+MOD75_021E700C: ; 0x021E700C
+ push {r3, lr}
+ ldr r0, [r0]
+ bl FUN_0201AB60
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ ldr r3, _021E702C ; =0x027E0000
+ ldr r1, _021E7030 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ nop
+_021E702C: .word 0x027E0000
+_021E7030: .word 0x00003FF8
+ thumb_func_end MOD75_021E700C
+
+ thumb_func_start MOD75_021E7034
+MOD75_021E7034: ; 0x021E7034
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021E7050 ; =0x021EC568
+ add r3, sp, #0
+ mov r2, #5
+_021E703E:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021E703E
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021E7050: .word 0x021EC568
+ thumb_func_end MOD75_021E7034
+
+ thumb_func_start MOD75_021E7054
+MOD75_021E7054: ; 0x021E7054
+ push {r4, r5, lr}
+ sub sp, #0xd4
+ ldr r5, _021E719C ; =0x021EC41C
+ add r3, sp, #0xc4
+ 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, _021E71A0 ; =0x021EC440
+ add r3, sp, #0xa8
+ 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, #0
+ str r0, [r3]
+ add r0, r4, #0
+ add r3, r1, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02018744
+ ldr r5, _021E71A4 ; =0x021EC45C
+ add r3, sp, #0x8c
+ 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]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021E71A8 ; =0x021EC494
+ add r3, sp, #0x70
+ 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]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r5, _021E71AC ; =0x021EC4E8
+ 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, #3
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021E71B0 ; =0x021EC478
+ 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]
+ str r0, [r3]
+ add r0, r4, #0
+ mov r1, #4
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ ldr r5, _021E71B4 ; =0x021EC4B0
+ 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]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021E71B8 ; =0x021EC4CC
+ 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, #7
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #1
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #9
+ mov r3, #0x80
+ bl FUN_0201AF50
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #0xc
+ mov r3, #0x50
+ bl FUN_0201AF50
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #6
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #6
+ bl FUN_02017F18
+ add sp, #0xd4
+ pop {r4, r5, pc}
+ nop
+_021E719C: .word 0x021EC41C
+_021E71A0: .word 0x021EC440
+_021E71A4: .word 0x021EC45C
+_021E71A8: .word 0x021EC494
+_021E71AC: .word 0x021EC4E8
+_021E71B0: .word 0x021EC478
+_021E71B4: .word 0x021EC4B0
+_021E71B8: .word 0x021EC4CC
+ thumb_func_end MOD75_021E7054
+
+ thumb_func_start MOD75_021E71BC
+MOD75_021E71BC: ; 0x021E71BC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x1f
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #0x1b
+ mov r1, #0
+ bl FUN_0201E74C
+ add r0, r4, #0
+ mov r1, #7
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020178A0
+ mov r0, #6
+ add r1, r4, #0
+ bl FUN_02016A8C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E71BC
+
+ thumb_func_start MOD75_021E7214
+MOD75_021E7214: ; 0x021E7214
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0xd
+ mov r1, #6
+ bl FUN_02006670
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0xd
+ mov r1, #7
+ mov r3, #1
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0xd
+ mov r1, #0xa
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0xd
+ mov r1, #9
+ mov r3, #3
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0xd
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0xd
+ mov r1, #0x12
+ mov r2, #0
+ lsl r3, r0, #5
+ bl FUN_02006930
+ mov r1, #0x16
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #6
+ bl FUN_02002EEC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ ldr r2, _021E7374 ; =0x000003F7
+ mov r3, #0xe
+ bl FUN_0200CB00
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ ldr r2, _021E7378 ; =0x000003D9
+ mov r1, #0
+ mov r3, #0xc
+ bl FUN_0200CD68
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0xd
+ mov r1, #0xb
+ mov r3, #5
+ bl FUN_0200687C
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0xd
+ mov r1, #0xc
+ mov r2, #4
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ mov r0, #0xd
+ ldr r2, [r4]
+ add r1, r0, #0
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0xd
+ mov r1, #0x25
+ mov r3, #7
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0xd
+ mov r1, #0x24
+ mov r3, #7
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0xd
+ mov r1, #0xf
+ mov r3, #4
+ bl FUN_0200687C
+ mov r3, #0x40
+ str r3, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0xd
+ mov r1, #0xe
+ mov r2, #4
+ bl FUN_02006930
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021E7374: .word 0x000003F7
+_021E7378: .word 0x000003D9
+ thumb_func_end MOD75_021E7214
+
+ thumb_func_start MOD75_021E737C
+MOD75_021E737C: ; 0x021E737C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #7
+ mov r3, #6
+ bl FUN_0200A86C
+ mov r1, #0x45
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #1
+ mov r1, #2
+ mov r2, #0
+ mov r3, #6
+ bl FUN_0200B870
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ mov r0, #6
+ bl FUN_0200AA80
+ mov r2, #0x46
+ lsl r2, r2, #2
+ str r0, [r4, r2]
+ mov r0, #0
+ mov r1, #0x1a
+ add r2, #0x40
+ mov r3, #6
+ bl FUN_0200A86C
+ mov r1, #0x47
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r2, #0x93
+ mov r0, #0
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #6
+ bl FUN_0200A86C
+ mov r1, #0x12
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ sub r1, #0x20
+ add r0, r1, #0
+ mov r1, #6
+ bl FUN_020219F4
+ mov r1, #0xfe
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ pop {r4, pc}
+ thumb_func_end MOD75_021E737C
+
+ thumb_func_start MOD75_021E73E8
+MOD75_021E73E8: ; 0x021E73E8
+ push {r4, r5}
+ ldr r2, _021E741C ; =0x00000424
+ mov r1, #0
+ strb r1, [r0, r2]
+ add r4, r2, #0
+ mov r3, #0xc
+_021E73F4:
+ add r2, r0, #0
+ add r2, #0xc4
+ ldr r5, [r2]
+ add r2, r1, #0
+ mul r2, r3
+ add r2, r5, r2
+ ldr r2, [r2, #4]
+ cmp r2, #0
+ beq _021E740C
+ ldrb r2, [r0, r4]
+ add r2, r2, #1
+ strb r2, [r0, r4]
+_021E740C:
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, #8
+ blo _021E73F4
+ pop {r4, r5}
+ bx lr
+ nop
+_021E741C: .word 0x00000424
+ thumb_func_end MOD75_021E73E8
+
+ thumb_func_start MOD75_021E7420
+MOD75_021E7420: ; 0x021E7420
+ push {r3, r4}
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r4, r0, #4
+ add r0, #0x64
+ ldrb r3, [r0]
+ mov r0, #0xc
+ mul r0, r3
+ cmp r2, #0
+ ldr r2, [r4, r0]
+ bne _021E743E
+ lsl r0, r1, #2
+ ldrh r0, [r2, r0]
+ pop {r3, r4}
+ bx lr
+_021E743E:
+ lsl r0, r1, #2
+ add r0, r2, r0
+ ldrh r0, [r0, #2]
+ pop {r3, r4}
+ bx lr
+ thumb_func_end MOD75_021E7420
+
+ thumb_func_start MOD75_021E7448
+MOD75_021E7448: ; 0x021E7448
+ add r3, r1, #0
+ add r1, r2, #0
+ add r2, r3, #0
+ ldr r3, _021E7454 ; =FUN_0200A8E0
+ bx r3
+ nop
+_021E7454: .word FUN_0200A8E0
+ thumb_func_end MOD75_021E7448
+
+ thumb_func_start MOD75_021E7458
+MOD75_021E7458: ; 0x021E7458
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, r2, #0
+ bl FUN_0206EA30
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD75_021E7458
+
+ thumb_func_start MOD75_021E7470
+MOD75_021E7470: ; 0x021E7470
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r5, #0
+ add r0, #0x64
+ strb r5, [r0]
+ add r0, r7, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r6, r0, #4
+ ldr r0, [r0, #0x6c]
+ cmp r0, #0
+ bne _021E74AE
+ mov r3, #1
+ add r2, r5, #0
+ mov r1, #0xc
+_021E7492:
+ add r0, r5, #0
+ mul r0, r1
+ add r4, r6, r0
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _021E7528
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ strh r3, [r4, #4]
+ lsr r5, r0, #0x10
+ strh r2, [r4, #6]
+ cmp r5, #8
+ blo _021E7492
+ pop {r3, r4, r5, r6, r7, pc}
+_021E74AE:
+ mov r0, #0xc
+ mul r0, r5
+ add r4, r6, r0
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _021E74F2
+ add r0, r7, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldrb r1, [r4, #8]
+ add r2, sp, #0
+ ldr r0, [r0, #0x6c]
+ add r2, #1
+ add r3, sp, #0
+ bl FUN_0206F17C
+ add r0, sp, #0
+ ldrb r0, [r0, #1]
+ cmp r0, #0
+ bne _021E74DC
+ mov r1, #1
+ add r0, sp, #0
+ strb r1, [r0, #1]
+_021E74DC:
+ add r0, sp, #0
+ ldrb r0, [r0, #1]
+ strh r0, [r4, #4]
+ add r0, sp, #0
+ ldrb r0, [r0]
+ strh r0, [r4, #6]
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #8
+ blo _021E74AE
+_021E74F2:
+ add r0, r7, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r0, [r0, #0x6c]
+ bl FUN_0206F18C
+ mov r1, #0
+ mov r3, #0xc
+_021E7502:
+ add r2, r1, #0
+ mul r2, r3
+ add r4, r6, r2
+ ldr r2, [r6, r2]
+ cmp r2, #0
+ beq _021E7528
+ ldrb r2, [r4, #8]
+ cmp r0, r2
+ bne _021E751E
+ add r2, r7, #0
+ add r2, #0xc4
+ ldr r2, [r2]
+ add r2, #0x64
+ strb r1, [r2]
+_021E751E:
+ add r1, r1, #1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ cmp r1, #8
+ blo _021E7502
+_021E7528:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E7470
+
+ thumb_func_start MOD75_021E752C
+MOD75_021E752C: ; 0x021E752C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ ldr r0, [r1, #0x6c]
+ cmp r0, #0
+ beq _021E757E
+ add r7, r1, #4
+ mov r4, #0
+ add r5, r7, #0
+_021E7540:
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021E7568
+ add r0, r6, #0
+ add r0, #0xc4
+ ldrh r2, [r5, #4]
+ ldrh r3, [r5, #6]
+ ldr r0, [r0]
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldrb r1, [r5, #8]
+ ldr r0, [r0, #0x6c]
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_0206F190
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #8
+ blo _021E7540
+_021E7568:
+ add r6, #0xc4
+ ldr r1, [r6]
+ ldr r0, [r1, #0x6c]
+ add r1, #0x64
+ ldrb r2, [r1]
+ mov r1, #0xc
+ mul r1, r2
+ add r1, r7, r1
+ ldrb r1, [r1, #8]
+ bl FUN_0206F19C
+_021E757E:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD75_021E752C
+
+ thumb_func_start MOD75_021E7580
+MOD75_021E7580: ; 0x021E7580
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r4, r2, r0
+ ldrb r1, [r4, #8]
+ ldr r0, _021E7718 ; =0x021EC674
+ ldrb r0, [r0, r1]
+ mov r1, #6
+ add r0, r0, #3
+ bl FUN_02012838
+ mov r1, #0x16
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ sub r1, #0x4c
+ mov r2, #0x20
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0x23
+ bl FUN_02012880
+ ldrb r3, [r4, #8]
+ cmp r3, #3
+ bne _021E764A
+ ldr r0, _021E7718 ; =0x021EC674
+ mov r6, #0
+ ldrb r0, [r0, r3]
+ cmp r0, #0
+ bls _021E761A
+ str r6, [sp]
+ add r7, r5, #0
+_021E75CE:
+ ldr r0, [r4]
+ ldr r2, [sp]
+ ldr r1, [sp]
+ ldrh r2, [r0, r2]
+ add r1, r0, r1
+ cmp r2, #0
+ beq _021E761A
+ ldrh r0, [r1, #2]
+ cmp r0, #0
+ beq _021E761A
+ mov r0, #0x12
+ mov r1, #0x59
+ lsl r0, r0, #4
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r7, r1]
+ mov r3, #6
+ bl MOD75_021E7458
+ mov r0, #0x16
+ mov r1, #0x59
+ lsl r0, r0, #4
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r7, r1]
+ add r2, r6, #0
+ bl FUN_020128A0
+ ldr r0, [sp]
+ ldrb r1, [r4, #8]
+ add r0, r0, #4
+ str r0, [sp]
+ ldr r0, _021E7718 ; =0x021EC674
+ add r6, r6, #1
+ ldrb r0, [r0, r1]
+ add r7, r7, #4
+ cmp r6, r0
+ blo _021E75CE
+_021E761A:
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ sub r1, #0x4c
+ mov r2, #0x20
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0x22
+ bl FUN_02012880
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ sub r1, #0x4c
+ mov r2, #0x20
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0x23
+ bl FUN_02012880
+ add r0, r6, #3
+ add sp, #8
+ strb r0, [r4, #9]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E764A:
+ ldr r0, _021E7718 ; =0x021EC674
+ mov r6, #0
+ ldrb r0, [r0, r3]
+ cmp r0, #0
+ bls _021E76A4
+ str r6, [sp, #4]
+ add r7, r5, #0
+_021E7658:
+ ldr r2, [r4]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, r2, r0
+ ldrh r2, [r2, r1]
+ cmp r2, #0
+ beq _021E76A4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _021E76A4
+ mov r0, #0x47
+ mov r1, #0x59
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r7, r1]
+ mov r3, #6
+ bl MOD75_021E7448
+ mov r0, #0x16
+ mov r1, #0x59
+ lsl r0, r0, #4
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r7, r1]
+ add r2, r6, #0
+ bl FUN_020128A0
+ ldr r0, [sp, #4]
+ ldrb r3, [r4, #8]
+ add r0, r0, #4
+ str r0, [sp, #4]
+ ldr r0, _021E7718 ; =0x021EC674
+ add r6, r6, #1
+ ldrb r0, [r0, r3]
+ add r7, r7, #4
+ cmp r6, r0
+ blo _021E7658
+_021E76A4:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r0, #0x65
+ ldrb r0, [r0]
+ cmp r0, #5
+ beq _021E76FC
+ cmp r3, #4
+ bne _021E76CC
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ sub r1, #0x4c
+ mov r2, #0x20
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0x22
+ bl FUN_02012880
+ b _021E76E0
+_021E76CC:
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ sub r1, #0x4c
+ mov r2, #0x29
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0x2b
+ bl FUN_02012880
+_021E76E0:
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ sub r1, #0x4c
+ mov r2, #0x20
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0x23
+ bl FUN_02012880
+ add r0, r6, #3
+ add sp, #8
+ strb r0, [r4, #9]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E76FC:
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ sub r1, #0x4c
+ mov r2, #0x20
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0x23
+ bl FUN_02012880
+ add r0, r6, #2
+ strb r0, [r4, #9]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E7718: .word 0x021EC674
+ thumb_func_end MOD75_021E7580
+
+ thumb_func_start MOD75_021E771C
+MOD75_021E771C: ; 0x021E771C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r6, #0x59
+ add r5, r0, #0
+ mov r4, #0
+ mov r7, #0x12
+ lsl r6, r6, #2
+_021E7728:
+ add r0, r7, #0
+ mov r1, #6
+ bl FUN_020219F4
+ str r0, [r5, r6]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xa5
+ blo _021E7728
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD75_021E771C
+
+ thumb_func_start MOD75_021E773C
+MOD75_021E773C: ; 0x021E773C
+ push {r4, r5, r6, lr}
+ mov r6, #0x59
+ add r5, r0, #0
+ mov r4, #0
+ lsl r6, r6, #2
+_021E7746:
+ ldr r0, [r5, r6]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xa5
+ blo _021E7746
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E773C
+
+ thumb_func_start MOD75_021E7758
+MOD75_021E7758: ; 0x021E7758
+ push {r4, r5}
+ sub r2, r2, #1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ cmp r2, #8
+ bls _021E7768
+ mov r5, #7
+ b _021E776E
+_021E7768:
+ sub r3, r2, #1
+ lsl r3, r3, #0x18
+ lsr r5, r3, #0x18
+_021E776E:
+ ldrh r3, [r0]
+ cmp r3, #0
+ beq _021E7780
+ sub r4, r2, #1
+ add r3, r3, r5
+ cmp r3, r4
+ ble _021E7780
+ sub r3, r4, r5
+ strh r3, [r0]
+_021E7780:
+ ldrh r3, [r0]
+ ldrh r0, [r1]
+ sub r2, r2, #1
+ add r0, r3, r0
+ cmp r0, r2
+ blt _021E7790
+ sub r0, r2, r3
+ strh r0, [r1]
+_021E7790:
+ pop {r4, r5}
+ bx lr
+ thumb_func_end MOD75_021E7758
+
+ thumb_func_start MOD75_021E7794
+MOD75_021E7794: ; 0x021E7794
+ push {r3, r4, r5, r6}
+ sub r2, r2, #1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ cmp r2, #8
+ bls _021E77A4
+ mov r5, #7
+ b _021E77AA
+_021E77A4:
+ sub r4, r2, #1
+ lsl r4, r4, #0x18
+ lsr r5, r4, #0x18
+_021E77AA:
+ ldrh r6, [r1]
+ asr r4, r3, #1
+ add r3, r4, #2
+ cmp r6, r3
+ blt _021E77E2
+ sub r6, r6, r4
+ mov r3, #0
+ sub r6, r6, #2
+ bmi _021E77E2
+ sub r2, r2, #1
+_021E77BE:
+ ldrh r6, [r0]
+ add r6, r6, r5
+ cmp r2, r6
+ beq _021E77E2
+ ldrh r6, [r1]
+ add r3, r3, #1
+ lsl r3, r3, #0x18
+ sub r6, r6, #1
+ strh r6, [r1]
+ ldrh r6, [r0]
+ lsr r3, r3, #0x18
+ add r6, r6, #1
+ strh r6, [r0]
+ ldrh r6, [r1]
+ sub r6, r6, r4
+ sub r6, r6, #2
+ cmp r3, r6
+ ble _021E77BE
+_021E77E2:
+ pop {r3, r4, r5, r6}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD75_021E7794
+
+ thumb_func_start MOD75_021E77E8
+MOD75_021E77E8: ; 0x021E77E8
+ push {r4, r5, r6, lr}
+ sub sp, #0x20
+ ldr r6, _021E786C ; =0x021EC504
+ add r5, sp, #0
+ add r4, r0, #0
+ add r3, r1, #0
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ str r0, [sp]
+ add r0, r4, #4
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ add r0, r1, #0
+ add r0, #0x64
+ ldrb r5, [r0]
+ mov r0, #0xc
+ add r6, r5, #0
+ mul r6, r0
+ add r1, r1, r6
+ ldrb r5, [r1, #0xd]
+ add r1, sp, #0
+ strh r5, [r1, #0x10]
+ add r5, r4, #0
+ str r4, [sp, #0x1c]
+ add r5, #0xc4
+ ldr r5, [r5]
+ add r6, r5, #0
+ add r6, #0x64
+ ldrb r6, [r6]
+ mul r0, r6
+ add r0, r5, r0
+ ldrb r0, [r0, #0xc]
+ add r0, #0xfd
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bhi _021E784C
+ mov r0, #0x23
+ b _021E784E
+_021E784C:
+ mov r0, #0
+_021E784E:
+ strb r0, [r1, #0x15]
+ add r1, r3, #0
+ add r0, sp, #0
+ mov r3, #6
+ bl FUN_020010A8
+ mov r1, #0x57
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #4
+ bl FUN_02019220
+ add sp, #0x20
+ pop {r4, r5, r6, pc}
+ nop
+_021E786C: .word 0x021EC504
+ thumb_func_end MOD75_021E77E8
+
+ thumb_func_start MOD75_021E7870
+MOD75_021E7870: ; 0x021E7870
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x13
+ add r4, r2, #0
+ bl FUN_02001470
+ add r5, r0, #0
+ cmp r4, #1
+ beq _021E78F8
+ ldr r0, _021E7960 ; =0x00000482
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _021E7890
+ cmp r0, #1
+ beq _021E7898
+ b _021E78A0
+_021E7890:
+ ldr r0, _021E7964 ; =0x000006CC
+ bl FUN_020054C8
+ b _021E78A6
+_021E7898:
+ ldr r0, _021E7968 ; =0x000006CD
+ bl FUN_020054C8
+ b _021E78A6
+_021E78A0:
+ ldr r0, _021E796C ; =0x000006CE
+ bl FUN_020054C8
+_021E78A6:
+ ldr r0, _021E7960 ; =0x00000482
+ mov r1, #3
+ ldrb r0, [r5, r0]
+ add r0, r0, #1
+ bl _s32_div_f
+ ldr r0, _021E7960 ; =0x00000482
+ strb r1, [r5, r0]
+ add r0, #0x10
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _021E78CC
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _021E78F8
+_021E78CC:
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r2, r1, #0
+ add r2, #0x64
+ ldrb r3, [r2]
+ mov r2, #0xc
+ add r0, #0xe0
+ mul r2, r3
+ add r1, r1, r2
+ ldrb r1, [r1, #0xc]
+ ldr r0, [r0]
+ add r1, #8
+ bl FUN_0200C5C0
+_021E78F8:
+ ldr r0, _021E7970 ; =0x0000047A
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ beq _021E795C
+ add r0, r5, #0
+ add r0, #0x14
+ mov r1, #0
+ bl FUN_02019620
+ mov r1, #1
+ mvn r1, r1
+ cmp r7, r1
+ beq _021E793C
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ lsl r7, r7, #2
+ add r4, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r6, r1, #0
+ mul r6, r0
+ ldr r1, [r4, r6]
+ add r0, r5, #0
+ ldrh r1, [r1, r7]
+ bl MOD75_021EAAE8
+ ldr r1, [r4, r6]
+ add r0, r5, #0
+ ldrh r1, [r1, r7]
+ bl MOD75_021EC034
+ b _021E794C
+_021E793C:
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ bl MOD75_021EAAE8
+ ldr r1, _021E7974 ; =0x0000FFFF
+ add r0, r5, #0
+ bl MOD75_021EC034
+_021E794C:
+ ldr r0, _021E7978 ; =0x00000479
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ bne _021E795C
+ add r5, #0x14
+ add r0, r5, #0
+ bl FUN_02019220
+_021E795C:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E7960: .word 0x00000482
+_021E7964: .word 0x000006CC
+_021E7968: .word 0x000006CD
+_021E796C: .word 0x000006CE
+_021E7970: .word 0x0000047A
+_021E7974: .word 0x0000FFFF
+_021E7978: .word 0x00000479
+ thumb_func_end MOD75_021E7870
+
+ thumb_func_start MOD75_021E797C
+MOD75_021E797C: ; 0x021E797C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ mov r1, #0x13
+ str r0, [sp]
+ add r7, r2, #0
+ bl FUN_02001470
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r6, r2, r0
+ ldr r0, _021E7A98 ; =0x0000047A
+ ldrb r1, [r4, r0]
+ cmp r1, #1
+ bne _021E79BA
+ add r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, r5
+ bne _021E79BA
+ ldr r0, [sp]
+ mov r1, #8
+ mov r2, #0
+ mov r3, #9
+ bl FUN_020013E8
+ b _021E79C6
+_021E79BA:
+ ldr r0, [sp]
+ mov r1, #1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_020013E8
+_021E79C6:
+ ldrb r0, [r6, #8]
+ cmp r0, #7
+ bne _021E79F8
+ mov r0, #2
+ mvn r0, r0
+ cmp r5, r0
+ beq _021E7A94
+ add r0, r0, #1
+ cmp r5, r0
+ beq _021E7A94
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_0206EBC4
+ ldr r2, [r6]
+ lsl r1, r5, #2
+ ldrh r1, [r2, r1]
+ cmp r1, r0
+ bne _021E7A94
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD75_021EB004
+ pop {r3, r4, r5, r6, r7, pc}
+_021E79F8:
+ cmp r0, #3
+ bne _021E7A24
+ mov r0, #1
+ mvn r0, r0
+ cmp r5, r0
+ bne _021E7A0E
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD75_021EAFB0
+ pop {r3, r4, r5, r6, r7, pc}
+_021E7A0E:
+ sub r0, r0, #1
+ cmp r5, r0
+ beq _021E7A94
+ ldr r2, [r6]
+ lsl r1, r5, #2
+ add r1, r2, r1
+ add r0, r4, #0
+ add r2, r7, #0
+ bl MOD75_021EAE90
+ pop {r3, r4, r5, r6, r7, pc}
+_021E7A24:
+ cmp r0, #4
+ bne _021E7A50
+ mov r0, #1
+ mvn r0, r0
+ cmp r5, r0
+ bne _021E7A3A
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD75_021EAFB0
+ pop {r3, r4, r5, r6, r7, pc}
+_021E7A3A:
+ sub r0, r0, #1
+ cmp r5, r0
+ beq _021E7A94
+ ldr r2, [r6]
+ lsl r1, r5, #2
+ add r1, r2, r1
+ add r0, r4, #0
+ add r2, r7, #0
+ bl MOD75_021EAF0C
+ pop {r3, r4, r5, r6, r7, pc}
+_021E7A50:
+ mov r0, #2
+ mvn r0, r0
+ cmp r5, r0
+ beq _021E7A94
+ add r0, r0, #1
+ cmp r5, r0
+ beq _021E7A94
+ ldr r0, _021E7A98 ; =0x0000047A
+ ldrb r1, [r4, r0]
+ cmp r1, #1
+ bne _021E7A82
+ add r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, r5
+ bne _021E7A82
+ ldr r2, [r6]
+ lsl r1, r5, #2
+ add r1, r2, r1
+ ldrh r1, [r1, #2]
+ ldr r3, _021E7A9C ; =0x00080900
+ add r0, r4, #0
+ add r2, r7, #0
+ bl MOD75_021EADDC
+ pop {r3, r4, r5, r6, r7, pc}
+_021E7A82:
+ ldr r2, [r6]
+ lsl r1, r5, #2
+ add r1, r2, r1
+ ldrh r1, [r1, #2]
+ ldr r3, _021E7AA0 ; =0x00010200
+ add r0, r4, #0
+ add r2, r7, #0
+ bl MOD75_021EADDC
+_021E7A94:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E7A98: .word 0x0000047A
+_021E7A9C: .word 0x00080900
+_021E7AA0: .word 0x00010200
+ thumb_func_end MOD75_021E797C
+
+ thumb_func_start MOD75_021E7AA4
+MOD75_021E7AA4: ; 0x021E7AA4
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ add r1, r3, #0
+ mul r2, r0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ add r1, #0xa
+ ldr r0, [r4, r0]
+ add r3, #8
+ add r1, r1, r2
+ add r2, r3, r2
+ bl FUN_02001300
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ mov r0, #0x57
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ pop {r4, pc}
+ thumb_func_end MOD75_021E7AA4
+
+ thumb_func_start MOD75_021E7AE0
+MOD75_021E7AE0: ; 0x021E7AE0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD75_021E86C0
+ add r0, r4, #0
+ bl MOD75_021EA2D8
+ cmp r0, #1
+ bne _021E7AF6
+ mov r0, #1
+ pop {r4, pc}
+_021E7AF6:
+ add r0, r4, #0
+ bl MOD75_021E7D14
+ cmp r0, #1
+ bne _021E7B04
+ mov r0, #2
+ pop {r4, pc}
+_021E7B04:
+ add r0, r4, #0
+ bl MOD75_021E8304
+ cmp r0, #1
+ bne _021E7B12
+ mov r0, #2
+ pop {r4, pc}
+_021E7B12:
+ add r0, r4, #0
+ bl MOD75_021E7B7C
+ cmp r0, #1
+ bne _021E7B60
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD75_021EC090
+ add r0, r4, #0
+ add r0, #0x14
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019570
+ add r0, r4, #0
+ bl MOD75_021E8B70
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r2, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r0, r2, r0
+ ldrb r0, [r0, #0xc]
+ cmp r0, #3
+ bne _021E7B5C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021E8DAC
+_021E7B5C:
+ mov r0, #4
+ pop {r4, pc}
+_021E7B60:
+ cmp r0, #2
+ bne _021E7B6E
+ add r0, r4, #0
+ bl MOD75_021E8864
+ mov r0, #3
+ pop {r4, pc}
+_021E7B6E:
+ cmp r0, #3
+ bne _021E7B76
+ mov r0, #0x18
+ pop {r4, pc}
+_021E7B76:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E7AE0
+
+ thumb_func_start MOD75_021E7B7C
+MOD75_021E7B7C: ; 0x021E7B7C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r4, r2, r0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #6
+ add r2, r4, #4
+ bl FUN_02001448
+ ldr r0, _021E7CD8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #4
+ tst r0, r1
+ beq _021E7BC0
+ add r0, r5, #0
+ bl MOD75_021E8808
+ cmp r0, #1
+ bne _021E7BC0
+ ldr r0, _021E7CDC ; =0x000005DC
+ bl FUN_020054C8
+ add sp, #4
+ mov r0, #2
+ pop {r3, r4, r5, r6, pc}
+_021E7BC0:
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001204
+ add r6, r0, #0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ add r1, sp, #0
+ ldr r0, [r5, r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_02001448
+ add r0, sp, #0
+ ldrh r2, [r0]
+ ldrh r0, [r4, #4]
+ cmp r0, r2
+ beq _021E7BFC
+ sub r2, r2, #1
+ add r0, r5, #0
+ lsl r2, r2, #4
+ add r0, #0xf0
+ add r2, #0x18
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #0xb1
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+_021E7BFC:
+ add r0, sp, #0
+ ldrh r1, [r0, #2]
+ strh r1, [r4, #6]
+ ldrh r0, [r0]
+ strh r0, [r4, #4]
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ bne _021E7C38
+ add r0, r5, #0
+ bl MOD75_021E87B8
+ cmp r0, #1
+ bne _021E7C38
+ add r1, sp, #0
+ ldrh r2, [r1, #2]
+ ldrh r1, [r1]
+ mov r0, #0x57
+ lsl r0, r0, #2
+ add r1, r2, r1
+ lsl r1, r1, #0x10
+ ldr r0, [r5, r0]
+ lsr r1, r1, #0x10
+ bl FUN_02001464
+ add r6, r0, #0
+ mov r0, #0x49
+ mov r1, #1
+ lsl r0, r0, #4
+ strb r1, [r5, r0]
+_021E7C38:
+ mov r0, #1
+ mvn r0, r0
+ cmp r6, r0
+ beq _021E7C6E
+ add r0, r0, #1
+ cmp r6, r0
+ bne _021E7CAC
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0200145C
+ cmp r0, #1
+ bne _021E7C5E
+ add r0, r5, #0
+ mov r1, #0x24
+ bl MOD75_021EA0CC
+ b _021E7CD2
+_021E7C5E:
+ cmp r0, #2
+ bne _021E7CD2
+ mov r1, #0x23
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD75_021EA0CC
+ b _021E7CD2
+_021E7C6E:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r0, #0x65
+ ldrb r0, [r0]
+ cmp r0, #5
+ bne _021E7C82
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_021E7C82:
+ ldr r0, _021E7CDC ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #0
+ add r0, #0x66
+ strh r1, [r0]
+ add r5, #0xc4
+ ldr r0, [r5]
+ mov r1, #5
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02079A70
+ add sp, #4
+ mov r0, #3
+ pop {r3, r4, r5, r6, pc}
+_021E7CAC:
+ ldr r0, _021E7CDC ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, [r4]
+ lsl r2, r6, #2
+ ldrh r1, [r0, r2]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add sp, #4
+ add r0, #0x66
+ strh r1, [r0]
+ ldr r0, [r4]
+ add r0, r0, r2
+ ldrh r1, [r0, #2]
+ ldr r0, _021E7CE0 ; =0x0000048A
+ strh r1, [r5, r0]
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021E7CD2:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021E7CD8: .word 0x021C48B8
+_021E7CDC: .word 0x000005DC
+_021E7CE0: .word 0x0000048A
+ thumb_func_end MOD75_021E7B7C
+
+ thumb_func_start MOD75_021E7CE4
+MOD75_021E7CE4: ; 0x021E7CE4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E7D0C ; =0x00000424
+ ldrb r2, [r4, r0]
+ mov r0, #0xa
+ add r1, r2, #0
+ mul r1, r0
+ mov r0, #0x5a
+ sub r0, r0, r1
+ add r1, r2, #1
+ bl _s32_div_f
+ add r1, r0, #6
+ ldr r0, _021E7D10 ; =0x00000427
+ strb r1, [r4, r0]
+ ldrb r1, [r4, r0]
+ add r0, r0, #1
+ add r1, r1, #4
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_021E7D0C: .word 0x00000424
+_021E7D10: .word 0x00000427
+ thumb_func_end MOD75_021E7CE4
+
+ thumb_func_start MOD75_021E7D14
+MOD75_021E7D14: ; 0x021E7D14
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E7DF8 ; =0x021C48B8
+ ldr r1, [r0, #0x4c]
+ mov r0, #0x20
+ tst r0, r1
+ beq _021E7D88
+ ldr r0, _021E7DFC ; =0x00000424
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ bne _021E7D2E
+ mov r0, #0
+ pop {r4, pc}
+_021E7D2E:
+ ldr r0, _021E7E00 ; =0x000006CA
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r0, #0x64
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021E7D58
+ ldr r1, _021E7E04 ; =0x00000429
+ sub r0, r0, #1
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, #0x4f
+ add r0, #0x64
+ ldrb r0, [r0]
+ sub r0, r0, #1
+ b _021E7D68
+_021E7D58:
+ ldr r1, _021E7DFC ; =0x00000424
+ ldrb r0, [r4, r1]
+ sub r2, r0, #1
+ add r0, r1, #5
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r1]
+ add r1, #0x54
+ sub r0, r0, #1
+_021E7D68:
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD75_021EC0C4
+ ldr r0, _021E7E08 ; =0x0000042A
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD75_021E7E0C
+ ldr r0, [r4]
+ mov r1, #4
+ bl FUN_0201AC68
+ mov r0, #1
+ pop {r4, pc}
+_021E7D88:
+ mov r0, #0x10
+ tst r0, r1
+ beq _021E7DF2
+ ldr r0, _021E7DFC ; =0x00000424
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ bne _021E7D9A
+ mov r0, #0
+ pop {r4, pc}
+_021E7D9A:
+ ldr r0, _021E7E00 ; =0x000006CA
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r1, _021E7DFC ; =0x00000424
+ add r0, #0x64
+ ldrb r0, [r0]
+ add r2, r0, #1
+ ldrb r0, [r4, r1]
+ cmp r2, r0
+ bge _021E7DCA
+ add r0, r1, #5
+ strb r2, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, #0x54
+ add r0, #0x64
+ ldrb r0, [r0]
+ add r0, r0, #1
+ strb r0, [r4, r1]
+ b _021E7DD4
+_021E7DCA:
+ add r0, r1, #5
+ mov r2, #0
+ strb r2, [r4, r0]
+ add r1, #0x54
+ strb r2, [r4, r1]
+_021E7DD4:
+ add r0, r4, #0
+ bl MOD75_021EC0C4
+ ldr r0, _021E7E08 ; =0x0000042A
+ mov r1, #1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD75_021E7E0C
+ ldr r0, [r4]
+ mov r1, #4
+ bl FUN_0201AC68
+ mov r0, #1
+ pop {r4, pc}
+_021E7DF2:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021E7DF8: .word 0x021C48B8
+_021E7DFC: .word 0x00000424
+_021E7E00: .word 0x000006CA
+_021E7E04: .word 0x00000429
+_021E7E08: .word 0x0000042A
+ thumb_func_end MOD75_021E7D14
+
+ thumb_func_start MOD75_021E7E0C
+MOD75_021E7E0C: ; 0x021E7E0C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD75_021E7E60
+ ldr r0, _021E7E28 ; =0x0000042D
+ mov r1, #3
+ strb r1, [r4, r0]
+ add r1, r0, #3
+ ldrb r2, [r4, r1]
+ mov r1, #0x80
+ add r0, r0, #3
+ bic r2, r1
+ strb r2, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_021E7E28: .word 0x0000042D
+ thumb_func_end MOD75_021E7E0C
+
+ thumb_func_start MOD75_021E7E2C
+MOD75_021E7E2C: ; 0x021E7E2C
+ push {r4, lr}
+ ldr r1, _021E7E58 ; =0x0000042A
+ add r4, r0, #0
+ ldrb r2, [r4, r1]
+ cmp r2, #2
+ beq _021E7E3E
+ bl MOD75_021E7E60
+ b _021E7E44
+_021E7E3E:
+ mov r2, #2
+ add r0, r1, #1
+ strb r2, [r4, r0]
+_021E7E44:
+ ldr r0, _021E7E5C ; =0x0000042D
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r1, r0, #3
+ ldrb r2, [r4, r1]
+ mov r1, #0x80
+ add r0, r0, #3
+ orr r1, r2
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_021E7E58: .word 0x0000042A
+_021E7E5C: .word 0x0000042D
+ thumb_func_end MOD75_021E7E2C
+
+ thumb_func_start MOD75_021E7E60
+MOD75_021E7E60: ; 0x021E7E60
+ push {r4, lr}
+ ldr r1, _021E7EE0 ; =0x00000429
+ add r4, r0, #0
+ add r1, r4, r1
+ mov r2, #0
+ strb r2, [r1, #2]
+ strb r2, [r1, #3]
+ strb r2, [r1, #5]
+ ldrb r3, [r1, #7]
+ mov r2, #0xf
+ bic r3, r2
+ strb r3, [r1, #7]
+ ldrb r3, [r1, #7]
+ mov r2, #0x70
+ bic r3, r2
+ strb r3, [r1, #7]
+ bl MOD75_021E7AA4
+ add r0, r4, #4
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x14
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #4
+ bl FUN_02019220
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r1, r4, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r4, #0
+ add r1, #0x64
+ ldrb r1, [r1]
+ mov r2, #0
+ bl MOD75_021EA96C
+ add r0, r4, #0
+ add r4, #0xc4
+ ldr r1, [r4]
+ mov r2, #0
+ add r1, #0x64
+ ldrb r1, [r1]
+ bl MOD75_021E84E4
+ pop {r4, pc}
+ .align 2, 0
+_021E7EE0: .word 0x00000429
+ thumb_func_end MOD75_021E7E60
+
+ thumb_func_start MOD75_021E7EE4
+MOD75_021E7EE4: ; 0x021E7EE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _021E8018 ; =0x00000429
+ add r4, r5, r0
+ bl FUN_02020A98
+ cmp r0, #0
+ bne _021E7F00
+ ldrb r1, [r4, #7]
+ mov r0, #0x70
+ bic r1, r0
+ mov r0, #0x10
+ orr r0, r1
+ strb r0, [r4, #7]
+_021E7F00:
+ add r0, r5, #0
+ bl MOD75_021E83CC
+ add r6, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ beq _021E7F16
+ ldrb r0, [r4]
+ cmp r6, r0
+ beq _021E7F22
+_021E7F16:
+ ldrb r1, [r4, #7]
+ mov r0, #0xf
+ bic r1, r0
+ mov r0, #1
+ orr r0, r1
+ strb r0, [r4, #7]
+_021E7F22:
+ add r0, r5, #0
+ bl MOD75_021E8020
+ cmp r0, #0
+ bne _021E7FB6
+ ldrb r0, [r4, #7]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1d
+ cmp r0, #1
+ bne _021E7FB6
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ beq _021E7FB6
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldrb r1, [r4]
+ add r0, #0x64
+ strb r1, [r0]
+ lsl r0, r6, #0x18
+ ldrb r1, [r4]
+ lsr r0, r0, #0x18
+ cmp r1, r0
+ bls _021E7F6E
+ mov r2, #0
+ strb r2, [r4, #1]
+ strb r2, [r4, #2]
+ ldrb r1, [r4]
+ add r0, r5, #0
+ bl MOD75_021E84E4
+ ldrb r1, [r4]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD75_021EA96C
+ b _021E7F92
+_021E7F6E:
+ cmp r1, r0
+ bhs _021E7F8E
+ mov r0, #1
+ strb r0, [r4, #1]
+ mov r2, #0
+ strb r2, [r4, #2]
+ ldrb r1, [r4]
+ add r0, r5, #0
+ bl MOD75_021E84E4
+ ldrb r1, [r4]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD75_021EA96C
+ b _021E7F92
+_021E7F8E:
+ mov r0, #2
+ strb r0, [r4, #1]
+_021E7F92:
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ strb r0, [r4]
+ ldrb r2, [r4, #7]
+ mov r1, #0xf
+ bic r2, r1
+ strb r2, [r4, #7]
+ ldrb r2, [r4, #7]
+ mov r1, #0x70
+ bic r2, r1
+ strb r2, [r4, #7]
+ mov r1, #0
+ strb r1, [r4, #4]
+ ldr r1, _021E801C ; =0x00000478
+ strb r0, [r5, r1]
+ add r0, r5, #0
+ bl MOD75_021EC0C4
+_021E7FB6:
+ add r0, r5, #0
+ bl MOD75_021E819C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD75_021E8424
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD75_021EC0DC
+ cmp r6, #1
+ bne _021E8012
+ cmp r7, #1
+ bne _021E8012
+ ldrb r0, [r4, #7]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ cmp r0, #1
+ bne _021E8012
+ add r0, r5, #0
+ bl MOD75_021EC0AC
+ cmp r0, #1
+ bne _021E8012
+ ldrb r0, [r4, #7]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _021E8004
+ ldrb r1, [r4]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD75_021E84E4
+ ldr r0, [r5]
+ mov r1, #4
+ bl FUN_0201AC68
+_021E8004:
+ add r5, #0xfc
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_0200C644
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E8012:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E8018: .word 0x00000429
+_021E801C: .word 0x00000478
+ thumb_func_end MOD75_021E7EE4
+
+ thumb_func_start MOD75_021E8020
+MOD75_021E8020: ; 0x021E8020
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021E8188 ; =0x021C48B8
+ ldr r1, _021E818C ; =0x00000429
+ ldr r2, [r0, #0x48]
+ mov r0, #0x20
+ add r4, r5, r1
+ tst r0, r2
+ beq _021E80D8
+ sub r0, r1, #5
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ bne _021E803E
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E803E:
+ ldr r0, _021E8190 ; =0x000006CA
+ bl FUN_020054C8
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r3, [r1]
+ add r0, r5, #0
+ add r0, #0xe0
+ ldrb r2, [r4]
+ mov r1, #0xc
+ ldr r0, [r0]
+ mul r1, r2
+ add r1, r3, r1
+ ldrb r1, [r1, #0xc]
+ bl FUN_0200C5C0
+ ldrb r1, [r4]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD75_021E84E4
+ ldr r0, [r5]
+ mov r1, #4
+ bl FUN_0201AC68
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldrb r1, [r4]
+ add r0, #0x64
+ strb r1, [r0]
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _021E808E
+ sub r0, r0, #1
+ strb r0, [r4]
+ ldr r0, _021E8194 ; =0x00000478
+ ldrb r1, [r5, r0]
+ sub r1, r1, #1
+ b _021E809C
+_021E808E:
+ ldr r0, _021E8198 ; =0x00000424
+ ldrb r1, [r5, r0]
+ sub r1, r1, #1
+ strb r1, [r4]
+ ldrb r1, [r5, r0]
+ add r0, #0x54
+ sub r1, r1, #1
+_021E809C:
+ strb r1, [r5, r0]
+ mov r0, #0
+ strb r0, [r4, #2]
+ strb r0, [r4, #1]
+ ldrb r1, [r4, #7]
+ mov r0, #0x70
+ bic r1, r0
+ mov r0, #0x10
+ orr r0, r1
+ strb r0, [r4, #7]
+ ldrb r1, [r4, #7]
+ mov r0, #0xf
+ bic r1, r0
+ mov r0, #1
+ orr r0, r1
+ strb r0, [r4, #7]
+ ldrb r1, [r4, #7]
+ mov r0, #0x80
+ bic r1, r0
+ strb r1, [r4, #7]
+ ldrb r0, [r4, #4]
+ cmp r0, #3
+ beq _021E80CE
+ mov r0, #4
+ strb r0, [r4, #4]
+_021E80CE:
+ add r0, r5, #0
+ bl MOD75_021EC0C4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E80D8:
+ mov r0, #0x10
+ tst r0, r2
+ beq _021E8182
+ sub r0, r1, #5
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ bne _021E80EA
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E80EA:
+ ldr r0, _021E8190 ; =0x000006CA
+ bl FUN_020054C8
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r3, [r1]
+ add r0, r5, #0
+ add r0, #0xe0
+ ldrb r2, [r4]
+ mov r1, #0xc
+ ldr r0, [r0]
+ mul r1, r2
+ add r1, r3, r1
+ ldrb r1, [r1, #0xc]
+ bl FUN_0200C5C0
+ ldrb r1, [r4]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD75_021E84E4
+ ldr r0, [r5]
+ mov r1, #4
+ bl FUN_0201AC68
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldrb r1, [r4]
+ add r0, #0x64
+ strb r1, [r0]
+ ldrb r0, [r4]
+ ldr r1, _021E8198 ; =0x00000424
+ add r2, r0, #1
+ ldrb r0, [r5, r1]
+ cmp r2, r0
+ bge _021E8140
+ add r0, r1, #0
+ strb r2, [r4]
+ add r0, #0x54
+ ldrb r0, [r5, r0]
+ add r0, r0, #1
+ b _021E8144
+_021E8140:
+ mov r0, #0
+ strb r0, [r4]
+_021E8144:
+ add r1, #0x54
+ strb r0, [r5, r1]
+ mov r0, #0
+ strb r0, [r4, #2]
+ mov r0, #1
+ strb r0, [r4, #1]
+ ldrb r2, [r4, #7]
+ mov r1, #0x70
+ bic r2, r1
+ mov r1, #0x10
+ orr r1, r2
+ strb r1, [r4, #7]
+ ldrb r2, [r4, #7]
+ mov r1, #0xf
+ bic r2, r1
+ orr r0, r2
+ strb r0, [r4, #7]
+ ldrb r1, [r4, #7]
+ mov r0, #0x80
+ bic r1, r0
+ strb r1, [r4, #7]
+ ldrb r0, [r4, #4]
+ cmp r0, #3
+ beq _021E8178
+ mov r0, #4
+ strb r0, [r4, #4]
+_021E8178:
+ add r0, r5, #0
+ bl MOD75_021EC0C4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E8182:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021E8188: .word 0x021C48B8
+_021E818C: .word 0x00000429
+_021E8190: .word 0x000006CA
+_021E8194: .word 0x00000478
+_021E8198: .word 0x00000424
+ thumb_func_end MOD75_021E8020
+
+ thumb_func_start MOD75_021E819C
+MOD75_021E819C: ; 0x021E819C
+ push {r4, r5, r6, lr}
+ ldr r1, _021E8300 ; =0x00000429
+ add r5, r0, #0
+ add r4, r5, r1
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _021E81B6
+ cmp r1, #1
+ beq _021E81C2
+ cmp r1, #2
+ bne _021E81B4
+ b _021E82F8
+_021E81B4:
+ b _021E82FC
+_021E81B6:
+ mov r0, #0
+ strb r0, [r4, #3]
+ ldrb r0, [r4, #2]
+ add r0, r0, #1
+ strb r0, [r4, #2]
+ b _021E82FC
+_021E81C2:
+ ldrb r1, [r4, #3]
+ cmp r1, #8
+ bhs _021E81D2
+ add r1, r1, #1
+ strb r1, [r4, #3]
+ bl MOD75_021EA8BC
+ b _021E82FC
+_021E81D2:
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021E8206
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r3, [r1]
+ add r1, r3, #0
+ add r1, #0x64
+ ldrb r6, [r1]
+ mov r1, #0xc
+ add r2, r6, #0
+ mul r2, r1
+ add r1, r3, #0
+ add r1, #0xa
+ add r3, #8
+ add r1, r1, r2
+ add r2, r3, r2
+ bl FUN_02001300
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+_021E8206:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldrb r1, [r4]
+ add r0, #0x64
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r2, r1, #0
+ add r2, #0x64
+ ldrb r3, [r2]
+ mov r2, #0xc
+ add r0, #0xe0
+ mul r2, r3
+ add r1, r1, r2
+ ldrb r1, [r1, #0xc]
+ ldr r0, [r0]
+ bl FUN_0200C5C0
+ add r0, r5, #0
+ bl MOD75_021EA9F8
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r1, #0x64
+ ldrb r1, [r1]
+ mov r2, #1
+ bl MOD75_021EA96C
+ add r0, r5, #0
+ bl MOD75_021E7580
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r3, #0
+ add r1, r3, #0
+ add r0, #0xa
+ add r1, #8
+ add r0, r0, r2
+ add r1, r1, r2
+ add r2, r3, r2
+ ldrb r2, [r2, #0xd]
+ bl MOD75_021E7758
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r3, #0
+ add r1, r3, #0
+ add r0, #0xa
+ add r1, #8
+ add r0, r0, r2
+ add r1, r1, r2
+ add r2, r3, r2
+ ldrb r2, [r2, #0xd]
+ mov r3, #9
+ bl MOD75_021E7794
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ add r0, r1, #0
+ add r0, #0x64
+ ldrb r2, [r0]
+ mov r0, #0xc
+ add r3, r2, #0
+ mul r3, r0
+ add r2, r1, r3
+ ldrh r1, [r2, #0xa]
+ ldrh r2, [r2, #8]
+ add r0, r5, #0
+ bl MOD75_021E77E8
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r5, #0
+ add r3, r2, #0
+ add r3, #0x64
+ ldrb r6, [r3]
+ mov r3, #0xc
+ add r0, #0xf0
+ mul r3, r6
+ add r2, r2, r3
+ ldrh r2, [r2, #8]
+ ldr r0, [r0]
+ mov r1, #0xb1
+ sub r2, r2, #1
+ lsl r2, r2, #4
+ add r2, #0x18
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r5, #0xf0
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_0200C644
+ ldrb r0, [r4, #2]
+ add r0, r0, #1
+ strb r0, [r4, #2]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_021E82F8:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_021E82FC:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021E8300: .word 0x00000429
+ thumb_func_end MOD75_021E819C
+
+ thumb_func_start MOD75_021E8304
+MOD75_021E8304: ; 0x021E8304
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD75_021E8374
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _021E8318
+ mov r0, #0
+ pop {r4, pc}
+_021E8318:
+ ldr r2, _021E836C ; =0x00000424
+ ldrb r1, [r4, r2]
+ cmp r1, #1
+ bne _021E8324
+ mov r0, #0
+ pop {r4, pc}
+_021E8324:
+ add r1, r4, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r1, #0x64
+ ldrb r3, [r1]
+ lsl r1, r0, #0x18
+ lsr r1, r1, #0x18
+ cmp r3, r1
+ bne _021E833E
+ mov r3, #2
+ add r1, r2, #6
+ strb r3, [r4, r1]
+ b _021E8350
+_021E833E:
+ cmp r3, r1
+ bls _021E834A
+ mov r3, #0
+ add r1, r2, #6
+ strb r3, [r4, r1]
+ b _021E8350
+_021E834A:
+ mov r3, #1
+ add r1, r2, #6
+ strb r3, [r4, r1]
+_021E8350:
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, _021E8370 ; =0x00000429
+ strb r1, [r4, r0]
+ add r0, #0x4f
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD75_021EC0C4
+ add r0, r4, #0
+ bl MOD75_021E7E2C
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021E836C: .word 0x00000424
+_021E8370: .word 0x00000429
+ thumb_func_end MOD75_021E8304
+
+ thumb_func_start MOD75_021E8374
+MOD75_021E8374: ; 0x021E8374
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, _021E83BC ; =0x00000424
+ ldrb r0, [r5, r0]
+ lsl r1, r0, #3
+ ldr r0, _021E83C0 ; =0x021EC628
+ ldr r0, [r0, r1]
+ bl FUN_02020988
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ beq _021E83B6
+ ldr r1, _021E83C4 ; =0x0000FFFE
+ add r0, sp, #4
+ strh r1, [r0]
+ add r0, sp, #4
+ str r0, [sp]
+ ldr r3, _021E83C8 ; =0x021C48F8
+ ldr r0, [r5]
+ ldrh r2, [r3, #0x1c]
+ ldrh r3, [r3, #0x1e]
+ mov r1, #4
+ bl FUN_0201AFBC
+ cmp r0, #0
+ bne _021E83B6
+ mov r0, #0
+ add sp, #8
+ mvn r0, r0
+ pop {r3, r4, r5, pc}
+_021E83B6:
+ add r0, r4, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E83BC: .word 0x00000424
+_021E83C0: .word 0x021EC628
+_021E83C4: .word 0x0000FFFE
+_021E83C8: .word 0x021C48F8
+ thumb_func_end MOD75_021E8374
+
+ thumb_func_start MOD75_021E83CC
+MOD75_021E83CC: ; 0x021E83CC
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, _021E8414 ; =0x00000424
+ ldrb r0, [r5, r0]
+ lsl r1, r0, #3
+ ldr r0, _021E8418 ; =0x021EC628
+ ldr r0, [r0, r1]
+ bl FUN_02020968
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ beq _021E840E
+ ldr r1, _021E841C ; =0x0000FFFE
+ add r0, sp, #4
+ strh r1, [r0]
+ add r0, sp, #4
+ str r0, [sp]
+ ldr r3, _021E8420 ; =0x021C48F8
+ ldr r0, [r5]
+ ldrh r2, [r3, #0x1c]
+ ldrh r3, [r3, #0x1e]
+ mov r1, #4
+ bl FUN_0201AFBC
+ cmp r0, #0
+ bne _021E840E
+ mov r0, #0
+ add sp, #8
+ mvn r0, r0
+ pop {r3, r4, r5, pc}
+_021E840E:
+ add r0, r4, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E8414: .word 0x00000424
+_021E8418: .word 0x021EC628
+_021E841C: .word 0x0000FFFE
+_021E8420: .word 0x021C48F8
+ thumb_func_end MOD75_021E83CC
+
+ thumb_func_start MOD75_021E8424
+MOD75_021E8424: ; 0x021E8424
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021E84D4 ; =0x00000429
+ add r4, r5, r0
+ ldrb r0, [r4, #4]
+ cmp r0, #4
+ bhi _021E84CA
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021E843E: ; jump table
+ .short _021E8448 - _021E843E - 2 ; case 0
+ .short _021E8460 - _021E843E - 2 ; case 1
+ .short _021E84B0 - _021E843E - 2 ; case 2
+ .short _021E84BE - _021E843E - 2 ; case 3
+ .short _021E84C2 - _021E843E - 2 ; case 4
+_021E8448:
+ mov r0, #0
+ strb r0, [r4, #5]
+ ldrb r1, [r4, #7]
+ mov r0, #0x80
+ orr r0, r1
+ strb r0, [r4, #7]
+ ldrb r0, [r4]
+ strb r0, [r4, #6]
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ b _021E84CA
+_021E8460:
+ ldrb r0, [r4, #5]
+ cmp r0, #3
+ bne _021E84CA
+ ldr r0, _021E84D8 ; =0x000005E4
+ bl FUN_020054C8
+ ldrb r1, [r4, #6]
+ add r0, r5, #0
+ mov r2, #2
+ bl MOD75_021E84E4
+ ldr r0, [r5]
+ mov r1, #4
+ bl FUN_0201AC68
+ ldrb r0, [r4, #6]
+ lsl r3, r0, #1
+ ldr r0, _021E84DC ; =0x00000424
+ ldrb r0, [r5, r0]
+ lsl r1, r0, #3
+ ldr r0, _021E84E0 ; =0x021EC624
+ ldr r2, [r0, r1]
+ add r0, r5, #0
+ ldrb r1, [r2, r3]
+ add r3, r3, #1
+ ldrb r2, [r2, r3]
+ lsl r1, r1, #3
+ add r1, #0x14
+ lsl r2, r2, #3
+ add r2, #0x14
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD75_021EC380
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ b _021E84CA
+_021E84B0:
+ ldrb r1, [r4, #5]
+ cmp r1, #7
+ bne _021E84CA
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E84BE:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E84C2:
+ mov r0, #3
+ strb r0, [r4, #4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E84CA:
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E84D4: .word 0x00000429
+_021E84D8: .word 0x000005E4
+_021E84DC: .word 0x00000424
+_021E84E0: .word 0x021EC624
+ thumb_func_end MOD75_021E8424
+
+ thumb_func_start MOD75_021E84E4
+MOD75_021E84E4: ; 0x021E84E4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ add r5, r1, #0
+ mov r1, #4
+ add r6, r2, #0
+ bl FUN_0201886C
+ add r7, r0, #0
+ ldr r0, _021E856C ; =0x00000424
+ ldrb r0, [r4, r0]
+ add r4, #0xc4
+ lsl r1, r0, #3
+ ldr r0, _021E8570 ; =0x021EC624
+ ldr r1, [r0, r1]
+ lsl r0, r5, #1
+ add r2, r1, r0
+ ldr r1, [r4]
+ mov r0, #0xc
+ mul r0, r5
+ add r0, r1, r0
+ ldrb r3, [r0, #0xc]
+ lsl r0, r6, #2
+ add r1, r6, r0
+ lsr r5, r3, #1
+ mov r0, #0x96
+ mul r0, r5
+ mov r5, #1
+ and r5, r3
+ mov r3, #0xf
+ mul r3, r5
+ add r0, r0, r3
+ add r0, #0x1e
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r4, #0
+ mov ip, r0
+_021E8530:
+ mov r0, #0x1e
+ add r1, r4, #0
+ mul r1, r0
+ mov r0, ip
+ mov r3, #0
+ add r5, r0, r1
+_021E853C:
+ ldrb r6, [r2, #1]
+ mov r0, #2
+ add r1, r3, r5
+ lsl r0, r0, #0xc
+ add r1, r1, r0
+ add r6, r4, r6
+ lsl r6, r6, #5
+ ldrb r0, [r2]
+ add r6, r3, r6
+ add r0, r0, r6
+ lsl r0, r0, #1
+ strh r1, [r7, r0]
+ add r0, r3, #1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ cmp r3, #5
+ blo _021E853C
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #5
+ blo _021E8530
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E856C: .word 0x00000424
+_021E8570: .word 0x021EC624
+ thumb_func_end MOD75_021E84E4
+
+ thumb_func_start MOD75_021E8574
+MOD75_021E8574: ; 0x021E8574
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r4, r1, #0
+ ldr r0, [r0]
+ mov r1, #4
+ bl FUN_0201886C
+ mov ip, r0
+ add r1, r4, #0
+ mov r0, #6
+ mul r1, r0
+ ldr r0, _021E85D4 ; =0x00000276
+ mov r4, #3
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ mov r6, #0
+ lsr r7, r0, #0x10
+ lsl r4, r4, #0xc
+_021E8598:
+ mov r0, #0x1e
+ mul r0, r6
+ add r2, r7, r0
+ add r0, r6, #7
+ lsl r3, r0, #6
+ mov r0, ip
+ mov r1, #0
+ add r3, r0, r3
+_021E85A8:
+ add r0, r1, r2
+ lsl r5, r1, #1
+ add r0, r0, r4
+ add r5, r3, r5
+ strh r0, [r5, #0x1a]
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, #6
+ blo _021E85A8
+ add r0, r6, #1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #6
+ blo _021E8598
+ ldr r0, [sp]
+ mov r1, #4
+ ldr r0, [r0]
+ bl FUN_0201AC68
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E85D4: .word 0x00000276
+ thumb_func_end MOD75_021E8574
+
+ thumb_func_start MOD75_021E85D8
+MOD75_021E85D8: ; 0x021E85D8
+ push {r4, lr}
+ mov r1, #0x49
+ add r4, r0, #0
+ lsl r1, r1, #4
+ ldrb r2, [r4, r1]
+ cmp r2, #3
+ bhi _021E8674
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021E85F2: ; jump table
+ .short _021E8674 - _021E85F2 - 2 ; case 0
+ .short _021E85FA - _021E85F2 - 2 ; case 1
+ .short _021E8622 - _021E85F2 - 2 ; case 2
+ .short _021E864E - _021E85F2 - 2 ; case 3
+_021E85FA:
+ mov r1, #0x80
+ mov r2, #0x50
+ bl MOD75_021EC380
+ ldr r0, _021E8678 ; =0x000005E4
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD75_021E8574
+ ldr r0, _021E867C ; =0x00000491
+ 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]
+ pop {r4, pc}
+_021E8622:
+ add r2, r1, #1
+ ldrb r2, [r4, r2]
+ cmp r2, #3
+ bne _021E8642
+ mov r1, #1
+ bl MOD75_021E8574
+ mov r0, #0x49
+ lsl r0, r0, #4
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r1, #0
+ add r0, r0, #1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_021E8642:
+ add r0, r1, #1
+ ldrb r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ pop {r4, pc}
+_021E864E:
+ add r2, r1, #1
+ ldrb r2, [r4, r2]
+ cmp r2, #2
+ bne _021E866A
+ mov r1, #0
+ bl MOD75_021E8574
+ mov r0, #0x49
+ mov r1, #0
+ lsl r0, r0, #4
+ strb r1, [r4, r0]
+ add r0, r0, #1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_021E866A:
+ add r0, r1, #1
+ ldrb r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #1
+ strb r2, [r4, r0]
+_021E8674:
+ pop {r4, pc}
+ nop
+_021E8678: .word 0x000005E4
+_021E867C: .word 0x00000491
+ thumb_func_end MOD75_021E85D8
+
+ thumb_func_start MOD75_021E8680
+MOD75_021E8680: ; 0x021E8680
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0
+ add r5, r0, #0
+ bl MOD75_021E8574
+ ldr r0, _021E86BC ; =0x00000424
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ beq _021E86B2
+ mov r4, #0
+ cmp r0, #0
+ bls _021E86B2
+ ldr r6, _021E86BC ; =0x00000424
+ add r7, r4, #0
+_021E869C:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD75_021E84E4
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldrb r0, [r5, r6]
+ cmp r4, r0
+ blo _021E869C
+_021E86B2:
+ ldr r0, [r5]
+ mov r1, #4
+ bl FUN_0201AC68
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E86BC: .word 0x00000424
+ thumb_func_end MOD75_021E8680
+
+ thumb_func_start MOD75_021E86C0
+MOD75_021E86C0: ; 0x021E86C0
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, _021E87B4 ; =0x00000481
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ bne _021E87A2
+ sub r0, r0, #1
+ ldrb r0, [r4, r0]
+ cmp r0, #3
+ bhi _021E8794
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021E86E2: ; jump table
+ .short _021E86EA - _021E86E2 - 2 ; case 0
+ .short _021E86EA - _021E86E2 - 2 ; case 1
+ .short _021E8740 - _021E86E2 - 2 ; case 2
+ .short _021E8740 - _021E86E2 - 2 ; case 3
+_021E86EA:
+ add r0, r4, #0
+ add r0, #0xe8
+ add r1, sp, #0
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r3, sp, #0
+ mov r1, #2
+ ldrsh r0, [r3, r1]
+ mov r2, #0
+ sub r0, r0, #1
+ strh r0, [r3, #2]
+ add r0, r4, #0
+ add r0, #0xe8
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r0]
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r0, #0xec
+ add r1, sp, #0
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r3, sp, #0
+ mov r1, #2
+ ldrsh r0, [r3, r1]
+ mov r2, #0
+ add r0, r0, #1
+ strh r0, [r3, #2]
+ add r0, r4, #0
+ add r0, #0xec
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r0]
+ bl FUN_0200C714
+ b _021E8794
+_021E8740:
+ add r0, r4, #0
+ add r0, #0xe8
+ add r1, sp, #0
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r3, sp, #0
+ mov r1, #2
+ ldrsh r0, [r3, r1]
+ mov r2, #0
+ add r0, r0, #1
+ strh r0, [r3, #2]
+ add r0, r4, #0
+ add r0, #0xe8
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r0]
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r0, #0xec
+ add r1, sp, #0
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r3, sp, #0
+ mov r1, #2
+ ldrsh r0, [r3, r1]
+ mov r2, #0
+ sub r0, r0, #1
+ strh r0, [r3, #2]
+ add r0, r4, #0
+ add r0, #0xec
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r0]
+ bl FUN_0200C714
+_021E8794:
+ mov r1, #0x12
+ lsl r1, r1, #6
+ ldrb r0, [r4, r1]
+ add r2, r0, #1
+ mov r0, #3
+ and r0, r2
+ strb r0, [r4, r1]
+_021E87A2:
+ ldr r1, _021E87B4 ; =0x00000481
+ ldrb r0, [r4, r1]
+ add r2, r0, #1
+ mov r0, #3
+ and r0, r2
+ strb r0, [r4, r1]
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021E87B4: .word 0x00000481
+ thumb_func_end MOD75_021E86C0
+
+ thumb_func_start MOD75_021E87B8
+MOD75_021E87B8: ; 0x021E87B8
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, _021E87FC ; =0x021EC3F4
+ bl FUN_02020988
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _021E87F4
+ ldr r1, _021E8800 ; =0x0000FFFE
+ add r0, sp, #4
+ strh r1, [r0]
+ add r0, sp, #4
+ str r0, [sp]
+ ldr r3, _021E8804 ; =0x021C48F8
+ ldr r0, [r4]
+ ldrh r2, [r3, #0x1c]
+ ldrh r3, [r3, #0x1e]
+ mov r1, #4
+ bl FUN_0201AFBC
+ cmp r0, #0
+ beq _021E87EE
+ add sp, #8
+ mov r0, #1
+ pop {r4, pc}
+_021E87EE:
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_021E87F4:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ nop
+_021E87FC: .word 0x021EC3F4
+_021E8800: .word 0x0000FFFE
+_021E8804: .word 0x021C48F8
+ thumb_func_end MOD75_021E87B8
+
+ thumb_func_start MOD75_021E8808
+MOD75_021E8808: ; 0x021E8808
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r4, r2, r0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldrh r2, [r4, #6]
+ ldrh r1, [r4, #4]
+ ldr r0, [r5, r0]
+ add r1, r2, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_02001464
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ bne _021E883C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021E883C:
+ add r5, #0xc4
+ ldr r0, [r5]
+ add r0, #0x65
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021E884C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021E884C:
+ ldrb r0, [r4, #8]
+ add r0, #0xfd
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bls _021E885C
+ mov r0, #1
+ b _021E885E
+_021E885C:
+ mov r0, #0
+_021E885E:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD75_021E8808
+
+ thumb_func_start MOD75_021E8864
+MOD75_021E8864: ; 0x021E8864
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r3, r2, r0
+ ldr r1, _021E88B4 ; =0x0000047A
+ mov r0, #1
+ strb r0, [r4, r1]
+ ldrh r2, [r3, #6]
+ ldrh r0, [r3, #4]
+ add r2, r2, r0
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ mov r0, #0x57
+ add r1, r1, #1
+ lsl r0, r0, #2
+ ldrb r1, [r4, r1]
+ ldr r0, [r4, r0]
+ bl FUN_02001464
+ ldr r1, _021E88B8 ; =0x0000047C
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD75_021EB3D8
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02001328
+ add r0, r4, #0
+ bl MOD75_021E8AAC
+ pop {r4, pc}
+ nop
+_021E88B4: .word 0x0000047A
+_021E88B8: .word 0x0000047C
+ thumb_func_end MOD75_021E8864
+
+ thumb_func_start MOD75_021E88BC
+MOD75_021E88BC: ; 0x021E88BC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ bl MOD75_021EA3F4
+ cmp r0, #1
+ bne _021E88D0
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_021E88D0:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r4, r2, r0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #6
+ add r2, r4, #4
+ bl FUN_02001448
+ add r0, r5, #0
+ bl MOD75_021E87B8
+ cmp r0, #1
+ bne _021E8912
+ ldr r0, _021E89E8 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ bl MOD75_021E89F0
+ mov r1, #0x49
+ mov r0, #1
+ lsl r1, r1, #4
+ add sp, #4
+ strb r0, [r5, r1]
+ pop {r3, r4, r5, r6, pc}
+_021E8912:
+ ldr r0, _021E89EC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #4
+ tst r0, r1
+ beq _021E892E
+ ldr r0, _021E89E8 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ bl MOD75_021E89F0
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021E892E:
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001204
+ add r6, r0, #0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ add r1, sp, #0
+ ldr r0, [r5, r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_02001448
+ add r0, sp, #0
+ ldrh r2, [r0]
+ ldrh r0, [r4, #4]
+ cmp r0, r2
+ beq _021E896A
+ sub r2, r2, #1
+ add r0, r5, #0
+ lsl r2, r2, #4
+ add r0, #0xf4
+ add r2, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #0xb1
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+_021E896A:
+ add r0, sp, #0
+ ldrh r1, [r0, #2]
+ strh r1, [r4, #6]
+ ldrh r0, [r0]
+ strh r0, [r4, #4]
+ mov r0, #1
+ mvn r0, r0
+ cmp r6, r0
+ beq _021E89AA
+ add r0, r0, #1
+ cmp r6, r0
+ bne _021E89CE
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0200145C
+ cmp r0, #1
+ bne _021E899A
+ add r0, r5, #0
+ mov r1, #0x24
+ bl MOD75_021EA0CC
+ b _021E89E0
+_021E899A:
+ cmp r0, #2
+ bne _021E89E0
+ mov r1, #0x23
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD75_021EA0CC
+ b _021E89E0
+_021E89AA:
+ ldr r0, _021E89E8 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _021E89EC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _021E89C2
+ add r0, r5, #0
+ bl MOD75_021E89F0
+ b _021E89C8
+_021E89C2:
+ add r0, r5, #0
+ bl MOD75_021E8A48
+_021E89C8:
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021E89CE:
+ ldr r0, _021E89E8 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ bl MOD75_021E89F0
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021E89E0:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021E89E8: .word 0x000005DC
+_021E89EC: .word 0x021C48B8
+ thumb_func_end MOD75_021E88BC
+
+ thumb_func_start MOD75_021E89F0
+MOD75_021E89F0: ; 0x021E89F0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r0, r2, r0
+ ldrh r2, [r0, #6]
+ ldrh r1, [r0, #4]
+ add r1, r2, r1
+ lsl r1, r1, #0x10
+ lsr r2, r1, #0x10
+ ldr r1, _021E8A44 ; =0x0000047B
+ ldrb r1, [r4, r1]
+ cmp r1, r2
+ beq _021E8A3C
+ sub r2, r2, #1
+ cmp r1, r2
+ beq _021E8A3C
+ sub r1, r1, #1
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_0206E5B4
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ add r0, r4, #0
+ bl MOD75_021E7580
+_021E8A3C:
+ add r0, r4, #0
+ bl MOD75_021E8A48
+ pop {r4, pc}
+ .align 2, 0
+_021E8A44: .word 0x0000047B
+ thumb_func_end MOD75_021E89F0
+
+ thumb_func_start MOD75_021E8A48
+MOD75_021E8A48: ; 0x021E8A48
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r4, r2, r0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #6
+ add r2, r4, #4
+ bl FUN_02001300
+ mov r0, #0x57
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ ldr r0, _021E8AA4 ; =0x0000047B
+ ldrh r1, [r4, #6]
+ ldrb r2, [r5, r0]
+ ldrh r0, [r4, #4]
+ add r1, r1, r0
+ cmp r2, r1
+ bge _021E8A84
+ sub r0, r0, #1
+ strh r0, [r4, #4]
+_021E8A84:
+ ldr r0, _021E8AA8 ; =0x0000047A
+ mov r2, #0
+ strb r2, [r5, r0]
+ add r1, r0, #1
+ strb r2, [r5, r1]
+ add r0, r0, #2
+ str r2, [r5, r0]
+ ldrh r1, [r4, #6]
+ ldrh r2, [r4, #4]
+ add r0, r5, #0
+ bl MOD75_021E77E8
+ add r0, r5, #0
+ bl MOD75_021E8AAC
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E8AA4: .word 0x0000047B
+_021E8AA8: .word 0x0000047A
+ thumb_func_end MOD75_021E8A48
+
+ thumb_func_start MOD75_021E8AAC
+MOD75_021E8AAC: ; 0x021E8AAC
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r2, r2, r0
+ ldr r0, _021E8B68 ; =0x0000047A
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _021E8B18
+ ldrh r2, [r2, #4]
+ add r0, r4, #0
+ add r0, #0xf0
+ sub r2, r2, #1
+ lsl r2, r2, #4
+ add r2, #0x18
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #0xb1
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200C644
+ add r0, r4, #0
+ add r0, #0xf4
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, _021E8B6C ; =0x00000424
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ beq _021E8B66
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200C644
+ add r4, #0xec
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0200C644
+ pop {r4, pc}
+_021E8B18:
+ ldrh r2, [r2, #4]
+ add r0, r4, #0
+ add r0, #0xf4
+ sub r2, r2, #1
+ lsl r2, r2, #4
+ add r2, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #0xb1
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r4, #0
+ add r0, #0xf4
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, _021E8B6C ; =0x00000424
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ beq _021E8B66
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r4, #0xec
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0200C644
+_021E8B66:
+ pop {r4, pc}
+ .align 2, 0
+_021E8B68: .word 0x0000047A
+_021E8B6C: .word 0x00000424
+ thumb_func_end MOD75_021E8AAC
+
+ thumb_func_start MOD75_021E8B70
+MOD75_021E8B70: ; 0x021E8B70
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #0
+ add r0, #0x66
+ ldrh r0, [r0]
+ mov r2, #6
+ bl FUN_0206E710
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r4, #0
+ add r1, r0, #0
+ add r1, #0x64
+ ldrb r2, [r1]
+ mov r1, #0xc
+ mul r1, r2
+ add r1, r0, r1
+ add r0, #0x65
+ ldrb r0, [r0]
+ ldrb r6, [r1, #0xc]
+ cmp r0, #0
+ beq _021E8BA8
+ b _021E8CB6
+_021E8BA8:
+ cmp r6, #4
+ bne _021E8BB4
+ mov r1, #9
+ add r0, sp, #0
+ strb r1, [r0]
+ add r4, r4, #1
+_021E8BB4:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #0
+ add r1, #0x76
+ ldrh r1, [r1]
+ lsl r1, r1, #0x10
+ lsr r2, r1, #0x11
+ ldr r1, _021E8CE8 ; =0x0000FFFE
+ add r1, r2, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ cmp r1, #1
+ bhi _021E8BEC
+ add r1, r0, #0
+ add r1, #0x64
+ ldrb r2, [r1]
+ mov r1, #0xc
+ mul r1, r2
+ add r0, r0, r1
+ ldrb r0, [r0, #0xc]
+ cmp r0, #5
+ bne _021E8C66
+ mov r1, #2
+ add r0, sp, #0
+ strb r1, [r0, r4]
+ add r4, r4, #1
+ b _021E8C66
+_021E8BEC:
+ add r0, r7, #0
+ mov r1, #6
+ bl FUN_0206E7DC
+ cmp r0, #0
+ beq _021E8C66
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ ldr r2, _021E8CEC ; =0x000001C2
+ add r0, r1, #0
+ add r0, #0x66
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _021E8C20
+ add r2, r1, #0
+ add r2, #0x76
+ ldrh r2, [r2]
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1f
+ cmp r2, #1
+ bne _021E8C20
+ mov r1, #1
+ add r0, sp, #0
+ strb r1, [r0, r4]
+ b _021E8C64
+_021E8C20:
+ add r2, r1, #0
+ add r2, #0x64
+ ldrb r3, [r2]
+ mov r2, #0xc
+ mul r2, r3
+ add r2, r1, r2
+ ldrb r3, [r2, #0xc]
+ cmp r3, #5
+ bne _021E8C3A
+ mov r1, #2
+ add r0, sp, #0
+ strb r1, [r0, r4]
+ b _021E8C64
+_021E8C3A:
+ ldr r2, _021E8CF0 ; =0x000001C1
+ cmp r0, r2
+ bne _021E8C48
+ mov r1, #4
+ add r0, sp, #0
+ strb r1, [r0, r4]
+ b _021E8C64
+_021E8C48:
+ cmp r3, #4
+ bne _021E8C5E
+ ldr r0, [r1, #0x70]
+ bl FUN_0205D51C
+ cmp r0, #1
+ bne _021E8C5E
+ mov r1, #3
+ add r0, sp, #0
+ strb r1, [r0, r4]
+ b _021E8C64
+_021E8C5E:
+ mov r1, #0
+ add r0, sp, #0
+ strb r1, [r0, r4]
+_021E8C64:
+ add r4, r4, #1
+_021E8C66:
+ add r0, r7, #0
+ mov r1, #3
+ bl FUN_0206E7DC
+ cmp r0, #0
+ bne _021E8C84
+ mov r0, #8
+ add r1, sp, #0
+ strb r0, [r1, r4]
+ add r4, r4, #1
+ cmp r6, #3
+ beq _021E8C84
+ mov r0, #5
+ strb r0, [r1, r4]
+ add r4, r4, #1
+_021E8C84:
+ add r0, r7, #0
+ mov r1, #4
+ bl FUN_0206E7DC
+ cmp r0, #0
+ beq _021E8CCC
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_0206EBC4
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r1, #0x66
+ ldrh r1, [r1]
+ cmp r1, r0
+ bne _021E8CAC
+ mov r1, #7
+ b _021E8CAE
+_021E8CAC:
+ mov r1, #6
+_021E8CAE:
+ add r0, sp, #0
+ strb r1, [r0, r4]
+ add r4, r4, #1
+ b _021E8CCC
+_021E8CB6:
+ add r0, #0xfc
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bhi _021E8CCC
+ mov r1, #0xa
+ add r0, sp, #0
+ strb r1, [r0]
+ mov r1, #9
+ strb r1, [r0, #1]
+ add r4, r4, #2
+_021E8CCC:
+ add r2, r4, #1
+ lsl r2, r2, #0x18
+ mov r0, #0xb
+ add r1, sp, #0
+ strb r0, [r1, r4]
+ add r0, r5, #0
+ lsr r2, r2, #0x18
+ bl MOD75_021EB130
+ add r0, r7, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E8CE8: .word 0x0000FFFE
+_021E8CEC: .word 0x000001C2
+_021E8CF0: .word 0x000001C1
+ thumb_func_end MOD75_021E8B70
+
+ thumb_func_start MOD75_021E8CF4
+MOD75_021E8CF4: ; 0x021E8CF4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD75_021EA510
+ cmp r0, #1
+ bne _021E8D04
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+_021E8D04:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001C78
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _021E8D38
+ add r0, r5, #0
+ bl MOD75_021E87B8
+ cmp r0, #1
+ bne _021E8D38
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02001DDC
+ add r4, r0, #0
+ mov r0, #0x49
+ mov r1, #1
+ lsl r0, r0, #4
+ strb r1, [r5, r0]
+_021E8D38:
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _021E8D6E
+ add r0, r0, #1
+ cmp r4, r0
+ bne _021E8DA0
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001E60
+ cmp r0, #1
+ bne _021E8D5E
+ add r0, r5, #0
+ mov r1, #0x12
+ bl MOD75_021EA0CC
+ b _021E8DA6
+_021E8D5E:
+ cmp r0, #2
+ bne _021E8DA6
+ mov r1, #0x11
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD75_021EA0CC
+ b _021E8DA6
+_021E8D6E:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ add r0, r5, #0
+ bl MOD75_021EB344
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r2, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r0, r2, r0
+ ldrb r0, [r0, #0xc]
+ cmp r0, #3
+ bne _021E8D9C
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD75_021E8DAC
+_021E8D9C:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E8DA0:
+ add r0, r5, #0
+ blx r4
+ pop {r3, r4, r5, pc}
+_021E8DA6:
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E8CF4
+
+ thumb_func_start MOD75_021E8DAC
+MOD75_021E8DAC: ; 0x021E8DAC
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ cmp r1, #0
+ bne _021E8DDA
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ ldr r2, _021E8E08 ; =0x021EC5C0
+ mov r1, #1
+ mov r3, #0
+ bl FUN_02018148
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200C644
+ b _021E8DFC
+_021E8DDA:
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ ldr r2, _021E8E0C ; =0x021EC5F2
+ mov r1, #1
+ mov r3, #0
+ bl FUN_02018148
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+_021E8DFC:
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0201AC68
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_021E8E08: .word 0x021EC5C0
+_021E8E0C: .word 0x021EC5F2
+ thumb_func_end MOD75_021E8DAC
+
+ thumb_func_start MOD75_021E8E10
+MOD75_021E8E10: ; 0x021E8E10
+ lsl r1, r0, #2
+ ldr r0, _021E8E18 ; =0x021EC590
+ ldr r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_021E8E18: .word 0x021EC590
+ thumb_func_end MOD75_021E8E10
+
+ thumb_func_start MOD75_021E8E1C
+MOD75_021E8E1C: ; 0x021E8E1C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl MOD75_021EB344
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #6
+ add r0, #0x66
+ ldrh r0, [r0]
+ add r2, r1, #0
+ bl FUN_0206E7B8
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ mov r0, #2
+ lsr r1, r1, #0x10
+ bl FUN_0205CE48
+ add r1, r0, #0
+ beq _021E8E9C
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r0, [r0, #0x70]
+ blx r1
+ add r3, r0, #0
+ beq _021E8E9C
+ mov r0, #6
+ add r2, r4, #0
+ str r0, [sp]
+ add r2, #0xc4
+ ldr r2, [r2]
+ add r0, r4, #0
+ mov r1, #0xfe
+ add r2, #0x66
+ add r0, #0xcc
+ lsl r1, r1, #2
+ ldrh r2, [r2]
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ bl FUN_0206E51C
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ ldr r2, _021E8EA8 ; =0x000003D9
+ add r0, #0x64
+ mov r1, #0
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r4, #0
+ bl MOD75_021EB660
+ ldr r1, _021E8EAC ; =0x00000426
+ add sp, #4
+ strb r0, [r4, r1]
+ mov r0, #0xc
+ pop {r3, r4, pc}
+_021E8E9C:
+ add r0, r4, #0
+ bl MOD75_021E8F10
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021E8EA8: .word 0x000003D9
+_021E8EAC: .word 0x00000426
+ thumb_func_end MOD75_021E8E1C
+
+ thumb_func_start MOD75_021E8EB0
+MOD75_021E8EB0: ; 0x021E8EB0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E8F04 ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E8F00
+ ldr r0, _021E8F08 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021E8ED2
+ ldr r0, _021E8F0C ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _021E8F00
+_021E8ED2:
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ add r4, #0xc4
+ ldr r0, [r4]
+ add r0, #0x65
+ ldrb r0, [r0]
+ cmp r0, #3
+ bne _021E8EFC
+ mov r0, #0x17
+ pop {r4, pc}
+_021E8EFC:
+ mov r0, #1
+ pop {r4, pc}
+_021E8F00:
+ mov r0, #0xc
+ pop {r4, pc}
+ .align 2, 0
+_021E8F04: .word 0x00000426
+_021E8F08: .word 0x021C48B8
+_021E8F0C: .word 0x021C48F8
+ thumb_func_end MOD75_021E8EB0
+
+ thumb_func_start MOD75_021E8F10
+MOD75_021E8F10: ; 0x021E8F10
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r2, r2, r0
+ ldr r1, _021E8FB0 ; =0x00000483
+ mov r0, #0
+ strb r0, [r4, r1]
+ ldrb r0, [r2, #8]
+ cmp r0, #3
+ bne _021E8F3A
+ ldr r2, _021E8FB4 ; =MOD75_021E8FD8
+ add r0, r1, #1
+ str r2, [r4, r0]
+ mov r0, #0xd
+ pop {r4, pc}
+_021E8F3A:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ sub r1, #0x8b
+ ldr r0, [r2]
+ add r2, #0x66
+ ldrh r2, [r2]
+ ldr r1, [r4, r1]
+ mov r3, #6
+ bl FUN_0206E3F8
+ cmp r0, #1
+ bne _021E8F7A
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ ldr r2, _021E8FB8 ; =0x000003D9
+ add r0, #0x64
+ mov r1, #0
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r4, #0
+ bl MOD75_021EB660
+ ldr r1, _021E8FBC ; =0x00000426
+ strb r0, [r4, r1]
+ mov r0, #0xc
+ pop {r4, pc}
+_021E8F7A:
+ add r1, r4, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r4, #0
+ add r1, #0x66
+ ldrh r1, [r1]
+ bl MOD75_021E91B8
+ cmp r0, #1
+ bne _021E8F98
+ ldr r1, _021E8FC0 ; =MOD75_021E9394
+ ldr r0, _021E8FC4 ; =0x00000484
+ str r1, [r4, r0]
+ mov r0, #0xd
+ pop {r4, pc}
+_021E8F98:
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02079A70
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #0
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #0x18
+ pop {r4, pc}
+ nop
+_021E8FB0: .word 0x00000483
+_021E8FB4: .word MOD75_021E8FD8
+_021E8FB8: .word 0x000003D9
+_021E8FBC: .word 0x00000426
+_021E8FC0: .word MOD75_021E9394
+_021E8FC4: .word 0x00000484
+ thumb_func_end MOD75_021E8F10
+
+ thumb_func_start MOD75_021E8FC8
+MOD75_021E8FC8: ; 0x021E8FC8
+ push {r3, lr}
+ ldr r1, _021E8FD4 ; =0x00000484
+ ldr r1, [r0, r1]
+ blx r1
+ pop {r3, pc}
+ nop
+_021E8FD4: .word 0x00000484
+ thumb_func_end MOD75_021E8FC8
+
+ thumb_func_start MOD75_021E8FD8
+MOD75_021E8FD8: ; 0x021E8FD8
+ push {r3, r4, r5, lr}
+ ldr r1, _021E91A4 ; =0x00000483
+ add r4, r0, #0
+ ldrb r2, [r4, r1]
+ cmp r2, #3
+ bls _021E8FE6
+ b _021E91A0
+_021E8FE6:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021E8FF2: ; jump table
+ .short _021E8FFA - _021E8FF2 - 2 ; case 0
+ .short _021E9070 - _021E8FF2 - 2 ; case 1
+ .short _021E90D0 - _021E8FF2 - 2 ; case 2
+ .short _021E90EA - _021E8FF2 - 2 ; case 3
+_021E8FFA:
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r0, #0x66
+ ldrh r0, [r0]
+ bl FUN_0206EA30
+ add r5, r0, #0
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_0200AD5C
+ add r0, r5, #0
+ bl FUN_0206EA54
+ cmp r0, #1
+ bne _021E9034
+ mov r0, #0x45
+ mov r2, #0xfe
+ lsl r0, r0, #2
+ lsl r2, r2, #2
+ ldr r0, [r4, r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x3b
+ bl FUN_0200A8E0
+ b _021E9046
+_021E9034:
+ mov r0, #0x45
+ mov r2, #0xfe
+ lsl r0, r0, #2
+ lsl r2, r2, #2
+ ldr r0, [r4, r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x3a
+ bl FUN_0200A8E0
+_021E9046:
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ ldr r2, _021E91A8 ; =0x000003D9
+ add r0, #0x64
+ mov r1, #0
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r4, #0
+ bl MOD75_021EB660
+ ldr r1, _021E91AC ; =0x00000426
+ strb r0, [r4, r1]
+ mov r0, #1
+ add r1, #0x5d
+ strb r0, [r4, r1]
+ b _021E91A0
+_021E9070:
+ sub r1, #0x5d
+ ldrb r0, [r4, r1]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E9132
+ ldr r0, _021E91B0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021E908E
+ ldr r0, _021E91B4 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _021E9132
+_021E908E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x3c
+ bl FUN_0200A914
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ add r2, r5, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl MOD75_021EB660
+ ldr r1, _021E91AC ; =0x00000426
+ strb r0, [r4, r1]
+ mov r0, #2
+ add r1, #0x5d
+ strb r0, [r4, r1]
+ b _021E91A0
+_021E90D0:
+ sub r1, #0x5d
+ ldrb r0, [r4, r1]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E91A0
+ add r0, r4, #0
+ bl MOD75_021EB6E0
+ ldr r0, _021E91A4 ; =0x00000483
+ mov r1, #3
+ strb r1, [r4, r0]
+ b _021E91A0
+_021E90EA:
+ bl MOD75_021EA510
+ cmp r0, #1
+ beq _021E91A0
+ add r0, r4, #0
+ bl MOD75_021E87B8
+ cmp r0, #1
+ bne _021E9114
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ mov r2, #6
+ bl FUN_020021CC
+ mov r1, #0x49
+ mov r2, #1
+ lsl r1, r1, #4
+ strb r2, [r4, r1]
+ b _021E9120
+_021E9114:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl FUN_020021AC
+_021E9120:
+ cmp r0, #0
+ beq _021E9134
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _021E917A
+ add r1, r1, #1
+ cmp r0, r1
+ beq _021E9152
+_021E9132:
+ b _021E91A0
+_021E9134:
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02079A70
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021E8DAC
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #0
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #0x18
+ pop {r3, r4, r5, pc}
+_021E9152:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02001E60
+ cmp r0, #1
+ bne _021E916A
+ add r0, r4, #0
+ mov r1, #0x12
+ bl MOD75_021EA0CC
+ b _021E91A0
+_021E916A:
+ cmp r0, #2
+ bne _021E91A0
+ mov r1, #0x11
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD75_021EA0CC
+ b _021E91A0
+_021E917A:
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021E8DAC
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E91A0:
+ mov r0, #0xd
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E91A4: .word 0x00000483
+_021E91A8: .word 0x000003D9
+_021E91AC: .word 0x00000426
+_021E91B0: .word 0x021C48B8
+_021E91B4: .word 0x021C48F8
+ thumb_func_end MOD75_021E8FD8
+
+ thumb_func_start MOD75_021E91B8
+MOD75_021E91B8: ; 0x021E91B8
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ mov r0, #0x46
+ add r2, r4, #0
+ lsl r0, r0, #2
+ add r2, #0xcc
+ add r5, r1, #0
+ ldr r0, [r4, r0]
+ ldr r2, [r2]
+ mov r1, #0
+ bl FUN_0200ABC0
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ add r2, r5, #0
+ bl FUN_0200AE38
+ cmp r5, #0x44
+ bne _021E9200
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x40
+ bl FUN_0200A914
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021E6FFC
+ ldr r0, _021E925C ; =0x00000488
+ mov r1, #0
+ strh r1, [r4, r0]
+ b _021E923E
+_021E9200:
+ cmp r5, #0x45
+ bne _021E9222
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x3f
+ bl FUN_0200A914
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD75_021E6FFC
+ ldr r0, _021E925C ; =0x00000488
+ mov r1, #0
+ strh r1, [r4, r0]
+ b _021E923E
+_021E9222:
+ cmp r5, #0x4d
+ beq _021E922E
+ cmp r5, #0x4c
+ beq _021E922E
+ cmp r5, #0x4f
+ bne _021E923A
+_021E922E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD75_021E9260
+ add r5, r0, #0
+ b _021E923E
+_021E923A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021E923E:
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ add r2, r5, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ bl FUN_02021A20
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_021E925C: .word 0x00000488
+ thumb_func_end MOD75_021E91B8
+
+ thumb_func_start MOD75_021E9260
+MOD75_021E9260: ; 0x021E9260
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ bl MOD75_021E6FDC
+ bl FUN_0202AB54
+ cmp r0, #0
+ bne _021E9286
+ ldr r0, _021E92B8 ; =0x00000488
+ mov r1, #0
+ strh r1, [r4, r0]
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x3e
+ bl FUN_0200A914
+ pop {r3, r4, r5, pc}
+_021E9286:
+ add r0, r5, #0
+ mov r1, #2
+ mov r2, #6
+ bl FUN_0206E7B8
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ bl MOD75_021E6FEC
+ ldr r0, _021E92B8 ; =0x00000488
+ mov r1, #1
+ strh r1, [r4, r0]
+ mov r0, #6
+ lsl r0, r0, #8
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x3d
+ bl FUN_0200A914
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E92B8: .word 0x00000488
+ thumb_func_end MOD75_021E9260
+
+ thumb_func_start MOD75_021E92BC
+MOD75_021E92BC: ; 0x021E92BC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r2, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r3, r1, #0
+ mul r3, r0
+ add r1, r2, r3
+ mov r0, #6
+ str r0, [sp]
+ ldr r3, _021E9390 ; =0x00000488
+ ldr r0, [r1, #4]
+ ldrb r1, [r1, #0xd]
+ add r2, #0x66
+ ldrh r2, [r2]
+ ldrh r3, [r4, r3]
+ sub r1, r1, #3
+ bl FUN_0206EE20
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ add r1, r3, #0
+ mul r2, r0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ add r1, #0xa
+ ldr r0, [r4, r0]
+ add r3, #8
+ add r1, r1, r2
+ add r2, r3, r2
+ bl FUN_02001300
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ add r0, r4, #0
+ bl MOD75_021E7580
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r3, #0
+ add r1, r3, #0
+ add r0, #0xa
+ add r1, #8
+ add r0, r0, r2
+ add r1, r1, r2
+ add r2, r3, r2
+ ldrb r2, [r2, #0xd]
+ bl MOD75_021E7758
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r3, #0
+ add r1, r3, #0
+ add r0, #0xa
+ add r1, #8
+ add r0, r0, r2
+ add r1, r1, r2
+ add r2, r3, r2
+ ldrb r2, [r2, #0xd]
+ mov r3, #9
+ bl MOD75_021E7794
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ add r2, r3, r2
+ ldrh r1, [r2, #0xa]
+ ldrh r2, [r2, #8]
+ add r0, r4, #0
+ bl MOD75_021E77E8
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021E9390: .word 0x00000488
+ thumb_func_end MOD75_021E92BC
+
+ thumb_func_start MOD75_021E9394
+MOD75_021E9394: ; 0x021E9394
+ push {r4, lr}
+ ldr r1, _021E9428 ; =0x00000483
+ add r4, r0, #0
+ ldrb r2, [r4, r1]
+ cmp r2, #0
+ beq _021E93AA
+ cmp r2, #1
+ beq _021E93D2
+ cmp r2, #2
+ beq _021E9402
+ b _021E9422
+_021E93AA:
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ ldr r2, _021E942C ; =0x000003D9
+ add r0, #0x64
+ mov r1, #0
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r4, #0
+ bl MOD75_021EB660
+ ldr r1, _021E9430 ; =0x00000426
+ strb r0, [r4, r1]
+ mov r0, #1
+ add r1, #0x5d
+ strb r0, [r4, r1]
+ b _021E9422
+_021E93D2:
+ sub r1, #0x5d
+ ldrb r0, [r4, r1]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E9422
+ ldr r0, _021E9434 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021E93F0
+ ldr r0, _021E9438 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _021E9422
+_021E93F0:
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_0200D0E0
+ ldr r0, _021E9428 ; =0x00000483
+ mov r1, #2
+ strb r1, [r4, r0]
+ b _021E9422
+_021E9402:
+ add r1, r1, #5
+ ldrsh r1, [r4, r1]
+ cmp r1, #0
+ beq _021E940E
+ bl MOD75_021E92BC
+_021E940E:
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ mov r0, #1
+ pop {r4, pc}
+_021E9422:
+ mov r0, #0xd
+ pop {r4, pc}
+ nop
+_021E9428: .word 0x00000483
+_021E942C: .word 0x000003D9
+_021E9430: .word 0x00000426
+_021E9434: .word 0x021C48B8
+_021E9438: .word 0x021C48F8
+ thumb_func_end MOD75_021E9394
+
+ thumb_func_start MOD75_021E943C
+MOD75_021E943C: ; 0x021E943C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD75_021EB344
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02079A70
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #1
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #0x18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E943C
+
+ thumb_func_start MOD75_021E945C
+MOD75_021E945C: ; 0x021E945C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD75_021EB344
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02079A70
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #3
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #0x18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E945C
+
+ thumb_func_start MOD75_021E947C
+MOD75_021E947C: ; 0x021E947C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD75_021EB344
+ ldr r0, _021E94CC ; =0x00000488
+ mov r1, #1
+ strh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ mov r3, #6
+ add r0, r2, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r1, r2, r0
+ ldr r0, [r1, #4]
+ ldrb r1, [r1, #0xd]
+ add r2, #0x66
+ ldrh r2, [r2]
+ sub r1, r1, #3
+ bl FUN_0206EF10
+ cmp r0, #1
+ bne _021E94BA
+ add r0, r4, #0
+ bl MOD75_021EB5B0
+ mov r0, #8
+ pop {r4, pc}
+_021E94BA:
+ add r0, r4, #0
+ bl MOD75_021EB454
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021EC24C
+ mov r0, #7
+ pop {r4, pc}
+ .align 2, 0
+_021E94CC: .word 0x00000488
+ thumb_func_end MOD75_021E947C
+
+ thumb_func_start MOD75_021E94D0
+MOD75_021E94D0: ; 0x021E94D0
+ push {r4, lr}
+ ldr r2, _021E95AC ; =0x00000488
+ add r4, r0, #0
+ add r1, r4, r2
+ add r2, r2, #2
+ ldrh r2, [r4, r2]
+ bl MOD75_021EA594
+ cmp r0, #1
+ bne _021E94EE
+ add r0, r4, #0
+ bl MOD75_021EB504
+ mov r0, #7
+ pop {r4, pc}
+_021E94EE:
+ add r0, r4, #0
+ bl MOD75_021E87B8
+ cmp r0, #1
+ bne _021E9512
+ add r0, r4, #0
+ bl MOD75_021EB5B0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021EC298
+ mov r0, #0x49
+ mov r1, #1
+ lsl r0, r0, #4
+ strb r1, [r4, r0]
+ mov r0, #8
+ pop {r4, pc}
+_021E9512:
+ ldr r1, _021E95AC ; =0x00000488
+ add r0, r4, r1
+ add r1, r1, #2
+ ldrh r1, [r4, r1]
+ bl FUN_02079AAC
+ cmp r0, #0
+ beq _021E955E
+ cmp r0, #1
+ beq _021E952C
+ cmp r0, #2
+ beq _021E9544
+ b _021E955E
+_021E952C:
+ add r0, r4, #0
+ mov r1, #0x12
+ bl MOD75_021EA0CC
+ add r0, r4, #0
+ bl MOD75_021EB504
+ ldr r0, _021E95B0 ; =0x00000638
+ bl FUN_020054C8
+ mov r0, #7
+ pop {r4, pc}
+_021E9544:
+ mov r1, #0x11
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD75_021EA0CC
+ add r0, r4, #0
+ bl MOD75_021EB504
+ ldr r0, _021E95B0 ; =0x00000638
+ bl FUN_020054C8
+ mov r0, #7
+ pop {r4, pc}
+_021E955E:
+ ldr r0, _021E95B4 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _021E9580
+ add r0, r4, #0
+ bl MOD75_021EB5B0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021EC298
+ ldr r0, _021E95B8 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #8
+ pop {r4, pc}
+_021E9580:
+ mov r0, #2
+ tst r0, r1
+ beq _021E95A6
+ add r0, r4, #0
+ bl MOD75_021EB580
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021EC298
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ ldr r0, _021E95B8 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r4, pc}
+_021E95A6:
+ mov r0, #7
+ pop {r4, pc}
+ nop
+_021E95AC: .word 0x00000488
+_021E95B0: .word 0x00000638
+_021E95B4: .word 0x021C48B8
+_021E95B8: .word 0x000005DC
+ thumb_func_end MOD75_021E94D0
+
+ thumb_func_start MOD75_021E95BC
+MOD75_021E95BC: ; 0x021E95BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E95DC ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E95D6
+ add r0, r4, #0
+ bl MOD75_021EB6E0
+ mov r0, #9
+ pop {r4, pc}
+_021E95D6:
+ mov r0, #8
+ pop {r4, pc}
+ nop
+_021E95DC: .word 0x00000426
+ thumb_func_end MOD75_021E95BC
+
+ thumb_func_start MOD75_021E95E0
+MOD75_021E95E0: ; 0x021E95E0
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD75_021EA510
+ cmp r0, #1
+ bne _021E95F4
+ add sp, #8
+ mov r0, #9
+ pop {r3, r4, r5, pc}
+_021E95F4:
+ add r0, r5, #0
+ bl MOD75_021E87B8
+ cmp r0, #1
+ bne _021E9616
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ mov r2, #6
+ bl FUN_020021CC
+ mov r1, #0x49
+ mov r2, #1
+ lsl r1, r1, #4
+ strb r2, [r5, r1]
+ b _021E9622
+_021E9616:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl FUN_020021AC
+_021E9622:
+ cmp r0, #0
+ beq _021E9636
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _021E96EC
+ add r1, r1, #1
+ cmp r0, r1
+ beq _021E96C4
+ b _021E970C
+_021E9636:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x35
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, _021E9714 ; =0x00000488
+ ldrsh r0, [r5, r0]
+ cmp r0, #1
+ bne _021E9664
+ add r2, r5, #0
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #0x46
+ add r2, #0x66
+ lsl r0, r0, #2
+ ldrh r2, [r2]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200AE38
+ b _021E967A
+_021E9664:
+ add r2, r5, #0
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #0x46
+ add r2, #0x66
+ lsl r0, r0, #2
+ ldrh r2, [r2]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200AEA8
+_021E967A:
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ mov r0, #0x46
+ ldr r2, _021E9714 ; =0x00000488
+ str r1, [sp, #4]
+ lsl r0, r0, #2
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, 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, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0
+ bl MOD75_021EB660
+ ldr r1, _021E9718 ; =0x00000426
+ add sp, #8
+ strb r0, [r5, r1]
+ mov r0, #0xa
+ pop {r3, r4, r5, pc}
+_021E96C4:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001E60
+ cmp r0, #1
+ bne _021E96DC
+ add r0, r5, #0
+ mov r1, #0x12
+ bl MOD75_021EA0CC
+ b _021E970C
+_021E96DC:
+ cmp r0, #2
+ bne _021E970C
+ mov r1, #0x11
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD75_021EA0CC
+ b _021E970C
+_021E96EC:
+ add r0, r5, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r5, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E970C:
+ mov r0, #9
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_021E9714: .word 0x00000488
+_021E9718: .word 0x00000426
+ thumb_func_end MOD75_021E95E0
+
+ thumb_func_start MOD75_021E971C
+MOD75_021E971C: ; 0x021E971C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E9748 ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _021E9730
+ mov r0, #0xa
+ pop {r4, pc}
+_021E9730:
+ ldr r0, _021E974C ; =0x00000479
+ mov r1, #1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD75_021E92BC
+ add r4, #0x64
+ add r0, r4, #0
+ bl FUN_02019220
+ mov r0, #0xb
+ pop {r4, pc}
+ .align 2, 0
+_021E9748: .word 0x00000426
+_021E974C: .word 0x00000479
+ thumb_func_end MOD75_021E971C
+
+ thumb_func_start MOD75_021E9750
+MOD75_021E9750: ; 0x021E9750
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E9798 ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E9794
+ ldr r0, _021E979C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021E9772
+ ldr r0, _021E97A0 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _021E9794
+_021E9772:
+ ldr r0, _021E97A4 ; =0x00000479
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0x64
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ mov r0, #1
+ pop {r4, pc}
+_021E9794:
+ mov r0, #0xb
+ pop {r4, pc}
+ .align 2, 0
+_021E9798: .word 0x00000426
+_021E979C: .word 0x021C48B8
+_021E97A0: .word 0x021C48F8
+_021E97A4: .word 0x00000479
+ thumb_func_end MOD75_021E9750
+
+ thumb_func_start MOD75_021E97A8
+MOD75_021E97A8: ; 0x021E97A8
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, #0xc8
+ add r1, #0x66
+ ldrh r1, [r1]
+ ldr r0, [r0]
+ bl FUN_0206EBCC
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02001328
+ add r0, r4, #0
+ bl MOD75_021EB344
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E97A8
+
+ thumb_func_start MOD75_021E97E4
+MOD75_021E97E4: ; 0x021E97E4
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0206EBCC
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02001328
+ add r0, r4, #0
+ bl MOD75_021EB344
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E97E4
+
+ thumb_func_start MOD75_021E9818
+MOD75_021E9818: ; 0x021E9818
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD75_021EB344
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02079A70
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021E8DAC
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #2
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #0x18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E9818
+
+ thumb_func_start MOD75_021E9840
+MOD75_021E9840: ; 0x021E9840
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD75_021E86C0
+ add r0, r5, #0
+ bl MOD75_021EA2D8
+ cmp r0, #1
+ bne _021E9856
+ mov r0, #0xe
+ pop {r3, r4, r5, pc}
+_021E9856:
+ add r0, r5, #0
+ bl MOD75_021E7D14
+ cmp r0, #1
+ bne _021E9864
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_021E9864:
+ add r0, r5, #0
+ bl MOD75_021E8304
+ cmp r0, #1
+ bne _021E9872
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_021E9872:
+ add r0, r5, #0
+ bl MOD75_021E7B7C
+ cmp r0, #1
+ bne _021E9912
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ add r0, #0x66
+ ldrh r0, [r0]
+ mov r2, #6
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _021E98FC
+ add r0, r5, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0
+ ldr r2, _021E9928 ; =0x000003D9
+ add r0, #0x64
+ mov r1, #0
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r2, r5, #0
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #0x46
+ add r2, #0x66
+ lsl r0, r0, #2
+ ldrh r2, [r2]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200AE38
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x2e
+ bl FUN_0200A914
+ add r4, r0, #0
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl MOD75_021EB660
+ ldr r1, _021E992C ; =0x00000426
+ strb r0, [r5, r1]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD75_021EC090
+ mov r0, #0xf
+ pop {r3, r4, r5, pc}
+_021E98FC:
+ add r5, #0xc4
+ ldr r0, [r5]
+ mov r1, #4
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02079A70
+ mov r0, #0x18
+ pop {r3, r4, r5, pc}
+_021E9912:
+ cmp r0, #3
+ bne _021E9924
+ add r5, #0xc4
+ ldr r0, [r5]
+ mov r1, #4
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #0x18
+ pop {r3, r4, r5, pc}
+_021E9924:
+ mov r0, #0xe
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E9928: .word 0x000003D9
+_021E992C: .word 0x00000426
+ thumb_func_end MOD75_021E9840
+
+ thumb_func_start MOD75_021E9930
+MOD75_021E9930: ; 0x021E9930
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E9974 ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E9970
+ ldr r0, _021E9978 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021E9952
+ ldr r0, _021E997C ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _021E9970
+_021E9952:
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ mov r0, #0xe
+ pop {r4, pc}
+_021E9970:
+ mov r0, #0xf
+ pop {r4, pc}
+ .align 2, 0
+_021E9974: .word 0x00000426
+_021E9978: .word 0x021C48B8
+_021E997C: .word 0x021C48F8
+ thumb_func_end MOD75_021E9930
+
+ thumb_func_start MOD75_021E9980
+MOD75_021E9980: ; 0x021E9980
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD75_021E86C0
+ add r0, r5, #0
+ bl MOD75_021EA2D8
+ cmp r0, #1
+ bne _021E999A
+ add sp, #8
+ mov r0, #0x10
+ pop {r3, r4, r5, pc}
+_021E999A:
+ add r0, r5, #0
+ bl MOD75_021E7D14
+ cmp r0, #1
+ bne _021E99AA
+ add sp, #8
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_021E99AA:
+ add r0, r5, #0
+ bl MOD75_021E8304
+ cmp r0, #1
+ bne _021E99BA
+ add sp, #8
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_021E99BA:
+ add r0, r5, #0
+ bl MOD75_021E7B7C
+ cmp r0, #1
+ beq _021E99C6
+ b _021E9B2A
+_021E99C6:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD75_021EB808
+ add r0, r5, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0
+ ldr r2, _021E9B3C ; =0x000003D9
+ add r0, #0x64
+ mov r1, #0
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r2, r5, #0
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #0x46
+ add r2, #0x66
+ lsl r0, r0, #2
+ ldrh r2, [r2]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200AE38
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD75_021EC090
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #0
+ add r0, #0x66
+ ldrh r0, [r0]
+ mov r2, #6
+ bl FUN_0206E7B8
+ ldr r1, _021E9B40 ; =0x0000048C
+ mov r2, #6
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ add r0, #0x66
+ ldrh r0, [r0]
+ bl FUN_0206E7B8
+ cmp r0, #0
+ bne _021E9A38
+ ldr r1, _021E9B40 ; =0x0000048C
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ bne _021E9A6E
+_021E9A38:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x4a
+ bl FUN_0200A914
+ add r4, r0, #0
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl MOD75_021EB660
+ ldr r1, _021E9B44 ; =0x00000426
+ add sp, #8
+ strb r0, [r5, r1]
+ mov r0, #0x16
+ pop {r3, r4, r5, pc}
+_021E9A6E:
+ mov r2, #1
+ sub r0, r1, #4
+ strh r2, [r5, r0]
+ ldr r0, [r5, r1]
+ mov r3, #6
+ lsr r0, r0, #1
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r2, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r1, r2, r0
+ ldr r0, [r1, #4]
+ ldrb r1, [r1, #0xd]
+ add r2, #0x66
+ ldrh r2, [r2]
+ sub r1, r1, #3
+ bl FUN_0206EF10
+ cmp r0, #1
+ bne _021E9AF4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x4c
+ bl FUN_0200A914
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, _021E9B48 ; =0x00000488
+ mov r0, #0x46
+ ldrsh r3, [r5, r2]
+ add r2, r2, #4
+ lsl r0, r0, #2
+ ldr r2, [r5, r2]
+ ldr r0, [r5, r0]
+ mul r2, r3
+ mov r3, #6
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl MOD75_021EB660
+ ldr r1, _021E9B44 ; =0x00000426
+ add sp, #8
+ strb r0, [r5, r1]
+ mov r0, #0x13
+ pop {r3, r4, r5, pc}
+_021E9AF4:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x4b
+ bl FUN_0200A914
+ add r4, r0, #0
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl MOD75_021EB660
+ ldr r1, _021E9B44 ; =0x00000426
+ add sp, #8
+ strb r0, [r5, r1]
+ mov r0, #0x11
+ pop {r3, r4, r5, pc}
+_021E9B2A:
+ cmp r0, #3
+ bne _021E9B34
+ add sp, #8
+ mov r0, #0x18
+ pop {r3, r4, r5, pc}
+_021E9B34:
+ mov r0, #0x10
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_021E9B3C: .word 0x000003D9
+_021E9B40: .word 0x0000048C
+_021E9B44: .word 0x00000426
+_021E9B48: .word 0x00000488
+ thumb_func_end MOD75_021E9980
+
+ thumb_func_start MOD75_021E9B4C
+MOD75_021E9B4C: ; 0x021E9B4C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E9B80 ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E9B7C
+ ldr r0, _021E9B84 ; =0x0000048A
+ ldrh r1, [r4, r0]
+ cmp r1, #0x63
+ bls _021E9B68
+ mov r1, #0x63
+ strh r1, [r4, r0]
+_021E9B68:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021EB708
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC24C
+ mov r0, #0x12
+ pop {r4, pc}
+_021E9B7C:
+ mov r0, #0x11
+ pop {r4, pc}
+ .align 2, 0
+_021E9B80: .word 0x00000426
+_021E9B84: .word 0x0000048A
+ thumb_func_end MOD75_021E9B4C
+
+ thumb_func_start MOD75_021E9B88
+MOD75_021E9B88: ; 0x021E9B88
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ ldr r2, _021E9D54 ; =0x00000488
+ add r4, r0, #0
+ add r1, r4, r2
+ add r2, r2, #2
+ ldrh r2, [r4, r2]
+ bl MOD75_021EA594
+ cmp r0, #1
+ bne _021E9BAC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EB708
+ add sp, #8
+ mov r0, #0x12
+ pop {r3, r4, r5, pc}
+_021E9BAC:
+ add r0, r4, #0
+ bl MOD75_021E87B8
+ cmp r0, #1
+ bne _021E9C2C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021EC298
+ add r0, r4, #0
+ add r0, #0x74
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x4c
+ bl FUN_0200A914
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, _021E9D54 ; =0x00000488
+ mov r0, #0x46
+ ldrsh r3, [r4, r2]
+ add r2, r2, #4
+ lsl r0, r0, #2
+ ldr r2, [r4, r2]
+ ldr r0, [r4, r0]
+ mul r2, r3
+ mov r3, #6
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ add r2, r5, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl MOD75_021EB660
+ ldr r1, _021E9D58 ; =0x00000426
+ add sp, #8
+ strb r0, [r4, r1]
+ mov r0, #1
+ add r1, #0x6a
+ strb r0, [r4, r1]
+ mov r0, #0x13
+ pop {r3, r4, r5, pc}
+_021E9C2C:
+ ldr r1, _021E9D54 ; =0x00000488
+ add r0, r4, r1
+ add r1, r1, #2
+ ldrh r1, [r4, r1]
+ bl FUN_02079AAC
+ cmp r0, #0
+ beq _021E9C80
+ cmp r0, #1
+ beq _021E9C46
+ cmp r0, #2
+ beq _021E9C62
+ b _021E9C80
+_021E9C46:
+ add r0, r4, #0
+ mov r1, #0x12
+ bl MOD75_021EA0CC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EB708
+ ldr r0, _021E9D5C ; =0x00000638
+ bl FUN_020054C8
+ add sp, #8
+ mov r0, #0x12
+ pop {r3, r4, r5, pc}
+_021E9C62:
+ mov r1, #0x11
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD75_021EA0CC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EB708
+ ldr r0, _021E9D5C ; =0x00000638
+ bl FUN_020054C8
+ add sp, #8
+ mov r0, #0x12
+ pop {r3, r4, r5, pc}
+_021E9C80:
+ ldr r0, _021E9D60 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _021E9D00
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021EC298
+ add r0, r4, #0
+ add r0, #0x74
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x4c
+ bl FUN_0200A914
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, _021E9D54 ; =0x00000488
+ mov r0, #0x46
+ ldrsh r3, [r4, r2]
+ add r2, r2, #4
+ lsl r0, r0, #2
+ ldr r2, [r4, r2]
+ ldr r0, [r4, r0]
+ mul r2, r3
+ mov r3, #6
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ add r2, r5, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl MOD75_021EB660
+ ldr r1, _021E9D58 ; =0x00000426
+ strb r0, [r4, r1]
+ ldr r0, _021E9D64 ; =0x000005DC
+ bl FUN_020054C8
+ add sp, #8
+ mov r0, #0x13
+ pop {r3, r4, r5, pc}
+_021E9D00:
+ mov r0, #2
+ tst r0, r1
+ beq _021E9D4C
+ ldr r0, _021E9D68 ; =0x0000048C
+ mov r1, #0
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD75_021EC298
+ add r0, r4, #0
+ add r0, #0x84
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0x74
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ ldr r0, _021E9D64 ; =0x000005DC
+ bl FUN_020054C8
+ add sp, #8
+ mov r0, #0x10
+ pop {r3, r4, r5, pc}
+_021E9D4C:
+ mov r0, #0x12
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_021E9D54: .word 0x00000488
+_021E9D58: .word 0x00000426
+_021E9D5C: .word 0x00000638
+_021E9D60: .word 0x021C48B8
+_021E9D64: .word 0x000005DC
+_021E9D68: .word 0x0000048C
+ thumb_func_end MOD75_021E9B88
+
+ thumb_func_start MOD75_021E9D6C
+MOD75_021E9D6C: ; 0x021E9D6C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E9D8C ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E9D86
+ add r0, r4, #0
+ bl MOD75_021EB6E0
+ mov r0, #0x14
+ pop {r4, pc}
+_021E9D86:
+ mov r0, #0x13
+ pop {r4, pc}
+ nop
+_021E9D8C: .word 0x00000426
+ thumb_func_end MOD75_021E9D6C
+
+ thumb_func_start MOD75_021E9D90
+MOD75_021E9D90: ; 0x021E9D90
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD75_021EA510
+ cmp r0, #1
+ bne _021E9DA4
+ add sp, #8
+ mov r0, #0x14
+ pop {r3, r4, r5, pc}
+_021E9DA4:
+ add r0, r5, #0
+ bl MOD75_021E87B8
+ cmp r0, #1
+ bne _021E9DC6
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ mov r2, #6
+ bl FUN_020021CC
+ mov r1, #0x49
+ mov r2, #1
+ lsl r1, r1, #4
+ strb r2, [r5, r1]
+ b _021E9DD2
+_021E9DC6:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl FUN_020021AC
+_021E9DD2:
+ cmp r0, #0
+ beq _021E9DE6
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _021E9EA2
+ add r1, r1, #1
+ cmp r0, r1
+ beq _021E9E7A
+ b _021E9ED2
+_021E9DE6:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x4d
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, _021E9ED8 ; =0x00000488
+ ldrsh r0, [r5, r0]
+ cmp r0, #1
+ ble _021E9E14
+ add r2, r5, #0
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #0x46
+ add r2, #0x66
+ lsl r0, r0, #2
+ ldrh r2, [r2]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200AEA8
+ b _021E9E2A
+_021E9E14:
+ add r2, r5, #0
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #0x46
+ add r2, #0x66
+ lsl r0, r0, #2
+ ldrh r2, [r2]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200AE38
+_021E9E2A:
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ mov r0, #0x46
+ ldr r2, _021E9ED8 ; =0x00000488
+ str r1, [sp, #4]
+ ldrsh r3, [r5, r2]
+ add r2, r2, #4
+ lsl r0, r0, #2
+ ldr r2, [r5, r2]
+ ldr r0, [r5, r0]
+ mul r2, r3
+ mov r3, #6
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, 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, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0
+ bl MOD75_021EB660
+ ldr r1, _021E9EDC ; =0x00000426
+ add sp, #8
+ strb r0, [r5, r1]
+ mov r0, #0x15
+ pop {r3, r4, r5, pc}
+_021E9E7A:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001E60
+ cmp r0, #1
+ bne _021E9E92
+ add r0, r5, #0
+ mov r1, #0x12
+ bl MOD75_021EA0CC
+ b _021E9ED2
+_021E9E92:
+ cmp r0, #2
+ bne _021E9ED2
+ mov r1, #0x11
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD75_021EA0CC
+ b _021E9ED2
+_021E9EA2:
+ ldr r0, _021E9EE0 ; =0x0000048C
+ mov r1, #0
+ str r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x84
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r5, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r5, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ add sp, #8
+ mov r0, #0x10
+ pop {r3, r4, r5, pc}
+_021E9ED2:
+ mov r0, #0x14
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E9ED8: .word 0x00000488
+_021E9EDC: .word 0x00000426
+_021E9EE0: .word 0x0000048C
+ thumb_func_end MOD75_021E9D90
+
+ thumb_func_start MOD75_021E9EE4
+MOD75_021E9EE4: ; 0x021E9EE4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E9F64 ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _021E9EF8
+ mov r0, #0x15
+ pop {r4, pc}
+_021E9EF8:
+ ldr r0, _021E9F68 ; =0x00000644
+ bl FUN_020054C8
+ ldr r1, _021E9F6C ; =0x00000488
+ add r0, r4, #0
+ ldrsh r2, [r4, r1]
+ add r1, r1, #4
+ add r0, #0xcc
+ ldr r1, [r4, r1]
+ ldr r0, [r0]
+ mul r1, r2
+ bl FUN_02023A30
+ ldr r0, _021E9F6C ; =0x00000488
+ ldrsh r0, [r4, r0]
+ cmp r0, #1
+ bne _021E9F38
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ add r0, r1, #0
+ add r0, #0x75
+ ldrb r0, [r0]
+ cmp r0, #0xff
+ beq _021E9F44
+ add r0, r1, #0
+ add r0, #0x75
+ ldrb r0, [r0]
+ add r1, #0x75
+ add r0, r0, #1
+ strb r0, [r1]
+ b _021E9F44
+_021E9F38:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #2
+ add r0, #0x75
+ strb r1, [r0]
+_021E9F44:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EB808
+ ldr r0, _021E9F70 ; =0x00000479
+ mov r1, #1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD75_021E92BC
+ add r4, #0x64
+ add r0, r4, #0
+ bl FUN_02019220
+ mov r0, #0x16
+ pop {r4, pc}
+ .align 2, 0
+_021E9F64: .word 0x00000426
+_021E9F68: .word 0x00000644
+_021E9F6C: .word 0x00000488
+_021E9F70: .word 0x00000479
+ thumb_func_end MOD75_021E9EE4
+
+ thumb_func_start MOD75_021E9F74
+MOD75_021E9F74: ; 0x021E9F74
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E9FCC ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E9FC8
+ ldr r0, _021E9FD0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021E9F96
+ ldr r0, _021E9FD4 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _021E9FC8
+_021E9F96:
+ ldr r0, _021E9FD8 ; =0x00000479
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, #0x13
+ str r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0x84
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ mov r0, #0x10
+ pop {r4, pc}
+_021E9FC8:
+ mov r0, #0x16
+ pop {r4, pc}
+ .align 2, 0
+_021E9FCC: .word 0x00000426
+_021E9FD0: .word 0x021C48B8
+_021E9FD4: .word 0x021C48F8
+_021E9FD8: .word 0x00000479
+ thumb_func_end MOD75_021E9F74
+
+ thumb_func_start MOD75_021E9FDC
+MOD75_021E9FDC: ; 0x021E9FDC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl MOD75_021E86C0
+ add r0, r4, #0
+ bl MOD75_021EA2D8
+ cmp r0, #1
+ bne _021E9FF6
+ add sp, #4
+ mov r0, #0x17
+ pop {r3, r4, pc}
+_021E9FF6:
+ add r0, r4, #0
+ bl MOD75_021E7D14
+ cmp r0, #1
+ bne _021EA006
+ add sp, #4
+ mov r0, #2
+ pop {r3, r4, pc}
+_021EA006:
+ add r0, r4, #0
+ bl MOD75_021E8304
+ cmp r0, #1
+ bne _021EA016
+ add sp, #4
+ mov r0, #2
+ pop {r3, r4, pc}
+_021EA016:
+ add r0, r4, #0
+ bl MOD75_021E7B7C
+ cmp r0, #1
+ bne _021EA0A8
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #0
+ add r1, #0x64
+ ldrb r2, [r1]
+ mov r1, #0xc
+ mul r1, r2
+ add r1, r0, r1
+ ldrb r1, [r1, #0xc]
+ cmp r1, #0
+ bne _021EA090
+ add r0, #0x66
+ ldrh r0, [r0]
+ mov r1, #6
+ add r2, r1, #0
+ bl FUN_0206E7B8
+ cmp r0, #0xd
+ beq _021EA090
+ mov r3, #6
+ add r2, r4, #0
+ str r3, [sp]
+ add r2, #0xc4
+ ldr r2, [r2]
+ add r0, r4, #0
+ mov r1, #0xfe
+ add r2, #0x66
+ add r0, #0xcc
+ lsl r1, r1, #2
+ ldrh r2, [r2]
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ sub r3, r3, #7
+ bl FUN_0206E51C
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ ldr r2, _021EA0C4 ; =0x000003D9
+ add r0, #0x64
+ mov r1, #0
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r4, #0
+ bl MOD75_021EB660
+ ldr r1, _021EA0C8 ; =0x00000426
+ add sp, #4
+ strb r0, [r4, r1]
+ mov r0, #0xc
+ pop {r3, r4, pc}
+_021EA090:
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #0
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02079A70
+ add sp, #4
+ mov r0, #0x18
+ pop {r3, r4, pc}
+_021EA0A8:
+ cmp r0, #3
+ bne _021EA0BC
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #5
+ add r0, #0x68
+ strh r1, [r0]
+ add sp, #4
+ mov r0, #0x18
+ pop {r3, r4, pc}
+_021EA0BC:
+ mov r0, #0x17
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021EA0C4: .word 0x000003D9
+_021EA0C8: .word 0x00000426
+ thumb_func_end MOD75_021E9FDC
+
+ thumb_func_start MOD75_021EA0CC
+MOD75_021EA0CC: ; 0x021EA0CC
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ add r5, r1, #0
+ mov r1, #7
+ bl FUN_02018878
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, r0, r5
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ cmp r5, r0
+ blt _021EA0F4
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ b _021EA0FE
+_021EA0F4:
+ cmp r5, #0
+ bge _021EA0FE
+ add r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+_021EA0FE:
+ lsl r3, r5, #0x10
+ ldr r0, [r4]
+ mov r1, #7
+ mov r2, #0
+ lsr r3, r3, #0x10
+ bl FUN_0201AF08
+ ldr r0, _021EA114 ; =0x0000049A
+ strh r5, [r4, r0]
+ pop {r3, r4, r5, pc}
+ nop
+_021EA114: .word 0x0000049A
+ thumb_func_end MOD75_021EA0CC
+
+ thumb_func_start MOD75_021EA118
+MOD75_021EA118: ; 0x021EA118
+ push {r3, lr}
+ ldr r0, _021EA12C ; =0x021EC404
+ bl FUN_020209F4
+ cmp r0, #1
+ bne _021EA128
+ mov r0, #1
+ pop {r3, pc}
+_021EA128:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_021EA12C: .word 0x021EC404
+ thumb_func_end MOD75_021EA118
+
+ thumb_func_start MOD75_021EA130
+MOD75_021EA130: ; 0x021EA130
+ push {r3, lr}
+ ldr r0, _021EA144 ; =0x021EC410
+ bl FUN_020209A8
+ cmp r0, #1
+ bne _021EA140
+ mov r0, #1
+ pop {r3, pc}
+_021EA140:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_021EA144: .word 0x021EC410
+ thumb_func_end MOD75_021EA130
+
+ thumb_func_start MOD75_021EA148
+MOD75_021EA148: ; 0x021EA148
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ bl MOD75_021EA118
+ cmp r0, #1
+ bne _021EA176
+ ldr r1, _021EA2BC ; =0x00000492
+ mov r0, #1
+ strb r0, [r5, r1]
+ mov r2, #0
+ add r0, r1, #6
+ strh r2, [r5, r0]
+ add r0, r1, #2
+ str r2, [r5, r0]
+ add r0, r1, #0
+ ldr r2, _021EA2C0 ; =0x021C48F8
+ add r0, #0xc
+ ldrh r3, [r2, #0x1c]
+ add r1, #0xe
+ strh r3, [r5, r0]
+ ldrh r0, [r2, #0x1e]
+ strh r0, [r5, r1]
+_021EA176:
+ ldr r0, _021EA2BC ; =0x00000492
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ beq _021EA180
+ b _021EA2B6
+_021EA180:
+ bl MOD75_021EA130
+ cmp r0, #1
+ beq _021EA18A
+ b _021EA2A8
+_021EA18A:
+ mov r3, #0x50
+ ldr r1, _021EA2C4 ; =0x0000049E
+ str r3, [sp]
+ ldr r4, _021EA2C0 ; =0x021C48F8
+ ldrh r0, [r5, r1]
+ add r1, r1, #2
+ ldrh r1, [r5, r1]
+ ldrh r2, [r4, #0x1c]
+ mov r7, #0x80
+ ldrh r4, [r4, #0x1e]
+ sub r1, r3, r1
+ sub r0, r7, r0
+ sub r2, r7, r2
+ sub r3, r3, r4
+ bl FUN_0201BBD0
+ add r4, r0, #0
+ mov r0, #0x50
+ lsl r1, r4, #1
+ bl FUN_0201BC84
+ lsl r0, r0, #8
+ mov r1, #0xb6
+ bl _s32_div_f
+ ldr r1, _021EA2C8 ; =0x0000049A
+ asr r3, r0, #8
+ ldrsh r2, [r5, r1]
+ add r0, r5, r1
+ add r2, r2, r3
+ strh r2, [r0]
+ ldrsh r1, [r5, r1]
+ cmp r1, #0
+ bge _021EA1DC
+ mov r1, #0
+ ldrsh r2, [r0, r1]
+ add r1, r7, #0
+ add r1, #0xe8
+ add r1, r2, r1
+ strh r1, [r0]
+ b _021EA1EC
+_021EA1DC:
+ add r2, r7, #0
+ add r2, #0xe8
+ cmp r1, r2
+ blt _021EA1EC
+ mov r1, #0
+ ldrsh r1, [r0, r1]
+ sub r1, r1, r2
+ strh r1, [r0]
+_021EA1EC:
+ ldr r3, _021EA2C8 ; =0x0000049A
+ ldr r0, [r5]
+ ldrh r3, [r5, r3]
+ mov r1, #7
+ mov r2, #0
+ bl FUN_0201AF08
+ ldr r0, _021EA2CC ; =0x000001F6
+ add r1, r6, #0
+ bl _s32_div_f
+ add r6, r0, #0
+ cmp r4, #0
+ ble _021EA250
+ ldr r0, _021EA2D0 ; =0x00000498
+ ldrsh r1, [r5, r0]
+ cmp r1, #0
+ bge _021EA22A
+ add r0, r4, #0
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r1, _021EA2D0 ; =0x00000498
+ strh r0, [r5, r1]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r0, _021EA2D4 ; =0x00000494
+ str r1, [r5, r0]
+ b _021EA298
+_021EA22A:
+ sub r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ add r0, r0, r4
+ bl _s32_div_f
+ ldr r1, _021EA2D0 ; =0x00000498
+ ldrsh r2, [r5, r1]
+ add r0, r2, r0
+ strh r0, [r5, r1]
+ sub r0, r1, #4
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ add r0, r0, r4
+ bl _s32_div_f
+ ldr r0, _021EA2D4 ; =0x00000494
+ str r1, [r5, r0]
+ b _021EA298
+_021EA250:
+ bge _021EA298
+ ldr r0, _021EA2D0 ; =0x00000498
+ ldrsh r1, [r5, r0]
+ cmp r1, #0
+ ble _021EA274
+ add r0, r4, #0
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r1, _021EA2D0 ; =0x00000498
+ strh r0, [r5, r1]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r0, _021EA2D4 ; =0x00000494
+ str r1, [r5, r0]
+ b _021EA298
+_021EA274:
+ sub r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ add r0, r0, r4
+ bl _s32_div_f
+ ldr r1, _021EA2D0 ; =0x00000498
+ ldrsh r2, [r5, r1]
+ add r0, r2, r0
+ strh r0, [r5, r1]
+ sub r0, r1, #4
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ add r0, r0, r4
+ bl _s32_div_f
+ ldr r0, _021EA2D4 ; =0x00000494
+ str r1, [r5, r0]
+_021EA298:
+ ldr r1, _021EA2C0 ; =0x021C48F8
+ ldr r0, _021EA2C4 ; =0x0000049E
+ ldrh r2, [r1, #0x1c]
+ strh r2, [r5, r0]
+ ldrh r1, [r1, #0x1e]
+ add r0, r0, #2
+ strh r1, [r5, r0]
+ b _021EA2B2
+_021EA2A8:
+ ldr r0, _021EA2BC ; =0x00000492
+ mov r1, #0
+ strb r1, [r5, r0]
+ add r0, r0, #6
+ strh r1, [r5, r0]
+_021EA2B2:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021EA2B6:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021EA2BC: .word 0x00000492
+_021EA2C0: .word 0x021C48F8
+_021EA2C4: .word 0x0000049E
+_021EA2C8: .word 0x0000049A
+_021EA2CC: .word 0x000001F6
+_021EA2D0: .word 0x00000498
+_021EA2D4: .word 0x00000494
+ thumb_func_end MOD75_021EA148
+
+ thumb_func_start MOD75_021EA2D8
+MOD75_021EA2D8: ; 0x021EA2D8
+ push {r4, lr}
+ mov r1, #0x24
+ add r4, r0, #0
+ bl MOD75_021EA148
+ ldr r1, _021EA324 ; =0x00000498
+ ldrsh r1, [r4, r1]
+ cmp r1, #0
+ ble _021EA306
+ add r0, r4, #0
+ mov r1, #0x40
+ bl MOD75_021EA328
+ cmp r0, #1
+ ldr r0, _021EA324 ; =0x00000498
+ bne _021EA2FE
+ ldrsh r1, [r4, r0]
+ sub r1, r1, #1
+ b _021EA300
+_021EA2FE:
+ mov r1, #0
+_021EA300:
+ strh r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_021EA306:
+ bge _021EA322
+ add r0, r4, #0
+ mov r1, #0x80
+ bl MOD75_021EA328
+ cmp r0, #1
+ ldr r0, _021EA324 ; =0x00000498
+ bne _021EA31C
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ b _021EA31E
+_021EA31C:
+ mov r1, #0
+_021EA31E:
+ strh r1, [r4, r0]
+ mov r0, #1
+_021EA322:
+ pop {r4, pc}
+ .align 2, 0
+_021EA324: .word 0x00000498
+ thumb_func_end MOD75_021EA2D8
+
+ thumb_func_start MOD75_021EA328
+MOD75_021EA328: ; 0x021EA328
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ mov r5, #0xc
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r0, [r0]
+ add r2, r0, #0
+ mul r2, r5
+ add r0, r3, r2
+ ldrh r0, [r0, #0xa]
+ add r3, sp, #0x10
+ strh r0, [r3, #2]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #0
+ add r2, #0x64
+ ldrb r2, [r2]
+ mul r5, r2
+ add r0, r0, r5
+ ldrh r0, [r0, #8]
+ strh r0, [r3]
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x10
+ str r1, [sp, #4]
+ add r0, #2
+ str r0, [sp, #8]
+ add r0, sp, #0x10
+ str r0, [sp, #0xc]
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldrh r2, [r3, #2]
+ ldrh r3, [r3]
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001354
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #0
+ add r1, #0x64
+ ldrb r2, [r1]
+ mov r1, #0xc
+ add r5, r2, #0
+ mul r5, r1
+ add r1, sp, #0x10
+ add r2, r0, r5
+ ldrh r3, [r1, #2]
+ ldrh r0, [r2, #0xa]
+ cmp r3, r0
+ bne _021EA3A6
+ ldrh r1, [r1]
+ ldrh r0, [r2, #8]
+ cmp r1, r0
+ bne _021EA3A6
+ add sp, #0x14
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_021EA3A6:
+ add r2, sp, #0x10
+ ldrh r2, [r2]
+ add r0, r4, #0
+ add r0, #0xf0
+ sub r2, r2, #1
+ lsl r2, r2, #4
+ add r2, #0x18
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #0xb1
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r6, [r0]
+ add r2, sp, #0x10
+ add r0, r6, #0
+ add r0, #0x64
+ ldrb r0, [r0]
+ ldrh r5, [r2, #2]
+ mov r1, #0xc
+ add r3, r0, #0
+ mul r3, r1
+ add r0, r6, r3
+ strh r5, [r0, #0xa]
+ add r4, #0xc4
+ ldr r3, [r4]
+ ldrh r2, [r2]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r0, [r0]
+ mul r1, r0
+ add r0, r3, r1
+ strh r2, [r0, #8]
+ mov r0, #1
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EA328
+
+ thumb_func_start MOD75_021EA3F4
+MOD75_021EA3F4: ; 0x021EA3F4
+ push {r4, lr}
+ mov r1, #0x24
+ add r4, r0, #0
+ bl MOD75_021EA148
+ ldr r1, _021EA440 ; =0x00000498
+ ldrsh r1, [r4, r1]
+ cmp r1, #0
+ ble _021EA422
+ add r0, r4, #0
+ mov r1, #0x40
+ bl MOD75_021EA444
+ cmp r0, #1
+ ldr r0, _021EA440 ; =0x00000498
+ bne _021EA41A
+ ldrsh r1, [r4, r0]
+ sub r1, r1, #1
+ b _021EA41C
+_021EA41A:
+ mov r1, #0
+_021EA41C:
+ strh r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_021EA422:
+ bge _021EA43E
+ add r0, r4, #0
+ mov r1, #0x80
+ bl MOD75_021EA444
+ cmp r0, #1
+ ldr r0, _021EA440 ; =0x00000498
+ bne _021EA438
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ b _021EA43A
+_021EA438:
+ mov r1, #0
+_021EA43A:
+ strh r1, [r4, r0]
+ mov r0, #1
+_021EA43E:
+ pop {r4, pc}
+ .align 2, 0
+_021EA440: .word 0x00000498
+ thumb_func_end MOD75_021EA3F4
+
+ thumb_func_start MOD75_021EA444
+MOD75_021EA444: ; 0x021EA444
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ mov r5, #0xc
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r0, [r0]
+ add r2, r0, #0
+ mul r2, r5
+ add r0, r3, r2
+ ldrh r0, [r0, #0xa]
+ add r3, sp, #0x10
+ strh r0, [r3, #2]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #0
+ add r2, #0x64
+ ldrb r2, [r2]
+ mul r5, r2
+ add r0, r0, r5
+ ldrh r0, [r0, #8]
+ strh r0, [r3]
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x10
+ str r1, [sp, #4]
+ add r0, #2
+ str r0, [sp, #8]
+ add r0, sp, #0x10
+ str r0, [sp, #0xc]
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldrh r2, [r3, #2]
+ ldrh r3, [r3]
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001354
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #0
+ add r1, #0x64
+ ldrb r2, [r1]
+ mov r1, #0xc
+ add r5, r2, #0
+ mul r5, r1
+ add r1, sp, #0x10
+ add r2, r0, r5
+ ldrh r3, [r1, #2]
+ ldrh r0, [r2, #0xa]
+ cmp r3, r0
+ bne _021EA4C2
+ ldrh r1, [r1]
+ ldrh r0, [r2, #8]
+ cmp r1, r0
+ bne _021EA4C2
+ add sp, #0x14
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_021EA4C2:
+ add r2, sp, #0x10
+ ldrh r2, [r2]
+ add r0, r4, #0
+ add r0, #0xf4
+ sub r2, r2, #1
+ lsl r2, r2, #4
+ add r2, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #0xb1
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r6, [r0]
+ add r2, sp, #0x10
+ add r0, r6, #0
+ add r0, #0x64
+ ldrb r0, [r0]
+ ldrh r5, [r2, #2]
+ mov r1, #0xc
+ add r3, r0, #0
+ mul r3, r1
+ add r0, r6, r3
+ strh r5, [r0, #0xa]
+ add r4, #0xc4
+ ldr r3, [r4]
+ ldrh r2, [r2]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r0, [r0]
+ mul r1, r0
+ add r0, r3, r1
+ strh r2, [r0, #8]
+ mov r0, #1
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EA444
+
+ thumb_func_start MOD75_021EA510
+MOD75_021EA510: ; 0x021EA510
+ push {r4, lr}
+ mov r1, #0x12
+ add r4, r0, #0
+ bl MOD75_021EA148
+ ldr r1, _021EA55C ; =0x00000498
+ ldrsh r1, [r4, r1]
+ cmp r1, #0
+ ble _021EA53E
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD75_021EA560
+ cmp r0, #1
+ ldr r0, _021EA55C ; =0x00000498
+ bne _021EA536
+ ldrsh r1, [r4, r0]
+ sub r1, r1, #1
+ b _021EA538
+_021EA536:
+ mov r1, #0
+_021EA538:
+ strh r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_021EA53E:
+ bge _021EA55A
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD75_021EA560
+ cmp r0, #1
+ ldr r0, _021EA55C ; =0x00000498
+ bne _021EA554
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ b _021EA556
+_021EA554:
+ mov r1, #0
+_021EA556:
+ strh r1, [r4, r0]
+ mov r0, #1
+_021EA55A:
+ pop {r4, pc}
+ .align 2, 0
+_021EA55C: .word 0x00000498
+ thumb_func_end MOD75_021EA510
+
+ thumb_func_start MOD75_021EA560
+MOD75_021EA560: ; 0x021EA560
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r6, r1, #0
+ bl FUN_02001E5C
+ add r4, r0, #0
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_02001DDC
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001E5C
+ cmp r4, r0
+ beq _021EA590
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_021EA590:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD75_021EA560
+
+ thumb_func_start MOD75_021EA594
+MOD75_021EA594: ; 0x021EA594
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ mov r1, #0x12
+ add r5, r0, #0
+ add r6, r2, #0
+ bl MOD75_021EA148
+ ldr r7, _021EA5FC ; =0x00000498
+ mov r1, #0
+ ldrsh r2, [r5, r7]
+ ldrsh r3, [r4, r1]
+ cmp r2, #0
+ ble _021EA5D4
+ sub r0, r2, #1
+ strh r0, [r5, r7]
+ ldrsh r0, [r4, r1]
+ add r0, r0, #1
+ strh r0, [r4]
+ ldrsh r0, [r4, r1]
+ cmp r0, r6
+ ble _021EA5C2
+ mov r0, #1
+ strh r0, [r4]
+_021EA5C2:
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ cmp r1, r3
+ beq _021EA5F8
+ ldr r0, _021EA600 ; =0x00000638
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021EA5D4:
+ bge _021EA5F8
+ add r0, r2, #1
+ strh r0, [r5, r7]
+ ldrsh r0, [r4, r1]
+ sub r0, r0, #1
+ strh r0, [r4]
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ bgt _021EA5E8
+ strh r6, [r4]
+_021EA5E8:
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ cmp r1, r3
+ beq _021EA5F8
+ ldr r0, _021EA600 ; =0x00000638
+ bl FUN_020054C8
+ mov r0, #1
+_021EA5F8:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021EA5FC: .word 0x00000498
+_021EA600: .word 0x00000638
+ thumb_func_end MOD75_021EA594
+
+ thumb_func_start MOD75_021EA604
+MOD75_021EA604: ; 0x021EA604
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x11
+ str r0, [sp, #4]
+ mov r0, #0x12
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, r4, #4
+ mov r2, #2
+ mov r3, #0xe
+ bl FUN_02019064
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ ldr r0, _021EA780 ; =0x00000133
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ mov r2, #0
+ ldr r0, [r4]
+ add r1, #0x14
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #0x24
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _021EA784 ; =0x000001F3
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x24
+ mov r2, #2
+ mov r3, #0
+ bl FUN_02019064
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0xe
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ ldr r0, _021EA788 ; =0x0000025F
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x34
+ mov r2, #0
+ mov r3, #6
+ bl FUN_02019064
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0xd
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ ldr r0, _021EA788 ; =0x0000025F
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x44
+ mov r2, #0
+ mov r3, #6
+ bl FUN_02019064
+ mov r0, #0xb
+ str r0, [sp]
+ mov r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021EA78C ; =0x00000297
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ mov r2, #0
+ ldr r0, [r4]
+ add r1, #0x54
+ add r3, r2, #0
+ bl FUN_02019064
+ 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]
+ ldr r0, _021EA790 ; =0x000002AF
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x64
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ ldr r0, _021EA794 ; =0x00000337
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x74
+ mov r2, #0
+ mov r3, #0x13
+ bl FUN_02019064
+ mov r3, #1
+ add r1, r4, #0
+ str r3, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ ldr r0, _021EA798 ; =0x00000367
+ add r1, #0x84
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ mov r2, #0
+ bl FUN_02019064
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #7
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ ldr r0, _021EA79C ; =0x00000387
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x94
+ mov r2, #0
+ mov r3, #0x18
+ bl FUN_02019064
+ mov r0, #0xc
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ ldr r0, _021EA79C ; =0x00000387
+ mov r2, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r4, #0xa4
+ add r1, r4, #0
+ mov r3, #1
+ bl FUN_02019064
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_021EA780: .word 0x00000133
+_021EA784: .word 0x000001F3
+_021EA788: .word 0x0000025F
+_021EA78C: .word 0x00000297
+_021EA790: .word 0x000002AF
+_021EA794: .word 0x00000337
+_021EA798: .word 0x00000367
+_021EA79C: .word 0x00000387
+ thumb_func_end MOD75_021EA604
+
+ thumb_func_start MOD75_021EA7A0
+MOD75_021EA7A0: ; 0x021EA7A0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021EA7A6:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ bl FUN_02019178
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0xb
+ blo _021EA7A6
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EA7A0
+
+ thumb_func_start MOD75_021EA7BC
+MOD75_021EA7BC: ; 0x021EA7BC
+ push {r3, r4, r5, r6, r7, lr}
+ mov r2, #0x57
+ add r5, r0, #0
+ mov r0, #1
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #6
+ bl FUN_0200A86C
+ ldr r7, _021EA7F4 ; =0x00000404
+ add r6, r0, #0
+ mov r4, #0
+_021EA7D4:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0200A914
+ lsl r1, r4, #2
+ add r1, r5, r1
+ str r0, [r1, r7]
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #8
+ blo _021EA7D4
+ add r0, r6, #0
+ bl FUN_0200A8B8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021EA7F4: .word 0x00000404
+ thumb_func_end MOD75_021EA7BC
+
+ thumb_func_start MOD75_021EA7F8
+MOD75_021EA7F8: ; 0x021EA7F8
+ push {r4, r5, r6, lr}
+ ldr r6, _021EA818 ; =0x00000404
+ add r5, r0, #0
+ mov r4, #0
+_021EA800:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ bl FUN_02021A20
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #8
+ blo _021EA800
+ pop {r4, r5, r6, pc}
+ nop
+_021EA818: .word 0x00000404
+ thumb_func_end MOD75_021EA7F8
+
+ thumb_func_start MOD75_021EA81C
+MOD75_021EA81C: ; 0x021EA81C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r4, #0
+ mov r6, #0xd
+ mov r7, #1
+_021EA828:
+ str r6, [sp]
+ ldr r2, _021EA878 ; =0x000001FF
+ str r7, [sp, #4]
+ add r2, r4, r2
+ lsl r2, r2, #0x10
+ lsl r3, r4, #0x18
+ str r7, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ ldr r0, [r5]
+ mov r1, #2
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ mov r0, #0xe
+ str r0, [sp]
+ mov r0, #1
+ ldr r2, _021EA87C ; =0x00000223
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r4, r2
+ str r0, [sp, #0xc]
+ lsl r2, r2, #0x10
+ lsl r3, r4, #0x18
+ ldr r0, [r5]
+ mov r1, #2
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0xc
+ blo _021EA828
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021EA878: .word 0x000001FF
+_021EA87C: .word 0x00000223
+ thumb_func_end MOD75_021EA81C
+
+ thumb_func_start MOD75_021EA880
+MOD75_021EA880: ; 0x021EA880
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r2, #0
+ add r2, r0, #0
+ add r6, r1, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EA8B8 ; =0x00010200
+ lsr r3, r3, #1
+ add r5, #0x24
+ str r0, [sp, #8]
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r6, #0
+ sub r3, r4, r3
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_021EA8B8: .word 0x00010200
+ thumb_func_end MOD75_021EA880
+
+ thumb_func_start MOD75_021EA8BC
+MOD75_021EA8BC: ; 0x021EA8BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r0, #0x24
+ mov r1, #0
+ bl FUN_02019620
+ add r2, r4, #0
+ add r2, #0xc4
+ ldr r6, [r2]
+ ldr r1, _021EA94C ; =0x00000429
+ add r2, r6, #0
+ add r2, #0x64
+ ldrb r3, [r2]
+ mov r2, #0xc
+ add r0, r4, r1
+ add r5, r3, #0
+ mul r5, r2
+ add r3, r6, r5
+ ldrb r3, [r3, #0xc]
+ lsl r3, r3, #2
+ add r5, r4, r3
+ add r3, r1, #0
+ sub r3, #0x25
+ ldr r7, [r5, r3]
+ ldrb r3, [r0]
+ sub r1, #0x25
+ add r5, r3, #0
+ mul r5, r2
+ add r3, r6, r5
+ ldrb r3, [r3, #0xc]
+ lsl r3, r3, #2
+ add r3, r4, r3
+ ldr r1, [r3, r1]
+ ldrb r3, [r0, #1]
+ ldrb r0, [r0, #3]
+ cmp r3, #0
+ bne _021EA91E
+ mul r2, r0
+ add r2, #0x92
+ lsl r0, r2, #0x10
+ lsr r5, r0, #0x10
+ add r2, r5, #0
+ sub r2, #0x60
+ lsl r2, r2, #0x10
+ add r0, r4, #0
+ lsr r2, r2, #0x10
+ bl MOD75_021EA880
+ b _021EA936
+_021EA91E:
+ mul r2, r0
+ mov r0, #0x92
+ sub r0, r0, r2
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r2, r5, #0
+ add r2, #0x60
+ lsl r2, r2, #0x10
+ add r0, r4, #0
+ lsr r2, r2, #0x10
+ bl MOD75_021EA880
+_021EA936:
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl MOD75_021EA880
+ add r4, #0x24
+ add r0, r4, #0
+ bl FUN_02019548
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021EA94C: .word 0x00000429
+ thumb_func_end MOD75_021EA8BC
+
+ thumb_func_start MOD75_021EA950
+MOD75_021EA950: ; 0x021EA950
+ push {r3, r4, r5, lr}
+ add r0, #0xd4
+ ldr r0, [r0]
+ add r5, r1, #0
+ mov r1, #0x11
+ mov r2, #6
+ bl FUN_02006704
+ add r1, r5, #0
+ add r4, r0, #0
+ bl FUN_020B0030
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD75_021EA950
+
+ thumb_func_start MOD75_021EA96C
+MOD75_021EA96C: ; 0x021EA96C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ add r1, sp, #0x18
+ add r5, r0, #0
+ add r6, r2, #0
+ bl MOD75_021EA950
+ add r7, r0, #0
+ cmp r6, #1
+ bne _021EA998
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ mov r0, #0xc
+ mul r0, r4
+ add r0, r1, r0
+ ldrb r0, [r0, #0xc]
+ lsl r0, r0, #5
+ add r0, #0x10
+ lsl r0, r0, #0x18
+ b _021EA9A8
+_021EA998:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ mov r0, #0xc
+ mul r0, r4
+ add r0, r1, r0
+ ldrb r0, [r0, #0xc]
+ lsl r0, r0, #0x1d
+_021EA9A8:
+ lsr r2, r0, #0x18
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r0, #0x10
+ ldr r1, _021EA9F4 ; =0x00000427
+ str r0, [sp, #4]
+ ldrb r0, [r5, r1]
+ add r1, r1, #1
+ ldrb r1, [r5, r1]
+ add r3, r1, #0
+ mul r3, r4
+ add r0, r0, r3
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ mov r0, #0xa
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ add r0, r5, #0
+ ldr r1, [r1, #0x14]
+ add r0, #0x54
+ mov r3, #0
+ bl FUN_02019658
+ add r5, #0x54
+ add r0, r5, #0
+ bl FUN_02019220
+ mov r0, #6
+ add r1, r7, #0
+ bl FUN_02016A8C
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021EA9F4: .word 0x00000427
+ thumb_func_end MOD75_021EA96C
+
+ thumb_func_start MOD75_021EA9F8
+MOD75_021EA9F8: ; 0x021EA9F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ add r1, sp, #0x1c
+ bl MOD75_021EA950
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r0, #0x54
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _021EAAA0 ; =0x00000424
+ mov r4, #0
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ bls _021EAA8C
+ mov r7, #1
+ add r6, r5, #0
+ lsl r7, r7, #8
+ add r6, #0x54
+_021EAA22:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #0
+ add r1, #0x64
+ ldrb r1, [r1]
+ cmp r4, r1
+ bne _021EAA42
+ mov r1, #0xc
+ mul r1, r4
+ add r0, r0, r1
+ ldrb r0, [r0, #0xc]
+ lsl r0, r0, #5
+ add r0, #0x10
+ lsl r0, r0, #0x18
+ b _021EAA4C
+_021EAA42:
+ mov r1, #0xc
+ mul r1, r4
+ add r0, r0, r1
+ ldrb r0, [r0, #0xc]
+ lsl r0, r0, #0x1d
+_021EAA4C:
+ lsr r2, r0, #0x18
+ str r7, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _021EAAA4 ; =0x00000427
+ ldrb r3, [r5, r0]
+ add r0, r0, #1
+ ldrb r0, [r5, r0]
+ add r1, r0, #0
+ mul r1, r4
+ add r0, r3, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ mov r0, #0xa
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ add r0, r6, #0
+ ldr r1, [r1, #0x14]
+ mov r3, #0
+ bl FUN_02019658
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r0, _021EAAA0 ; =0x00000424
+ ldrb r0, [r5, r0]
+ cmp r4, r0
+ blo _021EAA22
+_021EAA8C:
+ add r5, #0x54
+ add r0, r5, #0
+ bl FUN_02019220
+ ldr r1, [sp, #0x18]
+ mov r0, #6
+ bl FUN_02016A8C
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021EAAA0: .word 0x00000424
+_021EAAA4: .word 0x00000427
+ thumb_func_end MOD75_021EA9F8
+
+ thumb_func_start MOD75_021EAAA8
+MOD75_021EAAA8: ; 0x021EAAA8
+ push {r3, r4, r5, lr}
+ lsl r1, r1, #0x10
+ add r4, r2, #0
+ lsr r1, r1, #0x10
+ mov r2, #0
+ add r5, r0, #0
+ bl MOD75_021E7420
+ add r2, r0, #0
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_0200AE38
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD75_021EAAA8
+
+ thumb_func_start MOD75_021EAAC8
+MOD75_021EAAC8: ; 0x021EAAC8
+ push {r3, r4, r5, lr}
+ lsl r1, r1, #0x10
+ add r4, r2, #0
+ lsr r1, r1, #0x10
+ mov r2, #0
+ add r5, r0, #0
+ bl MOD75_021E7420
+ add r2, r0, #0
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_0200AEA8
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD75_021EAAC8
+
+ thumb_func_start MOD75_021EAAE8
+MOD75_021EAAE8: ; 0x021EAAE8
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, _021EAB3C ; =0x0000FFFF
+ add r6, r1, #0
+ cmp r6, r0
+ beq _021EAB0A
+ mov r0, #0x82
+ mov r1, #6
+ bl FUN_020219F4
+ add r1, r6, #0
+ mov r2, #6
+ add r4, r0, #0
+ bl FUN_0206E790
+ b _021EAB18
+_021EAB0A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x5e
+ bl FUN_0200A914
+ add r4, r0, #0
+_021EAB18:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAB40 ; =0x000F0E00
+ add r5, #0x14
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r2, r4, #0
+ mov r3, #0x28
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021EAB3C: .word 0x0000FFFF
+_021EAB40: .word 0x000F0E00
+ thumb_func_end MOD75_021EAAE8
+
+ thumb_func_start MOD75_021EAB44
+MOD75_021EAB44: ; 0x021EAB44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r5, #0
+ add r0, r1, #0
+ add r4, #0x14
+ bl FUN_0206EA30
+ str r0, [sp, #0x10]
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x62
+ bl FUN_0200A914
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAD90 ; =0x000F0E00
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x56
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAD90 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r2, r6, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x59
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAD90 ; =0x000F0E00
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r3, #0x60
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x57
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAD90 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r2, r6, #0
+ mov r3, #0x60
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x58
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAD90 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r2, r6, #0
+ mov r3, #0x60
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x10]
+ mov r1, #0
+ bl FUN_0206AB30
+ add r7, r0, #0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x5a
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ add r2, r7, #0
+ mov r3, #2
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAD90 ; =0x000F0E00
+ mov r2, #0xfe
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r4, #0
+ mov r3, #0x30
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ mov r1, #2
+ bl FUN_0206AB18
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+ cmp r7, #1
+ bhi _021EACBA
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x18
+ bl FUN_0200A914
+ b _021EACC6
+_021EACBA:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x5b
+ bl FUN_0200A914
+_021EACC6:
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r2, r7, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAD90 ; =0x000F0E00
+ mov r2, #0xfe
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r4, #0
+ mov r3, #0xa0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ mov r1, #4
+ bl FUN_0206AB18
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+ bne _021EAD30
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x18
+ bl FUN_0200A914
+ b _021EAD3C
+_021EAD30:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x5b
+ bl FUN_0200A914
+_021EAD3C:
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r2, r7, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAD90 ; =0x000F0E00
+ mov r2, #0xfe
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r4, #0
+ mov r3, #0xa0
+ bl FUN_0201BDE0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021EAD90: .word 0x000F0E00
+ thumb_func_end MOD75_021EAB44
+
+ thumb_func_start MOD75_021EAD94
+MOD75_021EAD94: ; 0x021EAD94
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x26
+ bl FUN_0200A914
+ mov r1, #0xff
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x25
+ bl FUN_0200A914
+ mov r1, #1
+ lsl r1, r1, #0xa
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EAD94
+
+ thumb_func_start MOD75_021EADC0
+MOD75_021EADC0: ; 0x021EADC0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xff
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EADC0
+
+ thumb_func_start MOD75_021EADDC
+MOD75_021EADDC: ; 0x021EADDC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ str r1, [sp, #0x10]
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r4, r2, #0
+ add r1, r0, #0
+ add r1, #0x64
+ ldrb r2, [r1]
+ mov r1, #0xc
+ add r6, r3, #0
+ mul r1, r2
+ add r0, r0, r1
+ ldrb r0, [r0, #0xc]
+ cmp r0, #3
+ str r4, [sp]
+ bne _021EAE18
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r6, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r5, #4
+ mov r3, #0x73
+ bl FUN_0201BDE0
+ b _021EAE2E
+_021EAE18:
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r6, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r5, #4
+ mov r3, #0x6d
+ bl FUN_0201BDE0
+_021EAE2E:
+ mov r0, #0xa
+ mov r1, #6
+ bl FUN_020219F4
+ mov r1, #0
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, [sp, #0x10]
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r2, #1
+ lsl r0, r0, #2
+ lsl r2, r2, #0xa
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r7, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ str r4, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r4, #0x86
+ str r6, [sp, #8]
+ mov r1, #0
+ add r0, r5, #4
+ add r2, r7, #0
+ sub r3, r4, r3
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EADDC
+
+ thumb_func_start MOD75_021EAE90
+MOD75_021EAE90: ; 0x021EAE90
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ add r4, r2, #0
+ add r5, r0, #0
+ mov r0, #0x69
+ ldrh r2, [r6]
+ lsl r0, r0, #2
+ cmp r2, r0
+ bhs _021EAEDA
+ add r1, r0, #0
+ sub r1, #0x5d
+ sub r1, r2, r1
+ lsl r1, r1, #0x10
+ lsr r2, r1, #0x10
+ mov r1, #2
+ str r1, [sp]
+ add r3, r5, #4
+ str r3, [sp, #4]
+ mov r3, #0
+ str r3, [sp, #8]
+ add r3, r4, #5
+ str r3, [sp, #0xc]
+ sub r0, #0x94
+ ldr r0, [r5, r0]
+ add r3, r1, #0
+ bl FUN_0200BA78
+ lsl r2, r4, #0x10
+ ldrh r1, [r6, #2]
+ ldr r3, _021EAF08 ; =0x00010200
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ bl MOD75_021EADDC
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+_021EAEDA:
+ sub r1, r0, #1
+ sub r1, r2, r1
+ add r2, r5, #4
+ str r2, [sp]
+ mov r2, #0x10
+ str r2, [sp, #4]
+ add r2, r4, #5
+ str r2, [sp, #8]
+ sub r0, #0x94
+ lsl r1, r1, #0x10
+ ldr r0, [r5, r0]
+ lsr r1, r1, #0x10
+ mov r2, #2
+ mov r3, #1
+ bl FUN_0200B9EC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD75_021EAF70
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_021EAF08: .word 0x00010200
+ thumb_func_end MOD75_021EAE90
+
+ thumb_func_start MOD75_021EAF0C
+MOD75_021EAF0C: ; 0x021EAF0C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ add r6, r2, #0
+ bl FUN_0206EB0C
+ mov r1, #2
+ add r2, r0, #0
+ str r1, [sp]
+ add r0, r5, #4
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r6, #5
+ str r0, [sp, #0xc]
+ mov r0, #0x11
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r2, r2, #1
+ add r3, r1, #0
+ bl FUN_0200BA78
+ lsl r2, r6, #0x10
+ ldrh r1, [r4, #2]
+ ldr r3, _021EAF50 ; =0x00010200
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ bl MOD75_021EADDC
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_021EAF50: .word 0x00010200
+ thumb_func_end MOD75_021EAF0C
+
+ thumb_func_start MOD75_021EAF54
+MOD75_021EAF54: ; 0x021EAF54
+ push {r3, r4, r5, lr}
+ add r0, #0xd4
+ ldr r0, [r0]
+ add r5, r1, #0
+ mov r1, #0x26
+ mov r2, #6
+ bl FUN_02006704
+ add r1, r5, #0
+ add r4, r0, #0
+ bl FUN_020B0030
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD75_021EAF54
+
+ thumb_func_start MOD75_021EAF70
+MOD75_021EAF70: ; 0x021EAF70
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ add r1, sp, #0x18
+ add r5, r0, #0
+ bl MOD75_021EAF54
+ add r6, r0, #0
+ mov r0, #0x40
+ str r0, [sp]
+ mov r0, #0x10
+ lsl r1, r4, #0x10
+ str r0, [sp, #4]
+ mov r3, #0
+ str r3, [sp, #8]
+ lsr r1, r1, #0x10
+ str r1, [sp, #0xc]
+ mov r1, #0x18
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ add r0, r5, #4
+ ldr r1, [r1, #0x14]
+ mov r2, #0x28
+ bl FUN_02019658
+ mov r0, #6
+ add r1, r6, #0
+ bl FUN_02016A8C
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD75_021EAF70
+
+ thumb_func_start MOD75_021EAFB0
+MOD75_021EAFB0: ; 0x021EAFB0
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x29
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #0x88
+ str r0, [sp]
+ mov r0, #0x10
+ mov r1, #0
+ lsl r3, r4, #0x10
+ str r0, [sp, #4]
+ add r0, r5, #4
+ add r2, r1, #0
+ lsr r3, r3, #0x10
+ bl FUN_020196F4
+ mov r1, #0
+ str r4, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EB000 ; =0x00010200
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r5, #4
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_021EB000: .word 0x00010200
+ thumb_func_end MOD75_021EAFB0
+
+ thumb_func_start MOD75_021EB004
+MOD75_021EB004: ; 0x021EB004
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ add r1, sp, #0x18
+ add r5, r0, #0
+ bl MOD75_021EAF54
+ add r6, r0, #0
+ mov r0, #0x40
+ str r0, [sp]
+ mov r0, #0x10
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r1, #0x60
+ str r1, [sp, #8]
+ lsl r1, r4, #0x10
+ lsr r1, r1, #0x10
+ str r1, [sp, #0xc]
+ mov r1, #0x28
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ add r0, r5, #4
+ ldr r1, [r1, #0x14]
+ add r3, r2, #0
+ bl FUN_02019658
+ mov r0, #6
+ add r1, r6, #0
+ bl FUN_02016A8C
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EB004
+
+ thumb_func_start MOD75_021EB048
+MOD75_021EB048: ; 0x021EB048
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200A914
+ mov r1, #0x49
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x10
+ ldr r0, [r4, r1]
+ mov r1, #6
+ bl FUN_0200A914
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x14
+ ldr r0, [r4, r1]
+ mov r1, #0x10
+ bl FUN_0200A914
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x18
+ ldr r0, [r4, r1]
+ mov r1, #0x5f
+ bl FUN_0200A914
+ mov r1, #0x13
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ sub r1, #0x1c
+ ldr r0, [r4, r1]
+ mov r1, #0x60
+ bl FUN_0200A914
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x20
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_0200A914
+ mov r1, #0x4e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x24
+ ldr r0, [r4, r1]
+ mov r1, #2
+ bl FUN_0200A914
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x28
+ ldr r0, [r4, r1]
+ mov r1, #0x12
+ bl FUN_0200A914
+ mov r1, #5
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ sub r1, #0x2c
+ ldr r0, [r4, r1]
+ mov r1, #3
+ bl FUN_0200A914
+ mov r1, #0x51
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x30
+ ldr r0, [r4, r1]
+ mov r1, #4
+ bl FUN_0200A914
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x34
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl FUN_0200A914
+ mov r1, #0x53
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x38
+ ldr r0, [r4, r1]
+ mov r1, #8
+ bl FUN_0200A914
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ pop {r4, pc}
+ thumb_func_end MOD75_021EB048
+
+ thumb_func_start MOD75_021EB110
+MOD75_021EB110: ; 0x021EB110
+ push {r4, r5, r6, lr}
+ mov r6, #0x49
+ add r5, r0, #0
+ mov r4, #0
+ lsl r6, r6, #2
+_021EB11A:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ bl FUN_02021A20
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0xc
+ blo _021EB11A
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD75_021EB110
+
+ thumb_func_start MOD75_021EB130
+MOD75_021EB130: ; 0x021EB130
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r6, r1, #0
+ add r1, r0, #0
+ add r1, #0x64
+ add r7, r2, #0
+ ldrb r2, [r1]
+ mov r1, #0xc
+ mul r1, r2
+ add r0, r0, r1
+ ldrb r0, [r0, #0xc]
+ cmp r0, #4
+ bne _021EB180
+ lsl r0, r7, #1
+ mov r3, #0x17
+ sub r1, r3, r0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ mov r1, #8
+ lsl r0, r0, #0x18
+ str r1, [sp, #4]
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ ldr r0, _021EB338 ; =0x00000337
+ add r1, r5, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r5]
+ add r1, #0xb4
+ mov r2, #0
+ bl FUN_02019064
+ mov r0, #4
+ str r0, [sp, #0x14]
+ b _021EB1B0
+_021EB180:
+ lsl r0, r7, #1
+ mov r1, #0x17
+ sub r1, r1, r0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ mov r1, #7
+ lsl r0, r0, #0x18
+ str r1, [sp, #4]
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ ldr r0, _021EB338 ; =0x00000337
+ add r1, r5, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r5]
+ add r1, #0xb4
+ mov r2, #0
+ mov r3, #0x18
+ bl FUN_02019064
+ mov r0, #3
+ str r0, [sp, #0x14]
+_021EB1B0:
+ add r0, r7, #0
+ mov r1, #6
+ bl FUN_02012838
+ mov r1, #0x55
+ lsl r1, r1, #2
+ mov r4, #0
+ str r0, [r5, r1]
+ cmp r7, #0
+ ble _021EB1EC
+_021EB1C4:
+ ldrb r0, [r6, r4]
+ bl MOD75_021E8E10
+ ldrb r1, [r6, r4]
+ add r2, r0, #0
+ mov r0, #0x55
+ lsl r1, r1, #2
+ add r3, r5, r1
+ mov r1, #0x49
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r3, r1]
+ bl FUN_020128A0
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, r7
+ blt _021EB1C4
+_021EB1EC:
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ add r0, #0xb4
+ str r0, [sp, #0x20]
+ add r0, sp, #0x1c
+ strb r1, [r0, #8]
+ mov r1, #1
+ strb r1, [r0, #9]
+ strb r7, [r0, #0xa]
+ ldrb r2, [r0, #0xb]
+ mov r1, #0xf
+ bic r2, r1
+ strb r2, [r0, #0xb]
+ ldrb r2, [r0, #0xb]
+ mov r1, #0x30
+ bic r2, r1
+ strb r2, [r0, #0xb]
+ cmp r7, #4
+ ldrb r2, [r0, #0xb]
+ blo _021EB228
+ mov r1, #0xc0
+ bic r2, r1
+ mov r1, #0x40
+ orr r1, r2
+ strb r1, [r0, #0xb]
+ b _021EB22E
+_021EB228:
+ mov r1, #0xc0
+ bic r2, r1
+ strb r2, [r0, #0xb]
+_021EB22E:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #2
+ mov r2, #0
+ str r0, [sp, #4]
+ add r0, sp, #0x1c
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02001B8C
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ mov r3, #0xc
+ add r0, r2, #0
+ add r0, #0x64
+ ldrb r0, [r0]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r2, r1
+ ldrb r0, [r0, #0xc]
+ cmp r0, #3
+ bne _021EB298
+ add r0, r5, #0
+ add r0, #0x14
+ mov r1, #0
+ bl FUN_02019620
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r1, #0x66
+ ldrh r1, [r1]
+ bl MOD75_021EAB44
+ add r0, r5, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r1, #0x66
+ ldrh r1, [r1]
+ mov r2, #1
+ bl MOD75_021EC2B8
+ b _021EB31E
+_021EB298:
+ ldr r0, [sp, #0x14]
+ add r4, r5, #4
+ lsl r6, r0, #4
+ ldr r2, _021EB33C ; =0x000003D9
+ add r0, r4, r6
+ mov r1, #1
+ bl FUN_0200D0BC
+ add r0, r4, r6
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x2a
+ bl FUN_0200A914
+ str r0, [sp, #0x18]
+ mov r0, #0x38
+ mov r1, #6
+ bl FUN_020219F4
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ add r0, r1, #4
+ add r1, #0x64
+ ldrb r2, [r1]
+ mov r1, #0xc
+ mul r1, r2
+ add r1, r0, r1
+ ldrh r2, [r1, #6]
+ ldrh r1, [r1, #4]
+ add r0, r5, #0
+ add r1, r2, r1
+ sub r1, r1, #1
+ mov r2, #0
+ bl MOD75_021EAAA8
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, [sp, #0x18]
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ add r0, r4, r6
+ mov r1, #1
+ add r2, r7, #0
+ str r3, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r7, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ add r0, r4, r6
+ bl FUN_02019220
+_021EB31E:
+ add r0, r5, #0
+ ldr r2, _021EB340 ; =0x000003F7
+ add r0, #0xb4
+ mov r1, #1
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ add r5, #0xb4
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021EB338: .word 0x00000337
+_021EB33C: .word 0x000003D9
+_021EB340: .word 0x000003F7
+ thumb_func_end MOD75_021EB130
+
+ thumb_func_start MOD75_021EB344
+MOD75_021EB344: ; 0x021EB344
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r2, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r0, r2, r0
+ ldrb r0, [r0, #0xc]
+ cmp r0, #4
+ bne _021EB362
+ mov r1, #4
+ b _021EB364
+_021EB362:
+ mov r1, #3
+_021EB364:
+ cmp r0, #3
+ beq _021EB37A
+ lsl r6, r1, #4
+ add r4, r5, #4
+ add r0, r4, r6
+ mov r1, #1
+ bl FUN_0200D0E0
+ add r0, r4, r6
+ bl FUN_0201958C
+_021EB37A:
+ add r0, r5, #0
+ add r0, #0xb4
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r5, #0
+ add r0, #0xb4
+ bl FUN_0201958C
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ add r0, r5, #0
+ add r0, #0xb4
+ bl FUN_02019178
+ add r0, r5, #0
+ add r0, #0x14
+ mov r1, #0
+ bl FUN_02019620
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r1, #0x66
+ ldrh r1, [r1]
+ bl MOD75_021EAAE8
+ add r0, r5, #0
+ add r0, #0x14
+ bl FUN_02019220
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ bl MOD75_021EC2B8
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD75_021EB344
+
+ thumb_func_start MOD75_021EB3D8
+MOD75_021EB3D8: ; 0x021EB3D8
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r0, #0x14
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x2d
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #0x82
+ mov r1, #6
+ bl FUN_020219F4
+ ldr r1, _021EB44C ; =0x0000047B
+ add r4, r0, #0
+ ldrb r1, [r5, r1]
+ add r0, r5, #0
+ mov r2, #0
+ sub r1, r1, #1
+ bl MOD75_021EAAA8
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EB450 ; =0x000F0E00
+ add r2, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x14
+ mov r3, #0x28
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r5, #0x14
+ add r0, r5, #0
+ bl FUN_02019220
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021EB44C: .word 0x0000047B
+_021EB450: .word 0x000F0E00
+ thumb_func_end MOD75_021EB3D8
+
+ thumb_func_start MOD75_021EB454
+MOD75_021EB454: ; 0x021EB454
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ ldr r2, _021EB4FC ; =0x000003F7
+ add r5, r0, #0
+ add r0, #0x94
+ mov r1, #1
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ bl MOD75_021EB504
+ add r0, r5, #0
+ ldr r2, _021EB500 ; =0x000003D9
+ add r0, #0x34
+ mov r1, #1
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r5, #0
+ add r0, #0x34
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x34
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #0x38
+ mov r1, #6
+ bl FUN_020219F4
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r1, r2, r0
+ ldrh r2, [r1, #6]
+ ldrh r1, [r1, #4]
+ add r0, r5, #0
+ add r1, r2, r1
+ sub r1, r1, #1
+ mov r2, #0
+ bl MOD75_021EAAA8
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x34
+ mov r1, #1
+ add r2, r4, #0
+ str r3, [sp, #8]
+ bl FUN_0201BD84
+ add r5, #0x34
+ add r0, r5, #0
+ bl FUN_02019220
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021EB4FC: .word 0x000003F7
+_021EB500: .word 0x000003D9
+ thumb_func_end MOD75_021EB454
+
+ thumb_func_start MOD75_021EB504
+MOD75_021EB504: ; 0x021EB504
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x94
+ add r0, r4, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x54
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, _021EB57C ; =0x00000488
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ mov r2, #0xfe
+ str r1, [sp, #8]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r4, #0
+ mov r3, #0x10
+ bl FUN_0201BD84
+ add r0, r4, #0
+ bl FUN_02019220
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021EB57C: .word 0x00000488
+ thumb_func_end MOD75_021EB504
+
+ thumb_func_start MOD75_021EB580
+MOD75_021EB580: ; 0x021EB580
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x34
+ mov r1, #1
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ add r0, #0x94
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0x34
+ bl FUN_0201958C
+ add r0, r4, #0
+ add r0, #0x94
+ bl FUN_0201958C
+ add r4, #0x14
+ add r0, r4, #0
+ bl FUN_02019220
+ pop {r4, pc}
+ thumb_func_end MOD75_021EB580
+
+ thumb_func_start MOD75_021EB5B0
+MOD75_021EB5B0: ; 0x021EB5B0
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ ldr r2, _021EB654 ; =0x000003D9
+ add r5, r0, #0
+ add r0, #0x64
+ mov r1, #1
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r5, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r1, r2, r0
+ ldr r0, _021EB658 ; =0x00000488
+ ldrsh r0, [r5, r0]
+ cmp r0, #1
+ bne _021EB606
+ ldrh r2, [r1, #6]
+ ldrh r1, [r1, #4]
+ add r0, r5, #0
+ add r1, r2, r1
+ sub r1, r1, #1
+ mov r2, #0
+ bl MOD75_021EAAA8
+ b _021EB616
+_021EB606:
+ ldrh r2, [r1, #6]
+ ldrh r1, [r1, #4]
+ add r0, r5, #0
+ add r1, r2, r1
+ sub r1, r1, #1
+ mov r2, #0
+ bl MOD75_021EAAC8
+_021EB616:
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ mov r0, #0x46
+ ldr r2, _021EB658 ; =0x00000488
+ str r1, [sp, #4]
+ lsl r0, r0, #2
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl MOD75_021EB660
+ ldr r1, _021EB65C ; =0x00000426
+ strb r0, [r5, r1]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021EB654: .word 0x000003D9
+_021EB658: .word 0x00000488
+_021EB65C: .word 0x00000426
+ thumb_func_end MOD75_021EB5B0
+
+ thumb_func_start MOD75_021EB660
+MOD75_021EB660: ; 0x021EB660
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #1
+ bl FUN_02002B60
+ mov r0, #0
+ bl FUN_02002B7C
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl FUN_02024FF4
+ mov r3, #0
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, _021EB69C ; =MOD75_021EB6A0
+ mov r2, #0xfe
+ str r0, [sp, #8]
+ lsl r2, r2, #2
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ add r0, #0x64
+ mov r1, #1
+ bl FUN_0201BD84
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_021EB69C: .word MOD75_021EB6A0
+ thumb_func_end MOD75_021EB660
+
+ thumb_func_start MOD75_021EB6A0
+MOD75_021EB6A0: ; 0x021EB6A0
+ push {r3, lr}
+ cmp r1, #4
+ bhi _021EB6D8
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021EB6B2: ; jump table
+ .short _021EB6D8 - _021EB6B2 - 2 ; case 0
+ .short _021EB6BC - _021EB6B2 - 2 ; case 1
+ .short _021EB6C2 - _021EB6B2 - 2 ; case 2
+ .short _021EB6C8 - _021EB6B2 - 2 ; case 3
+ .short _021EB6D0 - _021EB6B2 - 2 ; case 4
+_021EB6BC:
+ bl FUN_02005514
+ pop {r3, pc}
+_021EB6C2:
+ bl FUN_02005CBC
+ pop {r3, pc}
+_021EB6C8:
+ ldr r0, _021EB6DC ; =0x0000060D
+ bl FUN_020054C8
+ b _021EB6D8
+_021EB6D0:
+ ldr r0, _021EB6DC ; =0x0000060D
+ bl FUN_02005508
+ pop {r3, pc}
+_021EB6D8:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_021EB6DC: .word 0x0000060D
+ thumb_func_end MOD75_021EB6A0
+
+ thumb_func_start MOD75_021EB6E0
+MOD75_021EB6E0: ; 0x021EB6E0
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ ldr r0, [r4]
+ ldr r1, _021EB700 ; =0x021EC6AC
+ ldr r2, _021EB704 ; =0x000003F7
+ mov r3, #0xe
+ bl FUN_02002198
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021EB700: .word 0x021EC6AC
+_021EB704: .word 0x000003F7
+ thumb_func_end MOD75_021EB6E0
+
+ thumb_func_start MOD75_021EB708
+MOD75_021EB708: ; 0x021EB708
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x74
+ cmp r1, #0
+ bne _021EB722
+ ldr r2, _021EB7FC ; =0x000003F7
+ add r0, r4, #0
+ mov r1, #1
+ mov r3, #0xe
+ bl FUN_0200CCA4
+_021EB722:
+ add r0, r4, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x50
+ bl FUN_0200A914
+ mov r3, #2
+ add r6, r0, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, _021EB800 ; =0x00000488
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ mov r2, #0xfe
+ str r1, [sp, #8]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r4, #0
+ add r3, r1, #0
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x51
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r2, _021EB804 ; =0x0000048C
+ mov r0, #0x46
+ ldr r3, [r5, r2]
+ sub r2, r2, #4
+ ldrsh r2, [r5, r2]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mul r2, r3
+ mov r1, #0
+ mov r3, #6
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r1, #0xfe
+ lsl r1, r1, #2
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ mov r2, #0xfe
+ str r1, [sp, #8]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ mov r5, #0x60
+ add r0, r4, #0
+ sub r3, r5, r3
+ bl FUN_0201BD84
+ add r0, r4, #0
+ bl FUN_02019220
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021EB7FC: .word 0x000003F7
+_021EB800: .word 0x00000488
+_021EB804: .word 0x0000048C
+ thumb_func_end MOD75_021EB708
+
+ thumb_func_start MOD75_021EB808
+MOD75_021EB808: ; 0x021EB808
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x84
+ cmp r1, #0
+ bne _021EB854
+ add r0, r4, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r2, _021EB8E4 ; =0x000003F7
+ add r0, r4, #0
+ mov r1, #1
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x4e
+ bl FUN_0200A914
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r6, #0
+ add r3, r1, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02021A20
+ b _021EB866
+_021EB854:
+ mov r0, #0x50
+ str r0, [sp]
+ mov r3, #0x10
+ add r0, r4, #0
+ mov r1, #0xf
+ mov r2, #0
+ str r3, [sp, #4]
+ bl FUN_020196F4
+_021EB866:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x4f
+ bl FUN_0200A914
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ bl FUN_02023A10
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ mov r3, #6
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r1, #0xfe
+ lsl r1, r1, #2
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ mov r2, #0xfe
+ str r1, [sp, #8]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ mov r5, #0x50
+ add r0, r4, #0
+ sub r3, r5, r3
+ bl FUN_0201BD84
+ add r0, r4, #0
+ bl FUN_02019220
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021EB8E4: .word 0x000003F7
+ thumb_func_end MOD75_021EB808
+
+ thumb_func_start MOD75_021EB8E8
+MOD75_021EB8E8: ; 0x021EB8E8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0xa4
+ add r0, r4, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r2, _021EB9B0 ; =0x000003F7
+ add r0, r4, #0
+ mov r1, #1
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x6c
+ bl FUN_0200A914
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r6, #0
+ add r3, r1, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x6d
+ bl FUN_0200A914
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl FUN_02028048
+ bl FUN_020281B8
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r1, #0xfe
+ lsl r1, r1, #2
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ mov r2, #0xfe
+ str r1, [sp, #8]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ mov r5, #0x58
+ add r0, r4, #0
+ sub r3, r5, r3
+ bl FUN_0201BD84
+ add r0, r4, #0
+ bl FUN_02019220
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021EB9B0: .word 0x000003F7
+ thumb_func_end MOD75_021EB8E8
+
+ thumb_func_start MOD75_021EB9B4
+MOD75_021EB9B4: ; 0x021EB9B4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #0x20
+ mov r1, #6
+ bl FUN_0201C24C
+ add r0, r4, #0
+ bl MOD75_021EB9E4
+ add r0, r4, #0
+ bl MOD75_021EBA80
+ add r0, r4, #0
+ bl MOD75_021EBEAC
+ pop {r4, pc}
+ thumb_func_end MOD75_021EB9B4
+
+ thumb_func_start MOD75_021EB9E4
+MOD75_021EB9E4: ; 0x021EB9E4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x4c
+ ldr r3, _021EBA74 ; =0x021EC6D4
+ add r2, sp, #0x34
+ 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}
+ mov r0, #6
+ bl FUN_0200BB14
+ add r1, r4, #0
+ add r1, #0xd8
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ add r1, r4, #0
+ add r1, #0xdc
+ add r2, sp, #0x14
+ ldr r5, _021EBA78 ; =0x021EC6EC
+ str r0, [r1]
+ ldmia r5!, {r0, r1}
+ add r3, r2, #0
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ ldr r6, _021EBA7C ; =0x021EC6C0
+ stmia r2!, {r0, r1}
+ add r5, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r5, #0
+ stmia r5!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r3, #0
+ str r0, [r5]
+ add r0, r4, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xc
+ bl FUN_0200BBF0
+ add r0, r4, #0
+ add r0, #0xd8
+ add r4, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r4]
+ add r2, sp, #0x34
+ bl FUN_0200BF60
+ add sp, #0x4c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021EBA74: .word 0x021EC6D4
+_021EBA78: .word 0x021EC6EC
+_021EBA7C: .word 0x021EC6C0
+ thumb_func_end MOD75_021EB9E4
+
+ thumb_func_start MOD75_021EBA80
+MOD75_021EBA80: ; 0x021EBA80
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, _021EBE38 ; =0x00000425
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ bne _021EBA94
+ mov r3, #2
+ mov r4, #3
+ b _021EBA98
+_021EBA94:
+ mov r3, #0x22
+ mov r4, #0x23
+_021EBA98:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021EBE3C ; =0x0000C0F9
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021EBE40 ; =0x0000C0FA
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x15
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021EBE44 ; =0x0000C0FB
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x18
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021EBE48 ; =0x0000C0FC
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x1b
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021EBE4C ; =0x0000C0FD
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #6
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _021EBE50 ; =0x0000C0FE
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x1e
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0xc1
+ lsl r0, r0, #8
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x3e
+ mov r3, #4
+ bl FUN_0200C00C
+ mov r0, #0
+ mov r1, #1
+ bl FUN_0206E640
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021EBE54 ; =0x0000C0FF
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x10
+ bl FUN_0200C00C
+ ldr r0, _021EBE58 ; =0x0000C101
+ add r1, r5, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0206E130
+ ldr r0, _021EBE5C ; =0x0000C102
+ add r1, r5, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0206E2AC
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, _021EBE3C ; =0x0000C0F9
+ add r1, r5, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ add r3, r4, #0
+ bl FUN_0200C06C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, _021EBE40 ; =0x0000C0FA
+ add r1, r5, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x10
+ bl FUN_0200C06C
+ mov r0, #0
+ mov r1, #2
+ bl FUN_0206E640
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, _021EBE48 ; =0x0000C0FC
+ add r1, r5, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x10
+ bl FUN_0200C06C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, _021EBE4C ; =0x0000C0FD
+ add r1, r5, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x3e
+ mov r3, #0xa
+ bl FUN_0200C06C
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r3, _021EBE50 ; =0x0000C0FE
+ mov r2, #1
+ bl FUN_0206E164
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ ldr r0, _021EBE44 ; =0x0000C0FB
+ add r1, r5, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x1f
+ bl FUN_0200C06C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE3C ; =0x0000C0F9
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #1
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE40 ; =0x0000C0FA
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x14
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE44 ; =0x0000C0FB
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x17
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE48 ; =0x0000C0FC
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x1a
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE4C ; =0x0000C0FD
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #5
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE50 ; =0x0000C0FE
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x1d
+ bl FUN_0200C124
+ bl FUN_0206E708
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE54 ; =0x0000C0FF
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x10
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xc1
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x3e
+ mov r3, #5
+ bl FUN_0200C124
+ mov r3, #0
+ add r1, r5, #0
+ ldr r0, _021EBE3C ; =0x0000C0F9
+ str r3, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ bl FUN_0200C13C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE40 ; =0x0000C0FA
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x13
+ bl FUN_0200C13C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE44 ; =0x0000C0FB
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x16
+ bl FUN_0200C13C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE48 ; =0x0000C0FC
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x19
+ bl FUN_0200C13C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE4C ; =0x0000C0FD
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #4
+ bl FUN_0200C13C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE50 ; =0x0000C0FE
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x1c
+ bl FUN_0200C13C
+ bl FUN_0206E70C
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE54 ; =0x0000C0FF
+ b _021EBE60
+ nop
+_021EBE38: .word 0x00000425
+_021EBE3C: .word 0x0000C0F9
+_021EBE40: .word 0x0000C0FA
+_021EBE44: .word 0x0000C0FB
+_021EBE48: .word 0x0000C0FC
+_021EBE4C: .word 0x0000C0FD
+_021EBE50: .word 0x0000C0FE
+_021EBE54: .word 0x0000C0FF
+_021EBE58: .word 0x0000C101
+_021EBE5C: .word 0x0000C102
+_021EBE60:
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x10
+ bl FUN_0200C13C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xc1
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x3e
+ mov r3, #6
+ bl FUN_0200C13C
+ add r0, r5, #0
+ add r0, #0xd8
+ add r5, #0xdc
+ ldr r2, _021EBEA8 ; =0x0000C101
+ ldr r0, [r0]
+ ldr r1, [r5]
+ add r3, r2, #0
+ bl FUN_0206E1D4
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021EBEA8: .word 0x0000C101
+ thumb_func_end MOD75_021EBA80
+
+ thumb_func_start MOD75_021EBEAC
+MOD75_021EBEAC: ; 0x021EBEAC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r4, _021EBFD8 ; =0x021EC70C
+ mov r7, #0
+ add r6, r5, #0
+_021EBEB8:
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, r4, #0
+ bl FUN_0200C154
+ add r1, r6, #0
+ add r1, #0xe0
+ add r7, r7, #1
+ str r0, [r1]
+ add r4, #0x34
+ add r6, r6, #4
+ cmp r7, #0xc
+ blo _021EBEB8
+ add r0, r5, #0
+ add r0, #0xf4
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r5, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #0x43
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r0, #0x65
+ ldrb r0, [r0]
+ add r0, #0xfc
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bhi _021EBF2A
+ add r0, r5, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+_021EBF2A:
+ ldr r0, _021EBFDC ; =0x00000424
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ bne _021EBF4A
+ add r0, r5, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r5, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+_021EBF4A:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD75_021EC298
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r2, r1, #0
+ add r2, #0x64
+ ldrb r3, [r2]
+ mov r2, #0xc
+ add r0, #0xe0
+ mul r2, r3
+ add r1, r1, r2
+ ldrb r1, [r1, #0xc]
+ ldr r0, [r0]
+ bl FUN_0200C5C0
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r1, #0x64
+ ldrb r1, [r1]
+ bl MOD75_021EC18C
+ add r1, r0, #0
+ add r0, r5, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ mov r2, #0x61
+ bl FUN_0200C714
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r5, #0
+ add r3, r2, #0
+ add r3, #0x64
+ ldrb r4, [r3]
+ mov r3, #0xc
+ add r0, #0xf0
+ mul r3, r4
+ add r2, r2, r3
+ ldrh r2, [r2, #8]
+ ldr r0, [r0]
+ mov r1, #0xb1
+ sub r2, r2, #1
+ lsl r2, r2, #4
+ add r2, #0x18
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r4, _021EBFE0 ; =0x021EC6B4
+ add r3, sp, #0
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ add r1, r2, #0
+ add r5, #0xe0
+ str r0, [r3]
+ ldr r0, [r5]
+ mov r2, #2
+ ldr r0, [r0]
+ bl FUN_02020074
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021EBFD8: .word 0x021EC70C
+_021EBFDC: .word 0x00000424
+_021EBFE0: .word 0x021EC6B4
+ thumb_func_end MOD75_021EBEAC
+
+ thumb_func_start MOD75_021EBFE4
+MOD75_021EBFE4: ; 0x021EBFE4
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_021EBFEC:
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xc
+ blo _021EBFEC
+ add r0, r6, #0
+ add r1, r6, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl FUN_0200C398
+ add r6, #0xd8
+ ldr r0, [r6]
+ bl FUN_0200BD04
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD75_021EBFE4
+
+ thumb_func_start MOD75_021EC018
+MOD75_021EC018: ; 0x021EC018
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021EC01E:
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ bl FUN_0200C5A8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xc
+ blo _021EC01E
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EC018
+
+ thumb_func_start MOD75_021EC034
+MOD75_021EC034: ; 0x021EC034
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_0206E640
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EC088 ; =0x0000C0FF
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x10
+ bl FUN_0200C9D8
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_0206E640
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EC08C ; =0x0000C0FC
+ mov r2, #0x10
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r5, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r5]
+ bl FUN_0200CA0C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_021EC088: .word 0x0000C0FF
+_021EC08C: .word 0x0000C0FC
+ thumb_func_end MOD75_021EC034
+
+ thumb_func_start MOD75_021EC090
+MOD75_021EC090: ; 0x021EC090
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r4, r1, #0
+ bl FUN_0200C66C
+ add r5, #0xe4
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl FUN_0200C66C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EC090
+
+ thumb_func_start MOD75_021EC0AC
+MOD75_021EC0AC: ; 0x021EC0AC
+ ldr r1, _021EC0C0 ; =0x00000454
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021EC0B8
+ mov r0, #1
+ b _021EC0BA
+_021EC0B8:
+ mov r0, #0
+_021EC0BA:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+ .align 2, 0
+_021EC0C0: .word 0x00000454
+ thumb_func_end MOD75_021EC0AC
+
+ thumb_func_start MOD75_021EC0C4
+MOD75_021EC0C4: ; 0x021EC0C4
+ ldr r1, _021EC0D4 ; =0x00000457
+ mov r2, #0
+ strb r2, [r0, r1]
+ ldr r3, _021EC0D8 ; =MOD75_021EC1A4
+ mov r2, #1
+ sub r1, r1, #3
+ strb r2, [r0, r1]
+ bx r3
+ .align 2, 0
+_021EC0D4: .word 0x00000457
+_021EC0D8: .word MOD75_021EC1A4
+ thumb_func_end MOD75_021EC0C4
+
+ thumb_func_start MOD75_021EC0DC
+MOD75_021EC0DC: ; 0x021EC0DC
+ push {r3, lr}
+ ldr r1, _021EC0F0 ; =0x00000454
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ beq _021EC0EE
+ cmp r1, #1
+ bne _021EC0EE
+ bl MOD75_021EC0F4
+_021EC0EE:
+ pop {r3, pc}
+ .align 2, 0
+_021EC0F0: .word 0x00000454
+ thumb_func_end MOD75_021EC0DC
+
+ thumb_func_start MOD75_021EC0F4
+MOD75_021EC0F4: ; 0x021EC0F4
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ ldr r0, [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 r2, _021EC180 ; =0x00000455
+ ldrb r0, [r4, r2]
+ cmp r0, #0
+ bne _021EC12C
+ add r1, r2, #2
+ ldrb r1, [r4, r1]
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ add r3, r4, r1
+ add r1, r2, #3
+ ldr r1, [r3, r1]
+ sub r0, r0, r1
+ str r0, [sp]
+ b _021EC13E
+_021EC12C:
+ add r1, r2, #2
+ ldrb r1, [r4, r1]
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ add r3, r4, r1
+ add r1, r2, #3
+ ldr r1, [r3, r1]
+ add r0, r0, r1
+ str r0, [sp]
+_021EC13E:
+ add r0, r4, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r1, sp, #0
+ ldr r0, [r0]
+ bl FUN_02020044
+ ldr r1, _021EC184 ; =0x00000457
+ ldrb r0, [r4, r1]
+ add r0, r0, #1
+ strb r0, [r4, r1]
+ ldrb r0, [r4, r1]
+ cmp r0, #8
+ bne _021EC17C
+ add r1, #0x21
+ ldrb r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD75_021EC18C
+ lsl r0, r0, #0xc
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r1, sp, #0
+ ldr r0, [r0]
+ bl FUN_02020044
+ ldr r0, _021EC188 ; =0x00000454
+ mov r1, #0
+ strb r1, [r4, r0]
+_021EC17C:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_021EC180: .word 0x00000455
+_021EC184: .word 0x00000457
+_021EC188: .word 0x00000454
+ thumb_func_end MOD75_021EC0F4
+
+ thumb_func_start MOD75_021EC18C
+MOD75_021EC18C: ; 0x021EC18C
+ ldr r2, _021EC1A0 ; =0x00000427
+ ldrb r3, [r0, r2]
+ add r2, r2, #1
+ ldrb r0, [r0, r2]
+ mul r1, r0
+ add r0, r3, r1
+ add r0, r0, #6
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+ .align 2, 0
+_021EC1A0: .word 0x00000427
+ thumb_func_end MOD75_021EC18C
+
+ thumb_func_start MOD75_021EC1A4
+MOD75_021EC1A4: ; 0x021EC1A4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r1, _021EC240 ; =0x00000478
+ str r0, [r2]
+ ldrb r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD75_021EC18C
+ lsl r1, r0, #0xc
+ ldr r0, [sp]
+ cmp r1, r0
+ bge _021EC1DE
+ sub r0, r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ mov r2, #0
+ b _021EC1E8
+_021EC1DE:
+ sub r0, r1, r0
+ mov r1, #0x64
+ bl _s32_div_f
+ mov r2, #1
+_021EC1E8:
+ ldr r1, _021EC244 ; =0x00000455
+ mov r3, #0x28
+ strb r2, [r4, r1]
+ add r5, r0, #0
+ ldr r1, _021EC248 ; =0x00000458
+ mov r2, #0
+ mul r5, r3
+ str r2, [r4, r1]
+ add r3, r1, #4
+ str r5, [r4, r3]
+ mov r3, #0x19
+ add r5, r0, #0
+ mul r5, r3
+ add r3, r1, #0
+ add r3, #8
+ str r5, [r4, r3]
+ mov r3, #0xf
+ add r5, r0, #0
+ mul r5, r3
+ add r3, r1, #0
+ add r3, #0xc
+ str r5, [r4, r3]
+ mov r3, #0xa
+ add r5, r0, #0
+ mul r5, r3
+ add r3, r1, #0
+ add r3, #0x10
+ str r5, [r4, r3]
+ mov r3, #7
+ add r5, r0, #0
+ mul r5, r3
+ add r3, r1, #0
+ add r3, #0x14
+ str r5, [r4, r3]
+ lsl r3, r0, #1
+ add r3, r0, r3
+ add r0, r1, #0
+ add r0, #0x18
+ str r3, [r4, r0]
+ add r1, #0x1c
+ str r2, [r4, r1]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021EC240: .word 0x00000478
+_021EC244: .word 0x00000455
+_021EC248: .word 0x00000458
+ thumb_func_end MOD75_021EC1A4
+
+ thumb_func_start MOD75_021EC24C
+MOD75_021EC24C: ; 0x021EC24C
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r1, #0
+ bne _021EC272
+ mov r0, #1
+ lsl r0, r0, #8
+ ldr r0, [r4, r0]
+ mov r1, #0xdc
+ mov r2, #0x9c
+ bl FUN_0200C714
+ mov r0, #0x41
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xdc
+ mov r2, #0xb4
+ bl FUN_0200C714
+ b _021EC28E
+_021EC272:
+ mov r0, #1
+ lsl r0, r0, #8
+ ldr r0, [r4, r0]
+ mov r1, #0xa2
+ mov r2, #0x6c
+ bl FUN_0200C714
+ mov r0, #0x41
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xa2
+ mov r2, #0x84
+ bl FUN_0200C714
+_021EC28E:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC298
+ pop {r4, pc}
+ thumb_func_end MOD75_021EC24C
+
+ thumb_func_start MOD75_021EC298
+MOD75_021EC298: ; 0x021EC298
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #1
+ lsl r0, r0, #8
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_0200C644
+ mov r0, #0x41
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_0200C644
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EC298
+
+ thumb_func_start MOD75_021EC2B8
+MOD75_021EC2B8: ; 0x021EC2B8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r4, r2, #0
+ add r6, r1, #0
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_0200C644
+ mov r0, #0x43
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_0200C644
+ cmp r4, #0
+ beq _021EC374
+ add r0, r6, #0
+ bl FUN_0206EA30
+ mov r1, #3
+ add r4, r0, #0
+ bl FUN_0206AB18
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_0206AB18
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ bl FUN_0206E12C
+ add r7, r0, #0
+ add r0, r6, #0
+ bl FUN_0206E0F0
+ add r3, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _021EC378 ; =0x0000C101
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, r7, #0
+ bl FUN_0200C9D8
+ add r0, r6, #0
+ bl FUN_0206E114
+ add r1, r0, #0
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r1, #6
+ bl FUN_0200C66C
+ bl FUN_0206E2A8
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_0206E278
+ add r3, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _021EC37C ; =0x0000C102
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, r6, #0
+ bl FUN_0200C9D8
+ add r0, r4, #0
+ bl FUN_0206E290
+ add r1, r0, #0
+ mov r0, #0x43
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r1, #6
+ bl FUN_0200C66C
+_021EC374:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021EC378: .word 0x0000C101
+_021EC37C: .word 0x0000C102
+ thumb_func_end MOD75_021EC2B8
+
+ thumb_func_start MOD75_021EC380
+MOD75_021EC380: ; 0x021EC380
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, #0xf8
+ add r4, r1, #0
+ ldr r0, [r0]
+ mov r1, #1
+ add r6, r2, #0
+ bl FUN_0200C644
+ add r0, r5, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0200C714
+ add r0, r5, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r5, #0xf8
+ ldr r0, [r5]
+ mov r1, #0
+ bl FUN_0200C5C0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD75_021EC380
+
+ thumb_func_start MOD75_021EC3B8
+MOD75_021EC3B8: ; 0x021EC3B8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ bl FUN_0200C658
+ cmp r0, #1
+ bne _021EC3EE
+ add r0, r4, #0
+ add r0, #0xf8
+ mov r1, #1
+ ldr r0, [r0]
+ lsl r1, r1, #0xc
+ bl FUN_0200C5B4
+ add r0, r4, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ bl FUN_0200C630
+ cmp r0, #2
+ bne _021EC3EE
+ add r4, #0xf8
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0200C644
+_021EC3EE:
+ pop {r4, pc}
+ thumb_func_end MOD75_021EC3B8
+
+ .section .rodata
+ ; 0x021EC3F0
+ .incbin "baserom.nds", 0x2D5650, 0x58C